Вы находитесь на странице: 1из 43

Electrónica Digital III

Introducción a los
Microprocesadores

Procesador IBM PowerXCell 8i @ 2008

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.

Se estudiaran los microprocesadores y su utilización en los microcomputadores desde el punto de


vista de su aplicación en el control de procesos, en los sistemas de adquisición de datos, sistemas de
procesamientos de señales, sistemas de comunicaciones y en general para el diseño de dispositivos
digitales basados en un microprocesador que realiza una única función, a esto es lo que se le
denomina comúnmente como un sistema de dedicado o embebido.

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.

El avance tecnológico y la posibilidad de disponer de un microprocesador o un microcomputador en


una pastilla (microcontrolador), ha producido una verdadera revolución en la industria, así como en
la concepción clásica del Ingeniero. Hasta no hace mucho, el ingeniero era electrónico y se dedicaba
al diseño del hardware o se dedicaba al diseño de las técnicas y metodologías de control desde un
punto de vista general (ingeniería de sistemas) y dejando la programación de las mismas a un
programador. Con la aparición de las microcomputadores y la descentralización del procesamiento
informático, surge una interrelación tan grande entre el software y el hardware, que el ingeniero
pierde la noción fronteriza entre ambas disciplinas, produciendo la generación de un ingeniero
menos especializado con un panorama de sistema más amplio.

Para llegar a comprender perfectamente la importancia del microcomputador y del microprocesador


dentro del campo de la electrónica digital, conviene hacer un rápido resumen sobre la evolución
tecnológica producida en este campo.

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.

2.1 – La Ley de Moore

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.

2.2 – Clasificación según la integración de circuitos integrados

Teniendo en cuenta el nivel de integración basado en la cantidad de transistores implementados en


un circuito, estos se clasifican en Circuitos de:

Escala de integración pequeña (Small Scale Integration SSI)


Aparecieron a principio de los 60 e integran de 10 a 100 transistores. Cumplían funciones muy
básicas, como compuertas lógicas y abarcan desde unos pocos transistores hasta una centena de
ellos.

Escala de integración mediana (Medium Scale Integration MSI):


Aparecen a fines de los 60 e integran de 100 a 1.000 transistores. Económicamente eran circuitos
atractivos porque mientras producirlos costaba ligeramente más que los dispositivos SSI,
permitieron fabricar sistemas electrónicos más complejos utilizando placas impresas más pequeñas,
menos trabajo al ensamblarlos (ya que contenían menos componentes) y otras ventajas. Ejemplos de
4
Electrónica Digital III

estos integrados son multiplexores, decodificadores, codificadores, sumadores y dentro de las


combinacionales contadores, registros de desplazamiento, etc.

Escala de integración grande (Large Scale Integration LSI):


En los años 70 de 1.000 a 10.000 transistores. A esta escala pertenecen todos aquellos integrados
que contienen más de 100 compuertas lógicas (lo cual conlleva unos 1000 componentes integrados
individualmente), hasta las mil puertas. Estos integrados realizan una función completa, como es el
caso de las operaciones esenciales de una calculadora o el almacenamiento de una gran cantidad de
bits. La aparición de los circuitos integrados a gran escala, dio paso a la construcción del
microprocesador

Escala de integración muy grande (Very Large Scale Integration VLSI):


En los años 80 de más de 10.000 transistores. La integración en escala muy grande de sistemas de
circuitos basados en transistores comenzó en los años 1980, como parte de las tecnologías de
semiconductores y comunicación que se estaban desarrollando. El microprocesador es un
dispositivo VLSI

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.

Fig. 1 – Esquema de transistor MOSFET e imagen de un transistor con


tecnología de 45nm de compuerta.

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

Fig. 2 – Evolución de Integración de IC CMOS

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

Intel Celeron Tualatin-256 - 2001-10-02


