相依指令线程调度制造技术

技术编号:5429858 阅读:229 留言:0更新日期:2012-04-11 18:40
一种线程调度器包括用于管理线程的执行的上下文单元,其中每一上下文单元包括加载参考计数器,所述加载参考计数器用于维持指示与特定上下文单元相关联的若干数据请求与若干数据返回之间的差的计数器值。线程上下文单元的上下文控制器经配置以避免在所述计数器值为非零时转发线程的指令且所述指令包括指示所述指令需要由先前指令返回的数据的数据相依性指示符。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体来说涉及图形处理器且更具体来说涉及对具有相依指令的线程的线 程调度。
技术介绍
经常使用专用处理器来执行与一种类型的应用程序相关的具体功能,以有效且快 速地执行与所述应用程序相关的操作。举例来说,图形处理器执行各种图形操作来处 理图像数据并再现图像且有效地操纵并显示计算机图形。由于其高度并行的结构,对 于各种各样的复杂算法,图形处理器比典型的通用处理器更有效。图形处理器以以下 方式来实施若千图形图元操作使通过主机中央处理单元(CPU)执行所述操作比直 接向屏幕呈现所述图形快得多。为有效地利用专用处理器(例如,图形处理器)中的资源,经常将任务组织为线 程,其中可同时或伪同时执行所述线程的执行。由于资源在给定时间通常仅可寻址单 个指令,因此使用线程调度器来控制对各种线程的指令的执行的计时且有效地向所述 线程分配资源。然而,某些指令需要从具有不可预测的延迟的数据源检索数据。举例 来说,由于数据大小或位置,从处理器系统内的某些存储器检索数据可具有不可预测 的延迟。具有不可预测的延迟的数据源的另一实例是在图形处理器中返回纹理数据的 纹理引擎。由于纹理指令的可变复杂性,不能够预测返回纹理数据所需要的时间。线 程的指令可以或可不需要从具有不可预测的延迟的数据源检索数据。在线程的执行期 间,相依指令可需要由先前指令获取的数据来执行所述相依指令。当从不可预测延迟 数据源获取所述所需数据时,可能无法及时返回所述所需数据来执行所述相依指令。用于在常规系统中管理线程的一种技术包括在执行特定线程的每--寸旨令之前检 査数据可用性。然而,所述方法需要利用资源的复杂检测方案。用于常规系统中的另 --技术包括暂停指令,直到完成加载指令,此导致低效率。因此,需要 一种用于有效地管理具有相依指令的线程的执行的线程调度器。
技术实现思路
一种线程调度器包括用于提交线程的指令供所述线程调度器调度的线程上下文 单元,其中每一上下文寄存器包括用于维持指示与特定上下文寄存器相关联的若干数据请求与若干数据返回之间的差的计数器值的加载参考计数器。所述上下文单元的线程上下文控制器经配置以避免在所述计数器值为非零时提交线程的指令且所述指令 包括指示所述指令需要由先前指令返回的数据的数据相依性指示符。附图说明图1是根据本专利技术的实例性实施例的线程管理系统的框图。图2是根据所述实例性实施例的线程控制的状态机图。图3是根据所述实例性实施例的管理具有相依指令的线程的方法的流程图。具体实施例方式本文所用措词实例性意指充当实例、示例或例证。本文说明为实例性 的任何实施例未必解释为优选或优于其它实施例。图1是根据本专利技术的实例性实施例的线程管理系统100的框图。除参照图1所论 述的那些以外,线程管理系统100可包括其它过程、实体、引擎及/或功能。可使用硬件、软件及/或固件的任一组合来实施图1中所图解说明的块。此外,可以任何数 量的装置、电路或元件来实施图1中所说明的块的功能及操作。可将所述功能块中的 两者或更多者集成在串-个装置中,且可在若干装置上实施说明为在任一单个装置中执行的功能。线程管理系统100的适合实施方案的实例包括将系统100实施为多线程处 理器IOI的部分。然而,可将所论述的技术应用到用于调度并处理多个线程的各种处理器或计算机系统中的任一者。在所述实例性实施例中,在多线程处理器101中实施线程调度器102、算术逻辑 单元(ALU) 106、加载控制器108、指令高速缓存器(未显示)、寄存器堆库(未 显示)、常数随机存取存储器(RAM)(未显示)、其它功能。多线程处理器101 是经配置以有效地处理特定类型的数据串流的可编程处理器。适合的多线程处理器 101的实例包括多线程处理器,所述多线程处理器包括用于有效地处理多媒体数据串 流(例如,视频、音频等)的常数数据。所述常数RAM通过改善寄存器库检索效率 来支持所述ALU。指令高速缓存器存储线程的指令以向线程调度器102提供指令。 在线程调度器102的控制下,加载控制器108用来自存储器128的指令加载指令高速 缓存器且用来自存储器128及/或纹理引擎130的数据加载所述常数RAM及所述寄存 器堆库。所述指令指示针对每一线程将要执行的具体操作。适合操作的实例包括算术 操作、初等函数及存储器存取操作。所述常数RAM存储由ALU 106使用的常数值。所述寄存器堆库可存储临时结 果以及线程的来自ALU 106的最终结果。输出接口 (未显示)从寄存器堆库接收已 执行线程的最终结果且将所述结果提供到对应的应用程序。线程管理系统100从(举例来说)应用程序接收线程,例如图形线程。大体来说, 线程调度器102接收线程串流且执行各种功能来调度并管理线程的执行。举例来说,6线程调度器102可调度线程的处理、确定特定线程所需要的资源是否可用,且经由加载控制器108将线程数据移动到寄存器堆库。线程调度器102与加载控制器108介接 以使所接收线程的资源同步。线程调度器102还可监视从特定应用程序接收线程的次 序且致使这些线程以与接收时的相同次序或序列被输出。线程调度器102选择活动线程以用于执行,检查所选择线程之间的读取/写入端 口冲突,如果不存在冲突,那么将来自线程的适当指令指派到ALU 106中且将另一 线程的另一指令发送到加载控制器108。在线程调度器102的请求下,加载控制器108 还可经配置以从不可预测延迟数据源104 (例如,纹理引擎130或外部存储器128) 获得与线程相关联的数据。举例来说,存储器128可包括全局数据高速缓存器及/或 外部存储器装置。除发出对丢失指令的提取请求以外,加载控制器108将线程数据加 载到寄存器堆库(未显示)中且将相关联指令加载到指令高速缓存器(未显示)中。 线程调度器102还移除已由ALU 106处理的线程。ALU 106可以是单个四元组ALU或可包括四个标量ALU。在所述实例性实施例 中,ALU106对多达四个像素的属性的一个分量执行像素并行处理。在某些情况下, ALU 106对单个像素的属性的多达四个分量执行分量并行处理。ALU 106从寄存器堆 库提取数据且从常数RAM接收常数。理想地,ALU106在每一时钟循环处理数据, 使得其不空闲,从而提高处理效率。ALU106在到寄存器堆库的接口上包括多个读取 及写入端口,使得其能够在新线程数据在每一时钟循环被提取/读取时提供线程结果。所述线程调度器包括用于通过线程仲裁/资源管理器(在本文中称作资源管理器) 132来管理并提交用于执行的线程的多个线程上下文单元110、 112、 114。每一线程 被指派到线程槽且在相关联的线程上下文单元110、 112、 114上被管理。每一线程上 下文单元IIO、 112、 114内的线程上下文寄存器134、 136、 138存储所述线程的每一 指令的指令类型及其它信息。每一线程上下文单元110、 112、 114内的线程上下文控 制器140、 142、 144控制向资源管理器132对指令的提交。线程上下文单元从资源管 理器132请求资源。当资源可用时,所述资源管理器批准所述请求。线程调度器102 内的流控制器(未显示)及资源管理器132允许每一线程存取ALU106、加载控制器 108及指本文档来自技高网
...

【技术保护点】
一种线程上下文单元,其经配置以转发线程的指令以供执行,所述线程上下文单元包含: 加载参考计数器,其经配置以维持指示若干数据请求与若干数据返回之间的差的计数器值;及 上下文控制器,其经配置以避免在所述计数器值为非零时提交线程的指令 且所述指令包括指示所述指令需要由先前指令返回的数据的数据相依性指示符。

【技术特征摘要】
【国外来华专利技术】US 2006-8-29 11/468,2211、一种线程上下文单元,其经配置以转发线程的指令以供执行,所述线程上下文单元包含加载参考计数器,其经配置以维持指示若干数据请求与若干数据返回之间的差的计数器值;及上下文控制器,其经配置以避免在所述计数器值为非零时提交线程的指令且所述指令包括指示所述指令需要由先前指令返回的数据的数据相依性指示符。2、 如权利要求1所述的线程上下文单元,其中所述若干数据请求是对来自不可 预测延迟数据源的数据的若干数据请求且所述若干数据返回是来自所述不可预测延 迟数据源的若干数据返回。3、 如权利要求2所述的线程上下文单元,其中所述不可预测延迟数据源是存储器。4、 如权利要求2所述的线程上下文单元,其中所述不可预测延迟数据源是纹理 引擎。5、 如权利要求2所述的线程上下文单元,其中所述上下文控制器被实施在逻辑 中且包含经配置以检测所述数据相依性指示符的相依性指示符检测器。6、 如权利要求1所述的线程上下文单元,其中所述上下文控制器进一步经配置 以在所述计数器值为零时执行所述指令。7、 如权利要求2所述的线程上下文单元,其中所述上下文控制器进一步经配置 以在识别所述对来自所述不可预测延迟数据源的数据的请求时递增所述计数器且经 配置以响应于识别来自所述不可预测延迟的数据的所述返回时递减所述计数器。8、 一种线程调度器,其经配置以向用于管理线程的执行的多个线程上下文寄存 器分配所请求的资源,所述线程调度器包含多个加载参考计数器,每一加载参考计数器经配置以维持指示与线程上下文单元 相关联的若干数据请求与若干数据返回之间的差的计数器值,所述线程调度器经配置 以避免在与线程相关联的计数器值为非零时转发所述线程的数据相依指令以供执行 且所述数据相依指令包括指示所述指令需要由所述线程的先前指令返回的数据的数据相依性指示符。9、 如权利要求8所述的线程调度器,其中所述若干数据请求是对来自不可预测 延迟数据源的数据的若干数据请求且所述若干数据返回是来自所述不可预测延迟数 据源的若干数据返回。10、 如权利要求9所述的线程调度器,其中不可预测延迟数据源是存储器。11、...

【专利技术属性】
技术研发人员:杜云于春戈尔夫焦
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

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

1