domingo, 28 de junio de 2020

Jerarquía de Memoria

La memoria de un computador es análoga al cerebro del ser humano, esta memoria es el espacio de almacenamiento donde la computadora va a procesar los datos y almacenar las instrucciones necesarias para el procesamiento. La memoria tiene una división, esta división se hace en un gran numero de piezas llamadas células, cada ubicación de memoria tiene una dirección única que va desde cero hasta el tamaño de la memoria menos uno.

Antes de entrar en el tema de la jerarquía de memoria, se debe tener un concepto sobre cuál es el funcionamiento que tiene una memoria. En general la memoria puede estar en tres fases, las cuales son direccionamiento, escritura, lectura. Cuando se está en la fase direccionamiento, la memoria está buscando de la manera más efectiva la dirección de un espacio de la máquina, cuando está en modo lectura la memoria tiene a él operando en un espacio temporal para utilizarlo después y por último cuando la memoria está en modo escritura, la información puede ser usada o recuperada según sea lo que se desee.

La memoria de la computadora tiene una jerarquía, definiendo esta como una escala ordenada y subordinante según un criterio de mayor o menor importancia o relevancia dentro de la misma. Teniendo en cuenta este concepto, la jerarquía en la computadora tiene como objetivo acercarse al rendimiento de una memoria de gran velocidad al precio de una memoria de baja velocidad, todo esto teniendo en cuenta el principio de referencias. Este principio tiene que ver con el agrupamiento de las lecturas de memoria por medio de la CPU.

Jerarquía de memoria

La organización piramidal de la memoria de un computador se divide en 5 niveles, el primer nivel de forma descendente lo tiene el registro, en este nivel la memoria permite guardar transitoriamente y acceder a valores muy usados, el segundo nivel lo conforma la memoria cache, esta memoria guarda datos que se puedan utilizar en un futuro todo con el fin de atender con mayor rapidez, el tercer nivel lo ocupa la memoria RAM, en esta se almacenan temporalmente los datos y los programas que la CPU esta procesando, en el cuarto nivel tenemos el Disco duro, en este se busca almacenar los datos a largo plazo, esto quiere decir que estarán guardados aunque se apague el computador, y en el ultimo nivel tenemos  a las memorias extraíbles, esta memoria nos permite guardar una gran cantidad de información.

La memoria tiene tres puntos básicos los cuales son, la capacidad, velocidad y el coste por bit. La capacidad hace referencia a la cantidad de memoria disponible que podrá utilizarse, la velocidad adecuada depende del procesador ya que se debe buscar la velocidad donde el procesador trabaje de un modo donde entre calculo y calculo haya un tiempo de espera que se utilizará para guardar resultados; y por ultimo el coste por bit, este es solo el precio que tienes que pagar por una cantidad especifica de memoria, este precio no debe ser excesivo para que sea factible construir un equipo accesible.

Relación jerarquía de memoria

La relación que se tiene entre estos puntos básicos y la organización piramidal de la memoria es que entre mas abajo sea el nivel de jerarquía de memoria hay mayor capacidad de memoria y entre mas arriba sea el nivel se tiene una mayor velocidad y además un mayor coste por bit. Con esta información se puede decir que el nivel 0 que seria el de registro tiene la mayor velocidad y costo por bit, pero tiene la menor capacidad, de la misma manera se puede decir que en el nivel mas bajo la capacidad es mayor pero la velocidad y el costo por bit es menor.

Afirmaciones que se pueden sacar:

  • A mayor capacidad menor coste por bit.
  • A mayor capacidad menor velocidad.
  • A menor tiempo de acceso mayor coste por bit.

En la actualidad los lenguajes de programación generalmente solo asumen la existencia de los niveles de memoria primaria (RAM) y secundaria (Disco Duro). En el lenguaje ensamblador, ensamblador en línea y lenguajes como C y C++ los datos se pueden direccionar directamente a los registros de la CPU, el cual sería el nivel más alto según la pirámide organizacional. Si se quiere aprovechar la jerarquía de memoria de una manera óptima, se debe hacer una cooperación entre programadores, compiladores y fabricantes de hardware, la cual sería:

  • Los programadores: deben ser responsables del movimiento entre la memoria principal (RAM) y disco mediante el uso de ficheros (lugar virtual donde se guarda la información).
  • Hardware: el movimiento de datos entre la memoria principal y los niveles de cache es realizado por algoritmos de hardware.
  • Los compiladores: son los responsables de optimizar el código de modo que el uso de los registros y la cache sea eficiente.

El rendimiento hoy en día es un factor decisivo al construir una computadora igual que al momento de comprar una de estas, ya que entre mayor rendimiento se tenga, más datos se pueden procesar en un tiempo determinado. La jerarquía de memoria cumple un papel importante en el rendimiento de las computadoras ya que entre mayor velocidad de memoria se tenga, mayor cantidad de instrucciones se pueden ejecutar en un tiempo determinado.

Referencias:

7 comentarios:

  1. Buenas Jorge, Para hablar del contenido me parece que lleva una secuencia de ideas bastante buena, la línea en que son mostradas es atractiva para el lector, se entiende lo que se está tratando de explicar; ahora bien en cuanto a la presentación me parece que usa un tema acorde a lo que se está hablando, en general "un buen trabajo".

    ResponderEliminar
  2. Hola Jorge, se da a entender muy bien los conceptos básicos de la memoria, la jerarquía de la misma y demás aclaraciones que aportan de manera objetiva la información planteada, hace buen uso de las imágenes, las cuales representan lo descrito. Me gusto la frase de entrada al blog, en general estuvo muy bien.

    ResponderEliminar
  3. Hola Jorge, me pareció muy interesante el como la memoria influye en el rendimiento del computador, claro, hay que agregar que va de la mano con el procesador.

    ResponderEliminar
    Respuestas
    1. Hola Angie,tienes toda la razón, el rendimiento va de la mano del procesador.
      Saludos.

      Eliminar
  4. Hola Jorge, excelente, está muy bien explicado, no sabía que el punto fuerte de los niveles superiores en la jerarquía de memoria es la velocidad, me voy con los conceptos bien claros. PD: Genial su diseño.

    ResponderEliminar
  5. Es interesante la relación que hay entre el comportamiento de las máquinas y el comportamiento biológico; en este caso, entre el cerebro humano y la memoria de las máquinas.

    ResponderEliminar
  6. Buenas Jorge, me gustó mucho la analogía de la memoria en cuanto a capacidad y coste por bit, felicidades!!

    ResponderEliminar