Tarefa de Sistemas Digitais e Computadores II
Tarefa de Sistemas Digitais e Computadores II
Tarefa de Sistemas Digitais e Computadores II
ID:33152
B. Unidade Lógica e Aritmética (ULA) é a unidade que executa as operações lógicas (AND,
OR) e aritméticas (adição, subtração).
R: A alínea incorrecta é a a) pois a unidade de controle não é responsável pela busca (fetch) de
instruções nos registos, mas sim é responsável pelo fluxo de informação pelo computador. Ela
realiza a busca e a decodificação das instruções na memória principal, logo a busca (fetch)
acontecerá na memória e não nos registradores.
3. As pessoas que projetam um novo computador devem decidir quais instruções incluir
em sua linguagem de máquina. Sobre organização dos computadores é incorreto dizer
que:
C. Pessoas que projetam novos computadores ou novos níveis (ou seja, novos
máquinas) não necessitam conhecer ou estar familiarizados com níveis diferentes
do superior.
4. Como a maioria das linguagens de máquina são tão simples, é difícil e entediante
para as pessoas usá-las. Esta simples observação tem, ao longo do tempo, levado a
uma maneira de estruturar os computadores como uma série de abstrações.
Desta forma, a complexidade pode ser dominada e os sistemas de computador podem ser
projetado de forma sistemática e organizada. Chamamos essa abordagem de interpretação e
tradução.
R: Sim, é correcto dizer, pois a utilização dos níveis de abstração ajudam a simplificar o
projecto e o uso dos sistemas de computacionais, permitindo que camadas mais altas
traduzam ou interpretem instruções complexas em operações mais simples para hardware.
5. Existe uma grande lacuna entre o que é conveniente para as pessoas e o que é
conveniente para os computadores. As pessoas querem fazer X, mas os computadores
só podem fazer Y, o que dá origem a um problema.
a) Explique como esse problema pode ser resolvido.
R: Sobre a lacuna entre o que pessoas e computadores fazem:
Esse problema é resolvido através de criação de linguagens de alto nível e máquinas virtuais,
que traduzem instruções simples e de fácil compreensão para humanos em instruções de
máquina que os computadores conseguem processar.
R:
• Exemplo: x = y + z;
2. Compilação (Tradução para Linguagem de Montagem)
• O compilador traduz o código de alto nível para uma linguagem intermediária, como a
linguagem de montagem.
• Exemplo em Assembly:
LOAD R1, y ; Carregar o valor de y no registo R1
ADD R1, z ; Somar o valor de z ao R1
STORE x, R1 ; Armazenar o resultado em x
Transferência 1: �� ← �� ; �� ← ��
Transferência 2: �� ← �� ; �� ← ��
a) Apresente o esquema de transferência condicional de dados entre registo, com
recurso a barramento. 1 V
R:
S1 S0 L0 L1 L2
R0 R1 , R2 R1 1 0 1 0 1
R0 R1 , R2 R0 IMPOSSIVEL
7. Um barramento de dados é um caminho partilhado por um conjunto de dispositivos
para a transferência de dados – Figura 2.
Transferência 1: �� ← �� ; �� ← ��
b) Se a sua resposta for SIM, demonstre como ficarias os valores das entradas de
endereçamento e das entradas de validação. Se a sua resposta for NÃO,
apresente a solução. 1 ,5V
Macroinstruções.
1. Represente as condições nos descodificadores e as transferências entre registos e
memórias, de modo a efeituar as seguintes operações.
R:
RA ← M[AR1] AND RB
T5: DBDD=1; ra RA
T6: DBDD=1; rb RB
DBDD=1; RA ra
T5: DBDD=1; rb RA
T6: DBDD=1; ra RA
DBDD=1; RB ra
T2: DBDD=1; rb RB
DBDD=1; RA ra