掌桥专利:专业的专利平台
掌桥专利
首页

虚拟地址到物理地址的转换

文献发布时间:2023-06-19 09:36:59


虚拟地址到物理地址的转换

本专利申请要求于2018年4月26日提交的标题为“虚拟地址到物理地址的转换(TRANSLATION OF VIRTUAL ADDRESSES TO PHYSICAL ADDRESSES)”的非临时申请号15/964,061的优先权,该申请已转让给其受让人,并且在此明确地通过引用并入本文。

本公开的方面大体上涉及缓存存储器,更具体地涉及虚拟地址到物理地址的转换。

一种设备可以包括处理系统,该处理系统包括一个或多个中央处理单元(CPU)、虚拟存储器管理单元(MMU)和转换后备缓冲器(TLB)。处理系统可以与物理存储器系统通信,例如随机存取存储器(RAM)。将每个虚拟地址映射到与该物理存储器系统相关联的物理地址的至少一个页表在物理存储器系统中。

使用该映射,MMU可以将任何虚拟地址转换为物理地址。可以在物理存储器系统中提供基本上完整的映射,而TLB可以包括较小的转换子集(通常对应于高度重要或频繁使用/最近使用的虚拟地址)。TLB比物理存储器系统小,并且因此可以更快地搜索。

物理存储器系统具有有限的容量。因此,经常需要更新在TLB和页表中的地址映射。在达到物理存储器系统的容量后请求新数据时,那么必须用包括所请求的新数据的页面覆盖在物理存储器系统内的旧页面。指向要覆盖的页面的任何转换(无论是在TLB中还是在页表中)都必须无效。

偶尔,出现以下情况,其中特定的转换在所指定的虚拟地址的转换正位于页表中的处理中的同时在TLB中无效。根据常规方法,将虚拟地址标记为无效,并且完成虚拟地址的转换。然后在转换和无效完成时通知处理系统。仅在接收到通知之后,处理系统才可以继续进行特定处理。

如上面所提到的,页表的搜索可以是耗时的。因此,在上述情况下,要求处理系统花费时间等待通知。因此,处理系统无法继续进行其他处理,并且设备操作速度更慢。因此,需要新技术来快速转换和重新映射虚拟地址。

发明内容

以下发明内容是仅被提供以帮助描述本公开的各个方面的概述,并且仅被提供用于这些方面的说明而不是对其进行限制。

根据本公开的各个方面,公开了一种存储器管理单元(MMU)。MMU可以被配置为:从处理系统接收转换请求,其中转换请求指定要被转换的虚拟地址;在存储在物理存储器系统中的页表中搜索指定虚拟地址的页表条目;从处理系统接收转换后备缓冲器无效(TLBI)信号,其中TLBI信号指定虚拟地址;响应于接收到指定虚拟地址的TLBI信号,使TLB中的转换后备缓冲器(TLB)条目无效,其中无效的TLB条目指定虚拟地址;以及重启在页表中指定虚拟地址的页表条目的搜索。

根据本公开的其他方面,公开了一种方法。该方法可以包括:在存储器管理单元(MMU)处从处理系统接收转换请求,其中转换请求指定要被转换的虚拟地址;在存储在物理存储器系统中的页表中搜索指定虚拟地址的页表条目;从处理系统接收转换后备缓冲器无效(TLBI)信号,其中TLBI信号指定虚拟地址;响应于接收到指定虚拟地址的TLBI信号,使TLB中的转换后备缓冲器(TLB)条目无效,其中无效的TLB条目指定虚拟地址;以及重启页表中指定虚拟地址的页表条目的搜索。

根据本公开的其他方面,公开了一种装置。该装置可以包括:用于在存储器管理单元(MMU)处从处理系统接收转换请求的部件,其中转换请求指定要被转换的虚拟地址;用于在存储在物理存储器系统中的页表中搜索指定虚拟地址的页表条目的部件;用于从处理系统接收转换后备缓冲器无效(TLBI)信号的部件,其中TLBI信号指定虚拟地址;用于使TLB中的转换后备缓冲器(TLB)条目无效的部件,其中响应于接收到指定虚拟地址的TLBI信号,无效的TLB条目指定虚拟地址;以及用于响应于接收到指定虚拟地址的TLBI信号来重启页表中页表条目的搜索的部件。

附图说明

附图被呈现以帮助描述本公开的各个方面,并且仅被提供用于这些方面的说明而不是对其进行限制。

图1大体上图示了根据本公开的各个方面的用于执行虚拟地址到物理地址的转换和映射的系统。

图2大体上图示了用于重启在页表中搜索包括与TLBI相关联的虚拟地址的条目的方法。

