53
Infra Estrutura e Hardware Grupo: Andrêsa Cibelly Cleyton Vanut Clébia Alves Ronnie E. Santos 2010

O Processador: Caminho de Dados e Controle

  • Upload
    ronnie

  • View
    3.008

  • Download
    1

Embed Size (px)

DESCRIPTION

Seminário apresentado na disciplina Infra Estrutura de Hardware, no curso de Bacharelado em Sistemas de Informação da UFRPE/UAST.

Citation preview

Page 1: O Processador: Caminho de Dados e Controle

Infra Estrutura e Hardware

Grupo: Andrêsa Cibelly

Cleyton VanutClébia Alves

Ronnie E. Santos2010

Page 2: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Será mostrado:

Como construir o Caminho de Dados e a Unidade de Controle

Page 3: O Processador: Caminho de Dados e Controle

1 - Instruções de Referência à memória:

Load word (lw) Store Word (sw)

2 - Instruções Artimética e Lógicas:

add, sub, and, or e stl

3 - Intruções de Desvio:Beq e Jump

O Processador: Caminho de dados e controle

A implementação de outras

instruções pode ser feita de

maneira similar

A implementação de outras

instruções pode ser feita de

maneira similar

Page 4: O Processador: Caminho de Dados e Controle

Para qualquer instrução, os dois primeiros passos são idênticos:

11 Enviar o valor armazenado no Program Counter (PC) para a memória.Enviar o valor armazenado no Program Counter (PC) para a memória.

O Processador: Caminho de dados e controle

22 Ler um ou dois registradores, usando os campos da instrução para selecionar os registradores.

Ler um ou dois registradores, usando os campos da instrução para selecionar os registradores.

add $t0, $s1, $s2

Sub $t1, $s3, $s4

lw $t1, 8($s5)

Page 5: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Após estes dois passos as ações necessárias a completar a execução de uma instrução

dependem da classe de instrução em pauta.

Semelhanças:

Todas as classes usam a ULA após a leitura dos registradores;

Referência de Memória: efetuar cálculo de endereço;

Instruções Aritméticas: Execução da própria operação;

Desvios condicionais: Comparações.

Page 6: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Após usar a ULA, as instruções diferem:

Referência de Memória: acessa a memória para escrever/ler um dado;

Instruções Aritméticas: Escreve em um registrador o valor calculado pela ULA;

add $t0, $s1, $s2

Desvios condicionais: Com base no resultado de uma comparação, pode modificar o endereço da próxima instrução

Page 7: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

PCPC

Endereço InstruçãoEndereço Instrução

Memória de Dados

Memória de Dados

ULA

ULA

Memória deInstrução

Dados

Reg 1#

Reg 2#

Reg 3#

Endereço

Dados

Principais Unidades Funcionais e conexões entre elas

Page 8: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

PCPC

Endereço InstruçãoEndereço Instrução

Memória de Dados

Memória de Dados

ULA

ULA

Memória deInstrução

Dados

Reg 1#

Reg 2#

Reg 3#

Endereço

Dados

O processo começa no PC, que fornece o endereço da instrução à Memória de Instrução

Após busca da instrução, os operandos armazenados em registradores usados pela instrução, são especificados pelos campos da própria instrução

Page 9: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

PCPC

Endereço InstruçãoEndereço Instrução

Memória de Dados

Memória de Dados

ULA

ULA

Memória deInstrução

Dados

Reg 1#

Reg 2#

Reg 3#

Endereço

Dados

Uma vez que os operandos em registradores tenham sido buscados, podem ser operados para: calcular um endereço de memória, o resultado de ma operação aritmética ou fazer comparações

Após busca da instrução, os operandos armazenados em registradores usados pela instrução, são especificados pelos campos da própria instrução

Page 10: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

PCPC

Endereço InstruçãoEndereço Instrução

Memória de Dados

Memória de Dados

ULA

ULA

Memória deInstrução

Dados

Reg 1#

Reg 2#

Reg 3#

Endereço

Dados

Se a instrução for...

Aritmética

O resultado processado pela ULA deve ser escrito em um registrador.

Acesso à memória

O resultado obtido na ULA é usado como endereço para armazenar valores vindos da memória nos registradores, ou o contrario

Desvios condicionais

Devem usar a saída da ULA para determinar o endereço da próxima instrução a ser executada

Page 11: O Processador: Caminho de Dados e Controle

Ao discutir o projeto de máquina, deve-se decidir:

Como a lógica que vai implementá-la deve operar

Como será o esquema de Clock nela usado.

O Processador: Caminho de dados e controle

Unidades Funcionais da implementação do MIPS são construídas apartir de dois tipos de elementos lógicos:

Elementos que operam sobre dados Elementos que contêm estados.

Page 12: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Elementos que operam sobre dados (combinacionais)

Sua saída depende das entradas presentes no momento, ou seja,em presença das mesmas entradas, sempre produz a mesma saída.

ULA ULA: Exemplo de elemento combinacional

Page 13: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Elementos de Estados

Um elemento contém estado (sequenciais) possui algum tipo de memória interna.

