Capacidad de la memoria tecnológica
Las memorias informáticas almacenan información en bits y bytes y utilizan direcciones para localizar los datos.
La capacidad de una memoria se define como el número máximo de bytes que podemos guardar o almacenar en ella. Depende directamente del número de celdas y del número de bits que tenga cada celda. Si tenemos una memoria de 8 columnas por 4 filas, entonces dispondremos de 32 celdas. Si suponemos que cada celda puede memorizar 8 bits, en total tendremos una capacidad de 32 × 8 = 256 bits. Comúnmente, la capacidad de una memoria se indica en bytes. En este ejemplo, la capacidad será 256 ÷ 8 = 32 bytes. Se trata de una capacidad muy pequeña, que hemos utilizado solo a modo de ejemplo. En la actualidad, nos encontramos con computadoras personales con capacidades de memoria desde decenas de kilobytes hasta varios megabytes. La tecnología en la construcción de memorias avanza continuamente. Con ello, la capacidad por circuito integrado (CI) se va ampliando de día en día. Actualmente son habituales en todas las computadoras los CI con capacidades de varios megabytes.
Direccionamiento
Cuando la CPU desea acceder a la memoria para almacenar información o leer el contenido de la misma, deberá especificar antes la dirección de la celda en que desea realizar la operación, sea de lectura o de escritura. A este modo de seleccionar una celda se le llama direccionamiento. Veamos un ejemplo teórico de direccionamiento de memoria. Supongamos que tenemos una memoria de 128 celdas, agrupadas en una matriz de 16 filas por 8 columnas. Si la unidad de control o CPU desea acceder a una cualquiera de estas celdas, deberá poner en el bus de direcciones el valor de la fila y el de la columna. La CPU necesitaría 4 hilos para direccionar las 16 filas y 3 para las 8 columnas. Sean la fila B (hexadecimal) y la columna 5 (hexadecimal), la CPU pondrá en su bus de direcciones el valor siguiente:
[En el texto proporcionado falta el valor o la ilustración correspondiente.]
Una vez decodificado este valor, se selecciona la celda situada en la intersección de la fila B = 11 y la columna 5. Posteriormente, en esta celda se efectuará una operación de lectura o grabación. Un chip de memoria de 64 Kibit está organizado como si fuese una matriz de 256 filas × 256 columnas:
256 filas × 256 columnas = 65.536 bits = 64 Kibit.
Cada punto o celda de esta matriz es 1 bit. Por consiguiente, solo podemos tener un 1 o un 0 en cada celda. Para conseguir tener 1 palabra en cada celda, o sea, 1 byte (8 bits), necesitamos 8 chips de 64 Kibit (8 matrices de 256 × 256 puntos), puestos en forma paralela. La capacidad de esta memoria es ahora de 64 KiB = 65.536 bytes (1 KiB = 1.024 bytes). Con esta disposición, una palabra se encuentra repartida entre 8 chips; en el chip 1 tendremos todos los valores de peso más bajo y en el chip 8, todos los valores de peso más alto. Pero cada uno de los 8 bits que forman una palabra ocupa la misma dirección en cada uno de los chips, de modo que esta dirección única permite seleccionar la palabra o byte completo.
Como sabemos, para direccionar cada una de las 256 columnas se necesitan 8 bits, y otros 8 para seleccionar cada una de las 256 filas. Cuando se quiere direccionar una posición de memoria, hay que poner en el bus de direcciones 8 bits para direccionar la fila (A0–A7) y 8 bits para direccionar la columna (A8–A15).
Grabación/lectura
Cuando se ha direccionado una posición de memoria, la CPU puede efectuar una lectura o una grabación de datos.
La CPU decide el tipo de operación que se realizará sobre la memoria. Este control lo efectúa mediante una señal del bus de control, que generalmente es write/read (grabación/lectura); según sea esta señal, se efectuará una operación u otra. Una vez direccionada una posición para una operación de lectura, la memoria toma el contenido de la celda direccionada y lo coloca en su salida, unida esta al bus de datos. Si es una operación de grabación, el dato que ha de grabarse debe estar disponible en el bus de datos, a la entrada de la memoria, de donde esta lo toma para depositarlo en la celda direccionada.
Clasificación de las memorias
Las memorias se pueden clasificar según diversos criterios. Uno de los más importantes es su función en la computadora. Según este criterio, se distingue entre:
- Memorias de borrado o de tampón. Son memorias muy rápidas, pero de muy poca capacidad, destinadas a almacenar los datos esenciales de cada instante del proceso (por ejemplo, el primer operando de una operación en curso), porque los procesadores casi nunca toman directamente los datos de la memoria central. También son conocidas como registros o scratchpad memory.
- Memorias centrales. Son dispositivos que sirven para almacenar los programas que se quieren ejecutar, así como los datos, los cálculos intermedios y los resultados; todos ellos son accesibles a la unidad de control y a la unidad aritmético-lógica. A la memoria central también se le llama memoria principal, de trabajo o interna. Durante mucho tiempo se construyeron a base de núcleos de ferrita, pero estos fueron sustituidos posteriormente por memorias de circuitos integrados.
- Memorias de almacenamiento masivo. Son memorias para el almacenamiento de datos que no permiten el acceso inmediato del programa a ellos; para que esto suceda es necesario un paso previo, consistente en la lectura de la información deseada y su colocación en la memoria central de la máquina. A la memoria de almacenamiento masivo se le llama también memoria secundaria o externa; su velocidad de acceso es mucho menor que la que poseen los circuitos integrados, pero su menor coste permite obtener almacenamientos masivos a precios razonables.
Por su modo de funcionamiento, las memorias se pueden clasificar en:
- Memorias de acceso directo. En las que los datos almacenados están disponibles en cualquier orden. Se puede comparar una memoria de acceso directo con un libro. En este último es posible localizar la información que interesa en el índice. Así, se abre el libro por la página a la que remite el índice, sin tener que hojear todo el libro.
- Memorias de acceso secuencial. En las que los datos deben leerse en el mismo orden en que fueron almacenados. La memoria de acceso secuencial encuentra su símil en los antiguos rollos de papiro, que obligaban al lector a desenrollarlos hasta el punto en que se encontraba el texto deseado.
