CN106708473A - 一种统一染色器阵列多warp取指电路及方法 - Google Patents

一种统一染色器阵列多warp取指电路及方法 Download PDF

Info

Publication number
CN106708473A
CN106708473A CN 201611139580 CN201611139580A CN106708473A CN 106708473 A CN106708473 A CN 106708473A CN 201611139580 CN201611139580 CN 201611139580 CN 201611139580 A CN201611139580 A CN 201611139580A CN 106708473 A CN106708473 A CN 106708473A
Authority
CN
Grant status
Application
Patent type
Prior art keywords
warp
pc
fetch
instruction
address
Prior art date
Application number
CN 201611139580
Other languages
English (en)
Inventor
魏艳艳
田泽
牛少平
任向隆
王宣明
韩鹏
韩一鹏
Original Assignee
中国航空工业集团公司西安航空计算技术研究所
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

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes

Abstract

本发明属于集成电路技术领域,涉及一种统一染色器阵列多warp取指电路及方法。其中电路包括warp调度单元(1)、取指信息fifo(2)、外部的icache(3)及至少2个warp的pc地址计算单元(4);每个pc地址计算单元对应1个warp。本发明能够实现多个warp取指令的过程,有效的隐藏存储器延迟,以提高统一染色器阵列的吞吐量。

Description

一种统一染色器阵列多warp取指电路及方法

技术领域

[0001] 本发明属于集成电路技术领域,涉及一种统一染色器阵列多warp取指电路及方 法。

背景技术

[0002] 统一染色器阵列完成顶点、像素的统一染色功能。在统一染色器阵列中,指令存在 访存指令,后面的指令需要该访存指令访问存储器返回的结果,因存储器访问需要经过较 长时间才能返回,运算部件不得不停顿等待。存储器返回结果后,后面的指令才能继续运 行。

[0003] 因此,这种情况下,运算部件很长一段时间处于空闲。为充分利用运算部件这段空 闲的时间,采用多warp切换的方式,在该warp的这类指令之间插入多个其他warp的指令,隐 藏其存储器访问延迟,以充分利用运算部件,提高统一染色器阵列的吞吐量。

发明内容

[0004] 本发明的目的是提供一种统一染色器阵列多warp取指电路及方法,从而能够实现 多个warp取指令的过程,有效的隐藏存储器延迟,以提高统一染色器阵列的吞吐量。

[0005] 本发明的技术解决方案是:

[0006] 一种统一染色器阵列多warp指令取指电路,包括warp调度单元⑴、取指信息fifo (2)、外部的icache⑶及至少2个warp的pc地址计算单元⑷;每个pc地址计算单元对应1个 warp,

[0007] pc地址计算单元⑷与warp调度单元(1)连接,进行warp pc地址的计算并产生 warp可调度请求,将所述warp可调度请求发送给warp调度单元⑴;

[0008] warp调度单元⑴与取指信息f if〇 (2)及至少2个pc地址计算单元(4)连接,根据所 述warp可调度请求进行多个warp的调度,选取一个warp产生对应的warp取指信息发送给取 指信息fifo⑵;

[0009] 取指信息fifo (2)与warp调度单元⑴及外部的icache (3)连接,存储调度出的 warp取指信息并产生外部的icache (3)的取指接口信号;

[0010]外部的icache⑶与取指信息fifo⑵连接,根据所述取指接口信号产生取指令。 [0011] 具体的,pc地址计算单元⑷内部包含一个warp pc栈,warp pc栈用于实现函数嵌 套时pc地址的保存与恢复。

[0012] 具体的,pc地址计算单元⑷中warp可调度请求的产生条件如下:

[0013] 1)每个warp的指令有2行的buffer缓存,该warp只要有一个空闲即可调度;

[00M] 2)该warp数据准备好;

[0015] 3)该warp的取指pc准备好;

[0016] a)初始的取指pc准备好是在该warp数据准备好的时刻;

