ES2686724T3 - Método de administración de memoria caché y aparato para dispositivo de almacenamiento no volátil - Google Patents
Método de administración de memoria caché y aparato para dispositivo de almacenamiento no volátil Download PDFInfo
- Publication number
- ES2686724T3 ES2686724T3 ES13807299.6T ES13807299T ES2686724T3 ES 2686724 T3 ES2686724 T3 ES 2686724T3 ES 13807299 T ES13807299 T ES 13807299T ES 2686724 T3 ES2686724 T3 ES 2686724T3
- Authority
- ES
- Spain
- Prior art keywords
- subset
- pages
- page
- clean
- capacity
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Un método de administración de memoria caché para un dispositivo de almacenamiento no volátil, en donde el método se aplica a un sistema de memoria caché basado en el dispositivo de almacenamiento no volátil, y el sistema de memoria caché comprende: una memoria caché, el dispositivo de almacenamiento no volátil y un aparato de administración de la memoria caché, en donde la memoria caché se configura para almacenar datos de páginas leídas del dispositivo de almacenamiento no volátil y datos de páginas a ser escritas en el dispositivo de almacenamiento no volátil, y la memoria caché comprende un subconjunto de páginas limpias y un subconjunto de páginas sucias; el dispositivo de almacenamiento no volátil se configura para almacenar todos los datos de páginas; y el aparato de administración de la memoria caché utiliza la siguiente información para administrar la memoria caché, en donde la información comprende un umbral de capacidad del subconjunto de páginas limpias, información de las páginas del subconjunto de páginas limpias, una lista del historial de páginas limpias, información de las páginas del subconjunto de páginas sucias y una lista del historial de páginas sucias, y la información de las páginas del subconjunto de páginas limpias comprende una capacidad de subconjunto del subconjunto de páginas limpias, la información de las páginas del subconjunto de páginas sucias comprende una capacidad de subconjunto del subconjunto de páginas sucias, la lista del historial de páginas limpias se configura para almacenar información de identificación de una o más páginas limpias históricas que se han sustituido recientemente de la memoria caché y la lista del historial de páginas sucias se configura para almacenar información de identificación de una o más páginas sucias históricas que se han sustituido recientemente de la memoria caché; y el método comprende: determinar (101, 201), cuando se determina que una página a ser accedida no se encuentra ni en el subconjunto de páginas limpias ni en el subconjunto de páginas sucias, una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché; determinar (102, 206), cuando la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o la lista del historial de páginas sucias; y agregar (103, 207), cuando se determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias, un primer valor de ajuste al umbral de capacidad del subconjunto de páginas limpias; o sustraer (104, 208), cuando la información de identificación de la página a ser accedida se encuentra en la lista del 30 historial de páginas sucias, un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias; en donde antes de determinar si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o en la lista del historial de páginas sucias, el método además comprende: seleccionar (202) el subconjunto de páginas limpias o el subconjunto de páginas limpias sucias como un subconjunto seleccionado; seleccionar (203) una página a ser reemplazada del subconjunto seleccionado de acuerdo con una política de reemplazo de páginas correspondiente al subconjunto seleccionado; mantener (204) la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto seleccionado; y migrar (205) la información de identificación de la página a ser reemplazada a una posición recientemente utilizada de una lista del historial correspondiente al subconjunto seleccionado; en donde la etapa de seleccionar (202) el subconjunto de páginas limpias o el subconjunto de páginas sucias como un subconjunto para seleccionar una página a ser reemplazada comprende específicamente: determinar (2021) una relación de tamaño entre una capacidad del subconjunto de páginas limpias y el umbral de capacidad del subconjunto de páginas limpias; seleccionar (2023), cuando la capacidad del subconjunto de páginas limpias es mayor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada; seleccionar (2022), cuando la capacidad del subconjunto de páginas limpias es menor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias como subconjunto para seleccionar una página a ser reemplazada; o determinar, cuando la capacidad del subconjunto de páginas limpias es igual al umbral de capacidad del subconjunto de páginas limpias, si se cumple la siguiente condición, en donde la condición es que la página a ser accedida se encuentre en la lista del historial de páginas limpias y una capacidad del subconjunto de páginas sucias sea mayor que 0; y seleccionar (2022), si se cumple la condición, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser reemplazada; o seleccionar (2023), si no se cumple la condición, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada.
Description
5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Método de administración de memoria caché y aparato para dispositivo de almacenamiento no volátil Campo técnico
Las formas de realización de la presente invención se refieren al campo de las tecnologías de procesamiento de datos y, en particular, a un método de administración de memoria caché y a un aparato de administración de la memoria caché para un dispositivo de almacenamiento no volátil.
Antecedentes
Con el rápido desarrollo de las tecnologías de semiconductores, el crecimiento del ancho de banda de acceso de los dispositivos de almacenamiento (tales como un disco duro) que utilizan medios magnéticos para guardar información ha quedado muy atrás del aumento de las velocidades de procesamiento de los procesadores. Mientras tanto, para diversas tecnologías de almacenamiento no volátil que se basan en tecnologías de semiconductores, tales como las memorias flash y otros dispositivos de almacenamiento, la capacidad se aumenta continuamente, el coste se reduce continuamente y la relación entre el rendimiento y el coste se mejora continuamente. Bajo una tendencia de desarrollo de este tipo, los dispositivos de almacenamiento no volátiles basados en semiconductores están reemplazando gradualmente a los dispositivos de almacenamiento convencionales basados en medios magnéticos para convertirse en dispositivos de almacenamiento principales. Los dispositivos de almacenamiento no volátiles actuales tienen una característica de lectura/escritura asimétrica, y de hecho, cuando se utiliza un dispositivo de almacenamiento no volátil, un retardo de la operación de lectura es mucho más corto que un retardo de la operación de escritura.
Aunque un dispositivo de almacenamiento no volátil es superior a un dispositivo de almacenamiento convencional tanto en el retardo de acceso como en el ancho de banda real, sigue siendo inferior a una memoria, y mucho menos de una memoria caché en el circuito integrado de un procesador. Por lo tanto, se necesita una capa de almacenamiento intermedia (memoria principal o memoria caché del circuito integrado del procesador) para servir como memoria caché entre un procesador y un dispositivo de almacenamiento no volátil para mejorar el ancho de banda de acceso real del dispositivo de almacenamiento no volátil.
Un esquema de diseño de memoria caché específico para dispositivos de almacenamiento convencionales se optimiza con un objetivo principal de mejorar una tasa de aciertos de caché, y cuando se aplica directamente a una arquitectura de almacenamiento que utiliza un dispositivo de almacenamiento no volátil, da como resultado dichos problemas como un promedio aumentado del retardo de lectura/escritura debido al reemplazo frecuente de páginas sucias y una vida útil reducida del dispositivo. Además, si se aplica un modelo de costes complejo a la arquitectura de almacenamiento que utiliza un dispositivo de almacenamiento no volátil, el coste de implementación es alto y la eficiencia de ejecución es baja.
El documento US 2006/0069876 A1 describe un método y un sistema para administrar la recuperación de datos en un ordenador dividiendo la memoria caché en dos listas de reloj, una primera lista de reloj comprende páginas con utilidad a corto plazo y una segunda lista de reloj comprende páginas con utilidad a largo plazo, que varían de forma adaptativa una proporción de las páginas marcadas como utilidad a corto y utilidad a largo plazo para aumentar una proporción de aciertos de caché de la memoria caché.
El documento US 2012/0096225 A1 describe un método para ajustar la configuración de la memoria caché de lectura y la memoria caché de escritura en función de los parámetros de rendimiento de la memoria caché. Los parámetros de rendimiento de la memoria caché incluyen uno o más de los marcadores de preferencia, la frecuencia de las operaciones de lectura y escritura, el rendimiento de lectura y escritura de un dispositivo de almacenamiento, la información de localización y el rendimiento de lectura y escritura contiguo.
Resumen
Las formas de realización de la presente invención proporcionan un método de administración de memoria caché y un aparato de administración de la memoria caché para un dispositivo de almacenamiento no volátil para evitar el reemplazo frecuente de páginas sucias, con el fin de aumentar la vida útil del dispositivo de almacenamiento, reducir el coste de implementación y mejorar la eficiencia de ejecución.
Las formas de realización de la presente invención adoptan las siguientes soluciones técnicas:
Un método de administración de memoria caché para un dispositivo de almacenamiento no volátil, el método se aplica a un sistema de memoria caché basado en el dispositivo de almacenamiento no volátil y el sistema de memoria caché comprende: una memoria caché, el dispositivo de almacenamiento no volátil y un aparato de administración de la memoria caché, en donde la memoria caché se configura para almacenar datos de páginas leídas del dispositivo de almacenamiento no volátil y datos de páginas a ser escritas en el dispositivo de almacenamiento no volátil, y la memoria caché comprende un subconjunto de páginas limpias y un subconjunto de páginas sucias; el dispositivo de almacenamiento no volátil se configura para almacenar todos los datos de páginas;
5
10
15
20
25
30
35
40
45
50
y el aparato de administración de la memoria caché utiliza la siguiente información para administrar la memoria caché, en donde la información comprende un umbral de capacidad del subconjunto de páginas limpias, información de las páginas del subconjunto de páginas limpias, una lista del historial de páginas limpias, información de las páginas del subconjunto de páginas sucias y lista del historial de páginas sucias, y la información de las páginas del subconjunto de páginas limpias comprende una capacidad de subconjunto del subconjunto de páginas limpias, la información de las páginas del subconjunto de páginas sucias comprende una capacidad de subconjunto del subconjunto de páginas sucias, la lista del historial de páginas limpias se configura para almacenar información de identificación de una o más páginas limpias históricas que se han sustituido recientemente de la memoria caché, y la lista del historial de páginas sucias se configura para almacenar información de identificación de una o más páginas sucias históricas que se han sustituido recientemente de la memoria caché; y el método comprende:
determinar, cuando se determina que una página a ser accedida no se encuentra en el subconjunto de páginas limpias ni en el subconjunto de páginas sucias, una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché;
determinar, cuando la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas sucias; y
agregar, cuando se determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias, un primer valor de ajuste al umbral de capacidad del subconjunto de páginas limpias; o
sustraer, cuando la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas sucias, un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias;
en donde antes de determinar si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o en la lista del historial de páginas sucias, el método además comprende:
seleccionar el subconjunto de páginas limpias o el subconjunto de páginas sucias como un subconjunto seleccionado;
seleccionar una página a ser reemplazada del subconjunto seleccionado de acuerdo con una política de reemplazo de páginas correspondiente al subconjunto seleccionado;
mantener la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto seleccionado; y
migrar la información de identificación de la página a ser reemplazada a una posición recientemente utilizada de una lista del historial correspondiente al subconjunto seleccionado;
en donde la etapa de seleccionar el subconjunto de páginas limpias o el subconjunto de páginas sucias como un subconjunto para seleccionar una página a ser reemplazada comprende específicamente:
determinar una relación de tamaño entre una capacidad del subconjunto de páginas limpias y el umbral de capacidad del subconjunto de páginas limpias;
seleccionar, cuando la capacidad del subconjunto de páginas limpias es mayor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada;
seleccionar, cuando la capacidad del subconjunto de páginas limpias es menor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser reemplazada; o
determinar, cuando la capacidad del subconjunto de páginas limpias es igual al umbral de capacidad del subconjunto de páginas limpias, si se cumple la siguiente condición, en donde la condición es que la página a ser accedida se encuentre en la lista del historial de páginas limpias y una capacidad del subconjunto de páginas sucias sea mayor que 0; y
seleccionar, si se cumple la condición, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser reemplazada; o
seleccionar, si la condición no se cumple, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada.
Un aparato de administración de la memoria caché para un dispositivo de almacenamiento no volátil, en donde el aparato se aplica a un sistema de memoria caché basado en el dispositivo de almacenamiento no volátil, y el sistema de memoria caché comprende: una memoria caché, el dispositivo de almacenamiento no volátil y un aparato
3
5
10
15
20
25
30
35
40
45
50
55
de administración de la memoria caché, en donde la memoria caché se configura para almacenar datos de páginas leídas del dispositivo de almacenamiento no volátil y datos de páginas a ser escritas en el dispositivo de almacenamiento no volátil, y la memoria caché comprende un subconjunto de páginas limpias y un subconjunto de páginas sucias; el dispositivo de almacenamiento no volátil se configura para almacenar todos los datos de páginas; y el aparato de administración de la memoria caché utiliza la siguiente información para administrar la memoria caché, en donde la información comprende un umbral de capacidad del subconjunto de páginas limpias, información de las páginas del subconjunto de páginas limpias, una lista del historial de páginas limpias, información de las páginas del subconjunto de páginas sucias y una lista del historial de páginas sucias, y la información de las páginas del subconjunto de páginas limpias comprende una capacidad de subconjunto del subconjunto de páginas limpias, la información de las páginas del subconjunto de páginas sucias comprende una capacidad de subconjunto del subconjunto de páginas sucias, la lista del historial de páginas limpias se configura para almacenar información de identificación de una o más páginas limpias históricas que se han sustituido recientemente de la memoria caché, y la lista del historial de páginas sucias se configura para almacenar información de identificación de una o más páginas sucias históricas que se han sustituido recientemente de la memoria caché; y
el aparato comprende:
una unidad de determinación, configurada para determinar, cuando se determina que una página a ser accedida no se encuentra en el subconjunto de páginas limpias ni en el subconjunto de páginas sucias, una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché; en donde
la unidad de determinación se configura además para determinar, cuando se determina que la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o la lista del historial de páginas sucias; y
una unidad de ajuste, configurada para agregar, cuando la unidad de determinación determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias, un primer valor de ajuste al umbral de capacidad del subconjunto de páginas limpias; o sustraer, cuando la unidad de determinación determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas sucias, un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias.
en donde el aparato de administración de la memoria caché comprende, además:
una unidad de selección, configurada para seleccionar, cuando la unidad de determinación determina que la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, el subconjunto de páginas limpias o el subconjunto de páginas sucias como un subconjunto seleccionado; y configurada además para seleccionar una página a ser reemplazada del subconjunto seleccionado de acuerdo con una política de reemplazo de páginas correspondiente al subconjunto seleccionado;
una unidad de mantenimiento, configurada para mantener la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto seleccionado por la unidad de selección; y
una unidad de migración, configurada para migrar la información de identificación de la página a ser reemplazada a una posición utilizada recientemente de una lista del historial correspondiente al subconjunto seleccionado;
en donde la unidad de selección comprende específicamente:
un módulo de determinación, configurado para determinar una relación de tamaño entre una capacidad del subconjunto de páginas limpias y el umbral de capacidad del subconjunto de páginas limpias; y configurado además para determinar, cuando la capacidad del subconjunto de páginas limpias es igual al umbral de capacidad del subconjunto de páginas limpias, si se cumple la siguiente condición, en donde la condición es que la página a ser accedida se encuentre en la lista del historial de páginas limpias y una capacidad del subconjunto de páginas sucias sea mayor que 0; y
un módulo de selección del subconjunto, configurado para seleccionar, cuando el módulo de determinación determina que la capacidad del subconjunto de páginas limpias es mayor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada; configurado además para seleccionar, cuando el módulo de determinación determina que la capacidad del subconjunto de páginas limpias es menor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser reemplazada; configurado adicionalmente para seleccionar, cuando el módulo de determinación determina que se cumple la condición, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser remplazada; y configurado además para seleccionar, cuando el módulo de determinación determina que la condición no se cumple, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada.
5
10
15
20
25
30
35
40
45
50
En un método de administración de memoria caché y un aparato de administración de la memoria caché para un dispositivo de almacenamiento no volátil que son proporcionados por las formas de realización de la presente invención, cuando una capacidad del subconjunto de páginas limpias supera un umbral de capacidad, se ajusta la capacidad del subconjunto de páginas limpias de acuerdo con un retardo de la operación de escritura y un retardo de la operación de lectura, implementando de este modo el control sobre las capacidades del subconjunto de páginas limpias y un subconjunto de páginas sucias. Debido a que el dispositivo de almacenamiento no volátil tiene una característica de lectura/escritura asimétrica, la capacidad del subconjunto de páginas sucias se puede aumentar preferiblemente cuando se realiza el control de las capacidades del subconjunto de páginas limpias y del subconjunto de páginas sucias, evitando de este modo el remplazo frecuente de páginas sucias, y aumentando la vida útil del dispositivo de almacenamiento. Además, un método para calcular un valor de ajuste es sencillo y los parámetros relevantes se pueden obtener fácilmente, lo que reduce el coste de implementación y mejora la eficiencia de la ejecución.
Breve descripción de los dibujos
Para describir más claramente as soluciones técnicas en las formas de realización de la presente invención o en la técnica anterior, lo siguiente introduce brevemente los dibujos adjuntos requeridos para describir las formas de realización. Aparentemente, los dibujos adjuntos en la siguiente descripción muestran meramente algunas formas de realización de la presente invención, y una persona experta en la técnica todavía puede obtener otros dibujos de estos dibujos adjuntos sin esfuerzos creativos.
La FIG. 1 es un diagrama de bloques de la composición de un sistema de memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 1 de la presente invención;
La FIG. 2 es un diagrama de flujo de un método de administración de memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 1 de la presente invención;
La FIG. 3 es un diagrama de flujo de un método de administración de memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 2 de la presente invención;
La FIG. 4 es un diagrama de flujo de otro método de administración de memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 2 de la presente invención;
La FIG. 5 es un diagrama de flujo de otro método de administración de memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 2 de la presente invención;
La FIG. 6 es un diagrama de bloques de la composición de un aparato de administración de la memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 3 de la presente invención;
La FIG. 7 es un diagrama de bloques de la composición de otro aparato de administración de la memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 3 de la presente invención;
La FIG. 8 es un diagrama de bloques de la composición de otro aparato de administración de la memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 3 de la presente invención;
La FIG. 9 es un diagrama de bloques de la composición de otro aparato de administración de la memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 3 de la presente invención;
La FIG. 10 es un diagrama de bloques de la composición de otro aparato de administración de la memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 3 de la presente invención; y
La FIG. 11 es un diagrama de bloques de la composición de otro aparato de administración de la memoria caché basado en un dispositivo de almacenamiento no volátil de acuerdo con la Forma de realización 3 de la presente invención.
Descripción de formas de realización
Lo siguiente describe clara y completamente las soluciones técnicas en las formas de realización de la presente invención con referencia a los dibujos adjuntos en las formas de realización de la presente invención.
Forma de realización 1
Esta forma de realización de la presente invención proporciona un método de administración de memoria caché para un dispositivo de almacenamiento no volátil, que se puede aplicar a un sistema de memoria caché basado en un
5
5
10
15
20
25
30
35
40
45
50
55
dispositivo de almacenamiento no volátil. Según se muestra en la FIG. 1, el sistema de memoria caché incluye: una memoria caché, un dispositivo de almacenamiento no volátil y un aparato de administración de la memoria caché.
La memoria caché se puede configurar para almacenar los datos de páginas leídas del dispositivo de almacenamiento no volátil y los datos de páginas para ser escritos en el dispositivo de almacenamiento no volátil, e incluye un subconjunto de páginas limpias y un subconjunto de páginas sucias. El subconjunto de páginas limpias es un conjunto de páginas que no se han modificado, y el subconjunto de páginas sucias es un conjunto de páginas que se han modificado. El subconjunto de páginas limpias y el subconjunto de páginas sucias se pueden implementar utilizando uno o una combinación de varios tipos de estructuras de datos, tales como una lista enlazada o una matriz.
El dispositivo de almacenamiento no volátil, por ejemplo, un dispositivo de almacenamiento tal como una memoria flash o un PCM (“Phase Change Memory”, memoria de cambio de fase), se puede configurar para almacenar todos los datos de páginas.
El aparato de administración de la memoria caché puede utilizar la siguiente información para administrar la memoria caché, donde la información incluye un umbral de capacidad del subconjunto de páginas limpias, información de las páginas del subconjunto de páginas limpias, una lista del historial de páginas limpias, información de las páginas del subconjunto de páginas sucias y un lista del historial de páginas sucias, y la información de la páginas incluye una capacidad del subconjunto; la lista del historial de páginas limpias se configura para almacenar información de identificación de una página limpia histórica recientemente sustituida de la memoria caché, y la lista del historial de páginas sucias se configura para almacenar información de identificación de una página sucia histórica que se ha sustituido recientemente de la memoria caché. Para implementar la gestión independiente de páginas limpias y páginas sucias, se pueden disponer en el aparato de administración de la memoria caché una unidad de administración de páginas limpias y una unidad de administración de páginas sucias. En la forma de realización de la presente invención, "lista" es un término utilizado en protocolos y estándares dentro del campo técnico al que pertenece la forma de realización de la presente invención. Una lista se puede implementar de diversas formas, y se puede implementar utilizando una estructura de datos tal como una lista enlazada o una matriz, lo cual no está limitado en la forma de realización de la presente invención.
Además, en un proceso de implementación del sistema de memoria caché basado en un dispositivo de almacenamiento no volátil, las configuraciones son necesarias por adelantado con el fin de garantizar el funcionamiento normal del sistema de memoria caché, y estas configuraciones incluyen específicamente:
Una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias no supera una capacidad física de la memoria caché. Una suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias no supera la capacidad física de la memoria caché. Además, una suma de la capacidad de información de las páginas del subconjunto de páginas limpias, la lista del historial de páginas limpias, la información de las páginas del subconjunto de páginas sucias y la lista del historial de páginas sucias no supera el doble de la capacidad física de la memoria caché. La lista del historial de páginas limpias y la lista del historial de páginas sucias son ambas una lista LRU (“Least Recently Used”, utilizada menos recientemente). Las políticas de reemplazo de páginas independientes, tales como LRU y LFU (“least frequently used”, algoritmo de reemplazo de página utilizada menos frecuentemente), se utilizan para el subconjunto de páginas limpias y el subconjunto de páginas sucias, y los formatos y el mantenimiento de la información de las páginas del subconjunto de páginas limpias y del subconjunto de páginas sucias coinciden con las políticas de remplazo de las páginas seleccionadas por el subconjunto de páginas limpias y el subconjunto de páginas sucias. Definitivamente, las configuraciones anteriores son solo un método de configuración para implementar el sistema de memoria caché basado en un dispositivo de almacenamiento no volátil, y se puede seleccionar un método de configuración específico de acuerdo con las situaciones reales, las cuales no están limitadas al mismo.
En el sistema de memoria caché basado en un dispositivo de almacenamiento no volátil, un método de administración de memoria caché para un dispositivo de almacenamiento no volátil proporcionado por la forma de realización de la presente invención, según se muestra en la FIG. 2, incluye específicamente:
101. El aparato de administración de la memoria caché determina, cuando se determina que una página a ser accedida no se encuentra ni en el subconjunto de páginas limpias ni en el subconjunto de páginas sucias, una relación de tamaño entre la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché.
102. El aparato de administración de la memoria caché determina, cuando la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o la lista del historial de páginas sucias
La información de identificación de la página a ser accedida se puede establecer a información con una función de identificación, tal como un número de ID, lo que no se enumera aquí en la forma de realización de la presente invención.
5
10
15
20
25
30
35
40
45
50
103. El aparato de administración de la memoria caché agrega, cuando se determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias, un primer valor de ajuste al umbral de capacidad del subconjunto de páginas limpias.
El primer valor de ajuste se puede establecer a un valor mayor que un cociente de un retardo de la operación de
lectura dividido por un retardo de la operación de escritura y 1. Además, el umbral de capacidad del subconjunto de
páginas limpias después del ajuste no puede superar la capacidad de la memoria caché.
El retardo de la operación de lectura y el retardo de la operación de escritura son invariables para un mismo dispositivo de almacenamiento no volátil, pero son posiblemente diferentes para diferentes dispositivos de almacenamiento no volátiles.
104. El aparato de administración de la memoria caché sustrae, cuando la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas sucias, un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias.
El segundo valor de ajuste se puede establecer a un valor mayor que un cociente de un retardo de la operación de
escritura dividido por un retardo de la operación de lectura y 1. Además, el umbral de capacidad del subconjunto de
páginas limpias después del ajuste no puede superar la capacidad de la memoria caché.
En el método de administración de memoria caché para un dispositivo de almacenamiento no volátil proporcionado por la forma de realización de la presente invención, cuando una capacidad del subconjunto de páginas limpias supera un umbral de capacidad, la capacidad del subconjunto de páginas limpias se ajusta de acuerdo con un retardo de la operación de escritura y un retardo de la operación de lectura, implementando de este modo el control de las capacidades del subconjunto de páginas limpias y un subconjunto de páginas sucias. Debido a que el dispositivo de almacenamiento no volátil tiene una característica de lectura/escritura asimétrica, la capacidad del subconjunto de páginas sucias se puede aumentar preferiblemente cuando se realiza el control de las capacidades del subconjunto de páginas limpias y del subconjunto de páginas sucias, evitando de este modo el remplazo frecuente de páginas sucias, y aumentando la vida útil del dispositivo de almacenamiento. Además, un método para calcular un valor de ajuste es sencillo y los parámetros relevantes se pueden obtener fácilmente, lo que reduce el coste de implementación y mejora la eficiencia de la ejecución.
Forma de realización 2
Esta forma de realización de la presente invención proporciona un método de administración de memoria caché para un dispositivo de almacenamiento no volátil, que también se puede aplicar al sistema de memoria caché que se basa en un dispositivo de almacenamiento no volátil y se muestra en la FIG. 1, y un método de configuración para el sistema de memoria caché también puede ser el mismo que el de la Forma de realización 1. Según se muestra en la FIG. 3, el método incluye específicamente:
201. Un aparato de administración de la memoria caché determina, cuando se determina que una página a ser accedida no se encuentra ni en un subconjunto de páginas limpias ni en un subconjunto de páginas sucias, una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché. Cuando la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, se realiza la etapa 202; y cuando la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es menor que la capacidad de la memoria caché, se realiza la etapa 209.
202. El aparato de administración de la memoria caché selecciona el subconjunto de páginas limpias o el subconjunto de páginas sucias como un subconjunto para seleccionar una página a ser reemplazada.
Un método para implementar la etapa 202 es específicamente como sigue, según se muestra en la FIG. 4, que incluye:
2021. El aparato de administración de la memoria caché determina una relación de tamaño entre una capacidad del subconjunto de páginas limpias y un umbral de capacidad del subconjunto de páginas limpias. Cuando la capacidad del subconjunto de páginas limpias es mayor que el umbral de capacidad del subconjunto de páginas limpias, se realiza la etapa 2022; cuando la capacidad del subconjunto de páginas limpias es menor que el umbral de capacidad del subconjunto de páginas limpias, se realiza la etapa 2023; y cuando la capacidad del subconjunto de páginas limpias es igual al umbral de capacidad del subconjunto de páginas limpias, se realiza la etapa 2024.
2022. El aparato de administración de la memoria caché selecciona el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada.
2023. El aparato de administración de la memoria caché selecciona el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser reemplazada.
5
10
15
20
25
30
35
40
45
50
2024. El aparato de administración de la memoria caché determina si se cumple la siguiente condición, donde la condición es que la página a ser accedida se encuentre en una lista del historial de páginas limpias y una capacidad del subconjunto de páginas sucias sea mayor que 0. Si se cumple la condición, se realiza la etapa 2022; y si la condición no se cumple, se realiza la etapa 2023.
203. El aparato de administración de la memoria caché selecciona una página a ser reemplazada del subconjunto seleccionado de acuerdo con una política de remplazo de páginas correspondiente al subconjunto seleccionado.
Las políticas de reemplazo de páginas correspondientes al subconjunto de páginas limpias y al subconjunto de páginas sucias pueden ser LRU, ACR (reemplazo adaptado a los costes adaptativos) o similares, y las políticas de remplazo de páginas correspondientes al subconjunto de páginas limpias y al subconjunto de páginas sucias se pueden establecer a una misma política de reemplazo de páginas o diferentes políticas de reemplazo de páginas, lo cual no está limitado en la presente invención.
Se debe observar que un método de implementación para seleccionar una página a ser reemplazada de acuerdo con una política de reemplazo de páginas establecida es una tecnología comúnmente conocida por los expertos en la técnica, que no está limitada en la forma de realización de la presente invención.
204. El aparato de administración de la memoria caché mantiene la información requerida actualmente por la política de remplazo de páginas correspondiente al subconjunto seleccionado.
Se debe observar que la información requerida actualmente por la política de reemplazo de páginas varía con la política de reemplazo de páginas. Mantener la información requerida actualmente por una política de reemplazo de páginas es una tecnología comúnmente conocida por los expertos en la técnica, que no se detalla aquí en la forma de realización de la presente invención.
205. El aparato de administración de la memoria caché migra la información de identificación de la página a ser reemplazada a una posición utilizada recientemente de una lista del historial correspondiente al subconjunto seleccionado.
Un método para implementar la etapa 205 es específicamente como sigue, incluyendo:
Cuando el subconjunto seleccionado es el subconjunto de páginas limpias, el aparato de administración de la
memoria caché migra la información de identificación de la página a ser remplazada a una posición utilizada
recientemente de la lista del historial de páginas limpias.
Cuando el subconjunto seleccionado es el subconjunto de páginas sucias, el aparato de administración de la
memoria caché migra la información de identificación de la página a ser remplazada a una posición utilizada
recientemente de una lista del historial de páginas sucias.
206. El aparato de administración de la memoria caché determina si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o en la lista del historial de páginas sucias. Cuando se determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias, se realiza la etapa 207; y cuando la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas sucias, se realiza la etapa 208.
207. El aparato de administración de la memoria caché añade un primer valor de ajuste al umbral de capacidad del subconjunto de páginas limpias, donde el primer valor de ajuste es un valor mayor que un cociente de un retardo de la operación de lectura dividido por un retardo de la operación de escritura y 1, y realiza la etapa 210.
208. El aparato de administración de la memoria caché sustrae un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias, donde el segundo valor de ajuste es un valor mayor que un cociente de un retardo de la operación de escritura dividido por un retardo de la operación de lectura y 1, y realiza la etapa 210.
209. El aparato de administración de la memoria caché lee la página a ser accedida del dispositivo de almacenamiento no volátil, y realiza la etapa 210.
210. El aparato de administración de la memoria caché determina un tipo de operación correspondiente a una operación actual que solicita la página a ser accedida. Cuando se determina que el tipo de operación es una operación de lectura, se realiza la etapa 211; y cuando se determina que el tipo de operación es una operación de escritura, se realiza la etapa 215.
211. El aparato de administración de la memoria caché lee la página a ser accedida en el subconjunto de páginas limpias, y mantiene la información requerida actualmente por la política de remplazo de páginas correspondiente al subconjunto de páginas limpias.
212. El aparato de administración de la memoria caché determina si una suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es mayor que la capacidad de la memoria caché. Si se determina que la suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias
8
5
10
15
20
25
30
35
40
45
50
es mayor que la capacidad de la memoria caché, se realiza la etapa 213; y si se determina que la suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es menor o igual que la capacidad de la memoria caché, se realiza la etapa 214.
213. El aparato de administración de la memoria caché elimina la información de identificación de la página de una posición utilizada menos recientemente de la lista del historial de páginas limpias, y finaliza el proceso de administración de la memoria caché.
214. El aparato de administración de la memoria caché conserva sin cambios la lista del historial de páginas limpias y finaliza el proceso de administración de la memoria caché.
215. El aparato de administración de la memoria caché lee la página a ser accedida en el subconjunto de páginas sucias y mantiene la información requerida actualmente mediante la política de remplazo de páginas correspondiente al subconjunto de páginas sucias.
216. El aparato de administración de la memoria caché determina si una suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es mayor que el doble de la capacidad de la memoria caché. Si se determina que la suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es mayor que el doble de la capacidad de la memoria caché, se realiza la etapa 217; y si se determina que la suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es menor o igual al doble de la capacidad de la memoria caché, se realiza la etapa 218.
217. El aparato de administración de la memoria caché elimina la información de identificación de la página de una posición utilizada menos recientemente de la lista del historial de páginas sucias y finaliza el proceso de administración de la memoria caché.
218. El aparato de administración de la memoria caché conserva sin cambios la lista del historial de páginas sucias y finaliza el proceso de administración de la memoria caché.
En esta forma de realización, cuando la capacidad del subconjunto de páginas limpias supera un umbral de capacidad, la capacidad del subconjunto de páginas limpias se ajusta de acuerdo con un retardo de la operación de escritura y un retardo de la operación de lectura, implementando de este modo el control sobre las capacidades del subconjunto de páginas limpias y del subconjunto de páginas sucias. Debido a que un dispositivo de almacenamiento no volátil tiene una característica de lectura/escritura asimétrica, la capacidad del subconjunto de páginas sucias se puede aumentar preferiblemente cuando se realiza el control de las capacidades del subconjunto de páginas limpias y del subconjunto de páginas sucias, evitando de este modo el reemplazo frecuente de páginas sucias, y aumentando una vida útil del dispositivo de almacenamiento.
Además, la capacidad subconjunto de páginas limpias necesita ser ajustado de acuerdo a sólo el retardo de la operación de escritura y el retardo de la operación de lectura, y un método para calcular un valor de ajuste es sencillo y los parámetros relevantes se pueden obtener fácilmente, lo que reduce el costo de implementación y mejora la eficiencia de ejecución.
Además, las capacidades de las listas del historial también se controlan, lo que reduce la información que necesita ser administrada por un aparato de administración de la memoria caché y garantiza un rendimiento de trabajo del aparato de administración de la memoria caché.
Se debe señalar que un proceso en el que un procesador solicita acceso a las páginas se puede dividir en dos partes del proceso, en los que una parte del proceso está leyendo directamente una página a ser accedida a partir de una memoria caché cuando la página a ser accedida se encuentra en la memoria caché; y la otra parte del proceso es que se necesita realizar un proceso de pérdida de páginas cuando la página a ser accedida no se encuentra en la memoria caché. Las etapas 201 a 218 anteriores pertenecen al proceso de pérdida de páginas.
Además, un proceso de administración de la memoria caché correspondiente al proceso en el que un procesador solicita acceso de páginas se muestra en la FIG. 5, el cual incluye específicamente:
301. El aparato de administración de la memoria caché determina si la página a ser accedida se encuentra en el subconjunto de páginas limpias. Si se determina que la página a ser accedida se encuentra en el subconjunto de páginas limpias, se realiza la etapa 302; y si se determina que la página a ser accedida no se encuentra en el subconjunto de páginas limpias, se realiza la etapa 305.
302. El aparato de administración de la memoria caché determina un tipo de operación correspondiente a una operación actual que solicita la página a ser accedida. Cuando se determina que el tipo de operación es una operación de lectura, se realiza la etapa 303; y cuando se determina que el tipo de operación es una operación de escritura, se realiza la etapa 304.
5
10
15
20
25
30
35
40
45
50
303. El aparato de administración de la memoria caché mantiene la información requerida actualmente por la política de remplazo de páginas correspondiente al subconjunto de páginas limpias.
304. El aparato de administración de la memoria caché migra la página a ser accedida al subconjunto de páginas sucias, mantiene la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas limpias y la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas sucias y finaliza el proceso de administración de la memoria caché.
305. El aparato de administración de la memoria caché determina si la página a ser accedida se encuentra en el subconjunto de páginas sucias. Si se determina que la página a ser accedida se encuentra en el subconjunto de páginas sucias, se realiza la etapa 306; y si se determina que la página a ser accedida no se encuentra en el subconjunto de páginas sucias, se realiza la etapa 307.
306. El aparato de administración de la memoria caché mantiene la información requerida actualmente mediante la política de remplazo de páginas correspondiente al subconjunto de páginas sucias y finaliza el proceso de administración de la memoria caché.
307. Ingresar un proceso para perder la página a ser accedida, es decir, las etapas 201 a 218 anteriores, de manera que el dispositivo de administración de la memoria caché lea la página a ser accedida en la memoria caché y finalice el proceso de administración de la memoria caché.
En esta forma de realización, las etapas 301 a 307 implementan el proceso de administración de la memoria caché correspondiente al proceso en el que un procesador solicita acceso a las páginas.
En el método de administración de memoria caché para un dispositivo de almacenamiento no volátil proporcionado por la forma de realización de la presente invención, cuando una capacidad de un subconjunto de páginas limpias supera un umbral de capacidad, la capacidad del subconjunto de páginas limpias se ajusta de acuerdo con un retardo de la operación de escritura y un retardo de la operación de lectura, implementando de este modo el control de las capacidades del subconjunto de páginas limpias y un subconjunto de páginas sucias. Debido a que el dispositivo de almacenamiento no volátil tiene una característica de lectura/escritura asimétrica, la capacidad del subconjunto de páginas sucias se puede aumentar preferiblemente cuando se realiza el control de las capacidades del subconjunto de páginas limpias y del subconjunto de páginas sucias, evitando de este modo el reemplazo frecuente de páginas sucias y aumentando la vida útil del dispositivo de almacenamiento.
Además, la capacidad del subconjunto de páginas limpias se tiene que ajustar de acuerdo con sólo el retardo de la operación de escritura y el retardo de la operación de lectura, y un método para calcular un valor de ajuste es sencillo y los parámetros relevantes se pueden obtener fácilmente, lo que reduce el coste de implementación y mejora la eficiencia de ejecución.
Además, las capacidades de las listas del historial también se controlan, lo que reduce la información que necesita ser administrada por un aparato de administración de la memoria caché y garantiza un rendimiento de trabajo del aparato de administración de la memoria caché.
Forma de realización 3
La forma de realización de la presente invención proporciona un aparato de administración de la memoria caché para un dispositivo de almacenamiento no volátil. Según se muestra en la FIG. 6, el aparato incluye una unidad de determinación 41 y una unidad de ajuste 42.
La unidad de determinación 41 se configura para determinar, cuando se determina que una página a ser accedida no se encuentra ni en un subconjunto de páginas limpias ni en un subconjunto de páginas sucias, una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché.
La unidad de determinación 41 se configura además para determinar, cuando se determina que la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, si la información de identificación de la página a ser accedida se encuentra en una lista del historial de páginas limpias o una lista del historial de páginas sucias.
La unidad de ajuste 42 se configura para añadir, cuando la unidad de determinación 41 determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias, un primer valor de ajuste a un umbral de capacidad del subconjunto de páginas limpias, donde el primer valor de ajuste es un valor mayor que un cociente de un retardo de la operación de lectura dividido por un retardo de la operación de escritura y 1.
La unidad de ajuste 42 se configura además para sustraer, cuando la unidad de determinación 41 determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas sucias, un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias, donde el segundo valor de
5
10
15
20
25
30
35
40
45
50
ajuste es un valor mayor que un cociente de un retardo de la operación de escritura dividido por un retardo de la operación de lectura y 1.
Opcionalmente, según se muestra en la FIG. 7, el aparato incluye además una unidad de selección 43, una unidad de mantenimiento 44 y una unidad de migración 45.
La unidad de selección 43 se configura para seleccionar, cuando la unidad de determinación 41 determina que la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, el subconjunto de páginas limpias o el subconjunto de páginas sucias como un subconjunto para seleccionar una página a ser reemplazada; y
la unidad de selección 43 se configura para seleccionar una página a ser reemplazada del subconjunto seleccionado de acuerdo con una política de reemplazo de páginas correspondiente al subconjunto seleccionado.
La unidad de mantenimiento 44 se configura para mantener la información requerida actualmente por la política de remplazo de páginas correspondiente al subconjunto seleccionado por la unidad de selección 43.
La unidad de migración 45 se configura para migrar información de identificación de la página a ser reemplazada a una posición utilizada recientemente de una lista del historial correspondiente al subconjunto seleccionado.
Opcionalmente, según se muestra en la FIG. 8, la unidad de selección 43 incluye además un módulo de determinación 431 y un módulo de selección del subconjunto 432.
El módulo de determinación 431 se configura para determinar una relación de tamaño entre una capacidad del subconjunto de páginas limpias y el umbral de capacidad del subconjunto de páginas limpias.
El módulo de selección del subconjunto 432 se configura para seleccionar, cuando el módulo de determinación 431 determina que la capacidad del subconjunto de páginas limpias es mayor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada; y
el módulo de selección del subconjunto 432 se configura para seleccionar, cuando el módulo de determinación 431 determina que la capacidad del subconjunto de páginas limpias es menor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser reemplazada.
El módulo de determinación 431 se configura para determinar, cuando la capacidad del subconjunto de páginas limpias es igual al umbral de capacidad del subconjunto de páginas limpias, si se cumple la siguiente condición, donde la condición es que la página a ser accedida se encuentre en el la lista del historial de páginas limpias y una capacidad del subconjunto de páginas sucias sea mayor que 0.
El módulo de selección del subconjunto 432 se configura para seleccionar, cuando el módulo de determinación 431 determina que se cumple la condición, el subconjunto de páginas sucias como subconjunto para seleccionar una página a ser reemplazada.
El módulo de selección del subconjunto 432 se configura para seleccionar, cuando el módulo de determinación 431 determina que la condición no se cumple, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada.
Opcionalmente, según se muestra en la FIG. 9, el aparato incluye además una unidad de lectura 46.
La unidad de lectura 46 se configura para leer, cuando la unidad de determinación 41 determina que la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es menor que la capacidad de la memoria caché, la página a ser accedida a partir del dispositivo de almacenamiento no volátil.
Opcionalmente, la unidad de determinación 41 se configura además para determinar un tipo de operación correspondiente a una operación actual que solicita la página a ser accedida.
La unidad de lectura 46 se configura para leer, cuando la unidad de determinación 41 determina que el tipo de operación es una operación de lectura, la página a ser accedida en el subconjunto de páginas limpias.
La unidad de mantenimiento 44 se configura para mantener la información requerida actualmente por una política de remplazo de páginas correspondiente al subconjunto de páginas limpias.
La unidad de lectura 46 se configura para leer, cuando la unidad de determinación 41 determina que el tipo de operación es una operación de escritura, la página a ser accedida en el subconjunto de páginas sucias.
La unidad de mantenimiento 44 se configura para mantener la información requerida actualmente mediante una política de remplazo de páginas correspondiente al subconjunto de páginas sucias.
5
10
15
20
25
30
35
40
45
50
Opcionalmente, según se muestra en la FIG. 10, el aparato incluye además una primera unidad de eliminación 47.
La unidad de determinación 41 se configura para determinar si una suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es mayor que la capacidad de la memoria caché.
La primera unidad de eliminación de 47 se configura para eliminar, cuando la unidad de determinación 41 determina que la suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es mayor que la capacidad de la memoria caché, la información de identificación de la página de una menos recientemente utilizada posición de la lista del historial de páginas limpias.
La primera unidad de eliminación 47 se configura, además, para conservar, cuando la unidad de determinación 41 determina que la suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es menor o igual que la capacidad de la memoria caché, la lista del historial de páginas limpias sin cambios.
Opcionalmente, según se muestra en la FIG. 11, el aparato incluye además una segunda unidad de eliminación 48.
La unidad de determinación 41 se configura para determinar si una suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es mayor que el doble de la capacidad de la memoria caché.
La segunda unidad de eliminación 48 se configura para eliminar, cuando la unidad de determinación 41 determina que la suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es mayor que el doble de la capacidad de la memoria caché, la información de identificación de la página de una menos recientemente utilizada posición de la lista del historial de páginas sucias.
La segunda unidad de eliminación 48 se configura para conservar, cuando la unidad de determinación 41 determina que la suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es menor o igual que el doble de la capacidad de la memoria caché, la lista del historial de páginas sucias sin cambios.
Opcionalmente, la unidad de determinación 41 se configura para determinar si la página a ser accedida se encuentra en el subconjunto de páginas limpias;
la unidad de determinación 41 se configura además para determinar, cuando se determina que la página a ser accedida no se encuentra en el subconjunto de páginas limpias, si la página a ser accedida se encuentra en el subconjunto de páginas sucias;
la unidad de mantenimiento 44 se configura para mantener, cuando la unidad de determinación 41 determina que la página a ser accedida se encuentra en el subconjunto de páginas sucias, la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas sucias; y
la unidad de determinación 41 se configura para determinar, cuando se determina que la página a ser accedida no se encuentra en el subconjunto de páginas sucias, la relación de tamaño entre la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y la capacidad de la memoria caché.
Opcionalmente, la unidad de determinación 41 se configura además para obtener, cuando se determina que la página a ser accedida se encuentra en el subconjunto de páginas limpias, el tipo de operación correspondiente a la operación actual que solicita la página a ser accedida.
La unidad de mantenimiento 44 se configura además para mantener, cuando la unidad de determinación 41 determina que el tipo de operación es una operación de lectura, la información requerida actualmente por la política de remplazo de páginas correspondiente al subconjunto de páginas limpias.
La unidad de la migración 45 se configura para migrar, cuando la unidad de determinación 41 determina que el tipo de operación es una operación de escritura, la página a ser accedida en el subconjunto de páginas sucias.
La unidad de mantenimiento 44 se configura, además, para mantener la información requerida actualmente por la política de remplazo de páginas correspondiente al subconjunto de páginas limpias y la información requerida actualmente por la política de remplazo de páginas correspondiente al subconjunto de páginas sucias.
En el aparato de administración de la memoria caché para un dispositivo de almacenamiento no volátil proporcionado por la forma de realización de la presente invención, cuando una capacidad de un subconjunto de páginas limpias supera un umbral de capacidad, la capacidad del subconjunto de páginas limpias se ajusta de acuerdo con un retardo de la operación de escritura y un retardo de la operación de lectura, implementando de este modo el control de las capacidades del subconjunto de páginas limpias y un subconjunto de páginas sucias. Debido a que el dispositivo de almacenamiento no volátil tiene una característica de lectura/escritura asimétrica, la capacidad del subconjunto de páginas sucias se puede aumentar preferiblemente cuando se realiza el control de las
capacidades del subconjunto de páginas limpias y del subconjunto de páginas sucias, evitando de este modo el reemplazo frecuente de páginas sucias y aumentando la vida útil del dispositivo de almacenamiento.
Además, la capacidad del subconjunto de páginas limpias necesita ser ajustado de acuerdo a sólo el retardo de la operación de escritura y el retardo de la operación de lectura, y un método para calcular un valor de ajuste es 5 sencillo y los parámetros relevantes se pueden obtener fácilmente, lo que reduce el coste de implementación y mejora la eficiencia de ejecución.
Por otra parte, las capacidades de las listas del historial también se controlan, lo que reduce la información que necesita ser administrada por el aparato de administración de la memoria caché y garantiza un rendimiento de trabajo del aparato de administración de la memoria caché.
10 En base a las descripciones anteriores de las formas de realización, una persona experta en la técnica puede comprender claramente que la presente invención se puede implementar mediante software además del hardware universal necesario o solo mediante hardware. En la mayoría de las circunstancias, la primera es una forma de implementación preferida. En base a un entendimiento de este tipo, las soluciones técnicas de la presente invención esencialmente o la parte que contribuye a la técnica anterior se pueden implementar en forma de un producto de 15 software. El producto de software se almacena en un medio de almacenamiento legible, como un disquete, un disco duro o un disco óptico de un ordenador, e incluye varias instrucciones para instruir a un dispositivo informático (que puede ser un ordenador personal, un servidor o un dispositivo de red) para realizar los métodos descritos en las formas de realización de la presente invención.
Las descripciones anteriores son meramente formas de realización específicas de la presente invención, pero no 20 pretenden limitar el alcance de protección de la presente invención. Cualquier variación o reemplazo que el experto en la técnica descubra fácilmente dentro del alcance técnico descrito en la presente invención estará dentro del alcance de la protección de la presente invención. Por lo tanto, el alcance de la protección de la presente invención estará sujeto al alcance de la protección de las reivindicaciones.
Claims (14)
- 5101520253035404550REIVINDICACIONES1. Un método de administración de memoria caché para un dispositivo de almacenamiento no volátil, en donde el método se aplica a un sistema de memoria caché basado en el dispositivo de almacenamiento no volátil, y el sistema de memoria caché comprende: una memoria caché, el dispositivo de almacenamiento no volátil y un aparato de administración de la memoria caché, en donde la memoria caché se configura para almacenar datos de páginas leídas del dispositivo de almacenamiento no volátil y datos de páginas a ser escritas en el dispositivo de almacenamiento no volátil, y la memoria caché comprende un subconjunto de páginas limpias y un subconjunto de páginas sucias; el dispositivo de almacenamiento no volátil se configura para almacenar todos los datos de páginas; y el aparato de administración de la memoria caché utiliza la siguiente información para administrar la memoria caché, en donde la información comprende un umbral de capacidad del subconjunto de páginas limpias, información de las páginas del subconjunto de páginas limpias, una lista del historial de páginas limpias, información de las páginas del subconjunto de páginas sucias y una lista del historial de páginas sucias, y la información de las páginas del subconjunto de páginas limpias comprende una capacidad de subconjunto del subconjunto de páginas limpias, la información de las páginas del subconjunto de páginas sucias comprende una capacidad de subconjunto del subconjunto de páginas sucias, la lista del historial de páginas limpias se configura para almacenar información de identificación de una o más páginas limpias históricas que se han sustituido recientemente de la memoria caché y la lista del historial de páginas sucias se configura para almacenar información de identificación de una o más páginas sucias históricas que se han sustituido recientemente de la memoria caché; yel método comprende:determinar (101, 201), cuando se determina que una página a ser accedida no se encuentra ni en el subconjunto de páginas limpias ni en el subconjunto de páginas sucias, una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché;determinar (102, 206), cuando la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o la lista del historial de páginas sucias; yagregar (103, 207), cuando se determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias, un primer valor de ajuste al umbral de capacidad del subconjunto de páginas limpias; osustraer (104, 208), cuando la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas sucias, un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias;en donde antes de determinar si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o en la lista del historial de páginas sucias, el método además comprende:seleccionar (202) el subconjunto de páginas limpias o el subconjunto de páginas limpias sucias como un subconjunto seleccionado;seleccionar (203) una página a ser reemplazada del subconjunto seleccionado de acuerdo con una política de reemplazo de páginas correspondiente al subconjunto seleccionado;mantener (204) la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto seleccionado; ymigrar (205) la información de identificación de la página a ser reemplazada a una posición recientemente utilizada de una lista del historial correspondiente al subconjunto seleccionado;en donde la etapa de seleccionar (202) el subconjunto de páginas limpias o el subconjunto de páginas sucias como un subconjunto para seleccionar una página a ser reemplazada comprende específicamente:determinar (2021) una relación de tamaño entre una capacidad del subconjunto de páginas limpias y el umbral de capacidad del subconjunto de páginas limpias;seleccionar (2023), cuando la capacidad del subconjunto de páginas limpias es mayor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada;seleccionar (2022), cuando la capacidad del subconjunto de páginas limpias es menor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias como subconjunto para seleccionar una página a ser reemplazada; odeterminar, cuando la capacidad del subconjunto de páginas limpias es igual al umbral de capacidad del subconjunto de páginas limpias, si se cumple la siguiente condición, en donde la condición es que la página a ser5101520253035404550accedida se encuentre en la lista del historial de páginas limpias y una capacidad del subconjunto de páginas sucias sea mayor que 0; yseleccionar (2022), si se cumple la condición, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser reemplazada; oseleccionar (2023), si no se cumple la condición, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada.
- 2. El método de acuerdo con la reivindicación 1 que comprende, además:leer (209), cuando la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es menor que la capacidad de la memoria caché, la página a ser accedida del dispositivo de almacenamiento no volátil.
- 3. Método de acuerdo con la reivindicación 2, después de agregar (103, 207) un primer valor de ajuste al umbral de capacidad del subconjunto de páginas limpias, o después de sustraer (104, 208) un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias que comprende, además:determinar (210) un tipo de operación correspondiente a una operación actual que solicita la página a ser accedida; ycuando se determina que el tipo de operación es una operación de lectura, leer (211) la página a ser accedida en el subconjunto de páginas limpias y mantener la información requerida actualmente mediante una política de reemplazo de páginas correspondiente al subconjunto de páginas limpias; ocuando se determina que el tipo de operación es una operación de escritura, leer (215) la página a ser accedida en el subconjunto de páginas sucias y mantener la información requerida actualmente por una política de reemplazo de páginas correspondiente al subconjunto de páginas sucias.
- 4. El método de acuerdo con la reivindicación 3, después del mantenimiento (211) de la información requerida actualmente por una política de reemplazo de páginas correspondiente al subconjunto de páginas limpias que comprende, además:determinar (212) si una suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es mayor que la capacidad de la memoria caché; yeliminar (213), si se determina que la suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es mayor que la capacidad de la memoria caché, la información de identificación de la página de una posición utilizada menos recientemente de la lista del historial de páginas limpias; oconservar (214), si se determina que la suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es menor o igual que la capacidad de la memoria caché, la lista del historial de páginas limpias sin cambios.
- 5. El método de acuerdo con la reivindicación 3, después del mantenimiento (215) de la información requerida actualmente por una política de reemplazo de páginas correspondiente al subconjunto de páginas sucias que comprende, además:determinar (216) si una suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es mayor que el doble de la capacidad de la memoria caché; yeliminar (217), si se determina que la suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y lista del historial de páginas sucias es mayor que el doble de la capacidad de la memoria caché, la información de identificación de la página de una posición utilizada menos recientemente de la lista del historial de páginas sucias; oconservar (218), si se determina que la suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es menor o igual a dos veces la capacidad de la memoria caché, la lista del historial de páginas sucias sin cambios.
- 6. El método de acuerdo con la reivindicación 4 o 5, antes de determinar (101, 201) una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché que comprende, además:determinar (301) si la página a ser accedida se encuentra en el subconjunto de páginas limpias;determinar (305), si se determina que la página a ser accedida no se encuentra en el subconjunto de páginas limpias, si la página a ser accedida se encuentra en el subconjunto de páginas sucias; y15510152025303540455055mantener, si se determina que la página a ser accedida se encuentra en el subconjunto de páginas sucias, la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas sucias; oimplementar, si se determina que la página a ser accedida no se encuentra en el subconjunto de páginas sucias, la determinación (101, 201) de una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché.
- 7. El método de acuerdo con la reivindicación 6 que comprende, además:determinar (302), si se determina que la página a ser accedida se encuentra en el subconjunto de páginas limpias, el tipo de operación correspondiente a la operación actual que solicita la página a ser accedida; ymantener (303), cuando se determina que el tipo de operación es una operación de lectura, la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas limpias; ocuando se determina que el tipo de operación es una operación de escritura, migrar (304) la página a ser accedida al subconjunto de páginas sucias y mantener la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas limpias y la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas sucias.
- 8. Un aparato de administración de la memoria caché para un dispositivo de almacenamiento no volátil, en donde el aparato se aplica a un sistema de memoria caché basado en el dispositivo de almacenamiento no volátil, y el sistema de memoria caché comprende: una memoria caché, el dispositivo de almacenamiento no volátil y un aparato de administración de la memoria caché, en donde la memoria caché se configura para almacenar datos de páginas leídas del dispositivo de almacenamiento no volátil y datos de páginas a ser escritas en el dispositivo de almacenamiento no volátil, y la memoria caché comprende un subconjunto de páginas limpias y un subconjunto de páginas sucias; el dispositivo de almacenamiento no volátil se configura para almacenar todos los datos de páginas; y el aparato de administración de la memoria caché utiliza la siguiente información para administrar la memoria caché, en donde la información comprende un umbral de capacidad del subconjunto de páginas limpias, información de las páginas del subconjunto de páginas limpias, una lista del historial de páginas limpias, información de las páginas del subconjunto de páginas sucias y una lista del historial de páginas sucias, y la información de las páginas del subconjunto de páginas limpias comprende una capacidad de subconjunto del subconjunto de páginas limpias, la información de las páginas del subconjunto de páginas sucias comprende una capacidad de subconjunto del subconjunto de páginas sucias, la lista del historial de páginas limpias se configura para almacenar información de identificación de una o más páginas limpias históricas que se han sustituido recientemente de la memoria caché y la lista del historial de páginas sucias se configura para almacenar información de identificación de una o más páginas sucias históricas que se han sustituido recientemente de la memoria caché; yel aparato comprende:una unidad de determinación (41), configurada para determinar, cuando se determina que una página a ser accedida no se encuentra ni en el subconjunto de páginas limpias ni en el subconjunto de páginas sucias, una relación de tamaño entre una suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y una capacidad de la memoria caché; en dondela unidad de determinación (41) se configura además para determinar, cuando se determina que la suma de la capacidad del subconjunto de páginas limpias y en el subconjunto de páginas sucias es igual a la capacidad de la memoria caché, si la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias o la lista del historial de páginas sucias; yuna unidad de ajuste (42), configurada para agregar, cuando la unidad de determinación (41) determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas limpias, un primer valor de ajuste al umbral de la capacidad del subconjunto de páginas limpias; o sustraer, cuando la unidad de determinación (41) determina que la información de identificación de la página a ser accedida se encuentra en la lista del historial de páginas sucias, un segundo valor de ajuste del umbral de capacidad del subconjunto de páginas limpias.en donde el aparato de administración de la memoria caché comprende además:una unidad de selección (43), configurada para seleccionar, cuando la unidad de determinación (41) determina que la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es igual a la capacidad de la memoria caché, el subconjunto de páginas limpias o el subconjunto de páginas sucias como un subconjunto seleccionado; y configurada además para seleccionar una página a ser reemplazada del subconjunto seleccionado de acuerdo con una política de reemplazo de páginas correspondiente al subconjunto seleccionado;una unidad de mantenimiento (44), configurada para mantener la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto seleccionado por la unidad de selección (43); y5101520253035404550una unidad de migración (45), configurada para migrar la información de identificación de la página a ser reemplazada a una posición recientemente utilizada de una lista del historial correspondiente al subconjunto seleccionado;en donde la unidad de selección (43) comprende específicamente:un módulo de determinación (431), configurado para determinar una relación de tamaño entre una capacidad del subconjunto de páginas limpias y el umbral de capacidad del subconjunto de páginas limpias; y configurado además para determinar, cuando la capacidad del subconjunto de páginas limpias es igual al umbral de capacidad del subconjunto de páginas limpias, si se cumple la siguiente condición, en donde la condición es que la página a ser accedida se encuentre en la lista del historial de páginas limpias y una capacidad del subconjunto de páginas sucias sea mayor que 0; yun módulo de selección del subconjunto (432), configurado para seleccionar, cuando el módulo de determinación (431) determina que la capacidad del subconjunto de páginas limpias es mayor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas limpias como el subconjunto para seleccionar una página a ser reemplazada; configurado además para seleccionar, cuando el módulo de determinación (431) determina que la capacidad del subconjunto de páginas limpias es menor que el umbral de capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser reemplazada; configurado además para seleccionar, cuando el módulo de determinación (431) determina que se cumple la condición, el subconjunto de páginas sucias como el subconjunto para seleccionar una página a ser remplazada; y configurado además para seleccionar, cuando el módulo de determinación (431) determina que no se cumple la condición, el subconjunto de páginas limpias como subconjunto para seleccionar una página a ser reemplazada.
- 9. El aparato de acuerdo con la reivindicación 8 que comprende, además:una unidad de lectura (46), configurada para leer, cuando la unidad de determinación (41) determina que la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias es menor que la capacidad de la memoria caché, la página a ser accedida del dispositivo de almacenamiento no volátil.
- 10. El aparato de acuerdo con la reivindicación 9, en donde la unidad de determinación (41) se configura además para determinar un tipo de operación correspondiente a una operación actual que solicita la página a ser accedida;la unidad de lectura (46) se configura además para leer, cuando la unidad de determinación (41) determina que el tipo de operación es una operación de lectura, la página a ser accedida en el subconjunto de páginas limpias; y se configura además para leer, cuando la unidad de determinación (41) determina que el tipo de operación es una operación de escritura, la página a ser accedida en el subconjunto de páginas sucias; yla unidad de mantenimiento (44) se configura además para mantener la información requerida actualmente por una política de reemplazo de páginas correspondiente al subconjunto de páginas limpias; y mantener la información requerida actualmente por una política de reemplazo de páginas correspondiente al subconjunto de páginas sucias.
- 11. El aparato de acuerdo con la reivindicación 10 que comprende, además:la unidad de determinación (41), configurada para determinar si una suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es mayor que la capacidad de la memoria caché; yuna primera unidad de eliminación (47), configurada para eliminar, cuando la unidad de determinación (41) determina que la suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es mayor que la capacidad de la memoria caché, la información de identificación de la página de una posición utilizada menos recientemente de la lista del historial de páginas limpias; y configurada además para conservar, cuando la unidad de determinación (41) determina que la suma de la capacidad del subconjunto de páginas limpias y la lista del historial de páginas limpias es menor o igual a la capacidad de la memoria caché, la lista del historial de páginas limpias sin cambio.
- 12. El aparato de acuerdo con la reivindicación 10 que comprende, además:la unidad de determinación (41) configurada para determinar si una suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es mayor que el doble de la capacidad de la memoria caché; yuna segunda unidad de eliminación (48), configurada para eliminar, cuando la unidad de determinación (41) determina que la suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias, la lista del historial de páginas limpias y la lista del historial de páginas sucias es mayor que el doble de la capacidad de la memoria caché, la información de identificación de la página de una posición utilizada menos recientemente de la lista del historial de páginas sucias; y configurada además para conservar, cuando la unidad de determinación (41) determina que la suma de la capacidad del subconjunto de páginas limpias, el subconjunto de páginas sucias,la lista del historial de páginas limpias y la lista del historial de páginas sucias es menor o igual que el doble de la capacidad de la memoria caché, la lista del historial de páginas sucias sin cambios.
- 13. El aparato de acuerdo con la reivindicación 12, en donde la unidad de determinación (41) se configura para determinar si la página a ser accedida se encuentra en el subconjunto de páginas limpias; configurado además para5 determinar, cuando se determina que la página a ser accedida no se encuentra en el subconjunto de páginas limpias, si la página a ser accedida se encuentra en el subconjunto de páginas sucias; y configurado además para determinar, cuando se determina que la página a ser accedida no se encuentra en el subconjunto de páginas sucias, la relación de tamaño entre la suma de la capacidad del subconjunto de páginas limpias y del subconjunto de páginas sucias y la capacidad de la memoria caché; y10 la unidad de mantenimiento (44) se configura para mantener, cuando la unidad de determinación (41) determina que la página a ser accedida se encuentra en el subconjunto de páginas sucias, la información requerida actualmente por la política de remplazo de páginas correspondiente al subconjunto de páginas sucias.
- 14. Aparato de acuerdo con la reivindicación 13, en donde la unidad de determinación (41) se configura además para determinar, cuando se determina que la página a ser accedida se encuentra en el subconjunto de páginas15 limpias, el tipo de operación correspondiente a la operación actual que solicita la página a ser accedida;la unidad de mantenimiento (44) se configura además para mantener, cuando la unidad de determinación (41) determina que el tipo de operación es una operación de lectura, la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas limpias; y se configura además para mantener la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de 20 páginas limpias y la información requerida actualmente por la política de reemplazo de páginas correspondiente al subconjunto de páginas sucias; yla unidad de migración (45) se configura para migrar, cuando la unidad de determinación (41) determina que el tipo de operación es una operación de escritura, la página a ser accedida al subconjunto de páginas sucias
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201210205360.6A CN103514110B (zh) | 2012-06-20 | 2012-06-20 | 非易失性存储设备的缓存管理方法及装置 |
| CN201210205360 | 2012-06-20 | ||
| PCT/CN2013/071688 WO2013189186A1 (zh) | 2012-06-20 | 2013-02-20 | 非易失性存储设备的缓存管理方法及装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2686724T3 true ES2686724T3 (es) | 2018-10-19 |
Family
ID=49768078
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES13807299.6T Active ES2686724T3 (es) | 2012-06-20 | 2013-02-20 | Método de administración de memoria caché y aparato para dispositivo de almacenamiento no volátil |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US9524245B2 (es) |
| EP (2) | EP3425513B1 (es) |
| CN (2) | CN106201348B (es) |
| ES (1) | ES2686724T3 (es) |
| WO (1) | WO2013189186A1 (es) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9996262B1 (en) * | 2015-11-09 | 2018-06-12 | Seagate Technology Llc | Method and apparatus to abort a command |
| CN107179963B (zh) * | 2016-03-11 | 2021-02-23 | 华为技术有限公司 | 非易失性静态随机存储器的备份方法和装置 |
| JP6711121B2 (ja) * | 2016-05-10 | 2020-06-17 | 富士通株式会社 | 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム |
| CN108021514B (zh) * | 2016-10-28 | 2020-11-06 | 华为技术有限公司 | 一种缓存替换的方法和设备 |
| JP6799256B2 (ja) * | 2016-11-28 | 2020-12-16 | 富士通株式会社 | ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム |
| US10254961B2 (en) * | 2017-02-21 | 2019-04-09 | International Business Machines Corporation | Dynamic load based memory tag management |
| CN108345546B (zh) * | 2017-05-09 | 2019-09-20 | 清华大学 | 用于确定处理器操作的方法及装置 |
| CN110955486B (zh) * | 2018-09-26 | 2022-08-23 | Oppo广东移动通信有限公司 | 文件缓存效率的追踪方法、装置、存储介质及终端 |
| CN111258929B (zh) * | 2018-12-03 | 2023-09-26 | 北京京东尚科信息技术有限公司 | 缓存控制方法、装置和计算机可读存储介质 |
| CN113032088B (zh) * | 2019-12-25 | 2023-12-22 | 阿里巴巴集团控股有限公司 | 脏页记录方法、装置、电子设备及计算机可读介质 |
| CN112487327B (zh) * | 2020-11-30 | 2024-10-25 | 惠州Tcl移动通信有限公司 | 一种电子书加载方法、装置及移动终端 |
| CN115640237A (zh) * | 2022-09-21 | 2023-01-24 | Oppo广东移动通信有限公司 | 内存回收方法、装置以及电子设备 |
| CN117743206B (zh) * | 2024-02-21 | 2024-04-26 | 深圳市金政软件技术有限公司 | 数据的储存方法和装置 |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6996676B2 (en) | 2002-11-14 | 2006-02-07 | International Business Machines Corporation | System and method for implementing an adaptive replacement cache policy |
| US7058766B2 (en) | 2003-10-21 | 2006-06-06 | International Business Machines Corporation | Method and system of adaptive replacement cache with temporal filtering |
| US7096321B2 (en) | 2003-10-21 | 2006-08-22 | International Business Machines Corporation | Method and system for a cache replacement technique with adaptive skipping |
| US20060069876A1 (en) * | 2004-09-30 | 2006-03-30 | Sorav Bansal | Method and system of clock with adaptive cache replacement and temporal filtering |
| US7260679B2 (en) | 2004-10-12 | 2007-08-21 | International Business Machines Corporation | Apparatus and method to manage a data cache using a first and second least recently used list |
| US7487320B2 (en) | 2004-12-15 | 2009-02-03 | International Business Machines Corporation | Apparatus and system for dynamically allocating main memory among a plurality of applications |
| EP1870813B1 (en) * | 2006-06-19 | 2013-01-30 | Texas Instruments France | Page processing circuits, devices, methods and systems for secure demand paging and other operations |
| US8745315B2 (en) * | 2006-11-06 | 2014-06-03 | Rambus Inc. | Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory |
| WO2008056593A1 (en) * | 2006-11-06 | 2008-05-15 | Panasonic Corporation | Recording device |
| US7783839B2 (en) | 2007-01-08 | 2010-08-24 | International Business Machines Corporation | Using different algorithms to destage different types of data from cache |
| JP2009075759A (ja) * | 2007-09-19 | 2009-04-09 | Hitachi Ltd | ストレージ装置及びストレージ装置におけるデータの管理方法 |
| JP4533968B2 (ja) * | 2007-12-28 | 2010-09-01 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
| JP4729062B2 (ja) * | 2008-03-07 | 2011-07-20 | 株式会社東芝 | メモリシステム |
| KR100941382B1 (ko) * | 2008-07-10 | 2010-02-10 | 한양대학교 산학협력단 | 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법,그리고 플래시 메모리의 페이지 교체 장치 및 방법 |
| CN102160038A (zh) * | 2008-09-15 | 2011-08-17 | 惠普开发有限公司 | 管理非易失性磁盘高速缓存的方法和设备 |
| WO2011153478A2 (en) * | 2010-06-04 | 2011-12-08 | Flashsoft Corporation | Cache management and acceleration of storage media |
| US20110320766A1 (en) * | 2010-06-29 | 2011-12-29 | Youfeng Wu | Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type |
| US8504774B2 (en) * | 2010-10-13 | 2013-08-06 | Microsoft Corporation | Dynamic cache configuration using separate read and write caches |
| CN102012873B (zh) * | 2010-11-24 | 2012-09-05 | 清华大学 | Nand闪存的缓存系统及缓存方法 |
| CN102156753B (zh) * | 2011-04-29 | 2012-11-14 | 中国人民解放军国防科学技术大学 | 面向固态硬盘文件系统的数据页缓存方法 |
| WO2012166050A1 (en) * | 2011-05-30 | 2012-12-06 | Agency For Science, Technology And Research | Buffer management apparatus and method |
| KR101824295B1 (ko) * | 2011-08-12 | 2018-01-31 | 샌디스크 테크놀로지스 엘엘씨 | 솔리드 스테이트 장치 가상화를 포함하는 캐시 관리 |
| US9122631B2 (en) * | 2011-11-07 | 2015-09-01 | Peking University | Buffer management strategies for flash-based storage systems |
| CN102436356B (zh) * | 2011-12-12 | 2014-12-24 | 华为数字技术(成都)有限公司 | 写页面空间分配方法和装置 |
| KR101767359B1 (ko) * | 2011-12-29 | 2017-08-10 | 인텔 코포레이션 | 다이렉트 액세스를 갖는 다중-레벨 메모리 |
-
2012
- 2012-06-20 CN CN201610519683.0A patent/CN106201348B/zh active Active
- 2012-06-20 CN CN201210205360.6A patent/CN103514110B/zh active Active
-
2013
- 2013-02-20 WO PCT/CN2013/071688 patent/WO2013189186A1/zh not_active Ceased
- 2013-02-20 EP EP17197683.0A patent/EP3425513B1/en active Active
- 2013-02-20 EP EP13807299.6A patent/EP2846266B1/en active Active
- 2013-02-20 ES ES13807299.6T patent/ES2686724T3/es active Active
-
2014
- 2014-11-18 US US14/546,797 patent/US9524245B2/en active Active
-
2016
- 2016-11-10 US US15/348,056 patent/US9727487B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US20170060773A1 (en) | 2017-03-02 |
| CN106201348A (zh) | 2016-12-07 |
| CN106201348B (zh) | 2019-08-20 |
| EP3425513A1 (en) | 2019-01-09 |
| US20150074345A1 (en) | 2015-03-12 |
| WO2013189186A1 (zh) | 2013-12-27 |
| EP2846266A4 (en) | 2015-07-15 |
| CN103514110B (zh) | 2016-08-24 |
| EP2846266B1 (en) | 2018-06-27 |
| CN103514110A (zh) | 2014-01-15 |
| US9524245B2 (en) | 2016-12-20 |
| EP2846266A1 (en) | 2015-03-11 |
| US9727487B2 (en) | 2017-08-08 |
| EP3425513B1 (en) | 2020-07-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2686724T3 (es) | Método de administración de memoria caché y aparato para dispositivo de almacenamiento no volátil | |
| EP3121703B1 (en) | Data caching method, cache and computer system | |
| US8621141B2 (en) | Method and system for wear leveling in a solid state drive | |
| CN104115133B (zh) | 用于复合非易失性存储设备的数据迁移的方法、系统和设备 | |
| US7552286B2 (en) | Performance of a cache by detecting cache lines that have been reused | |
| CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
| CN103678169B (zh) | 一种高效利用固态盘缓存的方法和系统 | |
| US20160011782A1 (en) | Semiconductor storage | |
| WO2017117734A1 (zh) | 一种缓存管理方法、缓存控制器以及计算机系统 | |
| CN105389135A (zh) | 一种固态盘内部缓存管理方法 | |
| US9367479B2 (en) | Management of destage tasks with large number of ranks | |
| CN102999441B (zh) | 一种细粒度内存访问的方法 | |
| US11055228B2 (en) | Caching bypass mechanism for a multi-level memory | |
| US9195596B2 (en) | Mapping of valid and dirty flags in a caching system | |
| US10372615B1 (en) | Data management for cache memory | |
| KR101380602B1 (ko) | 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템 | |
| US10140029B2 (en) | Method and apparatus for adaptively managing data in a memory based file system | |
| KR101546707B1 (ko) | 하이브리드 메인 메모리 기반의 메모리 접근 관리방법 | |
| CN106326135A (zh) | 一种平移非易失性存储器nvm的数据的方法及装置 | |
| CN112306911B (zh) | Cache替换方法、装置及计算机可读存储介质 | |
| KR20150094205A (ko) | 플래시 기반 저장 장치의 스왑 관리 방법 | |
| US9367258B2 (en) | Systems and methods for managing storage space in hybrid data storage systems | |
| JP2010176305A (ja) | 情報処理装置およびデータ記憶装置 | |
| US9760488B2 (en) | Cache controlling method for memory system and cache system thereof | |
| Hirabayashi et al. | Aggressiveness-Controllable Block-Level Cache |