Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAPITULO 1 – PARTE I
El Computador Digital
¿Qué es un sistema?
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 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.
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 de 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).
UNIDAD DE
MEMORIA
INTERFASES
PERIFERICOS CPU RELOJ
E/S
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.
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.
Control
datos
instrucción
Control
Reloj
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
Control
Reloj
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).
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.
A continuación se definen una serie de términos utilizados en relación con las memorias y en
general con las computadoras.
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.
MODELO DE MEMORIA
Direcciones $0000
Valores contenidos
en las direcciones de
$0020 $14 memoria
$0021 $15
$1000 $8C
$1001 $20
$17
$2016 $01
$2017 $02
$2018 $03
$FFFF
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
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.
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.
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.
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.
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).
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).
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.
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.
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.
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.
Esta memoria tiene un arreglo de 32Kx8. Es decir, cuenta con 32K registros de 8 bits cada
uno. Pero 32K = 25*210 = 215. 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.
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.
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.
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