I/O structure of the June87 machine - IOBus versus DynaBus - PC/AT I/O channel as IOBus - The IOBridge chip - Future developments IOBus versus DynaBus - DynaBus is fast but complex: * throughput ~ 200 Mbytes/s * split cycle protocol (message passing) * 64/256 bit packets * special drivers required * impossible to connect commercial chips or boards - Development of full set of June87 I/O chips impossible: * not enough time/manpower * system not easily extensible ==> most I/O must be implemented on a commercial bus connected to the DynaBus: the IOBus. Display chip is the only exception due to bandwidth. - IOBus also used for bootstraping the machine Choice of the IOBus - Possible candidates: * Multibus 1 / 2 * VME Bus (16 or 32 bits) * PC/AT Bus * QBus - PC/AT bus selected: * simple to interface * variety of peripherals available * small board size * Multibus and VME more oriented to systems integration * also allows PC/AT emulation PC/AT bus summary - asynchronous - 16-bits data, 24-bits memory addresses, 12/16 bits I/O addresses (byte addressing) - 375 ns min. cycle time => 5 MBytes/s - little-endian (LSB at lowest address) - Problems: * PC/AT processor required * no complete specification * byte ordering * asynchronism * idiosyncrasies: - no bus error support - DMA-refreshed memory - high DMA latency (> 1 ms) - small address space (20 bits in MSDOS) - Extensions: * hack to extend addresses to 32 bits (disk controller) The IOBridge chip - handles IOBus / DynaBus interface - supports a few system IO functions (ticks counter, timer, interrupts) - includes special support for bootstrap and system testing - uses cache chip for DynaBus interface: * reduced chip size & complexity * does byte buffering * correct consistency protocol - Interfaces 3 different buses: DynaBus, IOBus, PBus (plus opt. DBus) IOBridge block diagram IOBridge functionality - DynaBus I/Os mapped to IOBus cycles: * IOBus memory, I/O and INTA cycles supported * all byte orderings supported - IOBus memory cycles mapped to DynaBus memory transactions (byte stream order!) through 3 16-entry address maps: * 64K from 20-bit range (0-1M) * 14M from 24-bit range * full 32-bit range - capability to generate same DynaBus transactions as Dragon by program: * I/O transaction * CWS transaction - numerous internal hacks due to PC/AT bus structure Interrupt structure - IOBus to Dragon: 3 levels of controllers * IOBus interrupt controller || V * IOBridge interrupt controller || V * Cache interrupt controller - Dragon to IOBus: * 1 "regular" interrupt * 1 "failure" interrupt Timer support - All timers are 32-bit unsigned - Tick timer: counts at 1 MHz for time-stamping (overflow interrupt) - Interval timer: 1 ms resolution (interrupt on end of interval) - Time-of-day clock: 1/10 s resolution IOBus address mapping - IOBus address are 24 bits. CPU accesses under MSDOS restricted to lower 1 Mbyte (20 bits). Addresses extended to 32 bits for disk controller. - DynaBus addresses are 32 bits word addresses, i.e. 34 bits byte addresses. - 3 address maps (page organized): * 1 64K region in [0..1M) mapped with 16 4K bytes pages to DynaBus memory: PC/AT CPU access * [1M..15M) mapped with 14 1M bytes pages to DynaBus memory: PC/AT DMA addresses (e.g. Ethernet) * [16M..4G) mapped with 15 256M bytes pages to DynaBus memory - Maps may be initialized from DynaBus and IOBus June87 machine bootstrap process - Reset PC/AT => control to PC/AT ROM - Check hardware configuration using DBus - Tune clocks using DBus - Initialize chip parameters using DBus - Start DynaBus, not processors - Initialize & test DynaBus memory - Load pre-boot program - Start processors - Pre-boot program will access disk/net for real bootstrap Pros and cons of current solution - Pros: * simple hardware interface * easy extensibility: large variety of I/O boards available * support of PC/AT emulation * PC will help debugging prototypes - Cons: * low speed: ESDI disk + Ethernet => saturation (mutiple IOBuses possible) * complexity of head and faces - byte ordering - interrupt structure * effective support of PC emulation will require additional work * IOBridge very dependant on PC/AT Future developments - Choice of PC/AT bus might be changed for NuBus if Mac2 proves successfull (cleaner & faster) - Implementation of high-speed I/O directly on DynaBus: * display bitmap generator * 100-500 MB/s network * vertical recording disks ? - dedicated I/O processor(s) on DynaBus B[Artwork node; type 'ArtworkInterpress on' to command tool] �Ê›–"slides" style˜title˜#Iitem˜L˜L˜L˜L˜L˜L˜L˜—˜˜L˜L˜L˜L˜L˜L˜"L˜—˜9L˜L˜—L˜L˜ŽL˜L˜.—˜˜L˜L˜L˜ L˜L˜—˜L˜L˜"L˜L˜7L˜——˜L˜L˜TL˜&L˜'L˜˜ L˜L˜L˜L˜˜L˜L˜LšœÏgœ˜L˜L˜——˜ L˜7——˜L˜#L˜$L˜#L˜;˜(L˜ L˜L˜—L˜E—˜L˜I artworkFigure•FitTRUE• InterpressÐ&Interpress/Xerox/3.0  f jŸ¡¡ÅXeroxÅResearchÅ RGBLinear£¡¡¦ ç •ÅXeroxÅ PressFontsÅ Helvetica-mrr£¡ “À ¤ ”¡• k j¡¥“Äè ¤ ¨ªª ¢ ¨Ä�� ¤ ¨èÜ ¢ ¨ ·“X dÈ¡£¡¥“ x j¡¡¨ x jàPŠ ª  ¤¡š k x jX0Š ª  ¤À¡š k x jà(Š ª  ¤È¡š k x j�àŠ ª  ¬¤¡š k x j0ÌŠ ª  ¤¡š k x j0ÈŠ ª  ¤¡š k x j0¤Š ª  ¤Ä¡š k x j¤Š ª  ¤$¡š k x j Š ª   ¤¡š k x j0dŠ ª  ¤Ü¡š k x jdŠ ª  ¤Ü¡š k x jÈ`Š ª  D¤¡š k x jØPŠ ª   ¤¡š k x jØ@Š ª   ¤¡š k x jØ0Š ª   ¤¡š k x jØ Š ª   ¤¡š k x jØŠ ª   ¤¡š k x jØŠ ª   ¤¡š k x jØðŠ ª   ¤¡š k x jÈ`Š ª  d¤¡š k x jèHŠ ª   ¤¡š k x jˆ4Š ª  ¤Ì¡š k x jÈ4Š ª  ¤Ì¡š k x jÈ0Š ª  d¤¡š k x j0슠ª  ¤䡚 k x j¨芠ª  8¤¡š k x jh䊠ª  ¤¡š k x jÈ䊠ª  ¤¡š k x jÈàŠ ª  D¤¡š k x jˆÄŠ ª  ¤Ä¡š k x jÐÄŠ ª  ¤Ä¡š k x j€ÀŠ ª  D¤¡š k x j ”Š ª  ¤Ì¡š k x j€”Š ª  ¤Ì¡š k x j8ÀŠ ª  D¤¡š k x j¨¬Š ª  ¤¼¡š k x j€¬Š ª  ¤”¡š k x j(¬Š ª  ¤Ü¡š k x jØ¬Š ª  ¤´¡š k x jØ¨Š ª   ¤¡š k x jØ”Š ª  ¤´¡š k x j8”Š ª  ¤Ì¡š k x j8�Š ª  D¤¡š k x j€�Š ª  D¤¡š k x jˆlŠ ª  ¤Ä¡š k x jÐlŠ ª  ¤Ä¡š k x jlŠ ª  ¤¡š k x jhŠ ª  ¤¡š k x j4Š ª  ¤Ô¡š k x jÈ0Š ª  L¤¡š k x jpÔŠ ª  ¤ü¡š k x jÈÔŠ ª  ¤ü¡š k x jÈЊ ª  L¤¡š k x jP¨Š ª   ¤¡š k x jPtŠ ª  ¤Ô¡š k x j�tŠ ª  ¤ ¡š k x j@tŠ ª  ¤Ô¡š k x j¨tŠ ª  ¤Ô¡š k x j€tŠ ª  ¤Ô¡š k x j`pŠ ª   ¤¡š k x jÈ Š ª  ¤¡š k x j` Š ª  ¤¡š k x jàpŠ ª  ü¤¡š k x j8 Š ª  ¤¡š k x jà Š ª  ¤¡š k x jPpŠ ª  ¤¡š k x jpŠ ª  L¤¡š k x jpŠ ª  p¤¡š k x jDŠ ª  ¤Ì¡š k x jÈDŠ ª  ¤Ì¡š k x jÈ@Š ª  ô¤¡š k x jÈ Š ª  ¤Ô¡š k x jP Š ª  ¤¡š k x jè Š ª  ¤¡š k x j Š ª  ¤Ô¡š k x j¨ Š ª  ¤¡š k x j Š ª  ¤¡š k x jŠ ª  L¤¡š k x jŠ ª  t¤¡š k x jPŠ ª  ¤¡š k x jàŠ ª  ü¤¡š k x j`Š ª   ¤¡š k x jX´Š ª  ¤ô¡š k x j€´Š ª  ¤ô¡š k x jˆ´Š ª  ¤ô¡š k x j ´Š ª  ¤ô¡š k x jð´Š ª  ¤ô¡š k x j˜´Š ª  ¤ô¡š k x j(¬Š ª  ¤œ¡š k x j°¬Š ª  ¤„¡š k x j¬Š ª  ¤Ä¡š k x j`°Š ª  Ð¤¡š k x j¨Š ª  ´¤¡š k x jð$Š ª  ¤,¡š k x j`$Š ª  ¤,¡š k x jÐ Š ª  Ä¤¡š k x j` DŠ ª  ¤|¡š k x jÐ DŠ ª  ¤|¡š k x j° DŠ ª  ¤¡š k x j DŠ ª  ¤¡š k x jè @Š ª  D¤¡š k x jˆ Š ª  ¤Ä¡š k x jè Š ª  ¤Ä¡š k x jè Š ª  D¤¡š k x jP °Š ª  ¤¡š k k¢°“¢·“ x jhÈ ¢ ¨ ¬Š¡¡¨¡ —ÁDBus– Øx ¢ ¨H ¢ ¨ ¬ŠÁPBus– ø@ ¢ ¨ 0 ¢ ¨ ¬ŠÁ PBus Intf–  ¢ ¨ð8 ¢ ¨ ¬ŠÁITs– P ¢ ¨h8 ¢ ¨ ¬ŠÁTest– Ø ¢ ¨(H ¢ ¨ ¬ŠÁDBus– ø ¢ ¨Øä ¢ ¨ ¬ŠÁMaster–h\ ¢ ¨ú £r B ¢ ¥ ¨ ¯“ °™ÀÀ—¸°—À —¡¡ ¡™F £þr ¢ ¥ ¨ú £2² ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £Ž2 ¢ ¥ ¨F £  ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ . ¢ ¥ ¨F £¢’ ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £’ ž ¢ ¥ ¨ú £Rr ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £ÎR ¢ ¥ ¨F £Š  ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ ¶ ¢ ¥ ¨ú £ª² ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £Žª ¢ ¥ ¨ú £’² ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £Ž’ ¢ ¥ ¨ú £š² ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £Žš ¢ ¥ ¨Ÿ ¤šò ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™Ÿ ¤šò ¢ ¥ ¨RÒ ¢ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ în ¢ ¨F £r  ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ Π¢ ¥ ¨pœ ¢ ¨ ¬ŠÁITs– Ф ¢ ¨˜@ ¢ ¨ ¬ŠÁReply– ¨ ¢ ¨F £z  ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ Æ ¢ ¥ ¨F £R Š ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ Š î ¢ ¥ ¨F £ Š ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ Š6 ¢ ¥ ¨ú £* B ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £þ* ¢ ¥ ¨ú £*b ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £Þ* ¢ ¥ ¨F £Â’ ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £’~ ¢ ¥ ¨F £Âê ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ê~ ¢ ¥ ¨ú £*2 ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £* ¢ ¥ ¨F £ê ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ê & ¢ ¥ ¨F £"* ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £* ¢ ¥ ¨�œ ¢ ¨ ¬ŠÁTimers–°¤ ¢ ¨X0 ¢ ¨ ¬ŠÁMaps– è ¢ ¨Ÿ ¤R ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™Ÿ ¤R ¢ ¥ ¨F £zê ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ê Æ ¢ ¥ ¨F £z’ ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £’ Æ ¢ ¥ ¨ú £’r ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £Î’ ¢ ¥ ¨2º ¢ ¨ °™ÀÀ—¸°—À —¡¡ ¡™† ¢ ¨è  ¢ ¨ ¬ŠÁIOBus–X4 ¢ ¨` ¢ ¨ ¬ŠÁFIFO–à0 ¢ ¨¸  ¢ ¨ ¬ŠÁIOBus Interface–ˆ  ¢ ¨ú £b ² ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £Žb ¢ ¥ ¨F £B  ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £  þ ¢ ¥ ¨ú £â B ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £þâ ¢ ¥ ¨P` ¢ ¨ ¬ŠÁDynaBus–ð à ¢ ¨F £J  ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ú £ ö ¢ ¥ ¨ú £j² ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™F £Žj ¢ ¥ ¨rš ¢ ¨ °™ÀÀ—¸°—À —¡¡ ¡™ Φ ¢ ¨Ÿ ¤ºº ¢ ¥ ¨ °™ÀÀ—¸°—À —¡¡ ¡™Ÿ ¤ºº ¢ ¥ ¨$ ¢ ¨ ¬ŠÁMaster– 0 ¢ ¨ x ¢ ¨ ¬ŠÁIOBus–0È ¢ ¨ k k g•Artwork Interpress•Bounds810.0 mm xmin 10.0 mm ymin 205.9 mm xmax 166.1522 mm ymax–†0.7971015 the lineLength .mul 2.811678 .add topLeading 0.7971015 the lineLength .mul 2.811678 .add topIndent 1.405839 mm bottomLeadingšÏn;™;—˜˜&L˜-L˜—˜qL˜L˜L˜—L˜%˜%L˜L˜—L˜4—˜˜*L˜Lšœ˜Lšœ˜L˜L˜L˜L˜L˜—˜L˜L˜——˜ L˜ L˜/L˜L˜!L˜L˜&—˜L˜�Lšœ Ïiœ(˜L˜"LšœKÏkœ œ œ˜\Lšœ= œ œ œ˜`L˜=—L˜0—˜ L˜%L˜)L˜L˜'L˜L˜"L˜L˜L˜:—˜!˜L˜L˜L˜&L˜L˜#—˜L˜ L˜%L˜˜L˜L˜—L˜@L˜"——˜L˜^˜7L˜L˜L˜—L˜'——…—ˆ(e