Download - TEMA 2: LA MÀQUINA SENZILLAdeeea.urv.cat/DEEEA/ecanto/WWW/EDG1/maq_senz.pdf · 4 llegir o les adreces de memòria o perifèrics - on s’han de llegir o escriure les dades. És unidireccional.-Bus

Transcript

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ÒRIAMEMÒ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<b BEQ end ADD a,c c:= c + a ADD 1,i i:=i + 1 CMP X,X BEQ while

end:

L'última instrucció ha de ser de salt incondicional (en qualsevol cas). S'ha de fer unainstrucció de comparació tal que FZ = 1.

2.2.2 DISSENY DE LA MEMÒRIA

• Memòria: Part del computador on s’emmagatzemen:

• el programa (codi de les instruccions)• dades: variables i constants

• Pel nostre cas suposem:

• Utilitzem memoria RAM de 128 posicions (paraulesde memoria).

• Totes les variables, constants i instruccions ocupenuna paraula de memoria.

• Organitzem la memòria del següent mode:− El programa s’emmagatzema a partir de

l’adreça @0− Les variables i constants s’emmagatzemen a

partir de @100

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. D@0 MOV 0,c 10 1101001 1100110@1 MOV 0,i 10 1101001 1100111@2 CMP i,b 01 1100111 1100101@3 BEQ end 11 xxxxxxx 0001000@4 ADD a,c 00 1100100 1100110@5 ADD 1,i 00 1101000 1100111@6 CMP 0,0 01 1101001 1101001@7 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/E@7

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

ALU0

ALU1

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 ⇒ PC

MX1, 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 C01

estat2 (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 C01

estat3 (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 C01

estat4 (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 C01

estat5 (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 S11

MX1 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/S2

x0x

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:

S12

MX1 1MX0 0ALU1 XALU0 XL/E 0PC <--- @ + 1 0IR <--- M 0A <--- M 0B <--- M 1FZ <--- Z 0

• Aquest últim graf d'estats ens diu quants cicles de rellotge trigaràcada instrucció en executar-se. (Nombre de transicions en cadacamí del graf).

− ADD i CMP 4 cicles de rellotge

− MOV 3 cicles de rellotge

− BEQ 2 cicles de rellotge. Si FZ = 1, s'executa el fetch dela instrucció destí en l'estat11, contant-se com el primercicle de l'execució de la donada instrucció.

• També es poden calcular el nombre d'accesos a memòria per cadainstrucció:

− ADD provoca 4 accesos a memòria

− CMP i MOV provoquen 3 accesos a memòria

− BEQ provoca 2 accesos a memòria (encara que un d'ells

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 <--- (PC) PC = PC + 1estata (fase 2/3): decodificació A <-- (F) B <--(F)estatb (fase 4): D <--- A + Bestatc (fase 3): A <--- (D) B <--- (D)estatd (fase 4): D <--- A + B FZ <--- Z

• Es necessari realitzar modificacions addicionals.

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/S1

xxxxx14/S14

111xx xxx0x

16/S16 17/S17

xxxxx

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 <--- 0estat14 (fase 3): B <--- (PC) PC = PC + 1 búsqueda de Kestat15 (fase 4): D <--- Bestat16 (fase 3): A <--- (D) búsqueda. 2on operanestat17 (fase 4): D <--- A + B

• Els vectors de sortida associats als anteriors estats són:

S13 S14 S15 S16 S17

MX1 1 0 1 1 1MX0 1 0 1 1 1ALU1 1 X 1 X 0ALU0 1 X 0 X 0L/E 1 0 1 0 1PC<-@+1 0 1 0 0 0IR<-M 0 0 0 0 0A<-M 0 0 0 1 0B<-M 0 1 0 0 0FZ<-Z 0 0 1 0 1

• Qualsevol modificació de la màquina senzilla suposa unredissenyament pràcticament total de l'UC cablejada.

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üenciador ROM(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, PC=@ + 1, IR=M, L/E=0 Fetch@=X, ALU=X Decodificació

234

@=F, ALU = X, B = M, L/E = 0 ADD@=D, ALU = X, A = M, L/E = 0@=D, ALU = +, L/E = 1, FZ = Z

567

@=F, ALU = X, B = M, L/E = 0 CMP@=D, ALU = X, A = M, L/E = 0@=D, ALU = XOR, FZ = Z

89

@=F, ALU = X, B = M, L/E = 0 MOV@=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

@

test<1>test<0> test<2>

+ -

CO0

CO1

FZ

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.