CN112368676A - 处理数据的方法和设备 - Google Patents
处理数据的方法和设备 Download PDFInfo
- Publication number
- CN112368676A CN112368676A CN201980039501.1A CN201980039501A CN112368676A CN 112368676 A CN112368676 A CN 112368676A CN 201980039501 A CN201980039501 A CN 201980039501A CN 112368676 A CN112368676 A CN 112368676A
- Authority
- CN
- China
- Prior art keywords
- data processing
- data
- request signal
- processing task
- task
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 458
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000008569 process Effects 0.000 claims description 48
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
一种处理数据的方法和设备,该方法包括:接收第一设备发送的至少一个请求信号(S110),所述至少一个请求信号中的任意一个请求信号所请求处理的数据处理任务最多为M个;将所述至少一个请求信号中的第n个请求信号所请求的第m个数据处理任务的地址信息存储在N行M列的地址寄存器阵列中的第n行第m列的地址寄存器中,N大于或者等于所述至少一个请求信号的个数;根据所述至少一个请求信号中每个数据处理任务的地址信息,选择所述至少一个请求信号中地址信息不冲突的多个数据处理任务进行同时处理(S120)。因此,本处理数据的方法和设备能够在片上多bank构成的存储设备中读写任务发生bank冲突的情况下,减少处理时延。
Description
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及数据处理领域,尤其涉及一种处理数据的方法和设备。
背景技术
现如今,单指令多数据流(Single Instruction Multiple Data,SIMD)、超长指令字(Very Long Instruction Word,VLIW)和存储器(Memory)交织结构等技术被广泛应用于各种处理器,以提高处理器的处理效率。交织的memory结构由多个块(bank)拼成,在充分利用SIMD结构和VLIW结构的情况下,常常会出现某个时钟周期(cycle)访问同一个memorybank的情况,从而造成memory bank冲突(conflict)。
发明内容
本申请提供了一种处理数据的方法和设备,能够在片上多bank构成的存储设备中读写任务发生bank冲突的情况下,减少处理时延。
第一方面,提供了一种处理数据的方法,包括:接收第一设备发送的至少一个请求信号,所述至少一个请求信号中的任意一个请求信号所请求处理的数据处理任务最多为M个,其中M大于等于1;将所述至少一个请求信号请求的数据处理任务的地址信息储存在地址寄存器阵列中,其中,所述地址寄存器阵列包括N行M列的地址寄存器,所述至少一个请求信号中的第n个请求信号所请求的第m个数据处理任务的地址信息存储在所述地址寄存器阵列中的第n行第m列的地址寄存器中,其中,n为大于等于1且小于等于N的正整数,m为大于等于1且小于等于M的正整数,N大于或者等于所述至少一个请求信号的个数;根据所述至少一个请求信号中每个数据处理任务的地址信息,选择所述至少一个请求信号中地址信息不冲突的多个数据处理任务;同时处理所述多个数据处理任务。
第二方面,提供了一种处理数据的方法,包括:若第二设备中未完成的请求信号的个数小于预设值,向所述第二设备发送至少一个请求信号,所述至少一个请求信号的个数与所述未完成的请求信号的个数之和小于或者等于所述预设值,每个请求信号用于请求第二设备处理至少一个数据处理任务;接收所述第二设备发送的第一完成信号,所述第一完成信号用于指示第一请求信号中包括的数据处理任务全部完成,所述第一请求信号为所述至少一个请求信号与所述未完成的请求信号中的任意一个请求信号。
基于本申请的上述方案,接收端设备可以同时接收多个请求信号,该接收端设备可以为存储设备,该存储设备在该多个请求信号中选择地址信息不冲突的数据处理任务进行同时处理,而地址冲突的处理任务按照接收顺序进行处理,从而能够处理在片上多bank构成的存储设备中读写时发生的bank冲突,并且与传统机制相比,减少了由于bank冲突引起的延迟(latency),从而提高了并行访存处理效率。
第三方面,提供了一种用于处理数据的第二设备,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该第二设备包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。
第四方面,提供了一种用于处理数据的第一设备,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该第一设备包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的单元。
第五方面,提供了一种用于处理数据的第二设备,包括:存储单元和处理器,该存储单元用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第六方面,提供了一种用于处理数据的第一设备,包括:存储单元和处理器,该存储单元用于存储指令,该处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
第七方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第八方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
第九方面,提供了一种包括指令的计算机程序产品,当计算机运行所述计算机程序产品的所述指时,所述计算机执行上述第一方面或第一方面的任意可能的实现方式中的处理数据的方法。具体地,该计算机程序产品可以运行于上述第三方面的第二设备上。
第十方面,提供了一种包括指令的计算机程序产品,当计算机运行所述计算机程序产品的所述指时,所述计算机执行上述第一方面或第一方面的任意可能的实现方式中的处理数据的方法。具体地,该计算机程序产品可以运行于上述第四方面的第一设备上。
第十一方面,提供了一种处理数据的系统,包括上述第三方面的第二设备和上述第四方面的第一设备。
附图说明
图1是本申请实施例的处理数据的方法的示意性流程图。
图2是本申请实施例的用于处理数据的第一设备的示意性框图。
图3是本申请实施例的用于处理数据的第二设备的示意性框图。
图4是本申请实施例的第二设备中寄存器阵列和处理模块的示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
图1示出了根据本申请实施例的处理数据的方法100的示意性流程图。如图1所示,该方法100包括:S110,发送至少一个请求信号;即第一设备向第二设备发送至少一个请求信号。
应理解,本申请实施例的每个请求信号可以用于请求处理一个或者多个数据处理任务,为了便于描述,这里将每个请求信号请求的数据处理任务的个数记为M,即每个请求信号请求处理的数据处理任务最多为M个,M为正整数。例如,对于任意一个请求信号,该请求信号可以为读请求(read request,RR)信号,该请求信号中的数据处理任务可以包括读取数据任务,即该数据处理任务可以用于请求从存储设备中读取某个数据;或者,该请求信号还可以为写请求(write request,WR)信号,该请求信号中的该数据处理任务可以包括写入数据任务,即该数据处理任务可以用于请求将某个数据写入存储设备中。
对应的,本申请实施例的第一设备可以为任意一个发送端设备,该第一设备可以看作主设备(master),用于发送请求信号,以发起读或者写的命令;该第二设备可以为任意接收端设备,该第二设备可以看作从设备(slave),用于接收请求信号,以被动接受读取或者被写入,例如,该第二设备可以为存储设备,该存储设备可以为片上包括多bank的memory,但本申请实施例并不限于此。
可选地,该第一设备和第二设备可以为两个不同的设备;或者,该第一设备和第二设备还可以指同一设备,例如,该第一设备和第二设备分别对应一个设备中的两个不同的功能模块,本申请实施例并不限于此。
图2示出了本申请实施例中的第一设备200的示意性框图,图3示出了本申请实施例中的第二设备200的示意性框图。如图2和图3所示,该第一设备可以包括传输接口210,该第二设备可以包括传输接口310,例如,若该第二设备为存储设备,传输接口310可以为寄存器接口(Register Interface,RIF)。对应的,在该S110中,第一设备可以通过传输接口210向第二设备发送至少一个请求信号,该第二设备通过传输接口310接收该至少一个请求信号。
应理解,在S110之前,该方法100还包括:第一设备记录第二设备中未完成的请求信号的个数,例如,如图2所示,该第一设备可以包括处理模块220,该处理模块220可以用于记录第二设备中未完成的请求信号的个数,以决定是否继续发请求信号还是等待第二设备的回应。具体地,对于第一设备向第二设备发送的任意一个请求信号,第二设备在完成该请求信号请求处理的全部数据处理任务之后,会向该第一设备返回完成信号,以便于该第一设备确定该请求信号已完成。
因此,第一设备记录第二设备中未完成的请求信号的个数包括:若第一设备向该第二设备发送l个请求信号,则将记录的该第二设备中未完成的请求信号的个数增加l,l大于或者等于1;另外,若第一设备接收到该第二设备发送的与k个请求信号一一对应的k个完成信号,则会将记录的该第二设备中未完成的请求信号的个数减少k,k大于或者等于1。
对应的,该S110具体可以包括:若第二设备中未完成的请求信号的个数小于预设值,第一设备向该第二设备发送至少一个请求信号,该至少一个请求信号的个数与该未完成的请求信号的个数之和小于或者等于该预设值。相反的,若该第二设备中未完成的请求信号的个数大于或者等于该预设值,第一设备确定不向该第二设备发送请求信号。也就是说,为了减少处理延迟,提高吞吐率,第一设备会记录第二设备中未完成的请求信号的个数,在向第二设备发送一个或者多个请求信号时,会保证该第二设备中未完成的请求信号的个数不超过预设值。
为了便于描述,这里将该预设值记为N,即第二设备中未完成的请求信号的个数小于或者等于N,该N的具体值可以结合算法调研,选取合适的N值,在资源和效率之间取得折衷。第一设备最多可以向第二设备联系连续发送N个请求信号,若当前第二设备中存在N个未完成的请求信号(包括未应答读请求(UnansweredRR)和未应答写任务(UnanseredWR)),则第一设备需要等待回应;而第二设备只需要处理数据处理任务,在完成一个请求信号的全部数据处理任务的情况下,向第一设备返回完成信号。
如图1所示,该方法100还包括:S120,处理至少一个请求信号请求的数据处理任务,即第二设备处理接收到的至少一个请求信号请求的数据处理任务。具体地,如图3所示,该第二设备可以包括寄存器阵列330,该寄存器阵列330可以包括数据寄存器阵列,该数据寄存器阵列包括N行M列的数据寄存器。图4示出了本申请实施例的寄存器阵列和处理模块的示意图。如图4所示,该寄存器阵列330可以包括N行M列的数据寄存器(Reg)。根据第二设备最多接收到N个请求信号,每个请求信号中最多包括M个数据处理任务,对应于第二设备接收到的请求信号,设置的该N行M列的数据寄存器阵列可以用于存储请求信号包括的数据处理任务的数据。
应理解,如图3所示,该第二设备还可以包括控制模块320,该控制模块320可以用于:将该至少一个请求信号请求的数据处理任务对应的数据信息储存在数据寄存器阵列中,其中,该至少一个请求信号中的第n个请求信号所请求的第m个数据处理任务的数据信息存储在该数据寄存器阵列中的第n行第m列的数据寄存器中,其中,n可以取大于等于1且小于等于N的任意正整数,m可以取大于等于1且小于等于M的任意正整数。例如,如图4所示,N行寄存器对应至多N个请求信号,每行的M列寄存器则对应一个请求信号中的最多M个数据处理任务。
具体地,若该至少一个请求信号所请求处理的数据处理任务中的第一数据处理任务为请求写入第一数据,该第一数据处理任务的数据信息包括该第一数据,第一数据寄存器用于在处理该数据处理任务之前存储待写入的该第一数据,其中,该第一数据处理任务为至少一个请求信号中任意一个请求信号所请求任意一个读取数据任务,该第一数据寄存器是该数据寄存器阵列中与该第一数据处理任务对应的数据寄存器。
或者,若该至少一个请求信号所请求处理的数据处理任务中的第二数据处理任务为请求读取第二数据,该第二数据处理任务的数据信息包括该第二数据,第二数据寄存器用于在处理该数据处理任务之后存储读取的该第二数据,其中,该第二数据处理任务为至少一个请求信号中任意一个请求信号所请求的任意一个写数据任务,该第二数据寄存器是该数据寄存器阵列中与该第二数据处理任务对应的数据寄存器。另外,在完成该第二数据处理任务之前,该第二数据寄存器中可以为空,即没有数据信息,本申请实施例并不限于此。
可选地,如图3所示,本申请实施例中的寄存器阵列330还可以包括地址寄存器阵列,该地址寄存器阵列包括N行M列的地址寄存器,以用于存储至少一个请求信号请求的数据处理任务的地址信息。具体地,该第二设备中的控制模块320可以用于:将该至少一个请求信号请求的数据处理任务的地址信息储存在地址寄存器阵列中,其中,该至少一个请求信号中的第n个请求信号所请求的第m个数据处理任务的地址信息存储在该地址寄存器阵列中的第n行第m列的地址寄存器中。
例如,如图4所示,该寄存器阵列330可以包括N行M列的地址寄存器(Reg),即图4中的寄存器阵列可以表示地址寄存器阵列。根据第二设备最多接收到N个请求信号,每个请求信号中最多包括M个数据处理任务,对应于第二设备接收到的请求信号,设置的该N行M列的地址寄存器阵列可以用于存储请求信号包括的数据处理任务的地址信息。
应理解,本申请实施例中的地址寄存器阵列和数据寄存器阵列可以为两个寄存器阵列,即寄存器阵列330包括两个寄存器阵列;或者,本申请实施例中的地址寄存器阵列和数据寄存器阵列也可以仅通过一个寄存器阵列实现,即该寄存器阵列330为一个寄存器阵列,例如,如图4所示,该寄存器阵列330中每个寄存器既可以用作数据寄存器,以用于存储数据信息,也可以用作地址寄存器,以用于存储地址信息,本申请实施例并不限于此。
在本申请实施例中,该第二设备根据该至少一个请求信号中每个数据处理任务的地址信息,选择该至少一个请求信号中地址信息不冲突的多个数据处理任务;并且,该第二设备可以同时处理该多个数据处理任务。具体地,如图3所示,该第二设备可以包括至少一个处理模块340,该处理模块340可以用于处理数据处理任务,例如,该处理模块340可以包括bank,即该第二设备可以包括至少一个bank,可以将一个bank称为一个处理模块,或者也可以将多个bank称为一个处理模块。
为了便于描述,下面以该第二设备包括多个bank为例进行描述,该bank的个数大于或者等于M,例如,若bank的个数大于M,由于每个请求信号中最多包括M个数据处理任务,因此任意一个请求信号请求的最多M个数据处理任务至多对应M个bank,也就是说对于任意一个请求信号的数据处理任务,存在部分bank不会被其使用;再例如,该bank的个数也可以等于M,即如图4所示,这里假设bank有M个,分别记为B0-B(M-1);并且,一个bank对应一个地址,不同bank具有不同的地址,该多个bank可以同时处理数据处理任务,该每个bank可以处理读取和/或写入任务。因此,在本申请实施例中,控制模块320可以在至少一个请求信号中选择地址信息不冲突的多个数据处理任务;并且,通过对应的多个bank同时处理该多个数据处理任务。
应理解,该第二设备可以根据每个数据处理任务的地址信息,确定对应的bank。具体地,如图3所示,本申请实施例中的控制模块320可以用于对每个请求信号中的数据处理任务的地址信息进行重排。例如,该控制模块320中可以包括地址生成单元和/或地址处理单元,以排列每个请求信号中的数据处理任务对应的地址信息以及该地址信息对应的bank。
为了便于描述,这里假设第二设备中不包括任何一个请求信号,也就是没有数据处理任务,那么如果该第二设备连续接收到第一设备发送的n个请求信号,可以将该n个请求信号存储在寄存器阵列330中的n行的寄存器中,例如,可以将n个请求信号包括的全部数据处理任务的地址信息存储至地址寄存器阵列的n行中;还可以将n个请求信号包括的全部数据处理任务的数据信息存储至数据寄存器阵列的n行中,n小于或者等于N。
可选地,由于通常情况下,第二设备需要根据各个数据处理任务的接收的先后顺序进行处理,因此第二设备可以按照接收顺序存储该n个请求信号的数据处理任务的地址信息和数据信息,以便于按序处理。例如,即将n个请求信号包括的全部数据处理任务的地址信息按照接收顺序依次存储至地址寄存器阵列的前n行中,并且每一行的数据处理任务也按照接收的先后顺序从第一列依次向后排列;还可以将n个请求信号包括的全部数据处理任务的数据信息按照接收顺序依次存储至数据寄存器阵列的前n行中,并且每一行的数据处理任务也按照接收的先后顺序从第一列依次向后排列。但是,该第二设备也可以乱序存储,例如,通过时间标识指示每个请求信号中数据处理任务的接收顺序,本申请实施例并不限于此。但为了便于说明,本申请实施例中以按序排列数据处理任务并且按序处理为例进行说明。
具体地,首先描述第二设备处理最先接收到第一行的请求信号包括的m个数据处理任务。该第二设备有M个bank,第一种情况是,若第一行的请求信号也有M个数据处理任务,该M个数据处理任务的地址信息之间不存在地址冲突的情况,也就是M个数据处理任务与M个bank一一对应,那么这M个数据处理任务可以通过M个bank同时处理。
第二种情况,若第一行的请求信号的个数小于M个,假设该第一个请求信号请求处理m个数据处理任务,m小于M,并且,该m个个数据处理任务的地址信息之间也不存在地址冲突的情况,也就是m个数据处理任务与M个bank中的m个bank一一对应,那么这m个bank可以同时处理对应的数据处理任务。另外,该M中存在M-m个bank没有数据处理任务,此时可以在第二行的请求信号中继续查找对应的数据处理任务。
以查找该M-m个bank中任意一个bank为例,若在第二行请求信号中仍然没有查找到该bank对应的数据处理任务,则继续依次向下一行查找,直至查找到对应的数据处理任务;并且,如果查找到某一行请求信号中仅包括与该bank对应的一个数据处理任务,则该bank可以同上述的处理第一行的数据处理任务的m个bank同时进行处理;但如果查找到某一行请求信号中包括了与该bank对应的多个数据处理任务,则该bank选择该多个数据处理任务中最先接收到的数据处理任务,并与上述的处理第一行的数据处理任务的m个bank同时进行处理,而与该bank对应的其他数据处理任务,可以按照接收的先后顺序,依次进行处理。
第三种情况,第一个请求信号请求处理m个数据处理任务,m小于或者等于M,并且,m个数据处理任务中存在多个数据处理任务对应了同一个bank的情况,也就是发生地址冲突的情况,那么地址冲突的多个数据处理任务则不可以同时处理,而其他不冲突的数据处理任务则可以同时处理。具体地,对于地址冲突的多个数据处理任务,其共同对应的bank按照该多个数据处理任务的接收从早到晚的顺序,依次处理,即该共同的bank首先处理最先接收到的数据处理任务,并且可以与其他bank同时处理,最先接收到的数据处理任务完成后,该共同的bank继续处理与其对应的该第一请求信号中的另一个数据处理任务,依次类推。
另外,在该第三种情况中,由于发生了地址冲突,那么该M个bank中一定存在至少一个bank没有对应第一行的请求信号中的数据处理任务,此时可以参照第二种情况中M-m个bank的查找方式,为该至少一个bank分配数据处理任务,以便于可以与其他bank同时进行数据处理,从而节省时间。
例如,假设第二设备包括16个bank,分别标记为bank0-bank15,并且假设第二设备接收的n个请求信号中每个请求信号中包括16个数据处理任务。如果第一行的第一个请求信号的16个数据处理任务按照接收先后顺序分别标记为1-16,并且假设标记为1的数据处理任务对应bank1,标记为2的数据处理任务对应bank2,依次类推,直到标记为15的数据处理任务对应bank15,而标记为16的数据处理任务也对应bank15,那么数据处理任务15和16发生地址冲突。
由于地址冲突,第二设备确定bank15按照接收顺序,先处理数据处理任务15,之后再处理数据处理任务16。另外,由于地址冲突,所以也导致bank0没有数据处理任务,那么可以在第二行对应的第二个请求信号中查找至少一个对应bank0的数据处理任务。假设在第二请求信号中存在一个或者多个对应bank0的数据处理任务,其中接收时间最早的是数据处理任务7,那么在该16个bank第一轮的数据处理过程中,该16个bank可以同时处理各自对应的第一个数据处理任务,即bank1-bank15处理第一请求信号中的数据处理任务1-15,而bank0处理第二请求信号中与之对应的数据处理任务7。按照这种顺序,假设全部数据处理任务的处理时间均相等,那么在完成第一轮数据处理任务之后,bank1-14继续处理在第二请求信号中查找到的对应的数据处理任务,而bank15需要处理第一请求信号中的数据处理任务16,bank0则继续处理第二请求信号中除了数据处理任务7之外的其他与bank0对应的数据处理任务,或者,在第二请求中不存在其他与bank0对应的数据处理任务的情况下,则继续查找第三请求信号,以此类推。
应理解,按照上述描述的顺序依次处理接收到的每个请求信号中的每个数据处理任务,即使bank处理每个数据处理任务所需的时间相同,那么对于任意两个数据处理任务的处理顺序,仍然可能会存在多种可能。这里以该至少一个请求信号中的任意两个数据处理任务为例,分别称为第三数据处理任务与第四数据处理任务,其中,该第三数据处理任务的接收时间早于该第四数据处理任务,并且,第三数据处理任务与第四数据处理任务可能是同一请求信号中的两个处理任务,或者也可能是不同请求信号中的两个处理任务。那么,在bank处理至少一个请求信号中的每个数据处理任务所需的时间相同的情况下,第二设备处理第三数据处理任务与第四数据处理任务的顺序存在下述几种可能。
具体地,若该第三数据处理任务的地址信息与该第四数据处理任务的地址信息相同,也就是二者地址冲突,那么不可能同时处理这两个数据处理任务,根据接收的先后顺序,第二设备会在处理该第三数据处理任务之后处理该第四数据处理任务,也就是第四数据处理任务的处理时间晚于第三数据处理任务的处理时间。
但是,若该第三数据处理任务的地址信息与该第四数据处理任务的地址信息不同,那么第二设备可以根据与该第三数据处理任务具有相同地址信息的数据处理任务的个数,以及与该第四数据处理任务具有相同地址信息的数据处理任务的个数,进一步确定该第三数据处理任务与该第四数据处理任务的处理顺序。具体地,假设与该第三数据处理任务具有相同地址信息且处理顺序早于该第三数据处理任务的数据处理任务的个数为第一值,而与该第四数据处理任务具有相同地址信息且处理顺序早于该第四数据处理任务的数据处理任务的个数为第二值,那么若该第一值等于该第二值,第二设备同时处理该第三数据处理任务与该第四数据处理任务;若该第一值小于该第二值,第二设备在处理该第三数据处理任务之后处理该第四数据处理任务;若该第一值大于该第二值,第二设备在处理该第三数据处理任务之前处理该第四数据处理任务。
例如,假设第二设备当前没有数据处理任务,此时接到第一个请求信号,该第一个请求信号包括该第三数据处理任务和第四数据处理任务,并且这两个数据处理任务地址信息不同,这两个数据处理任务中每个数据处理任务的地址信息与其他数据处理任务的地址信息也不同,也就是说上面定义的第一值和第二值都为0,那么第二设备可以同时处理该第三数据处理任务和第四数据处理任务。
再例如,同样假设第二设备当前没有数据处理任务,此时接到第一个请求信号,该第一个请求信号包括该第三数据处理任务和第四数据处理任务,并且这两个数据处理任务地址信息不同,但是在第三数据处理任务的接收时间之前,存在第五数据处理任务,其地址信息与第三数据处理任务的地址信息相同,而第四数据处理任务与其他数据处理任务的地址信息都不同,那么上面定义的第一值等于1,第二值等于0,此时第二设备可以同时处理第五数据处理任务和第四数据处理任务,在完成第五数据处理任务之后,再处理第三数据处理任务,即该第三数据处理任务的处理时间晚于第四数据处理任务的处理时间。
综上,按照每个数据处理任务的地址信息以及接收时间先后的顺序,可以为每个bank排列一个或者多个数据处理任务,每个bank按照接收顺序,依次处理对应的数据处理任务。
可选地,如图1所示,该方法100还可以包括:S130,发送请求信号对应的完成信号,即对于第二设备中的任意请求信号而言,例如这里将其称为第一请求信号,若第二设备完成了该第一请求信号请求的全部数据处理任务,则该第二设备可以向第一设备发送第一完成信号,该第一完成信号用于指示该第一请求信号中包括的数据处理任务全部完成。对应的,第一设备接收该第二设备发送的该第一完成信号,确定第二设备已经完成第一请求信号中包括的数据处理任务,该第一设备可以将记录的第二设备中未完成信号的个数减1。
应理解,第二设备可以根据每个数据处理任务的标识确定该数据处理任务是否完成。具体地,第二设备可以根据该数据寄存器阵列中与第一请求信号对应的一行数据寄存器的标识,确定该第一请求信号中包括的数据处理任务是否全部完成;或者,第二设备也可以根据地址寄存器阵列中与第一请求信号对应的一行地址寄存器的标识,确定该第一请求信号中包括的数据处理任务是否全部完成。也就是说,对于每一行数据寄存器或者地址寄存器包括的每个寄存器,可以设置一个标识,当该标识显示为一个值的时候,表示该寄存器的数据处理任务未完成,当该标识显示为另一个值的时候,表示该寄存器中的数据处理任务已完成。
例如,假设通过标识“1”表示数据处理任务完成,标识“0”表示未完成。对于第一请求信号对应的一行数据寄存器,若该行数据寄存器的标识全部显示为“1”,则表示该行的数据处理任务已经全部完成,该第二设备可以确定第一请求信号已完成,并向第一设备发送第一完成信号;但若该行数据寄存器的标识中存在至少一个显示为“0”,则表示该行数据处理任务没有全部完成,即标记为“0”的数据寄存器对应的数据处理任务未完成。
在本申请实施例中,若该第一请求信号中包括的数据处理任务全部完成,第二设备向第一设备发送第一完成信号,该第一完成信号用于指示该第一请求信号中包括的数据处理任务全部完成。可选地,该第二设备可以按照接收顺序处理数据处理任务,对应的,第二设备还可以按照接收顺序返回完成信号。具体地,若该第一请求信号中包括的数据处理任务全部完成,则第二设备会在发送与第二请求信号对应的第二完成信号之后,发送第一完成信号,其中,该第二请求信号为该至少一个请求信号中接收时间早于该第一请求信号的接收时间的任意一个请求信号,该第二完成信号用于指示该第二请求信号中包括的数据处理任务全部完成。
应理解,第一完成信号可以用于指示第一请求信号已完成,还可以在该第一完成信号中携带其他数据。具体地,以该第一请求信号中的第五数据处理任务为例,该第五数据处理任务为第一请求信号中的任意一个数据处理任务,若该第五数据处理任务为请求读取第五数据,该第一完成信号包括该第五数据。或者,若该第一请求信号的第五数据处理任务为请求写入第五数据,则在第一请求信号中可以包括该第五数据。
因此,本申请实施例的处理数据的方法和设备,存储设备可以同时接收多个请求信号,在该多个请求信号中选择地址信息不冲突的数据处理任务进行同时处理,而地址冲突的处理任务按照接收顺序进行处理,从而能够处理在片上多bank构成的存储设备中读写时发生的bank冲突(conflict)。而传统的机制是当出现冲突的时候,存储设备会分多个cycle完成当前数据的处理,再接受下一个任务,也就是会在一个请求完成之后再接收下一个请求,这会出现时延(latency),出现冲突最多的bank决定了当前操作的latency大小。所以本申请实施例与传统机制相比,减少了由于bank冲突引起的延迟(latency),从而提高了并行访存处理效率。
应理解,本申请各实施例的装置可以基于存储器和处理器实现,各存储器用于存储用于执行本申请个实施例的方法的指令,处理器执行上述指令,使得装置执行本申请各实施例的方法。
应理解,本申请实施例中提及的处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器或者存储设备可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例还提供一种计算机可读存储介质,其上存储有指令,当指令在计算机上运行时,使得计算机执行上述各方法实施例的方法。
本申请实施例还提供一种计算设备,该计算设备包括上述计算机可读存储介质。
本申请实施例可以应用在飞行器,尤其是无人机领域。
应理解,本申请各实施例的电路、子电路、子单元的划分只是示意性的。本领域普通技术人员可以意识到,本文中所公开的实施例描述的各示例的电路、子电路和子单元,能够再行拆分或组合。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital SubscriberLine,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
应理解,本申请各实施例均是以总位宽为16位(bit)为例进行说明的,本申请各实施例可以适用于其他的位宽。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (29)
1.一种处理数据的方法,其特征在于,包括:
接收第一设备发送的至少一个请求信号,所述至少一个请求信号中的任意一个请求信号所请求处理的数据处理任务最多为M个,其中M大于等于1;
将所述至少一个请求信号请求的数据处理任务的地址信息储存在地址寄存器阵列中,其中,所述地址寄存器阵列包括N行M列的地址寄存器,所述至少一个请求信号中的第n个请求信号所请求的第m个数据处理任务的地址信息存储在所述地址寄存器阵列中的第n行第m列的地址寄存器中,其中,n为大于等于1且小于等于N的正整数,m为大于等于1且小于等于M的正整数,N大于或者等于所述至少一个请求信号的个数;
根据所述至少一个请求信号中每个数据处理任务的地址信息,选择所述至少一个请求信号中地址信息不冲突的多个数据处理任务;
同时处理所述多个数据处理任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述至少一个请求信号请求的数据处理任务对应的数据信息储存在数据寄存器阵列中,其中,所述数据寄存器阵列包括N行M列的数据寄存器,所述至少一个请求信号中的第n个请求信号所请求的第m个数据处理任务对应的数据信息存储在所述数据寄存器阵列中的第n行第m列的数据寄存器中。
3.根据权利要求2所述的方法,其特征在于,
若所述至少一个请求信号所请求处理的数据处理任务中的第一数据处理任务为请求写入第一数据,所述第一数据处理任务的数据信息包括所述第一数据,第一数据寄存器用于在处理所述数据处理任务之前存储待写入的所述第一数据,所述第一数据寄存器是所述数据寄存器阵列中与所述第一数据处理任务对应的数据寄存器;
若所述至少一个请求信号所请求处理的数据处理任务中的第二数据处理任务为请求读取第二数据,所述第二数据处理任务的数据信息包括所述第二数据,第二数据寄存器用于在处理所述数据处理任务之后存储读取的所述第二数据,所述第二数据寄存器是所述数据寄存器阵列中与所述第二数据处理任务对应的数据寄存器。
4.根据权利要求1至3中任一项所述的方法,其特征在于,第三数据处理任务与第四数据处理任务为所述至少一个请求信号中的任意两个数据处理任务,所述第三数据处理任务的接收时间早于所述第四数据处理任务,
所述方法还包括:
若所述第三数据处理任务的地址信息与所述第四数据处理任务的地址信息相同,在处理所述第三数据处理任务之后处理所述第四数据处理任务;或者,
若所述第三数据处理任务的地址信息与所述第四数据处理任务的地址信息不同,根据与所述第三数据处理任务具有相同地址信息的数据处理任务的个数,以及与所述第四数据处理任务具有相同地址信息的数据处理任务的个数,确定所述第三数据处理任务与所述第四数据处理任务的处理顺序。
5.根据权利要求4所述的方法,其特征在于,所述第三数据处理任务与所述第四数据处理任务为同一个请求信号中的任意两个数据处理任务。
6.根据权利要求4或5所述的方法,其特征在于,与所述第三数据处理任务具有相同地址信息且处理顺序早于所述第三数据处理任务的数据处理任务的个数为第一值,与所述第四数据处理任务具有相同地址信息且处理顺序早于所述第四数据处理任务的数据处理任务的个数为第二值,
所述根据与所述第三数据处理任务具有相同地址信息的数据处理任务的个数,以及与所述第四数据处理任务具有相同地址信息的数据处理任务的个数,确定所述第三数据处理任务与所述第四数据处理任务的处理顺序,包括:
若所述第一值等于所述第二值,同时处理所述第三数据处理任务与所述第四数据处理任务;
若所述第一值小于所述第二值,在处理所述第三数据处理任务之后处理所述第四数据处理任务;
若所述第一值大于所述第二值,在处理所述第三数据处理任务之前处理所述第四数据处理任务。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
根据所述数据寄存器阵列中与第一请求信号对应的一行数据寄存器的标识,确定所述第一请求信号中包括的数据处理任务是否全部完成,所述第一请求信号为所述至少一个请求信号中的任意一个请求信号;
若所述第一请求信号中包括的数据处理任务全部完成,向所述第一设备发送第一完成信号,所述第一完成信号用于指示所述第一请求信号中包括的数据处理任务全部完成。
8.根据权利要求7所述的方法,其特征在于,所述若所述第一请求信号中包括的数据处理任务全部完成,向所述第一设备发送第一完成信号,包括:
若所述第一请求信号中包括的数据处理任务全部完成,在向所述第一设备发送与第二请求信号对应的第二完成信号之后,向所述第一设备发送第一完成信号,所述第二请求信号为所述至少一个请求信号中接收时间早于所述第一请求信号的接收时间的任意一个请求信号,所述第二完成信号用于指示所述第二请求信号中包括的数据处理任务全部完成。
9.根据权利要求7或8所述的方法,其特征在于,若所述第一请求信号的第五数据处理任务为请求读取第五数据,所述第一完成信号包括所述第五数据。
10.一种处理数据的方法,其特征在于,包括:
若第二设备中未完成的请求信号的个数小于预设值,向所述第二设备发送至少一个请求信号,所述至少一个请求信号的个数与所述未完成的请求信号的个数之和小于或者等于所述预设值,每个请求信号用于请求所述第二设备处理至少一个数据处理任务;
接收所述第二设备发送的第一完成信号,所述第一完成信号用于指示第一请求信号中包括的数据处理任务全部完成,所述第一请求信号为所述至少一个请求信号与所述未完成的请求信号中的任意一个请求信号。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若所述第二设备中未完成的请求信号的个数大于或者等于预设值,确定不向所述第二设备发送请求信号。
12.根据权利要求10或11所述的方法,其特征在于,
若所述第一请求信号中的第一数据处理任务为请求写入第一数据,所述第一请求信号包括所述第一数据;
若所述第一请求信号中的第二数据处理任务为请求读取第二数据,所述第一完成信号包括所述第二数据。
13.根据权利要求10至12中任一项所述的方法,其特征在于,所述方法还包括:
记录所述第二设备中未完成的请求信号的个数;
若向所述第二设备发送l个请求信号,将所述第二设备中未完成的请求信号的个数增加l,l大于或者等于1;
若接收到所述第二设备发送的与k个请求信号一一对应的k个完成信号,将所述第二设备中未完成的请求信号的个数减少k,k大于或者等于1。
14.一种用于处理数据的第二设备,其特征在于,包括:传输接口、地址寄存器阵列、控制模块以及多个处理模块,所述多个处理模块一一对应的多个地址不同,
所述传输接口用于:接收第一设备发送的至少一个请求信号,所述至少一个请求信号中的任意一个请求信号所请求处理的数据处理任务最多为M个,其中M大于等于1;
所述控制模块用于:将所述至少一个请求信号请求的数据处理任务的地址信息储存在所述地址寄存器阵列中,其中,所述地址寄存器阵列包括N行M列的地址寄存器,所述至少一个请求信号中的第n个请求信号所请求的第m个数据处理任务的地址信息存储在所述地址寄存器阵列中的第n行第m列的地址寄存器中,其中,n为大于等于1且小于等于N的正整数,m为大于等于1且小于等于M的正整数,N大于或者等于所述至少一个请求信号的个数;
所述控制模块还用于:根据所述至少一个请求信号中每个数据处理任务的地址信息,选择所述至少一个请求信号中地址信息不冲突的多个数据处理任务,所述多个数据处理任务中一个数据处理任务对应一个处理模块,所述多个处理模块中的一个处理模块至多同时处理一个数据处理任务;
所述多个处理模块用于:同时处理所述多个数据处理任务。
15.根据权利要求14所述的第二设备,其特征在于,所述第二设备还包括:数据寄存器阵列,所述数据寄存器阵列包括N行M列的数据寄存器,
所述控制模块还用于:将所述至少一个请求信号请求的数据处理任务对应的数据信息储存在所述数据寄存器阵列中,其中,所述至少一个请求信号中的第n个请求信号所请求的第m个数据处理任务的数据信息存储在所述数据寄存器阵列中的第n行第m列的数据寄存器中。
16.根据权利要求15所述的第二设备,其特征在于,
若所述至少一个请求信号所请求处理的数据处理任务中的第一数据处理任务为请求写入第一数据,所述第一数据处理任务的数据信息包括所述第一数据,第一数据寄存器用于在处理所述数据处理任务之前存储待写入的所述第一数据,所述第一数据寄存器是所述数据寄存器阵列中与所述第一数据处理任务对应的数据寄存器;
若所述至少一个请求信号所请求处理的数据处理任务中的第二数据处理任务为请求读取第二数据,所述第二数据处理任务的数据信息包括所述第二数据,第二数据寄存器用于在处理所述数据处理任务之后存储读取的所述第二数据,所述第二数据寄存器是所述数据寄存器阵列中与所述第二数据处理任务对应的数据寄存器。
17.根据权利要求14至16中任一项所述的第二设备,其特征在于,第三数据处理任务与第四数据处理任务为所述至少一个请求信号中的任意两个数据处理任务,所述第三数据处理任务的接收时间早于所述第四数据处理任务,
所述控制模块还用于:
若所述第三数据处理任务的地址信息与所述第四数据处理任务的地址信息相同,控制所述多个处理模块在处理所述第三数据处理任务之后处理所述第四数据处理任务;或者,
若所述第三数据处理任务的地址信息与所述第四数据处理任务的地址信息不同,根据与所述第三数据处理任务具有相同地址信息的数据处理任务的个数,以及与所述第四数据处理任务具有相同地址信息的数据处理任务的个数,确定所述第三数据处理任务与所述第四数据处理任务的处理顺序。
18.根据权利要求17所述的第二设备,其特征在于,所述第三数据处理任务与所述第四数据处理任务为同一个请求信号中的任意两个数据处理任务。
19.根据权利要求17或18所述的第二设备,其特征在于,与所述第三数据处理任务具有相同地址信息且处理顺序早于所述第三数据处理任务的数据处理任务的个数为第一值,与所述第四数据处理任务具有相同地址信息且处理顺序早于所述第四数据处理任务的数据处理任务的个数为第二值,
所述控制模块用于:
若所述第一值等于所述第二值,控制所述多个处理模块同时处理所述第三数据处理任务与所述第四数据处理任务;
若所述第一值小于所述第二值,控制所述多个处理模块在处理所述第三数据处理任务之后处理所述第四数据处理任务;
若所述第一值大于所述第二值,控制所述多个处理模块在处理所述第三数据处理任务之前处理所述第四数据处理任务。
20.根据权利要求14至19中任一项所述的第二设备,其特征在于,所述控制模块还用于:
根据所述数据寄存器阵列中与第一请求信号对应的一行数据寄存器的标识,确定所述第一请求信号中包括的数据处理任务是否全部完成,所述第一请求信号为所述至少一个请求信号中的任意一个请求信号;
若所述第一请求信号中包括的数据处理任务全部完成,通过所述传输接口向所述第一设备发送第一完成信号,所述第一完成信号用于指示所述第一请求信号中包括的数据处理任务全部完成。
21.根据权利要求20所述的第二设备,其特征在于,所述控制模块用于:
若所述第一请求信号中包括的数据处理任务全部完成,在通过所述传输接口向所述第一设备发送与第二请求信号对应的第二完成信号之后,通过所述传输接口向所述第一设备发送第一完成信号,所述第二请求信号为所述至少一个请求信号中接收时间早于所述第一请求信号的接收时间的任意一个请求信号,所述第二完成信号用于指示所述第二请求信号中包括的数据处理任务全部完成。
22.根据权利要求20或21所述的第二设备,其特征在于,若所述第一请求信号的第五数据处理任务为请求读取第五数据,所述第一完成信号包括所述第五数据。
23.一种用于处理数据的第一设备,其特征在于,包括:传输接口,
所述传输接口用于:若第二设备中未完成的请求信号的个数小于预设值,向所述第二设备发送至少一个请求信号,所述至少一个请求信号的个数与所述未完成的请求信号的个数之和小于或者等于所述预设值,每个请求信号用于请求所述第二设备处理至少一个数据处理任务;
所述传输接口还用于:接收所述第二设备发送的第一完成信号,所述第一完成信号用于指示第一请求信号中包括的数据处理任务全部完成,所述第一请求信号为所述至少一个请求信号与所述未完成的请求信号中的任意一个请求信号。
24.根据权利要求23所述的第一设备,其特征在于,所述第一设备还包括:
处理模块,用于:若所述第二设备中未完成的请求信号的个数大于或者等于预设值,确定不向所述第二设备发送请求信号。
25.根据权利要求23或24所述的第一设备,其特征在于,
若所述第一请求信号中的第一数据处理任务为请求写入第一数据,所述第一请求信号包括所述第一数据;
若所述第一请求信号中的第二数据处理任务为请求读取第二数据,所述第一完成信号包括所述第二数据。
26.根据权利要求23至25中任一项所述的第一设备,其特征在于,所述第一设备还包括:处理模块,所述处理模块用于:
记录所述第二设备中未完成的请求信号的个数;
若向所述第二设备发送l个请求信号,将所述第二设备中未完成的请求信号的个数增加l,l大于或者等于1;
若接收到所述第二设备发送的与k个请求信号一一对应的k个完成信号,将所述第二设备中未完成的请求信号的个数减少k,k大于或者等于1。
27.一种处理数据的系统,其特征在于,包括如权利要求14-22中任一项所述的第二设备,以及如权利要求23至26中任一项所述的第一设备。
28.一种计算机可读介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于执行如权利要求1至9中任一项所述的方法的指令。
29.一种计算机可读介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于执行如权利要求10至13中任一项所述的方法的指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/109060 WO2021056541A1 (zh) | 2019-09-29 | 2019-09-29 | 处理数据的方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112368676A true CN112368676A (zh) | 2021-02-12 |
Family
ID=74516628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980039501.1A Pending CN112368676A (zh) | 2019-09-29 | 2019-09-29 | 处理数据的方法和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112368676A (zh) |
WO (1) | WO2021056541A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448962A (zh) * | 2021-06-02 | 2021-09-28 | 中科驭数(北京)科技有限公司 | 数据库数据管理方法和装置 |
CN115237602A (zh) * | 2022-08-16 | 2022-10-25 | 摩尔线程智能科技(北京)有限责任公司 | 一种归一化ram及其分配方法 |
CN115951842A (zh) * | 2023-02-23 | 2023-04-11 | 摩尔线程智能科技(北京)有限责任公司 | 基于单路输入的数据处理装置、方法和计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1662904A (zh) * | 2002-06-26 | 2005-08-31 | 国际商业机器公司 | 具有级联simd结构的数字信号处理器 |
CN101206585A (zh) * | 2006-12-22 | 2008-06-25 | 上海晨兴电子科技有限公司 | 计算机系统服务请求发送和处理装置及方法 |
CN101324869A (zh) * | 2008-07-03 | 2008-12-17 | 北京中星微电子有限公司 | 一种基于axi总线的多路复用器 |
CN104699465A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 向量处理器中支持simt的向量访存装置和控制方法 |
CN108733415A (zh) * | 2018-05-16 | 2018-11-02 | 中国人民解放军国防科技大学 | 支持向量随机访存的方法及装置 |
-
2019
- 2019-09-29 WO PCT/CN2019/109060 patent/WO2021056541A1/zh active Application Filing
- 2019-09-29 CN CN201980039501.1A patent/CN112368676A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1662904A (zh) * | 2002-06-26 | 2005-08-31 | 国际商业机器公司 | 具有级联simd结构的数字信号处理器 |
CN101206585A (zh) * | 2006-12-22 | 2008-06-25 | 上海晨兴电子科技有限公司 | 计算机系统服务请求发送和处理装置及方法 |
CN101324869A (zh) * | 2008-07-03 | 2008-12-17 | 北京中星微电子有限公司 | 一种基于axi总线的多路复用器 |
CN104699465A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 向量处理器中支持simt的向量访存装置和控制方法 |
CN108733415A (zh) * | 2018-05-16 | 2018-11-02 | 中国人民解放军国防科技大学 | 支持向量随机访存的方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448962A (zh) * | 2021-06-02 | 2021-09-28 | 中科驭数(北京)科技有限公司 | 数据库数据管理方法和装置 |
CN115237602A (zh) * | 2022-08-16 | 2022-10-25 | 摩尔线程智能科技(北京)有限责任公司 | 一种归一化ram及其分配方法 |
CN115237602B (zh) * | 2022-08-16 | 2023-09-05 | 摩尔线程智能科技(北京)有限责任公司 | 一种归一化ram及其分配方法 |
CN115951842A (zh) * | 2023-02-23 | 2023-04-11 | 摩尔线程智能科技(北京)有限责任公司 | 基于单路输入的数据处理装置、方法和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021056541A1 (zh) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9021178B2 (en) | High performance path for command processing | |
US7480759B2 (en) | System, method and storage medium for providing data caching and data compression in a memory subsystem | |
US10534540B2 (en) | Memory protocol | |
KR102448999B1 (ko) | 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스 | |
US20210090619A1 (en) | Multi-port memory device and a method of using the same | |
US6381686B1 (en) | Parallel processor comprising multiple sub-banks to which access requests are bypassed from a request queue when corresponding page faults are generated | |
CN112368676A (zh) | 处理数据的方法和设备 | |
US12001682B2 (en) | PIM computing system and memory controller thereof | |
CN109213423B (zh) | 基于地址屏障无锁处理并发io命令 | |
CN113867801A (zh) | 指令缓存、指令缓存组及其请求合并方法 | |
US7543114B2 (en) | System and controller with reduced bus utilization time | |
CN105912270A (zh) | 一种面向pm的访存请求解析装置与方法 | |
JP2016181025A (ja) | メモリデバイスおよび情報処理装置 | |
CN114416612B (zh) | 存储器的访问方法、装置、电子设备和存储介质 | |
US20080109627A1 (en) | Nonvolatile Memory Device And Method For Accessing Nonvolatile Memory Device | |
US9620215B2 (en) | Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode | |
CN107783909B (zh) | 一种内存地址总线扩展方法及装置 | |
US20150212759A1 (en) | Storage device with multiple processing units and data processing method | |
KR20110093373A (ko) | 메모리 제어기 및 그 메모리 제어기가 탑재된 컴퓨팅 장치 | |
JPH0282330A (ja) | ムーブアウト・システム | |
CN105446935A (zh) | 共享存储并发访问处理方法及装置 | |
CN106293491B (zh) | 写请求的处理方法和内存控制器 | |
CN116360672A (zh) | 访问存储器的方法、装置和电子设备 | |
CN112771490B (zh) | 通过读取标识(rid)号在存储器中寻址 | |
CN109213424B (zh) | 并发io命令的无锁处理方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210212 |