Menú
Es gratis
registro
casa  /  Multimedia/ Memoria asociativa humana. Memoria con acceso asociativo

Memoria asociativa de una persona. Memoria con acceso asociativo

EN memoria asociativa los elementos no se seleccionan por dirección, sino por contenido. Expliquemos el último concepto con más detalle. Para la memoria con organización de direcciones, se introdujo el concepto unidad mínima direccionable(MAE) como un dato que tiene una dirección individual. Introduzcamos un concepto similar para memoria asociativa, y seremos esta unidad mínima de almacenamiento en memoria asociativa llamada cadena de memoria asociativa(Correa). Cada StrAP contiene dos campos: un campo de etiqueta y un campo de datos. Una solicitud de lectura a la memoria asociativa se puede expresar en palabras de la siguiente manera: seleccione una línea (líneas) cuya etiqueta sea (son) igual al valor dado.

En particular, uno de los tres resultados es posible con una consulta de este tipo:

  1. hay exactamente una línea con la etiqueta dada;
  2. hay varias líneas con la etiqueta dada;
  3. no hay ninguna fila con la etiqueta dada.

La búsqueda de un registro por atributo es una actividad típica de los accesos a bases de datos, y la búsqueda en la base de datos suele ser una búsqueda asociativa. Para realizar dicha búsqueda, debe revisar todas las entradas y comparar la etiqueta dada con la etiqueta de cada entrada. Esto también se puede hacer cuando se utiliza una memoria direccionable ordinaria para almacenar registros (y está claro que esto requerirá mucho tiempo, ¡en proporción a la cantidad de registros almacenados!). Sobre memoria asociativa digamos cuando el hardware admite la obtención asociativa de datos de la memoria. Al escribir en la memoria asociativa, el elemento de datos se coloca en el StrAP junto con la etiqueta inherente a este elemento. Para hacer esto, puede usar cualquier CORREA libre. Considere los tipos de organización estructural de la memoria caché o las formas de mostrar memoria de acceso aleatorio pagar.

Caché totalmente asociativo

El esquema de una memoria caché totalmente asociativa se muestra en la figura (consulte la figura a continuación).

Describamos el algoritmo de funcionamiento del sistema con memoria caché. Al comienzo de la operación, la memoria caché está vacía. Al ejecutar el primer comando durante la búsqueda, su código, así como algunos bytes vecinos más código de programa, - se transferirá (lentamente) a una de las líneas de caché y, al mismo tiempo, la parte superior de la dirección se escribirá en la etiqueta correspondiente. Así es como se llena la línea de caché.

Si las próximas recuperaciones son posibles desde esta sección, se realizarán desde el CASH (rápido) - "CASH hit". si resulta que elemento deseado no en el caché, - "falta de caché". En este caso, se accede a la RAM (lentamente) y la siguiente línea de caché se llena simultáneamente.

Diagrama de caché totalmente asociativo

El acceso al caché es el siguiente. Después de que se forma la dirección de ejecución, sus bits altos, que forman la etiqueta, se comparan en hardware (rápidamente) y simultáneamente con las etiquetas de todas las líneas de caché. En este caso, solo son posibles dos situaciones de las tres enumeradas anteriormente: todas las comparaciones darán un resultado negativo (falta de CASH) o se registrará un resultado positivo de la comparación para exactamente una fila (golpe de CASH).

Al leer, si se corrige un acierto de CACHE, los bits inferiores de la dirección determinan la posición en la línea de caché desde la que se seleccionan los bytes, y el tipo de operación determina el número de bytes. Obviamente, si la longitud de un elemento de datos excede un byte, entonces las situaciones son posibles cuando este elemento (en partes) se encuentra en dos (o más) líneas de caché diferentes, entonces el tiempo para recuperar dicho elemento aumentará. Esto se puede contrarrestar alineando operandos e instrucciones a lo largo de los límites de la línea de caché, lo que se tiene en cuenta al desarrollar traductores optimizados o al optimizar manualmente el código.

Si se produce un error de caché y no hay líneas libres en el caché, debe reemplazar una línea del caché con otra línea.

El objetivo principal de la estrategia de reemplazo es mantener en caché las líneas a las que es más probable que se acceda en un futuro cercano y reemplazar las líneas a las que se accederá en un tiempo más lejano o no se accederá en absoluto. Obviamente, el algoritmo óptimo será aquel que reemplace la línea a la que se accederá más tarde en el futuro que cualquier otra línea de caché.

Desafortunadamente, tal predicción es prácticamente irrealizable, y uno tiene que recurrir a algoritmos que son inferiores al óptimo. Independientemente del algoritmo de reemplazo utilizado, debe implementarse en hardware para lograr una alta velocidad.

Entre los muchos algoritmos de sustitución posibles, cuatro son los más comunes, considerados en orden decreciente de su eficiencia relativa. Cualquiera de estos se puede utilizar en una memoria caché totalmente asociativa.

El más eficiente es el algoritmo de reemplazo basado en el uso más antiguo ( LRU - Utilizado menos recientemente ), que reemplaza la línea de caché a la que no se ha accedido durante más tiempo. Los estudios han demostrado que el algoritmo LRU que "mira" hacia atrás funciona bastante bien en comparación con el algoritmo óptimo que "mira" hacia adelante.

