Adresarea memoriei

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 6 februarie 2018; verificările necesită 6 modificări .

Adresarea  este implementarea unei legături (referință) către un dispozitiv sau un element de date la adresa acestuia [1] ; stabilirea unei corespondențe între un set de obiecte de același tip și un set de adrese ale acestora; metoda de identificare a locației unui obiect [2] .

Metode de adresare [2]

Spațiu de adresă

Execuția programului

Codificarea adresei

Calculul adresei

Metode de adresare

Operand implicit

Instrucțiunea poate să nu conțină instrucțiuni explicite despre operand ; în acest caz, operandul este implicit și de fapt specificat de codul operațional al instrucțiunii.

Adresa dorită

Instrucțiunea poate să nu conțină indicații explicite despre adresa operandului care participă la operație sau adresa la care ar trebui plasat rezultatul operației, dar această adresă este implicită.

Adresare directă

Instrucțiunea conține nu adresa operandului, ci operandul în sine. Cu adresare directă, nu este necesar acces la memorie pentru a prelua un operand și o locație de memorie pentru a-l stoca. Acest lucru ajută la reducerea timpului de execuție a programului și a cantității de memorie pe care o ocupă. Adresarea directă este convenabilă pentru stocarea diferitelor tipuri de constante.

Adresare directă

Adresa este specificată direct ca o valoare, toate celulele sunt situate pe o singură pagină. Avantajul acestei metode este că este cea mai simplă, iar dezavantajul este că lățimea registrelor de uz general ale procesorului trebuie să fie cel puțin la fel de largă ca și lățimea magistralei de adrese a procesorului .

Adresare relativă (de bază)

Cu această metodă de adresare, adresa de execuție este definită ca suma dintre codul de adresă al instrucțiunii și adresa de bază, de obicei stocate într-un registru special - registrul de bază.

Adresarea relativă face posibilă asigurarea accesului la orice celulă de memorie cu o lungime mai mică a codului de adresă al instrucțiunii. Pentru a face acest lucru, numărul de biți din registrul de bază este ales astfel încât orice celulă a memoriei principale să poată fi adresată, iar codul de adresă al instrucțiunii este folosit pentru a reprezenta doar un „offset” relativ scurt. Offset-ul determină poziția operandului față de începutul matricei date de adresa de bază.

Adresare comandă rapidă

Câmpul de adresă al cuvântului de control conține doar biții cei mai puțin semnificativi ai celulei adresate. Registrul index suplimentar .

Înregistrați adresa

Adresarea în registru este un caz special de adresare scurtată. Este utilizat atunci când rezultatele intermediare sunt stocate într-unul dintre registrele de lucru ale procesorului central. Deoarece există mult mai puține registre decât celulele de memorie, un câmp de adresă mic poate fi suficient pentru adresare.

Adresare indirectă

Pentru prima dată, la programarea pe MESM a fost folosită adresarea indirectă a rangului 2 ( pointers ) . Adăugarea la comanda cu valoarea adresei operandului „0” a valorii celulei de memorie în care se află adresa operandului necesar, a făcut posibilă utilizarea acestor celule de memorie ca valori de adresă, adică. pointeri către adresele operanzilor.

Adresarea indirectă a rangurilor superioare a fost introdusă pentru prima dată în limbajul de programare Address (1955) [4] [5] și implementată în hardware în computerul „Kiev” [6] . În sistemul de comandă al computerului „Kiev” există o operație F, care vă permite să reduceți rangul adresei, adică. efectuează o „operație liniuță” sau dereferențează un pointer , iar operațiunile de modificare a adresei de grup [5] [6] au făcut posibilă efectuarea indirectă multiplă a Pointerilor în hardware.

Codul de adresă al comenzii în acest caz nu indică adresa cu date, ci adresa celulei de memorie în care se află adresa operandului sau comenzii. Aceasta este adresarea de rang 2 sau indicatori . Adresarea indirectă este utilizată pe scară largă în microcalculatoarele mici și cu un cuvânt scurt de mașină pentru a depăși limitările formatului de instrucțiuni scurte (adresarea înregistrată și indirectă sunt utilizate împreună).

Adresarea cuvintelor cu lungime variabilă

