You are on page 1of 14

Computer architecture

From Wikipedia, the free encyclopedia

Jump to navigationJump to search

Block diagram of a basic computer with uniprocessor CPU. Black lines indicate data flow, whereas red
lines indicate control flow. Arrows indicate the direction of flow.

In computer engineering, computer architecture is a set of rules and methods that describe the
functionality, organization, and implementation of computer systems. Some definitions of
architecture define it as describing the capabilities and programming model of a computer but
not a particular implementation.[1] In other definitions computer architecture
involves instruction set architecture design, microarchitecture design, logic design,
and implementation.[2]

Contents

 1History

 2Subcategories

 3Roles

o 3.1Definition

o 3.2Instruction set architecture

o 3.3Computer organization

o 3.4Implementation

 4Design goals

o 4.1Performance

o 4.2Power efficiency

o 4.3Shifts in market demand


 5See also

 6References

 7Sources

 8External links

History[edit]

The first documented computer architecture was in the correspondence between Charles
Babbage and Ada Lovelace, describing the analytical engine. When building the computer Z1 in
1936, 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.[3][4] Two other early
and important examples are:

 John von Neumann's 1945 paper, First Draft of a Report on the EDVAC, which described an
organization of logical elements;[5] and

 Alan Turing's more detailed Proposed Electronic Calculator for the Automatic Computing Engine,
also 1945 and which cited John von Neumann's paper.[6]

The term “architecture” in computer literature can be traced to the work of Lyle R. Johnson
and 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 for Los Alamos National Laboratory (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”.[7]

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[8]

Brooks went on to help develop the IBM System/360 (now called the IBM zSeries) line of computers, in
which “architecture” became a noun defining “what the user needs to know”. [9] Later, computer users
came to use the term in many less explicit ways.[10]

The earliest computer architectures were designed on paper and then directly built into the final
hardware form.[11] Later, computer architecture prototypes were physically built in the form of
a transistor–transistor logic (TTL) computer—such as the prototypes of the 6800 and the PA-RISC—
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; or inside a FPGA as a soft microprocessor; or both—before
committing to the final hardware form.[12]

Subcategories[edit]

The discipline of computer architecture has three main subcategories: [13]

 Instruction set architecture (ISA): defines the machine code that a processor reads and acts
upon as well as the word size, memory address modes, processor registers, and data type.

 Microarchitecture: also known as "computer organization", this describes how a


particular processor will implement the ISA.[14] The size of a computer's CPU cache for instance,
is an issue that generally has nothing to do with the ISA.

 Systems design: includes all of the other hardware components within a computing system,
such as data processing other than the CPU (e.g., direct memory access), virtualization,
and multiprocessing

There are other types of computer architecture. The following types are used in bigger companies like
Intel, and 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 common to a group of machines into slightly different machine language for
different implementations

 Programmer-visible macroarchitecture: higher-level language tools such as compilers may


define a consistent interface or contract to programmers using them, abstracting differences
between underlying ISA, UISA, and microarchitectures. For example, the C, C++,
or Java standards define different programmer-visible macroarchitectures.

 UISA (Microcode Instruction Set Architecture)—a group of machines with different hardware
level microarchitectures may share a common microcode architecture, and hence a UISA. [citation
needed]

 Pin architecture: The hardware functions that a microprocessor should provide to a hardware
platform, e.g., the 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[edit]

Definition[edit]
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 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).[15] 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. [16]

Instruction set architecture[edit]

This section does not cite any sources. Please help improve this
section by adding citations to reliable sources. Unsourced material may be
challenged and removed.
Find sources: "Computer
architecture" – news · newspapers · books · scholar · JSTOR (March
2018) (Learn how and when to remove this template message)

