Você está na página 1de 4

Expansão da memória cache em

processadores Multi-Core

Arthur Gabriel Pereira Gustavo Borges Martins Otávio Augusto Martins


Instituto de Ciências Exatas e Informática Instituto de Ciências Exatas e Informática Instituto de Ciências Exatas e Informática
Pontifícia Universidade Católica Pontifícia Universidade Católica Pontifícia Universidade Católica
PUC Minas – Campus São Gabriel PUC Minas – Campus São Gabriel PUC Minas – Campus São Gabriel
Belo Horizonte, MG Belo Horizonte, MG Belo Horizonte, MG
arthurgabrielpereira97@gmail.com gustavo.borges.m@outlook.com otavio-inter@hotmail.com

Resumo — No firmamento dos processadores existe um visando atender as necessidades e manter o aumento de
princípio que domina sobre sua evolução, a Lei de Moore. Ela desempenho estabelecido pela Lei de Moore.
proferiu, por décadas, os passos da indústria dos processadores,
contudo o limite físico dos materiais seria alcançado rapidamente A performance nas aplicações computacionais tem sido
com o passar dos tempos não permitindo com que eles procurada ao longo das décadas, onde diversos procedimentos
continuassem a evoluir. arquiteturais são aplicados, como pipeline, superescalaridade e
Os processadores Multi-Core assim surgem, da necessidade de multithreading, para se aproveitar do paralelismo de execução
aumento de desempenho nas máquinas, à medida que as aplicações das aplicações e assim reduzir o tempo de execução em
computacionais se tornaram cada vez mais complexas. Apesar máquinas pessoais ou em servidores. O suporte a múltiplas
disso, mesmo com o aumento do paralelismo de instruções e o threads é uma alternativa de exploração de paralelismo, não
aumento controlado da frequência para evitar danos físicos ao mais no nível de instruções mas no nível de fluxo de instruções
chip, as mudanças não se mostraram suficientes para a demanda (threads), gerando assim, um aumento na vazão de
de dados e de instruções necessárias para manter um bom processamento de threads [1].
desempenho, prevalecendo novamente a Lei de Moore. Com essa
contínua necessidade de desempenho computacional e mesmo com
limitações, as memórias cache vêm sendo altamente usadas e
adotadas em amplos tipos de projetos arquiteturais de
computadores, e os atuais processadores disponíveis no mercado
apontam na direção do uso de memórias cache. No entanto, não é
certo os ganhos e custos desses modelos memória cache. Assim,
nota-se a importância de estudos que abordem os variados
aspectos da expansão de memória cache em processadores com
múltiplos núcleos. Concluiu-se que a ampliação da memória cache
L1 levou a uma considerável redução no número de cache-miss em Figura 1. Representação de suporte a múltiplas threads
relação à cache de dados privada. O aumento da quantidade de
cores das arquiteturas propostas em paralelo ao aumento de As memórias cache para processadores multi-core devem
processos da aplicação trouxe uma piora aos tempos de execução, acompanhar o ritmo de inovações onde os novos projetos devem
pois a taxa de erros da cache L1 privada dos núcleos se propagou planejar o acesso a dados de múltiplas threads ao invés de
para os outros, e o compartilhamento da cache L2 entre os núcleos apenas uma thread como acontecia nos processadores
também aumentou, trazendo assim mais concorrência aos superescalares. Assim, para ter alta vazão de dados para os
recursos presentes na memória. processadores com múltiplos cores de processamento, é preciso
A intenção desse artigo é avaliar os variados tamanhos da que a arquitetura de memória cache dê suporte ao fluxo de
memória cache L1, considerando o seu limite de crescimento em dados, onde a organização da memória cache possa assegurar o
processadores multi-core, através de benchmarks. menor número de cache misses, além de um curto tempo para
Keywords — Processadores Multi-Core, performance, memória leitura e escrita de dados e, em caso de falta de dados, o dever
cache, multithreading. de serem buscados e disponibilizados rapidamente, evitando
assim que os processadores enfrentem longos períodos de
latência por espera de dados [2].
I. INTRODUÇÃO
O objetivo deste artigo é avaliar os variados tamanhos da
Os processadores multi-core surgem a partir de memória cache L1, realizando assim uma expansão da memória
microprocessadores que consistiam no aumento de frequência cache, ponderando o limite de crescimento em processadores
de operação com um núcleo singular, onde o provável consumo com vários núcleos, por meio do ambiente de simulação SESC
de energia excessiva do chip poderia levar a aumentos de e os benchmarks realizados, focando no miss rate e no tempo
temperatura e um superaquecimento indesejado. Assim os total de execução, com o intuito de identificar a arquitetura que
processadores com mais de um núcleo foram a forma encontrada mais se destaca dentre as propostas no artigo.
O artigo está estruturado da seguinte forma. A seção II cita Mostrando que o ganho máximo para o conjunto de dados
trabalhos correlatos à mesma vertente temática da proposta por contíguos é baixo e não há ganhos para os dados não contíguos
este; A seção III demonstra a metodologia desenvolvida no no compartilhamento da memória cache L2.
trabalho; Na secção IV são exibidos os resultados encontrados;
Por fim, na seção V, concluímos o trabalho com uma síntese
analítica dos resultados obtido no trabalho. III. METODOLOGIA
Assim como desenvolvido no último trabalho relacionado
II. TRABALHOS CORRELATOS mencionado [5], aderimos neste trabalho a técnica de simulação
para a efetuação das análises das arquiteturas propostas,
Nesta seção discutiremos os recursos disponíveis da utilizando o ambiente de simulação SESC - SuperESCalar
comunidade científica e os trabalhos relacionados que são Simulator. A justificativa para a escolha deve-se ao fato de o
diretamente voltados às pesquisas sobre arquiteturas multi-core simulador ser capaz de gerar estatísticas de simulação que
e o uso de memórias cache. venham a ser consideráveis e importantes para o desenvolver
No trabalho desenvolvido na Universidade Federal do Rio deste trabalho, como por exemplo, cache miss e tempo de
execução. Criado e desenvolvido na Universidade da Califórnia,
Grande do Sul [2], foi realizada uma pesquisa acerca da
por um grupo de estudantes da UIUC(Universidade de Illinois)
avaliação de diferentes compartilhamentos de memória cache,
e nas Universidades de Rochester, Carolina do Norte, no
modelando e aplicando algumas cargas de trabalho sobre as Instituto de Tecnologia da Geórgia e da Universidade de Cornell
diferentes organizações, a fim de obter resultados significativos [6], é um simulador de sistema completamente determinístico,
sobre o desempenho e atuação da memória cache em que simula a arquitetura MIPS single-core, multi-core e many-
processadores multi-core. core. Além disso, é possível modelar um pipeline superescalar
No trabalho realizado na Universidade Federal de São fora de ordem com predição de desvio, memórias cache,
Carlos [3], avaliou-se o subsistema de virtualização de memória barramentos e outros componentes.
e sua interação com as arquiteturas multi-core, visando A carga de trabalho utilizada foi o Water-Spatial (muito
determinar o conjunto de características que maximizam o semelhante ao Ocean.mips), que impõe uma estrutura de dados
desempenho computacional. Os resultados mostraram que o espaciais 3-D no domínio cúbico, resultando em um gradiente
melhor desempenho foi obtido através de utilização de de caixas 3-D [7]. Cada “caixa” da carga contém uma lista
paginação aninhada, utilizando páginas grandes para o vinculada das moléculas atualmente naquela caixa (no tempo-
mapeamento da memória, enquanto que o nível adicional de passo atual). Encontra-se disponível no conjunto de benchmarks
memória cache não trouxe benefícios específicos à “SPLASH-2”, desenvolvido pela Universidade de Stanford,
virtualização. junto de outros oito pacotes de aplicações e quatro kernels [8].

