BLOG / ... / Low-level

details

Low-level programming is machine-oriented and sits close to computer peripherals. Low-level programming allows the programmer to adapt the processor to precise minimum memory usage requirements while maintaining high performance.

Thumbnail of an article about SmartNIC vs. NIC: what is the difference?
SOFTWARE DEVELOPMENT
NETWORKS

SmartNIC vs. NIC: what is the difference?

Our everyday life is full of networking devices and applications. When we video conference at work or watch a new movie on a streaming service at home, we barely even think about how much data needs to be transferred to ensure their correct function. We use our mobile devices with high-speed Internet access and take that for granted. But underneath the efficient work of online applications lies the stable functioning of enormous data centers and telecommunication infrastructure. Since the amount of data that needs to be processed grows every day, we keep demanding more and more processing capabilities from the networking infrastructure.
Thumbnail of an article about An immersion in networking technologies: CodiLime's summary of the 2023 SmartNICs Summit
SOFTWARE DEVELOPMENT
NETWORKS

An immersion in networking technologies: CodiLime's summary of the 2023 SmartNICs Summit

The SmartNICs Summit 2023 is already behind us. The CodiLime team took the opportunity to attend and actively participate in engaging talks and insightful panels during this event. The SmartNICs Summitbrought together industry leaders such as Intel, AMD, Arm, NVIDIA, Achronix, Marvell, VMWare, F5, and Juniper Networks, along with other companies involved in developing SmartNICs. The conference covered a wide range of interesting topics and emerging trends in the field. The conference placed a strong emphasis on the increasing adoption of SmartNICs and the urgent need for industry-wide standards.
Thumbnail of an article about The upcoming SmartNICs Trends for 2023
SOFTWARE DEVELOPMENT

The upcoming SmartNICs Trends for 2023

Modern network infrastructure is in a state of constant evolution to meet the ever-growing demand for improvements in fields like connectivity parameters, infrastructure flexibility, or overall power consumption. Innovators on the market are trying to answer all those needs, and with this article, we would like to shed light on some of the trends resulting from those efforts. SmartNICs extend the boring NIC domain with “smart” elements. Different platforms can define their “smart” elements differently, but overall, those elements aim to improve the general parameters of network connections, reduce power consumption, and increase the flexibility of network infrastructure.
Thumbnail of an article about FPGA programming — introduction guide to HDL
SOFTWARE DEVELOPMENT

FPGA programming — introduction guide to HDL

The notion of “FPGA programming” may be a little misleading. Actually, unlike a CPU, there is no program to run on an FPGA. FPGA programming consists of creating a logic circuit that will perform a requested algorithm and describe it using a hardware description language. Consequently, the building blocks of this algorithm are not variables, conditions and a set of operations to be performed, but rather logic gates, adders, registers and multiplexers. The described circuit will eventually be compiled into logic modules - the building blocks of FPGAs.
Thumbnail of an article about FPGA — what is it and how can it be used?
SOFTWARE DEVELOPMENT

FPGA — what is it and how can it be used?

FPGA programming has been gaining momentum lately as it offers considerable benefits. It allows you to offload resource-hungry tasks to hardware and thus increase performance. FPGAs can be programmed and reprogrammed according to current needs, which is very cost effective in the long run. In this article, I explain what an FPGA is, how it can be programmed and how it can be used. A field-programmable gate array (FPGA) is an integrated circuit that can be programmed for a specific use after it has been manufactured.
Thumbnail of an article about Network ACL processing algorithms — optimizing firewall's performance
NETWORKS
SOFTWARE DEVELOPMENT

Network ACL processing algorithms — optimizing firewall's performance

A firewall is an important component in protecting a network from attacks. It allows configuration of what kind of traffic is allowed inside the network. So in a sense, a firewall is a barrier that can reject all suspicious connections at the very entrance to the network, making potential attacks significantly more difficult. There are many types of firewalls. In this article, we will focus only on simple stateless firewalls that work in the 3rd and 4th layer of the OSI model (L3 + L4 firewalls). Typically, a firewall uses a user-specified access control list (ACL) to decide which packets to let through and which to block.
Thumbnail of an article about How memory types affect DPDK application performance — case study
SOFTWARE DEVELOPMENT

How memory types affect DPDK application performance — case study

In this blog post, I will describe a problem encountered while working on a project involving GPU usage in network traffic processing (knowledge of GPU programming won’t be required as it will quickly become apparent that the problem is more general and the GPU can be eliminated). I will describe the steps that helped me in locating and fixing the problem – practical methods used for DPDK profiling and debugging. Also, I will describe some low-level internal DPDK mechanisms (e.g. packet processing, IOMMU, hugepages usage and impact) that helped in understanding the issue.
arrow

Get your project estimate

For businesses that need support in their software or network engineering projects, please fill in the form and we’ll get back to you within one business day.

For businesses that need support in their software or network engineering projects, please fill in the form and we’ll get back to you within one business day.

We guarantee 100% privacy.

Trusted by leaders:

Cisco Systems
Palo Alto Services
Equinix
Jupiter Networks
Nutanix