Traducción dinámica de direcciones con control de formato.
Método de traducción de una dirección virtual en una dirección traducida de un bloque de datos enalmacenamiento principal en un sistema informático (100) de una arquitectura de máquina que tiene una jerarquíade tablas de traducción (410,
412, 414, 416) utilizada para la traducción de dicha dirección virtual, comprendiendo elmétodo:
obtener una dirección virtual a traducir;
obtener una dirección de origen de una tabla de traducción de dicha jerarquía de tablas de traducción;
utilizar una parte de índice de dicha dirección virtual para hacer referencia a una entrada en dicha tabla detraducción;
caracterizado por determinar si está habilitado un campo de control de formato en dicha entrada de tabla detraducción, en el que un campo de control formato no habilitado de la entrada de tabla de traducción indica que laentrada de tabla de traducción incluye una dirección de otra tabla de traducción, y en el que un campo de controlhabilitado de formato de la entrada de la tabla de traducción indica que la entrada de la tabla de traducción incluyeuna dirección de marco de un bloque grande de datos y bits de protección de acceso para permitir el acceso albloque grande de datos, y
en el que, si dicho campo de control de formato no está habilitado, llevar a cabo:
la obtención desde dicha entrada de tabla de traducción de una dirección de origen de otra tabla de traducción dedicha jerarquía de tablas de traducción;
la utilización de una parte de índice de dicha dirección virtual para hacer referencia a una entrada en dicha otra tablade traducción y la obtención desde dicha otra entrada de tabla de una dirección de marco pequeño de un bloquepequeño de datos en almacenamiento principal, siendo dicho bloque pequeño de datos menor que dicho bloquegrande de datos;
la combinación de dicha dirección real de marco pequeño con una parte de desplazamiento de dicha direcciónvirtual, para formar una dirección real traducida de dicho bloque pequeño deseado de datos en almacenamientoprincipal, estando sometida dicha dirección real a anteposición de prefijo; y
en base a la determinación de que los bits de control de acceso de una clave de almacenamiento asociada condicho bloque pequeño deseado de datos coincide con una clave de acceso asociada con una solicitud de acceso,acceder a dicho bloque pequeño deseado de datos en almacenamiento principal al que está dirigida dicha direccióntraducida;
si está habilitado dicho campo de control de formato, llevar a cabo:
la obtención desde dicha entrada de tabla de traducción de una dirección de marco de un bloque grande de datos enalmacenamiento principal, en el que dicha entrada de tabla de traducción comprende un campo de control de acceso(ACC) y un bit de protección contra lectura (F);
la combinación de dicha dirección de marco con una parte de desplazamiento de dicha dirección virtual para formaruna dirección absoluta traducida de un bloque deseado de datos dentro de dicho bloque grande de datos enalmacenamiento principal, en el que dicho bloque deseado de datos consiste en uno o varios bytes de datos, en elque dicha dirección absoluta no está sometida a anteposición de prefijo; y
en base a una determinación de si la clave de almacenamiento o el campo de control de acceso de la entrada detabla de traducción coincide con la clave de acceso asociada con una solicitud de acceso, acceder a dicho bloquegrande deseado de datos al que está dirigida dicha dirección traducida.
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2009/050049.
Solicitante: INTERNATIONAL BUSINESS MACHINES CORPORATION.
Nacionalidad solicitante: Estados Unidos de América.
Dirección: NEW ORCHARD ROAD ARMONK, NY 10504 ESTADOS UNIDOS DE AMERICA.
Inventor/es: HELLER,LISA, PFEFFER,ERWIN, SLEGEL,TIMOTHY, GREINER,Dan, OSISEK,Damian, WEBB,CHARLES.
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-2406056_T3.pdf
Fragmento de la descripción:
Traducción dinámica de direcciones con control de formato Campo de la invención La presente invención se refiere, en términos generales, a sistemas y métodos para traducir una dirección virtual en un sistema informático y, más en particular, a sistemas y métodos para traducir una dirección virtual en una dirección real o absoluta de un bloque de datos en un sistema informático que tiene un servicio de traducción dinámica de direcciones, en el que la traducción de direcciones virtuales se produce a través de una jerarquía de tablas de traducción.
Antecedentes de la invención La traducción dinámica de direcciones proporciona la capacidad de interrumpir la ejecución de un programa en un momento arbitrario, grabar el programa y sus datos en almacenamiento auxiliar, tal como un dispositivo de almacenamiento de acceso directo, y en un momento posterior devolver el programa y los datos a posiciones diferentes del almacenamiento principal para reanudar la ejecución. La transferencia del programa y sus datos entre almacenamiento principal y auxiliar puede llevarse a cabo de manera fragmentaria, y la devolución de la información al almacenamiento principal puede tener lugar en respuesta a un intento de la CPU de acceder a la misma en el momento en que se requiere su ejecución. Estas funciones pueden llevarse a cabo sin cambios o inspección del programa y sus datos, no requieren ningún convenio explícito de programación en el programa reasignado y no perturban la ejecución del programa excepto en lo que se refiere al retardo temporal involucrado.
Con el soporte adecuado de un sistema operativo, el servicio de traducción dinámica de direcciones puede utilizarse para proporcionar al usuario un sistema en el que el almacenamiento parece mayor que el almacenamiento principal que está disponible en la configuración. Este almacenamiento principal aparente se denomina a menudo almacenamiento virtual, y las direcciones utilizadas para designar posiciones en el almacenamiento virtual se denominan a menudo direcciones virtuales. El almacenamiento virtual de un usuario puede exceder con mucho el tamaño del almacenamiento principal que está disponible en la configuración y normalmente se mantiene en almacenamiento auxiliar. Se considera que el almacenamiento virtual se compone de bloques de datos, denominados normalmente páginas (llamadas asimismo segmentos y regiones) . Solamente las páginas consultadas más recientemente del almacenamiento virtual están asignadas a bloques ocupados de almacenamiento físico principal. Cuando el usuario consulta páginas de almacenamiento virtual que no figuran en el almacenamiento principal, éstas son incorporadas al almacenamiento principal sustituyendo páginas que es menos probable que se necesiten. En algunos casos, se asigna almacenamiento virtual al almacenamiento principal durante un periodo largo de tiempo (o permanentemente) , independientemente de si el almacenamiento es consultado. El intercambio de páginas de almacenamiento puede llevarse a cabo mediante el sistema operativo sin conocimiento del usuario.
Los programas utilizan direcciones (o direcciones virtuales) para acceder al almacenamiento virtual. El programa puede leer instrucciones desde el almacenamiento virtual o cargar datos o almacenar datos desde el almacenamiento virtual utilizando direcciones virtuales. Las direcciones virtuales asociadas con un intervalo de almacenamiento virtual definen un espacio de direcciones. Con el soporte apropiado de un sistema operativo, el servicio de traducción dinámica de direcciones puede utilizarse para proporcionar una serie de espacios de direcciones. Estos espacios de direcciones pueden utilizarse para proporcionar grados de aislamiento entre usuarios. Dicho soporte puede consistir en un espacio de direcciones completamente diferente para cada usuario, proporcionando de este modo un aislamiento total, o puede proporcionarse un área compartida mapeando una parte de cada espacio de direcciones a una única área de almacenamiento común. Asimismo, se proporcionan instrucciones que permiten a un programa semi-privilegiado acceder a más de uno de dichos espacios de direcciones.
La traducción dinámica de direcciones sirve para la traducción de direcciones virtuales de múltiples espacios de direcciones diferentes. 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 asimismo provocar el acceso al espacio de direcciones local. La traducción dinámica de direcciones puede especificarse por direcciones de instrucciones y datos generadas por la CPU.
Lo que se necesita es un servicio de traducción dinámica de direcciones mejorada que proporcione funcionalidad, capacidad y protecciones mejoradas, desconocidas hasta ahora en esta técnica.
La memoria US 4992936 describe un método para la traducción de una dirección virtual a una dirección traducida de un bloque de datos, de acuerdo con la parte precaracterizadora de la reivindicación 1.
Compendio de la invención Lo que se da a conocer es un método acorde con la reivindicación 1 y un sistema y un programa informático correspondientes para un servicio de traducción dinámica de direcciones mejorada que traduce una dirección virtual en una dirección real o absoluta de un bloque de datos deseado en el almacenamiento principal de un sistema de ordenador que tiene una arquitectura de máquina con una jerarquía de tablas de traducción utilizada para la traducción. Las direcciones reales pueden someterse a anteposición de prefijos para formar una dirección absoluta.
En una realización a modo de ejemplo, se obtiene en primer lugar una dirección virtual a traducir y se obtiene una dirección original inicial de una tabla de traducción de la jerarquía de tablas de traducción. Se utiliza una parte de índice de la dirección virtual para hacer referencia a una entrada en la tabla de traducción. Se adopta una determinación acerca de si se habilita el campo de control de formato en la entrada de la tabla de traducción. Si se habilita el campo de control de formato, se obtiene una dirección de marco de un bloque grande de datos en el almacenamiento principal a partir de la entrada de la tabla de traducción. El bloque grande de datos comprende un bloque de por lo menos 1 Megabyte de tamaño. A continuación, la dirección de marco se combina con una parte de desplazamiento de la dirección virtual para formar la dirección traducida de un bloque de datos deseado dentro del bloque grande de datos en el almacenamiento principal. A continuación, se accede al bloque grande de datos deseado al que se dirige la dirección traducida. En otra realización, se obtiene a partir de la entrada de la tabla de traducción un campo de entrada de tabla no válido. Se inicia una excepción si está habilitado el correspondiente campo de entrada de tabla no válido.
En otra realización, se obtiene información de restricción a partir de la entrada de la tabla de traducción. La información de restricción se utiliza para restringir el acceso a una parte restringida del bloque grande. A continuación, el acceso al bloque grande de datos deseado al que se dirige la dirección traducida se permite solamente a la parte restringida del bloque de datos.
A continuación se describirá la invención en relación con ciertas realizaciones mostradas. Debe entenderse que los expertos en la materia pueden realizar diversos cambios y modificaciones sin apartarse del alcance de la invención.
Breve descripción de los dibujos Las figuras adjuntas, en las que los números referencia iguales se refieren a elementos funcionalmente idénticos o similares a través de las distintas vistas y que junto con la siguiente descripción detallada se incorporan a la memoria y forman parte de la misma, sirven para ilustrar diversas realizaciones y para explicar diversos principios y ventajas, todos ellos de acuerdo con la presente invención.
la figura 1 muestra una realización de un sistema de ordenador anfitrión en el que se llevará a cabo traducción dinámica de direcciones;
la figura 2 da a conocer un ejemplo de sistema de ordenador anfitrión emulado, que emula el sistema de ordenador anfitrión de una arquitectura de anfitrión;
la figura 3 muestra una realización de cómo se utiliza la palabra de estado de programa para determinar el ASCE efectivo para traducción dinámica de direcciones de la dirección virtual;
la figura 4 muestra una realización en la que se utiliza el ASCE efectivo determinado en la figura 3, para determinar la tabla de traducción superior en la jerarquía de tablas de traducción utilizada en la traducción de la dirección... [Seguir leyendo]
Reivindicaciones:
1. Método de traducción de una dirección virtual en una dirección traducida de un bloque de datos en almacenamiento principal en un sistema informático (100) de una arquitectura de máquina que tiene una jerarquía de tablas de traducción (410, 412, 414, 416) utilizada para la traducción de dicha dirección virtual, comprendiendo el método:
obtener una dirección virtual a traducir;
obtener una dirección de origen de una tabla de traducción de dicha jerarquía de tablas de traducción;
utilizar una parte de índice de dicha dirección virtual para hacer referencia a una entrada en dicha tabla de traducción;
caracterizado por determinar si está habilitado un campo de control de formato en dicha entrada de tabla de traducción, en el que un campo de control formato no habilitado de la entrada de tabla de traducción indica que la entrada de tabla de traducción incluye una dirección de otra tabla de traducción, y en el que un campo de control habilitado de formato de la entrada de la tabla de traducción indica que la entrada de la tabla de traducción incluye una dirección de marco de un bloque grande de datos y bits de protección de acceso para permitir el acceso al bloque grande de datos, y
en el que, si dicho campo de control de formato no está habilitado, llevar a cabo:
la obtención desde dicha entrada de tabla de traducción de una dirección de origen de otra tabla de traducción de dicha jerarquía de tablas de traducción;
la utilización de una parte de índice de dicha dirección virtual para hacer referencia a una entrada en dicha otra tabla de traducción y la obtención desde dicha otra entrada de tabla de una dirección de marco pequeño de un bloque pequeño de datos en almacenamiento principal, siendo dicho bloque pequeño de datos menor que dicho bloque grande de datos;
la combinación de dicha dirección real de marco pequeño con una parte de desplazamiento de dicha dirección virtual, para formar una dirección real traducida de dicho bloque pequeño deseado de datos en almacenamiento principal, estando sometida dicha dirección real a anteposición de prefijo; y
en base a la determinación de que los bits de control de acceso de una clave de almacenamiento asociada con dicho bloque pequeño deseado de datos coincide con una clave de acceso asociada con una solicitud de acceso, acceder a dicho bloque pequeño deseado de datos en almacenamiento principal al que está dirigida dicha dirección traducida;
si está habilitado dicho campo de control de formato, llevar a cabo:
la obtención desde dicha entrada de tabla de traducción de una dirección de marco de un bloque grande de datos en almacenamiento principal, en el que dicha entrada de tabla de traducción comprende un campo de control de acceso (ACC) y un bit de protección contra lectura (F) ;
la combinación de dicha dirección de marco con una parte de desplazamiento de dicha dirección virtual para formar una dirección absoluta traducida de un bloque deseado de datos dentro de dicho bloque grande de datos en almacenamiento principal, en el que dicho bloque deseado de datos consiste en uno o varios bytes de datos, en el que dicha dirección absoluta no está sometida a anteposición de prefijo; y
en base a una determinación de si la clave de almacenamiento o el campo de control de acceso de la entrada de tabla de traducción coincide con la clave de acceso asociada con una solicitud de acceso, acceder a dicho bloque grande deseado de datos al que está dirigida dicha dirección traducida.
2. El método según la reivindicación 1, en el que si dicho campo de control de formato está habilitado, la ejecución comprende adicionalmente:
obtener de dicha entrada de tabla de traducción, información de restricción para restringir dicho acceso a dicha parte restringida de dicho bloque grande de datos; y
restringir dicho acceso a dicho bloque grande deseado de datos al que se dirige dicha dirección traducida, a solamente dicha parte restringida de dicho bloque grande de datos.
3. El método según la reivindicación 2, en el que dicha información de restricción comprende cualquiera de un desplazamiento de tabla o una longitud de tabla.
4. El método según la reivindicación 1, en el que la jerarquía de tablas de traducción consiste en una o varias de una primera tabla de regiones que tiene una entrada de la primera tabla de regiones para localizar una segunda tabla de regiones, una segunda tabla de regiones que tiene una entrada de la segunda tabla de regiones para localizar una
tercera tabla de regiones, una tercera tabla de regiones que tiene una entrada de la tercera tabla de regiones para localizar una tabla de segmentos, y una tabla de segmentos que tiene una entrada de la tabla de segmentos, comprendiendo el método adicionalmente:
comenzando con una tabla de traducción predeterminada de la jerarquía de tablas de traducción, buscar secuencialmente una o varias de las entradas de tabla de traducción de la jerarquía de tablas de traducción hasta que se encuentra una entrada de tabla de traducción con un campo de control de formato habilitado, en el que la dirección de origen de tabla de traducción de la tabla de traducción que tiene la entrada de tabla de traducción con el campo de control de formato habilitado es la dirección de origen obtenida de la tabla de traducción de dicha jerarquía de tablas de traducción.
5. El método según la reivindicación 1, que comprende además:
almacenar información utilizada en dicha traducción de dicha dirección virtual en, por lo menos, una memoria intermedia de traducción anticipada; y
llevar a cabo una traducción subsiguiente de una dirección virtual subsiguiente en dicha dirección absoluta de dicho bloque de datos en almacenamiento principal, utilizando dicha información almacenada de dicha memoria intermedia de traducción anticipada y no de dicha jerarquía de tablas de traducción.
6. El método según la reivindicación 1, que si dicha traducción no es nativa de dicha arquitectura de máquina, comprende además:
identificar una rutina de software predeterminada para emular dicha traducción, comprendiendo dicha rutina de software predeterminada una serie de instrucciones; y
ejecutar dicha rutina de software predeterminada.
7. El método según la reivindicación 1, en el que dicho bloque grande de datos comprende un bloque de por lo menos 1 Megabyte de tamaño.
8. El método según la reivindicación 1, en el que
cuando el acceso a dicho bloque grande deseado de datos es una operación de almacenamiento, el almacenamiento se permite solamente si el campo de control de acceso de la entrada de tabla de traducción coincide con la clave de acceso asociada con la solicitud de acceso; y
cuando el acceso a dicho bloque grande deseado de datos es una operación de lectura, la lectura se permite en base a un bit de protección contra lectura de la entrada de tabla de traducción, en el que se permite la lectura si el bit de protección contra lectura de la entrada de la tabla de traducción es 0 o si el bit de protección contra lectura de la entrada de la tabla de traducción es 1 y el campo de control de acceso de la entrada de la tabla de traducción coincide con la clave de acceso asociada con una solicitud de acceso.
9. Un sistema que comprende medios adaptados para llevar a cabo todas las etapas del según cualquier reivindicación de método precedente.
10. Un programa informático que comprende instrucciones para llevar a cabo todas las etapas del método según cualquier reivindicación de método precedente, cuando dicho programa informático es ejecutado en un sistema informático.
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 […]