图3大体上图示了信号流程图,其示出了根据常规方法的信号交换。

图4大体上图示了信号流程图,其示出了由根据本公开的各个方面的图1的系统的各个组件执行的信号交换。

图5大体上图示了根据本公开的各个方面的用于基于LEAF指示符来重启和/或重取转换的方法。

图6大体上图示了一种方法,该方法是图5所描绘的确定是否完全重启的示例实施方式。

图7大体上图示了一种方法,该方法是图5所描绘的确定是否重取的示例实施方式。

图8大体上图示了可以有利地采用本公开的一个方面的示例性电子设备。

具体实施方式

图1大体上图示了根据本公开的方面的用于执行虚拟地址到物理地址的转换和映射的系统100。

系统100包括处理系统110和物理存储器系统150。处理系统110可以包括一个或多个中央处理器(CPU)120、存储器管理单元(MMU)130和转换后备缓冲器(TLB)140。处理器互连123可以将CPU 120耦合至MMU 130。MMU 130可以经由TLB路径134耦合至TLB 140。物理存储器系统150可以包括物理存储器160和页表170。物理存储器系统150可以是例如随机存取存储器(RAM)。MMU 130可以经由物理存储器互连135耦合至物理存储器系统150。

页表170将由处理系统110使用的每个虚拟地址映射到与物理存储器系统150相关联的对应物理地址。该物理地址可以位于物理存储器系统150、硬盘驱动程序(未示出)或一些其他存储组件中。当处理系统110需要数据时,CPU 120可以将所请求的数据的虚拟地址发送给MMU 130。MMU 130可以与TLB 140和/或物理存储器系统150合作执行转换,然后将对应的物理地址返回给CPU 120。

为了执行转换,MMU 130首先检查TLB 140以确定所请求数据的虚拟地址是否与关联于TLB条目的一个TLB条目的虚拟地址匹配。如果在所请求的虚拟地址与在特定的TLB条目中的虚拟地址之间存在匹配,则处理系统检查TLB条目以确定是否设置了有效位。如果该条目有效,那么TLB条目包括虚拟地址的有效转换。因此,对应的物理地址可以被非常快速地返回给MMU,从而完成转换。使用转换后的物理地址,处理系统110可以取回所请求的数据。

如果MMU 130确定所请求数据的虚拟地址与关联于TLB条目的一个TLB条目的虚拟地址不匹配(或者如果匹配的TLB条目被标记为无效),那么MMU 130遍历在物理存储器系统150中的页表170,直到找到匹配的虚拟地址为止。

每个转换可以按级别执行。例如,MMU 130可以遍历页表170中的第一页表以搜索匹配。在第一页表中找到的匹配条目可以包括物理地址的前数个位,并且在页表170中的第二页表中可以找到附加位的指示。然后,MMU 130可以存储第一数个位并且遍历第二页表以搜索匹配。如上面所提到的,匹配条目可以包括物理地址的接下来的数个位,并且如果匹配条目包括可以在页表170的第三页表中找到附加位的指示,则该处理重复。该处理可以重复,直到匹配条目指示已达到转换的最后一级。最后一级可以是例如最近达到的级别。一旦完成转换的最后一级,MMU 130就应该具有完整物理地址的完整转换。

如果在所请求的虚拟地址与特定页表条目中的虚拟地址之间存在匹配,则处理系统110从页表条目取回物理地址。一旦找到,则物理地址被返回给MMU 130。然而,使用页表170来执行转换可能比使用TLB 140要慢得多。TLB 140小于物理存储器系统150并且不像物理存储器系统150那样远程。因此,可以更快速地搜索TLB 140。TLB 140通常复制位于页表170中的转换的子集。复制的转换通常与最重要、最频繁使用和/或最近使用的虚拟地址相关联。

通常需要更新在TLB 140和页表170中的地址映射。物理存储器系统150可以具有有限的容量。在达到物理存储器系统150的容量后请求新数据时,必须用所请求的新数据覆盖在物理存储器系统150内的一些页面。一旦覆盖已经开展和/或完成,则必须更新虚拟地址到物理地址的映射,以反映出被覆盖数据不再位于其先前的物理地址中的事实。

为了使TLB 140中的副本无效,CPU 120可以向MMU 130发送TLB无效符(TLBI)。如果在TLBI中指定的虚拟地址与在TLB 140中的TLB条目匹配,那么该TLB条目被标记为无效,并且在用有效转换重写(并标记为有效)之前,该TLB将不会用于转换。

