Você está na página 1de 6

lista 2

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO


Lista de Exercícios 2
Disciplina: Organização e Arquitetura de Computadores

Professor: Vinícius Samuel Valério de Souza

Assunto: Organização de Computadores - Processadores


1) Quais partes compõem a CPU e qual a função de cada uma delas?
As partes de compoem a CPU sao:

Unidade de controle: controla a realizacao das fases que compoem a interpretacao de instrucoes;

Vias internas: sao conexoes entre memoria de rascunho e ULA;

Memoria de rascunho: armazena a instrucao em execucao e seus dados associados (é a menor, mais cara,
mais rapida)

Unidade logica aritmetica (ULA): sao circuitos responsaveis pela execucao das instrucoes

2) Quais partes compõem a ULA e qual a função de cada uma delas?


As partes da ULA sao:

Registradores de entrada; armazena operandos necessarios para a execucao das instrucoes

ULA; circuitos responsaveis pela execucao das instrucoes

registradores de saida: armazena o resultado do processamento efetuado pela ULA

3) Quais são as fases realizadas durante a interpretação de uma instrução? Qual o objetivo de cada uma
dessas fases?

Passos realizados pela CPU na interpretacao de instrucoes:

Busca das instruções: realiza a busca das instrucoes na cpu

Decodificacao das instrucoes: descoberta do que a instrução faz mediante a analise de uma sequencia
binaria, que informa se esta precisa de operandos, dentro outros mecanismos.

Execucao das instrucoes: realiza a instrução

4) A respeito da fase de busca de instruções, responda:


a) Por que ela é a primeira fase realizada na interpretação de instruções?

Porque é necessario realizar a busca de uma instrucao para que o processo seja iniciado, a cpu manda o
endereço para a memoria e ela manda a instrucao a ser executada

b) Qual a função do Contador de Programa e do Registrador de Instrução? Onde eles se situam dentro da CPU?

lista 2 1
Contador de programas (PC - Program Counter)- armazena o endereco da memoria principal que contem a
proxima isntrucao a ser executada

Registrador de instrucao (IR - Instruction Register) - armazena a instrucao a ser executada

c) Descreva os passos realizados durante a busca de uma instrução destacando como o Contador de
Programa e o Registrador de Instruções são utilizados.

cada palavra da memoria principal possui um enderço

as instrucoes estao alocadas em uma ou mais palavras da memoria principal, ous eja, cada instrucao tem
um endereço

um exemplo é executar a instrucao 1 que esta na linha 20; A cpu vai ler o conteudo do contador de programa,
e percebe que a proxima instrucao a ser buscada esta na posicao 20 da memoria principal (IR pode conter
qualquer coisa nesse momento)

Em seguida, a instrucao contida no endereço 20 é transportada para IR

O valor da PC é atualizado para que ele aponte para uma nova instrucao, a proxima a ser executada

5) Considere uma máquina com uma memória principal composta por 1024 células agrupadas em palavras de
4 células. Adotando que cada célula possui 1 byte e que cada instrução ocupa 1 palavra, calcule o tamanho (em
bits) que o Contador de Programa e o Registrador de Instruções devem ter para que a interpretação de
instruções ocorra normalmente.

Cada palavra tem 4 celulas ( do endereco 0 - 1023)

Para calcular o tamanho necessário do Contador de Programa e do Registrador de Instruções, precisamos


entender a estrutura básica de uma máquina.

1. Contador de Programa (PC - Program Counter): Este registrador mantém o endereço da próxima instrução a
ser buscada e executada pela CPU.

2. Registrador de Instruções (IR - Instruction Register): Este registrador armazena a instrução atual que está
sendo executada pela CPU.

Vamos calcular o tamanho necessário para cada um:

Contador de Programa (PC):


Como há 1024 células na memória principal e cada célula é endereçável, o PC deve ser capaz de endereçar essas
células. Isso significa que precisamos de 10 bits para endereçar as 1024 células (porque 2^10 = 1024.

Registrador de Instruções (IR):

Cada instrução ocupa 1 palavra de 4 células, e cada célula tem 1 byte, então cada instrução ocupa 4 bytes.

lista 2 2
Uma palavra tem 4 células, o que significa que uma palavra tem 4x1byte=4 bytes

Como cada instrução ocupa 1 palavra, uma instrução tem 4x8 bits=32 bits

Portanto, o Registrador de Instruções precisa ter 32 bits para armazenar uma instrução.

Resumindo:

O Contador de Programa precisa ter 10 bits.

O Registrador de Instruções precisa ter 32 bits.

Assim, a interpretação de instruções ocorrerá normalmente.

6) A respeito da fase de decodificação de instruções, responda:

a) Por que essa fase é realizada antes da fase de execução?

A fase de decodificação de instrução é realizada antes da fase de execução em um processador por algumas
razões fundamentais:

1. Interpretação da Instrução: Durante a fase de decodificação, a instrução é analisada e interpretada. Isso


