CN108351838B - 使用聚合存储器管理单元(mmu)提供存储器管理功能 - Google Patents

使用聚合存储器管理单元(mmu)提供存储器管理功能 Download PDF

Info

Publication number
CN108351838B
CN108351838B CN201680055150.XA CN201680055150A CN108351838B CN 108351838 B CN108351838 B CN 108351838B CN 201680055150 A CN201680055150 A CN 201680055150A CN 108351838 B CN108351838 B CN 108351838B
Authority
CN
China
Prior art keywords
translation
matr
mmu
affairs
output
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.)
Expired - Fee Related
Application number
CN201680055150.XA
Other languages
English (en)
Other versions
CN108351838A (zh
Inventor
S·M·加代尔拉布
J·E·波达艾玛
刘骆隆
A·米雷特斯凯
P·C·J·维尔齐恩斯基
K·J·厄恩魏因
C·J·莫雷拉
S·P·W·布斯
M·瓦里亚
T·D·德里伯格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN108351838A publication Critical patent/CN108351838A/zh
Application granted granted Critical
Publication of CN108351838B publication Critical patent/CN108351838B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

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)
  • Memory System (AREA)

Abstract

本发明公开使用聚合存储器管理单元MMU提供存储器管理功能,及相关设备与方法。在一个方面中,提供聚合MMU,其包括各自包含多个输入事务缓冲器的多个输入数据路径及各自包含多个输出事务缓冲器的多个输出路径。所述聚合MMU的一些方面另外提供一或多个翻译高速缓冲存储器及/或一或多个硬件页表查看器。所述聚合MMU进一步包含MMU管理电路,其经配置以从输入事务缓冲器检索存储器地址翻译请求MATR,基于所述MATR执行存储器地址翻译操作以产生经翻译存储器地址字段TMAF,并将所述TMAF提供到输出事务缓冲器。所述聚合MMU还提供多个输出数据路径,每一输出数据路径经配置以输出具有所得存储器地址翻译的事务。

Description

使用聚合存储器管理单元(MMU)提供存储器管理功能
优先权要求
本申请要求2015年9月25日提交且名为“使用聚合存储器管理单元(MMU)提供存储器管理功能(PROVIDING MEMORY MANAGEMENT FUNCTIONALITY USING AGGREGATED MEMORYMANAGEMENT UNITS(MMUs))”的第14/866,228号美国专利申请的优先权,所述美国专利申请的全部内容以引用的方式并入本文中。
技术领域
本发明的技术大体上涉及计算机处理***的存储器管理单元(MMU)。
背景技术
存储器管理单元或MMU是向计算机处理器及/或***装置提供存储器管理功能的现代计算机处理***的元件。此存储器管理功能可包含虚拟到物理存储器地址翻译及高速缓存,以及存储器保护及属性控制。因为现代计算机处理器中的处理核心的数目有所增加,因此专用于提供MMU功能到那些处理核心的处理器芯片面积的量同样有所增加。
当前所属领域中已知的MMU架构已证实在减少提供MMU功能的芯片面积成本同时维持MMU性能方面无效。一个此类架构在本文中称为“单片MMU”架构。使用单片MMU架构的计算机处理***提供多个单片MMU,其中的每一者包含一个输入数据路径及一个输出数据路径。每一单片MMU还提供其自身的翻译高速缓冲存储器及事务缓冲器及调度器,以及一或多个专用硬件页表查看器。由于单片MMU中的每一者独立于其它单片MMU而操作,因此可通过为每一高性能业务产生客户端提供一个MMU而实现高处理性能。然而,单片MMU可归因于其构成元件的重复而消耗相对较大的芯片面积,且在低性能客户端中共享单片MMU可能导致性能降级。
另一MMU架构在本文中称为“分布式MMU”架构。在使用分布式MMU架构的计算机处理***中,每一业务产生客户端可与对应客户端MMU单元相关联。每一客户端MMU单元为其相关联业务产生客户端提供本地事务缓冲器及调度器以及本地翻译高速缓冲存储器。客户端MMU单元以通信方式耦合到中心MMU单元,其提供中心翻译高速缓冲存储器及一或多个硬件页表查看器。由于中心MMU单元的硬件页表查看器是在客户端MMU单元之间共享,因此分布式MMU架构可为较低性能处理器提供相对于单片MMU的芯片面积节省。然而,分布式MMU架构不能相对于中及高性能处理器很好地缩放。此部分归因于在客户端MMU单元及中心MMU单元中翻译高速缓冲存储器输入项的复制,以及每一客户端MMU单元与中心MMU单元之间的互连件所需要的芯片面积。中心MMU单元还可能需要到存储器控制器互连件的专用端口,这可能进一步增加所使用的芯片面积。
发明内容
详细描述中公开的方面包含使用聚合存储器管理单元(MMU)提供存储器管理功能。还公开相关设备及方法。在这方面,在一个方面中,提供聚合MMU。聚合MMU包括各自提供对对应输入数据路径的存取的多个输入数据端口,及各自驱动输出数据端口的多个输出数据路径。所述多个输入数据路径中的每一者包含其自身的专用输入事务缓冲器。类似地,所述多个输出数据路径中的每一者包含其自身的专用输出事务缓冲器。在一些方面中,输入数据路径的数目可等于、大于或小于输出数据路径的数目。在一些方面中,输入数据端口的数目可等于、大于或小于输出数据端口的数目。聚合MMU还包含经配置以检索对驻留于输入事务缓冲器中的翻译前事务的存储器地址翻译请求(MATR)的MMU管理电路。MMU管理电路基于MATR执行存储器地址翻译操作以产生经翻译存储器地址字段(TMAF),并将TMAF提供到输出事务缓冲器以作为翻译后事务的部分经由输出数据路径输出到输出数据端口。以此方式,连接到各种输入数据路径的多个业务产生客户端可通过聚合MMU有效服务,同时防止任何单一客户端独占MMU资源。
MMU管理电路的一些方面包括一或多个翻译高速缓冲存储器。根据一些方面,一或多个翻译高速缓冲存储器中的每一者可在所有输入数据路径中共享及/或可分割成各自可在输入数据路径的子集中共享及/或专用于一或多个输入数据路径的多个较小高速缓冲存储器。聚合MMU的一些方面另外提供一或多个硬件页表查看器。在一些方面中,一或多个硬件页表查看器可在所有输入数据路径中共享,可分成各自经保留用于特定输入数据路径或输入数据路径的群组,及/或可分成经保留用于具有如由服务质量(QoS)方案所定义的特定优先级的事务的群组。一些方面可规定输入数据路径、输出数据路径、一或多个翻译高速缓冲存储器及一或多个硬件页表查看器经互连以使得能够共享控制及管理电路。
在一些方面中,MMU管理电路经配置以在多个处理点处应用内部服务质量(QoS)仲裁以控管对内部共享资源的存取。作为非限制性实例,在本文所公开的一些方面中的MMU管理电路包括可根据输入事务QoS仲裁接收对驻留于输入事务缓冲器中的翻译前事务的MATR,并将翻译前事务的MATR放置于待决事务地址缓冲器(PTAB)中的输入翻译调度器。根据一些方面,PTAB可在所有输入数据路径中共享,可分成各自经保留到特定输入数据路径或一群输入数据路径的输入项的群组,及/或可分成各自经保留用于具有如由QoS方案所定义的特定优先级的事务的输入项的群组。
根据一些方面,MMU管理电路还可包含MMU管理器,所述MMU管理器监视翻译前事务的MATR到PTAB中的添加,并可根据一或多个待决MATR之间的QoS仲裁选择MATR以用于处理。MMU管理器可确定一或多个翻译高速缓冲存储器中是否存在用于MATR的经高速缓冲存储器地址翻译结果,且如果存在,那么可提供经高速缓冲存储器地址翻译结果到PTAB。如果不存在,那么MMU管理器可将MATR的翻译指派给一或多个硬件页表查看器中的一者。MMU管理电路的一些方面可进一步提供从PTAB检索完整TMAF,并根据用于输出事务的QoS仲裁原则将TMAF排队到对应输出事务缓冲器的输出翻译调度器。通过提供例如上文所论述那些元件的专用及共享元件的混合,聚合MMU可提供改进的性能同时相对于单片MMU及分布式MMU两者减少面积成本。
在另一方面中,提供聚合MMU。聚合MMU包括多个输入数据端口,其各自经配置以将翻译前事务传达到经配置以接收多个存储器地址翻译前读取事务及多个翻译前写入事务的多个输入数据路径。所述多个输入数据路径包括对应多个输入事务缓冲器,其各自包括经配置以存储多个翻译前事务中的相应翻译前事务的多个输入事务缓冲器槽。聚合MMU进一步包括多个输出数据路径,所述多个输出数据路径包括对应多个输出事务缓冲器。多个输出事务缓冲器中的每一者包括经配置以存储多个翻译后事务中的相应翻译后事务的多个输出事务缓冲器槽。聚合MMU还包括MMU管理电路。MMU管理电路经配置以从所述多个输入事务缓冲器中的输入事务缓冲器中检索翻译前事务的MATR。MMU管理电路经进一步配置以基于MATR执行存储器地址翻译操作以产生TMAF。MMU管理电路还经配置以将TMAF及翻译前事务有效负载作为翻译后事务提供到所述多个输出事务缓冲器中的输出事务缓冲器。聚合MMU的多个输出数据路径中的每一输出数据路径经配置以经由对应多个输出数据端口输出翻译后事务。
在另一方面中,提供聚合MMU。聚合MMU包括用于从对应于多个输入数据路径的多个输入事务缓冲器中的输入事务缓冲器中检索MATR的装置。聚合MMU进一步包括用于基于MATR执行存储器地址翻译操作以产生TMAF的装置。聚合MMU还包括用于将TMAF及翻译前事务有效负载作为翻译后事务提供到对应于多个输入数据路径的多个输出事务缓冲器中的输出事务缓冲器的装置。聚合MMU另外包括用于经由多个输出数据路径中的输出数据路径将翻译后事务输出到多个输出数据端口中的输出数据端口的装置。
在另一方面中,提供一种用于提供存储器管理的方法。所述方法包括通过聚合存储器管理单元(MMU)从对应于多个输入数据路径的多个输入事务缓冲器中的输入事务缓冲器检索MATR。所述方法进一步包括基于MATR执行存储器地址翻译操作以产生TMAF。所述方法还包括将TMAF及翻译前事务有效负载作为翻译后事务提供到对应于多个输入数据路径的多个输出事务缓冲器中的输出事务缓冲器。所述方法另外包括经由多个输出数据路径中的输出数据路径将翻译后事务输出到多个输出数据端口中的输出数据端口。
附图说明
图1A及1B为展示翻译前事务(即,读取及/或写入事务)的示范性构成字段,且每一者可如何通过存储器管理单元(MMU)的操作而修改的图;
图2A为基于单片MMU架构的示范性计算机处理***的框图;
图2B为基于分布式MMU架构的示范性计算机处理***的框图;
图3A到3C为提供存储器管理功能同时相对于单片MMU及分布式MMU减少芯片面积要求的示范性聚合MMU的框图;
图4为展示图3A到3C的聚合MMU的MMU管理电路的另外示范性元件的框图;
图5A到5F为说明通过图4的聚合MMU及其构成元件进行的存储器地址翻译请求(MATR)的端对端处理的框图;
图6A及6B为说明用于通过图4的示范性聚合MMU提供存储器管理功能的示范性操作的流程图;
图7为说明用于处理MATR的图4的输入翻译调度器及待决事务地址缓冲器(PTAB)的示范性操作的流程图;
图8为说明用于完成待决事务的处理的图4的输出翻译调度器及PTAB的示范性操作的流程图;
图9A及9B为说明用于使用图4的一或多个翻译高速缓冲存储器及/或一或多个硬件页表查看器以提供用于待决事务的存储器地址翻译的图4的MMU管理器的示范性操作的流程图;且
图10为可包含图3A到3C的聚合MMU的示范性基于处理器的***的框图。
具体实施方式
现在参看图式,描述本发明的若干示范性方面。词语“示范性”在本文中用以意谓“充当实例、例项或说明”。在本文中被描述为“示范性”的任何方面未必被解释为比其它方面更优选或更有利。
详细描述中公开的方面包含使用聚合存储器管理单元(MMU)提供存储器管理功能。在更详细地描述单片MMU及分布式MMU架构以及示范性聚合MMU的元件及操作之前,论述翻译前事务(即,读取及/或写入事务)的示范性构成字段以及每一者可如何由MMU的操作而修改。在这方面,提供图1A及1B。图1A说明示范性翻译前写入事务,而图1B说明示范性读取事务。
现参看图1A,源自客户端(未图示)的翻译前写入事务10可由两个部分组成:事务存储器地址翻译请求(MATR)12及写入请求有效负载(WRP)14。MMU 16接收来自客户端的翻译前写入事务10并视需要通过修改其构成子组件而处理MATR 12。确切地说,MATR 12的虚拟地址18由MMU 16翻译成物理地址20。MATR 12的存取属性22及QoS属性24可分别经修改成经翻译存储器存取字段(TMAF)30的存取属性26及QoS属性28,或可未经修改而复制到存取属性26及QoS属性28。MMU 16通过将来自翻译前写入事务10的未经修改WRP 14(包括写入属性34及写入(WR)事务数据36)附加到TMAF 30而输出翻译后写入事务32。
类似地,如图1B中所见,示范性翻译前读取事务38由两个部分组成:MATR 40及读取请求有效负载(RRP)42。MMU 16接收来自客户端(未图示)的翻译前读取事务38并视需要通过修改其构成子组件而处理MATR 40。MATR 40的虚拟地址44由MMU 16翻译成物理地址46。MATR 40的存取属性48及QoS属性50可分别经修改成TMAF 56的存取属性52及QoS属性54,或可未经修改而复制到存取属性52及QoS属性54。MMU 16通过将来自翻译前读取事务38的未经修改RRP 42(包括读取属性60)附加到TMAF 56而输出翻译后读取事务58。
现参看图2A,例示单片MMU架构的计算机处理***100提供多个单片MMU 102(0)到102(3)。单片MMU 102(0)到102(3)中的每一者分别包含一个输入数据路径104(0)到104(3)及一个输出数据路径106(0)到106(3)。单片MMU 102(0)到102(3)中的每一者还分别提供翻译高速缓冲存储器108(0)到108(3)、事务缓冲器及调度器110(0)到110(3),及一或多个硬件页表查看器112(0)到112(3)。因此,单片MMU 102(0)到102(3)能够在计算机处理***100内彼此独立地操作。在图2A的实例中,单片MMU 102(2)及102(3)的输出数据路径106(2)及106(3)经直接路由到存储器控制器互连件114,而单片MMU 102(0)及102(1)的输出数据路径106(0)及106(1)通过互连件116而多路复用。以此方式,单片MMU 102(0)到102(3)可经由存储器控制器互连件114提供存储器地址翻译结果到存储器控制器,例如存储器控制器118(0)到118(X)中的一者。
图2A的客户端120、122、124、126、128及130表示业务产生客户端,其中的每一者产生经由对应输入数据路径104(0)到104(3)传达到单片MMU 102(0)到102(3)的呈MATR(未图示)及其它数据形式的业务。在图2A的实例中,客户端120、122及130表示可例如产生大量MATR的高性能业务产生客户端。因此,客户端120、122及130各自分别由单片MMU 102(0)到102(2)中的单一者独占地服务。因此,单片MMU 102(0)到102(2)的翻译高速缓冲存储器108(0)到108(2)、事务缓冲器及调度器110(0)到110(2)及硬件页表查看器112(0)到112(2)有效专用于对应客户端120、122及130。因为客户端120、122及130不必与其它业务产生客户端竞争MMU资源,因此单片MMU 102(0)到102(2)能够提供高性能等级。
然而,由于单片MMU 102(0)到102(3)中的每一者消耗可能较大的芯片面积,因此给每一业务产生客户端提供单片MMU 102(0)到102(3)中的专用者可能是不可行的。因此,对于低性能业务产生客户端(例如客户端124、126及128),计算机处理***100可使用外部业务多路复用器(例如互连件132)以将业务多路复用到单一业务流式传输中。互连件132接着可将业务流式传输导引到单一单片MMU 102(3)的输入数据路径104(3)中。以此方式,单片MMU 102(3)可服务多个客户端124、126及128。虽然此方法可减少提供存储器管理功能所需要的芯片面积,但可能引入归因于在客户端124、126及128中共享单片MMU 102(3)的MMU资源而产生的额外性能问题。举例来说,由于共享翻译高速缓冲存储器108(3),因此可能出现“颠簸现象”情况,其中客户端124、126及128反复地从翻译高速缓冲存储器108(3)逐出彼此的输入项。此外,由于共享事务缓冲器及调度器110(3),因此积极客户端占据事务缓冲器及调度器110(3)中的所有槽是可能的,从而有效拒绝不大积极客户端对业务的存取。
通过图2B的计算机处理***200例示的分布式MMU架构尝试解决图2A的单片MMU架构中固有的缺点中的一些。在图2B的实例中,计算机处理***200包含业务产生客户端202、204、206、208及210,其与对应客户端MMU单元212(0)到212(4)相关联。客户端MMU单元212(0)到212(4)为其相关联业务产生客户端202、204、206、208、210提供相应本地事务缓冲器及调度器214(0)到214(4)及本地翻译高速缓冲存储器216(0)到216(4)。计算机处理***200进一步包含中心MMU单元218,其提供中心翻译高速缓冲存储器220、待决地址翻译缓冲器222及一或多个硬件页表查看器224。中心翻译高速缓冲存储器220相对于本地翻译高速缓冲存储器216(0)到216(4)较大,且在业务产生客户端202、204、206、208及210的客户端MMU单元212(0)到212(4)中共享。类似地,由中心MMU单元218的硬件页表查看器224提供的功能可在业务产生客户端202、204、206、208及210的客户端MMU单元212(0)到212(4)中共享。如图2B中所见,对存储器控制器226(0)到226(Y)的存取可通过从客户端MMU单元(例如客户端MMU单元212(3)到212(4))到存储器控制器互连件228的直接连接来提供,或可由聚合来自客户端MMU(例如客户端MMU单元212(0)到212(2))的输出的互连件230提供。
由于中心MMU单元218的硬件页表查看器224是在客户端MMU单元212(0)到212(4)之间共享,因此分布式MMU架构可为较低性能计算机处理***提供相对于单片MMU 102(0)到102(3)的芯片面积节省。然而,图2B中所说明的分布式MMU架构可产生造成其不能相对于中及高性能计算机处理***很好缩放的性能及面积缺点。举例来说,在本地翻译高速缓冲存储器216(0)到216(4)中的一者中发生高速缓存未命中的情况下,对中心翻译高速缓冲存储器220的所得存储器存取可能遭受长等待时间,这在中心翻译高速缓冲存储器220中发生高速缓存未命中情况下可进一步恶化。另外,由于中心翻译高速缓冲存储器220在客户端MMU单元212(0)到212(4)中共享,因此可能出现颠簸情况,及/或中心翻译高速缓冲存储器220内的空间对于所有客户端MMU单元212(0)到212(4)可能不足。此外,分布式MMU架构所需要的芯片面积可归因于每一客户端MMU单元212(0)到212(4)与中心MMU单元218之间的互连件以及到存储器控制器互连件228的专用端口232而增大。
因此,为了解决图2A的单片MMU架构及图2B的分布式MMU架构两者的缺点,提供聚合MMU。在这方面,图3A说明示范性聚合MMU 300。应理解,聚合MMU 300可涵盖已知数字逻辑元件、半导体电路、处理核心、及/或存储器结构、以及其它元件,或其组合中的任一者。本文中所描述的方面并不限于任何特定布置的元件,且所公开技术可容易地扩展到半导体裸片或封装上的各种结构及布局。
聚合MMU 300提供连接到对应多个输入数据端口303(0)到303(N)的多个输入数据路径302(0)到302(N)。输入数据路径302(0)到302(N)中的每一者提供相应输入事务缓冲器304(0)到304(N),且与提供相应输出事务缓冲器306(0)到306(Q)的输出数据路径305(0)到305(Q)相关联。输入事务缓冲器304(0)到304(N)分别包含输入事务缓冲器槽(“ITB SLOT”)308(0)到308(A)、310(0)到310(C)及312(0)到312(E),而输出事务缓冲器306(0)到306(Q)包含相应输出事务缓冲器槽(“OTB SLOT”)314(0)到314(B)、316(0)到316(D)及318(0)到318(F)。由于每一输入数据路径302(0)到302(N)包含并不与其它输入数据路径302(0)到302(N)共享的其自身的输入事务缓冲器304(0)到304(N),因此通过输入数据路径302(0)到302(N)中的一者的数据不与来自输入数据路径302(0)到302(N)的数据互混。因此,聚合MMU300可防止积极客户端占据所有输入事务缓冲器槽308(0)到308(A)、310(0)到310(C)及312(0)到312(E),如可在上文所论述的分布式MMU架构中出现的情况。
聚合MMU 300进一步提供多个输出数据端口320(0)到320(M)。在图3A的实例中,输入数据端口303(0)到303(N)的数目N与输出数据端口320(0)到320(M)的数目M相同。然而,如下文参看图3B更详细地论述,一些方面可规定输入数据端口303(0)到303(N)的数目N可大于输出数据端口320(0)到320(M)的数目M。根据本文所公开的一些方面,输入数据路径302(0)到302(N)中的每一者可经独立地定时以提供相对于聚合MMU 300的时脉频率较高或较低的时脉频率。此可导致聚合MMU 300的功率消耗减少。
如图3A中所见,聚合MMU 300经配置以经由到输入数据路径302(0)到302(N)的输入数据端口303(0)到303(N)接收来自业务产生客户端322、324、326、328及330的翻译前事务(例如,图1A的翻译前写入事务10及/或图1B的翻译前读取事务38)。应理解,在一些方面中,与图3A中所说明的相比,更多或更少业务产生客户端可由聚合MMU300服务。聚合MMU300可以通信方式直接耦合到客户端(客户端322是这样的情况),或可接收来自互连件(例如互连件332及334)的经多路复用数据流式传输。聚合MMU 300的MMU管理电路336负责从输入事务缓冲器304(0)到304(N)检索每一翻译前事务的MATR(例如图1A的MATR 12及/或图1B的MATR 40),执行存储器地址翻译操作以产生对应TMAF(例如图1A的TMAF 30及/或图1B的TMAF 56),并将TMAF提供到位于输出数据路径305(0)到305(Q)内的输出事务缓冲器306(0)到306(Q)。下文参看图4及5A到5F更详细地论述MMU管理电路336的示范性构成元件及操作。TMAF与对应请求有效负载(例如图1A的WRP 14及/或图1B的RRP 42)组合为翻译后事务(例如图1A的翻译后写入事务32及/或图1B的翻译后读取事务58),其接着经由输出数据路径305(0)到305(Q)经由输出数据端口320(0)到320(M)输出到业务互连件338。业务互连件338接着可将翻译后事务提供到存储器控制器340(0)到340(Z)。
如上文所提及,聚合MMU 300的一些方面可规定输入数据端口303(0)到303(N)的数目N大于输出数据端口320(0)到320(M)的数目M。在这方面,图3B说明示范性聚合MMU300'。聚合MMU 300'包含图3A的聚合MMU 300的相同构成元件,且进一步提供用于在存储器地址翻译已发生之后将来自输出数据路径305(0)到305(Q)的业务组合到单一输出数据端口360(M)中的翻译后仲裁器342。在图3B的实例中,翻译后仲裁器342可接收来自输出数据路径305(1)到305(Q)的多个翻译后事务(未图示),且可基于翻译后QoS仲裁选择待输出到输出数据端口320(M)的翻译后事务。通过翻译后仲裁器342实施的翻译后QoS仲裁可包括所属领域中已知的任何QoS仲裁方法,包含但不限于循环仲裁、优先级循环仲裁、严格的优先级仲裁、基于信用的仲裁、先进先出仲裁、加权循环仲裁、基于年龄的仲裁、动态优先级仲裁、随机仲裁、公平率仲裁及/或任何其它形式仲裁。
聚合MMU 300的一些方面可规定输入数据路径302(0)到302(N)的数目N大于输出数据路径305(0)到305(Q)的数目Q。在这方面,图3C说明示范性聚合MMU 300"。除聚合MMU300"提供小于输入数据路径302(0)到302(N)的数目N的数目Q的输出数据路径305(0)到305(Q)以外,聚合MMU 300"类似于图3A的聚合MMU 300的所有方面。在聚合MMU 300"中,MMU管理电路336导引来自多个输入数据路径的业务到一个共享输出数据路径。在图3C的实例中,来自输入数据路径302(0)及302(1)的业务在存储器地址翻译已发生之后经组合到单一共享输出数据路径305(0)中。图3C的输出数据路径305(0)可接收来自输入数据路径302(0)到302(1)的多个翻译后事务,且可基于输入数据路径302(0)与302(1)之间的翻译后QoS仲裁选择待传送到输出事务缓冲器槽314(0)到314(B)中的事务。通过输出数据路径305(0)实施的翻译后QoS仲裁可包括所属领域中已知的任何QoS仲裁方法,包含但不限于循环仲裁、优先级循环仲裁、严格的优先级仲裁、基于信用的仲裁、先进先出仲裁、加权循环仲裁、基于年龄的仲裁、动态优先级仲裁、随机仲裁、公平率仲裁及/或任何其它形式仲裁。
在输出数据路径305(0)在多个输入数据路径302(0)到302(1)中共享的情形中,可能需要确保无来自一个输入数据路径302(0)到302(1)的事务占据所有输出事务缓冲器槽314(0)到314(B),且因此防止其它输入数据路径302(0)到302(1)传输其事务到共享输出数据路径305(0)。另外,可能需要确保较低优先级事务(例如,如由图1A的QoS属性24、28及/或图1B的QoS属性50、54所指示)不占据所有输出事务缓冲器槽314(0)到314(B),因此暂时拒绝对输出事务缓冲器槽314(0)到314(B)的较高优先级事务存取。为防止此些情况,在一些方面中的共享输出数据路径305(0)可经配置以允许保留输出事务缓冲器槽314(0)到314(B)的多个子集(每一者用于独占源自输入数据路径302(0)到302(N)中的一或多者的事务的独占式使用)同时允许输出事务缓冲器槽314(0)到314(B)的剩余部分在所有输入数据路径302(0)到302(N)中共享。根据一些方面,在一些方面中的共享输出数据路径305(0)可经配置以允许保留输出事务缓冲器槽314(0)到314(B)的多个子集(每一者用于独占具有特定QoS属性的事务的独占式使用)同时允许输出事务缓冲器槽314(0)到314(B)的剩余部分在所有事务中共享而不需基于QoS属性区分。
为更好地说明根据一些方面的图3A的聚合MMU 300的MMU管理电路336的示范性构成元件,提供图4。在图4的实例中,MMU管理电路336可包含一或多个翻译高速缓冲存储器400(0)到400(P),及一或多个硬件页表查看器402(0)到402(W)。在一些方面中,一或多个翻译高速缓冲存储器400(0)到400(P)各自可在所有输入数据路径302(0)到302(N)中共享,或可经分割以使得翻译高速缓冲存储器400(0)到400(P)中的每一者可在输入数据路径302(0)到302(N)的子集中共享或专用于输入数据路径302(0)到302(N)中的一或多者。类似地,根据一些方面,硬件页表查看器402(0)到402(W)中的每一者可在所有输入数据路径302(0)到302(N)中共享,或经分割以使得每一硬件页表查看器402(0)到402(W)可在输入数据路径302(0)到302(N)的子集中共享或专用于一或多个输入数据路径302(0)到302(N)。在一些方面中,下文参看图5A到5F更详细地论述,MMU管理电路336可经配置以在基于接收的MATR(例如,图1A的MATR 12及/或图1B的MATR 40)执行存储器地址翻译操作时使用一或多个翻译高速缓冲存储器400(0)到400(P)及/或一或多个硬件页表查看器402(0)到402(W)。
如在图4中所见,一或多个翻译高速缓冲存储器400(0)到400(P)及一或多个硬件页表查看器402(0)到402(W)接近于聚合MMU 300内的输入数据路径302(0)到302(N),且可在输入数据路径302(0)到302(N)中共享。通过在输入数据路径302(0)到302(N)附近定位一或多个翻译高速缓冲存储器400(0)到400(P)及一或多个硬件页表查看器402(0)到402(W),在一些方面中的聚合MMU 300避免高速缓冲存储器资源的不必要复制,并且不需要本地高速缓冲存储器与集中高速缓冲存储器之间的互连件。避免对于本地及集中高速缓冲存储器的需要可通过消除在本地高速缓冲存储器与集中高速缓冲存储器之间的通信中引发的高速缓冲存储器存取等待时间而相对于分布式MMU架构进一步改进聚合MMU 300的性能。
图4的MMU管理电路336可进一步包含输入翻译调度器404、待决事务地址缓冲器(PTAB)406、MMU管理器408,及输出翻译调度器410。输入翻译调度器404可负责根据输入事务QoS仲裁从输入事务缓冲器304(0)到304(N)检索MATR(例如,图1A的MATR 12及/或图1B的MATR 40),并将MATR放置到PTAB 406的PTAB槽412(0)到412(G)中。输入翻译调度器404内的输入事务QoS仲裁可使用来自输入数据路径302(0)到302(N)的多个适合MATR的对应QoS属性(例如图1A的QoS属性24、28及/或图1B的QoS属性50、54)来执行仲裁以确定准许哪一MATR进入可用的PTAB槽412(0)到412(G)。作为非限制性实例,输入事务QoS仲裁可包含所属领域中已知的任何QoS仲裁方法,包含但不限于循环仲裁、优先级循环仲裁、严格的优先级仲裁、基于信用的仲裁、先进先出仲裁、加权循环仲裁、基于年龄的仲裁、动态优先级仲裁、随机仲裁、公平率仲裁及/或任何其它形式仲裁。
MMU管理器408接着可基于PTAB 406中的适合MATR的QoS属性使用QoS仲裁从PTAB406选择待决MATR,并可使用一或多个翻译高速缓冲存储器400(0)到400(P)及/或一或多个硬件页表查看器402(0)到402(W)以产生TMAF(例如图1A的TMAF 30及/或图1B的TMAF 56),TMAF接着放置在对应PTAB槽412(0)到412(G)中。输出翻译调度器410接着可使用QoS仲裁从PTAB 406选择完成的TMAF,并可调度对应请求有效负载(例如图1A的WRP 14及/或图1B的RRP 42)以从输入数据路径302(0)到302(N)移动到对应输出数据路径305(0)到305(Q)。输出翻译调度器410将TMAF提供到对应输出数据路径305(0)到305(Q),其中TMAF与请求有效负载组合以产生在输出事务缓冲器槽314(0)到314(B)、318(0)到318(F)内的翻译后事务(例如图1A的翻译后写入事务32及/或图1B的翻译后读取事务58)。翻译后事务接着输出到输出数据端口320(0)到320(M)中的一者。以此方式,由输入翻译调度器404、MMU管理器408及输出翻译调度器410提供的QoS特征确保高优先级事务被给予优先翻译资源且不耗尽资源。下文参看图5A到5F更详细地论述在处理MATR以产生存储器地址翻译结果时输入翻译调度器404、PTAB 406、MMU管理器408及输出翻译调度器410的操作。
在一些方面中,MMU管理电路336还可包含共享寄存器414及共享控制逻辑416。共享寄存器414及共享控制逻辑416可由聚合MMU 300使用以向所有输入数据路径302(0)到302(N)提供存储器管理功能。此与图2B中所展示的分布式MMU架构相反,其中存储器管理所需要的许多寄存器及控制逻辑是在本地翻译高速缓冲存储器216(0)到216(4)及中心翻译高速缓冲存储器220处复制。通过聚合MMU 300使用共享寄存器414及共享控制逻辑416进一步与图2A的单片MMU架构对比,其中所有寄存器及控制逻辑是在单片MMU 102(0)到102(3)中的每一者中复制。通过使用共享寄存器414及共享控制逻辑416,聚合MMU 300可实现相当大的芯片面积节省。另外,通过减少由软件管理及控制的MMU执行个体的数目,在使用聚合MMU 300的计算机***中可减少软件额外负担。
在一些方面中,一或多个硬件页表查看器402(0)到402(W)可经由存取***存储器(未图示)中的页表的一系列事务(未图示)将虚拟地址翻译成物理地址。源自一或多个硬件页表查看器402(0)到402(W)的事务可使用硬件表查看器(HTW)多路复用器418与来自输出数据路径305(0)到305(Q)的事务多路复用。HTW多路复用器418可使用来自一或多个硬件页表查看器402(0)到402(W)的事务及来自输出数据路径305(0)到305(Q)的事务的QoS属性以应用QoS仲裁在来自两个源的事务之间选择并传输每一经选择事务到对应输出数据端口320(0)到320(M)。根据一些方面,来自一或多个硬件页表查看器402(0)到402(W)的事务中的一些或全部可经路由到被独占地用于发射来自硬件页表查看器402(0)到402(W)的事务到业务互连件338的专用输出端口420。来自一或多个硬件页表查看器402(0)到402(W)的事务可基于考虑因素(例如业务互连件338中的每一事务的最终目的地的地址、需要确保来自一或多个硬件页表查看器402(0)到402(W)的事务的输出不干扰来自输出数据路径305(0)到305(Q)的事务的流动,及/或需要为来自一或多个硬件页表查看器402(0)到402(W)的事务提供较高优先级及/或到业务互连件338的单独路径)而经导引以经由输出数据端口320(0)到320(M)或专用输出端口420退出聚合MMU 300,作为非限制性实例。
图5A到5F为经提供以更好地说明在MATR的处理期间图4的聚合MMU 300的一些方面的输入翻译调度器404、PTAB 406、MMU管理器408及输出翻译调度器410的操作的框图。在这方面,图5A说明将传入MATR输入缓冲为输入事务,且图5B展示用于选择输入事务以用于传送到PTAB 406以用于处理的输入翻译调度器404的操作。图5C说明MMU管理器408可如何使用一或多个翻译高速缓冲存储器400(0)到400(P)以获得高速缓冲存储器地址翻译结果,而图5D展示使用一或多个硬件页表查看器402(0)到402(W)以执行从虚拟地址到物理地址的地址翻译的MMU管理器408。图5E说明用于调度完成的TMAF从PTAB 406到输出数据路径305(0)到305(Q)的移动的输出翻译调度器410的操作,且图5F展示完成的翻译后事务经由输出数据路径305(0)到305(Q)输出到输出数据端口320(0)到320(M)。为清楚起见,在描述图5A到5F时参考图4的元件。
现参看图5A,根据一些方面的用于提供存储器管理功能的聚合MMU 300的操作开始于翻译前事务500、502由聚合MMU 300分别经由到输入数据路径302(0)及302(N)的输入数据端口(未图示)接收,如通过箭头504及箭头506所指示。应理解,翻译前事务500、502可包括例如图1A的翻译前写入事务10的翻译前写入事务及/或例如图1B的翻译前读取事务38的翻译前读取事务。在图5A的实例中,翻译前事务500、502分别含有MATR 507、508,及分别含有请求有效负载509、510。可从以通信方式耦合到聚合MMU 300的业务产生客户端(未图示)(例如图3A的客户端322、324、326、328及330)接收嵌入于翻译前事务500、502中的MATR507、508。如图5A中所见,翻译前事务500作为输入事务511存储于输入数据路径302(0)的输入事务缓冲器304(0)的输入翻译缓冲器槽308(0)中。同样,翻译前事务502作为输入事务512存储于输入数据路径302(N)的输入事务缓冲器304(N)的输入翻译缓冲器槽312(0)中。翻译前事务500、502的MATR 507、508部分接着等待由输入翻译调度器404进行处理。
在图5B中,展示根据聚合MMU 300的一些方面的输入翻译调度器404的操作。输入翻译调度器404负责通过应用QoS仲裁机制从输入事务缓冲器304(0)到304(N)中选择MATR(在图5B的实例中,MATR 508,如通过箭头513所指示),借此每一MATR 507、508的QoS属性指示相应MATR 507、508的相对优先级。输入翻译调度器404接着调度所选择MATR 508以待由PTAB 406存储。如由图5B中的箭头514所指示,PTAB 406接着将由输入翻译调度器404选择并调度的MATR 508作为待决翻译存储于PTAB槽412(0)内。
通过在选择MATR 508时应用输入事务QoS仲裁,输入翻译调度器404可在不同输入数据路径302(0)到302(N)中维持所要的QoS等级。在一些方面中,输入QoS仲裁可试图确保不允许任一业务产生客户端独占PTAB 406,及/或如果驻留于输入数据路径302(0)到302(N)中的一些事务相对于其它事务具有较高优先级(如由每一事务的QoS属性所指示),那么授予对PTAB 406的更大存取权给驻留于输入数据路径302(0)到302(N)中的所述些事务。一些方面可规定输入事务QoS仲裁可经动态地配置以将PTAB槽412(0)到412(G)分割成一或多个PTAB槽412(0)到412(G)的群组。每一群组可经保留以用于在专用非共享方法中供一或多个输入数据路径302(0)到302(N)及/或具有如由QoS属性字段所指示的预定高优先级等级的输入事务511、512独占式使用,同时在来自所有输入数据路径302(0)到302(N)的所有事务511、512及/或所有事务的所有优先级等级之间共享剩余PTAB槽412(0)到412(G)。在一些方面中,输入翻译调度器404可确保对于从输入事务缓冲器304(0)到304(N)接收的所选择MATR 508,在所选择MATR 508存储于PTAB 406中之前,在对应输出事务缓冲器306(Q)中存在至少一个可用输出事务缓冲器槽318(0)到318(F)。
在一些方面中,一旦MATR 508经选择并放置在PTAB 406的可用PTAB槽412(0)中,输入翻译调度器404就可检查PTAB 406的填充等级以确定未占用槽412(0)到412(G)是否存在于PTAB 406内。如果存在,那么输入翻译调度器404可在所有输入事务缓冲器304(0)到304(N)内的所有输入事务缓冲器槽308(0)到308(A)、312(0)到312(E)中的所有剩余MATR之间应用连续QoS仲裁以选择MATR 507、508以用于***到未占用的PTAB槽412(0)到412(G)中。如果可用PTAB槽412(0)到412(G)经预先保留用于来自特定输入数据路径302(0)到302(N)的MATR,或如果PTAB槽412(0)到412(G)经保留用于特定优先级等级的MATR,且此些条件不被存在于输入事务缓冲器304(0)到304(N)中的MATR中的任一者满足,那么可存在MATR不可移动到可用PTAB槽412(0)到412(G)中的暂时情形。在此些情形中,输入翻译调度器404可监视PTAB 406中的可用PTAB槽412(0)到412(G)直到满足保留准则的PTAB槽412(0)到412(G)变为可用为止。一旦合适PTAB槽412(0)到412(G)变为可用,输入翻译调度器404就应用QoS仲裁以选择MATR以用于移动到新释放的PTAB槽412(0)到412(G)中。
图5C说明根据聚合MMU 300的一些方面的用于对MATR 508的虚拟地址(未图示)执行翻译操作以产生TMAF 515的MMU管理器408的操作。在图5C的实例中,MMU管理器408监视PTAB 406以检测待决MATR(例如待决MATR 508)的添加,TMAF尚未被产生用于所述待决MATR。在检测到待决MATR 508后,MMU管理器408从PTAB406内的待决MATR中选择待决事务MATR 508,如通过箭头520所指示。在一些方面中,可基于QoS仲裁选择待决MATR 508。此可使得MMU管理器408能够确保PTAB 406内的高优先级待决MATR是在低优先级事务之前被处理。
MMU管理器408接着确定一或多个翻译高速缓冲存储器400(0)到400(P)是否含有将MATR 508中的虚拟地址及对应存取属性(未图示)翻译成对应物理地址(未图示)的经高速缓存输入项,如通过箭头522所指示。如果翻译被发现,那么一或多个翻译高速缓冲存储器400(0)到400(P)如由箭头524所指示将物理地址传回到MMU管理器408。MMU管理器408接着构建含有从一或多个翻译高速缓冲存储器400获得的物理地址的TMAF515。TMAF 515还含有存取属性,其可为基于共享控制逻辑416及共享寄存器414的实施的MATR 508的输入存取属性的相同版本或修改版本。TMAF 515还含有QoS属性(未图示)及存取属性,其可为基于共享控制逻辑414及共享寄存器416的实施的MATR 508的QoS属性及存取属性的相同版本或修改版本。一旦构建TMAF 515,其就放置在对应PTAB槽412(0)中,如由箭头526所指示。PTAB槽412(0)中的待决TMAF 515接着可经标记为适合由输出翻译调度器410考虑。
现参看图5D,如果物理地址的翻译并不在一或多个翻译高速缓冲存储器400内高速缓存,或如果仅部分翻译存在,那么MMU管理器408指派一或多个硬件页表查看器402(0)到402(W)中的一者以产生完整TMAF 515,如由箭头528所指示。在一些方面中,MMU管理器408可基于预定QoS仲裁原则指派一或多个硬件页表查看器402中的一者。以此方式,MMU管理器408可确保无来自任一个输入数据路径302(0)到302(N)的翻译请求的集合能够独占所有可用硬件页表查看器402。作为非限制性实例,QoS仲裁原则可包括在先到先服务基础上指派一或多个硬件页表查看器402(0)到402(W),或可基于待决MATR 508的优先级,作为非限制性实例。一些方面可规定MMU管理器408还可应用QoS仲裁以保留可配置数目的一或多个硬件页表查看器402(0)到402(W)用于一或多个非作用输入数据路径302(0)到302(N)独占式使用,同时允许剩余一或多个硬件页表查看器402(0)到402(W)由任何输入数据路径302(0)到302(N)使用,使得当业务到达时输入数据路径302(0)到302(N)不被可用硬件页表查看器402(0)到402(W)的缺乏阻挡。
一些方面可规定MMU管理器408还可应用QoS仲裁以保留一或多个硬件页表查看器402的群组(其中每一群组含有一或多个硬件页表查看器402),以用于一或多个输入数据路径302(0)到302(N)独占式使用,同时允许剩余未分群硬件页表查看器402由任何输入数据路径302(0)到302(N)使用。以此方式,当业务到达时输入数据路径302(0)到302(N)不被可用硬件页表查看器402(0)到402(W)的缺乏阻挡。根据一些方面,MMU管理器408还可应用QoS仲裁以保留一或多个硬件页表查看器402的群组(其中每一群组含有一或多个硬件页表查看器402),以用于具有如由其QoS属性所指示的某一或某些优先级等级的MATR独占式使用,同时允许剩余未分群的一或多个硬件页表查看器402由具有任何优先级等级的任何MATR使用。因此,当业务到达时具有较高优先级的MATR不被可用硬件页表查看器402(0)到402(W)的缺乏阻挡。
在一些方面中,一或多个硬件页表查看器402(0)到402(W)经配置以使用输出数据端口320(0)到320(M),或经由如由箭头530所指示的到业务互连件338的专用输出端口420执行MATR 508的虚拟地址的翻译(例如通过进行一或多个硬件页表查核行程)。在此些方面中,硬件页表查看器402(0)到402(W)可选择性地线内***硬件页表查核事务(未图示)以及来自输出数据路径305(0)到305(Q)的其它输出事务到输出数据端口320(0)到320(M)中。一或多个硬件页表查看器402(0)到402(W)中的每一者可经配置以使用输出数据端口320(0)到320(M)中的一者,或可根据事务优先级或输出数据路径拥塞在多个输出数据端口320(0)到320(M)中分配业务。
在完成MATR 508的虚拟地址的翻译后,一或多个硬件页表查看器402(0)到402(W)提供经翻译物理地址到MMU管理器408,如由箭头531所指示。MMU管理器408又从一或多个硬件页表查看器402接收经翻译物理地址,并以MATR 508的虚拟地址与物理地址之间的经更新翻译更新一或多个翻译高速缓冲存储器400(0)到400(P),如由箭头522所指示。MMU管理器408还构建TMAF 515并将TMAF 515提供到PTAB 406中的适当PTAB槽412(0)到412(G),如由箭头532所指示。
在图5E中,在聚合MMU 300的一些方面中的输出翻译调度器410搜索PTAB 406的PTAB槽412(0)到412(G)以定位MATR翻译已完成且TMAF为可用的槽,例如图5E中的PTAB槽412(0)。输出翻译调度器410接着在PTAB 406中的可用TMAF中选择。在图5E的实例中,输出翻译调度器410选择TMAF 515,如由箭头534所指示。输出翻译调度器410接着将TMAF 515移动到输出事务缓冲器306(Q)中的适当输出事务缓冲器槽318(0),如由箭头536所指示。
由输出翻译调度器410进行的调度可基于TMAF 515的QoS属性及QoS仲裁方案(其可考虑输出事务缓冲器槽318(0)到318(F)的可用性),及/或待决MATF的相对优先级,作为非限制性实例。PTAB 406基于所述基于QoS的调度将TMAF 515移出队列到输出事务缓冲器306(Q)中。输出事务缓冲器306(Q)接着如由箭头537所指示将请求有效负载510从输入事务缓冲器槽312(0)移动到输出事务缓冲器槽318(0),并将其与接收的TMAF515组合以产生翻译后事务512'。翻译后事务512'随后存储于输出事务缓冲器槽318(0)中。在一些方面中,如果输入事务缓冲器304(N)中存在具有比输出事务缓冲器306(Q)中的翻译后事务512'更高优先级的新输入事务(未图示),那么输出翻译调度器410可提升翻译后事务512'的优先级。在翻译后事务512'经由输出数据路径305(Q)输出(如由箭头540所指示)时,存储器地址翻译操作接着在图5F中结束。
为了说明用于通过图4的示范性聚合MMU 300提供存储器管理功能的示范性操作,提供图6A及6B。为清楚起见,描述图6A及6B时参考图4及5A到5F的元件。操作在图6A中以聚合MMU 300的MMU管理电路336从对应于多个输入数据路径302(0)到302(N)的多个输入事务缓冲器304(0)到304(N)中的输入事务缓冲器304(N)检索翻译前事务512的MATR 508开始(框600)。在这方面,MMU管理电路336在本文中可称为“用于从对应于多个输入数据路径的多个输入事务缓冲器中的输入事务缓冲器检索存储器地址翻译请求(MATR)的装置”。在一些方面中,用于检索MATR 508的框600的操作是通过输入翻译调度器404来实施,如下文参看图7更详细地描述。一些方面可规定聚合MMU 300的PTAB 406接下来将通过MMU管理电路336从多个输入事务缓冲器304(0)到304(N)中的输入事务缓冲器304(N)检索的翻译前事务512的MATR 508存储为待决翻译(框602)。
MMU管理电路336接着基于MATR 508执行存储器地址翻译操作以产生TMAF 515(框604)。因此,MMU管理电路336在本文中可称为“用于基于MATR执行存储器地址翻译操作以产生经翻译存储器地址字段(TMAF)的装置”。根据一些方面,用于基于MATR 508执行存储器地址翻译操作的框604的操作是通过MMU管理器408来实施,如下文参看图9A及9B更详细地描述。一些方面可规定执行存储器地址翻译操作可使用接近于多个输入数据路径302(0)到302(N)的一或多个翻译高速缓冲存储器400(0)到400(P)及接近于多个输入数据路径302(0)到302(N)的一或多个硬件页表查看器402(0)到402(W)中的一者而实现(框606)。在聚合MMU 300的一些示范性方面中,PTAB 406接下来接收对应于由MMU管理电路336产生的待决翻译的TMAF 515(框608)。PTAB 406接着可存储用于待决翻译的TMAF 515(框610)。处理接着在图6B的框612处继续。
现参看图6B,在一些方面中,PTAB 406可将待决翻译移出队列以将TMAF 515提供到多个输出事务缓冲器306(0)到306(Q)中的输出事务缓冲器306(Q)(框612)。一些方面可规定对应于来自多个输入数据路径302(0)到302(N)的子集的MATR 508的TMAF515可经移出队列到单一输出事务缓冲器306(Q)中,而根据一些方面可存在在输入数据路径302(0)到302(N)与输出事务缓冲器306(0)到306(Q)之间的一对一对应关系。
TMAF 515及翻译前事务有效负载510接着作为翻译后事务512'提供到对应于多个输出数据路径305(0)到305(Q)的多个输出事务缓冲器306(0)到306(Q)中的输出事务缓冲器306(Q)(框614)。一些方面可规定用于将TMAF 515提供到输出事务缓冲器306(Q)的框614的操作是通过输出翻译调度器410来实施,如下文参看图8更详细地描述。输出翻译调度器410因此在本文中可称为“用于将TMAF及翻译前事务有效负载作为翻译后事务提供到对应于多个输入数据路径的多个输出事务缓冲器中的输出事务缓冲器的装置”。
含有TMAF 515的翻译后事务512'随后经由所述多个输出数据路径305(0)到305(Q)中的输出数据路径305(Q)输出到所述多个输出数据端口320(0)到320(M)中的输出数据端口320(M)(框616)。在这方面,输出数据路径305(Q)在本文中可称为“用于将翻译后事务输出到多个输出数据端口中的输出数据端口的装置”。在一些方面中,用于输出翻译后事务512'的操作可包含图3B的翻译后仲裁器342接收来自多个输出数据路径305(0)到305(Q)的复数子集的一或多个翻译后事务512'以待输出到多个输出数据端口320(0)到320(M)中的输出数据端口320(M)(框618)。翻译后仲裁器342可基于翻译后QoS仲裁选择一或多个翻译后事务512'中的翻译后事务512'(框620)。所选择翻译后事务512'接着可由翻译后仲裁器342提供到输出数据端口320(M)以用于输出(框622)。
如上文所提及,在聚合MMU 300的一些方面中,用于从输入事务缓冲器304(N)检索MATR 508的图6A的框600的操作可通过输入翻译调度器404实施。在这方面,图7说明用于处理MATR 508的输入翻译调度器404及PTAB 406的示范性操作。为清楚起见,在描述图7时参考图4及5A到5F的元件。在图7中,操作以输入翻译调度器404基于输入事务QoS仲裁从多个输入事务缓冲器304(0)到304(N)中的输入事务缓冲器304(N)选择翻译前事务512的MATR508开始(框700)。在一些方面中,输入翻译调度器404可确定对应于所选择MATR 508的翻译前事务512的输入事务缓冲器304(N)的输出事务缓冲器306(Q)是否含有可用输出事务缓冲器槽318(0)到318(F)(框702)。如果无可用输出事务缓冲器槽318(0)到318(F)是可用的,那么处理可返回到框700。
然而,如果输入翻译调度器404在框702处确定可用输出事务缓冲器槽318(0)到318(F)是可用的,那么在一些方面中输入翻译调度器404可确定所选择MATR 508是否可存储在未经保留用于多个输入数据路径302(0)到302(N)中的一或多者独占式使用或与一或多个指定QoS优先级相关联的多个PTAB槽412(0)到412(G)中的一或多者中(框703)。如果是,那么处理在框704处继续。如果在决定框703处确定所选择MATR 508不可存储于未经保留用于多个输入数据路径302(0)到302(N)中的一或多者独占式使用或与一或多个指定QoS优先级相关联的多个PTAB槽412(0)到412(G)中的一或多者中,那么在一些方面中输入翻译调度器404可接下来确定所选择MATR 508是否可存储于经保留用于多个输入数据路径302(0)到302(N)中的一或多者独占式使用或经保留用于与一或多个指定QoS优先级相关联的MATR独占式使用的多个PTAB槽412(0)到412(G)中的一或多者中(框705)。如果否,那么处理返回到框700。另外,输入翻译调度器404调度所选择MATR 508以待由PTAB 406存储(框704)。PTAB 406接着存储通过输入翻译调度器404调度的所选择MATR 508(框706)。
图8说明输出翻译调度器410的示范性操作,输出翻译调度器在一些方面中可实施用于将TMAF 515提供到输出事务缓冲器306(Q)的图6B的框614的操作。为清楚起见,在描述图8时参考图4及5A到5F的元件。图8中的操作以聚合MMU 300的输出翻译调度器410从PTAB406中的一或多个待决翻译中选择针对其存储了TMAF 515的待决翻译开始(框800)。输出翻译调度器410接下来基于输出事务QoS仲裁而调度TMAF 515以作为翻译后事务512'移动到多个输出事务缓冲器306(0)到306(Q)中的输出事务缓冲器306(Q)(框802)。根据一些方面,输出事务QoS仲裁可考虑输出事务缓冲器槽318(0)到318(F)的可用性及待决TMAF 515的相对优先级,作为非限制性实例。
PTAB 406接着基于调度将待决TMAF 515移出队列到多个输出事务缓冲器306(0)到306(Q)中的输出事务缓冲器306(Q)(框804)。在一些方面中,输出翻译调度器410可提升翻译后事务512'的相对优先级(框806)。这可能在其中输入事务缓冲器304(N)中存在具有比输出事务缓冲器306(Q)中的翻译后事务512'更高优先级的新输入事务的情形中是合乎需要的。
如上文参看图6A所描述,在聚合MMU 300的一些方面中,用于基于MATR 508执行存储器地址翻译操作的框604的操作可通过MMU管理器408实施。在这方面,图9A及9B经提供以说明用于执行存储器地址翻译操作的MMU管理器408的示范性操作。为清楚起见,描述图9A及9B时参考图4及5A到5F的元件。
在图9A中,操作以MMU管理器408基于翻译QoS仲裁从PTAB 406中的一或多个待决MATR 508中选择尚未针对其存储TMAF 515的待决MATR 508开始(框902)。MMU管理器408接着确定对应于MATR 508的经高速缓冲存储器地址翻译结果是否存在于一或多个翻译高速缓冲存储器400(0)到400(P)中(框904)。如果是,那么MMU管理器408提供经高速缓冲存储器翻译结果(例如经高速缓存物理地址)作为TMAF 515的部分以由PTAB 406针对所选择MATR508而存储(框906)。
然而,如果MMU管理器408在决定框904处确定翻译高速缓冲存储器400不含有MATR508内的虚拟地址的地址翻译,那么处理在图9B的框908处继续。现参看图9B,MMU管理器408指派一或多个硬件页表查看器402(0)到402(W)中的硬件页表查看器402(0)到402(W)以产生用于所选择待决MATR 508的存储器地址翻译结果(例如,物理存储器地址翻译)(框908)。在一些方面中,用于指派硬件页表查看器402的框908的操作是基于硬件页表查看器QoS仲裁(框909)。在存储器翻译完成后,MMU管理器408接收来自硬件页表查看器402(0)到402(W)的存储器地址翻译结果(框910)。MMU管理器408接着提供接收的存储器地址翻译结果以由PTAB 406针对所选择待决MATR 508而存储为TMAF 515(框912)。MMU管理器408进一步提供接收的存储器地址翻译结果到一或多个翻译高速缓冲存储器400。
根据本文所公开的方面,使用聚合MMU提供存储器管理功能可提供于任何基于处理器的装置中或集成于其中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、智能手机、平板计算机、平板手机、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器及汽车。
在这方面,图10说明可使用图3A中所说明的示范性聚合MMU 300的基于处理器的***1000的实例。在此实例中,基于处理器的***1000包含一或多个中央处理单元(CPU)1002,每一中央处理单元1002包含一或多个处理器1004。所述一或多个CPU 1002可具有耦合到处理器1004以用于快速存取暂时存储的数据的高速缓冲存储器1006。CPU1002进一步包含用于将地址翻译服务提供给CPU存储器存取请求的CPU MMU 1008。一或多个CPU 1002耦合到***总线1010且可将包含于基于处理器的***1000中的主控器装置及受控器装置相互耦合。如所熟知,CPU 1002通过经由***总线1010交换地址、控制及数据信息而与此些其它装置通信。举例来说,CPU 1002可将总线事务请求传达到存储器***1012,存储器***1012提供存储器单元1014(0)到1014(N)。在图10的实例中,***MMU(SMMU)1016也耦合到***总线1010。应理解,CPU MMU 1008及SMMU 1016中的任一者或两者可包括图3A的聚合MMU300。
其它主控器装置及受控器装置可经由SMMU 1016连接到***总线1010。如图10中所说明,此些装置可包含存储器控制器1018、一或多个输入装置1020、一或多个输出装置1022、一或多个网络接口装置1024,及一或多个显示控制器1026,作为实例。输入装置1020可包含任何类型的输入装置,包含(但不限于)输入键、开关、语音处理器等。输出装置1022可包含任何类型的输出装置,包含(但不限于)音频、视频、其它视觉指示器等。网络接口装置1024可为经配置以允许到网络1028及来自网络1028的数据交换的任何装置。网络1028可为任何类型的网络,包含但不限于有线或无线网络、私用或公用网络、局域网(LAN)、广域局域网(WLAN),及因特网。网络接口装置1024可经配置以支持任何类型的所要通信协议。
CPU 1002还可经配置以经由***总线1010存取显示控制器1026以控制发送到一或多个显示器1030的信息。显示器控制器1026经由一或多个视频处理器1032将信息发送到显示器1030以显示,视频处理器将待显示的信息处理成适于显示器1030的格式。显示器1030可包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
所属领域的技术人员将进一步了解,可将结合本文中所公开的方面描述的各种说明性逻辑块、模块、电路及算法实施为电子硬件。作为实例,可在任何电路、硬件组件、集成电路(IC)或IC芯片中利用本文中所描述的装置。本文中所公开的存储器可为任何类型及大小的存储器,且可经配置以存储所要的任何类型的信息。为了清楚地说明此可互换性,上文已大体上在其功能性方面描述各种说明性组件、块、模块、电路及步骤。如何实施此功能性视特定应用、设计选择及/或强加于整个***的设计约束而定。对于每一特定应用来说,所属领域的技术人员可以变化的方式实施所描述的功能性,但不应将所述实施决策解释为导致脱离本发明的范围。
可通过处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散闸或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行结合本文中所公开的方面而描述的各种说明性逻辑块、模块及电路。处理器可为微处理器,但在替代方案中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可经实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此配置。
还应注意,描述在本文中在任何示范性方面中的任一者中所描述的操作步骤以提供实例及论述。可以除了所说明的序列以外的众多不同序列来执行所描述的操作。此外,描述于单一操作步骤中的操作可实际上以数个不同步骤执行。另外,可组合示范性方面中所论述的一或多个操作步骤。应理解,如对于所属领域的技术人员来说容易显而易见的,流程图图式中所说明的操作步骤可经受众多不同修改。所属领域的技术人员还将理解,可使用各种不同技术及技法中的任一者表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合表示遍及以上描述可能参考的数据、指令、命令、信息、信号、位、符号及码片。
提供本发明的先前描述以使得所属领域的任何技术人员能够制造或使用本发明。对本发明的各种修改对于所属领域的技术人员来说将容易地显而易见,且本文中所定义的一般原理可在不背离本发明的精神或范围的情况下应用于其它变化体。因此,本发明并不打算限于本文中所描述的实例及设计,而应符合与本文中所公开的原理及新颖特征相一致的最广泛范围。

