多线程计算机中用于环境切换数据预取的方法和装置制造方法及图纸

技术编号:2862462 阅读:260 留言:0更新日期:2012-04-11 18:40
一种关于环境切换操作的装置、程序产品和方法,初始化数据的预取,该数据在线程的执行恢复之前可能被那个线程使用。因此,一旦已知将执行环境切换到特定的线程,可以为那个线程预取数据,使得当恢复线程的执行时,可能为线程缓存工作状态的更多,或者至少在正在取得到高速缓冲存储器中的过程中,因此减小与环境切换相关联的与高速缓存有关的性能劣化。

【技术实现步骤摘要】

本专利技术涉及计算机和计算机软件,特别是多线程计算机系统中指令和数据的预取。
技术介绍
随着当前社会中对计算机的不断增长的信赖,计算机技术已经不得不在很多前沿取得进展以赶上增长的需要。并行性,即多个任务并行的性能是重大研发努力的一个特殊主题。许多计算机软件和硬件技术已经开发出来以利于增加的并行处理。从软件的观点,已经开发出多线程操作系统,它允许计算机程序在多个“线程”中并发执行,使得多个任务本质上能够同时执行。线程一般表示对程序的独立的执行路径。例如,对于电子商务计算机应用,不同的线程可能分配给不同的顾客,使得每个顾客的特定电子商务交易在单独的线程中处理。从硬件的观点,计算机越来越依赖多个微处理器以提供增大的工作负荷能力。进而,已经开发出一些微处理器,它们支持并行执行多个线程的能力,有效地提供通过使用多个微处理器可达到的很多相同的性能增益。与只支持单一的执行路径的单线程微处理器相比,多线程微处理器支持多个执行路径,使得分配给不同的执行路径的不同的线程能够并行进行。然而,不考虑下层的硬件支持的独立的执行路径的数目,通常通过在每个执行路径上分配时间片给不同的线程,通常设计多线程计算机中的操作系统以在每个单独的执行路径上执行多个线程。虽然分配给给定的执行路径的线程技术上不是并行执行的,但通过使每个线程能执行一段时间和在每个线程间切换,每个线程能以合理和公平的方式进行,因此保持并行的样子。虽然多线程在此性质上能够显著地增强系统性能,但是,因为在给定的执行路径上执行不同线程间的切换,存在一些低效率。特别地,无论何时执行路径在执行不同线程间切换,必须执行称为环境(context)切换的操作。通常,环境切换包括保存或要么保留以前正在执行并且现在正在被切换出去的线程的工作状态,以及恢复准备要执行或切换进来的线程的工作状态。线程的工作状态包括从线程的观点特征化特定的时间点的系统状态的各种状态信息,并且可包括其它之中的各种信息,如寄存器文件、程序计数器和其它专用寄存器的内容。因此,通过线程被切换出去或挂起时保存工作状态,然后线程被切换进来或恢复时恢复工作状态,线程功能上以与线程好像从未被中断相同的方式执行。但是,一旦线程切换回来,在很多环境中执行环境切换的一个不希望的副作用是高速缓存未中的发生增加。高速缓存是现代计算机架构中已经普遍利用的技术,用来解决由微处理器的速度相对于微处理器用来访问存储的数据的存储器设备的速度产生的延迟问题。特别地,高速缓存企图通过使用多级存储器的代价来平衡存储器的速度和容量。通常地,计算机依赖相对大、慢并且便宜的大规模的存储系统,如硬盘驱动器或其它外部存储设备、使用动态随机访问存储器件(DRAM’s)或其它易失性存储器存储器件的中间主存储存储器、以及一个或更多用静态随机访问存储器件(SRAM’s)等实现的高速的容量有限的高速缓冲存储器或高速缓存。经常使用多级高速缓冲存储器,每级具有越来越快和越来越小的存储器件。同样地,依赖于使用的存储器架构,高速缓冲存储器可以由多个微处理器共享或专用于单独微处理器,并且可以或者集成到同一块集成电路上作为微处理器,或者在分离的集成电路上提供。此外,一些高速缓冲存储器可以用于存储包含正在执行的实际程序的指令以及正在由这些程序处理的数据。其它高速缓冲存储器,通常是那些最靠近微处理器的,可以专门用于只存储指令或数据。当计算机架构中提供多级存储器时,通常依赖一个或多个存储器控制器在各种存储器级之间交换通常称为“高速缓存行(cache line)”的来自存储器地址段的需要的数据,从而企图最大化请求的数据存储于微处理器可以访问的最快的高速缓冲存储器中的频率。无论何时存储器访问请求企图访问未在高速缓冲存储器中缓存的存储器地址,发生“高速缓存未中(cache miss)”。作为高速缓存未中的结果,通常必须从相对慢的更低级的存储器取得用于存储器地址的高速缓存行,通常伴随显著的性能打击(hit)。高速缓存依赖时间和空间的位置以改善系统性能。采用另一种方式,当取得特定的高速缓存行到高速缓冲存储器中时,很可能将再次需要来自那个高速缓存行的数据,所以对同一高速缓存行中的数据的下一次访问将导致“高速缓存命中(cache hit)”,并且因此不会招致性能障碍。其它的加速与高速缓存有关的性能的方法包括如指令预取、分支预测和数据预取的技术。例如,指令预取通常在微处理器中实现,并且企图在需要指令之前从存储器中取它们,使得当真正需要指令时,将充满希望地缓存它们。通过企图预测哪个判断分支将可能采取,然后从预测的分支预取指令,同样通常在微处理器中实现的分支预测扩展了指令预取。通常在与微处理器分离的部件(但它仍然可以安置在同一集成电路器件上)中实现的数据预取,企图检测数据访问的模式并基于任何检测到的模式预取可能要需要的数据。因此,从执行线程的观点,当特定的线程执行时,线程使用的越来越多的指令和数据将逐渐地变为缓存的,并且因此线程执行得越久,线程的执行将趋向于越有效。但是,假定同样的前提施加到多线程计算机中执行的所有线程,不论何时线程因为环境切换被挂起,并且然后因为另一个环境切换随后被恢复,可能一些或所有挂起线程前高速缓存的指令和数据当线程恢复时不再被高速缓存(主要因为中间被执行的其它线程需要的指令和数据的高速缓存)。然后通常发生更大数目的高速缓存未中,因此消极影响整个系统性能。依赖于历史数据的预取和分支预测通常也为恢复的线程在其执行的初始恢复时提供很少或不提供好处,因为指令和数据的预取直到线程恢复其执行后才能初始化。因此,在多线程计算机中,本领域已经产生对最小化与环境切换相联系的不利性能影响的方法的明显需求。
技术实现思路
通过关于环境切换操作初始化恢复在线程的执行之前可能被那个线程使用的数据的预取,本专利技术致力于解决这些和其它与先前技术相关联的问题。采用另一种方式,一旦已知将对特定的线程执行环境切换,符合本专利技术的实施例为那个线程初始化数据的预取,使得当恢复线程的执行时,或者至少在正在取得到高速缓冲存储器中的过程中,可能为线程缓存更多工作状态。因此,在很多实例中,可以减小与环境切换相关联的与高速缓存有关的性能障碍(penalty),并且因此可以增强整个系统性能。特征化本专利技术的这些和其它优点和特征在形成本专利技术进一步的部分的权利要求中提出。但是,为更好地理解本专利技术和通过其使用得到的优点和目的,应该参考附图和附随描述内容,其中描述了本专利技术的示范性的实施例。附图说明图1是包含符合本专利技术的环境切换预取的示范性装置的方块图。图2是图1的装置中处理器通过高速缓存系统与主存储器互连的方块图。图3是说明由图1的装置执行的环境切换程序的程序流的流程图。图4是说明图3的环境切换程序的执行期间发生的操作的序列的功能性时间线(timeline)。图5是说明对图3中说明的环境切换程序的替换环境切换程序的程序流的流程图。图6是说明图5的环境切换程序的执行期间发生的操作的序列的功能性时间线。图7是图2中引用的数据预取器的示范性的实现的方块图。图8是图2中引用的L1数据高速缓存的示范性的实现的方块图。图9是说明由图1的装置在环境切换期间执行的示范性的初始化指令预取程序的程序流的流程图。图10是说明由图1的装置在环境切换期间执行的另一本文档来自技高网
...

【技术保护点】
一种多线程计算机中执行环境切换操作的方法,该方法包含恢复线程的执行前初始化可能被线程使用的数据的预取。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:杰弗里P布拉德福德哈罗德F科斯曼蒂莫西J马林斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1