Building Academic Success Through Cornell Notes & Memory Techniques

 
Cornell Notes & Building
Memory
 
Cornell Note-taking Method, Storing Data: The Bit, Representing
and Building Memory, Program Counter (PC) Overview
 
Lecture Outline
 
Cornell Note-taking Method
Applying Bloom’s Taxonomy Through Cornell Notes
 
Storing Data: The Bit
Bit Overview and Implementation
 
Representing and Building Memory
Array Abstraction, Building From the Bit
 
Program Counter (PC) Overview
Control Flow of Computer Programs
 
2
Bloom’s Taxonomy
3
Remembering
Understanding
Applying
Analyzing
Creating
Evaluating
Recalling facts and basic concepts
Explaining ideas or concepts
Using information in a new (or similar)
situation
Drawing connections among ideas
Justifying your decisions or position
Producing something new
Bloom’s Taxonomy in Action: CSE 143
4
Remembering
Understanding
Applying
Analyzing
Creating
Evaluating
Remembering what Java objects
are
Understanding the use Java objects
Using Java objects defined in the
standard class libraries
How do Java objects relate to other real-
word tools?
Justifying why one would use a particular
Java object (ArrayList)?
Creating your own Java objects in your CSE
143 assignments
 
Bloom’s Taxonomy Discussion
 
In groups, discuss the following points:
 
Identify various aspects 
of your academic responsibilities
as a UW student (e.g., attending lecture) and categorize
them in 
one of the levels on Bloom’s Taxonomy
 
 
5
 
 
Discuss how you can practically
engage in higher-order levels of
thinking in Bloom’s Taxonomy
Cornell Note Taking Method
6
Notes
Questions
Summary
 
I.
Main Topic
Sub point
definition
example **
II.
Object-Oriented Programming
Encapsulates the data
and the operations for a
given data type
Provides abstractions -
you don’t need to know
how a car is implemented
in order to use it
Extensibility - easier to
add new data types
III.
Functional Programming
Extensibility - easier to
add new operations
 
Compose a
question that
corresponds to
the notes you
took
 
 
In what ways is
object-oriented
programming
more extensible
than functional
programming?
Object-oriented programming and functional
programming are two types of programming
paradigms…
Cornell Note Taking Method
7
Notes
Questions
Summary
I.
Main Topic
Sub point
definition
example **
 
II.
Object-Oriented Programming
Encapsulates the data
and the operations for a
given data type
Provides abstractions -
you don’t need to know
how a car is implemented
in order to use it 
Extensibility - easier to
add new data types
III.
Functional Programming
Extensibility - easier to
add new operations
Compose a
question that
corresponds to
the notes you
took
In what ways is
object-oriented
programming
more extensible
than functional
programming?
Object-oriented programming and functional
programming are two types of programming
paradigms…
Applying the Cornell Note-Taking Method
 
Try it during today’s technical lecture!
You will have a chance to reflect on your experience
taking Cornell Notes in Project 4
 
8
 
Lecture Outline
 
Cornell Note-taking Method
Applying Bloom’s Taxonomy Through Cornell Notes
 
Storing Data: The Bit
Bit Overview and Implementation
 
Representing and Building Memory
Array Abstraction, Building From the Bit
 
Program Counter (PC) Overview
Control Flow of Computer Programs
 
9
Computer Overview
 
CPU is the “brain” of our computer
Does necessary computations (add, subtract, multiply, etc.)
 
Memory is used to store values for later use
Requires persistence across multiple computations
Needs to change values at our discretion
 
10
COMPUTER
MEMORY
Data and
instructions
CPU
Program Counter
(which line of code
should I execute)
The Data Flip-Flop Gate
 
Simplest state-keeping component
1-bit input, 1-bit output
Wired to the clock signal
Always outputs its previous input: 
out(t) = in(t-1)
 
Implementation: a gate that can flip between two stable
states (remembering 0 vs. remembering 1)
Gates with this behavior are “Data Flip Flops” (DFFs)
 
11
 
Aside: Treating the DFF as a Primitive
 
