Sei sulla pagina 1di 52

ARQUITECTURA DE UNA COMPUTADORA EL MICROPROCESADOR El microprocesador (M/P) es el alma del ordenador.

Se compone en la mayora de los casos por un nico circuito integrado, denominado vulgarmente "chip", en cuyo interior se encuentra la Unidad Central de Proceso o CPU (del ingls Central Processing Unit). La CPU, operando siempre bajo el control de un programa, es capaz de realizar diferentes tipos de operaciones sobre los datos de entrada, es decir aquellos que entran en ella, produciendo unos resultados o datos de salida. Las operaciones que realiza pueden clasificarse en los siguientes grupos: Operaciones de tipo aritmtico. Operaciones de tipo lgico. Operaciones de control de los dispositivos de entrada y salida. Operaciones de control de las funciones internas del M/P.

Las operaciones aritmticas se basan en la operacin suma, facilitando el conjunto de operaciones aritmticas conocidas (suma, resta, multiplicacin,...) mediante la combinacin de sumas normales y sumas en complemento a dos. Las operaciones lgicas proveen la facultad de trabajar en el lgebra booleana. Para ello suministran los operadores lgicos clsicos: AND, OR, NOT OR-exclusivo, etc. La operacin AND (&) es equivalente al "Y" lgico, el OR (v) es equivalente al "O" lgico y la operacin NOT se representa por () y equivale a la negacin.

Los dos conjuntos de operaciones anteriormente mencionadas son realizados por la unidad aritmtico-lgica (que como se ver ms adelante es uno de los elementos integrantes de la CPU). Las operaciones de control de los dispositivos de entrada y salida posibilitan la lectura y escritura de informacin en la memoria, utilizando sta como un mecanismo de comunicacin con los dispositivos externos o bien accediendo directamente hacia ellos. Las operaciones de control de las funciones internas se encargan de gestionar el procesamiento de la informacin, tanto a nivel interno como externo. Para ello utiliza los registros que indican el estado de funcionamiento de cada una de las operaciones elementales. Un ejemplo es la validacin de los datos de entrada a travs del bit indicador de paridad; cuando la paridad es par (la cantidad de unos del dato de entrada es par) este registro se pone a 1 indicando que el valor es correcto, siendo admitido por la CPU. Estos dos ltimos conjuntos de operaciones son provistos por otra parte fundamental del microprocesador, la unidad de control.

MICROPROCESADORES (ESPECIFICA)

DEDICADOS

TAREA

En este apartado se har una breve mencin a un tipo de procesadores especficos, sin pretender analizarlo en profundidad. Nos referimos a los procesadores de seal.
Una de las aplicaciones principales de los microprocesadores de propsito especfico es la de controlar el funcionamiento de las centrales telefnicas digitales

Los procesadores de seal han surgido debido al cada vez mayor empuje de las tcnicas digitales frente a las tcnicas analgicas. Estos procesadores presentan como principal ventaja la sencillez de su implementacin, ya que se reducen

notablemente los clculos a la hora de disear filtros que son implementados con ellos. Mediante el uso de esas tcnicas pueden desarrollarse fcilmente filtros FIR (Finite Impulse Response) y filtros IIR (Infinite Impulse Response). Mediante estos filtros pueden desarrollarse de una forma rpida y sencilla las comunicaciones telefnicas digitales. La principal caracterstica de estos microprocesadores es su capacidad de procesar una misma instruccin un nmero elevado de veces, todas ellas al mismo tiempo con diferentes datos de entrada, o tambin la de procesar una misma entrada de datos de un conjunto elevado de diferentes procesos al mismo tiempo. Los microprocesadores dedicados a tarea especfica en suma, han hecho posible e auge de la tcnica de conmutacin digital frente a la analgica. Hoy da, las centrales de este tipo se van imponiendo frente a las anteriores. No va a comentarse nada ms sobre estos microprocesadores, salvo mencionar que este tipo de dispositivos son la base fundamental de los microprocesadores de propsito especfico.

ESTRUCTURA INTERNA DE UN MICROPROCESADOR Los elementos que componen un microprocesador son: Detalle de un microprocesador Unidad Aritmtico-Lgica (UAL). Unidad de Control (UC). Decodificador de instruccin (ID). Contador de Programa (PC). Registros: Registro Acumulador (A). Registro de Instruccin (IR). Registros internos de trabajo (AR1, AR2....). Registros de Stack o Pila. Registros Indicadores (F).

Todos estos elementos estn interconectados dentro del microprocesador por medio de varios buses de datos internos.

EL CEREBRO DE LA MAQUINA Si se compara un ordenador con el ser humano, slo a nivel de elementos, se llega fcilmente a la conclusin de que lo que para el ser humano es el cerebro, para el ordenador lo es el microprocesador. Se trata de una comparacin a ttulo ilustrativo, pues ningn microprocesador tiene las capacidades del cerebro humano, pero la funcin es la misma. Este minsculo elemento es el que procesa toda la informacin y reparte el trabajo entre los dems elementos que componen el ordenador. Es, por tanto, el gestor y planificador de todas las operaciones que vayan a realizarse. Vamos a ilustrar con un ejemplo el funcionamiento de la unidad aritmtico-lgica.

La UAL (Unidad Aritmtico-Lgica) y la UC (Unidad de Control) trabajan a la par. Cuando el usuario ingresa un dato, a la UAL le llega, procedente de la UC, la orden de sumar dos nmeros procedentes de memoria, uno proveniente del registro acumulador y otro del registro de datos. El valor almacenado en el registro de datos es el dato ingresado y el valor almacenado en el registro acumulador es el resultado de alguna operacin previa. La operacin que debe realizar la UAL es sumar el dato ingresado con el resultado de la operacin previa. Esta suma la pondr la UAL en el registro acumulador e indicar a la UC que est listo para realizar otra operacin. Si es la ltima operacin que debe realizar, devolver el valor depositado en el acumulador para que sea guardado en memoria. Aunque los resultados que se ven son ms complejos, el pequeo cerebro electrnico solamente realiza cuatro tipos de operaciones: operaciones aritmticas, operaciones lgicas, operaciones de control de los dems elementos integrantes y operaciones de control de funciones internas. Estas operaciones de control las realiza la unidad de control. Al ingresarse un dato, este es guardado en memoria. Los bloques de la memoria se identifican por un nmero referente a su posicin. Supngase que la posicin de memoria donde se almacena el dato es, por ejemplo, la "C3". En otra posicin, por ejemplo, la "B8", se guarda la operacin que hay que realizar: "ADD C3, A5". Por ltimo, se deposita el nmero de la posicin de memoria en que se almacena la operacin a realizar en el registro de instrucciones de la UC. La UC recibe el dato almacenado en el registro de instrucciones que contiene la posicin de memoria donde se encuentra la operacin a realizar ("B8") se dirige a esa posicin y recoge las instrucciones que debe ejecutar. La UC decodifica del dato de la posicin B8 para determinar la instruccin. Despus de determinar dicha instruccin, llega a la conclusin de que lo que tiene que hacer es sumar el nmero que est en la posicin "C3" al resultado de la operacin previa que est en la posicin "A5" y que el resultado debe guardarlo

de nuevo en la posicin "A5". Una vez determinada la instruccin, da las rdenes necesarias para que el nmero de la posicin "C3" sea trasladado al registro acumulador de la UAL y el nmero de la posicin "A5" sea trasladado al registro de datos. Una vez que la UAL ha realizado sus operaciones, el resultado final lo deposita en el acumulador y avisa a la UC de que la operacin ya ha sido realizada. Entonces la UC ordena que este resultado sea trasladado nuevamente del registro acumulador a la posicin de memoria A5.

MICROPROCESADORES DE PROPOSITO GENERAL A la hora de tratar este tema, se seguir un enfoque histrico. Como puede suponer, los modelos estndares se realizan despus del desarrollo, y en el caso de la informtica no caba la posibilidad de esperar lo contrario. A lo largo de la breve historia de la informtica, un grupo numeroso de compaas lanz al mercado un conjunto considerable de microprocesadores, desde aquellos que funcionaban con 4 bits de palabra hasta los ms modernos que aspiran a funcionar con palabras de 256 bits. Sin embargo, hoy da existen dos metodologas perfectamente contrastadas y con filosofas muy diferentes, presentes en la compaa Motorola y en la compaa Intel respectivamente. Si bien es cierto que ambas compaas producen microprocesadores de propsito especfico, sus productos ms comercializados son de propsito general. La compaa Intel presenta al mercado un abanico de posibilidades desde el 8086 hasta el Pentium en sus ltimas versiones. Los ordenadores Macintosh utilizaban la familia de microprocesadores creada por la empresa Motorota

