Otro martes, subo otro post para mis alumnos de ESIC. En el anterior había hablado sobre la estructura de las memorias semiconductoras, dando una idea de como se almacenaba la información en las mismas. En este, voy a explicar como se trabaja con ellas, cuales son las operaciones básicas con memorias.

Básicamente, tenemos dos operaciones posibles, o escribimos datos o los leemos. Alguno puede pensar que me dejo la operación de borrar datos, pero no es así, esta estaría incluida en la escritura, simplemente borraríamos los datos o referencias a estos, escribiendo encima.

Cuando hablábamos de la estructura de las memorias, decíamos que estas tenían tantos conectores de datos como la unidad de datos con la que trabajan. Es decir, si la unidad de datos es de 64 bits, nuestra memoria tendrá 64 conectores de datos que se conectarán al bus de datos. Por otro lado, veíamos que si la memoria tienen “n” conectores de direcciones, al expresarse en binario, puede direccionar 2n direcciones. Por ejemplo, si tenemos 32 conectores de direcciones, podremos direccionar 232 = 4.294.967.296  unidades de datos.

En el ejemplo anterior, nuestra memoria tendría una capacidad de 64*232 = 274.877.906.944 bits = 34.359.738.368 bytes = 34,3 Gbytes

Pero además, será necesario indicar a la memoria que operación queremos realizar: escribir o leer. Para ello, la memoria dispone de un conector dedicado, en el que colocaremos un “0” o un “1” lógico para indicar a la memoria la operación que queremos realizar. Como imagino estaréis pensando, esto no vale para todas las memorias, hay algunas memorias que sólo admiten la operación de lectura y ya vienen escritas de fabrica, pero estas las veremos más adelante.

La dinámica de ambas operaciones básicas es muy sencilla.

 Proceso de lectura:

  • Se coloca en el bus de direcciones la dirección de la unidad de datos a la que se quiere acceder.
  • Se activa la señal de lectura.
  • Se produce la lectura, la memoria entrega los datos a través de sus conectores en el bus de datos.

Proceso de escritura:

  • Se coloca en el bus de direcciones la dirección de la unidad de datos a la que quiere acceder.
  • Se colocan en el bus de datos, los datos que quieren almacenarse en la posición de memoria indicada.
  • Se activa la señal de escritura.
  • Se produce la escritura en la posición de memoria indicada.

No obstante, hay un pequeño detalle a tener en cuenta, y este es que la CPU es normalmente más rápida que la memoria. Entonces, ¿como se sincroniza todo este proceso?, ¿Cómo hacemos que CPU y memoria puedan trabajar juntas teniendo distintas velocidades?. Pues muy sencillo, la más rápida, la CPU, queda a la espera hasta haber dado tiempo suficiente a la memoria para proporcionar los datos. Sólo recordar que la CPU era ayudada por el chipset Northbridge en todas estas comunicaciones.

NOTA:

Este post es parte de la colección “Arquitectura de Sistemas” que reproduce los apuntes de la clase que imparto sobre este tema en ESIC. Puedes ver el índice de esta colección aquí.