16.06.2013 Views

posta - Amiga Magazine Online

posta - Amiga Magazine Online

posta - Amiga Magazine Online

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!