From Sequential Circuits to Real Computers

Similar documents
From Sequential Circuits to Real Computers

Lecture 10: Synchronous Sequential Circuits Design

Chapter 3 Digital Logic Structures

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

Review for B33DV2-Digital Design. Digital Design

Design at the Register Transfer Level

Logic and Computer Design Fundamentals. Chapter 8 Sequencing and Control

CSE370: Introduction to Digital Design

CprE 281: Digital Logic

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

EECS Components and Design Techniques for Digital Systems. FSMs 9/11/2007

Models for representing sequential circuits

Finite State Machines CS 64: Computer Organization and Design Logic Lecture #15 Fall 2018

CprE 281: Digital Logic

ECE 341. Lecture # 3

Ch 7. Finite State Machines. VII - Finite State Machines Contemporary Logic Design 1

Synchronous Sequential Circuit Design. Dr. Ehab A. H. AL-Hialy Page 1

We are here. Assembly Language. Processors Arithmetic Logic Units. Finite State Machines. Circuits Gates. Transistors

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

EECS150 - Digital Design Lecture 11 - Shifters & Counters. Register Summary

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

COE 202: Digital Logic Design Sequential Circuits Part 3. Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:

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

CMP 338: Third Class

課程名稱 : 數位邏輯設計 P-1/ /6/11

CpE358/CS381. Switching Theory and Logical Design. Class 16

EE 209 Logic Cumulative Exam Name:

Enrico Nardelli Logic Circuits and Computer Architecture

Sequential Logic. Handouts: Lecture Slides Spring /27/01. L06 Sequential Logic 1

Project Two RISC Processor Implementation ECE 485

Fundamentals of Digital Design

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

CpE358/CS381. Switching Theory and Logical Design. Summer

COE 202: Digital Logic Design Sequential Circuits Part 3. Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:

Figure 4.9 MARIE s Datapath

CSE140: Design of Sequential Logic

Computer Organization: Boolean Logic

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

Design of Sequential Circuits

Z = F(X) Combinational circuit. A combinational circuit can be specified either by a truth table. Truth Table

(Boolean Algebra, combinational circuits) (Binary Codes and -arithmetics)

Faculty of Engineering. FINAL EXAMINATION FALL 2008 (December2008) ANSWER KEY

Memory Elements I. CS31 Pascal Van Hentenryck. CS031 Lecture 6 Page 1

Latches. October 13, 2003 Latches 1

Lecture 7: Logic design. Combinational logic circuits

CMP 334: Seventh Class

Lecture 13: Sequential Circuits, FSM

State and Finite State Machines

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

Introduction EE 224: INTRODUCTION TO DIGITAL CIRCUITS & COMPUTER DESIGN. Lecture 6: Sequential Logic 3 Registers & Counters 5/9/2010

Chapter 3. Chapter 3 :: Topics. Introduction. Sequential Circuits

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

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

Sequential Circuits Sequential circuits combinational circuits state gate delay

Digital Logic Appendix A

ECE290 Fall 2012 Lecture 22. Dr. Zbigniew Kalbarczyk

ALU A functional unit

CS/COE1541: Introduction to Computer Architecture. Logic Design Review. Sangyeun Cho. Computer Science Department University of Pittsburgh

CSC9R6 Computer Design. Practical Digital Logic

Logic and Boolean algebra

Philadelphia University Student Name: Student Number:

Finite State Machine (FSM)

CSC 322: Computer Organization Lab

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

UNIVERSITY OF WISCONSIN MADISON

Last lecture Counter design Finite state machine started vending machine example. Today Continue on the vending machine example Moore/Mealy machines

ALU, Latches and Flip-Flops

Sequential logic and design

Lecture 8: Sequential Networks and Finite State Machines

ECE380 Digital Logic. Synchronous sequential circuits

Finite State Machine. By : Ali Mustafa

CS/COE0447: Computer Organization

CSE140: Components and Design Techniques for Digital Systems. Midterm Information. Instructor: Mohsen Imani. Sources: TSR, Katz, Boriello & Vahid

ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN. Week 9 Dr. Srinivas Shakkottai Dept. of Electrical and Computer Engineering

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

CSE370 HW6 Solutions (Winter 2010)

EXPERIMENT Traffic Light Controller

Logic Design II (17.342) Spring Lecture Outline

Lecture 13: Sequential Circuits, FSM

ELCT201: DIGITAL LOGIC DESIGN

CS61c: Representations of Combinational Logic Circuits

Adders, subtractors comparators, multipliers and other ALU elements

LOGIC CIRCUITS. Basic Experiment and Design of Electronics

( c) Give logic symbol, Truth table and circuit diagram for a clocked SR flip-flop. A combinational circuit is defined by the function