No trabalho efetuado pelo Departamento de Ciência da


Computação no Instituto de Tecnologia da Informação As Arquiteturas a serem trabalhadas.
COMSATS (Islamabad, Paquistão) [4], foi avaliada a As arquiteturas “modeladas” para o desenvolvimento da
performance de diferentes técnicas e algoritmos usados para análise, consistem em cores MIPS superescalares que admitem
otimização da memória cache. Diferentes técnicas puderam ser o despacho e terminação fora de ordem, além de possuírem
aprimoradas, como a redução da taxa de erros por conflito ao suporte à predição de envios, operando em uma frequência
usar um bloco de tamanho maior, maior cache e muitos padrão de 5GHz. Essas arquiteturas são representadas como
métodos de previsão. Algumas conclusões foram tomadas. processadores onde há uma memória cache L2, conectada a
Usando um bloco maior pode-se aumentar miss penalty, blocos (cores), compostos por uma de memória cache L1 de
consumo de energia e reduzir hit time. Caches maiores levam a dados e uma de instruções, conectadas à CPU. A seguir, a
Figura 1 representa a arquitetura proposta, enquanto as Tabelas
tempos de acessos mais demorados e alto custo. Alta
apresentadas descrevem as organizações dos três diferentes
associatividade produz um bom tempo de acesso mas tem baixo
processadores e suas respectivas configurações.
tempo cíclico. “Victim Caches” reduzem miss rate a um custo
maior do que comparado a cache miss look aside. Mostraram
também que, técnicas como LR+5LF são boas para reduzir o
cache miss em uma taxa alta, comparadas à outras técnicas
como LRU, FIFO, LFU, mas são muito mais complexas que
todas essas outros métodos. E por fim, indicaram que é possível
reduzir miss penalty ao usar uma cache com pipeline, porém
isso consiste em métodos complexos.
Por fim, no trabalho desenvolvido pelo Grupo de
Processamento Paralelo e Distribuído na Universidade Federal
do Rio Grande do Sul – UFRGS [5], foi realizado um estudo
sobre o compartilhamento de caches L2 e sua importância para
o desempenho de processadores multi-core, por meio de
simulações da aplicação Ocean, com perspectivas diversas de
Figura 2. Exemplo de uma arquitetura das organizações conceptuais.
conjuntos de dados contíguos e o outra não contíguos.
Cada processador em propositura são compostos os variados tamanhos testados. Percebe-se que para a memória
inicialmente por duas caches L1 privadas, de Dados e de cache L1 de dados que apresentava a maior taxa de erros (cache
Instruções, de 32kB, e uma cache L2 compartilhada de 1MB. O miss), foi visível que a expansão causou uma redução
objetivo inicial é expandir a cache L1 de 32kB para 64kB, e por significativa de cache miss, enquanto para a cache L1 de
fim para 128kB (não haverá expansão na cache L2), registrando instruções o impacto não foi muito relevante, pois já havia uma
o miss rate para cada expansão realizada. Por fim, apresentar o quantidade baixa de erro da cache.
tempo de execução, em segundos, das aplicações para cada uma
das arquiteturas simuladas.

