jueves, 3 de diciembre de 2009

6.4 COMUNICACION PROCESADOR EN EL RESTO DEL SISTEMA

En los microcomputadores, la comunicación entre la CPU y otros dispositivos como memorias y puertos se efectúa a través del bus del sistema. El bus de direcciones de un microcomputador se encuentra estrechamente relacionado con los decodificadores, ya que gracias a ellos es posible seleccionar los dispositivos internos del microcomputador y las posiciones de memoria para efectuar operaciones de lectura y escritura.

Esta no es la única aplicación de los decodificadores en los microcomputadores. Internamante dentro del a CPU también existe un decodificador, llamado el Instruction Decoder (Decodificador de Instrucciones) el cual funciona de forma conjunta con el Instruction Register (Registro de Instrucciones) de la CPU.

El procesador (en realidad una forma abreviada para el microprocesador y también a menudo llamada la CPU o unidad central de procesamiento) es el componente central de la PC. Es el cerebro que se ejecuta el programa en el interior de la PC. Todo el trabajo que usted hace en su computadora se realiza directa o indirectamente por el procesador. Obviamente, es uno de los más importantes componentes de la PC, si no la más importante. También es, científicamente, una de las más maravillosas partes de la PC, es uno de los más asombrosos dispositivos en el mundo de la tecnología.

El procesador juega un papel importante en los siguientes aspectos importantes de su sistema:

Características: El procesador es probablemente el más importante factor determinante del rendimiento del sistema en el PC. Mientras que otros componentes también juegan un papel clave en la determinación de rendimiento, el procesador tiene capacidad de dictar el máximo rendimiento de un sistema. Los otros dispositivos sólo permiten que el procesador alcanze su pleno potencial.

Soporte de Software: Entre más reciente, más rápidos son procesadores y permiten el uso del software más reciente. Además, los nuevos procesadores como el Pentium MMX con la Tecnología, permitirá la utilización de software especializado y no utilizables en las anteriores máquinas.

Confiabilidad y estabilidad: El procesador de calidad es un factor que determina la forma fiable confunsiona el sistema. Si bien la mayoría de los procesadores son muy fiables, otros no. Esto también depende en cierta medida de la edad del procesador y la cantidad de energía que consume.

Consumo de energía: Originalmente los procesadores consumen relativamente poca energía en comparación con otros dispositivos del sistema. Procesadores mas nuevos pueden consumir una gran cantidad de energia. El consumo de energía tiene un impacto en todo, desde el enfriamiento al método de selección general de la fiabilidad del sistema.

Placa madre de Apoyo: El procesador, de decidir el uso de su sistema será un factor importante en la determinación de qué tipo de chipset debe utilizar, y la placa base, por lo tanto, lo que usted compra. La placa madre, a su vez, exige muchos aspectos de sus capacidades del sistema y el rendimiento.

6.3 CODIFICADO DE UNA ISTRUCCION


UNIDAD DE DECODIFICACION Se encarga de decodificar la instrucción que se va a ejecutar. Es decir, saber qué instrucción es. Cuando el microprocesador lee de memoria una instrucción, el código de esa instrucción le llega a esta unidad. Esta unidad se encarga de interpretar ese código para averiguar el tipo de instrucción a realizar. Por ejemplo, instrucciones de suma, multiplicación, almacenamiento de datos en memoria,etc.

UNIDAD DE EJECUCION Una vez que la unidad de decodificación sabe cuál es el significado de la instrucción leída de memoria, se lo comunica a la unidad de ejecución. Esta unidad será la encargada de consumar la ejecución y para ello activará las señales necesarias y en un orden determinado. Es decir, es la encargada de dar las órdenes necesarias a las diversas partes del microprocesador para poder ejecutar cada una de las instrucciones.

UNIDAD ARITMETICO LOGICA (ALU) La ALU (Aritmethic Logic Unit) es el bloque funcional del microprocesador encargado de realizar todas aquellas operaciones matemáticas. Las operaciones que realiza son las siguientes: suma, resta, multiplicación, división y aquellas que trabajan con dígitos binarios (10 que se conoce como operaciones lógicas: ANO, NOR, NOT, NANO, OR, X-OR, etc). En suma, saber cómo funciona un microprocesador, implica conocer cómo se van ejecutando cada una de las instrucciones del programa que se almacena en memoria. Los pasos globales que se siguen a la hora de consumar una instrucción son:

