技术新讯 > 信息存储应用技术 > 存储介质模拟器及存储介质模拟方法与流程  >  正文

存储介质模拟器及存储介质模拟方法与流程

  • 国知局
  • 2024-07-31 19:29:41

本技术一般地涉及集成电路测试领域。更具体地,本技术涉及存储介质模拟器及存储介质模拟方法。

背景技术:

1、图1a展示了存储设备的示例性框图。存储设备100同主机相耦合,用于为主机提供存储能力。主机同存储设备100之间可通过多种方式相耦合,耦合方式包括但不限于通过例如串行高级技术附件(“serial advanced technology attachment”,简称sata)、小型计算机系统接口(“small computer system interface”,简称scsi)、串行连接scsi(“serialattached scsi”,简称sas)、集成驱动器电子(“integrated drive electronics”,简称ide)、通用串行总线(“universal serial bus”,简称usb)、高速外围组件互联(“peripheral component interconnect express”,简称pcie)、高速非易失存储(“nvmexpress”,简称nvme)、以太网、光纤通道、无线通信网络等连接主机与存储设备100。进一步,主机可以是能够通过上述方式同存储设备100相通信的信息处理设备。例如,主机可以为个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。另外,存储设备100还可以包括接口101、控制部件102、动态随机访问存储器(“dynamic random access memory”,简称dram)103以及一个或多个非易失性存储器(“non-volatilememory”,简称nvm)芯片104。

2、上述nvm芯片104可以例如是nand闪存、相变存储器、铁电存储器(“ferroelectricram”,简称feram)、磁阻存储器(“magnetic random access memory”,简称mram)、阻变存储器(“resistive random access memory”,简称rram)、xpoint存储器等常见的存储器。

3、上述控制部件102用于控制在接口101、nvm芯片104以及dram 103之间的数据传输,还用于进行存储管理、主机逻辑地址到闪存物理地址的映射、控制擦除均衡、坏块管理等操作。进一步,控制部件102可通过软件、硬件、固件或其组合的多种方式实现。例如,控制部件102可以是现场可编程门阵列(“field-programmable gate array”,简称fpga)、应用专用集成电路(“application specific integrated circuit”,简称asic)或者其组合的形式。控制部件102也可以包括处理器或者控制器,在处理器或控制器中通过软件来操纵控制部件102的硬件来处理io(input/output)命令。控制部件102还可以耦合到dram 103,并可访问dram 103的数据,其中,dram 103可存储ftl表和/或缓存的io命令数据。

4、参看图1b,控制部件102包括主机接口1021、主机命令处理单元1022、存储命令处理单元1023、存储介质管理单元1024与介质接口控制器1025。主机接口1021获取主机提供的io命令。主机命令处理单元1022根据io命令生成存储命令提供给存储命令处理单元1023。存储命令可以访问相同大小的存储空间,例如4kb。将nvm芯片中记录的对应一个存储命令所访问数据的数据单元称为数据帧。物理页记录一个或多个数据帧。例如,物理页的大小17664字节,而数据帧大小为4kb,则一个物理页能存储4个数据帧。

5、存储介质管理单元1024为每个存储命令维护逻辑地址到物理地址的转换。例如,存储介质管理单元1024包括ftl表(下文将对ftl进行解释)。对于读命令,存储介质管理单元1024输出存储命令所访问的逻辑地址(lba)对应的物理地址。对于写命令,存储介质管理单元1024为其分配可用的物理地址,并记录其访问的逻辑地址(lba)与分配的物理地址的映射关系。存储介质管理单元1024还维护诸如垃圾回收、磨损均衡等管理nvm芯片所需的功能。

6、存储命令处理单元1023根据存储介质管理单元1024提供的物理地址,操作介质接口控制器(也称为闪存接口控制器、nvm接口控制器)1025向nvm芯片104发出存储介质访问命令。存储介质访问命令遵循nvm芯片的接口协议存储介质访问命令,包括例如读命令、编程命令或擦命令。已知的nvm芯片104接口协议包括“toggle”、“onfi”等。在中国专利申请cn201610009789.6与cn201510253428.1中提供了用于闪存接口控制器的微指令执行方法与装置,中国专利申请cn 201610861793.5提供了微指令序列的调度方法与装置,中国专利申请cn 201611213754.0提供了io命令处理方法与固态存储设备,中国专利申请cn201611213755.5提供了大容量nvm接口控制器。

7、介质接口控制器1025通过一个或多个闪存通道耦合nvm芯片。一个闪存通道耦合例如两个nvm芯片。闪存通道包括一组信号线,用以传输符合nvm芯片的接口协议的信号。这一组信号线的部分由其所耦合的多个nvm芯片共享,即这些信号线同时连接到多个nvm芯片的具有相同功能的对应管脚。这一组信号线还包括一些由其所耦合的多个nvm芯片各自独占的信号线,这些信号线(例如ce信号,片选信号)分别连接到多个nvm芯片的各个。

