CN114741328A - 数据查询方法、装置、电子设备及计算机可读存储介质 - Google Patents

数据查询方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN114741328A
CN114741328A CN202210455302.2A CN202210455302A CN114741328A CN 114741328 A CN114741328 A CN 114741328A CN 202210455302 A CN202210455302 A CN 202210455302A CN 114741328 A CN114741328 A CN 114741328A
Authority
CN
China
Prior art keywords
data
target
target data
data block
block
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
CN202210455302.2A
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 Eswin Computing Technology Co Ltd
Original Assignee
Beijing Eswin Computing 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 Eswin Computing Technology Co Ltd filed Critical Beijing Eswin Computing Technology Co Ltd
Priority to CN202210455302.2A priority Critical patent/CN114741328A/zh
Publication of CN114741328A publication Critical patent/CN114741328A/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems

Landscapes

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

Abstract

本申请实施例提供了一种数据查询方法、装置、电子设备及计算机可读存储介质,涉及计算机技术领域。本申请实施例通过确定数据查询请求对应的目标数据块在数据表中的第一位置信息;根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;根据所述地址信息,获取所述目标数据;其中,由于所述目标数据块中的每个目标数据分别存储于不同的存储器中,以及每个存储器在一个时钟内可以查询一个数据;这样,在对目标数据块进行查询时,可以通过一个时钟周期完成目标数据块中的多个目标数据的查询,从而节约了查询时间成本并减少了硬件消耗,提升服务器的处理效率。

Description

