Cum funcționează un dispozitiv de memorie externă

Un dispozitiv de memorie externă este, așa cum îi spune și numele, un circuit electro-mecanic extern subsistemului de bază microprocesor – memorie RAM fiind, deci, teoretic auxiliar și, practic, adiacent nucleului de bază al unui computer, considerându-se că se află mai la periferie.

Un computer, orice computer, pentru a funcționa are nevoie doar de un microprocesor și de memoria RAM, microprocesorul cerând codul de program din memorie și executându-l (facem abstracție de BIOS) în acest model simplificat.

Astfel, prin intermediul acestui articol vom răspunde la întrebările următoare:

  1. Cum funcționează un SSD (Solid State Drive)?
  2. Cum funcționează un memory stick pe USB?
  3. Sunt posibile și alte tipuri de stickuri, pe alte porturi?

1. Funcționarea unui dispozitiv de memorie externă oarecare

Pentru a putea povesti despre modele specifice de subsisteme de memorie externă, este necesar să ne însușim modelul generalist de funcționare a unui dispozitiv oarecare de memorie externă.

Pentru aceasta vom porni de la schema următoare:

Schema de funcționare a unui generic dispozitiv de memorie externă (de exemplu SSD) și schema de funcționare a unui stick de memorie pe USB

Schema de funcționare a unui generic dispozitiv de memorie externă (de exemplu SSD) și schema de funcționare a unui stick de memorie pe USB

Astfel, explicația modelului general de funcționare pentru memoriile externe este următoarea:

Computerul (0) trimite cererea (1) către circuitul de memorie externă (A), la controllerul de magistrală externă și control (2), prin intermediul porturilor fizice electro-mecanice (3) și (4).

Controllerul (2) nu doar că asigură suportul de magistrală externă, ci asigură și controlul dispozitivelor din dispozitivul de memorie externă (A). De aceea, controllerul (2) va trimite cererea (5) către dispozitivul de acces la memorie (6) care va cere (8) datele (10) prin intermediul interfeței de acces (7) la memoria Flash (9).

Răspunsul memoriei (9) la cererea (8) va fi sub forma (11) care ajunge la circuitul de acces la memorie (6) prin intermediul interfeței de acces (7), iar de acolo este trimis mai departe la controllerul principal (2) prin intermediul semnalului (12) și, mai departe, răspunsul (13) la cererea (1) trece înapoi la computer (0) prin interfața electro – mecanică (3) și (4).

Glosar:

0. Computerul la care este conectat circuitul de memorie externă.

