Unidad 2 Estructura y funcionamiento de la CPU copy

20
Unidad 2 2013 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 Unidad 2 Estructura y funcionamiento de la CPU Organización del procesador Para comprender la organización del procesador, se debe considerar los siguientes requisitos: 1. Capturar la instrucción. El procesador lee una instrucción (Registro, cache o memoria principal). 2. Interpretar instrucciones. La instrucción se decodifica para determinar qué acción es necesaria. 3. Captura de Datos. La ejecución de una instrucción puede requerir la lectura de datos de la memoria o de un módulo de E/S. 4. Procesar Datos. La ejecución de una instrucción puede requerir llevar a cabo alguna operación aritmética o lógica con los datos. 5. Escribir Datos. El resultado de la ejecución puede requerir escribir datos en la memoria o en algún módulo de E/S. 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

Transcript of Unidad 2 Estructura y funcionamiento de la CPU copy

Unidad 2 2013

ContenidoUnidad 2 Estructura y funcionamiento de la CPU.....................1Organización del procesador......................................1

Registros de uso General.......................................2Registros de Segmentación......................................4

Modos de direccionamiento......................................52.3Ciclo de Instrucción.........................................10

Segmentación de instrucciones...................................12

Unidad 2 Estructura y funcionamiento de la CPU

Organización del procesadorPara comprender la organización del procesador, se debe considerar los siguientes requisitos:

1. Capturar la instrucción. El procesador lee una instrucción (Registro,cache o memoria principal).

2. Interpretar instrucciones. La instrucción se decodifica para determinar qué acción es necesaria.

3. Captura de Datos. La ejecución de una instrucción puede requerir la lectura de datos de la memoria o de un módulo de E/S.

4. Procesar Datos. La ejecución de una instrucción puede requerir llevar a cabo alguna operación aritmética o lógica con los datos.

5. Escribir Datos. El resultado de la ejecución puede requerir escribir datos en la memoria o en algún módulo de E/S.

Para hacer estas cosas es obvio que el procesador necesita almacenardatos 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ásdetallada 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.

Los registros visibles por el usuario se clasifican en las siguientes categorías:

Uso general Datos Direcciones Códigos de condición

Registros de uso GeneralLos registros de uso general pueden ser asignados por el programadora diversas funciones. Dependiendo de la arquitectura del procesador,su uso depende del repertorio de instrucciones del mismo.

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,

2

Unidad 2 2013

existen restricciones, por ejemplo registros específicos se utilizanpara operaciones con “coma flotante “y para operaciones con la pila.

En algunos casos los registros de uso general pueden utilizarse parafunciones 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 únicamente para contener datos y no se pueden emplear en el cálculode una dirección de un operando. Los registros de dirección pueden ser de uso más o menos general o pueden estar dedicados a un modo dedireccionamiento particular.

En otras se pueden citar los siguientes ejemplos:

Apuntadores de segmento. En una maquina con direccionamiento segmentado un registro de segmento almacena la dirección base del segmento.

Registros Índices. Se utilizan para el direccionamiento indexar. Apuntador de Pila. Si existe el direccionamiento a pila visible

por el usuario, normalmente hayan registro dedicado que apuntaa la dirección de esta.

La última categoría de registros que es al menos parcialmente visible por el usuario contiene los códigos de condición, tambiénllamados 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

A Continuación se describirá en detalle los registros de cada grupo.

1. Registro Acumulador. Este registro se utiliza para instrucciones tales como la multiplicación, división y algunas de las instrucciones de ajuste. (instrucciones de ajuste es el ajuste ASCII). En los microprocesadores 80386 yposteriores este registro puede almacenar también la dirección de desplazamiento de una posición de la memoria.(El de 64 es con RAX)

2. Registro Base. Algunas veces el registro base guarda la dirección de desplazamiento de una posición en el sistema dememoria para todas las versiones de los microprocesadores.

3. Contador. Este registro almacena la cuenta de varias instrucciones. En el 80386 y superiores el registro contadorpuede guardar la dirección de desplazamiento de datos de la memoria.

4. Datos. Pueden ser representados como (CX DX16 bits) (EDX32bits) (RDX64 bits) (DH DL 8bits). Este registro guarda una parte del resultado de una multiplicación o parte del

4

Unidad 2 2013

dividendo antes de una división. En el 80386 y superiores este registro puede direccionar datos de la memoria.AX y DX

Ejemplomov ax, 0432hmov bx, 1567hmul bx