Claims (44)

1.一种聚合存储器管理单元MMU,其包括:
多个输入数据端口,其各自经配置以将翻译前事务传达到经配置以接收多个存储器地址翻译前读取事务及多个存储器地址翻译前写入事务的多个输入数据路径,所述多个输入数据路径包括对应多个专用输入事务缓冲器,每一专用输入事务缓冲器包括经配置以存储在所述多个翻译前事务中的相应翻译前事务的多个输入事务缓冲器槽;
多个输出数据路径,其包括对应多个专用输出事务缓冲器,每一专用输出事务缓冲器包括经配置以存储多个翻译后事务的相应翻译后事务的多个输出事务缓冲器槽;
多个输出数据端口,其对应于所述多个输出数据路径;
翻译后仲裁器;以及MMU管理电路,其经配置以:
从所述多个专用输入事务缓冲器中的专用输入事务缓冲器中检索翻译前事务的存储器地址翻译请求MATR;
基于所述MATR执行存储器地址翻译操作以产生经翻译存储器地址字段TMAF;及
将所述TMAF及翻译前事务有效负载作为翻译后事务提供到所述多个专用输出事务缓冲器中的专用输出事务缓冲器;
其中:
所述多个输出数据路径中的每一输出数据路径经配置以经由对应多个输出数据端口输出所述翻译后事务;以及
所述翻译后仲裁器经配置以:
从所述多个输出数据路径的复数子集接收一或多个翻译后事务以待输出到所述多个输出数据端口中的输出数据端口;
基于翻译后服务质量QoS仲裁选择所述一或多个翻译后事务中的翻译后事务;及
提供所选择翻译后事务的所述TMAF到所述输出数据端口以用于输出。
2.根据权利要求1所述的聚合存储器管理单元MMU,其经配置以独立地定时所述多个输入数据路径中的每一者。
3.根据权利要求1所述的聚合存储器管理单元MMU,其中所述MMU管理电路进一步包括位于所述多个输入数据路径及所述多个输出数据路径附近的共享寄存器及共享控制逻辑中的一或多者以向所述多个输入数据路径及所述多个输出数据路径提供存储器管理功能。
4.根据权利要求1所述的聚合存储器管理单元MMU,其中所述多个输出数据路径中的输出数据路径经配置以保留所述多个输出事务缓冲器槽中的一或多个输出事务缓冲器槽以用于所述多个输入数据路径中的一或多个输入数据路径独占式使用同时允许通过所有所述多个输入数据路径存取所述多个输出事务缓冲器槽的剩余部分。
5.根据权利要求1所述的聚合存储器管理单元MMU,其中所述多个输出数据路径中的输出数据路径经配置以保留所述多个输出事务缓冲器槽中的一或多个输出事务缓冲器槽以用于与一或多个指定QoS优先级相关联的MATR独占式使用同时允许通过与任何QoS优先级相关联的MATR存取所述多个输出事务缓冲器槽的剩余部分。
6.根据权利要求1所述的聚合存储器管理单元MMU,其中:
所述MMU管理电路包括:
一或多个翻译高速缓冲存储器,其位于所述多个输入数据路径及所述多个输出数据路径附近并经配置以高速缓存虚拟地址到物理地址的多个存储器地址翻译;及
一或多个硬件页表查看器,其位于所述多个输入数据路径及所述多个输出数据路径附近,每一硬件页表查看器经配置以产生用于MATR的TMAF;且
所述MMU管理电路经配置以基于所述MATR执行所述存储器地址翻译操作以使用所述一或多个翻译高速缓冲存储器中的一或多者及所述一或多个硬件页表查看器中的一或多者产生所述TMAF。
7.根据权利要求6所述的聚合存储器管理单元MMU,其中所述一或多个硬件页表查看器各自经配置以使用所述多个输出数据端口中的输出数据端口产生用于所述MATR的所述TMAF。
8.根据权利要求6所述的聚合存储器管理单元MMU,其中所述一或多个硬件页表查看器经配置以使用专用输出端口产生用于所述MATR的所述TMAF。
9.根据权利要求6所述的聚合存储器管理单元MMU,其中所述MMU管理电路进一步包括待决事务地址缓冲器PTAB,所述待决事务地址缓冲器包括多个PTAB槽以用于存储MATR及对应TMAF;
所述PTAB经配置以:
存储由所述MMU管理电路从所述多个专用输入事务缓冲器中的所述专用输入事务缓冲器检索的所述翻译前事务的所述MATR作为待决翻译;
接收对应于由所述MMU管理电路产生的所述待决翻译的所述TMAF;
存储用于所述待决翻译的所述TMAF;及
将所述待决翻译移出队列以提供所述TMAF到所述多个专用输出事务缓冲器中的所述专用输出事务缓冲器。
10.根据权利要求9所述的聚合存储器管理单元MMU,其中所述PTAB经配置以保留所述多个PTAB槽中的一或多个PTAB槽以用于所述多个输入数据路径中的一或多个输入数据路径独占式使用同时允许通过所有所述多个输入数据路径存取所述多个PTAB槽的剩余部分。
11.根据权利要求9所述的聚合存储器管理单元MMU,其中所述PTAB经配置以保留所述多个PTAB槽中的一或多个PTAB槽以用于与一或多个指定QoS优先级相关联的MATR独占式使用同时允许通过与任何QoS优先级相关联的MATR存取所述多个PTAB槽的剩余部分。
12.根据权利要求9所述的聚合存储器管理单元MMU,其中所述MMU管理电路进一步包括经配置以通过经配置以执行以下操作而从所述多个专用输入事务缓冲器中的所述专用输入事务缓冲器检索所述翻译前事务的所述MATR的输入翻译调度器:
基于输入事务QoS仲裁从所述多个专用输入事务缓冲器中的所述专用输入事务缓冲器选择所述翻译前事务的所述MATR;及
调度所述所选择MATR以待由所述PTAB存储;
其中所述PTAB经配置以通过存储由所述输入翻译调度器调度的所述所选择MATR而存储所述MATR。
13.根据权利要求12所述的聚合存储器管理单元MMU,其中所述输入翻译调度器经配置以通过确定对应于所述所选择MATR的所述翻译前事务的所述专用输入事务缓冲器的所述专用输出事务缓冲器含有可用输出事务缓冲器槽而调度所述所选择MATR以待由所述PTAB存储。
14.根据权利要求12所述的聚合存储器管理单元MMU,其中所述输入翻译调度器经配置以响应于确定所述所选择MATR可存储于经保留用于所述多个输入数据路径中的一或多者独占式使用的所述多个PTAB槽中的一或多者中而调度所述所选择MATR以待由所述PTAB存储。
15.根据权利要求12所述的聚合存储器管理单元MMU,其中所述输入翻译调度器经配置以响应于确定所述所选择MATR可存储于经保留用于与一或多个指定QoS优先级相关联的MATR独占式使用的所述多个PTAB槽中的一或多者中而调度所述所选择MATR以待由所述PTAB存储。
16.根据权利要求9所述的聚合存储器管理单元MMU,其中所述MMU管理电路进一步包括经配置以通过经配置以执行以下操作而提供作为所述翻译后事务的所述TMAF及所述翻译前事务有效负载到所述多个专用输出事务缓冲器中的所述专用输出事务缓冲器的输出翻译调度器:
从所述PTAB中的一或多个待决翻译中选择针对其存储了TMAF的待决翻译;及
基于输出事务QoS仲裁,调度所述TMAF以作为翻译后事务移动到所述多个专用输出事务缓冲器中的专用输出事务缓冲器;
其中所述PTAB经配置以基于所述调度将所述待决翻译移出队列以提供所述TMAF到所述多个专用输出事务缓冲器中的所述专用输出事务缓冲器。
17.根据权利要求16所述的聚合存储器管理单元MMU,其中所述输出翻译调度器经配置以基于对应于从其中接收所述待决翻译的所述MATR的所述专用输入事务缓冲器的所述专用输出事务缓冲器含有可用输出事务缓冲器槽的确定,及所述待决事务的相对优先级而调度所述TMAF以移动到所述多个专用输出事务缓冲器中的所述专用输出事务缓冲器。
18.根据权利要求16所述的聚合存储器管理单元MMU,其中所述输出翻译调度器经进一步配置以提升所述翻译后事务的相对优先级。
19.根据权利要求9所述的聚合存储器管理单元MMU,其中所述MMU管理电路进一步包括经配置以通过经配置以执行以下操作基于所述MATR执行所述存储器地址翻译操作的MMU管理器:
基于一或多个待决MATR之间的QoS仲裁从所述一或多个待决MATR中选择所述PTAB中的尚未针对其存储TMAF的待决MATR;
确定对应于所述所选择MATR的高速缓冲存储器地址翻译结果是否存在于所述一或多个翻译高速缓冲存储器中;
响应于确定所述高速缓冲存储器地址翻译结果存在于所述一或多个翻译高速缓冲存储器中,提供所述高速缓冲存储器地址翻译结果作为待由所述PTAB针对所述所选择MATR存储的所述TMAF的部分;及
响应于确定所述高速缓冲存储器地址翻译结果并不存在于所述一或多个翻译高速缓冲存储器中:
指派所述一或多个硬件页表查看器中的硬件页表查看器以产生针对所选择待决MATR的存储器地址翻译结果;
接收来自所述硬件页表查看器的所述存储器地址翻译结果;
提供所述接收的存储器地址翻译结果以由所述PTAB针对所述所选择待决MATR存储为TMAF;及
提供所述接收的存储器地址翻译结果到所述一或多个翻译高速缓冲存储器。
20.根据权利要求19所述的聚合存储器管理单元MMU,其中所述MMU管理器经配置以基于硬件页表查看器QoS仲裁指派所述一或多个硬件页表查看器中的所述硬件页表查看器以产生针对所述所选择待决MATR的所述存储器地址翻译结果。
21.根据权利要求1所述的聚合存储器管理单元MMU,其集成于集成电路IC中。
22.根据权利要求1所述的聚合存储器管理单元MMU,其集成到选自由以下各者组成的群的装置中:机顶盒;娱乐单元;导航装置;通信装置;固定位置数据单元;移动位置数据单元;移动电话;蜂窝式电话;智能手机;平板计算机;平板手机;计算机;便携式计算机;台式计算机;个人数字助理PDA;监视器;计算机监视器;电视;调谐器;收音机;卫星收音机;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频光盘DVD播放器;便携式数字视频播放器;及汽车。
23.一种聚合存储器管理单元MMU,其包括:
用于从对应于所述聚合MMU的多个输入数据路径的多个专用输入事务缓冲器中的专用输入事务缓冲器中检索存储器地址翻译请求MATR的装置;
用于基于所述MATR执行存储器地址翻译操作以产生经翻译存储器地址字段TMAF的装置;
用于将所述TMAF及翻译前事务有效负载作为翻译后事务提供到对应于所述多个输入数据路径的多个专用输出事务缓冲器中的专用输出事务缓冲器的装置;
用于经由多个输出数据路径中的输出数据路径输出所述翻译后事务到所述聚合MMU的多个输出数据端口中的输出数据端口的装置;
用于从所述多个输出数据路径的复数子集接收一或多个翻译后事务以待输出到所述多个输出数据端口中的输出数据端口的装置;
用于基于翻译后服务质量QoS仲裁选择所述一或多个翻译后事务中的翻译后事务的装置;及
用于提供所选择翻译后事务的所述TMAF到所述输出数据端口以用于输出的装置。
24.根据权利要求23所述的聚合存储器管理单元MMU,其中所述用于基于所述MATR执行所述存储器地址翻译操作以产生所述TMAF的装置包括位于所述多个输入数据路径及所述多个输出数据路径附近的一或多个翻译高速缓冲存储器及位于所述多个输入数据路径及所述多个输出数据路径附近的一或多个硬件页表查看器。
25.一种用于提供存储器管理的方法,其包括:
通过聚合存储器管理单元MMU从对应于所述聚合MMU的多个输入数据路径的多个专用输入事务缓冲器中的专用输入事务缓冲器检索翻译前事务的存储器地址翻译请求MATR;
基于所述MATR执行存储器地址翻译操作以产生经翻译存储器地址字段TMAF;
将所述TMAF及翻译前事务有效负载作为翻译后事务提供到对应于所述多个输入数据路径的多个专用输出事务缓冲器中的专用输出事务缓冲器;
经由多个输出数据路径中的输出数据路径输出所述翻译后事务到所述聚合MMU的多个输出数据端口中的输出数据端口;
通过所述聚合MMU的翻译后仲裁器接收来自所述多个输出数据路径的复数子集的一或多个翻译后事务以待输出到所述多个输出数据端口中的输出数据端口;
通过所述翻译后仲裁器基于翻译后服务质量QoS仲裁选择所述一或多个翻译后事务中的翻译后事务;及
通过所述翻译后仲裁器提供所选择翻译后事务到所述输出数据端口以用于输出。
26.根据权利要求25所述的方法,其中所述多个输入数据路径中的每一者经独立地定时。
27.根据权利要求25所述的方法,其中所述聚合MMU包括位于所述多个输入数据路径及所述多个输出数据路径附近的共享寄存器及共享控制逻辑中的一或多者以向所述多个输入数据路径及所述多个输出数据路径提供存储器管理功能。
28.根据权利要求25所述的方法,其中所述多个输出数据路径中的输出数据路径经配置以保留多个输出事务缓冲器槽中的一或多个输出事务缓冲器槽以用于所述多个输入数据路径中的一或多个输入数据路径独占式使用同时允许通过所有所述多个输入数据路径存取所述多个输出事务缓冲器槽的剩余部分。
29.根据权利要求25所述的方法,其中所述多个输出数据路径中的输出数据路径经配置以保留多个输出事务缓冲器槽中的一或多个输出事务缓冲器槽以用于与一或多个指定QoS优先级相关联的MATR独占式使用同时允许通过与任何QoS优先级相关联的MATR存取所述多个输出事务缓冲器槽的剩余部分。
30.根据权利要求25所述的方法,其中基于所述MATR执行所述存储器地址翻译操作以产生所述TMAF包括使用位于所述多个输入数据路径及所述多个输出数据路径附近的一或多个翻译高速缓冲存储器及位于所述多个输入数据路径及所述多个输出数据路径附近的一或多个硬件页表查看器执行所述存储器地址翻译操作。
31.根据权利要求30所述的方法,其中所述一或多个硬件页表查看器使用所述多个输出数据端口中的输出数据端口产生用于所述MATR的所述TMAF。
32.根据权利要求30所述的方法,其中所述一或多个硬件页表查看器使用专用输出端口产生用于所述MATR的所述TMAF。
33.根据权利要求30所述的方法,其进一步包括:
通过所述聚合MMU的待决事务地址缓冲器PTAB将由MMU从所述多个专用输入事务缓冲器中的所述专用输入事务缓冲器检索的所述翻译前事务的所述MATR存储为待决翻译;
通过所述PTAB接收对应于由MMU管理电路产生的所述待决翻译的所述TMAF;
通过所述PTAB存储用于所述待决翻译的所述TMAF;及
通过所述PTAB将所述待决翻译移出队列以提供所述TMAF到所述多个专用输出事务缓冲器的所述专用输出事务缓冲器。
34.根据权利要求33所述的方法,其中所述PTAB的多个PTAB槽中的一或多个PTAB槽经保留用于所述多个输入数据路径中的一或多个输入数据路径独占式使用同时所述多个PTAB槽的剩余部分可通过所有所述多个输入数据路径存取。
35.根据权利要求33所述的方法,其中所述PTAB的多个PTAB槽中的一或多个PTAB槽经保留用于与一或多个指定QoS优先级相关联的MATR独占式使用同时所述多个PTAB槽的剩余部分可通过与任何QoS优先级相关联的MATR存取。
36.根据权利要求33所述的方法,其中从所述多个专用输入事务缓冲器中的所述专用输入事务缓冲器检索所述翻译前事务的所述MATR包括:
通过所述聚合MMU的输入翻译调度器基于输入事务QoS仲裁选择来自所述多个专用输入事务缓冲器中的所述专用输入事务缓冲器的所述翻译前事务的所述MATR;及
通过所述输入翻译调度器调度所述所选择MATR以待由所述PTAB存储;
其中存储所述MATR包括存储通过所述输入翻译调度器调度的所述所选择MATR。
37.根据权利要求36所述的方法,其中调度所述所选择MATR以待由所述PTAB存储包括确定对应于所述所选择MATR的所述翻译前事务的所述专用输入事务缓冲器的所述专用输出事务缓冲器含有可用输出事务缓冲器槽。
38.根据权利要求36所述的方法,其中调度所述所选择MATR以待由所述PTAB存储包括确定所述所选择MATR可存储在经保留用于所述多个输入数据路径中的一或多者独占式使用的所述多个PTAB槽中的所述一或多者中。
39.根据权利要求36所述的方法,其中调度所述所选择MATR以待由所述PTAB存储包括确定所述所选择MATR可存储于经保留用于与一或多个指定QoS优先级相关联的MATR独占式使用的所述多个PTAB槽中的所述一或多者中。
40.根据权利要求33所述的方法,其中将所述TMAF及所述翻译前事务有效负载作为所述翻译后事务提供到所述多个专用输出事务缓冲器中的所述专用输出事务缓冲器包括:
通过所述聚合MMU的输出翻译调度器从所述PTAB中的一或多个待决翻译中选择针对其存储了TMAF的待决翻译;及
通过所述输出翻译调度器基于输出事务QoS仲裁调度所述TMAF以作为翻译后事务移动到所述多个专用输出事务缓冲器中的专用输出事务缓冲器;
其中将所述待决TMAF移出队列以提供所述TMAF到所述多个专用输出事务缓冲器中的所述专用输出事务缓冲器是基于所述调度。
41.根据权利要求40所述的方法,其中调度所述待决TMAF以移动到所述多个专用输出事务缓冲器中的所述专用输出事务缓冲器是基于对应于从其中接收所述待决翻译的所述MATR的所述专用输入事务缓冲器的所述专用输出事务缓冲器含有可用输出事务缓冲器槽的确定及所述待决翻译的相对优先级。
42.根据权利要求40所述的方法,其进一步包括通过所述输出翻译调度器提升所述翻译后事务的相对优先级。
43.根据权利要求33所述的方法,其中基于所述MATR执行所述存储器地址翻译操作包括:
通过所述聚合MMU的MMU管理器基于一或多个待决MATR之间的QoS仲裁从所述一或多个待决MATR中选择所述PTAB中的尚未针对其存储TMAF的待决MATR;
通过所述MMU管理器确定对应于所述所选择待决MATR的高速缓冲存储器地址翻译结果是否存在于所述一或多个翻译高速缓冲存储器中;
响应于确定所述高速缓冲存储器地址翻译结果存在于所述一或多个翻译高速缓冲存储器中,通过所述MMU管理器提供所述高速缓冲存储器地址翻译结果作为待由所述PTAB针对所述所选择待决MATR存储的所述TMAF的部分;及
响应于确定所述高速缓冲存储器地址翻译结果并不存在于所述一或多个翻译高速缓冲存储器中:
通过所述MMU管理器指派所述一或多个硬件页表查看器中的硬件页表查看器以产生用于所述所选择待决MATR的所述MATR的存储器地址翻译结果;
通过所述MMU管理器接收来自所述硬件页表查看器的所述存储器地址翻译结果;及
通过所述MMU管理器提供所述接收的存储器地址翻译结果以由所述PTAB针对所述所选择待决MATR存储为TMAF;及
提供所述接收的存储器地址翻译结果到所述一或多个翻译高速缓冲存储器。
44.根据权利要求43所述的方法,其中指派所述一或多个硬件页表查看器中的所述硬件页表查看器以产生用于所述所选择MATR的所述存储器地址翻译结果是基于硬件页表查看器QoS仲裁。
CN201680055150.XA 2015-09-25 2016-09-12 使用聚合存储器管理单元(mmu)提供存储器管理功能 Expired - Fee Related CN108351838B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/866,228 2015-09-25
US14/866,228 US10019380B2 (en) 2015-09-25 2015-09-25 Providing memory management functionality using aggregated memory management units (MMUs)
PCT/US2016/051254 WO2017053112A1 (en) 2015-09-25 2016-09-12 Providing memory management functionality using aggregated memory management units (mmus)

