CN114416178A - 数据访问方法、装置及非临时性计算机可读存储介质 - Google Patents

数据访问方法、装置及非临时性计算机可读存储介质 Download PDF

Info

Publication number
CN114416178A
CN114416178A CN202111543913.4A CN202111543913A CN114416178A CN 114416178 A CN114416178 A CN 114416178A CN 202111543913 A CN202111543913 A CN 202111543913A CN 114416178 A CN114416178 A CN 114416178A
Authority
CN
China
Prior art keywords
instruction
accessed
processed
address
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111543913.4A
Other languages
English (en)
Inventor
张俊
李星辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN202111543913.4A priority Critical patent/CN114416178A/zh
Priority to PCT/CN2022/090331 priority patent/WO2023108989A1/zh
Priority to KR1020237044059A priority patent/KR20240010042A/ko
Publication of CN114416178A publication Critical patent/CN114416178A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供一种数据访问方法、装置及非临时性计算机可读存储介质,其中,所述方法包括:获取多个待处理指令;其中,每个所述待处理指令包括待访问地址;确定所述多个待处理指令中的待合并指令,并对所述待合并指令进行合并处理,得到合并指令;根据所述合并指令对应的待访问地址进行数据访问,从而减少指令的开销,以及提高指令处理的效率,从而有效提高电子设备的性能。

Description

