Вы находитесь на странице: 1из 8

Licenciatura em Engenharia Informtica e Computadores

Licenciatura em Engenharia de Electrnica e Telecomunicaes e de Computadores

1. Trabalho Prtico
de
Arquitetura de Computadores

Estudo de um processador

24 de maro de 2014

1/8

Objetivo
Este trabalho prtico tem como principal objetivo o estudo do funcionamento de um processador a
8-bits com arquitetura de Harvard. Neste contexto, so abordadas as problemticas de uma
codificao eficiente do ISA e o projeto do correspondente descodificador de instrues para a
unidade de controlo do processador.

1 Descrio da arquitetura
O processador considerado neste trabalho, que de ciclo nico, implementa uma arquitetura de
Harvard a 8 bits, em que as memrias de cdigo e dados contm ambas 256 posies diferentes. A
arquitetura disponibiliza ao programador um banco com quatro registos (r0, r1, r2 e r3) e uma
Unidade Lgica e Aritmtica (ALU) com capacidade para realizar seis operaes distintas. A
arquitetura inclui ainda um registo de estado do processador (PSW) que disponibiliza os indicadores
zero (Z), transporte (C) e maior ou igual (GE).
A tabela seguinte resume o conjunto de instrues suportado pelo processador, em que:
rx e ry representam um dos quatro registos de uso geral do processador (r0, r1, r2 ou r3);
const4 simboliza o valor de uma constante representada a 4 bits;
direct4 simboliza o valor de uma constante, representada a 4 bits, que usada como nibble
de menor peso na sntese do endereo de memria; Os restantes bits do endereo so
colocados a zero;
offset6 representa o deslocamento relativo ao PC, que codificado em cdigo de
complementos com 6 bits.
Instruo
ldi

Descrio

rx,const4

Carrega o valor da constante const4, representado a 4 bits, nos quatro


bits de menor peso de rx e coloca a zero os quatro bits de maior peso
de rx.

rx = 0000<const4>

ldih rx,const4

Carrega o valor da constante const4, representado a 4 bits, nos quatro


bits de maior peso de rx, preservando os seus quatro bits de menor
peso.

rx = <const4>rx0-3

ld

rx,direct4 Transfere para rx o contedo da posio de memria de endereo


definido por direct4.

rx = memory[direct4]

ld

rx,[ry]

rx = memory[ry]

st

rx,direct4 Transfere o contedo de rx para a posio de memria de endereo


definido por direct4.

memory[direct4] = rx

st

rx,[ry]

Transfere o contedo de rx para a posio de memria de endereo


definido pelo registo ry.

memory[ry] = rx

add

rx,ry

Adiciona rx com ry e deposita o resultado em rx.

rx = rx + ry

sub

rx,ry

Subtrai ry de rx e deposita o resultado em rx.

rx = rx - ry

add

rx,const2

Adiciona o valor da constante const2, representado a 2 bits, ao registo rx = rx + const2


rx e deposita o resultado em rx.

sub

rx,const2

Subtrai o valor da constante const2, representado a 2 bits, ao registo


rx e deposita o resultado em rx.

rx = rx - const2

and

rx,ry

Realiza a operao lgica and entre os bits da mesma posio de rx e


ry, guardando o resultado em rx.

rx = rx & ry

Transfere para rx o contedo da posio de memria de endereo


definido pelo registo ry.

2/8

Instruo

Descrio

or

rx,ry

Realiza a operao lgica or entre os bits da mesma posio de rx e


ry, guardando o resultado em rx.

rx = rx | ry

xor

rx,ry

Realiza a operao lgica xor entre os bits da mesma posio de rx e


ry, guardando o resultado em rx.

rx = rx ^ ry

not

rx

Aplica a operao lgica not a todos os bits de rx e guarda o resultado rx = ~rx


em rx.

cmp

rx,ry

Subtrai ry de rx e atualiza as flags Z, C e GE, em conformidade com o rx - ry


resultado. O resultado descartado.

mov

rx,ry

Transfere o contedo do registo ry para o registo rx.

rx = ry

jmp

offset6

Muda a execuo para o endereo resultante da adio ao PC do


