MICROPROCESADORES - PARTE 4

Los microprocesadores desde sus comienzos hasta el presente, es el material que posee uno de los libros electrónicos de la empresa Krismar Computación, el cual estamos describiendo, paso a paso. En esta cuarta parte, veremos entre otras cosas, la unidad de control, unidad aritmética y lógica y el coprocesador matemático entre otros temas. Si desea saber más, puede visitar nuestro sitio de Internet en www.webelectronica.com.ar, donde encontrará abundante información y las formas de acceder a lo que usted necesita.

LA UNIDAD DE CONTROL

La unidad de control de un microprocesador es un circuito lógico que, como su nombre lo indica, controla la operación del microprocesador entero. En cierto modo, es el “cerebro dentro del cerebro”, ya que controla lo que pasa dentro del procesador, y el procesador a su vez controla el resto de la PC. Diferente a los circuitos integrados más comunes, cuyas funciones son fijadas por su diseño de hardware, la unidad de control es más flexible. La unidad de control sigue las instrucciones contenidas en un programa externo y le dice a la ALU qué hacer. La unidad de control recibe instrucciones de la BIU, las traduce a una forma que puedan ser entendidas por la ALU, y mantiene un control sobre la instrucción del programa que se está ejecutando.

Las funciones realizadas por la unidad de control varían con la arquitectura interna del CPU, puesto que la unidad de control realmente es la que implementa la arquitectura.

En un procesador regular que ejecuta instrucciones nativas x86, la unidad del control realiza las tareas de traer instrucción, decodificarla, controlar la ejecución de ésta y almacenar el resultado obtenido.

En un procesador con un núcleo RISC, la unidad de control realiza significativamente más trabajo.

Gestiona la traducción de las instrucciones x86 a microinstrucciones RISC, controla la planificación de las micro-instrucciones hacia las varias unidades de la ejecución, y controla la salida de estas unidades para asegurarse que los resultados sean transferidos al lugar apropiado. En algunos de estos procesadores con núcleo RISC, la unidad de control puede ser dividida en otras unidades (como en una unidad de planificación para ocuparse de la planificación y una unidad de retiro para tratar con resultados que vienen de los canales) debido a la complejidad del trabajo que se debe realizar.

Para mayores detalles de lo que realiza la unidad de control, ver los pasos de ejecución de una instrucción.

 
LA UNIDAD ARITMETICA Y LOGICA
La unidad aritmética y lógica maneja toda la toma de decisiones (los cálculos matemáticos y las funciones lógicas) que es realizada por el microprocesador.

La unidad toma las instrucciones decodificadas por la unidad de control y las envía hacia fuera directamente o ejecuta el microcódigo apropiado para modificar los datos contenidos en sus registros. Los resultados son enviados al exterior a través de la BIU (o unidad de E/S) del microprocesador.

El ALU también es llamada Unidad de Ejecución Entera en cuanto al manejo de las operaciones aritméticas; la mayoría del trabajo hecho en la PC se hace con información entera, es decir, números enteros y datos que se representan con números enteros (datos discretos).

Los enteros incluyen los números enteros regulares, caracteres y otros datos discretos similares. Se le llaman números no-enteros a los números de "punto flotante" (datos continuos).

Este tipo de datos son manejados de forma diferente utilizando una unidad dedicada llamada unidad del punto flotante o FPU (Floating Poit Unit).

La FPU maneja operaciones avanzadas de las matemáticas (tales como funciones trigonométricas y trascendentales) con mayor precisión. Los primeros microprocesadores de Intel podían agregar una unidad de punto flotante como un chip opcional por separado a veces llamado un coprocesador matemático.

Incluso los chips equipados solamente con las unidades de ejecución entera, pueden realizar operaciones matemáticas avanzadas con programas avanzados que solucionaban los problemas al dividirlos en pasos simples de números discretos. El uso de la unidad de punto flotante separada, se dedicaba a instrucciones de funciones avanzadas y realizaban las operaciones más rápidamente.

La ALU es donde (finalmente) las instrucciones se ejecutan y el trabajo es realizado. Los procesadores más viejos tienen una sola unidad de éstas, y las instrucciones son procesadas secuencialmente.

Los procesadores actuales utilizan varias ALU (o unidades de ejecución entera), permitiendo que más de una instrucción pueda ser ejecutada simultáneamente, lo que incrementa el desempeño y rendimiento.

Los procesadores que hacen esto son llamados procesadores superescalares. Los procesadores más avanzados pueden tener algunas unidades de ejecución, dedicadas diseñadas sólo para ejecutar ciertos tipos de instrucciones.

Esto es especialmente utilizado en los procesadores que utilizan la emulación x86 con un núcleo RISC.

 
LA UNIDAD DE PUNTO FLOTANTE (FPU)
La unidad del punto flotante es una unidad de ejecución dedicada, diseñada para realizar las funciones matemáticas con números del punto flotante. Un número del punto flotante es cualquier número continuo, esto es no entero; cualquier número que requiere un punto decimal para ser representado es un número del punto flotante. Los enteros (y los datos almacenaron como enteros) se procesan usando la unidad de ejecución entera.

Al hablar de Punto Flotante se describe una manera de expresar los valores, no como un tipo matemáticamente definido del número tal como un número entero, número racional, o número real. La esencia de un número de punto flotante es que su punto "flota " entre un número predefinido de dígitos significativos, igual a la notación científica, donde el punto decimal puede moverse entre diferentes posiciones del número.

Matemáticamente hablando, un número en punto flotante tiene tres porciones: un signo, que indica si el número es mayor o menor de cero; un significado-- llamado a veces mantisa -- que abarca todos los dígitos que son matemáticamente significativos; y un exponente, que determina la magnitud del significado, esencialmente la localización del punto flotante. Como mencionamos anteriormente es igual a la notación científica, la diferencia está en que los científicos usan exponentes de potencias de 10 y los coprocesadores matemáticos al utilizar el sistema binario utilizan el punto flotante digital, ó sea utilizan potencias de dos.

Como cuestión práctica, la forma en que los números de punto flotante son usados en cálculos de computadora siguen los estándares establecidos por el Instituto de Ingenieros Eléctricos y Electrónicos.

Los formatos de IEEE (por sus siglas en inglés) toman los valores que se pueden representar en forma binaria usando 80 bits. Aunque 80 bits parecen algo arbitrarios (pues en el mundo de las computadoras está basado en potencias de dos y constantemente se acostumbra doblar los tamaños de los registros de 8 a 16 a 32 a 64 bits), es el tamaño exacto para acomodar un valor de 64 bits significativos con 15 bits de sobra para un exponente y un bit adicional para el signo del número. Aunque el estándar de IEEE permite valores de punto flotante de 32 bits y 64 bits, la mayoría de las unidades de punto flotante se diseñan para acomodar los valores completos de 80 bits.

Las unidades de punto flotante de los procesadores de Intel tienen ocho de estos registros de 80 bits, en los cuales realizan sus cálculos.

Las instrucciones en sus programas le dicen al chip matemático con qué formato numérico va a trabajar y cómo. La única diferencia verdadera es la forma en la cual el chip matemático entrega sus resultados al microprocesador cuando están listos. Se realizan todos los cálculos usando los 80 bits completos de los registros del chip, a diferencia de las unidades de número entero, que pueden manipular independientemente sus registros en pedazos de un byte.

Los ocho registros de 80 bits en las unidades de punto flotante de Intel, también se diferencian de las unidades de número entero en la manera en que son direccionadas.

Los comandos para los registros de la unidad de número entero son encaminados directamente al registro apropiado como si fueran enviados por un conmutador. Los registros de la unidad de punto flotante son ordenados en una pila, como un sistema de elevador. Los valores se empujan sobre la pila, y con cada nuevo número empuja a los demás a un nivel más bajo.

La unidad del punto flotante se encuentra integrada en todos los procesadores desde los 486DX en adelante (esto no incluye los 486SX). Las primeras computadoras tenían que usar la unidad entera del procesador para realizar las operaciones del punto flotante (lo que es muy lento) a menos que se tuviera un segundo chip dedicado para realizar los cálculos de punto flotante, llamado coprocesador matemático. El coprocesador trabajaría, de esta manera, junto con el microprocesador para mejorar el rendimiento en las aplicaciones de matemáticas intensivas (por ejemplo una hoja de cálculo, las aplicaciones científicas, etc.). Un coprocesador matemático separado es mejor a no tener nada, pero no es tan eficaz como tener la unidad del punto flotante integrada en el CPU principal. Todo los CPUs actuales tienen integrada la FPU.

 
COPROCESADOR MATEMATICO EXTERNO
Hasta la llegada del Pentium, una unidad de punto flotante no era una pieza incluida en un microprocesador. Algunos 486 y todas los chips anteriores omitieron la circuitería de punto flotante. La circuitería de punto flotante agregaba simplemente demasiada complejidad al chip, por lo menos para el estado de la tecnología de fabricación en aquella época. Aunque algunos cientos de miles de transistores adicionales agregan poco al presupuesto (y agrega inmenso al funcionamiento) de un chip con 5.5 millones de transistores, puede doblar el tamaño y el costo de éste.

Para reducir costos, los fabricantes de chips dejaron simplemente la unidad punto flotante opcional.

Cuando era necesario acelerar las operaciones numéricas, los primeros microprocesadores usados en las PCs permitían agregar un chip adicional opcional, que aceleraban el cálculo de valores de punto flotante.

Estas unidades de punto flotante externas fueron llamadas coprocesadores matemáticos.

El coprocesador matemático es un caso especial de un tipo específico de circuito llamado coprocesador (puesto que también existen coprocesadores dedicados a otras tareas, como el video). Un coprocesador es simplemente algo que trabaja en cooperación con el microprocesador de la PC. La meta es ganar mejor desempeño gracias a la especialización y división del trabajo, el equivalente electrónico de una revolución industrial en miniatura.

Para dividir el trabajo, el coprocesador toma la carga de una cierta tarea determinada dejando al microprocesador para fines generales. Al mismo tiempo, el coprocesador es especialista, diseñado para manejar una tarea determinada, y una tarea solamente, con la mayor eficacia posible. El coprocesador matemático se especializa en números de punto flotante.

Cada Chip de Intel, antes del Pentium, tenía su propio coprocesador matemático que le correspondía.

En la tabla 1 se muestran los Procesadores de Intel y su correspondiente coprocesador Matemático.

Varias compañías también hicieron coprocesador compatibles con chips 386. Todos los coprocesadores externos son obsoletos actualmente.

 
EL CACHE L1 Y EL CONTROLADOR DEL CACHE
Todos los procesadores modernos incorporan una pequeña memoria caché de alta velocidad, para almacenar los datos e instrucciones de la memoria principal utilizados más recientemente. Un principio dentro de la computación nos dice que un procesador que recientemente hizo referencia a una localidad de memoria, es muy probable que vuelva a hacer referencia a esta localidad de memoria en un futuro cercano. Utilizando un caché para almacenar los valores de la memoria recientemente usados se libra al procesador, del trabajo de ir a la memoria principal a cada momento para recargar estos valores. Esto proporciona un aumento significativo en el rendimiento, ya que la memoria principal es muchísima más lenta que el caché del procesador.

El caché en el procesador es llamado primario, de nivel 1 o L1 porque es el caché más cercano al procesador. Cada vez que el procesador solicita información de la memoria, el controlador del caché en el chip utiliza una circuitería especial para verificar primeramente si el dato que se necesita de memoria se encuentra almacenado en el caché en ese momento. Si es así, entonces el sistema se ahorra un acceso a la memoria principal (ahorra tiempo). Este caché L1 se encuentra inmerso dentro de la BIU o unidad de entrada salida.

La mayoría de las computadoras también utilizan un caché secundario o caché L2, para almacenar algunos de los datos recién usados que no caben en la pequeña memoria caché L1.

La tecnología usada para el Caché L1 y el Caché L2 son por supuesto diferentes, debido a los tamaños y velocidades.

Pero los principios de operación de los Cachés L1 y L2, por lo que se refiere a las técnicas de mapeo, políticas de escritura, etc. son bastante similares.

Para una explicación detallada sobre el caché, los diferentes niveles, los protocolos y tecnologías, vea el capítulo de Memoria Caché, que hemos publicado con anterioridad en Saber Electrónica, hasta el mes que viene.

 
Sobre un producto de Krismar Computación
FIGURA 1
 
FIGURA 2
 
FIGURA 3
 
FIGURA 4
 
FIGURA 5
 
FIGURA 6
 
FIGURA 7
 
TABLA 1
 
 
 
 
 
PROMOCIONES
 
 
PROMOCIONES