Señales de Control
Las señales de control son señales electrónicas que orquestan las diversas unidades del procesador que participan en la ejecución de una instrucción. Dichas señales se envían utilizando un elemento denominado secuenciador. Por ejemplo, la señal Leer/Escribir permite que la memoria se entere de que el procesador desea leer o escribir información.
Unidades Funcionales
El procesador se compone de un grupo de unidades interrelacionadas (o unidades de control). Aunque la arquitectura del microprocesador varía considerablemente de un diseño a otro, los elementos principales del microprocesador son los siguientes:
- Una unidad de control que vincula la información entrante para luego decodificarla y enviarla a la unidad de ejecución:La unidad de control se compone de los siguientes elementos:
- secuenciador (o unidad lógica y de supervisión ), que sincroniza la ejecución de la instrucción con la velocidad de reloj. También envía señales de control:
- contador ordinal, que contiene la dirección de la instrucción que se está ejecutando actualmente;
- registro de instrucción, que contiene la instrucción siguiente.
- Una unidad de ejecución (o unidad de procesamiento), que cumple las tareas que le asigna la unidad de instrucción. La unidad de ejecución se compone de los siguientes elementos:
- la unidad aritmética lógica (se escribe ALU); sirve para la ejecución de cálculos aritméticos básicos y funciones lógicas (Y, O, O EXCLUSIVO, etc.);
- la unidad de punto flotante (se escribe FPU), que ejecuta cálculos complejos parciales que la unidad aritmética lógica no puede realizar;
- el registro de estado;
- el registro acumulador.
- Una unidad de administración del bus (o unidad de entrada-salida) que administra el flujo de información entrante y saliente, y que se encuentra interconectado con el sistema RAM;
El siguiente diagrama suministra una representación simplificada de los elementos que componen el procesador (la distribución física de los elementos es diferente a la disposición):
Con el fin de procesar la información, el microprocesador posee un grupo de instrucciones, denominado "conjunto de instrucciones", hecho posible gracias a los circuitos electrónicos. Más precisamente, el conjunto de instrucciones se realiza con la ayuda de semiconductores, pequeños "conmutadores de circuito" que utilizan el efecto transistor, descubierto en 1947 por John Barden, Walter H. Brattain y William Shockley, quienes recibieron por ello el premio Nobel en 1956.
Un transistor (contracción de los términos transferencia y resistor) es un componente electrónico semi-conductor que posee tres electrodos capaces de modificar la corriente que pasa a través suyo, utilizando uno de estos electrodos (denominado electrodo de control). Éstos reciben el nombre de "componentes activos", en contraste a los "componentes pasivos", tales como la resistencia o los capacitores, que sólo cuentan con dos electrodos (a los que se denomina "bipolares").
El transistor MOS (metal, óxido, silicona) es el tipo de transistor más común utilizado en el diseño de circuitos integrados. Los transistores MOS poseen dos áreas con carga negativa, denominadas respectivamente fuente (con una carga casi nula), y drenaje (con una carga de 5V), separadas por una región con carga positiva, denominada sustrato. El sustrato posee un electrodo de control superpuesto, denominado puerta, que permite aplicar la carga al sustrato.
Cuando una tensión no se aplica en el electrodo de control, el sustrato con carga positiva actúa como barrera y evita el movimiento de electrones de la fuente al drenaje. Sin embargo, cuando se aplica la carga a la puerta, las cargas positivas del sustrato son repelidas y se realiza la apertura de un canal de comunicación con carga negativa entre la fuente y el drenaje.
El transistor actúa entonces como conmutador programable, gracias al electrodo de control. Cuando se aplica una carga al electrodo de control, éste actúa como interruptor cerrado, y cuando no hay carga, actúa como interruptor abierto.
Circuitos Integrados
Una vez combinados, los transistores pueden constituir circuitos lógicos que, al combinarse, forman procesadores. El primer circuito integrado data de 1958 y fue construido por Texas Instruments.
Los transistores MOS se componen, entonces, de láminas de silicona (denominadas obleas), obtenidas luego de múltiples procesos. Dichas láminas de silicona se cortan en elementos rectangulares para formar un "circuito". Los circuitos se colocan luego en carcasas con conectores de entrada-salida, y la suma de esas partes compone un "circuito integrado". La minuciosidad del grabado, expresado en micrones (micrómetros, se escribe µm) define el número de transistores por unidad de superficie. Puede haber millones de transistores en un sólo procesador.
La Ley de Moore, escrita en 1965 por Gordon E. Moore, cofundador de Intel, predijo que el rendimiento del procesador (por extensión del número de transistores integrados a la silicona) se duplicaría cada 12 meses. Esta ley se revisó en 1975, y se cambió el número de meses a 18. La Ley de Moore sigue vigente hasta nuestros días.
Dado que la carcasa rectangular contiene clavijas de entrada-salida que parecen patas, en Francia se utiliza el término "pulga electrónica" para referirse a los circuitos integrados.
Familias
Cada tipo de procesador posee su propio conjunto de instrucciones. Los procesadores se agrupan en las siguientes familias, de acuerdo con sus conjuntos de instrucciones exclusivos:
- 80x86: la "x" representa la familia. Se hace mención a 386, 486, 586, 686, etc.
- ARM
- IA-64
- MIPS
- Motorola 6800
- PowerPC
- SPARC
- ...
Esto explica por qué un programa producido para un tipo específico de procesador sólo puede trabajar directamente en un sistema con otro tipo de procesador si se realiza lo que se denomina traducción de instrucciones, o emulación. El término "emulador" se utiliza para referirse al programa que realiza dicha traducción.
Conjunto de Instrucciones
Un conjunto de instrucciones es la suma de las operaciones básicas que puede cumplir un procesador. El conjunto de instrucciones de un procesador es un factor determinante en la arquitectura del éste, aunque una misma arquitectura puede llevar a diferentes implementaciones por diferentes fabricantes.
El procesador funciona de forma eficiente gracias a un número limitado de instrucciones, conectadas de forma permanente a los circuitos electrónicos. La mayoría de las operaciones se pueden realizar utilizando funciones básicas. Algunas arquitecturas, no obstante, sí incluyen funciones avanzadas de procesamiento.
Arquitectura CISC
La arquitectura CISC (Complex Instruction Set Computer, Ordenador de Conjunto de Instrucciones Complejas) se refiere a la conexión permanente del procesador con las instrucciones complejas, difíciles de crear a partir de las instrucciones de base.
La arquitectura CISC es especialmente popular en procesadores de tipo 80x86. Este tipo de arquitectura tiene un costo elevado a causa de las funciones avanzadas impresas en la silicona.
Las instrucciones son de longitud diversa, y a veces requieren más de un ciclo de reloj. Dado que los procesadores basados en la arquitectura CISC sólo pueden procesar una instrucción a la vez, el tiempo de procesamiento es una función del tamaño de la instrucción.
Arquitectura RISC
Los procesadores con tecnología RISC (Reduced Instruction Set Computer, Ordenador de Conjunto de Instrucciones Reducidas) no poseen funciones avanzadas conectadas en forma permanente.
Es por eso que los programas deben traducirse en instrucciones sencillas, lo cual complica el desarrollo o hace necesaria la utilización de un procesador más potente. Este tipo de arquitectura tiene un costo de producción reducido si se lo compara con los procesadores CISC. Además, las instrucciones de naturaleza sencilla se ejecutan en un sólo ciclo de reloj, lo cual acelera la ejecución del programa si se lo compara con los procesadores CISC. Para terminar, dichos procesadores pueden manejar múltiples instrucciones en forma simultánea, procesándolas en paralelo.
Mejoras Tecnológicas
A través del tiempo, los fabricantes de microprocesadores (denominados fundadores) han desarrollado un determinado número de mejoras que optimizan el rendimiento del procesador.
Procesamiento Paralelo
El procesamiento paralelo consiste en la ejecución simultánea de instrucciones desde el mismo programa pero en diferentes procesadores. Implica la división del programa en múltiples procesos manejados en paralelo a fin de reducir el tiempo de ejecución.
No obstante, este tipo de tecnología necesita sincronización y comunicación entre los diversos procesos, de manera similar a lo que puede llegar a ocurrir cuando se dividen las tareas en una empresa: se distribuye el trabajo en procesos discontinuos más pequeños que son manejados por diversos departamentos. El funcionamiento de una empresa puede verse afectado en gran medida si la comunicación entre los distintos servicios internos no funciona de manera correcta.
Canalización
Se denomina canalización a la tecnología destinada a mejorar la velocidad de ejecución de instrucciones mediante la colocación de las diversas etapas en paralelo.
A fin de comprender el mecanismo de canalización, es necesario primero comprender las etapas de ejecución de una instrucción. Las etapas de ejecución de una instrucción correspondientes a un procesador con canalización "clásica" de 5 pasos son las siguientes:
- RECUPERACIÓN: (recupera la instrucción de la caché;
- DECODIFICACIÓN: decodifica la instrucción y busca operandos (valores de registro o inmediatos);
- EJECUCIÓN: ejecuta la instrucción (por ejemplo, si se trata de una instrucción ADD, se realiza una suma, si es una instrucción SUB, se realiza una resta, etc.);
- MEMORIA: accede a la memoria, y escribe o recupera información desde allí;
- POST ESCRITURA (retirar): registra el valor calculado en un registro.
Las instrucciones se organizan en líneas en la memoria y se cargan una tras otra.
Gracias a la canalización, el procesamiento de instrucciones no requiere más que los cinco pasos anteriores. Dado que el orden de los pasos es invariable (RECUPERACIÓN, DECODIFICACIÓN, EJECUCIÓN, MEMORIA, POST ESCRITURA), es posible crear circuitos especializados para cada uno de éstos en el procesador.
El objetivo de la canalización es ejecutar cada paso en paralelo con los pasos anteriores y los siguientes, lo que implica leer la instrucción (RECUPERACIÓN) mientras se lee el paso anterior (DECODIFICACIÓN), al momento en que el paso anterior está siendo ejecutado (EJECUCIÓN) al mismo tiempo que el paso anterior se está escribiendo en la memoria (MEMORIA), y que el primer paso de la serie se registra en un registro (POST ESCRITURA).
En general, deben planificarse 1 o 2 ciclos de reloj (rara vez más) para cada paso de canalización, o un máximo de 10 ciclos de reloj por instrucción. Para dos instrucciones, se necesita un máximo de 12 ciclos de reloj (10+2=12 en lugar de 10*2=20), dado que la instrucción anterior ya se encontraba en la canalización. Ambas instrucciones se procesan simultáneamente, aunque con una demora de 1 o 2 ciclos de reloj. Para 3 instrucciones, se necesitan 14 ciclos de reloj, etc.
El principio de la canalización puede compararse a una línea de ensamblaje automotriz. El auto se mueve de una estación de trabajo a la otra a lo largo de la línea de ensamblaje y para cuando sale de la fábrica, está completamente terminado. A fin de comprender bien el principio, debe visualizarse la línea de ensamblaje como un todo, y no vehículo por vehículo. Se necesitan tres horas para producir cada vehículo, pero en realidad se produce uno por minuto.
Debe notarse que existen muchos tipos diferentes de canalizaciones, con cantidades que varían entre 2 y 40 pasos, pero el principio siempre es el mismo.
Superscaling
La tecnología Superscaling consiste en ubicar múltiples unidades de procesamiento en paralelo con el fin de procesar múltiples instrucciones por ciclo.
HyperThreading
La tecnología HyperThreading (se escribe HT) consiste en ubicar dos procesadores lógicos junto con un procesador físico. El sistema reconoce así dos procesadores físicos y se comporta como un sistema multitareas, enviando de esta manera, dos subprocesos simultáneos denominados SMT (Simultaneous Multi Threading, Multiprocesamiento Simultáneo). Este "engaño", por decirlo de alguna manera, permite emplear mejor los recursos del procesador, garantizando el envío masivo de información al éste.
No hay comentarios:
Publicar un comentario