数据访问方法、装置及非临时性计算机可读存储介质
技术领域
本公开涉及电子设备技术领域,尤其涉及一种数据访问方法、装置及非临时性计算机可读存储介质。
背景技术
随着技术的发展,基于电子元件工业联合会(Joint Electron DeviceEngineering Council,JEDEC)协议的存储器(例如,Nand flash)被广泛应用于移动终端等电子设备上。
目前,在电子设备上的进程产生待处理指令后,将该待处理指令发送至基于JEDEC协议的存储器,该存储器处理该待处理指令,即对待处理指令的待访问地址进行访问,也即数据读写。
然而,当待处理指令的数量为多个时,需要逐个将待处理指令发送至该存储器,导致指令开销的增加,且存储器仅能逐个处理待处理指令,降低指令处理的效率,从而影响电子设备的性能。
发明内容
有鉴于此,本公开提供一种数据访问方法、装置及非临时性计算机可读存储介质,可以有效提高电子设备的性能。
根据本公开实施例的第一方面,提供了一种数据访问方法,应用于电子设备,所述方法包括:
获取多个待处理指令;其中,每个所述待处理指令包括待访问地址;
确定所述多个待处理指令中的待合并指令,并对所述待合并指令进行合并处理,得到合并指令;
根据所述合并指令对应的待访问地址进行数据访问。
可选的,所述确定所述多个待处理指令中的待合并指令,包括:
获取第一指令;其中,所述第一指令为所述待处理指令中的任一指令;
遍历所述第一指令以外的待处理指令,获得第二指令;其中,所述第二指令的待访问地址与所述第一指令的待访问地址为间接连续,且所述第二指令的待访问地址未通过其它待处理指令的待访问地址与所述第一指令的待访问地址连续;
响应于所述第二指令和所述第一指令满足第一预设合并条件,将所述第二指令和所述第一指令确定为所述待合并指令。
可选的,所述响应于所述第二指令和所述第一指令满足第一预设合并条件,将所述第二指令和所述第一指令确定为所述待合并指令,包括:
获取存储间隔,和/或,获取当前访问总数据量;其中,所述存储间隔指示所述第一指令的待访问地址与所述第二指令的待访问地址之间的距离;所述当前访问总数据量指示所有待合并指令对应的待访问数据量之和;
在所述存储间隔小于第一预设阈值,和/或,所述当前访问总数据量小于第二预设阈值的情况下,确定所述第二指令和所述第一指令为所述待合并指令。
可选的,所述方法还包括:
在所述当前访问总数据量大于或等于所述第二预设阈值的情况下,停止遍历所述第一指令以外的待处理指令。
可选的,所述方法还包括:
获取第一时长,并获取所述第一指令对应的第一时间阈值;其中,所述第一时长指示从确定获取第一指令开始,截止至当前时刻的时长;
响应于所述第一时长小于第一时间阈值,继续遍历所述第一指令以外的待处理指令;
响应于所述第一时长大于或等于所述第一时间阈值,停止遍历所述第一指令以外的待处理指令。
可选的,所述方法还包括:
获取所述第二指令的待访问地址与所述第一指令的待访问地址之间的差值;其中,所述待访问地址为逻辑地址;
获取预设存储单位大小;
根据所述差值和所述预设存储单位大小,得到所述存储间隔。
可选的,所述方法还包括:
获取第一指令;其中,所述第一指令为所述待处理指令中的任一指令;
遍历所述第一指令以外的待处理指令;
响应于当前遍历的待处理指令和所述第一指令满足第二预设合并条件,将所述当前遍历的待处理指令和所述第一指令确定为所述待合并指令。
可选的,所述方法还包括:
将所述待处理指令保存至预设指令队列中;
将所述预设指令队列中的满足以下至少一种条件的待处理指令作为所述第一指令:
所述待处理指令对应的第二时长大于第二时间阈值;其中,所述第二时长指示所述待处理指令在所述预设指令队列中的保存时长;
所述待处理指令处于预设指令队列中的设定位置;其中,所述设定位置为队首位置或队尾位置。
可选的,所述对所述多个待合并指令进行合并处理,得到合并指令,包括:
根据各个待合并指令的待访问地址,生成合并处理结果,并将所述合并处理结果以设定指令格式进行封装,得到所述合并指令。
可选的,所述方法还包括:
分别获取各个所述待合并指令对应的待访问数据量;
分别将各个所述待合并指令对应的待访问数据量添加至合并处理结果中。
根据本公开实施例的第二方面,提供了一种数据访问装置,应用于电子设备,所述装置包括:
指令获取模块,用于获取多个待处理指令;其中,每个所述待处理指令包括待访问地址;
指令合并模块,用于确定所述多个待处理指令中的待合并指令,并对所述待合并指令进行合并处理,得到合并指令;
指令发送模块,用于根据所述合并指令对应的待访问地址进行数据访问。
可选的,所述指令合并模块具体用于:
获取第一指令;其中,所述第一指令为所述待处理指令中的任一指令;
遍历所述第一指令以外的待处理指令,获得第二指令;其中,所述第二指令的待访问地址与所述第一指令的待访问地址为间接连续,且所述第二指令的待访问地址未通过其它待处理指令的待访问地址与所述第一指令的待访问地址连续;
响应于所述第二指令和所述第一指令满足第一预设合并条件,将所述第二指令和所述第一指令确定为所述待合并指令。
可选的,所述指令合并模块还用于:
获取存储间隔,和/或,获取当前访问总数据量;其中,所述存储间隔指示所述第一指令的待访问地址与所述第二指令的待访问地址之间的距离;其中,所述当前访问总数据量指示所有待合并指令对应的待访问数据量之和;
在所述存储间隔小于第一预设阈值,和/或,所述当前访问总数据量小于第二预设阈值的情况下,确定所述第二指令和所述第一指令为所述待合并指令。
可选的,所述指令合并模块还用于:
在所述当前访问总数据量大于或等于所述第二预设阈值的情况下,停止遍历所述第一指令以外的待处理指令。
可选的,所述指令合并模块还用于:
获取第一时长,并获取所述第一指令对应的第一时间阈值;其中,所述第一时长指示从确定获取第一指令开始,截止至当前时刻的时长;
响应于所述第一时长小于第一时间阈值,继续遍历所述第一指令以外的待处理指令;
响应于所述第一时长大于或等于所述第一时间阈值,停止遍历所述第一指令以外的待处理指令。
可选的,所述指令合并模块还用于:
获取所述第二指令的待访问地址与所述第一指令的待访问地址之间的差值;其中,所述待访问地址为逻辑地址;
获取预设存储单位大小;
根据所述差值和所述预设存储单位大小,得到所述存储间隔。
可选的,所述指令合并模块具体用于:
获取第一指令;其中,所述第一指令为所述待处理指令中的任一指令;
遍历所述第一指令以外的待处理指令;
响应于当前遍历的待处理指令和所述第一指令满足第二预设合并条件,将所述当前遍历的待处理指令和所述第一指令确定为所述待合并指令。
可选的,所述指令合并模块还用于:
将所述待处理指令保存至预设指令队列中;
将所述预设指令队列中的满足以下至少一种条件的待处理指令作为所述第一指令:
所述待处理指令对应的第二时长大于第二时间阈值;其中,所述第二时长指示所述待处理指令在所述预设指令队列中的保存时长;
所述待处理指令处于预设指令队列中的设定位置;其中,所述设定位置为队首位置或队尾位置。
可选的,所述指令合并模块具体用于:
根据各个待合并指令的待访问地址,生成合并处理结果,并将所述合并处理结果以设定指令格式进行封装,得到所述合并指令。
可选的,所述指令合并模块还用于:
分别获取各个所述待合并指令对应的待访问数据量;
分别将各个所述待合并指令对应的待访问数据量添加至合并处理结果中。
根据本公开实施例的第三方面,提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面任一所述数据访问方法的步骤。
根据本公开实施例的第四方面,提供了一种数据访问装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取多个待处理指令;其中,每个所述待处理指令包括待访问地址;
确定所述多个待处理指令中的待合并指令,并对所述待合并指令进行合并处理,得到合并指令;
根据所述合并指令对应的待访问地址进行数据访问。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现上述第一方面任一所述数据访问方法的步骤。
本公开实施例提供的技术方案可以包括以下有益效果:在得到多个待处理指令的情况下,确定多个待处理指令中的待合并指令,即确定可以进行合并的至少两个待处理指令,并对确定的待合并指令进行合并,得到合并指令,减少指令的数量,从而减少指令的开销。根据合并指令对应的待访问地址进行数据访问,使得可以基于一个指令可以访问多个待访问地址,即可以并发处理多个待处理指令,提高指令处理的效率,从而有效提高电子设备的性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开根据一示例性实施例示出的一种文件的位置布局的示意图;
图2是本公开根据一示例性实施例示出的一种数据访问方法流程图;
图3是本公开根据一示例性实施例示出的一种顺序读写过程的示意图;
图4是本公开根据一示例性实施例示出的另一种数据访问方法流程图;
图5是本公开根据一示例性实施例示出的一种随机读写过程的示意图;
图6是本公开根据一示例性实施例示出的另一种随机读写过程的示意图;
图7是本公开根据一示例性实施例示出的一种数据访问装置框图;
图8是本公开根据一示例性实施例示出的一种用于数据访问装置的一结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
现有技术中,获取电子设备上的进程产生的待处理指令,并将该待处理指令发送至基于JEDEC协议的存储器,该存储器处理该待处理指令,即对待处理指令的待访问地址进行访问。
其中,基于JEDEC协议的存储器,即存储芯片是以块为单位进行访问。如图1所示,数据在电子设备的文件系统(例如,F2FS(Flash Friendly File System))的存储单位为4KB,文件1的大小为24KB,可以将文件1的数据分别放置在LBA1至LBA6的位置上,地址1至6。
可选的,基于JEDEC协议的Nand flash存储器包括EMMC(Embedded Multi MediaCard)存储芯片、UFS(Universal Flash Storage)存储芯片。
然而,当待处理指令的数量为多个时,需要逐个将待处理指令发送至基于JEDEC协议的存储器,导致指令开销的增加,即增加了将相关指令发送至存储器所需占用的资源,且基于JEDEC协议的存储器仅能逐个处理待处理指令,降低指令处理的效率,从而影响电子设备的性能。
因此,针对上述问题,本公开实施例提出了一种数据访问方法,该方法通过在获取到多个待处理指令后,对待处理指令进行合并,以得到合并指令,该合并指令包括多个待处理指令的待访问地址。将合并指令发送至基于JEDEC协议的存储器,减少指令的开销。该基于JEDEC协议的存储器基于合并指令中的多个待访问地址进行访问,实现待处理指令的并发处理,提高指令处理的效率,从而提高电子设备的性能,即提高系统整体IO(Input/Output,输入/输出)性能。
如图2所示,图2是本公开根据一示例性实施例示出的一种数据访问方法流程图,该方法应用于电子设备,具体的,该方法应用于电子设备的处理器,该方法包括以下步骤:
S201、获取多个待处理指令。其中,每个待处理指令包括待访问地址。
S202、确定多个待处理指令中的待合并指令,并对待合并指令进行合并处理,得到合并指令。
在本公开实施例中,电子设备支持多任务并行处理,在运行过程中,电子设备的各个进程会同时产生各种数据读写操作请求,即待处理指令。在获取到进程产生的待处理指令,即多个待处理指令后,从多个待处理指令中确定可以进行合并的待处理指令,即将至少两个待处理指令作为待合并指令,并对待合并指令进行合并处理,即将多个指令合并为一个指令,并将合并得到的指令作为合并指令,该合并指令包括多个待访问地址,该多个待访问地址包括各个待合并指令的待访问地址。
其中,待处理指令包括待访问地址,即每个待处理指令都存在对应的待访问地址。该待访问地址表示需访问的数据地址,即需进行数据读写的地址。
可选的,待访问地址为逻辑地址。
S203、根据合并指令对应的待访问地址进行数据访问。
在本实施例中,基于合并指令中的各个待合并指令的待访问地址进行数据访问,即访问该合并指令中的各个待合并指令的待访问地址,以进行相应的数据读写操作,使得可以利用单个指令访问多个待处理指令的待访问地址,无需基于多个指令才能访问多个待访问地址,实现指令的并发处理,且提高数据访问的效率。
可选的,在基于合并指令进行数据访问时,可以利用存储器进行数据访问,即将合并指令发送至目标存储器,以使目标存储器基于合并指令中的各个待合并指令的待访问地址进行数据访问。
具体的,在得到合并指令后,将该合并指令发送至目标存储器。目标存储器执行该合并指令,即解析该合并指令,得到该合并指令中的多个待访问地址,并访问该合并指令中的多个待访问地址,以进行相应的数据读写操作,提高指令处理的效率,充分利用目标存储器的并发处理能力,提高目标存储器的并发性。
其中,目标存储器包括基于JEDEC协议的存储器,例如,Nand flash。具体的,目标存储器为EMMC(Embedded Multi Media Card)存储芯片、UFS(Universal Flash Storage)存储芯片等。
可选的,电子设备包括移动终端(例如,手机、平板电脑等)、终端设备(例如,电脑、服务器)等包括目标存储器的产品。
可以理解的是,目标存储器的访问方式包括随机访问(即随机读写),随机读写是指对存储器进行离散随机的地址访问。以目标存储器为Nand flash存储器为例,在得到进程产生的待处理指令后,对待处理指令进行缓存。在缓存的待处理指令的待访问地址不为相邻连续的地址的情况下,表明需采用随机访问的方式进行访问,采用多命令模式,即分别将待处理指令发送至Nand flash存储器中,即分别对Nand flash存储器进行访问,增加指令的开销,且Nand flash存储器每次仅能处理一条待处理指令,无法充分利用Nand flash存储器的并发处理能力,影响系统随机访问的吞吐量。举例来说,如图3所示,进程A生成指令1,该指令1中待访问地址为地址1(即图1中的地址1)。进程B生成指令2,该指令2中待访问地址为地址3(即图1中的地址3)。进程C生成指令3、该指令3中待访问地址为地址5(即图1中的地址5)。进程A、B、C访问图1中的文件1的逻辑地址1、3和5部分的数据。由于地址1、地址3和地址5是不是连续的,因此,无法对其进行合并,只能将指令1、指令2和指令3分别发送至Nand flash存储器。而本公开通过对待访问地址不连续的待处理指令进行合并处理,即将多个待处理指令合并得到一个指令,即得到合并指令,减少指令的开销。将该合并指令发送至Nand flash存储器,以使Nand flash存储器可以单次访问多个待访问地址,提高指令处理的效率。
从上述描述可知,在得到多个待处理指令的情况下,确定多个待处理指令中的待合并指令,即确定可以进行合并的至少两个待处理指令,并对确定的待合并指令进行合并,得到合并指令,减少指令的数量,从而减少指令的开销。根据合并指令对应的待访问地址进行数据访问,使得基于一个指令可以访问多个待处理指令的待访问地址,实现的指令的并发处理,提高指令处理的效率,从而有效提高电子设备的性能。
如图4所示,图4是本公开根据一示例性实施例示出的另一种数据访问方法流程图。在图2实施例的基础上,在进行随机访问的情况下,可以对待访问地址非连续的指令进行合并,下面将结合一个具体实施例对此过程进行描述,如图4所示,该方法包括以下步骤:
S401、获取多个待处理指令。其中,每个待处理指令包括待访问地址。
S402、获取第一指令。其中,第一指令为待处理指令中的任一指令。
在本公开实施例中,从获取到的待处理指令中选取一个待处理指令,将选取的待处理指令作为第一指令。
可选的,为了提高数据访问的效率,在得到待处理指令后,可以将待处理指令保存至预设指令队列中,以进行指令的缓存,从而便于对待处理指令进行合并。从保存待处理指令的预设指令队列中选取一个待处理指令作为第一指令,即确定第一指令。其中,确定第一指令的过程具体为:将待处理指令保存至预设指令队列中。将预设指令队列中的满足以下至少一种条件的待处理指令作为第一指令:待处理指令对应的第二时长大于第二时间阈值。其中,第二时长指示待处理指令在预设指令队列中的保存时长。待处理指令处于预设指令队列中的设定位置。其中,设定位置为队首位置或队尾位置。
其中,预设指令队列中的待处理指令可以是基于预设地址排序规则排列的。该预设地址排序规则包括地址由大到小排序规则(即预设指令队列中的待访问指令的待访问地址是由大到小排列的)、地址由小到大排序规则(即预设指令队列中的待访问指令的待访问地址是由小到大排列的)等。
可选的,当满足条件的待处理指令的数目为多个时,可以将第二时长最长的待处理指令作为第一指令,该第二时长指示待处理指令在预设指令队列中的保存时长。其中,逻辑地址是有序命名的,例如,目标存储器内有1000个存储块,按照1-1000为该1000个存储块进行命名,相应的,逻辑地址为1-1000。由于待访问地址为逻辑地址,因此,可以根据待访问地址的大小对待访问地址进行排序,从而基于待访问地址的顺序,对待处理指令进行排序。
可选的,设定位置也可以为其它位置,在此,不再对其进行限制。
可选的,从预设指令队列中确定第一指令利用的条件还可以包括其它条件,例如,待处理指令对应的第二时长最长,即可以将在预设指令队列中保存时间最长的待处理指令作为第一指令。
可选的,在得到待处理指令后,可以先对该待处理指令进行相关处理(例如,判断指令格式是否规范、存储器是否空闲的等),并将处理后的待处理指令保存至预设指令队列中。
S403、遍历第一指令以外的待处理指令,获得第二指令。其中,第二指令的待访问地址与第一指令的待访问地址为间接连续,且第二指令的待访问地址未通过其它待处理指令的待访问地址与第一指令的待访问地址连续。
在本公开实施例中,遍历预设指令队列中的除第一指令以外的待处理指令,以确定该以外的待处理指令中是否存在第一指令对应的地址非连续的第二指令,从而在确定存在第二指令时,基于第二指令确定待合并指令,即将第一指令和第二指令确定为待合并指令。例如,第一指令为预设指令队列中处于队首位置的指令,遍历该预设指令队列其它位置上的指令,以确定预设指令队列中的其它位置上的指令是否存在第二指令。
其中,第二指令的待访问地址与第一指令的待访问地址为间接连续,且第二指令的待访问地址未通过其它待处理指令的待访问地址与第一指令的待访问地址连续。
其中,间接连续指示第二指令的待访问地址通过其它逻辑地址与第一指令的待访问地址连续,即第二指令的待访问地址与第一指令的待访问地址非连续。例如,当前遍历的待处理指令的待访问地址为4,第一指令的待访问地址为1,当前遍历的待处理指令的待访问地址需要通过其它逻辑地址(即逻辑地址2和3)与第一指令的待访问地址连续,则确定当前遍历的待处理指令的待访问地址与第一指令的待访问地址为间接连续。
其中,若当前遍历的待处理指令的待访问地址为2,且第一指令的待访问地址为1,则确定当前遍历的待处理指令的待访问地址与第一指令的待访问地址连续。
在本公开实施例中,在遍历第一指令以外的待处理指令的过程中,确定当前遍历的待处理指令的待访问地址与第一指令的待访问地址是否间接连续,若当前遍历的待处理指令的待访问地址不与第一指令的待访问地址间接连续,表明当前遍历的待处理指令的待访问地址与第一指令的待访问地址连续,则确定当前遍历的待处理指令为第一指令对应的顺序访问指令,即不为第二指令。若当前遍历的待处理指令的待访问地址与第一指令的待访问地址间接连续,则判断当前遍历的待处理指令的待访问地址是否通过其它待处理指令的待访问地址与第一指令的待访问地址连续,若当前遍历的待处理指令的待访问地址通过其它待处理指令的待访问地址与第一指令的待访问地址连续,则确定当前遍历的待处理指令不为第二指令,若当前遍历的待处理指令的待访问地址没有通过其它待处理指令的待访问地址与第一指令的待访问地址连续,则确定当前遍历的待处理指令为第二指令。例如,待处理指令包括指令1、指令2和指令3。指令1的待访问地址为1,指令2的待访问地址为2,指令3的待访问地址为3。指令3为当前遍历的待处理指令,指令1为第一指令。确定指令3的待访问地址与指令1的待访问地址非连续,即间接连续,继续确定指令3的待访问地址是否通过其它待处理指令的待访问地址与指令1的待访问地址连续。由于指令3的待访问地址通过指令2的待访问地址与指令1的待访问地址连续,则确定指令3不为第二指令。
可选的,当待处理指令是基于预设地址排序规则排列时,在遍历第一指令以外的待处理指令的过程,确定当前遍历的待处理指令的待访问地址与第一指令的待访问地址是否连续,若当前遍历的待处理指令的待访问地址与第一指令的待访问地址连续,则确定当前遍历的待处理指令为第一指令对应的顺序访问指令,即不为第二指令;若当前遍历的待处理指令的待访问地址与第一指令的待访问地址不连续,则继续判断当前遍历的待处理指令对应的待访问地址与上一个遍历的待处理指令的待访问地址是否连续。若当前遍历的待处理指令对应的待访问地址与上一个遍历的待处理指令的待访问地址连续,则在上一个遍历的待处理指令的待访问地址与第一指令的待访问地址连续或者通过已遍历的待处理指令的待访问地址与第一指令的待访问地址连续的情况下,确定当前遍历的待处理指令为第一指令对应的顺序访问数据指令,即不为第二指令;若当前遍历的待处理指令对应的待访问地址与上一个遍历的待处理指令的待访问地址不连续,则确定当前遍历的待处理指令为第二指令。
可选的,目标存储器对应的访问方式还包括顺序访问(即顺序读写)。其中,顺序访问是指对存储器进行连续的地址访问;随机读写是指对存储器进行离散随机的地址访问。在确定预设指令队列中的除第一指令以外的待处理指令均不为第二指令时,表明该以外的待处理指令均为第一指令的顺序访问指令,即表明以外的待处理指令的待访问地址与第一指令的待访问地址可以进行顺序访问,则可以按照顺序访问规则,将该第一指令以及待访问地址与第一指令的待访问地址连续的待处理指令作为待合并指令,并对待合并指令进行合并处理,得到合并指令。根据该合并指令中的各个待合并指令的待访问地址进行数据访问。
其中,按照顺序访问规则可以根据实际需求进行定义,例如,将全部或部分除第一指令以外的待处理指令作为待合并指令。
具体的,为了提高对数据读写访问的效率,可以将各个进程生成的待处理指令缓存。以目标存储器为Nand flash存储器为例,在缓存的待处理指令的待访问地址为相邻连续的地址的情况下,表明可以采用顺序访问的方式进行访问,则可以对连续相邻的地址,即待处理指令进行合并,以使Nand flash存储器基于合并后的待处理指令,即合并后的地址进行顺序访问,从而最大程度的使用少量指令,保证每次的指令与前后的条指令所访问的地址连续,提高存储器处理数据的并发性,并减少指令开销。举例来说,如图5所示,进程A生成指令1、该指令1中待访问地址为地址1(即图1中的地址1),进程B生成指令2、该指令2中待访问地址为地址2(即图1中的地址2),进程C生成指令3、该指令3中待访问地址为地址3(即图1中的地址3)。进程A、B、C访问图1中的文件1的逻辑地址1、2和3部分的数据。由于地址1、地址2和地址3是相邻连续的,因此,可以将指令1、指令2和指令3进行合并,得到包括地址1、地址2和地址3的指令,即request A,将该request A发送至Nand flash存储器,以使Nandflash存储器基于request A进行顺序访问。
S404、响应于第二指令和第一指令满足第一预设合并条件,将第二指令和第一指令确定为待合并指令。
在本公开实施例中,在确定当前遍历的待处理指令为第二指令时,继续判断该第二指令是否为待合并指令,即判断该第二指令和第一指令是否满足第一预设合并条件。在第二指令和第一指令满足第一预设合并条件的情况下,表明可以将该第二指令,即当前遍历的待处理指令与第一指令进行合并,即可以进行并发访问,则将该第二指令和该第一指令作为待合并指令,并继续遍历第一指令以外的待处理指令,即遍历下一个第一指令以外的待处理指令,以确定下一个待处理指令是否第二指令。
响应于第二指令和第一指令不满足第一预设合并条件,继续遍历第一指令以外的待处理指令,以确定下一个待处理指令是否为第二指令。
可选的,在继续遍历第一指令以外的待处理指令的情况下,需要先确定第一指令缓存的时间是否超过第一指令可以等待执行的时间,即获取第一时长,并获取第一指令对应的第一时间阈值。其中,第一时长指示从确定获取第一指令开始,截止至当前时刻的时长。响应于第一时长小于第一时间阈值,表明还未超过指令可以等待执行的时间,即还未超过指令可以缓存的时间,则继续遍历第一指令以外的待处理指令。响应于第一时长大于或等于第一时间阈值,表明已经超过指令缓存的时间,即已经超过指令可以等待执行的时间,则停止遍历第一指令以外的待处理指令,从而对在遍历过程中所确定的待合并指令进行合并。
其中,第一时间阈值指示指令执行等待时间上限。第一时间阈值可以基于进程对应的相关应用对于实时性要求设置的,其表示指令执行等待时间上限,即指示指令可以缓存的最长时间。
具体的,由于不同进程对实时性要求不同,因此,可以根据第一指令所对应的进程确定第一时间阈值,即在获取第一指令对应的第一时间阈值的情况下,可以获取第一指令对应的目标进程,即产生该第一指令的进程,并确定该目标进程对应的进程类型(例如,视频应用类型、记事本应用类型)。将该进程类型对应的时间阈值作为该第一指令对应的第一时间阈值。
可选的,响应于第二指令和第一指令满足第一预设合并条件,将第二指令和第一指令确定为待合并指令,包括:
获取存储间隔,和/或,获取当前访问总数据量。其中,存储间隔指示第一指令的待访问地址与第二指令的待访问地址之间的距离。当前访问总数据量指示已确定的所有待合并指令对应的待访问数据量之和。
在存储间隔小于第一预设阈值,和/或,当前访问总数据量小于第二预设阈值的情况下,确定第二指令和第一指令为待合并指令。
以第一预设合并条件包括存储间隔小于第一预设阈值为例。获取存储间隔。判断存储间隔是否小于第一预设阈值。响应于存储间隔小于第一预设阈值,表明可以并发访问当前遍历的待处理指令,即确定该第二指令和该第一指令为待合并指令。响应于存储间隔大于或等于第一预设阈值,表明无法并发访问当前遍历的待处理指令,则确定该第二指令不为待合并指令,无法和第一指令进行合并。
以第一预设合并条件为当前访问总数据量小于第二预设阈值为例,获取当前访问总数据量。判断当前访问总数据量是否小于第二预设阈值。响应于当前访问总数据量小于第二预设阈值,表明可以并发访问当前遍历的待处理指令,则确定该第二指令和该第一指令为待合并指令。响应于当前访问总数据量大于或等于第二预设阈值,表明无法并发访问当前遍历的待处理指令,则确定该第二指令不为待合并指令。
以第一预设合并条件包括存储间隔小于第一预设阈值和当前访问总数据量小于第二预设阈值为例,获取存储间隔和当前访问总数据量。判断存储间隔是否小于第一预设阈值,以及判断当前访问总数据量是否小于第二预设阈值。响应于存储间隔小于第一预设阈值和当前访问总数据量小于第二预设阈值,表明可以并发访问当前遍历的待处理指令,即得到第二指令,则确定该第二指令和该第一指令为待合并指令。响应于存储间隔大于或等于第一预设阈值,和/或,当前访问总数据量大于或等于第二预设阈值,表明无法并发访问当前遍历的待处理指令,则确定该第二指令不为待合并指令。
其中,第一预设阈值指示合并地址的距离上限,该合并地址表示合并的两个逻辑地址之间的差距。第一预设阈值是基于存储器中的缓存大小确定的,尽量保证每次访问的数据能够由目标存储器一次性并发处理。具体的,该第一预设阈值可以是由目标存储器对应的供应商提供的,例如,第一预设阈值为300M,表明目标存储器可以一次性将300M大小的数据进行缓存,从而可以从缓存的数据中访问相应的地址。
其中,第二预设阈值指示单次访问数据量的上限,即表示单次并发访问的最大数据量。第二预设阈值需要参考目标存储器的硬件支持,其可以是由目标存储器对应的供应商提供的,例如,第二预设阈值为128K。
可选的,在获取存储间隔之前,需要计算存储间隔,该存储间隔的计算过程为:获取第二指令的待访问地址与第一指令的待访问地址之间的差值。其中,待访问地址为逻辑地址。获取预设存储单位大小。根据差值和预设存储单位大小,即计算差值与预设存储单位大小的乘积,得到存储间隔。例如,第二指令的待访问地址为3,第一指令的待访问地址为1,预设存储单位大小为4KB,则存储间隔为(3-1)*4KB=8KB。
其中,由于目标存储器是以块,即存储块为单位访问的,该预设存储单位大小存储块的大小,例如,4KB。
可选的,在获取当前访问总数据量之前,需要计算当前访问总数据量,该当前访问总数据量的计算过程为:计算已确定的各个待合并指令(即第一指令和第二指令)对应的待访问数据量之和,得到当前访问总数据量。
其中,待访问数据量表示待访问地址对应的地址长度,其可以表示需访问的数据大小,例如,从待访问地址开始写入大小为24KB的数据,该24KB可以为待访问数据量,当然,待访问数据量也可以表示地址偏移量,只需通过该待访问数据量可以确定需访问的数据量即可。
其中,待访问数据量可以是从待处理指令中获取的,即待处理指令包括待访问数据量,也可以是独立获取的,在此,不对其进行限定。
举例来说,第一指令为指令1,除第一指令以外的待处理指令包括指令2和指令3,确定指令2为待合并指令后,确定指令3是否为第二指令。在指令3为第二指令的情况下,计算存储间隔,并计算当前访问总数据量。在计算当前访问总数据量时,计算已确定的待合并指令对应的待访问数据量之和,即计算指令2对应的待访问数据量以及指令1对应的待访问数据量之和,得到当前访问总数据量。
可选的,在将满足第一预设合并条件的第一指令和第二指令合并的情况下,可以仅将满足第一预设合并条件的第一指令和第二指令进行合并,也可以将处于满足第一预设合并条件的第一指令和第二指令之间的顺序访问指令进行合并。相应的,已确定的待合并指令还包括已合并的顺序访问指令。
举例来说,第一指令为指令1,第一指令以外的待处理指令包括指令2和、指令3,指令1中的待访问地址为图1中的地址1,指令2中的待访问地址为图1中的地址2和指令3中的待访问地址为图1中的地址4。遍历第一指令以外的待处理指令,当前遍历的待处理指令为指令2,确定该指令2为指令1对应的顺序访问指令,即指令2中的待访问地址与指令1连续,则遍历下一个待处理指令,即指令3,确定该指令3为第二指令。在计算当前访问总数据量的过程中,由于指令2的待访问地址在指令1的待访问地址和指令3的待访问地址之间,因此,已确定的待合并指令包括指令2和指令1,当前访问总数据量为指令2对应的待访问数据量与指令1对应的待访问数据量之和。
可选的,在当前访问总数据量大于或等于第二预设阈值的情况下,表明目标存储器在基于已确定的待合并指令进行单次访问时,所需访问的数据量已经达到上限,因此,无需再合并指令,即无需再确定待合并指令,则停止遍历第一指令以外的待处理指令。
可选的,在从待处理指令中确定待合并指令时,还可以获取第一指令。其中,第一指令为待处理指令中的任一指令。遍历第一指令以外的待处理指令。判断当前遍历的待处理指令和第一指令是否满足第二预设合并条件,响应于当前遍历的待处理指令和所述第一指令满足第二预设合并条件,将第一指令和当前遍历的待处理指令确定为待合并指令。
其中,判断第一指令和当前遍历的待处理指令是否符合第二预设合并条件的过程与上述判断第一指令和第二指令是否符合第一预设合并条件的过程类似,在此,不再对其进行赘述。
S405、对待合并指令进行合并处理,得到合并指令。
在本公开实施例中,根据各个待合并指令的待访问地址,生成合并处理结果,并将合并处理结果以设定指令格式进行封装,得到合并指令。
在本公开实施例中,在确定待合并指令后,根据各个待合并指令的待访问地址,生成合并处理结果,该合并处理结果包括各个待合并指令的待访问地址。基于设定指令格式,对该合并处理结果进行封装,得到合并指令,以实现指令的合并。
其中,在根据各个待合并指令的待访问地址,生成合并处理结果的过程中,可以基于预设结构类型,生成包括各个待合并指令的待访问地址的合并处理结果。
其中,预设结构类型包括链表结构类型、树结构类型、数组结构类型等,用户可以根据实际需求进行设置,在此,不对其进行限制。
可选的,设定指令格式为目标存储器能够识别的格式,例如,JDECE中规定的客制化Write Buffer命令格式。
可选的,还可以将待合并指令对应的待访问数据量保存至合并处理结果中,即分别获取各个待合并指令对应的待访问数据量。分别将各个待合并指令对应的待访问数据量添加至合并处理结果中,也即该合并处理结果包括待合并指令对应的待访问数据量以及待访问地址。
以一个具体应用场景为例,如图6所示,进程A、B和C需访问文件的逻辑地址1、3、5部分的数据,则产生指令1、指令2以及指令3。指令1的待访问地址为地址1,指令1对应的待访问数据量为地址1长度;指令2的待访问地址为地址3,指令2对应的待访问数据量为地址3长度;指令3的待访问地址为地址5,指令3对应的待访问数据量为地址5长度;指令1为第一指令,指令2和指令3均为第二指令,且确定指令2和指令3均为待合并指令,则将指令1对应的地址1及地址1长度、指令2对应的地址3及地址3长度以及指令3对应的地址5以及地址5长度添加至列表A中,实现指令的合并。
S406、根据合并指令对应的待访问地址进行数据访问。
在本实施例中,在得到合并指令后,将合并指令发送至目标存储器,以使目标存储器基于合并指令中的各个待合并指令的待访问地址进行数据访问。
在本公开实施例中,在随机读写场景中,即在确定除第一指令以外的待处理指令中存在第二指令的情况下,将第一指令与涉及离散访问的第二指令进行合并处理,得到合并指令,并将该合并指令存储至目标存储设备,减少发送至目标存储器的指令的数量,从而降低随机读写的指令开销,且目标存储器可以基于该合并指令中的多个待访问地址进行访问,提高目标存储器的并发性,进而可以提高系统随机读写的吞吐量,即提高系统整体IO性能。
在本公开实施例中,在确定除第一指令以外的待处理指令中不存在第二指令的情况下,即在顺序读写场景中,对可以进行顺序读写的指令,即待处理指令进行合并,得到合并指令,并将该合并指令发送至目标存储器,减少发送至目标存储器的指令的数量,从而降低顺序读写的指令开销,且目标存储器可以基于该合并指令中的多个待访问地址进行顺序访问,提高存储器处理数据的并发性,并减少系统的指令开销,有效提高系统整体IO性能。
在本公开实施例中,在获取待访问指令后,将待访问指令保存至预设指令队列中,将预设指令队列中的处于队首位置的待访问指令作为第一指令,并向后遍历预设指令队列中的剩余待访问指令。判断剩余待访问指令中是否存在待访问地址不连续的第二指令,若存在,表明需进行随机访问,则对第二指令和第一指令进行合并,以得到相应的合并指令,减少指令的数量,从而减少指令的开销。将该合并指令存储至Nand flash存储器,以使Nandflash存储器可以单次访问合并指令中的各个待访问地址,实现指令的并发处理,提高指令处理的效率,从而有效提高随机访问的吞吐量,即提高系统整体IO性能。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。
其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
与前述应用功能实现方法实施例相对应,本公开还提供了应用功能实现装置及相应的终端的实施例。
参照图7根据一示例性实施例示出的一种数据访问装置框图,所述装置可以包括:
指令获取模块710,用于获取多个待处理指令。其中,每个待处理指令包括待访问地址。
指令合并模块720,用于确定多个待处理指令中的待合并指令,并对待合并指令进行合并处理,得到合并指令。
指令发送模块730,用于根据合并指令对应的待访问地址进行数据访问。
可选的,指令合并模块720具体用于:
获取第一指令。其中,第一指令为待处理指令中的任一指令。
遍历第一指令以外的待处理指令,获得第二指令。其中,第二指令的待访问地址与第一指令的待访问地址为间接连续,且第二指令的待访问地址未通过其它待处理指令的待访问地址与第一指令的待访问地址连续。
响应于第二指令和第一指令满足第一预设合并条件,将第二指令和第一指令确定为待合并指令。
可选的,指令合并模块720还具体用于:
获取存储间隔,和/或,获取当前访问总数据量。其中,存储间隔指示第一指令的待访问地址与第二指令的待访问地址之间的距离。当前访问总数据量指示所有待合并指令对应的待访问数据量之和。
在存储间隔小于第一预设阈值,和/或,当前访问总数据量小于第二预设阈值的情况下,确定第二指令和第一指令为待合并指令。
可选的,指令合并模块720还用于:
获取第一时长,并获取第一指令对应的第一时间阈值。其中,第一时长指示从确定获取第一指令开始,截止至当前时刻的时长。
响应于第一时长小于第一时间阈值,继续遍历第一指令以外的待处理指令。
响应于第一时长大于或等于第一时间阈值,停止遍历第一指令以外的待处理指令。
可选的,指令合并模块720还用于:
在当前访问总数据量大于或等于第二预设阈值的情况下,停止遍历第一指令以外的待处理指令。
可选的,指令合并模块720还用于:
获取第二指令的待访问地址与第一指令的待访问地址之间的差值。其中,待访问地址为逻辑地址
获取预设存储单位大小。
根据差值和预设存储单位大小,得到存储间隔。
可选的,指令合并模块720具体用于:
获取第一指令。其中,第一指令为待处理指令中的任一指令。
遍历第一指令以外的待处理指令。
响应于当前遍历的待处理指令和所述第一指令满足第二预设合并条件,将第一指令和当前遍历的待处理指令确定为待合并指令。
可选的,指令合并模块720还用于:
将待处理指令保存至预设指令队列中。
将预设指令队列中的满足以下至少一种条件的待处理指令作为第一指令:
待处理指令对应的第二时长大于第二时间阈值。其中,第二时长指示待处理指令在预设指令队列中的保存时长。
待处理指令处于预设指令队列中的设定位置。其中,设定位置为队首位置或队尾位置。
可选的,指令合并模块720具体用于:
根据各个待合并指令的待访问地址,生成合并处理结果,并将合并处理结果以设定指令格式进行封装,得到合并指令。
可选的,指令合并模块720还用于:
分别获取各个待合并指令对应的待访问数据量。
分别将各个待合并指令对应的待访问数据量添加至合并处理结果中。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,一方面,本公开实施例提供了一种数据访问装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,上述处理器被配置为:
获取多个待处理指令。其中,每个待处理指令包括待访问地址。
确定多个待处理指令中的待合并指令,并对待合并指令进行合并处理,得到合并指令。
根据合并指令对应的待访问地址进行数据访问。
图8是根据一示例性实施例示出的一种数据访问装置1500的结构示意图。例如,装置800可以是电子设备,可以具体为移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理,可穿戴设备如智能手表、智能眼镜、智能手环、智能跑鞋等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在上述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。上述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与上述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如上述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,4GLTE、5G NR或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,上述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,例如包括指令的存储器804,当存储介质中的指令由装置800的处理器820执行时,使得装置800能够执行数据访问的方法,该方法包括:
获取多个待处理指令;其中,每个待处理指令包括待访问地址;
确定多个待处理指令中的待合并指令,并对待合并指令进行合并处理,得到合并指令;
根据合并指令对应的待访问地址进行数据访问。
所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现上述方法的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (15)

