MECANISMO DE EXTRACCIÓN DE ATRIBUTOS DE CACHÉ E INSTRUCCIÓN PARA EL MISMO.

Un método de funcionamiento de un ordenador que comprende: la extracción (801),

por un procesador (106) de un sistema de procesamiento, de una instrucción de máquina de caché definida para una arquitectura informática, la instrucción de máquina de caché comprende un código de operación, un identificador del operando, el identificador del operando identifica una ubicación de operando; la ejecución de la instrucción de máquina de caché comprende: sobre la base de un identificador de nivel de caché, la determinación de una caché de destino; sobre la base de un identificador de atributo de caché, la determinación de un atributo de caché (804) que se va a extraer; la extracción (805) del atributo de caché determinado de la caché de destino; y guardar (806) el atributo de caché extraído en la ubicación de operando identificada, en la que el atributo de caché que se va a extraer comprende cualquiera de: un resumen de la topología de caché de una o varias cachés; un tamaño de línea de la caché de destino; un tamaño total de la caché de destino; o un nivel de asociatividad establecida de la caché de destino

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

Solicitante: INTERNATIONAL BUSINESS MACHINES CORPORATION.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: NEW ORCHARD ROAD ARMONK, NEW YORK 10504 ESTADOS UNIDOS DE AMERICA.

Inventor/es: SLEGEL,TIMOTHY, GREINER,Dan.

Fecha de Publicación: .

Fecha Solicitud PCT: 7 de Enero de 2009.

Clasificación Internacional de Patentes:

  • G06F9/30T
  • G06F9/30Z

Clasificación PCT:

  • G06F9/445 FISICA.G06 CALCULO; CONTEO.G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 9/00 Disposiciones para el control por programa, p. ej. unidades de control (control por programa para dispositivos periféricos G06F 13/10). › Carga o inicio de programas (arranque G06F 9/4401; disposiciones de seguridad para la carga o inicio de programas G06F 21/57).

Países PCT: Austria, Bélgica, Suiza, Alemania, Dinamarca, España, Francia, Reino Unido, Grecia, Italia, Liechtensein, Luxemburgo, Países Bajos, Suecia, Mónaco, Portugal, Irlanda, Eslovenia, Finlandia, Rumania, Chipre, Lituania, Letonia, Ex República Yugoslava de Macedonia, Albania.

PDF original: ES-2368682_T3.pdf

 


Fragmento de la descripción:

