Você está na página 1de 24

Arquitectura e Organização de Computador

Avançada

Aula III

i. Arquitectura de Computador
ii. Pipeline
Conceitos…

❖ A Arquitectura de um computador, refere-se aos atributos de um sistema


que são visíveis para o programador ou, em outras palavras, aos atributos
que têm impacto directo sobre a execução lógica de um programa.

• Exemplos de atributos de arquitectura incluem: o conjunto de instruções, o


número de bits usados para representar os vários tipos de dados os
mecanismos de EIS e as técnicas de endereçamento à memória.

• Definir se um computador deve ou não ter um certo tipo de instrução, por


exemplo, constitui uma decisão do projecto da sua arquitectura.

• Além disso, uma arquitectura pode sobreviver por muitos anos, enquanto
sua organização muda com a evolução da tecnologia.
Conceitos…

▪ Micro-programação
É o verdadeiro nível de linguagem de máquina. O micro programa, residente
em memória permanente (ROM), compõe o que é conhecido por firmware e
tem por função interpretar e traduzir as instruções que lhe são submetidas
pelos níveis superiores.

Nem todas as máquinas possuem este nível, as máquinas RISC por exemplo.
Nas máquinas não micro programadas a instrução é directamente executada
pelo hardware.

A vantagem do uso da micro-programação para implementar uma unidade


de controle(UC), é que ela simplifica o projecto da U.C., e é mais barata
como é menos sujeita a erro.
Conceitos…

▪ O que é uma Instrução de Computador?


✓ Instrução é uma operação única executada por um processador e é definida
por um conjunto de instruções. Num sentido geral, uma "instrução" pode
ser qualquer representação de um elemento num programa executável;

▪ O que é Programação Assembly?


✓ É uma notação legível por humanos para o código de máquina que
uma arquitectura de computador específica usa, utilizada para programar
dispositivos computacionais, como microprocessadores e micro-
controladores. E um mero padrão de bits, torna-se legível pela substituição
dos valores em bruto por símbolos chamados mnemónicos.
Conceitos…

▪ O que é um registrador?
✓ São unidades de memória capazes de armazenar n bits . Os registradores
estão no topo da hierarquia de memória. Armazenam os dados quando uma
instrução esta sendo executada pelo processador.

▪ O que é um compilador?
✓ É um programa de computador que, a partir de um código fonte escrito em
uma linguagem compilada, cria um programa semanticamente equivalente,
porém escrito em outra linguagem, código objecto.
Traduzem a linguagem de alto nível para a linguagem de baixo nível.
Conceitos…

▪ O que é tecnologia pipeline?


✓ É uma técnica de hardware que permite que a CPU realize a busca de uma
ou mais instruções além da próxima a ser executada. Estas instruções são
colocadas em uma fila de memória dentro do processador (CPU) onde
aguardam o momento de serem executadas.

• Pipeline intende se como uma Organização de processador na qual este


consiste de vários estágios, possibilitando que múltiplas instruções sejam
executadas de forma concorrente.
Arquitectura Von Neumann

A Figura acima ( a Máquina de Von Neumann), consiste em:

• Uma memória principal, que armazena dados e instruções;

• Uma unidade lógica e aritmética (ULA), capaz de realizar operações com


dados binários;
• Uma unidade de controle, que interpreta e executa instruções armazenadas
na memória;
Arquitectura Von Neumann…

• Dispositivos de entrada e saída (EIS), operados pela unidade de controle.

▪ Este Matemático, defendia o conceito de programa armazenado…

▪ Defendia também que a ULA e a UC devem conter seguintes registradores:

• Registrador temporário de dados (Memory Buffer Register - MBR);

• Registrador de endereça. à memória (Memory Address Register - MAR);

• Registrador de instruções (Instruction Register - IR);

• Registrador de armaz. temp. de instr. (Instruction Buffer Register - IBR);

• Contador do programa (Program Counter - PC);

• Acumulador (Accumulator - AC);

• Quociente de Multiplicação (Multiplier Quotient- MQ).


Arquitecturas CISC

❖ Complexed Instruction Set Computer, o que significa: Computador com um


Conjunto Complexo de Instruções.

Características dos processadores CISC:


• Uso de Microcódigo (micro-programação);
• Uso de Compilador;

