Title: The NuBus
1The NuBus
- Miles Carter
- Ben Stoutenburgh
- Jim Vallerie
2IntroductionSome NuBus History
- NuBus was originally created in the 1970s at MIT
as a new parallel computing bus implementation. - NuBus was a pioneer of 32-bit design that aimed
to support the predicted market shift towards
universal, industry wide 32-bit implementations. - Emphasis was placed on simplicity of install and
configuration a NuBus hardware card could be
plugged into any NuBus machine as long as it was
supplied the correct device driver. - Like many other components of the same nature,
NuBus was born under the auspices of the
Institute of Electrical and Electronic Engeineers
(ANSI/IEEE STD 1186-1988). - NuBus was adopted most notably by Apple in their
Macintosh II personal computer.
3IntroductionSome More NuBus History
- The entire NuBus system was implemented as a task
sharing array of devices within the NuBus device
slots. - Each NuBus device contained its own independent
68000 processor, working space in RAM, and basic
operating system services. - The taxing load of time consuming/time critical
tasks can be taken of a NuBus equipped systems
main logic board and placed in the hands of an
appropriate independent NuBus processor. - The success of NuBus was relatively limited.
Although it saved production costs on the main
board hardware end, it increased costs for
expansion device producers. - NuBuss use in the Macintosh computing platform
was extinguished when the company adopted the PCI
bus in the early 1990s.
4Bus ArbitrationBasic Arbitration Process
- Since more than one processor/device can be
connected to the same bus, some mechanism is
needed to deal with simultaneous requests for bus
usage. Arbitration is how multiple requests are
recognized and given priority by the system. - NuBus is of distributed arbitration each device
on the bus chain (master) monitors the other
devices (masters) competing for the bus and
determines whether it should assume control of
the bus based on its priority in relation to its
competitors. - Each slot has its own unique ID code in the bus.
The ID is fixed and defined for each slot by
hardwires in the buses backplane. Rather than
the card defining its ID in the bus, the data
path of the backplane dictates each slots unique
ID. - Overall, NuBus is decentralized, which means that
no particular slot assumes master control over
each successive slot in the bus. The NuBus
system of priority determines which slot in the
bus assumes control at any given time.
5Bus ArbitrationThe Details
- NuBus supports multiple bus masters at the same
time. - There are four arbitration lines, and one
prioritization algorithm accessed when multiple
requestors compete for bus control (usually the
requestor with the highest ID number is given
control). - When control is desired, a requestor asserts
request for control over its own bus request
line. It continues this assertion until the bus
is free and it is awarded control. - No special master arbiter exists to decide which
master will get the bus. All priority is handled
by electrical current flow and multiplexer
control.
- Simplified circuit for NuBus arbitration
- Lines ID0 to ID3 define the slot location and,
therefore, the priority level of the master. - Lines ARB0 to ARB3 are the NuBus arbitration
lines that run the length of the bus.
6Bus ArbitrationThe Bus Request Process
- A potential master that wants to use the bus
places its arbitration level on the 4-bit
arbitration bus, ID3 to ID0. - The arbitration bus lines are driven by
open-collector circuits and can, therefore, be
driven by more than one card simultaneously
without creating bus contention. - An open-collector gate can force the bus actively
down to an electrically low level or passively
let it remain in an electrically high level. If
several open-collector circuits drive the bus in
different directions, the electrically low state
always wins. Since NuBus uses negative logic, the
arbitration number is inverted so that the
highest level of priority is 0000 and the least
is 1111. - The key to NuBus arbitration is simpleif a
competing master sees a higher level on the bus
than its own level, it ceases to compete for the
bus. Each requester simultaneously drives the
arbitration bus and observes the signal on bus.
If it detects the presence of a requester at a
higher level, it backs off.
For further reading visit http//wheelie.tees.ac.
uk/users/a.clements/Buses/Buses.htm
7Bus ArbitrationAn Example Of Arbitration
- Consider the case in which three masters numbered
0100 (four), 0101 (five) and 0010 (two)
simultaneously put the codes 1011, 1010 and 1101,
respectively, onto the arbitration bus. - As the arbitration lines are open-collector, any
output at a 0 level will pull the bus down to 0.
In this example, the bus will be forced into the
state 1000. The master at level 2 that puts the
code 1101 on the arbitration bus will detect that
ARB2 is being pulled down and will therefore
leave the arbitrating process and the arbitration
bus will now have the value 1010. The master with
the code 1011 will detect that ARB1 is being
pulled down and will leave the arbitration
process. The value on the arbitration bus is now
1010 and the master with that value (five) has
gained control. - The signal labeled ARBITRATE permits the master
to arbitrate for the bus, and the output GRANT is
asserted if the master wins the arbitration. - Because NuBus arbitration uses simple
non-sequential arbitration logic and arbitration
can take place in parallel with normal bus
activity, the NuBus is well suited to
multiprocessing applications.
8Data FormatsGeographic Addressing
- NuBus implements geographic addressing each card
in a NuBus system is partitioned a unique slice
of memory from the address space spanned in main
memory for the entire system. - The entire NuBus is allocated a 256 MByte address
space called slot space. This space is
subdivided into 16 blocks of 16 Mbytes (each slot
has its own 16 Mbyte slot). NuBus cannot support
more than 16 slots. - Designing systems where each bus slot has its own
space in memory is much less difficult than
systems that deal with shared bus storage (less
management of data overlap/collision).
9Data TransferCommon Standards
- IEEE 1196 standards
- 10 Mhz clock
- Maximum burst throughput of 40Mbps
- Average speeds of 10 to 20Mbps
- NuBus90 standards
- 20 Mhz clock
- Maximum burst throughput of 70Mbps
- Average speed of 30Mbps
10Battle!PCI vs. NuBus
Feature NuBus PCI bus
Bus clock rate 10 MHz 33 MHz, 66Â MHz
Addressing Geographic Dynamic
Signal loading No enforced rules One load per signal
Transaction length determination Determined at start of transaction Determined at end of transaction
Bus termination Resistor network Not required
Bus control arbitration Distributed Centralized
Addressing spaces Memory only Memory, I/O, and configuration
Wait-state generators Slave only Slave and master
Kinds of expansion Cards only Cards and ASIC chips
Timeout 255 bus clocks 5 bus clocks
Burst capability 8, 16, 32, or 64 bytes Any number of bytes
Power allocation 15 W per card 7.5, 15, or 25 W per card
11A/ROSEWhat is it?
- The Apple Real-Time Operating System Environment
- The Operating System for the Macintosh
Coprocessor Platform (foundation for connectivity
products) - Development started in August 1987
- First operational version in February 1988
12A/ROSEWhat is it?
- A real-time, multitasking, message-based,
distributed OS embedded on NuBus cards - Created to compensate for the lack of processing
power in the Macintosh Operation System
13A/ROSEFeatures
- Minimal
- kernel is only 6K
- complete configuration utilizes 23K
- uses 48K buffer
- Multitasking
- pre-emptive multitasking
- round-robin task scheduling
- 32 priority levels
14A/ROSEFeatures
- Real-Time
- 110 ms context switch time
- 20 ms of latency (guaranteed interrupt response
time) - Distributed
- OS is independent on each card
- Message-Based
- tasks communicate to other tasks on same card, or
other cards across the NuBus - messages can pass data such as pointers
- thousands of messages can be sent per second
15A/ROSEUses
- A/ROSE was designed for
- communications and networking
- data acquisition
- signal-processing
- heavy-duty processing
- time consuming or time critical tasks
16Additional Reading/Interesting Links
- Macintosh NuBus interface code (written in c for
Linux) - http//pc1.peanuts.gr.jp/kei/Kernel-Snapshot/lin
ux/drivers/nubus/nubus.c - NuBus physical design notes
- http//developer.apple.com/technotes/hw/pdf/hw_17
.pdf - NuBus in relation to real-time
- http//developer.apple.com/technotes/hw/pdf/hw_16
.pdf - NuBus (IEEE 1196) vs. PCI
- http//developer.apple.com/documentation/Hardware
/DeviceManagers/pci_srvcs/pci_cards_drivers/PCI_BO
OK.7.htmlpgfId3317 - DMA Fundamentals on Various PC Platforms
- http//cires.colorado.edu/jjose/DMAFundamentals.
pdf
17Sources
- Heid, Jim and Peter Norton. Inside the Apple
Macintosh. Brady New York. 1989. - Donald Koscheka, Ernst Young. Exploring NuBus
Slots. lthttp//www.mactech.com/articles/mactech/
Vol.06/06.04/NubusSlots/gt. - Maurer, Joseph. Inside The Macintosh
Coprocessor Platform And A/ROSE.
lthttp//www.mactech.com/articles/develop/issue_04/
coprocessor.htmlgt. - University of Teesside School of Computing. The
Bus. lthttp//wheelie.tees.ac.uk/users/a.clements
/Buses/Buses.htmgt. - Wikipedia. Nubus. March 2004.
- lthttp//en.wikipedia.org/wiki/NuBusgt.
- Harvey, A.F. DMA Fundamentals on Various PC
Platforms. lthttp//cires.colorado.edu/jjose/DMA
Fundamentals.pdfgt.
18Oh, The Mac II MemoriesOregon Trail!