图2大体上图示了用于重启在页表中搜索包括与TLBI相关联的虚拟地址的条目的方法200。方法200将在下面描述,正如它将由图1所描绘的MMU 130执行。然而,将理解的是,方法200可以由任何合适的设备执行。

在210中,MMU 130接收指定要转换的虚拟地址的转换请求。因此,MMU 130可以构成用于接收指定要转换的虚拟地址的转换请求的部件。可以从例如CPU 120接收该转换请求。

在220中,MMU 130在页表(例如一个或多个页表170)中搜索包括指定虚拟地址(在210处接收到)的页表条目。在220处的搜索可以与物理存储器系统150合作执行。因此,MMU130和/或物理存储器系统150可以构成用于在一个或多个页表中搜索包括在转换请求中指定的虚拟地址的页表条目的部件。

在230处,MMU 130接收TLBI信号,该TLBI信号指示将使在210中指定的虚拟地址无效。因此,MMU 130可以构成用于接收TLBI信号的部件,该TLBI信号指定将使所指定的虚拟地址无效。

在240处,MMU 130可选地丢弃与虚拟地址的转换相关联的一个或多个被转换位。因此,MMU 130可以构成用于丢弃与虚拟地址的转换相关联的一个或多个被转换位的部件。在一些场景中,可能不存在任何被转换位,在这种情况下,可以省略在240处的丢弃。

在250处,MMU 130使在TLB(例如TLB 140)中的TLB条目无效,其中被无效的TLB条目指定虚拟地址(即,在210和230中被指定的相同虚拟地址)。因此,MMU 130可以构成用于使在TLB中的TLB条目无效的部件,其中被无效的TLB条目指定虚拟地址。

在260处,MMU 130重启在页表中搜索所指定的虚拟地址。可以与物理存储器系统150合作执行260处的重启。因此,MMU 130和/或物理存储器系统150可以构成用于重启页表的搜索的部件。

如下面将更详细地讨论的,在一些场景中,MMU 130可以通过丢弃所有被转换位并且从第一级的转换重新开始来执行完全重启。在其他场景中,MMU 130可以通过丢弃一部分被转换位(例如仅与最近的转换级别相关联的位)并且替换它们来执行重取。如本文所使用的,重启可以是涵盖完全重启或重取的通用术语。

图2所描绘的功能性可以以与本文的教导一致的各种方式来实现。在一些设计中,功能性可以被实现为一个或多个电气组件。在一些设计中,功能性可以被实现为包括一个或多个处理器组件的处理系统。在一些设计中,可以使用例如一个或多个集成电路(例如ASIC)的至少一部分来实现功能性。如本文所讨论的,集成电路可以包括处理器、软件、其他相关组件或其任何组合。因此,不同模块的功能性可以实施为例如集成电路的不同子集、软件模块集合的不同子集或其组合。而且,要了解的是,给定的子集(例如集成电路和/或软件模块集合的子集)可以为多于一个的模块提供功能性的至少一部分。

另外,图2所描绘的功能性以及本文描述的其他组件和功能可以使用任何合适的部件来实现。还可以至少部分地使用本文所教导的对应结构来实现这种部件。上述组件还可以对应于类似指派的“用于...的代码”功能性。因此,在一些方面中,可以使用以下一项或多项来实现一个或多个这样的部件:处理器组件、集成电路或本文所教导的其他合适结构。

图3大体上图示了信号流程图300,其示出了根据常规方法的信号交换。信号流程图300示出了在常规CPU、常规MMU和常规物理存储器系统之间交换的信号。

在310处,CPU向MMU发送请求,以请求将所指定的虚拟地址转换为对应的物理地址。

在320处,MMU在常规TLB中搜索所指定的虚拟地址。在322处,MMU确定虚拟地址是否在TLB中。在本示例中,虚拟地址不在TLB中(在322中为‘否’)。结果,MMU触发对物理存储器系统(特别是其一个或多个页表)的搜索。

在330处,物理存储器系统在页表中搜索所指定的虚拟地址。页表的搜索有时可以称为“页面漫游”。页面漫游可以需要一些时间才能完成,并且可以继续进行,直到物理存储器系统找到包括所指定的虚拟地址的页表条目为止。在332处,物理存储器系统将对应的物理地址返回给MMU。

然而,在由物理存储器系统执行332处的返回之前(即,在页面漫游之前或期间),一个或多个CPU可以使一个或多个转换无效。

在340处,CPU可以传输一个或多个TLBI,一个或多个TLBI指定与在310处的请求中指定的虚拟地址相同的虚拟地址。在342处,在传输一个或多个TLBI之后,CPU可以将同步请求(SYNC-REQ)传输给MMU。

