Anda di halaman 1dari 35

UNIVERSIDADE FEDERAL RURAL DO SEMI-RIDO

DEPARTAMENTO DE CINCIAS EXATAS E NATURAIS


CURSO DE CINCIA DA COMPUTAO

Arquitetura e Organizao de
Computadores
O Processador: caminho de dados
Prof. Slvio Fernandes
1

Introduo

Uma implementao MIPS bsica

Instrues de referncia a memria (lw e sw)


Instrues lgicas e aritmticas (add, sub, and, or e slt)
Instrues branch equal (beq) e jump (j)

Os princpios bsicos usados para criao do


caminho de dados de outras instrues so
semelhantes a estas
Examinando vrias estratgias de implementao,
teremos a oportunidade de ver como o conj. Inst.
afeta a velocidade de clock e o CPI da mquina

Uma sinopse da implementao

Muito do que precisa ser feito para


implementar as 3 classes de instrues citadas
antes, igual
Para cada instruo
1.

2.

Enviar o contador de programa (PC) memria que


contm o cdigo e buscar a instruo dessa
memria
Ler um ou mais registradores, usando campos da
instruo para selecionar os registradores a serem
lidos.

Em seguida, as aes para completar a


instruo dependem da classe da instruo
3

Uma sinopse da implementao

Mesmo entre diferentes classes, h algumas


semelhanas

Todas as classes de instruo (exceto jump), usam a


ALU aps a leitura dos registradores

Aps usar a ALU, as aes necessrias para


completar vrias classes de instrues diferem
A figura a seguir mostra uma viso de alto nvel
de uma implementao MIPS

Uma sinopse da implementao

Uma viso abstrata da implementao do


subconjunto MIPS

Uma sinopse da implementao

Primeiro, em vrios lugares nessa figura, os


dados indo para uma determinada unidade,
esto vindo de duas origens diferentes
Na prtica, essas linhas de dados no podem
simplesmente ser interligadas
Precisamos adicionar um elemento de escolha:
multiplexador que precisa de um controle que
lhe permita fazer a escolha
As
linhas
de
controle
so
definidas
principalmente com base nas informaes
extradas da instruo executada
6

Uma sinopse da implementao

Segundo, vrias das unidades precisam ser


controladas de acordo com o tipo da instruo

A memria de dados precisa ler em um load e


escrever em um strore
O banco de registradores precisa ser escrito em uma
instruo de load e em uma lgica ou aritmtica
A ALU precisa realizar uma de vrias operaes
Assim como os mux, essas operaes so
direcionada por linhas de controle que so definidas
baseadas nos vrios campos das instrues
A figura a seguir inclui 3 multiplexadores e as linhas de
controle
7

Uma sinopse da implementao

Uma sinopse da implementao

Uma unidade de controle que tem a instruo


como entrada usada para determinar como
definir as linhas de controle para as unidades
funcionais e dois do multiplexadores
O 3 multiplexador (determina o valor de PC)
definido com base na sada zero da ALU, que
usada para realizar a comparao da
instruo beq
A regularidade e simplicidade do conj. Inst.
MIPS significam que um simples processo de
decodificao
pode
ser
usado
para
determinar as linhas de controle
9

Convenes lgicas de projeto

Unidades funcionais MIPS

Elementos que operam nos valores dos dados


Combinacionais: suas sadas dependem apenas das
entradas atuais (ALU)
Elementos que contm estado
Tambm chamado de elementos de estado
Contm estado se tiver armazenamento interno
As entradas necessrias so os valores dos dados a
serem escritos e o clock, que determina quando o
valor dos dados deve ser escrito
So elementos sequenciais: suas sadas dependem
de suas entradas e do contedo do estado interno
10

Convenes lgicas de projeto

Unidades funcionais MIPS

Elementos que contm estado


Ex: memrias de instrues e dados e registradores

Usaremos o termo ativo para indicar um sinal


que est logicamente alto e ativar para
especificar que um sinal deve ser determinado
logicamente alto, e inativo ou desativar para
representar o que logicamente baixo

11

Metodologia de clocking

Uma metodologia de clocking define quando


os sinais podem ser lidos e quando podem ser
escritos
Ela importante para sincronizao das leituras
e escritas
Uma metodologia de sincronizao acionada
por transio significa que quaisquer valores
armazenados em um elemento lgico
sequencial so atualizados apenas em uma
transio do clock
12

Metodologia de clocking

Como apenas os elementos de estado podem


armazenar valores de dados, qualquer
coleo de lgica combinatria precisa ter
suas entradas vindas de um conjunto de
elementos de estado e suas sadas escritas em
um conjunto de elementos de estado
As entradas so valores escritos em um ciclo de
clock anterior, enquanto as sadas so valores
que podem ser usados em um ciclo de clock
seguinte
13

Metodologia de clocking

A lgica combinatria, os elementos de estado


e o clock esto intimamente relacionados

14

Metodologia de clocking

Para simplificar, no foi mostrado um sinal de


controle de escrita quando um elemento de
estado escrito a cada transio ativa do
clock
Por outro lado, se um elemento de estado no
for atualizado em cada clock, um sinal de
controla de escrita explcito necessrio

15

Metodologia de clocking

Essa metodologia permite ler o contedo de


um registrador, enviar o valor por meio de
alguma lgica combinatria e escrever nesse
registrador no mesmo ciclo de clock

16

Construindo um caminho de dados

Vamos examinar os principais componentes


necessrios para executar cada classe de
instruo MIPS

17

Construindo um caminho de dados

Unidade de memria

