ES2870516T3 - Proporcionar una gestión escalable de la caché de la memoria dinámica de acceso aleatorio (DRAM) mediante el uso de las cachés indicadoras de la caché DRAM - Google Patents

Proporcionar una gestión escalable de la caché de la memoria dinámica de acceso aleatorio (DRAM) mediante el uso de las cachés indicadoras de la caché DRAM Download PDF

Info

Publication number
ES2870516T3
ES2870516T3 ES17704933T ES17704933T ES2870516T3 ES 2870516 T3 ES2870516 T3 ES 2870516T3 ES 17704933 T ES17704933 T ES 17704933T ES 17704933 T ES17704933 T ES 17704933T ES 2870516 T3 ES2870516 T3 ES 2870516T3
Authority
ES
Spain
Prior art keywords
cache
dram
dram cache
memory
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES17704933T
Other languages
English (en)
Inventor
Natarajan Vaidhyanathan
Mattheus Heddes
Colin Verrilli
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2870516T3 publication Critical patent/ES2870516T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Una memoria dinámica de acceso aleatorio, DRAM, el circuito de gestión de la caché (102), acoplado de manera comunicativa a una caché DRAM (104) que es parte de una memoria de gran ancho de banda (106) y que además se acopla de manera comunicativa a una memoria DRAM del sistema (108), en la que: la caché DRAM se configura para almacenar las líneas de memoria de la caché (114(0)-114(X)) desde la memoria DRAM del sistema; la memoria DRAM del sistema se configura para almacenar una tabla maestra (116) para almacenar los indicadores de la caché (118(0)-118(M)) para las líneas de memoria en la memoria del sistema, en la que un indicador de la caché indica si una línea de memoria correspondiente se almacena en la caché DRAM; el circuito de gestión de la caché DRAM que comprende una caché indicadora de la caché DRAM (134) configurado para almacenar en caché una pluralidad de indicadores de la caché DRAM leídos desde la tabla maestra en la memoria DRAM del sistema, en el que: el circuito de gestión de la caché DRAM se configura para: recibir una solicitud de lectura de memoria (124) que comprende una dirección de lectura (126) que especifica una dirección de memoria desde la cual recuperar los datos; determinar si la dirección de lectura se encuentra en la caché indicadora de la caché DRAM; en respuesta a determinar que la dirección de lectura no se encuentra en la caché indicadora de la caché DRAM, leer los datos en la dirección de lectura en la memoria DRAM del sistema; y en respuesta a determinar que la dirección de lectura se encuentra en la caché indicadora de la caché DRAM: determinar, en base a la caché indicadora de la caché DRAM, si la dirección de lectura se encuentra en la caché DRAM; en respuesta a determinar que la dirección de lectura no se encuentra en la caché DRAM, leer los datos en la dirección de lectura en la memoria DRAM del sistema; y en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM, leer los datos para la dirección de lectura desde la caché DRAM.

Description

