Linux+: Hardware Part 01 The Linux+ certification not only requires knowledge of Linux itself, but of computer hardware. The hardware concepts are mostly straightforward and can be learned with little or no technical experience. No need to open a PC and remove things. You need an understanding of hardware concepts. You may ask why hardware concepts are necessary. With every Linux version and distribution, there are different hardware requirements. Some versions of Linux may require a faster processor or more Random Access Memory (RAM) than another. Each Linux distribution has a distribution compatibility list which shows what the minimum hardware is required. For this article, we’ll start with components on the motherboard which work around the Central Processing Unit (CPU) which is also called the processor or the micro-processor. Registers When dealing with the CPU you need to understand registers. A register is a placeholder within the CPU for holding values. For instance, if an application were to perform an arithmetic function on two values, the first value is placed in the first register and the second value in the second register. The arithmetic function is performed and the result is placed in a register for use by the application. If a computer has a 32-bit processor, the registers can only hold 32-bits. A 64-bit processor can hold a 64-bit value. It is imperative for performance issues to run 32-bit software on a 32-bit CPU and not 16-bit software. A 16-bit application can only access 16-bits in the register. The loss of full register access can limit the speed of the app. The same is true for running 32-bit applications on a 64-bit processor. Data Bus The next concept is the Data Bus of the motherboard. The Data Bus are the connections between all the various components such as the processor, RAM, hard disks, etc. The size of the Data Bus is measured in bits. An 8-bit bus can carry eight bits at a time along the pathways, or one byte (8 bits equal one byte). The bus sizes are 8, 16, 32 and 64 (hopefully, there will be 128-bit and 256-bit buses like on gaming systems). Address Bus You may wonder how the data on the Data Bus gets to a specific spot in RAM. The answer is the Address Bus which is controlled by the Address Control Unit (ACU). The Address Bus also controls the address range of the RAM where the data on the Data Bus is destined. The size of the Address Bus determines the amount of RAM which a system can use. To determine the maximum amount of RAM usable in a computer you can take 2 to the power of the Address Bus size (in bits). For example, with a system that has a 32-bit address bus, the maximum RAM size is 2^32 or 4,294,967,296 address locations. If each location is 1 byte, then the total RAM can be 4 GB. System Speed Every computer has a system speed. Initial computers had a system speed of 4.77 MHz (the 8086 CPU) or 4.77 million cycles per second. The system clock speed of 1 MHz is equivalent to 1 million cycles per second. Systems now operate at system speeds over 3 GHz. NOTE: The term cycles per second has little meaning with a computer since each computer has varying Instructions per Cycle (IPC). The IPC determines how many instructions are completed per cycle of the system clock. A system can have a high clock speed and low IPC or a high IPC and low clock speed which can have equal performance values. Real performance can be based on benchmarks which determine the throughout of all hardware together. The cycles per second and IPC determine the throughput of the data on the Data Bus. Within each clock ‘tick’, instructions are sent over the buses. Everything is in sync with the system cycles. With multiple Instructions per Cycle, many instructions can be sent over the Data Bus. Cache Many instructions can be sent to the CPU for processing in a single cycle and many of these can be duplicated. When a processor performs numerous calculations it is possible that some instructions have already been processed. Some results of processing are kept in cache. The cache can also hold instructions which follow the current instruction being executed. Cache is a form of Random Access Memory (RAM) which is faster than standard RAM chips. There are typically three types of cache, but four do exist: L1, L2, L3 and L4. Not all systems may have all four. The L1 cache is the fastest, then the L2, L3 and L4 being the slowest, but even the L4 cache is faster than RAM. When a CPU receives an instruction, it checks the L1 cache for the result. If not found, it checks the L2, then L3, and finally the L4 cache. If none of these contain the result, it will then check the RAM. The L1 and L2 cache are found on the CPU for newer processors. The L3 cache is placed off the CPU chip on the motherboard between the CPU and RAM. For systems with L4 cache, it can be used between the dual processors such as an Intel Itanium.