A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura de Computadores – Evolução da arquitetura básica1José Delgado © 2012 Evolução da arquitetura básica Processamento em estágios (com pipeline)

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Computadores – Evolução da arquitetura básica1José Delgado © 2012 Evolução da arquitetura básica Processamento em estágios (com pipeline)"— Transcrição da apresentação:

1 Arquitetura de Computadores – Evolução da arquitetura básica1José Delgado © 2012 Evolução da arquitetura básica Processamento em estágios (com pipeline) Caches Memória virtual

2 Arquitetura de Computadores – Evolução da arquitetura básica2José Delgado © 2012 A microprogramação é sequencial A microprogramação divide o processamento de uma instrução em vários estágios: –Busca instrução (BI) –Descodifica instrução (DI) –Busca operandos (BO) –Executa instrução (EI) –Escreve resultado (ER) BIDIBOEIERBIDIBOEIERBIDIBOEIER

3 Arquitetura de Computadores – Evolução da arquitetura básica3José Delgado © 2012 Processamento com pipeline Cada estágio é efetuado por um bloco de hardware diferente Começa-se a tratar da instrução seguinte mal acabe o primeiro estágio da instrução 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 instrução demora a executar mantém-se. Mas o processador completa uma instrução por cada ciclo de relógio!

4 Arquitetura de Computadores – Evolução da arquitetura básica4José Delgado © 2012 Desempenho do pipeline A latência (tempo de espera até que uma dada instrução acabe) mantém-se. O que melhora é o ritmo (número de instruções 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á estágios intivos durante o enchimento/esvaziamento; –Nem todas as instruções necessitam dos estágios todos; –A frequência do relógio é limitada pelo estágio mais lento; –A sequência temporal foi alterada (escala de tempos sobreposta), o que cria problemas de dependências (ler um valor antes de ele ter sido produzido, por exemplo).

5 Arquitetura de Computadores – Evolução da arquitetura básica5José Delgado © 2012 Unidade de dados com pipeline PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados + MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instrução Escreve resultado MUXMUX

6 Arquitetura de Computadores – Evolução da arquitetura básica6José Delgado © 2012 Organização do pipeline Os registos NÃO são edge-triggered. Permitem escrita na primeira metade do relógio e leitura na segunda (incluindo os dados escritos na primeira metade – read-after-write). Memórias de instruções e de dados separados, para maior eficiência (na realidade, só as caches estão separadas – a ver mais tarde). PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados + MUXMUX EA EB EE DE DA DB Endereço MUXMUX

7 Arquitetura de Computadores – Evolução da arquitetura básica7José Delgado © MUXMUX MOV – 1º estágio PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instrução Escreve resultado

8 Arquitetura de Computadores – Evolução da arquitetura básica8José Delgado © MUXMUX MOV – 2º estágio PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instrução Escreve resultado

9 Arquitetura de Computadores – Evolução da arquitetura básica9José Delgado © MUXMUX MOV – 3º estágio PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instrução Escreve resultado

10 Arquitetura de Computadores – Evolução da arquitetura básica10José Delgado © MUXMUX MOV – 4º estágio PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instrução Escreve resultado

11 Arquitetura de Computadores – Evolução da arquitetura básica11José Delgado © MUXMUX MOV, ADD, JMP – Passo 1 PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instruçãoEscreve resultado MOV

12 Arquitetura de Computadores – Evolução da arquitetura básica12José Delgado © MUXMUX MOV, ADD, JMP – Passo 2 PC Memória de instruções +1 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instrução Escreve resultado PC +2 MUXMUX MOVADD

13 Arquitetura de Computadores – Evolução da arquitetura básica13José Delgado © MUXMUX MOV, ADD, JMP – Passo 3 PC Memória de instruções +1 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instrução Escreve resultado PC +2 MUXMUX MOVADDJMP

14 Arquitetura de Computadores – Evolução da arquitetura básica14José Delgado © MUXMUX MOV, ADD, JMP – Passo 4 PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instruçãoEscreve resultado MOVADD JMP...

15 Arquitetura de Computadores – Evolução da arquitetura básica15José Delgado © MUXMUX MOV, ADD, JMP – Passo 5 PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instruçãoEscreve resultado JMP...ADD...

16 Arquitetura de Computadores – Evolução da arquitetura básica16José Delgado © MUXMUX MOV, ADD, JMP – Passo 6 PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Busca instruçãoDescodifica instrução e obtém operandos Executa instruçãoEscreve resultado...

17 Arquitetura de Computadores – Evolução da arquitetura básica17José Delgado © MUXMUX Controlo PC Memória de instruções +2 MUXMUX Registos MUXMUX ALU Memória de dados MUXMUX EA EB EEDE DA DB Endereço EA – Endereço registo A EB – Endereço registo B DA – Conteúdo registo A DB – Conteúdo registo B DE – Dado a escrever EE – Endereço do registo a escrever Controlo

18 Arquitetura de Computadores – Evolução da arquitetura básica18José Delgado © 2012 Conflitos de dados As setas indicam as dependências entre instruções: –As caudas indicam onde os registos são escritos –As cabeças indicam onde os registos são lidos Setas para trás indicam conflitos de dados Formas de resolver o problema: –Atrasando as instruções 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

19 Arquitetura de Computadores – Evolução da arquitetura básica19José Delgado © 2012 Atraso das instruções em SW Solução em software (implementada pelo compilador) inserir instruções 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

20 Arquitetura de Computadores – Evolução da arquitetura básica20José Delgado © 2012 Atraso das instruções em HW Solução em hardware (implementada pela unidade de controlo do processador) inserir bolhas (desperdiçar ciclos do estágio 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

21 Arquitetura de Computadores – Evolução da arquitetura básica21José Delgado © 2012 Antecipação dos dados Não esperar pelo Escreve resultado mas usar logo os dados que já estão disponíveis no estágio de execução (saída 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

22 Arquitetura de Computadores – Evolução da arquitetura básica22José Delgado © 2012 Antecipação dos dados (cont.)

23 Arquitetura de Computadores – Evolução da arquitetura básica23José Delgado © 2012 Exercícios de pipelines 1.Um processador com um pipeline com 5 estágios é 5 vezes mais rápido (para a mesma frequência de relógio) do que um processador sem pipeline. Concorda com esta afirmação? Porquê? 2.Considere o código seguinte e assuma que é para ser executado num processador com um pipeline de 4 estágios (o usado nestes slides) ADDR2, R4 ADDR5, R2 MOVR3, [R5+6] ADDR3, R5 a)Identifique todas as dependências de dados que terão problemas neste pipeline. b)Indique que dependências poderão ser resolvidas com antecipação dos dados (data forwarding)

24 Arquitetura de Computadores – Evolução da arquitetura básica24José Delgado © 2012 Hierarquia de memória Os computadores possuem uma hierarquia de memória com vários níveis. As caches têm cópias das células de memória mais usadas e são de funcionamento automático. A memória central (ou principal) pode servir de cache do disco (memória virtual) O disco pode servir de cache à informação em servidores. Os mirrors são servidores que atuam como caches de outros. Cache nível 2 (RAM estática) 4 MB Memória central (RAM dinâmica) 2 GB Disco 300 GB Processador registos Cache 32 KB menor tempo de acesso maior capacidade, menor custo

25 Arquitetura de Computadores – Evolução da arquitetura básica25José Delgado © 2012 PEPE com caches As caches são pequenas memórias internas (mais rápidas que a memória externa) que contêm os dados e instruções mais usados (dão ao núcleo do processador a ilusão de memórias separadas).

26 Arquitetura de Computadores – Evolução da arquitetura básica26José Delgado © 2012 Princípios de funcionamento das caches Felizmente, os programas acedem à memória com: –Localidade temporal. Se um endereço for acedido agora, há uma grande probabilidade de ser acedido no futuro próximo (ciclos, rotinas de invocação frequente, dados importantes); –Localidade espacial. Se um endereço for acedido, a probabilidade de os próximos acessos serem em endereços próximos é grande (execução sequencial, ciclos, arrays cujos dados são acedidos sequencialmente). Assim, a cache só tem as células de memória mais frequentemente acedidas. Pode ser mais pequena que a memória completa, logo muito mais rápida sem o custo ser muito elevado.

27 Arquitetura de Computadores – Evolução da arquitetura básica27José Delgado © 2012 Acesso às caches Quando se acede a um determinado endereço: –Se a célula com esse endereço estiver na cache, o acesso é muito rápido (cache hit); –Se não estiver, dá-se um cache miss. Tem de se ir à memória principal, carregar essa célula na cache e repetir o acesso. O desempenho das caches é normalmente medido pelo hit rate (percentagem média dos acessos com cache hit, tipicamente superiores a 95%) Também se pode falar na miss rate (percentagem média dos acessos com cache miss = 1 – hit rate), tipicamente inferior a 5%.

28 Arquitetura de Computadores – Evolução da arquitetura básica28José Delgado © 2012 Desempenho das caches Quanto maior a cache face à memória principal, maior a hit rate. Tem um impacte grande no desempenho, mas também no custo (há processadores mais baratos, só por terem menos cache – na realidade, são chips iguais aos outros em que parte da cache não funciona…) Supondo: –Tempo de acesso da cache: 5 ns –Tempo de acesso da memória principal: 50 ns –Hit rate média: 95% Então, o tempo de acesso médio será: 0.95 * 5 ns * 55 ns = 7. 5 ns Ou seja, 50 ns/7.5 ns = 6.7 vezes mais rápido do que se só tivéssemos a memória principal

29 Arquitetura de Computadores – Evolução da arquitetura básica29José Delgado © etiquetaíndice 2 bits6 bits etiqueta dados endereço memória válido cache Caches de mapeamento direto Cada célula da cache só pode ter uma das células de memória que tenham o mesmo índice A etiqueta identifica o resto do endereço (distinguindo entre células com o mesmo índice)

30 Arquitetura de Computadores – Evolução da arquitetura básica30José Delgado © 2012 Como saber se é um cache hit? Exemplo com um endereço (de byte) de 32 bits, um bus de dados de 32 bits e uma cache de mapeamento direto de 1K palavras: bit20 bits32 bits validadeetiquetadados =? Cache hit processador Endereço (32 bits) byte

31 Arquitetura de Computadores – Evolução da arquitetura básica31José Delgado © 2012 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) bit20 bits32 bits validadeetiquetadados Endereço (32 bits) Memória principal 2 byte

