o que é a memória cache

Upload: cristiano-meotti

Post on 05-Jul-2015

473 views

Category:

Documents


0 download

TRANSCRIPT

FACULDADE DE TECNOLOGIA TECBRASIL - FTECCURSO SUPERIOR DE TECNOLOGIA EM ... DISCIPLINA: ...

Relatrio do Desenvolvimento do Projeto da Disciplina ... Curso Superior de Tecnologia em...

Aluno(a) Professor

Porto Alegre, xx de de 2009.

1

Sumrio

1. 2. 3. 4. 5. 5.1 5.2

INTRODUO................................ ................................ ................................ ............ 6 INTRODUO................................ ............. ERROR! BOOKMARK NOT DEFINED. JUSTIFICATIVA ................................ ......... ERROR! BOOKMARK NOT DEFINED. METODOLOGIA ................................ ......... ERROR! BOOKMARK NOT DEFINED. DOCUMENTO CONTEXTUAL.............. ERROR! BOOKMARK NOT DEFINED. ESPECIFICAO DOS REQUISITOS .. ERROR! BOOKMARK NOT DEFINED.

FASE DE DEFINIO E ESPECIFICAO DE REQUISITOSERROR! BOOKMARK NOT DEFIN

5.2.1 ESQUEMA DE REQUISITOS................................ ...ERROR! BOOKMARK NOT DEFINED . 5.2.1.1 REQUISITOS FUNCIONAIS ................................ ERROR! BOOKMARK NOT DEFINED . 5.2.1.2 REQUISITOS GERAIS ................................ .......ERROR! BOOKMARK NOT DEFINED . 5.2.2 DIAGRAMA DE CASOS DE USO DE S ISTEMA ..........ERROR! BOOKMARK NOT DEFINED . 5.3 6. 6.1 6.2 7. GLOSSRIO DE TERMOS ..................... ERROR! BOOKMARK NOT DEFINED. ANLISE DO SISTEMA ............................. ERROR! BOOKMARK NOT DEFINED. DIAGRAMA DE CLASSE ....................... ERROR! BOOKMARK NOT DEFINED. DIAGRAMAS DE SEQNCIA ............. ERROR! BOOKMARK NOT DEFINED. PROJETO DO SISTEMA ............................ ERROR! BOOKMARK NOT DEFINED. 7.1 PROJETO DA CAMADA DE PERSISTNCIA ..........ERROR! BOOKMARK NOT DEFINED . 7.2 DICIONRIO DE DADOS ................................ ......ERROR! BOOKMARK NOT DEFINED . 7.3 PROJETO DAS TELAS DO SISTEMA.....................ERROR! BOOKMARK NOT DEFINED . 7.3.1 TELA DE CADASTRO DE CIDADE ....................ERROR! BOOKMARK NOT DEFINED . 8. 9. 10. 11. 12. MANUAL DO SISTEMA ............................. ERROR! BOOKMARK NOT DEFINED. MANUAL DO USURIO ............................. ERROR! BOOKMARK NOT DEFINED. IMPLEMENTAO DO SISTEMA ....... ERROR! BOOKMARK NOT DEFINED. BIBLIOGRAFIA................................ ....... ERROR! BOOKMARK NOT DEFINED.

CONCLUSES E PERSPECTIVA DE TRABALHOS FUTUROSERROR! BOOKMARK NOT DE

2

Lista de Figuras

Figura 1

Diagrama simplificado de uma arquitetura que utiliza Memria Cache ..

Figura2: Organizao da Memria Cache Figura 3:Nveis de Cache Figura 4:Cache Lgica x Cache Fsica Figura 5:Mapeamento direro Figura 6:Mapeamento associativo Figura 7: Mapeamento Associativo por Conjuntos Figura 8: Funcionamento dos nveis de cache Figura 9: Funcionamento dos nveis de cache

3

Lista de TabelasTabela 1:Desempenho memria Cache Tabela 2: Elementos de um projeto

4

