发布日期:2023-02-13 14:23 浏览次数:
4.1 Simulator
这里用到的仿真环境是CMU Parallel Data Lab的DiskSim仿真器。(如果你是专门搞SSD内部的算法,现在比较受欢迎的是flashsim,网上可以查的到开源代码,C++编程的,好处是面向对象,把SSD内部器件都设计成对象,在Linux环境下做测试)
DiskSim并不专门支持SSD的仿真,但是其处理trace log的基础架构及其可扩展性使其成为定制的良好工具。
DiskSim模拟存储器件的层次结构,比如总线和控制器(例如:RAID)以及磁盘。这里实现了从通用的旋转磁盘模块派生的SSD模块。由于该模块最初不支持多个请求队列,因此这里添加了一个辅助级别的并行元素,每个元素都有一个密封队列,代表着flash的每个元素或者gangs。还添加了logic来序列化来自这些并行元素的request完成。对于每一个元素,维护了数据结构来表示SSD的逻辑映射块,cleaning 状态和weal-leveling状态。在处理每个请求时,跟据下表的规范引入充分的延迟来模拟实时延迟。如果跟据模拟器的状来要求cleaning和回收,就会引入额外的延迟,并且相应的更新状态。这里添加了配置参数以启用后台cleaning,gang大小,gang组织(例如交换或共享控制),交错(interleaving)和过度配置(overprovisioning)等功能。
验证模拟需要详细的实验来确定实际SSD硬件使用的caching缓存和flash-management algorithms闪存管理算法。
截屏,微信识别二维码
微信号:dgdjly
(点击QQ号复制,添加好友)