You are on page 1of 12

INTRODUCCION A PROCESADORES DIGITALES

Un computador esta compuesto principalmente por procesador, chips de memoria, varios chips inteligentes o programables, el bus de datos, el bus de direcciones, el bus de control y Unidades de entrada/salida. El procesador: Es el chip que ejecuta las instrucciones. El procesador o CPU, lleva a cabo una gran variedad de clculos, comparaciones numricas y transferencias de datos como respuesta a las peticiones de los programas que estn siendo ejecutados en memoria. La CPU controla las operaciones bsicas del ordenador enviando y recibiendo seales de control, direcciones de memoria y datos de un lugar a otro del ordenador a travs de un BUS. A lo largo de este bus estn las puertas de entrada y salida (E/S), las cuales conectan a la memoria y a los chips de apoyo al bus. Los datos pasan a travs de estas puertas de E/S mientras viajan desde y hasta la CPU y otras partes del ordenador. Por Ejemplo el procesador 8086 es un procesador de 16 bits y esto significa que el procesador va a manipular en una sla operacin datos de hasta 16 bits. Es decir, cuando transfiera datos a la memoria o los traiga desde ella, lo podr hacer de 16 bits en 16 bits. El procesador cuenta con una serie de registros usados para realizarlas operaciones de clculo, y como almacenamiento de datos. Un registro del procesador es una zona de memoria dentro del procesador donde se puede almacenar informacin, de forma que el acceso a esta informacin es instantneo, ya que no hay que utilizar el bus de datos que conecta el procesador con la memoria para obtener dichos datos.

Los registros segn sus funciones:

Registros de Propsito General: AX, BX, CX y DX. Se usan para clculo y almacenamiento de propsito general. Son utilizados por los programas para realizar clculos, as como para transferir datos de una posicin de memoria a otra, ya que no se puede hacer de forma directa. Es

Cesar Arellano Salazar

decir, que no podemos transferir un dato de la posicin de memoria X a la posicin Y sin antes depositar ese dato temporalmente en un registro del procesador. Estos registros tienen una longitud (tamao/nmero de bits que soportan) de 16 bits, pero podemos descomponerlos cuando nos interese en un par de registros de 8 bits.

AX = AH | AL BX = BH | BL CX = CH | CL DX = DH | DL

Por ejemplo el registro Ax de 16 bits, est compuesto por la conjuncin del registro AH de 8 bits (los 8 bits ms significativos o de ms a la izquierda) y el registro AL de 8 bits (los 8 bits menos significativos o de ms a la derecha). El registro AX es el llamado acumulador, hace que muchas operaciones tengan una forma ms corta, ya que lo especifican implcitamente. Es decir, que hay operaciones que actan sobre el registro AX en particular. El registro BX se suele utilizar en muchas instrucciones como registro base, sobre todo en transferencias de datos entre memoria y procesador. El registro CX es el registro contador, muchas instrucciones lo utilizan para hacer incrementos o decrementos automticos, para realizar bucles, etc.

DX es el registro de datos, se suele utilizar para operaciones de 32 bits, para almacenar los 16 bits (o palabra) ms significativos. Registros extendidos: EAX, EBX, ECX, EDX. Longitud: 32 bits.

Registros Indice: SI, DI. Se utilizan para acceder a memoria cuando se establece el modo de direccionamiento mediante indexacin. SI y DI indican el ndice fuente y destino respectivamente. Estos registros son de 16 bits, y no pueden ser utilizados como dobles de 8 registros

Cesar Arellano Salazar

bits. Registros Apuntadores: BP y SP Se utilizan para acceder a memoria cuando se establece el modo de direccionamiento mediante punteros. BP y SP indican el puntero base y el puntero de la pila respectivamente.

Registros de Segmento: CS, DS, SS y ES. CS: registro segmento de cdigo. Establece al rea donde se halla el programa en ejecucin. DS: registro segmento de datos. Especifica la zona donde el programa lee y escribe los datos por defecto. SS: registro segmento de pila. Especifica el rea donde se encuentra la pila del sistema. ES: registro segmento extra. Se utiliza como una extensin del segmento de datos. Es decir, indica otro rea de datos aparte del especificado por DS.

Puntero de instruccin: IP. Su longitud es de 16 bits como el resto de registros. Indica la direccin de la siguiente instruccin a ejecutar, y su valor es ajustado durante la ejecucin de la instruccin en curso. CS e IP en conjuncin conforman la direccin fsica real de la siguiente instruccin a ejecutar.

Registro FLAGS. O banderas de estado. Su longitud es de 16 bits. Cada uno de estos bits contiene cierta informacin booleano (verdadero o falso). Segn el valor de cada uno de estos bits sea 1(verdadero) 0(falso), informar del estado de alguna situacin en particular (evento). Los bits del registro de banderas se clasifican en dos grupos: Flags de estado (Cf, Af, Of, Zf, Pf y Sf): muestran el estado del procesador.

Cesar Arellano Salazar

Flags de control ( Df, If, Tf): determinan como el procesador responder a determinadas situaciones. El programador manipular estos bits para controlar el modo de ejecucin de algunas instrucciones.

Significado de cada uno de los flags: Cf: Bit de Carry (acarreo), se activa (se pone a 1) si se produce acarreo en una operacin aritmtica. Pf: Bit de paridad, maneja el tipo de paridad: par o impar. Af: Bit de carry auxiliar, se activa si se produce un acarreo intermedio. Zf: Bit de cero, se activa si una operacin produce 0 como resultado. Sf: Bit de signo, se activa si el bit ms significativo de un resultado es 1. Por convencin cuando se opera con nmeros negativos, se utiliza el bit de mayor peso para indicar el signo: si el bit es cero, entonces se trata de un nmero todo esto ms positivo, si es 1, se trata de nmero negativo. Ya veremos adelante.

Tf: Bit trampa. Si Tf=1, el procesador ejecuta las instrucciones una a una bajo control del usuario. Se pone a 1 este bit para realizar depuraciones del cdigo que se est ejecutando. De esta forma se puede seguir el flujo del programa. If: Bit de interrupcin, se activa por una interrupcin externa. Df: Se usa en las instrucciones que manipulan cadenas de bytes. Segn coloque el programador este bit, a '0' o a '1', las cadenas de bytes sern tratadas en sentido de direcciones crecientes o decrecientes. Of: Bit de overflow, indica desbordamiento en una operacin aritmtica.

La Memoria: Los chips de memoria se dedican a almacenar la informacin hasta que se necesita. El nmero y la capacidad de almacenamiento de estos chips que hay dentro del ordenador determinan la cantidad de memoria que podremos utilizar programas y los datos. Normalmente la memoria siempre se ha dividido en dos tipos principales, como son la RAM y la ROM. para los

Cesar Arellano Salazar

Chips inteligentes: Se trata de chips de apoyo, de los que se sirve el procesador o el usuario. Estos chips existen debido a que el procesador no puede controlar todo el ordenador sin ayuda. Al delegar ciertas funciones de control a otros chips, le queda ms tiempo libre para atender a su propio trabajo. Estos chips de apoyo pueden ser responsables de procesos tales como el flujo de informacin a travs de la circuitera interna(como el controlador de interrupciones y el controlador DMA) y controlar el flujo de informacin de uno a otro dispositivo(como un monitor o una unidad de disco) conectado al ordenador.

Bus de direcciones: El bus de direcciones del Pc utiliza lneas de seal para transmitir las direcciones de memoria y de los dispositivos conectados al bus. A travs de cada una de esas lneas pueden viajar dos posibles valores(0 1, es decir tenson alta o tensin baja), por ejemplo el ordenador 8086 tiene un bus de direcciones de 20 lneas y puede especificar 2^20. Es decir puede direccionar 1 Megabyte. Modelos superiores como el 80386 o el pentium direccionan muchsimo ms, tanto como les permite su bus: 32 bits en el caso del 386 y 64 bits en el caso del pentium. Es decir, 2^32 y 2^64 direcciones respectivamente.

Bus de datos: El bus de datos trabaja con el bus de direcciones para transportar los datos a travs del ordenador.

Bus de control: Transporta seales para sincronizar las operaciones del procesador y su

comunicacin con la memoria y los dispositivos de E/S.

Cesar Arellano Salazar

