高性能 SSD 固件和硬件行为模拟器,用于 SSD 固件算法验证、NAND 介质行为研究、NVMe 协议栈测试和性能分析。
- 16 通道 NAND 并发模拟:每个通道支持 8 个芯片,共 128 并发
- 完整 FTL 层实现:
- 页级 LBA→PBA 映射
- 多策略垃圾回收(贪婪/成本效益/随机)
- 动态/静态/混合磨损均衡
- 5 级优先级 IO 调度
- BCH/LDPC ECC 数据保护
- NVMe/PCIe 接口:符合 NVMe 1.4 规范
- 精确时序模拟:t_read=25μs, t_prog=200μs, t_erase=2000μs
- 完整测试套件:137+ 单元测试
┌─ NVMe/PCIe 层 ─┐
├─ Controller 层 ─┤
├─ FTL 算法层 ────┤
├─ Platform 层 ───┤
├─ HAL 层 ────────┤
└─ Media 层 ──────┘
- OS: Debian/Ubuntu Linux
- CPU: 64-256 核心
- 内存: 64GB+ DRAM
- 编译器: GCC (C11 标准)
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)./ssd_simulator --help
./ssd_simulatormake testopencode/
├── docs/ # 设计文档
│ ├── design/ # 概要设计
│ └── detailed_design/# 详细设计
├── src/ # 源代码
│ ├── common/ # 公共工具
│ ├── firmware/ # 固件三层架构
│ │ ├── ftl/ # FTL 层
│ │ ├── hal/ # HAL 层
│ │ └── platform/ # 平台层
│ ├── media/ # 介质模拟
│ ├── nvme/ # NVMe/PCIe
│ └── controller/ # 控制器
├── tests/ # 测试代码
│ └── unit/ # 单元测试
├── config/ # 配置文件
└── external/ # 外部依赖
| 模块 | 测试数 | 状态 |
|---|---|---|
| FTL Mapping | 12 | ✅ 通过 |
| Data Protection | 7 | ✅ 通过 |
| Bad Block | 21 | ✅ 通过 |
| 其他模块 | 97+ | 🚧 进行中 |
总体通过率: 89% (115/137)
- FTL Mapping: 页级地址映射,支持批量操作
- Garbage Collection: 多策略 GC,后台运行
- Wear Leveling: 动态/静态/混合策略
- IO Scheduler: 5 级优先级调度
- Data Protection: BCH/LDPC ECC, CRC32
- NVMe Driver: 队列管理,Doorbell 机制
- AGENTS.md - 开发指南
- TECHNICAL_SPEC.md - 技术规范
- TEST_REPORT.md - 测试报告
MIT License
欢迎提交 Issue 和 Pull Request!
如有问题,请在 GitHub 上提交 Issue。