当前位置: 首页 > 专利查询>英特尔公司专利>正文

无操作系统干预情况下调度OS隔离定序器上的线程的机制技术方案

技术编号:2831702 阅读:226 留言:0更新日期:2012-04-11 18:40
本文公开了在无操作系统干预的情况下调度与OS无关的“纤程”的方法、设备和系统实施例。对于至少一个实施例,由调度程序例程而不是操作系统调度纤程以供执行。调度程序例程可在每个启用的定序器上运行。调度程序可从队列系统检索纤程描述符。与调度程序相关联的定序器随后可执行由描述符描述的纤程。本文还描述和声明了其他实施例。

【技术实现步骤摘要】
【国外来华专利技术】
本公开内容一般涉及信息处理系统,并且更具体地,涉及无操作系统干预情况下OS隔离定序器上的线程执行的调度和控制。
技术介绍
为提高信息处理系统、诸如包括微处理器的那些信息处理系统 的性能,采用了硬件和软件技术。在硬件方面,提高微处理器性能 的微处理器设计方案包括了更快的时钟速度、流水线技术、分支预 测、超标量执行、无序执行和高速緩存。许多此类方案使得晶体管 数量增加,并且在一些情况下,甚至导致晶体管数量增加率大于性 能提高率。其他性能增强涉及软件技术,而不是寻求完全通过增加晶体管 来提高性能。 一种已用于提高处理器性能的软件方案称为多线程处 理。在软件多线程处理中,指令流可分成可以并行执行的多个指令 流。或者,多个独立的软件流可并行执行。在一个称为时间片多线程处理或时间复用(TMUX)多线程 处理的方案中,单个处理器在固定时间段后在线程之间切换。在还 有的另 一方案中,在发生例如长等待时间高速緩存缺失的触发事件 时,单个处理器在线程之间切换。在称为基于事件切换的多线程处 理(SoEMT)的此后一方案中,在给定时间最多只有一个线程是 活动的。在硬件方面,越来越支持多线程处理。例如,在一个方案中, 在诸如芯片多处理器(CMP)系统等多处理器系统中的处理器各自可并发对多个软件线程之一起作用。在称为同时多线程处理(SMT)的另一方案中,单个物理处理器变得对操作系统和用户程 序好像是多个逻辑处理器。对于SMT,多个软件线程可以是活动的, 并同时在单个处理器上执行而无需切换。也就是说,每个逻辑处理 器维护一套完整的架构状态,但共享诸如高速緩存、执行单元、分 支预测器、控制逻辑和总线等物理处理器的许多其他资源。对于 SMT,来自多个软件线程的指令因而在每个逻辑处理器上并发执行。 对于支持软件线程并发执行的系统,如SMT和/或CMP系统, 操作系统应用可控制软件线程的调度和执行。然而, 一般情况下, 操作系统控制不能良好地扩展;操作系统应用调度线程而对性能没 有负面影响的能力通常只限于较少量的线程。附图筒述可参照下面的附图理解本专利技术的实施例,其中,类似的要素用 类似的标号表示。这些图形无意于限制,而是用于说明调度OS隔离 线程以供执行的设备、系统和方法的选定实施例。附图说明图1是方框图,示出多定序器系统的一般并行编程方案的图形 表示。图2是方框图,示出在用户级多线程处理的至少一个实施例的 线程和纤程(shred)之间的共享存储器和状态。图3是方框图,示出多定序器系统的各个实施例。图4是数据流程图,示出支持用户级线程控制的多定序器多线 程处理系统的调度机制的至少 一个实施例。图5是数据流程图,示出非对称多定序器多线程处理系统的调 度机制的至少 一个实施例。图6是数据流程图,示出包括多个工作队列的调度机制的至少 一个实施例。图7是时序图,示出用户驱动的与OS无关的纤程调度的控制流的至少一个实施例。图8是时序图,示出用户驱动的与OS无关的纤程调度的特定示 例的控制流的至少一个实施例。图9是方框图,示出能够执行公开技术的系统的至少一个实施例。详细说明下面的论述描述了调度和/或以其他方式控制一个或多个OS隔离定序器上的执行线程(称为纤程)的方法、系统和机制的选定实施例。OS隔离定序器在本文中有时称为os不可见。可结合单核或多核多线程处理系统来利用本文所述机制。在下面的说明中,陈述 了如下的许多特定的细节以更透彻地理解本专利技术,如处理器类型、 多线程处理环境、系统配置、多定序器系统中定序器的数量和拓朴、 微架构的结构及指令名称和参数。然而,本领域的技术人员将理解, 可无需此类特定细节来实现本专利技术。另外,未详细示出一些熟知的 结构、电路及诸如此类以免不必要地混淆本专利技术。共享存储器多处理范例可在称为并行编程的方案中使用。根据 此方案,应用程序员可将有时称为应用或进程的软件程序分成要 并发运行的多个任务以便表示软件程序的并行性。同一软件程序(进 程)的所有线程共享共同的存储器逻辑视图。图1是方框图,示出在多定序器多线程处理系统上的并行编程方案的图形表示。图1示出操作系统140可见的进程100、 120。这 些进程100、 120可以是不同的软件应用程序,如字处理程序和电子 邮件管理程序。通常,每个进程在不同的地址空间中才喿作。操作系统(OS) 140 —般负责为诸如图1所示进程120等进 程管理用户创建的任务。相应地,操作系统140可为与进程120相 关联的每个用户定义的任务创建独特的线程125、 126,并可将线程 125、 126映射到线程执行资源。(在图1中未示出线程执行资源,但下面有详细论述。)OS 140—般负责调度这些线程125、 126以在 执行资源上执行。与单个进程相关联的线程一般具有相同的存储器 视图,并可看到彼此的虚拟地址空间。由于OS140负责创建、映射和调度线程,因此,线程125、 126 是OS 140可见的。另外,本专利技术的实施例包含OS 140不可见的另 外的线程130- 136。也就是说,OS 140并不创建、管理或以其他方 式确认或控制这些另外的线程130 - 136。这些非OS 140创建或控制 的另外的线程在本文有时称为纤程130 - 136,以便区分它们与OS 可见的线程。由用户级程序创建和管理这些纤程,并调度这些纤程 以在与操作系统隔离的定序器上运行。OS隔离定序器共享与OS可 见定序器相同的环0状态。纤程因而共享为与同一进程相关联的线 程创建的同一执行环境(地址映射)。术语线程和纤程在本文中使用时至少包括要与进程的其他线 程和/或纤程并发执行的指令集的概念。线程和纤程术语因此均包 含软件指令集的想法。均为指令流的线程(由OS控制)与纤程(操 作系统不可见并由用户控制)之间的区分因素在本文中使用时指如 何管理线程和纤程指令流的执行的差异。响应对OS的系统调用而生 成线程。OS生成该线程并分配资源以运行该线程。为线程分配的此 类资源可包括操作系统用于控制和调度线程的数据结构。与此相反,经用户指令或原语生成纤程的至少一个实施例, 该指令或原语调用软件库或其他与OS无关的;f几制以生成OS不知道的纤程。因此可响应用户级软件库调用而生成纤程。图2是方框图,以图形形式示出有关上述的声明即同一软件程 序或进程的所有线程共享共同的存储器逻辑视图的其他细节。对于 本专利技术的实施例,此声明在与进程100、 120相关联的纤程方面同样 适用。在本文中参照图1论述图2。图2采用图1所示进程120、线程125、 126及纤程130- 136的 图形表示。然而,此类表示不应视为限制。本专利技术的实施例无需对与进程相关联的线程或纤程的数量强加上限或下限。在下限方面, 图1示出,在给定时间运行的每个进程根本无需一定与一些线程或纤程相关联。例如,图1所示的进程0 100示为在图1所示的特殊时间运行,既无线程,也无纤程。然而,如图l所示,另一进程120可与一个或多个线程125、 126 相关联。另外,进程120还可另外与一个或多个纤程130- 136相关 联。进程120的两个线程125、 126和四个纤程130- 136的表示只 是为了说明,不应视为限制。与进程相关联的OS可见线程的数量可 受OS程序的限制。然而,对本文档来自技高网...

