domingo, 16 de septiembre de 2012

Historia del Microprocesador Arquitectura Intel

Que es un microprocesador?
Es un circuito integrado conformado por millones de componentes electrónicos. Constituye la unidad central de procesamiento (CPU) de un PC catalogado como microcomputador.

Cual es su función?
Es el encargado de ejecutar los programas; desde el sistema operativo hasta las aplicaciones de usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones aritméticas y lógicas simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria.

Historia
Microprocesador 4004
Fue el primer microprocesador que se lanzo al mercado. Era de solo 4 bits capaz de direccionar 4096 localidades de memoria de 4 bits de ancho.
Contaba con un conjunto de 45 instrucciones y se usaba para videojuegos y sistemas de control.

Microprocesador 8008
Debido a que cada vez se necesitaban hacer operaciones mas complejas llego el micro 8008 que tenia 8 bits. Con esto se amplio la capacidad de direccionamiento de 16Kb.
Memoria de 8 bits.
Conjunto de 48 Instrucciones.

Los gemelos 8086/8088
Desarrollados por intel y los antecesores de los actuales microprocesadores del mercado.

 El trabajo de desarrollo para el 8086 comenzó en la primavera de 1976 y el chip fue introducido al mercado en el verano de 1978. El 8088 fue lanzado en 1979.

El 8086 y el 8088 ejecutan el mismo conjunto de instrucciones. Internamente son idénticos, excepto que el 8086 tiene una cola de 6 bytes para instrucciones y el 8088 de sólo 4. Exteriormente se diferencian en que el 8086 tiene un bus de datos de 16 bits y el del 8088 es de sólo 8 bits, por ello, el 8086 era más rápido. Por otro lado, el 8088 podía usar menor cantidad, y más económicos, circuitos lógicos de soporte, lo que permitía la fabricación de sistemas más económicos.


80286
Una de las características interesantes de este procesador es que fue el primer procesador x86 con modo protegido(Mas adelante se dedicara gran parte de este blog a su entendimiento), en el cual existían cuatro anillos de ejecución y división de memoria mediante tablas de segmentos.
Al tener un bus de direcciones de 24 bits, es capaz de direccionar hasta 16 MB de memoria RAM, mientras que el 8086 sólo puede direccionar 1 MB.

80386
El predecesor del i386 fue el Intel 80286, un procesador de 16 bits con un sistema de memoria segmentada. El i386 añadió una arquitectura de 32 bits y una unidad de traslación de páginas, lo que hizo mucho más sencillo implementar sistemas operativos que emplearan memoria virtual.

Intel introdujo posteriormente el i486, pero ni éste ni sus sucesores han introducido tantos cambios en la arquitectura x86 como el i386 con su sistema de direccionamiento plano de 32 bits. Otros microprocesadores, como el Motorola 68000 tenían direccionamiento plano desde mucho antes.

80486

Los Intel 80486 (i486, 486) son una familia de microprocesadores de 32 bits con arquitectura x86 diseñados por Intel Corporation.
Los i486 son muy similares a sus predecesores, los Intel 80386. Las diferencias principales son que los i486 tienen un conjunto de instrucciones optimizado, una unidad de coma flotante y un caché unificado integrados en el propio circuito integrado del microprocesador y una unidad de interfaz de bus mejorada. Estas mejoras hacen que los i486 sean el doble de rápidos que un i386 e i387 a la misma frecuencia de reloj. De todos modos, algunos i486 de gama baja son más lentos que los i386 más rápidos.
Intel Pentium

Intel Pentium es una gama de microprocesadores de quinta generación con arquitectura x86 producidos por Intel Corporation.
El primer Pentium se lanzó al mercado el 22 de marzo de 1993,  con velocidades iniciales de 60 y 66 MHz, 3.100.000 transistores, cache interno de 8 KiB para datos y 8 KiB para instrucciones; sucediendo al procesador Intel 80486. Intel no lo llamó 586 debido a que no es posible registrar una marca compuesta solamente de números.

La aparición de este procesador se llevó a cabo con un movimiento económico impresionante, acabando con la competencia, que hasta entonces producía procesadores equivalentes, como es el 80386, el 80486 y sus variaciones o incluso NPUs.
Las siguientes empresas fueron afectadas por la aparición del Pentium:
Advanced Micro Devices, Mejor conocida como AMD. Tuvo que crear sus procesadores desde cero. Este es el K5 y el K6 (A estos procesadores se los bautizó así debido a que "K" significa Kriptonita, y como se sabe, la Kriptonita debilita al super-héroe de historietas y películas Superman esto es en consecuencia a lo que le hizo Intel a sus competidores con la aparición de Pentium)
Cyrix, que producía muy buenos 486, luego fue adquirida por VIA
Harris
LU-MATH
Estas últimas dos no fueron muy conocidas aunque sus versiones de procesadores de alto rendimiento (como el Harris 80386) llegaron tarde y lamentablemente no pudieron hacerse un hueco en el mercado.