Los más conocidos son dos métodos de implementación de hardware de este algoritmo. En el primero, se asocia un contador a cada línea de caché. Uno se agrega al contenido de todos los contadores a ciertos intervalos. Cuando se accede a una cadena, su contador se restablece a cero. Así, el número mayor estará en el contador de la fila a la que no se ha accedido durante más tiempo, y esta fila es la primera candidata a reemplazo.

El segundo método se implementa utilizando una cola, donde las referencias a estas líneas se ingresan en el orden en que se llenan las líneas de caché. Cada vez que se accede a una cadena, su referencia se mueve al final de la cola. Como resultado, el primero en la cola cada vez es una referencia a la cadena, a la que no se ha accedido durante más tiempo. Es esta línea la que se reemplaza en primer lugar.

Otro posible algoritmo de reemplazo es el algoritmo primero en entrar, primero en salir ( FIFO-primero en entrar, primero en salir ). Esto reemplaza la línea que ha estado en el caché por más tiempo. El algoritmo se implementa fácilmente usando la cola discutida anteriormente, con la única diferencia de que después de acceder a la cadena, la posición del enlace correspondiente en la cola no cambia.

Otro algoritmo consiste en reemplazar la cadena utilizada con menos frecuencia (LFU - Least Frequently Used). Se reemplaza la línea en el caché a la que se ha accedido menos. El principio se puede poner en práctica asociando cada fila con un contador de visitas, a cuyo contenido se agrega uno después de cada visita. El principal contendiente para el reemplazo es la cadena cuyo contador contiene el número más pequeño.

El algoritmo más simple es una elección arbitraria de una cadena para reemplazar. La cadena de reemplazo se elige al azar. Esto se puede implementar, por ejemplo, mediante el uso de un contador cuyo contenido se incrementa en uno con cada pulso de reloj, independientemente de si hubo un acierto o un error. El valor en el contador determina la cadena que se reemplazará.

Además de la etiqueta y los bytes de datos, la línea de caché puede contener campos de servicio adicionales, entre los cuales, en primer lugar, el bit de validez V (de válido - válido) y el bit de modificación M (de modificar - cambiar, modificar) deben ser señalado. Cuando se llena la siguiente línea de caché, V se establece en el estado "válido" y M se establece en el estado "no modificado". Si el contenido de esta línea se cambió durante la ejecución del programa, el bit M se cambia, lo que indica que al reemplazar esta línea, su contenido debe volver a escribirse en la RAM. Si por alguna razón una copia de un elemento de esta cadena almacenada en otro lugar (por ejemplo, en RAM) ha cambiado, se cambia el bit V. Al acceder a dicha cadena, se registrará una pérdida de caché (a pesar de que la etiqueta coincida con ), y la llamada será a la RAM principal. Además, el campo de servicio puede contener bits que admitan el algoritmo LRU.

Estimación del volumen del equipo

Cantidad típica de memoria caché en sistema moderno- 8 ... 1024 kb, y la longitud de la línea de caché es de 4 ... 32 bytes. Se realiza una evaluación adicional para un tamaño de caché de 256 KB y una longitud de línea de 32 bytes, lo cual es típico para sistemas con procesadores Pentium y PentiumPro. La longitud de la etiqueta es de 27 bits y el número de líneas en el caché será de 256K/ 32=8192. Esa es la cantidad de comparadores digitales de códigos de 27 bits que se requerirán para implementar la estructura anterior.

Una estimación aproximada del costo del equipo para construir un comparador digital da un valor de 10 transistores/bit, y el número total de transistores en el bloque comparador solo será igual a:

10*27*8192 = 2 211 840,

que es aproximadamente una vez y media menos que el número total de transistores en un chip Pentium. Por lo tanto, está claro que la estructura descrita de una memoria caché totalmente asociativa () solo se puede realizar con una pequeña cantidad de líneas en la memoria caché, es decir con una pequeña cantidad de caché (prácticamente no más de 32 ... 64 líneas). Un caché más grande se construye de acuerdo con una estructura diferente.

tabla de páginas multinivel requiere varios accesos a la memoria principal, por lo que lleva mucho tiempo. En algunos casos, tal retraso es inaceptable. El problema de la aceleración de búsqueda se resuelve a nivel de arquitectura informática.

Debido a la propiedad de la localidad, la mayoría de los programas acceden a una pequeña cantidad de páginas durante un período de tiempo, por lo que solo se usa activamente una pequeña parte de la tabla de páginas.

La solución natural al problema de la aceleración es proporcionar a una computadora un dispositivo de hardware para mapear páginas virtuales a páginas físicas sin acceder a la tabla de páginas, es decir, tener una memoria caché pequeña y rápida que almacene lo necesario en este momento parte de la tabla de páginas. Este dispositivo se llama memoria asociativa, a veces también se utiliza el término búfer de búsqueda de traducción (TLB).

Una entrada de tabla en memoria asociativa(una entrada) contiene información sobre una página virtual: sus atributos y el marco en el que se encuentra. Estos campos corresponden exactamente a los campos de la tabla de páginas.

Porque memoria asociativa contiene solo algunas de las entradas de la tabla de páginas, cada entrada en la TLB debe incluir un campo con un número pagina virtual. La memoria se llama asociativa, porque compara simultáneamente el número de los visualizados pagina virtual con el campo correspondiente en todas las filas de esta pequeña tabla. Es por eso esta especie la memoria es bastante cara. en línea, campo pagina virtual que coincidió con el valor deseado, se encuentra el número de marco de página. El número habitual de entradas en la TLB es de 8 a 4096. El aumento del número de entradas en memoria asociativa debe tener en cuenta factores como el tamaño de la memoria caché principal y el número de accesos a la memoria por instrucción.

