LAB_AC9

download LAB_AC9

of 6

Transcript of LAB_AC9

  • 7/21/2019 LAB_AC9

    1/6

    Metode de testare a memoriei RAM

    Unul dintre modulele cele mai importante intr-un sistem de calcul este memoria.Realizarea fizica a unui modul de memorie presupune parcurgerea urmatoarelor etape:

    analiza cerintelor de memorie ale sistemului;

    evaluarea disponibilitatilor de circuite; elaborarea hartii de alocare a memoriei;

    divizarea pe blocuri functionale (ex. EPROM, RAM static, RAM dinamic);

    generarea semnalelor de selectie ale blocurilor si/sau circuitelor;

    realizarea schemelor de implementare;

    testarea si evaluarea performantelor.

    Sistemele cu magistrala de 8 biti (ex. cu 8080, 8085, 8088, Z80, etc.) au avantajulimplementarilor mai simple; multe circuite sint deja organizate pe octet (sau submultipli)

    ceea ce simplifica mult schemele. Din punct de vedere fizic accesul la memorie sedesfasoara intotdeauna pe octet, chiar daca operatiile de manipulare a datelor reclama

    transferuri de cuvinte mai lungi (16, 32 biti). In aceste din urma cazuri procesorulrealizeaza cicluri de memorie suplimentare pina la completarea operatiei curente.

    Sistemele cu magistrala de 16 biti (ex. cu 8086, 80286, Z8001/2, MC68000, etc.)

    implica o organizare mai complexa a memoriei, aceasta fiind impartita in zone deacces la nivel de bait, numite bancuri LOW si HIGH. Procesorul poseda un mecanismde semnalare a modului de acces (pe bait sau pe cuvint) si a bancului cu care opereaza la

    un moment dat.Un alt aspect tine de natura circuitelor utilizate; acestea reclama conditii de "timing"

    precizate in foile de catalog; generarea semnalelor de control si selectie trebuie sa tinacont de acestea pentru a asigura o functionare corecta.Erorile ce pot sa apara in realizarea blocurilor de memorie constau in:

    erori de adresare, cauzate de selectii incorecte, sau de proasta interconectare aliniilor de adresa la circuitele de memorie;

    erori de "timing", cauzate de nerespectarea cerintelor de timp, sau viteza alecircuitelor utilizate;

    erori de transfer, cauzate de interconectarea gresita a liniilor de date, si/sauaparitia conflictelor pe magistrale;

    erori de reimprospatare, specifice memoriilor RAM dinamic, cauzate de oproiectare sau degradare a mecanismului de "refresh".

    Aceste tipuri de erori sint specifice doar fazei de proiectare si executie si depistarea lortrebuie facuta inainte de omologarea sistemului. Tipurile de teste recomandate in aceasta

    etapa sint: teste de baza, care au rolul de a putea pune in evidenta ciclurile masina

    elementare; aceste teste se pot executa atit in regim static ("pas cu pas"), cit si inregim dinamic ("rulare");

    teste de adresare, care au rolul de a verifica localizarea corecta a informatiilor inmemorie;

    teste de transfer, care au rolul de a verifica regimul de scriere/citire si de a

    depista anomalii pe liniile de date;

  • 7/21/2019 LAB_AC9

    2/6

    teste de verificare a mecanismului de reimprospatare pentru memoriile RAM

    dinamic, care au rolul de a verifica mentinerea in timp a continutului locatiilor dememorie;

    teste de identificare, care au rolul de a realiza o harta a memoriei (zone ROM,

    zone RAM, zone neocupate);

    teste de anduranta, care au rolul de a verifica o perioada de timp mai indelungata

    modulele de memorie in conditii cit mai defavorabile (verificarea fiabilitatii).

    Teste de adresare

    Testele de adresare urmaresc verificarea corectitudinii generarii adreselor silocalizarea corecta a informatiilor (se exclud testele de adresare pentru vizualizare cu

    osciloscopul descrise anterior). Iata un algoritm simplu de verificare a corectitudiniiadresarii:

    se inscrie zona de memorie testata cu o configuratie de biti cunoscuta (deexemplu 00..0);

    se inscrie o singura locatie cu o configuratie complementata (de exemplu 11..1);

    se citesc toate locatiile neinscrise si se verifica daca nu a aparut una cu uncontinut diferit de cel initial;

    se reinscrie locatia cu continutul initial si se trece la urmatoarea locatie;

    daca a aparut o eroare se identifica adresa locatiei inscrise eronat si se compara cuadresa dorita; de aici poate rezulta chiar bitul de adresa ce creeaza probleme.

    unsigned char far *mem_ptr, *mem_top;int i, j, error_flag;

    mem_top=farmalloc(0x4000);for(i=0; i

  • 7/21/2019 LAB_AC9

    3/6

  • 7/21/2019 LAB_AC9

    4/6

    prezent semnalul -RAS realizeaza o reinscriere a continutului tuturor rindurilor adresate.Pe aceasta se bazeaza toate tipurile de automate de reimprospatare.

    Se cunoaste ca o locatie RAM dinamic trebuie reimprospatata intr-o durata de celmult 2 ms. Pentru un circuit sau modul DRAM este suficient sa se parcurga toate

    rindurile adresabile in intervalul mentionat, astfel incit ntregul continut al memoriei sa

    fie "revitalizat". Rezulta ca orice test care parcurge secvential locatiile de memoriesuficient de rapid, realizeaza automat si o remprospatare a continutului sau, chiar daca

    automatul de "refresh" nu functioneaza corect. Pentru a evita neajunsul de mai sus serealizeaza doua categorii de teste:

    teste cu adresare pseudo-aleatoare;

    teste cu cicluri "ntrziate".

    Primele teste realizeaza o parcurgere aleatoare a locatiilor de memorie, pe bazaobservatiei ca vor exista rinduri care nu vor fi adresate la timp (si deci nu vor fi

    reimprospatate chiar de secventa de test). Construirea acestor teste este dificila sirezultatele sint adesea neconcludente.

    Testele cu cicluri "intirziate" utilizeaza o inscriere preliminara, dupa care asigura ointirziere suficient de mare pentru a avea certitudinea ca secventa de test nu realizeazaea insasi reimprospatarea. Citirea pentru verificare permite o buna identificare a erorilor

    de reimprospatare. Algoritmul de test poate fi foarte simplu sau poate fi unul maicomplex (de exemplu modificarea testului MOSTEK se realizeaza foarte usor).

    Teste de identificare

    Aceste teste permit realizarea unei harti a memoriei instalate in sistem (zone RAM,

    zone ROM, zone neimplementate). Ele se bazeaza pe operatii de scriere/citire executatela locatii consecutive sau la locatii aflate la o distanta suficienta pentru a considera

    zona continua (vezi si lucrarea precedenta).

    Teste de anduranta

    Testarea finala a unui modul de memorie presupune si o verificare in timp afunctionarii fara erori. Testele de anduranta au ca scop crearea de conditii de lucru

    defavorabile pe o perioada de timp indelungata (de la citeva ore, la citeva zile).Principala calitate evaluata, in acest caz, este fiabilitatea.

    Probleme

    1 Sa se realizeze un test de adresare care sa permita identificarea urmatoarele defecte:

    fortarea la 0 a unei linii de adresa; fortarea la 1 a unei linii de adresa;

    scurtcircuit intre doua linii de adresa.

    2 Sa se realizeze un test de transfer care sa permita identificarea urmatoarelor defecte:

    fortarea la 0 a unei linii de date;

    fortarea la 1 a unei linii de date;

    scurtcircuit intre doua linii de date.

  • 7/21/2019 LAB_AC9

    5/6

    3 Sa se realizeze o implementare in limbaj C a testului MOSTEK simplificat. Ca zona

    testata se vor alege pe rind:

    memoria libera ramasa disponibila dupa program;

    memoria video detectata ca fiind activa;

    zona ale carei limite se indica de la consola;

    In timpul efectuarii testelor se vor afisa informatii de control cum ar fi: segmentultestat, numarul iteratiei (si eventual masca utilizata), erorile detectate. In cazul in

    care zona testata afecteaza functionarea sistemului, se va gasi o metoda de lucrunedestructiva (dezactivarea intreruperilor, salvarea continutului locatiilor testate,etc.).

    4 Sa se modifice unul din testele din problema 3 astfel incit sa permita si verificarea

    mecanismului de reimprospatare a memoriei RAM dinamic.

    5 Sa se implementeze o memorie ROM de 128 cuvinte a cte 8 biti, folosind cipuri de 256

    biti, organizati n 32 cuvinte a cte 8 biti.

    6 Sa se implementeze o memorie ROM de 64 cuvinte a cte 16 biti, folosind cipuri de 32cuvinte a cte 8 biti.

    7 Sa se implementeze cu memorie ROM si apoi cu o structura PLA urmatorul setde functii binare:

    8 Sa se implementeze cu memorie ROM un generator al functiei sinus, stiind caargumentul functiei variaza ntre 0 si p/2 cu pasi de p/512. Se cere rezultatul cu4 zecimale exacte n cod BCD.

    9 Sa se realizeze o memorie EPROM de 64 Kbiti ( 64K 1), folosind o memorie EPROMde 8 Kocteti ( 8K 8 ) si un multiplexor cu 3 intrari de selectie.

    10 Folosind o memorie EPROM sa se implementeze un circuit care realizeaza

    nmultirea M N =P , unde M, N si P sunt exprimate n cod BCD, iar M si Nsunt cuprinse ntre 0 si 9.

    11 Sa se implementeze o memorie EPROM de 2K 32 , folosind o memorie EPROM de

    64K 1. Se pot utiliza circuite auxiliare SSI/MSI si se presupune ca dispunem de unsemnal de ceas cu o perioada ceva mai lunga dect timpul de acces la memoriade 64K 1. Care este timpul de acces al memoriei de 2K 32 ?

    12 Folosind memorii SRAM de 8K 8 biti sa se realizeze n doua variante, o

  • 7/21/2019 LAB_AC9

    6/6

    memorie de 16K 12 biti.

    13 Sa se proiecteze o schema de adresare si comanda a remprospatarii pentru omemorie DRAM de 64K 1 bit.