Traducere dinamică a adreselor (în arhitectura Z)

În arhitectura Z , traducerea dinamică a adresei (Dynamic Address Translation sau DAT ) este traducerea unei adrese virtuale într-una reală.

Specificarea spațiilor de adrese

În arhitectura Z, pot exista până la 216 spații de adresă , definite de un număr unic de 16 biți (Numărul spațiului de adresă sau ASN ). Schimbarea spațiilor de adrese din procesor se realizează prin încărcarea ASN -ului în registrele de control corespunzătoare ale procesorului cu instrucțiuni privilegiate și semiprivilegiate. Mai mult , codul ASN este tradus în codul de control al spațiului de adrese ASCE (Address Space Control Element), care determină parametrii procesului de traducere dinamică a adresei în acest spațiu de adrese.

Traducere dinamică a adresei

După ce ASN a fost tradus în codul ASCE , procesul de conversie începe direct.

Adresa virtuală are următorul format:

Identificator RFX RSX RTX S X PX BX
Lungimea biților unsprezece unsprezece unsprezece unsprezece opt unsprezece

Formatul include, în general, patru tipuri de indecși utilizați la accesarea tabelelor DAT  : index de octeți ( BX ), index de pagină ( PX ), index de segment ( SX ) și indexuri pentru prima, a doua și a treia regiune. Utilizarea tuturor celor trei indici permite până la 16 EB (Exa Byte = 2 60 octeți), fără RFX până la 8 PB (Peta Byte = 2 50 octeți) și fără RFX și RSX până la 4 TB (Tera Byte = 2 40 octeți ) . ). Indicii de regiune sunt utilizați numai pentru adresarea pe 64 de biți; pentru adresarea pe 32 de biți, cei 32 de biți superiori sunt setați la zero.

La implementarea DAT , pot fi utilizate până la cinci niveluri de transformare, fiecare dintre acestea fiind definit de un tabel separat:

Rândul fiecărui tabel conține identificatorul tipului său (Tipul tabelului sau TT ) și adresa de bază a tabelului următorului nivel ( RSTO  - pentru al doilea nivel de regiuni, RTTO  - pentru al treilea nivel de regiuni, STO  - pentru tabelul de segmente, PTO  - pentru tabelul de pagini) și după însumarea cu indexul corespunzător din adresa virtuală definește un rând în acest tabel. Lungimea următorului tabel (număr de blocuri de 4KB) este specificată în câmpul TL (Table Length). În plus, câmpul TF indică decalajul începutului următorului tabel față de sfârșitul celui curent în aceleași unități. Bitul I determină disponibilitatea segmentului și a regiunilor paginii acoperite de șir.

Format ACSE:

LA R DT TL

TO  este adresa primului tabel: primul, al doilea sau al treilea tabel regional sau segment, în funcție de valoarea câmpului DT , precum și de lungimea acelui tabel TL . De exemplu, cu DT = 11, TO va conține adresa primului tabel regional, iar la implementarea DAT, vor fi implicate toate cele 5 niveluri de transformare. Bitul R determină tipul spațiului de adrese (real sau virtual).

Gestionarea numărului de niveluri DAT:

DT Primul tabel DAT
00 Prima masă regională
01 Al doilea tabel regional
zece Al treilea tabel regional
unsprezece tabel de segmente

Când este definit tipul câmpului TO din tabelul ASCE , începe procesul real de conversie. Și anume, adresa de bază a tabelului din ASCE este adăugată la indexul corespunzător din adresa virtuală. Primul tabel regional folosește indicele RFX , al doilea tabel regional folosește indicele RSX, al treilea tabel regional folosește indicele RTX , iar tabelul cu segmente folosește indicele SX . De aici obținem adresa tabelului de nivel următor și o însumăm cu indexul corespunzător din adresa virtuală. Folosind adresa de bază din tabelul de segmente și indexul PX din adresa virtuală, obținem adresa tabelului de pagini, din care găsim adresa reală dorită folosind indexul BX .

Deoarece toate tabelele sunt stocate în memoria reală și cu DAT pot avea loc până la cinci conversii, timpul de conversie poate fi inacceptabil de lung. Pentru a o reduce, un TLB (Translation-Lookaside Buffer) este introdus în dispozitivul DAT .

Link -uri