The RISC-V mtime register is a 64-bit timer. For 32-bit RISC-V profiles, there is an interesting challenge involved in simply reading it. We cannot read...
One of the most important texts on creating performant software remains Michael Abrash’s Graphics Programming Black Book. Around 30 years after publishing, it still speaks...
Tail-call optimization has some features that make it particularly interesting to discuss. Most software developers have heard of tail-call optimization, do not really understand the...
Hard real-time means software running in a system that only functions correctly if results are delivered before hard deadlines. This system is a combination of...
Hard real-time means software running in a system that only functions correctly if results are delivered before hard deadlines. In a hard real-time system, every...
Single-path code, or branchless code, has been an important development in performance computing. It turns out to be even more interesting in the domain of...
Single-path code, or branchless code, has been an important development in performance computing. It turns out to be even more interesting in the domain of...
Single-path code, or branchless code, has been an important development in performance computing. The hardware acceleration features of modern processors are optimized for code without...
The const keyword in C is a useful tool with different meanings in different contexts. In my first three articles, I explained these different meanings...
The const keyword in C is a useful tool with special relevance to embedded software. It has different meanings in different contexts. Even experienced C...