Unit1 Computerarchitecture1 211031100705
Unit1 Computerarchitecture1 211031100705
Computer Architecture
What is a Digital Computer?
A device capable of solving problems by processing information in discrete
form. It operates on data, including magnitudes, letters, and symbols, that are
expressed in binary code—i.e., using only the two digits 0 and 1.
Computer Architecture
Block Diagram of a Digital Computer
Hardware Software
Computer Architecture
Computer Organisation is concerned with the way the hardware components
operate and the way they are connected together to form the computer.
Computer Architecture
Types of Architecture
• Harvard Architecture
Computer Architecture
Von Neumann Architecture
A stored-program digital computer keeps both program instructions and data in read–write, RAM.
Computer Architecture
Computer Architecture
Computer Architecture
UNIT 1: Computer Organization and Design
Instruction codes - Stored program organization; Computer registers; Computer instruction; Instruction
cycle-Fetch and decode; Input output and interrupt; I-O instructions; Program interrupt; Basic design of
computer.
MAIN TOPICS
• Instruction Codes
• Computer Registers
• Computer Instructions This unit explains the design of a basic but complete CPU with a much
• Timing and Control simpler design than any real-world processors available.
• Instruction Cycle
• Memory Reference Instructions The basic computer design represents all of the major concepts in CPU
• Input-Output and Interrupt design without complicating students with the complexity of a modern
• Complete Computer Description commercial CPU.
• Design of Basic Computer
• Design of Accumulator Logic
Computer Architecture
Instruction Codes
An instruction code is a group of bits that instruct the computer to perform a specific task.
It is usually divided into parts, each having its own particular interpretation.
They are:
•Operation Code or opcode
•Operands (in register /in address location)
Computer Architecture
Computer Architecture
A part of a C program
// Assuming the contents represented by variable i
is in address 2500
Scanf(“%d” ,& i) ;
K = i + j; MOV R1 ,2500 // Storing content to a memory
location
Here ,
Computer Architecture
Sample assembly
language program
Computer Architecture
Computer Instructions
They are also known as macro operations, since each one is comprised of a sequence of
microoperations
Each instruction initiates a sequence of microoperations that fetch operands from registers or memory,
possibly perform arithmetic, logic, or shift operations, and store results in registers or memory.
Computer Architecture
Instructions are encoded as binary instruction codes.
Each instruction code contains of a operation code, or opcode, which designates the overall
purpose of the instruction (e.g. add, subtract, move, input, etc.).
The number of bits allocated for the opcode determined how many different instructions the
architecture supports.
The control unit is responsible for decoding the opcode and operand bits in the instruction
register, and then generating the control signals necessary to drive all other hardware in the
CPU to perform the sequence of micro-operations that comprise the instruction.
The opcode must consist of at least n bits for a given 2n or less distinct operations
Computer Architecture
Understanding the powers of 2
Computer Architecture
STORED PROGRAM ORGANIZATION
DIRECT AND INDIRECT ADDRESSING
Computer Architecture
Stored Program Organization
The operands are specified by indicating the registers and/or memory locations in which they are
stored.
– k bits can be used to specify which of 2 pow K registers (or memory locations) are to be used.
Computer Architecture
Computer Architecture
INTRODUCTION
• Every different processor type has its own design (different registers, buses, microoperations, machine
instructions, etc)
• Modern processor is a very complex device
• It contains
• Many registers
• Multiple arithmetic units, for both integer and floating point calculations
• The ability to pipeline several consecutive instructions to speed execution
• Etc.
• However, to understand how processors work, we will start with a simplified processor model
• This is similar to what real processors were like ~25 years ago
• M. Morris Mano introduces a simple processor model he calls the Basic Computer
• We will use this to introduce processor organization and the relationship of the RTL model to the higher
level computer processor
[In digital circuit design, register-transfer level (RTL) is a design abstraction which models a synchronous digital circuit
in terms of the flow of digital signals (data) between hardware registers, and the logical operations performed on those
signals.]
Computer Architecture
THE BASIC COMPUTER
15 0
4095
Computer Architecture
Instruction codes
INSTRUCTIONS
• Program
- A sequence of (machine) instructions
• Machine Instruction
- A group of bits that tell the computer to perform a specific operation (a
sequence of micro-operation)
• The instructions of a program, along with any needed data are stored in
memory
• The CPU reads the each instruction from memory
• It is placed in an Instruction Register (IR)
• Control circuitry in control unit then translates the instruction into the
sequence of microoperations necessary to implement it
Computer Architecture
Instruction codes
INSTRUCTION FORMAT
• A computer instruction is often divided into two parts
• An opcode (Operation Code) that specifies the operation for that instruction
• An address that specifies the registers and/or locations in memory to use for that operation
• In the Basic Computer, since the memory contains 4096 (= 212) words, we needs 12 bit to
specify which memory address this instruction will use
• In the Basic Computer, bit 15 of the instruction specifies the addressing mode (0: direct
addressing, 1: indirect addressing)
• Since the memory words, and hence the instructions, are 16 bits long, that leaves 3 bits for the
instruction’s opcode
Computer Architecture
Addressing Modes
•There are four different types of operands
that can appear in an instruction:
Computer Architecture
Computer Architecture
Registers
Computer instructions are stored in consecutive locations and are executed
sequentially; this requires a register which can track the address of the next
instruction;
we call it the Program Counter.
We need registers which can hold the address at which a memory operand is
stored as well as the value itself.
– temporary data
– the instruction being executed,
– a character being read in
– a character being written out.
Computer Architecture
Computer Architecture
Computer Architecture
The Common Bus System
To avoid excessive wiring, memory and all the register are connected via a common bus.
The register whose LD (Load) is enable receives the data from the bus.
The Accumulator’s input must come via the Adder & Logic Circuit. This allows the Accumulator and Data
Register to swap data simultaneously.
The address of any memory location being accessed must be loaded in the Address Register.
Computer Architecture
Computer Architecture
Computer Instructions
• The basic computer has three instruction code formats:
• In register-reference and I/O formats, only one of the lower 12 bits is set.
Computer Architecture
Memory-reference Instructions
The basic computer has 16-bit instruction register (IR) which can denote either memory
reference or register reference or input-output instruction.
Memory Reference – These instructions refer to memory address as an operand. The other
operand is always accumulator. Specifies 12-bit address, 3-bit opcode (other than 111) and 1-
bit addressing mode for direct and indirect addressing.
Computer Architecture
Computer Instructions - 1. Memory Reference type
4 bits 3 sets of 4 bits
0 0 0
0 0 1
0 1 0
1 0 0
1 0 1
1 1 0
Example –
if the IR register contains = 0001 XXXX XXXX XXXX, i.e. ADD after fetching and decoding of instruction we find out that
it is a memory reference instruction for ADD operation.
Computer Architecture
Computer Architecture
2. Register Reference –
• These instructions perform operations on registers rather than memory
addresses. The IR(14 – 12) is 111 (differentiates it from memory reference) and
IR(15) is 0 (differentiates it from input/output instructions). The rest 12 bits
specify register operation.
IR register contains = 0111001000000000, i.e. CMA after fetch and decode cycle we find out that it is a
register reference instruction for complement accumulator.
Computer Architecture
CLA 7800 Clear AC
Example –
IR register contains = 1111100000000000, i.e. INP after fetch and decode cycle we find
out that it is an input/output instruction for inputing character. Hence, INPUT character
from peripheral device.
Computer Architecture
Computer Architecture
Instruction-Set Completeness
• A computer instruction set is said to be complete if the computer includes a
sufficient number of instructions in each of these categories:
• A set of instructions is said to be complete if the computer includes a sufficient number of instructions in
each of the following categories:
• Arithmetic, logical and shift instructions
• A set of instructions for moving information to and from memory and processor registers.
• Instructions which controls the program together with instructions that check status conditions.
• Input and Output instructions
• Arithmetic, logic and shift instructions provide computational capabilities for processing the type of data the
user may wish to employ.
• A huge amount of binary information is stored in the memory unit, but all computations are done in
processor registers. Therefore, one must possess the capability of moving information between these two
units.
• Program control instructions such as branch instructions are used change the sequence in which the
program is executed.
• Input and Output instructions act as an interface between the computer and the user. Programs and data
must be transferred into memory, and the results of computations must be transferred back to the user.
Computer Architecture
Timing and Control
Computer Architecture
Timing and Control – Continued ..
• A Hard-wired Control consists of two decoders, a sequence counter, and a number of logic gates.
• An instruction fetched from the memory unit is placed in the instruction register (IR).
• The component of an instruction register includes; I bit, the operation code, and bits 0 through
11.
• The operation code in bits 12 through 14 are coded with a 3 x 8 decoder.
• The outputs of the decoder are designated by the symbols D0 through D7.
• The operation code at bit 15 is transferred to a flip-flop designated by the symbol I.
• The operation codes from Bits 0 through 11 are applied to the control logic gates.
• The Sequence counter (SC) can count in binary from 0 through 15.
Computer Architecture
The last three waveforms in Fig. show
how SC is cleared when D3T4 = I.
Output D3 from the operation
decoder becomes active at the end of
timing signal T2
Computer Architecture
Instruction Cycle
Computer Architecture
• The program is executed in the computer by going through a cycle for
each instruction.
• Upon the completion of step 4, the control goes back to step 1 to
fetch, decode, and execute the next instruction. This process
continues indefinitely unless a HALT instruction is encountered.
Computer Architecture
Instruction Cycle
• Initially, the program counter PC is loaded with the address of the first instruction in the program.
The sequence counter SC is cleared to 0, providing a decoded timing signal To.
• After each clock pulse, SC is incremented by one, so that the timing signals go through a sequence
T0, T1, T2, and so on. The microoperations for the fetch and decode phases can be specified by
the following register transfer statements.
• T0: AR <- PC
• T1: IR <-M[AR], PC <- PC + 1
• T2: D0, ••• , D7 <-Decode IR(12-14), AR <---IR(0-11), 1 <---IR(l5)
• Since only AR is connected to the address inputs of memory, it is necessary to transfer the
address from PC to AR during the clock transition associated with timing signal T0
• 1.The content of PC is placed onto the bus by setting the bus selection inputs S2S1S0 ie)010
• 2. The content of the bus is transferred to AR by enabling the LD input of AR
Computer Architecture
• To provide the data path for the
transfer of PC to IR, timing signal T1
is applied
• 1. The read input of memory is
enabled
• 2. the content of memory is placed
onto the bus by making s2s1s0 =111
• 3. The content of bus is transferred
to IR by enabling LD input of IR
• 4.
• PC is incremented by enabling the
INR input of PC
Computer Architecture
Computer Architecture
Computer Architecture
Type of Instruction and Addressing
During time T3, the control unit determines if this is a memory-reference, register-
reference or input/output instruction.
If D7=1,then it should be register reference or I/O reference instruction depending
on I bit
-if D7 ≠0,it is a memory-reference instruction, opcode must be 000 through 011 the
I bit will determine direct or indirect addressing.
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
Computer Architecture
COMPLETE COMPUTER DESCRIPTION
Fetch RT0: AR PC
RT1: IR M[AR], PC PC + 1
Decode RT2: D0, ..., D7 Decode IR(12 ~ 14),
AR IR(0 ~ 11), I IR(15)
Indirect D7IT3: AR M[AR]
Interrupt
T0T1T2(IEN)(FGI + FGO): R1
RT0: AR 0, TR PC
RT1: M[AR] TR, PC 0
RT2: PC PC + 1, IEN 0, R 0, SC 0
Memory-Reference
AND D0T4: DR M[AR]
D0T5: AC AC DR, SC 0
ADD D1T4: DR M[AR]
D1T5: AC AC + DR, E Cout, SC 0
LDA D2T4: DR M[AR]
D2T5: AC DR, SC 0
STA D3T4: M[AR] AC, SC 0
BUN D4T4: PC AR, SC 0
BSA D5T4: M[AR] PC, AR AR + 1
D5T5: PC AR, SC 0
ISZ D6T4: DR M[AR]
D6T5: DR DR + 1
D6T6: M[AR] DR, if(DR=0) then (PC PC + 1),
SC 0
Computer Architecture
COMPLETE COMPUTER DESCRIPTION Micro-operations
Register-Reference
D7IT3 = r (Common to all register-reference instr)
IR(i) = Bi (i = 0,1,2, ..., 11)
r: SC 0
CLA rB11: AC 0
CLE rB10: E0
CMA rB9: AC AC
CME rB8: E E
CIR rB7: AC shr AC, AC(15) E, E AC(0)
CIL rB6: AC shl AC, AC(0) E, E AC(15)
INC rB5: AC AC + 1
SPA rB4: If(AC(15) =0) then (PC PC + 1)
SNA rB3: If(AC(15) =1) then (PC PC + 1)
SZA rB2: If(AC = 0) then (PC PC + 1)
SZE rB1: If(E=0) then (PC PC + 1)
HLT rB0: S0
Computer Architecture
DESIGN OF BASIC COMPUTER
Hardware Components
12 12
From bus AR To bus
D'7
I
LD Clock
T3
T2 INR
CLR
R
T0
D
T4
Computer Architecture
CONTROL OF FLAGS
IEN: Interrupt Enable Flag
pB7: IEN 1 (I/O Instruction)
pB6: IEN 0 (I/O Instruction)
RT2: IEN 0 (Interrupt)
D
7
p
I J IEN
Q
B7
T3
B6
K
R
T2
Computer Architecture
Computer Architecture
Computer Architecture
Design of ALU and AC -
Computer Architecture
Instructions associated with AC
Computer Architecture
Computer Architecture