Enrico Nardelli Logic Circuits and Computer Architecture

Similar documents
Figure 4.9 MARIE s Datapath

Logic Design. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

UNIVERSITY OF WISCONSIN MADISON

Logic and Computer Design Fundamentals. Chapter 8 Sequencing and Control

CMP 334: Seventh Class

Computer Engineering Department. CC 311- Computer Architecture. Chapter 4. The Processor: Datapath and Control. Single Cycle

Basic Computer Organization and Design Part 3/3

ECE290 Fall 2012 Lecture 22. Dr. Zbigniew Kalbarczyk

INF2270 Spring Philipp Häfliger. Lecture 8: Superscalar CPUs, Course Summary/Repetition (1/2)

CMP 338: Third Class

CPS 104 Computer Organization and Programming Lecture 11: Gates, Buses, Latches. Robert Wagner

Design of Sequential Circuits

CprE 281: Digital Logic

Boolean Algebra and Digital Logic 2009, University of Colombo School of Computing

CPSC 3300 Spring 2017 Exam 2

Combinational Logic. Mantıksal Tasarım BBM231. section instructor: Ufuk Çelikcan

Latches. October 13, 2003 Latches 1

Lecture 13: Sequential Circuits, FSM

Table of Content. Chapter 11 Dedicated Microprocessors Page 1 of 25

CPU DESIGN The Single-Cycle Implementation

Computer Science. Questions for discussion Part II. Computer Science COMPUTER SCIENCE. Section 4.2.

NCU EE -- DSP VLSI Design. Tsung-Han Tsai 1

Digital Logic: Boolean Algebra and Gates. Textbook Chapter 3

CS61C : Machine Structures

CS61C : Machine Structures

ECE/CS 250 Computer Architecture

Hardware Design I Chap. 4 Representative combinational logic

A crash course in Digital Logic

Lecture 13: Sequential Circuits, FSM

ECE 250 / CPS 250 Computer Architecture. Basics of Logic Design Boolean Algebra, Logic Gates

CSE Computer Architecture I

The Design Procedure. Output Equation Determination - Derive output equations from the state table

Appendix B. Review of Digital Logic. Baback Izadi Division of Engineering Programs

ALU A functional unit

A Second Datapath Example YH16

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

Processor Design & ALU Design

UNIT 8A Computer Circuitry: Layers of Abstraction. Boolean Logic & Truth Tables

Menu. Excitation Tables (Bonus Slide) EEL3701 EEL3701. Registers, RALU, Asynch, Synch

Design at the Register Transfer Level

Combinational vs. Sequential. Summary of Combinational Logic. Combinational device/circuit: any circuit built using the basic gates Expressed as

EE40 Lec 15. Logic Synthesis and Sequential Logic Circuits

CSE370: Introduction to Digital Design

COVER SHEET: Problem#: Points

Binary addition example worked out

Boolean Algebra. Digital Logic Appendix A. Postulates, Identities in Boolean Algebra How can I manipulate expressions?

Digital Logic Appendix A

Combinational Logic Design Combinational Functions and Circuits

Computer Science Final Examination Friday December 14 th 2001

Combinatorial Logic Design Multiplexers and ALUs CS 64: Computer Organization and Design Logic Lecture #13

LOGIC CIRCUITS. Basic Experiment and Design of Electronics

Computer Science. 19. Combinational Circuits. Computer Science COMPUTER SCIENCE. Section 6.1.

Boolean Algebra. Digital Logic Appendix A. Boolean Algebra Other operations. Boolean Algebra. Postulates, Identities in Boolean Algebra

From Sequential Circuits to Real Computers

Introduction to CMOS VLSI Design Lecture 1: Introduction

Digital Logic. CS211 Computer Architecture. l Topics. l Transistors (Design & Types) l Logic Gates. l Combinational Circuits.

Project Two RISC Processor Implementation ECE 485

EXPERIMENT Bit Binary Sequential Multiplier