- Um compilador deve gerar uma sequência de instruções de máquina para


cada comando da linguagem de alto nível.

- Se existirem instruções de máquina que se assemelhem a comandos de


linguagens de alto nível, essa tarefa deve tornar-se mais simples.
Arquitecturas CISC…

- As instruções de máquina complexas frequentemente são difíceis de ser


usadas, porque o compilador tem de encontrar os casos em que essas
instruções se adequaram exatamente a uma dada construção da linguagem.

• CISC melhora o desempenho da pipeline de instruções.

• CISC dispõe de um número maior de instruções, o tamanho do código de


operação requerido é maior, resultando em instruções maiores.

• O compilador tém de encontrar instruções que se adaquam exactamente às


instruções dadas pela linguagem de alto nível;
Arquitecturas RISC

❖ Reduced Instruction Set Computer, o que significa: Computador com um


Conjunto Reduzido de Instruções.

Características dos processadores RISC:


• Uma instrução por ciclo;

• Operações de registrador para registrador;

• Modos de endereçamento simples;

• Formatos de instrução simples.

▪ Uma instrução por ciclo/ Um ciclo de máquina é definido como o tempo


requerido para buscar dois operandos em registradores, executar uma operação
da ULA e armazenar o resultado em um registrador.
Arquitecturas RISC…

- Instruções de máquinas RISC não devem ser mais complicadas que micro-
instruções de máquinas CISC e devem executar rapidamente quanto essas.

- Não há uso de microcódigo, as instruções de máquina são executadas


diretamente pelo hardware.

▪ Operações de registrador para registrador, significa que ha apenas


operações simples de carga e armazenamento para acesso à memória.

- Essa característica de projecto simplifica o conjunto de instruções e,


consequentemente, a unidade de controle.

- Por Ex: um conjunto de instruções RISC pode incluir apenas uma ou


duas instruções ADD (por exemplo, adicionar número inteiro e adicionar
com 'vai-um'); o VAX tem 25 instruções de adição diferentes.
Arquitecturas RISC…

▪ Modos de endereçamento simples/ endereçamento simples de registrador.


- Diversos modos de endereçamento adicionais, como endereçamento por
deslocamento ou relativo, podem ser incluídos.

- Outros modos de endereçamento mais complexos podem ser


implementados por software, a partir dos modos de endereçamento mais
simples simplificando o conjunto de instruções e a unidade de controle.

• Formatos de instrução simples.


- O tamanho da instrução é fixo e alinhado em limites de palavras;
- As posições dos campos na instrução também são fixas, especialmente a do
código de operação;
Arquitecturas RISC…

- Com campos de posição fixa, a decodificação do código de operação e o


acesso a operandos em registradores podem ser feitos simultaneamente.
Formatos simples simplificam também a unidade de controle.

▪ São também características de Computadores RISC:

• Existência de um máximo número de unidade de gerenciamento de


memória (Memory Management Unit - MMU) para endereçamento a dados de
uma instrução.

• Não mais que um operando endereçado na memória por instrução.


CONTROVÉRSIA RISC VERSUS CISC

▪ Existem diversos problemas ao tentar fazer essas comparações (Serlin,


1986):

I. Não existe nenhum par de máquinas RISC e CISC comparáveis em termos de


ciclo de vida, custo, nível de tecnologia, complexidade de portas lógicas,
sofisticação de compilador, suporte de sistema operacional.
II. Não existe um conjunto de programas de teste definitivo. O desempenho
varia com o programa.
III. É difícil separar efeitos do hardware e efeitos devidos ao desenvolvimento
de compiladores.
IV. A grande parte das máquinas anunciadas como RISC comercialmente
disponíveis possui uma mistura de características RISC e CISC.
Pipeline de Instrução

❖ Conceito
É uma técnica de hardware que permite que a CPU realize a busca de uma
ou mais instruções além da próxima a ser executada.

Estas instruções são colocadas em uma fila de memória dentro do


processador (CPU) onde aguardam o momento de serem executadas, só
poderá começar quando a outra instrução acabar só assim da sequência ao
procedimento.

▪ A pipeline básica tem 2 estágios:

- A busca da instrução;
- A execução da instrução.
Pipeline…

• Existem momentos durante a execução de uma instrução em que a


memória principal não está sendo usada.

