of 61/61
Arquitectura de Computadores – Evolução da arquitectura básica 1 José Delgado © 2011 Evolução da arquitectura básica Processamento em estágios (com pipeline) • Caches Memória virtual

Arquitectura de Computadores – Evolução da arquitectura básica1José Delgado © 2011 Evolução da arquitectura básica Processamento em estágios (com pipeline)

  • View
    104

  • Download
    1

Embed Size (px)

Text of Arquitectura de Computadores – Evolução da arquitectura básica1José Delgado © 2011 Evolução...

  • Slide 1
  • Arquitectura de Computadores Evoluo da arquitectura bsica1Jos Delgado 2011 Evoluo da arquitectura bsica Processamento em estgios (com pipeline) Caches Memria virtual
  • Slide 2
  • Arquitectura de Computadores Evoluo da arquitectura bsica2Jos Delgado 2011 A microprogramao sequencial A microprogramao divide o processamento de uma instruo em vrios estgios: Busca instruo (BI) Descodifica instruo (DI) Busca operandos (BO) Executa instruo (EI) Escreve resultado (ER) BIDIBOEIERBIDIBOEIERBIDIBOEIER
  • Slide 3
  • Arquitectura de Computadores Evoluo da arquitectura bsica3Jos Delgado 2011 Processamento com pipeline Cada estgio efectuado por um bloco de hardware diferente Comea-se a tratar da instruo seguinte mal acabe o primeiro estgio da instruo corrente. BI DI BI BO DI BI EI BO DI BI ER EI BO DI BI ER EI BO DI BI ER EI BO DI ER EI BO ER EI ER BIDIBOEIERBIDIBOEIERBIDIBOEIER O tempo que cada instruo demora a executar mantm-se. Mas o processador completa uma instruo por cada ciclo de relgio!
  • Slide 4
  • Arquitectura de Computadores Evoluo da arquitectura bsica4Jos Delgado 2011 Desempenho do pipeline A latncia (tempo de espera at que uma dada instruo acabe) mantm-se. O que melhora o ritmo (nmero de instrues executadas por unidade de tempo). BIDI BI BO DI BI EI BO DI BI ER EI BO DI BI ER EI BO DI BI ER EI BO DI ER EI BO ER EIER Idealmente, o pipeline melhora o desempenho N vezes, mas: H estgios inactivos durante o enchimento/esvaziamento; Nem todas as instrues necessitam dos estgios todos; A frequncia do relgio limitada pelo estgio mais lento; A sequncia temporal foi alterada (escala de tempos sobreposta), o que cria problemas de dependncias (ler um valor antes de ele ter sido produzido, por exemplo).
  • Slide 5
  • Arquitectura de Computadores Evoluo da arquitectura bsica5Jos Delgado 2011 Unidade de dados com pipeline PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados + MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruo Escreve resultado MUXMUX
  • Slide 6
  • Arquitectura de Computadores Evoluo da arquitectura bsica6Jos Delgado 2011 Organizao do pipeline Os registos NO so edge-triggered. Permitem escrita na primeira metade do relgio e leitura na segunda (incluindo os dados escritos na primeira metade read-after-write). Memrias de instrues e de dados separados, para maior eficincia (na realidade, s as caches esto separadas a ver mais tarde). PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados + MUXMUX EA EB EE DE DA DB Endereo MUXMUX
  • Slide 7
  • Arquitectura de Computadores Evoluo da arquitectura bsica7Jos Delgado 2011 + MUXMUX MOV 1 estgio PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruo Escreve resultado
  • Slide 8
  • Arquitectura de Computadores Evoluo da arquitectura bsica8Jos Delgado 2011 + MUXMUX MOV 2 estgio PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruo Escreve resultado
  • Slide 9
  • Arquitectura de Computadores Evoluo da arquitectura bsica9Jos Delgado 2011 + MUXMUX MOV 3 estgio PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruo Escreve resultado
  • Slide 10
  • Arquitectura de Computadores Evoluo da arquitectura bsica10Jos Delgado 2011 + MUXMUX MOV 4 estgio PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruo Escreve resultado
  • Slide 11
  • Arquitectura de Computadores Evoluo da arquitectura bsica11Jos Delgado 2011 + MUXMUX MOV, ADD, JMP Passo 1 PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruoEscreve resultado MOV
  • Slide 12
  • Arquitectura de Computadores Evoluo da arquitectura bsica12Jos Delgado 2011 + MUXMUX MOV, ADD, JMP Passo 2 PC Memria de instrues +1 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruo Escreve resultado PC +2 MUXMUX MOVADD
  • Slide 13
  • Arquitectura de Computadores Evoluo da arquitectura bsica13Jos Delgado 2011 + MUXMUX MOV, ADD, JMP Passo 3 PC Memria de instrues +1 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruo Escreve resultado PC +2 MUXMUX MOVADDJMP
  • Slide 14
  • Arquitectura de Computadores Evoluo da arquitectura bsica14Jos Delgado 2011 + MUXMUX MOV, ADD, JMP Passo 4 PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruoEscreve resultado MOVADD JMP...
  • Slide 15
  • Arquitectura de Computadores Evoluo da arquitectura bsica15Jos Delgado 2011 + MUXMUX MOV, ADD, JMP Passo 5 PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruoEscreve resultado JMP...ADD...
  • Slide 16
  • Arquitectura de Computadores Evoluo da arquitectura bsica16Jos Delgado 2011 + MUXMUX MOV, ADD, JMP Passo 6 PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Busca instruoDescodifica instruo e obtm operandos Executa instruoEscreve resultado...
  • Slide 17
  • Arquitectura de Computadores Evoluo da arquitectura bsica17Jos Delgado 2011 + MUXMUX Controlo PC Memria de instrues +2 MUXMUX Registos MUXMUX ALU Memria de dados MUXMUX EA EB EEDE DA DB Endereo EA Endereo registo A EB Endereo registo B DA Contedo registo A DB Contedo registo B DE Dado a escrever EE Endereo do registo a escrever Controlo
  • Slide 18
  • Arquitectura de Computadores Evoluo da arquitectura bsica18Jos Delgado 2011 Conflitos de dados As setas indicam as dependncias entre instrues: As caudas indicam onde os registos so escritos As cabeas indicam onde os registos so lidos Setas para trs indicam conflitos de dados Formas de resolver o problema: Atrasando as instrues seguintes Disponibilizando os dados mais cedo (data forwarding) BIDBOEIER BIDBOEIER BIDBOEIER MOV R1, R2 ADD R3, R1 ADD R1, R3 R1 R2 R3 R3 + R1 R1 R1 + R3
  • Slide 19
  • Arquitectura de Computadores Evoluo da arquitectura bsica19Jos Delgado 2011 Atraso das instrues em SW Soluo em software (implementada pelo compilador) inserir instrues dummy: BIDBOEIER MOV R1, R2 BIDBOEIER ADD R1, R3 R1 R1 + R3 BIDBOEIER ADD R3, R1 R3 R3 + R1 BIDBOEIER BIDBOEIER R1 R2 NOP BIDBOEIER BIDBOEIER BIDBOEIER MOV R1, R2 ADD R3, R1 ADD R1, R3 R1 R2 R3 R3 + R1 R1 R1 + R3
  • Slide 20
  • Arquitectura de Computadores Evoluo da arquitectura bsica20Jos Delgado 2011 Atraso das instrues em HW Soluo em hardware (implementada pela unidade de controlo do processador) inserir bolhas (desperdiar ciclos do estgio do pipeline): BIDBOEIER MOV R1, R2 EIER ADD R1, R3 R1 R1 + R3 EIER ADD R3, R1 R3 R3 + R1 BIDBO BIDBO R1 R2 ADD R3, R1 ADD R1, R3 DBOBI DBO Bolhas BIDBOEIER BIDBOEIER BIDBOEIER MOV R1, R2 ADD R3, R1 ADD R1, R3 R1 R2 R3 R3 + R1 R1 R1 + R3
  • Slide 21
  • Arquitectura de Computadores Evoluo da arquitectura bsica21Jos Delgado 2011 Antecipao dos dados No esperar pelo Escreve resultado mas usar logo os dados que j esto disponveis no estgio de execuo (sada da ALU). A escrita do resultado nos registos sucede em paralelo. BIDBOEIER BIDBOEIER BIDBOEIER MOV R1, R2 ADD R3, R1 ADD R1, R3 R1 R2 R3 R3 + R1 R1 R1 + R3 Conflito Data forwarding
  • Slide 22
  • Arquitectura de Computadores Evoluo da arquitectura bsica22Jos Delgado 2011 Antecipao dos dados (cont.)
  • Slide 23
  • Arquitectura de Computadores Evoluo da arquitectura bsica23Jos Delgado 2011 Exerccios de pipelines 1.Um processador com um pipeline com 5 estgios 5 vezes mais rpido (para a mesma frequncia de relgio) do que um processador sem pipeline. Concorda com esta afirmao? Porqu? 2.Considere o cdigo seguinte e assuma que para ser executado num processador com um pipeline de 4 estgios (o usado nestes slides) ADDR2, R4 ADDR5, R2 MOVR3, [R5+6] ADDR3, R5 a)Identifique todas as dependncias de dados que tero problemas neste pipeline. b)Indique que dependncias podero ser resolvidas com antecipao dos dados (data forwarding)
  • Slide 24
  • Arquitectura de Computadores Evoluo da arquitectura bsica24Jos Delgado 2011 Hierarquia de memria Os computadores possuem uma hierarquia de memria com vrios nveis. As caches tm cpias das clulas de memria mais usadas e so de funcionamento automtico. A memria central (ou principal) pode servir de cache do disco (memria virtual) O disco pode servir de cache informao em servidores. Os mirrors so servidores que actuam como caches de outros. Cache nvel 2 (RAM esttica) 4 MB Memria central (RAM dinmica) 2 GB Disco 300 GB Processador registos Cache 32 KB menor tempo de acesso maior capacidade, menor custo
  • Slide 25
  • Arquitectura de Computadores Evoluo da arquitectura bsica25Jos Delgado 2011 PEPE com caches As caches so pequenas memrias internas (mais rpidas que a memria externa) que contm os dados e instrues mais usados (do ao ncleo do processador a iluso de memrias separadas).
  • Slide 26
  • Arquitectura de Computadores Evoluo da arquitectura bsica26Jos Delgado 2011 Princpios de funcionamento das caches Felizmente, os programas acedem memria com: Localidade temporal. Se um endereo for acedido agora, h uma grande probabilidade de ser acedido no futuro prximo (ciclos, rotinas de invocao frequente, dados importantes); Localidade espacial. Se um endereo for acedido, a probabilidade de os prximos acessos serem em endereos prximos grande (execuo sequencial, ciclos, arrays cujos dados so acedidos sequencialmente). Assim, a cache s tem as clulas de memria mais frequentemente acedidas. Pode ser mais pequena que a memria completa, logo muito mais rpida sem o custo ser muito elevado.
  • Slide 27
  • Arquitectura de Computadores Evoluo da arquitectura bsica27Jos Delgado 2011 Acesso s caches Quando se acede a um determinado endereo: Se a clula com esse endereo estiver na cache, o acesso muito rpido (cache hit); Se no estiver, d-se um cache miss. Tem de se ir memria principal, carregar essa clula na cache e repetir o acesso. O desempenho das caches normalmente medido pelo hit rate (percentagem mdia dos acessos com cache hit, tipicamente superiores a 95%) Tambm se pode falar na miss rate (percentagem mdia dos acessos com cache miss = 1 hit rate), tipicamente inferior a 5%.
  • Slide 28
  • Arquitectura de Computadores Evoluo da arquitectura bsica28Jos Delgado 2011 Desempenho das caches Quanto maior a cache face memria principal, maior a hit rate. Tem um impacto grande no desempenho, mas tambm no custo (os Celerons, mais baratos, so Pentiums com metade da cache) Supondo: Tempo de acesso da cache: 5 ns Tempo de acesso da memria principal: 50 ns Hit rate mdia: 95% Ento, o tempo de acesso mdio ser: 0.95 * 5 ns + 0.05 * 55 ns = 7. 5 ns Ou seja, 50 ns/7.5 ns = 6.7 vezes mais rpido do que se s tivessemos a memria principal
  • Slide 29
  • Arquitectura de Computadores Evoluo da arquitectura bsica29Jos Delgado 2011 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 1111 0000 1111 0001 1111 0010 1111 0011 1111 0100 1111 0101 1111 0110 1111 0111 etiquetandice 2 bits6 bits... 00 01 10 11 etiqueta dados endereo memria 0 0 0 0 vlido cache Caches de mapeamento directo Cada clula da cache s pode ter uma das clulas de memria que tenham o mesmo ndice A etiqueta identifica o resto do endereo (distinguindo entre clulas com o mesmo ndice) 0000011 1111011 1111001 0000011
  • Slide 30
  • Arquitectura de Computadores Evoluo da arquitectura bsica30Jos Delgado 2011 Como saber se um cache hit? Exemplo com um endereo (de byte) de 32 bits, um bus de dados de 32 bits e uma cache de mapeamento directo de 1K palavras: 0 1 1 bit20 bits32 bits validadeetiquetadados 2 3... 1021 1022 1023... =? Cache hit processador Endereo (32 bits) 10 20 2 byte
  • Slide 31
  • Arquitectura de Computadores Evoluo da arquitectura bsica31Jos Delgado 2011 E se for um cache miss? O controlador da cache carrega automaticamente a palavra em falta (o processador pode ter de esperar). Em seguida repete o acesso (que j d cache hit). 0 1 1 bit20 bits32 bits validadeetiquetadados 2 3... 1021 1022 1023... Endereo (32 bits) 10 20 1 Memria principal 2 byte
  • Slide 32
  • Arquitectura de Computadores Evoluo da arquitectura bsica32Jos Delgado 2011 Localidade espacial Ter na cache as palavras recentemente acedidas explora a localidade temporal, mas no a espacial. A localidade espacial pode ser aproveitada lendo para a cache no uma palavra mas vrias de endereos consecutivos (bloco). Assim, enquanto o processador aceder aos endereos das palavras no bloco no ser necessrio efectuar carregamentos na cache (porque d cache hit). O bloco passa a ser a unidade de leitura e escrita da memria.
  • Slide 33
  • Arquitectura de Computadores Evoluo da arquitectura bsica33Jos Delgado 2011 Cache com blocos de 4 palavras 0 1 Validade (1 bit)Etiqueta (20 bits) Dados (4 x 32 bits) 2... 253 254 255... =? Cache hit processador Endereo (32 bits) 820 Multiplexer 22 Byte na palavra
  • Slide 34
  • Arquitectura de Computadores Evoluo da arquitectura bsica34 Quais os endereos (de byte) das palavras no mesmo bloco (que partilham a mesma etiqueta)? 3080H000 0011 0000 1000 0000 3084H000 0011 0000 1000 0100 3088H000 0011 0000 1000 1000 308CH000 0011 0000 1000 1100 Onde armazenada a palavra com endereo (de byte) 03088H? Endereo em binrio: 0... 00 0011 0000 1000 1000 Jos Delgado 2011 0 1 Validade (1 bit)Etiqueta (20 bits) Dados (4 x 32 bits) 2... 253 254 255 8 =? Cache hit processador Endereo (32 bits) 8 20 Multiplexer 2 Exemplo (endereos de byte) palavrandice etiqueta byte 2 20 8 22
  • Slide 35
  • Arquitectura de Computadores Evoluo da arquitectura bsica35Jos Delgado 2011 Mapeamento associativo O mapeamento directo tem o problema de dois blocos com o mesmo ndice no poderem coexistir na cache, mesmo que: os dois blocos estejam a ser muito usados o resto da cache esteja vazia!!! No mapeamento associativo qualquer bloco pode ocupar qualquer posio na cache, mas : A etiqueta tem de ser o endereo todo (para distinguir quaisquer blocos), excepto os bits de endereo da palavra dentro do bloco A procura do bloco (para ver se cache hit) j no por ndice. Tem de se comparar o endereo com a etiqueta em todos os blocos ao mesmo tempo (para ser rpido)
  • Slide 36
  • Arquitectura de Computadores Evoluo da arquitectura bsica36Jos Delgado 2011 Implementao da associatividade =? 28 Cache hit Endereo (32 bits) 2 Uma cache associativa precisa de muito hardware! byte 2
  • Slide 37
  • Arquitectura de Computadores Evoluo da arquitectura bsica37Jos Delgado 2011 Mapeamento associativo por conjuntos de K vias Uma soluo intermdia usar K caches de mapeamento directo e fazer a procura em todas elas em paralelo (mapeamento associativo de K vias). Uma linha das vrias caches de mapeamento directo um conjunto (uma cache associativa). =? hit etiquetandice palavra dentro do bloco conjunto Via 0Via 1 byte
  • Slide 38
  • Arquitectura de Computadores Evoluo da arquitectura bsica38Jos Delgado 2011 Variabilidade entre extremos Uma cache com N blocos pode ter K vias (K [0, N-1]), cada uma com N/K conjuntos de K blocos. Dentro de cada via o mapeamento directo. 0123456701234567 1 via, 8 conjuntos com 1 bloco cada 2 vias, 4 conjuntos com 2 blocos cada 01230123 4 vias, 2 conjuntos com 4 blocos cada 0101 8 vias, 1 conjunto com 8 blocos 0 Mapeamento directo Mapeamento associativo
  • Slide 39
  • Arquitectura de Computadores Evoluo da arquitectura bsica39Jos Delgado 2011 Poltica de substituio Onde colocar uma clula de memria que se foi buscar memria principal devido a um cache miss? Caches de mapeamento directo: na clula indicada pelo ndice Caches de mapeamento completamente associativo: Com lugares vagos: num lugar vago qualquer Cheia: no lugar da clula usada menos recentemente (LRU Least Recently Used) Na prtica, costuma usar-se um contador para ir escrevendo na clula seguinte, independentemente de estar cheia ou vazia, de ter sido muito usada ou no. um mtodo simples e no muito pior que os anteriores Caches associativas com K vias: obtm-se o conjunto atravs do ndice e escolhe-se uma via
  • Slide 40
  • Arquitectura de Computadores Evoluo da arquitectura bsica40Jos Delgado 2011 Poltica de escrita Quando a clula est na cache (write hit): Write-through: escreve-se na cache e na memria principal Write-back: escreve-se s na cache e s se actualiza a memria principal quando o bloco tem de sair da cache Quando a clula NO est na cache (write miss): Write around: escreve na memria principal sem escrever na cache (bom se a clula no for lida a curto prazo) Write allocate: faz um cache miss (carrega a clula) e faz write through
  • Slide 41
  • Arquitectura de Computadores Evoluo da arquitectura bsica41Jos Delgado 2011 Exerccios de caches 1.Considere uma cache de mapeamento directo com capacidade para 8 Kbytes de dados e blocos de 8 palavras de 32 bits, a usar por um processador de 32 bits, com endereamento de byte e 32 bits de endereo. a)Quantos bits deve ter a etiqueta de cada bloco? b)Quantos blocos que a cache consegue armazenar simultaneamente? c)Indique em que bloco (numerado entre 0 e o nmero obtido na alnea anterior menos um) ficar armazenada a palavra com o endereo 1000H. D a sua resposta em hexadecimal. d)Indique os endereos das palavras que ficam no mesmo bloco que a palavra com o endereo 1000H. e)D o endereo ( sua escolha) de duas palavras que nunca podero estar ao mesmo tempo na cache e explique porqu. f)Supondo que, para alm dos dados, a cache tem de guardar as etiquetas e os bits de validade, indique o nmero total de bits que a cache tem de poder armazenar. g)Indique qual o overhead da cache em termos de capacidade, isto , o rcio
  • Slide 42
  • Arquitectura de Computadores Evoluo da arquitectura bsica42Jos Delgado 2011 Exerccios de caches (cont.) 2.Pretende-se escolher um sistema de cache para um determinado processador. Assume-se 8 blocos, cada um com 1 palavra do processador, mas qual o melhor tipo de cache? Para melhor se aferir o comportamento dos vrios tipos de cache dispe-se de um simulador em que se regista os acessos referida cache. No simulador executa-se um benchmark (programa de teste) que acede aos seguintes endereos (em decimal): 1, 4, 8, 5, 20, 17, 19, 56, 9, 11, 4, 43, 5, 6, 9, 17. Admita que a cache est inicialmente vazia e que o algoritmo de substituio de blocos LRU (quando se aplicar). a)Preenchendo as tabelas seguintes (so dadas as duas primeiras linhas para servir de exemplo), represente para os tipos de cache nelas indicados: i.os sucessivos contedos da cache (usando a notao M[endereo] para representar o contedo de uma dada posio de memria) ii.o tipo de acesso (hit ou miss) iii.a miss rate b)Em que medida que o aumento da dimenso da cache (mais blocos ou mais vias, conforme o caso) para o dobro melhoraria a miss rate de cada um dos sistemas referidos, no caso deste benchmark?
  • Slide 43
  • Arquitectura de Computadores Evoluo da arquitectura bsica43Jos Delgado 2011 Exerccios (endereos de palavra) Caso A - Cache de mapeamento directo com 8 blocos de 1 palavra cada Endereo memria hit ou miss N de bloco 01234567 1missM[1] 4missM[1]M[4] 8 5 20 17 19 56 9 11 4 43 5 6 9 17 Miss rate%
  • Slide 44
  • Arquitectura de Computadores Evoluo da arquitectura bsica44Jos Delgado 2011 Caso B - Cache associativa de 2 vias com um total de 8 blocos de 1 palavra cada Endereo memria hit ou miss N de bloco via 0N de bloco via 1 01230123 1missM[1] 4missM[4]M[1] 8 5 20 17 19 56 9 11 4 43 5 6 9 17 Miss rate% Exerccios (endereos de palavra)
  • Slide 45
  • Arquitectura de Computadores Evoluo da arquitectura bsica45Jos Delgado 2011 Caso C - Cache associativa de 4 vias com um total de 8 blocos de 1 palavra cada Endereo memria hit ou miss N de bloco via 0N de bloco via 1N de bloco via 2N de bloco via 3 01010101 1missM[1] 4missM[4]M[1] 8 5 20 17 19 56 9 11 4 43 5 6 9 17 Miss rate% Exerccios (endereos de palavra)
  • Slide 46
  • Arquitectura de Computadores Evoluo da arquitectura bsica46Jos Delgado 2011 Caso D - Cache totalmente associativa com um total de 8 blocos de 1 palavra cada Endereo memria hit ou miss N de bloco 01234567 1missM[1] 4missM[1]M[4] 8 5 20 17 19 56 9 11 4 43 5 6 9 17 Miss rate% Exerccios (endereos de palavra)
  • Slide 47
  • Arquitectura de Computadores Evoluo da arquitectura bsica47Jos Delgado 2011 Memria virtual Mecanismo que permite tratar a memria principal como cache de uma memria virtual (no existe na realidade) igual ao somatrio dos espaos de endereamento dos vrios processos. As zonas de memria virtual no carregadas em memria principal e com dados/cdigo dos processos esto em disco (swap file) O mecanismo de traduo de endereos virtuais (os que os processos vem) para fsicos transparente e automtico. Tambm actua como mecanismo de proteco (porque um processo no tem acesso ao espao de endereamento dos outros).
  • Slide 48
  • Arquitectura de Computadores Evoluo da arquitectura bsica48Jos Delgado 2011 Espao de endereamento virtual O espao de endereamento virtual existe parte em memria fsica, parte em disco. Endereos virtuais Endereos fsicos Endereos no disco Traduo de Endereos
  • Slide 49
  • Arquitectura de Computadores Evoluo da arquitectura bsica49Jos Delgado 2011 Memria virtual paginada Para optimizar, o espao de endereamento dividido em pginas, todas de igual dimenso (4 Kbytes, por exemplo). Assim, apenas necessrio traduzir o endereo de base da pgina, de virtual para fsico. Os espaos de endereamento virtual e fsico podem ter dimenses diferentes. N pgina virtualDeslocamento N pgina fsicaDeslocamento Traduo virtual fsico 0 011 1231 12
  • Slide 50
  • Arquitectura de Computadores Evoluo da arquitectura bsica50Jos Delgado 2011 Tabela de pginas N pgina virtualDeslocamento 0111231 N pgina fsicaDeslocamento 0113112 Registo com endereo base da tabela Tabela de pginas 1 se a pgina estiver carregada em memria
  • Slide 51
  • Arquitectura de Computadores Evoluo da arquitectura bsica51Jos Delgado 2011 Tamanho da tabela de pginas N pgina virtualDeslocamento 0111231 N pgina fsicaDeslocamento 0 31 Registo com endereo base da tabela Tabela de pginas 1 se a pgina estiver carregada em memria 1112 Assim, a tabela de pginas: feita em vrios nveis hierrquicos s tem as entradas necessrias est, ela prpria, sujeita ao mecanismo de memria virtual Se o espao virtual for de 32 bits (4 Gbytes) e a pgina for de 4 Kbytes, ento a tabela de pginas tem 1 M entradas de 32 bits. Ou seja, gasta 4 Mbytes! Se o espao virtual for de 48 bits, gasta 64 K vezes mais, ou 256 Gbytes!!!
  • Slide 52
  • Arquitectura de Computadores Evoluo da arquitectura bsica52Jos Delgado 2011 Tabela de pginas hierrquica 4 Kbytes pginas fsicas 1 K entradas (4 Kbytes)... Tabelas de pginas... deslocamento Directrio registo As prprias tabelas de pginas esto na memria virtual (sujeitas a swapping), excepto o directrio. N de pgina virtual 12 bits10 bits
  • Slide 53
  • Arquitectura de Computadores Evoluo da arquitectura bsica53Jos Delgado 2011 Traduo de endereos A traduo do nmero de pgina virtual para fsico implica aceder s tabelas. 4 Kbytes pginas fsicas 1 K entradas (4 Kbytes)... Tabelas de pginas... deslocamento Directrio registo N de pgina virtual 12 bits10 bits incomportvel percorrer as vrias tabelas em cada acesso memria!!! Soluo: cache que tenha a traduo de endereos das pginas mais usadas. Se houver um cache hit, a cache diz logo qual o endereo fsico da pgina. Se houver um cache miss, ento preciso percorrer as vrias tabelas.
  • Slide 54
  • Arquitectura de Computadores Evoluo da arquitectura bsica54Jos Delgado 2011 TLB TLB = Translation Lookaside Buffer (cache de traduo de endereos virtuais para fsicos). Etiqueta Dados Nmero de pgina virtualDeslocamento Nmero de pgina fsicaDeslocamento Vlido Alterada
  • Slide 55
  • Arquitectura de Computadores Evoluo da arquitectura bsica55Jos Delgado 2011 Falta de pgina (page fault) Page fault acesso a uma pgina que no est carregada em memria. 4 Kbytes pginas fsicas 1 K entradas (4 Kbytes)... Tabelas de pginas... deslocamento Directrio registo N de pgina virtual 12 bits10 bits A ocorrncia de uma page fault gera uma excepo. O sistema operativo reponsvel por percorrer as tabelas de pginas e carregar a pgina em falta. Esta operao lenta. preciso: Percorrer as vrias tabelas (vrios acessos memria) Carregar as tabelas de pginas que no estiverem em memria Carregar a pgina que originou a page fault Felizmente, os programas tm localidade espacial e temporal e esta operao no acontece em todos os acessos!
  • Slide 56
  • Arquitectura de Computadores Evoluo da arquitectura bsica56Jos Delgado 2011 Memria virtual + caches Endereo virtual (32 bits) Nmero de pgina virtualDeslocamento EtiquetaN pgina fsica Vlido Alterada Nmero de pgina fsicaDeslocamento Endereo fsico (32 bits) 2012 20 TLB Etiqueta fsicandice =? hit 16 124 Palavra dentro do bloco + byte Palavra acedida Cache Palavra pretendida 4 Kbytes pginas fsicas 1 K entradas (4 Kbytes)... Tabelas de pginas... deslocamento Directrio registo N de pgina virtual 12 bits10 bits TLB fault
  • Slide 57
  • Arquitectura de Computadores Evoluo da arquitectura bsica57Jos Delgado 2011 Tipos de misses Nmero de pgina virtualDeslocamento Etiqueta N pgina fsica VlidoAlterada Nmero de pgina fsicaDeslocamento 2012 20 Etiqueta fsicandice =? hit 16 124 Palavra dentro do bloco + byte Palavra acedida O que pode falhar no acesso: Cache miss (um acesso memria) TLB miss (vrios acessos memria) Page fault (acesso ao disco) As cache e TLB misses medem-se em dezenas de ciclos de relgio. As page faults medem-se em dezenas de milisegundos (pode implicar vrios acessos ao disco). Felizmente, estas situaes so a excepo e no a regra!... Page fault
  • Slide 58
  • Arquitectura de Computadores Evoluo da arquitectura bsica58Jos Delgado 2011 Exerccios de memria virtual 1.Um sistema de memria virtual tem um tamanho de pgina de 1000 palavras, 8 pginas virtuais e 4 pginas fsicas. Assuma que inicialmente a tabela de pginas est vazia (nenhuma pgina carregada em memria). a)Preencha a tabela seguinte com o estado que ter aps acesso aos endereos (de palavra) virtuais 7000, 2000, 5000, 1000. Pgina virtualPgina fsica 0 1 2 3 4 5 6 7 b)Aps estes acessos, quais os endereos fsicos dos endereos virtuais 0, 3728, 999, 1025, 7800 e 4096 (endereos de palavra)? c)D um exemplo de um endereo virtual que provoque agora uma page fault
  • Slide 59
  • Arquitectura de Computadores Evoluo da arquitectura bsica59Jos Delgado 2011 Exerccios de memria virtual 2.O TLB de um sistema de memria virtual, com 20 bits de nmero de pgina virtual, 12 bits de nmero de pgina fsica e 12 bits de deslocamento dentro de cada pgina, est actualmente com o contedo indicado pela tabela seguinte. VlidaAlteradaN pg. virtualN pg. fsica 1101AF4HFFFH 000E45FHE03H 00012FFH2F0H 1001A37H788H 1002BB4H45CH 1103CA0H657H a)Qual a dimenso de cada pgina? b)Qual a dimenso dos espaos de endereamento virtual e fsico? c)Indique, para cada um dos endereos virtuais seguintes, o respectivo endereo fsico (ou se originam page fault): 2BB4A65H, E45FB32H, D34E9DCH, 3CA0777H e 1AF4E06H. d)Para cada um destes endereos, indique quais no foram, garantidamente, escritos desde que foram carregados em memria.
  • Slide 60
  • Arquitectura de Computadores Evoluo da arquitectura bsica60Jos Delgado 2011 3.Um processador tem: i.um TLB completamente associativo de 2 palavras, com algoritmo de substituio FIFO (rotativo) ii.uma cache de mapeamento associativo de 2 vias, com um total com 8 blocos de 1 palavra cada. iii.uma tabela linear (um s nvel) de 8 pginas virtuais, com algoritmo de substituio LRU iv.uma memria fsica de 4 pginas v.uma pgina com 256 palavras de dimenso vi.endereamento exclusivamente em palavras (bytes no) a)Qual a dimenso, em palavras, dos espaos de endereamento virtual e fsico? b)Assumindo que inicialmente a memria no tem nenhum programa ou dados carregados, preencha a tabela seguinte, indicando o que acontece em cada acesso aos endereos virtuais indicados e qual o estado em que o sistema fica. Use a notao M[endereo] para indicar o contedo da cache. No TLB indique o n de pgina virtual e fsica. As duas primeiras colunas esto preenchidas para servir de exemplo. Exerccios de memria virtual
  • Slide 61
  • Arquitectura de Computadores Evoluo da arquitectura bsica61Jos Delgado 2011 Endereo virtual5057A03225F53225054C0435100723 TLB 05050 171 TLB miss/hitmiss Tabela pginas 0 1 2 3 4 500 6 71 Page fault/hitmiss Endereo fsico0051A0 Cache 0M[1A0] 1M[005] 2 3 0 1 2 3 Cache miss/hitmiss Exerccios de memria virtual