Introduction to Computer Engineering. CS/ECE 252, Fall 2012 Prof. Guri Sohi Computer Sciences Department University of Wisconsin Madison

EE 209 Logic Cumulative Exam Name:

CSE370 HW6 Solutions (Winter 2010)

System Data Bus (8-bit) Data Buffer. Internal Data Bus (8-bit) 8-bit register (R) 3-bit address 16-bit register pair (P) 2-bit address

Computer Organization I CRN Test 3/Version 1 CMSC 2833 CRN Spring 2017

Adders, subtractors comparators, multipliers and other ALU elements

UMBC. At the system level, DFT includes boundary scan and analog test bus. The DFT techniques discussed focus on improving testability of SAFs.

211: Computer Architecture Summer 2016

DIGITAL TECHNICS. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute

CSC9R6 Computer Design. Practical Digital Logic

Chapter 7 Logic Circuits

Adders, subtractors comparators, multipliers and other ALU elements

Verilog HDL:Digital Design and Modeling. Chapter 11. Additional Design Examples. Additional Figures

Logic and Boolean algebra

Systems I: Computer Organization and Architecture

ECE 448 Lecture 6. Finite State Machines. State Diagrams, State Tables, Algorithmic State Machine (ASM) Charts, and VHDL Code. George Mason University

From Sequential Circuits to Real Computers

convert a two s complement number back into a recognizable magnitude.

Boolean Logic Continued Prof. James L. Frankel Harvard University

IHS 3: Test of Digital Systems R.Ubar, A. Jutman, H-D. Wuttke

CMPE12 - Notes chapter 1. Digital Logic. (Textbook Chapter 3)

Philadelphia University Student Name: Student Number:

LOGIC CIRCUITS. Basic Experiment and Design of Electronics. Ho Kyung Kim, Ph.D.

CS470: Computer Architecture. AMD Quad Core

ELCT201: DIGITAL LOGIC DESIGN

Preparation of Examination Questions and Exercises: Solutions

Unit 7 Sequential Circuits (Flip Flop, Registers)

UNIVERSITY OF BOLTON SCHOOL OF ENGINEERING BENG (HONS) ELECTRICAL & ELECTRONICS ENGINEERING EXAMINATION SEMESTER /2017

Homework Assignment #1 Solutions EE 477 Spring 2017 Professor Parker

Chapter 9 Computer Design Basics

[2] Predicting the direction of a branch is not enough. What else is necessary?

King Fahd University of Petroleum and Minerals College of Computer Science and Engineering Computer Engineering Department

The goal differs from prime factorization. Prime factorization would initialize all divisors to be prime numbers instead of integers*

3. (2) What is the difference between fixed and hybrid instructions?

Logic. Combinational. inputs. outputs. the result. system can

EE201l Homework # 6. Microprogrammed Control Unit Design

Automata Theory CS S-12 Turing Machine Modifications

[2] Predicting the direction of a branch is not enough. What else is necessary?

DIGITAL LOGIC CIRCUITS

COSC 243. Introduction to Logic And Combinatorial Logic. Lecture 4 - Introduction to Logic and Combinatorial Logic. COSC 243 (Computer Architecture)

EECS150 - Digital Design Lecture 23 - FFs revisited, FIFOs, ECCs, LSFRs. Cross-coupled NOR gates

Contents. Chapter 3 Combinational Circuits Page 1 of 36

Transcription:

Enrico Nardelli Logic Circuits and Computer Architecture Appendix B The design of VS0: a very simple CPU Rev. 1.4 (2009-10) by Enrico Nardelli B - 1

Instruction set Just 4 instructions LOAD M - Copy into Accumulator the value from memory at address M STORE M - Save Accumulator value into memory at address M ADD M - Sum values of Accumulator and of memory at address M and put the result into the Accumulator JUMP A - Execute in the next step the instruction stored at address A of memory Rev. 1.4 (2009-10) by Enrico Nardelli B - 2