Mecanismo de extracción de atributos de caché e instrucción para el mismo. Ámbito de la invención La presente invención se refiere a sistemas informáticos y más particularmente a la funcionalidad de las instrucciones del procesador del sistema informático. Antecedentes de la invención Marcas: IBM® es una marca comercial registrada de International Business Machines Corporation, Armonk, Nueva York, EE.UU. S/390, Z900 y z990 y otros nombres de productos pueden ser marcas comerciales registradas o nombres de productos de International Business Machines Corporation o de otras empresas. A partir de las máquinas conocidas como IBM® System 360 en la década de 1960 hasta la actualidad, IBM ha desarrollado una arquitectura que se conoce como "the mainframe", cuyos principios de funcionamiento establecen la arquitectura de la máquina mediante la descripción de las instrucciones que pueden ejecutarse con la implementación de "mainframe" de las instrucciones que habían sido inventadas por los inventores de IBM y adoptadas, debido a su significativa contribución a la mejora del estado de la máquina de computación representada por "the mainframe", como contribuciones significativas por la inclusión en los Principios de Funcionamiento de IBM tal como se estableció con los años. La sexta edición de los Principios de Funcionamiento de la z/Architecture® de IBM® que fue publicada en abril de 2007 se ha convertido en la referencia publicada estándar como SA22-7832-05 y se incorpora en los servidores mainframe z9® de IBM. Haciendo referencia a la figura 1A, se retratan los componentes representativos de un sistema informático anfitrión 50 de la técnica anterior. También se pueden emplear otras disposiciones de componentes en un sistema informático, que son bien conocidos en la técnica. El Ordenador Anfitrión representativo 50 comprende una o varias CPU 1 en comunicación con el almacén principal (memoria 2 de ordenador), así como unas interfaces de E/S con dispositivos de almacenamiento 11 y redes 10 para comunicarse con otros ordenadores o SAN y similares. La CPU 1 es compatible con una arquitectura que tiene un conjunto de instrucciones con arquitectura y funcionalidad con arquitectura. La CPU 1 puede tener traducción dinámica de direcciones (DAT) 3 para la transformación de las direcciones de programa (direcciones virtuales) en la dirección real de la memoria. Una DAT normalmente incluye un búfer de traducción anticipada de direcciones (TLB: Translation Lookaside Buffer) 7 para almacenar en caché las traducciones de manera que un acceso posterior al bloque de memoria 2 del ordenador no requiera el retraso de la traducción de direcciones. Normalmente, se emplea una caché 9 entre la Memoria 2 del Ordenador y el Procesador 1. La caché 9 puede ser jerárquica que tiene una gran caché disponible para más de una CPU y cachés más pequeñas y más rápidas, (nivel inferior) entre la cache caché grande y cada CPU. En algunas implementaciones las cachés de nivel inferior se dividen para proporcionar cachés separadas de bajo nivel para la extracción de instrucciones y acceso a los datos. En una realización, una instrucción se extrae de la memoria 2 mediante una unidad 4 de extracción de instrucciones a través de una caché 9. La instrucción se decodifica en una unidad (6) de decodificación de instrucciones y se despacha (con otras instrucciones en algunas realizaciones) a las unidades 8 de ejecución de instrucciones. Por lo general se emplean varias unidades de ejecución 8, por ejemplo, una unidad de ejecución aritmética, una unidad de ejecución de coma flotante y una unidad de ejecución de instrucciones de salto. La instrucción es ejecutada por la unidad de ejecución, que accede a operandos de la memoria o los registros específicos de instrucciones según sea necesario, si se va a acceder a un operando (cargado o almacenado) desde la memoria 2, una unidad 5 de almacén de carga normalmente maneja el acceso bajo el control de la instrucción que se está ejecutando. Las instrucciones pueden ser ejecutadas en circuitos de hardware o en micro-código interno (firmware) o por una combinación de ambos. El documento US 6088789 describe un microprocesador, que se configura para ejecutar una instrucción de extracción que especifica una línea de caché que va a ser transferida al microprocesador, así como un modo de acceso para la línea de caché. En la figura 1B, se proporciona un ejemplo de un sistema informático anfitrión emulado 21 de la técnica anterior que emula un sistema informático anfitrión 50 de una arquitectura de anfitrión. En el sistema informático Anfitrión emulado 21, el Procesador anfitrión (CPU) 1 es un procesador Anfitrión emulado (o procesador Anfitrión virtual) y comprende un procesador de emulación 27 que tiene una arquitectura nativa de conjunto de instrucciones diferente de la del procesador 1 del Ordenador Anfitrión 50. El sistema informático Anfitrión emulado 21 tiene una memoria 22 accesible para el procesador de emulación 27. En un ejemplo de realización, la Memoria 27 se divide en una parte de Memoria 2 de Ordenador Anfitrión y una parte de Rutinas de Emulación 23. La Memoria 2 de Ordenador Anfitrión está disponible para los programas del Ordenador Anfitrión 21 según la Arquitectura de Ordenador Anfitrión. El procesador de emulación 27 ejecuta instrucciones nativas de un conjunto de instrucciones con arquitectura de una arquitectura que no sea la del procesador emulado 1, las instrucciones nativas obtenidas de la memoria 23 de Rutinas de Emulación, y puede acceder a una instrucción de Anfitrión para la ejecución desde un programa en la Memoria 2 de Ordenador Anfitrión mediante el empleo de una o varias instrucciones obtenidas en una rutina de Secuencia y Acceso/Decodificación que puede decodificar la mayoría de las instrucciones que se han accedido para 2   determinar una rutina de ejecución de instrucciones nativas para emular la función de la Instrucción de anfitrión a la que se ha accedido. Otros mecanismos que se definen para la arquitectura del Sistema 50 de Ordenador Anfitrión pueden ser emulados por las Rutinas de Instalaciones con Arquitectura, incluidos los mecanismos tales como Registros de Propósito General, Registros de Control, Traducción Dinámica de Direcciones y caché de procesador y apoyo de Subsistema de E/S, por ejemplo. Las Rutinas de Emulación también pueden tomar ventaja de las funciones disponibles en el Procesador de emulación 27 (como los registros generales y la traducción dinámica de direcciones virtuales) para mejorar el rendimiento de las Rutinas de Emulación. También se puede proporcionar Hardware Especial y Motores Fuera de Carga para ayudar al procesador 27 en la emulación de la función del Ordenador Anfitrión 50. En un mainframe, las instrucciones de máquina con arquitectura son utilizadas por los programadores, por lo general hoy en día programadores de "C" a menudo mediante una aplicación de compilación. Estas instrucciones almacenadas en el medio de almacenamiento se pueden ejecutar de forma nativa en un servidor IBM z/Arquitecture, o bien en máquinas que ejecutan otras arquitecturas. Pueden emularse en los servidores mainframe de IBM existentes y futuros y en otras máquinas de IBM (por ejemplo, servidores pSeries© y xSeries®). Se pueden ejecutar en máquinas que ejecutan Linux en una amplia variedad de máquinas que utilizan equipos fabricados por IBM®, Intel®, AMD, Sun Microsystems y otros. Además de la ejecución en ese hardware bajo z/Arquitecture©, puede utilizarse Linux así como las máquinas que utilizan la emulación de Hércules, UMX, FSI (Fundamental Software, Inc.) o Platform Solutions, Inc. (PSI), en las que la ejecución generalmente es en un modo de emulación. En modo de emulación, el software de emulación es ejecutado por un procesador nativo para emular la arquitectura de un procesador emulado. El procesador nativo 27 normalmente ejecuta el software de emulación 23 que comprende ya sea un firmware o un sistema operativo nativo para realizar la emulación del procesador emulado. El software de emulación 23 es el responsable de extraer y ejecutar las instrucciones de la arquitectura del procesador emulado. El software de emulación 23 mantiene un contador de programa emulado para realizar un seguimiento de las fronteras de las instrucciones. El software de emulación 23 puede extraer una o varias instrucciones de máquina emulada en un momento y convertir la una o varias instrucciones de la máquina emulada en un grupo correspondiente de instrucciones nativas de máquina para la ejecución por parte del procesador nativo 27. Estas instrucciones convertidas pueden guardarse en caché de modo que se puede conseguir una conversión más rápida. No obstante, el software de emulación debe mantener las normas de arquitectura de la arquitectura... [Seguir leyendo]

 


