UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUEF i c h a H e r a r q u i a d e M e m o r i a Hierarquia de memória Os programadores sempre ambicionaram ter quantidades ilimitadas de memória rápida. Contudo, as memórias rápidas são de alto custo e, normalmente, de pequena capacidade também. Uma solução é a organização do sistema de memória em uma hierarquia, com diversos níveis, onde memórias cada vez mais rápidas, menores e com um custo por byte maior, são colocadas nos níveis mais altos. O objectivo é fornecer um sistema de memória com um custo próximo daquele do nível mais baixo da hierarquia, e velocidade próxima daquela do nível mais alto. Os níveis de hierarquia mais altos normalmente são um subconjunto dos níveis mais baixos. À medida que a informação vai sendo utilizada, ela vai sendo copiada para os níveis mais altos da hierarquia de memória. Note que a cada nível que se sobe na hierarquia, endereços de uma memória maior são mapeados para uma memória menor. 1 Arquitectura e Organização de Computadores - 2006 A importância da hierarquia de memória aumentou nos últimos anos devido ao aumento no desempenho dos processadores. 2 Arquitectura e Organização de Computadores . O funcionamento da hierarquia de memória está fundamentado em duas características encontradas nos programas. a essa qualidade dos programas denominamos: Localidade Temporal e Localidade espacial. • Existe uma grande probabilidade de o processador executar os mesmos trechos de código e utilizar repetidamente dados próximos..UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a Junto com esse mapeamento está associado uma função de protecção. Princípio da Localidade A utilização hierarquia no acesso à informação é bastante eficiente por satisfazer normalmente os princípios da localidade. evitando que dados de um usuário sejam modificados por outro.2006 . Na medida em que a informação vai sendo utilizada. na maior parte dos programas os elementos dos arrays. são acedidas repetidamente em curtos intervalos de tempo Consequência – a 1ª vez que um elemento de memória é acedido deve ser lido do nível mais baixo (por exemplo. A informação é manipulada em blocos no sistema de hierarquia de memória para fazer uso da localidade espacial. evitando-se o tempo de leitura da memória central. No início dos tempos o único nível que possui informação válida é o mais inferior de toda a hierarquia. da memória central). posições de memória cujos endereços sejam próximos da primeira tendem a ser logo referenciados. nos próximos ciclos. como as variáveis usadas como contadores de ciclos. memória central) não apenas esse elemento. Os dados contidos num nível mais próximo do processador são sempre um sub-conjunto dos dados contidos no nível anterior. deve ser lido do nível mais baixo (por exemplo. Mas da 2ª vez que é acedido existem grandes hipóteses que se encontre na cache.posições de memória. Se o processador. assim como. ela é copiada para os níveis mais altos da hierarquia. Exemplo: tanto as instruções dentro dos ciclos. Usualmente encontrada em laços (loops) de instruções e acessos a pilhas de dados e variáveis. tendem a ser referenciadas novamente dentro de um curto espaço de tempo. 3 Arquitectura e Organização de Computadores .2006 . acede a um endereço vizinho do anterior (ex. Localidade espacial: se uma posição de memória é referenciada.UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a Localidade Temporal . mas sim um bloco de elementos com endereços na sua vizinhança. composto de dispositivos de armazenamento não voláteis.: próxima instrução ou próximo elemento de um array) aumenta a probabilidade de esta estar na cache. Exemplos: as instruções são acedidas em sequência. O nível mais baixo contém a totalidade dos dados. uma vez referenciadas (lidas ou escritas). Consequência – a 1ª vez que um elemento de memória é acedido. Cada linha tem o seu endereço (índice) e tem a capacidade de um bloco Bloco – Quantidade de informação que é transferida de cada vez da memória central para a cache.2006 . incluindo o tempo necessário para determinar se o elemento a que o CPU está a aceder se encontra ou não na cache 4 Arquitectura e Organização de Computadores . Cache 000 001 010 011 100 101 110 111 Quando fazemos um acesso a um nível da hierarquia e encontramos a informação desejada.tentativa de acesso a informação no nível superior. Diz-se que ocorreu um miss quando o elemento de memória acedido pelo CPU não se encontra na cache. Diz-se que ocorreu um hit quando o elemento de memória acedido pelo CPU se encontra na cache. com sucesso. sem sucesso (page fault no caso de memória virtual). – Hit time. caso contrário diz-se que houve uma falha (miss). Percentagem de hits ocorridos relativamente ao total de acessos à memória.0 . Tempo necessário para aceder à cache. Unidade mínima que é trocada entre dois níveis de hierarquia e poderá estar presente ou não em ambos os níveis.é tempo de acesso ao nível superior da hierarquia de memória. – miss rate: taxa (%) de tentativas sem sucesso. Percentagem de misses ocorridos relativamente ao total de acessos à memória. sendo necessário lê-lo da memória central.hit rate).. = (1.taxa (%) de tentativas com sucesso. – Hit-tentativa de acesso a informação no nível superior. – hit rate . – miss . É igual à capacidade da linha. dizemos que houve um acerto (hit).UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a Princípio de Operação Os dados são replicados unicamente entre dois níveis adjacentes. Linha – a cache está dividida em linhas. que inclui o tempo necessário para saber se no acesso ocorrerá um hit ou um miss. um bloco da memória central para a cache quando ocorre um miss. h = 0. TAXA DE ACERTOS Define-se como taxa de acertos (h) a relação entre o número de acertos e o número total de acessos para um dado nível da hierarquia de memória. h = número acertos / total de acessos • O total de acessos inclui tanto os acessos de leitura como os de escrita. Para um dado nível da hierarquia possa ser considerado eficiente é desejável que o número de acertos (hit) seja bem maior do que o número de falhas (miss).2006 .UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a – H e r a r q u i a d e M e m o r i a miss penalty -> tempo necessário para substituir o bloco em falta (em períodos de clock). Taxa de Acerto h: probabilidade de que uma posição referenciada seja encontrada em dado nível da hieraquia de memória. Tempo necessário para carregar A penalidade por falha (miss penalty) ou tempo de acesso com falha é tambem o tempo necessário para buscar a informação nos níveis inferiores da hierarquia. penalização no desempenho quando a tentativa não tem sucesso.5 ns Se h = 1 então Tma = Ta 5 Arquitectura e Organização de Computadores .85 então Tma = 20. Acessos que resultam em acertos nos níveis mais altos da hierarquia podem ser processados mais rapidamente e os acessos que geram falhas. armazená-la no nível actual e enviá-la para o nível superior. levam mais tempo para serem atendidos. h = taxa de acertos Ta = tempo de acesso com acerto Tf = tempo de acesso com falha Tma = tempo médio de acesso Tma = h*Ta +(1 – h)*Tf Exemplo: Se Ta = 10 ns. Tf = 80 ns. obrigando a buscar a informação nos níveis mais baixos da hierarquia. expresso em ciclos de clock.UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a Modo como o desempenho é afectado Um dos factores identificados é o tempo médio de execução de cada instrução.permite mostrar claramente como uma inadequada concepção de um sistema de memória pode impor fortes penalizações nos tempos de execução de aplicações devido aos acessos à memória. – Minimizar o miss penalty Melhorar os tempos de acesso do nível inferior Selecção adequada da dimensão dos blocos – Melhorando a largura de banda no acesso ao nível inferior 6 Arquitectura e Organização de Computadores . CPI .2006 . CPUtime = Nº instr * CPI * período do clock CPI = CPI (execução no CPU) + CPI (acesso à memória) CPI(acesso à mem) = Nº acessos / instr * miss rate * miss penalty Objectivos da hierarquia de memória – Minimizar o miss rate o Construindo cada nível com a máxima dimensão possível o Selecção adequada da dimensão dos blocos e da estratégia de acesso. Características físicas Sequencial Directo Aleatório Associativo Volátil /nao. Método de acesso 7 Arquitectura e Organização de Computadores . Tecnologias De semicondutores Magnéticas Ópticas Magneto-óptica 7. Capacidade – – Tamanho da palavra Numero de palavras 3. Organização 2. Desempenho Tempo de acesso Tempo de ciclo Taxa de transferência 6. Localização – – – Processador Interna (principal) Externa (secundaria) 5.volátil Apagavel/nao apagavel 8.UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a Os elementos mais importantes da uma hierarquia de memória são: Registradores Memória Cache Memória Principal Memória Secundária Características fundamentais de sistemas de memorias 1. Unidade de transferência palavra bloco 4.2006 . onde na memoria interna ‘e chamado palavra e na externa bloco. Acesso sequencial – o acesso e feito segundo uma sequencia linear. As principais são as seguintes: A memória interna refere-se à memória principal. Taxa de transferência (R)– é a taxa na qual dados podem ser transferidos de ou para a unidade de memoria. Acesso aleatório – usa acesso directo com tempo de acesso a qualquer posição constante. Tempo de ciclo de memoria – compreende o tempo de acesso e o tempo adicional requerido antes que um segundo acesso possa ser iniciado. determinando quais dessas palavras contem o mesmo padrão de bits. na forma de registos A memória externa (memória secundária) é referida a todos os dispositivos usados para armazenar dados e que acedem ao CPU através de controladores/módulos de Entrada/Saída Palavra – unidade de organização de memoria. O tamanho de uma palavra ‘e tipicamente igual ao numero de bits usados para representar um numero inteiro e ao tamanho da instrução Unidade de transferência -‘e numero de bits que podem ser lidos ou escritos de cada vez.UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a A organização da memória rege-se por uma hierarquia de sistemas de memória.2006 . directamente acedida pelo CPU O CPU necessita da sua própria memória local. Acesso directo – acesso baseado em localização física. Tempo de acesso Em uma memória de acesso aleatório é o tempo gasto para efectuar uma operação de leitura ou de escrita Em memória de acesso não aleatório. Possibilita a busca de palavras de acordo com o seu conteúdo. Associativo – é do tipo aleatório e possibilita comparar simultaneamente certo numero de bits de uma palavra com todas as palavras da memoria. é o tempo gasto pra posicionar mecanismo de leitura ou escrita na posição desejada. 8 Arquitectura e Organização de Computadores . Registadores Os registradores estão localizados no núcleo do processador. TA – tempo médio de acesso. São caracterizados por um tempo de acesso menor que um ciclo de relógio e sua capacidade é da ordem de centenas de bytes. 9 Arquitectura e Organização de Computadores .2006 .Taxa de transferência Organização – arranjo físico dos bits para formar palavras. N – numero de bits R . O controle de qual informação deve estar nos registradores é feita explicitamente pelo compilador.UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a Em memoria de acesso aleatório R=1/ tempo de ciclo Em memoria de acesso não aleatório: TN=TA+N/R TN – tempo médio para ler ou escrever N bits. É o único nível da hierarquia que permite movimentações iguais apenas ao tamanho da informação desejada. que determina quais variáveis serão colocadas no registrador. As informações armazenadas são atribuídas pelo fabricante do sistema. O BIOS (Basic Input/Output System) em sistemas computadores do tipo IBM PC é um exemplo de firmware. Como a própria denominação indica. Este tipo de dispositivo permite apenas acessos de leitura. O terceiro tipo de dispositivo de memória encontrado em um computador é a memória de leitura e escrita. o firmware é formado por sub-rotinas usadas pelo sistema operacional. As memórias PROM ou EPROM são usadas para armazenar o firmware do computador. o 10 Arquitectura e Organização de Computadores . ou RAM (Random Access Memory). Assim como no caso da PROM.UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a Memória Cache Memória Cache: Elemento de memória intermediário entre o Processador e a Memória principal Tipos de Dispositivos de Memória No sub-sistema de memória de um computador é possível encontrar três tipos diferentes de dispositivos de memória: O primeiro tipo é a memória programável somente de leitura. o processador realiza apenas acessos de leitura a uma EPROM. e a memória pode ser novamente usada para armazenar um novo conjunto de informações. As rotinas que formam o BIOS são armazenadas em memórias do tipo EPROM. O segundo tipo é a memória programável e apagável somente de leitura. ao contrário da PROM. Em geral. o conteúdo de uma memória EPROM pode ser apagado. ou simplesmente EPROM (Erasable Programmable Read Only Memory).2006 . e não podem ser modificadas após o seu armazenamento. e que interagem directamente com o hardware do computador. mais conhecida como PROM (Programmable Read Only Memory). No entanto. Para a mesma tecnologia. Como a área por célula de bit é menor. 11 Arquitectura e Organização de Computadores . tais como computadores pessoais e estações de trabalho. No entanto. No entanto. a célula de bit é implementada por um circuito electrónico que ocupa uma área de integração menor que a ocupada pelo circuito usado nas memórias SRAM. as memórias SRAM apresentam uma vantagem sobre as memórias DRAM no que se refere ao tempo de acesso. Estes dois tipos de memórias RAM diferem quanto à capacidade de armazenamento e ao tempo de acesso. Os dispositivos DRAM são utilizados em sistemas de baixo e médio custo. Esta diferença na capacidade de armazenamento deve-se ao modo como uma célula de bit é implementada. o tempo de acesso de uma SRAM é até 4 vezes menor que o tempo de acesso de uma DRAM. Melhorias no tempo de acesso dos dispositivos DRAM não acontecem na mesma taxa que o aumento observado na sua capacidade de armazenamento. Nas memórias DRAM. As memórias deste tipo são usadas para armazenar as instruções e dados de um programa em execução. Esta é a ideia por detrás das memórias cache. para a mesma área total de integração o número total de células de bit em uma DRAM é maior. Existem dois tipos de memória RAM: as memórias RAM estáticas. Com este tipo de dispositivo é possível dotar um sistema com uma capacidade de memória principal elevada.UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a H e r a r q u i a d e M e m o r i a processador pode efectuar acessos de leitura e escrita a um dispositivo RAM. Para memórias fabricadas com a mesma tecnologia. ou SRAM (Static RAM) e as memórias RAM dinâmicas. o uso de dispositivos DRAM favorece a capacidade de armazenamento da memória principal em detrimento do seu tempo de acesso. a capacidade de um dispositivo DRAM é até 16 vezes maior que a de um dispositivo SRAM. desempenho e custo encontrase no uso apropriado de tecnologias de memória com diferentes relações entre estes três factores. ou DRAM (Dynamic RAM). cujo conceito e operação são examinados a seguir.2006 . sem aumentar significativamente o seu custo. As classes de aplicações como processamento gráfico e multimédia necessitam que o desempenho seja um factor cada vez mais importante na faixa de computadores pessoais e estações de trabalho. comprometendo o desempenho do sistema. A solução para obter o compromisso desejado entre capacidade de armazenamento.