32 Arquitetura de Computadores – Evolução da arquitetura básica32José Delgado © 2012 Localidade espacial Ter na cache as palavras recentemente acedidas explora a localidade temporal, mas não a espacial. A localidade espacial pode ser aproveitada lendo para a cache não uma mas várias palavras, de endereços consecutivos (bloco). Assim, enquanto o processador aceder aos endereços das palavras no bloco não será necessário efetuar carregamentos na cache (porque dá cache hit). O bloco passa a ser a unidade de leitura e escrita da memória principal.

33 Arquitetura de Computadores – Evolução da arquitetura básica33José Delgado © 2012 Cache com blocos de 4 palavras 0 1 Validade (1 bit)Etiqueta (20 bits) Dados (4 x 32 bits) =? Cache hit processador Endereço (32 bits) 820 Multiplexer 22 Byte na palavra

34 Arquitetura de Computadores – Evolução da arquitetura básica34 Quais os endereços (de byte) das palavras no mesmo bloco (que partilham a mesma etiqueta)? 3080H0… H0… H0… CH0… Onde é armazenada a palavra com endereço (de byte) 03088H? Endereço em binário: José Delgado © Validade (1 bit)Etiqueta (20 bits) Dados (4 x 32 bits) =? Cache hit processador Endereço (32 bits) 8 20 Multiplexer 2 Exemplo (endereços de byte) palavraíndice etiqueta byte

35 Arquitetura de Computadores – Evolução da arquitetura básica35José Delgado © 2012 Mapeamento associativo O mapeamento direto tem o problema de dois blocos com o mesmo índice não 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 posição na cache, mas : –A etiqueta tem de ser o endereço todo (para distinguir quaisquer blocos), exceto os bits de endereço da palavra dentro do bloco –A procura do bloco (para ver se é cache hit) já não é por índice. Tem de se comparar o endereço com a etiqueta em todos os blocos ao mesmo tempo (para ser rápido)

36 Arquitetura de Computadores – Evolução da arquitetura básica36José Delgado © 2012 Implementação da associatividade =? 28 Cache hit Endereço (32 bits) 2 Uma cache associativa precisa de muito hardware! byte 2

37 Arquitetura de Computadores – Evolução da arquitetura básica37José Delgado © 2012 Mapeamento associativo por conjuntos de K vias Uma solução intermédia é usar K caches de mapeamento direto e fazer a procura em todas elas em paralelo (mapeamento associativo de K vias). Uma linha das várias caches de mapeamento direto é um conjunto (uma cache associativa). =? hit etiquetaíndice palavra dentro do bloco conjunto Via 0Via 1 byte

38 Arquitetura de Computadores – Evolução da arquitetura básica38José Delgado © 2012 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 é direto via, 8 conjuntos com 1 bloco cada 2 vias, 4 conjuntos com 2 blocos cada vias, 2 conjuntos com 4 blocos cada vias, 1 conjunto com 8 blocos 0 Mapeamento direto Mapeamento associativo