【技术保护点】
一种用于并发线程的用户级调度的方法,包括:    执行用户生成的线程原语,其中,所述执行还包括调用生成线程控制指令的库函数;    响应于所述线程原语,生成描述线程的工作描述符;    促使所述工作描述符存储在队列系统中;以及    在无操作系统干预的情况下,在OS隔离定序器上调度所述线程的执行。

【技术特征摘要】
【国外来华专利技术】US 2004-12-30 11/027,4451.一种用于并发线程的用户级调度的方法,包括执行用户生成的线程原语,其中,所述执行还包括调用生成线程控制指令的库函数;响应于所述线程原语,生成描述线程的工作描述符;促使所述工作描述符存储在队列系统中;以及在无操作系统干预的情况下,在OS隔离定序器上调度所述线程的执行。2. 如权利要求l所述的方法,还包括 初始化所述定序器以执行用户级并发多线程处理。3. 如权利要求2所述的方法,其中所述初始化还包括在所述定序器上触发用户级分布式调度程序 的执行。4. 如权利要求l所述的方法,其中所述队列系统包括与笫 一定序器类型相关联的第 一队列和与第 二定序器类型相关联的第二队列。5. 如权利要求4所述的方法,其中所述第一定序器和所述第二定序器相对于至少一个计算度量不 对称。6. 如权利要求5所述的方法,其中所述计算度量是功能度量。7. 如权利要求5所述的方法,其中所述计算度量是功耗度量。8. 如权利要求6所述的方法,其中 所述功能度量是执行环0操作的能力。9. 如权利要求4所述的方法,其中所述促使还包括基于用户提供的提示,促使所述工作描述符存 储在所述第一队列中。10. 如权利要求l所述的方法,其中 所述线程原语是纤程创建原语。11. 如权利要求l所述的方法,其中 所述线程原语是纤程同步原语。12. 如权利要求l所述的方法,其中 所述线程原语是符合工业标准的应用程序员接口的一部分。13. —种设备,包括包括与操作系统无关的分布式调度程序例程的第 一部分的第一 线程执行单元;包括与操作系统无关的分布式调度程序例程的第二部分的第二 线程执行单元;其中,所述第一线程执行单元和所述笫二线程执行单元能够进 行并发多线程执行;其中,所述第一部分和所述第二部分还查询工作队列以争用描 述线程的工作描述符;以及其中,所述分布式调度程序例程基于所述争用,在无操作系统 千预的情况下调度要在所述线程执行单元中选定的一个上执行的线 程。14. 如权利要求13所迷的设备,其中所述线程执行单元中的至少一个是操作系统可见的,并且所述 执行单元中的至少另 一个是所述操作系统不可见的。15. 如权利要求13所述的设备,其中 所述设备是单核处理器;以及所述第 一执行单元和所述第二执行单元是逻辑处理器。16. 如权利要求13所迷的设备,其中 所述设备是多核处理器;以及 所述第一执行单元和所述第二执行单元是处理器核。17. 如权利要求13所述的设备,其中 所述执行单元在功能上对称。18. 如权利要求17所述的设备,其中所述队列系统包括保存适用于所有所述执行单元的工作描述符 的单个队列。19. 如权利要求13所述的设备,其中所述执行单元中的至少 一个在计算上相对于其他执行单元中的 一个或多个不对称。20. 如权利要求19所述的设备,其中所述队列系统包括为所述至少一个非对称执行单元保存工作描 述符的第一队列,并且还包括为所述一个或多个其他执行单元保存 描述符的第二队列。21. —种多定序器多线程处理系统,包括 存储器系统;第一定序器类型的笫一定序器;以及 第二定序器类型的第二定序器;以及存储在所述存储器系统中的软件库,所述软件库包括生成工作 队列的一个或多个指令;所述库还包括分布式调...

【专利技术属性】
技术研发人员:B比比RA汉金斯H王T迪普田新民C考施克J沈A马利克M吉尔卡P塞蒂G钦亚B帕特尔JP赫尔德
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1