数据查询方法、装置、电子设备及计算机可读存储介质
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种数据查询方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网及人工智能技术的发展,图像或视频的信号处理以及机器学习相关算法应用愈加广泛。在上述信号处理以及机器学习算法等相关场景中,通常会涉及对数据表中的数据块进行查询。数据块中包含多个数据,在相关技术中,由于数据块中的每个数据的查询需要一个时钟周期,因此,数据块的查询通常需要多个时钟周期,造成数据块的查询时序较长,并且消耗较多的硬件面积。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是数据块的查询时序较长的技术缺陷。
根据本申请的一个方面,提供了一种数据查询方法,该方法包括:
接收数据查询请求,确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息;
根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;其中,所述地址信息包括所述目标数据在对应存储器中的目标地址;所述目标数据块包括至少两个存储于不同存储器的所述目标数据;
根据所述地址信息,获取所述目标数据。
可选的,所述确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息之前,所述方法还包括:
接收数据,将所述数据划分为多个第一数据块,所述第一数据块中数据的数量大于或等于所述目标数据块中所述目标数据的数量;
将所述第一数据块按照预设顺序写入所述数据表。
可选的,所述接收数据,将所述数据划分为多个第一数据块,包括:
若接收的所述数据的数量大于所述第一数据块中数据的数量,则将所述数据按照数据接收顺序缓存于数据栈;
根据所述数据接收顺序将所述数据栈中的所述数据划分为所述第一数据块。
可选的,所述接收数据,将所述数据划分为多个第一数据块,包括:
若接收的所述数据的数量小于所述第一数据块中数据的数量,则将所述数据按照数据接收顺序缓存于数据栈;
直至接收的所述数据的数量大于或等于所述第一数据块中数据的数量,根据所述数据接收顺序将所述数据栈中的所述数据划分为所述第一数据块。
可选的,所述方法还包括:
根据所述数据在所述第一数据块中的第二位置信息,分别将每个所述数据存储至对应的存储器;
其中,每个所述数据对应的存储器不同。
可选的,所述方法还包括:
确定所述数据在所述数据表中的第三位置信息与所述数据在对应的存储器中的地址之间的第一对应关系。
可选的,所述根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息,包括:
根据所述第一位置信息,分别确定每个所述目标数据在所述数据表中的第四位置信息;
根据所述第一对应关系,确定所述第四位置信息对应的所述目标数据的地址信息。
根据本申请的另一个方面,提供了一种数据查询装置,该装置包括:
第一确定模块,用于接收数据查询请求,确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息;
第二确定模块,用于根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;其中,所述地址信息包括所述目标数据在对应存储器中的目标地址;所述目标数据块包括至少两个存储于不同存储器的所述目标数据;
获取模块,用于根据所述地址信息,获取所述目标数据。
根据本申请的另一个方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行本申请的第一方面任一项所述的数据查询方法。
例如,本申请的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行如本申请的第一方面所示的数据查询方法对应的操作。
根据本申请的再一个方面,提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现本申请的第一方面任一项所述的数据查询方法。
例如,本申请实施例的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的数据查询方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的各种可选实现方式中提供的方法。
本申请提供的技术方案带来的有益效果是:
本申请实施例通过确定数据查询请求对应的目标数据块在数据表中的第一位置信息;根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;根据所述地址信息,获取所述目标数据;其中,由于所述目标数据块中的每个目标数据分别存储于不同的存储器中,以及每个存储器在一个时钟内可以查询一个数据;这样,在对目标数据块进行查询时,可以通过一个时钟周期完成目标数据块中的多个目标数据的查询,从而节约了查询时间成本并减少了硬件消耗,提升服务器的处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据查询方法的流程示意图;
图2为本申请实施例提供的一种数据查询方法的应用场景示意图;
图3为本申请实施例提供的一种数据查询方法的应用场景示意图;
图4为本申请实施例提供的一种数据查询方法的应用场景示意图;
图5为本申请实施例提供的一种数据查询方法的应用场景示意图;
图6为本申请实施例提供的一种数据查询方法的硬件架构示意图;
图7为本申请实施例提供的一种数据查询装置的结构示意图;
图8为本申请实施例提供的一种数据查询的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请提供的数据查询方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
参见图1,本申请实施例提供了一种数据查询方法,可选地,该方法应用于电子设备。为便于说明,后续以该方法应用于服务器为例介绍本申请实施例;所述服务器可以包括处理器,例如处理器可以是CPU。具体的,该方法可以包括以下步骤:
S101:接收数据查询请求,确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息。
可选的,本申请实施例可以应用于数据查询场景,具体可以应用于对数据表中的目标数据块的查询。
本申请实施例中,作为示例,所述数据表可以是页表缓存(TranslationLookaside Buffer,TLB)数据表。所述数据表中包括多个数据块;目标数据块为数据查询请求中所请求的数据块。具体地,所述目标数据块可以为数据表中的任一数据块;所述目标数据块可以包含至少两个数据,所述目标数据块中包含的数据为目标数据。
每个数据块在数据表中具有位置信息,例如,通过数据块在数据表中的坐标表示其位置信息。第一位置信息包括所述目标数据块在所述数据表中的位置;例如,第一位置信息可以包括目标数据块在数据表中的坐标。其中,目标数据块在数据表中的坐标可以为目标数据块在数据表中所在的行数和/或列数等等。
作为示例,以图2中所示的数据表为例进行说明。如图2所示,数据表中可以包含多行及多列数据。目标数据块可以为数据表中的任一数据块。其中,目标数据块中可以包括位置相邻的多个目标数据;此外,目标数据块中也可以包括位置不相邻的多个离散的目标数据。
作为第一种情况:目标数据块中可以包括位置相邻的多个目标数据。例如,目标数据块可以为图中所示的1x3的目标数据块A,即目标数据块A中包含3个目标数据,3个所述目标数据在数据表中分布于一行三列。又如,目标数据块可以为图中所示的2x2的目标数据块B1,即目标数据块B1中包含4个目标数据,4个所述目标数据在数据表中分布于两行两列。同样的道理,目标数据块还可以为3x3的目标数据块C、4x4的目标数据块D等等。需要说明的是,上述举例的数据块仅为示例性说明,本申请对数据块所包含的数据数量不做限定。
作为第二种情况:目标数据块中包括位置不相邻的多个离散的目标数据。例如,目标数据块可以为图中所示的2x2的目标数据块E,即目标数据块E中包含4个目标数据,4个所述目标数据在数据表中分布于两行两列。其中,分布于两行两列中的4个目标数据是不相邻的。如图2所示,4个目标数据分别位于数据表中的第5行第13列、第5行第16列、第8行第13列、第8行第16列。
可以理解的是,本申请实施例中,也可以查询目标数据块中的任意一个数据或者多个数据。例如,以目标数据块为图2中的数据块D为例,该目标数据块为4x4的数据块(即4行4列的数据块),那么,本申请实施例可以查询该数据块中的任一数据或者任一子数据块;其中,子数据块可以为小于4x4的数据块(行数小于4,列数小于4的数据块),如,子数据块可以为1x2的数据块、2x3的数据块等等。
需要说明的是,对于上述两种情况的目标数据块,第一位置信息中可以包括目标数据块中的部分目标数据在数据表中的坐标以及多个目标数据之间的位置关系。例如,以目标数据块为图2中所示的2x2的目标数据块B1为例,目标数据块B1的第一位置信息可以包括位于目标数据块左上角的目标数据a的坐标(0,0)(坐标可以为目标数据所在的行数及列数)以及目标数据a与目标数据块中的其他目标数据之间的位置关系,或者目标数据a在目标数据块中的位置等等。
此外,作为另一种情况,目标数据块在数据表中的第一位置信息中还可以包括目标数据块中的各个目标数据在数据表中的坐标。例如,以目标数据块为图2中所示的1x3的目标数据块A为例,目标数据块A的第一位置信息中可以包括3个目标数据分别位于数据表中坐标,即,3个目标数据分别位于数据表中的第1行第14列、第1行第15列、第1行第16列。
本申请实施例中,服务器可以根据数据查询请求,确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息。
S102:根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;其中,所述地址信息包括所述目标数据在对应存储器中的目标地址;所述目标数据块包括至少两个存储于不同存储器的所述目标数据。
具体的,在相关技术中,由于目标数据块中包含多个目标数据,目标数据块中的每个目标数据的查询需要一个时钟周期,也就是说,针对数据块的查询需要多个时钟周期。在本申请实施例中,目标数据块中的每个目标数据分别存储于不同的存储器,这样,可以实现通过一个时钟周期来查询所述目标数据块,从而节约了查询时序并减少了硬件消耗。
其中,可选的,所述存储器可以包括静态随机存取存储器(Static Random-AccessMemory,SRAM)等存储器。
在上述步骤S101的确定目标数据块在数据表中的第一位置信息之后,可以根据所述第一位置信息,确定目标数据的地址信息。其中,所述地址信息包括所述目标数据在对应存储器中的目标地址。
可选的,本申请实施例中,数据表中的所述数据在数据表中的位置信息(位置信息例如行数及列数),与所述数据在对应存储器中的地址之间可以存在对应关系(为方便描述,所述对应关系可以称为第一对应关系)。这样,可以先根据每个目标数据在目标数据块中的位置,以及目标数据块在数据表中的第一位置信息,确定各个目标数据在数据表中的位置信息;然后,可以根据第一对应关系以及各个目标数据在数据表中的位置信息,确定目标数据的地址信息。
S103:根据所述地址信息,获取所述目标数据。
确定目标数据的地址信息后,可以根据所述地址信息,获取到目标数据。
本申请实施例的数据查询方法可以广泛应用于多种数据查询场景。例如,可以应用于人工智能的图像识别场景;具体而言,图像识别场景中,在人物图像对应的二维特征矩阵中,可以查询任一目标数据块以对图像进行识别;如,可以查询人脸对应的数据块的特征数据以用于识别人脸图像;又如,还可以查询人脸中眼睛对应的数据块的特征数据以用于识别人眼图像等等。
本申请实施例中,服务器接收数据查询请求后,确定数据查询请求对应的目标数据块在数据表中的第一位置信息,并根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;最后根据所述地址信息,获取所述目标数据;这样,在对目标数据块进行查询时,可以在一个时钟周期完成多个目标数据的查询,节约查询时间成本,减少了硬件消耗,提升服务器的处理效率。
在本申请的一个实施例中,为实现目标数据块中的目标数据分别存储于不同的存储器,以及,目标数据在数据表中的位置信息与目标数据在对应存储器中的地址之间存在第一对应关系;本申请实施例中,还可以包括以下的数据写入过程:
所述确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息之前,所述方法还包括:
接收数据,将所述数据划分为多个第一数据块,所述第一数据块中数据的数量大于或等于所述目标数据块中所述目标数据的数量;
将所述第一数据块按照预设顺序写入所述数据表。
具体的,第一数据块可以理解为所述数据写入数据表的基本单元。也就是说,所述数据在写入数据表时是以第一数据块为单位进行写入的,即,每个时钟周期写入一个第一数据块。
其中,在接收数据时,基于接收到所述数据的数量的不同,将所述数据划分为多个第一数据块的过程可以分为以下几种情况:
情况一:在本申请的一个实施例中,所述接收数据,将所述数据划分为多个第一数据块,包括:
若接收的所述数据的数量大于所述第一数据块中数据的数量,则将所述数据按照数据接收顺序缓存于数据栈;
根据所述数据接收顺序将所述数据栈中的所述数据划分为所述第一数据块。
具体而言,当接收的所述数据的数量大于所述第一数据块中数据的数量时,可以先将接收到的所述数据按照数据接收顺序缓存于数据栈;然后,再按照数据栈的“先进先出”的原则,将数据栈中的数据分别划分为所述第一数据块。这里需要说明是,由于数据入栈时是按照数据接收顺序入栈的,所以,数据出栈划分为所述第一数据块时,实际上也是按照数据接收顺序出栈的。
例如,以第一数据块中包含的数据的数量为4为例进行说明:当接收到的数据的数据数量为10时,可以先将这10个数据按照数据接收顺序缓存于数据栈;然后,再按照出栈顺序,将这10个数据每4个划分为一个第一数据块。其中,由于这10个数据可以划分为两个第一数据块,剩余的2个数据可以继续缓存于数据栈,等待接收到后续数据后,当数据栈中的数据大于或等于4个时,继续划分为第一数据块。
情况二:在本申请的一个实施例中,所述接收数据,将所述数据划分为多个第一数据块,包括:
若接收的所述数据的数量小于所述第一数据块中数据的数量,则将所述数据按照数据接收顺序缓存于数据栈;
直至接收的所述数据的数量大于或等于所述第一数据块中数据的数量,根据所述数据接收顺序将所述数据栈中的所述数据划分为所述第一数据块。
具体而言,当接收的所述数据的数量小于所述第一数据块中数据的数量时,可以先将接收到的所述数据按照数据接收顺序缓存于数据栈;继续接收数据,并将接收的数据缓存入所述数据栈;直至接收的所述数据的数量大于或等于所述第一数据块中数据的数量时,再按照数据栈的“先进先出”的原则,将数据栈中的数据分别划分为所述第一数据块。
例如,仍以第一数据块中包含的数据的数量为4为例进行说明:当接收到的数据的数据数量为2时,可以先将这2个数据按照数据接收顺序缓存于数据栈;然后,继续接收数据,等待接收到后续数据后,数据栈中的数据大于或等于4个时,可以将数据栈中的数据出栈,并划分为第一数据块。
情况三:在本申请的一个实施例中,当接收到的数据的数量等于所述第一数据块中数据的数量时,则可以直接将所述数据划分为第一数据块。
进一步的,为实现目标数据在数据表中的位置信息与目标数据在对应存储器中的地址之间存在第一对应关系,可以将所述第一数据块按照预设顺序写入所述数据表。
具体的,结合图2,以第一数据块为2x2的数据块为例进行说明:将第一数据块写入所述数据表时,为便于确定第一对应关系,可以按照数据块划分的顺序(也就是按照数据接收到的先后顺序),将每个第一数据块依次写入数据表。例如,第一个第一数据块(即数据块B1)位于第0行至第1行、第0列至第1列;第二个第一数据块(即数据块B2)位于第2行至第3行、第2列至第3列;第三个第一数据块(即数据块B3)位于第4行至第5行、第4列至第5列……等等依次类推。这样,可以理解的是,第一数据块在写入时,是按照数据表中的行列顺序依次写入的。
在本申请的一个实施例中,所述方法还包括:
根据所述数据在所述第一数据块中的第二位置信息,分别将每个所述数据存储至对应的存储器;
其中,每个所述数据对应的存储器不同。
具体的,第二位置信息包括所述数据在所述第一数据块中的位置。
本申请实施例中,可以根据所述第二位置信息,分别将每个所述数据存储至对应的存储器中。
结合图3至图4,以第一数据块中包含的数据的数量为4为例进行说明:
第一数据块中的4个数据可以分别存储于SARM0、SARM1、SARM2、SARM3中。其中,如图3所示,以第一数据块Case0为例,根据每个数据在第一数据块中的位置对每个所述数据进行存储,即位于第一数据块左上角的数据(数据0)可以存储于SARM0;位于第一数据块右上角的数据(数据0)可以存储于SARM1;位于第一数据块左下角的数据(数据10)可以存储于SARM2;位于第一数据块右下角的数据(数据8)可以存储于SARM3。另外,如图4所示,以第一数据块Case0为例,根据每个数据在第一数据块中的位置对每个所述数据进行存储,即位于第一数据块左上角的数据(数据0)可以存储于SARM0;位于第一数据块右上角的数据(数据0)可以存储于SARM1;位于第一数据块左下角的数据(数据8)可以存储于SARM2;位于第一数据块右下角的数据(数据8)可以存储于SARM3。
此外,还需要说明的是,上述实施例中,所述第一数据块中数据的数量大于或等于所述目标数据块中所述目标数据的数量。这里可以理解为,在进行数据查询时,所查询的目标数据块可以是第一数据块的子集,即目标数据块中所述目标数据的数量小于或等于第一数据块中数据的数量。这样,目标数据块中的目标数据分别存储于不同的存储器。
在本申请的一个实施例中,所述方法还包括:
确定所述数据在所述数据表中的第三位置信息与所述数据在对应的存储器中的地址之间的第一对应关系。
具体的,第三位置信息为所述数据在所述数据表中的位置。
本申请实施例中,由于数据表中的数据是以第一数据块为基本单元写入的,所以,对于基于不同第一数据块生成的数据表,所述数据在所述数据表中的第三位置信息与所述数据在对应的存储器中的地址之间的第一对应关系也是不同的。
结合图3所示,以第一数据块为2x2的数据块为例进行说明。如图所示,数据表中的2x2的数据块的位置可以包括4种情况,即图中所示的Case0、Case1、Case2、Case3所示的4种情况。其中,数据块Case0左上角的数据位于偶数行、偶数列;数据块Case1左上角的数据位于偶数行、奇数列;数据块Case2左上角的数据位于奇数行、偶数列;数据块Case3左上角的数据位于奇数行、奇数列。
本申请实施例中,对于以上述2x2的数据块为单位生成的数据表,第一对应关系可以通过以下数据关系描述,即Read address=x*H+y。其中,Read address表示数据在对应的存储器中的地址;系数x根据数据在数据表中的行数坐标(row)确定;系数y根据数据在数据表中的列数坐标(col)确定;H表示数据表的深度。
针对上述2x2的数据块的位置的4种情况,即图中所示的Case0、Case1、Case2、Case3所示的4种情况,确定存储于SARM0、SARM1、SARM2、SARM3中的数据的地址时,系数x、y的确定方式具体可以参见表1:
Figure BDA0003620255970000121
Figure BDA0003620255970000131
表1
如表1所示,以存储于SARM0中的数据为例,Case0的情况:x=row/2,y=col/2;Case1的情况:x=row/2,y=col/2+1;Case2的情况:x=row/2+1,y=col/2;Case3的情况:x=row/2+1,y=col/2+1。
在本申请的一个实施例中,所述根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息,包括:
根据所述第一位置信息,分别确定每个所述目标数据在所述数据表中的第四位置信息;
根据所述第一对应关系,确定所述第四位置信息对应的所述目标数据的地址信息。
具体的,第四位置信息为所述数据在所述数据表中的位置。
需要说明的是,为方便描述及便于区分,本申请实施例中,在数据读取阶段,即对数据进行查询时,将所述数据在所述数据表中的位置描述为所述第四位置信息;在数据写入阶段,将所述数据在所述数据表中的位置描述为所述第三位置信息。也就是说,所述第三位置信息及所述第四位置信息仅用于在不同阶段的描述的区分。
本身实施例中,结合上述第一数据块为2x2的数据块的示例,根据目标数据块在数据表中的第一位置信息,一方面可以确定每个所述目标数据在所述数据表中的第四位置信息,另一方面还可以确定目标数据块在数据表中的位置属于Case0至Case3中的哪一种情况。
基于目标数据块在数据表中的位置对应于Case0至Case3的不同情况,根据所述第一对应关系,可以确定所述第四位置信息对应的所述目标数据的地址信息。
作为示例,结合图5及图6所示,在对应的存储器中,根据所述目标数据的地址信息,可以获取对应的目标数据。例如图5所示,对于数据块case0,可以分别根据各个数据在对应存储器中的地址信息,从对应存储器中获取所述目标数据。
此外,图6为本申请实施例的硬件架构图,如图6所示,本申请实施例中,可以通过输入端口,例如图中addr2pos端口或者row,col端口,输入目标数据块在数据表中的第一位置信息(第一位置信息例如行数row、列数col);然后可以分别启动高地址(addr high)或者低地址功能(addr low);进而输出查询的目标数据,其中,本申请实施例可以提供多种查询功能,如,功能1(function-lut1)输出目标数据块中的全部数据、功能2(function-lut2)输出目标数据块中的部分数据等等。
本申请实施例通过确定数据查询请求对应的目标数据块在数据表中的第一位置信息;根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;根据所述地址信息,获取所述目标数据;其中,由于所述目标数据块中的每个目标数据分别存储于不同的存储器中,以及每个存储器在一个时钟内可以查询一个数据;这样,在对目标数据块进行查询时,可以通过一个时钟周期完成目标数据块中的多个目标数据的查询,从而节约了查询时间成本并减少了硬件消耗,提升服务器的处理效率。
本申请实施例提供了一种数据查询装置,如图7所示,该数据查询装置70可以包括:第一确定模块701、第二确定模块702以及获取模块703,其中,
第一确定模块701,用于接收数据查询请求,确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息;
第二确定模块702,用于根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;其中,所述地址信息包括所述目标数据在对应存储器中的目标地址;所述目标数据块包括至少两个存储于不同存储器的所述目标数据;
获取模块703,用于根据所述地址信息,获取所述目标数据。
在本申请的一个实施例中,该装置还包括写入模块,用于在所述确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息之前,
接收数据,将所述数据划分为多个第一数据块,所述第一数据块中数据的数量大于或等于所述目标数据块中所述目标数据的数量;
将所述第一数据块按照预设顺序写入所述数据表。
在本申请的一个实施例中,写入模块,具体用于若接收的所述数据的数量大于所述第一数据块中数据的数量,则将所述数据按照数据接收顺序缓存于数据栈;
根据所述数据接收顺序将所述数据栈中的所述数据划分为所述第一数据块。
在本申请的一个实施例中,写入模块,具体用于若接收的所述数据的数量小于所述第一数据块中数据的数量,则将所述数据按照数据接收顺序缓存于数据栈;
直至接收的所述数据的数量大于或等于所述第一数据块中数据的数量,根据所述数据接收顺序将所述数据栈中的所述数据划分为所述第一数据块。
在本申请的一个实施例中,该装置还包括存储模块,用于根据所述数据在所述第一数据块中的第二位置信息,分别将每个所述数据存储至对应的存储器;
其中,每个所述数据对应的存储器不同。
在本申请的一个实施例中,该装置还包括对应关系确定模块,用于确定所述数据在所述数据表中的第三位置信息与所述数据在对应的存储器中的地址之间的第一对应关系。
在本申请的一个实施例中,第二确定模块具体用于根据所述第一位置信息,分别确定每个所述目标数据在所述数据表中的第四位置信息;
根据所述第一对应关系,确定所述第四位置信息对应的所述目标数据的地址信息。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例通过确定数据查询请求对应的目标数据块在数据表中的第一位置信息;根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;根据所述地址信息,获取所述目标数据;其中,由于所述目标数据块中的每个目标数据分别存储于不同的存储器中,以及每个存储器在一个时钟内可以查询一个数据;这样,在对目标数据块进行查询时,可以通过一个时钟周期完成目标数据块中的多个目标数据的查询,从而节约了查询时间成本并减少了硬件消耗,提升服务器的处理效率。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例通过确定数据查询请求对应的目标数据块在数据表中的第一位置信息;根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;根据所述地址信息,获取所述目标数据;其中,由于所述目标数据块中的每个目标数据分别存储于不同的存储器中,以及每个存储器在一个时钟内可以查询一个数据;这样,在对目标数据块进行查询时,可以通过一个时钟周期完成目标数据块中的多个目标数据的查询,从而节约了查询时间成本并减少了硬件消耗,提升服务器的处理效率。
在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码(计算机程序),并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、多媒体播放器、台式计算机等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。
本申请实施例通过确定数据查询请求对应的目标数据块在数据表中的第一位置信息;根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;根据所述地址信息,获取所述目标数据;其中,由于所述目标数据块中的每个目标数据分别存储于不同的存储器中,以及每个存储器在一个时钟内可以查询一个数据;这样,在对目标数据块进行查询时,可以通过一个时钟周期完成目标数据块中的多个目标数据的查询,从而节约了查询时间成本并减少了硬件消耗,提升服务器的处理效率。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (10)

