1 / 43

Catholic University PUCRS

Cache Memory. Catholic University PUCRS. Introduction. Introduction. 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.

ellard
Download Presentation

Catholic University PUCRS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cache Memory Catholic University PUCRS

  2. Introduction vargas@computer.org

  3. Introduction 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 1.0 - 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. 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. vargas@computer.org

  4. Basic Concepts vargas@computer.org

  5. Basic Concepts vargas@computer.org

  6. Access to the Cache vargas@computer.org

  7. Access to the Cache vargas@computer.org

  8. Cache Miss Treatment vargas@computer.org

  9. Cache Miss Treatment vargas@computer.org

  10. Cache Coherence vargas@computer.org

  11. Block Size vs Cache Performance vargas@computer.org

  12. Block Size vs Cache Performance vargas@computer.org

  13. Block Size vs Cache Performance vargas@computer.org

  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? vargas@computer.org

  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 (= 222 blocos), e a cache pode armazenar 64K/4 = 16K blocos (= 214 blocos). Portanto, para cada bloco da cache existem 4M/16K = 222/214 = 28 = 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) maiorpara 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 214 : 21 20 19 ... 14 13 ... 0 |----------Tag---------| |---Index---| vargas@computer.org

  16. Cache Performance Estimation vargas@computer.org

  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? vargas@computer.org

  18. Cache Performance Estimation 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 + 0.6 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%. vargas@computer.org

  19. Cache – Main Memory Mapping vargas@computer.org

  20. Cache – Main Memory Mapping vargas@computer.org

  21. Cache – Main Memory Mapping vargas@computer.org

  22. Block Localization in the Cache vargas@computer.org

  23. Tag Size vsAssociativity vargas@computer.org

  24. Block Replacement Selection vargas@computer.org

  25. Cache Miss Penalty due to Multilevel Architecture vargas@computer.org

  26. Cache Miss Penalty due to Multilevel Architecture vargas@computer.org

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

  28. Cache Miss Penalty due to Multilevel Architecture vargas@computer.org

  29. Virtual Memory Catholic University PUCRS

  30. Introduction vargas@computer.org

  31. Introduction vargas@computer.org

  32. Page Location in the Main Memory vargas@computer.org

  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. vargas@computer.org

  34. TLB – Translation Lookaside Buffer vargas@computer.org

  35. TLB – Translation Lookaside Buffer vargas@computer.org

  36. Integration of Cache + TLB + Virtual Memory vargas@computer.org

  37. Complete Operation of a Memory Hierarchy vargas@computer.org

  38. Protection Implementation with Virtual Memory vargas@computer.org

  39. Treating Page Faults and TLB Faults vargas@computer.org

  40. Treating Page Faults and TLB Faults vargas@computer.org

  41. Treating Page Faults and TLB Faults vargas@computer.org

  42. Reg CAUSA: contém o código da excessão gerada, que pode assumir 2 valores possiveis no caso de falha na TLB! Treating Page Faults and TLB Faults vargas@computer.org

  43. Thank you for your attention vargas@computer.org

More Related