Upload
raphael-freitas
View
218
Download
2
Embed Size (px)
DESCRIPTION
neander
Citation preview
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
ObjetivoEste trabalho prtico tem como principal objetivo o estudo do funcionamento de um processador a8-bits com arquitetura de Harvard. Neste contexto, so abordadas as problemticas de umacodificao eficiente do ISA e o projeto do correspondente descodificador de instrues para aunidade de controlo do processador.
1 Descrio da arquitetura O processador considerado neste trabalho, que de ciclo nico, implementa uma arquitetura deHarvard a 8 bits, em que as memrias de cdigo e dados contm ambas 256 posies diferentes. Aarquitetura disponibiliza ao programador um banco com quatro registos (r0, r1, r2 e r3) e umaUnidade Lgica e Aritmtica (ALU) com capacidade para realizar seis operaes distintas. Aarquitetura inclui ainda um registo de estado do processador (PSW) que disponibiliza os indicadoreszero (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 socolocados a zero;
offset6 representa o deslocamento relativo ao PC, que codificado em cdigo decomplementos com 6 bits.
Instruo Descrio
ldi 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
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 = 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] Transfere para rx o contedo da posio de memria de endereo definido pelo registo 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 registorx e deposita o resultado em rx.
rx = rx + const2
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
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 resultadoem rx.
rx = ~rx
cmp rx,ry Subtrai ry de rx e atualiza as flags Z, C e GE, em conformidade com oresultado. O resultado descartado.
rx - ry
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 paradownload na pgina da unidade curricular na plataforma Thoth), que utiliza a sintaxe reconhecidapelo simulador de circuitos lgicos Logisim. Esta descrio no inclui a implementao dosub-circuito InstructionDecode, atendendo a que este bloco um dos objetos de avaliaodeste trabalho.
Nota: No anexo A deste documento so apresentados os diagramas de blocos dos vrios circuitosque compem a micro arquitetura do processador.
2 RealizaoRespeitando 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 funcionamentorecorrendo 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 bitsutilizados para codificar as instrues;
2. Projeto do descodificador de instrues, que consiste na definio de uma palavra decontrolo da micro arquitetura do processador, para cada uma das instrues definidas noISA;
3. Realizao do descodificador de instrues, que consiste na implementao do sub-circuitoInstruction 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 instruesfornecida no anexo B. Para tal, dever i) codificar as instrues, ii) introduzi-las na memriade cdigo do processador e iii) verificar o seu efeito sobre o processador e a memria.
3 AvaliaoO 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 acombinar com o docente responsvel pela lecionao das aulas da respetiva turma. Aps estaapresentao, 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
5/8
Processador
6/8
Register File
ALU
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 2
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
8/8
MCLK
RESET
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
Address bus
Offset
ConstA
Direct
ConstB
1. Trabalho PrticoObjetivo1 Descrio da arquitetura2 Realizao3 Avaliao4 Anexo A Esquemas5 Anexo B Sequncia de teste6 Anexo C trace