Registrador contador de programa (PC)

Para armazenar as instrues de um programa e


fornecer instrues dado um endereo
Para conter o endereo da instruo atual

Somador

Para incrementar o PC para o endereo da prxima


instruo

18

Construindo um caminho de dados

Para executar qualquer instruo, precisamos


busc-la na memria

Precisamos incrementar PC para a prxima instruo


(4 bytes depois)

19

Construindo um caminho de dados

Vamos considerar as instrues no formato R

Todas lem 2 registradores, realizam uma operao


na ALU com contedo dos registradores e escrevem
o resultado

Os registradores de uso geral de 32 bits so


armazenados em um estrutura chamada
banco de registradores

Qualquer registrador pode ser lido ou escrito


especificando o nmero do registrador no banco
Esse banco contm o estado dos registradores da
mquina
20

Construindo um caminho de dados

As instrues do tipo R precisam de 3


operandos de registrador, ento precisamos ler
2 word de dados do banco de registradores e
escrever uma word de dados no banco

Para cada word lida: precisamos de 1 entrada no


banco que especifique o nmero do registrador a ser
lido
Para cada word escrita: precisamos de 2 entradas uma para especificar o nmero do registrador a ser
escrito e uma para fornecer os dados a serem escritos
Para escrita ainda necessrio o sinal de controle de
escrita
21

Construindo um caminho de dados

A ALU e o bando de registradores para


implementar instrues do tipo R

22

Construindo um caminho de dados

A ALU usa 2 entradas de 32 bits e produz um


resultado de 32 bits, bem como um sinal de 1
bit se o resultado for 0
O sinal de controle (4 bits) da ALU define a
operao a ser realizada por ela

23

Construindo um caminho de dados

Instrues load e store possuem o formato

lw $t1, offset_value ($t2)


sw $t1, offset_value ($t2)
O endereo de memria no registrador base $t2 deve ser
somado ao offset de 16 bits com sinal

O load armazena o resultado em $t1


O store envia para a memria o valor de $t1

Precisamos

do banco de registradores e da ALU


de uma unidade para estender o sinal do campo offset de
16 para 32 bits
de uma unidade de memria para ler ou escrever dados
24

Construindo um caminho de dados

Unidades necessrias para implementar load e


store

25

Construindo um caminho de dados

A instruo beq possui 3 operandos: 2


registradores comparados para igualdade e 1
offset de 16 bits para calcular o endereo de
destino do desvio

Beq $t1, $t2, offset


Precisamos calcular o endereo de destino somando
o campo offset estendido com sinal da instruo
com o PC

26

Construindo um caminho de dados

Observaes das instrues de desvio

O conjunto de instrues especifica que a base para


o clculo do endereo de destino o endereo da
instruo seguinte ao desvio; como calculamos PC+4,
fcil usar valor como base
A arquitetura tambm diz que o campo offset
deslocado 2 bits para a esquerda de modo que seja
um offset de uma word; esse deslocamento aumenta
a faixa efetiva do campo offset por um fator de
quatro vezes

Para lidar com isso precisamos deslocar o campo offset de 2


bits

27

Construindo um caminho de dados

Instruo beq

Quando a condio verdadeira (operandos so


iguais), o endereo de destino do desvio se torna o
novo PC e dizemos que o desvio tomado
Se os operandos no forem iguais, o PC
incrementado deve substituir o PC atual (como nas
outras instrues); nesse caso, dizemos que o desvio
no tomado

28

Construindo um caminho de dados

Caminho de dados para instrues de acesso


a memria e as do tipo R

29

Construindo um caminho de dados

A instruo jump funciona substituindo os 28


bits menos significativos do PC pelos 26 menos
significativos da instruo deslocados de 2 bits
esquerda
Esse deslocamento realizado simplesmente
concatenando 00 ao offset do jump

30

Construindo um caminho de dados

Criando um caminho de dados simples

Depois de vermos os componentes necessrios para cada


classe de instrues, podemos combin-los em um nico
caminho de dados e acrescentar o controle
O caminho de dados pode tentar executar todas as
instrues em um nico ciclo de clock
Isso significa que nenhum recurso do caminho pode ser
usado mais de uma vez por instruo e, portanto, qualquer
elemento necessrio mais de uma vez precisa ser
duplicado
Ento, precisamos de uma memria separada para dados
e instrues
Mas muitos elementos podem ser compartilhados por
diferentes fluxos de instruo (incluindo multiplexadores)
31

Verifique voc mesmo


1.

O caminho de dados de ciclo nico


conceitualmente descrito at aqui precisa ter
memrias de instruo e de dados separadas
porque
a)

b)
c)

O formato dos dados e das instrues diferente no


MIPS, e, portanto, so necessrias diferentes
memrias
Ter memrias separadas menos dispendioso
O processador opera em um ciclo e no pode usar
uma memria de porta nica para dois acessos
diferentes dentro desse ciclo
32

Verifique voc mesmo


2.

Verdadeiro ou falso: como o banco de


registradores lido e escrito no mesmo ciclo
de clock, qualquer caminho de dados MIPS
usando escritas acionadas por transio
precisa ter mais de uma cpia do banco de
registradores.

33

Respostas

1) a
2) falso

34

Referncias

PATTERSON, D. A. ; HENNESSY, J.L. Organizao


e projeto de computadores a interface
hardware software. 3. ed. Editora Campus,
2005.
STALLINGS, W. Arquitetura e organizao de
computadores: projeto para o desempenho. 8.
ed. Prentice Hall, 2009.

35

Anda mungkin juga menyukai