Arquitetura e Organização de Computadores. Capítulo 5 Grande e Rápida: Explorando a Hierarquia de Memória

Tamanho: px
Começar a partir da página:

Download "Arquitetura e Organização de Computadores. Capítulo 5 Grande e Rápida: Explorando a Hierarquia de Memória"

Transcrição

1 Arquitetura e Organização de Computadores Capítulo 5 Grande e Rápida: Explorando a Hierarquia de Memória

2 Material adaptado de: Patterson e Henessy, Computer Organization and Design 4 th Edition 2

3 Static RAM (SRAM): 0,5ns 2,5ns, $ $5000 por GB; Dynamic RAM (DRAM): 50ns 70ns, $20 - $75 por GB; Disco magnético: 5ms 20ms, $0,20 - $2 por GB; Memória ideal: Tempo de acesso da SRAM; Capacidade e custo/gb do disco. Tecnologia da memória 3

4 Programas acessam uma pequena porção do seu espaço de endereços em qualquer momento; Localidade temporal: Itens acessados recentemente são mais prováveis de serem acessados novamente: Ex: instruções em um loop, variáveis de indução; Localidade espacial: Itens próximos daqueles acessados recentemente são mais prováveis de serem acessados em breve: Ex: acesso a instruções sequenciais, array de dados. Princípio da localidade 4

5 Hierarquia de memória; Armazene tudo no disco; Copie itens recentemente acessados (e os próximos) do disco para uma memória menor (DRAM): Memória principal; Copie itens mais recentemente acessados (e os próximos) da DRAM para uma memória menor (SRAM): Memória cache anexada a CPU. Aproveitando-se da localidade 5

6 Bloco (ou linha): unidade de cópia Podem ser várias palavras; Se o dado acessado está presente no nível mais alto: Hit (acerto): acesso satisfeito pelo nível mais alto: Taxa de acerto = hits/acessos; Se dado acesso está ausente: Miss (falta): bloco é copiado de um nível inferior Tempo gasto: miss penalty (penalidade); Taxa de faltas = misses/acessos = 1 taxa de acerto; Por fim, o dado acessado é disponibilizado pelo nível mais alto. Níveis e hierarquia de memória 6

7 Memória cache: Nível da hierarquia de memória mais próximo à CPU: Dado os acesso X 1,..., X n-1, X n Como saber se o dado está presente? Onde devemos procurar? Memória cache 7

