CN117931729B - 向量处理器访存指令处理方法和*** - Google Patents
向量处理器访存指令处理方法和*** Download PDFInfo
- Publication number
- CN117931729B CN117931729B CN202410331347.8A CN202410331347A CN117931729B CN 117931729 B CN117931729 B CN 117931729B CN 202410331347 A CN202410331347 A CN 202410331347A CN 117931729 B CN117931729 B CN 117931729B
- Authority
- CN
- China
- Prior art keywords
- vector
- register
- instruction
- upstream
- write
- 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.)
- Active
Links
- 239000013598 vector Substances 0.000 title claims abstract description 246
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 149
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 105
- 238000000034 method Methods 0.000 claims abstract description 31
- 238000009826 distribution Methods 0.000 claims abstract description 25
- 238000003860 storage Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 21
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures of general purpose stored program computers data or demand driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
本申请实施例提供一种向量处理器访存指令处理方法和***,涉及存储技术领域。解决现有指令实现方法面积或性能不佳的问题,所述方法包括:通过向量处理器中向量访存单元接收连续的N条上游读/写指令后,交替将N条上游读/写指令分别分发至各个向量分解寄存器;通过各个向量分解寄存器分别将N条上游读/写指令按照指令分发顺序依次发送至下游;通过向量访存单元接收下游对于N条上游读/写指令按照指令分发顺序依次返回的返回信息,并将返回信息进行合并处理后进行写回。本申请的方法,多条上游读/写指令交替被分别送入至各个向量分解寄存器,进而利用不同向量分解寄存器交替将多条上游读/写指令送到下游进行处理,提高了整体数据存取效率。
Description
技术领域
本申请涉及存储技术领域,具体地,涉及一种向量处理器访存指令处理方法和***。
背景技术
向量处理器***(Vector Processor System,VPS),是面向向量型并行计算,以流水线结构为主的并行处理计算机***。采用先行控制和重叠操作技术、运算流水线、交叉访问的并行存储器等并行处理结构,对提高运算速度有重要作用。但在实际运行时还不能充分发挥并行处理潜力。向量运算很适合于流水线计算机的结构特点。向量型并行计算与流水线结构相结合,能在很大程度上克服通常流水线计算机中指令处理量太大、存储访问不均匀、相关等待严重、流水不畅等缺点,并可充分发挥并行处理结构的潜力,显著提高运算速度。在向量处理器技术领域,读操作(Load)为把外部存储器数据加载到处理器的寄存器中,写操作(Store)就是把寄存器中的数据存储到外部存储器中。
向量处理器中,RISCV(基于RISC(Reduced Instruction Set Computer,精简指令集计算机)的开源指令集架构)数据读取指令中有一类segment load/store (数据段访存)指令,该指令的特点是一条指令需要操作的数据在存取过程中可跨越多个(2~8个)向量寄存器,比如一条segment读指令需要将读回的数据写入v0~v7 八个寄存器,而在写回的过程中也需要v0~v7这八个寄存器的原始数据同时存在于VLSU(Vector Load/Store Unit,向量访存单元)内部。由此可见,segment指令是一类可消耗大量VLSU面积资源的指令。所以,现有技术中,如果两条segment指令需要背靠背(back2back 或者b2b)进行操作时,要么使用大量内部寄存器资源将微操作(Micro-operation,μOP)的所有信息都存下来,或者将有限的资源用于第一条指令直到其完成执行,再执行第二条。这两种指令的实现方法有各自缺点:面积或性能不佳。
发明内容
为了解决上述技术缺陷之一,本申请实施例中提供了一种向量处理器访存指令处理方法和***。
根据本申请实施例的第一个方面,提供了一种向量处理器访存指令处理方法,该方法包括:
通过向量处理器中向量访存单元接收连续的N条上游读/写指令后,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器,所述向量分解寄存器为将向量源寄存器的资源和向量目标寄存器的资源分解得到的多个寄存器;
通过各个所述向量分解寄存器分别将所述N条上游读/写指令按照指令分发顺序依次发送至下游;
通过所述向量访存单元接收下游对于所述N条上游读/写指令按照指令分发顺序依次返回的返回信息,并将所述返回信息进行合并处理后进行写回,N>2。
在本申请一个可选的实施例中,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
将所述N条上游读/写指令依次分发至各个向量分解寄存器,或者,
交替将连续K条上游读/写指令分别分发至各个向量分解寄存器,每个向量分解寄存器对应的K条上游读/写指令列队执行,2≤K<N。
在本申请一个可选的实施例中,将所述N条上游读/写指令分别分发至各个向量分解寄存器之前还包括:
确定当前待分发的上游读/写指令所占用的资源的数量,并将满足向量分解寄存器资源要求的所述待分发的上游读/写指令分发至所述向量分解寄存器,将不满足向量分解寄存器资源要求的所述待分发的上游读/写指令发送至向量源寄存器或者向量目标寄存器。
在本申请一个可选的实施例中,所述方法之前包括:将所述向量源寄存器按照资源数量平均分为两个,将所述向量目标寄存器按照资源数量平均分为两个,获得4个向量分解寄存器。
在本申请一个可选的实施例中,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
确定当前待分发的上游读/写指令的指令类型,将当前待分发的上游读/写指令按照指令类型分发至向量分解寄存器;
所述向量源寄存器按照资源数量平均分为两个向量分解寄存器用于接收上游写指令;
所述向量目标寄存器按照资源数量平均分为两个向量分解寄存器用于接收上游读指令。
根据本申请实施例的第二个方面,提供了一种向量处理器访存指令处理***,包括:上游分发单元、电性连接于所述上游分发单元的向量访存单元和电性连接于所述向量访存单元的下游访存单元;
所述向量访存单元接收所述上游分发单元下发的连续的N条上游读/写指令,并交替将所述N条上游读/写指令分别分发至各个向量分解寄存器,所述向量分解寄存器为将向量源寄存器的资源和向量目标寄存器的资源分解得到的多个寄存器;
所述向量访存单元通过各个所述向量分解寄存器分别将所述N条上游读/写指令按照指令分发顺序依次发送至所述下游访存单元;
所述向量访存单元接收所述下游访存单元对于所述N条上游读/写指令按照指令分发顺序依次返回的返回信息,并将所述返回信息进行合并处理后进行写回,N>2。
在本申请一个可选的实施例中,所述向量访存单元交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
将所述N条上游读/写指令依次分发至各个向量分解寄存器,或者,
交替将连续K条上游读/写指令分别分发至各个向量分解寄存器,每个向量分解寄存器对应的K条上游读/写指令列队执行,2≤K<N。
在本申请一个可选的实施例中,所述向量访存单元将所述N条上游读/写指令分别分发至各个向量分解寄存器之前还包括:
确定当前待分发的上游读/写指令所占用的资源的数量,并将满足向量分解寄存器资源要求的所述待分发的上游读/写指令分发至所述向量分解寄存器,将不满足向量分解寄存器资源要求的所述待分发的上游读/写指令发送至向量源寄存器或者向量目标寄存器。
根据本申请实施例的第三个方面,提供了一种计算机设备,包括:存储器;
处理器;以及计算机程序;其中,计算机程序存储在存储器中,并被配置为由处理器执行以实现如本申请实施例的第一个方面任一项方法的步骤。
根据本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;计算机程序被处理器执行以实现如本申请实施例的第一个方面任一项方法的步骤。
采用本申请实施例中提供的向量处理器访存指令处理方法,具有以下有益效果:
由于向量访存单元往下游尽快不卡顿的发送对应总线命令是提高向量处理器性能的关键点,因此,本申请实施例将VS reg FIFO和VD reg FIFO分解得到的多个向量分解寄存器,多条上游读/写指令交替被分别送入至各个向量分解寄存器,进而利用不同向量分解寄存器交替将多条上游读/写指令送到下游进行处理,多条读/写指令通过动态分配内部资源最大可能减少等待时间,加快处理速度,达到b2b接收μOP的效果,提高整体数据存取效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的向量处理器访存指令处理方法的流程图;
图2为本申请实施例提供的向量处理器访存指令处理***的结构图;
图3为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请发明人发现,由于读操作和写操作存在天然的区别(即读操作在发出读指令后仅需从外部返回数据,而写操作需要同时将该指令的操作数写出外存),因此,在现有的向量处理器访存指令处理方法中,将上游读/写指令直接发送至下游,存在效率低下、影响向量处理器整体性能的问题。
而为了达到高性能的需求,也配合下游对读/写操作的独立处理能力,本申请实施例将VS(Vector Source) reg FIFO(向量源寄存器)和VD(Vector Destination) reg FIFO(向量目标寄存器)分解得到的多个向量分解寄存器,多条上游读/写指令交替被分别送入至各个向量分解寄存器,进而利用不同向量分解寄存器交替将多条上游读/写指令送到下游进行处理,会大大提高整体数据存取效率。
基于此,请参见图1,本申请的向量处理器访存指令处理方法包括:
S110:通过向量处理器中向量访存单元接收连续的N条上游读/写指令后,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器,所述向量分解寄存器为将向量源寄存器的资源和向量目标寄存器的资源分解得到的多个寄存器。
在具体实施中,向量访存单元(VectorLoad/StoreUnit,VLSU)是向量处理器中用于读或写一个向量到主存的单元,其可以按照处理的指令类型可以分为向量源寄存器(VSreg FIFO)和向量目标寄存器(VS reg FIFO),向量访存单元接收来自上游的指令,并拆分为微操作(Micro-operation,μOP),并将这些微操作向下游发送一条读/写(load/store)指令所需的信息。
在具体实施中,向量处理器提供了高层的对于向量(线性数组)的操作。一个典型的向量操作是两个64浮点元素的向量相加得到一个新的64元素的向量。这条向量指令等同于一整个循环,每一次迭代计算出一个元素的结果,更新循环变量,然后跳转回循环头部继续执行。基于此,向下游发送一条读/写指令所需的信息包括读写地址信息、写数据信息、元素个数顺序信息等,以这种结构达到性能和时序的最优化。
在本申请的其中一些实施例中,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
将所述N条上游读/写指令依次分发至各个向量分解寄存器,或者,
交替将连续K条上游读/写指令分别分发至各个向量分解寄存器,每个向量分解寄存器对应的K条上游读/写指令列队执行,2≤K<N。
本发明实施例中,N 为上游连续发送的上游读/写指令的数量,N>2,对于第一种分发的方式(将所述N条上游读/写指令依次分发至各个向量分解寄存器),首先为每个向量分解寄存器按照指令下发的顺序分发一条上游读/写指令,在第一条指令执行过程中,其余指令可以进行拆分,拆分为多个μOP,在第一条指令执行完毕时,第二条指令已经拆分完成,开始执行,此时第一条指令对应的向量分解寄存器被释放,对应的向量分解寄存器分发新的指令,循环此过程,将所述N条上游读/写指令依次分发至各个向量分解寄存器。
本发明实施例中,对于第二种分发的方式(交替将连续K条上游读/写指令分别分发至各个向量分解寄存器,每个向量分解寄存器对应的K条上游读/写指令列队执行),首先将连续K条上游读/写指令分发至第一个向量分解寄存器,将接下来连续K条上游读/写指令分发至第二个向量分解寄存器,如果具有超过3个向量分解寄存器,则按照上述规则继续为后续向量分解寄存器分发K条上游读/写指令,按照指令下发的顺序列队执行,即在第一条指令执行过程中,其余指令列队等待,在第一条指令执行完毕时,在当前的向量分解寄存器继续执行第二条指令(需进行拆分,拆分为多个μOP),直到连续K条上游读/写指令执行完毕,此时第一个向量分解寄存器被释放,第二个向量分解寄存器执行接下来的K条上游读/写指令,如果具有超过3个向量分解寄存器,则第三个向量分解寄存器执行接下来的K条上游读/写指令,此时第二个向量分解寄存器被释放,对应的向量分解寄存器分发新的连续K条上游读/写指令,循环此过程,将连续K条上游读/写指令分别分发至各个向量分解寄存器。其中,K可以为2。
在本申请的其中一些实施例中,将所述N条上游读/写指令分别分发至各个向量分解寄存器之前还包括:
确定当前待分发的上游读/写指令所占用的资源的数量,并将满足向量分解寄存器资源要求的所述待分发的上游读/写指令分发至所述向量分解寄存器,将不满足向量分解寄存器资源要求的所述待分发的上游读/写指令发送至向量源寄存器或者向量目标寄存器。
本发明实施例中,预先确定或判断当前待分发的上游读/写指令所占用的资源的数量,如果当前待分发的上游读/写指令满足向量分解寄存器资源要求,则按照本发明提供的方法进行访存指令处理,如果当前待分发的上游读/写指令不满足向量分解寄存器资源要求,则按照相关技术的方法进行访存指令处理,即不对向量源寄存器的资源和向量目标寄存器的资源进行拆分,将向量源寄存器的资源和向量目标寄存器的资源作为整体处理对应的上游读/写指令。
具体地,本发明实施例中,将所述向量源寄存器按照资源数量平均分为两个向量分解寄存器,分别标记为A、B,将所述向量目标寄存器按照资源数量平均分为两个向量分解寄存器,分别标记为C、D,共获得4个向量分解寄存器,例如,接收到连续的N条上游读/写指令,分别标记为指令1、指令2、……指令N,依次为每个向量分解寄存器分发一条上游读/写指令,例如,指令1分发至寄存器A,指令2分发至寄存器B, 指令3分发至寄存器C,指令4分发至寄存器D,按照指令分发顺序,先由寄存器A执行指令1,此时,寄存器B、寄存器C和寄存器D中的指令不执行,但是可以利用指令1执行的期间,将对应的指令2、指令3和指令4拆分成对应的μOP。当指令1执行完毕时,接下来由寄存器B执行指令2,此时指令1占用的寄存器A被释放,继续被分发指令5,按照此规律继续执行,指令6分发至寄存器B, 指令7分发至寄存器C,指令8分发至寄存器D,直到N条指令均被分发和执行完毕。指令的编号表示为i,i=1、2……N,当i被4除余1时,分发至寄存器A,当i被4除余2时,分发至寄存器B, 当i被4除余3时,分发至寄存器C, 当i被4整除时,分发至寄存器D。
如图2所示,在VLSU中将VS reg FIFO和VD reg FIFO一分为二,VS reg FIFO和VDreg FIFO分别具有8条entry,接受上游的连续的vseg 指令,第一条指令的μop信息会进入到低4条entry中,如果该条指令还没有执行完成,也就是低4条占用的entry还没有被释放时,新的第二条指令可进入高4条entry中等待第一条指令的所有地址命令发送完成。当第一条指令发送完后,第二条指令可实现b2b开始发送相应的地址命令。同理当第一条指令所占用的低4条entry被释放,而高4条还处于占用状态时,新的指令可继续分发至低 4条entry。
所以当满足条件的连续load或者store指令进入VLSU时可出现下列FIFO使用情况:指令1使用VS reg FIFO低4条,指令2使用VS reg FIFO高4条,指令3使用VD reg FIFO低4条,指令4使用VD reg FIFO高4条。指令可连续进入FIFO中,在释放出FIFO资源时,后续指令进入。
在本申请的其中一些实施例中,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
确定当前待分发的上游读/写指令的指令类型,将当前待分发的上游读/写指令按照指令类型分发至向量分解寄存器;
所述向量源寄存器按照资源数量平均分为两个向量分解寄存器用于接收上游写指令;
所述向量目标寄存器按照资源数量平均分为两个向量分解寄存器用于接收上游读指令。
VS reg FIFO主要处理上游写指令,VD reg FIFO主要处理上游读指令,本发明实施例中,根据当前待分发的上游读/写指令的指令类型,将其分发至对应的向量分解寄存器。
S120:通过各个所述向量分解寄存器分别将所述N条上游读/写指令按照指令分发顺序依次发送至下游。
在本申请的其中一些实施例中,确定当前待分发的上游读/写指令的指令类型,将当前待分发的上游读/写指令按照指令类型分发至向量分解寄存器;其中,所述向量源寄存器按照资源数量平均分为两个向量分解寄存器用于接收上游写指令;所述向量目标寄存器按照资源数量平均分为两个向量分解寄存器用于接收上游读指令;例如接收到上游读指令,将其分发至对应的向量分解寄存器,该向量分解寄存器由向量目标寄存器分解形成。
在本申请的其中一些实施例中,向量访存单元接收上游读指令后,将上游读指令拆分为读地址信息和读指令元素顺序信息。基于此,该条指令应该发出什么地址、读多少数据量以及相应的元素顺序等信息可通过向量目标寄存器下发至下游,大大提高整体数据存取效率。
在具体实施中,上游分发将指令拆解后的单个小信息(即μOP)逐次发送到VLSU的VD reg先入先出队列(FirstInputFirstOutput,FIFO),VLSU逻辑将VD reg FIFO的每个μOP进行分析,先入先出队列是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。VD reg FIFO接收上游读指令后,解析出该条指令应该发出什么地址、读多少数据量等信息,将其转换成相应的控制信息通过总线命令通道和元素顺序通过向量目标寄存器发送到下游。具体的,拆分为包含地址和大小的读地址信息、包含元素个数顺序的读指令元素顺序信息,将读地址信息和读指令元素顺序信息发送至下游,提高了整体数据存取效率。
在本申请的其中一些实施例中,向量访存单元接收上游写指令后,将上游写指令拆分为写地址信息、写数据信息和写指令元素顺序信息。基于此,该条指令应该发出什么地址、写出哪些有用数据量以及相应的元素顺序等信息可通过向量源寄存器下发至下游,大大提高整体数据存取效率。
在具体实施中,上游分发将指令拆解后的μOP逐次发送到VLSU FIFO,VLSU逻辑将VS reg FIFO的每个μOP进行分析,解析出该条指令应该发出什么地址、写出哪些有用数据量等信息,将其转换成相应的控制信息通过总线命令通道和元素顺序通过向量源寄存器发送到下游。具体的,拆分为包含地址和大小的写地址信息、包含数据有效性的写数据信息和包含元素个数顺序的写指令元素顺序信息,将写地址信息和写数据信息、以及写指令元素顺序信息发送至下游,提高了整体数据存取效率。
S130:通过所述向量访存单元接收下游对于所述N条上游读/写指令按照指令分发顺序依次返回的返回信息,并将所述返回信息进行合并处理后进行写回。
在具体实施中,VLSU在往下游发送读指令的同时,需要提取一定的写回信息存入到特定FIFO,具体的,特定FIFO为写回信息(WB_INFO)FIFO。待返回的写完成信息通过下游进入VLSU,相应的逻辑进行返回信息的相关处理,将处理后的返回信息及部分原始μOP信息进行合并选择做最后写回。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图2,本申请一个实施例提供了向量处理器访存指令处理***,包括上游分发单元10、电性连接于上游分发单元10的向量访存单元20和电性连接于向量访存单元20的下游访存单元30:
所述向量访存单元20接收所述上游分发单元10下发的连续的N条上游读/写指令,并交替将所述N条上游读/写指令分别分发至各个向量分解寄存器,所述向量分解寄存器为将向量源寄存器的资源和向量目标寄存器的资源分解得到的多个寄存器;
所述向量访存单元20通过各个所述向量分解寄存器分别将所述N条上游读/写指令按照指令分发顺序依次发送至所述下游访存单元30;
所述向量访存单元20接收所述下游访存单元30对于所述N条上游读/写指令按照指令分发顺序依次返回的返回信息,并将所述返回信息进行合并处理后进行写回,N>2。
在本申请一个可选的实施例中,所述向量访存单元20交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
将所述N条上游读/写指令依次分发至各个向量分解寄存器,或者
交替将连续K条上游读/写指令分别分发至各个向量分解寄存器,每个向量分解寄存器对应的K条上游读/写指令列队执行,2≤K<N。
在本申请一个可选的实施例中,所述向量访存单元将所述N条上游读/写指令分别分发至各个向量分解寄存器之前还包括:
确定当前待分发的上游读/写指令所占用的资源的数量,并将满足向量分解寄存器资源要求的所述待分发的上游读/写指令分发至所述向量分解寄存器,将不满足向量分解寄存器资源要求的所述待分发的上游读/写指令发送至向量源寄存器或者向量目标寄存器。
关于上述向量处理器访存指令处理***的具体限定可以参见上文中对于向量处理器访存指令处理方法的限定,在此不再赘述。上述向量处理器访存指令处理***中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各单元可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个单元对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图3所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种向量处理器访存指令处理方法。包括:存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上视频信号处理方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上向量处理器访存指令处理方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,C语言、VHDL语言、Verilog语言、面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、***、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种向量处理器访存指令处理方法,其特征在于,包括:
确定当前待分发的上游读/写指令所占用的资源的数量,并将满足向量分解寄存器资源要求的所述待分发的上游读/写指令分发至所述向量分解寄存器,将不满足向量分解寄存器资源要求的所述待分发的上游读/写指令发送至向量源寄存器或者向量目标寄存器;
通过向量处理器中向量访存单元接收连续的N条上游读/写指令后,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器,所述向量分解寄存器为将向量源寄存器的资源和向量目标寄存器的资源分解得到的多个寄存器;
通过各个所述向量分解寄存器分别将所述N条上游读/写指令按照指令分发顺序依次发送至下游;
通过所述向量访存单元接收下游对于所述N条上游读/写指令按照指令分发顺序依次返回的返回信息,并将所述返回信息进行合并处理后进行写回,N>2。
2.根据权利要求1所述的向量处理器访存指令处理方法,其特征在于,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
将所述N条上游读/写指令依次分发至各个向量分解寄存器,或者,
交替将连续K条上游读/写指令分别分发至各个向量分解寄存器,每个向量分解寄存器对应的K条上游读/写指令列队执行,2≤K<N。
3.根据权利要求1或2所述的向量处理器访存指令处理方法,其特征在于,所述方法之前包括:将所述向量源寄存器按照资源数量平均分为两个,将所述向量目标寄存器按照资源数量平均分为两个,获得4个向量分解寄存器。
4.根据权利要求3所述的向量处理器访存指令处理方法,其特征在于,交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
确定当前待分发的上游读/写指令的指令类型,将当前待分发的上游读/写指令按照指令类型分发至向量分解寄存器;
所述向量源寄存器按照资源数量平均分为两个向量分解寄存器用于接收上游写指令;
所述向量目标寄存器按照资源数量平均分为两个向量分解寄存器用于接收上游读指令。
5.一种向量处理器访存指令处理***,其特征在于,包括:
上游分发单元、电性连接于所述上游分发单元的向量访存单元和电性连接于所述向量访存单元的下游访存单元;
所述上游分发单元确定当前待分发的上游读/写指令所占用的资源的数量,并将满足向量分解寄存器资源要求的所述待分发的上游读/写指令分发至所述向量分解寄存器,将不满足向量分解寄存器资源要求的所述待分发的上游读/写指令发送至向量源寄存器或者向量目标寄存器;
所述向量访存单元接收所述上游分发单元下发的连续的N条上游读/写指令,并交替将所述N条上游读/写指令分别分发至各个向量分解寄存器,所述向量分解寄存器为将向量源寄存器的资源和向量目标寄存器的资源分解得到的多个寄存器;
所述向量访存单元通过各个所述向量分解寄存器分别将所述N条上游读/写指令按照指令分发顺序依次发送至所述下游访存单元;
所述向量访存单元接收所述下游访存单元对于所述N条上游读/写指令按照指令分发顺序依次返回的返回信息,并将所述返回信息进行合并处理后进行写回,N>2。
6.根据权利要求5所述的向量处理器访存指令处理***,其特征在于,所述向量访存单元交替将所述N条上游读/写指令分别分发至各个向量分解寄存器包括:
将所述N条上游读/写指令依次分发至各个向量分解寄存器,或者
交替将连续K条上游读/写指令分别分发至各个向量分解寄存器,每个向量分解寄存器对应的K条上游读/写指令列队执行,2≤K<N。
7.一种计算机设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1-4任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410331347.8A CN117931729B (zh) | 2024-03-22 | 2024-03-22 | 向量处理器访存指令处理方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410331347.8A CN117931729B (zh) | 2024-03-22 | 2024-03-22 | 向量处理器访存指令处理方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117931729A CN117931729A (zh) | 2024-04-26 |
CN117931729B true CN117931729B (zh) | 2024-06-28 |
Family
ID=90751131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410331347.8A Active CN117931729B (zh) | 2024-03-22 | 2024-03-22 | 向量处理器访存指令处理方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931729B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553292A (zh) * | 2021-06-28 | 2021-10-26 | 睿思芯科(深圳)技术有限公司 | 一种向量处理器及相关数据访存方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6072069A (ja) * | 1983-09-28 | 1985-04-24 | Nec Corp | ベクトル演算処理装置 |
JP2000259609A (ja) * | 1999-03-12 | 2000-09-22 | Hitachi Ltd | データ処理プロセッサおよびシステム |
WO2010043401A2 (en) * | 2008-10-15 | 2010-04-22 | Martin Vorbach | Data processing device |
CN102156637A (zh) * | 2011-05-04 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 向量交叉多线程处理方法及向量交叉多线程微处理器 |
US9424034B2 (en) * | 2013-06-28 | 2016-08-23 | Intel Corporation | Multiple register memory access instructions, processors, methods, and systems |
US11275590B2 (en) * | 2015-08-26 | 2022-03-15 | Huawei Technologies Co., Ltd. | Device and processing architecture for resolving execution pipeline dependencies without requiring no operation instructions in the instruction memory |
US11397580B2 (en) * | 2020-09-17 | 2022-07-26 | Huawei Technologies Co., Ltd. | Methods, devices, and media for reducing register pressure in flexible vector processors |
US20230068637A1 (en) * | 2021-09-01 | 2023-03-02 | International Business Machines Corporation | Routing instruction results to a register block of a subdivided register file based on register block utilization rate |
GB2605471B (en) * | 2021-09-30 | 2023-11-01 | Imagination Tech Ltd | Processor with hardware pipeline |
KR20230077251A (ko) * | 2021-11-25 | 2023-06-01 | 주식회사 세미파이브 | 벡터 연산을 위한 데이터 처리 방법 및 장치 |
CN114297138B (zh) * | 2021-12-10 | 2023-12-26 | 龙芯中科技术股份有限公司 | 向量混洗方法、处理器及电子设备 |
CN114296802A (zh) * | 2021-12-31 | 2022-04-08 | 海光信息技术股份有限公司 | 指令执行控制方法、装置、处理器和电子设备 |
US20240020120A1 (en) * | 2022-07-13 | 2024-01-18 | Simplex Micro, Inc. | Vector processor with vector data buffer |
CN115686628A (zh) * | 2022-10-21 | 2023-02-03 | 中国人民解放军战略支援部队信息工程大学 | 一种寄存器分配方法及装置 |
-
2024
- 2024-03-22 CN CN202410331347.8A patent/CN117931729B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553292A (zh) * | 2021-06-28 | 2021-10-26 | 睿思芯科(深圳)技术有限公司 | 一种向量处理器及相关数据访存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117931729A (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1023659B1 (en) | Efficient processing of clustered branch instructions | |
US9164769B2 (en) | Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array | |
EP1868094A2 (en) | Multitasking method and apparatus for reconfigurable array | |
KR20060043130A (ko) | 추월 기능을 갖춘 벡터 처리 장치 | |
CN117827284B (zh) | 向量处理器访存指令处理方法、***、设备及存储介质 | |
WO1994016385A1 (en) | System and method for assigning tags to instructions to control instruction execution | |
US6862676B1 (en) | Superscalar processor having content addressable memory structures for determining dependencies | |
CN108845829A (zh) | 一种***寄存器访问指令的执行方法 | |
CN116483441A (zh) | 基于移位缓冲的输出时序优化***、方法及相关设备 | |
US20110276979A1 (en) | Non-Real Time Thread Scheduling | |
CN117931729B (zh) | 向量处理器访存指令处理方法和*** | |
EP0496407A2 (en) | Parallel pipelined instruction processing system for very long instruction word | |
CN1329819C (zh) | 互换地址寄存器所存内容的方法和设备 | |
US20210042123A1 (en) | Reducing Operations of Sum-Of-Multiply-Accumulate (SOMAC) Instructions | |
US20220197696A1 (en) | Condensed command packet for high throughput and low overhead kernel launch | |
US20220300322A1 (en) | Cascading of Graph Streaming Processors | |
US7337304B2 (en) | Processor for executing instruction control in accordance with dynamic pipeline scheduling and a method thereof | |
JPH11316681A (ja) | 命令バッファへのロ―ド方法、装置およびプロセッサ | |
CN111857830B (zh) | 一种提前转发指令数据的通路设计方法、***及存储介质 | |
CN117561501A (zh) | 一种多线程数据处理方法及装置 | |
CN112463218A (zh) | 指令发射控制方法及电路、数据处理方法及电路 | |
US20070226468A1 (en) | Arrangements for controlling instruction and data flow in a multi-processor environment | |
EP3131004A1 (en) | Processor and method | |
CN111061510B (zh) | 一种可扩展的asip结构平台及指令处理方法 | |
RU2198422C2 (ru) | Асинхронная синергическая вычислительная система |
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 | ||
GR01 | Patent grant |