TEMA 2: LA MÀQUINA SENZILLAdeeea.urv.cat/DEEEA/ecanto/WWW/EDG1/maq_senz.pdf · 4 llegir o les...

of 40/40
TEMA 2: LA MÀQUINA SENZILLA 2.1 ESTRUCTURA BÀSICA D’UN COMPUTADOR 2.1.1 DEFINICIONS Computador: Màquina que pot resoldre problemes executant (de mode seqüencial) un programa. Programa: Seqüència d’intruccions que descriuen com executar una tasca determinada. Llenguatge màquina: Conjunt d’instruccions primitives que entén un computador. 2.1.2 PARTS D’UN COMPUTADOR C O M P U T A D O R UNITAT CENTRAL DE PROCES (CPU) UNITAT DE PROCES: UNITAT DE CONTROL • UNITAT ARITMÈTICA LÒGICA (ALU) • REGISTRES UNITAT D’ENTRADA/SORTIDA BUSOS MEMÒRIA
  • date post

    14-Mar-2020
  • Category

    Documents

  • view

    14
  • download

    0

Embed Size (px)

Transcript of TEMA 2: LA MÀQUINA SENZILLAdeeea.urv.cat/DEEEA/ecanto/WWW/EDG1/maq_senz.pdf · 4 llegir o les...

  • TEMA 2:LA MÀQUINA SENZILLA

    2.1 ESTRUCTURA BÀSICA D’UN COMPUTADOR

    2.1.1 DEFINICIONS

    • Computador: Màquina que pot resoldre problemes executant (demode seqüencial) un programa.

    • Programa: Seqüència d’intruccions que descriuen com executaruna tasca determinada.

    • Llenguatge màquina: Conjunt d’instruccions primitives queentén un computador.

    2.1.2 PARTS D’UN COMPUTADOR

    COMPUTADOR

    • UNITAT CENTRAL DE PROCES (CPU) UNITAT DE PROCES:

    UNITAT DE CONTROL

    • UNITAT ARITMÈTICA LÒGICA (ALU)

    • REGISTRES

    • UNITAT D’ENTRADA/SORTIDA

    • BUSOS

    • MEMÒRIA

  • Cap. II. La màquina senzilla

    2

    UNITATE/S

    UNITATE/S MEMÒRIA

    MEMÒRIA

    UNITAT DEPROCÉS

    ALU REG

    Port Paral.lel

    Port Sèrie

    Bus d’adrecesBus de dadesBus de control

    CPU

    Microprocesad

    or

    Microcontrolad

    or

    UNITAT DECONTROL

    Figura 2.1. Estructura bàsica d’un computador

    • Unitat Central de Procès (CPU): La seva funció es executar elsprogrames emmagatzemats a la memòria.

    • Unitat de Procès: Part de la CPU encarregada de realitzar lesoperacions sobre les dades. Té dues parts:

    - Unitat Aritmètico Lògica: realitza operacionsaritmètiques (suma,...) i lògiques (AND, OR, ...)

    - Registres generals: memòria d’alta velocitat utilitzadaper emmagatzemar resultats intermedis

    - Registres específics: registres amb funcions especials.Són:

  • Sistemes Digitals I. 2on ETEI

    3

    - Contador de Programa (PC): conté la direcció de laparaula de memoria on es troba la següent instrucció aexecutar.

    - Registre d’Instruccions (IR): conté el codi de lainstrucció a executar

    - Registre d’Estat (SR): els seus bits memoritzensituacions com “resultat zero”, “carry”, ...

    • Unitat de Control: Part de la CPU encarregada de governar laresta del computador. Per cada instrucció del programa la UCdecideix quines operacions ha de realitzar la UP i la resta de blocsdel computador.

    • Memòria: Part del computador encarregada d’ emmagatzemar lesintruccions d’un programa i les dades relacionades mentres’executen. N’hi ha de dos tipus:

    - RAM: emmagatzema dades del programa i d’usuari- ROM: emmagatzema dades i programes propis del

    computador

    • Unitat d’entrada i sortida: Part del computador encarregada deestablir les connexions amb l’exterior (teclat, pantalla, discs, etc.)

    • Busos: Són les vies de comunicació entre els diferents blocs d’uncomputador. N’hi ha de tres tipus:

    - Bus de dades: a través d’ell es realitza la transferènciade dades i intruccions des de la memòria cap a la CPU(lectura) o des de la CPU cap a la memòria (escriptura).És bidireccional

    - Bus d’adreces: a través d’ell, la CPU envia les adrecesde memòria on es troben les instruccions que s’han de

  • Cap. II. La màquina senzilla

    4

    llegir o les adreces de memòria o perifèrics

    - on s’han de llegir o escriure les dades. És unidireccional.

    - Bus de control: a través d’ell es transmiteixen senyalsde control (lectura, escriptura, rellotge, ...). Ésbidireccional.

    2.2 DISSENY D’UNA MÀQUINA SENZILLA

    2.2.1 DESCRIPCIÓ DEL PROBLEMA

    Es vol contruïr una màquina senzilla (computador) que puguiexecutar el següent joc d’instruccions:

    A) SUMA

    ADD F,D D ⇐⇐⇐⇐ (D) + (F) FZ ⇐⇐⇐⇐ 1 si (D) + (F) = 0

    Suma el contingut de dos posicions de memòria D i F deixant elresultat en D.A més es modifica un indicador intern, bandera o FLAG ques'anomena FZ en funció del resultat de l'operació. S'activa a 1 si elresultat es zero o s'activa a 0 en cas contrari.

    B) MOVIMENT

    MOV F,D D ⇐⇐⇐⇐ (F) FZ ⇐⇐⇐⇐ 1 si (F) = 0

    Transferència del contingut d'una posició de memòria F a un altre.

  • Sistemes Digitals I. 2on ETEI

    5

    C) COMPARACIÓ

    CMP F,D FZ ⇐⇐⇐⇐ 1 si (F) - (D) = 0

    Compara el contingut de dos posicions de memòria D i F. Si els dosoperands són iguals, el Flag de Zero es posa a 1.

    D) SALT

    BEQ D PC ⇐⇐⇐⇐ D si FZ = 1

    Si FZ = 1, s'executa la instrucció que es troba en l'adreça D. En cascontrari, continua amb la següent instrucció de memòria.

    EXEMPLE D’APLICACIÓ DE LA MÀQUINA SENZILLA

    Multiplicar dos variables a i b emmagatzamant el resultat a lavariable c.

    algorisme d'alt nivell:begin

    c:=0;

    i:=0;

    while i < b do

    begin

    c:= c + a;

    i:= i + 1;

    end

    end

  • Cap. II. La màquina senzilla

    6

    algorisme de baix nivell :

    begin: MOV 0,C c:=0 MOV 0,i i

    while: CMP i,b mentre i

  • Sistemes Digitals I. 2on ETEI

    7

    MOV 0,c

    MOV 0,i

    CMP i,b

    BEQ end

    ADD a,c

    ADD 1,i

    CMP x,x

    BEQ while

    (begin) @0

    @1

    (while) @2

    @3

    @4

    @5

    @6

    @7

    (end) @8

    ....

    a

    b

    c

    i

    “1”

    “0”

    @99

    @100

    @101

    @102

    @103

    @104

    @105

    @106

    .....

    .

    @127

    Figura 2.2. Organització de la memòria de la màquina senzilla: el programa per multiplicar dos

    variables s’emmagatzema a partir de l’adreça @0 i les dades s’emmagatzemen a partir de la @100.

    FORMAT DE LES INSTRUCCIONS

    • Instrucció: codi binari amb dues parts

    • Codi d’operació: identifica l’operació ques’executarà

    • Codi de direccionament: indica com trobar elsoperands necessaris per executar l’operació

  • Cap. II. La màquina senzilla

    8

    • Modes de direccionament: són els diferents modes que hi had’indicar com trobar els operands. Els més utilitzats són:

    • Mode immediat: el codi de direccionament de lainstrucció conté l’operand.

    • Mode absolut o directe: el codi de direccionamentde la instrucció conté l’adreça de memòria on estroba l’operand.

    • Mode indirecte: el codi de direccionament de lainstrucció conté la direcció de memòria on estàl’adreça on es troba l’operand.

    • Pel nostre cas suposem:

    - Utilitzarem Mode de Direccionament Absolut

    - Codis d’operació: 4 instruccions ⇒ 2 bits

    CO0 CO1 Operació

    0 0 ADD

    0 1 CMP

    1 0 MOV

    1 1 BEQ

    - Codis de direccionament: Les instruccions que disposala CPU tenen com a màxim 2 operands (font i/o destí)

    L'operand destí pot indicar a més on deixar el resultat dela instrucció. Per tant necessitem 2 camps en el formatde la instrucció.

  • Sistemes Digitals I. 2on ETEI

    9

    L'amplada dels camps depén del tamany de la memòria(posicions direccionables).

    Si la RAM està constituida per 2m registres de n bits, elscamps d'adreces necessiten m bits.

    RAMm

    n n

    entradasortida

    dades

    lect/escr

    adreça

    Figura 2.3. Estructura de la memòria RAM

    La memòria màxima direccionable és de 128 paraules(m=7), tindrem que les instruccions tindran un format de16 bits.

    2 7 7

    CO @operand F @operand D

    Per executar un programa, la CPU llegeix de lamemòria, les instruccions que formen el programa. Siles instruccions necessiten dades, les seves adreçesvindran indicades després del codi de operació.

  • Cap. II. La màquina senzilla

    10

    El nostre programa quedarà:

    Adreça Instrucció OP Op. F Op. [email protected] MOV 0,c 10 1101001 [email protected] MOV 0,i 10 1101001 [email protected] CMP i,b 01 1100111 [email protected] BEQ end 11 xxxxxxx [email protected] ADD a,c 00 1100100 [email protected] ADD 1,i 00 1101000 [email protected] CMP 0,0 01 1101001 [email protected] BEQ while 11 xxxxxxx 0000010

    • Com els codis de les instruccions ocupen 16 bits, la memòria ha deser de paraules de 16 bits.

    • Estructura general del computador:

    UC UP

    M

    DE

    DS

    L/[email protected]

    16

    16

    Figura 2.4. Diagrama de blocs de la màquina senzilla.

    2.2.3 DISSENY DE LA UNITAT DE PROCÈS

    UNITAT DE PROCÈS

    • ALU: Realitza operacionsaritmètiques i lògiques

    • REGISTRES INTERNS

  • Sistemes Digitals I. 2on ETEI

    11

    Disseny de l’ALU: Operacions a realitzar

    1. ADD: Suma de dos nombres de 16 bits ⇒ Necessitem unsumador de 16 bits

    2. CMP: Comparació de dos nombres de 16 bits ⇒ Tenim duespossibilitats:

    • Restador de 16 bits + detector de zero

    • Xarxa de 16 portes OR-Exclusiva

    3. MOV: Moure un nombre de 16 bits d’una adreça de memòria auna altra. Aquí, l’ALU no ha de fer res ⇒ ALU transparent

    A més, l’ALU ha de detectar si el resultat d’una operació és zero ono (sortida Z).

    El diagrama de blocs de l’ALU serà:

    ++ XORXOR

    X (no utilitzada)

    A B

    16 16

    ALU0ALU1

    0 1 2 3

    S

    16 ... Z

    16 16

    Figura 2.5. Diagrama de blocs de l’Unitat Aritmètica-Lògica .

  • Cap. II. La màquina senzilla

    12

    • La sortida de l’ALU (S) haurà de ser un multiplexor de 4 a 1controlat per dos senyals:

    ALU1 ALU0 operació0 0 A + B0 1 A xor B1 0 B1 1 -

    Disseny dels registres:

    • Durant l’execució d’una instrucció l’UC realitza varis accesos amemòria. Per exemple ADD F,D

    1er accés: buscar codi de la instrucció2on accés: buscar operand font utilitzant l’adreça F3er accés: buscar operand destí utilitzant l’adreça D4rt accés: guardar el resultat a l’adreça D

    • Per tant, necessitem:

    Registre d’Instruccions: per guardar OPRegistre A: Per guardar operand DRegistre B: Per guardar operand F

    IRIR BB AA

    M ⇒ IR M ⇒ AM ⇒ B

    Figura 2.6. Registre d’Instruccions (IR) i Registres generals per guardar els operands (A i B). Els

    senyals de control “M⇒IR”, “M⇒A” i “M⇒B” controlen la càrrega dels registres.

  • Sistemes Digitals I. 2on ETEI

    13

    • Contador de Programa (PC): Registre que guarda l’adreça de lasegüent instrucció a executar. Les instruccions del programas’emmagatzemen de mode seqüencial en memòria i cada instruccióocupa una posició. Per tant, el registre PC ha d’incrementar el seucontingut en 1 cada vegada que s’executi una instrucció(seqüenciament implicit).

    ++

    PCPC

    “1”

    adreça de lainstrucció

    clk

    7

    Figura 2.7. Contador de Programa

    • Registre d’Estat (SR): La instrucció “BEQ D” utilitza l’indicadorde zero (FZ) per executar, o no, la instrucció emmagatzemada al’adreça D . Fa falta un registre que guardi el bit Z de sortida del’ALU de manera que pugui ser consultat durant l’execució de lasegüent instrucció (si és BEQ). La càrrega d’aquest registre vindràcontrolada pel senyal Z.

    SRSRZ

  • Cap. II. La màquina senzilla

    14

    Figura 2.8. Registre d’Estat (SR). Tan sols conté un bit (FZ: Flag de Zero)

    Accés a memòria:

    • L’adreça de memòria a la qual hi vol accedir la CPU pot vindre de:− el registre PC: a fi de buscar la instrucció a executar− el camp F de la instrucció: a fi de buscar l’operand font− el camp D de la instrucció: a fi de buscar l’operand destí o

    per guardar el resultat de la instrucció

    • Per seleccionar una de les tres adreces anteriors utilitzarem unmultiplexor de 4 canals controlat per dos línies de control queanomenem MX1 i MX0:

    MX1 MX0 @0 0 PC0 1 no utiliza1 0 F1 1 D

    • Quan @=PC tenim que incrementar el seu valor per que apunti ala següent instrucció:

    @ + 1 ---> PC

    • Tipus d'accés: La CPU haurà d'indicar a la memòria el tipusd'accés que es desitja realitzar, si fa una tranferència de memòria aCPU (lectura) o de CPU a memòria (escriptura). El senyal L/Econtrola el tipus de tranferència.

  • Sistemes Digitals I. 2on ETEI

    15

    AA BB

    PCPC

    CO

    F

    D

    ALUz

    2

    MEMORIAMEMORIA

    +1+1

    0123

    no utilitzat

    7

    7

    7

    7 @

    16

    16

    sor ent

    L/E

    L/E

    @+1 ⇒ PCMX1, MX0

    M ⇒ IRM ⇒ AM ⇒ B

    Z ⇒ FZ

    ALU1, ALU0

    FZ

    CO1, CO02

    Figura 2.9. Diagrama de blocs de la Unitat de Procés amb els senyals de control (línies discontinues)

  • Cap. II. La màquina senzilla

    16

    2.2.4 DISSENY DE LA UNITAT DE CONTROL

    • L'UC s'encarrega de controlar tota la lògica de la UP.

    • Hi ha dos maneres de fer l'UC:

    - UC cablejada: diseny de un s.s. definit per un graf d'estatsassociats a cada fase d'execució de les instruccions. Cada estatporta associat un vector de sortida que controla la UP i el restade blocs del computador.

    - UC microprogramada: disseny d'un autòmata controlat perun microprograma resident en una memòria interna que, percada instrucció del programa, genera una seqüència demicroinstruccions associades.

    • Inicialment estudiem la UC cablejada i posteriorment veurem elcas de l'UC microprogramada.

    • L'UC es dissenya com un s.s. amb 3 senyals d'entrada de l'UP i 10de sortida que controlen els blocs descrits anteriorment.

    U.C. Cablejada(Sist. Seqüencial)

    U.C. Cablejada(Sist. Seqüencial)

    CO0

    CO1

    FZ

    MX1

    MX0

    ALU0

    ALU1

    L/E

    @+1 ⇒ PC

    M ⇒ IR

    M ⇒ A

    M ⇒ B

    Z ⇒ FZ

    Figura 2.10. Unitat de Control Cablejada: 3 entrades i 10 sortides

  • Sistemes Digitals I. 2on ETEI

    17

    Fases d’execució d’una instrucció:

    • En general podem dir que l'execucció d'una instrucció esta divididaen 4 fases:

    − Fase 1 (FETCH): Busqueda en memòria de la instrucció,emmmagatzament en IR i increment del PC.

    − Fase 2 (DECODIFICACIÓ): decodificació de la instrucció.

    − Fase 3 (BÚSQUEDA): búsqueda d'operands en memòria(instruccions ADD, CMP i MOV) o evaluació de FZ(instrucció BEQ)

    − Fase 4 (EXECUTE): execució de la instrucció iemmagatzament de resultats en memòria.

    • El correcte seqüènciament d'aquestes fases i l'activació dels blocsadequats de l'UP el realitza l'UC seguint el graf d'estats. Així perexemple, per executar cada instrucció es requereix el següent grafd'estats:

    ADD

    Definició d'estats:

    estat0 (fase 1): IR ⇐⇐⇐⇐ (PC) PC = PC + 1estat1 (fase 2): eval. CO0 i C01estat2 (fase 3): B ⇐⇐⇐⇐ (F)estat6 (fase 3): A ⇐⇐⇐⇐ (D)estat7 (fase 4): D ⇐⇐⇐⇐ A + B FZ ⇐⇐⇐⇐ Z

  • Cap. II. La màquina senzilla

    18

    CMP

    Definició d'estats:

    estat0 (fase 1): IR ⇐⇐⇐⇐ (PC) PC = PC + 1estat1 (fase 2): eval. CO0 i C01estat3 (fase 3): B ⇐⇐⇐⇐ (F)estat8 (fase 3): A ⇐⇐⇐⇐ (D)estat9 (fase 4): A xor B FZ ⇐⇐⇐⇐ Z

    MOV

    Definició d'estats:

    estat0 (fase 1): IR ⇐⇐⇐⇐ (PC) PC = PC + 1estat1 (fase 2): eval. CO0 i C01estat4 (fase 3): B ⇐⇐⇐⇐ (F)estat10 (fase 4): D ⇐⇐⇐⇐ B FZ ⇐⇐⇐⇐ Z

    BEQ

    Definició d'estats:

    estat0 (fase 1): IR ⇐⇐⇐⇐ (PC) PC = PC + 1estat1 (fase 2): eval. CO0 i C01estat5 (fase 3): consulta FZestat11 (fase 1): IR ⇐⇐⇐⇐ (D) PC = D + 1

    • En l'estat11 es realitza el fetch de la instrucció que es troba enl'adreça D i per tant PC ha de quedar preparat apuntant a lasegüent instrucció en seqüència (D +1).

    • Les transicions entre estats del graf venen controlades per senyalsd'entrada a l'UC.

  • Sistemes Digitals I. 2on ETEI

    19

    Graf d'estats complet:

    0/S 0

    1/S 1

    2/S 2

    3/S 3

    4/S 4

    5/S 5

    6/S 6

    8/S 8

    7/S 7

    9/S 9

    10/S

    10

    11/S

    11

    fetc

    hde

    codi

    fica

    ció

    rece

    rca

    d’op

    eran

    dsex

    ecuc

    AD

    D

    CM

    P

    MO

    V

    BE

    Q

    xxx

    00x

    01x

    10x

    11x

    xxx

    xxx

    xxx

    xxx

    xxx

    xx1

    xxx

    xxx

    xxxxx

    x

    esta

    ts/

    sort

    ides

    CO

    0,C

    O1,

    FZ

    xx0

    Figura 2.11. Graf d’estats complet de l’unitat de control cablejada

  • Cap. II. La màquina senzilla

    20

    • En aquest graf cada estat porta associat un vector binari de sortidaamb els següents valors:

    S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11MX1 0 X 1 1 1 X 1 1 1 X 1 1MX0 0 X 0 0 0 X 1 1 1 X 1 1ALU1 X X X X X X X 0 X 0 1 XALU0 X X X X X X X 0 X 1 0 XL/E 0 0 0 0 0 0 0 1 0 0 1 0PC ⇐⇐⇐⇐ @+1 1 0 0 0 0 0 0 0 0 0 0 1IR ⇐⇐⇐⇐ M 1 0 0 0 0 0 0 0 0 0 0 1A ⇐⇐⇐⇐ M 0 0 0 0 0 0 1 0 1 0 0 0B ⇐⇐⇐⇐ M 0 0 1 1 1 0 0 0 0 0 0 0FZ ⇐⇐⇐⇐ Z 0 0 0 0 0 0 0 1 0 1 1 0

    Simplificació 1 del Graf d'Estats:

    • El graf té 12 estats encara que és possible simplificar-lo amb lessegüents condicions:

    − Les instruccions ADD, MOV i CMP tenen una fase comú(cerca de l’operand font i càrrega al registre B). Per tantpodem unificar els estats idèntics (S2, S3, S4) en un sol.

    − Les instruccions ADD i CMP tenen un altra fase en comú(cerca de l’operand destí i càrrega al registre A): Unifiquemels estats idèntics (S6 , S8) en un sol .

    − A la instrucció BEQ, la consulta de FZ per decidir si es fa elsalt, pot realizar-se en S1 evitant l'estat S5.

  • Sistemes Digitals I. 2on ETEI

    21

    • El nou graf seria:

    0/S0 12/S12

    6/S6

    7/S7

    9/S9

    10/S10

    fetch decodificació i recerca d’operands execució

    ADD

    CMP

    MOV

    BEQ

    xxx

    0xx x1x

    xxx

    xxx

    xxx

    110

    x0x

    2/S2x0x

    1xx

    0xx

    11/S11

    xxx

    111

    Figura 2.12. Graf d’estats simplificat (Simplificació 1)

    • Hi ha 8 estats i la taula dels vectors de sortida queda simplificada.

    • En aquest cas, la decodificació queda distribuïda al llarg de tot elgraf d'estats. Per exemple, fins que no s'arriba a S6 no es sap si lainstrucció és CMP o ADD.

  • Cap. II. La màquina senzilla

    22

    Simplificació 2 del Graf d'Estats:

    • La darrera optimització que podem realitzar consisteix en unificarla decodificació amb la búsqueda del 1er operand (operandfont) en un sol estat (S12), donat que durant l'estat S1 no s'accedeixa memòria ni s’ha de carregar cap registre. Si després resulta quela instrucció és BEQ (no cal operand) l'ignorem.

    • El graf final resultant és:

    0/S0 12/S12

    11/S11

    6/S6

    7/S7

    9/S9

    10/S10

    fetch decodificació i recerca d’operands execució

    ADD

    CMP

    MOV

    BEQ

    xxx

    0xx

    xxx

    111

    x1x

    xxx

    xxx

    xxx

    110

    x0x

    10x

    Figura 2.13. Graf d’estats simplificat (Simplificació 2)

  • Sistemes Digitals I. 2on ETEI

    23

    • A l'estat S12 es farà part de la decodificació de la instrucció i escercarà l’operand font. Per tant, aquest estat té associat el següentvector de sortides:

    S12MX1 1MX0 0ALU1 XALU0 XL/E 0PC

  • Cap. II. La màquina senzilla

    24

    innecesari en l'última versió optimizada).

    Síntesi de l’Unitat de Control:

    • El disseny de l'UC es completa realitzant la seva síntesi utilitzantqualsevol tècnica: lògica discreta, ROM, ...). En aquest cas i donatel nombre elevat d'entrades i sortides del sistema, utilitzarem unamemòria ROM.

    DQ

    DQ

    DQ

    ESTATFUTUR

    VECTORSDE

    SORTIDA

    a la UP10

    clk

    3

    Memoria ROM de:64 paraules (26) de 13 bits cadascuna

    Figura 2.14. Unitat de Control implementada mitjançant una memòria ROM de 64 posicions de 13 bits

    cadascuna

  • Sistemes Digitals I. 2on ETEI

    25

    2.3 MODIFICACIONS SOFTWARE, HARDWARE IFIRMWARE

    • Possibles modificacions de la màquina senzilla:

    a) realització software

    b) modificació hardware

    c) modificació firmware

    • Per fer això suposem que volem incloure una instruccióaddicional:

    CUAD F,D D ⇐⇐⇐⇐ 4*(F)FZ = 1 si (F) = 0

    2.3.1 MODIFICACIONS SOFTWARE

    • Es tracta de realitzar un programa utilitzant les intruccionsbàsiques anteriorment estudiades de tal manera que realitzil'operació desitjada.

    • Per exemple:

    CUAD: MOV a, b

    ADD b, b

    ADD b, b

  • Cap. II. La màquina senzilla

    26

    2.3.2 MODIFICACIONS HARDWARE

    • Es tracta de modificar l'UP i l'UC per realitzar la nova instrucció.

    • Una solució seria modificar l'ALU per calcular el quadruple d'undels seus registres d'entrada. Això és posible utilitzant lacombinació que ha quedat lliure dels senyals ALU1 i ALU0. Lamultiplicació per quatre es pot realitzar lògicament mitjançant unregistre que desplaci dos bits a l'esquerra, com en la següentfigura:

    ALU0ALU1

    0 1 2 3

    S

    16 ... Z

    2← clk

    B

    ALU0 ALU1 OPERACIÓ

    00

    0

    0

    11

    1

    1

    A+BA⊕B (bit a bit)

    B4*B

    Figura 2.15. Modificació Hardware de la Màquina Senzilla

    • Per altra banda, també és necessari modificar el graf d'estats del'UC. Suposant l'última versió del graf d'estats, on es realitza ladecodificació i búsqueda de l'operand font de forma simultanea,obtenim el fragment de graf d'estats de la fig. 2.16

  • Sistemes Digitals I. 2on ETEI

    27

    0/S0 12/S12

    Y/SY

    altres instruccions MX1 1MX0 1ALU1 1ALU0 1L/E 1PC ← @+1 0IR ← M 0A ← M 0B ← M 0FZ ← Z 1

    SY

    Figura 2.16. Graf d’estats de la màquina senzilla modificada

    • El fet d'incloure una nova instrucció, també modifica el format dela instrucció (necessitem un bit més).

    2.3.3 MODIFICACIONS FIRMWARE

    • Es tracta de modificar unicament l'UC de manera que realitzil'operació nova amb els recursos de l'UP (sense modificacions).

    Definició d'estats:

    estat0 (fase 1): IR

  • Cap. II. La màquina senzilla

    28

    2.3.4 COMPARACIÓ ENTRE SOLUCIONS

    • La solució software és la més barata. Malgrat tot és la més lenta(necessita 11 cicles de rellotge per executar-se: 3 cicles per MOV i2 x 4 cicles per les ADD).

    • La solució hardware és la més cara. (modificació de l'UP i l'UC).També és la més ràpida (necessita 3 cicles per ser executada).

    • La solució firmware té un cost intermig (modificació de l'UC:tamany de la ROM, incloure algun biestable,...). També té unarapidesa mitjana (5 cicles per la seva execució completa).

    2.4 MODIFICACIÓ DE LA MÀQUINA SENZILLA

    • Es desitja incloure noves instruccions. Per fer això femmodificacions en l'UP i l'UC. Es desitja mantindre el tamany totalde la instrucció i l'espai d'adreces accesible.

    2.4.1 NOVES INSTRUCCIONS

    • Aquestes noves instruccions es caracteritzen per tindre un únicoperand en memòria (operand D).

    A) POSAR A ZERO:

    CLEAR D D ⇐⇐⇐⇐ 0

    Posa a zero la posició de memòria D sense alterar el flag FZ

  • Sistemes Digitals I. 2on ETEI

    29

    B) CÀRREGA DIRECTA

    MOVD K,D D ⇐⇐⇐⇐ K FZ ⇐⇐⇐⇐ 1 si K = 0

    Posa la constant K a l’adreça D.

    C) ACUMULAR

    ACUM K,D D ⇐⇐⇐⇐ (D) + K FZ ⇐⇐⇐⇐ 1 si (D) + K = 0

    Acumula la constant K a l’adreça D

    • Les dos últimes instruccions necessiten una paraula de 16 bits queacompanya a la instrucció per especificar la constant K. Aquestaforma d'indicar un operand en la instrucció s'anomenadireccionament immediat, a diferencia del direccionamentabsolut o directe (l'adreça de l'operand és la que s'especifica a lainstrucció).

    2.4.2 NOUS FORMATS D’INSTRUCCIÓ

    • Les noves instruccions no requereixen els 7 bits del camp F. Pertant, aquestes instruccions poden utilitzar aquests bits per a lacodificació del codi d'operació. Si ambdos tipus d'instruccions hande tindre el mateix format de 16 bits haurem de codificar si lainstrucció té 1 o 2 operandds.

  • Cap. II. La màquina senzilla

    30

    • Una posible solució, coneguda com a codificació extesa,consisteix en dedicar una de les combinacions dels bits de códid'operació per diferenciar els dos tipus d'instruccions. Per exemple,la combinació 11 (en binari) pot ser utilitzada per indicar que ésuna instrucció d'un operand i els bits que facin falta del camp F perdiferenciar-les entre elles.

    • Una posible codificació per les noves instruccions utilitzaria:

    - 4 bits de codi d'operació ( els dos de més pes a 11).

    - 5 bits no utilitzats.

    - 7 bits com @ d'operan D.

    • Les instruccions amb operand en mode immediat necessiten a més16 bits per la constant.

    • Instruccions de dos operands:

    2 7 7

    COP @operan F @operan D

    • Instruccions d'un operand i direccionament immediat:

    4 5 7

    COP X @operan DIMMEDIATO K

  • Sistemes Digitals I. 2on ETEI

    31

    • Els CO associats a cada instrucció poden ser els següents:

    C1 C0 E1 E0 operació

    0 0 ADD0 1 CMP1 0 MOV1 1 0 0 BEQ1 1 0 1 CLEAR1 1 1 0 MOVD1 1 1 1 ACUM

    2.4.3 MODIFICACIONS DE L’UP

    • S'ha de modificar l'ALU de l'UP per permetre posar un zero a lasortida.

    ALU1 ALU0 Operació

    0 0 A + B0 1 A xor B1 0 B1 1 0

    2.4.4 MODIFICACIONS DE L’UC

    • Les modificacions de l'UC queden especificades en un nou grafd'estats, on solament es presenten els estats necessaris per lesnoves instruccions (les transicions venen etiquetades amb C1, C0,E1, E0 i FZ).

    • El graf d’estats per les noves instruccions es mostra a la figura2.17

  • Cap. II. La màquina senzilla

    32

    0/S0 1/S1xxxxx

    14/S14111xx xxx0x

    16/S16 17/S17xxxxx

    CLEAR

    MOVD

    ACUM

    15/S15

    13/S13

    xxx1x

    1101x

    Figura 2.17. Graf d’estats per a les noves instruccions

    • Definició dels nous estats:

    estat13 (fase 4): D

  • Sistemes Digitals I. 2on ETEI

    33

    2.5 MICROPROGRAMACIÓ

    • Una característica molt important de l'UC és que el nombred'entrades i sortides pot ser molt elevat. Això implica un dissenymolt complicat.

    • Per exemple, la forma més senzilla per fer funcionscombinacionals seria una ROM. En el cas particular de la màquinasenzilla, tenim 7 estats, 3 entrades i 10 sortides. Això significa quesi utilitzem una ROM, aquesta ha de ser de 64 paraules de 13 bitscadascuna. Malgrat tot el que realment ens interesa de l'UC són lesseves sortides que governen el funcionament de l'UP. En el nostrecas solament hi ha 7 combinacions diferents de sortides (segonsl'estat en que estem).

    • Per tant, és molt poc eficient utilitzar una memòria de 64 paraulesquan solament poden ocórret 7 coses diferents.

    • Per solucionar aquest problema utilitzem una alternativa dedisseny que s'anomena microprogramada.

    2.5.1 SEQÜÈNCIA D’OPERACIONS

    • La màquina pot executat 4 instruccions diferents. Per activarcadascuna d'aquestes instruccions s'ha de generar una determinadaseqüència de senyals de control. Per exemple per la instruccióADD s'ha de generar la següent seqüència:

    ADD

    1. @=PC, ALU = X, PC = @ + 1, IR = M, L/E = 0 Fetch2. @=X, ALU = X Decodificació3. @=F, ALU = X, B = M, L/E = 0 Busq. 1er operand4. @=D, ALU = X, A = M, L/E = 0 Busq. 2on operand5. @=D, ALU = +, L/E = 1, FZ = Z Suma i càrrega del resultat

  • Cap. II. La màquina senzilla

    34

    • La seqüència per executar la CMP seria:

    1. @=PC, ALU = X, PC = @ + 1, IR = M, L/E = 0 Fetch2. @=X, ALU = X Decodificació3. @=F, ALU = X, B = M, L/E = 0 Busq. 1er operand4. @=D, ALU = X, A = M, L/E = 0 Busq. 2on operand5. @=X, ALU = XOR, L/E = 0, FZ = Z Comparació

    • La seqüència per executar la MOV seria:

    1. @=PC, ALU = X, PC = @ + 1, IR = M, L/E = 0 Fetch2. @=X, ALU = X Decodificació3. @=F, ALU = X, B = M, L/E = 0 Busq. 1er operan4. @=D, ALU = B, L/E, FZ = Z, L/E = 1 Moure

    • La seqüència per executar la BEQ seria:

    1. @=PC, ALU = X, PC = @ + 1, IR = M, L/E = 0 Fetch2. @=X, ALU = X Decodificació3. @=D, ALU = X, PC = @ + 1, IR = M, L/E = 0 Fetch a la següe. Instr.

  • Sistemes Digitals I. 2on ETEI

    35

    • Suposant que tenim en una ROM totes aquestes paraules (17paraules de 10 bits cadascuna). L'estructura bàsica de l'UC seria:

    SeqüenciadorSeqüenciadorROM

    (17 paraules)

    ROM(17 paraules)

    2CO

    FZ

    @ Senyals de control de la UP

    10

    Figura 2.17. Estructura bàsica de l’Unitat de Control

    • La part fonamental és el seqüenciador. Es tracta d'un circuit que hade saber enviar una seqüència d'adreces adequada per llegir de laROM les paraules de control en ordre correcte. La ROM téemmagatzemats 4 grups de paraules de control (un per cadainstrucció). El seqüenciador ha de ser capaç de detectar lainstrucció que ha d'executar-se en un moment donat i llegir de laROM les paraules de control mitjançant les que s'executa lainstrucció.

    • Els 4 grups de paraules de control (microinstruccions) tenen unapart comú (les microinstruccions de fecht i decodificació). Podemescriure les microinstruccions en la ROM en el següent ordre:

  • Cap. II. La màquina senzilla

    36

    PARAULA MICROINSTRUCCIO01

    @=PC, ALU=X, [email protected] + 1, IR=M, L/E=0 [email protected]=X, ALU=X Decodificació

    234

    @=F, ALU = X, B = M, L/E = 0 [email protected]=D, ALU = X, A = M, L/E = [email protected]=D, ALU = +, L/E = 1, FZ = Z

    567

    @=F, ALU = X, B = M, L/E = 0 [email protected]=D, ALU = X, A = M, L/E = [email protected]=D, ALU = XOR, FZ = Z

    89

    @=F, ALU = X, B = M, L/E = 0 [email protected]=D, ALU = B, L/E = 1, FZ = Z

    10 @=D ALU=X, PC=D + 1, IR=M, L/E=0 BEQ

    • En la ROM tenim aquestes 11 microinstruccions. El seqüènciadors'ha de comportar d'aquesta manera:

    − En primer lloc ha de llegir la microinstrucció de fetch i ladecodificacció. En funció del codi de l'operació ha de llegirla microinstrucció 2 (si CO=ADD), la microinstrucció 5 (siCO=CMP), la microinstrucció 8 (si CO=MOV), lamicroinstrucció 10 (si CO=BEQ i FZ=1) o lamicroinstrucció 0 (si CO=BEQ i FZ=0).

    − Si CO=ADD, després de la microinstrucció 2 ha de llegir la3, després la 4 i finalment la 0. En general, quan s'acaba laseqüència de microinstruccions per executar unadeterminada instrucció, s'ha de llegir la microinstrucció 0per realitzar el fetch de la següent instrucció, menys en elcas de la 10 que va a l'1.

    • Veiem que el seqüenciador ha de llegir les microinstruccions deforma seqüencial i en ocasions ha de realitzar un salt que trencaamb aquesta seqüència. Aquest salt dependrà en ocasions delsvalors de CO1, CO0 i FZ i altres vegades serà un saltincondicional.

  • Sistemes Digitals I. 2on ETEI

    37

    • Suposem que la microinstrucció, a més de tindre un conjunt de bits(10 bits) que governa l'UP, té un grup de bits que ajuden alseqüenciador a decidir quina és la següent instrucció que ha dellegir.

    • Per exemple, la microinstrucció pot tindre el següent format:

    SALT TEST CONTROL DE L’UP

    4 3 10

    • Suposem també que assignem a casacuna dels senyals CO1, CO0 iFZ un codi. Per exemple:

    SENYAL CODICO0 0 0CO1 0 1FZ 1 0ZERO 1 1 ZERO és un senyal que sempre val 0

    • Quan es llegeix una determinada instrucció, els bits del campCONTROL determinen el funcionament dels blocs de l' UPmentres que els bits dels camps TEST i SALT són utilitzats per elseqüenciador per determinar l'adreça de la següent instrucció allegir. El càlcul d'aquesta adreça es realitza de la forma següent:els dos bits baixos del camp TEST identifican una de les 4 senyalsCO1, CO0, FZ o ZERO (segons la codificació preestablerta). Si elvalor del senyal selecionat coincideix amb el valor del tercer bitdel camp TEST aleshores l'adreça de la següent microinstruccióestà continguda en el camp SALT. Si els valors indicats nocoincideixen es llegeix la següent microinstrucció en seqüència. Elcontiguts de la ROM és:

  • Cap. II. La màquina senzilla

    38

    PARAULA TEST CONTROL

    MX1 MX0 ALU1 ALU0 L/E PC IR A B FZ

    0 X X X X 1 1 1 0 0 X X 0 1 1 0 0 0 Fetch

    1 1 0 0 0 1 0 0 X X X X 0 0 0 0 0 0 Si CO0 = 1 ir a 8

    2 0 1 1 0 1 0 1 X X X X 0 0 0 0 0 0 Si CO1 = 1 ir a 6

    3 X X X X 1 1 1 1 0 X X 0 0 0 0 1 0 CO=00 ADD

    4 X X X X 1 1 1 1 1 X X 0 0 0 1 0 0 Cerca operands

    5 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 Suma, ir a 0

    6 X X X X 1 1 1 1 0 X X 0 0 0 0 1 0 CO = 10 MOV

    7 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 Mou, FZ, anar 0

    8 1 1 0 0 1 0 1 X X X X 0 0 0 0 0 0 CO1 = 1 ir a 12

    9 X X X X 1 1 1 1 0 X X 0 0 0 0 1 0 CO = 01, CMP

    10 X X X X 1 1 1 1 1 X X 0 0 0 1 0 0 Cerca operands

    11 0 0 0 0 0 1 1 X X 0 1 0 0 0 0 0 1 XOR, F, anar 0

    12 0 0 0 0 0 1 0 X X X X 0 0 0 0 0 0CO=11 BEQ si

    FZ=0 anar a 0;

    13 0 0 0 1 0 1 1 1 1 X X 0 1 1 0 0 0Si FZ=1 fetch,

    Anar a 1

  • Sistemes Digitals I. 2on ETEI

    39

    • Per forçar la lectura de la següent microinstrucció en seqüènciafem que el camp TEST sigui 111. D'aquesta manera, comparem elsenyal ZERO amb el valor 1. Aquestos valors són diferents i pertant no es produeix el salt. En aquest cas el contingut del campSALT és indiferent. Per forçar el salt incondicional fem que elcamp TEST valgi 011 amb el qual comparem el valor del senyalZERO amb 0. Aquestos valors són iguals i per tant es produeix elsalt.

    • L'estructura de l'UC i l'estructura interna del seqüenciador són:

    SEQÜENCIADORSEQÜENCIADOR

    17

    ROM

    CONTROL

    A LA UP

    10

    4

    3

    SALT

    TEST

    4

    @

    CO

    2

    FZ

    Figura 2.18. Estructura de l’Unitat de Control

    0 1

    4

    0

    1

    2

    3

    µPCµPC

    +1+1

    4

    4

    4

    clk

    salt

    @

    testtest test

    + -

    CO0CO1FZ

    0

    S

    SEQÜENCIADOR

  • Cap. II. La màquina senzilla

    40

    Figura 2.19. Estructura del seqüenciador

    2.5.2 CONCLUSIÓ

    • UC microprogramada, és en general, més lenta que una UCcablejada. Malgrat tot quan les instruccions del llenguatgemàquina són complexes, la tècnica de microprogramació permet eldisseny amb més facilitat. Per altra banda, una UCmicroprogramada és més flexible a l'hora de realitzarmodificacions o incloure noves instruccions. Només cal modificaro incloure microinstruccions a la ROM que conté elsmicroprogrames. Aquestes modificacions en l'UC cablejada podenrepresentar pràcticament un redisseny total.