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

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

Catholic University PUCRS C ACHE M EMORY. Introduction.

Apresentações semelhantes


Apresentação em tema: "Catholic University PUCRS C ACHE M EMORY. Introduction."— Transcrição da apresentação:

1 Catholic University PUCRS C ACHE M EMORY

2 Introduction

3 Taxa de Acerto (Hit Rate) de um determinado nível de memória é uma fração que indica a percentagem de todos os acessos àquele nível que resultaram em acerto. Taxa de Falha, (calculada como Taxa de acerto) é a fração de acessos que resultaram em falha. Tempo de Acerto é o tempo necessário para o processador acessar o nível superior de memória. Esse tempo inclui o tempo necessário para determinar se o acesso produz acerto ou erro. Penalidade de Falha é o tempo necessário para substituir um bloco no nível em que a falha ocorreu (levar um bloco do nível superior para o inferior e buscar outro do nível mais baixo para o nível mais alto de memória) mais o tempo para fornecer o dado necessário ao processador. O tempo de acerto é tipicamente muito menor do que a penalidade de erro. recentemente. Introduction A organização de memórias em sistemas hierárquicos baseia-se no fato de que programas exibem localidade temporal e localidade espacial: Localidade temporal é a tendência que um programa tem de executar uma instrução que foi executada recentemente ou de acessar dados que foram acessados recentemente. Localidade espacial é a tendência a executar instruções que estão fisicamente próximas de instruções executadas recentemente ou a acessar dados que foram acessados recentemente.

4 Basic Concepts

5 Basic Concepts

6 Access to the Cache

7 7 Access to the Cache

8 Cache Miss Treatment

9

10 10 Cache Coherence

11 Block Size vs Cache Performance

12 Block Size vs Cache Performance

13

14 Cache Size O tamanho da memória cache é determinado por uma série de fatores, incluindo: · Relação entre a velocidade do microprocessador, tempo de acesso à memória principal e tempo de acesso à memória cache. · Capacidade de armazenamento dos chips de memória estática usados para implementar a cache. · Taxa de acerto que se deseja obter. Exemplo: quantos bits de SRAM são necessários para construir uma cache com 64KBytes (512K bits), em uma máquina cuja memória principal tem 16 MBytes (224 Bytes) e cujo tamanho de bloco é 32 bits?