ResumoA memria cache criada na poca do 386dx surgiu para resolver o problema de velocidade de comunicao entre o processador e a memria principal. Como o avano de tecnologia em relao a velocidade foi muito maior nos processadores, a memria principal foi ficando para trs fazendo com que para o processador perdesse muito tempo para buscar dados na memria principal, a soluo deste problema foi a insero de uma pequena quantidade de memria SRAM entre o processador e a memria principal.

5

Introduo

O modelo de Von Neumann estabelece que para ser executado, o programa deve estar armazenado na memria . A memria organizada em grupos de bits chamados clulas (ou palavras), onde as informaes so armazenadas. Para acess-las, foi criado um mecanismo de identificao de cada uma destas clulas denominado endereo de memria, atravs dele podemos acessar (ler ou gravar) qualquer palavra da Memria Principal. Para que um programa seja executado, necessrio transferir suas instrues da memria para o interior da CPU. Existe na CPU um registrador apontando para a prxima instruo a ser executada. Este registrador chamado de PC (Program Counter). Os registradores tambm so palavras de uma memria especial localizada no interior da CPU (denominado memria local) e esto conectados s unidades funcionais da mesma. Eles atuam como operandos fonte e destino das operaes realizadas pela CPU. H algum tempo atrs, tanto a CPU como as memrias tinham velocidades de trabalho muito prximas uma das outras. Com o passar do tempo, tornou-se necessrio memrias com maior capacidade de armazenamento motivando o aparecimento da Memria Dinmica. Este tipo de memria permitiu aumentar a capacidade de armazenamento, mas limitou sua velocidade. J na CPU, utilizada uma tecnologia diferente que permite uma alta velocidade de processamento (tecnologia de Memria Esttica). Com isso, a CPU foi se tornando cada vez mais rpida enquanto que as memrias no foram capazes de acompanhar tal aumento de velocidade. Como necessrio trazer informaes da memria para os registradores, esta diferena de velocidade acabou se tornando um grande problema. Para reduzir o efeito causado por esta diferena de velocidade, estudos sobre o comportamento dos programas foram realizados e destes estudos foram estabelecidos dois princpios: Localidade Temporal e Localidade Espacial. A reduzida capacidade de armazenamento das memrias estimulou a criao de mais um nvel na hierarquia do sistema de memria na dcada de 70. Este nvel formado por uma memria de alta velocidade, mas com pequena capacidade de armazenamento, que conhecida por Memria Cache.

O que a memria Cache?Memria Cache nada mais do que um bloco de memria SRAM de tamanho reduzido e com tempo de acesso menor, se comparado memria principal, que se interpe entre esta e o processador com o objetivo de diminuir o tempo mdio de6

acesso a dados que esto na memria principal. Ela armazena uma pequena parte dos dados que esto em memria, aqueles com a maior probabilidade de serem usados em um breve perodo de tempo. Entenda-se com maior probabilidade aquelas informaes que se encontram em posies de memria subsequentes que est sendo acessada em um dado momento.

Princpio de localidadeForma como os programas so escritos pelo programador e executados pelo processador. Localidade temporal A Localidade Temporal caracteriza aqueles programas que apresentam uma grande quantidade de loops (repetio de trechos de cdigos) e estabelece que uma vez acessada uma determinada posio de memria, existe uma grande probabilidade de esta posio ser novamente acessada em um curto intervalo de tempo. Isto , devido ao fato da grande maioria dos programas serem formados por loops e que muitos deles tm um alto grau de repetio, a CPU ficar executando um pequeno grupo de instrues durante longos perodos do tempo de processamento. Localidade Espacial O princpio da Localidade Espacial, por outro lado, estabelece que uma vez que uma determinada posio de memria acessada, existe uma grande probabilidade de que as posies vizinhas tambm sejam acessadas. Isto , a execuo de um programa automaticamente seqencial, a no ser que a instruo executada seja um desvio (transferncia de controle), a prxima instruo estar o endereo adjacente. Como o programa pode ser formado por uma quantidade muito maior de outras instrues do que de transferncias de controle, ento existe uma grande probabilidade da prxima instruo estar no endereo adjacente.

