Traducción dinámica de direcciones con calificador de excepción de traducción.
Procedimiento para la calificación de una excepción de traducción en una función de traducción dinamica de direcciones,
capaz de traducir una dirección virtual a una dirección traducida de un bloque de datos en el almacenamiento (208) principal en un sistema (200) informatico, comprendiendo el procedimiento:
obtener una dirección virtual a traducir;
traducir dinamicamente la dirección virtual a una dirección real o absoluta de un bloque de datos deseado en el almacenamiento principal; y en respuesta a un evento de interrupción de excepción de traducción que ha ocurrido durante la traducción dinamica de direcciones de la dirección virtual, almacenar en un calificador de excepción de traducción, bits para indicar que dicha excepción de traducción era una de entre una excepción OAT de servidor, que ha ocurrido mientras se ejecutaba un programa de servidor, y una excepción OAT de servidor que ha ocurrido mientras se ejecutaba un programa de cliente; y caracterizado por almacenar en dicho calificador de excepción de traducción bits para indicar cualquiera de entre un tamafo de un marco de cliente al que pertenece dicha excepción OAT de servidor, y un tamafo de un marco de servidor a ser asignado para respaldar dicho marco de cliente
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2009/051864.
Solicitante: INTERNATIONAL BUSINESS MACHINES CORPORATION.
Nacionalidad solicitante: Estados Unidos de América.
Dirección: One New Orchard Road Armonk, NY 10504 ESTADOS UNIDOS DE AMERICA.
Inventor/es: HELLER,LISA, PFEFFER,ERWIN, GREINER,Dan, OSISEK,Damian.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F12/10 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 12/00 Acceso, direccionamiento o asignación en sistemas o arquitecturas de memoria (entrada digital a partir de, o salida digital hacia soportes de registro, p. ej. hacia unidades de almacenamiento de disco G06F 3/06). › Traducción de direcciones.
PDF original: ES-2381432_T3.pdf
![Traducción dinámica de direcciones con calificador de excepción de traducción.](https://patentados.com/img/2012/03/1202606/traduccion-dinamica-direcciones-calificador-excepcion-traduccion.jpg)
Fragmento de la descripción:
Traducción dinamica de direcciones con calificador de excepción de traducción Campo de la invención La presente invención se refiere, en general, a sistemas y a procedimientos para la traducción de una dirección virtual en un sistema informatico y, mas particularmente, a sistemas y a procedimientos de traducción de una dirección virtual a una dirección real o absoluta de un bloque de datos en un sistema informatico que tiene una función de traducción dinamica de direcciones en la que la traducción de direcciones virtuales se produce a traves de una jerarquia de tablas de traducción.
Antecedentes de la invención La traducción dinamica de direcciones (OAT) proporciona la capacidad de interrumpir la ejecución de un programa en un momento arbitrario, salvar el mismo y sus datos en un almacenamiento auxiliar, tal como un dispositivo de almacenamiento de acceso directo y, en un momento posterior, devolver al programa y los datos a diferentes posiciones de almacenamiento (memoria) para la reanudación de la ejecución. La transferencia del programa y sus datos entre el almacenamiento principal y auxiliar puede ser realizado por partes, y la devolución de la información al almacenamiento principal puede tener lugar en respuesta a un intento por parte de la CPU de acceder a ella en el momento que es necesaria para su ejecución. Estas funciones pueden ser realizadas sin un cambio o una inspección del programa y sus datos, no requieren ninguna convención de programación explicita en el programa trasladado, y no afectan a la ejecución del programa, excepto por el retardo de tiempo implicado.
Con un soporte apropiado por parte de un sistema operativo, la función de traducción dinamica de direcciones puede ser usada para proporcionar a un usuario un sistema en el que el almacenamiento parece ser mas grande que el almacenamiento principal que esta disponible en la configuración. Este almacenamiento principal aparente se denomina, frecuentemente, almacenamiento virtual, y las direcciones usadas para designar las posiciones en el almacenamiento virtual se denominan, frecuentemente, direcciones virtuales. El almacenamiento virtual de un usuario puede exceder, en mucho, el tamafo del almacenamiento principal que esta disponible en la configuración y, normalmente, es mantenido en el almacenamiento auxiliar. Se considera que el almacenamiento virtual esta compuesto de bloques de datos, denominados, comunmente, paginas (denominadas tambien segmentos y regiones) . Sólo las paginas del almacenamiento virtual, referenciadas mas recientemente, son asignadas para ocupar bloques de almacenamiento principal fisico. Conforme el usuario hace referencia a paginas del almacenamiento virtual que no aparecen en el almacenamiento principal, las mismas son introducidas para reemplazar las paginas en el almacenamiento principal que tienen una menor probabilidad de ser necesitadas. En algunos casos, el almacenamiento virtual es asignado al almacenamiento principal durante un periodo de tiempo largo (o permanentemente) , independientemente de si el almacenamiento es referenciado o no. El intercambio de paginas del almacenamiento puede ser realizado por el sistema operativo sin el conocimiento del usuario.
Los programas usan direcciones (o direcciones virtuales) para acceder al almacenamiento virtual. El programa puede extraer instrucciones desde el almacenamiento virtual o cargar datos o almacenar datos desde el almacenamiento virtual usando direcciones virtuales. Las direcciones virtuales asociadas con un rango del almacenamiento virtual definen un espacio de direcciones. Con un soporte apropiado por parte de un sistema operativo, la función de traducción dinamica de direcciones puede ser usada para proporcionar un numero de espacios de direcciones. Estos espacios de direcciones pueden ser usados para proporcionar grados de aislamiento entre los usuarios. Oicho soporte puede consistir en un espacio de direcciones completamente diferente para cada usuario, proporcionando, de esta manera, un aislamiento completo, o puede proporcionarse un area compartida mediante la asignación de una porción de cada espacio de direcciones a una unica area de almacenamiento comun. Tambien, se proporcionan instrucciones que permiten que un programa semi-privilegiado acceda a mas de uno de dichos espacio de direcciones.
La traducción dinamica de direcciones permite la traducción de direcciones virtuales desde multiples espacios de direcciones diferentes. En un procesador IBM® System z, por ejemplo, estos espacios de direcciones se denominan espacio de direcciones primario, espacio de direcciones secundario y espacios de direcciones especificados por registro de acceso. Un programa privilegiado puede hacer tambien que el espacio de direcciones local sea accedido. La traducción dinamica de direcciones puede ser especificada para direcciones de datos e instrucciones generadas por la CPU.
Como es comun en la tecnica, la OAT es realizada usando porciones sucesivas de la dirección virtual como indices, para seleccionar las entradas en una serie de tablas de traducción (por ejemplo, tablas de primera región, de segunda región, de tercera región, de segmentos y de paginas) . Cada entrada de tabla intermedia, si esta marcada como valida, contiene el origen, el desplazamiento y la longitud de la siguiente tabla de nivel inferior, que es indexada, a continuación, por la
siguiente porción de la dirección virtual, hasta que se alcanza una entrada de "hoja", que contiene una dirección de marco real o absoluta. La porción restante de la dirección virtual es usada, a continuación, como un indicede byte en es marco, para completar el resultado de la traducción.
La virtualización es usada para mejorar la eficiencia y la flexibilidad en los entornos informaticos. Antes de la virtualización, tipicamente, se ejecutaba un unico sistema operativo en una maquina. En un entorno virtualizado, un servidor o programa hipervisor tiene el control de los recursos de la maquina. Este servidor crea multiples contenedores, maquinas virtuales, en las que pueden ejecutarse instancias, separadas e independientes, de sistemas operativos, denominadas clientes, que comparten recursos, tales como procesadores y memoria, bajo el control del servidor.
En un entorno de cliente paginable (maquina virtual) , por ejemplo, en un procesador IBM® System z, la traducción dinamica de direcciones ocurre en dos niveles: una pagina virtual de cliente esta respaldada por un marco real de cliente, y estos marcos de cliente estan, a su vez, representados como memoria virtual de servidor, dividida en paginas virtuales de servidor que estan respaldadas por los marcos reales de servidor. Oebido a que la traducción de direcciones es gestionada de manera independiente por el cliente y el servidor, un marco de cliente de cualquier tamafo puede ser asignado a un area virtual de servidor, compuesta de paginas de cualquier tamafo. Oe esta manera, un marco de cliente podria consistir en una pagina de servidor, muchas paginas de servidor (marco de cliente grande en paginas de servidor pequefas) , o una porción de una pagina de servidor (marcos de cliente pequefos en una pagina de servidor grande) . La memoria puede ser gestionada de manera mas eficiente, y la memoria intermedia de traducción adelantada (TLB) en la maquina puede ser usada de manera mas eficiente, cuando el servidor usa el mismo tamafo de pagina que el marco de cliente que respalda. Oe esta manera, por ejemplo, un marco de cliente de 1 Megabyte es tratado como una unidad por el cliente, y deberia estar respaldado por un marco de servidor de 1 Megabyte, en lugar de 256 marcos de 4 Kilobytes, paginados de manera separada. Esto permite que una unica entrada TLB mapee la totalidad del megabyte de las direcciones virtuales de cliente a las direcciones absolutas de servidor correspondientes.
Con el fin de que el tamafo de pagina de servidor se ajuste al tamafo de marco de cliente, el servidor debe ser capaz de determinar que tamafo de marco pretende usar el cliente en las diferentes areas de la memoria de cliente. En algunos casos, el cliente puede utilizar una instrucción de gestión de marco que indica el tamafo previsto de marco de cliente y, a continuación, la gestión de esa instrucción por el firmware o el servidor puede proporcionar un marco de servidor, ajustado en tamafo, para respaldar el marco de cliente. Sin embargo, si el cliente no usa esta instrucción en el momento de implementación, o, si mas tarde, cambia el tamafo de marco, los tamafos de servidor y de cliente ya no coinciden. En particular, si el servidor ha paginado una porción de la memoria de cliente y, a continuación, el cliente la referencia, se emite... [Seguir leyendo]
Reivindicaciones:
1. Procedimiento para la calificación de una excepción de traducción en una función de traducción dinamica de direcciones, capaz de traducir una dirección virtual a una dirección traducida de un bloque de datos en el almacenamiento (208) principal en un sistema (200) informatico, comprendiendo el procedimiento:
obtener una dirección virtual a traducir;
traducir dinamicamente la dirección virtual a una dirección real o absoluta de un bloque de datos deseado en el almacenamiento principal; y en respuesta a un evento de interrupción de excepción de traducción que ha ocurrido durante la traducción dinamica de direcciones de la dirección virtual, almacenar en un calificador de excepción de traducción, bits para indicar que dicha excepción de traducción era una de entre una excepción OAT de servidor, que ha ocurrido mientras se ejecutaba un programa de servidor, y una excepción OAT de servidor que ha ocurrido mientras se ejecutaba un programa de cliente; y caracterizado por almacenar en dicho calificador de excepción de traducción bits para indicar cualquiera de entre un tamafo de un marco de cliente al que pertenece dicha excepción OAT de servidor, y un tamafo de un marco de servidor a ser asignado para respaldar dicho marco de cliente
2. Procedimiento segun la reivindicación 1, que comprende ademas almacenar en dicho calificador de excepción de traducción bits para indicar que dicha excepción de traducción era una excepción OAT de cliente que ha ocurrido mientras se ejecutaba dicho programa de cliente.
3. Procedimiento segun la reivindicación 1 6 2, que comprende ademas almacenar en dicho calificador de excepción de traducción bits para indicar que dicha excepción OAT de servidor se refiere a una dirección derivada desde una entrada de la tabla de hojas de cliente.
4. Procedimiento segun la reivindicación 1, 2 6 3, que comprende ademas el almacenamiento, en dicho calificador de excepción de traducción, de bits para indicar que dicha excepción OAT de servidor se referia a una dirección derivada desde una dirección real de marco de pagina de cliente.
5. Procedimiento segun la reivindicación 1, 2, 3 6 4, que comprende ademas el almacenamiento bits en dicho calificador de excepción de traducción, para indicar que dicha OAT de servidor se referia a una dirección derivada desde una dirección absoluta de marco de segmento de cliente.
6. Sistema que comprende medios adaptados para llevar a cabo todas las etapas del procedimiento segun cualquier reivindicación del procedimiento anterior.
7. Programa informatico que comprende instrucciones para llevar a cabo todas las etapas del procedimiento segun cualquiera reivindicación del procedimiento anterior, cuando dicho programa informatico es ejecutado en un sistema de ordenador.
Patentes similares o relacionadas:
Sistema de procesamiento de datos y método de procesamiento de datos, del 1 de Enero de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un sistema de procesamiento de datos , que comprende una unidad central de procesamiento, CPU , una memoria , un controlador […]
Múltiples conjuntos de campos de atributos dentro de una única entrada de tabla de páginas, del 25 de Septiembre de 2019, de QUALCOMM INCORPORATED: Un procedimiento que comprende: traducir , por una primera unidad de procesamiento , una dirección de memoria virtual a una […]
Dispositivo de inspección de traducción de dirección, dispositivo de procesamiento central y procedimiento de inspección de traducción de dirección, del 17 de Enero de 2018, de MITSUBISHI HEAVY INDUSTRIES, LTD.: Un dispositivo de comprobación de traducción de dirección que comprende: una unidad de gestión de memoria de traducción entre una dirección virtual y una dirección […]
Compresión de memoria modificada, del 28 de Diciembre de 2016, de Microsoft Technology Licensing, LLC: Un procedimiento implementado por ordenador para aumentar la cantidad de memoria disponible para asignación a procesos de programas que […]
Establecimiento de llamada de telecomunicación de medios mixtos, del 18 de Marzo de 2016, de 3G Licensing S.A: Estación móvil apta para videotelefonía en respuesta a una interrupción de una llamada en curso de telecomunicaciones de medios mixtos, comprendiendo […]
Indexación escalable en una memoria de acceso no uniforme, del 16 de Septiembre de 2015, de Simplivity Corporation: Un método de adaptar un proceso de indexación de acceso uniforme con una memoria flash NAND de acceso no uniforme , incluyendo el método:
a) […]
Traducción de direcciones de entrada/salida a direcciones de memoria, del 28 de Agosto de 2013, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método de traducción de direcciones en un entorno informático, dicho método que comprende: obtener una dirección a partir de un adaptador a ser traducida a una […]
Traducción dinámica de dirección con protección de búsqueda y carga, del 18 de Junio de 2013, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método para proteger datos en un sistema de ordenador que tiene una jerarquía de tablas de traducción utilizadas para la traducción […]