1. O cerere oarecare de date, de exemplu un fișier, venit [de la computer (0).

2. Microcontrollerul principal al circuitului de memorie externă, microcontroller ce asigură atât funcționarea corespunzătoare a circuitului de memorie externă, cât și interfațarea electrică și logică la interfață, orice model ar fi aceasta.

3. Ansamblu sau subansamblu electro-mecanic (mufă) specific tipului de interfață al portului pe care îl deservește (COM, LPT, USB, FireWire, IDE, SATA, PCI etc), conectat la computer (0).

4. Ansamblu sau subansamblu electro-mecanic (mufă) specific tipului de interfață al portului pe care îl deservește (COM, LPT, USB, FireWire, IDE, SATA, PCI etc), conectat la dispozitivul de memorie externă (A).

5. O cerere oarecare, de exemplu o literă dintr-un fișier text (10), către circuitul de control al memoriei (9).

6. Circuit de interfață și acces la memorie, un circuit de timp controller de memorie specific microcontrollerului generalist (2), circuit de acces ce are rolul de a converti cererile logice ale microcontrollerului (2) în cereri specifice tipului și capacității circuitului de memorie (9). Pentru aceasta, circuitul de acces poate folosi și o interfață de acces la memorie (7).

7. Interfață de acces la memoria Flash (9). Aceasta are atât rol de conversie electrică a semnalelor (8) și (11), unde este cazul, cât și de buffer (memorie tampon). Într-un exemplu ulterior vom vedea de ce este importantă această componentă.

8. Cerere de date de la o adresă specifică (10) adresată circuitului de memorie (9).

9. Circuitul de memorie al dispozitivului de memorie externă. Pentru exemplificare și datorită faptului că sunt cele mai răspândite pentru acest tip de aplicație, am preferat să spun că avem de-a face cu un circuit de memorie Flash. Însă nu este obligatoriu, circuitele de memorie auxiliară putând fi implementate și cu alte tehnologii (SD, RAM, EEPROM etc).

10. Un fișier oarecare (text, să zicem) care se întinde pe mai multe adrese de memorie, deci având mai mulți bytes. Când se face citirea fișierului (10), microcontrollerul (2) îi cere circuitului de acces la memorie să îi trimită în ordine conținutul de date al tuturor adreselor de memorie (9) în care se află

11. Răspunsul memoriei la cererea (8), respectiv o parte din conținutul fișierului (10) stocat în memorie (9).

12. Răspunsul circuitului de interfață și acces la memorie (6) la cererea (5) a microcontrollerului (2).

13. Răspunsul microcontrollerului (2) dat computerului (0) la cererea (1), răspuns ce trece și el ca și cererea (1) prin mufele (3) și (4). Răspunsul acesta (13) este considerat răspunsul dispozitivului de memorie externă.

Astfel, ținând cont de cele spuse mai sus, am putea avea mai multe astfel de circuite de memorie externă (hard diskurile și restul unităților cu piese mișcătoare vor fi dezbătute separat):

  • Flash drive pe portul serial RS232 (COM) sau RS432. Cred că ar putea fi realizate și în casă, cu un microcontroller programabil (PIC?) pentru microcontrollerul principal (2) și ceva controller de memorie pentru circuitul de acces la memorie (6) în funcție de care se va alege și tipul constructiv al memoriei (9). În acest caz, (3) și (3) sunt mufele specifice conectorului serial.
    • Dezavantaje:
      • Computerele moderne nu dispun de un port serial COM.
      • Portul serial RS232 este foarte lent pentru standardele actuale, cu o viteză de până la 128 Kb pe secundă (16 KB/s).
      • Necesită alimentare separată.
    • Avantaje:
      • Pot fi folosite în sistemele mai vechi, de obicei în uz în procesele industriale.
      • Pot fi folosite pentru echipamentele industriale care dispun de asemenea porturi, cu software-ul potrivit, desigur.
  • Flash drive pe FireWire (IEEE 1394). Există unele modele de dispozitive de memorie pe interfața aceasta numită FireWire.
    • Dezavantaje:
      • Necesită alimentare externă.
      • Număr redus de aplicații.
    • Avantaje:
      • Potrivit pentru multimedia.
  • Flash drive pe portul paralel LPT. Teoretic, n-am văzut să existe, fiindcă viteza portului paralel este excesiv de mică.
    • Dezavantaje:
      • Viteza mică de transfer.
      • Număr redus de aplicații.
      • Portul nu prea se mai găsește în dotarea computerelor moderne.
    • Avantaje:
      • Totuși, unele computere vechi ar putea beneficia de așa ceva, nu știu.
  • Flash drive pe PCI. Asta e tare, că e pentru aplicații speciale în supercomputing.
    • Dezavantaje:
      • Număr infim de aplicații.
      • Hardware foarte specific.
    • Avantaje:
      • Să pui un flash drive pe PCI pentru stocarea datelor intermediare din procesarea volumelor imense de date crește semnificativ performanțele supercomputerului.
  • Flash drive pe IDE sau SATA, cunoscute popular și sub denumirea de SSD (Solid State Drive). Principial, sunt niște dispozitive de memorie externă optimizate pentru a înlocui hard diskurile, altfel respectând perfect algoritmul de mai sus.
    • Dezavantaje:
      • Prețul prohibitiv pentru capacități mari.
    • Avantaje:
      • Nu au părți în mișcare.
      • Viteză mare sau foarte mare de transfer al datelor.
      • Totuși, se pot face și în casă.

2. Funcționarea unui stick de memorie pe USB

Computerul (0) face o cerere (18) către controllerul stickului de memorie (19) care are și funcție de control al transferurilor de pe magistrala USB, controller (19) care, mai departe, în funcție de tipul cererii furnizează o nouă cerere, sau serie de cereri (20), către circuitul de interfață la memorie (21).

Preluând cererea (20) de la micrcontrollerul principal (19) al stickului de memorie (B), circuitul de acces la memorie (21) o interpretează și formulează o serie de cereri (23) către memoria flash (24) care răspunde la aceste cereri citind varii adrese de memorie (25), stocându-le în buffer-ul (22) și returnând semnalul electric și informațional pe calea inversă.

Evident, informația se întoarce pe calea inversă, astfel că în practică nu avem căi diferite pentru cereri și răspunsuri de date, însă din motive de ușurință a explicației am recurs la acest truc de a adăuga elemente în plus.

Acestea fiind zise, calea inversă, de la memoria flash (24) este prin răspunsul (26) dat controllerului de acces la memorie (21) prin bufferul de memorie (22), apoi prin răspunsul (28) la cererea (20) dat microcontrollerului principal (19) de controllerul de acces la memorie (21), microcontrollerul principal (19) urmând să furnizeze pe interfața USB răspunsul (28) la cererea (18) făcută de computerul (0).

Glosar:

0. Computerul la care este conectat circuitul de memorie externă.

14. Pinul de alimentare (+) al conectorului USB, important de menționat pentru a evidenția faptul că aceste dispozitive de memorie externă nu necesită alimentare separată, ci sunt alimentate direct din conector.

15. Pinul de alimentare (-) al conectorului USB, important de menționat pentru a evidenția faptul că aceste dispozitive de memorie externă nu necesită alimentare separată, ci sunt alimentate direct din conector.

16. Conectorul USB al computerului (0).

17. Conectorul USB al stickului de memorie pe USB (B).

18. O cerere oarecare făcută de computerul (0) pentru un fișier de pe stickul de memorie (B) .

19. Microcontrollerul principal al stickului de memorie (B). De obicei este un microcontoller echipat cu un dispozitiv de tip UART programat să facă transferuri între subsisteme diferite (USB și magistrala internă a stickului de memorie).

20. O cerere oarecare făcută de către microcontollerul principal (20) către circuitul de acces la memorie (21).

21. Circuitul de acces la memorie are rolul de a converti cererile venite de la microcontrollerul principal (19) în cereri către circuitul de memorie (paritatea nu este musai de 1 la 1, prima adresă accesibilă nu este musai să fie zero șamd).

22. Blocul de buffer al circuitului de acces la memorie (21), având rolul de prelua datele provenite cu mare viteză de la circuitul de memorie (24) pentru a nu gâtui performanțele circuitului de acces la memorie (21).

23. Cererea conținutului uneia sau mai multor adrese de memorie, în acest caz o parte din conținutul unui fișier text. (25).

24. Memorie flash, un circuit electronic de mare densitate care conține una sau mai multe matrici de conductor la intersecția cărora se află celule de memorie, de obicei regula de aproximare a numărului de componente de pe cipul de siliciu fiind cu cel puțin 50% mai mare decât numărul de biți de memorie. De exemplu un cip cu o capacitate de 4 GB are 32 Gb de date capacitate, ceea ce înseamnă că cipul de siliciu are în jur de 50 de miliarde de componente pe el. Destul de impresionant.

25. Adrese de memorie ce conțin datele fișierului cerut (18) de computer (0).

26. Răspunsul la cererea (23). În practică, se folosește calea inversă, nu o cale separată.

27. Blocul de conversie din bytes sosiți de la memorie – se vede că liniile (23) și (26) sunt groase, semn că transportă mai mulți biți – în biți care merg la circuitul UART din microcontrollerul principal (19). Acest bloc poate să aparțină și de microcontrollerul principal (19) nu doar de circuitul de acces la memorie (21), caz în care circuitului UART din microcontrollerul principal (19) îi sunt servite date în mod paralele, nu serial. Indiferent, ieșirea din UART spre USB este serială. Cum este construită magistrala internă între (19) și (21) este de interes doar din motive de performanță internă.

28. Răspunsul la cererea (20). În practică, se folosește calea inversă, nu o cale separată.

29. Răspunsul la cererea (18). În practică, se folosește calea inversă, nu o cale separată.

12 Comentarii

  1. ocsike 01 octombrie 2011 la 15:12 - Raspunde

    Sunt mult prea scumpe momentan. Şi cred că ar mai fi o problemă dacă ţi se prăjeşte un cip de ăla de memorie.

  2. Sorin 03 octombrie 2011 la 19:53 - Raspunde

    si in cazul in care ai win 7 cu x32 si merge in maxim 3 gb ..ce rol mai are ram-ul acesta extern?

    • Robin Molnar 03 octombrie 2011 la 19:54 - Raspunde

      Păi nu îl folosești pe post de RAM, că e prea lent. Îl folosești pe post de hard disk sau memory stick.

  3. Marius Delaepicentru 06 octombrie 2011 la 22:17 - Raspunde

    Spre deosebire de HDD, flash-urile pot citi relativ repede, dar scriu mult mai încet. Îţi trebuie tampoane (buffer) babane pentru a coafa lentoarea la scriere. Cred că şi de aceea SSD sunt aşa de scumpe.

    În altă ordine de idei, un flash (smart card) pe LPT am avut acum vreo 10 ani. Însă accesul era intermediat de player-ul MP3 Creative-Nomade care avea un dock conectat la portul paralel. Mint. Îl mai am. Dar nu îl folosesc. Cred că e inutil să spun că numai fişiere MP3 şi de VOB (?) puteam scrie şi citi pe, şi de pe, el.

    • Robin Molnar 06 octombrie 2011 la 22:21 - Raspunde

      Cum funcționa coșmelia aia?

    • Mihai Todor 07 octombrie 2011 la 12:30 - Raspunde

      Buffere pentru scriere în cazul SSD-urilor? Ciudat. Nu știam că e nevoie. OK, e lentă viteza de scriere, în comparație cu cea de citire, dar net superioară față de cea a unui HDD. HDD-urile au buffere destul de mari (32 – 64 MB la cele de 1 Terra) și, mai nou, au apărut controllere speciale care folosesc o memorie de tip FLASH destul de măricică pe post de buffer pentru HDD-uri. Iote aici 🙂

      O problemă mare a FLASH-urilor este faptul că necesită așa numitul TRIM pentru a nivela scrierile, deoarece aceste memorii suportă doar un număr limitat de scrieri (și citiri?) asupra unei celule până ca aceasta să se distrugă și să nu mai poată fi utilizată. De aceea sunt preferate modelele SLC în comparație cu MLC, pentru a avea un control mai bun asupra celulelor care se uzează.

      • Robin Molnar 11 octombrie 2011 la 13:57 - Raspunde

        Interesant, nu știam de TRIM!

        • Mihai Todor 11 octombrie 2011 la 15:47 - Raspunde

          Apăi no, nu le poți ști pe toate 😉

          • Robin Molnar 12 octombrie 2011 la 08:13 -

            Nu, dar aș vrea. 😀

  4. lavinia 16 aprilie 2014 la 15:32 - Raspunde

    Buna, am cautat prin blog ceva informatii despre cum as putea crea o clona a HDD asa explicat, ceva imagine a lui pusa pe CD bootaibil…si daca ar fi ceva program necesar, sau ma poate ajuta ENCase ? va rog tare mult. Multumesc

    • Robin Molnar 12 mai 2014 la 10:28 - Raspunde

      Nu am clonat niciodată un HDD, deci nu pot să mă pronunț.

Lasa un raspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Vreau să fiu părtaș la faptă. Poți, de asemenea, să fii părtaș și fără martori.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.