A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
De este modo, el domicilio que en nuestro lenguaje cotidiano decimal sería el domicilio 33, en el mundo del microprocesador sería:
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
= 0000000000100001
En este domicilio, el microprocesador tal vez encuentre algo como el siguiente byte:= 0000000000100001
D7D6D5D4D3D2D1D0 = 00001110
que represente la primera instrucción o el primer dato sobre el cual se va a llevar a cabo alguna operación.
Esquemáticamente hablando, este proceso de búsqueda y depósito de información del microprocesador tanto de instrucciones como datos de y hacia la memoria se puede representar como sigue:
Idealmente, es deseable usar líneas separadas para enviar la señal binaria que proporciona el domicilio y para recolectar o depositar los datos. Sin embargo, cuando esto no es posible por razones de costo, entonces se usan las mismas líneas, recurriéndose a algún "truco" (como la técnica del multiplex) para que se pueda distinguir lo uno de lo otro.
Veamos ahora la asignación funcional de los 40 pins de los que consta el circuito integrado en el cual se encuentra encapsulada la pastilla de silicón del microprocesador 8086 para ver cómo trabaja en la práctica lo que hemos mencionado anteriormente:
Lo primero que resalta es el pin 19 en donde le aplicamos al circuito integrado la señal de reloj CLK. Toda la secuencia ordenada de pasos que lleve a cabo el microprocesador estará coordinada por la señal de reloj. Si la señal de reloj se detiene, el microprocesador quedará detenido sin ir a ninguna parte.
La terminal 40 identificada como Vcc (en la cual se aplica un voltaje de +5 volts) y las terminales de tierra 1 y 20 (GND o ground) identificadas como Vss son las terminales con las cuales se le alimenta al microprocesador de energía eléctrica.
Al encenderse la máquina, al comenzar a trabajar el microprocesador, lo primero que se lleva a cabo es el "reseteo" del mismo "limpiando" todos sus registros e inicializando todo a su punto de partida en una forma como la que se señaló arriba con el circuito integrado MAX809. Este es el propósito de la terminal 21. La terminal RESET o su equivalente es una terminal que podemos encontrar en todos los microprocesadores, en la cual al aplicársele un voltaje o una señal de "1" todos los registros internos del microprocesador son "reseteados" a cero, poniendo al microprocesador en un estado de "inicio". Esta terminal por su forma de actuar es reminiscente (llevando a cabo la misma función) que la que lleva a cabo la terminal RESET en el flip-flop R-S, excepto que aquí la acción se aplica a todos los registros internos del microprocesador.
De los pins 16 al 2 incluyendo al pin 39 tenemos los pins que van conectados a la memoria RAM precisamente para sacar o depositar en la misma datos binarios. Obsérvese que estos pins pueden actuar como terminales para enviarle a la memoria RAM un domicilio (fetch Adress) ó para sacar y meter datos (Data) en la memoria RAM. Esto fue una necesidad de diseño con el fin de economizar la cantidad de terminales saliendo del microprocesador.
A continuación, veamos cómo podemos ensamblar una microcomputadora básica utilizando ese circuito integrado llamado microprocesador. En su forma más primitiva, la arquitectura esencial de operación es la siguiente:
Obsérvese cómo se ha incorporado en el diagrama una línea especial, una línea conocida en la literatura técnica como la línea R/W (acrónimo del inglés Read/Write, que significa Leer/Escribir), la cual podemos identificar como una línea de control. Esta línea es indispensable para que el microprocesador pueda sacar y meter datos de la memoria RAM , esta es la línea con la cual el microprocesador "prepara" a la memoria RAM para un proceso de lectura (operación R) de alguno de los datos contenidos en ella, o un proceso de escritura (operación W) de algún dato dentro de la memoria RAM. Dependiendo de la lógica utilizada, una señal lógica de "1" en la línea R/W puede significar "Leer" mientras que una señal lógica de "0" puede significar "Escribir", o viceversa en el caso contrario. En este diagrama se ha adoptado también la convención universal de simplificar los diagramas esquemáticos en los cuales varias líneas de conducción eléctrica que llevan información simultánea perteneciente al mismo grupo de datos son agrupadas y representadas como una sola flecha "gorda" en vez de las cuatro u ocho líneas que de otro modo tendrían que ser dibujadas sin que este exceso de líneas resulte en una mayor claridad de información. Esta "flecha gorda" que aparea datos pertenecientes a información del mismo género es conocida como bus, (posiblemente en similitud con la palabra inglesa con la cual se designa a los camiones públicos utilizados para transportar a varias personas a la vez). Así, lo que tenemos a la derecha en la siguiente figura representa lo mismo que lo que tenemos a la izquierda de la misma:
El microprocesador UP es conocido también en la literatura técnica como la Unidad de Procesamiento Central CPU (acrónimo de la palabra inglesa Central Processing Unit). Se ha mostrado explícitamente la terminal de entrada para la señal de reloj CLK, en la cual cada pulso de la señal de reloj va moviendo al sistema de un estado a otro. Esta señal de reloj es frecuentemente generada por un pequeño cristal de cuarzo (como los que usan los relojes de baterías que llevamos puestos en nuestras manos). Podemos imaginarnos al microprocesador en su interior construído a base de cientos o quizá miles de flip-flops J-K que están siendo movidos de un estado al siguiente precisamente bajo las señales de pulsos de reloj, complementado con cientos o quizá miles de compuertas lógicas así como registros internos de memoria construídos también con flip-flops J-K. A fin de cuentas, todo lo que hay dentro de un microprocesador está construído a partir de las tres funciones lógicas básicas, al igual que prácticamente cualquier computadora digital sobre la que pongamos nuestras manos.
La forma en la cual trabajaría el anterior sistema sería la siguiente: Al recibir el primer pulso de la señal de reloj en la terminal de entrada CLK, el microprocesador pondría en el bus de domicilios el primer domicilio binario, el domicilio "0000000000000000", y activaría la línea R/W con una señal lógica con la cual le dice a la memoria RAM que va a leer la palabra binaria que está contenida en este domicilio. La memoria RAM, bajo la señal que le fué dada en la línea R/W por el microprocesador, pone el dato en el bus de datos, para que sea recogido por el microprocesador. En el siguiente pulso de reloj, el microprocesador recoge este dato del bus de datos para procesarlo. Esta secuencia se va repitiendo una y otra vez, cientos, miles, o quizá millones de veces, en una rutina que nos podría parecer hasta monótona. Pero paso tras paso, la microcomputadora va procesando información, usando frecuentemente a la memoria RAM no sólo como suministradora de información sino también como retenedora de datos intermedios de carácter temporal, los cuales son desechados en cuanto el procesamiento que requieren ha sido concluído.
Tenemos ya un esquema básico, primitivo, que en principio debe ser capaz de funcionar. Pero para echar a andar esto tenemos que resolver primero un problema operativo: al encender el sistema, al aplicarle energía eléctrica a lo que tenemos arriba, la memoria RAM está completamente "limpia", no hay absolutamente nada dentro de ella, porque es una memoria volátil que al apagarse la microcomputadora pierde toda la información contenida en ella, si es que anteriormente tenía alguna información. Esta es la razón por la cual cualquier computadora por sofisticada que sea tiene que tener instalada esa unidad que llamamos el disco duro. En los tiempos en los que se diseñaron y construyeron las primeras computadoras, los discos duros no existían. Entonces, ¿qué podían hacer los pioneros en las ciencias computacionales, en su mayoría ingenieros electrónicos al no existir en esos tiempos ingenieros en computación por no existir ni siquiera las carreras en ciencias computacionales, para echar a andar sus crudos prototipos? Una salida a este dilema se muestra a continuación, en la cual tenemos no sólo una memoria volátil RAM conectada al microprocesador sino tenemos también una memoria ROM, una memoria de lectura únicamente, la cual a diferencia de la memoria RAM no pierde sus datos cuando la microcomputadora es apagada. En cierta forma, esta ventaja es también su desventaja, porque las "instrucciones de arranque" no pueden ser alteradas, están grabadas de modo permanente. De este modo, nuestro esquema mejorado es el siguiente:
Bajo este esquema, y con el fin de evitar conflictos, un rango de domicilios está reservado para la memoria ROM, mientras que el resto está reservado para la memoria RAM. Por ejemplo, podemos resevar los primeros 640 domicilios para las instrucciones y datos contenidos en la memoria ROM, y el resto para la memoria RAM. Al arrancar la microcomputadora, lo primero que hará será dirigirse a la memoria ROM buscando la primera instrucción que debe llevarse a cabo, tras lo cual irá avanzando paso a paso.
En la práctica, resulta algo complicado e ineficiente diseñar un circuito integrado que contenga tanto la memoria ROM como la memoria RAM, y esta es la razón por la cual generalmente ambos tipos de memorias se fabrican en circuitos integrados separados, independientes el uno del otro. A la hora de interconectar todo, no hay ningún problema con este tipo de arreglo, siempre y cuando la memoria ROM tenga asignado su propio rango de domicilios con los cuales el microprocesador la puede identificar distinguiéndola de la memoria RAM que debe tener su propio rango de domicilios independientes de los domicilios asignados a la memoria ROM.
Tal vez el mejor ejemplo de una memoria ROM, presente en toda computadora personal ya sea de escritorio o portátil, lo sea el circuito integrado BIOS (acrónimo de la expresión en inglés Basic Input/Output System), del cual se muestra a continuación uno montado en una tarjeta:
contiene esencialmente un conjunto de rutinas que trabajan estrechamente con el microprocesador para inicializar el sistema al encenderse la computadora. Esta es la "memoria" que nunca se borra cuando se apaga la computadora. Una de las primeras cosas que hace el BIOS, además de enviar información al monitor de una computadora para que el usuario sepa que la computadora ya está empezando a trabajar, es llevar a cabo un chequeo completo de la memoria RAM para verificar que cada uno los domicilios de la memoria RAM puedan almacenar ceros y unos adecuadamente y que no exista falla alguna en la cual algún bit esté "atorado en 1" (con lo cual la memoria RAM estaría impedida de poder almacenar un "0") o "atorado en 0" (con lo cual la memoria RAM estaría impedida de poder almacenar un "1"). Pero el BIOS no sólo lleva a cabo las labores de inicialización durante el encendido de la máquina. Tras esto, apoya la transferencia de información entre los elementos del sistema, como los discos, el monitor, el reloj del sistema y las tarjetas de expansión. Desde los tiempos en que hicieron su aparición las primeras computadoras personales de escritorio IBM PC XT, IBM PC AT y sus compatibles (clones), el BIOS -o ROM BIOS- ha estado incorporado en un chip de memoria de sólo lectura ROM integrado en la "tarjeta madre" (motherboard) en la cual se encuentra montado el microprocesador junto con los componentes electrónicos principales, siendo popularizado el uso del BIOS como la "memoria de arranque" en las computadoras personales por las compañías Phoenix y AMI. Aunque es fundamental para el funcionamiento, el BIOS es normalmente invisible a los usuarios de los equipos. Es importante recalcar que el BIOS, como memoria de lectura únicamente, sólo puede contener instrucciones para ser procesadas por el microprocesador. Por sí solo, el BIOS es incapaz de poder procesar información alguna. El BIOS es un derivado directo de lo que anteriormente se conocía como un programa "cargador" o loader, un programa que al arrancar la máquina se encargaba de "cargar" la memoria RAM con un conjunto mucho mayor de instrucciones en lenguaje de máquina, instrucciones con las cuales se echaba a andar un programa más sofisticado como el sistema operativo, lo cual no ha cambiado ya que una vez que la computadora ha terminado de ejecutar las rutinas de inicialización contenidas en el circuito integrado BIOS el control es transferido a otro programa como el sistema operativo Windows que tiene su propio programa "cargador" que se encarga de "cargar" la memoria RAM con el paquete de instrucciones con las cuales una buena parte del sistema operativo se instalará permanentemente en la memoria RAM, tomando control del microprocesador hasta que la máquina será apagada.
No hay comentarios:
Publicar un comentario