Disclaimer: DFFs can be made from Nand gates exclusively
But requires wiring them together in a “messy” loop that the
hardware simulator can’t simulate and isn’t very educational
 
For simplicity, we will treat the DFF as a primitive in the
projects
Just like Nand, you can use the built-in implementation
 
12
 
Data Flip-Flop (DFF) Behavior
 
13
 
Clock
Signal
 
0
 
1
 
in
 
0
 
1
 
out
 
0
 
1
 
t=1
 
t=2
 
t=3
 
t=4
 
t=0
 
Sequential Chips
 
A category of chips that utilize the clock signal, in addition
to any combinational logic
 
Capable of:
Maintaining state
Optionally, acting on that state and the current inputs
Can incorporate combinational logic as well
 
Constructed from:
DFFs
Combinational logic (which is entirely constructed from Nand)
 
 
14
 
Sequential Chips
 
15
Combinational
Logic
 
f
DFF
 
output
 
output(
t
) = 
f
(state(
t-1
), input(
t
))
DFF
DFF
 
input
 
DFF Specification:
 
out(t) = in(t-1)
 
 
D Flip-Flop: Time Series
 
16
 
Example: 
out(t=3)
 = 
in(t=2)
Storing Data: The Bit
 
A Flip-Flop changes state 
every
 clock cycle
 
We will build the abstraction of a “Bit” that only changes
when we instruct it to
17
if load(t-1)    out(t) = in(t-1)
 else            out(t) = out(t-1)
 
Bit Behavior
 
18
 
0
 
1
 
in
 
0
 
1
 
out
 
0
 
1
 
t=1
 
t=2
 
t=3
 
t=4
 
t=0
 
load
 
if load(t-1)    out(t) = in(t-1)
 else            out(t) = out(t-1)
 
Bit Behavior
 
19
 
0
 
1
 
in
 
0
 
1
 
out
 
0
 
1
 
t=1
 
t=2
 
t=3
 
t=4
 
t=0
 
load
 
if load(t-1)    out(t) = in(t-1)
 else            out(t) = out(t-1)
 
Bit Time Series
 
Bit Specification:
 
 
 
 
 
 
 
Example 1: 
load(t=0)
 == 1
, so 
out(t=1)
 = 
in(t=0)
 
20
 
if (
load(t-1)
): 
out(t)
 = 
in(t-1)
    
 
   
 
 
else: 
out(t)
 = 
out(t-1)
 
Bit Time Series
 
Bit Specification:
 
 
 
 
 
 
 
Example 1: 
load(t=0)
 == 1
, so 
out(t=1)
 = 
in(t=0)
 
Example 2: 
load(t=2)
 == 0
, so 
out(t=3)
 = 
out(t=2)
 
 
21
 
if (
load(t-1)
): 
out(t)
 = 
in(t-1)
    
 
   
 
 
else: 
out(t)
 = 
out(t-1)
 
Which gates will we need to implement a Bit? Select all
that apply.
 
22
 
A.
Mux
B.
Xor
C.
And
D.
DFF
E.
We’re lost…
 
if load(t-1)    out(t) = in(t-1)
 else            out(t) = out(t-1)
Bit
 
load
 
in
 
out
 
Implementing a Bit
 
Bit Specification:
 
Exercise: fill in the connections to the gates to create a
circuit diagram of Bit
 
23
 
if load(t-1)    out(t) = in(t-1)
 else            out(t) = out(t-1)
 
Implementing a Bit
 
Bit Specification:
 
Exercise: fill in the connections to the gates to create a
circuit diagram of Bit
 
24
 
if load(t-1)    out(t) = in(t-1)
 else            out(t) = out(t-1)
 
Lecture Outline
 
Cornell Note-taking Method
Applying Bloom’s Taxonomy Through Cornell Notes
 
Storing Data: The Bit
Bit Overview and Implementation
 
Representing and Building Memory
Array Abstraction, Building From the Bit
 
Program Counter (PC) Overview
Control Flow of Computer Programs
 
25
Memory Representation
 
Memory can be abstracted as one huge array
 
Addresses
 are indices into different memory slots
