posta - Amiga Magazine Online
posta - Amiga Magazine Online
posta - Amiga Magazine Online
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
17,.<br />
I<br />
I<br />
SET PN31 13)<br />
SELECT<br />
SET 15<br />
. . STANS<br />
. .<br />
. .<br />
Figura 8: schema delle Address Translation Cache.<br />
classici come DPaint, a giochi come Lemmings, senza trucchi<br />
strani o kludge del sistema operativo, molto comuni su certe<br />
piattaforme di una ben nota marca, costretta a sottoutilizzare il<br />
68040 disabilitando proprio le caratteristiche che lo rendono<br />
così veloce.<br />
MMU<br />
Quella che segue è una descrizione semplificata dei compiti e<br />
del funzionamento di una MMU ridotta ai minimi termini, che<br />
servirà come riferimento parlando delle due (!) MMU del 68040.<br />
La funzione principale della MMU è la traduzione di indirizzi<br />
logici generati dal microprocessore in indirizzi fisici presentati<br />
alla memoria.<br />
Lo spazio di indirizzamento è suddiviso in blocchi di dimensione<br />
costante (tipicamente 1-8 K) detti pagine. La traduzione di un<br />
indirizzo si ottiene separando lo spiazzamento all'interno della<br />
pagina fisica dal numero di pagina logica e utilizzando<br />
quest'ultimo come indice in una tabella che contiene gli indirizzi<br />
fisici delle pagine logiche. Praticamente, supposto di usare<br />
pagine di 4 K, dei 32 bit che compongono un indirizzo logico, i<br />
primi dodici (AO-Al l) sono lo spiazzamento all'interno della<br />
pagina, mentre i restanti 20 (A12-A31) sono il numero di pagina<br />
logica, che viene utilizzato come indice in una tabella di<br />
descrittori di pagine. L'indirizzo (fisico!) in memoria della tabella<br />
dei descrittori è contenuto in un registro speciale del<br />
INDIRIZZO LOGICO<br />
$1 2 3 4 5 6 7 8 Spiazzamento<br />
Numero di pagina logica 'TT nella pagina ,<br />
INDIRIZZO FISICO<br />
-158941316781<br />
Figura 10: schema di traduzione da indirizzo logico ad<br />
indirizzo fisico.<br />
_<br />
MUX<br />
Figura 9: schema delle Cache interne.<br />
microprocessore gestito dal sistema operativo e invisibile al<br />
programmatore. Per chiarirvi le idee date un'occhiata alla Figura<br />
10. Accanto all'indirizzo fisico, un descrittore di pagina contiene<br />
informazioni sulle modalità di accesso consentite su quella<br />
pagina (solo esecuzione, sola lettura, lettura/scrittura ... ) e un bit<br />
di validità della pagina selezionata (utilizzato come indicatore di<br />
presenza dai S/O con memoria virtuale che, eventualmente,<br />
provvederanno a caricarla da disco). Il 68040 incorpora due<br />
MMU indipendenti che supportano la memoria virtuale paginata.<br />
Una MMU agisce sugli indirizzi logici delle istruzioni (generati dal<br />
fetch di istruzioni, fase 1 della pipeline), l'altra su quelli dei dati<br />
(generati dai fetch degli operandi e dalla scrittura dei risultati,<br />
fasi 4 e 6 della pipeline) ciascuna in modo indipendente e<br />
concorrente. Ogni MMU contiene un'ATC (Address Translation<br />
Cache) dove sono conservati i 64 descrittori di pagina utilizzati<br />
più recentemente, evitandone la ricerca in memoria. Quando una<br />
MMU riceve un indirizzo logico dall'unità intera ricerca nella ATC<br />
il corrispondente indirizzo fisico. Se la traduzione non è nella<br />
ATC, il descrittore di pagina viene letto dalla memoria (Figura 8).<br />
La ricerca nella ATC e, quando necessario, i cicli di BUS per<br />
accedere alla memoria sono eseguiti in modo trasparente<br />
dall'hardware, senza interferire con l'altra MMU o bloccare altre<br />
attività in corso.<br />
Mentre la MMU ricerca nell'ATC l'indirizzo fisico, utilizzando la<br />
parte alta dell'indirizzo logico, la cache vera e propria fa una<br />
preselezione tra i dati, utilizzando la parte bassa dell'indirizzo<br />
logico (Figura 9). La hit ratio di una ATC è circa del 99%, cioè la<br />
traduzione di un indirizzo logico avviene 99 volte su 100 senza<br />
accessi alla memoria centrale. Dato che la hit ratio delle cache<br />
dati/istruzioni è del 95%, si può affermare che nel 94% dei casi si<br />
completa un accesso in memoria senza uscire dal 68040 e quindi<br />
con un considerevole aumento delle prestazioni.<br />
Un argomento che suscita tuttora accalorate discussioni è il<br />
mancato supporto da parte del S.O. della memoria virtuale (cioè<br />
la possibilità di dedicare una parte dell'hard disk ad estensione<br />
logica della memoria RAM) supportata correntemente dal System<br />
7 del Mac e da Windows 3 per MS-DOS. A parte le difficoltà<br />
tecniche di adattare Exec alla memoria virtuale, oggi costa meno<br />
un'espansione da 8 Mb che aggiornare il sistema operativo, le<br />
applicazioni, installare un processore dotato di MMU e dedicare<br />
una parte dell'hard disk come "parcheggio" temporaneo per le<br />
pagine di memoria.<br />
La posizione ufficiosa della Commodore espressa da Mike Sinz,<br />
un ingegnere del sofware responsabile dello sviluppo del Sistema<br />
Operativo, è che le attuali direzioni di sviluppo di <strong>Amiga</strong> non<br />
prevedono la memoria virtuale.<br />
AMIGA MAGAZINE 69