History and
Overview of
Computer
Architecture
Marlon D. Hernandez, D. Eng.
Computer
Architecture
• It concentrates on
the logical aspects
of computer design
as opposed to
physical and
electrical aspect.
Basic Architecture
Semi Basic Architecture
Z1
motor-driven mechanical computer designed
by Konrad Zuse from 1936 to 1937
What is
Microprocessor?
• It is programmable in a way to
read binary instructions from
memory and then execute the
task to deliver the needed
output. It is useful for storing
data, device interaction, and
sending/receiving data
simultaneously.
Working of a Microprocessor
• 1. Fetch – The instructions are in storage from where the
processor fetches them.
• 2. Decode – It then decodes the instruction to assign the
task further. During this, the arithmetic and logic unit
also performs to register the data temporarily.
• 3. Execute – The assigned tasks undergo execution and
reach the output port in binary form.
Block Diagram of a
Microprocessor
• Arithmetic and Logical Unit, Control
Unit, and Register array make up
the microprocessor. The ALU deals
with input devices or memory for
receiving data. The control unit
takes care of instructions and
structure. Register array identifies
and saves the registers like B, C,
and accumulator.
urce: https://data-flair.training/blogs/basics-of-microprocessor-evolution-types-applications-working/#google_vignette
Basic Microprocessor Terms
• Instructions Per Cycle – A way to measure CPU’s instruction speed in a single clock.
• Instruction Set – These are the commands that a processor understands to work
between hardware and software.
• Bus – Set of conductors for data transmission, information control, and tasks addressed
in a microprocessor. They are of three types – data bus, address bus, and control bus.
• Word Length – Refers to the number of bits processed at a time.
• Clock Speed / Clock Rate – The ability of microprocessors to perform tasks in a
second.
• Bandwidth – Refers to the total bits in a single instruction.
• Data Types – Data type microprocessor supports
• ALUlike binary, ASCII,
– Arithmetic and etc.
Logic Unit
• SIMD – Single Instruction Multiple Data • MMX – MultiMedia eXtensions
• PGA – Pin Grid Array • MMU – Memory Management Unit
• FPU – Floating Point Unit
Computer Organization
vs. Computer
Architecture
• Computer Architecture is all
about computer system design
details expressed in terms of
functional units and
interconnect between these
units
Computer Organization
vs. Computer
Architecture
• The computer organization is based on the
computer architecture. The computer
organization implements the system
architecture. In simple words, the computer
organization is all about organizing various
system hardware components and how
these components are interconnected.
• The term organization is defined as
arranging, classifying things together
logically to maximize the functional
convenience.
Classification of Computer
Architecture
• Von-Neumann Architecture
• Instruction Set Architecture
• Flynn's taxonomy
Classification of Computer
Architecture
• Von-Neumann Architecture
The memory we have
• Instruction a single
Set read/write memory
Architecture
available for read and write instructions and data.
When •weFlynn's taxonomy
talk about memory, it is nothing but the
single location which is used for reading and
writing instructions for the data and instructions
are also present in it. Data and instructions are
stored in a single read/write memory within the
computer system.
Classification of Computer
Architecture
• Von-Neumann Architecture
•• Instruction
Instruction Set
Set Architecture
Architecture
•• An Instruction
Flynn's Set Architecture (ISA) is part of the abstract
taxonomy
model of a computer that defines how the CPU is controlled
by the software. The ISA acts as an interface between the
hardware and the software, specifying both what the
processor is capable of doing as well as how it gets done.
Stack Memory
• A stack is an Abstract Data Type (ADT), commonly used in
most programming languages. It is named stack as it
behaves like a real-world stack, for example – a deck of
cards or a pile of plates, etc.
Source: https://www.tutorialspoint.com/data_structures_algorithms/stack_algorithm.htm
Stack Memory
• This feature makes it LIFO data structure. LIFO stands for
Last-in-first-out. Here, the element which is placed
(inserted or added) last, is accessed first. In stack
terminology, insertion operation is called PUSH
operation and removal operation is called POP
operation.
Stack Representation
• This feature makes it LIFO data
structure. LIFO stands for Last-in-
first-out. Here, the element which
is placed (inserted or added) last,
is accessed first. In stack
terminology, insertion operation is
called PUSH operation and
removal operation is called POP
operation.
Basic Operations
• Stack operations may involve initializing the stack, using it
and then de-initializing it. Apart from these basic stuffs, a
stack is used for the following two primary operations −
• push() − Pushing (storing) an element on the stack.
• pop() − Removing (accessing) an element from the stack.
Push Operation
• The process of putting a new data
element onto stack is known as a
Push Operation. Push operation
involves a series of steps −
• Step 1 − Checks if the stack is full.
• Step 2 − If the stack is full, produces
an error and exit.
• Step 3 − If the stack is not full,
increments top to point next empty
space.
• Step 4 − Adds data element to the
stack location, where top is pointing.
Implementation of this algorithm in
C, is very easy. See the following
code −
void push(int data) {
if(!isFull()) {
top = top + 1;
stack[top] = data;
} else {
printf("Could not insert data, Stack is full.\n");
}
}
• Accessing the content while removing it
from the stack, is known as a Pop
Pop
Operation. In an array implementation of Operation
pop() operation, the data element is not
actually removed, instead top is
decremented to a lower position in the
stack to point to the next value. A Pop
operation may involve the following steps
−
• Step 1 − Checks if the stack is empty.
• Step 2 − If the stack is empty, produces
an error and exit.
• Step 3 − If the stack is not empty,
accesses the data element at which top is
pointing.
Implementation of this algorithm in
C, is as follows −
• int pop(int data) {
if(!isempty()) {
data = stack[top];
top = top - 1;
return data;
} else {
printf("Could not retrieve data, Stack is empty.\n");
}
}