Aveiro, 28 de Abril de 2004 1 Arquitectura de Computadores II Ano lectivo 2003/2004 Nuno

Slides:



Advertisements
Apresentações semelhantes
Integridade de Dados em Memórias Cache
Advertisements

Exercícios de Dimensionamento de Memórias Cache
Introdução à Hierarquia de Memória
Modos de Transferência Acesso Direto à Memória (DMA)
William Stallings Arquitetura e Organização de Computadores 8a Edição
Processadores AMD.
Aula 16: Memória Principal e Memória Virtual
Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/ Hierarquia de Memória.
ARQUITETURAS DE COMPUTADORES II
Capítulo 7.
Arquitetura de Sistemas Operacionais
Capítulo Sete Sistemas de Memória
MC542 Organização de Computadores Teoria e Prática
Intel Pentium 4 Giovanni Rizzo de Paiva - RA Matheus Tasso Perugini - RA Rafael Rodrigues Dias - RA MC722 - Projeto de Sistemas Computacionais.
Coerência de Cache MC722 - Projeto de Sistemas Computacionais Prof Rodolfo Jardim de Azevedo André Costa Felipe Sodré Davi Barbosa
Processador Intel Itanium
Arquitetura AMD 64 Família de 64 bits da AMD Trabalho feito por :
Processador Pentium 4 MO401 – Arquitetura de Computadores I
Arquiteturas Superescalares
MC Prof. Paulo Cesar Centoducatte MC542 Organização de Computadores Teoria e Prática.
1998 Morgan Kaufmann Publishers Paulo C. Centoducatte - IC/Unicamp- 2002s Prof. Paulo Cesar Centoducatte
1998 Morgan Kaufmann Publishers Paulo C. Centoducatte - IC/Unicamp- 2006s Prof. Paulo Cesar Centoducatte
Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento.
Processador s processadores (ou CPUs, de Central Processing Unit) são chips responsáveis pela execução de cálculos, decisões lógicas e instruções que.
Modelos de Computadores Paralelos
SSC144 Arquitetura de Computadores Introdução
Mateus Beck Rutzig Picojava Processors Mateus Beck Rutzig
Mais sobre potência: As novas idéias CMP502 Profs. Luigi e Flávio.
Estudo da aplicação “jogos” em sistemas embarcados
Estudo comparativo entre as arquiteturas Opteron e Itanium
Configuração de Micros UNIVERSIDADE FEDERAL DE MINAS GERAIS Introdução à Informática.
Desde 1980, CPUs têm avançado mais rapidamente que DRAMs... CPU 60% por ano 2X em 1.5 anos DRAM 9% por anos 2X em 10 anos 10 DRAM CPU Desempenho (1/latência)
Avaliação do desempenho
Hierarquia de Memória Organização da cache
Introdução e Análise do Desempenho
Estrutura de um Computador
Programação em Assembly Variáveis estruturadas
Hierarquia da Memória: Conceitos Fundamentais e Desempenho
Catholic University PUCRS C ACHE M EMORY. Introduction.
Arquitectura de Computadores II
Afonso Ferreira Miguel
Arquitetura de Computadores
Escola Secundária de Caldas das Taipas Técnico de Gestão de Equipamentos Informáticos Sistemas Digitais e Arquitetura de Computadores Memórias Ram e.
DÚVIDAS DO CAETO. V ALIDAÇÃO DAS HIERARQUIAS H IERARQUIA 1.
Fundamentos da Arquitetura de Computadores
SISTEMAS OPERACIONAIS
Subsistemas de memória
Curso: Curso Profissional – TGPSIMódulo 4 Arquitectura de Computadores Turma: 11ºC Elementos do grupo: Eugeniu Deliu Nº492;Pedro Teixeira Nº602; Ricardo.
Arquitetura de computadores
Arquitetura de Computadores
Infra-estrutura Hardware
Aula15: Reduzindo Miss Rate e Hit Time
Agenda Memória Secundária Disco Magnético.
Agenda - Aula 03 Introdução (Computador Digital) Memória
Arquitetura de Computadores Memória - 2 Waldemiro Arruda.
Prof. Remy Eskinazi - Microcontroladores
Arquitetura de Computadores Mário Luiz Rodrigues Oliveira DCC-UFLA JUNHO/2004.
Sistemas Operacionais
Introdução à Hierarquia de Memória
ARQUITETURA DE COMPUTADORES II
INTRODUÇÃO À COMPUTAÇÃO
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Localidade Princípio da localidade è um programa acessa uma
DSC/CEEI/UFCG Introdução à Computação. DSC/CEEI/UFCG 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações.
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
ARQUITETURAS E ORGANIZAÇÃO DE COMPUTADORES
Coerência de Cache Márcia A. Santos – RA Novembro/2005.
Memória Cache.
Integridade de Dados em Memórias Cache ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Hierarquia de memória desempenho
Transcrição da apresentação:

Aveiro, 28 de Abril de Arquitectura de Computadores II Ano lectivo 2003/2004 Nuno

Aveiro, 28 de Abril de Reduzir hit time Caches simples e pequenas Acesso à cache em pipeline (aumenta o débito, não a latência) Trace caches Evitar a conversão de endereço virtual para endereço físico

Aveiro, 28 de Abril de Reduzir miss rate Blocos maiores Mais associatividade Victim caches Pequenas caches totalmente associativas que armazenam blocos retirados da cache Prefetching Por hardware ou controlado por software Optimizações por software

Aveiro, 28 de Abril de Reduzir miss penalty Early restart/critical word first Non-blocking caches Caches com vários níveis Cache L1 pequena e rápida Velocidade é crítica Cache L2 grande Velocidade afecta apenas o miss penalty de L1 Reduzir o miss rate global

Aveiro, 28 de Abril de níveis de cache tempo m. acesso = hit time L1 +miss rate L1 *miss penalty L1 miss penalty L1 = hit time L2 + miss rate L2 * miss penalty L2 Miss rate global = miss rate L1 * miss rate L2 Se em 1000 acessos existirem 40 misses em L1 e 20 em L2 quais os miss rates de L1, L2 e global?

Aveiro, 28 de Abril de Desempenho da cache multi- nível Processador com CPI base de 1, frequência de 500MHz, tempo de acesso à memória de 200ns, miss rate na cache de nível 1 de 5% e acesso em 1 ciclo. Qual o speedup se a cache de nível 2 tem um tempo de acesso de 20 ns e reduzir o miss rate para 2%? miss penalty = 200ns/2ns = 100 ciclos CPI = 1 + memory stall cycles/instrução = 1 + 5%*100 = 6 hit time L2 = 20/2 = 10 ciclos CPI = 1 + 5%*10 + 2%*100 = 3.5 speedup = 6/3.5 = 1.7

Aveiro, 28 de Abril de Trace cache Aumenta a localidade espacial dos dados da cache No mesmo bloco da cache podem existir endereços não adjacentes Blocos da trace cache capturam o padrão de acesso dinâmico às instruções Mais do que 1 basic block, mais do que 1 salto condicional com previsão podem coexistir no mesmo bloco Melhor utilização do espaço para dados Pentium 4 coloca a trace cache depois da descodificação. Armazena na trace cache instruções já descodificadas (uops)

Aveiro, 28 de Abril de Optimização da cache Técnica Miss penalty Miss rate Hit Time Complexidade hardware Caches multi-nível+2 Critical Word first/early restart+2 Victim caches++2 Aumentar tamanho bloco-+0 Aumentar Tamanho cache+-1 Aumentar associatividade+-1 Por software+0 Caches não bloqueantes+3 Hardware prefetch++2/3 Caches pequenas e simples-+0 Trace cache+3