Registers and Memory The bare minimum PC - Program Counter IR - Instruction Register MAR - Memory Address Register MBR - Memory Buffer Register AC - Accumulator All registers have 8 bits 64 (2 6 ) bytes of memory, each with 8 bits Rev. 1.4 (2009-10) by Enrico Nardelli B - 3

Instruction format 2 bits for the opcode 6 bits for the address (b 5 is the MSB, b 0 is the LSB) LOAD 0 0 b 5 b 4 b 3 b 2 b 1 b 0 STORE 1 1 b 5 b 4 b 3 b 2 b 1 b 0 ADD 0 1 b 5 b 4 b 3 b 2 b 1 b 0 JUMP 1 0 b 5 b 4 b 3 b 2 b 1 b 0 Rev. 1.4 (2009-10) by Enrico Nardelli B - 4

ALU s organization Only capable of adding (signal CA) two 8 bits number with a possible carry-in (signal CC) No overflow signal One addend is the Accumulator The other addend is the selection between PC and a memory address (through C6 and C14) ALU s output is stored into an internal buffer register Rev. 1.4 (2009-10) by Enrico Nardelli B - 5

ALU s internal structure C7 C9 C15 C6 C14 Full Adder Buffer Register Carry-in Enable ALU CC CA Rev. 1.4 (2009-10) by Enrico Nardelli B - 6

Internal schema Data Bus C5 C12 M B R C4 C11 C15 C10 AC PC C13 IR C6 C7 C9 Address Bus C0 M A R C2 Clock C14 clocks for mops C16 t 1 t 2 t 3 t 4 Control Unit ALU CC CA All C n, n=0..16, but for n=1,3,8 CC CR CW CA Rev. 1.4 (2009-10) by Enrico Nardelli B - 7

Micro-operations (1) Fetch t1: MAR <- PC C2 t2: MBR <- memory; PC+1; C0 C5 C14 CA CC CR t3: PC <- ALU; IR <- MBR C4 C15 Execute ADD t1: MAR <- IR addr C16 t2: MBR <- memory C0 C5 CR t3: AC+MBR C6 C7 CA t4: AC <- ALU C9 Rev. 1.4 (2009-10) by Enrico Nardelli B - 8

Micro-operations (2) Execute LOAD t1: MAR <- IR addr C16 t2: MBR <- memory C0 C5 CR t3: AC <- MBR C10 Execute STORE t1: MAR <- IR addr ; MBR <- AC C11 C16 t2: memory <- MBR C0 C12 CW Execute JUMP t1: PC <- IR addr C13 Rev. 1.4 (2009-10) by Enrico Nardelli B - 9

Decoding instructions Instruction Register b 6 b 7 L S A J Inside the Control Unit a 2-to-4 decoder provides L, S, A, J signals denoting which instruction is currently in IR Rev. 1.4 (2009-10) by Enrico Nardelli B - 10

Micro-operations (3) Generate t 1,t 2,t 3,t 4 from the clock through a base-4 counter and a 2-to-4 decoder Distinguish between Fetch and Execute with a 1- bit state register (can be inside the Control Unit) For each control signal Cn write the boolean expression for its activation in terms of status (Fetch/Execute), mop step being executed (t 1,t 2,t 3,t 4 ), and operation to be executed (L,S,A,J), by scanning the list of activated control signals for each step of each mop Rev. 1.4 (2009-10) by Enrico Nardelli B - 11

Generating clocks for mops Reset b 0 t 1 Clock Base 4 counter b 1 t 2 t 3 t 4 Counter can be reset at the last step of each mop to optimize performances Reset signal: Ft 3 + F t 1 J + F t 2 S + F t 3 L N.B.: t 1 =00, t 2 =01, t 3 =10, t 4 =11!!! Rev. 1.4 (2009-10) by Enrico Nardelli B - 12

