CPACF supports DES, TDES, AES-128, AES-256, SHA-1, SHA-2, SHA-3, and True Random Number Generator. With the z15, CPACF supports Elliptic Curve Cryptography clear key, improving the performance of Elliptic Curve algorithms. The following algorithms are supported: EdDSA (Ed448, Ed25519), ECDSA (P-256, P-384, P-521), ECDH(P-256, P-384, P521, X25519, X448). Protected key signature creation is also supported. 

– IBM Integrated Accelerator for zEDC (On-chip Compression): The z15 is enhancing the compression by taking it from the I/O device level (zEDC Express feature) and moving it to the Nest Accelerator Unit on the processor chip, adding the Deflate compliant (lossless data compression algorithm), and GZIP (GNU zip - UNIX compression utility) compression and decompression support as hardware instructions. 

The IBM Integrated Accelerator for zEnterprise Data Compression (zEDC) provides on-chip compression (DEFLATE/gzip/zlib) services for all LPARs, whereas the zEDC Express PCIe feature was assigned to 15 LPARs only. 

This innovation results in improved compression performance and simplified management (no need to manage the zEDC Express PCIe features), on a processor chip level, without any delays associated with I/O requests, and with minimal CPU costs. The enhancement preserves the compatibility with an earlier version with the data that is compressed by zEDC Express features; data, which is compressed and written by zEDC Express features, is read and decompressed on the z15 and vice versa. This simplifies the migration to the z15 (on-chip compression removes the need to acquire zEDC Express PCIe features). 

## Transactional Execution Facility 

The Transactional Execution Facility, which is known in the industry as hardware transactional memory , allows instructions to be issued automatically. Therefore, all results  of the instructions in the group are committed or  no results  are committed, in a truly transactional manner. The execution is optimistic. 

The instructions are issued, but previous state values are saved in transactional memory. If the transaction succeeds, the saved values are discarded. If it fails, they are used to restore the original values. Software can test the success of execution and redrive the code (if needed) by using the same or a different path. 

The Transactional Execution Facility provides several instructions, including instructions to declare the start and end of a transaction and to cancel the transaction. This capability can provide performance benefits and scalability to workloads by helping to avoid most of the locks on data. This ability is especially important for heavily threaded applications, such as Java. 

## Guarded Storage Facility 

Also known as less-pausing garbage collection, Guarded Storage Facility is a function that was introduced with the z14 to enable enterprise scale Java applications to run without periodic pause for garbage collection on larger heaps. This facility improves Java performance by reducing program pauses during Java Garbage Collection. 

## Simultaneous multithreading 

Simultaneous multithreading (SMT) is built into the z15 IFLs, zIIPs, and SAPs, which allows more than one thread to simultaneously run in the same core and share all of its resources. This function improves the use of the cores and increases processing capacity. 

