Presentation is loading. Please wait.

Presentation is loading. Please wait.

Memory. The logic and arithmetic circuits we’ve seen so far have no memory. They just transform input to output. Can we make circuits that remember? Memory.

Similar presentations


Presentation on theme: "Memory. The logic and arithmetic circuits we’ve seen so far have no memory. They just transform input to output. Can we make circuits that remember? Memory."— Presentation transcript:

1 Memory

2 The logic and arithmetic circuits we’ve seen so far have no memory. They just transform input to output. Can we make circuits that remember? Memory

3 Matt really likes Sue, but he doesn’t like changing his mind… So: Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go. The Stubborn Guy

4 Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go. Two inputs to Matt’s decision: Sue, and his own state OR Sue Matt Feedback Wire He Needs Feedback (from Himself)

5 Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go. If Sue decides to go... OR Sue Matt 1 The Stubborn Guy: Feedback

6 Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go. If Sue decides to go, Matt will go. OR Sue Matt 1 1 1 The Stubborn Guy: Feedback

7 Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go. If Sue changes her mind… OR Sue Matt 0 1 1 The Stubborn Guy: Feedback

8 Matt decides to go to the party if Sue decides to go OR if he (Matt) had already planned to go. If Sue changes her mind, Matt will still go! Once he decides to go, we can’t get him to change his mind OR Sue Matt 0 1 1 The Stubborn Guy: Feedback

9 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. Enter Rita

10 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt Feedback Wire Enter Rita

11 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 0 0 0 0 1 Enter Rita

12 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 1 0 0 0 0 1 Enter Rita

13 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 1 0 1 1 1 1 Enter Rita

14 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 0 1 1 1 1 Enter Rita

15 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 – nothing changes: Sue can make Matt go, but cannot make him not go 0 1 1 1 1 Enter Rita

16 Matt doesn’t like Rita (maybe together they can make him not go) Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 1 1 1 1 1 Enter Rita

17 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 1 1 1 1 0 Enter Rita

18 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 1 1 1 0 0 Enter Rita

19 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 1 0 1 0 0 Enter Rita

20 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 1 0 0 0 0 Enter Rita

21 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 0 0 0 0 0 Enter Rita

22 Matt doesn’t like Rita Matt decides to go to the party if Sue decides to go OR: If he (Matt) had already planned to go AND Rita decides NOT to go. OR AND Sue Rita Matt 0 0 0 0 0 1 Enter Rita - no change

23 What Sue and Rita Can Do Sue can make Matt go, but cannot make him not go Rita can make Matt not go, but cannot make him go

24 OR AND Set Reset M M becomes 1 if Set is turned on M becomes 0 if Reset is turned on Otherwise (if both are 0), M just remembers its value The (SR) Flip-Flop

25 M becomes 1 if Set is turned on M becomes 0 if Reset is turned on Otherwise (if both are 0), M just remembers its value S R M The Flip-Flop

26 D W M What We Really Want Nothing happens unless Write = 1 If Write = 1, then M becomes set to D Once Write = 0 again, M just keeps its value. (It ignores D.) So, to set M to a value and store it as long as desired, set D to that value, then set W to 1 and then back to 0

27 AND Nothing happens unless Write = 1 S R M D Write The Data Flip-Flop

28 AND Nothing happens unless Write = 1 If Write = 1, then M becomes set to D Once Write = 0 again, M just keeps its value. (It ignores D.) S R M D Write The Data Flip-Flop

29 AND Initially, Write = 0. Let’s say M = 1. S R M D Write 0 0 0 1 Using a Data Flip-Flop

30 AND Initially, Write = 0. Let’s say M = 1. First, set D to desired value, say 0. S R M D Write 0 0 0 1 0 1 Using a Data Flip-Flop

31 AND Initially, Write = 0. Let’s say M = 1. First, set D to desired value, say 0. Then, set Write to 1. S R M D Write 1 0 1 1 0 1 Using a Data Flip-Flop

32 AND Initially, Write = 0. Let’s say M = 1. First, set D to desired value, say 0. Then, set Write to 1. This causes M to be reset to 0. Note use of abstraction with regard to SR flip-flop S R M D Write 1 0 1 0 0 1 Using a Data Flip-Flop

33 AND Initially, Write = 0. Let’s say M = 1. First, set D to desired value, say 0. Then, set Write to 1. This causes M to be reset to 0. Finally set Write back to 0. Now D is irrelevant. S R M D Write 0 0 0 0 ? 1 Using a Data Flip-Flop

34 If Write = 0, M just keeps its value. (It ignores D.) If Write = 1, then M becomes set to D D Write M The Data Flip-Flop

35 Are We Done?

36 When Write = 1, then M = D. If we have some feedback between M and D, then circuit could go haywire. D Write M ?? A Subtle Problem

37 For example, suppose a NOT gate connects M and D. When Write = 1, M and D keep changing. We have no control. D Write M NOT 1 ? ? A Subtle Problem

38 We want to control the feedback, so that each time we set Write to 1 and then back to 0, M stores only the last value of D (In this case, M should invert itself once each time we set Write to 1 and back to 0) D Write M NOT 1 ? ? A Subtle Problem

39 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write Two-Stage System to prevent D ever passing through directly to M (W 0,W 1 connected by NOT, so never 1 at the same time) D M The “Airlock” Flip-Flop

40 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write We start with Write = 0. Let’s say D is always NOT M; i.e. connected by NOT gate. Start with D = 0, M = 1. D M The “Airlock” Flip-Flop

41 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write We start with Write = 0. Let’s say D is always NOT M; i.e. connected by NOT gate Start with D = 0, M = 1. D M 0 0 1 1 1 The “Airlock” Flip-Flop

42 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write Want to store D in memory. Set Write to 1 D M 1 0 0 1 1 The “Airlock” Flip-Flop

43 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write Want to store D in memory. Set Write to 1 “Outer” flip-flop sets M 0 = D 0 = 0 “Inner” flip-flop ignores D 1 since W 1 = 0 D M 1 0 0 0 1 The “Airlock” Flip-Flop

44 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write Now, set Write back to 0 D M 0 0 1 0 1 The “Airlock” Flip-Flop

45 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write Now, set Write back to 0 Now “Inner” flip-flop sets M = D 1 = 0 D M 0 0 1 0 0 The “Airlock” Flip-Flop

46 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write Because of feedback, D might change to (NOT M), which is 1 But Write = 0, so “Outer” flip-flop ignores D, so M 0 stays 0. D M 0 1 1 0 0 The “Airlock” Flip-Flop

47 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write So memory does not change until we “toggle” Write. (“toggle” means change from 0 to 1 or vice versa) D M 0 1 1 0 0 The “Airlock” Flip-Flop

48 D1D1 W1W1 M1M1 D0D0 W0W0 M0M0 “Outer door” “Inner door” Write This is Real Memory! D M The “Airlock” Flip-Flop

49 D M W D M W D M W D M W Write Data 1 Data 2 Data 3 Data 4 Memory “Register”: 4 bits

50 Review We have used the Universal method to build –ALU –Memory Next steps –State machines to computer with memory –Building the computer –Writing a program to use the computer


Download ppt "Memory. The logic and arithmetic circuits we’ve seen so far have no memory. They just transform input to output. Can we make circuits that remember? Memory."

Similar presentations


Ads by Google