• Esse instante pode ser usado para buscar a próxima instrução, em paralelo
com a execução da instrução corrente.

• O estágio busca uma instrução e a armazena em uma área de


armazenamento temporário.

• Quando o segundo estágio está livre, o primeiro passa para ele a instrução
armazenada.
Pipeline…

• Enquanto o segundo está executando essa instrução, o primeiro tira


proveito de ciclos de memória que não são usados para buscar e armazenar
a próxima instrução.

• Isso é chamado de busca antecipada de instrução (instruction prefetch) ou


superposição de busca (fetch overlap).
Pipeline…

Se os 2 estágios da pipeline durarem o mesmo tempo, estaremos perante uma


vantagem. O contrario, não teríamos uma técnica favorável. Teremos:

1. O tempo de execução geralmente é maior que o tempo de busca, pois a


execução de uma instrução geralmente envolve leitura e armazenamento de
operandos e execução de algumas operações;

2. A ocorrência de instruções de desvio condicional faz com que o endereço da


próxima instrução a ser buscada seja desconhecido. Nesse caso, o estágio de
busca teria de esperar até receber o endereço da próxima instrução do estágio
de execução.

O estágio de execução poderia, então, ter de esperar enquanto a próxima


instrução é buscada.
Pipeline

• Para obter maior desempenho, a pipeline deve igualar a duração dos


estágios decompondo os estágios em 6 etapas:

✓ Busca de instrução (BI): lê a próxima instrução esperada e a armazena em


uma área de armazenamento temporário;

✓ Decodificação da instrução (DI): determina o código de operação da


instrução e as referências a operandos;

✓ Cálculo de operandos (CO): determina o endereço efectivo de cada


operando fonte. Isso pode envolver endereçamento por deslocamento,
endereçamento indireto via registrador, endereçamento indirecto, assim
como outras formas de cálculo de endereço.
Pipeline

✓ Busca de operandos (BO): busca cada operando localizado na memória. Os


operandos localizados em registradores não precisam ser buscados;

✓ Execução da instrução (EI): efectua a operação indicada e armazena o


resultado, se houver, na localização do operando de destino especificado.;

✓ Escrita de operando (EO): armazena o resultado na memória.

• Com essa decomposição, os vários estágios têm duração aproximadamente


igual.

• Vamos supor que a duração de cada estágio seja igual. Algumas obras,
mostram que uma pipeline de seis estágios pode reduzir o tempo de
execução em 9 instruções, de 54 para 14 unidades de tempo.
Pipeline

Com este diagrama da tecnologia pipeline:

o Nem sempre as instrucões necessitam de todas etapas;(Ex: arm—EO)


o Cada instrução deve ser executada em 6 estágios;
o O diagrama supõe que todos os estágios possam ser executados em
paralelo sem conflito de memoria;(BI, BO e EO, usam a memoria);

▪ Se os seis estágios não têm duração igual, existe certa espera envolvida em
vários estágios da pipeline.

▪ Da discussão precedente, pode parecer que quanto maior é o número de


estágios na pipeline, mais rápida é a taxa de execução.
Pipeline

▪ Alguns projetistas do 5/360 da IBM apontaram dois factores que frustram


esse padrão aparentemente simples para projetos de alto desempenho
(Anderson, 1967) e que permanecem válidos até hoje:

Em cada estágio da pipeline, existe certo custo (overhead) envolvido na


movimentação de dados entre áreas de armazenamento temporário e na
execução de várias atividades de preparação e entrega de dados. Esse custo
pode aumentar consideravelmente o tempo total de execução de uma única
instrução.

Isso é significativo quando instruções consecutivas são logicamente


dependentes, seja pelo uso intensivo de desvios, seja por dependências de
acesso à memória.
Pipeline

▪ A lógica de controle requerida para manipular dependências entre acessos à


memória ou entre registradores, assim como para otimizar o uso da pipeline,
aumenta bastante com o número de estágios. Isso pode levar a uma
situação em que a lógica que controla a comutação entre estágios é mais
complexa que os estágios a serem controlados.

❖ Concluindo:
▪ O uso da pipeline de instruções é uma técnica poderosa para aumentar o
desempenho, mas requer um projecto cuidadoso para que possa alcançar
resultados ótimos com uma complexidade razoável.

Você também pode gostar