System and method of interfacing co-processors and input/output devices via a main memory system
A system for interfacing with a co-processor or input/output device is disclosed. According to one embodiment, the system includes a computer processing unit, a memory module, a memory bus that connects the computer processing unit and the the memory module, and a co-processing unit or input/output device, wherein the memory bus also connects the co-processing unit or input/output device to the computer processing unit.
1. A co-processing or input/output (CPIO) module with a load-reduction dual in-line memory module (LRDIMM) interface, the CPIO module comprising:
a CPIO device;
a variable timing control circuit; and
a load-reduction dual in-line memory module (LRDIMM) interface configured to interface with a memory bus, the LRDIMM interface comprising data buffers to bridge data between the variable timing control circuit and the memory bus,
wherein the variable timing control circuit is operatively coupled between the LRDIMM interface and the GPIO device, and is configured to provide variable timing control to signaling between the variable timing control circuit and the LRDIMM interface.
2. The CPIO module of claim 1 , wherein the variable timing control circuit comprises per-lane delay compensation circuits that provide programmable launch times and lane de-skew on receive.
3. The CPIO module of claim 1 , wherein the signaling between the variable timing control circuit and the LRDIMM interface comprises a plurality of data strobes and the variable timing control circuit is configured to control launch times of the data strobes.
4. The CPIO module of claim 3 , wherein the variable timing control circuit has independent timing control of each data strobe.
5. The CPIO module of claim 1 , wherein the LRDINIM interface is a DDR-4 LRDIMM interface.
6. The CPIO module of claim 1 , wherein the CPIO device comprises a non-volatile storage device.
7. The CPIO module of claim 1 , wherein the CPIO device comprises a co-processing unit.
8. A computer system, comprising:
(a) a host;
(b) a memory bus;
(c) a co-processing or input/output (CPIO) module coupled to the host over the memory bus, the CPIO module comprising:
a CPIO device;
a variable timing control circuit; and
a load-reduction dual in-line memory module (LRDIMM) interface configured to interface with the memory bus, the LRDIMM interface comprising data buffers to bridge data between the variable timing control circuit and the memory bus,
wherein the CPIO variable timing control circuit is operatively coupled between the LRDIMM interface and the CPIO device, and is configured to provide variable timing control to signaling between the variable timing control circuit and the LRDIMM interface.
9. The computer system of claim 8 , wherein the variable timing control circuit comprises per-lane delay compensation circuits that provide programmable launch times and lane de-skew on receive.
10. The computer system of claim 8 , wherein the signaling between the variable timing control circuit and the LRDIMM interface comprises a plurality of data strobes and the variable timing control circuit is configured to control launch times of the data strobes.
11. The computer system of claim 10 , wherein the variable timing control circuit has independent timing control of each data strobe.
12. The computer system of claim 8 , wherein the LRDIMM interface is a DDR-4 LRDIMM interface.
13. The computer system of claim 8 , wherein the CPIO device comprises a non-volatile storage device.
14. The computer system of claim 8 , wherein the CPIO device comprises a co-processing unit.