domingo, 28 de noviembre de 2010

PROCESADOR DE 4 BITS


INTRODUCCIÓN
El procesador (CPU, por Central Processing Unit o Unidad Central de Procesamiento), es por decirlo de alguna manera, el cerebro del ordenador. Permite el procesamiento de información numérica, es decir, información ingresada en formato binario, así como la ejecución de instrucciones almacenadas en la memoria. 
El primer microprocesador (Intel 4004) se inventó en 1971. Era un dispositivo de cálculo de 4 bits, con una velocidad de 108 KHz. Desde entonces, la potencia de los microprocesadores ha aumentado de manera exponencial.
Este proyecto es una CPU de 4 bits construido a partir de los contadores TTL y compuertas.Este proyecto está destinado a ser más educativo que se una CPU práctico, útil. El diseño es simple y puede ser construido a partir de circuitos integrados TTL disponibles.
Hay tres modos de operación. Se trata de Programa, Reset y en Ejecutar. Para el modo de programa, hay un botón de escribir para escribir las instrucciones a la dirección que se indica mediante los conmutadores de dirección de palanca. (El resto de los botones y el interruptor para el paso y el modo de paso se instalaron para una versión anterior de la CPU y no se utilizan aquí.)

FUNCIONAMIENTO

El procesador (denominado CPU, por Central Processing Unit) es un circuito electrónico que funciona a la velocidad de un reloj interno, gracias a un cristal de cuarzo que, sometido a una corriente eléctrica, envía pulsos, denominados "picos". La velocidad de reloj (también denominada ciclo), corresponde al número de pulsos por segundo, expresados en Hertz (Hz). De este modo, un ordenador de 200 MHz posee un reloj que envía 200.000.000 pulsos por segundo. Por lo general, la frecuencia de reloj es un múltiplo de la frecuencia del sistema (FSBFront-Side Bus o Bus de la Parte Frontal), es decir, un múltiplo de la frecuencia de la placa madre
Con cada pico de reloj, el procesador ejecuta una acción que corresponde a su vez a una instrucción o bien a una parte de ella. La medida CPI (Cycles Per Instruction o Ciclos por Instrucción) representa el número promedio de ciclos de reloj necesarios para que el microprocesador ejecute una instrucción. En consecuencia, la potencia del microprocesador puede caracterizarse por el número de instrucciones por segundo que es capaz de procesar. Los MIPS (millions of instructions per second o millones de instrucciones por segundo) son las unidades que se utilizan, y corresponden a la frecuencia del procesador dividida por el número de CPI.

DESCRIPCIÓN DEL DISEÑO

Esta CPU tiene 16 instrucciones, ya que son de 4 bits significa que son 16 instrucciones el límite. Hay un acumulador y 4 registros. Los registros son la única memoria que está disponible para que un programa almacene datos en tiempo de ejecución. El espacio del programa es de 256 bytes. 4 bits para la instrucción y otros 4 bits para almacenar los datos del programa. Hay tres banderas, a menos que, igual y mayor que. Se utiliza un modelo de memoria segmentada. Hay 16 segmentos de 16 bytes. El programa se ejecutará en un segmento de palabra de 16 hasta que se haga un salto a otro segmento. Esto se hizo para simplificar el diseño.
Aquí hay un diagrama de bloque de la CPU:


A continuación se muestra un resumen de las instrucciones disponibles:

Código
Designación
Descripción
1
LIT
Copia un valor literal de la memoria de programa para el acumulador.
2
LOAD
Copia un valor de un registro al acumulador.
3
STORE
Copia el valor en el acumulador a un registro.
4
INC
Incrementar el acumulador en uno.
5
DEC
Decrementa el acumulador en uno.
6
REG
Copia el valor en el acumulador a la dirección del registro.
7
CMPL
Compara el acumulador a un valor literal. Establece banderas.
8
CMPR
Compara el acumulador a un registro. Establece banderas.
9
RST
Restablece el programa de mostrador.
10
JUMPL
Copia el valor en el acumulador al segmento de registro cuando el menor indicador se establece.
11
JUMPE
Copia el valor en el acumulador al segmento de registro cuando la bandera de la igualdad se establece.
12
JUMPG
Copia el valor en el acumulador al segmento de registro cuando el mayor indicador se establece.
13
IN
Copia el valor de la entrada al acumulador.
14
OUT
Copia el valor en el acumulador a la salida.
15
NOP
No realiza operación.

Hay 15 instrucciones que se muestran aquí en lugar de 16. La otra instrucción, FETCH, se utiliza por la lógica de micro-instrucción y debería nunca ser utilizada por un programa.

INSTRUCCIONES

Una instrucción es una operación elemental que el procesador puede cumplir.. Las instrucciones se almacenan en la memoria principal, esperando ser tratadas por el procesador. Las instrucciones poseen dos campos:
·         el código de operación, que representa la acción que el procesador debe ejecutar;
·         el código operando, que define los parámetros de la acción. El código operando depende a su vez de la operación. Puede tratarse tanto de información como de una dirección de memoria.

Código de Operación
Campo de Operación

El número de bits en una instrucción varía de acuerdo al tipo de información (entre 1 y 4 bytes de 8 bits). 
Las instrucciones pueden agruparse en distintas categorías. A continuación presentamos algunas de las más importantes:
·         Acceso a Memoria: acceso a la memoria o transferencia de información entre registros.
·         Operaciones Aritméticas: operaciones tales como suma, resta, división o multiplicación.
·         Operaciones Lógicas: operaciones tales como Y, O, NO, NO EXCLUSIVO, etc.
·         Control: controles de secuencia, conexiones condicionales, etc.