ELEN Electronique numérique

MACHINE COMPUTING. the limitations

ENGG 1203 Tutorial_9 - Review. Boolean Algebra. Simplifying Logic Circuits. Combinational Logic. 1. Combinational & Sequential Logic

Lecture 14: State Tables, Diagrams, Latches, and Flip Flop

State & Finite State Machines

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

6.111 Lecture # 12. Binary arithmetic: most operations are familiar Each place in a binary number has value 2 n

Adders allow computers to add numbers 2-bit ripple-carry adder

Unit 8A Computer Organization. Boolean Logic and Gates

CS221: Digital Design. Dr. A. Sahu. Indian Institute of Technology Guwahati

ENGG 1203 Tutorial _03 Laboratory 3 Build a ball counter. Lab 3. Lab 3 Gate Timing. Lab 3 Steps in designing a State Machine. Timing diagram of a DFF

Adders, subtractors comparators, multipliers and other ALU elements

CDA 3200 Digital Systems. Instructor: Dr. Janusz Zalewski Developed by: Dr. Dahai Guo Spring 2012

Different encodings generate different circuits

Register Transfer Level (RTL) Design based on Vahid chap. 5

EECS150 - Digital Design Lecture 18 - Counters

Transcription:

From Sequential Circuits to Real Computers Lecturer: Guillaume Beslon Original Author: Lionel Morel Computer Science and Information Technologies - INSA Lyon Fall 2018 1 / 39 Introduction I What we have done so far is implementing simple FSM by using Moore Machines I No (complex) data is manipulated (e.g., integers) because this will require to many states... I But digital circuits (and of course computers) deal with data I We need a methodology that will gather: I I I combinatorial functions, automata, registers, to build functions such as counters, dividers, speedometers... and general computers. ) Algorithmic State Machines 2 / 39

From FSM to ASM I FSM can have a VERY large number of states (typically larger than 2 32 ) I Conceiving such an FSM with a Moore machine is theoretically possible but practically impossible I Such machines typically have a large number of states to deal with numerical values I ASM devide this large number of states between two machines : I A datapath dealing with numerical values! large number of states, simple flow I A controller dealing with control flow! low number of states, complex flow I Both systems are synchronized on the same Clock 3 / 39 From FSM to ASM: a simple example, the stopwatch... Blackboard! 4 / 39

A Sequential Circuit within the Control-Data Separation Scheme 5 / 39 Datapath I Offers computational ressources needed for the operations to be implemented I Typically includes arithmetic and logical components (possibly integrated into an ALU Arithmetic and Logic Unit) and registers connected by buses and multiplexers I Exchanges data (in/out) with the outside of the circuit I Performs all operations on data I But typically doesn t know which operation to perform and when to perform it I Clock drives registers (synchronous circuits) 6 / 39

A typical (simplistic) Datapath 7 / 39 Control I Knows which operations to perform and when I Doesn t deal with data directly (doesn t no how to do the operations) I Typically implemented as a Finite State Machine, i.e., an automaton (see lectures 4 and 5) Input alphabet: Orders (from the outside of the circuit) and Reports (from the datapath) Output alphabet: Acknowledgements (to the outside of the circuit) and Commands (to the datapath) I Clock drives automaton state changes (synchronous circuits) 8 / 39