Intel Pentium M Banias - 2003-03-12
Intel Pentium 4 Northwood- 2002-01-07
Intel Xeon Prestonia and Gallatin - 2002-02-25
130 nm AMD Athlon XP Thoroughbred, Thorton, and Barton
2001
(0.13 µm) AMD Duron Applebred - 2003-08-21
AMD K7 Sempron Thoroughbred-B, Thorton, and Barton - 2004-07-28
AMD K8 Sempron Paris - 2004-07-28
AMD Opteron Sledgehammer - 2003-06-30
MCST R-500S 1891BM3 - 2008-07-27
Intel Pentium 4 Prescott - 2004-02-01
Intel Pentium M Dothan - 2004-05-10
Intel Celeron M Dothan-1024 - 2004-08-31
Intel Pentium D Smithfield - 2005-05-26
90 nm 2004 AMD Athlon 64 Winchester, Venice, San Diego, Orleans - 2004-10-14
AMD Athlon 64 X2 Manchester, Toledo, Windsor - 2005-05-31
AMD Sempron Palermo and Manila - 2004-08
AMD Opteron Venus, Troy, and Athens - 2005-08-02
AMD Dual-core Opteron Denmark, Italy, Egypt, Santa Ana, and Santa Rosa
Intel Pentium 4 (Cedar Mill) – 2006-01-16
Intel Pentium D 900-series – 2006-01-16
Intel Core 2 – 2006-07-27
Intel Xeon (Sossaman) – 2006-03-14
AMD Athlon 64 series (starting from Lima) – 2007-02-20
AMD Turion 64 X2 series (starting from Tyler)- 2007-05-07
65 nm 2006
AMD Phenom series
IBM's Cell Processor - PlayStation 3 - 2007-11-17
Microsoft Xbox 360 "Falcon" CPU - 2007-09
Sun UltraSPARC T2 – 2007-10
AMD Turion Ultra – 2008-06[1]
TI OMAP 3 Family[2] - 2008-02
Matsushita (Panasonic Blue-Ray) ha realizado el Uniphier de 45nm.
Wolfdale, Yorkfield, Yorkfield XE y el Penryn con cores de Intel vendidos bajo la marca de
45 nm 2007
Core
AMD Deneb (Phenom II) & Shanghai (Opteron) Quad-Core Processors

Tabla 1 – Evolución de Integración de los Microprocesadores según longitud de compuerta

2.3 - Clasificación en cuanto a las funciones de un CI

Por otro lado, en cuanto a las funciones integradas, los circuitos se clasifican en tres grandes grupos:

Circuitos integrados analógicos.


Pueden constar desde simples transistores encapsulados juntos, sin conexión entre ellos, hasta
dispositivos completos como amplificadores, osciladores o incluso receptores de radio completos.

Circuitos integrados digitales.


Pueden ser desde básicas compuertas lógicas (Y, O, NO) hasta los más complicados
microprocesadores o microcontroladores.

Circuitos integrados de señales mixtas.


Un CI de señales mixtas es un circuito integrado que tiene electrónica analógica y digital integrada
en una sola pastilla. Un típico circuito de señales mixtas puede desempeñar, por ejemplo, todo el
manejo de radio frecuencia de un teléfono celular, leer los datos del Láser de un DVD, etc.
Normalmente contienen un sistema completo en un chip. (System on Chip - SoC)
Cabe aclarar que a lo largo del curso se referirá casi exclusivamente a la solución de problemas
mediante circuitos integrados digitales.

7
Electrónica Digital III

3 – CIRCUITOS INTEGRADOS DIGITALES

A continuación se muestra el espectro de las técnicas digitales.

- Lógica Cableada (Hardware y Software Fijo)


o Compuertas, Multiplexores, Flip-Fliop, etc. CMOS y TTL
o Integrados de Aplicaciones Especificas ASIC (Ej. Inyección auto)
o Integrados de Aplicaciones Especificas Estándar – ASSIC (encoder de DVD o MP3)

- Lógica Programable (Hardware Configurable)


o Dispositivo lógico programable - PLD
o Dispositivo lógico programable complejo - CPLD
o Arreglo de compuertas programables en campo - FPGA

- Procesador Digital (Software Programable)


o Microprocesadores de uso general – uP
o Microcontroladores – uC
o Procesadores Digitales de Señales – DSP

- Software y Hardware Programable


o Sistema en Chip – SoC
o Integrados de Aplicaciones Especificas – ASIC*

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

Sistema en Chip Lógica Cableada


ASIC, SoC CMOS, TTL,
Variable ASIC, ASSIC Fijo

Lógica Programada
SPLD, CPLD, FPGA

Hardware

Fig. 3 Grafico Software/Hardware vs. Variabilidad de Función

8
Electrónica Digital III

3.1 – Lógica Cableada

En la acepción de los técnicos en telecomunicaciones y en informática, la lógica cableada utiliza


compuertas lógicas discretas, para implementar circuitos digitales de comunicaciones y
computadores. Normalmente hace referencia a lógica cuyas conexiones son fijas por lo que para
hacer una modificación hay que cambiar el circuito en si.

3.1.1 – Compuertas Lógicas y circuitos integrados

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.

Introducción Crecimiento Madures Declinación Obsolescencia

Fig. 4 Evolución de las tecnologías de compuertas lógicas.

3.1.2 – Circuito Integrado de Aplicación Específica

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.

Con los avances en la miniaturización y en las herramientas de diseño, la complejidad máxima, y


