Traducción dinámica de dirección con protección de búsqueda y carga.

Un método para proteger datos en un sistema de ordenador (100) que tiene una jerarquía de tablas de traducción(410,

412, 414, 416) utilizadas para la traducción de una dirección virtual a una dirección traducida de un bloque dedatos en almacenamiento principal, comprendiendo el método:

obtener la dirección virtual que ha de ser traducida;

obtener un origen inicial de una tabla de traducción de dicha jerarquía de tablas de traducción, comprendiendo dichajerarquía de tablas de traducción una tabla de segmento;

basándose en el origen inicial obtenido, obtener una entrada de tabla de segmento a partir de dicha tabla desegmento, configurada dicha entradas de tabla de segmento para contener un campo de control de formato;

en respuesta a una función de DAT mejorada que es habilitada, determinar si dicho campo de control de formato endicha entrada de tabla de segmento está habilitado; y

en respuesta a dicho campo de control de formato que está habilitado, realizar:

la determinación de si dicho campo de validez de acceso en dicha entrada de tabla de segmento está habilitado,comprendiendo dicha entrada de tabla de segmento dicho campo de validez de acceso, un campo de control deacceso de segmento, un campo de protección de búsqueda de segmento, y una dirección absoluta de trama desegmento de un gran bloque de datos deseado en el almacenamiento principal.

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2009/050050.

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, GAINEY,CHARLES JR.

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.
  • G06F12/14 G06F 12/00 […] › Protección contra la utilización no autorizada de la memoria.

PDF original: ES-2408189_T3.pdf

 


Fragmento de la descripción:

Traducción dinámica de dirección con protección de búsqueda y carga.

CAMPO DEL INVENTO

El presente invento se refiere en general a sistemas y métodos para traducir una dirección virtual en un sistema informático o de ordenadores y, más particularmente, a sistemas y métodos de traducir una dirección virtual a una dirección real o absoluta de un bloque de datos en un sistema informático que tiene una función o capacidad de traducción de dirección dinámica en que la traducción de dirección virtual ocurre mediante una jerarquía de tablas de traducción.

ANTECEDENTES DEL INVENTO

La Traducción Dinámica de Dirección proporciona la capacidad de interrumpir la ejecución de un programa en un momento arbitrario, grabarlo a él y a sus datos en un almacenamiento o memoria auxiliar, tal como un dispositivo de almacenamiento de acceso directo, y en un instante posterior devolver el programa y los datos a posiciones del almacenamiento principal para la reanudación de la ejecución. La transferencia del programa y de sus datos entre el almacenamiento principal y el auxiliar puede ser realizada gradualmente, y la devolución de la información al almacenamiento principal puede tener lugar en respuesta a un intento por la CPU de acceder a él en el instante necesario para su ejecución. Estas funciones pueden ser realizadas sin cambio o inspección del programa y de sus datos, no requieren ningún acuerdo de programación explícito en el programa vuelto a posicionar, y no perturban la ejecución del programa excepto durante el retardo de tiempo implicado.

Con un soporte apropiado mediante un sistema operativo, la función de traducción dinámica de dirección puede ser utilizada para proporcionar a un usuario un sistema en el que el almacenamiento parece ser mayor que el almacenamiento principal que está disponible en la configuración. Este almacenamiento principal aparente es a menudo denominado como un almacenamiento virtual, y las direcciones utilizadas para designar posiciones en el almacenamiento virtual son a menudo denominadas como direcciones virtuales. El almacenamiento virtual de un usuario puede sobrepasar con mucho el tamaño del almacenamiento principal que está disponible en la configuración y normalmente es mantenido en el almacenamiento auxiliar. El almacenamiento virtual es considerado como compuesto de bloques de datos, corrientemente denominados páginas (también denominados como segmentos y regiones) . Solo las páginas del almacenamiento virtual a que se ha hecho referencia más recientemente son asignadas para ocupar bloques de almacenamiento principal físico. Cuando el usuario se refiere a páginas de almacenamiento virtual que no aparecen en el almacenamiento principal, son llevadas a reemplazar páginas del almacenamiento principal que probablemente son menos necesarias. En algunos casos, el almacenamiento virtual es asignado al almacenamiento principal durante un largo período de tiempo (o permanentemente) , independientemente de si el almacenamiento es referenciado. El intercambio de páginas de almacenamiento puede ser realizado por el sistema operativo sin conocimiento del usuario.

