1 / 18

Understanding Cache and Memory Systems: Key Components and Modeling Techniques

This lecture dives into the essential components of cache and memory systems, focusing on storage modules, cache line overhead, tag storage, valid and dirty bits, and the intricacies of set overhead in direct-mapped and set-associative caches. Learn about LRU state logic, updating states, and challenges of memory access. Homework involves extending a pipeline to incorporate split instruction and data caches with specific requirements around memory latency management. Discover issues associated with DRAM, its refreshing needs, and alternatives like split-transaction bus protocols to enhance memory efficiency.

Télécharger la présentation

Understanding Cache and Memory Systems: Key Components and Modeling Techniques

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EECS 470 Cache and Memory Systems Lecture 14 Coverage: Chapter 5

  2. Cache Modeling • Components: • Storage modules module mem32x64 (clk, addr, data_in, rd_wrbar, data_out); input clk; // Clock input input [4:0] addr; // data address input [63:0] data_in; // write data input rd_wrbar; // 1'b1 does a read, 1'b0 does a write output [63:0] data_out; // read data // All writes occur at the negative clock edge // All read data is available within 1 clock cycle endmodule

  3. Cache Modeling • Components: • Cache line overhead • Tag storage (1..n bits) • Valid bit (1 bit) • Dirty bit (0 or 1 bit) • Set overhead • Nothing for Direct mapped • LRU state machine for set associative (victim) • Internal Organization • Muxes, decoders, tag compare logic • External Interface • Command bus, data buses, clock, protocol, interaction with pipeline • 64-bit bus to processor, 64-bit bus to memory, blocking?

  4. Cache Modeling • LRU state logic • 2 lines is easy • Only two states (lines 0 is LRU; line 1 is LRU) • Single bit (set on access to line 0; reset on access to line 1) • 4 lines is tougher • How many states? • Enumerate them • L0, L1, L2, L3 • L0, L1, L3, L2 • … • L3, L2, L1, L0 • Build a state machine to recognize the state. • How do you update the state if L1 is referenced? • How is a victim cache different?

  5. Homework #4 2. (40 pts) Extend the Verisimple pipeline from HW3 5b (or 5a or Verisimple) to include split instruction and data caches. Both caches should be able to handle indeterminate memory latencies and interface to the unchanged memory provided with the pipeline. They only need to support 8-byte reads and writes. Both I-cache and D-Cache should be 4K direct-mapped with 32 byte lines. The D-cache also includes a 4-line victim cache (fully associative, LRU with 32 byte lines).

  6. Issues with DRAM • Density is good since they need only a single transistor. • They can lose the bit over time -> need for refresh • Refresh done by reading each row • If access occurs during refresh, access must wait (5% of time) • Memory must have signal saying when data is available

  7. An Alternate Approach • Split transaction bus protocol • Add more state to controller in memory to enable multiple independent accesses to memory chip. Use synchronous protocol so address does not need to be acked Access can be read/write for various sized data Memory will send signal when data is available (in order) Example: RAMBUS

More Related