ES2620704T3 - Instrucción de almacenamiento no transaccional - Google Patents

Instrucción de almacenamiento no transaccional Download PDF

Info

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
Application number
ES12878682.9T
Other languages
English (en)
Inventor
Dan Greiner
Christian Jacobi
Timothy Slegel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of ES2620704T3 publication Critical patent/ES2620704T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction 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

imagen1
imagen2
imagen3
imagen4
imagen5
imagen6
imagen7
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
imagen8
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
imagen9
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
imagen10
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);
5 COMPARACIÓN LÓGICA Y DERIVACIÓN RELATIVA (CLRJ, CLGRJ); COMPARACIÓN LÓGICA INMEDIATA Y DERIVACIÓN (CLIB, CLGIB); Y COMPARACIÓN LÓGICA INMEDIATA Y DERIVACIÓN RELATIVA (CLIJ, CLGIJ).
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
imagen11
imagen12
imagen13
imagen14
imagen15
imagen16
imagen17
imagen18
imagen19
imagen20
imagen21
imagen22
imagen23
imagen24
imagen25

Claims (1)

  1. imagen1
    imagen2
    imagen3
ES12878682.9T 2012-06-15 2012-11-22 Instrucción de almacenamiento no transaccional Active ES2620704T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 &amp; 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

Also Published As

Publication number Publication date
US20130339680A1 (en) 2013-12-19
WO2013186601A1 (en) 2013-12-19
PL2834736T3 (pl) 2017-09-29
TW201413592A (zh) 2014-04-01
RU2568324C2 (ru) 2015-11-20
AU2012382776A1 (en) 2014-12-11
MX2014015284A (es) 2015-04-13
JP6091608B2 (ja) 2017-03-08
HUE033506T2 (en) 2017-12-28
MX355090B (es) 2018-04-04
JP2015523653A (ja) 2015-08-13
US20130339669A1 (en) 2013-12-19
CN104350468B (zh) 2017-11-14
IL236251A0 (en) 2015-01-29
IL236251B (en) 2018-12-31
SG11201407473XA (en) 2015-01-29
LT2834736T (lt) 2017-06-12
AU2012382776B2 (en) 2016-08-04
ZA201408078B (en) 2016-05-25
KR20150004829A (ko) 2015-01-13
CN104350468A (zh) 2015-02-11
BR112014031432A2 (pt) 2017-06-27
CA2874176A1 (en) 2013-12-19
US10599435B2 (en) 2020-03-24
PT2834736T (pt) 2017-04-03
EP2834736A4 (en) 2015-05-20
EP2834736A1 (en) 2015-02-11
US10606597B2 (en) 2020-03-31
EP2834736B1 (en) 2017-02-22
RU2012148587A (ru) 2014-05-20
BR112014031432B1 (pt) 2021-07-27
SI2834736T1 (sl) 2017-04-26
KR101625322B1 (ko) 2016-05-27
US20160124748A1 (en) 2016-05-05
HRP20170426T1 (hr) 2017-06-16
TWI574207B (zh) 2017-03-11
CA2874176C (en) 2020-03-10
DK2834736T3 (en) 2017-04-10

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