使用组页面错误描述符来处理上下文切换和进程终止的制作方法

文档序号:6622661阅读:166来源:国知局
使用组页面错误描述符来处理上下文切换和进程终止的制作方法
【专利摘要】本申请公开使用组页面错误描述符来处理上下文切换和进程终止的技术。根据本申请,提供多种方法和系统用以:检测图形处理器上的进程的执行结束,且响应于该进程的执行结束把组页面错误描述符提供给操作系统(OS)的页面未命中处理程序,其中,组页面错误描述符可以向页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,图形处理器将不再生成进一步的页面错误请求。另外,可以从页面未命中处理程序接收到对组页面错误描述符的响应。在一个示例中,进程标识符被加入到组页面错误描述符中,其中,进程标识符由组页面错误描述符和一个或多个未完成页面错误请求所共享。
【专利说明】使用组页面错误描述符来处理上下文切换和进程终止

【技术领域】
[0001]本申请涉及计算技术,具体涉及使用组页面错误描述符来处理图形处理器中的上下文切换和进程终止的技术。

【背景技术】
[0002]在传统的计算系统中,在软件访问在虚拟存储器空间中映射但没有加载到物理内存中的固定长度的毗邻存储器块(例如,页面)时,可能发生页面错误和/或未命中。最近的计算系统可以包括在访问虚拟存储器空间中的地址时经历页面错误的图形处理单元(GPU)。在这样的配置中,GPU的硬件可以把每一页面错误报告给在系统的中央处理单元(CPU)上运行的操作系统(OS)。当OS解决页面错误时,可以随后把页面错误响应从OS传输回给GPU。然而,如果GPU决定从现有的进程切换上下文到不同的进程或现有的进程遇到终止条件,则新的进程上下文和已回收的进程分别可能受到负面影响。例如,在上下文切换或进程终止之后被满足的未完成页面错误可能引起不正确的调度判决和/或系统不稳定性。这种不稳定性可以随着上下文切换和进程终止增加而确实地增加,这是因为在常规的解决方案下要实现跟踪GPU硬件上的未完成页面错误是复杂的和困难的。

【专利附图】

【附图说明】
[0003]通过阅读下列说明书和所附权利要求,且通过参考下列附图,本领域中的技术人员将明显看出各实施例的各种优点,附图中:
[0004]图1是根据一种实施例使用组页面错误描述符来处理上下文切换和进程终止的方法的示例的框图;
[0005]图2是根据一种实施例使用组页面错误描述符来处理上下文切换和进程终止的方法的示例的框图;
[0006]图3是根据一种实施例的逻辑架构;
[0007]图4是根据一种实施例的系统的框图;
[0008]图5是根据一种实施例具有导航控制器的系统的示例的框图;以及
[0009]图6是根据一种实施例具有小的形状因子的系统的示例的框图。