La principal caracterstica de estos microprocesadores es la estructuracin determinstica, impuesta por la casa fabricante, de las posiciones de memoria RAM que utiliza cada dispositivo y bloque funcional del sistema computador completo. Esto supone como contrapartida la posibilidad de unos mayores modos de direccionamiento y la seguridad al ingeniero de sistemas de que cada cosa est en una posicin determinada de memoria. Sin embargo, a su vez, esta caracterstica limita mucho la libre decisin del ingeniero software a la hora de programar una aplicacin. Es importante mencionar tambin que el desarrollo del sistema operativo DOS al igual que el desarrollo y evolucin de los ordenadores personales se debe, en gran medida, a la arquitectura esttica y perfectamente definida de Intel. Con respecto a la compaa Motorola, hay que remontarse al microprocesador 6502 hasta llegar al 68030. Estos microprocesadores presentan una estructura completamente opuesta a los fabricados por Intel. En todo momento permiten al usuario hacer lo que quiera con la memoria RAM de su ordenador, situando la RAM de vdeo en cualquier parte de la memoria del ordenador. Adems otra importante ventaja es que presentan una sencilla, pero a su vez completa, metodologa de programacin en lenguaje ensamblador, por esta razn la mayora de los videojuegos (que estn programados en cdigo ensamblador) se ejecutan bajo microprocesadores Motorola. Como ejemplo de esto se puede citar el famoso ordenador AMIGA de la casa Commodore que utiliza un microprocesador 68000. Otro aspecto de inters es que la mayora de los sistemas, (miniordenadores, "workstation" -estaciones de trabajo-, "mainframe" -ordenadores centrales-, "hosts" ordenadores conectados a redes de comunicacin-) estn implementados con microprocesadores 68000-68020; y es ms, el desarrollo de sistemas operativos

como Unix System V, Unix 4.2Berkeley, sobre estos mismos microprocesadores.

VMS, etc,

funcionan

LA UNIDAD ARITMETICO-LOGICA (UAL) Tambin denominada unidad de clculo, es la encargada de efectuar el conjunto de operaciones aritmticas y operaciones lgicas con que est dotado el ordenador. El tipo de informacin que procesa esta unidad son datos tanto de entrada como de salida, siendo estos ltimos resultados parciales o finales de una determinada operacin. Estos datos proceden o se destinan a la memoria interna (RAM) del sistema. Un ordenador procesa los datos de forma automtica para obtener as los resultados que se buscan. Se puede observar que un ordenador es la unin de tres elementos: Esquema operativo de una unidad central de proceso Dispositivos de entrada Unidad de proceso Dispositivos de salida

Se puede decir que la Unidad Central de Proceso dirige y supervisa el conjunto del ordenador, es decir, ejecuta operaciones aritmticas y lgicas con los datos. La Unidad de Proceso ha de tener dos caractersticas bien definidas: 1. Ha de ser capaz de reconocer y ejecutar una serie de instrucciones (programa) elementales en base a las cuales se puede realizar cualquier proceso de datos deseado, por complejo que sea ste.

2. Ha de tener separadas dos estados diferentes. En una primera fase ha de poder recibir y memorizar las instrucciones que configuran el proceso pedido (introduccin del programa) y en segunda fase debe ejecutar en secuencia las instrucciones recibidas (ejecucin del programa). Al realizar esta ejecucin se leern los datos que se necesiten a travs de un dispositivo de entrada de datos en el momento en que sean requeridos, realizndose las operaciones que forman el proceso hasta la obtencin de los resultados, los cuales sern enviados al usuario a travs de un dispositivo de salida. A travs de estas caractersticas, se puede observar que la Unidad Central de Proceso est compuesta por tres partes fundamentales: Unidad de Control Unidad Aritmtico-Lgica Memoria Central

La unidad de proceso dirige y supervisa el conjunto del ordenador, es decir, ejecuta operaciones aritmticas y lgicas con los datos.

La unidad aritmtico-lgica (UAL) se compone de los siguientes elementos: uno o varios registros acumuladores y un conjunto de circuitos lgicos u "operadores" encargados de realizar las operaciones lgicas y aritmticas En el caso que se utilice un microprocesador para una aplicacin determinada. eldiseador del sistema requerir al fabricante un conjunto de operaciones de clculo especiales que debern ser suministradas junto con las de propsito general existentes en cualquier microprocesador. Esta unidad dispone, como mnimo, de dos entradas de datos (operandos) que provienen una del registro acumulador y

otra del registro de datos y una salida, que normalmente se enva al acumulador. La UAL recibe dos nmeros de 8, 16 bits, etctera, denominados operandos, uno que viene del registro acumulador y otro que viene del registro de datos. Estos dos operandos son sometidos la operacin definida por las rdenes de control y el resultado se almacena de nuevo en el acumulador desapareciendo la informacin antigua. Si este resultado es final, se enviar a la memoria principal para ser almacenado, pero si el resultado parcial, ser introducido de nuevo en la UAL como operando de una nueva operacin aritmtica o lgica. En ordenadores evolucionados, los registros existentes en la UAL son varios, incluso a veces es una pequea memoria de lectura y escritura la que sustituye a este bloque de registros (memoria cach). Adems de los operandos y los registros acumuladores y de datos, existen unos registros denominados indicadores o flags cuyo estado es detectado por la unidad de control para supervisar los resultados de ciertas operaciones, por ejemplo el registro de estado. Algunos de estos indicadores son: Indicador de desbordamiento ("overflow") que adopta el valor 1 cuando, al realizar una operacin, el resultado no "cabe" en el acumulador. Indicador de paridad que pasar a un estado (cero o uno) indicando si la condicin preestablecida entre el nmero de ceros y unos es no satisfecha. Indicador de cero, cuyo estado indica si el resultado de la ltima operacin efectuada fue o no igual a cero.

LA UNIDAD DE CONTROL

Es el elemento que regula el flujo de informacin (instrucciones y datos) dentro del sistema, es decir, es la unidad encargada de gobernar el funcionamiento del microprocesador. Bsicamente, las funciones de una unidad de control son: Bsqueda de instrucciones en la memoria. Decodificacin, interpretacin y ejecucin de las instrucciones. Control de la secuencia de ejecucin (determinacin de la siguiente instruccin a ejecutar). Reconocimiento de interrupciones, peticin de acceso directo a memoria, rdenes de paro, espera, etc. Esta unidad recibe la informacin, la transforma, la interpreta y enva las rdenes precisas a los elementos que las requieren para la adecuada ejecucin del proceso a realizar. Es la que dirige todas las actividades del ordenador, o sea, es responsable del correcto funcionamiento de los restantes componentes de la Unidad Central de Proceso. Su funcin es la de posibilitar la actuacin coordinada de todos los elementos que, en cada momento, hayan de intervenir en un proceso concreto. Cabe decir, en este sentido, que la Unidad de Control debe gobernar el funcionamiento de los perifricos de entrada, salida y almacenamiento, al tiempo que las actuaciones de la Memoria Central y la Unidad Aritmtico-Lgica. Por esta razn es la encargada de interpretar el programa del que recibe las instrucciones, codificadas convenientemente, as como de enviar las rdenes oportunas a las unidades perifricas implicadas. La Unidad de Control utiliza una seal generada por un reloj interno con objeto de sincronizar el funcionamiento operativo de cada elemento. Esta tarea es de carcter

fundamental, ya que, en caso contrario, no podra establecerse un ritmo de operacin adecuado que controlara la velocidad de trabajo de cada componente en particular. Se comprende fcilmente que de la mayor o menor frecuencia del reloj interno, depender la capacidad de hacer un nmero mayor o menor de instrucciones por segundo. No todas las instrucciones que tenga que ejecutar la Unidad de Control consumen el mismo nmero de seales generadas por el reloj, sino que las instrucciones complejas necesitarn ms ciclos que una instruccin simple. En cualquier caso, la Unidad de Control se encargar de las siguientes funciones: Fijar si el ordenador est en fase de introduccin del programa o en fase de ejecucin del mismo. Decodificar la instruccin en curso y, segn sea el cdigo de operacin de la misma, mandar seal para que acte la Unidad Aritmtico Lgica a una Unidad de Entrada o a una Unidad de Salida. Verificar de que se efectan los traspases de informacin entre los registros y la memoria principal y viceversa. Llevar el control de cul es la instruccin que en cada momento se est ejecutando y cul es la instruccin que deber de seguirle a continuacin. En la etapa de introduccin del programa, la Unidad de Control activa la unidad de entrada de datos y controla que las sucesivas instrucciones que componen el programa vayan siendo almacenadas en posiciones contiguas de memoria. En la fase de ejecucin del programa, la Unidad de Control decodifica la primera instruccin del programa y segn sea la naturaleza de dicha instruccin encarga su ejecucin al dispositivo adecuado: las entradas y salidas a los perifricos o al

