Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
fpga_architecture_for_computing [2020/11/26 22:44] – [Network Function Acceleration] editfpga_architecture_for_computing [2020/11/26 22:45] – [Network Function Acceleration] edit
Line 45: Line 45:
  
  
-My earlier work on [[Cluster Computing |programmable and FPGA "Smart" NIC]].+(See also my earlier work on a kind of [[Cluster Computing |programmable and FPGA "Smart" NIC]]).
 ====CoRAM (Classic)==== ====CoRAM (Classic)====
 Our investigation into FPGA architecture for computing began in 2009 with the question: how should data-intensive FPGA compute kernels view and interact with external memory data.  In response, we developed the original CoRAM FPGA computing abstraction.  The goal of the CoRAM abstraction is to present the application developer with (1) a virtualized appearance of the FPGA’s resources (i.e., reconfigurable logic, external memory interfaces, and on-chip SRAMs) to hide low-level, non-portable platform-specific details, and (2) standardized, easy-to-use high-level interfaces for controlling data movements between the memory interfaces and the in-fabric computation kernels.   Besides simplifying application development, the virtualization and standardization of the CoRAM abstraction also make possible portable and scalable application development. Our investigation into FPGA architecture for computing began in 2009 with the question: how should data-intensive FPGA compute kernels view and interact with external memory data.  In response, we developed the original CoRAM FPGA computing abstraction.  The goal of the CoRAM abstraction is to present the application developer with (1) a virtualized appearance of the FPGA’s resources (i.e., reconfigurable logic, external memory interfaces, and on-chip SRAMs) to hide low-level, non-portable platform-specific details, and (2) standardized, easy-to-use high-level interfaces for controlling data movements between the memory interfaces and the in-fabric computation kernels.   Besides simplifying application development, the virtualization and standardization of the CoRAM abstraction also make possible portable and scalable application development.