DESCRIPCIÓN
Proporcionar una gestión escalable de la caché de la memoria dinámica de acceso aleatorio (DRAM) mediante el uso de las cachés indicadoras de la caché DRAM
Antecedentes
I. Campo de la divulgación
La tecnología de la divulgación se refiere, en general, a la gestión de la memoria dinámica de acceso aleatorio (DRAM), y, en particular, a la gestión de las cachés DRAM.
II. Antecedentes
La llegada de los circuitos integrados (IC) apilados por moldes compuestos de múltiples moldes apilados que se interconectan de manera vertical ha permitido el desarrollo de la memoria dinámica de acceso aleatorio (DRAM) apilada. Se pueden utilizar las DRAM apiladas por moldes para implementar lo que se denomina en la presente memoria como "memoria de gran ancho de banda". La memoria de gran ancho de banda proporciona un mayor ancho de banda que la memoria DRAM del sistema convencional, al tiempo que proporciona una latencia de acceso similar. En algunas implementaciones, la memoria de gran ancho de banda también puede estar "cerca" de la memoria, o de la memoria que está ubicada físicamente más cerca de una interfaz de memoria que otra memoria DRAM del sistema. La memoria de gran ancho de banda se puede utilizar para implementar una caché DRAM que almacene los datos a los que se accede frecuentemente que se leyeron previamente desde una memoria DRAM del sistema y se desalojaron de una caché de nivel superior, tal como una caché de Nivel 3 (L3) como un ejemplo no limitativo. Proporcionar una caché DRAM en una memoria de gran ancho de banda puede reducir la contención de la memoria en la memoria DRAM del sistema y, por tanto, en efecto, aumentar el ancho de banda de la memoria general
El documento WO 2015/152857 A1 divulga una memoria de sistema DRAM y una caché DRAM asociada.
Sin embargo, la gestión de una caché DRAM en una memoria de gran ancho de banda puede plantear desafíos. La caché DRAM puede tener un tamaño mucho menor que la memoria DRAM del sistema. Por tanto, debido a que la caché DRAM solo puede almacenar un subconjunto de los datos en la memoria DRAM del sistema, el uso eficiente de la caché DRAM depende de la selección inteligente de las direcciones de memoria a almacenar. En consecuencia, un mecanismo de gestión de la caché DRAM debe ser capaz de determinar qué direcciones de memoria se deben instalar de manera selectiva en la caché DRAM, y debe ser capaz de determinar además cuándo las direcciones de memoria se deben instalar y/o desalojar desde la caché DRAM. También puede ser deseable para un mecanismo de gestión de la caché DRAM minimizar el impacto en la latencia de acceso para la caché DRAM, y ser escalable con respecto al tamaño de la caché DRAM y/o el tamaño de la memoria DRAM del sistema. Algunos enfoques para la gestión de la caché DRAM utilizan una caché para almacenar las etiquetas correspondientes a las direcciones de la memoria en caché, similar a como las cachés convencionales se pueden gestionar. Bajo uno de tales enfoques, todas las etiquetas asociadas con una caché DRAM se almacenan en una memoria estática de acceso aleatorio (SRAM) en un molde de cálculo separado de la memoria de gran ancho de banda. Sin embargo, este enfoque puede no ser lo suficientemente escalable para el tamaño de la caché DRAM, ya que los tamaños de caché DRAM más grandes pueden requerir un área más grande para las etiquetas que no se desean y/o son demasiado grandes para almacenar en la SRAM. Otro enfoque implica ubicar las etiquetas dentro de la caché DRAM misma, en lugar de dentro de la SRAM en el molde de cálculo, y utilizar un predictor de aciertos/errores para determinar si una dirección de memoria determinada está almacenada dentro de la caché DRAM. Aunque este último enfoque minimiza el uso de la SRAM en el molde de cálculo, cualquier predicción incorrecta resultará en la lectura de los datos desde la memoria DRAM del sistema. Por ejemplo, si el predictor de aciertos/errores predice incorrectamente que la dirección de memoria se ubica en la caché DRAM, se incurre en una penalización de latencia por una lectura innecesaria a la caché DRAM antes de leer la dirección de memoria desde la memoria DRAM del sistema. De manera contraria, si el predictor de aciertos/errores predice incorrectamente que la dirección de memoria no se ubica en la caché DRAM, se puede desperdiciar una oportunidad para evitar una lectura innecesaria en la memoria DRAM del sistema. Las lecturas adicionales innecesarias incurren en una latencia de acceso adicional, lo que puede anular cualquier mejora del rendimiento resultante de la utilización de la caché DRAM.
Por tanto, es deseable proporcionar una gestión escalable de la caché DRAM para mejorar el ancho de banda de la memoria mientras se minimiza el consumo de la SRAM y las penalizaciones de latencia.
Sumario de la divulgación
La invención se establece en el conjunto de las reivindicaciones adjuntas. Las reivindicaciones dependientes establecen realizaciones particulares.
Los aspectos divulgados en la descripción detallada incluyen proporcionar una gestión escalable de la caché de la memoria dinámica de acceso aleatorio (DRAM) mediante el uso de las cachés indicadoras de la caché DRAM. En algunos aspectos, un circuito de gestión de la caché DRAM se proporciona para gestionar el acceso a una caché DRAM en una memoria de gran ancho de banda. El circuito de gestión de la caché DRAM comprende una caché indicadora de la caché DRAM que se utiliza para almacenar en caché las entradas de la tabla maestra que contiene los indicadores de la caché DRAM, y que se leen desde una tabla maestra en una memoria DRAM del sistema. Los indicadores de la caché DRAM permiten que el circuito de gestión de la caché DRAM determine si una línea de memoria en la memoria DRAM del sistema se almacena en caché en la caché DRAM (es decir, implementada utilizando la memoria de gran ancho de banda) y, si es así, en qué ruta de la caché DRAM se almacena la línea de memoria. En base a la caché indicadora de la caché DRAM, el circuito de gestión de la caché DRAM puede determinar si se puede realizar una operación de memoria usando la caché DRAM y/o usando la memoria DRAM del sistema. Algunos aspectos del circuito de gestión de la caché DRAM pueden proporcionar además un circuito de equilibrio de carga. En circunstancias en las que se pueden leer datos desde la caché DRAM o desde la memoria DRAM del sistema, el circuito de gestión de la caché DRAM puede utilizar el circuito de equilibrio de carga para seleccionar una fuente apropiada desde la cual leer los datos.
Aspectos adicionales del circuito de gestión de la caché DRAM se pueden configurar para operar en un modo de escritura inmediata o en un modo de reescritura. En el último aspecto, la caché indicadora de la caché DRAM puede proporcionar un bit indicador para cada línea de memoria almacenada en ella. En algunos aspectos, la caché DRAM y/o la caché indicadora de la caché DRAM se pueden reponer en base a una determinación probabilística por el circuito de gestión de la caché DRAM. Por ejemplo, el circuito de gestión de la caché DRAM se puede configurar para reponer la caché DRAM y/o la caché indicadora de la caché DRAM a intervalos aleatorios tal que solo un porcentaje de los datos seleccionados al azar se escriba en la caché DRAM y/o en la caché indicadora de la caché DRAM.
En otro aspecto, se proporciona un circuito de gestión de la caché DRAM. El circuito de gestión de la caché DRAM se acopla de manera comunicativa a una caché DRAM que es parte de una memoria de gran ancho de banda, y además se acopla de manera comunicativa a una memoria DRAM del sistema. El circuito de gestión de la caché DRAM comprende una caché indicadora de la caché DRAM que se configura para almacenar en caché una pluralidad de indicadores de la caché DRAM leídos desde una tabla maestra en la memoria DRAM del sistema. La pluralidad de indicadores de la caché DRAM indican si una línea de memoria correspondiente de la memoria DRAM del sistema se almacena en caché en la caché DRAM. El circuito de gestión de la caché DRAM se configura para recibir una solicitud de lectura de memoria que comprende una dirección de lectura. El circuito de gestión de la caché DRAM se configura además para determinar si la dirección de lectura se encuentra en la caché indicadora de la caché DRAM. El circuito de gestión de la caché DRAM también se configura para, en respuesta a determinar que la dirección de lectura no se encuentra en la caché indicadora de la caché DRAM, leer los datos en la dirección de lectura en la memoria DRAM del sistema. El circuito de gestión de la caché DRAM se configura adicionalmente para, en respuesta a determinar que la dirección de lectura se encuentra en la caché indicadora de la caché DRAM, determinar, en base a la caché indicadora de la caché DRAM, si la dirección de lectura se encuentra en la caché DRAM. El circuito de gestión de la caché DRAM se configura además para, en respuesta a determinar que la dirección de lectura no se encuentra en la caché DRAM, leer los datos en la dirección de lectura en la memoria DRAM del sistema. El circuito de gestión de la caché DRAM también se configura para, en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM, leer los datos para la dirección de lectura desde la caché DRAM.
En otro aspecto, se proporciona un procedimiento para proporcionar una gestión escalable de la caché DRAM. El procedimiento comprende recibir, mediante un circuito de gestión de la caché DRAM, una solicitud de lectura de memoria que comprende una dirección de lectura. El procedimiento comprende además determinar si la dirección de lectura se encuentra en una caché indicadora de la caché DRAM del circuito de gestión de la caché DRAM. El procedimiento también comprende, en respuesta a determinar que la dirección de lectura no se encuentra en la caché indicadora de la caché DRAM, leer los datos en la dirección de lectura en una memoria DRAM del sistema. El procedimiento adicionalmente comprende, en respuesta a determinar que la dirección de lectura se encuentra en la caché indicadora de la caché DRAM, determinar, en base a la caché indicadora de la caché DRAM, si la dirección de lectura se encuentra en una caché DRAM que es parte de una memoria de gran ancho de banda. El procedimiento también comprende, en respuesta a determinar que la dirección de lectura no se encuentra en la caché DRAM, leer los datos en la dirección de lectura en la memoria DRAM del sistema. El procedimiento adicionalmente comprende, en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM, leer los datos para la dirección de lectura desde la caché DRAM.
En otro aspecto, se proporciona un circuito de gestión de la caché DRAM. El circuito de gestión de la caché DRAM comprende un medio para recibir una solicitud de lectura de memoria que comprende una dirección de lectura. El circuito de gestión de la caché DRAM comprende además un medio para determinar si la dirección de lectura se encuentra en una caché indicadora de la caché DRAM del circuito de gestión de la caché DRAM. El circuito de gestión de la caché DRAM también comprende un medio para leer los datos en la dirección de lectura en una memoria DRAM del sistema, en respuesta a determinar que la dirección de lectura no se encuentra en la caché indicadora de la caché DRAM. El circuito de gestión de la caché DRAM comprende adicionalmente un medio para determinar, en base a la caché indicadora de la caché DRAM, si la dirección de lectura se encuentra en una caché DRAM que es parte de una memoria de gran ancho de banda, en respuesta a determinar que la dirección de lectura se encuentra en la caché indicadora de la caché DRAM. El circuito de gestión de la caché DRAM comprende además un medio para leer los datos en la dirección de lectura en la memoria DRAM del sistema, en respuesta a determinar que la dirección leída no se encuentra en la caché DRAM. El circuito de gestión de la caché DRAM también comprende un medio para leer los datos para la dirección de lectura desde la caché DRAM, en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM.
En otro aspecto, se proporciona un medio legible por ordenador no transitorio, que tiene almacenadas las instrucciones ejecutables por ordenador. Cuando se ejecutan por un procesador, las instrucciones ejecutables por ordenador hacen que el procesador reciba una solicitud de lectura de memoria que comprende una dirección de lectura. Las instrucciones ejecutables por ordenador hacen además que el procesador determine si la dirección de lectura se encuentra en una caché indicadora de la caché DRAM de un circuito de gestión de la caché DRAM. Las instrucciones ejecutables por ordenador también hacen que el procesador, en respuesta a determinar que la dirección de lectura no se encuentra en la caché indicadora de caché DRAM, lea los datos en la dirección de lectura en una memoria DRAM del sistema. Las instrucciones ejecutables por ordenador hacen además que el procesador, en respuesta a determinar que la dirección de lectura se encuentra en la caché indicadora de la caché DRAM, determine, en base a la caché indicadora de la caché DRAM, si la dirección de lectura se encuentra en una caché DRAM que es parte de una memoria de gran ancho de banda. Las instrucciones ejecutables por ordenador hacen además que el procesador, en respuesta a determinar que la dirección de lectura no se encuentra en la caché DRAM, lea los datos en la dirección de lectura en la memoria DRAM del sistema. Las instrucciones ejecutables por ordenador también hacen que el procesador, en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM, lea los datos para la dirección de lectura desde la caché DRAM.
Breve descripción de las figuras
La Figura 1 es un diagrama de bloques de un sistema basado en procesador que incluye una memoria de gran ancho de banda que proporciona una caché de memoria dinámica de acceso aleatorio (DRAM) y un circuito de gestión de la caché DRAM ilustrativo para proporcionar una gestión escalable de la caché DRAM utilizando una caché indicadora de la caché DRAM;
Las Figuras 2A-2B son diagramas de bloques que ilustran entradas de la tabla maestra y contenidos de la caché indicadora de la caché DRAM para dos cachés DRAM ilustrativas que se pueden gestionar por el circuito de gestión de la caché DRAM de la Figura 1;
La Figura 3 es un diagrama de flujo que ilustra operaciones ilustrativas del circuito de gestión de la caché DRAM de la Figura 1 para realizar una operación de lectura utilizando la caché indicadora de la caché DRAM y la caché DRAM de la Figura 1;
Las Figuras 4A-4C son diagramas de flujo que ilustran operaciones ilustrativas del circuito de gestión de la caché DRAM de la Figura 1 para realizar una operación de escritura resultante de un desalojo de los datos "limpios" (es decir, los no modificados) de una caché de Nivel 3 (L3) en un modo de escritura inmediata o un modo de reescritura;
Las Figuras 5A-5C son diagramas de flujo que ilustran operaciones ilustrativas del circuito de gestión de la caché DRAM de la Figura 1 para realizar una operación de escritura resultante de un desalojo de los datos "sucios" (es decir, los modificados) de una caché L3 en un modo de escritura inmediata;
Las Figuras 6A-6D son diagramas de flujo que ilustran operaciones ejemplares del circuito de gestión de la caché DRAM de la Figura 1 para realizar una operación de escritura resultante de un desalojo de los datos sucios de una caché L3 en un modo de reescritura; y
La figura 7 es un diagrama de bloques de un sistema basado en procesador ilustrativo que puede incluir el circuito de gestión de la caché DRAM de la Figura 1.
Descripción detallada
Con referencia ahora a las figuras de los dibujos, se describen varios aspectos ilustrativos de la presente divulgación. La palabra "ilustrativo" se usa en la presente memoria para significar "que sirve como un ejemplo, caso o ilustración". Cualquier aspecto descrito en la presente memoria como "ilustrativo" no se debe interpretar necesariamente como preferente o ventajoso con respecto a otros aspectos.
Los aspectos divulgados en la descripción detallada incluyen proporcionar una gestión escalable de la caché de la memoria dinámica de acceso aleatorio (DRAM) mediante el uso de las cachés indicadoras de la caché DRAM. Como se describe en la presente memoria, un esquema de gestión de la caché DRAM es "escalable" en el sentido de que el tamaño de los recursos utilizados por el esquema de gestión de la caché DRAM es relativamente independiente de la capacidad de la caché DRAM que se gestiona. En consecuencia, a este respecto, la Figura 1 es un diagrama de bloques de un sistema basado en procesador 100 ilustrativo que proporciona un circuito de gestión de la caché DRAM 102 para gestionar una caché DRAM 104 que es parte de una memoria de gran ancho de banda 106. El sistema basado en procesador 100 incluye una memoria DRAM del sistema 108, que, en algunos aspectos, puede comprender uno o más módulos de memoria en línea duales (DIMM) (no mostrados). El sistema basado en procesador 100 proporciona además un molde de cálculo 110, en el que se ubica una caché del sistema 112 (tal como una caché de Nivel 3 (L3), como ejemplo no limitativo). El sistema basado en procesador 100 puede abarcar cualquiera de los elementos lógicos digitales conocidos, circuitos semiconductores, núcleos de procesamiento y/o estructuras de memoria, entre otros elementos, o combinaciones de los mismos. Los aspectos descritos en la presente memoria no se limitan a ninguna disposición particular de elementos, y las técnicas divulgadas se pueden extender fácilmente a las diversas estructuras y disposiciones en los moldes o paquetes de semiconductores. Se debe entender que algunos aspectos del sistema basado en procesador 100 pueden incluir elementos en adición de aquellos ilustrados en la Figura 1.
Para mejorar el ancho de banda de la memoria, la caché DRAM 104 dentro de la memoria de gran ancho de banda 106 del sistema basado en procesador 100 se puede utilizar para almacenar en caché las direcciones de memoria (no mostradas) y los datos (no mostrados) que se leyeron previamente desde las líneas de memoria 114(0)-114(X) dentro de la memoria DRAM del sistema 108, y/o expulsado de la caché del sistema 112. Como ejemplos no limitativos, algunos aspectos con la condición de que los datos se pueden almacenar en caché en la caché DRAM 104 solo después de leer los datos desde la memoria DRAM del sistema 108, mientras que en algunos aspectos los datos pueden almacenarse en caché en la caché DRAM 104 solo cuando se expulsan de la caché DRAM caché del sistema 112. De acuerdo con algunos aspectos, los datos se pueden almacenar en la caché DRAM 104 al leer los datos desde la memoria DRAM del sistema 108 para las lecturas activadas por cargas del procesador y los desalojos sucios de la caché del sistema 112.
Se puede acceder a la caché DRAM 104 dentro de la memoria de gran ancho de banda 106 de manera independiente y en paralelo con la memoria DRAM del sistema 108. Como un resultado, el ancho de banda de la memoria se puede incrementar de manera efectiva leyendo tanto desde la caché DRAM 104 como desde la memoria DRAM del sistema 108 al mismo tiempo. En algunos aspectos, la caché DRAM 104 puede implementar una política de reemplazo aleatorio para determinar los candidatos para el desalojo dentro de la caché DRAM 104.
Una tabla maestra 116 almacenada en la memoria DRAM del sistema 108 se usa para rastrear qué líneas de memoria 114(0)-114(X) de la memoria DRAM del sistema 108 se almacenan en la caché DRAM 104. Se debe entender que, como se utiliza en la presente memoria, una "línea de memoria" de la memoria DRAM del sistema 108 se refiere a una parte de la memoria DRAM del sistema 108 que tiene una longitud igual a la longitud de una línea de caché (no mostrada) de la caché del sistema 112. La tabla maestra 116 contiene las entradas 118(0)-118(M) de la tabla maestra para almacenar los indicadores 120(0)-120(X) de la caché DRAM para cada una de las líneas de memoria 114(0)-114(X) de la memoria DRAM del sistema 108. Algunos aspectos pueden con la condición de que el tamaño de cada una de las entradas de la tabla maestra 118(0)-118(M) corresponda a una granularidad de acceso a la memoria de la memoria subyacente. Como ejemplo no limitativo, para una granularidad de acceso a la memoria de 64 bytes, cada una de las entradas de la tabla maestra 118(0)-118(M) del mismo modo comprende los 64 bytes. Por tanto, en aspectos en los que cada uno de los indicadores 120(0)-120(X) de la caché DRAM comprende cuatro (4) bits, cada una de las entradas 118(0)-118(M) de la tabla maestra de 64 bytes de la tabla maestra 116 puede almacenar los indicadores 120(0)-120(X) de la caché DRAM para las 128 líneas de memoria 114(0)-114(X) de la memoria DRAM del sistema 108.
En algunos aspectos, cada uno de los indicadores 120(0)-120(X) de la caché DRAM en la tabla maestra 116 indica no solo si una línea de memoria 114(0)-114(X) correspondiente de la memoria DRAM del sistema 108 se almacena en la caché DRAM 104 de la memoria de gran ancho de banda 106, sino también en qué ruta 122(0)-122(Z) de la caché DRAM 104 se almacena la línea de memoria correspondiente 114(0)-114(X). Por ejemplo, en algunos aspectos, cada uno de los indicadores 120(0)-120(X) de la caché DRAM comprende cuatro (4) bits, y la caché DRAM 104 puede proporcionar 15 rutas 122(0)-122(14) (es decir, 24-1). Un indicador 120(0)-120(X) de la caché DRAM que tiene un valor de cero (0) indica que la línea de memoria 114(0)-114(X) correspondiente de la memoria DRAM del sistema 108 no se almacena en la caché DRAM 104. Un indicador 120(0)-120(X) de la caché DRAM que tiene un valor N mayor que cero (0) indica que la línea de memoria correspondiente 114(0)-114(X) de la memoria DRAM del sistema 108 se almacena en la caché DRAM 104 en la ruta 122(N-1), donde 0<N-1<Z.
Se debe entender que, en algunos aspectos, las entradas de la tabla maestra 118(0)-118(M) de la tabla maestra 116 pueden proporcionar los indicadores de la caché DRAM 120(0)-120(X) que son mayores o menores que cuatro (4) bits de acuerdo con el número de rutas 122(0)-122(Z) proporcionadas por la caché DRAM 104. Como un ejemplo no limitativo, para un número Q de bits en cada indicador 120(0)-120(X) de la caché DRAM, la caché DRAM 104 puede proporcionar varias rutas 122(0)-122(Z) donde Z=2Q-1. Por tanto, un indicador 120(0)-120(X) de la caché DRAM que comprende dos (2) bits corresponde a una caché DRAM 104 que se organiza en tres (3) rutas 122(0)-122(2), mientras que el indicador 120(0)-120(X) de la caché DRAM que comprende tres (3) bits corresponde a una caché DRAM 104 que proporciona siete (7) rutas 122(0)-122(6). Las diferentes configuraciones de los indicadores de la caché DRAM 120(0)-120(X) y de la caché DRAM 104 se debaten en mayor detalle a continuación con respecto a las Figuras 2A y 2B.
Porque las entradas de la tabla maestra 118(0)-118(M) de la tabla maestra 116 almacenan los indicadores de la caché DRAM 120(0)-120(X) para cada línea de memoria 114(0)-114(X) en la memoria DRAM del sistema 108, el tamaño de la tabla maestra 116 aumenta a medida que aumenta el tamaño de la memoria DRAM del sistema 108. Por ejemplo, en aspectos en los que los indicadores de la caché DRAM 120(0)-120(X) dentro de la tabla maestra 116 son cuatro (4) bits cada uno, el tamaño total de la tabla maestra 116 es el 0.4 % del tamaño de la memoria DRAM del sistema 108. Consecuentemente, acceder a la tabla maestra 116 para cada operación de memoria puede incurrir en penalizaciones de latencia que podrían contrarrestar los beneficios de rendimiento de utilizar la caché DRAM 104. Por tanto, es deseable proporcionar un mecanismo escalable para gestionar el acceso a la caché DRAM 104 para mejorar el ancho de banda de la memoria al tiempo que se minimizan las penalizaciones por latencia.
A este respecto, el circuito de gestión de la caché DRAM 102 se proporciona para gestionar el acceso a la caché DRAM 104. El circuito de gestión de la caché DRAM 102 se ubica en el molde de cálculo 110, y se acopla de manera comunicativa a la memoria de gran ancho de banda 106 y a la memoria DRAM del sistema 108. El circuito de gestión de la caché DRAM 102 también se puede leer desde, y escribir mediante, la caché del sistema 112. Como se debate en mayor detalle a continuación, el circuito de gestión de la caché DRAM 102 puede realizar una operación de lectura de memoria en respuesta a recibir una solicitud de lectura de memoria 124 que comprende una dirección de lectura 126 que especifica una dirección de memoria desde la que recuperar los datos. En algunos aspectos, el circuito de gestión de la caché DRAM 102 puede realizar además una operación de escritura en memoria en respuesta a la recepción de una solicitud de escritura en memoria 128 que comprende una dirección de escritura 130 en la que los datos de escritura 132 se escribirán.
Para reducir la latencia de acceso que puede resultar de los accesos a la tabla maestra 116, el circuito de gestión de la caché DRAM 102 proporciona una caché indicadora de la caché DRAM 134. La caché indicadora de la caché DRAM 134 se utiliza por el circuito de gestión de la caché DRAM 102 para almacenar en caché las entradas de la tabla maestra 118(0)-118(M) a las que se accede frecuentemente (y los indicadores 120(0)-120(X) de la caché DRAM almacenados en ella) dentro de las rutas 136(0)-136(C), 136'(0)-136'(C) de las líneas de caché indicadora de la caché DRAM 138(0)-138(y ). En algunos aspectos, el tamaño de cada una de las rutas 136(0)-136(C), 136'(0)-136'(C) de la caché 134 del indicador de la caché DRAM corresponde al tamaño de las entradas 118 de la tabla maestra (0)-118 (M) en la tabla maestra 116. Algunos aspectos pueden indicar que el tamaño de cada una de las rutas 136(0)-136(C), 136'(0)-136'(C) de la caché indicadora de la caché DRAM 134 puede ser mayor que el tamaño de las entradas de la tabla maestra 118(0)-118(M) en la tabla maestra 116. Como un ejemplo no limitativo, las rutas 136(0)-136(C), 136'(0)-136'(C) de la caché indicadora de la caché DRAM 134 pueden incluir los indicadores sucios 140(0)-140(C), 140'(0)-140'(C), que suman un (1) bit por ruta 136(0)-136(C), 136'(0)-136'(C). Por tanto, en aspectos en los que las rutas 136(0)-136(C), 136'(0)-136'(C) tienen un tamaño de 64 bytes con cuatro (4) bits por indicador 120(0)-120(X) de la caché DRAM, se puede requerir un total de 128 bits adicionales para proporcionar los indicadores sucios 140(0)-140(C), 140'(0)-140'(C).
Algunos aspectos del circuito de gestión de la caché DRAM 102 pueden proporcionar además un circuito de equilibrio de carga 142 para mejorar el ancho de banda de la memoria y reducir la contención de acceso a la memoria. En circunstancias en las que se puede leer una dirección de memoria solicitada desde la memoria DRAM del sistema 108 o desde la caché DRAM 104, el circuito de equilibrio de carga 142 identifica la fuente más apropiada desde la cual leer la dirección de memoria. Por ejemplo, en algunos aspectos, el circuito de equilibrio de carga 142 puede monitorear las latencias de las lecturas de la caché DRAM 104 y de la memoria DRAM del sistema 108, y puede seleccionar la fuente que tenga una mejor latencia promedio en el pasado reciente. De esta manera, el circuito de equilibrio de carga 142 puede distribuir los accesos a la memoria entre la memoria DRAM del sistema 108 y la caché DRAM 104 para optimizar el uso de los recursos del sistema.
En algunos aspectos, el circuito de gestión de la caché DRAM 102 se puede implementar como un sistema de gestión de la caché de "escritura inmediata". En una implementación de escritura inmediata, los datos sucios (es decir, modificados) expulsados de la caché del sistema 112 se escriben por el circuito de gestión de la caché DRAM 102 tanto en la caché DRAM 104 de la memoria de gran ancho de banda 106 como en la memoria DRAM del sistema 108. Como un resultado, los datos dentro de la caché DRAM 104 y los datos dentro de la memoria DRAM del sistema 108 siempre se sincronizan. Debido a que se garantiza que tanto la caché DRAM 104 como la memoria DRAM del sistema 108 en una implementación de escritura inmediata contienen los datos correctos, el circuito de equilibrio de carga 142 del circuito de gestión de la caché DRAM 102 puede equilibrar la carga de las operaciones de lectura de memoria entre la caché DRAM 104 y la memoria DRAM del sistema 108. Sin embargo, la implementación de la escritura inmediata del circuito de gestión de la caché DRAM 102 puede no dar como resultado una reducción del ancho de banda de escritura en la memoria DRAM del sistema 108, porque cada escritura en la caché DRAM 104 corresponderá a una escritura en la memoria DRAM del sistema 108.
Algunos aspectos del circuito de gestión de la caché DRAM 102 se pueden implementar como un sistema de gestión de la caché de "reescritura", en el que la caché indicadora de la caché DRAM 134 del circuito de gestión de la caché DRAM 102 incluye los indicadores sucios 140(0)-140(C), 140'(0)-140'(C) para cada ruta 136(0)-136(C), 136'(0)136'(C) en el mismo. Cada uno de los indicadores sucios 140(0)-140(C), 140'(0)-140'(C) indica si los datos almacenados en la caché DRAM 104 que corresponden a la ruta l36(0)-l36(C ), 136'(0)-136'(C) dentro de la caché indicadora de la caché DRAM 134 son sucios (es decir, si los datos se escribieron en la caché DRAM 104 pero no en la memoria DRAM del sistema 108). Si los datos no son sucios, los datos se pueden leer desde la caché DRAM 104 o desde la memoria DRAM del sistema 108, como lo determinado por el circuito de equilibrio de carga 142 del circuito de gestión de la caché DRAM 102. Sin embargo, si el indicador sucio 140(0)-140(C), 140'(0)-140'(C) indica que los datos almacenados en la caché DRAM 104 son sucios, el equilibrio de carga no es posible, ya que la caché DRAM 104 es la única fuente para los datos modificados. En consecuencia, el circuito de gestión de la caché DRAM 102 lee los datos sucios desde la caché DRAM 104.
La implementación de la reescritura del circuito de gestión de la caché DRAM 102 puede reducir el consumo de ancho de banda de escritura de memoria a la memoria DRAM del sistema 108, pero el circuito de gestión de la caché DRAM 102 debe eventualmente volver a escribir los datos sucios desalojados desde la caché DRAM 104 a la memoria DRAM del sistema 108. En algunos aspectos de la implementación de la reescritura del circuito de gestión de la caché DRAM 102, cuando una línea 138(0)-138(Y) de la caché indicadora de la caché DRAM se desaloja de la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 se configura para copiar todos los datos sucios en la caché DRAM 104 correspondiente a la línea 138(0)-138(Y) de la caché indicadora de la caché DRAM desalojada a la memoria DRAM del sistema 108.
Algunos aspectos del circuito de gestión de la caché DRAM 102 pueden mejorar aún más el ancho de banda de la memoria realizando algunas operaciones (por ejemplo, las operaciones que implican accesos a la memoria de la memoria DRAM del sistema 108 y/o a la caché DRAM 104, como ejemplos no limitantes) de acuerdo con las determinaciones probabilísticas correspondientes realizadas por el circuito de gestión de la caché DRAM 102. Cada determinación probabilística se puede utilizar para sintonizar la frecuencia de la operación correspondiente, y puede ser sin estado (es decir, no relacionada con el resultado de determinaciones probabilísticas previas). Por ejemplo, de acuerdo con algunos aspectos del circuito de gestión de la caché DRAM 102, los datos desalojados por la caché del sistema 112 se pueden escribir en la caché DRAM 104 en base a una determinación probabilística, de modo que solo un porcentaje de los datos seleccionados de manera aleatoria desalojados por la caché del sistema 112 se escribe en la caché DRAM 104. De manera similar, algunos aspectos del circuito de gestión de la caché DRAM 102 se pueden configurar para reponer la caché indicadora de la caché DRAM 134 (por ejemplo, copiando una entrada 118(0)-118(M) de la tabla maestra para los datos leídos desde la tabla maestra 116 a la caché indicadora de la caché DRAM 134) en base a una determinación probabilística. Por tanto, se debe entender que cada operación descrita en la presente memoria como ocurre "de manera probabilística" se puede o no realizar en un caso dado, y además que la ocurrencia o la falta de una operación probabilística dada puede desencadenar operaciones adicionales por el circuito de gestión de la caché DRAM 102.
Para ilustrar las entradas 118(0)-118(M) de la tabla maestra ilustrativas y el contenido del indicador 120(0)-120(X) de la caché DRAM para algunas implementaciones de la caché DRAM 104 de la Figura 1, se proporcionan las Figuras 2A-2B. La Figura 2A ilustra una implementación de la caché DRAM 104 que comprende 15 rutas, mientras que la Figura 2B ilustra una implementación de la caché DRAM 104 que comprende tres (3) rutas. En aras de la claridad, se hace referencia a los elementos de la Figura 1 en la descripción de las Figuras 2A y 2B.
En la Figura 2A, se ilustra una entrada 200 de la tabla maestra ilustrativa (que puede corresponder a una de las entradas 118(0)-118(M) de la tabla maestra de la Figura 1) que tiene un tamaño de 64 bytes. La entrada 200 de la tabla maestra incluye los indicadores 202(0)-202(127) de la caché DRAM (correspondientes a los indicadores 120(0)-120(X) de la caché DRAM de la Figura 1), cada uno de los cuales tiene un tamaño de cuatro (4) bits. Por consiguiente, la entrada 200 de la tabla maestra almacena los indicadores 202(0)-202(127) de la caché DRAM para 128 líneas de memoria 114(0)-114(X) de la memoria DRAM del sistema 108. Para almacenar en caché los indicadores 202(0)-202(127) de la caché DRAM, la caché indicadora de la caché DRAM 134 proporciona las líneas 204(0)-204(511) de la caché indicadora de la caché DRAM (correspondientes a las líneas 138(0)-138(Y) de la caché indicadora de la caché DRAM de la Figura 1). Cada una de las líneas 204(0)-204(511) de la caché indicadora de la caché DRAM se compone de ocho (8) rutas, tal como las rutas 206(0)-206(7), 208(0)-208(7) de las líneas 204(0), 204(511), respectivamente, de la caché indicadora de la caché DRAM. Cada una de las rutas 206(0)-206(7), 208(0)-208(7) corresponde a las rutas 136(0)-136(C), 136'(0)-136'(C) de la Figura 1, y puede almacenar una (1) entrada de la tabla maestra, como la entrada 200 de la tabla maestra.
Con referencia ahora a la Figura 2B, se muestra una entrada 210 de la tabla maestra de 64 bytes. En el ejemplo de la Figura 2B, la entrada 210 de la tabla maestra incluye los indicadores 212(0)-212(255) de la caché DRAM, cada uno de los cuales tiene un tamaño de dos (2) bits. Por consiguiente, la entrada 210 de la tabla maestra almacena los indicadores 212(0)-212(255) de la caché DRAM para 256 líneas de memoria de la memoria DRAM del sistema 108. La caché indicadora de la caché DRAM 134 en este ejemplo proporciona las líneas 214(0)-214(511) de la caché indicadora de la caché DRAM para almacenar en caché los indicadores 212(0)-212(255) de la caché DRAM. Cada una de las líneas 214(0)-214(511) de la caché indicadora de la caché DRAM se compone de ocho (8) rutas, tal como las rutas 216(0)-216(7), 218(0)-218(7) de las líneas 214(0), 214(511), respectivamente, de la caché indicadora de la caché DRAM. Cada una de las rutas 216(0)-216(7), 218(0)-218(7) puede almacenar una (1) entrada de la tabla maestra, tal como la entrada 210 de la tabla maestra.
La Figura 3 es un diagrama de flujo que ilustra operaciones ilustrativas del circuito de gestión de la caché DRAM 102 de la Figura 1 para realizar una operación de lectura utilizando la caché 134 del indicador de la caché DRAM y la caché DRAM 104 de la Figura 1. Se hace referencia a los elementos de la Figura 1 en la descripción de la Figura 3 en aras de la claridad. En la Figura 3, las operaciones comienzan con el circuito de gestión de la caché DRAM 102 que recibe la solicitud de lectura de memoria 124 que comprende la dirección de lectura 126 (por ejemplo, como resultado de una falla en la caché del sistema 112) (bloque 300). En consecuencia, el circuito de gestión de la caché DRAM 102 se puede denominar en la presente memoria "un medio para recibir una solicitud de lectura de memoria que comprende una dirección de lectura". El circuito de gestión de la caché DRAM 102 determina si la dirección de lectura 126 se encuentra en la caché indicadora de la caché DRAM 134 del circuito de gestión de la caché DRAM 102 (bloque 302). El circuito de gestión de la caché DRAM 102 se puede denominar en la presente memoria como "un medio para determinar si la dirección de lectura se encuentra en una caché indicadora de la caché DRAM del circuito de gestión de la caché DRAM".
Si la dirección de lectura 126 de la solicitud de lectura de memoria 124 no se encuentra en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 lee los datos en la dirección de lectura 126 en la memoria DRAM del sistema 108 (bloque 304). A este respecto, el circuito de gestión de la caché DRAM 102 se puede denominar en la presente memoria "un medio para leer los datos en la dirección de lectura en una memoria DRAM del sistema, en respuesta a determinar que la dirección de lectura no se encuentra en la caché indicadora de la caché DRAM". En paralelo con la lectura de los datos en la dirección de lectura 126, algunos aspectos del circuito de gestión de la caché DRAM 102 pueden reponer de manera probabilística la caché indicadora de la caché DRAM 134 (bloque 306). Al reponer la caché indicadora de la caché DRAM 134, se puede aumentar la probabilidad de que las lecturas subsecuentes (que pueden ser espacialmente adyacentes a los datos leídos) resultará en la caché indicadora de la caché DRAM 134 un acierto que se puede aumentar.
La reposición de manera probabilística de la caché indicadora de la caché DRAM 134 en algunos aspectos puede incluir copiar una entrada 118(0)-118(M) de la tabla maestra para los datos leídos desde la tabla maestra 116 a la caché indicadora de la caché DRAM 134, como un ejemplo no limitativo. Algunos aspectos pueden con la condición de que las operaciones del bloque 306 para reponer la caché indicadora de la caché DRAM 134 pueden incluir leer una entrada 118(0)-118(M) de la tabla maestra que abarca la dirección de lectura 126 desde la tabla maestra 116 en la memoria DRAM del sistema 108. La entrada 118(0)-118(M) de la tabla maestra se instala luego en la caché indicadora de la caché DRAM 134. Si la instalación de la entrada 118(0)-118(M) de la tabla maestra provoca un desalojo de una de las rutas 136(0)-136(C), 136'(0)-136'(C) de la caché indicadora de la caché Dr Am 134, el contenido de la ruta desalojada 136(0)-136(C), 136'(0)-136'(C) (sin ningún indicador sucio 140(0)-140(C), 140'(0)-140'(C) que pueden estar presentes) se escriben en la tabla maestra 116 en la memoria DRAM del sistema 108. En aspectos en los que el circuito de gestión de la caché DRAM 102 se configura para operar en un modo de reescritura, cualquier línea de la caché DRAM sucia indicada por la ruta desalojada 136(0)-136(C), 136'(0)-136'(C) también se copia desde la caché DRAM 104 a la memoria DRAM del sistema 108.
Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 302 que la dirección de lectura 126 se encuentra en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 determina a continuación si la dirección de lectura 126 se encuentra en la caché DRAM 104 que es parte de la memoria de gran ancho de banda 106, en base a la caché indicadora de la caché DRAM 134 (bloque 308). En consecuencia, el circuito de gestión de la caché DRAM 102 se puede denominar en la presente memoria como "un medio para determinar, en base a la caché indicadora de la caché DRAM, si la dirección de lectura se encuentra en una caché DRAM que es parte de una memoria de gran ancho de banda, en respuesta a determinar que la dirección de lectura se encuentra en la caché indicadora de la caché DRAM". En algunos aspectos, determinar si la dirección de lectura 126 se encuentra en la caché DRAM 104 puede incluir determinar si el número de ruta para la dirección de lectura 126 en la caché indicadora de la caché DRAM 134 es distinto de cero. Si es así, la dirección de lectura 126 está en la caché DRAM 104. De otro modo, si el número de ruta para la dirección de lectura 126 en la caché indicadora de la caché DRAM 134 es cero (0), la dirección de lectura 126 no está en la caché DRAM 104.
Si la dirección de lectura 126 no se encuentra en la caché DRAM 104, el circuito de gestión de la caché DRAM 102 lee los datos en la dirección de lectura 126 en la memoria DRAM del sistema 108 (bloque 310). El circuito de gestión de la caché DRAM 102 por tanto se puede denominar en la presente memoria "un medio para leer los datos en la dirección de lectura en la memoria DRAM del sistema, en respuesta a determinar que la dirección de lectura no se encuentra en la caché DRAM". Sin embargo, si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 308 que la dirección de lectura 126 se encuentra en la caché DRAM 104, el circuito de gestión de la caché DRAM 102 determina en algunos aspectos si los datos para la dirección de lectura 126 en la caché DRAM 104 son limpios (o, de manera alternativa, si el circuito de gestión de la caché DRAM 102 se configura para funcionar en un modo de escritura inmediata) (bloque 312). Si los datos en la caché DRAM 104 no son limpios y/o el circuito de gestión de la caché DRAM 102 no funciona en un modo de escritura inmediata, los datos solicitados solo se pueden leer de manera segura desde la caché DRAM 104. En consecuencia, el circuito de gestión de la caché DRAM 102 lee los datos para la dirección de lectura 126 desde la caché DRAM 104 (bloque 314). A este respecto, el circuito de gestión de la caché DRAM 102 se puede denominar en la presente memoria "un medio para leer los datos para la dirección de lectura desde la caché DRAM, en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM".
Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 312 que los datos de la caché DRAM 104 son limpios y/o el circuito de gestión de la caché DRAM 102 funciona en un modo de escritura inmediata, los datos solicitados se pueden leer de manera segura desde el la memoria DRAM del sistema 108 o desde la caché DRAM 104. En consecuencia, el circuito de equilibrio de carga 142 del circuito de gestión de la caché DRAM 102 identifica una fuente de datos preferente de entre la caché DRAM 104 y la memoria DRAM del sistema 108 en base a criterios de equilibrio de carga tales como el ancho de banda y la latencia, como ejemplos no limitativos (bloque 316). Si el circuito de equilibrio de carga 142 determina que la memoria DRAM del sistema 108 es la fuente de datos preferente, los datos en la dirección de lectura 126 se pueden leer desde la memoria DRAM del sistema 108 (bloque 318). De manera similar, si el circuito de equilibrio de carga 142 determina que la caché DRAM 104 es la fuente de datos preferente, los datos para la dirección de lectura 126 se pueden leer desde la caché DRAM 104 (bloque 320).
Para ilustrar operaciones ilustrativas del circuito de gestión de la caché DRAM 102 de la Figura 1 para realizar una operación de escritura resultante de un desalojo de los datos limpios (es decir, los no modificados) de la caché del sistema 112 en un modo de escritura inmediata o en un modo de reescritura, se proporcionan las Figuras 4A-4C. En aras de la claridad, se hace referencia a los elementos de la Figura 1 en la descripción de las Figuras 4A-4C. Las operaciones de la Figura 4A comienzan con el circuito de gestión de la caché DRAM 102 que recibe la solicitud de escritura en memoria 128 que comprende la dirección de escritura 130 y los datos de escritura 132 (bloque 400). En este ejemplo, los datos de escritura 132 representan los datos limpios (es decir, los no modificados) desalojados de la caché del sistema 112 y, por tanto, se denominan en la presente memoria como "datos 132 limpios desalojados".
El circuito de gestión de la caché DRAM 102 determina si la dirección de escritura 130 de los datos 132 desalojados limpios se encuentra en la caché indicadora de la caché DRAM 134 (bloque 402). Si la dirección de escritura 130 no está presente en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 repone de manera probabilística la caché indicadora de la caché DRAM 134 (por ejemplo, copiando una entrada 118(0)-118(M) de la tabla maestra de la tabla maestra 116 a la caché indicadora desde la caché DRAM 134) (bloque 404). Si la caché indicadora de la caché DRAM 134 no se repone en el bloque 404 (es decir, se determinó de manera probabilística que la reposición no ocurre), el procesamiento está completo (bloque 406). De otro modo, el circuito de gestión de la caché DRAM 102 reanuda el procesamiento en el bloque 408.
Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 402 que la dirección de escritura 130 de los datos 132 expulsados limpios está presente en la caché 134 de indicador de la caché DRAM (o si la caché 134 de indicador de la caché DRAM se repone en el bloque 404), la DRAM El circuito de gestión de caché 102 determina a continuación si la dirección de escritura 130 de los datos limpios desalojados 132 está presente en la caché DRAM 104 (bloque 408). Si la dirección de escritura 130 está presente en la caché DRAM 104, el procesamiento está completo (bloque 406). Sin embargo, si la dirección de escritura 130 de los datos 132 desalojados limpios no está presente en la caché DRAM 104, el procesamiento se reanuda en el bloque 410 de la Figura 4B.
Con referencia ahora a la figura 4B, el circuito de gestión de la caché DRAM 102 escribe a continuación de manera probabilística la dirección de escritura 130 y los datos 132 limpios desalojados en la caché DRAM 104 (bloque 410). En algunos aspectos, las operaciones del bloque 410 para escribir la dirección de escritura 130 y los datos 132 desalojados limpios en la caché DRAM 104 pueden incluir primero seleccionar de manera aleatoria una ruta 122(0)-122(Z) para ser desalojada de la caché Dr A m 104 (bloque 412). El circuito de gestión de la caché DRAM 102 lee una dirección de memoria de la ruta 122(0)-122(Z) seleccionada desde la caché DRAM 104 (bloque 414). El circuito de gestión de la caché DRAM 102 escribe entonces la dirección de escritura 130 y los datos 132 desalojados limpios en la ruta 122(0)-122(Z) seleccionada en la caché DRAM 104 (bloque 416). El circuito de gestión de la caché d Ra M 102 actualiza el número de ruta para la dirección de escritura 130 en la caché indicadora de la caché DRAM 134 a un número de ruta de la ruta 122(0)-122(Z) seleccionada (bloque 418). El procesamiento continúa luego en el bloque 420 de la Figura 4C.
Volviendo a la Figura 4C, las operaciones adicionales del bloque 410 para escribir de manera probabilística la dirección de escritura 130 y los datos 132 limpios desalojados en la caché DRAM 104 incluyen el circuito de gestión de la caché DRAM 102 que determina si la dirección de memoria de la ruta 122(0)-122(Z) seleccionada está presente en la caché indicadora de la caché DRAM 134 (bloque 420). Si no es así, el procesamiento se reanuda en el bloque 424 de la Figura 4C. Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 420 que la dirección de memoria de la ruta 122(0)-122(Z) seleccionada está presente en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché Dr Am 102 restablece el número de ruta de la ruta 122(0)-122(Z) seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM 134 (bloque 422).
Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 420 que la dirección de memoria de la ruta 122(0)-122(Z) seleccionada no está presente en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 repone la caché indicadora de la caché DRAM 134 (bloque 424). En algunos aspectos, las operaciones del bloque 424 para reponer la caché indicadora de la caché DRAM 134 incluyen leer la entrada 118(0)-118(M) de la tabla maestra de la ruta 122(0)-122(Z) seleccionada correspondiente a la dirección de memoria desde la tabla maestra 116 en la memoria DRAM del sistema 108 (bloque 426). El circuito de gestión de la caché DRAM 102 en algunos aspectos puede escribir a continuación el número de la ruta 122(0)-122(Z) seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM 134 en base a la entrada 118(0)-118(M) de la tabla maestra (bloque 428). En algunos aspectos, el circuito de gestión de la caché DRAM 102 restablece el número de la ruta 122(0)-122(Z) seleccionada correspondiente a la dirección de memoria (bloque 430). El circuito de gestión de la caché DRAM 102 luego escribe el número de ruta en la tabla maestra 116 en la memoria DRAM del sistema 108 (sin instalar la entrada 118(0)-118(M) de la tabla maestra en la caché indicadora de la caché DRAM 134) (bloque 432).
Las Figuras 5A-5C se proporcionan para ilustrar operaciones ilustrativas del circuito de gestión de la caché DRAM 102 de la Figura 1 para realizar una operación de escritura resultante de una expulsión de los datos sucios de la caché del sistema 112 en un modo de escritura inmediata. Se hace referencia a los elementos de la Figura 1 en la descripción de las Figuras 5A-5C en aras de la claridad. En la Figura 5A, las operaciones comienzan con el circuito de gestión de la caché DRAM 102 que recibe la solicitud de escritura en memoria 128 que comprende la dirección de escritura 130 y los datos de escritura 132 (bloque 500). Los datos de escritura 132 en el ejemplo de la Figura 5A representan datos sucios (es decir, modificados) expulsados de la caché del sistema 112 y, como resultado, se denominan en la presente memoria "datos sucios desalojados 132".
El circuito de gestión de la caché DRAM 102 determina si la dirección de escritura 130 de los datos sucios desalojados 132 se encuentra en la caché indicadora de la caché DRAM 134 (bloque 502). Si la dirección de escritura 130 no está presente en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 repone de manera probabilística la caché indicadora de la caché DRAM 134 (copiando una entrada 118(0)-118(M) desde la tabla maestra de la tabla maestra 116 a la caché indicadora de la caché DRAM 134, como un ejemplo no limitativo) (bloque 504). Si la caché indicadora de la caché DRAM 134 se repone en el bloque 504 (es decir, se determinó de manera probabilística que se produce la reposición), el procesamiento se reanuda en el bloque 506. De otro modo, el circuito 102 de gestión de la caché DRAM actualiza el indicador 120(0)-120(X) de la caché DRAM correspondiente a la dirección de escritura 130 en la tabla maestra 116 en la memoria DRAM del sistema 108 (por ejemplo, realizando una lectura-modificación-escritura (RMW) en la entrada 118(0)-118(M) de la tabla maestra para el indicador 120(0)-120(X) de la caché DRAM) (bloque 508). El circuito de gestión de la caché DRAM 102 escribe entonces los datos sucios desalojados 132 en la caché DRAM 104 (bloque 510). Se debe entender que, en algunos aspectos, las operaciones del bloque 508 para actualizar el indicador 120(0)-120(X) de la caché DRAM y las operaciones del bloque 510 para escribir los datos sucios desalojados 132 en la caché DRAM 104 se pueden llevar a cabo en paralelo.
Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 502 que la dirección de escritura 130 de los datos sucios desalojados 132 se encuentra en la caché indicadora de la caché DRAM 134 (o si la caché indicadora de la caché DRAM 134 se repone en el bloque 504), El circuito de gestión de la caché DRAM 102 determina a continuación si la dirección de escritura 130 de los datos sucios desalojados 132 se encuentra en la caché DRAM 104 (bloque 506). Si la dirección de escritura 130 no se encuentra en la caché DRAM 104, el procesamiento se reanuda en el bloque 512 de la Figura 5B. Sin embargo, si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 506 que la dirección de escritura 130 se encuentra en la caché DRAM 104, el circuito de gestión de la caché DRAM 102 escribe los datos sucios desalojados 132 en la caché DRAM 104 (por ejemplo, realizando una no-expulsión-escritura en la caché DRAM 104) (bloque 514). El circuito de gestión de la caché DRAM 102 escribe entonces los datos sucios desalojados 132 en la memoria DRAM del sistema 108 (bloque 516).
Volviendo a la Figura 5B, el circuito de gestión de la caché DRAM 102 escribe a continuación de manera probabilística la dirección de escritura 130 y los datos sucios desalojados 132 en la caché DRAM 104 (bloque 512). Algunos aspectos pueden proporcionar que las operaciones del bloque 512 para escribir la dirección de escritura 130 y los datos sucios desalojados 132 en la caché DRAM 104 pueden incluir primero el seleccionar de manera aleatoria una ruta 122(0)-122(Z) para ser desalojada de la caché DRAM 104 (bloque 518). Una dirección de memoria de la ruta 122(0)-122(Z) seleccionada se lee desde la caché DRAM 104 por el circuito de gestión de la caché DRAM 102 (bloque 520). El circuito de gestión de la caché DRAM 102 escribe entonces la dirección de escritura 130 y los datos sucios desalojados 132 en la ruta 122(0)-122(Z) seleccionada en la caché DRAM 104 (bloque 522). El circuito de gestión de la caché DRAM 102 actualiza el número de ruta para la dirección de escritura 130 en la caché indicadora de la caché DRAM 134 a un número de ruta de la ruta 122(0)-122(Z) seleccionada (bloque 524). El procesamiento continúa luego en el bloque 526 de la Figura 5C.
Con referencia ahora a la Figura 5C, las operaciones adicionales del bloque 512 para escribir de manera probabilística la dirección de escritura 130 y los datos sucios desalojados 132 en la caché DRAM 104 incluyen el circuito de gestión de la caché DRAM 102 que determina si una dirección de memoria de la ruta 122(0)-122(Z) seleccionada está presente en la caché indicadora de la caché DRAM 134 (bloque 526). Si no es así, el procesamiento se reanuda en el bloque 528 de la Figura 5C. Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 526 que la dirección de memoria de la ruta 122(0)-122(Z) seleccionada está presente en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 restablece el número de ruta de la ruta 122(0)-122(Z) seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM 134 (bloque 530).
Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 526 que la dirección de memoria de la ruta 122(0)-122(Z) seleccionada no está presente en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 repone la caché indicadora de la caché DRAM 134 (bloque 528). En algunos aspectos, las operaciones del bloque 528 para reponer la caché indicadora de la caché DRAM 134 incluyen leer la entrada 118(0)-118(M) de la tabla maestra de la ruta 122(0)-122(Z) seleccionada correspondiente a la dirección de memoria de la tabla maestra 116 en la memoria DRAM del sistema 108 (bloque 532). El circuito de gestión de la caché DRAM 102 en algunos aspectos puede escribir a continuación el número de la ruta 122(0)-122(Z) seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM 134 en base a la entrada 118(0)-118(M) de la tabla maestra (bloque 534). En algunos aspectos, el circuito de gestión de la caché DRAM 102 restablece el número de la ruta 122(0)-122(Z) seleccionada correspondiente a la dirección de memoria (bloque 536). El circuito de gestión de la caché DRAM 102 luego escribe el número de ruta en la tabla maestra 116 en la memoria DRAM del sistema 108 (sin instalar la entrada 118(0)-118(M) de la tabla maestra en la caché indicadora de la caché DRAM 134) (bloque 538).
Para ilustrar las operaciones ilustrativas del circuito de gestión de la caché DRAM 102 de la Figura 1 para realizar una operación de escritura resultante de un desalojo de los datos sucios de la caché del sistema 112 en un modo de reescritura, se proporcionan las Figuras 6A-6D. En aras de la claridad, se hace referencia a los elementos de la Figura 1 en la descripción de las Figuras 6A-6D. Las operaciones de la Figura 6A comienzan con el circuito de gestión de la caché DRAM 102 que recibe la solicitud de escritura en memoria 128 que comprende la dirección de escritura 130 y los datos de escritura 132 (bloque 600). Como en la Figura 5A, los datos de escritura 132 en el ejemplo de la Figura 6A representan los datos sucios (es decir, los modificados) expulsados de la caché del sistema 112 y, como resultado, se denominan en la presente memoria "datos sucios desalojados 132".
El circuito de gestión de la caché DRAM 102 determina si la dirección de escritura 130 de los datos sucios desalojados 132 se encuentra en la caché indicadora de la caché DRAM 134 (bloque 602). Si la dirección de escritura 130 no está presente en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 repone de manera probabilística la caché indicadora de la caché DRAM 134 (por ejemplo, copiando una entrada 118(0)-118(M) de la tabla maestra de la tabla maestra 116 a la caché indicadora desde la caché DRAM 134) (bloque 604). Si la caché indicadora de la caché DRAM 134 se repone en el bloque 604 (es decir, se determinó de manera probabilística que se produce la reposición), el procesamiento se reanuda en el bloque 606. De otro modo, el circuito 102 de gestión de la caché DRAM actualiza el indicador 120(0)-120(X) de la caché DRAM correspondiente a la dirección de escritura 130 en la tabla maestra 116 en la memoria DRAM del sistema 108 (por ejemplo, realizando una lectura-modificación-escritura (RMW) en la entrada 118(0)-118(M) de la tabla maestra para el indicador 120(0)-120(X) de la caché DRAM) (bloque 608). El circuito de gestión de la caché DRAM 102 escribe entonces los datos sucios desalojados 132 en la caché DRAM 104 (bloque 610). Se debe entender que, en algunos aspectos, las operaciones del bloque 608 para actualizar el indicador 120(0)-120(X) de la caché DRAM y las operaciones del bloque 610 para escribir los datos sucios desalojados 132 en la caché DRAM 104 se pueden llevar a cabo en paralelo.
Algunos aspectos del circuito 102 de gestión de la caché DRAM pueden determinar a continuación si el indicador 120(0)-120(X) de la caché DRAM para la dirección de escritura 130 de la tabla maestra 116 indica que la dirección de escritura 130 está en la caché DRAM 104 (bloque 612). Si no es así, el procesamiento está completo (bloque 614). Sin embargo, si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 612 que el indicador 120(0)-120(X) de la caché DRAM para la dirección de escritura 130 de la tabla maestra 116 indica que la dirección de escritura 130 está en la caché DRAM 104, el circuito de gestión de la caché DRAM 102 escribe los datos sucios desalojados 132 en la caché DRAM 104 (bloque 616).
Volviendo al bloque de decisión 602, si el circuito de gestión de la caché DRAM 102 determina que la dirección de escritura 130 de los datos sucios desalojados 132 se encuentra en la caché indicadora de la caché DRAM 134 (o si la caché indicadora de la caché DRAM 134 se repone en el bloque 604), el circuito de gestión de la caché DRAM 102 determina a continuación si la dirección de escritura 130 de los datos sucios desalojados 132 se encuentra en la caché DRAM 104 (bloque 606). Si la dirección de escritura 130 no se encuentra en la caché DRAM 104, el procesamiento se reanuda en el bloque 618 de la Figura 6B. Sin embargo, si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 606 que la dirección de escritura 130 se encuentra en la caché DRAM 104, el circuito de gestión de la caché DRAM 102 escribe los datos sucios desalojados 132 en la caché DRAM 104 (por ejemplo, realizando una operación de no-expulsión-escritura a la caché DRAM 104) (bloque 616).
Pasando ahora a la Figura 6B, el circuito de gestión de la caché DRAM 102 escribe a continuación de manera probabilística la dirección de escritura 130 y los datos sucios desalojados 132 en la caché DRAM 104 (bloque 618). De acuerdo con algunos aspectos, las operaciones del bloque 618 para escribir la dirección de escritura 130 y los datos sucios desalojados 132 en la caché DRAM 104 pueden incluir primero seleccionar de manera aleatoria una ruta 122(0)-122(Z) para ser desalojada de la caché DRAM 104 (bloque 620). Una dirección de memoria de la ruta 122(0)-122(Z) seleccionada se lee desde la caché DRAM 104 por el circuito de gestión de la caché DRAM 102 (bloque 622). El circuito de gestión de la caché DRAM 102 escribe entonces la dirección de escritura 130 y los datos sucios desalojados 132 en la ruta 122(0)-122(Z) seleccionada en la caché DRAM 104 (bloque 624). El circuito de gestión de la caché DRAM 102 actualiza el número de ruta para la dirección de escritura 130 en la caché indicadora de la caché DRAM 134 a un número de ruta de la ruta 122(0)-122(Z) seleccionada (bloque 626). El circuito de gestión de la caché DRAM 102 también establece un indicador sucio 140(0)-140(C), 140'(0)-140'(C) para la dirección de escritura 130 en la caché indicadora de la caché DRAM 134 (bloque 628). El procesamiento continúa luego en el bloque 630 de la Figura 6C.
En la Figura 6C, las operaciones adicionales del bloque 618 para escribir de manera probabilística la dirección de escritura 130 y los datos sucios desalojados 132 en la caché DRAM 104 incluyen el circuito de gestión de la caché DRAM 102 que determina si una dirección de memoria de la ruta 122(0)-122(Z) seleccionada está presente en la caché indicadora de la caché DRAM 134 (bloque 630). Si no es así, el procesamiento se reanuda en el bloque 632 de la Figura 6D. Si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 630 que la dirección de memoria de la ruta 122(0)-122(Z) seleccionada está presente en la caché indicadora de la caché DRAM 134, el circuito de gestión de la caché DRAM 102 restablece el número de ruta y un indicador sucio 140(0)-140(C), 140'(0)-140'(C) de la ruta 122(0)-122(Z) seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM 134 (bloque 634).
Con referencia ahora a la Figura 6D, si el circuito de gestión de la caché DRAM 102 determina en el bloque de decisión 630 de la Figura 6C que la dirección de memoria de la ruta 122(0)-122(Z) seleccionada no está presente en la caché indicadora de la caché DRAM 134, la el circuito de gestión de la caché DRAM 102 repone la caché indicadora de la caché DRAM 134 (bloque 632). En algunos aspectos, las operaciones del bloque 632 para reponer la caché indicadora de la caché DRAM 134 incluyen leer la entrada 118(0)-118(M) de la tabla maestra de la ruta 122(0)-122(Z) seleccionada correspondiente a la dirección de memoria de la tabla maestra 116 en la memoria DRAM del sistema 108 (bloque 634). El circuito de gestión de la caché DRAM 102 en algunos aspectos puede escribir a continuación el número de la ruta 122(0)-122(Z) seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM 134 en base a la entrada 118(0)-118(M) de la tabla maestra (bloque 636). En algunos aspectos, el circuito de gestión de la caché DRAM 102 restablece el número de la ruta 122(0)-122(Z) seleccionada correspondiente a la dirección de memoria (bloque 638). El circuito de gestión de la caché DRAM 102 luego escribe el número de ruta en la tabla maestra 116 en la memoria DRAM del sistema 108 (sin instalar la entrada 118(0)-118(M) de la tabla maestra en la caché indicadora de la caché DRAM 134) (bloque 640). Si la dirección de escritura 130 y los datos sucios desalojados 132 no se escribieron de manera probabilística en la caché DRAM 104 en el bloque 618, el circuito de gestión de la caché DRAM 102 escribe los datos sucios desalojados 132 en la memoria Dr A m del sistema 108 (bloque 642).
Proporcionar una gestión escalable de la caché DRAM mediante el uso de las cachés indicadoras de la caché DRAM de acuerdo con los aspectos divulgados en la presente memoria se puede proporcionar o integrar en cualquier dispositivo basado en procesador. Los ejemplos, sin limitación, incluyen un decodificador, una unidad de entretenimiento, un dispositivo de navegación, un dispositivo de comunicaciones, una unidad de datos de ubicación fija, una unidad de datos de ubicación móvil, un teléfono móvil, un teléfono celular, un teléfono inteligente, una tableta, un tabléfono, un ordenador, un ordenador portátil, un ordenador de escritorio, un asistente digital personal (PDA), un monitor, un monitor de ordenador, una televisión, un sintonizador, una radio, una radio satelital, un reproductor de música, un reproductor de música digital, un reproductor de música portátil, un reproductor de vídeo digital, un reproductor de vídeo, un reproductor de discos de vídeo digital (DVD), un reproductor de vídeo digital portátil y un automóvil.
A este respecto, la Figura 7 ilustra un ejemplo de un sistema basado en procesador 700 que puede emplear el circuito de gestión de la caché DRAM 102 (DCMC) ilustrado en la Figura 1. El sistema basado en procesador 700 incluye una o más unidades centrales de procesamiento (CPU) 702, cada una de las cuales incluye uno o más procesadores 704. La(s) CPU 702 puede(n) tener una caché 706 acoplada al (los) procesador(es) 704 para un acceso rápido a los datos almacenados de manera temporal. La(s) CPU 702 se acopla(n) a un bus de sistema 708 y puede(n) interconectar dispositivos maestros y esclavos incluidos en el sistema basado en procesador 700. Como es bien conocido, la(s) CPU 702 se comunica(n) con estos otros dispositivos intercambiando la información de la dirección, el control y los datos a través del bus del sistema 708. Por ejemplo, la(s) CPU 702 puede(n) comunicar las solicitudes de transacciones de bus a un controlador de memoria 710 como un ejemplo de un dispositivo esclavo.
Se pueden conectar otros dispositivos maestro y esclavo al bus del sistema 708. Como se ilustra en la Figura 7, estos dispositivos pueden incluir un sistema de memoria 712, uno o más dispositivos de entrada 714, uno o más dispositivos de salida 716, uno o más dispositivos de interfaz de red 718 y uno o más controladores de pantalla 720, como ejemplos. El (Los) dispositivo(s) de entrada 714 puede(n) incluir cualquier tipo de dispositivo de entrada, incluidos, entre otros, las teclas de entrada, los interruptores, los procesadores de voz, etc. El (Los) dispositivo(s) de salida 716 puede(n) incluir cualquier tipo de dispositivo de salida, incluidos, entre otros, el audio, el vídeo, los otros indicadores visuales, etc. El (Los) dispositivo(s) de interfaz de red 718 puede(n) ser cualquier dispositivo configurado para permitir el intercambio de datos hacia y desde una red 722. La red 722 puede ser cualquier tipo de red, incluidas, entre otras, una red cableada o inalámbrica, una red privada o pública, una red de área local (LAN), una red de área local inalámbrica (WLAN), una red de área amplia (WAN), una red BLUETOOTH™ , e Internet. El (Los) dispositivo(s) de interfaz de red 718 se puede(n) configurar para admitir cualquier tipo de protocolo de comunicaciones deseado. El sistema de memoria 712 puede incluir una o más unidades de memoria 724(0)-724(N).
La(s) CPU 702 también se puede(n) configurar para acceder al (a los) controlador(es) de pantalla 720 a través del bus del sistema 708 para controlar la información enviada a una o más pantallas 726. El (los) controlador(es) de pantalla 720 envía(n) información a la(s) pantalla(s) 726 para que se muestre a través de uno o más procesadores de vídeo 728, que procesan la información a mostrar en un formato adecuado para la(s) pantalla(s) 726. La(s) pantalla(s) 726 puede(n) incluir cualquier tipo de pantalla, incluidos, entre otros, un tubo de rayos catódicos (CRT), una pantalla de cristal líquido (LCD), una pantalla de plasma, etc.
Los expertos en la técnica apreciarán además que los diversos bloques, módulos, circuitos y algoritmos lógicos ilustrativos descritos en relación con los aspectos divulgados en la presente memoria se pueden implementar como hardware electrónico, instrucciones almacenadas en la memoria o en otro medio legible por ordenador y ejecutadas por un procesador u otro dispositivo de procesamiento, o como combinaciones de ambos. Los dispositivos maestros y los dispositivos esclavos descritos en la presente memoria se pueden emplear en cualquier circuito, componente de hardware, circuito integrado (IC), o chip IC, como ejemplos. La memoria divulgada en la presente memoria puede ser de cualquier tipo y tamaño de memoria y se puede configurar para almacenar cualquier tipo de información deseada. Para ilustrar de manera clara esta intercambiabilidad, varios componentes, bloques, módulos, circuitos, y etapas ilustrativos se han descrito anteriormente de manera general en términos de su funcionalidad. Como se implementa tal funcionalidad depende de la aplicación particular, de las opciones de diseño y/o de las limitaciones de diseño impuestas al sistema en general. Los expertos en la técnica pueden implementar la funcionalidad descrita de diversos modos para cada solicitud particular, pero tales decisiones de implementación no se deben interpretar como que provocan una desviación del ámbito de la presente divulgación.
Los varios bloques lógicos, módulos y circuitos ilustrativos descritos en relación con los aspectos divulgados en la presente memoria se pueden implementar o realizar con un procesador, un procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC), una matriz de puertas programable en campo (FPGA) u otro dispositivo lógico programable, puerta discreta o lógica de transistor, componentes de hardware discretos, o cualquier combinación de los mismos diseñados para realizar las funciones descritas en la presente memoria. Un procesador puede ser un microprocesador, pero en la alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador, o máquina de estado convencionales. Un procesador también se puede implementar como una combinación de dispositivos informáticos (por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP, o cualquier otra de tal configuración).
Los aspectos divulgados en la presente memoria se pueden incorporar en el hardware y en las instrucciones que se almacenan en el hardware y pueden residir, por ejemplo, en Memoria de Acceso Aleatorio (RAM), en memoria flash, en Memoria de Solo Lectura (ROM), en ROM Eléctricamente Programable (EPROM), en ROM Eléctricamente Programable Borrable (EEPROM ), en registros, en un disco duro, en un disco extraíble, en un CD-ROM, o en cualquier otra forma de medio legible por ordenador conocido en la técnica. Un medio de almacenamiento ilustrativo se acopla al procesador de manera que el procesador pueda leer la información desde, y escribir la información en, el medio de almacenamiento. Como alternativa, el medio de almacenamiento se puede integrar al procesador. El procesador y el medio de almacenamiento pueden residir en un ASIC. El ASIC puede residir en una estación remota. En la alternativa, el procesador y el medio de almacenamiento pueden residir como componentes discretos en una estación remota, una estación base, o en un servidor.
También se observa que los pasos operativos descritos en cualquiera de los aspectos ilustrativos en la presente memoria se describen para proporcionar ejemplos y debate. Las operaciones descritas se pueden realizar en numerosas secuencias diferentes distintas de las secuencias ilustradas. Además, las operaciones descritas en un solo paso operativo se pueden realizar realmente en un número de pasos diferentes. Adicionalmente, uno o más pasos operativos debatidos en los aspectos ilustrativos se pueden combinar. Se debe entender que los pasos operativos ilustrados en los diagramas de flujograma pueden estar sujetos a numerosas modificaciones diferentes, como resultará fácilmente evidente para un experto en la técnica. Los expertos en la técnica también entenderán que la información y las señales se pueden representar mediante el uso de cualquiera de una variedad de tecnologías y técnicas diferentes. Por ejemplo, los datos, las instrucciones, los comandos, la información, las señales, los bits, los símbolos, y los chips que se pueden referenciar a lo largo de la descripción anterior se pueden representar por tensiones, corrientes, ondas electromagnéticas, campos o partículas magnéticas, campos o partículas ópticas, o cualquier combinación de los mismos.
La descripción previa de la divulgación se proporciona para permitir que cualquier persona experta en la técnica use la presente divulgación.

