///MBusSpecs.tiogaWrittenby:Sindhu,September1,19841:51:14pmPDTLastEditedby:Sindhu,September10,19846:47:15pmPDTLastEditedby:Barth,December13,19842:08:47pmPSTTheDragonMBusDescriptionandSpecificationsReleaseas[Indigo]Documentation>MBus>MBusSpecs.tioga,.presscCopyright1984XeroxCorporation.Allrightsreserved.Abstract:ThismemodescribestheDragonMbus.ItisintendedtobeusedbothasaconvenientsourceforinformationabouttheMbusandasareferencemanualforbusspecifications.ThememobeginswithabriefoverviewoftheMbus.Itthenlistsallthebussignalsanddefinesthemeaningofeachsignalgroup.Next,itusesthesesignalstodescribeindetailhowthebusoperatesatboththecycleandtransactionlevels,andhowcertaintransactionsareusedtomaintaincacheconsistency.Finally,itgivesthedetailedtimingofthebustransactionscurrentlydefined.XEROXXeroxCorporationPaloAltoResearchCenter3333CoyoteHillRoadPaloAlto,California94304ForInternalXeroxUseOnlypï_:îâï]“îâîèî<î@î!Ýî#jî&°î+˜î-ãï[ëîâîþîEî˜îœî$9î&vî)¼î.¥î0ðïZDîâîþîEî˜îÉî#î%Tî(šî-ƒî/ÎqïQÿîâîšîâî" rïM îâ îDî¶ sïHîâîeïHî¢tîïHïHîgð1î€ï>'îâî"î÷î îˆî!Jî#k î+î/î1zî3î5³î8zî:Nî;rï<€îâîî`î8ï91îâîßîRîîFî”î"ÿî)+î*óî-€î/2î2ùî4Sî7²î:¹î<¸î?Fï7Šîâî îîqî#î%Rî'=î+î/„î5 î9î:xî>ï5ãîâî(î3î�îwî"¾î&6î)î,&î2Šî4Šî88î; î?0ï4;îâ îµîWîcî!±î& î/Eî1÷î5³î7•î=¯ï2”îâ î£îî­î#Þî&Ãî,·î1�î3 î6†î9¹ ï0íîâîwïÜîâtïÜî.¼î2ÿ ï5î.¼î2î5&î;ÇïŽî.¼î2Yî7cî9íïæî.¼î2î5Š î<6rï Iîâîùî‘î"=î&Ïÿ‚TVm$•DRAGONMBUSSPECIFICATIONS2Contents1.Introduction2.BusSignals3.BusOperation4.BusTimingA.IOAddressSpaceDefinitionDRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî yî!$ïgïgî!øxî%èïgïgî'Âyî(ªïgïgî)�xî+ïgyïgî+É tïgîEÉzï^õîâ{ï[§î¤î0 ïXXî¤î0îòïU î¤î0îòïQ»î¤î0îòïNlî¤îsîœî¼îÈ yïî…î /î%ªî'.î*î0yî4ôî7›ÿ“TVm$qDRAGONMBUSSPECIFICATIONS3 1.IntroductionTheMbusisahighbandwidthsynchronousbusthatconnectsthecomponentsofaDragoncluster.ADragoncluster(Figure1)consistsofoneormoreDragonprocessorsattatchedtothebusthroughcaches,somemainmemory,amapprocessor,adisplaycontroller,andoneormoreI/Oprocessors.Thereareapproximately75wiresontheMbus.Themultiplexeddata/addresspath,whichischeckedbyasingleparitybit,is32bitswide.Fouradditionalwiresdefinethebuscommand,whichencodestheactionduringthecurrentbuscycle(abuscycleisdefinedinthesamewayasaprocessorcycle:namely,onecompleteperiodofthesystem-widetwo-phaseclock;thesetwophasesarelabeledAandB,byconvention).Apairofrequest/grantlinesforeachbusrequestoralongwithmiscellaneouscontrollinesmakeuptheremainingsignalsonthebus.AddressesontheMbusarerealasopposedtovirtual,andtheunitofaddressingisthe32bitword.However,forefficientbusutilizationthetransfertoandfrommemoryisin4-wordchunkscalledquads.Thereisasingle,centralarbiterthatpermitstheMbustobetimemultiplexedbetweentwoormorecontendingdevices.Thesedevicesmakerequeststothearbiterusingthededicatedrequestlines,andthearbitergrantsthebususingthededicatedgrantlines.Thearbiterusesaround-robinalgorithmtoguaranteefair(bounded-time)servicetoeachrequestor.Adevicethathasbeengrantedthebusiscalledbusmaster.Thesequenceofcyclesinitiatedbyamasterwilltypicallyinvolveatleastoneotherdeviceonthebus;suchadeviceiscalledaslave.Currently,theonlydevicesthatcanbecomemasterarethecaches.Cachescanalsoactasslaves,ascanalloftheotherdevices.SomeMbuscommandsstartafixedsequenceofcyclesthatarereferredtoastransactions.Transactionsprovidethemechanismforusingthe32-bitwidedatapathfortransferringmulti-worditemssuchasquads,andalsopermitthetransferofdataonthebustobeflowcontrolled.Fivetransactionsarecurrentlydefined:ReadQuad,WriteQuad,WriteSingle,IORead,andIOWrite.ReadQuadpermitsacachetoreadaquadfromanothercacheorfrommainmemory.WriteQuadisthelogicalinverseofReadQuad.WriteSingleistheoperationusedbyacachetowriteasinglewordtoanothercache.IOReadandIOWritearegeneralizedIOoperationsthatareusedtodomapoperationsaswellastotransferdatatoandfromIOdevices.Theremainderofthedocumentgoesintogreaterdetailaboutthestructure,operation,andtimingoftheMbus.Thenextsectionliststhebussignalsindetailandgivesthemeaningofeachsignal.Section3nextusesthesesignaldefinitionstoexplainhowthebusoperates:itdiscussesarbitration,liststhesetofbuscommandscurrentlydefined,showshowthesecommandsareusedineachofthepossibletransactions,andhowtransactionsareusedtomaintaincacheconsistency.Finally,Section4discussesthetimingofarbitrationandofeachtransactionindetail.Theappendicesprovidedetailsthatdonoteasilyfitintothemaindocument.2.BusSignalsTheMbushas73signallinesthatarelistedbelow,togetherwiththemeaningofeachgroupoflines.Thedescriptionusesthefollowingnamingconventions:S[a..b)denotesagroupofb-alinesthatencodethebitsrepresentingthesignalS;DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî yî!$ïgïgî!øxî%èïgïgî'Âyî(ªïgïgî)�xî+ïgyïgî+É tïgîEÉzï^õîâî¾ xï[¦î¤îtîFîÕî8îZîxî%L î-2î/Áî2‡î8î:r ïYÿîâî©îáîîîLîçî"õî'iî,`î.î3*î4ñî7«î9}î=ïXXîâ î^î+î¾îî!|î&˜î+$î.›î1ýî7¦î8´î;² ïV°îâî î¾ îVî î ¹î"}î&î(Ý ïT5î¤î�îè î âî"¾î&Iî(Gî*žî,pî/Ñî2¡ pî:/ïT5ïT5î:ßxî<°ïT5pïT5î=axïRŽîâîWî[î½îîóî î#ôî'áî*Mî+®î-Šî0!î4µî8 î>‹ïPçîâî'î’pî4ïPçïPçîÏxîÊïPçïPçî²î"Ìî(î*zî.žî3î5…î:Zî<üî@{ïO?îâî™î-îºîÛîªî +î#Éî&Âî(‘î)Ûî0î4î9iî<6ïM˜îâîKîî îOî%àî)ûî-“î0Mî4Áî7#î;úî=”î@ZïKñîâî îÄî{î~pî bïKñïKñî æxî$}ïKñpïKñî%.xïKñî(ðî,Vî.¾î2î4Úî;î?ïJIîâ pîˆïJIïJIî#xïJIîî=î"äî$èî':î-­î2î4î6Xî9¯î@ïH¢îâîYîKîùîeî3îùî"Šî$Pî)î+êî.aî1]î3- î: î;�î>î@ïFûîâîPî‰îËî!(î#à î*?î,£î1³î3fî6"î9�î>ÿî@pïESîâî”îHpî?ïESïESîïxî‘ïESïESïBØî¤î îî,îjî ìî%Xî(!î-î/kî1Aî3Òî5{î7gî:‡ ïA1îâî;îÑî€îý î#î(~î,jî1pî4¼ïA1ïA1î5@xïA1î9Ëî;cî=­ï?Šîâî†îáîîáî#oî&!î({pî,æï?Šï?Šî-—xï?Šî0ýî3Xî5éî9�î;èï=âîâî'î¡î*î!Lî$÷î&Ò î/Fî67î8—î?“ï<;îâ îÄîWîî"Q î)[î*ôî/Fî2!î4¤î8 î=î?‡ï:”îâîzîžpîaï:”ï:”îwxï:”îôîùî&î'óî,î1§î3Ïî5%î9Âî<™ï8ìîâî’îî î”îî"2î$î&Sî)@î,Oî-Vî1xî2Áî6–pî7�ï8ìï8ìî8"xî:kï8ìï8ìî;† ï7Eîâîiîªîšî�îBî$€î)î+“î.î3”î8oî;!î>î@pï5žîâî%îÔî_îOîîgî!ï3"î¤î~î\î÷î áî#öî%$î(¦î.“î0Pî4Lî7î9wî>½î@ppï1{îâ xîÛï1{ï1{îŒ î¬î$ßî'gî.Áî1'î4øî7€î;Ÿî?ï/Ôîâîîq îð î#-î&íî*4î+÷î0hî35î6î:žî=ï.,îâî¯îÈîãîWîîÄîÉî!÷ î)~î,· î4Kî6³î<¤ï,…îâî< îØ î%×î+‚î.Uî4áî;ãî@ôï*Þîâî¬îXîpî—îîxî$�î(Jî* î-qî0ëî70î>Uî?¾ï)6îâî9îéîŸî!\ î(äî*Mî,ªî2Ñî6 î8î9+î<ôî> ï'�îâîîãîaîîî"šî'Æî*tî/âî2+ î9^î;p ï%èîâî—îÑîóîˆîvîw î$ î% î(tî* î+�î0�î3zî5î7­î:ûî<ýï#mî¤î¦îiîLîÖî&nî)²î,µî1|î5rî9î< ï!Åîâ îfîî{î6î —î"sî%éî(Ãî+Õî0tî37î5™î81î<£î>Sï îâî¬î1î£îPîî"_î'Lî,?î-†î0¨î3µî7Qî;O ïwîâîoî!îîBî·î"}î#²î)W î0Rî2óî51î7,î8Ãî;9ïÏîâîúîŒîÔî"î%Öî,öî/„î2úî4ãî8Oî:Bî<Üï(îâ îÁîîŠ î$î&kî)®î+cî1%î4ø î=ï�îâîÈîîÑî8î!™î#X î*$î,âî.¢î1Ú î8Üî:‘î?FïÙîâ îôîÿîOî"î$$î&™î*cî,2î/ î1jî4çzï<îâî¾î xï íî¤î|îWîîîdîJî!5î$qî'@î)”î-?î1¤î7 î:$î<„ï FîâîÉî(îXî?î²î!¸ î(øî,î.¬î4íî: ï žîâï žî7îTî�î¤îoî!êî%7î(î,Üî/Nî2 î9ëî<\î@Yyïî…î /î%ªî'.î*î0yî4ôî7› ETVm$tDRAGONMBUSSPECIFICATIONS4mostsignificantbitsofthesignalarewrittenleftmost.Asignalrepresentedbyasinglewireiswrittenunencumberedwiththe[)notation.Allsignalsareassumedtofollowpositivelogicunlesstheyhavean"n"atthebeginningofthesignalname.Finally,theletters"AB"areappendedtosignalSifitiscomputedduringphaseAandbecomesvalidduringthefollowingphaseB.SlavesshouldnotassumethatthebusbecomesvalidduringA.TheactualsetuptimeatwhichthebusbecomesvalidattheslavespriortothefallingedgeofBhasnotyetbeendetermined.Itisapproximately20ns.MCmdAB[0..4)ThesefourlinesencodetheMbuscommand.TheMbuscommandspecifiestheactioninprogressduringthecurrentbuscycle;itmaybeassertedeitherbythemasterorbyaslave.ThecommandscurrentlydefinedarediscussedlaterinSection3.2.MDataAB[0..32)Theinterpretationofthese32linesdependsonMCmdAB[0..4).FormostcommandstheMDataABlinessimplyrepresentthe32-bitaddressordatacorrespondingtoareadorwrite;forothercommandstheinterpretationismorecomplicated.ThedetailedinterpretationappearsinSection3.2.AswithMCmdAB,theselinesalsomaybeassertedeitherbymasterorslave.MParityABThislinecarriestheparitybitforMDataAB[0..32).Theparitycomputedisoddandisvalidonlyduringdatatransportcycles.nMSharedThislineisusedbythecachestomaintainconsistencyformultiplecopiesofread/writedata.Whenacacheputsoutareadorwriterequestonthebus,othercachesmatchtheaddressonthebuswithaddressesforwhichtheyhavevaluesstored.WheneveracachefindsamatchitpullsnMSharedlow,signalingthatthedatumisshared.Notethatthissignalisassertedwhenlow.nMAbortThislineisusedtopreventmemoryfromrespondingtoaReadQuadandhaveacacherespondinstead.LogicallyspeakingnMAbortisnotnecessary,sincenMSharedcanalsobeusedtogetthememorytoabort.However,thiswouldrequiretheimplementationtokeepanadditionalstatebitforeachcacheentry,whichisexpensive.ItwouldalsorequiremorebandwidthfromtheRAMinthecache.Notethatthissignalalsoisassertedwhenlow.nMErrorThislineisusedtosignalabuserror.Theonlybuserrorcurrentlydefinedisbusparityerror.Notethatthissignalisassertedwhenlow.Normally,apullupresistorensuresitisnotasserted.DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî yî!$ïgïgî!øxî%èïgïgî'Âyî(ªïgïgî)�xî+ïgyïgî+É tïgîEÉxï_,îâî\ îîÐî§î $î$,î&�pî+nï_,ï_,î+Ñxî0ï_,ï_,î1¡î3Jî7S î>Ûî@ôï]…îâîàîî€îE î%¾î(ìî+^î,Ñî3Aî5¦î:(î<Žï[Ýîâî…î³î½îî!î$ î'\î)Aî+âî-oî/Äî6$î7Òî:'î>ïZ6îâîêîHî_î2î „î&Ùî(†î,pî-¹î/î0mî1×î8Cî<²î@‘ïX�îâî°îaîßîfî!Ýî(î+þî/ î3Rî7åî:pî?PïVçîâîKîêîŽîþî!xî#óî&Ôî*àî.”î1Âî3dî7{î9äî<ƒïU@îâîLîçîHî6î«î\î!½î&î)Lî+î,vî.íî1dî3°î7 î?8î@²ïS™îâ îä{ïPIîâ xïLùî¤î¬î·îøî ²î#î$ùî'–î.àî1¿î3 î6=î<¥ïKRîâî=îRîüîeî Òî#-î'òî*…î.mî/¿î2¿î4«î9ßî=Çî?¾ïI«îâî?îðîÙîïî îÑî%£î+mî0Zî2›î8‘î;£î=>ïHîâ{ïD´îâ xïAdî¤î¹ î–îŒî#Sî%uî(îî.šî0Þ î;Ùî>Áï?½îâîXîGî zî$Eî)Eî/Óî2Ãî7Kî<Åî?ï>îâ îîÖî'îiî Tî$rî&×î*�î1ªî41 î<øî>‹ïî6‘îï(’îâîdî¹îJîfî!žî$/î&÷î*Cî0ˆî2÷î76î:xî=ðï&êîâîõî—îÊî î#î$Qî(î)ßî-Eî4î7î<æî?¾ï%Cîâî2îžîßîVî $î"Æî&±î(î-Tî1 {ï!óîâxï¤î¤î·îgîËîî¨î"¡î(î+h î2}î4%î5Hî<'î>×ïüîâîhî�î/î vî&Ãî,Ðî3Jî5î7ã î>«ïUîâîÞî î£îËî!>î##î%£î(9î-Ýî/Ãî4«î;î=ðï®îâîÝîo î î"`î%ãî( î.¯î2î4aî6Ñî:4î>2ïîâîî‡ îÙîgî!«î$�î)lî-î4î7„î9ùî=úî?¾ï_îâîŠîîÎîpî [î#(î$“î)Ëî-€{ïîâxïÀî¤î¿îwîäî"îÑî!¾î"éî%�î)Òî,«î/Çî2_î5Òî;°î@²ïîâî•î¨î.îÁî «î#iî'pî(øî.Kî2î5Ñî•ïKRîâîbî¤î®î¥îBî öî&kî( î*†î0î4*î7 î<‰î?ÊïI«îâî§îŸîûî>î!Nî"øî&öî)hî-rî3‚î4êî:Ãî=V{ïF\îâxïC î¤îêîÌîdîý î'"î)Ïî+fî0[î26î7Ïî:’ ïAeîâîî„îóîPî!7î#¯î(’î-î.Ÿî3>î5 î;•î>î@½ï?¾îâîmîÃîd îWî ñî#•î'šî.î0€î5Kî9½îîâîQîiî”î¼î+î ×î"Üî(T î/Òî4Üî:îî,î î#Ìî(ºî+ùî0,î1§î7Fî9¿î=Ûï!ùîâî¸ î¼îFî î"0î'7î(î-rî/?î1½î7Gî:ãî?‡ï Qîâîîoî•îõî½î$Œî&A î-î2¢î4™ î;‘ ïÖî¤î� î°îÎî"·î&Fî(j î0,î1µî4ìî:åî=Vï.îâîÅîeîSî îî ¹î#!î%Gî' î.’î3œî7Oî:áï‡îâî� îHî îpî$9î'@î+“î1Qî3³ î:éî<¤ïàîâîîÊî1 îöî#×î&°î+èî0Cî1ý î8Âî;zî=3î@eï8îâîA îÂî-î¢î bî"uî%�î(î)|î+ñî-Ÿî2~{ïéîâî xïšî¤î¢î7î÷î Ë î'µî*/î,´î4³î85î=’î?gïóîâîîæî×î }î#jî&î*þî-ëî/Kî3lî6Xî<þî@oï Kîâî@îÑ î×î ^î$�î)ðî,Jî.Ûî0Ñî6qî8Fî=î@œï ¤îâîzî+îªîAîiî©î%%î'Éî*î,˜î-ðî1î3Nî7«î=tî>Šyïî…î /î%ªî'.î*î0yî4ôî7›ÿ QTVm$,DRAGONMBUSSPECIFICATIONS6cycleinwhichitissuesthebusbyassertingtheMGntlineforthehighestprioritydevicethathasMRqasserted.Priorityisround-robin,withthedevicelastgrantedthebusreceivinglowestpriority.ThebusrecipientkeepsMRqassertedforaslongasitwantsthebus,andthearbiterinturnkeepsMGntasserted.Ifthemasterisexecutingalongsequenceofcyclesthatisnotrequiredtobeatomicwithrespecttootherdevices,itassertsMNewRqtoindicateitswillingnesstogiveupthebusifthereareotherrequestspending(forcorrectoperation,MNewRqmustbeassertedonlybythecurrentmaster).MNewRqcausesthearbitertodoagrantcycleeventhoughthemasterstillhasMRqasserted.Sincethemasterbecamethelowestprioritydeviceuponreceivingthebus,itwilllosethebusifanyrequestsarepending.Thisstrategypreventsamasterfromhoggingthebus.Atthesametime,itavoidswastingcyclesinthecasethatnodevicesarewaitingtogetthebus.Asolutioninwhichthemasterreleasesandreacquiresthebus,forexample,doeswastecyclesinthiscase.3.2MBusCommandsThereareamaximumofsixteenMbuscommands.Nineofthesearecurrentlydefined,andtherestarereservedforfutureuse.Inthedescriptionbelow,thedecimalnumberinbracketsafterthecommandnameindicatestheencodingforthecommand.DataTransport{0}Thiscommandisusedduringcyclesinwhichdataisbeingtransportedbetweentwocachesorbetweenacacheandmainmemory.MDataAB[0..32)carriesthedata.TheMParitybussignalisvalidonlyduringDataTransportcycles.ReadQuad{1}ThiscommandisissuedbythemasterduringthefirstcycleofaReadQuadtransaction,whichreadsaquadfrommemoryorfromanothercache.Aquadisfourcontiguous32-bitwordsalignedinrealaddressspacesuchthattheaddressofthefirstwordis0MOD4.DuringthiscommandMDataAB[0..32)istheaddressofoneofthewordsinthequad,anditisthiswordthatwillbereturnedfirstduringsubsequentDataTransportcycles.WriteQuad{2}ThiscommandisissuedbythemasterduringthefirstcycleofaWriteQuadtransaction,whichwritesaquadtomemoryortoanothercache.MDataAB[0..32)holdstheaddressofthequadwhich,unliketheaddressforaReadQuadtransaction,mustbe0MOD4.WriteSingle{3}ThiscommandisusedbythemasterduringthefirstcycleofaWriteSingletransaction,whichwritesasinglewordintotherealaddressspace.WriteSingleneverwritesthewordtomemory,butonlytocachesthathavethequadcontainingthewordbeingwritten.MDataAB[0..32)carriestheaddressoftheword.DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî yî!$ïgïgî!øxî%èïgïgî'Âyî(ªïgïgî)�xî+ïgyïgî+É tïgîEÉxï_/îâî`îî1î’î}îçî"‰î$�î*?î,©î0íî3®î5öî8`î=)ï]ˆîâî*îýîvî#î">î'Aî(± î0Ïî3îî6Qî:šî=ï[àîâîAîØî´îíïYdî¤î�îîÔî ¯î$_î)œî+ßî-’î0²î2eî3Áî7¨î: î=î?¾ïW½îâîUîîîæî #î&;î'Àî*"î.•î0î61î7]î:zî@eïVîâîîî¼îiî 2î"î$Aî(õî,Hî1)î3î6çî<@î=ÏïTnîâîiî.îrîd î%uî':î*?î,hî.ßî1Œî3î6¤î9î<ÅïRÇîâî}îvîJ î#î)Áî-kî/žî5î8tî:²î=TïQ îâî×î_î°î"(î&°î(vî*•î+Öî/‚î3 î6kî;6î=®ïOxîâî î3îúîHî"î$—î)%î.Cî0¿î5î:(î>ŠïMÑîâîäîjî~îûîÌî!¿î$Dî'î(ˆî+Oî0Îî3Gî9Èî=ïL*îâîcî‰îõîXî"–î$òî(]î*Tî,°î0)î3£î4öî96î>'ïJ‚îâîºîCî\îTî„î wî"ôî'òî)Êî,=î.Æî2Œî4Cî9¯î;‡î?¾ïHÛîâîRî\î î!¡î$î&ïî)-pî.þïHÛïHÛî/®xïHÛî2î5Âî9¹î;gî> {ïE‹îâîîîÆxïB;î¤î”îÖîîî^î!î%�î'Xî)Ýî1{î4àî6‡î9ÿîíîâîùîîÀî î#Lî%¢î+úî/°î5Wî7­î=‹î?¾ï=Eîâpï9õîâ îÿxï6¥î¤î®îÿîZî†î#çî'Îî)lî-jî0_î1»î5v î<¯ï4þîâî€îÁîwî×îòî!°î$Yî'Èî-ô î8%îÁï3Wîâîºîî¨î”îÿpî"gï3Wï3Wî#xï3Wî%cî)Ó î3pï0îâî‘xï,·î¤îàîdîòî!8î#Vî%Øî*kî.þî1€î4{î8î9ìî;8ï+îâ îPîxî0îtî# î&�î,î-òî1sî6˜î;sî=î@²ï)hîâîî îçîçî üî%×î'�î*Lî/>î2ûî65î9 î;sî@eï'ÁîâîAîî¡î yîAï'Áï'ÁîRxï'Áî˜î¨î$pî'î-r î7±î9î;{î@eï&îâî–îXîÀîÖî�îõî!Õî$•î%ôî'hî*î-¤î0{î3/î5(î:Ìî=­ï$rîâ î î:pï!"îâîëxïÒî¤îÛîZîãî!$î#=î%ºî*Gî.Öî1Rî4Hî7Ùî9¯î:öï+îâ îEîaîrîªî#7î$ôî*pî,Cî.î3î7ß ï„îâî…îÓî¬îTî¢î!î%cî)‹î+Ùî0±î2Ýî3õî:Ê ïÜîâîJî;yîoïÜïÜî�xïÜîÇpïŒîâ îfxï<î¤îåînîî eî"ˆî%î)§î.@î0Çî3Çî7aî9Bî:“ ï•îâ îgî¥î×î 2î$Nî(î+î-Ÿî0‡î5¡î:“ ïîîâî©î§îîˆî3î#õî&rî)ˆî+3î/€î2Kî5Žî7êî;e ï FîâîAîÊî•î$ î(cî,½î/î4î5¿î8yïî…î /î%ªî'.î*î0yî4ôî7›ÅTVm$<DRAGONMBUSSPECIFICATIONS7ChangeFlags{4}ChangeFlagsisusedbytheMapprocessortogetaspecifiedsetofcachestomanipulatetheirmapentries.ThiscommandistypicallyissuedinsideanIOReadorIOWritetransaction.ThesetofcachesaddressedisencodedinMDataAB[0..4].ThevalueallonesindicatesallcachesontheMbus,andanyothervalueindicatesjustthecachesconnectedtotheprocessorwiththisvalueasitsnumber.MDataAB[5..7]isafunctioncodethatspecifiesthemanipulation,andMDataAB[8..31]containsarealpagenumber,whichisvalidonlyforsomeofthefunctioncodes.Theinterpretationofthefunctioncodesisasfollows(inthetablebelowrpstandsforrealpagenumber;vpstandsforvirtualpagenumber;wtEnabledisabitpercacheentrythatmeanswritesarepermittedtotheentry):MDataAB[5..7]MdataAB[8..31]Meaning0rpclearvpValidandwtEnabledforallvp'sthatpointtothisrp1rpsetwtEnabledforthisrp(TheundirectedversionofthiscommandisunsafebecauseitcouldcausewtEnabledtogetsetevenwhenwritesarenotpermitted:eg.twospaces,onewithwritespermitted,theothernot)2undefinedclearvpValidandwtEnabledforallvp's3undefinedclearwtEnabledforallvp'sIORead{5}IOReadisusedbyamasterduringthefirstcycleofanIOReadtransaction.MDataAB[0..31]containstheIOaddress.TheIOaddressspaceiscarvedupintodisjoint,contiguouspieces,withatmostonedevicerespondingtoeachpiece.SeeAppendixAforafulldefinition.IOWrite{6}IOWriteisusedbyamasterduringthefirstcycleofanIOWritetransaction.MDataAB[0..31]containstheIOaddress.IODone{7}IODoneisusedbyaslavedevicetoterminateanIOReadorIOWritetransactioninwhichitisparticipating.MDataAB[0..31]containstheresponseiftheinitiatingcommandwasIORead;MData[28:31]containstheM-Busfaultbits,whichareencodedasspecifiedinDragon.mesa.Reserved{8..14}DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî yî!$ïgïgî!øxî%èïgïgî'Âyî(ªïgïgî)�xî+ïgyïgî+É tïgîEÉpï_,îâ îxï[Üî¤ îêîlî¿î Ñî#Gî&¤î,Îî.“î0óî23î8î:9î< î@oïZ5îâ îînî—î"î%)î+˜î-î2¦î6Øî:èî<çïX�îâî¯î1 îî ýî##î$åî)>î/žî1î6–î8N ïVæîâî½îiî\î�î Bî"5î&ˆî(‘î*óî,Ðî/Áî2{î5î8Àî¶ïN¡îâî×îŽî¥îÊîiî —î&%î( î,î.Eî2‡î5µî;CïLúîâîNîwî•î îÖîiî 8î${î(}î*Ñî1î2Ëî5+ïHÖîâ î} ïHÖî-äïFZî€ïFZî#ŽïFZî-ãî15î6aî9ïD²ïD²î-äî0!î2î4éî7·î;Vî=î?¦ïB6î€ïB6î#ŽïB6î-ãî0î6Ûî9î;ºî=‰ï@Žï@Žî-ä î4¿î9‡î;@ï>çï>çî-äî4Eî5°î: ï=?ï=?î-äî/:î3î6»î=•ï;—ï;—î-äî0,î2Iî5�î9Dî=Fî?šï9ïï9ïî-ä î4ÿî7‡î:Šî?rï8Hîâï6 ï6 î-äî1å î8‰î:éî>ˆï4$î€ï4$î#Žï4$î-äî15î6aî9ï2|ï2|î-äî0!î2ï0î€ï0î#Žï0î-äî15î8î:Mî<=pï,°îâîxï)`î¤îüîŠîçîîPî#ãî(uî*öî-ðî1…î3`î5rî:Ê ï'¹îâ î!î›î!î#Bî)4î,"î.Tî3Tî7 î8¢î=î?Fï&îâî/ î,î¨î"Ïî$sî'Ûî*’î.â î6 î7Äî;î?ˆï$jîâîCîÐî î7îÁ pï!îâîhxïËî¤î4î·î îî`î#èî(pî*çî-×î1bî32î5:î:Ê ï#îâ î înî Îî"êpïÓîâî2xïƒî¤îçî3îPî,î6î!~î%£î'2î-<î/ î4$î5Éî;" ïÜîâî î¿î%î¢ î ™ î*Òî0Fî2¶î8kî9Üîîâîˆyïî…î /î%ªî'.î*î0yî4ôî7›‹TVm$#DRAGONMBUSSPECIFICATIONS8Commandcodes8through14arereservedforfutureuse.NoOp{15}Thiscommandisusedtoindicateidlebuscycles.3.3MBusTransactionsTherearecurrentlyfiveMbustransactions:ReadQuad,WriteQuad,WriteSingle,IORead,andIOWrite.ReadQuadReadQuadreadsaquadfrommainmemoryorfromacache,dependingonwherethecurrentvaluelies.Recallthataquadisfourcontiguous32-bitwordsalignedinrealaddressspacesuchthattheaddressofthefirstwordis0MOD4.ThenumberofcyclesinaReadQuadisvariablesincethetransactionisflowcontrolledtoallowthememorymoretimetorespondwhennecessary.InthefirstcyclethemastercacheissuesaReadQuadcommand,withMDataABequaltotheaddress.Thenfollowoneormorewaitcycles,andfinallyfourDataTransportcycles,eachcontainingoneofthefourwordsofthequad.Duringthesecycles,MCmdABandMDataABareassertedbytheslave.Notethatthefirstworddeliveredisnotnecessarilythefirstwordinthequad,butthewordactuallyrequestedbytheaddressinthefirstcycle;theotherthreewordsaredeliveredinorderofincreasingaddress(MOD4).WriteQuadWriteQuadwritesaquadtomainmemoryortoawillingcache.ThetransactionstartsoutwithaWriteQuadcommandfromthemaster,withMDataABequaltotheaddressofthequad(notethatthisaddressmustbe0MOD4,unliketheaddressforaReadQuad).ThenfollowzeroormoreNoOpcycles,withMCmdABbeingassertedbythememoryandMDataABdriventothefirstdatawordbythemaster.Whenthememoryisreadytoacceptdata,itsetsMCmdABtoDataTransport.ThisstartsasequenceoffourDataTransportcyclesinwhichthewordsaretransported.WriteSingleWriteSinglewritesasinglewordouttotherealaddressspace.UnlikeWriteQuad,aWriteSingleneversendsthewordouttomemorybutisdirectedexclusivelytocaches.WriteSinglesarenotflowcontrolled,andalwaystaketwocycles.InthefirstcyclethemasterputsoutMCmdAB_WriteSingle;MDataAB_address.InthesecondcycleitputsoutMCmdAB_DataTransport;MDataAB_datatobewritten.IOReadTheIOReadandIOWritetransactionsareusedbycachesasageneralwayofcommunicatingwiththeMapprocessorandwithIOdevices.The32bitaddressofanIOReadorIOWritedefinesalarge,unmappedIOaddressspacethatiscommontoallprocessors.Thisspaceiscarvedupintodisjoint,contiguouspieces,withatDRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî yî!$ïgïgî!øxî%èïgïgî'Âyî(ªïgïgî)�xî+ïgyïgî+É tïgîEÉxï_/î¤îgî3îgî"Ÿî$„î&Øî,Qî.Žî2²pï[àîâîîxïX�î¤î¾îîŠîÆî!uî&¡î)Xî+ï{ïUAîâîîîÆ xïQòî¤î{î¥îXîåî!•î$ î+Ñî2å î:; ïPKîâîqî(pïLûîâxïI¬î¤î®îrîÀî!cî$ïî(‘î.#î0 î3—î4åî9.î@ïHîâîî î�îYî!ðî&Lî)>î*Šî.,î/»î2â î9÷î>ïF]îâîµîcîîî ¹î#ëî&¹î)î.î/¼î2î4óî8|î9çyî;ïF]ïF]î<.xïF]î>tïCâî¤î‘îÒî î­î!pî"¯î)ªî+*î0vî3þî6r î=ƒî?ïB;îâ îiîîÊî.î" î&7î)bî+î0[î4 î;î<âî?Fï@“îâîjîÞîcîCî!9î"wî)rî0@î3oî:&î=ûî?¾ï>ìîâîzîî#î¸î eî#áî&Äî*üî-�î1Éî4· î=Îï=Eîâî îÁîgîîtî"rî&yî(-î*†î.Õî3˜î7î;fï;�îâî¨îXîºî î" î$wî(×î,\î/8î1¦î4Œî8#î>/î?©ï9öîâ î¤îìî­îîµî!ýî%¼î(&î*nî-ßî2Þî9î:ìî=4ï8Oîâî‘îñîÉî¶îî¶î#@î'Mî)¡î/Ÿî1Nî5î6½ î=4yï6§îâxï6§î›yîKï6§xï6§î¬pï3Xîâxï0 î¤î¯î”î¢î!î"–î%÷î+Gî,ïî.�î/Žî3÷î8fî;" ï.aîâîhîÐîÜîøî î&eî)¾î,î0Êî3×î:lî>î?¾ï,ºîâîÆîxîÒîJî×î!Ÿî$;î)î,€î.jyî/™ï,ºï,ºî0ªxï,ºî2êî4qî8¤î:ýî?áï+îâîê îàî]îsî"Tî#öî'gî+‚î/¯î2¨î9>î<çï)kîâîèîQîÉîŠî"7î&�î(Iî*²î-”î0£î46î6<î8¥î>ï'Äîâî?îªîîÛî‡î!¿î%î&mî) î/Áî1m î;rî>Šï&îâî îôî­î± î#àî'×î)…î-“î/óî3ÿî6S pï"Îîâ xï~î¤ îšîîœî#óî'çî*Èî,âî/­î2Ïî8%î=�ï×îâ î�î îÈî#Îî'Êî*eî.)î0Ùî2Ãî8lî;(î<Ðï0îâ îúîÑîN î%…î(î*žî-à î4ãî7ÃîïW¾îâî=îcîJîÿî î!êî&î(�î,&î/Nî1æî7¹î:]ïVîâîEîYîoî nî"qî%}î)†î.Ðî0Þî3Pî6Éî8Šî;Šî>øïToîâî¤îQî)îÛîæî"Çî%:î(µî,©î.kî3tî55î:î<�ïRÈîâîìîKî²î¸î-î&îî,Êî4uïPMî¤îy îîÌî ¹î%îî'Wî,Sî.cî0î2k î9…î> ïN¥îâî8î<îSîmîÔîþî"´î&ùî(½î+Áî/vî3 î5áî:î;ÉpïKVîâxïHî¤î îÿîîöî#oî%î'^î)kî.Fî2¸î4 î5}î8:î;D ïF`îâî¯î îáîRî¯î î"»î*yî0iî8 î@OïD¹îâî:îÄî0îˆîçî"ìî'­î)Tî-‰î/Fî4¡î7Pî9¨î>ïCîâîUîÑî+îŒî î"wî'Ôî*. î1$î2Šî9Bî?¾ïAjîâîVîÏî©îeîúî Ðî#”î*Dî,�î.ûî2qî55 îîâîýîíî®î!Šî)5 {ï:Ìîâîîøî& îºxï7~î¤î±î² î î%Óî'sî)Wî.Œî4;î8žî:Œî;ëî@pï5ÖîâîÏî7î¶î Iî&î+@î.rî4î7åî=ï4/îâî2îîwî|î"Jî%Nî'?î+òï1´î¤înî¢îëî!=î#¤î%Oî'¡î.Xî1î7î9›î<Èî?rï0 îâ îpîFï0 ï0 îÊxï0 î±pîŽï0 ï0 î ?xï0 î#®î'÷î+7î.Žî23î4î5Vî:Iî=î>jï.eîâî¾î%î�îî7î bî"nî&î)äî/Mî1²î6îHïHîâîwîêî|îûîÌî?î$ø î,–î/Tî3ûî5þî9°î=òî?¾ï¡îâîXîîµîóî î"²î$Xî&Aî+Êî/@î0Ðî3hî6†î8î;jî>î?¾ïùîâî0îØîîGî ;î$¾î'Àî*2î, î.:î/Ðî2î3Ìî8rî9Ðî<-î?©ï RîâîWî´îgî?î²î!î#³î&Îî*5ï ×î¤îŽîÚîáî!¯î&¦î*:î,¯î3î7aî8¬î< î?Àyïî…î /î%ªî'.î*î0yî4ôî7›ÿ ËTVm$@DRAGONMBUSSPECIFICATIONS10onethathasn'tbeenwrittenouttomemoryyet)existsinothercachesoritdoesn't.Inthefirstcasetheowner(andpossiblyothercaches)assertnMShared.TheowneralsoassertsnMAbort,preventingthememoryfromresponding,andthenproceedstosupplythequadtothemaster.Thesecondcasebreaksdownintotwosubcases.Inthefirstsubcasenoothercachehasthequad,nMShareddoesnotgetasserted,andthequadcomesfrommemory.Inthesecondsubcaseatleastoneothercachehasthedata,thenMSharedlinedoesgetasserted,butthequadstillcomesfrommemorybecausenocacheassertednMAbort.4.BusTimingThissectiongivesthedetailedtimingofbusarbitrationandofeachofthetransactionsjustdescribed.Inthetimingdiagramsusedbelow,eachrowcorrespondstoonebuscycle.ActionsduringthecycleareindicatedusingMesalikestatements.Idlebuscyclesareindicatedbyshadingasinglerowofthetimingdiagram,witheachshadedrowrepresentingzeroormorecycles.Thevariablewwillbeusedtorepresentthenumberofwaitcycles.Foreachofthedescriptionsbelow,cycle0willbethecycleinwhichtherequestorassertsMRq.Forsimplicity,thetimingsforeachofthetransactionswillassumetheminimumarbitrationdelayofzerocycles.4.1ArbitrationThetimingforarbitrationappearsinFigure2.ArequestorassertsMRqduringphaseBofcycle0.ThearbiterlatchestherequestduringtheAofcycle1,andifthebusisfreeMGntgetsassertedintheAofcycle2.ThenewmastercandrivethebusduringtheAofcycle3.Thustheminimumarbitrationdelayisthreecycles.Ifthebusisnotfree,zeroormorewaitcyclesgetinsertedimmediatelyaftercycle1.MNewRqbehavessomewhatdifferentlythanalltheotherbuslinesasfarasmastershipisconcerned.ArequesterbecomesbusmasterwithrespecttoMNewRqduringtheBofcycle2+wwhileitacquirestherestofthebusduringtheAofcycle3+w.Conversely,itrelinquishesMNewRqduringtheBimmediatelyaftertheAduringwhichMGntfalls.TheearliestMRqcanbedeassertedisduringcycle2+w.TheearliestMGntisdeassertedinresponseisduringcycle4+w,andtheearliestanewdevicecanbecomemasterisduringcycle5+w.4.2ReadQuadFigure3showsthetimingforReadQuad.Cycles0through2aretakenupbyarbitration(recallthatweareassumingtheminimumarbitrationdelay).Thefirstcycleofthetransactioniscycle3,duringwhoseAthemastersetsMCmdAB_ReadQuad;MDataAB_RQAddress;nMShared_true;nMAbort_true.Cycle4isalwaysadeadcycle:thememorysetsMCmdAB_NoOp;slavecachessetnMSharedtofalseifthereisamatch;andaslavecachethatisowner,ifthereisanowner,setsnMAbort_false.Nexttherearew(zeroormore)waitcycles,withDRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîExï_'îâî‹îWîWî±î bî"Õî$�î)ëî,«î0]î2 î5¦î9óî;µî=ï]îâî¦îúîÇîªîþî!î"Fî'ˆî+î/Úî3™î;#î=ðï[Øîâî½îîŸ î#‡î%õî+pî.å î6hî9.îRïU;îâîtîðîjîæî Çî#›î&èî)Mî.úî1—î4î7¯î:lî>·ïS“îâîOîqîwîCî$zzïLöîâî¾î xïI§î¤îðîÀîdîöî%aî)íî+Ùî.¢ î5™î8ƒî:oî=Óî?¾ïGÿîâ îBîà îˆî!7î#vî'°î-kî0‡î4Ëî7Üî:} ïFXîâî…î&î±îéîÞî#Cî%—î(ÿî+Gî10î4Îî8lî; ïD±îâîÉîoîvîØî Ûî"æî( î)Eî-Óî0¤î2lî4Ûî9Dî?ïC îâîîÍî— î!xî$…î&Qî)íî.Òî1³î6òî8}î;1î=+î@oïAbîâîàî?îlî%î!ï>çî¤îŒîúîðî� î$aî)î,³î.%î1 î3;î5Øî9ˆî;sî?¾ï=@îâîùîJîÕî ‚ î'î)î.`î0Ÿî3Óî5Žî7ð î?rï;˜îâîªî î_ î#$î&Îî(†î+Š{ï6¢îâî xï4'î¤îhî¯îØ î!‰î&�î(î,xî.aî/Úî5Ûî:î=­ï2îâîËî=îþîxî–îvî"îî'|î)ãî.¾î36î5�î70î8ðî•ï/1îâî6îÀî%îxîùî¦î! î"�î%ÿî(Rî.œ î5Tî8òî:Rî=Ïï-‰îâîkîÒîpîãî_î‹î–î!aî$ûî'üî+úî.Kî3‰ î;hî>«ï+âîâï)gî¤î.î�î$ î*Üî.î0(î2£î6]î9î-î@pï'Àîâ î»î îuîõî%çî+uî-ÿî2bî5pî: î;®ï&îâîrîðî{îRîäî –î$jî%ßî+aî-àî0 î2xî4öî7¬î<;î>¹î@eï$qîâîqî î¦î  î'Õî.`î2ìî5hî6ï î>âï"ÊîâîAîÎî?îMî†ï Nî¤îˆîGîþî–î!“ î(Cî)¼î.9î1¹î6Aî9&î=åï§îâîq î8î îÒî aî$õî(‹î,™î/tî1÷î6Ìî8î;+î?“ïîâîøîhîÔîEî!¸{ï îâîxïŽîî†î±îµî î"]î$‘î,@î0’î1½î6ìî8î:bî>î@"ïçîâ î¦îÔî£îÊî!î'î)zî/Ð î6”ïlî¤î¤î¥îAî#î« î&Ðî(dî,î-¶î2Oî6¦î8[î:äî?}ïÄîâî~î¹î%@ î,þî4§î7àî>ãïîâîÒî î¦î%îiîàî"æî%_î*çî-¢î5}î:Mî=Îï vîâîî×îŽîÈî2î!Åî#:î$mî)î+Õî-î0yî4Nî7&î8›î=*î>•ï Îîâî>îî–î(î ?î$-î'‰î+î-Gî.ºî2'î3Üî7Ùî:Ãî?yïî…î /î%ªî'.î*î0yî4ôî7›ÿ BTVm$jDRAGONMBUSSPECIFICATIONS11theslavesettingMCmd_NoOp.Cycles5+wthrough8+waredatatransfercyclesinwhichtheslavesetsMCmdAB_DataTransport;MDataAB_data;MParity_parity.DuringtheBofcycle6+wthemastermaydropMRq,andifitdoes,thearbiterdropsMGntduringtheAof8+w.NotethattheminimumnumberofcyclesforReadQuadis6,assumingzeromemorywait.4.3WriteQuadFigure4showsthetimingforWriteQuad.Cycles0through2aredevotedtoarbitrationasusual.DuringtheAofcycle3themastersetsMCmdAB_WriteQuad;MDataAB_WQAddress;nMShared_true.Nexttherearew(zeroormore)waitcycleswherethemasterassertsMDataABandMParityandthememoryassertsMCmdAB.Cycle4+wisadatatransportcycle,withthememoryassertingMCmdABandthemasterassertingMDataAB.Duringcycle4,nMSharedissettofalseifthereisamatch,regardlessofthevaluecurrentlyassertedforMCmdAB.Cycles5+w,6+wand7+wareagaindatatransportcycleswiththememoryassertingMCmdandthemastersupplyingthedata.DuringtheBofcycle5+wthemastermaydropMRq,andifitdoes,thearbiterdropsMGntduringtheAof7+w.NotethattheminumumnumberofcyclesforWriteQuadis5.4.4WriteSingleFigure5showsthetimingforWriteSingle.Cycles0through2aredevotedtoarbitration.DuringtheBofcycle2themastermaysetMRq_false,andifitdoes,thearbiterdropsMGntduringtheAofcycle4.Cycle3isthefirsttransactioncycle.DuringphaseAthemastersetsMCmdAB_WriteSingle;MDataAB_WSAddress;andnMShared_true.DuringtheAofcycle4themastersetsMCmdAB_DataTransport;MDataAB_WSData;MParity_parity.AlsoatthistimeifthereisamatchoneormoreslavessetnMShared_false.4.5IOReadFigure6showsthetimingforIORead.Arbitrationtakesplaceduringcycles0through2.DuringtheAofcycle3themastersetsMCmdAB_IORead;MDataAB_IOAddress.ThenfollowwcyclesduringwhichtheslaveusesthebusforcommandsotherthanIODone(thesecyclesmaybeidle).Asusual,wiszeroormore.DuringtheAofcycle4+wtheslavesetsMCmdAB_IODone;andMDataAB_IOData.Cycles5+wthrough7+wmaybeidlecycles,withthemastersettingMCmdAB_NoOp.DuringtheBofcycle5+wthemastermaysetMRq_falseandifitdoes,thearbitersetsMGnt_falseduringtheAof7+w.4.6IOWriteFigure7showsthetimingforIOWrite.LikeIORead,IOWritealsoisflowcontrolledanditstimingissimilar.Cycles0through2areforarbitrationasusual.DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîExï_/îâî/î„îØî–î#‹î'Òî+Sî0yî3úî6;î9.î>'ï]ˆîâîÍîîµîYî7î&5 î0î8î;¾ï[àîâîÇî™îîvî8î!´î%Pî'¸î,1î/>î2™î6¤î9dî:Îî<-î?¾ïZ9îâîSî)îbîÓî"2î#¿î%xïW¾î¤î;î*îªî! î&mî(Fî,^î.¼î5Ãî7Oî8ýî?ïVîâîOïTo{ïQôîâîxïOyî¤îî^îvîàî"Eî$Ž î,§î1 î2Lî7�î8Îî;-î@oïMÑîâ î¦îUïKVî¤î�îöî—îeîíî!7î#¬î(1î*çî2½ î:sïI¯îâ î#î÷î"Ãî&5î)Åî,î-§î1+î2õî7î:î>ïHîâî0î�îÍî ^î#î(Jî*ðî->î2™î6×î>HïF`îâîmîÑîóîðîÅî!‰î$œî&óî,Yî1öî8¦î;Vî=®ïD¹îâî›îAî!î$¤î&Eî-î.�î0Íî2�î5Óî7Hî:åîï>îâî™îúîPîÙî8î©î"î&¸î+)î-ˆî/î0Îï; î¤îîèîHî!î&-î'æî+Þî.î5Cî6®{ï6ªîâî xï4/î¤îîPîaîÄî""î$c î,Ñî1/î2hî7¤î8Üî;4î@oï2‡îâ îtî5îŽîòî ¤î$î%=î'•î+þî.ûî1î5¼î9=î;íî=Fî>•ï0àîâîAî²îˆîÂî"2î$’î&î'×î+Jï.eî¤îWîiî±îîî¤ î#}î'†î,,î/ëî1Tî3‘î7ßî:]ï,½îâ î>îÓ î&ªî)Kî1î4–î9Hî;’î=î>«ï+îâîaî îÆî²î"½ î,°î4¦î:ïî@‘ï)oîâî’î°î7îÇîÛî*î"¢î#üî%î)'î+Áî-tî0õî4Ïî6Úî>–{ï$xîâîxï!ýî¤îîEîPî®î"î$Bî*Q î1vî4òî8…î<ôî@éï VîâîïÛî¤î¯îPîîî Ïî"Fî$èî)šî,}î4€î:sï3îâ îxîî$î�î#rî'Íî+Æî.î1bî4Eî6�î9î;9ïŒîâîtî�îãîÙî"Ãî%ºî'žî+�î-”î1~î2ôî4Rî7Iî9î=UïåîâîTîóî¾îDîéî[î!Õî$ˆî,[î2Jî5î<Ñï=îâîFîãî%îÂî"Ðî$Ëî'Œî+åî/ î1sî5íî:]ï–îâîûîÅî$î�îJî!½î%Qî'°î,!î/%î1Cî5öî9&î;Þî=?î>•ïïîâîAî²îSî•î Åî%6î'•î)"î*Û{ïøîâîxï }î¤î:î•îÈîNî"Ïî%3î+Ôî/*î4àî:î=rî?ï Öîâ îdîîöîPî¼î%î)wî*¬î/äî1î3lî5© îyïî…î /î%ªî'.î*î0yî4ôî7›ÿATVm$ DRAGONMBUSSPECIFICATIONS12DuringtheAofcycle3themastersetsMCmdAB_IOWrite;MDataAB_IOAddress.DuringtheAofcycle4themastersetsMDataAB_IOData.DuringthisphasetheslavesetsMCmdAB_IODoneortoNoOp.IfitsetsIODonethetransactionisover.IfIODoneisnotassertedduringcycle4thenthefollowingwcyclesareusedbytheslaveforcommandsotherthanIODone.DuringtheAofcycle5+wtheslavesetsMCmdAB_IODone.Cycles6+wthrough8+wmaybeidle,withthemastersettingMCmdAB_NoOp.DuringtheBof6+wthemastersetsMRq_false,andifitdoesthearbitersetsMGnt_falseduringtheAof8+w.AppendixA.IOAddressSpaceDefinitionTheIOaddressspaceiscarvedupintodisjoint,contiguouspieceswithatmostonedevicerespondingtoeachpiece.Currently,theonlypieceassignedbelongstotheMapprocessor.AddressrangeDevice0_2||vp||+1-1Mapprocessor(||vp||isthenumberofbitsneededtorepresentavirtualpage)DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîExï_/î¤î©îDî îî ±î""î$¾î)jî,Hî4Eî:sï]ˆîâ î¼î‘îýî–î!\î$Ûî&î(‰î-î/³î7kî=Uï[àîâî›î•î î‹îDî&î+˜î-tî/:î4ƒî6î7‹î:Dî?¾ïZ9îâ îÞîJïW¯î¤î4î¤îî¡î!æî&eî)æî+)î.]î0Ëî6ëî8{î<€î>âïVîâî÷îpîñîHî Gî#ÿî'?î-±î2“î5 î6²î8…î<î?¾ïT`îâî]îîæî#Kî'¹î+_î0«î4Rî7iî9mî<�î?¾ïR¹îâîqîôîÓî%(î*î,�î.î/îî3 î6î:¬î=kïQîâîjî!î‚îØî îhî!Ùî$zî)¼î,ìî1]î3¼î5Iî7zïJ`îâîîJîáî!î%ã xïFýî¤îxî�îwî(î �î$òî'î)Õî/ î6î:î=-î>ÁïEVîâîŽîÔ îñî î!Ñî&C î,Ûî/;î2Vî5ëî;dî@oïC¯îâîAîˆ {ïA$îâîïA$î(¹xï>Œîâ|îï>Œxï>Œî.yï?îÞ}îkï?ï?îçyîtï?ï?î»xï>Œî©ï>Œî(¹î+Ýî1Îpî2øï>Œï>Œî3’xî4Cï>Œï>Œî4›î5Uî6Ÿî8Üî=æî?|ï<åîâî«ï;6î(¹î.¶î/àî4;yïî…î /î%ªî'.î*î0yî4ôî7›ÿDTVm$âDRAGONMBUSSPECIFICATIONS13BusCouplerROMBootOthersInterfaceEthernetDiskInterfaceI/OprocessorVME BusCacheMap Processorwith Map CacheModuleMemoryDragon ModuleDragon ModuleIFUEUFlt. Mult.Flt. AddInstr.CacheDataCacheDragon ProcessorDragon ModuleMemoryModuleMemoryModuleControllerDisplayM BusFigure 1. A Dragon ClusterDRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîE~øÿúÿî#ï`þä$î#ï[Âþ$rî#ï[žþ $î#ï[Âþ$rî\ï^fî\ï\»î±ïIúþksî#ïYeþä$î#ïUþ$rî#ïUþ$rî#ïTóþ $îêïVîêïW»î#ïR»þä$î#ïNlþ$rî#ïNlþ$rî#ïNIþ $î\ïP‚î ïQžî ïSIî[ïP‚þ $î?ïP¥þ$rî[ïP¥þ$rî[ïTóþä$î[ïW,þ $î?ïWPþ$rî[ïWPþ$rî[ï[žþä$î ïYôî ïXIî[ï]×þ $î?ï]ûþ$rî[ï]ûþ$rî[ïbIþä$î ï`Ÿî ï^ôî[ïJeî?ï`þr$î?ïYeþr$î?ïR»þr$î±ï]×þr$î±ïW,þr$î±ïP‚þr$î'xïbIþä$î'xïY‰þ$äî0\ïY‰þ$äî'xïYeþ $î)±ï]×î#ï]×þr$î'xïTóþ V$î'xïIúþ$ î4ÎïIúþ$ î'xïI×þ y$î)±ïOó î)±ïNI îB$ïW,þ $îB$ïIúþ$ VîMAïIúþ$ VîB$ïI×þ @$îEyïOeîEyïQî;yïP‚þ«$î4ÎïOeþ«$î;yï ¿þkV­î#ï Õ î?ï œþ!z$î?ï ¿þ$rî?ïþ!V$î?ï¹þ!V$î?ïjþ$rî?ïGþ!z$î#ï€ î?ï5úþ$9î#ïNþ$(îxïNþ$(îêï8þÎ$î”ï83þ$«îêï83þ$«îêï>ºþ«$î#ï;dî”ï;dþ«$î”ï0Hþ«$î Íï Üþ$�î#ï2�îêï5Öþ«$îêï/Oþ$«î”ï/Oþ$«îêï/+þÎ$îxï)� îêï,òþ«$îêï&kþ$«î”ï&kþ$«îêï&GþÎ$îêï$þ«$îêï‡þ$«î”ï‡þ$«îêïcþÎ$îxï ¹îxïC,þ�$î”ï ¹þ]$îxï+þ²$î%?ï>ºþ«$î%?ï83þ$«î+êï83þ$«î%?ï8þÎ$î&êï;óî&êï:Hî%?ï3�þ«$î%?ï-þ$«î+êï-þ$«î%?ï,òþÎ$î&êï0Öî&êï/+î”ï)�þ9$î”ïA�î?ïþ$.¬î[ïEó î?ïGžþ!V$î?ïòþ!z$î2•ïþ$.¬î2•ïjþ$rî2•ï ¿þ$rî+êï;dþy$î/@ï0kþ$ î+êï0Hþy$î/@ï5Öþ 9$î2•ï€þä$î2•ï Õþä$î0\ï]×þ $î;yï<�þ«$îEyï=îEyï;dîB$ï5Öþ @$îMAï5úþ$ VîB$ï5úþ$ VîB$ïC,þ $î;yï(€þ«$îEyï)îEyï'dîB$ï!Õþ @$îMAï!ùþ$ VîB$ï!ùþ$ VîB$ï/+þ $îDëï îDëïÕî=$ï î?ëïcþ�$î?ëï1þ$ VîOzï1þ$ Vî?ëïþ²$î;yï¹þr$î$#ï*yøúïî…î /î%ªî'.î*î0yî4ôî7›]TVm$CDRAGONMBUSSPECIFICATIONS14Figure 2. Timing for Bus Arbitrationconditionally retain bus => master: MNewRq _ TRUE; <>arbiter: MGnt _ TRUE;arbiter: latch request;requestor: Mrq _ TRUE;5+w4+w3+w2+w(w>=0)w cycles1ABABABABABAB0PhaseCycleBA<><><>DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîE~øÿúÿî"xï$ð$îêï?lðWîêïA¥îêïJˆîêïLÁîÍï-þ$&åî?ï-þ$&å~î [ï3î [ï7�î [ï;óî [ï@eî ÍïCÞî ÍïEˆ~î [ïIHîï4+îï1òî éï1dþ:å$îï8�îï6dî éï5Öþ:å$îï=îï:Öî éï:Hþ:å$îïA�îï?Hî éï>ºþ:å$îïEóîïCºî éïC,þ:å$îïJeîïH,î éïGžþ:å$î éïLþ:å$î [ïMºî[ïQžî ”ïS×þ>;$î ”ïP‚þ>;$î ?ïQžîïLžîïN×îêï=3îêï8Áð"îêï4Oyøúïî…î /î%ªî'.î*î0yî4ôî7›ÿ…TVm$úDRAGONMBUSSPECIFICATIONS15Figure 3. Timing for ReadQuadslave: {MCmdAB _ DataTransport; MDataAB _ RQData3; MParity _ parity} arbiter: MGnt _ FALSE;slave: {MCmdAB _ DataTransport; MDataAB _ RQData2; MParity _ parity}slave: {MCmdAB _ DataTransport; MDataAB _ RQData1; MParity _ parity}slave: {MCmdAB _ DataTransport; MDataAB _ RQData0; MParity _ parity}slave: MCmdAB _ NoOp;slave: {MCmdAB _ NoOp; match => nMShared _ FALSE; owner => nMAbort _ FALSE}master: {MCmdAB _ ReadQuad; MDataAB _ RQAddress; nMShared _ TRUE; nMAbort _ TRUE}8+w7+w6+w432w cycles(w>=0)BABABAarbiter: MGnt _ TRUE;requestor: Mrq _ TRUE;5+w1ABABABABABAB0PhaseCycleBAmaster: MRq _ FALSE;DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîE~øÿúÿî!\ïœî±ï&ùð_î±ï+kðDî±ï/ÝðDî±ï4–ðDî±ï9î±ï=3ðKî±ïAìðQ~î "ï%¹î "ï*+î "ï.�î "ï;óî "ï@eî "ïD×î ”ï8Áî ”ï7î °ï,òþ?W$~îÍï-€îÍï/¹î °ï(€þ?W$îÍï)îÍï+Gî °ï$þ?W$îÍï$�îÍï&Öî±ïFî±ïLÁî”ï!ùþ$2îï!ùþ$2~î "ï3î "ïIHîÍï4+îÍï1òî °ï1dþ?W$îÍï8�îÍï6dî °ï5Öþ?W$îÍï=îÍï:Öî °ï:Hþ?W$îÍïA�îÍï?Hî °ï>ºþ?W$îÍïEóîÍïCºî °ïC,þ?W$îÍïJeîÍïH,î °ïGžþ?W$î °ïLþ?W$î "ïMºî"ïQžî[ïS×þB­$î[ïP‚þB­$î ïQžîÍïLžîÍïN×î±ï-ëyøúïî…î /î%ªî'.î*î0yî4ôî7›ÿ´TVm$7DRAGONMBUSSPECIFICATIONS16Figure 4. Timing for WriteQuadmaster: MDataAB _ WQData0; memory: MCmdAB _ DataTransport; slave: match => nMShared _ FALSE;master: MRq _ FALSE;master: MDataAB _ WQData1; memory: MCmdAB _ DataTransport;master: MDataAB _ WQData2; memory: MCmdAB _ DataTransport;master: MDataAB _ WQData0; memory: MCmdAB _ NoOp;master: {MCmdAB _ WriteQuad; MDataAb _ WQAddress; nMShared _ TRUE}4+ww cycles(w>=0)ABCyclePhase0BABABABABABA15+wrequestor: Mrq _ TRUE;arbiter: MGnt _ TRUE;ABAB236+w7+wmaster: MDataAB _ WQData3; memory: MCmdAB _ DataTransport; arbiter MGnt _ FALSE;DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîE~øÿúÿî!\ïœîxï8Áðbîxï2îxï4Oð=îxï/Ýð=îxï=zð4îxïAìðB~îéï7�îÍï=3îÍï;ˆ~î”ïN×î”ïLžîÍïQžî"ïP‚þDæ$î"ïS×þDæ$î éïQžîéïMºî wïLþA�$î wïGžþA�$î”ïH,î”ïJeî wïC,þA�$î”ïCºî”ïEóî wï>ºþA�$î”ï?Hî”ïA�î wï:HþA�$î”ï:Öî”ï=î wï5ÖþA�$î”ï6dî”ï8�î wï1dþA�$î”ï1òî”ï4+îéïIHîéï3î Íï&kþ$-�î[ï&kþ$-�îxïLÁîxïF~î”ï+Gî”ï)î wï(€þA�$î”ï/¹î”ï-€î wï,òþA�$îéïD×îéï@eîéï.�îéï*+îxï+kðVyøúïî…î /î%ªî'.î*î0yî4ôî7›~TVm$#DRAGONMBUSSPECIFICATIONS17ABCyclePhase0BABABABA1requestor: Mrq _ TRUE;arbiter: MGnt _ TRUE;23Figure 5. Timing for WriteSingle4master: MRq _ FALSE;master: {MCmdAB _ WriteSingle; MDataAB _ WSAddress; nMShared _ TRUE}master: {MCmdAB _ DataTransport; MDataAB _ WSData; MParity _ parity} slave: match => nMShared _ FALSE;DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîE~øÿúÿî”ïN×î”ïLžîÍïQžî"ïP‚þG$î"ïS×þG$î éïQžîéïMºî wïLþCÉ$î wïGžþCÉ$î”ïH,î”ïJeî wïC,þCÉ$î”ïCºî”ïEóî wï>ºþCÉ$î”ï?Hî”ïA�î wï:HþCÉ$î”ï:Öî”ï=îéïIHî Íï83þ$Èî[ï83þ$ÈîxïLÁîxïF~îéïD×îéï@eî”ï$�îéï<�îxïD%îxïAìðDîxï=zðiyøúïî…î /î%ªî'.î*î0yî4ôî7›ÿdTVm$ÎDRAGONMBUSSPECIFICATIONS187+w6+w32BABAarbiter: MGnt _ TRUE;requestor: Mrq _ TRUE;5+w1ABABABABABAB0PhaseCycleBA(w>=0)w cycles4+wmaster: MRq _ FALSE;master: {MCmdAB _ IORead; MDataAB _ IOAddress}slave: {MCmdAB _ anything but IODone; M bus lines other than MCmdAB _ anything}master: MCmdAB _ NoOp;master: MCmdAB _ NoOp; arbiter MGnt _ FALSE;master: MCmdAB _ NoOp;slave: {MCmdAB _ IODone; MDataAB _ IOData}Figure 6. Timing for IOReadDRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîE~øÿúÿîéï*+îéï.�îéï@eîéïD×î wï,òþA�$î”ï-€î”ï/¹î wï(€þA�$î”ï)î”ï+GîxïFîxïLÁî[ï&kþ$-�î Íï&kþ$-�~îéï3îéïIHî”ï4+î”ï1òî wï1dþA�$î”ï8�î”ï6dî wï5ÖþA�$î”ï=î”ï:Öî wï:HþA�$î”ïA�î”ï?Hî wï>ºþA�$î”ïEóî”ïCºî wïC,þA�$î”ïJeî”ïH,î wïGžþA�$î wïLþA�$îéïMºî éïQžî"ïS×þDæ$î"ïP‚þDæ$îÍïQžî”ïLžî”ïN×îÍï;ˆîÍï=3~îéï7�îxï2îxïAìð.îxï=ÁðOîxï0$îxï+kð/îxï4Oîxï9ð*~î!\ïœyøúïî…î /î%ªî'.î*î0yî4ôî7›ÿÕTVm$"DRAGONMBUSSPECIFICATIONS197+w6+w32BABAarbiter: MGnt _ TRUE;requestor: Mrq _ TRUE;5+w1ABABABABABAB0PhaseCycleBAmaster: MCmdAB _ NoOp;Figure 7. Timing for IOWritemaster: MCmdAB _ NoOp; arbiter MGnt _ FALSE;AB8+ww cycles(w>=0)4master: {MCmdAB _ IOWrite; MDataAB _ IOAddress}slave: {MCmdAB _ anything but IODone; M bus lines other than MCmdAB _ anything}master: MDataAB _ IOData; slave: MCmdAB _ NoOp or IODone;master: MRq _ FALSE;slave: {MCmdAB _ IODone; MDataAB _ undefined}master: MCmdAB _ NoOp;DRAGONPROJECTFORINTERNALXEROXUSEONLYxïgî¡yî Áïgïgî!•xî%…ïgïgî'_yî(Fïgïgî),xî*Ÿïgyïgî+f tïgîE~øÿúÿîéï*+îéï.�îéï@eîéïD×î wï,òþA�$î”ï-€î”ï/¹î wï(€þA�$î”ï)î”ï+GîxïFîxïLÁî[ï!ùþ$2î Íï!ùþ$2~îéï3îéïIHî”ï4+î”ï1òî wï1dþA�$î”ï8�î”ï6dî wï5ÖþA�$î”ï=î”ï:Öî wï:HþA�$î”ïA�î”ï?Hî wï>ºþA�$î”ïEóî”ïCºî wïC,þA�$î”ïJeî”ïH,î wïGžþA�$î wïLþA�$îéïMºî éïQžî"ïS×þDæ$î"ïP‚þDæ$îÍïQžî”ïLžî”ïN×îxï0$~î!\ïœîxï&ùð/~î”ï&Öî”ï$�î wï$þA�$îéï%¹îÍï8ÁîÍï7~îéï;óîxïAìð/îxï8ÁðOîxï=zð<îxï-¤îxï4Oð-îxï+kyøúïî…î /î%ªî'.î*î0yî4ôî7›TVm$7ÿ TIMESROMANÿ TIMESROMAN  ÿ TIMESROMANþæ ÿMATHþŸ ÿ TIMESROMANþŸ ÿ TIMESROMANþY ÿ TIMESROMANþæÿ TIMESROMANþŸÿLOGOü´ÿ HELVETICAþŸÿMATHþæÿ HELVETICAþŸÿ HELVETICAþæÿ HELVETICAþÿ HELVETICAý…ÿ TIMESROMANþŸ©D è& *" `+–2: YE ôO ÕX{\ `Bbne�hjòm»pj/trž? ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[]<>mbusspecs.tioga$Monday, January 21, 1985 3:34 pm PST