An instruction set architecture (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 languages such as Java, C++, or most programming languages used. A processor only
understands instructions encoded in some numerical fashion, usually as binary numbers. Software tools,
such as compilers, 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
types, registers, addressing modes, 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. An assembler is a
computer program that translates a human-readable form of the ISA into a computer-readable
form. Disassemblers are also widely available, usually in debuggers 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, 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[edit]

Main article: Microarchitecture

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 detailed analysis of the computer's
organization. For example, in a 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 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[edit]

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 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-level designs of basic elements (e.g.,


gates, multiplexers, latches) as well as of some larger blocks (ALUs, caches etc.) that may be
implemented at the log-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 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 realistic test. So, after making corrections
based on the first test, prototypes are constructed using Field-Programmable Gate-Arrays
(FPGAs). Most hobby projects stop at this stage. The final step is to test prototype integrated
circuits, which may require several redesigns

For CPUs, the entire implementation process is organized differently and is often referred to as CPU
design.

Design goals[edit]
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 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[edit]

Modern computer performance is often described in instructions per cycle (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 processors may reach three to five IPC by executing several instructions per clock cycle.
[citation needed]

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 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 units, bus 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 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, pipelining 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 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.

Benchmarking 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[edit]

Main articles: Low-power electronics and Performance per watt

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 as the number of transistors per chip grows.
[17]
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.[18] In the world of embedded computers, power efficiency has long been an
important goal next to throughput and latency.

Shifts in market demand[edit]

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 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-40 watts down to
10-20 watts.[19] Comparing this to the processing speed increase of 3 GHz to 4 GHz (2002 to 2006)[20] 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.

What is Computer Architecture?

Computer architecture is a specification describing how hardware and software technologies interact to
create a computer platform or system. When we think of the word architecture, we think of building a
house or a building. Keeping that same principle in mind, computer architecture involves building a
computer and all that goes into a computer system. Computer architecture consists of three main
categories.

 System design – This includes all the hardware parts, such as CPU, data processors,
multiprocessors, memory controllers and direct memory access. This part is the actual computer
system.
 Instruction set architecture – The includes the CPU’s functions and capabilities, the CPU’s
programming language, data formats, processor register types and instructions used by
computer programmers. This part is the software that makes it run, such as Windows or
Photoshop or similar programs.

 Microarchitecture – This defines the data processing and storage element or data paths and
how they should be implemented into the instruction set architecture. These might include DVD
storage devices or similar devices.

- What does Computer Architecture mean?


Computer architecture is a specification detailing how a set of software and hardware
technology standards interact to form a computer system or platform. In short, computer
architecture refers to how a computer system is designed and what technologies it is
compatible with.
As with other contexts and meanings of the word architecture, computer architecture is
likened to the art of determining the needs of the user/system/technology, and creating
a logical design and standards based on those requirements.

Network architecture is the design of a computer network. It is a


framework for the specification of a network's physical components and their functional organization
and configuration, its operational principles and procedures, as well as communication
protocols used.
In telecommunication, the specification of a network architecture may also include a detailed
description of products and services delivered via a communications network, as well as detailed
rate and billing structures under which services are compensated.
The network architecture of the Internet is predominantly expressed by its use of the Internet
Protocol Suite, rather than a specific model for interconnecting networks or nodes in the network, or

the usage of specific types of hardware links. What Is Network Architecture?


Network architecture refers to the way network devices and services are structured to serve the
connectivity needs of client devices.
 Network devices typically include switches and routers.
 Types of services include DHCP and DNS.
 Client devices comprise end-user devices, servers, and
smart things.
 Intent-based networking (2:41)
Contact Cisco

Why are there different network architectures?


Computer networks are built to serve the needs of their clients. Described below are three common
types of enterprise networks:
 Access networks, for campuses and branches, are built to bring users and things onboard,
such as connecting employees within an office building.
 Networks for data center connect servers that host data and applications and make them
available to users.
 Wide-area networks (WANs) connect users to applications, sometimes over long distances,
such as connecting hospital workers to health applications.
These and all other networks face different security threats, which they need to guard against.
To accommodate these varied requirements, all network types have unique architectures.
Why are network architectures under pressure?
Today, to serve the exacting needs brought on by technology advancements and digital
transformation initiatives, networks are called on to do more.
Access networks need to recognize, authenticate, and authorize user devices and smart things
before bringing them on board. Data center networks need to connect applications in multiple data
centers and clouds. WANs need to minimize costs and enhance user experience when serving
distributed applications to distributed users.
Networks also need to be dynamic, agile, and in lockstep with business needs. Traditional, manually
intensive methods of managing computer networks are proving to be unsustainable. New
approaches are necessary, ones that require transformational changes in how networks are
architected.

What are characteristics of modern network architectures?


The industry is now using architectures that ease the burden of building and maintaining computer
networks for the digital age. Only Cisco offers a complete portfolio of modern network architectures
for access, WAN, data center, and cloud.
Intent-based networking (IBN)
An intent-based network takes an organization's desired outcomes at a high level as input and sets
up the network to achieve these objectives. It does so by automating operations extensively,
analyzing network performance, pinpointing problematic areas, providing all-around security, and
integrating with business processes.

Controller-led
Network controllers are foundational to intent-based networking and are essential to scaling and
securing networks in the digital era. Controllers dramatically simplify operations and help
organizations respond rapidly to changing business requirements. They automate networking
functions by translating business intent into device configurations, and they monitor the network
devices continuously to help ensure performance and security.

Multidomain
Multiple networks in an enterprise communicate with one another through their controllers. Such
cross-network, or multidomain, integrations generally involve exchanging relevant operating
parameters to help ensure that desired business outcomes that span networking domains are
achieved.

Types of Network Architecture

Ethernet

Ethernet is the most used network architecture today. Ethernet provides network
access using multiple cover perception access with collision detection or CSMA / CD
(carrier sense multiple access with collision detection). This network access strategy
is basically that each component of the network or node listens before transmitting
the information packets. If two nodes transmit at the same time, a collision occurs.
When a collision is detected, the computer interrupts the transmission and waits for
the line to be free. One of the computers then goes on to transmit the data, achieving
control of the line, and complementing the transmission of the packets.

Ethernet is a passive wait and listens to architecture. Collisions between packets are
often frequent on the network and computers have to dispute the transmission time.
Ethernet networks are usually implemented in bus or star configurations, depending
on the type of medium used for the network connection. One of the most common
Ethernet implementations (used with different types of media) is the one that works
at 10Mbps. This 10 Megabit Ethernet that runs with twisted pair cables is called
10BaseT: 10 indicates the transmission speed in megabits per second; the term Base
which is a transmission in baseband (the base is nothing more than a sequence of bits,
or a digital flow of information); and the T is the letter used to abbreviate the
twisted pair cable.

When the packets are ready for transmission over the cable, their final form is called
a frame. Ethernet uses, in fact, several types of frames, which can cause problems in
the network if all the nodes have not been configured to use the same type of frame.
These are the different types of frames that Ethernet uses:

• 802.3 Ethernet: Although this frame has the relevant IEEE number, it does not
meet all Ethernet specifications. Novel Netware 2.2 and 3.1 networks use this type of
frame.
• 802.2 Ethernet: This type of frame meets all the specifications dictated by the
IEEE. It found in the latest versions of Novell Netware, including Netware 3.12, 4.x
and 5.x.
• Ethernet SNAP: This type of Ethernet frame is the one used by AppleTalk networks.
• Ethernet II: Networks that run several protocols such as the Internet generate
Ethernet II frames.

Although 10 Megabits Ethernet networks were the most used until recently, they
increasingly replaced by Fast Ethernet or Fast Ethernet (100 Mbps) and Gigabits
(1000Mbps or 1Gbps). Both versions of Ethernet require category 5 twisted pair cables
as well as unique network cards and hubs (Gigabit Ethernet often uses category 6
twisted pair cables).

The main advantage of Ethernet refers to the low cost of implementing such a
network architecture. The NICs, cables, and hubs that used are quite economical
compared to the hardware required by other architectures such as Token Ring. As for
its disadvantages, the worst of all has to do with the number of collisions that occur.
And it is already known: the more collisions that occur in a network, the more slowly
it run, and may even cause the whole network to fall.
Token Ring

IBM Token Ring is a faster and safer network that uses the signal token as a strategy
to access the communication channel. Token Ring networks connected in a star-
shaped topology through a Multistation Access Unit (MAU) that provides the central
connection for the nodes of the network. The ring through which the signal or token
circulates (the token travels in only one direction) is a logical ring included within the
MAU.

The token circulates through the ring until it is picked up by a computer that wants to
send information over the network. The computer that passes the token to the next
computer included in the logical ring is called the nearest active upstream neighbor
or NAUN. For its part, the computer that receives the signal or token is known as the
nearest active downstream neighbor or NADN.

After taking the token and transmitting the data, the computer generates a new
token and passes it to your NADN. If it does not have to transmit data, the token goes
back through the ring waiting for a node in the network to capture it to send
information.

The Token Ring architecture is characterized by not causing data collisions and offers
the same level of access to the communication channel to all nodes included in the
network. It is slower than other Ethernet implementations (Token Ring can work at
maximum speeds between 4 and 16Mbps), but the network degrades more smoothly
during a possible overload of the system.

Token Ring also offers some fault tolerance thanks to its error detection strategy
called beaconing. When computers connected to the network for the first time, the
first one that is turned on becomes the active Monitor. The active monitor is
responsible for sending, every seven seconds, a packet of data that travels through
the ring to help determine if any node does not work correctly. For example, if a
computer does not receive the package sent to you by your NAUN, it creates a
package that includes your address and that of the NAUN and sends it to the network.
Since it includes all relevant information, the Token Ring can use it to reconfigure the
ring and maintain traffic on the network automatically.

FDDI

The Fiber Distributed Data Interface (FDDI) is an architecture that provides a high
speed and high capacity environment that can be used to connect several different
types of networks (see Figure). FDDI uses fiber optic cables and configured in a ring
topology. FDDI uses the signal or token pass as a method of access to the
communication channel and can operate at high speeds (almost all implementations
work at 100Mbps, but data can also transfer at higher speeds).
Since FDDI uses a token pass strategy to access the data channel, it does not pose
security problems and provides the same level of access to all nodes connected to the
network. With FDDI, priority levels can also be specified, although network servers
can always send more data frames than client computers.

Since FDDI uses an authentic ring topology, breakages in the wiring system can pose
serious problems. To build a fault tolerance within an FDDI network, a second ring
used. And so, when a computer cannot communicate with its nearest previous
neighbor, it goes on to send the data to the second ring (which conducts the data in
the opposite direction to the one used by the first ring).

Logically, FDDI implementations require a special NIC card. Dual connection stations
(where computers connected to the two rings of the network) use a network card that
connects them to the two rings of the upper communication channel. Instead of using
hubs, hubs are used to connect the LAN nodes to the FDDI network. Since these
computers not directly coupled to the FDDI ring, they only require a NIC connection to
connect to the hub.

AppleTalk

AppleTalk is the network architecture used by Apple Macintosh computers. The


network hardware required in this case already installed on each Macintosh (although,
if you want to connect a Macintosh to an Ethernet network, you need an Ethernet
network card for Mac). The wiring system that allows Macintosh computers to connect
is called local talk and uses twisted pair cables with a special adapter for Macintosh.

AppleTalk uses a unique addressing system to determine the address of the nodes
included in the network. When a Macintosh connected to the network is turned on,
that computer generates a random address and transmits it over the network. This
random address becomes your network address (provided that no other Macintosh
computer uses that same address; otherwise, the computer have to continue
generating random addresses until it finds one that has not used).

AppleTalk is quite similar to Ethernet since it is also a passive network architecture.


AppleTalk uses the CSMA / CA method (Carrier Sense Multiple Access with Collision
Avoidance or Multiple Cover Perception Access with collision avoidance), in which
computers listen to the network to determine if the communication channel
occupied. Once verified that the channel is free, the computer sends the packet to
the network letting the rest of the computers know its intention to transmit data. The
fact that the computer notifies the rest of the network nodes of its intention to
transmit data substantially reduces the number of possible collisions in a particular
CSMA / CA network when compared to Ethernet. These packet announcements,
however, tend to slow down the network speed, which is not very desirable since
Macintosh networks only work with transmission speeds of 230.4Kbps. The good thing
is that by having the hardware and software necessary to connect to the network
installed, Macintosh computers provide a secure and economical way to connect
several workstations in order to share files or a printer.

You might also like