专利名称:一种从虚拟地址向物理地址变换的方法及其装置的制作方法
技术领域:
本发明涉及微处理器体系结构技术领域,特别涉及处理器中负责将虚拟地址转换为物理地址的翻译后援缓冲器(TLB,Translation Lookaside Buffer)的设计方法,即涉及从虚拟地址向物理地址变换的方法及其装置。
背景技术:
在虚拟存储系统中,必须将虚拟地址转换为物理地址,处理器的存储器管理部件中的翻译后援缓冲器就是为了加速这种地址转换而设计的,翻译后援缓冲器中存储各个逻辑页地址和物理页地址的表项,并且建立起两者的映射关系,这样在处理器内部就可以完成从虚拟地址到物理地址的映射过程,加速从虚拟地址到物理地址的变换。
翻译后援缓冲器通常由两部分组成,一部分是存储虚拟地址页表项,用于同访问的虚拟地址进行全相连比较的内容比较器(CAM),另一部分是存储物理地址页表项,通过索引查找的随机存储器(RAM)。当一个访存地址访问翻译后援缓冲器时,先并行地在内容比较器中查找与访存地址匹配的虚拟页表项,查到后,根据查到位置的索引访问随机存储器,得到访问地址对应的物理地址所处的物理页表项。
由于处理器有取指令和数据访存两个并行的过程,而无论取指令还是数据访存,都需要访问翻译后援缓冲器部件,进行将虚拟地址转换为物理地址的过程,传统的翻译后援缓冲器实现方法有两种一种是使用两个翻译后援缓冲器,即指令翻译后援缓冲器(ITLB,Instruction Translation Lookaside Buffer)和数据翻译后援缓冲器(DTLB,DataTranslation Lookaside Buffer),分别处理取指令和数据访存操作;另一种是使用一个共用翻译后援缓冲器,即接受取指令的访问,又接受数据访存的访问。传统设计中第一个方法的缺点是电路面积很大,功耗也很高,而传统设计的第二个方法的缺点是处理器的性能会受到负面影响,因为同时出现取指令和数据访存时,无法同时处理,必须延迟其中一个访问的处理,如果第二种方法采用双端口的内容比较器和双端口的随机存储器的话,又会导致电路面积增大,功耗增加的缺点。
发明内容
本发明所要解决的技术问题是提供一种从虚拟地址向物理地址变换的方法及其装置,以克服现有技术的缺陷,降低翻译后援缓冲器电路的面积和功耗,同时还不影响处理器的性能。
为了解决上述技术问题,本发明提供一种从虚拟地址向物理地址变换的方法包括以下步骤a)指令翻译后援缓冲器和数据翻译后援缓冲器将此次取指/数据的虚地址同上一次取指的虚地址/数据虚地址相比较;b)判断是否属相同页表或可直接映射空间,如果是,执行步骤g),如果否,执行下一步;c)指令翻译后援缓冲器和数据翻译后援缓冲器共用一个单读端口随机存储器,接受对物理地址的查询;d)指令翻译后援缓冲器和数据翻译后援缓冲器在寄存器中保存变换得到的物理地址;e)指令翻译后援缓冲器和/或数据翻译后援缓冲器对这两个来源(本次变换和上次变换)的物理地址进行选择;f)使用选择出的物理地址,输出需要的结果信号;g)不访问随机存储器,使用保存的上次变换的地址,执行步骤e)。
在上述方案中,在所述步骤a)、b)和g)中,有下面两种情况,虚拟地址变换到物理地址时不访问翻译后援缓冲器的随机存储器,一种是将每次取指操作引发的需要进行变换的地址同上一次取指操作引发的已经完成变换的地址进行比较,如果同上一次的地址落在了同一个虚拟页表项中,则不再访问随机存储器,而直接利用上一次变换得到的物理页表地址结果,数据访存引发的地址变换也使用同取指引发的地址变换相同的处理过程,另一种情况是,对于取指令和数据访存操作引起的虚拟地址到物理地址的变换,如果虚拟地址所处的地址空间为直接映射空间,不需要查找翻译后援缓冲器的映射关系表项就能完成的地址映射,不访问翻译后援缓冲器的随机存储器。
在上述方案中,在所述步骤d)和e)中,如果下一次地址变换时虚拟地址同此次要变换的虚拟地址在同一页表内,则使用寄存器中保存的物理地址,否则查询翻译后援缓冲器的随机存储器,使用随机存储器输出的物理页表地址。
本发明提供的一种从虚拟地址向物理地址变换的装置,包括用于存放和比较虚拟页表地址的内容比较器电路和存放物理页表地址的随机存储器电路,取指令和数据访存拥有各自的内容比较器电路,即第一内容比较器电路和第二内容比较器电路,以及对这所述两个内容比较器电路比较输出的索引进行选择的第一二选一电路,并且取指令与数据访存共用一个只有一个读端口的随机存储器电路,还包括此次取指变换的虚拟地址和上次取指变换的虚拟地址之间进行比较判断取指虚地址是否属相同页表或可直接映射空间的第一比较电路和第一判断电路,此次数据访存变换的虚拟地址和上次数据访存变换的虚拟地址之间的第二比较电路和第二判断电路,保存取指上次变换后得到的物理页表地址的第一寄存器组和保存数据访存上次变换后得到的物理页表地址的第二寄存器组,以及所述第一寄存器组与随机存储器输出间的第二二选一电路,第二寄存器组与随机存储器输出间的第三二选一电路,及通过使用第二二选一电路输出结果的第三比较电路,使用第三二选一电路输出结果的第四比较电路,最终输出需要的结果信号。
在上述方案中,所述第三比较电路为指令高速缓存的标记比较电路,用于比较指令高速缓存的标记值和所述第一寄存器组中的内容,输出1位结果信号;所述第四比较电路为数据高速缓存的标记比较电路,用于比较数据高速缓存的标记值和随机存储器输出的物理页表地址的内容,输出1位结果信号。
在上述方案中,所述单读端口随机存储器电路,用于保持物理页表地址和相关控制信号的随机存储器,指令翻译后援缓冲器和数据翻译后援缓冲器共用所述单读端口随机存储器电路,所述单读端口随机存储器电路优先处理取指的地址变换访问。
在上述方案中,所述单读端口随机存储器电路可以替换为单读端口寄存器堆电路。
在上述方案中,所述第一比较电路和第一判断电路,用于生成访问随机存储器的使能信号,如果前后两次变换的地址不在同一页表,并且此次变换的地址不属于可直接映射空间,才访问随机存储器。
在上述方案中,所述第二比较电路和第二判断电路,用于生成访问随机存储器的使能信号,如果前后两次变换的地址不在同一页表,并且此次变换的地址不属于可直接映射空间,才访问随机存储器。
在上述方案中,所述第二二选一电路在指令后援缓冲器访问随机存储器后,使用随机存储器输出结果,否则使用第一寄存器组输出结果;所述第三二选一电路在数据后援缓冲器访问随机存储器后,使用随机存储器输出结果,否则使用第二寄存器组输出结果。
由上可知,本发明的方法和装置通过创新设计,利用数据局部性,将需要变换成物理地址的虚拟地址同上次变换的虚拟地址相比较,如果同属一个虚拟页表,则不访问翻译后援缓冲器的随机存储器部分,而直接利用上次变换得到的物理页表地址,以减少对翻译后援缓冲器中随机存储器的访问次数;而且指令翻译后援缓冲器和数据翻译后援缓冲器共用一个单读端口随机存储器,这样可以达到降低翻译后援缓冲器部分的功耗和面积的效果,同时又不会降低处理器的性能。
图1是本发明从虚拟地址向物理地址变换的方法另一实施例的流程图;图2是本发明从虚拟地址向物理地址变换的装置另一实施例的示意框图。
具体实施例方式
下面参照附图详细说明本发明的技术方案。本申请人同日还申请了另一发明名称为“改进的虚拟地址变换方法及其装置”的专利,在此一并作为参考。
本发明的目的是改进从虚拟地址到物理地址的变换过程,降低翻译后援缓冲器电路的面积和功耗,同时还不影响处理器的性能。
下面参见附图详细说明本发明的技术方案。
如图1所示,一种从虚拟地址向物理地址变换的方法,包括以下步骤步骤10,指令翻译后援缓冲器和数据翻译后援缓冲器将此次取指/数据的虚地址同上一次取指的虚地址/数据虚地址相比较。
步骤11,判断是否属相同页表或可直接映射空间,如果是,执行步骤g),如果否,执行下一步。
步骤10、11和16中,在下面两种情况下,虚拟地址变换到物理地址时不访问翻译后援缓冲器的随机存储器,一种是将每次取指操作引发的需要进行变换的地址同上一次取指操作引发的已经完成变换的地址进行比较,如果同上一次的地址落在了同一个虚拟页表项中,则不再访问随机存储器,而直接利用上一次变换得到的物理页表地址结果,数据访存引发的地址变换也使用同取指引发的地址变换相同的处理过程,由于处理器取指和访存都有很高的局部性,这样的设计可以很大程度减少对随机存储器的访问次数,起到降低功耗的目的。另一种情况是,对于取指令和数据访存操作引起的虚拟地址到物理地址的变换,如果虚拟地址所处的地址空间为直接映射空间(unmapped),不需要查找翻译后援缓冲器的映射关系表项就能完成的地址映射,不访问翻译后援缓冲器的随机存储器,这样通过减少访问翻译后援缓冲器的随机存储器的方法,可以使随机存储器更长时间处于低功耗状态;步骤12,指令翻译后援缓冲器和数据翻译后援缓冲器共用一个单读端口随机存储器,接受对物理地址的查询,由于采用步骤11的设计,地址变换时访问翻译后援缓冲器的随机存储器的次数会明显减少,所以在指令翻译后援缓冲器和数据翻译后援缓冲器共用一个随机存储器时,两者发生冲突的情况很少,并不会影响处理器的性能;步骤13,指令翻译后援缓冲器和数据翻译后援缓冲器在寄存器中保存变换得到的物理地址。
步骤14,指令翻译后援缓冲器和/或数据翻译后援缓冲器对这两个来源(本次变换和上次变换)的物理地址进行选择。
步骤15,使用选择出的物理地址,输出需要的结果信号。
在步骤13——步骤15中,如果下一次地址变换时虚拟地址同此次要变换的虚拟地址在同一页表内,则使用寄存器中保存的物理地址,否则查询翻译后援缓冲器的随机存储器,使用随机存储器输出的物理页表地址。
步骤16,不访问随机存储器,使用保存的上次变换的地址。
下面结合图2详细说明对应图1中示出方法的本发明实施例的装置。
如图2所示,从虚拟地址向物理地址变换的装置包括第一比较电路100,第二比较电路130,第三比较电路220,第四比较电路230,第一内容比较器电路110,第二内容比较器电路120,第一判断电路140,第二判断电路150,第一二选一电路160,第二二选一电路200,第三二选一电路210,第一寄存器组180,第二寄存器组190和单读端口随机存储器电路170。
第一比较电路100用于同上次取指虚地址进行比较,第一判断电路140用于判断取址虚地址是否属相同页表或可直接映射空间,第一内容比较器电路110,用于取指令虚拟地址的查询,第二内容比较器电路120,用于数据访存虚拟地址的查询,第二比较电路130用于同上一次数据访存虚地址进行比较,第二判断电路150用于判断数据访存虚拟地址是否属相同页表或可直接映射空间;第一二选一电路160用于指令翻译后援缓冲器和数据翻译后援缓冲器各自的内容比较器在比较后产生的两个索引进行选择,单读端口随机存储器电路170,用于保持物理页表地址和相关控制信号的随机存储器,指令翻译后援缓冲器和数据翻译后援缓冲器共用(也可以选择寄存器堆等替代电路),优先处理取指的地址变换访问,第一寄存器组180,用于存储上次取指地址变换后的物理页表地址,第二寄存器组190用于存储上次数据访存变换后的物理页表地址,以上结构与共同申请案,发明名称为“改进的虚拟地址变换方法及其装置”的专利中图2对应部分示出的实施例相同。
不同之处在于,第二二选一电路200用于选择第一寄存器组180输出的上次的物理页表地址和单读端口随机存储器电路170输出的物理页表地址之一,第三二选一电路210用于选择第二寄存器组190输出的上次的物理页表地址和单读端口随机存储器电路170输出的物理页表地址之一;第三比较电路220用于比较第二二选一电路200输出的物理页表地址和指令高速缓存的标记,输出需要的结果信号,第四比较电路230,用于比较第三二选一电路210输出的物理页表地址和数据高速缓存的标记,输出需要的结果信号。本装置所用到的电路都可以从各芯片代工厂(如“中芯国际”、“台积电”)公开提供的标准单元库中得到。
由上述可知,本发明的优点是有效降低了翻译后援缓冲器的功耗和面积,同时又避免了对处理器性能的影响。本发明中使用的方法可以明显减少指令翻译后援缓冲器和数据翻译后援缓冲器对随机存储器的访问量,从而大大减少了指令翻译后援缓冲器和数据翻译后援缓冲器同时访问随机存储器的冲突,这使得指令翻译后援缓冲器和数据翻译后援缓冲器共用一个单端口随机存储器也不会影响处理器的性能,同时又降低了翻译后援缓冲器的功耗和面积。
最后应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种从虚拟地址向物理地址变换的方法,其特征在于,包括以下步骤a)指令翻译后援缓冲器和数据翻译后援缓冲器将此次取指/数据的虚地址同上一次取指的虚地址/数据虚地址相比较;b)判断是否属相同页表或可直接映射空间?如果是,执行步骤g),如果否,执行下一步;c)指令翻译后援缓冲器和数据翻译后援缓冲器共用一个单读端口随机存储器,接受对物理地址的查询;d)指令翻译后援缓冲器和数据翻译后援缓冲器在寄存器中保存变换得到的物理地址;e)指令翻译后援缓冲器和/或数据翻译后援缓冲器对本次变换和上次变换的物理地址两个来源进行选择;f)使用选择出的物理地址,输出需要的结果信号;g)不访问随机存储器,使用保存的上次变换的地址,执行步骤e)。
2.如权利要求1所述的一种从虚拟地址向物理地址变换的方法,其特征在于,在所述步骤a)、b)和g)中,有下面两种情况,虚拟地址变换到物理地址时不访问翻译后援缓冲器的随机存储器,一种是将每次取指操作引发的需要进行变换的地址同上一次取指操作引发的已经完成变换的地址进行比较,如果同上一次的地址落在了同一个虚拟页表项中,则不再访问随机存储器,而直接利用上一次变换得到的物理页表地址结果,数据访存引发的地址变换也使用同取指引发的地址变换相同的处理过程,另一种情况是,对于取指令和数据访存操作引起的虚拟地址到物理地址的变换,如果虚拟地址所处的地址空间为直接映射空间,不需要查找翻译后援缓冲器的映射关系表项就能完成的地址映射,不访问翻译后援缓冲器的随机存储器。
3.如权利要求1所述的一种从虚拟地址向物理地址变换的方法,其特征在于,在所述步骤d)和e)中,如果下一次地址变换时虚拟地址同此次要变换的虚拟地址在同一页表内,则使用寄存器中保存的物理地址,否则查询翻译后援缓冲器的随机存储器,使用随机存储器输出的物理页表地址。
4.一种从虚拟地址向物理地址变换的装置,包括用于存放和比较虚拟页表地址的内容比较器电路和存放物理页表地址的随机存储器电路,其特征在于取指令和数据访存拥有各自的内容比较器电路,即第一内容比较器电路和第二内容比较器电路,以及对这所述两个内容比较器电路比较输出的索引进行选择的第一二选一电路,并且取指令与数据访存共用一个只有一个读端口的随机存储器电路,还包括此次取指变换的虚拟地址和上次取指变换的虚拟地址之间进行比较判断取指虚地址是否属相同页表或可直接映射空间的第一比较电路和第一判断电路,此次数据访存变换的虚拟地址和上次数据访存变换的虚拟地址之间的第二比较电路和第二判断电路,保存取指上次变换后得到的物理页表地址的第一寄存器组和保存数据访存上次变换后得到的物理页表地址的第二寄存器组,以及所述第一寄存器组与随机存储器输出间的第二二选一电路,第二寄存器组与随机存储器输出间的第三二选一电路,及通过使用第二二选一电路输出结果的第三比较电路,使用第三二选一电路输出结果的第四比较电路,最终输出需要的结果信号。
5.如权利要求4所述的一种从虚拟地址向物理地址变换的装置,其特征在于,所述第三比较电路为指令高速缓存的标记比较电路,用于比较指令高速缓存的标记值和所述第二二选一电路选出的物理页表地址,输出1位结果信号;所述第四比较电路为数据高速缓存的标记比较电路,用于比较数据高速缓存的标记值和所述第三二选一电路选出的物理页表地址,输出1位结果信号。
6.如权利要求4所述的一种从虚拟地址向物理地址变换的装置,其特征在于,所述单读端口随机存储器电路,是用于保持物理页表地址和相关控制信号的随机存储器,指令翻译后援缓冲器和数据翻译后援缓冲器共用所述单读端口随机存储器电路,所述单读端口随机存储器电路优先处理取指/或数据访存的地址变换访问。
7.如权利要求6所述的一种从虚拟地址向物理地址变换的装置,其特征在于,所述单读端口随机存储器电路可以替换为单读端口寄存器堆电路。
8.如权利要求4所述的一种从虚拟地址向物理地址变换的装置,其特征在于,所述第一比较电路和第一判断电路,用于生成访问随机存储器的使能信号,如果前后两次取指虚拟地址变换的地址不在同一页表,并且此次取指虚拟地址变换的地址不属于可直接映射空间,才访问随机存储器。
9.如权利要求4所述的一种从虚拟地址向物理地址变换的装置,其特征在于,所述第二比较电路和第二判断电路,用于生成访问随机存储器的使能信号,如果前后两次数据访存虚拟地址变换的地址不在同一页表,并且此次数据访存虚拟地址变换的地址不属于可直接映射空间,才访问随机存储器。
10.如权利要求4所述的一种从虚拟地址向物理地址变换的装置,其特征在于,所述第二二选一电路在指令后援缓冲器访问随机存储器后,使用随机存储器输出结果,否则使用第一寄存器组输出结果;所述第三二选一电路在数据后援缓冲器访问随机存储器后,使用随机存储器输出结果,否则使用第二寄存器组输出结果。
全文摘要
本发明公开了一种从虚拟地址向物理地址变换的方法及其装置,利用数据局部性,将需要变换成物理地址的虚拟地址同上次变换的虚拟地址相比较,如果同属一个虚拟页表,则不访问翻译后援缓冲器(TLB)的随机存储器(RAM)部分,而直接利用上次变换得到的物理页表地址,以减少对翻译后援缓冲器中随机存储器的访问次数;而且指令翻译后援缓冲器(ITLB)和数据翻译后援缓冲器(DTLB)共用一个单读端口随机存储器,这样可以达到降低翻译后援缓冲器部分的功耗和面积的效果,同时又不会降低处理器的性能。
文档编号G06F12/10GK1779663SQ200410091378
公开日2006年5月31日 申请日期2004年11月24日 优先权日2004年11月24日
发明者范东睿, 唐志敏 申请人:中国科学院计算技术研究所