Escolar Documentos
Profissional Documentos
Cultura Documentos
La mayora de los modernos dispositivos electrnicos como los telfonos mviles, los
computadores porttiles, tabletas, reproductores musicales digitales, etc., emplean como
corazn de cada sistema un elemento construido a partir de silicio y que se conoce como
microprocesador o simplemente procesador.
Un microprocesador es esencialmente un dispositivo electrnico capaz de realizar tareas
particulares de control sobre un sistema electrnico y su caracterstica fundamental es la
capacidad de tomar decisiones sobre una determinada salida dependiendo de condiciones
especficas del conjunto de entradas.
Conviene establecer en la definicin de la funcin de microprocesador, que el nombre de este
dispositivo viene de otro concepto ms general: Proceso.
Un proceso puede definirse como el conjunto de actividades relacionadas entre s y aplicadas
sobre un conjunto de entradas o insumos para transformarlas para entregar un resultado o
producto definido.
Entradas
Proceso
Salidas
Desde esta definicin se aprecia el origen del trmino procesador asociado a estos dispositivos
electrnicos aunque para diferenciarlos de otros procesadores (industriales por ejemplo) se
suele agregar el trmino electrnico anlogo o digital.
El telar de Jacquard es especial porque por primera vez una maquina no solo automatizaba el
proceso de produccin, sino que este proceso era programable con el fin de modificar el
producto (el tipo de tela). Es adems notorio que el mecanismo de programacin empleaba
tarjetas perforadas, mecanismo que posteriormente fue empleado por Hollerith en su famosa
maquina de censos en Estados Unidos de Amrica.
En los aos 40, Von Neumann y otros, desarrollaron la idea de una arquitectura de
procesadores en la que los datos y el programa estn almacenados dentro del mismo
procesador dando lugar a la definicin de los componentes de una unidad central de proceso
CPU que se emplea en el mundo actual y que apoyada en la tecnologa miniaturizada de los
transistores, permiti desarrollar un sistema de proceso digital dentro de un mismo circuito
integrado.
Comercialmente los primeros sistemas de computo formales fueron desarrollados para
grandes compaas con necesidades elevadas en el manejo de inventarios, nominas y clculos
impositivos complejos. Uno de los ms notorios proveedores de estas maquinas, fue fundado
por Hollerith y se conoce hoy en da como IBM, que en los 50s y 60s contribuyo con el
desarrollo de hardware y software de aplicaciones comerciales.
Como se ver posteriormente, usar buses de 4 bits restringe fuertemente las posibilidades de
cmputo de problemas complejos. Intel nuevamente liderara este campo al producir a
mediados de 1972 el primer procesador de 8 bits (llamado 8008) con frecuencias de reloj de
hasta 800Khz.
Pero solo hasta 1974 con la aparicin del Intel 8080 se afianza el desarrollo de la llamada
computacin personal de bajo costo. Con 4500 transistores integrados y un bus de 8 bits, el
8080 es capaz de procesar 200.000 instrucciones por segundo. IBM planteara sus primeros
computadores de escritorio basados en el 8080 y este modelo originaria el surgimiento de
otras empresas de semiconductores con sus propios modelos de 8 bits. Entre los ms
importantes Zilog con sus modelos Z80 y Motorola que impactara de manera significativa
pues su procesador 6502 se convertira en el corazn del primer computador de propsito
general orientado a usuarios particulares y cuya marca seria un hito en la historia de la
computacin: Apple.
En los aos 80 se desatara una carrera de produccin de semiconductores no igualada por
otra industria en la historia. Intel presento el primer procesador de 16 bits con reloj de 4 Mhz
en las postrimeras de la dcada de los 70. Este procesador es la fundacin de una arquitectura
que perdura hasta nuestros das: x86.
Ilustracin 7 80386
Arquitectura de microprocesadores.
La arquitectura en un microprocesador define la manera en que los datos son transportados
dentro del procesador y determina el tipo de instrucciones que puede ejecutar el dispositivo.
En la actualidad existen diversas arquitecturas dependiendo del fabricante y el propsito del
procesador.
Para comprender el significado de la arquitectura y su influencia en el juego de instrucciones,
se presenta a lo largo de este captulo el diseo de un procesador de 4 bits con un enfoque
ms histrico que un modelo clasificable dentro de las distintas arquitecturas formales. Se
persigue con este modelo obtener una idea general del proceso evolutivo de los procesadores
y de los mecanismos bsicos que permiten convertir una abstraccin algortmica en un
producto prctico medible. Una vez completado el modelo se presentaran algunas de las
arquitecturas tpicas en sistemas simples de un nico ncleo y las clasificaciones de acuerdo al
conjunto de instrucciones.
Siendo un modelo didctico es necesario definir las caractersticas bsicas:
Debe poder ser simulado en la herramienta ISIS de Proteus.
Bus de datos de 4 bits.
Bus de direcciones de 4 bits
Debe disponer de instrucciones:
o De asignacin.
o Aritmticas
o lgicas
o de bifurcacin.
De acuerdo a la primera restriccin, los componentes usados deben estar dentro de los
circuitos integrados con modelo de simulacin en la herramienta, las elecciones de los
componentes estn guiadas por este principio por lo cual el ejercicio no corresponde a un
sistema ni optimo ni eficiente y mucho menos apegado a los modelos de arquitectura formal
que se presentan en la teora general de arquitectura de microprocesadores.
Una opcin interesante consiste en mantener las entradas almacenadas en alguna forma de
variable (un registro) con el fin de mantener una memoria controlada de los operandos en
cada funcin aritmtica/lgica.
En los modelos de arquitectura estndar, esta memoria de operandos suele corresponder a un
registro de propsito general conocido como registro acumulador o de trabajo (A o WR). En
este tipo de arquitecturas todas las operaciones de la ALU deben pasar a travs de este
registro.
En la ilustracin 10 se observa el uso de estos registros, empleando el circuito integrado
CD4076, que corresponde a un registro de 4 bits con carga en paralelo.
El uso de registros en las entradas de los operandos de la ALU permite que haya un bus de
datos de entrada comn de 4 bits (eliminando 4 en el diseo inicial), si el usuario quiere que la
entrada B cargue el valor 0101, basta con poner el valor el bus y generar un flanco en el reloj
del CD4076 U2, si desea cargar el valor 0001 en la entrada B, basta con poner dicho valor en el
bus comn y generar el correspondiente flanco de subida en la entrada de reloj del U3.
Registros de memoria.
Los dos registros con los operandos permiten almacenar los dos parmetros de 4 bits que
forman los operandos de la funcin aritmtica o lgica que se seleccione a travs de S. pero si
se deseara hacer operaciones de ms de 4 bits, serian insuficientes para realizar tal operacin.
Una operacin de 8 bits en este modelo puede ser realizada usando un bus de 8 bits, lo que
requiere el empleo de otra ALU en cascada o puede ser realizado en dos pasos. En el ltimo
caso, una operacin como por ejemplo la suma, puede realizarse sumando primero los 4 bits
menos significativos y posteriormente sumando los 4 bits ms significativos teniendo en
cuenta el posible acarreo originado durante la operacin en el nibble (4 bits) menos
significativo.
Para lograr hacer este tipo de operaciones de mayor ancho de bits que el disponible en el
sistema, es necesario disponer de algn tipo de memoria. Esta memoria en las arquitecturas
de procesadores es conocida como juego de registros de memoria y depende del fabricante y
el modelo de microprocesador.
El 74244 es un buffer three-state, su principal funcin es evitar posibles corto circuitos durante
la operacin del sistema. De no ser empleados, si uno de los registros carga a la salida en el
peor caso el valor 1111 y mientras tanto otro de los registros carga en sus salidas el valor 0000,
se producira un corto en cada lnea de datos, el buffer impide que este tipo de colisiones de
seal ocurran pues sus salidas pasan a estado de alta impedancia cuando la entrada OE est en
estado alto. De tal manera que para controlar el acceso al bus de datos desde cualquier
registro, basta con habilitar el registro de inters llevando a 0 la respectiva entrada OE,
mientras que se inhabilita dicho acceso a los dems registros al mantener las entradas OE de
los correspondientes buffers en alto. Al observarse la salida de la ALU, se descubre que esta se
encuentra conectada al mismo bus de datos a travs de otro buffer three-state. Esta estrategia
de conexin permite llevar datos desde un registro especfico hacia una entrada especfica de
la ALU y una vez obtenida una operacin aritmtica o lgica en la salida de la ALU, esta
respuesta puede ser llevada y cargada en alguno de los registros de memoria.
Al controlar las entradas de reloj de los registros (tanto los de memoria como los de los
operandos de la ALU) y las salidas de los mismos y de la ALU a travs de los buffers, es posible
llevar cualquier dato en el bus de datos desde cualquier registro de memoria hasta cualquier
registro o ALU del modelo. La habilidad de transportar cualquier contenido de los registros de
memoria a cualquier otro registro o incluso a s mismo, es conocida como ortogonalidad de la
arquitectura y cuando permite que cualquier instruccin pueda ser aplicada a cualquier
registro en memoria, corresponde a un juego de instrucciones ortogonal.
Ejemplo:
Usando el modelo propuesto sume dos nmeros almacenados en el registro U7 y en el registro
U6 y el resultado debe ser almacenado en el registro U8.
Solucin:
todas las seales de CLK deben ser llevadas a 0.
Todas las lneas de OE deben estar en estado lgico 1.
Aplique el cdigo para operacin suma en las entradas S0 a S3 de la ALU.
Cargue en el bus de datos la salida del registro U7, poniendo un 0 lgico en la entrada
del buffer U9A.
Cargue el dato del bus en el registro U2A generando un flanco en la entrada CLK
correspondiente.
Suba la lnea OE de U9A para evitar cortocircuitos.
Cargue el contenido del registro U6 en bus de datos llevando a 0 lgico la entrada OE
de U9B.
Cargue el dato presente en el bus usando la entrada CLK del registro de entrada de la
ALU.
Suba la lnea OE de U9B.
Cargue el resultado de la suma en el bus, bajando la lnea OE del buffer U3:A en la
salida de la ALU.
Cargue el resultado en el registro U8, generando un flanco de subida en el CLK del
registro U8
Fin del proceso.
El ejemplo presentado muestra la secuencia de pasos requerida para sumar dos registros y
almacenar la suma en un tercer registro de memoria. Este es por s mismo in programa que se
ejecuta como una secuencia de 1 y 0 en distintas lneas de habilitacin y reloj de los mdulos
del sistema.
Como se aprecia el proceso de realizar una operacin es detallado y sincronizado. Si una sola
de las lneas de control no es controlada en cada momento, el resultado no ser obtenido
correctamente y en algunos casos podra terminar en un dao fsico del circuito.
Realizar estas operaciones manualmente resulta complejo y lento, por lo cual es necesario
agregar otros mdulos que permitan simplificar el proceso.
Lgica de direccionamiento.
Al observar detenidamente el proceso descrito y la funcin de los buffers de salida en cada
registro y ALU, se descubre que no es posible que en algn momento del proceso existan dos
simultneamente habilitados. Tal resultado permite pensar en emplear un modulo que
simplifique el proceso de seleccin del buffer.
Uno de los mdulos que presenta tal operacin es el DEMUX que permite seleccionar una y
solo una salida en cada momento disminuyendo de paso la cantidad de lneas de control, en
este caso se habilita con un 0 lgico lo que implica que el demux debe disponer de salidas
negadas. Uno de los modelos de simulacin disponibles en el ISIS Proteus es el 74138, un
demux 3 a 8 aplicado como control de habilitacin de salida tal como se ve en la ilustracin 14.
El 74138 inhabilita todas sus salidas a travs de la combinacin de entradas E1, E2 y E3, lo que
permite liberar en cualquier momento el bus de datos llevando todos los dispositivos
presentes a estado de alta impedancia.
En la forma en que estn alambrados los registros de memoria se puede apreciar que para
cada combinacin se habilita la salida de uno y solo un registro en la forma descrita en la tabla.
Lneas de seleccin de U11 (entradas ABC)
000
U9:A- registro U4
001
U9:B- registro U6
010
U10:A- registro U7
011
U10:B- registro U8
100
ninguno
101
ninguno
110
ninguno
111
Las lneas no conectadas, sern aplicadas o otros elementos posteriormente, sin embargo es
posible percibir que ahora cada registro de memoria corresponde a un nmero de
identificacin (U4 al 0, U6 al 1, U7 al 2, U8 al 3 y ALU al 7). En otras palabras el 74138
direcciona la salida de cada registro, este conjunto de lneas de salida del 74138 es una forma
simple de bus de direcciones dentro del procesador y el demux acta aqu como un
decodificador de direcciones de los mdulos del sistema.
Hasta el momento, si se observa detenidamente, el procesador puede llevar informacin entre
registros y desde o hacia la ALU, pero el sistema no tiene ninguna forma de comunicacin con
el mundo externo. Aprovechando la disponibilidad de lneas de direccin en el 74138, se
agregan dos mdulos ms:
Un buffer de datos de entrada externa o del usuario
Un registro de datos de salida.
La entrada del usuario se realiza a travs de un buffer que permite insertar los datos de
usuario en el bus de datos tal como se presenta en la ilustracin 15.
En la grafica puede verse la inclusin de un nuevo demux para la seleccin del modulo que
recibe informacin desde el bus de datos. U14 es un registro de entrada de usuario y U15 es el
registro de salida del usuario. Tambin se han reemplazado los registros a la entrada de la ALU
aunque las seales de control siguen estando independientes.
Las lneas azules simbolizan los buses que hasta el momento se han implementado:
El bus de datos de 4 bits
El bus de seleccin o direccionamiento de los mdulos.
Un bus de sealizacin.
La salida de la ALU hacia el bus de datos tambin ha sido reemplazada por un registro
CD4076 y se ha agregado lgica de deteccin de resultado 0 (la compuerta de cuatro
entradas negadas) y un Flip-Flop para el almacenamiento del bit de acarreo. (Ilustracin
18).
La salida negada del Flip-Flop es realimentada a la entrada de acarreo de la ALU para
permitir realizar operaciones con acarreo (como operaciones de 8 bits por ejemplo). Las
lneas de sealizacin R y S permiten encender o apagar el bit de acarreo para facilitar
operaciones con acarreo controlado por programa.
Observe que las entradas de seleccin de modulo que recibe el bus de datos y las de
seleccin de modulo que carga datos al bus estn compartidas. Esta alternativa es posible
siempre que el proceso de seleccin de origen y destino no sea simultneo y constituye
una estrategia de minimizacin de lneas de control muy usada en sistemas digitales.
Las secuencias de operaciones necesarias para hacer operaciones de transferencia de
datos y operaciones aritmticas y lgicas comprenden cambios secuenciales en las lneas
de sealizacin (16 lneas).
Una forma de simplificar la tarea de generar las secuencias es almacenarlas dentro de una
memoria ROM. Sin embargo 16 bits es un nmero excesivo para una memoria simple
(usualmente 8 bits) por lo que se requiere disminuirlas al menos a 8 lneas.