[go: up one dir, main page]

CN111208933A - 数据访问的方法、装置、设备和存储介质 - Google Patents

数据访问的方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN111208933A
CN111208933A CN201811391728.6A CN201811391728A CN111208933A CN 111208933 A CN111208933 A CN 111208933A CN 201811391728 A CN201811391728 A CN 201811391728A CN 111208933 A CN111208933 A CN 111208933A
Authority
CN
China
Prior art keywords
access request
data
size
buffer
storage device
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.)
Granted
Application number
CN201811391728.6A
Other languages
English (en)
Other versions
CN111208933B (zh
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.)
Kunlun Xing (Beijing) Science and Technology Co., Ltd.
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201811391728.6A priority Critical patent/CN111208933B/zh
Priority to KR1020190134312A priority patent/KR102287677B1/ko
Priority to EP19208851.6A priority patent/EP3660651A1/en
Priority to JP2019209717A priority patent/JP7088897B2/ja
Priority to US16/689,479 priority patent/US11650754B2/en
Publication of CN111208933A publication Critical patent/CN111208933A/zh
Application granted granted Critical
Publication of CN111208933B publication Critical patent/CN111208933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0062Bandwidth consumption reduction during transfers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

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

Description

数据访问的方法、装置、设备和存储介质
技术领域
本公开的实施例主要涉及数据存储领域,并且更具体地,涉及用于数据访问的方法、装置、设备和计算机可读存储介质。
背景技术
随着技术的发展,软硬件协同设计已经开始在各个不同的领域应用。不同于传统的纯软件设计和纯硬件设计,软硬件协同设计基友软件可编程的灵活性,又能利用硬件的并行处理和流水线处理来提高数处理效率。
在软硬件协同系统中,可能存在多个协处理器,并且部分协处理器在工作过程中可能同时访问同一个存储设备,因此,如何提高存储设备的访问效率已经成为关注的一个焦点。
发明内容
根据本公开的示例实施例,提供了一种用于数据访问的方案。
在本公开的第一方面中,提供了一种用于数据访问的方法。该方法包括获取针对存储设备的第一访问请求和第二访问请求;将与第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,缓冲区具有与存储设备的单个物理存储块相同的大小;确定与第二访问请求相关联的第二数据的第一大小是否小于缓冲区的可用空间的第二大小;响应于确定第一大小不小于第二大小,确定第二数据中的第一部分,第一部分具有与可用空间相同的大小;以及向与第一访问请求和第二访问请求相关联的目标设备提供第一数据和第一部分。
在本公开的第二方面中,提供了一种用于数据访问的装置。该装置包括获取模块,被配置为获取针对存储设备的第一访问请求和第二访问请求;第一加载模块,被配置为将与第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,缓冲区具有与存储设备的单个物理存储块相同的大小;第一确定模块,被配置为确定与第二访问请求相关联的第二数据的第一大小是否小于缓冲区的可用空间的第二大小;第二确定模块,被配置为响应于确定第一大小不小于第二大小,确定第二数据中的第一部分,第一部分具有与可用空间相同的大小;以及第一提供模块,被配置为向与第一访问请求和第二访问请求相关联的目标设备提供第一数据和第一部分。
在本公开的第三方面中,提供了一种设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第一方面的方法。
在本公开的第四方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图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可以包括解码器212以及数据处理器214。在一些实施例中,协处理器210例如可以从嵌入式处理器接收访问指令。在一些实施例中,该访问指令可以显式地包括需要访问的数据的起始地址,数据的类型和数据的长度等。在接收到该指令后,协处理器210可以利用解码器212对所接收到的指令进行解码,从而将指令中针对文件系统地址的访问请求转换为针对存储设备230的物理地址的多个访问请求。
在一些实施例中,数据拼接器220可以被配置为对多个访问请求所针对的不同数据进行拼接,从而提高存储系统200的效率,其具体拼接过程将在下文结合图3-图4详细描述。在一些实施例中,数据处理器214可以被配置为对数据拼接器220所返回的数据进行处理,例如进行聚合操作。
图3示出了根据本公开的一些实施例的数据访问的方法300的流程图。方法300可以被由存储系统200中的数据拼接器210实施。以下将结合图2所示的存储系统200来描述方法300中所涉及的动作。
在框302,数据拼接器220获取针对存储设备230的第一访问请求和第二访问请求。在一些实施例中,如上文所述,协处理器210可以利用解码器212对接收到的指令进行解码,以转换为针对存储设备230的多个访问请求,并将该多个访问请求发送到数据拼接器220,针对存储设备230的第一访问请求和第二访问请求与同一系统操作指令相关联。
在一些实施例中,第一访问请求和第二访问请求可以为针对存储设备230中的不同物理地址的读请求。在一些实施例中,第一访问请求和第二访问请求可以拥有的连续的目标物理地址。例如,第一访问请求可以读取特定存储块(例如,16字节)中的前4个字节,第二访问请求可以读取该存储块的第5至第8个字节。在一些实施例中,第一访问请求和第二访问请求可以拥有不连续的目标物理地址。例如,第二访问请求可以读取与第一访问请求的目标存储块不同的其他存储块中的数据,或者第二访问请求可以读取与第一访问请求的目标存储块相同的存储块中的不同数据。
在一些实施例中,数据拼接器220可以从协处理器210接收针对存储设备230中的不同物理地址的多个写请求。由于写入到存储设备230中的数据要求是连续的,响应于接收到向存储设备230的多个写请求,数据拼接器220可以从多个写请求中确定第一写请求和第二写请求,其中第一写请求针对的在存储设备230上的目标位置和与第二写请求针对的在存储设备230上的目标位置是连续的。例如,第一访问请求可以为顺序执行的第一个写请求,其针对特定存储块(例如16字节)的前4个字节,为了实现写入的正确执行,第二写入请求的目标物理地址应该与第一写入请求的目标地址连续,例如为该存储块的第5至第8个字节。
在框304,数据拼接器220将与第一访问请求相关联的第一数据从源设备加载到预分配的缓冲区中,缓冲区具有与存储设备230的单个物理存储块对应的大小。在一些实施例中,数据拼接器220可以采用寄存器来构成与存储设备的最小单元相同大小的缓冲区。图4示出了根据本公开的实施例的对不同数据进行拼接的示意图。如图4A所示,例如,与第一访问请求相关联的第一数据410的大小为10字节,缓冲区420的大小与存储器230的最小单元对齐,大小为16字节。
在一些实施例中,数据拼接器220还可以记录参数INDEX,其指示缓冲区420中可用空间的起始位置。在一些实施例中,在第一写入的时候,INDEX默认设置为0,缓冲区320中的全部空间都是可用状态。
在一些实施例中,当第一访问请求为读请求时,数据拼接器220可以从存储设备230中读取第一数据,并将第一数据410加载到缓冲区420中。如图4B所示,数据拼接器220还可以根据第一数据410的大小(10字节)更新INDEX值,例如INDEX被更新为10。
在一些实施例中,当第一访问请求为写请求时,数据拼接器220可以根据协处理器210发送的写入请求,获取与第一访问请求相关联的第一数据410,并确定第一数据410在目标存储块中的偏移量。例如,如果第一数据410在为目标存储块(16字节)中的第5至第8个字节,则其偏移量为5。在将第一数据410写入到缓冲区420中前,数据拼接器220可以根据该偏移量更新INDEX值,例如,更新为5。随后,数据拼接器220可以以该INDEX指示的起始位置写入第一数据410,例如,将第一数据410的4个字节写入到缓冲区420中第5至第8个字节。随后,如图4B所示,数据拼接器220还可以根据第一数据310的大小(10字节)更新INDEX值,例如INDEX被更新为15。
继续参考图3,在框306,数据拼接器220确定与第二访问请求相关联的第二数据的第一大小是否小于缓冲区的可用空间的第二大小。在一些实施例中,数据拼接器220可以根据缓冲区420的INDEX值以及缓冲区420的大小来确定缓冲区420的剩余可用空间的大小。例如,在上文所述的读请求的示例中,剩余可用空间的大小为6字节。例如,在上文所述的写请求的示例中,剩余可用空间的大小为2字节。
响应于在框306确定第一大小不小于第二大小,则方法300进行到框308,即数据拼接器220确定与第二访问请求相关联的第二数据的第一大小是否小于缓冲区的可用空间的第二大小。继续图4的示例,如图4B所示,例如,第二数据430例如同样为10字节大小,此时第二数据430的大小大于缓冲区420的可用空间。以下将分别针对读请求和写请求的情形,描述框308的具体过程。
继续上文所述的第一访问请求和第二访问请求为读请求的示例。在一些实施例中,例如,数据拼接器220可以基于INDEX和缓冲区420的大小确定可用空间的大小为6字节,其小于第二数据430的大小(例如,10字节)。随后,数据拼接器220可以根据可用空间的大小(6字节)来将第二数据430分成两个部分,第一部分432具有与可用空间相同的大小(6字节),第二数据430中的剩余部分构成第二部分(4字节)。此时,第一数据410和第二数据430的第一部分432构成了存储设备230的最小单元(16字节)的大小。
继续上文所述的第一访问请求和第二访问请求为写请求的示例。在一些实施例中,例如,数据拼接器220可以基于INDEX和缓冲区420的大小确定可用空间的大小为2字节,其小于第二数据430的大小(例如,10字节)。随后,数据拼接器220可以根据可用空间的大小(2字节)来将第二数据430分成两个部分,第一部分432具有与可用空间相同的大小(2字节),第二数据430中的剩余部分构成第二部分(8字节)。此时,第一数据410和第二数据430的第一部分432构成了存储设备230的最小单元(16字节)的大小。
继续参考图3,在框310,数据拼接器220向与第一访问请求和第二访问请求相关联的目标设备提供第一数据和第一部分432。
继续上文所述的第一访问请求和第二访问请求为读请求的示例,在这种情况下,源设备为存储器230,目标设备为协处理器210。在一些实施例中,数据拼接器220可以向协处理器210中的数据处理器214提供缓冲区420中所存储的第一数据410以及第二数据430的第一部分432。通过这样的方式,既解决了文件系统的最小单元与存储设备230的最小单元的不对齐问题,又不需要将第二数据430的第一部分432读取到缓冲区420中,从而提高了存储系统的读取效率。
在一些实施例中,在完成向协处理器210提供第一数据410和第二数据430的第一部分432后,数据拼接器220可以通过将INDEX重置为0,来将缓冲区420的可用空间更新为缓冲区420的全部空间。在一些实施例中,数据拼接器220可以将第二数据430的第二部分434写入到缓冲区420中,并基于第二部分434的大小(4字节)更新INDEX值,例如更新为4。
在一些实施例中,数据拼接器220随后可以确定是否接收到与第一访问请求和第二访问请求相关联的指令中的第三访问请求,其中第三访问请求的类型与第一访问请求和第二访问请求的类型相同(在该示例中均为读请求)。如果数据拼接器220确定未接收到第三访问请求,数据拼接器220可以将缓冲区420中的有效数据(例如,第二部分434)发送到协处理器210,从而完成了对该指令的全部响应。如果数据拼接器220确定接收到第三访问请求,数据拼接器220可以按照上述方法继续执行对新的读请求的数据拼接,在此不再详述。
在一些实施例中,数据拼接器220可以向存储设备230的目标存储块中写入缓冲区420中所存储的第一数据410以及第二数据430的第一部分432。在一些实施例中,数据拼接器220可以根据缓冲区420中有效数据的区间来生成掩码信号。例如,在上文的示例中,缓冲区420中的前4位中没有有效数据,因此可以通过掩码信号来通知存储设备230不对对应的存储块中的前4位执行数据写入。通过这样的方式,既解决了文件系统的最小单元与存储设备230的最小单元的不对齐问题,又不需要将第二数据430的第一部分432写入到缓冲区420中,从而提高了存储系统的写入效率。
继续上文所述的第一访问请求和第二访问请求为写请求的示例,在这种情况下,源设备为协处理器210,目标设备为存储器230。在一些实施例中,在完成向存储设备230写入第一数据410和第二数据430的第一部分432后,数据拼接器220可以通过将INDEX重置为0,来将缓冲区420的可用空间更新为缓冲区420的全部空间。在一些实施例中,数据拼接器220可以将第二数据430的第二部分434写入到缓冲区420中,并基于第二部分434的大小(8字节)更新INDEX值,例如更新为8。
在一些实施例中,数据拼接器220随后可以确定是否接收到与第一访问请求和第二访问请求相关联的指令中的第三访问请求,其中第三访问请求的类型与第一访问请求和第二访问请求的类型相同(在该示例中均为写请求)。如果数据拼接器220确定不存在第三访问请求,数据拼接器220可以将缓冲区420中的有效数据(例如,第二部分434)写入到存储设备230,从而完成了对该指令的全部响应。如果数据拼接器220确定存在第三访问请求,数据拼接器220可以进一步确定是否有目标地址与第二部分434的地址连续的写入请求,如果数据拼接器220确定存在新的访问请求,数据拼接器220可以按照上述方法继续执行对新的访问请求的数据拼接,在此不再详述。如果不存在地址连续的写入请求,则数据拼接器220可以将缓冲区420中的有效数据(例如,第二部分434)写入到存储设备230,并开始执行下一个未执行的写入请求。
响应于在框306确定第一大小小于第二大小,则方法300进行到框312,即数据拼接器220将所述第二数据写入到所述缓冲区的所述可用空间中。在一些实施例中,例如当第二数据430小于缓冲区420的可用空间的大小时,数据拼接器可以将第二数据430直接写入到缓冲区420的可用空间中,并基于第二数据430的大小更新INDEX值,例如,第二数据430的大小为4字节,原INDEX为10,则更新后的INDEX为14。
在一些实施例中,数据拼接器220可以判断是否还有新的可拼接的访问请求,当确定存在新的访问请求时,数据拼接器220可以基于上述的方案来根据缓冲区420和新的INDEX继续执行数据拼接操作。当确定不存在新的访问请求时,数据拼接可以直接将缓冲区420中的有效数据提供给与第一访问请求和第二访问请求相关联的目标设备,从而完成了对指令的全部响应。
通过上文所述的方案,本公开的数据访问方案解决了硬件地址空间和软件地址空间不对齐的问题,从而提高了存储系统的响应效率。此外,本文的方案通过设置独立的数据拼接器,使得该独立的数据拼接器可以被附加到不支持非对齐访存的协处理器,从而大大提高了方案的可扩展性。
图5示出了根据本公开的实施例的用于数据访问的装置500的方框图。装置500可以被包括在图2的数据拼接器220中或者被实现为数据拼接器220。如图5所示,装置500包括获取模块510,被配置为获取针对存储设备的第一访问请求和第二访问请求。装置500还包括第一加载模块520,被配置为将与第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,缓冲区具有与存储设备的单个物理存储块相同的大小。装置500还包括第一确定模块530,被配置为确定与第二访问请求相关联的第二数据的第一大小是否小于缓冲区的可用空间的第二大小。装置500进一步包括第二确定模块540,被配置为响应于确定第一大小不小于第二大小,确定第二数据中的第一部分,第一部分具有与可用空间相同的大小。此外,装置500还包括第一提供模块550,被配置为向与第一访问请求和第二访问请求相关联的目标设备提供第一数据和第一部分。
在一些实施例中,装置500还包括:更新模块,被配置为响应于完成向目标设备提供第一数据以及第一部分,将缓冲区的可用空间更新为缓冲区的全部空间;以及第二加载模块,被配置为在更新的可用空间中加载第二数据中与第一部分不同的第二部分。
在一些实施例中,装置500还包括:第三确定模块,被配置为确定是否接收到与第一访问请求和第二访问请求相关联的指令中的第三访问请求,第三访问请求的类型与第一访问请求和第二访问请求的类型相同;以及第二提供模块,被配置为响应于确定未接收到第三访问请求,将第二部分提供给目标设备。
在一些实施例中,装置500还包括:第三加载模块,被配置为响应于第一大小小于第二大小,将第二数据加载到缓冲区的可用空间中。
在一些实施例中,装置500还包括:第四确定模块,被配置为确定是否接收到与第一访问请求和第二访问请求相关联的指令中的第三访问请求,第三访问请求的类型与第一访问请求和第二访问请求的类型相同;以及第三提供模块,被配置为响应于确定未接收到第三访问请求,将第一数据和第二数据提供给目标设备。
在一些实施例中,其中第一访问请求和第二访问请求为读请求,源设备为存储设备。
在一些实施例中,其中第一访问请求和第二访问请求为写请求,目标设备为存储设备,其中第一访问请求针对的在存储设备上的第一目标位置和与第二访问请求针对的在存储设备上的第二目标位置是连续的。
图6示出了可以用来实施本公开的实施例的示例设备600的示意性框图。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元601执行上文所描述的各个方法和处理,例如过程300。例如,在一些实施例中,过程300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由CPU 601执行时,可以执行上文描述的过程300的一个或多个步骤。备选地,在其他实施例中,CPU 601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程300。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (16)

