Using The I2C Bus
The I2C bus is used for communications between individual integrated circuits located on the same PCB. The I2C protocol supports multi-master, multi-slave communication, which means you can add a lot of functionality to your design. More ...
Load Balancing Multiple CPUs in Symmetric Multiprocessing
On Symmetric Multiprocessing (SMP) systems it is important to keep the workload balanced among all processors. There are two approaches to accomplish this, push migration and pull migration. More ...
CPU Chip Packaging
Over the development time of the computer, several different designs of packaging for the CPU chip die have been used. Each type of packaging has its advantages and disadvantages. This article reviews some common packages that might still be in use. More ...
Program Flow Charting
Depending upon the language used, program code my be difficult for humans to read and understand. However, one type of programming that is very easy to understand is flow charting. More ...
Using the Microcontroller Timers
Timing is an essential function for generating signals with precisely determined duration, or for counting external events. For this reason, a timer subsystem is present in all microcontroller implementations. More ...
Digital Logic Semiconductor Families
logic family refers to the way the semiconductors are designed to create gates. The first highly popular logic family, available in 1964, was TTL (Transistor-Transistor Logic). More ...
Fundamental Digital Logic Gates
All the advanced features of the most powerful computers, such as mulicore and parallel processing are done with digital logic. In this article I explain the fundamental concept of digital logic in simple and clear language so that anyone can understand it. More ...
Computer Buses
A 16-bit bus can transfer 16 binary bits simultainiously. This requires 16 separate metal traces on a PC board. We also need traces for control signals. The whole group of traces is referred to as a bus. More ...
Priority CPU Scheduling Algorithm
CPU Scheduling deals with the problem of deciding which of the processes in the ready queue is to be alocated the CPU. There are many different CPU scheduling algorithms. In this article we describe priority CPU scheduling. More ...
The Evolution of Hard Disk Bit Recording
Hard drive technology has continuously improved over the decades, that includes higher storage capacity performance. Part of this improvement has been higher access speeds, but most of the higher storage capacity has been the result of changes in the bit recording methods. More ...
Stored Program Architecture
Almost every computer system ever made is based on the stored program architecture designed in 1945 design by the mathematician John Von Neumann. He described a system where data and instructions would be stored in memory. More ...
Data Structures - Linked List, Stack, Queue, and Tree
An array is a simple data structure in which each element can be accessed directly. But what about storing an item whose size may vary? And what about removing an item if the relative positions of the remaining items must be preserved? In such situations other data structures may be needed. More ...