Title: On-Chip Cache Analysis
1On-Chip Cache Analysis
- A Parameterized Cache Implementation for a
System-on-Chip RISC CPU
2Presentation Outline
- Informal Introduction
- Underpin Design xr16
- Cache Design Issue
- Implementation Details
- Results Conclusion
- Future Work
- Questions
3Informal Introduction
- Field Programmable Gate Array (FPGAs)
- Verilog HDL
- System-on-Chip (SoC)
- Reduced Instruction Set Computer (RISC)
- Caches
- Project Theme
4Underpin Design xr16
- Classical pipelined RISC
- Big-Endian, Von-Numen Architecture
- Sixteen 16-bit registers
- Forty Two Instructions (16-bit)
- Result Forwarding, Branch Annulments, Interlocked
instructions
5Underpin Design xr16 (contd)
- Internal and external Buses (CPU clocked)
- Pipelined Memory Interface
- Single-cycle read, 3-cycle write
- DMA and Interrupt Handling Support
- Ported Compiler and Assembler
6Underpin Design xr16 (contd)
7Underpin Design xr16 (contd)
8Underpin Design xr16 (contd)
9Underpin Design xr16 (contd)
10Cache Design Issues
- Cache Size
- Line Size
- Fetch Algorithm
- Placement Policy
- Replacement Policy
- Split vs. Unified Cache
11Cache Design Issues (contd)
- Write Back Strategy
- Write Allocate Policy
- Blocking vs. Non-Blocking
- Pipelined Transactions
- Virtually addressed Caches
- Multilevel Caches
12Cache Design Issues (contd)
Cache Size 32 256K Data Bits
Placement Policy Direct Mapped, Set Associative, Fully Associative
Replacement Policy FIFO, Random
Write Back Strategy Write Back, Write Through
Write Allocate Policy Write Allocate, Write No Allocate
13Implementation Details
- Configurable Parameters
- Cache Size
- Placement Strategy
- Write Back Policy
- Write Allocate Policy
- Replacement Policy
14Implementation Details (contd)
15Implementation Details (contd)
16Implementation Details (contd)
1. Miss ? Read ? Replacement NOT Required Let the
memory operation complete and place fetched data
from memory in cache.
17Implementation Details (contd)
2. Miss ? Read ? Replacement Required Initiate a
write memory operation and write back the set to
be replaced. Initiate read operation for desired
data.
18Implementation Details (contd)
3. Miss ? Write ? No Allocate Let the memory
operation complete and do nothing else.
19Implementation Details (contd)
4. Miss ? Write ? Yes Allocate ? WriteThrough Let
the memory operation complete and place the
new data in cache.
20Implementation Details (contd)
5. Miss ? Write ? Yes Allocate ? WriteBack ?
Replacement NOT Required Cancel memory operation
and only update the cache, mark the data dirty.
21Implementation Details (contd)
6. Miss ? Write ? Yes Allocate ? WriteBack ?
Replacement Required Instead of writing the data
that caused the write miss, write back the set
that is to be replaced and update the cache with
data that caused the miss.
22Implementation Details (contd)
7. Hit ? Read Cancel memory operation and provide
data for either instruction fetch or data load
instruction.
23Implementation Details (contd)
8. Hit ? Write ? WriteThrough Let the memory
operation complete and update the cache when
memory operation completes.
24Implementation Details (contd)
9. Hit ? Write ? WriteBack Cancel the memory
operation and update the cache.
25Implementation Details (contd)
- Read Hit
- Write Hit
- Read Miss (rep)
- Read Miss (no rep)
- Write Miss (rep)
- Write Miss (no rep)
26Results Conclusion
- Proof of Concept
- Rigid Design Parameters
- RD Options
- Architecture Innovation
27Future Work
- LRU Implementation
- Victim Cache Buffer
- Split Caches
- Level 2 Cache
- Pipeline Enrichment
- Multiprocessor Support
28Questions