Computer Architecture
Computer architecture is the design and structure of a computer system. A computer system is made up of hardware and software. The hardware components of a computer system are the physical or tangible pieces that support the computing effort. Software is the intangible counterpart to the physical hardware components. Regardless of differences in physical appearance, every computer is envisioned as divided into these logical units: central processing unit (CPU), memory unit, secondary storage unit, input/output unit and software unit. Together, these key pieces of a computer system interact and make a computer work from the digital logic level on out to the user interface.
The CPU and the main memory make the core of a computer. The CPU interacts with main memory to perform all fundamental processing in a computer. The CPU interprets and executes the individual commands of a program one after another in a continuous cycle. It is made up of three important components which are the control unit, the registers and the arithmetic logic unit. The control unit coordinates the processing steps. The registers provide a small amount of storage space in the CPU itself. The arithmetic logic unit performs calculations and makes decision.
The control unit coordinates the transfer of data and instructions between main memory and the registers in the CPU. It also coordinates the execution of the circuitry in the arithmetic logic unit to perform operations on data stored in particular registers.
In most CPUs, some registers are reserved for special purpose. For example, the instruction register holds the current instruction being executed. The program counter is a register that holds the address of the next instruction to be executed. The CPU also contains a set of general purpose registers that are used for temporary storage of values as needed.
The concept of storing both program instructions and data together in main memory is the underlying principle of the von Neumann architecture of computer design. John van Neumann was the first one who advanced this programming concept in 1945. These computers continually follow the fetch decode execute cycle. An instruction is fetched from main memory at the address stored in the program counter and is put into the instruction register. The program counter is incremented at this point to prepare for the next cycle. Then the instruction is decoded to determine which operation to carry out. Finally, the control unit activates the correct circuitry to carry out the instruction which may load a data value into a register or add two values together.
One of the crucial components of the main circuit board is the computer clock. The clock generates an electronic pulse at regular intervals which synchronized the events of the CPU. The rate at which the pulses occur is called the clock speed and it varies depending on the processor. The speed of the system clock provides a rough measure of how fast the CPU executes instructions.
Programs and data are held in storage devices called memory which fall into two categories: main memory and secondary memory. Main memory is the storage device that holds the software while it is being processed by the CPU. Main memory is made up of a series of small consecutive memory locations. Associated with each memory locations is a unique number which is called an address. When data is stored in a memory location, it overwrites and destroys any information that was previously stored at that location. However, data is read from a memory location without affecting it. Each memory location consists of eight bits or one byte of information. If we need to store a value that cannot be represented in a single byte such as a large number, then multiple consecutive bytes are used to store the data.
Both random access memory (RAM) and read only memory (ROM) are direct access devices. RAM is a read-write memory since data can be both written to it and read from it. On the other hand, ROM cannot alter information after it stored. ROM chips are often embedded into the main circuit board of a computer and used to provide the preliminary instruction needed when the computer is initially turned on.
Main memory is usually volatile, meaning that the information stored in it will be lost if its electric power supply is turned off. Secondary memory devices are usually nonvolatile. The information is retained even if the power supply is turned off. The most common secondary storage device is hard disk. A disk is a magnetic medium on which bits are represented as magnetized particles. A head passed over the spinning disk, reading or writing information as appropriate. A hard disk drive might actually contain several disks in a vertical column with heads.
Magnetic tapes are also used as secondary storage but are considerably slower than disks because of the way information is accessed. A disk is a direct access device since the head can move directly to the information needed. However, information on a tape can be accesses only after first getting past the intervening data. A tape must be rewound or fast-forwarded to get to the appropriate position. A tape is therefore considered a sequential access device. Tapes are usually used only to store information when it is no longer used frequently or to provide a backup copy of the information on a disk.
Almost all devices in a computer system other than the CPU and main memory are called peripherals. Users do not interact directly with the CPU or main memory. CPU and main memory would not be useful without peripheral devices. Input/output devices and secondary storage devices are considered peripherals. Input/output devices such as keyboard, mouse, and monitor allow a human being to interact with the computer. The most common input devices are the keyboard and the mouse. Monitors and printers are the most common output devices. A flat screen monitor makes use of newer liquid crystal display technology rather the older cathode ray tube monitors that take up much more space on a desk. A picture is represented in a computer by breaking up into separate picture elements or pixels. A pixel is a tiny region that represents a very small piece of the picture. The complete picture is stored by storing the color of each individual pixel.
The hardware components of a computer are essentially useless without instructions to tell them what to do. A program is a series of instructions that the hardware executes one after another. Software consist of programs and the data those programs use. The operating system is the core software of a computer. It performs two important functions. First, it provides a user interface that allows the user to interact with the machine. Second, the operating system manages computer resources such as the CPU and main memory. It determines when programs are allowed to run, where they are loaded into memory, and how hardware devices communicate. It is the operating system’s job to make the computer easy to use and to ensure that it runs efficiently.
An application is any software other than the operating system. Each application has its own user interface that allows the user to interact with that particular program. The user interface for most modern operating systems and applications is a graphical user interface (GUI). The interface to an application or operating system is an important part of the software because it is the only part of the program with which the user directly interacts.
Two fundamental techniques are used to store and manage information: analog and digital. Analog information is continuous in direct proportion to the source of the information. Digital technology breaks information into discrete pieces and represents those pieces as numbers. Modern electronic computers are digital. Every kind of information including text, images, audio, video and even program instructions is broken into pieces. Each piece is represented as a number. The information is stored by storing those numbers. A digital computer stores information as numbers, but those numbers are not stored as decimal values. All information in a computer is stored and managed as binary values.
The process of executing a program is fundamental to the operation of a computer. Suppose there is an executable program that is about to run. The program is stored on some secondary memory device such as a hard disk. When the computer is instructed to execute a program, a copy of the program is brought in from secondary memory and stored in main memory. The CPU reads the individual program instructions from main memory. The CPU then executes the instructions one at a time until the program ends. The data that the instructions use such as two numbers that will be added together are also stored in main memory. They are either brought in from secondary memory or read from an input device such as the keyboard. During execution, the program may display information to an output device such as a monitor. All computer systems basically work in the same way.
In conclusion, computer architecture is about how the hardware components of a computer are put together and shows the relationship among the components. It shows how the key pieces such as CPU, memory unit, secondary storage unit, input/output peripheral devices and operating system software of a computer system interact and make a computer work from the digital logic level on out to the user interface.