Our First Real System.

Presentation on theme: "Our First Real System."— Presentation transcript:

Our First Real System

On our way to building a computer…
Review On our way to building a computer… Logic Circuits: Universal Method Represent Info with 0’s & 1’s (aka bits) 0’s & 1’s Memory Circuits Computers We are here

The System Clock “500 Mhz Pentium III computer…”
What does “500 Mhz” mean? It refers to the speed of the System Clock. (actually this is only one of the clocks…) All digital systems have such “Clocks,” even traffic lights and elevator control systems.

Clocks: Some Terminology
Think of System Clock as a heart. How fast it beats is measured in Hertz (Hz) which means “cycles per second” Prefixes: Kilo = 1,000 Mega = 1,000,000 Giga = 1,000,000,000

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0 1

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0 1

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0 1

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0 1

The System Clock (cont.)
Rough idea: System takes a “step” every time the System Clock beats. We’ll see how this works in an example. In real life, Clock is a Quartz crystal, which sends out 0’s and 1’s on a wire. In every cycle, it changes from 0 to 1 and back to 0

Our System: A Traffic Light

A Traffic Light Intersection of two one-way roads

A Traffic Light Intersection of two one-way roads A B Car Sensors

Traffic Light System Clock
Traffic Lights don’t have to act very fast. Let’s say the System Clock only beats once every 4 seconds. This is 0.25 Hz. (a few Billion times slower than your PC)

Traffic Light Design How do we go about designing the Traffic Light?
First, let’s think about all the possible States of the traffic light.

Traffic Light Intersection of two one-way roads A B Car Sensors

Light A Light B

Possible States Light A Light B

Possible States Light A Light B

Possible States Light A Light B

Possible States Light A Light B

Actually Only 4 Possibilities
Light A Light B

Traffic Light Design We figured out some possible States of the Traffic Light. Next, we should think logically about how the Traffic Light should behave. For now, we will try to keep it simple. (Suppose these are infrequently used country roads.)

How should the Light behave?
Light A B Light B Car Sensors

Traffic Light Behavior
IF A=1 AND B=0 Light A Light B

Traffic Light Behavior
Otherwise IF A=1 AND B=0 Light A Light B

Traffic Light Behavior
Otherwise IF A=1 AND B=0 Light A Always Light B

Traffic Light Behavior
Otherwise IF A=1 AND B=0 Light A Always IF A=0 AND B=1 Otherwise Light B

Traffic Light Behavior
Otherwise IF A=1 AND B=0 Light A Always Always IF A=0 AND B=1 Otherwise Light B

Light A Light B Traffic Light Behavior Otherwise Note: Clock beats
every 4 sec. So Light is Yellow for 4 sec. IF A=1 AND B=0 Light A Always Always IF A=0 AND B=1 Otherwise Light B

Light A Light B Traffic Light State Machine Otherwise
Note: Clock beats every 4 sec. So Light is Yellow for 4 sec. IF A=1 AND B=0 Light A Always Always IF A=0 AND B=1 Otherwise Light B

Traffic Light Design We’ve figured out the logical behavior of the Traffic Light in terms of a State Machine: We know what the states are. For each state, given any input, we know which state to go to next. How do we build it?

Traffic Light Design Thinking this through: Our machine needs to:

Traffic Light Design Thinking this through: Our machine needs to:
Remember which state it is in (Memory)

Traffic Light Design Thinking this through: Our machine needs to:
Remember which state it is in (Memory) Given the state it is in and input values, it must determine which state to go to next (Logic)

Traffic Light Design Thinking this through: Our machine needs to:
Remember which state it is in (Memory) Given the state it is in and input values, it must determine which state to go to next (Logic) And that’s all !

Traffic Light Design Problem 1: Remember which state it is in (Memory)
How do represent the states? We could keep one bit of memory for whether Light A is Green or not, whether it is Yellow or not, … This would take 6 bits of memory. There is a much simpler way!

Traffic Light Design Problem 1: Remember which state it is in (Memory)
How do represent the states? Answer: Just number them (using binary numbers). We have 4 states. Call them 00, 01, 10, 11. We (human designers) will keep track of what these names mean.