mul sirve para multiplicarPor omisión multiplica lo que está en AX por lo que le pasas de parámetroa mulLa parte baja del resultado se va guardar en AX (Acumulador) y la parte alta en DX. Se necesita DX y AX porque el resultado es de 32 bitsLo de adentro puede ser DX DL o EDX. Un numero Hexadecimal es almacenado en 4 bits!! En Binario es por eso que si tienes un numero de 8 dígitos Hexadecimales va ser de 32 porel hecho de que cada digito son 4 bits.

Ejemplo cuando no es de 32bits y es menor <= 16 Resultado de una mul (multiplicación)0ABCDh0AB Se guarda en AH (Acumulador High)CD Se guarda en AL (Acumulador Low)

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 dedestino 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 dememoria llamada pila (stack) SP16 ESP32 RSP64

Registros de Segmentación1. 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) definela 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.

5

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 modoprotegido 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 direccionamientoModo de direccionamiento Real.

CS 0400h * 01h = 04000h

DS 0A14h * 01h = 00A14h

ES 1B70h * 01h = 01B70h

SS 4CDEh * 01h = 04CDEh

Limite de un segment o dieccion final del segment se obtiene sumandola direccion inicial mas 0FFFh

01B700FFFF=f

6

Unidad 2 2013

Llenar la tabla siguiente dcon los datos dados

Registro de Segmentación

Tamaño de segmento (convertir a Hex)

Dirección Base x 10h

Dirección Final

CS:1357h 256 13570h 13670hDS:A268h 1024 0A268h 0A2A80hES:49B0h 512 49B00h 49D00hSS:0CDEFh 16 0CDEF0h 0CDF00h

Modo de direccionamiento protegido

7

Unidad 2 2013

Microprocesador 8088/8086 8bits de datos y 20 bits de direcciones

Microprocesador 8028616 bits de datos y 24 bits de direcciones

Microprocesador 8038632 bits de direcciones

8

Unidad 2 2013

Los limites representan el tamaño máximo que puede tener cada segmento en el 80286 es de 64Kb

Capacidad de memoria 2^24 = 16MB

Tamaño 2^16 = 64Kb

9

Unidad 2 2013

80386 Pentium IV

Capacidad de memoria 2^32 = 4GB

Tamaño de segmento 2^20 1MB

10

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 derechode 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 losmicroprocesadores 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 esigual a 1 el valor del límite se multiplica por 4kb, entonces el rango del segmento va desde 00000h y 0XXXh 0FFFh y 0XXXh

Suponga que en el registro de segmentación de datos tiene un 8 decimal, encuentre la dirección de inicio y fin de este segmento. (80286)

DS 8 (16bits) 0008h (pasar a bits) 0000 0000 0000 1000

Nivel de privilegio 00Tabla Globa 0Numero de Descriptor 0000 0000 0000 1

11

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:

Captura: Llevar la siguiente instrucción de la memoria al microprocesador.

Ejecución: Interpretar el código de operación y llevar a cabo la operación indicada.

Interrupción: Si las interrupciones están habilitadas y ha ocurrido una interrupción, almacenar el estado del proceso actual y atender la interrupción.

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 comoel ciclo indirecto el ciclo de instrucción completo se muestra en lafigura 2.3 Ciclo de instrucción.

12

Unidad 2 2013

La principal línea de actividad consiste en alternar las actividadesde captura y ejecución; después que una instrucción es capturada, esexaminada 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).

Durante el ciclo de captura se lee una instrucción de la memoria, lafigura 2.5 muestra el flujo de datos en este ciclo, PC almacena la

13

CapturaIndirectoEjecucionInterrupcion

Captura de laInstrucción

Calculo dela dirección

de la

Calculo de

Decodificación de laoperación

Calculo dela

dirección

Operación dedatos

Calculo dela

direccióndel

Almacenamiento del

Unidad 2 2013

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.

Figura 2.5

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 unciclo indirecto para tal efecto se muestra la figura 2.6.

Figura 2.5

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.

14

PC MAR

Unidadde

MBR

Memoria

IR

Procesador Bus DeDir Bus de datos Bus de Control

MAR

Unidad deContr

MBR

Memoria

Procesador Bus DeDir Bus de datos Bus de Control

Unidad 2 2013

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.

El signo de interrupción se muestras en la figura 2.7.

Figura 2.7 Flujo de Datos Ciclo de Interrupción

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 cicloiniciara capturando la siguiente instrucción.

Segmentación de instruccionesComo 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.

