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