ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Estructura y funcionamiento de la CPU

chemy1993Tutorial14 de Enero de 2015

5.605 Palabras (23 Páginas)711 Visitas

Página 1 de 23

II ESTRUCTURA Y FUNCIONAMIENTO DE LA CPU 2

2.1 Organización del procesador 2

2.2 Estructura de registros 5

2.2.1 Registros visibles para el usuario 5

2.2.2 Registros de control y de estados 9

2.2.3 Ejemplos de organización de registros de CPU reales 12

2.3 El ciclo de instrucción 14

2.3.1 Ciclo Fetch-Decode-Execute 16

2.3.2 Segmentación de instrucciones 16

2.3.3 Conjunto de instrucciones: Características y Funciones 16

2.3.4 Modos de direccionamiento y formatos 22

2.4 Casos de estudio de CPU reales 24

II ESTRUCTURA Y FUNCIONAMIENTO DE LA CPU

2.1 Organización del procesador

Los procesadores utilizan la segmentación de instrucciones para acelerar la ejecución.

La segmentación de cauce se puede dividir en ciclo de instrucción en varias etapas separadas que operan secuencialmente, tales como;

El procesador y el bus del sistema

Estructura interna del procesador

La Unidad Central de Procesos (CPU)

Un procesador, incluye tanto registros visibles por el usuario como registros de control/estado. Los registros visibles por el usuario pueden ser de uso general o tener una utilidad especial, mientras que los registros de control y estado se usan para controlar el funcionamiento del procesador, un claro ejemplo es el contador de programa.

 Captación de instrucción

 Decodificación de instrucción

 Cálculo de direcciones de operando

 Ejecución de instrucción

 Estructura del operando resultado

Captar instrucciones: el procesador lee una instrucción de memoria (registro, cache o memoria principal).

Interpretar instrucción: la instrucción se codifica para determinar qué acción es necesario.

Captar datos: la ejecución de una instrucción puede exigir leer datos de memoria o de un módulo de E/S.

Procesar datos: la ejecución de una instrucción puede exigir llevar a cabo alguna operación aritmética o lógica con los datos.

Escribir datos: los resultados de una ejecución pueden exigir escribir datos en la memoria o en el módulo de E/S.

Para hacer estas cosas, el procesador necesita almacenar instrucciones y datos temporalmente mientras una instrucción está ejecutándose, en otras palabras el procesador necesita una pequeña memoria interna.

En la anterior figura se muestra una visión simplificada de un procesador, que indica su conexión con el resto de sistema, a través del bus del sistema. La ALU lleva a cabo el verdadero cálculo o procesamiento de datos.

La unidad de control controla la transferencia de datos e instrucciones así a dentro y así afuera del procesador, y el funcionamiento de la ALU. Además la figura muestra una memoria interna mínima, que consta de un conjunto de posiciones de almacenamiento llamadas registros.

En esta figura se indican los caminos de transferencia de datos y de la lógica de control, que incluye un elemento con el rotulo bus interno del procesador. También se muestran los elementos básicos típicos de la ALU. Hay que observar la similitud entre la estructura interna del computador en su totalidad y la estructura interna del procesador. En ambos casos hay una pequeña colección de elementos principales (computador: procesador, E/S, memoria; procesador: unidad de control, ALU, registros) conectados por caminos de datos.

Se encarga de calcular y distribuir las tareas que se deben ejecutar. Entre sus funciones está la de hacer solicitudes a la memoria para obtener todos los datos necesarios para realizar su computación; también está la de hacer gestiones a la interfaz de entrada y salida para permitir la lectura de los caracteres del teclado, los clicks del ratón, mostrar las ventanas en el monitor, etc.

2.2 Estructura de registros

2.2.1 Registros visibles para el usuario

Un computador emplea una jerarquía de memoria. En los niveles más altos de la jerarquía, la memoria es más rápida, más pequeña y más cara (por bit). Dentro del procesador hay un conjunto de registros que funciona como un nivel de memoria por encima de la memoria principal y de la caché en la jerarquía.

