Funcionamiento de la CPU Arquitectura y Organización de Sistemas de Computación D.I.I.C.C

Download Report

Transcript Funcionamiento de la CPU Arquitectura y Organización de Sistemas de Computación D.I.I.C.C

Funcionamiento de la CPU
Arquitectura y Organización de Sistemas de Computación
Universidad de Concepción
D.I.I.C.C
Johana Pérez M.
Abril 2002
Temas
Introducción
Organización del Procesador
Memoria Interna: Registros
 Registros visibles al usuario (programador)
 Registros de Control y Estado
Ciclo de instrucción
Segmentación de instrucciones
 ¿Cómo se ejecuta?
 Riesgos de la segmentación
 Manejo de excepciones
Registros del procesador Pentium vs PowerPC
Conclusiones y Comentarios
1. Introducción
Objetivo

Estudiar el funcionamiento general de la CPU,
diferenciando sus componentes
Objetivos específicos


Conocidos los componentes de la CPU ahondar en
ciertos aspectos relevantes del funcionamiento
Estudiar alguna forma de optimizar el tiempo de usos de
los componentes de la CPU
2. Organización del Procesador
El procesador o CPU (Unidad Central de Proceso)



Controla el funcionamiento del computador
Realiza procesamiento de datos
Es uno de los componentes estructurales del computador




Memoria Principal: transfiere datos internamente
Entrada / Salidas: transfiere datos desde y hacia los
periféricos
Sistema de Interconexión: comunica Cpu, memoria
principal y E/S
Se compone también de cuatro elementos estructurales:
Organización CPU (cont.)
Unidad de Control (UC)
 Controla funcionamiento CPU
Unidad Aritmético Lógica (ALU)
 Procesa datos
Registros
 Almacenamiento interno
Interconexiones
 Comunicación entre UC, ALU
y los registros
Organización CPU (cont.)
Funciones de la CPU





Captar Instrucciones desde memoria
Interpretar instrucciones
Captar datos
Procesa datos
Escribir datos en memoria o en módulo de E/S
Notar similitud de la estructura de la CPU con la
estructura interna del computador
Organización CPU (cont.)
Estructura Interna CPU
3. Memoria Interna: Registros
Registros: celdas de memoria de alta velocidad que
permiten el almacenamiento temporal de los datos
mientras se realizan operaciones.
Para este estudio se clasificarán en:
 Registros Visibles al Programador
 Registros de Control y Estado
Otro registro importante es PSW (palabra de estado del
procesador)
 Contiene códigos de condición
 Información de estado
 Información de Modo
 etc.
Memoria Interna: Registros (cont.)
La decisión de diseño para los registros
mencionados depende de:



Sistema operativo
Distribución de información de control entre memoria y
registros
Costos vs. Velocidad
Memoria Interna: Registros (cont.)
R. Visibles al Usuario




Registros de Propósito
General
Registros de Dirección
(parcialmente
generales, registros
índices o Stack Pointer)
Registros de Datos
Registros de Condición
(flags, son fijados por
Hw.)
R. Control y Estado




Contador de Programa
(PC)
Registro de Instrucción
(IR)
Registro de dirección de
Memoria (MAR)
Registro Intermedio de
Memoria (MBR)
Estos registros tienen gran
importancia en la ejecución del
ciclo de instrucción
4. Ciclo de Instrucción: Fetch
Este ciclo se puede resumir en
la figura.
Cuando están involucrados más
de un operando cada uno de
ellos requiere un acceso.
Se debe realizar un tratamiento
especial cuando hay
direccionamiento indirecto
Ciclo de Instrucción (cont)
Cuando hay direccionamiento indirecto se alternan
la búsqueda y la ejecución de instrucciones.
Luego de ejecutar una instrucción de este tipo se
puede producir una interrupción antes de buscar la
siguiente instrucción
Ciclo de Instrucción (cont)
Diagrama de estados completo del Fetch
Ciclo de Instrucción (cont.)
Flujo de datos, ciclo búsqueda de instrucción
5.Segmentación de Instrucciones:
Pipelining
Idea:

Instrucciones utilizan los recursos distintos en distintas
etapas de la ejecución, entonces se ejecutan múltiples
instrucciones simultáneamente siempre y cuando TODAS
se encuentren en distintas etapas de ejecución.
¿Por qué a la segmentación se le llama Pipelining?

Porque al igual que en una tubería, se aceptan entradas
nuevas en un extremo antes de que las anteriores sean
salidas en el otro extremo.
Segmentación de Instrucciones (cont.)
Lavandería Secuencial




Recibir Cargas
Lavar Carga i
Secar Carga i
Planchar Carga i
Las máquinas quedan
desocupadas en algunos
ciclos
Total (4 cargas): 6 horas.
Segmentación de Instrucciones (cont.)
Lavandería Segmentada