Como a memria Cache funciona?

Uma vez introduzida no sistema de computao o funcionamento do sistema alterado de forma que antes de realizar um acesso direto a MP a informao primeiramente buscada na Memria Cache.

7

Abaixo temos um diagrama simplificado de como se pode ver o papel de uma memria cache em um sistema computacional.

Figura 1

Diagrama simplificado de uma arquitetura que utiliza Memria Cache

O funcionamento da Cache, seja qual for o seu nvel de r efinamento, se d basicamente da seguinte forma: A CPU inicia a execuo de uma instruo que requer busca ou escrita de dados em uma certa posio de memria. Antes de ir Memria Principal, a CPU faz uma consulta Memria Cache para saber se a posio de memria em que ela deve operar est l. Se a informao requisitada estiver presente na Memria Cache ocorre um acerto(hit) e a informao transferida para a CPU em alta velocidade, ela nem mesmo chega a ir Memria Principal, efetuando a operao na prpria Cache e dando seqncia ao fluxo de execuo do programa. Caso contrrio, ocorre uma falha (miss), ela vai at a Memria Principal realiza a operao desejada e traz mais um determinado bloco de memria, com posies que tem grandes chances de serem acessados nos prximos ciclos de mquina.

Organizao da Memria CacheA Cache formada por linhas (frame), cada uma capaz de armazenar uma certa quantidade de clulas da Memria Principal. Conforme ilustra a Figura 2, cada linha possui alguns bits de controle. O bit Vlido(V) indica se o contedo da linha vlido e o bit Modificado(M) informa se ela sofreu alguma alterao por parte da CPU. Existe tambm o campo TAG que contm parte do endereo que indica de que lugar da Memria Principal pertence o dado carregado na linha da Cache. Para a Memria cache como se a Memria Principal estivesse dividida em blocos com o mesmo nmero de clulas existentes em cada uma de suas linhas.

8

Figura2: Organizao da Memria Cache

Conceitos bsicosCada elemento que compe o cache contm uma informao que a cpia exata da informao original, localizada em outro setor de maior latncia de acesso. Cada um desses elementos tem uma etiqueta que identifica o dado que foi copiado para o cache no local de armazenamento original. Quando um dispositivo quer acessar um dado que est num local de armazenamento, primeiramente ele verifica o cache. Se uma entrada com uma etiqueta correspondente ao dado desejado for encontrada, o elemento do cache ento utilizado ao invs do dado original. Essa situao conhecida como "cache hit". A percentagem de acessos que resultam em cache hits conhecida como a taxa de acerto (hit rate ou hit ratio) do cache. Por outro lado, quando um cache consultado e co nstata-se que ele no contm a informao com a etiqueta desejada, a informao ento copiada do local original de armazenamento e inserida no cache, ficando pronto para o prximo acesso. Esta situao chamada de "cache miss". O custo de uma memria cache muito alto, por isso em geral a capacidade de armazenamento de um cache limitada. Caso no haja mais espao para armazenar o novo dado, algum outro elemento deve ser retirado dele para que libere espao para o novo elemento. As heursticas utilizadas para fazer esta seleo de qual elemento ser substitudo so chamadas de algoritmos de reposio de dados.

9

Os dados que esto disponveis nos locais de armazenamento original podem ser modificados por outras entidades diferentes, alm do prprio cache. Nesse caso, a cpia existente no cache pode se tornar invlida. Da mesma forma, quando um cliente atualiza os dados no cache, as cpias do dado que estejam presentes em outros caches se tornaro invlidas. Protocolos de comunicao entre gerentes de cache so responsveis por manter os dados consistentes e confiveis e so conhecidos por protocolos de coerncia.

Consideraes sobre a Utilizao da Memria CachePara haver aumento de desempenho do sistema necessrio que haja muito mais acertos (hits) do que faltas (misses). De maneira que as eventuais perdas de desempenho com faltas seja sobrepujada pela taxa de acertos. A taxa de acertos mais comum em sistemas atuais varia entre 80% e 99%, o que garante um ganho de desempenho considervel com a utilizao de memrias Cache.