por ende la funcionalidad, en un ASIC ha crecido desde 5.000 puertas lógicas a más de 100
millones. Los ASIC modernos a menudo incluyen procesadores de 32-bit, bloques de memoria
RAM, ROM, EEPROM y Flash, así como otros tipos de módulos. Este tipo de ASIC
frecuentemente es llamado Sistema en un Chip, o SoC, por sus siglas en inglés. Los diseñadores de

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.

3.2 – Lógica programada

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.

3.2.1 – Dispositivo lógico programable sencillo

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

3.2.2 – Dispositivo lógico programable complejo

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.

3.2.3 – Arreglo de compuertas programables en campo

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.

3.3 – Procesador Digital (CPU).

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.

Se debe distinguir entre el concepto de Procesador, que es un concepto de Hardware, con el


concepto de CPU, que es un concepto lógico. Una CPU puede estar soportada por uno o varios
microprocesadores, y un microprocesador puede soportar una o varias CPU.

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.

El microprocesador ejecuta instrucciones almacenadas como expresiones binarias organizadas


secuencialmente en la memoria principal. La ejecución de las instrucciones se puede realizar en
varias fases:

- PreFetch: Pre-lectura de la instrucción desde la memoria principal,


- Fetch: Envío de la instrucción al decodificador,
- Decodificación de la instrucción: Es decir, determinar qué instrucción es y por tanto qué se
debe hacer,
- Lectura de operandos: (si los hay),
- Ejecución: Lanzamiento de las Máquinas de estado que llevan a cabo el procesamiento.
- Escritura de los resultados: en la memoria principal o en los registros.

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

aplicación. El control de un electrodoméstico sencillo como una batidora, utilizará un procesador


muy pequeño (4 u 8 bit) por que sustituirá a un autómata finito. En cambio un reproductor de
música y/o vídeo digital (mp3 o mp4) requerirá de un procesador de 32 bit o de 64 bit y de uno o
más Códec (codificador-decodificador) de señal digital (audio y/o vídeo IC de Señales Mixtas). El
control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un
microcontrolador de 16 bit, al igual que el sistema de control electrónico del motor en un automóvil.

Los microcontroladores representan la inmensa mayoría de los chips de computadoras vendidos,


sobre un 50% son controladores "simples" y el restante corresponde a DSPs más especializados.
Mientras se pueden tener uno o dos microprocesadores de propósito general en casa, usted tiene
distribuidos seguramente entre los electrodomésticos de su hogar una o dos docenas de
microcontroladores. Pueden encontrarse en casi cualquier dispositivo electrónico como
automóviles, lavadoras, hornos microondas, teléfonos, etc.

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.

3.3.3 – Procesador Digital de Señales

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.

3.3.4 – Controlador Digital de Señales

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

4 – APLICACIONES DE LOS PROCESADORES DIGITALES

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

Lideres de fabricación de semiconductores en el año 2007/2006

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

ELECTRONICA 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

Representa todos los circuitos integrados, memorias, buffers, impresos, fuentes de


alimentación, display, etc, que componen el Computador. Dicha circuitería está formada
fundamentalmente por el PROCESADOR. Para que este elemento pueda funcionar, requiere de
circuitos complementarios, que normalmente son diseñados conjuntamente con él, y compatibles en
sus parámetros de velocidad, señales de control, tensiones, etc., y es lo que normalmente se conocen
como de la familia.

SOFTWARE

La herramienta que estamos estudiando, el computador, tiene la posibilidad de efectuar


tareas mas o menos elementales, denominadas instrucciones. La definición final sobre la tarea que
dicho elemento va a realizar, dependerá de la sucesión de operaciones elementales que tiene que
ejecutar. Dicha sucesión se denomina PROGRAMA. Este elemento, estará compuesto por distintas
partes, entre estas se destacan el Programa Principal, las Subrutinas de Aplicación, las Rutinas de
atención de Periféricos, las Subrutinas de tiempo que le permitan trabajar en tiempo real con el
sistema o dispositivo a controlar, etc.

De acuerdo con lo expresado hasta ahora, las características de universalidad de estos


sistemas, se centra en tratar de obtener una circuitería lo suficientemente completa como para poder
soportar cualquier configuración (programa). De esta manera con una circuitería en común, y con
las distintas configuraciones posibles, se obtiene la función de transferencia para la aplicación
deseada.

16
Electrónica Digital III

ARQUITECTURA DEL COMPUTADOR

La organización funcional de un computador tipo, responde al siguiente esquema:

Memoria de
Programa
(ROM)
C.P.U. Entradas

Unidad Unidad de Enlace a


Aritmético Control Periféricos
Lógica Salidas

Memoria de
Datos
(RAM)

UNIDAD DE CONTROL

Es el procesador propiamente dicho, y es el encargado de realizar todas las tareas


elementales para el que fue diseñado. Entre las tareas que realiza se encuentra:

• Realizar las instrucciones del Repertorio Básico que le fue asignado.


• Ordenar el trabajo de la Unidad Aritmético Lógica
• Generar las líneas de control que regirán el funcionamiento de cada uno de los bloques
integrantes del sistema.
• Procesar la información organizada en las memorias respectivas.
• Arbitrar el trabajo de los periféricos asociados.

En cuanto a la arquitectura de la unidad de control de los microprocesadores y microcontroladores,


en lo referente al Repertorio Básico de Instrucciones existen diferentes tipos. Entre los mas comunes
se pueden mencionar:

CISC

Un gran número de procesadores usados en los microprocesadores están basados en la filosofía


CISC (Computadores de Juego de Instrucciones Complejo). Disponen de más de 80 instrucciones
máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo varios
ciclos de reloj para su ejecución.
Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que
actúan como macros, lo que se traduce en facilidades en el momento de la programación.

RISC

Tanto la industria de los computadores comerciales como la de los microcontroladores están


inclinándose hacia la filosofía RISC (Computadores de Juego de Instrucciones Reducido). En estos
procesadores el repertorio de instrucciones máquina es muy reducido y las instrucciones son simples
y, generalmente, se ejecutan en un solo ciclo de reloj.

17
Electrónica Digital III

La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del


procesador, a costa de que el diseñador deba tener un conocimiento profundo del sistema para la
utilización apropiada de los recursos.

SISC

En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones,


además de ser reducido, es "específico", o sea, las instrucciones se adaptan a las necesidades de la
aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC ( Computadores de Juego
de Instrucciones Específico).

Las características generales del computador que dependen de la unidad de control son:

• Formato de la palabra de instrucción.


• Ancho de la palabra de Datos.
• Ancho de la palabra de Direcciones.
• Velocidad de operación.
• Repertorio Básico de Instrucciones.
• Configuración (mapeado) de Memoria.
• Definición de las Líneas de Control exteriores al Procesador.
• Forma de trabajo con los Periféricos.
• Etc.

UNIDAD ARITMÉTICO LÓGICA

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.

La unificación de las unidades de Control y Aritmético Lógica, se denominó C.P.U. (Unidad


Central de Proceso).
Inicialmente dichas tareas eran implementadas con tecnología que no permitía su implementación
en una sola pastilla integrada. La impulsión definitiva de estos sistemas, se produjo en la década de
los ‘70, lográndose un nivel tecnológico tal que permitió integrar en una sola pastilla la C.P.U. A
esto se lo denominó MICROPROCESADOR.

MEMORIA DE PROGRAMA

Como indicamos anteriormente, el procesador es capaz de realizar tareas elementales


(instrucciones) en un orden preestablecido y en forma ordenada. Dicha sucesión es lo que se
denomina Programa. Estas instrucciones, deberán estar codificadas en binario (único sistema en que
todos los procesadores trabajan) y almacenadas en algún sistema accesorio, para posibilitar su
posterior ejecución. Este lugar se lo denomina, Memoria de Programa. Por lo tanto en dicha
memoria se almacena el programa para la resolución del problema planteado.
Los chips que soportarán dicha información (programas) deberán ser dispositivos de SOLO
LECTURA, (ROM, PROM, EPROM, etc) o también llamadas memorias FIJAS. La característica
que se rescata de ellas para su elección, es que dichas memorias una vez grabadas, no se borra su
información ante cortes de energía. Por lo tanto son las adecuadas a utilizar en sistemas de control,
que deben entrar a funcionar una vez que se restablezca la alimentación.
Generalmente se graban en simuladores donde se depura el programa a ejecutar, y
posteriormente se colocan en los zócalos del computador para definir la función a realizar.
Para su correcta elección se debe tener en cuenta que las velocidades de acceso (lectura) sean
compatibles con las de lectura del microprocesador. Esto se debe a que los tiempos característicos
de acceso al microprocesador, no pueden ser variados por el usuario (programador). Por lo tanto en
caso de diferir, las velocidades de las memorias deberán ser mayores que las del microprocesador.

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.

Analizando el campo de direccionamiento de los procesadores de 8 bits, podemos asegurar


que se trata de un listado de direcciones capaces de mantener en su interior datos de 8 bits. La forma
de codificación empleada es la Hexadecimal. Por lo tanto teniendo en cuenta que los micros de 8
bits disponen de un campo direccionable de 64 Kbytes, concluimos que la dirección inicial es la
0000H y la final la FFFFH.

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:

• Puertas de entrada de un bit.


• Puertas de entrada paralelo.
• Teclados elementales.
• Teclados ASCII.
• Puertas Serie.
• Kits Multimedias
• Etc.

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:

• Puertas de salida de un bit


