• No results found

From Sequential Circuits to Real Computers

N/A
N/A
Protected

Academic year: 2021

Share "From Sequential Circuits to Real Computers"

Copied!
40
0
0

Loading.... (view fulltext now)

Full text

(1)

From Sequential Circuits to “Real” Computers

Lecturer: Guillaume Beslon Original Author: Lionel Morel

Computer Science and Information Technologies - INSA Lyon

Fall 2020

(2)

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 combinatorial functions,

I automata, I registers,

to build functions such as counters, dividers, speedometers... and general computers.

⇒ Algorithmic State Machines

(3)

From FSM to ASM

I FSM can have a VERY large number of states (typically larger than 232)

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 because they 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

(4)

From FSM to ASM: a simple example, the stopwatch

(5)

A Sequential Circuit within the Control-Data

Separation Scheme

CONTROL

DATAPATH

Data in Data out

Orders Acknowledgments

Reports Commands

Clock

ASM

(6)

Datapath

I Offerscomputational ressources needed for the operations to be implemented

I Typically includes arithmetic and logical components (possibly integrated into an ALU – Arithmetic and Logic Unit) andregisters connected by buses and multiplexers

I Exchanges data (in/out) with the outside of the circuit

I Performs all operations ondata

I But typically doesn’t knowwhich operation to perform and when to perform it

I Clock drives registers (synchronous circuits)

(7)

A typical (simplistic) Datapath

(8)

Control

I Knowswhich operations to perform and when

I Doesn’t deal with data directly (doesn’t nohow to do the operations)

I Typically implemented as aFinite 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) andCommands (to the datapath)

I Clock drives automaton state changes (synchronous circuits)

(9)

Control

Control is designed as a classical FSM (remember lectures 4 and 5)

(10)

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)

T

Inputs Current

state Clock

FSM

State Register F

Next

state Outputs

(11)

Control (cont’d)

(12)

Control (cont’d)

Control is just about implemeting a Moore machine (no more, no less !!). Biggest difficulty is tonot 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.

(13)

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, identifyOrders and Acknowledgements. 3. Build the Datapath:

I Identify registers and computational resources (ALU)

I Connect them such that all computationscan 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 AssociateAcknowledges and Commands to each state.

(14)

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

(15)

Running Example: definition of input/output signals

Inputs are:

I GO: triggers a new measure. Telemeter waits for GO to be 1to 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 untilReceive.

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.

(16)

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

(17)

Running Example: Circuit interface

Distance Go

Clock

ASM

Receive

OK Error Emit

(18)

Running Example: Global architecture

Distance Go

Clock

ASM

Receive

OK Error Emit CONTROL

DATAPATH

Reports Commands

(19)

Running Example: Datapath

Distance Go

Clock

ASM

Receive

OK Error Emit CONTROL

Load Reset

(20)

Running Example: bonus, dealing with time and

overflow

Distance Go

Clock

ASM

Receive

OK Error Emit CONTROL

Load Reset

(21)

Running Example: Control Moore machine

(22)

Demo Time!

(23)

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 toorganize things in order to executeany 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

(24)

Von Neumann’s computer

CPU

Von Neumann’s machine

Memory

address control

data

(25)

Von Neumann and the EDVAC

(26)

First Draft Report on the EDVAC (1945)

(27)

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 :)

(28)

At any rate a central arithmetical part of the devicewill probably have to exist, and this constitutes the first specific part: CA.

⇒Datapath and ALU

(29)

If the device is to beelastic, that is as nearly as possible all purpose, then a distinc- tion must be made between the specific instructions given for and defining a par- ticular problem, and the general control organs which see to it that these instruc- tions—no matter what they are—are carried out.

By the central control we mean this latter function only, and the organs which per- form it form the second specific part: CC.

⇒Control

(30)

At any rate the total memory consti- tutes the third specific part of the de- vice:M.

⇒Memory

(31)

The three specific parts CA, CC (to- gether 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

(32)

Von Neumann’s Architecture

(33)

What is a program?

(34)

Programs

. s e c t i o n . i n i t 9 main :

mov . b #2 , &0x32 l o o p :

mov . b #2 , &0x31 mov #20000 , R4 w a i t 1 :

dec R4 j n z w a i t 1

mov . b #0 , &0x31 mov #20000 , R4 w a i t 2 :

dec R4 j n z w a i t 2 jmp l o o p

(35)

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”)

(36)

von Neumann architecture – The datapath

(37)

von Neumann archirecture – the control automaton

(38)

Von Neumann Architecture – the datapath of a real

computer

(39)

Demo Time!

(40)

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 buildcombinatorial circuits implementing simple mathematical functions

3

How to deal with time and describesequential behaviors

3

How to build a smallprogrammable machine

The “Computer Architecture” course will further this discussion towards “real” computers.

References

Related documents