Nveis de CacheCom o aumento crescente da velocidade da CPU e visando minimizar um grande impacto no custo da Memria Cache os fabricantes vm estabelecendo diferentes nveis de memria cache. Nvel 1 (L1 Level 1) cache inserida internamente no processador, isto , encapsulada na mesma pastilha. Tem de 32 a 256 KB. Nvel 2 (L2 Level 2) cache externa consiste em uma pastilha (chip) instalada na placa-me do computador. Tem at 4MB. Nvel 3 (L3 Level 3) existentes em alguns processadores, quando estes possuem L1 e L2 internamente em seu invlucro; nesse caso, localizada externamente ao processador, na placame.

10

Figura 3:Nveis de Cache Funcionamento Quando a CPU requisita um dado, e ele est na L1, ento ouve um cache hit e o processador continua trabalhando em altssima velocidade. Caso o dado no esteja na L1, a requisio passada para a L2 e se o dado no estiver l, o dado dever ser buscado na memria principal, o que resulta na pior penalidade.

Tipos de Memria CachePelo ganho de desempenho que proporciona ao sistema de computao as memrias cach vm se tornando um elemento imprescindvel nos sistemas atuais e sendo utilizadas alm da relao CPU-MP. Tambm vm sendo empregadas para aumentar o desempenho do sistema na relao MP-MS (Memria Secundria) ex: Memrias Cache para discos rgidos, HDs, browsers, redes de computadores, servidores Web. Nos processadores, a cache disponibiliza alguns dados j requisitados e outros a processar. Nos Hds, ele usado com uma extenso da memria RAM, quando essa est lotada, os dados que foram usados a mais tempo so enviados para o HD, por isso que quando se tem pouca memria, e se abre muita coisa, ao abrir uma pagina que est sem uso(a que foi aberta a mais tempo), ela demora para abrir, pois ela estava no HD que infinitamente mais lento que a memria. Nos browsers, as pginas so guardadas localmente para evitar consultas constantes rede (especialmente teis quando se navega por pginas estticas); Nas redes de computadores, o acesso externo, ou a internet, se d por meio de um software que compartilha a conexo ou link, software este tambm chamado11

de proxy, que tem por funo rotear as requisies a IPs externos rede que se encontra, Nestes proxyes temos ainda um cache , que na verdade uma enorme lista de todos os sites que foram visitados pelos usurios dos computadores desta rede, fazendo com isto a mesma funo que os caches presentes nos navegadores, ou browsers, s que com a atribuio de servir a toda a rede e com isso aumentar a taxa de acerto dos proxyes, minimizar o consumo do link e agilizar a navegao . Nos servidores Web, tambm podem dispor caches configurados pelo administrador, que variam de tamanho conforme o nmero de page views que o servidor tem.

Diferena de Velocidade UCP/MPA memria principal transfere bits para o processador em velocidades sempre inferiores as que o processador pode receber e operar, ficando ento o processador em estado de espera enquanto os dados so transmitidos. Em toda execuo de uma instruo, o processador acessa a memria principal (sem cache) pelo menos uma vez, para buscar a instruo e transferi-la para um dos registradores do processador. Um ciclo de memria atualmente bem mais demorado que a execuo da instruo propriamente dita. Enquanto o desempenho dos processadores vem dobrando a cada 18 a 24 meses, o mesmo no acontece com a velocidade de transferncia, que vem aumentando cerca de 10% por ano. Este problema resolvido com a incluso de dispositivo de memria entre processador e a memria principal.

Ganhos de performance com memria Cache.Os nveis da hierarquia de memria em um computador atual, suas tecnologias e tempo mdio de acesso podem ser vistos na tabela abaixo:

12

Tabela 1:Desempenho memria Cache Pelos dados na tabela acima, podemos perceber que um acesso Memria Cache pode ser at 30 vezes mais rpido que um acesso Memria Principal ( 2 ns 60 ns). Se considerarmos a mdia do tempo de acesso (5 ns 35 ns) temos um acesso 7 vezes mais rpido. Uma melhoria de mais de 86%. Obviamente, existem muitos outros fatores a se considerar ao se tratar de performance de cache, sendo um dos principais, o tipo de carga de trabalho executada pelo sistema, e o fato de que a execuo de um programa no 100% acessos a memria. Mas essa anlise superficial mostra quo melhor, teoricamente, um sistema com Memria Cache implementada pode ser.

Elementos de projetoEmbora existam diversas implementaes de memrias cache, poucos elementos bsicos de projeto servem para classificar e diferenciar as diversas arquiteturas, so elese.

13

Tabela 2: Elementos de um projeto Endereos de cache: Lgico/virtual X fsico. Relacionado ao conceito de memria virtual e ao emprego de MMU (memory management unit) Memria virtual: programas endeream a memria a partir de um ponto de vista lgico. MMU: traduz endereos lgicos para endereos fsicos.

14

Figura 4:Cache Lgica x Cache Fsica Cache Virtual

Endereos virtuais dos blocos de memria so armazenados na cache. A leitura do bloco na cache pode ser feita em paralelo com a converso do endereo virtual em fsico pela gerncia de memria. Existe a possibilidade de ocorrncia de aliasing : dois ou mais endereos virtuais idnticos gerados por processos diferentes, que se referem a endereos fsicos distintos. Precisa ser realizado um flush a cada troca de processo.

Cache Fsico

Os endereos fsicos dos blocos de memria so armazenados na cache. O tempo de acesso mais lento porque o acesso cache deve ocorrer aps a converso do endereo virtual em fsico. Este tipo de cache mais simples de implementar e usar em ambientes com mltiplos processadores.

Tamanho da cach IDEAL: Pequeno suficiente para que o custo mdio por bit seja prximo do custo mdio por bit da memria principal. Grande suficiente para que o tempo mdio de acesso seja satisfatrio. PRTICA Por que minimizar o tamanho da cache? Caches grandes tendem a ser lentas rea disponvel no chip e na placa-me Desempenho da cache sensvel carga de trabalho e Impossvel determinar um tamanho nico (ideal) para cache. Algoritmos de substituio de dados A capacidade de armazenamento da MP muito maior do que a capacidade de armazenamento da MC, os algoritmos de substituio de dados na MC tm a tarefa de definir qual dos blocos j armazenados na Memria Cache deve ser retirado para o armazenamento de um novo bloco. Algoritmos de substituio de dados no so aplicveis quando a funo de mapeamento o mapeamento direto visto que, utilizando essa tcnica a localizao do bloco na MP que determinar a posio da informao na MC.15

Algoritmos: LRU (least Recently Used): Determina como candidatos substituio os que no foram acessados recentemente. FIFO (First-In-First-Out): Seleciona como candidato para substituio o bloco que foi armazenado primeiro na MC. LFU (least Frequently Used ): o sistema de controle selecionar o bloco que tem tido menos acessos por parte do processador. Escolha Aleatria: O sistema de controle da memria Cache escolhe aleeatoriamente o bloco que ser removido. Poltica de escrita Como atualizar a memria principal com os blocos de dados que foram alterados na cache? Escrita na memria X escrita na cache para a mesma palavra. Mltiplos processadores conectados a um barramento compartilhado, cada um com sua cache local. Tcnicas Write-through Escreve na cache e na memria Write-back Escreve somente na cache, marcando um bit (tag) na linha que foi modificada. Outro problema ocorre quando um barramento compartilhado por diversos dispositivos com cache local e que acessam uma mesma memria. A alterao em uma palavra mapeada em uma das caches invalida a memria principal e tambm as outras caches. O sistema pode impedir isso e prover coerncia da cache: Observao do barramento com write-through Transparncia do hardware Memria no cachevel Tamanho da linha Quando um bloco de dados recuperado e colocado na cache, no apenas a palavra desejada mas tambm algumas palavras adjacentes so armazenadas. Razo de acerto X tamanho do bloco: Depende do princpio da localidade Em geral: Blocos maiores limitam o nmero de blocos que cabem em uma cache. medida que o bloco se torna maior, a nova palavra fica mais distante da palavra solicitada e, portanto, tem menos probabilidade de ser necessria num futuro prximo.

16

Funes de Mapeamento

Tcnicas para estabelecer uma associao entre as clulas da MP e os blocos da Memria Cache. Mapeamento Direto; Mapeamento Associativo; Mapeamento Associativo por Conjuntos.

Mapeamento Direto A Memria Principal sub-dividida em agrupamentos de clulas que podem ser armazenados diretamente nas clulas da memria Cache. Estabelece um mapeamento direto entre os blocos da MP e as clulas da memria Cache de tal forma que um bloco X estar sempre associado a uma mesma clula na memria cache.

Figura 5:Mapeamento direro Vantagens: Implementao simples e funcionamento simples Desvantagens: Inflexvel em relao ao estabelecimento da associao entre MP e MC , o que pode acarretar em um aumento na taxa de faltas em acessos a MC e degradar o desempenho do sistema.

Mapeamento Associativo

17

Diferente do mapeamento direto o Mapeamento associativo no determina um local fixo na Memria Cache para os blocos da Memoria Principal, os endereos de acesso a MP so interpretados da mesma forma que no mapeamento direto.Porm o nmero de Bits demandados para a determinao do rtulo maior.

Figura 6:Mapeamento associativo Vantagens: Flexibilidade na associao entre MP e MC. Desvantagens: Complexidade de implementao, e maior demanda de processamento.

Mapeamento Associativo por Conjuntos Criada com o objetivo de eliminar os problemas das tcnicas de mapeamento direto e mapeamento associativo. Os blocos da MP so associados a um conjunto de linhas na MC.

18

Figura 7: Mapeamento Associativo por Conjuntos

Vantagem: Possui n posies de armazenamento para blocos com o mesmo ndice. Desvantagem: Controle complexo necessitando de um algortimo de reposio para a substituio de um entre n blocos.

Polticas de AtualizaoComo as escritas feitas pela CPU so inicialmente realizadas na Memria Cache, de alguma forma estas informaes devero ser repassadas para a Memria Principal. Estas formas de repassar so chamadas de polticas de atualizao. Write Through: Este mtodo faz a atualizao da Memria Principal no momento em que foi feita a escrita na Memria Cache. A vantagem deste mtodo de manter a Memria Principal sempre atualizada, s que para cada escrita feita pela CPU, ser consumido o tempo referente ao da Memria Principal. A vantagem da cache ser apenas para as operaes de leitura que por serem muito mais freqentes, ainda ter algum ganho com este mtodo, mas, suponha o seguinte caso: um19