Lenguajes de bajo nivel A finales de los aos cuarenta, John von Neumman del Instituto de Estudios Avanzados de Princeton, New Jersey, con la colaboracin de H. H. Goldstine y A. W. Burks, propusieron dos conceptos importantes: 1. El sistema de numeracin usado por las computadoras debera ser el binario en lugar del decimal, dado que es ms sencillo para los componentes electrnicos el tener que representar nicamente dos estados. 2. La memoria de la computadora, adems de almacenar los datos de un programa, debera almacenar al programa mismo. La organizacin de la mquina de Von Neumman es relativamente simple. De manera general est compuesta de una unidad de control, una unidad aritmtica, una unidad de entrada/salida, y un bloque de memoria. En la memoria se almacenan datos enteros, a los cuales se les puede aplicar operaciones aritmticas cuyos resultados son depositados en un registro llamado acumulador. Es posible modificar las localidades de memoria mediante una operacin conocida como asignacin. Las instrucciones del programa se toman de la memoria y se ejecutan de manera secuencial, a no ser que se encuentre una instruccin de salto, en cuyo caso la siguiente instruccin a ejecutar debe ser tomada de la localidad de memoria indicada por dicha instruccin. Instrucciones hipotticas de una mquina de von Neumman : Instruccin A := M[i] M[i] := A A := A + M[i] A := A - M[i] A := - M[i] goto M[i] if A >= 0 goto M[i] Significado Copia al acumulador el contenido de la localidad i de memoria. Copia a la localidad i de memoria el contenido del acumulador. Suma al acumulador el contenido de la localidad i de memoria. Resta al acumulador el contenido de la localidad i de memoria. Deja en el acumulador la negacin del contenido de la localidad i de memoria. Salta incondicionalmente a la direccin contenida en la localidad i de memoria. Si el acumulador es mayor o igual a cero salta a la direccin contenida en la localidad i de memoria.

A los lenguajes que una computadora puede entender de manera directa se les conoce como lenguajes de mquina. De manera simplista, a cada instruccin de lenguaje de mquina se le asigna un cdigo de operacin, el cual es un simple nmero. Estos cdigos de operacin son almacenados en la memoria en su

Cesar Arellano Salazar

representacin binaria. Por ejemplo, para incrementar en uno el valor del acumulador en el procesador Intel X86 se tiene el siguiente cdigo de operacin en binario: 01100110 01000000

Aunque para una mquina esta serie de unos y ceros es muy lgica, para los seres humanos resulta bastante incomprensible. Es por esto que surgi una variante de lenguaje de mquina conocido como lenguaje ensamblador, en donde los cdigos de operacin junto con otros elementos de un programa son reemplazados por nombres simblicos. Dado el ejemplo anterior, su equivalente en ensamblador sera: inc ax

Aunque el ensamblador an resulta un tanto crptico, es definitivamente ms claro que su representacin binaria. Tanto al lenguaje ensamblador como al lenguaje mquina se les refiere como lenguajes de bajo nivel.

MICROPROCESADORES 8086/88, 286, 386, 486 Y PENTIUM.

Cesar Arellano Salazar

Los microprocesadores Intel 8086 y 8088 se desarrollan a partir de un procesador anterior, el 8080, que, en sus diversas encarnaciones -incluyendo el Zilog Z-80- ha sido la CPU de 8 bits de mayor xito. Poseen una arquitectura interna de 16 bits y pueden trabajar con operandos de 8 y 16 bits; una capacidad de direccionamiento de 20 bits (hasta 1 Mb) y comparten el mismo juego de instrucciones. La filosofa de diseo de la familia del 8086 se basa en la compatibilidad y la creacin de sistemas informticos integrados, por lo que disponen de diversos coprocesadores como el 8089 de E/S y el 8087, coprocesador matemtico de coma flotante. De acuerdo a esta filosofa y para permitir la compatibilidad con los anteriores sistemas de 8 bits, el 8088 se dise con un bus de datos de 8 bits, lo cual le hace ms lento que su hermano el 8086, pues ste es capaz de cargar una palabra ubicada en una direccin par en un solo ciclo de memoria mientras el 8088 debe realizar dos ciclos leyendo cada vez un byte. Disponen de 92 tipos de instrucciones, que pueden ejecutar con hasta 7 modos de direccionamiento. Tienen una capacidad de direccionamiento en puertos de entrada y salida de hasta 64K (65536 puertos), por lo que las mquinas construidas entorno a estos microprocesadores no suelen emplear la entrada/salida por mapa de memoria, como veremos. Entre esas instrucciones, las ms rpidas se ejecutan en 2 ciclos tericos de reloj y unos 9 reales (se trata del movimiento de datos entre registros internos) y las ms lentas en 206 (divisin entera con signo del acumulador por una palabra extrada de la memoria). Las frecuencias internas de reloj tpicas son 4.77 MHz en la versin 8086; 8 MHz en la versin 8086-2 y 10 MHz en la 8086-1. Recurdese que un MHz son un milln de ciclos de reloj, por lo que un PC estndar a 4,77 MHz puede ejecutar de 20.000 a unos 0,5 millones de instrucciones por segundo, segn la complejidad de las mismas (un 486 a 50 MHz, incluso sin memoria cach externa es capaz de ejecutar entre 1,8 y 30 millones de estas instrucciones por segundo). El microprocesador Intel 80286 se caracteriza por poseer dos modos de funcionamiento completamente diferenciados: el modo real en el que se encuentra nada ms ser conectado a la corriente y el modo protegido en el que adquiere capacidad de proceso multitarea y almacenamiento en memoria virtual. El proceso multitarea consiste en realizar varios procesos de manera aparentemente simultnea, con la ayuda del sistema operativo para conmutar automticamente de uno a otro optimizando el uso de la CPU, ya que mientras un proceso est esperando a que un

Cesar Arellano Salazar

perifrico complete una operacin, se puede atender otro proceso diferente. La memoria virtual permite al ordenador usar ms memoria de la que realmente tiene, almacenando parte de ella en disco: de esta manera, los programas creen tener a su disposicin ms memoria de la que realmente existe; cuando acceden a una parte de la memoria lgica que no existe fsicamente, se produce una interrupcin y el sistema operativo se encarga de acceder al disco y traerla. Cuando la CPU est en modo protegido, los programas de usuario tienen un acceso limitado al juego de instrucciones; slo el proceso supervisor -normalmente el sistema operativo- est capacitado para realizar ciertas tareas. Esto es as para evitar que los programas de usuario puedan campar a sus anchas y entrar en conflictos unos con otros, en materia de recursos como memoria o perifricos. Adems, de esta manera, aunque un error software provoque el cuelgue de un proceso, los dems pueden seguir funcionando normalmente, y el sistema operativo podra abortar el proceso colgado. Por desgracia, con el DOS el 286 no est en modo protegido y el cuelgue de un solo proceso -bien el programa principal o una rutina operada por interrupciones- significa la cada inmediata de todo el sistema. El 8086 no posee ningn mecanismo para apoyar la multitarea ni la memoria virtual desde el procesador, por lo que es difcil disear un sistema multitarea para el mismo y casi imposible conseguir que sea realmente operativo. Obviamente, el 286 en modo protegido pierde absolutamente toda la compatibilidad con los procesadores anteriores. Por ello, en este libro slo trataremos el modo real, nico disponible bajo DOS, aunque veremos alguna instruccin extra que tambin se puede emplear en modo real. Las caractersticas generales del 286 son: tiene un bus de datos de 16 bits, un bus de direcciones de 24 bits (16 Mb); posee 25 instrucciones ms que el 8086 y admite 8 modos de direccionamiento. En modo virtual permite direccionar hasta 1 Gigabyte. Las frecuencias de trabajo tpicas son de 12 y 16 MHz, aunque existen versiones a 20 y 25 MHz. Aqu, la instruccin ms lenta es la misma que en el caso del 8086, solo que emplea 29 ciclos de reloj en lugar de 206. Un 286 de categora media (16 MHz) podra ejecutar ms de medio milln de instrucciones de estas en un segundo, casi 15 veces ms que un 8086 medio a 8 MHz. Sin embargo, transfiriendo datos entre registros la diferencia de un procesador a otro se reduce notablemente, aunque el 286 es ms rpido y no slo gracias a los MHz adicionales. Por su parte, el 386 dispone de una arquitectura de registros de 32 bits, con un bus de direcciones tambin de 32 bits (direcciona hasta 4 Gigabytes = 4096 Mb) y ms modos posibles de funcionamiento: el modo real (compatible 8086), el modo

Cesar Arellano Salazar

