CN104508641B - 单页表条目内的多组属性字段 - Google Patents
单页表条目内的多组属性字段 Download PDFInfo
- Publication number
- CN104508641B CN104508641B CN201380039836.6A CN201380039836A CN104508641B CN 104508641 B CN104508641 B CN 104508641B CN 201380039836 A CN201380039836 A CN 201380039836A CN 104508641 B CN104508641 B CN 104508641B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- memory block
- address
- group
- page table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 22
- 238000005516 engineering process Methods 0.000 description 33
- 230000000875 corresponding Effects 0.000 description 24
- 238000000151 deposition Methods 0.000 description 4
- 239000000969 carrier Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002093 peripheral Effects 0.000 description 2
- 230000003068 static Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 230000003139 buffering Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000149 penetrating Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Abstract
第一处理单元(110)及第二处理单元(120)可存取系统存储器(130),所述系统存储器(130)存储所述第一处理单元及所述第二处理单元所共用的共用页表(132)。所述共用页表可存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射。所述共用页表内的页条目可包含界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对所述相同存储器块的可存取性的第二组属性位,及界定所述存储器块的物理地址的物理地址位。
Description
技术领域
本发明一般涉及计算,且更确切地说,涉及用于将虚拟存储器地址空间映射到物理存储器地址空间的技术。
背景技术
典型的计算系统包含多个处理单元,例如中央处理单元(CPU)及图形处理单元(GPU),其从物理存储器进行读取且对物理存储器进行写入。装置的各种处理单元可实施虚拟解决方案以使得可向正由客户端执行的应用指派邻接的虚拟地址空间而不必保留邻接的物理存储器空间。每一处理单元通常具有存储器管理单元(MMU)以将虚拟的存储器地址翻译为物理存储器中的物理地址。为了执行所需的虚拟地址到物理地址的映射,每一MMU在系统存储器中维持单独的页表,且这些单独的页表中的每一者的大小可为数兆字节。
发明内容
一般来说,本发明中描述的技术涉及实施虚拟地址到物理地址的映射的计算装置。根据本发明的技术,两个或更多个处理单元可共享用于将虚拟地址映射到物理地址的共用页表。所述共用页表的页表条目可包含多组属性字段,例如用于第一处理单元的属性组、用于第二处理单元的属性组,以及其它属性组。使用所述多组属性字段,可个别地管理用于两个或更多个处理单元的属性。举例来说,本发明中描述的技术可允许对第一和第二处理单元的读取/写入存取的个别管理,以使得用于一个处理单元的读取/写入存取可不同于用于第二处理单元的读取/写入存取。
根据一个实例,一种设备包含第一处理单元、第二处理单元及存储器。所述存储器存储所述第一处理单元及所述第二处理单元共用的共用页表且存储用于由作业存取的存储器块的虚拟存储器地址到物理存储器地址的映射。所述存储器还在所述共用页表内存储所述第一处理单元及所述第二处理单元用以存取多个存储器块的一存储器块的页条目,其中所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对所述相同存储器块的可存取性的第二组属性位,及界定所述存储器块的物理地址的物理地址位。
根据另一实例,一种方法包含由第一处理单元使用存储于存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址;由所述第一处理单元存取由所述物理存储器地址识别的存储器块;由第二处理单元使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址;及由所述第二处理单元存取由所述物理存储器地址识别的所述存储器块。所述共用页表为所述第一处理单元及所述第二处理单元所共用且存储用于由作业存取的存储器块的虚拟存储器地址到物理存储器地址的映射。所述共用页表包括所述第一处理单元及所述第二处理单元用以存取所述存储器块的页条目,且所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对所述相同存储器块的可存取性的第二组属性位,及界定所述存储器块的物理地址的物理地址位。
根据另一实例,一种设备包含第一处理装置、第二处理装置及存储器。所述第一处理装置包括用于使用存储于所述存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址的装置;及用于存取由所述物理存储器地址识别的存储器块的装置,且所述第二处理装置包括用于使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址的装置;及用于存取由所述物理存储器地址识别的所述存储器块的装置。所述共用页表为所述第一处理装置及第二处理装置第二处理装置所共用且存储用于由作业存取的存储器块的虚拟存储器地址到物理存储器地址的映射。所述共用页表包括所述第一处理装置及所述第二处理装置用以存取所述存储器块的页条目,且所述页条目包括界定所述第一处理装置对所述存储器块的可存取性的第一组属性位、界定所述第二处理装置对所述相同存储器块的可存取性的第二组属性位,及界定所述存储器块的物理地址的物理地址位。
根据另一实例,一种计算机可读存储媒体存储指令,所述指令在被执行时致使第一处理单元及第二处理单元:由所述第一处理单元使用存储于存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址;由所述第一处理单元存取由所述物理存储器地址识别的存储器块;由所述第二处理单元使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址;及由所述第二处理单元存取由所述物理存储器地址识别的所述存储器块。所述共用页表为所述第一处理单元及所述第二处理单元所共用且存储用于由作业存取的存储器块的虚拟存储器地址到物理存储器地址的映射。所述共用页表包括所述第一处理单元及所述第二处理单元用以存取存储器块的页条目。所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对所述相同存储器块的可存取性的第二组属性位,及界定所述存储器块的物理地址的物理地址位。
附图说明
图1展示经配置以实施本发明中描述的虚拟存储器地址到物理存储器地址的映射技术的计算装置的实例。
图2展示经配置以实施本发明中描述的虚拟存储器地址到物理存储器地址的映射技术的计算装置的另一实例。
图3展示根据本发明中描述的技术的在单一页表条目内具有多组属性字段的共用页表的概念图。
图4展示说明本发明中描述的虚拟存储器地址到物理存储器地址的映射技术的流程图。
具体实施方式
一般来说,本发明中描述的技术涉及实施虚拟地址到物理地址的映射(在本发明中还被称作虚拟到物理映射)的计算装置。更具体来说,本发明中描述的技术针对于可由两个或更多个处理单元共享的共用页表。所述共用页表的页表条目可包含多组属性字段,例如用于第一处理单元的属性组、用于第二处理单元的属性组,以及其它属性组。使用所述多组属性字段,可个别地管理用于两个或更多个处理单元的属性。举例来说,用于一个处理单元的读取/写入存取可不同于用于第二处理单元的读取/写入存取。
例如中央处理单元(CPU)及图形处理单元(GPU)等处理单元需要存取物理存储器(即,从其读取数据并且对其写入数据)。为了读取或写入数据,处理单元使用存储器内的位置的物理地址来存取将从其读取数据或对其写入数据的所述物理存储器内的所述位置。然而,处理单元可难以管理所有存储器块(即,可对其写入数据或从其读取数据的物理存储器的位置)的物理地址。为了克服此困难,处理单元可使用虚拟寻址。在虚拟寻址中,向在处理单元上执行的应用(即,客户端)指派邻接的虚拟存储器地址。应用可包括多个作业,其中不同作业在不同处理单元上执行。处理单元中的每一者包含相应的存储器管理单元(MMU)。处理单元中的每一者的MMU具有从虚拟存储器地址确定实际存储器地址(还被称作物理存储器地址)的任务。
举例来说,MMU包含被称作翻译旁视缓冲器(TLB)的高速缓冲存储器。TLB存储用于所选择的存储器块(例如,最近存取的存储器块或频繁存取的存储器块)的虚拟到物理映射。为了存取存储器块,处理单元将用于存储器块的虚拟存储器地址供应到MMU。MMU转而存取TLB以识别用于所述存储器块的物理存储器地址。在所述映射在TLB中可用时(被称作TLB命中),MMU随后使用物理存储器地址存取存储器块。或者,MMU将物理存储器地址供应到处理单元的不同单元或模块,其随后使用物理存储器地址存取存储器块。
在一些情况下,TLB可不包含用于虚拟存储器地址的映射(被称作TLB未命中)。举例来说,处理单元可能需要存取其物理地址未包含在由TLB存储的页条目中的存储器块,因为所述存储器块不是最近存取或频繁存取的存储器块。在此发生时,处理单元存取存储于系统存储器中的页表。
页表与TLB类似之处在于,两者都存储将虚拟存储器地址映射到物理存储器地址的页条目。页表中或TLB中的一个页表条目将一个虚拟存储器地址映射到一个物理存储器地址。然而,与在本地存储在处理单元的MMU内的TLB相比,页表存储于系统存储器中。而且,因为页表存储用于处理单元的整个虚拟到物理地址映射而不是比如TLB等有限数目的页条目,所以页表的大小一般比TLB的大小大得多。举例来说,页表的大小可在数兆字节范围内。
在一些技术中,系统存储器存储用于处理单元中的每一者的对应页表。举例来说,系统存储器存储用于CPU的一页表且存储用于GPU的另一单独的页表。然而,在一些情况下,这些不同页表包含相同的页表条目。因此,可有可能CPU页表中的多个页表条目等同于GPU页表中的页表条目。举例来说,CPU页表中的页表条目可将一个虚拟存储器地址映射到物理存储器地址,且GPU页表中的页表条目可将相同的虚拟存储器地址映射到相同的物理存储器地址。
作为一个实例,在CPU上执行的操作系统可具有将邻接的虚拟存储器地址指派给应用的任务。所述应用可包含多个作业或任务,其中一些作业在CPU上执行且一些作业在GPU上执行。操作系统还可将虚拟存储器地址与物理存储器地址之间的映射存储在页表中。因为操作系统具有针对CPU及GPU两者指派虚拟存储器地址且将这些虚拟存储器地址映射到物理地址的任务,所以操作系统可针对CPU及GPU两者创建存储所述虚拟到物理映射的共用页表。
在共用此共用页表的CPU及GPU中可存在益处。举例来说,系统存储器不再存储重复的页表条目,系统存储器可存储用于CPU页表及GPU页表中的相同的页表条目的单一页条目,其促成存储器节约。此外,因为存在用于这些相同页表条目的一个页条目,所以更新单一页表条目而不是两个相同的页表条目可在计算上更有效。
已经开发出一些现有技术来实现页表共享。在这些技术中,CPU MMU及GPU MMU各自将指向共用页表的位置的指针存储在系统存储器中。在CPU及GPU存取存储器块时,它们的相应的MMU使用它们的指针以从共享的页表检索物理存储器地址。然而,用于共享页表的这些技术可有时遭受识别不了不同处理单元对存储器块的不同存取能力的问题。
不同的存取能力可与不同处理单元相关联。举例来说,页条目在常规上是32位。前12位被保留为属性位,且剩余的20位识别物理存储器地址。这些属性位识别处理单元的存取能力。作为一个实例,可将存储器块中的一些指定为可读取及可写入,且可将其它存储器块指定为仅可读取。属性位的一或多个位强制执行此可存取性限制。除了将存储器块指定为可读取及可写入或仅可读取的位之外,存在属性位中的位的其它实例。举例来说,属性位的一或多个其它位可指示某些存储器块内的数据也应存储于高速缓冲存储器(例如,处理单元的L2高速缓冲存储器)中。以此方式,页条目的属性位可描述由页条目中的地址位寻址的存储器块。
在一些情况下,用于一个处理单元的属性位可需要不同于用于另一处理单元的属性位。举例来说,在CPU上执行的操作系统可将一些块指定为可所述CPU写入及读取,且将这些相同块指定为仅可由GPU读取。举例来说,在其中CPU及GPU包含它们的自身相应的页表的上文所描述的实例中,虚拟地址到物理地址的映射在页表中的每一者中可能相同,但属性位可不相同。在其中CPU及GPU共享共用页表的上文所描述的其它实例中,属性位可由CPU及GPU两者共享。这迫使操作系统界定用于CPU或GPU而不是用于两者的属性位。
举例来说,在以上实例中,属性位是界定CPU的可存取性但不一定是GPU的可存取性的属性位。此可潜在地导致对块的不善管理。举例来说,可能需要将存储器块的可存取性限制为仅对于GPU可读取。然而,因为此块可由CPU读取及写入,且属性位不在CPU与GPU之间区分,所以在其中使用到共用页表中的指针的实例中,GPU可无意地对存储器块写入。
本发明的技术针对于特定地指定用于不同处理单元的属性位。举例来说,GPU属性位界定GPU的可存取性且CPU属性位界定CPU的可存取性。以此方式,不同处理单元可共享共用页表,且用于GPU的属性位描述GPU对存储器块的可存取性且用于CPU的属性位描述CPU对存储器块的可存取性。因为特定地针对CPU及GPU指定属性位,所以GPU不正确地对存储器块进行写入的概率会降低,同时由于不需要用于CPU及GPU的不同页表而可实现存储器节省。
可存在用以指定用于不同处理单元的属性位的各种技术。举例来说,如上文所描述,通常页条目中的32位中的12位经保留用于属性位。这些12位中的许多者的值对于GPU及CPU两者可相同。对于其值对于CPU及GPU可不同的剩余位,操作系统可特定地指定哪些位用于CPU且哪些位用于GPU。举例来说,12个属性位中的前两个位可经保留以指示存储器块是否可由CPU写入、读取或写入及读取,所述12个属性位中的接下来的两个位可经保留以指示存储器块是否可由GPU写入、读取或写入及读取,且剩余的八个位可为GPU及CPU两者共用。
作为另一实例,页条目可包含多于32个位(例如,40位)。在此实例中,最后20位可经保留以用于地址映射,且前20位可经保留为属性位。这些20位中的前10位可经保留用于CPU,且这些20位中的最后10位可经保留用于GPU。或者,其六个位可经保留用于CPU。接下来的六个位可经保留用于GPU,且接下来的8位可由CPU及GPU共享。位的这些分配既定是实例。本发明的技术不应被视为限于以上实例。虽然出于解释的目的,参考CPU及GPU来描述本发明的技术中的一些技术,但应理解,本发明的技术还可使用其它类型的处理单元实施。
图1展示可实施本发明的技术的实例计算装置,计算装置100。计算装置100的实例包含(但不限于)移动无线电话、个人数字助理(PDA)、视频游戏控制台、手持式游戏单元、移动视频会议单元、膝上型计算机、桌上型计算机、电视机顶盒、数字媒体播放器、智能电话、平板计算机、相机及类似者。虽然不仅受限于资源有限的装置,但本发明的技术对于包含电池供电的装置的资源有限的装置可特别有益。本发明的技术可(例如)通过更有效地使用有限的装置存储器来提高整体装置性能,且可通过维持较少的页表而降低计算复杂度,其可转而提高装置的响应性以及减少电力消耗。
计算装置100包含第一处理单元110、第二处理单元120及系统存储器130。第一处理单元110包含MMU 112,且第二处理单元120包含MMU 122。MMU 110可包含TLB 114,且MMU 122可包含TLB 124。第一处理单元110可(例如)为装置100的CPU。第二处理单元120可(例如)为可操作以输出用于在显示器上呈现的图形数据的GPU。第一处理单元110及第二处理单元120可另外表示其它类型的处理单元(例如用于包含显示器控制器、联网装置的各种外围装置的处理单元),或从例如CPU或GPU等处理器卸载信号处理的任何类型的数字信号处理(DSP)核。第一处理单元110及第二处理单元120的实例可包含(但不限于)数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。虽然一般将参考两个处理单元来描述本发明的技术,但可使用两个以上处理单元实施所述技术。
系统存储器130可为计算机可读存储媒体的实例。系统存储器130可(例如)为一类型的随机存取存储器(RAM),例如动态RAM、静态RAM、晶闸管RAM、零电容器RAM、双晶体管RAM,或一些其它类型的易失性存储器。系统存储器130还可为非易失性存储器,例如快闪存储器或其它类型的非易失性RAM。系统存储器130可存储致使处理单元110及处理单元120执行归于本发明中的每一者的功能的指令。以此方式,系统存储器130可被视为包括指令的计算机可读存储媒体,所述指令致使例如处理单元110及处理单元120等一或多个处理器执行各种功能。然而,在一些实例中,此类指令可存储于除系统存储器130之外的存储器中(图1中未展示)。
第一处理单元110及第二处理单元120经配置以从系统存储器130读取数据及对系统存储器130写入数据。为了读取或写入数据,第一处理单元110及第二处理单元120经配置以存取系统存储器130中的特定物理位置。这些特定位置可(例如)为4KB的块,且每一块可具有其自身的唯一物理地址。然而,如上文所介绍,第一处理单元110及第二处理单元120可实施虚拟寻址,以使得向左第一处理单元110或第二处理单元120上执行的应用指派邻接的虚拟存储器地址。然而,对应于这些邻接的虚拟存储器地址的物理存储器地址可能被分段且是非邻接的。因此,处理单元110及处理单元120可使用这些邻接的虚拟存储器地址而非对应的非邻接的物理存储器地址来处理数据。然而,在处理单元110及处理单元120需要存取系统存储器130(即,从其读取或对其写入)时,需要将这些虚拟存储器地址翻译为物理存储器地址。
MMU 112经配置以针对第一处理单元110将虚拟存储器地址映射到物理存储器地址,且MMU 122经配置以针对第二处理单元120将虚拟存储器地址映射到物理存储器地址。具有整组页条目的完整页表存储于共用页表132中。TLB 114及TLB 124中的每一者存储存储于共用页表132中的页条目的子集。所述子集可(例如)为最近存取的页条目、频繁存取的页条目,或基于一些其它准则所选择的页条目。存储于TLB 114中的页条目的子集可不同于存储于TLB 124中的页条目的子集。举例来说,由第一处理单元110经由MMU 112最近存取或频繁存取的页表条目可不同于由第二处理单元120经由MMU122最近或频繁存取的页表条目。因此,TLB 114可存储与TLB 124不同的页表条目子集。
如果(例如)第一处理单元110需要将虚拟存储器地址翻译为物理存储器地址,在TLB 114存储用于所述虚拟存储器地址的页条目时,那么MMU 112可使用TLB 114确定对应于特定虚拟存储器地址的物理存储器地址。使用所确定的物理存储器地址,处理单元110可从系统存储器130的特定物理位置进行读取或对其写入。类似地,如果第二处理单元120需要将虚拟存储器地址翻译为物理存储器地址,在TLB 124存储用于所述虚拟存储器地址的页条目时,那么MMU 122可使用TLB 124以确定对应于特定虚拟存储器地址的物理存储器地址。使用所确定的物理存储器地址,处理单元120可从系统存储器130读取或对其写入。
如上文所介绍,TLB 114及TLB 124可为存储用于仅虚拟存储器地址的子集的虚拟到物理映射的高速缓冲存储器。因此,TLB 114可不存储用于处理单元110的整个虚拟到物理映射,且类似地,TLB 124可不存储用于处理单元120的整个虚拟到物理映射。在一些情况下,MMU 112可需要确定不具有存储于TLB 114中的映射的用于虚拟存储器地址的对应物理存储器地址。为了确定未包含在TLB 114中的用于虚拟存储器地址的映射,第一处理单元110可存取存储于系统存储器130中的共用页表132。共用页表132包含用于处理单元110的整个虚拟到物理映射,且因此,可比TLB 114及TLB 124大得多。
如同MMU 112,在一些情况下,MMU 122可需要确定不具有存储于TLB 124中的映射的用于虚拟存储器地址的对应物理存储器地址。为了确定未包含在TLB 124中的用于虚拟存储器地址的映射,第二处理单元120可存取存储于系统存储器130中的共用页表132。以此方式,MMU 122可以实质上类似于MMU 112的方式起作用。共用页表132包含用于处理单元120以及用于处理单元110的整个虚拟到物理映射。以此方式,第一处理单元110及第二处理单元120共享相同的页表(即,在图1的实例中的共用页表132)。如果MMU 112及MMU 122将维持用于处理单元110及处理单元120的单独的页表,那么由处理单元110及处理单元120共享的共用页表132可小于两个页表的组合大小。共用页表132可小于两个单独的页表的组合大小,因为共用页表132的一些页表条目由MMU 112及MMU 122两者共享。
共用页表132可包含将虚拟存储器地址映射到存储器块的物理存储器地址的多个页条目。存储器块可为可经由其物理存储器地址个别地存取的系统存储器130的一部分。每一页条目可包含第一组属性位及第二组属性位。第一组属性位可设定用于第一处理单元110的控制,例如权限及存取权利,而第二组属性位设定用于第二处理单元120的控制。每一页条目可任选地包含一或多个额外组的属性位,例如设定用于第一处理单元110及第二处理单元120两者的共用控制的一组属性位。
用于共用页表132的页条目的第一组属性位及第二组属性位可使得第一处理单元110及第二处理单元120能够在共享共用页表的同时具有不同的权限及存取权利。作为一个实例,第一组属性位可经设定以使得第一处理单元110具有对系统存储器130的特定存储器块的读取及写入存取两者,而第二处理单元120可仅具有对相同特定存储器块的读取存取。当然,其它配置也是可能的,例如第二处理单元120具有读取及写入存取两者,而第一处理单元110仅具有读取存取,或第一处理单元110及第二处理单元120中的一者具有读取及写入存取两者,而另一者既不具有读取存取也不具有写入存取。
图2展示可实施本发明的技术的另一实例计算装置(计算装置200)。计算装置200的实例包含(但不限于)移动无线电话、个人数字助理(PDA)、视频游戏控制台、手持式游戏单元、移动视频会议单元、膝上型计算机、桌上型计算机、电视机顶盒、数字媒体播放器、智能电话、平板计算机、相机及类似者。计算装置200包含第一处理单元210、第二处理单元220、第三处理单元240、输入/输出存储器管理单元(IOMMU)222及系统存储器230。第一处理单元210包含MMU 212。第二处理单元220及第三处理单元240各自不具有专用的MMU,而是共享共用MMU(即,图2中的IOMMU 222)。第一处理单元210可(例如)为装置200的CPU。第二处理单元120可(例如)为可操作以输出用于在显示器上呈现的图形数据的GPU。第三处理单元240可(例如)为第三类型的处理单元,例如外围装置的处理单元。第一处理单元210、第二处理单元220及第三处理单元240的实例可包含(但不限于)数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。
系统存储器230可为计算机可读存储媒体的实例。系统存储器230可(例如)为一类型的随机存取存储器(RAM),例如动态RAM、静态RAM、晶闸管RAM、零电容器RAM、双晶体管RAM,或一些其它类型的易失性存储器。系统存储器230还可为非易失性存储器,例如快闪存储器或其它类型的非易失性RAM。系统存储器230可存储致使处理单元210及处理单元220执行归于本发明中的每一者的功能的指令。以此方式,系统存储器230可被视为包括指令的计算机可读存储媒体,所述指令致使例如处理单元210、处理单元220及/或处理单元240等一或多个处理器执行各种功能。然而,在一些实例中,此类指令可存储于除系统存储器230之外的存储器中(图2中未展示)。
第一处理单元210、第二处理单元220及第三处理单元240经配置以从系统存储器230读取数据及对其写入数据。为了读取或写入数据,第一处理单元210、第二处理单元220及第三处理单元240经配置以存取系统存储器230中的特定物理位置。这些特定位置可(例如)为4KB的块,且每一块可具有其自身的唯一物理地址。如上文所介绍,然而,第一处理单元210、第二处理单元220及第三处理单元240可实施虚拟寻址,以使得向在第一处理单元210、第二处理单元220及/或第三处理单元240上执行的应用的作业指派邻接的虚拟存储器地址。然而,对应于这些邻接的虚拟存储器地址的物理存储器地址可能被分段且是非邻接的。因此,处理单元210、处理单元220及第三处理单元240可使用这些邻接的虚拟存储器地址而非对应的非邻接的物理存储器地址处理数据。然而,在处理单元210、处理单元220及处理单元240需要存取系统存储器230(即,从其读取或对其写入)时,需要将这些虚拟存储器地址翻译为物理存储器地址。
MMU 212经配置以针对第一处理单元210将虚拟存储器地址映射到物理存储器地址。IOMMU 222经配置以针对第二处理单元220及第三处理单元230两者将虚拟存储器地址映射到物理存储器地址。具有整组页条目的完整页表存储于共用页表232中。TLB214及TLB 224中的每一者存储存储于共用页表232中的页条目的子集。所述子集可(例如)为最近存取的页条目、频繁存取的页条目,或基于一些其它准则所选择的页条目。
如果(例如)第一处理单元210需要将虚拟存储器地址翻译为物理存储器地址,在TLB 214存储用于所述虚拟存储器地址的页条目时,那么MMU 212可使用TLB 214确定对应于特定虚拟存储器地址的物理存储器地址。使用所确定的物理存储器地址,处理单元210可从系统存储器230读取或对其写入。类似地,如果第二处理单元220或第三处理单元240需要将虚拟存储器地址翻译为物理存储器地址,在TLB 224存储用于所述虚拟存储器地址的页条目时,那么MMU 222可使用TLB 224以确定对应于特定虚拟存储器地址的物理存储器地址。使用所确定的物理存储器地址,第二处理单元220及第三处理单元240可从系统存储器230读取或对其写入。
如上文所介绍,TLB 214及TLB 224可为存储用于仅虚拟存储器地址的子集的虚拟到物理映射的高速缓冲存储器。因此,TLB 214可不存储用于第一处理单元210的整个虚拟到物理映射,且类似地,TLB 224可不存储用于第二处理单元220及第三处理单元240的整个虚拟到物理映射。在一些情况下,MMU 212可需要确定不具有存储于TLB 214中的映射的用于虚拟存储器地址的对应物理存储器地址。为了确定未包含在TLB 214中的用于虚拟存储器地址的映射,MMU 212存取存储于系统存储器230中的共用页表232。共用页表232包含用于处理单元210的整个虚拟到物理映射,且因此,可比TLB 214大得多。
如同第一处理单元210,在一些情况下,第二处理单元220可需要确定不具有存储于TLB 224中的映射的用于虚拟存储器地址的对应物理存储器地址。为了确定未包含在TLB 224中的用于虚拟存储器地址的映射,MMU 222存取存储于系统存储器230中的共用页表232。共用页表232包含用于第一处理单元210以及用于第二处理单元220和第三处理单元240的整个虚拟到物理映射。以此方式,第一处理单元210、第二处理单元220及第三处理单元240共享相同的页表(即,在图2的实例中的共用页表232)。
共用页表232可包含将虚拟存储器地址映射到存储器块的物理存储器地址的多个页条目。每一页条目可包含第一组属性位及第二组属性位。第一组属性位可设定用于第一处理单元210的控制,例如权限及存取权利,而第二组属性位设定用于第二处理单元220及第三处理单元240的控制。每一页条目可任选地包含一或多个额外组的属性位,例如设定用于第一处理单元210、第二处理单元220及第三处理单元240全部的共用控制的一组属性位。
在一些实例中,第二组属性可设定用于共享IOMMU 222的所有处理单元的控制。因此,在此实例中,第二组属性位界定用于第二处理单元220及第三处理单元240两者的控制。然而,在其它实例中,第二处理单元220及第三处理单元240可各自具有一组专用属性位。在此实例中,第二组属性可设定用于第二处理单元220的控制,而第三组属性位可设定用于第三处理单元240的控制。
用于共用页表232的页条目的第一组属性位及第二组属性位可使得第一处理单元210在与第二处理单元220及第三处理单元240共享共用页表的同时具有与第二处理单元220及第三处理单元240不同的权限及存取权利。作为一个实例,第一组属性位可经设定以使得第一处理单元210具有对系统存储器230的特定存储器块的读取及写入存取权两者,而第二处理单元220及第三处理单元240可仅具有对相同特定存储器块的读取存取权。当然,其它配置也是可能的,例如第二处理单元220及第三处理单元240具有读取及写入存取权两者,而第一处理单元210仅具有读取存取权,或第二处理单元220及第三处理单元240具有读取及写入存取权两者,而第一处理单元210既不具有读取存取权也不具有写入存取权。
图3是说明共用页表332的各方面的概念图。共用页表可表示图1的共用页表132或图2的共用页表232。图3既定是概念性的以用于解释的目的,且不应被解释为表示实际数据结构。共用页表332包含多个页条目。每一页条目包含第一组属性位352A-N、第二组属性位354A-N、第三组属性位356A-N及物理存储器地址位358A-N。因此第一组属性位352A、第二组属性位354A、第三组属性位356A及物理存储器地址位358A共同地构成页条目A。第一组属性位352B、第二组属性位354B、第三组属性位356B及物理存储器地址位358B共同地构成页条目B,以此类推。如上文所论述,页条目356A-N中的每一者可为32位、40位或某一其它大小。物理存储器地址位358A-N可各自为20位或某一其它大小,且可针对第一组属性位352A-N、第二组属性位354A-N及第三组属性位356A-N中的每一者使用各种大小。
图3中的系统存储器334表示具有存储器块134A-N的物理存储器。系统存储器334可(例如)对应于图1的系统存储器130或图2的系统存储器230。存储器块134A-N既定表示存储器334的非邻接块,意味着存储器块334A-N的物理存储器地址可为非邻接的。页条目A-N中的每一者将存储器块334A-N中的一者的物理地址包含在物理存储器地址位358A-N中。
页条目A-N中的每一者对应于虚拟存储器地址。在例如图1的第一处理单元110或第二处理单元120等处理单元需要存取系统存储器时,其可使用页表332以寻找用于虚拟存储器地址的对应物理存储器地址。如果(例如)第一处理单元110需要将特定虚拟存储器地址翻译为物理存储器地址,那么第一处理单元110读取对应于所述特定虚拟存储器地址的页条目。
在此实例中,假定页条目A对应于特定虚拟存储器地址。第一处理单元110可因此读取页条目A以确定存储于物理存储器地址位358A中的对应的物理存储器地址。在图3的实例中,条目A映射到其中存储物理存储器块334B的物理存储器地址。因此,物理存储器地址位358A将物理地址存储到存储器块334B在系统存储器334内所处的地方。第一属性位352A设定第一处理单元110在存取物理存储器块334B时的权限。举例来说,第一位可能确定第一处理单元110是否具有对存储器块334B的读取特权。第二位可能确定第一处理单元110是否具有对存储器块334B的写入特权。
在一些情况下,第二处理单元120可需要翻译由第一处理单元110翻译的相同特定虚拟存储器地址。为此,第二处理单元120可读取第一处理单元110在翻译特定虚拟存储器地址时所读取的对应于所述特定虚拟存储器地址的相同页条目。
在此实例中,再次假设页条目A对应于所述特定虚拟存储器地址。第二处理单元120可因此读取页条目A以确定存储于物理存储器位358A中的对应的物理存储器地址。在图3的实例中,条目A映射到物理存储器块334B。因此,物理存储器地址位358A存储存储器块334B的物理地址。第二属性位354A界定第二处理单元120在存取物理存储器块334B时的权限。举例来说,第二属性位356A的第一位可能确定第二处理单元120是否具有对存储器块334B的读取特权。第二属性位356A的第二位可能确定第二处理单元120是否具有对存储器块334B的写入特权。以此方式,即使第一处理单元110及第二处理单元120在存取相同页表中的相同页条目以将虚拟存储器地址翻译为物理存储器地址,第一处理单元110及第二处理单元120也可具有对相同存储器块的不同的特权,例如不同的读取及写入存取。
在另一实例中,在例如第一处理单元210或图2的第二处理单元220或第三处理单元240中的一者等处理单元需要存取系统存储器时,其可使用页表332以寻找用于虚拟存储器地址的对应物理存储器地址。在此实例中,第一属性位352A-N可界定第一处理单元210的权限,而第二属性位354A-N可界定第二处理单元220及第三处理单元240两者的权限。因此,在第二处理单元220需要存取存储器334的物理存储器块时,第二属性位354A-N界定第二处理单元220的权限。类似地,在第三处理单元240需要存取存储器334的物理存储器块时,第二属性位354A-N还界定第三处理单元240的权限。
图4展示说明本发明中描述的虚拟到物理映射技术的流程图。图4的技术可由使用两个或更多个处理单元的计算装置(例如图1的计算装置100或图2的计算装置200)执行。将参考计算装置100描述图4的技术,但应理解,图4的技术适用于广泛的计算装置且不仅受限于经配置为计算装置100的装置。
第一处理单元110经由MMU 112使用存储于存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址(410)。所述共用页表为第一处理单元110及第二处理单元120所共用且存储用于由应用存取的存储器块的虚拟存储器地址到物理存储器地址的映射。所述应用可在第一处理单元110及第二处理单元120两者上执行。所述共用页表包含第一处理单元110及第二处理单元120用以存取存储器块的页条目。所述页条目还包含界定存储器块的物理地址的物理地址位。
第一处理单元120存取由物理存储器地址识别的存储器块(420)。所述页条目包含界定第一处理单元对存储器块的可存取性的第一组属性位。第二处理单元120使用存储于所述存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址(430)。以此方式,第一处理单元110及第二处理单元120在将虚拟存储器地址翻译为物理存储器地址时存取相同的共用页表。第二处理单元120存取由物理存储器地址识别的存储器块(440)。所述页条目包含界定第二处理单元对相同存储器块的可存取性的第二组属性位。在此实例中,第一处理单元110及第二处理单元120在将特定虚拟存储器地址翻译为物理存储器地址时存取相同的页条目,但所述页条目可针对第一处理单元110及第二处理单元120具有单独的属性位。所述页条目还可包含界定第一处理单元110及第二处理单元120两者共用的属性的第三组属性位。
在图4的实例中,第一处理单元110可为CPU,且第二处理单元120可为GPU。第一组属性位可界定第一处理单元110是否具有对存储器块的写入存取权,且界定第一处理单元110是否具有对存储器块的读取存取权。第二组属性位可界定第二处理单元120是否具有对存储器块的写入存取权且界定第二处理单元120是否具有对存储器块的读取存取权。第一处理单元110对存储器块的可存取性可不同于第二处理单元120对存储器块的可存取性。举例来说,基于所述第一组属性,第一处理单元110可具有对存储器块的读取存取权及写入存取权,而基于第二组属性,第二处理单元120具有对存储器块的只读存取权。
第一处理单元110可包含第一MMU(例如,MMU 112),且第二处理单元120可包含第二MMU(例如,MMU 122)。第一MMU可经配置以存取共用页表,且第二MMU还可经配置以存取所述相同共用页表。
系统存储器26的实例包含但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用于以指令或数据结构的形式携载或存储所要的程序代码且可由计算机或处理器存取的任何其它媒体。在一些实例中,系统存储器26可被视为非暂时性存储媒体。术语“非暂时性”可指示存储媒体不体现于载波或传播信号中。然而,术语“非暂时性”不应解释为意指系统存储器26是不可移动的。作为一个实例,可从装置10移除系统存储器26,及将系统存储器26移动到另一装置。作为另一实例,实质上类似于系统存储器26的存储装置可插入到装置10中。在某些实例中,非暂时性存储媒体可存储可随时间改变的数据(例如,在RAM中)。
在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,则所述功能可以作为一或多个指令或代码在计算机可读媒体上存储或传输,并且由基于硬件的处理单元来执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体一般可对应于(1)非暂时性的有形计算机可读存储媒体或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码及/或数据结构的任何可用媒体。计算机程序产品可以包含计算机可读媒体。
举例来说而非限制,此类计算机可读存储媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储呈指令或数据结构的形式的所要的程序代码并且可由计算机存取的任何其它媒体。同样,任何连接可恰当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴电缆、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而是实际上针对于非暂时性有形存储媒体。如本文所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式重现数据,而光盘使用激光以光学方式重现数据。上述各者的组合也应包含在计算机可读媒体的范围内。
指令可以由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可以在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合编解码器中。并且,可将所述技术完全实施于一或多个电路或逻辑元件中。
本发明的技术可实施在广泛多种装置或设备中,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件及/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述各种实例。这些及其它实例在所附权利要求书的范围内。
Claims (24)
1.一种用于存储器地址映射的设备,其包括:
第一处理单元,其中所述第一处理单元包括中央处理单元CPU;
第二处理单元,其中所述第二处理单元包括图形处理单元GPU;及
存储器,其存储:
共用页表内的所述第一处理单元及所述第二处理单元用以存取存储器块的页条目,其中所述共用页表为所述第一处理单元及所述第二处理单元所共用且存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射,其中所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对相同存储器块的可存取性的第二组属性位及界定所述存储器内的所述存储器块的物理地址的物理地址位,其中如由所述第一组属性位界定的所述第一处理单元对所述存储器块的所述可存取性不同于如由所述第二组属性位界定的所述第二处理单元对所述存储器块的所述可存取性;
其中所述第一组属性位界定所述第一处理单元具有对所述存储器块的读取存取权及写入存取权,且其中所述第二组属性位界定所述第二处理单元具有对所述存储器块的只读存取权。
2.根据权利要求1所述的设备,其中所述页条目包括界定所述第一处理单元及所述第二处理单元两者所共用的属性的第三组属性位。
3.根据权利要求1所述的设备,其中所述第一处理单元包括第一存储器管理单元MMU且所述第二处理单元包括第二MMU,其中所述第一MMU经配置以存取所述共用页表且所述第二MMU经配置以存取所述共用页表。
4.根据权利要求1所述的设备,其进一步包括:
第一存储器管理单元MMU,其中所述第一处理单元包括所述第一MMU;
第三处理单元;
输入/输出MMU IOMMU,其中所述IOMMU由所述第二处理单元及所述第三处理单元共享;
其中所述第一MMU经配置以存取所述共用页表且所述IOMMU经配置以存取所述共用页表。
5.根据权利要求1所述的设备,其中所述应用在所述第一处理单元及所述第二处理单元两者上执行。
6.一种用于存储器地址映射的设备,其包括:
第一处理单元,其中所述第一处理单元包括中央处理单元CPU;
第二处理单元,其中所述第二处理单元包括图形处理单元GPU;及
存储器,其存储:
共用页表内的所述第一处理单元及所述第二处理单元用以存取存储器块的页条目,其中所述共用页表为所述第一处理单元及所述第二处理单元所共用且存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射,其中所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对相同存储器块的可存取性的第二组属性位及界定所述存储器内的所述存储器块的物理地址的物理地址位,其中如由所述第一组属性位界定的所述第一处理单元对所述存储器块的所述可存取性不同于如由所述第二组属性位界定的所述第二处理单元对所述存储器块的所述可存取性;
其中所述第一组属性位界定所述第一处理单元是否具有对所述存储器块的写入存取权,且界定所述第一处理单元是否具有对所述存储器块的读取存取权,且其中所述第二组属性位界定所述第二处理单元是否具有对所述存储器块的写入存取权且界定所述第二处理单元是否具有对所述存储器块的读取存取权。
7.一种用于存储器地址映射的方法,其包括:
由第一处理单元使用存储于存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址,其中所述第一处理单元包括中央处理单元CPU;
由所述第一处理单元存取由所述物理存储器地址识别的存储器块;
由第二处理单元使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址,其中所述第二处理单元包括图形处理单元GPU;
由所述第二处理单元存取由所述物理存储器地址识别的所述存储器块;
其中所述共用页表为所述第一处理单元及所述第二处理单元所共用,且存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射;且
其中所述共用页表包括所述第一处理单元及所述第二处理单元用以存取所述存储器块的页条目,其中所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对相同存储器块的可存取性的第二组属性位及界定所述存储器块的物理地址的物理地址位,其中如由所述第一组属性位界定的所述第一处理单元对所述存储器块的所述可存取性不同于如由所述第二组属性位界定的所述第二处理单元对所述存储器块的所述可存取性;且
其中基于所述第一组属性,所述第一处理单元具有对所述存储器块的读取存取权及写入存取权,且其中基于所述第二组属性,所述第二处理单元具有对所述存储器块的只读存取权。
8.根据权利要求7所述的方法,其中所述页条目包括界定所述第一处理单元及所述第二处理单元两者所共用的属性的第三组属性位。
9.根据权利要求7所述的方法,其中所述第一处理单元包括第一存储器管理单元MMU且所述第二处理单元包括第二MMU,其中所述第一MMU经配置以存取所述共用页表且所述第二MMU经配置以存取所述共用页表。
10.根据权利要求7所述的方法,其进一步包括:
由第三处理单元使用存储于所述存储器中的所述共用页表将第二虚拟存储器地址翻译为第二物理存储器地址;
由所述第三处理单元存取由所述第二物理存储器地址识别的存储器块;
其中所述第二处理单元及所述第三处理单元共享输入/输出MMU IOMMU,且其中所述IOMMU经配置以存取所述共用页表。
11.根据权利要求7所述的方法,其中所述应用在所述第一处理单元及所述第二处理单元两者上执行。
12.一种用于存储器地址映射的方法,其包括:
由第一处理单元使用存储于存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址,其中所述第一处理单元包括中央处理单元CPU;
由所述第一处理单元存取由所述物理存储器地址识别的存储器块;
由第二处理单元使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址,其中所述第二处理单元包括图形处理单元GPU;
由所述第二处理单元存取由所述物理存储器地址识别的所述存储器块;
其中所述共用页表为所述第一处理单元及所述第二处理单元所共用,且存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射;且
其中所述共用页表包括所述第一处理单元及所述第二处理单元用以存取所述存储器块的页条目,
其中所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对相同存储器块的可存取性的第二组属性位及界定所述存储器块的物理地址的物理地址位,
其中如由所述第一组属性位界定的所述第一处理单元对所述存储器块的所述可存取性不同于如由所述第二组属性位界定的所述第二处理单元对所述存储器块的所述可存取性;且
其中所述第一组属性位界定所述第一处理单元是否具有对所述存储器块的写入存取权,且界定所述第一处理单元是否具有对所述存储器块的读取存取权;而且,其中所述第二组属性位界定所述第二处理单元是否具有对所述存储器块的写入存取权,且界定所述第二处理单元是否具有对所述存储器块的读取存取权。
13.一种用于存储器地址映射的设备,其包括:
第一处理装置;
第二处理装置;
存储器;
其中所述第一处理装置包括
用于使用存储于所述存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址的第一装置;
用于存取由所述物理存储器地址识别的存储器块的第一装置,
其中所述第一处理装置包括中央处理单元CPU;
其中所述第二处理装置包括
用于使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址的第二装置;
用于存取由所述物理存储器地址识别的所述存储器块的第二装置,
其中所述第二处理装置包括图形处理单元GPU;
其中所述共用页表为所述第一处理装置及所述第二处理装置所共用且存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射;
其中所述共用页表包括所述第一处理装置及所述第二处理装置用以存取所述存储器块的页条目,其中所述页条目包括界定所述第一处理装置对所述存储器块的可存取性的第一组属性位、界定所述第二处理装置对相同存储器块的可存取性的第二组属性位及界定所述存储器块的物理地址的物理地址位,其中如由所述第一组属性位界定的第一处理单元对所述存储器块的所述可存取性不同于如由所述第二组属性位界定的第二处理单元对所述存储器块的所述可存取性;且
其中基于所述第一组属性,所述第一处理装置具有对所述存储器块的读取存取权及写入存取权,且其中基于所述第二组属性,所述第二处理装置具有对所述存储器块的只读存取权。
14.根据权利要求13所述的设备,其中所述页条目包括界定所述第一处理装置及所述第二处理装置两者所共用的属性的第三组属性位。
15.根据权利要求13所述的设备,其中所述第一处理装置包括第一存储器管理单元MMU且所述第二处理装置包括第二MMU,其中所述第一MMU经配置以存取所述共用页表且所述第二MMU经配置以存取所述共用页表。
16.根据权利要求13所述的设备,其进一步包括:
第三处理装置,其中所述第三处理装置包括
用于使用存储于所述存储器中的所述共用页表将第二虚拟存储器地址翻译为第二物理存储器地址的装置;
用于存取由所述第二物理存储器地址识别的所述存储器块的装置。
17.根据权利要求13所述的设备,其中所述应用在所述第一处理装置及所述第二处理装置两者上执行。
18.一种用于存储器地址映射的设备,其包括:
第一处理装置;
第二处理装置;
存储器;
其中所述第一处理装置包括
用于使用存储于所述存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址的第一装置;
用于存取由所述物理存储器地址识别的存储器块的第一装置,
其中所述第一处理装置包括中央处理单元CPU;
其中所述第二处理装置包括
用于使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址的第二装置;
用于存取由所述物理存储器地址识别的所述存储器块的第二装置,
其中所述第二处理装置包括图形处理单元GPU;
其中所述共用页表为所述第一处理装置及所述第二处理装置所共用且存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射;
其中所述共用页表包括所述第一处理装置及所述第二处理装置用以存取所述存储器块的页条目,
其中所述页条目包括界定所述第一处理装置对所述存储器块的可存取性的第一组属性位、界定所述第二处理装置对相同存储器块的可存取性的第二组属性位及界定所述存储器块的物理地址的物理地址位,
其中如由所述第一组属性位界定的第一处理单元对所述存储器块的所述可存取性不同于如由所述第二组属性位界定的第二处理单元对所述存储器块的所述可存取性;且
其中所述第一组属性位界定所述第一处理装置是否具有对所述存储器块的写入存取权,且界定所述第一处理装置是否具有对所述存储器块的读取存取权;而且,其中所述第二组属性位界定所述第二处理装置是否具有对所述存储器块的写入存取权,且界定所述第二处理装置是否具有对所述存储器块的读取存取权。
19.一种用于存储器地址映射的设备,其包括:
用于由第一处理单元使用存储于存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址的装置,其中所述第一处理单元包括中央处理单元CPU;
用于由所述第一处理单元存取由所述物理存储器地址识别的存储器块的装置;
用于由第二处理单元使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址的装置,其中所述第二处理单元包括图形处理单元GPU;
用于由所述第二处理单元存取由所述物理存储器地址识别的所述存储器块的装置;
其中所述共用页表为所述第一处理单元及所述第二处理单元所共用且存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射;
其中所述共用页表包括所述第一处理单元及所述第二处理单元用以存取所述存储器块的页条目,其中所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对相同存储器块的可存取性的第二组属性位及界定所述存储器块的物理地址的物理地址位,其中如由所述第一组属性位界定的所述第一处理单元对所述存储器块的所述可存取性不同于如由所述第二组属性位界定的所述第二处理单元对所述存储器块的所述可存取性;且
其中基于所述第一组属性,所述第一处理单元具有对所述存储器块的读取存取权及写入存取权,且其中基于所述第二组属性,所述第二处理单元具有对所述存储器块的只读存取权。
20.根据权利要求19所述的设备,其中所述页条目包括界定所述第一处理单元及所述第二处理单元两者所共用的属性的第三组属性位。
21.根据权利要求19所述的设备,其中所述第一处理单元包括第一存储器管理单元MMU且所述第二处理单元包括第二MMU,其中所述第一MMU经配置以存取所述共用页表且所述第二MMU经配置以存取所述共用页表。
22.根据权利要求19所述的设备,其进一步包括:
用于由第三处理单元使用存储于所述存储器中的所述共用页表将第二虚拟存储器地址翻译为第二物理存储器地址的装置;
用于由所述第三处理单元存取由所述第二物理存储器地址识别的存储器块的装置;
其中所述第二处理单元及所述第三处理单元共享输入/输出MMU IOMMU,且其中所述IOMMU经配置以存取所述共用页表。
23.根据权利要求19所述的设备,其中所述应用在所述第一处理单元及所述第二处理单元两者上执行。
24.一种用于存储器地址映射的设备,其包括:
用于由第一处理单元使用存储于存储器中的共用页表将虚拟存储器地址翻译为物理存储器地址的装置,其中所述第一处理单元包括中央处理单元CPU;
用于由所述第一处理单元存取由所述物理存储器地址识别的存储器块的装置;
用于由第二处理单元使用存储于所述存储器中的所述共用页表将所述虚拟存储器地址翻译为所述物理存储器地址的装置,其中所述第二处理单元包括图形处理单元GPU;
用于由所述第二处理单元存取由所述物理存储器地址识别的所述存储器块的装置;
其中所述共用页表为所述第一处理单元及所述第二处理单元所共用且存储用于由应用的工作存取的存储器块的虚拟存储器地址到物理存储器地址的映射;
其中所述共用页表包括所述第一处理单元及所述第二处理单元用以存取所述存储器块的页条目,
其中所述页条目包括界定所述第一处理单元对所述存储器块的可存取性的第一组属性位、界定所述第二处理单元对相同存储器块的可存取性的第二组属性位及界定所述存储器块的物理地址的物理地址位,
其中如由所述第一组属性位界定的所述第一处理单元对所述存储器块的所述可存取性不同于如由所述第二组属性位界定的所述第二处理单元对所述存储器块的所述可存取性;且
其中所述第一组属性位界定所述第一处理单元是否具有对所述存储器块的写入存取权,且界定所述第一处理单元是否具有对所述存储器块的读取存取权;而且,其中所述第二组属性位界定所述第二处理单元是否具有对所述存储器块的写入存取权,且界定所述第二处理单元是否具有对所述存储器块的读取存取权。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/565,434 US8938602B2 (en) | 2012-08-02 | 2012-08-02 | Multiple sets of attribute fields within a single page table entry |
US13/565,434 | 2012-08-02 | ||
PCT/US2013/051069 WO2014022110A1 (en) | 2012-08-02 | 2013-07-18 | Multiple sets of attribute fields within a single page table entry |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104508641A CN104508641A (zh) | 2015-04-08 |
CN104508641B true CN104508641B (zh) | 2016-11-30 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169760A (zh) * | 2006-10-26 | 2008-04-30 | 北京华旗资讯数码科技有限公司 | 电子硬盘的存储空间的管理方法 |
CN101192195A (zh) * | 2006-11-22 | 2008-06-04 | 北京华旗资讯数码科技有限公司 | 电子硬盘的存储空间的分组管理方法 |
CN101286144A (zh) * | 2007-04-11 | 2008-10-15 | 三星电子株式会社 | 多路径可存取半导体存储器设备 |
CN101493755A (zh) * | 2009-02-27 | 2009-07-29 | 武汉中岩科技有限公司 | 一种同时读写存储器的方法及数据采集装置 |
CN102067092A (zh) * | 2008-06-26 | 2011-05-18 | 高通股份有限公司 | 存储器管理单元引导的对系统接口的接入 |
CN102103567A (zh) * | 2009-12-21 | 2011-06-22 | 英特尔公司 | 在异构处理器之间共享基于虚拟存储器的多版本数据 |
CN102375947A (zh) * | 2010-08-16 | 2012-03-14 | 伊姆西公司 | 用于隔离计算环境的方法和系统 |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169760A (zh) * | 2006-10-26 | 2008-04-30 | 北京华旗资讯数码科技有限公司 | 电子硬盘的存储空间的管理方法 |
CN101192195A (zh) * | 2006-11-22 | 2008-06-04 | 北京华旗资讯数码科技有限公司 | 电子硬盘的存储空间的分组管理方法 |
CN101286144A (zh) * | 2007-04-11 | 2008-10-15 | 三星电子株式会社 | 多路径可存取半导体存储器设备 |
CN102067092A (zh) * | 2008-06-26 | 2011-05-18 | 高通股份有限公司 | 存储器管理单元引导的对系统接口的接入 |
CN101493755A (zh) * | 2009-02-27 | 2009-07-29 | 武汉中岩科技有限公司 | 一种同时读写存储器的方法及数据采集装置 |
CN102103567A (zh) * | 2009-12-21 | 2011-06-22 | 英特尔公司 | 在异构处理器之间共享基于虚拟存储器的多版本数据 |
CN102375947A (zh) * | 2010-08-16 | 2012-03-14 | 伊姆西公司 | 用于隔离计算环境的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105164653B (zh) | 属性字段的多核页表集合 | |
US9785571B2 (en) | Methods and systems for memory de-duplication | |
JP6728419B2 (ja) | 単一のページテーブルエントリ内の複数のセットの属性フィールド | |
CN104133780B (zh) | 一种跨页预取方法、装置及系统 | |
CN105283855B (zh) | 一种寻址方法及装置 | |
TWI606340B (zh) | 用於資料快取之方法、電腦可讀取儲存媒體及系統 | |
US20090031142A1 (en) | System, Method and Computer Program Product for Processing a Memory Page | |
CN107562515A (zh) | 一种在虚拟化技术中管理内存的方法 | |
CN105393229A (zh) | 虚拟机中的页面错误注入使得经换出的存储器页面映射到虚拟机虚拟化存储器中 | |
CN103218312A (zh) | 文件访问方法及系统 | |
KR102354848B1 (ko) | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 | |
CN110235101A (zh) | 可变转换后备缓冲器(tlb)编索引 | |
CN107408132A (zh) | 在列存储中的插入和点查询操作的有效性能 | |
US9965827B2 (en) | Graphics processing system for and method of storing and querying vertex attribute data in a cache | |
CN103294407B (zh) | 存储装置和数据读写方法 | |
CN109947669A (zh) | Kv存储设备的地址转换方法与系统 | |
CN107451271A (zh) | 一种哈希表处理方法、装置、设备及存储介质 | |
CN104508641B (zh) | 单页表条目内的多组属性字段 | |
US20160170897A1 (en) | Data storage based on memory persistency | |
US20140289468A1 (en) | Lightweight primary cache replacement scheme using associated cache | |
CN106295413A (zh) | 半导体装置 | |
US11372756B2 (en) | Memory pool management | |
CN101470668B (zh) | 一种计算机及计算机上配置高速缓存控制策略的方法 | |
Jeong et al. | Cache scheme of shared‐buffer mappings for energy‐efficiency of mobile devices | |
US20160283386A1 (en) | Sequential access of cache data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |