ES2704751T3 - Método y dispositivo de gestión de memoria y controlador de memoria - Google Patents

Método y dispositivo de gestión de memoria y controlador de memoria Download PDF

Info

Publication number
ES2704751T3
ES2704751T3 ES15828139T ES15828139T ES2704751T3 ES 2704751 T3 ES2704751 T3 ES 2704751T3 ES 15828139 T ES15828139 T ES 15828139T ES 15828139 T ES15828139 T ES 15828139T ES 2704751 T3 ES2704751 T3 ES 2704751T3
Authority
ES
Spain
Prior art keywords
virtual address
page
address
page table
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES15828139T
Other languages
English (en)
Inventor
Yao Liu
Licheng Chen
Zehan Cui
Mingyu Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2704751T3 publication Critical patent/ES2704751T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

Landscapes

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

Abstract

Un método de gestión de memoria, en donde el método se aplica a un dispositivo de gestión de memoria, y el dispositivo de gestión de memoria se ubica en un controlador de memoria, el método comprendiendo: recibir (E201) una solicitud de recuperación enviada por un procesador, en donde la solicitud de recuperación lleva una dirección virtual; descubrir (E202) si una memoria intermedia de traducción adelantada TLB almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación; y si es así, obtener una dirección física correspondiente a la dirección virtual de la tabla de páginas; o si no es así, obtener un campo de dirección de base de la tabla de páginas (E203) y buscar la tabla de páginas, y si la tabla de páginas comprende la dirección virtual transportada en la solicitud de recuperación, obtener (E205) una dirección física correspondiente a la dirección virtual, en donde la tabla de páginas comprende una correspondencia entre direcciones virtuales y direcciones físicas, y la TLB se ubica en el dispositivo de gestión de memoria; caracterizado por que si la tabla de páginas no comprende la dirección virtual transportada en la solicitud de recuperación, determinar (E206) si la dirección virtual es válida y solicitar una página en blanco cuando se determina que la dirección virtual es válida, en donde: si la solicitud de la página en blanco tiene éxito, iniciar la lectura y escritura de memoria; y si la solicitud de la página en blanco falla, seleccionar una página que se reemplazará y proveer, mediante la escritura de una dirección de la página seleccionada que se reemplazará en un registro de un espacio de retroalimentación, la página que se reemplazará a un sistema operativo de modo que el sistema operativo reemplaza la página.

Description

DESCRIPCIÓN
Método y dispositivo de gestión de memoria y controlador de memoria.
Campo técnico
La presente invención se refiere al campo de los ordenadores y, en particular, a un método y dispositivo de gestión de memoria, y a un controlador de memoria.
Antecedentes
En un sistema de ordenador, un controlador de memoria es principalmente responsable de los intercambios de datos entre una CPU y una memoria, y la gestión de dirección física de la memoria se implementa por un sistema operativo. El sistema operativo asigna una dirección virtual a un proceso. Si una memoria intermedia de traducción adelantada (TLB, por sus siglas en inglés) no almacena en caché la dirección virtual, y una unidad de gestión de memoria (MMU, por sus siglas en inglés) no encuentra una entrada de tabla de páginas de la dirección virtual, un fallo de páginas ocurre y la CPU queda atrapada en el núcleo del sistema operativo. Cuando ocurre el fallo de páginas, el sistema operativo entra en una rutina de servicio de interrupciones, lleva a cabo la protección del sitio, empuja información de estado de una instrucción actual como, por ejemplo, un contador de programa hacia una pila y verifica la validez de la dirección virtual. Si se determina que el acceso es inválido, el sistema operativo normalmente retroalimenta una señal al proceso o directamente destruye el proceso.
En la técnica anterior, si la MMU no encuentra la entrada de tabla de páginas de la dirección virtual, la MMU directamente activa un fallo de páginas y hace que la CPU quede atrapada en el núcleo del sistema operativo durante un largo tiempo. Cuando ocurre el fallo de páginas, el sistema operativo necesita llevar a cabo una serie de procesos, lo cual aumenta la carga en el sistema operativo, y la eficacia de gestión es relativamente baja.
El documento US 2012/297 139 A1 describe un método de funcionamiento de una gestión de memoria. En la búsqueda de la dirección de memoria física correspondiente a una dirección de memoria virtual, primero una memoria intermedia de traducción adelantada, TLB, y posteriormente una traducción de tabla de páginas, PTT, por sus siglas en inglés, se consultan. Finalmente, se lleva a cabo un recorrido de tabla de páginas.
El documento US 2012/239871 A1 describe un sistema y método para aumentar la RAM costosa con una memoria flash relativamente no costosa en una manera transparente para aplicaciones que no tienen consciencia de flash. Compendio
La invención se establece en el conjunto anexo de reivindicaciones. Las reivindicaciones dependientes establecen realizaciones particulares.
Las realizaciones de la presente invención proveen un método y dispositivo de gestión de memoria, y un controlador de memoria, para mejorar la eficacia de gestión de memoria.
Según un primer aspecto, la presente invención provee un método de gestión de memoria, donde el método se aplica a un dispositivo de gestión de memoria y el dispositivo de gestión de memoria se ubica en un controlador de memoria, el método incluyendo:
recibir una solicitud de recuperación enviada por un procesador, donde la solicitud de recuperación lleva una dirección virtual;
descubrir si una memoria intermedia de traducción adelantada TLB almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación; y si es así, obtener una dirección física correspondiente a la dirección virtual de la tabla de páginas; o si no es así, obtener un campo de dirección de base de la tabla de páginas y buscar la tabla de páginas, y si la tabla de páginas incluye la dirección virtual transportada en la solicitud de recuperación, obtener una dirección física correspondiente a la dirección virtual, donde la tabla de páginas incluye una correspondencia entre direcciones virtuales y direcciones físicas, y la TLB se ubica en el dispositivo de gestión de memoria; y
si la tabla de páginas no incluye la dirección virtual transportada en la solicitud de recuperación, determinar si la dirección virtual es válida y solicitar una página en blanco cuando se determina que la dirección virtual es válida. El método además incluye: si la solicitud de la página en blanco tiene éxito, iniciar la lectura y escritura de memoria; o si la solicitud de la página en blanco falla, seleccionar una página que se reemplazará y proveer, mediante la escritura de una dirección de la página seleccionada que se reemplazará en un registro de un espacio de retroalimentación, la página que se reemplazará a un sistema operativo de modo que el sistema operativo reemplaza la página.
Con referencia al primer aspecto, en una primera manera de implementación posible, la determinación de si la dirección virtual es válida específicamente incluye: determinar si la dirección virtual cae dentro de un espacio de dirección virtual asignado y, si es así, determinar que la dirección virtual es válida; o si no, descubrir si la dirección virtual existe en un espacio de dirección de memoria virtual VMA, por sus siglas en inglés, y si es así, determinar que la dirección virtual es válida.
Con referencia al primer aspecto, o a la primera manera de implementación posible del primer aspecto, en una segunda manera de implementación posible, antes de solicitar una página en blanco, el método además incluye: contar la frecuencia de uso de cada página en blanco almacenada en caché en un período preestablecido; y seleccionar una página en blanco que tenga una frecuencia de uso más baja en el período preestablecido cuando se solicita la página en blanco.
Con referencia a la primera manera de implementación posible del primer aspecto, en una tercera manera de implementación posible, después de que la solicitud de la página en blanco tiene éxito, el método además incluye: actualizar la tabla de páginas de modo que la tabla de páginas incluye la dirección virtual transportada en la solicitud de recuperación, y guardar la tabla de páginas en la TLB.
Con referencia a cualquiera del primer aspecto, o a la primera a tercera maneras de implementación posibles del primer aspecto, en una cuarta manera de implementación posible, si se descubre que la tabla de páginas incluye la dirección virtual transportada en la solicitud de recuperación, antes de la etapa de obtención de una dirección física correspondiente a la dirección virtual, el método además incluye. guardar la tabla de páginas en la TLB.
Según un segundo aspecto, la presente invención provee un dispositivo de gestión de memoria, donde el dispositivo de gestión de memoria se ubica en un controlador de memoria, el dispositivo de gestión de memoria incluyendo: una memoria intermedia de traducción adelantada TLB, una unidad de gestión de memoria MMU y un microcontrolador; donde
la TLB se configura para: recibir una solicitud de recuperación enviada por un procesador, donde la solicitud de recuperación lleva una dirección virtual, y descubrir si la TLB almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación; y si es así, obtener una dirección física correspondiente a la dirección virtual de la tabla de páginas, donde la tabla de páginas incluye una correspondencia entre direcciones virtuales y direcciones físicas;
la MMU se configura para: cuando la TLB no almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación, obtener un campo de dirección de base de la tabla de páginas y buscar la tabla de páginas, y si la tabla de páginas incluye la dirección virtual, obtener una dirección física correspondiente a la dirección virtual; y
el microcontrolador se configura para: cuando la tabla de páginas no incluye la dirección virtual, determinar si la dirección virtual es válida, y cuando se determina que la dirección virtual es válida, solicitar una página en blanco. El microcontrolador se configura además para: cuando la solicitud de la página en blanco tiene éxito, iniciar la lectura y escritura de memoria y cuando la solicitud de la página en blanco falla, seleccionar una página que se reemplazará y proveer, mediante la escritura de una dirección de la página seleccionada que se reemplazará en un registro de un espacio de retroalimentación, la página que se reemplazará a un sistema operativo, de modo que el sistema operativo reemplaza la página.
Con referencia al segundo aspecto, en una primera manera de implementación posible, el microcontrolador se configura además para: determinar si la dirección virtual cae dentro de un espacio de dirección virtual asignado, y si es así, determinar que la dirección virtual es válida; o si no, descubrir si la dirección virtual existe en un espacio de dirección de memoria virtual VMA, y si es así, determinar que la dirección virtual es válida.
Con referencia al segundo aspecto, o a la primera manera de implementación posible del segundo aspecto, en una segunda manera de implementación posible, el microcontrolador se configura además para: recibir la solicitud de recuperación, obtener un campo de dirección de base de una tabla de páginas de un proceso correspondiente a la dirección virtual transportada en la solicitud de recuperación, y enviar el campo de dirección de base a la MMU, de modo que la MMU busca la tabla de páginas según el campo de dirección de base.
Con referencia al cualquiera del segundo aspecto, o a la primera a la segunda maneras de implementación posibles del segundo aspecto, en una tercera manera de implementación posible, el microcontrolador se configura además para: contar la frecuencia de uso de cada página en blanco almacenada en caché en un período preestablecido y seleccionar una página en blanco que tenga una frecuencia de uso más baja en el período preestablecido cuando se solicita la página en blanco.
Según un tercer aspecto, la presente invención provee un controlador de memoria, que incluye: cualquier dispositivo de gestión de memoria según el segundo aspecto.
Puede aprenderse de las anteriores soluciones técnicas que las realizaciones de la presente invención tienen las siguientes ventajas:
En las soluciones técnicas de la presente invención, una memoria se gestiona por un dispositivo de gestión de almacenamiento, de modo que la carga en un sistema operativo puede reducirse. Cuando el dispositivo de gestión de almacenamiento determina que una tabla de páginas no incluye una dirección virtual transportada en una solicitud de recuperación, el dispositivo de gestión de almacenamiento no activa una interrupción de un sistema operativo sino que, en su lugar, el dispositivo de gestión de memoria gestiona la memoria, y cuando determina que la dirección virtual es válida, solicita una página en blanco. El dispositivo de gestión de memoria se ubica en un controlador de memoria y es más cercano a una memoria física, de modo que la eficacia de gestión de memoria puede mejorarse de manera eficaz.
Breve descripción de los dibujos
Con el fin de describir las soluciones técnicas en las realizaciones de la presente invención de forma más clara, a continuación se describen brevemente los dibujos anexos requeridos para describir las realizaciones. De manera aparente, los dibujos anexos en la siguiente descripción muestran simplemente algunas realizaciones de la presente invención, y las personas con experiencia en la técnica pueden incluso derivar otros dibujos a partir de dichos dibujos anexos sin esfuerzos creativos.
La Figura 1 es un diagrama esquemático de una arquitectura a la cual una realización de la presente invención es aplicable;
la Figura 2 es un diagrama de flujo esquemático de un método de gestión de memoria según una realización de la presente invención;
la Figura 3A y Figura 3B son otro diagrama de flujo esquemático de un método de gestión de memoria según una realización de la presente invención; y
la Figura 4 es un diagrama estructural esquemático de un dispositivo de gestión de memoria según una realización de la presente invención.
Descripción de las realizaciones
A continuación se describen de forma clara y completa las soluciones técnicas en las realizaciones de la presente invención con referencia a los dibujos anexos en las realizaciones de la presente invención. De manera aparente, las realizaciones descritas son, simplemente, una parte de, pero no todas, las realizaciones de la presente invención. Todas las otras realizaciones que una persona con experiencia en la técnica obtenga según las realizaciones de la presente invención sin esfuerzos creativos caerán dentro del alcance de protección de la presente invención.
En primer lugar, un método de gestión de memoria provisto en una realización de la presente invención puede aplicarse a un sistema de comunicaciones. El método de gestión de memoria puede aplicarse a un dispositivo de gestión de memoria, y el dispositivo de gestión de memoria se ubica en un controlador de memoria.
Para detalles, es preciso remitirse a la Figura 1. La Figura 1 es un diagrama esquemático de una arquitectura a la cual una realización de la presente invención es aplicable. Un controlador de memoria 100 provisto en la presente invención puede incluir un dispositivo de gestión de memoria 101, un planificador de mapeo 102 y un protocolo de capa física PHY, por sus siglas en inglés, 103. El planificador de mapeo 102 es principalmente responsable de funciones como, por ejemplo, mapeo de dirección (por ejemplo, traducir una dirección lineal a un rango, un grupo, una fila y una columna, o similares de una memoria dinámica de acceso aleatorio), y solicitar la planificación y regenerar el control. El PHY 103 es responsable de establecer un enlace físico entre el controlador de memoria 100 y un chip de memoria. Para la implementación específica del planificador de mapeo 102 y el PHY 103, es preciso remitirse a la técnica anterior, y los detalles no se describen en la presente memoria.
Cuando un recurso almacenado en caché solicitado por un procesador no se encuentra, una solicitud de recuperación puede enviarse al controlador de memoria 100 a través de un canal de solicitud para acceder a una memoria. La memoria se gestiona principalmente por el dispositivo de gestión de memoria 101 en el controlador de memoria 100 según la solicitud de memoria intermedia.
Un método de gestión de memoria se aplica al dispositivo de gestión de memoria 101. El dispositivo de gestión de memoria 101 se ubica en el controlador de memoria 100. El método incluye: recibir una solicitud de recuperación enviada por un procesador, donde la solicitud de recuperación lleva una dirección virtual; descubrir si una memoria intermedia de traducción adelantada TLB almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación; y si es así, obtener una dirección física correspondiente a la dirección virtual de la tabla de páginas; o si no es así, obtener un campo de dirección de base de la tabla de páginas y buscar la tabla de páginas, y si la tabla de páginas incluye la dirección virtual transportada en la solicitud de recuperación, obtener una dirección física correspondiente a la dirección virtual, donde la tabla de páginas incluye una correspondencia entre direcciones virtuales y direcciones físicas, y la TLB se ubica en el dispositivo de gestión de memoria; y si la tabla de páginas no incluye la dirección virtual transportada en la solicitud de recuperación, determinar si la dirección virtual es válida, y solicitar una página en blanco cuando se determina que la dirección virtual es válida.
Con referencia a la Figura 2, la Figura 2 es un diagrama de flujo esquemático de un método de gestión de memoria según una realización de la presente invención. El método puede incluir:
Etapa E201: Recibir una solicitud de recuperación enviada por un procesador, donde la solicitud de recuperación lleva una dirección virtual.
Cuando un recurso almacenado en caché solicitado por un procesador no se encuentra, una solicitud de recuperación puede enviarse al dispositivo de gestión de memoria 101 en el controlador de memoria 100 a través de un canal de solicitud para acceder a una memoria. La solicitud de recuperación lleva la dirección virtual. Una memoria intermedia de traducción adelantada (TLB) y un microcontrolador en el dispositivo de gestión de memoria 101 pueden recibir la solicitud de recuperación enviada por el procesador. La TLB es principalmente responsable de la rápida traducción de dirección y búsqueda de una tabla de páginas, y el microcontrolador es principalmente responsable de gestionar una memoria (incluida la verificación de validez de la solicitud de recuperación, etc.). Es decir, el microcontrolador necesita llevar a cabo una función como, por ejemplo, la gestión de memoria, solamente cuando la TLB no almacena en caché una tabla de páginas relevante.
Un sistema de ordenador como un ejemplo para describir la presente invención, el procesador puede ser un núcleo de CPU.
Etapa E202: Descubrir si la memoria intermedia de traducción adelantada TLB almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación; si no es así, se ejecuta la etapa E203; o si es así, se ejecuta la etapa E205, donde la tabla de páginas incluye una correspondencia entre direcciones virtuales y direcciones físicas.
La tabla de páginas se almacena, en general, en un almacenamiento primario, y la tabla de páginas almacena la correspondencia entre las direcciones virtuales y las direcciones físicas. La TLB puede almacenar en caché un archivo de tabla de páginas. Por lo tanto, si la TLB almacena en caché la tabla de páginas, la dirección física correspondiente a la dirección virtual puede obtenerse directamente de la TLB; y si la TLB no almacena en caché la tabla de páginas, la tabla de páginas puede buscarse mediante el uso de una unidad de gestión de memoria (MMU) en el dispositivo de gestión de memoria 101.
Etapa E203: Si la TLB no almacena en caché la tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación, obtener un campo de dirección de base de la tabla de páginas.
Dado que la tabla de páginas se almacena, en general, en el almacenamiento primario, la MMU puede no obtener el campo de dirección de base de la tabla de páginas y, por lo tanto, no puede buscar directamente la tabla de páginas. En el presente caso, el campo de dirección de base de la presente tabla de páginas puede proveerse por el microcontrolador a la MMU, donde una dirección de portal de la dirección de portal de tabla de páginas = el campo de dirección de base varios bits más altos de la dirección virtual.
De manera específica, antes de que la MMU busque la tabla de páginas y después de que el microcontrolador reciba una solicitud de almacenamiento en caché, el campo de dirección de base de la tabla de páginas de un proceso correspondiente a la dirección virtual transportada en la solicitud de recuperación puede obtenerse, y el campo de dirección de base de la tabla de páginas se provee a la MMU, de modo que la MMU busca la tabla de páginas según el campo de dirección de base de la tabla de páginas. En una manera de implementación, el microcontrolador puede buscar una tabla de proceso para obtener el campo de dirección de base de la tabla de páginas del proceso correspondiente a la dirección virtual, y enviar el campo de dirección de base de la tabla de páginas a la MMU.
Etapa E204: Buscar la tabla de páginas según el campo de dirección de base de la tabla de páginas, si se descubre que la tabla de páginas incluye la dirección virtual transportada en la solicitud de recuperación, ejecutar la etapa E205, o si no, ejecutar la etapa E206.
Si la tabla de páginas incluye la dirección virtual transportada en la solicitud de recuperación, la etapa E205 se ejecuta, y después de que la dirección física correspondiente a la dirección virtual se obtiene, pueden leerse datos de memoria según la dirección física. Si la tabla de páginas no incluye la dirección virtual transportada en la solicitud de recuperación, se ejecuta la etapa E206.
Etapa E205: Obtener la dirección física correspondiente a la dirección virtual transportada en la solicitud de recuperación.
En la etapa E202, si se descubre que la memoria intermedia de traducción adelantada TLB almacena en caché la tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación, la dirección física correspondiente a la dirección virtual se obtiene de la tabla de páginas por la TLB en la etapa E205; y si la MMU descubre que la tabla de páginas incluye la dirección virtual transportada en la solicitud de recuperación en la etapa E204, la dirección física correspondiente a la dirección virtual transportada en la solicitud de recuperación se obtiene por la MMU en la etapa E205.
Etapa E206: Si se descubre que la tabla de páginas no incluye la dirección virtual transportada en la solicitud de recuperación, determinar si la dirección virtual es válida y solicitar una página en blanco cuando se determina que la dirección virtual es válida.
Si la TLB no almacena en caché la tabla de páginas, y la tabla de páginas en la MMU no se encuentra, el microcontrolador puede determinar si la dirección virtual transportada en la solicitud de recuperación es válida. La determinación de si la dirección virtual transportada en la solicitud de recuperación es válida específicamente incluye:
determinar si la dirección virtual cae dentro de un espacio de dirección virtual asignado, y si es así, determinar que se accede a la dirección virtual por primera vez y que la dirección virtual es válida; o si no, descubrir si la dirección virtual existe en un espacio de dirección de memoria virtual VMA (Dirección de memoria virtual) y, si es así, determinar que la dirección virtual es válida.
Después de determinar que la dirección virtual existe en el espacio VMA, un fallo de página puede retroalimentarse a un sistema operativo, y el microcontrolador solicita la página en blanco.
Si la dirección virtual es válida, el microcontrolador solicita la página en blanco, y si la solicitud de la página en blanco tiene éxito, la lectura y escritura de memoria pueden iniciarse directamente; si la solicitud de la página en blanco falla, se selecciona una página de reemplazo, y la página de reemplazo se provee al sistema operativo, y los datos se escriben por el sistema operativo en un disco duro desde la memoria. Si una página reemplazada está "limpia", el sistema operativo puede directamente usar la página reemplazada después de modificar una entrada de tabla de páginas de la página reemplazada; o si la página reemplazada está "sucia", el sistema operativo necesita primero escribir la página "sucia" en un disco magnético, generar un cambio de contexto y suspender el presente proceso hasta que el funcionamiento del disco magnético finalice; y luego poner un estado antes de que el fallo de página ocurra desde una pila. A partir de dicho momento, el proceso entra en modo listo y puede planificarse para la ejecución por el sistema operativo en cualquier momento.
Además, después de que la solicitud de la página en blanco tiene éxito, el método puede además incluir: determinar si se accede a la página en blanco solicitada de manera válida por primera vez; y si es así, la función de lectura y escritura de memoria puede iniciarse directamente, o si no, una retroalimentación se envía al sistema operativo para indicar que la página en blanco está lista, de modo que el sistema operativo en el procesador escribe los datos del disco duro en la memoria.
Si se descubre que en la etapa E206 la dirección virtual no existe en el espacio VMA, la dirección virtual se determina como inválida, es decir, la solicitud de recuperación se determina como acceso inválido, un fallo se retroalimenta al sistema operativo y el sistema operativo ejecuta la siguiente etapa.
Como puede aprenderse a partir de lo anterior, en las soluciones técnicas de la presente invención, cuando un dispositivo de gestión de almacenamiento determina que una tabla de páginas no incluye una dirección virtual transportada en una solicitud de recuperación, el dispositivo de gestión de almacenamiento no activa una interrupción de un sistema operativo sino que, en su lugar, el dispositivo de gestión de memoria gestiona una memoria, y cuando determina que la dirección virtual es válida, solicita una página en blanco. El dispositivo de gestión de memoria se ubica en el controlador de memoria y está más cerca de una memoria física, de modo que la eficacia de gestión de memoria puede mejorarse de manera eficaz.
Con el objetivo de comprender mejor la solución anterior, una realización de la presente invención se describirá en detalle mediante el uso de un ejemplo de implementación específico. Para detalles, es preciso remitirse a la Figura 3A y Figura 3B. La Figura 3A y Figura 3B son otro diagrama de flujo esquemático de un método de gestión de memoria según la presente realización de la presente invención.
Etapa E301: Una TLB recibe una solicitud de recuperación enviada por un procesador, donde la solicitud de recuperación lleva una dirección virtual.
Etapa E302: La TLB descubre si la TLB almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación, y si no, se ejecuta la etapa E303; o si es así, se ejecuta la etapa E305.
Etapa E303: Un microcontrolador recibe la solicitud de recuperación enviada por el procesador, donde la solicitud de recuperación lleva la dirección virtual, y el microcontrolador busca una tabla de proceso para obtener un campo de dirección de base de una tabla de páginas de un proceso correspondiente a la dirección virtual, y envía el campo de dirección de base de la tabla de páginas a la MMU; y se ejecuta la etapa E304.
La tabla de proceso es una tabla de estructura de datos que se mantiene localmente por un núcleo de procesador de gestión de memoria y que puede almacenarse en una SRAM en chip, y la tabla de proceso puede incluir, de manera específica, entradas como, por ejemplo: un ID de proceso, un ID de núcleo de procesador, una cuota de espacio físico y una política de gestión. Las entradas de tabla se transmiten a un controlador de memoria mediante el uso de un canal de interacción durante la conmutación de proceso, una dirección de base de portal de la tabla de páginas se crea y mantiene por el procesador de gestión de memoria, y la tabla de proceso es invisible para el sistema operativo. Para detalles de la manera de implementación específica, es preciso remitirse a la Tabla 1:
Tabla 1
Figure imgf000007_0001
El microcontrolador recibe la solicitud de recuperación enviada por el procesador, donde la solicitud de memoria intermedia puede llevar un ID de proceso, y el microcontrolador puede encontrar una ubicación de la tabla de páginas correspondiente al proceso según el ID de proceso, obtener el campo de dirección de base de la tabla de páginas y proveer el campo de dirección de base a la MMU, de modo que la MMU puede buscar la tabla de páginas según la dirección virtual transportada en la solicitud de recuperación.
Puede comprenderse que no hay una relación cronológica entre la etapa E301 y la etapa E303, y el microcontrolador y la TLB pueden recibir la solicitud de recuperación enviada por el procesador al mismo tiempo. Etapa E304: La MMU busca la tabla de páginas según el campo de dirección de base de la tabla de páginas enviada por el microcontrolador. Si la tabla de páginas se encuentra, se ejecuta la etapa E305, o si la tabla de páginas no se encuentra, se ejecuta la etapa E306.
La MMU busca la tabla de páginas según el campo de dirección de base de la tabla de páginas enviada por el microcontrolador, y si la tabla de páginas se encuentra, ello indica que la tabla de páginas incluye la dirección virtual transportada en la solicitud de recuperación, entonces una dirección física correspondiente a la dirección virtual puede obtenerse.
Etapa E305: Obtener la dirección física correspondiente a la dirección virtual.
Si el proceso procede de la etapa E302 a la etapa E305, la dirección física correspondiente a la dirección virtual se obtiene por la TLB, y puede accederse a datos de memoria mediante el uso de la dirección física; y si el proceso procede de la etapa e304 a la etapa E305, la dirección física correspondiente a la dirección virtual se obtiene por la MMU, y puede accederse a los datos de memoria mediante el uso de la dirección física.
Etapa E306: El microcontrolador verifica si la dirección virtual transportada en la solicitud de recuperación cae dentro de un espacio de dirección virtual que se ha asignado recientemente; y si no, se ejecuta la etapa E307; o si sí, el microcontrolador determina que la dirección virtual es válida y se ejecuta la etapa E310.
Por ejemplo, una tabla de asignación de memoria puede integrarse al controlador de memoria, el contenido grabado en entradas de tabla de la tabla de asignación de memoria puede incluir: un ID de proceso, una dirección virtual de un proceso Malloc y un tamaño de la dirección virtual. La información se transmite por el sistema operativo al controlador de memoria mediante el uso de una interfaz interactiva cuando un proceso llama a una función Malloc. Cuando no se encuentra la TLB ni la MMU, el microcontrolador busca la tabla de asignación de memoria. Además, el microcontrolador puede buscar la tabla de asignación de memoria después de recibir la solicitud de recuperación, es decir, durante el procesamiento de la TLB y la MMU, el microcontrolador lleva a cabo el procesamiento al mismo tiempo. Cuando no se encuentra la TLB ni la MMU, pero se encuentra la tabla de asignación de memoria, ello indica que la solicitud de recuperación es válida y que se accede a ella por primera vez y que aún no se le ha asignado una página. El microcontrolador puede directamente solicitar una página en blanco para su uso para la solicitud.
Si ninguna de la TLB, la MMU y la tabla de asignación de memoria se encuentra, se ejecuta la etapa E307, y el microcontrolador necesita verificar el espacio VMA del proceso en la memoria y, por consiguiente, además determinar el motivo por el cual no se encuentra la MMU.
En el presente caso, se ocupan pocos recursos, la lógica es simple y la determinación puede realizarse de forma rápida. Después de que las entradas Malloc aumentan, la tabla de asignación de memoria puede implementar cierta política de reemplazo, por ejemplo, la política más simple de primero en entrar primero en salir (FIFO, por sus siglas en inglés).
Etapa E307: El microcontrolador busca un espacio de dirección de memoria virtual VMA del proceso en la memoria y determina si la dirección virtual existe; si existe, se ejecuta la etapa E309; o si no existe, se ejecuta la etapa E308. Etapa E308: El microcontrolador determina la solicitud como un acceso inválido y retroalimenta una interrupción al sistema operativo.
La siguiente función se ejecuta por el sistema operativo y el proceso finaliza.
Etapa E309: El microcontrolador determina si los datos de dirección virtual de la solicitud se encuentran en una partición SWAP o un archivo, y retroalimenta un fallo de página al sistema operativo; y se ejecuta la etapa E310. Etapa E310: El microcontrolador busca una lista libre y solicita una página en blanco; y si la solicitud falla, el proceso procede a la etapa E311; o si la solicitud tiene éxito, el proceso procede a la etapa E313.
Etapa E311: El microcontrolador ejecuta un algoritmo de reemplazo de página para seleccionar una página y reemplazar la página en la memoria.
Etapa E312: El microcontrolador actualiza entradas de tabla de páginas y la TLB, y escribe una dirección de la página seleccionada que se reemplazará en un registro de un espacio de retroalimentación, y retroalimenta una señal que indica que la página de reemplazo está lista al sistema operativo.
Si se selecciona la página de reemplazo, una entrada de tabla de páginas necesita construirse para la nueva página, y el microcontrolador necesita actualizar la tabla de páginas y la t Lb .
Después de que el microcontrolador retroalimenta una señal al sistema operativo de que la página de reemplazo está lista, la siguiente función se ejecuta por el sistema operativo y el proceso finaliza.
Etapa E313: El microcontrolador actualiza la TLB y las entradas de tabla de páginas.
Si la solicitud de la página en blanco tiene éxito, la entrada de tabla de páginas necesita construirse para la nueva página, y el microcontrolador necesita actualizar la tabla de páginas y la TLB.
Etapa E314: El microcontrolador determina si la página en blanco se solicita por primera vez; si la solicitud de recuperación no es un primer acceso válido, el proceso procede a la etapa E3l5; o si sí lo es, se ejecuta la etapa E316.
Etapa E315: El microcontrolador escribe un valor de registro en el espacio de retroalimentación, y envía la señal de que la página de reemplazo está lista al sistema operativo.
El sistema operativo determina una función siguiente después de leer información del espacio de retroalimentación. Etapa E316: El microcontrolador inicia directamente una función de escritura y lectura de memoria.
Como puede aprenderse de lo anterior, en la solución técnica de la presente invención, cuando un sistema operativo necesita modificar o buscar una tabla de páginas, el sistema operativo solo necesita enviar una instrucción a un microcontrolador y el microcontrolador puede encontrar una ubicación de la tabla de páginas en una memoria según un ID de proceso y automáticamente llevar a cabo una función correspondiente. Dado que la memoria se gestiona por el dispositivo de gestión de memoria, la carga en el sistema operativo puede reducirse y la eficacia de gestión de memoria puede mejorarse de manera eficaz.
Con el objetivo de implementar mejor el método de gestión de memoria provisto en las realizaciones de la presente invención, una realización de la presente invención además provee un dispositivo según el método de gestión de memoria anterior. Los significados de los términos son iguales a aquellos en la gestión de memoria anterior y, para detalles de la implementación, es preciso remitirse a la descripción en las realizaciones del método.
Un dispositivo de gestión de memoria 101 se ubica en un controlador de memoria. El dispositivo de gestión de memoria 101 incluye, de manera específica, una memoria intermedia de traducción adelantada TLB 1011, una unidad de gestión de memoria MMU 1012 y un microcontrolador 1013. Con referencia a la Figura 4, la Figura 4 es un diagrama estructural esquemático de un dispositivo de gestión de memoria.
La TLB 1011 se configura para: recibir una solicitud de recuperación enviada por un procesador, donde la solicitud de recuperación lleva una dirección virtual, y descubrir si la TLB almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación; y si es así, obtener una dirección física correspondiente a la dirección virtual de la tabla de páginas, donde la tabla de páginas incluye una correspondencia entre direcciones virtuales y direcciones físicas.
La MMU 1012 se configura para: cuando la TLB no almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación, obtener un campo de dirección de base de la tabla de páginas y buscar la tabla de páginas, y si la tabla de páginas incluye la dirección virtual, obtener una dirección física correspondiente a la dirección virtual; y
el microcontrolador 1013 se configura para: cuando la tabla de páginas no incluye la dirección virtual, determinar si la dirección virtual es válida, y cuando se determina que la dirección virtual es válida, solicitar una página en blanco. En una realización, el microcontrolador 1013 se configura además para: cuando la solicitud de la página en blanco falla, seleccionar una página de reemplazo y proveer la página de reemplazo a un sistema operativo, de modo que el sistema operativo reemplaza una página.
En una realización, el microcontrolador 1013 se configura, de manera específica, para: determinar si la dirección virtual cae dentro de un espacio de dirección virtual asignado; y si es así, determinar que la dirección virtual es válida, o si no, descubrir si la dirección virtual existe en un espacio de dirección de memoria virtual VMA y, si es así, determinar que la dirección virtual es válida.
En una realización, el microcontrolador 1013 se configura además para: recibir la solicitud de recuperación, obtener un campo de dirección de base de una tabla de páginas de un proceso correspondiente a la dirección virtual transportada en la solicitud de recuperación, y enviar el campo de dirección de base a la MMU, de modo que la MMU busca la tabla de páginas según el campo de dirección de base.
En una realización, el microcontrolador 1013 se configura además para: contar una frecuencia de uso de cada página en blanco almacenada en caché en un período preestablecido, y seleccionar una página en blanco que tenga una frecuencia de uso más baja en el período preestablecido cuando se solicita la página en blanco.
Asimismo, el dispositivo de gestión de memoria 101 puede además incluir: un espacio de configuración 1014 y un espacio de retroalimentación 1015, donde el espacio de configuración y el espacio de retroalimentación son espacios para el intercambio directo de información entre el sistema operativo y el controlador de memoria. Por ejemplo, el espacio de configuración y el espacio de retroalimentación pueden implementarse como una pila de registros direccionables. El sistema operativo puede enviar información al espacio de configuración a través de un canal de interacción y puede obtener información del espacio de retroalimentación. El microcontrolador puede leer información directamente del espacio de configuración, y puede escribir información en el espacio de retroalimentación.
Además, el dispositivo de gestión de memoria 101 puede además incluir: un módulo de caché de datos 1016, configurado para almacenar en caché datos bidireccionales de lectura y escritura.
En una manera de implementación, el código del microcontrolador puede ejecutarse en una SRAM en chip.
Tanto la TLB como la MMU en la presente realización de la presente invención se ubican en el controlador de memoria y están más cerca de una memoria física y, por consiguiente, facilitan la gestión de memoria por hardware. Como puede aprenderse de lo anterior, en la presente realización de la presente invención, una memoria se gestiona por un dispositivo de gestión de almacenamiento, de modo que la carga en un sistema operativo puede reducirse. Cuando el dispositivo de gestión de almacenamiento determina que una tabla de páginas no incluye una dirección virtual transportada en una solicitud de recuperación, el dispositivo de gestión de almacenamiento no activa una interrupción de un sistema operativo sino que, en su lugar, el dispositivo de gestión de memoria gestiona la memoria, y cuando determina que la dirección virtual es válida, solicita una página en blanco. El dispositivo de gestión de memoria se ubica en un controlador de memoria y está más cerca de una memoria física, de modo que la eficacia de gestión de memoria puede mejorarse de manera eficaz.
La presente invención provee además un controlador de memoria. Para detalles, es preciso remitirse a la Figura 1. El controlador de memoria puede incluir cualquier dispositivo de gestión de memoria descrito más arriba y el dispositivo de gestión de memoria puede incluir: una memoria intermedia de traducción adelantada TLB, una unidad de gestión de memoria MMU y un microcontrolador. Para la implementación específica, es preciso remitirse a las anteriores realizaciones y los detalles no se describirán en la presente memoria nuevamente.
El controlador de memoria en la presente realización puede integrarse a una CPU, o puede ser un chip independiente.
En las realizaciones anteriores, la descripción de cada realización tiene respectivos focos. Para una parte que no se describe en detalle en una realización, es preciso remitirse a descripciones relacionadas en otras realizaciones. En las diversas realizaciones provistas en la presente solicitud, se debe comprender que el sistema, aparato y método descritos pueden implementarse de otras maneras. Por ejemplo, la realización del aparato descrita es meramente a modo de ejemplo. Por ejemplo, la división de unidad es meramente una división de función lógica y en la implementación real la división puede ser otra. Por ejemplo, se pueden combinar o integrar en otro sistema múltiples unidades o componentes, o algunas características se pueden ignorar o no llevar a cabo. Además, los acoplamientos mutuos o los acoplamientos directos o conexiones de comunicaciones representadas o descritas se pueden implementar mediante el uso de algunas interfaces. Los acoplamientos indirectos o conexiones de comunicación entre los aparatos o unidades se pueden implementar de forma electrónica, mecánica u otras.
Las unidades funcionales en las realizaciones de la presente invención pueden estar integradas en una unidad de procesamiento, o cada una de las unidades puede existir sola físicamente, o dos o más unidades se integran en una unidad. La unidad integrada se puede implementar en forma de hardware o se puede implementar en forma de una unidad funcional de software.
El método y dispositivo de gestión de memoria y el controlador de memoria provistos en la presente invención se describen en detalle más arriba y el principio y las maneras de implementación de la presente invención se describen en la presente memoria a través de ejemplos específicos.

