Simulação de Memórias Cache com Latências Assimétricas em Arquiteturas Multi-core



Documentos relacionados
Informática I. Aula 5. Aula 5-13/05/2006 1

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

Avaliação de Desempenho em Sistemas de Computação e Comunicação

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

Arquitetura e Organização de Computadores. Capítulo 0 - Introdução

REFORÇO DE PROGRAMAÇÃO ESTRUTURADA EM LINGUAGEM C PARA GRADUAÇÃO EM ENGENHARIA ELÉTRICA


Sistema de Computação

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

1. NÍVEL CONVENCIONAL DE MÁQUINA

Comparativo de desempenho do Pervasive PSQL v11

Organização de Computadores

Uso do Netkit no Ensino de Roteamento Estático

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS Os Programas de Avaliação

COMPILADORES E INTERPRETADORES

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Imagem retirada de documentações de treinamentos oficiais INTEL

Ferramentas para Simulação e Avaliação de Processadores. de Alto Desempenho

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Simulação Transiente

1.1. Organização de um Sistema Computacional

Memória Cache. Prof. Leonardo Barreto Campos 1

Arquitetura de Rede de Computadores

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Sistema Operacional Correção - Exercício de Revisão

Unidade 13: Paralelismo:

Quadro de consulta (solicitação do mestre)

Sistemas Distribuídos

Arquiteturas Multi e Many cores baseadas em redes-em-chip

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Curso de Instalação e Gestão de Redes Informáticas

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

TRABALHO COM GRANDES MONTAGENS

Computadores de Programação (MAB353)

Técnicas de Manutenção de Computadores

Orientação a Objetos

Aumento da Capacidade de Armazenamento do SPRACE

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

SISTEMAS OPERACIONAIS

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Arquiteturas RISC. (Reduced Instructions Set Computers)

Prof. Esp. Lucas Cruz

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Relatório de Pesquisa

1

4 Avaliação Econômica

Fundamentos de Sistemas Operacionais

UNIVERSIDADE FEDERAL DE PERNAMBUCO

Organização de Computadores

Sistemas de Informação. Sistemas Operacionais 4º Período

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP. Mateus Fontoura Gomes da Rosa Márcia C.

MEMÓRIA. 0 e 1 únicos elementos do sistema de numeração de base 2

DIFERENÇAS ENTRE HUB, SWITCH E ROOTER

Sistemas Operacionais

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Organização e Arquitetura de Computadores I. de Computadores

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Sistemas Operacionais

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

Disciplina: Administração de Departamento de TI. Professor: Aldo Rocha. Aula IX - 28/04/2011

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Sistemas Computacionais II Professor Frederico Sauer

Governança de TI. ITIL v.2&3. parte 1

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Cálculo Aproximado do número PI utilizando Programação Paralela

ORGANIZAÇÃO CURRICULAR

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

Taxa de Gravação da Memória RAM (MegaBytes / segundo) G5 2.7 Ghz (Mac) Linux Kernel

Contil Informática. Curso Técnico em Informática Processadores Core

Dadas a base e a altura de um triangulo, determinar sua área.

Disciplina: Introdução à Informática Profª Érica Barcelos

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

Arquitetura e Organização de Computadores

Arquitetura de Computadores I

Sistemas Operacionais

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

Tecnologia da Informação. Prof Odilon Zappe Jr

4 Arquitetura básica de um analisador de elementos de redes

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

Aula 26: Arquiteturas RISC vs. CISC

1.2 Tipos de Sistemas Operacionais

Paralelização de Simuladores de Hardware Descritos em SystemC

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Organização e Arquitetura de Computadores I

Noções de. Microsoft SQL Server. Microsoft SQL Server

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

SISTEMAS OPERACIONAIS. Apostila 01 Assunto: Tipos de Sistemas Operacionais UNIBAN

Felipe Pedroso Castelo Branco Cassemiro Martins BALANCED SCORECARD FACULDADE BELO HORIZONTE

Introdução a Informática. Prof.: Roberto Franciscatto

Sistemas Operacionais Gerência de Dispositivos

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Transcrição:

Simulação de Memórias Cache com Latências Assimétricas em Arquiteturas Multi-core Julio C. S. Anjos, Felipe L. Severino ULBRA - Universidade Luterana do Brasil - Sistemas de Informação - Guaíba UFRGS - Universidade Federal do Rio Grande do Sul - Instituto de Informática Rio Grande do Sul, RS, Brasil julio.c.s.anjos@gmail.com, flseverino@inf.ufrgs.br Resumo As novas arquiteturas multi-core apresentam grande capacidade para o aumento de desempenho dos atuais e futuros processadores, entretanto, tratando de aplicações tera-scale, os futuros processadores devem ser ainda mais rápidos para fornecer toda a capacidade de processamento requerida por essas aplicações. Nesse sentido, os futuros processadores multi-core deveram adotar novas tecnologias para se obter um elevado alto grau de paralelismo e vazão de dados. As redes de interconexão intra-chip, por exemplo, apresentam diversos aspectos positivos para serem adotadas em futuros processadores many-core. Nesse contexto, as memórias cache são peça chave no desempenhos das futuras arquiteturas. Assim fica clara a importância do ensino das novas tecnologias para os futuros cientistas da computação. Esse trabalho apresenta um estudo de caso, onde foi utilizado um ambiente de simulação completo para fazer aproximações e avaliar os possíveis impactos de diferentes organizações de memória cache nos futuros processadores multi-core. Palavras-chave: Arquitetura de Computadores, Simuladores, Multi-Core, HPC 1 Introdução A demanda por maior capacidade de processamento e as novas tecnologias de integração levaram a criação de arquiteturas com diversos núcleos de processamento em um único chip. Esses processadores que possuem múltiplos núcleos de processamento dentro do mesmo chip são chamados de multi-core ou CMP (chip multiprocessor). Com estas novas arquiteturas, levanta-se a questão da melhor utilização dos demais recursos presentes no processador como, por exemplo, o compartilhamento das memórias cache que pode levar ao uso mais eficiente de recursos e a redução de perdas ocasionadas pela necessidade de tráfego de

coerência de dados (Sibai 2008). Porém, por outro lado, esse compartilhamento pode levar à perdas de desempenho devido às contenções no número de portas de acesso a memória e aos conflitos no uso da interconexão (Alves, Freitas e Navaux 2009). Ainda tratando de processadores multi-core, as redes de interconexão intra-chip são apontadas como solução para as interconexões dentro dos processadores (Freitas, Navaux e Santos 2008). Dessa forma, pode-se pensar no uso dessas redes de interconexão para interligar os diversos núcleos de processamento aos bancos de memória cache L2 por exemplo. Um chip constitui-se muitas vezes de um sistema inteiro, abrindo um grande leque para o uso de aplicações que empregam processamento massivamente paralelo e processos firmemente independentes, muitas vezes com requisitos de tempo-real, necessitando de aspectos complexos das estruturas de comunicação, muitos deles endereçados por Network-on-Chip (NoC) (Bjerregaard e Mahadevan 2006). Nesse contexto, e notando que estas tecnologias demandam ainda por muita pesquisa, o ensino dos novos conceitos de multi-core tornam-se muito importantes para os futuros cientistas da computação. Assim, o objetivo desse artigo é demostrar o uso de um simulador completo de sistema, aplicado no ensino de tecnologias emergentes, através de um experimento que visa simular por intermédio do uso de memórias cache com latências assimétricas, o uso de uma NoC interconectando diversos núcleos de processamento à memória cache L2. Para a avaliação do experimento, foi utilizado o benchmark paralelo NAS e comparando o desempenho de memórias cache compartilhadas e privadas, em arquiteturas de 8 e 16 núcleos. As demais seções deste artigo são divididas da seguinte maneira: na seção 2 são apresentados alguns trabalhos correlatos; a seção 3 trás a metodologia utilizada além de detalhes da modelagem dos experimentos; na seção 4 são apresentados os resultados do estudo de caso; na seção 5 são apresentadas as conclusões e trabalhos futuros; os agradecimentos são apresentados na seção 6. 2 Trabalhos Correlatos Diversos estudos vêm sendo feitos por fabricantes (AMD 2009), (Held, Bautista e Koe 2006), (Kumar, Hughes e Nguyen 2007) e pesquisadores (Aboudja e Simonson 2006), (Alves, Freitas e Navaux 2009), (Chaparro et al. 2007),(Karmarkar 1991), (Tao, Kunze e Karl 2008) procurando identificar um modelo que permita o uso de diversos núcleos de processamento com aumento significativo do speedup. A criação de arquiteturas multi-core incrementou significativamente o desempenho dos processadores,

