# NuBus

NuBus is een uitbreidingssleuf die zich op een moederbord in de computer bevindt. Het is een 32-bits parallelle computerbus die oorspronkelijk ontwikkeld werd aan het MIT en die in 1987 gestandaardiseerd werd als onderdeel van het NuMachine-werkstationproject. De eerste volledige NuBus-implementatie was van Western Digital voor hun NuMachine en voor de LMI Lambda van Lisp Machines Inc. NuBus werd later ook toegepast in Lisp-producten van Texas Instruments (Explorer). Apple Computer gebruikte NuBus als de belangrijkste uitbreidingsbus voor Macintosh van 1987 tot 1995. NeXT ontwikkelde een variant genaamd NeXTbus. NuBus wordt niet langer veel gebruikt buiten de embedded markt.

## Architectuur

Computerbussen van vroege microcomputers waren vaak niet meer dan verbindingen met de pinnen van de microprocessor en met de stroomrails. Dit betekende dat een verandering in de architectuur van de computer meestal ook leidde tot een nieuwe bus. Om dergelijke problemen te vermijden is NuBus ontworpen om onafhankelijk te zijn van de processor, de algemene architectuur van het systeem en alle details van de I/O-verwerking.
NuBus gebruikte een 32-bits backplane, wat in die tijd heel geavanceerd was aangezien toen 8- of 16-bits bussen de norm waren. Dit werd gezien als het "toekomstbestendig" maken van de bus, aangezien algemeen werd aangenomen dat er in de nabije toekomst 32-bits systemen zouden arriveren, terwijl 64-bits bussen als onpraktisch werden aanzien.
Bovendien was NuBus processoronafhankelijk. Tot dan voldeden de meeste bussen aan de signaliserings- en datanormen van de machine waarin ze gebruikt werden (bijvoorbeeld big-endian of little-endian). NuBus maakte dergelijke aannames niet, wat betekende dat elke NuBus-kaart in elke NuBus-machine kon gebruikt worden, zolang er maar een geschikt stuurprogramma was.
Om het juiste stuurprogramma te selecteren bevatte NuBus een ID-schema waarmee de kaarten zichzelf konden identificeren tijdens het opstarten van de computer. Dit betekende dat de gebruiker niet langer de ingewikkelde taak moest uitvoeren om de computer manueel te configureren om de kaart te kunnen gebruiken. Bij ISA moest bijvoorbeeld niet alleen het stuurprogramma voor de kaart geconfigureerd worden, maar ook het benodigde geheugen en de gebruikte interrupts. Bij NuBus was een dergelijke configuratie niet nodig, waardoor het een van de eerste voorbeelden van een plug-and-play-architectuur was.
Hoewel deze flexibiliteit NuBus veel eenvoudiger maakte voor de gebruikers en de programmeurs van stuurprogramma's, maakte het de zaken veel ingewikkelder voor de ontwerpers van de kaarten zelf. Terwijl de meeste "eenvoudige" bussystemen gemakkelijk ondersteund konden worden met een handvol invoer- en uitvoerchips die specifiek ontworpen waren voor de CPU in de computer, moesten met NuBus elke kaart en elke computer alles converteren naar een platform-onafhankelijke "NuBus-wereld". Meestal betekende dit het toevoegen van een NuBus-controllerchip tussen de bus en eventuele I/O-chips op de kaart, waardoor de kosten opliepen. Hoewel dit vanzelfsprekend is voor alle nieuwere computerbussen die tegenwoordig gebruikt worden, werd het in de jaren tachtig als onnodig complex en duur beschouwd.

## Implementatie

NuBus werd een standaard in 1987 als IEEE 1196. Deze versie gebruikte een 96-pins connector met drie rijen pinnen en liep op een kloksnelheid van 10 MHz voor een maximale piek-doorvoer van 40 MB/s en gemiddelde snelheden van 10 tot 20 MB/s. Een latere toevoeging, NuBus 90, verhoogde de kloksnelheid tot 20 MHz voor een betere doorvoer, de piek nam toe tot ongeveer 70 MB/s en het gemiddelde tot ongeveer 30 MB/s.
De NuBus werd voor het eerst commercieel ontwikkeld in de Western Digital NuMachine en verscheen voor het eerst op de markt in de LMI Lambda, een Lisp-machine van Lisp Machines, Inc. Het project en de ontwikkelingsgroep werden in 1983 door Western Digital verkocht aan Texas Instruments. De technologie werd opgenomen in hun TI Explorer, eveneens een Lisp-machine. In 1986 gebruikte Texas Instruments de NuBus in het S1500 multiprocessor UNIX-systeem. Later ontwikkelden zowel Texas Instruments als Symbolics "Lisp-machine" NuBus-kaarten (respectievelijk de TI MicroExplorer en de Symbolics MacIvory) op basis van hun microprocessoren met Lisp-ondersteuning. Deze NuBus-kaarten waren co-processor Lisp-machines voor de Apple Macintosh II- en Quadra-series.
NuBus werd ook door Apple Computer geselecteerd voor gebruik in hun Macintosh computers, waar de plug-and-play-eigenschappen goed pasten bij de Mac-filosofie van gebruiksgemak. Eind jaren tachtig werd NuBus gebruikt in de professionele Macintosh II-reeks. Het werd opgewaardeerd naar NuBus 90, te beginnen met de Macintosh Quadra-reeks en bleef tot halverwege de jaren negentig in gebruik. Vroege Quadra-modellen ondersteunden alleen de 20 MHz-snelheid wanneer twee kaarten met elkaar communiceerden, aangezien de NuBus-controller op het moederbord niet opgewaardeerd was. Dit werd later gecorrigeerd in de NuBus-implementatie op de 660AV- en 840AV-modellen waardoor ook hogere snelheden tussen NuBus-kaarten en de CPU mogelijk werden. Deze verbeterde NuBus-controller werd ook gebruikt in de eerste generatie Power Macintosh 6100-, 7100- en 8100-modellen. Latere Power Macintosh-modellen namen de PCI-bus van Intel over. De NuBus-implementatie van Apple gebruikte pin- en socketconnectoren aan de achterkant van de kaart in plaats van een bevestiging met schroeven in de computerbehuizing zoals de meeste andere kaarten. Daardoor was het veel gemakkelijker om NuBus-kaarten te installeren.
NeXT Computer ontwikkelde zijn eigen variant van de NuBus-standaard, de NeXTbus, die een andere fysieke printplaat-indeling gebruikte. Deze bus liep op een kloksnelheid van 25 MHz met een maximale piek-doorvoer tot 100 MB/s. Voor communicatie tussen NeXTbus-kaarten was een NeXTbus Interface Chip (NBIC) nodig. Deze chip was een optie in de originele NeXT-computer, in de NeXTcube was de chip standaard aanwezig.
NuBus lijkt buiten deze toepassingen weinig nut te hebben gehad. Toen Apple halverwege de jaren negentig overstapte op PCI verdween NuBus snel uit beeld en werd op 6 maart 2000 door IEEE als standaard geschrapt.