The document outlines the objectives of a computer architecture course, aiming to familiarize students with key concepts, performance impacts, and CPU design. It also discusses the historical development of computers, notable pioneers, and the classification of computers by generations, highlighting advancements from vacuum tubes to artificial intelligence. Additionally, it explains the structure and function of computer architecture, including the roles of instruction set architecture, microarchitecture, and system design.
The document outlines the objectives of a computer architecture course, aiming to familiarize students with key concepts, performance impacts, and CPU design. It also discusses the historical development of computers, notable pioneers, and the classification of computers by generations, highlighting advancements from vacuum tubes to artificial intelligence. Additionally, it explains the structure and function of computer architecture, including the roles of instruction set architecture, microarchitecture, and system design.
Course Objectives
What you can expect to get out of this class:
to become conversant with computer architecture terms and concepts.
to understand fundamental concepts in computer architecture and how they impact
computer and application performance.
to be able to read and evaluate architectural descriptions of even today’s most complex
processors.
iv, to gain experience designing a working CPU completely from scratch.
to learn experimental techniques used to evaluate advanced architectural ideas.
tanonorsPLEASE, LET US DISCUSS THIS PROFESSION OF
OUR STUDY IN THE IT WORLD WW
What is Computer Architecture?
.cting and interconnecting hardware
ure is the science and art of seles
al, performance and cost goals.”
“Computer Architect
te computers that meet function:
‘components to creat
Examples:
Y the instruction set
¥ the number of bits used to represent various data types
¥ /O mechanisms
¥ memory addressing techniques
CLASS DISCUSSION FOR 3 MINUTES. AND I WILL POINT AT ANY OF YOU TO LET US
KNOW WHAT THEY HAVE DISCUSSED.
ranngr202s
3> 3 (5,009, a
Historical Development of Computers.
Computer pioneers were the earliest people
whose ideas, contributions, and inventions helped
in the development of the computer system.
These great people include
Charles Babbage,
Herman Hollerith,
Lady Ada Lovelace,
John Von Neumann,
Blaise Pascal.Blaise Pascal, born in 1623, a French scientist and philosopher, invented the first adding machine
(calculating machine) in 1642. At nineteen, his motivation was to do something that could help
his father’s business (management of tax and public funds) which involved a lot of calculation.
The machine was a small box with eight dials, which is connected to a drum that displayed the
digits in a register window,
Charles Babbage, born in 1791, an English mathematician conceived the idea of making a
machine for astronomical calculations. He developed the Difference Engine in 1822. He
abandoned the project and developed another machine called Analytical Engine in 1833. For
this, he was referred to as the father of modern day computer. He could not complete the project
because of funding.
‘Ada Lovelace was a friend to Babbage and wrote a program for the Analytical Engine of Babbage.
Asa result, this mathematician was known as the first lady programmer. A programming
language called ADA a standard language for most US Government Agencies was named after
her.
santor024 5Hermann Hollerith, born in the year 1860, designed a system of recording data as holes on
punch cards. It became one of the basic input mechanisms for digital computers. The card was
called Hollerith card and was used by the US census bureau to quicken work on census data,
Howard Aiken of Harvard University, in the 1930s, started work on electro-mechanical machine
called Mark |.
Eckert and Mauchlys of Moore School of Electrical Engineering of the University of
Pennsylvania, developed the first electronic computer called Electrical Numerical Integrator and
Calculator (ENIAC) in 1946.
tanton024 :John Von Newman, a mathematician at the Institute of Advanced Studies, Princeton, brought
the idea of storing both instructions and data in the computer's primary memory (Stored
Program Concept). His idea gave birth to Electronic Discrete Variable Automatic Computer
(EDVAC), which was the first program computer in the US, in 1945. Many computing devices
were manufactured, taking this lead.
Classification of Computers by Generations:
1°" Generation computers
manufactured in the middle 1940s and early 1950s. They were huge computers that has the
size of a football ficld. They were made of vacuum tubes as the basic building blocks for the logic
parts (to serve as ON/OFF switches, where the "ON” imply binary value ’1’ and the "OFF” binary
value ‘0"). They used magnetic drum as their primary storage device. They were programmed in
machine language (binary codes).
Examples of these are EDVAC, LEO, ENIAC, UNIVAC 1, and MARK 1. The challenges of
the computer scientists were how to solve the problems of overheating, large size, slow speeds,
tasking maintenance and inadequate main and secondary storage. The search for solutions led to
the invention of second generation computers.
Lanon024 7“money
2"4 Generation Computers
These were the computers manufactured in the late 1950s a
transistors.
Computers of this period were more powerful than the first generation computer and were
programmed in assembly language. Computer here used magnetic core storage as main and
magnetic tape as secondary storage. Examples are ATLAS, MARK II, IBM, and the IBM 7000 series.
nd early 1960s. They were made of
Nb:
William Shockley in 1947, at BELL laboratory developed the first transistor. This aided the
production of smaller systems called minicomputers.
tanonons3 Generation Computers
Manufactured in the late 1960s and early 1970s. They were made of integrated circuits (IC).
Integrated circuitry means that many transistors were put together on a very some piece of
silicon called chip.
‘They supported interacting online processing and have capability to perform many jobs
simultaneously.
They were more powerful and reliable than 1* and 2" generation computers. As a result,
there were cheaper, smaller and faster systems. Examples include ICL 1900 series, IBM series,
and Honeywell 6000.
Note:-In second generation, designers used to go through the tedious process of making complex and unreliable
circuits consisting of transistors, diodes and capacitors joined together with wires. Jack kilby and Robert Noyce
developed the Integrated Circuits (IC) where the components and connections were edged directly onto the semi-
conductor material.
In 1968, Noyce and Gorden Moore co-founded “intel”
ranonn0r44" Generation Computers
These are the computers in use today; they were manufactured in the late 1970s and
early 1980s. They were made of complex integrated circuits which are known as “Large Scale
Integration” (LSI). With the LSI, the price of computers came down.
They have greater number of microscopic circuits on chips. Examples of these are
microcomputers which are the largest and most inexpensive computer systems.
This era brought us into development and use of software programs like graphics
packages, database systems, word processors and so on. We had more memory capacity as well.
Note: Background of fourth generation-One major challenge was that IC chips had to be hard-
wired for specific jobs. Ted Hoff took us to very large integrated circuits which gave rise to the
design of the first microprocessor (intel 4004) that could run conventional computer programs
with multitasking capability( handling many tasks). Microprocessors brought about our desktop
computers.
santos 105* Generation Computers
Since the urge now is to endow computers with the ability to take decisions in various
circumstances, it is expected that this will now be the area of interest. These are the computers
that will use artificial intelligence (Al), have the ability to perform actions that are characteristic
of human intelligence, such as reasoning, mimicking and learning.
The Abstract Level of Modern Computing Systems
In programming, we divide a problem into modules and then design each module separately.
Each module perform a specific task and modules need only to know how to interface with
other modules to make use of them.
Computer system organization can be approached in a similar manner. Through the principle of
abstraction. With each level of abstraction having a specific function and exists as a distinct
hypothetical machines - “Virtual Machines”
Lanton0n4 nTable 1: The Abstract Level of Modern Computing Systems
Level’é = Level |[EXecutable program 3
Level 5 High level Language Level C++, Java, FORTRAN ete
Level 4 ‘Assembly Language Level Assembly Code
Level 3 System Software Level OS, Library Code
Level 2 Machine Level Instruction Set
Architecture
Level 1 Control Level Microcode or Hardwired
Level 0 Digital Logie Level Circuits, Gates, ete
vantonozs 2Function of the levels
Level 6: The user level is composed of applications and is the level with which everyone is
familiar with. At this level, we run programs such as word processors, graphic packages and
games. The lower levels are nearly invisible from the user level.
Level S: At this level, the HLL are translated to a language the machine/lower levels can
understand
Level 4: Encompasses some assembly language, compiled HLL are translated into assembly
language which is then translated to actual machine language(which consist of Os and 1s)
Level 3: The System Software Level, deals with operating system instructions. This level is
responsible for multiprogramming, protecting memory, synchronizing processes and other
important functions.
aanaz024 BLevel 2: The Instruction Set Architecture(ISA), or Machine Level, consist of machine language
recognized by the particular architecture of the computer system. (More on ISA latter)
Level 1: The Control Level, is where a control unit makes sure that instructions are decoded and
executed properly and data is moved where and when it should be.
Level 0: The Digital Logic Level, is where we find the physical components of the computer
system: the gates and wires- fundamental building blocks , implementation of mathematical logic
common to all computer systems.
lanonons “CSC303: COMPUTER ORGANIZATION AND ARCHITECTURE &
ORGANISATIO)
What is computer architecture? It can be defined asa set of rules and methods that describe the
functionality, management and implementation of computers. To be precise, it is nothing but
tules by which a system performs and operates.
It can also be defined as those attributes of a system visible to a programmer or those attributes
that have a direct impact on the logical execution of a program.
Architectural attributes include the instruction set, the number of bits used to represent various
data types (e-g., numbers, characters), 1/O mechanisms, and techniques for addressing memory.
lanior024Sub-divisions: Computer Architecture can be divided into mainly three categories, which are as
follows —
Instruction set Architecture or ISA - Whenever an instruction is given to processor, its role is
to read and act accordingly. It allocates memory to instructions and also acts upon memory
address mode (Direct Addressing made or Indirect Addressing mode).
Micro Architecture - It describes how a particular processor will handle and implement
instructions from ISA.
System design - It includes the other entire hardware component within the system such as
virtualization, multiprocessing.
tanone24 16NOUN Of Money
Role of computer Architecture: The main role of Computer Architecture is to balance the
performance, efficiency, cost and reliability of a computer system.
For Example - Instruction set architecture (ISA) acts as a bridge between computer's software
and hardware. It works as a programmer's view of a machine.
Computers can only understand binary language (j-e., 0, 1) and users understand high level
language (ice, if else, while, conditions, etc). So to communicate between user and computer,
Instruction set Architecture plays a major role here, translating high level language to binary
language.
santarso2s ”Structure: Generally, computer architecture consists of the following -
i, Processor
Memory
iii, Peripherals
All the above parts are connected with the help of system bus, which consists of address bus,
data bus and control bus. The diagram given below depicts the computer architecture —
1ainor20ns ry[aw Hasna
since ciemory,aray peripheral toate
csf cs
saaress |_| address
instruction decoder decoder
address bus
Interface [control bus
OMA
FOLE-AEDR'| _contotier
ae
tenonsLA
Computer organization refers tothe operational units and their interconnections that realize the architectural
specifications.
Omanirational attributes inchude those hardware details transparent ro the programmer, such as control signals;
interfaces benween the computer and peripherals, and the memory technology used.
is also an,
For example, its an architectural design issue whether a computer will have a multiply instruction And it
rwanizational issue whether that instruction will be implemented by a special mltiphy unit or by 2 mechanism that
makes repeated use ofthe add unit ofthe system. The organizational decision may be based on the anticipated
frequency of use of the multiply instruction, the relative speed of the two approaches, the cost and the physical size of
a special multiply unit.
Historically, and till the moment of this lecture, the distinetion between architecture and organization has been an
important one. Many computer manufacturers offer a family of computer models, all with the same architecture Put
)
aanonaee »
vith differences in organization. (Examples: Class DiscussionA
Consequently, the different models in the family have different price and performance characteristics. Furthermore, a
panicular architecture may span many years and encompass a number of different computer models
the changing
in its organization in compliance to change
intechnology.
A prominent example of both phenomena is the [BM Systenv370 architecture, This architecture was first introduced
in 1970 and included a number of models. The customer with modest requirements could buy a cheaper, slower
model and, if demand increased, later upgrade to a more expensive, faster model without having ta abandon software
that had already been developed.
Therefore computer can be defined as a hierarchical complex system with millions of
elementary electronic components. A hierarchical system is a set of interrelated top-dowi
subsystems with some lowest level of elementary subsystem,
The designer needs only to focus on a particular level of the system ata time. At each level, the
system consists of a set of components and their interrclationships. The behavior at cach level
depends only on a simplified, abstracted characterization of the system at the next lower level. At
cach leyg}, the designer is concerned with structure and function.A
A
a STRUCTURE AND FUNCTION.
Acomputer is a complex syste
+ contemporary computers contain millions of elementary electronic
components. How, then can one clearly describe them? The key is to recognize the hierarchical nature of
most complex systems, including the computer.
‘Ahierarchical system is a set of interrelated subsystems, each of the latter, in turn, hierarchical in structure
until we reach some lowest level of elementary subsystem.
‘The hierarchical nature of complex systems is essential to both their design and their description. The
designer need only deal with a particular level of the system at a time. At each level, the system consists of
a set of components and their interrelationships.
“The behavior at cach level depends only on a simplified, abstracted characterization of the system at the
next lower level, At each level, the designer is concerned with structure and function:
i. Structure: The way in which the components are interrelated
ii, Function
‘The operation of each individual component as part of the structure.
wannaore 2Function. In terms of description, we have two choices: starting at the bottom and building up (9 & complete
description, of bepinning, witha top view and decomposing the system into its subparts, Evidence from a number of
fields suygests that the top-down approach is the elearest and most effective. The approach taken in this lecture
thesefore, follows this viewpoint, We begin with the major components of a computer, describing their structure and
function, and proceed to successively lower layers of the
farchy. In this lecture, we hereby provides a very brief
overview of this plan as shown in §
¢ Fig 1 (Class Discussion).
Both the structure and functioning of a computer are, in essence, simple. The figure above shows the four basic
functions that a computer can perform as follows:
¥ Data processing facility
v
a storage fn
y
YD:
movement apparatus
¥ Control mechanismThe computer, of course, must be able to process data. The data may take
a wide variety of forms, and the range of processing requirements is
broad. It is also essential that a computer store data. Even if the computer
is processing data on the fly (i.e., data come in and get processed, and the
results go out immediately), the computer must temporarily store at least
those pieces of data that are being worked on at any given moment. Thus,
there is at least a short-term data storage function.
wpier02eEqually important, the computer performs a long-term data storage function for files of data stored on the
computer for subsequent retrieval and update. And also the computer must be able to move data between itself
and the outside world.
“Therefore, the computer's operating environment consists of devices
wat serve as cither sources or destinations
of data, When data are received from or delivered to a device that is directly connected to the computer, the
process is known as input-output (VO), and the device is referred to a
peripheral, When data are moved over
longer distances, to or from a remote device, the process is known as data communications.
Finally, there must be control of these three funetions. Ultimately, «
s control is exercised by the individual(s)
who prot
es the computer with instructions. Within the computer, a control unit manages the computer's
resources and coordinates the performance of its functional parts in response to those instrueti
ns. Therefore,
the numbers of possible operations that can be performed are shown in Figurel.2a; 1.2b; 1.2c and 12d,
(CLASS DISCUSSION)Fig1.2a shows how a computer can function as a data movement device by simply
transferring data from one peripheral or communications line to another.
Fig1.2b also shows how computer can store data on the storage device with data
transferred from the external environment to computer storage (read) and vice versa
(write).
Figl.2c shows operations involving data processing on data either in storage and
lastly
Fig1.2d shows data between storage and the external environment.
at ZStructure: The structure is the simplest possible description of a computer with
peripherals and communication lines as shown on figurel.3 or 1.4, However, the
computer interacts with its exter
ral environment with four main internal structural
components as follows:
Y Central processing unit (CPU): Controls the operation of the computer and
performs its data processing functions; often simply referred to as processor.
¥ Main memory: Stores data.
¥ V/O: Moves data between the computer and its external environment.
¥ System interconnectio
: Some mechanism that provides for communication among
CPU, main memory, and I/O. A common example of system interconnection is by
means of a system bus, consisting of a number of conducting wires to which all
the other components attach. Figure 1.3 and 1.4 (Class Discussion)
enone‘There may be one of more of each of the aforementioned components, Each ‘of these components will be discuss later
in our subsequence lectures, however we will start with the most complex one, the CPU.
‘The major structural components of the CPU are as follows:
i. Control unit: Controls the operation of the CPU and hence the computer
ii, Arithmetic and logie unit (ALU): Performs the computer's data processing functions
iii, Registers: Provides storage internal to the CPU and
v. CPU interconnection: Some mechanism that provides for communication among the control unit, ALU and
registers.
temaoeei
Each of the
techniques and microprograming,
ictions that define the functionality of
‘ol memory/buffer unit as represented in
ed with the use of parallel, pipelined organizational
se components will be examini
ed control unit operates by
In essence, a microprogramm
the control unit which includes the
nicroinstrus
executing
sequencing logic, registers & decoders and a contr
Figurel 4 for better understanding and interpretation.
However there are two major components of the entire system:
Y an instruction interpreter and
¥ amodule of general-purpose arithmetic & logic functio
“These two constitute the CPU. Several other components are needed to yield a functioning computer Data and
instructions most be put into the system. For this we need some sort of input module. This module contains basic
ructions in some form and converting them into an internal form of signals
components for accepting, data and inst
ded, and this is in the form ofan output module. Taken
usable by the system, A means of reporting results is nee:
rced to as 1/0 components.
together, these are relya
One more component js needed. An input device will bring, instructions and data
sequentially. But a program is not invariably executed sequentially; it may jump
around like a jump instruction. Similarly, operations on data may require access to
more than just one element at a time in a predetermined sequence.
‘Thus, there must be a place fo store temporarily both instructions and data. That module is
called memory, or main memory to distinguish it from external storage oF peripheral devices. Von
Neumann (detailed given below) pointed out that the same memory could be used to store both
instructions and data.
Figure2.1 below illustrates these toy
p-level components and suggests the interactions
among them. The CPU exchanges data with memory.For this purpose, it typically makes use of two internal (fo the CPU) registers: a memory address
register (MAR), which specifies the address in memory for the next read or write, and a memory
buffer register (MIR), which contains the data to be written into memory or receives the data
read from memory. Similarly, an I/O address register (UOAR) specifies a particular 1/0 device.
An I/O buffer (OBR) register is used for the exchange of data between an 1/0 module and the
cru.
A memory module consists of a set of locations, defined by sequentially numbered addresses.
Each location contains a binary number that can be interpreted as cither an instruction or data.
An J/O module transfers data from external devices to CPU and memory, and vice versa. It
contains internal buffers for temporarily holding these data until they can be sent on.
sapejsa0e »Next lecture is on “Non-Von Neumann
Architectures”, why?
Thank you