ES2708331T3 - Comparación y sustitución de una entrada de tabla DAT - Google Patents

Comparación y sustitución de una entrada de tabla DAT Download PDF

Info

Publication number
ES2708331T3
ES2708331T3 ES12879101T ES12879101T ES2708331T3 ES 2708331 T3 ES2708331 T3 ES 2708331T3 ES 12879101 T ES12879101 T ES 12879101T ES 12879101 T ES12879101 T ES 12879101T ES 2708331 T3 ES2708331 T3 ES 2708331T3
Authority
ES
Spain
Prior art keywords
entry
tlb
operand
entries
instruction
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
ES12879101T
Other languages
English (en)
Inventor
Dan Greiner
Robert Rogers
Gustav Sittmann
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of ES2708331T3 publication Critical patent/ES2708331T3/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/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
    • 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
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/683Invalidation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Método para gestionar una tabla de traducción dinámica de direcciones DAT, caracterizado por que el método comprende las etapas de: determinar, por parte de un procesador, a partir de un código de operación de una instrucción ejecutable (401) por máquina que va a ser ejecutada, que la instrucción es una instrucción de comparación y sustitución de entrada de tabla DAT, la cual se usa para sustituir una entrada de tabla DAT válida por una entrada nueva, comprendiendo la instrucción un campo R1 y un campo R2, designando cada uno de los campos R1 y R2 una pareja de registros generales par-impar R1 y R1+1 y R2 y R2+1, y deben designar un registro de numeración par, en donde el registro general R1 es el registro par de la pareja y contiene un primer operando denominado valor de comparación, el registro general R1+1 es el registro impar de la pareja y contiene un valor de sustitución, y en donde los registros generales R2 y R2+1 contienen información de direccionamiento tal como tipo de tabla designada (DTT) e índice efectivo en una tabla para localizar un segundo operando original de una posición de memoria de segundo operando; y ejecutar, por parte del procesador, la instrucción que comprende: comparar (436) el primer operando y el segundo operando original; sobre la base de que el primer operando sea igual al segundo operando original, almacenar (445) el valor de sustitución en la posición de memoria del segundo operando como nuevo segundo operando; y eliminar selectivamente (450) todas las entradas de Memorias Intermedias de Traducción Lateral (TLB) locales correspondientes a entradas formadas a partir de la DAT usando entradas de tabla de traducción sobre la base de una entrada de tabla de traducción designada por un valor del segundo operando original.

Description