porém, os atuais processadores são ineficientes para tratar informações da ordem de Petabytes como em aplicações de simulação refinada de previsão do tempo, simulação de fenômenos extremos (ciclones, furacões, etc.), ou ainda, tratamento de informações oriundas de experimentos físicos como o LHC - Large Hadron Collider. O que motiva o desenvolvimento de novas arquiteturas. Dentro deste contexto, para lidar com o uso de diversos cores em um único chip prevê-se o uso de interconexão. Um exemplo de projeto que busca soluções para a interconexão entre vários cores é o projeto Tera-Scale (Held, Bautista e Koe 2006), (Intel 2009), que projeta a arquitetura de um chip com 80 cores. Sobre o uso de simuladores, como o Simics, diversos trabalhos (Tao, Kunze e Karl 2008),(Magnusson e Werner 1995) fazem o uso deste tipo de ferramenta para efetuar simulações e permitir testar rapidamente novas propostas de arquiteturas ainda inexistentes, de forma eficiente. 3 Metodologia Dentre as metodologias de modelagem possíveis, podemos planejar usar modelagem analítica, simulações ou prototipagem (Jain 1991). A modelagem analítica envolve formulações matemáticas, sendo uma técnica aproximada de difícil adequação a modelos complexos. A prototipagem, por sua vez, é feita em mais baixo nível com alto detalhamento, alto custo e considerando modelos ainda inexistentes de difícil implementação. Por fim, a simulação tem uma complexidade média, sendo possível criar modelos inexistentes para serem testados em ambientes controlados tornando-se, portanto, uma opção interessante e adequada para o desenvolvimento deste trabalho. Assim, nossa proposta é apresentar o uso do simulador Simics, como instrumento pedagógico para o ensino de arquiteturas de computadores. Para alcançar este objetivo, será avaliado um estudo de caso, que será um experimento com uso de memórias caches com tempos de acesso assimétricos e simétricos. Essa modelagem com diferentes tipos de latências tenta abstrair a modelagem de uma interconexão do tipo NoC. Logo, este experimento objetiva mostrar os procedimentos para a simulação de arquiteturas com diferentes latências entre as memórias cache L2 e L3 devido ao posicionamento do núcleo de processamento na rede de interconexão. Apresentando duas configurações base, uma com tempo de acesso simétrico com memórias cache L2 compartilhadas a cada 2 núcleos e outra com tempo de acesso assimétrico com memórias cache L2 privadas para cada núcleo de processamento. Partindo das configurações base, serão avaliados também processadores com 8 e 16 núcleos, simulados como um único chip. Entretanto, uma dos pontos fracos dessa abordagem é que não haverá

