CS3410 Computer Science Course Overview: Memory, Register Files, and State Machines
This resource outlines important details for CS3410 at Cornell University, covering lab sessions, assignments, and essential policies. Students must attend their lab section, submit Lab1 by February 14th, and submit a design document with the final circuit. Homework1 is due a week before Prelim1, and collaboration guidelines are specified. Key concepts include finite state machines, register files, and types of memory (SRAM, DRAM). Additional topics include the Moore and Mealy machines, their operational differences, and practical examples such as a digital door lock.
CS3410 Computer Science Course Overview: Memory, Register Files, and State Machines
E N D
Presentation Transcript
Memory Prof. Kavita Bala and Prof. Hakim Weatherspoon CS 3410, Spring 2014 Computer Science Cornell University See P&H Appendix B.8 (register files) and B.9
Administrivia • Make sure to go to yourLab Section this week • Completed Lab1 due before winter break, Friday, Feb 14th • Note, a Design Document is due when you submit Lab1 final circuit • Work alone • Save your work! • Save often. Verify file is non-zero. Periodically save to Dropbox, email. • Beware of MacOSX 10.5 (leopard) and 10.6 (snow-leopard) Homework1 is out • Due a week before prelim1, Monday, February 24th • Work on problems incrementally, as we cover them in lecture (i.e. part 1) • Office Hours for help • Work alone • Work alone,BUT use your resources • Lab Section, Piazza.com, Office Hours • Class notes, book, Sections, CSUGLab
Administrivia Check online syllabus/schedule • http://www.cs.cornell.edu/Courses/CS3410/2014sp/schedule.html • Slides and Reading for lectures • Office Hours • Homework and Programming Assignments • Prelims (in evenings): • Tuesday, March 4th • Thursday, May 1th Schedule is subject to change
Collaboration, Late, Re-grading Policies • “Black Board” Collaboration Policy • Can discuss approach together on a “black board” • Leave and write up solution independently • Do not copy solutions Late Policy • Each person has a total of four “slip days” • Max of two slip daysfor any individual assignment • Slip days deducted firstfor any late assignment, cannot selectively apply slip days • For projects, slip days are deducted from all partners • 25% deducted per day late after slip days are exhausted Regrade policy • Submit written request to lead TA, and lead TA will pick a different grader • Submit another written request, lead TA will regrade directly • Submit yet another written request for professor to regrade.
Big Picture: Building a Processor memory registerfile inst alu +4 +4 addr =? PC din dout control cmp offset memory new pc target imm extend A Single cycle processor
Goals for today Review • Finite State Machines Memory • Register Files • Tri-state devices • SRAM (Static RAM—random access memory) • DRAM (Dynamic RAM)
Which statement(s) is true (A) In a Moore Machine output depends on both current state and input (B) In a Mealy Machine output depends on current state and input (C) In a Mealy Machine output depends on next state and input(D) All the above are true (E) None are true
Which statement(s) is true (A) In a Moore Machine output depends on both current state and input (B) In a Mealy Machine output depends on current state and input (C) In a Mealy Machine output depends on next state and input(D) All the above are true (E) None are true
Mealy Machine • General Case: Mealy Machine • Outputs and next state depend on bothcurrent state and input Current State Comb.Logic Registers Output Input Next State
Moore Machine • Special Case: Moore Machine • Outputs depend only on current state Current State Comb.Logic Registers Output Comb.Logic Input Next State
Example: Digital Door Lock • Digital Door Lock • Inputs: • keycodes from keypad • clock • Outputs: • “unlock” signal • display how many keys pressed so far
Door Lock: Inputs • Assumptions: • signals are synchronized to clock • Password is B-A-B K A B
Door Lock: Outputs • Assumptions: • High pulse on U unlocks door LEDdec 4 8 D3D2D1D0 U Strategy: (1) Draw a state diagram (e.g. Moore Machine) (2) Write output and next-state tables (3) Encode states, inputs, and outputs as bits (4) Determine logic equations for next state and outputs
Door Lock: Simplified State Diagram Ø Ø “A” “B” G3 G1 G2 ”3”, U ”1” ”2” else else “B” any Idle ”0” Ø else any else else B1 B2 B3 ”1” ”2” ”3” Ø Ø (1) Draw a state diagram (e.g. Moore Machine)
Door Lock: Simplified State Diagram Ø Ø “A” “B” G3 G1 G2 ”3”, U ”1” ”2” else else “B” any Idle ”0” else Ø else else B1 B2 ”1” ”2” Ø Ø (1) Draw a state diagram (e.g. Moore Machine)
Door Lock: Simplified State Diagram Ø Ø “A” “B” G3 G1 G2 ”3”, U ”1” ”2” else else “B” any Idle ”0” else Ø else else B1 B2 ”1” ”2” Ø Ø (2) Write output and next-state tables
Door Lock: Simplified State Diagram Ø Ø “A” “B” G3 G1 G2 ”3”, U ”1” ”2” else else “B” any Idle ”0” else Ø else else B1 B2 ”1” ”2” Ø Ø (2) Write output and next-state tables
Door Lock: Simplified State Diagram Ø Ø “A” “B” G3 G1 G2 ”3”, U ”1” ”2” else else “B” any Idle ”0” else Ø else else B1 B2 ”1” ”2” Ø Ø (2) Write output and next-state tables
Door Lock: Simplified State Diagram Ø Ø “A” “B” G3 G1 G2 ”3”, U ”1” ”2” else else “B” any Idle ”0” else Ø else else B1 B2 ”1” ”2” Ø Ø (2) Write output and next-state tables
State Table Encoding K A 4 8 D3D2D1D0 B dec U (3) Encode states, inputs, and outputs as bits
Door Lock: Implementation 4 D3-0 dec S2-0 3bitReg U clk S2-0 K S’2-0 A B U = S1S0 D0 = S0 + S1S0 + S2 D1 = S1S0 + S1S0 + S1S0 (4) Determine logic equations for next state and outputs
Door Lock: Implementation 4 D3-0 dec S2-0 3bitReg U clk S2-0 K S’2-0 A B S0’ = ? S1’ = ? S2’ = KA + S0KB + S2 + S1S0K + S2 S0
Door Lock: Implementation 4 D3-0 dec S2-0 3bitReg U clk S2-0 K S’2-0 A B Strategy: (1) Draw a state diagram (e.g. Moore Machine) (2) Write output and next-state tables (3) Encode states, inputs, and outputs as bits (4) Determine logic equations for next state and outputs
Door Lock: Implementation Current State Comb.Logic Registers Output Comb.Logic Input Next State Moore Machine Strategy: (1) Draw a state diagram (e.g. Moore Machine) (2) Write output and next-state tables (3) Encode states, inputs, and outputs as bits (4) Determine logic equations for next state and outputs
Goals for today • Review • Finite State Machines Memory • CPU: Register Files (i.e. Memory w/in the CPU) • Scaling Memory: Tri-state devices • Cache: SRAM (Static RAM—random access memory) • Memory: DRAM (Dynamic RAM)
Goal: • How do we store results from ALU computations? • How do we use stored results in subsequent operations? • Register File • How does a Register File work? How do we design it?
Big Picture: Building a Processor memory registerfile inst alu +4 +4 addr =? PC din dout control cmp offset memory new pc target imm extend A Single cycle processor
Register File • Register File • N read/write registers • Indexed by register number Dual-Read-PortSingle-Write-Port 32 x 32 Register File QA 32 DW 32 QB 32 W RW RA RB 1 5 5 5
Register File D0 • Recall: Register • D flip-flops in parallel • shared clock • extra clocked inputs:write_enable, reset, … D1 D2 D3 4-bit reg 4 4 clk clk
Register File 32 • Register File • N read/write registers • Indexed by register number • How to write to one register in the register file? • Need a decoder D …. Reg30 Reg31 Reg 1 Reg 0 5-to-32 decoder 5 RW W
Activity# write truth table for 3-to-8 decoder 32 • Register File • N read/write registers • Indexed by register number • How to write to one register in the register file? • Need a decoder D …. Reg30 Reg31 Reg 1 Reg 0 5-to-32 decoder 5 RW W
Register File 32 • Register File • N read/write registers • Indexed by register number • How to read from two registers? • Need a multiplexor …. Reg 0 Reg 1 32 M U X …. QA Reg30 Reg31 M U X 32 …. QB 5 5 RA RB
Register File 32 32 • Register File • N read/write registers • Indexed by register number • Implementation: • D flip flops to store bits • Decoder for each write port • Mux for eachread port D …. Reg30 Reg31 Reg 1 Reg 0 32 M U X …. QA 5-to-32 decoder M U X 32 …. QB 5 5 5 RA W RW RB
Register File • Register File • N read/write registers • Indexed by register number • Implementation: • D flip flops to store bits • Decoder for each write port • Mux for eachread port Dual-Read-PortSingle-Write-Port 32 x 32 Register File QA 32 DW 32 QB 32 W RW RA RB 1 5 5 5
Register File What happens if same register read and written during same clock cycle? • Register File • N read/write registers • Indexed by register number • Implementation: • D flip flops to store bits • Decoder for each write port • Mux for eachread port
Tradeoffs 8-to-1 mux a • Register File tradeoffs + Very fast (a few gate delays for both read and write) + Adding extra ports is straightforward – Doesn’t scale e.g. 32Mb register file with 32 bit registers Need 32x 1M-to-1 multiplexor and 32x 20-to-1M decoder How many logic gates/transistors? b c d e f g h s2 s1 s0
Takeway • Register files are very fast storage (only a few gate delays), but does not scale to large memory sizes.
Goals for today • Review • Finite State Machines Memory • CPU: Register Files (i.e. Memory w/in the CPU) • Scaling Memory: Tri-state devices • Cache: SRAM (Static RAM—random access memory) • Memory: DRAM (Dynamic RAM)
Next Goal • How do we scale/build larger memories?
Building Large Memories • Need a shared bus(or shared bit line) • Many FlipFlops/outputs/etc. connected to single wire • Only one output drives the bus at a time • How do we build such a device? D0 S0 D1 S1 D2 S2 D3 S3 D1023 S1023 shared line
Tri-State Devices • Tri-State Buffers • If enabled (E=1), then Q = D • Otherwise, Q is not connected (z = high impedance) E D Q
Tri-State Devices • Tri-State Buffers • If enabled (E=1), then Q = D • Otherwise, Q is not connected (z = high impedance) E Vsupply D Q D Q Gnd
Tri-State Devices • Tri-State Buffers • If enabled (E=1), then Q = D • Otherwise, Q is not connected (z = high impedance) E Vsupply E D Q D D Q Gnd
Tri-State Devices • Tri-State Buffers • If enabled (E=1), then Q = D • Otherwise, Q is not connected (z = high impedance) E Vsupply E D Q 0 1 off D Q z 0 0 off Gnd
Tri-State Devices • Tri-State Buffers • If enabled (E=1), then Q = D • Otherwise, Q is not connected (z = high impedance) E Vsupply E D Q 1 1 off D 0 0 Q 0 1 1 on 0 Gnd
Tri-State Devices • Tri-State Buffers • If enabled (E=1), then Q = D • Otherwise, Q is not connected (z = high impedance) E Vsupply E D Q 1 0 on D 1 1 Q 1 1 0 off 1 Gnd
Shared Bus D0 S0 D1 S1 D2 S2 D3 S3 D1023 S1023 shared line
Takeway • Register files are very fast storage (only a few gate delays), but does not scale to large memory sizes. • Tri-state Buffers allow scaling since multiple registers can be connected to a single output, while only one register actually drives the output.
Goals for today • Review • Finite State Machines Memory • CPU: Register Files (i.e. Memory w/in the CPU) • Scaling Memory: Tri-state devices • Cache: SRAM (Static RAM—random access memory) • Memory: DRAM (Dynamic RAM)
Next Goal • How do we build large memories? • Use similar designs as Tri-state Buffers to connect multiple registers to output line. Only one register will drive output line.