Control Control is designed as a classical FSM (remember lectures 4 and 5) 9 / 39 Control (cont d) Then control is implemented as a classical FSM (remember lectures 4 and 5) I I = Orders [ Reports I O = Acknowledgements [ Commands I Q = set of states I T = Q (Orders [ Reports)! Q (transition function) I F = Q! (Acknowledgements [ Commands) (output function) 10 / 39

Control (cont d) 11 / 39 Control (cont d) Control is just about implemeting a Moore machine (no more, no less!!). Biggest difficulty is to not forget any control signal: I Between Control and outside world (Orders, Acknowledgments) I Between Control and Datapath (Commands, Reports) VERY IMPORTANT I Commands will control datapath registers through their enable pin (NOT by modifying the clock signal!!!!) I Commands control datapath routing through mutiplexers I Control never has access to the data. It only receives Reports computed by the datapath. Reports are used to choose automaton transitions. 12 / 39

Conception Methodology 1. Start with: I The algorithm describing the expected behavior I The general scheme of a sequential circuit 2. Using knowledge about circuit s environment and expected functionalities, identify Orders and Acknowledgements. 3. Build the Datapath: I Identify registers and computational resources (ALU) I Connect them such that all computations can be performed (including reports computation) 4. Design Datapath/Control interface (Commands and Reports signals). Interface will connect: I Commands: Outputs of the automaton to control the datapath (registers, plexers, ALU...) I Reports: Synthetic indicators of datapath state (e.g. ALU Flags). Sent to control 5. Transform the (unformal) algorithm into a Moore machine: I Identify states and transitions I Associate Acknowledges and Commands to each state. 13 / 39 Running Example: a telemeter Let s build a telemeter with digital display. Usage: I User presses a button I Telemeter emits an ultrasound impulse I Measures the echo travel time I Travel time is translated into a distance I Distance is displayed on screen 14 / 39

Running Example: definition of input/output signals Inputs are: I GO: triggers a new measure. Telemeter waits for GO to be 1 to start a new measure. I Receive: 0 when the ultrasound sensor hears nothing, 1 when sensor hears an echo. Outputs are: I Emit: Needs to be set to 1 during one clock cycle to emit an ultrasound impulse. I Distance: unsigned, 16 bits precision (but maximum value can be different from 65,535) due to time!distance convertion); 0 until Receive. I OK: 0 whenever the telemeter counts, 1 as soon as Distance is valid. Stays 1 until we ask for a new measure I ERR: 1 if echo never comes back, 0 otherwise. 15 / 39 Running Example: Algorithm tant_que GO = 0 fin_tant_que tant_que 1 tant_que GO = 1 temps = 0 Emit fin_tant_que tant_que Receive = 0 and carry = 0 (temps,carry) = temps + 1 distance = f(temps) fin_tant_que si carry tant_que GO = 0 ERR fin_tant_que sinon tant_que GO = 0 OK fin_tant_que fin_si fin_tant_que 16 / 39

Running Example: Circuit interface 17 / 39 Running Example: Global architecture 18 / 39

Running Example: counting distance 19 / 39 Running Example: bonus, dealing with time and overflow Blackboard! 20 / 39

Running Example: moore machine Ü ERR Ü EEI là y load R à Être 21 / 39 Demo Time! 22 / 39

Final sprint: building a real (but simple) computer I Great, we have all the necessary elements to build a Real computer I The only thing we still need is a way to organize things in order to execute any program rather than always the same computation... I But executing a program can be simply viewed as a computation (i.e. always the same!) I read an instruction I execute it I go to the next one I We will use Control-Data separation to build a sequential circuit which function will be to compute the execution of a sequence of instructions ) von Neumann architecture 23 / 39 Von Neumann s computer 24 / 39

Von Neumann and the EDVAC 25 / 39 The considerations which follow deal with the structure of a very high speed automatic digital computing system, and in particular with its logical control. An automatic computing system is a (usually highly composite) device, which can carry out instructions to perform calculations of a considerable order of complexity e.g. to solve a non-linear partial differential equation in 2 or 3 independent variables numerically. bold faces added by me :) 26 / 39

At any rate a central arithmetical part of the device will probably have to exist, and this constitutes the first specific part: CA. )Datapath and ALU 27 / 39 If the device is to be elastic, that is as nearly as possible all purpose, then a distinction must be made between the specific instructions given for and defining a particular problem, and the general control organs which see to it that these instructions no matter what they are are carried out. By the central control we mean this latter function only, and the organs which perform it form the second specific part: CC. )Control 28 / 39

At any rate the total memory constitutes the third specific part of the device: M. )Memory 29 / 39 The three specific parts CA, CC (together C) and M correspond to the associative neurons in the human nervous system. The First Draft Report on the EDVAC by John von Neumann, Jun 30th, 1945 30 / 39

Von Neumann s Architecture https://en.wikipedia.org/wiki/von_neumann_architecture 31 / 39 What is a program? 32 / 39

Programs.section.init9 main : mov. b #2, &0x32 loop : mov. b #2, &0x31 mov #20000, R4 wait1 : dec R4 jnz wait1 mov. b #0, &0x31 mov #20000, R4 wait2 : dec R4 jnz wait2 jmp loop 33 / 39 Executing programs - The Von Neumann Cycle - 1 Programs are executed instruction by instruction: loop{ Fetch Current Instruction Decode Instruction Execute (use datapath) Write Results (to registers / memory) Go to Next Instruction } A computer an ASM (i.e. by a controller and a datapath) that executes this algorithm (the von Neumann cycle ) 34 / 39

von Neumann architecture The datapath 35 / 39 von Neumann archirecture the control automaton 36 / 39

Von Neumann Architecture the datapath of a real computer 37 / 39 Demo Time! 38 / 39

That all folks! In this course, we followed a bottom-up approach: 3 How information is coded! binary 3 How we can deal with this information to compute other information from it! boolean algebra 3 How to build combinatorial circuits implementing simple mathematical functions 3 How to deal with time and describe sequential behaviors 3 How to build a small programmable machine ) The Computer Architecture course will further this discussion towards real computers. 39 / 39