在350处,在接收到一个或多个TLBI和SYNC-REQ之后,MMU等待所指定的虚拟地址的转换。MMU可以等待页面漫游的持续时间。

在360处,在从物理存储器系统接收到对应的物理地址之后,MMU确定转换是否与一个或多个TLBI中的一个TLBI匹配。在本示例中,正在转换的虚拟地址与无效的虚拟地址相同(在360中为‘是’)。因此,MMU确定在332处返回的转换与在340处接收到的一个或多个TLBI中的一个TLBI之间存在匹配,并且进行到370。

在370处,响应于确定对应的物理地址与在TLBI中指定的虚拟地址相关联,MMU丢弃对应的物理地址。在372处,MMU确定是否所有转换(即,与TLBI中指定的虚拟地址匹配的所有转换和/或在接收到TLBI时在物理存储器系统中待处理的所有转换)已经由物理存储器系统返回并且由MMU丢弃。如果MMU确定尚未返回并且丢弃转换(在372中为‘否’),那么MMU返回到350,并且等待下一转换。如果MMU确定所有转换均已返回并且被丢弃(在372中为‘是’),那么MMU进行到380。

在380处,MMU向CPU传输同步确认(SYNC-ACK)。SYNC-ACK可以向CPU发信号通知CPU可以安全地继续进行任何处理,处理具有在TLBI中指定的转换无效作为前提条件。

在390处,CPU请求将虚拟地址重新转换为物理地址。在390处传输的请求中指定的虚拟地址可以与在310中传输的请求中指定的虚拟地址相同。假设没有发布新的TLBI,则可以使用TLB和/或页表来执行转换并且返回对应的物理地址。

图4大体上图示了信号流程图400,其示出了由图1所描绘的系统100的各个组件根据本公开的各个方面执行的信号交换。具体地,信号流程图400示出了在CPU 120、MMU 130和物理存储器系统150之间交换的信号。

在410处,一个或多个CPU 120向MMU 130发送请求,以请求将所指定的虚拟地址转换为对应的物理地址。

在420处,MMU 130在TLB 140中搜索所指定的虚拟地址。在本示例中,虚拟地址不在TLB 140中。在422处,MMU 130确定虚拟地址是否在TLB 140中。在本示例中,虚拟地址不在TLB 140中(在422中为‘否’)。结果,MMU 130触发对在物理存储器系统150中提供的页表170的搜索。

在430处,物理存储器系统150在页表170中搜索所指定的虚拟地址。页面漫游可以需要一些时间来完成,并且可以继续进行,直到物理存储器系统150找到在页表170中包括所指定的虚拟地址的页表条目为止。

如在图3所描绘的信号场景中,在430中开展页面漫游之前或期间,CPU 120可以使一个或多个转换无效。在440处,CPU 120可以传输指定与在410处的请求中指定的虚拟地址相同的虚拟地址的一个或多个TLBI。在442处,在传输一个或多个TLBI之后,CPU 120可以向MMU 130传输同步请求(SYNC-REQ)。

在450处,MMU 130确定与待处理的转换相关联的虚拟地址是否与在TLBI中指定的虚拟地址匹配。在本示例中,当前正在搜索在TLBI中指定的虚拟地址(在430处)。响应于确定当前正在搜索在TLBI中指定的虚拟地址(在450处为‘是’),MMU 130进行到452。在一些实现方式中,该确定可以以下面关于图5至7描述的方式实现。

在452处,MMU 130向CPU 120传输SYNC-ACK。在452处传输的SYNC-ACK在一些方面中可以与在图3中传输的SYNC-ACK类似(在380中)。具体地,SYNC-ACK可以向CPU 120发信号通知CPU 120可以安全地继续进行任何处理,这些处理具有在TLBI中指定的转换无效作为前提条件。然而,将理解的是,图4所描绘的信号流程图400导致更快地传输和接收SYNC-ACK。这是因为MMU 130在传输SYNC-ACK之前不等待转换(与350处一样)。

在454处,MMU 130丢弃与无效的虚拟地址相关联的一个或多个被转换位。例如,如果物理存储器系统150已经向MMU 130提供了指定无效虚拟地址的转换(或部分转换)的一个或多个位(图4中未示出),则MMU 130丢弃该一个或多个位。如将在下面更详细地讨论的,完全重启可以要求丢弃与无效虚拟地址相关联的所有被转换位,而重取可以保存与不受影响的转换级别相关联的一个或多个被转换位、并且仅丢弃与转换的最后一级相关联的一个或多个被转换位。