State representation Control unit can be in the state of fetch (F=1) or in the state of execute (F=0) Status changes are activated during the last mop step of each phase of fetch or execute NOT(t 3 ) NOT(t 4 A, t 3 L, t 2 S, t 1 J) F=1 Fetch t 3 t 4 A, t 3 L, t 2 S, t 1 J F=0 Execute There is just one (why?) boolean expression for the transition condition of the unique state variable F n+1 = F n t 3 + F n t 4 A + F n t 3 L + F n t 2 S + F n t 1 J Rev. 1.4 (2009-10) by Enrico Nardelli B - 13

Activation of control signals Control Signal Boolean expression Control Signal Boolean expression C0 Ft 2 + F t 2 A + F t 2 L + F t 2 S C12 F t 2 S C2 Ft 1 C13 F t 1 J C4 Ft 3 C14 Ft 2 C5 Ft 2 + F t 2 A + F t 2 L C15 Ft 3 C6 F t 3 A C16 F t 1 A + F t 1 L + F t 1 S C7 F t 3 A CC Ft 2 C9 F t 4 A CA Ft 2 + F t 3 A C10 Ft 3 L CR Ft 2 + F t 2 A + F t 2 L C11 Ft 3 + F t 1 S CW F t 2 S Rev. 1.4 (2009-10) by Enrico Nardelli B - 14

A note on boolean expressions (1) Boolean expressions written have been derived directly from inspection of mops The theory of circuit synthesis tells us to examine what happens in general to each output signal for each possible combination of input signals (t 1, t 2, t 3, t 4, L, S, A, J) and state signal (F) Writing, e.g., F t 2 L could be wrong, since the exact and complete term is F t 1 t 2 t 3 t 4 LS A J : this is not equivalent to the former, which corresponds to F (t 1 +t 1 )t 2 (t 3 +t 3 )(t 4 +t 4 )L(S+S )(A+A )(J+J ) Rev. 1.4 (2009-10) by Enrico Nardelli B - 15

A note on boolean expressions (2) But we know that among t 1, t 2, t 3, and t 4 only and exactly one can be true, therefore we can substitute, e.g., t 1 t 2 with (t 1 +t 1 )t 2 knowing that the condition t 1 t 2 can never be true and hence derive the correct simpler term t 2 (in other words, t 1 t 2 is a don t care condition) For signals L, S, A, and J, if one of them is true then all the others are false and the same reasoning above applies. Finally, there are also those situations (e.g., for C2 activation in mop t 1 during the fetch phase) where we don t care at all about which of signals L,S,A,J is true Rev. 1.4 (2009-10) by Enrico Nardelli B - 16

Global optimization of signals Signal Boolean expression Signal Boolean expression CC, C14 Ft 2 C2 Ft 1 C4, C15 Ft 3 C5, CR CC + F t 2 A + F t 2 L C6, C7 F t 3 A C13 CW, C12 C16 C0 CA F t 1 J F t 2 S 2 F t 1 A + F t 1 L + F t 1 S C5 + CW CC + C6 C9 F t 4 A C10 F t 3 L C11 C4 + F t 1 S F n+1 Ft 3 + C9 + C10 + CW + C13 Rev. 1.4 (2009-10) by Enrico Nardelli B - 17

Additional considerations Do we need both state signal and instruction signals L,S,A,J to activate control signals? e.g. in the activation expression for C7, instead of F t 3 A, can we just write t 3 A? no, because if the previously fetched instruction was also an ADD then C7 is (wrongly) activated also during mop step t 3 in the fetch phase hence we need both state signal and instruction signals Do we need an explicit representation for state? no, if we use for the execution phases a different set of clock signals t 4,t 5,t 6,t 7 What changes using this approach? What do we lose? Rev. 1.4 (2009-10) by Enrico Nardelli B - 18

No Explicit State: Micro-operations (1) Fetch t1: MAR <- PC C2 t2: MBR <- memory; PC+1; C0 C5 C14 CA CC CR t3: PC <- ALU; IR <- MBR C4 C15 Execute ADD t4: MAR <- IR addr C16 t5: MBR <- memory C0 C5 CR t6: AC+MBR C6 C7 CA t7: AC <- ALU C9 Rev. 1.4 (2009-10) by Enrico Nardelli B - 19