Considere el funcionamiento del administrador de memoria en presencia memoria asociativa.

Al comienzo de la información de la pantalla pagina virtual en lo físico se encuentra en memoria asociativa. Si se encuentra la entrada requerida, todo está bien, excepto las violaciones de privilegios, cuando se niega la solicitud de acceso a la memoria.

Si la entrada deseada en memoria asociativa ausente, la visualización es a través de la tabla de páginas. Una de las entradas en el memoria asociativa entrada encontrada de la tabla de páginas. Aquí nos enfrentamos al problema tradicional de reemplazo de cualquier caché (es decir, cuál de las entradas en el caché debe cambiarse). Diseño memoria asociativa debe organizar los registros de tal manera que se pueda tomar una decisión sobre cuál de los registros antiguos debe eliminarse cuando se agregan nuevos.

El número de búsquedas exitosas de números de página en memoria asociativa en relación al número total de búsquedas se le llama ratio de aciertos (coincidencia) (proporción, ratio). A veces también se utiliza el término porcentaje de aciertos de caché. Entonces, la proporción de aciertos es la parte de los enlaces que se pueden hacer usando memoria asociativa. Hacer referencia a las mismas páginas aumenta la tasa de aciertos. Cuanto mayor sea la proporción de aciertos, menor será el tiempo promedio de acceso a los datos en la RAM.

Suponga, por ejemplo, que se necesitan 100 ns para determinar la dirección en caso de que se pierda la memoria caché a través de la tabla de páginas, y para determinar la dirección en caso de que se produzca una coincidencia en la memoria caché. memoria asociativa– 20 ns. Con una tasa de aciertos del 90 %, el tiempo medio de resolución de direcciones es 0,9x20+0,1x100 = 28 ns.

El rendimiento bastante aceptable de los sistemas operativos modernos demuestra la efectividad del uso memoria asociativa. Alta probabilidad de encontrar datos en memoria asociativa asociado a la presencia de propiedades objetivas de los datos: localidad espacial y temporal.

Es necesario prestar atención al siguiente hecho. Al cambiar el contexto de los procesos, debe asegurarse de que el nuevo proceso "no vea" en memoria asociativa información relacionada con el proceso anterior, como borrarlo. Entonces el uso memoria asociativa aumenta el tiempo de cambio de contexto.

Considerado de dos niveles ( memoria asociativa+ tabla de páginas) el esquema de traducción de direcciones es un buen ejemplo jerarquía de memoria basada en el uso del principio de localidad, como se discutió en la introducción a la lección anterior.

tabla de paginas invertida

A pesar de la organización por niveles, almacenar varias tablas de páginas grandes sigue siendo un problema. Su valor es especialmente relevante para arquitecturas de 64 bits, donde el número de páginas virtuales es muy elevado. La solución es usar tabla de paginas invertida(tabla de páginas invertida). Este enfoque se utiliza en máquinas PowerPC, algunas estaciones de trabajo Hewlett-Packard, IBM RT, IBM AS/400 y varias otras.

Esta tabla contiene una entrada para cada marco de página. memoria física. Es esencial que una tabla sea suficiente para todos los procesos. Por lo tanto, se requiere una parte fija de la memoria principal para almacenar la función de mapeo, independientemente del bitness de la arquitectura, el tamaño y la cantidad de procesos.

A pesar de ahorrar RAM, el uso de mesa invertida tiene una desventaja significativa: las entradas en él (como en memoria asociativa) no están ordenados en orden ascendente de números de página virtuales, lo que complica la traducción de direcciones. Una forma de resolver este problema es usar una tabla hash. direcciones virtuales. Al mismo tiempo, parte dirección virtual, que es el número de página, se asigna a una tabla hash mediante una función hash. Cada página de memoria física aquí corresponde a una entrada en la tabla hash y tabla de paginas invertida. direcciones virtuales, que tienen el mismo valor hash, se concatenan entre sí. Normalmente, la longitud de la cadena no supera las dos entradas.

Tamaño de página

Los desarrolladores de sistemas operativos para máquinas existentes rara vez tienen la capacidad de influir en el tamaño de la página. Sin embargo, por otra vez computadoras creadas la decisión sobre el tamaño de página óptimo es relevante. Como era de esperar, no hay un mejor tamaño. Más bien, hay un conjunto de factores que afectan el tamaño. Por lo general, el tamaño de la página es una potencia de dos de 29 a 214 bytes.

memoria asociativa

Nombre del parámetro Sentido
Tema del artículo: memoria asociativa
Rúbrica (categoría temática) Ordenadores

Tabla de páginas

La organización de la tabla de páginas es uno de los elementos clave de los mecanismos de paginación y transformaciones de página-segmento. Consideremos la estructura de la tabla de páginas con más detalle.

Entonces, una dirección virtual consta de un número de página virtual (bits de orden superior) y un desplazamiento (bits de orden inferior). El número de página virtual se utiliza como índice en la tabla de páginas para encontrar la entrada de la página virtual. A partir de esta entrada en la tabla de páginas, se encuentra el número de marco (número de marco de página), luego se agrega el desplazamiento y se forma la dirección física. Además, la entrada de la tabla de páginas contiene información sobre los atributos de la página, como los bits de seguridad.

