With ever-increasing amounts of data flooding our networks, we have seen a rise in the need for technology and infrastructure that would allow us faster and more efficient real-time processing and lessen the load on servers. This has led to the advent of SmartNICs — the use of domain-specific programmable devices with high processing capabilities in the network layer, which can minimize the burden on the host systems and allow data processing and management at the network level by offloading tasks from the host systems. Network devices such as Network Interface Cards (NICs) and switches, used to be fixed-function, supporting only the capabilities specified by the device’s vendor. Programmable network devices like SmartNICs, on the other hand, let users program them to run applications on the network. Such access to programmable networks and offloading infrastructure tasks onto the network empowers administrators to efficiently optimize database systems by utilizing the underlying network hardware to offer scalability, programmability, and security, among many advantages, all while being less reliable on the host CPUs, ultimately leading to more efficient and robust database operations. In modern data centers, network layer devices with computation abilities are predominantly implemented as SoCs and ASICs for custom hardware solutions. These programmable yet fixed-hardware solutions might offer robust performance for their intended purpose they can be less adaptable to rapidly changing data center requirements compared to more flexible solutions like FPGAs. For instance, ASICs designed for handling IPV4 protocol might need to be replaced with a re-designed ASIC/SoC card to be compatible with IPV6 traffic. This is where configurable hardware comes into the picture, where FPGAs are deployed and configured/re-configured on the go to handle the changing demands of the network. One prominent example of programmable silicon hardware i.e FPGAs being utilized in cloud computing to augment CPU performance is Microsoft’s Project Catapult whose nodes are powered by Altera Stratix V D5 FPGAs.
We intend to explore FPGA-based SmartNICs, which are configurable hardware devices in contrast to SoC and ASIC solutions, used in in-network computing for offloading the tasks from the host to the network itself. One of the most crucial requirements of offloading tasks between devices on the network is efficient memory access, which often encounters bottlenecks due to limitations in communication protocols and data transfer methods.