TABELA I
ORGANIZAÇÃO DO PROCESSADOR A

Processador Dual-Core 2 núcleos, MIPS


Cache L1(Dados) 32kB, 64kB, 128kB
Cache L1(Instruções) 32kB, 64kB, 128kB
Cache L2 1 MB
Conjunto Associativo 8-way
Protocolo de Substituição de Blocos LRU
Protocolo de coerência de dados MESI

Figura 3. Processador A - Cache miss x Tamanho da cache


TABELA II
ORGANIZAÇÃO DO PROCESSADOR B
A Figura 4 apresenta o miss-rate do Processador B,
Processador Quad-Core 4 núcleos, MIPS especificado na Tabela II. Sobre os diferentes tamanhos
Cache L1(Dados) 32kB, 64kB, 128kB testados, sendo só considerado a memória cache L1 de dados
pois a quantidade baixa de cache miss da cache L1 de instrução
Cache L1(Instruções) 32kB, 64kB, 128kB
se torna praticamente nulo, foi observado que a expansão da
Cache L2 1 MB memória também traz um impacto positivo em consideração aos
Conjunto Associativo 8-way de menor tamanho.
Protocolo de Substituição de Blocos LRU
Protocolo de coerência de dados MESI

TABELA III
ORGANIZAÇÃO DO PROCESSADOR C

Processador Octa-Core 8 núcleos, MIPS


Cache L1(Dados) 32kB, 64kB, 128kB
Cache L1(Instruções) 32kB, 64kB, 128kB
Cache L2 1 MB
Conjunto Associativo 8-way
Protocolo de Substituição de Blocos LRU
Protocolo de coerência de dados MESI
Figura 4. Processador B - Cache miss x Tamanho da cache

IV. RESULTADOS A Figura 5 apresenta o miss-rate do Processador C,


