HOME

TheInfoList




In
computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings. The di ...
, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of
computer A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operations known as Computer program, programs. These ...

computer
systems. The architecture of a system refers to its structure in terms of separately specified components of that system and their interrelationships. Some definitions of architecture define it as describing the capabilities and programming model of a computer but not a particular implementation. In other definitions computer architecture involves
instruction set architecture In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algo ...
design,
microarchitecture In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific method, scientific principles to design and build machines, structures, and other items, including bridges, ...
design,
logic design In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific method, scientific principles to design and build machines, structures, and other items, including bridges, tunn ...
, and
implementation Implementation is the realization of an application, or execution of a plan A plan is typically any diagram or list of steps with details of timing and resources, used to achieve an Goal, objective to do something. It is commonly understood as ...

implementation
.


History

The first documented computer architecture was in the correspondence between
Charles Babbage Charles Babbage (; 26 December 1791 – 18 October 1871) was an English polymath A polymath ( el, πολυμαθής, , "having learned much"; la, homo universalis, "universal human") is an individual whose knowledge spans a subs ...

Charles Babbage
and
Ada Lovelace Augusta Ada King, Countess of Lovelace (''née'' Byron; 10 December 1815 – 27 November 1852) was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the Analy ...

Ada Lovelace
, describing the
analytical engine The Analytical Engine was a proposed mechanical general-purpose computer designed by English mathematician and computer pioneer Charles Babbage. It was first described in 1837 as the successor to Babbage's difference engine, which was a des ...
. When building the computer Z1 in 1936,
Konrad Zuse Konrad Zuse (; 22 June 1910 – 18 December 1995) was a German civil engineer, pioneering computer scientist, inventor and businessman. His greatest achievement was the world's first programmable computer; the functional program-controlled ...

Konrad Zuse
described in two patent applications for his future projects that machine instructions could be stored in the same storage used for data, i.e., the stored-program concept. Two other early and important examples are: *
John von Neumann John von Neumann (; hu, Neumann János Lajos, ; December 28, 1903 – February 8, 1957) was a Hungarian Americans, Hungarian-American mathematician, physicist, computer scientist, engineer and polymath. Von Neumann was generally rega ...

John von Neumann
's 1945 paper,
First Draft of a Report on the EDVAC The ''First Draft of a Report on the EDVAC'' (commonly shortened to ''First Draft'') is an incomplete Incomplete may refer to: * Unfinished creative work * Gödel's incompleteness theorems, a specification of logic * Incomplete (Bad Religion song) ...
, which described an organization of logical elements; and *
Alan Turing Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician A mathematician is someone who uses an extensive knowledge of mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such to ...
's more detailed ''Proposed Electronic Calculator'' for the
Automatic Computing Engine The Automatic Computing Engine (ACE) was a British early electronic serial stored-program computer designed by Alan Turing Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician A mathematician is s ...
, also 1945 and which cited
John von Neumann John von Neumann (; hu, Neumann János Lajos, ; December 28, 1903 – February 8, 1957) was a Hungarian Americans, Hungarian-American mathematician, physicist, computer scientist, engineer and polymath. Von Neumann was generally rega ...

John von Neumann
's paper. The term “architecture” in computer literature can be traced to the work of Lyle R. Johnson and
Frederick P. Brooks, Jr.
Frederick P. Brooks, Jr.
, members of the Machine Organization department in IBM's main research center in 1959. Johnson had the opportunity to write a proprietary research communication about the Stretch, an IBM-developed
supercomputer upright=1.5, Computing power of the top 1 supercomputer each year, measured in FLOPS A supercomputer is a computer with a high level of performance as compared to a general-purpose computer. The performance of a supercomputer is commonly mea ...