Claims (15)

  1. REIVINDICACIONES
    i. Una memoria dinámica de acceso aleatorio, DRAM, el circuito de gestión de la caché (102), acoplado de manera comunicativa a una caché DRAM (104) que es parte de una memoria de gran ancho de banda (106) y que además se acopla de manera comunicativa a una memoria DRAM del sistema (108), en la que:
    la caché DRAM se configura para almacenar las líneas de memoria de la caché (114(0)-114(X)) desde la memoria DRAM del sistema;
    la memoria DRAM del sistema se configura para almacenar una tabla maestra (116) para almacenar los indicadores de la caché (118(0)-118(M)) para las líneas de memoria en la memoria del sistema, en la que un indicador de la caché indica si una línea de memoria correspondiente se almacena en la caché DRAM; el circuito de gestión de la caché DRAM que comprende una caché indicadora de la caché DRAM (134) configurado para almacenar en caché una pluralidad de indicadores de la caché DRAM leídos desde la tabla maestra en la memoria DRAM del sistema, en el que: el circuito de gestión de la caché DRAM se configura para:
    recibir una solicitud de lectura de memoria (124) que comprende una dirección de lectura (126) que especifica una dirección de memoria desde la cual recuperar los datos;
    determinar si la dirección de lectura se encuentra en la caché indicadora de la caché DRAM;
    en respuesta a determinar que la dirección de lectura no se encuentra en la caché indicadora de la caché DRAM, leer los datos en la dirección de lectura en la memoria DRAM del sistema; y
    en respuesta a determinar que la dirección de lectura se encuentra en la caché indicadora de la caché DRAM:
    determinar, en base a la caché indicadora de la caché DRAM, si la dirección de lectura se encuentra en la caché DRAM;
    en respuesta a determinar que la dirección de lectura no se encuentra en la caché DRAM, leer los datos en la dirección de lectura en la memoria DRAM del sistema; y
    en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM, leer los datos para la dirección de lectura desde la caché DRAM.
  2. 2. El circuito de gestión de la caché DRAM de la reivindicación 1, configurado para operar en un modo de reescritura, y configurado además para, en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM, determinar si los datos para la dirección de lectura en la caché DRAM están limpios; en el que el circuito de gestión de la caché DRAM se configura para leer los datos de la dirección de lectura desde la caché DRAM en respuesta adicional a determinar que los datos para la dirección de lectura en la caché DRAM no están limpios.
  3. 3. El circuito de gestión de la caché DRAM de la reivindicación 2, configurado además para, en respuesta a determinar que los datos para la dirección de lectura en la caché DRAM están limpios:
    identificar, en base a un circuito de equilibrio de carga (142) del circuito de gestión de la caché DRAM, una fuente de datos preferente de entre la caché DRAM y la memoria DRAM del sistema;
    en respuesta a identificar la caché DRAM como la fuente de datos preferente, leer los datos desde la caché DRAM; y
    en respuesta a identificar la memoria DRAM del sistema como la fuente de datos preferente, leer los datos desde la memoria DRAM del sistema.
  4. 4. El circuito de gestión de la caché DRAM de la reivindicación 1, configurado para operar en un modo de escritura inmediata, y configurado además para, en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM:
    identificar, en base a un circuito de equilibrio de carga (142) del circuito de gestión de la caché DRAM, una fuente de datos preferente de entre la caché DRAM y la memoria DRAM del sistema; y
    en respuesta a identificar la memoria DRAM del sistema como la fuente de datos preferente, leer los datos desde la memoria DRAM del sistema;
    en el que el circuito de gestión de la caché DRAM se configura para leer los datos para la dirección de lectura de la caché DRAM en respuesta adicional a determinar que los datos de la dirección de lectura en la caché DRAM están limpios e identifican la caché DRAM como la fuente de datos preferente.
  5. 5. El circuito de gestión de la caché DRAM de la reivindicación 1, en el que:
    el circuito de gestión de la caché DRAM se:
    acopla además a una caché del sistema (112); y
    configura para recibir la solicitud de lectura de memoria que comprende la dirección de lectura en respuesta a un fallo en la caché del sistema.
  6. 6. El circuito de gestión de la caché DRAM de la reivindicación 1, configurado para operar en un modo de escritura inmediata, y configurado además para:
    recibir, desde una caché del sistema, una solicitud de escritura en memoria que comprende una dirección de escritura y los datos de escritura que comprenden los datos sucios desalojados;
    determinar si la dirección de escritura se encuentra en la caché DRAM;
    en respuesta a determinar que la dirección de escritura no se encuentra en la caché DRAM, escribir de manera probabilística la dirección de escritura y los datos sucios desalojados en la caché DRAM;
    en respuesta a determinar que la dirección de escritura se encuentra en la caché DRAM, escribir los datos sucios desalojados en la caché DRAM; y
    escribir los datos sucios desalojados en la memoria DRAM del sistema.
  7. 7. El circuito de gestión de la caché DRAM de la reivindicación 6, configurado además para, antes de determinar si la dirección de escritura se encuentra en la caché DRAM:
    determinar si la dirección de escritura se encuentra en la caché indicadora de la caché DRAM; y en respuesta a determinar que la dirección de escritura no se encuentra en la caché indicadora de la caché DRAM, reponer de manera probabilística la caché indicadora de la caché DRAM;
    en respuesta a no reponer la caché indicadora de la caché DRAM:
    actualizar un indicador de la caché DRAM correspondiente a la dirección de escritura en la tabla maestra; y escribir los datos sucios desalojados en la caché DRAM;
    en el que el circuito de gestión de la caché DRAM se configura para determinar si la dirección de escritura se encuentra en la caché DRAM en respuesta a reponer la caché indicadora de la caché DRAM.
  8. 8. El circuito de gestión de la caché DRAM de la reivindicación 6, configurado para escribir de manera probabilística la dirección de escritura y los datos sucios desalojados en la caché DRAM al configurarse para: seleccionar una ruta (122(0)-122(Z)) a desalojar de la caché DRAM;
    leer una dirección de memoria de la ruta seleccionada desde la caché DRAM;
    escribir la dirección de escritura y los datos sucios desalojados en la ruta seleccionada en la caché DRAM; actualizar el número de ruta para la dirección de escritura en la caché indicadora de la caché DRAM a un número de ruta de la ruta seleccionada;
    determinar si la dirección de memoria de la ruta seleccionada está presente en la caché indicadora de la caché DRAM; y
    en respuesta a determinar que la dirección de memoria de la ruta seleccionada está presente en la caché indicadora de la caché DRAM, restablecer el número de la ruta seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM.
  9. 9. El circuito de gestión de la caché DRAM de la reivindicación 8, en el que:
    el circuito de gestión de la caché DRAM se configura además para, en respuesta a determinar que la dirección de memoria de la ruta seleccionada no está presente en la caché indicadora de la caché DRAM, reponer la caché indicadora de la caché DRAM al configurarse para:
    leer una entrada de la tabla maestra de la ruta seleccionada correspondiente a la dirección de memoria; y escribir el número de ruta de la ruta seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM en base a la entrada de la tabla maestra.
  10. 10. El circuito de gestión de la caché DRAM de la reivindicación 1, configurado para operar en un modo de reescritura, y configurado además para:
    recibir, desde una caché del sistema, una solicitud de escritura en memoria que comprende una dirección de escritura y los datos de escritura que comprenden los datos sucios desalojados;
    determinar si la dirección de escritura se encuentra en la caché DRAM;
    en respuesta a determinar que la dirección de escritura no se encuentra en la caché DRAM, escribir de manera probabilística la dirección de escritura y los datos sucios desalojados en la caché DRAM;
    en respuesta a no escribir la dirección de escritura y los datos sucios desalojados en la caché DRAM, escribir los datos sucios desalojados en la memoria DRAM del sistema; y
    en respuesta a determinar que la dirección de escritura se encuentra en la caché DRAM, escribir los datos sucios desalojados en la caché DRAM.
  11. 11. El circuito de gestión de la caché DRAM de la reivindicación 10, configurado además para, antes de determinar si la dirección de escritura se encuentra en la caché DRAM:
    determinar si la dirección de escritura se encuentra en la caché indicadora de la caché DRAM; y
    en respuesta a determinar que la dirección de escritura no se encuentra en la caché indicadora de la caché DRAM, reponer de manera probabilística la caché indicadora de la caché DRAM;
    en respuesta a no reponer la caché indicadora de la caché DRAM:
    leer un indicador de la caché DRAM para la dirección de escritura de la tabla maestra;
    escribir los datos sucios desalojados en la memoria DRAM del sistema; y
    determinar si el indicador de la caché DRAM para la dirección de escritura de la tabla maestra indica que la dirección de escritura está en la caché DRAM;
    en el que el circuito de gestión de la caché DRAM se configura para determinar si la dirección de escritura se encuentra en la caché DRAM en respuesta a reponer la caché indicadora de la caché DRAM.
  12. 12. El circuito de gestión de la caché DRAM de la reivindicación 10, configurado para escribir de manera probabilística la dirección de escritura y los datos sucios desalojados en la caché DRAM al configurarse para: seleccionar una ruta a desalojar de la caché DRAM;
    leer una dirección de memoria de la ruta seleccionada desde la caché DRAM;
    después de leer la dirección de memoria de la ruta seleccionada desde la caché DRAM, escribir la dirección de escritura y los datos sucios desalojados en la ruta seleccionada en la caché DRAM;
    actualizar un número de ruta para la dirección de escritura en la caché indicadora de la caché DRAM a un número de ruta de la ruta seleccionada;
    establecer un indicador sucio para la dirección de escritura en la caché indicadora de la caché DRAM; determinar si la dirección de memoria de la ruta seleccionada está presente en la caché indicadora de la caché DRAM; y
    en respuesta a determinar que la dirección de memoria de la ruta seleccionada está presente en la caché indicadora de la caché DRAM, restablecer el número de la ruta y el indicador sucio para la dirección de escritura de la ruta seleccionada en la caché indicadora de la caché DRAM.
  13. 13. El circuito de gestión de la caché DRAM de la reivindicación 12, configurado además para, en respuesta a determinar que la dirección de memoria de la ruta seleccionada no está presente en la caché indicadora de la caché DRAM:
    reponer la caché indicadora de la caché DRAM al configurarse para:
    leer una entrada de la tabla maestra de la ruta seleccionada correspondiente a la dirección de memoria; y escribir el número de ruta de la ruta seleccionada para la dirección de memoria en la caché indicadora de la caché DRAM en base a la entrada de la tabla maestra.
  14. 14. Un procedimiento para proporcionar la gestión escalable de la caché de la memoria dinámica de acceso aleatorio, DRAM, para una caché DRAM, la caché DRAM se configura para almacenar en la caché las líneas de memoria (114(0)-114(X)) dentro de una memoria DRAM del sistema, comprendiendo la memoria DRAM del sistema una tabla maestra (116), la tabla maestra para almacenar los indicadores (118(0)-118(M)) de la caché para las líneas de memoria en la memoria del sistema, en la que un indicador de la caché indica si una línea de memoria se almacena en la caché DRAM, comprendiendo el procedimiento:
    almacenar en caché, en una caché indicadora de la caché DRAM (134), de un circuito de gestión de la caché DRAM, una pluralidad de indicadores de la caché DRAM leídos desde la tabla maestra en la memoria DRAM del sistema,
    recibir (300), mediante el circuito de gestión de la caché DRAM, una solicitud de lectura de memoria que comprende una dirección de lectura que especifica una dirección de memoria desde la cual recuperar los datos;
    determinar (302) si la dirección de lectura se encuentra en la caché indicadora de la caché DRAM;
    en respuesta a determinar que la dirección de lectura no se encuentra en la caché indicadora de la caché DRAM, leer (304) los datos en la dirección de lectura en una memoria DRAM del sistema; y
    en respuesta a determinar que la dirección de lectura se encuentra en la caché indicadora de la caché DRAM:
    determinar (308), en base a la caché indicadora de la caché DRAM, si la dirección de lectura se encuentra en una caché DRAM que es parte de una memoria de gran ancho de banda;
    en respuesta a determinar que la dirección de lectura no se encuentra en la caché DRAM, leer (310) los datos en la dirección de lectura en la memoria DRAM del sistema; y
    en respuesta a determinar que la dirección de lectura se encuentra en la caché DRAM, leyendo (312) los datos para la dirección de lectura desde la caché DRAM.
  15. 15. Un medio legible por ordenador no transitorio que almacena las instrucciones ejecutables por ordenador que hacen que el circuito de gestión de la caché DRAM de las reivindicaciones 1 a 13 realice un procedimiento de acuerdo con la reivindicación 14.
