Prévia do material em texto
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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 1 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. 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 2 Junto com esse mapeamento está associado uma função de protecção, evitando que dados de um usuário sejam modificados por outro. A importância da hierarquia de memória aumentou nos últimos anos devido ao aumento no desempenho dos processadores. PPrriinnccííppiioo ddaa LLooccaalliiddaaddee A utilização hierarquia no acesso à informação é bastante eficiente por satisfazer normalmente os princípios da localidade. O funcionamento da hierarquia de memória está fundamentado em duas características encontradas nos programas. • Existe uma grande probabilidade de o processador executar os mesmos trechos de código e utilizar repetidamente dados próximos,, a essa qualidade dos programas denominamos: 9 Localidade Temporal e 9 Localidade espacial. 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 3 Localidade Temporal - posições de memória, uma vez referenciadas (lidas ou escritas), tendem a ser referenciadas novamente dentro de um curto espaço de tempo. Usualmente encontrada em laços (loops) de instruções e acessos a pilhas de dados e variáveis. Exemplo: tanto as instruções dentro dos ciclos, como as variáveis usadas como contadores de ciclos, 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, da memória central). Mas da 2ª vez que é acedido existem grandes hipóteses que se encontre na cache, evitando-se o tempo de leitura da memória central. Localidade espacial: se uma posição de memória é referenciada, posições de memória cujos endereços sejam próximos da primeira tendem a ser logo referenciados. A informação é manipulada em blocos no sistema de hierarquia de memória para fazer uso da localidade espacial. Exemplos: as instruções são acedidas em sequência, assim como, na maior parte dos programas os elementos dos arrays. Consequência – a 1ª vez que um elemento de memória é acedido, deve ser lido do nível mais baixo (por exemplo, memória central) não apenas esse elemento, mas sim um bloco de elementos com endereços na sua vizinhança. Se o processador, nos próximos ciclos, acede a um endereço vizinho do anterior (ex.: próxima instrução ou próximo elemento de um array) aumenta a probabilidade de esta estar na cache. Os dados contidos num nível mais próximo do processador são sempre um sub-conjunto dos dados contidos no nível anterior. O nível mais baixo contém a totalidade dos dados. 9 No início dos tempos o único nível que possui informação válida é o mais inferior de toda a hierarquia, composto de dispositivos de armazenamento não voláteis. 9 Na medida em que a informação vai sendo utilizada, ela é copiada para os níveis mais altos da hierarquia. 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 4 PPrriinnccííppiioo ddee OOppeerraaççããoo Os dados são replicados unicamente entre dois níveis adjacentes. Linha – a cache está dividida em linhas. 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. É igual à capacidade da linha. Unidade mínima que é trocada entre dois níveis de hierarquia e poderá estar presente ou não em ambos os níveis. Quando fazemos um acesso a um nível da hierarquia e encontramos a informação desejada, dizemos que houve um acerto (hit), caso contrário diz-se que houve uma falha (miss). – Hit-tentativa de acesso a informação no nível superior, com sucesso;; Diz-se que ocorreu um hit quando o elemento de memória acedido pelo CPU se encontra na cache. – miss - tentativa de acesso a informação no nível superior, sem sucesso (page fault no caso de memória virtual); Diz-se que ocorreu um miss quando o elemento de memória acedido pelo CPU não se encontra na cache, sendo necessário lê-lo da memória central. – hit rate - taxa (%) de tentativas com sucesso; Percentagem de hits ocorridos relativamente ao total de acessos à memória. – miss rate: taxa (%) de tentativas sem sucesso; = (1.0 - hit rate); Percentagem de misses ocorridos relativamente ao total de acessos à memória. – Hit time- é tempo de acesso ao nível superior da hierarquia de memória, que inclui o tempo necessário para saber se no acesso ocorrerá um hit ou um miss. Tempo necessário para aceder à cache, incluindo o tempo necessário para determinar se o elemento a que o CPU está a aceder se encontra ou não na cache Cache 000 101 110 111 010 011 100 001 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 5 – miss penalty -> tempo necessário para substituir o bloco em falta (em períodos de clock), penalização no desempenho quando a tentativa não tem sucesso. Tempo necessário para carregar um bloco da memória central para a cache quando ocorre um miss. 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, armazená-la no nível actual e enviá-la para o nível superior. Acessos que resultam em acertos nos níveis mais altos da hierarquia podem ser processados mais rapidamente e os acessos que geram falhas, obrigando a buscar a informação nos níveis mais baixos da hierarquia, levam mais tempo para serem atendidos. 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). TTAAXXAA DDEE AACCEERRTTOOSS 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. Taxa de Acerto h: probabilidade de que uma posição referenciada seja encontrada em dado nível da hieraquia de memória. h = taxa de acertos Ta = tempo de acesso com acerto Tf = tempo de acesso com falha Tma = tempo médio de acessoTma = h*Ta +(1 – h)*Tf Exemplo: Se Ta = 10 ns, Tf = 80 ns, h = 0,85 então Tma = 20,5 ns Se h = 1 então Tma = Ta 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 6 MMooddoo ccoommoo oo ddeesseemmppeennhhoo éé aaffeeccttaaddoo Um dos factores identificados é o tempo médio de execução de cada instrução, expresso em ciclos de clock, CPI - 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. 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 OObbjjeeccttiivvooss ddaa hhiieerraarrqquuiiaa ddee mmeemmóórriiaa – 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. – 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 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 7 OOss eelleemmeennttooss mmaaiiss iimmppoorrttaanntteess ddaa uummaa hhiieerraarrqquuiiaa ddee mmeemmóórriiaa ssããoo:: 9 Registradores 9 Memória Cache 9 Memória Principal 9 Memória Secundária CCaarraacctteerrííssttiiccaass ffuunnddaammeennttaaiiss ddee ssiisstteemmaass ddee mmeemmoorriiaass 1. Localização – Processador – Interna (principal) – Externa (secundaria) 2. Capacidade – Tamanho da palavra – Numero de palavras 3. Unidade de transferência 9 palavra 9 bloco 4. Método de acesso 9 Sequencial 9 Directo 9 Aleatório 9 Associativo 5. Desempenho 9 Tempo de acesso 9 Tempo de ciclo 9 Taxa de transferência 6. Tecnologias 9 De semicondutores 9 Magnéticas 9 Ópticas 9 Magneto-óptica 7. Características físicas 9 Volátil /nao- volátil 9 Apagavel/nao apagavel 8. Organização 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 8 A organização da memória rege-se por uma hierarquia de sistemas de memória. As principais são as seguintes: 9 A memória interna refere-se à memória principal, directamente acedida pelo CPU 9 O CPU necessita da sua própria memória local, na forma de registos 9 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, onde na memoria interna ‘e chamado palavra e na externa bloco. Acesso sequencial – o acesso e feito segundo uma sequencia linear; Acesso directo – acesso baseado em localização física. Acesso aleatório – usa acesso directo com tempo de acesso a qualquer posição constante; Associativo – é do tipo aleatório e possibilita comparar simultaneamente certo numero de bits de uma palavra com todas as palavras da memoria, determinando quais dessas palavras contem o mesmo padrão de bits. Possibilita a busca de palavras de acordo com o seu conteúdo. Tempo de acesso 9 Em uma memória de acesso aleatório é o tempo gasto para efectuar uma operação de leitura ou de escrita 9 Em memória de acesso não aleatório, é o tempo gasto pra posicionar mecanismo de leitura ou escrita na posição desejada. Tempo de ciclo de memoria – compreende o tempo de acesso e o tempo adicional requerido antes que um segundo acesso possa ser iniciado. Taxa de transferência (R)– é a taxa na qual dados podem ser transferidos de ou para a unidade de memoria. 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 9 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; TA – tempo médio de acesso; N – numero de bits R - Taxa de transferência Organização – arranjo físico dos bits para formar palavras. Registadores 9 Os registradores estão localizados no núcleo do processador. 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 O controle de qual informação deve estar nos registradores é feita explicitamente pelo compilador, que determina quais variáveis serão colocadas no registrador. 9 É o único nível da hierarquia que permite movimentações iguais apenas ao tamanho da informação desejada. 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 10 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: 9 O primeiro tipo é a memória programável somente de leitura, mais conhecida como PROM (Programmable Read Only Memory). Este tipo de dispositivo permite apenas acessos de leitura. As informações armazenadas são atribuídas pelo fabricante do sistema, e não podem ser modificadas após o seu armazenamento. 9 O segundo tipo é a memória programável e apagável somente de leitura, ou simplesmente EPROM (Erasable Programmable Read Only Memory). Assim como no caso da PROM, o processador realiza apenas acessos de leitura a uma EPROM. No entanto, ao contrário da PROM, o conteúdo de uma memória EPROM pode ser apagado, e a memória pode ser novamente usada para armazenar um novo conjunto de informações. As memórias PROM ou EPROM são usadas para armazenar o firmware do computador. Em geral, o firmware é formado por sub-rotinas usadas pelo sistema operacional, e que interagem directamente com o hardware do computador. O BIOS (Basic Input/Output System) em sistemas computadores do tipo IBM PC é um exemplo de firmware. As rotinas que formam o BIOS são armazenadas em memórias do tipo EPROM. 9 O terceiro tipo de dispositivo de memória encontrado em um computador é a memória de leitura e escrita, ou RAM (Random Access Memory). Como a própria denominação indica, o 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 r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 11 processador pode efectuar acessos de leitura e escrita a um dispositivo RAM. As memórias deste tipo são usadas para armazenar as instruções e dados de um programa em execução. Existem dois tipos de memória RAM: 9 as memórias RAM estáticas, ou SRAM (Static RAM) e 9 as memórias RAM dinâmicas, ou DRAM (Dynamic RAM). Estes dois tipos de memórias RAM diferem quanto à capacidade de armazenamento e ao tempo de acesso. Para memórias fabricadas com a mesma tecnologia,a capacidade de um dispositivo DRAM é até 16 vezes maior que a de um dispositivo SRAM. Esta diferença na capacidade de armazenamento deve-se ao modo como uma célula de bit é implementada. Nas memórias DRAM, 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. Como a área por célula de bit é menor, para a mesma área total de integração o número total de células de bit em uma DRAM é maior. No entanto, as memórias SRAM apresentam uma vantagem sobre as memórias DRAM no que se refere ao tempo de acesso. Para a mesma tecnologia, 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. Os dispositivos DRAM são utilizados em sistemas de baixo e médio custo, tais como computadores pessoais e estações de trabalho. Com este tipo de dispositivo é possível dotar um sistema com uma capacidade de memória principal elevada, sem aumentar significativamente o seu custo. No entanto, o uso de dispositivos DRAM favorece a capacidade de armazenamento da memória principal em detrimento do seu tempo de acesso, comprometendo o desempenho do sistema. 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. A solução para obter o compromisso desejado entre capacidade de armazenamento, desempenho e custo encontra- se no uso apropriado de tecnologias de memória com diferentes relações entre estes três factores. Esta é a ideia por detrás das memórias cache, cujo conceito e operação são examinados a seguir.