Reivindicaciones:

1. Un método de funcionamiento de un ordenador que comprende: la extracción (801), por un procesador (106) de un sistema de procesamiento, de una instrucción de máquina de caché definida para una arquitectura informática, la instrucción de máquina de caché comprende un código de operación, un identificador del operando, el identificador del operando identifica una ubicación de operando; la ejecución de la instrucción de máquina de caché comprende: sobre la base de un identificador de nivel de caché, la determinación de una caché de destino; sobre la base de un identificador de atributo de caché, la determinación de un atributo de caché (804) que se va a extraer; la extracción (805) del atributo de caché determinado de la caché de destino; y guardar (806) el atributo de caché extraído en la ubicación de operando identificada, en la que el atributo de caché que se va a extraer comprende cualquiera de: un resumen de la topología de caché de una o varias cachés; un tamaño de línea de la caché de destino; un tamaño total de la caché de destino; o un nivel de asociatividad establecida de la caché de destino. 2. El método según la reivindicación 1, en el que el identificador de operando consiste en un campo de primer registro que identifica un primer registro, en el que la determinación del identificador de atributo de caché comprende: añadir algebraicamente el campo de desplazamiento de la instrucción a un valor asociado con un segundo campo de la instrucción para determinar el identificador de atributo de caché. 3. El método según la reivindicación 1, en el que el resumen de topología de caché extraído comprende uno o varios resúmenes, cada resumen para una caché en un nivel especificado por el identificador de nivel de caché, en el que un resumen para una caché en el nivel de caché correspondiente consiste en cualquiera de si existe una caché; si una caché es privada para el procesador que ejecuta la instrucción; si una cache puede ser compartida por otros procesadores del sistema de procesamiento si una caché consiste en una caché separada de instrucciones y una caché separada de datos; si la caché es solo una caché de instrucciones; si la caché es solo una caché de datos: y si la caché es una caché unificada de instrucciones y datos. 4. El método según la reivindicación 1, en el que la instrucción de máquina de caché definida para la arquitectura informática se extrae y ejecuta mediante una unidad de procesamiento central de una arquitectura informática alternativa, en el que el método comprende además la interpretación de la instrucción de máquina de caché para identificar a una rutina de software predeterminado para simular el funcionamiento de la instrucción de máquina de caché; y en el que la ejecución de la instrucción de máquina de caché comprende la ejecución de la rutina de software predeterminado para ejecutar los pasos del método para la ejecución de la instrucción de máquina de caché. 5. Un producto de programa informático, el producto de programa informático comprende un medio de almacenamiento tangible legible por un circuito de procesamiento e instrucciones de almacenamiento para su ejecución por el circuito de procesamiento para la realización del método de cualquier reivindicación anterior. una memoria: 6. Un sistema informático que comprende: 22   un procesador en comunicación con la memoria, el procesador comprende un elemento de extracción de instrucciones para la extracción de instrucciones de la memoria y uno o varios elementos de ejecución para la ejecución de las instrucciones extraídas; en el que el sistema informático se configura para realizar el método según cualquiera de las reivindicaciones 1 a 4. 23   24     26   27   28   29     31   32   33   34     36   37   38   39

 