39 Arquitetura de Computadores – Evolução da arquitetura básica39José Delgado © 2012 Política de substituição Onde colocar uma célula de memória que se foi buscar à memória principal devido a um cache miss? –Caches de mapeamento direto: na célula indicada pelo índice –Caches de mapeamento completamente associativo: Com lugares vagos: num lugar vago qualquer Cheia: no lugar da célula usada menos recentemente (LRU – Least Recently Used) Na prática, costuma usar-se um contador para ir escrevendo na célula seguinte, independentemente de estar cheia ou vazia, de ter sido muito usada ou não. É um método simples e não muito pior que os anteriores –Caches associativas com K vias: obtém-se o conjunto através do índice e escolhe-se uma via

40 Arquitetura de Computadores – Evolução da arquitetura básica40José Delgado © 2012 Política de escrita Quando a célula está na cache (write hit): –Write-through: escreve-se na cache e na memória principal –Write-back: escreve-se só na cache e só se atualiza a memória principal quando o bloco tem de sair da cache Quando a célula NÃO está na cache (write miss): –Write around: escreve na memória principal sem escrever na cache (bom se a célula não for lida a curto prazo) –Write allocate: faz um cache miss (carrega a célula) e faz write through

41 Arquitetura de Computadores – Evolução da arquitetura básica41José Delgado © 2012 Exercícios de caches 1.Considere uma cache de mapeamento direto com capacidade para 8 Kbytes de dados e blocos de 8 palavras de 32 bits, a usar por um processador de 32 bits, com endereçamento de byte e 32 bits de endereço. 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 número obtido na alínea anterior menos um) ficará armazenada a palavra com o endereço 1000H. Dê a sua resposta em hexadecimal. d)Indique os endereços das palavras que ficam no mesmo bloco que a palavra com o endereço 1000H. e)Dê o endereço (à sua escolha) de duas palavras que nunca poderão estar ao mesmo tempo na cache e explique porquê. f)Supondo que, para além dos dados, a cache tem de guardar as etiquetas e os bits de validade, indique o número total de bits que a cache tem de poder armazenar. g)Indique qual o overhead da cache em termos de capacidade, isto é, o rácio

42 Arquitetura de Computadores – Evolução da arquitetura básica42José Delgado © 2012 Exercícios 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 vários tipos de cache dispõe-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 endereços (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 substituição de blocos é LRU (quando se aplicar). a)Preenchendo as tabelas seguintes (são dadas as duas primeiras linhas para servir de exemplo), represente para os tipos de cache nelas indicados: i.os sucessivos conteúdos da cache (usando a notação M[endereço] para representar o conteúdo de uma dada posição de memória) ii.o tipo de acesso (hit ou miss) iii.a miss rate b)Em que medida é que o aumento da dimensão 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?

43 Arquitetura de Computadores – Evolução da arquitetura básica43José Delgado © 2012 Exercícios (endereços de palavra) Caso A - Cache de mapeamento direto com 8 blocos de 1 palavra cada Endereço memória hit ou miss Nº de bloco missM[1] 4missM[1]M[4] Miss rate%

44 Arquitetura de Computadores – Evolução da arquitetura básica44José Delgado © 2012 Caso B - Cache associativa de 2 vias com um total de 8 blocos de 1 palavra cada Endereço memória hit ou miss Nº de bloco via 0Nº de bloco via missM[1] 4missM[4]M[1] Miss rate% Exercícios (endereços de palavra)

45 Arquitetura de Computadores – Evolução da arquitetura básica45José Delgado © 2012 Caso C - Cache associativa de 4 vias com um total de 8 blocos de 1 palavra cada Endereço memória hit ou miss Nº de bloco via 0Nº de bloco via 1Nº de bloco via 2Nº de bloco via missM[1] 4missM[4]M[1] Miss rate% Exercícios (endereços de palavra)

46 Arquitetura de Computadores – Evolução da arquitetura básica46José Delgado © 2012 Caso D - Cache totalmente associativa com um total de 8 blocos de 1 palavra cada Endereço memória hit ou miss Nº de bloco missM[1] 4missM[1]M[4] Miss rate% Exercícios (endereços de palavra)

