[发明专利]用于在没有指令解码的情况下调度指令的方法和装置无效
申请号: | 201210567104.1 | 申请日: | 2012-12-24 |
公开(公告)号: | CN103279379A | 公开(公告)日: | 2013-09-04 |
发明(设计)人: | 杰克·希莱尔·肖凯特;罗伯特·J·斯托尔;奥利维尔·吉普;迈克尔·费特曼;瑟利斯·加德雷;罗伯特·史蒂文;亚历山大·乔利 | 申请(专利权)人: | 辉达公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/38 |
代理公司: | 北京市磐华律师事务所 11336 | 代理人: | 徐丁峰;魏宁 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 没有 指令 解码 情况 调度 方法 装置 | ||
技术领域
本公开总地涉及多线程指令调度,并且,更具体地,涉及用于在没有指令解码的情况下调度指令的方法和装置。
背景技术
并行处理器具有使用不同的硬件资源来使多个线程能够同时执行的多个独立内核。SIMD(单指令、多数据)架构处理器在多个内核的每一个上均执行相同的指令,其中每个内核均执行不同的输入数据。MIMD(多指令、多数据)架构处理器利用供应给每个内核的不同的输入数据在不同的内核上执行不同的指令。并行处理器也可以是多线程的,其使用单个处理内核的资源使两个或更多个线程能够大体上同时执行(即在不同的时钟周期期间在内核上执行不同的线程)。指令调度是指用于确定在下一个时钟周期期间哪个线程执行在哪个内核上的技术。
通常,指令调度算法在从存储器获取指令之后将解码多个指令以确定每个特定操作所需的特定资源和与那些资源相关联的延迟。之后系统可以评估该延迟以为该多个指令确定最佳调度顺序。例如,一个指令可以指定操作数(即寄存器值),该操作数取决于正在由来自同一线程的前一个指令或来自另一线程的指令所执行的计算。如果算法确定其他指令当前停滞并正在等待资源(例如实施存储器读以将值加载到寄存器中)从而使得操作数不可用于下一个指令,则在等待资源变得可用时算法将从不同线程选择替代指令以在下一个时钟周期期间执行。
上述系统的一个问题是解码多个指令以及分析与由指令所指定的所有资源相关联的延迟需要处理器中的大量管理资源和大量状态信息存储。处理器可以确定由指令所指定的特定操作码、与操作相关联的资源(例如作为操作数传递到每个指令的特定寄存器)、指令之间的相互依赖关系以及与指令相关联的任意其他重要数据。这类算法的实现可采取许多时钟周期来完成以及采取大量存储器用于存储和解码指令。完全解码多个指令造成处理中的效率低下并需要会增加这类处理器成本的额外的片上硬件资源。
因此,本领域需要的是用于在没有由实施全指令解码所引入的延迟的情况下实施指令调度的系统和方法。
发明内容
本公开的一个示范性实施例提出了一种用于在没有指令解码的情况下调度指令的方法。所述方法包括以下步骤:从指令高速缓存单元获取与两个或两个以上线程组相对应的多个指令、在不解码所述指令的情况下将所述多个指令存储在缓冲区中以及接收与所述指令的每一个相关联的预解码数据。所述步骤进一步包括至少部分地基于所述预解码数据选择指令用于执行、解码所述指令以及将所述指令分派到所述处理单元用于执行。
本公开的另一示范性实施例提出了一种包括指令的计算机可读存储介质,所述指令当由处理单元执行时导致所述处理单元在没有指令解码的情况下调度指令。所述指令导致所述处理单元实施以下步骤:从指令高速缓存单元获取与两个或两个以上线程组相对应的多个指令、在不解码所述指令的情况下将所述多个指令存储在缓冲区中以及接收与所述指令的每一个相关联的预解码数据。所述步骤进一步包括至少部分地基于所述预解码数据来选择指令用于执行、解码所述指令以及将所述指令分派到所述处理单元用于执行。
本公开的又一示范性实施例提出了一种用于在没有指令解码的情况下调度指令的系统,其包括中央处理单元和并行处理单元。所述并行处理单元包括调度单元,所述调度单元配置为从指令高速缓存单元获取与两个或两个以上线程组相对应的多个指令、在不解码所述指令的情况下将所述多个指令存储在缓冲区中以及接收与所述指令的每一个相关联的预解码数据。所述调度单元进一步配置为至少部分地基于所述预解码数据来选择指令用于执行、解码所述指令以及将所述指令分派到所述并行处理单元用于执行。
附图说明
因此,可以详细地理解上述本公开的特征,并且可以参考示范性实施例得到对如上面所简要概括的本发明更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施例,因此不应被认为是对其范围的限制,本公开可以具有其他等效的实施例。
图1为示出了配置为实现本公开一个或多个方面的计算机系统的框图;
图2为根据本公开一个实施例的用于图1的计算机系统的并行处理子系统的框图;
图3A为根据本公开一个实施例的图2的前端的框图;
图3B为根据本公开一个实施例的在图2的并行处理单元之一内的通用处理集群的框图;
图3C为根据本公开一个实施例的图3B的流多处理器的一部分的框图;以及
图4为根据本公开一个示范性实施例的图3C的warp调度器和指令单元的框图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于辉达公司,未经辉达公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210567104.1/2.html,转载请声明来源钻瓜专利网。