[0017] b)之后的取指pc准备好是根据取回的指令进行判断,取回的指令中有跳转指令 时,等该跳转指令执行完该warp取指pc即准备好;反之,取回指令后该warp取指pc就准备 好。

[0018] 4)该warp的指令取到后,才能进行该warp的下一次调度。

[0019] 进一步的,pc地址计算单元⑷中warp pc地址计算的方法如下:

[0020] 1)在warp数据准备好时,warp pc地址值的初值为某个具体的数值;

[0021] 2)根据warp pc地址值取回的指令确定下一次该warp pc地址的值;

[0022] a)取回的m条指令中不含跳转指令,则warp pc地址每次顺序加m;

[0023] b)取回的m条指令中含有跳转指令,则warp pc地址需要根据跳转指令的类型和跳 转指令的执行结果进行计算得到warp pc值,warp pc值的更新时间根据跳转指令的执行情 况确定。

[0024] 更进一步的,warp pc地址根据跳转指令的类型和执行结果进行计算的具体过程 为:

[0025] 1)对于绝对跳转指令,warp pc的值取指令中的立即数;

[0026] 2)对于条件跳转指令,如果条件判断为成立,贝lj进行跳转,warp pc的值取指令中 的立即数;如果条件判断不成立,则不进行跳转,warp pc保持原值。

[0027] 一种统一染色器阵列的多warp指令取指方法,包括以下步骤:

[0028] 步骤1、多个warp pc地址计算单元同时进行warp pc地址的计算,并向warp调度单 元发出可调度的warp请求和warp pc地址;

[0029] 步骤2、warp调度单元接收来自多个warp pc地址计算单元的warp可调度请求和 warp pc地址,监控取指信息fifo的满状态;在取指信息fif〇不满的情况下根据多个warp的 可调度请求进行公平轮询调度,输出当前调度的warp号;并通过该warp号进行warp pc地址 选择,向取指信息fifo发送写fifo信号和包括调度出的warp号和warp pc地址的写fifo数 据;

[0030] 步骤3、取指信息fifo存储调度的warp号和pc地址,在i cache空闲且fifo不空的情 况下产生读fifo信号,接着根据icache空闲和读fifo信号产生取指请求,然后将读出的包 括warp号和取指pc地址的fifo数据、取指请求作为warp取指信息输出给外部icache单元进 行取指;

[0031] 步骤4、外部icache接收取指信息fifo的warp取指请求、warp号和取指pc地址,进 而返回该warp要取的指令。

[0032] 本发明的技术效果是:

[0033] l、warp pc的初始地址灵活,可以任意指定程序指令执行的入口地址;

[0034] 2、warp可调度请求在发出后,只有请求被响应后,才可再发送,否则不会再次发 送,保证发出调度请求的有效性;

[0035] 3、取指信息f i f 〇保证了在i cache从不空闲到空闲后,warp取指的顺序是按照warp 可调度请求的次序来的;

[0036] 4、每个warp pc地址计算方法相同,逻辑实现独立可复用,实现多个warp指令的取 指电路及方法简单。

附图说明

[0037]图1是本发明的取指电路图。

具体实施方式

[0038]下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然, 所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例, 本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保 护范围。

[0039] —种统一染色器阵列多warp指令取指电路,包括warp调度单元⑴、取指信息fifo (2)、外部的icache⑶及至少2个warp的pc地址计算单元⑷;每个pc地址计算单元对应1个 warp,

[0040] pc地址计算单元⑷与warp调度单元(1)连接,进行warp pc地址的计算并产生 warp可调度请求,将所述warp可调度请求发送给warp调度单元⑴;

[0041] warp调度单元⑴与取指信息fifo (2)及至少2个pc地址计算单元(4)连接,根据所 述warp可调度请求进行多个warp的调度,选取一个warp产生对应的warp取指信息发送给取 指信息fifo⑵;

