Baixe o app para aproveitar ainda mais
Prévia do material em texto
2020.2 - TÓPICOS AVANÇADOS EM ARQUITETURA DE COMPUTADORES EXERCÍCIOS nr 1 GABARITO 1. Cite uma das razões principais pela qual os atuais sistemas de computação possuem uma hierarquia de barramentos interligando os diversos componentes, ao invés dos sistemas antigos quando havia um único conjunto de barramentos, interligando todos os componentes do sistema. Resp: isso é devido às diferentes velocidades dos dispositivos que compartilham o barramento. Há necessidade de grupar em um barramento apenas os componentes que possuem velocidades compatíveis de modo a não atrasar muito as comunicações entre eles. 2. Consideremos que um determinado sistema de computação foi projetado de modo que o processador pode receber 64 bits em cada acesso de leitura, com uma velocidade de 10MHz (sabe-se que 1Mz = 1.000.000bits/seg), que a capacidade máxima de armazenamento da memória principal desse sistema é de 256Mbytes e que o maior valor hexadecimal que se pode armazenar em cada célula é FFFF. Qual é a taxa máxima de transferência de bits do barramento de dados? Resp: largura do BD = 64 bits (largura correspondente a transferências em uma operação de leitura). Veloc do BD = 10MHz (ou 10Mbps/em cada fio do BD) MP = 256MB e, por isso, largura do BE = 28 bits (228 = 256M) Taxa transferênciaBD = V * L ou 10Mbps * 64b = 640Mbps 3. Considere um computador com um processador que emprega soquete de 238 pinos e que ele se conecta aos barramentos de controle (BC), por 178 fios, ao BD por 32 fios e ao BE, com x fios. A veloc do BD é de 400MHz. Qual é a capacidade máxima de endereços que a referida memória pode ter neste sistema? Qual é a taxa de transferência usada no barramento de dados (BD)? Resp: a) 256M endereços b) T = 12,8Gbps 4. Qual é a diferença conceitual entre os métodos de Compilação e Interpretação na execução de programas? Resp: No primeiro caso, as três fases da execução do programa são realiz\adas de forma independente e completa, obtendo-se um produto em cada caso: código objeto (fase de compilação); código executável (fase de link-edição ou ligação) e módulo de carga (fase de carregamento e execução). Já no método de interpretação, a compilação, ligação e carregamento e realizada comando por comando do código fonte, não se produzindo nenhum código intermediário. 5. Descreva uma vantagem e uma desvantagem do emprego de arquiteturas com muitos registradores de dados. Em termos de desempenho, o que pode ser explicado referente a largura dos registradores de dados, comparando-se dois valores distintos. Resp: em arquiteturas com muitos registradores, há um aumento de desemepnho na execução de um código pelo fato dos dados poderem estar semper armazenados nos registradores, dispensando-se o “vai-e-vem” com a memória, o que acontece em sistemas com poucos registradores. Neste caso, as instruções de Associação Carioca de Ensino Superior Centro Universitário Carioca http://www.unicarioca.br/index.php operações matemáticas são apenas com operandos registradores, usando-se apenas Load e Store para acesso inicial e final à memória. Uma possível desvantagem é o custo, que se eleva com mais registradores (mais espaço e mais transistores). Quanto á largura, processadores com registradores com 64 bits de largura são superiores em desempenho aos de 32 bits, pois podem executar operações com números maiores do que estes últimos. 6. Considere uma MP (memória principal) que possua uma capacidade máxima de endereçamento de 64 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? Resp: a organização em L/C obtém maior economia de fios, pois não necessita de um fio para ligar cada célula ao decodificador e sim grupos de fio para o decodificador de Linha e grupo de fios para o decodificador de colunas. No exemplo acima, a MP tem 64MB ou 64M endereços requerendo 26 bits para cada endereço direto (226 = 64M). No caso de L/C divide-se este 26 bits ao meio sendo 13 para endereço de Linha e 13 para o endereço de coluna. Como 213 = 8K teremos a necessidade de 8K + 8K = 16K (ou 16 * 1024) fios = 16536 em vez de 64M ou 64 * 1024 * 1024. 7. 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? Resp: Por causa do princípio da localidade espacial. 8. Criar variáveis lógicas e determinar qual a expressão (equação) lógica que representa a seguinte afirmação: “A lâmpada L acenderá se a chave A e achave B estiverem fechadas”. Resp: Variáveis lógicas: L (lâmpada); A = 1ª chave e B para a 2ª chave. L = A . B 9. Desenvolva a expressão (equação) lógica que represente a seguinte afirmação: “O alarme soará se fôr recebido um sinal de falha do sistema juntamente com um sinal de parada ou um sinal de alerta”. Resp: A (alarme); F (sinal de falha); P (sinal de parada); L (sinal de alerta) A = F . (P + L) 10. Quais são os operadores lógicos que sempre satisfazem as seguintes equações: a) X op 1 = X b) X op X = 0 Resp: a) AND b) XOR 11. Considere um dispositivo decodificador com 8 entradas e Y saídas, utilizado na área de controle de alguns processadores. Sobre este dispositivo: a) qual é o valor de Y? b) quantas portas lógicas (gates) são empregadas na fabricação do dispositivo? Resp: a) 256 b) 264, sendo 8 portas NOT e 256 portas AND 12. Uma das mais importantes razões da rápida evolução de desempenho dos processadores consiste na contínua redução da espessura dos transistores, atualmente em 22 nm. Isto permite o encapsulamento de maior quantidade de transistores na pastilha (mais componentes) e redução do percurso dos sinais (menor tempo de transferência e execução de operações). No entanto, os projetistas estão encontrando enorme dificuldade de reduzir ainda mais a espessura dos transistores, além dos notórios problemas de calor. Qual a solução que tem sido cada vez mais adotada para aumentar o desempenho dos sistemas de computação? Resp: Usar paralelismo, tanto no nível de instruções (instruções que executam operações com múltiplos dados), quanto na área de execução (hardware), com múltiplas unidades de execução ou ULAs (processamento superescalar) e até mesmo com múltiplos processadores (arquiteturas multicore). 13. Considere uma MP que possui 128K blocos de 128 células de 1 byte cada e a memória cache, que emprega mapeamento direto, possui 2K linhas. Qual deverá ser o formato do campo de endereçamento para acesso à MP e à memória cache? Qual é a capacidade, em Bytes, da memória cache? Resp: Como a MP possui 128K blocos de 128B cada um, então o total de Bytes é: 128K * 128 = 16MB e cada endereço físico de Byte tem 24 bits de largura, pois 224 = 16M Sendo mapeamento direto o campo de endereço para ser analisado pelo controle da cache tem 3 partes, da esquerda para a direita: TAG-LINHA-BYTE (ou célula). Como o bloco da MP (largura igual a de cada linha da cache) é de 128B, então o campo BYTE possui 7 bits de largura, já que 27 = 128. Se a cache possui 2K linhas, então o campo LINHA possui 11 bits de largura, já que 211=2K O campo TAG terá 6 bits de largura, pois 24 – 7 - 11= 6 a) O formato do endereço será: Tag Linha Byte 6 11 7 b) 16MB 14. Por que o tamanho do conjunto de instruções de um processador pode ser um fator de aumento de velocidade de processamento das instruções? Resp: Devido ao maior ou menor tempode decodificação de cada código de operação. 15. O que caracteriza uma “Falta” e um “Acerto” em operações com a memória Cache/MP? Resp: Uma FALTA ocorre quando o processador NÃO encontra cópia do dado endereçado na cache; ACERTO ocorre quando o processador encontra cópia do dado na cache e o transfere com máxima velocidade. 16. Considere um sistema de computação que possua uma Memória Principal (MP) com 8MB de capacidade, usando o endereçamento por Byte e uma memória Cache única, que tem 512KB de capacidade e é organizada em linhas de 16Bytes. Calcule os seguintes elementos: a) a quantidade de blocos em que a MP é organizada para funcionamento com a Cache. b) a quantidade de linhas da Cache. c) supondo que se use o método de mapeamento de endereços MP/Cache do tipo Direto, quantos blocos são alocados para cada linha da cache? Resp: Tendo a MP 8 MB de capacidade, cada endereço de Byte (célula) tem 23 bits de largura. a) Se cada bloco/linha possui 16B, então a quantidade de blocos da MP é 8 MB / 16B = 512K b) Se a cache tem 512K B e cada linha tem 16B, então total de linhas é: 512KB / 16B = 32K c) Se a MP é organizada em 512K blocos e a cache em 32K linhas, deverá haver 512K / 32K blocos para cada linha, ou 512K / 32K = 16 blocos 17. Supondo um sistema de computação que possua memória principal e cache única e que, em dado momento o processador coloca o seguinte valor no barramento de endereços (BE): 1001 1001 1100 1001 0001 0000 Suponha ainda que o sistema usa método de mapeamento direto, que a MP é vista pelo controle da cache como um conjunto de blocos de 32 Bytes e que são previstos sempre uma quantidade de 128 blocos em cada linha da cache. Pergunta-se: a) qual o formato de endereço para ser processado pelo controle da cache? b) qual é o valor binário do campo “Linha” do endereço? Resp: Se cada bloco possui 32 B então campo BYTE tem 5 bits de largura. Se são pervistos 128 blocos por linha então campo TAG possui 7 bits de largura. Se cada endereço físico da MP possui um total de 24 bits, então o campo LINHA terá: 24 – 7 – 5 = 12 bits de largura a) Formato do campo de endereço Tag Linha Byte 7 12 5 b) Considerando o formato acima, teremos para o endereço citado: 1001100 111001001000 10000 TAG LINHA BYTE O campo LINHA será: 111001001000 18. Considere uma MP que possui 4K blocos de 128 células de 1 byte cada e a memória cache do tipo associativa por conjunto possui 64 linhas divididas em conjuntos de 4 linhas. Qual deverá ser o formato do campo de endereçamento para acesso à MP e à memória cache? Resp: Tag Conjunto Byte 8 4 7 Total de blocos da MP = 4K = 2**12 Total de células por bloco = total de bytes por linha = 128 = 2**7 Total de conjuntos: 64 linhas / 4 linhas = 16 conjuntos Cálculo do Tag: 4K blocos / 16 conjuntos = 256 blocos por conjunto = 2**8 19. Considere um sistema de computação que possui uma memória principal, organizada em células de 1 byte cada e apenas uma memória cache externa, organizada com mapeamento direto, sendo cada linha de 32 bytes. Em um dado instante, o processador inicia uma acesso colocando no BE comum o endereço hexadecimal: 5D7A9F2. Sabendo-se que, neste sistema cada linha da cache tem atribuido 512 blocos da MP, pergunta-se: a. qual deverá ser a largura do BE do sistema? b. Qual foi a linha acessada pelo processador? Resp: Sendo mapeamento direto cada endereço deve ser mapeado para Linha – Bloco – Byte. Assim, temos: Linha = Bloco = 32B, então: campo Byte = 5 bits Endereço de célula = 5D7A9F2 = 7 alg hexa ou 7 * 4 = 28 bits Se cada linha tem atribuido 512 blocos então o campo TAG = 9 bits. Campo Linha = 14 bits ou 28 – 9 - 5 Tag Linha Byte 9 14 5 a) largura do BE = 28 bits b) 5D7A9F2 = 0101110101111010100111110010, sendo os 9 mais à esquerda para TAG e os 5 mais à direita para endereço da célula ou BYTE. Os 14 do meio são o endereço da Linha ou tag = 010111010 linha = 11110101001111 byte = 10010 20. Considere uma memória cache organizada com mapeamento associativo por conjunto, sendo cada conjunto de 4 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. Resp: R: Tag Conjunto Byte 12 bits 9 bits 5 bits Conjunto de 4 linhas MP = 64MB ou 2**26 endereços. Cada endereço tem largura de 26 bits Largura de cada bloco da MP e cada linha da cache = 32 bytes ou 2**5 (desse modo, o campo Byte do formato do endereço é igual a 5) 21. 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, em memórias cache? Resp: 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. 22. Considere uma MP que possui 4K blocos de 128 células de 1 byte cada e a memória cache do tipo associativa por conjunto possui 64 linhas divididas em conjuntos de 4 linhas. Qual deverá ser o formato do campo de endereçamento para acesso à MP e à memória cache? Resp: Tag Conjunto Byte 8 4 7 Total de blocos da MP = 4K = 212 Total de células por bloco = total de bytes por linha = 128 = 27 (Campo Byte = 7) Total de conjuntos: 64 linhas / 4 linhas = 16 conjuntos (como 24 = 16, então: campo Conjunto = 4) Cálculo do Tag: 4K blocos / 16 conjuntos = 256 blocos por conjunto = 28 (campo Tag = 8) 23. Considere uma memória cache organizada com mapeamento associativo por conjunto, sendo cada conjunto de 4 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. Resp: R: Tag Conjunto Byte 12 bits 9 bits 5 bits Conjunto de 4 linhas MP = 64MB ou 226 endereços. Cada endereço tem largura de 26 bits Largura de cada bloco da MP e cada linha da cache = 32 bytes ou 25 (desse modo, o campo Byte do formato do endereço é igual a 5). Se cache = 64KB, com linhas de 32B, então, quantidade de linhas = 64KB / 32B = 2K e como o método define conjuntos de 4 linhas, há: 2 K linhas / 4 = 512 K conjuntos (512K = 29) e o campo conjunto = 9 bits. O campo Tag = 26 – 9 – 5 = 26 – 14 = 12 bits 24. Considere uma MP que possui 128K blocos de 128 células de 1 byte cada e a memória cache, que emprega mapeamento direto, possui 2K linhas. Qual deverá ser o formato do campo de endereçamento para acesso à MP e à memória cache? Qual é a capacidade, em Bytes, da memória cache? Resp: R: 24 bits Tag Linha Byte 6 bits 11 bits 7 bits MP = 128K blocos * 128 B = 27 * 210 * 27 = 224 = 16MB. Então, cada endereço de MP tem largura de 24 bits Se cache tem 2K linhas, então, largura do endereço de linha = 11 bits, pois 211 = 2K Se cada bloco/linha tem 128B, então, largura campo BYTE = 7 bits. Campo TAG = 6 bits, pois: 24 (total) – 11 – 7 = 6.
Compartilhar