Consideremos la subdivisión del procesamiento de una instrucción en dos etapas: captura y ejecución. Existen periodos en la ejecución de unainstrucción en los que no se accede a la memoria principal; este tiempo podría utilizarse en capturar la siguiente instrucción en paralelo con la ejecución de la actual. La figura 2.8.a representa este planteamiento.

15

MAR

Unidad deContr

MBR

MemoriaPC

Procesador Bus DeDir Bus de datos Bus de Control

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 lacaptura.

Debería de quedar claro que este proceso acelera la ejecución de lasinstrucciones y si las etapas de captura y ejecución fueran de igualduració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:

16

Captura Ejecución

Instrucción Instrucción Resultado

(a) Visión Simplificada

Unidad 2 2013

1. El tiempo de ejecución es generalmente más largo que el tiempode captura ya que la ejecución implica la lectura y almacenamiento de operandos y la realización de una operación.

2. En una instrucción de salto condicional la dirección de la siguiente instrucción a capturar es desconocida, por tanto, laetapa de captura debe esperar hasta que reciba la dirección dela siguiente instrucción desde la etapa de ejecución.

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:

1. Capturar instrucción (FI). 2. Decodificar instrucción (DI).3. Calcular operandos (CO).4. Capturar operandos (FO)5. Ejecutar instrucción (EI)6. Escribir operando (WO)

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.

Figura 2.9 Diagrama de tiempo del funcionamiento del cauce segmento.

1 FI DI CO FO EI WO2 FI DI CO FO EI WO3 FI DI CO FO EI WO4 FI DI CO FO EI WO5 FI DI CO FO EI WO6 FI DI CO FO EI WO7 FI DI CO FO EI WO8 FI DI CO FO EI WO9 FI DI CO FO EI WO

1 2 3 4 5 6 7 8 9 10 11 12 13 14

TiempoEs 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

17

Instruccion

Unidad 2 2013

memoria. El diagrama implica que todos estos accesos pueden tener lugar simultáneamente pero la mayoría de los sistemas dememoria no permiten el acceso simultáneo.

También como se comentó anteriormente las etapas reales no tienen lamisma 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.

Figura 2.10 Efecto de un salto condicional

1 FI DI CO FO EI WO2 FI DI CO FO EI WO3 FI DI CO FO EI WO4 FI DI CO FO5 FI DI CO FO6 FI DI CO7 FI DI8 FI DI CO FO EI WO9 FI DI CO FO EI WO

1 2 3 4 5 6 7 8 9 10 11 12 13 14Se 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.

El cauce en este ejemplo simplemente carga la siguiente instrucción (instrucción 4) y el proceso continua hasta el tiempo 7 momento en el cual el cauce debe limpiarse de las instrucciones que no son utilies. Durante el tiempo 8 la instrucción 15 entra en el cauce dando como resultado que ninguna instrucción termina durante sus unidades de tiempo (desde la 9 hasta la 12) y esto es una penalización por no haber podido prever el salto.

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

I

18

Instruccio

Tiempo

FI DI CO FO EI WO1 I12 I2 I13 I3 I2 I14 I4 I3 I2 I15 I5 I4 I3 I2 I16 I6 I5 I4 I3 I2 I17 I7 I6 I5 I4 I3 I28 I1

59 I1

6I15

Unidad 2 2013

1 12 I

2I1

3 I3

I2

I1

4 I4

I3

I2 I1

5 I5

I4

I3 I2

I1

6 I6

I5

I4 I3

I2

I1

7 I7

I6

I5 I4

I3

I2

8 I8

I7

I6 I5

I4

I3

9 I9

I8

I7 I6

I5

I4

10

I9

I8 I7

I6

I5

11

I9 I8

I7

I6

12

I9

I8

I7

13

I9

I8

14

I9

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, yque se tiene que tomar en cuanta al momento de diseñar:

1. La cantidad de lógica de control necesaria para manejar dependencias de memoria y de registros aumenta enormemente conel número de etapas, esto puede llegar a una situación donde la lógica para controlar el paso entre etapas sea más complejaque las propias etapas.

2. En cada etapa del cauce existe algún gasto extra debido a la transferencia de datos de buffer a buffer y a la realización

19

Etapas

FI DI CO FO EI WO1 I12 I2 I13 I3 I2 I14 I4 I3 I2 I15 I5 I4 I3 I2 I16 I6 I5 I4 I3 I2 I17 I7 I6 I5 I4 I3 I28 I1

59 I1

6I15

Unidad 2 2013

de varias funciones. Este gasto adicional puede prolongar sensiblemente el tiempo de ejecución total de una instrucción.

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.

20