Академический Документы
Профессиональный Документы
Культура Документы
Introducción a los
Microprocesadores
Microprocesadores I
Electrónica
-1-
Digital III
Electrónica Digital III
CONTENIDO
Laboratori o de El ectróni ca Di gi tal – Depto. El ectróni ca y Automáti ca – FI -
1. Introducción
2. Circuitos Integrados
2.1. La Ley de Moore
2.2. Clasificación según la integración de circuitos integrados
2.3. Clasificación en cuanto a las funciones de un IC
3. Circuitos integrados digitales
3.1. Lógica Cableada
3.1.1. Compuertas Lógicas y circuitos integrados MSI
3.1.2. Circuito integrado de aplicación especifica ASIC
3.2. Lógica programada
3.2.1. Dispositivo lógico programable sencillo – SPLD
3.2.2. Dispositivo lógico programable complejo – CPLD
3.2.3. Arreglo de compuertas programables en campo – FPGA
3.3. Procesador Digital.
3.3.1. Microprocesador – uP
3.3.2. Microcontrolador – uC
3.3.3. Procesador Digital de Señales – DSP
3.3.4. Controlador Digital de Señales – DSC
3.4. Sistemas en Chip
4. Aplicaciones de un Microprocesador
-2-
Electrónica Digital III
1 – INTRODUCCIÓN
El objetivo de la asignatura es el de estudiar una de las herramientas que nos provee la electrónica
para la resolución de problemas mediante técnicas digitales. Dicha herramienta integrada es definida
como MICROPROCESADOR.
Para logra este objetivo el ingeniero que desarrolla y diseña un sistema embebido para solucionar un
determinado problema, debe adoptar una actitud totalmente distinta a la que asume el profesional
que utiliza el computador como herramienta de cálculo o gestión administrativa. En estos dos
últimos casos normalmente se poseen recursos de hardware suficientes o fácilmente expansibles, las
interfaces graficas resultan muy convenientes y se procesan gran cantidad de información como
bases de datos, imágenes, video, etc. sin un fuerte requerimiento en cuanto al tiempo de
procesamiento. En cambio el Ingeniero de desarrollo pretende utilizar al microprocesador como
integrante de un proceso físico o biológico, que está evolucionando y al que debe estar
continuamente midiendo, procesando y transmitiendo datos y en muchos casos actuando sobre el
para guiarlo, según alguna estrategia de optimización preestablecida.
El microcomputador dedicado en estos casos puede encontrarse conectado a los periféricos estándar,
pero además mediante interfaces específicas como conversores de señales analógicas-a-digitales o
ADC y de digitales-a-analógicas o sea DAC, entradas y salidas digitales, salidas moduladas en
ancho de pulso (Pulse Width Modulation PWM), etc, comunicarse con el proceso, esto hace que se
produzca una variante muy importante que es el tiempo de procesamiento. Esto se debe a que la
dinámica del microprocesador ya no es independiente (tiempo no crítico), ahora debe ajustarse a las
características dinámicas del proceso exterior, debiendo tomarse las decisiones de control o de
emergencia en TIEMPO REAL.
2 – CIRCUITOS INTEGRADOS.
Un circuito integrado (CI) o chip, es una pastilla muy delgada en la que se encuentra una enorme
cantidad (del orden de miles o millones) de dispositivos microelectrónicos interconectados,
principalmente diodos y transistores, además de componentes pasivos como resistencias o
3
Electrónica Digital III
condensadores. Su área es de tamaño reducido, del orden de un cm² o inferior. Algunos de los
circuitos integrados más avanzados son los microprocesadores, que son usados en múltiples
artefactos, desde computadoras hasta electrodomésticos, pasando por los teléfonos móviles. Otra
familia importante de circuitos integrados la constituyen las memorias digitales. A continuación
mencionaremos la evolución de los circuitos integrados.
En abril de 1965 el co-fundador de Intel, Gordon E. Moore publicó que la tecnología de circuitos
integrados CMOS tenía futuro y que el número de transistores por pulgada en circuitos integrados se
duplicaba cada año y que la tendencia continuaría durante las siguientes dos décadas.
Moore basado en la anterior afirmación expreso que aproximadamente cada 18 meses duplica el
número de transistores en un circuito integrado. Esta tasa de crecimiento en la integración se la
conoce como “Ley de Moore”. Dicha ley es una ley puramente empírica cuyo cumplimiento se ha
podido constatar hasta la actualidad.
En el momento de escribir el artículo que originó su ley, Moore era Director de los laboratorios de
Fairchild Semiconductor fabricante de transistores y de circuitos LSI como compuertas. Más tarde,
en el verano de 1968, creó Intel junto con Robert Noyce, uno de sus compañeros en ambas
empresas. Más tarde, en 1975, Moore modificó su propia ley al afirmar que el ritmo bajaría, y que la
capacidad de integración se duplicaría aproximadamente cada 24 meses. Esta progresión de
crecimiento exponencial, duplicar la capacidad de los circuitos integrados cada dos años, es lo que
se considera la Ley de Moore. Sin embargo, el propio Moore ha puesto fecha de caducidad a su ley:
"Mi ley dejará de cumplirse dentro de 10 o 15 años -desde 2007-" Según aseguró durante la
conferencia en la que hizo su predicción afirmó, no obstante, que una nueva tecnología vendrá a
suplir a la actual.
La consecuencia directa de la Ley de Moore es que los precios bajan al mismo tiempo que las
prestaciones y la confiabilidad aumentan. Es decir, el precio de la última computadora de hoy caerá
la mitad al año siguiente y estará obsoleta en dos años. En 26 años el número de transistores
integrados en un chip se ha incrementado 3200 veces. Actualmente esta ley se aplica a ordenadores
personales. Sin embargo, cuando se formuló no existían los microprocesadores, inventados en 1971,
ni los ordenadores personales, popularizados en los años 1980.
Hace tiempo se hizo un esfuerzo para nombrar y calibrar varios niveles superiores en integración a
los primeros VLSI. Términos como Ultra-alta-escala de Integración (Ultra-Large-Scale Integration
ULSI) fueron usados. Pero el enorme número de compuertas y transistores disponibles en
dispositivos comunes ha dejado dichas sutiles distinciones muy discutibles. Por lo que términos que
sugieren mayores niveles de integración que VLSI ya no son ampliamente usados. Incluso VLSI es
ahora algo pintoresco, considerando la suposición común que todos los microprocesadores son
VLSI o mejor.
En la actualidad, la mayoría de los circuitos integrados que se fabrican utilizan la tecnología CMOS.
La tecnología CMOS fue desarrollada por Wanlass y Sah, de Fairchild Semiconductor, a principios
de los años 60. Como mencionamos anteriormente la escala de integración fue incrementándose y
esto se debe a la posibilidad de construir transistores MOSFET cada vez más pequeños. Una medida
para comparar la tecnología CMOS empleada es la longitud de la compuerta (Gate). En la figura 1
se presenta un corte de transistor MOSFET para poder observar la compuerta y en la Fig. 2 y Tabla
1 se muestra la miniaturización de la compuerta a lo largo del tiempo desde el primer
microprocesador en 1971.
5
Electrónica Digital III
Evolución de la Integración
(Longitud promedio de compuerta en transistor CMOS)
10000
1000
nm Gate
100
10
1970 1975 1980 1985 1990 1995 2000 2005 2010 2015
AÑO
Longitud
Año Microprocesadores
Compuerta
10 µm 1971 Intel 4004 CPU
3 µm 1975 Intel 8085 CPU
1.5 µm 1982 Intel 80286 CPU
1 µm 1985 Intel 80386 CPU
800 nm
1989 Intel 486 CPU
(0.80 µm)
Intel 80486DX4 CPU
600 nm
1994 IBM/Motorola PowerPC 601,El primer PowerPC
(0.60 µm)
Primer Intel Pentium CPUs a 60 MHz
Intel Pentium Pro (1995), Pentium (P54CS, 1995) y Pentium II CPUs (Klamath, 1997).
350 nm
1995 AMD K5 (1996)y el original AMD K6 (Model 6, 1997) CPUs.
(0.35 µm)
NEC VR4300, usado en la consola de juego Nintendo 64
El DEC Alpha 21264ª comercialmente disponible en 1999
El AMD K6-2 K6-3D "Chomper" y "Chomper Extended".
250 nm
1998 El core alemán Pentium II at 333 MHz was Intel's first Pentium II at 250 nm.
(0.25 µm)
El Sega Dreamcast tiene su CPU y su GPU en 250 nm.
La PlayStation 2 inicial usa 250 nm.
Algunos de los primeros CPUs fabricados con estos procesos incluyen el Intel Coppermine
180 nm
2000 de la familia Pentium III. Esta fue la primera tecnología en usar una longitud de onda menor
(0.18 µm)
a la de la luz usada en el proces de litografia. (la cual tiene un minimo de 193nm)
6
Electrónica Digital III
Por otro lado, en cuanto a las funciones integradas, los circuitos se clasifican en tres grandes grupos:
7
Electrónica Digital III
En la Fig. 3 se observa un grafico en cuyos ejes tenemos características básicas de los CI como son
la variabilidad de su operación y en el eje y se encuentra la recta software/hardware que caracteriza
el funcionamiento del CI
Software
Procesador
uP, uC, DSP
Lógica Programada
SPLD, CPLD, FPGA
Hardware
8
Electrónica Digital III
Los circuitos integrados de la serie 7400 y 4000 en CMOS, HC, LVC, AHC y otras tecnologías, son
compuertas lógicas, multiplexores, decodificadores, flip-flops, etc. que se pueden utilizar para una
multiplicidad de aplicaciones, o sea que son de uso general. Con dichos dispositivos podemos
construir prácticamente cualquier sistema digital siempre y cuando estemos dentro de los límites del
tamaño y la velocidad requeridos por la aplicación. En la Fig. 4 vemos la evolución de las
tecnologías de circuitos integrados en el año 2007. Desde la tecnología bipolar con la TTL que se
encuentra al bore de la obsolescencia, pasando por las tecnologías bipolar-CMOS (BiCMOS), hasta
las últimas tecnologías de bajo voltaje y bajo consumo CMOS en su proceso de introducción al
mercado.
Un Circuito Integrado para Aplicaciones Específicas, o ASIC por sus siglas en inglés, es un circuito
integrado hecho a la medida para un uso en particular, en vez de ser concebido para propósitos de
uso general. Por ejemplo, un chip diseñado únicamente para ser usado en un teléfono móvil es un
ASIC.
9
Electrónica Digital III
ASIC digitales usan lenguajes descriptores de hardware (HDL), tales como Verilog o VHDL, para
describir la funcionalidad de estos dispositivos.
Lógica programada es lo contrario de la lógica cableada, es decir, este tipo de diseño permite utilizar
un circuito o un proyecto para muchas otras funciones con el simple cambio del software que
incorpora.
La lógica programada se basa en dispositivos lógicos programables (PLD), los cuales tienen una
función no establecida, al contrario que las puertas lógicas que tienen una función fija en el
momento de su fabricación. Antes de poder utilizar el PLD en un circuito, este debe ser
programado. Una vez programado el PLD se comporta como lógica cableada pudiendo realizar
tareas de forma rápida y en paralelo.
En los primeros tiempos de los PLD surgió una gran variedad de diseños y estructuras para lograr un
buen desempeño y flexibilidad. El conjunto de estos dispositivos de baja escala de integración como
los PAL, PLA, GAL, etc. Son llamados “dispositivo lógico programable sencillo” o SPLD
Un CPLD (del inglés Complex Programmable Logic Device) es un dispositivo electrónico. Los
CPLD extienden el concepto de un PLD (Programmable Logic Device) a un mayor nivel de
integración debido a que permite implementar sistemas más eficaces, utilizar menor espacio,
mejorar la fiabilidad del diseño, y reducir costos. Un CPLD se forma con múltiples bloques lógicos,
cada uno similar a un PLD. Los bloques lógicos se comunican entre sí utilizando una matriz
programable de interconexiones, lo cual hace más eficiente el uso del silicio, conduciendo a una
mejor eficiencia a menor costo.
Una FPGA (del inglés Field Programmable Gate Array) es un dispositivo semiconductor que
contiene bloques de lógica cuya interconexión y funcionalidad se puede programar. La lógica
programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta
lógica o un sistema combinacional hasta complejos sistemas en un chip.
Los FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más lentas, tienen un
mayor consumo de potencia y no pueden abarcar sistemas tan complejos como ellos. A pesar de
esto, las FPGAs tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al
flujo de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas
cantidades de dispositivos y el tiempo de desarrollo es también menor. Ciertos fabricantes cuentan
con FPGAs que sólo se pueden programar una vez, por lo que sus ventajas e inconvenientes se
encuentran a medio camino entre los ASICs y las FPGAs reprogramables.
Una computadora es una maquina que manipula datos de acuerdo a un listado de instrucciones. El
conjunto de dichas instrucciones que nos permiten que el computador realice una tarea específica la
llamamos programa.
10
Electrónica Digital III
La unidad central de procesamiento, o CPU (por el acrónimo en inglés Central Processing Unit) o
simplemente el procesador, es el componente en una computadora digital que interpreta las
instrucciones contenidas en los programas de la computadora, procesa los datos almacenados o
adquiridos para luego entregar algún tipo de resultado. Las CPU proporcionan la característica
fundamental de la computadora digital (la programabilidad) y son uno de los componentes
necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento
primario y los dispositivos de entrada/salida.
3.3.1 – Microprocesador
El microprocesador es un circuito integrado que contiene algunos o todos los elementos necesarios
para conformar una (o más) "unidad central de procesamiento" UCP, también conocido como CPU
(por sus siglas en inglés: Central Process Unit). En la actualidad este componente electrónico está
compuesto por millones de transistores, integrados en una misma placa de silicio.
Desde el punto de vista lógico y funcional, el microprocesador está compuesto básicamente por:
varios registros; una Unidad de control, una Unidad aritmético-lógica; y dependiendo del
procesador, puede contener una unidad en coma flotante.
Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura del
procesador, y concretamente de su grado de segmentación. La duración de estos ciclos viene
determinada por la frecuencia de reloj, y nunca podrá ser inferior al tiempo requerido para realizar la
tarea individual (realizada en un solo ciclo). Dicho reloj es básicamente un circuito oscilador basado
en un cristal de cuarzo capaz de generar pulsos a un ritmo constante, de modo que genera varios
ciclos en un segundo. Este reloj, en la actualidad, genera miles de MHz.
3.3.2 – Microcontrolador
Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades
funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un
computador completo en un solo circuito integrado.
Son diseñados para disminuir el costo y el consumo de energía de un sistema en particular. Por eso
el tamaño de la CPU, la cantidad de memoria y los periféricos incluidos en el dependerán de la
11
Electrónica Digital III
Un microcontrolador difiere de una CPU normal, debido a que es más fácil convertirla en una
computadora en funcionamiento, con un mínimo de chips externos de apoyo. La idea es que el chip
se coloque en el dispositivo, enganchado a la fuente de energía y de información que necesite, y eso
es todo. Un microprocesador tradicional no le permitirá hacer esto, ya que espera que todas estas
tareas sean manejadas por otros chips. Hay que agregarle los modulos de entrada/salida (puertos) y
la memoria para almacenamiento de programas y datos.
Por ejemplo, un microcontrolador típico tendrá un generador de reloj integrado y una pequeña
cantidad de memoria RAM y ROM/EPROM/EEPROM/FLASH, significando que para hacerlo
funcionar, todo lo que se necesita son unos pocos programas de control y un cristal de
sincronización. Los microcontroladores disponen generalmente también de una gran variedad de
dispositivos de entrada/salida, como convertidores de analógico a digital, temporizadores, UARTs y
buses de interfaz serie especializados, como I2C y CAN. Frecuentemente, estos dispositivos
integrados pueden ser controlados por instrucciones de procesadores especializados.
DSP es el acrónimo de Digital Signal Processor, que significa Procesador Digital de Señal. Un DSP
es un sistema basado en un procesador o microprocesador que posee un juego de instrucciones, un
hardware y un software optimizados para aplicaciones que requieran operaciones numéricas a muy
alta velocidad. Debido a esto es especialmente útil para el procesamiento y representación de
señales analógicas en tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben
muestras (samples en inglés), normalmente provenientes de un conversor analógico/digital (ADC).
Como todo sistema basado en procesador programable necesita una memoria donde almacenar los
datos con los que trabajará y el programa que ejecuta.
Si se tiene en cuenta que un DSP puede trabajar con varios datos en paralelo y un diseño e
instrucciones específicas para el procesamiento digital, se puede dar una idea de su enorme potencia
para este tipo de aplicaciones. Estas características constituyen la principal diferencia de un DSP y
otros tipos de procesadores.
Un controlador digital de señales o digital signal controller (DSC), puede ser visto como un hibrido
ente los microcontroladores y los DSP. Como los microcontroladores, los DSC tienen rápida
respuesta a las interrupciones, ofrecen periféricos orientados al control como PWM y
temporizadores de auto-restablecimiento (watchdog timer), y son usualmente programados usando
12
Electrónica Digital III
lenguaje C, sin embargo pueden ser programados usando lenguaje ensamblador nativo del
dispositivo. En el lado de los DSP, ellos incorporan características encontradas en la mayoría de los
DSP como unidades de Multiplicador-Acumulador (MAC) que realizan una multiplicación y
acumulación en un solo ciclo de reloj, desplazadores de barril (desplaza n bits en un solo ciclo de
reloj) y grandes acumuladores.
Se debe aclarar que no todos los vendedores de CI adoptaron el término DSC. El término fue
introducido por Microchip Technology en 2002 cuando lanzaron su serie 6000 de DSC y
subsecuentemente fue adoptado por la mayoría de los vendedores de DSC, pero no todos. Como
ejemplo Infineon y Renesas se refiere a sus DSC como microcontroladores
Los DSC son usados en un amplio rango de aplicaciones, pero la mayoría van dentro de controles de
motores, conversión de potencia y procesamiento de sensores. Con el uso de estos DCS se puede
reducir el consumo de energía haciendo un uso más eficiente de la misma y obtener el efecto
“verde” deseado en la actualidad.
13
Electrónica Digital III
Microprocesadores
- Computación compleja (gráficas 3D y supercomputadoras)
- Equipos de escritorio (Desktop)
- Servidores y estaciones de trabajo
- Dispositivos para Internet
- Equipos portátiles (Notebooks, Netbooks)
- Sistemas integrados y para comunicaciones (Celulares, Wireless)
Microcontroladores
- Sistema de control de motor y demás aplicaciones automotrices
- Controles remotos
- Periféricos de computadores
- Maquinas de oficina
- Electrodomésticos
- Instrumentos Médicos
- Herramientas de potencia y de medición
- Fuentes de alimentación inteligentes
- Interfase Maquina-humano
- Juguetes
- Sistemas de audio y voz
- Dispositivos USB, Bluetooth, Zigbee, UWB
- Iluminación Inteligente
- Conectividad cableada y sin cables (Wired & Wireless)
DSPs
- Sistemas Biomédicos
- Sistemas de Audio/Video y Multimedia
- Juegos y Ayuda de Aprendizaje
- Instrumentación
- Equipo de pruebas portátiles
- Reproductores Portátiles (Portable Media Players - PMPs)
- MODEMs Integrados
- Procesamiento de Imágenes Industriales y Médicas
- Control Industrial
- Comunicación de Voz
- Cámaras Digitales
- Sistemas Inalámbricos de Banda Ancha
- Estaciones Base Telefonía Celular 3G y 802.16
- Aplicaciones Militares
14
Electrónica Digital III
Participació
Ranking Ranking Cambio
Compañía País Origen n
2007 2006 2007/2006
en Mercado
1 1 Intel Corporation USA +7.7% 12.5%
2 2 Samsung Electronics Corea del Sur +1.5% 7.4%
3 4 Toshiba Semicond.. Japón +24.1% 4.6%
4 3 Texas Instruments USA -3.4% 4.5%
5 5 ST Microelectronics Italia-Francia +1.4% 3.7%
6 7 Hynix Corea del Sur +22.2% 3.5%
7 6 Renesas Technology Japón 3.0% 3.0%
8 14 Sony Japón +56.8% 3.0%
9 10 NXP Países Bajos +2.8% 2.2%
10 15 Infineon Alemania +14.6% 2.2%
11 8 AMD USA -22.8% 2.1%
12 16 Qualcomm USA +23.7% 2.1%
13 11 NEC Semiconductors Japón -0.8% 2.1%
14 9 Freescale USA -10.7% 2.0%
15 13 Micron Technology USA -5.8% 1.8%
16 12 Qimonda Alemania -22.7% 1.5%
17 17 Panasonic Japón -1.9% 1.5%
18 19 Elpida Memory Japón +8.8% 1.4%
19 18 Broadcom USA +1.7 1.4%
20 20 Sharp Electronics Japón +7.3% 1.3%
Top 20 +5.1% 63.9%
Resto de las compañías +2.4% 36.1%
TOTAL +4.1% 100.0%
15
Electrónica Digital III
ARQUITECTURA
En el transcurso del dictado de las distintas materias correspondientes al diseño con técnicas
digitales, se puede ir apreciando los diferentes campos que se cubren con las funciones integradas
dentro de la Electrónica Digital, Es así que mientras mas complejas sean dichas funciones
(herramientas de diseño) mas sencilla será la implementación final de la solución buscada.
En la búsqueda de una herramienta universal, que pueda ser utilizada para cualquier tipo de
problema propuesto, nace el COMPUTADOR. El objetivo fundamental de dicho desarrollo fue el
de disponer de un elemento lo suficientemente flexible como para poder implementar con ella, la
resolución de cualquier problema digital planteado. La única condición es que dicha solución sea
factible de poder realizarse con un algoritmo finito. Este sistema, consta de una parte circuital fija
denominada Hardware, y una parte de programación, denominada Software.
Para la descripción que vamos a realizar, partimos del supuesto que la herramienta que
utilizaremos, será configurada para la resolución de una tarea en particular en otras palabras lo que
se denomina microprocesador dedicado. El caso típico es generar un sistema digital, capaz de
procesar información a fin de controlar el funcionamiento de un sistema cualquiera.
HARDWARE
SOFTWARE
16
Electrónica Digital III
Memoria de
Programa
(ROM)
C.P.U. Entradas
Memoria de
Datos
(RAM)
UNIDAD DE CONTROL
CISC
RISC
17
Electrónica Digital III
SISC
Las características generales del computador que dependen de la unidad de control son:
Es la unidad encargada de llevar a cabo todas las operaciones aritméticas y lógicas que
realizará el computador en forma de instrucciones directas. Los elementos utilizados para el diseño
de esta unidad, son generalmente los Arreglos Lógicos Programables. Esto se debe a que las
operaciones a implementar, son eminentemente funciones combinacionales, por lo tanto se prestan
perfectamente para ser implementados por este sistema, de esta manera se obtiene una
implementación óptima, respecto al tiempo de ejecución y a la minimización de la electrónica
utilizada.
Las operaciones mas comunes que se realizan en sistemas de procesadores tipo industriales,
son:
• Suma booleana (OR).
• Multiplicación booleana (AND).
• Complementación (INV)
• Suma Exclusiva booleana (OREX)
• Suma binaria.
• Resta binaria.
• Comparación.
En caso de que la tarea a realizar requiera una gran cantidad de operaciones aritméticas u
operaciones de alta complejidad, como trabajo en punto flotante, integración, derivación, etc, y dado
que dichas operaciones no están previstas dentro de las operaciones de la U.A.L., la solución será la
de generar subrutinas para efectuar dichas operaciones. Puede suceder, que el tiempo empleado para
la resolución de dicha operación por programa sea excesivo, respecto al tiempo que se disponga
para controlar las variables del proceso. En estos casos se asocia al procesador, otro procesador
diseñado exclusivamente para la resolución de operaciones aritméticas. El nombre con el que
generalmente se lo conoce es CO-PROCESADOR, o PROCESADOR ARITMÉTICO.
18
Electrónica Digital III
C.P.U.
MEMORIA DE PROGRAMA
MEMORIA DE DATOS
En la ejecución del programa que deberá efectuar la CPU, es normal que se generen datos
transitorios como set points, ingresos de datos del exterior, resultados de operaciones aritmético
lógicos, protección de datos a ser utilizados por otros programas, etc. Toda esta información, que el
procesador maneja en forma habitual debe ser almacenada en sistemas que permitan ser grabados y
leídos a niveles temporales compatibles con la ejecución del programa. Dichos sistema se denomina
Memoria de Datos.
Los chips que soportarán toda esta información deberán ser de LECTURA ESCRITURA, y
de ACCESO ALEATORIO. La característica de lectura escritura es obvia para la función definida,
y el acceso aleatorio, debido a que el tiempo de acceso a los datos (tanto lectura como escritura)
debe ser independiente a la ubicación de los mismos dentro de la memoria. Es por ello que los chips
empleados son los denominados comercialmente RAMs.
19
Electrónica Digital III
Hay que tener en cuenta que para el procesador, y debido a su característica de acceso
aleatorio, le es indistinto acceder a cualquier lugar dentro del campo indicado. Por lo tanto, en
principio la ubicación de las Memorias de Datos y de Programas pueden ser cualquiera.
La característica que rige el lugar de implementación de la Memoria de Programa, es el valor
con el que el Contador de Programa (PC) se carga en el momento de efectuarse un reset
(inicialización) del procesador. Esta operación de reset, se efectúa toda vez que se inicia el trabajo
del sistema, y entre las tareas que tiene a su cargo es cargar al PC con un valor determinado, para
que apartir de él, se comience la ejecución del programa. La posterior ubicación de la Memoria de
Datos, dependerá de las zonas libres y del tipo de decodificación que se aplicará a la detección de
esta memoria como a los periféricos asociados al sistema.
ENLACE A PERIFÉRICOS
Demás está decir que de poco o nada serviría una herramienta como la que estamos
definiendo, si no tuviera la posibilidad de comunicarse con el exterior. Dicho enlace se efectúa
mediante dispositivos creados para ese fin denominados enlace a PERIFÉRICOS.
Debido a que dichos periféricos pueden tener las mas diversas características, no solamente
la división clásica de periféricos de entradas y de salida sino del nivel de procesamiento con que
transmite o recibe las señales, es que se requiere de un sistema intermedio para adaptar dicha
información y que pueda ser posteriormente procesada por el procesador. Este sistema se denomina
ENLACE A PERIFÉRICOS.
Parte de las funciones de éste, se encuentra el ubicar (direccionar) los periféricos dentro del
campo direccionable del procesador. Esta tarea se implementa mediante la correcta utilización de
decodificadores que asignarán direcciones a cada sistema. Por otro lado todo esto debe responder a
las líneas de control que la CPU genera a fin de que la información generada ingrese o pueda ser
leída en los momentos exactos que la CPU dispone.
PERIFÉRICOS DE ENTRADA
La información que ingresa a la CPU lo hace por sistemas diseñados específicamente para
esa tarea denominados PERIFÉRICOS DE ENTRADA.
Existe una gran cantidad de formas en cómo la información puede ingresar, y por ende de
periféricos distintos; como ejemplos de periféricos de entrada, podemos indicar:
Se puede hacer notar que a pesar de la gran diferencia funcional que existe entre ellos, todos
presentan un elemento en común es que, sin importar la complejidad del dato generado, todos son
datos binarios (unos y ceros), única forma en que la CPU puede procesar la información.
20
Electrónica Digital III
PERIFÉRICOS DE SALIDA
Similar a todo la expresado para la entrada, se cumple con los periféricos de salida. Estos en
definitiva reciben información binaria la que adaptarán a la forma de salida para lo que fueron
diseñados. Entre los periféricos de salida que podemos nombrar están:
En este caso la palabra de instrucción esta formada por cinco campos, el primero de los
cuales deberá ser el código de operación, el cual define la naturaleza de esta. Además, la mayoría de
las operaciones aritméticas y lógicas actúan sobre dos operandos, dando luego un resultado. Por lo
tanto, la palabra tendría que tener un campo para la dirección de cada operando y otro para la
dirección del resultado. Finalmente, habría el quinto campo que especificaría la dirección donde se
debe buscar la siguiente instrucción a ejecutar. Esto tiene la ventaja que cada instrucción seria
completa en si misma, no necesitándose circuitos internos que retengan el resultado. Por ejemplo,
para la suma se tiene:
Podría indicarse con sola una instrucción, donde A y B serian las direcciones de los
operandos, y C la del resultado. Pero los cincos campos pueden determinar un considerable numero
de bits en total y con ello demasiado uso de la capacidad de almacenaje y del tiempo de cpu
requerido para su funcionamiento
21
Electrónica Digital III
Memoria CPU
Datos
A ALU
Memoria
Programa
Dir. A Dir. B Dir. C Dir
OP PROX.
OPERANDO OPERANDO RESULTADO INSTR.
Prox. instrucción
Como los programas poseen una estructura secuencial que le permite ejecutar una
instrucción tras otra, es bastante natural que tales instrucciones se encuentren ubicadas en
direcciones consecutivas de la memoria. Si se considera esta forma de trabajo como un estándar, el
quinto campo de la palabra de cuatro direcciones, que estaba destinado a la dirección de la próxima
instrucción no será necesario, obteniéndose la palabra de tres direcciones. Como se observa en la
figura la dirección de la próxima instrucción no aparece en la palabra de instrucción, para realizar la
tarea de indicar cual será la próxima instrucción se deberá emplear un registro especial de la unidad
de control del procesador. Este registro actúa como un puntero, que siempre apunta a la dirección de
la próxima instrucción. Se trata del contador de programa (PC Program counter), el cual contiene la
dirección de la instrucción que se esta ejecutando, hasta el momento en que es actualizado con la
dirección la instrucción siguiente, al completarse la primera. Al estar las instrucciones en
direcciones consecutivas, tal actualización es simplemente un incremento de una unidad en el
contenido del PC. La eliminación del quinto campo en la instrucción resulta en una significativa
reducción de costo de la memoria. Una suma de dos operandos seguiría totalmente especificada en
una sola instrucción.
22
Electrónica Digital III
Memoria CPU
Datos
A ALU
Memoria PC
Programa
El ahorro en la memoria de programa podría llevarse aun más lejos si se suprimen otras
direcciones. Por ejemplo, puede no ser indispensable que la dirección del resultado sea distinta a las
de alguno de los operandos, y entonces se puede adoptar que una vez realizada la operación, el
resultado se almacene en uno de los lugares correspondiente a alguno de estos, con la característica
que se destruye naturalmente el contenido anterior correspondiente al resultado, en este caso la
suma podría especificarse así:
23
Electrónica Digital III
La palabra tendría dos direcciones siendo A utilizada como la dirección de operando fuente o de
partida y también de destino. Es mas, en algunos casos la existencia de las tres direcciones no sería
aprovechada, por ejemplo, supongamos que se desea transferir el contenido de la dirección A a la
B:
(A) (B)
Una palabra de dos direcciones basta perfectamente para especificar este movimiento de datos, que
es por demás frecuente. En cambio, con una de tres direcciones habría que desperdiciar uno de los
campos existentes. Muchas computadoras y microcomputadoras han sido diseñadas sobre la base
del sistema de dos direcciones, en este formato de la palabra de instrucción, es necesario seguir
conservando para direccionar a la próxima instrucción el registro Contador de Programa PC.
Memoria CPU
Datos
A ALU
PC
Memoria
Programa
Dir. A Dir. B
OP
OPERANDO OPERANDO
Prox. instrucción
Con el objetivo de reducir aun más los costos, es posible eliminar del formato otro de los campos
que individualizan a los operandos en la palabra de instrucción. Entonces la única especificación de
dirección que queda deberá actuar en algunos casos para almacenar la dirección de origen y en otros
para la dirección de destino del operando. Esta simplificación tiene una complicación, que se
plantea dado que la mayoría de las operaciones aritmetico-logicas trabajan sobre dos operandos,
será necesario proveer para estos casos de un operando obligado, el cual sea individualizado en
forma implícita por el código de operación, el cual deberá ser un registro que se encuentre en el
hardware de la CPU.
Para esto en el diseño de los microprocesadores que poseen este formato de la palabra de
instrucción de una dirección, deben incluir un registro especial comunmnete llamado Acumulador
24
Electrónica Digital III
Analizando esto, puede parecer a primera vista que para resolver un determinado problema
con la computadora de una dirección se necesitaría complicar la programación bastante mas que en
una de tres direcciones. Sin embargo, no es como parece ya que para operaciones múltiples, como
puede ser la suma de una determinada tabla de datos, no se requiere cargar el acumulador después
de cada una de las sumas, esto se debe hacer una sola vez al principio. Aunque la palabra de tres
direcciones lleve tres veces más información que la de una ello no significa que tengamos que
emplear un numero de instrucciones tres veces mayor en la computadora de una dirección para un
mismo trabajo. Además, los circuitos necesarios de la unidad de control son más sencillos en la de
una dirección que en las otras. Por estas razones, el sistema de una dirección ha sido muy empleado
en computadoras y microcomputadoras: PDP-8, PDP-15, IBM 1130, IBM 7090, CDC 3600, etc.
Si ahora reflexionamos sobre el microprocesador, recordando que esta construido por un
único circuito integrado, comprenderemos que es imperativo en ese caso el uso de las palabras
cortas a la vez que la máxima sencillez de la unidad de control. Una y otra cosa se logran con la
palabra de una dirección. Esto implica que las microcomputadoras actuales sean, en general,
sistemas con palabras de una dirección.
Memoria CPU
Datos
AC
A
ALU
Memoria
Programa
Dir. A PC
OP
OPERANDO
Prox. instrucción
25
Electrónica Digital III
PALABRAS DE DATOS
Nos hemos referido a las palabras de instrucción, que son las encargadas de indicarle al
procesador que tipo de operación y sobre quién se realizará esta, corresponde ahora hablar de la
palabra DATOS: ellas representan los operandos que pueden eventualmente cambiar con la
ejecución de un mismo programa, lo cual significa una gran movilidad que requiere el almacenaje
de tales palabras en memoria lectura-escritura. Su contenido puede significar números con o sin
signo, caracteres, operandos lógicos, etc., según la intención del programador. Y es evidente que los
elementos que dispone la CPU para almacenar estos datos, es decir los registros de uso general y el
acumulador, deben disponer del mismo numero de bits que esta palabra de datos. Por esta razón, los
microprocesadores suelen ser caracterizados por la longitud en bits de la palabra de datos,
existiendo los de 4,8,16,32 bits. Cuando leemos, por ejemplo, que un microprocesador es de 8 bits
(La gran mayoría), debemos entender que maneja palabras de datos de esa longitud, y que sus
registros internos que operan sobre datos tienen también esa capacidad de almacenaje, como así
también, la ALU deberá tener capacidad de procesar (sumar, restar, etc.) datos de esta longitud.
LONGITUD DE PALABRAS
CICLOS DE PROCESAMIENTO
En los grandes computadoras cuya palabra de instrucción esta formada por un número
apreciable de bits, cada instrucción puede quedar completamente definida por una palabra la cual
contiene el código operación y todas las referencias a los operandos necesarias para su ejecución.
Por lo tanto, el procesamiento de una de tales comprende dos pasos básicos:
1)- EL DIRECCIONAMIENTO o búsqueda de la correspondiente palabra localizada
en una dirección de memoria, y que se transfiere a un registro interno de la CPU,
llamado registro de instrucciones;
2)- LA EJECUCIÓN propiamente dicha, la cual comprende la decodificación del
código operación, búsqueda del ó los operandos y la realización de la acción
especificada en la instrucción.
En cambio, en una microcomputadoras de palabras cortas como los son las que poseen los
microprocesadores que estudiaremos en este curso, la especificación completa de una instrucción
requiere en la mayoría de los casos de varias de estas palabras. Esto hace necesariamente mas lento
el trabajo de la CPU, y obliga a descomponer cada instrucción en varios pasos sucesivos, llamados
CICLOS, como se vera a continuación. Respecto a la clasificación y denominación de estos ciclos
existen distintos criterios, que trataremos de aclarar con las siguientes definiciones:
26
Electrónica Digital III
CICLO DE INSTRUCCION
Resumiendo, podemos decir que un ciclo de instrucción estará compuesto por uno o varios
ciclo de maquina (según el tipo de instrucción); y cada uno de estos comprenderá varios ciclos de
reloj. El ejemplo de la figura corresponde, a un hipotético ciclo de instrucción, que comprendería
tres ciclos de maquina. El primero, formado por tres ciclos de reloj, se busca en la memoria de
programa una primera palabra que especifica el código operación y se la transfiere al Registro de
Instrucciones, donde es decodificada. Como consecuencia de esta decodificación, en el segundo
ciclo de maquina (3 ciclos de reloj) se direcciona una segunda palabra, cuyo contenido es la
dirección del operando. Finalmente en el tercer y último ciclo de la maquina (ejecución), él
operando es extraído de la memoria de datos, y se efectúa con él la operación especificada; lo cual
duraría cuatro ciclos de reloj en este ejemplo.
FLUJO DE LA INFORMACIÓN
Analizando la arquitectura de un sistema computador, vemos que hay diversos bloques que
deben estar interconectados para permitir que la información circule entre ellos y puedan realizarse
las distintas tareas que a cada uno le correspondan. Esta información (binaria) puede llegar a cada
subsistema en mas de una forma. Se hizo notar que el microprocesador realiza sus operaciones
transfiriendo información en forma paralelo. En efecto, la necesidad de utilizar palabras de poca
longitud alarga los tiempos de procesamiento, como se ha visto en el párrafo anterior. Si tales
palabras se movieran en forma serie, es decir utilizando un mismo conductor para transferir distinta
información en tiempos distintos, la velocidad de procesamiento de instrucciones y datos se haría
excesivamente baja, por lo cual debe adoptarse la modalidad espacial o paralelo, para todos los bits
27
Electrónica Digital III
que constituyen una palabra sean transferido simultáneamente a través de otras tantas líneas. Aquí
aparece el concepto de barras, tronco o bus, el cual podría definirse como un grupo de conductores
que vinculan entre si a los componentes de sistema, los cuales utilizan este medio de comunicación
(el ó los buses) para el intercambio de información.
COMUNICACIÓN PARALELA
La comunicación paralelo es sin ninguna duda la forma mas rápida para que la información
fluya de una fuente a un elemento destino. Obviamente que trae aparejado una mayor complejidad,
no solo circuital sino de diseño del circuito impreso que se necesitará, debido al gran número de
líneas físicas que ocupa. En el diagrama siguiente se puede observar la conexión paralela de dos
elementos fuentes y de dos destinos, permitiendo todas las posibilidades de comunicación entre
ellos.
Entre las ventajas que cuenta este método, aparte de la velocidad se encuentra la
multiplicidad en la comunicación, por lo que mientras S1 entrega información por ejemplo, D2, al
mismo tiempo podría S2 entrega a D1
Obviamente que en sistemas de múltiples fuentes y múltiples destinos, las líneas se
multiplican a tal punto que sería prácticamente imposible una interconexión de todos con todos.
S1 S2
C 11 C 21 C 12 C 22
D1 D2
28
Electrónica Digital III
COMUNICACIÓN SERIE
En este modo Como se puede apreciar en el gráfico, la comunicación se realiza por un único
BUS de información, al cual se conectan todos los sistemas que tengan que transmitir o recibir
información, es decir por los mismos conductores circula distinta información en tiempos distintos,
por esto a este sistema se le llama serie o bien de multiplexado temporal.
S1
S2
C 11 C 12
BUS
D1 D2
C 21 C 22
29
Electrónica Digital III
30
Electrónica Digital III
31
Electrónica Digital III
Se trata de uno de los tipo de organización mas utilizada por la mayoría de los computadores
basados en los microprocesadores del que analizaremos en el desarrollo de la materia, para este caso
analizaremos una versión simplificada del Intel 8080. En la figura siguiente está esquematizado los
principales elementos que intervienen en un computador basado en un microprocesador del tipo del
Intel 8080. En él se observa claramente la estructura de Doble Barra, se describen a continuación los
distintos elementos, a saber:
C.P.U.
AC. P.C.
I.R.
REGISTROS S.P.
GENERALES
DECO UNIDAD
DIFICA A.L.U. SR TIEMPO Y
SINCRONIS.
DOR
Reset CLK
ENLACE A PERIFÉRICOS
LÍNEAS
CONTROL
BUS BUS
DATOS DIRECCIONES
32
Electrónica Digital III
BUS DE DATOS
Es uno de los canales de información que conecta la CPU con el resto de los sistemas
externos. Por él circula información de distinto tipo, datos, códigos de instrucciones, direcciones
(parte alta y parte baja), líneas de control, etc. Constructivamente no es más que una serie de 8
cables aislados entre sí, que posibilita la interconexión de los elementos. Es bidireccional y todos
los elementos colgados a él que ingresan información, deberán ser fabricados con tecnología
TRISTATE, además deberá estar controlado por una lógica que especifique el sentido en el que se
realizará la transferencia, el cual será de CPU al dispositivo cuando se trata de una instrucción de
escritura (almacenaje); y el contrario cuando se trata de una lectura ( carga).
BUS DE DIRECCIONES
Este canal de información compuesto generalmente por 16 líneas unidireccionales, le
permiten a la CPU direccionar 65.536 (64 Kbytes) de memoria y/o dispositivos de entrada salida,
en la mayoría de los casos las líneas más significativas se utilizarán para seleccionar un determinado
dispositivo y las otras se utilizarán para seleccionar elementos internos dentro de estos como puede
ser algún registro. Cabe aclarar que por este bus circulan únicamente direcciones.
MDR
Memory Data Register (Registro de Memoria de Datos). Es un registro de 8 bits transparente
al usuario, puerta obligada de toda la información que entra y sale por el Bus de Datos. Es
bidirecional, por lo tanto se comporta como un buffer latch TRISTATE hacia el bus de datos y
hacia la CPU.
I.R.
Instructions Register (Registro de Instrucciones). Es un registro transparente al usuario, de 8
bit. En él se copia automáticamente, el contenido del registro MDR, cuando la información que
posee corresponde al Código de Operación de una instrucción.
Al ser el MDR un registro de paso hacia la CPU, y circular por él todo tipo de información,
códigos de operación inclusive, la forma en que el sistema detecta que es un C.Op. es mediante el
protocolo temporal correspondiente a la ejecución de cada instrucción.
DECODIFICADOR
Es un sistema que se encuentra íntimamente ligado al Registro de Instrucción cuando éste
almacena un nuevo Código de operación, luego decodifica ese código analizándolo y genera
internamente las acciones de control para lo cual pondrá activas las líneas de control necesarias para
la ejecución de la instrucción en curso.
REGISTRO TEMPORARIO
En general son registros de 8 o 16 bits, transparentes al usuario, inaccesibles, que la unidad
de control utiliza para almacenar transitoriamente información durante la ejecución de una
instrucción, esta información pueden ser datos o direcciones según se requiera.
M.A.R.
Memory Adress Register (Registro de direcciones de memoria). Es un registro de 16 bits,
puerta obligada entre la CPU y el bus de direcciones, y debe tener la misma longitud que el bus de
direcciones. Es transparente al usuario y dispone a su salida de un LATCH. Las direcciones que
contendrá puede corresponder a la de una instrucción o a la de un dato, esto va a depender de que
tipo de ciclo de máquina es el que se está ejecutando.
33
Electrónica Digital III
ACUMULADOR AC
Es un registro de 8 bit, accesible al usuario. Es el operando obligado para todas las
instrucciones aritméticas y lógicas, que realiza la ALU, en todos los sistemas de una dirección. Es el
registro mas potente de que dispone la CPU, y forma parte del denominado grupo de Registros de
Propósitos Generales. Naturalmente, tiene la longitud de la palabra de datos, algunos procesadores
disponen de más de un acumulador.
P.C.
Program Counter (Contador de Programa) Es un registro de 16 bits, accesible al usuario. A
pesar de que el programador puede variarlo a voluntad (con ciertos límites), la unidad de control lo
utiliza en forma automática para llevar la secuencia de las direcciones de las instrucciones que van
siendo ejecutadas. Es imprescindible que en la tarea de inicialización (RESET), éste se cargue con
la dirección de comienzo del programa principal.
S.P.
Stack Pointer (Puntero de pila). Es un registro de 16 bit, accesible al usuario. El programador
puede variarlo a voluntad, se lo utiliza para direccionar (apuntar) a una zona de memoria RAM
donde se almacenan datos en forma ordenada (pila), los datos pueden ser de distinta índole,
especialmente se utiliza para guardar las direcciones de retorno de las subrutinas. Una vez iniciado
el programa principal, éste tendrá la función de cargarlo con una dirección, de la memoria de datos
a partir del cual se iniciará la pila.
SR : Registro de estado (" Status Register ") o también llamado Registro de " códigos de
condición " o Registro de " indicadores" (" Flag Register"). Mas que un registro de carga paralelo,
como lo son los anteriores es una colección de Flip-Flops independientes entre si, el numero de
bits no guarda ninguna relación ni con la palabra de instrucción, ni de datos depende del diseño
realizado por el fabricante. En efecto, cada bit de este registro cumple la función de indicador (“
bandera, flag ”) de algo que ha sucedido como consecuencia de una operación anterior. Por ejemplo,
uno de estos bits indicara si la última operación realizada, por ejemplo una suma, dio como
resultado cero, en tal caso, cierto bit del SR se pondrá a 1, y si tal resultado no fue cero, ese bit o
bandera (" Flag") de cero, quedara en el valor lógico cero. Del mismo modo, si por ejemplo, el
resultado fue un numero negativo, habrá otra " bandera" que toma el valor 1 1ogico, para indicar tal
circunstancia. A posteriori veremos con mas detalle cuales son todas estas banderas. Por ahora,
basta con retener que la existencia del S R es fundamental pues da en cada instante el "estado del
programa": su contenido indica al programador lo que ha sucedido en el sistema hasta el instante en
que el contenido de dicho registro es analizado. Además, y esto es de capital importancia, ya que en
función de los bits del S R es posible hacer que el programa adopte decisiones, o sea, elija entre
dos alternativas de procesamiento, como veremos mas adelante.
Para ello y como elemento indispensable, todo micro dispone de una entrada de reloj,
sincronizada mediante un cristal. En el caso del 8080, se requiere de una entrada bifásica, o sea que
con la misma frecuencia, ingresan al sistema dos señales de reloj. De esta manera se consigue
aumentar la velocidad de ejecución general de las instrucciones. En otras palabras esta unidad es la
que marca los instantes en que puede '' suceder algo ", de acuerdo a la cadencia dada por el reloj; y
envía señales de control que según el código operación, gobiernan todo el sistema,
A.L.U.
Aritmetic Logic Unit (Unidad Aritmética Lógica) Ya descripta anteriormente
MICROSECUENCIAS
35
Electrónica Digital III
Una vez almacenado en el registro temporario interno la dirección del operando, solamente resta
acceder a memoria de datos para llevar a la CPU el dato guardado y cargarlo en el Acumulador,
acción que representamos de la siguiente forma:
Este último ciclo se lo denomina Ciclo de Ejecución propiamente dicho y se corresponde también a
un ciclo de lectura en memoria de datos. Mediante éste se da por finalizada la ejecución de la
instrucción y al mismo tiempo se deja cargado el PC con la dirección de la próxima instrucción a ser
ejecutada.
En el caso del 8080A, cada ciclo de máquina viene precedido por la activación de una línea
de control que es una pata física de CPU denominada SYNC. Dicha línea de sincronismo indica que
por el BUS de Datos y por un período de tiempo totalmente determinado, estarán presentes líneas de
control que definen que tipo de ciclo de máquina es el que se ejecutará.
MICROPROGRAMACIÓN
Como podemos apreciar por todo lo expuesto, la ejecución de cada instrucción no es mas
que la realización en forma ordenada de una sucesión de pasos en un tiempo totalmente definido,
por lo tanto lo podemos asociar perfectamente a la ejecución de microinstrucciones. La correcta
elección de estas micro instrucciones dará nacimiento a una instrucción. Es así que la mayoría de los
procesadores actuales se los denomina de lógica programada.
La estructura interna del funcionamiento del Sistema Decodificador, conjuntamente con la
Unidad de Tiempo y Sincronismo, la podemos graficar en la figura siguiente.
En ella podemos definir los siguientes bloques:
MICRO P.C.
Es el sistema que lleva la cuenta de los pasos a ejecutar.
ROM DE CONTROL
Es el lugar donde se encuentran almacenados todos los micropasos (en forma de micro
programas) de todas las instrucciones que componen el Repertorio Básico de Instrucciones.
MICRO DEC.
Es el sistema que genera las líneas de control internas a nivel de habilitación de los latch
internos de CPU.
MICRO I.R.
Es el sistema similar al Registro de instrucciones, que carga en su interior las micro
instrucciones que serán ejecutadas.
36
Electrónica Digital III
Este principio se pone en práctica con los procesadores BIT SLIDES, o procesadores de un bit. Por
su característica de ser apilables, se puede diseñar el procesador del ancho operativo deseado, y por
ende, el repertorio básico de instrucciones se puede generar a voluntad.
M.D.R.
I.R.
ROM
DE
CONTROL
microprograma u I.R.
Sin entrar aquí en detalles sobre los sistemas que tienden a los objetivos e y f, veremos las
arquitecturas mas comunes que de uno u otro modo buscan alcanzar las otras metas.
37
Electrónica Digital III
Con esto se consigue que todos los circuitos integrados vayan en cápsula de 16 patas (caso
4004) o a lo sumo que la CPU sea de24 patas (caso 4040). El ciclo de instrucción de divide en ocho
ciclos de reloj: en los tres primeros se envían sucesivamente otros tantos conjunto de cuatro bits,
que constituyen la dirección de la instrucción, hacia la ROM “multiplexándolos” a través del bus.
Luego se multiplexan por la misma vía, en los siguientes ciclos, otros dos grupos de cuatro bits, que
forman el “contenido” de la instrucción. Finalmente, esta es ejecutada durante los tres últimos ciclos
de reloj. La CPU emite una señal, antes de cada ciclo de instrucción, para sincronizar los demás
circuitos integrados. Evidentemente todo esto simplifica la circutería pero sacrifica la velocidad.
En este tipo de solución propia del sistema Fairchild F8, se evita el multiplexado de las
direcciones a través de la barra de datos, la cual solo tiene su fin especifico.
La CPU no necesita transmitir direcciones (salvo en el caso de instrucciones de ramificación
o salto), pues cada circuito integrado que contiene memoria fija ROM para programa, o enlaza con
ROM, tiene su propio contador de programa (PC) el cual “no” existe en la CPU. Estos PC cuentan
simultáneamente, manteniendo idéntico contenido. El hecho de no sacar líneas de dirección a través
de los contactos de los circuitos integrados de la CPU y memoria de programa, permite disponer en
estos de dos puerta de entrada salida de 8 líneas cada una, lo cual hace un conjunto de cuatro puertas
con 32 líneas en total. Las cápsulas son así de 40 patas de las cuales 16 son para entrada-salida.
Además, se presenta aquí el concepto que distribuyendo algunas de las funciones de la CPU en
varios circuitos integrados se ha logrado constituir una familia que puede funcionar eficientemente
con un numero mínimo de componente.
Existen aplicaciones para las cuales la velocidad de los microprocesadores MOS es insuficiente,
por lo cual se ha debido recurrir a arquitecturas especiales usando tecnologías bipolares Schottky o
aun ECL (Emitter Coupled Logic), en los casos de extrema velocidad. Pero con ello se pierde en
densidad de integración y no era posible realizar una CPU completa de 8 o más bits en una sola
cápsula. Entonces aparece la arquitectura “ Bit Slice”, en la cual la ALU se constituye disponiendo
en paralelo un conjunto de elementos aritmetico-1ógicos, donde cada uno de los cuales puede
realizar todas las funciones sobre un corto número ( '"tajada", slice ) de bits, típicamente dos o
cuatro. La longitud de palabra es determinada por el usuario según el número de "tajadas" que use.
La unidad de control, que sirve, a todos los mencionados elementos y gobierna al resto del sistema (
ROM, RAM, enlaces a periféricos) por intermedio de barras, debe ser necesariamente
microprogramable por el usuario.
Este tipo de arquitectura tiene ciertas ventajas notorias:
Gran velocidad, como se dijo, versatilidad para configurar una estructura acorde con las necesidades
particulares. Se puede "emular" casi cualquier sistema de cómputo, es decir, microprogramar para
constituir el mismo conjunto de instrucciones del sistema emulado. En cuanto a las desventajas, se
puede mencionar: Mayor costo que los sistemas MOS con microprocesadores monolíticos. Más
38
Electrónica Digital III
Memoria
Principal CPU
Bus de Control
Unidad de
Instrucciones Bus de Direcciones Control
+
Datos Unidad
Bus de Datos
e Operativa
Instrucciones
La arquitectura Harvard dispone de dos memorias independientes: una, que contiene sólo
instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es
posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias.
Memoria de Memoria de
Instrucciones CPU Datos
Control Control
Direcciones
Unidad de Direcciones
de Control de
Instrucciones Instrucciones Datos Datos
Unidad
Instrucciones Operativa Datos
39
Electrónica Digital III
EL MICROPROCESADOR 8080
Historia del 8080
Durante el verano de 1971, Federico Faggin de Intel fue a Europa para realizar seminarios sobre el
MCS-4 y el 8008 y para visitar clientes. Recibió una gran cantidad de críticas (algunas de ellas
constructivas) acerca de la arquitectura y el rendimiento de los microprocesadores por ellos
fabricada. Las compañías que estaban más orientadas hacia la computación eran las que le decían
las peores críticas.
Cuando regresó a su casa, se le ocurrió una idea de cómo hacer un microprocesador de 8 bits mejor
que el 8008, incorporando muchas de las características que esa gente estaba pidiendo, sobre todo,
más velocidad y facilidad de implementación en el circuito.
Decidió utilizar el nuevo proceso NMOS (que utiliza transistores MOS de canal N) que se utilizaba
en las últimas memorias RAM dinámicas de 4 kilobits, además le agregó una mejor estructura de
interrupciones, mayor direccionamiento de memoria (16 KB en el 8008 contra 64 KB en el 8080) e
instrucciones adicionales .
Al principio de 1972 decidió realizar el nuevo chip. Sin embargo Intel decidió esperar a que el
mercado respondiera primero con el MCS-4 y luego con el MCS-8 antes de dedicar más dinero al
desarrollo de nuevos diseños.
En el verano de 1972, la decisión de Intel fue comenzar con el desarrollo del nuevo
microprocesador. Shima (el mismo de antes) comenzó a trabajar en el proyecto en noviembre.
La primera fabricación del 8080 se realizó en diciembre de 1973. Los miembros del grupo que
hacían el desarrollo encontraron un pequeño error y el primero de abril de 1974 se pudo lanzar al
mercado el microprocesador.
El 8080 realmente creó el verdadero mercado de los microprocesadores. El 4004 y el 8008 lo
sugirieron, pero el 8080 lo hizo real. Muchas aplicaciones que no eran posibles de realizar con los
microprocesadores previos pudieron hacerse realidad con el 8080. Este chip se usó inmediatamente
en cientos de productos diferentes. En el 8080 corría el famoso sistema operativo CP/M (siglas de
Control Program for Microcomputers) de la década del '70 que fue desarrollado por la compañía
Digital Research.
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.
La competencia de Intel vino de Motorola. Seis meses después del lanzamiento del 8080, apareció
el 6800. Este producto era mejor en varios aspectos que el primero. Sin embargo, la combinación de
tiempos (el 8080 salió antes), "marketing" más agresivo, la gran cantidad de herramientas de
hardware y software inclinaron la balanza hacia el 8080.
El mayor competidor del 8080 fue el microprocesador Z-80, que fue lanzado en 1976 por la
empresa Zilog (fundada por Faggin). Entre las ventajas pueden citarse: mayor cantidad de
instrucciones (158 contra 74), frecuencia de reloj más alta, circuito para el apoyo de refresco de
memorias RAM dinámicas, compatibilidad de código objeto (los códigos de operación de las
instrucciones son iguales) y una sola tensión para su funcionamiento (+5V). El Z-80 fue concebido
por Federico Faggin y Masatoshi Shima como una mejora al 8080, comenzando el desarrollo a
partir de noviembre de 1974 en la empresa presidida por el primero. Tal fue el éxito que tuvo esta
CPU que luego varias empresas comenzaron a producir el chip: SGS-Ates, Mostek, Philips,
Toshiba, NEC, Sharp, etc.
Este microprocesador ocupó rápidamente el lugar del anterior y se usó en todo tipo de
microcomputadoras (incluyendo muchas de las "home computers" de la primera mitad de la década
del '80).
40
Electrónica Digital III
41
Electrónica Digital III
42
Electrónica Digital III
43