supercomputer
for
Los Alamos National Laboratory Los Alamos National Laboratory (Los Alamos or LANL for short) is a United States Department of Energy national laboratory initially organized during World War II World War II or the Second World War, often abbreviated as WWII or ...
(at the time known as Los Alamos Scientific Laboratory). To describe the level of detail for discussing the luxuriously embellished computer, he noted that his description of formats, instruction types, hardware parameters, and speed enhancements were at the level of “system architecture”, a term that seemed more useful than “machine organization”. Subsequently, Brooks, a Stretch designer, opened Chapter 2 of a book called ''Planning a Computer System: Project Stretch'' by stating, “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 help develop the
IBM System/360 The IBM System/360 (S/360) is a family of mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or ...
(now called the
IBM zSeries IBM Z is a family name used by IBM International Business Machines Corporation (IBM) is an American multinational technology company headquartered in Armonk, New York, with operations in over 170 countries. The company began in 1911, ...
) line of computers, in which “architecture” became a noun defining “what the user needs to know”. Later, computer users came to use the term in many less explicit ways. The earliest computer architectures were designed on paper and then directly built into the final hardware form. Later, computer architecture prototypes were physically built in the form of a
transistor–transistor logic Transistor–transistor logic (TTL) is a logic family In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific method, scientific principles to design and build machine ...
(TTL) computer—such as the prototypes of the 6800 and the
PA-RISC PA-RISC is an instruction set architecture (ISA) developed by Hewlett-Packard. As the name implies, it is a reduced instruction set computer (RISC) architecture, where the PA stands for Precision Architecture. The design is also referred to as H ...
—tested, and tweaked, before committing to the final hardware form. As of the 1990s, new computer architectures are typically "built", tested, and tweaked—inside some other computer architecture in a
computer architecture simulator A computer architecture simulator is a program that simulates the execution Capital punishment, also known as the death penalty, is the state-sanctioned killing of a person as punishment for a crime. The sentence ordering that someone is ...
; or inside a FPGA as a
soft microprocessor A soft microprocessor (also called softcore microprocessor or a soft processor) is a microprocessor core that can be wholly implemented using logic synthesis In computer engineering, logic synthesis is a process by which an abstract specificatio ...
; or both—before committing to the final hardware form.


Subcategories

The discipline of computer architecture has three main subcategories: *
Instruction set architecture In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...
(ISA): defines the
machine code In computer programming Computer programming is the process of designing and building an executable In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, c ...
that a processor reads and acts upon as well as the
word size In computing, a word is the natural unit of data used by a particular Central processing unit, processor design. A word is a fixed-sized Data (computing), piece of data handled as a unit by the instruction set or the hardware of the processor. The ...
, memory address modes,
processor register Processor may refer to: Computing Hardware * Processor (computing) In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic p ...
s, and
data type In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...
. *
Microarchitecture In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, v ...
: also known as "computer organization", this describes how a particular
processor
processor
will implement the ISA. The size of a computer's
CPU cache A CPU cache is a hardware cache In computing, a cache ( , or in Australian English) is a hardware or software component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the resu ...
for instance, is an issue that generally has nothing to do with the ISA. *
Systems design Systems design is the process of defining the architecture File:Plan d'exécution du second étage de l'hôtel de Brionne (dessin) De Cotte 2503c – Gallica 2011 (adjusted).jpg, upright=1.45, alt=Plan d'exécution du second étage de l'hôtel ...
: includes all of the other hardware components within a computing system, such as data processing other than the CPU (e.g.,
direct memory access Direct memory access (DMA) is a feature of computer systems that allows certain hardware subsystems to access main system memory Memory is the faculty of the by which or is , stored, and retrieved when needed. It is the retention of inform ...
),
virtualization In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, Data storage device, storage device ...
, and
multiprocessing Multiprocessing is the use of two or more central processing units A central processing unit (CPU), also called a central processor, main processor or just Processor (computing), processor, is the electronic circuitry that executes Instruct ...
. There are other technologies in computer architecture. The following technologies are used in bigger companies like Intel, and were estimated in 2002 to count for 1% of all of computer architecture: * Macroarchitecture: architectural layers more abstract than microarchitecture * Assembly instruction set architecture: A smart assembler may convert an abstract
assembly language In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, gene ...
common to a group of machines into slightly different
machine language In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task. Programming involves tasks such as analysis, ...
for different
implementation Implementation is the realization of an application, or execution of a plan A plan is typically any diagram or list of steps with details of timing and resources, used to achieve an Goal, objective to do something. It is commonly understood as ...

implementation
s. * Programmer-visible macroarchitecture: higher-level language tools such as
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily ...

