0% found this document useful (0 votes)
11 views9 pages

Computer Architecture-lecture Note 1

This lecture note provides an overview of computer architecture and organization, emphasizing their importance in understanding how hardware and software interact. It outlines the main components of a computer system, the computer level hierarchy, and the principle of equivalence between hardware and software. Ultimately, a solid grasp of computer architecture is essential for optimizing algorithms and developing efficient software solutions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views9 pages

Computer Architecture-lecture Note 1

This lecture note provides an overview of computer architecture and organization, emphasizing their importance in understanding how hardware and software interact. It outlines the main components of a computer system, the computer level hierarchy, and the principle of equivalence between hardware and software. Ultimately, a solid grasp of computer architecture is essential for optimizing algorithms and developing efficient software solutions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

COMPUTER ARCHITECTURE - Lecture Note One

Topic: Overview of Computer Architecture

Introduction
As we want to start discussing Computer Architecture and Assembly
Language, I believe that it is good for us to start with understanding what
Computer Architecture and Computer Organizations means. Thus the main
aim of this lecture is to explain what Computer Architecture and Computer
Organization means, their relationships, and why we study Computer
Architecture.

Objectives
Lecture Objectives
The objectives of this lecture are to teach students:
 What Computer Architecture and Computer Organization are;
 Why we study Computer Architecture ;
 What the main components of a computer system are;
 What the principle of hardware and software equivalence is; and
 What the computer level hierarchy is.

Lecture Content
Introduction:
Computer scientists are usually more concerned with writing complex
program algorithms than with understanding computer hardware. For the
algorithms to be useful, it must run on computer hardware. Some
algorithms are so complicated that it takes a long time to run on current
computer hardware. These algorithms are considered to be
“computationally infeasible”. Certainly, at the current level of innovation,
an algorithm that is infeasible today could be feasible tomorrow. However, no
matter how fast computers will be, there will always be computationally
infeasible algorithms.
In order to understand why an algorithm is infeasible or why a feasible
algorithm is running too slow when implemented, one must be able to see
and write programs from the computer point of view. One must understand
how the computer behaves in order to attempt optimizing programs that run
on it.

Program optimization and system tuning are perhaps the most important
motivations for learning how computers work. There may be other reasons.
For example, to be able to write a compiler or an operating system one must
have an understanding of the hardware environment within which they will
function. The best compiler or operating system leverages on particular
hardware features for greater efficiency and speed. Also modeling of large
complex real-life systems required an understanding of how floating-point
arithmetic works practically. To be able to develop an I/O drive requires a
detail understanding of the I/O hardware device.

Furthermore, computer professionals should be able to benchmark computer


system- hardware, networks, algorithms etc. Technical managers, in charge
of purchasing hardware, use benchmark to help them to buy systems for a
given price, keeping in mind the performance benchmark. These examples
illustrate the idea that a fundamental relationship exists between computer
hardware and many aspects of programming and software components in
computer systems. Thus, regardless of our area of specialization, it is
imperative as computer scientist that we understand:
 How hardware interacts with software,
 How various circuits and components fit together to create working
computer system,
 How the computer is controlled,
 How the computer works and
 How to design a computer.
These can be understood by studying computer architecture. Computer
architecture focuses on the structure and behavior of computer systems and
refers to the logical aspect of system implementation as seen by the
programmer. It includes many elements such as Instruction Set and formats,
operation codes, data type and representation, CPU organization (registers
and types), address modes, main memory access methods and various I/O
mechanisms. The architecture of a system directly affects the logical
execution of programs.

Some authors mainly computer engineers use the term Computer


organization to refer to the study of all physical aspects of the computer
systems such as Control signals (how the computer is controlled), signal
methods various circuitries and components (like memory types) that
makeup the computer system. While there is no clear distinction between
computer organization and computer architecture; they are both interrelated
and interdependent. This discussion on Computer architecture and
Computer organization was summarized by W. Stallings (1996) as follows:
Computer architecture refers to those attributes of a system visible to a
programmer, or put another way, those attributes that have direct impact on
the logical execution of a program. Computer organization refers to those
operational units and their interconnection that realize the architectural
specification. (Computer Organization And Architecture, W. Stallings, 4.ed.,
1996, p. 3)

However, the computer architecture of a given machine is the combination


of its hardware components plus the Instruction Set Architecture(ISA).
The ISA is the agreed-upon interface between all the software that runs in
the machine and the hardware that executes it. The ISA allows you to talk to
the machine.

Finally, our comprehension of this course, will ultimately lead to a deeper


understanding of computers and computation – the heart and soul of
computer science.
Definition of Computer Architecture
Computer Architecture is defined as the art, science and/or engineering of
computer structures, organization, implementation and performance
evaluation. (Computer Systems Architecture, J. C. Baer, Computer Science
Press, 1980, p. VII)

This is our working definition for this course.

Main Components of a Computer


At the most basic level, a computer is a device consisting of three
components connected together:
i. A processor to interpret and execute programs (instructions)
ii. A memory to store both data and programs (both primary and
secondary memory)
iii. A mechanism for transferring data to and from the outside world
(Input/output devices).

INSTRUCTIONS
Program
Control Unit
Memory I/O

Unit Devices
DATA
ALU/
Processing Unit