No Explicit State: Micro-operations (2) Execute LOAD t4: MAR <- IR addr C16 t5: MBR <- memory C0 C5 CR t6: AC <- MBR C10 Execute STORE t4: MAR <- IR addr ; MBR <- AC C11 C16 t5: memory <- MBR C0 C12 CW Execute JUMP t4: PC <- IR addr C13 Rev. 1.4 (2009-10) by Enrico Nardelli B - 20

No Explicit State: Micro-operations (3) Generate t 1,t 2,t 3,t 4,t 5,t 6,t 7 from the clock through a base-8 counter and a 3-to-8 decoder (possibly use a counter with reset for optimization) For each control signal Cn write the boolean expression for its activation in terms of mop step being executed (t 1,t 2,t 3,t 4,t 5,t 6,t 7 ), and operation to be executed (L,S,A,J), by scanning the list of activated control signals for each step of each mop Rev. 1.4 (2009-10) by Enrico Nardelli B - 21

No Explicit State: Activation of control signals Control Signal Boolean expression Control Signal Boolean expression C0 t 2 + t 5 A + t 5 L + t 5 S C12 t 5 S C2 t 1 C13 t 4 J C4 t 3 C14 t 2 C5 t 2 + t 5 A + t 5 L C15 t 3 C6 t 6 A C16 t 4 A + t 4 L + t 4 S C7 t 6 A CC t 2 C9 t 7 A CA t 2 + t 6 A C10 t 3 L CR t 2 + t 5 A + t 5 L C11 t 3 + t 4 S CW t 5 S Rev. 1.4 (2009-10) by Enrico Nardelli B - 22

The complete circuit All circuital elements (including the Control Unit) have now been defined and it is known how to realize them Try drawing the complete circuit for the CPU and the memory!! It is a long but worthwhile task Do it in hierarchical stages: first layout modules and afterwards layout gates within modules In the real life they use CAD systems for electronic circuit design! Rev. 1.4 (2009-10) by Enrico Nardelli B - 23

A trivial program Give at location SUM the sum of four numbers stored in locations of memory N1, N2, N3, N4 ; Location SUM is distinct from N1, N2, N3, N4 LOAD N1 ; AC <- N1 ADD N2 ; AC <- N1+N2 ADD N3 ; AC <- N1+N2+N3 ADD N4 ; AC <- N1+N2+N3+N4 STORE SUM ; SUM <- N1+N2+N3+N4 Rev. 1.4 (2009-10) by Enrico Nardelli B - 24

Control Unit s implementation with micro-programmed control For the implementation of CU with a microprogrammed approach we do not need: signals t 1 t n marking different mops state register distinguishing between fetch and execute Even the IR decoder is not really needed, but we may use it depending on the CW structure Structure of CW and structure of Sequencing Logic are strictly related: a CW with more information needs a simpler Sequencing Logic and vice-versa Rev. 1.4 (2009-10) by Enrico Nardelli B - 25

CW and sequencing mops CW has two address fields (SmA and JmA) of 5 bits each SmA is the next CW address in case of sequential execution JmA is the next CW address in case of jump Fields are empty when the choice is forced A 2-way multiplexer is used to select between SmA and JmA and hence choose the next CW to be executed Selection line (SEL) for multiplexer is activated by a circuit in the Sequential Logic whose structure depends on the structure of jump conditions in CW No jump flags One jump flag (K) only for end-of-mop Jump flags both for end-of-mop and for selecting the proper micro-procedure during the CPU execution phase Rev. 1.4 (2009-10) by Enrico Nardelli B - 26

Generic structure of CU CONTROL UNIT Control Memory CAR Control Signals Jump Conditions Seq. CW Addr Jump CW Addr IR Sequencing Logic MUX Rev. 1.4 (2009-10) by Enrico Nardelli B - 27