El principal problema para la implementación eficiente de la tabla de páginas es el gran tamaño de los espacios de direcciones virtuales. computadoras modernas, que generalmente están determinados por la profundidad de bits de la arquitectura del procesador. Los más comunes hoy en día son los procesadores de 32 bits que le permiten crear espacios de direcciones virtuales de este tamaño de 4 GB (para computadoras de 64 bits, este valor es 2**64b).

Calculemos el tamaño aproximado de la tabla de páginas. En un espacio de direcciones de 32 bits con un tamaño de página de 4K (Intel), obtenemos 1 millón de páginas, y aún más en uno de 64 bits. Que. la tabla debe tener 1 millón de líneas (entrada) y la entrada en la línea consta de varios bytes. Tenga en cuenta que cada proceso necesita su propia tabla de páginas (y en el caso de un esquema de página de segmento, una para cada segmento). Entonces, en este caso, la tabla de páginas debe ser demasiado grande.

Sin embargo, la visualización debe ser rápida. El mapeo debe ser rápido, ya que se realiza en cada acceso a la memoria, ĸᴏᴛᴏᴩᴏᴇ ocurre en casi todas las instrucciones de la máquina. Este problema se soluciona principalmente implementando memoria asociativa.

Para evitar la extrema importancia de tener una tabla enorme en la memoria todo el tiempo y mantener solo unos pocos fragmentos de ella (esto es posible nuevamente debido a la propiedad de localidad), muchas computadoras usan una tabla de páginas de varios niveles.

Considere un ejemplo modelo (Figura 10.4). Suponga que una dirección de 32 bits se divide en un campo Ptr1 de 10 bits, un campo Ptr2 de 10 bits y un desplazamiento de 12 bits. 12 bits de desplazamiento le permiten localizar un byte dentro de una página de 4K (2**12), y en total tenemos 2**20 páginas. Como puede verse en la fig. 9.4 1024 filas en una tabla nivel superior usando el campo Ptr1 se refieren a 1024 tablas del segundo nivel, cada una de las cuales también contiene 1024 filas. Usando el campo Ptr2, cada fila de la tabla de segundo nivel apunta a una página específica. El objetivo de tal organización es evitar mantener todas las tablas de segundo nivel (y hay 1024 de ellas) en la memoria todo el tiempo. Considere un ejemplo con números redondos. Digamos que un proceso necesita 12M de memoria: 4M en la parte inferior para el código, 4M en la parte inferior para los datos y 4M en la parte superior de la memoria para la pila. Entre la parte inferior de la pila y la parte superior de los datos hay un espacio gigantesco de 4Gb-12Mb, ĸᴏᴛᴏᴩᴏᴇ no se usa. Para este caso, solo se necesita 1 tabla de nivel superior y 3 tablas de segundo nivel. Este enfoque se generaliza naturalmente a tres o más niveles de la tabla.

Considere una de las entradas de la tabla de páginas. Su tamaño varía de un sistema a otro, pero 32 bits es el caso más común. El campo más importante es el número de cuadro. El propósito de la paginación es localizar este valor. A continuación, el bit de presencia, bits de protección (por ejemplo, 0 - lectura/escritura, 1 - sólo lectura...), bits de modificación (si se escribió) y bits de enlace que ayudan a resaltar páginas poco utilizadas, bits que permiten almacenamiento en caché Tenga en cuenta que las direcciones de página en el disco no forman parte de la tabla de páginas.

Figura 10.4 - Un ejemplo de una tabla de páginas de dos niveles.

¿Cómo afecta la presencia de varios niveles al rendimiento del administrador de memoria? Si asumimos que cada nivel es una tabla separada en la memoria, la traducción de direcciones puede requerir varios accesos a la memoria.

El número de niveles en la tabla de páginas depende de la arquitectura particular. Puede dar ejemplos de la implementación de paginación de un solo nivel (DEC PDP-11), dos niveles (Intel, DEC VAX), tres niveles (Sun SPARC, DEC Alpha), así como paginación con un número específico de niveles (Motorola). El funcionamiento del procesador RISC MIPS R2000 se lleva a cabo sin ninguna tabla de páginas. Aquí, la búsqueda de la página deseada, si esta página no está en la memoria asociativa, debe ser asumida por el sistema operativo (la llamada paginación de nivel cero).

La búsqueda de la página deseada en una tabla de páginas de varios niveles, que requiere varios accesos a la memoria principal en el camino para convertir una dirección virtual en una física, lleva mucho tiempo. En algunas circunstancias, tal retraso es inaceptable. Este problema también encuentra solución a nivel de arquitectura informática.

Debido a la propiedad de la localidad, la mayoría de los programas se refieren a una pequeña cantidad de páginas durante un período de tiempo, por lo que solo una pequeña parte de la tabla de páginas está ocupada.

La solución natural es proporcionar a una computadora un dispositivo de hardware para mapear páginas virtuales a páginas físicas sin hacer referencia a la tabla de páginas, es decir, tener una memoria caché pequeña y rápida que almacene la parte de la tabla de páginas que se necesita actualmente. Este dispositivo generalmente se llama memoria asociativa, a veces también se usa el término registros asociativos (a veces búfer de búsqueda de traducción (TLB)).

Una entrada en la tabla en la memoria asociativa contiene información sobre una página virtual, sus atributos y el marco en el que se encuentra. Estos campos corresponden exactamente a los campos de la tabla de páginas.

El mapeo de páginas virtuales almacenadas en la memoria asociativa es rápido, pero la memoria caché es costosa y tiene un tamaño limitado.
Alojado en ref.rf
Número de entradas en TLB de 8 a 2048

La memoria suele llamarse asociativa porque, a diferencia de la tabla de páginas, que está indexada por números de página virtuales, aquí el número de página virtual se compara simultáneamente con el campo correspondiente en todas las filas de esta pequeña tabla. Por esta razón, esta memoria es costosa. La línea cuyo campo de página virtual coincide con el valor de búsqueda contiene el número de marco de página.

Considere el funcionamiento del administrador de memoria en presencia de memoria asociativa. Primero, busca una página virtual en la memoria asociativa. Si se encuentra la página, todo está bien, excepto en casos de violaciones de privilegios, cuando se niega la solicitud de acceso a la memoria.

Si la página no está en la memoria asociativa, se busca en la tabla de páginas. Una de las páginas de la memoria asociativa se sustituye por la página encontrada. En la tabla, dicha página cargada se marca con un bit de modificación, que se tendrá en cuenta la próxima vez que se cargue la memoria asociativa desde la tabla de páginas.

El porcentaje de veces que un número de página está en la memoria asociativa se conoce comúnmente como índice de aciertos (coincidencia) (proporción, proporción). Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, proporción de aciertos - parte de los enlaces que deben hacerse usando memoria asociativa. Hacer referencia a las mismas páginas aumenta la tasa de aciertos.

Por ejemplo, suponga que 100 ns son críticos para el acceso a la tabla de páginas y 20 ns para el acceso a la memoria asociativa. Con una tasa de aciertos del 90%, el tiempo de acceso medio es 0,9*20+0,1*100 = 28 ns.

El rendimiento bastante aceptable de los sistemas operativos modernos demuestra la eficiencia del uso de la memoria asociativa. El alto valor de la probabilidad de encontrar datos en la memoria asociativa está asociado con la presencia de propiedades objetivas de los datos: localidad espacial y temporal.

Es necesario prestar atención al siguiente hecho. Al cambiar de proceso, es necesario asegurarse de que el nuevo proceso no vea información relacionada con el proceso anterior en la memoria asociativa, por ejemplo, borrarlo. Además, el uso de la memoria asociativa aumenta el tiempo de cambio de contexto.

Memoria asociativa - concepto y tipos. Clasificación y características de la categoría "Memoria asociativa" 2017, 2018.

En los experimentos asociativos, se debe enfatizar especialmente un punto, a saber, que la condición necesaria para revelar un proceso asociativo confiable es la completa pasividad del sujeto, la máxima desconexión de su voluntad y pensamiento del flujo espontáneo de ideas. De lo contrario, en lugar de un proceso asociativo, obtenemos un proceso activamente determinado. Esta circunstancia debe ser especialmente destacada por cuanto el verdadero proceso asociativo es, en realidad, un proceso espontáneo que se desarrolla al margen de la actividad de una persona; es en esta capacidad que representa una de las etapas en el desarrollo de la memoria y una de las formas de su manifestación. En el caso de la memoria asociativa, estamos ante la memoria espontánea, un proceso mnemotécnico espontáneo que nada tiene que ver con la memoria arbitraria. En este sentido, la memoria asociativa, por supuesto, está más cerca de las formas primitivas de manifestación de la memoria descritas anteriormente que de sus formas específicamente humanas.

La espontaneidad caracteriza igualmente la memoria asociativa como en el momento memorización, es decir comete o retencion, así son los recuerdos, eso es reproducciones

El sujeto está siempre bajo la influencia de varias impresiones y, a menudo, estas impresiones surgen o desaparecen independientemente de su intención. Sin embargo, por lo general no desaparecen sin dejar rastro. Es cierto que estas impresiones no permanecen en la psique como experiencias conscientes durante mucho tiempo, pero en el sujeto mismo provocan ciertos cambios de personalidad. Y ahora, sobre la base de estos cambios, cuando se dan las condiciones apropiadas, cuando, por ejemplo, una de estas impresiones vuelve a actuar sobre el sujeto, éste reacciona de acuerdo con los cambios que se han producido en él, es decir, las experiencias correspondientes a este cambio reaparecen en su conciencia. Es así como se produce la reproducción de las representaciones, experimentadas por el sujeto como producto del impacto de impresiones espontáneas. Como vemos, la reproducción de estos últimos también se produce fuera de la intervención activa e intencional del sujeto.

A favor del hecho de que la memoria asociativa debe distinguirse claramente de la memoria arbitraria, también se evidencia por el hecho de que la reproducción de representaciones asociativas siempre ocurre solo bajo la influencia de una segunda experiencia: representación perceptiva. Para que ocurra una representación asociativa, es necesaria una representación o percepción irritante. Esta circunstancia caracteriza bastante bien a la memoria asociativa como una forma todavía baja y dependiente de acción de la memoria. EN En este sentido ella está bastante cerca de ser reconocida.

El curso del reconocimiento, como ya sabemos, procede de la siguiente manera: la percepción de N. siempre va acompañada de un sentimiento de familiaridad. Reconocí a N., lo vi. Sin embargo, si a esto se le suma alguna otra representación, por ejemplo vi a N. allí y allá (imagen de un lugar) o estaba con tal o cual sombrero (imagen de un sombrero), entonces ya estamos ante un asociativo la memoria, es decir, la percepción de N. provoca la reproducción de las representaciones. En este sentido, la diferencia entre el reconocimiento y la memoria asociativa reside únicamente en que en el caso del reconocimiento el pasado cobra vida en la percepción misma, sin ir más allá de ella, mientras que en la memoria asociativa ese pasado no se da en la forma de toda percepción anterior, sino que surge de ella una imagen que se vuelve a dar, pero ya en forma de representación. Más adelante veremos que en una etapa superior de desarrollo, no siempre se necesita un estímulo para la reproducción de las representaciones de la memoria. No sólo hay memorización involuntaria, sino también recuerdo voluntario.

Maneras de organizar la memoria.

Nombre del parámetro Sentido
Tema del artículo: Maneras de organizar la memoria.
Rúbrica (categoría temática) Ordenadores

Funcionalmente, una memoria de cualquier tipo siempre consta de una matriz de almacenamiento que almacena información y bloques auxiliares muy complejos que sirven para buscar en la matriz, escribir y leer (y, si es necesario, regenerar).

La matriz de almacenamiento (MS) consta de una pluralidad de elementos de almacenamiento (SE) idénticos. Todos los SE están organizados en celdas, cada una de las cuales está diseñada para almacenar una unidad de información en forma de código binario, cuyo número de bits está determinado por el ancho de la muestra. La forma en que se organiza la memoria depende de los métodos de ubicación y búsqueda de información en el SM. Sobre esta base, se distinguen la memoria de dirección, asociativa y de pila.

MEMORIA DE DIRECCIONES

En la memoria con organización de direcciones, la ubicación y búsqueda de información en el SM se basa en el uso de la dirección de almacenamiento de la unidad de información, que llamaremos más adelante por brevedad. palabra. La dirección es el número de la celda SM en la que se encuentra esta palabra. Al escribir (leer) una palabra al SM, el comando que inicia esta operación debe indicar la dirección (número) de la celda por la cual es necesario escribir (leer).

En la fig. 5.2 muestra una estructura generalizada de la memoria de direcciones.

El ciclo de acceso a la memoria es inicializado por la señal de "Acceso" que llega a la TCU. La parte general del ciclo de acceso incluye la recepción en RgA desde el bus de direcciones (SHA) de la dirección de la dirección y la recepción en la TCU de la señal de control "Operación" indicando el tipo de operación solicitada (lectura o escritura) .

Leer. BAW descifra la dirección y envía una señal que resalta la celda 3M especificada por la dirección. En el caso general, el BAS también puede enviar señales a una celda de memoria dedicada que configura las celdas GE para escritura o lectura. Después de eso, la palabra escrita en la celda es leída por los amplificadores del BUS y transmitida al RGI. Además, en la memoria con lectura destructiva, la información se regenera escribiendo una palabra desde el RgI a través del BUZ a la misma celda SM. La operación de lectura se completa emitiendo una palabra desde el RGI al bus de información de salida SHI out.

Registro. Además de la parte general anterior del ciclo de acceso, la palabra escrita se recibe desde el bus de entrada SHI en RGI. El registro en sí generalmente consta de dos operaciones: borrar la celda y el registro en sí. Para hacer esto, el BAS primero selecciona y borra la celda especificada por la dirección en PrA. Limpiar la celda ZM (llevar a el estado inicial) se puede hacer de diferentes maneras. En particular, en una memoria con lectura destructiva, la limpieza se puede hacer mediante una señal para leer una palabra en una celda cuando el BUS está bloqueado (para que la información no ingrese al RGI). A continuación, se escribe una nueva palabra en la celda seleccionada.

La necesidad de la operación de limpieza de la celda antes de la escritura, así como la operación de regeneración de la información durante la lectura, está determinada por el tipo de SG utilizados, los métodos de control y las características de la estructura electrónica de la memoria LSI; por lo tanto, estas operaciones puede estar ausente en las memorias de semiconductores.

La TCU genera las secuencias necesarias de señales de control que inician el funcionamiento de los nodos de memoria individuales. Debe tenerse en cuenta que la TCU debe ser un dispositivo muy complejo (una especie de controlador de control con su propia memoria caché), que le da a la memoria LSI en su conjunto propiedades especiales de consumo, como multipuerto, salida de información canalizada, etc. .

MEMORIA ASOCIATIVA

En este tipo de memoria, la búsqueda de información no se da por dirección, sino por su contenido. En este caso, el contenido de la información se suele entender no como la carga semántica de la palabra almacenada en la celda de memoria, sino como el contenido del GE de la celda de memoria, ᴛ.ᴇ. composición de bits de lo grabado palabra binaria. En este caso, la consulta asociativa (atributo) también es código binario con una determinada composición bit a bit. La búsqueda por un atributo asociativo ocurre en paralelo en el tiempo para todas las celdas SM y es una operación de comparación del contenido de los bits de registro de atributo con el contenido de los bits correspondientes de las celdas de memoria. Para organizar dicha búsqueda, todos los EP SM están equipados con procesadores de un solo bit, en relación con esto, en algunos casos, este tipo de memoria se considera un sistema multiprocesador.

La memoria de gran capacidad totalmente asociativa es un dispositivo muy costoso, por lo tanto, para reducir su costo, la cantidad de procesadores de un solo bit se reduce a uno por celda de memoria. En este caso, la comparación de la consulta asociativa con los contenidos de las celdas de memoria se realiza secuencialmente para dígitos individuales, paralelo en el tiempo para todas las celdas SM.

Con grandes cantidades de memoria en ciertas clases de tareas, la búsqueda asociativa acelera significativamente el procesamiento de datos y reduce la probabilidad de fallas en la computadora. Al mismo tiempo, las memorias asociativas con bloques de circuitos combinacionales correspondientes permiten realizar operaciones lógicas bastante complejas en la memoria: buscar el número máximo o mínimo en una matriz, buscar palabras encerradas en ciertos límites, ordenar una matriz, etc.

Cabe señalar que una búsqueda asociativa también se puede implementar en una computadora con una memoria de dirección convencional, llamando secuencialmente las palabras escritas en las celdas de memoria al procesador y comparándolas con alguna característica asociativa (plantilla). Al mismo tiempo, con grandes cantidades de memoria, se dedicará mucho tiempo a esto. Al utilizar la memoria asociativa, es posible, sin leer palabras de la RAM al procesador, determinar el número de palabras correspondientes a una u otra consulta asociativa en una llamada. Esto permite en grandes bases de datos implementar muy rápidamente una consulta como: cuántos vecinos de la región no presentaron declaración de renta, etc.

En algunas computadoras especializadas, el OP o su parte está construido de tal manera que permite implementar búsquedas de información tanto asociativas como dirigidas.

Simplificado esquema estructural la memoria asociativa, en la que todos los ME SM están equipados con procesadores de un solo bit, se muestra en la fig. 5.3.

Consideremos primero la operación llamada control de asociación. Esta operación es común a las operaciones de lectura y escritura, y también tiene un valor independiente.

Una solicitud asociativa de n bits, ᴛ.ᴇ, ingresa al RGAP a través del bus de información de entrada. se rellenan los dígitos del 0 al n-1. Al mismo tiempo, el código de máscara de búsqueda ingresa a RgM, mientras que el bit n de RgM se establece en 0. La búsqueda asociativa se realiza solo para el conjunto de bits RgAP, que corresponden a 1 en RgM (bits RgAP sin máscara). Es importante señalar que para las palabras en las que los dígitos de los dígitos coincidieron con los dígitos no enmascarados de PrAP, el CS establece 1 para los dígitos correspondientes de PrCv y 0 para los dígitos restantes.

El esquema combinacional para generar el resultado de la inversión asociativa del FS forma al menos tres señales de la palabra formada en RgSv:

A 0 - la ausencia en el SM de palabras que satisfacen el atributo asociativo;

A 1 - la presencia de una de esas palabras;

A 2 - la presencia de más de una palabra.

También son posibles otras operaciones sobre el contenido de PgSv, por ejemplo, contar el número de unidades, ᴛ.ᴇ. contar palabras en la memoria que satisfacen una consulta asociativa, etc.

La formación de los contenidos de RgSv y un 0, un 1, un 2 de acuerdo con los contenidos de RgAP, RgM, ZM se suele denominar operación de control de asociación.

Leer. En primer lugar, la asociación se controla sobre la base de RgAP.

A 0 = 1 - la lectura se cancela por falta de la información requerida;

A 1 \u003d 1: la palabra encontrada se lee en el RGI, luego de lo cual se envía a la salida SHI;

A 2 \u003d 1: se lee una palabra que tiene, por ejemplo, el número más pequeño entre las celdas marcadas con 1 en RgSv, después de lo cual se emite a la salida SHI.

Registro. Primero, se encuentra una celda libre (asumimos que 0 está escrito en el bit ocupado de una celda libre). Para ello se realiza el control de asociación en PgAP=111...10 y PgM=000...01, ᴛ.ᴇ. El dígito n de RgAP se establece en 0 y el dígito n de RgM se establece en 1. En este caso, la celda libre se marca como 1 en RgSv. Para grabar, se selecciona una celda libre, por ejemplo, con el número más pequeño. Contiene la palabra recibida de SHI en RGI.

Cabe señalar que este diagrama no muestra los bloques BUP, BUS, BUS, que se encuentran en dispositivos reales. Al mismo tiempo, para construir una memoria asociativa, se requieren elementos de almacenamiento que puedan leerse sin destruirse.

MEMORIA DE APILAMIENTO (ALMACENAR)

La memoria de pila, como la memoria asociativa, no se aborda. La memoria de pila debe organizarse tanto en hardware como en una matriz regular de memoria de direcciones.

En el caso de una implementación de hardware, las celdas de memoria de la pila forman una matriz unidimensional en la que las celdas vecinas están conectadas entre sí mediante circuitos de bits de transmisión de palabras (Fig. 5.4). En este caso, son posibles dos tipos de dispositivos (a, b), cuyos principios de funcionamiento son diferentes. Consideremos primero la estructura de la Fig. 5.4, ​​a.

La entrada de una nueva palabra recibida de SHI en se realiza en la celda superior (cero), mientras que todas las palabras registradas anteriormente (incluida la palabra en la celda 0) se desplazan hacia abajo a las celdas vecinas, cuyos números son uno más. La lectura solo es posible desde la celda de memoria superior (cero). El modo principal es lectura ϶ᴛᴏ con borrado. En este caso, todas las palabras restantes en la memoria se desplazan a las celdas vecinas con números más bajos. En tal memoria, se implementa la siguiente regla: último en entrar primero en salir. Las pilas de este tipo se denominan pilas LIFO (Last In - First Out).