Los registros del procesador son de dos tipos:

 Registros visibles por el usuario: permiten al programador de lenguaje máquina o de ensamblador minimizar las referencias a memoria principal por medio de la optimización del uso de registros.

 Registros de control y de estado: son utilizados por la unidad de control para controlar el funcionamiento del procesador y por programas privilegiados del sistema operativo para controlar la ejecución de programas.

No hay una separación bien definida de registros dentro de estas dos categorías. Por ejemplo, en algunas máquinas el contador de programa es visible por el usuario (por ejemplo, en el Pentium), pero en muchas no lo es. Para el objetivo de la siguiente discusión, no obstante, usaremos estas categorías.

Registros visibles por el usuario

Un registro visible por el usuario es aquél que puede ser referenciado por medio del lenguaje máquina que ejecuta el procesador. Podemos clasificarlos en las siguientes categorías:

 Uso general

 Datos

 Direcciones

 Códigos de condición

Los registros de uso general pueden ser asignados por el programador a diversas funciones. A veces, su uso dentro del repertorio de instrucciones es ortogonal a la operación. Es decir, cualquier registro de uso general puede contener el operando para cualquier código de operación. Esto proporciona una utilización de registros de uso general auténtico. Con frecuencia, sin embargo, existen restricciones.

Por ejemplo, puede haber registros específicos para operaciones en 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 registro o con desplazamiento).

En otros casos hay una separación parcial o total entre registros de datos y registros de direcciones.

Los registros de datos pueden usarse únicamente para contener datos y no se pueden emplear en el cálculo de la 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 de direccionamiento particular. Entre otros, se pueden citar los siguientes ejemplos:

• Punteros de segmento: en una máquina con direccionamiento segmentado un registro de segmento contiene la dirección de la base del segmento. Puede haber múltiples registros: por ejemplo uno para el sistema operativo y otro para el proceso actual.

• Registros índice: se usan para direccionamiento indexado y pueden ser autoindexados.

• Puntero de pila: si existe direccionamiento a pila visible por el usuario, normalmente hay un registro dedicado que apunta a la cabecera de ésta. Ello permite un direccionamiento implícito; es decir, apilar (push), desapilar (pop) y otras instrucciones de la pila no necesitan contener un operando explícito referente a ella.

Hay varias cuestiones de diseño a tratar en este punto. Un importante asunto es decidir si utilizar registros de uso completamente general o si especializar su uso. Con el uso de registros especializados, generalmente puede quedar implícito en el código de operación a qué tipo de registro se refiere un determinado campo de operando. El campo de operando solo tiene que identificar un registro de un conjunto de registros especializados en lugar de uno de entre todos los registros, lo cual ahorra bits. Por otra parte, esta especialización limita la flexibilidad del programador.

Otro problema de diseño es el número de registros, de uso general o de datos más direcciones, que tienen que incluirse. De nuevo, ello afecta al diseño del repertorio de instrucciones, ya que si hay más registros se necesitan más bits para el campo de operando. Como discutimos anteriormente, parece óptimo disponer de un número de registros entre 8 y 32 [LUND77]. Menos registros se traducen en más referencias a memoria; más registros no reducen significativamente las referencias a memoria (véase, por ejemplo [WILL90]). No obstante, existe una nueva aproximación, que saca partido al uso de cientos de registros, utilizada en algunos sistemas RISC y estudiada en el Capítulo 13.

Por último, está la cuestión del tamaño de los registros. Los registros que han de contener direcciones deben ser lo suficientemente grandes como para albergar la dirección mayor. Los registros de datos deben ser capaces de contener valores de la mayoría de tipos de datos. Algunas máquinas permiten que dos registros contiguos sean usados como uno solo para contener valores de tamaño doble.

Una última categoría de registros, que es al menos parcialmente visible por el usuario, contiene códigos de condición (también llamados indicadores o «flags» l. Los códigos de condición son bits fijados por el hardware del procesador como resultado de alguna operación. Por ejemplo, una operación aritmética puede producir un resultado positivo, negativo, nulo o con desbordamiento. Además de almacenarse el propio resultado en un registro o en la memoria, se obtiene también un código de condición.

El código puede ser examinado con posterioridad como parte de una operación de salto condicional.

Los

...

Descargar como (para miembros actualizados) txt (38 Kb)
Leer 22 páginas más »
Disponible sólo en Clubensayos.com