Los programas utilizan direcciones (o direcciones virtuales) para acceder al almacenamiento virtual. El programa puede buscar instrucciones a partir del almacenamiento virtual o cargar datos o almacenar datos a partir del almacenamiento virtual utilizando direcciones virtuales. Las direcciones virtuales asociadas con un rango de almacenamiento virtual definen un espacio de dirección. Con u soporte apropiado mediante un sistema operativo, la función de traducción dinámica de dirección puede ser utilizada para proporcionar un número de espacios de dirección. Estos espacios de dirección pueden ser utilizados para proporcionar grados de aislamiento entre usuarios. Tal soporte puede consistir de un espacio de dirección completamente diferente para cada usuario, proporcionando así un aislamiento completo, o puede preverse un área compartida haciendo corresponder una parte de cada espacio de dirección a una única área de almacenamiento común. También, son proporcionadas instrucciones que permiten que un programa semi-privilegiado acceda a más de uno de tal espacio de dirección.

La traducción dinámica de dirección proporciona medios para la traducción de direcciones virtuales desde múltiples espacios de dirección diferentes. Estos espacios de dirección son denominados espacio de dirección principal, espacio de dirección secundario, y espacios de dirección especificados del Registro de Acceso. Un programa privilegiado puede también hacer que se acceda al espacio de dirección doméstico. La traducción dinámica de dirección puede ser especificada para direcciones de instrucción y de datos generadas por la CPU.

La Patente Norteamericana nº 4.992.936 muestra un método de traducción de dirección que puede acceder selectivamente bien a una página o bien a un segmento.

Lo que se necesita es una función o capacidad de traducción dinámica mejorada de direcciones que proporcione una funcionalidad, capacidad, y protecciones adicionales desconocidas hasta ahora en esta técnica.

RESUMEN DEL INVENTO

Lo que se ha proporcionado son, un método según se ha reivindicado en la reivindicación 1 y un sistema correspondiente, y un programa de ordenador para una función de traducción dinámica de dirección mejorada que traduce una dirección virtual a una dirección real o absoluta de un bloque de datos deseado en el almacenamiento principal de un sistema informático que tiene una arquitectura de máquina con una jerarquía de tablas de traducción utilizadas para traducción. Las direcciones reales pueden ser sometidas a un prefijado para formar una dirección absoluta.

En una realización ejemplar, se obtienen una dirección virtual que ha de ser traducida y una dirección de origen inicial de una tabla de traducción de la jerarquía de tablas de traducción. La tabla de traducción consiste de una primera tabla región, de una segunda tabla región, de una tercera tabla región, o de una tabla de segmento.

Basándose en la dirección de origen inicial obtenida, se obtiene una entrada de tabla de segmento a partir de la tabla de segmento. La entrada de la tabla de segmento está configurada para contener un campo de control de formato. Si una función de DAT mejorada y el campo de control de formato son habilitados, se determina si un campo de validez de acceso en la entrada de tabla de segmentos es habilitado. Si el campo de validez de acceso es habilitado, la entrada de la tabla de segmento contiene además un campo de control de acceso, un campo de protección y una dirección absoluta de trama de segmento de un gran bloque de datos en el almacenamiento principal. El gran bloque de datos es un bloque de al menos 1 Megabyte de tamaño. Si el campo de control de acceso está habilitado, las operaciones de almacenamiento al bloque de datos deseado son permitidas solo si el campo de control de acceso coincide con una clave de acceso al programa proporcionada, bien por una Palabra de Estado de Programa, o bien por un operando de una instrucción de programa que está siendo ejecutada. Las operaciones de búsqueda a partir del bloque de datos deseado son permitidas solamente si la clave de acceso al programa asociada con la dirección virtual es igual al campo de control de acceso.

Aún en otra realización, si el campo de validez de acceso está habilitado, una excepción de protección es indicada en respuesta a una operación de búsqueda o a una operación de almacenamiento que es intentada en el bloque de memoria deseada y el campo de control de acceso de segmento no coincide con el campo de control de acceso de programa.

BREVE DESCRIPCIÓN DE LOS DIBUJOS

Las figuras adjuntas en las que números de referencia similares se refieren a elementos idénticos o de funcionalidad similar a lo largo de todas las vistas separadas y que junto con la descripción detallada siguiente están incorporados y forman parte de la memoria, sirven además para ilustrar distintas realizaciones y para explicar distintos principios y ventajas todas de acuerdo con el presente invento.

La fig. 1 ilustra una realización de un sistema informático o de ordenador anfitrión en el que se realizará una traducción dinámica de dirección mejorada.

La fig. 2 proporciona un sistema informático anfitrión emulado ejemplar que emula el sistema informático anfitrión de una arquitectura de anfitrión.

La fig. 3 ilustra una realización de cómo es utilizada la palabra de estado de programa para determinar el ASCE efectivo para traducción dinámica de dirección de la dirección virtual.

La fig. 4 ilustra una realización en la que el... [Seguir leyendo]

 


Reivindicaciones:

1. Un método para proteger datos en un sistema de ordenador (100) que tiene una jerarquía de tablas de traducción (410, 412, 414, 416) utilizadas para la traducción de una dirección virtual a una dirección traducida de un bloque de datos en almacenamiento principal, comprendiendo el método:

obtener la dirección virtual que ha de ser traducida;

obtener un origen inicial de una tabla de traducción de dicha jerarquía de tablas de traducción, comprendiendo dicha jerarquía de tablas de traducción una tabla de segmento;

basándose en el origen inicial obtenido, obtener una entrada de tabla de segmento a partir de dicha tabla de segmento, configurada dicha entradas de tabla de segmento para contener un campo de control de formato;

en respuesta a una función de DAT mejorada que es habilitada, determinar si dicho campo de control de formato en dicha entrada de tabla de segmento está habilitado; y

en respuesta a dicho campo de control de formato que está habilitado, realizar:

la determinación de si dicho campo de validez de acceso en dicha entrada de tabla de segmento está habilitado, comprendiendo dicha entrada de tabla de segmento dicho campo de validez de acceso, un campo de control de acceso de segmento, un campo de protección de búsqueda de segmento, y una dirección absoluta de trama de segmento de un gran bloque de datos deseado en el almacenamiento principal;

en respuesta a que dicho campo de validez de acceso está habilitado, realizar:

permitir memorias o almacenamientos a dicho gran bloque de datos, en el que las memorias están asociadas con la dirección virtual, dichas memorias permitidas solamente en respuesta a dicho campo de control de acceso de segmento que coincide con una clave de acceso de programa proporcionada por cualquiera de una palabra de estado de programa o un operando de una instrucción del programa que está siendo ejecutada; y

permitir búsquedas a partir de dicho gran bloque de datos deseado, en el que las búsquedas son asociadas con la dirección virtual, solamente en respuesta o bien a) que el campo de protección de búsqueda de segmento está inhabilitado, o bien b) en respuesta a que tanto el campo de protección de búsqueda de segmento está habilitado como que la clave de acceso del programa asociada con dicha dirección virtual es igual a dicho campo de control de acceso de segmento; y

en respuesta a dicha función de DAT mejorada que no está habilitada, realizar:

obtener a partir de dicha entradas de tabla de segmento un origen de una tabla de página y utilizar la parte de índice de página de dicha dirección virtual como referencia a una entrada de tabla de página en dicha tabla de página; y