simulação da estrutura de roteamento, logo, as possíveis contenções desse dispositivo também não serão modeladas. Para a avaliação dos experimentos simulados, a carga de trabalho paralela de aplicações científicas NAS Parallel Benchmark será adotada. 3.1 Simulador As simulações foram feitas com o simulador Simics versão 4.0, desenvolvido pela Virtutech (Virtutech 2009). Este simulador suporta a emulação de diferentes arquiteturas e organizações. Por se tratar de um simulador completo de sistema, as simulações suportam instalação de sistemas operacionais, executando os mesmos binários de um sistema real, tendo a habilidade de simular microprocessadores como PowerPC, x86, ARM e MIPS, além de outros dispositivos digitais como memórias, discos rígidos, dispositivos ethernet entre outros. O simulador utilizado, trabalha com dois modos de execução, o primeiro modo, para a preparação do ambiente simulado é o modo fast, após a modelagem pronta para execuções e medições, foi ativado o modo stall, onde simulam-se todas as transações da hierarquia de memória, fornecendo informações coerentes a respeito da memória cache. 3.2 Modelagem Para a simulação foi utilizado o modelo SunFire Walnut, que representa um servidor Sun Enterprise 6500, com processadores UltraSPARC II. O sistema operacional executado foi o Ubuntu Server (kernel versão 2.6) compilado com suporte a SMP. As configurações de latências para 8 e 16 núcleos de processamento, são apresentadas na Tabela 1, assim como a associatividade, o tamanho das memórias cache e as políticas de atualização de blocos modeladas. Table 1: Configurações de memórias cache.

As latências em ciclos utilizadas são baseadas no processador Nehalem da Intel (Intel 2009). Portanto, todas as memórias tem 64 linhas de dados. A política de substituição da cache utiliza LRU (Least Recent Used), a qual elimina da memória cache os blocos menos recentemente usados (Rose e Navaux 2003). Após definir os parâmetros iniciais para os experimentos, quatro organizações diferentes foram propostas. Duas organizações modeladas possuem 8 núcleos de processamento e as outras duas possuem 16 núcleos, sendo que a diferença entre as organizações de mesmo número de núcleos está na organização de memória cache modelada. Assim, foram modelas organizações de memória cache privadas para cada núcleos e organizações com uma memória cache L2 compartilhada a cada dois núcleos de processamento. A primeira organização, ilustrada na Figura 1 apresenta a configuração adotada para 8 núcleos de processamento, cada núcleo tem memórias cache L1 (instruções e dados) e L2 privadas, a latência de todo o sistema de memória cache de cada núcleo é dada pela distância total deste à memória cache L3, somando então as latências das memórias cache aos saltos necessários para o acesso aos dados. Figure 1: Processador com 8 cores e cache L2 privada. As latências da memória cache L3 são decompostas em latência da memória cache L2, latência da memória cache L3 e latência da interconexão utilizada para simular os experimentos com 8 núcleos de processamento. Por exemplo no caso do Core0, a latência total é calculada a partir da soma da latência de memória cache L2 (10 ciclos) e L3 (35 ciclos) mais o total de saltos na interconexão seguindo o modelo da Figura 1. Logo a latência de acesso a memória cache L3 será (10+1+1+1+1+35)=49. Já para o Core1, teremos (10+1+1+1+35=48) e assim sucessivamente. A Figura 2, também com 8 cores apresenta a memória cache L2 compartilhada por 2 núcleos. Para este caso, o cálculo da latência de acesso a memória cache L3 definido a cada 2 cores é igual a 49

ciclos. Figure 2: Processador com 8 cores e cache L2 compartilhada. A Figura 3 apresenta a configuração adotada para 16 núcleos de processamento, cada núcleo tem memória cache L1 ( instruções e dados) privada e L2 também privada, a latência de todo o sistema de memória cache, de cada núcleo é dada pela distância deste à memória cache L3. Figure 3: Processador com 16 núcleos de processamento e memórias cache L2 privadas. Neste caso com 16 núcleos de processamento, por exemplo no Core0 a latência de acesso a memória cache L3 é dada pela latência da memória cache L2 (10 ciclos) mais a latência da interconexão, somada com a latência da própria memória cache L3 (35 ciclos), ou seja, (10+1+1+1+1+1+1+35)=51. Já para o Core1 o valor será (10+1+1+1+1+1+35)=50, no Core2 será (10+1+1+1+1+35)=49 e assim por diante.