UNIDAD DE CONTROL

Es el centro nervioso del ordenador, ya que desde ella se controlan y gobiernan todas las operaciones. Cómo funciones básicas tiene:

* tomar las instrucciones de memoria
* decodificar o interpretar las instrucciones
* ejecutar las instrucciones ( tratar las situaciones de tipo interno (inherentes a la propia CPU) y de tipo externo (inherentes a los periféricos)
Para realizar su función, la unidad de control consta de los siguientes elementos:

* Contador de programa
* Registro de instrucciones
* Decodificador
* Reloj
* Secuenciador
*

.Contador de programa. Contiene permanentemente la dirección de memoria de la siguiente instrucción a ejecutar. Al iniciar la ejecución de un programa toma la dirección de su primera instrucción. Incrementa su valor en uno, de forma automática, cada vez que se concluye una instrucción, salvo si la instrucción que se está ejecutando es de salto o de ruptura de secuencia, en cuyo caso el contador de programa tomará la dirección de la instrucción que se tenga que ejecutar a continuación; esta dirección está en la propia instrucción en curso.
.Registro de instrucción. Contiene la instrucción que se está ejecutando en cada momento. Esta instrucción llevará consigo el código de operación (un código que indica qué tipo de operación se va a realizar, por ejemplo una suma) y en su caso los operandos (datos sobre los que actúa la instrucción, por ejemplo los números a sumar) o las direcciones de memoria de estos operandos.

.Decodificador. Se encarga de extraer el código de operación de la instrucción en curso (que está en el registro de instrucción), lo analiza y emite las señales necesarias al resto de elementos para su ejecución a través del secuenciador .

.Reloj. Proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes (frecuencia constante), que marcan los instantes en que han de comenzar los distintos pasos de que consta cada instrucción.

.Secuenciador. En este dispositivo se generan órdenes muy elementales (microórdenes) que, sincronizadas por los impulsos de reloj, hacen que se vaya ejecutando poco a poco la instrucción que está cargada en el registro de instrucción.

UNIDAD ARITMÉTICO-LÓGICA (ALU)

Esta unidad se encarga de realizar las operaciones elementales de tipo aritmético (sumas, restas, productos, divisiones) y de tipo lógico (comparaciones). A través de un bus interno se comunica con la unidad de control la cual le envia los datos y le indica la operación a realizar .

La ALU está formada a su vez por los siguientes elementos:

* Circuito operacional
* Registros de entrada (REN)
* Registro acumulador
* Registro de estado (flags)
.Circuito operacional. Contiene los circuitos necesarios para la realización de las operaciones con los datos procedentes de los registros de entrada (REN). Este circuito tiene unas entradas de órdenes para seleccionar la clase de operación que debe realizar en cada momento (suma, resta, etc).

.Registros de entrada (REN). En ellos se almacenan los datos u operandos que intervienen en una instrucción antes de la realización de la operación por parte del circuito operacional. También se emplean para el almacenamiento de resultados intermedios o finales de las operaciones respectivas.

.Registro acumulador. Almacena los resultados de las operaciones llevadas a cabo por el circuito operacional. Está conectado con los registros de entrada para realimentación en el caso de operaciones encadenadas. Asimismo tiene una conexión directa al bus de datos para el envío de los resultados a la memoria central o a la unidad de control.
.Registro de estado (flags). Se trata de unos registros de memoria en los que se deja constancia algunas condiciones que se dieron en la última operación realizada y que habrán de ser tenidas en cuenta en operaciones posteriores. Por ejemplo, en el caso de hacer una resta, tiene que quedar constancia si el resultado fue cero, positivo o negativo.

Se conoce como set de instrucciones al conjunto de instrucciones que es capaz de entender y ejecutar un microprocesador.

En función del tipo de microprocesador, concretamente si es más avanzado o no, podrá entender y ejecutar más o menos instrucciones.

Las instrucciones se clasifican según su función en:

* Instrucciones de transferencia de datos
* Instrucciones de cálculo
* Instrucciones de transferencia del control del programa
* Instrucciones de control
.Instrucciones de transferencia de datos. Estas instrucciones mueven datos (que se consideran elementos de entrada/salida) desde la memoria hacia los registros internos del microprocesador, y viceversa. También se usan para pasar datos de un registro a otro del microprocesador. Existen algunas instrucciones que permiten mover no sólo un dato, sino un conjunto de hasta 64 K Bytes? con una sola instrucción.

.Instrucciones de cálculo. Son instrucciones destinadas a ejecutar ciertas operaciones aritméticas, como por ejemplo sumar, restar, multiplicar o dividir, o ciertas operaciones lógicas, como por ejemplo ANO, OR, así como desplazamiento y rotación de bits.

.Instrucciones de transferencia del control del programa. Permiten romper la secuencia lineal del programa y saltar a otro punto del mismo. Pueden equivaler a la instrucción GOTO que traen muchos lenguajes de programación.

.Instrucciones de control. Son instrucciones especiales o de control que actúan sobre el propio microprocesador. Permiten acceder a diversas funciones, como por ejemplo activar o desactivar las interrupciones, pasar órdenes al coprocesador matemático, detener la actividad del microprocesador hasta que se produzca una interrupción, etc.

Prácticamente todas las instrucciones están formadas por dos elementos:

* código de operación que indica el tipo de operación se va a realizar
* operandos, que son los datos sobre los que actúa.
Por ejemplo, una instrucción que sume dos números está formado por:

* código de operación que indique “sumar”
* primer número a sumar
* segundo número a sumar
Existen instrucciones que sólo tienen un operando o incluso que no tienen ninguno, estando formadas solamente por el código de operación.

EJECUCIÓN DE LAS INSTRUCCIONES

Para que un programa pueda ser ejecutado por un ordenador, ha de estar almacenado en la memoria central (memoria RAM). El microprocesador tomará una a una las instrucciones que lo componen e irá realizando las tareas correspondientes.

Se denomina ciclo de instrucción al conjunto de acciones que se llevan a cabo en la realización de una instrucción.

Se compone de dos fases:

* Fase de búsqueda
* Fase de ejecución
.Fase de búsqueda. En esta fase se transfiere la instrucción que se va a ejecutar desde la memoria central a la unidad de control.

.Fase de ejecución. Consiste en la realización de todas las acciones que conlleva la propia instrucción.

Una forma de clasificar los microprocesadores es en función de las instrucciones que son capaces de ejecutar. Podemos encontrar dos tipos: microprocesadores: con tecnología CISC y RISC.

CISC Complex Instructions Set Computer, Ordenador con un conjunto de instrucciones complejo.

RISC Reduced Instructions Set Computer, Ordenador con un conjunto de instrucciones reducido

6.2 CICLO DE EJECUCION DE UNA INSTRUCCION


Los pasos a seguir para el procesamiento de las instrucciones son los siguientes:

1. cada instrucción es leída ( una a la vez), desde la memoria, por el procesador y,

2. cada instrucción es ejecutada por el procesador. La repetición de la lectura y ejecución ( pasos 1 y 2 respectivamente), conforman la “ejecución de un programa”. Dicha ejecución puede detenerse si: la máquina se apaga, ocurre un error que no puede ser recuperado, o si, se encuentra una instrucción en el programa que detenga la computadora.

Ciclo de instrucción: es el procesamiento requerido para la instrucción. En este Ciclo, se encuentran los dos pasos citados anteriormente, denominados Ciclo de lectura (feth) y Ciclo de ejecución.

Lectura y ejecución de instrucciones

El procesador lee una instrucción de la memoria, al comienzo de cada Ciclo de instrucción. Se cuenta con un contador de programas ( PC program counter ), que lleva la cuenta de cual es la próxima instrucción a leer. Luego de leer cada instrucción el procesador incrementara el PC, de manera tal que la siguiente instrucción a leer será; la que se encuentra en la dirección inmediatamente superior de la memoria. La instrucción leída es cargada en el registro de instrucción ( IR instuction register ), que es un registro del procesador. El procesador interpreta la instrucción, la cual está en forma de código binario, que especifica la acción que el procesador llevará a cabo, y realizará la acción requerida.

Las acciones que se realizan para la lectura y ejecución de instrucciones se pueden clasificar en las siguientes categorías:

· Procesador-memoria: los datos se transfieren del procesador a la memoria o viceversa.

· Procesador E/S: los datos se transfieren desde o hacia un dispositivo periférico. Se realiza la transferencia entre el procesador y un módulo de entrada-salida.

· Tratamiento de datos: el procesador puede realizar alguna operación aritmética o lógica sobre los datos.

· Control: la secuencia de ejecución puede ser alterada si la instrucción lo especifica.

La ejecución de una instrucción puede incluir una combinación de las acciones antes mencionadas.

Funciones de E/S

Los módulos de E/S, por ejemplo un controlador de disco, peden intercambiar datos directamente con el procesador y el este puede iniciar una escritura o lectura en la memoria, para ello debe indicar la dirección de una ubicación especifica.

El procesador puede leer datos de un módulo de E/S o escribir en él, para ello indica a un dispositivo especifico que esta controlado por un determinado módulo de E/S.

Para relevar al procesador de la tarea de E/S, es conveniente que los intercambios de E/S se produzcan directamente con la memoria. De esta manera el procesador le da a un módulo de E/S autoridad para leer o escribir en la memoria de modo que la transferencia de E/S se realiza sin obstruir al procesador.

Se releva al procesador durante la transferencia de la responsabilidad de intercambio, ya que el modulo de E/S emite ordenes de lectura o escritura en la memoria. La operación realizada se conoce como DMA (direct memory access) o acceso directo a memoria.

INTERRUPCIONES

La interrupción es básicamente un suceso que altera la secuencia de ejecución de las instrucciones.

Existen varios tipos de interrupciones de los cuales los más comunes son los siguientes:

1) De programa o de verificación de programa: son ocasionadas por condiciones que se producen como resultado de la ejecución de una instrucción. Ejemplo: - la división por cero - el intento de ejecutar una instrucción privilegiada.