DESCRIPCION
Comparacion y sustitucion de una entrada de tabla DAT
Antecedentes
1. Campo tecnico
Esta invencion se refiere, en general, al procesado que se realiza en un entorno informatico, y, en particular, a una o mas de la comparacion y la sustitucion de una entrada en una tabla de direcciones, la eliminacion de entradas de memoria intermedia y una instruccion para ello.
2. Descripcion de la tecnica relacionada
Hay unidades de almacenamiento seleccionadas, tales como segmentos de almacenamiento o regiones de almacenamiento, que deben invalidarse. La invalidacion viene facilitada por la fijacion de indicadores de invalidacion situados en entradas de estructuras de datos correspondientes a las unidades de almacenamiento a invalidar. Adicionalmente, deben eliminarse entradas de memoria intermedia asociadas a las unidades de almacenamiento invalidadas u otras unidades de almacenamiento seleccionadas. Se proporciona una instruccion para llevar a cabo la invalidacion y/o la eliminacion. Por otra parte, se produce la eliminacion de entradas de memoria intermedia asociadas a un espacio de direcciones particular, sin ninguna invalidacion. Esto lo lleva a cabo tambien la instruccion. La instruccion se puede implementar en software, en hardware, en microprogramas o en alguna combinacion de estos, o la misma se puede emular.
El documento US2011/314263 A1 describe una familia de instrucciones maquina que recuperan un segundo operando de una posicion en memoria especificada en parte por el contenido de un segundo registro, llevan a cabo una operacion aritmetica o logica sobre el segundo operando y un tercer operando contenido en un tercer registro, y almacenan el resultado en la posicion del segundo operando mientras que almacenan el segundo operando original en un primer registro.
El documento US 2009/182988 A1 describe la comparacion de un primer operando y un segundo operando en donde un operando se obtiene de memoria y en donde la direccion del operando de memoria se basa en un desplazamiento del contador de programa.
El documento US 2004/230749 A1 describe una instruccion de invalidacion de entradas de una tabla de paginas para invalidar una pagina de almacenamiento.
Sumario
La invencion proporciona un metodo segun se reivindica en la reivindicacion 1, y las correspondientes reivindicaciones 7, 8 de sistema y de programa de ordenador.
A traves de las tecnicas descritas se logran caractensticas y ventajas adicionales. En la presente se describen detalladamente otras realizaciones y aspectos, y los mismos se consideran como incluidos.
Breve descripcion de los dibujos
Se ponen de manifiesto objetivos, caractensticas y ventajas adicionales a partir de la siguiente descripcion detallada y considerada en combinacion con los dibujos adjuntos, en los cuales:
la FIG. 1 representa una realizacion de un entorno informatico que incorpora y hace uso de uno o mas aspectos; la FIG. 2 representa una realizacion de otros detalles asociados a un controlador de la FIG. 1;
la FIG. 3 representa una realizacion de un ordenador anfitrion que puede emular otro ordenador;
la FIG.4 representa la imagen de instruccion correspondiente a la instruccion de COMPARE AND REPLACE DAT TABLE ENTRY (COMPARACION Y SUSTITUCION DE ENTRADA DE TABLA DAT), y su funcionamiento;
la FIG. 5 representa los operandos de los registros de la instruccion COMPARE AND REPLACE DAT TABLE ENTRY;
la FIG. 6 representa el campo M4; y
la FIG. 7 representa un soporte legible por ordenador.
Descripcion detallada de las realizaciones preferidas
Los entornos informaticos pueden usar un almacenamiento virtual que se mantiene normalmente en medios de almacenamiento auxiliares para aumentar el tamano del almacenamiento disponible. Cuando se referencia una pagina de almacenamiento virtual, la direccion virtual usada al referenciar la pagina es traducida mediante una traduccion dinamica de direcciones en una direccion de almacenamiento real. Si la traduccion tiene exito, entonces el almacenamiento virtual es valido; en caso contrario, es no valido. Una pagina de almacenamiento virtual se indica como valida o no valida por medio de un bit de invalidez en una entrada de una tabla de paginas, incluyendo dicha entrada una direccion de almacenamiento real si la pagina es valida.
Las paginas de almacenamiento se pueden invalidar de una en una. Por ejemplo, en un entorno informatico basado en la Arquitectura z/, ofrecida por la comparffa International Business Machines, para invalidar una o mas paginas de almacenamiento virtual se usa una instruccion, a la que se hace referencia como instruccion Invalidacion de Entrada de Tabla de Paginas (IPTE). La invalidacion incluye fijar un indicador de invalidez en una estructura de control, asociada al almacenamiento virtual y localizada en medios de almacenamiento principales ffsicos, para indicar que una direccion virtual de una posicion en los medios de almacenamiento virtuales no se puede traducir, mediante traduccion dinamica de direcciones, en una direccion de almacenamiento principal ffsica, denominada tambien direccion real. Ademas, la instruccion se usa para eliminar entradas de memorias intermedias internas de la maquina asociadas a la pagina, pudiendose usar dichas entradas durante la traduccion dinamica de direcciones con el fin de evitar acceder a las estructuras de control en medios de almacenamiento principales ffsicos. Por ejemplo, en la Arquitectura z/, se dispone de Memorias Intermedias de Traduccion Lateral (Translation Lookaside Buffers) que se usan durante la traduccion dinamica de direcciones que se realiza de direcciones virtuales a direcciones reales. Cuando se invalida una pagina de almacenamiento, tambien se eliminan, en las memorias intermedias correspondientes, las entradas asociadas a esa pagina.
Hay tambien instrucciones que permiten el purgado de Memorias Intermedias de Traduccion Lateral completas. Por ejemplo, en la Arquitectura z/, una instruccion a la que se hace referencia como instruccion de Comparacion y Cambio y Purgado (CSP), purga todas las entradas de Memorias Intermedias de Traduccion Lateral en todas las CPUs de la configuracion; PURGE TLB (PURGADO DE TLB) elimina todas las entradas de la TLB en la CPU que ejecuta la instruccion.
Memoria intermedia de traduccion lateral
Para mejorar el rendimiento, el mecanismo de traduccion dinamica de direcciones se implementa normalmente de tal manera que parte de la informacion especificada en las tablas de regiones, las tablas de segmentos y las tablas de paginas, se mantiene en una memoria intermedia especial, a la que se hace referencia como memoria intermedia de traduccion lateral (TLB). La CPU remite necesariamente a una entrada de una tabla DAT en medios de almacenamiento reales absolutos unicamente para el acceso inicial a esa entrada. Esta informacion se puede colocar en la TLB, y las traducciones sucesivas se pueden llevar a cabo usando la informacion de la TLB. Con vistas a un funcionamiento congruente, la traduccion de virtual-igual-a-real especificada por una designacion de espacio real tambien se puede realizar usando informacion de la TLB. La presencia de la TLB afecta al proceso de traduccion en la medida en la que (1) una modificacion del contenido de una entrada de una tabla en medios de almacenamiento reales o absolutos no tienen necesariamente un efecto inmediato, si lo hubiere, sobre la traduccion, (2) un origen de primera tabla de regiones, un origen de segunda tabla de regiones, un origen de tercera tabla de regiones, un origen de tabla de segmentos o un origen de token de espacio real en un elemento de control de espacio de direcciones (ASCE) puede seleccionar una entrada de TLB que se formo por medio de un ASCE que contema un origen del mismo valor incluso cuando los dos ongenes son de tipos diferentes, y (3) la comparacion con respecto a la longitud de la tabla en un elemento de control de espacio de direcciones se puede omitir si se usa una TLB equivalente de la tabla designada. En una configuracion de multiples CPU, cada CPU tiene su propia TLB. Las entradas dentro de la TLB no son direccionables expffcitamente por el programa.
La informacion no se mantiene necesariamente en la TLB bajo todas las condiciones para las cuales dicho mantenimiento es permisible. Ademas, la informacion de la TLB se puede eliminar bajo condiciones adicionales con respecto a aquellas para las cuales la eliminacion es obligatoria.
Estructura de la TLB
La descripcion de la estructura logica de la TLB cubre la implementacion por parte de todos los sistemas que funcionan segun define la Arquitectura z/. Se considera que las entradas de una TLB son de seis tipos: entradas de primera tabla de regiones TLB, entradas de segunda tabla de regiones TLB, entradas de tercera tabla de regiones TLB (denominadas, en conjunto, entradas de tabla de regiones TLB), entradas de tabla de segmentos TLB, entradas de tabla de paginas TLB, y entradas de espacio real TLB. Se considera que una entrada de tabla de regiones TLB, una entrada de tabla de segmentos TLB o una entrada de tabla de paginas TLB contiene dentro de ella tanto la informacion obtenida a partir de la entrada de la tabla en medios de almacenamiento reales o absolutos, como los atributos usados para recuperar esta informacion de los medios de almacenamiento. Se considera que una entrada de espacio real TLB contiene una direccion real de trama de pagina y el origen de token de espacio real y los indices de region, segmento y pagina usados para formar la entrada.
Todas las entradas de tabla de regiones TLB aplicables, la entrada de tabla de segmentos TLB y la entrada de tabla de paginas TLB se pueden fusionar en una unica entrada denominada entrada de tabla compuesta TLB. De una manera similar, una implementacion puede combinar cualquier subconjunto contiguo de niveles de tabla. Cuando esto ocurre, no es necesario almacenar en memoria intermedia los ongenes, desplazamientos y longitudes de tabla intermedios.
Se puede formar una equivalente a la entrada de tabla de regiones y segmentos combinada TLB (CRSTE) descrita en versiones previas de la arquitectura, que mapea un origen de tabla, un mdice de region, un mdice de segmento y un bit de segmento comun con una direccion absoluta de trama de segmento u origen de tabla de paginas (y otros campos designados).
El origen de token en una entrada de espacio real TLB es indistinguible del origen de tabla en una entrada de tabla compuesta, de regiones o de segmentos TLB.
Nota: las siguientes secciones describen las condiciones bajo las cuales se puede colocar informacion en la TLB, las condiciones bajo las cuales se puede usar informacion de la TLB para la traduccion de direcciones, y como afectan los cambios en las tablas de traduccion al proceso de traduccion.
Formacion de entradas TLB
La formacion de entradas de tabla de regiones TLB, de entradas de tabla de segmentos TLB y de entradas de tabla de paginas TLB a partir de entradas de tabla en medios de almacenamiento reales o absolutos, y el efecto de cualquier manipulacion del contenido de las entradas de la tabla en medios de almacenamiento por parte del programa, dependen de si las entradas en los medios de almacenamiento estan vinculadas a una CPU particular y de si las entradas son validas.
El estado vinculado de una entrada de tabla indica que la CPU a la que esta vinculada la misma puede intentar usar la entrada de la tabla para una traduccion implfcita de direcciones, excepto que una entrada de tabla correspondiente al espacio de direcciones primario o domestico puede estar vinculada incluso cuando la CPU no realiza ninguna recuperacion a partir de ninguno de esos espacios. Una entrada de una tabla puede estar vinculada a mas de una CPU al mismo tiempo.
El estado valido de una entrada de una tabla indica que el conjunto de regiones, la region, el segmento o la pagina asociados a la entrada de la tabla esta disponible. Una entrada es valida cuando el bit de region no valido, de segmento no valido o de pagina no valida en la entrada es cero.
Una entrada de una tabla de regiones, una entrada de una tabla de segmentos o una entrada de una tabla de paginas se puede colocar en la TLB siempre que la entrada este vinculada y sea valida, y no provoque una excepcion de especificacion de traduccion en caso de que se use para una traduccion.
Las entradas de tabla de regiones, si hubiere alguna, y la entrada de tabla de segmentos, si hubiere alguna, usadas para traducir una direccion virtual se denominan ruta de traduccion. La entrada de tabla de nivel mas alto en una ruta de traduccion esta vinculada cuando la misma esta dentro de una tabla designada por un elemento de control de espacio de direcciones vinculante (ASCE). “Dentro de una tabla” tiene un significado que lo determinan los campos de origen y de longitud en el ASCE. Un ASCE es un ASCE vinculante cuando se cumplen todas las condiciones siguientes:
1. La PSW actual especifica DAT activada.
2. La PSW actual no contiene ningun error que provocana el reconocimiento de una excepcion de especificacion prematura.
3. El ASCE cumple los requisitos de a, b, c, o d, que se presentan a continuacion.
a. El ASCE es el ASCE primario en el registro de control 1.
b. El ASCE es el ASCE secundario en el registro de control 7, y se cumple cualquiera de los siguientes requisitos:
• La CPU esta en el modo de espacio secundario o modo de registro de acceso.
• La CPU esta en el modo de espacio primario, y el control de espacio secundario, bit 37 del registro de control 0, es uno.
• El operando M4 de LOAD PAGE TABLE ENTRY ADDRESS (CARGA DE DIRECCION DE ENTRADA DE TABLA DE PAGINAS) permite explfcitamente el acceso al espacio secundario o permite explfcitamente la traduccion de registros de acceso.
• El control de acceso a operandos (OAC) de cualquiera de los dos operandos de MOVE WITH OPTIONAL SPECIFICATIONS (MOVER CON ESPECIFICACIONES OPCIONALES) permite explfcitamente el acceso al espacio secundario o permite explfcitamente la traduccion por registros de acceso.
Para obtener una explicacion adicional de la expresion “permite expUcitamente”, usada en los dos puntos anteriores, vease la nota de programacion que se presenta posteriormente.
c. El ASCE esta o bien en una entrada de segunda tabla de ASN (ASTE) vinculada y valida o bien en una ASTE de ALB utilizable, y se cumple cualquiera de los siguientes requisitos:
• La CPU esta en el modo de registro de acceso.
• El campo M4 de LOAD PAGE TABLE ENTRY ADDRESS permite explfcitamente la realizacion de una traduccion por registros de acceso.
• El OAC de cualquiera de los dos operandos de MOVE WITH OPTIONAL SPECIFICATIONS permite explfcitamente la ejecucion de una traduccion por registros de acceso.
d. El ASCE es el ASCE domestico en el registro de control 13.
Con independencia de si la DAT esta activada o desactivada, un ASCE es tambien un ASCE vinculante cuando la PSW actual no contiene ningun error que provocana el reconocimiento de una excepcion de especificacion prematura, y se cumple cualquiera de las siguientes condiciones:
• Se considera que el ASCE domestico es un ASCE vinculante cuando se produce una operacion de recuento de monitorizacion de eventos.
Cada una de las entradas de tabla restantes en una ruta de traduccion esta vinculada cuando la misma esta dentro de la tabla designada o bien por una entrada vinculada y valida del siguiente nivel superior que no provocana una excepcion de especificacion de traduccion si se usase para la traduccion o bien por una entrada de t Lb utilizable del siguiente nivel superior. “Dentro de la tabla” significa segun lo determinen los campos de origen, desplazamiento y longitud en la entrada del siguiente nivel superior. En la siguiente seccion se explica una entrada de TLB utilizable. Una entrada de tabla de paginas esta vinculada cuando la misma esta dentro de la tabla de paginas designada o bien por una entrada de tabla de segmentos vinculada y valida que no provocana una excepcion de especificacion de traduccion si se usase para la traduccion o bien por una entrada de tabla de segmentos TLB utilizable.
Una entrada de tabla de regiones o entrada de tabla de segmentos provoca una excepcion de especificacion de traduccion si los bits de tipo de tabla, bits 60 y 61, en la entrada son incongruentes con el nivel en el que se encontrana la entrada cuando se usase la ruta de traduccion en el proceso de traduccion. Una entrada de tabla de segmentos tambien provoca una excepcion de especificacion de traduccion si el bit de control de espacio privado es uno en el elemento de control de espacio de direcciones usado para seleccionarla y el bit de segmento comun es uno en la entrada. cuando se aplica EDAT-2, una entrada de una tercera tabla de regiones tambien provoca una excepcion de especificacion de traduccion si el bit de control de espacio privado es uno en el elemento de control de espacio de direcciones usado para seleccionarla y el bit de region comun es uno en la entrada. Una entrada de tabla de paginas provoca una excepcion de especificacion de traduccion si el bit 52 de la entrada es uno. Cuando no se aplica EDAT-1, una entrada de tabla de paginas tambien provoca una excepcion de especificacion de traduccion si el bit 55 de la entrada es uno.
Un espacio real de TLB usa una excepcion de especificacion prematura a reconocer, y se cumple cualquiera de las siguientes condiciones:
• Se considera que el ASCE domestico es un ASCE vinculante cuando se produce una operacion de recuento de monitorizacion de eventos.
Cada una de las entradas de tabla restantes en una ruta de traduccion esta vinculada cuando la misma esta dentro de la tabla designada o bien por una entrada vinculada y valida del siguiente nivel superior que no provocana una excepcion de especificacion de traduccion si se usase para la traduccion o bien por una entrada de TLB utilizable del siguiente nivel superior. “Dentro de la tabla” significa segun lo determinen los campos de origen, desplazamiento y longitud en la entrada del siguiente nivel superior. En la siguiente seccion se explica una entrada de TLB utilizable. Una entrada de tabla de paginas esta vinculada cuando la misma esta dentro de la tabla de paginas designada o bien por una entrada de tabla de segmentos vinculada y valida que no provocana una excepcion de especificacion de traduccion si se usase para la traduccion o bien por una entrada de tabla de segmentos TLB utilizable.
Una entrada de tabla de regiones o entrada de tabla de segmentos provoca una excepcion de especificacion de traduccion si los bits de tipo de tabla, bits 60 y 61, en la entrada son incongruentes con el nivel en el que se encontrana la entrada cuando se usase la ruta de traduccion en el proceso de traduccion. Una entrada de tabla de segmentos tambien provoca una excepcion de especificacion de traduccion si el bit de control de espacio privado es uno en el elemento de control de espacio de direcciones usado para seleccionarla y el bit de segmento comun es uno en la entrada. cuando se aplica EDAT-2, una entrada de una tercera tabla de regiones tambien provoca una excepcion de especificacion de traduccion si el bit de control de espacio privado es uno en el elemento de control de espacio de direcciones usado para seleccionarla y el bit de region comun es uno en la entrada. Una entrada de tabla de paginas provoca una excepcion de especificacion de traduccion si el bit 52 de la entrada es uno. Cuando no se aplica EDAT-1, una entrada de tabla de paginas tambien provoca una excepcion de especificacion de traduccion si el bit 55 de la entrada es uno.
Sujeta a las restricciones de vinculadas y validez definidas anteriormente, la CPU puede formar entradas de TLB anticipandose a futuras referencias de almacenamiento o como resultado de la ejecucion especulativa de instrucciones.
Nota de programacion: en la lista anterior de condiciones para que un ASCE sea vinculante, el punto 3.b y el punto 3.c usan la expresion “permite explfcitamente...”, de la manera en la que se explica a continuacion:
• LPTEA permite explfcitamente acceso al espacio secundario cuando el campo M4 es 0010 binario.
• LPTEA permite explfcitamente llevar a cabo una traduccion ART cuando el campo M4 es 0001 binario.
• Cualquiera de los dos operandos de MVCOS permite explfcitamente acceso al espacio secundario cuando los bits 8-9 del OAC del operando son 10 binario, el bit 15 del OAC es uno, y el control de espacio secundario, bit 37 del registro de control 0, es uno.
• Cualquiera de los dos operandos de MVCOS permite explfcitamente llevar a cabo una traduccion ART cuando los bits 8-9 del OAC del operando son 01 binario, y el bit 15 del OAC es uno.
Uso de entradas de TLB
El estado utilizable de una entrada de TLB indica que la CPU puede intentar usar la entrada de TLB para una traduccion implfcita de direcciones. Una entrada de TLB utilizable vincula la tabla de siguiente nivel inferior, si hubiera alguna, y puede ser utilizable para una instancia particular de traduccion implfcita de direcciones.
En referencia a una entrada de TLB, la expresion “nivel actual” se refiere al nivel de la tabla de traduccion (primera tabla de regiones, segunda tabla de regiones, tercera tabla de regiones, tabla de segmentos o tabla de paginas) a partir del cual se formo la entrada de TLB. Asimismo, el “mdice de nivel actual” es aquella parte de la direccion virtual usada como mdice en el nivel actual de la tabla de traduccion.
Una entrada de tabla de regiones o de segmentos TLB esta en el estado utilizable cuando se cumple la totalidad de las siguientes condiciones:
1. La PSW actual especifica que la DAT esta activada.
2. La PSW actual no contiene ningun error que provocana el reconocimiento de una excepcion de especificacion prematura.
3. La entrada de TLB cumple por lo menos uno de los siguientes requisitos:
a. El bit de region comun es uno en una entrada de una tercera tabla de regiones TLB.
b. El bit de segmento comun es uno en una entrada de una tabla de segmentos TLB.
c. El campo de origen de tabla de ASCE (ASCETO) en la entrada de TLB coincide con el campo de origen de tabla o de token en un elemento de control de espacio de direcciones vinculante.
d. La entrada de TLB es una entrada de una segunda tabla de regiones, de una tercera tabla de regiones o de una tabla de segmentos TLB, y el campo de origen de tabla de nivel actual en la entrada de TLB coincide con uno de los siguientes:
• El campo de origen de tabla en un ASCE vinculante que designa directamente el nivel de tabla actual (segun indican los bits R y DT)
• El campo de origen de tabla en una entrada de tabla de regiones vinculada del siguiente nivel superior
• El campo de origen de tabla del mismo nivel en una entrada de tabla de regiones TLB utilizable del siguiente nivel superior
Una entrada de tabla de regiones TLB se puede usar para una instancia particular de una traduccion implfcita de direcciones unicamente cuando la entrada esta en el estado utilizable, el campo de mdice de nivel actual en la entrada de TLB coincide con el campo de mdice correspondiente de la direccion virtual que se esta traduciendo, y se cumple cualquiera de las siguientes condiciones:
1. El campo de origen de tabla de ASCE (ASCETO) en la entrada de TLB coincide con el campo de origen de tabla o de token en el elemento de control de espacio de direcciones que se esta usando en la traduccion, y la parte de la direccion virtual que se esta traduciendo y que esta a la izquierda del mdice de nivel actual coincide con los campos de mdice correspondientes en la entrada de TLB.
2. El elemento de control de espacio de direcciones que se esta usando en la traduccion designa una tabla del nivel actual, y el campo de origen de tabla de nivel actual en la entrada de TLB coincide con el origen de tabla en ese elemento de control de espacio de direcciones.
3. El campo de origen de tabla de nivel actual en la entrada de TLB coincide con el origen de tabla del mismo nivel en la entrada de tabla del siguiente nivel superior o la entrada de TLB que se esta usando en la traduccion.
4. Para una entrada de una tercera tabla de regiones TLB, el bit de region comun es uno en la entrada de TLB, y los campos de primer mdice de region y segundo mdice de region en la entrada de TLB coinciden con los correspondientes de la direccion virtual que se esta traduciendo.
No obstante, cuando se aplica EDAT-2, la entrada de la tercera tabla de regiones TLB no se usa si el bit de region comun es uno en la entrada y o bien el bit de control de espacio privado es uno en el elemento de control de espacio de direcciones que se esta usando en la traduccion o bien ese elemento de control de espacio de direcciones es una designacion de espacio real. En estos dos casos, la entrada de TLB no se usa ni siquiera si el campo de origen de tabla de ASCE (ASCETO) en la entrada y el campo de origen de tabla o de token en el elemento de control de espacio de direcciones coinciden.
Una entrada de tabla de segmentos TLB se puede usar para una instancia particular de una traduccion implfcita de direcciones unicamente cuando la entrada esta en el estado utilizable, el campo de mdice de segmento en la entrada de TLB coincide con el correspondiente de la direccion virtual que se esta traduciendo, y se cumple cualquiera de las siguientes condiciones:
1. El campo de origen de tabla de ASCE (ASCETO) en la entrada de TLB coincide con el campo de origen de tabla o de token en el elemento de control de espacio de direcciones que se esta usando en la traduccion, y el campo de mdice de region en la entrada de TLB coincide con el correspondiente de la direccion virtual que se esta traduciendo.
2. El campo de origen de tabla de segmentos en la entrada de TLB coincide con el campo de origen de tabla en el elemento de control de espacio de direcciones que se esta usando en la traduccion, y ese elemento de control de espacio de direcciones es una designacion de tabla de segmentos.
3. El campo de origen de tabla de segmentos en la entrada de TLB coincide con el campo de origen de tabla de segmentos en la entrada de la tercera tabla de regiones o en la entrada de la tercera tabla de regiones TLB que se esta usando en la traduccion.
4. El bit de segmento comun es uno en la entrada de TLB, y el campo de mdice de region en la entrada de TLB coincide con el correspondiente de la direccion virtual que se esta traduciendo.
No obstante, la entrada de la tabla de segmentos TLB no se usa si el bit de segmento comun es uno en la entrada y o bien el bit de control de espacio privado es uno en el elemento de control de espacio de direcciones que se esta usando en la traduccion o bien ese elemento de control de espacio de direcciones es una designacion de espacio real. En estos dos casos, la entrada de TLB no se usa ni siquiera si el campo de origen de tabla de ASCE (ASCETO) en la entrada y el campo de origen de tabla o de token en el elemento de control de espacio de direcciones coinciden.
Una entrada de una tabla de paginas TLB se puede usar para una instancia particular de una traduccion implfcita de direcciones unicamente cuando el campo de origen de tabla de paginas en la entrada coincide con el campo de origen de tabla de paginas en la entrada de la tabla de segmentos o la entrada de tabla de segmentos TLB que se estan usando en la traduccion y el campo de mdice de pagina en la entrada de la tabla de paginas TLB coincide con el mdice de pagina de la direccion virtual que se esta traduciendo.
Una entrada de espacio real de TLB se puede usar para una traduccion implfcita de direcciones unicamente cuando el campo de origen de token en la entrada de TLB coincide con el campo de origen de tabla o de token en el elemento de control de espacio de direcciones que se esta usando en la traduccion y los campos de mdice de region, de mdice de segmento y de mdice de pagina en la entrada de TLB coinciden con los correspondientes de la direccion virtual que se esta traduciendo.
Las direcciones de los operandos de LOAD PAGE-TABLE-ENTRY ADDRESS (CARGA DE DIRECCION DE ENTRADA DE TABLA DE PAGINAS), de LOAD REAL ADDRESS (CARGA DE DIRECCION REAL), y de STORE REAL ADDRESS (ALMACENAMIENTO DE DIRECCION REAL), y los accesos a la matriz de recuento de monitorizacion mejorada se pueden traducir con el uso del contenido de la TLB con independencia de que la DAT este activada o desactivada. No obstante, para LOAD PAGE-TABLE-ENTRY ADDRESS, LOAD REAL a Dd RESS, y STORE REAL ADDRESS, las entradas de TLB siguen formandose unicamente si la DAT esta activada.
Notas de programacion:
1. Aunque el contenido de una entrada de una tabla se puede copiar en la TLB unicamente cuando la entrada de la tabla esta vinculada y es valida al mismo tiempo, la copia puede permanecer en la TLB incluso cuando la propia entrada de la tabla ya no esta vinculada o no es valida.
2. Excepto cuando se realizan traducciones como consecuencia de operaciones de recuento de monitorizacion mejorada, no se puede copiar ningun contenido en la TLB cuando la DAT esta desactivada ya que las entradas de las tablas en este momento no estan vinculadas. En particular, la traduccion de la direccion de operandos de LOAD PAGE-TABLE-ENTRY ADDRESS, LOAD REAL ADDRESS y STORE REAL ADDRESS con la DAT desactivada no provoca que se coloquen entradas en la TLB.
A la inversa, cuando la DAT esta activada, se puede copiar informacion en la TLB desde todas las entradas de tablas de traduccion que se podnan usar para una traduccion de direcciones, teniendo en cuenta los parametros de traduccion actuales, la fijacion de los bits de control de espacio de direcciones y el contenido de los registros de acceso. La carga de la TLB no depende de si la entrada se usa para una traduccion como parte de la ejecucion de la instruccion actual, y dicha carga se puede producir cuando la CPU esta en el estado de espera.
3. En la TLB puede existir mas de una copia de contenido de una entrada de tabla. Por ejemplo, algunas implementaciones pueden conseguir que una copia de contenido de una entrada de tabla valida se coloque en la TLB para el origen de tabla en cada elemento de control de espacio de direcciones por el cual la entrada llega a estar vinculada.
Modificacion de tablas de traduccion
Cuando se hace que una entrada de tabla vinculada y no valida sea valida, y, en la TLB, no hay ninguna entrada utilizable para la traduccion de la direccion virtual asociada, el cambio suite efecto como muy tarde al final de la unidad de funcionamiento actual. De manera similar, cuando se hace que una entrada de tabla no vinculada y valida llegue a estar vinculada y, en la TLB, no hay ninguna entrada utilizable para la direccion virtual asociada, el cambio surte efecto como muy tarde al final de la unidad de funcionamiento actual.
Cuando se cambia una entrada de tabla valida y vinculada, y cuando, antes de que en la TLB se eliminen entradas que cumplen los requisitos para la sustitucion de esa entrada, se efectua un intento de remitir a los medios de almacenamiento usando una direccion virtual que requiere esa entrada para la traduccion, pueden producirse resultados impredecibles, en el siguiente ambito. El uso del valor nuevo puede comenzar entre instrucciones o durante la ejecucion de una instruccion, incluyendo la instruccion que provoco el cambio. Por otra parte, hasta que en la TLB se eliminen las entradas que cumplen los requisitos para la sustitucion de esa entrada, la TLB puede contener los valores tanto antiguos como nuevos, y es impredecible si se seleccionara el valor antiguo o nuevo para un acceso particular. Si en la TLB estan presentes valores tanto antiguos como nuevos de una entrada de tabla de nivel superior, puede recuperarse una entrada de tabla de nivel inferior usando un valor y la misma puede colocarse en la TLB asociada al otro valor. Si el valor nuevo de la entrada es un valor que provocana una excepcion, la excepcion puede provocar o no la aparicion de una interrupcion. Si se produce una interrupcion, los campos resultantes de la instruccion pueden cambiarse aun cuando la excepcion normalmente provocana una supresion o anulacion.
Las entradas se eliminan de la TLB de acuerdo con las siguientes reglas:
1. Todas las entradas se eliminan de la TLB mediante la ejecucion de PURGE TLB (PURGADO DE TLB) o SET PREFIX (FIJACION DE PREFIJO) y mediante una reinicializacion de la CPU.
2. Todas las entradas se pueden eliminar de todas las TLBs en la configuracion mediante la ejecucion de COMPARE AND SWAP AND PURGE (COMPARACION Y CAMBIO Y PURGADO) por parte de cualquiera de las CPUs en la configuracion, en funcion de un bit de un registro general usado por la instruccion.
3. Se eliminan entradas seleccionadas de todas las TLBs en la configuracion mediante la ejecucion de INVALIDATE DAT TABLE ENTRY (INVALIDACION DE ENTRADA DE TABLA DAT) o INVALIDATE PAGE TABLE ENTRY (INVALIDACION DE ENTRADA DE TABLA DE PAGINAS) por parte de cualquiera de las CPUs en la configuracion.
4. Algunas o la totalidad de las entradas de TLB se pueden eliminar en momentos diferentes a aquellos requeridos por las reglas anteriores.
Notas de programacion:
1. Se puede continuar usando entradas de la TLB para una traduccion despues de que las entradas de tabla a partir de las cuales se han formado las primeras hayan llegado a desvincularse o a ser no validas. Estas entradas de TLB no se suprimen necesariamente a no ser que se eliminen explfcitamente de la TLB.
Un cambio realizado en una entrada vinculada y valida o un cambio realizado en una entrada de tabla que provoca que la entrada llegue a estar vinculada y ser valida se refleja en el proceso de traduccion para la siguiente instruccion, o antes de la siguiente instruccion, a no ser que una entrada de TLB cumpla los requisitos para la sustitucion de esa entrada de tabla. No obstante, un cambio realizado en una entrada de tabla que provoca que la entrada llegue a desvincularse o a ser no valida no se refleja necesariamente en el proceso de traduccion hasta que en la TLB se eliminen entradas que cumplen los requisitos para la sustitucion de esa entrada de tabla.
2. Se pueden establecer excepciones asociadas a la traduccion dinamica de direcciones por medio de una comprobacion previa de accesibilidad a operandos que se lleva a cabo como parte del inicio de la ejecucion de una instruccion. Consecuentemente, se puede indicar una excepcion de primera traduccion de regiones, segunda traduccion de regiones, tercera traduccion de regiones, traduccion de segmentos o traduccion de paginas cuando una entrada de una tabla es no valida en el inicio de la ejecucion incluso si la instruccion hubiese validado la entrada de la tabla que esta usando y la entrada de la tabla hubiese parecido valida si se considero que la instruccion procesaba los operandos de byte en byte.
3. Un cambio realizado en una entrada de tabla vinculada, excepto para fijar el bit I a cero, para fijar el bit CO de una entrada de una tabla de segmentos o de paginas a uno, o para modificar el byte de mas a la derecha de una entrada de una tabla de paginas, puede producir resultados impredecibles si esa entrada se usa para una traduccion antes de que en la TLB se eliminen todas las copias de contenido de esa entrada. El uso del valor nuevo puede comenzar entre instrucciones o durante la ejecucion de una instruccion, incluyendo la instruccion que provoco el cambio. Cuando una instruccion, tal como MOVE (MVC), realiza un cambio en una entrada de tabla vinculada, incluyendo un cambio que hace que la entrada sea no valida, y posteriormente usa la entrada para la traduccion, se esta usando una entrada cambiada sin una eliminacion previa de la entrada de la TLB, y se aplica la impredecibilidad asociada de valores resultantes y de reconocimiento de excepciones.
La manipulacion de entradas de tabla vinculadas puede provocar la grabacion de valores espurios de entradas de tablas en una TLB. Por ejemplo, si se realizan cambios gradualmente, la modificacion de una entrada vinculada valida puede provocar la grabacion de una entrada parcialmente actualizada, o, si se introduce un valor intermedio en el proceso del cambio, una entrada supuestamente no valida puede parecer temporalmente valida y se puede grabar en la TLB. Se puede introducir un valor intermedio de este tipo si el cambio lo realiza una operacion de I/O que se ha vuelto a intentar, o si se introduce un valor intermedio durante la ejecucion de una instruccion individual.
Como ejemplo alternativo, si se cambia una entrada de una tabla de segmentos para designar una tabla de paginas diferente y la misma se usa sin eliminar la TLB, las entradas de la tabla nueva de paginas se pueden recuperar y asociar al origen de la tabla de paginas antigua. En tal caso, la ejecucion de INVALIDATE PAGE TABLE ENTRY designando el origen de la tabla de paginas nueva no eliminara necesariamente las entradas de tabla de paginas recuperadas de la tabla de paginas nueva.
4. Para facilitar la manipulacion de tablas de paginas, se proporciona la instruccion INVALIDATE PAGE TABLE ENTRY. Esta instruccion fija el bit I de una entrada de tabla de paginas a uno y elimina en una o mas TLBs de la configuracion entradas formadas a partir de esas entradas de tabla de la manera siguiente:
a. Todas las TLBs de la configuracion se eliminan cuando el mecanismo de eliminacion de TLB local no esta instalado, o cuando el mecanismo esta instalado y la instruccion especifica la eliminacion de todas las TLBs (es decir, el control de eliminacion local en la instruccion es cero).
b. Solamente se elimina la TLB en la CPU que ejecuta la instruccion INVALIDATE PAGE TABLE ENTRY cuando el mecanismo de eliminacion de t Lb local esta instalado y la instruccion especifica la eliminacion de solamente la TLB local (es decir, el control de eliminacion local en la instruccion es uno).
Cuando se usa INVALIDATE PAGE TABLE ENTRY debenan considerarse los siguientes aspectos del funcionamiento de la TLB. (Veanse tambien las notas de programacion correspondientes a INVALIDATE PAGE TABLE ENTRY).
a. INVALIDATE PAGE TABLE ENTRY debena ejecutarse antes de realizar cualquier cambio en una entrada de una tabla de paginas que no sea el cambio del byte de mas a la derecha; si no, la parte de eliminacion selectiva de INVALIDATE PAGE TABLE ENTRY puede no eliminar las copias de la TLB de la entrada. b. La invalidacion de todas las entradas de tabla de paginas dentro de una tabla de paginas por medio de INVALIDATE PAGE TABLE ENTRY no elimina necesariamente en la TLB cualquier entrada de tabla de segmentos que designe la tabla de paginas. Cuando se desea invalidar y eliminar en la TLB una entrada de una tabla de regiones o de segmentos, deben seguirse las siguientes reglas de la nota 5.
De manera similar, la invalidacion de todas las entradas de tabla de nivel inferior dentro de una tabla de regiones o de segmentos por medio de INVALIDATE DAT TABLE ENTRY no elimina necesariamente en la TLB cualquier entrada de tabla de nivel superior que designe la tabla de nivel inferior. Cuando se desea invalidar y eliminar en la TLB una entrada de tabla de nivel superior, deben seguirse las reglas de la siguiente nota 5.
c. Cuando se va a invalidar un numero elevado de entradas de tabla de paginas de una sola vez, la tara implicada en el uso de COMPARE AND SWAP AND PURGE (una que purgue la TLB), INVALIDATE DAT TABLE ENTRY, o PURGE TLB y al seguir las reglas de la nota 5 de mas abajo puede ser menor que la de emitir INVALIDATE PAGE TABLE ENTRY para cada entrada de tabla de paginas.
5. La manipulacion de entradas de tabla debena ser acorde a las siguientes reglas. Si se cumplen estas reglas, la traduccion se lleva a cabo como si, en el proceso de traduccion, se usasen siempre las entradas de tabla de medios de almacenamiento reales o absolutos.
a. Una entrada de tabla valida no se debe cambiar mientras esta vinculada a cualquier CPU y puede ser usada para la traduccion por esa CPU excepto para (1) invalidar la entrada usando INVALIDATE PAGE TABLE ENTRY o INVALIDATE DAT TABLE ENTRY, (2) modificar los bits 56 a 63 de una entrada de tabla de paginas, (3) realizar un cambio por medio de una instruccion COMPARE AND SWAP AND PURGE que purga la t Lb , o (4) sustituir una entrada usando COMPARE AND REPLACE DAT TABLE ENTRY. b. Cuando se realiza cualquier cambio en una entrada de tabla vinculada y valida o no vinculada que sea diferente a un cambio sobre los bits 56 a 63 de una entrada de tabla de paginas, debe hacerse que cada CPU que pueda tener una entrada de TLB formada a partir de esa entrada purgue su TLB despues de que se produzca el cambio y antes del uso de esa entrada para una traduccion implfcita por parte de esa CPU. (Observese que es innecesario un purgado independiente si el cambio se realizo usando COMPARE AND REPLACE DAT TABLE ENTRY, INVALIDATE DAT TABLE ENTRY, INVALIDATE PAGE TABLE ENTRY, o una instruccion COMPARE AND SWAP AND PURGE que purgue la TLB). En el caso en el que la entrada de la tabla esta vinculada y es valida, esta regla se aplica cuando se sabe que no se esta ejecutando un programa que puede requerir la entrada para una traduccion.
c. Cuando se realiza cualquier cambio en una entrada de tabla no valida de tal manera que permite la aparicion de valores validos intermedios en la entrada, debe hacerse que cada CPU a la cual esta vinculada la entrada purgue su TLB despues de que se produzca el cambio y antes del uso de la entrada para una traduccion implfcita de direcciones por parte de esa CPU.
d. Cuando se realiza cualquier cambio en un desplazamiento o longitud especificado para una tabla, debe hacerse que cada CPU que pueda tener una entrada de TLB formada a partir de una entrada de tabla que ya no se situe dentro de su tabla purgue su TLB despues de que se produzca el cambio y antes del uso de la tabla para una traduccion implfcita por parte de esa CPU.
Observese que cuando se hace que una entrada de tabla de paginas no valida sea valida sin introducir valores validos intermedios, no es necesario borrar la TLB de una CPU que no tiene ninguna entrada de TLB formada a partir de esa entrada. De manera similar, cuando se hace que una entrada de tabla de regiones o de tabla de segmentos no valida resulte valida sin introducir valores validos intermedios, no es necesario borrar la TLB de una CPU que no tiene ninguna entrada de TLB formada a partir de esa entrada validada y que no tiene ninguna entrada de TLB formada a partir de entradas en una tabla de paginas vinculadas por medio de esa entrada validada.
La ejecucion de PURGE TLB, COMPARE AND SWAP AND PURGE o SET PREFIX puede tener un efecto negativo sobre el rendimiento de algunos modelos. Por lo tanto, el uso de estas instrucciones debena reducirse al mmimo de acuerdo con las reglas anteriores.
6. Cuando se aplica EDAT-1 estan vigentes las siguientes consideraciones:
a. Cuando los controles tanto de formato de STE como de validez de ACCF son uno, es impredecible saber si la CPU inspeccionara los bits de control de acceso y el bit de proteccion de recuperacion (fetchprotection) en la entrada de tabla de segmentos o en la clave de almacenamiento del bloque de 4 K bytes correspondiente para cualquier comprobacion dada de proteccion controlada por clave. Por lo tanto, el programa debena garantizar que los bits de control de acceso y el bit de proteccion de recuperacion en la entrada de tabla de segmentos son identicos a los campos respectivos en la totalidad de las 256 claves de almacenamiento para los bloques de 4 K bytes constituyentes del segmento, antes de fijar el bit de invalidez en la STE a cero.
Antes de cambiar el control de validez de ACCF, los bits de control de acceso o el bit de proteccion de recuperacion en la entrada de tabla de segmentos, y antes de cambiar los bits de control de acceso o el bit de proteccion de recuperacion en cualquiera de las 256 claves de almacenamiento del segmento, el programa debena fijar, en primer lugar, el bit de invalidez a uno en la entrada de la tabla de segmentos y eliminar todas las entradas en todas las TLBs en la configuracion, segun se ha descrito previamente en esta seccion.
b. Antes de fijar la omision de registro de cambio a cero en una entrada de tabla de segmentos, el programa debena fijar el bit de invalidez a uno en la entrada de tabla de segmentos, y eliminar todas las entradas de todas las TLBs en la configuracion (por ejemplo, usando INVALIDATE DAT TABLE ENTRY). La invalidacion de la entrada de la tabla no se requiere si el cambio se realiza usando COMPARE AND REPLACE DAT TABLE ENTRY o una forma de COMPARE AND SWAP AND PURGE que borre la TLB. c. Antes de fijar la omision de registro de cambio a cero en la entrada de la tabla de paginas, el programa debena fijar el bit de invalidez a uno en la entrada de tabla de paginas, y eliminar todas las entradas en todas las TLBs en la configuracion (por ejemplo, usando INVALIDATE PAGE TABLE ENTRY). La invalidacion de la entrada de la tabla no se requiere si el cambio se realiza usando COMPARE AND REPLACE DAT TABLE ENTRY o una forma de COMPARE AND SWAP AND PURGE que borre la TLB.
Cuando se aplica EDAT-2 estan vigentes las siguientes consideraciones adicionales:
a. Cuando tanto el control de formato de RTTE como el control de validez de ACCF es uno, es impredecible saber si la CPU inspeccionara los bits de control de acceso y el bit de proteccion de recuperacion en la entrada de la tercera tabla de segmentos o en la clave de almacenamiento del bloque de 4 K bytes correspondiente para cualquier comprobacion dada de proteccion controlada por clave. Por lo tanto, el programa debena garantizar que los bits de control de acceso y el bit de proteccion de recuperacion en la entrada de la tercera tabla de regiones son identicos a los campos respectivos en la totalidad de las 524.288 claves de almacenamiento para los bloques de 4 K bytes constituyentes de la region, antes de fijar el bit de invalidez en la RTTE a cero.
Antes de cambiar el control de validez de ACCF, los bits de control de acceso o el bit de proteccion de recuperacion en la entrada de la tercera tabla de regiones, y antes de cambiar los bits de control de acceso o el bit de proteccion de recuperacion en cualquiera de las 524.288 claves de almacenamiento de la region, el programa debena fijar, en primer lugar, el bit de invalidez a uno en la entrada de la tercera tabla de regiones y eliminar todas las entradas en todas las TLBs en la configuracion, segun se ha descrito previamente en esta seccion.
b. Antes de fijar la omision de registro de cambio a cero en una entrada de la tercera tabla de regiones, el programa debena fijar el bit de invalidez a uno en la entrada de la tercera tabla de regiones, y eliminar todas las entradas de todas las TLBs en la configuracion (por ejemplo, usando INVALIDATE DAT TABLE ENTRY). La invalidacion de la entrada de la tabla no se requiere si el cambio se realiza usando COMPARE AND REPLACE DAT TABLE ENTRY o una forma de COMPARE AND SWAP AND PURGE que borre la TLB.
El no observar estos procedimientos puede conducir a resultados impredecibles, que incluyen, posiblemente, una comprobacion de la maquina en relacion con excepciones de acceso retardadas o un fallo de registro de un cambio. Mecanismo de DAT mejorada 1
El mecanismo de DAT mejorada 1 puede estar disponible en modelos que implementan la Arquitectura z/. Cuando el mecanismo esta instalado y habilitado, la traduccion DAT puede producir o bien una direccion real de trama de pagina o bien una direccion absoluta de trama de segmento, determinada por el control de formato de STE en la entrada de tabla de segmentos. Cuando el mecanismo esta instalado en una configuracion, un bit nuevo en el registro de control 0 habilita el mecanismo. Nota: la expresion se aplica EDAT-1 se usa de manera generalizada en este documento para describir la condicion en la que el mecanismo de DAT mejorada 1 esta instalado en la configuracion y habilitado por el registro de control 0.
Cuando se aplica EDAT-1, esta disponible la siguiente funcion adicional en el proceso de DAT:
• A las entradas de tabla de regiones se les adiciona un bit de proteccion de DAT, que proporciona una funcion similar a los bits de proteccion de DAT de las entradas de tabla de segmentos y de paginas.
• A la entrada de la tabla de segmentos se le adiciona un control de formato de STE. Cuando el control de formato de STE es cero, la DAT evoluciona tal como esta definida en la actualidad, excepto que una omision de registro de cambio en la entrada de tabla de paginas indica si se puede eludir la fijacion del bit de cambio para la pagina.
• Cuando el control de formato de STE es uno, la entrada de tabla de segmentos contiene tambien lo siguiente:
- Una direccion absoluta de trama de segmento (mas que un origen de tabla de paginas) que especifica la posicion de almacenamiento absoluta del bloque de 1 Mbytes.
- Bits de control de acceso y un bit de proteccion de recuperacion que se pueden usar opcionalmente en lugar de los bits correspondientes en las claves de almacenamiento individuales del segmento
- Un bit que determina la validez de los bits de control de acceso y un bit de proteccion de recuperacion en la entrada de tabla de segmentos.
- Una omision de registro de cambio que indica si se puede eludir la fijacion del bit de cambio en las claves de almacenamiento individuales del segmento. El mecanismo anade la instruccion de control PERFORM FRAME MANAGEMENT FUNCTION (EJECUCION DE FUNCION DE GESTION DE TRAMAS). El mecanismo incluye mejoras o cambios sobre las siguientes instrucciones de control: • LOAD PAGE-TABLE-ENTRY ADDRESS • MOVE PAGE (MOVIMIENTO DE PAGINA) • SET STORAGE KEY EXTENDED (FIJACION DE CLAVE DE ALMACENAMIENTO EXTENDIDA) • TEST PROTECTION (COMPROBACION DE PROTECCION)
Mecanismo de DAT mejorada 2
El mecanismo de DAT mejorada 2 puede estar disponible en modelos que implementan la Arquitectura z/. Cuando el mecanismo esta instalado y habilitado, la traduccion DAT puede producir o bien una direccion real de trama de pagina, o bien una direccion absoluta de trama de segmento, o bien una direccion absoluta de trama de region, determinada por controles de formato en la entrada (si la hubiere) de la tercera tabla de regiones y la entrada (si la hubiere) de la tabla de segmentos.
Nota: la expresion se aplica EDAT-2 se usa de manera generalizada en este documento para describir la condicion en la que el mecanismo de DAT mejorada 2 esta instalado en la configuracion y habilitado por el registro de control 0.
Cuando se aplica EDAT-2, esta disponible la siguiente funcion adicional en el proceso de DAT:
• Se aplica EDAT-1.
• Se anade un control de formato a la entrada de la tercera tabla de regiones (RTTE). Cuando el control de formato de RTTE es cero, la DAT evoluciona como en el caso correspondiente a cuando se aplica EDAT-1.
• Cuando el control de formato de RTTE es uno, la entrada de la tercera tabla de regiones contiene tambien lo siguiente:
- Una direccion absoluta de trama de region (mas que un origen de tabla de segmentos) que especifica la posicion de almacenamiento absoluta del bloque de 2 Gbytes.
- Bits de control de acceso y un bit de proteccion de recuperacion que se pueden usar opcionalmente en lugar de los bits correspondientes en las claves de almacenamiento individuales de la region
- Un bit que determina la validez de los bits de control de acceso y un bit de proteccion de recuperacion en la entrada de la tercera tabla de regiones - Una omision de registro de cambio que indica si se puede eludir la fijacion del bit de cambio en las claves de almacenamiento individuales de la region. El mecanismo de DAT mejorada 2 anade la instruccion COMPARE AND REPLACE DAT TABLE ENTRY, que preve la sustitucion dinamica de entradas de tabla DAT vinculadas, validas, y la eliminacion selectiva de todas las entradas de TLB creadas a partir de la entrada sustituida. El mecanismo de DAT mejorada 2 incluye tambien mejoras o cambios en las siguientes instrucciones de control: • INVALIDATE DAT TABLE ENTRY • LOAD PAGE-TABLE-ENTRY ADDRESS • MOVE PAGE • PERFORM FRAME MANAGEMENT FUNCTION • TEST PROTECTION Cuando el mecanismo de DAT mejorada 2 esta instalado, se instala tambien el mecanismo de DAT mejorada 1.
INVALIDATE DAT TABLE ENTRY (IDTE) lleva a cabo la operacion de invalidacion y eliminacion eliminando selectivamente entradas de tabla combinada de regiones y segmentos TLB cuando se invalidan una entrada o entradas de tablas de segmentos. La IDTE lleva a cabo tambien la operacion de eliminacion-por-ASCE.
Durante la ejecucion de una instruccion IDTE, se invalida una parte especificada de almacenamiento (por ejemplo, el almacenamiento virtual). Como ejemplos, se selecciona la invalidacion de un segmento de almacenamiento, el cual incluye una pluralidad de paginas de almacenamiento, o de una region de almacenamiento, la cual incluye una pluralidad de segmentos de almacenamiento. La invalidacion viene facilitada por la fijacion de indicadores de invalidacion situados en entradas de estructura de datos correspondientes a las unidades de almacenamiento a invalidar. En un aspecto adicional, se eliminan entradas de memoria intermedia (por ejemplo, entradas de Memorias Intermedias de Traduccion Lateral) asociadas al almacenamiento que se esta invalidando, u otro almacenamiento. Todavfa adicionalmente, en otro aspecto, se eliminan, de memorias intermedias, entradas de memoria intermedia asociadas a espacios de direcciones seleccionados, sin afectar a entradas de memoria intermedia de espacios de direcciones no seleccionados, y sin llevar a cabo una invalidacion. En un ejemplo, para llevar a cabo una o mas de las operaciones anteriores se usa una instruccion, a la que se hace referencia en la presente como instruccion de Invalidacion de Entrada de Tabla de Traduccion Dinamica de Direcciones (DAT) (IDTE), de la Arquitectura z/ de IBM®.
INVALIDATE DAT TABLE ENTRY IDTE Ri,Ra,R2[,M4]
Nota: la expresion “CPU o CPUs especificadas” tiene el siguiente significado para el ambito de las TLBs afectadas por esta instruccion:
• Cuando el mecanismo de eliminacion de TLB local no esta instalado, o cuando el mecanismo esta instalado y el bit de control de eliminacion local (LC) en el campo M4 es cero, la expresion “CPU o CPUs especificadas” significa todas las CPUs de la configuracion.
• Cuando el mecanismo de eliminacion de TLB local esta instalado y el bit de LC en el campo M4 es uno, la expresion “CPU o CPUs especificadas” significa solamente la CPU que ejecuta la instruccion IDTE (la CPU local). Las TLBs en latotalidad del resto de CPUs en la configuracion no pueden verse afectadas.
Cuando el bit de opcion de borrado por ASCE, bit 52 del registro general R2 es cero, se lleva a cabo una operacion denominada operacion de invalidacion y eliminacion, de la manera siguiente. La entrada de tabla de regiones o entrada de tabla de segmentos designada en los medios de almacenamiento, o un intervalo de entradas que comienza con la entrada designada, se invalida, y, en las memorias intermedias de traduccion lateral (TLBs) en la CPU o CPUs especificadas en la configuracion, se eliminan (1) todas las entradas de tabla de TLB del tipo designado formadas a traves del uso de la entrada o entradas invalidadas en los medios de almacenamiento, y (2) todas las entradas de tabla de TLB de nivel inferior formadas a traves del uso de las entradas de tabla de TLB de nivel superior eliminadas. Las entradas de TLB eliminadas se pueden limitar, opcionalmente, a entradas formadas para traducir direcciones en un espacio de direcciones especificado.
Cuando el bit de opcion de eliminacion por ASCE es uno, se lleva a cabo una operacion denominada operacion de eliminacion por ASCE de la manera siguiente. La operacion no lleva a cabo ninguna invalidacion de entradas de tabla DAT en los medios de almacenamiento, pero sf elimina, de las TLBs en todas las CPUs de la configuracion, todas las entradas de primera tabla de regiones, todas las entradas de segunda tabla de regiones, todas las entradas de tercera tabla de regiones, todas las entradas de tabla de segmentos y todas las entradas de tabla de paginas, formadas para traducir direcciones en un espacio de direcciones especificado.
Los bits del campo M4 se definen de la manera siguiente:
Reservado: los bits 0-1 del campo M4 se ignoran pero debenan contener ceros; si no, el programa no puede funcionar de manera compatible en el futuro.
Resumen de control de formato (FS): cuando se aplica EDAT-2, el bit 2 del campo M4 es el resumen de control de formato (FS) para la operacion de invalidacion y eliminacion. El bit 2 del campo M4 se ignora para la operacion de eliminacion por ASCe y cuando no se aplica EDAT-2.
El resumen de control de formato se aplica cuando el tipo de designacion (DT), bits 60-61 del registro general Ri, es 00 o 01 binario; cuando el DT en el registro general Ri es 10 o 11 binario, el resumen de control de formato se ignora.
Control de Eliminacion Local (LC): cuando el mecanismo de eliminacion de TLB local esta instalado, el bit de LC, bit 3 del campo M4, controla si solamente se borra la TLB en la CPU local o si se borran las TLBs de todas las CPUs de la configuracion. Cuando el mecanismo de eliminacion de TLB local no esta instalado, el bit 3 del campo M4 se ignora.
Operacion de invalidacion y eliminacion
Cuando el bit 52 del registro general R2, el bit de opcion de eliminacion por ASCE, es cero, se especifica la operacion de invalidacion y eliminacion.
El contenido del registro general R1 tiene el formato de un elemento de control de espacio de direcciones, usandose solamente el origen de tabla, bits 0 a 51, y el control de tipo de designacion (DT), bits 60 y 61. El origen de tabla designa la tabla DAT en la cual se van a invalidar una o mas entradas, y DT especifica el tipo de esa tabla.
Los bits 52 a 59, 62 y 63 del registro general R1 se ignoran.
Los bits 0 a 43 del registro general R2 tienen el formato del mdice de region y el mdice de segmento de una direccion virtual. A la parte de los bits 0 a 43 usada normalmente por la DAT para seleccionar una entrada en el tipo de tabla designada por el registro general R1 se le denomina mdice de invalidacion efectivo. Los bits 60 y 61 del registro general Ri especifican un tipo de tabla y un mdice de invalidacion efectivo de la manera siguiente:
La parte de los bits 0 a 43 del registro general R2 a la derecha del mdice de invalidacion efectivo se ignora.
El origen de tabla en el registro general Ri y el mdice de invalidacion efectivo designan una entrada de tabla DAT a invalidar. Los bits 53 a 63 del registro general R2 son un entero binario sin signo que especifica el numero de entradas de tabla adicionales a invalidar. Por lo tanto, el numero de entradas a invalidar es 1-2.048, correspondiente a un valor de los bits 53 a 63.
Los bits 44 a 51 del registro general R2 deben ser ceros; si no, se reconoce una excepcion de especificacion.
Si R3 es diferente de cero, el contenido del registro general R3 tiene el formato de un elemento de control de espacio de direcciones, usandose solamente el origen de tabla, bits 0 a 51, y el control de tipo de designacion (DT), bits 60 y 61. Este contenido se usa para seleccionar entradas de TLB a eliminar. Los bits 52 a 59, 62 y 63 del registro general R3 se ignoran. Si R3 es cero, se ignora el contenido completo del registro general 0, y las entradas de TLB se eliminan con independencia del ASCE usado para formarlas.
El origen de tabla en el registro general R1 y el mdice de invalidacion efectivo en el registro general R2 designan una entrada de tabla excepto que el arrastre de la posicion de bits 0 de la direccion resultante se ignora siempre, y el mdice no se comprueba con respecto a un campo de longitud de tabla. El origen de tabla se trata como una direccion de 64 bits, y la suma se lleva a cabo usando las reglas correspondientes a una aritmetica de direcciones de 64 bits, con independencia del modo de direccionamiento actual especificado por los bits 31 y 32 de la PSW actual. La direccion formada a partir de estos dos componentes es una direccion real o absoluta. El bit de invalidez, bit 58, de esta entrada de tabla de regiones o tabla de segmentos se fija a uno. Durante este procedimiento, la entrada no se comprueba en relacion con un formato de error o en relacion con si el origen, en la entrada, de la tabla de siguiente nivel inferior provocana una excepcion de direccionamiento. El campo de tipo de tabla en la entrada se ignora. Si la entrada es una entrada de tabla de segmentos, el bit de segmento comun en la entrada se ignora. Si se aplica EDAT-2 y la entrada es una entrada de una tercera tabla de regiones, el bit de region comun en la entrada se ignora.
La entrada de tabla completa se recupera simultaneamente de los medios de almacenamiento. Posteriormente, se almacena el byte que contiene el bit de invalidez. El acceso de recuperacion a la entrada esta sujeto a una proteccion controlada por clave, y el acceso de almacenamiento esta sujeto a una proteccion controlada por clave y la proteccion de direcciones bajas.
Si los bits 53 a 63 del registro general R2 no son, todos ellos, ceros, la fijacion del bit de invalidez a uno en una entrada de tabla de regiones o de tabla de segmentos se repite sumando uno al valor usado previamente del mdice de invalidacion efectivo, y esto se lleva a cabo tantas veces como especifiquen los bits 53 a 63. Un arrastre de la posicion de bit de mas a la izquierda del mdice de invalidacion efectivo se ignora, y, en este caso, se produce una reiniciacion dclica en la tabla. El contenido del registro general R2 permanece invariable.
Se lleva a cabo una funcion de serializacion antes de que la operacion comience y, nuevamente, despues de que se haya completado la operacion. Tal como ocurre para todas las operaciones de serializacion, esta serializacion se aplica solamente a esta CPU; otras CPUs no tienen que serializarse necesariamente.
Despues de haber fijado un bit de invalidez a uno, esta CPU elimina entradas seleccionadas de su TLB. A continuacion, si el mecanismo de eliminacion de TLB local no esta instalado, o si el mecanismo esta instalado y el bit de LC en el campo M4 es cero, esta CPU senaliza a la totalidad del resto de CPUs de la configuracion que eliminen entradas seleccionadas de sus TLBs. En cada TLB afectada se eliminan por lo menos aquellas entradas para las cuales se cumple la totalidad de las siguientes condiciones:
• El mdice de invalidacion efectivo en el registro general R2 coincide con el mdice correspondiente en la entrada de tabla de TLB del tipo designado por el campo DT en los bits 60 a 61 del registro general R1. Si el modelo implementa una entrada de TLB compuesta que incluye el mdice designado por el campo DT, los bits a la izquierda del mdice efectivo en el registro general R2 tambien coinciden con cualesquiera bits correspondientes proporcionados en la entrada de tabla de TLB designada. Observese que, cuando se invalidan multiples entradas de tabla debido a los bits 53 y a 63 del registro general R2, entonces el mdice de invalidacion efectivo se incrementa, se pierde un arrastre de la posicion de bit de mas a la izquierda del mdice, y las entradas de tabla de regiones o de segmentos TLB se eliminan para cada valor del mdice asf obtenido.
• O bien el campo R3 es cero, o bien los campos de origen de tabla y tipo de designacion en el registro general R3 coinciden con los campos de origen de tabla y de tipo de designacion en el elemento de control de espacio de direcciones (ASCE) usado para formar la entrada de tabla de TLB.
• Si el campo R3 es cero, entonces no se aplica la condicion descrita en esta etapa.
• Si la entrada invalidada en los medios de almacenamiento designa una tabla de traduccion de nivel inferior, el origen de tabla de nivel inferior en la entrada invalidada coincide con el campo de origen de tabla en la entrada de tabla de TLB.
En cada TLB afectada se eliminan tambien por lo menos cualesquiera entradas de tabla de TLB de nivel inferior para las cuales se cumpla la totalidad de las siguientes condiciones:
• La entrada de tabla de TLB de nivel inferior se formo a traves del uso de una entrada invalidada en los medios de almacenamiento o a traves del uso de una entrada de tabla de TLB de nivel superior formada a traves del uso de o bien una entrada invalidada en los medios de almacenamiento o bien una entrada de TLB eliminada en este proceso.
• O bien el campo R3 es cero o bien los campos de origen de tabla y de tipo de designacion en el registro general R3 coinciden con los campos de origen de tabla y de tipo de designacion en el elemento de control de espacio de direcciones (ASCE) usado para formar la entrada de tabla de TLB de nivel inferior. Este ASCE puede ser uno que vinculaba una ruta de traduccion que contema una entrada de tabla de nivel superior que vinculaba la entrada de tabla de nivel inferior en los medios de almacenamiento a partir de la cual se formo la entrada de tabla TLB de nivel inferior, o puede ser uno que hizo que resultase utilizable una entrada de tabla TLB de nivel superior que vinculaba la entrada de tabla de nivel inferior en los medios de almacenamiento a partir de la cual se formo la entrada de tabla TLB de nivel inferior. Si el campo R3 es cero, entonces la condicion descrita en esta etapa no se aplica.
• Si la entrada invalidada en los medios de almacenamiento designa una tabla de traduccion de nivel inferior, el origen de tabla de nivel inferior en la entrada invalidada coincide con el campo de origen de tabla en la entrada de tabla TLB.
Notas de programacion:
1. La fijacion del resumen del control de formato a uno puede proporcionar un rendimiento mejorado en ciertos modelos.
2. Cuando el tipo de designacion (DT), bits 60-61 del registro general R1, es 00 binario, el resumen de control de formato se aplica a las entradas de tabla de segmentos que se estan invalidando. Cuando el DT en el registro general Ri es 01 binario, el resumen de control de formato se aplica a las entradas de tercera tabla de regiones que se estan invalidando.
3. El programa unicamente debena fijar el resumen de control de formato a uno si puede garantizar que el control de formato (bit 53 de la entrada de la tabla) es uno en todas las entradas de tabla que se estan invalidando. Si el resumen de control de formato se fija a uno, pero el control de formato no es uno en todas las entradas de tabla que se estan invalidando, puede producirse un purgado incompleto de la TLB, obteniendose resultados impredecibles a partir de la DAT.
4. Se considera que el campo M4 de la instruccion es opcional, segun indica el campo que esta contenido entre corchetes [ ] en la sintaxis de ensamblador. Cuando el campo M4 no se especifica, el ensamblador coloca ceros en ese campo de la instruccion.
El almacenamiento en la entrada de tabla de regiones o tabla de segmentos y la eliminacion de entradas de TLB pueden producirse o no si el bit no valido ya es uno en la entrada de la tabla de regiones o de segmentos.
Cuando se invalidan multiples entradas, la eliminacion de las entradas de TLB se puede retardar hasta que se hayan invalidado todas las entradas.
Operacion de eliminacion-por-ASCE
Cuando el bit 52 del registro general R2, el bit de la opcion de eliminacion por ASCE, es uno, se especifica la operacion de eliminacion por ASCE.
El contenido del registro general R3 tiene el formato de un elemento de control de espacio de direcciones, usandose solamente el origen de tabla, bits 0 a 51, y el control de tipo de designacion (DT), bits 60 y 61. Este contenido se usa para seleccionar entradas de TLB a eliminar. Los bits 52 a 59, 62, y 63 del registro general R3 se ignoran. R3 puede ser cero o diferente de cero, es decir, se puede designar cualquier registro general, incluyendo el registro 0.
Los bits 44 a 51 del registro general R2 deben ser cero; de lo contrario, se reconoce una excepcion de especificacion.
El contenido del registro general R1 y de las posiciones de bit 0 a 43 y 53 a 63 del registro general R2 se ignora. En las TLBs de la CPU o CPUs especificadas en la configuracion se eliminan, en todos los niveles, al menos aquellas entradas para las cuales los campos de origen de tabla y de tipo de designacion en el registro general R3 coinciden con los campos de origen de tabla y de tipo de designacion en el elemento de control de espacio de direcciones (ASCE) usado para formar la entrada. Este ASCE es el correspondiente usado en la traduccion durante la cual se formo la entrada.
Cuando el bit de opcion de eliminacion por ASCE (bit 52 del registro general R2 es uno), el campo M4 se ignora. Funcionamiento comun
La ejecucion de INVALIDATE DAT TABLE ENTRY no se completa en la CPU que la ejecuta hasta que se produce lo siguiente:
1. Todas las entradas que cumplen los criterios especificados anteriormente se han eliminado de la TLB de esta CPU. Cuando el mecanismo de eliminacion de TLB local esta instalado y el bit de LC en el campo M4 es uno, la ejecucion de INVALIDATE DAT TABLE ENTRY se ha completado en este momento y no se lleva a cabo la siguiente etapa.
2. Cuando el mecanismo de eliminacion de TLB local no esta instalado, o cuando el mecanismo esta instalado y el bit de LC en el campo M4 es cero, la totalidad del resto de CPUs en la configuracion ha completado cualesquiera accesos de almacenamiento, incluyendo la actualizacion de los bits de cambio y de referencia, usando entradas de TLB correspondientes a los parametros especificados.
Las operaciones no tienen necesariamente ningun efecto sobre entradas de espacio real de TLB.
Condiciones especiales:
Los bits 44 a 51 del registro general R2 deben ser ceros; de lo contrario, se reconoce una excepcion de especificacion.
La operacion se suprime en todas las excepciones de direccionamiento y proteccion (unicamente operacion de invalidacion-y-eliminacion).
Codigo de condicion resultante: el codigo es impredecible.
Excepciones de programa:
Direccionamiento (entrada de tabla de regiones o de segmentos invalidada, unicamente operacion de invalidacion-y-eliminacion).
• Operacion (si el mecanismo de mejora de DAT no esta instalado)
• Operacion privilegiada.
• Proteccion (recuperacion y almacenamiento, entrada de tabla de regiones o de segmentos, proteccion controlada por clave y proteccion de direcciones bajas; unicamente operacion de invalidacion-y-eliminacion).
• Especificacion
Notas de programacion:
1. La eliminacion selectiva de entradas de TLB se puede implementar de diferentes maneras, en funcion del modelo, y, en general, se pueden eliminar mas entradas que el numero mmimo requerido. Cuando se lleva a cabo la operacion de invalidacion-y-eliminacion, algunos modelos pueden eliminar todas las entradas de TLB cuando el mdice de invalidacion efectivo no es un mdice de segmento o pueden eliminar una entrada con independencia del origen de tabla de paginas en la entrada. Cuando se lleva a cabo esa operacion o la operacion de eliminacion-por-ASCE, algunos modelos pueden eliminar una entrada de TLB con independencia del campo de tipo de designacion en el registro general R3. Cuando se lleva a cabo cualquiera de las dos operaciones, otros modelos pueden eliminar precisamente el numero mmimo de entradas requerido. Por lo tanto, para que un programa funcione en todos los modelos, el programa no debena aprovechar ninguna propiedad obtenida por medio de una eliminacion menos selectiva en un modelo particular.
2. Cuando se usa la operacion de eliminacion-por-ASCE para eliminar entradas de TLB asociadas a segmentos comunes, observese que estas entradas se pueden haber formado a traves del uso de elementos de control de espacio de direcciones que contienen muchos ongenes de tabla diferentes.
Las siguientes notas se aplican cuando se especifica la operacion de invalidacion-y-eliminacion.
3. La eliminacion de entradas de TLB puede hacer uso del origen de tabla de paginas en una entrada de tabla de segmentos. Por lo tanto, si la entrada de tabla de segmentos, cuando se encuentra en el estado vinculado, contuvo alguna vez un origen de tabla de paginas que es diferente del valor actual, en la TLB pueden permanecer copias de entradas que contienen los valores previos.
4. INVALIDATE DAT TABLE ENTRY no se puede usar de manera segura para actualizar una posicion compartida en medios de almacenamiento principales si existe la posibilidad de que otra CPU o un programa de canal tambien pueda estar actualizando la posicion.
5. La direccion de la entrada de la tabla DAT para INVALIDATE DAT TABLE ENTRY es una direccion de 64 bits, y la aritmetica de direcciones se lleva a cabo siguiendo las reglas normales correspondientes a una aritmetica de direcciones de 64 bits, con una reiniciacion dclica en 264 - 1. Ademas, no se usan campos de desplazamiento y de longitud. Pongase esto en contraposicion con una traduccion implfcita y las traducciones correspondientes a LOAD REAL ADDRESS y STORE REAL ADDRESS, que pueden dar como resultado, todas ellas, una reiniciacion dclica o una excepcion de direccionamiento cuando se produce un arrastre de la posicion de bit 0 y que indican una condicion de excepcion cuando la entrada designada no se situa dentro de su tabla. Por consiguiente, las tablas DAT no se debenan especificar de manera que se reinicien dclicamente desde posiciones de almacenamiento maximas a la posicion 0, y la primera entrada designada y todas las entradas adicionales especificadas por los bits 53 a 63 del registro general R2 se debenan situar dentro de la tabla designada.
6. Cuando esta instalado el mecanismo de eliminacion de TLB local, el control de eliminacion local se debena especificar como uno cuando el ASCE usado para formar las entradas de TLB que se estan eliminando se ha vinculado unicamente a la CPU en la cual se ejecuta la instruccion IDTE (por ejemplo, si el programa se esta ejecutando en un uniprocesador). De lo contrario, pueden producirse resultados impredecibles, incluyendo la presentacion de una comprobacion de la maquina en relacion con excepciones de acceso retardadas.
En algunos modelos, el uso de INVALIDATE DAT TABLE ENTRY especificando la eliminacion de solamente la TLB local para los casos enumerados anteriormente puede dar como resultado mejoras de rendimiento significativas.
7. Se considera que el campo M4 de la instruccion es opcional, segun indica el campo que esta contenido entre corchetes [ ] en la sintaxis de ensamblador. Cuando no se especifica el campo M4, el ensamblador coloca ceros en ese campo de la instruccion.
INVALIDATE PAGE TABLE ENTRY IPTE Ri,R2[,Ra[,M4]]
Nota: la expresion “CPU o CPUs especificadas” tiene el siguiente significado para el ambito de las TLBs afectadas por esta instruccion:
• Cuando el mecanismo de eliminacion de TLB local no esta instalado, o cuando el mecanismo esta instalado y el bit de control de eliminacion local (LC) en el campo M4 es cero, la expresion “CPU o CPUs especificadas” significa todas las CPUs de la configuracion.
• Cuando el mecanismo de eliminacion de TLB local esta instalado y el bit de LC en el campo M4 es uno, la expresion “CPU o CPUs especificadas” significa solamente la CPU que ejecuta la instruccion IPTE (la CPU local). Las TLBs en latotalidad del resto de CPUs en la configuracion no pueden verse afectadas.
Las entradas designadas de la tabla de paginas se invalidan, y en las memorias intermedias de traduccion lateral (TLBs) en la CPU o CPUs especificadas en la configuracion se eliminan las entradas asociadas.
El contenido del registro general R1 tiene el formato de una entrada de tabla de segmentos, usandose unicamente el origen de tabla de paginas. El contenido del registro general R2 tiene el formato de una direccion virtual, usandose solamente el mdice de pagina. El contenido de campos que no forman parte del origen de tabla de paginas o del mdice de paginas se ignoran.
Cuando el mecanismo de intervalo de IPTE no esta instalado, o cuando el campo R3 es cero, la entrada de tabla de paginas individual designada por el primer y el segundo operandos se invalida.
Cuando el mecanismo de intervalo de IPTE esta instalado y el campo R3 es diferente de cero, los bits 56 a 63 del registro general R3 contienen un entero binario sin signo que especifica el recuento de entradas de tabla de paginas, adicionales, a invalidar. Por lo tanto, el numero de entradas de la tabla de paginas a invalidar es 1-256, correspondiente a un valor de 0-255 en los bits 56 a 63 del registro.
Cuando el mecanismo de intervalo de IPTE no esta instalado, el campo R3 se ignora aunque debena contener ceros; de lo contrario, el programa puede que no funcione de manera compatible en el futuro.
Los bits del campo M4 se definen de la manera siguiente:
Reservados: los bits 0 a 2 estan reservados. Las posiciones de bits reservados del campo M4 se ignoran pero debenan contener ceros; de lo contrario, puede que el programa no funcione de manera compatible en el futuro.
Control de eliminacion local (LC): cuando el mecanismo de eliminacion de TLB local esta instalado, el bit LC, bit 3 del campo M4, controla si se borra solamente la TLB de la CPU local o si se borran las TLBs de todas las CPUs de la configuracion. Cuando el mecanismo de eliminacion de TLB local no esta instalado, el bit 3 del campo M4 se reserva.
El origen de tabla de paginas y el mdice de pagina designan una entrada de una tabla de paginas, siguiendo las reglas de traduccion dinamica de direcciones para la consulta de tablas de paginas. El origen de tabla de paginas se trata como una direccion de 64 bits, y la suma se lleva a cabo usando las reglas correspondientes a la aritmetica de direcciones de 64 bits, con independencia del modo de direccionamiento en curso, que queda especificado por los bits 31 y 32 de la PSW en curso. No puede producirse un arrastre de la posicion de bit 0 como consecuencia de la suma del mdice de pagina y el origen de tabla de paginas. La direccion formada a partir de estos dos componentes es una direccion real o absoluta. El bit de pagina no valida de esta entrada de tabla de paginas se fija a uno. Durante este procedimiento, la entrada de la tabla de paginas no se inspecciona en relacion con si el bit de pagina no valida ya es uno o en relacion con errores de formato. Adicionalmente, la direccion real de trama de pagina contenida en la entrada no se comprueba en relacion con una excepcion de direccionamiento.
Cuando el mecanismo de intervalo de IPTE esta instalado y el campo R3 es diferente de cero, la instruccion es interrumpible, y el procesado es el siguiente:
1. El proceso de invalidacion descrito anteriormente se repite para cada entrada sucesiva en la tabla de paginas hasta que o bien se ha invalidado el numero de entradas adicionales especificadas en los bits 56 a 63 del registro general R3 o bien se produce una interrupcion.
2. El mdice de pagina en los bits 44 a 51 del registro general R2 se incrementa en el numero de entradas de tabla de paginas que se invalidaron; un arrastre de la posicion de bit 44 del registro general R2 se ignora.
3. El recuento de entradas adicionales en los bits 56 a 63 del registro general R3 se decrementa en el numero de entradas de tabla de paginas que se invalidaron.
Por lo tanto, cuando el mecanismo de intervalo de IPTE esta instalado, el campo R3 es diferente de cero, y se produce una interrupcion (diferente a la que provoca la terminacion), los registros generales R2 y R3 se han actualizado, de manera que en la instruccion, cuando se vuelve a ejecutar, se reanuda en el punto de interrupcion. Cuando el mecanismo de intervalo de IPTE no esta instalado, o cuando el campo R3 es cero, el contenido de los registros R2, y R3 permanece invariable.
Para cada entrada de una tabla de paginas que se invalida, la entrada completa de la tabla de paginas parece recuperarse simultaneamente de los medios de almacenamiento segun es observado por otras CPUs. Posteriormente, el byte que contiene el bit de pagina no valida se almacena. El acceso de recuperacion a cada entrada de la tabla de paginas esta sujeto a una proteccion controlada por clave, y el acceso de almacenamiento esta sujeto a una proteccion controlada por clave y a una proteccion de direcciones bajas.
Se lleva a cabo una funcion de serializacion antes de que comience la operacion y nuevamente despues de que se haya completado la misma. Tal como ocurre para todas las operaciones de serializacion, esta serializacion se aplica solamente a esta CPU; el resto de CPUs no tienen que serializarse necesariamente.
Si no se reconoce ninguna excepcion, esta CPU elimina entradas seleccionadas de su TLB. A continuacion, si el mecanismo de eliminacion de t Lb local no esta instalado, o si el mecanismo esta instalado y el bit de LC en el campo M4 es cero, esta CPU senaliza a todas las CPUs de la configuracion que eliminen entradas seleccionadas de sus TLBs. Para cada entrada de tabla de paginas invalidada, en cada TLB afectada se eliminan al menos aquellas entradas que se han formado usando todo lo siguiente:
• El origen de tabla de paginas especificado por el registro general R1
• El mdice de paginas especificado por el registro general R2
• La direccion real de trama de pagina contenida en la entrada designada de la tabla de paginas
La ejecucion de INVALIDATE PAGE TABLE ENTRY no se completa en la CPU que la ejecuta hasta que se produce lo siguiente:
1. Todas las entradas de tabla de paginas correspondientes a los parametros especificados se han invalidado.
2. Todas las entradas correspondientes a los parametros especificados se han eliminado de la TLB de esta CPU.
Cuando el mecanismo de eliminacion de TLB local esta instalado y el bit de LC en el campo M4 es uno, la ejecucion de INVALIDATE PAGE TABLE ENTRY se ha completado en este momento y no se lleva a cabo la siguiente etapa.
3. Cuando el mecanismo de eliminacion de TLB local no esta instalado, o cuando el mecanismo esta instalado y el bit de LC en el campo M4 es cero, la totalidad del resto de CPUs en la configuracion ha completado cualesquiera accesos de almacenamiento, incluyendo la actualizacion de los bits de cambio y de referencia, usando entradas de TLB correspondientes a los parametros especificados.
Condiciones especiales
Cuando el mecanismo de intervalo de IPTE esta instalado, el campo R3 es diferente de cero, y el mdice de pagina en el registro general R2 mas el recuento de entradas adicionales en el registro general R3 es mayor que 255, se reconoce una excepcion de especificacion.
La operacion se suprime en todas las excepciones de direccionamiento y de proteccion.
Codigo de condicion: el codigo permanece invariable.
Excepciones de programa:
• Direccionamiento (entrada de tabla de paginas)
• Operacion privilegiada
• Proteccion (recuperacion y almacenamiento, entrada de tabla de paginas, proteccion controlada por clave y proteccion de direcciones bajas)
• Especificacion
Notas de programacion:
1. La eliminacion selectiva de entradas se puede implementar de diferentes maneras, en funcion del modelo, y, en general, se pueden eliminar mas entradas que el numero mmimo requerido. Algunos modelos pueden eliminar todas las entradas que contienen las direcciones reales de trama de pagina obtenidas a partir de las entradas de tabla de paginas en los medios de almacenamiento. Otros pueden eliminar todas las entradas que contienen el mdice (o indices) de pagina designado, y algunas implementaciones pueden eliminar precisamente el numero mmimo de entradas requerido. Por lo tanto, para que un programa funcione en todos los modelos, el programa no debena aprovechar ninguna propiedad obtenida por medio de una eliminacion menos selectiva en un modelo particular.
2. La eliminacion de entradas de TLB puede hacer uso de las direcciones reales de trama de pagina en las entradas de la tabla de paginas. Por lo tanto, si las entradas de tabla de paginas, cuando se encuentran en el estado vinculado, contuvieron alguna vez direcciones reales de trama de pagina que son diferentes con respecto a los valores actuales, en la TLB pueden permanecer copias de entradas que contienen los valore previos.
3. INVALIDATE PAGE TABLE ENTRY no se puede usar de manera segura para actualizar una posicion compartida en los medios de almacenamiento principales si existe la posibilidad de que otra CPU o un programa de un canal tambien pueda estar actualizando la posicion.
4. Cuando el mecanismo de intervalo de IPTE esta instalado y el campo R3 es diferente de cero, se aplica lo siguiente:
a. Todas las entradas de tabla de paginas a invalidar deben residir en la misma tabla de paginas. Se reconoce una excepcion de especificacion si el mdice de pagina en el registro general R1 mas el recuento de entradas adicionales en el registro general R3 es mayor que el mdice de pagina maximo de 255.
b. El numero de entradas de tabla de paginas que se invalidan con INVALIDATE PAGE TABLE ENTRY puede variar de una ejecucion a otra.
c. La instruccion no se puede usar para situaciones en las que el programa debe basarse en una ejecucion ininterrumpida de la instruccion. De manera similar, el programa no debe usar normalmente INVALIDATE PAGE TABLE ENTRY para invalidar una entrada de una tabla de paginas, cuya direccion real de trama de pagina designa el bloque de 4 K-bytes que contiene la instruccion o de una instruccion de tipo ejecucion que ejecuta el IPTe .
5. Cuando el mecanismo de eliminacion de TLB local esta instalado, el control de eliminacion local se debena especificar como uno cuando el ASCE usado para formar las entradas de TLB que se estan eliminando ha estado vinculado solamente a la CPU en la que se ejecutan la instruccion IPTE (por ejemplo, si el programa se esta ejecutando en un uniprocesador). De lo contrario, pueden producirse resultados impredecibles, incluyendo la presentacion de una comprobacion de la maquina en relacion con excepciones de acceso retardadas.
En algunos modelos, el uso de INVALIDATE PAGE TABLE ENTRY especificando la eliminacion de solamente la TLB local para los casos enumerados anteriormente puede dar como resultado mejoras del rendimiento significativas.
6. Se considera que los campos R3 y M4 de la instruccion son opcionales, segun indican los campos que estan contenidos entre corchetes [ ] en la sintaxis del ensamblador. Cuando cualquiera de los dos campos no se especifica, el ensamblador coloca ceros en el campo correspondiente de la instruccion. Cuando el campo M4 esta codificado pero el campo R3 no es necesario, debena codificarse un cero para designar el lugar del tercer operando.
En referencia a la FIG. 1 se describe una realizacion de un entorno informatico 100 que incorpora y usa uno o mas aspectos.
Como ejemplo, el entorno informatico 100 incluye un complejo de procesador central (CPC) 102 acoplado a un controlador 120. El complejo de procesador central 102 incluye, por ejemplo, una o mas particiones 104 (por ejemplo, particiones logicas LP1 a LPn), uno o mas procesadores centrales 106 (por ejemplo, CP1 a CPm), y un hipervisor 108 (por ejemplo, un administrador de particiones logicas), cada uno de los cuales se describe a continuacion.
Cada particion logica 104 tiene la capacidad de funcionar como un sistema independiente. Es decir, cada particion logica se puede reinicializar de manera independiente, se puede cargar inicialmente con un sistema operativo, si asf se desea, y puede funcionar con diferentes programas. Un sistema operativo o programa de aplicacion que se ejecuta en una particion logica parece tener acceso a un sistema total y completo, pero, en realidad, solamente esta disponible una parte del mismo. Una combinacion de hardware y Codigo Interno Bajo Licencia (al que se hace referencia comunmente como microcodigo) evita que un programa en una particion logica interfiera con un programa en una particion logica diferente. Esto permite que varias particiones logicas diferentes funcionen en un unico procesador ffsico o en multiples procesadores ffsicos en un estilo fragmentado en el tiempo. En este ejemplo particular, cada particion logica tiene un sistema operativo residente 110, el cual puede diferir para una o mas particiones logicas. En una realizacion, el sistema operativo 110 es el sistema operativo z/OS, ofrecido por la compama International Business Machines, Armonk, Nueva York.
Los procesadores centrales 106 son recursos de procesador ffsico que estan asignados a las particiones logicas. Por ejemplo, una particion logica 104 incluye uno o mas procesadores logicos, cada uno de los cuales representa la totalidad o una fraccion de un recurso de procesador ffsico 106 asignado a la particion. Los procesadores logicos de una particion particular 104 o bien pueden estar dedicados a la particion, de manera que el recurso de procesador subyacente se reserva para esa particion, o bien se pueden compartir con otra particion, de manera que el recurso de procesador subyacente esta disponible potencialmente para otra particion.
Las particiones logicas 104 son gestionadas por el hipervisor 108 implementado mediante microcodigo que se ejecuta en procesadores 106. Las particiones logicas 104 y el hipervisor 108 comprenden, cada uno de ellos, uno o mas programas que residen en partes respectivas de medios de almacenamiento centrales asociados a los procesadores centrales. Uno de los ejemplos de hipervisor 108 es el Recurso de Procesador/Administrador de Sistemas (PR/SM), ofrecido por la compama International Business Machines, Armonk, Nueva York.
El controlador 120, que esta acoplado al complejo de procesador central, incluye un modulo logico centralizado responsable de arbitrar entre diferentes procesadores que emiten solicitudes. Por ejemplo, cuando el controlador 120 recibe una solicitud, determina que el solicitante es el procesador maestro para esa solicitud y que los otros procesadores son procesadores esclavos; difunde mensajes; y si no, gestiona solicitudes.
La FIG. 2 representa un ejemplo de un controlador 200 acoplado a una pluralidad de procesadores centrales (CPUs) 201. En este ejemplo, se representan dos procesadores centrales. No obstante, se entendera que puede haber mas de dos procesadores acoplados al controlador 200.
El controlador 200 incluye varios controles que incluyen, por ejemplo, controles 202 de serializacion del sistema. Los controles de serializacion del sistema se usan para garantizar que operaciones que deben serializarse, tales como instrucciones de invalidacion, se serializan, de manera que solamente una de estas instrucciones esta en marcha al mismo tiempo en el entorno informatico. Tambien monitoriza la secuencia de eventos para esa operacion.
El controlador 200 se acopla a cada procesador central por medio de diversas interfaces. Por ejemplo, una interfaz 204 es usada por el Codigo Interno Bajo Licencia en un procesador central para enviar ordenes de “control” al controlador, las cuales especifican una accion a llevar a cabo, y para ordenes de “captacion”, que devuelven informacion desde el controlador. Otra de las interfaces es un bus 206 de respuesta, que se usa para devolver informacion desde el controlador para las ordenes de “captacion”. El bus de respuesta se usa, tambien, para comunicar el estado de una orden correspondiente a ordenes de “control”, y se puede fijar de entre una pluralidad de fuentes dentro del controlador, incluyendo los controles de serializacion del sistema. Un procesador central puede usar esta interfaz para captar el estado de los controles de serializacion del sistema en el controlador 200.
Otra de las interfaces es la interfaz 208, la cual es usada por el controlador para enviar ordenes a cada CPU. Esto tambien se puede controlar desde una pluralidad de fuentes dentro del controlador, incluyendo los controles 202 de serializacion del sistema. Todavfa otra de las interfaces es la interfaz 210, la cual proporciona senales a controles 212 de memoria cache del procesador central 201. Los controles 212 de memoria cache procesan ordenes, como respuesta a las senales. En un ejemplo, los controles 212 de memoria cache procesan ordenes que afectan a una o mas memorias intermedias, tales como las Memorias Intermedias de Traduccion Lateral (TLBs) 213, segun se describe de forma mas detallada posteriormente.
Ademas de los controles 212 de memoria cache, el procesador central 201 incluye otros diversos controles, que incluyen, por ejemplo, controles 220 de interrupcion y controles 222 de ejecucion. Como respuesta a eventos particulares, los controles 220 de interrupcion provocan que una interrupcion interna quede pendiente en la CPU, la cual, a su vez, provoca que los controles 222 de ejecucion suspendan el procesado de instrucciones del programa, en el siguiente punto interrumpible. Como respuesta a la interrupcion, los controles 222 de ejecucion invocan una rutina de Codigo Interno bajo Licencia para activar un circuito 224 de retencion de operaciones de difusion permitidas con el fin de posibilitar que los controles 212 de memoria cache procesen ordenes pendientes.
El procesador central 201 incluye tambien un circuito 226 de retencion de Unidades de Procesado Centrales (CPU) en reposo que indica si el procesador central esta o no en reposo. El termino CPU y Procesador se pueden usar de manera intercambiable en la memoria descriptiva.
El entorno informatico antes descrito es solamente un ejemplo. Son posibles muchas variaciones. Por ejemplo, una o mas particiones se pueden ejecutar en modos diferentes de la arquitectura. Ademas, como ejemplo alternativo, no es necesario que el entorno se base en la Arquitectura z/, sino que, en su lugar, se puede basar en otras arquitecturas ofrecidas por Intel, Sun Microsystems, asf como otros. Por otra parte, un entorno puede incluir un emulador (por ejemplo, software u otros mecanismos de emulacion), en el cual se emula una arquitectura particular o un subconjunto de la misma. En un entorno de este tipo, una o mas funciones de emulacion del emulador pueden implementar uno o mas aspectos, aun cuando un ordenador que ejecute el emulador puede tener una arquitectura diferente a las capacidades que se esten emulando. Como ejemplo, en el modo de emulacion, la instruccion u operacion espedfica que se esta emulando se descodifica, y se construye una funcion de emulacion adecuada para implementar la instruccion u operacion individual.
Se describen otros detalles de un entorno de emulacion en referencia a la FIG. 3. Como ejemplo, un ordenador anfitrion 300 tiene la capacidad de emular otras capacidades de arquitectura, de ordenador y/o de procesado correspondientes a otro ordenador. Por ejemplo, el ordenador anfitrion 300 se basa en una arquitectura Intel; una arquitectura RISC, tal como PowerPC, una arquitectura SPARC, ofrecida por Sun Microsystems; u otra arquitectura, y tiene la capacidad de emular la Arquitectura z/ de IBM® u otra arquitectura de IBM® u otra entidad.
El ordenador anfitrion 300 incluye, por ejemplo, una memoria 302 para almacenar instrucciones y datos; una unidad 304 de recuperacion de instrucciones para recuperar instrucciones de la memoria 302, y para, opcionalmente, proporcionar almacenamiento intermedio local para las instrucciones recuperadas; una unidad 306 de descodificacion de instrucciones para recibir instrucciones de la unidad 304 de recuperacion de instrucciones y para determinar el tipo de instrucciones que se han recuperado; y una unidad 308 de ejecucion de instrucciones para ejecutar las instrucciones. La ejecucion puede incluir la carga de datos en un registro desde la memoria 302; el almacenamiento de datos de nuevo en la memoria desde un registro; o la realizacion de algun tipo de operacion aritmetica o logica, segun determine la unidad de descodificacion.
En un ejemplo, cada unidad antes descrita se implementa en software. Por ejemplo, las operaciones que son realizadas por las unidades se implementan en forma de una o mas subrutinas en un software de emulador. En otro ejemplo, una o mas de las operaciones se implementan en microprogramas, hardware, software o alguna combinacion de los mismos.
Ademas, aunque la FIG. 3 se describe en referencia a la emulacion, no es necesario que el entorno de la FIG. 3 sea un entorno de emulacion. En otro ejemplo, se ejecutan instrucciones en un entorno nativo, y las operaciones se implementan en hardware, microprogramas, software o alguna combinacion de los mismos.
Un entorno informatico puede incluir almacenamiento virtual, asf como almacenamiento principal. El almacenamiento virtual puede superar en bastante el tamano del almacenamiento principal disponible en la configuracion y, normalmente, se mantiene en medios de almacenamiento auxiliares. Se considera que el almacenamiento virtual esta compuesto por bloques de direcciones, denominados paginas. Las paginas de almacenamiento virtual a las que se ha remitido mas recientemente se asignan para ocupar bloques de almacenamiento principal ffsico. A medida que un usuario remite a paginas de almacenamiento virtual que no aparecen en el almacenamiento principal, las paginas virtuales son trafdas para sustituir las paginas del almacenamiento principal que es menos probable que sean usadas. El intercambio de paginas en el almacenamiento puede ser llevado a cabo por el sistema operativo sin conocimiento del usuario.
Las direcciones usadas para designar posiciones en el almacenamiento virtual se denominan direcciones virtuales. A un bloque de direcciones virtuales secuenciales que abarca, por ejemplo, hasta 4 kbytes, se le hace referencia como pagina. De manera similar, a un bloque de paginas virtuales secuenciales que abarca, por ejemplo, hasta 1 Mbytes se le hace referencia como segmento; y a un bloque de segmentos virtuales secuenciales que abarca, por ejemplo, hasta 2 Gbytes, se le hace referencia como region. Ademas, a una secuencia de direcciones virtuales asociada a almacenamiento virtual designado por un elemento de control de espacio de direcciones (ASCE) se le denomina espacio de direcciones. Los espacios de direcciones se pueden usar para proporcionar grados de aislamiento entre los usuarios. Un espacio de direcciones puede incluir una o mas regiones, uno o mas segmentos, una o mas paginas, o alguna combinacion de los mismos.
Asociadas a los diferentes tipos de unidades de almacenamiento (por ejemplo, regiones, segmentos, paginas) se encuentran estructuras de datos que se usaran en el procesado asociado a las unidades de almacenamiento. Por ejemplo, asociadas a las regiones se encuentran las tablas de regiones; asociadas a los segmentos se encuentran las tablas de segmentos; y a asociadas a las paginas se encuentran las tablas de paginas. Estas tablas se usan, por ejemplo, durante la traduccion (por ejemplo, Traduccion Dinamica de Direcciones) de una direccion virtual en una direccion real que se usa para acceder al almacenamiento principal. Las tablas a usar en la traduccion, a las que se hace referencia en la presente como tablas de traduccion, son designadas por un elemento de control de espacio de direcciones (ASCE). A una unidad de almacenamiento virtual que no esta asignada en ese momento al almacenamiento principal se le denomina no valida. El estado de invalidez de una unidad de almacenamiento virtual se indica por medio de un indicador de invalidez en la estructura de datos asociada a la unidad.
El mecanismo de traduccion dinamica de direcciones se implementa, en una realizacion, de tal manera que la informacion obtenida de las tablas de traduccion (por ejemplo, tablas de regiones, tablas de segmentos y/o tablas de paginas) a traves del proceso de DAT se mantiene en una o mas memorias intermedias situadas dentro de los procesadores, a las que se hace referencia, en la presente, como Memorias Intermedias de Traduccion Literal, con el fin de mejorar el rendimiento de la traduccion de direcciones. Es decir, durante la traduccion, las memorias intermedias se comprueban en relacion con la informacion requerida, y a continuacion, si la informacion no esta en las memorias intermedias, se accede a una o mas de las tablas de traduccion.
En el modo de emulacion, la instruccion espedfica que se esta emulando se descodifica, y se construye una subrutina para implementar la instruccion individual, como en una subrutina o controlador de C, o se usa alguna otra tecnica para proporcionar un controlador para el hardware espedfico, segun se situe dentro de las habilidades de aquellos versados en la materia despues de entender la descripcion de una realizacion.
COMPARE AND REPLACE DAT TABLE ENTRY (CRDTE)
Se describe una instruccion de CPU (COMPARE AND REPLACE DAT TABLE ENTRY) que puede sustituir una entrada valida de una tabla DAT con una entrada nueva, y purgar la TLB de cualquier copia de (al menos) la entrada individual en todas las CPUs de la configuracion. Esta instruccion no requiere que se suspenda ninguna tarea activa, y no puede purgar mas entradas que las necesarias.
Cuando se ejecuta la instruccion CRDTE, la eliminacion selectiva de entrada se puede implementar de diferentes maneras, en funcion del modelo, y, en general, se pueden eliminar mas entradas que el numero mmimo requerido. Algunos modelos pueden eliminar todas las entradas que contienen las direcciones reales de trama de pagina obtenidas a partir de las entradas de tabla de paginas en los medios de almacenamiento.
Si el programa de control necesita sustituir una entrada valida en una tabla DAT (es decir, una entrada de tabla que esta potencialmente en uso por parte de otras CPUs), puede llevar a cabo una de las siguientes operaciones:
• Suspender la ejecucion de todas las tareas que pueden usar esta entrada de la tabla DAT en todas las CPUs en la configuracion, invalidar y purgar la entrada en todas las CPUs (por ejemplo, usando la IPTE), sustituir la entrada invalidada con una entrada nueva, y volver a despachar las tareas suspendidas.
• Sustituir la entrada de la tabla DAT y purgar la TLB completa en todas las CPUs en la configuracion (por ejemplo, utilizando CSPG).
La primera opcion es compleja, ya que requiere aparcar el despacho de las tareas y volver a despacharlas. La segunda opcion es suboptima por cuanto requiere el purgado de la TLB completa, aun cuando solamente se este cambiando una entrada.
En una realizacion, un procesador de un ordenador obtiene una instruccion para su procesado. Sobre la base del codigo de operacion, la maquina procesa la instruccion Comparacion y Sustitucion de Entrada de Tabla DAT (CRDTE). La instruccion CRDTE tiene el siguiente formato:
Codigo de operacion R3 M4 Ri R2
Los campos R1 y R2 designan, cada uno de ellos, una pareja de registros generales par-impar y deben designar un registro de numeracion par; de lo contrario, se reconoce una excepcion de especificacion. El registro general R1 (el registro par de la pareja) contiene el primer operando. Al primer operando se le puede denominar valor de comparacion. Al registro general Ri 1 (el registro impar de la pareja) se le puede denominar valor de sustitucion. En la ejecucion de la instruccion, se comparan el primer y un segundo operandos. El primer operando esta situado en el registro general Ri. El segundo operando es a designada por los registros generales R2 y R2 1. R2 y R2 1 contienen informacion de direccionamiento tal como tipo de tabla designada (DTT), e mdice efectivo en la tabla para localizar el segundo operando.
Una vez que se han obtenido el primer y el segundo operandos, los mismos a continuacion se comparan, y si son iguales, el contenido del registro general Ri 1 se almacena en la posicion del segundo operando, y en la CPU o CPUs especificadas en la configuracion se eliminan (1) todas las entradas de tabla TLB del tipo designado formadas a traves del uso de la entrada sustituida en los medios de almacenamiento, y (2) todas las entradas de tabla de TLB de nivel inferior formadas a traves del uso de las entradas de tabla de TLB de nivel superior eliminadas. Las entradas de TLB eliminadas se pueden limitar opcionalmente a entradas formadas para traducir direcciones en un espacio de direcciones especificado. El codigo de condicion resultante se fija a 0.
Si el primer y el segundo operandos no son iguales, el segundo operando se carga en la posicion del primer operando y el codigo de condicion resultante se fija a 1.
El campo M4 puede determinar si se borran las TLBs de todas las CPUs en una configuracion o solamente la TLB de la CPU que ejecuta la instruccion.
La Figura 4 presenta un diagrama de una realizacion.
En una de las realizaciones, un procesador de un ordenador obtiene una instruccion CRDTE 0401 para su procesado. Sobre la base del codigo de operacion, la maquina procesa la instruccion Comparacion y Sustitucion de Entrada de Tabla DAT.
Los campos R1 y R2 designan, cada uno de ellos, una pareja de registros generales par-impar 0405 y deben designar un registro de numeracion par; de lo contrario, se reconoce una excepcion de especificacion. El registro general R1 (el registro par de la pareja) 0410 contiene el primer operando en las posiciones de bits 0 a 63. Al primer operando se le puede denominar valor de comparacion. A las posiciones de bit 0 a 63 del registro general R1 1 (el registro impar de la pareja) 0411 se les puede denominar valor de sustitucion.
En la ejecucion de la instruccion, se comparan el primer y un segundo operando. El primer operando esta situado en el registro general R10410. El segundo operando es una palabra doble en los medios de almacenamiento designada por los registros generales R20420 y R2 10421. Los bits 59 a 61 del registro general R2 son el tipo de tabla designada (DTT), que especifican los bits del registro general R2 que forman el origen de una tabla 0430 en los medios de almacenamiento 0440; el DTT especifica tambien los bits del registro general R2 1 que se usan como mdice efectivo en la tabla para localizar el segundo operando 0435.
Una vez que se han comparado el primer y el segundo operandos 0436, si los mismos son iguales, el contenido del registro general R1 1 se almacena en la posicion del segundo operando 0445, y tal como se muestra en 0450, en la CPU o CPUs especificadas de la configuracion se eliminan (1) todas las entradas de tabla de TLB del tipo designado formadas a traves del uso de la entrada sustituida en los medios de almacenamiento, y (2) todas las entradas de tabla de TLB de nivel inferior formadas a traves del uso de las entradas de tabla de TLB de nivel superior eliminadas. Las entradas de TLB eliminadas se pueden limitar opcionalmente a entradas formadas para traducir direcciones en un espacio de direcciones especificado. El codigo de condicion resultante se fija a 0 tal como se muestra en 0455.
Si el primer y el segundo operandos son desiguales, el segundo operando se carga en la posicion del primer operando 0460. El codigo de condicion resultante se fija a 1 tal como se muestra en 0465.
La instruccion 0401 puede utilizar el campo M40402 para determinar si se borran selectivamente las TLBs de todas las CPUs en una configuracion 1570 o solamente la TLB de la CPU que ejecuta la instruccion 1575. El campo M4 contiene un control de Eliminacion Local (LC). Si el control LC en el campo M4 es cero, se veran afectadas las TLBs de todas las CPUs en la configuracion. Si el campo de control LC en el campo M4 es uno, puede verse afectada solamente la TLB asociada a la CPU que ejecuta la instruccion Comparacion y Sustitucion de Entrada de Tabla DAT. Las TLBs en la totalidad del resto de CPUs en la configuracion no pueden verse afectadas.
Nota: la expresion “CPU o CPUs especificadas” tiene el siguiente significado en relacion con el ambito de las TLBs afectadas por esta instruccion:
Cuando el control de eliminacion local (LC) en el campo M4 es cero, la expresion “CPU o CPUs especificadas” significa todas las CPUs de la configuracion.
Cuando el control LC en el campo M4 es uno, la expresion “CPU o CPUs especificadas” significa solamente la CPU que ejecuta la instruccion COMPARE AND REPLACE DAT TABLE ENTRY (la CPU local). Las TLBs de la totalidad del resto de CPUs de la configuracion no pueden verse afectadas.
• Se comparan el primer y el segundo operandos. Si son iguales, el contenido del registro general Ri 1 se almacena en la posicion del segundo operando, y, en la CPU o CPUs especificadas en la configuracion, se eliminan (1) todas las entradas de tabla de TLB del tipo designado formado a traves del uso de la entrada sustituida en los medios de almacenamiento, y (2) todas las entradas de tabla de TLB de nivel inferior formadas a traves del uso de las entradas de tabla de TLB de nivel superior eliminadas. Las entradas de TLB eliminadas se pueden limitar, opcionalmente, a entradas formadas para traducir direcciones en un espacio de direcciones especificado.
• Si el primer y el segundo operandos son desiguales, el segundo operando se carga en la posicion del primer operando. No obstante, en algunos modelos, el segundo operando se puede recuperar y, posteriormente, se puede almacenar de nuevo sin cambiarlo en la posicion del segundo operando. Esta actualizacion parece ser una referencia de actualizacion interconectada, simultanea a nivel de bloque, segun es observada por otras CPUs. El resultado de la comparacion viene indicado por el codigo de condicion.
Los campos Ri y R2 designan, cada uno de ellos, una pareja de registros generales par-impar y deben designar un registro de numeracion par; de lo contrario, se reconoce una excepcion de especificacion. A continuacion, con respecto a la Fig. 5, al primer operando se le denomina valor de comparacion 0501 y esta contenido en las posiciones de bit 0 a 63 del registro general Ri. A las posiciones de bit 0 a 63 del registro general Ri 1 se les denomina valor de sustitucion 0510.
El segundo operando es una palabra doble en los medios de almacenamiento designada por los registros generales R2 y R2 10540. Los bits 59 a 61 del registro general R2 son el tipo de tabla designada (DTT), que especifican los bits del registro general R2 que forman el origen de una tabla en los medios de almacenamiento; el DTT especifica tambien los bits del registro general R2 10540 que se usan como mdice efectivo en la tabla para localizar el segundo operando, de la manera siguiente:
Figure imgf000024_0001
Cuando el DTT es 000 binario tal como se muestra en 0520, el contenido de las posiciones de bit 0 a 52 del registro general R2, con once ceros anadidos a la derecha, 0521, forma el origen de tabla, y los bits 53 a 58 en 0522, 62 en 0523, y 63 en 0524 del registro se ignoran. Cuando el DTT es 100-111 binario tal como se muestra en 0530, el contenido de las posiciones de bit 0 a 51 del registro general R2, con doce ceros anadidos a la derecha, 0531 forma el origen de tabla, y los bits 52 a 58 en 0532, 62 en 0533, y 63 en 0534 del registro se ignoran. Los valores de DTT de 001, 010 y 011 binario son no validos; si el DTT es no valido se reconoce una excepcion de especificacion.
Los bits 0 a 51 del registro general R2 10540 tienen el formato del mdice de region, el mdice de segmento y el mdice de pagina de una direccion virtual. A la parte de los bits 0 a 51 en 0541 normalmente usada por la DAT para seleccionar una entrada en el tiempo de tabla designada por el DTT se le denomina mdice efectivo. La parte de los bits 0 a 51 del registro general R2 1 a la derecha del mdice efectivo se ignora. Las posiciones de bit 52 a 63 del registro general R2 1, 0542, se reservan y deben contener ceros; de lo contrario, se reconoce una excepcion de especificacion.
Si R30550 es diferente de cero, el contenido del registro general R3 tiene el formato de un elemento de control de espacio de direcciones, usandose solamente el origen de tabla, bits 0 a 51 en 0551, y el control de tipo de designacion (DT), bits 60 y 61 en 0553. Estos se usan para seleccionar entradas de TLB a eliminar. Los bits 52 a 59 en 0552, 62 en 0554, y 63 en 0555 del registro general R3 se ignoran. Si R3 es cero, se ignora el contenido completo del registro general 0, y las entradas de TLB se eliminan con independencia del ASCE usado para formarlas.
En la Fig. 6 se muestra el campo M4.
Los bits del campo M4 se definen de la manera siguiente:
Reservados: los bits 0 a 2 tal como se muestra en 0601 estan reservados. Las posiciones de bits reservados del campo M4 se ignoran pero debenan contener ceros; de lo contrario, el programa puede que no funcione de forma compatible en el futuro.
Control de Eliminacion Local (LC):
El bit LC, bit 3 del campo M40602, controla si se borra solamente la TLB de la CPU local, o si se borran las TLBs de todas las CPUs de la configuracion.
Cuando el primer y el segundo operandos son iguales, el contenido del registro general R1 1 se almacena en la posicion del segundo operando, y, en las memorias intermedias de traduccion lateral (TLBs) de las CPUs especificadas de la configuracion, se eliminan (1) todas las entradas de tabla de TLB del tipo designado formadas a traves del uso del contenido original del segundo operando en los medios de almacenamiento (es decir, el contenido del segundo operando antes de que el mismo se sustituya con el valor de sustitucion), y (2) todas las entradas de tabla de TLB de nivel inferior formadas a traves del uso de las entradas de tabla de TLB de nivel superior eliminadas. Las entradas de TLB eliminadas se pueden limitar, opcionalmente, a entradas formadas para traducir direcciones en un espacio de direcciones especificado.
En funcion del tipo de tabla, el origen de tabla en el registro general R2 y el mdice efectivo en el registro general R2 1 designan una entrada de tabla, excepto que se ignora siempre el arrastre de posicion de bits cero de la direccion resultante, y el mdice no se comprueba con respecto a un campo de longitud de tabla. El origen de tabla se trata como una direccion de 64 bits, y la suma se lleva a cabo usando las reglas correspondientes a la aritmetica de direcciones de 64 bits, con independencia del modo de direccionamiento en curso especificado por los bits 31 y 32 de la PSW en curso. La direccion formada a partir de estos dos componentes es una direccion real o absoluta. El contenido de la entrada de la tabla no se examina en relacion con su validez, y no se reconoce ninguna condicion de excepcion debido al contenido de la entrada de la tabla.
La recuperacion y el almacenamiento de la entrada de la tabla se llevan a cabo en forma de una actualizacion interconectada, simultanea a nivel de bloque. El acceso de recuperacion a la entrada esta sujeto a una proteccion controlada por clave, y el acceso de almacenamiento esta sujeto a una proteccion controlada por clave y una proteccion de direcciones bajas.
Se lleva a cabo una funcion de serializacion antes de que la operacion comience y, nuevamente, despues de que se haya completado la operacion. Tal como se cumple para todas las operaciones de serializacion, esta serializacion se aplica solamente a esta CPU; otras CPUs no se serializan necesariamente.
Cuando el primer y el segundo operandos son iguales, esta CPU elimina entradas seleccionadas de su TLB. Ademas del borrado de la CPU local, si el bit LC en el campo M4 es cero, la totalidad del resto de CPUs en la configuracion se senalizan de manera que eliminen entradas seleccionadas de sus TLBs. En cada TLB se eliminan al menos aquellas entradas para las cuales se cumple la totalidad de las siguientes condiciones:
- El mdice efectivo en el registro general R2 1 coincide con el mdice correspondiente en la entrada de tabla de TLB del tipo designado por el campo DTT en los bits 59 a 61 del registro general R2. Si el modelo implementa una entrada de TLB compuesta que incluye el mdice designado por el campo DTT, los bits a la izquierda del mdice efectivo en el registro general R2 1 coinciden tambien con cualesquiera bits correspondientes proporcionados en la entrada de tabla de TLB designada.
- O bien el campo R3 es cero, o bien los campos de origen de tabla y de tipo de designacion en el registro general R3 coinciden con los campos de origen de tabla y de tipo de designacion en el elemento de control de espacio de direcciones (ASCE) usado para formar la entrada de tabla de TLB.
- Si el campo R3 es cero, entonces la condicion descrita en esta etapa no se aplica.
- Si se aplica EDAT-1 y la entrada sustituida en los medios de almacenamiento es una entrada de tabla de segmentos, o si se aplica EDAT-2 y la entrada sustituida en los medios de almacenamiento es una entrada de tercera tabla de regiones, el formato de control en la entrada sustituida coincide con el correspondiente de la entrada de TLB.
- Si la entrada sustituida en los medios de almacenamiento designa una tabla de traduccion de nivel inferior, el origen de la tabla de nivel inferior en la entrada coincide con el campo de origen de tabla de la entrada de la tabla de TLB.
- Si se aplica EDAT-1 y la entrada sustituida en los medios de almacenamiento es una entrada de tabla de segmentos en la que el control de formato es uno, o si se aplica EDAT-2 y la entrada sustituida en los medios de almacenamiento es una entrada de tercera tabla de regiones en la cual el control de formato es uno, la direccion absoluta de trama de segmento o la direccion absoluta de trama de region, respectivamente, en la entrada sustituida coincide con la de la entrada de TLB.
En cada TLB afectada se eliminan tambien por lo menos cualesquiera entradas de tabla de TLB de nivel inferior para las cuales se cumplan todas las siguientes condiciones:
- La entrada de la tabla de TLB de nivel inferior se formo a traves del uso de la entrada sustituida en los medios de almacenamiento o a traves del uso de una entrada de tabla de TLB de nivel superior formada a traves del uso o bien de la entrada sustituida en los medios de almacenamiento o bien de una entrada de TLB eliminada en este proceso.
- O bien el campo R3 es cero o bien los campos de origen de tabla y de tipo de designacion del registro general R3 coinciden con los campos de origen de tabla y de tipo de designacion del elemento de control de espacio de direcciones (ASCE) usado para formar la entrada de tabla de TLB de nivel inferior. Este ASCE puede ser uno que vinculase una ruta de traduccion que contema una entrada de tabla de nivel superior que vinculaba la entrada de tabla de nivel inferior de los medios de almacenamiento a partir de la cual se formo la entrada de tabla de TLB de nivel inferior, o puede ser uno que hizo que resultase utilizable una entrada de tabla de TLB de nivel superior que vinculaba la entrada de tabla de nivel inferior de los medios de almacenamiento a partir de la cual se formo la entrada de tabla de TLB de nivel inferior.
Si el campo R3 es cero, entonces la condicion descrita en esta etapa no se aplica.
- Si EDAT-1 se aplica y la entrada sustituida en los medios de almacenamiento es una entrada de tabla de segmentos, o si se aplica EDAT-2 y la entrada sustituida en los medios de almacenamiento es una entrada de tercera tabla de regiones, el control de formato en la entrada sustituida coincide con el de la entrada de TLB.
Si la entrada en los medios de almacenamiento designa una tabla de traduccion de nivel inferior, el origen de tabla de nivel inferior en la entrada coincide con el campo de origen de tabla de la entrada de tabla de TLB.
Cuando el primer y el segundo operandos son iguales, la ejecucion de COMPARE AND REPLACE DAT TABLE ENTRY no se completa en la CPU que la ejecuta hasta que se produce lo siguiente:
1. Todas las entradas que cumplen los criterios especificados anteriormente se han eliminado de la TLB de esta CPU. Cuando el control LC en el campo M4 es uno, la ejecucion de COMPARE AND REPLACE DAT TABLE ENTRY se ha completado, y no se lleva a cabo la siguiente etapa.
2. Cuando el control LC en el campo M4 es cero, la totalidad del resto de CPUs de la configuracion ha completado todos los accesos de almacenamiento, incluyendo la actualizacion de los bits de cambio y de referencia. La operacion no tiene necesariamente ningun efecto sobre entradas de espacio real de TLB.
Condiciones especiales
Se reconoce una excepcion de especificacion, y se suprime la operacion si se cumple cualquiera de los siguientes puntos:
El campo o bien R1 o bien R2 es impar.
Los campos de DTT, posiciones de bit 59 a 61 del registro general R2, contienen 001, 010, o 011 binario.
Las posiciones de bit 52 a 63 del registro general R2 1 contienen valores diferentes de cero.
La operacion se suprime en todas las excepciones de direccionamiento y de proteccion.
Codigo de condicion resultante:
0 -- El primer y el segundo operandos son iguales, segundo operando sustituido por el contenido del registro general R1 1
1 -- El primer y el segundo operandos son desiguales, primer operando sustituido por el segundo operando
2 -­
3 -- Excepciones de programa:
Direccionamiento
• Operacion (si el mecanismo de DAT mejorada 2 no esta instalado)
• Operacion privilegiada
• Proteccion (recuperacion y almacenamiento, entrada de tabla de regiones, de segmentos o de paginas, proteccion controlada por clave y proteccion de direcciones bajas)
• Especificacion
Notas de programacion:
1. La eliminacion selectiva de entradas de TLB se puede implementar de diferentes maneras, en funcion del modelo, y, en general, se pueden eliminar mas entradas que el numero mmimo requerido.
2. Cuando se eliminan entradas de TLB asociadas a segmentos comunes, observese que estas entradas pueden haberse formado a traves del uso de elementos de control de espacio de direcciones que contienen muchos ongenes de tabla diferentes.
3. El campo M4 de la instruccion se considera que es opcional, segun indique el campo que esta contenido entre corchetes [ ] en la sintaxis del ensamblador. Cuando no se especifica el campo M4, el ensamblador coloca ceros en ese campo de la instruccion.
4. El control de eliminacion local debena especificarse como uno solamente cuando se cumple uno de los dos puntos siguientes; de lo contrario, pueden producirse resultados impredecibles, incluyendo la presentacion de una comprobacion de la maquina en relacion con excepciones de acceso retardadas.
• El programa se esta ejecutando en una configuracion uniprocesador.
• El programa se asigna para ejecutarse en una sola CPU y se mantiene la afinidad entre el programa y esa CPU.
En algunos modelos, el uso de COMPARE AND REPLACE DAT TABLE ENTRY especificando la eliminacion de solamente la TLB local para los casos enumerados anteriormente puede dar como resultado mejoras significativas del rendimiento.
Son posibles muchas variaciones en el entorno anterior. Por ejemplo, uno o mas aspectos son igualmente aplicables a, por ejemplo, una emulacion de maquina virtual, en la cual una o mas entidades paginables (por ejemplo, invitados) se ejecutan en uno o mas procesadores. Como ejemplo, los invitados paginables quedan definidos por la arquitectura de Ejecucion Interpretativa de Inicio (SIE).
Aunque anteriormente se han mencionado la SIE y la Arquitectura z/, uno o mas aspectos son igualmente aplicables a otras arquitecturas y/o entornos que utilicen entidades paginables o constructos similares.
Por otra parte, las diversas realizaciones antes descritas son simplemente ejemplos. Por ejemplo, aunque en la presente se describe un entorno dividido en particiones logicas, esto es solamente un ejemplo. Los aspectos son beneficiosos para muchos tipos de entornos, incluyendo otros entornos que tengan una pluralidad de zonas, y entornos no divididos en particiones. Ademas, puede que no haya ningun complejo de procesador central, sino, por el contrario, multiples procesadores acoplados entre sf. Todavfa adicionalmente, uno o mas aspectos son aplicables a entornos de un solo procesador.
Aunque, en la presente, se describen entornos particulares, nuevamente, en estos entornos pueden implementarse muchas variaciones. Por ejemplo, si el entorno esta dividido en particiones logicas, entonces, en dicho entorno, se puede incluir un numero mayor o menor de particiones logicas. Ademas, puede haber multiples complejos de procesado centrales acoplados entre sf. Estas son solamente algunas de las variaciones que pueden realizarse. Adicionalmente, son posibles otras variaciones. Ademas, el entorno puede incluir multiples controladores. Todavfa adicionalmente, multiples solicitudes de reposo (de uno o mas controladores) pueden estar pendientes al mismo tiempo en el sistema. Son tambien posibles variaciones adicionales.
Tal como se usa en la presente, la expresion “unidad de procesado” incluye entidades paginables, tales como invitados; procesadores; emuladores; y/u otros componentes similares. Por otra parte, la expresion “por una unidad de procesado” incluye en nombre de una unidad de procesado. La expresion “memoria intermedia” incluye un area de almacenamiento, asf como diferentes tipos de estructuras de datos, incluyendo, aunque sin caracter limitativo, matrices; y el termino “tabla” puede incluir estructuras de datos que no sean del tipo tabla. Ademas, la instruccion puede incluir elementos diferentes de registros para designar informacion. Por otra parte, una pagina, un segmento y/o una region pueden ser de tamanos diferentes a los descritos en la presente.
Una o mas de las capacidades se puede implementar en software, microprogramas, hardware, o alguna combinacion de los mismos. Ademas, una o mas de las capacidades se puede emular.
Uno o mas aspectos se pueden incluir en un artfculo de fabricacion (por ejemplo, uno o mas productos de programa de ordenador) que tengan, por ejemplo, soportes utilizables por ordenador. Los soportes tienen incorporados en los mismos, por ejemplo, medios de codigo de programa o modulos logicos legibles por ordenador (por ejemplo, instrucciones, codigo, ordenes, etcetera) para proporcionar y facilitar capacidades. El artfculo de fabricacion se puede incluir como parte de un sistema de ordenador o se puede vender por separado.
Adicionalmente, se puede proporcionar por lo menos un dispositivo de almacenamiento de programa legible por una maquina y que incorpore por lo menos un programa de instrucciones ejecutable por la maquina para materializar las capacidades.
Los diagramas de flujo representados en la presente son meramente ejemplos. Puede haber muchas variaciones para estos diagramas o las etapas (u operaciones) descritas en la presente. Por ejemplo, las etapas se pueden llevar a cabo en un orden diferente, o pueden adicionarse, eliminarse o modificarse etapas.
Aunque, en la presente, se han representado y descrito de forma detallada realizaciones preferidas, se pondra de manifiesto para aquellos versados en la tecnica pertinente que pueden realizarse diversas modificaciones, adiciones, sustituciones y similares, y, por lo tanto, se considera que las mismas se situan dentro del alcance que se define en las siguientes reivindicaciones.
En otra realizacion, es utilizable un sistema de procesado de datos adecuado para almacenar y/o ejecutar codigo de programa y que incluye por lo menos un procesador acoplado directa o indirectamente a elementos de memoria a traves de un bus de sistema. Los elementos de memoria incluyen, por ejemplo, memoria local utilizada durante la ejecucion concreta del codigo de programa, medios de almacenamiento masivos, y memoria cache que proporcionan almacenamiento temporal de al menos cierto codigo de programa con el fin de reducir el numero de veces que debe recuperarse codigo de los medios de almacenamiento masivos durante la ejecucion.
Dispositivos de Entrada/Salida o I/O (incluyendo, aunque sin caracter limitativo, teclados, pantallas, dispositivos senaladores, DASD, cinta, CDs, DVDs, memorias USB y otros soportes de memoria, etcetera) se pueden acoplar al sistema o bien directamente o bien a traves de controladores de I/O intermedios. Al sistema tambien se pueden acoplar adaptadores de red para permitir que el sistema de procesado de datos llegue a acoplarse a otros sistemas de procesado de datos o impresoras o dispositivos de almacenamiento remotos a traves de redes privadas o publicas intermedias. Los modems, los modems de cable, y las tarjetas de Ethernet son solamente algunos de los tipos disponibles de adaptadores de red.
Uno o mas aspectos se pueden incluir en un artfculo de fabricacion (por ejemplo, uno o mas productos de programa de ordenador) que tenga, por ejemplo, soportes utilizables por ordenador. Los soportes tienen incorporados, por ejemplo, medios de codigo de programa o modulos logicos legibles por ordenador (por ejemplo, instrucciones, codigo, ordenes, etcetera) para proporcionar y facilitar las capacidades. El artfculo de fabricacion se puede incluir como parte de un sistema (por ejemplo, sistema de ordenador) o se puede vender por separado.
Se describe, en referencia a la FIG. 7, un ejemplo de un artfculo de fabricacion o un producto de programa de ordenador que incorpora uno o mas aspectos. Un producto 0700 de programa de ordenador incluye, por ejemplo, uno o mas soportes utilizables 0702 por ordenador para almacenar medios de codigo de programa o modulos logicos legibles 0704 por ordenador con el fin de proporcionar y facilitar uno o mas aspectos. El soporte puede ser un sistema (o aparato o dispositivo) electronico, magnetico, optico, electromagnetico, de infrarrojos o de semiconductores o un medio de propagacion. Los ejemplos de soporte legible por ordenador incluyen una memoria de semiconductores o de estado solido, cinta magnetica, un disquete de ordenador extrafble, una memoria de acceso aleatorio (RAM), una memoria de solo lectura (ROM), un disco magnetico ngido y un disco optico. Los ejemplos de discos opticos incluyen memoria de solo lectura en forma de disco compacto (CD-ROM), disco compacto regrabable (CD-R/W) y DVD. Una secuencia de instrucciones de programa o un conjunto logico de uno o mas modulos interrelacionados definidos por uno o mas medios de codigo de programa o modulos logicos legibles por ordenador dirigen el comportamiento de uno o mas aspectos.

