CAPITULO1Parte1rev10

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

Transcript of CAPITULO1Parte1rev10

Page 1: CAPITULO1Parte1rev10

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.

Page 2: CAPITULO1Parte1rev10

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.

Page 3: CAPITULO1Parte1rev10

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

Page 4: CAPITULO1Parte1rev10

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

Page 5: CAPITULO1Parte1rev10

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

Page 6: CAPITULO1Parte1rev10

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

Page 7: CAPITULO1Parte1rev10

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.

Page 8: CAPITULO1Parte1rev10

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.

Page 9: CAPITULO1Parte1rev10

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á

Page 10: CAPITULO1Parte1rev10

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.

Page 11: CAPITULO1Parte1rev10

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.

Page 12: CAPITULO1Parte1rev10

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.

Page 13: CAPITULO1Parte1rev10

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

Page 14: CAPITULO1Parte1rev10

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.

Page 15: CAPITULO1Parte1rev10

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.

Page 16: CAPITULO1Parte1rev10

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

Page 17: CAPITULO1Parte1rev10

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

Page 18: CAPITULO1Parte1rev10

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

Page 19: CAPITULO1Parte1rev10

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