determinado programa possui um looping baseado em uma varivel que alterada a cada iterao, por exemplo, a varivel i . Suponha que devido a um grande nmero de variveis existentes no looping, a varivel i no pode ser mantida em registrador tendo que ter seu contedo transferido para a Memria Cache. Neste tipo de poltica de atualizao, a cada alterao feita na varivel i tambm ser feita uma alterao na Memria Principal levando a uma perda de tempo relativamente grande que poder se agravar mais ainda se este looping for muito repetitivo. O problema mencionado anteriormente no se aplica a Memria Cache de instrues (Icache), j que no se faz escritas nas reas de cdigo. Se por ventura acontecer de haverem escritas, estas sero uma raridade dentre as operaes de leitura. Write Back: Para conseguir aumentar o desempenho nas operaes de escrita e com isso resolver o caso mencionado na tcnica Write Through, esta memria atrasa as atualizaes na Memria Principal, mantendo os dados mais recentes apenas na Memria Cache. A atualizao ser realizada somente no momento em que a respectiva linha tiver que ser substituda por outra, a no ser que ela no tenha sido alterada pela CPU. Um problema resultante desta poltica de atualizao a possibilidade da Memria Principal no ter as mesmas informaes que a Memria Cache. Se houver algum outro dispositivo neste equipamento que solicite informaes Memria Principal, ele corre o risco de receber dados esatualizados. Uma forma de resolver este problema selecionar algumas reas da Memria Principal para serem do tipo no cachevel , isto , seus contedos no so enviados para a Memria Cache. Desta forma podemos usar esta regio de memria para transferncias entre dispositivos que compartilham o uso da Memria Principal, por exemplo, o controlador de DMA (Acesso Direto Memria). Write Once: Esta poltica de atualizao uma mistura dos dois mtodos anteriores e tem como objetivo trazer vantagens tanto nas operaes de leitura como nas operaes de escrita em sistemas com mais de uma CPU. Este um caso em que mais de um dispositivo est acessando a Memria Principal. Para que no acontea o envio de uma informao errada para uma das CPUs, a Memria Cache utiliza do recurso da primeira escrita para avisar as demais caches do sistema que aquele bloco da Memria Principal passar a ser de uso exclusivo dela. A partir deste momento, todas as operaes de escrita e leitura naquele bloco da Memria Principal ficaro restritos a esta cache. Quando alguma outra CPU necessitar das informaes deste bloco, ser feita uma solicitao de atualizao cache portadora do bloco. Esta cache ir ento atualizar a Memria Principal possibilitando que as demais CPUs recebam o dado mais recente.

Especializao de CacheAt o 386, os processadores da famlia x86 eram capazes de processar apenas uma instruo de cada vez. Uma instruo simples podia ser executada em apenas um ciclo de relgio, enquanto instrues mais complexas demoravam vrios ciclos de relgio para serem concludas. Buscando diminuir o tempo mdio de acesso a memria principal, uma memria cache era utilizada para assistir o processador.20

Para melhorar o desempenho do 486, a Intel resolveu usar o pipeline, uma tcnica inicialmente usada em processadores RISC, que consiste em dividir a instruo em vrios estgios distintos e independentes, executando-os paralelamente no processador. Desta maneira, conseguimos que o processador seja capaz de processar simultaneamente, em um nico ciclo de relgio, vrias etapas de diversas instrues diferentes, que normalmente demorariam vrios ciclos para serem processadas. O uso dos 5 estgios de pipeline no 486 no chegava a multiplicar por cinco a performance do processador, na verdade a performance no chegava nem mesmo a dobrar, mas o ganho bem significativo.

Como os estgios so diferentes e bem definidos, podiam haver memrias dedicadas a armazenar informaes especficas para cada estgio. A idia seria definir memrias cache responsveis em auxiliar cada um dos estgios do pipeline que envolvessem acesso a memria. Cache de Instruo (L1i): Responsvel por assistir o estgio de instruction fetch , ou seja, a busca na memria pela prxima instruo a ser executada.

21

Cache de Dados (L1d): Responsvel por assistir o estgio de data fetch , ou seja, a busca na memria pelos operandos necessrios pela instruo atual, se houver.

Figura 8: Funcionamento dos nveis de cache Em sistemas multiprocessados, cada processador possui sua prpria organizao interna, onde compartilham somente a memria principal. J em sistema multicores, cada ncleo de processamento ( core ) possui sua cache de nvel 1 (L1i e L1d), inacessvel por outro ncleo de processamento, e compartilham a cache de nvel 2 e 3 (L2 e L3).

Figura 8: sistema multi-processado composto por dois processadores Na figura acima, est representado um sistema multi-processado composto por dois processadores (representado pelo retngulo cinza claro), onde cada um deles22

possui dois ncleos de processamento (representado pelos retngulos cinza escuro). Em cada ncleo de processamento ( core ), h duas threads em execuo, onde estas compartilham a cache de nvel 1 (L1d e L1i).

Estudo de caso sobre desempenho de cache associativa

Figura 9: Funcionamento dos nveis de cache