compiler
s may define a consistent interface or contract to
programmer A computer programmer, sometimes called a software developer, a programmer or more recently a coder (especially in more informal contexts), is a person who creates computer software Software is a collection of Instruction (computer science ...

programmer
s using them, abstracting differences between underlying ISA, UISA, and
microarchitecture In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific method, scientific principles to design and build machines, structures, and other items, including bridges, ...
s. For example, the C,
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

C++
, or
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 147.7 million people, Java is the world's List of ...
standards define different programmer-visible macroarchitectures. *
Microcode In processor design Processor design is a subfield of computer engineering and electronics engineering (fabrication) that deals with creating a processor (computing), processor, a key component of computer hardware. The design process involves c ...
: microcode is software that translates instructions to run on a chip. It acts like a wrapper around the hardware, presenting a preferred version of the hardware's instruction set interface. This instruction translation facility gives chip designers flexible options: E.g. 1. A new improved version of the chip can use microcode to present the exact same instruction set as the old chip version, so all software targeting that instruction set will run on the new chip without needing changes. E.g. 2. Microcode can present a variety of instruction sets for the same underlying chip, allowing it to run a wider variety of software. * UISA: User Instruction Set Architecture, refers to one of three subsets of the
RISC In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, v ...
CPU instructions provided by
PowerPC PowerPC (with the backronym A backronym, or bacronym, is an acronym formed from a word that existed prior to the invention of the backronym. Unlike a typical acronym, in which a new word is constructed from a phrase, the phrase corresponding t ...

PowerPC
RISC Processors. The UISA subset, are those RISC instructions of interest to application developers. The other two subsets are VEA (Virtual Environment Architecture) instructions used by virtualisation system developers, and OEA (Operating Environment Architecture) used by Operation System developers. * Pin architecture: The hardware functions that a
microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrated circuit An integrated circuit or monolithic integrated circuit (also referred to as an IC, a chip, or a microchip ...

microprocessor
should provide to a hardware platform, e.g., the
x86 x86 is a family of instruction set architecture In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for th ...

x86
pins A20M, FERR/IGNNE or FLUSH. Also, messages that the processor should emit so that external caches can be invalidated (emptied). Pin architecture functions are more flexible than ISA functions because external hardware can adapt to new encodings, or change from a pin to a message. The term "architecture" fits, because the functions must be provided for compatible systems, even if the detailed method changes.


Roles


Definition

Computer architecture is concerned with balancing the performance, efficiency, cost, and reliability of a computer system. The case of instruction set architecture can be used to illustrate the balance of these competing factors. More complex instruction sets enable programmers to write more space efficient programs, since a single instruction can encode some higher-level abstraction (such as the x86 Loop instruction). However, longer and more complex instructions take longer for the processor to decode and can be more costly to implement effectively. The increased complexity from a large instruction set also creates more room for unreliability when instructions interact in unexpected ways. The implementation involves integrated circuit design, packaging, power, and cooling. Optimization of the design requires familiarity with compilers, operating systems to logic design, and packaging.


Instruction set architecture

An
instruction set architecture In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algo ...
(ISA) is the interface between the computer's software and hardware and also can be viewed as the programmer's view of the machine. Computers do not understand
high-level programming language In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , , ...
s such as Java, C++, or most programming languages used. A processor only understands instructions encoded in some numerical fashion, usually as
binary number In mathematics and digital electronics Digital electronics is a field of electronics The field of electronics is a branch of physics and electrical engineering that deals with the emission, behaviour and effects of electrons The electr ...
s. Software tools, such as
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily ...

compiler
s, translate those high level languages into instructions that the processor can understand. Besides instructions, the ISA defines items in the computer that are available to a program—e.g.,
data type In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of , ...
s, registers,
addressing mode Addressing modes are an aspect of the instruction set architecture In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described b ...
s, and memory. Instructions locate these available items with register indexes (or names) and memory addressing modes. The ISA of a computer is usually described in a small instruction manual, which describes how the instructions are encoded. Also, it may define short (vaguely) mnemonic names for the instructions. The names can be recognized by a software development tool called an
assembler Assembler may refer to: Arts and media * Nobukazu Takemura Nobukazu Takemura (竹村延和 ''Takemura Nobukazu'') is a Japanese musician and artist. Born in Hirakata, Osaka in August 1968, he became interested in music at a young age by listenin ...
. An assembler is a computer program that translates a human-readable form of the ISA into a computer-readable form.
Disassembler A disassembler is a computer program that translator (computing), translates machine language into assembly language—the inverse operation to that of an Assembly language#Assembler, assembler. A disassembler differs from a decompiler, which targe ...

Disassembler
s are also widely available, usually in
debugger A debugger or debugging tool is a computer program In imperative programming, a computer program is a sequence of instructions in a programming language that a computer can execute or interpret. In declarative programming, a ''computer progra ...

debugger
s and software programs to isolate and correct malfunctions in binary computer programs. ISAs vary in quality and completeness. A good ISA compromises between programmer convenience (how easy the code is to understand), size of the code (how much code is required to do a specific action), cost of the computer to interpret the instructions (more complexity means more hardware needed to decode and execute the instructions), and speed of the computer (with more complex decoding hardware comes longer decode time). Memory organization defines how instructions interact with the memory, and how memory interacts with itself. During design
emulation Emulation may refer to: Computing *Emulator, imitation of behavior of a computer or other electronic system with the help of another type of computer/system **Video game console emulator, a program that allows a personal computer or video game co ...
, emulators can run programs written in a proposed instruction set. Modern emulators can measure size, cost, and speed to determine whether a particular ISA is meeting its goals.


Computer organization

Computer organization helps optimize performance-based products. For example, software engineers need to know the processing power of processors. They may need to optimize software in order to gain the most performance for the lowest price. This can require quite a detailed analysis of the computer's organization. For example, in an SD card, the designers might need to arrange the card so that the most data can be processed in the fastest possible way. Computer organization also helps plan the selection of a processor for a particular project. Multimedia projects may need very rapid data access, while virtual machines may need fast interrupts. Sometimes certain tasks need additional components as well. For example, a computer capable of running a virtual machine needs
virtual memory In computing, virtual memory, or virtual storage is a Memory management (operating systems), memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "cre ...

virtual memory
hardware so that the memory of different virtual computers can be kept separated. Computer organization and features also affect power consumption and processor cost.


Implementation

Once an instruction set and micro-architecture have been designed, a practical machine must be developed. This design process is called the ''implementation''. Implementation is usually not considered architectural design, but rather hardware
design engineeringA design engineer is an engineer focused on the engineering design process in any of the various engineering disciplines (including civil engineer, civil, mechanical engineering, mechanical, electrical engineering, electrical, chemical engineer, chem ...

design engineering
. Implementation can be further broken down into several steps: * Logic implementation designs the circuits required at a logic-gate level. * Circuit implementation does
transistor upright=1.4, gate Candi bentar, a typical Indonesian gate that is often found on the islands of Java">Indonesia.html" ;"title="Candi bentar, a typical Indonesia">Candi bentar, a typical Indonesian gate that is often found on the islands o ...

transistor
-level designs of basic elements (e.g., gates,
multiplexer In electronics Electronics comprises the physics, engineering, technology and applications that deal with the emission, flow and control of electrons in vacuum and matter. It uses active devices to control electron flow by amplifier, amplif ...

multiplexer
s, latches) as well as of some larger blocks ( ALUs, caches etc.) that may be implemented at the logic-gate level, or even at the physical level if the design calls for it. * Physical implementation draws physical circuits. The different circuit components are placed in a chip
floorplan In architecture File:Plan d'exécution du second étage de l'hôtel de Brionne (dessin) De Cotte 2503c – Gallica 2011 (adjusted).jpg, upright=1.45, alt=Plan d'exécution du second étage de l'hôtel de Brionne (dessin) De Cotte 2503c – Gal ...
or on a board and the wires connecting them are created. * Design validation tests the computer as a whole to see if it works in all situations and all timings. Once the design validation process starts, the design at the logic level are tested using logic emulators. However, this is usually too slow to run a realistic test. So, after making corrections based on the first test, prototypes are constructed using Field-Programmable Gate-Arrays (
FPGA A field-programmable gate array (FPGA) is an integrated circuit An integrated circuit or monolithic integrated circuit (also referred to as an IC, a chip, or a microchip) is a set of electronic circuit 200px, A circuit built on a pr ...
s). Most hobby projects stop at this stage. The final step is to test prototype integrated circuits, which may require several redesigns. For
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuit File:PExdcr01CJC.jpg, 200px, A circuit built on a printed circuit board (PCB). An electronic circuit is composed of ...

CPU
s, the entire implementation process is organized differently and is often referred to as
CPU design Processor design is a subfield of computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific principles to design and build machines, structures, and other items, including ...
.


Design goals

The exact form of a computer system depends on the constraints and goals. Computer architectures usually trade off standards, power versus performance, cost, memory capacity,
latency Latency or latent may refer to: Science and technology * Latent heat, energy released or absorbed, by a body or a thermodynamic system, during a constant-temperature process * Latent variable, a variable that is not directly observed but inferred i ...
(latency is the amount of time that it takes for information from one node to travel to the source) and throughput. Sometimes other considerations, such as features, size, weight, reliability, and expandability are also factors. The most common scheme does an in-depth power analysis and figures out how to keep power consumption low while maintaining adequate performance.


Performance

Modern computer performance is often described in
instructions per cycle In computer architecture In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems. The architecture of a system refers to its structure in ...
(IPC), which measures the efficiency of the architecture at any clock frequency; a faster IPC rate means the computer is faster. Older computers had IPC counts as low as 0.1 while modern processors easily reach near 1.
Superscalar A superscalar processor is a CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuit File:PExdcr01CJC.jpg, 200px, A circuit built on a printed circuit board (PCB) ...
processors may reach three to five IPC by executing several instructions per clock cycle. Counting machine-language instructions would be misleading because they can do varying amounts of work in different ISAs. The "instruction" in the standard measurements is not a count of the ISA's machine-language instructions, but a unit of measurement, usually based on the speed of the
VAX VAX is a series of computers featuring a 32-bit 32-bit microcomputers are computers in which 32-bit microprocessor A microprocessor is a computer processor where the data processing logic and control is included on a single integrate ...
computer architecture. Many people used to measure a computer's speed by the clock rate (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 greater performance. As a result, manufacturers have moved away from clock speed as a measure of performance. Other factors influence speed, such as the mix of
functional unit Functional may refer to: * Movements in architecture: ** Functionalism (architecture) ** Form follows function * Functional group, combination of atoms within molecules * Medical conditions without currently visible organic basis: ** Functional sym ...
s,
bus A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle A vehicle (from la, vehiculum) is a machine A machine is a man-made device that uses power to apply forces and control movement t ...
speeds, available memory, and the type and order of instructions in the programs. 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 In computing, interrupt latency is the time that elapses from when an interrupt In digital computer A computer is a machine A machine is a man-made device that uses power to apply forces and control movement to perform an action ...
is the guaranteed maximum response time of the system to an electronic event (like when the disk drive finishes moving some data). Performance is affected by a very wide range of design choices — for example,
pipeliningPipelining may refer to: * Pipeline (computing) In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development o ...
a processor usually makes latency worse, but makes throughput better. Computers that control machinery usually need low interrupt latencies. These computers operate in a
real-time Real-time or real time describes various operations in computing or other processes that must guarantee response times within a specified time (deadline), usually a relatively short time. A real-time process is generally one that happens in defined ...
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 within a predictable and limited time period after the brake pedal is sensed or else failure of the brake will occur.
Benchmark Benchmark may refer to: Measurements and other evaluations *Benchmarking, evaluating performance within organizations *Reference points for geographic measurements: **Benchmark (surveying), a point of known elevation marked for the purpose of su ...
ing takes 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 shouldn't be how you choose a computer. Often the measured machines split on different measures. For example, one system might handle scientific applications quickly, while another might render video games more smoothly. Furthermore, designers may target and add special features to their products, through hardware or software, that permit a specific benchmark to execute quickly but don't offer similar advantages to general tasks.


Power efficiency

Power efficiency is another important measurement in modern computers. A higher power efficiency can often be traded for lower speed or higher cost. The typical measurement when referring to power consumption in computer architecture is MIPS/W (millions of instructions per second per watt). Modern circuits have less power required per
transistor upright=1.4, gate Candi bentar, a typical Indonesian gate that is often found on the islands of Java">Indonesia.html" ;"title="Candi bentar, a typical Indonesia">Candi bentar, a typical Indonesian gate that is often found on the islands o ...

transistor
as the number of transistors per chip grows. This is because each transistor that is put in a new chip requires its own power supply and requires new pathways to be built to power it. However the number of transistors per chip is starting to increase at a slower rate. Therefore, power efficiency is starting to become as important, if not more important than fitting more and more transistors into a single chip. Recent processor designs have shown this emphasis as they put more focus on power efficiency rather than cramming as many transistors into a single chip as possible. In the world of embedded computers, power efficiency has long been an important goal next to throughput and latency.


Shifts in market demand

Increases in clock frequency have grown more slowly over the past few years, compared to power reduction improvements. This has been driven by the end of
Moore's Law Moore's law is the observation that the number of transistor upright=1.4, gate Candi bentar, a typical Indonesian gate that is often found on the islands of Java">Indonesia.html" ;"title="Candi bentar, a typical Indonesia">Candi be ...
and demand for longer battery life and reductions in size for mobile technology. This change in focus from higher clock rates to power consumption and miniaturization can be shown by the significant reductions in power consumption, as much as 50%, that were reported by Intel in their release of the Haswell microarchitecture; where they dropped their power consumption benchmark from 30 to 40 watts down to 10-20 watts. Comparing this to the processing speed increase of 3 GHz to 4 GHz (2002 to 2006) it can be seen that the focus in research and development are shifting away from clock frequency and moving towards consuming less power and taking up less space.


See also

* Comparison of CPU architectures *
Computer hardware Computer hardware includes the physical parts of a computer, such as the computer case, case, central processing unit (CPU), Computer monitor, monitor, Computer mouse, mouse, Computer keyboard, keyboard, computer data storage, graphics card, so ...

Computer hardware
*
CPU design Processor design is a subfield of computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific principles to design and build machines, structures, and other items, including ...
*
Floating point In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and soft ...
*
Harvard architecture The Harvard architecture is a computer architecture with separate computer storage, storage and signal pathways for Machine code, instructions and data. It contrasts with the von Neumann architecture, where program instructions and data share ...

Harvard architecture
( Modified) *
Dataflow architectureDataflow architecture is a computer architecture that directly contrasts the traditional von Neumann architecture or control flow architecture. Dataflow architectures do not have a program counter (in concept): the executability and execution of inst ...
*
Transport triggered architecture In computer architecture In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer A computer is a machine that can be programmed to carry out s ...
*
Reconfigurable computing Reconfigurable computing is a computer architecture In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is the use of scientific method, scientific principles to design and build machi ...
*
Influence of the IBM PC on the personal computer market Following the introduction of the IBM Personal Computer The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first computer released in the IBM PC model line and the basis for the IBM PC compatible IBM PC compat ...
*
Orthogonal instruction set In computer engineering Computer engineering (CoE or CpE) is a branch of engineering that integrates several fields of computer science and electronic engineering required to develop computer hardware and computer software, software. Computer ...
*
Software architecture Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relat ...
*
von Neumann architecture The von Neumann architecture — also known as the von Neumann model or Princeton architecture — is a computer architecture In computer engineering Computer engineering (CoE or CpE) is a branch of engineering Engineering is ...

von Neumann architecture
*
Flynn's taxonomy Flynn's taxonomy is a classification of computer architectures, proposed by Michael J. Flynn in 1966. and extended in 1972. The classification system has stuck, and it has been used as a tool in design of modern processors and their functionalities ...


References


Sources

* * Barton, Robert S., "Functional Design of Computers", ''Communications of the ACM'' 4(9): 405 (1961). * Barton, Robert S., "A New Approach to the Functional Design of a Digital Computer", ''Proceedings of the Western Joint Computer Conference'', May 1961, pp. 393–396. About the design of the Burroughs
B5000 The Burroughs Large Systems Group produced a family of large 48-bit mainframes using stack machine instruction sets with dense Syllable (computing), syllables.E.g., 12-bit syllables for B5000, 8-bit syllables for B6500 The first machine in the fami ...
computer. *
Bell, C. Gordon
Bell, C. Gordon
; and Newell, Allen (1971)
"Computer Structures: Readings and Examples"
McGraw-Hill. *
Blaauw, G.A.
Blaauw, G.A.
, and
Brooks, F.P., Jr.
Brooks, F.P., Jr.

"The Structure of System/360, Part I-Outline of the Logical Structure"
''IBM Systems Journal'', vol. 3, no. 2, pp. 119–135, 1964. *


External links


ISCA: Proceedings of the International Symposium on Computer Architecture

Micro: IEEE/ACM International Symposium on Microarchitecture

HPCA: International Symposium on High Performance Computer Architecture

ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems

ACM Transactions on Architecture and Code Optimization

IEEE Transactions on Computers

The von Neumann Architecture of Computer Systems
{{DEFAULTSORT:Computer Architecture Central processing unit