Caso a máquina seja desligada, ao reinicializá-la os elementos de estado serão carregados com os mesmo valores que tinham antes.

PC

Endereço Instrução

Memória de Dados

ULA

Memória deInstrução

Dados

Reg 1#

Reg 2#

Reg 3#

Endereço

Dados

Page 14: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Define quando os sinais podem ser lidos e quando podem ser escritos.

Importante, pois se um sinal for lido e escrito ao mesmo tempo, o valor da leitura pode corresponder ao antigo, ao novo valor ou mesmo uma cominação dos dois.

Para simplificar, trabalha-se com uma metodologia sensível às transições de sinal do clock.

Page 15: O Processador: Caminho de Dados e Controle
Page 16: O Processador: Caminho de Dados e Controle

Num projeto de caminho de dados é preciso examinar quais os componentes utilizados na execução de cada uma das classes de instruções do MIPS. Assim, iniciamos com os componentes do caminho de dados comum a todas as instruções.

Construímos, a partir deles, as diversas seções do caminho de dados para cada classe de instruções. Nesta construção são mostrados os respectivos sinais de controle associados aos componentes.

Baseamos esta construção nos seguintes passos de execução de uma instrução: Busca,Execução e Resultado.

O Processador: Caminho de dados e controle

Page 17: O Processador: Caminho de Dados e Controle

O primeiro passo de uma instrução é o passo de busca. Ele é comum a qualquer instrução. Para realizar a busca são necessários três componentes: dois elementos de estado e um somador.

SomadorSomadorMemória de InstruçõesMemória de Instruções PCPC

O Processador: Caminho de dados e controle

Page 18: O Processador: Caminho de Dados e Controle

Unidade de Memória: Armazenar as instruções;

Programa Counter-PC: Armazena o endereço da próxima instrução a ser executada;

Somador: Calcula o endereço da próxima instrução a ser executada.

O Processador: Caminho de dados e controle

Page 19: O Processador: Caminho de Dados e Controle

O caminho de Dados para a realização da busca é a seguinte:

O Processador: Caminho de dados e controle

Page 20: O Processador: Caminho de Dados e Controle

Todas instruções lógicas e aritméticas do processador MIPS precisam ler

dois registradores, realizar a operação sobre o conteúdo dos

registradores e escrever o resultado num terceiro registrador. Esta classe de instruções inclui operações como

add, sub, slt, and, or.

O Processador: Caminho de dados e controle

Page 21: O Processador: Caminho de Dados e Controle

Para realizar a execução das instruções do Tipo R ou Instruções Aritméticas-Lógicas como podemos chamar, precisamos do Banco de Registradores e da ULA.

Banco de RegistradoresBanco de Registradores ULAULA

O Processador: Caminho de dados e controle

Page 22: O Processador: Caminho de Dados e Controle

Banco de Registradores: conjunto de registradores que podem ser lidos ou escritos;

ULA: operar sobre os valores lidos dos registradores.

O Processador: Caminho de dados e controle

Page 23: O Processador: Caminho de Dados e Controle

O caminho de Dados para a realização das instruções do tipo R é a seguinte:

O Processador: Caminho de dados e controle

Page 24: O Processador: Caminho de Dados e Controle

Considere as instruções de load word e store word, que têm a forma:

lw $t1, deslocamento($t2) ou

sw $t1, deslocamento($t2).

Elas calculam um endereço de memória somando o conteúdo de um registrador-base ($t2) ao número de 16 bits sem sinal armazenado no campo de deslocamento da instrução. O registrador $t1 armazena o dado que vai ser lido ou escrito na memória.

O Processador: Caminho de dados e controle

Page 25: O Processador: Caminho de Dados e Controle

Para realizar a execução de instruções de Load e Store precisamos do Banco de Registradores, da unidade de Memória, da ULA e ainda da unidade de extensão de sinal.

Unidade de MemóriaUnidade de Memória Unidade de Extensão do SinalUnidade de Extensão do Sinal

O Processador: Caminho de dados e controle

Page 26: O Processador: Caminho de Dados e Controle

Banco de Registradores: Conjunto de registradores que podem ser lidos ou escritos;

ULA: Para operar sobre os valores lidos dos registradores.

Unidade de Memória: Onde poderemos ler e escrever os dados;

Unidade de Extensão do Sinal: Para estender o campo de 16 bits do deslocamento para um valor de 32 bits com sinal.

O Processador: Caminho de dados e controle

Page 27: O Processador: Caminho de Dados e Controle

O caminho de Dados para a execução para as instruções Load e Store é a seguinte:

O Processador: Caminho de dados e controle

Page 28: O Processador: Caminho de Dados e Controle

Uma instrução de desvio condicional como, por exemplo:

Beq $t1,$t2, deslocamento

Possui três operandos.

Dois registradores cujos conteúdos são comparados, e um deslocamento de 16 bits usado no cálculo do endereço alvo de desvio. Esse endereço é obtido somando o campo de deslocamento (com sinal estendido) da instrução ao valor armazenado no PC.

