FPGA-based reconfigurable cache mapping schemes: design and optimization / by Nam Ho ; [Supervisor: Jun.-Prof. Dr. Paul Kaufmann, Prof. Dr. Marco Platzner, Reviewers: Prof. Dr. Christian Plessl, Jun.-Prof. Dr. Paul Kaufmann, Additional members of the oral examination committee: Prof. Dr. Sybille Hellebrand, Dr. Wolfgang Müller]. Paderborn, 2018
Inhalt
- Acknowledgements
- Abstract
- 1 Introduction
- 2 Background
- 2.1 Cache Memory Basics
- 2.2 Multi-core Processor Caches
- 2.3 Cache Miss Types
- 2.4 Optimization Goals
- 2.5 Open Source Processors
- 2.6 FPGA-based Systems
- 2.7 Conclusion
- 3 Cache Mapping Schemes
- 3.1 Cache Mapping Functions
- 3.2 The Conventional Mapping Scheme
- 3.3 Alternative Mapping Schemes
- 3.3.1 XOR-based Mapping Schemes
- 3.3.2 Prime Mapping Schemes
- 3.3.3 Arbitrary Modulus Mapping Schemes
- 3.3.4 Bit-Selection Mapping Schemes
- 3.4 Reconfigurable Caches/-Mapping Schemes
- 3.5 Design Challenges
- 3.6 Conclusion
- 4 Reconfigurable Cache Mapping Architecture
- 4.1 Evolvable Cache
- 4.2 System Architecture
- 4.3 Cache Mapping Organization
- 4.3.1 The L1 Data Cache
- 4.3.2 The L1 Instruction Cache
- 4.3.3 Multitasking and Cache Mapping Reconfiguration
- 4.4 The Reconfigurable Circuit Blocks
- 4.5 The Reconfiguration/-Cache Mapping Controllers
- 4.5.1 The Operation of CMCONtroller
- 4.5.2 The Operation of RecCONtroller
- 4.5.3 Reconfiguration Operation
- 4.6 Hardware Overheads
- 4.7 System Prototyping on an FPGA
- 4.8 Conclusion
- 5 Performance Measurement Infrastructure
- 5.1 Introduction: Monitoring a Processor
- 5.2 Background: Performance Monitoring Units
- 5.3 PMU Design and Integration
- 5.3.1 The Architecture
- 5.3.2 PMU Registers: Address Mapping and Access
- 5.3.3 Handling Overflow Interrupts
- 5.3.4 System Integration: The Software Stack
- 5.4 Hardware Overhead
- 5.5 Accuracy Analysis
- 5.6 Conclusion
- 6 Optimization Methodology
- 6.1 Background
- 6.1.1 Evolutionary Algorithms
- 6.1.2 Terminology
- 6.1.3 Evolution Strategies
- 6.1.4 Genetic Algorithms
- 6.1.5 Genetic Programming
- 6.1.6 Cartesian Genetic Programming
- 6.1.7 Fitness Functions
- 6.1.8 Summary
- 6.2 Optimization with EAs
- 6.3 Functional Quality
- 6.3.1 Non-Deterministic Measurements
- 6.3.2 Statistical Formalization
- 6.3.3 Fitness Definition
- 6.3.4 Fitness Evaluation Procedure
- 6.3.5 Non-Parametric Statistical Tests
- 6.3.6 Fitness Evaluation with Wilcoxon Rank-Sum Test
- 6.4 Optimization Procedure
- 6.5 Conclusion
- 7 Cache Mapping Evolution and System Evaluation
- 7.1 Experimental Platform
- 7.2 Benchmarks
- 7.3 Computational Overhead
- 7.4 Exploration of the Mutation Rate
- 7.5 Training Configuration
- 7.6 Training Results
- 7.7 Validation
- 7.8 Conclusion
- 8 Summary and Outlook
- Bibliography