Aveiro, 28 de Abril de Exemplos Pentium4 DL1 8KB (16KB 90nm), 64bytes, 4-way (8-way 90nm), write-through IL1 Trace cache 12Kuops L2 única, 256KB (1MB 90nm), 128 bytes, 8-way, non-blocking AMD Athlon XP DL1 e IL1 64KB, 64 bytes, 2-way L2 única 512KB, 16-way Alpha DL1 e IL1 64KB, 64 bytes, 2-way, write-back L2 várias configurações Itanium2 DL1 16KB, 64 bytes, 4-way, write-through; IL1 16KB, 64 bytes, 4-way L2 256KB, 128 bytes, 8-way, write-back, non-blocking L3 3MB, 128 bytes, 12-way, write-back

Aveiro, 28 de Abril de Optimizações por software Agrupamento de dados Dados que são acedidos na mesma zona do código devem ser colocados na mesma zona de memória int x[10000],y[10000] for(i=0;i<10000;i++) soma += x[i] + y[i] struct {int x,y;}a[10000] for(i=0;i<10000;i++) soma += a[i].x + a[i].y Aumentar a localidade espacial

Aveiro, 28 de Abril de Optimizações por software Reordenamento de ciclos Acesso à memória deve ser realizado de forma sequencial Ordem de ciclos encadeados deve ser considerada for(j=0;j<100;j++) for(i=0;i<2500;i++) x[i][j] = 3*x[i][j] for(i=0;i<2500;i++) for(j=0;j<100;j++) x[i][j] = 3*x[i][j] Aumentar a localidade espacial

Aveiro, 28 de Abril de Optimizações por software Fusão de ciclos Acesso à memória deve ser realizado de forma sequencial Agrupar sequências de ciclos for(j=0;j<10000;j++) x[i] = 3*y[i] + c[i] for(j=0;j<10000;j++) z[i] = x[i] + c[i] for(j=0;j<10000;j++) { x[i] = 3*y[i] + c[i] z[i] = x[i] + c[i] } Aumentar a localidade temporal

Aveiro, 28 de Abril de Optimizações por software Cálculo por blocos Reorganizar ordem das operações de forma a que o conjunto de dados de trabalho numa fase caiba na cache Realizar o máximo de operações em cada conjunto antes de passar para o próximo for(i=0; i<N; i++) for(j=0; j<N; j++) { r = 0; for(k=0; k<N; k++) r + =a[i][k]*b[k][j]; x[i][j]=r; } Ciclos j e k Lêem toda a matriz b Lêem N elementos da mesma linha da matriz a Escrevem em 1 linha da matriz x Pior caso 2N 3 +N 2 misses Realizar as operações em submatrizes

Aveiro, 28 de Abril de Optimizações por software Cálculo por blocos for(jb=0; jb<N; jb+=B) for(kb=0; kb<N; kb+=B) for(i=0; i<N; i++) for(j=jb; j<min(jb+B,N); j++) { r=0; for(k=kb; k<min(kb+B,N); k++) r+=a[i][k]*b[k][j]; x[i][j]+=r; } Realizar as operações em submatrizes B é o factor de bloco

Aveiro, 28 de Abril de Organização da memória Latência (Modelo simplificado) Enviar endereço Esperar por dados Receber dados Sistema de memória Latência Estrutura da cache Interligação CPU-cache, cache-memória A organização do sistema de memória pode reduzir a latência na leitura de vários endereços consecutivos

Aveiro, 28 de Abril de Organização da memória Latência (Modelo simplificado) Enviar endereço4 ciclos Esperar por dados56 ciclos Receber dados4 ciclos CPU cache Memória 32 Cache com blocos de 4 palavras Miss penalty=? Miss penalty = 4*4 + 4*56 + 4*4 = 256 ciclos

Aveiro, 28 de Abril de Organização da memória Aumentar a largura da memória e do barramento de acesso à memória CPU cache Memória 32 32*4 Cache com blocos de 4 palavras Miss penalty=? Miss penalty = = 64 ciclos

Aveiro, 28 de Abril de Organização da memória Aumentar apenas a largura da memória CPU cache 32 Cache com blocos de 4 palavras Miss penalty=? Miss penalty = *4 = 76 ciclos banco 0 banco 1 banco 2 banco 3