在456处,MMU 130完全重启或重取在410处请求的转换的一部分。具体地,MMU 130触发在页表170中对所指定的虚拟地址(在410的请求中标识的相同虚拟地址)的搜索。如将在下面关于图5至7更详细地讨论的,在完全重启或重取之间的决策可以基于在TLBI中提供的LEAF指示符。(据申请人所知,LEAF传统上是大写的,但其并非首字母缩略词。)

在470处,物理存储器系统150在页表170中搜索所指定的虚拟地址。在472处,物理存储器系统150将与所指定的虚拟地址相对应的物理地址返回给MMU 130。在480处,MMU130将物理地址提供给CPU 120。

要理解的是,与图3所描绘的MMU相比,无论转换是否已经完成,MMU 130将自动重启在410处所请求的转换。如果在已经将对应的物理地址(或其一部分)提供回CPU 120之前接收到TLBI,则MMU 130丢弃一个或多个被转换位,并且立即着手用新的(有效)转换来替换它们。

图5大体上图示了根据本公开的方面的用于基于LEAF指示符来重启和/或重取转换的方法500。方法500可以是图4所描绘的在456处的确定的示例实现方式。

TLBI可以包括多个字段,多个字段包括:虚拟地址字段、应用空间ID(ASID)字段、虚拟机ID(VMID)字段、转换体制指示符字段、LEAF指示符字段、阶段指示符字段、其他合适的字段或其任何组合。LEAF指示符可以是例如一位字段,其中1(LEAF-1)指示转换的最后一级已无效,而0(LEAF-0)指示一些其他级别的转换已无效。下面将描述方法500,因为它将由MMU 130执行。然而,将理解,根据本公开的各个方面,方法500可以由任何合适的设备执行。

在510处,MMU 130确定在接收到的TLBI的LEAF指示符字段中指示了LEAF-0还是LEAF-1。如果指示了LEAF-0(在510处为‘LEAF-0’),那么方法500可以进行到520。如果指示了LEAF-1(在510处为‘LEAF-1’),那么方法500可以进行到540。

在520处,MMU 130设置页面大小参数,该页面大小参数等于与第一取得级别相关联的页面大小值。页面大小参数可以指示用于执行本公开中描述的任何或所有虚拟地址匹配确定的掩码的大小和/或布置。因此,关于所指定的虚拟地址是否具有匹配的确定可以取决于页面大小。根据页面大小参数,可以屏蔽虚拟地址的一个或多个位(即,不用于确定匹配)。

在530处,MMU 130确定是否完全重启整个转换,如将在下面关于图6更详细地讨论的。

在540处,MMU 130设置页面大小参数,该页面大小参数等于与当前漫游级别相关联的页面大小值。如上面所提到的,页面大小参数可以指示用于执行本公开的匹配确定的掩码的大小和/或布置。

在550处,MMU 130确定是否重取转换的最后一级,如将在下面关于图6更详细地讨论的。

要理解的是,方法500或其元素可以是如图4所描绘的在450处的确定和/或454处的丢弃的示例实现方式。而且,方法500可以构成在456处的完全重启或重取的前提,其中MMU 130确定是否重启转换以及重启是完全重启还是重取。

图6大体上图示了一种方法,该方法是图5所描绘的确定是否完全重启530的示例实现方式。因此,可以响应于确定指示了LEAF-0来执行方法600(与图5中的510处一样)。下面将描述方法600,因为它将由MMU 130执行。然而,将理解的是,根据本公开的各个方面,方法600可以由任何合适的设备执行。

在610处,MMU 130确定在接收到的TLBI中指定的虚拟地址是否与在待处理转换集合中的一个待处理转换中使用的虚拟地址匹配。如果MMU 130确定虚拟地址不匹配(在610处为‘否’),那么方法600进行到640。如果MMU 130确定虚拟地址确实匹配(在610中为‘是’),那么方法600进行到620。

在620处,MMU 130确定在接收到的TLBI中指定的ASID是否与在待处理转换集合中使用的ASID匹配。如果MMU 130确定ASID不匹配(在620处为‘否’),那么方法600进行到640。如果MMU130确定ASID确实匹配(在620处为‘是’),那么方法600进行到630。

针对具有非全局属性的转换,如果在TLBI中指定的ASID与待处理转换的ASID匹配,则转换仅与接收到的TLBI匹配。针对具有全局属性的转换,可以不需要匹配ASID。然而,直到转换几乎完成后才可以知道转换是具有全局属性还是非全局属性(例如在接收到转换表描述符(TTD)时)。

