CN101661437A - 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 - Google Patents
旁路转换缓冲器以及在其中进行地址匹配的方法和装置 Download PDFInfo
- Publication number
- CN101661437A CN101661437A CN200810214600A CN200810214600A CN101661437A CN 101661437 A CN101661437 A CN 101661437A CN 200810214600 A CN200810214600 A CN 200810214600A CN 200810214600 A CN200810214600 A CN 200810214600A CN 101661437 A CN101661437 A CN 101661437A
- Authority
- CN
- China
- Prior art keywords
- page
- subclauses
- clauses
- address
- subpage frame
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种旁路转换缓冲器TLB以及在其中进行地址匹配的方法和装置。其中TLB包括多个条目,每个条目包含一个逻辑地址与一个物理地址,每一个物理地址对应于一个存储页面,其中,所述多个条目中至少一个条目还包含第一数目的附加位,所述附加位中的每一位代表该条目中的物理地址所对应的存储页面中的一个子页面被其他逻辑地址占用的状态。还提供了在上述TLB中进行有效地址匹配的方法,所述有效地址包含有效地址页号和页内偏移,该方法包括:将有效地址页号与逻辑地址相比较,若相同,则:根据页内偏移中最高的第二数目的比特位,确定该有效地址指向的目标子页面;根据附加位的状态,判断该目标子页面是否被其他逻辑地址占用。
Description
技术领域
本发明涉及计算机存储管理技术,更具体地,涉及旁路转换缓冲器TLB以及在TLB中进行地址匹配的方法和装置。
背景技术
在计算机进行数据存取和处理的时候,需要将各个应用程序所使用的逻辑地址转换为存储器的物理地址,以便访问该存储器及其I/O设备。其中,逻辑地址又称虚拟地址,物理地址又称实际地址。在上述地址转换中,通常是将存储器分为多个固定长度的存储块,又称页面(page),以页面为单位进行地址转换。以页面为单位的逻辑地址和物理地址的映射关系存储在页表中。也就是说,页表中包含多个条目,或称页表项,每个页表项对应于一个页面的逻辑地址和物理地址的映射关系。
由于页表存储在内存中,而处理器与内存之间通常需要通过总线进行连接,因此如果处理器每次处理数据都要通过页表来查找逻辑地址和物理地址的映射关系,系统运行速度和性能会非常不理想。因此,很多处理器使用旁路转换缓冲器TLB(translation look-aside buffer)来实现地址的映射和转换。具体地,TLB是处理器中的一部分高速缓存,用于存储最近常用的一些页表项。这样,在大部分情况下,处理器只需要利用TLB进行地址匹配,而不必每次都去内存中查找页表项,大大提高了系统的运行速度和性能。
由于TLB是处理器高速缓存的一部分,因此其资源非常有限,不可能存储大量的页表项。另一方面,根据TLB的作用和特点,如果存储的页表项太多,就不适合处理器快速查找需要的页表项;然而如果存储的页表项太少,那么有可能使得处理器查找特定地址时命中率不够高。在现有的处理器中,TLB中条目的数目典型地为几十或几百条。例如,在Godson2处理器中TLB条目数目小于64;在Intel X86处理器中,TLB条目为128。因此,在TLB设计中,有效利用有限的页表项是十分重要的问题。
另一方面,如上所述,页表是以页面为单位存储地址映射关系的。对于固定大小的存储器,如果页面大小非常小,则页面数目将非常大,页表需要大量的条目存储每个页面的地址映射关系。相应地,需要在TLB中存储的条目数量也会非常大,占用大量TLB资源,十分不利。如果页面大小非常大,那么很容易出现大量的地址碎片无法利用的情况,造成页面空间的浪费。为了解决上述矛盾,现在多种处理器支持多页面大小的设置。例如,Intel X86处理器支持4k和4M的页面大小;X86_64支持4k,1M,2M,4M的页面大小;Itanium2支持4k,16k,64k,256k,1M,4M,16M,64M,256M和1G的页面大小。为此,TLB中的页表项也必须针对不同页面大小进行地址映射。
当使用不同大小的页面组合时,现有的TLB结构带来许多问题。下面以4k和64k的页面组合为例说明该问题。图1示意性示出多页面大小情况下的地址分配。如图所示,假设内存中存在连续的128k的空间,其中前64k是一个完整的未被占用的64k页面,接下来的4k,也就是64k-68k已经被一个4k的逻辑页面地址占用。如果这时某些程序请求60k的空间,那么只能有两种解决方案。一种是为其分配15个4k的页面,例如将68k-128k之间的空间划分为15个4k页面,分配给该程序。然而,这种情况下就需要15个TLB条目来记录每个页面的地址映射,占用大量TLB资源。另一种方案是为其重新分配一个新的64k页面,例如0k-64k页面。然而这种情况下,就增加64k页面中的最后4k页面成为存储碎片的可能。
因此,需要一种TLB方案,能够合理利用存储空间,同时高效利用页表条目,便于处理器快速查找和匹配所需地址。
发明内容
考虑到上述问题,本发明提供一种旁路转换缓冲器以及在其中进行地址匹配的方法和装置。
根据本发明第一方面,提供一种旁路转换缓冲器TLB,包括多个条目,每个条目包含一个逻辑地址与一个物理地址,每一个物理地址对应于一个存储页面,其中,所述多个条目中至少一个条目还包含第一数目的附加位,所述附加位中的每一位代表该条目中的物理地址所对应的存储页面中的一个子页面被其他逻辑地址占用的状态。
根据本发明第二方面,提供一种在旁路转换缓冲器TLB中进行有效地址匹配的方法,其中所述有效地址包含有效地址页号和页内偏移,所述TLB包括多个条目,每个条目包含一个逻辑地址与一个物理地址,每一个物理地址对应于一个存储页面,所述多个条目中至少一个条目还包含第一数目的附加位,所述附加位中的每一位代表该条目中的物理地址所对应的存储页面中的一个子页面被其他逻辑地址占用的状态,所述方法包括:将所述有效地址页号与所述逻辑地址相比较,如果相同,则:根据所述页内偏移中最高的第二数目的比特位,确定该有效地址指向的目标子页面;以及根据所述附加位的状态,判断该目标子页面是否被其他逻辑地址占用。
根据本发明第三方面,提供一种在旁路转换缓冲器TLB中进行有效地址匹配的装置,其中所述有效地址包含有效地址页号和页内偏移,所述TLB包括多个条目,每个条目包含一个逻辑地址与一个物理地址,每一个物理地址对应于一个存储页面,所述多个条目中至少一个条目还包含第一数目的附加位,所述附加位中的每一位代表该条目中的物理地址所对应的存储页面中的一个子页面被其他逻辑地址占用的状态,所述装置包括:有效地址页号匹配单元,用于将所述有效地址页号与所述逻辑地址相比较;目标子页面确定单元,用于根据所述页内偏移中最高的第二数目的比特位,确定该有效地址指向的目标子页面;目标子页面判断单元,用于根据所述附加位的状态,判断该目标子页面是否被其他逻辑地址占用。
利用本发明的TLB以及地址匹配方法和装置,能够更为有效地利用页面存储资源和TLB条目资源,从而提高处理器的性能。
附图说明
图1示意性示出多页面大小情况下的地址分配;
图2示意性示出TLB中条目的结构;
图3示意性示出有效地址的结构;
图4A-4C示出根据一个实施例的附加位的示意图;
图5示出根据一个实施例的有效地址匹配方法的流程图;
图6示出根据一个实施例的页内偏移最高4比特位和16比特位映射表;以及
图7示意性示出有效地址匹配的装置的结构框图。
具体实施方式
下面结合附图说明本发明的具体实施方式。
如前所述,TLB中包含多个条目,每一条目包含逻辑地址和物理地址及其映射关系。图2示意性示出TLB中条目的结构。如图所示,一个TLB条目可分为高位字段和低位字段。高位字段的前52位,即0-51位,以有效页面号EPN(Effective Page Number)的形式存储逻辑地址。一个EPN对应一个虚拟存储页面。TLB低位字段的中间部分以实际页面号RPN(Real Page Number)的形式存储物理地址。一个RPN对应内存中的一个实际存储页面。同一条目中的EPN和RPN相互对应。除了RPN和EPN,TLB条目中还包含一些必要的保护位和保留位。
另一方面,当处理器需要进行数据存取时,就以该数据的有效地址EA(Effective Address)来查找TLB中的条目,看TLB中是否存在与该有效地址EA匹配的条目。现有的处理器多采用64个比特位的格式记录数据的有效地址。图3示意性示出有效地址的结构。这里,仅仅以4k页面和64k页面为例进行说明。如图所示,有效地址包括有效地址页号EPN和页内偏移Offset。其中有效地址页号EPN指示该有效地址所指向的虚拟存储页面,页内偏移指示该有效地址在该虚拟存储页面内的偏移量。对于4k页面,页内偏移的最大偏移量就是4k,也就是212,因此,可以用12个比特位来记录页面偏移。相应地,有效地址EA的前面52个比特位,即0-51位,可以用来记录EPN。对于64k页面,页内最大偏移量为64k,即216,因此,需要用16个比特位来记录页内偏移。相应地,有效地址EA的前面48位用来记录EPN。对于更大的页面,记录页内偏移所需要的比特位会更多,相应地,用于记录EPN的比特位更少。在现有处理器中,4k是最小的页面单元,因此,有效地址中记录EPN的比特位最多为4k情况下的52位。这也是图2示出的TLB条目中采用52个比特位记录EPN的原因,因为这样可以满足记录EPN的最多比特位的要求。
基于上述的TLB结构和有效地址EA的结构,在处理器进行有效地址匹配时,将有效地址EA中的EPN与TLB各个条目中的EPN进行比较,以查找该有效地址EA所指示的地址是否存储在TLB中。如果在TLB中查找到了匹配的EPN,就可以根据该条目中EPN与RPN的映射关系,确定该有效地址对应的实际存储页面,并利用页内偏移确定有效地址在该实际存储页面中进行读写的具体位置。以上就是基本的TLB结构和在该TLB结构中的基本地址匹配过程。
在此基础上,为了更为高效地利用TLB,本发明的实施例对TLB条目的结构进行了改进。下面仍然以4k和64k两种页面大小的情况为例,说明本发明实施例的TLB结构。
在一个实施例中,TLB包含多个条目,其中一部分条目用于4k页面,另一部分条目用于64k页面。对于64k页面的条目,可以为其添加若干附加位。在一个示例中,为64k页面的条目添加了16个附加比特位。图4A-4C示出根据一个实施例的附加位的示意图。如图4A所示,所添加的16位附加位中的每一位对应于该条目所指示的64k页面中的一个4k子页面。具体地,最后一个比特位对应于64k页面中第一个4k子页面,倒数第二个比特位对应于64k页面中第二个4k子页面,...,第一个比特位对应于最后一个4k子页面。每一个比特位的状态,即0或者1,指示对应的子页面被其他逻辑地址占用的状态。例如,可以规定,某一个比特位为1时,代表该比特位对应的子页面已经被其他逻辑地址占用;某一个比特位为0时,代表该比特位对应的子页面没有被占用,可以接受存取。在图4A所示的16个比特位中,每一个比特位的状态都为0。在上述规定下,这表明该64k页面中的每个4k子页面都没有被占用。而在图4B所示的16个比特位中,最后一个比特位为1,其他比特位均为0。这表明该64k页面中,第一个4k子页面已经被其他逻辑地址占用,其他4k子页面是可用的。在图4C所示的16个比特位中,倒数第一、第三、第六个比特位为1,其他比特位为0。这表明,第一、第三和第六个4k子页面已经被占用,其他的4k子页面是可用的。
通过以上示出的附加位,可以更为细致地示出较大页面(这里是64k)中子页面的占用状况。这就允许用多个TLB条目对一个实际存储页面进行更细致的划分,进而更为有效地利用其存储空间。例如,对于图1所示的地址分配情况,就可以采用两个TLB条目,对68k-128k之间的空间进行利用。具体地,第一个TLB条目的RPN可以指向64k-68k这一4k页面;第二个TLB条目的RPN可以指向64k-128k这一64k页面,同时用附加位示出该64k页面中第一个4k子页面已经被占用。这样,仅仅增加了一个TLB条目,就使得较大页面中的空间得到了更好利用。并且,由于每个比特位独立地指示一个子页面的状态,因此,允许对较大页面中未被占用的不连续的多个子页面进行利用。例如,利用如图4C所示的附加位指示64k页面中可用的空间。
在另一个实施例中,可以为指示64k页面的条目添加8个比特位。这样,每个比特位指示该64k页面中大小为8k的一个子页面的占用状态。显然,附加比特位位数越多,对页面中子页面的划分越细致。以上都是以64k页面为例说明用于大页面的附加位的。在此基础上,对于其他大小的页面,可以根据页面大小,要划分的子页面大小选择附加位的位数。
由于现有的TLB中每个条目的比特位资源是有限的,因此,添加附加位可以通过扩展每个条目的比特位或者利用现有比特位资源中没有被占用的比特位来实现。在一个实施例中,添加的附加位是通过扩展TLB条目的比特位实现的。在另一个实施例中,添加的附加位利用TLB条目中的保留位来实现。如图2所示,在现有TLB条目中,低位字段的0-7位,11位,18-21位都是未被占用的保留位。可以将这些保留位作为附加位,指示子页面的占用状态。在另一个实施例中,添加的附加位利用TLB条目中未被占用的用于EPN的比特位来实现。如前所述,对于最小的页面单元4k,有效地址中EPN位数为52位,因此,TLB条目中预留了52位用于存储EPN。然而对于更大的页面,EPN的位数要小于52位,这样用于存储EPN的52个比特位的后面几位就没有被占用。例如,对于64k页面,EPN位数为48位,那么就可以利用用于存储EPN的52个比特位中的最后4位来实现附加位。可以理解,根据附加位位数的需要,可以选择性地利用上述几种方式中的一种或多种。例如,在一个实施例中,需要16位附加位。这16位附加位中8位可以利用条目中已有的保留位,4位利用用于EPN的比特位中未被占用的后4位,另外4位通过扩展条目位数来实现。
本领域技术人员可以理解,对于其他的页面大小,可以根据要划分的子页面大小、可提供的比特位资源的多少等因素来为TLB条目增加附加位,以便有效利用较大的存储页面。
在上述具有附加位的TLB条目的基础上,本发明还提供了相应的有效地址匹配方法。图5示出根据一个实施例的有效地址匹配方法的流程图。下面仍然以支持4k和64k页面的TLB为例说明该匹配方法。
在一个实施例中,假定TLB为针对64k页面的条目增加了16位附加位。附加位中每一比特位的状态指示该64k页面中相应的4k子页面的占用状态。对于这样的TLB,假定现在要在其中匹配一个有效地址EA,该有效地址EA如图3所示,包含有效地址页号和页内偏移。如图5所示,该匹配方法包括:步骤502,将有效地址页号与TLB条目中的逻辑地址相比较,判断其是否相同。这一步骤与现有的基本匹配方法相同,都是将有效地址EA中的EPN与TLB某个条目中的逻辑地址EPN相比较,如果不同,就在步骤503比较下一条目,直到找到EPN匹配的条目。然而,在具有附加位的TLB中,存在这样的可能,即两个TLB条目的EPN相同,进而对应的RPN也相同,但是附加位不同的情况。因此,在步骤502判断结果为是,即找到EPN匹配的条目之后,不能立即按照该条目的RPN访问物理地址,还要进行进一步的判断,也就是判断有效地址EA所指向的页内地址是否被其他逻辑地址占用。
因此,如果步骤502判断结果为是,则执行步骤504,其中,根据有效地址EA的页内偏移中最高的一定数目的比特位,确定该有效地址EA指向的目标子页面。在本实施例中,TLB条目具有16位附加位,能够指示64k页面中任意一个4k子页面的占用状态。因此,需要判断有效地址EA所指向的地址落入哪个4k子页面中。实际上,有效地址EA所包含的页内偏移的最高几位就可以示出有效地址EA所指向的具体地址落入的范围。具体地,对于要访问64k页面的有效地址EA来说,页内偏移包含16个比特位。最高比特位示出页内偏移落入64k页面的哪个32k范围之内,例如,若页内偏移最高位为0,表示偏移是在第一个32k之内,若最高位为1,表示偏移是在第二个32k之内。第二位比特位示出页内偏移落入上述32k范围的哪一个16k之内。因此,页内偏移的最高4位就可以示出,有效地址EA所指向的目标4k子页面。具体地,若最高4位是0000,则指示该64k页面中的第一个4k子页面;若最高4位是0001,则指示该64k页面中的第二个4k子页面;...;若最高位是1111,则指示该64k页面中最后一个4k子页面。由此,根据有效地址EA的页内偏移中的最高4位,就确定了该有效地址指向的目标4k子页面。
为了更为清晰地示出页内偏移最高的4个比特位与指示的目标子页面的关系,也便于后续与TLB的附加位比较,可以利用一个4比特位和16比特位的映射表,将上述关系对应起来,如图6所示。图6示出根据一个实施例的页内偏移最高4比特位和16比特位映射表。根据该映射表,将页内偏移的最高4个比特位映射为一个16比特位的表示,该16比特位中的每一位对应64k页面中的一个4k子页面。更具体地,该16比特位中的每一个比特位从低位到高位依次指示64k页面中第一个到第16个4k子页面,与图4A所示的16位附加位的对应方式相同。不同的是,在该16比特位中,与页内偏移所指示的目标子页面对应的比特位用1表示,其他比特位均为0。由此,页内偏移最高4位0000指示第一个4k子页面,因此对应最后一位为1的16比特位,页内偏移最高4位0001指示第二个4k子页面,因此对应倒数第二位为1的16比特位...
在确定有效地址EA指示的目标子页面之后,就可以执行步骤506,其中根据附加位的状态,判断该目标子页面是否被其他逻辑地址占用。如前所述,16位附加位的每一位独立地指示一个4k子页面的占用状态,因此,只需要核查附加位中目标子页面所对应的比特位的状态即可。按照前述的表达方式,如果在附加位中目标子页面对应的比特位为1,则表明该子页面已经被占用,进一步地,该有效地址EA不能匹配该TLB条目,也就是,不能在该条目的RPN指示的实际存储页面中进行存取。如果附加位中目标子页面对应的比特位为0,则表明该子页面没有被占用,进一步地,该有效地址EA可以匹配该TLB条目,也就是,可以在该条目的RPN指示的实际存储页面中进行存取。
为了更为快速地进行目标子页面状态的判断,可以利用上述的从页内偏移最高4比特位映射到的16比特位,将该16比特位与附加位进行比较。由于该16比特位与子页面的对应方式与附加位相同,因此只需要比较该16比特位中状态为1的比特位和对应位置的附加位即可。例如,页内偏移最高4位0000对应最后一位为1的16比特位,在判断目标子页面状态时,就用16比特位中最后一个比特位与附加位的最后一个比特位进行比较即可。在前述的表示方式下,如果两者相同,则表明目标子页面已经被占用;如果两者不同,则表明目标子页面没有被占用。可以理解,附加位和16比特位的表示方式都可以由人为规定,例如,规定附加位中某比特位状态为0时代表对应子页面被占用;或者,规定所述16比特位中指示目标子页面的比特位用0表示,其他比特位都用1表示。在这样的表示方式下,16比特位和附加位的比较结果与目标子页面的占用状态之间的关系要适当地进行调整。
上述实施例是针对为64k页面的TLB条目增加了16位附加位的情况。对于其他数目的附加位,该方法依然适用。例如,在一个实施例中,为TLB条目中针对64k页面的条目增加了8位的附加位,每一附加位指示一个8k子页面的状态。按照图5所示的方法,首先匹配有效地址EA中的EPN与TLB条目中的EPN。找到匹配的条目之后,根据有效地址EA中的页内偏移的前3位来判断目标子页面。这是因为,页内偏移的前3位就可以示出EA指示的地址落入64k页面的哪一个8k子页面中。相应地,也可以将页内偏移的该前3位映射为一个指示目标子页面的8比特位。通过比较该8比特位与8位的附加位,可以判断出8k的目标子页面是否被占用。
可以发现,附加位的位数n与需要判断的页内偏移的最高比特位的最少位数m存在这样的关系:n=2m。这里所说最小位数m是指,也可以采用页内偏移中更多的比特位来确定目标子页面。例如在上述附加位为8位的实施例中,也可以利用页内偏移的前4位来确定目标子页面。这时确定的目标子页面为4k子页面。在判断目标子页面是否被占用时,先判断这4k子页面落入哪一个8k范围之内,然后根据附加位信息判断该8k范围是否被占用。
上述实施例以4k、64k页面大小,8位、16位附加位的情况为例进行了说明。可以理解,对于其他的页面大小,其他位数的附加位的情况,都可以采用上述方法进行有效地址的匹配。
基于同一发明构思,本发明还提供了一种在旁路转换缓冲器TLB中进行有效地址匹配的装置,图7示意性示出该装置的结构框图。如图所示,该装置总体由数字700标识。下面结合图7和具体实施例对该装置进行说明。
在一个实施例中,要进行匹配的有效地址EA包含有效地址页号EPN和页内偏移。该有效地址EA被输入所述装置700,由装置700查阅各个TLB条目,对该有效地址EA与所述TLB条目进行匹配。所述TLB条目中的每个条目包含一个逻辑地址与一个物理地址,每一个物理地址对应于一个存储页面。在一个具体示例中,TLB中的条目一部分用于4k页面,一部分用于64k页面。其中用于64k页面的条目还包含一定数目的附加位,例如16个比特位的附加位。该附加位中的每一位代表该64k存储页面中的一个4k子页面被其他逻辑地址占用的状态。
为进行有效地址匹配,该装置700包括有效地址页号匹配单元710,用于将有效地址EA中的EPN与TLB条目中的逻辑地址相比较。在一个实施例中,该单元710由一个比较电路或比较器来执行。
在单元710通过比较得到与有效地址的EPN相匹配的条目之后,还要利用目标子页面确定单元720和目标子页面判断单元730进行进一步分析。具体地,目标子页面确定单元720用于根据有效地址EA的页内偏移中最高的几位比特位,确定该有效地址EA指向的目标子页面。在TLB中用于64k页面的条目具有16位附加位的情况下,可以根据EA中页内偏移的最高4位来确定目标子页面。在一个具体实施例中,该目标子页面确定单元720还包括一个解码器(未示出),用于根据页内偏移最高4比特位与16比特位的映射表,将所述4比特位映射为16比特位。该16比特位的每一位对应于64k页面中的一个4k子页面,并且其中与页内偏移所指示的目标子页面对应的比特位的状态为1,其他比特位均为0。由此,单元720可以通过该16比特位更为清晰地示出目标子页面在整个64k页面中的位置。
装置700中的目标子页面判断单元730用于根据TLB条目中附加位的状态,判断上述目标子页面是否被其他逻辑地址占用。具体地,由于16位附加位的每一位独立地指示一个4k子页面的占用状态,因此,可以通过核查目标子页面所对应的比特位的状态来判断该目标子页面的占用状态。由于上述解码器映射得到的16比特位能够指示目标子页面位置,因此可以通过比较该16比特位和16位的附加位判断目标子页面状态。具体地,在一个实施例中,目标子页面判断单元730包括一个比较器,用于比较所述16比特位与附加位。更具体地,所述比较器被配置为比较16比特位中指示目标子页面的比特位和附加位中相应位置的比特位。通过这样的比较器,目标子页面判断单元730可以得出所述目标子页面被其他逻辑地址占用的状态,从而输出有效地址EA是否能够匹配的结果。
可以理解,装置700可用于执行图5的有效地址匹配方法。
虽然以上结合具体实施例对本发明的TLB,以及在该TLB中进行有效地址匹配的方法和装置进行了详细描述,但本发明并不限于此。本领域普通技术人员能够在说明书教导之下对本发明进行多种变换、替换和修改而不偏离本发明的精神和范围,例如对具体实施例中的页面大小、附加位数目等进行扩展,使其适用于其他情况。应该理解,所有这样的变化、替换、修改仍然落入本发明的保护范围之内。本发明的保护范围由所附权利要求来限定。
Claims (15)
1.一种旁路转换缓冲器TLB,包括多个条目,每个条目包含一个逻辑地址与一个物理地址,每一个物理地址对应于一个存储页面,其中,所述多个条目中至少一个条目还包含第一数目的附加位,所述附加位中的每一位代表该条目中的物理地址所对应的存储页面中的一个子页面被其他逻辑地址占用的状态。
2.如权利要求1的TLB,其中所述附加位至少部分地利用所述条目中的保留位。
3.如权利要求1的TLB,其中所述第一数目为2的倍数。
4.一种在旁路转换缓冲器TLB中进行有效地址匹配的方法,其中所述有效地址包含有效地址页号和页内偏移,所述TLB包括多个条目,每个条目包含一个逻辑地址与一个物理地址,每一个物理地址对应于一个存储页面,所述多个条目中至少一个条目还包含第一数目的附加位,所述附加位中的每一位代表该条目中的物理地址所对应的存储页面中的一个子页面被其他逻辑地址占用的状态,所述方法包括:
将所述有效地址页号与所述逻辑地址相比较,如果相同,则:
根据所述页内偏移中最高的第二数目的比特位,确定该有效地址指向的目标子页面;
根据所述附加位的状态,判断该目标子页面是否被其他逻辑地址占用。
5.如权利要求4的方法,其中所述确定有效地址指向的子页面的步骤包括:根据第二数目比特位与第一数目比特位的映射表,将所述第二数目比特位映射为第一数目比特位,根据所述第一数目比特位确定有效地址指向的目标子页面。
6.如权利要求5的方法,其中所述判断目标子页面是否被占用的步骤包括:比较所述第一数目比特位与所述第一数目附加位。
7.如权利要求6的方法,其中所述比较第一数目比特位和附加位的步骤包括:比较所述第一数目比特位中指示目标子页面的比特位和所述附加位中相应位置的比特位。
8.如权利要求4-7中任一项的方法,其中所述附加位至少部分地利用所述条目中的保留位。
9.如权利要求4-8中任一项的方法,其中所述第一数目和第二数目满足关系:n=2m,其中n指代第一数目,m指代第二数目。
10.一种在旁路转换缓冲器TLB中进行有效地址匹配的装置,其中所述有效地址包含有效地址页号和页内偏移,所述TLB包括多个条目,每个条目包含一个逻辑地址与一个物理地址,每一个物理地址对应于一个存储页面,所述多个条目中至少一个条目还包含第一数目的附加位,所述附加位中的每一位代表该条目中的物理地址所对应的存储页面中的一个子页面被其他逻辑地址占用的状态,所述装置包括:
有效地址页号匹配单元,用于将所述有效地址页号与所述逻辑地址相比较;
目标子页面确定单元,用于根据所述页内偏移中最高的第二数目的比特位,确定该有效地址指向的目标子页面;
目标子页面判断单元,用于根据所述附加位的状态,判断该目标子页面是否被其他逻辑地址占用。
11.如权利要求10的装置,其中所述子页面确定单元还包括解码器,用于根据第二数目比特位与第一数目比特位的映射表,将所述第二数目比特位映射为第一数目比特位。
12.如权利要求11的装置,其中所述目标子页面判断单元包括比较器,用于比较所述第一数目比特位与所述第一数目附加位。
13.如权利要求12的装置,其中所述比较器被配置为:比较所述第一数目比特位中指示目标子页面的比特位和所述附加位中相应位置的比特位。
14.如权利要求10-13中任一项的装置,其中所述附加位至少部分地利用所述条目中的保留位。
15.如权利要求10-14中任一项的装置,其中所述第一数目和第二数目的最小值满足关系:n=2m,其中n指代第一数目,m指代第二数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810214600A CN101661437A (zh) | 2008-08-28 | 2008-08-28 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810214600A CN101661437A (zh) | 2008-08-28 | 2008-08-28 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101661437A true CN101661437A (zh) | 2010-03-03 |
Family
ID=41789476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810214600A Pending CN101661437A (zh) | 2008-08-28 | 2008-08-28 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101661437A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216833A (zh) * | 2013-05-29 | 2014-12-17 | 华为技术有限公司 | 一种确定物理地址的方法及装置 |
CN104516826A (zh) * | 2013-09-30 | 2015-04-15 | 华为技术有限公司 | 一种虚拟大页面与物理大页面的对应方法及装置 |
CN106560798A (zh) * | 2015-09-30 | 2017-04-12 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
WO2018027839A1 (zh) * | 2016-08-11 | 2018-02-15 | 华为技术有限公司 | 一种页表缓存tlb中表项的访问方法,及处理芯片 |
CN103744963B (zh) * | 2014-01-06 | 2018-05-18 | 北京国双科技有限公司 | 目标页面转化的处理方法和装置 |
CN109840218A (zh) * | 2017-11-24 | 2019-06-04 | 深圳大心电子科技有限公司 | 有效数据管理方法以及存储控制器 |
CN110874332A (zh) * | 2016-08-26 | 2020-03-10 | 北京中科寒武纪科技有限公司 | 内存管理单元及其管理方法 |
CN111290972A (zh) * | 2020-03-11 | 2020-06-16 | 深圳忆联信息系统有限公司 | 数据搬运效率的提升方法、装置和计算机设备 |
WO2020209925A1 (en) * | 2019-04-08 | 2020-10-15 | Advanced Micro Devices, Inc. | Method enabling virtual pages to be allocated with noncontiguous backing physical subpages |
-
2008
- 2008-08-28 CN CN200810214600A patent/CN101661437A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216833B (zh) * | 2013-05-29 | 2017-10-10 | 华为技术有限公司 | 一种确定物理地址的方法及装置 |
US10303619B2 (en) | 2013-05-29 | 2019-05-28 | Huawei Technologies Co., Ltd. | Method and apparatus for determining physical address |
CN104216833A (zh) * | 2013-05-29 | 2014-12-17 | 华为技术有限公司 | 一种确定物理地址的方法及装置 |
CN104516826B (zh) * | 2013-09-30 | 2017-11-17 | 华为技术有限公司 | 一种虚拟大页面与物理大页面的对应方法及装置 |
CN104516826A (zh) * | 2013-09-30 | 2015-04-15 | 华为技术有限公司 | 一种虚拟大页面与物理大页面的对应方法及装置 |
CN103744963B (zh) * | 2014-01-06 | 2018-05-18 | 北京国双科技有限公司 | 目标页面转化的处理方法和装置 |
CN106560798A (zh) * | 2015-09-30 | 2017-04-12 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
CN106560798B (zh) * | 2015-09-30 | 2020-04-03 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
US10740247B2 (en) | 2016-08-11 | 2020-08-11 | Huawei Technologies Co., Ltd. | Method for accessing entry in translation lookaside buffer TLB and processing chip |
CN108139981A (zh) * | 2016-08-11 | 2018-06-08 | 华为技术有限公司 | 一种页表缓存tlb中表项的访问方法,及处理芯片 |
WO2018027839A1 (zh) * | 2016-08-11 | 2018-02-15 | 华为技术有限公司 | 一种页表缓存tlb中表项的访问方法,及处理芯片 |
CN110874332A (zh) * | 2016-08-26 | 2020-03-10 | 北京中科寒武纪科技有限公司 | 内存管理单元及其管理方法 |
CN109840218A (zh) * | 2017-11-24 | 2019-06-04 | 深圳大心电子科技有限公司 | 有效数据管理方法以及存储控制器 |
CN109840218B (zh) * | 2017-11-24 | 2023-08-01 | 深圳大心电子科技有限公司 | 有效数据管理方法以及存储控制器 |
WO2020209925A1 (en) * | 2019-04-08 | 2020-10-15 | Advanced Micro Devices, Inc. | Method enabling virtual pages to be allocated with noncontiguous backing physical subpages |
JP7469306B2 (ja) | 2019-04-08 | 2024-04-16 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 仮想ページを不連続なバッキング物理サブページに割り当てることを可能にする方法 |
CN111290972A (zh) * | 2020-03-11 | 2020-06-16 | 深圳忆联信息系统有限公司 | 数据搬运效率的提升方法、装置和计算机设备 |
CN111290972B (zh) * | 2020-03-11 | 2022-07-15 | 深圳忆联信息系统有限公司 | 数据搬运效率的提升方法、装置和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101661437A (zh) | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 | |
EP3408748B1 (en) | Adaptive value range profiling for enhanced system performance | |
US4493026A (en) | Set associative sector cache | |
CN111602377B (zh) | 高速缓存中资源调整方法、数据访问方法及装置 | |
CN105893269A (zh) | 一种Linux系统下内存管理方法 | |
US20030204698A1 (en) | Resizable cache sensitive hash table | |
US9734059B2 (en) | Methods and apparatus for data cache way prediction based on classification as stack data | |
JPH1196074A (ja) | 交換アルゴリズム動的選択コンピュータシステム | |
CN104487953A (zh) | 用于层次型存储器系统的存储器管理 | |
CN102662869B (zh) | 虚拟机中的内存访问方法和装置及查找器 | |
CN107315694B (zh) | 一种缓存一致性管理方法及节点控制器 | |
CN104809179A (zh) | 访问哈希表的装置和方法 | |
US6745291B1 (en) | High speed LRU line replacement system for cache memories | |
JPH08212136A (ja) | 仮想メモリ変換処理を効率的に共有する方法及び装置 | |
CN115168248B (zh) | 支持simt架构的高速缓冲存储器及相应处理器 | |
US9697898B2 (en) | Content addressable memory with an ordered sequence | |
CN101645034B (zh) | 用于检测数据存取违例的方法和装置 | |
CN110046107B (zh) | 存储器地址转换装置和方法 | |
KR20170082121A (ko) | 캐시 메모리 | |
US11256630B2 (en) | Cache address mapping method and related device | |
CN115357196A (zh) | 动态可扩展的组相联高速缓存方法、装置、设备及介质 | |
US7562204B1 (en) | Identifying and relocating relocatable kernel memory allocations in kernel non-relocatable memory | |
CN107291630B (zh) | 一种高速缓冲存储器处理方法及装置 | |
CN114637700A (zh) | 针对目标虚拟地址的地址转换方法、处理器及电子设备 | |
US20100257319A1 (en) | Cache system, method of controlling cache system, and information processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100303 |