A modelagem da organização com 16 núcleos de processamento, com memórias cache L2 compartilhadas, está ilustrada na Figura 4. Os fatores, apresentados na figura mostram a distância da memória cache L2 à memória cache L3 pela rede de interconexão. Figure 4: Processador com 16 cores e cache L2 compartilhada. O cálculo da latência da memória cache L3 da arquitetura ilustrada pela Figura 4 é feita de maneira similar as anteriores. Considerando-se a memória cache L2 compartilhada, a latência total é dada pela latência proveniente das memórias cache somada à latência introduzida pela rede de interconexão, a qual varia dependendo da distância do núcleos de processamento. Assim no Core0 e Core1, a latência da memória cache L3 ( 35 cilcos) é dada pela latência desta memória, somada a latência da memória cache L2 (10 ciclos), somando ainda a latência da interconexão, ou seja, (10+1+1+1+1+35)=49. Para os casos do Core 2 e Core3, a latência da cache L3 será (10+1+1+1+35)=48 e assim sucessivamente para os demais pares de cores. 3.3 Carga de Trabalho A carga de trabalho utilizada foi o benchmark NAS 3.3, criado pelo NASA Ames Laboratory. Esta carga de trabalho é constituída de oito algoritmos, onde cinco são do tipo kernel (IS, EP, MG, CG, FT) e três são aplicações compactas (LU, SP, BT) (Bailey, Barszcz et al. 1994). Neste experimento são utilizados somente os algoritmos BT (Block Tridiagonal) e CG (Conjugate Gradient), paralelizados com primitivas OpenMP. A quantidade de threads utilizadas nos experimentos foi igual ao número de núcleos de processamento de cada experimento. O algoritmo CG é uma resolução de sistemas lineares através do método de gradiente conjugado

(CG), enquanto a aplicação BT é baseada em Computer Fluid Dynamics (CFD) (Dinâmica de Fluídos por Computador) e utiliza o método de multiplicação de sistemas independentes não-diagonais dominantes, resolvendo equações escalares penta-diagonais [Bailey, Barszcz et al. 1994]. Estas aplicações foram escolhidas uma vez que possuem características diferentes do ponto de vista do acesso a dados, uma vez que a aplicação CG apresenta acesso não linear a dados enquanto a aplicação BT possui acesso alinhado aos dados. As simulações BT e CG foram recompiladas para executarem chamadas a uma função magicinstruction que é uma função distribuída com o Simics a qual é reconhecida durante a simulação e assim podemos capturar medições dos dispositivos que interagem na simulação, por intermédio de outros comandos ou scripts escritos em linguagem Python, conforme o exemplo abaixo: @def a_callback(user_arg, cpu, arg): file = open ( result_8cor-l2parbt.dat, a+w ) #CPU 0 info file.write ( conf.cpu0.cycles= +str(conf.cpu0.cycles)+ \n ) file.write ( conf.cpu0.steps= +str(conf.cpu0.steps)+ \n ).. Assim, os resultados de cada simulação foram gerados automaticamente em um arquivo para posterior análise dos dados. 4 Resultados Nesta seção, serão apresentados resultados sobre o estudo de caso, com valores e análise das simulações. Para facilitar o entendimento, foram utilizadas representações das arquiteturas com a notação da quantidade de núcleos 8 ou 16, seguido do benchmark executado BT ou CG adicionando a estrutura simulada da organização da memória cache L2 privada Priv ou compartilhada Comp. Na Figura 5, são apresentados o número total de leituras e escritas na memória cache L2 nos benchmarks BT e CG. Neste caso, podemos perceber que o algorítimo BT satura mais a escrita em memória comparada com a aplicação CG. Nesta medição há um desvio padrão igual a σ < 0,01%, qualificando a medida.

Figure 5: Leituras e escritas de BT e CG na memória cache L2. A Figura 6 apresenta o gráfico com a taxa de falta de dados durante leituras na memória cache L2 para as diversas organizações avaliadas, nas medições houveram desvio padrão igual a σ < 2,74% para a aplicação BT e um desvio padrão igual a σ < 0,25% para a aplicação CG. Podemos ver que a simulação BT, que gerou maior quantidade de escrita, também gere um número maior de faltas de dados na memória cache L2 e conforme nos mostra Patterson e Hennessy (Henessy e Patterson 2007), aumentar o tamanho da cache, implica em um número menor de erros. Figura 6. Taxa de falta de dados durante a leitura na memória cache L2. Entretanto, uma vez que não se manteve a proporcionalidade do tamanho da memória cache L2 por núcleo, na organização do experimento de memória privada para memória compartilhada (ou seja, 256 KB por núcleo na configuração da memória cache L2 privada contra 128KB por núcleo na memória cache L2 compartilhada, ou seja, redução de 50%), era previsto um número maior de faltas de dados durante leituras na memória cache L2 ocasionados por conflito ou por capacidade. Porém, pelo

que se observa nos resultados, esta diferença mostra-se pouco significativa, pois os dados colhidos apresentam mesma ordem de grandeza, com pequenas oscilações. Na arquitetura com 8 núcleos de processamento, com o uso de uma latência assimétrica na memória cache L2 privada, diminuiu-se o efeito de conflitos, resultando em um número menor de faltas de dados durante leituras na memória cache L2, o mesmo acontece com 16 núcleos, porém, nesta organização houve um número maior de núcleos compartilhando a memória cache L2 e também uma assimetria de latências maior, o que minimizou as faltas nas leituras de dados. Já com a aplicação CG, tanto com 8 ou 16 núcleos, ocorreu um comportamento semelhante para as faltas de leitura na memória cache, não apresentando diferenças significativas nos percentuais de faltas de dados de uma arquitetura com memória cache L2 privada para uma arquitetura compartilhada. Na Figura 7 verificamos o comportamento de acertos de escrita e leitura respectivamente, na memória cache L3, com um desvio padrão igual a σ<0,01%. O comportamento obtido se explica, em parte, pelo comportamento das aplicações nos testes e pelo tamanho da memória cache L3. Ressaltando que as leituras e escritas são medidas em milhões de operações. Figure 7: Número de acertos de leitura na memória cache L3. O resultado de 86.42% e 93,47% de acertos de leitura na memória cache L3, no benchmark CG em 16 núcleos, são em decorrência de fatores de conflito, como por exemplo erros por colisões relacionados com a associatividade da memória cache e com a política de atualização write-back adotada neste nível de memória cache, conforme relatam Patterson e Hennessy (Henessy e Patterson 2007) e Jie Tao, et al. (Tao, Kunze e Karl 2008). As medidas para o benchmark BT entre 99,82% e 99,93% tanto para 8 como 16 núcleos indicam um número de acertos de escrita elevado.

A Figura 8 mostra um nível de acertos aceitáveis, se compararmos com experimentos equivalentes, os valores de acertos de 97,83% para o pior caso, com memória cache L2 individual, para o comportamento de CG em para 16 cores, onde os dados encontram-se compartilhados na memória cache L3 exclusivamente, com desvio padrão, em todas as medições. 5 Conclusões Figure 8: Número de acertos de escrita na memória cache L3. O uso de instrumentos pedagógicos, como simuladores de arquiteturas, permite ao professor de arquitetura de computadores, não somente relatar e apresentar as diferentes estruturas internas de processadores e demais dispositivos, mas também propiciar ao aluno o entendimento de conceitos, através da vivência em projetos de um sistema completo. Como foi demonstrado no estudo de caso, o uso de latência assimétrica pode ser bastante interessante para se obter tendencias de organizações de memórias cache utilizando redes de interconexão intra-chip. Podemos ver através dos experimentos que as variações na organização tem grande impacto no número de faltas de dados, no caso estudado, o efeito da diminuição de faltas de dados com mudanças nas latências assimétricas foi perceptível. Conforme apresentou o estudo de caso, os mesmos passos de execução mostrados podem ser repetidos em sala de aula, propiciando um auxílio no aprendizado do funcionamento de estruturas com memória cache, conhecimento de mecanismos de interconexões além de diversos outros conceitos dos atuais e futuros processadores multi-core. Como trabalhos futuros, planeja-se aumentar a quantidade de núcleos simulados. Planeja-se

