Control Monociclo

download Control Monociclo

of 28

Transcript of Control Monociclo

  • 7/22/2019 Control Monociclo

    1/28

    Arquitectura de ordenadores.Control monociclo.1

    ARQUITECTURA DE ORDENADORES

    Control de un Camino de DatosMonociclo

  • 7/22/2019 Control Monociclo

    2/28

    Arquitectura de ordenadores.Control monociclo.2

    Visin general del tema

    Seales de control

    Control para instrucciones tipo R y Or Immediato

    Seales de Control para Carga, almacenamiento y salto

    Construccin de un controlador local : Control ALU

    El controlador principal

  • 7/22/2019 Control Monociclo

    3/28

    Arquitectura de ordenadores.Control monociclo.3

    Formato de instrucciones MIPS

    Todas las instrucciones MIPS tienen 32 bits de longitud. Los tresformatos de instrucciones son:

    Tipo-R

    Tipo-I

    Tipo-J

    Los campos son:

    op: Operacin de la instruccin.

    rs, rt, rd: Registros fuente y destino.

    shamt: Desplazamiento.

    funct: Selecciona las variantes de la operacin del campo op.

    direccin / immediato: Direccin de desplazamiento o valor inmediato.

    Direccin destino: direccin de destino en las instrucciones de salto.

    op Direccin destino

    02631

    6 bits 26 bits

    op rs rt rd shamt funcin

    061116212631

    6 bits 6 bits5 bits5 bits5 bits5 bits

    op rs rt inmediato016212631

    6 bits 16 bits5 bits5 bits

  • 7/22/2019 Control Monociclo

    4/28

    Arquitectura de ordenadores.Control monociclo.4

    EL subconjunto de instrucciones MIPS

    ADD y SUB

    addU rd, rs, rt

    subU rd, rs, rt

    OR Immediato:

    ori rt, rs, imm16

    LOAD y STORE Word

    lw rt, rs, imm16

    sw rt, rs, imm16

    SALTO:

    beq rs, rt, imm16

    op rs rt rd shamt funct

    061116212631

    6 bits 6 bits5 bits5 bits5 bits5 bits

    op rs rt immediato

    016212631

    6 bits 16 bits5 bits5 bits

    op rs rt immediato

    016212631

    6 bits 16 bits5 bits5 bits

    op rs rt immediato

    016212631

    6 bits 16 bits5 bits5 bits

  • 7/22/2019 Control Monociclo

    5/28

    Arquitectura de ordenadores.Control monociclo.5

    Operando destino

    op rs rt rd shamt funct

    061116212631

    6 bits 6 bits5 bits5 bits5 bits5 bits

    op rs rt immediato

    016212631

    6 bits 16 bits5 bits5 bits

    INSTRUCCIONES TIPO R

    El operando destino se encuentra en las posiciones 15-11(campo rd)

    INSTRUCCIN DE CARGA

    El registro destino se encuentra en las posiciones 20-16

    (campo rt)

    Se necesir un multiplexor para seleccionar el campo de la instruccin que

    indique el nmero de registro donde se va a escribir

  • 7/22/2019 Control Monociclo

    6/28

    Arquitectura de ordenadores.Control monociclo.6

    Un camino de datos monociclo

    PCInstruction [2016]

    Instruction [2521]

    Add

    4

    16 32Instruction [150] Sign

    extend

    ALUresult

    Zero

    Mux

    Mux

    Mux

    MuxInstruction [1511]

    Shiftleft 2

    ALU

    Add ALUresult

    Leer

    direccin

    Instruccin[31-0 ]

    Memoria deinstrucciones

    Leer

    Registro 1

    Leer

    Registro 2

    EscribirRegistro

    Escribir

    dato

    Lectura

    Dato 1

    LecturaDato 2

    REGISTROS

    Leer/escribirDireccinLectura

    dato

    Escribir

    Dato

  • 7/22/2019 Control Monociclo

    7/28

    Arquitectura de ordenadores.Control monociclo.7

    Los cinco componentes clsicos de un ordenador

    Diseo del control de un procesador monociclo

    CONTROL

    Caminode datos

    Memoria

    ProcesadorEntrada

    Salida

  • 7/22/2019 Control Monociclo

    8/28

    Arquitectura de ordenadores.Control monociclo.8

    Un camino de datos monociclo ( Seales de control)

    MemtoReg

    MemRead

    MemWrite

    ALUOp

    ALUSrc

    RegDst

    PCInstruction [2016]

    Instruction [2521]

    Add

    Instruction [50]

    RegWrite

    4

    16 32Instruction [150]

    0

    Sign

    extend

    ALUresult

    Zero

    Mux

    1

    1

    Mux

    0

    1

    Mux

    0

    1

    Mux

    0Instruction [1511]

    ALU

    control

    Shiftleft 2

    PCSrc

    ALU

    Add ALUresult

    Leer

    direccin

    Instruccin[31-0 ]

    Memoria deinstrucciones

    Leer

    Registro 1

    Leer

    Registro 2

    EscribirRegistro

    Escribir

    dato

    Lectura

    Dato 1

    LecturaDato 2

    REGISTROS

    Leer/escribirDireccinLectura

    dato

    Escribir

    Dato

  • 7/22/2019 Control Monociclo

    9/28

    Arquitectura de ordenadores.Control monociclo.9

    nombre de laseal Efecto con seal desasertada Efecto con seal asertada

    MemRead NingunoEl contenido de la memoria de datos de ladireccin de lectura se pone en la salida Lect. dato

    MemWrite Ninguno

    El contenido de la memoria de datos de la

    direccin dada por la direccin de escritura essustituido por el valor de en la entrada Escribirdato

    ALUSrcEL Segundo operando de la ALUproviene de la segunda salida delarchivo de registros

    EL Segundo operando de la ALU est formado porlos 16 bits inferiores de signo extendido de lainstruccin

    RegDst El n de registro destino para Escribirregistro proviene del campo rt El registro de la entrada Escribir registro seescribe con el valor en la entrada de Escribir dato.

    RegWrite Ninguno.El registro en la entrada escribir registro se escribecon el valor de la entrada de Escribir registro

    PCSrc

    El PC es sustituido por la salida del

    sumador que calcula el valor dePC+4.

    El PC es sustituido por la salida del sumador quecalcula el destino del salto

    MemtoRegEl valor conectado a la entradaEscribir dato del registro proviene dela ALU

    El valor conectado a la entrada Escribir dato delregistro proviene de la memoria de datos

    Funcin de las seales de control

  • 7/22/2019 Control Monociclo

    10/28

    Arquitectura de ordenadores.Control monociclo.10

    instruccin RegDst ALUSrc MentoReg RegWrite MemRead MemWrite Branch

    Tipo R 1 0 0 1 0 0 0

    lw 0 1 1 1 1 0 0

    sw x 1 x 0 0 1 0

    beq x 0 x 0 0 0 1

    Valores iniciales de las seales de control

  • 7/22/2019 Control Monociclo

    11/28

    Arquitectura de ordenadores.Control monociclo.11

    La instruccin Add

    add rd, rs, rt

    mem[PC] * Extraer la instruccinde memoria

    R[rd]

  • 7/22/2019 Control Monociclo

    12/28

    Arquitectura de ordenadores.Control monociclo.12

    Extraccin de la instruccin y comienzo de Add

    Extraccin de una instruccin de memoria: Instruccin

  • 7/22/2019 Control Monociclo

    13/28

    Arquitectura de ordenadores.Control monociclo.13

    Fase de ejecucin: Lectura de los registros fuente

    P C

    Instruct ion

    memory

    R e a d

    address

    Instruct ion

    [31 0]

    Ins t ruction [20 16]

    Inst ruction [25 21]

    A dd

    Inst ruct ion [5 0]

    MemtoReg

    A LUO p

    MemWr i t e

    RegWri te

    M e m R e a d

    Branch

    RegDs t

    A LUS rc

    Inst ruction [31 26]

    4

    1 6 3 2Inst ruction [15 0]

    0

    0M

    u

    x

    0

    1

    Cont rol

    Ad d A LU

    result

    M

    u

    x

    0

    1

    Regis ters

    W rite

    register

    W rite

    data

    Read

    data 1

    Read

    data 2

    R e a d

    register 1

    R e a d

    register 2

    S ign

    extend

    M

    u

    x

    1

    A LU

    resul t

    Zero

    P CS rc

    Data

    mem oryWrite

    data

    Read

    dataM

    u

    x

    1

    Inst ruction [15 11]

    A LU

    cont rol

    Shif t

    left 2

    A L U

    Address

  • 7/22/2019 Control Monociclo

    14/28

  • 7/22/2019 Control Monociclo

    15/28

    Arquitectura de ordenadores.Control monociclo.15

    Fase de final: Escritura del resultado

    PC

    Instructionmemory

    Readaddress

    Instruction[310]

    Instruction [20 16]

    Instruction [25 21]

    Add

    Instruction [5 0]

    MemtoReg

    ALUOp

    MemWrite

    RegWrite

    MemRead

    Branch

    RegDst

    ALUSrc

    Instruction [31 26]

    4

    16 32Instruction [15 0]

    0

    0Mux

    0

    1

    ALUcontrol

    Control

    Shiftleft 2

    Add ALUresult

    Mux

    0

    1

    RegistersWriteregister

    Writedata

    Readdata 1

    Readdata 2

    Read

    register 1

    Readregister 2

    Signextend

    Mux

    1

    ALUresult

    Zero

    Datamemory

    Writedata

    Readdata

    Mux

    1

    Instruction [15 11]

    ALU

    Address

  • 7/22/2019 Control Monociclo

    16/28

    Arquitectura de ordenadores.Control monociclo.16

    Control

    ALUctrRegDst ALUSrcExtOp MemtoRegMemWr Zero

    Instruccion

    Imm16RdRsRt

    PCsrc

    Memoriade instruc.

    CAMINO DE DATOS

    Control

    Op

    Fun

    RegWr

  • 7/22/2019 Control Monociclo

    17/28

    Arquitectura de ordenadores.Control monociclo.17

    Resumen de las seales de control

    op Direccin destino

    op rs rt rd shamt funct

    061116212631

    op rs rt inmediatoTipo-RTipo-I

    Tipo-J

    add, subori, lw, sw, beq

    jump

    ENTRADA CONTROL ALU FUNCIN000 AND001 OR010 SUMA110 RESTA

    111 INICIALIZAR SOBRE MENOR

  • 7/22/2019 Control Monociclo

    18/28

    Arquitectura de ordenadores.Control monociclo.18

    La codificacin de ALUop

    En nuestro caso, ALUop tiene dos bits que representan:

    IInstrucciones tipo-R

    Instrucciones Tipo-I que requieren la ALU para realizar:

    - Suma y Resta

    Control

    principal

    op

    6

    ALUControl(Local)

    func

    2

    6

    ALUop

    ALUctr

    3

  • 7/22/2019 Control Monociclo

    19/28

    Arquitectura de ordenadores.Control monociclo.19

    Decodificacin del campo Func

    Tipo-R lw sw beq

    ALUop (Symbolic) Tipo-R Suma Suma Resta

    ALUop 10 00 00 01

    ControlPrincipal

    op

    6

    ControlALU

    (Local)

    func

    2

    6ALUop

    ALUctr

    3

    op rs rt rd shamt funct

    061116212631

    Tipo-R

    ALUctr

    ALU

    funct Operacin Instruccion

    10 0000

    10 0010

    10 0100

    10 0101

    10 1010

    suma

    resta

    and

    or

    Inicializar-sobre-menor

    ALUctr Operacin ALU

    000

    001

    010

    110

    111

    or

    suma

    resta

    Inicializar sobre menor

    and

  • 7/22/2019 Control Monociclo

    20/28

    Arquitectura de ordenadores.Control monociclo.20

    Tabla de verdad para ALUcrt

    Tipo-R lw sw beqALUop (Symbo.) Tipo-R Suma Suma Resta

    ALUop 10 00 00 01

    funct Operacin Instruccion10 0000

    10 0010

    10 0100

    10 0101

    10 1010

    suma

    resta

    and

    or

    Inicializar-sobre-menor

    ALUOp Cdigo funcinALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0

    Entrada controlALU

    0 0 X X X X X X 010

    X 1 X X X X X X 110

    1 X X X 0 0 0 0 010

    1 X X X 0 0 1 0 110

    1 X X X 0 1 0 0 0001 X X X 0 1 0 1 001

    1 X X X 1 0 1 0 111

  • 7/22/2019 Control Monociclo

    21/28

    Arquitectura de ordenadores.Control monociclo.21

    Ecuacin lgica para ALUctr

    ALUop funcbit bit bit bit bitbit ALUctr

    x 1 x x x x 1

    1 x 0 0 1 0 1

    1 x 1 0 1 0 1

    ALUctr = ALUop +

    ( ALUop * !func * func * !func )

    Esto hace que el valor de func no influya

  • 7/22/2019 Control Monociclo

    22/28

    Arquitectura de ordenadores.Control monociclo.22

    El bloque de control de la ALU

    ALUControl(Local)

    func

    2

    6ALUop

    ALUctr

    3

    ALUctr = ALUop + ( ALUop * func )

    ALUctr = !ALUop + !func

    ALUctr = ( ALUop * func ) + ( ALUop * func)

  • 7/22/2019 Control Monociclo

    23/28

    Arquitectura de ordenadores.Control monociclo.23

    Bloque de control de la ALU

  • 7/22/2019 Control Monociclo

    24/28

    Arquitectura de ordenadores.Control monociclo.24

    La tabla de verdad del Control principal

    Tipo-R lw sw beqop5 0 1 1 0

    op4 0 0 0 0

    op3 0 0 1 0

    op2 0 0 0 1

    op1 0 1 1 0

    Entradas

    op0 0 1 1 0

    RegDst 1 0 x x

    ALUSrc 0 1 1 0

    MenToReg 0 1 x x

    RegWrite 1 1 0 0

    MemRead 0 1 0 0

    MenWrite 0 0 1 0

    Branch 0 0 0 1ALUOp1 1 0 0 0

    Salidas

    ALUOp2 0 0 0 1

  • 7/22/2019 Control Monociclo

    25/28

    Arquitectura de ordenadores.Control monociclo.25

    Implementacin del Control Principal

    . . . .op

    .op

    .op

    .op

    .

    R-tipo lw sw beqRegWrite

    ALUSrc

    MemtoReg

    MemWrite

    Branch

    RegDst

    MemRead

    ALUop1

    ALUop0

  • 7/22/2019 Control Monociclo

    26/28

    Arquitectura de ordenadores.Control monociclo.26

    Limitaciones de la implementacin en un solo ciclo

    Todas las instrucciones tardan el mismo tiempo enejecutarse.

    El tiempo de ejecucin viene definido por el tiempoque tarda en ejecutarse la instruccin ms lenta.

    La situacin se agrava si consideramos operaciones

    ms complejasLo habitual es que slo haya un mdulo de memoria ->Ms de un ciclo para completar la instruccin

  • 7/22/2019 Control Monociclo

    27/28

    Arquitectura de ordenadores.Control monociclo.27

    Camino de datos monociclo => CPI=1, ciclo => largo

    5 pasos para el diseo de un procesador

    1. Analizar el repertorio de instrucciones =>

    requerimientos del camino de datos 2. Seleccionar el conjunto de elementos del camino de

    datos y establecer una metodologa de pulsos de reloj

    3. Ensamblar el camino de datos teniendo en cuenta losrequerimientos

    4. Analizar la implementacin de cada instruccin paradeterminar los puntos de control que afectan a la

    transferencia entre registros. . 5. Ensamblar la lgica de control.

    Resumen

  • 7/22/2019 Control Monociclo

    28/28

    Arquitectura de ordenadores.Control monociclo.28

    Resumen

    El control es la parte ms complicada

    MIPS hace que el control sea ms sencilloLas instrucciones tienen el mismo tamao

    Los registros fuente estn siempre en el mismo lugar

    Los valores inmediatos tienen el mismo tamao y se encuentran enel mismo lugar

    Las operaciones son siempre entre registro o con valores

    inmediatos

    Control

    Camino dedatos

    Memoria

    ProcesadorEntrada

    Salida