用于地址转换的数据处理装置和方法与流程

文档序号:35564986发布日期:2023-09-24 04:52阅读:27来源:国知局
用于地址转换的数据处理装置和方法与流程
用于地址转换的数据处理装置和方法
1.本公开涉及一种数据处理装置,尤其涉及转换电路。
2.当修改页表条目的属性时,可能使得与该页表条目相对应的缓存转换条目不正确。因此,有必要使存储在高速缓存中的转换条目无效,以确保在数据处理期间不使用不正确的转换条目。因此,查询无效条目的的地址的查找将在高速缓存中未命中,从而导致较慢的转换。
3.在第一方面,本发明提供了一种数据处理装置,该数据处理装置包括:
4.高速缓存,该高速缓存用于存储多个转换条目并且用于编码指示每个页表条目的属性的控制信息,每个转换条目对应于多个页表条目中的一个页表条目并且定义第一地址和第二地址之间的转换;以及
5.转换电路,该转换电路用于响应于查询第一查找地址的查找而在第一查找地址对应于存储在高速缓存中的多个转换条目中的一个转换条目时返回对应第二地址,
6.其中响应于页表条目中的属性的修改的通知:
7.修改至少一些控制信息;并且
8.将与页表条目相对应的至少一个转换条目保留在高速缓存中,以供在查询第一查找地址的后续地址查找中使用。
9.在另一方面,本发明提供了一种数据处理装置,该数据处理装置包括:
10.用于将多个转换条目存储在高速缓存中并且编码指示每个页表条目的属性的控制信息的装置,每个转换条目对应于多个页表条目中的一个页表条目并且定义第一地址和第二地址之间的转换;
11.用于响应于查询第一查找地址的查找而在第一查找地址对应于存储在高速缓存中的多个转换条目中的一个转换条目时返回对应第二地址的装置;
12.用于响应于页表条目中的属性的修改的通知而修改至少一些控制信息的装置;以及
13.用于响应于页表条目中的属性的修改的通知而将与页表条目相对应的至少一个转换条目保留在高速缓存中,以供在查询第一查找地址的后续地址查找中使用的装置。
14.在另一方面,本发明提供了一种数据处理方法:
15.将多个转换条目存储在高速缓存中并且编码指示每个页表条目的属性的控制信息,每个转换条目对应于多个页表条目中的一个页表条目并且定义第一地址和第二地址之间的转换;
16.响应于查询第一查找地址的查找而在第一查找地址对应于存储在高速缓存中的多个转换条目中的一个转换条目时返回对应第二地址;
17.响应于页表条目中的属性的修改的通知而修改至少一些控制信息;以及
18.响应于页表条目中的属性的修改的通知而将与页表条目相对应的至少一个转换条目保留在高速缓存中,以供在查询第一查找地址的后续地址查找中使用。
19.将参考如附图所示的本发明的实施方案,仅以举例的方式进一步描述本技术,其中:
20.图1示意性地示出了可体现本技术的各种示例的数据处理装置;
21.图2a示意性地示出了可体现本技术的各种示例的数据处理装置的细节;
22.图2b示意性地示出了可体现本技术的各种示例的数据处理装置的细节;
23.图3示意性地示出了可体现本技术的各种示例的数据处理装置的细节;
24.图4示意性地示出了可体现本技术的各种示例的数据处理装置的细节;
25.图5示意性地示出了可体现本技术的各种示例的数据处理装置的细节;
26.图6示意性地示出了可体现本技术的各种示例的解码电路所执行的步骤序列;
27.图7示意性地示出了可体现本技术的各种示例的转换后备缓冲器所执行的步骤序列;
28.图8示意性地示出了可体现本技术的各种示例的相对于页表条目、转换电路和转换后备缓冲器执行的步骤序列;
29.图9示意性地示出了可体现本技术的各种示例的数据处理装置;
30.图10示意性地示出了可体现本技术的各种示例的数据处理装置;并且
31.图11示意性地示出了可体现本技术的各种示例的所执行的步骤序列。
32.至少一些实施方案提供了一种数据处理装置,该数据处理装置包括:高速缓存,该高速缓存用于存储多个转换条目并且用于编码指示每个页表条目的属性的控制信息,每个转换条目对应于多个页表条目中的一个页表条目并且定义第一地址和第二地址之间的转换;以及转换电路,该转换电路用于响应于查询第一查找地址的查找而在第一查找地址对应于存储在高速缓存中的多个转换条目中的一个转换条目时返回对应第二地址,其中响应于页表条目中的属性的修改的通知:修改至少一些控制信息;并且将与页表条目相对应的至少一个转换条目保留在高速缓存中,以供在查询第一查找地址的后续地址查找中使用。
33.数据处理装置设置有用于存储转换条目的高速缓存。每个转换条目与对应页表条目相关联并且定义第一地址和第二地址之间的转换。当从第一地址转换到第二地址时,转换电路使用缓存转换条目。如果高速缓存中没有与第一查找相对应的转换条目,则可使用例如页表遍历来确定对应第二地址。此类页表遍历可能很耗时,因此使发生高速缓存未命中的次数最小化通常是有益的。为了确保存储在高速缓存中的转换条目与页表条目一致,先前必须使高速缓存中的转换条目无效,其中此类转换条目与修改的页表条目相关联。因此,当进行第一查找地址的后续查找时,将发生高速缓存未命中,从而导致在发生页遍历时时间延迟。本技术的发明人已经认识到,并非对页表条目的所有修改都将使得与该页表条目相对应的转换条目中的一个或多个转换条目无效。例如,除了转换信息之外,页表条目还可能包含多个属性。对于不会使得转换条目中的一个或多个转换条目无效的修改(例如,修改属性中的一个属性),数据处理装置将不必要地使转换条目无效。本技术的数据处理装置响应于指示页表条目的属性被修改的通知(这可以是来自高速缓存的内部通知或在数据处理装置中其他地方生成的通知)而修改至少一些控制信息。然而,将与页表条目相关联的转换条目中的一个或多个转换条目保留在高速缓存中以用于响应于查询第一查找地址的后续查找。这样,有效转换条目保留在高速缓存中,并且数据处理装置可有利地将这些转换条目用于将来查找。如下面将进一步讨论的,高速缓存中编码的控制信息可采取各种形式。在一些实施方案中,控制信息被编码为与转换条目相关联的标志或位集,而在其他实施方案中,控制信息的编码是与特定第一地址或第二地址相对应的条目的存在。
34.可以以各种方式定义属性。在至少一些实施方案中,属性是关于页表条目是否已被访问的提示,并且修改至少一些控制信息包括修改与高速缓存中对应于页表条目的转换条目相关联的转换条目特定控制信息。在其他实施方案中,属性可以是例如指示页表条目中所指示的数据已被修改的脏标志/位。对于技术人员将显而易见的是,属性可以是页表条目中的任何值,可修改该值,同时保留已经存在于页表条目中的转换信息。提示指示页表是否已被访问,并且可以以各种方式被提供。例如,提示可以是单个布尔值,其被设定为逻辑1以指示页表条目已被访问,并且被设定为逻辑0以指示页表条目尚未被访问。另选地,逻辑0可用于指示页表条目已被访问,并且逻辑1可用于指示页表条目尚未被访问。条目特定控制信息可以以各种方式被提供并且包括信息的多个子集,每个子集特定于转换条目中的一个转换条目并且可用于确定特定于该条目的信息。
35.在至少一些实施方案中,第一地址是虚拟地址空间中的虚拟地址,第二地址是物理地址空间中的物理地址,第一查找地址是虚拟地址空间中的虚拟查找地址。这样,高速缓存提供转换信息,该转换信息允许将数据处理电路所使用的虚拟地址转换为存储器分级结构所使用的物理地址。这种转换使得能够在虚拟地址空间中使用比在物理地址空间中更少的地址位。在其他实施方案中,转换可能涉及中间地址而不是物理地址或虚拟地址,其中例如地址转换可能在多个阶段中发生。
36.在至少一些实施方案中,属性的修改对应于将页表条目的属性设定为第一值,并且至少一些控制信息的修改对应于修改至少一些控制信息以指示页表条目的属性已被设定为第一值。例如,在一些实施方案中,属性和至少一些控制信息匹配。另选地,控制信息可包括指示属性的信息或定义属性的位的子集。在控制信息是转换条目特定控制信息并且属性是关于页表条目是否已被访问的提示的实施方案中,条目特定控制信息可包括单个位,其在提示采用第一值以指示页表条目已被访问时采用第一值,并且在提示不采用第一值并因此指示页表条目尚未被访问时采用第一值的逻辑逆。第一值不受限制并且可以是由具有逻辑1或逻辑0值的单个位表示的布尔值。另选地,第一值可以是数据处理系统用来指示属性的设置的任何已知位序列。
37.在至少一些实施方案中,数据处理装置进一步适于响应于后续地址查找而:将页表条目的属性设定为第二值;并且修改至少一些控制信息以指示页表条目的属性已被设定为第二值。由此属性(以及因此控制信息)指示页表条目是否已被访问。如先前所讨论的,页表条目的属性和控制信息不必由相同的值来表示,并且如所讨论的,可以以各种方式表示。第二值不受特别限制,并且可以是与第一值不同的任何值且未必是第一值的逻辑逆。
38.在至少一些实施方案中,数据处理装置进一步适于响应于后续地址查找,而与基于从后续地址查找生成的对应后续第二地址来执行数据事务并行地设定页表条目的属性。通过使用已保留在高速缓存中的转换条目,可以基于对应后续第二地址(转换的地址)来执行数据事务,而无需首先执行页表查找来确定对应后续第二地址。此外,可与数据事务并行地执行用于在页表条目中设定属性的事务。这使得在不必等待数据事务完成的情况下更新页表条目。
39.在至少一些实施方案中,数据处理装置还包括控制电路,该控制电路用于执行监控过程以响应于属性被设定为第二值而将属性设定为第一值。这样,属性指示自发起监控过程以来是否已访问页表条目和高速缓存中的对应转换条目。
40.在至少一些实施方案中,数据处理装置还包括存储电路,其中控制电路进一步适于在执行监控过程时在存储电路中记录属性是否已被设定为第二值。这样,存储电路包括指示自发起监控过程以来是否已访问页表条目以及因此存储在高速缓存中的特定转换条目的信息。通过发起与设定所有页表条目中的属性有关的监控过程(其中对应转换条目存储在高速缓存中),存储电路存储指示自发起监控过程以来已使用高速缓存中的哪些转换条目以及没有使用哪些转换条目的数据。此外,存储电路使得可以在一段时间内存储此类数据。
41.在至少一些实施方案中,控制电路适于在以下各项中的至少一项之后周期性地发起监控过程:已经过了预先确定的时间;以及已发生维护活动。例如,在一些实施方案中,控制电路适于响应于以下各项中的至少一项而周期性地发起监控过程:指示应当发生监控过程的实际时间(例如,以秒或任何其他时间单位来度量)的墙上时间;预先确定数量的时钟周期;高速缓存中的预先确定数量的查找;上下文切换;网络活动完成;内存回收事件;以及电源状态变化。通过启动监控过程,可以响应于系统的行为可能显著改变的此类事件来确定页表条目的使用。例如,通过发起监控过程(例如,每10秒一次),可确定是否在每10秒窗口内访问页表条目。因此,可确定访问频率。例如,如果在监控过程的10个周期中的3个周期上访问了页表条目,则可确定每100秒访问了页表条目3次。这样,数据处理装置可存储指示以特定频率使用高速缓存中的哪些转换条目以及一旦已发生维护活动就需要维护高速缓存中的哪些转换条目的信息。
42.在至少一些实施方案中,数据处理装置还包括解码电路,该解码电路用于响应于属性修改指令而生成页表条目中的属性的修改的通知。因此,当修改页表条目的属性时,解码电路除了生成引起属性修改的控制信号之外,还生成页表条目中的属性已被修改的通知。如所讨论的,数据处理装置响应于对页表条目中的属性的修改的通知而修改至少一些控制信息并且保留与页表条目相对应的转换条目,以供在查询对应第一查找地址的后续地址查找中使用。
43.在至少一些实施方案中,属性修改指令是属性无效化指令。属性无效指令是使控制信息无效的指令。因此,当数据处理装置试图读取高速缓存以确定控制信息时,将确定控制信息是无效的,并且数据处理装置需要执行进一步处理(例如,页表遍历)以从页表条目确定控制信息。
44.在至少一些实施方案中,高速缓存是转换后备缓冲器。转换后备缓冲器提供在由数据处理电路使用的虚拟地址空间中使用的虚拟地址与在由存储器分级结构使用的物理地址空间中使用的物理地址之间的转换。
45.在至少一些实施方案中,响应于页表条目中的不同属性的修改的通知,使与页表条目相对应的转换条目无效。如所讨论的,页表条目的有些属性可被修改而不会使得高速缓存中的对应转换条目无效。然而,存在页表条目的其他属性(例如,上述“不同属性”),这些属性在被修改时将使得高速缓存中的转换条目无效。通过提供也响应于不同属性的修改的通知的数据处理装置,可在可能的情况下保留高速缓存中的转换条目,否则使其无效。
46.在至少一些实施方案中,页表条目中的属性的修改的通知和页表条目中的不同属性的修改的通知由不同指令提供。在另选实施方案中,页表条目中的属性的修改的通知和页表条目中的不同属性的修改的通知由具有指定是否要修改属性或者是否要修改不同属
性的参数的相同指令提供。这样,解码电路被设置为通过向数据处理装置提供指示是否需要修改控制信息或者是否需要使转换条目无效的通知来响应于不同指令或响应于具有指定是否要修改属性或不同属性的参数的相同指令。
47.在至少一些实施方案中,不同属性是以下各项中的一项:第一地址信息;第二地址信息;安全信息;和状态信息(包括访问信息)。对于技术人员将显而易见的是,不同属性可以是对于使高速缓存中的对应转换条目无效将是有益的任何属性。例如,出于数据一致性、数据安全性或系统可靠性的原因,使转换条目无效可能是有益的。
48.在至少一些实施方案中,转换条目定义以下各项中的一项:用于第一读地址和第二读地址之间的读访问的读转换;以及用于第一写地址和第二写地址之间的写访问的写转换,并且其中通过有效写转换的存在来编码控制信息。在此类实施方案中,高速缓存单独地存储读转换和写转换。读转换的存在意味着指定与读转换相对应的第一读地址的读事务将引起高速缓存命中并且对应第二读地址将被提供。类似地,写转换的存在意味着指定与写转换相对应的第一写地址的写事务将引起高速缓存命中并且对应第二写地址将被提供。在一些情况下,将提供指定与特定地址相对应的第一读地址的读转换和指定与特定地址相对应的第一写地址的写转换两者。因此,对该地址的读访问和写访问都将引起高速缓存命中。在其他情况下,可仅提供具有与特定地址相对应的第一读地址的读转换(且不提供对应写转换)。在这种情况下,读访问将引起高速缓存命中并且写访问不会引起高速缓存中的命中。类似地,在其他情况下,可仅提供具有与特定地址相对应的第一写地址的写转换(且不提供对应读转换)。在这种情况下,写访问将引起高速缓存命中并且读访问不会引起高速缓存中的命中。在此类实施方案中,通过有效写转换的存在来编码控制信息。换句话讲,对于具有与特定第一地址相对应的第一读地址的读转换,控制信息是具有与特定地址相对应的第一写地址的有效写转换的存在。因此,控制信息的修改对应于写转换的无效化。这样,属性修改可必然导致写转换的无效化。然而,如果属性修改使得读事务仍然有效,则读转换可保持在高速缓存中并且在随后的事务中使用。
49.在至少一些实施方案中,属性是指示由页表条目指示的数据已被修改的修改标志,并且至少一些控制信息的修改对应于在保留对应读转换的同时使对应写转换无效。在此类实施方案中,操作系统要求在更新修改标志(例如,脏标志)时对与页表条目中所指示的数据有关的进一步数据事务进行严格排序。设定修改标志指示页表条目中所指示的数据(即,由页表条目的第二/物理地址所指向的数据)已被修改,而清除修改标志指示页表条目中所指示的数据尚未被修改(对于技术人员将显而易见的是,标志的设定和清除状态可互换,使得清除指示页表条目中所指示的数据已被修改,而设定指示页表条目中所指示的数据尚未被修改)。当处理器写入到页表中所指示的数据时,该写入不应对任何处理器可见,直到设定修改标志为止。这样,写入到页表中所指示的数据的第一处理器可确信该数据不会在第一处理器不知情的情况下被第二处理器覆盖。为了确保该排序,当高速缓存接收到属性的修改的通知时,在高速缓存中使该转换无效。本发明人已经认识到,并不是使读转换和写转换都无效,而是可通过将读转换保留在高速缓存中(因为此类排序约束对读转换不是必需的)并且仅使写转换无效来提高性能。这样,高速缓存能够不直接从高速缓存提供用于读访问的转换,而无需在页表条目中查找所需的转换。
50.在至少一些实施方案中,转换电路适于:当该查找对应于读访问时,返回对应第二
读地址并且基于对应第二读地址来发起读事务,而与控制信息无关;当该查找对应于写访问并且控制信息编码对应有效写转换的存在时,返回对应第二写地址,并且基于对应第二写地址来发起写事务。在此类实施方案中,当该查找对应于写访问并且控制信息编码对应有效写转换的缺失时,转换电路不返回对应第二写地址,并且需要数据处理装置在页表条目中查找该转换。然而,对于读访问,不存在对控制信息的这种要求,并且转换电路将返回对应第二读地址,而与存在有效写转换还是无效写转换无关,并且因此,可避免用于确定对应第二读地址的页表遍历。
51.图1示意性地示出了数据处理装置2的示例,该数据处理装置包括多个级,包括提取级6、解码级10、重命名级12、发布级16、执行级14和回写级20。指令通过流水线从一级移动到另一级,并且一些指令可处于流水线的一级,而其他指令在另一级处挂起。应当理解,这仅仅是可能的流水线配置的一个示例,并且其他示例可根据需要具有不同的级或级组合。
52.提取级6例如从指令高速缓存提取指令。可提供分支预测器4以预测分支指令的结果。将被提取的指令传递到解码级10,该解码级对指令进行解码以生成被解码的指令,这些被解码的指令可提供用于触发执行级18执行对应处理操作的控制信号。对于由提取级6提取的一些指令,解码级8可将该指令映射到超过一个被解码的指令,使得流水线的稍后级所见的“指令”可呈与从高速缓存8提取的指令不同的形式。将被解码的指令传递到寄存器重命名级12,以便将由这些指令指定的架构寄存器说明符映射到物理寄存器说明符,这些物理寄存器说明符识别待响应于这些指令来访问的对应物理寄存器14。发布级16将等待发布的指令排队以供执行。执行级18执行已由发布级16发布的指令,以响应于这些指令而执行各种数据处理操作,诸如算术或逻辑运算,或对数据高速缓存30或另一层级高速缓存32或存储器34的加载/存储操作。执行单元18可具有多个执行单元22、24、21、25,包括用于将多个挂起的加载/存储操作排队的加载存储单元26。回写级20将由执行级18执行的指令的结果写入到包括谓词寄存器44和条件状态寄存器42的物理寄存器文件14。
53.流水线还具有包括转换后备缓冲器(tlb)36的存储器管理单元(mmu)35,该tlb包括用于将由指令指定的虚拟地址转换为识别高速缓存或存储器内的数据的物理地址的多个tlb条目。每个条目可对应于虚拟地址(第一地址)的给定页并且指定如何将那些地址转换成对应物理地址(第二地址)。当加载/存储单元26接收到加载/存储操作时,加载/存储单元26可将对应虚拟地址传递到tlb 36。如果tlb 36包括对应页的条目,则其可返回对应物理地址。如果tlb 36未存储包括所请求的虚拟地址的页的条目,则其可从另一层级tlb或存储器中的页表条目提取tlb条目。
54.图2a示意性地示出了根据一些实施方案的数据处理装置90的更多细节。数据处理装置90包括高速缓存80、转换电路58和存储器60。高速缓存80包括多个转换条目88。多个转换条目86中的每个条目包括第一地址82(例如虚拟地址)、第二地址84(例如物理地址)和转换条目特定控制信息86。高速缓存80中的转换条目88中的每个转换条目具有存储器60中的对应页表条目62,该对应页表条目定义与转换条目相同的转换93。具体地,转换条目88中的第一转换条目定义第一地址82(a)、第二地址84(a)和控制信息86(a)。第一转换条目可具有对应页表条目62(a),该对应页表条目定义与其所对应的转换条目相同的转换93(a)。在该示例中,页表条目62(a)的转换93(a)将定义第一地址82(a)和第二地址84(a)。存储器60中
的页表条目62还包括关于页表条目是否已被访问的提示92作为属性。
55.数据处理装置90还包括转换电路58,该转换电路响应于查询第一查找地址的查找而在第一查找地址对应于多个转换条目88中的第一地址82时返回对应第二地址。例如,如果第一查找地址对应于第一地址82(b),则转换电路将确定高速缓存命中并且将返回对应第二地址84(b)以用于存储器60中的数据事务。
56.数据处理装置90响应于提示92的修改的通知而修改对应于与特定页表条目相关联的转换条目的条目特定控制信息86。例如,如果具有提示属性92(a)的页表条目62(a)对应于具有第一地址82(a)、第二地址84(a)和控制信息86(a)的转换条目,则当提示属性被修改以指示页表条目已被访问时,提供通知,该通知使得转换条目特定控制信息86(a)被修改以指示对应页表条目62(a)已被访问。由于页表条目中的转换93(a)未通过访问标志的设定或清除来修改,因此高速缓存中提供从第一地址82(a)到第二地址84(a)的转换的转换条目仍然有效。因此,该转换条目保留在高速缓存中以供在指定第一地址82(a)的后续查找中使用。在一些实施方案中,提示92可为单个位,其在页表条目62最近尚未被访问时采用第一值,并且在页表条目62最近已被访问时采用第二值。在此类实施方案中,对应转换条目特定控制信息86可以是指示提示属性92的值的单个位。
57.图2b示意性地示出了根据一些实施方案的数据处理装置98的更多细节。数据处理装置98包括已经相对于图2a描述的多个特征。因此,本说明书将涉及与已经描述的特征不同的特征。具体地,数据处理装置包括高速缓存91、转换电路58和存储器60。存储器60包括多个页表条目62,每个页表条目定义从第一地址(虚拟地址)到第二地址(物理地址)的转换93。页表条目62包括多个属性,包括指示页表条目中提及的数据74已被修改的脏位94。
58.高速缓存91包括多个转换条目99。每个转换条目对应于页表条目62。具体地,转换条目包括页表条目62中的从第一地址95(虚拟地址)到页表条目中定义的第二地址97(物理地址)的转换93的缓存副本。此外,转换条目99各自与转换条目特定控制信息97相关联。响应于对应页表条目中的脏位的修改而修改转换条目特定控制信息97。例如,如果页表条目62(a)中指示的数据被修改,则脏位94(a)被设定为指示该数据已被修改。当脏位被修改时,数据处理装置98向高速缓存91发送通知,以使得与页表条目相对应的转换条目特定控制信息被修改。在例示的示例中,假设具有第一地址95(a)、第二地址96(a)和控制信息97(a)的第一转换条目对应于页表条目62(a)。换句话讲,由第一地址95(a)和第二地址96(a)定义的转换是在页表条目62(a)中定义的转换93(a)的缓存副本。因此,当脏位94(a)被修改时,向高速缓存发送通知并且修改转换条目特定控制信息97(a)以指示该脏位已被修改。
59.响应于指定第一地址的事务,转换电路58在tlb高速缓存91中执行查找,并且当第一地址在高速缓存中命中时,返回第二地址和控制信息。这样,数据处理装置能够确定存储在物理地址处的数据74是否已被修改并且采取适当的动作。例如,如果控制信息指示数据已被修改并且事务是写事务,则数据处理装置98可选择中止写事务以保持数据完整性。
60.图3示意性地示出了响应于页表条目302的修改而对高速缓存300中的控制信息和条目的修改。子图300(a)示出了包括多个转换条目的高速缓存306(a)。每个转换条目包括虚拟地址(va)、物理地址(pa)、控制信息(ctrl)和有效位。高速缓存306(a)中的转换条目中的每个转换条目对应于页表条目。具体地,转换条目是如在页表条目中定义的虚拟地址和物理地址之间的转换的缓存副本。例如,转换条目304(a)对应于页表条目302(a)。转换条目
304(a)包括虚拟地址#00ff00、物理地址#0fff、控制信息1和有效位1。该信息指示虚拟地址#00ff00对应于物理地址#0fff,控制信息确定页表条目302(a)的提示属性被设定,并且有效位确定该条目是有效的。技术人员将理解,示例性虚拟地址和物理地址纯粹用于示例的目的,并且可使用任何格式或长度的虚拟地址或物理地址。类似地,可将任何附加状态位添加到缓存条目。页表条目302(a)定义在缓存条目中复制的虚拟地址和物理地址以及多个附加位的信息。在例示的示例中,页表条目还包括提示标志,该提示标志采用值1来指示页表条目最近已被访问,并且采用值0来指示页表条目最近尚未被访问;以及脏位,该脏位采用值1来指示页表中所指示的数据已被修改,并且采用值0来指示页表条目中所指示的数据尚未被修改。对于技术人员将显而易见的是,这些值可被解释为具有相反的含义,这取决于特定的实施方式。
61.子图300(b)示意性地示出了属性无效化指令作用于页表条目302(a)和高速缓存306(a)的结果。具体地,属性无效化指令修改页表条目302(a)的提示标志,将其设定为零,从而产生页表条目302(b)。此外,如上所讨论,发送通知以指示该提示被修改。因此,数据处理装置修改高速缓存中的控制信息以指示提示属性已被修改。所得的转换条目304(b)在高速缓存306(b)中示出。具体地,相对于转换条目304(a)中的虚拟地址和物理地址而言,306(b)中的虚拟地址和物理地址尚未被修改。这样,转换信息自身保留在高速缓存306(b)中并且是有效的(如由转换条目304(b)中的有效位所指示的)。然而,控制信息0指示提示值已在页表条目302(b)中被设定为零(清除)。因此,数据处理装置可确定,当发起基于转换条目304(b)的事务时,需要进一步的事务来设定页表条目302(b)中的提示标志。这样,页表条目302(b)准确地指示是否已经由页表条目自身或经由tlb中的页表条目的缓存版本进行访问。作为更新页表条目302(b)中的提示标志(例如,更新为1)的事务的结果,tlb 306(b)的条目304(b)中的控制信息也将被更新(例如,被更新为1)。
62.子图300(c)示意性地示出了作为修改页表条目302(c)中的虚拟地址的指令的结果的高速缓存306(c)和页表条目302(c)。具体地,页表条目302(b)的虚拟地址从#00ff00修改为#00af00,如页表条目302(c)中所示。因此,高速缓存306(c)中的转换条目304(c)不再准确地表示页表条目。因此,转换条目304(c)被标记为无效。在例示的实施方案中,这是通过清除有效位来实现的。然而,技术人员将理解,可使用使转换无效的任何方法。
63.因此,当以不修改在页表条目中定义的转换的方式修改对应页表条目时,所描述的数据处理装置能够将转换信息保留在高速缓存中。因此,指定虚拟地址#00ff00的查找可被转换为物理地址#0fff,只要对应页表条目中的转换与缓存条目一致即可。
64.图4示意性地示出了根据一些实施方案的数据处理装置100的更多细节。数据处理装置包括高速缓存102、转换电路104、存储器106和控制电路108。高速缓存102包括如上所讨论的多个转换条目和控制信息。控制电路108可以以各种方式提供,但是控制电路108执行发起监控过程的功能。监控过程包括以下步骤:周期性地确定页表条目110的属性112是否指示页表条目110最近已被访问,并且如果是这样,则修改属性112,使得属性112指示对应页表条目110最近尚未被访问。通过重复该过程,控制电路能够确定自控制电路最后修改(例如,重置)页表条目110的属性112以来页表条目110是否已被访问。因此属性112构成关于页表条目110是否最近已被访问的指示或提示,其中术语“最近被访问”指代自控制电路108最后修改属性112以指示页表条目110最近尚未被访问以来的时间段中的访问。除了修
改属性之外,还向高速缓存102发送通知,使得可修改控制信息以指示页表条目112的属性112已被修改。
65.图5示意性地示出了根据一些实施方案的适于执行监控过程的数据处理装置120的更多细节。数据处理装置120包括转换后备缓冲器(tlb)122、转换电路140、解码电路142、控制电路144、存储电路146和存储器148。tlb 122包括多个转换条目130,转换条目130中的每个转换条目包括虚拟地址124(va)、物理地址126(pa)和控制信息128。转换电路140接收包括最高有效位(msb)132和最低有效位(lsb)134的虚拟地址。
66.转换电路将最高有效位132传递到tlb以执行转换。如果虚拟地址的最高有效位132对应于tlb中的条目,则将物理地址的对应最高有效位136和对应控制信息138从tlb输出到转换电路。如果与物理地址136的最高有效位相对应的控制信息138指示与物理地址相关联的数据尚未被访问,则数据处理装置120使得tlb修改对应控制信息128以指示与物理地址相关联的数据现已被访问。转换电路140从物理地址的最高有效位136和虚拟地址的最低有效位134生成物理地址。然后物理地址用于存储器148中的数据事务。将控制信息138从转换电路传递到控制电路144,该控制电路可在存储电路146中记录与物理地址相关联的数据现已被访问。此外,控制信息128的修改使得执行第二事务以修改页表条目中的属性来指示与物理地址相关联的数据现已被访问。这样,在更新属性之前更新控制信息。
67.此外,数据处理装置还响应于属性无效化指令。具体地,解码电路142响应于属性无效化指令而修改存储在存储器148中的页表中的属性以指示与存储在页表中的物理地址相关联的数据尚未被访问。解码电路142进一步响应于属性无效化指令而生成页表条目中的属性的修改的通知。该通知使得数据处理装置修改tlb 122中的条目特定控制信息128以指示与物理地址126相关联的数据尚未被访问。此外,该通知使得tlb保留以保留定义虚拟地址124与物理地址126之间的转换的地址转换条目。在一些实施方案中,属性和控制信息可并行更新,而在其他实施方案中,属性或控制信息中的任一者可在另一者之前更新。解码电路142可进一步响应于作为条目无效化指令的不同指令,该条目无效化指令使得以tlb 122中的转换信息130无效的方式修改页表条目。解码电路142响应于条目无效化指令而生成页表条目的不同属性的修改的通知,并且响应于页表条目的不同属性的修改的通知而使tlb 122中的对应转换条目无效。
68.控制电路144可执行监控过程以确定tlb 122中的哪些条目对应于频繁访问的数据。控制电路144在预先确定的时间或维护活动中的至少一者之后周期性地发起监控过程。监控过程涉及清除一个或多个页表条目的提示属性以指示它们尚未被访问。然后控制电路144监控以确定页表条目是否被访问,并且如果是这样,则将该访问记录在存储电路中。通过周期性地运行监控过程,存储在存储电路中的数据可用于构建哪些数据正被频繁访问的图片。
69.图6示意性地示出了在一些实施方案中由解码电路142执行的步骤序列。流程开始于步骤s602,在该步骤中接收到下一指令。然后流程前进至步骤s604,在该步骤中确定该指令是否为属性无效化指令。如果是,则流程前进至步骤s606,如果否,则流程前进至步骤s616。在步骤s606处,确定是否在页表条目中设定了属性。如果否,则流程返回到步骤s602,如果是,则流程前进至步骤s608,在该步骤中清除页表条目中的属性。然后流程前进至步骤s610,在该步骤中确定tlb 122中是否存在对应条目。如果否,则流程返回到步骤s602,如果
是,则流程前进至步骤s612,在该步骤中修改与页表条目相对应的tlb 122中的控制信息。然后流程前进至步骤s614,在该步骤中将与修改的页表条目相对应的转换条目保留在tlb 122中以供在后续查找中使用。然后流程返回到步骤s602。
70.如果步骤s604的结果为否,则流程前进至步骤s616,在该步骤中确定该指令是否为条目无效化指令,该条目无效化指令将以将使得tlb 122中的转换的缓存副本无效的方式修改页表条目(例如,通过修改转换自身,使得缓存转换条目与页表条目不一致)。如果否,则流程返回到步骤s602。如果是,则流程前进至步骤s618,在该步骤中修改与响应于属性无效化指令而修改的属性不同的页表条目的属性。例如,不同属性可以是转换自身。然后流程前进至步骤s620,在该步骤中确定tlb中是否存在对应条目。如果否,则流程返回到步骤s602。如果是,则流程前进至步骤s622,在该步骤中在流程返回到步骤s602之前使tlb条目无效。
71.图7示意性地示出了由转换电路140执行的步骤序列。流程开始于步骤s702,在该步骤中转换电路140使用传入虚拟地址(va)在tlb 122中执行查找。然后流程前进至步骤s704,在该步骤中确定tlb 122是否返回了指示虚拟地址已在tlb122中命中的物理地址和控制信息。如果是,则前进至步骤s708,在该步骤中确定控制信息是否指示对应页表条目中的属性被设定。如果是,则流程前进至步骤s710。如果否,则流程前进至步骤s712,在该步骤中发起设定页表条目中的属性的事务。然后流程前进至步骤s714,在该步骤中转换电路140在流程前进至步骤s710之前指示tlb 122设定控制信息以指示访问标志被设定。
72.如果在步骤s704处确定虚拟地址在tlb 122中未命中,即虚拟地址未命中,则流程前进至步骤s716,在该步骤中发起页表遍历以返回页表条目和对应物理地址。然后流程前进至步骤s718,在该步骤中设定页表条目中的属性以指示与页表条目相关联的数据已被访问。然后流程前进至步骤s720,在该步骤中转换电路140指示tlb 122基于页表条目来生成转换条目。然后流程前进至步骤s722,在该步骤中转换电路140指示tlb 122设定控制信息以指示对应页表条目中的属性被设定。然后流程前进至步骤s710。在步骤s710处,在返回到步骤s702之前发起基于物理地址的事务。步骤s710中发起的事务可与步骤s712的事务并行地发起(在执行步骤s712时发起)。
73.图8示意性地示出了相对于页表条目、转换电路140和tlb 122执行的步骤序列。在步骤s901处,转换电路140在tlb 122中执行虚拟地址va1的查找。在该示例中,假设最初在tlb 122中不存在对应转换条目,因此查找未命中。在步骤s902处,tlb 122向转换电路指示未命中,该转换电路在步骤s903处发起页表遍历以确定物理地址。在步骤s904,将与虚拟地址va1相对应的物理地址返回到转换电路140,并且设定对应页表条目中的属性以指示与页表条目相关联的数据已被访问。在步骤s905处,tlb 122生成与虚拟地址va1和物理地址之间的转换相对应的条目。设定对应控制信息,该对应控制信息指示页表条目中的属性被设定。在步骤s906处,tlb从转换电路140接收到另一查找。该查找对应于相同的虚拟地址va1。由于tlb 122中的新转换条目对应于虚拟地址va1,因此该查找在tlb中命中并且与虚拟地址va1相对应的物理地址pa1返回到转换电路140。
74.在步骤s908处,接收到页表条目中的属性已被清除的通知。作为响应,tlb 122修改控制信息以指示属性被清除。此外,tlb 122保留提供虚拟地址va1与对应物理地址pa1之间的转换的转换条目。在步骤s909处,响应于指定虚拟地址的第三查找,将va1从转换电路
140发送到tlb 122。由于保留了指定虚拟地址va1和对应物理地址pa1之间的转换的转换条目,因此在步骤s910处,该查找在tlb 122中命中并且物理地址pa1返回到转换电路140。此外,修改tlb 122中的控制信息以指示页表条目中的属性将被设定以及页表条目中的属性被设定。
75.图9示意性地示出了根据图2至图3所示的实施方案的一些另选实施方案的数据处理装置200。数据处理装置包括高速缓存202、转换电路216和存储器218。高速缓存202与先前实施方案的不同之处在于其包括定义第一读地址208(虚拟读地址)与对应第二读地址210(物理读地址)之间的转换的读转换条目204。高速缓存202还包括定义第一写地址212(虚拟写地址)与对应第二写地址214(物理写地址)之间的转换的写转换条目206。需注意,对于每个第二地址,可定义至少一个读转换和至少一个写转换。另选地,一些第二地址可仅具有对应读转换或对应写转换。高速缓存202还包括由与读转换相对应的写转换的存在或缺失编码/在与读转换相对应的写转换的存在或缺失中编码的控制信息。具体地,对于指定第一读地址208(a)和第二读地址210(a)的给定读转换,如果第二读地址210(a)是第二写地址214(a),则当存在指定与第二写地址214(a)相对应的第一写地址212(a)的有效写转换时,控制信息可被认为采用第一值。另一方面,当不存在与第二读地址210(a)相对应的有效第二写地址时,控制信息可被认为采用第二值。因此,通过确定给定第二读地址210是否具有与第二读地址相同的对应有效第二写地址214来确定控制信息的值。高速缓存202的读转换204和写转换206中的每一者对应于包括转换93和脏位92的页表条目62,如相对于图2b所描述的。
76.转换电路216响应于读访问和写访问两者而在高速缓存202中执行查找。在访问是读访问的情况下,转换电路216在高速缓存202中执行读查找。当访问是写访问时,转换电路216在高速缓存202中执行写查找。如果该查找在高速缓存202中命中,则返回第二地址。虽然例示的实施方案在第二读地址与第二写地址之间进行了区分,但应理解,存储器中仅存在与特定数据项相对应的单个第二地址,并且当读查找在高速缓存中命中时,返回的第二地址为第二读地址,并且当写查找在高速缓存202中命中时,返回的第二地址为第二写地址。
77.高速缓存202响应于页表条目62的属性的修改的通知而使写转换无效并保留读转换。在例示的实施方案中,页表条目中的属性为脏标志,该脏标志指示页表条目中提及的数据已例如响应于处理器的写事务而被修改。存在与写事务相关的严格排序要求。具体地,当处理器将给定数据集写入到物理地址时,必须在执行与该物理地址相关的任何其他写事务之前设定修改标志。这确保了执行写事务的处理器可确信不同处理器的后续写事务不会不知情地覆盖给定数据。然而,由于对读转换没有此类排序要求,因此不需要使其无效。因此,通过仅使写转换无效,可使用读转换来从在读转换中定义的第二读地址读取数据。无效化可通过设定与写转换相关联的特定有效位进行,另选地,可通过将第一写地址212和第二写地址214中的一者设定为预先确定的值来将转换标记为无效。在一些实施方案中,属性是指示页表条目所指示的数据已被修改的修改标志。这样,当页表条目所指示的数据被修改时,可使写转换206无效,同时可保留对应读转换204以供将来查找。
78.图10示意性地示出了对于如图9所示的数据处理装置而言响应于页表条目1102的修改而对高速缓存1104中的控制信息和条目的修改。子图1100(a)示出了包括多个读转换
条目1106(a)和多个写转换条目1104(a)的高速缓存1104(a)。读转换条目1108(a)和写转换条目1108(b)中的每一者包括虚拟地址(va)、物理地址(pa)和有效位。高速缓存1104(a)中的转换条目中的每个转换条目对应于页表条目。具体地,例示的读转换条目1118(a)和例示的写转换条目1116(a)是如在页表条目1102(a)中定义的虚拟地址和物理地址之间的转换的缓存副本。例示的读转换条目1118(a)和例示的写转换条目1116(a)包括虚拟地址#00ff00、物理地址#0fff和有效位1。该信息指示虚拟地址#00ff00对应于用于读转换1118(a)和写转换1116(a)两者的物理地址#0fff,并且有效位确定该条目是有效的。技术人员将理解,示例性虚拟地址和物理地址纯粹用于示例的目的,并且可使用任何格式或长度的虚拟地址或物理地址。类似地,可将任何附加状态位添加到缓存条目。页表条目1102(a)定义在缓存条目中复制的虚拟地址和物理地址以及多个附加位的信息。在例示的示例中,页表条目还包括提示标志,该提示标志采用值1来指示页表条目最近已被访问,并且采用值0来指示页表条目最近尚未被访问;以及脏位,该脏位采用值1来指示页表中所指示的数据已被修改,并且采用值0来指示页表条目中所指示的数据尚未被修改。对于技术人员将显而易见的是,这些值可被解释为具有相反的含义,这取决于特定的实施方式。在例示的实施方案中,控制数据通过有效写转换1116(a)的存在而被编码在高速缓存1104(a)中。
79.子图300(b)示意性地示出了指定虚拟地址#00ff00的写事务的结果。具体地,写事务修改页表条目1102(a)的脏位,将其设定为1,从而产生页表条目1102(b)。此外,如上所讨论,发送通知以指示页表条目中指定的数据已被修改。因此,数据处理装置修改高速缓存中的控制信息以指示提示属性已被修改。具体地,使写转换条目1116(b)无效,同时将对应读转换条目1118(b)保留为有效读转换。所得的转换条目1118(b)和1116(b)在高速缓存1104(b)中示出。因此,数据处理装置可确定,当在高速缓存中查找基于虚拟地址#00ff00的写事务时,与页表条目1102(b)相关联的数据是脏的(而不必查找对应页表条目1102(b))。
80.子图1100(c)示意性地示出了作为修改页表条目1102(c)中的虚拟地址的指令的结果的高速缓存1104(c)和页表条目1102(c)。具体地,页表条目1102(b)的虚拟地址从#00ff00修改为#00af00,如页表条目1102(c)中所示。因此,高速缓存1104(c)中的读转换条目1118(c)和写转换条目1116(c)不再准确地表示页表条目。因此,读转换条目1118(c)也被标记为无效。在例示的实施方案中,这是通过清除有效位来实现的。然而,技术人员将理解,可使用使转换无效的任何方法。
81.因此,当以页表条目中定义的读转换仍然有效的方式修改对应页表条目时,所描述的数据处理装置能够将转换信息保留在高速缓存中。因此,指定虚拟地址#00ff00的读查找可被转换为物理地址#0fff,只要对应页表条目中的读转换与缓存条目一致即可。
82.图11示意性地示出了在一些实施方案中执行的步骤序列。在步骤s1002中,将多个转换条目存储在高速缓存中并且编码指示每个页表条目的属性的控制信息,每个转换条目对应于页表并且定义第一地址和第二地址之间的转换。在步骤s1004中,响应于查询第一查找地址的查找而在第一查找地址对应于存储在高速缓存中的多个转换条目中的一个转换条目时返回对应第二地址。在步骤s1006处,响应于页表条目中的属性的修改的通知而修改至少一些控制信息。在步骤s1008处,响应于页表条目中的属性的修改的通知而将与页表条目相对应的转换条目保留在高速缓存中,以供在查询第一查找地址的后续地址查找中使用。
83.在简要的总体概述中,提供了一种用于将多个转换条目存储在高速缓存中并且编码指示每个页表条目的属性的控制信息的装置和方法,每个转换条目对应于多个页表条目中的一个页表条目并定义第一地址和第二地址之间的转换;响应于查询第一查找地址的查找而在该第一查找地址对应于存储在该高速缓存中的该多个转换条目中的一个转换条目时返回对应第二地址;响应于页表条目中的该属性的修改的通知而修改至少一些该控制信息;以及响应于该页表条目中的该属性的该修改的该通知而将与该页表条目相对应的至少一个转换条目保留在该高速缓存中,以供在查询对应第一查找地址的后续地址查找中使用。
84.在本技术中,字词“被配置为...”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可以具有提供所限定的操作的专用硬件,或者可以对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。
85.虽然本文已结合附图详细描述了示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围的前提下,本领域的技术人员可在其中实现各种变化、添加和修改。例如,在不脱离本发明的范围的情况下,从属权利要求的特征可以与独立权利要求的特征一起进行各种组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1