买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】通过统一存储器架构的存储器共享_英特尔公司_201910298113.7 

申请/专利权人:英特尔公司

申请日:2013-06-13

公开(公告)日:2023-03-14

公开(公告)号:CN110069421B

主分类号:G06F12/0811

分类号:G06F12/0811;G06F12/1009;G06F12/1036;G06T1/20;G06T1/60

优先权:["20120817 US 13/588453"]

专利状态码:有效-授权

法律状态:2023.03.14#授权;2019.08.23#实质审查的生效;2019.07.30#公开

摘要:此处公开了用于在计算设备的中央处理单元(CPU)和图形处理单元(GPU)之间共享存储器的方法和系统。该方法包括在物理存储器内分配表面,并将所述表面映射到CPU页面表内的多个虚拟存储器地址。该方法还包括将所述表面映射到IO设备页面表内的多个图形虚拟存储器地址。

主权项:1.一种移动计算系统,包括:集成显示设备;系统存储器,用于存储指令和数据;以及与所述系统存储器耦合的处理装置,所述处理装置包括:中央处理单元CPU;图形处理单元GPU,与在相同管芯上的所述CPU耦合,所述CPU和所述GPU要共享所述系统存储器的区域,所述GPU和所述CPU要具有共享的虚拟地址空间来引用所述系统存储器的所述区域,其中所述系统存储器的所述区域的至少一部分要在与所述GPU关联的页表内映射;以及与所述CPU和所述GPU耦合的共享末级高速缓存,所述共享末级高速缓存用于将对应于相应存储器访问的数据高速缓存到所述CPU和所述GPU所共享的虚拟地址空间。