8 Localização determinada pelo endereço; Mapeamento direto: só uma opção: (endereço do bloco) módulo (#blocos na cache) #Blocos é uma potência de 2. Utilize os bits de baixa ordem do endereço. Cache de mapeamento direto 8

9 Como nós sabemos qual bloco em particular está armazenado em uma posição da cache? Armazene o endereço do bloco bem como o dado; Na verdade, só é necessário os bits de mais alta ordem do endereço; Chamado Tag; E se não há dados válidos em uma posição? Bit de validade: 1 = presente, 0 = não presente; Inicia com 0. Rótulos (Tags) e bit de validade 9

10 8 blocos, 1 palavra/bloco, mapeamento direto; Estado inicial: Index V Tag Data 000 N 001 N 010 N 011 N 100 N 101 N 110 N 111 N Exemplo de cache 10

11 Word addr Binary addr Hit/miss Cache block Miss 110 Index V Tag Data 000 N 001 N 010 N 011 N 100 N 101 N 110 Y 10 Mem[10110] 111 N Exemplo de cache 11

12 Word addr Binary addr Hit/miss Cache block Miss 010 Index V Tag Data 000 N 001 N 010 Y 11 Mem[11010] 011 N 100 N 101 N 110 Y 10 Mem[10110] 111 N Exemplo de cache 12

13 Word addr Binary addr Hit/miss Cache block Hit Hit 010 Index V Tag Data 000 N 001 N 010 Y 11 Mem[11010] 011 N 100 N 101 N 110 Y 10 Mem[10110] 111 N Exemplo de cache 13

14 Word addr Binary addr Hit/miss Cache block Miss Miss Hit 000 Index V Tag Data 000 Y 10 Mem[10000] 001 N 010 Y 11 Mem[11010] 011 Y 00 Mem[00011] 100 N 101 N 110 Y 10 Mem[10110] 111 N Exemplo de cache 14

15 Word addr Binary addr Hit/miss Cache block Miss 010 Index V Tag Data 000 Y 10 Mem[10000] 001 N 010 Y 10 Mem[10010] 011 Y 00 Mem[00011] 100 N 101 N 110 Y 10 Mem[10110] 111 N Exemplo de cache 15

16 Subdivisão do endereço 16

17 64 blocos, 16 bytes/bloco; Em qual bloco o endereço 1200 é mapeado? Endereço do bloco = 1200/16 = 75 Número do bloco = 75 módulo 64 = Tag Index Offset 22 bits 6 bits 4 bits Exemplo: Tamanho de bloco grande 17

18 Blocos grandes deveriam reduzir a taxa de faltas: Devido a localidade espacial; Mas em um cache com um tamanho fixo: Blocos grandes poucos blocos; Mais competição por espaço aumento da taxa de faltas; Blocos grandes poluição; Maior penalidade no miss: Pode inverter o benefício de reduzir a taxa de faltas; Reinicio mais cedo possível e palavra crítica primeiro podem ajudar. Considerações do tamanho do bloco 18

19 Em caso de hit, CPU procede normalmente; Em caso de miss: Stall no pipeline da CPU; Buscar o bloco no próximo nível de memória; Instruction Cache Miss: Reinicia o Fetch da instrução; Data Cache Miss: Completar o acesso ao dado. Cache Misses 19

20 Em caso de escrita de dados der um hit, simplesmente atualize o bloco na cache; Entretanto cache e memória ficarão inconsistentes; Write-through: também atualize a memória; Faz a escrita demorar mais tempo: Se o CPI base é 1, 10% das instruções são stores e a escrita na memória leva 100 ciclos: CPI Efetivo = 1 + 0,1x100 = 11 Solução: buffer de escrita Armazena o dado esperando para ser escrito na memória; CPU continua imediatamente: Só dá um stall quando o buffer de escrita está cheio. Write-Through 20

21 Alternativa: caso a escrita de dado der um hit, apenas atualize o bloco da cache: Mantenha a informação que o bloco está inconsistente (dirty); Quando o bloco inconsistente é substituído: Escreva de volta na memória; Pode usar um buffer de escrita para permitir que o bloco substituto seja lido primeiro. Write-Back 21

22 O que deveria acontecer em caso de falta na escrita? Alternativas para o wirte-through Allocate on miss: busque o bloco; Write around: não busque o bloco: Uma vez que programas normalmente escrevem em todo o bloco antes de o ler (ex: inicialização); Para o write-back: Geralmente busque o bloco. Write Allocation 22

23 Processador MIPS embarcado: Pipeline de 12 estágios; Acesso a instrução e dados em cada ciclo: Split Caches: caches separadas para instrução (I-cache) e dados (D-cache): Cada 16KB: 256 blocos x 16 palavras/bloco; D-cache: write-through ou write-back; Taxa de faltas no SPEC2000: I-cache: 0,4% D-cache: 11,4% Combinadas: 3,2% Exemplo: Intrinsity FastMATH 23

24 Exemplo: Intrinsity FastMATH 24

25 Use DRAMs para a memória principal: Largura fixa (ex: 1 word); Conectada com um barramento síncrono de largura fixa: Frequência de clock do barramento normalmente é menor que a da CPU; Exemplo de leitura de um bloco da cache: 1 ciclo de barramento para enviar o endereço; 15 ciclos de barramento por acesso a DRAM; 1 ciclo de barramento por dado transferido; Para um bloco de 4 palavras, DRAM com largura de 1 palavra: Miss Penalty = 1 + 4x15 + 4x1 = 65 bus cycles Bandwidth = 16 bytes / 65 cycles = 0.25 B/cycle Memória principal com suporte de caches 25

26 Largura de 4 palavras: Miss Penalty = = 17 bus cycles; Bandwith = 16 bytes / 17 cycles = 0,94 B/cycle 4 bancos de memória intercalados: Miss Penalty = x1 = 20 bus cycles; Bandwith = 16 bytes / 20 cycles = 0,8 B/cycle Aumentando a largura de banda da memória 26

27 Bits na DRAM são organizados como um array retangular: DRAM acessa um linha inteira; Modo rajada (burst mode): acessa palavras sucessivas de uma linha com latência reduzida; Double data rate (DDR) DRAM: Transfere na subida e descida do clock; Quad data rate (QDR) DRAM: Entradas e saídas DDR separadas. Organização avançada da DRAM 27

28 Trac = Tempo de acesso a uma lina. Tcac = Tempo de acesso à coluna com a linha já selecionada. Year Capacity $/GB Kbit $ Kbit $ Mbit $ Mbit $ Mbit $ Mbit $ Mbit $ Mbit $ Mbit $ Gbit $ '80 '83 '85 '89 '92 '96 '98 '00 '04 '07 Trac Tcac Gerações da DRAM 28

29 Componentes do tempo de CPU: Execução do programa em ciclos: Inclui o tempo de hit da cache; Ciclos de stall da memória: Principalmente de cache misses; Com hipóteses simplificadas: Memory stall cycles Memory accesses Program Instructions Program Miss rate Miss penalty Misses Instruction Miss penalty Desempenho da cache 29

30 Dado: I-cache miss rate = 2% D-cache miss rate = 4% Miss penalty = 100 cycles CPI base (cache ideal) = 2 Load & stores são 36% das instruções Ciclos de miss por instrução: I-cache: 0,02 x 100 = 2 D-cache: 0,36 x 0,04 x 100 = 1,44 CPI = ,44 = 5,44 CPU ideal é 5,44/2 = 2,72 vezes mais rápida Exemplo: desempenho da cache 30

31 Tempo do hit também é importante para o desempenho; Average memory acess time (AMAT): AMAT = Hit time + Miss rate x Miss penalty Exemplo: CPU com clock de 1ns, hit time = 1 ciclo, miss penalty = 20 ciclos, I-cache miss rate = 5% AMAT = 1 + 0,05 x 20 = 2ns 2 ciclos por instrução Tempo de acesso médio 31

32 Quando o desempenho da CPU aumenta: A penalidade em caso de falta se torna mais significante; Diminuindo o CPI base: Maior a proporção do tempo gasto em stalls da memória; Aumentando a frequência do clock: Stalls da memória gastam mais ciclos da CPU; Não pode ser negligenciado o comportamento da cache durante a avaliação do desempenho do sistema. Resumo do desempenho 32

33 Totalmente associativa (fully associative): Permite que um dado bloco possa ser armazenado em qualquer entrada da cache; Necessita que todas as entradas sejam avaliadas de uma só vez; Um comparador por entrada da cache (muito caro!); Caches associativas 33

34 Associativa por conjunto (n-away set associative): Cada conjunto contêm n entradas; Número do bloco determina em qual conjunto ele será armazenado: (Block number) modulo (#Sets in cache) Busca em todas as entradas de um determinado conjunto de um só vez; N comparadores (menos caro!) Caches associativas 34

35 Exemplo: cache associativa 35

36 Compare caches de 4 blocos: Mapeamento direto, 2-way associativa por conjunto, totalmente associativa; Sequência de acesso a blocos: 0, 8, 0, 6, 8; Mapeamento Direto: Block address Cache index Hit/miss Cache content after access Exemplo de associatividade 36

37 Compare caches de 4 blocos: Mapeamento direto, 2-way associativa por conjunto, totalmente associativa; Sequência de acesso a blocos: 0, 8, 0, 6, 8; Mapeamento Direto: Block address Cache index Hit/miss 0 0 miss Mem[0] Cache content after access Exemplo de associatividade 37

38 Compare caches de 4 blocos: Mapeamento direto, 2-way associativa por conjunto, totalmente associativa; Sequência de acesso a blocos: 0, 8, 0, 6, 8; Mapeamento Direto: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[8] Cache content after access Exemplo de associatividade 38

39 Compare caches de 4 blocos: Mapeamento direto, 2-way associativa por conjunto, totalmente associativa; Sequência de acesso a blocos: 0, 8, 0, 6, 8; Mapeamento Direto: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[8] 0 0 miss Mem[0] Cache content after access Exemplo de associatividade 39

40 Compare caches de 4 blocos: Mapeamento direto, 2-way associativa por conjunto, totalmente associativa; Sequência de acesso a blocos: 0, 8, 0, 6, 8; Mapeamento Direto: Block address Cache index Hit/miss Cache content after access miss Mem[0] 8 0 miss Mem[8] 0 0 miss Mem[0] 6 2 miss Mem[0] Mem[6] Exemplo de associatividade 40

41 Compare caches de 4 blocos: Mapeamento direto, 2-way associativa por conjunto, totalmente associativa; Sequência de acesso a blocos: 0, 8, 0, 6, 8; Mapeamento Direto: Block address Cache index Hit/miss Cache content after access miss Mem[0] 8 0 miss Mem[8] 0 0 miss Mem[0] 6 2 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Exemplo de associatividade 41

42 2-way set associative: Block address Cache index Hit/miss Cache content after access Set 0 Set 1 Exemplo de associatividade 42

43 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] Cache content after access Set 0 Set 1 Exemplo de associatividade 43

44 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] Cache content after access Set 0 Set 1 Exemplo de associatividade 44

45 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] Cache content after access Set 0 Set 1 Exemplo de associatividade 45

46 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] Cache content after access Set 0 Set 1 Exemplo de associatividade 46

47 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Cache content after access Set 0 Set 1 Exemplo de associatividade 47

48 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Cache content after access Set 0 Set 1 Fully associative: Block address Hit/miss Cache content after access Exemplo de associatividade 48

49 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Cache content after access Set 0 Set 1 Fully associative: Block Hit/miss address 0 miss Mem[0] Cache content after access Exemplo de associatividade 49

50 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Cache content after access Set 0 Set 1 Fully associative: Block address Hit/miss Cache content after access 0 miss Mem[0] 8 miss Mem[0] Mem[8] Exemplo de associatividade 50

51 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Cache content after access Set 0 Set 1 Fully associative: Block address Hit/miss Cache content after access 0 miss Mem[0] 8 miss Mem[0] Mem[8] 0 hit Mem[0] Mem[8] Exemplo de associatividade 51

52 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Cache content after access Set 0 Set 1 Fully associative: Block address Hit/miss Cache content after access 0 miss Mem[0] 8 miss Mem[0] Mem[8] 0 hit Mem[0] Mem[8] 6 miss Mem[0] Mem[8] Mem[6] Exemplo de associatividade 52

53 2-way set associative: Block address Cache index Hit/miss 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Cache content after access Set 0 Set 1 Fully associative: Block address Hit/miss Cache content after access 0 miss Mem[0] 8 miss Mem[0] Mem[8] 0 hit Mem[0] Mem[8] 6 miss Mem[0] Mem[8] Mem[6] 8 hit Mem[0] Mem[8] Mem[6] Exemplo de associatividade 53

54 Aumento da associatividade diminui a taxa de faltas: Mas com retornos decrescentes; Simulação de um sistema com 64KB D-cache, blocos de 16-word, SPEC2000: 1-way: 10,3% 2-way: 8,6% 4-way: 8,3% 8-way: 8,1% Quanto do associtividade? 54

55 Organização da cache associativa por conjunto 55

56 Mapeamento direto: sem escolha; Associativa por conjunto: Escolha a entrada inválida, se existir uma; Caso contrário, escolher entre as entradas do conjunto; Least-recently used (LRU): Escolha aquela não foi utilizada pelo tempo mais longo: Simples para 2-way, gerenciável para 4-way, muito difícil para maiores que isso; Random: Dá aproximadamente o mesmo desempenho que o LRU para associatividade alta. Política de substituição 56

57 Cache primária anexa à CPU (Level 1 L1): Pequena, porém rápida; Cache Nível 2 (Level 2 L2) responde aos misses da cache L1: Maior, lenta, entretanto mais rápida que a memória principal; Memória principal responde aos misses da cache L2; Alguns sistemas de alta capacidade incluem uma cache L3. Cache Multinível 57

58 Dado: CPI base = 1, frequência de clock = 4GHz; Miss rate/instrução = 2%; Tempo de acesso à memória principal = 100ns; Com apenas uma cache primária: Miss penalty = 100ns/0.25ns = 400 cycles; Effective CPI = x 400 = 9. Exemplo: cache multinível 58

59 Com adição da cache L2: Tempo de acesso = 5ns; Taxa de falta global para memória principal = 0.5%; L1 miss com L2 hit: Penalty = 5ns/0.25ns = 20 cycles; L1 miss com L2 miss: Extra penalty = 400 cycles; CPI = x x 400 = 3.4; Razão de desempenho = 9/3.4 = 2.6. Exemplo: continuação; 59

60 Cache L1: Foca no tempo de hit mínimo; Cache L2: Foca em um baixa taxa de faltas para evitar acessos à memória; Tempo de hit tem um pequeno impacto; Resultados: Cache L1 normalmente menos que o sistema com cache única; Tamanho do bloco da cache L1 é menor que o da cache L2. Considerações da cache multinível 60

61 CPUs out-of-order podem executar instruções durante um cache miss: Stores pendentes ficam na unidade load/store; Instruções dependentes esperam nas unidades de reserva; Instruções independentes continuam; Efeito do miss depende fluxo de dados do programa: Muito difícil de analisar; Usar simulação de sistema. Interações com CPU avançadas 61

62 Misses depende dos padrões de acesso à memória: Comportamento do algoritmo; Otimizações do compilador para acessar à memória. Interações com software 62

63 MEMÓRIA VIRTUAL 63

64 Usa a memória principal como uma cache para o armazenamento secundário (disco): Gerenciado em conjunto pela CPU e sistema operacional; Programas compartilham a memória principal: Cada um possui o seu espaço virtual e privado de endereçamento que armazena o seu código e dados frequentemente utilizados; Protegido de outros programas; CPU e SO traduzem endereços virtuais em endereços físicos: Bloco da MV é chamado página; Miss na tradução da MV é chamado de falta de página (page fault). Memória virtual 64

65 Páginas de tamanho fixo (ex: 4K). Tradução do endereço 65

66 Em caso de falta de página, ela precisa ser buscada do disco: Leva milhões de ciclo de clocks; Realizada pelo SO; Tentar minimizar a taxa de falta de páginas: Posicionamento totalmente associativo; Algoritmos de substituição mais inteligentes. Page Fault Penalty 66

67 Armazena informação do posicionamento das páginas: Array de entradas de tabela de páginas (PTE), indexadas pelo número da página virtual; Se a página está presenta na memória: PTE armazena o número da página física; Além de outros bits de status (referenciado, dirty,...); Se a página não está presente: PTE pode referencia para um local espaço de swap no disco. Tabela de páginas 67

68 Tradução utilizando a tabela de páginas 68

69 Mapeando páginas no disco 69

70 Para reduzir a taxa de faltas, normalmente usamos LRU como algoritmo de substituição: Bit de referência (bit de uso) no PTE é setado para 1 quando a página é acessada; Periodicamente é setada para 0 pelo SO; Uma página com bit de referência = 0 não foi recentemente utilizada; Escritas no disco gastam milhões de ciclos: Bloque as escritas de uma vez, sem posições individuais; Write through é impraticável; Usar write-back; Seta o bit de dirty no PTE quando a página é escrita. Substituição e escritas 70

71 Tradução de endereço pode aparentar o acesso extra à memória: Uma para acessar a tabela de páginas; Depois para acessar o dado na memória; Entretanto o acesso à tabela de páginas apresenta boa localidade: Então usamos uma cache rápida com as entradas de tabela de páginas (PTEs) junto à CPU; Chamada: Translation Look-aside Buffer (TLB); Configurações típicas: PTEs, ciclo por hit, ciclos por miss, 0.01%-1% de miss rate; Misses podem ser gerenciados por hardware ou software. Tradução rápida usando a TLB 71

72 Tradução rápida usando a TLB 72

73 Se a página está na memória: Carregue a entrada da tabela de página (PTE) da memória e tente novamente; Pode ser tratada por hardware: Pode ficar mais complexo para estruturas de tabelas de página complicadas; Ou por software:\ Levantando um exceção especial, com uma rotina otimizada; Se a página não está na memória (page fault): SO busca a página no disco e atualiza a tabela de páginas; Depois reinicia a instrução que causou a falta. TLB Misses 73

74 TLB miss indica: Página está presente, mas a entrada da tabela (PTE) não está na TLB; Página não está presente; Deve reconhecer o TLB miss antes da sobrescrita no registrador destino: Levantando uma exceção; Handler copia o PTE da memória para a TLB: Depois reinicia a instrução; Se a página não está presente, então uma falta de página irá ocorrer. TLB Miss Handler 74

75 Usa o endereço virtual faltante para achar o PTE; Localiza a página no disco; Escolhe a página para substituir: Se a página está modificada (dirty), escreve ela no disco; Carrega a página na memória e atualiza a tabela de páginas; Faça o procedimento executar novamente: Reinicia a instrução que causou a falta. Page Fault Handler 75

76 Se a tag da cache usa endereços físicos: Necessita de tradução antes de acessar a cache; Alternativa: usar endereços virtuais na tag: Complicações devidos aos apelidos : Endereços virtuais diferentes para endereços físicos compartilhados. Interação entre TLB e Cache 76

77 Tarefas diferente podem compartilhar partes dos espaços de endereçamento virtual; Entretanto necessitam de proteção contra acessos errantes; Necessita de assistência do SO; Suporte de hardware para a proteção do SO: Modo supervisor privilegiado (kernel mode); Instruções previlegiadas; Tabelas de páginas e outras informações de estados só são acessíveis no modo supervisor; Exceção para as syscalls. Proteção da Memória 77

78 A HIERARQUIA DE MEMÓRIA 78