Claims (8)

REIVINDICACIONES
1. Metodo para gestionar una tabla de traduccion dinamica de direcciones DAT, caracterizado por que el metodo comprende las etapas de:
determinar, por parte de un procesador, a partir de un codigo de operacion de una instruccion ejecutable (401) por maquina que va a ser ejecutada, que la instruccion es una instruccion de comparacion y sustitucion de entrada de tabla DAT, la cual se usa para sustituir una entrada de tabla DAT valida por una entrada nueva, comprendiendo la instruccion un campo Ri y un campo R2, designando cada uno de los campos R1 y R2 una pareja de registros generales par-impar Ri y Ri 1 y R2 y R2+I, y deben designar un registro de numeracion par, en donde el registro general R1 es el registro par de la pareja y contiene un primer operando denominado valor de comparacion, el registro general Ri 1 es el registro impar de la pareja y contiene un valor de sustitucion, y en donde los registros generales R2 y R2+I contienen informacion de direccionamiento tal como tipo de tabla designada (DTT) e mdice efectivo en una tabla para localizar un segundo operando original de una posicion de memoria de segundo operando; y
ejecutar, por parte del procesador, la instruccion que comprende:
comparar (436) el primer operando y el segundo operando original;
sobre la base de que el primer operando sea igual al segundo operando original, almacenar (445) el valor de sustitucion en la posicion de memoria del segundo operando como nuevo segundo operando; y
eliminar selectivamente (450) todas las entradas de Memorias Intermedias de Traduccion Lateral (TLB) locales correspondientes a entradas formadas a partir de la DAT usando entradas de tabla de traduccion sobre la base de una entrada de tabla de traduccion designada por un valor del segundo operando original.
2. Metodo de la reivindicacion 1, que comprende almacenar el segundo operando original en el registro Ri par sobre la base de que el primer operando no sea igual al segundo operando original.
3. Metodo de la reivindicacion 1, en el que una entrada de tabla de traduccion eliminada selectivamente se corresponde con entradas de tabla de traduccion de nivel inferior asociadas al segundo operando original.
4. Metodo segun la reivindicacion 1, que comprende, ademas:
sobre la base de que un primer operando sea igual al segundo operando original, fijar un primer valor de codigo de condicion; y
sobre la base de que un primer operando no sea igual al segundo operando original, fijar un segundo valor de codigo de condicion.
5. Metodo de la reivindicacion 1, en el que las entradas de TLB eliminadas se limitan a entradas formadas para traducir direcciones en un espacio de direcciones especificado por la instruccion.
6. Metodo de la reivindicacion 1, que comprende ademas:
sobre la base de un campo de mascara de la instruccion que tenga un primer valor, borrar selectivamente solo una TLB del procesador que ejecuta la instruccion de una pluralidad de procesadores de una configuracion; y sobre la base de que un campo de mascara de la instruccion tenga un segundo valor, borrar selectivamente la TLB de una pluralidad de procesadores de la configuracion.
7. Sistema que comprende medios adaptados para llevar a cabo todas las etapas del metodo de acuerdo con cualquier reivindicacion de metodo anterior.
8. Programa de ordenador que comprende instrucciones para llevar a cabo todas las etapas del metodo de acuerdo con cualquier reivindicacion de metodo anterior, cuando dicho programa de ordenador se ejecuta en un sistema de ordenador.
ES12879101T 2012-06-15 2012-11-26 Comparación y sustitución de una entrada de tabla DAT Active ES2708331T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/524,468 US20130339656A1 (en) 2012-06-15 2012-06-15 Compare and Replace DAT Table Entry
PCT/IB2012/056736 WO2013186606A2 (en) 2012-06-15 2012-11-26 Compare and replace dat table entry

