You are on page 1of 19

Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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ónse 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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

RELOJ
RELOJ
UNIDAD DE MEMORIA INTERFASES PERIFERICOS CPU E/S Fig. 1 Estructura básica de un computador
UNIDAD DE
MEMORIA
INTERFASES
PERIFERICOS
CPU
E/S
Fig. 1 Estructura básica de un computador

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).

Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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.

ARQUITECTURA VON NEUMAN

Control Memoria Instrucción y datos datos instrucción Datos Entrada CPU Interface Unidad de Unidad de Entrada/Salida
Control
Memoria
Instrucción y datos
datos
instrucción
Datos
Entrada
CPU
Interface
Unidad de
Unidad de
Entrada/Salida
Control
Procesos
Salida
Control
Reloj
Fig. 2 Arquitectura Von Neuman

Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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.

ARQUITECTURA HARVARD

Memoria de Memoria de Datos Instrucciones Control Instrucción Datos Datos salida Unidad de Unidad de Entrada/Salida
Memoria de
Memoria de
Datos
Instrucciones
Control
Instrucción
Datos
Datos
salida
Unidad de
Unidad de
Entrada/Salida
Control
Procesos
entrada
Control
Reloj
Fig. 3 Arquitectura Harvard

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.

Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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.

Q D
Q
D
Q D Registro 0

Registro 0

MEMORIA DE 4 REGISTROS DE 4 BITS

1 0 2
1
0
2
1 0
1
0

D0
2

MEMORIA DE 4 REGISTROS DE 4 BITS 1 0 2 1 0 D0 2 MUX 3

MUX

  • 3
    0

  • 3 0

D1

1

1

MEMORIA DE 4 REGISTROS DE 4 BITS 1 0 2 1 0 D0 2 MUX 3
0 1 2 3 0 D2 1
0
1
2
3
0
D2
1
1 2 0 (líneas de direcciones) 2 líneas de selección Registro 3 Registro 2 3 0
1
2
0
(líneas de direcciones)
2 líneas de selección
Registro 3
Registro 2
3 0
D3
1

Registro 1

Fig. 4 Memoria de 4x4 bits

Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

MEMORIA DE 4 REGISTROS DE 4 BITS

MUX

1 Registro 1 Registro 0 1 1 Registro 2 0 0 1 0 bit 3 0
1
Registro 1
Registro 0
1
1
Registro 2
0
0
1
0
bit 3
0
1
datos
D0
D1
D2
D3
Registro 3
líneas de selección
0
2
1
1
2
2
1
2
1
0
1
3
3
0
3
0
3
líneas de
bit 0

(líneas de direcciones)

se está seleccionando

entrada 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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 (2 10 bytes)

Megabit:

1024 Kb (2 10 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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

MODELO DE MEMORIA

MODELO DE MEMORIA
 

Direcciones

$0000

 
 

Valores contenidos

en las direcciones de

 

$0020

$14

memoria

$0021

$15

$0021 $15
   
 

$1000

$8C

$1001

$20

 

$17

   
 

$2016

$01

$2017

$02

$2018

$03

   
 

$FFFF

 

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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 Atmel 2 , 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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 = 2 7 *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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú Profesor: Ing. Hugo Pratt Área
Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú Profesor: Ing. Hugo Pratt Área

Fig. 1 Diagrama de Bloques

Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú Profesor: Ing. Hugo Pratt Área

Fig. 2 Diagrama de Conexiones

Curso: Sistemas Digitales Especialidad: Ing. Electrónica Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

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 "2 N " 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 Pontificia Universidad Católica del Perú

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas

un CPU tiene N líneas de direcciones, se dice que su capacidad de direccionamiento es de 2 N registros. Por ejemplo, el CPU del 68HC11 tiene 16 líneas de direcciones, por lo tanto tiene un rango de direccionamiento de 2 16 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

  • 31. señal

  • 2. Organización de un computador

  • 32. señal binaria

  • 3. Memoria

  • 33. buses

  • 4. CPU

  • 34. modelo de memoria

  • 5. microprocesador

  • 35. memorias no volátiles

  • 6. periférico

  • 36. memorias volátiles

  • 7. interfaz, interfaces

  • 37. memoria RAM

  • 8. Unidad de procesos

  • 38. memorias estáticas (SRAM)

  • 9. Unidad de control

  • 39. memorias dinámicas (DRAM)

  • 10. ALU

  • 40. memorias seriales

  • 11. registro del CPU

  • 41. memorias de acceso paralelo

  • 12. Arquitectura Von Neuman

  • 42. memorias de solo lectura

  • 13. Arquitectura Harvard

  • 43. memorias de lectura/escritura

  • 14. memoria de instrucciones, memoria de

  • 44. memoria ROM

programa

  • 45. memoria PROM

  • 15. memoria de datos

  • 46. memoria EPROM

  • 16. microcontrolador

  • 47. memoria OTP-EPROM

  • 17. registro de memoria

  • 48. memoria EEPROM

  • 18. celda de memoria

  • 49. memoria Flash

  • 19. dirección de memoria

  • 50. habilitador de chip CE de las memorias

  • 20. líneas de datos

  • 51. habilitador de salida OE de las memorias

  • 21. líneas de direcciones

  • 52. línea de escritura WR de las memorias

  • 22. líneas de control de memoria

  • 53. Bus de datos

  • 23. Palabra

  • 54. Bus de direcciones

  • 24. Byte

  • 55. Bus de control

  • 25. Longitud de palabra

  • 56. CPU de n bits

  • 26. capacidad de una memoria

  • 57. Rango de direccionamiento de un CPU

  • 27. kilobyte KB

  • 28. kilobit Kb

  • 29. megabyte MB

  • 30. megabit Mb