Differences

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

Link to this comparison view

Both sides previous revision Previous revision
fpga_architecture_for_computing [2020/11/26 22:45]
edit [Network Function Acceleration]
fpga_architecture_for_computing [2020/11/26 22:54] (current)
edit [Network Function Acceleration]
Line 45: Line 45:
  
  
-(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.