Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO PARÁ ICEN – INSTITUTO DE CIENCIA EXATAS E NATURAIS FACOMP – FACULDADE DE COMPUTAÇÃO CURSO DE CIENCIA DA COMPUTAÇÃO – 2021 TURMA: EN05210 DISCENTE: CHRISTIAN DE JESUS DA COSTA MARINHO Matricula: 202004940041 EXERCICIO DE MEMÓRIA CACHE SISTEMA DE COMPUTAÇÃO BELÉM 2021 1 – Uma memória cache associativa por conjunto consiste em 256 linhas divididas em conjuntos de duas linhas cada. A memória principal contém 4K bloco de 128 bytes cada um. Mostre o formato de um endereço de MP e da cache. MP = 4K * 128 = 512K = 29 * 210 = 219 -> Endereço da MP = 19 bits Conjunto = 256 / 2 = 128 = 27 -> 7 Quantidade de blocos por conjunto = 4K / 128 = 32 = 25 -> Tag = 5 Células = 128 = 27 = 7 2 – Em que circunstancias uma cache que funciona com mapeamento associativo por conjunto pode ser considerada igual a cache que funciona com mapeamento direto? No endereçamento, já que os dois mapeamentos lidam diretamente com um elemento da cache, sendo a própria linha da cache ou um conjunto. 3 – Considere um sistema de computação que possui uma memória principal (RAM) com capacidade máxima de endereçamento de 64K células, e que cada célula armazena um byte de informação. Para criar um sistema de controle e funcionamento da sua memória cache, a memória RAM é constituída de blocos de 8 bytes cada. A memoria cache do sistema é do tipo mapeamento direto, contendo 32 linhas. Pergunta-se: a) Como seria organizado o endereço da MP (RAM) em termos de tag, número de linha e do byte de uma linha? Total de Blocos = 64K / 8 = 8K blocos Número de linhas da MC = 32 Linhas -> 25 = 5 bits Tag = 8K / 32 = 256 -> 28 Célula = 8 -> 23 = 3 bits b) Em que linha estaria contido o byte armazenado no seguinte endereço da MP: 0001 0001 0001 1011? Como o bit menos significativo é 011, logo estaria na linha 00011 Tag 5 bits Conjunto 7 bits Célula 7 bits 19 bits Tag 8 bits Linha 5 bits Célula 3 Bits 16 bits c) Qual é a capacidade de memória cache em bytes? MC = 8K / 32 = 213 / 25 = 256 bytes 6 – Ao se verificar a organização de uma memória cache e da MP de um sistema de computação, observa-se que a cache tem uma capacidade de armazenamento muito menor que a MP e, ainda assim, sabe-se que em 100 acessos do processador a cache ele obtém cerca de 95 a 98% de acertos. Por que? Por causa do Princípio da Localidade, que diz que se um dado for acessado na memória, há uma boa probabilidade de este dado ser acessado de novo ou de um dado seguinte ser acessado, por isso, a memória cache carrega um bloco com esses dados prováveis para que sejam acessados mais rápido. 7 – Por que é necessário se estabelecer uma política para substituição de linhas para os métodos de mapeamento associativo e não para o método direto? Porque no mapeamento direto, cada bloco da MP já tem um lugar pré- determinado na Memória Cache, já no mapeamento associativo, os blocas podem ser colocados em qualquer lugar, por isso, deve-se ter uma politica de substituições de linhas para que não ocorram muitos miss. 8 – Considere uma MP que possui 4K blocos de 128 células de 1 byte cada e uma memoria cache do tipo associativa por conjunto que possui 64 linhas divididas em conjuntos de quatro linhas. Qual deverá ser o formato do campo de endereçamento para acesso a MP e a memória cache? MP = 4K * 128 = 512K = 212 * 27 = 219 = 19 bits Conjunto = 64 / 4 = 16 -> 24 = 4 bits Tag = 4K / 16 = 256 -> 28 = 8 bits Célula = 128 -> 27 = 7 bits 9 – Considere um sistema de computação que possui uma memoria principal organizada em células de 1 byte cada e apenas uma memoria cache externa, organizada com mapeamento direto, sendo cada linha de 32 bytes. Em um dado instante, o processador inicia um acesso colocando no BE comum o endereço hexadecimal: 5D7A9F2. Sabendo-se que neste sistema cada linha de cache tem atribuídos 512 blocos da MP, pergunta-se: Tag 8 bits Conjunto 4 bits Célula 7 Bits 19 bits a) Qual deverá ser a largura do BE do sistema? 5D7A9F2 = 7 * 4bits = 28 bits b) Qual foi a linha acessada pelo processador? 11110101001111 11 – Considere uma memória cache organizada com mapeamento associativo por conjunto, sendo cada conjunto de quatro linhas. A MP tem uma capacidade de armazenar 64MB, sendo organizada byte a byte, e o sistema transfere de cada vez (MP <- ->cache) 32 bytes. Considerando que a capacidade da cache é de 64KB, mostre como deve ser o formato dos campos de endereço para a memória cache. MP = 64MB = 226 -> 26 bits Célula = 32 bytes = 25 -> 5 bits Quantidade de Linhas = 64KB / 32 = 2K Quantidade de Conjuntos = 2K / 4 = 512 conjuntos Conjunto = 512 = 29 -> 9 bits Tag = 26 – 9 – 5 = 12 bits 13 – Considere um sistema de armazenamento construído de uma memória principal, que é endereçada por byte e que tem uma capacidade de 256KB, sendo organizada em blocos de 16 bytes de largura. Considerando que se usa neste sistema o método de mapeamento direto para uma cache construída de 128 linhas, pergunta-se: a) Qual deverá ser o formato do endereço a ser interpretado pelo sistema de controle da cache, indicando a largura de cada campo? MP = 256KB -> 228 = 28 bits Linhas = 256KB / 128 = 2K -> 211 = 11 bits Total de blocos = 256KB / 16 = 16K Tag = 16K / 2K = 8K -> 213 = 13 bits Celula = 16 -> 24 = 4 bits Tag 12 bits Conjunto 9 bits Célula 5 Bits 26 bits Tag 13 bits Linhas 11 bits Célula 4 Bits 28 bits b) Em que linha deverão ser armazenados os bytes que possuam os seguintes endereços: - 1011 1110 0010 1001 1101 0000 1100? Tag: 1011 1110 0010 1 Linha: 001 1101 0000 Célula: 1100 - 0001 1010 0011 0001 0111 1000 1111? Tag: 0001 1010 0011 0 Linha: 001 0111 1000 Célula: 1111 c) Qual deverá ser o total de bits consumido nessa cache? d) Qual deverá ser o endereço do bloco que contem um byte com o seguinte endereço: 0010 1110 1001 0001 1110 0011 1110? 0010 1110 1001 0 14 – Considere um sistema de armazenamento com MP endereçada por byte, onde cada endereço tem uma largura de 30 bits e uma memória cache constituída de 256KB, possuindo L linhas com largura de 16 bytes. Calcule o total de bits de memoria cache para um dos métodos de mapeamento: direto, associativo e associativo por conjunto. Mapeamento Direto: MP = 230 = 1GB Td = Quantidade de Linha * Largura da Linha = 16K * 16 * 23 = 2.097.152 bits Tt = Quantidade de linhas * Total de bits da Tag Quantidade de Linhas = 256KB / 16 = 218 / 24 = 214 = 16K Quantidade de blocos = 1GB / 16 = 230 / 24 = 226 = 64M Largura da Tag = Q. blocos / Q. linha = 226 / 214 = 212 = Tag = 12 Total de bits da Tag = 214 * 12 = 196.608 bits T = Td + Tt = 2.097.152 + 196.608 = 2.293.760 bits Mapeamento Associativo: MP = 230 = 1GB Td = Quantidade de Linha * Largura da Linha = 16K * 16 * 23 = 2.097.152 bits Tb = Quantidade de linhas * Total de bits do Bloco Quantidade de Linhas = 256KB / 16 = 218 / 24 = 214 = 16K Quantidade de blocos = 1GB / 16 = 230 / 24 = 226 = 64M -> LBloco = 26 bits Tb = 16K * 26 = 425.984 T = Td + Tt = 2.097.152 + 425.984 = 2.523.136 bits Mapeamento Associativo por Conjunto: MP = 230 = 1GB Td = Quantidade de Linha * Largura da Linha = 16K * 16 * 23 = 2.097.152 bits Tt = Quantidade de linhas * Total de bits da Tag Quantidade de Linhas = 256KB / 16 = 218 / 24 = 214 = 16K Total da Tag = Quantidade de Blocos / Quantidade de Conjuntos Quantidade de blocos = 1GB / 16 = 230 / 24 = 226 = 64M Quantidade de conjuntos = Quantidade de linhas / Quantidade de Linhas por Conjuntos (Não consegui determinar a quantidade de conjuntos, por não conseguir determinar a quantidade de linhas por conjunto) 15 – Considere um sistema de armazenamento onde a MP é endereçada por byte, que utilizao método de mapeamento direto na sua cache e onde o formato dos endereços interpretados pelo sistema de controle é: Pergunta-se: A) Qual a capacidade de armazenamento da MP, em bytes? 224 = 16MB b) Quantas linhas possui a memória cache? 212 = 4K linhas Tag Linha Byte 8 bits 12 bits 4 bits c) Qual a largura de cada bloco/linha? 24 = 16 bits d) Qual é a quantidade de blocos atribuído a cada linha da cache? Total de Blocos = 224 / 212 = 212 Bloco por linha = 212 / 16 = 256 blocos por linha 16 – Supondo que esse sistema utilize o método de mapeamento associativo por conjunto de 4 e que o formato do endereço de cache é: Pergunta-se: a) Qual a capacidade de armazenamento da MP, em bytes? MP = 220 = 1MB b) Quantas linhas possui a memória cache? 256 * 4 = 1K linhas c) Quantos conjuntos possui a memória cache? 28 = 256 conjuntos d) Qual é a largura de cada bloco/linha? 24 = 16 bits e) Qual é a quantidade de blocos atribuído a cada linha da cache? 28 = 256 Tag Conjunto Byte 8 bits 8 bits 4 bits
Compartilhar