Buscar

Gabarito TOPAV ARQ Relacao de Exercicios 2 v2013 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Outros materiais