根据本公开的方面,可以基于LEAF指示符来确定属性类型。从图5至6要理解的是,在620处的确定之前,确定TLBI中指定的LEAF指示符是LEAF-0。根据本公开的方面,可以基于确定在TLBI中指定的LEAF指示符是LEAF-0来假定属性是非全局的。因此,由于假定属性是非全局的,因此可以在进行到可选的630和/或650之前在620处匹配ASID。而且,可以在接收到TTD之前执行ASID匹配,从而提高转换的速度。

在630处,MMU 130可选地确定在TLBI中指定的一个或多个其他值是否与在待处理转换集合中使用的对应的一个或多个其他值匹配。如果MMU 130确定一个或多个其他值不匹配(在630处为‘否’),那么方法600进行到640。如果MMU 130确定一个或多个其他值确实匹配(在630处为‘是’),那么方法600进行到650。一个或多个值可以包括例如VMID、转换体制、转换阶段、其他合适的字段或其任何组合。

将理解的是,如果在确定610、620和/或630中的任何一个中都不具有找到匹配,那么方法600将进行到640。而且,如果在每个以及每一个确定(610、620和630(如果包括的话))中都找到了匹配,那么方法600将进行到650。

在640处,MMU 130确定待处理转换不受接收到的TLBI的影响。这是因为在TLBI中指定的虚拟地址、ASID和/或其他值中的一项或多项与在待处理转换集合中的任何一个中的对应值不匹配。

在650处,MMU 130确定待处理转换受接收到的TLBI影响,并且完全重启整个转换。待处理转换受到影响的确定是基于确定TLBI中指定的虚拟地址、ASID和/或可选的其他值中的所有项与关联于一个或多个待处理转换的对应值匹配的。

简要返回到图4,将理解的是,MMU 130可以在456处确定完全重启转换。还将理解的是,可以使用在图5至6中所描绘的方法500和/或方法600来实现在456处的完全重启。

图7大体上图示了一种方法700,该方法是图5所描绘的确定是否重取550的示例实现方式。因此,可以响应于确定指示LEAF-1来执行方法700(与图5中的510中一样)。下面将描述方法700,因为它将由MMU 130执行。然而,将理解,根据本公开的各个方面,方法700可以由任何合适的设备执行。

在710处,MMU 130确定在接收到的TLBI中指定的虚拟地址和ASID二者是否与分别关联于待处理转换集合中的待处理转换的虚拟地址以及ASID匹配。如果MMU 130确定所指定的虚拟地址和ASID二者与待处理转换匹配(在710处为‘是’),则方法700进行到712。如果MMU 130确定所指定的虚拟地址或ASID与任何待处理转换都不匹配(在710处为‘否’),则方法700进行到720。

在712处,如果转换具有非全局属性,则MMU 130确定转换受到影响。可以使用如果非全局则LEAF受影响标志(例如针对正确可以设置为1,并且针对错误可以设置为0)来追踪该确定。

如上面所提到的,针对具有非全局属性的转换,如果在TLBI中指定的ASID与待处理转换的ASID匹配,则转换仅与接收到的TLBI匹配。然而,可能需要等到TTD到达后才能确定转换的属性。如将在下面更详细地讨论的,如果当接收到TTD时,确定转换是非全局的,那么还可以确定(基于确定转换是非全局的)转换受TLBI的影响。

在720处,MMU 130确定在接收到的TLBI中指定的虚拟地址是否与关联于待处理转换集合中的待处理转换的虚拟地址匹配。如果MMU 130确定所指定的虚拟地址与待处理转换匹配(在720处为‘是’),则方法700进行到722。如果MMU 130确定所指定的虚拟地址和ASID与任何待处理转换都不匹配(在720处为‘否’),则方法700进行到730。

在722处,如果转换具有全局属性,则MMU 130确定转换受接收到的TLBI影响。可以使用如果全局则LEAF受影响标志(例如针对正确可以设置为1,并且针对错误可以设置为0)来追踪该确定。如上面所提到的,针对具有全局属性的转换,如果在TLBI中指定的虚拟地址与待处理转换的虚拟地址匹配,则转换可以与接收到的TLBI匹配,而与ASID是否匹配无关。然而,如上面所提到的,可能需要等到TTD到达后才能确定转换的属性。如将在下面更详细地讨论的,如果当接收到TTD时,确定转换是全局的,那么还可以确定(基于确定转换是全局的)转换受TLBI的影响。

在730处,MMU 130确定转换不受影响。将理解的是,在730处的确定可以基于所指定的虚拟地址与待处理转换不匹配的确定(在710和720中)。因为待处理转换不受TLBI的影响,所以无需重启待处理转换。而且,无需确定转换是具有全局属性还是非全局属性,并且因此不具等到接收到TTD的理由。

