ES2620704T3 - Instrucción de almacenamiento no transaccional - Google Patents
Instrucción de almacenamiento no transaccional Download PDFInfo
- Publication number
- ES2620704T3 ES2620704T3 ES12878682.9T ES12878682T ES2620704T3 ES 2620704 T3 ES2620704 T3 ES 2620704T3 ES 12878682 T ES12878682 T ES 12878682T ES 2620704 T3 ES2620704 T3 ES 2620704T3
- Authority
- ES
- Spain
- Prior art keywords
- transaction
- instruction
- transactional
- address
- restricted
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/463—Program control block organisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Abstract
Un producto de programa informático que comprende un medio de almacenamiento legible por ordenador que almacena instrucciones que se ejecutan sobre un sistema informático que comprende una memoria (5002) y un procesador (5001) para llevar a cabo un método que comprende: obtener, mediante el procesador, una instrucción de máquina para la ejecución, siendo definida la instrucción de máquina para ejecución por ordenador de acuerdo con una arquitectura informática, comprendiendo la instrucción de máquina (700): un código de operación (702a) para especificar una operación de almacenamiento no transaccional; un campo (704) para especificar un registro, en donde los contenidos del registro son un primer operando; y al menos un campo (706, 708, 710, 712) para especificar un dirección del segundo operando, sirviendo la dirección del segundo operando para designar una ubicación en la memoria; y ejecutar, mediante el procesador, la instrucción de máquina, comprendiendo la ejecución: almacenar de manera no transaccional el primer operando en la ubicación especificada por la dirección del segundo operando, en donde el primer operando almacenado en la ubicación es retenido a pesar de una anulación de una transacción asociada con la instrucción de máquina, y caracterizado por que el almacenamiento no transaccional es retrasado hasta un final del modo de ejecución transaccional del procesador.
Description
5
10
15
20
25
30
35
40
45
50
55
donde el bit 0 representa los registros 0 y 1, el bit 1 representa los registros 2 y 3, y así sucesivamente. Cuando un bit en la GRSM es cero, la pareja de registro correspondiente no es guardada. Cuando un bit en la GRSM es uno, la pareja de registro correspondiente es guardada en una ubicación dependiente del modelo que no es accesible de manera directa mediante el programa.
Si la transacción se anula, las parejas de registro guardadas son restauradas a sus contenidos cuando la instrucciónde COMIENZO DE TRANSACCIÓN más exterior fue ejecutada. Los contenidos de todos los demás registros generales (no guardados) no son restaurados cuando se anula una transacción restringida.
Cuando TBEGINC es utilizada para continuar la ejecución en el modo de ejecución de transacción no restringida, es ignorada la máscara para guardar el registro general.
Permitir la modificación de AR (A) 312: El control A, bit 12 del campo I2, controla si la transacción es permitida para modificar un registro de acceso. El control efectivo de permiso de modificación de AR es la AND lógica del control A en la instrucción de TBEGINC para el nivel de anidación actual y para cualesquiera instrucciones de TBEGIN o TBEGINC más exteriores.
Si el control efectivo A es cero, la transacción será anulada con el código de anulación 11 (instrucción restringida) si se hace un intento de modificar cualquier registro de acceso. Si el control efectivo A es uno, la transacción no será anulada si se modifica un registro de acceso (ausencia de cualquier otra condición de anulación). Los bits 8-11 y 1315 del campo I2 (bits 40-43 y 45-47 de la instrucción) son reservados y deberían contener ceros.
El final de una instrucción de Comienzo de Transacción es especificado por una instrucción de FINAL DE TRANSACCIÓN (TEND), un formato de la cual está representado en la fig. 4. Como ejemplo, una instrucción 400 de TEND incluye un campo 402 código de operación que incluye un código de operación que especifica una operación de final de transacción.
Son utilizados un número de términos con respecto a la instalación de ejecución transaccional, y por lo tanto, únicamente por conveniencia, es proporcionada una lista de términos a continuación en orden alfabético. En una realización, estos términos tienen la siguiente definición:
Anulación: Una transacción se anula cuando se termina antes de una instrucción de FINAL DE TRANSACCIÓN que da como resultado una profundidad de anidación de transacción de cero. Cuando se anula una transacción, ocurre lo siguiente, en una realización:
Se descartan accesos al almacenamiento transaccional hechos por cualquiera y todos los niveles de la transacción (es decir, no consignados).
Se consignan accesos al almacén no transaccional hechos por cualquiera y todos los niveles de la transacción.
Se restauran los registros designados por la máscara para guardar el registro general (GRSM) de la instrucción de COMIENZO DE TRANSACCIÓN más exterior a sus contenidos antes de la ejecución transaccional (es decir, a sus contenidos en la ejecución de la instrucción de COMIENZO DE TRANSACCIÓN más exterior). No se restauran los registros generales no designados mediante la máscarapara guardar el registro general de la instrucción de COMIENZO DE TRANSACCIÓN más exterior.
No se restauran los registros de acceso, los registros de coma flotante, y el registro de control de coma flotante. Cualesquiera cambios hechos en estos registros durante la ejecución de la transacción son retenidos cuando se anula la transacción.
Una transacción puede ser anulada por distintas razones, incluyendo intento de ejecución de una instrucción restringida, intento de modificación de un recurso restringido, conflicto transaccional, exceder de distintos recursos de CPU, cualquier condición de intercepción de ejecución interpretativa, cualquier interrupción, una instrucción de ANULACIÓN DE TRANSACCIÓN, y por otras razones. Un código de anulación de transacción proporciona razones específicas por las cuales se puede anular una transacción.
Se ha descrito un ejemplo de un formato de una instrucción de ANULACIÓN DE TRANSACCIÓN (TABORT) con referencia a la fig. 5. Como ejemplo, una instrucción TABORT 500 incluye un campo 502 de código de operación que incluye un código de operación que especifica una operación de anulación de transacción; un campo base (B2) 504; y un campo de desplazamiento (D2) 506. Cuando el campo B2 es distinto de cero, los contenidos del registro general especificados por B2 504 son añadidos a D2 506 para obtener una dirección del segundo operando; de lo contrario, la dirección del segundo operando está formada únicamente a partir del campo D2, y el campo B2 es ignorado. La dirección del segundo operando no es utilizada para datos de dirección; en su lugar, la dirección forma el código de anulación de transacción que es colocado en un bloque de diagnóstico de transacción durante el tratamiento de anulación. El cálculo de dirección para la dirección del segundo operando sigue las reglas de la aritmética de direcciones: en el modo de direccionamiento de 24 bits, los bits 0-29 son configurados a ceros; en el modo de direccionamiento de 31 bits, los bits 0-32 son configurados a ceros.
9 5
10
15
20
25
30
35
40
45
50
Consignación: A la terminación de una instrucción de FINAL DE TRANSACCIÓN más exterior, la CPU consigna los accesos de almacenamiento hechos por la transacción (es decir, la transacción más exterior y cualesquiera niveles anidados) de tal manera que son visibles a otras CPU y al subsistema I/O. Cuando son observados por otras CPU y por el subsistema I/O, todos los accesos de recuperación y almacenamiento hechos por todos los niveles anidados de la transacción parece que ocurren como una operación concurrente única cuando ocurre la consignación.
Los contenidos de los registros generales, los registros de acceso, los registros de coma flotante, y el registro de control de coma flotante no son modificados por el proceso de consignación. Cualesquiera cambios hechos a estos registros durante la ejecución transaccional son retenidos cuando los almacenamientos de transacción son consignados.
Conflicto: Un acceso transaccional hecho por una CPU está en conflicto bien con (a) un acceso transaccional o acceso no transaccional hecho por otra CPU, o bien con (b) el acceso no transaccional hecho por el subsistema I/O, si ambos accesos están en cualquier ubicación dentro de la misma línea de memoria caché, y uno o más de los accesos es un almacenamiento.
Un conflicto puede ser detectado por una ejecución especulativa de instrucciones de la CPU, incluso aunque el conflicto no pueda ser detectado en la secuencia conceptual.
Transacción restringida: Una transacción restringida es una transacción que se ejecuta en el modo de ejecución transaccional restringido y está sometida a las siguientes limitaciones:
Hay disponible un subconjunto de las instrucciones generales.
Puede ejecutarse un número limitado de instrucciones.
Puede accederse a un número limitado de ubicaciones de operando de almacenamiento.
La transacción está limitada a un solo nivel de anidación.
En ausencia de interrupciones o conflictos repetidos con otras CPU o el subsistema I/O, una transacción restringida se completa de manera eventual, así no se requiere una rutina de manejo de anulación. Las transacciones restringidas son descritas en detalle posteriormente.
Cuando una instrucción restringida de COMIENZO DE TRANSACCIÓN (TBEGINC) es ejecutada mientras la CPU está ya en el modo de ejecución de transacción no restringida, la ejecución continúa como una transacción no restringida anidada.
Modo de Ejecución Transaccional Restringido: Cuando la profundidad de anidación de transacción es cero, y una transacción es iniciada mediante una instrucción de TBEGINC, la CPU entra en el modo de ejecución transaccional restringido. Mientras la CPU está en el modo de ejecución transaccional restringido, la profundidad de anidación de transacción es uno.
Transacción Anidada: Cuando la instrucción de COMIENZO DE TRANSACCIÓN es emitida mientras la CPU está en el modo de ejecución transaccional no restringido, la transacción es anidada.
La instalación de ejecución transaccional utiliza un modelo llamado anidación aplanada. En el modo de anidación aplanada, los almacenamientos hechos por una transacción interior no pueden ser observados por otras CPU y por el subsistema I/O hasta que la transacción más exterior consigna sus almacenamientos. De manera similar, si se anula una transacción, se anulan todas las transacciones anidadas, y todos los almacenamientos transaccionales de todas las transacciones anidadas son descartados.
Un ejemplo de transacciones anidadas está representado en la fig. 6. Como se ha mostrado, una primera TBEGIN 600 comienza una transacción más exterior 601, la TBEGIN 602 comienza una primera transacción anidada, y la TBEGIN 604 comienza una segunda transacción anidada. En este ejemplo, la TBEGIN 604 y la TEND 606 definen una transacción más interior 608. Cuando se ejecuta la TEND 610, los almacenamientos transaccionales son consignados 612 para la transacción más exterior y todas las transacciones interiores.
Transacción no Restringida: Una transacción no restringida es una transacción que se ejecuta en el modo de ejecución transaccional no restringido. Aunque una transacción no restringida no está limitada en la forma en que lo está una transacción restringida, puede ser anulada aún debido a una variedad de causas.
Modo de Ejecución Transaccional no Restringida: Cuando una transacción es iniciada por la instrucción de TBEGIN, la CPU entra en el modo de ejecución transaccional no restringido. Mientras la CPU está en el modo de ejecución transaccional no restringido, la profundidad de anidación de transacción puede variar desde uno a la profundidad máxima de anidación de transacción.
Acceso No Transaccional: Los accesos no transaccionales son accesos de operando de almacenamiento hechos por la CPU cuando no está en el modo de ejecución transaccional (es decir, accesos de almacenamiento clásico
10 5
10
15
20
25
30
35
40
45
50
55
fuera de una transacción). Además, los accesos hechos por el subsistema I/O son accesos no transaccionales. De manera adicional, la instrucción de ALMACENAMIENTO NO TRANSACCIONAL puede ser utilizada para provocar un acceso al almacenamiento no transaccional mientras la CPU está en el modo de ejecución transaccional no restringido.
Una realización de un formato de una instrucción de ALMACENAMIENTO NO TRANSACCIONAL es descrita con referencia a la fig. 7. Como un ejemplo, una instrucción 700 de ALMACENAMIENTO NO TRANSACCIONAL incluye una pluralidad de campos 702a, 702b de código de operación que especifican un código de operación que designa una operación de almacenamiento no transaccional; un campo de registro (R1) 704 que especifica un registro, cuyos contenidos son llamados el primer operando; un campo índice (X2) 706; un campo base (B2) 708; un primer campo de desplazamiento (DL2) 710; y un segundo campo de desplazamiento (DH2) 712. Los contenidos de los registros generales designados por los campos X2 y B2 son añadidos a los contenidos de una concatenación de contenidos de los campos DH2 y DL2 para formar la dirección del segundo operando. Cuando bien uno o ambos campos X2 o B2 son cero, el registro correspondiente no toma parte en la suma.
El primer operando de 64 bits es colocado de manera no transaccional sin cambios en la ubicación del segundo operando. El desplazamiento, formado por la concatenación de los campos DH2 y DL2, es tratado como un número entero binario con signo de 20 bits.
El segundo operando ha de ser alineado sobre un límite de doble palabra; de lo contrario, se reconoce la excepción de especificación y la operación es suprimida.
Transacción Exterior/Más Exterior: Una transacción con una profundidad de anidación de transacción de número inferior es una transacción exterior. Una transacción con un valor de profundidad de anidación de transacción de uno es la transacción más exterior.
Una instrucción de COMIENZO DE TRANSACCIÓN más exterior es la que es ejecutada cuando la profundidad de anidación de transacción es inicialmente cero. Una instrucción de FINAL DE TRANSACCIÓN más exterior es la que hace que la profundidad de anidación de transacción pase de uno a cero. Una transacción restringida es la transacción más exterior, en esta realización.
Filtrado de Interrupción del Programa: Cuando es anulada una transacción debido a ciertas condiciones de excepción de programa, el programa puede impedir opcionalmente que ocurra la interrupción. Esta técnica es llamada filtrado de interrupción del programa. El filtrado de interrupción del programa es sometida a la clase transaccional de la interrupción, al control efectivo de filtrado de interrupción de programa desde la instrucción de COMIENZO DE TRANSACCIÓN, y a la invalidación del filtrado de interrupción de programa de ejecución transaccional en el registro de control 0.
Transacción: Una transacción incluye los accesos de operando de almacenamiento hechos, y registros generales seleccionados alterados, mientras la CPU está en el modo de ejecución de transacción. Para una transacción no restringida, los accesos de operando de almacenamiento pueden incluir tanto accesos transaccionales como accesos no transaccionales. Para una transacción restringida, los accesos de operando de almacenamiento están limitados a accesos transaccionales. Cuando son observados por otras CPU y por el subsistema I/O, todos los accesos de operando de almacenamiento hechos por la CPU mientras está en el modo de ejecución de transacción parecen ocurrir como una única operación concurrente. Si se anula una transacción, los accesos de almacenamiento transaccional son descartados, y cualesquiera registros designados por la máscara para guardar el registro generalde la instrucción de COMIENZO DE TRANSACCIÓN más exterior son restaurados a sus contenidos anteriores a la ejecución transaccional.
Accesos Transaccionales: Los accesos transaccionales son accesos de operando de almacenamiento hechos mientras la CPU está en el modo de ejecución transaccional, con la excepción de los accesos hechos por la instrucción de ALMACENAMIENTO NO TRANSACCIONAL.
Modo de Ejecución Transaccional: El término modo de ejecución transaccional (también conocido como modo de ejecución de transacción) describe la operación común tanto del modo de ejecución transaccional restringida como no restringida. Así, cuando se describe la operación, los términos no restringida y restringida son utilizados para calificar el modo de ejecución transaccional.
Cuando la profundidad de anidación de transacción es cero, la CPU no está en el modo de ejecución transaccional (también llamado el modo de ejecución no transaccional).
Cuando son observados por la CPU, las recuperaciones y almacenamientos hechos en el modo de ejecución transaccional no son diferentes de los hechos mientras no está en el modo de ejecución transaccional.
En una realización de la arquitectura z, la instalación de ejecución transaccional está bajo el control de los bits 8-9 del registro de control 0, los bits 61-63 del registro de control 2, y la profundidad de anidación de transacción, la dirección de bloque de diagnóstico de transacción, y la palabra de estado del programa (PSW) de anulación de transacción.
11
5
10
15
20
25
30
35
40
45
50
Cuando una transacción es anulada debido a un TDC distinto de cero, entonces puede ocurrir cualquiera de las siguientes situaciones:
El código de anulación es configurado a cualquiera de los códigos 7-11, 13-16, o 255, con el valor del código elegido aleatoriamente por la CPU; el código de condición es configurado correspondientemente al código de anulación. Los códigos de anulación son descritos posteriormente.
Para una transacción no restringida, el código de condición es configurado a uno. En este caso, no es aplicable el código de anulación.
Es dependiente del modelo si el valor 1 del TDC es implementado. Si no es implementado, un valor de 1 actúa como si fuese especificado como 2.
Para una transacción restringida, un valor de TDC de 1 es tratado como si fuese especificado un valor de TDC de 2.
Si es especificado un valor de TDC de 3, los resultados son impredecibles.
Dirección de Bloque de Diagnóstico de Transacción (TDBA)
Una dirección de bloque de diagnóstico de transacción (TDBA) válida es configurada desde la dirección del primer operando de la instrucción de COMIENZO DE TRANSACCIÓN (TBEGIN) más exterior cuando el campo B1 de la instrucción es distinto de cero. Cuando la CPU está en el espacio primario o modo de registro de acceso, la TDBA designa una ubicación en el espacio de dirección primario. Cuando la CPU está en el espacio secundario, o modo de espacio doméstico, la TDBA designa una ubicación en el espacio secundario o espacio de dirección doméstico, respectivamente. Cuando la DAT (Traducción de Dirección Dinámica) está desactivada, la TDBA designa una ubicación en el almacenamiento real.
La TDBA es utilizada por la CPU para ubicar el bloque de diagnóstico de transacción – llamado TDB especificado por TBEGIN -si la transacción es anulada después. Los tres bits más a la derecha de la TDBA son cero, lo que significa que el TDB especificado por TBEGIN está sobre un límite de doble palabra.
Cuando el campo B1 de una instrucción de COMIENZO DE TRANSACCIÓN (TBEGIN) más exterior es cero, la dirección del bloque de diagnóstico transaccional es inválida, y el TDB especificado por TBEGIN no es almacenado si la transacción es anulada después.
PSW de Anulación de Transacción (TAPSW)
Durante la ejecución de la instrucción de COMIENZO DE TRANSACCIÓN (TBEGIN) cuando la profundidad de anidación es inicialmente cero, la PSW de anulación de transacción es ajustada a los contenidos de la PSW actual; y la dirección de instrucción de la PSW de anulación de transacción designa la siguiente instrucción secuencial (es decir, la instrucción que sigue a la TBEGIN más exterior). Durante la ejecución de la instrucción de COMIENZO DE TRANSACCIÓN restringida (TBEGINC) cuando la profundidad de anidación es inicialmente cero, la PSW de anulación de transacción es configurada a los contenidos de la PSW actual, excepto en que la dirección de instrucción de la PSW de anulación de transacción designa la instrucción de TBEGINC (en vez de la siguiente opción secuencial que sigue a la TBEGINC).
Cuando se anula una transacción, el código de condición en la PSW de anulación de transacción es reemplazado con un código que indica la severidad de la condición de anulación. Posteriormente, si la transacción fue anulada debido a causas que no dan como resultado una interrupción, la PSW es cargada a partir de la PSW de anulación de transacción; si la transacción fue anulada debido a causas que dan como resultado una interrupción, la PSW de anulación de transacción es almacenada como la PSW de antigua interrupción.
La PSW de anulación de transacción no es alterada durante la ejecución de cualquier instrucción de COMIENZO DE TRANSACCIÓN interna.
Profundidad de Anidación de Transacción (TND)
La profundidad de anidación de transacción es, por ejemplo, un valor sin signo de 16 bits que es aumentado cada vez que se completa una instrucción de COMIENZO DE TRANSACCIÓN con el código de condición 0 y disminuido cada vez que se completa una instrucción de FINAL DE TRANSACCIÓN. La profundidad de anidación de transacción es reiniciada a cero cuando la transacción es anulada o por reinicio de la CPU.
En una realización, es implementada una TND máxima de 15.
En una implementación, cuando la CPU está en el modo de ejecución transaccional restringido, la profundidad de anidación de transacción es uno. De manera adicional, aunque la TND máxima pueda ser representada como un valor de 4 bits, la TND es definida para ser un valor de 16 bits para facilitar su inspección en el bloque de diagnóstico de transacción.
13
almacenamiento de PER no son detectados por el TDB de interrupción de programa cuando es almacenado durante una interrupción de programa.
TDB de Interceptación: La ubicación real de anfitrión de 256 bytes especificada por las ubicaciones 488-495 de la descripción de estado. El TDB de interceptación es almacenado cuando una transacción anulada da como resultado una interceptación de interrupción de programa invitado (es decir, código de interceptación 8). Cuando se anula una transacción debido otras causas, los contenidos del TDB de interceptación son impredecibles. El TDB de interceptación no está sometido a ningún mecanismo de protección.
Como se ha representado en la fig. 9, los campos de un bloque 900 de diagnóstico de transacción son como sigue, en una realización:
Formato 902: el Byte 0 contiene una indicación de validez y formato, como sigue:
Valor Significado
0 Los campos restantes del TDB son impredecibles.
1 Un TDB de formato 1, cuyos campos restantes son descritos posteriormente.
2-255 Reservado.
Un TDB en el cual el campo de formato es cero es denominado como un TDB nulo.
Indicadores 904: El byte 1 contiene distintas indicaciones, como sigue:
Validez de Identificador de Conflicto (CTV): Cuando es anulada una transacción debido a un conflicto de recuperación o almacenamiento (es decir, códigos de anulación 9 o 10, respectivamente), el bit 0 del byte 1 es la indicación de validez de identificador de conflicto. Cuando la indicación de CTV es uno, el identificador de conflicto 910 en los bytes 16-23 del TDB contiene la dirección lógica en la que fue detectado el conflicto. Cuando la indicación de CTV es cero, los bytes 16-23 del TDB son impredecibles.
Cuando es anulada una transacción debido a cualquier otra razón distinta a un conflicto de recuperación o almacenamiento, el bit 0 del byte 1 es almacenado como cero.
Indicación de Transacción Restringida (CTI): Cuando la CPU está en el modo de ejecución transaccional restringido, el bit 1 del byte 1 es configurado a uno. Cuando la CPU está en el modo de ejecución transaccional no restringido, el bit 1 del byte 1 es configurado a cero.
Reservados: Los bits 2-7 del byte 1 son reservados, y almacenados como ceros.
Profundidad de Anidación de Transacción (TND) 906: Los bytes 6-7 contienen la profundidad de anidación de transacción cuando la transacción fue anulada.
Código de Anulación de Transacción (TAC) 908: Los bytes 8-15 contienen un código de anulación de transacción sin signo de 64 bits. Cada punto de código indica una razón por la cual es anulada una transacción.
Es dependiente del modelo si el código de anulación de transacción es almacenado en el TDB de interrupción cuando es anulada una transacción debido a condiciones distintas de una interrupción de programa.
Identificador de Conflicto 910: Para transacciones que son anuladas debido a conflicto de recuperación o almacenamiento (es decir, códigos de anulación 9 y 10, respectivamente), los bytes 16-23 contienen la dirección lógica de la ubicación de almacenamiento en la cual fue detectado el conflicto. El identificador de conflicto es significativo cuando el bit de CTV, el bit 0 del byte 1, es uno.
Cuando el bit de CTV es cero, los bytes 16-23 son impredecibles.
Debido a la ejecución especulativa mediante la CPU, el identificador de conflicto puede designar una ubicación de almacenamiento que no sería accedida necesariamente por la secuencia de ejecución conceptual de la transacción.
Dirección de Instrucción de Transacción Anulada (ATIA) 912: Los bytes 24-31 contienen una dirección de instrucción que identifica la instrucción que se estaba ejecutando cuando fue detectada una anulación. Cuando se anula una transacción debido a los códigos de anulación 2, 5, 6, 11, 13, o 256, o mayor, o cuando se anula una transacción debido a los códigos de anulación 4 o 13 y la condición de excepción del programa es nula, la ATIA apunta directamente a la instrucción que estaba siendo ejecutada. Cuando se anula una transacción debido a los códigos de anulación 4 o 12, y la condición de excepción de programa no es nula, la ATIA apunta más allá de la instrucción que se estaba ejecutando.
Cuando se anula una transacción debido a los códigos de anulación 7-10, 14-16, o 255, la ATIA no indica necesariamente la instrucción exacta que provoca la anulación, pero puede apuntar a una instrucción anterior o
15
5
10
15
20
25
30
35
40
45
50
transacción; de lo contrario, el campo es reservado. La identificación de interrupción de programa es almacenada solamente para condiciones de excepción de programa.
Identificación de Excepción de Traducción (TEID) 920: Para transacciones que son anuladas debido a cualquiera de las siguientes condiciones de excepción de programa filtrado, los bytes 40-47 del TDB especificado por TBEGIN contienen la identificación de excepción de traducción.
Lista de acceso controlada o protección DAT
Tipo ASCE
Traducción de página
Traducción de primera región
Traducción de segunda región
Traducción de tercera región
Excepción de traducción de segmento
En un ejemplo de la Arquitectura z, el formato de la TEID es el mismo que el descrito en las ubicaciones reales 168175 cuando la condición da como resultado una interrupción, como se ha descrito en los Principios de Funcionamiento incorporados antes por referencia.
Para transacciones que son anuladas por otras razones, incluyendo condiciones de excepción que dan como resultado una interrupción de programa, los bytes 40-47 son impredecibles. Los bytes 40-47 son impredecibles en el TDB de interrupción del programa.
Este campo es almacenado solamente en el TDB designado por la dirección de bloque de diagnóstico de transacción; de lo contrario, el campo es reservado.
Dirección del Evento de Ruptura 922: Para transacciones que son anuladas debido a las condiciones de excepción del programa filtrado, los bytes 48-55 del TBEGIN-TDB especificado contienen la dirección de evento de ruptura. En un ejemplo de la Arquitectura z, el formato de la dirección del evento de ruptura es el mismo que el descrito en las ubicaciones reales 272-279 cuando la condición da como resultado una interrupción, como se ha descrito en los Principios de Funcionamiento incorporados antes por referencia.
Para transacciones que son anuladas por otras razones, incluyendo condiciones de excepción que dan como resultado una interrupción de programa, los bytes 48-55 son impredecibles. Los bytes 48-55 son impredecibles en el TDB de interrupción del programa.
Este campo es almacenado solamente en el TDB designado por la dirección de bloque de diagnóstico de transacción; de lo contrario, el campo es reservado.
Otros detalles con relación a los eventos de ruptura son descritos posteriormente.
En una realización de la Arquitectura z, cuando la instalación PER-3 es instalada, proporciona al programa con la dirección de la última instrucción para provocar una ruptura en la ejecución secuencial de la CPU. La grabación de dirección de evento de ruptura puede ser utilizada como una ayuda de depuración para detección de derivación salvaje. Esta instalación proporciona, por ejemplo, un registro de 64 bits en la CPU, llamado el registro de dirección de evento de ruptura. Cada vez que una instrucción distinta de la ANULACIÓN DE TRANSACCIÓN provoca una ruptura en la ejecución de instrucción secuencial (es decir, la dirección de instrucción en la PSW es reemplazada, en vez de incrementada por la longitud de la instrucción), la dirección de esa instrucción es colocada en el registro de dirección de evento de ruptura. Siempre que ocurre una interrupción de programa, sea indicado o no el PER, los contenidos actuales del registro de dirección de evento de ruptura son colocados en ubicaciones de almacenamiento real 272-279.
Si la instrucción que provoca el evento de ruptura es el objetivo de una instrucción de tipo ejecución (EJECUCIÓN o EJECUCIÓN RELATIVA LARGA), a continuación la dirección de instrucción utilizada para recuperar la instrucción de tipo ejecución es colocada en el registro de dirección de evento de ruptura.
En una realización de la Arquitectura z, se considera que un evento de ruptura ocurre si una de las siguientes instrucciones provoca la derivación : DERIVACIÓN Y VÍNCULO (BAL, BALR); DERIVACIÓN Y GUARDADO (BAS, BASR); DERIVACIÓN Y GUARDADO Y CONFIGURACIÓN DE MODO (BASSM); DERIVACIÓN Y CONFIGURACIÓN DE MODO (BSM); DERIVACIÓN Y APILAMIENTO (BAKR); DERIVARCIÓN EN CONDICIÓN (BC, BCR); DERIVACIÓN EN CUENTA (BCT, BCTR, BCTG, BCTGR); DERIVACIÓN EN ÍNDICE ALTO (BXH, BXHG); DERIVACIÓN EN ÍNDICE BAJO O IGUAL (BXLE, BXLEG); DERIVACIÓN RELATIVA EN CONDICIÓN (BRC); DERIVACIÓN RELATIVA EN CONDICIÓN LARGA (BRCL); DERIVACIÓN RELATIVA EN CUENTA (BRCT,
17
BRCTG); DERIVACIÓN RELATIVA EN ÍNDICE ALTO (BRXH, BRXHG); DERIVACIÓN RELATIVA EN ÍNDICE BAJOO IGUAL (BRXLE, BRXLG); COMPARACIÓN Y DERIVACIÓN (CRB, CGRB); COMPARACIÓN Y DERIVACIÓN RELATIVA (CRJ,CGRJ); COMPARACIÓN INMEDIATA Y DERIVACIÓN (CIB, CGIB); COMPARACIÓN INMEDIATA Y DERIVACIÓN RELATIVA (CIJ, CGIJ); COMPARACIÓN LÓGICA Y DERIVACIÓN (CLRB, CLGRB);
Se considera también que ocurre un evento de ruptura si se completa una de las siguientes instrucciones: DERIVACIÓN Y CONFIGURACIÓN DE AUTORIDAD (BSA); DERIVACIÓN EN GRUPO DE SUBESPACIO (BSG); DERIVACIÓN RELATIVA Y GUARDADO (BRAS); DERIVACIÓN RELATIVA Y GUARDADO LARGO (BRASL); PSW
10 DE CARGA (LPSW); PSW DE CARGA EXTENDIDA (LPSWE); LLAMADA DE PROGRAMA (PC); RETORNO DE PROGRAMA (PR); TRANSFERENCIA DE PROGRAMA (PT); TRANSFERENCIA DE PROGRAMA CON INSTANCIA (PTI); PROGRAMA DE RESUMEN (RP); Y TRAP (TRAP2, TRAP4).
No se considera que ocurre un evento de ruptura como resultado de una transacción que es anulada (bien de manera implícita o bien como resultado de la instrucción de ANULACIÓN DE TRANSACCIÓN).
15 Información de Diagnóstico Dependiente de Modelo 924: Los bytes 112-127 contienen la información del diagnóstico dependiente de modelo.
Para todos los códigos de anulación excepto el 12 (interrupción de programa filtrado), la información de diagnóstico dependiente de modelo es guardada en cada TDB que es almacenado.
En una realización, la información de diagnóstico dependiente de modelo incluye lo siguiente:
20 Los bytes 112-119 contienen un vector de 64 bits llamado las indicaciones de derivación de ejecución transaccional (TXBI). Cada uno de los primeros 63 bits del vector indica el resultado de la ejecución de una instrucción de derivación mientras la CPU estaba en el modo de ejecución transaccional, como sigue:
Valor Significado
0 La instrucción completada sin derivación.
25 1 la instrucción completada con derivación.
El bit 0 representa el resultado de dicha primera instrucción de derivación, el bit 1 representa el resultado de dicha segunda instrucción, y así sucesivamente.
Si se ejecutaron menos de 63 instrucciones de derivación mientras la CPU estaba en el modo de ejecución transaccional, los bits más a la derecha que no corresponden con las instrucciones de derivación son configurados a
30 ceros (incluyendo el bit 63). Cuando se ejecutaron más de 63 instrucciones de derivación el bit 63 de la TXBI es configurado a uno.
Los bits en la TXBI son configurados por instrucciones que son capaces de provocar un evento de ruptura, como se ha recogido antes, excepto por lo siguiente:
- Cualquier instrucción restringida no hace que un bit sea configurado en la TXBI.
35 -Para instrucciones de, por ejemplo, la Arquitectura z, cuando el campo M1 de la instrucción de DERIVACIÓN EN CONDICIÓN, DERIVACIÓN RELATIVA EN CONDICIÓN, O DERIVACIÓN RELATIVA EN CONDICIÓN LARGA es cero, o cuando el campo R2 de la siguiente instrucción es cero, es dependiente del modelo si la ejecución de la instrucción hace que un bit sea configurado en la TXBI.
DERIVACIÓN Y VÍNCULO (BALR); DERIVACIÓN Y GUARDADO (BASR); DERIVACIÓN Y
40 GUARDADO Y CONFIGURACIÓN DE MODO (BASSM); DERIVACIÓN Y CONFIGURACIÓN DE MODO (BSM); DERIVACIÓN EN CONDICIÓN (BCR); y DERIVACIÓN EN CUENTA (BCTR, BCTGR)
Para condiciones de anulación que fueron causadas por una excepción de acceso de anfitrión, la posición de bit 0 del byte 127 es configurada a uno. Para todas las otras condiciones de anulación, la posición del bit 45 0 del byte 127 es configurada a cero.
Para condiciones de anulación que fueron detectadas por la unidad de carga/almacenamiento (LSU), los cinco bits más a la derecha del byte 127 contienen una indicación de la causa. Para condiciones de anulación que no fueron detectadas por la LSU, el byte 127 es reservado.
Registros Generales 930: Los bytes 128-255 contienen los contenidos de los registros generales 0-15 en el
50 momento en que fue anulada la transacción. Los registros son almacenados en orden ascendente, comenzando con el registro general 0 en los bytes 128-135, el registro general 1 en los bytes 136-143, y así sucesivamente.
18 5
10
15
20
25
30
35
40
45
50
Reservado: Todos los demás campos son reservados. A menos que se indique lo contrario, los contenidos de los campos reservados son impredecibles.
Cuando es observado por otras CPU y el subsistema I/O, el almacenamiento de los TDB durante una anulación de transacción es una referencia de acceso múltiple que ocurre después de cualesquiera almacenamientos no transaccionales.
Una transacción puede ser anulada debido a causas que están fuera del alcance de la configuración inmediata en la cual se ejecuta. Por ejemplo, eventos transitorios reconocidos por un hipervisor (tal como LPAR o z/VM) puede provocar que se anule una transacción.
La información proporcionada en el bloque de diagnóstico de transacción está destinada con propósitos de diagnóstico y es sustancialmente correcta. Sin embargo, ya que una anulación puede haber sido causada por un evento fuera del alcance de la configuración inmediata, la información tal como el código de anulación o identificación de interrupción de programa puede no reflejar con exactitud las condiciones dentro de la configuración, y así, no debería utilizarse en determinar la acción de programa.
Además de la información de diagnóstico guardada en el TDB, cuando se anula una transacción debido a cualquier condición de excepción de programa de excepción de datos y tanto el control de registro AFP, bit 45 del registro de control 0, como el control efectivo de operación de coma flotante (F) son uno, el código de excepción de datos (DXC) es colocado en el byte 2 del registro de control de coma flotante (FPCR), independientemente de si el filtrado se aplica a la condición de excepción de programa. Cuando se anula una transacción, y o bien tanto el registro de control AFP o el control efectivo para permitir la operación de coma flotante son cero, el DXC no es colocado en el FPCR.
En una realización, como se ha indicado en este documento, cuando la instalación de ejecución transaccional está instalada, se proporcionan las siguientes instrucciones generales.
EXTRACCIÓN DE PROFUNDIDAD DE ANIDACIÓN DE TRANSACCIÓN
ALMACENAMIENTO NO TRANSACCIONAL
ANULACIÓN DE TRANSACCIÓN
COMIENZO DE TRANSACCIÓN
FINAL DE TRANSACCIÓN
Cuando la CPU está en el modo de ejecución transaccional, el intento de ejecución de ciertas instrucciones es restringido y provoca que sea anulada la transacción.
Cuando se emite en el modo de ejecución transaccional restringido, el intento de ejecución de instrucciones restringidas puede dar como resultado también una interrupción de programa de restricción de transacción, o puede dar como resultado que la ejecución prosiga como si la transacción no estuviese restringida.
En un ejemplo de la Arquitectura z, las instrucciones restringidas incluyen, como ejemplos, las siguientes instrucciones no privilegiadas de: COMPARACIÓN E INTERCAMBIO Y ALMACENAMIENTO; MODIFICACIÓN DE CONTROLES DE INSTRUMENTACIÓN DE TIEMPO DE EJECUCIÓN; REALIZACIÓN DE OPERACIÓN BLOQUEADA; RECUPERACIÓN PREVIAMENTE DE DATOS (RELATIVOS LARGOS), cuando el código en el campo M1 es 6 o 7; ALMACENAMIENTO DE CARACTERES DEBAJO DE LA MÁSCARA ALTA, cuando el campo M3 es cero y el código en el campo R1 es 6 o 7; ALMACENAMIENTO DE LISTA DE INSTALACIONES EXTENDIDA; ALMACENAMIENTO DE CONTROLES DE INSTRUMENTACIÓN DE TIEMPO DE EJECUCIÓN; LLAMADA DE SUPERVISOR ; y PRUEBA DE CONTROLES DE INSTRUMENTACIÓN DE TIEMPO DE EJECUCIÓN.
En la lista anterior, COMPARACIÓN E INTERCAMBIO Y ALMACENAMIENTO y REALIZACIÓN DE OPERACIÓN BLOQUEADA son instrucciones complejas que pueden ser implementadas de manera más eficiente por el uso de instrucciones básicas en el modo TX. Los casos para RECUPERACIÓN PREVIAMENTE DE DATOS yRECUPERACIÓN PREVIAMENTE DE DATOS RELATIVOS LARGOS son restringidos cuando los códigos de 6 y 7 liberan una línea de memoria caché, necesitando la consignación de los datos potencialmente antes de la finalización de una transacción. La LLAMADA DE SUPERVISOR está restringida cuando causa una interrupción (que causa que sea anulada una transacción).
Bajo las condiciones listadas a continuación, las siguientes instrucciones están restringidas:
DERIVACIÓN Y VINCULO (BALR), DERIVACIÓN Y GUARDADO (BASR), Y DERIVACIÓN Y GUARDADOY CONFIGURACIÓN DE MODO, cuando el campo R2 de la instrucción es distinto de cero y el rastreo de derivación es habilitado.
19 5
10
15
20
25
30
35
40
45
50
55
DERIVACIÓN Y GUARDADO Y CONFIGURACIÓN DE MODO y DERIVACIÓN Y CONFIGURACIÓN DE MODO, cuando el campo R2 es distinto de cero y es habilitado el modo de rastreo; CONFIGURACIÓN DE MODO DE DIRECCIONAMIENTO, cuando es habilitado el modo de rastreo.
LLAMADA DE SUPERVISOR, cuando es reconocida una condición de evento de vigilancia.
La lista anterior incluye instrucciones que pueden formar entradas de rastro. Si se permitiera que estas instrucciones se ejecutaran de manera transaccional y formaran las entradas de rastro, y la transacción posteriormente anulada, el puntero de tabla de rastro en el registro control 12 sería hecho avanzar, pero los almacenamientos a la tabla de rastro serían descartados. Esto dejaría un hueco inconsistente en la tabla de rastro; así, las instrucciones son restringidas en los casos donde formarían entradas de rastro.
Cuando la CPU está en el modo de ejecución transaccional, es dependiente del modelo si son restringidas las siguientes instrucciones: CIFRAR MENSAJE; CIFRAR MENSAJE CON CFB; CIFRAR MENSAJE CON ENCADENAMIENTO; CIFRAR MENSAJE CON CONTADOR; CIFRAR MENSAJE CON OFB; LLAMADA DE COMPRESIÓN; CALCULAR RESUMEN DE MENSAJE INTERMEDIO; CALCULAR RESUMEN DEL ÚLTIMO MENSAJE; CALCULAR CÓDIGO DE AUTENTIFICACIÓN DE MENSAJE; CONVERTIR UNICODE 16 A UNICODE 32; CONVERTIR UNICODE 16 A UNICODE 8; CONVERTIR UNICODE 32 A UNICODE 16; CONVERTIR UNICODE 32 A UNICODE 8; CONVERTIR UNICODE 8 A UNICODE 16; CONVERTIR UNICODE 8 A UNICODE 32; REALIZAR CÁLCULOS CRIPTOGRÁFICOS; DESACTIVAR INSTRUMENTACIÓN DE TIEMPO DE EJECUCIÓN; y ACTIVAR INSTRUMENTACIÓN DE TIEMPO DE EJECUCIÓN.
Cada una de las instrucciones anteriores es o bien implementada actualmente por el coprocesador de hardware, o bien lo ha sido en máquinas anteriores, y así, es considerada restringida.
Cuando el control efectivo de modificación (A) del AR es cero, las siguientes instrucciones son restringidas: COPIAR DIRECCIÓN, CARGAR MÚLTIPLE ACCESO; CARGAR DIRECCIÓN EXTENDIDA; y CONFIGURAR ACCESO.
Cada una de las instrucciones anteriores provoca que se modifiquen los contenidos de un registro de acceso. Si el control A en la instrucción de COMIENZO DE TRANSACCIÓN es cero, entonces el programa ha indicado de manera explícita que no se debe permitir la modificación del registro de acceso.
Cuando el control efectivo para permitir la operación de coma flotante (F) es cero, las instrucciones de coma flotante son restringidas.
Bajo ciertas circunstancias, las siguientes instrucciones pueden ser restringidas: EXTRACCIÓN DE TIEMPO DE CPU; EXTRACCIÓN DE PSW; ALMACENAMIENTO DE RELOJ; ALMACENAMIENTO DE RELOJ EXTENDIDO; y ALMACENAMIENTO DE RELOJ RÁPIDO.
Cada una de las instrucciones anteriores es sometida a un control de interceptación en la descripción de Estado de ejecución interpretativa. Si el hipervisor ha configurado el control de interceptación para estas instrucciones, entonces su ejecución puede prolongarse debido a la implementación del hipervisor; así, son consideradas restringidas si ocurre una interceptación.
Cuando una transacción no restringida es anulada debido al intento de ejecución de una instrucción restringida, el código de anulación de transacción en el bloque de diagnóstico de transacción es configurado a 11 (instrucción restringida), y el código de condición es configurado a 3, excepto como sigue: cuando una transacción no restringida es anulada debido al intento de ejecución de una instrucción que de lo contrario daría como resultado una excepción de operación privilegiada, es impredecible si el código de anulación es configurado a 11 (instrucción restringida) o a 4 (interrupción de programas sin filtrar que resulta del reconocimiento de la interrupción de programa de operación privilegiada). Cuando se anula una transacción NO restringida debido al intento de ejecución de RECUPERACIÓN PREVIA DE DATOS (RELATIVOS LARGOS) cuando el código en el campo M1 es 6 o 7 o ALMACENAMIENTO DE CARACTERES BAJO MÁSCARA ALTA cuando el campo M3 es cero y el código en el campo R1 es 6 o 7, es impredecible si el código de anulación es configurado a 11 (instrucción restringida) o a 16 (otra memoria caché). Cuando se anula una transacción no restringida debido al intento de ejecución de LLAMADA DE VIGILANCIA, y tanto una condición de evento de vigilancia como una condición de excepción de especificación están presentes es impredecible si el código de anulación es configurado a 11 o a 4, o, si en la interrupción de programa es filtrada, 12.
Se pueden restringir instrucciones adicionales en una transacción restringida. Aunque estas instrucciones no son actualmente definidas para ser restringidas en una transacción no restringida, pueden ser restringidas bajo ciertas circunstancias en una transacción no restringida en procesos futuros.
Ciertas instrucciones restringidas pueden ser permitidas en el modo de ejecución transaccional en procesos futuros. Por lo tanto, el programa no debería basarse en la transacción que es anulada debido al intento de ejecución de una instrucción restringida. La instrucción de ANULACIÓN DE TRANSACCIÓN debería ser utilizada para provocar que se anule una transacción de manera fiable.
En una transacción no restringida, el programa debería proporcionar un trayecto de código no transaccional
20
alternativo para acomodar una transacción que se anula debido a una instrucción restringida.
En funcionamiento, cuando la profundidad de anidación de transacción es cero, la ejecución de la instrucción de COMIENZO DE TRANSACCIÓN (TBEGIN) que da como resultado la condición de código cero hace que la CPU entre en el modo de ejecución transaccional no restringido. Cuando la profundidad de anidación de transacción es
5 cero, la ejecución de la instrucción de COMIENZO DE TRANSACCIÓN restringida (TBEGINC) que da como resultado la condición de código cero hace que la CPU entre en el modo de ejecución transaccional restringido.
Excepto donde explícitamente se observe de otra manera, todas las reglas que se aplican para la ejecución no transaccional se aplican también para la ejecución transaccional. Más adelante están las características adicionales de tratamiento mientras la CPU está en el modo de ejecución transaccional.
10 Cuando la CPU está en el modo de ejecución transaccional no restringido, la ejecución de la instrucción de COMIENZO DE TRANSACCIÓN que da como resultado la condición de código cero hace que la CPU permanezca en el modo de ejecución transaccional no restringido.
Cuando son observados por la CPU, recuperaciones y almacenamientos hechos en el modo de ejecución transaccional no son diferentes de los hechos mientras no está en el modo de ejecución transaccional. Cuando es 15 observado por otras CPU y por el subsistema I/O, todos los accesos de operando de almacenamiento hechos mientras una CPU está en el modo de ejecución transaccional parecen ser un acceso concurrente de un solo bloque. Es decir, los accesos a todos los bytes dentro de una media palabra, palabra, doble palabra, o cuádruple palabra son especificados para parecer ser el bloque concurrente cuando es observado por otras CPU y los programas de I/O (por ejemplo, canal). La media palabra, palabra, doble palabra, o cuádruple palabra se refiere en 20 esta sección como un bloque. Cuando se especifica que una referencia de tipo de recuperación parece ser concurrente dentro de un bloque, no es permitido el acceso de almacenamiento al bloque por otras CPU o programa I/O durante el tiempo en el que están siendo recuperados los bytes contenidos en el bloque. Cuando se especifica que una referencia de tipo almacenamiento parece ser concurrente dentro de un bloque, no es permitido el acceso al bloque, a la recuperación o al almacenamiento, por otras CPU o programa I/O durante el tiempo en el que están
25 siendo almacenados los bytes dentro del bloque.
Los accesos al almacenamiento para la instrucción y las recuperaciones de tabla DAT y ART (Tabla de Registro de Acceso) siguen las reglas no transaccionales.
La CPU deja el modo de ejecución transaccional normalmente por medio de una instrucción de FINAL DE TRANSACCIÓN que causa la transición de la profundidad de anidación de transacción a cero, en cuyo caso, finaliza
30 la transacción.
Cuando la CPU deja el modo de ejecución transaccional por medio de la finalización de una instrucción de FINAL DE TRANSACCIÓN, todos los almacenamientos hechos mientras está en el modo de ejecución transaccional son consignados; es decir, los almacenamientos parece que ocurren como una única operación de bloque concurrente cuando es observado por otras CPU y por el subsistema I/O.
35 Otros detalles con relación al tratamiento asociado con las transacciones restringidas y no restringidas, que incluye el tratamiento asociado con iniciar una transacción mediante TBEGINC y TBEGIN, respectivamente son proporcionados a continuación.
En un ejemplo, el tratamiento asociado con iniciar una transacción restringida mediante, por ejemplo, TBEGINC es, como sigue:
40 Si ya está en el modo TX restringido, se reconoce una excepción de transacción restringida.
Si la TND actual (Profundidad de Anidación de Transacción) > 0 la ejecución prosigue como si fuese una transacción no restringida
- o El control efectivo F se configura a cero
- o El PIFC efectivo no es cambiado
45 o permite a la TX no restringida más exterior llamar a la función de servicio que puede o no puede utilizar la TX restringida.
Si la TND actual = 0:
o La dirección del bloque de diagnóstico de transacción es inválida
- No es almacenada en anulación el TDB especificado por la instrucción
50 o Configurar PSW de anulación de transacción a la dirección de TBEGINC
21
Claims (1)
-
imagen1 imagen2 imagen3
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/524,887 US20130339680A1 (en) | 2012-06-15 | 2012-06-15 | Nontransactional store instruction |
| US201213524887 | 2012-06-15 | ||
| PCT/IB2012/056625 WO2013186601A1 (en) | 2012-06-15 | 2012-11-22 | Nontransactional store instruction |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2620704T3 true ES2620704T3 (es) | 2017-06-29 |
Family
ID=49757051
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES12878682.9T Active ES2620704T3 (es) | 2012-06-15 | 2012-11-22 | Instrucción de almacenamiento no transaccional |
Country Status (23)
| Country | Link |
|---|---|
| US (3) | US20130339680A1 (es) |
| EP (1) | EP2834736B1 (es) |
| JP (1) | JP6091608B2 (es) |
| KR (1) | KR101625322B1 (es) |
| CN (1) | CN104350468B (es) |
| AU (1) | AU2012382776B2 (es) |
| BR (1) | BR112014031432B1 (es) |
| CA (1) | CA2874176C (es) |
| DK (1) | DK2834736T3 (es) |
| ES (1) | ES2620704T3 (es) |
| HR (1) | HRP20170426T1 (es) |
| HU (1) | HUE033506T2 (es) |
| IL (1) | IL236251B (es) |
| LT (1) | LT2834736T (es) |
| MX (1) | MX355090B (es) |
| PL (1) | PL2834736T3 (es) |
| PT (1) | PT2834736T (es) |
| RU (1) | RU2568324C2 (es) |
| SG (1) | SG11201407473XA (es) |
| SI (1) | SI2834736T1 (es) |
| TW (1) | TWI574207B (es) |
| WO (1) | WO2013186601A1 (es) |
| ZA (1) | ZA201408078B (es) |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
| US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
| US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
| US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
| US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| US9990202B2 (en) * | 2013-06-28 | 2018-06-05 | Intel Corporation | Packed data element predication processors, methods, systems, and instructions |
| US9454370B2 (en) | 2014-03-14 | 2016-09-27 | International Business Machines Corporation | Conditional transaction end instruction |
| US9558032B2 (en) | 2014-03-14 | 2017-01-31 | International Business Machines Corporation | Conditional instruction end operation |
| US10120681B2 (en) | 2014-03-14 | 2018-11-06 | International Business Machines Corporation | Compare and delay instructions |
| US20160179550A1 (en) * | 2014-12-23 | 2016-06-23 | Intel Corporation | Fast vector dynamic memory conflict detection |
| US20160253118A1 (en) * | 2015-02-26 | 2016-09-01 | Kabushiki Kaisha Toshiba | Electronic device, controlling method, and storage medium |
| TWI615709B (zh) * | 2016-03-30 | 2018-02-21 | 凌陽科技股份有限公司 | 記憶體內容自動搬移方法以及使用其之微處理系統 |
| 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 |
| US10346315B2 (en) | 2017-05-26 | 2019-07-09 | Oracle International Corporation | Latchless, non-blocking dynamically resizable segmented hash index |
| US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
| US10977193B2 (en) | 2018-08-17 | 2021-04-13 | Oracle International Corporation | Remote direct memory operations (RDMOs) for transactional processing systems |
| US11347678B2 (en) * | 2018-08-06 | 2022-05-31 | Oracle International Corporation | One-sided reliable remote direct memory operations |
| US20250231768A1 (en) * | 2021-10-18 | 2025-07-17 | Nippon Telegraph And Telephone Corporation | Analysis function imparting method, analysis function imparting device, and analysis function imparting program |
| US20240062284A1 (en) * | 2022-08-19 | 2024-02-22 | Serhii Yevhenovych Monashov | Module for realizing precious metals and a method for selling precious metals by means of the module |
Family Cites Families (272)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
| US4488227A (en) | 1982-12-03 | 1984-12-11 | Honeywell Information Systems Inc. | Program counter stacking method and apparatus for nested subroutines and interrupts |
| US4740893A (en) | 1985-08-07 | 1988-04-26 | International Business Machines Corp. | Method for reducing the time for switching between programs |
| US5063497A (en) | 1987-07-01 | 1991-11-05 | Digital Equipment Corporation | Apparatus and method for recovering from missing page faults in vector data processing operations |
| US5321823A (en) | 1988-07-20 | 1994-06-14 | Digital Equipment Corporation | Digital processor with bit mask for counting registers for fast register saves |
| US5117498A (en) * | 1988-08-19 | 1992-05-26 | Motorola, Inc. | Processer with flexible return from subroutine |
| JPH0437927A (ja) * | 1990-06-01 | 1992-02-07 | Sony Corp | プロセッサの処理方法 |
| US5471591A (en) | 1990-06-29 | 1995-11-28 | Digital Equipment Corporation | Combined write-operand queue and read-after-write dependency scoreboard |
| DE69026379T2 (de) | 1990-08-07 | 1996-08-29 | Bull Hn Information Syst | Nachrichtenorientierte Fehlerbeseitigungsverfahren |
| JPH05197604A (ja) | 1991-05-21 | 1993-08-06 | Digital Equip Corp <Dec> | マルチプロセッサ・コンピュータ及びその動作方法 |
| US5701480A (en) | 1991-10-17 | 1997-12-23 | Digital Equipment Corporation | Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing |
| US5274817A (en) * | 1991-12-23 | 1993-12-28 | Caterpillar Inc. | Method for executing subroutine calls |
| US5359608A (en) | 1992-11-24 | 1994-10-25 | Amdahl Corporation | Apparatus for activation and deactivation of instruction tracing through use of conditional trace field in branch instructions |
| WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
| US5925125A (en) | 1993-06-24 | 1999-07-20 | International Business Machines Corporation | Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions |
| US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
| US5748964A (en) | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
| US5655100A (en) | 1995-03-31 | 1997-08-05 | Sun Microsystems, Inc. | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system |
| JP3720371B2 (ja) | 1995-10-06 | 2005-11-24 | アドバンスト・マイクロ・デバイシズ・インコーポレイテッド | スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラ |
| US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
| TW384447B (en) | 1996-01-22 | 2000-03-11 | Infinite Technology Inc | Processor with reconfigurable arithmetic data path |
| JPH103416A (ja) | 1996-06-14 | 1998-01-06 | Canon Inc | 情報処理装置およびその方法 |
| US6035313A (en) | 1997-03-24 | 2000-03-07 | Motorola, Inc. | Memory address generator for an FFT |
| US5870582A (en) | 1997-03-31 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched |
| JPH10333908A (ja) | 1997-05-30 | 1998-12-18 | Mitsubishi Electric Corp | 分岐予測方法 |
| US5937199A (en) | 1997-06-03 | 1999-08-10 | International Business Machines Corporation | User programmable interrupt mask with timeout for enhanced resource locking efficiency |
| US6073230A (en) | 1997-06-11 | 2000-06-06 | Advanced Micro Devices, Inc. | Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches |
| US6772419B1 (en) | 1997-09-12 | 2004-08-03 | Hitachi, Ltd. | Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS |
| JP3546678B2 (ja) | 1997-09-12 | 2004-07-28 | 株式会社日立製作所 | マルチos構成方法 |
| US6094730A (en) | 1997-10-27 | 2000-07-25 | Hewlett-Packard Company | Hardware-assisted firmware tracing method and apparatus |
| US7076784B1 (en) | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
| US6000029A (en) | 1997-11-03 | 1999-12-07 | Motorola, Inc. | Method and apparatus for affecting subsequent instruction processing in a data processor |
| US5938778A (en) | 1997-11-10 | 1999-08-17 | International Business Machines Corporation | System and method for tracing instructions in an information handling system without changing the system source code |
| KR100246537B1 (ko) | 1997-11-25 | 2000-03-15 | 정선종 | 코드분할 다중접속 시스템에서 파일럿 심벌을 이용한 동기식이중 채널 큐피에스케이 송수신기의 구조 |
| SE9704476L (sv) | 1997-12-02 | 1999-06-23 | Ericsson Telefon Ab L M | Utökad instruktionsavkodning |
| US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
| EP0944081B1 (en) | 1998-03-17 | 2009-05-13 | Panasonic Corporation | Data transmission apparatus and method thereof using command adapted thereto |
| US6202067B1 (en) | 1998-04-07 | 2001-03-13 | Lucent Technologies, Inc. | Method and apparatus for correct and complete transactions in a fault tolerant distributed database system |
| US6119129A (en) | 1998-05-14 | 2000-09-12 | Sun Microsystems, Inc. | Multi-threaded journaling in a configuration database |
| US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
| EP0992907B1 (en) | 1998-10-06 | 2005-09-28 | Texas Instruments Inc. | Trace fifo management |
| EP0992916A1 (en) | 1998-10-06 | 2000-04-12 | Texas Instruments Inc. | Digital signal processor |
| US6151669A (en) | 1998-10-10 | 2000-11-21 | Institute For The Development Of Emerging Architectures, L.L.C. | Methods and apparatus for efficient control of floating-point status register |
| US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
| JP3504519B2 (ja) * | 1998-12-04 | 2004-03-08 | 富士通株式会社 | 取引支援システム及びこのシステムに接続される情報端末装置 |
| US6732307B1 (en) | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
| US7761857B1 (en) | 1999-10-13 | 2010-07-20 | Robert Bedichek | Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts |
| US6738892B1 (en) | 1999-10-20 | 2004-05-18 | Transmeta Corporation | Use of enable bits to control execution of selected instructions |
| US6604188B1 (en) | 1999-10-20 | 2003-08-05 | Transmeta Corporation | Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction |
| JP3776653B2 (ja) | 1999-11-24 | 2006-05-17 | 富士通株式会社 | 演算処理装置 |
| US6601149B1 (en) * | 1999-12-14 | 2003-07-29 | International Business Machines Corporation | Memory transaction monitoring system and user interface |
| US6754809B1 (en) | 1999-12-30 | 2004-06-22 | Texas Instruments Incorporated | Data processing apparatus with indirect register file access |
| US6934832B1 (en) | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
| US6581138B2 (en) | 2000-02-29 | 2003-06-17 | Stmicroelectronics, Inc. | Branch-prediction driven instruction prefetch |
| US6665863B1 (en) | 2000-05-31 | 2003-12-16 | Microsoft Corporation | Data referencing within a database graph |
| US6826682B1 (en) | 2000-06-26 | 2004-11-30 | Transmeta Corporation | Floating point exception handling in pipelined processor using special instruction to detect generated exception and execute instructions singly from known correct state |
| AU2001283163A1 (en) | 2000-08-04 | 2002-02-18 | Carr Scott Software Incorporated | Automatic transaction management |
| SG99941A1 (en) * | 2000-08-30 | 2003-11-27 | Ibm | Transaction support on logical disks |
| US6886094B1 (en) | 2000-09-28 | 2005-04-26 | International Business Machines Corporation | Apparatus and method for detecting and handling exceptions |
| US6671686B2 (en) | 2000-11-02 | 2003-12-30 | Guy Pardon | Decentralized, distributed internet data management |
| US7346632B2 (en) | 2001-02-22 | 2008-03-18 | International Business Machines Corporation | Mechanism for executing nested transactions in an execution environment supporting flat transactions only |
| US6963919B1 (en) | 2001-02-28 | 2005-11-08 | Agilent Technologies, Inc. | Method and system for improving computer network performance |
| US6745272B2 (en) | 2001-04-04 | 2004-06-01 | Advanced Micro Devices, Inc. | System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system |
| US7185234B1 (en) | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
| US7165168B2 (en) | 2003-01-14 | 2007-01-16 | Ip-First, Llc | Microprocessor with branch target address cache update queue |
| US7305678B2 (en) | 2001-05-17 | 2007-12-04 | International Business Machines Corporation | Method and system for reducing synchronization waits when allocating sequenced identifiers in a multi-threaded server |
| US6874081B2 (en) | 2001-05-17 | 2005-03-29 | Broadcom Corporation | Selection of link and fall-through address using a bit in a branch address for the selection |
| US7613762B2 (en) | 2001-05-25 | 2009-11-03 | Sun Microsystems, Inc. | Floating point remainder with embedded status information |
| KR100625595B1 (ko) | 2001-05-28 | 2006-09-20 | 한국전자통신연구원 | 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템 |
| US6826681B2 (en) | 2001-06-18 | 2004-11-30 | Mips Technologies, Inc. | Instruction specified register value saving in allocated caller stack or not yet allocated callee stack |
| US7185183B1 (en) | 2001-08-02 | 2007-02-27 | Mips Technologies, Inc. | Atomic update of CPO state |
| US20060218556A1 (en) | 2001-09-28 | 2006-09-28 | Nemirovsky Mario D | Mechanism for managing resource locking in a multi-threaded environment |
| US7174463B2 (en) | 2001-10-04 | 2007-02-06 | Lenovo (Singapore) Pte. Ltd. | Method and system for preboot user authentication |
| US6898699B2 (en) | 2001-12-21 | 2005-05-24 | Intel Corporation | Return address stack including speculative return address buffer with back pointers |
| US7313734B2 (en) | 2002-01-14 | 2007-12-25 | International Business Machines Corporation | Method and system for instruction tracing with enhanced interrupt avoidance |
| US7546446B2 (en) | 2002-03-08 | 2009-06-09 | Ip-First, Llc | Selective interrupt suppression |
| US20040049666A1 (en) | 2002-09-11 | 2004-03-11 | Annavaram Murali M. | Method and apparatus for variable pop hardware return address stack |
| US7496494B2 (en) | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
| US6892286B2 (en) | 2002-09-30 | 2005-05-10 | Sun Microsystems, Inc. | Shared memory multiprocessor memory model verification system and method |
| US7103597B2 (en) | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
| US7634638B1 (en) | 2002-10-22 | 2009-12-15 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
| US7568023B2 (en) | 2002-12-24 | 2009-07-28 | Hewlett-Packard Development Company, L.P. | Method, system, and data structure for monitoring transaction performance in a managed computer network environment |
| US7269717B2 (en) | 2003-02-13 | 2007-09-11 | Sun Microsystems, Inc. | Method for reducing lock manipulation overhead during access to critical code sections |
| US7089374B2 (en) | 2003-02-13 | 2006-08-08 | Sun Microsystems, Inc. | Selectively unmarking load-marked cache lines during transactional program execution |
| US6862664B2 (en) | 2003-02-13 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus for avoiding locks by speculatively executing critical sections |
| US7269693B2 (en) | 2003-02-13 | 2007-09-11 | Sun Microsystems, Inc. | Selectively monitoring stores to support transactional program execution |
| US6938130B2 (en) | 2003-02-13 | 2005-08-30 | Sun Microsystems Inc. | Method and apparatus for delaying interfering accesses from other threads during transactional program execution |
| US7398355B1 (en) | 2003-02-13 | 2008-07-08 | Sun Microsystems, Inc. | Avoiding locks by transactionally executing critical sections |
| US7143273B2 (en) | 2003-03-31 | 2006-11-28 | Intel Corporation | Method and apparatus for dynamic branch prediction utilizing multiple stew algorithms for indexing a global history |
| US7398359B1 (en) * | 2003-04-30 | 2008-07-08 | Silicon Graphics, Inc. | System and method for performing memory operations in a computing system |
| WO2004104819A1 (ja) | 2003-05-23 | 2004-12-02 | Nippon Telegraph And Telephone Corporation | 並列処理装置及び並列処理方法 |
| CA2472887A1 (en) | 2003-06-30 | 2004-12-30 | Gravic, Inc. | Methods for ensuring referential integrity in multithreaded replication engines |
| US7836450B2 (en) | 2003-08-28 | 2010-11-16 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
| US7197586B2 (en) | 2004-01-14 | 2007-03-27 | International Business Machines Corporation | Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler |
| CN1947144A (zh) * | 2004-02-24 | 2007-04-11 | 第一数据公司 | 事务处理的系统和方法 |
| US8825615B2 (en) | 2004-05-11 | 2014-09-02 | Oracle International Corporation | Simplifying implementation of custom atomic transactions in a programming environment |
| US7703098B1 (en) | 2004-07-20 | 2010-04-20 | Sun Microsystems, Inc. | Technique to allow a first transaction to wait on condition that affects its working set |
| US7206903B1 (en) | 2004-07-20 | 2007-04-17 | Sun Microsystems, Inc. | Method and apparatus for releasing memory locations during transactional execution |
| US7395382B1 (en) | 2004-08-10 | 2008-07-01 | Sun Microsystems, Inc. | Hybrid software/hardware transactional memory |
| US7840785B1 (en) | 2004-09-14 | 2010-11-23 | Azul Systems, Inc. | Transparent concurrent atomic execution |
| US20060064508A1 (en) | 2004-09-17 | 2006-03-23 | Ramesh Panwar | Method and system to store and retrieve message packet data in a communications network |
| US7373554B2 (en) | 2004-09-24 | 2008-05-13 | Oracle International Corporation | Techniques for automatic software error diagnostics and correction |
| US7856537B2 (en) | 2004-09-30 | 2010-12-21 | Intel Corporation | Hybrid hardware and software implementation of transactional memory access |
| EP1657118A1 (en) | 2004-11-11 | 2006-05-17 | IEE INTERNATIONAL ELECTRONICS & ENGINEERING S.A. | Collision recognition device for a vehicle |
| US7984248B2 (en) | 2004-12-29 | 2011-07-19 | Intel Corporation | Transaction based shared data operations in a multiprocessor environment |
| US7631073B2 (en) | 2005-01-27 | 2009-12-08 | International Business Machines Corporation | Method and apparatus for exposing monitoring violations to the monitored application |
| US20060212757A1 (en) | 2005-03-15 | 2006-09-21 | International Business Machines Corporation | Method, system, and program product for managing computer-based interruptions |
| US7421544B1 (en) | 2005-04-04 | 2008-09-02 | Sun Microsystems, Inc. | Facilitating concurrent non-transactional execution in a transactional memory system |
| US7496726B1 (en) | 2005-04-18 | 2009-02-24 | Sun Microsystems, Inc. | Controlling contention via transactional timers among conflicting transactions issued by processors operating in insistent or polite mode |
| US7464161B2 (en) | 2005-06-06 | 2008-12-09 | International Business Machines Corporation | Enabling and disabling byte code inserted probes based on transaction monitoring tokens |
| US7350034B2 (en) | 2005-06-20 | 2008-03-25 | International Business Machines Corporation | Architecture support of best-effort atomic transactions for multiprocessor systems |
| US7882339B2 (en) | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
| US7702825B2 (en) | 2005-06-29 | 2010-04-20 | Intel Corporation | Enhancements to universal serial bus (USB) suspend and resume operations |
| US20070005828A1 (en) | 2005-06-30 | 2007-01-04 | Nimrod Diamant | Interrupts support for the KCS manageability interface |
| CA2551045C (en) | 2005-06-30 | 2008-04-22 | Hitachi, Ltd. | Input-output control apparatus, input-output control method, process control apparatus and process control method |
| CN1713164A (zh) | 2005-07-21 | 2005-12-28 | 复旦大学 | 可自主处理多事务传输要求的dma控制器及数据传输方法 |
| JP2009508187A (ja) | 2005-08-01 | 2009-02-26 | サン・マイクロシステムズ・インコーポレーテッド | クリティカルセクションをトランザクション的に実行することによるロックの回避 |
| US20070061555A1 (en) | 2005-09-15 | 2007-03-15 | St Clair Michael | Call return tracking technique |
| US7870369B1 (en) | 2005-09-28 | 2011-01-11 | Oracle America, Inc. | Abort prioritization in a trace-based processor |
| CN100365604C (zh) | 2005-12-02 | 2008-01-30 | 北京中星微电子有限公司 | 一种中断控制处理装置和方法 |
| US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
| US20070136289A1 (en) | 2005-12-14 | 2007-06-14 | Intel Corporation | Lock elision with transactional memory |
| US7870545B2 (en) | 2005-12-16 | 2011-01-11 | Intel Corporation | Protecting shared variables in a software transactional memory system |
| US20070143755A1 (en) | 2005-12-16 | 2007-06-21 | Intel Corporation | Speculative execution past a barrier |
| US8117605B2 (en) | 2005-12-19 | 2012-02-14 | Oracle America, Inc. | Method and apparatus for improving transactional memory interactions by tracking object visibility |
| US7730286B2 (en) | 2005-12-30 | 2010-06-01 | Intel Corporation | Software assisted nested hardware transactions |
| US7810072B2 (en) | 2006-01-06 | 2010-10-05 | International Business Machines Corporation | Exception thrower |
| US20070186056A1 (en) | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
| US7617383B2 (en) | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
| US8065499B2 (en) * | 2006-02-22 | 2011-11-22 | Oracle America, Inc. | Methods and apparatus to implement parallel transactions |
| US8099538B2 (en) | 2006-03-29 | 2012-01-17 | Intel Corporation | Increasing functionality of a reader-writer lock |
| US8180967B2 (en) * | 2006-03-30 | 2012-05-15 | Intel Corporation | Transactional memory virtualization |
| US8180977B2 (en) * | 2006-03-30 | 2012-05-15 | Intel Corporation | Transactional memory in out-of-order processors |
| US7930695B2 (en) | 2006-04-06 | 2011-04-19 | Oracle America, Inc. | Method and apparatus for synchronizing threads on a processor that supports transactional memory |
| US7636829B2 (en) | 2006-05-02 | 2009-12-22 | Intel Corporation | System and method for allocating and deallocating memory within transactional code |
| US7594094B2 (en) | 2006-05-19 | 2009-09-22 | International Business Machines Corporation | Move data facility with optional specifications |
| US7707394B2 (en) | 2006-05-30 | 2010-04-27 | Arm Limited | Reducing the size of a data stream produced during instruction tracing |
| US7849446B2 (en) | 2006-06-09 | 2010-12-07 | Oracle America, Inc. | Replay debugging |
| MY149658A (en) | 2006-06-12 | 2013-09-30 | Mobile Money Internat Sdn Bhd | Transaction server |
| US20070300013A1 (en) | 2006-06-21 | 2007-12-27 | Manabu Kitamura | Storage system having transaction monitoring capability |
| US20080005504A1 (en) | 2006-06-30 | 2008-01-03 | Jesse Barnes | Global overflow method for virtualized transactional memory |
| US20080016325A1 (en) | 2006-07-12 | 2008-01-17 | Laudon James P | Using windowed register file to checkpoint register state |
| US7617421B2 (en) | 2006-07-27 | 2009-11-10 | Sun Microsystems, Inc. | Method and apparatus for reporting failure conditions during transactional execution |
| US7748618B2 (en) | 2006-08-21 | 2010-07-06 | Verizon Patent And Licensing Inc. | Secure near field transaction |
| US7865885B2 (en) | 2006-09-27 | 2011-01-04 | Intel Corporation | Using transactional memory for precise exception handling in aggressive dynamic binary optimizations |
| US20080086516A1 (en) | 2006-10-04 | 2008-04-10 | Oracle International | Automatically changing a database system's redo transport mode to dynamically adapt to changing workload and network conditions |
| DE602006008802D1 (de) | 2006-11-06 | 2009-10-08 | Gm Global Tech Operations Inc | Verfahren zum Betreiben eines Partikelfilters, Programm für einen Rechner und dafür vorgesehene Regelvorrichtung |
| CN101178787A (zh) | 2006-11-10 | 2008-05-14 | 上海市卢湾区东南医院 | 用于社区老干部保健管理的信息沟通方法 |
| US7669040B2 (en) | 2006-12-15 | 2010-02-23 | Sun Microsystems, Inc. | Method and apparatus for executing a long transaction |
| JP2008165370A (ja) | 2006-12-27 | 2008-07-17 | Internatl Business Mach Corp <Ibm> | オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。 |
| US8086827B2 (en) | 2006-12-28 | 2011-12-27 | Intel Corporation | Mechanism for irrevocable transactions |
| US7802136B2 (en) | 2006-12-28 | 2010-09-21 | Intel Corporation | Compiler technique for efficient register checkpointing to support transaction roll-back |
| US7627743B2 (en) | 2007-01-12 | 2009-12-01 | Andes Technology Corporation | Method and circuit implementation for multiple-word transfer into/from memory subsystems |
| US20080244544A1 (en) | 2007-03-29 | 2008-10-02 | Naveen Neelakantam | Using hardware checkpoints to support software based speculation |
| US8332374B2 (en) | 2007-04-13 | 2012-12-11 | Oracle America, Inc. | Efficient implicit privatization of transactional memory |
| US8117403B2 (en) | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
| US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
| US7814378B2 (en) | 2007-05-18 | 2010-10-12 | Oracle America, Inc. | Verification of memory consistency and transactional memory |
| US20080320282A1 (en) | 2007-06-22 | 2008-12-25 | Morris Robert P | Method And Systems For Providing Transaction Support For Executable Program Components |
| US8266387B2 (en) | 2007-06-27 | 2012-09-11 | Microsoft Corporation | Leveraging transactional memory hardware to accelerate virtualization emulation |
| US7779232B2 (en) | 2007-08-28 | 2010-08-17 | International Business Machines Corporation | Method and apparatus for dynamically managing instruction buffer depths for non-predicted branches |
| US8209689B2 (en) | 2007-09-12 | 2012-06-26 | Intel Corporation | Live lock free priority scheme for memory transactions in transactional memory |
| US7904434B2 (en) | 2007-09-14 | 2011-03-08 | Oracle International Corporation | Framework for handling business transactions |
| US7890472B2 (en) | 2007-09-18 | 2011-02-15 | Microsoft Corporation | Parallel nested transactions in transactional memory |
| US20090127332A1 (en) | 2007-11-16 | 2009-05-21 | Kyung Yang Park | System for processing payment employing off-line transaction approval mode of mobile card and method thereof |
| US20090138890A1 (en) | 2007-11-21 | 2009-05-28 | Arm Limited | Contention management for a hardware transactional memory |
| CN101170747A (zh) | 2007-11-30 | 2008-04-30 | 中兴通讯股份有限公司 | 中继状态调节方法和装置 |
| US9391789B2 (en) | 2007-12-14 | 2016-07-12 | Qualcomm Incorporated | Method and system for multi-level distribution information cache management in a mobile environment |
| US8145878B2 (en) | 2007-12-17 | 2012-03-27 | Intel Corporation | Accessing control and status register (CSR) |
| US8195898B2 (en) | 2007-12-27 | 2012-06-05 | Intel Corporation | Hybrid transactions for low-overhead speculative parallelization |
| US8065491B2 (en) * | 2007-12-30 | 2011-11-22 | Intel Corporation | Efficient non-transactional write barriers for strong atomicity |
| US8706982B2 (en) * | 2007-12-30 | 2014-04-22 | Intel Corporation | Mechanisms for strong atomicity in a transactional memory system |
| US7966459B2 (en) * | 2007-12-31 | 2011-06-21 | Oracle America, Inc. | System and method for supporting phased transactional memory modes |
| US8140497B2 (en) | 2007-12-31 | 2012-03-20 | Oracle America, Inc. | System and method for implementing nonblocking zero-indirection transactional memory |
| US20090182983A1 (en) | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Compare and Branch Facility and Instruction Therefore |
| US8041900B2 (en) | 2008-01-15 | 2011-10-18 | Oracle America, Inc. | Method and apparatus for improving transactional memory commit latency |
| US20090187906A1 (en) * | 2008-01-23 | 2009-07-23 | Sun Microsystems, Inc. | Semi-ordered transactions |
| US8176279B2 (en) | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Managing use of storage by multiple pageable guests of a computing environment |
| US8380907B2 (en) | 2008-02-26 | 2013-02-19 | International Business Machines Corporation | Method, system and computer program product for providing filtering of GUEST2 quiesce requests |
| US8161273B2 (en) | 2008-02-26 | 2012-04-17 | Oracle America, Inc. | Method and apparatus for programmatically rewinding a register inside a transaction |
| US8688628B2 (en) | 2008-02-29 | 2014-04-01 | Red Hat, Inc. | Nested queued transaction manager |
| EP2096564B1 (en) | 2008-02-29 | 2018-08-08 | Euroclear SA/NV | Improvements relating to handling and processing of massive numbers of processing instructions in real time |
| US8316366B2 (en) | 2008-04-02 | 2012-11-20 | Oracle America, Inc. | Facilitating transactional execution in a processor that supports simultaneous speculative threading |
| US20090260011A1 (en) | 2008-04-14 | 2009-10-15 | Microsoft Corporation | Command line transactions |
| JP5385545B2 (ja) | 2008-04-17 | 2014-01-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トランザクションの実行を制御する装置及び方法 |
| US9367363B2 (en) | 2008-05-12 | 2016-06-14 | Oracle America, Inc. | System and method for integrating best effort hardware mechanisms for supporting transactional memory |
| US8612950B2 (en) * | 2008-06-19 | 2013-12-17 | Intel Corporation | Dynamic optimization for removal of strong atomicity barriers |
| US7996686B2 (en) | 2008-07-07 | 2011-08-09 | International Business Machines Corporation | Branch trace methodology |
| US9372718B2 (en) | 2008-07-28 | 2016-06-21 | Advanced Micro Devices, Inc. | Virtualizable advanced synchronization facility |
| US9449314B2 (en) | 2008-10-02 | 2016-09-20 | International Business Machines Corporation | Virtualization of a central processing unit measurement facility |
| US8191046B2 (en) | 2008-10-06 | 2012-05-29 | Microsoft Corporation | Checking transactional memory implementations |
| US20100205628A1 (en) | 2009-02-12 | 2010-08-12 | Davis Bruce L | Media processing methods and arrangements |
| US20100122073A1 (en) | 2008-11-10 | 2010-05-13 | Ravi Narayanaswamy | Handling exceptions in software transactional memory systems |
| JP4702962B2 (ja) | 2008-11-12 | 2011-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリ制御装置、プログラム及び方法 |
| US8789057B2 (en) | 2008-12-03 | 2014-07-22 | Oracle America, Inc. | System and method for reducing serialization in transactional memory using gang release of blocked threads |
| US20100153776A1 (en) | 2008-12-12 | 2010-06-17 | Sun Microsystems, Inc. | Using safepoints to provide precise exception semantics for a virtual machine |
| US10210018B2 (en) | 2008-12-24 | 2019-02-19 | Intel Corporation | Optimizing quiescence in a software transactional memory (STM) system |
| US9274855B2 (en) | 2008-12-24 | 2016-03-01 | Intel Corporation | Optimization for safe elimination of weak atomicity overhead |
| US8914620B2 (en) | 2008-12-29 | 2014-12-16 | Oracle America, Inc. | Method and system for reducing abort rates in speculative lock elision using contention management mechanisms |
| US8799582B2 (en) | 2008-12-30 | 2014-08-05 | Intel Corporation | Extending cache coherency protocols to support locally buffered data |
| US9785462B2 (en) | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
| CN101710433A (zh) | 2008-12-31 | 2010-05-19 | 深圳市江波龙电子有限公司 | 一种电子支付卡的交易方法及电子支付卡 |
| US9170844B2 (en) | 2009-01-02 | 2015-10-27 | International Business Machines Corporation | Prioritization for conflict arbitration in transactional memory management |
| CN101819518B (zh) | 2009-02-26 | 2013-09-11 | 国际商业机器公司 | 在事务内存中快速保存上下文的方法和装置 |
| US8266107B2 (en) | 2009-03-11 | 2012-09-11 | International Business Machines Corporation | Method for mirroring a log file by threshold driven synchronization |
| US9940138B2 (en) | 2009-04-08 | 2018-04-10 | Intel Corporation | Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations |
| US20100307689A1 (en) | 2009-06-06 | 2010-12-09 | Michael James Huebner | Pivoting tape dispenser |
| US8489864B2 (en) * | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
| GB2484416B (en) | 2009-06-26 | 2015-02-25 | Intel Corp | Optimizations for an unbounded transactional memory (utm) system |
| US8973004B2 (en) | 2009-06-26 | 2015-03-03 | Oracle America, Inc. | Transactional locking with read-write locks in transactional memory systems |
| US8356166B2 (en) | 2009-06-26 | 2013-01-15 | Microsoft Corporation | Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers |
| US8229907B2 (en) | 2009-06-30 | 2012-07-24 | Microsoft Corporation | Hardware accelerated transactional memory system with open nested transactions |
| US8281185B2 (en) | 2009-06-30 | 2012-10-02 | Oracle America, Inc. | Advice-based feedback for transactional execution |
| US8688964B2 (en) | 2009-07-20 | 2014-04-01 | Microchip Technology Incorporated | Programmable exception processing latency |
| GB2472620B (en) | 2009-08-12 | 2016-05-18 | Cloudtran Inc | Distributed transaction processing |
| US8392694B2 (en) | 2009-09-15 | 2013-03-05 | International Business Machines Corporation | System and method for software initiated checkpoint operations |
| GB2474446A (en) | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
| US8327188B2 (en) | 2009-11-13 | 2012-12-04 | Oracle America, Inc. | Hardware transactional memory acceleration through multiple failure recovery |
| US8516202B2 (en) | 2009-11-16 | 2013-08-20 | International Business Machines Corporation | Hybrid transactional memory system (HybridTM) and method |
| US9529839B2 (en) | 2009-12-07 | 2016-12-27 | International Business Machines Corporation | Applying limited-size hardware transactional memory to arbitrarily large data structure |
| US8521995B2 (en) | 2009-12-15 | 2013-08-27 | Intel Corporation | Handling operating system (OS) transitions in an unbounded transactional memory (UTM) mode |
| US9092253B2 (en) | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
| US8290991B2 (en) | 2009-12-15 | 2012-10-16 | Juniper Networks, Inc. | Atomic deletion of database data categories |
| US8095824B2 (en) | 2009-12-15 | 2012-01-10 | Intel Corporation | Performing mode switching in an unbounded transactional memory (UTM) system |
| US8316194B2 (en) | 2009-12-15 | 2012-11-20 | Intel Corporation | Mechanisms to accelerate transactions using buffered stores |
| US8301849B2 (en) | 2009-12-23 | 2012-10-30 | Intel Corporation | Transactional memory in out-of-order processors with XABORT having immediate argument |
| US20110161371A1 (en) | 2009-12-29 | 2011-06-30 | Microgen Plc | Sql generation |
| KR101639672B1 (ko) | 2010-01-05 | 2016-07-15 | 삼성전자주식회사 | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 |
| CN101826000A (zh) | 2010-01-29 | 2010-09-08 | 北京龙芯中科技术服务中心有限公司 | 流水线微处理器的中断响应确定方法、装置及微处理器核 |
| US8549468B2 (en) | 2010-02-08 | 2013-10-01 | National Tsing Hua University | Method, system and computer readable storage device for generating software transaction-level modeling (TLM) model |
| US8850166B2 (en) | 2010-02-18 | 2014-09-30 | International Business Machines Corporation | Load pair disjoint facility and instruction therefore |
| US20110208921A1 (en) * | 2010-02-19 | 2011-08-25 | Pohlack Martin T | Inverted default semantics for in-speculative-region memory accesses |
| US8739164B2 (en) * | 2010-02-24 | 2014-05-27 | Advanced Micro Devices, Inc. | Automatic suspend atomic hardware transactional memory in response to detecting an implicit suspend condition and resume thereof |
| US8438568B2 (en) | 2010-02-24 | 2013-05-07 | International Business Machines Corporation | Speculative thread execution with hardware transactional memory |
| US8402227B2 (en) | 2010-03-31 | 2013-03-19 | Oracle International Corporation | System and method for committing results of a software transaction using a hardware transaction |
| US8464261B2 (en) | 2010-03-31 | 2013-06-11 | Oracle International Corporation | System and method for executing a transaction using parallel co-transactions |
| US8631223B2 (en) * | 2010-05-12 | 2014-01-14 | International Business Machines Corporation | Register file supporting transactional processing |
| US9626187B2 (en) | 2010-05-27 | 2017-04-18 | International Business Machines Corporation | Transactional memory system supporting unbroken suspended execution |
| US20110302143A1 (en) | 2010-06-02 | 2011-12-08 | Microsoft Corporation | Multi-version concurrency with ordered timestamps |
| US9880848B2 (en) | 2010-06-11 | 2018-01-30 | Advanced Micro Devices, Inc. | Processor support for hardware transactional memory |
| US8560816B2 (en) | 2010-06-30 | 2013-10-15 | Oracle International Corporation | System and method for performing incremental register checkpointing in transactional memory |
| US8479053B2 (en) | 2010-07-28 | 2013-07-02 | Intel Corporation | Processor with last branch record register storing transaction indicator |
| US8561033B2 (en) | 2010-07-30 | 2013-10-15 | International Business Machines Corporation | Selective branch-triggered trace generation apparatus and method |
| US8549504B2 (en) | 2010-09-25 | 2013-10-01 | Intel Corporation | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region |
| US8424015B2 (en) | 2010-09-30 | 2013-04-16 | International Business Machines Corporation | Transactional memory preemption mechanism |
| US9552206B2 (en) | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
| US8788794B2 (en) | 2010-12-07 | 2014-07-22 | Advanced Micro Devices, Inc. | Programmable atomic memory using stored atomic procedures |
| US9122476B2 (en) | 2010-12-07 | 2015-09-01 | Advanced Micro Devices, Inc. | Programmable atomic memory using hardware validation agent |
| US8442962B2 (en) | 2010-12-28 | 2013-05-14 | Sap Ag | Distributed transaction management using two-phase commit optimization |
| US8818867B2 (en) | 2011-11-14 | 2014-08-26 | At&T Intellectual Property I, L.P. | Security token for mobile near field communication transactions |
| US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
| US9158660B2 (en) | 2012-03-16 | 2015-10-13 | International Business Machines Corporation | Controlling operation of a run-time instrumentation facility |
| US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
| US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
| US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
| US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
| US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
| US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
| US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
| US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
| US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
| US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
| US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
| US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
| US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US9311101B2 (en) | 2012-06-15 | 2016-04-12 | International Business Machines Corporation | Intra-instructional transaction abort handling |
| US8964390B2 (en) | 2012-11-08 | 2015-02-24 | International Business Machines Corporation | Sectioned manifolds facilitating pumped immersion-cooling of electronic components |
| US9348522B2 (en) | 2013-12-12 | 2016-05-24 | International Business Machines Corporation | Software indications and hints for coalescing memory transactions |
-
2012
- 2012-06-15 US US13/524,887 patent/US20130339680A1/en not_active Abandoned
- 2012-11-15 RU RU2012148587/08A patent/RU2568324C2/ru active
- 2012-11-22 ES ES12878682.9T patent/ES2620704T3/es active Active
- 2012-11-22 CA CA2874176A patent/CA2874176C/en active Active
- 2012-11-22 EP EP12878682.9A patent/EP2834736B1/en active Active
- 2012-11-22 CN CN201280073580.6A patent/CN104350468B/zh active Active
- 2012-11-22 WO PCT/IB2012/056625 patent/WO2013186601A1/en not_active Ceased
- 2012-11-22 DK DK12878682.9T patent/DK2834736T3/en active
- 2012-11-22 AU AU2012382776A patent/AU2012382776B2/en active Active
- 2012-11-22 PL PL12878682T patent/PL2834736T3/pl unknown
- 2012-11-22 MX MX2014015284A patent/MX355090B/es active IP Right Grant
- 2012-11-22 SG SG11201407473XA patent/SG11201407473XA/en unknown
- 2012-11-22 PT PT128786829T patent/PT2834736T/pt unknown
- 2012-11-22 LT LTEP12878682.9T patent/LT2834736T/lt unknown
- 2012-11-22 BR BR112014031432-2A patent/BR112014031432B1/pt active IP Right Grant
- 2012-11-22 HR HRP20170426TT patent/HRP20170426T1/hr unknown
- 2012-11-22 JP JP2015516692A patent/JP6091608B2/ja active Active
- 2012-11-22 HU HUE12878682A patent/HUE033506T2/en unknown
- 2012-11-22 KR KR1020147031233A patent/KR101625322B1/ko active Active
- 2012-11-22 SI SI201230900A patent/SI2834736T1/sl unknown
-
2013
- 2013-03-03 US US13/783,359 patent/US10606597B2/en active Active
- 2013-05-10 TW TW102116771A patent/TWI574207B/zh active
-
2014
- 2014-11-04 ZA ZA2014/08078A patent/ZA201408078B/en unknown
- 2014-12-14 IL IL236251A patent/IL236251B/en active IP Right Grant
-
2016
- 2016-01-12 US US14/993,370 patent/US10599435B2/en active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2720133T3 (es) | Guardar/restablecer registros seleccionados en procesamiento transaccional | |
| EP2862081B1 (en) | Transactional execution branch indications | |
| ES2719685T3 (es) | Filtrado de interrupción de programa en ejecución transaccional | |
| EP2862080B1 (en) | Program event recording within a transactional environment | |
| EP2834739B1 (en) | Transaction diagnostic block | |
| US10185588B2 (en) | Transaction begin/end instructions | |
| US9983915B2 (en) | Facilitating transaction completion subsequent to repeated aborts of the transaction | |
| RU2568324C2 (ru) | Команда на нетранзакционное сохранение | |
| EP2862070B1 (en) | Transactional processing | |
| US9442737B2 (en) | Restricting processing within a processor to facilitate transaction completion | |
| EP2862083B1 (en) | Processor assist facility | |
| EP2862079B1 (en) | Randomized testing within transactional execution | |
| HK1207446B (en) | Transactional execution branch indications | |
| HK1207702B (en) | Program event recording within a transactional environment | |
| HK1207445B (en) | Randomized testing within transactional execution | |
| HK1207443B (en) | Processor assist facility | |
| HK1207700B (en) | Saving/restoring selected registers in transactional processing |