Введение

32-битная параллельная компьютерная шина, ирландский композитор

NuBus (/n//(//j//)//u/,/b//ʌ//s/) – это 32-битная параллельная компьютерная шина, первоначально разработанная в Массачусетском технологическом институте (MIT) и стандартизированная в 1987 году как часть проекта рабочей станции NuMachine. Первая полная реализация NuBus была осуществлена компанией Western Digital для своей NuMachine и для Lisp Machines Inc. LMI Lambda. Позже NuBus был включен в продукты Lisp компанией Texas Instruments (Explorer) и использовался компанией Apple Computer в качестве основной шины расширения, а компания NeXT разработала её вариант под названием NeXTBus. В настоящее время NuBus практически не используется за пределами рынка встраиваемых систем.

Архитектура

Ранние микрокомпьютерные шины, такие как S 100, часто представляли собой просто соединения с выводами микропроцессора и линиями питания. Это означало, что изменение архитектуры компьютера обычно приводило к появлению новой шины. Стремясь избежать подобных проблем в будущем, NuBus был разработан независимо от процессора, его общей архитектуры и каких-либо особенностей обработки ввода-вывода. Среди множества передовых для того времени функций, NuBus использовал 32-битную шину, в то время как 8- или 16-битные шины были распространены. Это рассматривалось как обеспечение "перспективности", поскольку предполагалось, что 32-битные системы появятся в ближайшем будущем, а 64-битные шины и более широкие останутся непрактичными и избыточными. Кроме того, NuBus не зависел от конкретного процессора. Большинство шин до этого момента соответствовали стандартам сигнализации и передачи данных машины, в которую они подключались (например, порядок байтов – big или little endian). NuBus не делал таких предположений, что означало, что любую карту NuBus можно было подключить к любой машине NuBus, при наличии соответствующего драйвера устройства. Для выбора правильного драйвера устройства, NuBus включал схему идентификации, позволяющую картам идентифицировать себя хост-компьютеру при загрузке. Это избавляло пользователя от необходимости конфигурировать систему, что до этого момента было настоящим бичом шинных систем. Например, в случае ISA драйвер необходимо было настраивать не только для карты, но и для всей необходимой памяти, используемых прерываний и так далее. NuBus не требовал такой настройки, что делало его одним из первых примеров архитектуры plug and play. Однако эта гибкость, упрощавшая работу для пользователя и разработчиков драйверов, усложняла задачу для самих разработчиков карт. В то время как большинство "простых" шинных систем легко поддерживались небольшим количеством чипов ввода-вывода, разработанных с учетом конкретного процессора, в случае NuBus каждая карта и компьютер должны были преобразовывать все данные в платформенно-независимый "мир NuBus". Обычно это означало добавление контроллера NuBus между шиной и любыми чипами ввода-вывода на карте, что увеличивало стоимость. Хотя сегодня это тривиальная задача, требуемая для всех современных шин, в 1980-х годах NuBus считался излишне сложным и дорогим.

Реализация

NuBus стал стандартом IEEE в 1987 году под номером IEEE 1196. В этой версии использовался стандартный 96-контактный трехрядный разъем DIN 41612, работающий с тактовой частотой 10 МГц, обеспечивая максимальную скорость передачи данных в режиме burst 40 МБ/с и среднюю скорость от 10 до 20 МБ/с. Более поздняя версия, NuBus 90, увеличила тактовую частоту до 20 МГц для повышения пропускной способности, увеличив скорость burst примерно до 70 МБ/с и среднюю скорость до 30 МБ/с. NuBus был впервые коммерчески разработан в Western Digital NuMachine и впервые использован в серийном продукте компанией Lisp Machines, Inc., лицензиатом Western Digital, в LMI Lambda – машине Lisp. Проект и группа разработчиков были проданы Western Digital компании Texas Instruments в 1984 году. Технология была интегрирована в их TI Explorer, также машину Lisp. В 1986 году Texas Instruments использовала NuBus в многопроцессорной UNIX-системе S1500. Позже, Texas Instruments и Symbolics разработали платы NuBus для машин Lisp (TI MicroExplorer и Symbolics MacIvory) на основе своих микропроцессоров, поддерживающих Lisp. Эти платы NuBus представляли собой сопроцессоры Lisp для линейки Apple Macintosh (Mac II и Mac Quadras). Apple Computer также выбрала NuBus для использования в своем проекте Macintosh II, где его принцип plug-and-play соответствовал философии Mac, ориентированной на простоту использования. Он использовался в большинстве моделей серии Macintosh II, составлявших профессиональную линейку Mac с конца 1980-х годов. Он был обновлен до NuBus 90, начиная с Macintosh Quadras, и использовался до середины 1990-х годов. Ранние модели Quadras поддерживали частоту 20 МГц только при взаимодействии двух карт, поскольку контроллер материнской платы не был обновлен. Это было исправлено в реализации NuBus на моделях 660AV и 840AV. Этот улучшенный контроллер NuBus использовался в моделях Power Macintosh 6100, 7100 и 8100 первого поколения. Позднее модели Power Mac перешли на шину PCI от Intel. В реализации NuBus компанией Apple использовались штыревые и гнездовые разъемы на задней панели карты, а не краевые разъемы с винтами Phillips внутри корпуса, которые использовались в большинстве карт, что значительно упрощало установку. Компьютеры Apple также обеспечивали постоянное питание +5 В в режиме "trickle" для таких задач, как мониторинг телефонной линии при выключенном компьютере. По-видимому, это было частью неофициального стандарта NuBus. NuBus также был выбран компанией NeXT Computer для своих машин, но использовалась другая компоновка печатной платы. NuBus, по всей видимости, не получил широкого распространения за пределами этих областей применения, и когда Apple перешла на PCI в середине 1990-х годов, NuBus быстро устарел.