Information about Computer Architecture

Enlarge picture
A typical vision of a computer architecture as a series of abstraction layers: hardware, firmware, assembler, kernel, operating system and applications (see also Tanenbaum 79).
In computer engineering, computer architecture is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements (especially speeds and interconnections) and design implementations for the various parts of a computer — focusing largely on the way by which the central processing unit (CPU) performs internally and accesses addresses in memory.

It may also be defined as the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals.

Computer architecture comprises at least three main subcategories [1]
  • Instruction set architecture, or ISA, is the abstract image of a computing system that is seen by a machine language (or assembly language) programmer, including the instruction set, memory address modes, processor registers, and address and data formats.
  • Microarchitecture, also known as Computer organization is a lower level, more concrete, description of the system that involves how the constituent parts of the system are interconnected and how they interoperate in order to implement the ISA[2]. The size of a computer's cache for instance, is an organizational issue that generally has nothing to do with the ISA.
  • System Design which includes all of the other hardware components within a computing system such as:
  1. system interconnects such as computer buses and switches
  2. memory controllers and hierarchies
  3. CPU off-load mechanisms such as direct memory access
  4. issues like multi-processing.


Once both ISA and microarchitecture has been specified, the actual device needs to be designed into hardware. This design process is often called implementation. Implementation is usually not considered architectural definition, but rather hardware design engineering.

Implementation can be further broken down into three pieces:
  • Logic Implementation/Design - where the blocks that were defined in the microarchitecture are implemented as logic equations.
  • Circuit Implementation/Design - where speed critical blocks or logic equations or logic gates are implemented at the transistor level.
  • Physical Implementation/Design - where the circuits are drawn out, the different circuit components are placed in a chip floor-plan or on a board and the wires connecting them are routed.
For CPUs, the entire implementation process is often called CPU design.

More specific usages of the term include more general wider-scale hardware architectures, such as cluster computing and Non-Uniform Memory Access (NUMA) architectures.

Design goals

The exact form of a computer system depends on the constraints and goals for which it was optimized. Computer architectures usually trade off standards, cost, memory capacity, latency and throughput. Sometimes other considerations, such as features, size, weight, reliability, expandability and power consumption are factors as well.

The most common scheme carefully chooses the bottleneck that most reduces the computer's speed. Ideally, the cost is allocated proportionally to assure that the data rate is nearly the same for all parts of the computer, with the most costly part being the slowest. This is how skillful commercial integrators optimize personal computers.

Cost

Generally cost is held constant, determined by either system or commercial requirements.

Performance

Computer performance is often described in terms of clock speed (usually in MHz or GHz). This refers to the cycles per second of the main clock of the CPU. However, this metric is somewhat misleading, as a machine with a higher clock rate may not necessarily have higher performance. As a result manufacturers have moved away from clock speed as a measure of performance. Computer performance can also be measured with the amount of cache a processor contains. If the speed, MHz or GHz, were to be a car then the cache is the traffic light. No matter how fast the car goes it still will not hit that green traffic light. The more speed you have and the more cache you have the faster your processor is.

Modern CPUs can execute multiple instructions per clock cycle, which dramatically speeds up a program. Other factors influence speed, such as the mix of functional units, bus speeds, available memory, and the type and order of instructions in the programs being run.

There are two main types of speed, latency and throughput. Latency is the time between the start of a process and its completion. Throughput is the amount of work done per unit time. Interrupt latency is the guaranteed maximum response time of the system to an electronic event (e.g. when the disk drive finishes moving some data). Performance is affected by a very wide range of design choices — for example, adding cache usually makes latency worse (slower) but makes throughput better. Computers that control machinery usually need low interrupt latencies. These computers operate in a real-time environment and fail if an operation is not completed in a specified amount of time. For example, computer-controlled anti-lock brakes must begin braking almost immediately after they have been instructed to brake.

The performance of a computer can be measured using other metrics, depending upon its application domain. A system may be CPU bound (as in numerical calculation), I/O bound (as in a webserving application) or memory bound (as in video editing). Power consumption has become important in servers and portable devices like laptops.