The width of an address is fixed for the system
The nand2tetris project will use 16-bit addresses
 
Each 
value
 in memory takes up a fixed width
Not the same as address width
The nand2tetris project uses 16-bit slots (values) in memory
26
Memory Representation
 
Can read and write to memory by specifying an address
More details next week
 
Example: 
x = memory[01...00]
Reads the value in memory at address 
01...00
 and stores it in 
x
 
Example: 
memory[01...00] = 7
Writes the value 7 in the memory slot at address 
01...00
 
27
Building Memory: Register
 
Bits store a single value (0 or 1)
In memory, we need to store 16-bit values
 
Registers are conceptually the same as a Bit
Allows us to store and change 16-bit values
Groups together 16 individual bits that share a load signal
 
 
// if (load(t-1)): out(t) = in(t-1)
 
//           else: out(t) = out(t-1)
 
CHIP
 Register {
    
  
IN
 in[16], load;
    
  
OUT
 out[16];
    
  
...
 
}
28
RAM: Random Access Memory
 
Abstraction of Computer Memory: just a giant array
 
Goal: create hardware that can provide that abstraction
 
 
 
 
Key attribute of arrays: “random access” lets us index into
them at any point
 
29
 
...
 
...
 
memory[
26
] = -1;
Building Memory: RAM8 From Registers
 
RAM interface:
address
: address used to specify
memory slot
in
: 16-bit input used to update
specified memory slot if load is 1
load
: if 1, then in should be written
to specified memory slot
out
: 16-bit output from the slot
specified by address
 
RAM8 can be built from 8 registers
address width is log
2
(8) = 3 bits
30
RAM8
...
0
1
n-1
Register
Register
Register
Building Memory: RAM8 From Registers
 
Step 1: Route 
in
 to every register
We don’t want to update every
register, however
Solution: choose which register to
enable with 
address
 
Step 2: Choose which register to
use for the output
 
When we think about making
choices
 in hardware, we want to
think about Mux and DMux
31
Building Memory: The Rest of RAM
 
After RAM8, can build larger RAM chips from a
combination of smaller RAM chips
For example, RAM64 can be built using eight RAM8 chips
 
Technique is similar to RAM8 but will have to use
different portions of the address
 
The blocks section of the reading will be helpful
For example, can think of each RAM8 as a block of RAM64
32
 
Lecture Outline
 
Cornell Note-taking Method
Applying Bloom’s Taxonomy Through Cornell Notes
 
Storing Data: The Bit
Bit Overview and Implementation
 
Representing and Building Memory
Array Abstraction, Building From the Bit
 
Program Counter (PC) Overview
Control Flow of Computer Programs
 
33
Program Counter (PC)
 
Memory is used to store data as well as code
 
Instructions and operations are stored at different
addresses in memory
 
Program Counter in the CPU keeps track of which address
contains the instruction that should be executed next
34
Program Counter (PC)
 
Keeps track of what instruction we are executing
If the PC outputs 24, on the next clock cycle the computer runs
the instruction at address 24 in the code segment
Program counter specification:
 
if      (reset[t] == 1) out[t+1] = 0
 
else if (load[t] == 1)  out[t+1] = in[t]
 
else if (inc[t] == 1)   out[t+1] = out[t] + 1
 
else                    out[t+1] = out[t]
35
Project 4 Overview
 
Part I: Cornell Note-taking
Practice taking detailed notes in another class
Think critically about the technique
 
Part II: Building Memory
Memory & Sequential Logic: Build our first sequential chips, from
a 1-bit register to a 16K RAM module
Program Counter: Build counter that tracks where we are in a
program, with support for several operations we’ll need later
Note: Folder split for performance reasons only
 
Part III: Project 4 Reflection
36
 
Lecture 6 Reminders
 
Project 3: 24-Hour Time Audit & Boolean Arithmetic due
tonight (4/12) at 11:59pm
 
Project 4: Cornell Note-taking & Building Memory
released today, due next Friday (4/19) at 11:59pm
 
Eric has office hours after class in CSE2 153
Feel free to post your questions on the Ed board as well
 
