1.2 Hardware Components
The design of the modern personal computer is based on the von Neumann architecture[1] which was described by John von Neumann in 1945[2]. The modern computer is comprised of three hardware components: (1) a processor that contains a control unit, an arithmetic logic unit, and registers; (2) a main memory system; and (3) an Input/Output system. A schematic diagram of a modern desktop computer is illustrated in Figure 1.2.1.
Processor
Traditionally, we refer to the processor as the central processing unit or CPU for short. The term central was introduced early in the history of digital computers when most of the processing functions were centralized on a single component or unit. Modern systems can consist of a single processor with multiple cores or multiple processors with multiple cores. Thus, the term processor is more commonly used today to reflect this change in architecture, but the term CPU is still widely used.
The processor contains the digital circuitry that executes the instructions of a program. The individual instructions perform simple operations, which typically include those for arithmetic, logic, and memory access. It is comprised of several common components as described below.
Arithmetic-Logic Unit
The arithmetic-logic unit (ALU) performs all arithmetic, logic, and bit-wise operations, which comprise the bulk of the instructions contained in a computer program. Originally, processors could only carry out integer operations. Later, a separate component, known as a floating-point unit (FPU), was included for floating-point operations.
Registers
The processor also contains a small number of high-speed storage elements called registers, which are used to store temporary values. The registers are wired directly to the ALU and provide fast access to data as instructions are being executed. Modern processors also contain several special registers used in the execution of instructions. The instruction register (IR) holds the instruction currently being executed and the program counter (PC) register keeps track of the next instruction to be executed.
Control Unit
The control unit coordinates the activities of the other units. It decodes the instructions and sends signals to direct other units in carrying out or executing the instruction. While it is easier to view the control unit as a single well-defined component, in modern computers, the digital circuitry of the controller is distributed throughout the processor and computer.
Memory System
The program instructions and data are stored in the memory unit. A computer's memory is constructed using semiconductor storage cells, each of which is capable of storing a single bit of information. These storage cells are grouped into larger fixed sizes, typically consisting of eight bits, that are identified by a distinct numerical address. Access to the memory unit is managed through the system bus, which is a digital communications channel that connects the various components of a computer. Accessing data in memory is many times slower than the direct access to the registers on a processor, but memory is much cheaper to construct than are the registers. Thus, the amount of memory in a computer is far greater than the number of available registers.
In modern computers, programs are typically stored on a secondary storage device such as a hard disk drive or some type of compact disk. To be executed, however, a program must reside in the computer's memory unit, which is commonly referred to as primary storage or the main memory. As the program is executed, the processor fetches the instructions, one at time from memory and carries out the appropriate action.
Input/Output System
Computer programs typically follow a common process: receive or input data, process it, then output the results. The input/output system manages the various input/output (I/O) devices that are used to provide input to a program and to receive the output or results from the program. Today, there are a wide variety of I/O devices. Some provide input only, such as keyboards, mice, and joysticks; some only accept output from a program, such as video terminals and printers; while others provide input and accept output, such as disk drives and network adapters. In modern computers, there are separate device controllers used to manage the I/O system, which frees up the main controller and processor to perform their main tasks.
-
von Neumann, John (1945), First Draft of a Report on The EDVAC, Moore School of Electrical Engineering, University of Pennsylvania.
- John Von Neumann The Great Polymath, I-Programmer