PageDateRevDesignerProjectFileSDDAXEROXDaisyReference41IBIPSim41.silyMemory AddressingBus Interface -The Daisy memory will be constructed using 256K DRAM chips.These will have a "nibble mode" feature that allows one toread four bits from a chip in quick succession. This mode willbe used by the display controller and by the processors whendoing double word fetches. Unfortunately, the method ofaddressing the nibbles is clumsy. Assume the address bits01234567891011121314151617181920212223The 256K memory chips take 18 bit addresses in two 9 bit groups,23222120191817161514131211109876543210The unfortunate part is that the four bits returned from each memory chip are addressed by ColAddr.8,,RowAddr.8. Thus, ifaddress 000000 were sent to a memory system addressed inthis manner, words 0, 512, 1, 513 would be returned onsuccessive nibble mode accesses. This is horribly confusing foreither BitBlt, the display controller or both. To fix this, the01234567131211109823141516171819202122Thus, it is only necessary to sent 15 bits in one step andThe A chip saves the extra bit sent in the first step andsends it as part of the column address.During a real memory reference, the most significant 8Arithmetic or logical operations are only allowed on theleast significant byte of real addresses. This in onlyreasonable since pages are 256 words long and consecutivevirtual pages are seldom assigned consecutive real pages.The AP interface pins are multiplexed among the first groupof address bits (called A1), the second group of addressbits (called A2) and the write or read data. The twoaddress groups are formed as follows:AP.00AP.01AP.02AP.03AP.04AP.05AP.06AP.07AP.08AP.09AP.10AP.11AP.12AP.13AP.14AP.15A1Mem. Addr.F.15RA.[0..8]CA.[0..8]CA.[0..8]RA.[0..8]The chips accept the CA.[0.8] bits some 50 nS later.0123456788765432100123456788765432107654321015141312111000010203040506070809012345543210RA.0RA.1RA.3RA.8RA.2RA.4RA.5RA.6RA.7CA.0A2Mem. Addr.F.7*F.8F.10F.9F.11F.12F.13F.14CA.1CA.2CA.3CA.4CA.5CA.6CA.7CA.8are held in an RH,,R,,FBus triplet, one byte in each.F.[08..15]always performs F_rB when MAR_ is specified.For obscure reasons, they are permuted when sentfrom the IBIP to the A chip (see below).09080605040302010010111213140123456715F07F.[07..14]address bits are permuted as follows:H.[0..7]H.[0..7]B.[00..05]B.[00..05]The RH bits appear on the H bus and the R bits on the B bus.B.00B.01B.02B.03B.04B.05B.06* F.7 = B.7 since the most significant byte of the ALUH.0H.1H.2H.3H.4H.5H.6H.7Bthen 9 bits in the second step. Because we wish to beable to support 64K chips if necessary, we send 16 bits, then 8.bits are read from an RH register (H.[0..7]), the nextmost significant bits from an R register (B.[00..07]) andthe least significant 8 bits from the F bus (F.[08..15])."Mem Addr" is the interpretation the A chip gives tothe address bits on the AP bus. The presence of the A1bits is signalled by Cp' going LO. A2 is signalled by Ca'dropping.Row address and Column address. The remaining bits are either unused,Assume addressing were done in the straightforward manner:AS.[0..2]unusedunusedAS.[0..2]BSused to select an A chip (AS.x), or used to select a memory bank(BS).BSunusedunusedAS.0AS.2AS.1BSThe A Chip, Bank Select and RA bits are needed first.Garner, Davies8/16/83IuNIXGAG>;G1sG&WGrGGGMGGMGAN>N2N9N&NMG9?Wp]y]uN Kp]&]@tg;f:e?dn<cQ8b5:Y Y 9YrYYYYVYYYsYY!Y$Y&WY(Y*Y-Y/:Y1sY3Y5Y8Y:WY[C5W$Y 5W$Y.$9Y.$9 Y.$9 VY.$9:Y.$9Y.$9Y.$9Y.$9sY.$9Y.$9Y.$9Y.$9(Y.$9%Y.$9#Y.$9!VY.$9*:Y.$9,sY.$9.Y.$90Y.$99Y.$97Y.$95WY.$93Y.$9<Y.$9[$s[$<[$U@<K$93K$95WK$97K$99K$90K$9.K$9,sK$9*:K$9!VK$9#K$9%K$9(K$9K$9K$9K$9sK$9K$9K$9K$9:K$9 VK$9 K$9K$9K$9K5W$M5W$:WL8L5L3L1sL/:L-L*L(L&WL$L!LLsLLLVLLLLrL 9L LLN$<N$N$(N$H>G<Fm8EP6D4@C@?{5W$=B5W$=f$9=f$9 =f$9 V=f$9:=f$9=f$9=f$9=f$9s=f$9=f$9=f$9=f$9(=f$9%=f$9#=f$9!V=f$9*:=f$9,s=f$9.=f$90=f$99=f$97=f$95W=f$93=f$9<=f$9> > 9>r>>>>V>$>!>>s>>>&W>(>*>->/:>1s>3>5>8>:W>/:+9*'(l6#8"7!9 9l;O835%9O OOOOsO!O&WO*O/:O3O8O<OAOEtOIO$  $ $ $ %$ !V$ $ s$ *:$ .$ 3$ 7$ IX$ D$ @t$ <$ 9 Jt:Pm /Pm /6 :6 034NVNNNN :N"sN$N&N:N8N6tN4;N2N/N-N+WN)N)8+W8-8/8284;86t888:8&8$8"s8 :8888V88V\\\\r\ 9\ \\:W\8\5\3\1s\/:\\:\s\\!\$\&W\(\*\-\N N 9NrNNN88r8 98 88BF 9Jt"s9k 's+40W9;=AF&k+k/k4;k8k=kAkFka5*:[$0W]  ,2l01P(/:;-;(;$;!;;s;:;;1s;3;5;8;:W;; ; 9;r;;;;V;&W;&:4*;/::4 *::$%:$s:$6$6$U(6$<6$A%M$ G$zG$G$M$95W$ ] :4s:4 s] _< 9"s 6's+0W49;=BF):4-6,@'O6&39%9 47: TFR:N$ N$ 9Pm 9Pm96 96 V6SEVPm6$U 6$U&W*/84;=352p]B] Nh.unusedunusedAS.0AS.2AS.1BSPageDateRevDesignerProjectFileSDDAXEROXDaisyReferenceMemory AddressingBus Interface -IBIPSim42.sily42AP.00AP.01AP.02AP.03AP.04AP.05AP.06AP.07AP.08AP.09AP.10AP.11AP.12AP.13AP.14AP.15A1RA.0RA.1RA.3RA.8RA.2RA.4RA.5RA.6RA.7CA.0A2CA.1CA.2CA.3CA.4CA.5CA.6CA.7CA.8Continued from IBIPSim41.silyis the Instruction Buffer. Its addresses aregenerated by the concatenation of thefetch Program Counter's page number (fPCp)and its page displacement (fPCd). These bitsare sent as follows:Mem.Mem.fPCp.0fPCp.1fPCp.2fPCp.3fPCp.4fPCp.5fPCp.6fPCp.8fPCp.7fPCd.0fPCd.1fPCd.2fPCd.3fPCd.4fPCd.5fPCd.6Note that since all Instruction Buffer fetchesreference double words, fPCd.7 is always sentas 0 or GND.Map _The Mesa Virtual Memory map is held inmain memory starting at location 1000'X.The A chip has no special circuitry foraddressing the map, virtual addresses areconverted into map indexes in the P chip.The 80186 must do a similar transformation.The entries for consecutive virtual pagesdo not lie in consecutive map locations.This again result from the permutation ofaddress bits done to make nibble modeaccesses return consecutive addresses.The trick here was to send the least significant bit of address in the first groupof addresses (A1). The least significantbit of a map index would normally be F.7since this is the least significant bit of acomputed page number. Unlike F.15 however,F.7 will not be ready into well into PhaseB. This is too late for it to be sent inA1. The only bits that will be ready in PhaseA are the RH.[0..7] bits. Conceptually, anyof them could be chosen to be the leastsignificant map index bit. To make thingseasy for the 80186, we should chooseeither RH.0 or RH.7. To convert a virtualpage number into a map index, the 80186will move the bit chosen (RH.0 or RH.7) tothe least significant bit and shift the lowerorder bits up to fill the hole. One wouldlike to choose RH.0 since this becomes asimple 16 bit left rotate. However, if a22 or 23 bit virtual address space is used,only even locations in the map will be used,wasting 16K or 32K words respectively.Hence, we choose RH.7. The 80186 can formthe map index by doing a right rotate of theupper byte, putting the bit to be movedinto the Carry flag followed by a 16 bitleft rotate, putting the Carry flag intothe LSB.Mem.Mem.CA.8CA.7CA.6CA.5CA.4CA.3CA.2CA.1A2CA.0RA.7RA.6RA.5RA.4RA.2RA.8RA.3RA.1RA.0A1AP.15AP.14AP.13AP.12AP.11AP.10AP.09AP.08AP.07AP.06AP.05AP.04AP.03AP.02AP.01AP.00F.0F.1F.2F.3F.4F.5F.6F.7fPCp.9fPCp.10fPCp.11fPCp.12fPCp.13fPCp.14fPCp.15000000010The other source of addresses for the AP busBSAS.1AS.2AS.0unusedunusedthe address bits on the AP bus. The presence of the A1bits is signalled by Cp' going LO. A2 is signalled by Ca'dropping."Mem" is the interpretation the A chip gives toH.0H.1H.2H.3H.4H.5H.6Garner, Davies8/14/83H.7#tL'sL-L7L2L;G1sG&WGrGGGMGGMGAN>N2N9N&NMG9?Wp]y]uN p@&]K]tPVP P9PPPP#P'sP,sP1sP6tP;tP@tPEtPJtPUGf$ UR_K$UGBK$Gf$  9Gf$ Gf$ "sGf$ Gf$ Gf$ Gf$ &Gf$ +Gf$ 0Gf$ 5Gf$ IGf$ DGf$ ?Gf$ :Gf$ NALFLLNGf$ KLrL VLL:LLLJQ#H(H-H2H7H<HAHFHKN$p]|rtYQ-rX5%rW*rU-rTHLNVN N9NNNN#N#JQ'sJQ,sJQ1sJQ6tJQ;tJQ@tJQEtJQrEP.rD4-rC @PPkp=Brt;P&r:4(r9'r7)r6)r5+UP&K$r4)r3(r2l)r1P%r03&r/%r--r,)r+(r*,r)+r(l*r'O)r&3.r%,#;P'#:4*#9$#7*#6'#5*#4-#3*#2l(#1P)#03+#/,#-&#,*#+,#*'#)(#(l(#'OUK$kN$FA<72-(#3kk:kk VkrkKkNH$ kFkAk:H$ ?H$ DH$ IH$ 5H$ 0H$ +H$ &H$ H$ H$ H$ "sH$ H$  9H$ H$ U$K$UAK$UH$ JtEt@t;t6t1s,s's#9 V#3(3-32373<3A3F3'sN,sN1sN6tN;tN@tNEtN$(.27<AFKNrZn,<k2k7k-k'sk#kr 7r :r k r / r V:2p]B]Kt "P^.{ Helvetica  Helvetica Helvetica j/mnIBIPSim41.sily etc. Hel DDavies.PAF19-Aug-83 20:33:02