REGISTROS
Cuando el procesador ejecuta instrucciones, la información almacena en forma temporal en pequeñas ubicaciones de memoria local de 8, 16, 32 o 64 bits, denominadas registros. Dependiendo del tipo de procesador, el número total de registros puede variar de 10 a varios cientos. 
Los registros más importantes son:
·         el registro acumulador (ACC), que almacena los resultados de las operaciones aritméticas y lógicas;
·         el registro de estado (PSWProcessor Estado: Word o Palabra de Estado del Procesador), que contiene los indicadores de estado del sistema (lleva dígitos, desbordamientos, etc.);
·         el registro de instrucción (RI), que contiene la instrucción que está siendo procesada actualmente;
·         el contador ordinal (OC o PC por Program Counter, Contador de Programa), que contiene la dirección de la siguiente instrucción a procesar;
·         el registro del búffer, que almacena información en forma temporal desde la memoria.

MEMORIA CACHE

La memoria caché (también memoria buffer) es una memoria rápida que permite reducir los tiempos de espera de las distintas informaciones almacenada en la RAM (Random Access Memory o Memoria de Acceso Aleatorio). En efecto, la memoria principal del ordenador es más lenta que la del procesador. Existen, sin embargo, tipos de memoria que son mucho más rápidos, pero que tienen un costo más elevado. La solución consiste entonces, en incluir este tipo de memoria local próxima al procesador y en almacenar en forma temporal la información principal que se procesará en él. Los últimos modelos de ordenadores poseen muchos niveles distintos de memoria caché:

·         La Memoria caché nivel 1 (denominada L1 Cache, por Level 1 Cache) se encuentra integrada directamente al procesador. Se subdivide en dos partes:
·         la primera parte es la caché de instrucción, que contiene instrucciones de la RAM que fueron decodificadas durante su paso por las canalizaciones.
·         la segunda parte es la caché de información, que contiene información de la RAM, así como información utilizada recientemente durante el funcionamiento del procesador.

El tiempo de espera para acceder a las memorias caché nivel 1 es muy breve; es similar al de los registros internos del procesador.


·         La memoria caché nivel 2 (denominada L2 Cache, por Level 2 Cache) se encuentra ubicada en la carcasa junto con el procesador (en el chip). La caché nivel 2 es un intermediario entre el procesador con su caché interna y la RAM. Se puede acceder más rápidamente que a la RAM, pero no tanto como a la caché nivel 1.
·         La memoria caché nivel 3 (denominada L3 Cache, por Level 3 Cache) se encuentra ubicada en la placa madre.

Todos estos niveles de caché reducen el tiempo de latencia de diversos tipos de memoria al procesar o transferir información. Mientras el procesador está en funcionamiento, el controlador de la caché nivel 1 puede interconectarse con el controlador de la caché nivel 2, con el fin de transferir información sin entorpecer el funcionamiento del procesador. También, la caché nivel 2 puede interconectarse con la RAM(caché nivel 3) para permitir la transferencia sin entorpecer el funcionamiento normal del procesador.

SEÑALES DE CONTROL

Las señales de control son señales electrónicas que orquestan las diversas unidades del procesador que participan en la ejecución de una instrucción. Dichas señales se envían utilizando un elemento denominado secuenciador. Por ejemplo, la señal Leer/Escribir permite que la memoria se entere de que el procesador desea leer o escribir información.

El siguiente diagrama suministra una representación simplificada de los elementos que componen el procesador (la distribución física de los elementos es diferente a la disposición): 


DETALLES Y ESQUEMAS.


Arriba se muestra la placa de circuito principal. Este es el circuito de la CPU. En el lado izquierdo, hay un zócalo DIP de 16 pines que se conecta a los interruptores de palanca y los LEDs de la interfaz de programación. El zócalo DIP 8 pines es para el control - programa, reinicio y modo de ejecución y el botón de escribir. En la parte inferior, mano derecha del tablero están dos cabezales de 4 de pines que se conectan a los buffers del LED para exhibir las banderas y el contenido del acumulador.

La CPU se divide en cinco esquemas:

Programador y control



RECOMENDACIONES


Los esquemas muestran genéricos serie 7400 números de parte TTL, pero la CPU se construyó utilizando realmente TTL 74LS. No se recomienda el uso recto TTL 7400 debido a los requisitos de energía e inmunidad al ruido pobres, pero supongo que se puede hacer. Cambio de ruido puede convertirse en un problema cuando se utiliza el cableado de punto a punto con 30 calibre alambre como solía. Para garantizar un mínimo de problemas con este proyecto te recomiendo lo siguiente -
  • Utilice los siguientes TTL familias: 74LS, 74ALS, 74HCT, 74F. Estas familias ofrecen TTL de alta velocidad que no es necesario aquí, pero también tienen requisitos de baja potencia, de un ventilador de alta inmunidad al ruido y bueno (para TTL). Mezcla de cualquiera de estas familias en el mismo circuito que no debería ser un problema. Evite 74, 74L, y especialmente 74H y 74S.
  • Ponga un 0,1 uf condensador de desacoplamiento entre las patillas de alimentación de cada CI.
  • Uso intensivo de tierra y Vcc autobuses. Incluso las familias de bajos TTL poder todavía necesita buena fuente de alimentación autobuses para funcionar correctamente. He utilizado 18 calibre de cobre sólido alambre para los buses de alimentación principal y 22 calibre alambre de cobre sólido para suministrar cada fila de los circuitos integrados.
  • Asegúrese de que la fuente de alimentación puede suministrar suficiente corriente. Este circuito de 4 bit CPU atrae alrededor de 650 ma, con la interfaz de programación, los LED y todo, cuando se utiliza TTL 74LS. Yo recomiendo una fuente de alimentación que puede ofrecer un amplificador de 5 voltios. Sin embargo, 74HCTse la demanda menos el poder.

REFERENCIAS