Documente Academic
Documente Profesional
Documente Cultură
Zoltan Hascsi
A 15
0000 0000 0000
. . . . .
0000 0011 0100 0000 1111 0000
A0
0000 1111 0000
adrese interne
0000 1111
0000 1111
ROM 7
1C00 1FFF
RAM 0 RAM 1
RAM 10
F000 FFFF
Privind cu atenie harta memoriei se pot face cteva observaii utile pentru implementare. Zona de memorie ROM este situat ntre adresele #0000 i #1FFF (un numr scris n hexazecimal este precedat de un diez - # -). Dac citim adresele n binar (pe desen n stnga memoriei) observm c primii trei bii au aceeai valoare pentru toate adresele din zona destinat ROM-ului, A15 = 0, A14 = 0, A13 = 0. Este evident cum se va face accesarea corect a cipurilor ROM: dac primii trei bii ai adresei sunt 0, atunci citirea se va face din zona de memorie ROM.
Zoltan Hascsi
n zona ROM sunt ns 8 cipuri, unul singur fiind posesorul locaiei dorite. Selecia cipului ROM corespunztor se face cu urmtorii trei bii ai adresei. Primului cip (ROM0) i-au fost alocate primele 1K adrese, deci adresele pn la #03FF sunt localizate aici. Aceste adrese au n comun, pe lng primii trei bii corespunztori zonei ROM, biii A12, A11 i A10. Aceast valoare, 000, va fi folosi8t pentru selecia primului cip ROM. Al doilea cip (ROM1) conine adresele ncepnd cu #0400 pn la #07FF, pentru care biii A12, A11 i A10 sunt 001. n mod analog toate cele opt cipuri ROM au o identificare unic, dat de biii A12, A11 i A10 ai adresei. De exemplu adresa 000101XXXXXXXXXX corespunde unei locaii din cipul ROM5 (5 n binar este 101). Ultimii 10 bii ai adresei sunt folosii pentru adresarea celor 1024 (1K) locaii n interiorul cipului ROM selectat.
3 3 10
Dac urmrim pe harta memoriei valorile adreselor corespunztoare zonei RAM observm c primii doi bii ai acestora sunt n toate cazurile diferii de 00. Putem deci selecta zona de ROM i numai cu ajutorul primilor doi bii A15 A14 ai adresei, dar numai dac zona de memorie neacoperit, situat ntre adresele #1FFF i 3FFF, nu este deloc utilizat de sistem (zon pentru care primii doi bii sunt 00 dar al treilea bit este A13= 1). Selecia cipului ROM se face prin intermediul unui demultiplexor care va activa ROM-ul care corespunde biilor A12 A11 A10 din adres (intrarea de CE a cipului ROM valideaz ieirea acestuia). Biii de selecie au efect ns numai dac adresa este n primii 8K din spaiul de adresare, adic dac primii trei bii ai adresei sunt 000. Demultiplexorul este activ numai dac intrarea de validare (E) este n 0.
ROM 0 A9
. .A 0 10 3
A 9. . A 0 A 12 A 11 A 10 CE S2 S1 S0 0 1 ROM 1 W W
A 10 . . A 12
A 13
. .A
15
D M E U X
ROM 7 A 9. . A 0 7 CE W 8 DATA
Pentru adresarea DRAM-ului de 4K este nevoie de 12 linii de adres (ce vor fi multiplexate, mpreun cu adresa de refresh, pentru accesarea efectiv a cipurilor DRAM). Cipurile DRAM se grupeaz cte opt pentru a asigura lungimea de opt bii a cuvntului din memorie. Vom identifica n cele ce urmeaz un bloc DRAM cu un indice (RAMi), iar un cip RAM cu doi indici: primul indice este al blocului iar al doilea desemneaz indicele bitului din cuvnt (RAMij).
Zoltan Hascsi
Privind pe harta memoriei cum sunt partiionate locaiile de memorie ntre grupurile DRAM sesizm c fiecare grup este caracterizat prin valoarea primilor 4 bii ai adresei. De exemplu adresele #7000 - #7FFF aparin grupului RAM1, i au n comun biii A15, A14, A13 i A12 = 0111. Aceti patru bii vor fi folosii pentru identificarea (selecia) grupului DRAM. Reamintim c dac aceti bii au valoarea 000X adresa respectiv aparine ROM-ului. Grupurile DRAM sunt identificate prin A15, A14, A13, A12 = 0110 pentru RAM0, A15, A14, A13, A12 = 0111 pentru RAM1, ... A15, A14, A13, A12 = 1111 pentru RAM9. Pentru selecia n zona DRAM s-ar putea folosi un decodor 4:16 care s recunoasc combinaiile 0110, 0111, ... , 1111. Cum ns nu avem la ndemn dect demultiplexoare 1:8, vom recurge la un mic truc combinaional. Urmrind cu atenie adresele binare se observ c toat zona de memorie RAM2-RAM9 are n comun cel mai semnificativ bit al adresei A15 = 1. Selecia ntre aceste opt grupuri se face cu un singur demultiplexor al biilor A14, A13 i A12 , a crui ieire selectat este valid numai pentru A15 =1. Primele dou grupuri DRAM sunt situate n zona de adrese corespunztoare lui A15 = 0. Vom folosi un alt demultiplexor 1:8, comandat tot de biii A14, A13 i A12 i validat de bitul A15 = 0. RAM0 i RAM1 vor fi selectate de ieirile 6 i 7 ale demultiplexorului, care corespund combinaiilor 110 i respectiv 111 ai biilor de adres A14, A13 i A12. Aceast schem nu este altceva dect un decodor 4:16 realizat cu demultiplexoare 3:8! (vezi schema de mai jos)
CAS
E0 E1 S2 S1 S0 3 CAS 6 7 CAS
RAM 0
RAM 1
D M E0 U X
E1
RAM 9 7 CAS
A 15 A 14 A 13 A 12
S2 S1 S0 3
S-au folosit ambele intrri de validare ale demultiplexorului, E1 pentru extinderea demultiplexorului, iar E0 pentru intrarea propriu-zis (semnalul CAS este cel demultiplexat). Toate celelalte intrri ale cipului RAM sunt comune tuturor cipurilor, cu excepia ieirilor care sunt comune numai pe coloane. Semnalele RAS, CAS, W, select, ca i adresa de refresh sunt generate de un automat de control al memoriei RAM. n schema urmtoare apare un singur cip dar conexiunile W, RAS i A5-A0 de la ieirea multiplexorului sunt comune tuturor cipurilor. Liniile de date Dj sunt comune cipurilor pe coloane. Semnalul CASi este comun tuturor cipurilor de pe linia i.
Zoltan Hascsi
ADD refresh A5
. .A 0
6 6 6
A 11 . . A 6
6 MUX 4:1
RAM ij
6
A 5. . A 0 RAS CAS W W
RAS CAS i
select D in j D out j
Schema este gata, memoria este alturat sistemului, sistemul este alimentat i la pornire, n timpul testului de memorie, surpriz: Memory Error at location AD53. Write test failed. Ce facem cnd apare un asemenea mesaj? Dac testul de memorie a euat doar pentru o singur locaie de memorie, atunci nu avem altceva de fcut dect s detectm cipul defectat i s-l nlocuim. Nu o s scoatem cipurile de pe soclu ca s le verificm unul cte unul; testul de memorie ne i arat unde este eroarea. Trebuie doar s tim cum s decodificm mesajul. Adresa AD53 corespunde zonei RAM. Selecia grupului RAM se face cu biii A15, A14, A13 i A12 Cum AD53 n binar este 1010 1101 0101 0011, rezult c cipul defect se afl n ultimele 8 grupuri RAM (bitul A15 este 1), selectat de ieirea demultiplexorului cu indice 2 (A14A13A12 = 010). Este vorba deci de grupul RAM4 (constituit din cipurile RAM47 ... RAM40). Fiecare cip din grupul respectiv memoreaz la adresa AD53 cte un bit al cuvntului. Detecia cipului defect se face comparnd cuvntul care ar fi trebuit memorat cu valoarea citit de test. S presupunem c testul a ncercat scrierea lui #55 i a citit apoi #51. bitul: 7 6 5 4 3 2 1 0 #55 = 0 1 0 1 0 1 0 1 #52 = 0 1 0 1 0 0 0 1
Prin urmare bitul D2 a fost incorect scris, cipul RAM42 trebuie nlocuit.