8、闪存通道上以周期(cycle)为单位传输信号。各周期所传输的信号具有不同的含义,用周期类型(cycle type)指示各周期所传输信号的含义。周期类型包括例如命令周期(cmd type)、地址周期(addr type)、数据输入周期(data in type)与数据输出周期(dataout type)等。在一些例子中,周期由时钟信号线(clk)所传输的时钟信号区分,另一些例子中,由其他信号线而无需时钟信号线区分周期。每个周期,闪存通道的一根或多根信号线传递一组信号,这些信号线的一些或全部是有意义的,而另一些可被忽略。一个或多个周期的一组或多组信号形成信号组。

9、为了清楚的目的,将主机发送给存储设备的命令称为io命令,将主机命令处理单元发送给存储命令处理单元的命令称为存储命令,将存储命令处理单元发送给介质接口控制器的命令称为介质接口命令,而将介质接口控制器发送给nvm芯片的命令称为存储介质访问命令。存储介质访问命令遵循nvm芯片的接口协议。

10、存储器目标(target)是nand闪存封装内的共享ce(chip enable,芯片使能)信号的一个或多个逻辑单元(lun,logic unit)。nand闪存封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多个平面可以并行存取,而nand闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。

11、nvm芯片包括一个或多个逻辑单元(logic unit,lun)。nvm芯片封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多个平面可以并行存取,而nvm芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/documents/products/other%20documents/onfi3_0gold.ashx获得的“open nand flash interfacespecification(revision 3.0)”中,提供了关于目标(target)、逻辑单元、平面(plane)的含义,其为现有技术的一部分。

12、存储设备在接收到主机所发送的io命令后,控制部件中的介质接口控制器通过微指令序列的执行向nvm芯片发出存储介质访问命令和/或接收从nvm芯片读出的数据或者其他信息。在存储设备的开发过程中,工程师可以通过对微指令序列的编程、更新和/或修改,来使得介质接口控制器与不同厂商的nvm芯片发进行信息交互。例如,存储设备的nvm芯片被升级,相应地需要开发微指令序列来使得介质接口控制器能适配升级后的nvm芯片。

13、希望提供模拟器来协助微指令序列的开发。例如,在开发的前期可能无法拿到实物nvm芯片来与控制部件进行联调,因此为了验证所设计的微指令序列是否正确,希望拥有能与介质接口控制器交互并模拟实物nvm芯片的外部行为的存储介质模拟器。进一步地,在控制部件被升级时,其开发前期无法获得实物控制部件芯片来调试微指令序列,还需要介质接口控制器的模拟器来运行所开发的微指令序列,并同存储介质模拟器交互。依然进一步地,还希望能协助识别微指令序列、介质接口控制器中的错误行为,并验证微指令序列、介质接口控制器的正确性。

14、专利cn109684150a公开了一种存储颗粒控制器的性能测试系统,该包括主机控制中心、与主机控制中心连接的至少一个存储颗粒控制器仿真平台、以及每一存储颗粒控制器仿真平台对应的至少一个存储颗粒模拟器对于nand模拟的平台。但该专利未具体公开仿真的粒度、控制器与存储颗粒模拟器之间具体的交互的过程、存储颗粒模拟器内部结构以及实现方式等。

15、介质接口控制器向闪存通道施加信号组以操作存储设备的各nvm芯片,而不是直接操作各nvm芯片。因而还希望存储介质模拟器不仅模拟nvm芯片,还模拟闪存通道,以接收并响应介质接口控制器或其模拟器所提供的信号组而无需进行额外的调整或适配。

技术实现思路

1、为了至少部分地解决背景技术中提到的技术问题,本技术的方案提供了一种存储介质模拟器、存储介质模拟方法及其计算机可读存储介质。

2、根据本技术的第一方面,提供了根据本技术第一方面的第一存储介质模拟器,与介质接口控制器模拟器连接,介质接口控制器模拟器模拟生成多个时钟周期所对应的符合nvm接口协议的信号组。其特征在于存储介质模拟器包括接口模块、目标模拟模块、分配模块、应答模块。接口模块从介质接口控制器模拟器接收信号组,并根据信号组识别出命令;目标模拟模块用于模拟存储介质中的目标,目标模拟模块包含一个或多个子模块,当命令与访问存储介质所存储的数据有关时,子模块用于模拟目标中的逻辑单元以及获取命令的结果;分配模块识别出命令所对应的目标子模块,将命令发送至目标子模块;应答模块接收目标子模块所反馈的结果,并通过接口模块将结果发送至介质接口控制器模拟器。