Once you understand computer in terms of their component parts, you will
be able to understand what the system is doing at all times and how you can
change its behavior if you desire.
The Computer Level of Hierarchy
If a machine is to be able to solve a wide range of problems, it must be able
to execute programs from different high level languages. The physical
components (hardware) of a computer are mainly wires and gates. There is a
formidable open space – a semantic gap- exists between the physical
component and the high level languages. For a system to be practical, the
semantic gap must be invisible to most of the users of the system.

Through the principles of abstraction, the machine is built on a hierarchy of


levels, in which each level has a specific function and exists as a distinct
hypothetical machine. This hypothetical computer at each level is called a
Virtual machine. Each virtual machine executes its own particular set of
instructions, calling upon machines at lower levels to carry out the task when
necessary. By studying computer architecture, you will be able to understand
the rationale behind the hierarchy’s partitioning, as well as how these layers
are implemented and interfaced with each other.

Presented below is a table showing the common acceptable layers


representing the different abstract virtual machines.
Level 6, the User Level, is composed of application programs and is the level
with which everyone is most familiar. At this level, the user runs application
programs like MS Word, Excel, packages, games etc. The lower levels are
nearly invisible from the user.

Level 5, the High Level languages level, consists of languages like C++,
FORTRAN, PASCAL, etc. These languages must be translated using a
compiler or interpreter to a language that the machine can understand.
Compiled languages are translated into assembly languages and then
assembled into machine code. They are translated to the next level. The user
at this level sees little of the lower level. Even though a programmer must
know about data types and instructions available for those types, he/she
need not know how those type are actually implemented.

Level 4, the Assembly Language level, encompasses some type of assembly


language. As previously mentioned, compiled HLL are first translated to
assembly, which is then directly translated to machine language. This is a
one-to-one translation, meaning that one assembly language instruction is
translated to exactly one machine language instruction. By having separate
levels, the semantic gap between HLL and actual machine language is
reduced.

Level 3, the System Software level, deals with operating system


instructions. This level is responsible for multiprogramming, protecting
memory, synchronizing processes, and various other important functions.
Often, instructions translated from assembly languages to machine
languages are passed through this level unnoticed.

Level 2, the Instruction Set architecture (ISA) or Machine level, consist of


machine language recognized by the particular architecture of the computer
system. Programs written in a computer’s true machine language on a
hardwired computer can be executed directly by the electronic circuits
without any translation. We shall study ISA level in detail in this course.

Level 1, the Control Level, is where a control unit makes sure that
instructions are decoded and executed properly and that data is moved
where and when it should be. The control unit interprets the machine
instruction passed to it, one at a time, from the level above, causing the
required action to take place.

The control unit can be designed in one of two ways: Hardwired or


Microprogrammed.

In hardwired control unit, control signals emanate from blocks of digital logic
components. These signals direct all the data and instruction traffic to
appropriate parts of the system. Hardwired control unit are typically very fast
because they are actually physical components. However, once implemented,
they are very difficult to modify for same reason.
The other option for control is to implement instructions using
micrprogramming. A microprogram is a program written in a low-level
language that is implemented directly by the hardware. Machine instructions
produced in Level 2 are fed into this microprogramming, which then
interprets the instruction by activating hardware suited to execute the
original instruction. One machine-level instruction is often translated into
several microcode instructions. This is not one-to-one correlation that exists
between assembly language and machine language. Microprogrammings are
popular because they can be modified relatively easily. The disadvantage of
microprogramming is, of course, that additional layer of translation typically
results in slower instruction execution.

Level 0, the Digital Logic Level, is where the physical components (gates
and wires) of the computer system exist. These are fundamentally building
blocks, the implementation of the mathematical logic, that are common to all
computers. We will be discussed in detail later.

This also explains the level of abstractions in computers today: An


abstraction is a construct for defining and manipulating data
structures and controlling flow of execution of programs that hides
the details of the architecture of the computer system.

Principle of Equivalence of hardware and software


A careful study of the Computer Level of Hierarchy above reveals that in
Level 5, computer programmers design and implement algorithms that are
usually implemented in programs in high level languages. Thus, the user in
Level 6 when executing a program is running an algorithm. Also, in Level 4,
another algorithm in assembly language runs the algorithm in level 5. This is
so until we get to Level 2 (machine level), which can be thought of as an
algorithm implemented as an electronic device. Therefore, modern
computers are actually implementations of algorithms that execute another
algorithm. These chains of nested algorithms lead to the principle of
equivalence of hardware and software:

“Anything that can be done with software can also be done with
hardware; and anything that can be done with hardware can be done
with software”.

A special purpose computer can be designed to perform any task, such as


Word processing, Budget analysis and so on. Accordingly, a program can be
written to carry out these functions of the special purpose computer, such as
the embedded system situated in a car or microware. There are times when
a simple embedded system gives much performance than a complicated
computer program and there are times when a program is the preferred
approach. The principle of equivalence of Hardware and software tells us that
we have a choice. Our knowledge of computer architecture will help us to
make the best choice.

Summary
Computer scientists are usually more concerned with writing complex
program algorithms than with understanding computer hardware. Some
algorithms are computational infeasible because that run very slowly and
takes a long time to execute. For one to understand why an algorithm is
infeasible, he/she must be able to see and write programs from the computer
point of view. This requires a good know of computer architecture.

You might also like