Z - arkkitehtuurissa dynaaminen osoitteenmuunnos (Dynamic Address Translation tai DAT ) on virtuaalisen osoitteen muuntamista todelliseksi.
Z-arkkitehtuurissa voi olla jopa 216 osoiteavaruutta , jotka määritellään yksilöivällä 16 -bittisellä numerolla (Address Space Number tai ASN ). Prosessorin osoiteavaruuksien vaihto suoritetaan lataamalla ASN prosessorin vastaaviin ohjausrekistereihin etuoikeutetuilla ja puoliksi etuoikeutetuilla käskyillä. Lisäksi ASN -koodi käännetään ASCE (Address Space Control Element) -osoiteavaruuden ohjauskoodiksi, joka määrittää dynaamisen osoitteenmuunnosprosessin parametrit tässä osoiteavaruudessa.
Kun ASN on käännetty ASCE - koodiksi , muunnosprosessi alkaa suoraan.
Virtuaaliosoitteella on seuraava muoto:
Tunniste | RFX | RSX | RTX | SX | PX | BX |
Bitin pituus | yksitoista | yksitoista | yksitoista | yksitoista | kahdeksan | yksitoista |
Muoto sisältää yleensä neljää indeksityyppiä, joita käytetään käytettäessä DAT -taulukoita : tavuindeksi ( BX ), sivuindeksi ( PX ), segmenttiindeksi ( SX ) ja ensimmäinen, toinen ja kolmas alueindeksi. Kaikkien kolmen indeksin käyttö mahdollistaa jopa 16 EB:n (Exa Byte = 2 60 tavua), ilman RFX:ää jopa 8 PB:tä (Peta Byte = 2 50 tavua) ja ilman RFX:ää ja RSX:ää jopa 4 Tt (Tera Byte = 2 40 tavua ) . ). Alueindeksejä käytetään vain 64-bittisessä osoitteessa, 32-bittisessä osoitteessa ylemmän 32 bitin arvoksi asetetaan nolla.
DAT :ia toteutettaessa voidaan käyttää enintään viittä muunnostasoa, joista jokainen määritellään erillisellä taulukolla:
Kunkin taulukon rivi sisältää tyyppinsä tunnisteen (taulukkotyyppi tai TT ) ja seuraavan tason taulukon perusosoitteen ( RSTO - aluetason toiselle tasolle, RTTO - kolmannelle aluetasolle, STO - segmenttitaulukko, PTO - sivutaulukolle) ja summauksen jälkeen virtuaaliosoitteen vastaavan indeksin kanssa määrittää rivin tähän taulukkoon. Seuraavan taulukon pituus (4KB-lohkojen määrä) määritetään TL (Table Length) -kentässä. Lisäksi TF -kenttä osoittaa seuraavan taulukon alun siirtymän suhteessa nykyisen taulukon loppuun samoissa yksiköissä. I - bitti määrittää merkkijonon peittämien segmenttien ja sivualueiden saatavuuden.
ACSE-muoto:
TO | R | DT | TL |
TO on ensimmäisen taulukon osoite: ensimmäinen, toinen tai kolmas alue- tai segmenttitaulukko riippuen DT -kentän arvosta sekä kyseisen taulukon pituudesta TL . Esimerkiksi, kun DT = 11, TO sisältää ensimmäisen aluetaulukon osoitteen, ja kun DAT toteutetaan, kaikki 5 muunnostasoa ovat mukana. R-bitti määrittää osoiteavaruuden tyypin (todellisen vai virtuaalisen).
DAT-tasojen määrän hallinta:
DT | Ensimmäinen DAT-taulukko |
00 | Ensimmäinen aluetaulukko |
01 | Toinen aluetaulukko |
kymmenen | Kolmas aluetaulukko |
yksitoista | segmenttitaulukko |
Kun ASCE - taulukon TO -kentän tyyppi on määritetty, varsinainen muunnosprosessi alkaa. Nimittäin taulukon perusosoite ASCE:stä lisätään vastaavaan indeksiin virtuaaliosoitteesta. Ensimmäinen aluetaulukko käyttää RFX -indeksiä , toinen aluetaulukko käyttää RSX-indeksiä, kolmas aluetaulukko käyttää RTX -indeksiä ja segmenttitaulukko SX - indeksiä . Täältä saamme seuraavan tason taulukon osoitteen ja summaamme sen virtuaaliosoitteen vastaavaan indeksiin. Käyttämällä segmenttitaulukon perusosoitetta ja virtuaaliosoitteesta PX -indeksiä saadaan sivutaulukon osoite, josta löydämme BX -indeksin avulla halutun todellisen osoitteen.
Koska kaikki taulukot on tallennettu todelliseen muistiin ja DAT:lla voi tapahtua jopa viisi muuntoa, muunnosaika voi olla liian pitkä. Sen vähentämiseksi DAT-laitteeseen lisätään TLB (Translation-Lookaside Buffer) .