3、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第二存储介质模拟器,第二存储介质模拟器还包括处理模块,当命令与前一个命令访问同一个目标子模块时,处理模块响应来自应答模块的前一个命令的结果,将来自接口模块的命令发送至分配模块。

4、根据本技术的第一方面的第二存储介质模拟器,提供了根据本技术第一方面的第三存储介质模拟器,其中接口模块判断信号组是否符合nvm接口协议,如是,将命令发送至处理模块。

5、根据本技术的第一方面的第三存储介质模拟器,提供了根据本技术第一方面的第四存储介质模拟器,其中存储介质模拟器模拟闪存通道,闪存通道连接到至少2个nvm芯片,nvm接口协议为onfi协议。

6、根据本技术的第一方面的第二存储介质模拟器,提供了根据本技术第一方面的第五存储介质模拟器,其中当命令与访问存储介质所存储的数据无关时,处理模块执行命令,并将执行结果通过接口模块发送至介质接口控制器模拟器。

7、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第六存储介质模拟器,其中当命令为读命令时,目标子模块自相应地址读出数据,结果为数据。

8、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第七存储介质模拟器,其中当命令为写命令时,目标子模块将命令中的数据写入相应地址,并生成成功写入信号,结果为成功写入信号。

9、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第八存储介质模拟器,其中接口模块接收到结果时,发送第一控制信号至介质接口控制器模拟器以指示结果准备发送,并响应来自介质接口控制器模拟器回应第一控制信号的第二控制信号,基于时钟周期将结果以符合nvm接口协议的方式发送介质接口控制器模拟器。

10、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第九存储介质模拟器,其中存储介质模拟器为systemc语言实现的仿真模型。

11、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第十存储介质模拟器,其中介质接口控制器模拟器与测试用例生成器连接,测试用例生成器用以生成测试用例,当存储介质模拟器就信号组识别出错误时,生成错误信息,并将错误信息发送至测试用例生成器。

12、根据本技术的第一方面的第十存储介质模拟器,提供了根据本技术第一方面的第十一存储介质模拟器,其中处理模块生成错误信息,接口模块将错误信息发送至测试用例生成器。

13、根据本技术的第一方面的第十存储介质模拟器,提供了根据本技术第一方面的第十二存储介质模拟器,其中接口模块在每个时钟周期执行一次操作,从介质接口控制器模拟器获取该时钟周期所对应的一组数据,连续多个时钟周期的多组数据形成信号组,并根据多组数据生成命令。

14、根据本技术的第一方面的第十二存储介质模拟器,提供了根据本技术第一方面的第十三存储介质模拟器,其中当多组数据无法生成命令时,处理模块生成错误信息。

15、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第十四存储介质模拟器,其中命令触发分配模块识别目标子模块是否处于闲置;如是,则发送命令至目标子模块;如否,暂停发送命令至目标子模块。

16、根据本技术的第一方面的第十四存储介质模拟器,提供了根据本技术第一方面的第十五存储介质模拟器,其中命令触发目标子模块执行一次操作获取命令的结果,其中目标子模块模拟获取命令的结果所需的时间。

17、根据本技术的第一方面的第十五存储介质模拟器,提供了根据本技术第一方面的第十六存储介质模拟器,其中结果触发应答模块执行一次操作将该结果发送至接口模块。

18、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第十七存储介质模拟器,其中信号组包括芯片选取信号,分配模块根据芯片选取信号识别目标子模块。

19、根据本技术的第一方面的第一存储介质模拟器,提供了根据本技术第一方面的第十八存储介质模拟器,其中分配模块或目标子模块执行命令的期间,接口模块接收下一个信号组。

20、根据本技术的第一方面的第十八存储介质模拟器,提供了根据本技术第一方面的第十九存储介质模拟器,其中应答模块接收结果的期间,处理模块或分配模块执行下一个信号组的命令。

21、根据本技术的第二方面的存储介质模拟方法,所述存储介质模拟方法基于目标模拟模块模拟存储介质中的目标,目标模拟模块包含一个或多个子模块,子模块用于模拟目标中的逻辑单元以及获取所述命令的结果。存储介质模拟方法包括:接收信号组,其中信号组由介质接口控制器模拟器基于nvm接口协议在多个时钟周期中模拟生成的多组数据;根据所述信号组识别出命令;识别出命令所对应的目标子模块,将命令发送至目标子模块;获取命令的结果;将结果发送至介质接口控制器模拟器。

22、本技术通过仿真nvm接口控制器的各个部件,可以提高仿真的粒度,尤其是可以细致到时钟周期的精度,对每个周期的行为进行描述。再者,本技术通过接收信号组,来模拟真实的闪存通道。本技术还通过获取错误信息以及通过存储介质模拟器来识别收到的命令格式与先后顺序,进而判断闪存通道内信号传递的正确性。

本文地址:https://www.jishuxx.com/zhuanli/20240731/182767.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。