obtener a partir de dicha entrada de tabla de páginas, una dirección real de trama de página de un pequeño bloque de datos en el almacenamiento principal, siendo dicho pequeño bloque de datos menor de tamaño que dicho gran bloque de datos y consistiendo de un bloque de datos de 4 Kilobytes asociado con una clave de almacenamiento, comprendiendo la clave de almacenamiento el campo de control de acceso de almacenamiento y un campo de protección de búsqueda de almacenamiento, en el que una dirección traducida de un pequeño bloque de datos deseado en el almacenamiento principal comprende una combinación de dirección real de trama de página y dicha parte de índice de bytes de dicha dirección virtual; y

permitir memorias a dicho pequeño bloque de datos deseado, en el que las memorias están asociadas con la dirección virtual, siendo permitidas dichas memorias solo en respuesta a dicha clave de almacenamiento que coincide con una clave de acceso de programa proporcionada por cualquiera de una Palabra de Estado de Programa o bien un operando de una instrucción de programa que está siendo ejecutada;

en el que dicha dirección traducida es cualquiera de una dirección real o dirección absoluta, en el que la dirección real es sometida a prefijado para formar la dirección absoluta, en el que dicha jerarquía de tabla de traducción consiste de una o más de una primera tabla de región, una segunda tabla de región, una tercera tabla de región y dicha tabla de segmento, en el que obtener dicha entrada de tabla de segmento a partir de dicha tabla de segmento comprende cualquiera de A, B, C, D;

A) basándose en dicha dirección de origen inicial obtenida de dicha primera tabla de región, utilizar una primera parte de índice de dicha dirección virtual como referencia a una entrada de primera tabla de región en dicha primera tabla de región que contiene una dirección de origen de dicha segunda tabla de región; basándose en dicha dirección de origen de dicha segunda tabla de región, utilizar una segunda parte de índice de dicha dirección virtual como referencia a una entrada de segunda tabla de región en dicha segunda tabla de región que contiene una dirección de origen de dicha tercera tabla de región; basándose en dicha dirección de origen de dicha tercera tabla de región, utilizar una tercera parte de índice de dicha dirección virtual como referencia a una entrada de tercera tabla de región en dicha tercera tabla de región que contiene una dirección de origen de dicha tabla de segmento; y basándose en dicha dirección de origen de dicha tabla de segmento, utilizar una parte de índice de segmento de dicha dirección virtual como referencia a una entrada de tabla de segmento en dicha tabla de segmento;

B) basándose en dicha dirección origen inicial obtenida de dicha segunda tabla de región, utilizar la segunda parte de índice de dicha dirección virtual como referencia a dicha entrada de segunda tabla de región en dicha segunda tabla de región que contiene una dirección de origen de dicha tercera tabla de región; basándose en dicha dirección de origen de dicha tercera tabla de región, utilizar dicha tercera parte de índice de dicha dirección virtual como referencia a dicha entrada de tercera tabla de región en dicha tercera tabla de región que contiene la dirección de origen de dicha tabla de segmento; y basándose en dicha dirección de origen de dicha tabla de segmento, utilizar dicha parte de índice de segmento de dicha dirección virtual como referencia a dicha entrada de tabla de segmento en dicha tabla de segmento;

C) basándose en dicha dirección de origen inicial obtenida de dicha tercera tabla de región, utilizar dicha tercera parte de índice de dicha dirección virtual como referencia a dicha entrada de tercera tabla de región en dicha tercera tabla de región que contiene la dirección de origen de dicha tabla de segmento; y basándose en dicha dirección de origen de dicha tabla de segmento, utilizar dicha parte de índice de segmento de dicha dirección virtual como referencia a dicha entrada de tabla de segmento en dicha tabla de segmento; y

D) basándose en dicha dirección de origen inicial obtenida de dicha tabla de segmento, utilizar dicha parte de índice de segmento de dicha dirección virtual como referencia a dicha entrada de tabla de segmento.

2. El método según la reivindicación 1, en el que en respuesta a que dicha función de DAT mejorada está habilitada y que dicho campo de control de formato no está habilitado, realiza:

