[发明专利]计算装置中的可抢占语境切换无效
申请号: | 200680028671.2 | 申请日: | 2006-08-08 |
公开(公告)号: | CN101238441A | 公开(公告)日: | 2008-08-06 |
发明(设计)人: | 丹尼斯·梅 | 申请(专利权)人: | 西姆毕恩软件有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京康信知识产权代理有限责任公司 | 代理人: | 余刚;尚志峰 |
地址: | 英国*** | 国省代码: | 英国;GB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算 装置 中的 抢占 语境 切换 | ||
本发明涉及改进多任务计算装置的性能、响应性和效率,并且具体地,涉及通过使用可抢先(pre-emptible或称可抢占)的语境切换来提供这些种改进。
术语“计算装置”包括但不限于,台式及膝上型计算机、个人数字助理(PDA)、移动电话、智能手机、数码相机以及数字音乐播放器。它还包括合并了一种或多种上述装置的功能的集成装置,和许多其他形式的、在其功能上依靠于软件的工业与家用电子设备。
多数先进的计算装置是由操作系统(OS)控制的,该操作系统控制着装置的所有操作。在OS中,内核代表中心核,它具有超越装置中其它所有硬件和软件之上的、非常高的控制等级;典型地,所述内核在特权管理程序模式下运行,由此它就被信任去做普通应用程序(在用户模式下运行)不被信任去做的任务。
多任务计算装置可在若干单独指令串中的任一个的执行之间快速切换,其中,每个连贯的串被称为线程。因此,线程被当作该装置上的执行单元。线程间的切换被称为语境切换。
计算装置上的内存在不同的进程之间被分割,其中,每个进程都由一个或多个线程组成。当进程由多于一个的线程组成时,该进程中的所有线程都可以访问同一个共享内存;但一个进程中的线程除了访问其自身进程的内存以外不能访问其他进程的内存。因此,该进程可被当作装置上的内存保护单元。
由此得出,当计算装置在第一进程中的第一线程和第二进程中的第二线程之间切换时,从第一线程到第二线程的执行的转移也必然伴随着在所使用的活动存储器中的、从第一进程的第一线程到第二进程的第二线程的某种形式的切换。
为实现这个,最普通的方案之一就是利用这样的事实,即,现代计算装置上的存储器通常处于非常严密的管理之下,典型处在内核的控制之下。那些本领域的普通技术人员将意识到,装置上的内存被分组为地址连续的多个页面,并且装置上所有可能的可寻址的内存位置的全体(totality)被称为虚拟内存地址。实际被安装的内存地址的全体被称为物理内存地址,且计算装置包括由内存管理单元或MMU所维护的从虚拟内存页面地址到物理内存页面地址的映射。通过改变那些保存此映射的页面目录项的内容,一组虚拟内存地址可用来指向所有可寻址的物理内存的期望区域。在如上所述的方案中,不同进程中线程间的语境切换伴随着内存的重新映射以便保护其线程已被切出(be switched out)的进程的内存,且以便可访问其线程已被切入(be switched in)的进程的内存。
为加速对相对缓慢的主存储器的访问,计算装置经常利用局部(locality)的现象,该研究延续了三十多年。局部就是指“内存访问在程序执行期间趋于被群集在小内存区域中的现象”(选自《用于在共享内存多处理器系统中改进内存访问局部的排序函数》作者Youfeng Wu,关于微架构目录的第25年度国际研讨会会议学报,1992年)
因此,计算装置维护高速缓存,它由保存了已被读取的内存最后几页内容的少量更快的内存组成。当一项读取内存的请求访问了已被标识成在该高速缓存内的页面时,就称为发生了高速缓存命中,且可以从更快的高速缓存存储器而不是相对缓慢的主存储器对内存进行访问。
然而,通常在很多计算装置上,用于高速缓存的内存地址是虚拟内存地址而不是物理内存地址。这意味着当在不同进程的线程之间发生语境切换时,在该高速缓存工作方式之后的逻辑就被无效,且因为所请求的内存访问恰好匹配被保存的虚拟地址,故从该高速缓存读取数据就几乎肯定是错的。因而,这种语境切换需要使该高速缓存的整个内容无效从而对之前保存在该高速缓存内的虚拟内存地址的任何访问将导致高速缓存未命中,这就迫使一次来自物理内存的读取。
这种高速缓存内容的无效叫做刷新高速缓存。以上所有操作对于本技术领域工作人员都是熟知的。
从上述描述可以看出,由于来回移动潜在的大量内存映射的需求以及在利用被虚拟标记的数据高速缓存的硬件结构上刷新数据高速缓存的需求,所以属于不同用户方进程的线程间的语境切换可能是个耗时的过程。在这期间,该装置典型是不响应的,这是因为这些操作一般在禁用抢占的情况下运行;这表明两进程间的语境切换并不允许被准备运行的第三进程所抢先。
执行语境切换的所耗时长已在ARM结构4与5处理器上被测量。在最坏的情况下,这可能包括如下操作:
●修改页面目录项以移动附于前一进程的所有内存的虚拟地址
●保护附于前一进程的所有内存
●修改页面目录项以移动附于新进程的所有内存的虚拟地址
●刷新该处理器数据高速缓存
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西姆毕恩软件有限公司,未经西姆毕恩软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680028671.2/2.html,转载请声明来源钻瓜专利网。