1
Arquitetura de Computadores
UERJ
2
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
19
Arquitetura de Computadores
UERJ
65
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
Texto de pré-visualização
O Subsistema de Memória Subsitema de Memória Componentes Mecanismo de acesso do processador Dispositivos de memória principais tipos características Conceitos de memória principal cache virtual Localidade de Referência Programas acessam uma parte relativamente pequena do seu espaço de endereçamento em um dado instante de tempo Dois tipos temporal espacial Princípio da localidade hierarquia de memória Hierarquia de Memória Vários níveis capacidade de armazenamento velocidade de acesso custo por bit custo por bit velocidade de acesso nível superior nível inferior capacidade de armazenamento processador Hierarquia de Memória Unidade mínima de transferência bloco Falha miss x Acerto hit Desempenho taxa de acerto Falha penalidade Memória Cache Memória Principal Memória Secundária linha de cache página Gerenciamento de Memória Políticas ou regras depende suporte de HW busca quando um bloco de informação deve ser transferido de um nível de memória inferior para um nível de memória superior armazenamento onde o bloco de informação deve ser colocado naquele nível de memória substituição qual bloco de informação deve ser substituído por um novo bloco Componente básico célula de bit armazena um bit de informação Acesso do processador conjunto de células de bit Menor conjunto de células de bit acessado pelo processador locação de memória Byte de memória 8 células de bit ou byte Interação entre Processador e Memória Principal Acesso processador deve fornecer identificação da locação onde será feito o acesso endereço de memória sentido do acesso leitura ou escrita Interação 3 barramentos distintos endereço dado controle Interação entre Processador e Memória Principal Interação entre Processador e Memória Principal Processador Endereço Dados Controle Subsistema de Memória Memória Principal Barramento Largura do barramento em número de bits determinado pelo processador barramento de endereço n bits pode endereçar até 2n locações de memória distintas não necessariamente a memória toda é instalada depende da relação custo benefício Ciclo de Barramento Seqüência de eventos acesso do processador à memória definição da locação de memória ativação de sinais de controle troca de informações entre o processador e a memória principal Ciclo de Barramento Representação gráfica diagrama de tempo Clock Endereço Dados Controle 1 2 3 4 Leitura Ciclo de Barramento Representação gráfica diagrama de tempo Escrita Clock Endereço 1 Controle 2 Dados 4 3 Estados de Espera Tempo de acesso ciclo de barramento padrão Escrita Clock Endereço Controle Dados inválido Clock Endereço Controle Dados inválido estados de espera válido Escrita Tipos de Dispositivo ROM Read Only memory PROM Programmable ROM EPROM Erasable Programmable ROM EEPROM Electric Erasable Programmable ROM RAM Random Access Memory SRAM Static RAM DRAM Dynamic RAM Tecnologias de Memória Tecnologia Tempo de Acesso ns por GiB 2012 SRAM 0525 5001000 DRAM 5070 1020 Flash 500050000 07510 Disco 500000020000000 005010 Memória Cache Implementação SRAM Capacidade de armazenamento 256 KBytes a 1 MByte Cache hit acerto miss falha Propriedade da localidade de referência taxa de acerto 90 a 98 Memória Cache Processador Memória Cache Memória Principal Endereço Dados Controle subsistema de memória Localização da memória cache Memória Cache Mapeamento Cache RAM linhas Diretório Mapeamento Direto Por associatividade Cache Mapeada Diretamente Organização mais simples Bloco tamanho de uma palavra Palavra só pode ocupar uma única posição na cache Processo de mapeamento endereço do bloco num de blocos da cache Número de comparações uma Mapeamento Direto Rótulo Informação Pesquisa 12 1 0 Índice 0 0 1 32 Palavras Memória Principal 0 1 31 30 29 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 Faixa de endereços 12 8 4 0 1 1 0 0 0 1 2 3 4 5 6 7 N Bloco Mapeamento Direto Vantagens não há necessidade de algoritmo de substituição hardware simples e de baixo custo alta velocidade de operação Desvantagens redução no desempenho se acessos consecutivos são feitos a palavras com mesmo índice hit ratio inferior ao de caches com mapeamento associativo Hit ratio aumenta com o aumento da cache aproximase de caches com mapeamento associativo tendência atual é de uso de caches grandes Mapeamento Associativo Aproveita melhor as localidades de referência Bloco tamanho maior do que uma palavra Blocos maiores diminui a taxa de falhas Processo de mapeamento endereço do bloco num de conjuntos da cache Número de comparações quantidade de linhas por conjunto Palavra pode estar em qualquer linha do conjunto Mapeamento Associativo Classificação por conjunto completamente associativa Número de rótulos e bits de validade menor uso mais eficiente da cache Endereço com três campos byte bits menos significativos conjunto n bits seguintes rótulo m bits mais significativos Associativo por Conjunto 12 4 0 0 1 1 0 0 4 conjuntos 2 linhas por conjunto N do Conjunto 0 1 2 3 Informação Rótulo Pesquisa 12 1 1 0 Índice 0 0 1 0 0 1 1 1 Endereço Rótulo Conjunto Byte Associativo por Conjunto 0 1 1 0 0 10 4 conjuntos 2 linhas por conjunto N do Conjunto 0 1 2 3 Informação Rótulo Pesquisa 12 1 1 0 Índice 0 0 1 0 0 1 1 1 Endereço Rótulo Conjunto Byte 11 10 01 00 Associativo por Conjunto Vantagem em relação ao mapeamento completamente associativo comparadores são compartilhados por todos os conjuntos algoritmo de substituição só precisa considerar linhas dentro de um conjunto Associativo por Conjunto Desvantagens em relação ao nway associativa por conjunto X mapeamento direto dado tem atraso extra do multiplexador dado vem DEPOIS da decisão HitMiss e da seleção do conjunto numa cache com mapeamento direto linha da cache está disponível ANTES da decisão HitMiss possível assumir um hit e continuar e recuperar depois se for um miss Completamente Associativo Pode ser vista como tendo um único conjunto Processo de mapeamento palavra pode ser colocada em qualquer bloco do conjunto Completamente Associativo Informação Rótulo Pesquisa 12 1 conjunto 8 linhas no conjunto Palavra pode estar em qualquer linha Completamente Associativo Vantagem máxima flexibilidade no posicionamento de qualquer palavra ou linha da memória principal em qualquer palavra ou linha da cache Desvantagens custo em hardware da comparação simultânea de todos os endereços armazenados na cache algoritmo de substituição em hardware para selecionar uma linha da cache na ocorrência um miss Utilizado apenas em memórias associativas de tamanho pequeno tabelas Coerência de Cache Esquemas writethrough a cada escrita na cache escreve também na memória principal writeback só escreve na memória principal quando um bloco for substituído ou no término da aplicação necessita de um bit de controle Políticas de Substituição Políticas LRU o bloco a ser substituído é aquele que não é acessado a mais tempo aleatória qualquer bloco pode ser escolhido para ser substituído Memória Virtual Técnica originalmente criada para permitir a execução de programas cujas exigências quanto ao tamanho da memória sejam maiores do que a capacidade de memória principal instalada no sistema Conceito de Memória Virtual Endereço gerado pelo programa endereço virtual Endereço real usado para acessar a memória principal Endereços virtuais espaço de endereçamento virtual Endereços de memória principal espaço de endereçamento real Conceito de Memória Virtual Ponto de vista de um programa a memória disponível é aquela representada pelo espaço de endereçamento virtual Espaço de endereçamento virtual é uma abstração Distinção entre endereços e espaços de endereçamento exige um mecanismo de correspondência entre o endereço virtual e o endereço real Conceito de Memória Virtual Técnica de memória virtual permite que instruções e dados não estejam na memória principal até que sejam referenciados Necessidade de um mecanismo para o carregamento automático das instruções e dados na memória principal Mecanismo de Memória Virtual Processador Memória Principal subsistema de memória DAT Endereço Virtual Endereço Real Endereço Dados Controle Mecanismo de Memória Virtual Mapeamento realizado pelo DAT Dynamic Address Translator mapeia o endereço virtual em endereço real Mapeamento Tabela de Mapeamento Tabela localizase na memória principal durante toda a execução do processo Para manter um tamanho de tabela aceitável o mapeamento é feito no nível de blocos Mecanismo de Memória Virtual Espaço de endereçamento virtual logicamente dividido em blocos que são mapeados para o espaço de endereçamento real pelo DAT Cada entrada na tabela de mapeamento endereçobase de um bloco Memória virtual pode ser Segmentada os blocos são chamados segmentos e podem ter tamanhos variáveis Paginada os blocos são chamados páginas e possuem tamanho fixo Mecanismo Básico de Mapeamento Bloco 0 Bloco 1 Bloco 2 Bloco n Espaço Virtual Bloco 0 Bloco 1 Bloco 2 Espaço Real a base b base endereço real b d endereço virtual tabela de mapeamento b b Mecanismo Básico de Mapeamento Endereço virtual poder visto como constituído por dois campos campo b bits mais significativos indica o número do bloco onde se encontra a locação de memória referenciada campo d bits menos significativos indica o deslocamento da locação de memória em relação ao início do bloco Mecanismo Básico de Mapeamento DAT valor do campo b endereçobase da tabela de mapeamento endereço de uma entrada da tabela Endereçobase da tabela é mantido internamente no próprio DAT TBR Table Base Register DAT acessa a tabela de mapeamento e obtém o endereçobase do bloco Obtenção do endereço real da locação de memória referenciada valor do campo d endereçobase do bloco Mecanismo Básico de Mapeamento A cada referência dois acessos à memória compromete o desempenho Solução TLB Translation Lookaside Buffer TLB comportase como uma cache TLB armazena os pares de endereço virtualreal que foram usados nos acessos mais recentes TLB num acerto reduz o tempo de mapeamento Memória Secundária Blocos de instruções e de dados de um programa em execução ficam armazenados na memória secundária unidade de disco A ausência de um bloco referenciado pelo programa é detectada pelo DAT no momento do mapeamento O bloco é então carregado da memória secundária para a memória principal Memória Secundária 2 tabela de mapeamento e TLB não mapeiam o bloco b o bloco referenciado não se encontra na memória principal b n 1 programa referencia locação n no bloco de número b b memória secundária 3 o bloco de número b é transferido da memória secundária para a memória principal controlado pelo sistema operacional memória principal 4 tabela de mapeamento e TLB são atualizadas b TLB b b b b tabela de mapeamento TLB xx xx xxxx b tabela de mapeamento 5 acesso à locação n memória física n b Estrutura Comum para Hierarquia de Memória Aspectos operacionais comuns aos sistemas hierárquicos da memória Quatro questões para tratar um bloco onde colocar como localizar como substituir como modificar Onde Colocar um Bloco Diversos esquemas mapeamento direto mapeamento associativo por conjunto completamente associativo Podem ser expressos com a variação do número de conjunto NC conjuntos por bloco NB Esquema de Mapeamento de Blocos Esquema NC NB Direto Número de blocos 1 Associativo por conjunto Número de blocos associatividade Associatividade Totalmente associativo 1 Número de blocos Esquema de Mapeamento 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 e 8 Memória Virtual totalmente associativa Como Localizar um Bloco Depende do esquema utilizado para colocação do bloco Escolha do mapeamento custo de uma falha custo da associatividade Caches e TLBs Direto Associativo por conjunto Esquema de Localização de Blocos Esquema Método de Localização Número de Comparações 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 Como Localizar um Bloco Totalmente associativo proibido exceto para caches e TLBs muito pequenas Memória Virtual Totalmente associativo Como Localizar um Bloco Motivado por quatro fatores por causa do alto custo a associatividade é benéfica associatividade total algoritmos de substituição de páginas mais sofisticados reduzir taxa de falhas mapeamento completo facilidade de indexação não necessita de hardware extra Quanto maior o tamanho da página menor o overhead relativo ao tamanho da tabela de páginas Como Substituir um Bloco Quando não há mais espaço livre substituição de um bloco Bloco candidato mapeamento direto não há escolha associativo por conjunto um dos blocos do conjunto totalmente associativo qualquer bloco Estratégias de substituição mais comuns Aleatória cache LRU cache e memória virtual Como Modificar um Bloco Duas opções básicas Writethrough cache Writeback cache e memória virtual Modelo dos Três Cs Explica as fontes de falhas compulsórias capacidade conflitos ou colisão
1
Arquitetura de Computadores
UERJ
2
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
19
Arquitetura de Computadores
UERJ
65
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
Texto de pré-visualização
O Subsistema de Memória Subsitema de Memória Componentes Mecanismo de acesso do processador Dispositivos de memória principais tipos características Conceitos de memória principal cache virtual Localidade de Referência Programas acessam uma parte relativamente pequena do seu espaço de endereçamento em um dado instante de tempo Dois tipos temporal espacial Princípio da localidade hierarquia de memória Hierarquia de Memória Vários níveis capacidade de armazenamento velocidade de acesso custo por bit custo por bit velocidade de acesso nível superior nível inferior capacidade de armazenamento processador Hierarquia de Memória Unidade mínima de transferência bloco Falha miss x Acerto hit Desempenho taxa de acerto Falha penalidade Memória Cache Memória Principal Memória Secundária linha de cache página Gerenciamento de Memória Políticas ou regras depende suporte de HW busca quando um bloco de informação deve ser transferido de um nível de memória inferior para um nível de memória superior armazenamento onde o bloco de informação deve ser colocado naquele nível de memória substituição qual bloco de informação deve ser substituído por um novo bloco Componente básico célula de bit armazena um bit de informação Acesso do processador conjunto de células de bit Menor conjunto de células de bit acessado pelo processador locação de memória Byte de memória 8 células de bit ou byte Interação entre Processador e Memória Principal Acesso processador deve fornecer identificação da locação onde será feito o acesso endereço de memória sentido do acesso leitura ou escrita Interação 3 barramentos distintos endereço dado controle Interação entre Processador e Memória Principal Interação entre Processador e Memória Principal Processador Endereço Dados Controle Subsistema de Memória Memória Principal Barramento Largura do barramento em número de bits determinado pelo processador barramento de endereço n bits pode endereçar até 2n locações de memória distintas não necessariamente a memória toda é instalada depende da relação custo benefício Ciclo de Barramento Seqüência de eventos acesso do processador à memória definição da locação de memória ativação de sinais de controle troca de informações entre o processador e a memória principal Ciclo de Barramento Representação gráfica diagrama de tempo Clock Endereço Dados Controle 1 2 3 4 Leitura Ciclo de Barramento Representação gráfica diagrama de tempo Escrita Clock Endereço 1 Controle 2 Dados 4 3 Estados de Espera Tempo de acesso ciclo de barramento padrão Escrita Clock Endereço Controle Dados inválido Clock Endereço Controle Dados inválido estados de espera válido Escrita Tipos de Dispositivo ROM Read Only memory PROM Programmable ROM EPROM Erasable Programmable ROM EEPROM Electric Erasable Programmable ROM RAM Random Access Memory SRAM Static RAM DRAM Dynamic RAM Tecnologias de Memória Tecnologia Tempo de Acesso ns por GiB 2012 SRAM 0525 5001000 DRAM 5070 1020 Flash 500050000 07510 Disco 500000020000000 005010 Memória Cache Implementação SRAM Capacidade de armazenamento 256 KBytes a 1 MByte Cache hit acerto miss falha Propriedade da localidade de referência taxa de acerto 90 a 98 Memória Cache Processador Memória Cache Memória Principal Endereço Dados Controle subsistema de memória Localização da memória cache Memória Cache Mapeamento Cache RAM linhas Diretório Mapeamento Direto Por associatividade Cache Mapeada Diretamente Organização mais simples Bloco tamanho de uma palavra Palavra só pode ocupar uma única posição na cache Processo de mapeamento endereço do bloco num de blocos da cache Número de comparações uma Mapeamento Direto Rótulo Informação Pesquisa 12 1 0 Índice 0 0 1 32 Palavras Memória Principal 0 1 31 30 29 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 Faixa de endereços 12 8 4 0 1 1 0 0 0 1 2 3 4 5 6 7 N Bloco Mapeamento Direto Vantagens não há necessidade de algoritmo de substituição hardware simples e de baixo custo alta velocidade de operação Desvantagens redução no desempenho se acessos consecutivos são feitos a palavras com mesmo índice hit ratio inferior ao de caches com mapeamento associativo Hit ratio aumenta com o aumento da cache aproximase de caches com mapeamento associativo tendência atual é de uso de caches grandes Mapeamento Associativo Aproveita melhor as localidades de referência Bloco tamanho maior do que uma palavra Blocos maiores diminui a taxa de falhas Processo de mapeamento endereço do bloco num de conjuntos da cache Número de comparações quantidade de linhas por conjunto Palavra pode estar em qualquer linha do conjunto Mapeamento Associativo Classificação por conjunto completamente associativa Número de rótulos e bits de validade menor uso mais eficiente da cache Endereço com três campos byte bits menos significativos conjunto n bits seguintes rótulo m bits mais significativos Associativo por Conjunto 12 4 0 0 1 1 0 0 4 conjuntos 2 linhas por conjunto N do Conjunto 0 1 2 3 Informação Rótulo Pesquisa 12 1 1 0 Índice 0 0 1 0 0 1 1 1 Endereço Rótulo Conjunto Byte Associativo por Conjunto 0 1 1 0 0 10 4 conjuntos 2 linhas por conjunto N do Conjunto 0 1 2 3 Informação Rótulo Pesquisa 12 1 1 0 Índice 0 0 1 0 0 1 1 1 Endereço Rótulo Conjunto Byte 11 10 01 00 Associativo por Conjunto Vantagem em relação ao mapeamento completamente associativo comparadores são compartilhados por todos os conjuntos algoritmo de substituição só precisa considerar linhas dentro de um conjunto Associativo por Conjunto Desvantagens em relação ao nway associativa por conjunto X mapeamento direto dado tem atraso extra do multiplexador dado vem DEPOIS da decisão HitMiss e da seleção do conjunto numa cache com mapeamento direto linha da cache está disponível ANTES da decisão HitMiss possível assumir um hit e continuar e recuperar depois se for um miss Completamente Associativo Pode ser vista como tendo um único conjunto Processo de mapeamento palavra pode ser colocada em qualquer bloco do conjunto Completamente Associativo Informação Rótulo Pesquisa 12 1 conjunto 8 linhas no conjunto Palavra pode estar em qualquer linha Completamente Associativo Vantagem máxima flexibilidade no posicionamento de qualquer palavra ou linha da memória principal em qualquer palavra ou linha da cache Desvantagens custo em hardware da comparação simultânea de todos os endereços armazenados na cache algoritmo de substituição em hardware para selecionar uma linha da cache na ocorrência um miss Utilizado apenas em memórias associativas de tamanho pequeno tabelas Coerência de Cache Esquemas writethrough a cada escrita na cache escreve também na memória principal writeback só escreve na memória principal quando um bloco for substituído ou no término da aplicação necessita de um bit de controle Políticas de Substituição Políticas LRU o bloco a ser substituído é aquele que não é acessado a mais tempo aleatória qualquer bloco pode ser escolhido para ser substituído Memória Virtual Técnica originalmente criada para permitir a execução de programas cujas exigências quanto ao tamanho da memória sejam maiores do que a capacidade de memória principal instalada no sistema Conceito de Memória Virtual Endereço gerado pelo programa endereço virtual Endereço real usado para acessar a memória principal Endereços virtuais espaço de endereçamento virtual Endereços de memória principal espaço de endereçamento real Conceito de Memória Virtual Ponto de vista de um programa a memória disponível é aquela representada pelo espaço de endereçamento virtual Espaço de endereçamento virtual é uma abstração Distinção entre endereços e espaços de endereçamento exige um mecanismo de correspondência entre o endereço virtual e o endereço real Conceito de Memória Virtual Técnica de memória virtual permite que instruções e dados não estejam na memória principal até que sejam referenciados Necessidade de um mecanismo para o carregamento automático das instruções e dados na memória principal Mecanismo de Memória Virtual Processador Memória Principal subsistema de memória DAT Endereço Virtual Endereço Real Endereço Dados Controle Mecanismo de Memória Virtual Mapeamento realizado pelo DAT Dynamic Address Translator mapeia o endereço virtual em endereço real Mapeamento Tabela de Mapeamento Tabela localizase na memória principal durante toda a execução do processo Para manter um tamanho de tabela aceitável o mapeamento é feito no nível de blocos Mecanismo de Memória Virtual Espaço de endereçamento virtual logicamente dividido em blocos que são mapeados para o espaço de endereçamento real pelo DAT Cada entrada na tabela de mapeamento endereçobase de um bloco Memória virtual pode ser Segmentada os blocos são chamados segmentos e podem ter tamanhos variáveis Paginada os blocos são chamados páginas e possuem tamanho fixo Mecanismo Básico de Mapeamento Bloco 0 Bloco 1 Bloco 2 Bloco n Espaço Virtual Bloco 0 Bloco 1 Bloco 2 Espaço Real a base b base endereço real b d endereço virtual tabela de mapeamento b b Mecanismo Básico de Mapeamento Endereço virtual poder visto como constituído por dois campos campo b bits mais significativos indica o número do bloco onde se encontra a locação de memória referenciada campo d bits menos significativos indica o deslocamento da locação de memória em relação ao início do bloco Mecanismo Básico de Mapeamento DAT valor do campo b endereçobase da tabela de mapeamento endereço de uma entrada da tabela Endereçobase da tabela é mantido internamente no próprio DAT TBR Table Base Register DAT acessa a tabela de mapeamento e obtém o endereçobase do bloco Obtenção do endereço real da locação de memória referenciada valor do campo d endereçobase do bloco Mecanismo Básico de Mapeamento A cada referência dois acessos à memória compromete o desempenho Solução TLB Translation Lookaside Buffer TLB comportase como uma cache TLB armazena os pares de endereço virtualreal que foram usados nos acessos mais recentes TLB num acerto reduz o tempo de mapeamento Memória Secundária Blocos de instruções e de dados de um programa em execução ficam armazenados na memória secundária unidade de disco A ausência de um bloco referenciado pelo programa é detectada pelo DAT no momento do mapeamento O bloco é então carregado da memória secundária para a memória principal Memória Secundária 2 tabela de mapeamento e TLB não mapeiam o bloco b o bloco referenciado não se encontra na memória principal b n 1 programa referencia locação n no bloco de número b b memória secundária 3 o bloco de número b é transferido da memória secundária para a memória principal controlado pelo sistema operacional memória principal 4 tabela de mapeamento e TLB são atualizadas b TLB b b b b tabela de mapeamento TLB xx xx xxxx b tabela de mapeamento 5 acesso à locação n memória física n b Estrutura Comum para Hierarquia de Memória Aspectos operacionais comuns aos sistemas hierárquicos da memória Quatro questões para tratar um bloco onde colocar como localizar como substituir como modificar Onde Colocar um Bloco Diversos esquemas mapeamento direto mapeamento associativo por conjunto completamente associativo Podem ser expressos com a variação do número de conjunto NC conjuntos por bloco NB Esquema de Mapeamento de Blocos Esquema NC NB Direto Número de blocos 1 Associativo por conjunto Número de blocos associatividade Associatividade Totalmente associativo 1 Número de blocos Esquema de Mapeamento 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 e 8 Memória Virtual totalmente associativa Como Localizar um Bloco Depende do esquema utilizado para colocação do bloco Escolha do mapeamento custo de uma falha custo da associatividade Caches e TLBs Direto Associativo por conjunto Esquema de Localização de Blocos Esquema Método de Localização Número de Comparações 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 Como Localizar um Bloco Totalmente associativo proibido exceto para caches e TLBs muito pequenas Memória Virtual Totalmente associativo Como Localizar um Bloco Motivado por quatro fatores por causa do alto custo a associatividade é benéfica associatividade total algoritmos de substituição de páginas mais sofisticados reduzir taxa de falhas mapeamento completo facilidade de indexação não necessita de hardware extra Quanto maior o tamanho da página menor o overhead relativo ao tamanho da tabela de páginas Como Substituir um Bloco Quando não há mais espaço livre substituição de um bloco Bloco candidato mapeamento direto não há escolha associativo por conjunto um dos blocos do conjunto totalmente associativo qualquer bloco Estratégias de substituição mais comuns Aleatória cache LRU cache e memória virtual Como Modificar um Bloco Duas opções básicas Writethrough cache Writeback cache e memória virtual Modelo dos Três Cs Explica as fontes de falhas compulsórias capacidade conflitos ou colisão