Claims (10)

REIVINDICACIONES
1. Un método de gestión de memoria, en donde el método se aplica a un dispositivo de gestión de memoria, y el dispositivo de gestión de memoria se ubica en un controlador de memoria, el método comprendiendo:
recibir (E201) una solicitud de recuperación enviada por un procesador, en donde la solicitud de recuperación lleva una dirección virtual;
descubrir (E202) si una memoria intermedia de traducción adelantada TLB almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación; y si es así, obtener una dirección física correspondiente a la dirección virtual de la tabla de páginas; o si no es así, obtener un campo de dirección de base de la tabla de páginas (E203) y buscar la tabla de páginas, y si la tabla de páginas comprende la dirección virtual transportada en la solicitud de recuperación, obtener (E205) una dirección física correspondiente a la dirección virtual, en donde la tabla de páginas comprende una correspondencia entre direcciones virtuales y direcciones físicas, y la TLB se ubica en el dispositivo de gestión de memoria; caracterizado por que
si la tabla de páginas no comprende la dirección virtual transportada en la solicitud de recuperación, determinar (E206) si la dirección virtual es válida y solicitar una página en blanco cuando se determina que la dirección virtual es válida, en donde:
si la solicitud de la página en blanco tiene éxito, iniciar la lectura y escritura de memoria; y
si la solicitud de la página en blanco falla, seleccionar una página que se reemplazará y proveer, mediante la escritura de una dirección de la página seleccionada que se reemplazará en un registro de un espacio de retroalimentación, la página que se reemplazará a un sistema operativo de modo que el sistema operativo reemplaza la página.
2. El método según la reivindicación 1, en donde la determinación de si la dirección virtual es válida específicamente comprende:
determinar si la dirección virtual cae dentro de un espacio de dirección virtual asignado; y si es así, determinar que la dirección virtual es válida; o
si no, determinar si la dirección virtual existe en un espacio de dirección virtual, VMA y, si es así, determinar que la dirección virtual es válida.
3. El método según cualquiera de las reivindicaciones 1 a 2, en donde antes de solicitar una página en blanco, el método además comprende:
contar una frecuencia de uso de cada página en blanco almacenada en caché en un período preestablecido; y seleccionar una página en blanco que tenga una frecuencia de uso más baja en el período preestablecido cuando se solicita la página en blanco.
4. El método según la reivindicación 1, en donde después de que la solicitud de la página en blanco tenga éxito, el método además comprende:
actualizar la tabla de páginas de modo que la tabla de páginas comprende la dirección virtual transportada en la solicitud de recuperación, y guardar la tabla de páginas en la TLB.
5. El método según cualquiera de las reivindicaciones 1 a 4, en donde si se descubre que la tabla de páginas comprende la dirección virtual transportada en la solicitud de recuperación, antes de la etapa de obtención de una dirección física correspondiente a la dirección virtual, el método además comprende:
guardar la tabla de páginas en la TLB.
6. Un dispositivo de gestión de memoria (101), en donde el dispositivo de gestión de memoria (101) se ubica en un controlador de memoria (100), el dispositivo de gestión de memoria (101) comprendiendo: una memoria intermedia de traducción adelantada, TLB, (1011), una unidad de gestión de memoria, MMU, (1012), y un microcontrolador (1013); en donde
la TLB (1011) se configura para: recibir una solicitud de recuperación enviada por un procesador, en donde la solicitud de recuperación lleva una dirección virtual, y descubrir si la TLB (1011) almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación; y si es así, obtener una dirección física correspondiente a la dirección virtual de la tabla de páginas, en donde la tabla de páginas comprende una correspondencia entre direcciones virtuales y direcciones físicas;
la MMU (1012) se configura para: cuando la TLB (1011) no almacena en caché una tabla de páginas correspondiente a la dirección virtual transportada en la solicitud de recuperación, obtener un campo de dirección de base de la tabla de páginas y buscar la tabla de páginas, y si la tabla de páginas comprende la dirección virtual, obtener una dirección física correspondiente a la dirección virtual; y
el microcontrolador (1012) se configura para: cuando la tabla de páginas no comprende la dirección virtual, determinar si la dirección virtual es válida, y cuando se determina que la dirección virtual es válida, solicitar una página en blanco, y:
cuando la solicitud de la página en blanco tiene éxito, iniciar la lectura y escritura de memoria, y cuando la solicitud de la página en blanco falla, seleccionar una página que se reemplazará y proveer, mediante la escritura de una dirección de la página seleccionada que se reemplazará en un registro de un espacio de retroalimentación, la página que se reemplazará a un sistema operativo, de modo que el sistema operativo reemplaza la página.
7. El dispositivo según la reivindicación 6, en donde
el microcontrolador (1012) se configura, de manera específica, para: determinar si la dirección virtual cae dentro de un espacio de dirección virtual asignado; y si es así, determinar que la dirección virtual es válida, o si no, descubrir si la dirección virtual existe en un espacio de dirección de memoria virtual, VMA, y si es así, determinar que la dirección virtual es válida.
8. El dispositivo según cualquiera de las reivindicaciones 6 a 7, en donde
el microcontrolador (1012) se configura además para: recibir la solicitud de recuperación, obtener un campo de dirección de base de una tabla de páginas de un proceso correspondiente a la dirección virtual transportada en la solicitud de recuperación, y enviar el campo de dirección de base a la MMU (1012), de modo que la MMU (1012) busca la tabla de páginas según el campo de dirección de base.
9. El dispositivo según cualquiera de las reivindicaciones 6 a 8, en donde
el microcontrolador (1012) se configura además para: contar una frecuencia de uso de cada página en blanco almacenada en caché en un período preestablecido, y seleccionar una página en blanco que tenga una frecuencia de uso más baja en el período preestablecido cuando se solicita la página en blanco.
10. Un controlador de memoria (100), que comprende el dispositivo de gestión de memoria (101) según cualquiera de las reivindicaciones 6 a 9.
ES15828139T 2014-07-31 2015-07-22 Método y dispositivo de gestión de memoria y controlador de memoria Active ES2704751T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410373858.2A CN105446889B (zh) 2014-07-31 2014-07-31 一种内存管理方法、装置以及内存控制器
PCT/CN2015/084798 WO2016015583A1 (zh) 2014-07-31 2015-07-22 一种内存管理方法、装置以及内存控制器