Actualidad
Ahora tenemos micros mas poderosos que los que acabo de mencionar pero todos ellos se basan en la arquitectura intel x86, también hubo un tiempo en el que Motorola se dedico a la producción de este circuito integrado. Nos interesa conocer lo básico de los Intel ya que en este blog se darán tutoriales e información sobre la programación sobre Intel que también tiene compatibilidad con AMD su principal competencia. Mas adelante se verán temas como la arquitectura de 8088/8086, conjunto de registros, modos de direccionamiento y despues entrar de lleno a el Lenguaje Ensamblador.
Procesadores mas actuales:

Intel Core Duo





viernes, 14 de septiembre de 2012

Historia del Lenguaje Ensamblador

Para poder programar en Bajo nivel(Ensamblador) debemos conocer desde lo básico hasta lo mas complicado.
La primera computadora programable fue la ENIAC en 1946 pero se programaba mediante circuitos complejos que no eran nada funcionales. Después se empezó a utilizar el lenguaje maquina que son claves binaras que representan un CÓDIGO DE OPERACIÓN(OPCODE). Estas se almacenan en grupos de instrucciones llamados PROGRAMAS.

ENIAC
Esto llego a ser muy complicado debido a que se debían aprender series enormes de códigos binarios para realizar operaciones. Por ejemplo:
Para realizar la suma se tenia una instrucción binaria muy similar a "00101010010100101". Es por eso que se complicaba demasiado manejar este tipo de programación.

Actualmente manejamos lenguajes de Alto nivel que son relativamente sencillos a comparación con el lenguaje maquina. Pero no se llego al alto nivel desde el código binario, existe un lenguaje que nació para facilitar el binary code. Este se llama "LENGUAJE ENSAMBLADOR".

QUE ES EL LENGUAJE ENSAMBLADOR?
Es la primera abstracción del lenguaje maquina , consiste en asociar los OPCODE con palabras clave que sean fáciles de recordar para el programador.
A estas palabras clave se les llama MNEMÓNICOS.
Un programa ensamblador traduce el o convierte el codigo fuente(ensamblador) a codigo objeto(lenguaje maquina).
La computadora UNIVAC fue la primera en usar ensamblador.
UNIVAC
Que necesito saber antes de usar lenguaje ensamblador?(OJO)
-Conocer a detalle como traba el micro.
-conocer a detalle como opera la computadora(Memoria, discos duros, dispositivos E/S)
-Lógica computacional.
-Manejar algún lenguaje de alto nivel(C, C++, C#, Pascal, Perl, VB, JAVA, etc...)
-Manejo del sistema binario y hexadecimal(suma, resta, multiplicación, división).

Que ventajas ofrece el lenguaje ensamblador?
-Optimizan al máximo los programas en tamaño y velocidad.
-Rápidos y compactos.
-No genera código predefinido como el alto nivel.
-No se necesita capacidades de memoria ni computadoras sofisticadas.
-Nos da habilidades de programación avanzada.

Que desventajas tiene?(OJO)
-Una instrucción mal interpetada puede generar un caos en nuestro equipo al grado de tener que reiniciar nuestra maquina.
-La insuficiencia de conocimientos básicos y de programación causa efectos impredecibles.
-Se vuelve mas complejo conforme se agregan rutinas y funciones.
-Se pueden usar con lenguajes de alto nivel(PROGRAMACIÓN HÍBRIDA).

Aplicaciones actuales.
Sistemas embebidos: Impresoras, cámaras, autos, armas, juguetes.
Tiempo real: Control de robots, manufactura, adquisición de datos.
Transporte: Barcos, aviones, sondas espaciales.
Entretenimiento: Graficacion, multimedia, videojuegos.
DSP: Procesador digital de señal para operaciones a alta velocidad.
Procesamiento de señales, voz e imagen:
-aparatos médicos
-aparatos para datos sísmicos
-reproductores de audio
-modems
-cámaras digitales.

En el próximo post veremos toda la información relevante de los Microprocesadores Intel 8088/8086