Publications (2)

Publication Number Publication Date
CN108351838A CN108351838A (zh) 2018-07-31
CN108351838B true CN108351838B (zh) 2019-08-30

Family

ID=56979683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680055150.XA Expired - Fee Related CN108351838B (zh) 2015-09-25 2016-09-12 使用聚合存储器管理单元(mmu)提供存储器管理功能

Country Status (9)

Country Link
US (1) US10019380B2 (zh)
EP (1) EP3353663B1 (zh)
JP (1) JP6408747B1 (zh)
KR (1) KR20180054836A (zh)
CN (1) CN108351838B (zh)
BR (1) BR112018006070A2 (zh)
CA (1) CA2998337A1 (zh)
TW (1) TW201723854A (zh)
WO (1) WO2017053112A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007619B2 (en) * 2015-05-29 2018-06-26 Qualcomm Incorporated Multi-threaded translation and transaction re-ordering for memory management units
US20190087351A1 (en) * 2017-09-20 2019-03-21 Qualcomm Incorporated Transaction dispatcher for memory management unit
WO2020040531A1 (ko) 2018-08-20 2020-02-27 한양대학교 산학협력단 무선통신 시스템에서 단말 정보 수집장치의 상향링크 간섭제어 방법 및 장치
US11656905B2 (en) * 2019-08-09 2023-05-23 Arm Limited Delegation control based on program privilege level and page privilege level
CN115113828B (zh) * 2022-08-26 2022-12-02 瀚博半导体(上海)有限公司 存储器管理***、方法、人工智能芯片、电子设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015085247A1 (en) * 2013-12-05 2015-06-11 Qualcomm Incorporated System and method for providing client-side address translation in a memory management system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328994A (ja) * 1995-05-30 1996-12-13 Toshiba Corp 情報処理装置
JP4240610B2 (ja) * 1998-11-27 2009-03-18 株式会社日立製作所 計算機システム
US6625157B2 (en) * 1999-05-20 2003-09-23 Advanced Micro Devices, Inc. Apparatus and method in a network switch port for transferring data between buffer memory and transmit and receive state machines according to a prescribed interface protocol
US6742101B2 (en) * 2001-06-29 2004-05-25 Fujitsu Limited Scalable and flexible method for address space decoding in a multiple node computer system
US7673116B2 (en) 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
JP4909963B2 (ja) * 2008-09-09 2012-04-04 株式会社東芝 統合メモリ管理装置
US8301865B2 (en) 2009-06-29 2012-10-30 Oracle America, Inc. System and method to manage address translation requests
US8234407B2 (en) * 2009-06-30 2012-07-31 Oracle America, Inc. Network use of virtual addresses without pinning or registration
US9405700B2 (en) 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
GB2495533A (en) 2011-10-13 2013-04-17 St Microelectronics Res & Dev Distributing buffer data evenly across different memory devices
US20130179642A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Non-Allocating Memory Access with Physical Address
US9378150B2 (en) 2012-02-28 2016-06-28 Apple Inc. Memory management unit with prefetch ability
US9009446B2 (en) 2012-08-02 2015-04-14 Oracle International Corporation Using broadcast-based TLB sharing to reduce address-translation latency in a shared-memory system with electrical interconnect
US9582287B2 (en) 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015085247A1 (en) * 2013-12-05 2015-06-11 Qualcomm Incorporated System and method for providing client-side address translation in a memory management system