37
Slide Note
Embed
Share

Explore the power of Cornell note-taking method and memory building in academic success. Learn about Bloom's Taxonomy, storing data, representing memory, and more in CSE 390B. Discover how to apply higher-order thinking skills in your academic responsibilities as a student. Dive into the practical aspects of using Java objects in CSE 143 assignments and understand their relationship with real-world tools. Engage in discussions on Bloom's Taxonomy levels to enhance your cognitive abilities for academic excellence.

  • Academic success
  • Cornell notes
  • Memory techniques
  • Blooms Taxonomy
  • Java objects

Uploaded on Jul 05, 2024 | 1 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Lecture 6: Cornell Notes & Building Memory Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring CSE 390B, 2024 Spring CSE 390B, 2024 Spring Building Academic Success Through Bottom-Up Computing Cornell Notes & Building Memory Cornell Note-taking Method, Storing Data: The Bit, Representing and Building Memory, Program Counter (PC) Overview

  2. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Lecture Outline Cornell Note-taking Method Applying Bloom s Taxonomy Through Cornell Notes Storing Data: The Bit Bit Overview and Implementation Representing and Building Memory Array Abstraction, Building From the Bit Program Counter (PC) Overview Control Flow of Computer Programs 2

  3. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Bloom s Taxonomy Producing something new Creating Justifying your decisions or position Evaluating Drawing connections among ideas Analyzing Using information in a new (or similar) situation Applying Explaining ideas or concepts Understanding Recalling facts and basic concepts Remembering 3

  4. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Bloom s Taxonomy in Action: CSE 143 Creating your own Java objects in your CSE 143 assignments Creating Justifying why one would use a particular Java object (ArrayList)? Evaluating How do Java objects relate to other real- word tools? Analyzing Using Java objects defined in the standard class libraries Applying Understanding the use Java objects Understanding Remembering what Java objects are Remembering 4

  5. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Bloom s Taxonomy Discussion In groups, discuss the following points: Identify various aspects of your academic responsibilities as a UW student (e.g., attending lecture) and categorize them in one of the levels on Bloom s Taxonomy Discuss how you can practically engage in higher-order levels of thinking in Bloom s Taxonomy 5

  6. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Cornell Note Taking Method Questions Notes I. Main Topic Sub point definition example ** Compose a question that corresponds to the notes you took II. Object-Oriented Programming Encapsulates the data and the operations for a given data type Provides abstractions - you don t need to know how a car is implemented in order to use it Extensibility - easier to add new data types In what ways is object-oriented programming more extensible than functional programming? III. Functional Programming Extensibility - easier to add new operations Summary Object-oriented programming and functional programming are two types of programming paradigms 6

  7. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Cornell Note Taking Method Questions Notes I. Main Topic Sub point definition example ** Compose a question that corresponds to the notes you took II. Object-Oriented Programming Encapsulates the data and the operations for a given data type Provides abstractions - you don t need to know how a car is implemented in order to use it Extensibility - easier to add new data types In what ways is object-oriented programming more extensible than functional programming? III. Functional Programming Extensibility - easier to add new operations Summary Object-oriented programming and functional programming are two types of programming paradigms 7

  8. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Applying the Cornell Note-Taking Method Try it during today s technical lecture! You will have a chance to reflect on your experience taking Cornell Notes in Project 4 8

  9. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Lecture Outline Cornell Note-taking Method Applying Bloom s Taxonomy Through Cornell Notes Storing Data: The Bit Bit Overview and Implementation Representing and Building Memory Array Abstraction, Building From the Bit Program Counter (PC) Overview Control Flow of Computer Programs 9

  10. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Computer Overview CPU is the brain of our computer Does necessary computations (add, subtract, multiply, etc.) Memory is used to store values for later use Requires persistence across multiple computations Needs to change values at our discretion COMPUTER MEMORY CPU Program Counter (which line of code should I execute) Data and instructions 10

  11. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring The Data Flip-Flop Gate Simplest state-keeping component 1-bit input, 1-bit output Wired to the clock signal Always outputs its previous input: out(t) = in(t-1) Implementation: a gate that can flip between two stable states (remembering 0 vs. remembering 1) Gates with this behavior are Data Flip Flops (DFFs) 11

  12. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Aside: Treating the DFF as a Primitive Disclaimer: DFFs can be made from Nand gates exclusively But requires wiring them together in a messy loop that the hardware simulator can t simulate and isn t very educational For simplicity, we will treat the DFF as a primitive in the projects Just like Nand, you can use the built-in implementation 12

  13. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Data Flip-Flop (DFF) Behavior 1 Clock Signal 0 1 in 0 1 out 0 t=1 t=2 t=3 t=4 t=0 13

  14. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Sequential Chips A category of chips that utilize the clock signal, in addition to any combinational logic Capable of: Maintaining state Optionally, acting on that state and the current inputs Can incorporate combinational logic as well Constructed from: DFFs Combinational logic (which is entirely constructed from Nand) 14

  15. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Sequential Chips output(t) = f(state(t-1), input(t)) DFF Combinational Logic input output DFF f DFF 15

  16. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring D Flip-Flop: Time Series DFF Specification: out(t) = in(t-1) in 0 0 1 1 0 1 0 ... out 0 0 0 1 1 0 1 ... time t=0 t=1 t=2 t=3 t=4 t=5 t=6 ... Example: out(t=3) = in(t=2) 16

  17. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Storing Data: The Bit A Flip-Flop changes state every clock cycle We will build the abstraction of a Bit that only changes when we instruct it to load out Bit in if load(t-1) out(t) = in(t-1) else out(t) = out(t-1) 17

  18. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Bit Behavior 1 load 0 1 in 0 1 out 0 t=1 t=2 t=3 t=4 t=0 load if load(t-1) out(t) = in(t-1) else out(t) = out(t-1) out Bit in 18

  19. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Bit Behavior 1 load 0 1 in 0 1 out 0 t=1 t=2 t=3 t=4 t=0 load if load(t-1) out(t) = in(t-1) else out(t) = out(t-1) out Bit in 19

  20. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Bit Time Series if (load(t-1)): out(t) = in(t-1) else: out(t) = out(t-1) Bit Specification: load 1 0 0 1 1 1 0 ... in 1 0 0 0 1 0 1 ... out 0 1 1 1 0 1 0 ... time t=0 t=1 t=2 t=3 t=4 t=5 t=6 ... Example 1: load(t=0) == 1, so out(t=1) = in(t=0) 20

  21. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Bit Time Series if (load(t-1)): out(t) = in(t-1) else: out(t) = out(t-1) Bit Specification: load 1 0 0 1 1 1 0 ... in 1 0 0 0 1 0 1 ... out 0 1 1 1 0 1 0 ... time t=0 t=1 t=2 t=3 t=4 t=5 t=6 ... Example 1: load(t=0) == 1, so out(t=1) = in(t=0) Example 2: load(t=2) == 0, so out(t=3) = out(t=2) 21

  22. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Vote at https://pollev.com/cse390b Which gates will we need to implement a Bit? Select all that apply. A. Mux B. Xor C. And D. DFF E. We re lost load out Bit in if load(t-1) out(t) = in(t-1) else out(t) = out(t-1) 22

  23. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Implementing a Bit if load(t-1) out(t) = in(t-1) else out(t) = out(t-1) Bit Specification: Exercise: fill in the connections to the gates to create a circuit diagram of Bit 23

  24. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Implementing a Bit if load(t-1) out(t) = in(t-1) else out(t) = out(t-1) Bit Specification: Exercise: fill in the connections to the gates to create a circuit diagram of Bit 24

  25. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Lecture Outline Cornell Note-taking Method Applying Bloom s Taxonomy Through Cornell Notes Storing Data: The Bit Bit Overview and Implementation Representing and Building Memory Array Abstraction, Building From the Bit Program Counter (PC) Overview Control Flow of Computer Programs 25

  26. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Memory Representation Memory can be abstracted as one huge array Addresses are indices into different memory slots The width of an address is fixed for the system The nand2tetris project will use 16-bit addresses Each value in memory takes up a fixed width Not the same as address width The nand2tetris project uses 16-bit slots (values) in memory 26

  27. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Memory Representation Can read and write to memory by specifying an address More details next week Example: x = memory[01...00] Reads the value in memory at address 01...00 and stores it in x Example: memory[01...00] = 7 Writes the value 7 in the memory slot at address 01...00 27

  28. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Building Memory: Register Bits store a single value (0 or 1) In memory, we need to store 16-bit values Registers are conceptually the same as a Bit Allows us to store and change 16-bit values Groups together 16 individual bits that share a load signal // if (load(t-1)): out(t) = in(t-1) // else: out(t) = out(t-1) CHIP Register { IN in[16], load; OUT out[16]; ... } 28

  29. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring RAM: Random Access Memory Abstraction of Computer Memory: just a giant array Goal: create hardware that can provide that abstraction 24 11000 25 11001 26 11010 27 11011 28 11100 29 11101 30 11110 31 11111 0 0000000 0 0000000 -1 1111111 25 0011001 124 1111100 0 0000000 9 0001001 -15 1110001 ... ... Key attribute of arrays: random access lets us index into them at any point memory[26] = -1; 29

  30. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Building Memory: RAM8 From Registers load RAM interface: address: address used to specify memory slot in: 16-bit input used to update specified memory slot if load is 1 load: if 1, then in should be written to specified memory slot out: 16-bit output from the slot specified by address RAM8 out in Register 0 16 16 1 Register address ... n-1 Register k RAM8 can be built from 8 registers address width is log2(8) = 3 bits 30

  31. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Building Memory: RAM8 From Registers Step 1: Route in to every register We don t want to update every register, however Solution: choose which register to enable with address load RAM8 out in Register 0 16 16 Step 2: Choose which register to use for the output 1 Register address ... n-1 Register k When we think about making choices in hardware, we want to think about Mux and DMux 31

  32. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Building Memory: The Rest of RAM After RAM8, can build larger RAM chips from a combination of smaller RAM chips For example, RAM64 can be built using eight RAM8 chips Technique is similar to RAM8 but will have to use different portions of the address The blocks section of the reading will be helpful For example, can think of each RAM8 as a block of RAM64 32

  33. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Lecture Outline Cornell Note-taking Method Applying Bloom s Taxonomy Through Cornell Notes Storing Data: The Bit Bit Overview and Implementation Representing and Building Memory Array Abstraction, Building From the Bit Program Counter (PC) Overview Control Flow of Computer Programs 33

  34. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Program Counter (PC) Memory is used to store data as well as code Instructions and operations are stored at different addresses in memory Program Counter in the CPU keeps track of which address contains the instruction that should be executed next COMPUTER MEMORY CPU Data and instructions Program Counter (which line of code should I execute) 34

  35. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Program Counter (PC) Keeps track of what instruction we are executing If the PC outputs 24, on the next clock cycle the computer runs the instruction at address 24 in the code segment Program counter specification: if (reset[t] == 1) out[t+1] = 0 else if (load[t] == 1) out[t+1] = in[t] else if (inc[t] == 1) out[t+1] = out[t] + 1 else out[t+1] = out[t] load inc reset out in PC 16 16 35

  36. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Project 4 Overview Part I: Cornell Note-taking Practice taking detailed notes in another class Think critically about the technique Part II: Building Memory Memory & Sequential Logic: Build our first sequential chips, from a 1-bit register to a 16K RAM module Program Counter: Build counter that tracks where we are in a program, with support for several operations we ll need later Note: Folder split for performance reasons only Part III: Project 4 Reflection 36

  37. Lecture 6: Cornell Notes & Building Memory CSE 390B, 2024 Spring Lecture 6 Reminders Project 3: 24-Hour Time Audit & Boolean Arithmetic due tonight (4/12) at 11:59pm Project 4: Cornell Note-taking & Building Memory released today, due next Friday (4/19) at 11:59pm Eric has office hours after class in CSE2 153 Feel free to post your questions on the Ed board as well 37

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#