Publications (1)

Publication Number Publication Date
ES2708331T3 true ES2708331T3 (es) 2019-04-09

Family

ID=49757047

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12879101T Active ES2708331T3 (es) 2012-06-15 2012-11-26 Comparación y sustitución de una entrada de tabla DAT

Country Status (23)

Country Link
US (1) US20130339656A1 (es)
EP (1) EP2862089B1 (es)
JP (1) JP6202543B2 (es)
KR (1) KR101572409B1 (es)
CN (1) CN104903873B (es)
AU (1) AU2012382781B2 (es)
BR (1) BR112014031436B1 (es)
CA (1) CA2874186C (es)
DK (1) DK2862089T3 (es)
ES (1) ES2708331T3 (es)
HK (1) HK1210846A1 (es)
HR (1) HRP20190166T1 (es)
IL (1) IL236248A0 (es)
LT (1) LT2862089T (es)
MX (1) MX347759B (es)
PL (1) PL2862089T3 (es)
PT (1) PT2862089T (es)
RU (1) RU2550558C2 (es)
SG (1) SG11201407485RA (es)
SI (1) SI2862089T1 (es)
TW (1) TWI622880B (es)
WO (1) WO2013186606A2 (es)
ZA (1) ZA201408136B (es)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US9501425B2 (en) * 2014-11-14 2016-11-22 Cavium, Inc. Translation lookaside buffer management
US9684606B2 (en) * 2014-11-14 2017-06-20 Cavium, Inc. Translation lookaside buffer invalidation suppression
US9697137B2 (en) * 2014-11-14 2017-07-04 Cavium, Inc. Filtering translation lookaside buffer invalidations
RU2632416C2 (ru) * 2015-05-14 2017-10-04 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) передачи объекта от первого процесса на второй процесс, машиночитаемый носитель (варианты) и система обработки данных
US10210323B2 (en) * 2016-05-06 2019-02-19 The Boeing Company Information assurance system for secure program execution
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10162764B2 (en) 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US20180018283A1 (en) * 2016-07-18 2018-01-18 International Business Machines Corporation Selective purging of guest entries of structures associated with address translation
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US9798597B1 (en) 2016-09-26 2017-10-24 International Business Machines Corporation Verifying selective purging of entries from translation look-aside buffers
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10901911B2 (en) 2018-11-21 2021-01-26 Microsoft Technology Licensing, Llc Faster computer memory access by reducing SLAT fragmentation
US10977183B2 (en) 2018-12-11 2021-04-13 International Business Machines Corporation Processing a sequence of translation entry invalidation requests with regard to draining a processor core
US10740239B2 (en) 2018-12-11 2020-08-11 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10817434B2 (en) 2018-12-19 2020-10-27 International Business Machines Corporation Interruptible translation entry invalidation in a multithreaded data processing system
WO2021085790A1 (ko) 2019-10-30 2021-05-06 박재범 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자
CA3156094C (en) 2019-10-30 2022-09-20 Tround Inc. Chair member provided with multi-channel sound system and chair comprising same
KR102333695B1 (ko) 2020-01-10 2021-12-02 박재범 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자
KR102359742B1 (ko) 2020-05-15 2022-02-08 박재범 다채널 사운드 시스템이 구비된 의자
KR102378865B1 (ko) 2020-06-16 2022-03-25 박재범 다채널 사운드 시스템 구현을 위한 의자용 부재 및 이를 포함하는 의자
KR102381959B1 (ko) 2020-07-06 2022-04-01 박재범 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자
KR102357554B1 (ko) 2020-08-12 2022-02-07 박재범 다채널 사운드 시스템이 구비된 의자
KR102406224B1 (ko) 2020-09-02 2022-06-08 박재범 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자
KR102352425B1 (ko) 2020-08-21 2022-01-18 박재범 다채널 사운드 시스템이 구비된 의자
KR102426565B1 (ko) 2020-08-28 2022-07-29 박재범 무선 스피커 의자
US11593275B2 (en) 2021-06-01 2023-02-28 International Business Machines Corporation Operating system deactivation of storage block write protection absent quiescing of processors
US12013791B2 (en) * 2021-06-01 2024-06-18 International Business Machines Corporation Reset dynamic address translation protection instruction
KR102630387B1 (ko) 2021-08-19 2024-01-29 박재범 다채널 사운드 시스템이 구비된 의자
US12020059B2 (en) * 2021-08-30 2024-06-25 International Business Machines Corporation Inaccessible prefix pages during virtual machine execution

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3619613A1 (de) * 1985-09-02 1987-03-05 Erfurt Electronic Pc-steuerwerk mit einem programmspeicher und einem abbildspeicher
TW343318B (en) * 1996-09-23 1998-10-21 Advanced Risc Mach Ltd Register addressing in a data processing apparatus
EP1261912A2 (en) * 2000-03-08 2002-12-04 Sun Microsystems, Inc. Processing architecture having sub-word shuffling and opcode modification
US6560687B1 (en) * 2000-10-02 2003-05-06 International Business Machines Corporation Method of implementing a translation lookaside buffer with support for a real space control
US7284100B2 (en) * 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
GB2402763B (en) * 2003-06-13 2006-03-01 Advanced Risc Mach Ltd Data access program instruction encoding
RU2433456C2 (ru) * 2006-04-19 2011-11-10 Квэлкомм Инкорпорейтед Виртуально маркированный кэш команд с поведением физически маркированного
US7624237B2 (en) * 2006-05-03 2009-11-24 International Business Machines Corporation Compare, swap and store facility with no external serialization
US20090182988A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Compare Relative Long Facility and Instructions Therefore
WO2010043401A2 (en) * 2008-10-15 2010-04-22 Martin Vorbach Data processing device
US20110314263A1 (en) * 2010-06-22 2011-12-22 International Business Machines Corporation Instructions for performing an operation on two operands and subsequently storing an original value of operand
US8914619B2 (en) * 2010-06-22 2014-12-16 International Business Machines Corporation High-word facility for extending the number of general purpose registers available to instructions