En algunos casos, los dispositivos de memoria de pila también prevén la operación de simplemente leer una palabra de la celda 0 sin borrarla y desplazando el resto de las palabras. Cuando se usa la pila para almacenar los parámetros de inicialización de los controladores de cualquier dispositivo informático, generalmente es posible leer el contenido de cualquier celda de la pila sin eliminarla, ᴛ.ᴇ. leer contenido no solo celda 0.

Se dice que la primera palabra empujada a la pila está ubicada en fondo de la pila. Se dice que la última palabra enviada (a tiempo) a la pila está en parte superior de la pila. Por ejemplo, la celda N-1 es la parte inferior de la pila y la celda 0 es la parte superior.

Por lo general, la pila de hardware cuenta con un contador de pila, ChSt, que muestra el número total de palabras almacenadas en la memoria (CHSt = 0: la pila está vacía). Cuando la pila está llena, deshabilita más operaciones de escritura.

El principio de pila de la organización de la memoria se puede implementar no solo en dispositivos especialmente diseñados para este propósito. La organización de la pila de datos también es posible en la memoria de direcciones convencional con acceso arbitrario (pila de software). Para organizar la pila LIFO, en este caso, se necesita una celda de memoria (registro) más, en la que siempre se almacena la dirección de la parte superior de la pila y que comúnmente se denomina puntero de pila. Por lo general, uno de los registros internos del procesador se utiliza como puntero de pila. Además, se requiere el software apropiado. Los principios de la organización de la pila de datos en la memoria de direcciones convencional se ilustran en el diagrama de la fig. 5.5.

A diferencia de una pila de hardware, los datos colocados en una pila de software no se mueven cuando se escribe o lee un nuevo número. Cada nueva palabra se escribe en la celda de memoria que sigue en orden a aquella cuya dirección está contenida en el puntero de la pila. Después de escribir una nueva palabra, el puntero de la pila se incrementa en uno (consulte la figura 6.5). Por cierto, no son los datos los que se mueven en la pila de software, sino la parte superior de la pila. Cuando se lee una palabra de la pila, el proceso se invierte. La palabra se lee de la celda cuya dirección está en el puntero de la pila, después de lo cual el contenido del puntero de la pila se reduce en uno.

Si las palabras recién cargadas en la pila se colocan en celdas de memoria con direcciones que aumentan secuencialmente, la pila se llama directo. Si las direcciones disminuyen consecutivamente, entonces: al revés. En la mayoría de los casos, se utiliza una pila invertida, lo que se debe a las peculiaridades de la implementación de hardware de los contadores dentro del procesador.

¿Qué tan conveniente es esta forma de organización de la memoria? De cara al futuro, se puede notar que cualquier instrucción ejecutada en el procesador, en el caso general, debe contener un código de operación (COP), la dirección del primer y segundo operandos, y la dirección del resultado. Para ahorrar memoria y reducir el tiempo de ejecución de una instrucción de máquina por parte del procesador, es deseable reducir la longitud de la instrucción. El límite para esta reducción es la longitud del comando no abordado, ᴛ.ᴇ. solo COP. Son estas instrucciones las que son posibles con la organización de la pila de la memoria, ya que con la disposición correcta de los operandos en la pila, es suficiente recuperarlos secuencialmente y realizar las operaciones apropiadas sobre ellos.

Además de la memoria de pila del tipo LIFO discutida anteriormente, las computadoras usan memorias de pila de otro tipo que implementan la regla: primero en entrar primero en salir. Las pilas de este tipo se denominan pilas FIFO (primero en entrar, primero en salir). Dicha memoria de pila se usa ampliamente para organizar varios tipos de colas (comandos, datos, solicitudes, etc.). La estructura generalizada de la pila de hardware del tipo FIFO se muestra en la fig. 5.4b.

Como en el caso anterior, las celdas de memoria de la pila forman una matriz unidimensional en la que las celdas vecinas están conectadas entre sí mediante cadenas de bits de transmisión de palabras. La entrada de una nueva palabra recibida de SHI en se lleva a cabo en la celda superior (cero), después de lo cual se mueve inmediatamente hacia abajo y se escribe en la última celda vacía. Si la pila antes de escribir estaba vacía, la palabra pasa inmediatamente a la celda con el número N-1, ᴛ.ᴇ. al fondo de la pila. La lectura solo es posible desde la celda inferior numerada N-1 (la parte inferior de la pila). El modo principal es lectura ϶ᴛᴏ con borrado. En este caso, todas las palabras posteriores (grabadas) se desplazan a las celdas vecinas, cuyos números son uno más. Cuando la pila está llena, el contador (CHST) prohíbe más escrituras en la pila.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, a diferencia de la pila LIFO, la pila FIFO no mueve la parte inferior, sino la superior. Las palabras escritas en la pila FIFO se mueven gradualmente de arriba hacia abajo, desde donde se leen, ya que son extremadamente importantes, y la tasa de escritura y lectura está determinada por señales de control externas y no está relacionada entre sí.

La implementación de software de la pila FIFO no se considera en esta sección, ya que rara vez se usa en la práctica.

Modos de organización de la memoria - concepto y tipos. Clasificación y características de la categoría "Métodos de organización de la memoria" 2017, 2018.