obtener a partir de dicha entrada de tabla de segmento un origen de una tabla de página y utilizar la parte de índice de paz y de dicha dirección virtual como referencia a una entrada de tabla de página en dicha tabla de página;

obtener a partir de dicha entrada de tabla de página, una dirección real de trama de página de un pequeño bloque de datos en almacenamiento principal, siendo dicho pequeño bloque de datos de menor tamaño que dicho gran bloque de datos y consistiendo de un bloque de datos de 4 Kilobytes, estando dicho pequeño bloque de datos asociado con una clave de almacenamiento que comprende un campo de control de acceso de almacenamiento y un campo de protección de búsqueda de almacenamiento, en el que una dirección traducida de un bloque de datos real deseado en almacenamiento principal comprende una combinación de dicha dirección real de trama de página y dicha parte de índice de byte de dicha dirección virtual;

permitir memorias a dicho bloque de memoria real deseada, en el que las memorias están asociadas con la dirección virtual, solo en respuesta a dicho campo de control de acceso de programa que coincide con dicho campo de control de acceso de almacenamiento, siendo proporcionado dicho campo de acceso de programa por una entidad de programa que comprende uno cualquiera de una Palabra de Estado de Programa o un operando de una instrucción de programa que está siendo ejecutada; y

permitir búsquedas a partir de dicho bloque de datos deseado en el que las búsquedas están asociadas con la dirección virtual solo en respuesta o bien a) estando el campo de protección de búsqueda de almacenamiento inhabilitado, o bien b) en respuesta tanto al campo de protección de búsqueda de almacenamiento que está habilitado como a que una clave de acceso de programa asociada con la dirección virtual es igual a dicho campo de control de acceso de almacenamiento, siendo proporcionada dicha clave de acceso de programa por cualquiera de una Palabra de Estado de Programa o bien de un operando de una instrucción de programa que está siendo ejecutada.

3. El método según la reivindicación 1, en el que en respuesta a dicha función de DAT mejorada que no está habilitada, realiza:

obtener a partir de dicha entrada de tabla de segmento un origen de una tabla de página y utilizar la parte de índice de página de dicha dirección virtual como referencia a una entrada de tabla de página en dicha tabla de página;

obtener a partir de dicha entrada de tabla de página, una dirección real de trama de página de un pequeño bloque de datos en almacenamiento principal, siendo dicho pequeño bloque de datos de menor tamaño que dicho gran bloque de datos y consistiendo de un bloque de datos de 4 Kilobytes asociado con una clave de almacenamiento, comprendiendo la clave de almacenamiento un campo de control de acceso de almacenamiento y un campo de protección de búsqueda de almacenamiento, en el que una dirección traducida de un bloque de datos real deseado en almacenamiento principal comprende una combinación de dicha dirección real de trama de página y dicha parte de índice de byte de dicha dirección virtual;

permitir memorias a dicho bloque de memoria real deseada, en el que las memorias están asociadas con la dirección virtual, solo en respuesta a que dicho campo de control de acceso de programa coincide con dicho campo de control de acceso de almacenamiento; y

permitir búsquedas a partir de dicho bloque de datos deseado en el que las búsquedas están asociadas con la dirección virtual solo en respuesta o bien a) estando el campo de protección de búsqueda de almacenamiento inhabilitado, o b) en respuesta tanto al campo de protección de búsqueda de almacenamiento que está habilitado, como a que una clave de acceso de programa asociada con la dirección virtual es igual a dicho campo de control de acceso de almacenamiento, siendo proporcionada dicha clave de acceso de programa por cualquiera de una Palabra de Estado de Programa o bien de un operando de una instrucción de programa que está siendo ejecutada.

4. El método según la reivindicación 1, en el que en respuesta a que dicha clave de acceso de programa es cero, permitiendo memorias a dicho bloque de memoria y búsquedas a partir de dicho bloque de memoria deseado, en el que las memorias y las búsquedas son asociados con la dirección virtual.

