Thursday

Basic Computer Architecture


The main components in a typical computer system are the processor, memory, input/output devices, and the communication channels that connect them.
The processor is the workhorse of the system; it is the component that executes a program by performing arithmetic and logical operations on data. It is the only component that creates new information by combining or modifying current information. In a typical system there will be only one processor, known as the central processing unit, or CPU. Modern high performance systems, for example vector processors and parallel processors, often have more than one processor. Systems with only one processor are serial processor, or, especially among computational scientists, scalar processors.
Memory is a passive component that simply stores information until it is requested by another part of the system. During normal operations it feeds instructions and data to the processor, and at other times it is the source or destination of data transferred by I/O devices. Information in a memory is accessed by its address.
Input/output (I/O) devices transfer information without altering it between the external world and one or more internal components. I/O devices can be secondary memories, for example disks and tapes, or devices used to communicate directly with users, such as video displays, keyboards, and mice.
A bus is used to transfer information between several different modules. Small and mid-range computer systems, such as the Macintosh have a single bus connecting all major components. Supercomputers and other high performance machines have more complex interconnections, but many components will have internal buses.
Communication on a bus is broken into discrete transactions. Each transaction has a sender and receiver. In order to initiate a transaction, a module has to gain control of the bus and become (temporarily, at least) the bus master. Often several devices have the ability to become the master; for example, the processor controls transactions that transfer instructions and data between memory and CPU, but a disk controller becomes the bus master to transfer blocks between disk and memory. When two or more devices want to transfer information at the same time, an arbitration protocol is used to decide which will be given control first. A protocol is a set of signals exchanged between devices in order to perform some task, in this case to agree which device will become the bus master.
Once a device has control of the bus, it uses a communication protocol to transfer the information. In an asynchronous (unclocked) protocol the transfer can begin at any time, but there is some overhead involved in notifying potential receivers that information needs to be transferred. In a synchronous protocol transfers are controlled by a global clock and begin only at well-known times.

2 comments: