Você está na página 1de 3

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO

UNIDADE ACADÊMICA DE SERRA TALHADA

Bacharelado em Sistemas de Informação

Infra-Estrutura de Hardware

3a Avaliação de Aprendizagem Parte II*

Professor: Celso Brennand

Aluno: Otávio Henrique de Brito Bernardino

1. O que é caminho de dados e como funciona?


Caminho de Dados é o conjunto dos registradores e da ULA (Unidade
Logica Aritmética), responsável pelas operações de processamentos de
dados e junto com unidade de controle, controla as interações entre o
caminho de dados e com o dado em si. Os registradores servem para
guardar um dado ou um registro, mesmo que temporariamente. Existem
vários tipos de registradores, cada um com sua função mais respectiva.
A ULA é onde são feitas as operações.
Vamos exemplificar com um exemplo básico que é a utilizando o modelo
de Von Neumann ilustrado na imagem abaixo:
Utilizaremos ‘A’ e ‘B’ no nosso exemplo, primeiro a uma busca por 2
registradores para armazenar a entrada, logo em seguida temos a
execução de uma determinada operação pela ULA, por fim o
armazenamento do resultado em outro registrador.

2. Fale das vantagens e problemas de se usar o pipeline.


Vantagens: Maior número de instruções sendo processadas ao mesmo
tempo e maior freqüência de Clock.
Desvantagens: Aumenta a complexidade, dependências e desvios.

3. Descreva os 5 estágios do MIPS.


1) Busca da instrução na memória;
2) Ler registradores enquanto a instrução é decodificada
3) Executa a operação ou calcular um endereço;
4) Acessar um operando na memória de dados;
5) Escrever o resultado em um registrador;

4. Fale dos 3 conflitos (Hazards) do pipeline (estruturais, controle,


dados) e como soluciona- los.
Hazards Estruturais: Causado por recursos insuficientes de cache de
dados e instruções unificadas, uma das soluções é duplicar unidades
funcionais, aumentar o número de portas de acesso à memória e
separar cache de dados e instruções, inserir NOOPs também é uma
solução mas causa perca de desempenho;

Hazards de Dados: acontece quando uma instrução depende no seu


resultado de uma instrução anterior de modo que a primeira instrução
ainda não computou. Para resolver este problema, foi criada uma
técnica chamada de Forwarding, onde um novo circuito é adicionado ao
pipeline. É como um barramento que corta caminho através do pipeline.
Também se possível inserir NOOPs para atrasar a execução da
instrução, ganhando tempo tempo para a instrução posterior.

Hazards de Controle: causado por desvios condicionais ou


incondicionais nos fluxos de operações e exceções. Como nos caos a
inserção de NOOPs é uma das soluções, mas temos uma solução mais
eficiente que é a Predição de Desvio, há dois tipos, a Predição Estática
na qual assumimos sempre tomar desvio ou nunca tomar desvio e a
Predição Dinâmica, na qual mantemos um pequeno histórico de desvios
de um ou dois bits para auxiliar na decisão.
5. Sejam duas implementações do mesmo conjunto de instruções. O
Computador A tem um tempo de ciclo de clock de 300ps e um CPI
de 2.0 para um determinado programa, e o computador B tem um
tempo de clock de 500ps e um CPI de 1.5 para o mesmo programa.
Que computador é mais rápido para esse programa e o quanto é
mais rápido.
Neste caso utilizaremos a equação básica de desempenho, que pode
ser descrita da seguinte forma:
contador de instruções * CPI * taxa de clock
Como as duas implementações possuem o mesmo conjunto de
instruções criaremos uma constante para representá-lo e a chamaremos
de ‘C’.
Computador A:
C*2.0*300ps = 600 Cps

Computador B:

C*1.5*500ps = 750 Cps


A quantidade mais rápida é dada pela razão dos tempos de execução
Cps * (750/600) = 1.25
Logo podemos afirmar que o computador A é 1.25 vezes mais rápido
que o computador B.

Você também pode gostar