5. El método según la reivindicación 1, en el que en respuesta a que dicho campo de validez de acceso y dicho campo de protección de búsqueda están habilitados, indicando una excepción de protección en respuesta a que una operación de búsqueda es intentada desde dicho bloque de memoria deseado y a que dicho campo de control de acceso de segmento no coincide con dicho campo de control de acceso de programa, estando asociada dicha operación de búsqueda con dicha dirección virtual.

6. El método según la reivindicación 1, en el que determinar si dicho campo de validez de acceso está habilitado comprende además determinar cualquiera de: a) si un campo de Modificación de Protección de Almacenamiento de un registro de control está inhabilitado o b) si dicho campo de Modificación de protección de Almacenamiento está habilitado y dicho campo de control de acceso de segmento no está habilitado.

7. 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 al menos una memoria tampón de traducción rápida; y

realizar una traducción subsiguiente de una dirección virtual subsiguiente a dicha dirección absoluta de dicho bloque de datos en almacenamiento principal utilizando dicha información almacenada a partir de dicha memoria tampón de traducción rápida en vez de dicha jerarquía de tablas de traducción.

8. El método según la reivindicación 1, en el que en respuesta a que dicha traducción no es nativa a 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 pluralidad de instrucciones; y

ejecutar dicha rutina de software predeterminada.

9. El método según la reivindicación 1, en el que dicho gran bloque de datos comprende un bloque de al menos 1 Megabyte de tamaño.

10. Un sistema que comprende medios adaptados para realizar todas las operaciones del método de acuerdo con cualquier reivindicación de método precedente.

11. Un programa de ordenador que comprende instrucciones para llevar a la práctica todas las operaciones del método de acuerdo con cualquier reivindicación de método precedente, cuando dicho programa de ordenador es ejecutado en un sistema informático.


 

Patentes similares o relacionadas:

Arquitectura e instrucciones flexibles para el estándar de cifrado avanzado (AES), del 27 de Mayo de 2020, de INTEL CORPORATION: Un procesador que comprende: una pluralidad de núcleos; una caché de instrucciones de nivel 1, L1, para almacenar una pluralidad de instrucciones […]

Procedimiento de control sistemático de direcciones de zonas de memoria en el marco de una transferencia por acceso directo, del 1 de Abril de 2020, de THALES: Procedimiento de control sistemático por un dispositivo de control de al menos un mensaje de configuración de transferencia, siendo el mensaje de configuración […]

Servidor de seguridad de soporte lógico, del 19 de Febrero de 2020, de Idemia Identity & Security France: Procedimiento de verificación de ejecución de applets (AA1, AB1) desarrolladas en un lenguaje orientado objeto y compiladas en código intermedio, siendo el procedimiento […]

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 […]

Procedimiento para proteger datos relevantes para la seguridad en una memoria caché, del 14 de Agosto de 2019, de SIEMENS AKTIENGESELLSCHAFT: Procedimiento para proteger datos relevantes para la seguridad en una memoria caché, archivándose una copia de los datos relevantes para la seguridad […]

Archivo seguro, del 7 de Agosto de 2019, de Waterfall Security Solutions Ltd: Aparato de almacenamiento, que comprende: una memoria ; un procesador de encriptado , que está configurado para recibir y encriptar datos transmitidos desde uno […]

Sistemas y métodos para proporcionar como salida un resultado de una instrucción de procesador vigente tras su salida de una máquina virtual, del 3 de Abril de 2019, de Bitdefender IPR Management Ltd: Un sistema anfitrión que comprende al menos un procesador hardware configurado para ejecutar una máquina virtual y un programa de seguridad informática, en donde el al menos […]

Sistema y método para la gestión distribuida de ordenadores compartidos, del 20 de Febrero de 2019, de Zhigu Holdings Limited: Método para operar una arquitectura de gestión informática de múltiples niveles, teniendo dicho método los siguientes pasos: operar un ordenador […]

Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .