· 2022/2
1
Arquitetura de Computadores
UFC
3
Arquitetura de Computadores
UFC
2
Arquitetura de Computadores
UERJ
57
Arquitetura de Computadores
UERJ
7
Arquitetura de Computadores
UNIP
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
PUC
2
Arquitetura de Computadores
PUC
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UECE
Texto de pré-visualização
Questão 01) (Exercício 3.3) Converta 5ED4 em um número binário. O que torna a base 16 (hexadecimal) um sistema de numeração atraente para representar valores nos computadores? Questão 02) (Exercício 3.6) Suponha que 185 e 122 sejam decimais inteiros de 8 bit sem sinal. Calcule 185–122 e mostre a representação binária. Existe overflow, underflow ou nenhum destes? Questão 03) (Exercício 3.9) Transforme os números inteiros 151dec e 214dec em números binários sem sinal de 8 bits. Em seguida, considere que as mesmas representações binárias agora representam números armazenados em complemento de dois. Calcule a soma dos dois números usando a aritmética com saturação. A saturação significa que, quando um cálculo gera overflow, o resultado é definido para o maior número positivo ou o menor número negativo, ao invés de um cálculo de módulo, como na aritmética do complemento de dois. O resultado deverá ser escrito em decimal. Mostre seu trabalho de conversão. Questão 04) (Exercício 3.11) Suponha agora que 151 e 214 sejam inteiros de 8 bits sem sinal. Calcule 151 + 214 a aritmética com saturação. O resultado deverá ser escrito em decimal. Mostre seu trabalho. Questão 05) (Exercício 3.12) Usando uma tabela semelhante à abaixo, calcule o produto dos inteiros octais de 6 bits sem sinal 62 e 12 usando o hardware descrito na Figura 3.3. Você deverá mostrar o conteúdo dos registradores em cada etapa. Iteração Passo Multiplicador Multiplicando Produto 0 Valores Iniciais 001 010 000 000 110 010 000 000 000 000 1 1:0=> Nenhuma Operação 2: Desloca Multiplicando à Esquerda 3: Desloca Multiplicador à Direita Questão 06) (Exercício 3.17) Conforme discutimos no texto, uma possível melhoria no desempenho é realizar um deslocamento e soma em vez de uma multiplicação real. Como 9 × 6, por exemplo, pode ser escrito como (2 × 2 × 2 + 1) × 6, podemos calcular 9 × 6 deslocando 6 para a esquerda três vezes e depois somando 6 a esse resultado. Mostre a melhor maneira de calcular 33hex X 55hex usando deslocamentos e adições/subtrações. Suponha que ambas as entradas sejam números inteiros de 8 bits sem sinal. Questão 07) (Exercício 3.27) IEEE 754-2008 tem um formato de meia precisão, que tem apenas 16 bits de largura. O bit mais à esquerda ainda é o bit de sinal, o expoente tem 5 bits de largura e possui um deslocamento bias de 15, e a mantissa ou parte fracionária tem 10 bits de extensão. Assume-se que existe um 1 oculto, ou seja, a parte fracionária está normalizada em notação científica. Escreva o padrão de bits para representar o número –1,5625 × 10−1 considerando uma versão modificada desse formato que utiliza um formato com excesso de 16 para armazenar o expoente. Comente sobre o intervalo e a precisão desse formato de ponto flutuante de 16 bits com o padrão IEEE 754 de precisão simples. Questão 08) (Elaboração do professor) Escreva uma implementação em MIPS para o código abaixo. Suponha a variável i mapeada no registrador $t0 e a variável result mapeada no registrador $f12. Você pode desconsiderar a gestão da pilha e que o valor retornado deve estar no registrador $f18. double scalar2(double x[], int tam) { int i; double result = 0.0; for (i = 0; i < tam; i++) result += x[i] * 2.0; return result; } Questão 09) (Exercício 4.1) Considere a seguinte instrução: Instrução: AND $t0, $t1, $t2 Interpretação: $t0 = $t1 AND $t2 a) Quais são os valores dos sinais de controle gerados pelo controle na figura abaixo para esta instrução? b) Quais recursos (blocos) realizam uma função útil para essa instrução? Questão 10) (Exercício 4.2) A implementação básica de ciclo único do MIPS na figura da Questão 09 só pode implementar algumas instruções. Novas instruções podem ser acrescentadas a conjunto de instruções existente, mas a decisão de fazer isso ou não depende, entre outras coisas, do custo e da complexidade que tal acréscimo introduz no caminho de dados e controle do processador. Os três primeiros problemas neste exercício referem-se a esta nova instrução: Instrução: LWI Rt,Rd(Rs) Interpretação: Reg[Rt] = Mem[Reg[Rd] + Reg[Rs]] Em outras palavras, a instrução LWI vai guardar em um registrador Rt o conteúdo da memória apontada pelo endereço formato pela soma do conteúdo dos registradores Rd e Rs. Essa instrução facilitaria, por exemplo, carregar o conteúdo de um vetor c[i], pois a LW tradicional exige aritmética com o valor de i. a) Quais blocos existentes (se houver) da figura podem ser usados para essa instrução? b) De quais novos blocos funcionais (se houver) precisamos para essa instrução? c) De quais novos sinais de controle (se houver) precisamos para dar suporte a essa instrução?
1
Arquitetura de Computadores
UFC
3
Arquitetura de Computadores
UFC
2
Arquitetura de Computadores
UERJ
57
Arquitetura de Computadores
UERJ
7
Arquitetura de Computadores
UNIP
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
PUC
2
Arquitetura de Computadores
PUC
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UECE
Texto de pré-visualização
Questão 01) (Exercício 3.3) Converta 5ED4 em um número binário. O que torna a base 16 (hexadecimal) um sistema de numeração atraente para representar valores nos computadores? Questão 02) (Exercício 3.6) Suponha que 185 e 122 sejam decimais inteiros de 8 bit sem sinal. Calcule 185–122 e mostre a representação binária. Existe overflow, underflow ou nenhum destes? Questão 03) (Exercício 3.9) Transforme os números inteiros 151dec e 214dec em números binários sem sinal de 8 bits. Em seguida, considere que as mesmas representações binárias agora representam números armazenados em complemento de dois. Calcule a soma dos dois números usando a aritmética com saturação. A saturação significa que, quando um cálculo gera overflow, o resultado é definido para o maior número positivo ou o menor número negativo, ao invés de um cálculo de módulo, como na aritmética do complemento de dois. O resultado deverá ser escrito em decimal. Mostre seu trabalho de conversão. Questão 04) (Exercício 3.11) Suponha agora que 151 e 214 sejam inteiros de 8 bits sem sinal. Calcule 151 + 214 a aritmética com saturação. O resultado deverá ser escrito em decimal. Mostre seu trabalho. Questão 05) (Exercício 3.12) Usando uma tabela semelhante à abaixo, calcule o produto dos inteiros octais de 6 bits sem sinal 62 e 12 usando o hardware descrito na Figura 3.3. Você deverá mostrar o conteúdo dos registradores em cada etapa. Iteração Passo Multiplicador Multiplicando Produto 0 Valores Iniciais 001 010 000 000 110 010 000 000 000 000 1 1:0=> Nenhuma Operação 2: Desloca Multiplicando à Esquerda 3: Desloca Multiplicador à Direita Questão 06) (Exercício 3.17) Conforme discutimos no texto, uma possível melhoria no desempenho é realizar um deslocamento e soma em vez de uma multiplicação real. Como 9 × 6, por exemplo, pode ser escrito como (2 × 2 × 2 + 1) × 6, podemos calcular 9 × 6 deslocando 6 para a esquerda três vezes e depois somando 6 a esse resultado. Mostre a melhor maneira de calcular 33hex X 55hex usando deslocamentos e adições/subtrações. Suponha que ambas as entradas sejam números inteiros de 8 bits sem sinal. Questão 07) (Exercício 3.27) IEEE 754-2008 tem um formato de meia precisão, que tem apenas 16 bits de largura. O bit mais à esquerda ainda é o bit de sinal, o expoente tem 5 bits de largura e possui um deslocamento bias de 15, e a mantissa ou parte fracionária tem 10 bits de extensão. Assume-se que existe um 1 oculto, ou seja, a parte fracionária está normalizada em notação científica. Escreva o padrão de bits para representar o número –1,5625 × 10−1 considerando uma versão modificada desse formato que utiliza um formato com excesso de 16 para armazenar o expoente. Comente sobre o intervalo e a precisão desse formato de ponto flutuante de 16 bits com o padrão IEEE 754 de precisão simples. Questão 08) (Elaboração do professor) Escreva uma implementação em MIPS para o código abaixo. Suponha a variável i mapeada no registrador $t0 e a variável result mapeada no registrador $f12. Você pode desconsiderar a gestão da pilha e que o valor retornado deve estar no registrador $f18. double scalar2(double x[], int tam) { int i; double result = 0.0; for (i = 0; i < tam; i++) result += x[i] * 2.0; return result; } Questão 09) (Exercício 4.1) Considere a seguinte instrução: Instrução: AND $t0, $t1, $t2 Interpretação: $t0 = $t1 AND $t2 a) Quais são os valores dos sinais de controle gerados pelo controle na figura abaixo para esta instrução? b) Quais recursos (blocos) realizam uma função útil para essa instrução? Questão 10) (Exercício 4.2) A implementação básica de ciclo único do MIPS na figura da Questão 09 só pode implementar algumas instruções. Novas instruções podem ser acrescentadas a conjunto de instruções existente, mas a decisão de fazer isso ou não depende, entre outras coisas, do custo e da complexidade que tal acréscimo introduz no caminho de dados e controle do processador. Os três primeiros problemas neste exercício referem-se a esta nova instrução: Instrução: LWI Rt,Rd(Rs) Interpretação: Reg[Rt] = Mem[Reg[Rd] + Reg[Rs]] Em outras palavras, a instrução LWI vai guardar em um registrador Rt o conteúdo da memória apontada pelo endereço formato pela soma do conteúdo dos registradores Rd e Rs. Essa instrução facilitaria, por exemplo, carregar o conteúdo de um vetor c[i], pois a LW tradicional exige aritmética com o valor de i. a) Quais blocos existentes (se houver) da figura podem ser usados para essa instrução? b) De quais novos blocos funcionais (se houver) precisamos para essa instrução? c) De quais novos sinais de controle (se houver) precisamos para dar suporte a essa instrução?