[0042] 取指信息fifo (2)与warp调度单元⑴及外部的icache (3)连接,存储调度出的 warp取指信息并产生外部的icache (3)的取指接口信号;

[0043]外部的icache⑶与取指信息fifo⑵连接,根据所述取指接口信号产生取指令。 [0044] 具体的,pc地址计算单元⑷内部包含一个warp pc栈,warp pc栈用于实现函数嵌 套时pc地址的保存与恢复。

[0045] 具体的,pc地址计算单元⑷中warp可调度请求的产生条件如下:

[0046] 5)每个warp的指令有2行的buffer缓存,该warp只要有一个空闲即可调度;

[0047] 6)该warp数据准备好;

[0048] 7)该warp的取指pc准备好;

[0049] c)初始的取指pc准备好是在该warp数据准备好的时刻;

[0050] d)之后的取指pc准备好是根据取回的指令进行判断,取回的指令中有跳转指令 时,等该跳转指令执行完该warp取指pc即准备好;反之,取回指令后该warp取指pc就准备 好。

[0051] 8)该warp的指令取到后,才能进行该warp的下一次调度。

[0052] 进一步的,pc地址计算单元⑷中warp pc地址计算的方法如下:

[0053] 3)在warp数据准备好时,warp pc地址值的初值为某个具体的数值;

[00M] 4)根据warp pc地址值取回的指令确定下一次该warp pc地址的值;

[0055] c)取回的m条指令中不含跳转指令,则warp pc地址每次顺序加m;

[0056] d)取回的m条指令中含有跳转指令,则warp pc地址需要根据跳转指令的类型和跳 转指令的执行结果进行计算得到warp pc值,warp pc值的更新时间根据跳转指令的执行情 况确定。

[0057] 更进一步的,warp pc地址根据跳转指令的类型和执行结果进行计算的具体过程 为:

[0058] 3)对于绝对跳转指令,warp pc的值取指令中的立即数;

[0059] 4)对于条件跳转指令,如果条件判断为成立,贝lj进行跳转,warp pc的值取指令中 的立即数;如果条件判断不成立,则不进行跳转,warp pc保持原值。

[0060] 一种统一染色器阵列的多warp指令取指方法,包括以下步骤:

[0061] 步骤1、多个warp pc地址计算单元同时进行warp pc地址的计算,并向warp调度单 元发出可调度的warp请求和warp pc地址;

[0062] 步骤2、warp调度单元接收来自多个warp pc地址计算单元的warp可调度请求和 warp pc地址,监控取指信息fifo的满状态;在取指信息fif〇不满的情况下根据多个warp的 可调度请求进行公平轮询调度,输出当前调度的warp号;并通过该warp号进行warp pc地址 选择,向取指信息fifo发送写fifo信号和包括调度出的warp号和warp pc地址的写fifo数 据;

[0063] 步骤3、取指信息fifo存储调度的warp号和pc地址,在i cache空闲且fifo不空的情 况下产生读fifo信号,接着根据icache空闲和读fifo信号产生取指请求,然后将读出的包 括warp号和取指pc地址的fifo数据、取指请求作为warp取指信息输出给外部icache单元进 行取指;

[0064] 步骤4、外部icache接收取指信息fifo的warp取指请求、warp号和取指pc地址,进 而返回该warp要取的指令。

[0065] 实施例

[0066] 如图1所示,一种统一染色器阵列多warp取指电路及方法,包括8个warp的pc地址 计算单元、warp调度单元、取指信息fifo及外部icache。

[0067] 下面分别详细介绍各模块的具体结构及功能:

[0068] 取指电路中包括8个warp,每个warp对应1个pc地址计算单元,每个warp都有1个独 立的取指pc地址和1个warp pc栈(其用来实现函数嵌套时pc地址的保存与恢复),每次请求 取指的大小为8条指令,每个warp有1个2行的buffer缓存;

[0069] pc地址计算单元用于warp pc地址的计算,并向warp调度单元产生可调度的warp 请求和warp pc地址;

