具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
存储设备实施例
本发明实施例所提供的存储设备1的组成结构,如图1所示,包括:处理器11、存储单元12和缓存单元13;其中,
所述处理器11,用于接收第一命令,解析所述第一命令,获取第一操作地址;根据预先存储的策略判断所述第一操作地址的属性,在判断结果为所述第一操作地址具有第一属性,且未收到第二命令时,生成指令;根据所述指令中的标识对所述指令进行命令队列管理;在所述第一时间响应所述指令,在所述存储单元内获取与所述指令对应的数据;
这里,所述第一命令为读命令;所述第一操作地址为读操作地址,也是指逻辑地址;所述第一属性为所述第一操作地址具有连续性,在判断所述第一操作地址的属性为具有连续性时,即可启动预读机制;所述预先存储的策略可根据实际应用灵活设置,如:两次读操作地址连续时,判断所述第一操作地址的属性为具有连续性,或三次读操作地址连续时,判断所述第一操作地址的属性为具有连续性;所述第二命令为与第一命令获取顺序相邻的命令;所述指令为预读指令,包括:预读标识和物理地址;所述第一时间与所述指令中的标识对应,所述第一时间可以为所述处理器11空闲的时间,或所述处理器11不响应任何指令的时间。
所述存储单元12,用于存储数据。
所述缓存单元13,用于存储所述获取的与所述指令对应的数据。
本发明实施例中,所述处理器11,还用于接收与第三命令对应的数据的存储信息,根据所述存储信息直接在所述缓存单元13内获取与所述第三命令对应的数据;
这里,所述第三命令是指与所述指令包括的物理地址相同的读命令。
本发明实施例中,所述处理器11,还用于设置执行所述指令的优先级;
这里,所述优先级至少包括低优先级和高优先级两种,也可根据实际应用,设置多个级别的优先级;所述处理器11根据所述指令中的预读标识将所述读命令分配进入低优先级的命令队列,从而避免影响正常的命令操作。
在实际应用中,所述读命令被分配进入低优先级的命令队列后,也可设置加急控制,即:设置读命令从低优先级转为高优先级,并快速执行读取操作。
本发明实施例中,所述缓存单元可位于双倍速率同步动态随机存储器(DoubleData Rate,DDR)内,由于DDR芯片容量大,在DDR内存储少量以Flash Page为单位的数据非常轻松,无需引入额外的存储单元,也不会造成芯片面积或存储设备成本的增加。
电子设备实施例
本发明实施例提供一种电子设备2,所述电子设备2包括:主机21和存储设备22,其中,
所述主机21,用于向所述存储设备22发送第一命令;
所述存储设备22,用于接收第一命令,解析所述第一命令,获取第一操作地址;在所述第一操作地址具有第一属性,且未接收到第二命令时,生成指令;根据所述指令中的标识对所述指令进行命令队列管理;在所述第一时间响应所述指令,在自身的存储单元内获取与所述指令对应的数据;并将所述获取的与所述指令对应的数据存储至自身的缓存单元;
这里,所述第一命令为读命令;所述第一操作地址为读操作地址,也是指逻辑地址;所述第一属性为所述第一操作地址具有连续性,在判断所述第一操作地址的属性为具有连续性时,即可启动预读机制;所述预先存储的策略可根据实际应用灵活设置,如:两次读操作地址连续时,判断所述第一操作地址的属性为具有连续性,或三次读操作地址连续时,判断所述第一操作地址的属性为具有连续性;所述第二命令为与第一命令获取顺序相邻的命令;所述指令为预读指令,包括:预读标识和物理地址;所述第一时间与所述指令中的标识对应,所述第一时间可以为所述存储设备内的处理器空闲的时间,或所述存储设备内的处理器不响应任何指令的时间。
本发明实施例中,所述指令包括预读标识和物理地址。
本发明实施例中,所述主机21,还用于接收第三命令,解析所述第三命令,获取第三操作地址;在所述第三操作地址与所述指令包含的物理地址相同时,所述主机向所述存储设备发送与所述第三命令对应的数据的存储信息;
相应的,所述存储设备22根据所述存储信息直接在自身获取与所述第三命令对应的数据。
本发明实施例中,所述存储设备22,还用于设置执行所述指令的优先级;
这里,所述优先级至少包括低优先级和高优先级两种,也可根据实际应用,设置多个级别的优先级;所述存储设备22根据所述指令中的预读标识将所述读命令分配进入低优先级的命令队列,从而避免影响正常的命令操作。
在实际应用中,所述读命令分配进入低优先级的命令队列后,也可设置加急控制,即:设置读命令从低优先级转为高优先级,并快速执行读取操作。
本发明实施例中,所述存储设备22内的缓存单元可位于DDR内,由于DDR芯片容量大,在DDR内存储少量以Flash Page为单位的数据非常轻松,无需引入额外的存储单元,也不会造成芯片面积或存储设备成本的增加。
本发明实施例提供的数据处理方法应用于电子设备,所述电子设备包括存储设备,所述方法的基本处理流程示意图,如图3所示,包括以下步骤:
步骤101,存储设备接收第一命令,解析所述第一命令,获取第一操作地址;
这里,所述第一命令为读命令,所述第一操作地址为读操作地址。
步骤102,根据预先存储的策略判断所述第一操作地址的属性;
具体地,所述存储设备根据预先存储的策略判断所述第一操作地址的属性;
其中,所述第一命令为读命令;所述第一操作地址为读操作地址,也是指逻辑地址,所述第一操作地址的属性是指所述第一操作地址是否具有连续性;
这里,所述预先存储的策略可以根据实际应用灵活设置,如:两次读操作地址连续时,判断所述第一操作地址的属性为具有连续性,或三次读操作地址连续时,判断所述第一操作地址的属性为具有连续性;当然,也可以设置更多次数的读操作地址连续时,判断所述第一操作地址的属性为具有连续性。
步骤103,在判断结果为所述第一操作地址具有第一属性,且未接收到第二命令时,生成指令;
具体地,所述存储设备在判断结果为所述第一操作地址具有第一属性,且未接收到第二命令时,生成指令;
这里,所述第二命令为与第一命令获取顺序相邻的命令,所述指令为预读指令,包括:预读标识和物理地址。
步骤104,根据所述指令中的标识对所述指令进行命令队列管理;
具体地,所述存储设备设置执行所述指令的优先级;
这里,所述优先级至少包括低优先级和高优先级两种,也可根据实际应用,设置多个级别的优先级;所述存储设备根据所述指令中的预读标识将所述读命令分配进入低优先级的命令队列,从而避免影响正常的命令操作。
在实际应用中,所述读命令被分配进入低优先级的命令队列后,也可设置加急控制,即:设置读命令从低优先级转为高优先级,并快速执行读取操作。
步骤105,在所述第一时间响应所述指令,在自身的存储单元内获取与所述指令对应的数据,并将所述获取的与所述指令对应的数据存储至自身的缓存单元;
具体地,所述存储设备在所述第一时间响应所述指令,在自身的存储单元内获取与所述指令对应的数据,并将所述获取的与所述指令对应的数据存储至自身的缓存单元;
这里,所述第一时间与所述指令中的标识对应,可以是所述存储设备内的处理器空闲的时间,或所述存储设备内的处理器不响应任何其他指令的时间;
本发明实施例中,所述缓存单元可位于DDR内,由于DDR芯片容量大,在DDR内存储少量以Flash Page为单位的数据非常轻松,无需引入额外的存储单元,也不会造成芯片面积或存储设备成本的增加。
本发明实施例所述电子设备还包括主机,在执行步骤105之后,本发明实施例所述方法还包括:
步骤106,所述主机接收第三命令,解析所述第三命令,获取第三操作地址;
具体地,所述第三命令为读命令,所述第三地址为读操作地址。
步骤107,在所述第三操作地址与所述指令包含的物理地址相同时,所述主机向所述存储设备发送与所述第三命令对应的数据的存储信息;
这里,所述存储信息包括:数据的存储地址、数据的长度等。
步骤108,所述存储设备根据所述存储信息直接在自身的缓存单元内获取与所述第三命令对应的数据;
这里,所述存储设备无需在发送数据读取命令,能够直接从缓存单元读取数据,从而降低了数据的读取延迟,提高了存储设备的性能。
本发明实施例一提供的数据处理方法应用于电子设备,所述电子设备包括存储设备和主机,所述方法的详细处理流程示意图,如图4所示,包括以下步骤:
步骤201,存储设备接收第一命令,解析所述第一命令,获取第一操作地址;
这里,所述第一命令为读命令,所述第一操作地址为读操作地址。
步骤202,根据预先存储的策略判断所述第一操作地址的属性;
其中,所述第一操作地址是指逻辑地址,所述第一操作地址的属性是指所述第一操作地址是否具有连续性;
本发明实施例中,所述预先存储的策略为:两次读操作地址连续时,则判断所述第一操作地址的属性为具有连续性,并启动预读机制。
这里,三次读操作地址连续,因此,判断所述第一操作地址的属性为具有连续性。
步骤203,在存储设备未收到第二命令时,生成指令;
其中,所述第二命令为与第一命令获取顺序相邻的命令,所述指令为预读指令,包括:预读标识和物理地址;
这里,所述物理地址是由具有连续性的读操作地址进行映射转换得到的。
步骤204,存储设备对所述指令进行命令队列管理;
具体地,所述存储设备根据所述指令中的标识,将所述指令分配进入低优先级的命令队列,从而避免影响正常的命令操作。
步骤205,在所述存储设备内的处理器空闲的时间间隙执行预读命令操作,缓存预读命令读出的数据;
具体地,所述存储设备在自身的存储单元内获取与所述指令,即所述预读命令对应的数据,并将所述获取的与所述指令对应的数据存储至自身的缓存单元;
本发明实施例中,所述缓存单元可位于DDR内,由于DDR芯片容量大,在DDR内存储少量以Flash Page为单位的数据非常轻松,无需引入额外的存储单元,也不会造成芯片面积或存储设备成本的增加。
步骤206,主机接收第三命令,解析所述第三命令,获取第三操作地址;
具体地,所述第三命令为读命令,所述第三地址为读操作地址。
步骤207,在所述第三操作地址与所述指令包含的物理地址相同时,所述主机向所述存储设备发送与所述第三命令对应的数据的存储信息;
这里,所述存储信息包括:数据的存储地址、数据的长度等。
步骤208,所述存储设备根据所述存储信息直接在自身的缓存单元内获取与所述第三命令对应的数据;
这里,所述存储设备无需在发送数据读取命令,能够直接从缓存单元读取数据,从而降低了数据的读取延迟,提高了存储设备的性能。
步骤209,所述存储设备将读取的数据发送至主机;
这里,即完成了数据的读命令操作。
本发明实施例二提供的数据处理方法应用于电子设备,所述电子设备包括存储设备和主机,所述方法的详细处理流程示意图,如图5所示,包括以下步骤:
步骤301,存储设备接收第一命令,解析所述第一命令,获取第一操作地址;
这里,所述第一命令为读命令,所述第一操作地址为读操作地址。
步骤302,根据预先存储的策略判断所述第一操作地址的属性;
其中,所述第一操作地址是指逻辑地址,所述第一操作地址的属性是指所述第一操作地址是否具有连续性;
本发明实施例中,所述预先存储的策略为:三次读操作地址连续时,则判断所述第一操作地址的属性为具有连续性,并启动预读机制。
这里,三次读操作地址连续,因此,判断所述第一操作地址的属性为具有连续性。
步骤303,在存储设备未收到第二命令时,生成指令;
其中,所述第二命令为与第一命令获取顺序相邻的命令,所述指令为预读指令,包括:预读标识和物理地址;
这里,所述物理地址是由具有连续性的读操作地址进行映射转换得到的。
步骤304,存储设备对所述指令进行命令队列管理;
具体地,所述存储设备根据所述指令中的标识,将所述指令分配进入低优先级的命令队列,从而避免影响正常的命令操作。
步骤305,对所述命令队列进行重新管理;
具体地,在将所述指令分配进入低优先级的命令队列后,所述存储设备也可对所述命令队列进行重新管理,将所述指令进行加急控制,使所述指令从低优先级队列调整至高优先级队列;如此,可快速执行预读命令操作。
步骤306,缓存预读命令读出的数据;
具体地,所述存储设备在自身的存储单元内获取与所述指令,即所述预读命令对应的数据,并将所述获取的与所述指令对应的数据存储至自身的缓存单元;
本发明实施例中,所述缓存单元可位于DDR内,由于DDR芯片容量大,在DDR内存储少量以Flash Page为单位的数据非常轻松,无需引入额外的存储单元,也不会造成芯片面积或存储设备成本的增加。
步骤307,主机接收第三命令,解析所述第三命令,获取第三操作地址;
具体地,所述第三命令为读命令,所述第三地址为读操作地址。
步骤308,在所述第三操作地址与所述指令包含的物理地址相同时,所述主机向所述存储设备发送与所述第三命令对应的数据的存储信息;
这里,所述存储信息包括:数据的存储地址、数据的长度等。
步骤309,所述存储设备根据所述存储信息直接在自身的缓存单元内获取与所述第三命令对应的数据;
这里,所述存储设备无需在发送数据读取命令,能够直接从缓存单元读取数据,从而降低了数据的读取延迟,提高了存储设备的性能。
步骤310,所述存储设备将读取的数据发送至主机;
这里,即完成了数据的读命令操作。
本发明实施例三提供的数据处理方法应用于电子设备,所述电子设备包括存储设备和主机,所述方法的详细处理流程示意图,如图6所示,包括以下步骤:
步骤401,存储设备接收第一命令,解析所述第一命令,获取第一操作地址;
这里,所述第一命令为读命令,所述第一操作地址为读操作地址。
步骤402,根据预先存储的策略判断所述第一操作地址的属性;
其中,所述第一操作地址是指逻辑地址,所述第一操作地址的属性是指所述第一操作地址是否具有连续性;
本发明实施例中,所述预先存储的策略为:两次读操作地址连续时,则判断所述第一操作地址的属性为具有连续性,并启动预读机制。
这里,三次读操作地址连续,因此,判断所述第一操作地址的属性为具有连续性。
步骤403,在存储设备未收到第二命令时,生成指令;
其中,所述第二命令为与第一命令获取顺序相邻的命令,所述指令为预读指令,包括:预读标识和物理地址;
这里,所述物理地址是由具有连续性的读操作地址进行映射转换得到的。
步骤404,存储设备对所述指令进行命令队列管理;
具体地,所述存储设备根据所述指令中的标识,将所述指令分配进入低优先级的命令队列,从而避免影响正常的命令操作。
步骤405,在所述存储设备内的处理器不响应任何指令的时间执行预读命令操作,缓存预读命令读出的数据;
具体地,所述存储设备在自身的存储单元内获取与所述指令,即所述预读命令对应的数据,并将所述获取的与所述指令对应的数据存储至自身的缓存单元;
本发明实施例中,所述缓存单元可位于DDR内,由于DDR芯片容量大,在DDR内存储少量以Flash Page为单位的数据非常轻松,无需引入额外的存储单元,也不会造成芯片面积或存储设备成本的增加。
步骤406,主机接收第三命令,解析所述第三命令,获取第三操作地址;
具体地,所述第三命令为读命令,所述第三地址为读操作地址。
步骤407,在所述第三操作地址与所述指令包含的物理地址相同时,所述主机向所述存储设备发送与所述第三命令对应的数据的存储信息;
这里,所述存储信息包括:数据的存储地址、数据的长度等。
步骤408,所述存储设备根据所述存储信息直接在自身的缓存单元内获取与所述第三命令对应的数据;
这里,所述存储设备无需在发送数据读取命令,能够直接从缓存单元读取数据,从而降低了数据的读取延迟,提高了存储设备的性能。
步骤409,所述存储设备将读取的数据发送至主机;
这里,即完成了数据的读命令操作。
需要说明的是,本发明上述实施例所述的存储设备的部分功能也可由闪存控制器(Nand Flash Controller,NFC)实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储单元中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储单元包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储单元中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储单元中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储单元包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。