protegido (relativamente compatible con el del 286), un modo protegido propio que permite -por fin!- romper la barrera de los tradicionales segmentos y el modo virtual 86, en el que puede emular el funcionamiento simultneo de varios 8086. Una vez ms, todos los modos son incompatibles entre s y requieren de un sistema operativo especfico: si se puede perdonar al fabricante la prdida de compatibilidad del modo avanzados del 286 frente al 8086, debido a la lgica evolucin tecnolgica, no se puede decir lo mismo del 386 respecto al 286: no hubiera sido necesario aadir un nuevo modo protegido si hubiera sido mejor construido el del 286 apenas un par de aos atrs. Normalmente, los 386 suelen operar en modo real (debido al DOS) por lo que no se aprovechan las posibilidades multitarea ni de gestin de memoria. Por otra parte, aunque se pueden emplear los registros de 32 bits en modo real, ello no suele hacerse -para mantener la compatibilidad con procesadores anteriores- con lo que de entrada se est tirando a la basura un 50% de la capacidad de proceso del chip, aunque por fortuna estos procesadores suelen trabajar a frecuencias de 16/20 MHz (obsoletas) y normalmente de 33 y hasta 40 MHz. El 386sx es una variante del 386 a nivel de hardware, aunque es compatible en software. Bsicamente, es un 386 con un bus de datos de slo 16 bits -ms lento, al tener que dar dos pasadas para un dato de 32 bits-. De hecho, podra haber sido diseado perfectamente para mantener una compatibilidad hardware con el 286, aunque el fabricante lo evit probablemente por razones comerciales. El 486 se diferencia del 386 en la integracin en un solo chip del coprocesador 387. Tambin se ha mejorado la velocidad de operacin: la versin de 25 MHz dobla en trminos reales a un 386 a 25 MHz equipado con el mismo tamao de memoria cach. La versin 486sx no se diferencia en el tamao del bus, tambin de 32 bits, sino en la ausencia del 387 (que puede ser aadido externamente). Tambin existen versiones de 486 con buses de 16 bits, el primer fabricante de estos chips, denominados 486SLC, ha sido Cyrix. Una tendencia iniciada por el 486 fue la de duplicar la velocidad del reloj interno (pongamos por caso de 33 a 66 MHz) aunque en las comunicaciones con los buses exteriores se respeten los 33 MHz. Ello agiliza la ejecucin de las instrucciones ms largas: bajo DOS, el rendimiento general del sistema se puede considerar prcticamente el doble. Son los chips DX2 (tambin hay una variante a 50 MHz: 25 x 2). La culminacin de esta tecnologa viene de la mano de los DX4 a 75/100 MHz (25/33 x 3). El Pentium, ltimo procesador de Intel en el momento de escribirse estas lneas, se diferencia respecto al 486 en el bus de datos (ahora de 64 bits, lo que agiliza los accesos a memoria) y en un elevadsimo nivel de optimizacin y segmentacin que le permite, empleando compiladores optimizados, simultanear en muchos casos la

Cesar Arellano Salazar

10

ejecucin de dos instrucciones consecutivas. Posee dos cachs internas, tiene capacidad para predecir el destino de los saltos y la unidad de coma flotante experimenta elevadas mejoras. Sin embargo, bajo DOS, un Pentium bsico slo es unas 2 veces ms rpido que un 486 a la misma frecuencia de reloj. Comenz en 60/90 MHz hasta los 166/200/233 MHz de las ltimas versiones (Pentium Pro y MMX), que junto a diversos clones de otros fabricantes, mejoran an ms el rendimiento. Todos los equipos Pentium emplean las tcnicas DX, ya que las placas base tpicas corren a 60 MHz. Actualmente los procesadores Pentium se encuentran en las versiones I. II, III y IV.

Cesar Arellano Salazar

11

BIBLIOGRAFIA ADICIONAL

I-0094
001.642 M-41 001.642 A-82

ASSEMBLER MCGRAW-HILL

1992 1 HAHN
MARCOMBO S.A. 1984 1. MELUSSON

EL MICROPROCESADOR EN ACCION

EL MICROPROCESADOR Y SUS APLICACIONES. PARANINFO

19841 ASPINALL/BARRON/COLIN/DACK/DAGLESS/DOWSING/HOARE/LLIFFE/OGDIN/VA NNESCHI 537.534 F-64


FUNDAMENTOS DE SISTEMAS DIGITALES

PRENTICE HALL 1996-2 FLOYD

001.644 W-18

LOS MICROCOMPUTADORES

URMO 1976 - 1 PARDEE/WAITE

005.265 B-82

LOS MICROPROCESADORES INTEL - QUINTA EDICION

PRENTICE HALL 2001- 5 BREY

005.265 B-82 3

LOS MICROPROCESADORES INTEL 8086/8088, 80186, 80286, 80386, Y 80486. ARQUITECTURA, PROGRAMACION E INTERFACES.

PRENTICE HALL HISPANOAMERICANA 1995- 2 BREY 001.642.11 A-58


MICROPROCESADORES FUNDAMENTOS DISEO Y APLICACIONES EN LA INDUSTRIA Y EN LOS MICROCOMPUTADORES

PARANINFO 1984- 1 ANGULO

001.642.1 A-58

MICROPROCESADORES: ARQUITETURA, PROGRAMACION Y DESARROLLO DE SISTEMAS

PARANINFO 1984 - 1 ANGULO USATEGUI

Cesar Arellano Salazar

12