[Main]
[Docs]
[Installs]
[Search]
[Team]
[Guestbook]
[Links]
Vista General de la memòria caché de la CPU
Per a millorar el rendiment, algunes CPU's de la familia 68k disposen de la
possibilitat d'emmagatzemar accessos a memòria caché.
A la informació a caché sempre s'hi accedeix emprant adreces lògiques,
incloent-hi el codi de la funció que realitza l'accés. Això significa que els
accesos en Mode Usuari i Mode Supervisor crearan diferents entrades a la caché
(si us plau consulti la documentació de Motorola per a més informació).
seguint amb la vista general sobre les capacitats d'ús de caché a les CPU's 68k:
- 68000
cap.
- 68010
- Pre-captura d'Instruccions (Instrucció Prefetch)
Pre-captura de dos paraules, registre de decodificació d'una paraula
- S'entra al Mode Cíclic (Loop Mode)
si una instrucció d'una paraula ve seguida per un cicle DBcc a l'instrucció prèvia,
no es realitzaran més captures d'instruccions fins que s'acabi el cicle.
- 68020
- Pre-captura d'Instruccions (Instrucció Prefetch) d'una
paraula llarga
- Caché d'Instruccions
16 línies de 16 bytes = 256 bytes
Pot ésser activada o "congelada" usant el CACR
El mode ràfega força la lectura de cop de les línies de memòria caché senceres si el maquinari ho suporta
- 68030
- Pre-captura d'Instruccions (Instrucció Prefetch) d'una
paraula llarga
- Caché d'Instruccions
16 línies de 16 bytes = 256 bytes
Pot ésser activada o "congelada" usant el CACR
- Caché de Dades
16 línies de 16 bytes = 256 bytes
Pot ésser activada o "congelada" usant el CACR
sempre amb WriteThrough
mode "Write Allocation" seleccionable per forçar en operacions d'escriptura que d'altres entrades
d'usuari/supervisor siguin invalidades
El mode ràfega força la lectura de cop de les línies de memòria caché senceres si el maquinari ho suporta
- 68040
- Pre-captura d'Instruccions (Instrucció Prefetch) d'una
paraula llarga
- Caché d'Instruccions
256 línies de 16 bytes = 4096 bytes
Pot ésser activada usant el CACR
- Caché de Dades
256 línies de 16 bytes = 4096 bytes
Pot ésser activada usant el CACR
modes CopyBack/WriteThrough seleccionables emprant la MMU
- 68060
- Pre-captura d'Instruccions (Instrucció Prefetch) d'una
paraula llarga
- Caché d'Instruccions
512 líneas de 16 bytes = 8192 bytes
Pot ésser activada, "congelada" i reduïda a la meitat usant el CACR
- Caché de Ramificacions (Branch Cache)
Pot ésser activada usant el CACR
No es veu afectada degut a la configuració de la MMU!
- "Superscalar Dispatch"
Pot ésser activada usant el CACR
- Caché de Dades
512 línies de 16 bytes = 8192 bytes
Pot ésser activada, "congelada" i reduïda a la meitat usant el CACR
modes CopyBack/WriteThrough seleccionables emprant la MMU
- Buffer per a Push
Pot ésser desactivada usant el PCR
- Buffer d'Emmagatzemament (Store Buffer)
Pot ésser activada usant el CACR
Les pàgines han d'ésser "NoCachables" Serialitzades (precís).
La primera cosa important és comprendre que les caches en els 68030..68060 són controlades pel registre de Control de Caché
(Cache Control Register, CACR) i la MMU !
En el CACR les cachés poden ser activades o desactivades de forma global. Usant les Pàgines individuals de la MMU
(4 KByte amb WHDLoad) es marcaran com han de ser posades a memòria caché.
Al 68030 una pàgina de memòria pot ser "Cachable" o "NonCachable". En un 68040/68060 pot ser "Cachable" amb "WriteThrough",
"Cachable" amb "CopyBack", "NonCachable" (imprecís) o "NonCachable" Serialitzada (precís).
Si la MMU no està éssent utilitzada per WHDLoad, només controla el CACR.
Configuració per defecte de la Caché
Per defecte, les àrees de WHDLoad, l'Esclau i "ExpMem" són marcades com a "Cachables" amb "CopyBack". L'àrea "BaseMem" és
marca com a "NonCachable", i les Cachés de Dades i Instruccions són activades al CACR.
Per tant, els programes situats en
l'àrea BaseMem corre sense Cachés però WHDLoad, l'Esclau i ExpMem empren les
Cachés per a un millor rendiment. Si WHDLoad no està emprant l'MMU, aquesta configuració
té com a resultat la desactivació d'ambdues Cachés ja que sense MMU no es pot establir
una configuració per a regions de memòria diferents i en conseqüència si qualsevol regió
es marca com a NonCacheable, tots els Cachés s'han de desactivar.
Control de la Caché per part del Programador
Existeixen dos funcions "resload" per a controlar las Cachés: resload_SetCACR
y resload_SetCPU. La resload_SetCACR és la rutina històricament més vella i
pot ésser reemplaçada completament per resload_SetCPU (WHDLoad mapeja internament els arguments de resload_SetCACR i
crida a resload_SetCPU). De totes maneres l'ús de resload_SetCACR es recomana per a totes aquelles persones que no ho
coneixen tot sobre les Cachés i el seu comportament en un sistema Amiga. Emprant resload_SetCACR les cachés d'instruccions
i dades poden ser activades o desactivades de forma separada. resload_SetCACR només afecta a la capacitat d'emmagatzemar a
caché l'àrea "BaseMem".
Control de la Caché per part de l'Usuari
Si el programador ha fet un bon treball, l'usuari no ha de fer gens relacionat amb les Cachés degut al fet que tota la
configuració requerida ja ha estat realitzada a l'Esclau.
No obstant això, hi pot haver dos raons per a canviar manualment la configuració de la Caché. Primer, per a fer que un
instal·lador funcioni quan té problemes degut al fet que s'executa massa ràpid (per ex. generant errors en la sortida
gràfica) i segon per a fer que un programa instal·lat s'executi mes ràpidament.
Per a fer que un programa que ocasiona una caiguda del sistema funcioni, es pot activar l'opció "NoCache". Aquesta opció desactiva totes les cachés i marca tota la memòria com a "NonCachable"
Serialitzada (precís). Si la màquina té Memòria Xip de 32 bits continuarà éssent més ràpida que un A500 original.
Per a fer que un programa instal·lat s'executi mes ràpidament poden configurar-se algunes opcions que habilitin les
Cachés. Aquesta configuració sobreescriurà la de l'Esclau. Al Motorola 68020 pot configurar-se l'opció
Cache. Al 68030 també pot utilitzar-se la opció DCache, que
inclou també la opció Caché. Un 68060 disposa d'algunes opcions més: BranchCache,
StoreBuffer i SuperScalar. L'opció ChipNoCache/S pot millorar el rendiment als 68040 i 68060 (veure més avall).
Possibilitat d'emmagatzemar a caché la memòria Xip
La possibilitat d'emmagatzemar a caché pot fer-se no solament per mitjà de la CPU (CACR) i la configuració de la MMU sinó
també mitjançant maquinari extern. La CPU envia un senyal al bus si intenta emmagatzemar a caché una adreça. I un maquinari
extern pot enviar un senyal a la CPU (després que una adreça ha estat col·locada en el bus d'adreces durant un accés a
memòria) indicant que una adreça no ha d'ésser emmagatzemada a caché.
El mecanisme pel qual el maquinari envia el senyal a la CPU indicant si la memòria és "Cachable" o no és utilitzat en tots
els Amigues (fins a on jo sé) i les targes de CPU amb processadors >= 68030 (degut al fet que tenen una caché de dades).
Això inclou tota la Memòria Xip i l'Espai d'E/S (CIA/Custom/RTC) que no ha d'ésser emmagatzemat a caché per la caché de
dades. Això és necessari per a evitar inconsistències a la caché, per exemple degudes a activitat DMA.
La reacció de la CPU davant un rebuig del maquinari a emmagatzemar a caché un accés varia entre les diferents CPU's.
Al 68030 no hi ha cap impacte en el rendiment de l'accés: les dades simplement no són guardades a caché. Al 68040 els accessos
de lectura es realitzen a la màxima velocitat però els accessos d'escriptura ("CopyBack") seran cancel·lats i reiniciats
sense guardar a caché la qual cosa té com a conseqüència un accés aproximadament 5 vegades més lent (depenent del maquinari
i la velocitat de la CPU) comparat amb un accés sense guardar a caché. En el 68060 les operacions de lectura i escriptura
seran cancel·lades i reiniciades. Els accessos de lectura seran aproximadament 3 vegades més lents i els d'escriptura
aproximadament 5 vegades més lents.
Els problemes esmentats estan relacionats amb l'accés a dades. Els accessos a instruccions usualment no es veuen afectats
i són emmagatzematbles a caché fins i tot dintre de la Memòria Xip. Existeixen alguns components de maquinari (possiblement
defecctuosos) que no permeten que les instruccions es s'emmagatzemin a caché a la Memòria Xip. En aquest tipus de maquinari
s'ha d'emprar l'opció ChipNoCache/S per a evitar una major caiguda en la velocitat
d'execució perquè a tot arreu els accessos a instruccions seran unes 2 vegades més lents.
Aquest comportament pot comprovar-se al seu oridinador si executa Speed.Slave que trobarà al directori
src/memory-speed de l'arxiu de desenvolupament.
Mode ràfega
El mode ràfega del 68030 li diu al processador que llegeixi sempre una
línia sencera de caché (16 bytes) si hi ha falla de predicció en comptes de només la paraula
llarga que es va sol.licitar. El mode ràfega ha d'ésser suportat pel maquinari, si no, no hi
haurà cap ràfega sense una penalització en temps. El mode ràfega es pot activar de forma
separada per a la caché d'instruccions i de dades. Donat que un accés de ràfega triga més
que un accés sol, el mode ràfega només representa un avantatge en termes de rendiment si la
majoria d'entrades de la línia de caché s'utilitzen abans que la línia sigui alliberada. Per a la
caché d'instruccions, el mode ràfega generalment millora el rendiment. Per a la caché de dades
sovint només en escenaris on tenen lloc lectures consecutives de memòria. A partir de la versió
18.0 de WHDLoad, aquest activa el mode ràfega per a les instruccions juntament amb la caché
d'instruccions. El mode ràfega per les dades no serà activat per WHDLoad.
Assignació d'Escriptura (Write Allocation)
L'assignació d'escriptura controla la gestió de la caché al 68030 quan té lloc una pèrdua de caché durant una operació
d'escriptura. L'assignació d'escriptura ha de ser activada quan parts del programa instal·lat s'executen en Mode Usuari.
Si el programa instal·lat s'executa solament en Mode Supervisor l'assignació d'escriptura pot ésser desactivada, la qual
cosa proporciona un mínim avantatge en el rendiment.
Caché de Ramificacions (Branch Cache)
La Caché de Ramificacions solament està disponible amb el processador 68060. És una espècie de caché d'instruccions per
a instruccions de ramificació però contràriament al que passa amb la caché d'instruccions, no es veu afectada per la
configuració de la MMU! Això significa que tot i que la Pàgina de memòria apropiada sigui marcada com "NonCachable", les
instruccions de ramificació seran guardades a caché si la Caché de Ramificacions està activada.
Llegeixi el Manual d'Usuari de Microprocessadors Motorola per a major informació. Si vostè té correccions o addicions a aquesta plana, si us plau
contacti amb mi.
[Main]
[Docs]
[Installs]
[Search]
[Team]
[Guestbook]
[Links]