1.一种数据访问的方法,包括:
获取针对存储设备的第一访问请求和第二访问请求;
将与所述第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,所述缓冲区具有与所述存储设备的单个物理存储块相同的大小;
确定与所述第二访问请求相关联的第二数据的第一大小是否小于所述缓冲区的可用空间的第二大小;
响应于确定所述第一大小不小于所述第二大小,确定所述第二数据中的第一部分,所述第一部分具有与所述可用空间相同的大小;以及
向与第一访问请求和所述第二访问请求相关联的目标设备提供所述第一数据和所述第一部分。
2.根据权利要求1所述的方法,还包括:
响应于完成向所述目标设备提供所述第一数据以及所述第一部分,将所述缓冲区的所述可用空间更新为所述缓冲区的全部空间;以及
在更新的所述可用空间中加载所述第二数据中与所述第一部分不同的第二部分。
3.根据权利要求2所述的方法,还包括:
确定是否接收到与所述第一访问请求和所述第二访问请求相关联的指令中的第三访问请求,所述第三访问请求的类型与所述第一访问请求和所述第二访问请求的类型相同;以及
响应于确定未接收到所述第三访问请求,将所述第二部分提供给所述目标设备。
4.根据权利要求1所述的方法,还包括:
响应于所述第一大小小于所述第二大小,将所述第二数据加载到所述缓冲区的所述可用空间中。
5.根据权利要求4所述的方法,还包括:
确定是否接收到与所述第一访问请求和所述第二访问请求相关联的指令中的第三访问请求,所述第三访问请求的类型与所述第一访问请求和所述第二访问请求的类型相同;以及
响应于确定未接收到所述第三访问请求,将所述第一数据和所述第二数据提供给所述目标设备。
6.根据权利要求1所述的方法,其中所述第一访问请求和所述第二访问请求为读请求,所述源设备为所述存储设备。
7.根据权利要求1所述的方法,其中所述第一访问请求和所述第二访问请求为写请求,所述目标设备为所述存储设备,其中所述第一访问请求针对的在所述存储设备上的第一目标位置和与所述第二访问请求针对的在所述存储设备上的第二目标位置是连续的。
8.一种用于数据访问的装置,包括:
获取模块,被配置为获取针对存储设备的第一访问请求和第二访问请求;
第一加载模块,被配置为将与所述第一访问请求相关联的第一数据从源设备中加载到预分配的缓冲区中,所述缓冲区具有与所述存储设备的单个物理存储块相同的大小;
第一确定模块,被配置为确定与所述第二访问请求相关联的第二数据的第一大小是否小于所述缓冲区的可用空间的第二大小;
第二确定模块,被配置为响应于确定所述第一大小不小于所述第二大小,确定所述第二数据中的第一部分,所述第一部分具有与所述可用空间相同的大小;以及
第一提供模块,被配置为向与第一访问请求和所述第二访问请求相关联的目标设备提供所述第一数据和所述第一部分。
9.根据权利要求8所述的装置,还包括:
更新模块,被配置为响应于完成向所述目标设备提供所述第一数据以及所述第一部分,将所述缓冲区的所述可用空间更新为所述缓冲区的全部空间;以及
第二加载模块,被配置为在更新的所述可用空间中加载所述第二数据中与所述第一部分不同的第二部分。
10.根据权利要求9所述的装置,还包括:
第三确定模块,被配置为确定是否接收到与所述第一访问请求和所述第二访问请求相关联的指令中的第三访问请求,所述第三访问请求的类型与所述第一访问请求和所述第二访问请求的类型相同;以及
第二提供模块,被配置为响应于确定未接收到所述第三访问请求,将所述第二部分提供给所述目标设备。
11.根据权利要求8所述的装置,还包括:
第三加载模块,被配置为响应于所述第一大小小于所述第二大小,将所述第二数据加载到所述缓冲区的所述可用空间中。
12.根据权利要求11所述的装置,还包括:
第四确定模块,被配置为确定是否接收到与所述第一访问请求和所述第二访问请求相关联的指令中的第三访问请求,所述第三访问请求的类型与所述第一访问请求和所述第二访问请求的类型相同;以及
第三提供模块,被配置为响应于确定未接收到所述第三访问请求,将所述第一数据和所述第二数据提供给所述目标设备。
13.根据权利要求8所述的装置,其中所述第一访问请求和所述第二访问请求为读请求,所述源设备为所述存储设备。
14.根据权利要求8所述的装置,其中所述第一访问请求和所述第二访问请求为写请求,所述目标设备为所述存储设备,其中所述第一访问请求针对的在所述存储设备上的第一目标位置和与所述第二访问请求针对的在所述存储设备上的第二目标位置是连续的。
15.一种电子设备,所述电子设备包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现根据权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1-7中任一项所述的方法。
CN201811391728.6A 2018-11-21 2018-11-21 数据访问的方法、装置、设备和存储介质 Active CN111208933B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201811391728.6A CN111208933B (zh) 2018-11-21 2018-11-21 数据访问的方法、装置、设备和存储介质
KR1020190134312A KR102287677B1 (ko) 2018-11-21 2019-10-28 데이터 액세스 방법, 장치, 기기 및 저장 매체
EP19208851.6A EP3660651A1 (en) 2018-11-21 2019-11-13 Data accessing method, apparatus, and storage medium
JP2019209717A JP7088897B2 (ja) 2018-11-21 2019-11-20 データアクセス方法、データアクセス装置、機器及び記憶媒体
US16/689,479 US11650754B2 (en) 2018-11-21 2019-11-20 Data accessing method, device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811391728.6A CN111208933B (zh) 2018-11-21 2018-11-21 数据访问的方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN111208933A true CN111208933A (zh) 2020-05-29
CN111208933B CN111208933B (zh) 2023-06-30

