Bienvenidos sean a este post, hoy veremos uno de los tipos de memoria.
Como dijimos la memoria principal es la memoria fisica o DRAM. Esta tiene la particularidad de que su estructura fuerza a refrescar su carga para mantener a los datos estables. En cambio, la SRAM no necesita ser refrescada como la DRAM. La razon por la que denominamos a la DRAM como la memoria principal, es porque la mayoria de los programas estan cargadas en esta y el S.O mantiene la memoria virtual y la mapea a la DRAM. Por esta razon, todo el trabajo actual pasa atraves de la memoria principal.
Una forma de representar a la memoria es como una secuencia de bytes de datos direccionables. Donde cada byte tiene su propia direccion de memoria y se accede mediante esa direccion. Cuando hablamos de la memoria cache, mencionamos que la CPU pone la direccion de los datos en el bus de direcciones. Esto hace que el microcontrolador de la DRAM busque la informacion solicitada y la envie a traves del bus de datos.
Ya hemos mencionado que el S.O introdujo a la memoria virtual como una abstraccion de la memoria fisica. Esta es la encargada de mapear el contenido de la memoria virtual a la fisica. Y para ello, involucramos al Translation Lookaside Buffer (TLB). Este es otro tipo de memoria cache, pero se encarga unicamente de almacenar las transacciones entre la memoria virtual y la memoria fisica, para utilizar en futuras solicitudes. Veamos como es la estructura de trabajo entre el CPU y la memoria:

Esto es una version muy resumida de como estan interconectados la CPU con la memoria virtual y la memoria fisica. Y como el TLB esta conectado al CPU y al contener todas las transacciones entre la memoria virtual y la fisica, si la encuentra en este buffer utilizara a este en lugar de hacer toda la transaccion con la memoria virtual. Si bien la administracion es sofisticada, afortunadamente el S.O. se encarga de manejar por nosotros para nuestros programas. Esto a su vez, nos da la posibilidad de ubicar automaticamente informacion en el stack, o dinamicamente en el heap. Lo bueno de la ubicacion automatica en memoria es que no intervenimos y por ende, no genera dificultades; solo declaramos los objetos son automaticamente asignados al stack y estos son removidos cuando salen de su rango o scope. En el caso de la memoria dinamica, no la confundamos con la DRAM, tanto la ubicacion como la remocion deben hacerse manualmente. Esto puede crear posibilidades de errores por fugas de memoria (memory leaks).
En resumen, hoy hemos visto a memoria principal, que es, como se compone, cual es su funcion principal, asi como algunas particularidades. Espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donatión
It’s for site maintenance, thanks!
$1.50
