[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:

Gestió de la Caché a WHDLoad

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]