Family

ID=68581402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811391728.6A Active CN111208933B (zh) 2018-11-21 2018-11-21 数据访问的方法、装置、设备和存储介质

Country Status (5)

Country Link
US (1) US11650754B2 (zh)
EP (1) EP3660651A1 (zh)
JP (1) JP7088897B2 (zh)
KR (1) KR102287677B1 (zh)
CN (1) CN111208933B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535092A (zh) * 2021-07-20 2021-10-22 阿里巴巴新加坡控股有限公司 用于减少内存元数据的存储引擎、方法和可读介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111856258B (zh) * 2020-07-24 2023-05-09 北京百度网讯科技有限公司 用于芯片的测试的方法、设备、存储介质和相应的芯片
CN112988727B (zh) * 2021-03-25 2022-09-16 北京百度网讯科技有限公司 数据标注方法、装置、设备、存储介质及计算机程序产品
CN115686164A (zh) * 2021-07-26 2023-02-03 瑞昱半导体股份有限公司 供电端装置、供电系统以及非暂态电脑可读取媒体
US11656797B2 (en) * 2021-07-28 2023-05-23 Western Digital Technologies, Inc. Data storage device executing runt write commands as free commands
US20240220119A1 (en) * 2022-12-29 2024-07-04 SK Hynix NAND Product Solutions Corp. (dba Solidigm) Methods and systems for dynamic submission data structures

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675793A (en) * 1992-09-30 1997-10-07 Microsoft Corporation Dynamic allocation of a common buffer for use by a set of software routines
KR20050061529A (ko) * 2002-10-10 2005-06-22 인텔 코오퍼레이션 일반 판독/기입 패턴들을 갖는 메모리 데이터 액세스를용이하게 하는 장치 및 방법
US20060064538A1 (en) * 2004-09-22 2006-03-23 Kabushiki Kaisha Toshiba Memory controller, memory device and control method for the memory controller
US20070214309A1 (en) * 2006-03-07 2007-09-13 Matsushita Electric Industrial Co., Ltd. Nonvolatile storage device and data writing method thereof
CN101251789A (zh) * 2008-03-28 2008-08-27 清华大学 廉价磁盘冗余阵列raid5卷快速扩容方法
US20100153654A1 (en) * 2002-08-07 2010-06-17 Martin Vorbach Data processing method and device
US20100211710A1 (en) * 2009-02-16 2010-08-19 Chih-Hao Weng Data accessing system
US20130067174A1 (en) * 2011-09-11 2013-03-14 Microsoft Corporation Nonvolatile media journaling of verified data sets
US20130117503A1 (en) * 2010-09-28 2013-05-09 Fusion-Io, Inc. Servicing non-block storage requests
CN103116552A (zh) * 2013-03-18 2013-05-22 华为技术有限公司 用于在分布式存储系统中分配存储空间的方法和装置
US20150331619A1 (en) * 2012-12-14 2015-11-19 Tencent Technology (Shenzhen) Company Limited Data storage method and apparatus
CN105095109A (zh) * 2014-05-21 2015-11-25 华为技术有限公司 缓存访问方法、缓存访问路由器和计算机系统
WO2016175028A1 (ja) * 2015-04-28 2016-11-03 日本電気株式会社 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
US20160350010A1 (en) * 2015-05-31 2016-12-01 Vmware, Inc. Providing block size compatibility with a storage filter
CN106469126A (zh) * 2015-08-12 2017-03-01 北京忆恒创源科技有限公司 处理io请求的方法及其存储控制器
US20170097897A1 (en) * 2015-10-02 2017-04-06 Sony Interactive Entertainment Inc. Information processing device, access controller, information processing method, and computer program
WO2017107162A1 (zh) * 2015-12-25 2017-06-29 研祥智能科技股份有限公司 一种异构混合内存组件、系统及存储方法
US20170192902A1 (en) * 2015-12-30 2017-07-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
KR20170088933A (ko) * 2014-11-28 2017-08-02 후아웨이 테크놀러지 컴퍼니 리미티드 파일 액세스 방법 및 장치 및 스토리지 디바이스
CN108833336A (zh) * 2018-04-18 2018-11-16 北京百度网讯科技有限公司 数据处理方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI371691B (en) * 2007-12-16 2012-09-01 Infortrend Technology Inc Storage controller for handling data stream and method thereof

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675793A (en) * 1992-09-30 1997-10-07 Microsoft Corporation Dynamic allocation of a common buffer for use by a set of software routines
US20100153654A1 (en) * 2002-08-07 2010-06-17 Martin Vorbach Data processing method and device
KR20050061529A (ko) * 2002-10-10 2005-06-22 인텔 코오퍼레이션 일반 판독/기입 패턴들을 갖는 메모리 데이터 액세스를용이하게 하는 장치 및 방법
US20060064538A1 (en) * 2004-09-22 2006-03-23 Kabushiki Kaisha Toshiba Memory controller, memory device and control method for the memory controller
US20070214309A1 (en) * 2006-03-07 2007-09-13 Matsushita Electric Industrial Co., Ltd. Nonvolatile storage device and data writing method thereof
CN101251789A (zh) * 2008-03-28 2008-08-27 清华大学 廉价磁盘冗余阵列raid5卷快速扩容方法
US20100211710A1 (en) * 2009-02-16 2010-08-19 Chih-Hao Weng Data accessing system
US20130117503A1 (en) * 2010-09-28 2013-05-09 Fusion-Io, Inc. Servicing non-block storage requests
US20130067174A1 (en) * 2011-09-11 2013-03-14 Microsoft Corporation Nonvolatile media journaling of verified data sets
US20150331619A1 (en) * 2012-12-14 2015-11-19 Tencent Technology (Shenzhen) Company Limited Data storage method and apparatus
CN103116552A (zh) * 2013-03-18 2013-05-22 华为技术有限公司 用于在分布式存储系统中分配存储空间的方法和装置
CN105095109A (zh) * 2014-05-21 2015-11-25 华为技术有限公司 缓存访问方法、缓存访问路由器和计算机系统
KR20170088933A (ko) * 2014-11-28 2017-08-02 후아웨이 테크놀러지 컴퍼니 리미티드 파일 액세스 방법 및 장치 및 스토리지 디바이스
WO2016175028A1 (ja) * 2015-04-28 2016-11-03 日本電気株式会社 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
US20160350010A1 (en) * 2015-05-31 2016-12-01 Vmware, Inc. Providing block size compatibility with a storage filter
CN106469126A (zh) * 2015-08-12 2017-03-01 北京忆恒创源科技有限公司 处理io请求的方法及其存储控制器
US20170097897A1 (en) * 2015-10-02 2017-04-06 Sony Interactive Entertainment Inc. Information processing device, access controller, information processing method, and computer program
WO2017107162A1 (zh) * 2015-12-25 2017-06-29 研祥智能科技股份有限公司 一种异构混合内存组件、系统及存储方法
US20170192902A1 (en) * 2015-12-30 2017-07-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
CN108833336A (zh) * 2018-04-18 2018-11-16 北京百度网讯科技有限公司 数据处理方法、装置、计算机设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535092A (zh) * 2021-07-20 2021-10-22 阿里巴巴新加坡控股有限公司 用于减少内存元数据的存储引擎、方法和可读介质
CN113535092B (zh) * 2021-07-20 2024-05-17 阿里巴巴创新公司 用于减少内存元数据的存储引擎、方法和可读介质

