Plasarea octeților și a cuvintelor în memorie

Formatele comenzilor microprocesorului.

Registrele cu scop general (RON) sunt împărțite în două grupe:

Primul octet al comenzii conține codul de operare Cop și două câmpuri cu un singur bit: d-bit al direcției de transmisie și lungimea w a operandului.







Pentru d = 1, operandul sau rezultatul operației este transferat în registrul al cărui număr este setat de câmpul reg al celui de-al doilea octet al comenzii.

Câmpul W identifică tipul (adâncimea de biți) a operanzilor:

Dacă w = 1, atunci comanda operează cu un cuvânt de 2 octeți.

w = 0, comanda funcționează cu 1 octet.

Al doilea octet - post-octet, definește registrele implicate în operațiune sau registru și locația memoriei. PostByte constă din 3 câmpuri:

md este un mod care arată modul în care câmpul r / m este interpretat pentru a găsi primul operand.

Reg este un registru utilizat în 2 instrucțiuni operand.

Câmpul reg definește operandul, care este în mod necesar în registrul microprocesorului și este considerat al doilea operand. Câmpul r / m definește un operand care poate fi în registru sau memorie și este considerat condiționat în primul rând. Câmpul reg este utilizat numai pentru a specifica registrul în comenzile cu două operanțe. Dacă există un operand în comandă, atunci acesta este identificat de câmpul R / m, iar câmpul reg este absent. În locul câmpului reg în acest caz, se folosește extensia codului de operare.

Câmpul md (modality) arată modul în care câmpul R / m este interpretat pentru a găsi primul operand:

Dacă md = 11, atunci operandul este în registru al cărui număr este dat de câmpul R / m. Pentru alte valori ale md, operandul este în memorie.

Dispozitivul dispare în comandă, interpretat ca un număr întreg semnat.

md = 00 nu există nici o deplasare a dis.

md = 01 disp = disp L, comanda conține 8 biți. offset D8.

md = 10 disp = dispH dispL, comanda conține 16 biți, offset D16.

Deoarece al doilea operand este plasat în comandă, câmpul reg este absent, dar extensia codului copiilor este folosită în schimb. Nu există niciun bit de direcție d, deoarece rezultatul operației poate fi plasat numai în locul primului operand. Locația acestui bit d ocupă un bit S, care este un semn de folosire a unui octet pentru a specifica operandul imediat atunci când lucrează cu cuvintele.

Domeniile S și W sunt interpretate după cum urmează:

SW = X0, un octet al datelor DataL

SW = 01, un octet al datelor Data H Data L

SW = 11, un octet de date care se extinde automat cu un semn de până la 16 biți.

Segmentarea organizării memoriei.

Plasarea octeților și a cuvintelor în memorie






Organizarea unei pagini de memorie.

2) oferă protecție OS și software de utilizator;

Traducerea paginii este inclusă în modul protejat prin setarea în unitatea celei de-a 31-a cifre a registrului de control zero al CRQ și este oprită prin resetarea acestui bit la zero.

Atunci când este organizată o organizare a paginii, segmentul este împărțit în secțiuni separate, numărul cărora poate ajunge până la 2 10.

Directorul ocupă o pagină de memorie, unde pentru fiecare secțiune există indicatori pe 32 de biți în tabelul de pagini al acestei secțiuni. Fiecare dintre tabelele de pagini ocupă, de asemenea, o pagină de memorie, unde fiecare pagină are un pointer de intrare pe 32 de biți pe această pagină.

Indicatorii de intrare la secțiune și la pagină au același format.

P este bitul de prezență. Dacă P = 1, atunci utilizarea tabelului de pagini este permisă, dacă P = 0, atunci utilizarea este interzisă. La P = 0, o încercare de a accesa secțiunea sau pagina corespunzătoare cauzează o întrerupere din cauza lipsei unei pagini necesare în memoria RAM. După încărcarea paginii necesare în memorie, bitul P este setat la "1" și în acest caz devine posibilă accesarea acestei pagini. Acest lucru este necesar pentru ca OS să știe unde este localizată pagina.

R / W este bitul de citire / scriere.

U / S este bitul utilizator / supervizor.

Acești doi biți determină dreptul de acces la pagina sau secțiunea corespunzătoare pentru programele utilizatorilor. Programul de utilizator are de obicei cel mai mic nivel de privilegii egal cu 3. Dacă se efectuează o cerere cu un nivel de privilegiu egal cu 3, atunci la valoarea U / S = 0 programul de utilizator este refuzat accesului la secțiune sau pagină.

Pentru U / S = 1 este permisă o invocare, dar se ia în considerare valoarea bitului R / W.

Dacă R / W = 0, atunci programul de utilizator este permis doar pentru a citi secțiunea sau pagina.

Dacă R / W = 1, atunci citirea și scrierea sunt permise. Dacă cererile sunt executate cu un nivel ridicat de privilegii (0, 1 și 2), atunci este posibil să scrieți și să citiți partiții și pagini pentru orice valoare a cifrelor '1' și '2'.

Astfel de niveluri de privilegii au un OS.

A este bitul de acces. Acest bit este setat automat la "1" de către microprocesor atunci când accesați această secțiune sau pagină pentru scriere sau citire.

D - bit de "gunoi". În pointerul de cadru al paginii, acest bit este setat la "1" când scrieți la această pagină. Pentru indicatorii paginii de tabelă, valoarea bitului D este nedefinită.

Plasarea octeților și a cuvintelor în memorie

Plasarea octeților și a cuvintelor în memorie

Organizarea memoriei virtuale.

Mecanismul de organizare a paginii de memorie poate fi utilizat cu ușurință pentru a organiza memoria virtuală.

Organizația de memorie virtuală a paginii acceptă bitul P de prezență. În sistemele cu memorie virtuală, bitul P trebuie să afișeze cu precizie locația paginii virtuale, care poate fi în memoria RAM sau pe un disc extern. Dacă pagina este în RAM, atunci bitul P este setat la o singură stare și dacă pe discul extern bitul P = 0.

Dacă este necesar, atunci când memoria RAM este plină, sistemul de operare elimină acele partiții și pagini de pe discul extern care nu au fost accesate mult timp, eliberând astfel spațiul pentru paginile nou introduse în memoria RAM. Astfel, conținutul RAM este actualizat în mod continuu. RAM conține numai acele programe și date care sunt necesare la un moment dat. Același software, care nu a fost accesat de mult timp, se transmite treptat pe un disc extern. Așa funcționează memoria virtuală.

1 segment este 232 = 4 GB

Protecție de date încorporată

în microprocesoarele firmei INTEL.







Articole similare

Trimiteți-le prietenilor: