介绍
Flash-DBSim 是一个用于进行闪存技术研究的仿真工具,我们希望 Flash-DBSim 能够对闪存技术研究中出现的各种实验环境进行尽可能准确地模拟,使之能够成为一个统一的闪存实验仿真平台。
平台开发
Flash-DBSim 使用如下工具及语言开发:
- Microsoft Visual Studio 2008
- C++
特点
Flash-DBSim 具有如下特点:
模块化 | Flash-DBSim 使用了模块化的设计方式,整个 Flash-DBSim 共分为三个主要模块,自下而上分别为:虚拟闪存设备模块 (Virtual Flash Device Module, VFD),存储技术设备层 (Memory Technology Device Module, MTD),以及闪存转换层模块 (Flash Translation Layer Module, FTL)。由于模块化的设计,使得 Flash-DBSim 能够具有良好的可扩展性和可重用性。 |
接口化 | Flash-DBSim 中,所有模块之间使用通用接口进行交互,由于接口的不变性,因此,即使其中的数个模块发生变化,其他的模块也不需要进行修改,这就保证了 Flash-DBSim 代码的可重用性。 |
可扩展性 | 所有遵循 Flash-DBSim 各模块接口定义的代码,都能够被配置到 Flash-DBSim 中运行,而其他的模块并不需要做任何的修改。使用这种方法,就使得 Flash-DBSim 可以不断进行代码扩展。 |
可重用性 | 一旦某个模块的代码被编写完成,那么它在之后任何需要的时候都可以被重新装配到 Flash-DBSim 中执行,从而实现模块的重用性。 |
易配置性 | Flash-DBSim 尽可能地简化了接口数量,使之更为方便配置。使用少量的代码就可以对整个 Flash-DBSim 的环境进行配置,使之适应于当前的闪存研究实验。 |
Flash-DBSim 架构
Flash-DBSim 使用了三层模块结构,每个模块之间使用接口进行交互。整体架构图如下所示。
其中,每个模块的功能划分为:
VFD 模块 | 该模块用于模拟 NAND/NOR 闪存设备的特性,例如说:闪存设备的数据页、块大小,数量,读写延迟,擦除限制,I/O 计数,并发控制等。 |
FTL 模块 | 该模块提供对底层闪存设备的地址转换和访问接口。该模块可以使用 FTL/NFTL 算法来对底层模块进行控制,同时,上层用户通过与该模块交互来实现对 Flash-DBSim 的访问。 |
模块支持库 | 该支持库中实现了常见的闪存实验中需要使用到的 FTL 模块算法,以及一些 VFD 模块的虚拟闪存芯片设置。 |
公共访问接口 | 公共访问接口面向用户开放,该接口层隐藏了 Flash-DBSim 系统中的所有实现细节,用户通过这些接口控制 Flash-DBSim 系统的运行。 |
使用许可
Flash-DBSim 由中国科学技术大学|计算机科学与技术学院所属|知识与数据工程实验室开发,你可以免费使用该工具来进行闪存相关的技术研究。
如果在使用 Flash-DBSim 的过程中,你编写的新的扩展代码,请尽可能与我们联系,以便我们能够将你的代码加入到 Flash-DBSim 库中,提供给其他人共同使用。
如果在使用 Flash-DBSim 的过程中,你发现了新的 Bug,请务必于我们联系,并提供详细的说明,以便我们对其进行修正。