CN120540708A - 高性能处理器、处理器簇和电子设备 - Google Patents
高性能处理器、处理器簇和电子设备Info
- Publication number
- CN120540708A CN120540708A CN202510572336.3A CN202510572336A CN120540708A CN 120540708 A CN120540708 A CN 120540708A CN 202510572336 A CN202510572336 A CN 202510572336A CN 120540708 A CN120540708 A CN 120540708A
- Authority
- CN
- China
- Prior art keywords
- processor
- instruction
- vector
- scalar
- unit
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
本申请提供一种高性能处理器、处理器簇和电子设备,该高性能处理器包括:标量处理器、向量处理器、本地存储器;标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;标量处理器和向量处理器之间建立连接;标量处理器与全局存储器建立连接;标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务。本申请提供的高性能处理器,标量处理器从全局存储器中获取指令及参数后,在确定满足执行条件时,调用向量处理器基于参数执行任务,进而协调地使用多个异构核满足不同的计算需求。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种高性能处理器、处理器簇和电子设备。
背景技术
异构多核架构中,处理核心可以是不同的,他们可能具有不同的架构、时钟频率和功能消耗。这种涉及的目标是通过将不同类型的核心结合在一起,使得处理器可以更好地适应不同种类的任务。
在异构多核架构中,如何进行异构多核数处理,进而协调地使用多个异构核满足不同的计算需求十分重要。
发明内容
为了解决上述技术缺陷之一,本申请提供了一种高性能处理器、处理器簇和电子设备。
本申请第一个方面,提供了一种高性能处理器,该高性能处理器包括:标量处理器、向量处理器、本地存储器;
标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;
标量处理器和向量处理器之间建立连接;
标量处理器与全局存储器建立连接;
标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务。
可选地,标量处理器为乱序多发射标量处理器;
向量处理器为超长指令字向量处理器。
可选地,高性能处理器,还包括:
指令先进先出FIFO存储器;
其中,指令FIFO存储器的深度均为32bit。
可选地,高性能处理器,还包括:指令FIFO存储器存储器和数据FIFO存储器存储器;
指令FIFO存储器和数据FIFO存储器的深度均为32bit。
可选地,执行条件为向量处理器未进行任务处理。
可选地,执行条件为指令FIFO存储器未满;
标量处理器,用于将指令和参数的存储地址存入指令FIFO存储器;
向量处理器,用于在未进行任务处理时从指令FIFO存储器中读取指令和数据,基于数据执行指令。
可选地,执行条件为指令FIFO存储器存储器和数据FIFO存储器存储器均未满;
标量处理器,用于将指令的存储地址存入指令FIFO存储器中,将参数的存储地址存入数据FIFO存储器中;
向量处理器,用于在未进行任务处理时从指令FIFO存储器中读取指令,从数据FIFO存储器读取数据,基于数据执行指令。
可选地,任务中包括该任务所属线程的标识。
本申请第二个方面,提供了一种处理器簇,包括:多个第一个方面所述的高性能处理器。
本申请第三个方面,提供了一种电子设备,包括:第一个方面所述的高性能处理器,或者,包括第二个方面所述的高性能处理器。
本申请提供一种高性能处理器、处理器簇和电子设备,该高性能处理器包括:标量处理器、向量处理器、本地存储器;标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;标量处理器和向量处理器之间建立连接;标量处理器与全局存储器建立连接;标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务。本申请提供的高性能处理器,标量处理器从全局存储器中获取指令及参数后,在确定满足执行条件时,调用向量处理器基于参数执行任务,进而协调地使用多个异构核满足不同的计算需求。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种高性能处理器的结构示意图;
图2为本申请实施例提供的另一种高性能处理器的结构示意图;
图3为本申请实施例提供的一种高性能处理器针对向量处理器未进行任务处理的执行条件的实现过程示意图;
图4为本申请实施例提供的一种高性能处理器针对指令FIFO存储器未满的执行条件的实现过程示意图;
图5为本申请实施例提供的一种标量处理器的结构示意图;
图6为本申请实施例提供的一种标量处理器的同步单元的结构示意图;
图7为本申请实施例提供的一种向量处理器的架构示意图;
图8为本申请实施例提供的一种向量运算单元的结构示意图;
图9为本申请实施例提供的另一种向量处理器的架构示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在实现本申请的过程中,发明人发现,异构多核架构中,处理核心可以是不同的,他们可能具有不同的架构、时钟频率和功能消耗。这种涉及的目标是通过将不同类型的核心结合在一起,使得处理器可以更好地适应不同种类的任务。在异构多核架构中,如何进行异构多核数处理,进而协调地使用多个异构核满足不同的计算需求十分重要。
针对上述问题,本申请实施例中提供了一种高性能处理器、处理器簇和电子设备,该高性能处理器包括:标量处理器、向量处理器、本地存储器;标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;标量处理器和向量处理器之间建立连接;标量处理器与全局存储器建立连接;标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务。本申请提供的高性能处理器,标量处理器从全局存储器中获取指令及参数后,在确定满足执行条件时,调用向量处理器基于参数执行任务,进而协调地使用多个异构核满足不同的计算需求。
本实施例提供一种高性能处理器,高性能处理器是由一个标量处理器和一个向量处理器组成的异构异步处理器。
参见图1,该高性能处理器包括:标量处理器、向量处理器、本地存储器。
其中,标量处理器和向量处理器共享本地存储器。且向量处理器只能访问本地存储器,只由标量处理器调用执行。即向量处理器只能访问本地存储器且只能由标量处理器调用执行。
标量处理器和向量处理器之间建立连接。如标量处理器和向量处理器之间通过专门的指令通道连接。
如图2所示,高性能处理器还可以包括两个寄存器,一个寄存器对应标量处理器,另一个寄存器对应向量处理器。向量处理器可以读写其对应的寄存器,标量处理器除可以读写其对应的寄存器外,还可以读写向量处理器其对应的寄存器。
标量处理器可以读写向量处理器的寄存器。
标量处理器与全局存储器建立连接。
(一)标量处理器
标量处理器为乱序多发射标量处理器。
标量处理器,用于主要执行数据的搬运,任务管理/同步/切换等工作,并负责调用向量处理器执行加速运算。例如,从全局存储器中获取指令及参数。标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务。
具体实现时,标量处理器可如图5所示,该该标量处理器包括:取指单元,寄存器重命名单元,运算保留栈单元,存储保留栈单元,标量运算单元,访存单元,程序控制单元,同步单元,流水线控制单元,寄存器堆单元,特殊向量寄存器堆单元。
除此之外,标量处理器还可以包括一个或多个其他单元,如其他的一个或多个功能模块,一个或多个指令缓存、一个或多个数据存储、一个或多个特殊向量寄存器、一个或多个状态标志寄存器等。
1、取指单元
取指单元,用于取指以及派遣指令。
具体的,取指单元,用于生成取指请求地址,将取值请求地址输出至指令缓存进行取指,接收来自指令缓存的指令,将其存入数据存储中。每个周期从数据存储中顺序读取符合条件的指令,对读取的指令进行译码和相关检查后,将检查完成的指令进行顺序派遣。
例如,取指单元生成取指请求地址输出到指令缓存进行取指,并接收来自指令缓存的指令存入数据存储中,每个周期从符合条件的指令中顺序找一条或多条指令进行译码和相关检查,将符合条件的指令进行顺序派遣,每次最多派遣一条程序控制单元指令、一条同步单元指令,除此之外,每次还可派遣一条或多条标量运算单元指令和一条或多条访存单元指令。
2、寄存器重命名单元
寄存器重命名单元,用于接收取指单元派遣的指令和寄存器重命名。
具体的,寄存器重命名单元,用于接收取指单元派遣的指令并存储,特殊向量寄存器重命名,指令条件译码,产生流水线堵塞信号。接收来自标量运算单元,访存单元,程序控制单元,同步单元,特殊向量寄存器,条件寄存器,标志寄存器中一个或多个的数据并写回。将指令发送给运算保留栈单元,存储保留栈单元,程序控制单元,同步单元中的一个或多个。
例如,寄存器重命名单元是标量处理器中用于接收取指单元派遣指令并进行寄存器,特殊向量寄存器重命名,指令条件译码,产生流水线堵塞信号,同时接收来自执行单元(如标量运算单元,访存单元,程序控制单元,同步单元)写回寄存器,特殊向量寄存器,条件寄存器,以及状态标志寄存器的数据并写回对应寄存器。
标量处理器写回支持乱序写回,执行效率高,并将指令分发给运算保留栈单元,存储保留栈单元,程序控制单元,或者,同步单元。
寄存器重命名单元带宽可为6bit,其中,同一时刻可多条(如4条)输入指令有效。
其中,条件寄存器可以有多个,位于寄存器重命名单元中。
标量运算单元、访存单元的指令支持读和写条件寄存器的操作。
同步单元的指令支持读条件寄存器的操作。
程序控制单元的跳转和函数调用指令支持读条件寄存器的操作。
当指令进入条件寄存器时,若条件寄存器存在未执行完的指令,则流水线堵塞。
也就是说,条件寄存器不进行重命名,当出现读写相关时触发分发阻塞进行等待。条件寄存器读写规则如下:
●读规则:
(1)标量运算单元,访存单元,同步单元的所有指令支持条件执行,需要读条件寄存器的值。
(2)标量运算单元还支持读条件寄存器指令操作。
(3)程序控制单元的跳转和函数调用指令支持读条件寄存器操作。
●写规则:
(1)标量运算单元支持写条件寄存器指令。
(2)标量运算单元逻辑类指令和比较类指令支持写条件寄存器的选项。
当前面发出的实际执行的写条件寄存器的指令还未执行完,而又有读或者写相同的条件寄存器的指令进入时,流水线堵塞,产生条件执行阻塞信号,等待前面的条件寄存器写完。
另外,寄存器重命名单元包括:一个或多个物理寄存器和一个或多个逻辑寄存器。
其中,任一物理寄存器为如下的一种:标量物理寄存器,向量物理寄存器,条件寄存器,标志寄存器。
任一逻辑寄存器为如下的一种:标量逻辑寄存器,向量逻辑寄存器。
例如,寄存器重命名单元包含一个或多个物理寄存器,例如,多个512位宽的特殊向量寄存器,多个条件寄存器,一个状态标志寄存器。
其中,特殊向量寄存器进行重命名,条件寄存器,状态标志寄存器不进行重命名。
逻辑寄存器个数为多个,如多个逻辑寄存器为标量逻辑寄存器器和多个向量逻辑寄存器。
另外,逻辑寄存器和物理寄存器的映射关系由寄存器映射表维护。向量逻辑寄存器和向量物理寄存器的映射关系由特殊向量寄存器映射表维护。
1)寄存器映射表
初始时,寄存器映射表中所有逻辑寄存器索引对应的表项的映射物理寄存器全为0。当指令被执行时,或者,中断来临时,确定为相关物理寄存器分配的逻辑寄存器,将寄存器映射表中分配的逻辑寄存器索引对应的表项的映射更新为相关物理寄存器的标识。
例如,寄存器映射表的深度32,宽度6bit,保存了所有逻辑寄存器和所有物理寄存器的映射关系。初始时,寄存器映射表的映射无效,所有表项的映射物理寄存器全为0。当物理寄存器被分配给逻辑寄存器使用时,将寄存器映射表逻辑寄存器索引对应的表项改为该物理寄存器的ID。
需要说明的是,当指令确实被执行时才会更新寄存器映射表,如果条件执行指令不执行,则寄存器映射表不会被更新,另外,当跳转来临时也不会更新寄存器映射表,但是,中断来临时,中断返回地址必须更新寄存器映射表,以保证中断能正常返回。
2)特殊向量寄存器映射表
初始时,特殊向量寄存器映射表中所有向量逻辑寄存器索引对应的表项的映射向量物理寄存器全为0。当指令被执行时,确定为相关向量物理寄存器分配的向量逻辑寄存器,将特殊向量寄存器映射表中分配的向量逻辑寄存器索引对应的表项的映射更新为相关向量物理寄存器的标识。
例如,特殊向量寄存器映射表的深度4,宽度3bit,保存了所有向量逻辑寄存器和所有向量物理寄存器的映射关系。初始时,特殊向量寄存器映射表映射无效,所有表项的映射向量物理寄存器全为0。当向量物理寄存器被分配给向量逻辑寄存器使用时,将特殊向量寄存器映射表向量逻辑寄存器索引对应的表项改为该向量物理寄存器的ID。
需要说明的是,当指令确实被执行时才会更新特殊向量寄存器映射表,如果条件执行指令不执行,则特殊向量寄存器映射表不会被更新,另外,当跳转来临时也不会更新特殊向量寄存器映射表。
3、运算保留栈单元
运算保留栈单元为标量运算单元的发射队列。
运算保留栈单元,用于从寄存器重命名单元接收指令、派遣及重命名信息,并压入队列。弹出已就绪的指令到标量运算单元执行。
运算保留栈单元,还用于对输入的指令进行译码,存储指令类型信息。
也就是说,运算保留栈单元是标量运算单元的发射队列。运算保留栈单元从寄存器重命名单元接收指令和相关派遣及重命名信息压入队列,并且会弹出已经就绪的指令到标量运算单元执行。运算保留栈单元会对输入的指令进行译码并存储指令类型信息。
具体实现时,运算保留栈单元的深度可灵活调整,如运算保留栈单元的深度为8。多个标量运算单元共用一个运算保留栈单元。
运算保留栈单元的指令发射和接收规则如下:
(1)寄存器重命名单元的输出进入运算保留栈单元。
(2)存在任一空闲的标量运算单元时,其会从运算保留栈单元取指令和操作数执行。
(3)从运算保留栈单元取指令执行的原则是按照从前往后的顺序从运算保留栈单元中取可执行的已经可以发送的指令执行。
(4)是否可以发送根据所有源寄存器或者特殊向量寄存器或者条件寄存器和状态标志寄存器的值是否准备好确定。
(5)如果有多条指令可以发送,根据指令顺序先发送最老的指令。
(6)如果任一标量运算单元发生阻塞,则其不可以再接收新的指令。
(7)如果之前发送到任一标量运算单元的指令为除法指令,则等到除法结果计算完成返回计算完成En信号之后才能再往其发送新的除法指令。
4、存储保留栈单元
存储保留栈单元为访存单元的发射队列。
存储保留栈单元,用于从寄存器重命名单元接收指令和寄存器重命名信息,压入队列。
存储保留栈单元,还用于在指令地址寄存器就绪时,向寄存器重命名单元发送读请求,保存读到的地址操作数。
寄存器重命名单元,还用于在指令获取到地址后,计算地址,对地址进行译码,保存译码信息。
寄存器重命名单元,还用于当任一指令的存在源寄存器就绪并且地址译码完成时,检测后将其发射至访存单元执行。
具体实现时,存储保留栈单元的深度可灵活调整,如存储保留栈单元的深度为16。多个访存单元共用一个存储保留栈单元。存储保留栈单元是访存单元的发射队列。存储保留栈单元从寄存器重命名单元接收指令和寄存器重命名信息并压入队列。在存储保留栈单元中的指令地址寄存器就绪时,向寄存器重命名单元发送读请求并将读到的地址操作数保存到队列中。在存储保留栈单元中的指令获取到地址后,可以计算地址并对地址进行译码,将产生的译码信息保存在队列中。在存储保留栈单元中有指令(如写入指令)的源寄存器就绪并且地址译码完成时,可以发射到访存单元执行,发射前要经过一系列检查,例如地址类型检查、地址比较检查和地址向前检查等。
存储保留栈单元发送和接收指令的规则如下:
(1)寄存器重命名单元的输出进入存储保留栈单元。
(2)当计算地址的源操作数准备好后,计算访存地址,并保存在存储保留栈单元中。
(3)地址不相关的指令:可以乱序,乱序规则为:读取指令后读取指令,读取指令后写入指令,写入指令后读取指令都可以乱序发送,写入指令后写入指令需要保证顺序(不可以同时发给不同的访存单元),即使地址不相关写入指令后写入指令也需要保序。
(4)地址相关的指令:读取指令后写入指令,写入指令后读取指令,写入指令后写入指令,读取指令后读取指令都需要保证顺序进行。
(5)地址不相关但和包括所有没有发送成功的指令(即没发送到目的端的在路上的指令,包括在访存单元级的和访存单元输出级的)位于同一存储空间时可以乱序往同一访存单元发送,但不可以往两个或多个访存单元发送。
(6)位于同一存储空间但地址不相关的访存指令同一时刻只能发送一条,不能两个或多个访存单元同时发送。
(7)地址相关判断原则:地址是否相关一是位于不同存储空间地址不相关,位于同一存储空间根据数据粒度判断地址是否相关。
5、标量运算单元
在具体实现时,标量运算单元可以为一个或多个。
如标量处理器包括两个标量运算单元,分别为标量运算单元0和标量运算单元1。
标量运算单元,用于接收运算保留栈单元发送的指令和数据,基于该指令对该数据进行运算,将运算结果写回寄存器重命名单元。
标量运算单元是标量处理器的计算单元,可以进行多种类型的定浮点运算,例如加减法,乘法,除法,逻辑运算,比较运算,移位等,它接收运算保留栈单元发送过来的指令和数据,进行运算,并将结果写回寄存器重命名单元的寄存器堆单元或者特殊向量寄存器堆单元。
下面示例性的提供几个指令示例,具体实现时,并不限于如下指令,也不限制是否包括全部的指令。
执行级为一级的指令包括:定点加减法,逻辑类指令,移位类指令,定浮点比较类指令,读写Flag指令,定浮点最大最小指令,ABS指令,比特反序指令,选择指令,特殊向量寄存器分发指令,读特殊向量寄存器指令,Byte反序指令,Merge指令,立即数赋值指令,FirstOne指令,CRC指令,浮点数分类指令,浮点数取部分域、Rounding指令。
执行级为三级的指令包括:定点乘法指令,定浮点转换类指令,比特筛选指令,Count指令,浮点加减法指令。
支持Bypass的指令包括:选择指令,定点加减法指令,移位类指令,立即数赋值指令,ABS指令,逻辑类指令,比较类指令,最大最小指令。
除法指令执行周期不确定,和除数和被除数的数据相关,该指令执行完成会产生一个DivEn指令,指示该指令执行完成并且将结果输出给寄存器堆,除法指令执行期间不能再输入新的除法指令,但可以输入别的标量计算单元指令,除法执行执行完毕输出结果和第一季流水线的输出端口复用,当第一级流水线的输出端口不被别的标量计算单元指令使用时,除法输出它的结果,同时输出DivEn标识,该DivEn标识输出给运算保留栈单元,指示可以继续输出Div指令给当前标量运算单元
6、访存单元
在具体实现时,访存单元可以为一个或多个。
如标量处理器包括两个访存单元,分别为访存单元0和访存单元1。
访存单元,用于接收存储保留栈单元发送的指令和数据、寄存器信息,基于该指令和寄存器信息对该数据进行读写。
访存单元是执行标量处理器的访存相关指令的功能模块。访存单元从存储保留栈单元接收指令及数据,以及寄存器相关信息,按照指令相应地执行指令,与其他单元交互进行数据读写,对于读取指令指令和原子写入指令指令需要将数据写回寄存器重命名单元,包括寄存器级别的读取指令,写入指令,包括如8位,16位,32位,64位,或者其他位粒度以及向量的读取指令,写入指令,向量粒度包括如128位,256位,512位,或者其他位粒度。不同的指令处理的时间周期不一样。
另外,访存单元负责提供FENCE需要的相关指令数量信息,访存单元与存储保留栈单元交互完成数据存储配置。
7、程序控制单元
在具体实现时,程序控制单元仅为一个。
程序控制单元,用于从寄存器重命名单元接收指令和数据,基于该指令处理该数据,输出处理结果。
程序控制单元是执行标量处理器的控制程序执行顺序相关指令的功能模块。程序控制单元从寄存器重命名单元接收指令及数据,按照指令相应地处理数据,将处理结果输出到标量处理器其他模块。不同的指令处理的时间周期不一样。
程序控制单元负责程序执行的方向的控制(如停止、中断、跳转、函数调用),涉及相关指令的执行和配置信息的读写控制;程序控制单元负责指令缓存的配置和预取操作,以及FENCE操作;程序控制单元负责计数器的读写和控制,以及一些其他控制信息的读写等。
8、同步单元
在具体实现时,同步单元仅为一个。
同步单元,用于标量处理器与向量处理器的同步。
如图6所示,同步单元与流水线控制单元、寄存器重命名单元、程序控制单元、向量处理器之间建立通信连接。
同步单元的指令来自于寄存器重命名单元,且同步单元的数据的读写均与寄存器重命名单元交互。
同步单元,用于接收流水线控制单元发送的暂停信号,将与向量处理器通信时产生的执行级暂停信号发送给流水线控制单元,以便产生标量处理器的执行暂停信号。
同步单元,用于生成指令,并将器传送至程序控制单元。
也就是说,同步单元,是标量处理器和向量处理器同步的单元,它接收寄存器重命名单元发送过来的指令和数据,从向量处理器读取数据并写回寄存器堆,从寄存器堆单元或者特殊向量寄存器堆单元读取数据发送给向量处理器的功能模块,负责向量处理器的启动和状态查询,如,查询向量处理器的向量程序控制单元中读写FIFO(FirstInput FirstOutput,先进先出)的读写,寄存器文件堆的配置,标量寄存器的读或者写,寄存器文件堆状态查询,读FIFO深度,读启动向量处理器指令计数器等,为程序控制单元供同步单元指令信息。
同步单元与标量处理器内部的流水线控制单元、寄存器重命名单元和程序控制单元有交互,与外部的向量处理器,标量处理器和向量处理器传输队列模块模块也有交互。同步单元指令来自于寄存器重命名单元,并且数据的读写都要与寄存器重命名单元交互。接收来自流水线控制单元的阻塞信号,和向量处理器通信时产生同步单元自己的执行级阻塞信号,并发送给流水线控制单元,用于产生作用于整个标量处理器的ExeStall信号。同步单元生成下一周期要执行的指令,传送给程序控制单元单元,供程序控制单元的计数器指令使用。同步单元与向量处理器进行交互,包括但不限于:用特殊向量寄存器或者寄存器配置寄存器文件堆,读写标量寄存器,查询寄存器文件堆的写状态。标量处理器与标量处理器和向量处理器传输队列模块单元进行交互,包括但不限于:启动向量处理器,查询向量处理器状态,读写向量处理器的取指单元中的FIFO数据,读FIFO深度,读启动向量处理器指令计数器。
因此,在具体实现时同步单元可具备如下功能(需要说明的是,下述功能仅是示例,除此之外还可以有其他功能,本实施例及后续实施例不对同步单元的具体功能进行限定):
启动向量处理器功能,用于启动向量处理器使用,包含立即数启动和寄存器启动,如流水线一直等待直到启动成功为止,或者将启动成功或者失败的结果写回目的寄存器。
查询向量处理器执行状态功能,支持可选项B。
读写FIFO功能,该FIFO位于向量处理器的取指单元中,如FIFO位宽32bit,读写FIFO如读写FIFO一直等待直到成功,或者读写FIFO成功或者失败的结果写回寄存器。
写寄存器文件堆功能,包括特殊向量寄存器写或者寄存器写。
读写标量寄存器功能,包括立即数索引或者寄存器索引读写。
查询寄存器文件堆写回状态功能,如要等待,直到所有写寄存器文件堆全部结束,或者将写寄存器文件堆是否完成的结果返回给寄存器。
当相关操作没有完成时,会产生同步单元自己的阻塞信号,阻塞等待,该信号会发送给流水线控制单元以产生流水线阻塞信号。
还可在标量处理器和向量处理器中间加入一个FIFO(如32位深度的FIFO),用于存放启动向量处理器请求,将之前位于向量处理器的读写FIFO移到标量处理器和向量处理器传输队列模块中,标量处理器和向量处理器传输队列模块单元实现启动向量处理器,查询向量处理器执行状态,读写FIFO功能,读FIFO深度功能,读启动向量处理器指令计数器功能,启动向量处理器可以启动成功的条件为启动向量处理器FIFO不满,查询向量处理器执行状态通过,向量处理器状态为停止的条件为向量处理器执行完毕并且启动向量处理器FIFO为空。
9、流水线控制单元
流水线控制单元,用于产生流水线的暂停信号和/或产生标量处理器的启动和停止信号。
流水线控制单元是标量处理器的流水控制单元,和标量处理器内部各个单元都有连接,负责产生流水线的阻塞信号,例如,正常工作模式时的阻塞以及调试模式下的阻塞。
流水线控制单元也和通信和同步单元进行通信,生成标量处理器启动和停止的信号。
另外,标量处理器在实际应用中,还可以进行条件执行译码。例如,标量处理器在进行条件执行译码时,对指令的预设位进行执行条件判断,如果条件满足,则输出有效指令,否则输出空指令。其中,空指令表示空指令或无效指令。
若条件寄存器存在读写相关操作,则触发流水线阻塞,等待条件寄存器写操作执行完毕再进行读操作。其中,条件寄存器读写不存在旁路。
以条件寄存器为2个,分别为条件寄存器0和条件寄存器1,预设位为[29:28]位为例,标量处理器在进行条件执行译码时,标量处理器基于指令集编码的[29:28]位对输入的指令进行执行条件判断,如果条件满足,则输出有效指令,否则输出空指令。
其中,[29:28]位为00表示条件寄存器0为1执行,[29:28]位为01表示条件寄存器1为1执行,[29:28]位为10表示!条件寄存器0执行,[29:28]位为11表示无条件执行,如果条件不满足,该条指令无效,输出空指令。
如果条件寄存器存在读写相关,则触发流水线阻塞,等待条件寄存器写完再进行读操作,条件寄存器读写不存在旁路。
(二)向量处理器
向量处理器为超长指令字(Very Long Instruction Word,VLIW)向量处理器。
向量处理器可为不均衡分簇式,可并发超过20条指令,如有多种向量/矩阵运算加速指令,循环加速方法等。
在具体实现时,向量处理器可如图7所示,该向量处理器包括:向量程序控制单元、多个功能单元、寄存器文件堆和标量寄存器。
除此之外,向量处理器还包括:向量交织单元的私有向量寄存器、向量存取单元的私有向量寄存器。
1、向量程序控制单元
向量程序控制单元,用于取指与指令发射。
即,向量程序控制单元,用于取出指令,判断是否执行,基于判断结果将指令发射给功能单元。
向量程序控制单元,还用于控制指令的跳转。
向量程序控制单元具备标量计算能力。
向量程序控制单元与标量寄存器交互。
在具体实现时,向量程序控制单元是取指与指令发射单元,根据PC值将指令从缓存中取出,在判断是否执行后根据等待值(由等待指令配置)将指令发射给各功能单元,同时控制指令的跳转与并且具备部分标量计算能力。
另外,向量程序控制单元,还用于接收其他运算处理器发送的启动命令,启动向量处理器。向其他运算处理器返回向量处理器是否结束的指示信号。
以其他运算处理器为标量处理器为例,向量程序控制单元接收标量处理器的同步单元发出的启动命令,启动向量处理器执行,同时也返回同步单元向量处理器执行是否结束的指示信号。
2、功能单元
功能单元,用于根据指令进行功能处理。
例如,功能单元从向量程序控制单元接收指令,按照指令相应地处理数据,将处理结果按照指令中指定的地址输出。
功能单元包括:一个或多个向量运算单元、一个或多个向量交织单元、一个或多个向量存取单元。
1)向量运算单元
任一向量运算单元,用于根据指令进行向量运算。
如图8所示,任一向量运算单元,包括:浮点乘加运算子单元、浮点乘累加运算子单元、浮点算数运算子单元、张量乘法子单元和中间结果寄存器。
其中,浮点乘加运算子单元和浮点算数运算子单元共用一个发射槽。因此每周期最多发射8条向量运算单元的指令。
浮点乘累加运算子单元和张量乘法子单元共用一个发射槽。
浮点乘加运算子单元为执行浮点乘加运算子单元相关指令的功能单元执行。例如,浮点乘加运算子单元相关指令为进行整型和浮点向量乘累加,乘法,加法,张量计算等指令。
1个向量运算单元拥有独立的中间结果寄存器。
1个浮点乘加运算子单元、1个浮点乘累加运算子单元、1个张量乘法子单元和1个浮点算数运算子单元共用中间结果寄存器。
(1)浮点乘加运算子单元和浮点乘累加运算子单元,可执行整型和浮点向量乘法,乘累加等运算。支持的类型包括但不限于int32,fp32,fp64。
(2)浮点算数运算子单元可执行整型和浮点向量算数运算,例如比较,加法,减法,位运算等。支持的类型包括但不限于int8,uint8,int16,uint16,int32,uint32,bool,fp16,bf16,fp32,tf32,fp64。
(3)张量乘法子单元可执行张量乘法,乘累加等运算。支持的类型包括但不限于int8,bf16,fp16,tf32。
2)向量交织单元
任一向量交织单元,用于根据指令进行数据的交织及逻辑处理。
向量交织单元为向量处理器内的控制与数据处理单元,负责对数据进行交织,支持逻辑及部分定浮点计算,同时还支持众多定制化指令,包括查表/横向计算/稀疏矩阵计算/精度转换/FIFO(FirstInput First Output,先入先出)等功能。执行数据广播、抽取、内部交织等指令。
每个向量交织单元有一组私有向量寄存器,因此,向量交织单元的私有向量寄存器与向量交织单元一一对应。
3)向量存取单元
任一向量存取单元,用于根据指令进行多模式的访存、地址计算以及标量计算。
向量存取单元是向量处理器内的访存单元,主要负责读取指令/写入指令与各种标量计算。
其中读取指令/写入指令支持多种访存模式,如行模式,列模式/离散模式/扩展模式/累加模式。
同时支持多种参数配置,最大读取指令/写入指令数据位宽可达1024bits。执行地址计算,加载/存储等指令。
所有向量存取单元共用一组私有向量寄存器,因此向量存取单元的私有向量寄存器被多个向量存取单元共用。
3、寄存器文件堆
寄存器文件堆,用于收读写请求后返回数据。对数据进行重排后返回。与功能单元进行读写交互。通过寄存器文件堆内数据对向量程序控制单元的配置寄存器进行配置。
寄存器文件堆为通用向量寄存器堆,是向量处理器内的主要存储单元,负责接收读写请求,并返回数据,在部分功能中能够对数据进行重排后再返回请求模块。
寄存器文件堆与向量处理器内功能单元(如浮点乘加运算子单元、浮点算数运算子单元、浮点乘累加运算子单元和张量乘法子单元)进行读写交互,同时支持使用寄存器文件堆内数据对取指单元配置寄存器进行配置。
寄存器文件堆,还用于写入其他运算处理器的数据。接收其他运算处理器发出的查询数据是否写完的状态信息。
以其他运算处理器为标量处理器为例,标量处理器的同步单元能够将数据写入寄存器文件堆,寄存器文件堆也可以接收标量处理器的同步单元发出的查询数据是否写完的状态信息。
寄存器文件堆的深度可配置。
图9示出了功能单元包括4个向量运算单元、4个向量交织单元、4个向量存取单元的向量处理器的示意图。
本实施例所提供的向量处理器支持VLIW(Very Long Instruction Word,超长指令字)指令集,每个VLIW可由一条或多条指令组成,每条指令对应一个功能单元。
另外,向量处理器与其他运算处理器之间设置有读FIFO单元和写FIFO单元。
向量程序控制单元和其他运算处理器均对读FIFO单元进行读操作,对写FIFO单元进行写操作。
其他运算处理器对向量寄存器进行读操作或者写操作。
以其他运算处理器为标量处理器为例,标量处理器和向量处理器中间设置有用来传输数据的读FIFO和写FIFO单元,标量处理器和向量程序控制单元可以对读写FIFO进行读操作或者写操作。
同时标量处理器的同步单元可以对向量处理器的标量寄存器进行读或者写操作。
另外,高性能处理器,还可以包括:指令FIFO(First Input First Output先进先出)存储器。或者,高性能处理器,还可以包括:指令FIFO存储器存储器和数据FIFO存储器存储器。
其中,指令FIFO存储器的深度均为32bit,数据FIFO存储器的深度均为32bit。
在具体实现时,执行条件可以有多种,例如:执行条件为向量处理器未进行任务处理。或者,执行条件为指令FIFO存储器未满(例如,指令FIFO存储器的深度均为32bit,此时指令FIFO存储器构成了异步队列)。或者,执行条件为指令FIFO存储器存储器和数据FIFO存储器存储器均未满(例如,指令FIFO存储器和数据FIFO存储器的深度均为32bit,此时指令FIFO存储器构成了指令的异步队列,数据FIFO存储器构成了参数的异步队列)。
根据执行条件的不同,高性能处理器的具体实现方案也不同,下面分别说明:
●执行条件为向量处理器未进行任务处理
以有两个任务(分别为task0和task1)需要执行为例,参见图3(图3中白底的方框由标量处理器执行,灰底的方框由向量处理器执行),高性能处理器针对此种执行条件的处理过程为:
标量处理器从全局存储器中获取task0及task0的参数。
标量处理器确定向量处理器是否正在进行任务处理,若向量处理器未进行任务处理,则标量处理器调用向量处理器基于task0的参数执行task0。
随后向量处理器会基于task0的参数执行task0,与此同时,标量处理器可再次从全局存储器中获取task1及task1的参数,为task1的执行做准备。
标量处理器与向量处理器进行同步,确认向量处理器是否正在进行task0处理,若向量处理器未执行完task0,此时向量处理器正在进行任务处理,则标量处理器会进行等待,直至向量处理器完成task0的处理。
标量处理器再次确定向量处理器未进行任务处理,则标量处理器调用向量处理器基于task1的参数执行task1。
此种异构多核数处理过程,标量处理器需要与向量处理器进行同步,标量处理器在向量处理器的上一个任务处理完毕后,才可以调用向量处理器进行下一任务处理。
●执行条件为指令FIFO存储器未满
针对此种执行条件,高性能处理器中的标量处理器调用向量处理器基于参数执行任务的过程可以为:标量处理器将指令和参数的存储地址存入指令FIFO存储器。向量处理器在未进行任务处理时从指令FIFO存储器中读取指令和参数,基于参数执行指令。
以有两个任务(分别为task0和task1)需要执行为例,参见图4(图4中白底的方框由标量处理器执行,灰底的方框由向量处理器执行),高性能处理器针对此种执行条件的实现过程基于异步队列指令FIFO存储器实现。
如标量处理器从全局存储器中获取task0及task0的参数。
标量处理器确定指令FIFO存储器是否已满,若未满,则将task0及task0的参数打成任务包0(如将task0和task0参数的首地址打包成任务包0),将任务包存入指令FIFO存储器中。向量处理器在未进行任务处理时从指令FIFO存储器中读取任务包0,基于task0的参数执行task0。
在向量处理器执行任务过程中,标量处理器即可重新从全局存储器中获取task1及task1的参数。从全局存储器中获取task1及task1的参数,为task1的执行做准备。标量处理器确定指令FIFO存储器是否已满,若未满,则将task1及task1的参数打成任务包1,将任务包存入指令FIFO存储器中。也就是说,量运算处理器读取任务及参数、将任务及参数打成任务包的过程与向量处理器是否执行任务无关,只要指令FIFO存储器未满(即指令FIFO存储器中存储的任务包未达到32个),标量处理器即可重复执行从全局存储器中获取指令及参数,标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务的步骤,不断地获取任务及参数,将其打包成任务包存入指令FIFO存储器中。
然而向量处理器是否处理新任务与标量处理器无关,只要向量处理器完成一个任务的处理(此时向量处理器在未进行任务处理),指令FIFO存储器未空,即可从指令FIFO存储器中获取一个任务包,进而执行任务包。若向量处理器完成一个任务的处理(此时向量处理器在未进行任务处理),但指令FIFO存储器为空,则会停止任务的执行。
此种异构多核数处理过程,标量处理器与向量处理器无需同步,标量处理器的任务读取与下发与向量处理器的任务执行无关。
●执行条件为指令FIFO存储器存储器和数据FIFO存储器存储器均未满
针对此种执行条件,高性能处理器中的标量处理器调用向量处理器基于参数执行任务的过程可以为:标量处理器将指令的存储地址存入指令FIFO存储器中,将参数的存储地址存入数据FIFO存储器中。向量处理器在未进行任务处理时从指令FIFO存储器中读取指令,从数据FIFO存储器读取参数,基于参数执行指令。
以有两个任务(分别为task0和task1)需要执行为例,针对此种执行条件的异构多核数处理过程,构建异步队列指令FIFO存储器和异步队列数据FIFO存储器,指令FIFO存储器和数据FIFO存储器的深度均为32bit,即指令FIFO存储器可同时存储32个任务包,数据FIFO存储器也可同时存储32个任务包。同时,指令FIFO存储器和数据FIFO存储器存储的指令和参数是对应的(也就是说,如果指令2存储在指令FIFO存储器的第二个位置,指令2的参数也存储在数据FIFO存储器的第二个位置),这样保证了向量处理器分别从指令FIFO存储器和数据FIFO存储器读取的参数是读取的指令的参数。
首先,标量处理器从全局存储器中获取task0及task0的参数。
标量处理器确定指令FIFO存储器和数据FIFO存储器是否均未满(由于指令FIFO存储器和数据FIFO存储器在存储时是对应的,因此,指令FIFO存储器未满,则数据FIFO存储器也未满;指令FIFO存储器已满,则数据FIFO存储器也已满)。若指令FIFO存储器和数据FIFO存储器均未满,则标量处理器将指令0存入指令FIFO存储器中,将指令0的参数的存储地址存入数据FIFO存储器中(如标量处理器在本地存储器上申请一段空间,将指令0的参数存入该空间中,并将该空间的首地址存入数据FIFO存储器)。向量处理器在未进行任务处理时从指令FIFO存储器中读取task0,从数据FIFO存储器中读取task0的参数,基于task0的参数执行task0。
在向量处理器执行任务过程中,标量处理器即可重新从全局存储器中获取task1及task1的参数。从全局存储器中获取task1及task1的参数,为task1的执行做准备。标量处理器确定指令FIFO存储器和数据FIFO存储器是否均未满,若未满,则标量处理器将指令1存入指令FIFO存储器中,将指令1的参数的存储地址存入数据FIFO存储器中(如标量处理器在本地存储器上申请一段空间,将指令1的参数存入该空间中,并将该空间的首地址存入数据FIFO存储器)。也就是说,量运算处理器读取任务及参数、将任务及参数分别存储至指令FIFO存储器和数据FIFO存储器的过程与向量处理器是否执行任务无关,只要指令FIFO存储器和数据FIFO存储器均未满(即指令FIFO存储器中存储的任务包未达到32个,数据FIFO存储器中存储的任务包也未达到32个),标量处理器即可重复执行从全局存储器中获取指令及参数。标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务的步骤,不断地获取任务及参数,将任务及参数分别存储至指令FIFO存储器和数据FIFO存储器中。
然而向量处理器是否处理新任务与标量处理器无关,只要向量处理器完成一个任务的处理(此时向量处理器在未进行任务处理),指令FIFO存储器和数据FIFO存储器均未空,即可从指令FIFO存储器和数据FIFO存储器中分别获取任务和参数,进而基于参数执行任务。若向量处理器完成一个任务的处理(此时向量处理器在未进行任务处理),但指令FIFO存储器和数据FIFO存储器均为空,则会停止任务的执行。
此种异构多核数处理过程,标量处理器与向量处理器无需同步,标量处理器的任务读取与下发与向量处理器的任务执行无关,同时,向量处理器在指令FIFO存储器中拿一个任务时,也会从数据FIFO存储器中拿到参数地址,进而得到任务实参的列表,这样即调用了任务也拿到了实参。
此外,在具体实现时,标量处理器在每次调任务时,均在任务中包括该任务所属线程的标识,该标识用于指示该任务是哪个线程的任务。通过标识可以查询各线程发出的任务是否执行结束,将同步变成了异步,指令FIFO存储器为异步执行机构。
本实施例提供一种高性能处理器,该高性能处理器包括:标量处理器、向量处理器、本地存储器;标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;标量处理器和向量处理器之间建立连接;标量处理器与全局存储器建立连接;标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务。本实施例提供的高性能处理器,标量处理器从全局存储器中获取指令及参数后,在确定满足执行条件时,调用向量处理器基于参数执行任务,进而协调地使用多个异构核满足不同的计算需求。
基于高性能处理器的同一发明构思,本实施例提供一种处理器簇,该处理器簇包括多个如图1或图2所示的高性能处理器。
例如,该高性能处理器包括:标量处理器、向量处理器、本地存储器;
标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;
标量处理器和向量处理器之间建立连接;
标量处理器与全局存储器建立连接;
标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务。
其中,标量处理器为乱序多发射标量处理器;
向量处理器为超长指令字向量处理器。
其中,高性能处理器,还包括:
指令先进先出FIFO存储器;
其中,指令FIFO存储器的深度均为32bit。
其中,高性能处理器,还包括:指令FIFO存储器存储器和数据FIFO存储器存储器;
指令FIFO存储器和数据FIFO存储器的深度均为32bit。
其中,执行条件为向量处理器未进行任务处理。
其中,执行条件为指令FIFO存储器未满;
标量处理器,用于将指令和参数的存储地址存入指令FIFO存储器;
向量处理器,用于在未进行任务处理时从指令FIFO存储器中读取指令和数据,基于数据执行指令。
其中,执行条件为指令FIFO存储器存储器和数据FIFO存储器存储器均未满;
标量处理器,用于将指令的存储地址存入指令FIFO存储器中,将参数的存储地址存入数据FIFO存储器中;
向量处理器,用于在未进行任务处理时从指令FIFO存储器中读取指令,从数据FIFO存储器读取数据,基于数据执行指令。
其中,任务中包括该任务所属线程的标识。
本实施例提供的处理器簇,其中的高性能处理器包括:标量处理器、向量处理器、本地存储器;标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;标量处理器和向量处理器之间建立连接;标量处理器与全局存储器建立连接;标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务,进而协调地使用多个异构核满足不同的计算需求。
基于高性能处理器的同一发明构思,本实施例提供一种电子设备,该电子设备包括如图1或图2所示的高性能处理器,或者,包括一个或多个处理器簇,其中每个处理器簇中包括多个如图1或图2所示的高性能处理器。
例如,该高性能处理器包括:标量处理器、向量处理器、本地存储器;
标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;
标量处理器和向量处理器之间建立连接;
标量处理器与全局存储器建立连接;
标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务。
其中,标量处理器为乱序多发射标量处理器;
向量处理器为超长指令字向量处理器。
其中,高性能处理器,还包括:
指令先进先出FIFO存储器;
其中,指令FIFO存储器的深度均为32bit。
其中,高性能处理器,还包括:指令FIFO存储器存储器和数据FIFO存储器存储器;
指令FIFO存储器和数据FIFO存储器的深度均为32bit。
其中,执行条件为向量处理器未进行任务处理。
其中,执行条件为指令FIFO存储器未满;
标量处理器,用于将指令和参数的存储地址存入指令FIFO存储器;
向量处理器,用于在未进行任务处理时从指令FIFO存储器中读取指令和数据,基于数据执行指令。
其中,执行条件为指令FIFO存储器存储器和数据FIFO存储器存储器均未满;
标量处理器,用于将指令的存储地址存入指令FIFO存储器中,将参数的存储地址存入数据FIFO存储器中;
向量处理器,用于在未进行任务处理时从指令FIFO存储器中读取指令,从数据FIFO存储器读取数据,基于数据执行指令。
其中,任务中包括该任务所属线程的标识。
本实施例提供的电子设备,其中的高性能处理器包括:标量处理器、向量处理器、本地存储器;标量处理器和向量处理器共享本地存储器;且向量处理器只访问本地存储器,只由标量处理器调用执行;标量处理器和向量处理器之间建立连接;标量处理器与全局存储器建立连接;标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于参数执行任务,进而协调地使用多个异构核满足不同的计算需求。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种高性能处理器,其特征在于,所述高性能处理器包括:标量处理器、向量处理器、本地存储器;
所述标量处理器和所述向量处理器共享本地存储器;且所述向量处理器只访问所述本地存储器,只由所述标量处理器调用执行;
所述标量处理器和所述向量处理器之间建立连接;
所述标量处理器与全局存储器建立连接;
所述标量处理器,用于从全局存储器中获取指令及参数;标量处理器确定满足执行条件后,调用向量处理器执行基于所述参数执行所述任务。
2.根据权利要求1所述的高性能处理器,其特征在于,所述标量处理器为乱序多发射标量处理器;
所述向量处理器为超长指令字向量处理器。
3.根据权利要求1所述的高性能处理器,其特征在于,所述高性能处理器,还包括:
指令先进先出FIFO存储器;
其中,指令FIFO存储器的深度均为32bit。
4.根据权利要求1所述的高性能处理器,其特征在于,所述高性能处理器,还包括:指令FIFO存储器存储器和数据FIFO存储器存储器;
所述指令FIFO存储器和所述数据FIFO存储器的深度均为32bit。
5.根据权利要求1所述的高性能处理器,其特征在于,所述执行条件为所述向量处理器未进行任务处理。
6.根据权利要求3所述的高性能处理器,其特征在于,所述执行条件为指令FIFO存储器未满;
所述标量处理器,用于将所述指令和参数的存储地址存入指令FIFO存储器;
所述向量处理器,用于在未进行任务处理时从所述指令FIFO存储器中读取指令和数据,基于所述数据执行所述指令。
7.根据权利要求4所述的高性能处理器,其特征在于,所述执行条件为指令FIFO存储器存储器和数据FIFO存储器存储器均未满;
所述标量处理器,用于将所述指令的存储地址存入指令FIFO存储器中,将所述参数的存储地址存入数据FIFO存储器中;
所述向量处理器,用于在未进行任务处理时从所述指令FIFO存储器中读取指令,从所述数据FIFO存储器读取数据,基于所述数据执行所述指令。
8.根据权利要求1所述的高性能处理器,其特征在于,所述任务中包括该任务所属线程的标识。
9.一种处理器簇,其特在于,包括多个如权利要求1至7任一项所述的高性能处理器。
10.一种电子设备,其特征在于,包括:如权利要求1至7任一项所述的高性能处理器,或者,包括一个或多个如权利要求9所述的处理器簇。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510572336.3A CN120540708A (zh) | 2025-04-30 | 2025-04-30 | 高性能处理器、处理器簇和电子设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510572336.3A CN120540708A (zh) | 2025-04-30 | 2025-04-30 | 高性能处理器、处理器簇和电子设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120540708A true CN120540708A (zh) | 2025-08-26 |
Family
ID=96792189
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510572336.3A Pending CN120540708A (zh) | 2025-04-30 | 2025-04-30 | 高性能处理器、处理器簇和电子设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN120540708A (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101371233A (zh) * | 2004-11-15 | 2009-02-18 | 辉达公司 | 含控制用于视频处理的向量组件的标量组件的视频处理器 |
| CN115169541A (zh) * | 2022-08-17 | 2022-10-11 | 无锡江南计算技术研究所 | 一种张量、向量、标量计算加速和数据调度系统 |
-
2025
- 2025-04-30 CN CN202510572336.3A patent/CN120540708A/zh active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101371233A (zh) * | 2004-11-15 | 2009-02-18 | 辉达公司 | 含控制用于视频处理的向量组件的标量组件的视频处理器 |
| CN115169541A (zh) * | 2022-08-17 | 2022-10-11 | 无锡江南计算技术研究所 | 一种张量、向量、标量计算加速和数据调度系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5560029A (en) | Data processing system with synchronization coprocessor for multiple threads | |
| US8345053B2 (en) | Graphics processors with parallel scheduling and execution of threads | |
| US6163839A (en) | Non-stalling circular counterflow pipeline processor with reorder buffer | |
| US20180004530A1 (en) | Advanced processor architecture | |
| US8453161B2 (en) | Method and apparatus for efficient helper thread state initialization using inter-thread register copy | |
| WO1990014629A2 (en) | Parallel multithreaded data processing system | |
| HK1246442A1 (zh) | 具有连续块的并行执行的基於块的架构 | |
| CN113590197A (zh) | 一种支持可变长向量处理的可配置处理器及其实现方法 | |
| CN112214241A (zh) | 一种分布式指令执行单元的方法及系统 | |
| CN116670644A (zh) | 通用计算核上的交错处理的方法 | |
| CN109564546A (zh) | 通过绕过加载存储单元来跟踪存储和加载 | |
| US6725365B1 (en) | Branching in a computer system | |
| CN118467041B (zh) | 用于乱序多发射处理器的指令处理方法及装置 | |
| CN116414464A (zh) | 调度任务的方法和装置、电子设备和计算机可读介质 | |
| WO2021061626A1 (en) | Instruction executing method and apparatus | |
| US7565658B2 (en) | Hidden job start preparation in an instruction-parallel processor system | |
| US7496737B2 (en) | High priority guard transfer for execution control of dependent guarded instructions | |
| CN120653221A (zh) | 浮点连续累加方法和加法器 | |
| US20230093393A1 (en) | Processor, processing method, and related device | |
| WO2026016845A1 (zh) | 处理器、显卡、计算机设备以及依赖解除方法 | |
| US7197630B1 (en) | Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation | |
| CN120540705B (zh) | 标量处理器、高性能处理器和电子设备 | |
| CN120540709B (zh) | 向量处理器、高性能处理器和电子设备 | |
| CN120540708A (zh) | 高性能处理器、处理器簇和电子设备 | |
| CN120540706A (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 |