ES17704933T 2016-02-22 2017-02-01 Proporcionar una gestión escalable de la caché de la memoria dinámica de acceso aleatorio (DRAM) mediante el uso de las cachés indicadoras de la caché DRAM Active ES2870516T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662298088P 2016-02-22 2016-02-22
US15/228,320 US10176096B2 (en) 2016-02-22 2016-08-04 Providing scalable dynamic random access memory (DRAM) cache management using DRAM cache indicator caches
PCT/US2017/016005 WO2017146882A1 (en) 2016-02-22 2017-02-01 Providing scalable dynamic random access memory (dram) cache management using dram cache indicator caches

Publications (1)

Publication Number Publication Date
ES2870516T3 true ES2870516T3 (es) 2021-10-27

Family

ID=59629409

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17704933T Active ES2870516T3 (es) 2016-02-22 2017-02-01 Proporcionar una gestión escalable de la caché de la memoria dinámica de acceso aleatorio (DRAM) mediante el uso de las cachés indicadoras de la caché DRAM

Country Status (11)

Country Link
US (1) US10176096B2 (es)
EP (1) EP3420460B1 (es)
JP (1) JP2019509557A (es)
KR (1) KR20180113536A (es)
CN (1) CN108701093A (es)
BR (1) BR112018017135A2 (es)
ES (1) ES2870516T3 (es)
HK (1) HK1256013A1 (es)
SG (1) SG11201805988VA (es)
TW (1) TW201732599A (es)
WO (1) WO2017146882A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783083B2 (en) * 2018-02-12 2020-09-22 Stmicroelectronics (Beijing) Research & Development Co. Ltd Cache management device, system and method
CN109669882B (zh) * 2018-12-28 2021-03-09 贵州华芯通半导体技术有限公司 带宽感知的动态高速缓存替换方法、装置、系统和介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256512B (en) 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US6029224A (en) * 1995-06-07 2000-02-22 Lucent Technologies Inc. Self-contained memory apparatus having diverse types of memory and distributed control
US6173368B1 (en) * 1995-12-18 2001-01-09 Texas Instruments Incorporated Class categorized storage circuit for storing non-cacheable data until receipt of a corresponding terminate signal
US5752262A (en) * 1996-07-25 1998-05-12 Vlsi Technology System and method for enabling and disabling writeback cache
US6092155A (en) * 1997-07-10 2000-07-18 International Business Machines Corporation Cache coherent network adapter for scalable shared memory processing systems
US6327645B1 (en) * 1999-11-08 2001-12-04 Silicon Integrated Systems Corp. Cache memory system with memory request address queue, cache write address queue, and cache read address queue
US7146454B1 (en) * 2002-04-16 2006-12-05 Cypress Semiconductor Corporation Hiding refresh in 1T-SRAM architecture
US20030204702A1 (en) * 2002-04-30 2003-10-30 Adc Dsl Systems, Inc. Flexible memory architecture for an embedded processor
JP3953903B2 (ja) * 2002-06-28 2007-08-08 富士通株式会社 キャッシュメモリ装置、及び、参照履歴のビット誤り検出方法
US7660998B2 (en) 2002-12-02 2010-02-09 Silverbrook Research Pty Ltd Relatively unique ID in integrated circuit
US6880047B2 (en) * 2003-03-28 2005-04-12 Emulex Design & Manufacturing Corporation Local emulation of data RAM utilizing write-through cache hardware within a CPU module
US7613870B2 (en) * 2004-11-18 2009-11-03 International Business Machines Corporation Efficient memory usage in systems including volatile and high-density memories
US7958312B2 (en) 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US8593474B2 (en) * 2005-12-30 2013-11-26 Intel Corporation Method and system for symmetric allocation for a shared L2 mapping cache
GB2458295B (en) * 2008-03-12 2012-01-11 Advanced Risc Mach Ltd Cache accessing using a micro tag
US8799582B2 (en) * 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
US9086973B2 (en) 2009-06-09 2015-07-21 Hyperion Core, Inc. System and method for a cache in a multi-core processor
US20130254491A1 (en) * 2011-12-22 2013-09-26 James A. Coleman Controlling a processor cache using a real-time attribute
WO2013095639A1 (en) 2011-12-23 2013-06-27 Intel Corporation Utility and lifetime based cache replacement policy
US9286221B1 (en) * 2012-06-06 2016-03-15 Reniac, Inc. Heterogeneous memory system
US8819342B2 (en) * 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
US9348753B2 (en) * 2012-10-10 2016-05-24 Advanced Micro Devices, Inc. Controlling prefetch aggressiveness based on thrash events
US20150095582A1 (en) * 2013-09-30 2015-04-02 Avaya, Inc. Method for Specifying Packet Address Range Cacheability
KR101944378B1 (ko) 2014-03-29 2019-04-17 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 메모리 장치에서의 동적 캐시 사이징 방법 및 이를 포함하는 프로세서
US20150293847A1 (en) * 2014-04-13 2015-10-15 Qualcomm Incorporated Method and apparatus for lowering bandwidth and power in a cache using read with invalidate
US9356602B1 (en) * 2015-05-14 2016-05-31 Xilinx, Inc. Management of memory resources in a programmable integrated circuit