Recibir Cargas
Lavar Carga i
Secar Carga i y lavar
Carga i+1
Planchar Carga i, secar
Carga i+1 y lavar Carga
i+2
Total (4 cargas): 3.5 horas
Segmentación de Instrucciones (cont.)
¿Cómo se ejecuta la segmentación?



En cada ciclo se inicia la ejecución de una instrucción
Existen múltiples instrucciones en ejecución
Se inicia una ejecución en cada ciclo de reloj
La segmentación:



No mejora latencia individual
Mejora el throughput global
Está limitada por la instrucción más lenta
Segmentación de Instrucciones (cont.)
Se descomponen las instrucciones para evitar el
desbalanceamiento:






Buscar Instrucción (FI)
Decodificar Instrucción (DI)
Calcular Operandos (CO)
Buscar Operandos (FO)
Ejecutar instrucción (EI)
Escribir Operando (WO)
Como se ve en la figura, el tiempo de ejecución se reduce
de 54 a 14 unidades de tiempo
Segmentación de Instrucciones (cont.)
Segmentación de Instrucciones (cont.)
Riesgos del Pipelining

Estructurales : ocurren conflictos de Hw. En distintas
etapas de ejecución.




Cada unidad funcional de memoria puede ser usada sólo
una vez por instrucción
Cada unidad funcional debe ser usada en el mismo estado
por todas las instrucciones
Solución: Definir un estado de memoria que no hace nada.
De control:


Bloqueos después de cada salto, por si hay que esperar la
próxima instrucción
Predicción de saltos, ejecutar el salto en forma paralela con
todas las instrucciones.
Segmentación de Instrucciones (cont.)
Riesgos del Pipelining (cont.)

De Datos:


Una instrucción depende del resultado previo.
Es necesario actualizar a tiempo el valor de las variables
que van a ser ocupadas,
La segmentación incrementa el número de instrucciones
que se ejecutan a la vez, y también su rapidez.
El resultado obtenido al utilizar esta técnica no depende
de la metodología escogida, sino que también del set de
instrucciones del procesador.
Segmentación de Instrucciones (cont.)
Manejo de Excepciones

Las excepciones se pueden producir en los siguientes
casos:





Desbordamiento aritmético
Petición de E/S
Intento de uso de instrucciones privilegiadas
Mal funcionamiento de la circuitería
El problema de los computadores segmentados es
asociar correctamente la excepción con al instrucción que
la causó.
6. Pentium y PowerPC
Procesador Pentium

Registros
Pentium y PowerPC (cont.)
Procesador Pentium (cont.)

Registros Eflags: representan el estadoi del procesador





Indicadores de trampa (se utilizan para depuración de
programas)
Indicador de habilitación de interrupciones
Indicador de dirección
entre otros...
Registros de Control (4 de 32 bits cada uno)





Protección
Tareas conmutadas
Coprocesador aritmético (cuando se ejecutan programas
de maquinas anteriores al Pentium)
Indicadores de Paginación
entre otros...
Pentium y PowerPC (cont.)
Procesador Pentium (cont.)

Procesamiento de Interrupciones : se suspende el flujo
de instruccione sen curso


Interrupción: señal Hw (durante la ejecución del programa)
Excepción: señal sw (durante la ejecución de la instrucción)


Programadas
Detectadas por el procesador
En ambos casos el procesador guarda el contexto del proceso
actual y pasa a una rutina definida previamente


Tabla de vectores de interrupción (256 vectores de 32 bits)
Para retornar después de una interrupción, la rutina de
servicio ejecuta la instrucción IRET, se retoma la ejecución
a partir del punto de interrupción
Pentium y PowerPC (cont.)
Power Pc

Registros
Pentium y PowerPC (cont.)
Power Pc (cont.)

Registro 0


Registros de excepción


se utiliza como carga, almacenamiento y en algunas
instrucciones de suma, el valor es siempre 0 independiente
del contenido
3 bits, se manejan excepciones en operaciones aritméticas,
o también como contador
Registro de enlace

se utiliza con instruccioens de bifurcación condicional para
direccionamiento indirecto de las direcciones de destino
Pentium y PowerPC (cont.)
Power Pc (cont.)

Procesamiento de interrupciones



Interrupciones
• Por ejecución de una instrucción
• Por condición o evento dle sistema
Se maneja un registro de estado de la Máquina: MSR
• Obj. Recuperar después de una interrupción el estado
que tenía el procesador en el momento de la interrpción.
Se utiliza en modo monitor, nunca en modo usuario.
Manipulación de interrupciones
• Para retornar después de una interrupción se ejecyçuta
la instrucción RFI.
Conclusiones y Comentarios
El procesador es el responsable de la mayor parte
de las funciones del computador, por lo tanto toda
decisión tomada sobre su diseño debe ser tomada
en forma muy responsable.
El procesador puede ser considerado como un
“mini” computador interno ya que coordina,
controla y ejecuta instrucciones.
La interdependencia existente entre ciertas
instrucciones hace los intentos de optimizar el uso
de la CPU muy difíciles.
Consultas y comentarios:
http://www.udec.cl/~johperez