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
ió
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.