Also Published As

Publication number Publication date
EP3353663B1 (en) 2019-08-21
JP2018533787A (ja) 2018-11-15
JP6408747B1 (ja) 2018-10-17
EP3353663A1 (en) 2018-08-01
CA2998337A1 (en) 2017-03-30
US10019380B2 (en) 2018-07-10
TW201723854A (zh) 2017-07-01
US20170091116A1 (en) 2017-03-30
WO2017053112A1 (en) 2017-03-30
CN108351838A (zh) 2018-07-31
BR112018006070A2 (pt) 2018-10-09
KR20180054836A (ko) 2018-05-24

Similar Documents

Publication Publication Date Title
CN108351838B (zh) 使用聚合存储器管理单元(mmu)提供存储器管理功能
CN104380258B (zh) 对图形硬件实施调度操作
US20160132541A1 (en) Efficient implementations for mapreduce systems
EP1262878A2 (en) Self-optimizing crossbar switch
CN104699525B (zh) 消息通信技术
CN113312278B (zh) 一种静态可分配共享多队列缓存的装置及方法
CN106612236B (zh) 众核网络处理器及其微引擎的报文调度方法、***
JP2015537307A (ja) コンポーネント指向ハイブリッドクラウドオペレーティングシステムのアーキテクチャ及びその通信方法
US20210352023A1 (en) Utilizing coherently attached interfaces in a network stack framework
WO2016085641A1 (en) Providing shared cache memory allocation control in shared cache memory systems
CN106462522A (zh) 基于闪存的存储设备的输入/输出虚拟化(iov)主机控制器(hc)(iov‑hc)
EP3224727B1 (en) Generating approximate usage measurements for shared cache memory systems
WO2022212415A1 (en) On-chip interconnect for memory channel controllers
CN106293953A (zh) 一种访问共享显示数据的方法及***
US9838471B2 (en) Method and an apparatus for work request arbitration in a network processor
KR101862799B1 (ko) 메모리 컨트롤러 및 메모리 컨트롤 방법
Faraji Improving communication performance in GPU-accelerated HPC clusters
US12039359B1 (en) System and method for isolating work within a virtualized scheduler using tag-spaces
CN109308247A (zh) 一种日志处理方法、装置、设备及一种网络设备
Dehyadegari et al. Distributed fair DRAM scheduling in network-on-chips architecture

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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190830

Termination date: 20210912