Caché (informática)

5
Caché (informática) Memoria Principal Memoria Caché Índice Datos 0 xyz 1 pdq 2 abc 3 rgf Índice Marca Datos 0 abc 2 0 xyz 1 Diagrama de una memoria caché de CPU. En informática, la caché es la memoria de acceso rápi- do de una computadora, que guarda temporalmente las últimas informaciones procesadas. [1] La memoria caché es un búfer especial de memoria que poseen las computadoras, que funciona de manera simi- lar a la memoria principal, pero es de menor tamaño y de acceso más rápido. Es usada por el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se utilizan con más frecuencia. La caché es una memoria que se sitúa entre la unidad cen- tral de procesamiento (CPU) y la memoria de acceso alea- torio (RAM) para acelerar el intercambio de datos. Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se realizan a di- cha copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el microprocesador necesita leer o escribir en una ubicación en memoria principal, primero verifica si una copia de los datos está en la caché; si es así, el microprocesador de inmediato lee o escribe en la me- moria caché, que es mucho más rápido que de la lectura o la escritura a la memoria principal. [2] 1 Etimología La palabra procede de la voz inglesa cache (/kæʃ/; «es- condite secreto para guardar mercancías, habitualmente de contrabando») y esta a su vez de la francesa cache, (/kaʃ/; «escondrijo o escondite»). A menudo, en español se escribe con tilde sobre la «e» del mismo modo como el que se venía escribiendo con anterioridad al neologis- mo la palabra «caché» («distinción o elegancia» o «coti- zación de un artista»), proveniente de un étimo también francés, pero totalmente distinto: cachet,(/ka'ʃɛ/; «sello» o «salario»). La Real Academia Española, en el Diccionario de la len- gua española sólo reconoce la palabra con tilde, [1] aunque en la literatura especializada en Arquitectura de compu- tadoras (por ejemplo, las traducciones de libros de los au- tores Andrew S. Tanenbaum, John L. Hennessy y David A. Patterson) se emplea siempre la palabra sin tilde por ser anglosajona y debería escribirse en cursiva (cache). 2 RAM caché y caché de disco La unidad caché es un sistema especial de almacenamien- to de alta velocidad. Puede ser tanto un área reservada de la memoria principal como un dispositivo de almacena- miento de alta velocidad independiente. Hay dos tipos de caché frecuentemente usados en computadoras personales: memoria caché y caché de dis- co. Una memoria caché, a veces llamada “RAM caché”, es una parte de RAM estática (SRAM) de alta veloci- dad, más rápida que la RAM dinámica (DRAM) usada como memoria principal. La memoria caché es efecti- va dado que los programas acceden una y otra vez a los mismos datos o instrucciones. Guardando esta informa- ción en SRAM, la computadora evita acceder a la lenta DRAM. Cuando se encuentra un dato en la caché, se dice que se ha producido un acierto, siendo un caché juzgado por su tasa de aciertos (hit rate). Los sistemas de memoria ca- ché usan una tecnología conocida por caché inteligente en la cual el sistema puede reconocer cierto tipo de datos usados frecuentemente. Las estrategias para determinar qué información debe ser puesta en la caché constituyen uno de los problemas más interesantes en la ciencia de las computadoras. Algunas memorias caché están cons- truidas en la arquitectura de los microprocesadores. Por ejemplo, el microprocesador Pentium II: tiene 32 KiB de caché de primer nivel (level 1 o L1) repartida en 16 KiB para datos y 16 KiB para instrucciones; la caché de segun- do nivel (level 2 o L2) es de 512 KiB y trabaja a mitad de la frecuencia del microprocesador. La caché L1 está en el núcleo del microprocesador, y la L2 está en una tarjeta de circuito impreso junto a éste. La caché de disco trabaja sobre los mismos principios que la memoria caché, pero en lugar de usar SRAM de al- ta velocidad, usa la convencional memoria principal. Los datos más recientes del disco duro a los que se ha acce- dido (así como los sectores adyacentes) se almacenan en un búfer de memoria. Cuando el programa necesita ac- ceder a datos del disco, lo primero que comprueba es la 1

description

memoria cache

Transcript of Caché (informática)

  • Cach (informtica)

    MemoriaPrincipal

    MemoriaCach

    ndice Datos0 xyz1 pdq2 abc3 rgf

    ndice MarcaDatos0 abc2

    0 xyz1

    Diagrama de una memoria cach de CPU.

    En informtica, la cach es la memoria de acceso rpi-do de una computadora, que guarda temporalmente lasltimas informaciones procesadas.[1]

    La memoria cach es un bfer especial de memoria queposeen las computadoras, que funciona de manera simi-lar a la memoria principal, pero es de menor tamao yde acceso ms rpido. Es usada por el microprocesadorpara reducir el tiempo de acceso a datos ubicados en lamemoria principal que se utilizan con ms frecuencia.La cach es una memoria que se sita entre la unidad cen-tral de procesamiento (CPU) y la memoria de acceso alea-torio (RAM) para acelerar el intercambio de datos.Cuando se accede por primera vez a un dato, se hace unacopia en la cach; los accesos siguientes se realizan a di-cha copia, haciendo que sea menor el tiempo de accesomedio al dato. Cuando el microprocesador necesita leer oescribir en una ubicacin en memoria principal, primeroverica si una copia de los datos est en la cach; si es as,el microprocesador de inmediato lee o escribe en la me-moria cach, que es mucho ms rpido que de la lecturao la escritura a la memoria principal.[2]

    1 EtimologaLa palabra procede de la voz inglesa cache (/k/; es-condite secreto para guardar mercancas, habitualmentede contrabando) y esta a su vez de la francesa cache,(/ka/; escondrijo o escondite). A menudo, en espaolse escribe con tilde sobre la e del mismo modo comoel que se vena escribiendo con anterioridad al neologis-mo la palabra cach (distincin o elegancia o coti-zacin de un artista), proveniente de un timo tambinfrancs, pero totalmente distinto: cachet, (/ka'/; selloo salario).La Real Academia Espaola, en el Diccionario de la len-gua espaola slo reconoce la palabra con tilde,[1] aunque

    en la literatura especializada en Arquitectura de compu-tadoras (por ejemplo, las traducciones de libros de los au-tores Andrew S. Tanenbaum, John L. Hennessy y DavidA. Patterson) se emplea siempre la palabra sin tilde porser anglosajona y debera escribirse en cursiva (cache).

    2 RAM cach y cach de discoLa unidad cach es un sistema especial de almacenamien-to de alta velocidad. Puede ser tanto un rea reservada dela memoria principal como un dispositivo de almacena-miento de alta velocidad independiente.Hay dos tipos de cach frecuentemente usados encomputadoras personales: memoria cach y cach de dis-co.Una memoria cach, a veces llamada RAM cach,es una parte de RAM esttica (SRAM) de alta veloci-dad, ms rpida que la RAM dinmica (DRAM) usadacomo memoria principal. La memoria cach es efecti-va dado que los programas acceden una y otra vez a losmismos datos o instrucciones. Guardando esta informa-cin en SRAM, la computadora evita acceder a la lentaDRAM.Cuando se encuentra un dato en la cach, se dice que seha producido un acierto, siendo un cach juzgado por sutasa de aciertos (hit rate). Los sistemas de memoria ca-ch usan una tecnologa conocida por cach inteligenteen la cual el sistema puede reconocer cierto tipo de datosusados frecuentemente. Las estrategias para determinarqu informacin debe ser puesta en la cach constituyenuno de los problemas ms interesantes en la ciencia delas computadoras. Algunas memorias cach estn cons-truidas en la arquitectura de los microprocesadores. Porejemplo, el microprocesador Pentium II: tiene 32 KiB decach de primer nivel (level 1 o L1) repartida en 16 KiBpara datos y 16KiB para instrucciones; la cach de segun-do nivel (level 2 o L2) es de 512 KiB y trabaja a mitad dela frecuencia del microprocesador. La cach L1 est enel ncleo del microprocesador, y la L2 est en una tarjetade circuito impreso junto a ste.La cach de disco trabaja sobre los mismos principiosque la memoria cach, pero en lugar de usar SRAM de al-ta velocidad, usa la convencional memoria principal. Losdatos ms recientes del disco duro a los que se ha acce-dido (as como los sectores adyacentes) se almacenan enun bfer de memoria. Cuando el programa necesita ac-ceder a datos del disco, lo primero que comprueba es la

    1

  • 2 4 DISEO

    cach de disco para ver si los datos ya estn ah. La cachde disco puede mejorar notablemente el rendimiento delas aplicaciones, dado que acceder a un byte de datos enRAM puede ser miles de veces ms rpido que acceder aun byte del disco duro.

    3 Composicin internaLos datos en la memoria cach se alojan en distintos ni-veles segn la frecuencia de uso que tengan, estos nivelesson los siguientes:

    3.1 Memoria cach nivel 1 (Cach L1)Tambin llamada memoria interna, se encuentra en el n-cleo del microprocesador. Es utilizada para acceder a da-tos importantes y de uso frecuente, es el nivel en el que eltiempo de respuesta es menor. Su capacidad es de hasta128 kb. Este nivel se divide en dos:

    Nivel 1Data Cache: Se encarga de almacenar datosusados frecuentemente y cuando sea necesario vol-ver a utilizarlos, accede a ellos en muy poco tiempo,por lo que se agilizan los procesos.

    Nivel 1 Instruction Cache: Se encarga de almacenarinstrucciones usadas frecuentemente y cuando seanecesario volver a utilizarlas, inmediatamente las re-cupera, por lo que se agilizan los procesos.

    3.2 Memoria cach nivel 2 (Cach L2)Se encarga de almacenar datos de uso frecuente. Es mslenta que la cach L1, pero ms rpida que la memoriaprincipal (RAM). Se encuentra en el procesador, mas noes su ncleo. Genera una copia del nivel 1. Su capacidades de hasta 1 Mb.

    Cach Exclusivo: Los datos solicitados se eliminande la memoria cach L2.

    Cach Inclusivo: Los datos solicitados se quedan enla memoria cach L2.

    3.3 Memoria cach nivel 3 (Cach L3)Est memoria se encuentra en algunos procesadores mo-dernos y genera una copia a la L2. Es ms rpida que lamemoria principal (RAM), pero ms lenta que L2. Enesta memoria se agiliza el acceso a datos e instruccionesque no fueron localizadas en L1 o L2.Es generalmente de un tamao mayor y ayuda a que elsistema guarde gran cantidad de informacin agilizandolas tareas de el procesador

    4 DiseoEn el diseo de la memoria cach se deben considerar va-rios factores que inuyen directamente en el rendimientode la memoria y por lo tanto en su objetivo de aumen-tar la velocidad de respuesta de la jerarqua de memoria.Estos factores son las polticas de ubicacin, extraccin,reemplazo y escritura.

    4.1 Poltica de ubicacin

    Decide dnde debe colocarse un bloque dememoria prin-cipal que entra en la memoria cach. Las ms utilizadasson:

    Directa: al bloque i-simo de memoria principal lecorresponde la posicin i mdulo n, donde n es el n-mero de bloques de la memoria cach. Cada bloquede la memoria principal tiene su posicin en la ca-ch y siempre en el mismo sitio. Su inconvenientees que cada bloque tiene asignada una posicin jaen la memoria cach y ante continuas referencias apalabras de dos bloques con la misma localizacinen cach, hay continuos fallos habiendo sitio libreen la cach.

    Asociativa: Los bloques de la memoria principalse alojan en cualquier bloque de la memoria cach,comprobando solamente la etiqueta de todos y cadauno de los bloques para vericar acierto. Su princi-pal inconveniente es la cantidad de comparacionesque realiza.

    Asociativa por conjuntos: Cada bloque de la me-moria principal tiene asignado un conjunto de la ca-ch, pero se puede ubicar en cualquiera de los blo-ques que pertenecen a dicho conjunto. Ello permitemayor exibilidad que la correspondencia directa ymenor cantidad de comparaciones que la totalmenteasociativa.

    4.2 Poltica de extraccin

    La poltica de extraccin determina cundo y qu blo-que de memoria principal hay que traer a memoria cach.Existen dos polticas muy extendidas:

    Por demanda: un bloque slo se trae a memoria ca-ch cuando ha sido referenciado y no se encuentreen memoria cach.

    Con prebsqueda: cuando se referencia el bloquei-simo de memoria principal, se trae adems el blo-que (i+1)-simo. Esta poltica se basa en la propie-dad de localidad espacial de los programas.

  • 5.1 Mejorar el rendimiento. 3

    4.3 Poltica de reemplazoDetermina qu bloque de memoria cach debe abando-narla cuando no existe espacio disponible para un bloqueentrante. Bsicamente hay cuatro polticas:

    Aleatoria: el bloque es reemplazado de formaaleatoria.

    FIFO: se usa el algoritmo First In First Out (FIFO)(primero en entrar primero en salir) para determinarqu bloque debe abandonar la cach. Este algoritmogeneralmente es poco eciente.

    Menos recientemente usado (LRU): Sustituye elbloque que hace ms tiempo que no se ha usado enla cach, traeremos a cach el bloque en cuestin ylo modicaremos ah.

    Menos frecuencias usadas (LFU): Sustituye elbloque que ha experimentado menos referencias.

    4.4 Poltica de Actualizacin o EscrituraDeterminan el instante en que se actualiza la informacinen memoria principal cuando se hace una escritura en lamemoria cach.

    Escritura Inmediata: Se escribe a la vez enMemo-ria cach y Memoria principal. Desventaja: generacuello de botella.

    Escritura Aplazada: Actualiza nicamente la Me-moria cach luego de la modicacin de sus datos.Cuando el bus de sistema se encuentra libre, actua-liza la memoria principal. Esto puede generar quelos perifricos lean datos errneos, pero es poco fre-cuente.

    Escritura Obligada: Actualiza nicamente la Me-moria cach luego de la modicacin de sus datos.Cuando no hay otra alternativa, actualiza la memo-ria principal. Esto puede producirse por cualquierade estas causas:

    1. Se accede a la posicin de memoria principalmodicada en la cach. Antes de permitir lalectura/escritura, debe actualizarse el dato en lamemoria principal.

    2. Debe eliminarse una lnea de la cach, entonces seactualiza la memoria principal (en caso de ser nece-sario) antes de proceder a la eliminacin.

    5 OptimizacinPara una optimizacin en la manera en que se ingresa a lamemoria cach y cmo se obtienen datos de ella, se han

    tomado en cuenta distintas tcnicas que ayudarn a quehaya menos reincidencia de fallos.

    5.1 Mejorar el rendimiento. Reducir fallos en la cach (miss rate). Reducir penalizaciones por fallo (miss penalti). Reducir el tiempo de acceso en caso de acierto(hit time).

    5.2 Reduccin de fallos5.2.1 Tipos de fallos

    Existen 3 tipos de fallos en una memoria cach:

    Forzosos (Compulsory): En el primer acceso a unbloque ste no se encuentra en la cach (fallos dearranque en fro o de primera referencia).

    Capacidad (Capacity): La cach no puede conte-ner todos los bloques necesarios durante la ejecucinde un programa.

    Conicto (Conict): Diferentes bloques deben irnecesariamente al mismo conjunto o lnea cuandola estrategia es asociativa por conjuntos o de corres-pondencia directa (fallos de colisin).

    5.2.2 Tcnicas para reducir fallos

    Existen diversas tcnicas para reducir esos fallos en la ca-ch, algunas son:

    Incrementar el tamao del bloque. Ventajas: Sereducen los fallos forzosos como sugiere el princi-pio de localidad espacial. Inconvenientes: Aumentanlos fallos por conicto al reducirse el nmero de blo-ques de la cach y los fallos de capacidad si la caches pequea. La penalizacin por fallo aumenta al in-crementarse el tiempo de transferencia del bloque.

    Incremento de la asociatividad. Ventajas: Se re-ducen los fallos por conicto. Inconveniente: Au-menta el tiempo de accesomedio al incrementarse eltiempo de acierto (multiplexin). Tambin aumentael coste debidos a los comparadores

    Cach vctima. Consiste en aadir una pequea ca-ch totalmente asociativa (1-5 bloques) para alma-cenar bloques descartados por fallos de capacidado conicto. En caso de fallo, antes de acceder a lamemoria principal se accede a esta cach. Si el blo-que buscado se encuentra en ella se intercambian losbloques de ambas cachs.

  • 4 8 ENLACES EXTERNOS

    Optimizacin del compilador. El compiladorre-ordena el cdigo de manera que por la forma encmo se hacen los accesos se reducen los fallos decach.

    6 Vase tambin Unidad central de procesamiento Arquitectura de von Neumann Cach web Cach de disco

    7 Referencias[1] cach,Diccionario de la lengua espaola (22. edicin),

    Real Academia Espaola, 2001, http://lema.rae.es/drae/srv/search?key=cach%C3%A9, consultado el 31 de juliode 2014.

    [2] Behrouz A. Forouzan, Sophia Chung Fegan (2003). Foun-dations of Computer Science: From Data Manipulationto Theory of Computation. Cengage Learning Editores.ISBN 9789706862853.

    8 Enlaces externos Artculo sobre la cach

  • 59 Text and image sources, contributors, and licenses9.1 Text

    Cach (informtica) Fuente: http://es.wikipedia.org/wiki/Cach%C3%A9%20(inform%C3%A1tica)?oldid=82075540 Colaboradores:Joseaperez, Frangoro, Forza4, Dodo, Sms, Avm, Ihavenomouth, Tostadora, Jondel, Tano4595, Rhymeless~eswiki, Murphy era un opti-mista, Barcex, El Moska, Robotito, Valyag, Sunsinron, Wricardoh, Dianai, Gabriel Abril, JavierCantero, Mandramas, Porao, Benjavalero,Renabot, FAR, LeonardoRob0t, Petronas, Airunp, JMPerez, Edub, Taichi, Marco Regueira, Drini2, AgD, Guanxito, RobotQuistnix, Plato-nides, Unf, Veltys, Chobot, Unicacion, Yrbot, Baito, FlaBot, Torbellino, Varano, Vitamine, Mig21bp, Mortadelo2005, GermanX, Equi,KnightRider, Eloy, HECTOR ARTURO AZUZ SANCHEZ, Eskimbot, Kepler Oort, Vbenedetti, Maldoror, Tomatejc, Faelomx, Daikrieg,Hawking, UnDeRTaKeR, CEM-bot, Laura Fiorucci, Pinar~eswiki, -jem-, Retama, Pacostein, Rastrojo, Antur, Montgomery, Thijs!bot,Outrun, Alvaro qc, Facundock, RoyFocker, Juan25, Bryant1410, Nightwish, Will vm, Vladrack, Isha, Xoneca, Gusgus, Jurgens~eswiki,JAnDbot, OceanO, Jorgel~eswiki, Satin, Muro de Aguas, CommonsDelinker, TXiKiBoT, Millars, Netito777, Ale ashero, Amanuen-se, Bedwyr, Plux, Biasoli, Fremen, Miguelchambergo, Cinevoro, Technopat, Galandil, Queninosta, Matdrodes, Synthebot, BlackBeast,Muro Bot, Numbo3, SieBot, Carmin, Chrihern, Bigsus-bot, Manw, Philmarin, Greek, AquiLesBailoYo, Belb, Javierito92, Marcecoro,Piero71, Eduardosalg, Neodop, EdgarGSX, Fanattiq, Gianvalero, Poco a poco, Aliuk, Raulshc, SilvonenBot, Camilo, AVBOT, Munshkr,MarcoAurelio, Tanhabot, Diegusjaimes, DumZiBoT, Linfocito B, Crema blanca, Arjuno3, Andreasmperu, Mayckoll, ArthurBot, Dio-geneselcinico42, SuperBraulio13, Federicokuarezkpo, Manuelt15, Jkbw, Dreitmen, Igna, Botarel, Hprmedina, TorQue Astur, PatruBOT,Lucas6534, Jou.jos, Jorge c2010, Foundling, Theaviator87, Megazilla77, HRoestBot, Danuteo, Allforrous, Majin Buu, Dondervogel 2, Si-mondicequetecalles, KLBot, Rubpe19, Jcaraballo, REX93, Solde9, Waka Waka, WikitanvirBot, Julia4815, XanaG, MerlIwBot, Edc.Edc,Firewalldefender, LlamaAl, Robert Laymont, Repa frankfurt, Addbot, Balles2601, Zaulo, KidrauhlFlor, AVIADOR-bot, Miguelaag10,Jarould, Matiia, Andrs Alejandro Andaln, Zhirose y Annimos: 386

    9.2 Images Archivo:Cach.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/0/0d/Cach%C3%A9.svg Licencia: CC BY 3.0 Colaborado-

    res: Image:Cache,basic.svg Artista original: Alvaro qc

    9.3 Content license Creative Commons Attribution-Share Alike 3.0

    Etimologa RAM cach y cach de disco Composicin interna Memoria cach nivel 1 (Cach L1)Memoria cach nivel 2 (Cach L2)Memoria cach nivel 3 (Cach L3)

    Diseo Poltica de ubicacin Poltica de extraccin Poltica de reemplazo Poltica de Actualizacin o Escritura

    OptimizacinMejorar el rendimiento.Reduccin de fallosTipos de fallosTcnicas para reducir fallos

    Vase tambin Referencias Enlaces externos Text and image sources, contributors, and licensesTextImagesContent license