Also Published As

Publication number Publication date
US20200159461A1 (en) 2020-05-21
CN111208933B (zh) 2023-06-30
KR20200060245A (ko) 2020-05-29
EP3660651A1 (en) 2020-06-03
KR102287677B1 (ko) 2021-08-06
JP2020087470A (ja) 2020-06-04
US11650754B2 (en) 2023-05-16
JP7088897B2 (ja) 2022-06-21

Similar Documents

Publication Publication Date Title
CN111208933B (zh) 数据访问的方法、装置、设备和存储介质
CN111310910B (zh) 一种计算装置及方法
CN103116529B (zh) 用于实时检测缓冲区溢出致堆内存损坏的方法和设备
US10261796B2 (en) Processor and method for executing in-memory copy instructions indicating on-chip or off-chip memory
US9164911B2 (en) Atomic execution over accesses to multiple memory locations in a multiprocessor system
US10831481B2 (en) Handling unaligned load operations in a multi-slice computer processor
CN108431831B (zh) 循环代码处理器优化
CN111737564B (zh) 一种信息查询方法、装置、设备及介质
CN107250978A (zh) 基于多核块的指令集架构中的寄存器重命名
CN111857591B (zh) 用于执行指令的方法、装置、设备和计算机可读存储介质
US20210165654A1 (en) Eliminating execution of instructions that produce a constant result
US11734005B2 (en) Processor with split read
CN112286578B (zh) 由计算设备执行的方法、装置、设备和计算机可读存储介质
US10366049B2 (en) Processor and method of controlling the same
CN118733114A (zh) 基于riscv-v指令集的向量指令的执行方法和装置
CN107967222A (zh) 一种SPI-Nand查找数据页的方法及装置
US9164761B2 (en) Obtaining data in a pipelined processor
KR20230101878A (ko) 범위 지정자에 기초한 필터링
CN120123067A (zh) 运算装置、处理器、电子设备、运算方法
CN120540714A (zh) 存储内计算模块、存储内计算方法、设备、存储介质
CN118689543A (zh) 数据处理方法、装置、电子设备和存储介质
CN121209960A (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
TA01 Transfer of patent application right

Effective date of registration: 20211012

Address after: Baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100086

Applicant after: Kunlun core (Beijing) Technology Co.,Ltd.

Address before: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100094

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100085 Beijing City Haidian District Shangdi Information Road No. 19 Building 1 Third Floor 321

Patentee after: Kunlun Xing (Beijing) Science and Technology Co., Ltd.

Country or region after: China

Address before: Baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100086

Patentee before: Kunlun core (Beijing) Technology Co.,Ltd.

Country or region before: China