deslocamento representado por offset6.

PC = PC + offset6

jmp

rx

Muda a execuo para o endereo que se encontra em rx.

PC = rx

jz

offset6

Muda a execuo para o endereo resultante da adio ao PC do


deslocamento representado por offset6 se a flags Z for 1.

PC = PC + offset6
sse Z == 1

jc

offset6

Muda a execuo para o endereo resultante da adio ao PC do


deslocamento representado por offset6 se a flags C for 1.

PC = PC + offset6
sse C == 1

jge

offset6

Muda a execuo para o endereo resultante da adio ao PC do


deslocamento representado por offset6 se a flags GE for 1.

PC = PC + offset6
sse GE == 1

Apenas as instrues aritmticas e lgicas afetam os indicadores Z, C e GE.


A micro arquitetura de suporte ao ISA apresentado descrita no ficheiro cpu.circ (disponvel para
download na pgina da unidade curricular na plataforma Thoth), que utiliza a sintaxe reconhecida
pelo simulador de circuitos lgicos Logisim. Esta descrio no inclui a implementao do
sub-circuito InstructionDecode, atendendo a que este bloco um dos objetos de avaliao
deste trabalho.
Nota: No anexo A deste documento so apresentados os diagramas de blocos dos vrios circuitos
que compem a micro arquitetura do processador.

2 Realizao
Respeitando a micro arquitetura e o ISA que foram definidos para o processador proposto,
pretende-se realizar o descodificador de instrues do processador e testar o seu funcionamento
recorrendo ao simulador de circuitos lgicos Logisim.
Para tal, devem ser consideradas as seguintes fases de realizao do trabalho:
1. Codificao das instrues do ISA, tendo como objetivo a minimizao do nmero de bits
utilizados para codificar as instrues;
2. Projeto do descodificador de instrues, que consiste na definio de uma palavra de
controlo da micro arquitetura do processador, para cada uma das instrues definidas no
ISA;
3. Realizao do descodificador de instrues, que consiste na implementao do sub-circuito
Instruction Decode no Logisim, respeitando as definies dos pontos 1 e 2;

3/8

4. Teste do funcionamento do processador, utilizando o Logisim e a sequncia de instrues


fornecida no anexo B. Para tal, dever i) codificar as instrues, ii) introduzi-las na memria
de cdigo do processador e iii) verificar o seu efeito sobre o processador e a memria.

3 Avaliao
O trabalho deve ser realizado em grupo e conta para a avaliao da unidade curricular.
A apresentao da soluo proposta por cada grupo decorre em sesso de laboratrio, em data a
combinar com o docente responsvel pela lecionao das aulas da respetiva turma. Aps esta
apresentao, cada grupo dever entregar o relatrio do trabalho ao docente, no qual deve constar:
O enunciado do trabalho;
Uma descrio sucinta da soluo proposta, que deve ser acompanhada dos esquemas de
todos os circuitos e sub-circuitos desenvolvidos;
Descrio, em formas de onda, do funcionamento do processador para a sequncia de
instrues fornecida (usar folha do anexo C).
Concluses.

4/8

4 Anexo A Esquemas

Processador

5/8

Register File

ALU
6/8

5 Anexo B Sequncia de teste


ldi

r0,#5

ldih

r0,#9

st

r0,#4

ldi

r1,#4

ld

r2,[r1]

add

r2,#1

st

r2,[r1]

xor

r3,r3

sub

r3,#1

and

r2,r3

not

r3

or

r2,r3

ldi

r1,#2

ldi

r2,#1

sub

r1,r2

jz

+2

jmp

ldi

r0,#0

ldi

r1,#7

cmp

r1,r0

mov

r2,r3

jge

+4

xor

r3,r3

xor

r3,r3

xor

r3,r3

sub

r2,r3

jmp

r2

7/8

6 Anexo C trace
MCLK
RESET
Address bus
Data bus
PC
R0
R1
R2
R3
C
Z
GE
SI
SO
RD
WR
EP
ER
SD
SA
ALU_B
ALU_OP
AC
AA
AB
AD
Offset
ConstA
Direct
ConstB

8/8

Вам также может понравиться