Acp 1314v Li21d Trab1

8
Licenciatura em Engenharia Informática e Computadores Licenciatura em Engenharia de Electrónica e Telecomunicações e de Computadores 1.º Trabalho Prático de Arquitetura de Computadores Estudo de um processador 24 de março de 2014 1/8

description

neander

Transcript of Acp 1314v Li21d Trab1

  • 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