Tuesday, April 21, 2020

High Resolution Timers

Application programmers are familiar with functions that allow them to schedule tasks in a timely manner. But how many of them know what is hidden below that? What kind of interaction is taking place among the components starting at the application level, via the kernel - ending up with the Hardware components itself. This is what we are going to reveal here.


Tuesday, April 14, 2020

MMU and addressing


Memory management in modern CPUs relies on a hardware component, which is called Memory Management Unit or as it is known by its acronym - MMU. This component handles access to memory address ranges. 
There are several implementations of MMU. We will try to  deal with the general concept of the MMU, without referencing to any specific system architecture. 
The provided exercises and examples are intended to help you getting thorough understanding of the subject by practicing.

Sunday, June 5, 2016

Clocking-the computer system engine


In order to understand what clocking is and what role it plays in computing, we need to reveal the general building blocks of a computing system. This post provides a "programmer" high level view of systems and clocking. No terms regarding to electronics or electric circuits theory are used here. We focus on providing pure logic view of the system. To make it as short as possible, two crucial terms will be explained here: "System topology" and "Clock distribution".