Computer architecture

This is an old revision of this page, as edited by 143.232.64.141 (talk) at 18:27, 5 April 2002. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Computer architecture refers to the theory behind the actual design of a computer. In the same way as a building architect sets the principles and goals of a building project as the basis for the draftsman's plans, so too, a computer architect sets out the Computer Architecture as a basis for the actual design specifications.

There are two customary usages of the term:

The more academic usage refers to the design of a computer's underlying language - its "instruction set." This will include information such as whether the computer's processor can compute the product of two numbers without resorting to external memory. It will also include a nominal precision for the computer's computations.

The less formal usage refers to a description of the design of gross requirements for the various parts of a computer, especially speeds, and interconnection requirements.


Goals

The most common goals of a Computer Architecture include:

1. Cost

Generally, cost is held constant, determined by either system or commercial requirements, and speed and storage capacity are adjusted to meet the cost target.

2. Performance (speed)

Computer retailers describe the performance of their machines in terms of CPU Speed (in MHz or GHz). This refers to the cycles per second of the main clock (megahertz or MHz is millons, gigahertz or GHz is billions). It does not indicate the number of instructions. Some CPUs execute less than one instruction per clock. Some "superscalar" CPUs execute more than one instruction per clock.

Throughput is the absolute processing power of the computer system. In the most computer systems, throughput is limited to the speed of the slowest piece of hardware in use at a given time. This slowest piece might be input and output (I/O), the CPU, the memory chips themselves, or the connection (or "bus") between the memory, the CPU and the I/O. The limit most acceptable to users is the speed of the input, because the computer then seems infinitely fast. General-purpose computers like PCs usually maximize throughput to attempt to increase user satisfaction.

"Interrupt latency" is the guaranteed maximum response time of the software to an event such as the click of a mouse or the reception of data by a modem. This number is affected by a very wide range of design choices. Computers that control machinery usually need low interrupt latencies, because the machine can't, won't or should not wait. For example, computer-controlled anti-lock brakes should not wait for the computer to finish what it's doing- they should brake.

Since cost is usually constant, the variables usually consist of latency, throughput, convenience, storage capacity and input-output. The general scheme of optimization is to budget different parts of the computer system. In a balanced computer system, the data rate will be constant for all parts of the system, and cost will be allocated proportionally to assure this. The exact forms of the trade-offs depend on whether the computer system is being optimized to minimize latency or maximize throughput.

Also see CPU design.