1.一种数据访问方法,其特征在于,应用于电子设备,所述方法包括:
获取多个待处理指令;其中,每个所述待处理指令包括待访问地址;
确定所述多个待处理指令中的待合并指令,并对所述待合并指令进行合并处理,得到合并指令;
根据所述合并指令对应的待访问地址进行数据访问。
2.根据权利要求1所述的方法,其特征在于,所述确定所述多个待处理指令中的待合并指令,包括:
获取第一指令;其中,所述第一指令为所述待处理指令中的任一指令;
遍历所述第一指令以外的待处理指令,获得第二指令;其中,所述第二指令的待访问地址与所述第一指令的待访问地址为间接连续,且所述第二指令的待访问地址未通过其它待处理指令的待访问地址与所述第一指令的待访问地址连续;
响应于所述第二指令和所述第一指令满足第一预设合并条件,将所述第二指令和所述第一指令确定为所述待合并指令。
3.根据权利要求2所述的方法,其特征在于,所述响应于所述第二指令和所述第一指令满足第一预设合并条件,将所述第二指令和所述第一指令确定为所述待合并指令,包括:
获取存储间隔,和/或,获取当前访问总数据量;其中,所述存储间隔指示所述第一指令的待访问地址与所述第二指令的待访问地址之间的距离;所述当前访问总数据量指示所有待合并指令对应的待访问数据量之和;
在所述存储间隔小于第一预设阈值,和/或,所述当前访问总数据量小于第二预设阈值的情况下,确定所述第二指令和所述第一指令为所述待合并指令。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述当前访问总数据量大于或等于所述第二预设阈值的情况下,停止遍历所述第一指令以外的待处理指令。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取第一时长,并获取所述第一指令对应的第一时间阈值;其中,所述第一时长指示从确定获取第一指令开始,截止至当前时刻的时长;
响应于所述第一时长小于第一时间阈值,继续遍历所述第一指令以外的待处理指令;
响应于所述第一时长大于或等于所述第一时间阈值,停止遍历所述第一指令以外的待处理指令。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述第二指令的待访问地址与所述第一指令的待访问地址之间的差值;其中,所述待访问地址为逻辑地址;
获取预设存储单位大小;
根据所述差值和所述预设存储单位大小,得到所述存储间隔。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取第一指令;其中,所述第一指令为所述待处理指令中的任一指令;
遍历所述第一指令以外的待处理指令;
响应于当前遍历的待处理指令和所述第一指令满足第二预设合并条件,将所述当前遍历的待处理指令和所述第一指令确定为所述待合并指令。
8.根据权利要求2至7中任一项所述的方法,其特征在于,所述方法还包括:
将所述待处理指令保存至预设指令队列中;
将所述预设指令队列中的满足以下至少一种条件的待处理指令作为所述第一指令:
所述待处理指令对应的第二时长大于第二时间阈值;其中,所述第二时长指示所述待处理指令在所述预设指令队列中的保存时长;
所述待处理指令处于预设指令队列中的设定位置;其中,所述设定位置为队首位置或队尾位置。
9.根据权利要求1所述的方法,其特征在于,所述对所述多个待合并指令进行合并处理,得到合并指令,包括:
根据各个待合并指令的待访问地址,生成合并处理结果,并将所述合并处理结果以设定指令格式进行封装,得到所述合并指令。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取各个所述待合并指令对应的待访问数据量;
将各个所述待合并指令对应的待访问数据量添加至所述合并处理结果中。
11.一种数据访问装置,其特征在于,应用于电子设备,所述装置包括:
指令获取模块,用于获取多个待处理指令;其中,每个所述待处理指令包括待访问地址;
指令合并模块,用于确定所述多个待处理指令中的待合并指令,并对所述待合并指令进行合并处理,得到合并指令;
指令发送模块,用于根据所述合并指令对应的待访问地址进行数据访问。
12.根据权利要求11所述的装置,其特征在于,所述指令发送模块具体用于:
获取第一指令;其中,所述第一指令为所述待处理指令中的任一指令;
遍历所述第一指令以外的待处理指令,获得第二指令;其中,所述第二指令的待访问地址与所述第一指令的待访问地址为间接连续,且所述第二指令的待访问地址未通过其它待处理指令的待访问地址与所述第一指令的待访问地址连续;
响应于所述第二指令和所述第一指令满足第一预设合并条件,将所述第二指令和所述第一指令确定为所述待合并指令。
13.根据权利要求12所述的装置,其特征在于,所述指令发送模块还用于:
获取存储间隔,和/或,获取当前访问总数据量;其中,所述存储间隔指示所述第一指令的待访问地址与所述第二指令的待访问地址之间的距离;所述当前访问总数据量指示所有待合并指令对应的待访问数据量之和;
在所述存储间隔小于第一预设阈值,和/或,所述当前访问总数据量小于第二预设阈值的情况下,确定所述第二指令和所述第一指令为所述待合并指令。
14.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至10任一项所述的数据访问方法的步骤。
15.一种数据访问装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取多个待处理指令;其中,每个所述待处理指令包括待访问地址;
确定所述多个待处理指令中的待合并指令,并对所述待合并指令进行合并处理,得到合并指令;
根据所述合并指令对应的待访问地址进行数据访问。
CN202111543913.4A 2021-12-16 2021-12-16 数据访问方法、装置及非临时性计算机可读存储介质 Pending CN114416178A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111543913.4A CN114416178A (zh) 2021-12-16 2021-12-16 数据访问方法、装置及非临时性计算机可读存储介质
PCT/CN2022/090331 WO2023108989A1 (zh) 2021-12-16 2022-04-29 数据访问方法、装置及非临时性计算机可读存储介质
KR1020237044059A KR20240010042A (ko) 2021-12-16 2022-04-29 데이터 액세스 방법, 장치 및 비일시적 컴퓨터 판독가능한 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111543913.4A CN114416178A (zh) 2021-12-16 2021-12-16 数据访问方法、装置及非临时性计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114416178A true CN114416178A (zh) 2022-04-29

Family

ID=81266994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111543913.4A Pending CN114416178A (zh) 2021-12-16 2021-12-16 数据访问方法、装置及非临时性计算机可读存储介质

Country Status (3)

Country Link
KR (1) KR20240010042A (zh)
CN (1) CN114416178A (zh)
WO (1) WO2023108989A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117539407A (zh) * 2024-01-04 2024-02-09 浙江大华技术股份有限公司 数据存储方法、电子设备及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991098A (ja) * 1995-09-27 1997-04-04 Nec Software Ltd デバイスドライバアクセス方式
US8135924B2 (en) * 2009-01-14 2012-03-13 International Business Machines Corporation Data storage device driver
US8055816B2 (en) * 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
TWI685744B (zh) * 2018-09-06 2020-02-21 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器
CN110187835B (zh) * 2019-05-24 2023-02-03 北京百度网讯科技有限公司 用于管理访问请求的方法、装置、设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117539407A (zh) * 2024-01-04 2024-02-09 浙江大华技术股份有限公司 数据存储方法、电子设备及计算机可读存储介质
CN117539407B (zh) * 2024-01-04 2024-03-29 浙江大华技术股份有限公司 数据存储方法、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
WO2023108989A1 (zh) 2023-06-22
KR20240010042A (ko) 2024-01-23

