XEROXFileProjectDatePARC/CSLDorado765432105432100123456776543210987654321010101010100123456701234567012345677654321011iofetch, clean hit or missiofetch, dirty hitflush, dirty hit012345677654321001234012345670246810121415131197531SinMAPMEMEC1EC2Sin1357911131514121086420MAPMEMEC1EC2STSout1412108642013579111315EC2EC1MEMMAP765432107654321001234567765432108765432101513119753102468101214SoutSTiostore100246810121415131197531Fin01234567765432100123456701234567MAPMEMEC1EC20246810121415131197531Sin1513119753102468101214FoutEC2EC1MEMMAP76543210765432100123456776543210Fout14121086420135791113151513119753102468101214SoutSTEC2EC1MEMMAP110123456776543210765432107654321010101010100123456789012345677654321001234501234567prefetch, fetch, or storeprefetch, fetch, or storeclean missdirty missReading DWriting D and word refWriting D and word refReading DARRAARRAARFVReading D339Sin1357911131514121086420Sin1357911131514121086420Memory automataKeyRVFA=Ref,=RefInA,=VicInA,=FlushStoreFont 1=Read, Font 2=Write=Idle state7(ignored)BigTime3.siltiming--16K chips7656776Writing D12/18/78FRAVVVVVVVVEEVVVVVVVEEEEEEyx9*:2Gr)Gr:Gr GrGrNGNGGrpNG$d $dU$d$d V$d$dV$d$d.$d2$d+W$d($d$d$d$$d!V$d<$d?W$d8$d5W$dB$dF$dL$dIX$d$d$dV$d $d$d$dV$d$d)$d-$d0W$d3$d&W$d#$d$dV$dL$dIX$dF$d:W$d=$d7$dA$dDX$dK$dG$dtcQ cQ 9cQ cQcQ9cQcQcQaa9aa a 9a__:___ :_!_#_/:^Q-^Q+^Q*:^Q(^Q&^Q%:^Q#^Qxdd9dd d 9d dd9dddVdddVd9cQcQcQ:cQcQcQ:cQcQa:aaa :a!a#a%:a%:_&_(_*:_+_-_/:_0_<^Q:^Q9;^Q7^Q5^Q4;^Q2^Q0^Qd;^  :drX|VW VGtYQVYQYQYQ YQ 9YQ YQYQX5 X5 9X5 X5X5X5VX5X54;p<(>^@ AxA9AA A 9A9AAA:@P@P@P:@P@P@P9@P@P:>>> :>!>#>%:>&>2<0</:<-<+<*:<(<&<9D4D4 D4 9D4 D4D49D4D4D4dGdGdGf<GVdGbGVbGVc.Gc.GbGbGdGVbGa<GVa<GVaG$aG$a<G&Wa<G$bG#a<G#_G#_G.^.G.]G._G0Wa<G2_G0W_G0W_G<^.G<]G=]G<_GUGSXGSXGSGVQGVQGQGVSXG#QG$PG#PG#PJG.NG.NXG0WNXG.PGEtGCGCGDGVAGVAGAGVC;GAGV?G?G@-G&W>G&W>;G(>;G&W?G2>;G3<G2<G2<Gt:4:4 V:4 9:4 :4:49:4:4;P9;P;P ;P 9;P V;P;P;P9 VGp:{:CIXFxD4t==9== = = V==>> V> 9> >>9>>= Gp=$_G0W]GCdGCGEtGCG.0G.0WG0W0WG.2G#3G$2G#2G#2IGV3GV3G3GV5WG7G5WG5WG5G#t0%:0&0(0*:0+0-0/:0#2l!2l :2l2l2l:2l2l2l 94 449444:4455955 5 95 559p5{3%:2%00zt--:----!V-#-$/#/!V/ :///://- Gp.A+Wt)(&%:#! : : ! # %: & ( ) +W  VGpA0!z%:#%$9&zt& & 9& &&9&&&%:%%%9%% % 9%#l#l:#l#l#l :#l!#l##l/:!-!+!*:!(!&!%:!#!&G&WG&WG(GV&WG$GV$GV$G##HG##G$#G#$G.#G0W!VG.!VG.!Gp**: VG)t+(+&W+%:+#+!+ :++* :*!*#*%:*&W*(*)*3 9G( G?W GA 9G?W G3+G3 G5W G3G2 G2 9G2 G&W+G&W G&WG(9G)G(G(GGGVG9GVG9GV9GVGG9G!V9GG!VG#G!VG!V+GV9  9 9 9V  VGp#A ]5*:!]!VxO4; 5 7 9; : < >; ? 4;O2O0O/:O-O+O*:O(O(&%:#! : :::OOVOOOO O 9O OO9OOO:OO&t ( *: + - /: 0 2 &O%:O#O!O :OOO:O9:9  9 91/31/78VictimInARefInARefST-0ST-1ST-2ST-3ST-4ST-3ST-2ST-1ST-0IoStoreInAIoStoreMakeSout_DLoadSoutOLoadSoutEShiftSinEShiftSinOShiftSoutOShiftSoutELoadEcOutShiftEcOut0123456Word on Fin543210Word on Souty$x.Gr9;t>GGGr>;Gr:Gr#Gr GrGrNGNGGr/: py$_$_$_,s$_#$_5W$_>;$_rteVpf`Vte e9eeee"se&e+We/e4;e8e=eAe9pf`f`#f`+f`4f`=f`tdn 9dndndndnFpf`FteJte<p VG_:G_G_(G_0G_9G_BG_KdG_Gd$_NGrG_Utdndn"sdn&dn+Wdn/:dn3dn8dn;&zr$G&zr$B$Ar$9$Ar$0$Ar$B]r$9]r$0]r$>;$r$G$r$ :1 >;/^r$G/^r$)/ (? X5 5W$r$(*$--%$)+3V]5(Ap$2?W0-VG\.GV\$t_n V`$ ab|$b!Vp]|*:]|3]|<]|D]|DE <E 3E *:E (DX%:G :D{$F$tF VH_$VH(A%:$(Y%:$)Y W.$(?{%:$1.$,s( $0"V$-$ -& -k - KGBrG9rGG:rG>;:rG5W:rG,s:rG,s$rG5W$rG>;$rGG$rGK&WGB&WrG9&WrG0&WrG(&WrG(/::GB/:rGK/:9GK]$K$A$0rG9rGBrG>;srGGsrG9r$Br$5Wr$>;r$Gr$1s  1s 0r$5WsrGKGK$,s$r$0rG>;$GG5WG5WGBrGKG>;r$Gr$5 Byr$GVG5WV VG5 :_'$,s=B $.x=2=7=;t=?=DX=H=%< 0V$HODXO?O;tO7O2O) O-g;XEROXFileProjectRevDatePagePARC/CSLDirectoryDoradoMemory timing diagram0120406080100120140160180200220240260280234567t1t2t3t4t58300320At0t6t7t8t9t10t11t12t13t14t15t16EC on ECSoutfor wordsLoadEnShiftEnEcLoadEnMapWait-STEnableSTPerrStopFinTaskLdTransportFinNext1/31/78MakeSout_DLoadSoutOLoadSoutEShiftSinEShiftSinOShiftSoutOShiftSoutELoadEcOutShiftEcOutWord on FinWord on SoutST-4ST-5ST-6ST-7ST-8ST-9ST-5ST-9ST-8ST-7ST-6ST-1078910111213141567891011121314154-78-1112-15MemTimeST2.silST-10ST-9ST-9ST-10STWait-Memrepeats state 9-10ST 2y$x.Gr9;t>GGGr>;Gr:Gr#Gr GrGrNGNGGr/: py$_$_$_,s$_#$_5W$_>;$_rteVpf`Vte e9eeee"se&e+We/e4;e8e=eAe9pf`f`#f`+f`4f`=f`tdn 9dndndndnFpf`FteJte<p VG_:G_G_(G_0G_9G_BG_KdG_Gd$_NGrG_Utdndn"sdn&dn+Wdn/:dn3dn8dn1/31/78STWait-MemMemTimeST3.silST 3ST-10ST-9ST-11ST-10STfreey$x.Gr9;t>GGGr>;Gr:Gr#Gr GrGrNGNGGr/: py$_$_$_,s$_#$_5W$_>;$_rteVpf`Vte e9eeee"se&e+We/e4;e8e=eAe9pf`f`#f`+f`4f`=f`tdn 9dndndndnFpf`FteJte<p VG_:G_G_(G_0G_9G_BG_KdG_Gd$_NGrG_Utdndn"sdn&dn+Wdn/:dn3dn8dn1/30/78Map 1MAP-0MAP-1MAP-2MAP-3MAP-3MAP-3RefRefInAt0t1t2t3y!x.Gr9;t>GGGr>;Gr:Gr!VGr GrGrNGNGGr/: py$_$_$_,s$_#$_5W$_>;$_:teee#e'se+We/e4;e8e=eAeFeJte<p VG_:G_G_(G_0G_9G_BG_KdG_Gd$_NGrG_rt]5Z9$VZXVCV$VVC $V7TQ2xUmtI4F2X X|U$!p2?Ws_!V_*:_3_<_D_:_'6t$0X|$6tT :$:H6t$F-$:\6tG \V$c V$tcQ Va`$ axeVe e9e&O-eXEROXFileProjectRevDatePagePARC/CSLDirectoryDoradoMemory timing diagram0120406080100120140160180200220240260280234567t1t2t3t4t58300320At0t6t7t8t9t10t11t12t13t14t15t161/30/78StartMapMapWaitstate 3 repeats if MapWaitModMapFaultMapPerrPipeAd34 (unless prempted by Ec)MapRASMapCASMapData GoodStartMemMapWantsPipepreRefreshInMemMapFlagsWEEnableAllMods[if Refresh]MapFree[if Refresh]MemTimeMap2.silMap 2MAP-3MAP-4MAP-5MAP-6MAP-7MAP-0MAP-7(if StartMap)(POSSIBLE)MEM-0MEM-1MEM-2MEM-3MEM-4MEM-5MemRASMemCASMemWEif StoreSTMayProceedSTWait-MemSTWait-Memif Store[read or refresh]ModiEnableRow AddressColumn AddressMemColSelShiftLoadOutEvenShiftLoadOutOddy!x.Gr9;t>GGGr>;Gr:Gr!VGr GrGrNGNGGr/: py$_$_$_,s$_#$_5W$_>;$_rteVpf`Vte e9eeee"se&e+We/e4;e8e=eAe9pf`f`#f`+f`4f`=f`tdn 9dndndndnFpf`FteJte<p VG_:G_G_(G_0G_9G_BG_KdG_Gd$_NGrG_Utdndn"sdn&dn+Wdn/:dn3dn8dn;$>Bz$C;#!z)$O-gXEROXFileProjectRevDatePagePARC/CSLDirectoryDoradoMemory timing diagramA340360380400420440460480500520540560580600620640910111213141516320t16t17t18t19t20t21t22t23t24t25t26t27t28t29t30t31t32MemCASSTWait-Mem[read or refresh][write]STWait-MemModiEnableStartEc1MemState7MemFreeMemState8State 8 is a pseudo-statewhich always follows state 7Memory and Ec automataMapWait-MemDMapWait-MemIOMemColSelMEM-6MEM-7MEM-"8"MEM-0MemTimeEc1.sil1/30/78StartEcChkTransportEcWantsAMakeFout_D[if DirtyIOFetch]FoutNextStopFoutTaskLd[if clean IOFetch][if clean IOFetch]StopFoutTaskLdFoutNext[if DirtyIOFetch][if DirtyIOFetch]StartEc2ModiOutEnMakeD_CD[if CacheFetch]Word On CD0123456EC1-0EC1-1EC1-2EC1-3EC1-4EC1-5EC1-6Word on Sin6543210789101112y$x.Gr9;t>GGGr>;Gr:Gr#Gr GrGrO-GNGNGGr/: py$` $` $` ,s$` #$` 5W$` >;$` G$` <tf 9fffff"sf&f+Wf/f4;f8f=fAfFfJtfVpg|g|g|"sg|+Wg|4;g|=g|Fg| VG` :G` G` (G` 0G` 9G` BG` KG` rG` Utfdn9dn dndndndnsdn!dn&Wdn*dn/:dn3dn8dn;Gp@s@!V@*:@3@<@D@ @ ?W$:=7G(; %:$08V$06V$04^V$92%r$0/V$K-Gr)AH$V=B$('%:$,s$ $ ;t$ x 2 . 2) 2%: 2 2V 2 2r 23 27 2< 2? 2DX 2H 2O-h.>XEROXFileProjectRevDatePagePARC/CSLDirectoryDoradoMemory timing diagramA340360380400420440460480500520540560580600620640910111213141516320t16t17t18t19t20t21t22t23t24t25t26t27t28t29t30t31t32TransportMakeFout_D[if Dirty IOFetch]FoutNextStopFoutTaskLd[if clean IOFetch]FoutNextStopFoutTaskLd[if Dirty IOFetch]MakeD_CD89101112131415Word on CDCheckLastPh6EcWordRefToDFreeDBufFromEcMakeMD_DMakeD_DBufMakeF_DMakeMDM_DEc2Free[if Fetch and current Task][if IFU ref][if Store][if Fetch]Memory and Ec automataEcWantsPipe4Transport[if Fetch,Store, or IFU]MemTimeEc2.sil1/30/787EC2-0EC2-1EC2-2EC2-3EC2-4EC2-5EC2-6EC2-7EC1-7[otherwise]Ec1FreeStartEcChkModiOutEn[until next StartEc1]131415Word on Siny$x.Gr9;t>GGGr>;Gr:Gr#Gr GrGrO-GNGNGGr/: py$` $` $` ,s$` #$` 5W$` >;$` G$` <tf 9fffff"sf&f+Wf/f4;f8f=fAfFfJtfVpg|g|g|"sg|+Wg|4;g|=g|Fg| VG` :G` G` (G` 0G` 9G` BG` KG` rG` Utfdn9dn dndndndnsdn!dn&Wdn*dn/:dn3dn8dnA$> BV$COFastD_DbufStore_InAError/DE on wordsDad.0-9 validbank 0 Dad.10-13bank 1 Dad.10-13Dad.0-9 validDad.10-13Dad.10-13y$x/Gr9;t>GGGr>;Gr:Gr#Gr GrGrNGNGGr0W prtI4rKU$ KrHV$Y$rU$rUY Y$"s,$"s,N{r$N \_$\ VOVOV$PP$AmC DDrDrD4 ACCrCC%:Am)Am.Am @P 9F&$25.5)5#5$4rpR"rG9^/#t1P)1P21P6t%2%-%%% &W#"s03 .1P(/&- ./2/7/.(l2(l)(l7&2&.&* %:(l%:&)&\_$\ r[CV$ r[V$T$Trpc ta a`$``C$rp^ YU0W$e$4$e$=$e$B$e$F$e$ Vtrp VtrrV V  p] Vt k  kp't ZG Y.G XG WG TGU TtG!?G!V4;G!V3G!V.eG!V.G@$(]r$)! !    rVrA$#A&+W$2Am7Am;tAm?AmDXAmHAmM;Am(5{&$M;5H5DX5?5;t575(1 &$"s2,s$71P;t1P?1PDX1PH1PM;1P,s."s$;t/?/DX/H/M;/M;(lH(lDX(l?(l;t(l7(lM;&H&DX&?&;t&9;$e$+$#$$(%*$$&z*$)/$$+z*$K$e$:%?W%C%H;%L% VBA$2D.D)D%:D DVDD7D:D?DDXDHDM;DD{F$M;CHCDXC?WC;tCVC C%:C)C.C2C7Cz=$F$rzJt$ r$Et$A=$>;$F$: @8$=$2.)%: 7;t?DXHM;2.)%: 7<?DXHM;;t72.)%: ?CHM;M; H; DX %: ) . 2 7 ;t ? 9]r$K]U$:L A$ !zD$ M;HC? %:).27;t$9*:$$:4(9 VJ 9Fm  %:?{$7?{$H?{$H?7?%:?$ U$6t U$H; U$V V- U$?W U$%: 7 ? H U y@$U  !<p.t $_$_$_,s$_#$_5W$_>;$_reVpf`Vte e9eeee"se&e+We/e4;e8e=eAe9pf`f`#f`+f`4f`=f`tdn 9dndndndnFpf`FteJte VG_:G_G_(G_0G_9G_BG_KdG_Gd$_rG_Udndn"sdn&dn+Wdn/:dn3dn8dn2=7=;t=!V:G!V9G!V;-G+!V4Gp<s53G d3G,?G ak)<%%$ 9t# 9#@$DXpU&CK:K2K)K KVK ry$Hta YrW );G"s7,sG VFAGr VJtG:8Gp] ?0W tM rL$ VQ$rR VJU$:?{$+ '&3 rk r r Otg>6XEROXFileProjectRevDatePagePARC/CSLDirectoryDoradoFetch transportFin zeroTransportFinNextStartEcChkStartEcGenStartSTA151514159101112131412-151598101112131488101012121414991111131315157next dDadTransportFoutNext715151313111199141412121010880xxxx159871011121314FinTask151314014141315151513141512131410-1112-1314-158-1112-15MD data validMDMadD data validMDM write pulseand reading outone word into MDD write pulse>Dbuf outputs validand writing oneword from Dbufend determined by storage chip data hold time, and timing ofStartmem relative to STnext dDad340360380400420440460480500520540560580600620640910111213141516320t16t17t18t19t20t21t22t23t24t25t26t27t28t29t30t31t32714131211108915Dad.0-6 validChkLastPh6or into FFoutNextDirty Word On FoutClean Word on FoutSee Below. . .FoutTaskEC2-7EC2-6EC2-5EC2-4EC2-3EC2-2EC2-1MakeFout_DMakeFout_DMakeSout_DMakeSout_DMakeMD_DMakeMDM_DMakeF_DMakeD_DbufMemDtiming2.silMemD timing 22 of 2MakeD_CDDad.0-9 validdDad.10-13=x6/12/80r$$t=py$x/:Gr9;t>GGGr>;Gr:Gr#Gr GrGrO-GNGNGGr0W prGrtr  rFm r r <prD{r$tDrB $rA&A$ CC AmAm AmAmrAmAmVAm?{y$?r5{#$r8#$r1 #$r.(%$%:5 555r55V5 51P 1P1Pr1P1PV1P 1P%:1P //r//V/ /%:/)//r+z0$*-%$3-%$3x-l r)#$rt* r9r(%1 $r&z1 $&)&%:& &V&&r&& &%:(l (lV(l(lr(l(l (l(l*:(l.(l2(l2&.&r$'$)%r% %%%V%% :%$%V$$ $$9$$$$$$$$#$$'s$$+$$r!z$!rz V$ r$ V$r V$r V$  r $rA y$ r$$r @$r     U$ U$ U$   r]r$/:#%$4;$A$4#% r$5#l 6tU$6t 4;!z@$4;$ 8$8.%:G.G.G!p"! &$0Wr$0WtO %] $'s|)t$dG$G$Gp(x <( rzr$$ $` $` $` ,s$` #$` 5W$` >;$` G$` tf 9fffff"sf&f+Wf/f4;f8f=fAfFfJtfVpg|g|g|"sg|+Wg|4;g|=g|Fg| VG` :G` G` (G` 0G` 9G` BG` KG` rG` Utfdn9dn dndndndnsdn!dn&Wdn*dn/:dn3dn8dn