79 Princípios comuns se aplicam a todos os níveis da hierarquia de memória: Baseado na noção de cache; Em cada nível da hierarquia: Posicionamento de blocos; Encontrar um bloco; Substituição na falta; Política de escrita. A hierarquia de memória 79

80 Determinado pela associatividade; Mapeamento direto (1-way associativo); Uma escolha de posição; N-away associativo (conjunto); N escolhas dentro de um conjunto; Completamente associativa: Qualquer posição; Maior associatividade reduz a taxa de faltas: Aumenta a complexidade, custo e tempo de acesso. Posicionamento do bloco 80

81 Associativity Location method Tag comparisons Direct mapped Index 1 n-way set associative Caches no hardware: Reduzir as comparações para reduzir os custos; Memória virtual: Set index, then search entries within the set Fully associative Search all entries #entries Full lookup table 0 Busca em toda a tabela faz a associatividade completa factível; Beneficio de reduzir a taxa de faltas. n Encontrando um bloco 81

82 Escolha a entrada que será substituída no miss: Least recently used (LRU): Complexo e custosa para hardware com grande associatividade; Aleatório: Próximo ao LRU, porém fácil de implementar; Memória virtual: Aproximação de LRU com suporte de hardware. Substituição 82

83 Write-through: Atualiza ambos níveis superior e inferior; Simplifica a substituição, mas necessita de um buffer de escrita; Write-back: Atualiza apenas o nível superior; Atualiza o nível inferior apenas quando o bloco é substituído; Necessita armazenar o estado do bloco; Memória virtual: Apenas write-back é factível devido a latência de escrita no disco. Políticas de escrita 83

84 Misses compulsórios (cold start misses): Primeiro acesso a um bloco; Misses de capacidade: Devido ao tamanho finito das caches; Um bloco substituído é acessado mais tarde novamente; Misses de conflito (collisions misses): Em uma cache não completamente associativa; Devido a competição entre as entradas da cache em um conjunto; Não ocorreriam em caches completamente associativas do mesmo tamanho. Fonte dos misses 84

85 Design change Effect on miss rate Negative performance effect Increase cache size Increase associativity Increase block size Decrease capacity misses Decrease conflict misses Decrease compulsory misses May increase access time May increase access time Increases miss penalty. For very large block size, may increase miss rate due to pollution. Cache Design Trade-offs 85

86 Host emula sistemas operacionais hóspede e recursos de máquina: Isolamento entre vários hóspedes ; Evita problemas de segurança e confiabilidade; Compartilhamento de recursos; Virtualização tem algum impacto no desempenho: Factível com computadores modernos de alto-desempenho; Exemplos: IBM VM/370 (tecnologia dos anos 1970); VMWare; Microsoft Virtual PC. Máquinas Virtuais 86

87 Mapeia recursos virtuais em recursos físicos: Memória, dispositivos de I/O, CPUs Código do hóspede executa nativamente no processador em modo usuário: Chama a VMM em instruções privilegiadas e acesso a recursos protegidos; SO hóspede pode ser diferente do SO do host; VMM gerencia dispositivos de I/O reais: Emula dispositivos de I/O genéricos para o hóspede. Monitor da Máquina Virtual - VMM 87

88 Na máquina nativa, quando ocorre uma interrupção do timer: SO suspende o processo corrente, trata a interrupção, seleciona e executa a próximo processo; Com o Monitor de Máquina Virtual: VMM suspende a VM em execução, trata a interrupção, seleciona e executa a próxima VM; Se a VM requisita interrupções do timer: VMM emula um timer virtual; Emula a interrupção na VM quando uma interrupção do timer físico acontece. Exemplo: Virtualização do Timer 88

89 Modos Usuário e Sistema; Instruções privilegiadas só estão disponíveis no modo Sistema: Chama o sistema se ela for executada no modo usuário; Todos os recursos físicos só são acessível usando instruções privilegiadas: Incluindo tabela de páginas, controle de interrupções, registradores de I/O; Renascimento do suporte a virtualização: Adaptando ISAs mais recentes (ex. x86). Suporte do conjunto de instruções 89

90 Exemplo de cache: Mapeamento direto, write-back, write allocate; Tamanho do bloco: 4 palavras (16 bytes); Tamanho da cache: 16 KB (1024 blocos); Endereços de 32 bits; Um bit de validade e outro de modificado ( dirty ) por bloco; Cache bloqueante: CPU espera até que todo o acesso esteja completo Tag Index Offset 18 bits 10 bits 4 bits Controlador da Cache 90

91 Read/Write Read/Write Valid Valid Address 32 Address 32 CPU Write Data 32 Cache Write Data 128 Memory Read Data 32 Read Data 128 Ready Ready Multiple cycles per access Sinais da Interface 91

92 Could partition into separate states to reduce clock cycle time FSM do controlador de cache 92

93 Suponha que duas CPUs compartilham o mesmo espaço de endereçamento físico: Cache write-through. Time step Event CPU A s cache CPU B s cache Memory CPU A reads X CPU B reads X CPU A writes 1 to X Problema da Coerência de Cache 93

94 Informalmente: Leitura de um dado retorna o valor mais recentemente escrito; Formalmente: P escreve em X; P lê X (sem escritas intercaladas) leitura retorna o valor escrito; P 1 escreve em X; P 2 lê X (suficientemente depois) leitura retorna o valor escrito: Ex. CPU B lendo X depois do passo 3 no exemplo anterior; P 1 escreve em X, P 2 escreve em X todos os processadores veem as escritas na mesma ordem: Terminam com mesmo valor final de X. Definição de Coerência 94

95 Operações executada pelas caches em multiprocessadores para garantir a coerência: Migração de dados para as caches locais: Reduz o consumo de banda da memória compartilhada; Replicação de dado compartilhado para leitura: Reduz a contenção por acesso; Protocolos Snooping: Cada cache monitora as leituras e escritas no barramento; Protocolos baseados em diretórios: O estado de compartilhamento de blocos entre caches e memória é armazenado em um diretório. Protocolos de coerência de cache 95

96 Cache garante exclusividade de acesso a um bloco antes de ele ser escrito: Broadcast uma mensagem de invalidação no barramento; Leitura posterior do dado em uma falta de outra cache: Envia o dado atualizado; CPU activity Bus activity CPU A s cache CPU B s cache Memory CPU A reads X Cache miss for X 0 0 CPU B reads X Cache miss for X CPU A writes 1 to X Invalidate for X 1 0 CPU B read X Cache miss for X Invalidanting Snooping Protocols 96

97 Quando escritas são vistas por todos os processaodres: Vista indica que uma leitura retorna o valor escrito; Não pode ser instantâneo; Pressuposto: Uma escrita só completa quando todos os processadores a tenham visto. Um processador não reordena escritas com outros acessos; Consequência: P escreve X e depois escreve Y todos os processadores que veem o novo valor Y também veem o novo valor X; Processadores podem reordenar leituras mas não escritas. Consistência de Memória 97

98 Intel Nehalem 4-core processor Per core: 32KB L1 I-cache, 32KB L1 D-cache, 512KB L2 cache Multilevel On-Chip Caches 98

