MEMORIA
6.1. Generalitati
Dupa cum am vazut în cadrul arhitecturii von Neumann emoria constituie unul din elementele de baza ale structurii unui sistem de calcul, rolul ei fiins acela de a memora în primul rând programul si datele care se prelucreaza. La început, primele calculatoare dispuneau de putina memorie si era nevoie de multa inventivitate din parteaprogramatorilor ca aceasta sa ajunga pentru programele care tindeau sa devina tot mai lungi. Odata ce tehnologia a oferit posibilitatea ca aceasta sa poata fi obtinuta la un pret acceptabil, ea s-a diversificat aparând mai multe tipuri de memorie într-un calculator, fiecare din acestea având locul si rolul ei bine stabilit. Memoria unui calculator PC cuprinde în principal doua tipuri:
A) Memorie RAM
B) Memorie ROM
A) Memoria RAM
Numele acesteia provine de la denumirea ei în engleza: Random Access Memory. Informatia care se gaseste stocata în ea la diferite adrese (cod de program sau date) poate fi citita sau înscrisa cu o noua informatie. Se spune ca suporta a 545j94f tât operatii de citire (read) cât si operatii de scriere (write). Informatia elementara care se memoreaza este o informatie binara de 0 sau 1 iar circuitul fizic elementar care poate memora aceasta informatie se numeste bistabil (are doua stari stabile carora li se asociaza valoarea 0 sau 1). Daca acesti bistabili sunt alcatuiti din doi tranzistori se spune ca memoria RAM este de tip static deoarece informatia odata înscrisa se pastreaza nealterata pâna eventual la oprirea calculatorului când se pierde.
Pentru o celula de memorie s-a reusit sa se foloseasca numai un singur tranzistor (deci densitatea de informatie memorata va fi dubla fata de cea anterioara), acest tip de memorie numindu-se de tip dinamic. Acesti tranzistori pot sa-si piarda sarcina electrica pe care o înmagazineaza (deci informatia memorata în ultima instanta) si atunci este nevoie de o operatie de reîmprospatare permanenta (refresh) care se face cu ajutorul unor circuite concepute în acest scop (un refresh la minimum 2 ms).
Aceste blocuri de memorie RAM au în general o organizare matriceala dupa cum se vede în fig. 6.1. Daca la început aveau forma unor circuite integrate distincte, odata cu evolutia tehnologiei aceste cipuri au fost plasate pe placute de memorie cu 30, 72, 162, etc picioare si capacitatea lor a crescut de la 256K, 1M, 2M, 4M, 8M, 16M, 32M , 64M, 128M, 256M sau in viitor mai mult. În unele publicatii se poate întâlni si termenul de DRAM (Dynamic Random Access Memory - memorie dinamica cu acces aleator) care precizeaza ca este de tip dinamic si cu unele denumiri ca SIMM (Small Inline Memory Modules ), DIMM,DDRAM etc.
Fig. 6.1.
B) Memoria ROM
Aceasta memorie nu suporta decât citirea datelor din ea (ROM - Read Only Memory - memorie numai pentru citire) si la fel ca si memoria RAM, capacitatea ei a crescut odata cu evolutia tehnologiei de la circuite de 1K la 2K, 4K 8K, 16K, 32K, 64K, etc.Daca informatia care este înscrisa într-un modul se mai poate sterge si reîncarca, se spune ca avem de-a face cu ROM-uri programabile( pâna la 50 - 100 de reînscrieri). La primele tipuri de memorii ROM stergerea se face cu lumina ultravioleta printr-o fereastra de cuart plasata deasupra chipului avînd memrie de tip EPROM. Daca stergerea se face electric avem EEPROM (Electrical EPROM).Aceasta stergere si reînscriere a informatiei se facea in dispoyitive speciale numite programatoare de ROMuri . În momentul de fata stergerea si reprogramarea se face strict electric , crcuitul ramîne pe placa unde este montat folosindu+se asa zisa memotie ROM de tip flash. Acest tip de memorie poate fi sters si reprogramat de cîteva mii de ori .
Memoria ROM se foloseste în PC pentru memorarea programelor BIOS - Basic Input Output System - despre care s-a mai amintit.
6.2. Alocarea memoriei pentru pentru sistemul de operare DOS
În figura 6.2. se preyinta o harta a memoriei în care se recunosc unele segmente care au fost prezentate într-un capitol anterior. Se observa ca pentru programele de aplicatie sunt disponibili 640K de memorie. În realitate nu toti acesti octeti sunt disponibili.
Din figura 6.3. se observa ca atât sistemul de operare DOS cât si BIOS-ul calculatorului foloseste o parte din memoria RAM disponibila pentru memorarea unor date necesare bunei lor functionari. Pentru asigurarea portabilitatii programelor (adica pentru ca programele sa poata rula pe orice tip de calculator PC) sub sistemul de operare DOS proiectantii DOS-ului recomanda dezvoltarea unor apeluri de functii cu structura din fig. 6.3. Astfel programul utilizator va apela o serie de functii ale sistemului de operare care la rândul sau acceseaza functii specifice echipamentului hardware existent cu ajutorul functiilor BIOS specifice.
Fig. 6.2.
Fig. 6.3.
Dupa cum am vazut, pentru simplificarea apelurilor functiile BIOS respectiv DOS, acestea sunt apelate cu instructiuni de tip INT n adica întreruperi software de nivel n. Pe lânga furnizarea lui n în instructiunea propriu-zisa se mai furnizeaza în plus si informatii suplimentare prin octeti specifici plasati în preambulul apelului într-un registru (AX de obicei) sau chiar mai multi registri.
Astfel de exemplu functia
INT 10H
ofera o varietate de servicii BIOS pentru gestionarea ecranului. Trebuie avut grija ca înainte de apelul acestei functii în registrul AH sa se încarce un octet care sa specifice servicul video apelat.DE exemplu , 00H va selecta modul video, 01H va stabili dimensiunea si forma cursorului, 02H va stabili pozitia cursorului s.a.m.d.
Exista mai multe functii BIOS care pot fi apelate în acelasi mod ca cel descris anterior.
Daca avem nevoie de anumite servicii asigurate de catre sistemul de operare DOS, apelarea acestora se face cu int 21H care este specifica acestui sistem de operare. În prealabil se va încarca:
registrul AH cu numarul functiei;
registrul
daca este necesar se încarca si ceilalti registri cu date;
se apeleaza INT 21H
De exemplu, daca se doreste ca un program sa se termine si sa se predea controlul procesului parinte se poate folosi functia 4CH cu urmatoarea secventa simpla de instructiuni:
mov ah, 4ch
int 21h
Ea este folosita în mod curent la terminarea programelor scrise în limbaj de asamblare pentru redarea controlului catre sistemul de operare DOS (cunoscuta si sub numele de functia EXIT).
Figura 6.4. schiteaza care sunt componentele principale ale BIOS - ului si eventual rolul jucat de acestea.
Fig. 6.4.
În momentul pornirii singurul program care poate fi apelat este cel din memoria ROM si anume modulul BIOS de pornire (boot la rece !). Acesta are rolul de a face un test scurt al sistemului pentru aflarea configuratiei existente (POST - Power- autotestul de pornire), initializeaza anumite echipamente si trece la încarcarea SO - DOS de pe disk sau de pe disketa.
Pe lânga aceasta functie tot în BIOS sunt memorate programele de întreruperi hard precum si serviciile BIOS oferite tot prin apelul unor întreruperi BIOS.
6.3. Memoria video
Una din cele mai importante interfete dintre utilizator si PC o constituie monitorul calculatorului. Daca la începutul calculatoarelor ecranul afisa numai caractere monocrome, odata cu dezvoltarea procesoarelor si sistemul video care asigura afisarea a trecut prin transformari majore fiind capabil ca pe lânga caractere sa apara si grafice, eventual în culori iar sistemele Windows fac din aceasta interfata grafica modul principal de dialog si comanda!
Observam în figura 6.5. ca elementele principale ale sistemului de afisare sunt echipamentul de afisare (CRT - Cathodic Ray Tube - monitorul propriu-zis) adaptorul video (sau controler) si memoria video.
Putem sa definim ca memorie video zona de memorie accesata simultan de procesor si de controlerul video care la iesire este capabila sa produca o secventa seriala sincrona de informatii capabile sa comande un dispozitiv de tip CRT.
Fig. 6.5.
Aceasta memorie într-o prima aproximatie poate fi vazuta ca un registru urias de deplasare ce contine în el memorata imaginea. Un punct de pe ecran se numeste pixel. Acest punct poate avea anumite caracteristici (atribute) cum ar fi culoarea sa, clipitor,video invers , etc.
Dupa cum se observa din figura 6.6. imaginea care trebuie afisata este stocata într-un ecran virtual din memoria video. Controlerul video genereaza un rastru miscând fasciculul de electroni de la stânga la dreapta si de sus în josul ecranului, similar cu cititul unei pagini. La sfârsitul unei linii orizontale fascicolul este stins si mutat la începutul liniei urmatoare baleind linia s.a.m.d. Aceasta baleiere poarta numele si de rastru.
Prentru fiecare pozitie a unui pixel din rastru datele de afisat sunt citite din ecranul virtual aflat în emoria video. Aceste date sunt aplicate la intrarile unor circuite DAC (Digital Analog Convertor) care le convertesc în nivele de tensiune pentru cele trei culori primare RGB (Red, Green, Blue) folosite în televiziunea color. Dupa terminarea unui cadru fascicolul se reîntoarce în stânga sus si reîncepe un nou cadru, s.a.m.d.
Un astfel de tip de afisaj se mai numeste si afisaj APA (All Points Addressable).
Noi am reprezentat un rastru cu 640 de puncte pe linie si 480 de colane (640 x 480).
Pentru ca imaginea sa nu aiba efect de pâlpâire se impune ca numarul de cadre pe secunda (frecventa de reîmprospatare) a ecranului sa fie mai mare de 50 Hz.
Toate ecranele actuale sunt echipamente APA dar vom gasi si calculatoare mai vechi care functioneaza cu standarde mai vechi cu definitii si caracteristici mai slabe.
Au existat mai multe tipuri de controlere video:
Fig. 6.6
MDA (Monochrome Dispozitiv Adaptor) construita de IBM în 1981 odata cu primul PC. Nu avem posibilitati grafice putând afisa numai caractere ASCII standard;
Hercules care a rezolvat problema îmbinarii textului cu grafica pe acelasi ecran. Placa monocroma HGC (Hercule Graphic Card) putea afisa 720 x 348 puncte monocolor pe ecran.
CGA (Color Graphic Adaptor) produsa de IBM ce putea ajunge la 640 x 200 puncte cu 16 culori simultan;
EGA (Enhanced Graphic Adaptor) cu rezolutie de 640 x 350 puncte
VGA (Video Graphic Array) cu 640 x 480 puncte si 256 culori cu un rastru similar prezentarii noastre;
SVGA (Super Video Graphic Array) cu 1024 x 780 puncte afisabile
Toate placile dinntr-o serie pot în general lucra cu programe scrise pentru seriile anterioare. Noi am prezentat modul de functionare asa-zis grafic al acestor placi dar mai exista un mod de functionare numit caracter În acest mod se considera ca memoria contine coduri de caractere ASCII si nu puncte direct afisabile iar un circuit special numit generator de caractere livreaza pixele din codul ASCII citit.
Vom mai reveni la placa de tip APA insistând putin si asupra afisajului de culoare al punctelor. Un monitor color poate afisa peste 16 milioane de culori, dar adaptorul video limiteaza aceasta cifra. Daca utilizam pentru fiecare pixel câte un octet pentru a memora caracteristicile sale de culoare putem avea 256 (2**8) de culori. Daca extindem pentru un pixel la 2 octeti memoria, atunci sunt posibile 65536 de culori, iar daca pentru fiecare culoare fundamentala (RGB) se rezerva un octet (deci 3 octeti pe pixel) depasim 16 milioane .
În terminologia PC - urilor modul de afisare cu 1 octet rezervat pentru un pixel se numeste pseudo - color, cu 2 octeti HIGH color si cu 3 octeti - true color.
Pentru ca din informatia numerica sa se obtina un nivel de tensiune analogic corespunzator în adaptoarele video se utilizeaza convertoarele numeric - analogice (DAC). Acestea sunt de obicei pe 8 biti si câte unul pentru fiecare culoare fundamentala. Deci am fi în stare sa afisam peste 16 milioane de culori dar de obicei informatia de culoare pentru aplicatii grafice nepretentioase este cuprinsa pe un octet - deci numai 256 de culori la un moment dat din cele 16 milioane posibile. Cele 256 de culori alese pentru afisare din domeniul de 16 milioane formeaza asa - zisa paleta de culori iar conversia de la 8 biti la 24 biti se face în adaptorul video printr-o memorie numita CLUT (Color Look - Up Table - Tabel de selectie al culorii). Figura 6.7. prezinta functionarea paletei de culori.
Valoarea pe 8 biti a octetului este considerata o adresa în tabela CLUT care va selectiona cuvântul de 3 octeti corespunzator ce va genera culoarea. Daca se doreste schimbarea paletei se vor memora alte valori în tabela CLUT pentru acelaiasi adresa.
Fig. 6.7.
În final trebuie sa amintim ca placile grafice actuale pot avea o memorie video mai mare decât cea alocata în harta memoriei. Dar numai o singura pagina se afiseaza la un moment dat. Pagina afisata este selectata cu un registru intern. Deasemeni au aparut placi cu asa-numite acceleratoare video (AGP) care sunt folosite si pentru grafica în 2 dimensiuni (2D) sau 3 dimensiuni ( 3D.). Controlerele video au integrate unitati cu instructiuni grafice speciale pentru prelucrarea si sinteza imaginilor procesorului revenindu-i numai sarcina de a apela aceste functii integrate în controler.
Memoria CACHE
Daca vom privi harta de alocare a memoriei vom observa ca acest tip de memorie nu apare si în realitate P si PC poate functiona foarte bine si daca aceasta nu exista. Memoria CACHE este mai curând un principiu decât un dispozitiv! Exista foarte multe tipuri de CACHE, unele construite din dispozitive hardware specializate, altele nu sunt decât programe ! Toate însa au la baza aceeasi idee: de a aduce mai aproape ceea ce se foloseste mai des si a lasa mai departe lucrurile folosite mai rar ! Astfel se poate folosi rapid ceea ce este deja aproape . Fiind vorba de memorie ,cache - ul este o memorie mai rapida decît memoria RAM si care este interpusa între memoria RAM lenta si μP
Fig. 6.8
Dupa cum se observa din figura 6.8 între memoria RAM a P si P s-a interpus o memorie mai mica dar cu un timp de acces mult mai mic în ordin de marime. Atunci când P face un acces la memorie cauta mai întâi daca nu cumva adresa cautata se gaseste în memoria cache. Daca gaseste informatia nu se mai face apel la meoria RAM si se trece mai departe. Se spune ca s-a realizat un "hit" (s-a nimerit)!.
Daca informatia nu exista se face un apel la memorie (am avut un rateu - un "miss"). Din memorie nu se aduce numai informatia ceruta ci o "felie" mai mare si cu informatiile continute adiacent adresei. Astfel ca daca la un nou apel se cere informatia urmatoarei adresei aceasta si altele se afla deja în cache . Cunoscând principiul vom cauta sa dam unele exemple de cache hard sau soft luate din activitatea curenta a unui utilizator de PC si care poate la o prima privire scapa neobservate ca ar avea legatura cu tehnica de cache !
Cache - ul de disk. Orice SO de operare( mai putin MS - DOS !) functioneaza si cu un cache activ pentru disk, cache care memoreaza o portiune de disk ce contine programe ale SO si este localizat în memoria principala RAM (fig. 6.9)
Fig. 6.9.
Pentru sistemul DOS firma Symantec (producatoarea programelor din seria Norton ) ofera un program cache numit smart - drive care asigura schema de mai sus si care mareste viteza de lucru de cîteva ori ,mai ales cînd se foloseste intens discul.
2.Cache - ul procesorului. Daca se analizeaza viteza ultimelor μP si cea a memoriei RAM vom vedea ca exista diferente între acestea de aproape un ordin de marime. Din aceste motive se introduce o memorie cache intermediara care mareste viteza sistemului cu 100%-400% în functie de tipul aplicatiei.
Chiar mai mult, la ultimele tipuri de P (de la Pentium în sus) pe pastila de siliciu a procesorului este integrat un cache intern cu timp de acces egal cu cel al procesorului numit cache level 1 spre deosebire de cel intern numit cache level 2
Fig. 6.10
` 3. DNS (Domain Name Server) de pe reteaua Internet sunt niste cache software care retin adrese si IP asociate pentru cresterea eficacitatii de cautare a unor site-uri.La o revenire a utilizatorului pe aceste situri exista deja memorate corespondentele adresa IP care se foloseste fara sa se apeleze din nou serverul DNS initial.
Clientii WWW cum ar fi Netscape sau Internet Explorer memoreaza într-un cache soft siturile deja vizitate si eventual paginile deja citite pentru ca la o comanda Back sa se ia informatia citita din cache si nu se face un apel de a descarca din nou o pagina deja citita!
Memoria virtuala.
Memoria virtuala este un mecanism prezent în orice SO modern. Cu ajutorul acestui mecanism se pot executa programe mai mari decât ar încapea în memoria RAM. Ideea este de a tine programele pe disk sub forma unor blocuri de 1 - 8K (4K la Pentium) numite pagini si de a aduce în RAM numai acelor pagini care se executa !
Astfel are loc tot timpul o alocare de noi blocuri în memorie si transferarea unor blocuri vechi înapoi pe disk, operatie numita swap - ing. Identificarea paginilor în RAM sau disk este asigurata de MMU (Memory Management Unit), o unitate noua introdusa la procesoarele 386 si cele care au urmat ,pe lânga cele cunoscute deja de
Fig. 6.11
noi (EU si BIU) care gestioneaza o tabela de pagini în care se gasesc trecute paginile active - cele ce sunt efectiv în RAM - timpul de când s-a facut apel la o pagina etc., date necesare în operatia de swapping.
Sistemele de operare începând cu Windows 3.1. au implementat aceste mecanisme de memorie virtuala care asigura programelor rulate sub acestea o memorie "RAM" limitata doar de capacitatea alocata pe disc pentru spatial de swap.
Întrebări la cap. 6
Care sunt tipurile principale de memorie din dotarea unui calculator PC ?
Care este elementul fizic care permite memorarea informatiei binare in PC ?
Cum este organizata functional o memorie Ram într+un PC ?
Pentru ce este utila memoria ROM într-un PC ?
Programele de aplicatie folosesc tot spatiul de 1 M memorie disponibil sub sistemul de operare DOS ?
Care sunt componentele principale ale BIOS-ului unui PC ?
Care sunt elementele principale ale sistemului de afisare într+un PC ?
Ce este memoria video si de cine este ea accesata ?
Numiti 3 tipuri de controlere video din scara de evolutie a acestora ?
În cîte moduri poate functiona o placa video ?
Câte culori pot fi atasate unui pixel de pe ecran ?
Ce avantaj ofera folosirea unei tabele de culori ( CLUT) în controlerele grafice ?
Cine face conversia octetilor de culoare în tensiuni electrice de comanda pentru tubul catodic al ecranului ( CRT ) ?
Ce se întelege pri memorie cache la un calculator PC ?
Dati cîteva exemple de memorie cache hard sau soft întâlnite în practica PC ?
Care este principiul memoriei virtuale dintr-un PC , privita prin prisma principiului de memorie cache ?
|