Eficiența sistemelor de calcul concepute pentru prelucrarea datelor crește dacă este posibil să se efectueze operații pe cuvinte de lungime variabilă. În acest caz, mașina poate furniza adresarea cuvintelor de lungime variabilă, care este de obicei implementată prin specificarea în instrucțiune a locației în memorie a începutului cuvântului și a lungimii acestuia.

Adresarea stivei

Memoria stivă , care implementează atribuirea fără adresă a operanzilor, este utilizată pe scară largă în microprocesoare și minicalculatoare .

Adresare auto-incrementare și auto-decrementare

Deoarece adresarea indirectă a registrului necesită ca registrul să fie preîncărcat cu o adresă indirectă din RAM, ceea ce este asociat cu o pierdere de timp, acest tip de adresare este deosebit de eficient atunci când se prelucrează o matrice de date dacă există un mecanism pentru creșterea sau decrementarea automată a datelor. conținutul registrului de fiecare dată când este accesat. Acest mecanism se numește adresare auto-incrementare și, respectiv, auto-decrementare. În acest caz, este suficient să încărcați adresa primului element de matrice care este procesat în registru o dată, iar apoi de fiecare dată când registrul este accesat, adresa următorului element de matrice va fi formată în el.

Cu adresarea cu incrementare automată, conținutul registrului este mai întâi folosit ca adresă a operandului și apoi incrementat cu numărul de octeți din elementul matrice. Cu adresarea cu decrementare automată, conținutul registrului specificat în comandă este mai întâi decrementat cu numărul de octeți din elementul de matrice și apoi folosit ca adresă a operandului.

Adresarea auto-incrementare și auto-decrementare poate fi considerată o versiune simplificată a indexării, un mecanism foarte important pentru conversia părților de adresă ale comenzilor și organizarea ciclurilor de calcul, așa că sunt adesea numite auto-indexare.

Adresarea indexului

Pentru metodele implementate pe calculator de rezolvare a problemelor matematice și de prelucrare a datelor, caracterul ciclic al proceselor de calcul este caracteristică, atunci când aceleași proceduri sunt efectuate pe operanzi diferiți ordonați în memorie. Deoarece operanzii procesați în timpul repetițiilor buclei au adrese diferite, fără a utiliza indexarea, ar fi necesar ca fiecare repetiție să compună propria sa secvență de instrucțiuni care diferă în părți de adresă.

Programarea ciclurilor este mult simplificată dacă, după fiecare execuție a ciclului, este prevăzută o modificare automată a comenzilor corespunzătoare ale părților de adresă a acestora în funcție de locația în memorie a operanzilor în curs de prelucrare. Un astfel de proces se numește modificare a instrucțiunilor și se bazează pe capacitatea de a efectua operații aritmetice și logice asupra codurilor de instrucțiuni.

Vezi și

Note

  1. ST ISO 2382/7-77 // Informatică. Terminologie: Manual de referință. Numărul 1 / Referent Ph.D. tehnologie. Științe Yu. P. Selivanov. - M . : Editura de standarde, 1989. - 168 p. - 55.000 de exemplare.  — ISBN 5-7050-0155-X .
  2. 1 2 Pershikov V.I., Savinkov V.M. Dicţionar explicativ de informatică / Recenzători: Ph.D. Fiz.-Matematică. Sci. A. S. Markov și Dr. Phys.-Math. Științe I. V. Pottosin. - M. : Finanţe şi statistică, 1991. - 543 p. — 50.000 de exemplare.  - ISBN 5-279-00367-0 .
  3. Lebedev, S.A. Mașină de calcul electronică mică  : [ rus. ]  / S.A. Lebedev, L.N. Dashevsky, E.A. Shkabara. - Moscova: Academia de Științe a URSS, 1952. - P. 162. Copie arhivată din 23 iulie 2021 la Wayback Machine
  4. Alvaro Videla. Kateryna L. Yushchenko - Inventatoare  de indicatoare Mediu (8 decembrie 2018). Preluat la 23 iulie 2021. Arhivat din original la 23 septembrie 2020.
  5. ↑ 1 2 Iuşcenko, E.L. Programare adrese: [ rus. ] . - Kiev: Stat. editura de literatură tehnică, URSR, 1963. - P. 288.
  6. 1 2 Glushkov, V. M. Computer „Kiev”: descriere matematică. : [ rus. ]  / V. M. Glushkov, E. L. Iuscenko. — Tehn. lit., 1962. - 183 p.

Literatură