全文数据:通过统一存储器架构的存储器共享技术领域本发明一般涉及存储器在计算系统内的中央处理单元CPU和输入输出IO设备之间的共享。更具体而言,本发明涉及物理存储器在CPU和IO设备之间的共享。背景技术现代IO设备可以包括与许多中央处理单元CPU的计算机处理能力相匹敌的计算机处理能力。结果,传统上由CPU执行的计算任务的一部分可以被分摊给计算设备的IO设备。例如,计算设备的诸如图形处理单元GPU之类的IO设备可以执行传统上由CPU执行的某些任务,由此,提高CPU的效率。附图简述图1是根据各实施例的,可以使用的计算设备的框图;图2A和2B是根据各实施例的可以被用来实现用于在计算设备的中央处理单元CPU和图形处理单元GPU之间共享存储器的过程的统一存储器架构UMA的示意图;图3是示出了根据各实施例的用于在计算设备的CPU和GPU之间共享存储器的方法的流程图;图4是示出了根据各实施例的用于处理在计算设备的CPU和GPU之间共享的存储器的方法的流程图;图5是示出了根据各实施例的存储用于在计算设备的CPU和GPU之间共享存储器的代码的有形的、非瞬时的计算机可读取的介质的框图;图6是用于实现共享的物理存储器的示例性系统的框图;和图7是其中可实现图6的系统的小形状系数设备的示意图。在整个公开和附图中使用相同的标号指示相似的组件和特征。100系列的标号涉及在图1中最初可见的特征,200系列的标号涉及在图2中最初可见的特征,以此类推。实施例的描述当前操作系统和图形接口将GPU作为IO设备来管理,而不是将GPU作为带有类似于CPU的资源的处理器来管理。通过将GPU作为IO设备来管理,CPU和GPU具有带有分离的物理地址域的物理存储器。当将计算任务分摊到GPU时,将数据从CPU的物理地址域复制到GPU的物理地址域。在GPU完成了处理之后,数据被复制回CPU的物理地址域。将传统上由CPU执行的计算任务的一部分分摊给计算设备的GPU可以提高CPU的效率。如上文所讨论的,为了将任务分摊到GPU,可以在CPU的物理存储器与GPU的物理存储器之间传输数据。将计算任务分摊到GPU时发生的数据传输可能会降低通过将任务分摊到GPU获得的任何效率。相应地,此处所描述的各实施例涉及存储器在计算设备的CPU和GPU之间的共享。可以通过统一存储器架构UMA共享存储器。在各种实施例中,UMA通过给CPU和GPU两者提供相同物理存储器,来用于在CPU和GPU之间进行存储器共享。如此,CPU和GPU的物理存储器和相应的物理地址空间完全一样。在各实施例中,物理存储器可以在CPU和GPU之间划分。进一步地,物理存储器可以是由计算设备的操作系统分配的分页系统存储器。CPU的虚拟存储器地址空间可以与GPU的图形虚拟存储地址空间被映射到相同物理存储器页面。另外,在某些实施例中,CPU和GPU在物理上位于同一个管芯中。如此,CPU和GPU可以共享在物理存储器内包含的数据,而不会将数据从GPU的地址空间复制到CPU的地址空间,或反之亦然。这可以通过,例如,缩小用于在CPU和GPU之间共享数据的时间和能耗,来降低将计算任务从CPU分摊到GPU的成本。在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其派生词。应当理解,这些术语并不旨在作为彼此的同义词。相反,在特定实施例中,可以使用“连接”来表示两个或更多元件彼此处于直接的物理和或电接触的状态。“耦合的”可表示两个或更多个元件直接物理或电接触。然而,“耦合的”也可表示两个或更多个元件并未彼此直接接触,但是仍然彼此协作、彼此相互作用。一些实施例可在硬件、固件和软件中的一者或组合中实现。一些实施例还可被实现为存储在机器可读介质上的指令,其可由计算平台读取和执行,以执行本文所述的操作。机器可读介质可以包括用于存储或传输机器例如:计算机可读形式的信息的任何机制。例如,机器可读介质可包括只读存储器ROM;随机存取存储器RAM;磁盘存储介质;光存储介质;闪存设备;或电、光、声或其它形式的传播信号例如,载波、红外信号、数字信号、或发送和或接收信号的接口等等等。实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各种实施例”或“另一些实施例”的引用表示结合这些实施例而描述的特定特征、结构、或特性被包括在本发明的至少一些实施例中,而不一定在所有的实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定全部都是指相同实施例。一个实施例的元件或方面可与另一个实施例的元件或方面组合。并非本文中描述和示出的所有组件、特征、结构、特性等等都需要被包括在特定实施例或多个实施例中。例如,如果说明书陈述“可”、“可能”或“能够”包括组件、特征、结构或特性,则不一定包括该特定组件、特征、结构或特性。如果说明书或权利要求书提到“一”或“一个”元件,则这并不意味着仅有一个该元件。如果说明书或权利要求书引用“附加的”元件,则不排除有一个以上该附加的元件。要注意的是,虽然参考特定实现方式描述了一些实施例,但根据一些实施例,其他实现方式也是可能的。另外,附图中所示的和或本文描述的电路元件或其它特征的配置和或顺序不必以所示和所描述的特定方式安排。根据某些实施例,其他许多配置也是可能的。在附图所示出的每一系统中,在某些情况下,每一元件都可以具有相同参考编号或不同的参考编号,以暗示表示的元件可能是不同的和或类似的。但是,元件可以足够灵活,具有不同的实现方式,并与本文所示或所述的一些或所有系统一起操作。附图中所示的各元件可以相同或不同。将哪个称为第一元件以及将哪个称为第二元件是任意的。图1是根据各实施例的可以使用的计算设备100的框图。该计算设备100可以是,例如,膝上型计算机、台式计算机、平板计算机、移动设备、服务器,等等。计算设备100可包括中央处理单元CPU102,适用于执行所存储的指令,还有存储器设备108,其存储可由CPU102执行的指令。CPU102可以是单核处理器、多核处理器、计算群集、或者任意数量的其他配置。进一步,计算设备100可包括多于一个的CPU102。可使用由CPU102执行的指令来实现存储器共享过程。计算设备100还可包括图形处理单元GPU104。GPU是计算设备100内的输入输出IO设备。IO设备是可用于使用输入端、输出端或其任何组合与计算机进行通信的设备。如图所示,CPU102可通过总线106连接至GPU104。然而,在某些实施例中,GPU104与计算设备100内的CPU102位于相同管芯上。如此,CPU102和GPU在物理上以这样的方式连接:可以消除CPU102和GPU104之间的通过总线106的连接。此外,在各实施例中,CPU102和GPU104可以被包括在计算设备100的统一存储器架构内,如参考图2所讨论的。GPU104可被配置为执行计算设备100中的任意数量的图形操作。例如,GPU104可被配置为呈现或操作图形化图像、图形帧、视频等,使其向计算设备100的用户显示。在某些实施例中,GPU104包括若干个图形引擎未示出,其中,每一图形引擎都被配置成执行特定图形任务,或执行特定类型的工作负荷。计算设备100还可包括存储器设备108。存储器设备108可包括随机存取存储器RAM、只读存储器ROM、闪存、或任何其他合适的存储系统。例如,存储器设备108可包括动态随机存取存储器DRAM。存储器108可以包括被配置成执行用于实现存储器共享过程的指令的设备驱动器110。设备驱动器110可以是软件、应用、应用代码,等等。在某些实施例中,设备驱动器110是用户模式驱动器。存储器108还包括多级112缓存,包括末级缓存LLC114、2级缓存116以及1级缓存118。虽然为说明使用了多级缓存112,但是,任何缓存都可以包括在计算设备100中。多级缓存112可以是存储CPU102的频繁使用的数据的较小子集的较小较快的存储器。较大的数据集可以存储在存储器120中。存储器120是诸如硬盘驱动器、光盘驱动器、拇指驱动器、驱动器阵列、或其中任意组合之类的物理存储器。存储器120还可包括远程存储驱动器。CPU102访问存储在存储器120中的数据的时间量相对于CPU102访问存储器104中的多级缓存112需要花费的时间量可能较慢。在某些实施例中,在CPU102和GPU104之间共享LLC114,同时,可以对于GPU104隐藏2级缓存116和1级缓存118,以便GPU104不能直接访问缓存在2级缓存116和1级缓存118中的数据。然而,LLC114可以读取和写入存储在2级缓存116和1级缓存118中的数据。由此,当GPU104请求缓存在2级缓存116或1级缓存118中的数据时,LLC114能够从2级缓存116和1级缓存118中检索数据,供GPU104进行处理。如此,LLC114确保计算设备100内的数据一致性。如此处所使用的,一致性是指被CPU102和GPU104访问的数据相同的状态。相应地,CPU102将通过确保数据与LLC114一致,来确保来自存储设备120的数据准确地反映在LLC114、2级缓存116以及1级缓存118中,以便允许正确的数据被与GPU104共享。另外,在各实施例中,CPU和GPU可以访问存储器的任何级别。然而,来自存储器的其他级别的数据可能是陈旧的,而LLC114包括最近的数据。此外,在各实施例中,CPU和GPU可以使用任何相互可访问的存储位置来执行共享的虚拟存储器。任何相互可访问的存储位置可以包括,但不仅限于,存储器设备104的任何区域、存储器120的任何区域、联网的存储位置、拇指驱动器,或其任何组合。存储器120包括表面122以及被配置成在计算设备100上运行的任意数量应用124。表面122是由设备驱动器110分配的物理存储器的指定的部分。可以基于对表面122内的物理存储器的内容执行的处理,更新表面。在各实施例中,当应用124由CPU104执行时,应用124可以请求由设备驱动器110分配表面。此外,在CPU102上运行的应用124可以通过指定表面122的所需大小和特征,根据应用124调用的存储器分配,配置表面122。另外,例如,可以响应于来自计算设备100的CPU102的输入,执行表面分配。此外,在各实施例中,表面还标记为LLC可缓存的。通过将表面122指定为LLC可缓存的,从表面122内的位置缓存的数据可以被缓存到LLC114,并由此在LLC中可被CPU102和GPU104两者访问。可以使用存储器管理单元MMU126来管理对存储在表面122内的数据的访问。MMU126可以将CPU102和GPU104的虚拟地址空间分割为地址空间的各种页面。CPU102和GPU104中每一个都具有它们自己的虚拟地址空间。虚拟地址空间通过将在计算系统内执行的各种应用124隔离到虚拟地址的特定子集,保护包含在表面122内的数据。通过使用虚拟地址空间,一个应用124将不会访问另一应用124的数据。相应地,MMU126包括CPU页面表128和GPU页面表130。CPU页面表包含被映射到表面122内的物理地址位置的CPU的虚拟地址。类似地,GPU页面表包含被映射到表面122内的物理地址位置的GPU的虚拟地址。在此处所描述的存储器共享过程中,CPU页面表128可以包括CPU虚拟地址空间到物理地址空间的映射。物理地址空间对应于表面122内的物理位置。同样,GPU页面表130可以包括GPU虚拟地址空间到相同物理地址空间的映射。在各种实施例中,来自CPU页面表128的虚拟存储器地址和来自GPU页面表130的图形虚拟存储器地址通过转换过程,被映射到表面122的物理存储器页面。可以使用转换过程来将虚拟存储器地址中的任何一个转换为相应的物理地址。例如,可以通过页面表步行walk,来执行转换过程,页面表步行可以基于用于将页面表内的虚拟存储器地址转换为页面表内的物理存储器地址的特定转换表来执行。另外,在各实施例中,可以使用转换后备缓冲器来将CPU和GPU的虚拟地址转换为它们的相应的页面表内的物理地址空间。在执行转换过程之后,可以固定pin表面122。固定表面是指保护表面,以便物理位置和相应的物理地址不变。如此,固定表面122确保虚拟地址空间和物理地址空间之间的“硬”映射。在地址空间之间的硬映射是在固定表面之后不会变化的映射。如果表面没有被固定,则可能会生成页面错误,或可能会处理错误的数据,因为表面的物理位置可能移位。在各实施例中,应用124可以在CPU102上执行,并请求诸如表面122之类的表面,以便执行诸如处理数据之类的操作。CPU102可以将操作传递到GPU104。由于页面表已经被映射到表面122,因此,GPU可以通过访问表面,开始由CPU102分摊的操作的立即执行,而不必将数据复制到另一个地址空间。当操作由CPU102完成时,GPU104可以向CPU122发送信号,操作完成。然后,CPU102可以继续处理数据,而不必将数据复制回原始地址空间。当由应用124请求的操作由GPU104执行时,可以发生对表面122的修改。根据此处所描述的存储器共享过程,这样的对表面122的修改完全对CPU102可见。如此,可以在GPU104和CPU102之间共享数据,而不必将数据从GPU104复制到CPU102,或反之亦然。CPU102还可通过总线106连接至输入输出IO设备接口132,该接口132适用于将计算设备100连接至一个或多个IO设备134。IO设备134可包括,例如,键盘和指向设备,其中指向设备可包括触摸板或触摸屏,等等。IO设备134可以是计算设备100的内置组件,或可以是从外部连接至计算设备100的设备。CPU102还可通过总线106链接至显示接口136,该接口136适用于将计算设备100连接至显示设备138。显示设备138可包括显示屏,其为计算设备100的内置组件。显示设备138还可包括从外部连接至计算设备100的计算机监视器、电视机或投影仪等等。网络接口控制器NIC140可适合通过总线106将计算设备100连接至网络142。网络142可以是广域网WAN、局域网LAN或因特网,等等。图1的框图并不意在表示,计算设备100包括图1中所示的全部组件。进一步,取决于特定实现的细节,计算设备100可包括图1中未示出的任意数量的附加组件。图2A和2B是根据各实施例的可以被用来实现用于在计算设备100的CPU102和GPU104之间共享存储器的过程的统一存储器架构200的示意图。类似标记的项如根据图1所描述。UMA200可以包括,例如,计算设备100的CPU页面表128、GPU页面表130以及表面122。UMA200可以允许CPU102和GPU104之间的直接存储器共享,而不必在CPU102和GPU104之间有任何类型的数据复制或数据传输。这可以通过允许CPU102和GPU104共享表面122来做到。如上文所描述的,表面122可以是物理存储设备的一部分。表面包括任意数量的物理存储器位置202。物理存储器位置202可以被组织成分页的存储器格式,其中,页面是表面122内的物理存储器的固定长度的块。CPU页面表128可以包括若干个CPU虚拟存储器地址204,而GPU页面表130可以包括若干个图形虚拟存储器地址206。CPU虚拟存储器地址204构成CPU虚拟地址空间,而图形虚拟存储器地址206构成图形虚拟地址空间。每一地址空间都被映射到每一页面表中的物理地址。如此,CPU虚拟存储器地址204和图形虚拟存储器地址206两者都分别映射到CPU页面表128和GPU页面表130内的相同组的物理地址208。物理地址208允许CPU102和GPU104图1处理存储在表面122内的物理位置202的数据。在各种实施例中,基于被诸如应用124图1之类的应用访问的特定CPU虚拟地址204,分配表面122。一旦分配了表面122,每一物理地址208都被映射到CPU页面表128内的相应的CPU虚拟地址204,如图2所示。GPU页面表130内的图形虚拟存储器地址206可以与CPU页面表128同步,以便CPU虚拟地址和GPU虚拟存储器地址被映射到相同组的物理地址208。物理地址208对应于表面122内的物理位置202。相应地,可以在CPU102和GPU104之间直接共享表面122。在各实施例中,如果GPU104修改位于物理位置202中的任何一个处的数据,则通过表面122,修改自动地对CPU102可见,无需任何数据复制或数据编组marshaling。图2的示意图不旨在表示UMA200将包括图2所示出的全部组件。进一步,取决于特定实现的细节,UMA200可包括图2中未示出的任意数量的附加组件。图3是示出了根据各实施例的用于在计算设备的CPU和GPU之间共享存储器的方法300的流程图。在各实施例中,方法300被用来在CPU和GPU之间共享存储器,而不必将数据从CPU存储器复制到GPU存储器。在某些实施例中,方法300可以在诸如计算设备100之类的计算设备上执行,其中,CPU102和GPU104通过总线106连接。在其他实施例中,CPU102和GPU104可以被包括诸如上文参考图2所讨论的UMA200之类的UMA中。进一步地,方法300可以由诸如计算设备100的设备驱动器126之类的计算设备的驱动器执行。方法从框302开始,在物理存储器内分配表面。在各实施例中,可以响应于来自在计算设备的CPU上运行的应用的输入,在计算设备的物理存储器内分配表面。此外,在各实施例中,还可以由设备驱动器分配表面。应用或设备驱动器可以使用CPU虚拟地址从CPU访问表面。在各实施例中,CPU虚拟地址被计算设备的操作系统提供到应用或设备驱动器。在框304,对应于表面内的物理位置的物理地址被映射到CPU虚拟地址。CPU虚拟存储器地址和物理地址之间的映射被包括在CPU页面表内。将物理存储器页面映射到虚拟存储器地址可以包括转换CPU虚拟地址,以确定系统存储器内的对应的物理存储器页面。当CPU虚拟地址被转换为物理地址时,在转换过程中发现的CPU虚拟地址和物理地址之间的关联被锁定。通过锁定关联,表面的对应于CPU页面表中的物理地址的物理位置可以被分页进入到缓存中。当关联被锁定时,页面将保留在缓存中,因为设备驱动器防止表面的物理地址被改变。在框306,GPU虚拟存储器地址被映射到表面内的物理位置。在各实施例中,表面被指定为LLC可缓存的。这样的指定确保表面的物理位置被缓存到被CPU和GPU共享的LLC中。可以将应用所使用的图形虚拟存储器地址转换为被映射到CPU的虚拟地址的相同物理地址。在各实施例中,设备驱动器可以更新图形虚拟存储器地址到GPU页面表内的物理地址的映射。将表面映射到GPU虚拟地址可以包括固定表面。通过固定表面,防止GPU虚拟地址和表面之间的映射被改变。如此,GPU虚拟存储器将对应于相同物理存储器,且物理存储器不会改变。例如,操作系统可以改变所分配的物理存储器位置,作为其存储器管理的一部分。然而,一旦表面被固定,就防止操作系统改变表面的物理存储器位置。图4是示出了根据各实施例的用于处理在计算设备的CPU和GPU之间共享的存储器的方法400的流程图。在框402,可以将操作从CPU分摊到GPU。可以如由诸如应用124图1之类的应用的指示的那样,将操作分摊到GPU。另外,可以使用用于控制CPU或GPU的任何应用编程接口API来指示将操作从CPU分摊到GPU。在各实施例中,在将操作从CPU分摊到GPU之前,可以使位于表面内的正在由CPU处理的数据与LLC一致。在框404,GPU可以开始处理分摊的操作。GPU访问LLC和表面内的数据,以便执行操作。在GPU请求不在LLC内但是在CPU的某种其他缓存中的数据的情况下,LLC可以从其他缓存检索数据,供GPU进行处理。在框406,GPU发出信号通知操作完成。完成信号可以被发送到主机。在各实施例中,当操作完成时,设备驱动器在GPU和CPU之间同步操作。进一步地,在各实施例中,完成信号可以是,例如,邮箱写入或中断。完成信号可以表示,GPU已经执行导致了表面内的数据的修改的某些计算或图形操作。在完成之后,可以由CPU处理GPU的输出。在各实施例中,当GPU通过读写表面的物理位置中的任何一个来处理表面时,处理可以在GPU的内部缓冲器和缓存中发生。相应地,在GPU处理完成之后,使GPU的内部缓冲器和缓存内的数据与LLC一致。图3和4的流程图不旨在表示方法300和400的框将以任何特定顺序执行,或在每一情况下都包括全部框。进一步,取决于特定实现的细节,可在方法300和400中包括任何数量的附加框。另外,尽管此处所描述的方法包括GPU,但可以在诸如另一CPU之类的任何IO设备或直接存储器访问DMA控制器之间共享存储器。图5是示出了根据各实施例的存储用于在计算设备的CPU和GPU之间共享存储器的代码的有形的,非瞬时的计算机可读介质500的框图。有形、非瞬态计算机可读介质500可由处理器502在计算机总线504上访问。进一步,有形、非瞬态计算机可读介质500可包括配置为引导处理器502执行此处所述的方法的代码。此处讨论的各软件组件可被存储在如图5中所示的有形、非瞬态计算机可读介质500上。例如,表面分配模块506可以被配置成分配或生成包括计算设备的存储器内的若干个物理存储器页面的表面。映射模块508可以被配置成将表面内的物理位置映射到CPU地址表和GPU地址表内的虚拟存储器地址。进一步地,固定模块510可以被配置成固定表面,以便防止表面内的物理位置改变。图5的框图并不意在表示,有形、非瞬态计算机可读介质500必须包括图5中所示的全部组件。进一步,取决于特定实现的细节,有形、非瞬态计算机可读介质500可包括图5中未示出的任意数量的附加组件。在各实施例中,CPU不必一定在CPU地址空间和GPU地址空间之间编组marshal数据。此外,CPU不负责确保没有其他处理核正在处理该CPU希望GPU处理的特定数据集,如此,防止处理核之间的处理竞争。图6是用于实现共享的物理存储器的示例性系统600的框图。类似标记的项如根据图1、2A和2B所描述。在一些实施例中,系统600是媒体系统。此外,系统600可被结合在个人计算机PC、膝上型计算机、超膝上型计算机、平板、触摸垫、便携式计算机、手持式计算机、掌上型计算机、个人数字助理PDA、蜂窝电话、组合蜂窝电话PDA、电视机、智能设备例如,智能电话、智能平板、或智能电视机、移动因特网设备MID、消息收发设备、数据通信设备等等中。在各种实施例中,系统600包括耦合至显示器604的平台602。平台602可以从诸如内容服务设备多个606、或内容分发设备608多个之类的内容设备或其他类似的内容源接收内容。包括一个或多个导航特征的导航控制器610可以被用来与,例如,平台602和或显示器604进行交互。在下文中更详细地描述这些组件中的每一个。平台602可包括芯片组612、中央处理单元CPU102、存储器设备108、存储设备120、图形子系统614、应用124、和无线电616的任意组合。芯片组612可以在CPU102、存储器设备108、存储设备120、图形子系统614、应用124、和无线电614之间提供相互通信。例如,芯片组612可包括能够提供与存储设备120的相互通信的存储适配器未示出。处理器102可以实现为复杂指令集计算机CISC或精简指令集计算机RISC处理器、x86指令集兼容处理器、多核,或任何其他微处理器或中央处理单元CPU。在一些实施例中,处理器102包括双核处理器多个、双核移动处理器多个等等。存储器108可以实现为易失性存储器设备,诸如,但不限于,随机存取存储器RAM、动态随机存取存储器DRAM或静态RAMSRAM。存储设备120可以实现为非易失性存储设备,诸如,但不仅限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连的存储设备、闪存、电池备份的SDRAM同步DRAM,和或网络可访问的存储设备。在各实施例中,存储设备120包括例如当包括多个硬盘驱动器时,用于提高存储器性能或对有价值的数字媒体的增强保护的技术。图形子系统614可以对诸如静止图像或视频之类的图像执行处理,供显示。图形子系统614可以包括例如图形处理单元GPU,诸如GPU104、或视觉处理单元VPU。模拟或数字接口可以被用来通信地耦合图形子系统614和显示器604。例如,接口可以是高清晰度多媒体接口、显示端口DisplayPort、无线HDMI,和或无线HD兼容技术中的任何一个。图形子系统614可以被集成到CPU102或芯片组612中。可选地,图形子系统614可以是通信耦合到芯片组612的独立卡。本文中所描述的图形和或视频处理技术可在各种硬件架构中实现。例如,图形和或视频功能可以集成在芯片组612内。替代地,可以使用单独的图形和或视频处理器。作为又一实施例,图形和或视频功能可由包括多核处理器的通用处理器实现。在又一实施例中,这些功能可实现在消费者电子设备中。无线电616可以包括能够使用各种合适的无线通信技术传输和接收信号的一个或多个无线电。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括无线局域网WLAN、无线个域网WPAN、无线城域网WMAN、蜂窝网络,以及卫星网络。在跨这样的网络的通信中,无线电616可以根据任何版本的一个或多个适用的标准来操作。显示器604可包括任何电视机类型的监视器或显示器。例如,显示器604可包括计算机显示屏幕、触摸屏幕显示器、视频监视器、电视机等。显示器604可以是数字和或模拟的。在一些实施例中,显示器604是全息显示器。同样,显示器604可以是可以接收可视投影的透明表面。这样的投影可以传达各种形式的信息、图像、和或对象等。例如,这样的投影可以是用于移动增强的现实MAR应用的视觉覆盖。在一个或多个应用124的控制下,平台602可以在显示器604上显示用户界面618。内容服务设备多个606可以由任何国家的、国际的、和或独立的服务托管,且如此,可以由平台602经由例如因特网访问。内容服务设备多个606可以耦合到平台602和或显示器604。平台602和或内容服务设备606可以耦合到网络142以往返于网络142进行通信例如,发送和或接收媒体信息。内容分发设备608还可以耦合到平台602和或显示器604。内容服务设备多个606可包括有线电视盒、个人计算机、网络、电话、或能传递数字信息的启用因特网的设备。此外,内容服务设备多个606可包括能在内容提供者和平台602或显示器604之间经由网络142或直接单向或双向地通信内容的任何其他类似设备。可以理解,内容可以通过网络142往返于系统600中的组件中的任何一个和内容提供商单向地和或双向地传递。内容的示例可以包括任何媒体信息,包括,例如,视频、音乐、医疗和游戏信息等等。内容服务设备多个606可接收内容,诸如有线电视节目,包括媒体信息、数字信息和或其他内容。内容提供商的示例可包括任何有线或卫星电视或无线电或因特网内容提供商等等。在一些实施例中,平台602从包括一个或多个导航特征的导航控制器610接收控制信号。导航控制器610的导航特征可以被用来,例如,与用户界面618进行交互。导航控制器610可以是指向设备,该指向设备可以是允许用户向计算机输入空间数据例如,连续和多维的计算机硬件组件具体而言,人类接口设备。诸如图形用户界面GUI、电视机和监视器之类的许多系统可使用户使用物理手势控制并向计算机或电视机提供数据。物理姿势包括但不限于脸部表情、面部动作、各肢体的动作、身体动作、身体语言、或其中任意组合。这样的物理姿势可被识别并转换为命令或指令。导航控制器610的导航特征的移动可以通过指针、光标、焦点环,或显示在显示器604上的其他可视指示器,反映在显示器604上。例如,在应用124的控制下,位于导航控制器610上的导航特征可以被映射为用户界面618上显示的虚拟导航特征。在一些实施例中,导航控制器610可以不是单独的组件,而是被集成到平台602和或显示器604中。系统600可包括驱动未示出,其包括允许用户在初始引导之后,按下按钮来立即打开和关闭平台602的技术。程序逻辑可以允许平台602当平台被“关闭”时向媒体适配器或其他内容服务设备606或内容分发设备608流式播放内容。另外,芯片集612可包括,例如,对于5.1环绕声音频和或高清晰度7.1环绕声音频的硬件和或软件支持。驱动可以包括集成的图形平台的图形驱动器。在一些实施例中,图形驱动器包括外设组件互连高速PCIe图形卡。在各种实施例中,可以集成系统600中所示出的组件的任何一个或更多。例如,可集成平台602和内容服务设备多个606;可集成平台602和内容分发设备多个608;或者,例如,可集成平台602、内容服务设备多个606,以及内容分发设备多个608。在一些实施例中,平台602和显示器604是集成的单元。例如,可以集成显示器604和内容服务设备多个606,或者可集成显示器604和内容分发设备多个608。系统600可被实现为无线系统或有线系统。当实现为无线系统时,系统600可以包括适用于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括诸如RF频谱之类的无线频谱的某些部分。当被实现为有线系统时,系统600可包括适合于在有线通信介质上通信的组件和接口,诸如输入输出IO适配器、将IO适配器与相应的有线通信介质连接的物理连接器、网络接口卡NIC、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括,线路、电缆、金属导线、印刷电路板PCB、后面板、交换架构、半导体材料、双绞线、同轴电缆、光纤等等。平台602可以建立一个或多个逻辑或物理信道以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示给用户的内容的任何数据。内容的示例可以包括,例如,来自语音谈话、视频会议、流式视频、电子邮件email消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音谈话的数据可以是,例如,语音信息、静默时间长度、背景噪声、舒适噪声、音调等等。控制信息可以是指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用来通过系统路由媒体信息,或指示节点以预先确定的方式处理媒体信息。然而,这些实施例并不限于这些元件或图6中示出或描述的上下文。图7示出了其中可以实现图6的系统600的小形状系数设备900的示意图。类似标记的项如根据图6所描述。在一些实施例中,例如,设备700可被实现为具有无线功能的移动计算设备。移动计算设备可指具有处理系统以及移动电源或供电诸如一个或多个电池的任何设备。如上文所描述的,移动计算设备的示例可以包括个人计算机PC、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理PDA、蜂窝电话、蜂窝电话PDA的组合、电视机、智能设备例如,智能电话、智能平板电脑或智能电视机、移动因特网设备MID、消息传送设备、数据通信设备等等。移动计算设备的示例还可以包括被配置为由人佩戴的计算机,诸如腕计算机、手指计算机、环计算机、眼镜计算机、皮带计算机、臂带计算机、鞋计算机、衣服计算机,及任何其他类型的可佩戴计算机。例如,移动计算设备可被实现为能够执行计算机应用以及语音通信、和或数据通信的智能电话。尽管已经以实现为智能电话的移动计算设备为例描述了一些实施例,但可理解其他实施例也可利用其他无线移动计算设备来实现。如图7所示,设备700可包括外壳702、显示器704、输入输出IO设备706、以及天线708。设备700还可包括导航特征710。显示器704可以包括用于显示适合于移动计算设备的信息的任何合适的显示单元。IO设备706可以包括用于向移动计算设备中输入信息的任何合适的IO设备。例如,IO设备706可包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、往复式开关、麦克风、扬声器、语音识别设备、以及软件等等。信息还可以通过麦克风的方式输入到设备700中。该信息可通过语音识别设备数字化。示例1:此处描述了用于在计算设备的中央处理单元CPU和输入输出IO设备之间共享存储器的方法。该方法包括在物理存储器内分配表面。该方法包括将表面映射到CPU页面表内的多个虚拟存储器地址。该方法还包括将表面映射到基于表面的IO设备页面表内的多个图形虚拟存储器地址。该方法还包括固定表面。可以通过表面在CPU和IO设备之间共享存储器,而不必将数据从CPU存储器复制到IO设备存储器。可以响应于来自在计算设备的CPU上运行的应用的输入,分配表面。另外,该方法可以由计算设备的驱动器执行。来自CPU和IO设备的缓存的数据可以与在CPU和IO设备之间共享的末级缓存LLC一致。可以将操作从CPU分摊到IO设备,操作可以在IO设备内执行。可以向CPU发送完成信号,其中,完成信号包括IO设备已经执行导致了表面内的数据的修改的某些计算的指示。另外,设备驱动器还可以在CPU和IO设备之间同步对数据的处理。示例2:此处描述了一种计算设备。该计算设备包括被配置为执行所存储的指令的中央处理单元CPU和存储这些指令的存储设备。存储设备包括处理器可执行代码,当由CPU执行时,处理器可执行代码被配置成在物理存储器内分配表面。计算设备还可包括图形处理单元GPU和GPU页面表。表面可以被映射到CPU页面表内的多个虚拟存储器地址。表面也可以被映射到GPU页面表内的多个虚拟存储器地址。计算设备可以固定表面。可以在CPU和GPU之间共享物理存储器,而不必将数据从CPU存储器复制到GPU存储器。进一步地,CPU和GPU可以位于计算设备内的同一管芯上。CPU和GPU可以共享末级缓存LLC,其中,LLC可以从CPU或GPU的任何缓存检索数据。CPU和GPU可以包括统一存储器架构UMA。处理器可执行代码可以被配置成响应于来自在计算设备的CPU上运行的应用的输入,分配表面。可以通过将虚拟地址转换为物理地址,将CPU页面表和GPU页面表中的虚拟存储器地址映射到表面内的物理位置。驱动器可以被配置成启动处理器可执行代码的执行。另外,计算设备还可包括无线电和显示器,且该无线电和显示器可被通信地至少耦合至中央处理单元。示例3:此处描述了其中存储有指令的至少一个有形的机器可读介质。响应于在计算设备上执行,指令导致计算设备在物理存储器内生成表面。指令还导致计算设备将表面映射到若干个CPU虚拟存储器地址,并将表面映射到若干个GPU虚拟存储器地址。还可以固定表面。可以在CPU和GPU之间共享物理存储器,而不必将数据从CPU存储器复制到GPU存储器。进一步地,指令还可以导致来自CPU和GPU的缓存的数据与末级缓存LLC一致。另外,指令还可以导致计算设备响应于来自在计算设备的CPU上运行的应用的输入,分配表面。要理解的是,上述示例中的特定细节可被用在一个或多个实施例中的任何地方。例如,上述计算设备的所有任选特征也可相对于此处描述的方法或计算机可读介质而被实现。进一步,尽管已经在此处使用过程流程图和或状态图来描述各实施例,但本发明不限于此处的那些图或相应的描述。例如,流程不必经过每个所示的框或状态或以此处所示和所述的完全相同的顺序进行。本发明不限于此处列出的特定细节。实际上,受益于本公开的本领域的技术人员将理解,可在本发明的范围内进行来自上述描述和附图的很多其它变型。因此,由所附权利要求书包括对其进行的任何修改定义本发明的范围。

权利要求:1.一种移动计算系统,包括:集成显示设备;系统存储器,用于存储指令和数据;以及与所述系统存储器耦合的处理装置,所述处理装置包括:中央处理单元CPU;图形处理单元GPU,与在相同管芯上的所述CPU耦合,所述CPU和所述GPU要共享所述系统存储器的区域,所述GPU和所述CPU要具有共享的虚拟地址空间来引用所述系统存储器的所述区域,其中所述系统存储器的所述区域的至少一部分要在与所述GPU关联的页表内映射;以及与所述CPU和所述GPU耦合的共享末级高速缓存,所述共享末级高速缓存用于将对应于相应存储器访问的数据高速缓存到所述CPU和所述GPU所共享的虚拟地址空间。2.如权利要求1所述的移动计算系统,其中所述显示设备包括触摸屏。3.如权利要求2所述的移动计算系统,还包括触摸板。4.如权利要求1所述的移动计算系统,其中所述系统存储器包括动态随机存取(DRAM)存储器。5.如权利要求1所述的移动计算系统,其中所述系统存储器的所述区域要使能对所述CPU和所述GPU共享的虚拟地址空间内的共用数据结构的访问。6.如权利要求1所述的移动计算系统,其中所述CPU要将GPU虚拟地址映射到所述系统存储器的所述区域,所述GPU虚拟地址在GPU页表中映射。7.如权利要求1所述的移动计算系统,其中所述系统存储器的所述区域要存储基于指针的数据结构,并且所述GPU要经由指针来访问所述基于指针的数据结构中的数据。8.如权利要求1所述的移动计算系统,其中所述系统存储器的所述区域要由所述CPU响应于来自应用的输入来分配,所述应用要在所述CPU上执行。9.如权利要求1所述的移动计算系统,所述CPU要同步所述CPU和所述GPU的页表数据。10.一种移动计算设备,包括:存储器设备,以及处理装置,与所述存储器设备耦合,所述处理装置包括:中央处理单元CPU;图形处理单元GPU,与在相同管芯上的所述CPU耦合,所述CPU和所述GPU要共享所述存储器设备的存储器区域,所述GPU和所述CPU要具有共享的虚拟地址空间来引用所述存储器区域,其中所述存储器区域的至少一部分要在与所述GPU关联的页表内映射;以及与所述CPU和所述GPU耦合的共享末级高速缓存,所述共享末级高速缓存用于将对应于相应存储器访问的数据高速缓存到所述CPU和所述GPU所共享的虚拟地址空间。11.如权利要求10所述的移动计算设备,其中所述存储器设备包括动态随机存取(DRAM)存储器。12.如权利要求10所述的移动计算设备,其中所述存储器区域要使能对所述CPU和所述GPU共享的虚拟地址空间内的共用数据结构的访问。13.如权利要求10所述的移动计算设备,其中所述CPU要将GPU虚拟地址映射到所述存储器区域,所述GPU虚拟地址在GPU页表中映射。14.如权利要求10所述的移动计算设备,其中所述存储器区域要存储基于指针的数据结构,所述GPU要经由指针来访问所述基于指针的数据结构中的数据。15.如权利要求10所述的移动计算设备,其中所述存储器区域要由所述CPU响应于来自应用的输入来分配,所述应用要在所述CPU上执行。16.如权利要求10所述的移动计算设备,所述CPU要同步所述CPU和所述GPU的页表数据。17.一种非易失性机器可读介质,其存储指令,所述指令促使一个或者多个处理器执行操作来使能虚拟存储器的共享,所述操作包括:在位于相同管芯上的中央处理单元CPU和图形处理单元GPU之间共享存储器区域,所述GPU和所述CPU具有在所述存储器区域内的共享虚拟地址空间;由所述CPU和所述GPU访问所述存储器区域内的数据,其中所述存储器区域的至少一部分在与所述GPU关联的页表内映射,其中由所述CPU和所述GPU访问所述存储器区域内的数据包括访问所述CPU和所述GPU共享的末级高速缓存内的数据。18.如权利要求17所述的非易失性机器可读介质,还包括,由所述CPU和所述GPU访问所述共享虚拟地址空间内的共用数据结构。19.如权利要求17所述的非易失性机器可读介质,还包括,由所述CPU将GPU虚拟地址映射到所述存储器区域,所述GPU虚拟地址在GPU页表内映射。20.如权利要求17所述的非易失性机器可读介质,其中所述存储器区域要存储基于指针的数据结构,所述GPU要经由指针来访问所述基于指针的数据结构中的数据,并且,所述存储器区域由所述CPU响应于来自应用的输入来分配,所述应用在所述CPU上执行。

百度查询: 英特尔公司 通过统一存储器架构的存储器共享

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。