22. How to store a value#

We need a few more components:

  • mux select one of two values

  • flip-flop hold a value until told otherwise

register

this gives us SRAM which can hold a value as long as the system has power (1963)

22.1. another way to physically store a value#

DRAM uses one transistor and one capacitor. (SRAM uses 4-6 transistors)

a capacitor holds a charge for a time, but gradually fades, so it has to be refreshed

ROM is a diode matrix traditionally

  • hardward encodes the instructions

  • cannot be changed without rewiring

PROM

  • can be reprogrammed once after device is made

  • used for firmware/microcode

(programmable ROM)

EPROM or EEPROM

  • treated like ROM

  • can be erased & reprogrammed

  • but not infinitely, very limited number of tmes

  • holds value when power goes away, UV light or electriciy can re-program

SRAM:

  • is volatile; it needs power to hold a value

  • is fast

  • takes up more space on the chip (uses 4-6 transistors per bit)

  • typically used of cache and internal registers

DRAM:

  • is volatile; it needs power to hold a value

  • is slower and requires a refresh

  • is small (1 transistor + 1 capacitor per bit) and space efficient

  • used for the main RAM

Flash memory

  • non-volatile; holds a value without power, can be electircally erased and re-programmed

  • comprised of memory “cells” in layerd boards

  • memory cells are mosfets - a different type of transistor that retains a state after power is removed and put bag

  • implemented with EEPROM

  • designed for large blocks and limited writes (~10k)

  • used for ssd, usb flash drives, smartphones, etc

  • slow to write, fast to read

22.2. Prepare for Next Class#

Preview the Stack Overflow Developer Survey Technology section parts that are about tools. Create dev_insights.md with 3-5 bullet points for discussion. These can be facts you found most interesting or questions you have based on the results (it can be clarifying or deeper questions)

22.3. Badges#

this is integrative-2

  1. Add conclusion.md to your KWL repo. In the file include 2 sections: (1) summary with an overall description of what you learned and how this course was/not helpful to you (paragraph or bullet form is fine) (2) key points with the top 10 thigns you want to make sure you remember from this class

  2. Reflect on how this course impacts programming/debugging skills in skillup.md. You can write this as how you think your own skill has improved or as if you are convincing another student to take this class. Touch on at least three topics.

this is integrative-2

  1. Create in_five_years.md and answer the following two questions: What do you think you will remember from this class in five years? What parts of this course’s content do you think will change the most in five years?

  2. Reflect on how this course has impacted programming/debugging skills in skillup.md. You can write this as how you think your own skill has improved or as if you are convincing another student to take this class. Touch on at least three topics.

  3. Submit a PR with either advice to future students on how to succeed in the course or on why a student should take this course. Each of those is linked to where you should add your advice.

22.4. Experience Report Evidence#

22.5. Questions After Today’s Class#