CW without jump conditions: CU s structure CONTROL UNIT Control Memory CAR Control Signals Seq. CW Addr Jump CW Addr IR Sequencing Logic MUX Rev. 1.4 (2009-10) by Enrico Nardelli B - 28

CW without jump conditions: Sequencing Logic If there are no flags in CW the selection between SmA and JmA may use only the state of CU, represented by CAR value Towards the end of CU execution cycle, CAR contains the address of current CW in execution hence the value of such an address is used to drive the selection of next CW A CAR decoder provides I n signals telling that CW at address n is being executed A 2-to-4 decoder on the two most significant bits of IR is needed to understand which CPU instruction is being executed and to provide L, S, A, and J signals Signal for selection line (0 to select SmA, 1 for JmA) is SEL = I 3 + I 6 + I 12 + I 16 + I 17 + I 7 L + I 8 S + I 9 A + I 10 J Both decoders are part of the Sequencing Logic Rev. 1.4 (2009-10) by Enrico Nardelli B - 29

CW without jump conditions: Control Memory Micro Procedure ma C0 C2 C4 C5 C6 C7 C9 C 10 C 11 C 12 C 13 C 14 C 15 C 16 CC CA CR CW S ma J ma Fetch 1 1 2 2 1 1 1 1 1 1 3 3 1 1 7 Load 4 1 5 5 1 1 1 6 6 1 1 Execute 7 8 4 8 9 11 9 10 13 10 7 17 Store 11 1 1 12 12 1 1 1 1 Add 13 1 14 14 1 1 1 15 15 1 1 1 16 16 1 1 Jump 17 1 1 Rev. 1.4 (2009-10) by Enrico Nardelli B - 30

CW with one jump condition: CU s structure CONTROL UNIT Control Memory CAR Control Signals K Seq. CW Addr Jump CW Addr IR Sequencing Logic MUX Rev. 1.4 (2009-10) by Enrico Nardelli B - 31

CW with one jump condition: Sequencing Logic A jump flag (K) is used to mark the last mop of each microprocedure (but for the Execute one) I n signals provided by the CAR decoder now are only needed during the Execute micro-procedure A 2-to-4 decoder on the two most significant bits of IR is needed to understand which CPU instruction is being executed and to provide L, S, A, and J signals Signal for selection line (0 to select SmA, 1 for JmA) is SEL = K + I 7 L + I 8 S + I 9 A + I 10 J Sequencing Logic is independent from the location of any micro-procedure in Control Memory, but for the Execute one Rev. 1.4 (2009-10) by Enrico Nardelli B - 32

CW with one jump condition: Control Memory Micro Procedure ma C0 C2 C4 C5 C6 C7 C9 C 10 C 11 C 12 C 13 C 14 C 15 C 16 CC CA CR CW K S ma J ma Fetch 1 1 2 2 1 1 1 1 1 1 3 3 1 1 1 7 Load 4 1 5 5 1 1 1 6 6 1 1 1 Execute 7 8 4 8 9 11 9 10 13 10 7 17 Store 11 1 1 12 12 1 1 1 1 1 Add 13 1 14 14 1 1 1 15 15 1 1 1 16 16 1 1 1 Jump 17 1 1 1 Rev. 1.4 (2009-10) by Enrico Nardelli B - 33

CW with many jump conditions: CU s structure CONTROL UNIT Control Memory CAR Control Signals E L E S E A E J K Seq. CW Addr Jump CW Addr IR Sequencing Logic MUX Rev. 1.4 (2009-10) by Enrico Nardelli B - 34

CW with many jump conditions: Sequencing logic A jump flag (K) is used to mark the last mop of each micro-procedure Four jump flags (E L, E S, E A, E J ) mark the four mops in the Execute micro-procedure There is no need now for a CAR decoder: this is obtained at the cost of a longer CW A 2-to-4 decoder on the two most significant bits of IR is needed to understand which CPU instruction is being executed and to provide L, S, A, and J signals Signal for selection line (0 to select SmA, 1 for JmA) is SEL = K + E L L + E S S + E A A + E J J Sequencing Logic is now fully independent from the location of any micro-procedure in Control Memory Rev. 1.4 (2009-10) by Enrico Nardelli B - 35