47 Arquitetura de Computadores – Evolução da arquitetura básica47José Delgado © 2012 Memória virtual Mecanismo que permite tratar a memória principal como cache de uma memória virtual (não existe na realidade) igual ao somatório dos espaços de endereçamento dos vários processos. As zonas de memória virtual não carregadas em memória principal e com dados/código dos processos estão em disco (swap file) O mecanismo de tradução de endereços virtuais (os que os processos veem) para físicos é transparente e automático. Também atua como mecanismo de proteção (porque um processo não tem acesso ao espaço de endereçamento dos outros).

48 Arquitetura de Computadores – Evolução da arquitetura básica48José Delgado © 2012 Espaço de endereçamento virtual O espaço de endereçamento virtual existe parte em memória física e parte em disco. Endereços virtuais Endereços físicos Endereços no disco Tradução de Endereços

49 Arquitetura de Computadores – Evolução da arquitetura básica49José Delgado © 2012 Memória virtual paginada Para otimizar, o espaço de endereçamento é dividido em páginas, todas de igual dimensão (4 Kbytes, por exemplo). Assim, apenas é necessário traduzir o endereço de base da página, de virtual para físico. Os espaços de endereçamento virtual e físico podem ter dimensões diferentes. Nº página virtualDeslocamento Nº página físicaDeslocamento Tradução virtual físico

50 Arquitetura de Computadores – Evolução da arquitetura básica50José Delgado © 2012 Tabela de páginas Nº página virtualDeslocamento Nº página físicaDeslocamento Registo com endereço base da tabela Tabela de páginas 1 se a página estiver carregada em memória

51 Arquitetura de Computadores – Evolução da arquitetura básica51José Delgado © 2012 Tamanho da tabela de páginas Nº página virtualDeslocamento Nº página físicaDeslocamento 0 31 Registo com endereço base da tabela Tabela de páginas 1 se a página estiver carregada em memória 1112 Assim, a tabela de páginas: –é feita em vários níveis hierárquicos –só tem as entradas necessárias –está, ela própria, sujeita ao mecanismo de memória virtual Se o espaço virtual for de 32 bits (4 Gbytes) e a página for de 4 Kbytes, então a tabela de páginas tem 1 M entradas de 32 bits. Ou seja, gasta 4 Mbytes! Se o espaço virtual for de 48 bits, gasta 64 K vezes mais, ou 256 Gbytes!!!

52 Arquitetura de Computadores – Evolução da arquitetura básica52José Delgado © 2012 Tabela de páginas hierárquica 4 Kbytes páginas físicas 1 K entradas (4 Kbytes)... Tabelas de páginas... deslocamento Diretório registo As próprias tabelas de páginas estão na memória virtual (sujeitas a swapping), exceto o diretório. Nº de página virtual 12 bits10 bits

53 Arquitetura de Computadores – Evolução da arquitetura básica53José Delgado © 2012 Tradução de endereços A tradução do número de página virtual para físico implica aceder às tabelas. 4 Kbytes páginas físicas 1 K entradas (4 Kbytes)... Tabelas de páginas... deslocamento Diretório registo Nº de página virtual 12 bits10 bits É incomportável percorrer as várias tabelas em cada acesso à memória!!! Solução: cache que tenha a tradução de endereços das páginas mais usadas. Se houver um cache hit, a cache diz logo qual o endereço físico da página. Se houver um cache miss, então é preciso percorrer as várias tabelas.

54 Arquitetura de Computadores – Evolução da arquitetura básica54José Delgado © 2012 TLB TLB = Translation Lookaside Buffer (cache de tradução de endereços virtuais para físicos). Etiqueta Dados Número de página virtualDeslocamento Número de página físicaDeslocamento Válido Alterada

55 Arquitetura de Computadores – Evolução da arquitetura básica55José Delgado © 2012 Falta de página (page fault) Page fault – acesso a uma página que não está carregada em memória. 4 Kbytes páginas físicas 1 K entradas (4 Kbytes)... Tabelas de páginas... deslocamento Diretório registo Nº de página virtual 12 bits10 bits A ocorrência de uma page fault gera uma exceção. O sistema operativo é reponsável por percorrer as tabelas de páginas e carregar a página em falta. Esta operação é lenta. É preciso: –Percorrer as várias tabelas (vários acessos à memória) –Carregar as tabelas de páginas que não estiverem em memória –Carregar a página que originou a page fault Felizmente, os programas têm localidade espacial e temporal e esta operação não acontece em todos os acessos!

