sábado, 6 de octubre de 2012

Unidad Central de Procesamiento (Cesar)


La CPU (Unidad Central de Procesamiento) es la parte más importante de cualquier sistema basado en microprocesadores. Debe generar señales de control y ejecutar el programa del usuario, para esto realiza dos sub-tareas o fases:
·         Fase de búsqueda (fetch).- Se realiza el acceso a la memoria para leer la instrucción a ejecutar
·         Fase de ejecución.- Se realiza la activación de los recursos necesarios para llevar a cabo la instrucción interpretada.
Para realizar todas estas tareas la CPU esta interconectada con su entorno mediante 1 o más buses internos. Las CPUs más conocidas que solo tienen un bus son: 8085, 8086, 68000,etc. En los CPUs que usan más de un bus tenemos a los DSP, PIC, 8051, etc.


Fig1. CPU con un solo bus

Fuente: Sanchis E. (2002), Sistemas electrónicos digitales: fundamentos y diseño de aplicaciones, Valencia: España, Editorial Maite Simon


Fig.2 CPU con dos buses

Fuente: Sanchis E. (2002), Sistemas electrónicos digitales: fundamentos y diseño de aplicaciones, Valencia: España, Editorial Maite Simon

Buses.- Los buses son cualquier conexión para transferir señales eléctricas, permitiendo una comunicación entre dos o más componentes.
Los buses se clasifican en:
1.       Bus de datos.- Son líneas de comunicación por donde circulan los datos internos y externos del microprocesador. Este bus es bidireccional, de escritura cuando el flujo de datos es desde la unidad de control hacia las demás unidades de operación y es de lectura cuando el flujo va de las unidades de operación a la unidad de control. La conexión de este bus se lo realiza por medio de puertas tri-estado.
Según la cantidad de buses de datos que se tengan se puede determinar la arquitectura de la computadora:
Arquitectura Von Neumann.- Solo tiene un bus de datos por donde circulan los datos y las instrucciones
Arquitectura Harvard.- Tiene 2 buses de datos, uno para datos y el otro para instrucciones
2.       Bus de direcciones.- Líneas de comunicación por donde viajan las direcciones específicas de memoria del dato o dispositivo del que se hace referencia. Este bus es unidireccional desde el microprocesador a las demás unidades, el código binario de la dirección es enviado ya sea a la RAM o a la ROM para leer la información de dicha dirección. Las líneas disponible del bus de direcciones determinan el tamaño máximo de memoria que puede ser acomodado en el sistema, para n líneas el bus puede especificar 2n palabras de memoria.
3.       Bus de control.- Líneas de comunicación por donde se controla el intercambio de información entre la unidad central y los periféricos mediante señales de control enviados por la unidad de control. Estas señales son de lectura o escritura en la RAM, habilitación de interrupciones, etc.
4.       Bus de expansión.- Este bus es el encargado de llevar el bus de datos, direcciones y control a las tarjetas de interfaz de E/S.


Fig. 3 Los diferentes tipos de buses


Unidad Aritmética Lógica (ALU).- Es la encargada de realizar las operaciones aritméticas básicas (suma, resta, multiplicación y división) las operaciones lógicas (Comparaciones, conjunciones, disyunciones y negaciones).
Los procedimientos de la ALU pueden ser en serie o en paralelo, siendo el procedimiento en serie más barato y el paralelo más rápido. La mayoría de los procesadores usan el procedimiento en paralelo.
La ALU usa registros (memorias de almacenamiento provisional) para su funcionamiento. Los registros que usa la ALU varían según el tipo de procesador. Los registros más importantes son: Registros de entrada de propósito general (almacena temporalmente los datos con los que trabaja el microprocesador en un determinado momento), registros de salida o acumuladores (registro temporal donde se cargan datos y códigos de operación que deberá ejecutar el microprocesador).
En la actualidad la ALU se auxilia de manera interna con un coprocesador matemático, diseñado especialmente para operaciones con punto flotante y realiza los cálculos solicitados a mayor velocidad.


Fig. 4 ALU con su registro acumulador



Unidad de control (UC).- Es la parte del microprocesador que se encarga de interpretar las instrucciones para luego ejecutarlas. Esta unidad recibe los datos secuencialmente desde la memoria por medio del bus de datos.
Sus funciones básicas son:
1.       Leer e interpretar las instrucciones de los programas
2.       Dirigir la operación de los componentes internos del procesador
3.       Controlar el flujo de entrada y salida de programas y en la memoria RAM
4.       Dirigir señales de control entre la CPU y los dispositivos de E/S
Algunos componentes internos de la UC son: los registros de propósito general, registro de instrucciones, la lógica de control y temporización, el contador de programa, registro de estado, registros intermedios y el acumulador

Fig. 5 Unidad de control y su posición dentro del procesador