canal (gestiona la unidad de control de cada perifrico) y las operaciones aritmticas y lgicas al procesador. Los elementos que componen la unidad de control son el registro de instruccin, decodificador de instruccin, el secuenciador y el registro contador de programa. El registro de instruccin es el receptor de la informacin dirigida a la unidad de control. Esta informacin es siempre una instruccin procedente de la memoria principal a travs del bus de datos. Para que la instruccin pueda acceder al registro, primero debe activarse una seal de control que permita la transferencia en paralelo de los bits contenidos en los hilos del bus a las respectivas clulas del registro. La informacin contenida en el registro de instruccin es interpretada por la unidad de control mediante la divisin en tres campos independientes entre s. Estos campos son genricamente: Cdigo de operacin (CO): este campo siempre existe. El nmero de bits que lo componen deber ser suficiente para que cada instruccin est definida perfectamente y vara segn el juego de instrucciones de cada tipo de microprocesador. Campo(s) de direccionamiento(s) CD: tambin existe siempre aunque a veces es ignorado por algunos cdigos de operacin. El contenido de este campo es la direccin de la posicin de la memoria principal para acceder a un operando o para acceder a la siguiente instruccin a ejecutar. Modo(s) de direccionamiento: generalmente existe pero puede no existir. Su contenido indica a la unidad de control el modo en que est direccionada la instruccin en la memoria.

El decodificador de instruccin es el elemento encargado de transformar el contenido del cdigo de operacin almacenado en el registro de instruccin en una informacin ms amplia e inteligible por el secuenciador. El secuenciador es un autmata (mquina de Mealy o Moore) que, tras analizar e interpretar la informacin de entrada (salida del decodificador, registro de estado, reloj), enva un conjunto de seales a las unidades que las precisen para proceder a la ejecucin de la instruccin y para llevar a cabo el inicio de la siguiente. Estas seales que enva el secuenciador se conocen con el nombre de "micro rdenes". El registro contador de programa es un indicador que apunta siempre a la prxima instruccin que se debe ejecutar, es decir. el registro contador contiene la informacin de la direccin de la memoria en la que se encuentra la siguiente instruccin a ejecutar. Cada vez que se ejecuta una instruccin. elcontador se incrementa dando la direccin de la prxima instruccin. Sin embargo, dentro de las instrucciones hay algunas que permiten modificar directamente el contenido del contador. Con ello se consigue romper la secuencia y alterar el orden de ejecucin del programa (instrucciones de salto. tanto condicional como incondicional a una posicin absoluta o relativa de la memoria). Aunque este tipo de instrucciones sern analizadas posteriormente, puede servir como ejemplo el efecto producido por la instruccin GOTO del lenguaje BASIC. Registro de pila o stack este registro contiene informaciones que posteriormente desean ser recuperadas. Cuando durante la ejecucin de un programa se encuentra una llamada a una subrutina, es decir, se va a ejecutar un programa auxiliar dentro del programa principal para retornar luego a ste, antes del salto a la subrutina se almacena en la pila la direccin contenida en el contador de programa. Al terminar la ejecucin de la subrutina esta direccin almacenada en la pila se

recupera y pasa al contador de programa, con lo que puede continuarse de nuevo la ejecucin del programa principal. En este caso el stack se utiliza como una pila de direcciones donde la ltima direccin en entrar es la primera en salir. A este proceso se le conoce tcnicamente como gestin LIFO (LastInput. First Output: ltima entrada, primera salida). Existen dos tipos de pilas dentro de los microprocesadores. En un primer tipo la pila est incluida dentro del propio microprocesador. Este dispone de unos registros internos destinados a funcionar como pila. Estos registros varan en nmero segn la clase de microprocesador. Lgicamente. la capacidad de la pila depende de la cantidad de registros del propio microprocesador. Otro tipo de pila consiste en un solo registro en el interior del microprocesador. En este caso el registro de pila contiene la direccin inicial de una zona de la memoria principal encargada de realizar las funciones de pila. A este registro nico utilizado como indicador de una direccin de memoria, se le conoce como "Stack Pointer" (puntero a la pila). Cuando se desea salvar un registro, se hace en la direccin de la memoria a la que seala el Stack Pointer. Posteriormente ste se incrementa para hacerlo apuntar a la siguiente direccin de memoria libre. De esta manera se tiene una pila limitada slo por la capacidad de la memoria principal disponible. Adems del sistema de gestin LIFO se pueden realizar otros sistemas de gestin tales como FIFO ( First InputFirst Output: primero en entrar primero en salir). Otra caracterstica importante de la pila es que permite la anidacin de llamadas a diferentes subrutinas, o, en el caso de existir recursividad, la llamada reiterada a si misma. Este sistema de gestin permite la realizacin de programas estructurados con

un bajo coste en cdigo y con una no desdeable disminucin del rendimiento en la ejecucin. Registros internos estos registros son internos al propio microprocesador y son utilizados por ste para almacenar datos o resultados intermedios de operaciones. La principal ventaja de estos registros es la velocidad con que es capaz de operar el microprocesador con ellos; de no existir estos, la CPU tendra que memorizar los datos intermedios en la memoria principal, con lo que se retrasara de forma notable la ejecucin de cada funcin, ya que las operaciones de lectura y escritura son ms rpidas en un registro interno de la CPU que en la memoria principal. Esto es debido a que es necesario direccionar la posicin a que se van a enviar los datos mediante el bus de direcciones y a continuacin enviar los datos a travs del bus de datos. El nmero de registros internos vara con el tipo de microprocesador. As mismo, la capacidad de los registros viene dada por cada microprocesador. Adems, la correcta utilizacin de los registros internos permite la concurrencia y, en consecuencia, la ejecucin en paralelo, de varias instrucciones. Por ejemplo, si se tiene un registro interno que almacena la direccin de la siguiente instruccin, al mismo tiempo que el secuenciador da las rdenes para su ejecucin, el multiplexador puede extraer de la memoria la instruccin siguiente, pasarla al decodificador e incluso interpretarla. De este modo se puede observar un aumento notable en la velocidad de ejecucin. Esta es la metodologa que emplean los microprocesadores denominados "bitslice", siendo el punto de referencia a la hora de alcanzar la ejecucin paralela completa y, por tanto, la inteligencia artificial. Registros indicadores los registros indicadores estn formados por un conjunto de bits que varan en cada operacin realizada por el microprocesador atendiendo al resultado

obtenido en ella. Tambin se almacena en estos registros el modo de trabajo del microprocesador o el estado del mismo. El nmero de indicadores vara segn el modelo de microprocesador; no obstante hay indicadores fijos para cada modelo diferente, como el indicador de acarreo ("carry") o de desbordamiento ("overflow"). Este ltimo indicador se activa cuando, al realizarse una operacin aritmtica, se sobrepasa la capacidad de almacenamiento del acumulador. El acumulador es un registro de 8, 16 o ms bits. Como es sabido un bit slo es capaz de mantener dos estados, denominados 0 y 1. Debido a la limitacin en el nmero de bits, cuando el resultado de una operacin da un nmero cuyo valor binario supera en cifras el nmero de bits del acumulador, el indicador de acarreo se pone a 1 y en el acumulador se almacena la diferencia entre el resultado de la operacin y el nmero mximo capaz de almacenar el acumulador. Indicador de signo: despus de una operacin aritmtica, cuando el resultado que se almacena en el acumulador es de signo negativo, este indicador se pone a 1, cuando el resultado es positivo el indicador de signo permanece a 0. Existen, por ltimo, otros indicadores que varan en funcin de la arquitectura propia de cada microprocesador y son los encargados de la atencin a interrupciones. Este mecanismo de atencin a interrupciones puede realizarse de un modo directo o bien mediante el uso de una mscara la cual permite o inhibe la ejecucin de la rutina de atencin a la interrupcin. La Unidad Aritmtico-lgica es la encargada de descifrar las instrucciones que componen el programa almacenado en la Memoria y encargarse de su ejecucin en la secuencia programada, es decir, tiene por misin la ejecucin de las operaciones matemticas bsicas y lgicas. Las operaciones bsicas son:

"+" Sumar "-" Restar "*" Multiplicar "/" Dividir Las operaciones lgicas son: "No" lgico "Y" lgico "O" lgico Slo con estas operaciones bsicas es procesada toda la informacin y se obtienen los resultados esperados. Es asombroso que, con slo estas operaciones, se pueda construir todo un sistema de pensamiento vlido para cubrir completamente cualquier tipo de necesidad informtica. El conjunto formado por la Unidad de Control y la Unidad Aritmtico-Lgica se denomina Procesador Central. Para entender mejor todo el proceso de trabajo de un ordenador, se realizar un smil didctico con el que se tratar de emular el comportamiento de un ordenador mediante un empleado metdico. El ejemplo consta de los siguientes elementos: Un empleado llamado CONTROL. Una mesa de escritorio con el siguiente material: 1. una hoja de papel dividida en casillas numeradas, 2. un bloc para tomar notas, 3. una calculadora, 4. una bandeja para recibir hojas con informacin, 5. una bandeja para entregar hojas con los resultados, 6. un lpiz para escribir y una goma para borrar.

Para que CONTROL pueda trabajar, necesita que le pasen los datos necesarios en hojas de papel y depositar todo el conjunto de hojas en la bandeja de recepcin de datos. CONTROL pasar las instrucciones recibidas a la hoja dividida en casillas sin indicar ningn comentario sobre la correccin de las mismas. Escritas todas las instrucciones recibidas, CONTROL pasar a su lectura y ejecucin. Coger la primera casilla y copiar la instruccin depositada en ella en el bloc de registros para analizarla. Si entiende la instruccin realizar los clculos necesarios, pero si no la entiende, quedar detenido hasta que se le ayude a entenderla. Las instrucciones que es capaz de realizar son las siguientes: 1. las cuatro operaciones aritmticas, 2. coger los datos de la bandeja de entrada y copiarlos en la hoja de casillas numeradas, 3. coger los datos de la hoja de memoria, hoja de casillas, y los copiar en una hoja para depositarla en la bandeja de salida, 4. comparar nmeros y ver cul es el mayor, 5. efectuar la instruccin siguiente, 6. detenerse. Despus de cada instruccin, CONTROL leer la prxima casilla de instruccin y la ejecutar, a medida que se apunta en el bloc de registros cual es la casilla que le toca la prxima vez.

SECUENCIADOR DE MICROPROGRAMA El secuenciador es el centro neurlgico de gestin, control y planificacin del microprocesador, por tanto su funcin es fundamental para el desarrollo de cualquier instruccin software. A la hora de realizar un secuenciador pueden tenerse presente dos polticas de diseo: histricamente, la primera es la cableada. Esta metodologa convierte el secuenciador de la mquina en un autmata finito determinista (mquina de Mealy o mquina de Moore). Los secuenciadores as diseados tendrn siempre la misma funcionalidad, y slo mediante una modificacin hardware podr ser cambiada; esto obliga a un costoso desarrollo hardware del equipo. almismo tiempo que dificulta notablemente la prueba y la fiabilidad del mismo. Por otra parte, el secuenciador puede disearse como si fuese un microprocesador del propio microprocesador. En este caso, las decisiones no estn sujetas a un circuito combinacional lgico, sino al contenido de una memoria (memoria de microprograma el contenido de esta memoria es el encargado de establecer el circuito combinacional de estados lgicos para la realizacin de una determinada tarea, actuando de una forma muy sencilla. Un valor 1 lgico en una posicin de memoria (recurdese una clula CMOS cargada) sera equivalente a un circuito cerrado, mientras que un valor 0 lgico sera equivalente a un circuito abierto. Esta tcnica de diseo permite. por tanto, variar fcilmente (bastara cambiar el contenido de la memoria de microprograma) la actuacin de un microprocesador ante los mismos eventos, es decir, permite pasar fcilmente un microprocesador de propsito general a uno de propsito especfico.

En conclusin, se puede afirmar que si el microprocesador es el alma funcional de una computadora, el secuenciador lo es a su vez en la misma proporcin del microprocesador. La microprogramacin, por tanto, es una programacin de muy bajo nivel (ms bajo que el cdigo ensamblador), a nivel de lenguaje mquina (ceros y unos). Por tanto su aplicacin queda restringida a los centros de investigacin y desarrollo hardware, ya que el fabricante realizar dicha aplicacin tanto para un microprocesador de propsito general como para un microprocesador de propsito especifico, a peticin del cliente. Debido a esto, un usuario normal no puede modificar ni la estructura ni el cdigo de microprograma residente en su microprocesador.

MICROPROCESADOR Y MICROPROGRAMACION Hasta ahora se han visto los principios bsicos de funcionamiento del microprocesador, pero no se ha hablado de su funcionamiento interno en profundidad. Tarjeta madre de una PC. De todos los componentes que aparecen, sin duda el microprocesador es el ms importante. Para entrar en profundidad en el anlisis de este tema se establecer una analoga, consistente en pensar que el microprocesador es, en s un microcomputador, es decir, se realizar una semejanza entre las partes de un microprocesador y las partes de un microcomputador. El microprocesador puede dividirse en dos bloques funcionales: la unidad aritmtico-lgica y la unidad de control.

La unidad aritmtico-lgica suministra un conjunto de facilidades que permiten la realizacin de clculos aritmticos y lgicos. Su funcionamiento y su gestin viene determinado por la unidad de control en concreto por las rdenes dirigidas hacia ella por el secuenciador. Sin embargo, realmente la parte microprocesador es la unidad de control. interesante del

Esta a su vez presenta un conjunto independiente de bloques funcionales que determinan el funcionamiento global de ste. Estos bloques funcionales son un decodificador de microinstruccin, una memoria de microinstruccin ROM (en algunos casos una EPROM) y un secuenciador de microinstrucciones. El decodificador de miroinstrucciones se encargar de, una vez decodificada la instruccin, decodificar a su vez las microinstrucciones necesarias para que el secuenciador, hacindo un uso secuencial de ellas, ejecute la tarea o tareas requeridas por la instruccin (microinstrucciones). La memoria de microinstruccin es, generalmente, una memoria secuencial que en los productos comerciales aparece de "solo lectura" mientras que en los productos de investigacin es de "lectura y escritura". En esta memoria se guardan las codificaciones binarias elementales que permiten la realizacin de una instruccin de cdigo. El hecho de que los cdigos binarios que componen cada microinstruccin sean secuenciales, se debe a que no es necesaria a la introduccin de ningn salto para la realizacin de una determinada tarea, ya que cada microinstruccin hace referencia, nica y exclusivamente, a un

nico punto de control hardware (un valor de una tensin) concreto de la estructura del microprocesador. La existencia de una memoria de microprograma se debe a la utilizacin de una metodologa software en el desarrollo hardware de un equipo. Bien es cierto, como se ver ms adelante, que un secuenciador puede estar, o cableado (autmata) o microprogramado, siendo en este ltimo caso cuando esta justificado el uso de una memoria de programa. Su funcin bsica es, por tanto, la de almacenar las microinstrucciones necesarias para la ejecucin de cualquier tarea que sea solicitada por un proceso (programa) de usuario, incluidas las del propio sistema operativo.

COMO ACTUA EL MICROPROCESADOR La definicin ms precisa del microprocesador posiblemente sea la de "dispositivo electrnico de Lgica secuencial programable". Esta definicin identifica los principales parmetros de funcionamiento de este elemento. En primer lugar es un elemento "electrnico", es decir que funciona con corriente elctrica actuando sobre elementos semiconductores de silicio para controlar su empleo; en segundo lugar es "digital", lo que indica que trabaja con estados binarios de informacin: O y 1, (todo y nada o s y no): en tercer lugar es "secuencial", que significa simplemente que ejecuta una instruccin tras otra, y que su estado actual depende, entre otros factores, del estado anterior que tuviera. Y por ltimo es "programable" que es el nico elemento de la definicin que parece tener sentido. Realmente este es el punto ms importante y notable del microprocesador. La tarea que ejecuta cambia segn el programa que asignemos, e incluso ms, en funcin de la "secuencia de programa" indicada.

El microprocesador necesita toda una serie de elementos adicionales para formar de manera efectiva un sistema inteligente Las ventajas que aporta un sistema basado en microprocesador se derivan de la capacidad para ejecutar una tarea repetitiva con gran velocidad, as como leer, elaborar y almacenar, en suma procesar, una gran cantidad de informacin digital. Los diferentes modelos de ordenadores IBM PC y compatibles estn realizados en torno a los diversos microprocesadores de la familia Intel 80x86. Cada nuevo modelo ms avanzado de microprocesador ha permitido crear un ordenador ms potente y rpido. Como ya sabemos, el ncleo del sistema es el microprocesador, pero ste necesita una gran cantidad de dispositivos adicionales para lograr su adecuada potencia de trabajo. De igual forma que el cuerpo humano no es slo el cerebro, aunque ste sea la parte ms notable del mismo, el ordenador no est formado nicamente por su microprocesador. Para realizar el diseo de un potente y completo sistema, se necesita rodear al micro de memoria, controladores, y perifricos. Sin la ayuda de estos dispositivos, el microprocesador pierde gran parte de su potencial. La memoria permite almacenar gran cantidad de datos que el procesador lee o escribe, incluyendo el programa que determina su funcionamiento. El procesador se encarga de recibir los valores, y determinar qu parte corresponde a programa, qu instrucciones debe ejecutar, y cules son los datos de operacin. Prcticamente todo el proceso de datos se realiza en los registros internos del procesador, por lo que los valores deben llegar, o partir, al mismo.

Los perifricos se encargan de abordar tareas sencillas relacionadas con la comunicacin hacia y desde el exterior de equipo. Los ejemplos ms comunes de estos perifricos son los encargados de gestionar el interface paralelo, para salida hacia impresora Centronics, y el serie. Este ltimo est preparado para comunicaciones serie, RS232, lo que le permite enlazar tanto con un modem (y de ah a la lnea telefnica), un plotter, el ratn, e incluso otro ordenador. Los controladores cumplen dos misiones. Por una parte descargan de trabajo al ordenador, con lo que ste puede dedicarse a la tarea principal de gestionar datos, mientras que los controladores se encargan de proporcionar un interface ms o menos inteligente con el mundo exterior. Por otra parte, esto permite disear complejos microprocesadores para concentrarse en las tareas de gestin, y por tanto de uso totalmente general, mientras que los controladores, de elaboracin ms sencilla, se adaptan para funcionar con una determinada tarea. La divisin entre microprocesadores y controladores resulta cada vez ms sutil, ya que en algunas ocasiones se necesita un controlador tan complejo para una tarea que se opta por colocar otro microprocesador dedicado a una labor especfica. Los PC, incluyendo el XT y posteriores incluyen al menos un controlador, que realmente es un microprocesador dedicado, para la interface de teclado.

LAS LINEAS DE UNION EI bus del microprocesador es simplemente el conjunto de lneas elctricas, cables, etc., que llevan las distintas seales necesarias para interconectar todos los elementos del sistema. Estas lneas aseguran el contacto elctrico desde el microprocesador, que es el encargado de llevar el control, hasta los diferentes elementos, memoria, controladores, perifricos, que se comunican con aqul. Una parte especial del bus en una placa de un ordenador es el denominado bus de expansin. En ste, las lneas estn repartidas en unos conectores que permiten enganchar sobre ellos tarjetas de expansin. Sobre estas tarjetas se adapta cualquier perifrico, o memoria, que no est presente sobre la placa principal que contiene los circuitos del ordenador. Este sistema permite fabricar una placa con circuitera estndar, o bsica, apta para cualquier tarea general, y que el usuario pueda completar el equipamiento del sistema segn sus necesidades. La placa base del sistema incluye al menos el microprocesador, el reloj, la memoria, controlador de teclado, de interrupciones y algunos contadores programables (uno de los cuales se encarga de manejar el altavoz). Adicionalmente puede contener tambin los perifricos serie y paralelo, y en algunos casos el controlador de vdeo y de discos. La circuitera enumerada, y que es la que resulta necesaria para formar un equipo completo, que no est implantada en la placa base debe colocarse en los conectores de expansin. Un equipo que integre en su placa base todos los elementos resulta por lo general ms compacto y barato, pero al tiempo reduce las posibilidades de actualizarlo con otros dispositivos ms modernos (por ejemplo controladoras de vdeo de mayor resolucin y colores). Colocar slo lo ms elemental

sobre la placa base y completar el equipamiento sobre los slots de expansin permite al usuario adquirir un equipo configurado a medida, pero ocupando ya de partida el sitio reservado para ampliaciones; con ello puede quedarse sin sitio para colocar dispositivos especiales (modem, digitalizadores, controladores de discos pticos, cintas streamer) en el ordenador. La rpida evolucin de los microprocesadores empleados hace que algunos fabricantes hayan optado incluso por colocar el microprocesador y sus elementos indispensables (reloj, buffers, etc.) en una placa, mientras que los perifricos estndar (temporizadores, controlador de teclado, de interrupciones, canales serie y paralelo) son situados sobre la placa base. En algunos modelos incluso se llega a realizar una placa base que slo contiene los slots de expansin, y el micro y perifricos se comunican unos con otros a travs del bus de expansin. Cualquiera de estos sistemas est orientado a conseguir que la actualizacin del microprocesador a una versin ms rpida y potente, se realice de la forma ms sencilla posible, ya que slo es necesario desmontar una tarjeta de ampliacin, en lugar de tener de cambiar toda la placa base, o incluso el equipo completo.

LAS LINEAS DE INTERRUPCION EI microprocesador dispone de una lnea de "atencin" para acudir a gestionar con rapidez la solicitud de algn dispositivo. Este mtodo consiste en la lnea de interrupcin con que est dotado el micro. Se trata de un proceso que se inicia por hardware, pero que se contina mediante el software.

Cuando se activa una seal de interrupcin, el microprocesador completa la instruccin en curso y luego detiene el proceso o programa, actualmente en ejecucin, y salva una serie de registros del ordenador; entre estos registros se cuentan el contador de programa con lo que guarda el punto actual en la ejecucin del mismo, de forma similar a una llamada a una subrutina. Luego coloca en el bus un ciclo de "reconocimiento de la interrupcin", a lo que la circuitera que ha producido sta responde con un valor de 8 bits, entre 0 y 255, que indica el ndice para el vector de gestin de la interrupcin. Tras esto, el procesador transfiere el control al programa de tratamiento indicado por el vector. Una vez realizado su proceso y antes de finalizar, el programa de interrupcin debe haber dejado todos registros que haya empleado o modificado. Los programas de gestin de interrupciones deben terminar con una instruccin especial, IRET, que indica al procesador que ha llegado el momento de volver de la interrupcin. Gracias a ello se reponen los registros salvados en la entrada, y se devuelve el control al punto exacto del programa principal interrumpido. La creacin de programas que utilicen las seales de interrupcin son realmente crticas, ya que deben tener en cuenta un manejo sofisticado de los recursos del ordenador y evitar situaciones de conflicto con el desarrollo normal del resto de los programas. Ejemplos tpicos de perifricos que tienen asignada una interrupcin para su funcionamiento son los puertos paralelos y

serie del ordenador, la interfacede teclado y el de ratn, as como el controlador de disco, entre otros. El reloj virtual del ordenador tambin est controlado mediante una interrupcin peridica generada por un contador programable que emite unos pulsos -interrupciones- por segundo. Cualquier perifrico que desee enviar informacin al microprocesador sin que se sepa de antemano cundo va a llegar esta informacin es un candidato a emplear interrupciones, y su correspondiente programa de control. Los microprocesadores Intel disponen de dos fuentes de interrupcin. Una de ellas es No Enmascarable (NMI, Non Mascable Interrupt), lo que significa que siempre que se produzca ser atendida por el procesador. La otra, INTR, es enmascarable lo que proporciona una mayor versatilidad, ya que podemos desactivarla durante la ejecucin de ciertas tareas, y activarla cuando el proceso que se est realizando puede ser interrumpido. Un bit de registro de indicadores determina si la interrupcin es aceptada o no.

Como normalmente es el microprocesador el que se comunica con los perifricos, las interrupciones permiten un medio para que estos dispositivos se comuniquen con el micro. Las interrupciones, por tanto, ayudan a que el procesador se relacione con el mundo exterior, el cual incluye una gran variedad de seales cuyo momento exacto de produccin, o disponibilidad, no resulta predecible de forma exacta. Ms adelante se continua hablando a cerca de las interrrupciones.

EL BUS DEL SISTEMA Se denomina un bus al conjunto de lneas elctricas que conducen las diversas seales digitales dentro del ordenador. El bus no aporta inteligencia al sistema, pero s es el responsable de una misin de alta importancia, como es lograr que todo el conjunto de elementos funcione como un conjunto, y no como entidades separadas. En ltima instancia, el bus, o ms bien su adecuada distribucin sobre la placa, determina la mxima velocidad que puede alcanzar el conjunto. No basta pues con colocar en los zcalos integrados un microprocesador y unas memorias rpidas; si el bus no transmite las seales a la velocidad adecuada sin alterarlas, colocar un lmite insalvable de velocidad en el sistema. En cuanto a su misin, las seales que atraviesan el bus establecen una divisin en tres grandes grupos: direcciones, datos y de control. El bus de direcciones, o conjunto de lneas que llevan la informacin de la direccin de memoria, se encarga de aportar las seales que indican la posicin de un dato. El valor en s se transmite por el bus de datos. Las seales de control aportan informacin acerca de la operacin que est realizando el ordenador: lectura, escritura, acceso de un dispositivo E/S o de memoria, etc. El bus de control es el responsable entre otras tareas de controlar el trfico de seales en los otros dos buses. Todo el proceso de funcionamiento de las seales en el bus est determinado normalmente por el microprocesador, que es quien coloca las seales en el bus, y se realiza segn una cadencia determinada por el reloj del sistema. No hay que confundir el reloj del sistema con la frecuencia de funcionamiento del microprocesador. El reloj del sistema funciona cuatro veces ms rpido que la frecuencia del microprocesador, a fin de permitir la adecuada subdivisin de las tareas internas que ejecuta el micro. Ms que como un

corazn, el reloj del sistema acta como un metrnomo, indicando el ritmo que deben seguir todas las operaciones, y asegurando una correcta sincronizacin de todos los procesos.

LA MEMORIA INTELIGENTE DEL ORDENADOR EI nico programa que existe dentro del ordenador al encenderlo se encuentra grabado sobre una memoria de slo lectura denominada BIOS (Basic InputOutput System). El ROM BIOS viene a ser como el fulminante de una bomba: una pequea explosin inicial que se activa fcilmente, y que sirve para poner en marcha la detonacin de una gran cantidad de material de explosivo contenido en la bomba. Los potentes efectos de esta bomba vienen dados por el material explosivo, pero ste no se activa a menos que funcione el fulminante. As, el BIOS se encarga de aportar una pequea dosis de programa (inteligencia) necesaria para que el sistema comience a trabajar adecuadamente; las funciones del BIOS incluyen la identificacin de los elementos presentes en la placa, memoria y perifricos, as como la carga del sistema operativo, DOS, y su posterior ejecucin. Entre las funciones del BIOS est la de averiguar, mediante una sencilla prueba de escritura y posterior lectura con verificacin, la cantidad de memoria que est colocada en el ordenador; otras funciones iniciales incluyen el manejo elemental de los puertos serie y paralelo del ordenador, el borrado de pantalla y colocacin del cursor al comienzo. El BIOS contiene tambin una serie de instrucciones de manejo sencillo del ordenador, como recibir caracteres del teclado, presentar el texto en la pantalla, etc. Estas funciones, catalogadas mediante llamadas a interrupciones BIOS del sistema, estn ampliamente documentadas, y permiten a los programadores evitarse el duplicar trabajo al tener disponibles las entradas y salidas bsicas del ordenador.

Una de las ltimas funciones del BIOS consiste en determinar en cul de los discos presentes en el ordenador hay un sistema de arranque, BOOT, con el DOS, y de comenzar a cargarlo para posteriormente transferir a ste el control. El DOS -Disk Operating System-, se encarga de la gestin general del sistema, incluyendo archivos, discos, visualizacin y soporte de las rutinas que los programas de aplicacin necesitarn para aprovechar las capacidades del ordenador. El DOS tambin se apoya sobre el BIOS, ejecutando algunas llamadas a ste, pero ampla notablemente las capacidades bsicas incluidas en el mismo. Una zona de memoria, denominada rea de sistema, almacena los parmetros que usan tanto el BIOS como el DOS. En esta zona se guarda informacin relativa a la cantidad de memoria total, libre y ocupada, la situacin de perifricos, o la posicin del cursor de pantalla entre otros. El BIOS representa la inicializacin y el manejo bsico del ordenador y perifricos, mientras que el DOS, (y sobre ste los programas de aplicacin), el uso avanzado del mismo. En los primeros modelos de PC IBM, el intrprete BASIC, estaba colocado en una ROM, con lo que no era necesario cargarlo desde disco. Si bien esto presenta una ventaja inicial, a la larga result ser un programa cuyo cambio a una versin ms moderna resultaba una tarea excesivamente complicada para el usuario.

EL BUS DE EXPANSION: AMPLIANDO EL SISTEMA En los IBM PC/XT, el bus de expansin est dotado de conectores que permiten acceder a los 16 bits de direcciones y datos manejados por el 8088/8086. En los modelos AT, el bus se ampli a 32 bits para aprovechar la capacidad de direccionamiento del 80286; el bus AT tambin se denomina ISA (IndustryStandard Architecture), ya que ha sido la norma ms empleada durante bastante tiempo. La nueva y ms avanzada generacin de ordenadores IBM compatibles se ha bifurcado en cuanto a normas del bus de expansin y realmente de arquitectura interna: por un lado IBM apuesta por la ruptura con los sistemas anteriores con el MCA (Micro Channel Architecture) implantado en la familia PS/2, mientras que un elevado nmero de fabricantes han preferido mantener la compatibilidad con las tarjetas desarrolladas previamente, al tiempo que dejan sitio para las mejores posibilidades de los modernos microprocesadores y software avanzados. Esta ltima opcin se denomina EISA (Extended Industry Standard Architecture), ya que se trata de una versin ampliada de la ISA. Tanto la arquitectura EISA como la MCA contemplan avanzadas soluciones hardware para permitir un mejor empleo del sistema para gestin multitarea, colocar varios procesadores en el mismo ordenador y repartir las tareas al tiempo que se comparten los recursos. Despus de estas opciones los fabricantes desarrollaron nuevas tarjetas que mantienen la compatibilidad ISA pero mucho ms potentes: las VESA Local Bus.

Esta es la tendencia que se impone actualmente con las nuevas versiones PCI (Peripheral Component Interconnect): adaptar los equipos a fin de que los nuevos avances tecnolgicos sean fcilmente implantables en ellos, y facilitar en cualquier caso la ampliacin del sistema. Ms adelante se hablar un poco ms sobre estas arquitecturas.

DIRECCIONAMIENTO Los microprocesadores clsicos de 8bits empleaban una tcnica de direccionamiento denominada lineal, ya que el contenido de un nico registro se encargaba de colocar la direccin real de memoria; todo el campo de direcciones era accesible de forma lineal, a base de incrementar un registro. Para guardar la adecuada compatibilidad y as poder direccionar con los procesadores de 16 bits los elementos de los micros de 8 bits, Intel emple una tcnica denominada segmentacin. En el direccionamiento segmentado, un registro contiene la informacin del trozo, segmento, de memoria a la que se va a acceder, mientras que un segundo registro se encarga de completar el acceso indicando el desplazamiento. De esta forma, el programador no ve las direcciones fsicas, reales, de memoria sino una direccin lgica (virtual); la direccin virtual est definida como el conjunto de un identificador de segmento, denominado tambin selector, y de una direccin relativa al segmento, y que se denomina desplazamiento. Un segmento no es otra cosa que una zona de memoria constituida por posiciones contiguas.

La segmentacin no implica una divisin funcional de la memoria, ya que una cierta posicin de RAM puede ser alcanzada con diversos valores de segmento y desplazamiento. El sistema de direccionamiento segmentado permite, por ejemplo, separar radicalmente las zonas que contienen el programa (y que por tanto no son modificadas) de las zonas de datos y de pila (stack). Como ya hemos visto este mecanismo a su vez tambin es capaz de implementar efectivamente las tcnicas de conmutacin de tareas y proteccin entre ellas. Las direcciones lgicas (virtuales) son convertidas en direcciones fsicas (reales, o tambin lineales) de forma diferente segn el tipo de microprocesador, e incluso segn el modo en que est trabajando. As, con la formacin de una direccin fsica en el 486 mediante la tcnica de paginacin, en las cuales adems de un selector y un desplazamiento interviene un ndice de directorio, se consigue que con 32 lneas de direcciones, el 486 pueda acceder a 64 Gigabytes en modo virtual.

REGISTROS DEL PROCESADOR

Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son direccionables por medio de un nombre. Los bits por convencin, se numeran de derecha a izquierda, como en: ... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Los registros internos del procesador se puede clasificar en 6 tipos diferentes 1. 2. 3. 4. 5. 6. Registros de segmento Registros de propsito general Registros de apuntadores Registros de banderas Registros de Puntero de instruccin Registros de Pila

Registros de segmento Un registro de segmento tiene 16 bits de longitud y facilita un rea de memoria para direccionamiento conocida como el segmento actual.

Registro CS. El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro CS. Esta direccin de segmento, mas un valor de desplazamiento en el registro apuntador de instruccin (IP), indica la direccin de una instruccin que es buscada para su ejecucin.

Registro DS. La direccin inicial de un segmento de datos de programa es almacenada en el registro DS. En trminos sencillos, esta direccin, mas un valor de desplazamiento en una instruccin, genera una referencia a la localidad de un byte especifico en el segmento de datos.

Registro SS. El registro SS permite la colocacin en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la direccin de inicio del segmento de pila de un programa en le registro SS. Esta direccin de segmento, mas un valor de desplazamiento en el registro del apuntador de pila (SP), indica la palabra actual en la pila que esta siendo direccionada.

Registros ES. Alguna operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro extra de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (ndice). Un programa que requiere el uso del registro ES puede inicializarlo con una direccin de segmento apropiada.

Registros FS y GS. Son registros extra de segmento en los procesadores 80386 y posteriores. Regresar Arriba

Registros de propsito general. Los registros de propsito general AX, BX, CX y DX son los caballos de batalla del sistema. Son nicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la izquierda es la parte "alta", y el ultimo byte de la derecha es la parte "baja". Por ejemplo, el registro CX consta de una parte CH (alta) y una parte Cl (baja), y usted puede referirse a cualquier parte por su nombre.

Registro AX. El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmtica. Por ejemplo, las instrucciones para multiplicar , dividir y traducir suponen el uso del AX. Tambin, algunas operaciones generan cdigo mas eficiente si se refieren al AX en lugar de a los otros registros.

Registro BX. El BX es conocido como el registro base ya que es el nico registro de propsito general que puede ser ndice para direccionamiento indexado. Tambin es comn emplear el BX para clculos.

Registro DX. El DX es conocido como l registro de datos. Alguna operaciones de entrada/salida requieren uso, y las operaciones de multiplicacin y divisin con cifras grandes suponen al DX y al AX trabajando juntos.

Regresar Arriba

Registro de Apuntador de Instrucciones. El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de direccin de la siguiente instruccin que se ejecuta. El IP esta asociado con el registro CS en el sentido de que el IP indica la instruccin actual dentro del segmento de cdigo que se esta ejecutando actualmente. Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP.

En el ejemplo siguiente, el registro CS contiene 25A4[0]H y el IP contiene 412H. Para encontrar la siguiente instruccin que ser ejecutada, el procesador combina las direcciones en el CS y el IP:

Segmento de direccin en el registro CS: 25A40H Desplazamiento de direccin en el registro IP: + 412H Direccin de la siguiente instruccin: 25E52H Regresar Arriba

Registros Apuntadores. Los registros SP (apuntador de la pila) Y BP (apuntador de base) estn asociados con el registro SS y permiten al sistema accesar datos en el segmento de la pila.

Registro SP. El apuntador de la pila de 16 bits esta asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que esta siendo procesada en la pila. Los procesadores 80386 y posteriores tienen un apuntador de pila de 32 bits, el registro ESP. El sistema maneja de forma automtica estos registros.

En el ejemplo siguiente, el registro SS contiene la direccin de segmento 27B3[0]H y el SP el desplazamiento 312H. Para encontrar la palabra actual que esta siendo procesada en la pila, la computadora combina las direcciones en el SS y el SP:

Registro BP. El BP de 16 bits facilita la referencia de parmetros, los cuales son datos y direcciones transmitidos va pila. Los procesadores 80386 y posteriores tienen un BP ampliado de 32 bits llamado el registro EBP.

Regresar Arriba

Registros Indice. Los registros SI y DI estn disponibles para direccionamiento indexado y para sumas y restas.

Registro SI. El registro ndice fuente de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI esta asociado con el registro DS. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el ESI.

Registro DI. El registro ndice destino tambin es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI esta asociado con el registro ES. Los procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32 bits, el EDI.

Regresar Arriba

Registro de Banderas. De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmtica cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la accin subsecuente. En resumen, los bits de las banderas comunes son como sigue:

OF (Overflow, desbordamiento). Indica desbordamiento de un bit

de orden alto (mas a la izquierda) despus de una operacin aritmtica.

DF (direccin). Designa la direccin hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.

IF (interrupcin). Indica que una interrupcin externa, como la entrada desde el teclado, sea procesada o ignorada.

TF (trampa). Permite la operacin del procesador en modo de un paso. Los programas depuradores, como el DEBUG, activan esta bandera de manera que usted pueda avanzar en la ejecucin de una sola instruccin a un tiempo, para examinar el efecto de esa instruccin sobre los registros de memoria.

SF (signo). Contiene el signo resultante de una operacin aritmtica (0 = positivo y 1 = negativo).

ZF (cero). Indica el resultado de una operacin aritmtica o de comparacin (0 = resultado diferente de cero y 1 = resultado igual a cero).

AF (acarreo auxiliar). Contiene un acarreo externo del bit 3 en un dato de 8 bits para aritmtica especializada.

PF (paridad). Indica paridad par o impar de una operacin en datos de 8 bits de bajo orden (mas a la derecha).

CF (acarreo). Contiene el acarreo de orden mas alto (mas a la izquierda) despus de una operacin aritmtica; tambin lleva el contenido del ultimo bit en una

operacin de corrimiento o de rotacin. Las banderas estn en el registro de banderas en las siguientes posiciones:

Las banderas mas importantes para la programacin en ensamblador son O, S, Z y C, para operaciones de comparacin y aritmticas, y D para operaciones de cadenas de caracteres. Los procesadores 80286 y posteriores tienen algunas banderas usadas para propsitos internos, en especial las que afectan al modo protegido. Los procesadores 80286 y posteriores tienen un registro extendido de banderas conocido como Eflags.

Regresar Arriba

Registros de PILA La pila es un rea de memoria importante y por ello tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar a su contenido. Se usan como complemento al registro y son:

-SP- Stack Pointer: Se traduce como puntero de pila y es el que se reserva el procesador para uso propio en instrucciones de manipulado de pila. Por lo general , el programador no debe alterar su contenido.

-BP- Base pointer: Se usa como registro auxiliar. El programador puede usarlo para su provecho.

Claro que estos nombres y tipos de registros son estndar, ya que cada fabricante puede utilizar otros registro que reemplacen a estos o los auxilien, aun as, los

fabricantes que usan otros registro tienen la misma funcin que los anteriormente mencionados

Ejemplo Registros de uso general del 8086/8088: Tienen 16 bits cada uno y son ocho: 1. AX = Registro acumulador, dividido en AH y AL (8 bits cada uno). Usndolo se produce (en general) una instruccin que ocupa un byte menos que si se utilizaran otros registros de uso general. Su parte ms baja, AL, tambin tiene esta propiedad. El ltimo registro mencionado es el equivalente al acumulador de los procesadores anteriores (8080 y 8085). Adems hay instrucciones como DAA; DAS; AAA; AAS; AAM; AAD; LAHF; SAHF; CBW; IN y OUT que trabajan con AX o con uno de sus dos bytes (AH o AL). Tambin se utiliza este registro (junto con DX a veces) en multiplicaciones y divisiones.

2. BX = Registro base, dividido en BH y BL. Es el registro base de propsito similar (se usa para direccionamiento indirecto) y es una versin ms potente del par de registros HL de los procesadores anteriores.

3. CX = Registro contador, dividido en CH y CL. Se utiliza como contador en bucles (instruccin LOOP), en operaciones con cadenas (usando el prefijo REP) y en desplazamientos y rotaciones (usando el registro CL en los dos ltimos casos).

4. DX = Registro de datos, dividido en DH y DL. Se utiliza junto con el registro AX en multiplicaciones y divisiones, en la instruccin CWD y en IN y OUT para direccionamiento indirecto de puertos (el registro DX indica el nmero de puerto de entrada/salida).

5. SP = Puntero de pila (no se puede subdividir). Aunque es un registro de uso general, debe utilizarse slo como puntero de pila, la cual sirve para almacenar las direcciones de retorno de subrutinas y los datos temporarios (mediante las instrucciones PUSH y POP). Al introducir (push) un valor en la pila a este registro se le resta dos, mientras que al extraer (pop) un valor de la pila este a registro se le suma dos.

6. BP = Puntero base (no se puede subdividir). Generalmente se utiliza para realizar direccionamiento indirecto dentro de la pila.

7. SI = Puntero ndice (no se puede subdividir). Sirve como puntero fuente para las operaciones con cadenas. Tambin sirve para realizar direccionamiento indirecto.

8. DI = Puntero destino (no se puede subdividir). Sirve como puntero destino para las operaciones con cadenas. Tambin sirve para realizar direccionamiento indirecto.

Cualquiera de estos registros puede utilizarse como fuente o destino en operaciones aritmticas y lgicas Regresar Arriba

Indicadores (flags) Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro bits ms significativos estn indefinidos, mientras que hay tres bits con valores determinados: los bits 5 y 3 siempre valen cero y el bit 1 siempre vale uno (esto tambin ocurra en los procesadores anteriores).

CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) hacia, o "prstamo" (en caso de resta) desde el bit de orden ms significativo del resultado. Este indicador es usado por instrucciones que suman o restan nmeros que ocupan varios bytes. Las instrucciones de rotacin pueden aislar un bit de la memoria o de un registro ponindolo en el CF.

PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un nmero par de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones.

AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "prstamo" del nibble (cuatro bits) menos significativo al nibble ms significativo. Este indicador se usa con las instrucciones de ajuste decimal.

ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operacin es cero. SF (Sign Flag, bit 7): Refleja el bit ms significativo del resultado. Como los nmeros negativos se representan en la notacin de complemento a dos, este bit representa el signo: 0 si es positivo, 1 si es negativo.

TF (Trap Flag, bit 8): Si vale 1, el procesador est en modo paso a paso. En este modo, la CPU automticamente genera una interrupcin interna despus de cada instruccin, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instruccin por instruccin.

IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupcin externas enmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones. Las interrupciones no enmascarables y las internas siempre se reconocen independientemente del valor de IF. DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirn "auto-decremento", esto es, se

procesarn las cadenas desde las direcciones ms altas de memoria hacia las ms bajas. Si vale 0, habr "auto-incremento", lo que quiere decir que las cadenas se procesarn de "izquierda a derecha".

OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operacin aritmtica con signo, esto es, un dgito significativo se perdi debido a que tamao del resultado es mayor que el tamao del destino.

Regresar Arriba

El procesador Z80 Registros de propsito general El Z80 posee 14 registros de propsito general de 8 bits denominados A, B, C, D, H, L y A', B', C', D', H' , L'. Solamente un set de siete registros y el correspondiente registro de Flags F pueden estar activos al mismo tiempo. Una instruccin especial selecciona A y F o A' y F' mientras que otra instruccin selecciona B, C, D, E, H, L o C', D', E' ,H' L'.

El programador puede cambiar rpidamente de un conjunto de registros de propsito general a otro. Esto proporciona una mayor capacidad de almacenamiento en registros. El acceso a datos presentes en registros de la CPU es mucho ms rpido que el acceso a datos en memoria.

Los registros pueden agruparse de a pares formando registros de 16 bits. Estos son los pares BC, DE y HL (sus equivalentes primas tambin pueden agruparse).

Flags Aunque los Flags existen fsicamente dentro de la CPU estn agrupados lgicamente formando un registro. Los Flags del Z80 son los siguientes: Flag de Cero(Z): Toma el valor 1 si el resultado de una operacin es cero. Es el bit seis. Flag de signo(S): Toma el valor 1 si el resultado de una operacin es negativo. Es el bit siete. Flag de Carry(C): Este flag es afectado por las instrucciones de desplazamiento y es puesto en 1 0 segn el valor del bit desplazado. Tambin es afectado por las operaciones aritmticas. Este flag es el bit cero.

Flag de Paridad y overflow(P/V): En el caso de paridad, se pone en 1 si el resultado de una operacin posee un nmero par de unos. Cuando el flag P/V se usa para representar overflow, el flag se pone en 1 si ocurre un overflow despus de una operacin aritmtica. Este flag es el bit 2.

Flag H y N: Son dos Flip Flop que no pueden ser examinados por las instrucciones de salto condicional. El Z80 los usa para las operaciones BCD. H representa el rebalse que genera considerando los cuatro bits menos significativos del resultado y N es el flag de resta, el cual se activa para indicar si la ltima instruccin ejecutada fue suma o resta. En el caso general, una instruccin de resta coloca en 1 el flag N y una instruccin de suma lo coloca en 0. Los Flags H y N son los bits 4 y 1 respectivamente.

