Prévia do material em texto
Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Unidade 2 TÓPICOS AVANÇADOS EM MEMÓRIA GABARITO DOS EXERCÍCIOS Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Considere um sistema de computação que possua dois tipos de memória: um rápido, de baixa capacidade (64 KB), com latência de 5 nseg, interligado ao processador e outro, mais lento, de maior capacidade (512 MB), com latência de 50 ns, interligada à memória rápida. Calcule o tempo médio de acesso do processador, considerando um período de 200 acessos e que o sistema tenha eficîência de 95 %. Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Eficiência (E) é a relação entre a quantidade de acertos (A) e o total de acessos em um período (T). Medida em percentagem. Se E é 95%, significa que em 100 acessos (percentagem) 95 são acertos e apenas 5 são Faltas ( o sistema tem que trazer um bloco da MP para Cache- 50 ns e dai o dado desejado para Proc (mais 5 ns). Como se deseja saber em 200 acessos, é só multiplicar tudo por 2 (95 x 2=190 e 5 x 2 =10). Tempo Médio (TM ) = ((190 x 5) + (10 x 55)) / 200 = (950 + 550) / 200 = 1500 / 200 = 7,5 ns. Então, TM = 7,5 ns Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Por que o sistema busca um bloco da MP para a cache quando ocorre uma FALTA em vez de buscar apenas o dado desejado? Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS O princípio da localidade estabelece que o processador costuma acessar endereços contíguos, já que esta é a lógica de criação de algoritmos. Eventualmente, ele “salta” a sequência e passa a outro grupo., também de endereços contíguos. Como o tempo de transferência entre MP e Processador é muito grande em relação à velocidade do processador, viu-se que, graças ao princípio da localidade, quando o processador precisa trazer um dado da MP para a cache e daí para ele, este dado vem em um bloco de endereços contíguos, pressupondo-se que o processador vai querer os bytes subsequentes. Como o processo gasta tempo (MP-Cache) é muito mais eficaz trazer um grupo de dados do que um por um byte. Traz-se o dado desejado e aqueles que o processador desejará em seguida, gastando-se apenas UM tempo de acesso. Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Considere uma MP (memória principal) que possua uma capacidade máxima de endereçamento de 256 MB, sendo cada célula capaz de armazenar 1 byte de dados. Considere as duas técnicas conhecidas de endereçamento da MP, por linha/coluna e diretamente célula por célula. Qual das 2 técnicas obtém maior economia de espaço interno de fiação e de custo e, para esta técnica indicada calcule qual será a economia de linhas de endereçamento em relação a outra técnica? Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Como a MP tem 256MB ou 256M endereços (1B por endereço), cada endereço tem uma largura de 28 bits. Nesse caso, é possível obter-se até 228 = 256M endereços ou 256 x 1024 x 1024 = 268.435.456 endereços. No método direto ou linear, haveria necessidade dessa quantidade de fios. No método de matriz Linha x Coluna, divide-se o endereço em 2 partes iguais (matriz quadrada), no caso, 28 / 2 = 14 bits. E cada parte endereça um decodificador, de linha e outro de coluna. Assim, 214 = 16K = 16.384 linhas de saída. Somando-se as duas saídas (L e C) tem-se um total de 16384 x 2 = 32.768 fios de saída. Um valor muito, muito menor que os mais de 268 milhões do método anterior. A economia é de 268.435.456 – 32.768 = 268.402.688 fios Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Um determinado sistema de computação suporta memórias do tipo DRAM com palavras de 4 bits por célula e 4 “camadas” (também chamadas de pastilhas ou bancos), sendo que, cada camada armazena um dos 4 bits da célula. Para cada “camada”, saem 18 fios, através do barramento de endereços, até o registrador de endereços, e dele saem 9 fios para o MPX de Endereços de linha, e 9 fios para o Decodificador de coluna, resultando em 512 linhas * 512 colunas * 4 bits em cada célula. Observe a imagem a seguir, referente ao texto acima: Se a capacidade total da memória é obtida através do somatório da capacidade total de endereçamento com a palavra de cada célula em cada “camada”, ou banco, qual é a capacidade dessa MP em bits? Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS 1 célula = 4 bits Cada endereço é representado por um número de 18 algarismos (18 bits), sendo 9 bits para endereço de linha e 9 bits para endereços de coluna. Capacidade total de bits será = total de endereços (TE) * largura de cada endereços (LE) TE= 512 *512 = 29 * 29 = 218 = 256K endereços LE = 4 bits (conforme enunciado) Então, total de bits = 256K * 4 = 1M bits A capacidade da MP é, então, de 1M bits Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Considere um sistema de armazenamento constituido de uma memória principal (MP), endereçada por byte, e com capacidade máxima de 256KB, sendo organizada (para funcionamento com a cache) em blocos de 16 bytes. Considerando que este sistema usa o método de mapeamento direto na sua cache, a qual possui 128 linhas, pergunta-se: a) Em que linhas deverão ser armazenados os bytes que possuem os seguintes endereços: 10 1001 1101 0000 1100 11 0001 0111 1000 1111 b) Qual é o total de bits consumido nesta cache? Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS MP = 256KB (endereça por byte) e o BE = 18 bits, pois 256K = 218 Blocos de 16B (=Linhas de 16B e endereço de cada Byte = 4 bits, pois 16 = 24 A cache possui 128 linhas e, assim, cada linha tem 7 bits de endereço, pois 128 = 27 E o campo TAG tem 7 bits ou 18 bits (end MP) – 7 (end linha) – 4 (end byte) = 7 a) O formato de endereço (mapeamento direto) é: 7 bits 7 bits 4 bits O valor em bits do campo linha, no 1o caso é: 1010000 e no 2º caso: 1111000 b) O total de bits da cache é 128 linhas x 16 bytes x 8 bits + (128 tags x 7)= 16384 +896 = 17 289 bits linha bytetag Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Considere uma memória cache organizada com mapeamento associativo por conjunto, sendo cada conjunto de quatro linhas “set associative 4 way”). A MP tem capacidade máxima de 64MB, sendo endereçada por byte e o sistema MP/Cache, transfere de cada vez um bloco com 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? Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS MP = 64MB. Então, BE = 26 bits (64M = 226) Cada bloco/linha = 32 bytes. Endereço de byte = 5 bits (32 = 25) Se a cache tem 64KB e cada linha 32 B, então há 64K / 32 = 2K linhas; e se o mapeamento é associativo por conjunto de 4 linhas, significa que cada conjunto tem 4 linhas e a quantidade de conjuntos é 2K linhas / 4 = 512 conjuntos. Cada endereço de conjunto tem 9 bits (512 = 29). Valor do campo CONJUNTO = 9 bits. O valor do campo BYTE é 5 bits. Como o total de endereço é 26 bits, o valor do campo TAG = 26 – 9 – 5 = 12 bits Formato do endereço: 12 bts 9 bits 5 bits tag byteconjunto Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Considere uma memória principal (MP) com capacidade máxima de X bytes, sendo endereçada por byte e uma cache com 256KB, organizada em linhas de 32 bytes. Sabe-se que o BE do sistema possui 28 bits de largura. Mostre o formato dos campos de endereço considerando os 3 métodos de mapeamento de endereços da cache (direto, associativo e associativopor conjunto de 8 linhas). Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS 5 = 13 bits MP = x bytes e Cache = 256KB Bloco/Linha = 32B BE = 28 bits a) Mapeamento Direto Campo byte = 5 bits, pois bloco =32bytes = 25 Quantidade de linhas = 256KB / 32B = 8 K linhas = 213 Endereço de linha = 13 bits Campo tag = 28 bits (total endereço) – 13 (campo linha) – 5 (campo byte) = 10 bits 10 bits 13 bits 5 bits b) Mapeamento Associativo Completo Campo Bloco = 28 – 5 = 23 bits (8M blocos) 23 bits 5 bits c) Mapeamento Associativo por conjunto de 8 vias Quant conjuntos: qtde linhas / largura conjunto = 8K linhas / 8 vias = 1K conjunto = 210 campo conjunto = 10 bits Campo tag = 28 – 10 – 5 = 13 bits 13 bits 10 bits 5 bits tag tag byte byte linha bloco conjunto byte Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Por que é necessário se estabelecer uma política de substituição de linhas nos métodos de mapeamento associativo e associativo por conjunto e não para o método direto? Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS No método de mapeamento de endereços direto, cada linha da cache tem predeterminado quais blocos da MP serão nela armazenados, de modo que, se ocorrer a transferência de um bloco da MP para uma linha da cache, o sistema já sabe onde armazenar (em que linha) o referido bloco. No entanto, no caso do método associativo (seja simples seja por conjunto), não há uma linha pré-definida para armazenar o bloco a ser transferido. Nesses caso, o sistema precisa escolher em qual linha irá armazenar o bloco, substituindo pelo existente. Daí a necessidade de se definir uma política de escolha do bloco a ser retirado. Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Qual é a diferença entre cache unificada e cache dividida? Que nível de cache utiliza esta estratégia? Mario A. Monteiro TOP AV EM ARQUITETURA SOLUÇÃO DOS EXERCÍCIOS Todas as memórias armazenam instruções-I (o código de programa) e dados- D. Aquelas memórias que armazenam junto esses elementos (I e D) chamam-se unificadas (emboar este termo não seja praticado para MP e MS e apenas para as caches, pois, nesse caso, há uma outra possibilidade e assim é preciso distinguir um modo de outro. Na cache L1 (apenas nessa cache), que é diretamente ligada ao processo de execução de uma instrução, atualmente costuma-se separar o armazenamento de instruções e dados e assim, ter Cache L1 para Instruções (cache Li-I) e Cache L1 para dados (cache L1-D). Isso acontece para otimizar os acesso e tornar mais rápida a s tarnsferências, em virtude de instruções e dados seguirem caminhos diferentes na ocasião de execução.