【具体实施方式】
[0010]图1示出使用组错误描述符来处理图形处理器中的上下文切换和进程终止的方法。在所说明的示例中,图形处理器的硬件页面走查器(walker) 10联合图形相关进程的操作检测页面未命中(miss),图形相关进程诸如为,例如支持视频和/或游戏应用且使用虚拟化存储器空间来可视地呈现与应用相关联的内容的固定功能进程。当检测到页面未命中时,硬件页面走查器10可以把相应的页面错误请求12(12a-12c)放置到页面请求队列14,页面请求队列14可由操作系统(OS)的页面未命中处理程序16访问。当OS解决页面错误时,页面未命中处理程序16通常可把响应放置在页面响应队列18中,页面响应队列18可由硬件页面走查器10访问。
[0011]通过从OS接收进程终止通知、从图形驱动器和/或硬件调度器接收上下文切换通知等等,可以检测到进程的执行结束。如果硬件页面走查器10检测到图形处理器上的进程的执行结束,则组页面错误描述符20可以被放置到页面请求队列14中,其中,组页面错误描述符20向页面未命中处理程序16指出,直到诸如例如页面错误请求的一个或多个未完成(outstanding)页面错误请求被满足(satisfied)之前,将不再生成进一步的页面错误请求12。
[0012]由于所说明的组页面错误描述符10不对应于具体的页面错误,硬件页面走查器10可以确定与结束进程相关联的最后一次存储器访问的地址,并把该地址加入到组页面错误描述符中。这样的方法确保了该地址处于活动进程存储器空间中且可以防止所关切的进程的致命(fatal)处理。此外,进程标识符(例如,进程地址空间标识符/PASID)可以被加入到组页面错误描述符20中,其中,进程标识符由组页面错误描述符20和诸如页面错误请求12等的一个或多个未完成页面错误请求共享。所说明的组页面错误描述符20因此可以充当页面请求队列14中的标记,以使得在接收到对组页面错误描述符的响应20时,硬件页面走查器10可以清除带有相同的进程标识符的所有先前页面错误请求。
[0013]一旦接收到对组页面错误描述符20的响应,硬件页面走查器可以生成进程的执行结束的通知(例如,在进程终止的情况下)和/或标记与进程相关联的上下文的结束(例如,在上下文切换的情况下)。如将更详细地讨论的,使用对组页面错误描述符20的响应来处理进程的结束可以为硬件和调度软件两者提供清晰的边界,以便跟踪错误页面的发展。结果,所说明的方法允许用于图形相关进程的更好的性能、利用和响应性。
[0014]现在转到图2,示出了使用组页面错误描述符来处理上下文切换和进程终止的方法22。可以在可执行软件中把方法22实现为被存储在存储器的机器或计算机可读存储介质中的一组逻辑指令、可配置逻辑、固定功能逻辑硬件、或其任何组合,其中存储器例如为随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等等,可配置逻辑诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD),固定功能逻辑硬件使用诸如例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术等的电路技术。例如,用于实现方法22所示出的操作的计算机程序代码可以以一种或多种编程语言的任何组合来进行编写,包括诸如Java、Smalltalk、C++等面向对象编程语言,以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。
[0015]所说明的框24用于检测图形处理器上的进程的执行结束。正如已经指出的,检测进程的执行结束可以包括从OS接收进程终止通知、图形驱动器和/或硬件调度器接收上下文切换通知等等。在框26,进程标识符可以被加入到组页面错误描述符中,其中,进程标识符可以由组页面错误描述符和一个或多个未完成页面错误请求共享。框28可以确定与进程相关联的最后一次存储器访问的地址,其中,在框30,该地址也可以被加入到组页面错误描述符中。
[0016]在框32,组页面错误描述符可以被提供给OS的页面未命中处理程序,其中,组页面错误描述符向页面未命中处理程序指出,直到已经满足一个或多个未完成页面错误请求(例如,共享相同的进程标识符的未完成页面错误请求),将不再生成进一步的页面请求。在框34,可以做出关于是否已经从页面未命中处理程序接收到对组页面错误描述符的响应的判断。如果是这样,则在框36,可以做出关于上下文切换是否已经发生的判断。如果上下文切换已经发生,则所说明的框38标记与进程相关联的上下文的结束。否则,在框40,可以生成进程的执行结束的通知。因而,在不考虑系统不稳定性的情况下,进程可以被配置为用于另一上下文(例如,在上下文切换的情况下)或被回收(例如,在进程终止的情况下)。
[0017]特别值得注意的是,所说明的框34等待直到接收到对组页面错误描述符的响应,且不跟踪单独的页面错误响应。这样的方法可以简化硬件页面走查器的操作并提供优化机会(例如,更有效和可靠的上下文切换和进程终止),同时清晰地隔离用于通信的硬件和软件组件之间的边界。例如,在进程到期终止时,软件可以发起该流程,但可能不具有对于何时硬件已从该过程清除的清晰指示。在硬件仍然在工作以移除进程的上下文时,可能仍要求软件去响应于页面错误,即使响应意味着把不存在的页面映射到某种“无效(du_y) ”位置。组错误描述符的使用可以标记其中硬件已经清晰地完成涉及正在终止的进程的所有存储器访问的边界。
[0018]图3示出可使用组页面错误描述符来处理图形处理器中的上下文切换和进程终止的逻辑架构42(42a-42d)。架构42因此可以实现已经讨论的硬件页面走查器10(图1)和/或方法22(图2)中的一个或多个方面。在所说明的示例中,监视器42a检测图形处理器上的进程(例如,视频应用、游戏应用等等或其部分)的执行结束。另外,描述符模块42b可以响应于进程的执行结束把组页面错误描述符提供给OS的页面未命中处理程序,其中,组页面错误描述符向页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,将不再生成进一步的页面错误请求。所说明的架构42也包括从页面未命中处理程序接收对组页面错误描述符的响应的响应模块42c。
[0019]正如已经指出的,描述符模块42b也可以把进程标识符加入到组页面错误描述符中,其中,进程标识符由组页面错误描述符和一个或多个未完成页面错误请求共享。此外,描述符模块42b可以确定与进程相关联的最后一次存储器访问的地址,并把地址加入到组页面错误描述符。
[0020]在一个示例中,监视器42a从OS接收进程终止通知以检测进程的执行结束,且通知模块42d基于对组页面错误描述符的响应生成进程的执行结束的通知。另外,监视器42a可以从图形驱动程序或硬件调度器中的一个或多个接收上下文切换通知,以检测进程的执行结束,其中,通知模块42d可以基于对组页面错误描述符的响应来标记与进程相关联的上下文的结束。
[0021]输入输出存储器管理单元(1MMU)可以用来在架构42和页面未命中处理程序之间通信。在这样的情况中,架构42可以包括第一接口 42e,第一接口 42e把组页面错误描述符放置到页面请求队列(诸如例如1MMU的页面请求队列14(图1))中,以便把组页面错误描述符提供给页面未命中处理程序。另外,响应模块42c可以包括第二接口 44,第二接口44从诸如例如1MMU的页面响应队列18(图1)的页面响应队列检索对组页面错误描述符的响应,以便从页面未命中处理程序接收响应。
[0022]现在转到图4,示出计算系统46,其中,系统46可以是移动平台、任何智能设备或其任何组合的一部分,移动平台例如膝上型计算机、移动因特网设备(MID)、个人数字助理(PDA)、媒体播放器、成像设备等等,智能设备例如智能电话、智能平板、智能TV(电视)等等。系统46也可以是诸如个人计算机(PC)、服务器、工作站等等的固定式平台的一部分。所说明的系统46包括带有集成存储器控制器(iMC)50的中央处理单元(CPU,例如主控处理器)48,集成存储器控制器(iMC) 50提供对系统存储器52的访问权,系统存储器52可以包括例如双倍数据率(DDR)、同步动态随机存取存储器(SDRAM,例如,2008年4月JEDEC标准JESD79-3C的DDR3SDRAM)模块。系统存储器52的各模块可以被加入到例如单列直插式存储器模块(SIMM)、双列直插式存储器模块(DIMM)、小外形DIMM (SODIMM)等等。在一个示例中,iMC50包括具有页面请求队列和页面响应队列的10MMU。
[0023]CPU48也可以具有一个或多个驱动器54和/或处理器核心(未示出),其中每一核心可以是全功能的,带有指令取出单元、指令解码器、一级(LI)高速缓存、执行单元等等。CPU48可以替代地经由互连系统46中的每一组件的前端总线或点对点织物与iMC50的片外变型(也称为北桥)通信。CPU48也可以执行具有页面未命中处理程序的操作系统(0S)56。
[0024]所说明的CPU48经由总线与输入/输出(1)模块58 (也称为南桥)通信。iMC50/CPU48和1模块58有时被称为芯片组。CPU48也可以通过1模块58和各种其他控制器64经由网络端口操作上连接到网络(未示出)。因而,其他控制器64可以提供用于多种多样的目的的平台外通信功能,例如有线通信或无线通信,包括但不限于蜂窝式电话(例如,宽带码分多址,W-CDMA(通用移动电信系统/UMTS)、CDMA2000 (IS-856/IS-2000)等等)、W1-Fi (无线保真度,例如,电气和电子工程师学会/IEEE802.11,2007版)、蓝牙(例如,IEEE802.15.1-2005,无线个域网)、WiMax (例如,IEEE802.16-2004)、全球定位系统(GPS)、散布谱(例如,900MHz)和其他射频(RF)技术用途。1模块58也可以与显示器60通信,以提供视频、图像和其他内容的可视输出/呈现。其他控制器64也可以与1模块58通信,以提供对诸如键区、鼠标等等的用户接口设备(未示出)的支持,以便允许用户与系统46交互并感知来自系统46的信息。
[0025]1模块58也可以具有内部控制器(未示出),例如USB(通用串行总线,例如,USB规范2.0, USB实现者论坛)、串行ATA(SATA,例如,SATA Rev.3.0规范,2009年5月27日,SATA国际组织/SATA-10)、高清音频和其他控制器。所说明的1模块58还被耦合到存储,存储可以包括硬盘驱动器62、只读存储器(ROM)、光盘、闪速存储器(未示出)等等。
[0026]所说明的系统46还包括耦合到专用图形存储器68的专用图形处理单元(GPU)66。专用图形存储器68可以包括例如GDDR (图形DDR)或DDRSDRAM模块或适用于支持图形渲染的任何其他存储器技术。GPU66和图形存储器68可以被安装在图形/视频卡上,其中,GPU66可以经由图形总线70与CPU48通信,图形总线70例如PCI Express图形(PEG,例如,外围组件互连/PCI Express xl6图形150W-ATX规范1.0, PCI特别兴趣组)总线或加速图形端口(例如,AGP V3.0接口规范,2002年9月)总线。图形卡可以被集成到系统主板上、集成到主CPU48管芯中、配置成主板上的独立板卡等等。GPU66也可以执行一个或多个驱动器72,且可以包括硬件调度器76、硬件页面走查器78和存储指令和其他数据的内部高速缓存74。
[0027]正如已经讨论的,硬件页面走查器78可以具有监视器和描述符模块,监视器检测在GPU66上的进程的执行结束,描述符模块响应于进程的执行结束把组页面错误描述符提供给0S56的页面未命中处理程序。组页面错误描述符可以向页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,将不再由GPU66生成进一步的页面错误请求。另外,硬件页面走查器78可以包括响应模块,该响应模块从页面未命中处理程序接收对组页面错误描述符的响应。
[0028]在一个示例中,硬件页面走查器78的描述符模块把进程标识符加入到组页面错误描述符中,其中,每一进程标识符由组页面错误描述符和一个或多个未完成页面错误请求共享。另外,描述符模块可以确定与进程相关联的最后一次存储器访问的地址,并把该地址加入到组页面错误描述符中。
[0029]此外,如果硬件页面走查器78的监视器通过从0S56接收进程终止通知而检测到给定进程的执行结束,则硬件页面走查器78的通知模块可以基于对相应的组页面错误描述符的响应生成该进程的执行结束的通知。另外,如果硬件页面走查器78的监视器通过从图形驱动器72和/或硬件调度器76接收上下文切换通知而检测到给定进程的执行结束,则硬件页面走查器78的通知模块可以基于对组页面错误检测器的响应标记与进程相关联的上下文的结束。
[0030]图5说明系统700的实施例。在各实施例中,系统700可以是媒体系统,但系统700不限于这种上下文。例如,系统700可以被加入到个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触控板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝式电话、组合蜂窝式电话/PDA、电视、智能设备(例如、智能电话、智能平板或智能电视)、移动因特网设备(MID)、通讯设备、数据通信设备等等。因而,系统700可以被用来如本文所描述的呈现图像。
[0031]在各实施例中,系统700包括耦合到显示器720的平台702。平台702可以从诸如(多个)内容服务设备730或(多个)内容递送设备740或其他相似的内容源等的内容设备接收视频比特流内容。包括一个或多个导航特征的导航控制器750可以被用来例如与平台702和/或显示器720交互。下面更详细地描述这些组件中的每一个。
[0032]在各实施例中,平台702可以包括芯片组705、处理器710、存储器712、存储714、图形子系统715、应用716和/或无线电718的任何组合。芯片组705可以提供在处理器710、存储器712、存储714、图形子系统715、应用716和/或无线电718之间的相互通信。例如,芯片组705可以包括能够提供与存储714的相互通信的存储适配器(未叙述)。
[0033]处理器710可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容的处理器、多核心或任何其他微处理器或中央处理单元(CPU)。在各实施例中,处理器710可以包括(多个)双核处理器、(多个)双核移动处理器等等。
[0034]存储器712可以被实现为易失性存储器设备,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM (SRAM)。
[0035]存储714可以被实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加的存储设备、闪速存储器、电池供电的SDRAM(同步的DRAM)和/或网络可访问的存储设备。在各实施例中,例如,在包括多个硬盘驱动器时,存储714可以包括用以提高对于有价值的数字媒体的存储性能增强保护的技术。
[0036]图形子系统715可以执行诸如用于显示的静态或视频等的图像的处理。例如,图形子系统715可以是图形处理单元(GPU)或已经讨论的可视处理单元(VPU)。图形子系统715因此可包括已经讨论的GPU 66(图4)。另外,经由从存储器712、存储714或其他合适的源获得的指令,处理器710可以被配置成操作为已经讨论的CPU 48(图4)。模拟或数字接口可以被用来通信地把图形子系统715和显示器720耦合起来。例如,该接口可以是高清多媒体接口、显示端口(DisplayPort)、无线HDMI和/或无线HD兼容技术中的任何。图形子系统715可以被集成到处理器710或芯片组705中。图形子系统715可以是通信地耦合到芯片组705的独立板卡。
[0037]在此描述的图形和/或视频处理技术可以以各种硬件架构实现。例如,图形和/或视频功能性可以被集成在芯片组内。替代地,可以使用分离的图形和/或视频处理器。作为又一种实施例,图形和/或视频功能可以由包括多核心处理器的通用处理器实现。在进一步的实施例中,可以在消费性电子设备中实现各种功能。
[0038]无线电718可以包括能够使用各种合适的无线通信技术传送和接收信号的一个或多个无线电。这样的技术可以涉及跨越一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝式网络和卫星网络。在跨越这样的网络通信时,无线电718可以根据任何版本的一个或多个适用标准操作。
[0039]在各实施例中,显示器720可以包括任何电视型监视器或显示器。显示器720可以包括例如计算机显示器屏幕、触摸屏幕显示器、视频监视器、类似电视的设备和/或电视。显示器720可以是数字显示器和/或模拟显示器。在各实施例中,显示器720可以是全息显示器。而且,显示器720可以是可接收可视投影的透明面板。这样的投影可以表达各种形式的信息、图像和/或对象。例如,这样的投影可以是用于移动增强现实(MAR)应用的可视覆盖。在一个或多个软件应用716的控制下,平台702可以在显示器720上显示用户界面 722。
[0040]在各实施例中,(多个)内容服务设备730可以由任何国家的、国际的和/或独立的服务主控,且因而例如可由经由因特网平台702访问。(多个)内容服务设备730可以被耦合到平台702和/或显示器720。(多个)平台702和/或内容服务设备730可以被耦合到网络760以便传输(例如,发送和/或接收)去往和来自网络760的媒体信息。(多个)内容递送设备740也可以被耦合到平台702和/或显示器720。
[0041]在各实施例中,(多个)内容服务设备730可包括有线电视机顶盒、个人计算机、网络、电话、互联网启用设备或能够传递数字信息和/或内容的设施,以及能够经由网络760或直接地在内容提供者和平台702和/显示器720之间单向或双向地交换内容的任何其它类似设备。应理解,内容可以通过网络760单向地和/或双向地传递往返于系统700中的组件中的任何一个和内容提供商。内容的示例可以包括任何媒体信息,包括,例如,视频、音乐、医疗和游戏/[目息等等。
[0042](多个)内容服务设备730接收内容,诸如包括媒体信息、数字信息和/或其他内容的有线电视节目。内容提供商的示例可以包括任何有线或卫星电视或电台或因特网内容提供商。所提供的不例不旨在限制各实施例。
[0043]在各实施例中,平台702可从具有一个或多个导航特征的导航控制器750接收控制信号。控制器750的导航特征可以被用来例如与用户界面722交互。在各实施例中,导航控制器750可以是定点设备,该定点设备可以是允许用户将空间(例如连续和多维)数据输入到计算机中的计算机硬件组件(具体地说是人机接口设备)。诸如图形用户界面(GUI)、电视机和监视器之类的许多系统可使用户使用物理手势控制并向计算机或电视机提供数据。
[0044]控制器750的导航特征的移动可以通过指针、光标、焦点环或显示在显示器上的其他可视指示器而反映到显示器(例如,显示器720)上。例如,在软件应用716的控制下,位于导航控制器750上的导航特征可以被映射到例如用户界面722上显示的虚拟导航特征。在各实施例中,控制器750可以不是单独的组件,而是集成到平台702和/或显示器720上。然而,各实施例并不限于本文中示出或描述的这些元件或上下文。
[0045]在各实施例中,驱动器(未示出)可包括技术,该技术用以例如,在被启用时,允许用户在最初引导之后通过触摸按钮立刻开启和关闭类似电视机的平台702 (例如在被启用时)。在平台被“关闭”时,程序逻辑可以允许平台702将内容流传输到媒体适配器或其他(多个)内容服务设备730或内容递送设备(多个)740。另外,芯片组705可包括,例如,对5.1环绕音频和/或高清7.1环绕音频的硬件和/或软件支持。各驱动程序可以包括用于集成图形平台的图形驱动程序。在各实施例中,图形驱动器可以包括外围组件互连(PCI)Express图形卡。
[0046]在各种实施例中,可以集成系统700中所示组件中的任意一个或多个。例如,可以集成平台702和(多个)内容服务设备730,或者,可以集成平台702和(多个)内容递送设备740,或者,例如可以集成平台702、(多个)内容服务设备730和(多个)内容递送设备740。在各种实施例中,平台702和显示器720可以是集成单元。可以集成显示器720和(多个)内容服务设备730,或者,例如,可以集成显示器720和(多个)内容递送设备740。这些示例不旨在限制各实施例。
[0047]在各种实施例中,系统700可以被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,系统700可以包括适用于通过无线共享介质进行通信的组件和接口,例如一个或多个天线、发射器、接收器、收发机、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括诸如RF频谱之类的无线范围的某些部分等等。在被实现为有线系统时,系统700可以包括适用于通过有线通信介质进行通信的组件和接口,例如输入/输出(I/O)适配器、用于将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括:线路、电缆、金属引线、印刷电路板(PCB)、后面板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等等。
[0048]平台702可以建立一个或多个逻辑或物理信道以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示对用户有意义的内容的任何数据。例如,内容的示例可包括来自语音会话、视频会议、流视频、电子邮件(“ emai I ”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音会话的数据可以是,例如,言语信息、静默时间段、背景噪声、舒适噪声、音调等等。控制信息可以是指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用来路由媒体信息通过系统,或指示节点以预先确定的方式处理媒体信息。然而,各实施例不限于图5中所示出的或所描述的元件或上下文。
[0049]如上所述,可以以变化的物理样式或形状因子实施系统700。系统700可表现为不同的物理样式或形状因子。图6示出在其中可实现系统700的小形状因子设备800的实施例。在各实施例中,例如设备800可被实现为具有无线能力的移动计算设备的一部分。移动计算设备可以是指具有处理系统和移动电源(诸如,例如,一个或多个电池)的任何设备。
[0050]如上文所描述的,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息传送设备、数据通信设备等等。
[0051]移动计算设备的示例还可以包括被配置为由人穿戴的计算机,诸如腕式计算机、手指计算机、戒指计算机、眼镜计算机、皮带扣计算机、臂带计算机、鞋计算机、衣服计算机,及其他可穿戴的计算机。在各实施例中,例如,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管已经以实现为智能电话的移动计算设备为例描述了一些实施例,但应明白,其他实施例也可利用其他无线移动计算设备来实现。各实施例不限于这种上下文。
[0052]如图6所示,设备800可以包括外壳802、显示器804、输入/输出(I/O)设备806以及天线808。设备800也可以包括导航特征812。显示器804可包括用于显示适于移动计算设备的信息的任何合适的显示单元。I/O设备806可包括任何适当I/O设备,用以将信息输入到移动计算设备中。I/O设备806的示例可以包括字母数字键盘、数字小键区、触摸板、输入键、按钮、开关、摇臂开关、话筒、扬声器、语音识别设备以及软件等等。信息还可以通过话筒输入到设备800中。这样的信息可以由语音识别设备数字化。各实施例不限于这种背景。
[0053]附加说明和示例:
[0054]示例I可以包括一种系统,包括:用以可视地呈现与进程相关联的内容的显示器、用以执行操作系统(OS)的主控处理器、和图形处理器。图形处理器可以包括监视器、描述符模块和响应模块,监视器用以检测图形处理器上的进程的执行结束,描述符模块用以响应于进程的执行结束把组页面错误描述符提供给OS的页面未命中处理程序,其中,组页面错误描述符用以向页面未命中处理程序指出,直到满足(satisfy) —个或多个未完成(outstanding)页面错误请求之前,将不再生成进一步的页面错误请求,响应模块用以从页面未命中处理程序接收对组页面错误描述符的响应。
[0055]示例2可以包括示例I的系统,其中,描述符模块用以把进程标识符加入到组页面错误描述符中,且其中,进程标识符用以由组页面错误描述符和一个或多个未完成页面错误请求共享。
[0056]示例3可以包括示例I的系统,其中,监视器用以从OS接收进程终止通知以便检测进程的执行结束,图形处理器还包括通知模块,该通知模块基于对组页面错误描述符的响应生成进程的执行结束的通知。
[0057]示例4可以包括示例I的系统,其中,监视器用以从图形驱动程序或硬件调度器中的一个或多个接收上下文切换通知以便检测进程的执行结束,图形处理器还包括通知模块,通知模基于对组页面错误描述符的响应而标记与进程相关联的上下文的结束。
[0058]示例5可以包括示例I的系统,还包括具有页面请求队列和页面响应队列的输入输出存储器管理单元(1MMU),其中,图形处理器还包括第一接口,该第一接口把组页面错误描述符放置到页面请求队列中,以便把组页面错误描述符提供给页面未命中处理程序,且其中,响应模块包括第二接口,该第二接口从页面响应队列检索响应,以便从页面未命中处理程序接收响应。
[0059]示例6可以包括示例I到示例5中的任何一个的系统,其中,描述符模块用以确定与进程相关联的最后一次存储器访问的地址,并把地址加入到组页面错误描述符中。
[0060]示例7可以包括管理页面错误的装置,包括监视器、描述符模块和响应模块,监视器检测图形处理器上的进程的执行结束,描述符模块响应于进程的执行结束把组页面错误描述符提供给操作系统(OS)的页面未命中处理程序,其中,组页面错误描述符向页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,将不再生成进一步的页面错误请求,响应模块从页面未命中处理程序接收对组页面错误描述符的响应。
[0061 ] 示例8可以包括示例7的装置,其中,描述符模块用以把进程标识符加入到组页面错误描述符中,且其中,进程标识符用以由组页面错误描述符和一个或多个未完成页面错误请求共享。
[0062]示例9可以包括示例7的装置,其特征在于,监视器用以从OS接收进程终止通知以便检测进程的执行结束,该装置还包括通知模块,该通知模块基于对组页面错误描述符的响应生成进程的执行结束的通知。
[0063]示例10可以包括示例7的装置,其中,监视器用以从图形驱动程序或硬件调度器中的一个或多个接收上下文切换通知以便检测进程的执行结束,该装置还包括通知模块,该通知模块基于对组页面错误描述符的响应而标记与进程相关联的上下文的结束。
[0064]示例11可以包括示例7的装置,还包括第一接口,该第一接口把组页面错误描述符放置到输入输出存储器管理单元(1MMU)的页面请求队列中,以便把组页面错误描述符提供给页面未命中处理程序,其中,响应模块包括第二接口,该第二接口从1MMU的页面响应队列检索响应,以便从页面未命中处理程序接收响应。
[0065]示例12可以包括示例7到示例11中的任何一个的装置,其中,描述符模块用以确定与进程相关联的最后一次存储器访问的地址,并把该地址加入到组页面错误描述符中。
[0066]示例13可以包括管理页面错误的方法,包括:检测图形处理器上的进程的执行结束,响应于进程的执行结束把组页面错误描述符提供给操作系统(OS)的页面未命中处理程序,以及从页面未命中处理程序接收对组页面错误描述符的响应,其中,组页面错误描述符向页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,将不再生成进一步的页面错误请求。
[0067]示例14可以包括示例13的方法,还包括把进程标识符加入到组页面错误描述符中,其中,进程标识符由组页面错误描述符和一个或多个未完成页面错误请求共享。
[0068]示例15可以包括示例13的方法,其中,检测进程的执行结束包括从OS接收进程终止通知,该方法还包括基于对组页面错误描述符的响应生成进程的执行结束的通知。
[0069]示例16可以包括示例13的方法,其中,检测进程的执行结束包括从图形驱动程序或硬件调度器中的一个或多个接收上下文切换通知,该方法还包括基于对组页面错误描述符的响应标记与进程相关联的上下文的结束。
[0070]示例17可以包括示例13的方法,其中,把组页面错误描述符提供给页面未命中处理程序包括把组页面错误描述符放置到输入输出存储器管理单元(1MMU)的页面请求队列,并且,从页面未命中处理程序接收响应包括从1MMU的页面响应队列检索响应。
[0071]示例18可以包括示例13到示例17中的任何一个的方法,还包括确定与进程相关联的最后一次存储器访问的地址,并把地址加入到组页面错误描述符中。
[0072]示例19可以包括至少一个计算机可读存储介质,其包括一组指令,如果由计算设备执行,所述指令引起计算设备以执行示例13到示例18中的任何一个的方法。
[0073]示例20可以包括管理页面错误的装置,包括用于执行示例13到示例18中的任何一个的方法的装置。
[0074]在此描述的技术可以由此允许图形处理器遇到进程终止条件并从现有的进程切换上下文到不同的进程,而不会经历系统不稳定性或跟踪个体页面错误请求的满足(satisfact1n)。另外,在经由在主控处理器上运行的OS管理进程的各方面的同时,这样的方法可以增强与相同的进程结合的图形处理器与主控处理器的操作。
[0075]各个实施例可利用硬件部件、软件部件或两者的组合来实现。硬件元件的示例可包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、感应器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。可根据任意数量的因素变化确定实施例是否利用硬件部件和/或软件部件来实现,这些因素比如所期望的计算速率、功率电平、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
[0076]至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,这些表示性指令表示处理器中的各种逻辑,在被机器读取时,这些表示性指令使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形机器可读介质上,并被提供给多个客户或生产设施,以加载到实际制造该逻辑或处理器的制造机器中。
[0077]各实施例适于与所有类型的半导体集成电路(“1C”)芯片一起使用。这些IC芯片的示例包括但不仅限于处理器、控制器、芯片集组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等等。另外,在一些附图中,信号导线是用线条表示的。一些线条可以不同,以表示更多的构成性的信号路径,具有数字标号以表示构成性信号路径的数目,和/或在一端或多端具有箭头以表示主要信息流向。然而,这不应当按照限制性方式来解释。相反,这些新增的细节可结合一个或多个示例性实施例使用以利于电路的更容易理解。任何被表示的信号线,不管是否具有附加信息,可实际上包括沿多个方向行进并可用任何适宜类型的信号机制实现的一个或多个信号,所述信号方案例如是用差分线对、光纤线和/或单端线实现的数字或模拟线。
[0078]已经给出示例尺寸/模型/值/范围,但各实施例不限于此。由于制造技术(例如光刻法)随时间的成熟,可望能制造出更小尺寸的设备。另外,为了说明和讨论的简单起见,并且也是为了不模糊各实施例的某些方面,在各图内可以示出或不示出IC芯片中公知的电源/地连接和其他组件。进一步,可以以框图形式示出排列,这是为了避免模糊各实施例,并且也鉴于关于这样的框图排列的实现的具体细节高度地依赖于在其中实现各实施例的平台的事实,即,这些具体细节应当落在本领域技术人员的眼界内。在说明特定细节(例如,电路)以便描述示例实施例时,本领域中的技术人员应明显看出,无需这些特定的细节,或者借助于这些特定的细节的变型,就可以实践各实施例。因此,本描述应当被视为说明性的而非限定性的。
[0079]例如,一些实施例可以使用机器或有形的计算机可读取的介质或制品来实现,所述介质或制品可以存储指令或指令集合,如果由机器执行,所述指令或指令集合可以引起机器执行根据各实施例的方法和/或操作。例如,这样的机器可以包括任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等等,且可以使用硬件和/或软件的任何合适的组合来实现。例如,机器可读介质或制品可以包括任何合适类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,例如存储器、可移动或不可移动介质、可擦除或不可擦除的介质、可写入或可重写介质、数字或模拟介质、硬盘、软盘、紧致盘只读存储器(CD-ROM)、紧致盘可记录(CD-R)、紧致盘可重写(CD-RW)、光盘、磁介质、磁光学介质、可移动存储器卡或盘、各种类型的数字多用盘(DVD)、磁带、磁带盒等等。指令可以包括任何合适类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、经加密代码等等,它们使用任何合适的高级、低级、面向对象、可视的、编译的和/或解释的编程语言来实现。
[0080]除非特别声明,应该理解,诸如“处理”、“计算”、“运算”、“判断”等等之类的术语是指计算机或计算系统,或类似的电子计算设备的动作和/或进程,所述计算系统或类似的电子计算设备操纵和/或转换表示为计算系统的寄存器和/或存储器内的物理(如,电子)量的数据,将这些数据转换为类似地表示为计算系统存储器或寄存器或其他这样的信息存储器、传输或显示设备内的物理量的其他数据。各实施例不限于这种上下文。
[0081]术语“耦合”在本文中被用于表示所讨论的组件之间的任何类型的直接或间接关系,且可应用于电气的、机械的、流体的、光学的、电磁的、机电的或其它连接。。另外,除非另有陈述,否则术语“第一”、“第二”等等在此只用于促进讨论,并且不包含暂时的或按时间顺序的意义。
[0082]本领域中的技术人员将从前述描述看出,以各种形式实现各实施例的广泛技术。因此,尽管已经结合了具体实例描述了各实施例,但实施例的真实范围应不限于此,这是由于熟练技术人员在研究附图、说明书和下列的权利要求之后将明显看出其他修改。
【权利要求】
1.一种系统,包括: 显示器,其可视地呈现与进程相关联的内容; 主控处理器,其执行操作系统(OS);以及 图形处理器,其包括, 监视器,其检测所述图形处理器上的所述进程的执行结束, 描述符模块,其响应于所述进程的执行结束把组页面错误描述符提供给所述OS的页面未命中处理程序,其中,所述组页面错误描述符用以向所述页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,不再生成进一步的页面错误请求,以及 响应模块,其从所述页面未命中处理程序接收对所述组页面错误描述符的响应。
2.如权利要求1所述的系统,其特征在于,所述描述符模块用以把进程标识符加入到所述组页面错误描述符中,且其中,所述进程标识符由所述组页面错误描述符和所述一个或多个未完成页面错误请求所共享。
3.如权利要求1所述的系统,其特征在于,所述监视器用以从所述OS接收进程终止通知以便检测所述进程的执行结束,所述图形处理器还包括通知模块,其基于所述对所述组页面错误描述符的响应生成所述进程的执行结束的通知。
4.如权利要求1所述的系统,其特征在于,所述监视器用以从图形驱动程序或硬件调度器中的一个或多个接收上下文切换通知,以便检测所述进程的执行结束,所述图形处理器还包括通知模块,其基于所述对所述组页面错误描述符的响应而标记与所述进程相关联的上下文的结束。
5.如权利要求1所述的系统,还包括具有页面请求队列和页面响应队列的输入输出存储器管理单元(1MMU),其中,所述图形处理器还包括第一接口,其用于把所述组页面错误描述符放置到所述页面请求队列中,从而把所述组页面错误描述符提供给所述页面未命中处理程序,且其中,所述响应模块包括第二接口,其用于从所述页面响应队列检索所述响应,从而从所述页面未命中处理程序接收所述响应。
6.如权利要求1-5中任何一项所述的系统,其特征在于,所述描述符模块用以确定与所述进程相关联的最后一次存储器访问的地址,并把所述地址加入到所述组页面错误描述符中。
7.—种管理页面错误的装置,包括: 监视器,其检测图形处理器上的进程的执行结束; 描述符模块,其响应于所述进程的执行结束把组页面错误描述符提供给操作系统(OS)的页面未命中处理程序,其中,所述组页面错误描述符用以向所述页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,将不再生成进一步的页面错误请求;以及 响应模块,其从所述页面未命中处理程序接收对所述组页面错误描述符的响应。
8.如权利要求7所述的装置,其特征在于,所述描述符模块用以把进程标识符加入到所述组页面错误描述符中,且其中,所述进程标识符用以由所述组页面错误描述符和所述一个或多个未完成页面错误请求所共享。
9.如权利要求7所述的装置,其特征在于,所述监视器用以从所述OS接收进程终止通知,以便检测所述进程的执行结束,所述装置还包括通知模块,其基于所述对所述组页面错误描述符的响应而生成所述进程的执行结束的通知。
10.如权利要求7所述的装置,其特征在于,所述监视器用以从图形驱动程序或硬件调度器中的一个或多个接收上下文切换通知,以便检测所述进程的执行结束,所述装置还包括通知模块,其基于所述对所述组页面错误描述符的响应而标记与所述进程相关联的上下文的结束。
11.如权利要求7所述的装置,还包括第一接口,所述第一接口把所述组页面错误描述符放置到输入输出存储器管理单元(1MMU)的页面请求队列中,以便把所述组页面错误描述符提供给所述页面未命中处理程序,其中,所述响应模块包括第二接口,所述第二接口从所述1MMU的页面响应队列检索所述响应,以便从所述页面未命中处理程序接收所述响应。
12.如权利要求7到11中的任何一项所述的装置,其特征在于,所述描述符模块用以确定与所述进程相关联的最后一次存储器访问的地址,并把所述地址加入到所述组页面错误描述符中。
13.—种管理页面错误的方法,包括: 检测图形处理器上的进程的执行结束; 响应于所述进程的执行结束,把组页面错误描述符提供给操作系统(OS)的页面未命中处理程序,其中,所述组页面错误描述符向所述页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,将不再生成进一步的页面错误请求;以及 从所述页面未命中处理程序接收对所述组页面错误描述符的响应。
14.如权利要求13所述的方法,还包括把进程标识符加入到所述组页面错误描述符,其特征在于,所述进程标识符由所述组页面错误描述符和所述一个或多个未完成页面错误请求共享。
15.如权利要求13所述的方法,其特征在于,检测所述进程的执行结束包括从所述OS接收进程终止通知,所述方法还包括基于所述对所述组页面错误描述符的响应生成所述进程的执行结束的通知。
16.如权利要求13所述的方法,其特征在于,检测所述进程的执行结束包括从图形驱动程序或硬件调度器中的一个或多个接收上下文切换通知,所述方法还包括基于所述对所述组页面错误描述符的响应标记与所述进程相关联的上下文的结束。
17.如权利要求13所述的方法,其特征在于,把所述组页面错误描述符提供给所述页面未命中处理程序包括把所述组页面错误描述符放置到输入输出存储器管理单元(1MMU)的页面请求队列,并且,从所述页面未命中处理程序接收所述响应包括从所述1MMU的页面响应队列检索所述响应。
18.如权利要求13到17中的任何一项所述的方法,还包括: 确定与所述进程相关联的最后一次存储器访问的地址;以及 把所述地址加入到所述组页面错误描述符。
19.一种管理页面错误的设备,包括: 用于检测图形处理器上的进程的执行结束的装置; 响应于所述进程的执行结束,把组页面错误描述符提供给操作系统(OS)的页面未命中处理程序,其中,所述组页面错误描述符用以向所述页面未命中处理程序指出,直到满足一个或多个未完成页面错误请求之前,将不再生成进一步的页面错误请求;以及 用于从所述页面未命中处理程序接收对所述组页面错误描述符的响应的装置。
20.如权利要求19所述的设备,还包括用于把进程标识符加入到所述组页面错误描述符中的装置,其中,所述进程标识符由所述组页面错误描述符和所述一个或多个未完成页面错误请求所共享。
21.如权利要求19所述的设备,其特征在于,检测所述进程的执行结束包括从所述OS接收进程终止通知,所述设备还包括用于基于所述对所述组页面错误描述符的响应而生成所述进程的执行结束的通知的装置。
22.如权利要求19所述的设备,其特征在于,检测所述进程的执行结束包括从图形驱动程序或硬件调度器中的一个或多个接收上下文切换通知,所述装置还包括用于基于所述对所述组页面错误描述符的响应而标记与所述进程相关联的上下文的结束的装置。
23.如权利要求19所述的设备,其特征在于,把所述组页面错误描述符提供给所述页面未命中处理程序包括把所述组页面错误描述符放置到输入输出存储器管理单元(1MMU)的页面请求队列中,并且,从所述页面未命中处理程序接收所述响应包括从所述1MMU的页面响应队列检索所述响应。
24.如权利要求19到23中的任何一项所述的装置,还包括: 用于确定与所述进程相关联的最后一次存储器访问的地址的装置;以及 用于把所述地址加入到所述组页面错误描述符中的装置。
【文档编号】G06F9/48GK104346224SQ201410384529
【公开日】2015年2月11日 申请日期:2014年8月5日 优先权日:2013年8月5日
【发明者】A·考克 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1