[0070] 其中,可调度的warp请求产生条件如下:

[0071] 1)该warp缓存只要有一个空闲即可调度;

[0072] 2)该warp数据准备好,即对大批量数据按照数据和数据类型进行分批加工处理 好;

[0073] 3)该warp的取指pc准备好;

[0074] a)初始的取指pc准备好是在该warp数据准备好的时刻;

[0075] b)之后的取指pc准备好需要根据取回的指令进行判断,取回的指令中有跳转指令 时,等该跳转指令执行完该warp取指pc即准备好;反之,取回指令后该warp取指pc就准备 好。

[0076] 4)该warp的指令取到后,才能进行该warp的下一次调度。

[0077] warp pc地址计算的方法如下:

[0078] 1)在warp数据准备好时,warp pc的初值为某个具体的数值;

[0079] 2)根据warp pc地址值取回的指令确定下一次该warp pc地址的值;

[0080] a)取回的8条指令中不含跳转指令,则warp pc地址每次顺序加8;

[0081] b)取回的8条指令中含有跳转指令,则warp pc地址需要根据跳转指令的类型和跳 转指令在8条指令中的位置进行warp pc地址的计算,warp pc值的更新时间根据跳转指令 的执行情况确定,如表1所示。

[0082] 表1含跳转指令的pc值计算 [0083]

Figure CN106708473AD00081

[0084] warp调度单元接收来自pc地址计算单元的warp的可调度请求和warp pc地址,监 控取指信息fifo的满状态;在取指信息fifo不满的情况下根据warp的可调度请求进行轮询 调度,输出当前调度的warp号;并通过该warp号进行warp pc选择,向取指信息fifo发送写 行化信号和写行化数据;

[0085] 取指信息f if 〇存储调度的warp号和pc地址,监控icache的空闲和f if 〇空状态,在 icache空闲且fifo不空的情况下产生读fifo信号,接着根据icache空闲和读fifo信号产生 取指请求,然后将读出的f if〇数据(即warp号和取指pc地址)、取指请求输出给外部icache 单元进行取指;

[0086] 外部icache接收取指信息fifo的warp取指请求、warp号和取指pc地址,进而返回 该warp要取的指令。

[0087] 最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管 参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可 以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而 这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范 围。

