Está en la página 1de 56

CAPITULO 10

Estructura y Función de la
CPU
INF 150
INFORMATICA 2
Tareas de la CPU
 Captar Instrucción: Leer instrucción de la memoria
 Interpretar la instrucción: Decodificar la
instrucción y determinar acciones a realizar
 Captar datos: leer datos de memoria y/o E/S
 Procesar datos: realizar operación aritmética y/o
lógica
 Escribir datos: llevar datos a memoria o E/S
Para realizar estas operaciones, la CPU
requiere memoria interna
Estructura Interna CPU
Organización de los registros
 La memoria para almacenamiento interno
posee REGISTROS (nivel más alto en
jerarquía de memoria)
 Registros Visibles para el usuario: El
usuario puede usarlos para minimizar
accesos a memoria
 Registros de control y de estado: Son
usados por la unidad de control y por
programas privilegiados para controlar la
ejecución de un programa
Registros de uso general
 Como su nombre lo dice, pueden ser
utilizados para almacenar cualquier
información
 Puede haber excepciones: Ej. Registros
para almacenar punto flotante, punteros de
pila, etc.
 Algunas veces pueden almacenar
direcciones, en otros, existen registros para
datos y otros para direcciones
Ejemplo de registro de direcciones
 Punteros de segmento: Usado en
memorias segmentadas, almacenan la
dirección base del segmento
 Registros índices: Usado en
direccionamiento indexado, pueden ser
autoindexado
 Puntero de pila: Mantiene la dirección de
la cabeza de la pila.
Códigos de Condición
 También llamados Flags
 Son bits fijados por la CPU como resultado
de una operación
 Los códigos de condición se reúnen en uno o
más registros, generalmente forman parte de
un registro de control
 Generalmente los bits pueden ser leidos por
referencia implícita, pero no pueden ser
modificados
Registros de Control y de Estado
 Son esenciales cuatro registros para la
ejecución de una instrucción
 Contador del Programa (PC): dirección de la
próxima instrucción a ejecutar
 Registro de Instrucción: Instrucción captada mas
reciente
 Registro de Dirección de Memoria: Dirección de
una posición de memoria.
 Registro intermedio de memoria: Contiene la
palabra leída o a escribir en memoria
Palabra de Estado del Programa
(PSW)
 Contiene información de estado
 Signo: Signo del último resultado aritmético
 Cero: Indica si el último resultado fue cero
 Acarreo: Usado en operaciones multipalabra
 Igual: Resultado de una operación lógica es igual
 Desbordamiento: Overflow aritmético
 Interrupciones Habilitadas/ deshabilitadas
 Supervisor: Estado de la CPU en modo
supervisor o usuario
Otros Registros Estado y Control
 Punteros a bloques de memoria con
información de estado adicional (PCB)
 Maquinas con interrupciones vectorizadas,
registro de vector de interrupción
 Punteros de pila
 Punteros a tablas de páginas
 Registros para control de E/S
Ejemplos de Organizaciones de
Microprocesadores
Ciclo de instrucción con
direccionamiento indirecto
 Requiere mayores accesos a memoria
para extraer el operando (ciclo de fetch)
 Puede ser resuelto como un subciclo
adicional dentro del ciclo de instrucción
Ciclo de Instrucción con
direccionamiento indirecto
Diagrama de estados del ciclo de
instrucción
Flujo de Datos
 Dependen del diseño de la CPU
 En general, considerando registros:
 Registro de dirección de memoria MAR.
 Registro intermedio de memoria MBR.
 Contador de Programa PC
 Registro de Instrucción IR.
Fetch de la Instrucción
 PC contiene la dirección de la próxima
instrucción
 Dirección es transferida al MAR
 Dirección es llevada al bus de dirección
 Unidad de control requiere lectura desde la
memoria
 Resultado transferido al bus de datos, copiado
en el MBR, luego llevado al IR.
 PC se incrementa en uno
Fetch de la Dirección
 IR es examinada.
 Si la dirección es indirecta, se ejecuta un
