SloBridge.tioga
Copyright © 1986 by Xerox Corporation. All rights reserved.
Created by: Neil Gunther May 28, 1986 2:56:59 pm PDT
Last Edited by: Neil Gunther October 6, 1986 5:23:12 pm PDT
DRAGON-87 IO SUBSYSTEM PROPOSAL
DRAGON-87 IO SUBSYSTEM PROPOSAL
DRAGON-87 IO SUBSYSTEM PROPOSAL
DRAGON PROJECT — FOR INTERNAL XEROX USE ONLY
DRAGON PROJECT — FOR INTERNAL XEROX USE ONLY
DRAGON PROJECT — FOR INTERNAL XEROX USE ONLY
Dragon-87 I/O Subsystem Proposal
Release as [Indigo]<Dragon>Documentation>SloBridge>SloBridge.tioga

© Copyright 1985 Xerox Corporation. All rights reserved.
Abstract: The following remarks refer to the Dragon machine targeted for completion by June 1987. This target multi-processor machine carries with it the implicit notion of simplest possible architecture having greatest flexibility in terms of functionality for Cedar programmers and design extensibilty to the next generation of Dragon machines. In particular, this document focuses on the specification of the Dragon-87 peripheral I/O subsystem.
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304



For Internal Xerox Use Only
Contributing Authors
Jean-Marc Frailong
Neil Gunther
Hal Murray
1. What not to do!
For a brief war story on previous attempts to solve this problem you are invited to look at:
[indigo]<Dragon>IOSubsystem>VMEDiscussion.tioga
See also: "Concerns for the Dragon I/O Subsystem" in
[Indigo]<CSL-Notebook>entries>85csln-0006.tioga
2. Service Tasks
The Dragon-87 requires 3 primary tasks to be performed by devices external to the main Dragon-87 multi-processor system.
1. Initialization (including disk-boot capability) of the Dragon-87 system and peripheral interfaces.
2. Medium and Low Speed I/O transactions for the Dragon-87 system including those to a dedicated disk and ethernet, and the necessary human interface devices.
3. Debug and Diagnostic facility.
A secondary consideration is to provide connection to industry standard widget controllers by coupling to a least one industry standard bus.
3. General I/O Requirements
A primary goal is to accomodate the entire machine, including the IO logic, onto a single 6085 formatted board. If general space constraints prevent this goal from being attained it is proposed to implement the IO logic on a seperate board. In that event, we will consider the expedient of pirating the cost reduced DayBreak IOP board and focus design attention on the SloBridge chip.
Ethernet
* Single Ethernet Controller. Ethernet buffers might be constrained so that they do not cross page boundaries. Ethernet control blocks might reside at prescribed physical addresses.
* ROM for network ID.
Disk drives
* Floppy, 5.25 in.
* Hard disk, ST506/ST412.
* Possibly ESDI or SCSI.
* Disk buffers may be specified with virtual addresses (i.e. randomly crossing page boundaries).
Serial communications
* Keyboard and mouse, 9600 baud async.
* Medium speed (50Kbits) sync. or async. line, RS232C and optionally V35.
Counter
* 32 bits at 100 kHz.
Interrupt management
To be determined.
Junk options
* MP-LEDs.
* Boot buttons.
* Interrupt timers.
* Memory to memory data block mover.
Commercial bus
* At least, provide something that can be converted into a commercial bus outside the Dragon-87 board. At best, implement a well supported commercial bus e.g. VME or Multibus.
* DMA devices are not expected to be supported by the commercial bus interface.
I/O mapping
Should IO devices use virtual addresses? The disk should use virtual addresses; the commercial bus might also. It is considered desirable to avoid implementing a general IO mapping mechanism, if possible.
Boot machinery
* Local microprocessor.
* ROM for Dragon-87 initial code (64-128 Kbytes) to support Disk/Ethernet booting.
* ROM for local microprocessor (possibly on-chip).
* Support for Dynabus and processor ID initialization.
Diagnostics
The model for performing diagnostics is similar to that implemented by Midas for Dorados; the Dragon-87 is cycled by a test program running on an outboard D-machine connected via an RS232C line or some other convenient interface. More complex diagnostics will run directly on the Dragon-87. The complexity limit will be determined by the amount of local ROM available (4Kbytes?).
4. SloBridge Specification
It is anticipated that a single large chip will suffice to provide a coupling between the synchronous Dynabus and the handful of commercial chips responsible for handling the IO devices. Since the chips we are considering do not conform to a single bus specification, a large amount of glue will be necessary. By connecting all the tri-state lines of the IO chips together, this glue might be incorporated in the SloBridge chip itself. In the event that this approach proves unfeasible, it may be necessary to implement the IO subsystem on a seperate board.
A derivative of the Dragon-87 cache will be used to handle the Dynabus interface.
Bus latency, as seen from the Ethernet chip, might be too long, in which case, local memory could be used to store descriptors .
5. Interface Taxonomy
The following is a list of standard buses and their respective interface chips which are candidates for inclusion on the peripheral side of the SloBridge. This information is included to indicate some of the reasoning used to arrive at the proposals presented elsewhere in the document.
Ethernet
Will be either an AMD or Intel chip with appropriate glue. Should only consume the same area as the relevent section on the current Daybreak IOP board (2.25 x 4 in.) if the Intel chip is used. The Intel chip appears more suitable for testing purposes but suffers the disadvantage of holding onto the bus for long periods, typically 20 mS.
Serial Interface
RS232C is a standard. The plan here is to use the SCC (Am 8530) and CIO (Z8036/8536). Between them these chips will support 56 Kbit and faster serial lines, provide a counter and drive MP-LED's. It would also handle keyboard and mouse. This chip combination requires some arcane software (Hal Murray has designated himself the expert on this subject).
NOTE: We are not interested in RS422 etc.
Disk Interface
ST506 is probably the most ubiquitous for microcomputers and has the most product support. The drawbacks are limited speed (5 Mbits/sec) and limited disk size (less than 200 MBytes). Beyond these limits, ESDI and SCSI should seriously be considered. We are looking for a single chip disk controller. Examples: Am 9580, Signetics SCM 68454, National DP8466. The Am 9580 has the capability of scattered reads and writes in main memory which would avoid the problem of address translation.
NOTE: The current Daybreak uses a Signetics 8x305 microprocessor as the controller; the same chip used on some VME boards. This is an older technology which consumes more area than we can allow on Dragon-87. The cost reduced DayBreak will use an AMD 9580. Supporting floppies, ST506 and ESDI with a single chip appears possible. SCSI will require different peripherals. Both SCSI and ESDI would enable the use of tapes and optical disks.
GPIB (General Purpose Interface Bus; HPIB)
This bus, although not a true system bus, is used to communicate with Xerox printers and various pieces of instrumentation in CSL and ICL. The question is, do we provide a dedicated connector or throw the controller board onto a standard system bus? Previous experience indicates that the TI 9914 is the right chip to use if we implement the interface ourselves.
The simplest expedient will be to provide this capability via a commercial bus.
Commercial Buses
Among the contenders are:
VME (Versa Module Europe)
Asynchronous; qualified 32-bit data/addressing; definite industry standard. The pertinent issue here is the respective level of product support for VME vs. Multibus immediately beyond June '87.
The Signetics SCB68172 VMEbus (BUSCON) controller could be used to provide a compact Master/Slave interface. This chips does exist but would consume significant board area when the necessary glue and drivers are included.
Multibus I
Asynchronous; 16-bit data/24-addressing. CSL already has many boards invested in this system bus on Dicentras, DTigers, etc.. The effective bandwidth is not significantly different from VME. There is an outstanding question concerning the age of this bus and what new devices will be supported around June 87 and later. Providing this controller on Dragon-87 could still be useful to many in PARC.
Multibus II
Higher performance, higher bandwidth (than Multibus I), synchronous, but not high enough performance for an 80386! There is currently less product support for this bus than VME. It is not clear that a Multibus II interface would contribute much to Dragon-87.
SCSI (Small Computer Systems Interface)
Typically used to connect up to 56 disks and tape drives. A single chip interface is provided by the NCR 5380.
IBMpc Connector
We should run the SloBus out to the end of the board as an insurance policy. Moreover, with some small amount of buffering, it would be possible to transform the SloBus (in its 80186 incarnation) into an IMBpc connector which can then be hooked onto a pc extender chassis. Such a chassis is already in use by the Imaging Group. Need to examine the technical distictions between AT and XT implementations.
Junk Pile
RamDac by Brooktree. If this color display controller is used, the necessary control lines could be provided by the boot microprocessor in the I/O section.
The boot microprocessor will require some EEROM, UVROM, RAM and glue.
Boot Microprocessor
Clearly, some minimal intelligence is required to provide service task 2.1. The danger here, is the tendency to chose a processor that is too sophisticated such that one is immediately faced with the daunting task of developing massive piles of code for it (see Section 1) and chewing up real-estate with the other support chips usually required by 32 bit processors. The proposal is to choose a simpler processor, like a 6502, or its more recent CMOS successor, which can read the initialization code blown into a PROM. As well as keeping the chip count down, there may be some leverage provided by the fact that the Dorado base-board uses a 6502 and there are some in-house attendent code development tools.
6. Board Area Estimates
This section makes a guess at the incompressible area requirements for the Dragon-87 IO susbsystem. It is assumed that no glue logic, at all, is required to couple all the interface chips onto the SloBridge chip. The space used by the SloBridge chip is not included here, as it will probably be part of one of the hybrid packages and thus be taken in account together with the processors. The estimate given here is extremely optimistic, and should be used only to provide a strictly minimal guideline. The effective requirements are expected to be 25 to 50% higher.
Disk
Estimates for interfacing with a single floppy and a single ST506 drive.
o Disk controller Am 9580  68 pin PGA
o Data separator Am 9581 (for floppy) 48 pin DIP
o Buffers for floppy connector
7438    3 14 pin DIP
7414    2 14 pin DIP
o Crystal for floppy Am 9581
o Data separator Am 9581 (for ST506) 48 pin DIP
o Buffers for hard disk connector
Estimated    6 14 pin DIP
o Crystal for hard disk Am 9581
o A few resistors for open-collector lines.
Ethernet
Estimates for a 10 Mbps Ethernet.
o Ethernet controller I 82586   48 pin DIP
o Ethernet serial interface I 82501  20 pin DIP
o 20 MHz crystal
o A few resistors for transceiver interface
o Local RAM for descriptors (optional)
Telecommunications
2 sync/async lines using an SCC, RS232 electrical interface ony. One line used for keyboard/mouse, other for modem/debugging.
o SCC Z8030      40 pin DIP
Other choices:
SCN2681 (DUART)
o Drivers     5  16 pin DIP
o Crystal 3.9936 MHz
Various controls
A bit-controller to provide a number of random I/O pins (LEDs, buttons, Ethernet loopback control, etc.) and timers for real-time interrupts.
o CIO Z8036      40 pin DIP
Other choices:
I8255A
Alternative for Telecommunications and various controls
A combo chip plus a sync/async controller. A problem with the Zilog chips is the way they manage interrupts. But it might be the smallest solution.
o MUART I8256AH    40 pin DIP
Has 1 UART with BRG,
5 8-bit (2-16+1-8) timers,
2 8-bit I/O ports
Can handle the keyboard.
o Any UART with BRG.
Boot microprocessor
Single-chip (for example), also used to provide a few wires for reset/test purposes.
o One-chip micro Am 9761   40 pin DIP
(8K bytes EPROM, 128 bytes RAM)
o Crystal for mP.
o 64 Kbytes ROM I 27512  2 28 pin DIP
holds boot code for Dragons
copied into main Ram on boot
o 4K 4 bits static RAM I 51C68 4 20 pin DIP
OR
o 8K bytes static RAM NMC6164 2 28 pin DIP
Summary
68 pin PGA   1
48 pin DIP   3
40 pin DIP   3
28 pin DIP   4
20 pin DIP   1
16 pin DIP   5
14 pin DIP   11
Crystals    6
Plus a handful resistors/capacitors, and maybe a few more drivers (LEDs for example), plus a debouncer for the reset button, etc.. It might be possible to remove the CIO, but it is not clear that there are enough pins on the main IOP interface chip to do that. Moreover, something would have to be done for the timers. The commercial bus interface has not ben included in these estimates.
7. Chip Data
Vendors: /Indigo/Dragon/Documentation/SloBridge/ChipData.tioga