Benchmarking tries to take all these factors into account by measuring the time a computer takes to run through a series of test programs. Although benchmarking shows strengths, it may not help one to choose a computer. Often the measured machines split on different measures. For example, one system might handle scientific applications quickly, while another might play popular video games more smoothly. Furthermore, designers have been known to add special features to their products, whether in hardware or software, which permit a specific benchmark to execute quickly but which do not offer similar advantages to other, more general tasks.

Power consumption

Power consumption is another design criterion that factors in the design of modern computers. Power efficiency can often be traded for performance or cost benefits. With the increasing power density of modern circuits as the number of transistors per chip scales (Moore's Law), power efficiency has increased in importance. Recent processor designs such as the Intel Core 2 put more emphasis on increasing power efficiency. Also, in the world of embedded computing, power efficiency has long been and remains the primary design goal next to performance.

Historical perspective

Early usage in computer context

The term “architecture” in computer literature can be traced to the work of Lyle R. Johnson and Frederick P. Brooks, Jr., members in 1959 of the Machine Organization department in IBM’s main research center. Johnson had occasion to write a proprietary research communication about Stretch, an IBM-developed supercomputer for Los Alamos Scientific Laboratory; in attempting to characterize his chosen level of detail for discussing the luxuriously embellished computer, he noted that his description of formats, instruction types, hardware parameters, and speed enhancements aimed at the level of “system architecture” – a term that seemed more useful than “machine organization.” Subsequently Brooks, one of the Stretch designers, started Chapter 2 of a book (Planning a Computer System: Project Stretch, ed. W. Buchholz, 1962) by writing, “Computer architecture, like other architecture, is the art of determining the needs of the user of a structure and then designing to meet those needs as effectively as possible within economic and technological constraints.” Brooks went on to play a major role in the development of the IBM System/360 line of computers, where “architecture” gained currency as a noun with the definition “what the user needs to know.” Later the computer world would employ the term in many less-explicit ways.

The first mention of the term architecture in the refereed computer literature is in a 1964 article describing the IBM System/360. [3] The article defines architecture as the set of “attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flow and controls, the logical design, and the physical implementation.” In the definition, the programmer perspective of the computer’s functional behavior is key. The conceptual structure part of an architecture description makes the functional behavior comprehensible, and extrapolatable to a range of use cases. Only later on did ‘internals’ such as “the way by which the CPU performs internally and accesses addresses in memory,” mentioned above, slip into the definition of computer architecture.

See also

References

1. ^ John L. Hennessy and David A. Patterson (2003). Computer Architecture: A Quantitative Approach, Third Edition, Morgan Kaufmann Publishers, Inc. ISBN 1558605967.2003&rft.edition=Third%20Edition&rft.pub=Morgan%20Kaufmann%20Publishers,%20Inc"> 
2. ^ Phillip A. Laplante (2001). Dictionary of Computer Science, Engineering, and Technology. CRC Press, 94–95. ISBN 0849326915. 
3. ^ G. M. Amdahl, G. A. Blaauw and F. P. Brooks Jr., Architecture of the IBM System/360, IBM Journal for Research and Development, April 1964

External links

Computer engineering (also called Electronic and Computer engineering) is a discipline that combines elements of both electrical engineering and computer science.[1]
..... Click the link for more information.
computer is a machine which manipulates data according to a list of instructions.

Computers take numerous physical forms. The first devices that resemble modern computers date to the mid-20th century (around 1940 - 1941), although the computer concept and various machines
..... Click the link for more information.
blueprint is a type of paper-based reproduction usually of a technical drawing documenting an architecture or an engineering design. More generally, the term "blueprint" has come to be used to refer to any detailed plan.
..... Click the link for more information.
central processing unit (CPU), or sometimes simply processor, is the component in a digital computer capable of executing a program.(Knott 1974) It interprets computer program instructions and processes data.
..... Click the link for more information.
In computer science, a memory address is a unique identifier for a memory location at which a CPU or other device can store a piece of data for later retrieval. In modern byte-addressable
..... Click the link for more information.
instruction set is (a list of) all instructions, and all their variations, that a processor can execute.

Instructions include:
  • arithmetic such as add and subtract
  • logic instructions such as and, or, and not

..... Click the link for more information.
Machine code or machine language is a system of instructions and data directly executed by a computer's central processing unit. Machine code is the lowest-level of abstraction for representing a computer program.
..... Click the link for more information.
assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture.
..... Click the link for more information.
instruction set is (a list of) all instructions, and all their variations, that a processor can execute.

Instructions include:
  • arithmetic such as add and subtract
  • logic instructions such as and, or, and not

..... Click the link for more information.
Addressing modes, a concept from computer science, are an aspect of the instruction set architecture in most central processing unit (CPU) designs. The various addressing modes that are defined in a given instruction set architecture define how machine language instructions in that
..... Click the link for more information.
In computer architecture, a processor register is a small amount of storage available on the CPU whose contents can be accessed more quickly than storage available elsewhere.
..... Click the link for more information.
In computer engineering, microarchitecture (sometime abbreviated to µarch or uarch) is a description of the electrical circuitry of a computer, central processing unit, or digital signal processor that is sufficient for completely describing the operation of the hardware.
..... Click the link for more information.
cache (IPA:/kæʃ/, like "catch" [1]) is a collection of data duplicating original values stored elsewhere or computed earlier, where the original data is expensive to fetch (due to longer access time) or to
..... Click the link for more information.
bus (bidirectional universal switch) is a subsystem that transfers data or power between computer components inside a computer or between computers, and a bus typically is controlled by device driver software.
..... Click the link for more information.
The memory controller is a chip on a computer's motherboard or CPU die which manages the flow of data going to and from the memory.

Most computers based on an Intel processor have a memory controller implemented on their motherboard's north bridge, though some modern
..... Click the link for more information.
Direct memory access (DMA) is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory for reading and/or writing independently of the central processing unit.
..... Click the link for more information.
Multiprocessing is the use of two or more central processing units (CPUs) within a single computer system. The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks between them.
..... Click the link for more information.
Hardware is a general term that refers to the physical artifacts of a technology.It may also mean the physical components of a computer system.

Hardware historically meant the metal parts and fittings that were used to make wooden products stronger, more functional, longer
..... Click the link for more information.
engineering design process is a process used by engineers to help develop products. The Accreditation Board for Engineering and Technology defines the engineering design as

… the process of devising a system, component or process to meet desired needs.

..... Click the link for more information.
central processing unit (CPU), or sometimes simply processor, is the component in a digital computer capable of executing a program.(Knott 1974) It interprets computer program instructions and processes data.
..... Click the link for more information.
CPU design is the design engineering task of producing a CPU, a component of computer hardware. It is a subfield of electronics engineering and computer engineering.

Overview

CPU design focuses on these areas:
  1. Datapaths (such as ALUs and pipelines)

..... Click the link for more information.
Cluster Computing: the Journal of Networks, Software Tools and Applications is a journal for parallel processing, distributed computing systems, and computer communication networks.
..... Click the link for more information.
Non-Uniform Memory Access or Non-Uniform Memory Architecture (NUMA) is a computer memory design used in multiprocessors, where the memory access time depends on the memory location relative to a processor.
..... Click the link for more information.
personal computer (PC) is a computer whose original sales price, size, and capabilities make it useful for individuals.

It is unknown who coined the phrase with the intent of a small affordable computing device but John W.
..... Click the link for more information.
The clock rate is the fundamental rate in cycles per second (measured in hertz) at which a computer performs its most basic operations such as adding two numbers or transferring a value from one processor register to another.
..... Click the link for more information.
superscalar CPU architecture implements a form of parallelism called Instruction-level parallelism within a single processor. It thereby allows faster CPU throughput than would otherwise be possible at the same clock rate.
..... Click the link for more information.
In computer engineering, an execution unit is a part of a CPU that performs the operations and calculations called for by the program. It may have its own internal control sequence unit (not to be confused with the CPUs main control unit), some registers, and other internal units
..... Click the link for more information.
bus (bidirectional universal switch) is a subsystem that transfers data or power between computer components inside a computer or between computers, and a bus typically is controlled by device driver software.
..... Click the link for more information.
Interrupt latency is the time between the generation of an interrupt by a device and the servicing of the device which generated the interrupt. For many operating systems, devices are serviced as soon as the device's interrupt handler is executed.
..... Click the link for more information.
CPU cache is a cache used by the central processing unit of a computer to reduce the average time to access memory. The cache is a smaller, faster memory which stores copies of the data from the most frequently used main memory locations.
..... Click the link for more information.


This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus


page counter