99 Intel Nehalem AMD Opteron X4 Virtual addr 48 bits 48 bits Physical addr 44 bits 48 bits Page size 4KB, 2/4MB 4KB, 2/4MB L1 TLB (per core) L2 TLB (per core) L1 I-TLB: 128 entries for small pages, 7 per thread (2 ) for large pages L1 D-TLB: 64 entries for small pages, 32 for large pages Both 4-way, LRU replacement Single L2 TLB: 512 entries 4-way, LRU replacement L1 I-TLB: 48 entries L1 D-TLB: 48 entries Both fully associative, LRU replacement L2 I-TLB: 512 entries L2 D-TLB: 512 entries Both 4-way, round-robin LRU TLB misses Handled in hardware Handled in hardware 2-Level TLB Organization 99

100 L1 caches (per core) L2 unified cache (per core) L3 unified cache (shared) Intel Nehalem L1 I-cache: 32KB, 64-byte blocks, 4-way, approx LRU replacement, hit time n/a L1 D-cache: 32KB, 64-byte blocks, 8-way, approx LRU replacement, writeback/allocate, hit time n/a 256KB, 64-byte blocks, 8-way, approx LRU replacement, writeback/allocate, hit time n/a 8MB, 64-byte blocks, 16-way, replacement n/a, writeback/allocate, hit time n/a AMD Opteron X4 L1 I-cache: 32KB, 64-byte blocks, 2-way, LRU replacement, hit time 3 cycles L1 D-cache: 32KB, 64-byte blocks, 2-way, LRU replacement, writeback/allocate, hit time 9 cycles 512KB, 64-byte blocks, 16-way, approx LRU replacement, writeback/allocate, hit time n/a 2MB, 64-byte blocks, 32-way, replace block shared by fewest cores, write-back/allocate, hit time 32 cycles n/a: data not available 3-Level Cache Organization 100

101 Retorne a palavra requisitada primeiro: Depois preenche o resto do bloco; Processamento de MISS não bloqueante: Hit sob miss: permita que os hits procedam; Miss sob miss: permita múltiplos misses em aberto; Hardware prefetch: instruções e dados; Redução da Penalidade na Falta 101

102 Endereçamento a byte vs. Palavra: Exemplo: cache de mapeamento direto de 32 bytes, blocos de 4 bytes: Byte 36 é mapeado no bloco 1; Palavra 36 é mapeada no bloco 4; Ignorar os efeitos do sistema de memória quando escrever ou gerar código: Ex. iterações sobre linhas vs. colunas de um array; Saltos grandes resultam em uma localidade ruim. Armadilhas 102

103 Em um multiprocessador com caches L2 e L3 compartilhadas: Menos associatividade que núcleos resultam em miss de conflitos; Mais núcleos necessidade de aumentar a associatividade; Usando AMAT para avaliar o desempenho de processadores com execução fora de ordem: Ignora o efeito de acessos não bloqueantes; Ao invés disso, avalie o desempenho com simulação. Armadilhas 103

104 Aumentar o alcance do endereçamento usando segmentos: Ex. Intel 80286; Entretanto um segmento nem sempre é grande o suficiente; Torna o cálculo do endereço mais complicado; Implementando uma VMM em um ISA que não foi projetada para virtualização: Ex. instruções não privilegiadas acessando recursos de hardware; Ou estenda o ISA, ou faça com que o SO hóspede não use instruções problemáticas. Armadilhas 104

105 Memórias pequenas são rápidas, memórias grandes são lentas: Nós realmente queremos memórias rápidas e grandes Cache cria essa ilusão Princípio da localidade: Programas usam uma pequena parte de seu espaço de memória frequentemente; Hierarquia de memória: L1 cache L2 cache... Memória DRAM disco; Projeto do sistema de memória é crítico em multiprocessadores. Conclusões 105

106 Arquitetura e Organização de Computadores Capítulo 5 Grande e Rápida: Explorando a Hierarquia de Memória

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória

Infraestrutura de Hardware. Explorando Desempenho com a Hierarquia de Memória Infraestrutura de Hardware Explorando Desempenho com a Hierarquia de Memória Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e

Leia mais

Infraestrutura de Hardware. Explorando a Hierarquia de Memória

Infraestrutura de Hardware. Explorando a Hierarquia de Memória Infraestrutura de Hardware Explorando a Hierarquia de Memória Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e executado pelo

Leia mais

Capítulo 7 Sistemas de Memória. Ch7a 1

Capítulo 7 Sistemas de Memória. Ch7a 1 Capítulo 7 Sistemas de Memória Ch7a 1 Memórias: Revisão SRAM (Static RAM): Valor é armazenado por meio da interligação de um par de inversores Rápido, mas consome mais espaço que DRAM (4 a 6 transistores)

Leia mais

Arquitetura e Organização de Processadores. Aulas 9 e 10. Memória cache

Arquitetura e Organização de Processadores. Aulas 9 e 10. Memória cache Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aulas 9 e 10 Memória cache Tendências tecnológicas

Leia mais

Hierarquia de Memória

Hierarquia de Memória Hierarquia de Memória Organização da cache AC1 Hierarquia da Memória: Organização 1 Mapeamento Directo A cada endereço de memória corresponde apenas uma linha da cache. linha = resto (endereço do bloco

Leia mais

Hierarquia de Memória. Sistemas de Computação André Luiz da Costa Carvalho

Hierarquia de Memória. Sistemas de Computação André Luiz da Costa Carvalho Hierarquia de Memória Sistemas de Computação André Luiz da Costa Carvalho 1 Introdução l Pode ser definida como um local para armazenamento de informações, onde as duas únicas ações possíveis são a leitura

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 5ª e 6ª Aulas Revisão de Hierarquia de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação

Leia mais

Memória Cache. Aula 24

Memória Cache. Aula 24 Memória Cache Aula 24 Introdução Objetivo: oferecer o máximo de memória disponível na tecnologia mais barata, enquanto se fornece acesso na velocidade oferecida pela memória mais rápida Velocidade CPU

Leia mais

Memória cache segunda parte. Organização de Computadores. Aula 17. Memória cache segunda parte. 1. Mapeamento completamente associativo

Memória cache segunda parte. Organização de Computadores. Aula 17. Memória cache segunda parte. 1. Mapeamento completamente associativo Universidade Federal do Rio Grande do Sul Instituto de Informática Memória segunda parte Organização de Computadores 1. Mapeamento completamente associativo 2. Mapeamento direto 3. Mapeamento conjunto

Leia mais

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Memória Cache Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Temporal Um item referenciado tende a

Leia mais

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Organização e Arquitetura de Computadores. Ivan Saraiva Silva Organização e Arquitetura de Computadores Hierarquia de Memória Ivan Saraiva Silva Hierarquia de Memória A Organização de Memória em um computador é feita de forma hierárquica Registradores, Cache Memória

Leia mais

Organização e Arquitetura de computadores

Organização e Arquitetura de computadores Organização e Arquitetura de computadores Revisão: hierarquia de memória Utilização do conceito da localidade para apresentar ao usuário toda a quantidade de memória disponível no sistema processador 4-8

Leia mais

Cache. Cache. Direct Mapping Cache. Direct Mapping Cache. Internet. Bus CPU Cache Memória. Cache. Endereço Byte offset

Cache. Cache. Direct Mapping Cache. Direct Mapping Cache. Internet. Bus CPU Cache Memória. Cache. Endereço Byte offset -- Internet Bus Memória Fully Associative Direct Mapping Direct Mapping Direct Mapping 7 Endereço Byte offset Hit Tag Endereço Byte offset Index Block offset bits 8 bits bits bits V Tag Valid Tag K entries

Leia mais

Memória e Hierarquia de Memória. Memória Vs. Armazenamento

Memória e Hierarquia de Memória. Memória Vs. Armazenamento Memória e Hierarquia de Memória Memória Vs. Armazenamento Fichário Pasta O fichário representa o disco rígido, com alta capacidade de armazenamento. A pasta sobre a mesa representa a memória, de acesso

Leia mais

Memória 21/05/2010. Introdução. Hierarquia de Memória. Hierarquia de Memória. Arquitetura de Computadores

Memória 21/05/2010. Introdução. Hierarquia de Memória. Hierarquia de Memória. Arquitetura de Computadores Introdução Arquitetura de Computadores Profa. Delfa H. Zuasnábar A memória pode ser definida como um local para armazenamento de informações, onde as duas únicas ações possíveis são a leitura e a escrita.

Leia mais

Aula 16: Memória Principal e Memória Virtual

Aula 16: Memória Principal e Memória Virtual Aula 16: Memória Principal e Memória Virtual Memória Principal Performance na memória principal: Latência: Miss Penalty na Cache Access Time: tempo entre requisição e retorno de palavra Cycle Time:

Leia mais

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade Funcionamento da memória cache Elementos de projeto de memória cache Mapeamento de dados MP/cache Algoritmos de substituição de dados

Leia mais

ELECTRÓNICA DE COMPUTADORES. Sumário

ELECTRÓNICA DE COMPUTADORES. Sumário ELTRÓNICA DE COMPUTADORES Aulas nº14 e15 Memórias tampão (s) 12.1 Sumário Princípio da localidade espacial e temporal Organização das caches s de dados: políticas de escrita e estratégias de alocação Interligação

Leia mais

Hierarquia de memória

Hierarquia de memória Hierarquia de memória Capítulo 6, Secção.{3..} Caches Slides adaptados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João Pedro Patriarca (jpatri@cc.isel.ipl.pt)

Leia mais

Hierarquia de memória

Hierarquia de memória Hierarquia de memória Capítulo 6, Secção.{3..} Caches Slides adaptados dos slides do professor Pedro Pereira Consultar slides originais no moodle Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Leia mais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5 Cristina Boeres Mapeamento Associativo por Conjunto! Tenta resolver o problema de conflito de blocos na mesma linha (mapeamento

Leia mais

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP Departamento de Ciência da Computação - UFF Memória Cache Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br Memória Cache Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade

Leia mais

Memória Virtual. Prof. M.Sc. Bruno R. Silva CEFET-MG Campus VII

Memória Virtual. Prof. M.Sc. Bruno R. Silva CEFET-MG Campus VII Prof. M.Sc. Bruno R. Silva CEFET-MG Campus VII Permitir o compartilhamento seguro e eficiente da memória entre vários programas Remover os transtornos de programação de uma quatidade pequena e limitada

Leia mais

Memória Cache Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Memória Cache Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Memória Cache Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Memória Cache Memória Principal Vs. Cache Fichário Quadro Pasta O fichário representa o disco rígido. A pasta sobre a mesa representa

Leia mais

Memória Cache. Walter Fetter Lages.

Memória Cache. Walter Fetter Lages. Memória Cache Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Copyright (c) Walter Fetter Lages p.1 Introdução SRAM

Leia mais

5 de Maio de Aula 15

5 de Maio de Aula 15 5 de Maio de 2005 1 Caches I Aula 15 Estrutura desta aula Hierarquia de memórias Tecnologia das memórias Fundamentos de caches Organização em blocos Colocação dos blocos Identificação dos blocos Políticas

Leia mais

Aula 16: Memória Principal e Memória Virtual

Aula 16: Memória Principal e Memória Virtual Aula 16: Memória Principal e Memória Virtual Memória Principal Performance na memória principal: Latência: Miss Penalty na Cache Access Time: tempo entre requisição e retorno de palavra Cycle Time: tempo

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 21 Memória Cache Rodrigo Hausen 21 de outubro de 2011 http://cuco.pro.br/ach2034 1/49 Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.2. Execução de

Leia mais

Gerência de Memória. Paginação

Gerência de Memória. Paginação Gerência de Memória Paginação Endereçamento Virtual (1) Espaço de endereçamento dos processos não linearmente relacionado com a memória física Cada vez que são usados, os endereços virtuais são convertidos

Leia mais

Arquitetura de Computadores. Hierarquia de Memória. Prof. Msc. Eduardo Luzeiro Feitosa

Arquitetura de Computadores. Hierarquia de Memória. Prof. Msc. Eduardo Luzeiro Feitosa Arquitetura de Computadores Hierarquia de Memória Prof. Msc. Eduardo Luzeiro Feitosa efeitosa@dcc.ufam.edu.br 1 Introdução Conteúdo Exemplo da biblioteca Princípio da localidade Hierarquia de memória Cache

Leia mais

Hierarquia de Memória

Hierarquia de Memória No projeto de um sistema digital, deve-se ter em mente que hardware menor geralmente é mais rápido do que hardware maior. A propagação do sinal é uma das principais causas de atrasos. No caso da memória,

Leia mais

Tempo de processador desperdiçado a fazer nada. Processor register 1 clock cycle (0.5 2 GHz) $??? DRAM semiconductor memory ns $10 $20

Tempo de processador desperdiçado a fazer nada. Processor register 1 clock cycle (0.5 2 GHz) $??? DRAM semiconductor memory ns $10 $20 Caches Cache Acesso à memória é lento Tempo de processador desperdiçado a fazer nada CPU Memória Memory technology Typical access time $ per GiB in 2012 Processor register 1 clock cycle (0.5 ns @ 2 GHz)

Leia mais

SSC0112 Organização de Computadores Digitais I

SSC0112 Organização de Computadores Digitais I SSC0112 Organização de Computadores Digitais I 18ª Aula Hierarquia de memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Cache Método de Acesso: Associativo Localização de dados na memória

Leia mais

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3) Endereçamento Virtual (1) Gerência de Memória Paginação Espaço de endereçamento dos processos não linearmente relacionado com a física Cada vez que são usados, os endereços virtuais são convertidos pela

Leia mais

Microprocessadores. Memórias

Microprocessadores. Memórias s António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt Arquitectura de Microcomputador Modelo de Von Neumann Barramento de Endereços µprocessador Entrada/Saída Barramento

Leia mais

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Memoria Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Nuno Pombo / Paulo Fazendeiro

Leia mais

Capítulo Sistemas de Memória Memória Virtual. Ch7b 1

Capítulo Sistemas de Memória Memória Virtual. Ch7b 1 Capítulo Sistemas de Memória Memória Virtual Ch7b Memória Virtual Memória principal funciona como uma cache para o armazenamento secundário (disco) Virtual addresses Physical addresses Address translation

Leia mais

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de I Organização e Arquitetura Básicas B de (Parte II)

Leia mais

Arquitectura de Computadores (ACom)

Arquitectura de Computadores (ACom) Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 20: Título: Sumário: Sistema de primária (ciclo de acesso, memória estática, memória dinâmica, planos

Leia mais

Arquitetura e Organização de Computadores 2. Organização Hierárquica da Memória. Uma afirmação antiga, mas perfeitamente atual

Arquitetura e Organização de Computadores 2. Organização Hierárquica da Memória. Uma afirmação antiga, mas perfeitamente atual Arquitetura e Organização de Computadores 2 Organização Hierárquica da Memória Hierarquia da Memória Uma afirmação antiga, mas perfeitamente atual Ideally one would desire an indefinitely large memory

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores Hierarquia de Memória: Introdução Alexandre Amory Edson Moreno Nas Aulas Anteriores Computação Organização interna de CPU Parte operativa: Lógica combinacional

Leia mais

Arquitectura de Computadores II

Arquitectura de Computadores II O Fosso de Performance Arquitectura de Computadores II 5. Hierarquia de Memória 5.1. Cache 2004/2005 Paulo Marques Departamento de Eng. Informática Universidade de Coimbra pmarques@dei.uc.pt 2 Hierarquia

Leia mais

Hierarquia de Memória

Hierarquia de Memória Hierarquia de Memória Introdução e Análise do Desempenho AC1 Hierarquia da Memória: Análise do Desempenho 1 Hierarquia de Memória A velocidade dos processadores tem aumentado muito mais rapidamente do

Leia mais

SSC0112 Organização de Computadores Digitais I

SSC0112 Organização de Computadores Digitais I SSC0112 Organização de Computadores Digitais I 20ª Aula Hierarquia de memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Princípios básicos Definição: Tamanho da cache Tamanho do bloco Função de

Leia mais

Memórias cache: uma introdução

Memórias cache: uma introdução Memórias cache: uma introdução João Canas Ferreira Dezembro de 2006 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3ª. ed., MKP 2006 AAC (FEUP/MIEIC) Memórias

Leia mais

Projeto de Caches. Projeto de memórias cache (ii)

Projeto de Caches. Projeto de memórias cache (ii) Projeto de Caches Mapeamento de endereços (hashing) [bytes] tamanho de bloco [palavras] associatividade (mais hashing) três tipos de faltas tempo médio de acesso à memória UFPR BCC CI22 26-2 projeto de

Leia mais

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores Hierarquia de Memória; Memória Cache (13.2 e 13.3) José Monteiro Licenciatura em Engenharia Informática e de Computadores Departamento de Engenharia Informática (DEI) Instituto

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Departamento de Ciência da Computação Bacharelado em Ciência da Computação Arquitetura de Computadores Hierarquia de Memória Gabriel P. Silva Ementa Unidade 3: Hierarquia de Memória 3.1 Registradores 3.2

Leia mais

Arquitectura de Computadores (ACom)

Arquitectura de Computadores (ACom) Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 22: Título: Sumário: cache; cache por blocos; Política de substituição; Tratamento das operações de

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

Gerenciamento de memória

Gerenciamento de memória Gerenciamento de memória O que faz? Controla o uso dos espaços em memória Controla os modos de endereçamento dos processos Como funciona a memória? Hierarquia de memória A falta de desempenho A velocidade

Leia mais

MC722. Medidas. Instruções. Funções. Pilha. add $t0,$s1,$s2. slti rt,rs,const if (rs < const) rd=1; else rd=0;

MC722. Medidas. Instruções. Funções. Pilha. add $t0,$s1,$s2. slti rt,rs,const if (rs < const) rd=1; else rd=0; Medidas CPU Time = instructions program T improved = MC722 clock cycles instruction T affected improvement factor + T unaffected CPU Time = # cycles cycle time = # cycles clock rate Instruções seconds

Leia mais

Hierarquia de memória. Melhorando o desempenho

Hierarquia de memória. Melhorando o desempenho Hierarquia de memória Melhorando o desempenho Desempenho de uma CPU CPU time_sem_mem = #instruções x CPI x Clk_período CPU time = CPU time_sem_mem + Memória time CPU time = (CPU ciclos_sem_mem + Memória

Leia mais

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL MEMÓRIA Componente de um sistema de computação cuja função é armazenar informações que são manipuladas pelo sistema para que possam ser recuperadas

Leia mais

http://www.ic.uff.br/~debora/fac! 1 Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal Organização Operações de leitura e escrita Capacidade 2 Componente de um sistema

Leia mais

Sistemas Operacionais

Sistemas Operacionais Introdução Memória virtual Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons. Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/

Leia mais

Correção de Erros. Erros de memória de semicondutores podem ser:

Correção de Erros. Erros de memória de semicondutores podem ser: Correção de Erros Erros de memória de semicondutores podem ser: Erros graves que constitui um defeito físico permanente; Erros moderados, onde a(s) célula(s) não são capazes de armazenar os dados ou fazem

Leia mais

Infra-estrutura Hardware

Infra-estrutura Hardware Memória e Hierarquia de Memória Roteiro da Aula Hierarquia de Memória Localidade temporal e espacial Memória cache Tipos Princípio de funcionamento Melhorando o desempenho Aumento do bloco Aumento da associatividade

Leia mais

EA960 Memória virtual

EA960 Memória virtual EA960 Memória virtual Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1 Motivação Vimos no tópico anterior como a memória cache pode

Leia mais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em

Leia mais

Memória virtual. Sistemas de Computação

Memória virtual. Sistemas de Computação Memória virtual Fundamentos Memória virtual separação da memória lógica do usuário da memória física somente uma parte do programa precisa estar na memória para execução espaço de endereçamento lógico

Leia mais

SSC510 Arquitetura de Computadores. 8ª aula

SSC510 Arquitetura de Computadores. 8ª aula SSC510 Arquitetura de Computadores 8ª aula ARQUITETURAS MIMD COM MEMÓRIA COMPARTILHADA COERÊNCIA DE CACHE PROFA. SARITA MAZZINI BRUSCHI Memórias Cache Políticas de Atualização As memórias caches possuem

Leia mais

Sistemas Operacionais. Conceitos de Hardware

Sistemas Operacionais. Conceitos de Hardware Sistemas Operacionais Conceitos de Hardware Sumário 1. Introdução 7. RISC e CISC 2. Processador 1. Operações de Processamento 2. Unidade de Controle 3. Ciclos de uma Instrução 3. Memória 1. Memória Principal

Leia mais

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 10: MEMÓRIA E HIERARQUIA DE MEMÓRIAS Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação MEMÓRIA SÃO TODOS

Leia mais

Memória Cache. Adriano J. Holanda. 12 e 16/5/2017

Memória Cache. Adriano J. Holanda. 12 e 16/5/2017 Memória Cache Adriano J Holanda 12 e 16/5/2017 Memória: princípios físicos Revisão: Hierarquia de memória; Memória RAM: estática, dinâmica; Memória ROM: PROM, EPROM, EEPROM; Memória flash Memória: fundamentos

Leia mais

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache Departamento de Ciência da Computação - UFF Principal Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br Principal ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Memória Memória virtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas apresentações dos prof. Tiago Ferreto e Alexandra Aguiar

Leia mais

Experimentos com o Cache Organização de Computadores

Experimentos com o Cache Organização de Computadores Experimentos com o Cache Organização de Computadores Bruno Milan Perfetto - n o USP : 6552421 Steven Koiti Tsukamoto - n o USP : 6431089 Departamento de Ciência da Computação Instituto de Matemática e

Leia mais

Memória Principal. Tiago Alves de Oliveira

Memória Principal. Tiago Alves de Oliveira Memória Principal Tiago Alves de Oliveira tiago@div.cefetmg.br Memória Principal Capítulo 4 Livro do Mário Monteiro Introdução Hierarquia de memória Memória Principal Organização Operações de leitura e

Leia mais

Memória Cache: Funcionamento

Memória Cache: Funcionamento Microcontroladores e Interfaces º Ano Eng. Electrónica Industrial Carlos A. Silva º Semestre de 5/6 http://www.dei.uminho.pt/lic/mint Assunto: Memória Cache Aula #9 9Maio6-M Memória Cache: Funcionamento

Leia mais

Arquitectura de Computadores (ACom)

Arquitectura de Computadores (ACom) Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 23: Título: Sumário: Memória paginada; Tabela de páginas; Tabela de páginas hierárquica. 2014/2015

Leia mais

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Arquitetura e Organização de Processadores. Aula 4. Pipelines Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de

Leia mais

Memória cache (cont.) Sistemas de Computação

Memória cache (cont.) Sistemas de Computação Memória cache (cont.) Sistemas de Computação Memórias cache CPU procura por dados em L, depois em L2 e finalmente na memória principal CPU registradores barramento de cache L cache ALU barramento de sistema

Leia mais

Aula 06. Slots para Memórias

Aula 06. Slots para Memórias Aula 06 Slots para Memórias Slot para as memórias 2 Slot para as memórias Os soquetes de memória são numerados: 1, 2 e 3. Instale memória primeiro no 1, depois no 2, depois no 3. Normalmente não é permitido

Leia mais

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup Memória Níveis de memória Diferentes velocidades de acesso Pequeno Alto(a) Cache RAM Auxiliar Auxiliar-Backup Memória Cache altíssima velocidade de acesso acelerar o processo de busca de informações na

Leia mais

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador. Universidade Estácio de Sá Curso de Informática Disciplina de Organização de Computadores II Prof. Gabriel P. Silva - 1 o Sem. / 2005 2 ª Lista de Exercícios 1) O que é o relógio de um sistema digital?

Leia mais

DCC-IM/NCE UFRJ Pós-Graduação em Informática. Gabriel P. Silva. Microarquiteturas de Alto Desempenho

DCC-IM/NCE UFRJ Pós-Graduação em Informática. Gabriel P. Silva. Microarquiteturas de Alto Desempenho DCC-IM/NCE UFRJ Pós-Graduação em Informática Microarquiteturas de Alto Desempenho Hierarquia de Memória Gabriel P. Silva Introdução Os programadores sempre ambicionaram ter quantidades ilimitadas de memória

Leia mais

Tecnologias de Memória

Tecnologias de Memória Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Carlos A. Silva 2º Semestre de 2005/2006 http://www.dei.uminho.pt/lic/mint Assunto: Sistema de Memória Aula #8 2Maio06-M Memórias SRAM:

Leia mais

Microcontroladores e Interfaces

Microcontroladores e Interfaces Microcontroladores e Interfaces 3º Ano Eng. Electrónica Industrial Carlos A. Silva 2º Semestre de 2005/2006 http://www.dei.uminho.pt/lic/mint Assunto: Sistema de Memória Aula #8 2 Maio 06 - M Memórias

Leia mais

Instituto de Matemática e Estatística - USP MAC Organização de Computadores EP1. Experimentos com o cache. Tiago Andrade Togores

Instituto de Matemática e Estatística - USP MAC Organização de Computadores EP1. Experimentos com o cache. Tiago Andrade Togores Instituto de Matemática e Estatística - USP MAC0412 - Organização de Computadores EP1 Experimentos com o cache Tiago Andrade Togores - 6514230 30 de setembro de 2010 Sumário 1 Introdução 2 1.1 O que é

Leia mais

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais

Memória virtual. Pedro Cruz. EEL770 Sistemas Operacionais Memória virtual Pedro Cruz EEL770 Sistemas Operacionais Avisos Menos de um mês para a 1ª apresentação do trabalho Dia 22/9/2017 O que fizeram até agora? Análises Estratégias Problemas Soluções Presenças

Leia mais

Arquitetura de Computadores. Processamento Paralelo

Arquitetura de Computadores. Processamento Paralelo Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple

Leia mais

Arquitetura de Computadores. Memórias

Arquitetura de Computadores. Memórias Arquitetura de Computadores Memórias Relembrando Arquitetura de Von Neuman Memória Acesso por palavra Programas são armazenados aqui Controlador de memoria Dispositivos de entrada Dispositivos de saída

Leia mais

Memória. Conceitos gerais Hierarquia de memórias

Memória. Conceitos gerais Hierarquia de memórias Memória Conceitos gerais Hierarquia de memórias Memória Componente do computador onde os programas e os dados são guardados. Consistem num conjunto de células, cada uma com um identificador: endereço.

Leia mais

SSC0640 Sistemas Operacionais I

SSC0640 Sistemas Operacionais I SSC0640 Sistemas Operacionais I 15ª Aula Gerenciamento de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano

Leia mais

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é 1. A pastilha do processador Intel 80486 possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é organizado com mapeamento associativo por conjuntos de quatro

Leia mais

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca Sistemas Operacionais Gerenciamento de Memória Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Memória Física vs. Memória do Programa Memória P Física Tamanho dos softwares

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 21ª Aula Arquiteturas Paralelas Arquitetura MIMD com Memória Compartilhada Coerência de Cache Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Memórias Cache Políticas

Leia mais

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES Tecnologia da informação e comunicação UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES CICLO DE INSTRUÇÕES OU DE EXECUÇÃO Arquitetura de computadores 2 CICLO DE EXECUÇÃO No inicio de cada ciclo de instrução,

Leia mais

Sistemas Operacionais. Gerenciamento de Memória

Sistemas Operacionais. Gerenciamento de Memória Sistemas Operacionais Gerenciamento de Memória Prof. Arliones Hoeller arliones.hoeller@ifsc.edu.br Abril de baseado no material do Prof. Fröhlich em http://www.lisha.ufsc.br/~guto 6 de março de Prof. Arliones

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

Arquitectura de Computadores (ACom)

Arquitectura de Computadores (ACom) Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 24: Título: Sumário: - II ; memória virtual - caches. 2014/2015 Nuno.Roma@tecnico.ulisboa.pt Arquitectura

Leia mais

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual AULA Nº 11 SISTEMAS OPERACIONAIS Técnicas de Memória Virtual 1 Contextualizando Vimos Introdução ao Gerenciamento de Memória Agora Técnicas de Memória Virtual 2 O que é Memória Virtual (MV)? É uma técnica

Leia mais

Prof. Frank Sill Torres DELT Escola de Engenharia UFMG

Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Sistemas, Processadores e Periféricos Aula 7 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professores Leandro

Leia mais

Sistemas Operacionais: Memória Virtual

Sistemas Operacionais: Memória Virtual Sistemas Operacionais: Memória Virtual Memória virtual Memória virtual: separação entre a visão lógica do usuário e a memória física Somente uma parte do programa necessita estar na memória para executar

Leia mais

Sistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

Sistemas de Memória. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro Sistemas de Memória Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Memória: O Gargalo de Von Neuman Memória principal: considerada como sendo

Leia mais

Circuitos Lógicos Aula 26

Circuitos Lógicos Aula 26 Circuitos Lógicos Aula 26 Aula passada Mais adição Circuito com maior largura Subtração Mais ULA Aula de hoje Memória Funcionamento e arquitetura ROM, RAM e variações Processador Intel Memória Memória:

Leia mais

Arquitetura de Sistemas Operacionais

Arquitetura de Sistemas Operacionais Arquitetura de Sistemas Operacionais Francis Berenger Machado Luiz Paulo Maia Capítulo 10 Gerência de Memória Virtual Cap 10 Gerência de Memória Virtual 1 Sumário Introdução Espaço de Endereçamento Virtual

Leia mais