computer systems architecture
Also found in: Dictionary, Thesaurus, Acronyms, Wikipedia.
computer systems architecture[kəm′pyüd·ər ¦sis·təmz ′ar·kə‚tek·chər]
Computer systems architecture
The discipline that defines the conceptual structure and functional behavior of a computer system. It is analogous to the architecture of a building, determining the overall organization, the attributes of the component parts, and how these parts are combined. It is related to, but different from, computer implementation. Architecture consists of those characteristics which affect the design and development of software programs, whereas implementation focuses on those characteristics which determine the relative cost and performance of the system. The architect's main goal has long been to produce a computer that is as fast as possible, within a given set of cost constraints. Over the years, other goals have been added, such as making it easier to run multiple programs concurrently or improving the performance of programs written in higher-level languages.
A computer system consists of four major components (see illustration): storage, processor, peripherals, and input/output (communication). The storage system is used to keep data and programs; the processor is the unit that controls the operation of the system and carries out various computations; the peripheral devices are used to communicate with the outside world; and the input/output system allows the previous components to communicate with one another.
The storage or memory of a computer system holds the data that the computer will process and the instructions that indicate what processing is to be done. In a digital computer, these are stored in a form known as binary, which means that each datum or instruction is represented by a series of bits. Bits are conceptually combined into larger units called bytes (usually 8 bits each) and words (usually 8 to 64 bits each). A computer will generally have several different kinds of storage devices, each organized to hold one or more words of data. These types include registers, main memory, and secondary or auxiliary storage. See Bit
Registers are the fastest and most costly storage units in a computer. Normally contained within the processing unit, registers hold data that are involved with the computation currently being performed.
Main memory holds the data to be processed and the instructions that specify what processing is to be done. A major goal of the computer architect is to increase the effective speed and size of a memory system without incurring a large cost penalty. Two prevalent techniques for increasing effective speed are interleaving and cacheing, while virtual memory is a popular way to increase the effective size. Interleaving involves the use of two or more independent memory systems, combined in a way that makes them appear to be a single, faster system. With cacheing, a small, fast memory system contains the most frequently used words from a slower, larger main memory.
Virtual memory is a technique whereby the programmer is given the illusion of a very large main memory, when in fact it has only a modest size. This is achieved by placing the contents of the large, “virtual” memory on a large but slow auxiliary storage device, and bringing portions of it into main memory, as required by the programs, in a way that is transparent to the programmer.
Auxiliary memory (sometimes called secondary storage) is the slowest, lowest-cost, and highest-capacity computer storage area. Programs and data are kept in auxiliary memory when not in immediate use, so that auxiliary memory is essentially a long-term storage medium. There are two basic types of secondary storage: sequential and direct-access. Sequential-access secondary storage devices, of which magnetic tape is the most common, permit data to be accessed in a linear sequence. A direct-access device is one whose data may be accessed in any order. Disks and drums are the most commonly encountered devices of this type.
Memory mapping is one of the most important aspects of modern computer memory designs. In order to understand its function, the concept of an address space must be considered. When a program resides in a computer's main memory, there is a set of memory cells assigned to the program and its data. This is known as the program's logical address space. The computer's physical address space is the set of memory cells actually contained in the main memory. Memory mapping is simply the method by which the computer translates between the computer's logical and physical address spaces. The most straightforward mapping scheme involves use of a bias register. Assignment of a different bias value to each program in memory enables the programs to coexist without interference.
Another strategy for mapping is known as paging. This technique involves dividing both logical and physical address spaces into equal-sized blocks called pages. Mapping is achieved by means of a page map, which can be thought of as a series of bias registers. See Computer storage technology
A computer's processor (processing unit) consists of a control unit, which directs the operation of the system, and an arithmetic and logic unit, which performs computational operations. The design of a processing unit involves selection of a register set, communication paths between these registers, and a means of directing and controlling how these operate. Normally, a processor is directed by a program, which consists of a series of instructions that are kept in main memory.
Although the process of decoding and executing instructions is often carried out by logic circuitry, the complexity of instruction sets can lead to very large and cumbersome circuits for this purpose. To alleviate this problem, a technique known as microprogramming was developed. With microprogramming, each instruction is actually a macrocommand that is carried out by a microprogram, written in a microinstruction language. The microinstructions are very simple, directing data to flow between registers, memories, and arithmetic units.
It should be noted that microprogramming has nothing to do with microprocessors. A microprocessor is a processor implemented through a single, highly integrated circuit.
Peripherals and communication
A typical computer system includes a variety of peripheral devices such as printers, keyboards, and displays. These devices translate electronic signals into mechanical motion or light (or vice versa) so as to communicate with people.
There are two common approaches for connecting peripherals and secondary storage devices to the rest of the computer: The channel and the bus. A channel is essentially a wire or group of wires between a peripheral device and a memory device. A multiplexed channel allows several devices to be connected to the same wire. A bus is a form of multiplexed channel that can be shared by a large number of devices. The overhead of sharing many devices means that the bus has lower peak performance than a channel; but for a system with many peripherals, the bus is more economical than a large number of channels.
A computer controls the flow of data across buses or channels by means of special instructions and other mechanisms. The simplest scheme is known as program-controlled input/output (I/O). Direct memory access I/O is a technique by which the computer signals the device to transmit a block of data, and the data are transmitted directly to memory, without the processor needing to wait.
Interrupts are a form of signal by which a peripheral device notifies a processor that it has completed transmitting data. This is very helpful in a direct memory access scheme, for the processor cannot always predict in advance how long it will take to transmit a block of data. Architects often design elaborate interrupt schemes to simplify the situation where several peripherals are active simultaneously. See Computer, Digital computer