Systems and methods for managing virtual memory page sharing in various aspects of the application. A processor or a memory management unit may set an indication that a virtual memory page cannot be shared with an external domain processor in a page table. The processor or memory management unit can monitor when the external domain processor attempts to access the virtual memory page or when it attempts to access the virtual memory page. In response to an external domain processor attempting to access the virtual memory page, the processor can perform a virtual memory page operation on the virtual memory page.
【技术实现步骤摘要】
【国外来华专利技术】相关申请本申请要求于2014年7月18日提交的题为“On-DemandShareabilityConversionInAHeterogeneousSharedVirtualMemory”的美国临时申请No.62/026,319的优先权的权益,其全部内容通过引用并入本文。
技术介绍
在异构共享架构(HSA)中,共享虚拟存储器(SVM)是允许多于一个处理器访问虚拟存储器位置的存储器管理的方法。使用共享虚拟存储器,来自运行在一个处理器(例如中央处理器单元(CPU))上的应用的单进程虚拟地址空间可以跨越运行在另一处理器(例如图形处理器单元(GPU)或数字信号处理器(DSP))上的其他线程或内核而被共享。各个处理器可以针对每个应用来共享单个页表(pagetable)以便进行虚拟到物理地址的转换,这是比为每个处理器复制页表更有效的方法。在全存储器共享虚拟存储器中,在将存储器分配给线程或内核时,不太可能确定数据是否将与多于一个处理器共享。这可能导致所有的用户应用存储器被标记为可共享用于异构计算。为了保持存储器一致性,被标记为可共享的存储器与探听(snoop)活动相关联,该探听活动随着被标记为可共享的存储量的增加而增加。然而,将所有的用户存储器标记为可共享是低效的,因为在实践中在线程之间实际共享少得多的存储量。
技术实现思路
各个方面包括通过更好地管理虚拟存储器页共享性来提高计算设备的性能和功能的方法,其可以包括:在页表中设置虚拟存储器页不能与外部域处理器共享的指示;监视所述外部域处理器访问所述虚拟存储器页的尝试;以及响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作。在一 ...
【技术保护点】
一种管理虚拟存储器页共享性的方法,包括:在页表中设置虚拟存储器页不能与外部域处理器共享的指示;监视所述外部域处理器访问所述虚拟存储器页的尝试;以及响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作。
【技术特征摘要】
【国外来华专利技术】2014.07.18 US 62/026,319;2014.10.09 US 14/510,8041.一种管理虚拟存储器页共享性的方法,包括:在页表中设置虚拟存储器页不能与外部域处理器共享的指示;监视所述外部域处理器访问所述虚拟存储器页的尝试;以及响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作。2.根据权利要求1所述的方法,其中,响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作包括对所述虚拟存储器页执行虚拟存储器页操作。3.根据权利要求2所述的方法,其中,对所述虚拟存储器页执行虚拟存储器页操作包括改变所述页表中的所述指示以指示所述虚拟存储器页能与所述外部域处理器共享。4.根据权利要求3所述的方法,其中:在页表中设置虚拟存储器页不能与外部域处理器共享的指示包括在所述页表的现有页表字段中设置所述虚拟存储器页不能与所述外部域处理器共享的所述指示;以及改变所述页表中的所述指示以指示所述虚拟存储器页能与所述外部域处理器共享包括改变所述页表的所述现有页表字段中的所述指示。5.根据权利要求4所述的方法,其中:在所述页表的现有页表字段中设置所述虚拟存储器页不能与所述外部域处理器共享的所述指示包括设置所述页表的所述页表字段中的至少一个现有位,所述至少一个现有位指示所述虚拟存储器页不能与所述外部域处理器共享;以及改变所述页表的所述现有页表字段中的所述指示包括改变所述页表的所述页表字段的所述至少一个现有位,所述至少一个现有位指示所述虚拟存储器页能与所述外部域处理器共享。6.根据权利要求3所述的方法,还包括响应于所述外部域处理器访问所述虚拟存储器页的尝试而生成中断,其中,改变所述页表中的所述指示以指示所述虚拟存储器页能与所述外部域处理器共享包括基于所述中断来改变所述页表中的所述指示。7.根据权利要求2所述的方法,其中,对所述虚拟存储器页执行虚拟存储器页操作包括确定针对所述虚拟存储器页的访问许可以指示所述外部域处理器是否能访问所述虚拟存储器页。8.根据权利要求7所述的方法,还包括响应于所述外部域处理器访问所述虚拟存储器页的尝试而生成中断,其中,确定针对所述虚拟存储器页的所述访问许可以指示所述外部域处理器是否能访问所述虚拟存储器页是基于所述中断的。9.根据权利要求8所述的方法,其中,确定针对所述虚拟存储器页的所述访问许可还包括进行以下各项中的至少一项:将所述中断转换成许可违规、停止在所述外部域处理器上执行的指令、以及改变所述虚拟存储器页的所述访问许可。10.根据权利要求2所述的方法,其中,对所述虚拟存储器页执行虚拟存储器页操作包括基于对所述虚拟存储器页的尝试访问来生成针对所述虚拟存储器页的调试信息。11.根据权利要求2所述的方法,其中,对所述虚拟存储器页执行虚拟存储器页操作包括基于对所述虚拟存储器页的尝试访问来执行针对所述虚拟存储器页的管理操作。12.根据权利要求11所述的方法,其中,针对所述虚拟存储器页的所述管理操作包括以下操作中的至少一项:确定是否固定所述虚拟存储器页、以及确定是否将所述虚拟存储器页移动至不同访问速率的存储器位置。13.根据权利要求1所述的方法,其中,响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作包括响应于所述外部域处理器访问所述虚拟存储器页的尝试来触发页错误。14.根据权利要求13所述的方法,其中,响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作包括使存储器管理单元停止继续处理存储器操作。15.根据权利要求13所述的方法,其中,响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作包括停止所述外部域处理器的至少一部分。16.根据权利要求13所述的方法,其中,响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作包括使所述外部域处理器执行上下文切换操作。17.根据权利要求13所述的方法,其中,响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作包括使存储器管理单元利用特定策略来生成对所述外部域处理器的进一步数据响应。18.根据权利要求17所述的方法,其中,所述特定策略包括以下中的一项:针对读取返回零值、以及忽略写入。19.根据权利要求13所述的方法,还包括通知主处理器所述页错误。20.根据权利要求19所述的方法,其中,通知主处理器包括触发对主OS处理器的中断。21.根据权利要求19所述的方法,其中,通知主处理器包括在存储器中写入值。22.根据权利要求19所述的方法,其中,通知主处理器包括在寄存器中写入值。23.一种计算设备,包括:用于在页表中设置虚拟存储器页不能与外部域处理器共享的指示的单元;用于监视所述外部域处理器访问所述虚拟存储器页的尝试的单元;以及用于响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作的单元。24.根据权利要求23所述的计算设备,其中,用于响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作的单元包括用于对所述虚拟存储器页执行虚拟存储器页操作的单元。25.根据权利要求24所述的计算设备,其中,用于对所述虚拟存储器页执行虚拟存储器页操作的单元包括用于改变所述页表中的所述指示以指示所述虚拟存储器页能与所述外部域处理器共享的单元。26.根据权利要求25所述的计算设备,其中:用于在页表中设置虚拟存储器页不能与外部域处理器共享的指示的单元包括用于在所述页表的现有页表字段中设置所述虚拟存储器页不能与所述外部域处理器共享的所述指示的单元;以及用于改变所述页表中的所述指示以指示所述虚拟存储器页能与所述外部域处理器共享的单元包括用于改变所述页表的所述现有页表字段中的所述指示的单元。27.根据权利要求26所述的计算设备,其中:用于在所述页表的现有页表字段中设置所述虚拟存储器页不能与所述外部域处理器共享的所述指示的单元包括用于设置所述页表的所述页表字段中的至少一个现有位的单元,所述至少一个现有位指示所述虚拟存储器页不能与所述外部域处理器共享;以及用于改变所述页表的所述现有页表字段中的所述指示的单元包括用于改变所述页表的所述页表字段的所述至少一个现有位的单元,所述至少一个现有位指示所述虚拟存储器页能与所述外部域处理器共享。28.根据权利要求25所述的计算设备,还包括用于响应于所述外部域处理器访问所述虚拟存储器页的尝试而生成中断的单元,其中,用于改变所述页表中的所述指示以指示所述虚拟存储器页能与所述外部域处理器共享的单元包括用于基于所述中断来改变所述页表中的所述指示的单元。29.根据权利要求24所述的计算设备,其中,用于对所述虚拟存储器页执行虚拟存储器页操作的单元包括用于确定针对所述虚拟存储器页的访问许可以指示所述外部域处理器是否能访问所述虚拟存储器页的单元。30.根据权利要求29所述的计算设备,还包括用于响应于所述外部域处理器访问所述虚拟存储器页的尝试而生成中断的单元,其中,确定针对所述虚拟存储器页的所述访问许可以指示所述外部域处理器是否能访问所述虚拟存储器页是基于所述中断的。31.根据权利要求30所述的计算设备,其中,用于确定针对所述虚拟存储器页的所述访问许可的单元还包括进行以下各项中的至少一项:用于将所述中断转换成许可违规的单元、用于停止在所述外部域处理器上执行的指令的单元、以及用于改变所述虚拟存储器页的所述访问许可的单元。32.根据权利要求24所述的计算设备,其中,用于对所述虚拟存储器页执行虚拟存储器页操作的单元包括用于基于对所述虚拟存储器页的尝试访问来生成针对所述虚拟存储器页的调试信息的单元。33.根据权利要求24所述的计算设备,其中,用于对所述虚拟存储器页执行虚拟存储器页操作的单元包括用于基于对所述虚拟存储器页的尝试访问来执行针对所述虚拟存储器页的管理操作的单元。34.根据权利要求33所述的计算设备,其中,针对所述虚拟存储器页的所述管理操作包括以下操作中的至少一项:确定是否固定所述虚拟存储器页、以及确定是否将所述虚拟存储器页移动至不同访问速率的存储器位置。35.根据权利要求23所述的计算设备,其中,用于响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作的单元包括用于响应于所述外部域处理器访问所述虚拟存储器页的尝试来触发页错误的单元。36.根据权利要求35所述的计算设备,其中,用于响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作的单元包括用于使存储器管理单元停止继续处理存储器操作的单元。37.根据权利要求35所述的计算设备,其中,用于响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作的单元包括用于停止所述外部域处理器的至少一部分的单元。38.根据权利要求35所述的计算设备,其中,用于响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作的单元包括用于使所述外部域处理器执行上下文切换操作的单元。39.根据权利要求35所述的计算设备,其中,用于响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作的单元包括用于使存储器管理单元利用特定策略来生成对所述外部域处理器的进一步数据响应的单元。40.根据权利要求39所述的计算设备,其中,所述特定策略包括以下中的一项:针对读取返回零值、以及忽略写入。41.根据权利要求35所述的计算设备,还包括用于通知主处理器所述页错误的单元。42.根据权利要求41所述的计算设备,其中,用于通知主处理器的单元包括用于触发对主OS处理器的中断的单元。43.根据权利要求41所述的计算设备,其中,用于通知主处理器的单元包括用于在存储器中写入值的单元。44.根据权利要求41所述的计算设备,其中,用于通知主处理器的单元包括用于在寄存器中写入值的单元。45.一种计算设备,包括:处理器,其被配置具有处理器可执行指令以执行操作,所述操作包括:在页表中设置虚拟存储器页不能与外部域处理器共享的指示;监视所述外部域处理器访问所述虚拟存储器页的尝试;以及响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作。46.根据权利要求45所述的计算设备,其中,所述处理器被配置具有处理器可执行指令以执行操作,使得响应于所述外部域处理器访问所述虚拟存储器页的尝试来执行操作包括对所述虚拟存储器页执行虚拟存储器页操作。47.根据权利要求46所述的计算设备,其中,所述处理器被配置具有处理器可执行指令以执行操作,使得对所述虚拟存储器页执行虚拟存储器页操作包括改变所述页表中的所述指示以指示所述虚拟存储器页能与所述外部域处理器共享。48.根据权利要求47所述的计算设备,其中,所述处理器被配置具有处理器可执行指令以执行操作,使得:在页表中设置虚拟存储器页不能与外部域处理器共享的指示包括在所述页表的现有页表字段中设置所述虚拟存储器页不能与所述外部域处理器共享的所述指示;以及改变所述页表中的所述指示以指示所述虚拟存储器页能与所述外部域处理器共享包括改变所述页表的所述现有页表字段中的所述指示。49.根据权利要求48所述的计算设备,其中,所述处理器被配置具有处理器可执行指令以执行操作,使得...
【专利技术属性】
技术研发人员:B·雷赫利克,J·E·波戴马,A·E·格鲁贝尔,T·R·曾,Z·马,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。