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

页面错误应对机制制造技术

技术编号:9410732 阅读:114 留言:0更新日期:2013-12-05 07:41
发生在图形处理单元中的页面错误可通过运行在中央处理单元上的操作系统来应对。在一些实施例中,这意味着可将不固定的存储器用于图形处理单元。在图形处理单元中的使用不固定的存储器在某些情形下可扩展图形处理单元的能力。

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】发生在图形处理单元中的页面错误可通过运行在中央处理单元上的操作系统来应对。在一些实施例中,这意味着可将不固定的存储器用于图形处理单元。在图形处理单元中的使用不固定的存储器在某些情形下可扩展图形处理单元的能力。【专利说明】页面错误应对机制
技术介绍
这总地涉及用于应对出现在专门设备(例如图形处理单元)中的页面错误的处理单元。页面错误是当软件尝试从被标记为“不存在”的虚拟存储器位置读取或对其进行写入时或当页面许可属性禁止相应访问时发生的中断。虚拟存储器系统将关于每个页面的这种状态信息维持在虚拟存储器地址空间中。这些页面被映射到物理地址上或者“不存在”于物理存储器内。例如,当检测到对未经映射的虚拟地址的读或写时或当页面访问许可被违反时,设备“page walker (页面步行者)”产生页面错误中断。操作系统(OS)页面错误应对器通过将数据从盘交换至系统存储器或通过分配新的页面(“写时复制”)并更新页面表中的状态信息来对这种页面错误作出回应。为了避免图形处理单元中页面错误的可能性,图形处理单元通常仅限于使用固定的存储器。这意味着在最后一种情形下,图形处理器使用的页面被预分配并且无法被交换至盘或重映射至系统存储器中的新位置。在传统系统中,中央处理单元和图形处理单元使用不同的页面表。操作系统管理由中央处理单元使用的主页面表,而图形处理单元驱动器管理由图形处理单元使用的页面表。图形处理单元驱动器将数据从用户空间复制到驱动器存储器中,以供在图形处理单元上进行处理。当指针由偏置值取代时,复杂的数据结构必须被重新打包成一数组。关联于复制和重新打包的开销限制了数据被表示为数组的图形处理单元应用。因此,图形处理单元在某些应用中可以是受限制的值,包括涉及诸如数据库的复杂数据结构的那些值。附图简述图1是对本专利技术的一个实施例的示意性描绘。图2是根据本专利技术一个实施例的扩展线程和存储器模型;图3是根据本专利技术一个实施例的用于页面错误应对的流程图;以及图4是一个实施例的系统描绘。【具体实施方式】在一些实施例中,图形处理应用可通过无需固定的共享存储器地使用共享虚拟存储器模型来使用复杂的数据结构,例如数据库。共享虚拟存储器的固定降低了操作系统管理系统存储器的能力。在一些实施例中,当不能保证由图形处理单元使用的页面存在于系统存储器中时,不固定的共享虚拟存储器可被用在图形处理单元上。图形处理单元驱动器将图形处理单元上的页面错误传递至主/中央处理单元上的影子线程。主处理单元则模仿页面错误,就像它们出现在中央处理单元上那样,从而触发操作系统为图形处理单元的利益来解决错误。尽管在本申请中使用术语“图形处理单元”,然而应当理解图形处理单元可以是也可以不是独立的集成电路。本专利技术可适用于图形处理单元和中央处理单元被集成在一个集成电路中的情况。另外,尽管这里给出与图形处理相关的例子,然而在其它实施例中,可在其它专门的处理单元(例如视频处理、卡和输入/输出设备)中使用相同的页面错误应对技术。一般来说,页面错误应对技术可用于任何可能经历页面错误并由充当代理以解决那些页面错误的处理器伴随的设备。在这里,处理器或处理单元可以是处理器、控制器或协处理器。参见图1,主/中央处理单元16与图形处理单元18通信。主中央处理单元16包括用户应用20,该用户应用20将控制信息提供给影子线程22。影子线程22则将异常和控制信息传达给图形处理单元驱动器26。影子线程也与主操作系统24通信。如图1所示,用户层12包括影子线程22和用户应用20,而内核层14包括主操作系统24以及图形处理单元驱动器26。图形处理单元驱动器26是用于图形处理单元的驱动器,即使该驱动器位于中央处理单元16中。图形处理单元18在用户层12包括g线程28,该g线程28发送和接收控制和异常消息至操作系统30。g线程是运行在图形处理单元上的用户代码,从而与运行在中央处理单元上的父线程共享共享虚拟存储器。操作系统30可以是运行在图形处理单元上的相对小的操作系统,它负责图形处理单元异常。作为一个示例,说它小是相对于主操作系统24而言的。用户应用20是运行在中央处理单元16上的任何用户进程。用户应用20在图形处理单元18上产生线程。经扩展的线程库(extended Threaded Library)或XTL是在图形处理单元上创建和管理用户线程的扩展。该库创建每个g线程的影子线程。用户应用使用传统多线程模型扩展来对图形处理单元卸载计算,例如:xthread_create (线程,attr, gpu_worker, arg)在图形处理单元上创建的g线程或工作者线程与父线程共享虚拟存储器。它与常规线程的方式相同的地方在于,可使用所有标准进程间同步机制一例如互斥(Mutex)和信号量(semaphore)。同时,在主中央处理单元16上创建新的影子线程。该影子线程作为异常应对单元的代理以及中央处理单元和图形处理单元上的线程之间的同步而工作。在一些实施例中,父线程、主影子线程和图形处理单元工作者线程可共享如图2所示的不固定的虚拟存储器。主/中央处理单元16包括父线程32,该父线程32为影子线程22产生xthreacLcreate O。影子线程22访问影子堆栈,它是进程地址空间36中的私用地址空间。父线程32也访问存储器描述符34和主堆栈,该主堆栈是进程地址空间36内的私用地址空间。存储器描述符34也可与g线程工作者28通信。g线程工作者28可访问进程空间36和共享的数据区段以及私用g线程堆栈内的g线程代码。上区段中的材料对应于进程模型38而下区段对应于存储器模型40。参见图3,页面错误应对算法可以硬件、软件和/或固件来实现。在软件实施例中,可将算法实现为计算机可执行指令,该计算机可执行指令被存储在例如光学存储器、半导体存储器或磁存储器之类的非临时计算机可读介质上。在图3中,中央处理单元16的主操作系统24、影子线程22、驱动器26、以及图形处理单元18中的操作系统30、g线程28的流程被图示为平行的垂直流程路径,在两者间具有由一般水平箭头指出的相互作用。图形处理单元操作系统30 —开始接收页面错误,如由图3中的字“异常”和相应箭头所指示的。操作系统30保存该背景(方框62),并将消息60与页面错误信息一起发送至驱动器26。该消息可包括操作码“exception_notification (异常_通知)”以及包括向量和附加信息的数据。然后操作系统30将该线程标记为idle O,如方框66所示,由此该线程被认为是“未就绪,等待页面错误解决”并切换至另一线程。驱动器26唤醒影子线程22并将页面错误数据转移至影子线程,如通过标记为“传递异常信息”的箭头表示的那样。在50,影子线程执行阻断读取以停止其它活动,直到页面错误被解决为止。然后,影子线程22接收页面错误数据。在检查以查看该页面是否错误(菱形框52)之后,如果该页面错误的话,影子线程再现对错误地址的同一访问,如方框54所示那样。如果该页没有错误,则流程进至方框58以检查其它异常,从而绕过方框54。然后在56发布阻断读取。主操作系统24应对页面错误句柄42中的页面错误。实际上,诱使主操作系统应对图形处理单元的异常。然后可在44转储清楚转换后备缓冲器(TLB)。在本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:B·靳兹伯格E·纳坦森I·殴萨池依R·罗恩E·威斯曼Y·扎克R·L·法瑞尔
申请(专利权)人:英特尔公司
类型:
国别省市:

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

1