Similar Documents

Publication Publication Date Title
US9135177B2 (en) Scheme to escalate requests with address conflicts
US11138034B2 (en) Method and apparatus for collecting information, and method and apparatus for releasing memory
US11449242B2 (en) Shared storage space access method, device and system and storage medium
US20150143045A1 (en) Cache control apparatus and method
CN112445725A (zh) 预读取文件页的方法、装置和终端设备
CN108292162A (zh) 用于多线程访问的软件定义fifo缓冲器
US9529727B2 (en) Reconfigurable fetch pipeline
CN114546897A (zh) 内存访问方法、装置、电子设备及存储介质
CN114416178A (zh) 数据访问方法、装置及非临时性计算机可读存储介质
CN114428797A (zh) 嵌入参数缓存的方法、装置、设备及存储介质
CN112948440A (zh) 页面数据的处理方法及装置、终端、存储介质
CN115145735B (zh) 一种内存分配方法、装置和可读存储介质
CN111444117A (zh) 存储空间碎片化实现方法、装置、存储介质及电子设备
WO2021218502A1 (zh) 一种页交换的方法、存储系统和电子设备
CN116360671A (zh) 存储方法、装置、终端及存储介质
CN114428589A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN113485642A (zh) 数据缓存方法及装置
KR20220033976A (ko) 저장 디바이스들에 대한 강화된 선판독 능력
CN114610656A (zh) 一种数据替换方法、装置、电子设备及存储介质
CN110008135B (zh) 一种信息处理方法、装置及电子设备
CN111459852B (zh) 缓存控制方法和装置以及电子设备
CN112965920A (zh) 内存管理方法、装置、电子设备以及存储介质
CN110727405A (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN111414130B (zh) 计算节点系统及其数据获取方法以及电子设备
CN117827709B (zh) 直接内存访问的实现方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination