闪存交错访问方法、装置、电子设备及可读存储介质与流程

文档序号:32114318发布日期:2022-11-09 05:52阅读:48来源:国知局
闪存交错访问方法、装置、电子设备及可读存储介质与流程

1.本发明涉及数据存储技术领域,尤其涉及一种闪存交错访问方法、装置、电子设备及可读存储介质。


背景技术:

2.现有的固态硬盘(solid state drive,简称ssd)主控芯片在对某个逻辑单元进行操作时,会向对应的逻辑单元(logical unit number,简称lun)发送相关指令,部分指令会使逻辑单元在运行过程中无法接受新的指令,此时,所述逻辑单元处于等待状态。
3.当相应的逻辑单元处于等待状态时,所述固态硬盘主控芯片会切换到下一个逻辑单元进行指令操作,所述主控芯片会按照一个轮询顺序依次读取固态硬盘中各lun的状态。在所述主控芯片读取到满足操作要求的lun后,在消息队列中输入对所述lun的操作指令,并根据所述操作指令对所述lun进行操作处理。
4.现有的闪存访问方案在执行多个操作指令时,耗时较长,时间利用率低,因此,亟需一种操作方便且速度更快的闪存访问方案。


技术实现要素:

5.为了解决上述技术问题,本技术实施例提供了一种闪存交错访问方法、装置、电子设备及计算机可读存储介质,具体方案如下:
6.第一方面,本技术实施例提供了一种闪存交错访问方法,应用于固态硬盘主控芯片,所述闪存交错访问方法包括:
7.按照指令队列顺序在多个基础指令队列中查找目标指令队列,所述目标指令队列为存在预设操作指令的基础指令队列;
8.根据所述目标指令队列关联的操作配置组确定目标逻辑单元,其中,所述操作配置组包括对应的使能信号引脚编号和逻辑单元号;
9.判断所述目标逻辑单元的状态是否符合预设操作条件;
10.若所述目标逻辑单元的状态符合预设操作条件,在所述目标逻辑单元中执行所述预设操作指令;
11.若所述目标逻辑单元的状态不符合预设操作条件,跳转执行所述按照所述指令队列顺序在多个指令队列中查找目标指令队列的步骤。
12.根据本技术实施例的一种具体实施方式,所述按照预设指令队列顺序在多个基础指令队列中查找目标指令队列的步骤,包括:
13.根据指令队列顺序依次仲裁多个基础指令队列,其中,各基础指令队列分别与一个操作配置组关联;
14.若任一基础指令队列中存在所述预设操作指令,将所述基础指令队列确定为目标指令队列。
15.根据本技术实施例的一种具体实施方式,各基础指令队列关联的操作配置组互不
相同。
16.根据本技术实施例的一种具体实施方式,所述闪存交错方法还包括:
17.若各基础指令队列中均不存在所述预设操作指令,在仲裁完全部基础指令队列后,以首个基础指令队列为起始点,根据所述指令队列顺序依次仲裁多个基础指令队列。
18.根据本技术实施例的一种具体实施方式,所述查找目标指令队列的步骤之前,所述闪存交错访问方法还包括:
19.获取所述操作配置组的数量;
20.根据所述数量对存储空间进行指令队列划分,得到相同数量的基础指令队列。
21.根据本技术实施例的一种具体实施方式,所述固态硬盘主控芯片内包括预设数量的寄存器组,所述闪存交错访问方法还包括:
22.根据固态硬盘中闪存颗粒的相关参数获得预设数量的操作配置组,其中,所述相关参数包括使能信号引脚编号和逻辑单元号;
23.在每一寄存器组中输入对应的操作配置组。
24.根据本技术实施例的一种具体实施方式,所述闪存交错访问方法还包括:
25.在执行所述预设操作指令时,若执行到切换指令,跳转执行所述按照指令队列顺序在多个基础指令队列中查找目标指令队列的步骤。
26.第二方面,本技术实施例提供了一种闪存交错访问装置,应用于固态硬盘主控芯片,所述闪存交错访问装置包括:
27.查找模块,用于按照指令队列顺序在多个基础指令队列中查找目标指令队列,所述目标指令队列为存在预设操作指令的基础指令队列;
28.确定模块,用于根据所述目标指令队列关联的操作配置组确定目标逻辑单元,其中,所述操作配置组包括对应的使能信号引脚编号和逻辑单元号;
29.判断模块,用于判断所述目标逻辑单元的状态是否符合预设操作条件;
30.第一执行模块,用于若所述目标逻辑单元的状态符合预设操作条件,在所述目标逻辑单元中执行所述预设操作指令;
31.第二执行模块,用于若所述目标逻辑单元的状态不符合预设操作条件,跳转执行所述按照所述指令队列顺序在多个指令队列中查找目标指令队列的步骤。
32.第三方面,本技术实施例提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行前述第一方面及第一方面任一实施方式所述的闪存交错访问方法。
33.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行前述第一方面及第一方面任一实施方式所述的闪存交错访问方法。
34.本技术实施例提供了一种闪存交错访问方法、装置、电子设备及可读存储介质,所述闪存交错访问方法包括:按照指令队列顺序在多个基础指令队列中查找目标指令队列;根据所述目标指令队列关联的操作配置组确定目标逻辑单元;判断所述目标逻辑单元的状态是否符合预设操作条件;若所述目标逻辑单元的状态符合预设操作条件,在所述目标逻辑单元中执行所述预设操作指令;若所述目标逻辑单元的状态不符合预设操作条件,跳转执行所述按照所述指令队列顺序在多个指令队列中查找目标指令队列的步骤。本技术通过
在固态硬盘主控芯片设置操作配置组的方式,有效提升了查找和执行预设操作指令的速度和效率。
附图说明
35.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
36.图1示出了本技术实施例提供的一种闪存交错访问方法的方法流程示意图;
37.图2示出了本技术实施例提供的一种闪存交错访问方法应用的固态硬盘主控芯片的结构示意图;
38.图3示出了本技术实施例提供的一种闪存交错访问方法中“按照指令队列顺序在多个基础指令队列中查找目标指令队列”的步骤的示意图;
39.图4示出了现有技术中闪存访问方法执行预设操作指令的步骤的示意图;
40.图5示出了本技术实施例提供的一种闪存交错访问方法中执行预设操作指令的步骤的示意图;
41.图6示出了本技术实施例提供的一种闪存交错访问装置的装置模块示意图。
具体实施方式
42.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
43.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
45.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
46.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
47.参考图1,为本技术实施例提供的一种闪存交错访问方法的方法流程示意图,本技术实施例提供的闪存交错访问方法,应用于固态硬盘主控芯片,如图1所示,所述闪存交错访问包括:
48.步骤s101,按照指令队列顺序在多个基础指令队列中查找目标指令队列,所述目标指令队列为存在预设操作指令的基础指令队列;
49.具体的,本实施例提供的闪存交错访问方法,应用在一种固态硬盘主控芯片中。所述固态硬盘主控芯片中包括预设数量的硬件电路或寄存器,所述硬件电路或寄存器均用于实现操作配置组的设置功能。
50.所述固态硬盘主控芯片连接多个闪存颗粒,其中,每个闪存颗粒中可以包含多个target,每一个target使用一个使能信号引脚ce进行使能信号的发送和接收。
51.具体的,每个target内包括多个逻辑单元,每一个逻辑单元均可以独立执行预设操作指令。
52.所述固态硬盘主控芯片可以通过发送使能信号的方式控制相应的逻辑单元执行预设操作指令。
53.在具体实施例中,所述操作配置组中包括一一对应的使能信号引脚ce和逻辑单元lun。
54.根据本技术实施例的一种具体实施方式,所述固态硬盘主控芯片内包括预设数量的寄存器组,所述闪存交错访问方法还包括:
55.根据固态硬盘中闪存颗粒的相关参数获得预设数量的操作配置组,其中,所述相关参数包括使能信号引脚编号和逻辑单元号;
56.在每一寄存器组中输入对应的操作配置组。
57.在具体实施例中,本实施例中的固态硬盘主控芯片中包括预设数量的寄存器组,其中,预设数量的具体数值根据用户的使用需求决定。
58.用户可以根据实际应用过程中的使用需求将固态硬盘主控芯片连接的多个闪存颗粒的使能信号引脚编号和逻辑单元号,输入到对应的寄存器组中,以形成对应的操作配置组。
59.在完成寄存器组的参数配置后,会得到具有预设编号的多个寄存器组,其中,所述编号可以从第0组寄存器开始,也可以从第1组寄存器开始,此处不对首位寄存器组的编号进行限制。
60.如图2所示,所述固态硬盘主控芯片可以连接m个闪存颗粒,其中闪存颗粒0中具有n个逻辑单元,闪存颗粒1中具有x个逻辑单元,闪存颗粒m中具有y各逻辑单元。
61.所述固态硬盘主控芯片中设置了h个寄存器组。其中,m、n、x、y和h的数量均可以根据实际应用场景进行设置,m、n、x、y和h均为正整数。
62.如图2所示,第0组寄存器中的操作配置组为ce1,lun0;第1组寄存器组中的操作配置组为ce3,lun3;第2组寄存器组中的操作配置组为ce2,lun2。
63.需知的,每一个操作配置组的位宽可以根据实际应用场景中使能信号引脚数量和逻辑单元数量进行决定,此处不作具体限定。
64.根据本技术实施例的一种具体实施方式,所述查找目标指令队列的步骤之前,所述闪存交错访问方法还包括:
65.获取所述操作配置组的数量;
66.根据所述数量对存储空间进行指令队列划分,得到相同数量的基础指令队列。
67.在具体实施例中,在根据用户使用需求对操作配置组进行参数设置后,可以得到
操作配置组的数量。
68.具体的,所述固态硬盘主控芯片也可以通过获取寄存器组的数量来获得所述操作配置组的数量,此处不作限定。
69.获取操作配置组的数量后,对固态硬盘主控芯片的外部存储空间进行划分,以得到与所述操作配置组数量相同的指令队列。例如,当固态硬盘主控芯片中具有h个操作配置组时,将外部空间划分为h个指令队列。
70.在实际应用过程中,建立每一指令队列和一个操作配置组中的关联关系,举例来说,指令队列0对应第0组寄存器中的操作配置组0,指令队列1对应第1组寄存器中的操作配置组1。
71.在应用过程中,所述固态硬盘主控芯片在工作状态时,持续按照操作配置组的预设顺序对指令队列进行轮询仲裁。
72.根据本技术实施例的一种具体实施方式,所述按照预设指令队列顺序在多个基础指令队列中查找目标指令队列的步骤,包括:
73.根据指令队列顺序依次仲裁多个基础指令队列,其中,各基础指令队列分别与一个操作配置组关联;
74.若任一基础指令队列中存在所述预设操作指令,将所述基础指令队列确定为目标指令队列。
75.如图3所示,黑色实心圆点表示该指令队列中包括待执行的指令,白色圆点表示该指令队列中没有待执行的指令,不规则圆圈表示仲裁出的目标指令队列。
76.在具体实施例中,在第1次仲裁时,指令队列0优先级最高,其次的指令队列优先级顺序是指令队列1、指令队列2、指令队列3和指令队列4。第1次仲裁过程得到的目标指令队列为指令队列0。
77.第2次仲裁时,优先级次序变为1,2,3,4,0。队列指令1中包括待执行的指令,因此,第2次仲裁过程得到的目标指令队列为指令队列1。
78.第3次仲裁到第5次仲裁的具体实施过程与第2次仲裁的具体实施过程一致。
79.第6次仲裁时,优先级次序重新变为0,1,2,3,4。因此,第6次仲裁过程得到的目标指令队列重新变为指令队列0。
80.第7次仲裁到第10次仲裁的过程中,在第7次仲裁过程中,指令队列0中不包括待执行的指令;在第9次仲裁过程中,指令队列0和指令队列2中不包括待执行的指令;在第10次仲裁过程中,指令队列0、指令队列2和指令队列3不包括待执行的指令。
81.在第11次仲裁时,优先级次序变为0,1,2,3,4。但是指令队列0中没有待执行的指令,因此,第11次仲裁过程得到的目标指令队列为指令队列1。
82.在第12次仲裁时,优先级次序变为1,2,3,4,0。但是指令队列1、2和3中均没有待执行的指令,因此,第12次仲裁过程得到的目标指令队列为指令队列4。
83.本技术实施例通过上述轮询仲裁的方式,能够快速响应用户提前输入至基础指令队列中的操作指令。本技术提出的闪存交错访问方法无需在每一次切换仲裁的过程中,循环读取每一个逻辑单元的状态,而是在确定具有对目标逻辑单元有操作指令时,判断目标逻辑单元的状态。
84.需知的,当所述固态硬盘主控芯片与闪存颗粒之间具有一个数据通道时,那么在
任意时间点内,所述固态硬盘仅能同时操作一个逻辑单元。当所述固态硬盘主控芯片与闪存颗粒之间具有多个数据通道是,在需要时,所述固态硬盘能同时操作多个逻辑单元。
85.当所述固态硬盘主控芯片操作多个逻辑单元时,所述固态硬盘主控芯片在轮询选出一个目标逻辑单元时,立即进行下一轮轮询仲裁过程,以同时找到多个目标逻辑单元。
86.步骤s102,根据所述目标指令队列关联的操作配置组确定目标逻辑单元,其中,所述操作配置组包括对应的使能信号引脚编号和逻辑单元号;
87.在具体实施例中,所述固态硬盘主控芯片在工作过程会对全部基础指令队列进行轮询仲裁,并在每一次仲裁过程中选择出相应的目标指令队列。
88.每一指令队列均具有提前关联的操作配置组,根据所述操作配置组的内容,所述固态硬盘主控芯片可以确定对应的目标逻辑单元。
89.根据本技术实施例的一种具体实施方式,各基础指令队列关联的操作配置组互不相同。
90.在具体实施例中,各基础指令队列关联的操作配置组中的内容可以为用户自定义输入的使能信号引脚编号和逻辑单元号。
91.在应用过程中,当所述固态硬盘主控芯片是通过寄存器组来设置所述操作配置组时,所述操作配置组中的使能信号引脚编号和逻辑单元的组合可以由用户自定义更新。
92.当所述固态硬盘主控芯片是通过硬件逻辑电路来设置所述操作配置组时,所述操作配置组中的使能信号引脚编号和逻辑单元编号仅能按照预先设置好的顺序进行排列,且无法自定义更新。
93.具体的,保证各基础指令队列关联的操作配置组互不相同,能够有效节省寄存器组设置的数量以及硬件逻辑电路设置的数量,从而在控制成本的情况下实现闪存的快速访问。
94.步骤s103,判断所述目标逻辑单元的状态是否符合预设操作条件;
95.在具体实施例中,所述固态硬盘主控芯片在仲裁选出一个逻辑单元后,会首先检测所述逻辑单元的工作状态。
96.所述固态硬盘主控芯片在确认目标逻辑单元后,自动向所述目标逻辑单元发送读取逻辑单元状态的读取指令,并接收所述目标逻辑单元返回的状态检测结果。
97.具体的,所述逻辑单元的状态包括可执行状态和等待状态。
98.在实际应用过程中,当逻辑单元执行预设操作指令后,所述预设操作指令可能会使所述逻辑单元持续运行一段时间,这段时间内所述逻辑单元会处于等待状态。
99.处于等待状态中的逻辑单元无法接收新的操作指令。在等待状态持续一段时间后,逻辑单元会重置状态,使得逻辑单元恢复为可执行状态,此时所述逻辑单元可以继续接收并执行新的操作指令。
100.等待状态的持续时间根据实际应用场景进行自适应设置,此处不作限定。
101.步骤s104,若所述目标逻辑单元的状态符合预设操作条件,在所述目标逻辑单元中执行所述预设操作指令;
102.在具体实施例中,若所述目标逻辑单元的状态为可执行状态,则在所述目标逻辑单元中执行相应的预设操作指令。
103.根据本技术实施例的一种具体实施方式,所述闪存交错访问方法还包括:
104.在执行所述预设操作指令时,若执行到切换指令,跳转执行所述按照指令队列顺序在多个基础指令队列中查找目标指令队列的步骤。
105.在具体实施例中,在目标逻辑单元处理预设操作指令的过程中,若所述预设操作指令属于切换指令,则表示此时需要切换到另一个逻辑单元中执行指令。
106.所述固态硬盘主控芯片会以当前目标逻辑单元的操作配置组对应的下一组操作配置组作为起始点,按照指令队列顺序继续轮询仲裁全部基础指令队列,直至仲裁出下一个目标指令队列。
107.步骤s105,若所述目标逻辑单元的状态不符合预设操作条件,跳转执行所述按照所述指令队列顺序在多个指令队列中查找目标指令队列的步骤。
108.具体的,若所述目标逻辑单元的状态为等待状态,所述固态硬盘主控芯片会以当前目标逻辑单元对应的下一组操作配置组作为起始点,按照指令队列顺序继续轮询仲裁全部基础指令队列,直至仲裁出下一个目标指令队列。
109.需知的,当所述目标逻辑单元的状态处于等待状态超过预设时间阈值时,所述固态硬盘主控芯片会在接下来的轮询仲裁过程中,直接跳过所述目标逻辑单元,直至所述目标逻辑单元恢复可执行状态,且所述目标逻辑单元中包括待执行指令。
110.根据本技术实施例的一种具体实施方式,所述闪存交错方法还包括:
111.若各基础指令队列中均不存在所述预设操作指令,在仲裁完全部基础指令队列后,以首个基础指令队列为起始点,根据所述指令队列顺序依次仲裁多个基础指令队列。
112.在具体实施例中,所述固态硬盘主控芯片在工作时,循环对设置好的全部基础指令队列进行轮询仲裁,以便于固态硬盘主控芯片及时对各基础指令队列中输入的操作指令进行响应。
113.用户可以通过实时设置的操作配置组顺序,在相应的基础指令队列中上传预设操作指令,以实现对固态硬盘中各逻辑单元的控制。
114.如图4所示,常用的闪存交错访问方案中仅包括一个指令队列,且指令队列无法预先填写操作指令。在每次切换仲裁时,需要通过主控芯片的软件依次向每一个逻辑单元发送状态读取指令,并在某个逻辑单元的状态检查成功后,才能向所述指令队列中写入操作对应的逻辑单元的预设操作指令。因此,由于每一次状态读取时均需要花费较长时间,使得访问闪存中数据的时间利用率低。
115.如图5所示,本技术实施例提供的闪存交错访问方法,可以通过提前在各基础指令队列中上传相应的预设操作指令的方式,使得固态硬盘主控芯片可以通过硬件仲裁的方式快速将指令发送到对应的逻辑单元,无需通过软件再次向指令队列进行操作指令配置动作,有效提升了闪存数据访问的速度和效率。
116.参考图6,为本技术实施例提供的一种闪存交错访问装置600的装置模块示意图,本技术实施例提供的闪存交错访问装置600,应用于固态硬盘主控芯片,如图6所示,所述闪存交错访问装置600包括:
117.查找模块601,用于按照指令队列顺序在多个基础指令队列中查找目标指令队列,所述目标指令队列为存在预设操作指令的基础指令队列;
118.确定模块602,用于根据所述目标指令队列关联的操作配置组确定目标逻辑单元,其中,所述操作配置组包括对应的使能信号引脚编号和逻辑单元号;
119.判断模块603,用于判断所述目标逻辑单元的状态是否符合预设操作条件;
120.第一执行模块604,用于若所述目标逻辑单元的状态符合预设操作条件,在所述目标逻辑单元中执行所述预设操作指令;
121.第二执行模块605,用于若所述目标逻辑单元的状态不符合预设操作条件,跳转执行所述按照所述指令队列顺序在多个指令队列中查找目标指令队列的步骤。
122.另外,本技术实施例还提供的一种电子设备,所述电子设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行前述实施例中的闪存交错访问方法。
123.本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行前述实施例中的闪存交错访问方法。
124.综上所述,本技术实施例提供了一种闪存交错访问方法、装置、电子设备及可读存储介质,通过提前在固态硬盘主控芯片上设置操作配置组,并将外部存储空间划分为数量与操作配置组数量一致的基础指令队列,从而能够提前在各基础指令队列中配置对目标逻辑单元的操作指令,有效节省了固态硬盘主控芯片检测逻辑单元状态和配置操作指令的时间,大大加快了访问闪存中数据内容的速度和效率。另外,上述实施例中提到的闪存交错访问装置、电子设备及计算机可读存储介质的具体实施过程,可以参见上述方法实施例的具体实施过程,在此不再一一赘述。
125.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
126.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
127.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
128.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1