Sie sind auf Seite 1von 8

Departamento de Engenharia Electrotcnica e de Computadores Instituto Superior Tcnico - Universidade Tcnica de Lisboa

Arquitectura de Computadores 2 sem 10/11 MEEC

ARQUITECTURA DE COMPUTADORES
3 Trabalho de Laboratrio

Processador Ciclo Mltiplo


Objectivo: Pretende-se que os alunos compreendam a metodologia usada na sntese, implementao e programao de um processador de ciclo mltiplo com arquitectura CISC. O trabalho ter uma durao de 2 semanas, devendo o relatrio ser entregue na aula de laboratrio da segunda semana. O trabalho dever ser preparado fora do horrio de laboratrio; as 3 horas de laboratrio destinam-se resoluo de eventuais problemas e demonstrao do trabalho.

INTRODUO

Pretende-se projectar um processador do tipo CISC, cuja execuo de cada instruo feita em mltiplos ciclos. O processador a implementar baseado na arquitectura da figura 1.
Controlo de interrupes Flags F(Z,N,C,O) S(Z,N,C,O)
StateBits

Reposio de contexto SL LD DMEM Saved Context

ENI

DSI

CLK FW

CLK WE

SET RESET S(E) S(E) S(E)

StateRegister INT

UC
Unidade de controlo
NextPC CLK WE Program Counter PC PC mem_data CLK WE OpCode 0,OPC(6:0) Instruction IR: Instruction Register Operands OpData Operand Select DA DA AA AA BA BA KNS KNS Select SA, SB, SK

TA|AA

TB|BA

TA|AA CLK TD|DA WE CLK

TB|BA

UA: TD|DA Unidade de WE Armazenamento D A B

UP
PC
1 0

Unidade de processamento

Flags CLK S F INT PL

MS

MS

PC

ML

CLK IL NA
1 0

MA

PC 0 1 0

UCS: Unidade de Controlo de Salto

KNS StateBits 3 2

DATA_A

MB

MM

MC

DATA_B B UF: Unidade Funcional CLK Z N C V


Flags(3:0)

Mem_address

CLK

CLK

D CAR

Data_in CLK

Address

LD/CNT uCode

MW

WE

DATA_MEM: Memria de dados

Address Memria de descodificao Data

FS

FS DUF

Data_out DMEM

TA,TB,TD,WE,MA,MB,FS,MM,MD,MW, FW,ENI,DSI,SL,PL,IL,NA,MC,MS,SA,SB,SK, IntClear

MD

DATA_B=Mem_Din

Legenda:
Lgica Armazenamento (unidades assincronos) (Unidades sincronas) Perifricos (unidade sincrona e externa ao processador)
Mem_address

CLK

CLK Load Clear END INT

Din

=FFFEh?
IntClear

Down Counter
Count Count

Figura 1 Arquitectura do processador de ciclo multiplo.

1|P gi na

Departamento de Engenharia Electrotcnica e de Computadores Instituto Superior Tcnico - Universidade Tcnica de Lisboa

Arquitectura de Computadores 2 sem 10/11 MEEC

Para a realizao do laboratrio so fornecidos todos os blocos presentes na figura 1. Em relao ao laboratrio 2, foram realizadas as seguintes alteraes ao nvel da arquitectura: A unidade de armazenamento foi alterada de forma a que a seleco dos registos auxiliares seja feita directamente a partir dos sinais TA,TB e TD, de acordo com a tabela 1. Tabela 1 Sinais de controlo para acesso aos novos registos da UA. TD/TA/TB 00 01 10 11 DA/AA/BA n X X X Registo acedido Rn SP AR0 AR1

Todos os registos, a Unidade Funcional e a memria de dados manipulam agora palavras de 16 bits. A unidade funcional mantm o funcionamento do trabalho de laboratrio 2, tal como indicado na tabela 2. Tabela 2 - Funcionamento da Unidade Funcional. Tipo Operao (mnemnica) ADD SUB Aritmtica INC DEC MOV NEG SHLA SHRA AND OR NOT Lgica XOR SHL SHR ROL ROR Entradas Operandos A,B A,B A A B B B B A,B A,B B A,B B B B B FS 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Dados (D) A+B A-B A+1 A1 B -B B(14:0),0 B(15),B(15:1) A&B A|B !B AB B(14:0),0 0,B(15:1) B(14:0),B(15) B(0),B(15:1) Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Sadas Flags validas N N N N N N N N N N N N N N N N C C C C C C C C C C C C V V V V V V V V

Existe agora um registo de instruo (IR: Instruction Register) que guarda a operao que est a ser executada em qualquer instante. O comando deste registo feito pelo sinal IL (Instruction Load). Foi adicionada uma unidade de seleo de operandos, a qual traduz os operandos da instruo nos sinais AA, BA, DA, e KNS tal como indicado na tabela 3. Tabela 3 - Funcionamento da Unidade de Seleco de Operandos. SA 0 1 AA I(5:3) I(8:6) SB 0 1 BA I(2:0) I(8:6) DA D(8:6) SK 0 1 KNS D(5),...,D(5),D(5:0) D(8),...,D(8),D(8:0)

2|P gi na

Departamento de Engenharia Electrotcnica e de Computadores Instituto Superior Tcnico - Universidade Tcnica de Lisboa

Arquitectura de Computadores 2 sem 10/11 MEEC

A unidade de descodificao de instrues, agora substituda por uma Unidade de Descodificao de cdigo, a qual responsvel por gerar os sinais de controlo apropriados para cada uCode, i.e., valor do registo CAR. Esta unidade realizada com recurso a uma memria com palavras de 44 bits. O registo de estado possu agora mais um bit S(E) o qual controla a activao de interrupes geradas por dispositivos externos. A activao ou desactivao do bit de estado feita por software colocando um dos sinais ENI (Enable Interrupts) ou DSI (Disable Interrupts) a 1. Assim, quando ENI=1 o bit S(E) activado com o valor 1; de forma semelhante, quando DSI=1 o bit S(E) desactivado ficando com o valor lgico 0. O registo de estado possui ainda um modo auxiliar de reposio de contexto. Assim, quando o sinal LD=1, o registo de estado carregado com o valor de SavedContext independentemente dos restantes sinais de controlo. A operao do registo de estado descrito na tabela 4. Tabela 4 - Funcionamento do registo de estado LD RESTORE STATE ENABLE INTERRUPTS DISABLE INTERRUPTS ZERO FLAG LOAD NEGATIVE FLAG LOAD CARRY FLAG LOAD OVERFLOW FLAG LOAD NO OPERATION 1 0 0 0 0 0 0 0 ENI X 1 0 X X X X 0 DSI X X 1 X X X X 0 FW(3:0) XXXX XXXX XXXX 1XXX X1XX XX1X XXX1 0000 Operao StateBits SavedContext S(4) 1 S(4) 0 S(3) Flags(3) S(2) Flags(2) S(1) Flags(1) S(0) Flags(0) -

A Unidade de Controlo de Salto foi alterada de forma a permitir saltos ao nvel do -cdigo. Assim, a nova unidade controla o sinal de LD/CNT do registo CAR. Quando a sada da unidade 1, o registo CAR realiza um carregamento em paralelo; quando a sada da unidade 0, o registo CAR incrementa de valor. O valor carregado no registo CAR (no caso de LD) depende da entrada de controlo MC; quando MC=0 o valor a carregar corresponde ao OpCode da intruo (guardada no registo IR); quando MC=1, valor a carregar corresponde ao sinal NA (Next Address). Para controlar o sinal de LD/CNT do registo CAR usado um multiplexer de acordo com a tabela 5, onde o sinal F(x) representa o bit x das Flags, e S(y) representa o bit y dos bits de estado. Por exemplo, F(P) corresponde flag de positive a qual calculada a partir das flags de zero e negative, F(Z) e F(N), F(P)= . Tabela 5 - Funcionamento da Unidade de Controlo de Salto (UCS). Entrada de Seleco (MS) 00000 00001 00010 00011 00100 00101 00110 00111 01000 F(C) F(P) F(N) Sinal de sada (ML) 0 1 F(Z) Entrada de Seleco (MS) 01001 01010 01011 01100 01101 01110 01111 10000 10001 S(P) S(N) S(Z) Sinal de sada (ML) Entrada de Seleco (MS) 10010 10011 10100 10101 10110 10111 11000 11001 outros S(V) Sinal de sada (ML) S(C)

F(V)

3|P gi na

Departamento de Engenharia Electrotcnica e de Computadores Instituto Superior Tcnico - Universidade Tcnica de Lisboa

Arquitectura de Computadores 2 sem 10/11 MEEC

Externamente existe um contador decrescente com a seguinte funcionalidade. Quando a operao de LOAD efectuada (Load=1), carregado em Count o valor de Din (Count Din). Uma vez desactivada a operao de LOAD (Load=0), o contador comea a contar de forma decrescente. Quando o valor do contador chegar a zero (Count=0), a contagem termina e o sinal END activado (END=1), permanecendo neste estado at que seja activada a operao de CLEAR (Clear=1).

CONJUNTO DE INSTRUES

O conjunto de instrues da arquitectura do processador de ciclo mltiplo descrita na tabela 6. De notar as seguintes diferenas em relao ao laboratrio anterior: A grande maioria das instrues tem agora menos operandos, sendo o registo de destino usado quase sempre tambm como destino de origem. As instrues de MOV, MOVI, LOAD e STORE so agora representadas com a mnemnica MOV. No entanto cada uma destas instrues tem um OpCode especfico. Tabela 6 - Formato das instrues suportadas pelo processador de ciclo mltiplo. Mnemnica + NOP Formato da instruo (bits) 15 9 8 - 6 5 - 3 2 - 0 1111111 Descrio No Operation R[DR] R[SB] M[R[SA] R[SB] R[DR] M[R[SA]] OP OP OP OP OP OP OP SB SB SB SB SB SB SB MOV R[DR] OP MOV SP R[SB] MOV R[DR] SP R[DR] - R[DR] R[DR] R[DR] + 1 R[DR] R[DR] 1 R[DR] R[DR] + R[SB] R[DR] R[DR] R[SB] R[DR] R[DR] and R[SB] R[DR] R[DR] or R[SB] R[DR] R[DR] xor R[SB] R[DR] not R[SB] R[DR] SHL R[DR],OP R[DR] SHR R[DR],OP R[DR] ROL R[DR],OP R[DR] ROR R[DR],OP R[DR] SHLA R[DR],OP R[DR] SHRA R[DR],OP M[SP] R[DR] SP SP + 1 SP SP 1 R[DR] M[SP] Bits de estado a actualizar Exemplo de Utilizao NOP

Instrues de Processamento de Dados + MOV + MOV + MOV + MOV + MOV + MOV + NEG + INC + DEC + ADD + SUB + AND + OR + XOR + NOT - SHL

0000000 0000001 0000010 0000011 0000100 0000101 0000110 0000111 0001000 0001001 0001010 0001011 0001100 0001101 0001110 0001111 0010000 0010001 0010010 0010011 0010100 0010101 0010110

DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR DR

SA SA

SB SB

Z,N,C,V Z,N,C,V Z,N,C,V Z,N,C,V Z,N,C,V Z,N Z,N Z,N Z,N Z,N,C Z,N,C Z,N,C Z,N,C Z,N,C,V Z,N,C,V -

MOV R1,R0 MOV M[R1],R0 MOV R1,M[R0] MOV R1,-8 MOV SP,R4 MOV R4,SP NEG R3 INC R2 DEC R2 ADD R3,R4 SUB R2,R1 AND R5,R7 OR R2,R6

XOR R7,R2 NOT R0 SHL R1,3 SHR R2,4 ROL R3,7 ROR R4,31 SHLA R1,2 SHRA R1,2 PUSH R3 POP R7

- SHR

- ROL

- ROR

- SHLA

- SHRA

- PUSH - POP

4|P gi na

Departamento de Engenharia Electrotcnica e de Computadores Instituto Superior Tcnico - Universidade Tcnica de Lisboa Instrues de Controlo + BR - BR.Z - BR.NZ - BR.N - BR.NN - BR.P - BR.NP - BR.C - BR.NC + BR.V + BR.NV - CALL - RET 1000000 1000001 1000010 1000011 1000100 1000101 1000110 1000111 1001000 1001001 1001010 1001011 1001100 AD AD AD AD AD AD AD AD AD AD AD AD PC PC + AD

Arquitectura de Computadores 2 sem 10/11 MEEC

BR 3 BR.Z -7 BR.NZ -3 BR.N 4 BR.NN 3 BR.P -1 BR.NP -2 BR.C 7 BR.NC 7 BR.V 3 BR.NV -3 CALL 30 RET

PC PC + AD se S(Z)=1 PC PC + AD se S(Z)=0 PC PC + AD se S(N)=1 PC PC + AD se S(N)=0 PC PC + AD se S(P)=1 PC PC + AD se S(P)=0 PC PC + AD se S(C)=1 PC PC + AD se S(C)=0 PC PC + AD se S(V)=1 PC PC + AD se S(V)=0 M[SP] PC SP SP + 1 PC PC + AD SP SP 1 PC M[SP] M[SP] StateBits SP SP + 1 M[SP] PC SP SP + 1 StateBits(4) 0 PC FFFFh SP SP 1 PC M[SP] SP SP - 1 StateBits M[SP] StateBits(4) 1 StateBits(4) 0

- INT

1001110

INT

- RTI - ENI - DSI

1001101 1010000 1010001

E,Z,N,C,V E E

RTI ENI DSI

As operaes SHR,SHL,ROL,ROR,SHLA e SHRA apresentam nesta arquitectura dois argumentos; o segundo argumento, aqui designado por OP, corresponde ao nmero de deslocamentos/rotaes. Para estas operaes o valor dos bits de estado deve ser determinado pelo ltimo deslocamento/rotao. + Instrues previamente implementadas. - Instrues para implementar no laboratrio. Memria de
CAR descodificao
0 1 2 Zona pblica: Endereos acessveis atravs do OpCode

Nota: Em geral, possvel ao programador aceder a qualquer -instruo dentro da gama de opcodes 00000000 a 01111111. Tal como indicado na figura ao lado, os opcodes na gama superior (10000000 a 11111111) so privados. Assim, estes opcodes esto apenas disponveis para a -programao de instrues complexas (i.e., que requiram mais de uma -instruo, para alm de IF e EX0). Sempre que necessitar de implementar uma instruo complexa, dever usar opcodes na gama privada, i.e., (10000000 a 11111111). Na implementao fornecida, o opcode das -instrues IF e EX0 correspondem a 10000000 e 10000001, respectivamente. O opcode 10000010 est reservado para o ponto 3.4 do trabalho de laboratrio.

...
127 128 129 Usar na programao de instrues complexas, sempre que necessrio NOP IF EX0

130 Reservada (parte 2)

...
255

Zona privada: Endereos acessveis apenas atravs de outras -instrues

NA,MC,MS,IL,PL,SA,TA,SB,TB,SK,TD,WE,MW, MA,MB,MD,MM,FS,FW,ENI,DSI,SL,IntClear

Palavra de controlo correspondente -instruo indicada no registo CAR

5|P gi na

Departamento de Engenharia Electrotcnica e de Computadores Instituto Superior Tcnico - Universidade Tcnica de Lisboa

Arquitectura de Computadores 2 sem 10/11 MEEC

PROJECTO
Tabela 7 - Tabela das intrues a implementar por turno de laboratrio. Semana 1 1 1 1 2 2 Segunda-Feira PUSH, POP BR.Z, BR.NZ SHL,SHLA ENI, DSI CALL, RET INT, RTI Quarta-Feira PUSH, POP BR.N, BR.NN SHR,SHRA ENI, DSI CALL, RET INT, RTI Quinta-Feira PUSH, POP BR.P, BR.NP ROL,SHLA ENI, DSI CALL, RET INT, RTI Sexta-Feira PUSH, POP BR.C, BR.NC ROR,SHRA ENI, DSI CALL, RET INT, RTI

O objectivo deste trabalho consiste na implementao e teste das instrues descritas na tabela 7.

3.1

Anlise do funcionamento do processador de ciclo mltiplo (6 Val.)

Desenhe fluxogramas ASM para as instrues descritas na tabela 7 (um fluxograma por instruo). Comente os fluxogramas indicando para cada estado os sinais de controlo necessrios para execuo desse estado. Inclua os estados de IF e EX0, indicando as operaes realizadas por estes estados. Para a realizao desta alnea no necessita de representar em binrio os sinais de controlo. Pode usar (se preferir) uma representao funcional. Sugesto: antes de responder a esta alnea, analise o funcionamento das instrues previamente implementadas (ex. BR.V), e das -instrues IF e EX0; se necessrio construa o fluxograma ASM a partir da implementao no XILINX. 3.2 a) Implementao das instrues (4 Val.) Implemente as instrues indicadas na tabela 7 na unidade de descodificao de -cdigo. Para tal preencha os endereos da memria no ficheiro idecoder_mem.vhd correspondentes s instrues respectivas.

b) Teste cada uma das operaes implementadas e verifique o seu funcionamento (no precisa de testar as instrues INT e RTI). Para tal, altere o ficheiro data_mem.vhd com um programa sua escolha. Apresente no relatrio simulaes representativas dos testes efectuados. 3.3 Projecto de novas instrues (2 Semana) (2 Val.)

Considere que pretende implementar novas instrues com constantes de 16 bits. Para tal o processador ter de suportar instrues de tamanho varivel. Assim, tal como indicado na tabela seguinte, a primeira palavra de 16 bits da memria de instrues armazena o opcode da instrues; a segunda palavra (PC+1) armazena a constante de 16 bits. Dia da semana 2 Mnemnica MOV
(MOV long imediate)

Palavra de Bits da palavra de instruo Instruo 15 - 9 8 - 6 5 - 3 2 - 0 0 1 0 1 0 1 0 1 Opcode AD Opcode AD Opcode Opcode DR OP DR OP -

Descrio

Bits de estado a actualizar -

Exemplo de Utilizao MOV R1,-1527

R[DR] OP

ADD
(ADD long imediate)

R[DR] OP

Z,N,C,V

ADD R3,4415

JMP
(Jump)

PC AD M[SP] PC+2 SP SP + 1 PC AD

JMP 3443

CALL
(CALL long imediate)

CALL 3443

Projecte (sem implementar) as operao acima indicada correspondente ao dia da semana do seu turno de laboratrio. Apresente no relatrio o Opcode escolhido, o fluxograma ASM e os sinais de controlo necessrios execuo de cada estado. Se achar necessrio pode sugerir alteraes arquitectura de forma a realizar a operao ou a aumentar a eficincia da execuo.

6|P gi na

Departamento de Engenharia Electrotcnica e de Computadores Instituto Superior Tcnico - Universidade Tcnica de Lisboa

Arquitectura de Computadores 2 sem 10/11 MEEC

3.4 Alterao do fluxo de -instrues de forma a atender interrupes externas (2 Semana) Em muitos casos necessrio que o processador interrompa a normal execuo do cdigo de forma a atender uma interrupo gerada por um dispositivo externo. Um caso simples a implementao de um relgio capaz de contar horas, minutos e segundos. a) (4 Val.) Altere o fluxograma das instrues de forma a que, no final da execuo de todas as instrues, verifique se existe uma interrupo activa (sinal INT=1). Assim, tal como est ilustrado na figura 3, caso no exista uma interrupo (INT=0) deve continuar para o passo de FETCH. Caso exista uma interrupo, dever fazer executar a instruo INT. Apresente no relatrio um fluxograma ASM com as alteraes introduzidas; indique o nmero de estados (i.e., -instrues) que acrescentou ao fluxograma, assim como a palavra de controlo para todos os novos estados. (4 Val.) Assume que tem um rotina de servio de interrupes que realiza as seguintes operaes (tal como indicado na figura 3): 1. Reinicializao do contador (TIMER) de forma a que as interrupes ocorram com intervalos de aproximadamente 1 s. Escrita na posio de memria M[FFFDh] a existncia de uma interrupes no atendidas por hardware. Assim, M[FFFDh] funciona como um contador que incrementado de cada vez que uma interrupo ocorre.

b)

2.

Projecte o programa principal tendo ateno aos seguintes aspectos: 1. Deve comear por inicializar o TIMER (i.e., contador) para que as interrupes ocorram em intervalos de tempo de 1s; para a inicializao do TIMER considere que o contador decrementado a cada 50 s. Deve inicializar a varivel na posio de memria M[FFFDh].

2. 3. 4.

Figura 2 - Fluxograma para atendimento de interrupes. Note-se que, de acordo com o enunciado, foram alteradas as codificaes dos estados de IF e EX0.

Deve activar as interrupes usando a instruo ENI. Aps a inicializao deve entrar num ciclo infinito. Enquanto o M[FFFDh] for zero o programa mantm-se no ciclo; se M[FFFDh] for diferente de zero, deve (i) decrementar o valor de M[FFFDh] e (ii) incrementar o relgio. Considere que usa trs registos para guardar horas, minutos e segundos, respectivamente. PC: Mnemnica <espao> <destino>,<operando> ; comentrio

No relatrio apresente a sequncia de instrues segundo o formato:

Onde PC indica o endereo da instruo na memria.

7|P gi na

Departamento de Engenharia Electrotcnica e de Computadores Instituto Superior Tcnico - Universidade Tcnica de Lisboa PUSH MOV MOV MOV INC INC POP RTI R1 R1,20000 M[FFFEh],R1 ; Reinicializao do contador ; salvaguarda do registo R1

Arquitectura de Computadores 2 sem 10/11 MEEC

R1,M[FFFDh] ; L a varivel de contagem de interrupes geradas R1 ; Incrementa o valor

M[FFFDh],R1 ; Actualiza a variavel de contagem de interrupes geradas R1 ; Reposio do valor de R1 ; Sada da rotina de servio de interrupo Figura 3 - Rotina de servio de interrupes.

RELATRIO

No fim da aula dever ser entregue o relatrio (que dever vir impresso e pronto a entregar com excepo de pontos referentes a alteraes de ltima hora e concluses). Este dever ser sucinto (dispensam-se introdues tericas), mas ter obrigatoriamente que conter: As respostas a todas as perguntas efectuadas no guia. Descrio do trabalho efectuado e as opes de projecto. Todos os esquemticos alterados/criados e simulaes realizadas. Concluses: Comentrios sobre o funcionamento do laboratrio.

O relatrio completo no dever exceder as 10 pginas

AVALIAO

A avaliao do trabalho ser realizada, ao longo das duas aulas de laboratrio, de acordo com as cotaes indicadas no enunciado e valoriza-se, em particular: (1) a participao e empenho dos alunos nas aulas; (2) as respostas s questes lanadas pelo docente sobre o projecto apresentado; (3) a originalidade da soluo e dos testes realizados; (4) o grau de detalhe da soluo; (5) a descrio do processo de sntese e justificao das diferentes opes de projecto; (6) a utilizao intensiva de barramentos e smbolos na representao hierrquica e na simplificao de esquemticos; (7) a boa estruturao, a escrita sucinta e objectiva e, ainda, a boa apresentao do relatrio.

BIBLIOGRAFIA

[1] N. Horta, Arquitectura de Computadores Unidade de Processamento, Aulas Tericas, 2010. [2] M. Morris Mano, Charles R. Kime, Logic and Computer Design Fundamentals, 4th Edition Updated, PrenticeHall International, 2008. [3] G. Arroz, J. Monteiro, A. Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, IST Press, 2007.

8|P gi na

Das könnte Ihnen auch gefallen