Also Published As

Publication number Publication date
WO2017146882A1 (en) 2017-08-31
US10176096B2 (en) 2019-01-08
EP3420460A1 (en) 2019-01-02
TW201732599A (zh) 2017-09-16
JP2019509557A (ja) 2019-04-04
HK1256013A1 (zh) 2019-09-13
CN108701093A (zh) 2018-10-23
KR20180113536A (ko) 2018-10-16
US20170242793A1 (en) 2017-08-24
SG11201805988VA (en) 2018-09-27
EP3420460B1 (en) 2021-04-07
BR112018017135A2 (pt) 2019-01-02

Similar Documents

Publication Publication Date Title
EP3516523B1 (en) Providing flexible management of heterogeneous memory systems using spatial quality of service (qos) tagging in processor-based systems
JP5917782B2 (ja) プロセッサベースのシステムにおける異種メモリアクセス要求をサポートするための、異種メモリシステム、ならびに関連する方法およびコンピュータ可読媒体
US20170212840A1 (en) Providing scalable dynamic random access memory (dram) cache management using tag directory caches
US20130185511A1 (en) Hybrid Write-Through/Write-Back Cache Policy Managers, and Related Systems and Methods
CN108885585B (zh) 在基于中央处理单元(cpu)的系统中使用多个末级高速缓冲存储器(llc)线提供存储器带宽压缩
TWI773683B (zh) 使用在以一中央處理器單元為基礎的系統中之適應性壓縮提供記憶體頻寬壓縮
EP3513295A1 (en) Providing memory bandwidth compression in chipkill-correct memory architectures
WO2019032455A1 (en) MONITORING INVERSION OF DATA BITS IN HIDDEN MEMORY TO REDUCE WRITTEN DATA BITS FOR WRITE OPERATIONS
ES2870516T3 (es) Proporcionar una gestión escalable de la caché de la memoria dinámica de acceso aleatorio (DRAM) mediante el uso de las cachés indicadoras de la caché DRAM
US10198362B2 (en) Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems
US20140258636A1 (en) Critical-word-first ordering of cache memory fills to accelerate cache memory accesses, and related processor-based systems and methods
US10152261B2 (en) Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system
US20240078178A1 (en) Providing adaptive cache bypass in processor-based devices
CN108027776B (zh) 在多个主要装置间使用有条件干预维持高速缓存同调性