CPC G06F 12/10 (2013.01) [G06F 3/0607 (2013.01); G06F 3/065 (2013.01); G06F 9/30036 (2013.01); G06F 9/30123 (2013.01); G06F 9/3877 (2013.01); G06F 11/1004 (2013.01); G06F 11/1088 (2013.01); G06F 12/0246 (2013.01); G06F 12/0815 (2013.01); G06F 12/12 (2013.01); G06F 12/1408 (2013.01); G06F 3/0679 (2013.01); G06F 2212/1052 (2013.01); G06F 2212/657 (2013.01)] | 11 Claims |
1. A method comprising:
receiving, at a block device interface, an instruction to write data, the instruction comprising a memory location of the data;
copying the data to pinned memory;
indicating to a sender of the instruction that the data in the pinned memory has been written to one or more storage devices before performing one or more invertible transforms on the data;
performing, by a vector processor, the one or more invertible transforms on the data to generate transformed data;
writing the transformed data to the pinned memory; and
initiating a transfer of the transformed data from the pinned memory to the one or more storage devices in response to a block device driver determining that the transformed data must be moved from the pinned memory to the one or more storage devices,
wherein contents of the pinned memory are accessible by the vector processor and a central processing unit (CPU) directly over a data bus.
|