CAPI CAPI is implemented as a functional unit inside the CPU, called the Coherent Accelerator Processor Proxy (CAPP) with a corresponding unit on the accelerator called the Power Service Layer (PSL). The CAPP and PSL units acts like a cache directory so the attached device and the CPU can share the same coherent memory space, and the accelerator becomes an Accelerator Function Unit (AFU), a peer to other functional units integrated in the CPU. Since the CPU and AFU share the same memory space, low latency and high speeds can be achieved since the CPU doesn't have to do memory translations and memory shuffling between the CPU's main memory and the accelerator's memory spaces. An application can make use of the accelerator without specific device drivers as everything is enabled by a general CAPI kernel extension in the host operating system. The CPU and PSL can read and write directly to each other's memories and registers, as demanded by the application.
CAPI CAPI is layered on top of
PCIe Gen 3, using 16 PCIe lanes, and is an additional functionality for the PCIe slots on CAPI enabled systems. Usually there are designated CAPI enabled PCIe slots on such machines. Since there is only one CAPP per POWER8 processor the number of possible CAPI units are determined by the number of POWER8 processors, regardless of how many PCIe slots there are. In certain POWER8 systems, IBM makes use of dual chip modules, thus doubling the CAPI capacity per processor socket. Traditional transactions between a PCIe device and a CPU can take around 20,000 operations, whereas a CAPI attached device will only use around 500, significantly reducing latency, and effectively increasing bandwidth due to decreased operations overhead.
CAPI 2 CAPI-2 is an incremental evolution of the technology introduced with IBM POWER9 processor.
OpenCAPI 3 OpenCAPI, formerly
New CAPI or
CAPI 3.0, is not layered on top of PCIe and will therefore not use PCIe slots. In IBM's CPU
POWER9 it will use the
Bluelink 25G I/O facility that it shares with
NVLink 2.0, peaking at 50 GB/s. OpenCAPI doesn't need the PSL unit (required for CAPI 1 and 2) in the accelerator, as it's not layered on top of PCIe but uses its own transaction protocol.
OpenCAPI 4 Planned for future chip after the General Availability of POWER9.
OMI OpenCAPI Memory Interface (OMI) is a
serial attached RAM technology based on OpenCAPI, providing
low latency,
high bandwidth connection for main memory. OMI uses a controller chip on the memory modules that allows for technology agnostic approach to what is used on the modules, be it
DDR4,
DDR5,
HBM or storage class
non-volatile RAM. An OMI based CPU can therefore change RAM type by changing the memory modules. A serial connection uses less floorspace for the interface on the CPU die therefore potentially allowing more of them compared to using common DDR memory. OMI is implemented in IBM's
Power10 CPU, which has 8 OMI memory controllers on-chip, allowing for 4 TB RAM and 410 GB/s memory bandwidth per processor. These DDIMMs (Differential Dynamic Memory Module) includes an OMI controller and memory buffer, and can address individual memory chips for fault tolerance and redundancy purposes.
Microchip Technology manufactures the OMI controller on the DDIMMs. Their SMC 1000 OpenCAPI memory is described as "the next progression in the market adopting serial attached memory."{{citation == See also ==