martes, 30 de agosto de 2011

Tecnologias de Procesadores

El procesador (CPU, por Central Processing Unit o Unidad Central de Procesamiento), es por decirlo de alguna manera, el cerebro del ordenador. Permite el procesamiento de información numérica, es decir, información ingresada en formato binario, así como la ejecución de instrucciones almacenadas en la memoria.
El primer procesador comercial, el Intel 4004, fue presentado el 15 de noviembre de 1971. Los diseñadores fueron Ted Hoff y Federico Faggin de Intel, y Masatoshi Shima de Busicom (más tarde ZiLOG), era un dispositivo de cálculo de 4 bits, con una velocidad de 108 kHz. Desde entonces, la potencia de los microprocesadores ha aumentado de manera exponencial.
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;
Ilustración:
Tecnologias
La tecnología de proceso, se refiere a los materiales y técnicas utilizadas en la fabricación del circuito integrado, el encapsulado se refiere a cómo se integra un procesador con lo que lo rodea en un sistema funcional, que de alguna manera determina la velocidad total del sistema.
Aunque la tecnología de proceso y de encapsulado son vitales en la elaboración de procesadores más rápidos, es la arquitectura del procesador lo que hace la diferencia entre el rendimiento de una CPU (Control Process Unit) y otra.
Dependiendo de cómo el procesador almacena los operandos de las instrucciones de la CPU, existen tres tipos de juegos de instrucciones:
Juego de instrucciones para arquitecturas basadas en pilas.
Juego de instrucciones para arquitecturas basadas en acumulador.
Juego de instrucciones para arquitecturas basadas en registros. 
 
Tecnologia 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.
Como por ejemplo:
Intel 8086, 8088, 80286, 80386, 80486.
Motorola 68000, 68010, 68020, 68030, 6840.
Tecnologia 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.Las ventajas de los procesadores RISC, especialmente las ligadas a los sistemas abiertos (UNIX), los hacen plataformas ideales para explorar los puntos fuertes de los sistemas multiprocesadores.
Procesamiento paralelo
Consiste en la tecnologia de 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. 
 
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.
 
Tecnologia Multinúcleo
Un procesador multinúcleo es aquel que combina dos o más procesadores independientes en un solo paquete, a menudo un solo circuito integrado. Un dispositivo de doble núcleo contiene solamente dos microprocesadores independientes. En general, los microprocesadores multinúcleo permiten que un dispositivo computacional exhiba una cierta forma del paralelismo a nivel de thread (thread-level parallelism) (TLP) sin incluir múltiples microprocesadores en paquetes físicos separados. Esta forma de TLP se conoce a menudo como multiprocesamiento a nivel de chip (chip-level multiprocessing) o CMP.
Multiprocesamiento es un procesamiento simultáneo con dos o más procesadores en un computador, o dos o más computadores que están procesando juntos. Cuando se usa dos o más computadores, se unen con un canal de alta velocidad y comparten la carga de trabajo general entre ellos.
Ejemplo de algunas Tecnologías y Arquitecturas incorporadas en Procesadores Intel:
Front Side Bus (FSB)
El 'Front Side Bus', o su acrónimo FSB (traducido "Bus de la parte frontal"), es el término usado para referirse al bus de datos de la CPU. Este bus transmite toda la información que pasa desde la CPU a los demás dispositivos dentro del sistema, como la RAM, las tarjeta PCI, el disco duro, etc.
Overclock
Consiste en forzar el reloj, es decir, forzar la frecuencia de reloj de la CPU.
La práctica conocida como overclocking pretende alcanzar una mayor velocidad de reloj para un componente electrónico por encima de las especificaciones del fabricante.
La idea es conseguir un rendimiento más alto y superar las cotas actuales de rendimiento, aunque esto en ocasiones pueda suponer una pérdida de estabilidad o la rotura del componente.
Este aumento de velocidad produce un mayor gasto energético, y por tanto, una mayor producción de calor residual. El calor puede producir fallos en el funcionamiento del componente, y se debe combatir con diversos sistemas de refrigeración, entre ellos el mas recomendado es el de la refrigeración liquida.
Speedstep
La Tecnología Intel Speedstep mejorada permite que el sistema ajuste dinámicamente el voltaje y la frecuencia de núcleo del procesador, lo cual reduce el consumo de energía para disminuir la producción de calor y reducir el ruido, ya que los ventiladores no tienen que girar tan rápido.
HyperThreading
La tecnología HyperThreading es un diseño de Intel que permite al software ejecutar múltiples hilos (multi-threaded); es decir, procesar los hilos en paralelo con un único procesador, incrementando el uso de las unidades de ejecución del procesador.
Esta tecnología consistente en usar dos procesadores lógicos dentro de un único procesador físico, permite obtener una mejoría en el uso del procesador, ya que al simular dos procesadores puede aprovechar mejor los recursos del procesador y por lo tanto una mejora en la velocidad de las aplicaciones.
De todas formas, las aplicaciones que pretendan aprovechar la capacidad de la tecnología HyperThreading deben haber sido programadas para utilizar múltiples hilos de lo contrario no se conseguirá el paralelismo en la ejecución que se pretende.
Bit NX: NX significa No eXecute (no ejecutar).
Esta tecnología inicialmente desarrollada por AMD, se encarga de separar el area de memoria usada para albergar instrucciones del procesador de las usadas para almacenar datos. Para esto las zonas de memoria que albergan datos están marcadas por el llamado bit NX, que impide que las instrucciones del procesador no se almacenen en los segmentos de memoria reservados para datos.
Es una técnica utilizada para prevenir que cierto tipo de software malicioso tome el control de la máquina insertando su código en el área de almacenamiento de datos de otro programa y ejecute su propio código desde dentro de esta sección; esto se conoce como desbordamiento de búfer, y NX puede prevenirlo.

El bit NX se refiere específicamente al bit número 63 (al último bit, si el primer bit empieza en el 0, en enteros de 64 bits) en la entrada de la tabla de páginas de un procesador x86. Si este bit está marcado a 0, entonces el código puede ser ejecutado desde esa página; si está marcado a 1, el código no puede ser ejecutado desde esa página, y todo lo que ahí resida será considerado como datos.
Intel ha decidido llamarlo XD bit, que significa Execute Disable (ejecutar deshabilitado).A pesar de todo, recurre a una implementación bastante similar que el bit NX de AMD, por lo que se puede considerar que se trata de la misma tecnología.
Emulación por software
Previamente a que esta característica estuviera integrada dentro del hardware, varios sistemas operativos, como Windows XP, intentaron emularla mediante software.Un sistema operativo con la habilidad de emular las ventajas de un bit NX puede prevenir que las areas de memoria, como la pila (stack) y heap sean ejecutables, y puede prevenir que la memoria ejecutable sea escribible y por tanto vulnerable a ataques.Esto ayuda a impedir que ciertos exploits de desbordamiento de búfer tengan éxito,particularmente aquellos que inyectan y ejecutan código. Estos ataques se basan en que alguna parte de la memoria, normalmente la pila, es tanto escribible como ejecutable; y si no lo es, el ataque fracasa.

Arquitectura en pipeline
La arquitectura en pipeline consiste en ir transformando un flujo de datos en un
proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la anterior. Esta arquitectura es muy común en el desarrollo de programas para el intérprete de
comandos, ya que se pueden concatenar comandos fácilmente con tuberías (pipe).

0 comentarios:

Publicar un comentario

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best WordPress Themes