2) De reloj: son producidas por un reloj interno del procesador. Para que de esa forma se realicen funciones con una cierta regularidad.

3) De Entrada / Salida: son generadas por un controlador de E/S para indicar la finalización de una operación; o e cambio de estado de un dispositivo o canal; o también alguna condición de error.

4) Por fallo del Hardware o de verificación de máquina: son causadas por el mal funcionamiento del equipo, cortes de energía, etc. Con el uso de las interrupciones el procesador se puede utilizar de una manera más eficaz.

Las interrupciones y el ciclo de instrucción

Utilizando interrupciones el procesador puede ejecutar instrucciones mientras una operación de E/S está en proceso. Siguiendo esta idea se concluye que la operación de E/S y un programa usuario son ejecutados concurrentemente.

Desde la postura del programa de usuario, una interrupción no es más que la alteración de la secuencia normal de ejecución. Cuando el tratamiento de la interrupción termina, la ejecución continua. Para tratar a las interrupciones, se agrega un ciclo de interrupción al ciclo de instrucción.

En el ciclo de interrupción, el procesador verifica si ha ocurrido alguna interrupción, indicado por la presencia de una señal de interrupción. Si no hay interrupciones pendientes, el procesador continúa con el ciclo de lectura y trae la próxima instrucción del programa en curso. Si hay una interrupción pendiente, el procesador suspende la ejecución del programa en curso y ejecuta una rutina de tratamiento de la interrupción.

