Dispositivos de memria principais tipos caractersticas Conceitos de memria principal cache virtual Programas acessam uma parte relativamente pequena do seu espao de endereamento em um dado instante de tempo Dois tipos temporal espacial
Princcio da localidade hierarquia de memria
Vrios nveis capacidade de armazenamento velocidade de acesso custo por bit + . . . custo por bit velocidade de acesso _ + nvel superior nvel inferior capacidade de armazenamento _ Unidade mnima de transferncia bloco Falha (miss) x Acerto (hit) Desempenho taxa de acerto Falha penalidade Memria Cache Memria Principal Memria Secundria linha de cache pgina Polticas ou regras depende suporte de HW busca quando um bloco de informao deve ser transferido de um nvel de memria inferior para um nvel de memria superior armazenamento onde o bloco de informao deve ser colocado naquele nvel de memria substituio qual bloco de informao deve ser substitudo por um novo bloco. Componente bsico clula de bit, armazena um bit de informao Acesso do processador conjunto de clulas de bit Menor conjunto de clulas de bit acessado pelo processador locao de memria Byte de memria 8 clulas de bit ou byte Acesso processador deve fornecer identificao da locao, onde ser feito o acesso endereo de memria sentido do acesso leitura ou escrita Interao 3 barramentos distintos endereo dado controle
Processador Endereo Dados Controle Sub-sistema de Memria Memria Principal Largura do barramento em nmero de bits determinado pelo processador barramento de endereo = n bits, pode enderear at 2 n locaes de memria distintas no necessariamente a memria toda instalada, depende da relao custo/benefcio. Seqncia de eventos acesso do processador memria definio da locao de memria ativao de sinais de controle troca de informaes entre o processador e a memria principal
Representao grfica diagrama de tempo
Clock Endereo Dados Controle 1 2 3 4 Leitura Representao grfica diagrama de tempo
Escrita Clock Endereo 1 Controle 2 Dados 4 3 Tempo de acesso ciclo de barramento padro
Clock Endereo Controle Dados invlido Clock Endereo Controle Dados invlido estados de espera vlido Leitura ROM (Read Only memory) PROM (Programmable ROM) EPROM (Erasable Programmable ROM) EEPROM (Eletric Erasable Programmable ROM) RAM (Random Access Memory) SRAM (Static RAM) DRAM (Dynamic RAM) Implementao SRAM Capacidade de armazenamento 256 KBytes a 1 MByte Cache hit acerto miss falha Propriedade da localidade de referncia taxa de acerto 90% a 98% Processador Memria Cache Memria Principal Endereo Dados Controle sub-sistema de memria Localizao da memria cache
Cache RAM linhas Diretrio Mapeamento Direto Por associatividade
Organizao mais simples Bloco tamanho de uma palavra Palavra s pode ocupar uma nica posio na cache Processo de mapeamento (endereo do bloco) % (num. de blocos da cache) Nmero de comparaes uma
Rtulo Informao Pesquisa 12 1 0 ndice 0 0 1 32 Palavras Memria Principal 0 1 31 30 29 . . . 0 0 0 0 0 0 0 0 0 1 .............. 1 1 1 1 1 Faixa de endereos 12 % 8 = 4 0 1 1 0 0 Vantagens no h necessidade de algoritmo de substituio hardware simples e de baixo custo alta velocidade de operao Desvantagens reduo no desempenho se acessos consecutivos so feitos a palavras com mesmo ndice hit ratio inferior ao de caches com mapeamento associativo Hit ratio aumenta com o aumento da cache, aproxima-se de caches com mapeamento associativo tendncia atual de uso de caches grandes Aproveita melhor as localidades de referncia Bloco tamanho maior do que uma palavra Blocos maiores diminui a taxa de falhas Processo de mapeamento (endereo do bloco) % (num. de conjuntos da cache) Nmero de comparaes quantidade de linhas por conjunto Palavra pode estar em qualquer linha do conjunto Classificao por conjunto completamente associativa Nmero de rtulos e bits de validade menor uso mais eficiente da cache Endereo com trs campos byte - bits menos significativos conjunto - n bits seguintes rtulo - m bits mais significativos 12 % 4 = 0 0 1 1 0 0 4 conjuntos 2 linhas por conjunto N. do Conjunto # 0 1 2 3 Informao Rtulo Pesquisa 12 1 1 0 ndice 0 0 1 0 0 1 1 1 Endereo Rtulo Conjunto Byte Vantagem em relao ao mapeamento completamente associativo comparadores so compartilhados por todos os conjuntos algoritmo de substituio s precisa considerar linhas dentro de um conjunto Desvantagens em relao ao n-way associativa por conjunto X mapeamento direto dado tem atraso extra do multiplexador dado vem DEPOIS da deciso Hit/Miss e da seleo do conjunto numa cache com mapeamento direto, linha da cache est disponvel ANTES da deciso Hit/Miss possvel assumir um hit e continuar e recuperar depois se for um miss
Pode ser vista como tendo um nico conjunto Processo de mapeamento palavra pode ser colocada em qualquer bloco do conjunto Informao Rtulo Pesquisa 12 1 conjunto 8 linhas no conjunto Palavra pode estar em qualquer linha Vantagem mxima flexibilidade no posicionamento de qualquer palavra (ou linha) da memria principal em qualquer palavra (ou linha) da cache Desvantagens custo em hardware da comparao simultnea de todos os endereos armazenados na cache algoritmo de substituio (em hardware) para selecionar uma linha da cache na ocorrncia um miss Utilizado apenas em memrias associativas de tamanho pequeno tabelas Esquemas write-through a cada escrita na cache, escreve, tambm, na memria principal write-back s escreve na memria principal quando um bloco for substitudo ou no trmino da aplicao necessita de um bit de controle
Polticas LRU o bloco a ser substitudo aquele que no acessado a mais tempo aleatria qualquer bloco pode ser escolhido para ser substitudo
Tcnica originalmente criada para permitir a execuo de programas cujas exigncias quanto ao tamanho da memria sejam maiores do que a capacidade de memria principal instalada no sistema
Endereo gerado pelo programa endereo virtual Endereo real usado para acessar a memria principal Endereos virtuais espao de endereamento virtual Endereos de memria principal espao de endereamento real Ponto de vista de um programa a memria disponvel aquela representada pelo espao de endereamento virtual Espao de endereamento virtual uma abstrao Distino entre endereos e espaos de endereamento exige um mecanismo de correspondncia entre o endereo virtual e o endereo real Tcnica de memria virtual permite que instrues e dados no estejam na memria principal at que sejam referenciados Necessidade de um mecanismo para o carregamento automtico das instrues e dados na memria principal Processador Memria Principal sub-sistema de memria DAT Endereo Virtual Endereo Real Endereo Dados Controle Mapeamento realizado pelo DAT - Dynamic Address Translator mapeia o endereo virtual em endereo real Mapeamento Tabela de Mapeamento Tabela localiza-se na memria principal durante toda a execuo do processo Para manter um tamanho de tabela aceitvel o mapeamento feito no nvel de blocos Espao de endereamento virtual logicamente dividido em blocos, que so mapeados para o espao de endereamento real pelo DAT Cada entrada na tabela de mapeamento endereo-base de um bloco Memria virtual pode ser Segmentada os blocos so chamados segmentos, e podem ter tamanhos variveis Paginada os blocos so chamados pginas e possuem tamanho fixo ~ ~ Bloco 0 Bloco 1 Bloco 2 Bloco n Espao Virtual ~ ~ Bloco 0 Bloco 1 Bloco 2 Espao Real (a) base b' base + + endereo real b d endereo virtual tabela de mapeamento b (b) Endereo virtual poder visto como constitudo por dois campos campo b - bits mais significativos indica o nmero do bloco onde se encontra a locao de memria referenciada campo d - bits menos significativos indica o deslocamento da locao de memria em relao ao incio do bloco DAT: valor do campo b + endereo-base da tabela de mapeamento endereo de uma entrada da tabela Endereo-base da tabela mantido internamente no prprio DAT TBR (Table Base Register) DAT acessa a tabela de mapeamento e obtm o endereo-base do bloco Obteno do endereo real da locao de memria referenciada valor do campo d + endereo-base do bloco A cada referncia dois acessos memria compromete o desempenho Soluo TLB (Translation Lookaside Buffer) TLB comporta-se como uma cache TLB armazena os pares de endereo virtual/real, que foram usados nos acessos mais recentes TLB num acerto reduz o tempo de mapeamento Blocos de instrues e de dados de um programa em execuo ficam armazenados na memria secundria unidade de disco A ausncia de um bloco referenciado pelo programa detectada pelo DAT no momento do mapeamento O bloco ento carregado da memria secundria para a memria principal 2. tabela de mapeamento e TLB no mapeiam o bloco b: o bloco referenciado no se encontra na memria principal b n 1. programa referencia locao n no bloco de nmero b b memria secundria 3. o bloco de nmero b transferido da memria secundria para a memria principal controlado pelo sistema operacional memria principal 4. tabela de mapeamento e TLB so atualizadas b' TLB b b' b' b tabela de mapeamento TLB xx xx xxxx b tabela de mapeamento 5. acesso locao n memria fsica n b' Aspectos operacionais comuns aos sistemas hierrquicos da memria Quatro questes para tratar um bloco onde colocar como localizar como substituir como modificar Diversos esquemas mapeamento direto mapeamento associativo por conjunto completamente associativo Podem ser expressos com a variao do nmero de conjunto (NC) conjuntos por bloco (NB) Esquema NC NB Direto Nmero de blocos 1 Associativo por conjunto Nmero de blocos associatividade Associatividade Totalmente associativo 1 Nmero de blocos Vantagem de aumentar associatividade melhora a localidade espacial reduz a taxa de falhas Desvantagem Maior custo com falhas Falhas reduz tempo de acesso Cache associatividade por conjunto 2, 4, 8 Memria Virtual totalmente associativa Depende do esquema utilizado para colocao do bloco Escolha do mapeamento custo de uma falha custo da associatividade Caches e TLBs Direto Associativo por conjunto Esquema Mtodo de Localizao Nmero de Comparaes Direto ndice 1 Associativo por conjunto indexar o conjunto, pesquisar entre os elementos
grau de associatividade Totalmente associativo pesquisar todas as entradas tabela separada para busca igual ao tamanho 0 Totalmente associativo proibido exceto para caches e TLBs muito pequenas Memria Virtual Totalmente associativo
Motivado por quatro fatores por causa do alto custo a associatividade benfica associativiade total algoritmos de substituio de pginas mais sofisticados reduzir taxa de falhas mapeamento completo facilidade de indexao no necessita de hardware extra Quanto maior o tamanho da pgina menor o overhead relativo ao tamanho da tabela de pginas Quando no h mais espao livre substituio de um bloco Bloco candidato mapeamento direto no h escolha associativo por conjunto um dos blocos do conjunto totalmente associativo qualquer bloco Estratgias de substituio mais comuns Aleatria cache LRU cache e memria virtual Duas opes bsicas Write-through cache Write-back cache e memria virtual Explica as fontes de falhas compulsrias capacidade conflitos ou coliso