本发明专利技术涉及用于快速进程切换的旁路转换缓冲器(TLB)及在其中进行地址匹配的的方法。所述的TLB存储包括标记阵列和数据阵列,每一个虚拟页映射信息都缓存在地址相同的标记阵列和数据阵列的一个条目中。还提供了在所述TLB中进行地址匹配的方法。主要步骤包括通过处理器内部特殊寄存器总线根据进程对搜索优先级寄存器进行配置,设定搜索页面尺寸的优先级。哈希变换电路根据虚拟地址页号和进程号进行散列变换。采用比较逻辑将内存管理单元输入的虚拟地址页号和进程号和当前使用的搜索优先级寄存器的页尺寸与标记阵列输出的条目信息进行比较。虚拟地址页偏移量和物理地址页号通过物理地址拼接逻辑进行拼接得出物理地址,得出物理地址。
【技术实现步骤摘要】
本专利技术属于计算机存储领域,尤其是有标记阵列和数据阵列的TLB及在此种TLB中地址匹配的方法。
技术介绍
现代的微处理器系统大都使用虚拟地址(VA)寻址,使用虚拟地址技术可以创建比实际物理地址(PA)大的多的寻址空间。大多数使用虚拟存储器的系统都使用一种称为 分页(paging)机制。虚拟地址空间划分成称为页(page)的单位,而相应的物理地址空间也被进行划分。而在使用了虚拟存储器的情况下,虚拟地址不是被直接送到内存地址总线上,而是送到内存管理单元(MMU),把虚拟地址映射为物理地址。包含有虚拟地址到实际物理地址映射关系的信息通常被放在一个被称作页表的数据结构中。页表通常是放在系统主存储器中,因此对页表的访问带来了大量的主存储器的访问开销。为了减少对主存储器的访问次数,许多处理器系统使用一个叫旁路转换缓冲器(TLB)的高速缓存,TLB存储了处理器最近访问内存的虚拟地址和物理地址。在进行虚拟地址到物理地址转换时,内存管理单元首先搜索TLB,如果请求的虚拟地址到物理地址的映射关系缓存在TLB中,发生TLB命中(TLB Hit),则直接取出其物理地址,如果没有,发生TLB缺失(TLB Miss),再访问主存储器中的页表,并更新TLB。如何避免TLB频繁出现TLB Miss和提高TLB查找操作时的速度是TLB设计时两个重要的考虑因素。避免TLB频繁出现TLB Miss要求页表在TLB中缓存时要均匀地分布,这样就减少了 TLB替换的可能性,从而减少了 TLB Miss的几率。为了追求TLB最均匀分布,有些TLB设计采用全相联(Full Associative)结构,TLB中每一条目都可以缓存任意一条虚拟页映射信息。但是这样在TLB查找操作时需要大量的时间,因为要遍历TLB的每一个条目和虚拟地址相关信息比较。为了减少TLB时间,有些设计又采用了可寻址存储器(CAM)设计,这样又极大增加了设计的复杂性和硬件开销。如今多进程已经逐渐成为系统应用的主流,在多进程应用场景中,每个进程都有独立的虚拟地址空间。同时现代处理器往往支持多种尺寸的页,如4KB,16KB, 64KB, IMB, 256MB, IGB等。因此在多进程,多种页尺寸下,在TLB中缓存页表时,均匀分布性问题必须要充分考虑,否则会频繁的发生TLB替换从而导致TLBMiss,导致系统性能下降特别是进程切换时间变长。
技术实现思路
考虑到上述TLB设计中的问题,本专利技术提供了一种用于快速进程切换的TLB设计方法,非常适合于追求硬件成本和进程切换速度的应用。根据本专利技术的第一方面提供一种用于进程切换的旁路转换缓冲器(TLB),所述的TLB存储包括标记阵列(Tag Array)和数据阵列(Data Array)每一个虚拟页映射信息都缓存在地址相同的Tag Array和Data Array的一个条目中。进一步地,在所述的用于进程切换的旁路转换缓冲器(TLB)中,所述的标记阵列条目存储包括虚拟页号(VPN)、有效位(V)、页尺寸(PSize)、进程号(PID)。所述的数据阵列(Data Array)条目存储包括物理页号(PPN)和页属性(PAttr)。进一步地,所述的TLB还包括与哈希(Hash)变换电路连接的搜索优先级寄存器和与标记阵列(Tag Array)相连接的比较逻辑电路。根据本专利技术的另一方面一种采用快速进程切换的旁路转换缓冲器进行有效地址匹配的方法,其中所述有效地址包括虚拟地址页偏移量和物理地址页号,所述的TLB存储包括(Tag Array)和数据阵列(Data Array)每一 个虚拟页映射信息都缓存在地址相同的Tag Array 和 Data Array 的一个条目中。包括以下步骤I.通过处理器内部特殊寄存器总线对搜索优先级寄存器进行配置根据进程设定搜索页面尺寸的优先级。2.哈希(Hash)变换电路根据虚拟地址页号和进程号进行散列变换。3.采用比较逻辑将内存管理单元输入的虚拟地址页号和进程号和当前使用的搜索优先级寄存器的页尺寸与标记阵列输出的条目信息进行比较。进一步地,所述的比较逻辑用于比较虚拟地址页号和标记阵列输出的条目信息是否相等的比较包括以下比较内容(I)虚拟地址页号和标记阵列输出的条目信息的VPN是否相等。(2)进程号与标记阵列输出的条目信息的PID是否相等。(3)当前遍历的页尺寸与标记阵列输出的条目信息的Psize。本专利技术将不同进程,不同尺寸页在TLB中缓存时分布的均匀性得到了充分的考虑,显著降低了 TLB替换的可能性,从而显著降低了发生TLB Miss的可能性,可以快速的进行进程切换。搜索优先级寄存器的设计更加提高了进程切换时进行TLB查找操作的速度。本专利技术设计简单,硬件成本低。附图说明图I是本专利技术所提供的一种快速进程切换的旁路转换器的结构示意2是一种搜索优先级寄存器的结构示意3是根据一个实施例的有效地址匹配的方法的流程示意图具体实施例方式下面结合附图来说明本专利技术的具体实施方式。如前所述根据本专利技术的第一方面提供一种用于进程切换的旁路转换缓冲器(TLB),所述的TLB存储包括标记阵列(TagArray)和数据阵列(Data Array)和TLB条目寻址电路每一个虚拟页映射信息都缓存在地址相同的Tag Array和Data Array的一个条目中。对标记阵列A8写操作的输入数据来自内存管理单元,包括有效位(V)A17,页面尺寸(Psize)A2,虚拟地址页号(VPN)A3,进程号(PID)A4。对数据阵列A9写操作的输入数据来自内存管理单元,包括物理页号和页属性Al。当系统切换进程以前,需要通过处理器内部特殊寄存器总线A16进行配置的搜索优先级寄存器,按照进程虚拟地址页尺寸的特征通过处理器内部特殊寄存器总线A16更新搜索优先级寄存A7,符合本专利技术要求的一个设计实例如图2所示,该实例应用于支持4种页尺寸的场景。在该实例中,这4种页尺寸为4KB,64KB,1MB和16MB。该实例有8bit,每2bit表示一个优先级,如图2所示。优先级按照从高到低为优先级1B1,优先级2B2,优先级2B3,优先级2B4。每个优先级所设置的页尺寸编码为B5。所示哈希(Hash)变换电路A6主要用于进行TLB匹配操作和TLB更新或替换操作时,根据虚拟地址页号A3和进程号A4进行TLB条目地址的定位,即将虚拟地址页号A3和进程号A4作为哈希变换电路A6的输入部分进行散列变换操作。哈希电路根据搜索优先级寄存器提供的最先优先级页面尺寸选择相应的散列变换公式,将内存管理单元输入的虚拟地址页号A3和进程号A4按照变换公式运算,得到TLB标记阵列AS和数据阵列A9条目地址。标记阵列AS根据所得到的输出条目信息AlO到比较逻辑All。比较逻辑All用内存管理单元输入的虚拟地址页号A3和进程号A4,当前使用的搜索优先级寄存器A7的页尺寸同标记阵列AS输出的条目信息AlO相比较,如果该条目有效并且比较通过,则产生TLB命中(Hit)A14,数据阵列A9按照和步骤S6中标记阵列AS相同的地址输出条目信息A18,虚拟地址页号A3对应的物理地址页号(PPN)A19产生。新进程的物理地址由内存管理单元输入的虚拟地址页偏移量A5和步骤S8数据阵列A9的输出的条目信息A18的物理地址页号(PPN)本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:李楠,王忠海,肖佐楠,郑茳,
申请(专利权)人:天津国芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。