Data Hazard Stalls in Cache Memory

In the realm of computer architecture, particularly in the context of embedded systems, data hazard stalls are a critical challenge that can significantly impact the performance and efficiency of a system. This write up aims to dissect the concept of data hazard stalls, particularly in cache memory, using RISC-V assembly code examples to illustrate the […]

Read More Data Hazard Stalls in Cache Memory

Pipelining in Cache Memory

๐—ฃ๐—ถ๐—ฝ๐—ฒ๐—น๐—ถ๐—ป๐—ถ๐—ป๐—ด ๐—ถ๐—ปย the context of ๐—ฐ๐—ฎ๐—ฐ๐—ต๐—ฒ ๐—บ๐—ฒ๐—บ๐—ผ๐—ฟ๐˜† is a critical concept in modern computing architectures, playing a pivotal role in enhancing the performance and efficiency of systems. It refers to the process of arranging the execution of commands in a way that overlaps different stages of instruction execution. This technique, when applied to cache memory, involves […]

Read More Pipelining in Cache Memory

Cache Replacement Policies

At the heart of every high-performing embedded system lies a well-oiled cache memory mechanism, silently dictating the efficiency and responsiveness of the technology we rely on daily. Cache replacement policies, often overlooked, are the unsung heroes in this scenario, subtly but significantly influencing system performance. From wearables to aerospace, these policies are the architects of […]

Read More Cache Replacement Policies

Interrupt Latency: The Sleeping Dragon of Embedded Systems

Interrupt latency in embedded systems is the time from when an interrupt occurs to when the corresponding ISR executes. High latency can jeopardize real-time functionality in critical applications like airbag deployment. Factors affecting latency include priority levels, CPU cycles, and context switching. Optimizing ISRs and utilizing low-latency processors can mitigate this issue.

Read More Interrupt Latency: The Sleeping Dragon of Embedded Systems

WHAT THE FU*K

The Fast Inverse Square Root line of code, ‘i = 0x5f3759df – (i >> 1);’, revolutionized graphics processing in the 90s by efficiently calculating 1/sqrt(x) through bit manipulation and approximation. It exemplified creative programming, significantly enhancing game performance and remains a celebrated part of programming lore and hacker culture.

Read More WHAT THE FU*K

What is Context Switchingย 

The article explains context switching and details the roles of the scheduler and kernel during the process. It highlights how efficient context switching is crucial for multitasking in operating systems, allowing multiple processes to share system resources seamlessly. For further insights, the article is available in PDF format.

Read More What is Context Switchingย 

๐‘ช๐’‚๐’„๐’‰๐’† ๐‘พ๐’“๐’Š๐’•๐’† ๐‘ป๐’‰๐’“๐’๐’–๐’ˆ๐’‰ ๐’‚๐’๐’… ๐‘ช๐’‚๐’„๐’‰๐’† ๐‘พ๐’“๐’Š๐’•๐’† ๐‘ฉ๐’‚๐’„๐’Œ

Modern computing relies on the efficient interaction of components, particularly involving cache memory. This article explores the Write-Through and Write-Back strategies, detailing their operations, benefits, and drawbacks. Understanding these mechanisms enhances knowledge of the performance dynamics that underpin today’s digital environments.

Read More ๐‘ช๐’‚๐’„๐’‰๐’† ๐‘พ๐’“๐’Š๐’•๐’† ๐‘ป๐’‰๐’“๐’๐’–๐’ˆ๐’‰ ๐’‚๐’๐’… ๐‘ช๐’‚๐’„๐’‰๐’† ๐‘พ๐’“๐’Š๐’•๐’† ๐‘ฉ๐’‚๐’„๐’Œ

Ellipsis and Variadic

In C, when a function is called, the arguments are typically placed onto the stack, a region of memory. The function retrieves these arguments from the stack based on the function’s known parameter list. But when the number of arguments is variable, the function needs a way to access these “extra” arguments from the stack. […]

Read More Ellipsis and Variadic

๐‘จ ๐’…๐’†๐’•๐’‚๐’Š๐’๐’†๐’… ๐’๐’Š๐’”๐’• ๐’๐’‡ ๐‘ถ๐‘ฉ๐‘ฑ๐‘ซ๐‘ผ๐‘ด๐‘ท ๐’„๐’๐’Ž๐’Ž๐’‚๐’๐’… ๐’๐’‘๐’•๐’Š๐’๐’๐’”

๐’๐’ƒ๐’‹๐’…๐’–๐’Ž๐’‘ is a command-line program that is part of the GNU Binutils suite of tools. It’s used primarily for displaying various information from object files, which are typically produced as intermediate files during the compilation of a program. objdump can show information from a wide range of object file formats, including ELF (Executable and Linkable […]

Read More ๐‘จ ๐’…๐’†๐’•๐’‚๐’Š๐’๐’†๐’… ๐’๐’Š๐’”๐’• ๐’๐’‡ ๐‘ถ๐‘ฉ๐‘ฑ๐‘ซ๐‘ผ๐‘ด๐‘ท ๐’„๐’๐’Ž๐’Ž๐’‚๐’๐’… ๐’๐’‘๐’•๐’Š๐’๐’๐’”