Baixe o app para aproveitar ainda mais
Prévia do material em texto
SISTEMAS DE COMPUTAÇÃO TÓPICOS AVANÇADOS EM ARQUITETURA DE COMPUTADORES RELAÇÃO DE EXERCÍCIOS No 2 GABARITO 1. 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. 2. 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) 3. 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 4. 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. 5. Qual dos elementos componentes do formato da representação de um número em ponto flutuante é responsável pelo maior ou menor precisão do número? Resp: a largura do campo Fração (ou Mantissa ou ainda “significando, no padrão IEEE-754) é responsável pelo tamanho da precisão de um número. 6. 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 a maior ou menor quantidade de componentes eletrônicos (transistores) dentro do decodificador de instrução, que acarretará maior ou menor tempo de decodificação conforme haja mais ou menos instruções no conjunto. Assim, se tivermos 31 a 63 instruções, o campo C.Op. tem 6 bits e o decodificador terá até 6 fios d esaída e gastará um tempo X para indicar 1 entre 64 instruções. Já se o conjunto tiver mais de 128 instruções, o campo C.OP terá mínimo de 8 bits e dverá ter até 256 fios e terá que indicar 1 entre 256 opções (mais tempo, mais fios, maior custo, etc). 7. Cite 3 características que diferenciam a arquitetura RISC da CISC, explicando as diferenças entre elas. Resp: 1. Quantidade de Registradores – máquinas CISC usavam poucos registradores e muito acesso a MP (maior tempo de acesso), enquanto que arquiteturas RISC definem uma grande quantiadde de registradores (os dados não precisam estar sendo buscados frequentemente na MP e sim nos registradores (mais rápidos). 2. Quantidade de instruções – explicado no item anterior 3. Tipo de controle – na CISC usa-se controle por microprogramação e nas RISC controle programado no HW. 8. Considere um processador cujos números podem ser representados em ponto flutuante com o seguinte formato: Sn Se E F 1 bit 1 bit 4 bits 10 bits Base de representação: 2 Mantissa (Fração) – F - normalizada Converter o número decimal - 143 para o formato acima, explicitando o resultado em hexadecimal. Resp: a) Converter o valor decimal 143 para binário: 100011112. Trata-se da parte significativa do número N ou seja a fração (F). b) o número sendo inteiro (143), mesmo binário, não tem F normalizado, pois pelo formato indicado a Fração deve ser um valor entre ½ e 1 (fracionário e com algarismo depois da vírgula sendo 1) c) normalizar a fração, ajustando o expoente de acordo. Como a vírgula em F está mais à direita (número inteiro) e tem que se deslocar para a primeira casa mais à esquerda, deverá ser deslocada 8 casas (divisão por 28). O expoente terá que refletir a multiplicação d emesmo valor (28) para manter o N igual em valor. d) Definir os 4 campos do formato: SN = 1 (-) SE = 0 (+) E = 1000 (810) F = 1000111100 N = 1010001000111100. Em hexadecimal será (separando os bits de 4 em 4 a partir da direita): A23C 9. O que significa processador superescalar? Resp: É um tipo de arquitetura de processador onde há mais de um pipeline de execução, permitindo a realização de mais de uma operação simultânea. 10. Cite um inconveniente a ser resolvido com o emprego da técnica pipelining de processamento de ciclos de instruções. Resp: Conflito de acesso a memória (mais de uma acesso em um único barramento); conflito de dependência de dados (uma operação processa um valor que é resultado de outra operação ainda em andamento); conflito de controle (caso de execução de um IF-THEN-ELSE). 11. Por que é desejável que, em um processamento pipeling, a duração de cada estágio deva ser de mesmo valor? Resp: Para que um estágio avançado não tenha que esperar o término do anterior, mais lento. 12. Qual a função do registrador de controle (flags) que recebe bits na saída de uma operação da ULA? Resp: É um registrador especial localizado logicamente na área de processamento, sendo constituido por diversos bits, cada um com uma função específica, que ajuda a interpretação de um processamento. Exemplos desses bits: sinal (sinal resultante da última op. aritmética realizada); overflow (indica se a última op. realizada teve resultado correto (0) ou overflow(1); vai 1 (indica se houve(1) ou não(0) “ vai um” na última operação. E assim por diante. 13. Considere o valor em hexadecimal: E405, que expressa a representação em ponto flutuante de um determinado número. Considerando que esta representação usa o formato a seguir, calcule qual é o valor decimal desse número. Sn F Se E 1 bit 9 bits 1 bit 5 bits Base de representação:2 Mantissa (Fração) – F - normalizada Resp: Primeiro lugar converte-se o valor em base 16 para base 2: E405 = 1110010000000101 Seguindo o formato definido no enunciado, teremos: Sn = 1-----------------negativo (-) F = 110010000-----0, 11001 Se = 0---------------- positivo (+) E = 00101---------- 510 O número N, segundo a representação básica de ponto flutuante é um produto de F pela potência de E, ou seja: N = - F * 2+E ou N = - 0,11001 * 2+5. Executando a operação, multiplica-se 0,11001 por 25 (desloca-se a vírgula 5 casas para a direita), resultando em: - 110012 ou - 2510 14. Considere um processador cujas instruções de máquina tenham um código de operação de 8 bits e outro processador que tenha instruções com código de operação de 6 bits. Levando em conta somente este fator, qual deles poderá ser classificado como sendo de arquitetura RISC e qual o que poderá ser classificado como CISC? Por que? Resp: Será classificado como CISC o processador cujo código de operação é maior (8 bits), sendo RISC o de menor código (6 bits). A explicação foi dada na resposta do item 2. 15. 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
Compartilhar