CN107636626A - 用于存储器管理单元(mmu)的转换的推测性预取 - Google Patents
用于存储器管理单元(mmu)的转换的推测性预取 Download PDFInfo
- Publication number
- CN107636626A CN107636626A CN201680027657.4A CN201680027657A CN107636626A CN 107636626 A CN107636626 A CN 107636626A CN 201680027657 A CN201680027657 A CN 201680027657A CN 107636626 A CN107636626 A CN 107636626A
- Authority
- CN
- China
- Prior art keywords
- address
- conversion
- address conversion
- sequence
- triggering
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明揭示用于预取存储器管理单元MMU中的地址变换的***及方法。所述MMU检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件,所述触发条件与触发地址相关联;产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符,所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得所述多个地址转换中的每一者,其中所述一或多个转换高速缓冲存储器在所述一或多个转换高速缓冲存储器中不存在所述多个地址转换中的至少一个地址转换时将所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
Description
技术领域
本发明的实施例涉及用于存储器管理单元(MMU)的转换的推测性预取。
背景技术
单片***(SoC)装置可包含一或多个中央处理器、一或多个互连线(或总线)、一或多个***装置(或上游装置)以及一或多个从装置。此些SoC装置可进一步包含耦合到处理器的存储器管理单元(MMU)以及耦合到一或多个***装置的一或多个***MMU(SMMU)。SMMU以处理器的MMU转换用于处理器存储器存取的地址几乎相同方式为***装置业务提供地址转换服务。
MMU的主要功能包含地址转换、存储器保护及属性控制。地址转换是将输入地址转换成输出地址。转换信息被存储在MMU引用以执行地址转换的转换表中。MMU可将完整转换存储在转换高速缓冲存储器中以避免在下一次接收到存储器的同一块的输入地址时存取所述转换表。
MMU转换高速缓冲存储器中的需求未命中通过导致例如增加的存储器等待时间(延迟)、减少的带宽利用率及用以隐藏延迟的增加缓冲而消极地影响***性能及***成本。用以使此些需求未命中的数目最小化的当前解决方案包含尝试“预测”未来需要哪些转换且将其置于转换高速缓冲存储器中。具体来说,这些解决方案预测未来将需要先前使用且邻近的转换。为了使此些预测方案表现良好,需要高度的时间/空间局部性。在存在有限空间/时间局部性的状况下,预测经常不正确且因此预测方案表现不良。
发明内容
以下呈现与和本文中所揭示的关于用于存储器管理单元(MMU)的转换的推测性预取的机制相关联的一或多个方面及/或实施例有关的简化发明内容。如此,以下发明内容不应被认为涉及所有预期方面及/或实施例的广泛概述,且以下发明内容也不应被认为识别涉及所有预期方面及/或实施例的关键或决定性要素或描绘与任何特定方面及/或实施例相关联的范围。因此,以下发明内容具有用以在下文呈现的具体实施方式之前以简化方式呈现涉及与本文中所揭示机制有关的一或多个方面及/或实施例的某些概念的唯一目的。
预取装置的MMU中的地址转换的方法包含:检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件,所述触发条件与触发地址相关联;产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得地址转换序列中的所述多个地址转换中的每一者,其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在所述多个地址转换中的至少一个地址转换而将所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
用于预取装置的MMU中的地址转换的装置包含:经配置以检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件的逻辑,所述触发条件与触发地址相关联;经配置以产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符的逻辑,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及经配置以将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得地址转换序列中的所述多个地址转换中的每一者的逻辑,其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在至少一个地址转换而将所述多个地址转换中的所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
预取装置的MMU中的地址转换的设备包含:用于检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件的装置,所述触发条件与触发地址相关联;用于产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符的装置,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及用于将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得地址转换序列中的所述多个地址转换中的每一者的装置,其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在至少一个地址转换而将所述多个地址转换中的所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
用于预取装置的MMU中的地址转换的非暂时性计算机可读媒体包含:用以检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件的至少一个指令,所述触发条件与触发地址相关联;用以产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符的至少一个指令,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及用以将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得地址转换序列中的所述多个地址转换中的每一者的至少一个指令,其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在至少一个地址转换而将所述多个地址转换中的所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
与本文中所揭示的机制相关联的其它目标及优点对所属领域的技术人员来说基于所附图式及实施方式将显而易见。
附图说明
当结合附图考虑时通过参考以下详细描述,将容易获得本发明的实施例及本发明的随附优点中的许多者的更全面了解且同样地更好地理解,所述附图仅呈现用于说明而非对本发明的限制,且其中:
图1说明根据本发明的实施例的无线通信***的高级***架构。
图2说明根据本发明的一个方面的可用于使用无线技术确定位置的操作环境中的示范性移动装置。
图3说明根据本发明的实施例的服务器。
图4说明根据本发明的方面的示范性***。
图5说明根据本发明的方面的示范性转换表。
图6说明根据本发明的方面的地址转换中所涉及的步骤。
图7说明根据本发明的方面的示范性转换高速缓冲存储器条目。
图8说明根据本发明的方面的示范性二级或嵌套式转换流程。
图9说明根据本发明的方面的示范性预取***。
图10说明根据本发明的方面的示范性预取窗口。
图11说明根据本发明的方面的预取窗口大小及步幅长度实例。
图12说明根据本发明的方面的可请求步幅长度区域的各种方式。
图13说明根据本发明的至少一个方面的用于预取装置的存储器管理单元(MMU)中的地址转换的示范性流程。
图14为如本文中所教示经配置以支持通信的设备的数个样本方面的简化框图。
具体实施方式
本发明揭示用于预取装置的存储器管理单元(MMU)中的地址变换的***及方法。在实施例中,MMU检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件,所述触发条件与触发地址相关联;产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得地址转换序列中的所述多个地址转换中的每一者,其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在至少一个地址转换而将所述多个地址转换中的所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
在以下描述及针对本发明的特定实施例的相关图式中描述本发明的这些及其它方面。可设计替代实施例而不背离本发明的范围。另外,本发明的习知元件将不详细描述或将被省略以便不混淆本发明的相关细节。
措词“示范性”及/或“实例性”在本文中用于意指“用作实例、例子或说明”。本文中描述为“示范性”及/或“实例性”的任何实施例未必解释为比其它实施例较佳或有利。同样地,术语“本发明的实施例”不需要本发明的所有实施例包含所论述的特征、优点或操作模式。
此外,某些实施例是就由(例如)计算装置的元件执行系列动作方面加以描述。应认识到,本文中所描述的各种动作可通过特定电路(例如,专用集成电路(ASIC))、通过由一或多个处理器执行的程序指令或由两者的组合来执行。另外,本文中所描述的这些动作序列可被认为完全体现在任何形式的计算机可读存储媒体内,所述计算机可读存储媒体其中存储有对应的计算机指令集,所述计算机指令集在执行时将致使相关联处理器执行本文中所描述的功能性。因此,本发明的各种方面可以若干个不同形式体现,已预期其全部在所主张标的物的范围内。另外,对于本文中所描述的实施例中的每一者,对应形式的任何此些实施例可在本文中描述为(例如)“经配置以”执行所描述动作的“逻辑”。
通常,除非另有明确说明,否则如贯穿本发明所使用的短语“经配置以...的逻辑”意欲援引至少部分地用硬件实施的实施例,且并不意欲映射至独立于硬件的纯软件实施方案。此外,将了解,各种块中经配置逻辑或“经配置以...的逻辑”并不限于特定逻辑门或元件,但通常是指执行本文中所描述功能性的能力(经由硬件或硬件与软件的组合)。因此,如各种块中所说明的经配置逻辑或“经配置以...的逻辑”未必实施为逻辑门或逻辑元件而不管共享词语“逻辑”。从对下文更详细描述的实施例的审视,所属领域的技术人员将清楚各种块中的逻辑之间的其它交互或合作。
客户端(本文中被称作用户设备(UE))可为移动或静止的,且可与无线电接入网络(RAN)通信。如本文中所使用,术语“UE”可互换地称作“存取终端”或“AT”、“无线装置”、“订户装置”、“订户终端”、“用户台”、“订户站”、“用户终端”或UT、“移动终端”、“移动站”及其变化形式。通常,UE可经由RAN与核心网络通信,且经由核心网络,UE可与外部网络(例如,因特网)连接。当然,连接到核心网络及/或因特网的其它机构还可能用于UE,例如经由有线接入网络、WiFi网络(例如,基于IEEE 802.11,等),等等。UE可通过多个类型的装置中的任一者体现,包含但不限于PC卡、紧凑快闪装置、外部或内部调制解调器、无线或有线电话,等等。UE可通过其将信号发送到RAN的通信链路被称作上行链路信道(例如,反向业务信道、反向控制信道、接入信道,等等)。RAN可通过其将信号发送到UE的通信链路被称作下行链路或前向链路信道(例如,寻呼信道、控制信道、广播信道、前向业务信道,等)。如本文中所使用,术语业务信道(TCH)可是指上行链路/反向或下行链路/前向业务信道。
图1说明根据本发明的实施例的无线通信***100的高级***架构。无线通信***100含有UE 1…N。UE 1…N可包含蜂窝式电话,包含“智能电话”、个人数字助理(PDA)、寻呼机、膝上型计算机、平板计算机、桌上型计算机,等等。例如,在图1中,UE 1…2经说明为蜂窝式呼叫电话,UE 3…5经说明为蜂窝式触摸屏电话或“智能电话”,且UE N经说明为桌上型计算机或PC。
参考图1,UE 1…N经配置以经由物理通信接口或层(在图1中展示为空气接口104、106、108及/或直接有线连接)与接入网络(例如,RAN 120、接入点125,等)通信。空中接口104及106可遵守给定蜂窝式通信协议(例如,CDMA、EVDO、eHRPD、GSM、EDGE、W-CDMA、LTE,等),而空中接口108可遵守无线IP协议(例如,IEEE 802.11)。RAN 120包含多个接入点,所述接入点经由空中介面(例如,空中介面104及106)服务UE。RAN 120中的接入点可被称作接入节点或AN、接入点或AP、基站或BS、节点B、eNode B,等等。这些接入点可为陆地接入点(或地面站)或卫星接入点。RAN 120经配置以连接到核心网络140,所述核心网络可执行各种各样的功能,包含由RAN 120服务的UE与由RAN 120或不同RAN一起服务的其它UE之间的桥接电路交换(CS)呼叫,且还可调解与例如因特网175的外部网络的包交换(PS)数据的互换。因特网175包含多个路由代理及处理代理(出于便利起见,图1中未展示)。在图1中,UE N经展示为直接连接到因特网175(即,与核心网路140分离,例如,经由WiFi或基于802.11网络的以太网连接)。因特网175可借此用于经由核心网络140在UE N与UE 1…N之间桥接包交换数据通信。图1中还展示与RAN 120分离的接入点125。接入点125可独立于核心网络140连接到因特网175(例如,经由例如FiOS的光学通信***、电缆调制解调器,等)。空中接口108可经由本地无线连接(在实例中,例如IEEE 802.11)服务UE 4或UE 5。UE N经展示为有线连接到因特网175,例如直接连接到调制解调器或路由器(其可在实例中对应于接入点125自身(例如,具有有线及无线连接性两者的WiFi路由器))的桌上型计算机。
参考图1,服务器170经展示为连接到因特网175、核心网络140或两者。服务器170可实施为多个结构上分离的服务器,或替代地可对应于单个服务器。如下文将更详细描述,服务器170经配置以支持用于UE的一或多个通信服务(例如,因特网语音协议(VoIP)会话、即按即通(PTT)会话、群组通信会话、社交网络服务,等),所述用户可经由核心网络140及/或因特网175连接到服务器170,及/或将内容(例如,网页下载)提供到UE。
本发明的各种实施例可实施于各种装置中的任一者上,例如,图2的移动装置200。移动装置200可对应于图1中的UE 1…N中的任一者。参考图2,为简单起见,图2的框图中所说明的各种特征及功能使用共用总线216连接在一起,此意欲表示这些各种特征及功能以操作方式耦合在一起。所属领域的技术人员将认识到,其它连接、机构、特征、功能或其类似者可经提供且视需要调适从而以操作方式耦合并配置实际便携式无线装置。此外,还认识到,图2的实例中所说明的特征或功能中的一或多者可经进一步细分或图2中所说明的特征或功能中的两者或多于两者可经组合。
虽然移动装置(例如,移动装置200)的内部组件可用不同硬件配置体现,但在图2中展示内部硬件组件的基本高级移动装置配置。移动装置200可包含一或多个广域网(WAN)收发器204,所述一或多个广域网收发器可连接到一或多个天线202。WAN收发器204包括适合用于与图1的RAN 120通信及/或检测往/返所述RAN的信号,及/或与网络内的其它移动装置直接通信的装置、硬件及/或软件。在一个方面中,WAN收发器204可包括适合于与无线基站的CDMA网络通信的CDMA通信***;然而在其它方面中,无线通信***可包括另一类型的蜂窝式电话网络,例如,TDMA或GSM。另外,可使用另一其它类型的广域无线网络技术,例如,WiMAX(IEEE 802.16),等。移动装置200还可包含可连接到一或多个天线202的一或多个局域网(LAN)收发器206。LAN收发器206包括适合用于与图1中的接入点125通信及/或检测往/返所述接入点的信号,及/或与网络内的其它行动装置直接通信的装置、硬件及/或软件。在一个方面中,LAN收发器206可包括适合与一或多个无线接入点进行通信的Wi-Fi(802.11x)通信***;然而,在其它方面中,LAN收发器206包括另一类型的局域网,个人区域网(例如,蓝牙)。另外,可使用另一其它类型的无线网络技术,例如,超宽带、ZigBee、无线USB,等。
如本文中所使用,缩写术语“无线接入点”(WAP)可用于指代接入点125及/或RAN120。具体来说,在下文所呈现的描述中,在使用术语“WAP”时,应理解,实施例可包含移动装置200,所述移动装置可利用来自多个接入点125、多个RAN 120或两者的任一组合的信号。由行动装置200利用的WAP的具体类型可取决于操作环境。此外,行动装置200可在各种类型的WAP之间动态地选择以便达成准确的位置解决方案。在其它实施例中,各种网络元件可以对等方式操作,借此(例如)移动装置200可被替换为WAP,或反之亦然。其它对等实施例可包含代替一或多个WAP起作用的另一移动装置(未展示)。
SPS接收器208还可被包含在移动装置200中。SPS接收器208可连接到一或多个天线202用于接收卫星信号。SPS接收器208可包括适合用于接收并处理SPS信号的任何硬件及/或软件。SPS接收器208酌情从其它***请求信息及操作,且执行使用由任何合适的SPS算法获得的测量值来确定移动装置200的位置所需要的计算。
运动传感器212可耦合到处理器210以提供与从由WAN收发器204、LAN收发器206及SPS接收器208接收的信号导出的运动数据无关的移动及/或定向信息。通过实例方式,运动传感器212可利用加速计(例如,MEMS装置)、陀螺仪、地磁传感器(例如,指南针)、高度计(例如,气压高度计)及/或任何其它类型的移动检测传感器。此外,运动传感器212可包含多个不同类型的装置且组合其输出以便提供运动信息。例如,运动传感器212可使用多轴加速计及定向传感器的组合来提供在2-D及/或3-D坐标***中计算位置的能力。
处理器210可经由总线216连接到WAN收发器204、LAN收发器206、SPS接收器208及运动传感器212。处理器210可包含提供处理功能以及其它计算及控制功能的一或多个微处理器、微控制器及/或数字信号处理器。处理器210还可耦合到存储器214,所述存储器用于存储用于在移动装置200内执行经编程功能性的数据及软件指令。存储器214可为处理器210机载(例如,在同一IC封装内),及/或存储器可为在处理器外部的存储器且经由共用总线216(或其它数据总线)在功能上耦合。
处理器210可进一步包含或耦合到MMU 230。MMU 230可经配置以如本文中所描述预取地址转换。在实施例中,MMU 230可检测与和MMU 230相关联的一或多个转换高速缓冲存储器232有关的触发条件,其中触发条件与触发地址相关联。一或多个转换高速缓冲存储器232可为MMU 230的组件,耦合到MMU 230,存储在存储器214中或其类似者。MMU 230可进一步产生描述待预取到一或多个转换高速缓冲存储器232中的地址转换序列的序列描述符,其中地址转换序列包括对应于邻近于含有触发地址的地址范围的多个地址范围的多个地址转换。MMU 230可进一步将地址转换请求发布到一或多个转换高速缓冲存储器232以用于获得地址转换序列中的多个地址转换中的每一者,其中一或多个转换高速缓冲存储器232基于一或多个转换高速缓冲存储器232中不存在至少一个地址转换而将多个地址转换中的至少一个地址转换预取到一或多个转换高速缓冲存储器232中。
移动装置200可包含用户接口218,所述用户接口提供任何合适的接口***,例如,麦克风/扬声器220、小键盘222及允许用户与移动装置200交互的显示器224。麦克风/扬声器220使用WAN收发器204及/或LAN收发器206提供语音通信服务。小键盘222包括用于用户输入的任何合适的按钮。显示器224包括任何合适的显示器,例如,背光式LCD显示器,且可进一步包含用于额外用户输入模式的触摸屏幕显示器。
如本文中所使用,移动装置200可为任何便携式或可移动装置或机器,其可配置以获取从一或多个无线通信装置或网络发射的无线信号,及将无线信号发射到一或多个无线通信装置或网络。如图2中所展示,移动装置200表示此便携式无线装置。因此,通过实例但非限制性,移动装置200可包含无线电装置、蜂窝式电话装置、计算装置、个人通信***(PCS)装置或其它类似可移动配备无线通信的装置、器具,或机器。此外,“移动装置”意欲包含所有装置,包含无线装置、计算机、膝上型计算机,等,所述装置能够例如经由因特网、Wi-Fi或其它网络与服务器通信,且不管在装置处、在服务器处或在与网络相关联的另一装置处是否发生卫星信号接收、辅助数据接收及/或位置相关处理。上述的可操作组合也被视为“行动装置”。
各种实施例还可实施于各种市售服务器装置中的任一者上,例如,图3中所说明的服务器300。在实例中,服务器300可对应于图1中的服务器170的一个实例配置。在图3中,服务器300包含耦合到易失性存储器302及大容量非易失性存储器(例如,磁盘驱动303)的处理器301。服务器300还可包含耦合到处理器301的软磁盘驱动、光盘(CD)或DVD磁盘驱动306。服务器300还可包含耦合到处理器301的网络接入端口304用于与网络307(例如,耦合到其它广播***计算机及服务器或耦合到因特网的局域网)建立数据连接。
处理器301可进一步包含或耦合到MMU 330。MMU 330可经配置以如本文中所描述预取地址转换。在实施例中,MMU 330可检测与和MMU 330相关联的一或多个转换高速缓冲存储器332有关的触发条件,其中触发条件与触发地址相关联。一或多个转换高速缓冲存储器332可为MMU 330的组件,耦合到MMU 330,存储在易失性存储器302或磁盘驱动器303中,或其类似者。MMU 330可进一步产生描述待预取到一或多个转换高速缓冲存储器332中的地址转换序列的序列描述符,其中地址转换序列包括对应于邻近于含有触发地址的地址范围的多个地址范围的多个地址转换。MMU 330可进一步将地址转换请求发布到一或多个转换高速缓冲存储器332以用于获得地址转换序列中的多个地址转换中的每一者,其中一或多个转换高速缓冲存储器332基于一或多个转换高速缓冲存储器332中不存在至少一个地址转换而将多个地址转换中的至少一个地址转换预取到一或多个转换高速缓冲存储器332中。
下表提供关于贯穿本发明所使用的某些术语的定义:
表1—术语与定义
图4说明根据本发明的方面的示范性***400。***400可成为图2中的移动装置200或图3中的服务器300的部分。***400的组件包含一或多个中央处理器,例如处理器402(其可对应于图2中的处理器210或图3中的处理器301)、一或多个互连线(或总线),例如互连线412及414、一或多个***装置(或上游装置),例如装置410A到C,以及一或多个从装置,例如存储器406及从装置408。装置410A到C可包含从MMU 404/SMMU 416、418的角度为“在上游”的装置(例如,图2中的移动装置200或图3中的服务器300)的任何其它组件。即,装置410A到C可为MMU 404/SMMU 416、418从其接收命令/指令的体现***400的装置的任何组件,例如,图形处理单元(GPU)、数字信号处理器(DSP)、高速***组件互连(PCIe)根复合体、USB接口、LAN接口、通用异步接收器/发射器(UART),等。从装置408可为从MMU 404/SMMU416、418接收输出的体现***400的装置的任何“下游”组件。例如,从装置408可包含***寄存器、存储器映射输入/输出,等。
***400进一步包含耦合到处理器402的MMU 404(其可对应于图2的MMU 230或图3的MMU 330)。如将了解,尽管图4说明MMU 404为处理器402的部分,但MMU 404可在外部地耦合到处理器402。
***400还包含SMMU 416及418。SMMU以处理器的MMU(例如,MMU 404)转换用于处理器存储器的地址几乎相同方式为上游装置业务提供地址转换服务。参考图4,每一组件包含“S”及/或“M”,指示其为上游装置的“从装置”及/或下游装置的“主装置”。如图4中所说明,SMMU(例如,SMMU 416及418)驻存在***装置的主端口及***从装置之间。例如,如图4中所说明,SMMU 416及418驻存在装置A到C 410A到C的主端口与***从装置(例如,***互连线412)之间。
单个SMMU可服务单个***装置或多个***装置,此取决于***拓扑、吞吐量要求,等。图4说明其中装置A 410A具有专用SMMU 416而装置B 410B及C 410C共享SMMU 418的实例性拓扑。应注意,尽管图4中所展示的箭头说明所说明组件间的单向通信,但此简单地展示通过MMU 404及SMMU 416及418的示范性通信。如所属领域中已知,***400中的组件间的通信可为双向的。
MMU(例如MMU 404及SMMU 416与418)的主要功能包含地址转换、存储器保护及属性控制。地址转换是将输入地址转换成输出地址。转换信息被存储在MMU引用以执行地址转换的转换表中。存在地址转换的两个主要益处。首先,其允许装置寻址大物理地址空间。例如,32位装置(即,能够引用232个地址位置的装置)可使其地址由MMU转换使得其可引用较大地址空间(例如36位地址空间或40位地址空间)。第二,其允许装置连续查看分配于存储器中的缓冲器,而不管储存器缓冲器通常分段、物理上不连续且跨越物理存储器空间分散的事实。
图5说明根据本发明的方面的示范性转换表500。转换表(例如,转换表500)含有对输入地址范围执行地址转换所需要的信息。其由顶层级(或“根”)表510、一或多个中间层级(或“中间”)的子表520集合以及布置在多层级“树”接收中的底层级(或“叶”)表530集合。应注意,为简单起见,图5说明单个中间层级的子表520集合,但可存在任何数目个中间层级。层级的数目可由特定架构规定。例如,ARM架构规定给定转换体质所需要的层级的最大数目。
术语“转换表条目”一般是指转换表中的任何条目。术语“页表条目”在本文中与术语“转换表条目”互换使用。在给定子表(例如,图5中的子表520)内,条目并非必须为相同类型。例如,一个条目可为“块/页”描述符(指示条目为页节点及因此最终映射),且邻近条目可为“表”描述符,其指向下一层级的表(例如,图5中的子表520中的一者)。换句话说,为执行转换,并非始终需要图5中所说明的三个查找(例如,510、520及530)。一些表查看可在两个层级之后(例如,在520处)或甚至在一个层级(例如,在510处)终止(即,遇到块/页描述符)。在这些状况下,块/页描述符将映射较大范围的虚拟地址空间。
用输入地址的子区段为每一子表520加索引。每一子表510到530由转换表描述符组成(即,可含有“叶”节点)。存在三个基本类型的描述符:1)无效描述符,其指示针对对应的虚拟地址的映射不存在,2)表面描述符,其含有下一层级子表的基础地址且可含有与在查看期间遇到的所有随后描述符有关的转换信息(例如,存取权限),及3)块描述符,其含有用于计算与块描述符有关的最终输出地址及属性/权限的基础输出地址。
遍历转换表以执行地址转换的过程被称作“转换表查看”。转换表查看是通过使用过输入地址的子区段来加索引到转换子表,且发现下一地址直到遇到块描述符为止来完成。转换表查看由一或多个“步骤”组成。转换表查看的每一“步骤”涉及1)对转换表的存取,其包含读取(且可能更新)转换表,且2)更新转换状态,此包含(但不限于)计算待引用的下一地址。每一步骤取决于来自查看的先前步骤的结果。针对第一步骤,存取的第一转换表条目的地址随转换表基础地址而变且为待转换的输入地址的部分。针对每一随后步骤,所存取的转换表条目的地址随来自上一步骤的转换表条目而变且为输入地址的部分。
在遇到块描述符且计算最终转换状态之后计算转换表查看。如果遇到无效转换表描述符,那么查看已发现缺点且必须在已更新页表以用有效的转换表描述符(块或表描述符)替换无效转换表描述符之后中止或重试。来自转换表查看的所有先前步骤的组合信息确定“转换”的最终转换状态且因此影响地址转换的最终结果(输出地址、存取权限,等)。
地址转换为将输入地址及属性集变换成输出地址及属性(从最终转换状态导出)的过程。图6说明根据本发明的方面的地址转换中所涉及的步骤。图6中所说明的流程可由SMMU(例如SMMU 416或418)执行。
在610处,SMMU执行安全状态查找。SMMU能够在安全与非安全执行域之间共享。SMMU基于所述事务的性质而确定传入事务属于哪一域。与安全状态相关联的事务能够存取安全及非安全资源两者。仅允许与非安全状态相关联的事务存取非安全资源。
在620处,SMMU执行上下文查找。每一传入事务与“流ID”相关联。SMMU将“流ID”映射到上下文。上下文确定SMMU将如何处理事务:1)绕过地址转换以使得将缺省变换应用于属性,但不发生地址转换(即,未咨询转换表),2)故障,借此软件通常被通知有故障,且SMMU终止事务,使得其未向下游发送到其既定目标,或3)执行转换,借此咨询转换表以执行地址转换且定义属性。转换要求一或两个转换上下文组(分别针对单级及嵌套式转换)的资源。转换上下文组定义用于转换的转换表、缺省属性及权限。
在630处,SMMU执行转换表查看。如果事务需要转换,那么咨询转换表以确定输出地址及对应于输入地址的属性。如果事务映射到旁路上下文,那么不需要转换。替代地,应用缺省属性且不执行任何地址转换。
在640处,SMMU执行权限检查。转换过程定义控管对所转换的存储器的每一区域的存取的权限。权限指示针对给定区域允许哪些类型的存取(即,读取/写入),且存取是否需要经提高的权限级别。在转换完成时,对照事务的属性比较所存取的存储器的区域的经定义权限。如果权限允许与事务相关联的存取,那么允许事务在下游传播到其既定目标。如果事务不具有足够权限,那么SMMU产生故障且不允许事务在下游传播。
在650处,SMMU执行属性控制。除了地址转换外,SMMU控管与每一事务相关联的属性。属性指示例如以下的事项:所存取的存储器的类型(例如,装置、正常,等),存储器区域是否可共享,指示是否应高速缓存存储器区域的暗示,等。SMMU通过组合/越权控制来自数个源的信息(诸如1)传入属性,借此传入属性通常仅在绕过转换时影响输出属性,2)SMMU寄存器中的静态编程值,及/或3)转换表条目)来确定外传事务的属性。
在660处,SMMU应用偏移。每一转换表条目定义连续范围的输入地址的输出地址映射及属性。转换表可映射各种大小的输入地址范围。转换表条目中指示的输出地址因此为所映射范围的基础输出地址。为计算最终输出地址,基础输出地址与从输入地址及范围大小确定的偏移组合:
Output_address=base_output_address+(input_address mod range_size)
换句话说,输入地址及输出地址的N个最低有效位相同,其中N是通过由给定转换表条目映射的地址范围的大小确定。
在图6中所说明的转换过程的最后步骤处,所得转换状态表示完整转换。完整转换可存储在转换高速缓冲存储器中以避免必须在下一次将到存储器的同一块的输入地址发布到SMMU时执行转换表查看的所有步骤。
在图6中所说明的转换表过程的任何步骤(除最后步骤外)处,所得转换状态表示部分完整转换。部分完整转换可存储在转换高速缓冲存储器中以避免必须在下一次将到存储器的同一(或邻近)块的输入地址发布到SMMU时执行转换表查看的所有相同步骤。部分完整转换是通过执行转换查看的剩余步骤来完成。
转换高速缓冲存储器(有时被称作转换备用缓冲器(TLB))是由一或多个转换高速缓冲存储器条目构成。转换高速缓冲存储器以以下形式中的一或多者存储转换表信息:1)完全完整转换,其含有完成转换所需要的所有信息,2)部分完整转换,其仅含有完成转换所需要的信息的部分使得剩余信息必须从转换表或其它转换高速缓冲存储器检索,及/或3)转换表数据。
转换高速缓冲存储器辅助使转换随后地址所需要的平均时间最小化:1)减少在转换过程期间存取转换表所需要的存取的平均次数,及2)将转换及/或转换表信息保持在快速存储装置中。与含有转换表的主存储器存储装置相比,转换高速缓冲存储器通常较快速存取。具体来说,参考图6,替代在630处执行转换表查看,SMMU可执行转换高速缓冲存储器查找以确定所请求地址是否已存在于转换高速缓冲存储器中。如果所请求地址已存在于转换高速缓冲存储器中,那么SMMU可跳过630处的转换表查看且进行到640。
图7说明根据本发明的方面的示范性转换高速缓冲存储器条目700。转换高速缓冲存储器条目700由标签区段710及数据区段720组成。标签区段710包括可在转换高速缓冲存储器的搜索期间(或查找)期间与搜索比较数进行比较的一或多个字段。这些字段中的一者可为指示是否用有意义/有效信息填充转换高速缓冲存储器条目700的有效位712。其它场可包含地址空间识别符、虚拟机器ID、安全状态、异常级别,及/或转换类型,所有这些共同形成“上下文信息”714。
其它字段可包含匹配地址范围716,针对其转换高速缓冲存储器条目可(或可不)保持有效转换信息。地址范围716可编码为开始及结束地址值或通过地址及地址掩模编码。其它字段(未展示)可包含用于TLB无效用途的无效地址范围。在一些状况下,无效地址范围及匹配地址范围始终相等且因此可一起使用相同存储/字段(例如,地址范围716)表示为一个字段。
数据区段720包括含有来自转换表及/或转换过程的信息的一或多个数据子区段722。每一数据子区段722可存储关于以下中的一者的数据:1)完全完整转换,2)部分完整转换,或3)转换表条目。
保持完全完整转换的数据子区段(例如,数据子区段722)含有一或多个数据字段。这些字段中的一者可包含有效位(未展示)以指示存储在数据子字段722中的数据是否为有效的。在仅存在一个数据子区段722的转换高速缓冲存储器条目中,通常不需要有效位,这是因为标签区段710中的有效位712足以指示数据子区段722是否含有有效信息。数据子区段722进一步包含用以编码基础地址726的一个字段及用以编码由执行地址转换过程的所有步骤所得的最终转换状态724的一或多个字段。此可包含:1)可编码与完整转换有关的存取权限的一或多个字段,2)可编码与完整转换有关的存储器属性的一或多个字段,3)可编码与完整转换有关的高速缓冲存储器属性的一或多个字段,或4)可编码与完整转换有关的***特定信息的一或多个字段。
保持部分完整转换的数据子区段(例如,数据子区段722)含有一或多个数据字段。这些字段中的一者可包含有效位(未展示)以指示存储在子字段中的数据是否为有效的。在仅存在一个数据子区段的转换高速缓冲存储器条目中,通常不需要有效位,这是因为标签区段710中的有效位712足以指示数据子区段722是否含有有效信息。数据子区段722进一步包含用以编码基础地址726的一个字段及用以编码由执行地址转换过程的步骤中的一或多者所得的最终转换状态724的一或多个字段。此可包含:1)可编码与部分完整转换有关的存取权限的一或多个字段,2)可编码与部分完整转换有关的存储器属性的一或多个字段,3)可编码与部分完整转换有关的高速缓冲存储器属性的一或多个字段,或4)可编码与部分完整转换有关的***特定信息的一或多个字段。
保持转换表数据转换的数据子区段722可含有一或多个数据字段。这些字段中的一者可包含有效位以指示存储在数据子字段722中的数据是否为有效的。在仅存在一个数据子区段的转换高速缓冲存储器条目中,通常不需要有效位,这是因为标签区段中所含有的有效位712足以指示数据子区段722是否含有有效信息。数据子区段722可进一步包含用以保持/存储转换表条目的一个字段。
用于完整转换的完整转换高速缓冲存储器由一或多个(例如,N个)转换高速缓冲存储器条目且每一转换高速缓冲存储器条目保持关于一个完整转换的信息。
可以单级(一级转换)或以二级(二级或嵌套式转换)来执行转换。图8说明根据本发明的方面的示范性二级或嵌套式转换流程800。在二级转换中,MMU(例如,图4中的MMU404)接收待由级1转换810转换的输入地址,级1转换后续接着级2转换820。二级转换称作“嵌套式”转换,这是因为来自级1转换过程的每一参考需要经受级2转换过程。
级1转换810涉及接收输入地址且产生级1输出地址(其也为级2输入地址)。在级1转换810的过程期间可能需要级1转换表的转换表查看。每一步骤/对级1转换表的存取需要经受级2转换820。
级2转换820涉及接收级2输入地址且产生级2输出地址。在级2转换820的过程期间可需要级2转换表的转换表查看。
MMU转换高速缓冲存储器中的需求未命中通过导致增加的存储器等待时间(延迟)、减少的带宽利用率及用以隐藏延迟的增加的缓冲而消极地影响***性能及***成本。这些消极影响在单级转换环境中为显著的且在嵌套式(二级)转换环境中更显著。用以使此些需求未命中的数目最小化的当前解决方案包含预测未来将需要先前使用转换且将其存储在转换高速缓冲存储器中。如果在转换高速缓冲存储器中发现转换,那么此减少未来地址的转换延迟。然而,如果在转换高速缓冲存储器中未发现转换,那么未来地址仍发生需求未命中。另一解决方案(被称作“有限预取”)为预取邻近地址以希望将邻近转换添加于转换高速缓冲存储器中。然而,有限预取对多媒体核心并不足够,多媒体核心通常始终需要同时存取多个邻近转换。
为使需求未命中的数目最小化,本发明准许MMU(例如,MMU 404)预测哪些地址可能被上游装置存取,且将发布对那些地址的转换请求。转换将因此为完整的且被存储在MMU的转换高速缓冲存储器中,使得在上游装置第一次存取地址时,其不会招致需求未命中或转换表查看的增加的等待时间。由于所揭示机制减少(或消除)需求未命中的数目,因此贯穿MMU的延迟减少,此导致经改进***性能及减少***成本。
图9说明根据本发明的方面的示范性预取***900。预取***900可体现于MMU(例如图2中的MMU 230、图3中的MMU 330或图4中的MMU 404以及SMMU 416和418)中。如上文所述,MMU可为硬件或软件组件。如此,预取***900的组件可为硬件、软件或硬件与软件的组合。
参考图9,预取触发监视器910监视转换高速缓冲存储器活动以确定起始预取的时间及用于哪一(些)地址。触发预取的地址在本文中被称作“触发地址”。可存在触发预取的若干个事件。例如,可当针对尚未经受预取(此状态记录于高速缓冲存储器条目的预取旗标中)的对准地址范围(窗口)内的地址(“触发地址”)检测到转换高速缓存命中时触发预取。当经触发时,对应于触发地址的转换高速缓冲存储器条目的预取旗标经设置以指示已对含有所述触发地址的地址范围执行预取。此防止对此窗口的未来存取指示冗余预取请求。
作为另一实例,可当检测到转换高速缓存未命中时触发预取。在此状况下,对应于触发地址的转换高速缓冲存储器条目的预取旗标未经设置以指示已对含有所述触发地址的地址范围执行预取,这是因为不存在待更新的此类高速缓冲存储器条目。
预取引擎920包含以下组件:筛选器922、预取调度器924、一或多个预取地址请求产生器(FSM)926及仲裁器928。筛选器922使冗余预取请求最小化。预取调度器924基于触发预取的地址而产生预取地址序列。一或多个预取地址请求产生器926中的每一者接受来自预取调度器924的序列描述符且产生对序列中的每一地址的预取地址请求。多个预取地址请求产生器926可并行操作以同时处理多个预取序列。仲裁器928在可用预取地址请求间进行仲裁且将预取地址请求发布到转换高速缓冲存储器930及940(其可对应于图2中的转换高速缓冲存储器232或图3中的332)。尽管未要求,但图9说明两个高速缓冲存储器以区分存储完整转换的高速缓冲存储器(即,转换高速缓冲存储器930)及存储部分转换的高速缓冲存储器(即,转换高速缓冲存储器940)。如果未发现对预取地址的完整转换,那么执行转换且因此填充转换高速缓冲存储器930及940。
现在更详细地参考筛选器922,筛选器922筛选预取请求。在针对给定触发地址触发预取时,检查预取引擎920中的所有现有预取请求。如果最近触发的预取请求的触发地址在任何现有预期请求的预取窗口内,那么立即丢弃最近触发预取请求。此减少由预取引擎920请求的冗余地址转换的数目。
在触发预取时,预取调度器924产生描述将预取的地址转换序列的序列描述符。基于触发地址、预取窗口大小及步幅长度而产生此序列中的地址。图10说明根据本发明的方面的示范性预取窗口1000。预取窗口大小可编程且定义含有触发地址的对准地址范围。预取窗口1000的下限及上限在本文中分别被称作“窗口开始”及“窗口结束”。针对给定预取请求,转换请求限制于由预取窗口1000限界的地址。应注意,上述情形的例外为下文所论述的“扩展预取窗口”,此产生在窗口上方及下方的请求。
预取窗口1000经划分成具有“步幅长度”的相等大小步幅长度区域1010及1020A到C。针对区域1020A到C中的每一者,但非针对含有触发地址的步幅长度区域1010发布转换请求,这是因为对提取对此区域的转换(如果需要)作为对触发地址的初始存取的结果。应注意,预取旗标针对预取窗口1000(即,步幅长度区1010及1020A到C)内的区域经设置(例如,设置成“1”)。
步幅长度为发布预取请求的地址粒度。步幅长度可为例如固定值(例如,4kB,匹配***中的最小页大小)、可编程值(例如,允许先验知晓接入模式的客户端选择最佳步幅)或针对每一预取请求动态确定。在动态确定步幅长度的状况下,在通过转换高速缓冲存储器命中触发预取时,例如,可基于与触发地址相关联的页大小而设置步幅长度。
除了在预取窗口1000内以“步幅长度”间隔产生转换请求外,预取调度器924还产生对紧靠在窗口边界上方的地址(较高地址)及/或紧靠在窗口边界下方的地址(较低地址)(即,区域1030A到B)的转换请求。上述情形可由可编程使能信号来控制。预取这些地址转换意谓其将常驻在转换高速缓冲存储器930及940中作为跨越预取窗口边界的客户端存取步幅。然而,在用这些“扩展预取窗口”转换填充转换高速缓冲存储器930及940时,高速缓冲存储器条目的预取旗标并未经设置(例如,保持为“0”)。此确保在上游装置横跨预取窗口边界且存取这些高速缓存转换的情况下/时将起始预取。
图11说明根据本发明的方面的预取窗口大小及步幅长度实例1110及1120。在实例1110中,步幅长度为16kB且窗口大小为32kB。在实例1120中,步幅长度为16kB且窗口大小为64kB。应注意,术语“TTE”意指“转换表条目”。
预取调度器924发布对每一步幅长度区域的转换请求的次序可编程。图12说明根据本发明的方面的可请求步幅长度区域的各种方式。如上文所述,始终跳过含有触发地址的步幅长度区域。
预取窗口1210说明通过“向前前进”来选择步幅长度区域。对包含“窗口开始”的区域发布第一转换请求,且所请求的每一随后地址递增步幅长度直到请求含有“窗口结束”的步幅长度区域。
预取窗口1220说明通过“反向前进”来选择步幅长度区域。对包含“窗口结束”的区域发布第一转换请求,且所请求的每一随后地址递减步幅长度直到请求含有窗口开始的步幅长度区域。
预取窗口1230说明通过“交替”来选择步幅长度区域。针对紧靠在目标地址上方的步幅长度区域(高地址),接着针对紧靠在目标地址下方的步幅长度区域,接着针对在目标地址上面的第二步幅长度,接着针对在目标地址下面的第二步幅长度等发布第一转换请求。在达到窗口边界时,存取包围到预取窗口1230的相对端。
可存在可请求步幅长度区域的任何数目个方式。例如,预取调度器924可基于编程而发布对步幅长度区域的请求。即,步幅长度区域的序列的次序可基于可编程序列产生器。作为另一实例,步幅长度区域的序列的次序在预取窗口内可为随机的。
参考图9,预取调度器924将预取助理描述符存储在先进先出队列(FIFO)中。序列描述符在其是回应于预取触发器而产生时经排队到FIFO。如果FIFO是满的,那么存在两个流程控制的方法:丢弃最新请求及丢弃最旧请求。关于丢弃最新请求,替代地丢弃尝试推送(排队)的序列描述符。此方法可用于保证在预取触发器经保证起始预取地址请求的情况下才服务所述预取触发器。关于丢弃最早请求,弹出并丢弃最旧请求(在FIFO的头部),因此为当前所发布的新请求留出空间。在预取地址请求产生器926可用时,将序列描述符解除排队。
参考图9,预取地址请求产生器926产生对来自预取调度器924的序列描述符中的每一地址的预取地址请求。多个预取地址请求产生器926可并行操作,允许多个序列描述符的同时解析。在预取地址请求产生器926具有可用请求,且转换高速缓冲存储器930及940能够接受预取地址时,将请求从预取地址请求产生器926发送到转换高速缓冲存储器930及940。在将对给定序列描述符的最终地址请求发送到转换高速缓冲存储器930及940时,对应预取地址请求产生器926变得可用于接收新序列描述符。
如果多个预取地址请求产生器926具有可用请求,那么仲裁器928确定将哪一者发送到转换高速缓冲存储器930及940。仲裁算法包含以下变体:轮循机制、可编程优先级(例如,基于上游装置优先化)或基于选择机制的某一其它优先级。
应注意,预取引擎920不需要对预取地址请求的响应。确切地说,其发布对填充转换高速缓冲存储器930及940的用途的请求。因此,在已发送给定请求之后,针对所述给定请求不需要追踪任何状态。
参考图9,在仲裁器928将预取地址请求发布到转换高速缓冲存储器930及940之后,执行转换高速缓冲存储器查询、转换表查看等以完成地址转换。如上文所述,在用从预取事务起始的结果填充转换高速缓冲存储器930及940时,必须设置高速缓冲存储器条目的预取旗标。此防止对同一预取窗口的未来存取起始冗余预取请求。
关于TLB无效,在MMU接收TLB无效命令时,简单地丢弃预取引擎920中的所有预取请求。替代地,可例如基于TLB无效命令的类型(例如,匹配地址、虚拟机器识别符(VMID),等)而更大程度地区别丢弃预取请求。
图13说明根据本发明的至少一个方面的用于预取MMU(例如,图2中的MMU 230、图3中的MMU 330、图4中的MMU 404、SMMU 416、SMMU 418)中的地址转换的示范性流程。
在1310处,MMU检测与和MMU相关联的一或多个转换高速缓冲存储器(例如,图2中的转换高速缓冲存储器232或图3中的332)有关的触发条件。触发条件可与触发地址相关联,且可为一或多个转换高速缓冲存储器中的一者的触发地址的命中。替代地,触发条件可为对一或多个转换高速缓冲存储器中的触发地址的未命中。
在1320处,MMU产生描述待预取到一或多个转换高速缓冲存储器中的地址转换序列的序列描述符。地址转换序列可为对应于邻近于含有触发地址的地址范围的多个地址范围的多个地址转换。
序列描述符可包含触发地址、地址转换序列的大小及步幅长度大小。地址转换的序列的大小可定义将预取地址转换的地址范围,其中地址转换序列的大小被划分成步幅长度大小的步幅长度区域。序列描述符可描述每步幅长度区域一个地址转换请求。步幅长度大小可为可编程的、固定的、基于基础高速缓冲存储器结构或基于触发地址的页大小而动态确定。
序列描述符可定义刚好高于由地址转换序列的大小定义的地址范围的步幅长度区域及刚好低于所述地址范围的步幅长度区域的地址转换请求。在所述状况下,可不设置对应于刚好高于在由序列描述符大小定义的地址范围的步幅长度区域及刚好低于由序列描述符大小定义的地址范围的步幅长度区域的一或多个转换高速缓冲存储器条目中的预取旗标。
尽管图13中未说明,但流程可进一步包含确定触发地址是否含在有效地址转换请求的序列描述符中。在所述状况下,基于含在有效地址转换请求的序列描述符中的触发地址不产生描述待预取的地址转换序列的序列描述符。
在1330处,MMU任选地将一或多个序列描述符存储在FIFO队列中。
在1340处,MMU任选地基于预取请求产生器可用于产生对应于经取消排队的序列描述符的地址转换请求而将来自FIFO队列的序列描述符取消排队。预取请求产生器可产生对经取消排队序列描述符中定义的每一地址的预取请求。将新序列描述符存储在完整FIFO队列中的尝试致使新序列描述符被丢弃。替代地,将新序列描述符存储在完整FIFO队列中的尝试致使FIFO队列中的最旧序列描述符被丢弃。在实施例中,多个预取请求产生器可对来自FIFO队列的多个序列描述符并行操作。
在1350处,MMU将地址转换请求发布到一或多个转换高速缓冲存储器以获得地址转换序列中的多个地址转换中的每一者。一或多个转换高速缓冲存储器可基于一或多个转换高速缓冲存储器中不存在至少一个地址转换而将多个地址转换的至少一个地址转换预取到一或多个转换高速缓冲存储器。
预取地址转换请求的次序可为从地址转换序列中的地址转换的第一步幅长度区域前向的次序,从地址转换序列的地址转换的最后步幅长度区域反向的次序,从邻近于含有触发地址的地址转换的步幅长度区域的地址转换的步幅长度区域交替的次序,可编程的次序,或随机次序。
尽管图13中未说明,流程可进一步包含设置对应于触发地址的第一转换高速缓冲存储器条目中的预取旗标以确保对对应于第一转换高速缓冲存储器条目的地址范围仅执行一次预取,且设置对应于邻近于含有触发地址的地址范围的多个地址范围中的至少一者的第二转换高速缓冲存储器条目中的预取旗标以确保在对第二转换高速缓冲存储器条目的随后命中时不触发预取。在所述状况下,触发条件可为预取旗标未被设置。
图14说明表示为一系列相关功能模块的实例性MMU设备1400。用于检测的模块1402可至少在一些方面中对应于例如预取触发监视器,例如,图9中的预取触发监视器910,如本文中所论述。用于产生的模块1404可至少在一些方面中对应于例如预取调度器,例如图9中的预取调度器924,如本文中所论述。用于存储的任选模块1406可至少在一些方面中对应于例如预取调度器,例如图9中的预取调度器924,如本文中所论述。用于取消排队的任选模块1408可至少在一些方面中对应于例如预取地址请求产生器,例如,图9中的预取地址请求产生器926,如本文中所论述。用于发布的模块1410可至少在一些方面中对应于例如预取地址请求产生器,例如,图9中的预取地址请求产生器926,如本文中所论述。
图14的模块的功能性可以与本文中的教示一致的各种方式实施。在一些设计中,这些模块的功能性可实施为一或多个电组件。在一些设计中,这些块的功能性可实施为包含一或多个处理器组件的处理***。在一些设计中,这些模块的功能性可使用例如一或多个集成电路(例如,ASIC)的至少部分来实施。如本文中所论述,集成电路可包含处理器、软件、其它有关组件或其某一组合。因此,不同模块的功能性可实施为(例如)集成电路的不同子组,软件模块组的不同子组,或其组合。此外,将了解,(例如,集成电路及/或软件模块组的)给定子组可为多于一个模块提供功能性的至少一部分。
另外,图14表示的组件及功能以及本文中所描述的其它组件及功能可使用任何合适的装置实施。此些装置还可如本文中所教示至少部分地使用对应结构来实施。例如,上文结合图14的用于组合的“模块”所描述的组件可对应于类似指定的用于功能性的“装置”。因此,在一些方面中,此些装置中的一或多者可如本文中教示使用处理器组件、集成电路或其它合适的结构中的一或多者实施。
所属领域的技术人员将了解,可使用各种不同技艺及技术中的任一者表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示可贯穿以上描述所参考的数据、指令、命令、信息、信号、位、符号及码片。
此外,所属领域的技术人员将了解,结合本文中所揭示的实施例描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚地说明硬件及软件的此可互换性,上文通常已就其功能性方面描述了各种说明性组件、块、模块、电路及步骤。此功能性是实施为硬件还是软件取决于强加于整个***的特定应用及设计约束。虽然所属领域的技术人员可针对每一特定应用以变化方式实施所描述功能性,但不应将此些实施方案决策解释为导致对本发明的范围的脱离。
结合本文中所揭示的实施例所描述的各种说明性逻辑块、模块及电路可通过以下各项来实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任一组合。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。还可将处理器实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器或任一其它此类配置。
结合本文中所揭示实施例所描述的方法、序列及/或算法可直接以硬件、由处理器执行的软件模块或两者的组合体现。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可拆卸磁盘、CD-ROM或此项技术中所已知的任何其它形式的存储媒体。示范性存储媒体耦接到处理器使得处理器可从存储媒体读取信息或将信息写入到存储媒体。在替代方案中,所述存储媒体可与处理器成整体。处理器及存储媒体可驻存在ASIC中。ASIC可驻留于用户终端(例如,UE)中。在替代方案中,处理器及存储媒体可作为离散组件驻存于用户终端中。
在一或多个示范性实施例,所描述的功能可以硬件、软件、固件或其任一组合来实施。如果以软件予以实施,那么所述功能可作为一或多个指令或代码而存储于计算机可读媒体上或经由计算机可读媒体进行发射。计算机可读媒体包含计算机存储媒体及通信媒体两者,包含促进将计算机程序从一个地方传送到另一地方的任一媒体。存储媒体可为可由计算机存取的任何可用媒体。通过实例的方式且非限制性,此些计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光学磁碟存储装置、磁盘存储装置或其它磁性存储装置或可用于以指令或数据结构的形式存储所要程序代码且可由计算机存取的其它媒体。此外,可将任何连接适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘及光盘包含光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通过激光以光学方式再现数据。上述各项的组合还应包括在计算机可读媒体的范围内。
虽然前述揭示内容展示本发明的说明性实施例,但请注意,可在本文中作出各种改变及修改而不脱离如随附权利要求书所界定的本发明的范围。根据本文中所描述的本发明的实施例的方法权利要求书的功能、步骤及/或动作不需要以任何特定次序执行。此外,尽管本发明的元件可以单数形式进行描述或主张,但涵盖复数形式,除非明确地陈述对单数形式的限制。
Claims (30)
1.一种预取装置的存储器管理单元MMU中的地址转换的方法,其包括:
检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件,所述触发条件与触发地址相关联;
产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及
将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得所述地址转换序列中的所述多个地址转换中的每一者,
其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在所述多个地址转换中的至少一个地址转换而将所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
2.根据权利要求1所述的方法,其中所述触发条件包括所述一或多个转换高速缓冲存储器中的一者中的所述触发地址的命中。
3.根据权利要求1所述的方法,其进一步包括:
设置对应于所述触发地址的第一转换高速缓冲存储器条目中的预取旗标,以确保对对应于所述第一转换高速缓冲存储器条目的地址范围仅执行一次预取;以及
设置对应于邻近于含有所述触发地址的所述地址范围的所述多个地址范围中的至少一者的第二转换高速缓冲存储器条目中的所述预取旗标,以确保在对所述第二转换高速缓冲存储器条目的随后命中时不触发预取。
4.根据权利要求3所述的方法,其中所述触发条件包括所述预取旗标未被设置。
5.根据权利要求1所述的方法,其中所述触发条件包括对所述一或多个转换高速缓冲存储器中的所述触发地址的未命中。
6.根据权利要求1所述的方法,其进一步包括:
确定所述触发地址是否含在有效地址转换请求的序列描述符中,
其中基于所述触发地址含在所述有效地址转换请求的所述序列描述符中,不产生描述待预取的所述地址转换序列的所述序列描述符。
7.根据权利要求1所述的方法,其中所述序列描述符包含所述触发地址、所述地址转换序列的大小,以及步幅长度大小,其中所述地址转换序列的所述大小定义将预取地址转换的地址范围,其中所述地址转换序列的所述大小经划分成所述步幅长度大小的步幅长度区域,且其中所述序列描述符描述每步幅长度区域一个地址转换请求。
8.根据权利要求7所述的方法,其中所述步幅长度大小为可编程的、固定的、基于基础高速缓冲存储器结构的,或基于所述触发地址的页大小动态确定的。
9.根据权利要求7所述的方法,其中所述序列描述符定义对刚好高于由所述地址转换序列的所述大小定义的所述地址范围的步幅长度区域及刚好低于所述地址范围的步幅长度区域的地址转换请求。
10.根据权利要求9所述的方法,其中不设置对应于刚好高于由所述地址转换序列的所述大小定义的所述地址范围的所述步幅长度区域及刚好低于由所述地址转换序列的所述大小定义的所述地址范围的所述步幅长度区域的一或多个转换高速缓冲存储器条目中的预取旗标。
11.根据权利要求7所述的方法,其中预取地址转换请求的次序包括从所述地址转换序列中的地址转换的第一步幅长度区域前向的次序,从所述地址转换序列中的地址转换的最后步幅长度区域反向的次序,从邻近于含有所述触发地址的地址转换的步幅长度区域的地址转换的步幅长度区域交替的次序,可编程的次序,或随机次序。
12.根据权利要求1所述的方法,其进一步包括:
将一或多个序列描述符存储在先进先出FIFO队列中;以及
基于预取请求产生器可用于产生对应于经取消排队的序列描述符的地址转换请求而将来自所述FIFO队列的所述序列描述符取消排队。
13.根据权利要求12所述的方法,其中所述预取请求产生器产生对所述序列描述符中所定义的每一地址的预取请求。
14.根据权利要求12所述的方法,其中多个预取请求产生器对来自所述FIFO队列的多个序列描述符并行操作。
15.根据权利要求12所述的方法,其中将新序列描述符存储在完整FIFO队列中的尝试致使所述新序列描述符被丢弃。
16.根据权利要求12所述的方法,其中将新序列描述符存储在完整FIFO队列中的尝试致使所述FIFO队列中的最旧序列描述符被丢弃。
17.一种用于预取装置的存储器管理单元MMU中的地址转换的设备,其包括:
经配置以检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件的逻辑,所述触发条件与触发地址相关联;
经配置以产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符的逻辑,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及
经配置以将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得所述地址转换序列中的所述多个地址转换中的每一者的逻辑,
其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在所述多个地址转换中的至少一个地址转换而将所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
18.根据权利要求17所述的设备,其中所述触发条件包括所述一或多个转换高速缓冲存储器中的一者中的所述触发地址的命中。
19.根据权利要求17所述的设备,其进一步包括:
经配置以设置对应于所述触发地址的第一转换高速缓冲存储器条目中的预取旗标以确保对对应于所述第一转换高速缓冲存储器条目的地址范围仅执行一次预取的逻辑;以及
经配置以设置对应于邻近于含有所述触发地址的所述地址范围的所述多个地址范围中的至少一者的第二转换高速缓冲存储器条目中的所述预取旗标以确保在对所述第二转换高速缓冲存储器条目的随后命中时不触发预取的逻辑。
20.根据权利要求19所述的设备,其中所述触发条件包括所述预取旗标未被设置。
21.根据权利要求17所述的设备,其中所述触发条件包括对所述一或多个转换高速缓冲存储器中的所述触发地址的未命中。
22.根据权利要求17所述的设备,其进一步包括:
经配置以确定触发地址是否含在有效地址转换请求的序列描述符中的逻辑,
其中基于所述触发地址含在所述有效地址转换请求的所述序列描述符中,不产生描述待预取的所述地址转换序列的所述序列描述符。
23.根据权利要求17所述的设备,其中所述序列描述符包含所述触发地址、所述地址转换序列的大小,以及步幅长度大小,其中所述地址转换序列的所述大小定义将预取地址转换的地址范围,其中所述地址转换序列的所述大小经划分成所述步幅长度大小的步幅长度区域,且其中所述序列描述符描述每步幅长度区域一个地址转换请求。
24.根据权利要求23所述的设备,其中所述步幅长度大小为可编程的、固定的、基于基础高速缓冲存储器结构的,或基于所述触发地址的页大小动态确定的。
25.根据权利要求23所述的设备,其中所述序列描述符定义对刚好高于由所述地址转换序列的所述大小定义的所述地址范围的步幅长度区域及刚好低于所述地址范围的步幅长度区域的地址转换请求。
26.根据权利要求25所述的设备,其中不设置对应于刚好高于由所述地址转换序列的所述大小定义的所述地址范围的所述步幅长度区域及刚好低于由所述地址转换序列的所述大小定义的所述地址范围的所述步幅长度区域的一或多个转换高速缓冲存储器条目中的预取旗标。
27.根据权利要求23所述的设备,其中预取地址转换请求的次序包括从所述地址转换序列中的地址转换的第一步幅长度区域前向的次序,从所述地址转换序列的地址转换的最后步幅长度区域反向的次序,从邻近于含有所述触发地址的地址转换的步幅长度区域的地址转换的步幅长度区域交替的次序,可编程的次序,或随机次序。
28.根据权利要求17所述的设备,其进一步包括:
经配置以将一或多个序列描述符存储在先进先出FIFO队列中的逻辑;以及
经配置以基于预取请求产生器可用于产生对应于经取消排队的序列描述符的地址转换请求而将来自所述FIFO队列的所述序列描述符取消排队的逻辑。
29.一种用于预取装置的存储器管理单元MMU中的地址转换的设备,其包括:
用于检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件的装置,所述触发条件与触发地址相关联;
用于产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符的装置,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及
用于将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得所述地址转换序列中的所述多个地址转换中的每一者的逻辑,
其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在所述多个地址转换中的至少一个地址转换而将所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
30.一种用于预取装置的存储器管理单元MMU中的地址转换的非暂时性计算机可读媒体,其包括:
用以检测与和所述MMU相关联的一或多个转换高速缓冲存储器有关的触发条件的至少一个指令,所述触发条件与触发地址相关联;
用以产生描述待预取到所述一或多个转换高速缓冲存储器中的地址转换序列的序列描述符的至少一个指令,其中所述地址转换序列包括对应于邻近于含有所述触发地址的地址范围的多个地址范围的多个地址转换;以及
用以将地址转换请求发布到所述一或多个转换高速缓冲存储器以获得所述地址转换序列中的所述多个地址转换中的每一者的至少一个指令,
其中所述一或多个转换高速缓冲存储器基于所述一或多个转换高速缓冲存储器中不存在所述多个地址转换中的至少一个地址转换而将所述至少一个地址转换预取到所述一或多个转换高速缓冲存储器中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/726,454 US10037280B2 (en) | 2015-05-29 | 2015-05-29 | Speculative pre-fetch of translations for a memory management unit (MMU) |
US14/726,454 | 2015-05-29 | ||
PCT/US2016/030435 WO2016195884A1 (en) | 2015-05-29 | 2016-05-02 | Speculative pre-fetch of translations for a memory management unit (mmu) |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107636626A true CN107636626A (zh) | 2018-01-26 |
Family
ID=55919919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680027657.4A Pending CN107636626A (zh) | 2015-05-29 | 2016-05-02 | 用于存储器管理单元(mmu)的转换的推测性预取 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10037280B2 (zh) |
EP (1) | EP3304318A1 (zh) |
JP (1) | JP2018522331A (zh) |
CN (1) | CN107636626A (zh) |
WO (1) | WO2016195884A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427332A (zh) * | 2019-08-05 | 2019-11-08 | 上海兆芯集成电路有限公司 | 数据预取装置、数据预取方法及微处理器 |
CN111552654A (zh) * | 2019-02-08 | 2020-08-18 | 三星电子株式会社 | 对页表遍历的冗余进行检测的处理器 |
CN112835845A (zh) * | 2019-11-22 | 2021-05-25 | 意法半导体(鲁塞)公司 | 用于管理形成例如微控制器的片上***的调试的方法和对应片上*** |
CN114697321A (zh) * | 2022-01-12 | 2022-07-01 | 中国电子科技集团公司第十研究所 | 分布式综合可重构电子***平台架构 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10402332B2 (en) * | 2016-05-24 | 2019-09-03 | Xilinx, Inc. | Memory pre-fetch for virtual memory |
US10185507B1 (en) | 2016-12-20 | 2019-01-22 | Amazon Technologies, Inc. | Stateless block store manager volume reconstruction |
US10809920B1 (en) | 2016-12-20 | 2020-10-20 | Amazon Technologies, Inc. | Block store management for remote storage systems |
US10268593B1 (en) * | 2016-12-20 | 2019-04-23 | Amazon Technologies, Inc. | Block store managamement using a virtual computing system service |
US11507283B1 (en) | 2016-12-20 | 2022-11-22 | Amazon Technologies, Inc. | Enabling host computer systems to access logical volumes by dynamic updates to data structure rules |
US10921991B1 (en) | 2016-12-20 | 2021-02-16 | Amazon Technologies, Inc. | Rule invalidation for a block store management system |
US10402355B2 (en) | 2017-02-08 | 2019-09-03 | Texas Instruments Incorporated | Apparatus and mechanism to bypass PCIe address translation by using alternative routing |
US20180349036A1 (en) * | 2017-06-01 | 2018-12-06 | Seagate Technology Llc | Data Storage Map with Custom Map Attribute |
EP3422192B1 (en) * | 2017-06-28 | 2020-08-12 | Arm Ltd | Address translation data invalidation |
US11221957B2 (en) | 2018-08-31 | 2022-01-11 | International Business Machines Corporation | Promotion of ERAT cache entries |
US10909045B2 (en) * | 2018-12-20 | 2021-02-02 | Arm Limited | System, method and apparatus for fine granularity access protection |
US10725928B1 (en) * | 2019-01-09 | 2020-07-28 | Apple Inc. | Translation lookaside buffer invalidation by range |
US11086806B2 (en) * | 2019-06-03 | 2021-08-10 | Smart IOPS, Inc. | Memory access system to access abstracted memory |
US11151054B2 (en) | 2019-06-27 | 2021-10-19 | International Business Machines Corporation | Speculative address translation requests pertaining to instruction cache misses |
US11429529B2 (en) * | 2019-11-21 | 2022-08-30 | Arm Limited | Prefetching based on detection of interleaved constant stride sequences of addresses within a sequence of demand target addresses |
FR3103586B1 (fr) | 2019-11-22 | 2023-04-14 | St Microelectronics Alps Sas | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
FR3103585B1 (fr) | 2019-11-22 | 2023-04-14 | Stmicroelectronics Grand Ouest Sas | Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
US11422946B2 (en) | 2020-08-31 | 2022-08-23 | Apple Inc. | Translation lookaside buffer striping for efficient invalidation operations |
US11615033B2 (en) | 2020-09-09 | 2023-03-28 | Apple Inc. | Reducing translation lookaside buffer searches for splintered pages |
GB2602035B (en) * | 2020-12-15 | 2022-12-14 | Advanced Risc Mach Ltd | Memory access |
US11841800B2 (en) * | 2021-04-08 | 2023-12-12 | Arm Limited | Apparatus and method for handling stash requests |
CN113656332B (zh) * | 2021-08-20 | 2023-05-26 | 中国科学院上海高等研究院 | 基于合并地址差值序列的cpu缓存数据预取方法 |
US12007905B2 (en) * | 2021-09-24 | 2024-06-11 | Arm Limited | Translation hints |
US11709782B2 (en) * | 2021-10-28 | 2023-07-25 | Arm Limited | Memory address translation |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120072702A1 (en) * | 2010-09-21 | 2012-03-22 | Pierson Matthew D | Prefetcher with arbitrary downstream prefetch cancelation |
CN102498477A (zh) * | 2009-07-13 | 2012-06-13 | 苹果公司 | Tlb预取 |
US20130013867A1 (en) * | 2011-07-06 | 2013-01-10 | Advanced Micro Devices, Inc. | Data prefetcher mechanism with intelligent disabling and enabling of a prefetching function |
CN103443777A (zh) * | 2011-03-03 | 2013-12-11 | 高通股份有限公司 | 具有预填充能力的存储器管理单元 |
US20130339650A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Prefetch address translation using prefetch buffer |
US20140281351A1 (en) * | 2013-03-13 | 2014-09-18 | Jaroslaw Topp | Stride-based translation lookaside buffer (tlb) prefetching with adaptive offset |
CN104133780A (zh) * | 2013-05-02 | 2014-11-05 | 华为技术有限公司 | 一种跨页预取方法、装置及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198439A1 (en) | 2004-03-04 | 2005-09-08 | Fredy Lange | Cache memory prefetcher |
EP1589433A1 (en) | 2004-04-20 | 2005-10-26 | Ecole Polytechnique Federale De Lausanne | Virtual memory window with dynamic prefetching support |
US8341357B2 (en) | 2010-03-16 | 2012-12-25 | Oracle America, Inc. | Pre-fetching for a sibling cache |
US8635431B2 (en) | 2010-12-08 | 2014-01-21 | International Business Machines Corporation | Vector gather buffer for multiple address vector loads |
US20130185515A1 (en) | 2012-01-16 | 2013-07-18 | Qualcomm Incorporated | Utilizing Negative Feedback from Unexpected Miss Addresses in a Hardware Prefetcher |
EP2885713A4 (en) | 2012-08-18 | 2016-03-23 | Qualcomm Technologies Inc | TRANSLATION LOOK ASIDE BUFFER STORE WITH ADVANCE |
US9571377B2 (en) * | 2014-12-11 | 2017-02-14 | Oracle International Corporation | Dynamic denial of service protection |
-
2015
- 2015-05-29 US US14/726,454 patent/US10037280B2/en not_active Expired - Fee Related
-
2016
- 2016-05-02 WO PCT/US2016/030435 patent/WO2016195884A1/en active Search and Examination
- 2016-05-02 JP JP2017560962A patent/JP2018522331A/ja active Pending
- 2016-05-02 CN CN201680027657.4A patent/CN107636626A/zh active Pending
- 2016-05-02 EP EP16721050.9A patent/EP3304318A1/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102498477A (zh) * | 2009-07-13 | 2012-06-13 | 苹果公司 | Tlb预取 |
US20120072702A1 (en) * | 2010-09-21 | 2012-03-22 | Pierson Matthew D | Prefetcher with arbitrary downstream prefetch cancelation |
CN103443777A (zh) * | 2011-03-03 | 2013-12-11 | 高通股份有限公司 | 具有预填充能力的存储器管理单元 |
US20130013867A1 (en) * | 2011-07-06 | 2013-01-10 | Advanced Micro Devices, Inc. | Data prefetcher mechanism with intelligent disabling and enabling of a prefetching function |
US20130339650A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Prefetch address translation using prefetch buffer |
US20140281351A1 (en) * | 2013-03-13 | 2014-09-18 | Jaroslaw Topp | Stride-based translation lookaside buffer (tlb) prefetching with adaptive offset |
CN104133780A (zh) * | 2013-05-02 | 2014-11-05 | 华为技术有限公司 | 一种跨页预取方法、装置及*** |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552654A (zh) * | 2019-02-08 | 2020-08-18 | 三星电子株式会社 | 对页表遍历的冗余进行检测的处理器 |
CN111552654B (zh) * | 2019-02-08 | 2024-03-19 | 三星电子株式会社 | 对页表遍历的冗余进行检测的处理器 |
CN110427332A (zh) * | 2019-08-05 | 2019-11-08 | 上海兆芯集成电路有限公司 | 数据预取装置、数据预取方法及微处理器 |
CN110427332B (zh) * | 2019-08-05 | 2021-08-20 | 上海兆芯集成电路有限公司 | 数据预取装置、数据预取方法及微处理器 |
US11301250B2 (en) | 2019-08-05 | 2022-04-12 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Data prefetching auxiliary circuit, data prefetching method, and microprocessor |
CN112835845A (zh) * | 2019-11-22 | 2021-05-25 | 意法半导体(鲁塞)公司 | 用于管理形成例如微控制器的片上***的调试的方法和对应片上*** |
CN114697321A (zh) * | 2022-01-12 | 2022-07-01 | 中国电子科技集团公司第十研究所 | 分布式综合可重构电子***平台架构 |
CN114697321B (zh) * | 2022-01-12 | 2023-05-12 | 中国电子科技集团公司第十研究所 | 分布式综合可重构电子***平台架构 |
Also Published As
Publication number | Publication date |
---|---|
WO2016195884A1 (en) | 2016-12-08 |
EP3304318A1 (en) | 2018-04-11 |
JP2018522331A (ja) | 2018-08-09 |
US20160350225A1 (en) | 2016-12-01 |
US10037280B2 (en) | 2018-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107636626A (zh) | 用于存储器管理单元(mmu)的转换的推测性预取 | |
CN104133780B (zh) | 一种跨页预取方法、装置及*** | |
EP3278228B1 (en) | Command-driven translation pre-fetch for memory management units | |
US10331582B2 (en) | Write congestion aware bypass for non-volatile memory, last level cache (LLC) dropping from write queue responsive to write queue being full and read queue threshold wherein the threshold is derived from latency of write to LLC and main memory retrieval time | |
CN106030549B (zh) | 用于对晶片外高速缓存存储器的标签集高速缓存的方法、装置和*** | |
CN105283855B (zh) | 一种寻址方法及装置 | |
CN107743093A (zh) | 用于输入/输出虚拟化***中的分组管理的技术 | |
CN110275841A (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
EP3060993A1 (en) | Final level cache system and corresponding method | |
CN103927270B (zh) | 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法 | |
US9852107B2 (en) | Techniques for scalable endpoint addressing for parallel applications | |
CN111143242A (zh) | 一种缓存预取方法和装置 | |
KR101895852B1 (ko) | Mmu(memory management unit) 파티셔닝된 변환 캐시들, 및 관련 장치들, 방법들, 및 컴퓨터-판독가능한 매체들의 제공 | |
GB2493191A (en) | Cache arrangement with data pre-fetching requests having different quality of services | |
JP2017522645A (ja) | フラッシュメモリベースのストレージデバイスの入力/出力仮想化(iov)ホストコントローラ(hc)(iov−hc) | |
WO2015131853A1 (zh) | 高速缓冲存储器Cache地址的映射处理方法和装置 | |
CN107003947A (zh) | 产生用于共享高速缓冲存储器***的近似使用测量 | |
WO2017112341A1 (en) | Reliable out-of-order end-to-end protocol with robust window state overflow management and a multi-node system using same | |
US11748107B2 (en) | Complex I/O value prediction for multiple values with physical or virtual addresses | |
US20160139950A1 (en) | Sharing resources in a multi-context computing system | |
JP5752331B2 (ja) | 物理タグ付けされたデータキャッシュへのトラフィックをフィルタリングするための方法 | |
US20220121584A1 (en) | Reducing latency for memory operations in a memory controller | |
US11940919B2 (en) | Recall pending cache line eviction | |
US20240111691A1 (en) | Time-aware network data transfer | |
US11914516B1 (en) | Memory side cache request handling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180126 |
|
WD01 | Invention patent application deemed withdrawn after publication |