Sei sulla pagina 1di 0

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ó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 interfases 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, interfases 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

UNIDAD DE

MEMORIA

Pratt Área de circuitos y sistemas UNIDAD DE MEMORIA CPU PERIFERICOS INTERFASES E/S RELOJ Fig. 1

CPU

PERIFERICOS

INTERFASES

E/S

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

RELOJ

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, interfases de entrada/salida y algunos periféricos. Por ejemplo, el chip 68HC11 de Motorola es un microcontrolador, y el chip ATmega8 también. 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 accesar a la memoria, interfases 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 Entrada Datos CPU Interface Unidad de Unidad de
Control
Memoria
Instrucción y datos
datos
instrucción
Entrada
Datos
CPU
Interface
Unidad de
Unidad de
Entrada/Salida
Procesos
Control
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.

datos y las instrucciones, que van a diferentes memorias. ARQUITECTURA HARVARD Memoria de Memoria de Datos
ARQUITECTURA HARVARD Memoria de Memoria de Datos Instrucciones Control Instrucción Datos Datos salida Unidad de
ARQUITECTURA HARVARD
Memoria de
Memoria de
Datos
Instrucciones
Control
Instrucción
Datos
Datos
salida
Unidad de
Unidad de
Entrada/Salida
Procesos
Control
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.

de 4 celdas verticales, como se indica en la figura. Fig. 4 Memoria de 4x4 bits
de 4 celdas verticales, como se indica en la figura. Fig. 4 Memoria de 4x4 bits
de 4 celdas verticales, como se indica en la figura. Fig. 4 Memoria de 4x4 bits
de 4 celdas verticales, como se indica en la figura. Fig. 4 Memoria de 4x4 bits
de 4 celdas verticales, como se indica en la figura. Fig. 4 Memoria de 4x4 bits

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

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas Fig. 5 Selección del contenido del registro
Profesor: Ing. Hugo Pratt Área de circuitos y sistemas Fig. 5 Selección del contenido del registro
Profesor: Ing. Hugo Pratt Área de circuitos y sistemas Fig. 5 Selección del contenido del registro

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 accesados 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

$14

$15

$8C

$20

$17

$01

$02

$03

Valores contenidos en las direcciones de memoria

$0000 Direcciones
$0000
Direcciones

$0020

$0021

las direcciones de memoria $0000 Direcciones $0020 $0021 $1000 $1001 $2016 $2017 $2018 $FFFF Fig. 6

$1000

$1001

$2016

$2017

$2018

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

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 (osea, 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.

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: tal vez deberían de llamarse de acceso aleatorio, pero ese término ya es utilizado para referirse a las memorias volátiles. En el lenguaje común, a las memorias de acceso paralelo se les llama simplemente memorias. De hecho, el término "acceso paralelo" no es muy usado, y tampoco del todo adecuado. 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.

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

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

Existen memorias de hasta 512Kx8

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 (osea,

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), pero mucho más veloces que los demás tipos de memorias de sólo lectura.

Actualmente no se utilizan mucho.

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 poer 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. Los fabricantes de estos chips, 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. Ejemplos de este tipo de memorias son el chip de 4Mb AMDF27C040 en un arreglo de 512Kx8 de la Cía. Advance Microdevices, el chip 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

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

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

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

Debido a que son reprogramables, y de capacidades similares a las memorias ROM, son más utilizadas que éstas, pues es posible comprarlas por unidad, y a precios económicos en grandes volúmenes. Son más caras que las memorias ROM.

Existe un tipo particular de memoria EPROM que se define 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 chip MR27V6402D de 64Mb en arreglo de 8MBx8 de la Cía. OKI Semiconductors, el chip 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

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)

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

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 informacion 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. 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 ó 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 ó sector, se borra un grupo de registros y no un único registro como es en el caso de las memorias EEPROM.

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 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. La mayoría de fabricantes de estos tipos de memorias, producen chips que requieren de un circuito especial en la tarjeta en la que van a ir instalados. Pero desde hace unos años, aparecieron fabricantes que han desarrollado memorias FLASH que no requieren de circuitos especiales, y que 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.

Ejemplos de uso son las unidades de disco semiconductoras utilizadas en las computadoras personales portátiles (Notebook´s), denominadas FLASH-Disks. También se utilizan en las tarjetas de memoria de las cámaras digitales como las Sony "Memory Stick's ® ", y en las tarjetas de memoria usadas en las agendas electrónicas (las denominadas PDA's), como las "SD-Memory cards". Éstas son tarjetas que contienen uno o más chips de memoria Flash.

Son en la actualidad el tipo de memoria no volátil más vendido a nivel mundial.

Hay varios tipos de memorias Flash, unas, denominadas NAND Flash, cuyas capacidades llegan a 1Gb en la actualidad (128MB) como el chip HY27US001G1M-T de la compañía Hynix Semiconductor, y la otra, de acceso paralelo, cuyas capacidades llegan a 128Mb (8Mx16). Ejemplos de memorias de acceso paralelo son el chip de memoria Flash EPROM 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 ATmega8L-8PC de la familia AVR de Atmel. Este chip puede programarse en el circuito, como se verá en el primer laboratorio del curso, y tiene un precio de $3.66 por unidad y $2.2464 c/u por ciento (www.digikey.com Marzo 2010). En Agosto del 2004 el mismo circuito integrado costaba $3.66 por unidad y $2.13 c/u por ciento; y en Agosto del 2003 el mismo chip costaba $5.05 por unidad y $3.6093 c/u por ciento en el mismo proveedor (Digi-Key). 3

3 Aunque el empleado en el laboratorio es el mencionado, está dejando de fabricarse ese modelo a favor del ATmega8L-PU cuyo precio a Agosto del 2007 es $3.66 por unidad y $2.13 c/u por ciento. La razón del cambio es 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 eléctrónicos.

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

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

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.

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 256Kb, 32Kx8

En la figura se muestra la disposición de patitas (pin-out) de una memoria EPROM 27C256, 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 32Kx8. Es decir, cuenta con 32K registros de 8 bits cada uno. Pero 32K = 2 5 *2 10 = 2 15 . Esto significa que se requeren 15 líneas de direcciones para poder accesar a cualesquiera de los 32K registros. Éstas son las líneas A0 hasta A14 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.

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

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

Como es una memoria EPROM, que es de sólo lectura, debe contar con las líneas de control de habilitación de chip, y de habilitación de salidas. Éstas líneas son CE# y OE# de la figura respectivamente.

Las líneas Vcc y Vss son las de la fuente de alimentación de 5V (Vcc terminal positivo). Vpp es una línea de programación, que sólo se utiliza para programar la memoria en un equipo programador de memorias EPROM. Esta línea en un computador debería estar conectada al pin Vcc.

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

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

Profesor: Ing. Hugo Pratt Área de circuitos y sistemas Fig. 1 Diagrama de Bloques Fig. 2
Profesor: Ing. Hugo Pratt Área de circuitos y sistemas Fig. 1 Diagrama de Bloques Fig. 2

Fig. 1 Diagrama de Bloques

Área de circuitos y sistemas Fig. 1 Diagrama de Bloques Fig. 2 Diagrama de Conexiones Capítulo1Parte1

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, interfases 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.

Observación:

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 ATmega8 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 68HC11, 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 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 Z80 puede direccionar 64KB y el 8088 1MB.

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

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

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 programa

44. memoria ROM

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