Also Published As

Publication number Publication date
DK2862089T3 (en) 2019-02-25
PL2862089T3 (pl) 2019-04-30
JP2015527632A (ja) 2015-09-17
US20130339656A1 (en) 2013-12-19
AU2012382781B2 (en) 2016-06-02
KR101572409B1 (ko) 2015-12-04
TW201413454A (zh) 2014-04-01
MX347759B (es) 2017-05-10
EP2862089B1 (en) 2018-12-26
WO2013186606A2 (en) 2013-12-19
CN104903873B (zh) 2017-10-20
JP6202543B2 (ja) 2017-09-27
BR112014031436B1 (pt) 2021-08-10
WO2013186606A3 (en) 2015-06-11
MX2014015347A (es) 2015-07-06
TWI622880B (zh) 2018-05-01
KR20140138848A (ko) 2014-12-04
CA2874186C (en) 2020-09-22
SI2862089T1 (sl) 2019-03-29
EP2862089A4 (en) 2015-09-02
ZA201408136B (en) 2020-02-26
WO2013186606A8 (en) 2014-12-18
SG11201407485RA (en) 2014-12-30
PT2862089T (pt) 2019-02-04
EP2862089A2 (en) 2015-04-22
LT2862089T (lt) 2019-02-11
HK1210846A1 (en) 2016-05-06
BR112014031436A2 (pt) 2017-06-27
RU2550558C2 (ru) 2015-05-10
CN104903873A (zh) 2015-09-09
RU2012148399A (ru) 2014-05-20
HRP20190166T1 (hr) 2019-03-22
AU2012382781A1 (en) 2014-12-11
CA2874186A1 (en) 2013-12-19
IL236248A0 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
ES2708331T3 (es) Comparación y sustitución de una entrada de tabla DAT
ES2327058T3 (es) Invalidacion de almacenamiento, borrado de elementos de la memoria intermedia.
JP6975723B2 (ja) ケイパビリティ・メタデータに対する操作を実施するための装置及び方法
JP5607825B2 (ja) コンピューティング環境のシステム・メモリの管理を容易にする方法、システム、コンピュータ・プログラム
TWI342492B (en) Method of providing extended memory protection
JP5536956B2 (ja) コンピューティング環境においてアドレス空間を管理するための方法、コンピュータ・システム、コンピュータ・プログラム
JP6284130B2 (ja) ローカル・クリア制御
JP5736044B2 (ja) アダプタに関する操作パラメータの選択的設定の制御
ES2523878T3 (es) Instrucciones de almacenamiento/almacenamiento de bloque para la comunicación con adaptadores
US7480784B2 (en) Ensuring deadlock free operation for peer to peer traffic in an input/output memory management unit (IOMMU)
EP2430532B1 (en) Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
PT2585925E (pt) Determinação durante tempo de execução de formatos de tradução para funções de adaptador
BR112012033815B1 (pt) tradução de endereços de entrada/saída para endereços de memória
KR20070047845A (ko) 직접 메모리 액세스 어드레스 변환을 위한 폴트 처리
JP7280195B2 (ja) 機能に関連付けられるパーミッションを解釈するための装置及び方法
BR112012032857B1 (pt) método e equipamento para carregar dados de um adaptador