由装置端推核心入队列的装置制造方法及图纸

技术编号:13113204 阅读:52 留言:0更新日期:2016-04-01 09:07
本发明专利技术的实施例提出一种由装置端推核心入队列的装置,包含存储器存取单元及命令串处理器。命令串处理器耦接于存储器存取单元,用以从存储器存取单元接收第一命令时,执行环形缓存器中的命令。执行单元根据核心的指令指示存储器存取单元为硬件执行线程在环形缓存器中配置空间,然后写入硬件执行线程包含的多个第二命令至环形缓存器中的空间。

【技术实现步骤摘要】

本专利技术涉及一种图形处理单元技术,特别是一种由装置端推核心入队列的装置
技术介绍
主端(CPU端)将一个核心推入队列,用以驱动装置端执行。传统上,核心执行结束,装置端返还控制权给主端。接着,主端将另一个待执行的核心推入队列。然而,这需要消耗额外成本并降低效能。因此,本专利技术提出一种由装置端(GPU端)推核心入队列的装置,用以解决以上缺点。
技术实现思路
本专利技术的实施例提出一种由装置端推核心入队列的装置,包含存储器存取单元、命令串处理器、执行单元(EU,Execut1n Unit)及固定流水线单元(FFU,Fixed Funct1nUnit)。命令串处理器耦接于存储器存取单元,用以从存储器存取单元接收第一命令时,执行环形缓存器中的命令。执行单元根据核心(kernel)的指令(instruct 1n)指示存储器存取单元为硬件执行线程在环形缓存器中配置空间,然后写入硬件执行线程包含的多个第二命令至环形缓存器中的空间。本专利技术的实施例提出一种由装置端推核心入队列的装置,包含存储器存取单元及命令处理器。存储器存取单元耦接于命令串处理器及视讯存储器,包含实体执行线程识别缓存器。视讯存储器包含环形缓存器。存储器存取单元根据执行单元(EU)发出的指令为核心的硬件执行线程在环形缓存器中配置空间,以及将硬件执行线程的基本轮廓数据储存至实体执行线程识别缓存器。基本轮廓数据包含执行线程识别码、配置空间的尾地址及就绪旗标,就绪旗标指出关联于硬件执行线程包含的多个命令尚未就绪。【附图说明】图1是依据本专利技术实施例的图形处理装置的硬件架构图。图2是依据本专利技术实施例的环形缓存器示意图。图3是依据本专利技术实施例的由装置端推核心入队列的示意图。【具体实施方式】以下说明为完成专利技术的较佳实现方式,其目的在于描述本专利技术的基本精神,但并不用以限定本专利技术。实际的
技术实现思路
必须参考之后的权利要求范围。必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。在权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。 图1是依据本专利技术实施例的图形处理装置(graphics-processing device)的硬件架构图。核心(kernel)是程序中宣告的功能(funct1n),并且由图形处理装置执行。通过图形处理装置执行核心实体(kerne Ι-1nstance)完成图形处理程序赋予的工作。此硬件架构提供一种机制,用以让图形处理装置中执行的核心实体可将另一个核心实体推入队列,而不需要主端(host-side)的直接参与。这提供了巢状的平行运算,也就是说,执行中的核心实体可巢状地创造更多层的并行作业。装置端执行的核心实体(父核心)将另一个核心实体(子核心)推入至环状缓存器(ring buffer)。当父核心及子核心异步执行时,除非所有的子核心都执行完毕,父核心的作业无法结束。核心亦可于类似领域中称为计算着色器(compute shader)。计算着色器是另一类独立的着色器类型,相似于现行的图形着色器,例如顶点、几何图形、画素着色器等。其目的在提供更多的通用计算作业,而不是在图形着色器中执行的运算。视讯存储器(video memory) 170配置一段空间作为环形缓存器(RingBuffer,RB),例如64MBytes。图2是依据本专利技术实施例的环形缓存器示意图。其中,使用三个指标分别指向环形缓存器200中的首、尾及锁定尾地址“RB_head”、“RB_tail”及“RB_locked_tail”。环形缓存器200包含从首地址“RB_head”至锁定尾地址“RB_locked_tail”的存储器空间。详细来说,环形缓存器200可被多个核心(kernel)共享。视讯存储器170可为关联于核心的执行线程群组(thread group)配置环形缓存器200的空间。每个执行线程群组可包含多个执行线程,例如16x16x16个执行线程(又可称为软件执行线程组,softwarethread group)。执行单元130打包指定数目的软件执行线程成为一个可并行处理的硬件执行线程(hardware thread),例如包含32个软件执行线程,亦可称为单指令多数据(SIMD,Single Instruct1n Multiple Data)执行线程。环形缓存器最多可储存指定数目的硬件执行线程,例如96个硬件执行线程。显不驱动器110发送命令(command)给命令串处理器(CSP,Command StreamProcessor) 120,用以产生一个核心实例的处理命令(kernel dispatch command),称为主端推入队列的核心(host-side-enqueued kernel)。执行单元130会将一个核心实例的处理命令拆分成若干个硬件执行线程,此硬件执行线程包含指定数目的软件执行线程,例如32个,并且每一个软件执行线程包含产生一个子核心实例的处理命令(kernel dispatchcommand),又称装置端推入队列的核心(device-side-enqueued kernel)。也就是说,显示驱动器110启动第一个核心,接下来的后裔核心都是由装置端产生。执行单元130包含多个运算逻辑单元(ALU,Arithmetic Logic Unit) 131a至131m,每个运算逻辑单元包含一个通用寄存器文档(CRF,Common Register File)133,例如m为32。命令串处理器120依据从显示驱动器110传送的指令或从存储器存取单元160传送的命令驱动执行单元130,用以产生一个核心的硬件执行线程。详细来说,硬件执行线程可指示存储器存取单元(MXU,Mem0ryAccess Unit)160在环形缓存器200中配置空间给一个核心的硬件执行线程。配置环形缓存器的指令必须为原子指令(atomic instruct1n),用以确保空间配置作业不被其它指令打断。此外,为了记录硬件执行线程推入环形缓存器200的顺序,存储器存取单元160包含实体执行线程识别缓存器(PID,PhysiCal-thread ID buffer) 161,用以依序储存环形缓存器200中每一个硬件执行线程的基本轮廓数据(profile),包含执行线程识别码、尾地址及就绪旗标“bReady”等。其中,执行线程识别码用以识别硬件执行线程,尾地址为配置空间的最后地址,而就绪旗标初始为“ο”,指出关联于此硬件执行线程的命令尚未就绪。在配置空间时,存储器存取单元160更判断是否需要从环形缓存器的首地址“RB_head”开始配置空间。详细来说,存储器存取单元160检查实体执行线程识别缓存器161中最后一个硬件执行线程的尾地址是否等于或超过环形缓存器的尾地址“RB_tai 1”。若是,则从首地址“RB_head”开始配置空间;否则,从最后一个硬件执行线程的尾地址的下一个地本文档来自技高网
...

【技术保护点】
一种由装置端推核心入队列的装置,包含:一存储器存取单元;以及一命令串处理器,耦接于上述存储器存取单元,用以从上述存储器存取单元接收一第一命令时,执行环形缓存器中的命令,使得执行单元根据核心的指令指示存储器存取单元为第一硬件执行线程在环形缓存器中配置空间,然后写入上述第一硬件执行线程包含的多个第二命令至上述环形缓存器中的上述空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:武凤霞洪洲沈恬王渊峰
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1