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

处理设备、异构处理系统和数据处理系统技术方案

技术编号:15329066 阅读:80 留言:0更新日期:2017-05-16 12:49
本发明专利技术涉及CPU/GPU同步机制。可以使用一个处理器上的线程来使另一个处理器能对互斥上锁或释放。例如,中央处理单元线程可以由图形处理单元使用以保护共享存储器的互斥。

CPU/GPU synchronization mechanism

The invention relates to a CPU/GPU synchronization mechanism. You can use a thread on a processor to enable another processor to lock or release mutex. For example, a central processing unit thread can be used by a graphics processing unit to protect mutual exclusion of shared memory.

【技术实现步骤摘要】
CPU/GPU同步机制本申请是申请日为2012年6月29日申请号为第201280037791.4号专利技术名称为“CPU/GPU同步机制”的中国专利申请的分案申请。
技术介绍
这一般地涉及具有通用处理器和图形处理单元的计算机。运行在通用或中央处理单元上由用户应用所使用的存储器和由图形处理单元所使用的处理器通常是分开的。图形处理单元驱动器将数据从用户空间复制到驱动器存储器以在图形处理单元上进行处理。在共享的虚拟存储器模型中,数据没有被复制到图形处理单元,而是相反地,它在图形处理单元和中央处理单元之间共享。当前,在多线程应用中,共享的数据由称为互斥的锁来保护。每个想要访问共享数据的线程都必须首先对相对应的互斥上锁以阻止其它线程访问该互斥。此上锁可以通过锁上的“回旋(spinning)”来进行,但这个技术从功率和性能的角度效率不高。为了优化中央处理单元,操作系统提供允许线程休眠直到有互斥可用、然后当互斥被解锁时通知其它线程的系统调用。但这个机制只对于运行在中央处理单元核上的线程生效。附图说明图1是本专利技术的一个实施例的示意图;图2是根据本专利技术的一个实施例的扩展线程和存储器模型;图3是根据本专利技术的一个实施例的页错误处理的流程图;以及图4是一个实施例的系统图。具体实施方式在一个实施例中,对每个运行在图形处理器上的线程群,可以创建运行在中央处理单元上的辅助影子线程。当运行在图形处理单元上的线程想要对互斥上锁时,如果它想要等待直到该线程由其它任务释放,则图形线程向中央处理单元上的影子线程发送请求。中央处理单元上的影子线程向操作系统发出相对应的系统调用。当操作系统将锁给影子线程时,影子线程向图形处理单元上的线程发送通知。当在本申请中使用术语图形处理单元时,应理解图形处理单元可以是或可以不是单独的集成电路。本专利技术对图形处理单元和中央处理单元集成到一个集成电路的情形适用。如此处所使用的,处理器或处理单元可以是处理器、控制器或协处理器。参考图1,在基于处理器的系统10中,主/中央处理单元16与图形处理单元18通信。主/中央处理单元16可以是包括硬连线或移动设备的任何基于处理器的系统的一部分。举几个示例,移动设备的示例包括蜂窝电话、膝上型计算机、平板计算机和移动因特网设备。主中央处理单元16包括用户应用20,它向影子线程22提供控制信息。然后影子线程22向图形处理单元驱动器26通信关于同步和控制信息的同步。影子线程也和主操作系统24通信。如图1中所示,用户级别12包括影子线程22和用户应用20,而内核级别14包括主操作系统24和图形处理单元驱动器26。图形处理单元驱动器26是图形处理单元的驱动器,即使该驱动器驻留在中央处理单元16中。在用户级别12中,图形处理单元18包括g线程(gthread)28,它向操作系统(pOS)30发送控制和同步消息并从操作系统30接收消息。g线程是运行在图形处理单元上的用户代码,与运行在中央处理单元上的父线程共享虚拟存储器。操作系统30可以是相对小的操作系统,它运行在图形处理单元上,负责图形处理单元异常。作为一个示例,它相对于主操作系统24是小的。用户应用20是运行在中央处理单元16上的任何用户进程。用户应用20派生图形处理单元18上的线程。扩展线程库或XTL是创建和管理图形处理单元上的用户线程的扩展。这个库为每个g线程创建影子线程并具有用于同步的库函数。用户应用使用传统多线程模型的扩展将计算卸载到图形处理单元,扩展诸如:xthread_create(thread,attr,gpu_worker,arg)。在图形处理单元上创建的g线程或工作者线程与父线程共享虚拟存储器。在可以使用所有标准的过程间同步机制诸如互斥和信号机的意义上,它以与常规线程相同的方式行为。同时,在主中央处理单元16上创建新影子线程。这个影子线程充当异常处理单元的代理和中央处理单元与图形处理单元上的线程之间的同步。在一些实施例中,父线程、主影子线程和图形处理单元工作者线程可以共享虚拟存储器,如图2中所示。主/中央处理单元16包括为影子线程22生成xthread_create()的父线程32。影子线程22访问影子堆栈,影子堆栈是进程地址空间36中的私有地址空间。父线程32也访问存储器描述符34和主堆栈,主堆栈是进程地址空间36内的私有地址空间。存储器描述符34也可以与g线程工作者28通信。g线程工作者28可以访问进程空间36内的g线程代码以及共享数据区和私有g线程堆栈。较上的框中的材料对应于进程模型38,并且较下的框相对应于存储器模型40。参考图3,同步算法可以用硬件、软件和/或固件来实现。在软件实施例中,算法可以作为存储在非瞬态计算机可读介质上的计算机可执行指令来实现,介质诸如光学、半导体或磁存储设备。在图3中,中央处理单元16的主操作系统24、影子线程22、驱动器26和图形处理单元18中的操作系统30和环357的流程示为并行的垂直流程路径,且一般由水平箭头指示的它们之间的交互。继续在图3中,在一个实施例中,在环3,g线程28试图通过回旋(spinning)一小段时间来从用户空间获取互斥,如列57中的框60中所指示的。如果成功地获取了互斥,如菱形61中所确定的,则程序继续,如框62中所指示的。如果由于互斥已经由另一线程上锁而没有被获取,则用ACQUIRE操作码进行对操作系统30的调用(SYSCALL)。在操作系统30中接收SYSCALL。操作系统30向驱动器发送称为PassHostCommand(通过主机命令)的消息。PassHostCommand包括SYSCALL的操作码和地址加操作的数据,如框50中所指示的。然后操作系统30将调用线程置为休眠,如框54中所指示的。然后调用线程进入空闲,如框56中所指示的。中央处理单元16中的驱动器26使用传输命令将消息传输给Xthread22。在Xthread22中,接收传输命令。Xthread等待来自驱动器的这个消息,如框44中所指示的。然后Xthread执行对互斥上锁,如框46中所指示的,并可以包括对主操作系统24的SYSCALL。操作系统24等待,直到获取了互斥(即,存在上下文切换),如42处所指示的。在获取了互斥之后,Xthread向驱动器26发送恢复执行命令,然后等待来自驱动器的下一消息,如框48中所指示的。驱动器26接收恢复执行命令并向图形处理单元中的操作系统30发送PassGpuCommand(通过Gpu命令)消息。PassGpuCommand可以包括不带数据的resume_execution的操作码,如框52中所指示的。操作系统30唤醒线程,如框58中所指示的,并向g线程28发送来自SYSCAL的恢复。结果是,g线程28继续工作,如框62中所指示的。影子线程也可以用来释放互斥。图4中所示的计算机系统130可以包括通过总线104耦合到芯片组核逻辑110的硬驱动器134和可移动介质136。键盘和鼠标120或其它传统组件可以经由总线108耦合到芯片组核逻辑。在一个实施例中,核逻辑可以经由总线105耦合到图形处理器112,和耦合到中央处理器100。图形处理器112还可以通过总线106耦合到帧缓冲器114。帧缓冲器114可以通过总线107耦合到显示屏幕118。在一个实施例中,图形本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201611216183.html" title="处理设备、异构处理系统和数据处理系统原文来自X技术">处理设备、异构处理系统和数据处理系统</a>

