Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contenido
Unidad 2 Estructura y funcionamiento de la CPU................................................................................... 1
Organización del procesador .............................................................................................................. 1
Registros de uso General ................................................................................................................ 2
Registros de Segmentación ............................................................................................................. 4
Modos de direccionamiento ........................................................................................................... 5
2.3Ciclo de Instrucción ...................................................................................................................... 10
Segmentación de instrucciones ........................................................................................................ 12
Para hacer estas cosas es obvio que el procesador necesita almacenar datos temporalmente
necesita almacenar instrucciones y datos temporalmente mientras una instrucción está
ejecutándose o requiere tener presente la posición de la última instrucción de forma que pueda
saber de dónde tomar la siguiente instrucción. En otras palabras el procesador necesita una pequeña
memoria interna.
1
Unidad 2 2013
La figura 1.16 vista en la unidad anterior presenta la versión simplificada de un procesador. La figura
2.1 presenta una visión más detallada del procesador.
En la figura 2.1 la ALU y todos los registros están interconectados mediante un bus común. Este bus
es interno al procesador y no debe confundirse con el bus externo o el bus del sistema que conecta
al procesador con la memoria y los dispositivos de E/S.
Uso general
Datos
Direcciones
Códigos de condición
Cualquier registro de uso general puede almacenar el operando para cualquier código de operación;
esto proporciona una utilización de registros de uso general autentica. Sin embargo con frecuencia,
existen restricciones, por ejemplo registros específicos se utilizan para operaciones con “coma
flotante “y para operaciones con la pila.
En algunos casos los registros de uso general pueden utilizarse para funciones de direccionamiento
(por ejemplo en direccionamientos indirectos por medio de registros o con desplazamientos). En
otros casos, dependiendo de la arquitectura del procesador, existe una separación parcial o total
entre los registros de datos y los registros de direcciones. Los registros de datos pueden usarse
2
Unidad 2 2013
La última categoría de registros que es al menos parcialmente visible por el usuario contiene los
códigos de condición, también llamados indicadores o flags, Los códigos de condición son bits
fijados por el HW del procesador como resultado de alguna operación.
Ejemplificado los registros visibles para el usuario se presenta en la fig 2.2 donde se muestra el
modelo de programación de los microprocesadores 8086/
3
Unidad 2 2013
5. Apuntador de la base. Este registro apunta a una posición de memoria en todas las
versiones de los microprocesadores BP16 EBP32 RBP64.
6. Índice destino. Frecuentemente este registro direcciona datos de destino para las
instrucciones de cadenas. DI16 EDI320 RDI64
7. Índice Origen. Este registro direcciona el origen para las instrucciones de cadena SI ESI
RSI
8. Apuntador de Pila. Este registro almacena el tope de una área de memoria llamada pila
(stack) SP16 ESP32 RSP64
Registros de Segmentación
1. Segmento de Código: Es una sección de la memoria que almacena el código de un programa
y procedimientos utilizados por el microprocesador. El registro de segmento de código (CS)
define la dirección inicial de la sección de memoria que guarda el código. En la operación en
modo real define el inicio de un segmento de 64kb de memoria; en el modo protegido
selecciona un descriptor.
4
Unidad 2 2013
2. Registro del segmento de datos. Es una sección de la memoria que almacena los datos de
un programa y procedimientos utilizados por el microprocesador. El registro de segmento de
datos (DS) define la dirección inicial de la sección de memoria que guarda los datos. En la
operación en modo real define el inicio de un segmento de 64kb de memoria; en el modo
protegido selecciona un descriptor.
3. Registro de Segmentos de extra datos. El segmento de extra datos es un segmento
adicional para datos utilizado para algunas de las instrucciones de cadenas el registro de
segmentos de extra datos (ES) define la dirección de la sección de memoria que guardan los
datos adicionales.
4. Registros de Segmento de pila. El segmento de pila define el área de memoria para la pila.
El registro de segmento de pila (SS) define la dirección inicial de la sección de memoria que
guarda la información en la pila.
5. Registro de Segmentación FS y GS. Disponibles en los microprocesadores 80386 al Pentium
IV, para que los programas puedan acceder a dos segmentos de memoria adicional.
Modos de direccionamiento
Modo de direccionamiento Real.
Limite de un segment o dieccion final del segment se obtiene sumando la direccion inicial mas
0FFFh
01B70
0FFFF
=f
5
Unidad 2 2013
6
Unidad 2 2013
Los limites representan el tamaño máximo que puede tener cada segmento en el 80286 es de
64Kb
7
Unidad 2 2013
80386 Pentium IV
8
Unidad 2 2013
La parte del descriptor que indica la localidad de inicio del segmento es la dirección base el límite del
segmento contiene la última dirección de desplazamiento de un segmento el byte de derecho de
acceso define el funcionamiento del segmento del sistema; si el segmento es de datos, especifica el
sentido de crecimiento, si el segmento crece más allá de su limite el programa es interrumpido
indicando un error de protección general. Si el segmento es de código es controlado de manera
similar y su lectura puede ser inhibida (que no tienes acceso) para proteger el software.
Para el descriptor del 80386 y posteriores se manejan los bits (Av,D,G) los cuales se describen a
continuación:
El bit AB es usado por algunos sistemas operativos para indicar que el segmento está
disponible (AB = 1) o que no lo está (AB =0)
El. bit D indica la forma en que las instrucciones de los microprocesadores acceden a los
registros y a los datos de memoria tanto en modo real como en el modo protegido. Si D es
igual a 0 las instrucciones son de 16 bits compatibles con los microprocesadores 8086 y
80286. Si D es igual a 1 las instrucciones son de 32bits.
El bit G (granualidad) si G es igual a 0, el limite especifica un rango de segmento entre
00000h y 0FFFFFh si G es igual a 1 el valor del límite se multiplica por 4kb, entonces el rango
del segmento va desde 00000h y 0XXXh 0FFFh y 0XXXh
Nivel de privilegio 00
Tabla Globa 0
Numero de Descriptor 0000 0000 0000 1
9
Unidad 2 2013
2.3Ciclo de Instrucción
En la unidad 1 se describió el ciclo del procesador. Se recordara que un ciclo de instrucción incluye
los siguientes subciclos:
Ahora es el momento de conocer más acerca del ciclo de instrucción. En primer lugar se debe
introducir un nuevo sub ciclo, conocido como el ciclo indirecto el ciclo de instrucción completo se
muestra en la figura 2.3 Ciclo de instrucción.
Captura
Interrupcion Indirecto
Ejecucion
La principal línea de actividad consiste en alternar las actividades de captura y ejecución; después
que una instrucción es capturada, es examinada para determinar un direccionamiento indirecto. Si
es así, los operandos requeridos se capturan utilizando este direccionamiento.
La figura 2.4 es una versión revisada de la figura 1.3(estados de ciclo de instrucción) y muestra otra
forma de usar el proceso.
Esta nueva figura ilustra más correctamente la naturaleza del ciclo de la instrucción. Una vez que una
instrucción es capturada, debe identificarse sus campos operandos, entonces se captura de la
memoria cada operando de entrada y este proceso puede requerir el direccionamiento indirecto.
Los operandos ubicados en los registros no necesitan ser capturados, ya que una vez que se ejecuta
la operación puede ser necesario un proceso similar para almacenar el resultado en la memoria
principal.
La secuencia exacta de eventos que tiene lugar durante un ciclo de instrucción depende del diseño
del procesador. Se puede, no obstante, indicar en términos generales lo que deba de ocurrir.
Suponga que un procesador tiene un registro de dirección de memoria (mar), un registro intermedio
de memoria (mbr) un contador del programa (PC) y un registro de instrucción (IR).
Almacenamient
Captura de la
10
Instrucción
Calculo de operando o del operando
Unidad 2 2013
Durante el ciclo de captura se lee una instrucción de la memoria, la figura 2.5 muestra el flujo de
datos en este ciclo, PC almacena la dirección de la siguiente instrucción que hay que capturar. Esta
dirección se lleva al MAR y se coloca en el bus de direcciones. La unidad de control solicita una
lectura de memoria y el resultado se pone en el bus de datos. Se copia en MBR y después se lleva a
IR. Mientras tanto PC se incrementa como preparación para la siguiente captura.
PC MAR
Memoria
Unidad de
Control
IR MBR
Una vez concluido el ciclo de captura la unidad de control examina el contenido de IR para
determinar si contiene un campo de operando, que usa un direccionamiento indirecto. Si es así, se
lleva a cabo un ciclo indirecto para tal efecto se muestra la figura 2.6.
MAR
Memoria
Unidad
de
Control
MBR
Los n bits más a la derecha del MBR, almacenan la dirección de referencia, y se transfieren al MAR.
Entonces la unidad de control solicita una lectura de memoria para llevar la dirección del operando
al MBR. Los ciclos de captura indirecto son sencillos y predecibles; el ciclo de ejecución adopta
muchas formas, ya que depende de cuál de las diversas instrucciones maquina está en el IR. Este
ciclo puede implicar transferencia de datos entre registros, lecturas o escrituras de memoria o
dispositivos de E/S o de la utilización de la ALU.
11
Unidad 2 2013
PC MAR
Memoria
Unidad
de
Control
MBR
El contenido actual de PC tiene que ser guardado para que el procesador pueda reanudar su
actividad tras la interrupción. Así el contenido de PC se transfiere al MBR para ser escrito en la
memoria.
La dirección de memoria reservada para este propósito se almacena en MAR desde la unidad de
control. Como resultado el siguiente ciclo iniciara capturando la siguiente instrucción.
Segmentación de instrucciones
Como repaso de la información vista en la unidad 1 utilizaremos la figura 2.4 para aplicar el
concepto de la segmentación. En esta figura el ciclo de instrucción se divide hasta en 10 tareas que
tienen lugar secuencialmente; claramente puede pensarse en la utilización de la segmentación.
12
Unidad 2 2013
El cauce tiene dos etapas independientes, la primera etapa, captura una instrucción y la almacena en
un buffer; cuando la segunda etapa está libre, la primera etapa le pasa la instrucción almacenada y
mientras que la segunda etapa ejecuta la instrucción, la primera etapa utiliza algún ciclo de memoria
no usada para capturar y almacenar la siguiente instrucción. Esto se conoce como pre
búsqueda/prescripción o también se le conoce como solapamiento de la captura.
Debería de quedar claro que este proceso acelera la ejecución de las instrucciones y si las etapas de
captura y ejecución fueran de igual duración, el tiempo de ciclo de instrucción se reduce a la mitad.
Sin embargo si observamos atentamente el cauce de la figura 2.8.d, resulta que esta velocidad de
ejecución es poco probable por dos razones:
A pesar de que estos factores reducen la efectividad del cauce de dos etapas se produce cierta
aceleración. Para conseguir una mayor aceleración del cauce este debe tener más etapas; considere
la siguiente descomposición del procesamiento de una instrucción:
13
Unidad 2 2013
La figura 2.9 muestra que un cauce de 6 etapas puede reducir el tiempo de ejecución de 9
instrucciones de 54 unidades de tiempo a 14.
Tiempo
Es conveniente hacer ciertas observaciones:
1. El diagrama supone que cada instrucción recorre las 6 etapas del cauce, pero no siempre se
da el caso.
2. El diagrama supone que todas las etapas pueden trabajar en paralelo, pero las etapas FI,FO
y WO requieren un acceso a memoria. El diagrama implica que todos estos accesos pueden
tener lugar simultáneamente pero la mayoría de los sistemas de memoria no permiten el
acceso simultáneo.
También como se comentó anteriormente las etapas reales no tienen la misma duración y además
se presenta otra dificultad que es la instrucción de salto condicional. La figura 2.10 ilustra los efectos
del salto condicional, usando el mismo programa.
1 FI DI CO FO EI WO
2 FI DI CO FO EI WO
3 FI DI CO FO EI WO
4 FI DI CO FO
5 FI DI CO FO
6 FI DI CO
7 FI DI
8 FI DI CO FO EI WO
9 FI DI CO FO EI WO
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Tiempo
14
Unidad 2 2013
Se presenta que la instrucción 3 es un salto condicional a la instrucción 15, hasta que no se termine
la ejecución 3 no hay forma de saber que instrucción vuelve a continuación.
Para aclarar el funcionamiento del cauce, sería útil considerar una representación alternativa. La
figura 2.11 la misma secuencia de eventos que las figuras 2.9 y 2.10, pero representadas de forma
diferente. Figura2.10
Figura 2.9 FI DI CO FO EI WO
1 I1
FI DI CO FO EI WO 2 I2 I1
1 I1 3 I3 I2 I1
2 I2 I1 4 I4 I3 I2 I1
3 I3 I2 I1 5 I5 I4 I3 I2 I1
4 I4 I3 I2 I1 6 I6 I5 I4 I3 I2 I1
5 I5 I4 I3 I2 I1 7 I7 I6 I5 I4 I3 I2
6 I6 I5 I4 I3 I2 I1 8 I15
7 I7 I6 I5 I4 I3 I2 9 I16 I15
8 I8 I7 I6 I5 I4 I3 10 I16 I15
9 I9 I8 I7 I6 I5 I4 11 I16 I15
10 I9 I8 I7 I6 I5 12 I16 I15
11 I9 I8 I7 I6 13 I16 I15
12 I9 I8 I7 14 I16
13 I9 I8
14 I9
Etapas
Podría pensarse que cuanto mayor sea el número de etapas en el cauce, más rápida será la
velocidad de ejecución. Algunos diseñadores de la IBM S/360 observaron dos factores que frustran
este aparentemente sencillo patrón de diseño de alta prestaciones, y que se tiene que tomar en
cuanta al momento de diseñar:
La segmentación de instrucción es una poderosa técnica para aumentar las prestaciones pero
requiere un diseño cuidadoso si se desea obtener resultados óptimos con una complejidad
razonable.
15