significa que o processador determina qual operação a instrução requer (como adição, subtração,
movimentação de dados, etc.) e identifica os operandos envolvidos na operação. Essa interpretação é
essencial para que o processador saiba como executar corretamente a instrução.

2. Preparação dos Operandos: Durante a decodificação, o processador também pode acessar a memória para
buscar os operandos necessários para a execução da instrução. Esses operandos podem estar armazenados
em registros da CPU, na memória principal ou em outras fontes. A fase de decodificação permite que o
processador prepare os operandos de acordo com as necessidades da instrução antes que a execução real
ocorra.

3. Preparação do Caminho de Dados: A decodificação da instrução também pode envolver a configuração do


caminho de dados necessário para a execução da instrução. Isso pode incluir a configuração de unidades
funcionais, roteamento de dados, ativação de circuitos de controle e outras operações necessárias para
executar a instrução com eficiência.

4. Detecção de Erros e Conflitos: Durante a fase de decodificação, o processador também pode verificar a
validade da instrução e detectar possíveis erros ou conflitos que possam ocorrer durante a execução. Isso
permite que o processador tome medidas apropriadas para lidar com tais situações, como interrupções,
exceções ou re-execução de instruções.

Em resumo, a fase de decodificação de instrução é crucial para preparar o processador e o ambiente de


execução para processar as instruções de forma eficiente e correta. Ela fornece as informações necessárias
sobre a instrução e seus operandos, prepara o caminho de dados e identifica possíveis problemas antes que a
execução real ocorra, contribuindo para o desempenho e a confiabilidade do processador.

b) Descreva os passos realizados durante a decodificação de uma instrução.

Passos da decodificacao:

Ao realizar a busca, IR contem a instrucao a ser executada, e numa maquina, muitas instrucoes podem ser
executadas,

Para saber qual é ainstrucao presente em IR, é necessario decodificar essa instrucao, sendo assim;

A instrucao contida em IR corresponde a uma sequencia binarioa que representa uma dentre todas as
instrucoes que a cpu pode executar

esse processo de decodificacao consistem na descoberta do que a instrucao faz mediante analise
dessa sequencia binaria.

Algumas instrucoes precisam de operandos

tem que saber se a instrucao precisa ou nao

caso precise, os operandos devem ser buscados na memoria principal

lista 2 3
7) A respeito da fase de execução de instruções, responda:

a) O que é caminho de dados? Quais partes da CPU fazem parte desse caminho?
Caminho de dados - caminho percirrido pelos dados na execucao de instrucoes, constituida por:

Memoria de rascunho, ULA

Vias internas

b) O que é ciclo de máquina? Descreva os passos realizados durante a execução desse ciclo.

Ciclo de maquina - sao operacoes sobre o caminho de dados que correspondem a execucao da instrucao

Os operandos sao lidos da memoria de rascunho e escritos nos registradores de entrada da ULA

1. Os operando sao lidos da memoria de rascunho e escritos nos registradores de entrada da ULA

2. A operacao da ULA é selecionada e executada

3. O resultado da execucao é escrito no registrador de saida da ULA

4. O resultado no registrador de saida é escrito de volta para a memoria de rascunho

c) Quem é o responsável pela gerencia da execução dos passos que compõem o ciclo de máquina? Como essa
entidade efetua esse gerenciamento?

8) Faça um comparativo entre máquinas RISC e CISC, respondendo os seguintes itens:

a) Quem realiza e como é feita a interpretação de instruções?

A interpretacao de instrucoes pode ser feita de duas formas

Interpretacao por hardware - maquina RISC (Reduced Instruction set Computer) - responsavel por buscar,
decodificar e executar as instrucoes dos programas

Interpretacao por software - maquina CISC (Complex Intruction set Computer) -

b) As instruções presentes nos programas são simples ou complexas?

Maquinas RISC - efetuam tarefas simples

Hardware barato

o conjunto de instrucoes da maquina é pequeno e suas instrucoes sao frequentemente usadas nos
programas

Maquinas CISC - capazes de efetuar tarefas complexas

lista 2 4
hardware simples e barato

c) O hardware do sistema é barato ou caro?

RISC - hardware barato

CISC - hardware simples e barato

d) Quantos ciclos de máquina são necessários para interpretar uma instrução?

RISC - a execucao de uma instrucao demora somente um ciclo da maquina

CISC - a execucao de uma instrucao demora varios ciclo da maquina

e) O que visam e onde está a complexidade dos dois projetos?

Máquinas RISC (Reduced Instruction Set Computer) e máquinas CISC (Complex Instruction Set Computer) são
abordagens diferentes para projetar arquiteturas de processadores. Vamos abordar suas características e
responder aos questionamentos:

O que visam os dois projetos?

Máquinas RISC:

Visam simplicidade no conjunto de instruções.

Priorizam o desempenho executando um grande número de instruções simples em um curto espaço de


tempo.

Favorecem o pipeline profundo, permitindo que as instruções sejam executadas em estágios separados de
forma eficiente.

Máquinas CISC:

Visam fornecer um conjunto de instruções mais complexo e poderoso.

Têm como objetivo executar operações mais complexas em uma única instrução.

Oferecem uma grande variedade de modos de endereçamento e instruções que operam diretamente na
memória.

Onde está a complexidade dos dois projetos?

Máquinas RISC:

A complexidade reside na necessidade de dividir as operações em instruções mais simples, o que pode
exigir mais instruções para realizar tarefas complexas.

A simplicidade do conjunto de instruções requer que certas operações complexas sejam decompostas em
uma sequência de instruções mais simples, o que pode aumentar a carga de trabalho do programador e do
compilador.

Máquinas CISC:

A complexidade está na implementação do hardware necessário para suportar um conjunto de instruções


mais diversificado e complexo.

A variedade de modos de endereçamento e instruções complexas pode tornar o design do processador


mais desafiador e aumentar a complexidade do pipeline

f) Em qual dos dois projetos é mais fácil manter a compatibilidade?

Em geral, é mais fácil manter a compatibilidade em máquinas RISC do que em máquinas CISC.

Aqui estão algumas razões:

1. Simplicidade do Conjunto de Instruções: As máquinas RISC tendem a ter conjuntos de instruções mais
simples e consistentes. Isso significa que há menos variações entre diferentes implementações de

lista 2 5
processadores RISC. Programas escritos para uma arquitetura RISC são mais portáteis e menos propensos a
requererem modificações significativas para funcionar em diferentes processadores RISC.

2. Maior Estabilidade na Arquitetura: As arquiteturas RISC tendem a mudar menos ao longo do tempo. Uma vez
estabelecido o conjunto de instruções e a arquitetura do processador, mudanças significativas são menos
comuns. Isso facilita a manutenção da compatibilidade entre diferentes versões e implementações de
processadores RISC.

3. Abordagem de Compilação: Os compiladores para arquiteturas RISC são mais diretos devido à natureza
simples das instruções. Isso significa que os programas compilados para uma arquitetura RISC são menos
dependentes de otimizações específicas de hardware e, portanto, mais portáteis entre diferentes
implementações de processadores RISC.

Em contraste, as máquinas CISC podem ter conjuntos de instruções mais complexos e variados, o que pode
tornar a manutenção da compatibilidade mais desafiadora. Além disso, as arquiteturas CISC podem sofrer mais
alterações ao longo do tempo, o que pode introduzir incompatibilidades entre diferentes versões de
processadores CISC.

Portanto, em termos de facilidade de manutenção da compatibilidade, as máquinas RISC têm uma vantagem
sobre as máquinas CISC.

9) Como as máquinas CISC conseguem atender programadores (que desejam utilizar programas com
instruções complexas) e usuários (que desejam um computador de baixo custo) ao mesmo tempo?

As máquinas CISC (Complex Instruction Set Computer) conseguem atender programadores que desejam utilizar
programas com instruções complexas e usuários que desejam um computador de baixo custo de várias maneiras:

1. Instruções Complexas para Eficiência de Programação: As máquinas CISC oferecem um conjunto de


instruções rico e diversificado, que inclui instruções complexas capazes de realizar operações sofisticadas
em uma única instrução. Isso pode facilitar a programação e o desenvolvimento de software, permitindo que
os programadores expressem tarefas complexas em um número menor de instruções.

2. Acesso a Recursos de Hardware Avançados: As instruções complexas das máquinas CISC podem permitir
acesso direto a recursos de hardware avançados, como unidades de ponto flutuante, vetores de instrução e
operações de criptografia. Isso pode simplificar o desenvolvimento de software que depende desses recursos
e pode melhorar o desempenho de certos tipos de aplicativos.

3. Eficiência na Execução de Código Legado: As máquinas CISC podem ser capazes de executar código legado
compilado para versões anteriores da arquitetura, sem necessidade de modificação. Isso é importante para
muitas empresas e usuários que dependem de software existente e não desejam reescrever ou atualizar seus
programas.

4. Redução de Custos de Desenvolvimento e Manutenção: Embora o design e a implementação de uma


arquitetura CISC possam ser complexos, as instruções complexas podem permitir que certas tarefas sejam
realizadas com menos instruções, reduzindo a carga de trabalho do programador e, potencialmente, o custo
de desenvolvimento e manutenção de software.

5. Flexibilidade na Implementação de Hardware: As máquinas CISC oferecem flexibilidade na implementação


de hardware. Os fabricantes de processadores podem optar por implementar apenas um subconjunto das
instruções disponíveis, adaptando o processador para atender a diferentes requisitos de desempenho e custo.

No entanto, é importante notar que as máquinas CISC também têm desafios, como o aumento da complexidade
do hardware, a necessidade de decodificação de instruções complexas e o potencial de menor eficiência devido
a instruções que podem não ser usadas com frequência. Esses aspectos precisam ser equilibrados para garantir
que as máquinas CISC continuem a atender às necessidades dos programadores e dos usuários de forma eficaz.

lista 2 6

Você também pode gostar