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

一种硬盘数据访问方法、装置、设备及介质与流程

2022-07-31 08:11:11 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种硬盘数据访问方法、装置、设备及介质。


背景技术:

2.当前,随着电子技术和制造工艺的快速发展,在计算机体系架构中,cpu(central processing unit,中央处理器)和ddr(double data rate,双倍速率同步动态随机存储器)的运行频率越来越高,处理能力越来越强,而大容量存储介质虽然也在发展,从机械硬盘到基于sata(serial advanced technology attachment,串行高级技术附件)、nvme(nvm express,非易失性内存主机控制器接口规范)的ssd(solid state disk或solid state drive,固态硬盘),但其发展速度严重滞后cpu的发展速度,如何提高硬盘io(input\output)读写访问速度,成为影响计算机系统性能的关键。目前,在大容量存储介质设备中,ssd固态硬盘以其性能优势,逐渐取代传统的机械硬盘。ssd主要包含sata2.0\sata3.0\pcie(peripheral component interconnect express)接口固态硬盘,其中基于nvme协议规范的ssd性能更加优越,也逐渐成为设计首选。但相对于cpu和ddr运行频率,依然是计算机系统性能主要瓶颈。
3.综上所述,如何提高硬盘访问速度,降低延时是当前亟待解决的问题。


技术实现要素:

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.图1为本技术提供的一种硬盘数据访问方法流程图;
33.图2为现有的一种硬盘数据访问方法示意图;
34.图3为本技术提供的一种具体的硬盘数据访问方法流程图;
35.图4为本技术提供的一种具体的硬盘数据访问方法流程图;
36.图5为本技术提供的硬盘数据访问方法硬件部分组成示意图;
37.图6为本技术提供的硬盘数据访问方法固件部分组成示意图;
38.图7为本技术提供的cpu读写大容量数据块的流程示意图;
39.图8为本技术提供的cpu读写小容量数据块的流程示意图;
40.图9为本技术提供的一种硬盘数据访问装置结构图;
41.图10为本技术提供的一种电子设备结构图。
具体实施方式
42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.当前ssd固态硬盘的访问速度慢,成为计算机性能的主要瓶颈。为了克服上述问题,本技术提供了一种硬盘数据访问方案,能够提高硬盘访问速度,降低延时。
44.参见图1所示,本技术实施例公开了一种硬盘数据访问方法,该方法包括:
45.步骤s11:获取主机的中央处理器针对目标数据发送的目标访问请求。
46.本技术实施例中,现有方法中对硬盘数据访问的方法主要有两种。第一种方法是基于sata接口、ahci(advanced host controller interface,高级主机控制器接口)协议规范的ssd(固态硬盘),该方法在硬件层面上,计算机与sata中存储设备只能有一个队列,即使是多cpu情况下,所有请求只能经过这样一个狭窄的道路。同时sata与sas(serial attached scsi)接口的外置控制器(pch,platform controller hub)与cpu通信也会带来额外时延,在软件层方面,ahci每条命令则需要读取4次寄存器,会消耗8000次cpu循环,从而造成大概2.5微秒的延时。第二种方法,如图2所示,是基于pcie接口、nvme协议规范的ssd,该方法在硬件层面上,nvme ssd使用pcie总线传输,带宽显著提高。同时nvme协议可以最多有64k个队列,多队列负责发挥闪存的并行能力,每个cpu或者核心都可以有一个队列,并发程度大大提升,极大地提高了吞吐率;具体的,cpu访问nvme ssd流程如下:ssd以pcie插卡的方式插入主机系统的pcie插槽,当cpu访问大容量数据时,cpu设置nvme队列信息,通知ssd,然后ssd侧控制器读取队列信息,控制数据管理模块和dma,将nand flash中的数据通过dma(direct memory access,直接存储器访问)传输到host(主机)侧rdimm(registered dimm),并产生中断通知cpu,之后cpu通过cache(高速缓冲存储器)访问rdimm,读取数据。数据流过程nand flash

板卡ddr4

dma

cpu ddr4

cache。当cpu进行小容量或io数据读写时,nvme驱动将读取信息转换为pio(programmed input-output,可编程输入输出)操作,发送tlp包(transaction layer packet,事务层包),然后ssd侧读取nand flash数据,以完成包的形式发送到cpu缓存,进行读取。由此可见,上述方法的技术缺点主要为,第一,cpu访问ssd存储设备时的总延迟时间大,访问效率低;第二,cpu访问cache、ddr、整个链路的扰动大,造成ssd的访问延迟大;第三,cpu dma频繁中断及pcie nvme驱动都会影响性能。因此,本技术提出了一种硬盘数据访问方法。
47.本技术实施例中,利用cxl(compute express link)协议进行主机与硬盘间的通信。cxl协议又包括cxl.mem子协议、cxl.cache子协议和cxl.io子协议,另外,cxl协议又包括cxl控制器(cxl engine)。第三目标协议,也即cxl.io子协议用于实现所述主机与所述硬盘之间的通信。需要指出的是,cxl是一种新的计算互连标准。
48.本技术实施例中,首先构建好总链路,并对总链路进行初始化,然后获取主机的中央处理器针对目标数据发送的目标访问请求,具体的,由中央处理器发出目标访问请求,并生成访问请求包发送到硬盘,硬盘得到访问请求包后,对访问请求包进行解析得到目标访问请求,更具体的为,构建好cxl总链路,并对cxl总链路进行初始化,通过主机的cxl控制器(cxl engine)发送出cxl.io请求包。然后利用ssd中的cxl控制器(cxl engine)接收cxl.io请求包并解析得到目标访问请求。所述目标访问请求中包括但不限于数据源信息、数据类型信息和读写标志。
49.步骤s12:基于预设大容量判别规则和预设小容量判别规则判断所述目标数据的数据类型。
50.本技术实施例中,基于预设大容量判别规则和预设小容量判别规则判断所述目标
数据的数据类型,然后基于数据类型对目标数据进行相应的访问操作。
51.步骤s13:若所述目标数据的数据类型为大容量数据,则直接利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的第一数据传输链路进行数据传输,以通过所述第一数据传输链路完成针对所述目标数据的访问操作。
52.本技术实施例中,若所述目标数据的数据类型为大容量数据,则基于读写标志判断访问操作为读操作还是写操作,然后直接利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的第一数据传输链路进行数据传输,以通过所述第一数据传输链路完成针对所述目标数据的读操作或写操作。
53.需要指出的是,所述第一目标协议为cxl.mem子协议,cxl.mem实现cpu对ssd上的mem(memory)直接管理,也可将mem作为ddr(双倍速率同步动态随机存储器),因此,通过第一目标协议可以实现cpu直接访问ssd上双倍速率同步动态随机存储器,减少了cpu通过主机上的双倍速率同步动态随机存储器的步骤,提高了速度,降低了延时。需要指出的是,在完成读操作或写操作之后重新进行cxl链路的初始化。
54.需要指出的是,进行大容量数据的访问操作时,主要利用第一目标协议和第三目标协议,也即cxl.mem子协议和cxl.io子协议。
55.步骤s14:若所述目标数据的数据类型为小容量数据,则直接利用基于第二目标协议建立的非易失性存储器与所述中央处理器之间的第二数据传输链路进行数据传输,以通过所述第二数据传输链路完成针对所述目标数据的访问操作。
56.本技术实施例中,若所述目标数据的数据类型为小容量数据,则基于读写标志判断访问操作为读操作还是写操作,然后直接利用基于第二目标协议建立的非易失性存储器与所述中央处理器之间的第二数据传输链路进行数据传输,以通过所述第二数据传输链路完成针对所述目标数据的读操作或写操作。
57.需要指出的是,所述第二目标协议为cxl.cache子协议,cxl.cache使用硬盘对应的固件部分,也即fpga(field programmable gate array,现场可编程门阵列),内部的ram作为cpu cache,由cpu cache一致性管理模块统一管理,所述cpu cache可理解为非易失性存储器的缓冲区,由此,可通过第二目标协议直接进行非易失性存储器与所述中央处理器之间的数据传输,减少了cpu通过主机上的双倍速率同步动态随机存储器和ssd上的双倍速率同步动态随机存储器的步骤,提高了速度,降低了延时。需要指出的是,在完成读操作或写操作之后重新进行cxl链路的初始化。
58.需要指出的是,进行大容量数据的访问操作时,主要利用第二目标协议和第三目标协议,也即cxl.cache子协议和cxl.io子协议。
59.可见,本技术获取主机的中央处理器针对目标数据发送的目标访问请求;基于预设大容量判别规则和预设小容量判别规则判断所述目标数据的数据类型;若所述目标数据的数据类型为大容量数据,则直接利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的第一数据传输链路进行数据传输,以通过所述第一数据传输链路完成针对所述目标数据的访问操作;若所述目标数据的数据类型为小容量数据,则直接利用基于第二目标协议建立的非易失性存储器与所述中央处理器之间的第二数据传输链路进行数据传输,以通过所述第二数据传输链路完成针对所述目标数据的访问操作。由此可见,本技术对于大容量数据只需要通过第一数据链路就可以进行双倍速率同步动态随
机存储器与所述中央处理器之间的数据传输,不再需要通过主机中的双倍速率同步动态随机存储器,因此在进行大容量数据的数据传输时,提高了数据传输速度,降低了延时;本技术对于小容量数据只需要通过第二数据链路就可以进行非易失性存储器与所述中央处理器之间的数据传输,不再需要通过主机以及硬盘中的双倍速率同步动态随机存储器,因此在进行小容量数据的数据传输时,提高了数据传输速度,降低了延时;综上所述,本技术在进行数据传输的过程中,提高了数据传输速度,降低了延时,也即提高了硬盘访问速度,降低了延时,也减少了访问双倍速率同步动态随机存储器时的扰动,另外,由于不存在dma,因此不存在频繁中断,提高了访问速度。
60.参见图3所示,本技术实施例公开了一种具体的硬盘数据访问方法,该方法包括:
61.步骤s21:获取主机的中央处理器针对目标数据发送的目标访问请求。
62.其中,关于步骤s21的其它更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
63.步骤s22:基于预设大容量判别规则和预设小容量判别规则判断所述目标数据的数据类型。
64.其中,关于步骤s22的其它更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
65.步骤s23:若所述目标数据的数据类型为大容量数据,并且所述目标访问请求中的所述访问操作的操作类型为写操作,则直接利用所述第一数据传输链路,将所述中央处理器发送的所述目标数据写入所述双倍速率同步动态随机存储器;将所述双倍速率同步动态随机存储器中的所述目标数据写入至所述非易失性存储器中,以完成对所述目标数据的所述写操作。
66.本技术实施例中,若所述目标数据的数据类型为大容量数据,则基于读写标志判断访问操作为读操作还是写操作,如果所述目标访问请求中的所述访问操作的操作类型为写操作,则直接利用所述第一数据传输链路,将所述中央处理器发送的所述目标数据写入所述双倍速率同步动态随机存储器;将所述双倍速率同步动态随机存储器中的所述目标数据写入至所述非易失性存储器中,以完成对所述目标数据的所述写操作。需要指出的是,进行读写判断的是cxl协议又包括cxl控制器(cxl engine),cxl控制器控制cxl协议的使用。
67.本技术实施例中,直接利用所述第一数据传输链路,将所述中央处理器发送的所述目标数据写入所述双倍速率同步动态随机存储器的过程具体包括:产生中断,以通知cpu发送目标数据,然后cpu通过第一数据传输链路将所述中央处理器发送的所述目标数据写入所述双倍速率同步动态随机存储器,然后利用总线仲裁管理模块和缓冲区读写模块。将双倍速率同步动态随机存储器中的目标数据通过非易失性存储器控制器写入非易失性存储器中,然后再次产生中断通知cpu已完成写操作,然后重新进行cxl链路的初始化。
68.需要指出的是,所述第一数据传输链路为利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的数据传输链路;所述第一目标协议为cxl.mem子协议;所述产生中断以通知cpu发送目标数据或通知cpu已完成写操作,是由cxl.io子协议完成;本技术中,双倍速率同步动态随机存储器为ssd的mem空间;所述总线仲裁管理模块和缓冲区读写模块位于硬盘对应的固件部分,也即fpga固件,负责非易失性存储器中数据的传输;所述非易失性存储器为flash。
69.步骤s24:若所述目标数据的数据类型为大容量数据,并且所述目标访问请求中的所述访问操作的操作类型为读操作,则将所述非易失性存储器中的所述目标数据传输至所述双倍速率同步动态随机存储器,以便所述中央处理器利用所述第一数据传输链路直接从所述双倍速率同步动态随机存储器中读取所述目标数据,以完成对所述目标数据的所述读操作。
70.本技术实施例中,若所述目标数据的数据类型为大容量数据,则基于读写标志判断访问操作为读操作还是写操作,如果所述目标访问请求中的所述访问操作的操作类型为读操作,则将所述非易失性存储器中的所述目标数据传输至所述双倍速率同步动态随机存储器,以便所述中央处理器利用所述第一数据传输链路直接从所述双倍速率同步动态随机存储器中读取所述目标数据,以完成对所述目标数据的所述读操作。
71.本技术实施例中,根据目标数据在非易失性存储器中的地址信息,将目标数据从非易失性存储器读取并传输至双倍速率同步动态随机存储器,然后产生中断通知cpu读取数据,以便cpu利用所述第一数据传输链路从ssd的双倍速率同步动态随机存储器中读取数据,完成读操作。
72.需要指出的是,将目标数据从非易失性存储器传输至双倍速率同步动态随机存储器的步骤是由总线仲裁管理模块和缓冲区读写模块完成的;所述第一数据传输链路为利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的数据传输链路。
73.步骤s25:若所述目标数据的数据类型为小容量数据,则直接利用基于第二目标协议建立的非易失性存储器与所述中央处理器之间的第二数据传输链路进行数据传输,以通过所述第二数据传输链路完成针对所述目标数据的访问操作。
74.其中,关于步骤s25的其它更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
75.可见,本技术获取主机的中央处理器针对目标数据发送的目标访问请求;基于预设大容量判别规则和预设小容量判别规则判断目标数据的数据类型;若所述目标数据的数据类型为大容量数据,则直接利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的第一数据传输链路进行数据传输,以通过所述第一数据传输链路完成针对所述目标数据的访问操作;若所述目标数据的数据类型为小容量数据,则直接利用基于第二目标协议建立的非易失性存储器与所述中央处理器之间的第二数据传输链路进行数据传输,以通过所述第二数据传输链路完成针对所述目标数据的访问操作。由此可见,本技术对于大容量数据只需要通过第一数据链路就可以进行双倍速率同步动态随机存储器与所述中央处理器之间的数据传输,不再需要通过主机中的双倍速率同步动态随机存储器,因此在进行大容量数据的数据传输时,提高了数据传输速度,降低了延时;本技术对于小容量数据只需要通过第二数据链路就可以进行非易失性存储器与所述中央处理器之间的数据传输,不再需要通过主机以及硬盘中的双倍速率同步动态随机存储器,因此在进行小容量数据的数据传输时,提高了数据传输速度,降低了延时;综上所述,本技术在进行数据传输的过程中,提高了数据传输速度,降低了延时,也即提高了硬盘访问速度,降低了延时,也减少了访问双倍速率同步动态随机存储器时的扰动。
76.参见图4所示,本技术实施例公开了一种具体的硬盘数据访问方法,该方法包括:
77.步骤s31:获取主机的中央处理器针对目标数据发送的目标访问请求。
78.其中,关于步骤s31的其它更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
79.步骤s32:基于预设大容量判别规则和预设小容量判别规则判断所述目标数据的数据类型。
80.其中,关于步骤s32的其它更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
81.步骤s33:若所述目标数据的数据类型为大容量数据,则直接利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的第一数据传输链路进行数据传输,以通过所述第一数据传输链路完成针对所述目标数据的访问操作。
82.其中,关于步骤s33的其它更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
83.步骤s34:若所述目标数据的数据类型为小容量数据,并且所述目标访问请求中的所述访问操作的操作类型为写操作,则利用所述第二数据传输链路直接将所述中央处理器发送的所述目标数据写入至所述非易失性存储器中,以完成对所述目标数据的所述写操作。
84.本技术实施例中,若所述目标数据的数据类型为小容量数据,则基于读写标志判断访问操作为读操作还是写操作,如果所述目标访问请求中的所述访问操作的操作类型为写操作,则利用所述第二数据传输链路直接将所述中央处理器发送的所述目标数据写入至所述非易失性存储器中,以完成对所述目标数据的所述写操作。
85.本技术实施例中,利用所述第二数据传输链路直接将所述中央处理器发送的所述目标数据写入至所述非易失性存储器中的步骤,具体为,获取cpu基于目标数据生成数据包,并对数据包进行解析得到目标数据,然后将目标数据写入非易失性存储器的缓冲区,然后由总线仲裁管理模块和缓冲区读写模块将非易失性存储器的缓冲区中的目标数据写入至非易失性存储器中。需要指出的是,cpu生成数据包之前,主机生成完成包,利用完成包通知cpu发送数据。
86.需要指出的是,生成数据完成包并通知cpu发送数据的过程是由cxl控制器(cxl engine)进行的;所述数据包为cxl.cache数据包;所述解析数据包的过程是由cxl控制器(cxl engine)进行的。
87.步骤s35:若所述目标数据的数据类型为小容量数据,并且所述目标访问请求中的所述访问操作的操作类型为读操作,则利用所述第二数据传输链路将所述目标数据发送至所述中央处理器,以完成对所述目标数据的读操作。
88.本技术实施例中,若所述目标数据的数据类型为小容量数据,则基于读写标志判断访问操作为读操作还是写操作,如果所述目标访问请求中的所述访问操作的操作类型为读操作,则利用所述第二数据传输链路将所述目标数据发送至所述中央处理器,以完成对所述目标数据的读操作,具体的,基于所述非易失性存储器中的所述目标数据创建数据报文,并利用所述第二数据传输链路将所述数据报文发送至所述中央处理器。
89.需要指出的是,可以将所述非易失性存储器中的所述目标数据写入非易失性存储器的缓冲区,然后利用所述第二数据传输链路将所述缓冲区的所述目标数据发送至所述中
央处理器,以完成对所述目标数据的读操作;具体的,可以将所述非易失性存储器中的所述目标数据写入非易失性存储器的缓冲区,然后基于缓冲区的所述目标数据创建数据报文,并利用所述第二数据传输链路将所述数据报文发送至所述中央处理器。
90.需要指出的是,将所述非易失性存储器中的所述目标数据写入非易失性存储器的缓冲区的步骤是由总线仲裁管理模块和缓冲区读写模块完成的;cxl控制器(cxl engine)从缓冲区读取目标数据,产生数据报文;所述数据报文为cxl.cache数据报文。
91.可见,本技术获取主机的中央处理器针对目标数据发送的目标访问请求;基于预设大容量判别规则和预设小容量判别规则判断目标数据的数据类型;若所述目标数据的数据类型为大容量数据,则直接利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的第一数据传输链路进行数据传输,以通过所述第一数据传输链路完成针对所述目标数据的访问操作;若所述目标数据的数据类型为小容量数据,则直接利用基于第二目标协议建立的非易失性存储器与所述中央处理器之间的第二数据传输链路进行数据传输,以通过所述第二数据传输链路完成针对所述目标数据的访问操作。由此可见,本技术对于大容量数据只需要通过第一数据链路就可以进行双倍速率同步动态随机存储器与所述中央处理器之间的数据传输,不再需要通过主机中的双倍速率同步动态随机存储器,因此在进行大容量数据的数据传输时,提高了数据传输速度,降低了延时;本技术对于小容量数据只需要通过第二数据链路就可以进行非易失性存储器与所述中央处理器之间的数据传输,不再需要通过主机以及硬盘中的双倍速率同步动态随机存储器,因此在进行小容量数据的数据传输时,提高了数据传输速度,降低了延时;综上所述,本技术在进行数据传输的过程中,提高了数据传输速度,降低了延时,也即提高了硬盘访问速度,降低了延时,也减少了访问双倍速率同步动态随机存储器时的扰动。
92.参见图5所示,为本技术公开的硬件部分组成。采用fpga作为主处理芯片,支持2路ddr4,其中一路由数据管理模块进行元数据、flash块映射等管理,另一路作为flash阵列数据的缓存,由数据管理模块和cxl协议共同访问。其中存储器子系统包含flash阵列、flash控制器、数据管理模块及ddr4组成。接口采用cxl协议,在物理形态上兼容pcie协议,板卡可以通过金手指直接插入主板pcie插槽。需要指出的是,物理层兼容pcie接口,可以复用pcie插槽,无需新的连接器。
93.参见图6所示,为本技术公开的固件部分组成,fpga固件部分中固件关键模块包括cxl子系统(包含cxl.io、cxl.cache、cxl.mem协议层、cxl coherency engine以及cxl phy)、缓冲区读写模块、总线仲裁管理模块、控制寄存器、状态寄存器、nand flash子系统(flash控制器、flash数据管理模块),cxl.io用于实现host与ssd间io通信,包括链路训练、命令发送、msi中断等功能,cxl.cache使用fpga内部的ram作为cpu cache,由cpu cache一致性管理模块统一管理,cpu可以像访问本地cache一样访问ssd上的cache,从而简化cpu访问ssd的路径,降低访问延时。cxl.mem实现cpu对ssd上的mem直接管理。缓冲区读写模块和总线仲裁管理模块负责flash数据的传输。本文的重点是阐述如何通过cxl降低cpu访问ssd总体时间,因此关于存储子系统不进行详细描述。
94.参见图7所示,为具体的cpu读写大容量数据块的流程,如下所示:
95.s40:初始状态,完成cxl链路初始化。
96.s41:cpu发出io请求,通过主机侧cxl控制器(cxl engine)发出cxl.io请求包。
97.s42:ssd侧cxl engine接收到主机cxl.io请求包,由cxl.io子协议进行包解析,得到io请求的相关信息,如读写标志、数据源、大小等信息。
98.s43:cxl engine根据cxl.io解析后的信息进行读、写判读。如果是写操作,跳到状态s44,如果是读操作,跳转到s47状态。
99.s44:通过cxl.io产生cxl中断,通知cpu,可以发送数据。
100.s45:cpu侧cxl通过cxl.mem协议,直接将数据写入ssd的mem空间。
101.s46:总线仲裁管理模块和缓冲区读写模块配合,将mem空间的数据通过flash控制器写入flash中,然后向cpu发出中断,实现ssd写操作。返回初始状态s40。
102.s47:当判断到io是读请求时,根据地址信息,将数据从flash读取。
103.s48:总线仲裁管理模块和缓冲区读写模块配合,将数据搬移到ssd的mem空间。
104.s49:通知cpu读取数据,cpu通过host侧cxl.mem协议读取ssd的mem空间数据,完成读操作。
105.参见图8所示,为具体的cpu读写小容量数据块的流程,如下所示:
106.s50:初始状态,完成cxl初始化,等待cpu命令,并控制cpu发出io请求,通过主机侧cxl控制器发出cxl.io包请求。
107.s51:ssd侧cxl engine接收到主机cxl.io请求包,cxl engine基于cxl.io子协议进行cxl.io包解析,判断cpu读操作还是写操作。如果是读操作,跳转到s55转态,如果是写操作,跳转到s52转态。
108.s52:cxl engine发送cxl.io完成包,通知cpu发送数据。
109.s53:cpu发送cxl.cache数据包,cxl.engine解析数据包,将数据写入flash缓冲区
110.s54:通过总线仲裁管理模块和读写缓冲区模块将数据写入flash。
111.s55:cpu读操作,总线仲裁管理模块和读写缓冲区模块读取flash数据写入缓冲区。
112.s56:cxl engine读取缓冲区数据,产生cxl.cache数据报文并发送给cpu。
113.s57:cpu侧接收到cxl.cashe数据报文,完成读操作。
114.综上所述,本技术从降低cpu-cache-ddr-ssd整体链路上延时的角度提出了一种基于cxl协议的新型ssd固态硬盘,在固态硬盘上实现cxl.io、cxl.cache、cxl.mem子协议,利用fpga内部高速ram或reg作为ssd缓存cache,cpu可以直接访问ssd固态硬盘上的cache,从而提高io存储速度。降低传输延时。主要是,针对当前cpu通过dma方式或io方式访问ssd延迟相对较大的问题,实现一种新型的协议cxl来进一步提高cpu访问ssd的io性能,降低访问延时,同时,本方案也可以减少cpu访问本地ddr带来的额外扰动,从而提供整个计算机系统性能。具体的,一是对于大容量数据传输,通过cxl.mem子协议,利用fpga侧mem作为host侧cpu的mem,形成flash-本地ddr-cxl.mem数据通路,避免flash数据在本地ddr与host侧ddr之间的传输延时。二是小容量数据传输,通过cxl.cache子协议,直接对flash数据进行读写,绕过本地ddr操作,同时,cxl.io协议包相对于pcie io包进行了简化,进一步降低延时。三是cpu-cxl-本地ddr-flash形成完整的数据通路,无需host侧rdimm参与,避免了rdimm访问的扰动问题,其中,host为主机。
115.参见图9所示,本技术实施例公开了一种硬盘数据访问装置,包括:
116.请求获取模块11,用于获取主机的中央处理器针对目标数据发送的目标访问请
求;
117.判别模块12,用于基于预设大容量判别规则和预设小容量判别规则判断所述目标数据的数据类型;
118.第一访问模块13,用于若所述目标数据的数据类型为大容量数据,则直接利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的第一数据传输链路进行数据传输,以通过所述第一数据传输链路完成针对所述目标数据的访问操作;
119.第二访问模块14,用于若所述目标数据的数据类型为小容量数据,则直接利用基于第二目标协议建立的非易失性存储器与所述中央处理器之间的第二数据传输链路进行数据传输,以通过所述第二数据传输链路完成针对所述目标数据的访问操作。
120.其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
121.可见,本技术获取主机的中央处理器针对目标数据发送的目标访问请求;基于预设大容量判别规则和预设小容量判别规则判断所述目标数据的数据类型;若所述目标数据的数据类型为大容量数据,则直接利用基于第一目标协议建立的双倍速率同步动态随机存储器与所述中央处理器之间的第一数据传输链路进行数据传输,以通过所述第一数据传输链路完成针对所述目标数据的访问操作;若所述目标数据的数据类型为小容量数据,则直接利用基于第二目标协议建立的非易失性存储器与所述中央处理器之间的第二数据传输链路进行数据传输,以通过所述第二数据传输链路完成针对所述目标数据的访问操作。由此可见,本技术对于大容量数据只需要通过第一数据链路就可以进行双倍速率同步动态随机存储器与所述中央处理器之间的数据传输,不再需要通过主机中的双倍速率同步动态随机存储器,因此在进行大容量数据的数据传输时,提高了数据传输速度,降低了延时;本技术对于小容量数据只需要通过第二数据链路就可以进行非易失性存储器与所述中央处理器之间的数据传输,不再需要通过主机以及硬盘中的双倍速率同步动态随机存储器,因此在进行小容量数据的数据传输时,提高了数据传输速度,降低了延时;综上所述,本技术在进行数据传输的过程中,提高了数据传输速度,降低了延时,也即提高了硬盘访问速度,降低了延时,也减少了访问双倍速率同步动态随机存储器时的扰动。
122.进一步的,本技术实施例还提供了一种电子设备,图10是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
123.图10为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、输入输出接口24、通信接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任意实施例公开的硬盘数据访问方法的相关步骤。
124.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口25能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
125.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者
光盘等,存储器22作为可以包括作为运行内存的随机存取存储器和用于外部内存的存储用途的非易失性存储器,其上的存储资源包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
126.其中,操作系统221用于管理与控制源主机上电子设备20上的各硬件设备以及计算机程序222,操作系统221可以是windows、unix、linux等。计算机程222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的硬盘数据访问方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
127.本实施例中,所述输入输出接口24具体可以包括但不限于usb接口、硬盘读取接口、串行接口、语音输入接口、指纹输入接口等。
128.进一步的,本技术实施例还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的硬盘数据访问方法。
129.关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
130.这里所说的计算机可读存储介质包括随机存取存储器(random access memory,ram)、内存、只读存储器(read-only memory,rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述硬盘数据访问方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
131.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的硬盘数据访问方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
132.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
133.结合本文中所公开的实施例描述算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
134.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
135.以上对本发明所提供的一种硬盘数据访问方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

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

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

相关文献