【技术保护点】
一种处理设备,包括:主中央处理单元(CPU),用于执行库的第一线程;与所述主CPU耦合的图形处理单元(GPU),所述主CPU和所述GPU用于共享到共享虚拟地址空间的访问,所述第一线程用于同步到所述共享虚拟地址空间的访问;其中所述第一线程用于同步第二线程和第三线程之间的访问,所述第二线程用于在所述主CPU上执行,所述第三线程用于在所述GPU上执行;以及其中所述第一线程用于经由获取操作和释放操作来同步访问。

【技术特征摘要】
2011.07.29 US 13/193,7791.一种处理设备,包括:主中央处理单元(CPU),用于执行库的第一线程;与所述主CPU耦合的图形处理单元(GPU),所述主CPU和所述GPU用于共享到共享虚拟地址空间的访问,所述第一线程用于同步到所述共享虚拟地址空间的访问;其中所述第一线程用于同步第二线程和第三线程之间的访问,所述第二线程用于在所述主CPU上执行,所述第三线程用于在所述GPU上执行;以及其中所述第一线程用于经由获取操作和释放操作来同步访问。2.如权利要求1所述的处理设备,其特征在于,所述第三线程用于经由所述获取操作来访问所述共享虚拟地址空间中的数据并且等待所述数据直到所述第二线程释放所述数据。3.如权利要求2所述的处理设备,其特征在于,所述第三线程用于经由所述释放操作在所述访问后释放所述数据,所述释放使所述第二线程能访问所述数据。4.如权利要求1-3的任一项所述的处理设备,其特征在于,所述GPU用于在从所述主CPU接收到信号消息时唤醒所述第三线程。5.如权利要求4所述的处理设备,其特征在于,所述第一线程用于允许所述主CPU和所述GPU之间的信号消息。6.如权利要求1所述的处理设备,其特征在于,所述第一线程用于同步所述第三线程和所述第一线程之间的访问。7.如权利要求1所述的处理设备,其特征在于,所述主CPU和所述GPU集成在一个集成电路内。8.如权利要求7所述的处理设备,其特征在于,所述主CPU包括多个处理核。9.如权利要求8所述的处理设备,其特征在于,所述GPU是多线程的多核并行处理器。10.一种异构处理系统,包括:多个异构处理器,包括主CPU以及与所述主CPU耦合的GPU;由所述主CPU和所述GPU共享的存储器,其中所述存储器包括共享虚拟地址空间;以及用于在所述主CPU上执行的第一线程,用于同步所述主CPU上的第二线程与所述GPU上的第三线程的存储器访问,其中所述第一线程用于经由获取操作和释放操作来同步访问。11.如权利要求10所述的异构处理系统,其特征在于,所述GPU上的所述第三线程用于请求获得对所述共享虚拟地址空间中的数据...

【专利技术属性】
技术研发人员:B·靳兹伯格E·纳坦森I·殴萨池依Y·扎克
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1