Você está na página 1de 5

Estudo Prático da Hierarquia de Memória

Alice Cabral Ana Carolina Manso


Ciência da Computação Ciência da Computação
Pontifı́cia Universidade Católica de Minas Gerais Pontifı́cia Universidade Católica de Minas Gerais
Belo Horizonte, Brasil Belo Horizonte, Brasil
alice.cabral@sga.pucminas.br acmsilvério@sga.pucminas.br

João Victor Amorim Juliana Silvestre


Ciência da Computação Ciência da Computação
Pontifı́cia Universidade Católica de Minas Gerais Pontifı́cia Universidade Católica de Minas Gerais
Belo Horizonte, Brasil Belo Horizonte, Brasil
joao.vieira.1275044@sga.pucminas.br juliana.silvestresilva@hotmail.com

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

Fig. 3. Miss ratio vs. Associatividade - Linha de 4B


Fig. 5. Total time vs. Associatividade - Linha de 2B

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.

Fig. 6. Total time vs. Associatividade - Linha de 4B


mostrado mais eficiente que a polı́tica FIFO na maioria dos uma cache de apenas 4B, o resultado do FIFO foi, aprox-
testes feitos. Além disso, para cada gráfico, é feita uma análise imadamente, 10% melhor que o LRU, o qual, geralmente
para memórias de tamanho de 16B, 32B e 64B, representadas explora melhor a localidade temporal. Isso pode ter acontecido
pelas linhas de cores azul, laranja e cinza, respectivamente. pela possibilidade de o arquivo de trace utilizado conter
caracterı́sticas que levaram ao melhor resultado do FIFO,
visto que no teste seguinte, utilizando uma TLB de 16B, os
resultados foram os mesmos. A partir da figura 10, vê-se a
ligação lógica entre o miss ratio e total time, já que há uma
grande semelhança entre ambos os gráficos.
Na tabela I, há o resultado das taxas de page fault (taxa
de falha da memória virtual) para cada um dos algoritmos
utilizados nas simulações. É importante dar atenção à diferença
entre o algoritmo LRU e o NRU (Not Recently Used). O
algoritmo LRU contabiliza, para cada uma das páginas, qual
foi a última vez que esta foi utilizada, para, quando necessário,
Fig. 7. Miss ratio vs. Tamanho da linha remover a que estiver por último nessa ”fila ordenada de
páginas”. Já o NRU contabiliza apenas se a página foi referen-
ciada e teve algum valor alterado em dado perı́odo de tempo.
Quando a troca de páginas faz-se necessária, o NRU as divide
em 4 classes (0 - não referenciada, não modificada; I - não
referenciada, modificada; II - referenciada, não modificada; III
- referenciada, modificada) e escolhe, aleatoriamente, uma das
páginas da classe de número mais baixo que não esteja vazia.
Em relação à troca de páginas, o NRU teve o menor miss ratio,
seguido pelo LRU e, por último, o FIFO. Ambos os algoritmos
NRU e LRU possuem uma melhor exploração do princı́pio da
localidade, principalmente da localidade a temporal, do que o
FIFO.
Fig. 8. Total time vs. Tamanho da linha

O primeiro gráfico (Figura 7) diz respeito ao miss ratio


em função do tamanho da linha. Com ele, é possı́vel inferir
que, em caches maiores, como as de 32B e 64B, quanto
maior o tamanho da linha, menor o miss ratio, devido à
melhor exploração da localidade espacial. Contudo, em caches
menores (16B), é preciso ter um cuidado maior com o bal-
anceamento entre localidade temporal e espacial, pois com
o aumento do tamanho das linhas, há uma diminuição na
quantidade de linhas da memória e, consequentemente, há
mais competição no mapeamento, levando ao aumento do miss
ratio. Nesse contexto, a localidade temporal é prejudicada em
detrimento da localidade espacial, o que gera uma queda no Fig. 9. Miss ratio vs. Tamanho da TLB
desempenho.
Já o segundo gráfico (Figura 8) representa o total time em
função do tamanho da linha, e segue a mesma inclinação TABLE I
do primeiro, devido a relação diretamente proporcional entre TAXA DE PAGE FAULT PARA OS ALGORITMOS UTILIZADOS
cache miss e total time (quanto menos cache miss propor- Algoritmo Taxa de page fault
cionado pelo correto balanceamento do tamanho das linhas, LRU 0,492
há menos acessos à memória principal e consequentemente FIFO 0,541
menos tempo é gasto para buscar um dado). NRU 0,28

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

Notou-se que quanto maior a capacidade de uma memória


cache, menor a taxa de miss e, consequentemente, menor o
total time. Também foi possı́vel concluir que o uso moderado
de mais vias contribui para o balanceamento das localidades
temporal e espacial, portanto, uma arquitetura completamente
associativa para a memória cache não é eficiente. Junto a isso,
a polı́tica de substituição LRU explora melhor o princı́pio
da localidade, principalmente a localidade temporal, do que
a polı́tica FIFO. Essas implementações são válidas tendo em
vista uma maior eficiência da arquitetura de um computador.
No que tange ao simulador Amnesia, é notável que este con-
tribui para uma melhor compreensão da hierarquia de memória
e, consequentemente, para um estudo mais estruturado da
arquitetura de computadores.
R EFERENCES
[1] Somak Das and Sowvik Dey. “Exploiting fault tolerance
within cache memory structures”. In: 2014 International
Conference on High Performance Computing and Ap-
plications (ICHPCA). 2014, pp. 1–6. DOI: 10 . 1109 /
ICHPCA.2014.7045291.
[2] Rahman Hassan et al. “Synthetic Trace-Driven Simula-
tion of Cache Memory”. In: 21st International Confer-
ence on Advanced Information Networking and Applica-
tions Workshops (AINAW’07). Vol. 1. 2007, pp. 764–771.
DOI : 10.1109/AINAW.2007.345.
[3] David A. Petterson and John L. Henessy. Organização
e Projeto de Computadores: A Interface Hard-
ware/Software. 4ª edição. ISBN 978-85-352-1521-2. El-
sevier Editora Ltda., 2005.
[4] J.H. Tapia, D.G. Elliott, and B.F. Cockburn. “Measuring
the potential benefits of a dynamically adaptive cache
line size”. In: Canadian Conference on Electrical and
Computer Engineering, 2005. 2005, pp. 1992–1995. DOI:
10.1109/CCECE.2005.1557375.
[5] Alexander V. Veidenbaum et al. “Adapting Cache Line
Size to Application Behavior”. In: Proceedings of the
13th International Conference on Supercomputing. ICS
’99. Rhodes, Greece: Association for Computing Ma-
chinery, 1999, pp. 145–154. ISBN: 158113164X. DOI:
10.1145/305138.305188. URL: https://doi.org/10.1145/
305138.305188.

Você também pode gostar