Professional Documents
Culture Documents
Introduo
Os programadores sempre ambicionaram ter quantidades ilimitadas de memria rpida. Contudo, as memrias rpidas so de alto custo e, normalmente, de pequena capacidade tambm. Uma soluo a organizao do sistema de memria em uma hierarquia, com diversos nveis, onde memrias cada vez mais rpidas, menores e com um custo por byte maior, so colocadas nos nveis mais altos.
Microarquiteturas de Alto Desempenho
Introduo
O objetivo fornecer um sistema de memria com um custo prximo daquele do nvel mais baixo da hierarquia, e velocidade prxima daquela do nvel mais alto. Os nveis de hierarquia mais altos normalmente so um subconjunto dos nveis mais baixos. medida que a informao vai sendo utilizada, ela vai sendo copiada para os nveis mais altos da hierarquia de memria.
Microarquiteturas de Alto Desempenho
Hierarquia de Memria
TEMPO DE ACESSO/ CAPACIDADE
+
CUSTO
Microarquiteturas de Alto Desempenho
MEMRIA SECUNDRIA
Hierarquia de Memria
0,3 ns 3 ns 30 ns 3 ms
B
REG.
KB MB GB
PGINAS S.O
Hierarquia de Memria
Note que a cada nvel que se sobe na hierarquia, endereos de uma memria maior so mapeados para uma memria menor. Junto com esse mapeamento est associadoa uma funo de proteo, evitando que dados de um usurio sejam modificados por outro. A importncia da hierarquia de memria aumentou nos ltimos anos devido ao aumento no desempenho dos processadores.
Microarquiteturas de Alto Desempenho
Processadores Memrias
1985
1990
2000
2005
Conceitos de Localidade
O funcionamento da hierarquia de memria est fundamentado em duas caractersticas encontradas nos programas. Existe uma grande probabilidade de o processador executar os mesmos trechos de cdigo e utilizar repetidamente dados prximos A essa qualidade dos programas denominamos: Localidade Temporal Localidade Espacial
Microarquiteturas de Alto Desempenho
Conceitos de Localidade
Localidade temporal: posies de memria, uma vez referenciadas (lidas ou escritas) , tendem a ser referenciadas novamente dentro de um curto espao de tempo.
Usualmente encontrada em laos de instrues e acessos a pilhas de dados e variveis
Localidade espacial: se uma posio de memria referenciada, posies de memria cujos endereos sejam prximos da primeira tendem a ser logo referenciados.
A informao manipulada em blocos no sistema de hierarquia de memria para fazer uso da localidade espacial.
Microarquiteturas de Alto Desempenho
Hierarquia de Memria
No incio dos tempos o nico nvel que possui informao vlida o mais inferior de toda a hierarquia, composto de dispositivos de armazenamento no volteis. Na medida em que a informao vai sendo utilizada, ela copiada para os nveis mais altos da hierarquia. Quando fazemos um acesso a um nvel da hierarquia e encontramos a informao desejada, dizemos que houve um acerto, em caso contrrio dizemos que houve uma falha. Microarquiteturas de Alto Desempenho
Hierarquia de Memria
Acessos que resultam em acertos nos nveis mais altos da hierarquia podem ser processados mais rapidamente. Os acessos que geram falhas, obrigando a buscar a informao nos nveis mais baixos da hierarquia, levam mais tempo para serem atendidos. Para um dado nvel da hierarquia possa ser considerado eficiente desejvel que o nmero de acertos seja bem maior do que o nmero de falhas.
Microarquiteturas de Alto Desempenho
Hierarquia de Memria
Define-se como taxa de acertos (h) a relao entre o nmero de acertos e o nmero total de acessos para um dado nvel da hierarquia de memria. h = nmero acertos / total de acessos O total de acessos inclui tanto os acessos de leitura como os de escrita.
Hierarquia de Memria
O tempo de acesso com acerto o tempo necessrio para buscar a informao em um dado nvel de hierarquia, que inclui o tempo necessrio para determinar se o acesso informao vai gerar um acerto ou uma falha. A penalidade por falha ou tempo acesso com falha o tempo necessrio para buscar a informao nos nveis inferiores da hierarquia, armazen-la no nvel atual e envi-la para o nvel superior.
Microarquiteturas de Alto Desempenho
Taxa de Acerto
Taxa de Acerto h: probabilidade de que uma posio referenciada seja encontrada em dado nvel da hieraquia de memria. Ta Tf Tma = tempo de acesso com acerto = tempo de acesso com falha = tempo mdio de acesso
Se
Componentes da Hierarquia
Os elementos mais importantes da uma hierarquia de memria so: Registradores Memria Cache Memria Principal Memria Secundria
Registradores
Os registradores esto localizados no ncleo do processador. So caracterizados por um tempo de acesso menor que um ciclo de relgio e sua capacidade da ordem de centenas de bytes. O controle de qual informao deve estar nos registradores feita explicitamente pelo compilador, que determina quais variveis sero colocadas no registrador. o nico nvel da hierarquia que permite movimentaes iguais apenas ao tamanho da informao desejada.
Microarquiteturas de Alto Desempenho
Memria Cache
Processador Cache
Memria Principal
Memria Cache: Elemento de memria intermedirio entre o Processador e a Memria Principal
Microarquiteturas de Alto Desempenho
Funcionamento da Cache
O processador inicia a busca a instruo ou dados na memria cache. Se os dados ou a instruo estiverem na cache (denomina-se acerto), a informao transferida para o processador. Se os dados ou a instruo no estiverem na memria cache (chama-se falha), ento o processador aguarda, enquanto a instruo/dados desejados so transferidos da memria principal para a cache e tambm para o processador.
Microarquiteturas de Alto Desempenho
Funcionamento da Cache
Durante a busca da palavra que est faltando na cache, trazido um bloco (ou linha) inteiro da memria principal, ao invs de apenas uma palavra. O objetivo minimizar a taxa de falhas nos prximos acessos, seguindo o princpio da localidade espacial. O tamanho de um bloco um parmetro de projeto na memrias caches, tamanhos usuais so 32, 64 e 128 bytes.
Funcionamento da Cache
necessrio guardar o endereo do bloco, ou parte dele, para permitir a identificao dos blocos que esto armazenados na cache. No momento em que for feita uma leitura de dados ou instruo pelo processador, os endereos armazenados na cache so comparados com o endereo fornecido pelo processador, para saber se houve um acerto ou falha. Caso haja acerto, a informao armazenada na memria cache fornecida para o processador, evitando a ida memria principal.
Microarquiteturas de Alto Desempenho
Memria Cache
As clulas de memria da cache so elaboradas com tecnologia que permite um tempo de acesso menor que o memria principal. Normalmente so clulas de memria esttica (SRAM), com menor capacidade, porm maior custo e maior velocidade. Associado a essas memrias est um controlador, normalmente uma mquina de estados, que faz o controle da transferncia dos blocos de/para a memria principal.
Microarquiteturas de Alto Desempenho
Memria Principal
A memria principal constituda por clulas de memria dinmica (DRAM). As memrias DRAM tem grande capacidade de armazenamento, mas so mais lentas que as memrias estticas. As memrias DRAM possuem tambm tempos de acesso distintos para leitura e escrita, e necessitam de uma lgica de restaurao (refresh), quer embutida ou fora da pastilha, que afetam o tempo mdio de acesso.
Microarquiteturas de Alto Desempenho
Memria Secundria
A memria secundria o ltimo nvel da hierarquia de memria. composta pelos dispositivos de armazenamento de massa, normalmente discos rgidos, de grande capacidade e menor custo por byte armazenado. Os programas e arquivos so armazenados integralmente na memria secundria, que so dispositivos de memria no voltil.
Memria Virtual
O controle de qual informao deve permanecer na memria principal ou na memria secundria feito pela Memria Virtual. A memria virtual um conjunto de hardware e de rotinas do sistema operacional. Alm do controle da hierarquia entre a memria principal e a memria secundria, ela realiza a proteo, evitando que um programa modifique informaes que pertenam a algum outro.
Microarquiteturas de Alto Desempenho
Memria Virtual
Finalmente, a memria virtual tambm faz a translao de endereos virtuais em endereos reais, j que os programas normalmente enxergam um espao de endereamento maior que a memria fsica. As translaes mais freqentes ficam armazenadas em uma pequena memria associativa chamada TLB. O mtodo mais usual utilizado pela memria virtual a diviso do espao de endereamento em pginas de tamanho fixo, que so a unidade de transferncia entre o disco e a memria principal.
Microarquiteturas de Alto Desempenho
Mapeamento direto
Cada bloco da memria principal s pode ser mapeado em uma nica linha da memria cache. Normalmente utilizam-se os bits menos significativos do endereo do bloco para definir qual ser esta linha.
Mapeamento Direto
Caractersticas
Demorado para descobrir se um bloco reside ou no na cache; A substituio de uma linha s necessria quando a cache est totalmente cheia; O endereo do bloco deve ser totalmente armazenado junto com a linha;
Microarquiteturas de Alto Desempenho
Caractersticas
Rpido para descobrir se um bloco est presente na cache; Pode ocorrer que dois blocos freqentemente referenciados estejam mapeados na mesma linha da cache; Apenas parte do endereo precisa ser armazenada precisa ser armazenada junto com o bloco na cache.
Mapeamento Direto
Caractersticas
Reduz as chances de conflito. rpido para descobrir se um bloco est armazenado na cache.
Microarquiteturas de Alto Desempenho
SIM
Atualiza a TLB
Page Miss
NO
Busca Endereo na Tabela de Pginas na Memria Atualiza a Tabela de Pginas
Page Fault
SIM
NO
Microarquiteturas de Alto Desempenho
Algoritmos de Substituio
Algoritmo de Substituio Aleatrio (randmico)
Um bloco escolhido aleatoriamente para ser substitudo. uma poltica de fcil implementao, mas gera problemas de desempenho em esquemas totalmente associativos.
Write-through
As falhas so mais simples de tratar, pois nunca h necessidade de escreverse todo o bloco no nvel mais inferior da hierarquia, apenas a palavra sendo atualizada. Essa tcnica mais simples de se implementar. Quando existe mais de uma cache no mesmo barramento, permite a implementao fcil de tcnicas de snooping para a manuteno da coerncia entre as caches.
Microarquiteturas de Alto Desempenho
Write-back
As palavras podem ser escritas na velocidade da cache, ao invs da memria principal; Vrias escritas para o mesmo bloco so atualizadas em uma nica operao no nvel mais inferior da hierarquia; Uso de transferncias em rajada para atualizao do bloco no nvel de hierarquia inferior; Quando houver mais de uma cache no barramento, h a necessidade de se adotar protocolos mais complexos para a manuteno da coerncia das caches.
Microarquiteturas de Alto Desempenho
Write-back
Esses protocolos visam forar a colocao no barramento de informaes sobre operaes de escrita sempre que necessrio, pois a memria principal nem sempre possui uma cpia vlida do bloco que est sendo solicitado. Esses protocolos definem a responsabilidade sobre quem deve fornecer um bloco de dados quando uma operao de leitura com falhas ocorre. No caso de memria virtual, o algoritmo utilizado para atualizao das pginas em disco sempre o write-back.
Microarquiteturas de Alto Desempenho
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. De uso difcil em ambientes com mltiplos processadores.
Microarquiteturas de Alto Desempenho
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. Mais simples de implementar e usar em ambientes com mltiplos processadores.
Dados
Memria Principal
Microarquiteturas de Alto Desempenho
Cache Multinvel
Processador
Cache de Instrues
Cache de Dados
Cache Unificada
Memria Principal
Microarquiteturas de Alto Desempenho
Cache Multinvel
Processador
Cache Unificada
Cache Unificada
Memria Principal
Microarquiteturas de Alto Desempenho
Cache Multicore
Processador Processador
Cache de Instrues
Cache de Dados
Cache de Instrues
Cache de Dados
CACHE NVEL 1
Cache Unificada
Cache Unificada
CACHE NVEL 2
Memria Principal
Microarquiteturas de Alto Desempenho
Cache Multicore
Processador Processador
Cache de Instrues
Cache de Dados
Cache de Instrues
Cache de Dados
CACHE NVEL 1
CACHE
Cache Unificada
NVEL 2
Memria Principal
Microarquiteturas de Alto Desempenho
Cache Multinvel
Manter a cache de nvel 1 pequena e muito rpida, acompanhando o relgio da CPU. Utilizar um cache de nvel 2 grande, mas no to rpida, mas capaz de reduzir a penalidade das falhas.
Tm = T1hit h1 + ( 1 h1 ) (T2hit h2 + ( 1 h2 ) T2miss )
Normalmente utiliza-se a cache de nvel 1 separada para dados e instrues e a cache de nvel 2 unificada.
Microarquiteturas de Alto Desempenho
Os Trs Cs
Falhas Compulsrias: So faltas no acesso cache, causadas pelo primeiro acesso que nunca esteve na cache. Falhas devido Capacidade: So faltas que ocorrem porque a cache no pode armazenar todos os blocos necessrios execuo de um programa. Falhas por Conflitos ou Coliso: So faltas que ocorrem no acesso cache quando diversos blocos competem pelo mesmo conjunto. No ocorrem em caches totalmente associativas.
Microarquiteturas de Alto Desempenho
Comparao de Caches
PROCESSADOR Intel CELERON Intel PENTIUM III TAMANHO DA CACHE L1 (12 K op + 16KB) (int.) L2 256 KB (int.) L1 (16 KB + 16KB) L2 256 KB (int.) ou 512 KB (ext.) L1 (12 K op + 8KB) (int.) L2 512 KB (int.) L1 (64 KB + 64 KB) (int.) L2 64 KB (int.) (excl.) L1 (64 KB + 64 KB) (int.) L2 512 KB (int.)
Microarquiteturas de Alto Desempenho
Mem. Virtual 4K 16K 10 100 700K 6M 16M 64G Totalmente Assoc. LRU WB
Exerccios
Utilize o simulador sim-cache, da verso 3.0 do SimpleScalar. Escolha um programa inteiro e outro de ponto flutuante da sute SPEC95. Faa uma variao da associatividade entre 1 e 8, e calcule a taxa de acerto para caches com capacidades de 16, 32, 64 e 128 Kbytes. Considere um tamanho de bloco com 16 bytes. Apresente um grfico e comentrios sobre os dados obtidos.
Referncias
2. Organizao e Projeto de Computadores A Interface Hardware/Software David A. Patterson e John L. Henessy, Editora LTC, 2ed. 3. Cache Memories Alan Jay Smith, ACM Computing Surveys, Volume 14 Issue 3, September 1982