180 likes | 307 Views
The NuBus. Miles Carter Ben Stoutenburgh Jim Vallerie. Introduction: Some NuBus History. NuBus was originally created in the 1970s at MIT as a new parallel computing bus implementation.
E N D
The NuBus Miles Carter Ben Stoutenburgh Jim Vallerie
Introduction:Some 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.
Introduction:Some 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 system’s 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. • NuBus’s use in the Macintosh computing platform was extinguished when the company adopted the PCI bus in the early 1990s.
Bus 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 slot’s 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.
Bus 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.
Bus 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 simple—if 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
Bus 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.
Data 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).
Data 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
A/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
A/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
A/ROSEFeatures • Minimal • kernel is only 6K • complete configuration utilizes 23K • uses 48K buffer • Multitasking • pre-emptive multitasking • round-robin task scheduling • 32 priority levels
A/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
A/ROSEUses • A/ROSE was designed for • communications and networking • data acquisition • signal-processing • heavy-duty processing • time consuming or time critical tasks
Additional Reading/Interesting Links: • Macintosh NuBus interface code (written in c for Linux): http://pc1.peanuts.gr.jp/~kei/Kernel-Snapshot/linux/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_BOOK.7.html#pgfId=3317 • DMA Fundamentals on Various PC Platforms: http://cires.colorado.edu/~jjose/DMAFundamentals.pdf
Sources Heid, Jim and Peter Norton. “Inside the Apple Macintosh.” Brady: New York. 1989. Donald Koscheka, Ernst & Young. “Exploring NuBus Slots.” <http://www.mactech.com/articles/mactech/Vol.06/06.04/NubusSlots/>. Maurer, Joseph. “Inside The Macintosh Coprocessor Platform And A/ROSE.” <http://www.mactech.com/articles/develop/issue_04/coprocessor.html>. University of Teesside: School of Computing. “The Bus.” <http://wheelie.tees.ac.uk/users/a.clements/Buses/Buses.htm>. Wikipedia. “Nubus.” March 2004. <http://en.wikipedia.org/wiki/NuBus>. Harvey, A.F. “DMA Fundamentals on Various PC Platforms.” <http://cires.colorado.edu/~jjose/DMAFundamentals.pdf>.