também modelar uma NoC com ferramentas mais robustas como o Ruby para comparar o comportamento entre as arquiteturas simuladas. 6 Agradecimentos Este trabalho foi financiado parcialmente com recursos do CNPq. Referências ABOUDJA, H.; SIMONSON, J. Real-time systems performance improvement with multi-level cache memory. CCECE 06. Canadian Conference on Electrical and Computer Engineering, p. 78 81, Maio 2006. ALVES, M. A. Z.; FREITAS, H. C.; NAVAUX, P. O. A. Investigation of shared l2 cache on manycore processors. In: ARCS 09-22th International Conference on Architecture of Computing Systems 2009. (S.l.): VDE Verlang, 2009. v. 1, p. 21 30. ISBN 978-3-8007-3133-6. AMD. Product Brief: Second-Generation AMD Opteron. Janeiro 2009. BAILEY, D.; BARSZCZ, E. et al. THE NAS PARALLEL BENCHMARKS. (S.l.), Março 1994. Disponìvel em: <http://www.nas.nasa.gov/resources/software/npb.html>. BJERREGAARD, T.; MAHADEVAN, S. A survey of research and practices of network-on-chip. ACM Comput. Surv., ACM, New York, NY, USA, v. 38, n. 1, p. 1, 2006. ISSN 0360-0300. CHAPARRO, P. et al. Understanding the thermal implications of multicore architectures. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, v. 18, n. 08, p. 1055 1065, Agosto 2007. FREITAS, H. C.; NAVAUX, P. O. A.; SANTOS, T. G. S. Noc architecture design for multi-cluster chips. IEEE International Conference on Field Programmable Logic and Applications, p. 53 58, Setembro 2008. HELD, J.; BAUTISTA, J.; KOE, S. Intel corporationfrom a few cores to many: A tera-scale computing research overview. Intel Technology Journal, 2006. HENESSY, J. L.; PATTERSON, D. A. Computer Architecture - A quantitative approach. 4. ed. (S.l.): Morgan Kaufmann, 2007. ISBN 1237004901. INTEL. Intel 64 and IA-32 Architectures Optimization Reference Manual. Março 2009. Disponìvel em: <www.intel.com/assets/pdf/manual/248966.pdf>. INTEL. An Introduction to the Intel QuickPath Interconnect. Document number: 320412-001us. (S.l.),

Janeiro 2009. JAIN, R. The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling. Wiley- interscience. (S.l.): Wiley- Interscience, 1991. ISBN 0471503361. KARMARKAR, N. A new parallel architecture for sparse matrix computation based on finite projective geometries. In: Supercomputing 91: Proceedings of the 1991 ACM/IEEE conference on Supercomputing. New York, NY, USA: ACM, 1991. p. 358 369. ISBN 0-89791-459-7. KUMAR, S.; HUGHES, C. J.; NGUYEN, A. Architectural support for fine-grained parallelism on multi-core architectures. Intel Technology Journal, v. 11, n. 3, p. 217 226, Agosto 2007. ISSN 1535-864X. MAGNUSSON, P.; WERNER, B. Efficient memory simulation in simics. In: In Proceedings of the 28th Annual Simulation Symposium. (S.l.: s.n.), 1995. p. 62 73. ROSE, C. A. F. D.; NAVAUX, P. O. A. Arquiteturas Paralelas. 1. ed. (S.l.): Sagra Luzzatto, 2003. (Livros Didáticos 15, v. 1). ISBN 8524106832. SIBAI, F. N. On the performance benefits of sharing and privatizing second and third-level cache memories in homogeneous multi-core architectures. Microprocess. Microsyst., Elsevier Science Publishers B. V., Amsterdam, The Netherlands, The Netherlands, v. 32, n. 7, p. 405 412, 2008. ISSN 0141-9331. TAO, J.; KUNZE, M.; KARL, W. Evaluating the cache architecture of multicore processors. In: PDP 08: Proceedings of the 16th Euromicro Conference on Parallel, Distributed and Network-Based Processing (PDP 2008). Washington, DC, USA: IEEE Computer Society, 2008. p. 12 19. ISBN 978-0-7695-3089-5. VIRTUTECH. Use of Simics in Academia. Abril 2009. Disponìvel em: <http://www.virtutech.com/academia>.