Registros de propsito especial Program Counter: Es un registro de 16 bits que indica la direccin de la prxima instruccin ejecutar. Las instrucciones del Z80 pueden contar de uno, dos, tres o cuatro bytes.

Stack-Pointer: Es un registro de 16 bits que indica la direccin de una memoria RAM externa denominada Stack. El objetivo de esta rea de memoria es proporcionar un medio de almacenamiento temporal de los registros del usuario, registro de Flags y del program Counter. La provisin de Stack es fundamental para operaciones tales como los llamados a sub-rutinas e interrupciones.

Registros ndices IX e IY: Estos registros son de 16 bits, diseados para permitir un direccionamiento indexado en los programas del Z80. Cuando se ejecuta una instruccin en un modo de direccionamiento indexado, se usa uno de los dos registros ndices para calcular la direccin del operando.

Registro de interrupciones I: Es un registro de 8 bits que puede ser cargado para especificar el byte ms significativo de una direccin de memoria. El byte menos significativo es proporcionado por el dispositivo que solicita la interrupcin.

Registro de refresh de memoria R: Es un registro especial diseado para proporcionar un refresh automtico de las memorias RAM dinmicas.

Registro de instrucciones: El registro de instrucciones tiene por misin almacenar el cdigo de operacin de la instruccin leda desde memoria. Este cdigo es descodificado y con esta informacin se dirigen todos los micro-pasos.