56 Arquitetura de Computadores – Evolução da arquitetura básica56José Delgado © 2012 Memória virtual + caches Endereço virtual (32 bits) Número de página virtualDeslocamento EtiquetaNº página física Válido Alterada Número de página físicaDeslocamento Endereço físico (32 bits) TLB Etiqueta físicaÍndice =? hit Palavra dentro do bloco + byte Palavra acedida Cache Palavra pretendida 4 Kbytes páginas físicas 1 K entradas (4 Kbytes)... Tabelas de páginas... deslocamento Diretório registo Nº de página virtual 12 bits10 bits TLB fault

57 Arquitetura de Computadores – Evolução da arquitetura básica57José Delgado © 2012 Tipos de misses Número de página virtualDeslocamento Etiqueta Nº página física VálidoAlterada Número de página físicaDeslocamento Etiqueta físicaÍndice =? hit Palavra dentro do bloco + byte Palavra acedida O que pode falhar no acesso: –Cache miss (um acesso à memória) –TLB miss (vários acessos à memória) –Page fault (acesso ao disco) As cache e TLB misses medem-se em dezenas de ciclos de relógio. As page faults medem-se em dezenas de milissegundos (podem implicar vários acessos ao disco). Felizmente, estas situações são a exceção e não a regra!... Page fault

58 Arquitetura de Computadores – Evolução da arquitetura básica58José Delgado © 2012 Exercícios de memória virtual 1.Um sistema de memória virtual tem um tamanho de página de 1000 palavras, 8 páginas virtuais e 4 páginas físicas. Assuma que inicialmente a tabela de páginas está vazia (nenhuma página carregada em memória). a)Preencha a tabela seguinte com o estado que terá após acesso aos endereços (de palavra) virtuais 7000, 2000, 5000, Página virtualPágina física b)Após estes acessos, quais os endereços físicos dos endereços virtuais 0, 3728, 999, 1025, 7800 e 4096 (endereços de palavra)? c)Dê um exemplo de um endereço virtual que provoque agora uma page fault

59 Arquitetura de Computadores – Evolução da arquitetura básica59José Delgado © 2012 Exercícios de memória virtual 2.O TLB de um sistema de memória virtual, com 20 bits de número de página virtual, 12 bits de número de página física e 12 bits de deslocamento dentro de cada página, está atualmente com o conteúdo indicado pela tabela seguinte. VálidaAlteradaNº pág. virtualNº pág. física 1101AF4HFFFH 000E45FHE03H 00012FFH2F0H 1001A37H788H 1002BB4H45CH 1103CA0H657H a)Qual a dimensão de cada página? b)Qual a dimensão dos espaços de endereçamento virtual e físico? c)Indique, para cada um dos endereços virtuais seguintes, o respetivo endereço físico (ou se originam page fault): 2BB4A65H, E45FB32H, D34E9DCH, 3CA0777H e 1AF4E06H. d)Para cada um destes endereços, indique quais não foram, garantidamente, escritos desde que foram carregados em memória.

60 Arquitetura de Computadores – Evolução da arquitetura básica60José Delgado © Um processador tem: i.um TLB completamente associativo de 2 palavras, com algoritmo de substituição 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ó nível) de 8 páginas virtuais, com algoritmo de substituição LRU iv.uma memória física de 4 páginas v.uma página com 256 palavras de dimensão vi.endereçamento exclusivamente em palavras (bytes não) a)Qual a dimensão, em palavras, dos espaços de endereçamento virtual e físico? b)Assumindo que inicialmente a memória não tem nenhum programa ou dados carregados, preencha a tabela seguinte, indicando o que acontece em cada acesso aos endereços virtuais indicados e qual o estado em que o sistema fica. Use a notação M[endereço] para indicar o conteúdo da cache. No TLB indique o nº de página virtual e física. As duas primeiras colunas estão preenchidas para servir de exemplo. Exercícios de memória virtual

61 Arquitetura de Computadores – Evolução da arquitetura básica61José Delgado © 2012 Endereço virtual5057A03225F C TLB TLB miss/hitmiss Tabela páginas Page fault/hitmiss Endereço físico0051A0 Cache 0M[1A0] 1M[005] Cache miss/hitmiss Exercícios de memória virtual


Carregar ppt "Arquitetura de Computadores – Evolução da arquitetura básica1José Delgado © 2012 Evolução da arquitetura básica Processamento em estágios (com pipeline)"

Apresentações semelhantes


Anúncios Google