-
- History of software modeling
- Computer Science Stack: HW & SW layouts, ISA
- CISC vs RISC
- RISC-V RV32I Introduction & Overview
- QEMU usage
-
- Interpretation insights
- Basic CPU Architectural state
- Simple interpreters and its optimizations
- Semihosting
- TOY ISA Introduction & Overview
-
- Introduction into Ruby Language
- Metaprogramming and DSL Intro
-
- Virtual Memory
- Executable and Linkable Format
- Review Linux address space
- elfio usage example
-
Advanced Simulation Techniques
- Introduction into binary translation techniques
- Static binary translation and its optimizations
- Dynamic binary translation, its application and optimizations
- SMC Problem
- Commit & Patch (Template Translation)
- Direct Execution
-
Architecture Description Language
- Automated Machine Readable specification and its application
- Automatically Generated Simulators
- Automatization of Decoder Implementation
- Decoders in real simulators
-
- Motivation
- RISC-V example (Sv32)
- TLB
- Exception Levels
- RISC-V System Registers
- Exceptions Handling
-
- Introduction into trace technology and its application
- Definition of trace-driver simulation
- ChampSim Introduction & Overview
-
- SE vs FS simulation mode
- Introduction into DES (Discrete Event Model)
- Full-System Simulation and Event-driven model
-
- Multicore CPU simulation with PDES (Parallel Discrete Event Model)
- Distributed Shared Memory
- Event queue in Parallel Simulation
- Optimistic Models
-
- Simulation Classification Survey
- Introduction into Protea Framework
- Cooperation Project Rules
-
- Unit Testing
- Automated Testing and its application
- Fuzzing
- Co-simulation
-
- CPU Test Generation
- Static Symbolic Execution
- Coverage
-
- Introduction into the concept and structure of caches
- Cache memory modeling and its corner cases
- Cache Coherence Protocols
- Prefetching (HW/SW)
-
Digital Logic (based Digital Design and Computer Architecture)
- Digital Logic Level
- Introduction into Analogue electronics
- Introduction into Digital Logic
- Sequential & Combination Logic
- Functional Units
- Memory
-
Pipeline (based Digital Design and Computer Architecture)
- uArch Level
- Single Cycle RISC-V processor
- Multi Cycle RISC-V processor
- Pipeline RISC-V processor
- O3 RISC-V processor
-
- Introduction into Cycle-Accurate models
- CA models software implementation details
- gem5 Introduction & Overview
-
- Introduction into System Description Languages (SDL)
- SystemC
- DML
- Current State
- Introduction into Hardware Description Languages
- Verilog
- Simulating HDL with Verilator
- Introduction into Protea Language of Devices (PLoD)
-
- History
- AArch64 FP & SIMD
- RVV
- Vectorization and its application