Beruflich Dokumente
Kultur Dokumente
D Diseño del computador simple 2 (CS2): conjunto de instrucciones; unidad de datos; unidad de control.
Bibliografía básica
** C. Baena, I. Gómez, J.I. Escudero, M. Valencia: “Sistemas Digitales”. Servicio de publicaciones del Dpto. Tec-
nología Electrónica, 1997.
** C. Baena, M.J. Bellido, A. J. Molina, M.P. Parra, M. Valencia: “Problemas de Circuitos y Sistemas Digitales”.
Ed. McGraw-Hill Interamericana, 1997.
1. Modo de operación:
* Calculadora: Ejecuta una operación preparada por el usuario
* Computador: Ejecuta un programa almacenado en memoria
Programa: Conjunto ordenado de instrucciones cuya ejecución resuelve un problema
Incorporación de la Memoria
* Para aumentar los datos, se sustituyen los registros A y B por una Memoria M
* Aparecen MAR (Memory Address Register) y AB (Address Bus) para las direcciones
E R W
MAR
AB
M
DB
T WT
DB
T WT
Δ A
RA a b
WA s
a b a±b r
s
a±b r [AC]
[AC] Δ RB
B
WB
RAC RAC
AC WAC AC WAC
Δ ZAC Δ ZAC
Codificación de instrucciones
* Al incorporar la Memoria, los datos se identifican por su dirección en M
n = ncop + naddress
Mdatos
CPU
- - Inconveniente: Dobles buses
++ Ventaja: Independiza dimensión de
datos e instrucciones
* El código de instrucción tiene “n” bits, igual que todo lo relativo a los datos (DB, AC,...)
** Habrá “ncop“ bits que decodificará la Unidad de Control
** Habrá “naddress“ bits que se usarán como bits de direcciones e irán a MAR
naddress naddress
n = ncop + naddress E R W
MAR
IR COPDirección
AB
ncop
M
T WT
2naddress x n
DB
Unidad
de a b
s
Control a±b r
[AC]
RAC
AC WAC
Δ ZAC Dimensión “n”
PC
** PC apuntará siempre a la
naddress
memoria de programa
naddress naddress
** PC tiene “naddress” bits y n = ncop + naddress E R W
MAR
debe estar conectado a MAR IR COPDirección
AB
ncop
M
T WT
2naddress x n
DB
Unidad
de a b
s
Control a±b r
[AC]
RAC
AC WAC
Δ ZAC
* El ciclo Fetch-Execute termina cuando llega una instrucción especial (STOP, END o
similar.
PC ← PCinicial
Ejecución automática
Parte ASM de Fetch
STOP
COP
Final del
programa No STOP
Bibliografía básica
** C. Baena, I. Gómez, J.I. Escudero, M. Valencia: “Sistemas Digitales”. Servicio de publicaciones del Dpto.
Tecnología Electrónica, 1997.
**C. Baena, M.J. Bellido, A. J. Molina, M.P. Parra, M. Valencia: “Problemas de Circuitos y Sistemas Digitales”.
Ed. McGraw-Hill Interamericana, 1997.
→ Microprograma de control
→ Unidad de control
• M es 26 x 8 (64 Bytes)
• MAR y PC son de 6 bits
Ejecución
$1 Instrucción 2ª
2. La ejecución será LINEAL:
$2 Instrucción 3ª
tras ejecutar una instrucción (p.ej. “K”) se
ejecutará la de la siguiente posición (“K + 1”) $3 Instrucción 4ª
IPC
PC [6]
CLPC [6]
[6]
IR[8]
D7-D0
TB CO CD DB[8]
WT T[8]
[2]
[8]
E
R A
W ALU
UNIDAD S
IPC
XS DE CLPC [8] [8]
TPC ZAC
CONTROL . ..
RAC AC[8]
WAC WAC
Desarrollo en Micro-operaciones
* Ciclo de Búsqueda (Fetch)
STOP
S ADD (01) SUB (10) STA (11)
(00)
3 NOP MAR I IR
go to S0 (TIR)
4 T I RAM RAM I AC, goto S1
( E, R, WT) ( E, W, RAC)
5 AC I AC + T, goto S1 AC I AC - T, goto S1
(A, WAC) (S, WAC)
IR7,6 00 (STOP)
EXECUTE
≠ 00
MAR I IR
IR7,6 00 (STOP)
EXECUTE
≠ 00
TIR
W
IR7 DEC STOP
0 ADD RAC
2:4 1
1
IR6 0 2 STA
3
7: STOP
$A [M($A)] Instrucción/Dato
00 1110 0000 STA $20 P
01 1010 0000 SUB $20 R
O
02 0111 1110 ADD $3E
G
03 0111 1101 ADD $3D R
04 1011 1100 SUB $3C A
05 1111 1111 STA $3F M
A
06 00xx xxxx STOP
D
3C 1011 1100 188(10 = $BC A
3D 0110 1001 105(10 = $69 T
3E 0111 1110 126(10 = $7E
O
S
3F 0010 1011 126(10 + 105(10 - 188(10 = 43(10 = $2 B
D Diseño del computador simple 1 (CS1) a nivel RT: conjunto de instrucciones; unidad de datos; unidad de
control; ejemplo de uso.
Bibliografía básica
** C. Baena, I. Gómez, J.I. Escudero, M. Valencia: “Sistemas Digitales”. Servicio de publicaciones del Dpto.
Tecnología Electrónica, 1997.
**C. Baena, M.J. Bellido, A. J. Molina, M.P. Parra, M. Valencia: “Problemas de Circuitos y Sistemas Digitales”.
Ed. McGraw-Hill Interamericana, 1997.
Diversificación de instrucciones
Subrutina
• Concepto: Fragmento de programa que realiza una cierta operación y que se ejecuta varias veces
en el Programa Principal
• Uso: Se escribe una sola vez y se llama las veces necesarias, retornando al lugar de llamada
Programa Principal
Programa Principal
K: Salto a SUBR
K+1: sigue K: Salto a SUBR
K+1: sigue
P:
SUBR
Ejecución Q:
L: Salto a SUBR
L+1: sigue L: Salto a SUBR
L+1: sigue
P:
SUBR
Q:
Diversificación de instrucciones
• MODOS DE DIRECCIONAMIENTO:
COP Direccionamiento
Mem
•• INMEDIATO COP Dato
aaaa Dato
•• DIRECTO COP aaaa
Mem
aaaa bbbb
•• INDIRECTO COP aaaa
bbbb Dato
Conjunto de instrucciones
Load Accumulator IMmediate LAIM AC ← inmediato JuMP JMP PC ← ΑΑ
LoaD Accumulator LDA AC ← Μ Branch if Carry Set BCS C: PC ← ΑΑ
STore Accumulator STA Μ ← AC Decrement and DBZ Μ ← Μ − 1;
Branch if Zero Ζ: PC ← Ν + 2
ADD ADD AC ← AC + M CLear Carry CLC C←0
SUBtract SUB AC ← AC - M SEt Carry SEC C←1
ADD Indirect ADDI AC ← AC + Mindirecto STOP STOP ΝΟP
ROtate Right ROR C, AC ← SHR(AC, C) Jump to JSR push (PC)
SubRoutine PC ← AA
ROtate Left ROL C, AC ← SHL(AC, C) Return of RTS PC ← (pull)
Subroutine
R W
Unidad de Datos del Computador simple 2
AB [8]
A7-0 D11-0
TSP, TIR, TPC
MAR [8] RAM
28x12
“0” ∇ DB [12]
11-8
XS CIM
RT [12] WT,RT,DT
A
S ALU
[12] [AC]
COUT
Csalida CC
C AC [12]
SC
WA, RR, RL
ZA, RA
R W
Novedades en la U. D. del CS2
AB [8]
A7-0 D11-0
Dimensionamiento TSP, TIR, TPC RAM
MAR [8] 28x12
“0” ∇ DB [12]
11-8
XS CIM
RT [12] WT,RT,DT
A
S ALU
[12] [AC]
COUT
Csalida CC
C AC [12]
SC
WA, RR, RL
ZA, RA
R W
“0” ∇ DB [12]
11-8
XS CIM
LAIM
RT [12] WT,RT,DT
A
S ALU
[12] [AC]
Carry COUT
Csalida CC
C AC [12]
SC
WA, RR, RL
ZA, RA
R W
Novedades en la U. D. del CS2
AB [8]
A7-0 D11-0
TSP, TIR, TPC
MAR [8] RAM
28x12
“0” ∇ DB [12]
11-8
XS CIM
RT [12] WT,RT,DT
Conexión
Z hacia DB
A
Entradas de Control S ALU
[AC]
[12]
de estado
COUT
Csalida CC
C AC [12]
SC
WA, RR, RL
ZA, RA
Unidad de Control
0
Xs
1
Inicialización
Carta ASM
FETCH
0 F
COP
1
2
D (STOP)
ASM ASM ASM ••• ASM
LAIM LDA STA RTS
Unidad de Control
0
Xs
1
Inicialización
Inicialización 0 LAIM
1 LDA
Carta ASM Xs 2
FETCH STA
FETCH
D No Conectar
IR11:IR8 0 F
COP F
1 RTS
2
D (STOP)
ASM ASM ASM ••• ASM
LAIM LDA STA RTS IR11:IR8
D Diseño del computador simple 1 (CS1) a nivel RT: conjunto de instrucciones; unidad de datos; unidad de
control; ejemplo de uso.
D Diseño del computador simple 2 (CS2): conjunto de instrucciones; unidad de datos; unidad de control.
Bibliografía básica
** C. Baena, I. Gómez, J.I. Escudero, M. Valencia: “Sistemas Digitales”. Servicio de publicaciones del Dpto. Tec-
nología Electrónica, 1997.
** C. Baena, M.J. Bellido, A. J. Molina, M.P. Parra, M. Valencia: “Problemas de Circuitos y Sistemas Digitales”.
Ed. McGraw-Hill Interamericana, 1997.
Ensamblador
programas en ensamblador
Lenguaje ensamblador
En general, un lenguaje ensamblador consta de:
INSTRUCCIONES EJECUTABLES: se escriben con el mnemónico correspondiente y se interpreta al
código ejecutable. Ejemplo de CS2: DBZ $43 1010 01000011
DIRECTIVAS DE ENSAMBLADO O PSEUDOINSTRUCCIONES: son instrucciones del lenguaje
ensamblador, pero no de la máquina: no dan lugar a código ejecutable.
* Las directivas sirven para DOCUMENTAR y para FACILITAR la escritura de programas:
uso de variables, etiquetas, etc.
Cada línea del fichero del programa corresponde a una instrucción o directiva
Las 16 instrucciones del CS2 con el mnemónico ya dado y:
* direcciones en hexadecimal con el formato $HH: p. ej. BCS $0B
* datos en decimal (p. ej. LAIM 50), hexadecimal (LAIM $32) u octal (LAIM #062)
Las directivas son:
* comentarios tras cada “ ; “ ; esto es un comentario
* variables para direcciones: EQU nombre $HH EQU ALTA $AA
* etiquetas: nombre: instrucción ciclo1: ADDI ALTA
... ... ... ... ... ... ... ...
otrainstrucción nombre JMP ciclo1
Programa ensamblador
Ensamblador: programa
que interpreta el progra-
ma del CS2.
Este ensamblador
es una aplicación
que corre sobre un
computador real.
DATO n
sí no
último DATOS (magnitudes)
EF DATO 1
fin ...
Programa en ensamblador
; Suma de n magnitudes (n = 8):
; M($43) = M($EF) + M($EE) + M($ED) + ... + M($E8)
;
; Variables
EQU CONT $AB ; CONT cuenta sumas que faltan
EQU ALTA $AA; ALTA señala al sumando siguiente
;
; Inicialización
LAIM 8 ;n=8
STA CONT ; CONT es $AB = 8
LAIM $EF
STA ALTA ; inicializa ALTA = $EF
LAIM 0 ; AC = 0
; Programa principal
ciclo1: ADDI ALTA ; acumula suma
BCS fin ; sale si hay acarreo
DBZ ALTA ; siguiente sumando
DBZ CONT ; salta (N+2) si último
JMP ciclo1
STA $43 ; almacena resultado
fin: STOP
1a. Si el número es una magnitud, p. ej. 96: LAIM 96; también LAIM $60
STA WORD ; WORD = $060
Cuestiones: ¿Cuáles son el mayor y el menor valor que se pueden introducir según 1a, b, c?
Cuestiones (y soluciones) :
SUB B ; AC ← AC - B
EQU A $AD
A>B↔A-B>0 EQU B $AE
LDA A
Sí No
A>B * Hacer A -B → Bwout = C: SUB B ; C = Bwout
BCS tarea2
** C = 1 ↔ A < B ... ; 1ª instr. de Tarea 1
Tarea 1 Tarea 2 ... ; 2ª instr. de Tarea 1
** C = 0 ↔ A > B
... sigue ...
Supongamos que el acumulador en ciclos sucesivos se va a almacenar primero en $9F, después en $9E, después en
$9D, etc. Si sólo disponemos de la instrucción STA, en la primera escritura habría que poner STA $9F, en la
segunda STA $9E, en la tercera STA $9D, etc., siendo imposible hacer un bucle. Si dispusiéramos de la instrucción
STAI se resolvería fácilmente esta cuestión.
* STAI stind, donde stind es la posición de referencia, que en nuestro ejemplo será $F0
1. El autor de este idea es D. Alejandro Muñoz Rivera, cuando fue alumno de esta asignatura
D Diseño del computador simple 1 (CS1) a nivel RT: conjunto de instrucciones; unidad de datos; unidad de
control; ejemplo de uso.
D Diseño del computador simple 2 (CS2): conjunto de instrucciones; unidad de datos; unidad de control.
Bibliografía básica
** C. Baena, I. Gómez, J.I. Escudero, M. Valencia: “Sistemas Digitales”. Servicio de publicaciones del Dpto. Tec-
nología Electrónica, 1997.
** C. Baena, M.J. Bellido, A. J. Molina, M.P. Parra, M. Valencia: “Problemas de Circuitos y Sistemas Digitales”.
Ed. McGraw-Hill Interamericana, 1997.
ciclo FETCH más complejo: Primera búsqueda: código de operación, que informa a la CPU de si hay
que buscar más palabras para completar la instrucción. Entonces, nueva búsqueda o ejecución, según
corresponda
Ver Problema 40