Histria do Cache de Memria nos PCsO cache de memria foi usado pela primeira vez em PCs na poca do 386 DX. Apesar deste processador no ter um cache de memria embutido, seu circuito de apoio ou seja, o chipset tinha um controlador de memria cache. Portanto, o cache de memria nessa poca era externo ao processador e era opcional, ou seja, o fabricante da placa-me poderia ou no incluir o cache de memria em suas placas. Se voc tivesse uma placa-me sem cache de memria seu micro seria muito mais lento do que um que tivesse esse circuito. A quantidade de memria cache disponvel tambm variava dependendo do modelo da placa-me e os valores tpicos para essa poca eram de 64 KB e 128 KB. Nessa poca o controlador de memria cache usava uma arquitetura chamada write-through (escrita direta), onde para as operaes de escrita ou seja, quando o processador precisa armazenar dados na memria o controlador de cache de memria atualizava a memria RAM imediatamente. Com o processador 486 DX a Intel incluiu uma pequena quantidade (8 KB) de memria cache dentro do processador. Este cache de memria interno foi23

chamado L1 (nvel 1) ou interno , enquanto que o cache de m emria externo era chamado L2 (nvel 2) ou externo . A quantidade e a existncia do cache de memria externo dependia do modelo da placa-me. As quantidades tpicas para a poca eram de 128 KB e 256 KB. Os ltimos modelos do 486 passaram a usar a arquitetura do cache chamada write back (contra-escrita), que usada at os dias atuais, onde para as operaes de escrita a memria RAM no atualizada imediatamente, o processador armazena os dados no cache de memria e o controlador de memria atualiza a memria RAM apenas quando ocorrer um erro do cache (quando o processador precisa de um determinado dado e ele no est no cache de memria e o processador precisa busc-lo na lenta memria RAM dizemos que houve um erro do cache). Com o primeiro processador Pentium a Intel criou dois circuitos de memria cache separados dentro do processador: um para instrues e outro para dados (na poca cada um tinha 8 KB). Esta arquitetura ainda usada at hoje, e por isso que vemos o cache de memria L1 ser referenciado como 64 KB + 64 KB, por exemplo isto porque existe um cache L1 de 64 KB para instrues e outro cache L1 de 64 KB para dados. Claro que explicaremos mais adiante qual a diferena entre os dois. Na poca o cache de memria L2 continuava localizado na placa-me e sua quantidade dependia do modelo da placa-me. Claro que ter um micro sem cache de memria era algo insano. Valores tpicos para a poca eram 256 KB e 512 KB. No lado da AMD, os processadores K5, K6 e K6-2 usavam esta mesma arquitetura, com o K6-III tendo um terceiro cache de memria (L3, nvel 3). O problema com o cache de memria L2 sendo acessado externamente que ele era acessado a um clock menor do que o processador, pois a partir do processador 486DX2 os processadores passaram a usar um clock interno diferente do seu clock externo. Por exemplo, enquanto um Pentium-200 funcionava internamente a 200 MHz, ele acessava seu cache de memria L2 a 66 MHz. Com a introduo da arquitetura P6 da Intel o cache de memria foi movido da placa-me para dentro do processador o que permitiu ao processador acess-lo com seu clock interno , exceto no Pentium II, onde o cache de memria no estava localizado dentro do processador, mas na mesma placa de circuito impresso onde o processador estava soldado (esta placa de circuito impresso estava localizada dentro de um cartucho), trabalhando com a metade do clock interno do processador, e no Celeron-266 e Celeron-300, que no tinham cache de memria (e por isso estes so os processadores com o pior desempenho na histria dos PCs). Esta mesma arquitetura usada at hoje: tanto o cache de memria L1 quanto o cache de memria L2 esto localizados dentro do processador sendo acessados com o clock interno do processador. Dessa forma, quantidade de memria cache que voc pode ter em seu micro depender do modelo do seu processador; no existe uma maneira de aumentar a quantidade de memria cache sem trocar o processador.

24