of 41 /41
Arquitectura de Computadores Arquitectura do Conjunto de Instruções Nuno Cavaco Gomes Horta Universidade Técnica de Lisboa / Instituto Superior Técnico

Arquitectura do Conjunto de Instruções - Autenticação · PDF fileN. Horta, IST - UTL Arquitectura de Computadores 2006/2007 2 Arquitectura de Computadores Arquitectura do Conjunto

Embed Size (px)

Text of Arquitectura do Conjunto de Instruções - Autenticação · PDF...

  • Arquitectura de Computadores

    Arquitectura do Conjunto de Instrues

    Nuno Cavaco Gomes Horta

    Universidade Tcnica de Lisboa / Instituto Superior Tcnico

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    2

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Sumrio

    Introduo Unidade de Processamento Unidade de Controlo Conjunto de Instrues Unidade Central de Processamento (CPU) Unidade de Entrada/Sada (I/O) Unidade de Memria Perspectiva Evolutiva das Arquitecturas de Computadores

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    3

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Arquitectura Genrica de um Computador

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    4

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Conceitos/Definies das Arquitecturas de Computadores

    Linguagem Mquina: Linguagem binria utilizada na definio e armazenamento de instrues em memria.

    Linguagem Assembly: Linguagem simblica, utilizada para efeito de programao, que utiliza nomes em vez dos cdigos de operao, endereos e operandos binrios.

    Formato das Instrues: O conjunto de bits que compem a instruo organizam-se em grupos ou campos designados por (podem surgir outras tipo de campos no especificados nesta fase):opcode - cdigo da operao a ser executada;address - endereo para seleco de uma posio de memria ou registo do processador;mode - modo como o campo de endereo deve ser interpretado.

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    5

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Conceitos/Definies das Arquitecturas de Computadores

    Ciclo Bsico de Operao de um Computador: A U. de Controlo projectada para executar cada instruo de um programa seguindo os seguintes passos:1. Aquisio de instruo da memria para um registo de controlo.2. Descodificao de instruo3. Localizao dos operandos utilizados pela instruo.4. Aquisio de operando da memria (caso seja necessrio)5. Execuo da operao6. Armazenamento do resultado e regresso ao passo 1.

    Conjunto de Registos: Registos da CPU acessveis ao programador, normalmente descritos no manual de programao Assembly, neste caso: Registos de uso geral (R0 a R7) Contador do Programa (PC Program Counter) Registo de Estado (PSR Processor Status Register) Apontador para a Pilha (SP Stack Pointer)

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    6

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Conceitos/Definies das Arquitecturas de Computadores

    Endereamento de Operandos: O endereamento explcito de operandos pode ser atravs da especificao do endereo de memria ou do endereo do registo do processador, contudo, o endereamento de um operando pode tambm ser feito de forma implcita atravs do cdigo da operao.

    Definio da Arquitectura do Conjunto de Instrues: O nmero de operandos de endereamento explcito, numa instruo de manipulao de dados, e destes o nmero de operandos que podem ser directamente endereados em memria so factores fundamentais na definio de uma Arquitectura para o Conjunto de Instrues e, naturalmente, na dimenso das instrues.

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    7

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Endereamento de Operandos

    A influncia do nmero de operandos no desenvolvimento de programasser ilustrada atravs do clculo da seguinte expresso aritmtica:

    X=(A+B)(C+D)

    Instrues com 3 Operandos, de Endereamento Explcito:(a) Armazenamento temporrio em memria

    (A,B,C,D,X,T1,T2 so Endereos de memria)

    ADD T1,A,B M[T1]M[A]+M[B]

    ADD T2,C,D M[T2]M[C]+M[D]

    MUL X,T1,T2 M[X]M[T1]xM[T2]

    (b) Armazenamento temporrio em registoADD R1,A,B R1M[A]+M[B]

    ADD R2,C,D R2M[C]+M[D]

    MUL X,R1,R2 M[X]R1xR2

    180

    15

    12

    A

    B

    C

    D

    X

    T1

    T2

    12

    3

    4

    8

    MEM.

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    8

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Endereamento de Operandos (cont.)

    X=(A+B)(C+D)

    Instrues com 2 Operandos:Cada campo de endereo permite especificar um registo ou um endereo de memria. O registo R1 pode substituir T1 (endereo de memria) no armazenamento temporrio.

    MOVE T1,A M[T1]M[A]

    ADD T1,B M[T1]M[T1]+M[B]

    MOVE X,C M[X]M[C]

    ADD X,D M[X]M[X]+M[D]

    MUL X,T1 M[X]M[X]x M[T1] 180

    15

    12

    A

    B

    C

    D

    X

    T1

    T2

    12

    3

    4

    8

    MEM.

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    9

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Endereamento de Operandos (cont.)

    X=(A+B)(C+D)

    Instrues com 1 Operando:No caso das arquitecturas com instrues de apenas um operando (explcito) utilizado um registo - acumulador - de forma implcita para obter um dos operandos e para localizar o resultado da operao.

    LD A ACCM[A]

    ADD B ACCACC+M[B]

    ST X M[X]ACC

    LD C ACCM[C]

    ADD D ACCACC+M[D]

    MUL X ACCACC x M[X]

    ST X M[X]ACC

    180

    15

    12

    A

    B

    C

    D

    X

    T1

    T2

    12

    3

    4

    8

    MEM.

    ACC

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    10

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Endereamento de Operandos (cont.)

    X=(A+B)(C+D)

    Instrues sem Operandos:No caso das arquitecturas com instrues sem operandos (explcitos), todos os operandos tero de surgir de forma implcita. A forma convencional de solucionar este problema recorrendo a um STACK (pilha), estrutura de memria do tipo LIFO para armazenamento de dados dinmicos. (TOS Top of Stack)

    PUSH A TOSM[A]

    PUSH B TOSM[B]

    ADD TOSTOS+TOS-1

    PUSH C TOSM[C]

    PUSH D TOSM[D]

    ADD TOSTOS+TOS-1

    MUL TOSTOSxTOS-1

    POP X M[X]TOS

    [A]

    STACK

    [B]

    [A]+[B]

    STACK

    [A]+[B]

    STACK

    [C]

    [D]

    [A]+[B]

    STACK

    [C]+[D]

    (...) x (...)

    STACK

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    11

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Arquitecturas de Endereamento

    Classificao:1. Memory-Memory: O endereamento dos operandos na totalidade

    realizado sobre a memria.2. Register-Register ou Load/Store: O endereamento dos operandos faz-se

    com recusro a registos. O acesso memria restrito s instrues do tipo LD (load) e ST (store).

    Nota: No caso de ser necessria uma palavra de memria adicional para especificar o endereo de cada operando, o nmero de acessos memria no primeiro caso de 21, enquanto no segundo de 18.Justifique!

    MEMORY-MEMORY

    ADD T1,A,B M[T1]M[A]+M[B]

    ADD T2,C,D M[T2]M[C]+M[D]

    MUL X,T1,T2 M[X]M[T1]xM[T2]

    REGISTER-REGISTER

    LD R1,A R1M[A]

    LD R2,B R2M[B]

    ADD R3,R1,R2 R3R1+R2

    LD R1,C R1M[C]

    LD R2,D R2M[D]

    ADD R1,R1,R2 R1R1+R2

    MUL R1,R1,R3 R1R1xR3

    ST X,R1 M[X]R1

    A soluo Memory-Memory conduz a uma maior complexidade das estruturas de controlo, enquanto na Register-Register necessrio um maior nmero de registos.

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    12

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Arquitecturas de Endereamento (cont.)

    Classificao:

    3. Register-Memory: O endereamento dos operandos faz-se com recurso a registos e memria.

    4. Single Accumulator: O endereamento no recorre a registos de uso geral, sendo as transferncias realizadas na totalidade entre a memria e o registo Acumulador.

    5. Stack: O endereamento realizado de forma implcita com recurso ao STACK.

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    13

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Modos de Endereamento

    O modo de endereamento descreve o modo como os operandos so seleccionados durante a execuo do programa.

    O endereo do operando obtido pelas regras subjacentes aos modos de endereamento designa-se endereo efectivo.

    Os vrios modos de endereamento tem por objectivos fundamentais:1. Conferir Flexibilidade de Programao atravs da utilizao de

    apontadores para memria, contadores para controlo de ciclos, indexao dos dados e relocalizao de programas.

    2. Reduzir o nmero de bits nos campos de endereo da instruo.

    A especificao do modo de endereamento pode ser atravs de um campo prprio ou fazer parte do cdigo da operao.

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    14

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Modos de Endereamento (Formato das Instrues)

  • N. Horta, IST - UTL Arquitectura de Computadores2006/2007

    15

    Arquitectura de ComputadoresArquitectura do Conjunto de Instrues

    Modos de Endereamento

    1. Implcito: Operando especificado de forma implcita, no referido explicitamente na instruo, e.g., ADD.

    2. Imediato: Operando especificado na instruo, e.g., MOVE R1,3.

    3. Registo: Operando corresponde a um registo do processador, e.g., MUL R1,R2,R3.

    4. Indirecto por Registo: Endereo do operando corresponde ao contedo do registo especificado na operao, e.g., ADD (R1),3.

    Add

    ----

    Implcito

    Move

    3

    Imediato

    Mul

    ---

    Registo

    Opcode

    Endereo ou Operando

    Modo

    Add

    3

    Indirecto p/ Reg.

  • N. H