ESTRUCTURA BASICA DE UN MICROPROCESADOR.

UNIDADES FUNCIONALES BASICAS DE UN MICROPROCESADOR.

En la terminologia de microprocesadores, a cada grupo de circuitos que desempe~an diferentes tareas importantes se les denomina "unidad funcional", y el conjunto de unidades funcionales y la forma como estan interconecradas se denomina "arquitectura" del microprocesador. Las unidades basicas de un microprocesador son:

Unidad aritmetico/logica. Unidad de control. Registros internos. Memoria del programa.

Hay otras unidades funcionales que tambien pueden existir en el microprocesador; como son la "memoria de datos" y los "puertos de entrada/salida". La unidad de procesamiento central (CPU) es un microprocesador que posee unicamente las tres unidades bsicas: unidad de control, unidad aritmetico/logica y algunos registros.

La unidad de control.

Es la unidad funcional primaria dentro del microprocesador. Utiliza se~ales de reloj para mantener la secuencia de eventos apropiada para llevar a cabo cualquier tarea de procesamiento. Despues de que una instruccin ha sido obtenida y decodificada por el microprocesador, la circuiteria de control envia las se~ales apropiadas a dispositivos tanto internos como externos a la CPU, para iniciar la accion de procesamiento indicada por la instruccion. El corazon de la unidad de control lo constituye el "generador de ciclo de maquina" (GCM), que se encarga de producir las se~ales de control, derivandolas de un reloj u oscilador maestro como referencia.

Unidad aritmetico/logica.

Conocida tambin como ALU (Arithmetic/Logic Unit.). La ALU es la parte del microprocesador que lleva a cabo las operaciones aritmticas y lgicas en los datos binarios. Algunas de ellas se aplican sobre dos operandos, otras solamente en uno.

La ALU ejecuta las siguientes operaciones: 1. Suma aritmetica. 1. Funciones logicas AND, OR, XOR. 1. Complemento. 1. Rotacin hacia la derecha o izquierda. La ALU contienen ademas un conjunto de FF`s llamados "banderas" que guardan informacion relacionada con el resultado de una operacion.

Registros internos.

Son unidades de almacenamiento temporal dentro de la CPU. Algunos tienen usos especificos, otros son de uso general. CONTADOR DEL PROGRAMA (Program Counter) o PC. Este registro lleva cuenta de cual instruccin es la que debe ejecutar enseguida el microprocesador. REGISTRO DE INSTRUCCIONES (Instruction Register) o IR. Despues de que se ha obtenido una instruccion de la memoria, la CPU lo almacena en este registro. La instruccin almacenada en el IR es decodificada y usada para activar una de varias lineas. El dispositivo que traduce la instruccion en acciones concretas es el "Decodificador de instrucciones. La primera palabra de una instruccion es el codigo de operacion para esa instruccion. El "Codigo de operacion" indica a la unidad de control las operaciones requeridas en la ejecucion de la instruccion. REGISTRO ACUMULADOR.

Generalmente contiene uno de los operandos que seran manipulados por la ALU y, el resultado de la operacion se deposita en este registro, reemplazando a uno de los operandos originales.

Memoria del programa.

Es una ROM o EPROM que contiene el programa del microprocesador. En algunos casos, la memoria del programa tambien almacena parametros o tablas de datos que no sufren modificaciones.

CONCEPTOS ADICIONALES DE MICROPROCESADORES.

Los registros internos de propsito general.

Con frecuencia, un microprocesador tiene un numero de registros adicionales que no tienen asignada ninguna funcion en particular. Se usan en tareas generales como lugares de almacenamiento temporal para guardar operandos o resultados intermedios. Por las restricciones del nmero de bits que se pueden incluir dentro del codigo de una instruccion, el numero de registros de proposito general normalmente se limita a menos de ocho. Para identificarlos se usan numeros o letras. La memoria de datos.

Es una memoria de lectura/escritura (RAM), cuyo objetivo es permitir el almacenamiento temporal de datos o programas de aplicacion. Por sus caracteristicas de lectura/escritura, la informacion que reside en ella se puede alterar facilmente. Esta se pierde cuando se apaga la fuente de alimentacion.

Los puertos de entrada/salida.

Son los circuitos que se encargan de establecer el contacto del microprocesador (CPU) con el mundo exterior. Los puertos se conectan a dispositivos perifericos que generan informacion para ser procesada por la CPU o que aceptan datos provenientes del microprocesador y los transforman en informacion significativa para el mundo exterior.

Los buses de interconexion.

Las lineas de interconexion se pueden agrupar en tres buses: datos, direccion y control.

EL BUS DE DATOS: Es un conjunto de lineas bidireccionales, que transportan informacion del microprocesador hacia la memoria o puertos y de estos al microprocesador.

EL BUS DE DIRECCIONES: Es unidireccional, por el solamente circula informacion proveniente del microprocesador. Comprende a las lineas que transmiten una direccion generada por el CPU, la cual selecciona a un puerto o a una localidad de memoria.

BUS DE CONTROL: Lo conforman la sincronizacion y el sentido de transferencia de informacion en el bus de datos, y el tipo de transferencia indicadas por medio de se~ales de control originadas en el CPU. Cada una de las se~ales en el bus de control es unidireccional.

BUSES INTERNOS: Son buses que existen dentro del microprocesador que sirven para comunicar entre s a la ALU, los registros internos y la unidad de control.

Potrebbero piacerti anche