15 Cache Size Solução: temos que começar por identificar a relação entre o número de blocos na memória principal e na cache. Como cada bloco ocupa 4 bytes, a memória principal pode armazenar 16M/4 = 4M blocos (= 2 22 blocos), e a cache pode armazenar 64K/4 = 16K blocos (= 2 14 blocos). Portanto, para cada bloco da cache existem 4M/16K = 2 22 /2 14 = 2 8 = 256 blocos na memória principal. Consequentemente, cada posição (bloco) da cache precisa de um tag de 8 bits de largura para identificar qual destes 256 blocos está armazenado naquela posição. Além disto a cache necessita de 1 bit de validade para cada bloco. Portanto, a quantidade de bits necessários para construir esta cache é: (# de bits de validade) + (# bits para tag) + (# bits para dados) = 16K + (16K x 8) + (16K x 32) = 16K x (1+8+32) = 16K x 41 = 656K bits A equação acima demonstra que a cache com a organização mostrada necessita de 9 x 16K = 144K bits a mais do que os bits necessários para armazenamento de dados. Vamos designar este espaço de memória adicional necessário para construção da cache de espaço de gerenciamento porque é neste espaço que se dá o gerenciamento da cache. Assim, a cache precisa ser 28,2% (656÷512) maior para poder suportar a lógica de gerenciamento. Note que são necessários 14 bits de Index e 8 bits de Tag para cada bloco na cache, portanto: 22 bits mod 2 14 : | Tag | |--- Index ---|

16 Cache Performance Estimation

17 Cache Performance Estimation O Tempo de CPU de um programa pode ser medido como: Tempo de CPU = (# Ciclos de Clock para execução + # ciclos de espera) x Período do Clock O tempo que o processador está parado é igual ao número de operações de leitura e escrita no programa vezes a taxa de falha na memória cache, vezes o tempo necessário para ler ou escrever um dado na memória principal: # ciclos de espera = # acessos à memória x taxa de falha x penalidade de falha Uma outra forma de expressar esta relação é: #ciclos-de-espera = #instruções-do-programa x #falhas x penalidade-de-falha Exemplo: considere o compilador C, gcc. Assuma que este programa possua uma taxa de falha de 5% para acessos à instruções e 10% para acessos a dados. Considere que este programa esteja rodando em uma máquina que possui um CPI = 4 quando ela roda sem nenhum ciclo de espera. Assuma que a penalidade de falha é de 12 ciclos. De todas as instruções que são executadas quando o compilador gcc está sendo executado, 33% são instruções que acessam a memória (lêem ou escrevem dados). Qual o percentual de degradação de desempenho na execução do gcc devido à existência de falhas no acesso à cache?

18 Solução: O número de ciclos de espera executados pelo processador devido à leitura de instruções quando o gcc está rodando depende do número total de instruções executadas, que nós desconhecemos, chamemos este o número total de instruções de NI. Portanto o número de ciclos de espera gerado pela leitura de instruções é dado por: # de ciclos de espera devido a instruções = NI x 5% x 12 = NI x 0.05 x 12 = 0.6 NI clocks Nós sabemos que 33% das instruções executadas acessam a memória, portanto o número de ciclos de espera devido à leitura ou escrita de dados é dado por: # ciclos de espera devido a dados = NI x 33% x 10% x 12 = 0.4 NI clocks Portanto o número total de ciclos de espera é 0.4 Ni NI = 1.0 NI clocks. Ou seja, existe em média um ciclo de espera para cada instrução executada. Como nós sabemos que sem as falhas na cache o gcc teria um CPI de 4, com as falhas ele passa a ter um CPI de 5. Portanto, existe uma degradação de desempenho de (5-4)÷4 = 0.25 = 25%. Cache Performance Estimation

19 Cache – Main Memory Mapping

20 Cache – Main Memory Mapping

21 Cache – Main Memory Mapping

22 Block Localization in the Cache

23 Tag Size vs Associativity

24 Block Replacement Selection

25 Cache Miss Penalty due to Multilevel Architecture Cache Miss Penalty due to Multilevel Architecture

26 Cache Miss Penalty due to Multilevel Architecture Cache Miss Penalty due to Multilevel Architecture

27 Cache Miss Penalty due to Multilevel Architecture Cache Miss Penalty due to Multilevel Architecture Assim, o total de ciclos parados economizados, devido à inclusão da cache de nível 2: 0.3% + 2.2% = 2.5%

28 Cache Miss Penalty due to Multilevel Architecture Cache Miss Penalty due to Multilevel Architecture

29 Catholic University PUCRS V IRTUAL M EMORY

30 Introduction

31 Introduction

32 Page Location in the Main Memory

33 Page Faulty Treatment Usando o passado para prever o futuro, o sistema operational segue o esquema de substituição LRU, susbtituindo a página que não é usada há mais tempo.

34 TLB – Translation Lookaside Buffer

35 TLB – Translation Lookaside Buffer

36 Integration of Cache + TLB + Virtual Memory

37 Complete Operation of a Memory Hierarchy

38 Protection Implementation with Virtual Memory

39 Treating Page Faults and TLB Faults

40 Treating Page Faults and TLB Faults

41 Treating Page Faults and TLB Faults

42 Reg CAUSA: contém o código da excessão gerada, que pode assumir 2 valores possiveis no caso de falha na TLB!

43 Thank you for your attention


Carregar ppt "Catholic University PUCRS C ACHE M EMORY. Introduction."

Apresentações semelhantes


Anúncios Google