在740处,MMU 130接收TTD。如上面所提到的,TTD可以在转换完成时被接收,并且可以指定转换具有全局属性还是非全局属性。

在750处,MMU 130确定是否已经达到转换的最后一级。该确定可以基于在740中接收到的TTD中的一个或多个字段。如果MMU130确定已经达到转换的最后一级(在750处为‘是’),那么方法700可以进行到760。如果MMU 130确定尚未达到转换的最后一级(在750处为‘否’),那么方法700可以进行到790。

在760处,MMU 130确定转换是否具有全局属性。该确定可以基于在740处接收到的TTD中的一个或多个字段。如果MMU 130确定转换具有全局属性(在760处为‘是’),那么方法700可以进行到762。如果MMU 130确定转换具有非全局属性(在760处为‘否’),那么方法700可以进行到764。

在762处,MMU 130确定是否在712处设置了如果非全局则LEAF受影响标志。如果在712处设置了如果非全局则LEAF受影响标志(在762处为‘是’),那么方法700进行到770。如果在712中未设置如果非全局则LEAF受影响标志(在762处为‘否’),那么方法700进行到790。

在764处,MMU 130确定是否在722处设置了如果全局则LEAF受影响标志。如果在722中设置了如果全局则LEAF受影响标志(在762处为‘是’),那么方法700进行到770。如果在722处未设置如果全局则LEAF受影响标志(在762处为‘否’),那么方法700进行到790。

在770处,MMU 130确定TLBI与待处理转换匹配,并确定保持与转换的最后一级不关联的被转换位,丢弃与转换的最后一级相关联的任何被转换位,并且重取转换的最后一级。

在790处,MMU 130确定TLBI与待处理转换不匹配。因此,待处理转换可以被确定为不受TLBI的影响。

图8大体上图示了可以有利地采用本公开的一个方面的示例性电子设备800。

电子设备800可以结合图1所描绘的系统100、被配置为执行图4所描绘的信令的系统、被配置为执行图5所描绘的方法500的系统、被配置为执行图6所描绘的方法600的系统和/或被配置为执行图7所描绘的方法700的系统。在图8的描述中,示出了电子设备800以包括处理器810。电子设备800还可以包括缓存820。在图8中,示例性地示出了处理器810,处理器810利用在处理器810与存储器830之间的缓存820耦合至存储器830,但是要理解,电子设备800也可以支持本领域已知的其他存储器配置。

图8还描绘了耦合至处理器810和显示器842的显示控制器840。在一些情况下,电子设备800可以用于无线通信。图8以虚线描绘了可选框,诸如耦合至处理器810的编码器/解码器(编解码器)860(例如音频和/或语音编解码器)。扬声器862和麦克风864也可以耦合至编解码器860。而且,无线天线852可以耦合至无线控制器850,该无线控制器850耦合至处理器810。在存在这些可选框中的一个或多个框的情况下,在特定方面中,处理器810、显示控制器840、存储器830和无线控制器850被包括在系统级封装或片上系统设备870中。

因此,特定方面、输入设备812和电源872被耦合至片上系统设备870。而且,在特定方面中,如图8所图示的,在存在一个或多个可选框的情况下,显示器842、输入设备812、扬声器862、麦克风864、无线天线852和电源872在片上系统设备870的外部。然而,显示器842、输入设备812、扬声器862、麦克风864、无线天线852和电源872中的每一项可以耦合至片上系统设备870的组件,诸如接口或控制器。在一些实施方式中,电子设备800的一个或多个组件可以经由系统总线彼此通信。

应该注意的是,尽管图8大体上描绘了通用电子设备800,但是电子设备800的一个或多个组件可以附加地或备选地集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航设备、个人数字助理(PDA)、固定位置数据单元、计算机、膝上型计算机、平板计算机、通信设备、移动电话或其他类似设备中。

本领域技术人员将了解,可以使用各种不同科技和技术中的任何一种来表示信息和信号。例如,在以上整个描述中可能引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合表示。进一步地,本领域技术人员将了解,结合本文公开的各个方面描述的各种说明性逻辑块、模块、电路和算法步骤可以被实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上面已经在其功能性方面对各种说明性组件、框、模块、电路和步骤进行了总体描述。将这种功能性实施为硬件还是软件取决于特定应用和强加于总体系统的设计约束。技术人员可以针对每个特定应用以不同方式实施所描述的功能性,但是这种实施决策不应被解释为导致脱离本发明的范围。