Claims (6)

  1. I · 一种统一染色器阵列多warp指令取指电路,其特征在于:包括warp调度单元⑴、取 指信息fifo⑵、外部的icache (3)及至少2个warp的pc地址计算单元⑷;每个pc地址计算 单元对应1个warp, pc地址计算单元(4)与warp调度单元⑴连接,进行warp pc地址的计算并产生warp可 调度请求,将所述warp可调度请求发送给warp调度单元(1); warp调度单元(1)与取指信息fifo (2)及至少2个pc地址计算单元(4)连接,根据所述 warp可调度请求进行多个warp的调度,选取一个warp产生对应的warp取指信息发送给取指 信息fifo (2); 取指信息fifo⑵与warp调度单元⑴及外部的icache (3)连接,存储调度出的warp取 指信息并产生外部的icache (3)的取指接口信号; 外部的icache⑶与取指信息fifo⑵连接,根据所述取指接口信号产生取指令。
  2. 2. 根据权利要求1所述的一种统一染色器阵列多warp指令取指电路,其特征在于:pc地 址计算单元⑷内部包含一个warp pc栈,warp pc栈用于实现函数嵌套时pc地址的保存与 恢复。
  3. 3. 根据权利要求1所述的一种统一染色器阵列多warp指令取指电路,其特征在于:pc地 址计算单元⑷中warp可调度请求的产生条件如下: 1) 每个warp的指令有2行的buffer缓存,该warp只要有一个空闲即可调度; 2) 该warp数据准备好; 3) 该warp的取指pc准备好; a) 初始的取指pc准备好是在该warp数据准备好的时刻; b) 之后的取指pc准备好是根据取回的指令进行判断,取回的指令中有跳转指令时,等 该跳转指令执行完该warp取指pc即准备好;反之,取回指令后该warp取指pc就准备好。 4) 该warp的指令取到后,才能进行该warp的下一次调度。
  4. 4. 根据权利要求1所述的一种统一染色器阵列多warp指令取指电路,其特征在于:pc地 址计算单元⑷中warp pc地址计算的方法如下: 1) 在warp数据准备好时,warp pc地址值的初值为某个具体的数值; 2) 根据warp pc地址值取回的指令确定下一次该warp pc地址的值; a) 取回的m条指令中不含跳转指令,则warp pc地址每次顺序加m; b) 取回的m条指令中含有跳转指令,则warp pc地址需要根据跳转指令的类型和跳转指 令的执行结果进行计算得到warp pc值,warp pc值的更新时间根据跳转指令的执行情况确 定。
  5. 5. 根据权利要求1所述的一种统一染色器阵列多warp指令取指电路,其特征在于: warp pc地址根据跳转指令的类型和执行结果进行计算的具体过程为: 1) 对于绝对跳转指令,warp pc的值取指令中的立即数; 2) 对于条件跳转指令,如果条件判断为成立,贝Ij进行跳转,warp pc的值取指令中的立 即数;如果条件判断不成立,则不进行跳转,warp pc保持原值。
  6. 6. —种统一染色器阵列的多warp指令取指方法,其特征在于,包括以下步骤: 步骤1、多个warp pc地址计算单元同时进行warp pc地址的计算,并向warp调度单元发 出可调度的warp请求和warp pc地址; 步骤2、warp调度单元接收来自多个warp pc地址计算单元的warp可调度请求和warp pc地址,监控取指信息fifo的满状态;在取指信息fifo不满的情况下根据多个warp的可调 度请求进行公平轮询调度,输出当前调度的warp号;并通过该warp号进行warp pc地址选 择,向取指信息fifo发送写fifo信号和包括调度出的warp号和warp pc地址的写fifo数据; 步骤3、取指信息f if 〇存储调度的warp号和pc地址,在icache空闲且f if 〇不空的情况下 产生读fifo信号,接着根据icache空闲和读fifo信号产生取指请求,然后将读出的包括 warp号和取指pc地址的fifo数据、取指请求作为warp取指信息输出给外部icache单元进行 取指; 步骤4、外部icache接收取指信息fifo的warp取指请求、warp号和取指pc地址,进而返 回该warp要取的指令。
CN 201611139580 2016-12-12 2016-12-12 一种统一染色器阵列多warp取指电路及方法 CN106708473A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201611139580 CN106708473A (zh) 2016-12-12 2016-12-12 一种统一染色器阵列多warp取指电路及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201611139580 CN106708473A (zh) 2016-12-12 2016-12-12 一种统一染色器阵列多warp取指电路及方法

Publications (1)

Publication Number Publication Date
CN106708473A true true CN106708473A (zh) 2017-05-24

Family

ID=58937206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201611139580 CN106708473A (zh) 2016-12-12 2016-12-12 一种统一染色器阵列多warp取指电路及方法

Country Status (1)

