organización y arquitectura de computadoras · 2013-03-10 · la unidad de control arquitectura de...
TRANSCRIPT
La Unidad de Control Arquitectura de Computadoras 1
Organización y arquitectura de computadoras
Tema 8
La Unidad de Control
Modelo RTL, Microoperaciones
La Unidad de Control Arquitectura de Computadoras 2
El Concepto de Programa• Los sistemas alambrados son rígidos
• Un programa es una secuencia de pasos
• Para cada paso, se realiza una operación de transferencia o una operación artmética o lógica
• Para cada operación, se genera un conjunto específico de señales de control
• Un hardware de propósito general puede realizar diferentes tareas si se le dan las señales de control correctas
• Cuando se requieren cambios, en lugar de re-alambrar, se proporciona un nuevo conjunto de señales de control
La Unidad de Control Arquitectura de Computadoras 3
Elementos que constituyen un programa en ejecución
Ejecución de un programa
Ciclo deinstrucción
Ciclo deinstrucción
Ciclo deinstrucción
. . .
Obtención Indirecto Ejecución Interrupción
µOP µOP µOP µOP µOP
La Unidad de Control Arquitectura de Computadoras 4
Micro-Operaciones
• Una computadora ejecuta un programa
• Ciclo de obtención/ejecución
• Cada ciclo tiene un número de etapas– Ver pipelining
• Llamadas micro-operaciones
• Cada paso hace muy poco
• Operación atómica del CPU
La Unidad de Control Arquitectura de Computadoras 5
Tipos de micro-operaciones
• Transferencia de datos entre registros
• Transferencia de datos de registro a almacenamiento externo
• Transferencia de datos de almacenamiento externo a registro
• Hacer operaciones aritméticas o lógicas
La Unidad de Control Arquitectura de Computadoras 6
Elementos básicos del procesador
• ALU
• Registros
• Trayectorias de datos internos
• Trayectorias de datos externos
• Unidad de control
La Unidad de Control Arquitectura de Computadoras 7
Trayectoria de datos y Unidad de Control
La Unidad de Control Arquitectura de Computadoras 8
Registros
• Memory Address Register (MAR) – Conectado al bus de direcciones– Especifica la dirección para una operación
de lectura/escritura
• Memory Data Register (MDR) – Conectado al bus de datos– Tiene los datos a escribir o los datos leidos
en la última lectura
• Program Counter (PC) – Tiene la dirección de la siguiente
instrucción a ser captada
• Instruction Register (IR) – Tiene la última instrucción captada
MDR
La Unidad de Control Arquitectura de Computadoras 9
Ciclo instrucción
• Obtención– Transferir el PC al MAR
– Realizar una lectura a memoria, incrementar el PC
– Esperar a que la memoria tenga lista la información
– Pasar el valor del MDR a IR
• Ejecución– Realizar la acción especificada por el código de operación
almacenado en IR
La Unidad de Control Arquitectura de Computadoras 10
PC
MAR
MDR
Y
Z
Decodificador de Instrucciones y Lógica
de control
IR
R0
R(n-1)
MUX
ALU
Direcciones
Datos
Constante
Select
Bus de Memoria
Señales deControl
ALUCarry-in
Señales de controlBus interno del CPU
A B
Modelo del CPU – Organización de un solo bus
SP
La Unidad de Control Arquitectura de Computadoras 11
Organización interna
• Usualmente un solo bus interno
• Las puertas controlan el movimiento de datos dentro y fuera del bus
• Las señales de control coordinan la transferencia de hacia y desde el bus externo del sistema
• Se añaden dos registros temporales para el funcionamiento correcto de la ALU: Y y Z
La Unidad de Control Arquitectura de Computadoras 12
Ejecución de Instrucciones
• Cada instrucción puede descomponerse en una secuencia de transferencias entre registros
• Las transferencias entre registros son coordinadas por señales de control
• Secuencias típicas– Transferir el contenido de un registro a otro
– Ejecutar una operación y almacenar el resultado en un registro
– Leer/escribir desde/hacia memoria/registro
La Unidad de Control Arquitectura de Computadoras 13
Notación para transferencias entre registros
- denota una transferencia de datos
• [ ] – contenido de una localidad de memoria
• Examples:– IR [PC]
• Transfer contents of location in PC to IR
– PC PC + 4• Incrementa el contenido del PC
La Unidad de Control Arquitectura de Computadoras 14
Transferencia entre registros
• Cada registro tiene dos señales de control
• Ejemplo– R3 [R7]
• Activar R7out – el contenido de R7 es colocado en el bus interno del procesador
• Activar R3in – el contenido del bus interno del procesador es colocado en R3
La Unidad de Control Arquitectura de Computadoras 15
Ri
Bus interno del procesador
X
X
Riin
Riout
MDR
X
X
MDRin
MDRout
X
MDRinE
X
MDRoutE
Bus de MemoriaLíneas de Datos
Señales de control para la entrada y salida de datos en los registros
La Unidad de Control Arquitectura de Computadoras 16
Ejemplo de señales de control - Obtención
• MAR <- PC– La unidad de control activa una señal que abre la puerta
entre MAR (MARin) y PC (PCout)
• MDR <- [memoria]– Abre la puerta entre MAR (MARout) y el bus de
direcciones
– La memoria lee las señales de control
– Abre la puerta entre el bus de datos y MDR
La Unidad de Control Arquitectura de Computadoras 17
Lógica de control para un bit del registro Ri
La Unidad de Control Arquitectura de Computadoras 18
Temporización de una transferencia entre registros
La Unidad de Control Arquitectura de Computadoras 19
Ciclo de obtención• La dirección de la siguiente instrucción está en PC
• La dirección se pone en el bus de direcciones (MAR)
• La unidad de control emite un comando de lectura
• El resultado (dato de la memoria) aparece en el bus de datos
• El dato del bus se captura en el MDR
• El dato (instrucción) se mueve del MDR al IR
• MDR queda libre para próximas captaciones de datos
• PC se incrementa en 1
La Unidad de Control Arquitectura de Computadoras 20
Flujo de Datos (Obtención)
La Unidad de Control Arquitectura de Computadoras 21
Secuencia de obtención (simbólica)
• t1: MAR <- PC
• t2: MDR <- [memoria]
• t3: IR <- MDR
• t4: Z <- PC + 1
• t5: PC <- Z
• (tx = unidad de tiempo/ciclo de reloj)
La Unidad de Control Arquitectura de Computadoras 22
Reglas para agrupar eventos en un ciclo de reloj
• Debe seguirse la secuencia correcta de eventos– MAR <- PC debe preceder MDR <- [memoria]
• Deben evitarse conflictos– No se debe leer y escribir el mismo registro al mismo tiempo– MDR <- (memoria) e IR <- [MDR] no deben de estar en el mismo
ciclo– No se puede utilizar un recurso común como el Bus interno para
dos transferencias distintas
• También: PC <- [PC] +1 es una suma– Usa la ALU– Puede necesitar micro-operaciones adicionales
La Unidad de Control Arquitectura de Computadoras 23
Secuencia de obtención optimizada
• t1: MAR <- PC
Z <- PC + 1
• t2: MDR <- [memoria]
PC <- Z
• t3: IR <- MDR
La Unidad de Control Arquitectura de Computadoras 24
Ciclo de obtención del dato
• Se examina IR
• Si la instrucción indica modo indirecto, se realiza el ciclo indirecto– Los N bits menos significativos del MDR se transfieren al MAR
– La unidad de control solicita una lectura de memoria
– El resultado (dirección del operando) se transfiere al MDR
La Unidad de Control Arquitectura de Computadoras 25
Ciclo indirecto
• MAR <- (IRdirección) - campo dirección de IR
• MDR <- (memoria)
• IRdirección <- (MDRdirección)
• MDR contiene una dirección
• IR está en el mismo estado que si no se hubiera usado direccionamiento indirecto
• (¿Qué dice esto sobre el tamaño de IR?)
La Unidad de Control Arquitectura de Computadoras 26
Flujo de datos (ciclo indirecto)
La Unidad de Control Arquitectura de Computadoras 27
Ciclo de Ejecución
• Puede tomar muchas formas
• Depende de la instrucción que está siendo ejecutada
• Puede incluir– Lectura/Escritura en memoria
– Entrada/Salida
– Transferencia entre registros
– Operaciones en la ALU
La Unidad de Control Arquitectura de Computadoras 28
Ciclo de interrupción• t1: MDR <-PC
• t2: MAR <- dirección de salvaguarda
• PC <- dirección de la rutina
• t3: memoria <- MBR
• Esto es un mínimo– Puede haber micro-operaciones adicionales para obtener
la dirección
– Guardar el contexto lo hace la rutina de manejo de interrupción, no las micro-operaciones
La Unidad de Control Arquitectura de Computadoras 29
Ciclo de ejecución (ADD)
• Diferente para cada instrucción
• ej. ADD R1,X – añade el contenido de la dirección X a R1, resultado en R1
• t1: MAR <- (IRdirección)
• t2: MDR <- (memoria)
• t3: R1 <- R1 + MDR
La Unidad de Control Arquitectura de Computadoras 30
Ciclo de ejecución (ISZ)• ISZ X - incrementa y salta si es cero
– t1: MAR <- (IRdirección)
– t2: MDR <- (memoria)– t3: MDR <- MDR + 1– t4: memoria <- (MDR)– if (MDR) == 0 then PC <- PC + 1
• Notas:– La comprobación y actuación puede implantarse como una
microoperación– Esta puede ejecutarse durante la misma unidad de tiempo en la
cual el valor actualizado de MBR se guarda en memoria
La Unidad de Control Arquitectura de Computadoras 31
Ciclo de ejecución (BSA)• BSA X – Salta y guarda la dirección
– La dirección de la instrucción que viene a continuación de la instrucción BSA, se guarda en la posición X
– La ejecución continua de X+1– t1: MAR <- (IRdirección)
– MDR <- (PC)– t2: PC <- (IRdirección)
– memoria <- (MDR)– t3: PC <- (PC) + 1
La Unidad de Control Arquitectura de Computadoras 32
Ejemplo de la ejecución de una instrucción
• Add (R3), R1
• R1 <- M[R3] + R1
1. Obtener la instrucción2. Obtener el Operando3. Realizar la operación4. Almacenar el resultado
La Unidad de Control Arquitectura de Computadoras 33
Activación de las señales de control
• Add (R3), R1t1: PCout, MARin, Read, Select4, Add, Zin
t2: Zout, PCin, Yin, WMFC
t3: MDRout, IRin
t4: R3out, MARin, Read
t5: R1out, Yin, WMFC
t6: MDRout, SelectY, Add, Zin
t7: Zout, R1in, End
obtencionejecucion
La Unidad de Control Arquitectura de Computadoras 34
Add (R3), R1 – estado t1
Bus de Memoria
Líneas deControl ALU
PC
MAR
MDR
Y
Z
Decodificador de Instrucciones y Lógica
de control
IR
R1
R2
R3
MUX
ALU
Direcciones
Datos
Constante 4
Select4
Carry-in
Señales de control
A B
PCout, MARin, Read, Select4, Add, Zin
PCout
MARin
READ
Zin
ADD
t1: MAR <- PC Z <- PC + Const READ memory
La Unidad de Control Arquitectura de Computadoras 35
Add (R3), R1 – estado t2
Bus de Memoria
Líneas deControl ALU
PC
MAR
MDR
Y
Z
Decodificador de Instrucciones y Lógica
de control
IR
R1
R2
R3
MUX
ALU
Direcciones
Datos
Constante
Select
Carry-in
Señales de control
A B
Zout, PCin, WMFCPCin
Zout
WMFC
t2: PC <- Z MDR <- M[MAR]
La Unidad de Control Arquitectura de Computadoras 36
Add (R3), R1 – estado t3
Bus de Memoria
Líneas deControl ALU
PC
MAR
MDR
Y
Z
Decodificador de Instrucciones y Lógica
de control
IR
R1
R2
R3
MUX
ALU
Direcciones
Datos
Constante
Select
Carry-in
Señales de control
A B
MDRout, IRin
MDRout IRin
Opcode Add
t3: IR <- MDR
La Unidad de Control Arquitectura de Computadoras 37
Add (R3), R1 – estado t4
Bus de Memoria
Líneas deControl ALU
PC
MAR
MDR
Y
Z
Decodificador de Instrucciones y Lógica
de control
RI
R1
R2
R3
MUX
ALU
Direcciones
Datos
Constante
Select
Carry-in
Señales de control
A B
R3out, MARin, Read
MARin
R3out
READ
t4: MAR <- R3 READ memory
La Unidad de Control Arquitectura de Computadoras 38
Add (R3), R1 – estado t5
Bus de Memoria
Líneas deControl ALU
PC
MAR
MDR
Y
Z
Decodificador de Instrucciones y Lógica
de control
RI
R1
R2
R3
MUX
ALU
Direcciones
Datos
Constante
Select
Carry-in
Señales de control
A B
R1out, Yin, WMFC
R1out
WMFC
Yin
t5: MDR <- M[MAR] Y <- R1
La Unidad de Control Arquitectura de Computadoras 39
Add (R3), R1 – estado t6
Bus de Memoria
Líneas deControl ALU
PC
MAR
MDR
Y
Z
Decodificador de Instrucciones y Lógica
de control
RI
R1
R2
R3
MUX
ALU
Direcciones
Datos
Constante
SelectY
Carry-in
Señales de control
A B
MDRout, SelectY, Add, Zin
MDRout
Zin
ADD
t6: Z <- MDR + Y
La Unidad de Control Arquitectura de Computadoras 40
Add (R3), R1 – estado t7
Bus de Memoria
Líneas deControl ALU
PC
MAR
MDR
Y
Z
Decodificador de Instrucciones y Lógica
de control
RI
R1
R2
R3
MUX
ALU
Direcciones
Datos
Constante
Select
Carry-in
Señales de control
A B
Zout, R1in, End
Zout
R1in
END
t7: R1 <- Z END instruction
La Unidad de Control Arquitectura de Computadoras 41
Organización de tres buses
La Unidad de Control Arquitectura de Computadoras 42
ADD R4, R5, R6