La memoria

Tema en 'Manuales Hardware' comenzado por Dimension-X, 26/2/05.

Estado del tema:
No está abierto para más respuestas.
  1. Dimension-X

    Dimension-X Nuevo Miembro Miembro

    La estructura de la memoria



    En primer lugar, el PC salió al mercado con una memoria de 16 KB, que podía extenderse en la placa madre hasta 64 KB. Además, IBM proporcionaba tarjetas de aplicación que recogían cada una 64 KB y que tenían que colocarse en uno de los 5 puestos de conexión de las tarjetas de ampliación. Solo se podían instalar 3 tarjetas como máximo, para dotar al PC con la inmensa cantidad de memoria de 256 KB en aquella época.



    De todas maneras las personas que estaban haciendo el desarrollo del PC sabían que aquello no era el final del desarrollo y dispusieron una distribución de la memoria, que permitió una extensión de la memoria RAM hasta una marca de 640 KB. Se imaginaban estar preparados para el futuro, pero este les sobrepaso muy rápidamente tal como todos los usuarios del DOS ya conocen.



    Aparte de la RAM incluyeron también en la planificación un espacio en la CPU- 8088, que tenia un espacio de direcciones de 1 MB, para el área RAM de las tarjetas de vídeo (el llamado RAM vídeo "VRAM"), para la ROM-BIOS y algunas ampliaciones ROM. Al procesador le es indiferente encontrarse detrás de una posición de memoria RAM o ROM, con la única diferencia que las áreas de memoria en ROM no pueden describirse. El procesador tampoco tiene ningún inconveniente en dirigirse a puntos de la memoria que físicamente no existen. Pues el hecho de que el procesador pueda administrar hasta 1 MB de memoria, no significa ni mucho menos que detrás de cada dirección de memoria se oculta realmente un elemento RAM o ROM.



    Los 10 primeros segmentos de memoria están reservados para la memoria principal RAM, quedando limitado su tamaño máximo a 640 KB. El segmento 0 tiene un papel muy importante ya que en él se incluyen datos y rutinas importantes para el sistema operativo.



    A la memoria RAM le sigue el segmento de memoria A, que se instala con una tarjeta gráfica EGA y VGA. Sirve de memoria de la estructura de la pantalla en los diferentes modos gráficos de estas tarjetas.



    El segmento de memoria B esta asignado a la tarjeta de vídeo monocroma MDA y Hercules así como también a la tarjeta gráfica de color CGA. Ambas comparten este segmento como memoria de estructura de la pantalla, utilizando la tarjeta monocroma los 32 KB inferiores y la tarjeta de color los 32 KB superiores de este segmento. Cada tarjeta instala solo aquella memoria que es necesaria para la memoria de la pantalla. En las tarjetas monocromas son solo 4 KB y en las tarjetas CGA tampoco son mas de 16 KB .



    Los segmentos de memoria detrás Vídeo RAM no se cargaran con RAM, si no con ROM, siendo el segmento C el inicio. En algunos ordenadores en este segmento se depositan algunas rutinas BIS que no forman parte del núcleo original de la bios. En los XT esta rutinas son por ejemplo las que dan soporte al disco fijo que se ha introducido.



    Los segmentos D y E estaban previstos originariamente para cartuchos ROM, como los que se utilizaban para los ordenadores domésticos y juegos de TV para la aportación de software en el sistema. Nunca se han utilizado realmente, de manera que este área se mantiene prácticamente siempre libre y hoy en día se utiliza como RAM adicional o bien para la inserción de memoria EMS.



    Finalmente el bloque F contiene las rutinas de las BIOS en si, el cargador original del sistema así como también el ROM-BASIC que solo se conserva en los ordenadores viejos.
     
  2. Dimension-X

    Dimension-X Nuevo Miembro Miembro

    Memoria ROM



    Es memoria no volátil de solo lectura. Igualmente, también hay dos características a destacar en esta definición. La memoria ROM es memoria no volátil: Los programas almacenados en ROM no se pierden al apagar el ordenador, sino que se mantienen impresos en los chips ROM durante toda su existencia además la memoria ROM es, como su nombre indica, memoria de solo lectura; es decir los programas almacenados en los chips ROM son inmodificables. El usuario puede leer ( y ejecutar ) los programas de la memoria ROM, pero nunca puede escribir en la memoria ROM otros programas de los ya existentes.



    La memoria ROM es ideal para almacenar las rutinas básicas a nivel de hardware, por ejemplo, el programa de inicialización de arranque el ordenador y realiza el chequeo de la memoria y los dispositivos.



    La memoria ROM suele estar ya integrada en el ordenador y en varios periféricos que se instalan ya en el ordenador. Por ejemplo, en la placa madre del ordenador se encuentran los chips de la ROM BIOS, que es el conjunto de rutinas mas importantes para comunicarse con los dispositivos. O, también, las tarjetas de vídeo, las tarjetas controladoras de discos y las tarjetas de red tienen un chip de ROM con rutinas especiales para gestionar dichos periféricos.
     
  3. Dimension-X

    Dimension-X Nuevo Miembro Miembro

    Memoria PROM y EPROM.



    Una alternativa son los chips de memoria de solo lectura programables, o PROM (Programmable Read-Only Memory). Este tipo de circuitos consiste en una matriz de elementos que actuan como fusibles. Normalmente conducen la electricidad. Sin embargo, al igual que los fusibles, estos elementos pueden fundirse, lo que detiene el flujo de la corriente.



    Los chips PROM están fabricados y desarrollados con todos sus fusibles intactos. Se emplea una máquina especial llamada programador de PROM o quemador de PROM, para fundir los fusibles uno por uno según las necesidades del software que se va a codificar en el chip. Este proceso se conoce normalmente como el “ quemado “ de la PROM.



    Como la mayoría de los incendios, los efectos de quemar la PROM son permanentes. El chip no puede modificar, ni actualizar, ni revisar el programa que lleva dentro. Definitivamente, las PROM no están pensadas para la gente que cambia rápidamente de ideas, ni para la industria de cambios rápidos.



    Por fortuna, la tecnología nos ha traído otra alternativa: los chips de memoria programables y borrables de solo lectura, las EPROM. ( Erasable Programmable Read-Only Memory ). Las EPROM son internamente semiconductores auto-reparables porque los datos de su interior pueden borrarse y el chip puede ser reutilizado por otros datos o programas.



    Las EPROM son fáciles de distinguir de los otros chips porque tienen una pequeña ventana transparente en el centro de la cápsula. Invariablemente, esta ventana esta cubierta con una etiqueta de cualquier clase, y con una buena razón: el chips se puede borrar por la luz ultravioleta de alta intensidad que entra por la ventana.



    Si la luz del sol llega directamente al chip a través de una ventana, el chip podría borrarse sin que nadie se diera cuenta. A causa de su versatilidad con la memoria permanente, y por su facilidad de reprogramación, basta borrarla con luz y programarla de nuevo, las EPROM se encuentran en el interior de muchos ordenadores.
     
  4. Dimension-X

    Dimension-X Nuevo Miembro Miembro

    Memoria shadow.



    Los ordenadores de 32 bits generalmente disponen de acceso a la memoria a través de buses de datos de 8,16 o 32 bits. Generalmente es más conveniente utilizar un bus de datos de 16 bits para la memoria de la ROM-BIOS.



    Existen muchas tarjetas de ampliación que incluyen extensiones de la BIOS en la propia tarjeta, y que se conectan al bus del ordenador a través de buses de datos de 8 bits. Como resultado, no se puede acceder a esas áreas de memoria tan rápidamente como a la RAM de 32 bits del sistema. Este problema se complica porque las rutinas de la BIOS, especialmente las utilizadas por las tarjetas gráficas, están entre la parte de código más frecuentemente utilizada en los ordenadores.



    Para romper esta barrera de velocidad, muchos diseñadores de los ordenadores emplean la llamada memoria SHADOW. Copian las rutinas de la ROM en memoria la RAM de 32 bits, que es más rápida, y emplean las posibilidades de direccionamiento del 80387 para la llevar a la RAM el rango de direcciones utilizado por la ROM.



    La ejecución de la BIOS en RAM acelera las operaciones en un factor de 4 o más ( generalmente más, porque normalmente hacen falta más estados de espera cuando se accede a la memoria ROM, que es más lenta ). Por supuesto la SHADOW RAM es volátil, y deben copiarse en ellas las rutinas de la bios cada vez que se arranca el ordenador. En casi todos los ordenadores basados en el 386, las rutinas de la bios se copian automáticamente en memoria SHADOW RAM cada vez que se arranca el sistema.
     
  5. Dimension-X

    Dimension-X Nuevo Miembro Miembro

    Memoria central o principal.



    La función de la memoria principal es almacenar datos e instrucciones de programa de forma temporal. Es estación obligada en todas las operaciones de entrada y salida y, por supuesto, de los resultados parciales o finales del proceso.



    La memoria esta estructurada en forma de una colección de celdas, en cada una de las cuales cabe una unidad especifica de información: octetos o palabras. El contenido de cada una de las posiciones de memoria podrá ser bien dato o instrucción. Cada celda tiene asignada una posición relativa con respecto a un origen, cuyo valor numérico constituye la dirección de la misma y que no se encuentra almacenado en ella.



    Con la misión de garantizar estabilidad y seguridad en las operaciones, la dirección y datos deben mantenerse en registros durante ese tiempo. En la memoria nos encontramos con:



    Registro de dirección de memoria en la que almacena temporalmente la dirección sobre la que efectúa la selección.



    Registro de Información de memoria en donde se almacena el dato durante las fases de lectura o escritura en la celda señalada por el registro anterior.



    Tecnologías de Fabricación



    La constitución de las memorias ha evolucionado en la misma manera que lo ha hecho la tecnología. En un principio se utilizaron núcleos diminutos de ferrita, los cuales dependiendo del sentido de imanación permiten asignar uno o cero a los dos posibles estados. Los núcleos son seleccionados por medio de finos hilos que los atraviesan siendo la corriente eléctrica la encargada de efectuar la selección y la lectura. Cada bit conforma junto con el resto de los de otras celdas, lo que se denomina plano de memoria y habrá, por tanto, tantos como ancho tiene la palabra de memoria.



    Actualmente se han pasado a utilizar memorias de estado sólido, basadas en circuitos eléctricos de silicio, los cuales, mediante un conjunto de biestables es posible almacenar la información de igual manera que si fueran ferritas. Estos dispositivos se denominan RAM, memorias de acceso al azar, constituyendo la vertiente estática de las mismas. Dentro de la misma familia se encuentran las dinámicas, que al basar su funcionamiento en la carga de diminutos condensadores, necesitan ser refrescadas cada cierto tiempo para evitar que pierdan toda la carga, y, por tanto, el uno binario. Habitualmente en este tipo de memoria se pierde la información si se quita la alimentación, salvo que se les dote de baterías para mantenerla. Las memorias de ferrita conservan indefinidamente la información.



    Si la celda anterior (biestable o condensador), se sustituye por un fusible que puede estar fundido o no tendremos una ROM, es decir, memoria de solo lectura, muy adecuada para guardar programas indefinidamente sin ninguna posibilidad de ser borrados.



    Características de la Memoria



    Las magnitudes importantes que caracterizan la Memoria Central son:



    · Capacidad o tamaño de la misma. Es decir, el numero de miles de posiciones que contiene. Normalmente se expresan en que.palabras, aunque en los ordenadores personales al ser las palabras de 8 bits se expresan en que-bytes. En la actualidad, el tamaño de la palabra es múltiplo del byte, ya que de esta forma el acceso a la misma puede hacerse desde uno al ancho máximo del bus de datos, ahorrando en muchos casos tiempo. Así tendremos palabras de 8, 16, 32, 64 bits y capacidades de siempre medidas en potencia de dos: 8, 16, 64, 128 que...etc(siendo 1K igual a 1025).



    · Tiempo de Acceso. Es el tiempo que invierte el ordenador desde que se emite la orden de lectura-escritura, hasta que finaliza la misma. Este tiempo es muy pequeño, y de el depende la potencia del ordenado. Son típicos tiempos del orden de microsegundos e incluso del orden de 2 a 10 nanosegundos.



    · El tamaño de la celda define su anchura de palabra, y viene fijado por el ancho del registro de información de memoria. Si la palabra interna es superior a la de la memoria, necesitara hacer más de un acceso para conseguir toda la información.
     
  6. Dimension-X

    Dimension-X Nuevo Miembro Miembro

    Tener una buena memoria.



    Aunque las modernas CPU tienen una preocupación primordial en mantener sus pipelines de procesos llenos de instrucciones y datos, esto se esta convirtiendo cada vez en una tarea mas complicada debido a que, si bien el rendimiento de la CPU se duplica cada 18 ó 24 meses, la velocidad de los chips DRAM que constituyen la memoria principal sólo se incrementan en un pequeño porcentaje.



    La memoria caché de alta velocidad que actúa como buffer entre la memoria principal y la CPU constituyen un factor cada vez mas importante en el rendimiento total.



    Es por esta razón que todos los ordenadores se organizan alrededor de esta jerarquía de almacenamiento, con los elementos mas rápidos en la parte de arriba y los mas lentos, menos costosos y mas densos en la parte de abajo.



    En lo alto de esta jerarquía se encuentran los registros, de los que habitualmente hay 64 (32 para enteros y 32 para coma flotante) para un total de 256 bytes de una CPU corriente. La caché constituye el siguiente nivel de la jerarquía: el tamaño habitual oscila entre los 16 KB y los 256 KB, y el tiempo de acceso es del orden de unos pocos ciclos de CPU. Con la llegada de las caché en el microprocesador, muchas maquinas cuentan ahora con un segundo nivel de caché, fuera del microprocesador.



    La jerarquía de almacenamiento funciona porque los programas no acceden a la memoria al azar. Si un programa accede a una palabra de la memoria, hay muchas probabilidades de que en un futuro cercano acceda a la misma palabra. Asimismo hay muchas posibilidades de que en un futuro cercano acceda a una palabra próxima a la que había accedido. Estas dos observaciones se conocen como los principios de localidad temporal y espacial.



    ----------------------------------------------------------------------------------------------



    Diseño de la caché



    Lo primero que hay que decidir en un diseño de caché es la línea de caché donde se debería almacenar un bloque cargado desde memoria. Pensemos en un sistema que use direccionamiento de 32 bits. Si el tamaño de un bloque es de 64(2 elevado a 6)bytes, los 6 bits de la parte inferior de la dirección -el offset- determina a que byte de dentro del bloque se esta direccionando. Si la caché consta de 1024 de estas líneas de 64 bytes los siguientes 10 bits de la dirección determina en que línea esta colocado el bloque . Los 16 bits de la parte superior de la dirección -el tag- se guarda con al línea de la caché . Una caché mapeada directamente almacena un tag por línea en su array de tags.



    Por ejemplo una lectura la caché utiliza los bits centrales de la dirección como índice para su array de tags. El tag indicado se conforta luego con los 16 bits de la parte superior de la actual dirección. Si encajan, los datos que indican el ofsset se envían a la CPU.



    La ventaja que implica utilizar una cache directamente mapeada es que solamente se tiene que hacer una confrontación por acceso a la caché.



    El problema de una caché directamente mapeada es que si dos bloques a los que se accede frecuentemente mapean en la misma línea de caché, estarán todo el tiempo expulsándose mutuamente de la caché.



    El otro extremo en el diseño de caches es la caché completamente asociativa, en la que se puede colocar un bloque en cualquier línea de caché. En este caso, la dirección simplemente se divide en bits inferiores, lo que constituye el offset en la línea de caché y los bits superiores que forman el tag que se confronta con referencias superiores.



    En el caso de una caché asociativa, tiene que haber algún mecanismo para decidir en que línea se coloca el bloque. En teoría se sustituye el bloque de memoria menos utilizado últimamente LRU.



    Una caché completamente asociativa resuelve los problemas de direcciones en conflicto pero a costa de mucho hardware extra para comparar el tag con todas las líneas de caché. Entre las caches directamente mapeadas y las completamente asociativas es la caché asociativa por conjuntos. Las líneas se dividen en conjuntos y los bits centrales de la dirección determinan el conjunto en el que se colocan un bloque. Dentro de cada conjunto, la caché es completamente asociativa. Además de necesitar menos comparadores que una caché completamente asociativa, la de tipo asociativa por conjuntos también facilita la implementación de la política LRU. Por ejemplo, solo se precisa un bit para implementar una política LRU.



    ----------------------------------------------------------------------------------------------



    Ajustar la caché



    Las consecuencias mas fundamentales relativas a la caché para una aplicación son si la mayor parte de los datos sobre los que se opera encajaran en la caché y si los datos que se cargan incluyen información no utilizada. Si los datos encajan en la caché y ninguno de ellos es ajeno, su organización y el orden en el que se acceda a ellos no afectará de manera sustancial al rendimiento, mas tarde o mas temprano toda la información tiene que estar cargada.



    Optimización de la caché frente a optimización de instrucciones.

    Un error habitual que cometen los programadores consiste en optimizar un programa con la suposición de que todas las referencias irán a parar a la caché, pasando por alto el hecho de que un fallo de caché puede consumir tantos ciclos de reloj como una decena o mas de instrucciones.



    ----------------------------------------------------------------------------------------------



    Conflictos y asociatividad



    Dos direcciones que sólo difieran en la parte del tag mapearán para el mismo conjunto de caché, esto recibe el nombre de conflicto. Cuando se accede repetidamente a direcciones en conflicto y el numero de conjuntos supera la asociatividad de la caché la misma dirección generará repetidamente un fallo de caché, ya que las referencias en conflicto harán que se desaloje antes de que se pueda referenciar de nuevo.



    Esta es la razón por la que una caché asociativa bidireccional pueda resultar tan efectiva como una directamente mapeada que le duplique el tamaño.

    Virtual frente a física.



    Hasta ahora, se ha hablado de la dirección de un determinado item que está copiado en la caché o en la memoria. De hecho, los sistemas utilizan dos tipos de dirección, la virtual y la física, y dos tipos de caché, según el tipo de dirección que se utilice.



    Pero en realidad cada byte de RAM tiene una sola dirección. El sistema operativo y el hardware colaboran en la creación de este efecto al definir dos tipos de dirección la virtual y la física y hacerse cargo de la conversión entre ambas. Los programas utilizan direcciones virtuales, mientras que el controlador de memoria de sistema exige direcciones físicas.

    Cachés direccionadas virtualmente.



    El uso de una caché direccionada virtualmente presenta varias ventajas. El controlador de caché no tiene que esperar a que finalice la conversión de dirección para poder consultar la dirección en la caché, lo que significa que la caché pueda proporcionar datos mas rápidamente. Asimismo, debido a que se esta utilizando las direcciones virtuales del programa, ejecuciones idénticas de un programa conducirán a idénticos modelos de uso de caché.



    Caches direccionadas físicamente .



    Si bien las caches direccionadas físicamente padecen de variaciones de rendimiento, presentan dos ventajas claras.



    PRIMERA.- Si se esta diseñando una caché fuera del chip para una CPU que tenga una unidad MNU (unidad de gestión de memoria) en el chip, la dirección que trasmite la CPU ya se ha convertido y la única opción es una caché direccionada físicamente.



    SEGUNDA.- Debido a que todas las direcciones son para un único espacio de dirección física en vez de para un espacio diferente de dirección virtual para cada aplicación, se pueden dejar los datos en la caché cuando el sistema operativo transfiere el control de una aplicación a otra. Con una caché direccionada virtualmente hay que limpiar los datos cada vez que tiene lugar una transferencia de control o una conmutación de contexto.
     
  7. Dimension-X

    Dimension-X Nuevo Miembro Miembro

    La memoria FLASH



    Las memorias Flash se han convertido en algo importante para aquellos productos que necesitan una pequeña cantidad de almacenamiento no volátil para datos y programas.



    La mayoría de las aplicaciones actuales de memoria Flash en ordenadores, se centran en sustituir las EPROM y EEPROM (almacenamiento de código) en vez de almacenar datos.



    Las memorias Flash quizás continúen utilizándose como almacén de BIOS, pero es muy probable que el empujón tan esperado de dichas memorias como almacenamiento de datos no provenga de los ordenadores.



    Afortunadamente para los fabricantes de memoria Flash, la demanda ha superado a la oferta y todos han dispuesto un mercado seguro, con absoluta independencia de la tecnología empleada.

    Como funciona la Memoria Flash



    Las celdas de memoria Flash pueden gastarse al cabo de un determinado número de ciclos de escritura, que se cifran generalmente entre 100.000 y un millón, dependiendo del diseño de la celda y de la precisión del proceso de fabricación. El principal mecanismo de destrucción lo constituye el daño acumulativo que se produce sobre la puerta de flotación de la celda, debido a los elevados voltajes empleados, de forma repetitiva, para borrar la celda, o la capa de oxido se rompe o los electrones se acumulan en la puerta de flotación. Los fabricantes de memoria Flash tienen en cuenta este fenómeno e incorporan celdas adicionales que pueden sustituir a las gastadas. Además, muchos fabricantes de sistemas de memoria Flash destinados al almacenamiento de datos utilizan una técnica denominada de nivelación que consiste en desplazar los datos alrededor del chip para que cada celda se "gaste" lo más uniformemente posible.



    Otra consideración a tener en cuenta es que se tarda mucho más en borrar una celda de la memoria Flash que en borrar un bit de datos del disco duro.



    Curiosamente, la operación de borrado no se efectúa a la velocidad que se suele atribuir a la palabra FLASH, sino que tarda mucho. Esto se debe a que el voltaje relativamente elevado que se necesita, supone una gran cantidad de corriente. Dado que existen limitaciones acerca de la cantidad de corriente que pueden manejar los chips, también existen limitaciones en cuanto al numero de celdas que se pueden borrar de una sola vez. Esta es la razón por la que los procesos de borrado se efectúan por grupos de celda.



    Una celda de una memoria Flash es como un transistor convencional pero con una puerta adicional. Entre la puerta de control y la fuente y el drenaje existe una segunda puerta, denominada de flotación que sirve a modo de mecanismo de carga.



    La memoria Flash es todavía tan nueva que no existe un único método de fabricación. Los fabricantes utilizan unos doce enfoques diferentes para fabricar y organizar las celdas de memoria Flash sobre una oblea de silicio.



    NOR constituye la tecnología líder actual e Intel es su fabricante principal. Organiza las celdas de memoria en paralelo, con el drenaje de cada celda conectado a una línea de bits, agrupándose varias líneas de bits para constituir un grupo de E/S. NOR proporciona acceso aleatorio más rápido, pero su estructura en paralelo reduce la densidad de la memoria.



    NAND es una tecnología utilizada por National Semiconductor, Samsung y otros fabricantes. Conecta las celdas en serie, con una puerta de selección para cada puerta de control inferior y conexiones en serie con las puertas de control de este grupo de puertas. NAND ofrece una velocidad de acceso aleatorio menos elevada, pero permite densidades mayores gracias a sus celdas de tamaño más pequeño.
     
Estado del tema:
No está abierto para más respuestas.

Comparte esta página