1.一种数据查询方法,其特征在于,包括:
接收数据查询请求,确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息;
根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;其中,所述地址信息包括所述目标数据在对应存储器中的目标地址;所述目标数据块包括至少两个存储于不同存储器的所述目标数据;
根据所述地址信息,获取所述目标数据。
2.根据权利要求1所述的数据查询方法,其特征在于,所述确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息之前,所述方法还包括:
接收数据,将所述数据划分为多个第一数据块,所述第一数据块中数据的数量大于或等于所述目标数据块中所述目标数据的数量;
将所述第一数据块按照预设顺序写入所述数据表。
3.根据权利要求2所述的数据查询方法,其特征在于,所述接收数据,将所述数据划分为多个第一数据块,包括:
若接收的所述数据的数量大于所述第一数据块中数据的数量,则将所述数据按照数据接收顺序缓存于数据栈;
根据所述数据接收顺序将所述数据栈中的所述数据划分为所述第一数据块。
4.根据权利要求2所述的数据查询方法,其特征在于,所述接收数据,将所述数据划分为多个第一数据块,包括:
若接收的所述数据的数量小于所述第一数据块中数据的数量,则将所述数据按照数据接收顺序缓存于数据栈;
直至接收的所述数据的数量大于或等于所述第一数据块中数据的数量,根据所述数据接收顺序将所述数据栈中的所述数据划分为所述第一数据块。
5.根据权利要求2所述的数据查询方法,其特征在于,所述方法还包括:
根据所述数据在所述第一数据块中的第二位置信息,分别将每个所述数据存储至对应的存储器;
其中,每个所述数据对应的存储器不同。
6.根据权利要求5所述的数据查询方法,其特征在于,所述方法还包括:
确定所述数据在所述数据表中的第三位置信息与所述数据在对应的存储器中的地址之间的第一对应关系。
7.根据权利要求6所述的数据查询方法,其特征在于,所述根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息,包括:
根据所述第一位置信息,分别确定每个所述目标数据在所述数据表中的第四位置信息;
根据所述第一对应关系,确定所述第四位置信息对应的所述目标数据的地址信息。
8.一种数据查询装置,其特征在于,包括:
第一确定模块,用于接收数据查询请求,确定所述数据查询请求对应的目标数据块在数据表中的第一位置信息;
第二确定模块,用于根据所述第一位置信息,确定所述目标数据块包括的目标数据的地址信息;其中,所述地址信息包括所述目标数据在对应存储器中的目标地址;所述目标数据块包括至少两个存储于不同存储器的所述目标数据;
获取模块,用于根据所述地址信息,获取所述目标数据。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1至7任一项所述的数据查询方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据查询方法。
CN202210455302.2A 2022-04-24 2022-04-24 数据查询方法、装置、电子设备及计算机可读存储介质 Pending CN114741328A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210455302.2A CN114741328A (zh) 2022-04-24 2022-04-24 数据查询方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210455302.2A CN114741328A (zh) 2022-04-24 2022-04-24 数据查询方法、装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114741328A true CN114741328A (zh) 2022-07-12

