Escolar Documentos
Profissional Documentos
Cultura Documentos
Abstract—O conceito de hierarquia de memória, importante avaliações são apresentados na seção 4, enquanto a seção 5
na área de arquitetura de computadores, fornece uma visão do conclui o trabalho.
custo, desempenho e capacidade das memórias. A partir disso,
este artigo busca estudar a hierarquia de memória por meio II. T RABALHOS C ORRELATOS
de simulações, feitas no simulador Amnesia, que comprovem os
benefı́cios da exploração da localidade temporal e espacial. Para Tapia, Elliott e Cockburn [4] abordam um estudo acerca
isso, foram definidos cenários de testes envolvendo alterações nas dos benefı́cios potenciais de desempenho de uma memória
memórias cache e virtual, os quais mostraram resultados que cache capaz de ajustar dinamicamente o seu comprimento
impactaram no desempenho do sistema de memória. de linha. Para isso, os autores utilizaram um simulador de
Index Terms—hierarquia de memória, memória cache,
memória virtual, princı́pio da localidade, Amnesia
memória cache de segundo nı́vel (L2) que, por meio de uma
técnica de lookahead, permite a concatenação de linhas de
cache de tamanho fixo a fim de formar uma superlinha, a
I. I NTRODUÇ ÃO
qual pode ter seu tamanho dinamicamente ajustado com base
O estudo da hierarquia de memória possui grande im- na localidade espacial da aplicação em execução. A partir da
portância na área de arquitetura de computadores, tendo em análise de resultados, Tapia, Elliott e Cockburn observaram
vista que impacta fortemente no desempenho de um computa- que a implementação de uma memória cache com o tamanho
dor. Esse conceito pode ser definido como uma classificação de de linha dinamicamente adaptável contribui efetivamente para
tipos de memória em função do tamanho e da velocidade, e é a redução do tempo de execução e melhoria significativa das
representado por uma pirâmide, que possui os seguintes com- taxas de miss.
ponentes: banco de registradores, memórias cache, memória Assim como os autores citados anteriormente, Veidenbaum,
primária e memória secundária. No presente artigo, o foco Tang, Gupta et.al [5] também realizaram um estudo baseado
será nas memórias cache e na memória virtual, que é uma no ajuste dinâmico do tamanho da linha. Eles apresentam uma
técnica para realizar acessos da memória principal à memória memória cache de primeiro nı́vel (L1) em que o tamanho da
secundária de maneira eficiente. As memórias cache possuem linha é continuamente ajustado de acordo com o acesso da
alta velocidade de acesso, alto custo, mas baixa capacidade, e, aplicação, portanto, ela faz uso da adaptabilidade automática
devido a essas caracterı́sticas, utilizá-las de maneira produtiva e dinâmica de hardware. Para isso, foi desenvolvido um
traz grandes benefı́cios ao desempenho de um computador. algoritmo de hardware que é baseado no monitoramento do
Isso pode ser realizado por meio da exploração da localidade acesso a uma determinada linha e na alteração do tamanho
temporal e da localidade espacial, que compõem o princı́pio da linha. Os resultados desse estudo mostraram a viabilidade
da localidade. Para a localidade temporal, se um dado é da abordagem adaptativa, já que ela pode melhorar a taxa de
referenciado, ele tende a ser referenciado novamente. E, para miss, assim como reduzir o tráfego de memória, permitindo
a localidade espacial, se um dado é referenciado, dados cujos uma aproximação a uma configuração ideal de hardware e de
endereços são próximos a ele tendem a ser referenciados em arquitetura.
breve [3]. Desse modo, o objetivo deste estudo é estudar a Das e Dey [1] propõem uma arquitetura de cache intervalada
hierarquia de memória a partir de simulações que comprovem de baixa ordem tolerante à falhas. A estrutura foi imple-
os benefı́cios da exploração da localidade temporal e espacial. mentada em FPGA (campo de array de portas programáveis)
O restante do artigo está organizado da seguinte maneira: na qual uma ou mais linhas de cache defeituosas podem
A seção 2 apresenta trabalhos relacionados ao tema. A seção ser facilmente contornadas na plataforma reconfigurável com
3 mostra a metodologia utilizada no estudo. Os resultados e realocação do espaço de endereços dentre as linhas de cache
não defeituosas. Com tal esquema tolerante à falhas, somente principal, no algoritmo de substituição de tabela de páginas,
as linhas de cache defeituosas são removidas do espaço de no tamanho da TLB (Translation Lookaside Buffer) e no
endereço ao invés de um bloco de cache como um todo. algoritmo de substituição. O tamanho da memória principal
Esse método também inclui a vantagem da velocidade de correspondeu a 4B, 16B ou 32B, o algoritmo de substituição
intercalação de baixa ordem e traz a propriedade de tolerância de tabela de páginas foi LRU, FIFO ou NRU (Not Recently
à falhas dentro da memória cache por meio da redução Used), o tamanho da TLB variou entre 4B ou 6B, e o algoritmo
insignificante do espaço de endereços da mesma. A estrutura de substituição foi LRU ou FIFO, novamente. Para cada
proposta é vantajosa sobre as arquiteturas de cache existentes variação de cada parâmetro, tanto na memória cache quanto
até então ao garantir uma transferência de dados confiável na memória virtual, foi analisado o impacto no desempenho
e eficiente. Além disso, tal memória projetada é útil para do sistema de memória.
trabalhos adjacentes ao processamento de imagens.
IV. AVALIAÇ ÃO DOS R ESULTADOS
Em R. Hassan et.al [2] cria-se uma metodologia de gerador
automático de traces para simuladores de cache. Os dados para A. Memória Cache
o trace são criados a partir de uma cadeia de Markov de dois A memória cache é uma memória pequena e rápida que
estados. O primeiro estado da cadeia gera novos endereços se encontra próxima ao processador e é responsável por
enquanto o segundo gera endereços baseado em um histórico armazenar cópias de posições da memória principal. Por ser
de referências anteriores. O objetivo do projeto é a partir de bem menor que a memória principal, não consegue armazenar
uma entrada de dados a criação em tempo real de endereços, todos os endereços da mesma, e com isso, é preciso tomar de-
eliminando assim gastos com grandes arquivos de trace, mas cisões arquiteturais que visam um melhor mapeamento dessas
mantendo as caracterı́sticas de localidade espacial e temporal posições, visando sempre um equilı́brio entre as localidades
de um programa orgânico. A partir de testes utilizando bench- em prol de obter um melhor desempenho. Tais decisões
marks de aplicações tı́picas de sistemas embarcados pode-se arquiteturais envolvem fatores como, por exemplo, o modo de
validar a qualidade do modelo para a predição das melhores mapeamento (direto, conjunto associativo ou completamente
caracterı́sticas de cache para o objetivo em mente. associativo) e a polı́tica de substituição (LRU ou FIFO).
Os trabalhos apresentados anteriormente, assim como o Dessa forma, foram realizados alguns testes em busca de
presente artigo, também exploram jeitos de melhorar o de- analisar os efeitos que a variação no tamanho do bloco, na
sempenho de computadores, entretanto, é realizado um apro- associatividade e no algoritmo de substituição teriam no total
fundamento mais complexo, ao contrário deste estudo, que time e no miss ratio em memórias de tamanhos de 16B, 32B
se caracteriza como um trabalho acadêmico. Além disso, este e 64B. O total time consiste no tempo total para se obter um
trabalho foca mais na exploração da localidade temporal e dado solicitado e o miss ratio na proporção dos acessos à
espacial, ao invés de explorar uma arquitetura especı́fica, o memória não encontrados no nı́vel superior [3]. A seguir os
que é feito pelos artigos mostrados. resultados são mostrados, por meio de gráficos, e discutidos.
1) Miss ratio vs. Associatividade - Linhas de 1B, 2B e
III. M ETODOLOGIA
4B: A fim de explorar a relação entre o miss ratio e a
Para realizar as simulações que comprovem os benefı́cios associatividade com base na variação do tamanho da linha,
da exploração da localidade temporal e espacial foi utilizado para memórias com tamanho de 16B, 32B e 64B, foram
o simulador Amnesia, que é um simulador de hierarquia de construı́dos os gráficos apresentados nas figuras 1, 2 e 3.
memória e de sistemas computacionais com fins didáticos. Ele O primeiro gráfico apresenta os resultados obtidos quando
permite simular o comportamento de registradores em um pro- o tamanho de linha é igual a 1B, o segundo gráfico para o
cessador, memórias cache, memória principal e memória vir- tamanho de linha igual a 2B e o terceiro a 4B.
tual paginada. Para este trabalho, foram realizadas simulações
referentes às memórias cache e à memória virtual e, em ambos
os casos, foi criado e utilizado um arquivo trace com 200
entradas, contendo instruções de leitura e escrita e um máximo
de 42 endereços.
No caso da memória cache, as modificações realizadas
concentraram-se apenas na cache de dados. Foram definidos
diferentes cenários de teste, com variação nos seguintes
parâmetros: tamanho da linha, tamanho da memória, nı́vel
de associatividade e algoritmo de substituição. O tamanho da
linha foi equivalente a 1B, 2B ou 4B, o tamanho da memória
equivalente a 16B, 32B ou 64B, a associatividade igual a 1,
2 ou 4 vias e, por fim, os algoritmos de substituição foram o
LRU (Least Recently Used) ou o FIFO (First In First Out). Fig. 1. Miss ratio vs. Associatividade - Linha de 1B
Para a memória virtual também foram definidos diferentes
cenários de teste. Houve variação no tamanho da memória
Fig. 2. Miss ratio vs. Associatividade - Linha de 2B
Fig. 4. Total time vs. Associatividade - Linha de 1B
A partir da análise dos resultados obtidos foi possı́vel Ao analisá-los e compará-los, percebe-se que, independente-
observar que para todos os tamanhos de linha e quantidade mente da associatividade, há o mesmo comportamento nos três
de vias testadas, a porcentagem de cache miss é inversamente gráficos: há uma queda no total time ao se aumentar o tamanho
proporcional ao tamanho da memória. Isso ocorre uma vez que da memória. Isso acontece devido à menor quantidade de
quanto maior o tamanho da memória, mais endereços estarão acessos à memória principal, já que há mais espaço disponı́vel
disponı́veis para armazenar dados e, consequentemente, serão para armazernar cópias dos endereços dela. Dessa forma, a
necessárias menos substituições e menos buscas em memória memória de 16B resultou no maior total time e a memória de
principal, minimizando a chance de um dado procurado não 64B apresentou o menor total time dentre as três memórias
estar disponı́vel na cache. Já a respeito da associatividade, analisadas.
foi possı́vel observar que em alguns casos o miss ratio não 3) Miss ratio e Total time vs. Tamanho da linha: Para
apresentou resultado decrescente conforme o aumento do o estudo dos parâmetros desta seção, dois gráficos foram
número de vias. Isso acontece devido à exploração desbal- elaborados (Figuras 7 e 8), ambos relacionados a uma memória
anceada de uma localidade em detrimento da outra. Portanto, cache do tipo 4-way databind (4 vias de associatividade) que
constata-se que o uso moderado de mais vias contribui para o utiliza a polı́tica de substituição LRU devido a ela ter se
balanceamento das localidades temporal e espacial.
2) Total time vs. Associatividade - Linhas de 1B, 2B e 4B:
Nesta análise, foram construı́dos três gráficos (Figuras 4, 5
e 6), cada um deles representando o total time em função
da associatividade para memórias de 16B, 32B e 64B e com
variações no tamanho da linha: no primeiro gráfico, há um
tamanho de linha de 1B, no segundo de 2B e no terceiro de
3B.
B. Memória Virtual
As figuras 9 e 10 são gráficos que representam os resultados
do miss ratio e do total time em função do tamanho da cache V. C ONCLUS ÕES
TLB utilizada, respectivamente. A reta laranja representa o As simulações realizadas mostraram diferentes formas de
resultado dos testes utilizando o algoritmo FIFO, e a reta explorar o princı́pio da localidade que resultem em benefı́cios
azul, utilizando o algoritmo LRU. É possı́vel notar que em no desempenho do sistema de memória de um computador.
Fig. 10. Total time vs. Tamanho da TLB