Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 1 25/04/2012
CAPITULO 1 – PARTE I
El Computador Digital
¿Qué es un sistema?
Un sistema es un grupo de partes o elementos que están integradas con el propósito de
alcanzar algún objetivo común.
Grupo de partes: Un sistema tiene más de un elemento. Por ejemplo, una llanta no es un
sistema, pero es parte vital de un sistema llamado “automóvil”.
Partes integradas: debe existir una relación lógica entre las partes de un sistema. Por ejemplo,
un videojuego, una lavadora automática, un reloj, tienen muchas partes.
Propósito común de alcanzar un objetivo : El sistema es diseñado para lograr una o más metas.
Todos los elementos del sistema deberán estar interconectados y controlados de manera que el
objetivo del sistema sea alcanzado.
¿Qué es un sistema digital?
Un sistema basado en elementos digitales.
¿Qué es una computadora?
Un sistema manipulador de símbolos (datos) diseñado para automáticamente procesar datos de
entrada y almacenarlos, procesarlos y producir resultados, bajo la dirección de un programa de
instrucciones almacenado, que se ejecuta paso a paso.
¿Qué es un programa?
Es un conjunto detallado de instrucciones que ejecuta el computador de manera secuencial,
que hacen funcionar al computador de una manera específica y producir el resultado deseado.
Al cambiarse el programa se cambian los resultados.
¿Qué es un algoritmo?
Es un conjunto de pasos que seguidos de manera secuencial permiten resolver un problema.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 2 25/04/2012
Arquitectura Básica de un Computador Hay dos términos empleados al referirse al diseño de un computador: arquitectura
(architecture), y organización (organization). En la práctica, en el lenguaje español se ha hecho
común su uso como sinónimos.
El término “organización” se refiere a la forma como están conectados los diferentes
elementos físicos que conforman el computador y por tanto afectan la manera como ésta
funciona. Podrían tenerse cientos de computadores diferentes, todos ellos utilizando el mismo
procesador. El término “arquitectura” se refiere a la manera como se comporta el computador
desde el punto de vista de un programador. Pueden haber computadoras con organización
diferente (una computadora con procesador Intel core 2 duo es diferente a las antiguas
computadoras compatibles Pentium), y sin embargo tener la misma arquitectura, o por lo
menos compatibilidad hacia atrás. Eso trae como ventaja que los programas desarrollados para
la computadora más antigua, puedan ejecutarse en la computadora más moderna.
En ese sentido, un programador sólo requiere conocer la arquitectura del computador para
escribir aplicaciones para dicho computador.
Partes de un computador
De la definición vista antes para el computador, podemos deducir lo siguiente:
Ya que el computador puede ejecutar un programa, debe ser capaz de recordar las
instrucciones de dicho programa, por lo tanto debe contar con memoria.
Debe reconocer instrucciones y ejecutarlas. Al elemento que lee y procesa las instrucciones
se le llama unidad de procesamiento central o CPU (central processing unit).
Tiene que haber alguna manera de “enviarle” el programa que deseamos que ejecute, y debe
haber alguna manera de que “veamos” el resultado. Para ello se deben contar con
dispositivos periféricos de entrada/salida, como por ejemplo el teclado (dispositivo de
entrada de datos), monitor (dispositivo de salida de datos), unidad de disco (dispositivo de
entrada/salida).
Debe existir alguna manera de que el CPU se comunique con los dispositivos periféricos.
El nexo entre éstos y el CPU son las interfaces de entrada/salida (input/output interfaces).
Todo computador es un circuito secuencial sincrónico, y como tal, debe contar con una
señal de reloj, que actúa como “el corazón” del sistema, haciendo una analogía con el
cuerpo humano.
Como se verá más adelante, existen memorias que sólo almacenan y retienen la información
cuando están energizadas (memorias volátiles), y otras que mantienen la información grabada
incluso cuando no están conectadas a la fuente de alimentación (memorias no volátiles). Un
computador para funcionar debe contar como mínimo con memoria no volátil (donde estará el
programa inicial que ejecuta el computador al encenderse), y si se van a manipular datos (que
es lo usual) también requerirá memoria RAM (más adelante se describe este tipo de memoria).
En resumen, un computador consta de memoria no volátil, memoria RAM, CPU, interfaces de
entrada/salida, periféricos, y circuito de reloj.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 3 25/04/2012
Microcontrolador, microprocesador, procesador
Antes de 1970, el CPU de un computador era un circuito electrónico conformado por varios
circuitos integrados. En la década del 70 se fabrica el primer CPU que ocupaba un solo
circuito integrado, y se le denominó microprocesador (microprocessor), y con ese término se
conoce hasta el día de hoy a un circuito integrado que contiene únicamente el CPU de un
computador (ejemplos de microprocesadores son: Z80, 8088, 80486).
Al mejorar la tecnología de fabricación de circuitos integrados, se crea el microcontrolador
(microcontroller): un circuito integrado (C.I.) que, además de un CPU, cuenta con memoria no
volátil para almacenar programas, memoria RAM, interfaces de entrada/salida y algunos
periféricos. Por ejemplo, el circuito integrado 68HC11 de Motorola, el ATmega8 y ATmega88
de Atmel son microcontroladores.
Posteriormente, a llegarse a más de un millón de transistores por circuito integrado, los
fabricantes comienzan a emplear un nuevo término: procesador (processor) para definir a un
circuito integrado que además del CPU incluye otros elementos del computador, pero no
todos. Ejemplo de ello es el procesador Intel Atom N2800 o el Intel core i7-2760QM.
La unidad de procesamiento central (CPU)
Es la unidad que reconoce un número finito de instrucciones, las que lee (de una unidad de
memoria), procesa y ejecuta, y gracias a ello es capaz de ejecutar cualquier algoritmo descrito
en base a estas instrucciones.
Consta de dos elementos fundamentales: la unidad de procesos y la unidad de control.
Unidad de Procesos (Processing Unit)
Es la encargada de efectuar las operaciones aritméticas y lógicas con los operandos de las
instrucciones que así lo requieran. Consta para ello de:
Una o más unidades aritmético-lógicas (ALU)
Registros, que proveen almacenamiento interno al CPU
Caminos de comunicación entre los registros y ALU. También se le suele conocer
como "camino de datos" (datapath).
INTERFASES
E/SRELOJ
UNIDAD DE
MEMORIA
CPUPERIFERICOS
Fig. 1 Estructura básica de un computador
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 4 25/04/2012
Unidad Aritmético-lógica ALU (Arithmetic-Logic Unit)
Es un circuito, que puede ser combinacional o secuencial, que efectúa operaciones
aritméticas y lógicas. Para ello cuenta con líneas de entrada para los operandos, y de
selección para elegir la operación a realizar. Forma parte de la unidad de procesos.
Unidad de Control (Control Unit)
Es un circuito secuencial encargado de generar las señales de control requeridas para
acceder a la memoria, interfaces de E/S, la unidad de procesos (indicándole lo que tiene que
hacer, en cada ciclo de reloj, durante la ejecución de las instrucciones) y otras partes del
sistema. Este circuito es el que lee las instrucciones y las interpreta.
Tipos de Arquitecturas
Hay muchas maneras de clasificar las arquitecturas de un computador. Dependiendo de la
manera como el CPU accede a los datos y las instrucciones, se pueden clasificar en dos tipos.
Arquitectura Von Neuman
El CPU no distingue entre memoria de datos y memoria de programa (o también denominado
"memoria de instrucciones"). Para el CPU existe una única memoria en la cual están tanto las
instrucciones como los datos.
En la figura se muestra un diagrama de bloques de un computador con dicha arquitectura.
Control
ARQUITECTURA VON NEUMAN
Entrada
Salida
Memoria
Unidad de
Procesos
Unidad de
Control
Interface
Entrada/Salida
Reloj
Datos
Control
Instrucción y datos
CPU
datos
instrucción
Fig. 2 Arquitectura Von Neuman
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 5 25/04/2012
Arquitectura Harvard
En esta arquitectura, el CPU distingue dos tipos de memoria. Una de las cuales lee las
instrucciones, denominada memoria de instrucciones ó memoria de programa (program
memory), y otra que contiene los datos a utilizar por las instrucciones. En la figura se puede
apreciar el diagrama de bloques de un computador con esta arquitectura. Observar la presencia
de dos caminos independientes para los datos y las instrucciones, que van a diferentes
memorias.
Memoria de
Datos
Memoria de
Instrucciones
Unidad de
Procesos
Unidad de
ControlEntrada/Salida
Reloj
Datos
Control
ControlDatos
Instrucción
ARQUITECTURA HARVARD
salida
entrada
Memoria Es un dispositivo que almacena información de manera binaria. La unidad de almacenamiento
más pequeña se denomina celda de memoria (memory cell) capaz de almacenar un bit de
información. Un conjunto de celdas de memoria a las que se puede tener acceso
simultáneamente (para leer o escribir) se denomina registro (register).
Cada registro tiene asignado un único número de acceso, denominado dirección (address).
Para que el CPU pueda tener acceso a la información almacenada en la memoria, ésta debe
contar con líneas por las cuales se pueda leer la información almacenada en un registro, o
escribir en ella. A este conjunto de líneas se les denomina líneas de datos (data lines).
Además, debe contar con líneas de selección, para elegir el registro que se desea leer o
escribir.
Estas líneas se denominan líneas de direcciones (address lines).
Además también debe contar con líneas que permitan controlar cuando se desea escribir o leer
la memoria. Estas líneas se denominan líneas de control (control lines).
En la figura 4 se muestra el bosquejo de una memoria de 4 registros, de 4 bits cada uno.
Fig. 3 Arquitectura Harvard
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 6 25/04/2012
Como se indica, cada cuadro representa una celda, en este caso un flip-flop. Tiene cuatro
multiplexores de 4x1 y observar que cada celda va a una única entrada de un único
multiplexor, y además que las líneas de selección de los cuatro multiplexores son comunes.
Si por ejemplo, se tuviese en las entradas de las líneas de selección 0 y 1 el valor 11, en la
salida D0 se tendrá el contenido de la celda superior del registro 3 (bit 0 del registro 3), en la
salida D1 el contenido de la siguiente celda del registro 3 (bit 1 del registro 3), y en la salida
D3 el contenido de la celda inferior del registro 3 (bit 3 del registro 3). Esto se muestra en la
figura 5, donde están sombreadas las celdas cuya información aparece en las salidas.
Para este ejemplo, las líneas de dirección son las líneas de selección de los multiplexores (2
líneas), las líneas de datos son las salidas de los multiplexores (D0, D1, D2 y D3) y los
registros son los conjuntos de 4 celdas verticales, como se indica en la figura.
Registro 0
Registro 1
Registro 2
Registro 3
0
2
1
013
0
2
1
01
3
0
2
1
01
3
0
2
1
01
3
D0
D1
D2
D3
MEMORIA DE 4 REGISTROS DE 4 BITS
2 líneas de selección
(líneas de direcciones)
MUX
D Q
Fig. 4 Memoria de 4x4 bits
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 7 25/04/2012
Registro 0
Registro 1
Registro 2
Registro 3
0
2
1
013
0
2
1
01
3
0
2
1
01
3
0
2
1
01
3
D0
D1
D2
D3
MEMORIA DE 4 REGISTROS DE 4 BITS
líneas de selección
(líneas de direcciones)
se está seleccionando
entrada 3
MUX
1 1
bit 0
líneas de
datos
bit 3
Fig. 5 Selección del contenido del registro 3
A continuación se definen una serie de términos utilizados en relación con las memorias y en
general con las computadoras.
Palabra (word): Es un conjunto de bits de información accedidos simultáneamente.
Byte: Conjunto de 8 bits de información.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 8 25/04/2012
Longitud de palabra (word length): Es el número de bits de información que almacena un
registro de la memoria. En el caso de memorias de acceso paralelo, éstas tendrán un número de
líneas de datos igual a la longitud de palabra.
Capacidad de la memoria: Es la cantidad de bits de información que es capaz de almacenar
una memoria. O lo que es lo mismo, el número total de celdas de memoria con las que cuenta.
Se especifica indicando el número de registros con los que cuenta, seguido de la longitud de
palabra (número de bits de cada registro), como por ejemplo 32Kx8, que significa que la
memoria tiene una capacidad de 256Kb o lo que es lo mismo 32K registros de 8 bits cada uno.
Kilobyte (KB): 1024 bytes.
Kilobit (Kb): 1024 bits
Megabyte: 1024 KB (210
bytes)
Megabit: 1024 Kb (210
bits)
Señal: Es una cantidad eléctrica que lleva información.
Señal binaria: Aquellas que pueden representar sólo dos valores lógicos.
Buses: Grupo de señales binarias que colectivamente transportan un valor numérico, o que
tienen algo en común.
Modelo de Memoria
Es una representación gráfica de la memoria, en la cual se muestran las direcciones de los
registros de manera consecutiva y el contenido de dichos registros. Cada registro viene
representado por un pequeño rectángulo, cuyo número interior representa el valor almacenado
en el registro (su contenido), y el número al lado izquierdo fuera del rectángulo la dirección de
dicho registro, o dirección de memoria, como se muestra en el ejemplo de la figura.
Las líneas punteadas indican que hay un grupo de registros con direcciones consecutivas que
no se muestran.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 9 25/04/2012
$14
$15
$8C
$20
$17
$01
$02
$03
$0021
$1000
$1001
$2016
$2017
$2018
$0020
$0000
$FFFF
MODELO DE MEMORIA
DireccionesValores contenidos
en las direcciones de
memoria
Fig. 6 Modelo de memoria
Por ejemplo, el registro con dirección $0020 tiene almacenado el valor $14, y el registro con
dirección $2017 tiene almacenado el valor $02.
El signo $ indica que el número está expresado en base 16, por lo que $14 equivale a 20 en
base 10.
Este tipo de representación es muy útil para poder visualizar el contenido de las áreas de
interés de la memoria que son accedidas por un programa o instrucción que se quiera analizar.
Tipos de memorias
Existen muchos tipos de memorias, las cuales se pueden clasificar dependiendo de la
tecnología en base a la cual están hechas, la manera como se logra el acceso a sus registros, o
la duración de la información almacenada en ellas.
Clasificación de las memorias
Dependiendo de la duración de la información almacenada en ellas se pueden clasificar en:
Memorias no volátiles (non-volatile memories): Aquellas cuya información, una vez
grabada, no se pierde incluso cuando la memoria no está energizada (o sea, no está
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 10 25/04/2012
conectada a una fuente de alimentación). En este grupo están las memorias ROM, PROM,
EPROM, EEPROM, Flash EPROM, siendo las más empleadas actualmente las memorias
Flash EPROM y EEPROM.
Memorias volátiles (volatile memories): También conocidas como memorias RAM
(memorias de acceso aleatorio, del inglés: Random Access Memory). Son memorias en las
que la información se pierde cuando se les desconecta la fuente de alimentación. Estas a su
vez se clasifican en:
memorias estáticas (static memories): La información almacenada se mantiene
mientras esté conectada la fuente de alimentación. En este grupo están las memorias
RAM estáticas.
memorias dinámicas (dynamic memories): En estas memorias, no basta con
mantener conectada la fuente de alimentación al chip, sino que se requiere un
proceso denominado de "refresco de memoria" (refresh memory), pues de no
hacerse, se pierde la información. Este ciclo de refresco debe realizarse cada 2 a 4
ms como máximo, en cada celda de memoria. Para el refresco se requiere el diseño
de un circuito especial, ya que las memorias no lo hacen automáticamente.
Dependiendo de la forma de acceso a la información se pueden clasificar en:
Memorias seriales: El acceso a los registros se hace por medio de una línea de datos
únicamente, de modo que si un registro tiene por ejemplo 8 bits, tienen que hacerse 8
lecturas por esa línea.
Memorias de acceso paralelo: En el lenguaje común, a las memorias de acceso paralelo se
les llama simplemente memorias. En estas memorias se accede simultáneamente a todos los
bits de un registro. Para ello la memoria cuenta con líneas de datos (tantos como bits tengan
sus registros) y líneas de direcciones.
Dependiendo de si se pueden leer y escribir:
Memorias de sólo lectura: Son memorias que una vez instalados en un circuito, sólo pueden
leerse, o, de poder escribirse, el tiempo para la escritura es considerable comparado con el
tiempo de lectura. Por dar un ejemplo: para leer el registro de una EEPROM se requieren
unos 150ns, pero para escribir en un registro se requieren unos 2ms, es decir más de diez
mil veces el tiempo requerido para la lectura.
Memorias de lectura/escritura: Pueden leerse y escribirse, y el tiempo de acceso para la
lectura y la escritura es del mismo orden de magnitud. Un ejemplo son las memorias RAM
tanto estáticas como dinámicas.
Memorias ROM (Read Only Memory)
Son memorias de sólo lectura, cuya grabación se realiza durante el proceso de fabricación del
circuito integrado, es decir, es el fabricante del chip quien lo programa. El diseñador que
requiere la memoria debe indicar al fabricante qué información desea grabar. Y deben de
comprarse en el orden de 1000 unidades a más, todas con la misma información grabada.
Además, el tiempo desde el momento que se solicita la grabación, hasta que finalmente se
tienen los dispositivos, es de varias semanas (antiguamente varios meses). Por esta razón, se
emplean sólo en productos masivos, como los juegos de video. Son los de más bajo costo, en
relación con los demás tipos de memorias, cuando se compran en grandes volúmenes.
Existen memorias de hasta 512Kx8.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 11 25/04/2012
Existen microcontroladores cuya memoria no volátil es memoria ROM. Estos
microcontroladores son más baratos que sus equivalentes con otro tipo de memoria no volátil,
pero se venden en grandes volúmenes. Los compradores, al momento de hacer el pedido al
fabricante, entregan el programa que deberá ser grabado en la memoria ROM, y el fabricante
del microcontrolador los graba durante el proceso de fabricación. Un ejemplo de este tipo de
microcontrolador es el que tiene la computadora de aplicación específica NMY-0020 de la
Cía. New Micros, en el cual se emplea el microcontrolador 68HC11A8, y que en su memoria
ROM tiene grabado un programa monitor.
Memorias PROM (Programmable ROM)
A diferencia de las memorias ROM, éstas pueden ser programadas eléctricamente (o sea,
grabadas), con ayuda de un programador de memorias. Estas memorias se venden sin nada
grabado (memorias en blanco), y es el diseñador el que las programa con la información que
desea, con ayuda del programador de memorias.
El inconveniente que tienen es que pueden programarse sólo una vez, y una vez grabadas no se
pueden borrar. La razón de ello es que la programación de sus celdas de memoria con un 1 o
un 0 se basa en quemar o no unos fusibles, y como tales, una vez quemados, no se pueden
volver a reconectar.
Son de baja capacidad (unos 4Kb u 8Kb). Son las más rápidas de las memorias de solo lectura
(25ns a 33ns de tiempo de acceso) pero no se utilizan mucho pues son de muy baja capacidad,
consumen mucha energía, y son costosas. Por ejemplo, la memoria PROM 74S288 de 32
registros de 8 bits (32x8) y tiempo de acceso de 25ns tiene un costo de $10.95 la unidad y de
$8.95 c/u en compras de 1000 unidades (fuente: www.jameco.com, revisado el 25/04/2012).
En cambio, la memoria Flash SST39LF040-45-4C-NHE de la Cía. Microchip Technology,
tiene una capacidad de 512Kx8, tiempo de acceso de 45ns y un costo de $2.19 la unidad o de
$1.56 c/u si se compran 100 unidades, es decir, más de diez mil veces la capacidad y menos de
la tercera parte del costo comparado con la memoria 74S288.
Memorias EPROM (Erasable PROM)
Son memorias que al igual que las PROM, se programan eléctricamente, pero además pueden
borrarse con luz ultravioleta y reprogramarse. Para ello, los encapsulados de estas memorias
cuentan con una pequeña ventana transparente por donde se debe hacer incidir la luz
ultravioleta cuando se desea borrarlas. Para grabarlas se requiere, al igual que las PROM, de
un programador de memorias.
Existe una versión de estas memorias, denominada OTP EPROM cuyo encapsulado no cuenta
con la ventana para borrado, y que se describe más adelante.
Los fabricantes de memorias EPROM dan la información de cómo programarlas en sus hojas
técnicas, y es posible que uno pueda diseñar su propio circuito grabador de memorias
EPROM.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 12 25/04/2012
Ejemplos de este tipo de memorias son el circuito integrado AMDF27C040 de 4Mb en un
arreglo de 512Kx8 de la Cía. Advance Microdevices, el M27C322 de 32Mb con un arreglo de
4Mx8 de la Cía. STMicroelectronics y precio de $12.85 en lotes de 100 unidades ($18.31 c/u
en Marzo del 2007. Fuente http://www.mouser.com Marzo del 2007 y Marzo del 2009), y el
circuito integrado M27C512-90F6 de 512Kb con un arreglo de 64Kx8, de la Cía.
STMicroelectronics, y precio de $2.82 c/u ( $1.91 c/u en Marzo del 2009 en lotes de 1000
unidades. Fuente http://www.em.avnet.com Marzo del 2007 y Marzo del 2009).
Actualmente no se utilizan tanto pues las memorias Flash son de mayor capacidad y menor
precio. De hecho, ya son consideradas obsoletas las que tienen la ventana de borrado,
quedando disponibles sólo las OTP EPROM que se describen a continuación.
Memorias OTP EPROM (One Time Programmable EPROM):
Son memorias EPROM con un encapsulado que no cuenta con ventana para la
incidencia de luz ultravioleta. Debido a ello, no se pueden borrar, y de allí que se
denominen "programables una sola vez". El costo de un encapsulado sin ventana es
menor que el de uno con ventana (en la década de los 90, del orden de $1.00) y ello
influye en el costo final del circuito integrado. Por ello las memorias OTP EPROM son
de menor precio que las EPROM convencionales. Ejemplos de memorias OTP
EPROM son: el circuito integrado AT27C010-70PU de 1Mb (128Kx8) de la Cía.
Atmel, y precio de $2.74 c/u (Fuente: www.mouser.com, Abril del 2012) el circuito
integrado M27C512-90B6 de 512Kb con un arreglo de 64Kx8, de la Cía.
STMicroelectronics, y precio de $1.23 c/u en Marzo del 2009 ($0.90 c/u en lotes de
1000 unidades en Marzo del 2007. Fuente http://www.em.avnet.com Marzo del 2007,
Marzo del 2009).
En los microcontroladores que cuentan con memoria EPROM, a la memoria se le
denomina OTP EPROM si el circuito integrado no cuenta con ventana para el borrado
de la misma. La diferencia en precio de un microcontrolador de encapsulado con
ventana y otro sin ventana es significativa. Por ejemplo, el microcontrolador
PIC12C508A/JW-ND de la Cía. Microchip, que cuenta con una memoria EPROM de
512x12, cuesta por unidad $16.00, y por ciento $8.02 c/u. Sin embargo, el
PIC12C508A-04/P-ND, cuya única diferencia con el anterior es contar con memoria
OTP-EPROM, cuesta por unidad $1.73, y por ciento $0.96 c/u. Es decir, una relación
de 9 a 1 en el precio. (precios tomados de Cía. Digi-key, Marzo del 2007,
http://www.digi-key.com ).1
1 La diferencia tan grande en precios de los microcontroladores no es tanto por la existencia o no de la ventana,
sino en los volúmenes de producción y ventas. Como los encapsulados con ventana se usan para la construcción
de prototipos, no se venden tantos y por ello no se fabrican tantos: eso eleva su precio de venta. Para que se tenga
una idea de los volúmenes de ventas y su impacto en los precios, en el año 2004 el microcontrolador PIC12C508-
04/P-ND costaba $2.05 por unidad, ($1.40 c/u por ciento) y en Marzo del 2007 $2.25 por unidad ($1.44 c/u por
ciento), es decir, aumentó en 10% su precio. Pero el microcontrolador PIC12508A-04/P-ND, que según el
fabricante Microchip es una mejora y reemplaza al anterior , cuesta $1.73 por unidad ($0.93 por ciento), es decir,
cuesta 20% menos. De hecho, disminuyó el volumen de ventas del PIC12C508-04/P-ND y la fabricación se
centra en el nuevo microcontrolador.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 13 25/04/2012
Por ejemplo, el microcontrolador PIC12C508JW-ND de la Cía. Microchip, que cuenta
con una memoria EPROM de 512x12, cuesta por unidad $16.65, y por ciento $8.44
c/u. Sin embargo, el PIC12C508-04/P-ND, cuya única diferencia con el anterior es
contar con memoria OTP-EPROM, cuesta por unidad $2.05, y por ciento $1.40 c/u. Es
decir, una relación de 6 a 1 en el precio (precios tomados de Cía. Digi-key. Página web:
www.digi-key.com año 2007).
Aunque todavía se producen los microcontroladores con memoria OTP EPROM (año 2012),
los fabricantes ya han desarrollado versiones de estos microcontroladores con memoria Flash y
sugieren el empleo de las versiones de sus microcontroladores con memoria Flash. Por
ejemplo, para el PIC12C508A-04/P-ND ($1.80 c/u) existe el PIC12F508-I/P con memoria
Flash ($0.84 c/u) y a menos de la mitad de precio (Fuente: www.digikey.com Abril 2012).
Memorias EEPROM (Electrically Erasable PROM)
Son memorias que pueden grabarse y borrarse eléctricamente. Más caras que las memorias
EPROM. Estas memorias han sido diseñadas para programarse en el circuito en el que van a ir
instaladas, a diferencia de las anteriores, que requieren de un programador de memorias. Estas
memorias pueden borrarse de dos maneras. En una, mediante un pulso eléctrico se borran
todas los registros de la memoria. A este método se le llama "bulk erase", o borrado en bloque.
En la otra, se selecciona un registro que se desea borrar, y con un pulso eléctrico se borra sólo
dicho registro, manteniéndose la información de los demás. Este tipo de borrado se denomina
"byte erase", debido al hecho que estas memorias normalmente cuentan con registros de 8 bits.
Un ejemplo de memoria de acceso serial es el chip AT24C1024B-PU25 de la compañía
Atmel2, que es una memoria EEPROM de acceso serial en un arreglo interno de 128Kx8, y
tiene un precio de $3.91 por unidad y de $2.60 c/u por ciento (fuente: http://www.digikey.com,
Marzo 2009).
Otro ejemplo, de acceso paralelo es el chip AT28C256 de 256Kb, fabricado por la compañía
Atmel, con un arreglo de 32Kx8 y un precio de $5.90 por unidad ($8.99 por unidad el año
2004. Fuentes: www.jameco.com, Agosto 2004, www.digikey.com Marzo 2009).
Actualmente predominan las memorias EEPROM seriales sobre las EEPROM de acceso
paralelo, pues las de acceso paralelo fueron desplazadas por las memorias Flash. Por ejemplo,
a Marzo del 2007, la memoria paralela 28LV010E-12PI de 1Mb (128Kx8) de la Cía. Atmel,
tiene un precio de $31.93 por unidad, y de $19.30 c/u por ciento (fuente:
http://www.digikey.com Marzo 2007). Una memoria Flash de la misma capacidad, la
AT29B010A-12JU del mismo fabricante, tiene un precio de $2.63 por unidad y $1.638 por
ciento. Más de 1000% de diferencia. Y para terminar la comparación, una memoria serial, la
AT24C1024W-10SU-2.7 de 1Mb (128Kx8) tiene un precio de $5.76 por unidad y $3.28 c/u
por ciento (fuente: http://www.digikey.com Marzo 2007).
Memorias FLASH-EPROM (FLASH Memory)
Estas memorias también se denominan simplemente memorias Flash.
2 En Agosto del 2004, el circuito integrado que existía era el AT24C1024-10PI-2.7 de la compañía Atmel, que es
una memoria EEPROM de acceso serial en un arreglo interno de 128Kx8, y tenía un precio de $8.04 por unidad y
de $6.17 c/u por ciento (fuente: http://www.digikey.com, Agosto 2004).
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 14 25/04/2012
Al igual que las memorias EEPROM, se programan y borran eléctricamente, pero difieren en
los tipos de borrado. Al igual que en las EEPROM, se puede realizar el borrado de todas las
celdas del chip a la vez, es decir, el modo "Bulk erase". Sin embargo, no cuentan con el
borrado registro por registro. Hasta hace unos años, ese era el único tipo de borrado con el que
contaban, sin embargo, en la actualidad, las memorias Flash cuentan con un tipo de borrado
por bloques "block erase" también denominado borrado por sectores ("sector erase"). En las
memorias con este tipo de borrado, la memoria está dividida en varias partes denominadas
bloques, páginas o sectores, cada uno con un número de registros consecutivos, y se puede
borrar un bloque sin afectar el contenido de los demás bloques. Vale la pena resaltar que al
borrar un bloque o sector, se borra un grupo de registros y no un único registro como es en el
caso de las memorias EEPROM.
Al igual que las EEPROM, han sido diseñadas para no requerir de un programador de
memorias, sino que pueden reprogramarse en el circuito en el que van a ser instalados.
Hasta hace algunos años la mayoría de fabricantes de estos tipos de memorias producían chips
que requerían de un circuito especial en la tarjeta en la que iban a ir instalados. Pero las
fabricadas actualmente no requieren de circuitos especiales, y gracias a ello se conectan como
si fuesen memorias EEPROM.
La razón por la cual estas memorias son muy utilizadas, es que al mejorar la tecnología de
producción de memorias, las nuevas que aparecen de mayor capacidad, lo son unas 4 veces
más que las EEPROM de mayor capacidad que se introducen en el mercado.
Hay dos tecnologías de memorias Flash que predominan en el mercado desde la década del 90:
NAND Flash y NOR Flash. Las NAND Flash tienen celdas de menor tamaño lo cual permite
que sean de mayor capacidad, y más baratas que las NOR Flash, razón por la cual se emplean
como medio de almacenamiento masivo en dispositivos de consumo masivo. Sin embargo,
son más lentas al momento de la lectura que las NOR Flash que también consumen menor
energía cuando no están en uso (lectura o escritura) razones por las cuales éstas se suelen
emplear como memoria para almacenamiento de programas.
Como comparativa de precios, una memoria NOR Flash de 512Mb, la S29GL512P11TFI010
de la Cía. Spansion LLC, cuesta $14.24, y una NAND Flash de la misma capacidad, la
H27U518S2CTP-BC de la Cía. Hynix Semiconductor, cuesta $4.99 (fuente:
www.mouser.com, Abril del 2012).
Ejemplos de uso de las NAND Flash son: en las unidades de disco semiconductoras utilizadas
en las computadoras personales portátiles (Notebook´s) denominadas FLASH-Disks, en las
tarjetas de memoria de las cámaras digitales como las Sony "Memory Stick's®
", en las tarjetas
de memoria externa usadas en las agendas electrónicas (las denominadas PDA's), como las
"SD-Memory cards" o en los teléfonos celulares como las “micro-SD”.
Ejemplo de uso de las NOR Flash es en la memoria interna no volátil de las agendas
electrónicas (PDA) y de algunos teléfonos celulares.
Actualmente hay una tendencia, debido al costo reducido de las NAND Flash, de emplearlas
también para almacenamiento de programas, los cuales, antes de ejecutarse son copiados a
memoria RAM, desde donde son ejecutados.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 15 25/04/2012
Son en la actualidad el tipo de memoria no volátil más vendido a nivel mundial.
Existen actualmente (año 2012) memorias NAND Flash hasta de de 16Gb (2048MB) como
el circuito integrado H27UAG8T2ATR-BC de la compañía Hynix Semiconductor, y memorias
NOR Flash de hasta 1Gb (128Mx8) de acceso paralelo como el circuito integrado S29GL-P de
la Cía. Spansion LLC.
Otros ejemplos de memorias Flash son el LH28F320 de 32Mb en arreglo de 4Mx8, de la Cía.
Sharp, el AM29LV065 de 64Mb de la Cía. Advance Micro Devices (AMD), o el
M29F010B70K6E de 1Mb (128Kx8) a $1.49 la unidad (fuente: http://www.em.avnet.com
Marzo 2007).
Hasta hace pocos años, la relación de precios de menor a mayor, para la misma capacidad de
memoria era: ROM, OTP-EPROM, EPROM, Flash, EEPROM (no se incluyen las memorias
PROM pues prácticamente son una reliquia, y existieron mientras fueron las memorias más
rápidas). Sin embargo, esto ya cambió (por lo menos para un rango de capacidades) y el orden
de precios, de menor a mayor es: ROM, Flash, OTP-EPROM, EPROM, EEPROM.
Es decir, en ciertos casos es más barata una memoria Flash que una memoria OTP-EPROM o
EEPROM.
Un ejemplo de microcontrolador con memoria flash es el ATmega88A-PU de la familia AVR8
de Atmel. Este circuito integrado puede programarse en el circuito, como se verá en el primer
laboratorio del curso, y tiene un precio de $2.24 por unidad y $1.248 c/u por ciento
(www.digikey.com Abril 2012). Otro microcontrolador, el ATmega8L-PU empleado
anteriormente en el curso cuesta $3.66 por unidad y $2.04 c/u por ciento en el mismo
proveedor (Digi-Key).3
Líneas de control de las memorias: (todas son líneas de entrada)
Como se indicó anteriormente, las memorias cuentan con líneas de control. En el caso de las
memorias de acceso paralelo, algunas de estas líneas son:
Habilitador de chip CE ó CS (chip enable, ó chip select)
Cuando esta línea está activa, se puede tener acceso la memoria por medio de las
demás líneas.
Cuando está inactiva, las líneas de datos permanecen en alta impedancia y no se
puede leer o escribir la memoria.
Habilitador de salida OE (output enable)
Esta línea permite efectuar la lectura de un registro.
3 El empleado en el laboratorio era el ATmega8L-8PC, modelo que Atmel descontinuó a favor del ATmega8L-
PU. La razón del cambio fue para que el circuito integrado no tenga materiales que perjudiquen el medio
ambiente. En Europa está vigente la directiva RoHS 2002/95/EC (Restriction of the Use of certain Hazardous
Substances in Electrical and Electronic Equipment) que prohíbe el uso de ciertas sustancias, como el plomo, en la
fabricación de equipos eléctricos o electrónicos. Posteriormente Atmel introduce al mercado el ATmega88A, pin
a pin compatible con el ATmega8L, pero con menor consumo de energía, más prestaciones y menor precio.
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 16 25/04/2012
Cuando está activa, la información que hay en el registro seleccionado (mediante las
líneas de dirección) aparece en las líneas de datos.
Cuando está inactiva, las líneas de datos permanecen en alta impedancia.
Escritura WR (write)
Esta línea, que tienen las memorias de lectura/escritura, se debe activar para efectuar
una escritura en un registro de la memoria (que tiene que ser seleccionado con las
líneas de dirección) . Para ello debe estar presente en las líneas de datos el valor que
se desea escribir en el registro.
En general, no puede leerse y escribirse simultáneamente en una memoria, por lo que las líneas
OE y WR jamás deben estar activas simultáneamente. Además, ello significaría tener una
colisión de información.
Los chips de memoria Flash y EEPROM también cuentan con líneas de control de escritura.
Pero como se explicó anteriormente, son consideradas memorias de sólo lectura.
Ejemplo de un chip de memoria de 1Mb, 128Kx8
En la figura se muestra la disposición de patitas (pin-out) de una memoria Flash
SST39SF010A, que muestra qué señal corresponde a qué patita del circuito integrado. La
presentación puede ser en forma de diagrama (diagrama de conexiones) o como una tabla, en
la que se indica el número de patita en el chip y la señal que le corresponde. En este caso se
muestra como diagrama de conexiones.
Esta memoria tiene un arreglo de 128Kx8. Es decir, cuenta con 128K registros de 8 bits cada
uno. Pero 128K = 27*2
10 = 2
17. Esto significa que se requieren 17 líneas de direcciones para
poder acceder a cualesquiera de los 128K registros. Éstas son las líneas A0 hasta A16 que
aparecen en la figura.
Como los registros son de 8 bits se requieren 8 líneas de datos para leer simultáneamente el
contenido de todas las celdas de memoria de un registro. Éstas son las líneas DQ0 hasta DQ7
que aparecen en el diagrama.
Como es una memoria Flash, debe contar con las líneas de control de habilitación de chip, y de
habilitación de salidas y de escritura. Éstas líneas son CE#, OE# y WE# de la figura
respectivamente.
Las líneas VDD y VSS son las de la fuente de alimentación de 5V (VDD terminal positivo).
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 17 25/04/2012
Fig. 1 Diagrama de Bloques
Fig. 2 Diagrama de Conexiones
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 18 25/04/2012
El CPU y los buses de datos, de direcciones y de control
El CPU de un computador requiere acceder a dispositivos de memorias donde están tanto los
programas que debe ejecutar como los datos a procesar. Por lo tanto, los CPU’s deben contar
con líneas que permitan su fácil conexión a las memorias. Estas se describen a continuación.
Bus de datos Es el conjunto de líneas por donde el CPU envía o recibe datos. Un CPU puede tener más de un bus de
datos, dependiendo de su arquitectura.
Bus de direcciones
Es el conjunto de líneas por medio de las cuales el CPU indica qué número de registro desea
acceder para su lectura o escritura.
Bus de control
Se denomina así al conjunto de todas las líneas de control con que cuenta el CPU para poder
controlar el acceso a los dispositivos de memoria, interfaces de entrada/salida, y otros
elementos especiales con los que puede contar un computador. También se les conoce
simplemente como líneas de control.
Realmente los tres términos anteriores deberían ser líneas de datos, líneas de direcciones y
líneas de control. En la práctica, es común llamarlos buses, pues necesariamente estas líneas se
conectarán a los demás dispositivos que forman el computador, y por tanto esas líneas
conectadas formarán buses.
“CPU de n bits”
Una característica importante de un CPU es el número de líneas de datos con las que cuenta,
pues ello significará acceder a mayor o menor información (número de bits) en el mismo
tiempo. Se dice que un CPU es de "n" bits cuando cuenta con "n" líneas de datos. Si el CPU es
de arquitectura Harvard, entonces se refiere a las líneas de datos utilizadas para transferir
información de la memoria de datos a los registros del CPU.
Por ejemplo, el ATmega88A que tiene arquitectura Harvard, cuenta con dos buses de datos.
Uno de 16 bits para la memoria de instrucciones, y otro de 8 bits para la memoria de datos. En
este caso, este microcontrolador tiene un CPU de 8 bits.
Como ejemplos de arquitectura Von Neuman tenemos al microcontrolador
MC68HC908QT1A, de la Cía. Freescale Semiconductor, que tiene un CPU de 8bits; el
microprocesador 8088 con un CPU de 16 bits, a pesar que externamente sólo cuente con 8
líneas de datos (internamente el bus de datos es de 16 bits); y el 8086 que tiene el mismo CPU
que el 8088 (de 16 bits) pero externamente también cuenta con 16 líneas de datos.
Rango de direccionamiento del CPU
Para poder acceder a "2N" registros de una memoria, se requieren N bits para identificar sin
ambigüedad a cada registro. Por lo tanto se requieren N líneas de direcciones. Por ello, cuando
Curso: Sistemas Digitales
Especialidad: Ing. Electrónica Profesor: Ing. Hugo Pratt
Pontificia Universidad Católica del Perú Área de circuitos y sistemas
Capítulo1Parte1 rev. 9 19 25/04/2012
un CPU tiene N líneas de direcciones, se dice que su capacidad de direccionamiento es de 2N
registros.
Por ejemplo, el CPU del 68HC11 tiene 16 líneas de direcciones, por lo tanto tiene un rango de
direccionamiento de 216
registros ó 64K.
El 8088 tiene 20 líneas de direcciones, por lo que su capacidad de direccionamiento es de 1M.
Es común que en vez de registro se indique la capacidad de cada uno. En los ejemplos
anteriores se diría que el 68HC11 puede direccionar 64KB y el 8088 1MB.
En el caso del microcontrolador ATmega8, que tiene arquitectura Harvard, se tienen dos
rangos de direccionamiento: para la memoria de programa el rango de direccionamiento es de
4K registros de 16 bits, y para la memoria de datos es de 1KB.
Lista de términos 1. Arquitectura de un computador
2. Organización de un computador
3. Memoria
4. CPU
5. microprocesador
6. periférico
7. interfaz, interfaces
8. Unidad de procesos
9. Unidad de control
10. ALU
11. registro del CPU
12. Arquitectura Von Neuman
13. Arquitectura Harvard
14. memoria de instrucciones, memoria de
programa
15. memoria de datos
16. microcontrolador
17. registro de memoria
18. celda de memoria
19. dirección de memoria
20. líneas de datos
21. líneas de direcciones
22. líneas de control de memoria
23. Palabra
24. Byte
25. Longitud de palabra
26. capacidad de una memoria
27. kilobyte KB
28. kilobit Kb
29. megabyte MB
30. megabit Mb
31. señal
32. señal binaria
33. buses
34. modelo de memoria
35. memorias no volátiles
36. memorias volátiles
37. memoria RAM
38. memorias estáticas (SRAM)
39. memorias dinámicas (DRAM)
40. memorias seriales
41. memorias de acceso paralelo
42. memorias de solo lectura
43. memorias de lectura/escritura
44. memoria ROM
45. memoria PROM
46. memoria EPROM
47. memoria OTP-EPROM
48. memoria EEPROM
49. memoria Flash
50. habilitador de chip CE de las memorias
51. habilitador de salida OE de las memorias
52. línea de escritura WR de las memorias
53. Bus de datos
54. Bus de direcciones
55. Bus de control
56. CPU de n bits
57. Rango de direccionamiento de un CPU