CN104216833B - 一种确定物理地址的方法及装置 - Google Patents
一种确定物理地址的方法及装置 Download PDFInfo
- Publication number
- CN104216833B CN104216833B CN201310207412.8A CN201310207412A CN104216833B CN 104216833 B CN104216833 B CN 104216833B CN 201310207412 A CN201310207412 A CN 201310207412A CN 104216833 B CN104216833 B CN 104216833B
- Authority
- CN
- China
- Prior art keywords
- page
- size
- address
- tlb
- physical address
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
本发明公开一种确定物理地址的方法及装置,涉及计算机技术领域,可以采用支持多种页面大小的组相连的TLB获得物理地址,并且降低功耗。本发明通过根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;根据所述页面大小,获得旁路转换缓存TLB的索引号;根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask;根据所述Mask,获得所述TLB的标签;根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址的高MAC1位;根据所述Mask、所述支持的最小页面以及所述物理地址的高MAC1位,获得物理地址。本发明适于通过线性地址确定物理地址时采用。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种确定物理地址的方法及装置。
背景技术
访问计算机内存的时候需要提供内存单元的物理地址。通常中央处理器(CentralProcessing Unit,CPU)支持分页内存管理,在分页内存管理条件下CPU所生成的地址叫做线性地址或者虚拟地址,通过TLB中保存的页表将线性地址转换为物理地址之后才能访问计算机内存。
当采用组相连的旁路转换缓冲(Translation lookaside buffer,TLB)结构访问计算机内存时,可以同时根据线性地址的不同部分索引不同的TLB,例如存放4K页的线性地址到物理地址的转换,以及存放2M页的线性地址到物理地址的转换,每个TLB可以确定组相连的一个组,在索引到的不同组中,确定一个与线性地址匹配的组中一个TLB表项,根据该TLB表项将线性地址转换为物理地址。需要说明的是,采用页面大小的种类数目与TLB的个数相同,从而进行地址转换时就需要同时查询所有的TLB。
另外,当一个进程仅采用一种页面时,可以根据正在运行的进程所使用的页面大小选择采用线性地址的哪几位来索引组相连的TLB,确定组相连TLB的一个组中的一个TLB表项,根据该TLB表项将线性地址转换为物理地址。
然而,在采用现有技术获得物理地址时,需要同时查询多个TLB,使得功耗较高,或者需要限制每个进程只能采用一种页面,导致不灵活。
发明内容
本发明的实施例提供一种确定物理地址的方法及装置,可以采用支持多种页面大小的组相连的TLB获得物理地址,并且降低功耗。
第一方面,提供一种确定物理地址的方法,用于将内存的地址转换为物理地址;包括:
根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;
根据所述页面大小,获得旁路转换缓存TLB的索引号;
根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask;
根据所述Mask,获得所述TLB的标签;
根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址的高MAC1位;
根据所述Mask、所述支持的最小页面以及所述物理地址的高MAC1位,获得物理地址,所述物理地址用于访问内存使用。
结合第一方面,在第一方面的第一种实现方式中,所述根据线性地址的高N位获得页面大小包括:
根据支持的最小页面大小,获得所述最小页面大小的页内偏移位数;
将所述线性地址的位数除去所述最小页面大小的页内偏移位数,获得第一页号;
根据所述第一页号的值在第一预设表中查询,获得页面大小。
结合第一方面的第一种实现方式,在第一方面的第二种实现方式中,
所述第一预设表包括页面大小的起始地址、所述页面大小的终止地址和所述页面大小;
所述根据所述第一页号的值在第一预设表中查询,获得页面大小包括:
当所述第一页号的值大于第一页面大小的起始地址,并且所述第一页号的值小于所述第一页面大小的终止地址时,则确定所述页面大小为所述第一页面大小。
结合第一方面,在第一方面的第三种实现方式中,所述根据线性地址的高N位获得页面大小包括:
将线性地址的高N位输入译码器,获得选通信号,所述选通信号用于选择寄存器组中的一个寄存器;
根据所述选通信号,确定所述寄存器组中的第一寄存器;
确定所述页面大小为所述第一寄存器记录的页面大小;
所述寄存器组中的每一个寄存器记录的页面大小为根据所述线性地址的高N位将所述线性地址等分为2N个内存区后,每一个内存区中记录的页面大小。
结合第一方面的前述任一种实现方式,在第一方面的第四种实现方式中,
所述根据所述页面大小,获得TLB的索引号,包括:
根据所述TLB中保存的记录的行数,确定表示所述TLB的行数的位数;
根据所述页面大小,确定所述页面大小的页内偏移位数;
将所述线性地址的位数去掉所述页面大小的页内偏移位数之后,将剩余的所述线性地址的部分的最低的所述表示所述TLB的行数的位数确定为所述TLB的索引号。
结合第一方面的前述任一种实现方式,在第一方面的第五种实现方式中,
所述根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask,包括:
根据M1=LA-log2P1得到Mask的位数,其中,所述M1表示Mask的位数,所述LA表示所述线性地址的位数,所述P1表示支持的最小页面大小;
根据M2=LA-log2P2得到屏蔽位Mask中1的个数,其中,所述M2表示得到屏蔽位Mask中1的个数,所述P2表示所述页面大小;
将所述M1中高所述M2位置1,低(M1-M2)位置0,获得Mask。
结合第一方面的第五种实现方式,在第一方面的第六种实现方式中,
所述根据所述Mask,获得所述TLB的标签,包括:
将所述线性地址除去低所述(log2P1)位,获得第二地址;
将所述Mask与所述第二地址按位进行与计算,获得所述TLB的标签。
结合第一方面的前述任一种实现方式,在第一方面的第七种实现方式中,
所述根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址包括:
根据所述TLB的索引号在所述TLB中查找,获得所述TLB中的第一记录,所述TLB包括至少一行记录,每一行记录中包括至少一对数据,每一对所述数据包括一个标签和与所述标签对应的物理地址;
将所述TLB的标签与所述第一记录中的包括至少一对数据中的各个标签比较,当所述TLB的标签与所述第一记录中的包括的第一标签相同时,则所述第一记录中与所述第一标签对应的物理地址为所述线性地址对应的物理地址的高MAC1位。
结合第一方面的前述任一种实现方式,在第一方面的第八种实现方式中,
所述根据所述Mask、所述支持的最小页面大小以及所述物理地址的高MAC1位获得物理地址,包括:
将所述Mask取反,并与所述第二地址按位进行与计算,获得所述物理地址的中间MAC2位;
获得所述物理地址的低(log2P1)位,所述P1表示支持的最小页面大小;
将所述物理地址的高MAC1位、所述物理地址的中间MAC2位以及所述物理地址的低MAC3位按顺序组合,获得物理地址。
第二方面,提供一种确定物理地址的装置,用于将内存的地址转换为物理地址;包括:
页面大小译码器,用于根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;
索引处理器,用于根据所述页面大小,获得旁路转换缓存TLB的索引号;
屏蔽位Mask译码器,用于根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask;
标签处理器,用于根据所述Mask,获得所述TLB的标签;
物理地址确定单元,用于根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址的高MAC1位;
所述物理地址确定单元,还用于根据所述Mask、所述支持的最小页面以及所述物理地址的高MAC1位,获得物理地址,所述物理地址用于访问内存使用。
结合第二方面,在第二方面的第一种实现方式中,所述页面大小译码器,包括:
计算模块,用于根据支持的最小页面大小,获得所述最小页面大小的页内偏移位数;
所述计算模块,还用于将所述线性地址的位数除去所述最小页面大小的页内偏移位数,获得第一页号;
页面大小获得模块,用于根据所述第一页号的值在第一预设表中查询,获得页面大小。
结合第二方面的第一种实现方式,在第二方面的第二种实现方式中,
所述第一预设表包括页面大小的起始地址、所述页面大小的终止地址和所述页面大小;
所述页面大小获得模块用于:
当所述第一页号的值大于第一页面大小的起始地址,并且所述第一页号的值小于所述第一页面大小的终止地址时,则确定所述页面大小为所述第一页面大小。
结合第二方面,在第二方面的第三种实现方式中,所述页面大小译码器包括:
译码器,用于将线性地址的高N位输入译码器,获得选通信号,所述选通信号用于选择寄存器组中的一个寄存器;
寄存器,用于根据所述选通信号,确定所述寄存器组中的第一寄存器;
所述寄存器,还用于确定所述页面大小为所述第一寄存器记录的页面大小;
所述寄存器组中的每一个寄存器记录的页面大小为根据所述线性地址的高N位将所述线性地址等分为2N个内存区后,每一个内存区中记录的页面大小。
结合第二方面的前述任一种实现方式,在第二方面的第四种实现方式中,
所述索引处理器,包括:
索引译码器,用于根据所述TLB中保存的记录的行数,确定表示所述TLB的行数的位数;
所述索引译码器,还用于根据所述页面大小,确定所述页面大小的页内偏移位数;
多路选择器MUX,用于将所述线性地址的位数去掉所述页面大小的页内偏移位数之后,将剩余的所述线性地址的部分的最低的所述表示所述TLB的行数的位数确定为所述TLB的索引号。
结合第二方面的前述任一种实现方式,在第二方面的第五种实现方式中,
所述屏蔽位Mask译码器,用于:
根据M1=LA-log2P1得到屏蔽位Mask的位数,其中,所述M1表示Mask的位数,所述LA表示所述线性地址的位数,所述P1表示支持的最小页面大小;
根据M2=LA-log2P2得到屏蔽位Mask中1的个数,其中,所述M2表示得到屏蔽位Mask中1的个数,所述P2表示所述页面大小;
将所述M1中高所述M2位置1,低(M1-M2)位置0,获得Mask。
结合第二方面的前述第五种实现方式,在第二方面的第六种实现方式中,
所述标签处理器,用于:
将所述线性地址除去低所述(log2P1)位,获得第二地址;
将所述Mask与所述第二地址按位进行与计算,获得所述TLB的标签。
结合第二方面的前述第种六实现方式,在第二方面的第七种实现方式中,
所述物理地址确定单元,包括:
第一纪录确定模块,用于根据所述TLB的索引号在所述TLB中查找,获得所述TLB中的第一记录,所述TLB包括至少一行记录,每一行记录中包括至少一对数据,每一对所述数据包括一个标签和与所述标签对应的物理地址;
物理地址确定模块,用于将所述TLB的标签与所述第一记录中的包括至少一对数据中的各个标签比较,当所述TLB的标签与所述第一记录中的包括的第一标签相同时,则所述第一记录中与所述第一标签对应的物理地址为所述线性地址对应的物理地址的高MAC1位。
结合第二方面的前述第七种实现方式,在第二方面的第八种实现方式中,
所述物理地址确定单元,包括:
计算模块,用于将所述Mask取反,并与所述第二地址按位进行与计算,获得所述物理地址的中间MAC2位;
所述计算模块,还用于获得所述物理地址的低(log2P1)位,所述P1表示支持的最小页面大小;
组合模块,用于将所述物理地址的高MAC1位、所述物理地址的中间MAC2位以及所述物理地址的低(log2P1)位按顺序组合,获得物理地址。
本发明实施例提供一种确定物理地址的方法及装置,与现有技术中需要同时查询多个TLB,使得功耗较高,或者需要限制每个进程只能采用一种页面,导致不灵活相比,本发明实施例可以采用支持多种页面大小的组相连的TLB获得物理地址,并使得进程在不同线性地址区域使用不同的页面大小,并且降低功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例提供的一种确定物理地址的方法的流程图;
图2为本发明一个实施例提供的另一种确定物理地址的方法的流程图;
图3为本发明一个实施例提供的确定物理地址的方法的示意图;
图4为本发明一个实施例提供的另一个确定物理地址的方法的示意图;
图5为本发明一个实施例提供的另一个确定物理地址的方法的示意图;
图6为本发明一个实施例提供的一种确定物理地址的装置的框图;
图7为本发明一个实施例提供的另一种确定物理地址的装置的框图;
图8为本发明一个实施例提供的页面大小译码器的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种确定物理地址的方法,该方法的执行主体为CPU,用于将内存的地址转换为物理地址;该方法包括:
步骤101,根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;
线性地址为CPU所生成的地址,也可以称为虚拟地址或者逻辑地址。线性地址必须通过页表转换为物理地址才能访问内存,即页表用于将线性地址转换为物理地址。页表可以存放在内存中,当进行线性地址到物理地址的转换时,需要访问内存中的页表,这样导致线性地址到物理地址的转换速度较慢。CPU中的TLB也可以保存页表。页表如果保存在TLB中,则可以在CPU中进行线性地址到物理地址的转换,而不必访问内存,使得线性地址到物理地址的转换的速度加快。
由于不同大小的页面在进行组相连的时候使用的index在线性地址中的位置不同,因此在进行线性地址到物理地址的转换的时候,需要知道使用线性地址的哪一部分作为index来索引TLB。可选的,将线性地址的高N位作为页面大小译码器的输入,可以获得页面大小。其中,N大于0,并且小于所述线性地址的位数,即线性地址为32位时,则可以将线性地址的高7位作为页面大小译码器的输入,获得页面大小。
步骤102,根据所述页面大小,获得旁路转换缓存TLB的索引号;
可选的,获得页面大小之后,将页面大小作为索引译码器的输入,可以获得多路选择器(multiplexer,MUX)的选择信号,从而得到索引号index。其中,MUX表示选择各种页面大小对应的index的多路选择器。
例如,根据所述TLB的项数,确定表示所述TLB的项数的位数,即当TLB中包括512项时,即TLB中保存有512行记录,则需要9位表示index。
根据所述页面大小,确定所述页面大小的页内偏移位数,当页面大小为4M时,页面大小的页内偏移位数为22位。
将所述线性地址的位数去掉所述页面大小的页内偏移位数之后,将剩余的所述线性地址的部分的最低的所述表示所述TLB的项数的位数确定为所述TLB的索引号。当线性地址为32位时,则线性地址的位数去掉页面大小的页内偏移位数之后,为10位,将10位中的最低的7位确定为TLB的索引号,即MUX选择线性地址的22位-28位作为index。
步骤103,根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask;
可选的,获得页面大小之后,将页面大小作为屏蔽位Mask译码器的输入,从而获得Mask。
例如,根据M1=LA-log2P1得到屏蔽位Mask的位数,其中,所述M1表示Mask的位数,所述LA表示所述线性地址的位数,所述P1表示支持的最小页面大小;
根据M2=LA-log2P2得到屏蔽位Mask中1的个数,其中,所述M2表示得到屏蔽位Mask中1的个数,所述P2表示所述页面大小;
将所述M1中高所述M2位置1,低(M1-M2)位置0,获得Mask。
步骤104,根据所述Mask,获得所述TLB的标签;
将Mask与线性地址的位数除去最小页面的页内偏移的部分按位进行与计算,获得TLB的标签。
可选的,将所述线性地址除去低所述(log2P1)位,获得第二地址;
将所述Mask与所述第二地址按位进行与计算,获得所述TLB的标签。
步骤105,根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址的高MAC1位。
在本实施例中,TLB中不再需要Mask域,仅包括标签域和物理地址域。TLB中包括至少一行记录,每一行记录中包括至少一对数据,每一对所述数据包括一个标签和与所述标签对应的物理地址;
可选的,根据所述索引号在所述TLB中查找,获得所述TLB中的第一记录;
将所述标签与所述第一记录中的包括至少一对数据中的各个标签比较,当所述标签与所述第一记录中的包括的第一标签相同时,则所述第一记录中与所述第一标签对应的物理地址为所述线性地址对应的物理地址的高MAC1位。
步骤106,根据所述Mask、所述支持的最小页面以及所述物理地址的高MAC1位,获得物理地址,所述物理地址用于访问内存使用。
根据所述Mask、所述支持的最小页面大小以及所述物理地址的高MAC1位获得物理地址,包括:将所述Mask取反,并与所述第二地址按位进行与计算,获得所述物理地址的中间MAC2位;获得所述物理地址的低(log2P1)位,所述P1表示支持的最小页面大小;将所述物理地址的高MAC1位、所述物理地址的中间MAC2位以及所述物理地址的低(log2P1)位按顺序组合,获得物理地址。
需要说明的是,TLB中标签域的长度固定为最小页面的标签的长度,则对于大页面的标签的低位需要置0。例如,线性地址为32位,最小页面为4K,最小页面的页内偏移位数为12,TLB中标签域的长度固定为20位,若大页面为4M时,此页面的页内偏移位数为22,则大页面的标签中有效标签位为10位,对于TLB中标签域的长度固定为20位,因此低10位需要置0。
本发明实施例提供一种确定物理地址的方法,通过根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;根据所述页面大小,获得旁路转换缓存TLB的索引号;根据所述页面大小,获得所述TLB的标签;根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址,可以采用支持多种页面大小的组相连的TLB获得物理地址,并使得进程在不同线性地址区域使用不同的页面大小,并且降低功耗。
本发明实施例提供另一种确定物理地址的方法,用于将内存的地址转换为物理地址;如图2所示,该方法包括:
步骤201,根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数。
可选的,如图3所示,通过页面大小译码器获得页面大小,页面大小译码器表示一种根据线性地址高位得到页面大小的逻辑模块。
在本实施例中页面大小译码器的实现方式可以通过以下两种方式实现:
方式一:如图4所示,页面大小译码器通过一个预设表实现,这个预设表由页面大小的起始地址Start,页面大小的终止地址End以及页面大小Page-size组成,并由操作系统写入和修改预设表。
可选的,首先根据支持的最小页面大小,获得所述最小页面大小的页内偏移位数。
例如,系统可以支持的最小页面大小为4KB,通过log2(4K)=12计算获得页面大小的页面偏移位数为12。因此Start和End记录的由Page-size指定的页面大小的内存区可以以4KB为单位的起始地址和终止地址。
将所述线性地址的位数除去所述最小页面大小的页内偏移位数,获得第一页号。
例如,线性地址为48位,则第一页号为(48-12)位,即第一页号最大可以为36位。
根据确定的所述第一页号的值在第一预设表中查询,获得页面大小。
第一页号由二进制表示,将二进制数转换为十进制数,此十进制数可以表示页号的值。
可选的,当所述第一页号的值大于第一页面大小的起始地址,并且所述第一页号的值小于所述第一页面大小的终止地址时,则确定所述页面大小为所述第一页面大小。
需要说明的是,由于需要将线性地址中的36为与预设表中的每一项的Start和End做并行的比较,因此预设表需要设置的行数较少,以便提高查找到页面大小的时间。例如,可以将预设表设置为7项,则需要将线性地址分成7个内存区,其中,每个内存区的页面大小可以为4KB、8KB、16KB、32KB、64KB、128KB……32G、64G、128G、256G、512G中的任意一种。
方式二:如图5所示,将页面大小译码器通过一个7-128译码器和一个页面大小寄存器组的组合进行实现,并由操作系统写入和修改。
例如,所述寄存器组中的每一个寄存器记录的页面大小为根据所述线性地址的高N位将所述线性地址等分为2N个内存区后,每一个内存区中记录的页面大小。
线性地址为48位,使用线性地址的最高N位将线性地址等分为若干个2TB的内存区,例如,使用线性地址的最高7位将线性地址等分为128个2TB的内存区,其中,每个内存区的页面大小可以为4KB、8KB、16KB、32KB、64KB、128KB……32G、64G、128G、256G、512G中的任意一种。
可选的,将线性地址的高N位输入译码器,获得选通信号,所述选通信号用于选择寄存器组中的一个寄存器;例如,将线性地址的高7位输入译码器,获得一个选通信号。
根据所述选通信号,确定所述寄存器组中的第一寄存器。可选的,译码器的输出会在寄存器组中查找到一个寄存器。例如,寄存器组中有0-3号共4个寄存器,选通信号为2时,则选择的寄存器为2号寄存器。需要说明的是,第一寄存器中的“第一”不是为了排序,而是为了方便描述,这里第一寄存器可以指寄存器组中的任意一个寄存器,例如当选通信号为2时,第一寄存器可以为2号寄存器,选通信号为0时,第一寄存器可以为0号寄存器。
确定所述页面大小为所述第一寄存器记录的页面大小;
步骤202,根据所述页面大小,获得旁路转换缓存TLB的索引号;
可选的,如图3所示,通过索引译码器和MUX获得TLB的索引号index。
可选的,根据TLB中保存的记录的行数,确定表示所述TLB的行数的位数。TLB中保存至少一行记录。例如,TLB中保存有512项时,即TLB中保存有512行记录,则需要[log2(512)=9]位表示index,即index由9位二进制数构成。
根据所述页面大小,确定所述页面大小的页内偏移位数。例如,当页面大小为4M时,页面大小的页内偏移位数为22位。
将所述线性地址的位数去掉所述页面大小的页内偏移位数之后,将剩余的所述线性地址的部分的最低的所述表示所述TLB的项数的位数确定为所述TLB的索引号。当线性地址为32位时,则线性地址的位数去掉页面大小的页内偏移位数之后,为10位,将10位中的最低的7位确定为TLB的索引号,即MUX选择线性地址的22位-28位作为index输出。
步骤203,根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask;
可选的,如图3所示,通过屏蔽位Mask译码器获得屏蔽位Mask。
根据M1=LA-log2P1得到Mask的位数,其中,所述M1表示Mask的位数,所述LA表示所述线性地址的位数,所述P1表示支持的最小页面大小。
例如,线性地址为48位,支持的最小页面为4K,则Mask的位数为[48-log2(4K)=36]位。在这36位中,高位为1,低位为0。
根据M2=LA-log2P2得到屏蔽位Mask中1的个数,其中,所述M2表示得到屏蔽位Mask中1的个数,所述P2表示所述页面大小。
页面大小为4M,则Mask中1的个数为[48-log2(4M)=26]位。
将所述M1中高所述M2位置1,低(M1-M2)位置0,获得Mask。
例如,Mask中高26位为1,低(36-26=10)位为0,例如Mask为“111111111111111111111111110000000000”。
步骤204,根据所述Mask,获得所述TLB的标签。
所述线性地址除去低所述(log2P1)位,获得第二地址。例如,第二地址可以为线性地址中高[48-log2(4K)=36]位。
将所述Mask与所述第二地址按位进行与计算,获得所述TLB的标签。
步骤205,根据所述TLB的索引号在所述TLB中查找,获得所述TLB中的第一记录。
所述TLB包括至少一行记录,每一行记录中包括至少一对数据,每一对所述数据包括一个标签和与所述标签对应的物理地址。TLB中不再包括Mask值,使得TLB的设置更简单,查询物理地址时更快速。
例如,获得的TLB的索引号由9位表示,TLB为512行记录,则根据索引号的值获得TLB中的一行记录。例如,索引号的9位表示的值为318,则可以TLB中第318行记录为第一记录。
步骤206,将所述TLB的标签与所述第一记录中的包括至少一对数据中的各个标签比较,当所述TLB的标签与所述第一记录中的包括的第一标签相同时,则所述第一记录中与所述第一标签对应的物理地址为所述线性地址对应的物理地址中的高MAC1位。
根据获得的TLB的标签与所述第一记录中的包括至少一对数据中的各个标签比较包括:将TLB的标签依次与所述第一记录中的包括至少一对数据的标签一一进行比较。当TLB的标签与任一对数据中的标签进行比较时,可选的,将表示TLB的标签的二进制数依次与任一对数据中的表示标签的二进制数进行比较,或者,将TLB的标签的值与任一对数据中的标签的值进行比较。
当TLB的标签与所述第一记录中的包括的第一标签不相同时,继续比较第一纪录中包括的其他的标签。
步骤207,根据Mask、所述支持的最小页面大小以及所述物理地址中的高MAC1位,获得所述物理地址,所述物理地址用于访问内存使用。
将所述Mask取反,并与所述第二地址按位进行与计算,获得所述物理地址的中间MAC2位,例如,将所述Mask取反得到“000000000011111111111111111111111111”,与第二地址按位进行与计算,获得“0000000000xxxxxxxxxxxxxxxxxxxxxxxxxx”,其中,“xxxxxxxxxxxxxxxxxxxxxxxxxx”表示物理地址的中间MAC2位。
根据所述支持的最小页面大小,获得所述物理地址的最低(log2P1)位,所述P1表示支持的最小页面大小,例如,支持的小页面大小为4K,则log2(4K)=12,即最小页面大小的页内偏移位数为所述物理地址的最低12位,即0-11位。
将查询TLB获得的高MAC1位、物理地址的中间MAC2位以及物理地址的最低(log2P1)位按顺序组合,获得物理地址。
在本步骤中,获得线性地址对应的物理地址之后,会由CPU的引脚将物理地址发出传到存储系统,从而执行后续的操作。
本发明实施例提供一种确定物理地址的方法,通过根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;根据所述页面大小,获得旁路转换缓存TLB的索引号;根据所述页面大小,获得所述TLB的标签;根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址,可以采用支持多种页面大小的组相连的TLB获得物理地址,并使得进程在不同线性地址区域使用不同的页面大小,并且降低功耗。
本发明实施例提供一种确定物理地址的装置,该装置可以为CPU,用于将内存的地址转换为物理地址;如图6所示,该装置包括:页面大小译码器601,索引处理器602,屏蔽位Mask译码器603,标签处理器604,物理地址确定单元605。
页面大小译码器601,用于根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;不同线性地址区域可以使用不同的页面大小。
索引处理器602,用于根据所述页面大小,获得旁路转换缓存TLB的索引号;
屏蔽位Mask译码器603,用于根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask;
进一步可选的,屏蔽位Mask译码器603用于根据M1=LA-log2P1得到屏蔽位Mask的位数,其中,所述M1表示Mask的位数,所述LA表示所述线性地址的位数,所述P1表示支持的最小页面大小;
所述Mask译码器603,还用于根据M2=LA-log2P2得到屏蔽位Mask中1的个数,其中,所述M2表示得到屏蔽位Mask中1的个数,所述P2表示所述页面大小;
所述Mask译码器603,还用于将所述M1中高所述M2位置1,低(M1-M2)位置0,获得Mask;
标签处理器604,用于根据所述Mask,获得所述TLB的标签;
进一步可选的,所述标签处理器604用于将所述线性地址除去低所述(log2P1)位,获得第二地址;
所述标签处理器604,还用于将所述Mask与所述第二地址按位进行与计算,获得所述TLB的标签。
物理地址确定单元605,用于根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址的高MAC1位;
所述物理地址确定单元605,还用于根据所述Mask、所述支持的最小页面以及所述物理地址的高MAC1位,获得物理地址,所述物理地址用于访问内存使用。
进一步可选的,如图7所示,所述页面大小译码器601,包括:计算模块6011,页面大小获得模块6012。
计算模块6011,用于根据支持的最小页面大小,获得所述最小页面大小的页内偏移位数;
所述计算模块6011,还用于将所述线性地址的位数除去所述最小页面大小的页内偏移位数,获得第一页号;例如,系统可以支持的最小页面大小为4KB,通过log2(4K)=12计算获得页面大小的页面偏移位数为12。因此Start和End记录的由Page-size指定的页面大小的内存区可以以4KB为单位的起始地址和终止地址。
页面大小获得模块6012,用于根据所述第一页号的值在第一预设表中查询,获得页面大小。
进一步的,所述第一预设表包括页面大小的起始地址Start、所述页面大小的终止地址End和所述页面大小Page-size,并由操作系统写入和修改预设表。
所述页面大小获得模块6012用于:当所述第一页号的值大于第一页面大小的起始地址,并且所述第一页号的值小于所述第一页面大小的终止地址时,则确定所述页面大小为所述第一页面大小。
需要说明的是,由于需要将线性地址中的36为与预设表中的每一项的Start和End做并行的比较,因此预设表需要设置的行数较少,以便提高查找到页面大小的时间。例如,可以将预设表设置为7项,则需要将线性地址分成7个内存区,其中,每个内存区的页面大小可以为4KB、8KB、16KB、32KB、64KB、128KB……32G、64G、128G、256G、512G中的任意一种。
进一步可选的,如图8所示,所述页面大小译码器601包括:译码器6013,寄存器6014。
译码器6013,用于将线性地址的高N位输入译码器,获得选通信号,所述选通信号用于选择寄存器组中的一个寄存器;
寄存器6014,用于根据所述选通信号,确定所述寄存器组中的第一寄存器;
所述寄存器6014,还用于确定所述页面大小为所述第一寄存器记录的页面大小;
所述寄存器组中的每一个寄存器记录的页面大小为根据所述线性地址的高N位将所述线性地址等分为2N个内存区后,每一个内存区中记录的页面大小。例如,线性地址为48位,使用线性地址的最高N位将线性地址等分为若干个2TB的内存区,例如,使用线性地址的最高7位将线性地址等分为128个2TB的内存区,其中,每个内存区的页面大小可以为4KB、8KB、16KB、32KB、64KB、128KB……32G、64G、128G、256G、512G中的任意一种。
进一步可选的,如图7所示,在所述索引处理器602根据所述页面大小,获得旁路转换缓存TLB的索引号时,所述索引处理器602,包括:索引译码器6021,多路选择器MUX6022;
索引译码器6021,用于根据所述TLB中保存的记录的行数,确定表示所述TLB的行数的位数;例如,TLB中保存有512项时,即TLB中保存有512行记录,则需要[log2(512)=9]位表示index,即index由9位二进制数构成。
所述索引译码器6021,还用于根据所述页面大小,确定所述页面大小的页内偏移位数;例如,当页面大小为4M时,页面大小的页内偏移位数为22位。
多路选择器MUX6022,用于将所述线性地址的位数去掉所述页面大小的页内偏移位数之后,将剩余的所述线性地址的部分的最低的所述表示所述TLB的行数的位数确定为所述TLB的索引号。当线性地址为32位时,则线性地址的位数去掉页面大小的页内偏移位数之后,为10位,将10位中的最低的7位确定为TLB的索引号,即MUX选择线性地址的22位-28位作为index输出。
进一步可选的,如图7所示,所述物理地址确定单元605,包括:第一纪录确定模块6051,物理地址确定模块6052,计算模块6053,组合模块6054。
第一纪录确定模块6051,用于根据所述TLB的索引号在所述TLB中查找,获得所述TLB中的第一记录,所述TLB包括至少一行记录,每一行记录中包括至少一对数据,每一对所述数据包括一个标签和与所述标签对应的物理地址;例如,获得的TLB的索引号由9位表示,TLB为512行记录,则根据索引号的值获得TLB中的一行记录。例如,索引号的9位表示的值为318,则可以TLB中第318行记录为第一记录。
物理地址确定模块6052,用于将所述TLB的标签与所述第一记录中的包括至少一对数据中的各个标签比较,当所述TLB的标签与所述第一记录中的包括的第一标签相同时,则所述第一记录中与所述第一标签对应的物理地址为所述线性地址对应的物理地址的高MAC1位;
当TLB的标签与所述第一记录中的包括的第一标签不相同时,继续比较第一纪录中包括的其他的标签。
计算模块6053,用于将所述Mask取反,并与所述第二地址按位进行与计算,获得所述物理地址的中间MAC2位;
所述计算模块6053,还用于获得所述物理地址的低(log2P1)位,所述P1表示支持的最小页面大小;
组合模块6054,用于将所述物理地址的高MAC1位、所述物理地址的中间MAC2位以及所述物理地址的低(log2P1)位按顺序组合,获得物理地址,所述物理地址用于访问内存使用。
需要说明的是,附图6或7所示装置中,其各个模块的具体实施过程以及各个模块之间的信息交互等内容,由于与本发明方法实施例基于同一发明构思,可以参见方法实施例,在此不一一赘述。
本发明实施例提供一种确定物理地址的装置,通过页面大小译码器根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;根据所述页面大小,索引处理器获得旁路转换缓存TLB的索引号;根据所述页面大小,标签处理器获得所述TLB的标签;根据所述索引号和所述标签,物理地址确定单元查找所述TLB,获得所述线性地址对应的物理地址,可以采用支持多种页面大小的组相连的TLB获得物理地址,并使得进程在不同线性地址区域使用不同的页面大小,并且降低功耗。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (18)
1.一种确定物理地址的方法,用于将内存的地址转换为物理地址;其特征在于,包括:
根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;
根据所述页面大小,获得旁路转换缓存TLB的索引号;
根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask;
根据所述Mask,获得所述TLB的标签;
根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址的高MAC1位;
根据所述Mask、所述支持的最小页面以及所述物理地址的高MAC1位,获得物理地址,所述物理地址用于访问内存使用。
2.根据权利要求1所述的方法,其特征在于,所述根据线性地址的高N位获得页面大小包括:
根据支持的最小页面大小,获得所述最小页面大小的页内偏移位数;
将所述线性地址的位数除去所述最小页面大小的页内偏移位数,获得第一页号;
根据所述第一页号的值在第一预设表中查询,获得页面大小。
3.根据权利要求2所述的方法,其特征在于,所述第一预设表包括页面大小的起始地址、所述页面大小的终止地址和所述页面大小;
所述根据所述第一页号的值在第一预设表中查询,获得页面大小包括:
当所述第一页号的值大于第一页面大小的起始地址,并且所述第一页号的值小于所述第一页面大小的终止地址时,则确定所述页面大小为所述第一页面大小。
4.根据权利要求1所述的方法,其特征在于,所述根据线性地址的高N位获得页面大小包括:
将线性地址的高N位输入译码器,获得选通信号,所述选通信号用于选择寄存器组中的一个寄存器;
根据所述选通信号,确定所述寄存器组中的第一寄存器;
确定所述页面大小为所述第一寄存器记录的页面大小;
所述寄存器组中的每一个寄存器记录的页面大小为根据所述线性地址的高N位将所述线性地址等分为2N个内存区后,每一个内存区中记录的页面大小。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述页面大小,获得TLB的索引号,包括:
根据所述TLB中保存的记录的行数,确定表示所述TLB的行数的位数;
根据所述页面大小,确定所述页面大小的页内偏移位数;
将所述线性地址的位数去掉所述页面大小的页内偏移位数之后,将剩余的所述线性地址的部分的最低的所述表示所述TLB的行数的位数确定为所述TLB的索引号。
6.根据权利要求5所述的方法,其特征在于,所述根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask,包括:
根据M1=LA-log2P1得到Mask的位数,其中,所述M1表示Mask的位数,所述LA表示所述线性地址的位数,所述P1表示支持的最小页面大小;
根据M2=LA-log2P2得到屏蔽位Mask中1的个数,其中,所述M2表示得到屏蔽位Mask中1的个数,所述P2表示所述页面大小;
将所述M1中高所述M2位置1,低M1-M2位置0,获得Mask。
7.根据权利要求6所述的方法,其特征在于,所述根据所述Mask,获得所述TLB的标签,包括:
将所述线性地址除去低所述log2P1位,获得第二地址;
将所述Mask与所述第二地址按位进行与计算,获得所述TLB的标签。
8.根据权利要求7中任一项所述的方法,其特征在于,所述根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址包括:
根据所述TLB的索引号在所述TLB中查找,获得所述TLB中的第一记录,所述TLB包括至少一行记录,每一行记录中包括至少一对数据,每一对所述数据包括一个标签和与所述标签对应的物理地址;
将所述TLB的标签与所述第一记录中的包括至少一对数据中的各个标签比较,当所述TLB的标签与所述第一记录中的包括的第一标签相同时,则所述第一记录中与所述第一标签对应的物理地址为所述线性地址对应的物理地址的高MAC1位。
9.根据权利要求8所述的方法,其特征在于,所述根据所述Mask、所述支持的最小页面大小以及所述物理地址的高MAC1位获得物理地址,包括:
将所述Mask取反,并与所述第二地址按位进行与计算,获得所述物理地址的中间MAC2位;
获得所述物理地址的低log2P1位,所述P1表示支持的最小页面大小;
将所述物理地址的高MAC1位、所述物理地址的中间MAC2位以及所述物理地址的低MAC3位按顺序组合,获得物理地址。
10.一种确定物理地址的装置,用于将内存的地址转换为物理地址;其特征在于,包括:
页面大小译码器,用于根据线性地址的高N位获得页面大小,所述N大于0,并且小于所述线性地址的位数;
索引处理器,用于根据所述页面大小,获得旁路转换缓存TLB的索引号;
屏蔽位Mask译码器,用于根据所述页面大小和支持的最小页面大小,获得屏蔽位Mask;
标签处理器,用于根据所述Mask,获得所述TLB的标签;
物理地址确定单元,用于根据所述索引号和所述标签,查找所述TLB,获得所述线性地址对应的物理地址的高MAC1位;
所述物理地址确定单元,还用于根据所述Mask、所述支持的最小页面以及所述物理地址的高MAC1位,获得物理地址,所述物理地址用于访问内存使用。
11.根据权利要求10所述的装置,其特征在于,所述页面大小译码器,包括:
计算模块,用于根据支持的最小页面大小,获得所述最小页面大小的页内偏移位数;
所述计算模块,还用于将所述线性地址的位数除去所述最小页面大小的页内偏移位数,获得第一页号;
页面大小获得模块,用于根据所述第一页号的值在第一预设表中查询,获得页面大小。
12.根据权利要求11所述的装置,其特征在于,所述第一预设表包括页面大小的起始地址、所述页面大小的终止地址和所述页面大小;
所述页面大小获得模块用于:
当所述第一页号的值大于第一页面大小的起始地址,并且所述第一页号的值小于所述第一页面大小的终止地址时,则确定所述页面大小为所述第一页面大小。
13.根据权利要求10所述的装置,其特征在于,所述页面大小译码器包括:
译码器,用于将线性地址的高N位输入译码器,获得选通信号,所述选通信号用于选择寄存器组中的一个寄存器;
寄存器,用于根据所述选通信号,确定所述寄存器组中的第一寄存器;
所述寄存器,还用于确定所述页面大小为所述第一寄存器记录的页面大小;
所述寄存器组中的每一个寄存器记录的页面大小为根据所述线性地址的高N位将所述线性地址等分为2N个内存区后,每一个内存区中记录的页面大小。
14.根据权利要求12或13所述的装置,其特征在于,所述索引处理器,包括:
索引译码器,用于根据所述TLB中保存的记录的行数,确定表示所述TLB的行数的位数;
所述索引译码器,还用于根据所述页面大小,确定所述页面大小的页内偏移位数;
多路选择器MUX,用于将所述线性地址的位数去掉所述页面大小的页内偏移位数之后,将剩余的所述线性地址的部分的最低的所述表示所述TLB的行数的位数确定为所述TLB的索引号。
15.根据权利要求14所述的装置,其特征在于,所述屏蔽位Mask译码器,用于:
根据M1=LA-log2P1得到屏蔽位Mask的位数,其中,所述M1表示Mask的位数,所述LA表示所述线性地址的位数,所述P1表示支持的最小页面大小;
根据M2=LA-log2P2得到屏蔽位Mask中1的个数,其中,所述M2表示得到屏蔽位Mask中1的个数,所述P2表示所述页面大小;
将所述M1中高所述M2位置1,低M1-M2位置0,获得Mask。
16.根据权利要求15所述的装置,其特征在于,所述标签处理器,用于:
将所述线性地址除去低所述log2P1位,获得第二地址;
将所述Mask与所述第二地址按位进行与计算,获得所述TLB的标签。
17.根据权利要求16所述的装置,其特征在于,所述物理地址确定单元,包括:
第一纪录确定模块,用于根据所述TLB的索引号在所述TLB中查找,获得所述TLB中的第一记录,所述TLB包括至少一行记录,每一行记录中包括至少一对数据,每一对所述数据包括一个标签和与所述标签对应的物理地址;
物理地址确定模块,用于将所述TLB的标签与所述第一记录中的包括至少一对数据中的各个标签比较,当所述TLB的标签与所述第一记录中的包括的第一标签相同时,则所述第一记录中与所述第一标签对应的物理地址为所述线性地址对应的物理地址的高MAC1位。
18.根据权利要求17所述的装置,其特征在于,所述物理地址确定单元,包括:
计算模块,用于将所述Mask取反,并与所述第二地址按位进行与计算,获得所述物理地址的中间MAC2位;
所述计算模块,还用于获得所述物理地址的低log2P1位,所述P1表示支持的最小页面大小;
组合模块,用于将所述物理地址的高MAC1位、所述物理地址的中间MAC2位以及所述物理地址的低log2P1位按顺序组合,获得物理地址。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310207412.8A CN104216833B (zh) | 2013-05-29 | 2013-05-29 | 一种确定物理地址的方法及装置 |
PCT/CN2013/088294 WO2014190701A1 (zh) | 2013-05-29 | 2013-12-02 | 一种确定物理地址的方法及装置 |
JP2016515608A JP6085394B2 (ja) | 2013-05-29 | 2013-12-02 | 物理アドレスを判定するための方法及び装置 |
KR1020157036578A KR101782452B1 (ko) | 2013-05-29 | 2013-12-02 | 물리 주소를 결정하는 방법 및 장치 |
EP13885481.5A EP3007071A1 (en) | 2013-05-29 | 2013-12-02 | Method and device for determining physical address |
US14/951,608 US10303619B2 (en) | 2013-05-29 | 2015-11-25 | Method and apparatus for determining physical address |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310207412.8A CN104216833B (zh) | 2013-05-29 | 2013-05-29 | 一种确定物理地址的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216833A CN104216833A (zh) | 2014-12-17 |
CN104216833B true CN104216833B (zh) | 2017-10-10 |
Family
ID=51987938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310207412.8A Active CN104216833B (zh) | 2013-05-29 | 2013-05-29 | 一种确定物理地址的方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10303619B2 (zh) |
EP (1) | EP3007071A1 (zh) |
JP (1) | JP6085394B2 (zh) |
KR (1) | KR101782452B1 (zh) |
CN (1) | CN104216833B (zh) |
WO (1) | WO2014190701A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766259B (zh) * | 2016-08-23 | 2021-08-20 | 华为技术有限公司 | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 |
CN108132894B (zh) * | 2017-12-23 | 2021-11-30 | 天津国芯科技有限公司 | 一种cpu中tlb多命中异常的定位装置及方法 |
CN112445616B (zh) * | 2020-11-25 | 2023-03-21 | 海光信息技术股份有限公司 | 资源分配方法以及装置 |
CN116048428B (zh) * | 2023-03-30 | 2023-08-29 | 北京特纳飞电子技术有限公司 | 数据请求处理方法、装置、存储设备和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526504A (en) * | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
US5630088A (en) * | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
CN101661437A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
CN102662860A (zh) * | 2012-03-15 | 2012-09-12 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5060137A (en) * | 1985-06-28 | 1991-10-22 | Hewlett-Packard Company | Explicit instructions for control of translation lookaside buffers |
DE69428881T2 (de) | 1994-01-12 | 2002-07-18 | Sun Microsystems, Inc. | Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt |
JP3740195B2 (ja) | 1994-09-09 | 2006-02-01 | 株式会社ルネサステクノロジ | データ処理装置 |
US5963984A (en) * | 1994-11-08 | 1999-10-05 | National Semiconductor Corporation | Address translation unit employing programmable page size |
US6523104B2 (en) * | 2001-07-13 | 2003-02-18 | Mips Technologies, Inc. | Mechanism for programmable modification of memory mapping granularity |
US20040054867A1 (en) | 2002-09-13 | 2004-03-18 | Paulus Stravers | Translation lookaside buffer |
US7783859B2 (en) * | 2007-07-12 | 2010-08-24 | Qnx Software Systems Gmbh & Co. Kg | Processing system implementing variable page size memory organization |
US7917725B2 (en) * | 2007-09-11 | 2011-03-29 | QNX Software Systems GmbH & Co., KG | Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer |
JP2010244165A (ja) | 2009-04-02 | 2010-10-28 | Renesas Electronics Corp | 半導体集積回路、及び半導体集積回路の制御方法 |
US10133676B2 (en) * | 2010-07-28 | 2018-11-20 | Rambus Inc. | Cache memory that supports tagless addressing |
-
2013
- 2013-05-29 CN CN201310207412.8A patent/CN104216833B/zh active Active
- 2013-12-02 WO PCT/CN2013/088294 patent/WO2014190701A1/zh active Application Filing
- 2013-12-02 EP EP13885481.5A patent/EP3007071A1/en not_active Withdrawn
- 2013-12-02 JP JP2016515608A patent/JP6085394B2/ja active Active
- 2013-12-02 KR KR1020157036578A patent/KR101782452B1/ko active IP Right Grant
-
2015
- 2015-11-25 US US14/951,608 patent/US10303619B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526504A (en) * | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
US5630088A (en) * | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
CN101661437A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
CN102662860A (zh) * | 2012-03-15 | 2012-09-12 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3007071A4 (en) | 2016-04-13 |
US10303619B2 (en) | 2019-05-28 |
US20160098357A1 (en) | 2016-04-07 |
EP3007071A1 (en) | 2016-04-13 |
KR20160014001A (ko) | 2016-02-05 |
KR101782452B1 (ko) | 2017-09-28 |
WO2014190701A1 (zh) | 2014-12-04 |
JP2016522503A (ja) | 2016-07-28 |
CN104216833A (zh) | 2014-12-17 |
JP6085394B2 (ja) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Teng et al. | LSbM-tree: Re-enabling buffer caching in data management for mixed reads and writes | |
CN104216833B (zh) | 一种确定物理地址的方法及装置 | |
US20120324157A1 (en) | Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure | |
CN102662869B (zh) | 虚拟机中的内存访问方法和装置及查找器 | |
CN108268586A (zh) | 跨多数据表的数据处理方法、装置、介质和计算设备 | |
CN105830022A (zh) | 访问文件的方法和装置 | |
CN103914483B (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN108304484A (zh) | 关键词匹配方法及装置、电子设备和可读存储介质 | |
Yang et al. | High throughput and large capacity pipelined dynamic search tree on fpga | |
CN106560798A (zh) | 一种内存访问方法、装置及计算机系统 | |
US20130297877A1 (en) | Managing buffer memory | |
CN104516822A (zh) | 一种内存访问方法和设备 | |
CN101661437A (zh) | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 | |
US7590820B2 (en) | Efficient algorithm for multiple page size support in IPF long format VHPT | |
US9627065B2 (en) | Memory equipped with information retrieval function, method for using same, device, and information processing method | |
CN109189994A (zh) | 一种面向图计算应用的cam结构存储系统 | |
CN111813709A (zh) | 一种基于fpga存算一体架构的高速并行存储方法 | |
JP2004530962A (ja) | キャッシュメモリおよびアドレス指定方法 | |
CN103984647B (zh) | 存储表替换方法 | |
CN108647243A (zh) | 基于时间序列的工业大数据存储方法 | |
CN104636268B (zh) | 一种可重构缓存产品与方法 | |
CN105302912A (zh) | 一种数据存储方法及设备 | |
JP7462191B2 (ja) | 検索方法及び検索装置 | |
Peir et al. | Implementation issues in modern cache memory | |
Polyntsov et al. | Implementing the comparison-based external sort |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |