Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Von Neumann 2da Parte PDF
Von Neumann 2da Parte PDF
[ Arquitectura de Computadores ]
ORGANIZACIÓN DE LA COMPUTADORA
Año 2010
Präsentat
ion
1 Arquitectura de Computadores
[ Índice ]
1023
Ejemplo:
:
¿Cómo sumar el contenido de 867
la posición 867 con el :
contenido de la posición 562 y 778
almacenar el resultado en la
:
posición 778?
562
:
2
1
0
Memoria de 1024 × 8
1023
Ejemplo:
:
¿Cómo sumar el contenido de 867
la posición 867 con el :
contenido de la posición 562 y
almacenar el resultado en la
778 +
:
posición 778?
562
:
2
1
0
Memoria de 1024 × 8
1023
Solución:
:
1. Leer en la memoria la 867
posición 867 :
778
:
output
562
:
2
1
0
1023
Solución:
:
1. Leer en la memoria la 867
posición 867 :
2. Almacenar lo leído en un 778
registro externo
:
output
562
:
2
AC
1
0
1023
Solución:
:
1. Leer en la memoria la 867
posición 867 :
2. Almacenar lo leído en un 778
registro externo
:
3. Leer en la memoria la output
posición 562 562
:
2
AC
1
0
1023
Solución:
:
1. Leer en la memoria la 867
posición 867 :
2. Almacenar lo leído en un 778
registro externo
:
3. Leer en la memoria la output
posición 562 562
4. Sumar lo leído con el : sumador
registro externo 2
AC
1
0
1023
Solución:
:
1. Leer en la memoria la 867
posición 867 :
input
2. Almacenar lo leído en un 778
registro externo
:
3. Leer en la memoria la
posición 562 562
4. Sumar lo leído con el : sumador
registro externo 2
5. Almacenar la suma en la 1
posición 778
0
1023
Solución general:
: Unidad de
867 aritmética
:
y lógica
778
:
562
: Unidad
de control
2
1 Programa
0
1023
Solución general:
: Unidad de
El programa le da 867 aritmética
instrucciones a la :
y lógica
Unidad Central. 778
:
Ejemplo:
562
: Unidad
00100001 110110011
de control
significa leer en la 2
memoria 110110011 y 1 Programa
almacenar la lectura
0
en el registro AC de la
ALU.
Decoder & Read/Write
Memoria de 1024 × 8
1023
Solución general:
: Unidad de
El programa le da 867 aritmética
instrucciones a la :
y lógica
Unidad Central. 778
:
Ejemplo:
562
: Unidad
00100001 110110011
de control
significa leer en la 2
memoria 110110011 y 1 Programa
almacenar la lectura
0
en el registro AC de la Significa
ALU. leer y
Decoder & Read/Write
Memoria de 1024 × 8 almacenar
en AC
1023
Solución general:
: Unidad de
El programa le da 867 aritmética
instrucciones a la :
y lógica
Unidad Central. 778
:
Ejemplo:
562
: Unidad
00100001 110110011
de control
significa leer en la 2
memoria 110110011 y 1 Programa
almacenar la lectura
0
en el registro AC de la Significa lo que se
ALU. debe leer:
Decoder & Read/Write
Memoria de 1024 × 8 110110011 = 867
1023
Solución general:
: Unidad de
El programa le da 867 aritmética
instrucciones a la :
y lógica
Unidad Central. 778
:
Ejemplo:
562
: Unidad
00100001 110110011
de control
significa leer en la 2 :
memoria 110110011 y 1 110110011
almacenar la lectura
0 000100001
en el registro AC de la
ALU.
Decoder & Read/Write
Memoria de 1024 × 8
Signo
Palabra instrucción
0 8 19 20 28 39
Palabra instrucción
0 8 19
Codop Dirección
(CC)
MBR:
Memory Buffer Register
(CC)
MAR:
Memory Adress Register
Especifica la dirección en
memoria de la palabra que va a
ser escrita o leída en MBR.
(CC)
IR:
Instruction Register
(CC)
IBR:
Instruction Buffer Register
(CC)
PC:
Program Counter
(CC)
AC y MQ:
Accumulator y Multiplier
Quotient
(CC)
periféricos Computador
Unidad
Central de Memoria
Proceso Principal
CPU
Computador Sistema de
interconexión
Entrada
Salida
Líneas de
comunicación
Ejemplo:
Bus de Direcciones
Memoria
Secundaria Bus de Datos
Ejemplo:
CPU
Computer Unidad
Registros Aritmética y
I/O
Lógica
System CPU
Bus Interconexión
Memory
Interna de la CPU
Unidad
de
Control
Unidad de Control
CPU
Lógica
ALU Secuencial
Internal Control
Unit
Bus
Unidad de control
Registers de registros y
decodificadores
Memoria
de control
Unidad de Control
CPU
Lógica
ALU
La unidad de control Secuencial
controla el
Control
Unitfuncionamiento de la CPU:
Internal
Bus
Unidad de control
• controla las transferencias de
Registers de registros y
datos desde hacia la CPU y decodificadores
• controla la ALU.
Memoria
de control
Registros
ALU
Unidad de
Control Bus de Bus de Bus de
control datos direcciones
Registros visibles:
• pueden ser:
1. Uso general
2. Datos
3. Direcciones
4. Códigos de condición
• Óptimo entre 8 y 32
• Si hay muy pocos registros entonces se necesitan
demasiados accesos a memoria.
• Más registros no reducen considerablemente las
referencias a memoria y hace la CPU más compleja.
1. Recuperar la siguiente
instrucción desde 2. Decodificar el patrón de
memoria (apuntada por bits en el registro de
el program counter) y instrucción IR
luego incrementar el
program counter.
3. Ejecutar la instrucción
indicada en el registro de
instrucción IR
Ciclo de instrucción
61 Arquitectura de Computadores Präsentat
ion
[ Organización ] Ciclos fetch, decode, exe
Ciclo fetch (captación):
3. Se incremente PC en 1.
Ejemplo:
65 Arquitectura de Computadores Präsentat
ion
[ Organización ] Ciclos fetch, decode, exe
2. Los primeros 4 bits
de IR (“1”) indican que
el acumulador AC se
va a cargar con un
dato de la memoria.
Los restantes 12 bits
especifican la dirección
(es decir “940”).
Ejemplo:
66 Arquitectura de Computadores Präsentat
ion
[ Organización ] Ciclos fetch, decode, exe
3. El registro de PC se
incrementa en uno
(toma el valor 301) y se
capta la siguiente
instrucción que se
carga en AC (5941).
Ejemplo:
67 Arquitectura de Computadores Präsentat
ion
[ Organización ] Ciclos fetch, decode, exe
4. Los primeros 4 bits
(“5”) indican que la
instrucción es de suma
entre el acumulador y
una memoria. Los
siguientes 12 bits
indican la dirección de
memoria (“941”). El
contenido de AC y el
de la posición 941 se
suman y el resultado
se almacena en AC.
Ejemplo:
68 Arquitectura de Computadores Präsentat
ion
[ Organización ] Ciclos fetch, decode, exe
5. El registro PC se
incrementa en 1 (toma
el valor 302) y se capta
la siguiente instrucción
(2941) desde la nueva
posición de memoria,
cargándola en AC.
Ejemplo:
69 Arquitectura de Computadores Präsentat
ion
[ Organización ] Ciclos fetch, decode, exe
6. Los primeros 4 bits
indican (“2”) que el
acumulador se debe
almacenar en una
memoria. Los
siguientes 12 bits
indican la dirección de
la memoria (“941”). El
contenido de AC se
almacena en la
posición 941.
Ejemplo:
70 Arquitectura de Computadores Präsentat
ion
[ Organización ] Ciclos fetch, decode, exe
¿Cuántos ciclos de
instrucción se
necesitan?
¿Cuántos ciclos de
instrucción se
necesitan?
R/. Tres
74 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
1.- Instrucciones de transferencias de datos
75 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
1.- Instrucciones de transferencias de datos
Acciones:
Si se implica a la memoria:
• determina la dirección de la memoria
• inicia lectura/escritura en memoria
76 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
2.- Instrucciones aritméticas
77 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
2.- Instrucciones aritméticas
Acciones:
78 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
3.- Instrucciones lógicas
79 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
3.- Instrucciones lógicas
Acciones:
80 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
4.- Control de flujo
SKIP incrementa PC en 1
Acciones:
82 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
5.- Entrada / salida
83 Arquitectura de Computadores
[ Organización ] Conjunto de instrucciones
5.- Entrada / salida
Acciones:
84 Arquitectura de Computadores
[ Índice ]
Instrucción
Opcode Número (N)
1. Inmediato
2. Directo (o absoluto)
3. Indirecto
4. Registro
5. Indirecto con registro
6. Desplazamiento (Indexado)
Instruction
Opcode Operand
Operand
Pointer to operand
Operand
Operand
Registers
Registers
Lenguaje
000 0010 0101 0000 0000 máquina
001 0011 0101 0000 0001
002 0011 0101 0000 0010
003 0001 0101 0000 0011
:
500 0000 0000 0010 0001
501 0000 0000 0011 0010
502 0000 0001 0001 1010
503 0000 0000 0000 0000
109 Arquitectura de Computadores Präsentat
ion
[ Organización ] Assembler
Ejemplo sencillo: implementar T = X + Y + Z
Programa
en hexa
Programa
simbólico
Programa
en assembler
Uso de subrutinas:
Uso de subrutinas:
Programa Subrutina
principal
Llamado a
Subrutina
Programa Subrutina
principal
Llamado a
Subrutina
Llamado a j
Subrutina j+1
Uso de subrutinas:
(0100) ← (0100) + 5
(0200) ← (0200) + 5
(0204) ← (0204) + 5
(0100) ← (0100) + 5
(0200) ← (0200) + 5
(0204) ← (0204) + 5
(X) ← (X) + 5
(0100) ← (0100) + 5
(0200) ← (0200) + 5
(0204) ← (0204) + 5
(0100) ← (0100) + 5
¿Qué pasa si el programa
(0200) ← (0200) + 5
principal estaba usando A?
(0204) ← (0204) + 5
(0100) ← (0100) + 5
¿Qué pasa si el programa
(0200) ← (0200) + 5
principal estaba usando A?
(0204) ← (0204) + 5
kaput!!
Programa principal Subrutina
LOAD X,0100 SUM5 LOAD A,(X)
CALL SUM5 ADD 5
LOAD X,0200 STORE (X),A
CALL SUM5 RET
LOAD X,0204
CALL SUM5
123 Arquitectura de Computadores Präsentat
ion
[ Organización ] Subrutinas
Ejemplo:
(0100) ← (0100) + 5
(0200) ← (0200) + 5 Solución: se usa la pila
(0204) ← (0204) + 5
(SP) ← X
SP ← SP + 1
SP ← SP - 1
X ← (SP)
1 2 3 4 5 6 t
129 Arquitectura de Computadores Präsentat
ion
[ Organización ] Interrupciones
Unidad de disco
lee y envía datos
CPU CPU
solicita recibe
datos datos
1 2 3 4 5 6 t
130 Arquitectura de Computadores Präsentat
ion
[ Organización ] Interrupciones
¿Qué hace
la CPU en
este tiempo?
CPU CPU
solicita recibe
datos datos
1 2 3 4 5 6 t
131 Arquitectura de Computadores Präsentat
ion
[ Organización ] Interrupciones
¿Qué hace
la CPU en
este tiempo?
CPU NADA!! CPU
solicita la CPU espera… recibe
datos datos
1 2 3 4 5 6 t
132 Arquitectura de Computadores Präsentat
ion
[ Organización ] Interrupciones
Ejemplo con interrupciones: un programa quiere leer datos
del disco duro.
1 2 4 t
interrupción
3
Unidad de disco
lee y envía datos
1 2 4 t
interrupción
3
Unidad de disco
lee y envía datos
Bus de direcciones
A12 A0 A12
A12 A11
:
CPU MREQ A0
RD
WR
D7 D0
Bus de datos
D7 D0 D7 D0
WR
ROM RAM
RD RD
CE CE
A11 A0 A11 A0
Bus de direcciones
A12 A0
A11 A0
1. Igual
2. Igual
3. La CPU al saber que es el dispositivo X el que
interrumpe lee el elemento X del “vector de
interrupciones” ubicado en algún lugar de la
memoria, a partir de este elemento calcula la
dirección de memoria de la rutina de atención de la
interrupción.
4. Igual
5. Igual
Interrupciones múltiples:
1. Inhibición de interrupciones:
• La CPU ignora las interrupciones cuando ya está
procesando una interrupción.
• Las interrupciones ocurridas quedan pendientes y se
ejecutan en una determinada secuencia una vez que la
CPU termine la primera interrupción.
2. Definición de prioridades
• Interrupciones de baja prioridad pueden ser interrumpidas
por interrupciones de mayor prioridad.
• Cuando una interrupción de prioridad alta ha sido
atendida, la CPU regresa a la interrupción previa.