especificado na Tabela III, sobre os diferentes tamanhos
Com as simulações executadas, se tornou possível a
testados considerando que a memória cache L1 de dados,
comparação e análises conclusivas mediante ao aumento ou
atenuação de performance, associando a taxa de erros e o tempo apresentando que o impacto do aumento do tamanho da cache
de execução para cada expansão da memória cache L1 realizada. também diminui a taxa de erros mais não ao mesmo nível do
Processador #01 isso se deve ao fato do aumento de núcleos
Em posse de dos registros gerados pelas simulações, compartilhados pelo memória cache L2 ser maior e a aplicação
apresentamos a seguir gráficos comparativos de alguns dados não possuir alto nível de paralelismo pois a taxa de erros da
importantes para nosso trabalho. A Figura 3 apresenta o cache L1 se propaga entre todos os núcleos. A partir de 128KB
miss-rate do Processador A, especificado na Tabela I, mediante a taxa de erros começa a estabilizar pois não adianta somente o
aumento de cache e núcleos se não á aumento de paralelismo de V. CONCLUSÃO
instruções, mesmo com o aumento da cache a quantidade de A expansão do tamanho da memória cache L1, trouxe uma
recursos que precisam ser alocados se mostra insuficientes. redução de cache miss expressivo para memória cache de dados
privada. Como o cache miss de instruções já era baixo, o
aumento não trouxe tanta relevância nos testes realizados, e a
contração se deve ao fato da redução de conflitos, ou seja,
múltiplas linhas com acesso ao mesmo conjunto da cache, e a
falta de capacidade, onde a cache não pode armazenar todas as
linhas acessadas pelo programa. A elevação do número de cores
associado ao aumento de processos degradou o sistema, pois a
taxa de cache miss se manteve dentre todos os núcleos, ademais
a memória cache L2 é compartilhada dentre todos os
processadores, ou melhor dizendo, o aumento de conflito gerado
por esses núcleos tem o desempenho afetado negativamente.
Ponderando as análises, os testes realizados com cache acima de
128kB não mostraram um ganho significativo, se mantiveram
constantes quanto à redução de cache miss, mas não quanto ao
tempo de execução. As arquiteturas que mostraram melhor
desempenho em relação ao tempo de execução foram as que
Figura 5. Processador C - Cache miss x Tamanho da cache tinham o tamanho de cache de dados e instruções de 128kB, isso
significa que a expansão da memória cache L1 traz benefícios
ao projeto do processador, ressaltando o fato de haver limites
Por fim, a Figura 6 apresenta o tempo de execução da carga físicos e financeiros para o seu aumento.
de trabalho nas arquiteturas propostas, podendo ser observado
que a expansão da cache L1 reduz o tempo total de execução em Como trabalho futuro, poderia ser analisado e comparado o
comparação aos tamanhos menores, mas o aumento de núcleos desempenho e o cache miss de processadores com outras
degenerou o sistema, pois o cache miss se propagou dentre todos arquiteturas mais complexas, como SPARC, ARM, PowerPC,
os cores. também realizando expansão de suas memórias cache.
REFERENCES
[1] UNGERER, T.; ROBIC, B.; SILC, J. Multithreading Processors. British
Computer Society, [S.I], v.45, n.3, p.320-348, 2002
[2] Marco A. Alves, UFRS, “Avaliação do Campartilhamento das Memórias
Cache no Desempenho de Arquiteturas Multi-Core”
[3] Diego P. Vivencio, UFSC, “Estudos de Técnicas de Virtualização de
Memória em Arquiteturas Multi-Core”
[4] J. S. Yadav, M. Yadav, and A. Jain, “CACHE MEMORY
OPTIMIZATION,” International Conferences of Scientific Research and
Education, vol. 1, no. 6, pp. 1–7, 2013.
[5] Marco A., Henrique C., Flávio R., Philippe O., “Influência do
Compartilhamento de Cache L2 em um Chip Multiprocessado sob Cargas
de Trabalho com Conjuntos de Dados Contínguos e Não Contíguos.”
[6] Pablo M. Ortego. Paul S. Marco A “SESC: SuperESCalar Simulator”.
Figura 6. Tempo de execução da tarefa em segundos
[7] Water-Spatial Read-me Description, aceeso diponível em
courses.cs.washington.edu/courses/cse548/06wi/files/benchmarks/REA
DME.water-spatial.
[8] SPLASH-2, acesso diponível em www.capsl.udel.edu.

Você também pode gostar