CW with many jump conditions: Control Memory Micro Procedure ma C0 C2 C4 C5 C6 C7 C9 C 10 C 11 C 12 C 13 C 14 C 15 C 16 CC CA CR CW EL ES EA EJ K S ma J ma Fetch 1 1 2 2 1 1 1 1 1 1 3 3 1 1 1 7 Load 4 1 5 5 1 1 1 6 6 1 1 1 Execute 7 1 8 4 8 1 9 11 9 1 10 13 10 1 7 17 Store 11 1 1 12 12 1 1 1 1 1 Add 13 1 14 14 1 1 1 15 15 1 1 1 16 16 1 1 17 1 Jump 17 1 1 1 Rev. 1.4 (2009-10) by Enrico Nardelli B - 36

An internal schema with single bus C15 C14 M BR C11 C10 C1 C2 C3 C4 C5 C6 C7 C8 C16 M AR C12 C13 Clock PC IR AC clocks for mops t 1 t 2 t 3 t 4 Control Unit ALU CT CC CA C9 CC CR CW CA CT Rev. 1.4 (2009-10) by Enrico Nardelli B - 37

ALU changes ALU needs a buffer (with reset) also for input C8 C9 C7 Reset Input Buffer Register Full Adder Output Buffer Register Carry-in Enable ALU CT CC CA Rev. 1.4 (2009-10) by Enrico Nardelli B - 38

Micro-operations (1) Single Bus Fetch one more step t1: MAR <- PC C2 C13 t2: MBR <- memory C16 C15 CR PC+1 C2 C7 CT CA CC t3: PC <- ALU C8 C1 t4: IR <- MBR C10 C3 Rev. 1.4 (2009-10) by Enrico Nardelli B - 39

Micro-operations (2) Single Bus Execute ADD reorganization of micro-operations t1: MAR <- Ir addr C4 C13 t2: MBR <- memory C16 C15 CR ALU <- AC C6 C9 t3: MBR+ALU C10 C7 CA t4: AC <- ALU C8 C5 Rev. 1.4 (2009-10) by Enrico Nardelli B - 40

Micro-operations (3) Single Bus Execute LOAD t1: MAR <- IR addr C4 C13 t2: MBR <- memory C16 C15 CR t3: AC <- MBR C10 C5 Rev. 1.4 (2009-10) by Enrico Nardelli B - 41

Micro-operations (4) Single Bus Execute STORE one more step t1: MAR <- (IR addr ) C4 C13 t1: MBR <- AC C6 C11 t2: memory <- MBR C14 C16 CW Execute JUMP t1: PC <- (IR addr ) C14 C2 Rev. 1.4 (2009-10) by Enrico Nardelli B - 42

Completion of single bus Continue development as shown before Decide whether to explicitly represent state or not Decide whether to implement a hardwired CU or a micro-programmed one In the latter case, decide the structure of the control word Rev. 1.4 (2009-10) by Enrico Nardelli B - 43

Other simple design variations Try them (even together) to understand consequences of various design decisions! 1. Add to the ALU the capability to provide Zero or Overflow signal and use a JUMP conditional to the signal value instead of the unconditional JUMP 2. Use an internal CPU schema with two internal buses to connect CPU elements instead of direct paths 3. Use two variants of ADD. One, specified by b 5 =0, having as parameter the address of memory cell, written in the byte right after the one with ADD. The other, specified by b 5 =1, having as argument the number to be added written in bits b 4 -b 0 4. Use a micro-programmed CU with just one address field 5. Study if it is possible to avoid the use of the 2-to-4 IR decoder by means of a different organization of the micro-procedure for the CPU execution phase Rev. 1.4 (2009-10) by Enrico Nardelli B - 44