Señales de control.- Son usadas para que el microprocesador realice las operaciones adecuadamente. En la siguiente figura se muestran las señales de control mas comunes.



Fig 6. Señales de control en un microprocesador

Fuente:  Mano M. (1985), Lógica digital y diseño de computadores, Juárez: México, Editorial Prentice Hall Inc.

Excepciones.- Algunas veces se necesita la comprobación de los resultados de operaciones ya sea por el usuario o por el sistema operativo. Este último al detectar algo anormal, realiza la interrupción del proceso en curso para estudiar el problema.
Al tratarse de situaciones excepcionales y no ser normales se los conoce como excepciones. Los sistemas operativos actuales para estos casos proporcionan un gestor de excepciones que permiten atender estas interrupciones al momento de su aparición. Los eventos que se atienden con este gestor son:
·         Fallos de Hardware y Software que afecten al proceso (ejemplo: división por cero)
·         Eventos anómalos (ejemplo: desbordamiento de una variable de coma flotante)
·         Datos de entrada incorrectos ingresados por el usuario del programa
Se establecen tres categorías de errores de acuerdo a la gravedad de estos:
1.       Catastróficos.- El sistema es incapaz de recuperarse imposibilitando el funcionamiento del sistema
2.       No recuperables.- Hacen que un proceso no termine su ejecución
3.       Recuperables.- Con ciertos ajustes se puede retomar la ejecución del proceso

 Instrucciones.- Todas las instrucciones tienen dos tiempos fundamentales: búsqueda (fetch) y ejecución (execute).
El inicio de una nueva instrucción se da por la búsqueda, el contador de programa se envía por el bus de direcciones para su ejecución, al terminar esta el contador de programa se incrementa.
CPU IRQ.- IRQ en inglés Interrupt Request, petición de interrupción. Las computadoras usan estas interrupciones para administrar varios periféricos y sus peticiones, periféricos como ser, tarjetas de sonido, módems, teclado, etc. Cuando un periférico necesita realizar una determinada acción, manda un IRQ (petición de interrupción) a la CPU, haciendo que se pause el proceso que se estaba realizando para dar lugar a que se ejecute la acción del periférico.
DMA.- Acceso directo a memoria (Direct Memory Access), permite la transferencia de información de un periférico externo a la memoria, sin que intervengan ni la CPU ni el programa. Esto se lo realiza cuando la transferencia es muy frecuente, o cuando el programa no puede realizar una transferencia a la velocidad solicitada por el periférico.
Antes de realizar este tipo de transferencia se debe tener en cuenta 2 aspectos:
·         El microprocesador se prive de las líneas que serán usadas para la transferencia y ponga las salidas de la CPU en alta impedancia
·         Exista Hardware externo de control de transferencia, para lo cual existen circuitos integrados controladores de DMA.
Las funciones de los controladores DMA son:
1.       Iniciar la transferencia por petición del periférico o del microprocesador
2.       Direccionar la memoria
3.       Sincronizar el desarrollo de la transferencia con la CPU
4.       Activar las señales del bus de control necesarias para la transferencia
5.       Avisar a la CPU el fin de la transferencia.
E/S Mapeada en memoria.- Un sistema de computadora combina un procesador, memoria RAM, ROM, dispositivos de entrada y salida en un sistema con E/S mapeada en memoria, los dispositivos se conectan al procesador como a la memoria. Se le asignan direcciones a los dispositivos de E/S y el software accede a estos por su dirección específica, el software lee desde un dispositivo de entrada mediante las mismas instrucciones que se leerían de la memoria. También realiza la escritura en los dispositivos de E/S como si se tratara de memoria.



Fig. 7 Sistema de E/S mapeada en memoria

Fuente: Valvano J. W (2004), Introducción a los sistemas de microcomputadores Empotrados, México,  Editorial Cengage Learning

Bibliografía

·         Sanchis E. (2002), Sistemas electrónicos digitales: fundamentos y diseño de aplicaciones, Valencia: España, Editorial Maite Simon

·         Santamaría E. (1993), Electrónica digital y microprocesadores, España, Editado por Universidad Pontificia Comillas

·         Mano M. (1985), Lógica digital y diseño de computadores, Juárez: México, Editorial Prentice Hall Inc.

·         Martínez G. F. A. – Quetglás G. M. (2003), Introducción a la programación estructurada en C, Valencia: España, Editorial Maite Simon

·         Perez C. J. A. – Morera J. M. (2002), Conceptos de sistemas operativos, Madrid: España, Editado por Universidad Pontificia Comillas e impreso por Amábar S. L.

·         Valvano J. W (2004), Introducción a los sistemas de microcomputadores Empotrados, México,  Editorial Cengage Learning 


By: Cesar M. Cabrera Vasquez


















No hay comentarios:

Publicar un comentario