Patentes similares o relacionadas:

DESCUBRIMIENTO DE TOPOLOGÍA VIRTUAL PARA CONFIGURACIÓN DE ORDENADOR, del 21 de Noviembre de 2011, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Para un sistema de ordenador anfitrión dividido en particiones lógicamente que comprende procesadores anfitriones, un método para descubrir […]

Imagen de 'INVALIDACIÓN DE ALMACENAMIENTO, BORRADO DE ELEMENTOS DE LA MEMORIA…'INVALIDACIÓN DE ALMACENAMIENTO, BORRADO DE ELEMENTOS DE LA MEMORIA INTERMEDIA, del 27 de Mayo de 2011, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método para borrar elementos de memorias intermedias de traducción de direcciones en un sistema informático , comprendiendo el sistema […]

Imagen de 'INVALIDACIÓN DE ALMACENAMIENTO, BORRADO DE ELEMENTOS DE LA MEMORIA…'INVALIDACIÓN DE ALMACENAMIENTO, BORRADO DE ELEMENTOS DE LA MEMORIA INTERMEDIA, del 29 de Abril de 2011, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método para invalidar una gama de dos o más elementos de una tabla de traducción de direcciones en un sistema informático que tiene tablas de […]

Imagen de 'PROCESADOR CON GENERADOR DE DIRECCIONES'PROCESADOR CON GENERADOR DE DIRECCIONES, del 11 de Marzo de 2011, de TELEFONAKTIEBOLAGET LM ERICSSON (PUBL): Procesador (1a, 1b) para procesar datos, que comprende: un generador de direcciones, que es operativo para generar una secuencia de direcciones que tienen […]

Imagen de 'INVALIDACION DE ALMACENAMIENTO, BORRADO DE ELEMENTOS DE LA MEMORIA…'INVALIDACION DE ALMACENAMIENTO, BORRADO DE ELEMENTOS DE LA MEMORIA INTERMEDIA, del 19 de Abril de 2010, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método para invalidar los elementos de tablas de traducción y borrar los correspondientes elementos de tablas de traducción dinámica de direcciones (DAT) […]

Procedimiento de gestión de módulos de software integrados para una computadora electrónica de un dispositivo de conmutación eléctrica, del 17 de Junio de 2020, de SCHNEIDER ELECTRIC INDUSTRIES SAS: Procedimiento de gestión de módulos de software integrados para una computadora electrónica integrada de un dispositivo eléctrico de conmutación de […]

Comunicación de datos de recompensa entre aplicaciones, del 10 de Junio de 2020, de Outfit7 Limited: Método de comunicación de datos de recompensa desde una primera aplicación que se ejecuta en un dispositivo de procesamiento de datos hasta una segunda aplicación […]

Compartición de objetos de primera clase a través de múltiples lenguajes de programación interpretados, del 29 de Abril de 2020, de THE BOEING COMPANY: Un método para compartir construcciones de lenguaje entre diferentes lenguajes de secuencias de comandos basados en Java, en el que las construcciones del […]

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í. .