gerencia de memorias cache

59
Gerência de Memórias Cache (Mapeamento de Endereços) ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon

Upload: fabiano-andrade

Post on 25-Sep-2015

241 views

Category:

Documents


5 download

DESCRIPTION

MEMORIAS

TRANSCRIPT

  • Gerncia de Memrias Cache(Mapeamento de Endereos) ARQUITETURAS DE COMPUTADORES IIProf. Csar Augusto M. Marcon

    * / 57

    Introduo a CachesFuncionalidaderea de memria rpida e com informaes dinmicasCache s pode ter parte dos dados do nvel mais abaixoTamanho menor ProblemasComo identificar se o dado procurado est na cache?Se estiver, como acessar de forma rpida?Se no estiver, como buscar eficientemente de nveis inferiores?Qual dado tirar da cache para colocar o novo dado?Processador no sabe qual memria fsica tem o dadoGera apenas endereos e a hierarquia se encarrega de acessar a informao endereada

    * / 57

    Mapeamento de Endereos em Memria CacheComo fazer para pesquisar um dado na cache?Fazer cache com todos endereos no faz sentido Efetuar varredura seqencial na cache leva muito tempoSoluoFazer mapeamento de endereosObjetivoRelacionar informaes (dados e instrues) da memria principal com posies da cacheFormas de mapeamento de memrias cacheDiretoAssociativoConjunto associativo

    * / 57

    ndice1. Mapeamento de Endereos em Memria Cache1.1 Mapeamento Direto1.2 Mapeamento Associativo1.3 Mapeamento Conjunto Associativo

    * / 57

    Introduo ao Mapeamento DiretoForma mais simples de mapeamentoPosio na cache depende do endereo da palavra na memria principal (MP)Cada palavra possui uma posio fixaGrupo de palavras mapeado na mesma posio da cacheExemploCache de 4 posies e MP de 32 endereos (palavra de 8 bits)Cada posio da cache tem 1 de 8 posies da MPEndereo obtido pelo resto da diviso inteira do nmero de posies da cacheMapeamento utilizando os dois bits menos significativos do endereo

    * / 57

    Esquema de Mapeamento DiretoTAG (rtulo) para cada posio da cache identifica qual das palavras est na cacheBit de validade posio da cache est ocupada ou contm lixoPoderiam ser usados os bits mais significativos do endereamento ao invs dos bits menos significativos? Qual a conseqncia?

    * / 57

    Acesso a Cache com Mapeamento DiretoPassos para um acessoCalcular o mod do endereo pelo nmero de posies da cache Ex. usar os bits menos significativos do endereoSe bit de validade da posio for vlidoVerificar TagSenoAcusar miss Ir para 4Se Tag diferente de endereoAcusar miss Ir para 4SenoLer posio (hit)Ir para 7Buscar dado no nvel inferiorColocar na posioEfetuar leituraFim

    * / 57

    Mapeamento Direto Bit validade e TagDiviso de bits no registrador de endereamentoExemplo de uma cache com 1024 linhas (210) com palavra de 32 bits

    * / 57

    Mapeamento Direto Transferncia de BlocosTransferncia de blocos entre nveis de memriaExemplo da diviso de blocos em uma cache com 1024 linhas (bloco com 4 palavras de 32 bits)O que ganho ao utilizar blocos ao invs de palavras?

    * / 57

    Mapeamento Direto - ExercciosConsiderando um espao de endereamento de 1 Giga. Como ficaria a diviso de bits para uma cache de 2048 posies que trabalhe com blocos de 8 palavras?

    Quanto tem efetivamente de dados nessa cache, considerando palavras de 32 bits?

    (Bit de validade + Tag + Dados) / Dados(1 + 16 + (8*32)) / (8*32)273 bits / 256 bits256 / 273 * 100% = 93.77%

    * / 57

    Mapeamento Direto - ExercciosSupor as seguintes caractersticas: (i) Memria principal de 2GBytes, com palavras de 32 bits; (ii) Cache com 64Kbits; (iii) Blocos de 16 palavrasMostre como ficar distribuda a cache e o formato da palavra de endereo

    Validity

    bit (vb)

    cacheSize (cS)

    Word

    vbSize

    (vbS)

    wordSize (wS)

    Cache

    tagSize(tS)

    lineAddressSize(lAS)

    blockAddressSize(bAS)

    Tag

    Word0

    Word1

    Word2

    Wordn

    com

    n = 2bAS - 1

    tagSize

    (tS)

    wordSize

    (wS)

    wordSize

    (wS)

    wordSize

    (wS)

    wordSize

    (wS)

    blockSize (bS) = 2bAS * wS

    numberOfLines

    (nOL)

    =

    hit

    lineSize (lS)

    * / 57

    Mapeamento DiretoObtendo o formato do EndereamentoO formato de instruo pode ser obtido com as relaes que seguem:

    cacheSize lineSize numberOfLineslineSize = numberOfWordInsideBlocks wordSize + tagSize + bitValiditySizenumberOfLines = 2lineAddressSizevalidityBitSize = 1cacheSize (numberOfWordInsideBlocks wordSize + tagSize + 1) 2lineAddressSize

    addressSize = tagSize + lineAddressSize + blockAddressSizeaddressSize = log2(memorySize)blockAddressSize = log2(numberOfWordInsideBlocks)

    log2(memorySize) = tagSize + lineAddressSize + log2(numberOfWordInsideBlocks)tagSize = log2(memorySize) - lineAddressSize - log2(numberOfWordInsideBlocks)

    * / 57

    Mapeamento DiretoObtendo o formato do EndereamentoVoltando ao problema:Memria principal de 8GBytes, com palavras de 32 bits (word = 4 bytes)memorySize = 2GWordsCache com 64KbitscacheSize = 64KBits = 64 1024 = 65536 bitsBlocos de 16 palavrasnumberOfWordInsideBlocks = 16blockAddressSize = log2(16) = 4Aplicando as relaes, teremos:cacheSize (numberOfWordInsideBlocks wordSize + tagSize + 1) 2lineAddressSize65536 (16 32 + tagSize + 1) 2lineAddressSize65536 (512 + tagSize + 1) 2lineAddressSize65536 (513 + tagSize) 2lineAddressSize

    tagSize = log2(memorySize) - lineAddressSize - log2(numberOfWordInsideBlocks)tagSize = log2(2 Giga) - lineAddressSize - 4tagSize = 31 - lineAddressSize - 4tagSize = 27 - lineAddressSize

    * / 57

    Mapeamento DiretoObtendo o formato do EndereamentoFinalizando:Substituindo o termo da equao na inequao, teremos:65536 (513 + 27 - lineAddressSize) 2lineAddressSize65536 (540 - lineAddressSize) 2lineAddressSize

    A soluo da inequao pode ser feita atravs de tentativa e erro, de forma a chegar ao valor que mais se aproxima da soluo:lineAddressSize = 665536 (540 - 6) 2665536 34176

    tagSize = 27 - lineAddressSize tagSize = 27 - 6tagSize = 21Assim, o formato do endereamento fica:

    tagSize = 21

    lineAddressSize = 6

    blockAddressSize = 4

    * / 57

    Mapeamento Direto - Concluses e QuestesVantagens do mapeamento diretoHardware baratoProcura simples (posio fixa) No existe escolha da vtima ( dada pelo mdulo)Simplicidade / VelocidadeDesvantagens do mapeamento diretoPode ter mau aproveitamento das posies da cache (dependendo dos endereos gerados)Usa parte da cache para controleComo melhorar o mapeamento apresentado?Como retirar dependncia entre endereo na memria e posio da cache sem comprometer desempenho da procura?

    * / 57

    (POSCOMP 2011 - 30) Um sistema de computador possui um mapa de memria de 4 Gbytes, usando endereamento a byte e uma memria cache com organizao de mapeamento direto. A cache tem capacidade de armazenar at 1.024 palavras de 32 bits provenientes do mapa de memria. Assuma que a cache sempre escrita de forma atmica com quatro bytes vindos de um endereo de memria alinhado em uma fronteira de palavra de 32 bits, e que ela usa 1 bit de validade por linha de cache. Neste caso, as dimenses do rtulo (tag) da cache, do ndice e o tamanho da cache so, respectivamentea) 12 bits, 18 bits e 54.272 bitsb) 14 bits, 18 bits e 56.320 bitsc) 20 bits, 10 bits e 54.272 bitsd) 20 bits, 12 bits e 54.272 bitse) 22 bits, 10 bits e 56.320 bits

    Exerccios

    * / 57

    (POSCOMP 2011 - 30) Um sistema de computador possui um mapa de memria de 4 Gbytes, usando endereamento a byte e uma memria cache com organizao de mapeamento direto. A cache tem capacidade de armazenar at 1.024 palavras de 32 bits provenientes do mapa de memria. Assuma que a cache sempre escrita de forma atmica com quatro bytes vindos de um endereo de memria alinhado em uma fronteira de palavra de 32 bits, e que ela usa 1 bit de validade por linha de cache. Neste caso, as dimenses do rtulo (tag) da cache, do ndice e o tamanho da cache so, respectivamentea) 12 bits, 18 bits e 54.272 bitsb) 14 bits, 18 bits e 56.320 bitsc) 20 bits, 10 bits e 54.272 bitsd) 20 bits, 12 bits e 54.272 bitse) 22 bits, 10 bits e 56.320 bits

    Resposta de Exerccios

    * / 57

    ndice1. Mapeamento de Endereos em Memria Cache1.1 Mapeamento Direto1.2 Mapeamento Associativo1.3 Mapeamento Conjunto Associativo

    * / 57

    Introduo ao Mapeamento AssociativoEndereo da MP em qualquer posio da cacheTag no fica mais na cache e sim em memria especial (memria associativa)Pode ter bit de validade ou usar tag com valor invlido para determinar se posio tem uma informao vlidaConseqnciasNecessita fazer procura de dadoNecessita poltica de substituioQuando ocorre missBuscar no nvel abaixo e, caso a cache esteja com todas posies ocupadas, quem tirar para abrir lugar?Soluo para procurarProcurar em paraleloUsar memria associativaMemria cara e de tamanho limitado

    * / 57

    Esquema de Memria para Mapeamento Associativo Pesquisa em ParaleloSe todos os bits dos endereos forem iguaisEndereo proveniente do processadorEndereo na memria associativa

    * / 57

    Esquema Bsico de Mapeamento Associativo - TagDiviso de bits no registrador de endereamentoExemplo de uma cache com 1024 posies (210) com palavra de 32 bits

    * / 57

    Mapeamento Associativo Transferncia de BlocosTransferncia de blocos entre nveis de memriaExemplo da diviso de blocos em cache de 1024 linhas (bloco com 4 palavras de 32 bits)

    * / 57

    Mapeamento Associativo Substituio de Dados na CacheUsar polticasRandmicaEscolhe aleatoriamente posio a ser substituda Simples, mas sujeito a aumentar nmero de caches missContadorUm contador baseado em algum clock aponta para a prxima posio a ser substituda simples, mas igualmente poltica randmica, est sujeita a aumentar o nmero de missesLFU (Least Frequent Used)Posio da cache menos usada substituda Escolha precisa mecanismo de contagem para cada acessoLRU (Least Recent Used)Posio da cache usada a mais tempo ser substituda Escolha precisa varivel de tempo a cada acesso e comparao

    * / 57

    Mapeamento Associativo Algoritmo do RelgioTcnica simples para pesquisar endereo de memria cache visitado h mais tempo. Permite a implementao do critrio de substituio por tempoA tcnica, na verdade, no retorna a posio h mais tempo visitada, mas simples, fornecendo posies visitadas h mais tempoCada posio da cache tem associado um bit (flag) que informa se a mesma foi ou no recentemente visitada. Quando posio de memria acessada, a flag escritaUm ponteiro (relgio) que caminha nos endereos da cache em uma determinada base de tempo, vai apagando as flags na medida em que passa por elasSe uma posio de memria no tem a flag escrita considerada que ela foi acessada h mais tempo e pode ser descartada. Esta informao fica em uma pequena lista no gerente da hierarquia de memria

    O algoritmo pode ser melhorado substituindo flags por contadores. Cada vez que o relgio passa, contador decrementado, e cada vez que a posio de memria acessada, contador volta para valor mximo

    * / 57

    Acesso a Cache com Mapeamento AssociativoPassos para um acessoAlimentar memria associativa com Tag procurado (comparao)Se Tag est na memria associativa(Hit) Acessar memria cache com ndice fornecido pela memria associativaIr para 7SenoAcusar miss Se no existir posio livre na cacheEscolher endereo para substituir de acordo com poltica estabelecida (e.g. LRU)Buscar dado no nvel inferiorColocar na posio livre ou escolhida da memria cacheCadastrar posio na memria associativa para pesquisas futurasEfetuar leituraFim

    * / 57

    Mapeamento Associativo - ExercciosConsiderando espao de endereamento de 256 Mega palavras. Como ficaria a diviso de bits do endereo para uma cache de 2048 posies e que trabalhe com blocos de 8 palavras?

    Quanto tem efetivamente de dados nessa cache? 100% (no considerando bit de validade)Qual o tamanho da memria associativa? Tamanho=2048 * 25 (tag)=51200 bits / 8 =6400 bytes / 1024 =6,25 Kbytes

    * / 57

    Mapeamento Associativo - Concluses e QuestesVantagens do mapeamento associativoMelhor distribuio da informao na cache Melhor aproveitamento da cache Praticamente 100% de aproveitamentoTags no ocupam espao da cache (esto na memria associativa)DesvantagensMemria associativa tem alto custo e tamanho limitadoLimita nmero de linhas da cacheNecessita poltica de substituioPode ocorrer escolhas inadequadasGasta tempo

    Limite de tamanho da cache devido pesquisa na memria associativa uma restrio muito forte Tendncia aumentar a cacheQual seria outra possibilidade?

    * / 57

    (POSCOMP 2013, Questo 48) Sobre memria cache, considere as afirmativas a seguir.I. No mapeamento associativo, cada bloco da memria principal pode ser carregado em qualquer linha da cache.II. No mapeamento direto, cada bloco da memria principal mapeado a apenas uma linha de cache.III. No mapeamento direto, o acesso repetido a diferentes blocos de memria mapeados na mesma linha de cache resultar em uma alta taxa de acerto.IV. A tcnica de mapeamento associativo simples e pouco dispendiosa para se implementar.Assinale a alternativa correta.a) Somente as afirmativas I e II so corretas.b) Somente as afirmativas I e IV so corretas.c) Somente as afirmativas III e IV so corretas.d) Somente as afirmativas I, II e III so corretas.e) Somente as afirmativas II, III e IV so corretas.Exerccios

    * / 57

    (POSCOMP 2013, Questo 48) Sobre memria cache, considere as afirmativas a seguir.I. No mapeamento associativo, cada bloco da memria principal pode ser carregado em qualquer linha da cache.II. No mapeamento direto, cada bloco da memria principal mapeado a apenas uma linha de cache.III. No mapeamento direto, o acesso repetido a diferentes blocos de memria mapeados na mesma linha de cache resultar em uma alta taxa de acerto.IV. A tcnica de mapeamento associativo simples e pouco dispendiosa para se implementar.Assinale a alternativa correta.a) Somente as afirmativas I e II so corretas.b) Somente as afirmativas I e IV so corretas.c) Somente as afirmativas III e IV so corretas.d) Somente as afirmativas I, II e III so corretas.e) Somente as afirmativas II, III e IV so corretas.Resposta de Exerccios

    * / 57

    Considere uma memria principal de 256 bytes, e caches de 4 linhas, cada linha contendo um bloco de 8 bytes, alm do espao para colocar os bits de controle (bit de validade e tag), se forem necessrios. Dadas as sequncias de acesso memria principal tabeladas abaixo, preencha as caches para o caso de mapeamento direto e associativo. Considere que no mapeamento associativo, a poltica para substituio LRU. Compare ambas as implementaes. Diga quantos miss e quantos hits aconteceram em cada casoSequncia de acessos (posio representada em hexadecimal)

    Tabela auxiliar com a numerao da memria principal (256 bytes, blocos de 8 bytes, dividida em 4 partes blocos de cada parte so mapeados em uma linha)

    Exerccios

    * / 57

    (continuao)Mapeamento Direto

    Hits =Miss =Mapeamento Associativo

    Hits =Miss =Exerccios

    * / 57

    (continuao)Mapeamento Direto

    Hits = 14, Miss = 6Mapeamento Associativo

    Hits = 15, Miss = 5Resposta de Exerccios

    BVTAG (3 bits)0123456700, 1110C8C9CACBCCCDCECF0, 1000, 10010,9011,9112,9213,9314,9415,9516,9617,970, 1000, 100, 00018,98,1819,99,191A,9A,1A1B,9B,1B1C,9C,1C1D,9D,1D1E,9E,1E1F,9F,1F

    MA (5 bits)BV0123456700010, 110010,110, C811, C912, CA13, CB14, CC15, CD16, CE17, CF000110,118191A1B1C1D1E1F100100,19091929394959697100110,198999A9B9C9D9E9F

    * / 57

    ndice1. Mapeamento de Endereos em Memria Cache1.1 Mapeamento Direto1.2 Mapeamento Associativo1.3 Mapeamento Conjunto Associativo

    * / 57

    Introduo ao Mapeamento Conjunto AssociativoCompromisso entre mapeamento direto e totalmente associativoCache dividida em S conjuntos de N blocos/palavrasSe S = 1 mapeamento associativoSe S = nmero de blocos/palavras da cache mapeamento diretoPesquisa dentro do conjuntoEndereo i, da memria principal, pode mapear para endereos no conjunto i mod S, da cacheNecessita de poltica de substituio quando ocorre cache missCaso conjunto esteja cheio quem tirar?A substituio deve ser necessariamente dentro do conjunto

    * / 57

    Mapeamento Conjunto Associativo - TagDiviso de bits no registrador de endereamentoExemplo de cache com 1024 posies (210) com palavra de 32 bits e 2 conjuntos (S=2)

    * / 57

    Acesso Cache com Mapeamento Conjunto AssociativoPassos para um acessoCalcular resto da diviso inteira do endereo pelo nmero de conjuntos S Ex. usar bits menos significativos de endereoAlimentar memria associativa do conjunto com Tag (Comparao)Se Tag est na memria associativa(Hit) Acessar memria cache com ndice fornecido pela memria associativaIr para 8SenoAcusar miss Se no existir posio livre no conjunto cacheEscolher endereo para substituir de acordo com poltica estabelecidaBuscar dado no nvel inferiorColocar dado na posio livre ou escolhida da caheCadastrar posio na memria associativa para pesquisas futurasEfetuar leituraFim

    * / 57

    Mapeamento Conjunto Associativo - ExercciosConsiderando uma cache com 1024 posies (210) com palavra de 32 bits, um espao de endereamento de 4 Gigabytes (232), dois conjuntos associativos e Tag com endereo invlido para marcar dados invlidos, responda as perguntas que seguem

    Quanto tem efetivamente de dados nessa cache?100%Qual tamanho de cada memria associativa? Tamanho= 1024 (linhas) / 2 (cj.) * 31 (tag)= 512 * 31 bits = 15872 bits = 15872 bits / 8 = 1984 bytes = 1984 bytes / 1024 = 1,93 KbytesComo ficaria a mesma cache com 4 conjuntos (S=4)?

    * / 57

    Mapeamento Conjunto Associativo - ExercciosEsquema com 4 conjuntos associativos

    * / 57

    Mapeamento Conjunto Associativo - ExercciosQual tamanho de cada uma das 4 memrias associativas? Tamanho= 256 * 30 (tag)= 7680 bits / 8= 960 bytes / 1024= 0,94 KbytesComo ficaria diviso do endereo de cache de 4 conjuntos com 2048 posies (bloco com 4 palavras de 32 bits)?

    * / 57

    Mapeamento Conjunto Associativo Nveis de AssociatividadeAssociatividade da cache dada pelo nmero de vias (ways)Exemplo: cache de 8 posies pode ter 1 a 8 vias

    Quantos conjuntos possui cache L1 4-Way de 64 Kbytes e com processador Ultra Sparc III (assumir bloco de 32 palavras de 64 bits)?Tamanho da linha da cache = 32 * 64 b = 2048 b = 256 B = 0,25 KB64 KB / 0,25 KB = 256 linhas / 4 (4-Way 4 linhas por cj) = 64 cj

    Vias (Ways)MapeamentoEsquema1Direto2Conjunto-associativo (4 cj)4Conjunto-associativo (2 cj)8Associativo

    * / 57

    Mapeamento Conjunto Associativo Nveis de Associatividade e Miss Rate

    * / 57

    Mapeamento Conjunto Associativo Vantagens e DesvantagensVantagensAumenta tamanho da cache mantendo tamanho da memria associativa (limitao tecnolgica ou custo)Pode usar a totalidade da cache para dadosTags esto nas memrias associativasBit de validade pode ser substitudo por endereo invlido DesvantagensMemria associativa tem alto custo e tamanho limitadoNecessita poltica de substituioGasta tempoPode escolher mal

    * / 57

    Mapeamento Conjunto Associativo Miss Rate versus Tamanho do Bloco

    * / 57

    Mapeamento Conjunto Associativo O Efeito do Tamanho do BlocoExerccios:Analise o comportamento das trs curvasPorque, a partir de um determinado tamanho, quando o bloco aumenta tambm aumenta o tempo de acesso?

    * / 57

    Cite alguns problemas bsicos do uso de memria cache e comentePorque no necessrio para o processador saber onde esto fisicamente os dados quando gera o endereamento?Quais so as trs formas bsicas de mapeamento de memrias cache? Comente sobre vantagens e desvantagens das mesmasExplique como funciona o mapeamento direto. Para que serve a tag, e para que serve o bit de validade?Comente sobre o passo 4 (buscar dado no nvel inferior) do algoritmo de acesso memria cache com mapeamento direto. Fale com relao a tempo para sua execuo. Detalhe melhor este passoCalcular o mdulo do endereo pelo nmero de posies da cache (ou usar os bits menos significativos do endereo);Verificar o bit de validade da posio da cache correspondente e se for invlido acusar miss (ir para 4), seno verificar o Tag;Se Tag diferente do endereo procurado acusar miss (ir para 4), seno ocorre hit. Ler a posio (fim);Buscar dado no nvel inferior. Colocar na posio e efetuar a leitura (fim)Porque o mapeamento direto to rpido/simples para acessar um dado? Comente, descrevendo os mecanismos necessrios para o seu funcionamentoExerccios

    * / 57

    Qual a necessidade do multiplexador no mapeamento direto com blocos?Comente a seguinte frase: Depois de realizado vrios testes, verificamos que cache, com mapeamento direto, somente interessante se os dados que compartilham as mesmas reas de cache estiverem bastante distantes na memria fsicaComente a afirmativa: Para ter melhor desempenho, a escolha do modo de endereamento depende da aplicao. Descreva aplicaes onde o mapeamento direto pode ser interessanteExiste como a abordagem de mapeamento direto ser realizada dinamicamente? Ou seja, os dados no tm endereos fixos conhecido em tempo de projeto, mas sim durante a execuo do programa este endereo calculadoConsiderando possvel a pergunta acima, quais as conseqncias desta modalidade de mapeamento direto? Comente analisando caractersticas como: velocidade de acesso, custos de implementao, flexibilidade da memria cache.Qual a caracterstica bsica de uma memria associativa? Responda comentando sobre a organizao deste tipo de memriaDescreva o funcionamento do mapeamento associativo. Cite uma grande vantagem? Cite uma grande desvantagem?Porque no mapeamento associativo pode no ser necessrio o uso de bit de validade?Exerccios

    * / 57

    Cite as trs polticas bsicas para substituio de dados em uma memria associativa. Explique como funciona cada uma delas. Diga vantagens e desvantagens. Sugira alguma outra poltica e compare com as anterioresDiga qua(l/is) a(s) diferena(s) bsica(s) entre o acesso a dados em cache com mapeamento direto e mapeamento associativoComente a afirmao: A grande vantagem do mapeamento associativo frente ao mapeamento direto est no fato que toda a memria pode ser utilizada eficientemente como cache. J no mapeamento direto esta eficincia praticamente inalcanvelDescreva o funcionamento do mapeamento conjunto associativoDado S como nmero de conjuntos de um mapeamento conjunto associativo. Porque se S=1 o mapeamento conjunto associativo se assemelha ao mapeamento associativo, e se S=nmero de blocos/palavras da cache o mapeamento conjunto associativo se assemelha ao mapeamento direto.Descreva como funcionam os nveis de associatividadeQual a diferena bsica entre o mapeamento associativo e o mapeamento conjunto associativo? Apresente vantagens e desvantagens.Exerccios

    * / 57

    Compare com relao a vantagens e desvantagens, o mapeamento direto e o mapeamento conjunto associativoO que diferencia a memria associativa das memrias convencionais? Qual a aplicao das memrias associativas? Faa um diagrama da arquitetura de uma memria associativa, explicando o seu funcionamentoNa figura abaixo, que relaciona taxa de associatividade com miss-rate, mostrado que para, caches pequenas, o miss-rate reduz medida que aumenta a associatividade (nmero de vias). Porque isto acontece? Porque o mesmo efeito no verificado com caches maiores?Exerccios

    * / 57

    Comente as curvas que relacionam tamanho do bloco com miss-rate e tamanho de cacheExercciosComente as trs figuras que relacionam o efeito do tamanho do bloco no tempo mdio de acesso e no miss-rate

    * / 57

    Diferencie localidade espacial de localidade temporal. Explique porque os sistemas de hierarquia de memrias so baseados no princpio de localidadeAponte qual o grfico que melhor representa o efeito do tamanho da memria cache no hit-rate e diga por quExerccios

    * / 57

    Considere a seguinte estrutura de memria:Memria principal: 1 MByteMemria cache: 16 KbytesTamanho do bloco na cache: 32 palavrasTamanho da palavra: 1 ByteQuantos blocos tm a memria cache? Mostre o clculo e expliqueComo formado o endereo para o mapeamento direto? Explique com diagramasQual a rea necessria para armazenar os TAGs, em Bytes?Qual a desvantagem do mapeamento direto?Como seria a formao para o mapeamento conjunto associativo 4-way (4 blocos em cada conjunto)? Explique com diagramasO que pode ser alterado na arquitetura de memrias cache para diminuir o miss-rate? Explique as possibilidades que forem citadasExerccios

    * / 57

    (POSCOMP 2005 - 23) Das afirmaes a seguir, sobre memria cache, quais so verdadeiras?Numa estrutura totalmente associativa, um bloco de memria pode ser mapeado em qualquer slot do cache.O campo tag do endereo usado para identificar um bloco vlido no cache, junto com o campo de ndice.Um cache de nvel 2 serve para reduzir a penalidade no caso de falta no nvel 1.O esquema de substituio LRU o mais usado para a estrutura de mapeamento direto.Somente as afirmaes (I), (III) e (IV).Somente as afirmaes (II), (III) e (IV).Somente as afirmaes (I) e (II).Somente as afirmaes (I), (II) e (III).Somente as afirmaes (II) e (III).Exerccios

    * / 57

    (POSCOMP 2005 - 23) Das afirmaes a seguir, sobre memria cache, quais so verdadeiras?Numa estrutura totalmente associativa, um bloco de memria pode ser mapeado em qualquer slot do cache.O campo tag do endereo usado para identificar um bloco vlido no cache, junto com o campo de ndice.Um cache de nvel 2 serve para reduzir a penalidade no caso de falta no nvel 1.O esquema de substituio LRU o mais usado para a estrutura de mapeamento direto.Somente as afirmaes (I), (III) e (IV).Somente as afirmaes (II), (III) e (IV).Somente as afirmaes (I) e (II).Somente as afirmaes (I), (II) e (III).Somente as afirmaes (II) e (III).Resposta de Exerccios

    * / 57

    (POSCOMP 2008 - 55) Analise as seguintes afirmativasO processador que apresenta o melhor desempenho sempre aquele que tem a freqncia de relgio mais alta.A tcnica de pipeline utilizada para aumentar o desempenho em processadores. Dessa forma, o pipeline alivia o tempo de latncia das instrues.A maneira mais simples de aumentar a taxa de acertos em memria cache aumentar a sua capacidade.Em arquiteturas superescalares, os efeitos das dependncias e antidependncias de dados so reduzidos na etapa de renomeao de registradores.A anlise permite concluir que:Todas as afirmativas so verdadeiras.Somente as afirmativas II e III so verdadeiras.Somente as afirmativas III e IV so verdadeiras.Somente as afirmativas II, III e IV so verdadeiras.Nenhuma das afirmativas verdadeira.Exerccios

    * / 57

    (POSCOMP 2008 - 55) Analise as seguintes afirmativasO processador que apresenta o melhor desempenho sempre aquele que tem a freqncia de relgio mais alta.A tcnica de pipeline utilizada para aumentar o desempenho em processadores. Dessa forma, o pipeline alivia o tempo de latncia das instrues.A maneira mais simples de aumentar a taxa de acertos em memria cache aumentar a sua capacidade.Em arquiteturas superescalares, os efeitos das dependncias e antidependncias de dados so reduzidos na etapa de renomeao de registradores.A anlise permite concluir que:Todas as afirmativas so verdadeiras.Somente as afirmativas II e III so verdadeiras.Somente as afirmativas III e IV so verdadeiras.Somente as afirmativas II, III e IV so verdadeiras.Nenhuma das afirmativas verdadeira.Resposta de Exerccios

    * / 57

    (POSCOMP 2010 - 33) Um computador apresenta um sistema de memria organizado em quatro nveis: memrias cache nveis 1 e 2, memrias RAM principal e secundria. Programas prontos para execuo so trazidos da memria secundria e transformados em processos na memria principal. Uma instruo para acessar dados na memria fornece o endereo real de memria onde se localiza a informao desejada. A informao ento buscada na cache nvel 1. Se l no for encontrada, ela buscada no segundo nvel de cache. No sendo encontrada, a informao finalmente buscada na memria principal.Qual o modo de endereamento utilizado?a) Imediatob) Indiretoc) Diretod) Implcitoe) Relativo

    Exerccios

    * / 57

    (POSCOMP 2010 - 33) Um computador apresenta um sistema de memria organizado em quatro nveis: memrias cache nveis 1 e 2, memrias RAM principal e secundria. Programas prontos para execuo so trazidos da memria secundria e transformados em processos na memria principal. Uma instruo para acessar dados na memria fornece o endereo real de memria onde se localiza a informao desejada. A informao ento buscada na cache nvel 1. Se l no for encontrada, ela buscada no segundo nvel de cache. No sendo encontrada, a informao finalmente buscada na memria principal.Qual o modo de endereamento utilizado?a) Imediatob) Indiretoc) Diretod) Implcitoe) Relativo

    Resposta de Exerccios

    * / 57

    Refazer o exerccio a seguir, considerando agora o mapeamento conjunto associativo, com 2 conjuntos. Considere uma memria principal de 256 bytes, e caches de 4 linhas, cada linha contendo um bloco de 8 bytes, alm do espao para colocar os bits de controle (bit de validade e tag), se forem necessrios. Dadas as sequncias de acesso memria principal tabeladas abaixo, preencha as caches para o caso de mapeamento direto e associativo. Considere a poltica para substituio LRU. Diga quantos miss e quantos hits aconteceramSequncia de acessos (posio representada em hexadecimal)

    Tabela auxiliar com a numerao da memria principal (256 bytes, blocos de 8 bytes, dividida em 4 partes blocos de cada parte so mapeados em uma linha)

    Exerccios

    * / 57

    Mapeamento DiretoHits = 14, Miss = 6

    Mapeamento AssociativoHits = 15, Miss = 5

    Mapeamento Conjunto AssociativoHits = , Miss =

    Exerccios

    BVTAG (3 bits)0123456700, 1110C8C9CACBCCCDCECF0, 1000, 10010,9011,9112,9213,9314,9415,9516,9617,970, 1000, 100, 00018,98,1819,99,191A,9A,1A1B,9B,1B1C,9C,1C1D,9D,1D1E,9E,1E1F,9F,1F

    MA (5 bits)BV0123456700010, 110010,110, C811, C912, CA13, CB14, CC15, CD16, CE17, CF000110,118191A1B1C1D1E1F100100,19091929394959697100110,198999A9B9C9D9E9F

    MA (4 bits)BV01234567