Family

ID=82282965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210455302.2A Pending CN114741328A (zh) 2022-04-24 2022-04-24 数据查询方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114741328A (zh)

Similar Documents

Publication Publication Date Title
CN110546611B (zh) 通过跳过处理操作来减少神经网络处理器中的功耗
CN111915001B (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
US20140129814A1 (en) Method and device, terminal and computer readable medium for accelerating startup of operating system
CN108961170A (zh) 图像处理方法、装置和系统
CN112199040B (zh) 存储访问方法及智能处理装置
US20200184002A1 (en) Hardware accelerated convolution
CN112799599B (zh) 一种数据存储方法、计算核、芯片和电子设备
Kasagi et al. Parallel algorithms for the summed area table on the asynchronous hierarchical memory machine, with GPU implementations
US7073041B2 (en) Virtual memory translation unit for multimedia accelerators
CN115630663A (zh) 一种二维码识别方法、装置及电子设备
CN113918233A (zh) 一种ai芯片控制方法、电子设备及ai芯片
US20200327638A1 (en) Connected component detection method, circuit, device and computer-readable storage medium
CN103765888A (zh) 分析辅助编码
CN112233180A (zh) 基于地图的slam快速初始化方法、装置和电子设备
CN114741328A (zh) 数据查询方法、装置、电子设备及计算机可读存储介质
US11593582B2 (en) Method and device for comparing media features
CN111768331A (zh) 一种优化方法及装置
CN109614086B (zh) 基于SystemC和TLM模型的GPU纹理缓冲区数据存储硬件及存储装置
US20190095782A1 (en) Calculation device for and calculation method of performing convolution
KR102247741B1 (ko) 이미지 프로세서, 상기 이미지 프로세서의 동작 방법, 및 상기 이미지 프로세서를 포함하는 애플리케이션 프로세서
CN110087088B (zh) 一种基于运动估计的数据存储方法、终端设备及存储介质
US8423597B1 (en) Method and system for adaptive matrix trimming in an inverse discrete cosine transform (IDCT) operation
CN112817972A (zh) 数据存储方法、数据查询方法、装置及电子设备
CN113469017A (zh) 一种图像处理方法、装置及电子设备
Jen et al. A circular hough transform hardware for industrial circle detection applications

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
CB02 Change of applicant information

Address after: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing

Applicant after: Beijing ESWIN Computing Technology Co.,Ltd.

Address before: 100176 Room 101, 1f, building 3, yard 18, Kechuang 10th Street, Beijing Economic and Technological Development Zone, Beijing

Applicant before: Beijing yisiwei Computing Technology Co.,Ltd.

CB02 Change of applicant information