ELECTRONICA
Y COMPUTACION - MICROPROCESADORES - 2
|
|
Tomando como base los libros electrónicos
producidos por la empresa Kirsmar, desde hace varias
ediciones publicamos artículos sobre la descripción,
funcionamiento y configuración de diferentes
elementos de la PC. Así, tuvimos la oportunidad
de conocer los distintos tipos de memoria desde los
primeros chips hasta los actuales. En la edición
anterior comenzamos a describir el corazón
de la CPU: "el microprocesador", y ahora
continuamos con el tema. 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 Ud. necesita. |
|
|
Antes de que
el microprocesador pueda trabajar con números
o cualquier otro dato, primero debe saber con qué
números puede trabajar. El método
más directo de dar al chip las variables
que necesita es proveérselas al mismo tiempo
que la instrucción. Por ejemplo, se podrían
mandar los números 6 y 3 junto con la instrucción
de restar. Este método simple tiene sus defectos.
Los números apropiados se deben encaminar
correctamente a las entradas de información
del microprocesador. El microprocesador necesita
saber si restar 6 de 3 o 3 de 6 (la diferencia podría
ser significativa). Pues de acuerdo a como se distingan
los números en un problema de sustracción,
será el lugar en donde se pondrán
en la ecuación (6 - 3 contra 3 - 6), un microprocesador
distingue los números con los cuales trabaja
por su posición. Dos direcciones de memoria
podrían ser suficientes para la manera en
que se diseñan la mayoría de los microprocesadores.
Ellos solamente tienen un camino a la memoria por
lo que pueden ver un valor de la memoria a la vez.
Entonces es necesario que un microprocesador cargue
por lo menos un número en un área
de almacenamiento interno llamada registro, y de
esta manera pueda entonces, alcanzar simultáneamente
el número en memoria y el valor en su registro
interno. Alternativamente (y más comúnmente
hoy), ambos valores con los cuales el microprocesador
debe trabajar, se cargan separadamente en registros
internos.
Parte de la función de cada instrucción
del microprocesador, es decidir cuáles
registros utilizar para los datos y dónde
poner las respuestas que sean regresadas. Otras
instrucciones le dicen al microprocesador qué
números cargar en sus registros con los
cuales trabajará más adelante, o
mover la información de un registro que
se encuentra en algún lugar a otro en otro
lugar, a la memoria o a un puerto de salida.
Un registro funciona de dos maneras, como una
memoria y como un banco de trabajo. Mantiene los
patrones de bits hasta que pueden ser utilizados
o enviados fuera del procesador. El registro también
está conectado con los circuitos del microprocesador
de modo que los cambios realizados por las instrucciones
aparezcan realmente en el registro. La mayoría
de los microprocesadores tienen comúnmente
varios registros, algunos dedicados a funciones
específicas (tales como mantener un apuntador
al programa, que indica en qué instrucción
nos encontramos en ese momento; este registro
es llamado contador o puntero de instrucción)
y otros a propósitos generales. Anteriormente,
el acumulador era el único registro en
un microprocesador que podía realizar cálculos.
En los microprocesadores modernos, todos los registros
son casi iguales (en los últimos diseños,
todos los registros son iguales, e intercambiables),
así que el acumulador ahora es poco más
que un término colorido de una era pasada.
Los registros son medidos por el número
de bits con los que pueden trabajar al mismo tiempo.
Un microprocesador de 16 bits, por ejemplo, debe
tener uno o más registros que trabajen
con 16 bits de datos al mismo tiempo. Los microprocesadores
de hoy tienen registros de 32 o 64 bits.
El agregar más registros a un microprocesador
no lo hace forzosamente más rápido.
Cuando un microprocesador no utiliza características
avanzadas tales como pipeling o tecnología
superescalar, puede realizar solamente una operación
al mismo tiempo. Más de dos registros parecerían
excesivos, después de todo, la mayoría
de las operaciones de las matemáticas implican
solamente dos números al mismo tiempo (o
puede ser reducido a una serie de operaciones
de dos números). Sin embargo, con los microprocesadores
de la vieja tecnología, tener más
registros ayudaba al programador a crear programas
más eficientes. Con más lugares
para poner datos, un programa necesitaría
mover la información dentro y fuera del
microprocesador lo menos posible, pues puede reducir
potencialmente pasos de programación y
ciclos de reloj.
El diseño del microprocesador moderno,
influenciado por las últimas investigaciones,
exige más registros. Ya que los microprocesadores
son mucho más rápidos que la memoria,
cada vez que el microprocesador tiene que ir a
la memoria, provoca retrasos. Por lo tanto, si
se reduce al mínimo el acceso a la memoria
mejoraría el desempeño total, pues
si se mantienen los datos en registros, en vez
de en memoria, apresurará las cosas. Por
otra parte, tener muchos registros es el equivalente
a tener una memoria principal móvil en
el microprocesador con todas las complejidades
y defectos inherentes de la tecnología
de memoria. Las investigaciones han determinado
que los microprocesadores con cerca de 32 registros
y usando las tecnologías comunes trabajan
mejor.
Por lo tanto, casi todos los microprocesadores
más avanzados de hoy, como los RISC, tienen
32 registros. El tamaño de los registros,
sin embargo, tiene un efecto substancial en el
funcionamiento de un microprocesador. Pues más
bits asignados a cada registro ocasiona que más
información sea procesada por el microprocesador
en cada ciclo de reloj. Por lo tanto, un registro
de 64 bits en una de los mejores procesadores
RISC puede calcular ocho veces más rápido
que un registro de 8 bits de un microprocesador
de la primera generación.
La ventaja del funcionamiento de usar registros
más grandes depende del software que se
ejecute. Si por ejemplo, un programa de computadora
dice al microprocesador que trabaje en datos de
16 bits al mismo tiempo, el poder de los registros
de 32 bits no será utilizado.
Por esta razón, el DOS, (un sistema operativo
de 16 bits escrito con instrucciones de 16 bits),
no utiliza las ventajas y características
completas de los microprocesadores de 32-bit.
Por lo tanto, la mayoría de los programas
escritos para funcionar bajo el DOS o bajo sistemas
operativos avanzados que han heredado código
de 16 bits (tal como Windows 95), no aprovechan
las ventajas de los registros de 32 bits.
Los sistemas operativos de 32 bits modernos entregan
un mejor funcionamiento con microprocesadores
tales como el Pentium Pro. Puede ser que note
un problema con los registros grandes (digamos
los de 64 bits), La mayoría de los datos
no alcanzan a utilizarlos completos. El texto
viene normalmente en bloques de 8 bits (1 Byte).
El sonido toma generalmente la forma de unidades
de dos bytes. Los datos de la imagen pueden ser
uno, dos, tres, o cuatro bytes pero casi nunca
los ocho bytes que muchos microprocesadores modernos
prefieren. Los microprocesadores que usan la tecnología
MMX de Intel son diseñados para utilizar
más eficientemente sus registros grandes,
procesando tipos de datos múltiples simultáneamente
en un solo registro. Las instrucciones especiales
MMX dicen al microprocesador cómo procesar
todos los bloques cortos de los datos en uno solo.
SSE (el nuevo concepto de Intel de Streaming SIMD
Extensions).
|
|
|
Los microprocesadores
no ejecutan las instrucciones tan pronto como las
señales del código de la instrucción
alcanzan los contactos que llegan al microprocesador.
Si los chips reaccionaran inmediatamente a estas
señales, llegarían a convertirse
rápidamente en instrucciones confusas.
Las señales eléctricas no pueden
cambiar de estado inmediatamente; pasan siempre
por un lapso breve de transición, que aunque
pequeño, es un período de nivel
indeterminado durante el cual las señales,
probablemente, provocarían la caída
de un microprocesador y por consiguiente del sistema
entero. Por otra parte, las señales no
cambian necesariamente en la misma razón
de tiempo, así que cuando algunas señales
alcanzan los valores correctos, otras pueden todavía
estar en los valores incongruentes. Consecuentemente,
un microprocesador debe vivir largos períodos
de confusión durante los cuales sus señales
se encuentran en un período de transición
(por lo cual no tienen los datos requeridos, sino
que son datos incongruentes).
Para evitar que el microprocesador reaccione
a estas señales inválidas, el chip
espera una indicación que le dice que es
tiempo de ejecutar el siguiente comando válido.
Espera hasta que le es enviada una señal
de "Continúa". En las PC de hoy,
esta indicación es proporcionada por el
reloj del sistema. El reloj envía pulsos
regulares de voltaje, el equivalente electrónico
de hacer tictac de un reloj. El microprocesador
verifica las instrucciones que le llegan cada
vez que recibe un pulso de reloj.
Los primeros microprocesadores no podían
realizar una instrucción cada ciclo de
reloj. Estos microprocesadores requerían
tanto como 100 pulsos para realizar una sola instrucción.
El número de los ciclos requeridos para
realizar las instrucciones varía con la
instrucción y el diseño del microprocesador.
Algunas instrucciones toman unos cuantos ciclos,
otros docenas de ellos. Por otra parte, algunos
microprocesadores son más eficientes que
otros en ejecutar sus instrucciones. La tendencia
de hoy es reducir al mínimo e igualar el
número de los ciclos de reloj necesarios
para realizar una instrucción típica.
Algunos microprocesadores tienden a romper la
correspondencia entre el reloj del sistema y el
número de las instrucciones que se ejecutan.
Cambian deliberadamente la velocidad de reloj
externo del sistema antes de que sea utilizada
internamente por los circuitos del microprocesador.
En la mayoría de los casos, la frecuencia
de reloj del sistema es aumentada en un cierto
factor discreto (típicamente dos o tres,
aunque algunos chips como el Pentium utilizan
factores tales como 1.5 como multiplicadores del
reloj) de modo que las operaciones dentro del
chip son ejecutadas más rápidamente
que lo que el reloj externo permitiría.
A pesar de las diversas frecuencias dentro y fuera
del chip, el reloj del sistema todavía
se utiliza para sincronizar operaciones lógicas.
La carencia de correspondencia entre los ciclos
de reloj y la ejecución de la instrucción
significa que la velocidad del reloj (típicamente
una frecuencia dada en Megahertz o Gigahertz,
MHz o GHz respectivamente) no sirve para comparar
el desempeño relativo de dos microprocesadores.
La única vez que la velocidad de reloj
da una indicación confiable del desempeño
relativo es cuando se comparan dos diseños
de chips idénticos que operen a diversas
frecuencias, el Pentium III corre a 450 y 500MHz.
(el último Pentium III es cerca de 10 por
ciento más rápido.)
|
|
|
Las computadoras
personales podrían no existir a no ser por
dos conceptos en los que están basadas: la
lógica binaria y los circuitos digitales.
Las aproximaciones binarias reducen la información
a la forma mínima de representación,
esencialmente utilizar el menor número de
símbolos posibles para representar la información.
Un BIT (BInary digiT) de datos binario indica simplemente
si algo es o no es (un “sí” o
un “no”). La lógica binaria proporciona
las reglas para manipular estos dígitos binarios
y permitir que representen y que actúen como
información real manejable y utilizable,
datos como números, nombres, e imágenes.
La lógica binaria implica el uso del sistema
de numeración binario o de base 2, el cual
utiliza sólo los dígitos 0 y 1 para
representar cualquier tipo de número y
con ellos realizar todo tipo de operaciones; también
implica el uso del álgebra booleana, que
dicta las reglas para realizar las manipulaciones
de los datos binarios. El microprocesador es el
encargado de la manipulación de la lógica
binaria, el microprocesador simplemente controlan
el flujo de señales eléctricas.
Es un circuito electrónico, una clase especial
de circuito llamado circuito de lógica
digital.
|
|
INTERFACES
EXTERNAS DEL MICROPROCESADOR |
|
Un procesador
ejecuta instrucciones de programas (software) para
permitir a la computadora realizar diferentes funciones.
El qué tan eficiente y eficazmente se realiza
esta tarea, está en función de la
arquitectura del microprocesador (el diseño
interno). La arquitectura del microprocesador describe
la forma en que los datos son procesados internamente,
el cual es uno de los factores más importantes
que determina el rendimiento global (el otro es
la velocidad del reloj).
Las interfaces externas del procesador describen
la manera de comunicar la información con
la memoria, chipset y otros dispositivos en la
PC.
|
|
BUS
DEL PROCESADOR Y LA MEMORIA |
|
El procesador
controla a la PC completa, y utiliza rutas o caminos
de control dedicados llamados "buses"
para enviar la información entre él
y el Caché, la memoria y otros dispositivos.
Los buses son las interfaces externas
del procesador, las cuales pueden diferir entre
CPU's similares.
Existen diferentes tipos de buses
en una PC moderna. Entre los más importantes
encontramos los buses de E/S PCI e ISA, pero de
acuerdo a los alcances de este tema, estos buses
no son descritos aquí, para obtener información
detallada sobre estos buses y los demás tipos
de buses consulte el tema de motherboards. En cuanto
al tema de microprocesadores, los buses más
importantes son el bus del procesador y el bus de
la memoria. |
|
BUS
TRASERO DEDICADO PARA LA MEMORIA CACHE |
|
Los procesadores
convencionales usan un Caché L2 en la motherboard
y lo conectan a él utilizando el bus estándar
del sistema. Para lograr un mejor rendimiento, muchos
procesadores utilizan un bus de gran velocidad dedicado
para conectar el procesador al caché L2.
Por ejemplo, en el Pentium estándar
a 200MHz ejecutando sobre un bus del sistema de
66MHz, el caché funcionará a 66MHz,
la misma velocidad del bus del sistema, puesto que
éste funciona con el bus del sistema. El
Pentium Pro a 200MHz, tiene un caché L2 integrado
que funciona a la velocidad del procesador, o sea
200MHz. Un bus trasero especial gestiona este enlace
de datos de gran velocidad entre el procesador y
el caché L2 (el cual se encuentra incluido
dentro del empaque del procesador). El Pentium II
tiene un arreglo de bus similar; funciona a la mitad
la velocidad del procesador, por ejemplo en un Pentium
II a 266MHz se tiene un bus de caché a 133MHz
(mucho más lento que el Pentium Pro pero
mucho más rápido que el Pentium).
Tanto el bus caché del Pentium
Pro como el del Pentium II, son transaccionales
(de no bloqueo) lo que les permite manejar solicitudes
concurrentes del sistema del caché, aumentando
así el rendimiento.
Otra ventaja de este diseño
es que teniendo a los Cachés y a los buses
Caché separados del bus principal, se hace
más apropiado para el multiprocesamiento.
No sólo permite a cada procesador
tener su propio caché sin tener que compartir
uno solo en el motherboard, sino que cada caché
tiene su propio bus independiente y no interferible.
Intel llama a este tipo de arquitectura, arquitectura
de Bus Independiente Dual (DIB). |
|
|
Cada bus está
compuesto de dos partes distintas: el bus de datos
y el bus de direcciones. El bus de los datos es
al que nos referimos al hablar del bus principal,
el bus de la memoria o el bus del sistema; éstas
son las líneas que realmente llevan los datos
transferidos.
Entre más ancho sea el bus
de datos, mayor información puede transferirse
simultáneamente. Los buses de los datos más
anchos generalmente significan mayor rendimiento.
La velocidad del bus de datos es dada por la velocidad
del reloj del sistema, el cual es también
otro controlador del rendimiento del bus.
El ancho de banda del bus de datos
nos dice cuánta información puede
fluir a través de él, y ésta
en función del ancho del bus (en bits) y
su velocidad (en MHz). Se puede comparar al bus
de datos con una carretera; su ancho es el número
de carriles y su velocidad es la rapidez con que
los automóviles viajan. El ancho de banda
es entonces la cantidad de tráfico que la
carretera mantiene en una unidad dada de tiempo,
que es una función de cuántos carriles
hay y que tan rápido los automóviles
viajan en ellos.
El ancho de banda del bus de la
memoria es sumamente importante en las PCs modernas,
porque es a menudo el principal cuello de botella
del desempeño del sistema. Actualmente, con
procesadores que funcionan mucho más rápido
que otras partes del sistema, aumentar la velocidad
de transferencia de datos en el exterior del procesador
tiene un impacto mayor en el rendimiento global
que acelerar el propio procesador. Esto es porque
por ejemplo, un Pentium a 150MHz no es mucho más
rápido que un Pentium a 133MHz; el Pentium
a 150 funciona bajo un bus del sistema de 60MHz
y el Pentium a 133MHz en uno de 66MHz. 10% más
de velocidad en el bus del sistema, mejora el rendimiento
global mucho más que un 10% más de
velocidad en el procesador. |
|
TAMAÑO
DEL BUS DE DATOS
Y EL ANCHO DE BANDA EN DIFERENTES PROCESADORES
|
|
Estas tablas
ilustran el tamaño del bus de datos, la velocidad
y el ancho de banda para diferentes procesadores.
Se puede apreciar que mientras en los últimos
años, las velocidades de los procesadores
han aumentado en gran medida, las velocidades del
bus del sistema han permanecido algo estancadas,
y el ancho de banda del bus del sistema ha estado
esencialmente inalterado desde la introducción
del Pentium en 1994, que funcionaba sobre un bus
de 66 MHz.
Hay tres tablas diferentes, reflejando
los tres rangos de velocidad generales usados por
los buses de datos en las PCs durante los últimos
años. En cada tabla la familia de procesadores
se lista junto con el ancho del bus de datos. Por
lo tanto, una de las columnas proporciona la información
del ancho de banda del bus en MB/seg correspondiendo
a cada una de las velocidades del bus normalmente
usadas por el procesador. Recuerde a los multiplicadores
de reloj de los procesadores, puesto que muchos
486 y los procesadores posteriores funcionan en
algún múltiplo de la velocidad del
bus de sistema.
Muchas personas (incorrectamente)
deducen el tamaño del procesador a partir
del ancho del bus de datos. Por ejemplo, las personas
ven un bus de datos de 64 bits de ancho en el Pentium
y concluyen que el Pentium es un procesador de 64
bits. Cuando de hecho, el tamaño de los registros
internos es lo que determina el tamaño de
un procesador (y basado en esta definición
cada procesador, introducido en los últimos
años, ha sido de 32 bits).
NOTA.- Para obtener los valores
del ancho de banda se realiza de la siguiente forma:
Queremos MB/seg, por ejemplo para el Pentium con
66.6MHz, tenemos lo siguiente: 1Hz es 1 ciclo/ seg,
entonces 1MHz es 1000000 ciclos/ seg. Ahora 64 bits
son 4 bytes, y para transformar bytes a MB hay que
dividir entre 220. Como vemos en la fórmula
Nº1.
En las tablas 1 a 3 vemos los procesadores
de 1ra a 6ta generación.
Tal como mencionamos, este tema
es parte del libro electrónico “Microprocesadores”,
preparado por Krismar Computación. Ud. puede
bajar más información sobre este tema
de nuestra web, con la clave “mother”. |
|
Sobre
un producto de Krismar Computación |
|
|
|
|