在同时多线程处理机中用于线程同步的方法和系统技术方案

技术编号:2853053 阅读:174 留言:0更新日期:2012-04-11 18:40
提供一种方法、系统和制造物品,其中第一应用执行至少两个对应于同时多线程处理器的线程,所述处理器的资源由第一应用获得。在将同时多线程处理器让渡给第二应用之前,同步所述至少两个线程。

【技术实现步骤摘要】

本专利技术涉及一种用于在同时多线程处理机(simultaneous multi-threadedprocessor machine)中同步线程的方法、系统和制造物品。
技术介绍
同时多线程(SMT)处理器可以在每个处理器周期中执行来自多个线程的多条指令。SMT流程设计可以实现具有超标量(superscalar)处理器技术的硬件多线程,以允许在每个处理器周期中多个线程发出指令。与在任何给定的周期中只有单个硬件关联(hardware context)(即,线程)有效的其他硬件多线程架构不同,SMT流程设计可以允许所有的线程关联(thread context)同时竞争和共享SMT处理器的资源。相比于非SMT机,SMT机可以在多道程序和并行的环境中为多种应用提供更高的指令吞吐量和程序加速。SMT机可以包括多个SMT处理器。可以使用多个SMT处理器处理运行在SMT机上的用户应用所产生的指令,其中用户应用可以在操作系统提供的操作环境下执行。超级管理程序(hypervisor)是向操作系统提供对SMT处理器、存储器和其他资源的存取的程序,从而操作系统可以允许用户应用执行。超级管理程序具有比操作本文档来自技高网...

【技术保护点】
一种方法,包括:由第一应用执行至少两个对应于同时多线程处理器的线程,所述处理器的资源由第一应用获得;以及在将同时多线程处理器让渡给第二应用之前,同步所述至少两个线程。

【技术特征摘要】
US 2004-11-16 10/990,8251.一种方法,包括由第一应用执行至少两个对应于同时多线程处理器的线程,所述处理器的资源由第一应用获得;以及在将同时多线程处理器让渡给第二应用之前,同步所述至少两个线程。2.如权利要求1所述的方法,其中,在同步所述至少两个线程之后、让渡同时多线程处理器之前,挂起所述至少两个线程。3.如权利要求1所述的方法,其中,第二应用具有比第一应用更高的特权级别,并且第二应用控制对包括该同时多线程处理器在内的多个同时多线程处理器的存取。4.如权利要求3所述的方法,其中,第一应用是在操作系统中实现的驱动程序,而第二应用是用于所述多个同时多线程处理器的超级管理程序。5.如权利要求1所述的方法,还包括在执行所述至少两个线程之前,由第一应用获取同时多线程处理器的资源;以及在同步两个线程之前,由这两个线程轮询第二应用以确定第二应用是否需要该同时多线程处理器来执行。6.如权利要求5所述的方法,还包括将同时多线程处理器让渡给第二应用;在同时多线程处理器上由第二应用完成执行;以及在同时多线程处理器上由第二应用完成执行之后,继续执行所述至少两个同步的线程。7.如权利要求1所述的方法,其中,该同时多线程处理器被包括在第二应用所控制的多个同时多线程处理器中,其中该方法还包括执行与多个同时多线程处理器对应的多个线程集,其中,第一线程集中包括至少两个线程,在第二线程集之前第一线程集同步并且让渡同时多线程处理器。8.如权利要求7所述的方法,该方法还包括响应于第二应用需要一个同时多线程处理器的确定,启动第一线程集的第一同步;响应于第二应用需要一个同时多线程处理器的确定,启动第二线程集的第二同步;以及响应于第一同步的完成而终止第二同步,并且继续执行第二线程集。9.如权利要求1所述的方法,其中,至少两个线程的同步发生在所述至少两个线程没有保持任何锁定资源的时刻,并且所述同步防止共享资源被让渡给第二应用的同时多线程处理器锁定。10.如权利要求1所述的方法,其中,所述至少两个线程在第一应用看来仿佛这两个线程在独立的处理器上执行,尽管这两个线程的实际执行是由同时多线程处理器上的至少两个硬件线程控制的。11.如权利要求1所述的方法,其中,所述至少两个线程是对应于同时多线程处理器的至少两个硬件线程的软件线程。12.一种系统,包括存储器;连接到存储器的多线程处理器;和连接到存储器的电路,其中该电路能够执行操作,该操作包括(i)由第一应用执行至少两个对应于同时多线程处理器的线程,所述处理器的资源由第一应用获得;以及(ii)在将同时多线程处理器让渡给第二应用之前,同步所述至少两个线程。13.如权利要求12所述的系统,其中,在同步所述至少两个线程之后、让渡同时多线程处理器之前,挂起所述至少两个线程。14.如权利要求12所述的系统,其中,第二应用具有比第一应用更高的特权级别,并且第二应用控制对包括该同时多线程处理器在内的多个同时多线程处理器的存取。15.如权利要求14所述的系统,其中,第一应用是在操作系统中实现的驱动程序,而第二应用是用于所述多个同时多线程处理器的超级管理程序。16.如权利要求12所述的系统,所述操作还包括在执行所述至少两个线程之前,由第一应用获取同时多线程处理器的资源;以及在同步两个线程之前,由这两个线程轮询第二应用以确定第二应用是否需要该同时多线程处理器来执行。17.如权利要求16所述的系统,所述操作还包括将同时多线程处理器让渡给第二应用;在同时多线程处理器上由第二应用完成执行;以及在同时多线程处理器上由第二应用完成执行之后,继续执行所述至少两个同步的线程。18.如权利要求12所述的系统,还包括由第二应用控制的多个同时多线程处理器,其中,该同时多线程处理器被包括在所述多个同时多线程处理器中,其中所述操作还包括执行与多个同时多线程处理器对应的多个线程集,其中,第一线程集中包括至少两个线程,在第二线程集之前第一线程集同步并且让渡同时多线程处理器。19.如权利要求18所述的系统,所述操作还包括响应于第二应用需要一个同时多线程处理器的确定,启动第一线程集的第一同步;响应于第二应用需要一个同时多线程处理器的确定,启动第二线程集的第二同步;以及响应于第一同步的完成而终止第二同步,并且继续执行第二线程集。20.如权利要求12所述的系统,其中,至少两个线程的同步发生在所述至少两个线程没有保持任何锁定资源的时刻,并且所述同步防止共享资源被让渡给第二应用的同时多线程处理器锁定。21.如权利要...

【专利技术属性】
技术研发人员:迈克尔T本哈斯许育诚约翰N麦考利路易斯A雷泽威廉G舍曼宋正中
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1