La memoria principal de una computadora está organizada en una serie de uni- dades accesibles denominadas celdas, siendo el tamaño típico de celda igual a ocho bits. (Una cadena de ocho bits se denomina byte. Por tanto, una celda de memoria típica tiene una capacidad de un byte.) Las computadoras pequeñas utilizadas en electrodomésticos tales como los hornos microondas pueden dis- poner de memorias principales compuestas por solo unos pocos cientos de cel- das, mientras que las computadoras de mayor tamaño pueden tener miles de millones de celdas en su memoria principal.
Aunque no existen los conceptos de izquierda ni derecha en una computa- dora, normalmente tendemos a conceptualizar los bits de una celda de memoria como si estuvieran organizados en una fila. El extremo izquierdo de esta fila se denomina extremo de mayor peso y el extremo derecho se denomina extremo de menor peso. El bit más a la izquierda se denomina bit de mayor peso o bit más significativo para hacer referencia al hecho de que si interpretáramos el
contenido de la celda como si representaran un valor numérico, dicho bit sería el dígito más significativo del número. De forma similar, el bit situado más a la dere- cha es el bit de menor peso o bit menos significativo. Por tanto, podemos repre- sentar el contenido de una celda de memoria de tamaño igual a un byte como se muestra en la Figura 1.7.
Para identificar a cada una de las celdas individuales que forman la memo- ria principal de una computadora, a cada celda se le asigna un “nombre” distin- tivo, denominado dirección. El sistema es análogo a la técnica de identificar las viviendas dentro de una ciudad mediante su dirección postal. Sin embargo, en el caso de las celdas de memoria, las direcciones utilizadas son completamente numéricas. Para ser más precisos, es como si todas las celdas estuvieran coloca- das en una única fila y fueran numeradas por orden comenzando por el valor cero. Dicho sistema de direccionamiento no solo nos proporciona una forma de identificar a cada celda de forma unívoca, sino que también asigna un orden a las propias celdas (Figura 1.8), permitiéndonos emplear expresiones tales como “la celda siguiente” o “la celda anterior”.
Una consecuencia importante de asignar un orden tanto a las celdas de la memoria principal como a los bits que componen cada celda es que la colec- ción completa de bits que componen la memoria principal de la computadora está, en esencia, ordenada como si formara una única fila de gran longitud. Por esto, podemos utilizar fragmentos de esa fila para almacenar patrones de bits que puedan tener una longitud mayor que la de una sola celda. Por ejemplo,
Extremo de mayor orden Extremo de menor orden 0 1 0 1 1 0 1 0 Bit más significativo Bit menos significativo
Figura 1.7 Organización de una celda de memoria de un byte.
10111110 00011110 10000110 01110010 Celda 7 11110001 Celda 6 00110111 Celda 5 10110001 Celda 4 10100001 Celda 3 01011110 Celda 2 01101101 Celda1 10001101 Celda 0 10111010 Celda11 Celda10 Celda 9 Celda 8
33
1.2 Memoria principal podemos almacenar una cadena de 16 bits simplemente utilizando dos celdas
de memoria consecutivas.
Para completar la memoria principal de una computadora, combinamos la circuitería que almacena los bits con la circuitería necesaria para que otros cir- cuitos puedan almacenar y extraer datos de las celdas de memoria. De esta forma, otros circuitos pueden extraer datos de la memoria preguntando electró- nicamente cuál es el contenido de una cierta dirección (lo que se denomina ope- ración de lectura) o pueden almacenar información en la memoria solicitando que se coloque un determinado patrón de bits en la celda de memoria situada en una dirección concreta (lo que se conoce como operación de escritura).
Puesto que la memoria principal de una computadora está organizada en forma de celdas individuales direccionables, se puede acceder de manera inde- pendiente al contenido de cada celda, según sea necesario. Para reflejar esa capacidad de acceder a las celdas en cualquier orden, a la memoria principal de la computadora se la denomina a menudo memoria de acceso aleatorio (RAM, Random Access Memory). Esta característica de acceso aleatorio a la memoria principal contrasta enormemente con los sistemas de almacena- miento masivo que veremos en la siguiente sección, en los que las cadenas de bits de gran longitud se manipulan en forma de bloques completos.
Aunque hemos presentado los biestables como un método para el almace- namiento de bits, la RAM de la mayor parte de las computadoras modernas se construye empleando otras tecnologías, que proporcionan una mayor miniatu- rización y un tiempo de respuesta más rápido. Muchas de estas tecnologías almacenan los bits en forma de pequeñas cargas eléctricas que se disipan rápi- damente. En consecuencia, dichos dispositivos requieren circuitería adicional, conocida como circuito de refresco, que restaura repetidamente las cargas muchas veces por segundo. Para dejar clara esta volatilidad, a la memoria de una computadora construida con ese tipo de tecnología se la denomina a menudo memoria dinámica, lo que ha dado lugar al término DRAM (Dynamic RAM, RAM dinámica). En ocasiones también se emplea el término SDRAM (Synchronous DRAM, DRAM síncrona), para referirse a la memoria DRAM en la que se aplican técnicas adicionales con el fin de reducir el tiempo necesario para extraer el contenido de sus celdas de memoria.