结合本文公开的各个方面描述的方法、序列和/或算法可以直接实施在硬件中、由处理器执行的软件模块中或者两者的组合中。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、CD-ROM或者本领域中已知的任何其他形式的存储介质中。示例性存储介质被耦合至处理器,使得处理器可以从存储介质读取信息并且将信息写入到存储介质。在替代方案中,存储介质对于处理器来说可能是必不可少的。

因此,本发明的一个方面可以包括实施用于总线控制的方法的计算机可读介质。因此,本发明不限于所图示的示例,并且用于执行本文描述的功能性的任何部件都包括在本发明的各个方面中。

鉴于以上描述和解释,本领域技术人员将了解,结合本文公开的各个方面描述的各种说明性逻辑块、模块、电路和算法步骤可以被实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上面已经在其功能性方面对各种说明性组件、框、模块、电路和步骤进行了总体描述。将这种功能性实施为硬件还是软件取决于特定应用和强加于总体系统的设计约束。技术人员可以针对每个特定应用以不同方式实施所描述的功能性,但是这种实施决策不应被解释为导致脱离本公开的范围。

因此,要了解的是,例如装置或装置的任何组件可以被配置为(或使其可操作或适用于)提供本文所教导的功能性。例如,这可以通过以下操作实现:通过制造(例如制作)该装置或组件,使得它将提供功能性;通过对该装置或组件进行编程,使得它将提供功能性;或通过使用一些其他合适的实施技术。作为一个示例,可以制作集成电路以提供必备的功能性。作为另一示例,可以制作集成电路以支持必备的功能性,然后配置(例如经由编程)以提供必备的功能性。作为又一示例,处理器电路可以执行代码以提供必备的功能性。

而且,结合本文公开的各个方面描述的方法、序列和/或算法可以直接实施在硬件中、由处理器执行的软件模块中或者两者的组合中。软件模块可以驻留在随机存取存储器(RAM)、闪存、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移除盘、CD-ROM或本领域中已知的任何其他形式的非暂时性存储介质中。如本文所使用的,术语“非暂时性”不排除任何物理存储介质或存储器,具体地不排除动态存储器(例如RAM),而是仅排除该介质可以被解释为暂时性传播信号的解释。示例存储介质耦合至处理器,使得处理器可以从该存储介质读取信息,并且可以向该存储介质写入信息。在替代方案中,存储介质对于处理器来说可能是必不可少的(例如缓存存储器)。

尽管前述公开示出了各种说明性方面,但是应该注意的是,在不脱离由所附权利要求限定的范围的情况下,可以对所图示的示例进行各种改变和修改。本公开不旨在仅限于具体图示的示例。例如,除非另外指出,否则根据本文描述的本公开的各个方面的装置权利要求的功能、步骤和/或动作不需要以任何特定顺序执行。此外,尽管可以以单数形式描述或要求保护某些方面,但是可以预期复数形式,除非明确阐明了对单数形式的限制。

将理解的是,本文中使用诸如“第一”、“第二”等名称对元素的任何引用通常不限制那些元素的数量或顺序。相反,这些名称在本文中可以用作区分两个或多个元素或元素实例的便利方法。因此,对第一和第二元素的引用并未暗示仅存在两个元素,并且还未暗示第一元素必须以某种方式在第二元素之前。而且,除非另有阐明,否则元素集合可以包括一个或多个元素。另外,在描述或权利要求中使用的形式“A、B或C中的至少一个”或“A、B或C中的一个或多个”或“包括A、B和C的群组中的至少一个”的术语意味着“A或B或C或这些元素的任何组合”。

本文所使用的术语仅用于描述特定实施例并且不旨在本文公开的任何实施例。如本文所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清晰指示。还将理解的是,当在本文中使用时,术语“包括(comprises)”、“包括了(comprising)”、“包括着(includes)”和/或“包括有(including)”指定存在所阐明的特征、整数、步骤、操作、元素和/或组件,但不排除存在或添加一个或多个其他功能、整数、步骤、操作、元素、组件和/或其群组。类似地,本文所使用的短语“基于”不一定排除其他因素的影响,并且在所有情况下应解释为“至少部分地基于”而不是例如“仅基于”。

将理解的是,诸如“顶”和“底”、“左”和“右”、“竖直”和“水平”等术语是严格关于彼此使用的相对术语,并且不表达或暗示与相对于重力、用于制造本文描述的组件的制造设备或与本文描述的组件耦合、安装等的一些其他设备的任何关系。术语“交换”可以指代一个或多个数据从一个组件传递给另一组件。例如,相对于特定组件,交换功能性可以通过发送功能性、接收功能性或其任何组合来构成。

相关技术
  • 虚拟地址到物理地址的转换
  • 支持页属性的虚拟地址至物理地址的转换
技术分类

06120112234859