ciclo indirecto
 Bits de la derecha de MBR es transferida
al MAR
 Unidad de control requiere lectura de
memoria
 El resultado es traslado al MBR
Fetch de la Dirección
Fetch de la Dirección
(ciclo indirecto)
Flujo de datos
(Ejecución)
 Puede tomar múltiples formas
 Depende de la instrucción que se
ejecutará
 Puede incluir
 Lectura/ escritura de memoria
 Entrada/ Salida
 Transferencia entre registros
 Operaciones aritméticas y/o lógicas
Flujo de datos
(Interrupción)
 Simple
 El valor del PC es guardado para retornar luego de
la interrupción
 Contenido del PC copiado en el MBR
 Dirección especial de memoria copiada en el MAR
 MBR se lleva a memoria
 PC se carga con la dirección del manejador de
interrupciones
 Nueva instrucción es extraída
Flujo de datos
(Interrupción)
PreFetch
 Ciclo de Fetch accede a la memoria principal
 Ciclo de ejecución no siempre accede a la
memoria principal.
 Debido a lo anterior, se puede realizar el fetch
de la siguiente instrucción mientras se ejecuta la
anterior.
 Se denomina pre-fetch o fetch overlap
(precaptación de la instrucción o solapamiento
de la captación)
Performance de PreFetch
 Se puede suponer que se ejecuta la ejecución
de las instrucciones a la mitad, pero esto no es
válido:
 El ciclo de fetch es mas corto que el de
ejecución
 Las instrucciones de salto impiden saber la
próxima instrucción a ejecutar, por lo tanto no
se puede realizar prefetch con una instrucción
de salto.
Pipelining
 Realizar solapamiento de las instrucciones,
aumentando las etapas de las ejecución.
 Fetch instrucción
 Decodificar la instrucción
 Calcular operándoos
 Captar operándoos
 Ejecutar instrucción
 Escribir operando
Pipelining
Pipelining
Manejo de los Saltos
 Múltiples flujos
 Prefetch destino del salto
 Buffers de ciclos
 Predicción de los saltos
 Retardar los saltos
Múltiples Flujos
 Posee dos Pipelines
 Realiza un Prefetch de cada salto en un
pipeline separado
 Utiliza el pipeline apropiado
 Manejo de contención del bus y de
registro (retardos)
Prefetch destino del salto
 Cuando se identifica una instrucción de
salto condicional, se precapta la
instrucción destino del salto,además de la
siguiente a l a bifuración
 Si se produce el salto, el destino ya habrá
sido precaptado.
Buffers de Bucles
 Es una memoria pequeña de gran
velocidad, gestionada por la etapa de
captación de instrucción del cauce.
 Contiene secuencialmente las últimas n
instrucciones captadas
 Antes de realizar una salto, se comprueba
si se encuentran las instrucciones en el
buffers
Buffers de Bucles
 Ventajas:
 Con precaptación, se anticipa, almacenando
las instrucciones que vendrán posteriormente,
evitando tiempo de acceso a memoria
 Si ocurre un salto a pocas posiciones de la
actual, el destino ya está en buffers, útil para
instrucciones condicionales (if -else)
 Se acomoda a manejo de ciclos, de ahí su
nombre.
Buffers de Bucles
 Diferencia con cache:
 Sólo almacena instrucciones consecutivas.
 Más pequeño
Predicción de Saltos
 Se pueden utilizar distintas técnicas para
predecir un salto:
 Nunca se saltará
 Siempre se saltará
 Predecir según código de operación
 Conmutador saltar/no saltar
 Tabla de historia de saltos
Diagrama de Estado de
Predicción del Salto
Saltos Retardados
 Se puede mejorar las prestaciones
reordenando automáticamente las
instrucciones de un programa, de forma
que las instrucciones de salto tengan lugar
después de lo realmente deseado.
Pipeline en Intel 80486
 Cinco Etapas
 Fetch
 Etapa de decodificación 1
 Etapa de decodificación 2
 Ejecución
 Escritura