• Puertas de salida paralelo
• Puertas de salida serie
• Displays alfanuméricos
• Pantallas de Tubos de rayos catódicos
• Kits Multimedia
• Impresoras
• Etc.

FORMATO DE LA PALABRA DE INSTRUCCIÓN Y DE DATOS

En cualquier computador el núcleo de información básica está dado por un conjunto de


dígitos binarios (bits) que forman la palabra, la cual se encuentra ubicada en cierta dirección de la
memoria. Hay dos clases de palabras las de INSTRUCCIÓN y las de DATOS, según el significado
de su contenido. En todo sistema de computo su arquitectura es hasta cierto punto determinada por
el formato de la palabra de instrucción. Veamos entonces las diferentes formas posibles de estas
palabras.

PALABRAS DE INSTRUCCIÓN DE CUATRO DIRECCIONES

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:

(A) + (B) (C)

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

PALABRAS DE INSTRUCCIÓN DE TRES DIRECCIONES

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

Dir. A Dir. B Dir. C


OP.
OPERANDO OPERANDO RESULTADO.
Prox. instrucción

PALABRAS DE DOS DIRECCIONES

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

(A) + (B) (A)

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

PALABRAS DE UNA DIRECCION

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

(AC, Accumulator); entonces se sumara o restara, por ejemplo, un operando direccionado en la


instrucción, al contenido del acumulador, cuyo uso esta implícito en la ejecución de la
correspondiente instrucción. A fin de poder contar de valores iniciales habrá necesariamente que
disponer de instrucciones especiales para la carga del acumulador, como así también otras que
permitan almacenar sus contenidos. La suma de los contenidos de dos direcciones A y B, y el
almacenaje del resultado en C, se efectuarían de la siguiente manera:

(A) (AC) Carga del AC con el contenido de A.

(AC) + (B) (AC) Suma del contenido de B al contenido del AC.

(AC) (C) Almacenaje del resultado en C.

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

Para lograr una razonable simplicidad en la arquitectura del microprocesador, en la mayoría


de estos, todas las direcciones, correspondan a instrucciones o a datos, deben de contener igual
numero de bits, pero en muchos casos para especificar completamente una determinada operación o
un operando, la longitud de estas palabras no es suficiente. En el caso de las instrucciones, es
entonces necesario especificarlas en mas de una, por ejemplo si el microprocesador es de 8 bits, el
primer byte de la instrucción servirá generalmente para especificar el código de la operación, y las
siguientes servirán para especificar el operando ó bien su dirección. Estas palabras deben ser
sucesivamente adquiridas por la CPU a partir de la memoria de programa. Algo semejante ocurre
con las palabras de datos que pueden no ser suficientes para contener un dato o para efectuar una
operación aritmética con la debida precisión, y entonces es necesario utilizar varias palabras para el
dato.

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 instrucción: Es el tiempo transcurrido desde el momento en que comienza


la búsqueda en memoria del conjunto de palabras que configuran una instrucción,
hasta el instante que termina la ejecución de esta, es decir comprende absolutamente
todos los pasos necesarios para la ejecución de una instrucción. Este ciclo representa
una unidad indestructible desde el punto de vista del procesador, lo que equivale a
afirmar es que cuando el procesador comienza la ejecución de una instrucción, esta
deberá ser terminada, no existe ninguna herramienta que permita interrumpir la
ejecución de una instrucción que este en curso, salvo la presencia de condiciones
extremas como son la interrupción de la alimentación, o bien del reloj oscilador.

Ciclo de maquina: Corresponde al tiempo en que se realiza una actividad claramente


definida por la CPU. Por ejemplo, transcurre un ciclo de la maquina cada vez que el
microprocesador accede a la memoria para extraer una palabra de las que componen
la instrucción. En general un ciclo de instrucción podrá estar compuesto por uno o
más ciclos de máquina.
Ciclo de reloj (o estado): Es la unidad de actividad o de procesamiento, y esta dada
por el periodo de reloj (“clock”), cuyos pulsos marcan el sincronismo en las acciones
que deberá realizar el sistema. Un ciclo de máquina requiere para su ejecución de
varias micro operaciones, por lo tanto estará formado por varios periodos del reloj.

CICLO DE INSTRUCCION

1 CICLO MAQ. 2 CICLO MAQ. 3 CICLO MAQ.

busq. Cod. Op lee direc operando busca op. y realiza operación

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

Este sistema de comunicación, fue factible de implementarse gracias al avance de la


tecnología de los semi conductores que introdujo en el mercado dispositivos llamados TRISTATE.
Este avance tecnológico consiste, en disponer además de los estados lógicos normales “1” y “0”, de
un tercer estado llamado de alta impedancia. Mediante él, se logra un estado de desconexión
eléctrica entre un componente y el otro. Dicho de otra manera, la impedancia de salida en este
estado es tan alta, que simula que el sistema se encuentra desconectado eléctricamente, por mas que
persista la conexión fisica.
Para estos sistemas, la simplicidad circuital se logra en detrimento de la velocidad operativa,
ya que cuando S1 envía información a D2, tanto S2 como D1 deberán desconectarse.
Aún así, las ventajas comparativas son tan grandes, que en la mayoría de los casos se
aplicará este sistema, tanto en los elementos externos a la CPU como en los mismos sistemas
internos.
Como comentario teniendo en cuenta lo anterior, para cualquier aplicación en sistemas digitales es
posible generalizar:
Sistemas Paralelos
Son los de mayor velocidad comparativa, a su vez son los de mayor complejidad circuital de
interconexión como también la estructura de los sistemas de control necesarios.
Sistemas Series
Mas lentos que los paralelos pero de una significativamente menor complejidad circuital y de de la
lógica de control. Para esto último, generalmente los sistemas de control son simples
secuenciadores.

29
Electrónica Digital III

COMUNICACIÓN SERIE tecnología tri-state

buffer tri state bidirectional

30
Electrónica Digital III

COMUNICACIÓN SERIE tecnología tri-state

buffer latch tri state

31
Electrónica Digital III

ARQUITECTURA DE UN COMPUTADOR CON BUS DE DATOS Y DE DIRECCIONES.

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.

M.D.R. REGISTRO M.A.R.


TEMPORARIO

AC. P.C.
I.R.
REGISTROS S.P.
GENERALES
DECO UNIDAD
DIFICA A.L.U. SR TIEMPO Y
SINCRONIS.
DOR

Reset CLK

MEMORIA DE PROGRAMAS (ROM)

MEMORIA DE DATOS (RAM)

ENLACE A PERIFÉRICOS

PER. PER. PER.


1 2 n

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.

REGISTROS DE PROPÓSITOS GENERALES


Es un conjunto de seis registros, de 8 bits, accesibles al usuario. Con ellos se pueden realizar
algunas operaciones aritméticas, en general contienen datos, aunque en algunos casos pueden
concatenarse de a dos, formando registros de 16 bits que podrían contener direcciones de memoria
donde se encuentra algún operando, en este caso a estos registros se los suele llamar punteros.

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.

UNIDAD DE TIEMPO Y SINCRONISMO


Habíamos explicado anteriormente que el sistema Decodificador era el encargado de
generar las líneas de control que se utilizarían durante la ejecución de la instrucción en curso. Pero
este conjunto de líneas no pueden activarse todas juntas, sino que deben cumplir con un
determinado protocolo de comunicación perfectamente definido. Todos los tiempos que requiere la
correcta ejecución de una instrucción son regidos mediante la Unidad de Control y Sincronismo.
34
Electrónica Digital III

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

Al analizar en profundidad el funcionamiento de la estructura precedente, podemos


encontrar una secuencia que explique de manera lógica, los pasos que se realizan para que se
ejecuten las instrucciones.
Tomemos como referencia por ejemplo la instrucción LDA A16. La función de esta
instrucción es cargar el acumulador con el contenido de la dirección de memoria indicado como
A16. Dicha dirección se encuentra almacenada en los dos bytes siguientes al del código de
operación.
Si partimos del supuesto que al comenzar el primer ciclo de reloj del ciclo de instrucción, el PC ya
está cargado con la dirección que tiene almacenada la primera palabra de la instrucción, el
desarrollo de la instrucción o el llamado ciclo de instrucción será el siguiente:

1er Ciclo de Máquinna


1) (PC)--»(MAR), 2) (MAR)--»(MP), 3) (PC) + 1--»(PC), 4) (MP)--»(MDR), 5) (MDR)--»(IR), 6)
DECODIFICA.
Este conjunto de micropasos llamados comúnmente microsecuencias que realizan una
acción determinada se denomina Ciclo de Máquina. Este en particular por ser el primero en ser
ejecutado y es común para cualquier instrucción, puesto que hasta que no se realiza la
decodificación, la unidad de control no sabe que tarea tiene que realizar este ciclo se denomina
CICLO DE BÚSQUEDA del código del operación. El cual se corresponde casi totalmente a un
ciclo de máquina de lectura en la memoria de programa.
Una vez ejecutado este primer ciclo, la Unidad de Control, recurre a memoria de programa, que es
el lugar donde se encuentra almacenada el resto de la información necesaria para la ejecución de la
instrucción. En este caso la dirección del operando, la cual esta especificada en 16 bits. Pero como
la longitud de palabra de nuestro procesador es de 1 byte ( 8bits ), se deberán realizar dos lecturas
en la memoria para poder disponer de la información requerida.

2do Ciclo de Máquina


7) (PC)--»(MAR), 8) (MAR)--»(MP), 9) (PC) +1--»(PC), 10) (MP)--»(MDR), 11) (MDR)--»(R.T.)L
Este conjunto de pasos que conforman el 2do Ciclo de Máquina de la instrucción. Al
finalizar este ciclo, la Unidad de Control, transfirió hacia la CPU la parte baja de la dirección a la
cual tiene que acceder. Posteriormente repite la secuencia para la parte alta:

3er Ciclo de Máquina


12) (PC)--»(MAR), 13) (MAR)--»(MP), 14) (PC) +1--»(PC), 15) ((MP))--»(MDR), 16) (MDR)--
»(R.T.)H
Este conjunto de upasos que conforman el 3er Ciclo de Máquina, tanto este ciclo de
máquina como el anterior corresponde a ciclos de lectura en la memoria.

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:

17) (RT)--»(MAR), 18) (MAR)--»(MD), 19) ((MD))--»(MDR), 20) (MDR)--»(AC)

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:

MDR, IR, DECOD.


Son los mismos que ya describimos en el gráfico anterior, de ellos se desprende:

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.

Si el procesador dispone de esta configuración y la ROM de Control no está accesible por el


usuario, esta máquina se la denomina MICROPROGRAMADA.
Si por el contrario, se puede acceder a esta ROM, modificando el orden de las
microinstrucciones, se la denomina MICROPROGRAMABLE. Este último término supone que el
usuario podrá diseñar su propio repertorio básico de Instrucciones.

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.

DECODIF. u P.C. uDECODIF.

ROM
DE
CONTROL
microprograma u I.R.

VARIANTES DE LA ARQUITECTURA CLASICA

Los fabricantes de microprocesadores y demás componentes de los sistema de


microcómputo han adoptados una serie de criterios diferentes en cuanto a la estructura física, a los
fines de obtener alguno de los siguientes objetivos:
a) Que los componentes del sistema tienden a constituir un conjunto o familia de circuitos
integrados en la que distinguimos la CPU, las memorias y los enlaces a periferia.
b) Tratar de minimizar el número de circuitos integrados que constituyen un sistema básico,
por ejemplo con una CPU (microprocesador) del tipo monolítico, y aun incluyendo en ella
parte de memoria y en algunos casos se integra en el mismo chip memoria de programa, de
datos e inclusive puertas de entrada salida dando lugar a los llamados microcontroladores
o microcomputadores.
c) En el caso del microprocesador monolítico, se procura que este se vincule fácilmente a
circuitos integrados standard para las funciones de memoria y de entrada-salida.
d) Algunos diseños tienden constituir sistemas versátiles de uso general, no demasiado
rápidos. Otros se orientan en cambio hacia controladores dedicados a realizar una función
especifica a alta velocidad.
e) Cuando las exigencias de alta velocidad impiden el uso de tecnologías MOS de gran escala
de integración, fraccionándose en “chips” denominados “tajadas de bits” (bits slices) que
se interconectan para llegar a la longitud de palabra deseada.
f) A veces se provee capacidad de microprogramación para que el usuario elabore su propio
conjunto de instrucciones de acuerdo a sus necesidades.

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

ORGANIZACIÓN DE BARRA ‘MULTIPLEXADA’

Esta arquitectura caracterizo a los primeros microprocesadores de 4 bits (Por ejemplo, el


primero de todos, el Intel 4004 y su sucesor el, Intel 4040). Se trata de un conjunto de circuitos
integrados, de acuerdo al objetivo a) del parágrafo anterior, cada uno de los cuales incluye circuitos
de sincronismo de tal modo que las direcciones y sus contenidos, ya sean instrucciones o datos,
transiten entre ellos a través de una única barra de cuatro líneas.

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.

ARQUITECTURA CON VARIOS CONTADORES DE PROGRAMA

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.

MICROPROCESADORES EN “TAJADAS DE BITS” (BIT SLICE).

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

trabajo de programación, ya que al no estar dado el conjunto de instrucciones, el fabricante no puede


proveer ayudas de "software" (ASSEMBLER, compiladores, etc. ).

ARQUITECTURAS MAS UTILIZADAS

Aunque inicialmente todos los microprocesadores adoptaron la arquitectura clásica de von


Neumann, en la actualida se observa en el mercado la opción de microprocesadores con la
arquitectura Harvard.
La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se
almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un
sistema de buses único (direcciones, datos y control).

Memoria
Principal CPU
Bus de Control
Unidad de
Instrucciones Bus de Direcciones Control
+
Datos Unidad
Bus de Datos
e Operativa
Instrucciones

En la figura se observa la arquitectura de Von Neumann, en esta la memoria contiene