Light A Light B Traffic Light States Otherwise IF A=1 AND B=0 Always

Light A Light B Traffic Light States 00 01 11 10 Otherwise IF A=1
AND B=0 00 01 Light A Always Always IF A=0 AND B=1 11 10 Otherwise Light B

Traffic Light Design Problem 2:
Given the state it is in and input values, it must determine which state to go to next (Logic) Answer:

Traffic Light Design Problem 2:
Given the state it is in and input values, it must determine which state to go to next (Logic) Answer: Build a Truth Table Use Universal Method!

Traffic Light Behavior
Build A Truth Table for next state / Output M1 M2 A B D1 D2 Light A Red Light B Red …

Traffic Light Behavior
Otherwise IF A=1 AND B=0 00 01 Light A Always Always IF A=0 AND B=1 11 10 Otherwise Light B

Traffic Light Behavior
Build A Truth Table for next state / Output M1 M2 A B D1 D2 Light A Red Light B Red …

Traffic Light Behavior
Otherwise IF A=1 AND B=0 00 01 Light A Always Always IF A=0 AND B=1 11 10 Otherwise Light B

Traffic Light Behavior
Build A Truth Table for next state / Output M1 M2 A B D1 D2 Light A Red Light B Red … 0 1 * *

Traffic Light Behavior
Otherwise IF A=1 AND B=0 00 01 Light A Always Always IF A=0 AND B=1 11 10 Otherwise Light B

Traffic Light Behavior
Build A Truth Table for next state / Output M1 M2 A B D1 D2 Light A Red Light B Red … 0 1 * *

Traffic Light Behavior
Otherwise IF A=1 AND B=0 00 01 Light A Always Always IF A=0 AND B=1 11 10 Otherwise Light B

Traffic Light Behavior
Build A Truth Table for next state / Output M1 M2 A B D1 D2 Light A Red Light B Red … 0 1 * * 1 1 * *

Traffic Light Behavior
Otherwise IF A=1 AND B=0 00 01 Light A Always Always IF A=0 AND B=1 11 10 Otherwise Light B

Traffic Light Behavior
Build A Truth Table for next state / Output M1 M2 A B D1 D2 Light A Red Light B Red … 0 1 * * 1 1 * * … … … … … … …

Traffic Light Design We understand how to represent which state the system is in (so we can store it in Memory) We understand how the system can determine which state to go to next (Logic) Let’s put it together…

Traffic Light Design Current State 2-bit Memory Register Write
Sensor A Sensor B

Traffic Light Design Current State Next 2-bit State Memory Logic
Register Next State Logic For Next State & Output Write Sensor A 6 Outputs: for each Light Sensor B

Traffic Light Design Current State 2-bit Memory Logic Register For
Next State & Output Write Sensor A 6 Outputs: for each Light Sensor B

Traffic Light Design Current State 2-bit Memory Logic Register For
Next State & Output Clock Sensor A 6 Outputs: for each Light Sensor B

Design for Any State Machine
Many bits Current State Memory Register Logic For Next State & Output Clock Inputs Outputs

State Machines in Real Life
Elevator control systems Car control systems VCR’s Alarm Clocks Personal Computers … Just about everything!

More Sophisticated Designs
Just add more states, more inputs, more outputs, more rules… Example: Add a longer delay before Traffic Light changes from Yellow to Red. (Say 8 seconds instead of 4.)

Traffic Light Behavior
Otherwise IF A=1 AND B=0 Always Always Light A Always Always IF A=0 AND B=1 Otherwise Light B

More Sophisticated Designs
Note that the new “delay” states we added correspond to the SAME combinations of lights as other states (Red/Yellow). The purpose of the new states is only to add delays. Logical states need not correspond to different observable states of the machine!

More Sophisticated Designs
Can also add other State Machines!

More Sophisticated Designs
Example (Fairness): We might want a separate Timer machine for the Traffic Light: If cars keep coming, Light should decide after 3 minutes to switch lights. A Timer is just a state machine that keeps counting beats of the Clock

More Sophisticated Designs
Inputs Outputs Main State Machine Timer State Machine

State Machines that you can program
Next Time: Computers! State Machines that you can program

Similar presentations