数据访问的方法、装置、设备和存储介质制造方法及图纸

技术编号:24330470 阅读:34 留言:0更新日期:2020-05-29 19:26
根据本公开的实施例,提供了一种用于数据访问方法、装置、设备和存储介质。该方法包括获取针对存储设备的第一访问请求和第二访问请求;将与第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,缓冲区具有与存储设备的单个物理存储块相同的大小;确定与第二访问请求相关联的第二数据的第一大小是否小于缓冲区的可用空间的第二大小;响应于确定第一大小不小于第二大小,确定第二数据中的第一部分,第一部分具有与可用空间相同的大小;以及向与第一访问请求和第二访问请求相关联的目标设备提供第一数据和第一部分。

Methods, devices, devices and storage media for data access

【技术实现步骤摘要】
数据访问的方法、装置、设备和存储介质
本公开的实施例主要涉及数据存储领域,并且更具体地,涉及用于数据访问的方法、装置、设备和计算机可读存储介质。
技术介绍
随着技术的发展,软硬件协同设计已经开始在各个不同的领域应用。不同于传统的纯软件设计和纯硬件设计,软硬件协同设计基友软件可编程的灵活性,又能利用硬件的并行处理和流水线处理来提高数处理效率。在软硬件协同系统中,可能存在多个协处理器,并且部分协处理器在工作过程中可能同时访问同一个存储设备,因此,如何提高存储设备的访问效率已经成为关注的一个焦点。
技术实现思路
根据本公开的示例实施例,提供了一种用于数据访问的方案。在本公开的第一方面中,提供了一种用于数据访问的方法。该方法包括获取针对存储设备的第一访问请求和第二访问请求;将与第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,缓冲区具有与存储设备的单个物理存储块相同的大小;确定与第二访问请求相关联的第二数据的第一大小是否小于缓冲区的可用空间的第二大小;响应于确定第一大小不小于第二大小,确定第二数据中的第一部分,第一部分具有与可用空间相同的大小;以及向与第一访问请求和第二访问请求相关联的目标设备提供第一数据和第一部分。在本公开的第二方面中,提供了一种用于数据访问的装置。该装置包括获取模块,被配置为获取针对存储设备的第一访问请求和第二访问请求;第一加载模块,被配置为将与第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,缓冲区具有与存储设备的单个物理存储块相同的大小;第一确定模块,被配置为确定与第二访问请求相关联的第二数据的第一大小是否小于缓冲区的可用空间的第二大小;第二确定模块,被配置为响应于确定第一大小不小于第二大小,确定第二数据中的第一部分,第一部分具有与可用空间相同的大小;以及第一提供模块,被配置为向与第一访问请求和第二访问请求相关联的目标设备提供第一数据和第一部分。在本公开的第三方面中,提供了一种设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第一方面的方法。在本公开的第四方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。附图说明结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:图1示出了常规的软硬件协同片上系统的示意图;图2示出了根据本公开的一些实施例的存储系统的示意图;图3示出了根据本公开的一些实施例的数据访问的方法的流程图;图4A-图4C示出了根据本公开的一些实施例的对不同数据进行拼接的示意图;图5示出了根据本公开的实施例的用于数据访问的装置的示意框图;以及图6示出了能够实施本公开的多个实施例的计算设备的框图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。如上提及的,在软硬件协同片上系统(SoC)系统中,存储设备的访问效率将直接影响整个系统的数据处理效率。图1示出了根据本公开实施例的SoC系统100的示意图。如图1所示,SoC系统100包括嵌入式处理器110,与嵌入式处理器110关联的多个协处理器120-1、120-2、120-3和120-N(统称或单独称为协处理器120),以及多个存储设备130-1、130-2和130-M(统称或单独称为存储设备130)。在一些实施例中,存储设备130可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)或随机存取存储器(RAM)等。如图1所示,多个协处理器(诸如存储设备120-1和存储设备120-2)可以与单个存储设备(诸如存储设备130-1)相关联,因此可能存在协处理器120-1和协处理器120-2对存储设备130-1的同时访问。因此,如何提高存储设备130的访问效率成为SoC系统100的关键。此外,在硬件设计中,存储设备130的最小单元(即存储设备130中单个物理存储块的大小)往往大于操作系统能够处理的单个数据的大小,使得存储设备130的单个物理地址上可以存储多个数据。然而,操作系统往往以单个数据的大小为最小操作单位,这使得存储设备130中的单个物理地址往往包括多个文件地址。例如,处理精度为32位单精度浮点数的操作系统其最小操作单位为4字节,而存储设备130中的最小单元例如可以为16字节。在这种情况下,当协处理器120在对存储设备130进行大量的连续访问时,其将长时间占用存储设备130的访问端口,而协处理器120每次访问将仅针对文件系统的单个数据大小(例如,4字节),其极大地浪费了存储设备130的可支持访问位宽(16字节),从而导致存储设备130的访问效率低下。根据本公开的实施例,提供了一种数据访问的方案。在该方案中,在获取针对存储设备第一访问请求和第二访问请求时,存储系统将在于存储设备的最小单元大小相同的缓冲区中写入第一访问请求相关联的第一数据,并确定缓冲区的剩余可用空间的大小是否可以支持与第二访问请求相关联的第二数据,并且在可用空间不足以支持第二数据的情况下,向与第一访问请求和第二访问请求相关联的目标设备提供第一数据和第二数据的第一部分,其中第一部分具有与可用空间相同的大小。基于这样的方式,存储系统可以通过缓冲区将多个访问请求进行组合,从而最大程度利用存储设备的可用位宽。此外,在拼接过程中,只需要向缓冲区中加载一次数据,从而提高了存储系统的访问效率。以下将结合图2-图4描述根据本公开实施例的数据访问的方案。图2示出了根据本公开的一些实施例的存储系统200的示意图。如图2所示,存储系统200包括协处理器210、数据拼接器220和存储设备230。在一些实施例中,存储设备230可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)或随机存取存储器(RAM)等。例如,存储设备230可以为SoC系统200中的静态随机存取存储器(SRAM)。如图2所示,协处理器210可本文档来自技高网
...

【技术保护点】
1.一种数据访问的方法,包括:/n获取针对存储设备的第一访问请求和第二访问请求;/n将与所述第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,所述缓冲区具有与所述存储设备的单个物理存储块相同的大小;/n确定与所述第二访问请求相关联的第二数据的第一大小是否小于所述缓冲区的可用空间的第二大小;/n响应于确定所述第一大小不小于所述第二大小,确定所述第二数据中的第一部分,所述第一部分具有与所述可用空间相同的大小;以及/n向与第一访问请求和所述第二访问请求相关联的目标设备提供所述第一数据和所述第一部分。/n

【技术特征摘要】
1.一种数据访问的方法,包括:
获取针对存储设备的第一访问请求和第二访问请求;
将与所述第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,所述缓冲区具有与所述存储设备的单个物理存储块相同的大小;
确定与所述第二访问请求相关联的第二数据的第一大小是否小于所述缓冲区的可用空间的第二大小;
响应于确定所述第一大小不小于所述第二大小,确定所述第二数据中的第一部分,所述第一部分具有与所述可用空间相同的大小;以及
向与第一访问请求和所述第二访问请求相关联的目标设备提供所述第一数据和所述第一部分。


2.根据权利要求1所述的方法,还包括:
响应于完成向所述目标设备提供所述第一数据以及所述第一部分,将所述缓冲区的所述可用空间更新为所述缓冲区的全部空间;以及
在更新的所述可用空间中加载所述第二数据中与所述第一部分不同的第二部分。


3.根据权利要求2所述的方法,还包括:
确定是否接收到与所述第一访问请求和所述第二访问请求相关联的指令中的第三访问请求,所述第三访问请求的类型与所述第一访问请求和所述第二访问请求的类型相同;以及
响应于确定未接收到所述第三访问请求,将所述第二部分提供给所述目标设备。


4.根据权利要求1所述的方法,还包括:
响应于所述第一大小小于所述第二大小,将所述第二数据加载到所述缓冲区的所述可用空间中。


5.根据权利要求4所述的方法,还包括:
确定是否接收到与所述第一访问请求和所述第二访问请求相关联的指令中的第三访问请求,所述第三访问请求的类型与所述第一访问请求和所述第二访问请求的类型相同;以及
响应于确定未接收到所述第三访问请求,将所述第一数据和所述第二数据提供给所述目标设备。


6.根据权利要求1所述的方法,其中所述第一访问请求和所述第二访问请求为读请求,所述源设备为所述存储设备。


7.根据权利要求1所述的方法,其中所述第一访问请求和所述第二访问请求为写请求,所述目标设备为所述存储设备,其中所述第一访问请求针对的在所述存储设备上的第一目标位置和与所述第二访问请求针对的在所述存储设备上的第二目标位置是连续的。


8.一种用于数据访问的装置,包括:
获取模块,被配置为获取针对存储设备的第一访问请求和第二访问请求;
第一加载模块,被配置为将与所述第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,所述缓冲区具有与所述存储设备的单个物理存储块相同的大小;
第一确定模块,被配置为确定与所述第二访问请求...

【专利技术属性】
技术研发人员:梁子豪欧阳剑
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1