Being up front: this is what I work on for IBM Systems. A buddy wrote this blog (<a href="https:&#x2F;&#x2F;www.ibm.com&#x2F;developerworks&#x2F;community&#x2F;blogs&#x2F;fe313521-2e95-46f2-817d-44a4f27eba32&#x2F;entry&#x2F;power8_capi_flash_in_memory_expansion_to_speed_data_access?lang=en" rel="nofollow">https:&#x2F;&#x2F;www.ibm.com&#x2F;developerworks&#x2F;community&#x2F;blogs&#x2F;fe313521-...</a>) with a little more info.<p>What we have is an IO offload accelerator that knows how to drive high bandwidth IOs to some external storage device. A user app doesn&#x27;t interact with the device - they make shared library calls to read or write data from a particular buffer, and the accelerator (because it&#x27;s cache coherent) can read &#x2F; write from the virtual address space of the user space program to satisfy the request as needed. This means that the IOs bypass the entire OS driver stack, since everything is a shared library call from user space.<p>So yep! That exists. :-) There&#x27;s other classes of accelerators out there too (and coming in the future as well). Adding additional function like compression or some form of indexing or search is stuff that we&#x27;ve talked about.<p>(edit) - <a href="https:&#x2F;&#x2F;github.com&#x2F;open-power&#x2F;capiflash" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;open-power&#x2F;capiflash</a> has the code for the shared libs, the APIs, and some examples.