Instruction Execution (Load and Store instructions)

Slides:



Advertisements
Similar presentations
Computer Science Education
Advertisements

The LC-3 – Chapter 6 COMP 2620 Dr. James Money COMP
ARITHMETIC LOGIC SHIFT UNIT
Number One Tom Bozic Ian Nuber Greg Ramsey Henry Romero Matt Unangst.
Processor Design Computer Architecture CS 215 Updated 10/21/14.
Dale & Lewis Chapter 5 Computing components. Let’s design a computer Generic CPU with registers −Program counter (PC) – 5 bits (size of addresses) −Instruction.
Computer System Configuration and Function Computer Architecture and Design Lecture 6.
Computer Organization CSC 405 (VSC) Very Simple Computer.
Ch5. 기본 컴퓨터의 구조와 설계.
REGISTER TRANSFER LANGUAGE (RTL) INTRODUCTION TO REGISTER Registers1.
SRC: instruction formats Op-coderarb rc c Type D Op-code Type Aunused Op-codera Type Bc1 21 Op-coderarb.
Single Cycle CPU - Control
REGISTER TRANSFER AND MICROOPERATIONS
CS161 – Design and Architecture of Computer Systems
Basic Computer Organization and Design
REGISTER TRANSFER LANGUAGE (RTL)
REGISTER TRANSFER AND MICROOPERATIONS
Computer Architecture
A Uni-bus Data Path Implementation for the SRC
Structural RTL for the br and brl instructions
COMP541 Datapaths I Montek Singh Mar 28, 2012.
Introduction CPU performance factors
EKT 221 : Digital 2 COUNTERS.
ADVANCED PROCESSOR ARCHITECTURE
Morgan Kaufmann Publishers The Processor
KU College of Engineering Elec 204: Digital Systems Design
Morgan Kaufmann Publishers
Instruction Execution (Load and Store instructions)
External CPU Bus Activity
Decode and Operand Read
MIPS Processor.
Computer Science 210 Computer Organization
Computer Architecture
BASIC COMPUTER ORGANIZATION AND DESIGN
Registers and Counters
Chapter 2: Machines, Machine Languages, and Digital Logic
Instructor: Alexander Stoytchev
Falcon-E : Introduction
Chapter 4: Processor Design
Computer Science 210 Computer Organization
COE 202: Digital Logic Design Sequential Circuits Part 4
4-Bit Counter Spencer Canavan.
Computer Architecture and Design Lecture 6
MIPS Processor.
Registers and Counters
Levels in Processor Design
Rocky K. C. Chang 6 November 2017
Fields in the FALCON-A Instruction
Programmer’s View of the EAGLE
Levels in Processor Design
The Processor Lecture 3.1: Introduction & Logic Design Conventions
A register design with parallel load input
IR <2..0> CON 3-to-8 Decoder Never Branch Always Branch
COMS 361 Computer Organization
Levels in Processor Design
Overview Part 1 - Registers, Microoperations and Implementations
Levels in Processor Design
Execution time Execution Time (processor-related) = IC x CPI x T
RTL for the SRC pipeline registers
Registers and Counters
Levels in Processor Design
Example 1: (expression evaluation)
Registers and Counters
CS501 Advanced Computer Architecture
Reverse Assembly Typical problem:
The Processor: Datapath & Control.
COMS 361 Computer Organization
Registers and Counters
MIPS Processor.
Processor: Datapath and Control
Presentation transcript:

Instruction Execution (Load and Store instructions) ie := ( (op<4..0>= 1) : R[ra] ¬ M[disp], load register (ld) (op<4..0>= 2) : R[ra] ¬ M[rel], load register relative (ldr) (op<4..0>= 3) : M[disp] ¬ R[ra], store register (st) (op<4..0>= 4) : M[rel] ¬ R[ra], store register relative (str) (op<4..0>= 5) : R[ra] ¬ disp, load displacement address (la) (op<4..0>= 6) : R[ra] ¬ rel, load relative address (lar) . . . Other instructions go here

Instruction Execution (Branch instructions) ie := ( . . . (op<4..0>= 8) : (cond : PC ¬ R[rb]), conditional branch (br) (op<4..0>= 9) : (R[ra] ¬ PC, cond : (PC ¬ R[rb]) ), branch and link (brl)

Instruction Execution (Branch instructions) ie := ( . . . (op<4..0>= 8) : (cond : PC ¬ R[rb]), conditional branch (br) (op<4..0>= 9) : (R[ra] ¬ PC, cond : (PC ¬ R[rb]) ), branch and link (brl) cond := ( c3á2..0ñ=0 : 0, never c3á2..0ñ=1 : 1, always c3á2..0ñ=2 : R[rc]=0, if register is zero c3á2..0ñ=3 : R[rc]¹0, if register is nonzero c3á2..0ñ=4 : R[rc]á31ñ=0, if positive or zero c3á2..0ñ=5 : R[rc]á31ñ=1 ), if negative

Instruction Execution (Branch instructions) ie := ( . . . (op<4..0>= 8) : (cond : PC ¬ R[rb]), conditional branch (br) (op<4..0>= 9) : (R[ra] ¬ PC, cond : (PC ¬ R[rb]) ), branch and link (brl) This simply means that when c3<2..0> is equal to one of these six values, substitute the expression on the right hand side of the : in place of cond cond := ( c3á2..0ñ=0 : 0, never c3á2..0ñ=1 : 1, always c3á2..0ñ=2 : R[rc]=0, if register is zero c3á2..0ñ=3 : R[rc]¹0, if register is nonzero c3á2..0ñ=4 : R[rc]á31ñ=0, if positive or zero c3á2..0ñ=5 : R[rc]á31ñ=1 ), if negative

Instruction Execution (Arithmetic and Logical instructions) ie := ( . . . (op<4..0>=12) : R[ra] ¬ R[rb] + R[rc], (op<4..0>=13) : R[ra] ¬ R[rb] + c2á16..0ñ {sign extend}, (op<4..0>=14) : R[ra] ¬ R[rb] - R[rc], (op<4..0>=15) : R[ra] ¬ - R[rc], (op<4..0>=20) : R[ra] ¬ R[rb] & R[rc], (op<4..0>=21) : R[ra] ¬ R[rb] & c2á16..0ñ {sign extend}, (op<4..0>=22) : R[ra] ¬ R[rb] ~ R[rc], (op<4..0>=23) : R[ra] ¬ R[rb] ~ c2á16..0ñ {sign extend}, (op<4..0>=24) : R[ra] ¬ ! R[rc],

Instruction Execution (Arithmetic and Logical instructions) ie := ( . . . (op<4..0>=12) : R[ra] ¬ R[rb] + R[rc], (op<4..0>=13) : R[ra] ¬ R[rb] + c2á16..0ñ {sign extend}, (op<4..0>=14) : R[ra] ¬ R[rb] - R[rc], (op<4..0>=15) : R[ra] ¬ - R[rc], (op<4..0>=20) : R[ra] ¬ R[rb] & R[rc], (op<4..0>=21) : R[ra] ¬ R[rb] & c2á16..0ñ {sign extend}, (op<4..0>=22) : R[ra] ¬ R[rb] ~ R[rc], (op<4..0>=23) : R[ra] ¬ R[rb] ~ c2á16..0ñ {sign extend}, (op<4..0>=24) : R[ra] ¬ ! R[rc], and add sub addi neg or andi ori not

Instruction Execution (Shift instructions) ie := ( . . . (op<4..0>=26) : R[ra]á31..0 ñ ¬ (n α 0) © R[rb] á31..nñ, (op<4..0>=27) : R[ra]á31..0 ñ ¬ (n α R[rb] á31ñ) © R[rb] á31..nñ, (op<4..0>=28) : R[ra]á31..0 ñ ¬ R[rb] á31-n..0ñ © (n α 0), (op<4..0>=29) : R[ra]á31..0 ñ ¬ R[rb] á31-n..0ñ © R[rb]á31..32-n ñ, where n := ( (c3á4..0ñ=0) : R[rc], (c3á4..0ñ¹0) : c3 á4..0ñ ), Notation: α means replication © means concatenation

Instruction Execution (Shift instructions) ie := ( . . . (op<4..0>=26) : R[ra]á31..0 ñ ¬ (n α 0) © R[rb] á31..nñ, (op<4..0>=27) : R[ra]á31..0 ñ ¬ (n α R[rb] á31ñ) © R[rb] á31..nñ, (op<4..0>=28) : R[ra]á31..0 ñ ¬ R[rb] á31-n..0ñ © (n α 0), (op<4..0>=29) : R[ra]á31..0 ñ ¬ R[rb] á31-n..0ñ © R[rb]á31..32-n ñ, shr shra where n := ( (c3á4..0ñ=0) : R[rc], (c3á4..0ñ¹0) : c3 á4..0ñ ), shl shc Notation: α means replication © means concatenation

Instruction Execution (Miscellaneous instructions) ie := ( . . . (op<4..0>= 0) : , No operation (nop) (op<4..0>= 31) : Run ¬ 0, Halt the processor (Stop) ); iF ); Instruction Execution ends here

The basic D Flip-Flop

The basic D Flip-Flop Q output Data input Enable input Active low Clock input Active low clear input

The n-bit register Definition: a group of FFs operating synchronously Can be formed by using n D flip-flops Connect the clock inputs of DFFs together (and enables also) Clock to DFFs has to be free running, especially for dynamic gates; use En to load registers

A 4-bit register: circuit

A 4-bit register: our symbol Inputs Clock Enable Outputs

A 4-bit register: test circuit

A 4-bit register: waveforms Inputs Outputs

A 4-to-1 MUX: our symbol Inputs 3 2 1 output

A 4-to-1 MUX: test circuit

A 4-to-1 MUX: waveforms 3 1

Tri-state buffers: circuit symbol ENABLE Data Input Data Output Don’t care Data input Enable Data output X Z 1

A 4-bit tri-state buffer unit (our symbol)

A 4-bit tri-state buffer unit (test circuit)