CN107667355B - 一种用于提供分区的转换高速缓存器的方法及其设备 - Google Patents

一种用于提供分区的转换高速缓存器的方法及其设备 Download PDF

Info

Publication number
CN107667355B
CN107667355B CN201680029040.6A CN201680029040A CN107667355B CN 107667355 B CN107667355 B CN 107667355B CN 201680029040 A CN201680029040 A CN 201680029040A CN 107667355 B CN107667355 B CN 107667355B
Authority
CN
China
Prior art keywords
partition
partitions
tcpid
translation cache
translation
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.)
Active
Application number
CN201680029040.6A
Other languages
English (en)
Other versions
CN107667355A (zh
Inventor
J·E·波达艾玛
B·雷赫利克
C·J·莫雷拉
S·M·加代尔拉布
P·C·J·维尔齐恩斯基
A·米雷特斯凯
K·J·厄恩魏因
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 CN107667355A publication Critical patent/CN107667355A/zh
Application granted granted Critical
Publication of CN107667355B publication Critical patent/CN107667355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/12Replacement control
    • 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
    • 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/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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包括转换高速缓存器,其提供定义地址转换映射的多个转换高速缓存器条目。所述MMU进一步包括分区描述符表,其提供定义对应多个分区的多个分区描述符,所述对应多个分区中的每一者包括所述多个转换高速缓存器条目的一或多个转换高速缓存器条目。所述MMU还包括分区转换电路,其经配置以从请求器接收存储器存取请求。所述分区转换电路经进一步配置以确定所述存储器存取请求的转换高速缓存器分区标识符TCPID、基于所述TCPID而标识所述多个分区的一或多个分区,以及对所述一或多个分区的转换高速缓存器条目执行所述存储器存取请求。

Description

一种用于提供分区的转换高速缓存器的方法及其设备
优先权申请案
本申请案主张2015年5月29日申请的标题为“提供存储器管理单元(MMU)分区的转换高速缓存器,以及相关设备、方法及计算机可读媒体(PROVIDING MEMORY MANAGEMENTUNIT(MMU)PARTITIONED TRANSLATION CACHES,AND RELATED APPARATUSES,METHODS,ANDCOMPUTER-READABLE MEDIA)”的美国专利申请案第14/725,882号的优先权,所述申请案以全文引用的方式并入本文中。
技术领域
本发明的技术大体上涉及由存储器管理单元(MMU)提供的转换高速缓存器。
背景技术
虚拟存储器是由最现代的计算系统提供的存储器管理技术。使用虚拟存储器,计算系统的中央处理单元(CPU)或外围装置可使用经映射到物理存储器空间内的物理存储器地址的虚拟存储器地址来存取存储器缓冲器。以此方式,CPU或外围装置可能够定址比以其它方式可定址的大的物理地址空间,以及/或可利用实际上在物理存储器空间中物理上不连续的存储器缓冲器的连续呈现。
习知地,通过将存储器管理单元(MMU)用于虚拟存储器地址到物理存储器地址的转换来实施虚拟存储器。MMU可集成到计算系统的CPU(CPU MMU),或可包括提供外围装置的存储器管理功能(系统MMU,或SMMU)的单独电路。在习知操作中,MMU从“上游”装置接收存储器存取请求,作为非限制性实例,“上游”装置例如直接存储器存取(DMA)代理、视频加速器及/或显示器引擎。对于每一存储器存取请求,MMU将包含于存储器存取请求中的虚拟存储器地址转换为物理存储器地址,且随后使用经转换物理存储器地址处理所述存储器存取请求。
因为可能需要MMU在短时间间隔内反复转换同一虚拟存储器地址,所以可通过高速缓存器MMU内的地址转换数据来改进MMU及计算系统整体的性能。就此来说,MMU 可包含被称为转换高速缓存器的结构(还被称作转换后备缓冲器或TLB)。转换高速缓存器提供转换高速缓存器条目,先前产生的虚拟到物理存储器地址转换映射可存储于所述转换高速缓存器条目中以供稍后存取。如果MMU随后接收用以转换存储于转换高速缓存器中的虚拟存储器地址的请求,那么MMU可从转换高速缓存器检索对应物理存储器地址,而非再转换虚拟存储器地址。
然而,在MMU将地址转换服务提供给多个上游装置的情境下,可能失去通过使用转换高速缓存器达成的性能优势。因为上游装置必须共享MMU的转换高速缓存器的资源,所以对有限数目个转换高速缓存器条目的竞争可导致“辗转现象(thrashing)”,其中两个或大于两个上游装置为有利于自身而反复地收回彼此的转换高速缓存器条目。在最差情况的情境中,由辗转现象产生的额外负担可抵消高速缓存器的优势。较大转换高速缓存器可减轻针对转换高速缓存器条目的装置间竞争的效应,但还可产生增大的功率消耗及较大的物理占据面积。
发明内容
实施方式中所揭示的方面包含提供存储器管理单元(MMU)分区的转换高速缓存器,以及相关设备、方法及计算机可读媒体。就此来说,MMU经提供用于启用转换高速缓存器分割。所述MMU包含提供转换高速缓存器条目的转换高速缓存器,所述转换高速缓存器条目中的每一者存储由先前地址转换操作确定的虚拟到物理地址映射。为启用分割,所述MMU提供分区描述符表,且任选地提供分区再映射表及/或分区选择表。所述分区描述符表包含分区描述符,所述分区描述符各自定义含有所述转换高速缓存器的一或多个转换高速缓存器条目的分区。在从请求器接收存储器存取请求后,所述MMU的分区转换电路立即确定所述存储器存取请求的转换高速缓存器分区标识符(TCPID),且基于所述TCPID而标识所述分区中的一或多者。在一些方面中,确定所述TCPID可包含使用所述分区再映射表来定位所述存储器存取请求的所述TCPID,以作为与输出 TCPID相关联的输入TCPID。可转而接着使用所述输出TCPID,以使用所述分区选择表来标识所述一或多个分区。一旦标识所述一或多个分区,便对所述一或多个分区的所述一或多个转换高速缓存器条目的一转换高速缓存器条目执行高速缓存操作(例如,高速缓存器搜索操作及/或高速缓存器收回操作)。以此方式,可在多个请求器的中有效地分割所述MMU的所述转换高速缓存器,从而导致请求器之间针对转换高速缓存器条目的竞争减少。
在一个方面中,提供一种设备,所述设备包括用于提供分区的转换高速缓存器的MMU。所述MMU包括转换高速缓存器,其经配置以提供各自定义地址转换映射的多个转换高速缓存器条目。所述MMU进一步包括分区描述符表,其经配置以提供定义所述转换高速缓存器的对应多个分区的多个分区描述符,所述多个分区的每一分区包括所述多个转换高速缓存器条目的一或多个转换高速缓存器条目。所述MMU还包括分区转换电路。所述分区转换电路经配置以从请求器接收存储器存取请求。所述分区转换电路经进一步配置以确定所述存储器存取请求的转换高速缓存器分区标识符(TCPID)。所述分区转换电路还经配置以基于所述TCPID而标识所述多个分区的一或多个分区。所述分区转换电路经另外配置以对所述一或多个分区的所述一或多个转换高速缓存器条目的一转换高速缓存器条目执行高速缓存操作。
在另一方面中,提供一种MMU。所述MMU包括用于提供各自定义地址转换映射的多个转换高速缓存器条目的装置。所述MMU进一步包括用于提供定义所述MMU的转换高速缓存器的对应多个分区的多个分区描述符的装置,所述多个分区中的每一分区包括所述多个转换高速缓存器条目的一或多个转换高速缓存器条目。所述MMU还包括用于从请求器接收存储器存取请求的装置。所述MMU另外包括用于确定所述存储器存取请求的TCPID的装置。所述MMU进一步包括用于基于所述TCPID而标识所述多个分区的一或多个分区的装置。所述MMU还包括用于对所述一或多个分区的所述一或多个转换高速缓存器条目的一转换高速缓存器条目执行高速缓存操作的装置。
在另一方面中,提供一种用于提供分区的转换高速缓存器的方法。所述方法包括通过MMU从请求器接收存储器存取请求。所述方法进一步包括确定所述存储器存取请求的TCPID。所述方法还包括基于所述TCPID而标识所述MMU的转换高速缓存器的多个分区的一或多个分区。所述方法另外包括对所述一或多个分区的一或多个转换高速缓存器条目的一转换高速缓存器条目执行高速缓存操作。
在另一方面中,提供一种非暂时性计算机可读媒体,其上存储有计算机可执行指令。所述计算机可执行指令在由处理器执行时使所述处理器从请求器接收存储器存取请求。所述计算机可执行指令进一步使所述处理器确定所述存储器存取请求的TCPID。所述计算机可执行指令还使所述处理器基于所述TCPID而标识MMU的转换高速缓存器的多个分区的一或多个分区。所述计算机可执行指令另外使所述处理器对所述一或多个分区的一或多个转换高速缓存器条目的一转换高速缓存器条目执行高速缓存操作。
附图说明
图1为说明示范性计算系统的框图,所述示范性计算系统说明从上游装置到提供地址转换服务的存储器管理单元(MMU)的通信流;
图2为说明用于提供分区的转换高速缓存器的示范性MMU的框图;
图3A及3B为说明图2中所说明的用于定义转换高速缓存器分区的分区描述符的示范性方面的框图;
图4为说明存储器存取请求及图2中所说明的用于确定转换高速缓存器分区标识符 (TCPID)的分区转换电路的示范性方面的框图;
图5为说明图2的用于提供分区的转换高速缓存器的MMU的示范性操作的流程图;
图6A到6C为说明用于提供分区的转换高速缓存器的其它示范性操作的流程图,其包含TCPID再映射及使用分区选择条目;以及
图7为可包含图1的MMU的示范性的基于处理器的系统的框图。
具体实施方式
现在参看图式,描述本发明的若干示范性方面。词语“示范性”在本文中用以意指“充当实例、例子或说明”。本文中描述为“示范性”的任何方面未必应解释为优选或优于其它方面。
在论述如本文所揭示的用于提供MMU分区的转换高速缓存器的示范性设备及方法之前,描述提供虚拟到物理存储器地址转换的常规计算系统。就此来说,图1为说明示范性计算系统100的框图,其中中央处理单元(CPU)MMU 102为CPU 104提供地址转换服务,且系统MMU(SMMU)106为上游装置108、110及112提供地址转换服务。应理解,计算系统100及其元件可涵盖其它元件中的已知数字逻辑元件、半导体电路、处理核心及/或存储器结构中的任一者,或其组合。本文中所描述的方面不限于任何特定配置的元件,且所揭示技术可容易地扩展到半导体裸片或封装上的各种结构及布局。
如图1中所见,计算系统100包含分别具有主控端口(M)114、116及118的上游装置108、110及112,所述主控端口连接到互连件126的对应从属端口(S)120、122及124。在一些方面中,上游装置108、110及112中的每一者可包括外围装置,例如直接存储器存取(DMA)代理、视频加速器及/或显示引擎(作为非限制性实例)。互连件126可从上游装置108、110及112接收存储器存取请求(未示出),且可将所述存储器存取请求从主控端口(M)128传送到SMMU 106的从属端口(S)130。在接收每一存储器存取请求之后, SMMU 106可执行虚拟到物理存储器地址转换,且基于所述地址转换,可通过系统互连件136存取存储器132及/或从属装置134。如图1中所示,SMMU 106的主控端口(M)138 与系统互连件136的从属端口(S)140通信。系统互连件136转而通过主控端口(M)142 及144分别与存储器132及从属装置134的从属端口(S)146及148通信。在一些方面中,存储器132及/或从属装置134可包括系统存储器、系统寄存器及/或存储器映射输入/输出(I/O)装置(作为非限制性实例)。应理解,虽然SMMU 106服务上游装置108、110及 112,但一些方面可提供:SMMU 106可服务比图1中所说明的上游装置多或少的上游装置。
如上所述,计算系统100还包含集成于CPU MMU 102中的CPU 104。CPU MMU 102 可提供对CPU MMU 102的CPU存储器存取请求(未示出)的地址转换服务,其方式与 SMMU 106将地址转换服务提供给上游装置108、110及112基本上相同。在执行CPU 存储器存取请求的虚拟到物理存储器地址转换之后,CPU MMU 102可通过系统互连件 136来存取存储器132及/或从属装置134。具体来说,CPU 104的主控端口(M)150与系统互连件136的从属端口(S)152通信。系统互连件136接着通过主控端口(M)142及144 分别与存储器132及从属装置134的从属端口(S)146及148通信。
为改进性能,例如CPU MMU 102及/或SMMU 106的MMU可提供用于存储先前产生的虚拟到物理存储器地址转换映射的转换高速缓存器(未示出)。然而,在于多个上游装置中共享的MMU(例如SMMU 106)的状况下,可迫使上游装置竞争以得到转换高速缓存器的有限资源。此竞争可导致辗转现象,这是因为上游装置为有利于自身而反复地收回彼此的转换高速缓存器条目。在最差情况的情境中,通过辗转现象招致的额外负担可抵消转换高速缓存器的优势。
就此来说,提供图2以说明用于提供分区的转换高速缓存器的示范性MMU 200。在一些方面中,可在例如图1的计算系统100的计算系统中利用MMU 200,从而代替 CPU MMU102及/或SMMU 106。MMU 200包含提供转换高速缓存器条目204(0)到 204(X)的转换高速缓存器202。在一些方面中,作为非限制性实例,转换高速缓存器条目204(0)到204(X)中的每一者定义地址转换映射(未示出),例如虚拟到物理存储器地址转换映射。应理解,一些方面可提供:转换高速缓存器202可比图2中所说明的转换高速缓存器条目多或少的转换高速缓存器条目204(0)到204(X)。转换高速缓存器202在本文中还被称作“用于提供各自定义地址转换映射的多个转换高速缓存器条目的装置”。
MMU 200进一步包含分区描述符表206。分区描述符表206提供分区描述符208(0)到208(N),所述分区描述符定义对应分区210(0)到210(N)。如图2中所示,分区210(0) 到210(N)中的每一者包含转换高速缓存器202的转换高速缓存器条目204(0)到204(X) 中的一或多者。举例来说,在图2的实例中,分区210(0)包含转换高速缓存器条目204(0) 到204(2),而分区210(1)包含转换高速缓存器条目204(3)到204(5),且分区210(N)包含转换高速缓存器条目204(6)到204(X)。根据一些方面,分区描述符表206可包含比图2 中所说明的分区描述符多或少的分区描述符208(0)到208(N)。分区描述符表206在本文中还被称作“用于提供定义MMU的转换高速缓存器的对应多个分区的多个分区描述符的装置”。下文关于图3A及3B更详细地论述可由分区描述符208(0)到208(N)使用以定义对应分区210(0)到210(N)的示范性机制。
在一些方面中,分区210(0)到210(N)可被视为由分区描述符208(0)到208(N)定义的逻辑构造。一些方面可提供:分区描述符208(0)到208(N)可于设计时间进行配置。因此,在这些方面中,可于设计时间确定分区210(0)到210(N)的数目及分配到分区210(0)到 210(N)中的每一者的转换高速缓存器条目204(0)到204(X)的数目。在一些方面中,分区描述符208(0)到208(N)可在运行阶段通过软件可编程,从而准许分区210(0)到210(N) 的数目及分区210(0)到210(N)中的每一者的转换高速缓存器条目204(0)到204(X)的数目以动态方式进行配置。
继续参看图2,MMU 200还包含分区转换电路212。在示范性操作中,分区转换电路212从例如图1的上游装置108、110、112中的一者的请求器接收存储器存取请求(未示出)。分区转换电路212可接着确定存储器存取请求的TCPID(未示出)。如下文关于图4所更详细论述,可由请求器明确地提供TCPID以作为存储器存取请求的部分,以及 /或可由分区转换电路212基于存储器存取请求自身的源类型及/或属性而导出TCPID。分区转换电路212接着基于TCPID而标识分区210(0)到210(N)中的一或多者,且对对应于分区210(0)到210(N)中的经标识的一或多者的转换高速缓存器条目204(0)到204(X) 中的一或多者执行高速缓存操作。在一些方面中,执行高速缓存操作可包括:搜索转换高速缓存器条目204(0)到204(X);写入到转换高速缓存器条目204(0)到204(X)中的一或多者;以及/或收回转换高速缓存器条目204(0)到204(X)中的一或多者的内容(作为非限制性实例)。分区转换电路212可在本文中被称作“用于从请求器接收存储器存取请求的装置”、“用于确定存储器存取请求的TCPID的装置”、“用于基于TCPID而标识多个分区的一或多个分区的装置”及/或“用于对转换高速缓存器条目执行高速缓存操作的装置”。
分区转换电路212因这可确保:响应于来自请求器的存储器存取请求,分区转换电路212仅对与通过TCPID标识的分区210(0)到210(N)中的一或多者相关联的特定转换高速缓存器条目204(0)到204(X)执行高速缓存操作。举例来说,如果TCPID标识分区 210(0),那么分区转换电路212可能够仅对与分区210(0)相关联的转换高速缓存器条目 204(0)到204(2)执行高速缓存操作。实际上,分区转换电路212可使用分区210(0)到 210(N)将存取控制机制提供到转换高速缓存器条目204(0)到204(X),从而阻止与不同 TCPID相关联的请求器不利地影响彼此的转换高速缓存器条目204(0)到204(X)。
在一些方面中,许多情况可发生,在所述情况下,可能需要将存储器存取请求内所接收或从所述存储器存取请求导出的TCPID映射到实际上用以标识分区210(0)到 210(N)中的一或多者的“输出”TCPID。举例来说,提供TCPID再映射可有助于分区描述符208(0)到208(N)的软件重新配置。就此来说,在一些方面中,分区转换电路212可任选地提供含有一或多个再映射条目216(0)到216(M)的分区再映射表214。再映射条目 216(0)到216(M)各自将对应输入TCPID 218(0)到218(M)(即,标识上游请求器指定用于地址转换的转换高速缓存器分区或分区集合的TCPID)映射到对应输出TCPID 220(0)到 220(M)(即,标识实际上用于地址转换的转换高速缓存器分区或分区集合的TCPID)。分区转换电路212可因此在确定从存储器存取请求接收或导出的TCPID之后执行TCPID 再映射。
为进行此操作,分区转换电路212首先标识再映射条目216(0)到216(M)中的一者,其中输入TCPID 218(0)到218(M)对应于存储器存取请求的TCPID。在一些方面中,存储器存取请求的TCPID可为软件可编程的,或可经硬式译码,使得软件无法修改存储器存取请求的TCPID的值。分区转换电路212可接着从含有输入TCPID 218(0)到218(M) 的再映射条目216(0)到216(M)检索输出TCPID 220(0)到220(M),且可使用输出TCPID 220(0)到220(M)以将分区210(0)到210(N)中的一或多者标识为高速缓存操作的目标。以此方式,分区再映射表214可实现作为存储器存取请求的部分而接收的TCPID的编程再映射,其可允许软件性能最佳化、系统性能调谐及/或由不正确请求器指定的TCPID产生的硬件问题的校正(作为非限制性实例)。
根据一些方面,MMU 200还可任选地提供分区选择表222,以促进对作用中的且有资格用于高速缓存器搜索及/或高速缓存器收回的转换高速缓存器条目204(0)到204(X)的选择。为此目的,分区选择表222包含对应于分区210(0)到210(N)的一分区选择条目 224(0)到224(Y)。分区选择条目224(0)到224(Y)中的每一者可对应于分区210(0)到210(N) 中的一或多者。在图2的实例中,举例来说,分区选择条目224(0)对应于分区210(0)及 210(1),而分区选择条目224(Y)对应于分区210(N)。在一些方面中,可使用从分区再映射表214检索的输出TCPID 220(0)到220(M)中的一者来选择分区选择条目224(0)到 224(Y)。分区选择条目224(0)到224(Y)中的每一者可包含搜索控制指示符(SRCH)226(0) 到226(Y)及收回控制指示符(EVCT)228(0)到228(Y)中的一者或两者。在一些方面中,搜索控制指示符226(0)到226(Y)及/或收回控制指示符228(0)到228(Y)可包括位指示符、旗标及/或如所属领域中已知的其它状态指示符。
分区转换电路212可经配置以基于一或多个分区210(0)到210(N)的对应分区选择条目224(0)到224(Y)而将分区210(0)到210(N)中的一或多者标识为高速缓存操作的目标。举例来说,在对分区210(0)及210(1)执行高速缓存器搜索操作之前,分区转换电路212 可首先基于对应于分区210(0)及210(1)的一分区选择条目224(0)的搜索控制指示符 226(0)而确定分区210(0)及210(1)是否有资格用于搜索。类似地,分区转换电路212可基于对应于分区210(0)及210(1)的一分区选择条目224(0)的收回控制指示符228(0)而确定分区210(0)及210(1)是否有资格用于收回。
如上所述,可提供分区描述符表206的分区描述符208(0)到208(N)以定义转换高速缓存器202的对应分区210(0)到210(N)。图3A及3B为分别展示两个示范性分区描述符的框图300及302,所述框图说明用于定义例如图2的分区210(0)(未示出)的分区的不同机制。在图3A及3B中,如上文所论述,图2的转换高速缓存器202提供转换高速缓存器条目204(0)到204(X)。图3A及3B还分别提供分区描述符304及306,每一者定义包含图2的转换高速缓存器条目204(0)到204(2)的分区210(0)。因此,分区描述符304 及306可因此在功能性上对应于图2的分区描述符208(0)。
在图3A中,分区描述符304使用开始指针308及结束指针310来定义分区210(0)。如箭头312所示,开始指针308指示分区210(0)开始转换高速缓存器条目204(0)。类似地,如箭头314所示,结束指针310指示分区210(0)的结束转换高速缓存器条目204(2)。
图3B的分区描述符306说明替代性分区定义机制。在图3B中,分区描述符306 提供开始指针316及计数指示符318。如箭头320所示,开始指针316指示分区210(0) 的开始转换高速缓存器条目204(0)。如箭头322所指示,计数指示符318提供值(“3”),其指示含于分区210(0)中的转换高速缓存器条目204(0)到204(2)的计数。
图4提供图式400,以说明存储器存取请求及图2的MMU 200的用于确定TCPID 的分区转换电路212的示范性方面。在图4中,分区转换电路212从请求器404接收存储器存取请求402。在一些方面中,请求器404可包括图1的上游装置108、110、112 中的一者。一些方面可提供:MMU 200为第二阶段MMU,且请求器404为第一阶段 MMU。如图4中所见,存储器存取请求可包含指示请求器404的源类型的源指示符406。作为非限制性实例,源指示符406可为指示请求器404是否为图1的上游装置108、110、 112中的一者,或请求器404是否为第一阶段MMU的旗标。分区转换电路212可接着基于源指示符406而导出TCPID。作为非限制性实例,这可允许分区转换电路212分配转换高速缓存器202的一部分供第一阶段MMU单独使用。
存储器存取请求402还可包含由请求器404提供的任选请求器供应的TCPID 408。当接收请求器供应的TCPID 408作为存储器存取请求402的部分时,分区转换电路212 可检索请求器供应的TCPID 408,且将其用作TCPID 410,用于将图2的分区210(0)到 210(N)中的一或多者标识为高速缓存操作的目标,如箭头412所指示。一些方面可提供:除将请求器供应的TCPID 408用作TCPID 410以外或替代将请求器供应的TCPID 408 用作TCPID 410,分区转换电路212可基于存储器存取请求402的属性414而导出TCPID 410,如箭头416所示。作为非限制性实例,可基于一或多个属性414而确定TCPID 410,所述一或多个属性例如唯一地标识请求器404的主控标识符(ID)属性、读取/写入属性、安全/非安全属性、存储器类型属性、高速缓存性属性及/或存储器存取请求402的可共享属性。在一些方面中,分区转换电路212可任选地使用分区再映射表214再映射TCPID 410,如箭头418所示。
为说明图2的用于提供分区的转换高速缓存器的MMU 200的示范性操作,提供图5。出于简洁起见,在描述图5时参看图2及4的元件。在图5中,操作以MMU 200(具体来说,分区转换电路212)从请求器404接收存储器存取请求402开始(框500)。在一些方面中,请求器404可包括第一阶段MMU,或可包括例如图1的上游装置108、110、 112的上游装置。
分区转换电路212确定存储器存取请求402的TCPID 410(框502)。分区转换电路212接下来基于TCPID 410而标识MMU 200的转换高速缓存器202的多个分区210(0) 到210(N)的一或多个分区,例如分区210(0)到210(1)(框504)。分区转换电路212接着对一或多个分区210(0)到210(1)的一或多个转换高速缓存器条目204(0)到204(5)的一转换高速缓存器条目(例如转换高速缓存器条目204(0))执行高速缓存操作(框506)。作为非限制性实例,一些方面可提供:执行高速缓存操作可包括搜索转换高速缓存器条目204(0) 到204(5)、写入到转换高速缓存器条目204(0)到204(5)中的一或多者及/或收回转换高速缓存器条目204(0)到204(5)中的一或多者的内容。应理解,转换高速缓存器条目204(0) 到204(5)的选择在此实例中是非限制性实例,且可基于通过TCPID 410标识的分区 210(0)到210(N)来选择其它或额外转换高速缓存器条目204(0)到204(X)。
图6A到6C为说明用于提供分区的转换高速缓存器的其它示范性操作的流程图。具体来说,图6A包含分区转换电路212的用于TCPID再映射的操作,而图6B提供分区转换电路212的用于使用示范性分区定义机制的操作。图6C说明分区转换电路212的用于在执行高速缓存操作时使用分区选择条目的操作。出于简洁起见,在描述图6A到 6C时参考图2到4中的元件。
在图6A中,操作以MMU 200(具体来说,分区转换电路212)从请求器404接收存储器存取请求402开始(框600)。分区转换电路212接下来确定存储器存取请求402的 TCPID 410(框602)。一些方面可提供:用于确定TCPID 410的框602的操作可包括基于存储器存取请求402的属性414而导出TCPID 410(框604)。在一些方面中,用于确定TCPID 410的框602的操作可包含检索由存储器存取请求402提供的请求器供应的 TCPID 408(框606)。根据一些方面,用于确定TCPID 410的框602的操作可包括:标识定义输入TCPID 218(0)到输出TCPID220(0)的再映射的多个再映射条目216(0)到 216(M)中的一再映射条目(例如再映射条目216(0)),其中再映射条目216(0)的输入TCPID 218(0)对应于存储器存取请求402的TCPID410(框608)。在一些方面中,用于确定TCPID 410的框602的操作可包括基于存储器存取请求402的指示请求器404的源类型的源指示符406而导出TCPID 410(框609)。
分区转换电路212接下来基于TCPID 410而标识MMU 200的转换高速缓存器202 的多个分区210(0)到210(N)的一或多个分区,例如分区210(0)到210(1)(框610)。在一些方面中,用于标识分区210(0)到210(1)的框610的操作可基于再映射条目216(0)的输出TCPID220(0)(框611)。一些方面还可提供:用于标识一或多个分区210(0)到210(1) 的框610的操作可基于分区选择条目,例如多个分区选择条目224(0)到224(Y)的一分区选择条目224(0)(框612)。作为非限制性实例,分区选择条目224(0)到224(Y)中的每一者可定义搜索控制指示符226(0)及收回控制指示符228(0)中的至少一者,且可对应于多个分区210(0)到210(N)的一或多个分区210(0)到210(1)。在一些方面中,作为非限制性实例,可基于例如输出TCPID 220(0)的输出TCPID而选择分区选择条目224(0)。处理可接着在图6B的框613处继续。
现参看图6B,根据一些方面,分区转换电路212可进一步基于对应多个分区描述符208(0)到208(N)而标识一或多个分区210(0)到210(1)(框613)。根据一些方面,多个分区描述符208(0)到208(N)中的每一者可包括:开始指针,例如开始指针308,其指向由分区描述符208(0)定义的对应分区210(0)的开始转换高速缓存器条目204(0);以及结束指针,例如结束指针310,其指向对应分区210(0)的结束转换高速缓存器条目204(X) (框614)。在其它方面中,分区描述符208(0)到208(N)中的每一者可包括:开始指针,例如开始指针316,其指向由分区描述符208(0)定义的对应分区210(0)的开始转换高速缓存器条目204(0);以及计数指示符,例如计数指示符318,其指示对应分区210(0)的一或多个转换高速缓存器条目204(0)到204(X)的计数(框616)。处理接着在图6C的框 620处继续。
现转而参看图6C,分区转换电路212接下来对一或多个分区210(0)到210(1)的一或多个转换高速缓存器条目204(0)到204(2)的转换高速缓存器条目204(0)执行高速缓存操作(框620)。在一些方面中,用于执行高速缓存操作的框620的操作可基于TCPID 410 的指示请求器404的源类型的源指示符406(框622)。一些方面可提供:用于执行高速缓存操作的框620的操作可基于一或多个分区210(0)到210(1)的一分区选择条目224(0) (框624)。用于基于分区选择条目224(0)而执行高速缓存操作的框624的操作可包含:在一些方面中,基于一或多个分区210(0)到210(1)的搜索控制指示符226(0)而确定一或多个分区210(0)到210(1)的一或多个转换高速缓存器条目204(0)到204(2)有资格用于搜索 (框626)。根据一些方面的用于基于分区选择条目224(0)而执行高速缓存操作的框624 的操作可包含:基于一或多个分区210(0)到210(1)的收回控制指示符228(0)而确定一或多个分区210(0)到210(1)的一或多个转换高速缓存器条目204(0)到204(2)有资格用于收回(框628)。
根据本文中所揭示的方面,提供MMU分区的转换高速缓存器以及相关设备、方法及计算机可读媒体可提供于或集成到任何基于处理器的装置中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、手提计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器及便携式数字视频播放器。
就此来说,图7说明可使用图2中所说明的MMU 200的基于处理器的系统700的实例。在此实例中,基于处理器的系统700包含一或多个中央处理单元(CPU)702,每一 CPU包含一或多个处理器704。CPU 702可具有耦合到处理器704的高速缓存器存储器 706,以供快速存取临时存储的数据。CPU 702进一步包含用于针对CPU存储器存取请求提供地址转换服务的CPU MMU 707。CPU 702耦合到系统总线708,且可相互耦合包含于基于处理器的系统700中的主控装置及从属装置。如所熟知,CPU 702通过在系统总线708上交换地址、控制及数据信息来与这些其它装置通信。举例来说,CPU 702可将总线事务请求传达到存储器系统710,所述存储器系统提供存储器单元712(0)到 712(N)。在图7的实例中,SMMU 713及714还耦合到系统总线708。应理解,CPU MMU 707及SMMU 713及714中的一或多者可包括图2的MMU200。应进一步理解,基于处理器的系统700可包含多个SMMU 713及714。
其它主控装置及从属装置可通过SMMU 713及714连接到系统总线708。如图7中所说明,作为实例,这些装置可包含存储器控制器715、一或多个输入装置716、一或多个输出装置718、一或多个网络接口装置720及一或多个显示器控制器722。输入装置716可包含任何类型的输入装置,包含(但不限于)输入键、开关、语言处理器等。输出装置718可包含任何类型的输出装置,包含(但不限于)音频、视频、其它视觉指示器等。网络接口装置720可为经配置以允许到网络724及从网络724的数据交换的任何装置。网络724可为任何类型的网络,包含(但不限于)有线或无线网络、私人或公用网络、局域网(LAN)、广域网(WLAN)及因特网。网络接口装置720可经配置以支持任何类型的所要通信协议。
CPU 702还可经配置以在系统总线708上接入显示器控制器722,以控制被发送到一或多个显示器726的信息。显示器控制器722通过一或多个视频处理器728将信息发送到显示器726以供显示,视频处理器将待显示的信息处理成适于显示器726的格式。显示器726可包含任何类型的显示器,包含(但不限于)阴极射线管(CRT)、液晶显示器 (LCD)、等离子体显示器等。
所属领域的技术人员将进一步了解,结合本文所揭示的方面所描述的各种说明性逻辑块、模块、电路及算法可实施为电子硬件、存储于存储器中或另一计算机可读媒体中且由处理器或其它处理装置执行的指令或这两者的组合。作为实例,本文中所描述的主控装置及从属装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文中所揭示的存储器可为任何类型及大小的存储器,且可经配置以存储所要的任何类型的信息。为清楚地说明此可互换性,上文已大体上关于功能性描述了各种说明性组件、块、模块、电路及步骤。如何实施此功能性视特定应用、设计选择及/或强加于整个系统的设计约束而定。对于每一特定应用来说,所属领域的技术人员可以变化的方式实施所描述功能性,但不应将这些实施决策解释为导致背离本发明的范围。
结合本文中所揭示的方面而描述的各种说明性逻辑块、模块及电路可通过以下各者来实施或执行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或电晶体逻辑、离散硬件组件,或其经设计以执行本文中所描述的功能的任何组合。处理器可为微处理器,但在替代方案中,处理器可为任何习知的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此配置。
本文中所揭示的方面可体现于硬件及存储于硬件中的指令中,且可驻留于(例如)随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可抹除可编程ROM(EEPROM)、寄存器、硬盘、可拆除磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息且将信息写入到存储媒体。在替代方案中,存储媒体可集成到处理器。处理器及存储媒体可驻留于ASIC中。ASIC可驻留于远程站中。在替代方案中,处理器及存储媒体可作为离散组件而驻留于远程站、基站或服务器中。
还应注意,描述在本文中的任何示范性方面中的任一者中所描述的操作步骤以提供实例及论述。可以除所说明序列以外的众多不同序列来执行所描述操作。此外,描述于单个操作步骤中的操作可实际上以多个不同步骤进行。另外,可组合示范性方面中所论述的一或多个操作步骤。应理解,如所属领域的技术人员将容易显而易见的,流程图图式中所说明的操作步骤可经受众多不同修改。所属领域的技术人员还将理解,可使用各种不同技术及技法中的任一者来表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示贯穿以上描述可能提及的数据、指令、命令、信息、信号、位、符号及码片。
提供本发明的先前描述以使得任何所属领域的技术人员能够进行或使用本发明。对本发明的各种修改对于所属领域的技术人员来说将容易显而易见,且在不背离本发明的精神或范围的情况下,本文中所定义的一般原理可适用于其它变体。因此,本发明不意图限于本文中所描述的实例及设计,而应符合与本文中所揭示的原理及新颖特征相一致的最广泛范围。

Claims (33)

1.一种包括用于提供分区的转换高速缓存器的存储器管理单元MMU的设备,其包括:
转换高速缓存器,其经配置以提供各自定义地址转换映射的多个转换高速缓存器条目;
分区描述符表,其经配置以提供定义所述转换高速缓存器的对应多个分区的多个分区描述符,所述多个分区的每一分区包括所述多个转换高速缓存器条目的一或多个转换高速缓存器条目;以及
分区转换电路,其经配置以:
从请求器接收存储器存取请求;
确定所述存储器存取请求的转换高速缓存器分区标识符TCPID;
基于所述TCPID而标识所述多个分区的一或多个分区;以及
对所述一或多个分区的所述一或多个转换高速缓存器条目的一转换高速缓存器条目执行高速缓存操作。
2.根据权利要求1所述的设备,其中所述分区描述符表经配置以提供各自包括以下者的所述多个分区描述符:
开始指针,其指向通过所述分区描述符定义的对应分区的开始转换高速缓存器条目;以及
结束指针,其指向所述对应分区的结束转换高速缓存器条目。
3.根据权利要求1所述的设备,其中所述分区描述符表经配置以提供各自包括以下者的所述多个分区描述符:
开始指针,其指向通过所述分区描述符定义的对应分区的开始转换高速缓存器条目;以及
计数指示符,其指示所述对应分区的所述一或多个转换高速缓存器条目的计数。
4.根据权利要求1所述的设备,其中所述分区转换电路经配置以通过基于所述存储器存取请求的属性而导出所述TCPID来确定所述TCPID。
5.根据权利要求1所述的设备,其中所述分区转换电路经配置以通过检索由所述存储器存取请求提供的请求器供应的TCPID来确定所述存储器存取请求的所述TCPID。
6.根据权利要求1所述的设备,其进一步包括分区再映射表,所述分区再映射表经配置以提供各自定义输入TCPID到输出TCPID的再映射的多个再映射条目;
其中所述分区转换电路经配置以:
通过标识所述多个再映射条目的一再映射条目来确定所述输出TCPID,其中所述再映射条目的所述输入TCPID对应于所述存储器存取请求的所述TCPID;以及
基于所述再映射条目的所述输出TCPID而标识所述多个分区的所述一或多个分区。
7.根据权利要求1所述的设备,其中:
所述存储器存取请求包括指示所述请求器的源类型的源指示符;且
所述分区转换电路经配置以通过基于所述源指示符而导出所述TCPID来确定所述TCPID。
8.根据权利要求1所述的设备,其进一步包括分区选择表,所述分区选择表包括多个分区选择条目,每一分区选择条目定义搜索控制指示符及收回控制指示符中的至少一者,且每一分区选择条目对应于所述多个分区的一或多个分区;且
其中所述分区转换电路经配置以基于所述多个分区选择条目的一分区选择条目而标识所述多个分区的所述一或多个分区。
9.根据权利要求8所述的设备,其中所述分区转换电路经配置以通过如下操作来执行所述高速缓存操作:基于所述一或多个分区的所述分区选择条目的所述搜索控制指示符,确定所述一或多个分区的所述一或多个转换高速缓存器条目有资格用于搜索。
10.根据权利要求8所述的设备,其中所述分区转换电路经配置以通过如下操作来执行所述高速缓存操作:基于所述一或多个分区的所述分区选择条目的所述收回控制指示符,确定所述一或多个分区的所述一或多个转换高速缓存器条目有资格用于收回。
11.根据权利要求1所述的设备,所述设备经集成到集成电路IC中。
12.根据权利要求1所述的设备,其集成到选自由以下各者组成的群组的装置中:机顶盒、导航装置、通信装置、计算机、个人数字助理PDA、监视器、电视、调谐器、音乐播放器和视频播放器。
13.一种存储器管理单元MMU,其包括:
用于提供各自定义地址转换映射的多个转换高速缓存器条目的装置;
用于提供定义所述MMU的转换高速缓存器的对应多个分区的多个分区描述符的装置,所述多个分区的每一分区包括所述多个转换高速缓存器条目的一或多个转换高速缓存器条目;
用于从请求器接收存储器存取请求的装置;
用于确定所述存储器存取请求的转换高速缓存器分区标识符TCPID的装置;
用于基于所述TCPID而标识所述多个分区的一或多个分区的装置;以及
用于对所述一或多个分区的所述一或多个转换高速缓存器条目的一转换高速缓存器条目执行高速缓存操作的装置。
14.一种用于提供分区的转换高速缓存器的方法,其包括:
通过存储器管理单元MMU从请求器接收存储器存取请求;
确定所述存储器存取请求的转换高速缓存器分区标识符TCPID;
基于所述TCPID而标识所述MMU的转换高速缓存器的多个分区的一或多个分区;以及
对所述一或多个分区的一或多个转换高速缓存器条目的转换高速缓存器条目执行高速缓存操作。
15.根据权利要求14所述的方法,其中标识所述多个分区的所述一或多个分区是进一步基于各自包括以下者的对应多个分区描述符:
开始指针,其指向通过所述分区描述符定义的对应分区的开始转换高速缓存器条目;以及
结束指针,其指向所述对应分区的结束转换高速缓存器条目。
16.根据权利要求14所述的方法,其中标识所述多个分区的所述一或多个分区是进一步基于各自包括以下者的对应多个分区描述符:
开始指针,其指向通过所述分区描述符定义的对应分区的开始转换高速缓存器条目;以及
计数指示符,其指示所述对应分区的所述一或多个转换高速缓存器条目的计数。
17.根据权利要求14所述的方法,其中确定所述TCPID包括基于所述存储器存取请求的属性而导出所述TCPID。
18.根据权利要求14所述的方法,其中确定所述TCPID包括检索由所述存储器存取请求提供的请求器供应的TCPID。
19.根据权利要求14所述的方法,其包括:
通过标识各自定义输入TCPID到输出TCPID的再映射的多个再映射条目中的一再映射条目来确定所述输出TCPID,其中所述再映射条目的所述输入TCPID对应于所述存储器存取请求的所述TCPID;以及
基于所述再映射条目的所述输出TCPID而标识所述多个分区的所述一或多个分区。
20.根据权利要求14所述的方法,其中:
所述存储器存取请求包括指示所述请求器的源类型的源指示符;且
确定所述TCPID包括基于所述源指示符而导出所述TCPID。
21.根据权利要求14所述的方法,其进一步包括基于多个分区选择条目的一分区选择条目而标识所述多个分区的所述一或多个分区,每一分区选择条目定义搜索控制指示符及收回控制指示符中的至少一者且对应于所述多个分区的一或多个分区。
22.根据权利要求21所述的方法,其中基于所述一或多个分区的所述分区选择条目而执行所述高速缓存操作包括基于所述一或多个分区的所述分区选择条目的所述搜索控制指示符,确定所述一或多个分区的所述一或多个转换高速缓存器条目有资格用于搜索。
23.根据权利要求21所述的方法,其中基于所述一或多个分区的所述分区选择条目而执行所述高速缓存操作包括基于所述一或多个分区的所述分区选择条目的所述收回控制指示符,确定所述一或多个分区的所述一或多个转换高速缓存器条目有资格用于收回。
24.一种非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时使所述处理器进行以下操作:
从请求器接收存储器存取请求;
确定所述存储器存取请求的转换高速缓存器分区标识符TCPID;
基于所述TCPID而标识存储器管理单元MMU的转换高速缓存器的多个分区的一或多个分区;以及
对所述一或多个分区的一或多个转换高速缓存器条目的转换高速缓存器条目执行高速缓存操作。
25.根据权利要求24所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步使所述处理器基于各自包括以下各者的对应多个分区描述符而标识所述多个分区的所述一或多个分区:
开始指针,其指向通过所述分区描述符定义的对应分区的开始转换高速缓存器条目;以及
结束指针,其指向所述对应分区的结束转换高速缓存器条目。
26.根据权利要求24所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步使所述处理器基于各自包括以下各者的对应多个分区描述符而标识所述多个分区的所述一或多个分区:
开始指针,其指向通过所述分区描述符定义的对应分区的开始转换高速缓存器条目;以及
计数指示符,其指示所述对应分区的所述一或多个转换高速缓存器条目的计数。
27.根据权利要求24所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步使所述处理器通过基于所述存储器存取请求的属性而导出所述TCPID来确定所述TCPID。
28.根据权利要求24所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步使所述处理器通过检索由所述存储器存取请求提供的请求器供应的TCPID来确定所述存储器存取请求的所述TCPID。
29.根据权利要求24所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步使所述处理器进行以下操作:
通过标识各自定义输入TCPID到输出TCPID的再映射的多个再映射条目中的一再映射条目来确定所述输出TCPID,其中所述再映射条目的所述输入TCPID对应于所述存储器存取请求的所述TCPID;以及
基于所述再映射条目的所述输出TCPID而标识所述多个分区的所述一或多个分区。
30.根据权利要求24所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步使所述处理器通过基于所述存储器存取请求的指示所述请求器的源类型的源指示符而导出所述TCPID来确定所述TCPID。
31.根据权利要求24所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步使所述处理器基于多个分区选择条目的一分区选择条目而标识所述多个分区的所述一或多个分区,每一分区选择条目定义搜索控制指示符及收回控制指示符中的至少一者且对应于所述多个分区的一或多个分区。
32.根据权利要求31所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时,进一步使所述处理器通过如下操作来基于所述一或多个分区的所述分区选择条目而执行所述高速缓存操作:基于所述一或多个分区的所述分区选择条目的所述搜索控制指示符,确定所述一或多个分区的所述一或多个转换高速缓存器条目有资格用于搜索。
33.根据权利要求31所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步使所述处理器通过如下操作来基于所述一或多个分区的所述分区选择条目而执行所述高速缓存操作:基于所述一或多个分区的所述分区选择条目的所述收回控制指示符,确定所述一或多个分区的所述一或多个转换高速缓存器条目有资格用于收回。
CN201680029040.6A 2015-05-29 2016-04-29 一种用于提供分区的转换高速缓存器的方法及其设备 Active CN107667355B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/725,882 US9824015B2 (en) 2015-05-29 2015-05-29 Providing memory management unit (MMU) partitioned translation caches, and related apparatuses, methods, and computer-readable media
US14/725,882 2015-05-29
PCT/US2016/030040 WO2016195869A1 (en) 2015-05-29 2016-04-29 Providing memory management unit (mmu) partitioned translation caches, and related apparatuses, methods, and computer-readable media

Publications (2)

Publication Number Publication Date
CN107667355A CN107667355A (zh) 2018-02-06
CN107667355B true CN107667355B (zh) 2021-02-02

Family

ID=56015107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680029040.6A Active CN107667355B (zh) 2015-05-29 2016-04-29 一种用于提供分区的转换高速缓存器的方法及其设备

Country Status (8)

Country Link
US (1) US9824015B2 (zh)
EP (1) EP3304321B1 (zh)
JP (1) JP6391855B2 (zh)
KR (1) KR101895852B1 (zh)
CN (1) CN107667355B (zh)
AU (1) AU2016270028A1 (zh)
TW (1) TWI627533B (zh)
WO (1) WO2016195869A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018057039A1 (en) * 2016-09-26 2018-03-29 Hewlett-Packard Development Company, L. Update memory management information to boot an electronic device from a reduced power mode
US10678690B2 (en) * 2017-08-29 2020-06-09 Qualcomm Incorporated Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems
EP3899719A4 (en) * 2018-12-21 2022-07-06 INTEL Corporation VIRTUALIZATION OF PROCESS ADDRESS SPACE IDENTIFIERS USING HARDWARE PALL INDICATORS
US11513973B2 (en) 2019-12-20 2022-11-29 Advanced Micro Devices, Inc. Arbitration scheme for coherent and non-coherent memory requests
CN111338989B (zh) * 2020-02-12 2021-01-12 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统
US11847074B2 (en) 2020-11-02 2023-12-19 Honeywell International Inc. Input/output device operational modes for a system with memory pools

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493800B1 (en) * 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
CN101203838A (zh) * 2005-06-21 2008-06-18 英特尔公司 直接存储器存取转换的地址窗口支持
CN103116556A (zh) * 2013-03-11 2013-05-22 无锡江南计算技术研究所 内存静态划分虚拟化方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH087719B2 (ja) * 1989-02-10 1996-01-29 日本電気株式会社 情報処理システム
JPH04205636A (ja) * 1990-11-30 1992-07-27 Matsushita Electric Ind Co Ltd 高速アドレス変換装置
US5430857A (en) 1993-01-04 1995-07-04 Intel Corporation Method and apparatus for translating logical addresses into physical addresses using odd/even translation tables
US5652872A (en) * 1994-03-08 1997-07-29 Exponential Technology, Inc. Translator having segment bounds encoding for storage in a TLB
US6230248B1 (en) * 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
US7346757B2 (en) * 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US6986017B2 (en) 2003-04-24 2006-01-10 International Business Machines Corporation Buffer pre-registration
US8146087B2 (en) 2008-01-10 2012-03-27 International Business Machines Corporation System and method for enabling micro-partitioning in a multi-threaded processor
WO2010095182A1 (ja) * 2009-02-17 2010-08-26 パナソニック株式会社 マルチスレッドプロセッサ及びデジタルテレビシステム
US8301865B2 (en) 2009-06-29 2012-10-30 Oracle America, Inc. System and method to manage address translation requests
US20110145542A1 (en) * 2009-12-15 2011-06-16 Qualcomm Incorporated Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups
US20120096226A1 (en) * 2010-10-18 2012-04-19 Thompson Stephen P Two level replacement scheme optimizes for performance, power, and area
WO2012060148A1 (ja) 2010-11-02 2012-05-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・アクセスを制御する装置およびコンピュータ
US9405700B2 (en) 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US8683175B2 (en) 2011-03-15 2014-03-25 International Business Machines Corporation Seamless interface for multi-threaded core accelerators
US9086989B2 (en) 2011-07-01 2015-07-21 Synopsys, Inc. Extending processor MMU for shared address spaces
US9317443B2 (en) * 2014-04-17 2016-04-19 International Business Machines Corporation Managing translations across multiple contexts using a TLB with entries directed to multiple privilege levels and to multiple types of address spaces

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493800B1 (en) * 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
CN101203838A (zh) * 2005-06-21 2008-06-18 英特尔公司 直接存储器存取转换的地址窗口支持
CN103116556A (zh) * 2013-03-11 2013-05-22 无锡江南计算技术研究所 内存静态划分虚拟化方法

Also Published As

Publication number Publication date
EP3304321A1 (en) 2018-04-11
CN107667355A (zh) 2018-02-06
US20160350222A1 (en) 2016-12-01
AU2016270028A1 (en) 2017-11-09
JP2018519579A (ja) 2018-07-19
US9824015B2 (en) 2017-11-21
JP6391855B2 (ja) 2018-09-19
TWI627533B (zh) 2018-06-21
EP3304321C0 (en) 2023-09-20
WO2016195869A1 (en) 2016-12-08
EP3304321B1 (en) 2023-09-20
KR101895852B1 (ko) 2018-09-07
TW201710907A (zh) 2017-03-16
BR112017025619A2 (pt) 2018-08-07
KR20180013930A (ko) 2018-02-07

Similar Documents

Publication Publication Date Title
KR102545726B1 (ko) 프로세서-기반 시스템들에서 공간 QoS(Quality of Service) 태깅을 사용한 이종 메모리 시스템들의 유연한 관리의 제공
CN107667355B (zh) 一种用于提供分区的转换高速缓存器的方法及其设备
US9823854B2 (en) Priority-based access of compressed memory lines in memory in a processor-based system
US10372635B2 (en) Dynamically determining memory attributes in processor-based systems
US9984003B2 (en) Mapping processing method for a cache address in a processor to provide a color bit in a huge page technology
JP2017522645A (ja) フラッシュメモリベースのストレージデバイスの入力/出力仮想化(iov)ホストコントローラ(hc)(iov−hc)
US11822487B2 (en) Flexible storage and optimized search for multiple page sizes in a translation lookaside buffer
US10228991B2 (en) Providing hardware-based translation lookaside buffer (TLB) conflict resolution in processor-based systems
US10754795B2 (en) MMU assisted address sanitizer
WO2018187313A1 (en) Aggregating cache maintenance instructions in processor-based devices
US11755498B2 (en) Emulating scratchpad functionality using caches in processor-based devices
BR112017025619B1 (pt) Aparelho que compreende uma unidade de gerenciamento de memória e método para fornecer caches de tradução particionados
CN108027776B (zh) 在多个主要装置间使用有条件干预维持高速缓存同调性

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