一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种加快NandFlash控制命令执行速度的方法及系统与流程

2022-07-10 08:38:29 来源:中国专利 TAG:

一种加快nand flash控制命令执行速度的方法及系统
技术领域
1.本发明涉及数据存储技术领域,尤其涉及一种加快nand flash控制命令执行速度的方法及系统。


背景技术:

2.对于ssd固态硬盘,人们总是追求更快的读写速度。随着新一代pcie标准的发布,新的nand flash的制造技术的不断提高,如今的ssd硬盘,读写速度瓶颈逐渐集中于ssd主控与nand flash之间控制命令的执行速度方面。即使ssd硬盘其他部分的读写速度很高,但ssd是一个整体,如果ssd主控与nand flash之间控制命令的执行速度太低,也会拉低ssd的整体读写速度。


技术实现要素:

3.本发明的目的是针对现有技术的缺陷,提供了一种加快nand flash控制命令执行速度的方法及系统。
4.为了实现以上目的,本发明采用以下技术方案:
5.一种加快nand flash控制命令执行速度的系统,包括静态配置模块、动态模块、接口模块;所述静态配置模块包括配置单元、高速缓冲存储器单元,动态模块包括请求队列单元、仲裁单元、主机控制单元、缓存器单元,接口模块包括控制接口单元;
6.控制接口单元,用于下发nand flash控制命令的配置信息、待解析的命令提示符以及请求队列;
7.配置单元,与控制接口单元连接,用于存储控制接口单元下发的nand flash控制命令队列的配置信息;
8.高速缓冲存储器单元,与控制接口单元连接,用于存储nand flash控制命令、待解析的命令提示符;
9.请求队列单元,与控制接口单元连接,用于存放请求队列;
10.仲裁单元,与请求队列单元连接,用于仲裁请求队列单元中存放的队列请求,并读取仲裁后请求队列与高速缓冲存储器单元相对应的命令提示符,并对命令提示符进行解析;
11.主机控制单元,与仲裁单元连接,用于根据命令提示符的解析结果将nand flash控制命令进行发送。
12.进一步的,所述接口模块还包括nand flash接口单元,所述nand flash接口单元与主机控制单元连接,用于传输主机控制单元发送的nand flash控制命令给nand flash,并返回nand flash控制命令的执行状态。
13.进一步的,所述动态模块还包括从机控制单元、定时器单元;
14.从机控制单元,分别与主机控制单元、请求队列单元连接,用于控制处于等待状态的请求队列;
15.定时器单元,与从机控制单元连接,用于计时请求队列在从机控制单元中的等待时间。
16.进一步的,所述动态模块还包括缓存器单元,所述缓存器单元分别与主机控制单元、nand flash接口单元连接,用于存储主机控制单元执行的结果状态。
17.进一步的,所述请求队列单元中存放的请求队列包括与当前请求队列相关的配置数据以及若干需要解析的命令提示符。
18.相应的,还提供一种加快nand flash控制命令执行速度的方法,包括:
19.s1.通过控制接口单元向配置单元、高速缓冲存储器单元下发nand flash控制命令的配置信息、待解析的命令提示符;
20.s2.通过控制接口单元向请求队列单元下发请求队列;
21.s3.请求队列单元存储控制接口单元下发的请求队列,仲裁单元对请求队列单元中的所有请求队列进行仲裁,根据仲裁结果读取与高速缓冲存储器单元相对应的命令提示符,并对命令提示符进行解析;
22.s4.主机控制单元根据命令提示符的解析结果将nand flash控制命令通过nand flash接口单元发送出去,并根据当前请求队列发送的nand flash控制命令的类型返回或者不返回执行状态,将返回的执行状态存储于缓存器单元。
23.进一步的,所述步骤s4之后还包括:
24.当主机控制单元返回的执行状态为idle状态时,等待是否有新的队列被选中,若有,则重新启动主机控制单元。
25.进一步的,所述步骤s4之后还包括:
26.启动当前请求队列对应的从机控制单元,根据当前的请求队列配置要求判断是否启用定时器单元,若启用定时器单元,则根据配置的计时值进行等待,定时器单元溢出时从机控制单元返回idle状态;若不启用定时器单元,则从机控制单元立即返回idle状态。
27.进一步的,所述启动当前请求队列对应的从机控制单元时,请求队列单元中对应的当前请求队列的请求状态被清空。
28.进一步的,所述从机控制单元将返回idle状态后还包括:
29.判断从机控制单元中请求队列相对应的命令提示符是否全部解析并发送完毕,若是,则不恢复请求队列单元中请求队列对应的请求状态;若否,则恢复请求队列单元中请求队列对应的请求状态,进行下一次仲裁。
30.与现有技术相比,本发明提高nand flash控制命令的发送速度,以提高nand flash控制命令执行的密度,最终实现提高ssd的读写性能。
附图说明
31.图1是实施例一提供的一种加快nand flash控制命令执行速度的系统图;
32.图2是实施例三提供的硬件模块示意图;
33.图3是实施例四提供的硬件模块意图。
具体实施方式
34.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书
所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
35.本发明的目的是针对现有技术的缺陷,提供了一种加快nand flash控制命令执行速度的方法及系统。
36.实施例一
37.本实施例提供一种加快nand flash控制命令执行速度的系统,如图1所示,包括静态配置模块11、动态模块12、接口模块13。
38.静态配置模块11包括配置单元configuration、高速缓冲存储器单元cache;
39.动态模块12包括请求队列单元req queue、仲裁单元arbiter、主机控制单元master fsm、从机控制单元slave fsm、定时器单元timer、缓存器单元buffer;
40.接口模块13包括控制接口单元control interface、nand flash接口单元nand flash interface。
41.控制接口单元control interface,用于下发nand flash控制命令的配置信息、待解析的命令提示符、请求队列、读取队列/nand flash控制命令执行状态;
42.配置单元configuration,与控制接口单元control interface连接,用于存储control interface下发的nand flash控制命令队列的配置信息;
43.高速缓冲存储器单元cache,与控制接口单元control interface连接,用于存储nand flash控制命令、待解析的命令提示符cmd;
44.请求队列单元req queue,与控制接口单元control interface连接,用于存放待解析的并向nand flash interface发送控制命令的队列请求;
45.仲裁单元arbiter,与请求队列单元req queue连接,用于仲裁req queue中存放的队列请求,并读取仲裁后请求队列与cache相对应的命令提示符,并对cmd进行解析;
46.主机控制单元master fsm,与仲裁单元arbiter连接,用于根据cmd的解析结果将nand flash控制命令进行发送,且控制发送nand flash控制命令的整个流程;
47.nand flash接口单元nand flash interface,与主机控制单元master fsm连接,用于传输nand flash控制命令给nand flash,并返回nand flash控制命令的执行状态;
48.从机控制单元slave fsm,分别与主机控制单元master fsm、请求队列单元req queue连接,用于控制处于等待状态的请求队列;
49.定时器单元timer,与从机控制单元slave fsm连接,用于计时请求队列在slave fsm中的等待时间;
50.缓存器单元buffer,与主机控制单元master fsm、nand flash接口单元nand flash interface连接,用于存储master fsm执行的结果状态。
51.在本实施例中,req queue中的每一个队列,都存在对应该队列的配置数据,每一个队列有若干需要解析的cmd数据,cmd数据内包含待发送的nand flash控制命令相关信息,分别保存在configuration和cache中,并且,每一个队列都有一个独立的slave fsm和独立的timer;mater fsm是公用的,当当前队列进入slave fsm中等待时,其余队列经过仲裁,获得优先权时便可占用master fsm进行该队列对应的cmd的解析和发送。
52.与现有技术相比,本实施例提高nand flash控制命令的发送速度,以提高nand flash控制命令执行的密度,最终实现提高ssd的读写性能。
53.实施例二
54.本实施例提供一种加快nand flash控制命令执行速度的方法,包括实施例一中的一种加快nand flash控制命令执行速度的系统。
55.方法具体包括:
56.s1.根据具体的参数要求,通过control interface分别向configuration和cache下发nand flash控制命令的配置信息、待解析的cmd;
57.s2.根据具体的参数要求,通过control interface向req queue下发请求队列;
58.s3.req queue存储控制接口单元下发的请求队列,当req queue里存在1个及以上的请求队列时,arbiter对req queue中的所有请求队列进行仲裁,根据仲裁结果读取被选中的与cache相对应的cmd,并对cmd进行解析;
59.s4.启动master fsm,master fsm根据cmd的解析结果将nand flash控制命令通过nand flash interface发送出去,并根据当前请求队列发送的nand flash控制命令的类型返回或者不返回执行状态,将返回的执行状态存储于buffer,供其他模块通过control interface来读取。
60.步骤s4之后还包括:
61.在返回或者不返回执行状态之后,有两个操作是并行进行的:
62.1、当master fsm返回的执行状态为idle状态时,等待是否有新的队列被选中,直到有新的队列被选中,则重新启动master fsm。
63.2、启动当前请求队列对应的slave fsm,根据当前的请求队列配置要求决定是否启用timer,若启用timer,则根据配置的计时值进行等待,timer溢出时slave fsm返回idle状态;若不启用timer,则略过,slave fsm将立即返回idle状态。
64.当启动当前请求队列对应的slave fsm时,req queue中对应的当前请求队列的请求状态被清空。
65.当slave fsm返回idle状态时,判断slave fsm中请求队列相对应的cmd是否全部解析并发送完毕,根据该判断结果来决定是否恢复req queue中对应的队列的请求状态,若队列中cmd全部解析及发送完毕,则不恢复req queue中请求队列对应的请求状态;否则恢复req queue中请求队列对应的请求状态,进而参与下一次仲裁。
66.在本实施例中,队列之间还可存在优先级的概念,其仲裁逻辑为:当存在高优先级的队列时,低优先级的队列将不参与仲裁,直到高优先级的队列全部执行完毕,当不存在高优先级的队列时,低优先级的队列将参与仲裁;此外,若在低优先级队列执行期间,有高优先级的队列请求被下发到req queue中时,该低优先级在完成该次执行之后,将把优先级让位于高优先级的队列去执行。
67.本实施例通过一次性配置多个队列,再下发队列请求(下发的多个队列请求中有优先级),有选择的把不同队列中nand flash控制命令发送给nand flash;并且,当其中某一个或多个队列执行结束时,该队列的空间可以重复利用,在其他队列正在执行时,可对该队列进行配置,以待下一次执行。由此可以提高nand flash控制命令执行的密度,避免性能损失。
68.实施例三
69.本实施例提供的一种加快nand flash控制命令执行速度的系统与实施例一的不同之处在于:
70.如图2所示,本实施例将该系统作为单独的一个硬件模块,用verilog语言实现,通过axi总线来配置实现,具体为:control interface为axi4 slave interface,req queue采用8组队列,cache采用全寄存器实现方式。
71.实施例四
72.如图3所示,本实施例提供的一种加快nand flash控制命令执行速度的系统与实施例一的不同之处在于:
73.本实施例将该系统作为单独的一个硬件模块,用verilog语言实现,通过cpu扩展指令来实现,具体为:将整个模块功能划分为几条cpu扩展指令来控制,由于是cpu扩展指令,其执行速度相较于实例一,性能会有更大的提升空间,节省了axi4总线的时间开销;req queue采用16组队列,cache采用sram,以节省面积。
74.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献