Publications (1)

Publication Number Publication Date
ES2704751T3 true ES2704751T3 (es) 2019-03-19

Family

ID=55216758

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15828139T Active ES2704751T3 (es) 2014-07-31 2015-07-22 Método y dispositivo de gestión de memoria y controlador de memoria

Country Status (6)

Country Link
US (1) US10108553B2 (es)
EP (1) EP3163451B1 (es)
KR (1) KR101893966B1 (es)
CN (1) CN105446889B (es)
ES (1) ES2704751T3 (es)
WO (1) WO2016015583A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977577B (zh) * 2016-10-21 2020-03-13 龙芯中科技术有限公司 访存指令访问检测方法及装置
CN110389911A (zh) * 2018-04-23 2019-10-29 珠海全志科技股份有限公司 一种设备内存管理单元的预取方法、装置及系统
CN108710584B (zh) * 2018-05-22 2021-08-31 郑州云海信息技术有限公司 一种提高tlb刷新效率的方法
CN111143900B (zh) * 2019-12-24 2023-09-26 海光信息技术(苏州)有限公司 数据处理、访问控制方法、系统、器件、设备、存储介质
US20220398215A1 (en) * 2021-06-09 2022-12-15 Enfabrica Corporation Transparent remote memory access over network protocol
CN115794667B (zh) * 2023-01-19 2023-04-18 北京象帝先计算技术有限公司 内存管理方法、系统、组件及设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388244A (en) * 1992-09-17 1995-02-07 International Business Machines Corporation Controls for initial diversion of page-frame logical content as part of dynamic virtual-to-real translation of a virtual page address
US5835964A (en) * 1996-04-29 1998-11-10 Microsoft Corporation Virtual memory system with hardware TLB and unmapped software TLB updated from mapped task address maps using unmapped kernel address map
US5897664A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
KR19980072720A (ko) 1997-03-07 1998-11-05 류첸쾅 저주파 복사방지용 전원 전환장치
US6490671B1 (en) * 1999-05-28 2002-12-03 Oracle Corporation System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system
US6961840B2 (en) * 2002-09-30 2005-11-01 International Business Machines Corporation Method and apparatus for managing a dynamic alias page table
US7047320B2 (en) 2003-01-09 2006-05-16 International Business Machines Corporation Data processing system providing hardware acceleration of input/output (I/O) communication
US7080220B2 (en) * 2003-07-03 2006-07-18 International Business Machines Corporation Page replacement with a re-reference indicator
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks
US7822941B2 (en) * 2006-06-05 2010-10-26 Oracle America, Inc. Function-based virtual-to-physical address translation
CN101013404A (zh) * 2007-01-26 2007-08-08 浙江大学 面向异构多核体系的分页式存储空间管理方法
US8086822B2 (en) * 2008-05-30 2011-12-27 Vmware, Inc. In-place shadow tables for virtualization
CN101539869A (zh) * 2009-04-13 2009-09-23 浙江大学 与调度性能直接相关的内存管理核的硬件化的方法
US9355023B2 (en) * 2011-03-15 2016-05-31 Anirudh Badam Virtual address pager and method for use with a bulk erase memory
KR20120129695A (ko) * 2011-05-20 2012-11-28 삼성전자주식회사 메모리 관리 유닛, 이를 포함하는 장치들 및 이의 동작 방법
CN102929796A (zh) * 2012-06-01 2013-02-13 杭州中天微系统有限公司 同时支持软件回填与硬件回填的内存管理模块