Country Link
CN (1) CN106708473A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200422A1 (en) * 2002-04-19 2003-10-23 Semiconductor Technology Academic Research Center Parallel processor
CN102508635A (zh) * 2011-10-19 2012-06-20 中国科学院声学研究所 一种处理器装置及其循环处理方法
CN102508820A (zh) * 2011-11-25 2012-06-20 中国人民解放军国防科学技术大学 一种基于gpu的消除云方程并行求解过程中数据相关的方法
CN103336718A (zh) * 2013-07-04 2013-10-02 北京航空航天大学 一种gpu线程调度优化方法
CN103744642A (zh) * 2013-12-31 2014-04-23 天津国芯科技有限公司 用于改进处理器中直接跳转的方法及系统
CN105513003A (zh) * 2015-12-11 2016-04-20 中国航空工业集团公司西安航空计算技术研究所 一种图形处理器统一染色器阵列体系结构
CN105550443A (zh) * 2015-12-11 2016-05-04 中国航空工业集团公司西安航空计算技术研究所 一种基于SystemC周期精确的统一染色器阵列TLM模型
CN105574807A (zh) * 2015-12-11 2016-05-11 中国航空工业集团公司西安航空计算技术研究所 一种图形处理器内嵌可编程染色器开发平台

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200422A1 (en) * 2002-04-19 2003-10-23 Semiconductor Technology Academic Research Center Parallel processor
CN102508635A (zh) * 2011-10-19 2012-06-20 中国科学院声学研究所 一种处理器装置及其循环处理方法
CN102508820A (zh) * 2011-11-25 2012-06-20 中国人民解放军国防科学技术大学 一种基于gpu的消除云方程并行求解过程中数据相关的方法
CN103336718A (zh) * 2013-07-04 2013-10-02 北京航空航天大学 一种gpu线程调度优化方法
CN103744642A (zh) * 2013-12-31 2014-04-23 天津国芯科技有限公司 用于改进处理器中直接跳转的方法及系统
CN105513003A (zh) * 2015-12-11 2016-04-20 中国航空工业集团公司西安航空计算技术研究所 一种图形处理器统一染色器阵列体系结构
CN105550443A (zh) * 2015-12-11 2016-05-04 中国航空工业集团公司西安航空计算技术研究所 一种基于SystemC周期精确的统一染色器阵列TLM模型
CN105574807A (zh) * 2015-12-11 2016-05-11 中国航空工业集团公司西安航空计算技术研究所 一种图形处理器内嵌可编程染色器开发平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何炎祥 等: "通用图形处理器线程调度优化方法研究综述", 《计算机学报》 *

Similar Documents

Publication Publication Date Title
US6560667B1 (en) Handling contiguous memory references in a multi-queue system
US6237077B1 (en) Instruction template for efficient processing clustered branch instructions
US4829425A (en) Memory-based interagent communication mechanism
US5560029A (en) Data processing system with synchronization coprocessor for multiple threads
US5574939A (en) Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US7269712B2 (en) Thread selection for fetching instructions for pipeline multi-threaded processor
US20050068325A1 (en) Multi-thread graphic processing system
US20060004989A1 (en) Mechanism for selecting instructions for execution in a multithreaded processor
US7231478B2 (en) Programmed access latency in mock multiport memory
US7366878B1 (en) Scheduling instructions from multi-thread instruction buffer based on phase boundary qualifying rule for phases of math and data access operations with better caching
US6625654B1 (en) Thread signaling in multi-threaded network processor
US6108766A (en) Structure of processor having a plurality of main processors and sub processors, and a method for sharing the sub processors
US7065632B1 (en) Method and apparatus for speculatively forwarding storehit data in a hierarchical manner
US7047370B1 (en) Full access to memory interfaces via remote request
US5297281A (en) Multiple sequence processor system
US20060047849A1 (en) Apparatus and method for packet coalescing within interconnection network routers
US20110078427A1 (en) Trap handler architecture for a parallel processing unit
US20060179255A1 (en) Methods and apparatus for synchronizing data access to a local memory in a multi-processor system
US20090260013A1 (en) Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US20070061548A1 (en) Demapping TLBs across physical cores of a chip
US20140281242A1 (en) Methods, systems and apparatus for predicting the way of a set associative cache
US6944850B2 (en) Hop method for stepping parallel hardware threads
US6662203B1 (en) Batch-wise handling of signals in a processing system
US6269435B1 (en) System and method for implementing conditional vector operations in which an input vector containing multiple operands to be used in conditional operations is divided into two or more output vectors based on a condition vector
US20110185125A1 (en) Resource sharing to reduce implementation costs in a multicore processor

Legal Events

Date Code Title Description
PB01