O Processador: Caminho de dados e controle

Page 29: O Processador: Caminho de Dados e Controle

Existem dois detalhes que precisam ser

lembrados: a arquitetura do conjunto de instruções

estabelece que a base para o cálculo do endereço alvo do desvio é igual ao valor do PC atualizado (PC + 4, passo de busca);

a arquitetura também define que o campo de deslocamento deve ser deslocado de 2 bits à esquerda. Isto significa um deslocamento relativo à palavra do processador. Este procedimento aumenta o alcance efetivo do campo de deslocamento por um fator de quatro.

O Processador: Caminho de dados e controle

Page 30: O Processador: Caminho de Dados e Controle

Para realizar a execução de instruções de Desvio Condicional precisamos calcular o Endereço Alvo do desvio condicional,onde o caminho de dados vai possuir uma Unidade de Extensão do sinal, um Somador, um Banco de Registradores e da ULA .

Campo de DeslocamentoCampo de Deslocamento

O Processador: Caminho de dados e controle

Page 31: O Processador: Caminho de Dados e Controle

O caminho de Dados para a execução do Desvio Condicional é a seguinte:

O Processador: Caminho de dados e controle

Page 32: O Processador: Caminho de Dados e Controle

Definidos os caminhos de dados necessários a todas as classes de instruções, podendo ser combinadas em um único caminho de dados e acrescentar o controle para completar a implementação.

Todos estes caminhos mostrados são blocos construtivos para a implementação que usa um único período de clock, muito longo para suportar a execução de todas as instruções.

O Processador: Caminho de dados e controle

Page 33: O Processador: Caminho de Dados e Controle
Page 34: O Processador: Caminho de Dados e Controle

Acesso à memória: lw e sw;

Instruções lógicas e aritméticas: add, sub, and, or e slt;

Controle de fluxo: beq.

O Processador: Caminho de dados e controle

Page 35: O Processador: Caminho de Dados e Controle

Executar todas as instruções dentro de um único período de clock;

Nenhum dos recursos pode ser utilizado mais de uma vez por instrução .

O Processador: Caminho de dados e controle

Page 36: O Processador: Caminho de Dados e Controle

Para compartilhar um elemento do caminho de dados entre classes de instruções diferentes devemos utilizar um multiplexador;

Um circuito digital com várias entradas e apenas uma saída.

O Processador: Caminho de dados e controle

Page 37: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 38: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 39: O Processador: Caminho de Dados e Controle

Este caminho de dados precisa tanto de um somador quanto de uma ULA, uma vez que o somador é usado para incrementar o PC (Program Counter);

É necessário também colocar um multiplexador adicional para selecionar o endereço a ser escrito no PC.

O Processador: Caminho de dados e controle

Page 40: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 41: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

A unidade de controle deve ser capaz de, a partir dos sinais de

entrada, gerar os sinais de escrita para todos os elementos de

estado, os sinais seletores de todos os multiplexadores e os

sinais para o controle das operações da ALU.

Page 42: O Processador: Caminho de Dados e Controle

Valores das três linhas de controle da ULA e as operações correspondentes na ULA.

São usadas somente cinco das oito possíveis combinações.

O Processador: Caminho de dados e controle

Page 43: O Processador: Caminho de Dados e Controle

São representados por um X;

Saída: não importa o valor da saída gerado por determinada combinação de entradas;

Entrada: aparecem quando uma saída depende somente de algumas das entradas, sendo essas representadas também por Xs, na parte da tabela-verdade reservada às entradas.

O Processador: Caminho de dados e controle

Page 44: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 45: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 46: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 47: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 48: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 49: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 50: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 51: O Processador: Caminho de Dados e Controle

Nome do Sinal Efeito – Ativo Efeito - Inativo

RegDst Número do registrador de destino vem do campo rt (20-16).

Número do registrador de destino vem do campo rd (15-1).

EscReg Nenhum O registrado na entrada Reg a ser Escrito é escrito com o valor presente na entrada de dados.

UALFonte O segundo operando da ULA vem do segundo registrador d banco de registradores.

O segundo operando da ULA é resultado da extensão de sinal dos 16 bits menos significativos da instrução.

FontePC PC é substituído pelo valor presente na saída do somador (PC+4)

PC é substituído pelo valor presente na saída do somador que calcula desvio condicional.

LerMem Nenhum Conteúdo da memória de endereço é colocado na saída Dado Lido.

EscMem Nenhum Conteúdo da memória de endereço é substituído pelo valor presente na entrada Dado a ser Escrito.

MemParaReg O valor na entrada do registrador de escrita vem da ULA.

O valor na entrada do registrador de escrita vem da memória de dados.

O Processador: Caminho de dados e controle

Page 52: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

Page 53: O Processador: Caminho de Dados e Controle

O Processador: Caminho de dados e controle

O projeto monociclo abordado possui um funcionamento correto e todas as instruções

são executadas dentro de um único ciclo de clock. O problema com este projeto é sua ineficiência.

A explicação para este fato está no tamanho do ciclo de clock utilizado para todas as instruções.