RODRIGUEZ LOPEZ J. JESUS | | | | | v v v v v

-CICLO DE INSTRUCCION-

Un ciclo de instrucción (tambien llamado ciclo de traer y ejecutar) es el período de tiempo durante el cual un ordenador lee y procesa una instrucción de lenguaje máquina de su memoria o la secuencia de acciones que la unidad central (CPU) funciona para ejecutar cada instrucción de código de máquina en un programa.

El nombre el ciclo traer-y-ejecutar comúnmente es usado.La instrucción debe ser traída de la memoria principal, y luego ejecutado por la CPU.Esto es fundamentalmente como un ordenador funciona, con su lectura de CPU y ejecución de una serie de instrucciones escritas en su lenguaje máquina.De esto surgen todas las funciones de un ordenador familiar a partir del final del usuario.

Ciclo de Instruccion:

La CPU de cada ordenador puede tener ciclos diferentes basados en juegos de instrucción diferentes.

Traer la instruccion desde la memoria principal:

La CPU presenta el valor de la PC sobre el bus de dirección.La CPU entonces trae la instrucción de la memoria principal vía el bus de datos en el Registro de Datos de Memoria (MDR).El valor del MDR entonces es colocado en el Registro de Instrucción Actual un circuito que sostiene la instrucción de modo que pueda ser descifrado y ejecutado.

Decodificar la instrucion:

El decodificador de instrucción interpreta y pone en práctica la instrucción.

Registros que son críticos al ciclo ejecutar traída:

El registro de instrucción (IR) - mantiene la instrucción actual. La PC - sostiene la dirección en la memoria de la siguiente instrucción a ser ejecutada.

Traer archivos desde la memoria principal:

Lea la dirección eficaz de la memoria principal si la instrucción tiene una dirección indirecta. Traer requiere datos de la memoria principal para ser procesada y colocado en registros.

EJECUTAR LA INSTRUCCION:

Del registro de instrucción, los datos que forman la instrucción son descifrados por la unidad de control.Esto entonces pasa la información descifrada como una secuencia de señales de control a las unidades de función relevantes de la CPU para realizar las acciones requeridas por la instrucción como la lectura de valores de registros,pasandolos a la unidad Aritmética lógica (ALU) para añadirlos juntos y escribiendo el resultado de vuelta al registro.Una señal de condición es enviada de regreso a la unidad de control por ALU si está implicado.

Almacenar Resultados:

El resultado generado por la operación es almacenado en la memoria principal, o enviado a un dispositivo de salida. Basado en la regeneración de condición del ALU, la PC es incrementada para dirigir la siguiente instrucción o para actualizar a diferentes direcciones de donde sera traida la siguiente intruccion. El ciclo entonces es repetido.

-CICLO DE EJECUCION-

Los pasos 3 y 4 dle ciclo de intruccion son parte del ciclo de ejecucion. Esos pasos cambiaran con cada instruccion.

El primer paso del ciclo de ejecucion es proceso de memoria. La informacion es tranferida entre el CPU y el modulo I/O. Después es el Proceso de datos usa operaciones matemáticas así como operaciones lógicas en la referencia a datos.Alteraciones centrales son el siguiente paso, son una secuencia de operaciones, por ejemplo un salto la operación. El último paso es una operación combinada de todos los otros pasos

6.1 FUNCION DE UNIDAD DE CONTROL DIRANTE LA EJECUCION

EJECUCIÓN DE UNA INSTRUCCIÓN

Ahora se intentará conjuntar la secuencia de operaciones elementales necesarias para ejecutar una instrucción. Considérese la instrucción “Sumar el contenido de la localización NUM de la memoria al registro R1″. Para simplificar las cosas, la dirección NUM se da en forma explícita en el campo de dirección de la instrucción. Entonces, la localización NUM se especifica en el modo directo de memoria. La ejecución de esta instrucción requiere de las siguientes acciones.

1.Traer la instrucción

2.Traer el primer operando (el contenido de la localización de la memoria a la que señala el campo de dirección de la instrucción).

3.Realizar la adición

4.Cargar el resultado en RI.

PASO

1 .- PC salida, MAR entrada, Leer, Borrar Y, Fijar el acarreo de la ALU, Suma, Zentrada

2.- Z salida, PC entrada, Espera a MFC

3.- MDR salida, IR salida

4.- Campo de dirección de IR salida, MAR entrada, Leer

5.- R1salida, Yentrada, Espera a MFC

6.- MDR salida, Suma, Z entrada

7.- Z salida, R1 entrada

8.- Fin

6 FUNCION DE UNIDAD DE CINTROL


Introducción a la unidad de control

La unidad de control el elemento que se encarga de sincronizar las acciones que realiza cada una de las unidades funcionales de un computador. Las funciones de la unidad de control son básicamente dos.

Interpretación de las instrucciones: La unidad de control debe ser capaz de decodificar los códigos de operación y los modos de direccionamiento de las instrucciones y actuar de forma diferente para cada uno de ellos.

Secuenciamiento de las operaciones: La unidad de control se encarga de la temporización de las distintas operaciones necesarias para la ejecución de cada instrucción. También debe controlar el secuenciamiento de las instrucciones en función de la evolución del registro contador de programa.

Se llaman señales de control a las variables binarias que controlan las entradas y salidas de información de los registros y el funcionamiento de las unidades funcionales.

La ejecución de una instrucción se divide en varias etapas que deben realizarse según una secuencia muy precisa de señales de control que establece la señal de control. Hay dos formas básicas para implementar la unidad de control:

- Unidad de control cableada: Realiza sus funciones mediante elementos hardware. No la analizaremos en profundidad aquí.

-Unidad de control microprogramada: Es mas lenta que la anterior, pero permite implementar instrucciones mas potentes y flexibles. Será analizada en profundidad en los siguientes apartados.