indistintamente datos e 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

En la figura se observa la arquitectura Harvard, la cual dispone de dos memorias independientes,


una para datos y otra para instrucciones.

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

DESCRIPCION DE LOS PINES DEL MICROPROCESADOR 8080

Denom. Sen Descripción


A15-A0 S BUS DE DIRECCIONES: el bus de direcciones es el encargado de
proveer la dirección de memoria (64 K de 8 bit) o direccionar un
dispositivo de entrada/salida de los 256 posibles
D7-D0 E/S BUS DE DATOS: El bus de datos permite realizar la comunicación
bidireccional entre la CPU, con memoria y dispositivos I/O para
instrucciones y transferencias de datos. Además, durante el primer ciclo
de reloj de cada ciclo de máquina, el 8080 pone sobre el bus de datos una
palabra de estado, que describe el tipo de ciclo de máquina que VA A
EJECUTAR.
SYNC S SEÑAL DE SINCRONISMO: El pin SYNC provee una señal que
indica el comienzo de cada ciclo de máquina. Se utiliza para capturar la
información de control presente en el bus de datos.
DBIN S DATA BUS IN: La señal DBIN indica a los dispositivos externos en que
momento el bus de datos está en modo entrada. Esta señal se usa para
habilitar la entrada de datos en el bus del 8080 desde la memoria o de los
dispositivos de entrada/salida
READY E READY: Un uno lógico sobre la señal READY indica al 8080 que la
memoria o que los datos de entrada están disponibles en el bus de datos.
Esta señal se utiliza para sincronizar la CPU con memorias o dispositivos
de I/O mas lentos. Si después de transmitir una dirección sobre el bus de
direcciones, el 8080 no recibe un uno lógico en la entrada READY, el
microprocesador entra en un estado de espera tanto tiempo como la línea
READY este en cero lógico. Esta entrada podría también usarse para
accionar paso a paso a la CPU.
WR S Indica a los dispositivos externos, memoria o periféricos que puedan
capturar el dato presente en el bus de datos.
WAIT S WAIT: Cuando este pin se encuentra en uno lógico, la CPU se encuentra
en un estado de espera.
HOLD E HOLD: Esta entrada requiere que la CPU entre en el estado HOLD, el
cual permite a un dispositivo externo ganar el control de los buses de
datos y de direcciones tan pronto como la CPU termine el uso de estos
buses para el ciclo de máquina corriente. Una vez que la CPU entra en
este estado, el bus de datos y el bus de direcciones estarán en su estado
de alta impedancia. La CPU reconoce el estado HOLD con el pin de
salida HLDA o HOLD ACKNOWLEDGE (HLDA)
El hold se reconoce bajo dos condiciones
a) La CPU esta en el estado HALT
b) La CPU está en el estado T2 o Tw y la señal READY esta activa.

41
Electrónica Digital III

HLDA S HOLD ACKNOWLEDGE: Este pin va a un estado de uno lógico en


respuesta a una señal de entrada HOLD e indica que el bus de datos y de
direcciones están en alta impedancia La señal HLDA comienza en
cualquiera de los tiempos:
a) T3 de memoria de lectura o entrada.
b) El periodo de reloj siguiente a T3 para memoria de escritura u
operación de salida.
En cada caso, la señal HLDA aparece después del disparo de φ2
INTE S HABILITACIÓN DE INTERRUPCIÓN: Indica el estado del flip flop
de habilitación de interrupciones. Este flip flop puede ser puesto en uno o
cero por las instrucciones de habilitación o desabilitación de
interrupción respectivamente e impide que las interrupciones sean
aceptadas por la CPU cuando el flip flop esta en cero. Este flip flop se
borra con la señal de reset.
INT E PEDIDO DE INTERRUPCIÓN: Un uno lógico en esta entrada genera
un pedido de interrupción que la CPU reconoce al final de la instrucción
en curso. Si la CPU se encuentra en estado HOLD o si el flip flop de
habilitación de interrupción esta en cero, la interrupción no se tendrá en
cuenta.
RESET E RESET: Un uno lógico en esta entrada, inicializa la CPU.. Después del
reset, el contador de programa PC, se carga con la dirección 0000, por lo
tanto desde este lugar deberá comenzar el programa a ejecutar, lo que
indica que la memoria de programa (ROM o EPROM) deberá ubicarse
en esta zona de memoria. Las banderas de INTE y HLDA también se
llevan a cero pero ni el registro de estado, el acumulador, el puntero de
pila y los registros se modifican.
VSS MASA
VDD +12 VOLT
VCC +5 VOLT
VBB -5 VOLT
φ1, φ2 FASE DE RELOJ: 2 relojes externos no compatible con TTL

42
Electrónica Digital III

43

Вам также может понравиться