Informática
Microprocesadores: procesador 4004
MICROPROCESADORES
Introduccion
A travez de los años el mundo de la tecnologia ha evolucionado rapidamente. Este se debe a varios fenomenos ocurridos gracias al esfuerzo de varios hombres. Uno de estos fenomenos ha sido la aparicion del microprocesador que con su evolucion a travez de los años ha llevado a la tecnologia, sobre todo a la computacion, a niveles inimaginables y cada dia que pasa alcanza logros inesperados.
Un microprocesador es un motor completo de computacion que es fabricado en un chip sencillo. El primer microprocesador fue el 4004 introducido en el 1971 al mercado por Intel Corporation. Este procesador no era muy poderoso, todo lo que podia era sumar y restar y solo podia hacerlo a 4 bits, pero era una revolucion tecnologica ya que todo estaba integrado en un solo chip. Hoy en dia tenemos velocidades que en comparacion al origen son extremas. Modelos como los Pentium IV y los procesadores de AMD han multiplicado los niveles de procesamientos electronicos.
Para poder entender la tecnologia de hoy es necesario los origenes y las evoluciones de las mismas. El siguiente habla de los procesadores 4004 y 8080 de Intel.
El Origen del procesador 4004
En el año 1969 Busicom, una compañia japonesa dedicada a la manufacturacion de calculadoras, pregunta a Intel por el diseño de una linea de chips para una linea de calculadoras programables de alto rendimiento. El diseño original de Busicom requeria de varios ships para su funcionamiento, idea que el Ingeniero de Intel Marcian E. Hoff consideró muy compleja para ser economicamente efectiva. Tambien el equipo de Intel estaba totalmente ocupado con el chip 1101, por lo que no existian muchos recursos de diseño y esta no estaba preparada para realizar circuitos a medida. En vez de una solucion de varios chips, Hoff tuvo la idea de un procesador de uso general que podria ser programado para varios usos. Al inicio, Busicom no estuvo de acuerdo con la idea de este chip pero para el inicio de 1970 estuvo de acuerdo con el diseño del mismo y firmaron un contrato donde Intel desarrollaria Chips para las calculadoras. Una vez creadas, Intel entrego los chips a Busicom. Estos vendieron alrededor de 100,000 calculadoras.
Intel, al darse cuenta del potencial de nuevo chip, ofrecio a Busicom un precio mas bajo a cambio de que estos les retornen los derechos del diseño del microprocesador y el derecho para comercializarlos para aplicaciones diferentes a la de calculadoras. En ese momento Busicom se encontraba en problemas financieros, por lo que estuvieron de acuerdo con el trato.
En 1974 Intel introdujo el primer microprocesador con propositos computacionales, el 8080, que contaba con 8 bits en un chip. El mismo se creo tomando en cuenta las criticas que se hacian sobre el procesador 4004. Este utilizaba un nuevo proceso llamado NMOS, que utilizaba transistores MOS de canal N, que se utilizaba en las ultimas memorias RAM dinamicas de 4 kilobytes, ademas le agrego una mejor estructura de interrupciones, mayor direccionamiento de memoria (64MB) e instrucciones adicionales. Este procesador creo el verdadero mercado de los microprocesadores. Existian aplicaciones que no podian ejecutarse con los modelos previos pero con este se hizo podian ejecutar. En el 8080 corria el famoso sistema operativo CP/M de la decada de los 70 que fue desarrollado por la compañía Digital Research
El Chip 4004
Este era un microprocesador de 4 bits de bus de datos, tenia una velocidad de procesamiento de 108 KHz, direcciona 32768 bits de ROM y 5120 bits de RAM. Ademas se podia direccionar 16 puertos de entrada y 16 puertos de salida de 4 bits. Contiene alrededor de 2300 transistores MOS de canal P de 10 micrones. El ciclo de instrucción es de 10.8 microsegundos.
Este microprocesador estaba encapsulado en el formato DIP (Dual Inline Package) de 16 patas (ocho de cada lado). La distancia entre las patas es de 0,1 pulgadas (2,54 milímetros), mientras que la distancia entre patas enfrentadas es de 0,3 pulgadas (7,68 milímetros).
Las funciones de las 16 patas con las que se conecta el 4004 con el exterior son las siguientes:
Pata | Nombre | Descripcion |
1 | D0 | Direcciones y datos de RAM y ROM |
2 | D1 | Direcciones y datos de RAM y ROM |
3 | D2 | Direcciones y datos de RAM y ROM |
4 | D3 | Direcciones y datos de RAM y ROM |
5 | Vss | Referencia de tierra. Tension positiva. |
6 | Clock Phase 1 | |
7 | Clock Phase 2 | |
8 | Sync Output | Señal de sincronismo generada por el procesador. Indica el comienzo de un ciclo de instruccion. |
9 | Reset | Si en esta pata se aplica un 1 logico este borra todos los flags y registros de estado y forza el contador de programa a cero. Para que actue correctamente, esta linea deberá activarse por 86 cliclos de reloj (8 ciclos de maquina). |
10 | Test | Instruccion JCN verifica el estasdo de esta linea |
11 | CR-ROM (Control Memory Outputs) | Esta señal está activa cuando el procesador necesita datos de la memoria ROM |
12 | Vdd | Alimentacion del microprocesador. La tension debe ser de -15V +/- 5% |
13 | CM-RAM3 | Señal de seleccion de banco para indicar a cual RAM 4002 desea acceder el microprocesador. |
14 | CM-RAM2 | Señal de seleccion de banco para indicar a cual RAM 4002 desea acceder el microprocesador. |
15 | CM-RAM1 | Señal de seleccion de banco para indicar a cual RAM 4002 desea acceder el microprocesador. |
16 | CM-RAM0 | Señal de seleccion de banco para indicar a cual RAM 4002 desea acceder el microprocesador. |
Instrucciones del 4004
Hay instrucciones de uno o dos bytes. Los primeros tardan 8 períodos de reloj (un ciclo de instrucción). Los segundos tardan 16 períodos de reloj (dos ciclos de instrucción).
NOP. No hace nada.
JCN. Salta a la direccion especificada por A2 A2 A2 A2 A1 A1 A1 A1 dentro de la misma ROM que contiene esta instrucción JCN, si se cumple la condicion C1 C2 C3 C4 en caso contrario continua ejecutando la proxima instrucción.
FIM. Cargar el dato D2, D1 (ocho bits) en el par de registro RRR.
SRC. Envia la direccion (contenido del par de registros RRR) a la Rom y a la RAM en los tiempos X2 y X3 del ciclo de instrucción.
FIN. Cargar en el par de registros RRR el dato de ROM apuntado por el par de registros cero.
JIN. Salto indirecto según el par de registros RRR.
JUN. Salto incondicional a la direccion de ROM A3, A2 A1.
JMS. Salvar el viejo valor del contador de programa y saltar a la direccion de ROM A3, A2, A1.
INC. Incrementar el contenido del registro RRRR.
ISZ. Incrementar Incrementar el registro RRRR. Si el resultado no es cero, saltar a la dirección A2 A2 A2 A2 A1 A1 A1 A1 dentro de la misma ROM que contiene esta instrucción ISZ
ADD. Sumar el registro RRRR al acumulador con acarreo.
SUB. Restar el registro RRRR del acumulador con préstamo.
LD. Cargar el acumulador con el contenido del registro RRRR.
XCH. Intercambiar los contenidos del acumulador y el registro RRRR.
BBL. Retornar de subrutina y cargar el dato D D D D en el acumulador.
LDM. Cargar el dato D D D D en el acumulador.
Las siguientes instrucciones operan sobre las direcciones de RAM y ROM especificadas en la última instrucción SRC. Cada chip de RAM tiene cuatro registros, cada uno con veinte caracteres de 4 bits subdivididos en 16 caracteres de memoria principal y 4 de estado. El número de chip, registro de RAM y carácter de memoria principal se selecciona mediante la instrucción SRC, mientras que los caracteres de estado (dentro de un registro) se seleccionan mediante el código de instrucción (OPA) .
WRM. Escribir el acumulador en RAM.
WMP. Escribir el acumulador en port de salida de RAM.
WRR. Escribir el acumulador en port de salida de ROM.
WPM. Escribir el acumulador en el medio byte especificado de RAM (se usa en los microprocesadores 4008 y 4009 solamente).
WR0. Escribir el acumulador en el carácter de estado de RAM 0, 1, 2, 3.
WR1. Escribir el acumulador en el carácter de estado de RAM 0, 1, 2, 3.
WR2. Escribir el acumulador en el carácter de estado de RAM 0, 1, 2, 3.
WR3. Escribir el acumulador en el carácter de estado de RAM 0, 1, 2, 3.
SBM. Restar el contenido de la posición previamente especificada de RAM del acumulador con préstamo.
RDM. Cargar en el acumulador el contenido de la posición de RAM.
RDR. Cargar en el acumulador el contenido del port de entrada de ROM.
ADM. Sumar el contenido de la posición previamente especificada de RAM al acumulador con acarreo.
RD0. Almacenar en el acumulador el carácter de estado de RAM 0, 1, 2, 3.
RD1. Almacenar en el acumulador el carácter de estado de RAM 0, 1, 2, 3.
RD2. Almacenar en el acumulador el carácter de estado de RAM 0, 1, 2, 3.
RD3. Almacenar en el acumulador el carácter de estado de RAM 0, 1, 2, 3.
Instrucciones del acumulador.
CLB. Limpiar el acumulador y el acarreo.
CLC. Limpiar el indicador de acarreo.
IAC. Incrementar el acumulador.
CLC. Complementar el acarreo.
CMA. Complementar el acumulador
RAL. Rotar acumulador y acarreo hacia la izquierda.
RAR. Rotar acumulador y acarreo hacia la derecha.
TCC. Sumar acarreo al acumulador y limpiar el acarreo.
DAC. Decrementar el acumulador.
TCS. Restar acarreo del acumulador y limpiar el acarreo.
STC. Poner el acarreo a uno.
DAA. Ajuste decimal del acumulador.
KBP. Convierte un código 1 de 4 a binario en el acumulador.
DCL. Designar línea de comando.
Dato poco conocido.
El procesador 4004 fue el procesador que equipo de poder computacional a la nave espacial Pioneer 10. Esta despego el 2 de Marzo de 1972 y luego obtuvo las primeras imágenes de Jupiter. Los cientificos de la NASA se comunicaban con el Pionner 10 hasta su mision a Jupiter. El ultimo grupo de instrucciones fue enviado el 30 de noviembre de 1997 y tomo alrededor de 9 horas para llegar a la nave. Despues de eso la intensidad de la señal era demasiado debil para recibir desde los instrumentos, pero todavia esta trabajando sin dificultad.
El Chip 8080
Como detalle constructivo el 8080 tenía alrededor de 6000 transistores MOS de canal N (NMOS) de 6 micrones, se conectaba al exterior mediante 40 patas (en formato DIP) y necesitaba tres tensiones para su funcionamiento (típico de los circuitos integrados de esa época): +12V, +5V y -5V. La frecuencia máxima era de 2 MHz.
Instrucciones del 8080
Suma 16 Bits
DAD B, HL <- HL+BC.
DAD D, HL <- HL+DE.
DAD H, HL <- HL+HL.
DAD SP, HL <- HL+SP.
Carga 16 Bits
LXI B,D16 BC <- D16
LXI D,D16 DE <- D16
LXI H,D16 HL <- D16
LXI SP,D16 SP <- D16
LHLD Addr HL <- (Addr)
SHLD Addr (Addr) <- HL
Incrementar
INR M, (HL) <- (HL)+1
INR A, A <- A+1
INX B, BC <- BC+1
INX B, BC <- BC+1
INX B, BC <- BC+1
INX B, BC <- BC+1
Decrementar
DCR M, (HL) <- (HL)-1
DCR A, A <- A-1
DCX B, BC <- BC-1
DCX D, DE <- DE-1
DCX H, HL <- HL-1
DCX SP, SP <- SP-1
Carga 8 Bits
LDAX B, A <- (BC)
LDAX D, A <- (DE)
STAX B, (BC) <- A
STAX D, (DE) <- A
LDA Addr, A <- (Addr)
STA Addr (Addr) <- A
Especiales
XCHG, DE <-> HL
DAA, Ajuste decimal acumulacion.
CMA, A <- 0FFh - A
STC, Cy <- 1
CMC, Cy <- 1 - Cy
Operaciones con la pila
PUSH B, Push BC
PUSH D, Push DE
PUSH H, Push HL
PUSH PSW, Push AF
POP B, Pop BC
POP D, Pop DE
POP H, Pop HL
POP PSW Pop AF
XTHL, HL <-> (SP)
SPHL, SP <- HL
Control
DI, Deshabilitar interrupciones.
EI, Habilitar interrupciones.
Entrada/Salida
IN D8, A <- Port D8
OUT D8, Port D8 <- A
Descargar
Enviado por: | El remitente no desea revelar su nombre |
Idioma: | castellano |
País: | República Dominicana |