## 3.4.13 Extended Translation Facility 

The z/Architecture instruction set has instructions in support of the Extended Translation Facility. They are used in data conversion operations for Unicode data, which causes applications that are enabled for Unicode or globalization to be more efficient. These data-encoding formats are used in web services, grid, and on-demand environments in which XML and SOAP technologies are used. The High Level Assembler supports the Extended Translation Facility instructions. 

## 3.4.14 Instruction set extensions 

The processor supports the following instructions to support functions: 

GLYPH<SM590000> Hexadecimal floating point instructions for various unnormalized multiply and multiply add instructions. 

GLYPH<SM590000> Divide engine scheduler. 

GLYPH<SM590000> Second generation of BCD-RR architecture. 

GLYPH<SM590000> Modulo arithmetic. 

GLYPH<SM590000> Immediate instructions, including various add, compare, OR, exclusive-OR, subtract, load, and insert formats. The use of these instructions improves performance. 

GLYPH<SM590000> Load instructions for handling unsigned halfwords, such as those used for Unicode. 

GLYPH<SM590000> Cryptographic instructions, which are known as the MSA, offer the full complement of the AES, SHA-1, SHA-2, and DES algorithms. They also include functions for random number generation. 

GLYPH<SM590000> Extended Translate Facility-3 instructions, which are enhanced to conform with the current Unicode 4.0 standard. 

GLYPH<SM590000> Assist instructions that help eliminate hypervisor processor usage. 

GLYPH<SM590000> SIMD instructions, which allow the parallel processing of multiple elements in a single instruction. 

## 3.4.15 Transactional Execution 

The Transactional Execution (TX) capability, which is known in the industry as hardware transactional memory , runs a group of instructions atomically; that is, all of their results are committed or no result is committed. The execution is optimistic. The instructions are run, but previous state values are saved in a transactional memory. If the transaction succeeds, the saved values are discarded; otherwise, they are used to restore the original values. 

The Transaction Execution Facility provides instructions, including declaring the beginning and end of a transaction, and canceling the transaction. TX is expected to provide significant performance benefits and scalability by avoiding most locks. This benefit is especially important for heavily threaded applications, such as Java. 

## 3.4.16 Runtime Instrumentation 

Runtime Instrumentation (RI) is a hardware facility for managed run times, such as the Java Runtime Environment (JRE). RI allows dynamic optimization of code generation as it is being run. It requires fewer system resources than the current software-only profiling, and provides information about hardware and program characteristics. RI also enhances JRE in making the correct decision by providing real-time feedback. 