Fetch
 Se captan desde cache o memoria, y se
colocan en uno de los dos buffers de 16
bytes.
 Objetivo: llenar los buffers de prebúsqueda
con nuevos datos, en cuanto los antiguos
sean tratados por el decodificador
 Cantidad instrucciones variables en buffers
(Largo instrucciones 1 a 11 bytes).
Decodificación 1
 Se decodifica el Código de operación y
modo de direccionamiento.
 La información necesaria de longitud de
instrucción se encuentra, a lo más, en los
tres primeros bytes de la instrucción, por lo
tanto se leen tres bytes.
 Si la instrucción ocupa más de tres bytes, se
indica a etapa D2 que capture el resto de
los bytes
Decodificación 2
 Capta el resto de los bytes de la
instrucción, en el caso de poseer más de
tres bytes
 Envía señales de control a la ALU.
 Realiza cálculo de direccionamientos
complejos.
Ejecución
 Operaciones de la ALU, acceso a cache,
actualización de registros.
Escritura
 Actualiza los registros y flag modificados
durante la etapa anterior
 Si la instrucción actualiza la memoria, el
resultado es enviado tanto a la cache y a
los buffers de escritura de la interfaz del
bus.
Pipeline en 80486
Registros en 80486
Registro EFLAG
Registros EFLAG
 Trap Flag: Provoca una interrupción
después de cada instrucción (trace)
 Interrupt enable: Procesador acepta
interrupciones externas
 Direction Flag: Indica si las instrucciones
de cadena modifican DI y SI
 I/O privilege level: Procesador genera una
excepción al haber accesos no
autorizados a E/S
Registros EFLAG
 Resume Flag: Permite que al reanudar de una
Trap Flag no se produzca una interrupción
 Alignment check: Indica si una palabra (o doble)
puede ser referenciada en una dirección que no
sea múltiplo de 2 (o cuatro)
 Identification Flag: Si se puede modificar el
registro, indica que posee instrucción CPUID,
para poder obtener información de que
procesador es.
Registros de Control
Registros de Control
 Protección Enable: Habilita/desabilita modo
protegido
 Monitor coprocesador: Preprocedaor presente,
anterior a Pentium II
 Emulation: Procesador sin unidad de Punto
Flotante
 Task Switched: Procesador tiene tareas
conmutadas
 Extención Type: Instrucciones que soporta
cooprocesador matemático
Registros de Control
 Numeric Error: Habilita mecanismo para
informar error en operación de p. flotante
 Write Protect: Se puede escribir en páginas de
sólo lectura
 Alignenment mask: Habilita comprobación de
alineación
 Not write through: Habilita cache de datos
 Cache disable: Habilita uso de cache interna
 Paging: Habilita la paginación
Registros MMX
 Trabaja con tipos de datos de 64 bits.
 Usa tres bits para indicar el registro (8
registros)
 No son registros específicos, utiliza los
registros de punto flotante, pero accede
directamente éstos (no en forma de pila)
Registros MMX
Manejo de Interrupciones
 Interrupciones: Provocadas por el HW.
 Enmascarables
 No enmascarables

 Excepciones: Provocadas por SW.


 Detectadas por el procesador (p.e. overflow)
 Programadas mediante instrucción especial
(p.e. int)
Manejo de Interrupciones
 Vector de Interrupción:
 Cada interrupción está asignada a un número
 El número se utiliza de índice en una tabla.
 Cada posición de la tabla posee una dirección
de 32 bits
 Tamaño de la tabla: 256 * 32 bits.
Manejo de Interrupciones
 5 Prioridades:
 Clase 1: Interrupción en instrucción previa
 Clase 2: Interrupción externas
 Clase 3: Fallos captando la siguiente
instrucción
 Clase 4: Fallos decodificando la siguiente
instrucción
 Clase 5: Fallos ejecutando la siguiente
instrucción
FIN
Capítulo 10

También podría gustarte