Also Published As

Publication number Publication date
CN105446889B (zh) 2019-02-12
EP3163451A4 (en) 2017-07-26
EP3163451A1 (en) 2017-05-03
KR101893966B1 (ko) 2018-08-31
US20170132148A1 (en) 2017-05-11
KR20170029594A (ko) 2017-03-15
EP3163451B1 (en) 2018-10-10
US10108553B2 (en) 2018-10-23
CN105446889A (zh) 2016-03-30
WO2016015583A1 (zh) 2016-02-04

Similar Documents

Publication Publication Date Title
ES2704751T3 (es) Método y dispositivo de gestión de memoria y controlador de memoria
US11360679B2 (en) Paging of external memory
EP3195575B1 (en) Paging of external memory
US10133663B2 (en) Systems and methods for persistent address space management
US8756375B2 (en) Non-volatile cache
US9251086B2 (en) Apparatus, system, and method for managing a cache
US8495301B1 (en) System and method for scatter gather cache processing
US20200371700A1 (en) Coordinated allocation of external memory
US12007892B2 (en) External memory as an extension to local primary memory
JP2017151982A (ja) データストレージサブシステムにおけるキャッシングのための方法およびシステム
US9298624B2 (en) Systems and methods for cache coherence protocol
JP6140093B2 (ja) キャッシュメモリ、誤り訂正回路およびプロセッサシステム
US20170177482A1 (en) Computing system having multi-level system memory capable of operating in a single level system memory mode
US20060123197A1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US20160266793A1 (en) Memory system
WO2004061676A2 (en) Allocating cache lines
KR20180122969A (ko) 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법
Guo et al. HP-mapper: A high performance storage driver for docker containers
TW201202929A (en) Apparatus and methods to reduce duplicate line fills in a victim cache
US20230008874A1 (en) External memory as an extension to virtualization instance memory
US11822813B2 (en) Storage device, operation method of storage device, and storage system using the same
TW201109918A (en) Memory management system and method thereof
US20220405253A1 (en) Mechanism for managing a migration of data with mapped page and dirty page bitmap sections
EP4239462A1 (en) Systems and methods for heterogeneous storage systems