CN101681308A - 计算机、tlb控制方法以及tlb控制程序 - Google Patents
计算机、tlb控制方法以及tlb控制程序 Download PDFInfo
- Publication number
- CN101681308A CN101681308A CN200780053345A CN200780053345A CN101681308A CN 101681308 A CN101681308 A CN 101681308A CN 200780053345 A CN200780053345 A CN 200780053345A CN 200780053345 A CN200780053345 A CN 200780053345A CN 101681308 A CN101681308 A CN 101681308A
- Authority
- CN
- China
- Prior art keywords
- address
- address translation
- page
- tlb
- reading
- 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.)
- Granted
Links
Images
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
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- 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
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,和保持主TLB中保持的页表的一部分的微TLB。此外,在微TLB中,将TLB虚拟地址[63:13]与TLB绝对地址[46:13]对应登记。在这种结构中,计算机在向微TLB登记时,切割为8K或者4M的页大小并登记到微TLB。并且,在接收到地址转换请求后,计算机结合微TLB中登记的8K或者4M中的任一种页大小来搜索地址,因此能够减少地址比较条件,提高处理性能。
Description
技术领域
该发明涉及包括将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB的计算机、TLB控制方法以及TLB控制程序。
背景技术
以前,在使用虚拟存储方式的计算机中,用于进行从虚拟地址(VA:Virtual address)到物理地址(PA:physical address)的转换的称作页表的列表被存储在主存(主存储器,main memory)中。如果计算机每次进行地址转换时都参照位于主存内的页表进行,则会花费非常多的时间,因此,通常在CPU内设置称作TLB(地址转换缓冲器:Translation-Lookasaide buffer)的地址转换专用的高速缓存(cache)。
并且,计算机中的运算部和命令控制部在进行存储器访问时,利用TLB将虚拟地址转换为物理地址,使用物理地址直接对存储器进行访问,因此TLB的访问速度直接影响存储器访问的速度。为了加快TLB的访问,必须减小TLB的容量,但是如果过小,则经常发生TLB未中,使访问时间增大。另一方面,在使TLB的容量增大的情况下,搜索花费的时间变大,成为阻碍硬件性能提高的原因。对此,作为在缩短访问时间的同时提高硬件性能的方法,往往采用由两层构成TLB的方法。
两层TLB由以大容量保持从主存传输的地址转换对的MTLB(主TLB)和保持过去搜索的地址转换信息的小容量的MTLB(微TLB)构成。在微TLB中,在进行地址转换时,使用Request请求的虚拟地址与上下文位、TLB中登记的TLB虚拟地址与TLB上下文位和页大小信息进行地址转换对(项(entry))的搜索,如果与有效项匹配,则转换为绝对地址。
TLB中登记的项的页大小有8K、64K、512K、4M、32M、256M字节这6种。此外,根据页大小不同,存在虚拟地址的页偏移,因此,微TLB在进行地址转换时,根据请求的项的页大小,分别判断并排除要比较的虚拟地址的偏移地址,仅使用有效的虚拟地址进行地址转换搜索(参照专利文献1)。
专利文献1:日本特开平5-225064号公报
但是,上述以往的技术由于地址比较条件多,所以存在处理性能降低的问题。具体说明该问题,如图7所示,在从CPU的运算部或命令控制部对微TLB输出的搜索请求中,附加了虚拟地址和与页大小对应的偏移。并且,微TLB将根据输入的搜索请求计算出偏移并将其从搜索请求中除去后的虚拟地址与已登记的虚拟地址进行比较,在一致的情况下应答绝对地址。在此,由于根据页大小附加的偏移不同,所以如图8所示,微TLB按每个页大小保持比较电路,该比较电路检测输入的搜索请求的页大小并除去偏移、比较计算出的虚拟地址。其结果是,微TLB对输入的搜索请求的地址比较条件增多,处理性能降低。另外,图7是用于说明以前的技术的图,图8是表示以前的技术中的地址转换对搜索电路的例子的图。
发明内容
因此,该发明是为了解决上述以往技术的问题而完成的,其目的是提供一种能够减少地址比较条件、提高处理性能的计算机、TLB控制方法以及TLB控制程序。
为了解决上述问题,实现目的,技术方案1涉及的发明是一种计算机,具有将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB,其特征在于包括:页大小检测单元,在读出所述主TLB中保持的地址转换对并登记到微TLB时,检测读出的地址转换对的页大小;位数决定单元,根据所述页大小检测单元检测出的页大小,将所述读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数;登记单元,对所述位数决定单元决定的位数附加虚拟地址,并且将表示已切割为所述规定的页大小的切割信息附加到所述切割后的地址转换对,并登记到微TLB;地址搜索单元,在从处理器接收到从所述虚拟地址向物理地址的地址转换请求的情况下,根据由所述登记单元登记到微TLB的地址转换对的切割信息,决定用于搜索所述微TLB中登记的地址转换对的所述地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对;以及地址应答单元,在所述地址搜索单元从微TLB中搜索到将由搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在所述地址搜索单元未搜索到地址转换对的情况下,向主TLB发送所述地址转换请求。
此外,技术方案2涉及的发明的特征在于,在上述发明的基础上,所述页大小检测单元检测读出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种;所述位数决定单元在所述页大小检测单元检测出读出的地址转换对的页大小是64K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是15位至13位,在所述页大小检测单元检测出读出的地址转换对的页大小是512K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是18位至13位,在所述页大小检测单元检测出读出的地址转换对的页大小是32M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是24位至22位,在所述页大小检测单元检测出读出的地址转换对的页大小是256M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是27位至22位,在所述页大小检测单元检测出读出的地址转换对的页大小是8K或者4M的情况下,不切割所述读出的地址转换对,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是0位;所述地址搜索单元在从处理器接收到所述地址转换请求的情况下,根据所述登记单元在微TLB中登记的地址转换对的切割信息,决定与8K或者4M对应的地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对。
此外,技术方案3涉及的发明是一种TLB控制方法,适用于具有将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB的计算机,其特征在于包括:页大小检测步骤,在读出所述主TLB中保持的地址转换对并登记到微TLB时,检测读出的地址转换对的页大小;位数决定步骤,根据所述页大小检测步骤检测出的页大小,将所述读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数;登记步骤,对所述位数决定步骤决定的位数附加虚拟地址,并且将表示已切割为所述规定的页大小的切割信息附加到所述切割后的地址转换对,并登记到微TLB;地址搜索步骤,在从处理器接收到从所述虚拟地址向物理地址的地址转换请求的情况下,根据由所述登记步骤登记到微TLB的地址转换对的切割信息,决定用于搜索所述微TLB中登记的地址转换对的所述地址转换请求的搜索对象位,从所述微TLB中搜索将由决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对;以及地址应答步骤,在所述地址搜索步骤从微TLB中搜索到将由搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在所述地址搜索步骤未搜索到地址转换对的情况下,向主TLB发送所述地址转换请求。
此外,技术方案4涉及的发明的特征在于,在上述发明的基础上,所述页大小检测步骤检测读出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种;所述位数决定步骤在所述页大小检测步骤检测出读出的地址转换对的页大小是64K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是15位至13位,在所述页大小检测步骤检测出读出的地址转换对的页大小是512K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是18位至13位,在所述页大小检测步骤检测出读出的地址转换对的页大小是32M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是24位至22位,在所述页大小检测步骤检测出读出的地址转换对的页大小是256M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是27位至22位,在所述页大小检测步骤检测出读出的地址转换对的页大小是8K或者4M的情况下,不切割所述读出的地址转换对,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是0位;所述地址搜索步骤在从处理器接收到所述地址转换请求的情况下,根据所述登记步骤在微TLB中登记的地址转换对的切割信息,决定与8K或者4M对应的地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对。
此外,技术方案5涉及的发明是一种TLB控制程序,由作为具有将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB的计算机的计算机执行,其特征在于包括:页大小检测过程,在读出所述主TLB中保持的地址转换对并登记到微TLB时,检测读出的地址转换对的页大小;位数决定过程,根据所述页大小检测过程检测出的页大小,将所述读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数;登记过程,对所述位数决定过程决定的位数附加虚拟地址,并且将表示已切割为所述规定的页大小的切割信息附加到所述切割后的地址转换对,并登记到微TLB;地址搜索过程,在从处理器接收到从所述虚拟地址向物理地址的地址转换请求的情况下,根据由所述登记过程登记到微TLB的地址转换对的切割信息,决定用于搜索所述微TLB中登记的地址转换对的所述地址转换请求的搜索对象位,从所述微TLB中搜索将由决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对;以及地址应答过程,在所述地址搜索过程从微TLB中搜索到将由搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在所述地址搜索过程未搜索到地址转换对的情况下,向主TLB发送所述地址转换请求。
此外,技术方案6涉及的发明的特征在于,在上述发明的基础上,所述页大小检测过程检测读出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种;所述位数决定过程在所述页大小检测过程检测出读出的地址转换对的页大小是64K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是15位至13位,在所述页大小检测过程检测出读出的地址转换对的页大小是512K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是18位至13位,在所述页大小检测过程检测出读出的地址转换对的页大小是32M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是24位至22位,在所述页大小检测过程检测出读出的地址转换对的页大小是256M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是27位至22位,在所述页大小检测过程检测出读出的地址转换对的页大小是8K或者4M的情况下,不切割所述读出的地址转换对,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是0位;所述地址搜索过程在从处理器接收到所述地址转换请求的情况下,根据所述登记步骤在微TLB中登记的地址转换对的切割信息,决定与8K或者4M对应的地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对。
根据本发明,在读出主TLB中保持的地址转换对并登记到微TLB时,检测读出的地址转换对的页大小,根据检测出的页大小,将读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数,对决定的位数附加虚拟地址,并且将表示已切割为规定的页大小的切割信息附加到切割后的地址转换对并登记到微TLB,在从处理器接收到从虚拟地址向物理地址的地址转换请求的情况下,根据微TLB中登记的地址转换对的切割信息,决定用于搜索微TLB中登记的地址转换对的地址转换请求的搜索对象位,从微TLB中搜索将由决定的搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对,在从微TLB中搜索到将由搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在未搜索到地址转换对的情况下,向主TLB发送地址转换请求,因此能够减少地址比较条件,提高处理性能。
例如,微TLB中仅登记规定的页大小的地址转换对,因此配合规定的页大小搜索虚拟地址便可,与登记各种页大小的情况相比,能够减少地址比较条件,提高处理性能。
此外,根据本发明,检测读出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种,在检测出读出的地址转换对的页大小是64K的情况下,将读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是15位至13位,在检测出读出的地址转换对的页大小是512K的情况下,将读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是18位至13位,在检测出读出的地址转换对的页大小是32M的情况下,将读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是24位至22位,在检测出读出的地址转换对的页大小是256M的情况下,将读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是27位至22位,在检测出读出的地址转换对的页大小是8K或者4M的情况下,不切割读出的地址转换对,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是0位,在从处理器接收到地址转换请求的情况下,根据微TLB中登记的地址转换对的切割信息,决定与8K或者4M对应的地址转换请求的搜索对象位,从微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对,因此能够减少地址比较条件,提高处理性能。
例如,如果地址转换对的页大小是8K、64K、512K字节则切割为8K,如果是4M、32M、256M字节则切割为4M,并登记到微TLB中,由此,在微TLB中,仅存储8K或者4M页大小的地址转换对。因此,微TLB接收到地址转换请求后,使用页大小为4M时的虚拟地址[63:22]和页大小为8K时的虚拟地址[63:13]这两种模式之一,搜索微TLB中保持的地址转换对便可,因此能够减少地址比较条件,提高处理性能。
附图说明
图1是用于说明第一实施例涉及的计算机的概要和特征的图。
图2是表示第一实施例涉及的计算机的结构的方框图。
图3是表示切割前后的绝对地址的图。
图4是用于说明第一实施例涉及的计算机中的微TLB的电路结构的图。
图5是表示第一实施例涉及的计算机中的微TLB的地址转换对登记处理的流程的流程图。
图6是表示第一实施例涉及的计算机中的微TLB的地址转换对搜索处理的流程的流程图。
图7是用于说明以往的技术的图。
图8是表示以往的技术中的地址转换对搜索电路的例子的图。
符号说明
10 计算机
11 CPU
11a 运算部/命令控制部
20 L1高速缓存控制部
21 L1高速缓存RAM
22 主TLB
23 微TLB
24 存储部
25 页大小检测部
26 位数决定部
27 登记部
28 地址搜索部
29 地址应答部
30 L2高速缓存控制部
31 L2高速缓存RAM
40 主存储部(存储器)
具体实施方式
以下参照附图详细说明本发明涉及的计算机、TLB控制方法以及TLB控制程序的实施例。另外,下面,依次说明本实施例涉及的计算机(运算处理装置)的概要以及特征、计算机的结构以及处理流程,最后说明对本实施例的各种变形例。
第一实施例
[计算机的概要以及特征]
首先,使用图1说明第一实施例涉及的计算机的概要以及特征。图1是用于说明第一实施例涉及的计算机的概要和特征的图。
如图1所示,该计算机包括将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB。此外,在微TLB中,将TLB虚拟地址[63:13]与TLB绝对地址[46:13]对应地登记。
在此,说明主TLB与微TLB的基本动作。例如,在从CPU的运算部或命令控制部等输出了请求从虚拟地址到物理地址的转换的地址转换请求后,计算机将该地址转换请求输入到微TLB。然后,计算机根据微TLB中保持的项的页大小,决定成为搜索对象的虚拟地址的范围,判断决定的地址转换请求中包含的虚拟地址的范围的值与微TLB中保持的地址转换对是否一致。并且,计算机在判断为与微TLB中保持的地址转换对一致的情况下(微TLB命中),向运算部或命令控制部应答对应的绝对地址,在判断为不一致的情况下(微TLB未中),向主TLB输出该地址转换请求。
并且,计算机将地址转换请求输入到主TLB后,与微TLB同样地,搜索主TLB中保持的地址转换对,在有一致的项的情况下,读出对应的地址转换对并向微TLB输出。此外,计算机在主TLB中未保持一致的地址转换对的情况下,对主存储部(主存储器)输出地址转换请求,主存储部向主TLB应答对应于地址转换请求的对应的绝对地址。另外,所谓地址转换对,是将虚拟地址与物理地址相对应的对应表,主TLB或者微TLB在输入了包含虚拟地址的地址转换请求的情况下,从保持的地址转换对中搜索与该虚拟地址对应的物理地址。
在这种状态下,如上所述,该计算机的大体结构是针对来自运算部和命令控制部等的地址转换请求,应答在主TLB、微TLB或者主存储部中保持的绝对地址,特别地,其主要特征在于能够减少地址比较条件,提高处理性能。
具体说明该主要特征,计算机在读出主TLB中保持的地址转换对并登记到微TLB中时,检测读出的地址转换对的页大小(参照图1的(1))。具体举例说明,在CPU的运算部或命令控制部等输出了地址转换请求后,计算机将该地址转换请求输入到微TLB。并且,在发生了微TLB未中后,计算机将该地址转换请求输出到主TLB,从主TLB应答物理地址。在此,计算机对微TLB输出主TLB保持的地址转换对中与地址转换请求对应的地址转换对。于是,计算机检测从主TLB输出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一个。
接着,计算机根据检测出的页大小,将读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位(参照图1的(2))。具体举例说明,在从主TLB读出64K(或512K)的页大小并检测出页大小后,计算机将读出的地址转换对切割为8K的页大小,即删除地址转换对搜索中不需要的偏移地址。并且,计算机决定向切割为8K后的原始大小为64K的地址转换对中包含的绝对地址中附加的虚拟地址的位是15位至13位。
并且,计算机附加针对所决定的位的虚拟地址,并且将表示已切割为规定的页大小的切割信息附加到切割后的地址转换对中并登记到微TLB(参照图1的(3))。使用上述的例子进行具体说明,计算机对所决定的15位至13位,附加主TLB中保持的虚拟地址(TLB虚拟地址),并且将表示已将64K的页大小切割为8K的切割信息附加到切割后的8K的地址转换对中并登记到微TLB。
同样,若从主TLB对微TLB输出了地址转换对,则计算机检测出从主TLB输出的地址转换对的页大小为256M字节(参照图1的(4))。接着,若从主TLB中读出256M(或者32M)的页大小而检测出页大小后,计算机将读出的地址转换对切割为4M的页大小,决定向已切割为4M的地址转换对中包含的绝对地址中附加的虚拟地址的位是27位至22位(参照图1的(5))。并且,计算机对所决定的27位至22位,附加主TLB中保持的TLB虚拟地址,并且将表示已将256M的页大小切割为4M的切割信息附加到切割后的4M的地址转换对中并登记到微TLB(参照图1的(6))。
由此,在微TLB中登记有8K或4M中任一种页大小的地址转换对。若在这种状态下从处理器的运算部或命令控制部接收到了地址转换请求,则计算机在从处理器接收了从虚拟地址到物理地址的地址转换请求的情况下,根据微TLB中登记的地址转换对的页大小,决定用于搜索微TLB中登记的地址转换对的地址转换请求的搜索对象位,从微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对(参照图1的(7))。
接着,计算机在从微TLB中搜索到将由搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在未搜索到地址转换对的情况下,向主TLB发送地址转换请求(参照图1的(8))。
使用上述的例子具体说明,若从运算部或命令控制部接收到了地址转换请求,则计算机将微TLB中存储的页大小为4M时的虚拟地址的搜索对象位[63:22]设为该地址转换请求的搜索对象位。并且,计算机从微TLB中搜索与地址转换请求的搜索对象位[63:22]和上下文[12:0]一致的地址转换对。并且,若搜索到一致的地址转换对,则计算机参照该地址转换对中包含的切割信息。在该切割信息为4M的情况下,计算机取得搜索到的地址转换对的绝对地址[46:22]并向运算部或命令控制部应答。例如,在搜索到的地址转换对原来为32M页大小的情况下,搜索到的地址转换对的绝对地址[46:22]中包含虚拟地址[24:22]。因此,计算机根据取得的地址转换对的绝对地址[46:22]和绝对地址中包含的虚拟地址[24:22],计算正确的绝对地址并向运算部或命令控制部应答。
此外,在参照的切割信息为8K的情况下,计算机取得搜索到的地址转换对的绝对地址[46:13]并向运算部或命令控制部应答。例如,在搜索到的地址转换对原来为64K页大小的情况下,搜索到的地址转换对的绝对地址[46:13]中包含虚拟地址[18:13]。因此,计算机根据取得的地址转换对的绝对地址[46:13]和绝对地址中包含的虚拟地址[18:13],计算正确的绝对地址并向运算部或命令控制部应答。
在此,详细说明对切割后的地址转换对附加虚拟地址并登记的情况。例如,若从主TLB向微TLB输出了64K页大小的地址转换对,则计算机将该64K的地址转换对切割为8K。但是,64K的地址转换对的绝对地址为[46:16],偏移地址为[15:13],8K的地址转换对的绝对地址为[46:13],不存在偏移地址。因此,在将64K页大小的地址转换对切割为8K并登记到微TLB的情况下,计算机无法应答正确的绝对地址。即,微TLB中登记的8K页大小的地址转换对的绝对地址为[46:13],64K的地址转换对的绝对地址为[46:16],因此缺少[15:13]的部分。因此,通过对该缺少的位数[15:13]附加TLB虚拟地址,来补充绝对地址的位数。
同样,若从主TLB向微TLB输出了256M页大小的地址转换对,则计算机将该256M的地址转换对切割为4M。但是,256M的地址转换对的绝对地址为[46:28],偏移地址为[27:13],4M的地址转换对的绝对地址为[46:22],偏移地址为[21:13]。因此,在将256M页大小的地址转换对切割为4M并登记到微TLB的情况下,计算机无法应答正确的绝对地址。即,微TLB中登记的4M页大小的地址转换对的绝对地址为[46:22],256M的地址转换对的绝对地址为[46:28],因此缺少[27:22]的部分。因此,通过对该缺少的位数[27:22]附加TLB虚拟地址,来补充绝对地址的位数。
这样,将8K、64K、512K的页大小全部切割为8K,将4M、32M、256M的页大小全部切割为4M并登记到微TLB,由此,在微TLB中仅登记8K或4M的地址转换对。在这种状态下,若接收到包含虚拟地址[63:13]和上下文[12:0]的地址转换请求,则计算机首先从微TLB中搜索与4M页大小的虚拟地址[63:22]和上下文[12:0]一致的地址转换对。并且,若搜索到与虚拟地址[63:22]和上下文[12:0]一致的地址转换对,则计算机参照该地址转换对的切割信息,判断该地址转换对是8K还是4M。
在此,在判断为是4M的情况下,计算机以与虚拟地址[63:22]和上下文[12:0]一致为前提应答绝对地址,在判断为是8K的情况下,进一步判定虚拟地址[21:13]是否一致。这样,以往,分别与8K、64K、512K、4M、32M、256M字节的页大小相应搜索的虚拟地址的位的位置不同,因此必须进行与各种页大小相应的搜索,但是本发明根据8K或4M页大小中的任一种进行搜索便可。
这样,第一实施例涉及的计算机在将从主TLB输出的地址转换对登记到微TLB时,能够切割为8K或4M页大小后登记,其结果是,由于上述的主要特征,能够减少地址比较条件,提高处理性能。
[计算机的结构]
接着,使用图2说明图1所示的计算机的结构。图2是表示第一实施例涉及的计算机的结构的方框图。如图2所示,该计算机10由CPU 11包含的运算部/命令控制部11a、L1高速缓存控制部20、L2高速缓存控制部30和主存储部40构成。
CPU 11是执行主存储部40中存储的各种程序的处理部,作为与本发明特别密切相关的部件,包括运算部/命令控制部11a和L1高速缓存控制部20。
运算部/命令控制部11a根据由CPU 11执行的运算处理输出与数据的写入以及读出有关的命令,从后述的微TLB 23、主TLB 22、L1高速缓存RAM 21、L2高速缓存RAM 31或主存储部40中取得需要的数据,进行对取得的数据的运算处理。
L1高速缓存控制部20,是执行以下操作的处理部:在从运算部/命令控制部11a取得了虚拟地址的情况下,从L1高速缓存RAM 21取得对应的数据并向运算部/命令控制部11a输出,在L1高速缓存RAM 21中不存在对应的数据的情况下,向L2高速缓存控制部30输出L2高速缓存地址访问,作为与本发明特别密切相关的部件,包括L1高速缓存RAM 21、主TLB 22和微TLB 23。
L1高速缓存RAM 21是与CPU 11集成或安装在相同模块中的高速并且小容量的存储器,用于通过存储使用频率高的数据来暂时保持由CPU 11执行的命令和数据,在由主存储部40来得及供应新数据的期间,供应一定量的数据以使CPU 11能够继续执行处理。
主TLB 22将主存上配置的表示虚拟地址与物理地址的对应的多个地址转换对作为页表保持。具体举例说明,由运算部/命令控制部11a向微TLB 23发送地址转换请求,若发生TLB未中,则主TLB 22从微TLB 23接收地址转换请求,应答针对该地址转换请求的物理地址。此外,主TLB 22在未保持与微TLB23的地址转换请求对应的物理地址的情况下,将该地址转换请求向主存储部40输出。
微TLB23保持主TLB中保持的页表的一部分,并且,作为与本发明特别密切相关的部件,包括存储部24、页大小检测部25、位数决定部26、登记部27、地址搜索部28和地址应答部29。
存储部24将由后述的登记部27登记的主TLB 22中保持的物理地址、与该物理地址关联的虚拟地址和有效上下文ID相对应地作为项存储。具体举例说明,存储部24将TAG部和数据部对应存储,该TAG部由虚拟地址[63:13]和上下文[12:0]构成,数据部由物理地址[46:13]和属性(attributes)[12:0]构成。
页大小检测部25在读出主TLB 22中保持的地址转换对并登记到微TLB时,检测读出的地址转换对的页大小。具体举例说明,若发生了微TLB未中,并接收到从主TLB 22输出的地址转换对,则页大小检测部25检测接收到的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种。
位数决定部26根据页大小检测部25检测出的页大小,将从主TLB22读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数。具体举例说明,在从主TLB 22读出的地址转换对的页大小为8K的情况下,位数决定部26不进行切割,而通知给后述的登记部27,在是64K的情况下,切割为8K并决定要附加的虚拟地址的位数为[15:13],在为512K的情况下,切割为8K并决定要附加的虚拟地址的位数为[18:13],并通知给登记部27。
此外,在从主TLB 22读出的地址转换对的页大小为4M的情况下,位数决定部26不进行切割,而通知给后述的登记部27,在为32M的情况下,切割为4M并决定要附加的虚拟地址的位数为[24:22],在为256M的情况下,切割为4M并决定要附加的虚拟地址的位数为[27:22],并通知给登记部27。
登记部27对位数决定部26决定的位数附加虚拟地址,并且将表示已切割为规定的页大小的切割信息附加到切割后的地址转换对后登记到微TLB 23。具体举例说明,如图3所示,登记部27在将64K切割为8K,由位数决定部26决定要附加的虚拟地址的位数为[15:13]的情况下,对[15:13]附加虚拟地址,在将512K切割为8K,并由位数决定部26决定要附加的虚拟地址的位数为[18:13]的情况下,对[18:13]附加虚拟地址,在将32M切割为4M,并由位数决定部26决定要附加的虚拟地址的位数为[24:22]的情况下,对[24:22]附加虚拟地址,在将256M切割为4M,并由位数决定部26决定要附加的虚拟地址的位数为[27:22]的情况下,对[27:22]附加虚拟地址,并登记到存储部24。另外,图3是表示切割前后的绝对地址的图。
在从处理器接收到从虚拟地址向物理地址的地址转换请求的情况下,地址搜索部28根据微TLB 23的存储部24中登记的地址转换对的切割信息,决定用于搜索微TLB 23的存储部24中登记的地址转换对的地址转换请求的搜索对象位,并从微TLB 23的存储部24中搜索将由所决定的搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对。
具体举例说明,在地址搜索部28从处理器(CPU)的运算部/命令控制部11a输入地址转换请求后,地址搜索部28从存储部24中搜索与该地址转换请求中包含的虚拟地址[63:13]中的[63:22]和上下文[12:0]一致的地址转换对。并且,在搜索到一致的地址转换对后,地址搜索部28判断搜索到的地址转换对的切割信息是“8K”还是“4M”。
并且,地址搜索部28在切割信息是“4M”的情况下,向后述的地址应答部29通知已搜索到与地址转换请求对应的地址转换对,在切割信息是“8K”的情况下,判定在该地址转换请求包含的虚拟地址[63:13]中的、之前搜索的[63:22]以外的[21:13]中存储的虚拟地址与该搜索到的地址转换对的虚拟地址[21:13]是否一致。而且,在之前搜索的[63:22]以外的[21:13]中存储的虚拟地址与该搜索到的地址转换对的虚拟地址[21:13]一致的情况下,地址搜索部28向后述的地址应答部29通知已搜索到与地址转换请求对应的地址转换对,在不一致的情况下,向地址应答部29通知TLB未中。
地址应答部29,在地址搜索部28从微TLB中搜索到将由搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算绝对地址并向处理器应答,在未搜索到地址转换对的情况下,向主TLB 22发送地址转换请求。
具体举例说明,地址应答部29,在被通知了已搜索到与地址转换请求对应的地址转换对后,参照所通知的地址转换对的切割信息,如果切割信息是“8K”,则取得地址转换对的绝对地址[46:13],如果切割信息是“4M”,则取得地址转换对的绝对地址[46:22],根据已取得的绝对地址和该绝对地址中包含的虚拟地址,计算正确的绝对地址并向运算部/命令控制部11a应答。
另一方面,在被通知了未搜索到与地址转换请求对应的地址转换对(微TLB未中)后,地址应答部29向主TLB发送地址转换请求。
L2高速缓存控制部30包括L2高速缓存RAM 31,在从L1高速缓存控制部20取得L2高速缓存访问地址的情况下,从L2高速缓存RAM31中读出与已取得的L2高速缓存访问地址对应的数据,并向L1高速缓存控制部20输出。L2高速缓存RAM 31是比L1高速缓存RAM 21速度慢且比主存储部40速度快,并且比L1高速缓存RAM 21容量大且比主存储部40容量小的存储器,存储使用频率高的数据。
主存储部40是存储CPU 11使用的数据、命令以及从虚拟地址向物理地址的转换表(页表)的大容量的主存储器,应答来自CPU 11的运算部/命令控制部11a、L1高速缓存控制部20和L2高速缓存控制部30的请求,向提出请求的处理部应答对应的数据。
[计算机中的微TLB的电路结构]
接着,使用图4说明计算机中的微TLB的电路结构。图4是用于说明第一实施例涉及的计算机中的微TLB的电路结构的图。图4所示的TLB虚拟地址和TLB上下文分别表示TLB中登记的虚拟地址和上下文,访问虚拟地址和访问上下文表示从运算部/命令控制部11a输出的地址转换请求中包含的虚拟地址和上下文。
如图4所示,在该微TLB 23中,由以下部件构成:比较作为8K和4M的页大小共用的虚拟地址区域的访问虚拟地址[63:22]和TLB虚拟地址[63:22]的电路、比较作为8K页大小时的虚拟地址区域的访问虚拟地址[21:13]和TLB虚拟地址[21:13]的电路、比较访问上下文[12:0]和TLB上下文[12:0]的电路、以及用于输入项是有效还是无效的Entry_valid。
并且,在用于比较访问虚拟地址[21:13]和TLB虚拟地址[21:13]的电路上连接有用于输入页大小是否是4M的电路,在是4M的情况下,不执行该电路。并且,在访问虚拟地址[63:22]与TLB虚拟地址[63:22]一致、访问虚拟地址[21:13]与TLB虚拟地址[21:13]一致(仅在8K的情况下有效)、访问上下文[12:0]与TLB上下文[12:0]一致、并且一致的地址转换对是“有效”的情况下,在微TLB 23中取得绝对地址并向运算部/命令控制部11a应答。这样,与图8所示的以往技术的比较电路相比较也可以看出,本发明能够大幅减少比较电路。
[计算机的处理]
接着,使用图5和图6说明计算机的处理。图5是表示第一实施例涉及的计算机中的向微TLB的地址转换对登记处理的流程的流程图。图6是表示第一实施例涉及的计算机中的微TLB的地址转换对搜索处理的流程的流程图。
(项登记处理)
如图5所示,若针对从运算部/命令控制部11a输入的地址转换请求发生了微TLB未中,并从主TLB 22发送了地址转换请求的应答,由微TLB 23发送了地址转换对(步骤S501肯定),页大小检测部25则检测读出的地址转换对的页大小(步骤S502)。
并且,在检测出的页大小是8K、64K或512K的情况下(步骤S503肯定),位数决定部26将地址转换对切割为8K(步骤S504),决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数,登记部27将由位数决定部26决定的位数的虚拟地址和切割信息附加到地址转换对,并登记到微TLB 23的存储部24(步骤S506)。
另一方面,在检测出的页大小不是8K、64K或512K的情况下,即检测出的页大小是4M、32M或256M的情况下(步骤S503否定),位数决定部26将地址转换对切割为4M,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数,登记部27将由位数决定部26决定的位数的虚拟地址和切割信息附加到地址转换对,并登记到微TLB23的存储部24(步骤S506)。
(项搜索处理)
如图6所示,若从运算部/命令控制部11a接收到地址转换请求(步骤S601肯定),微TLB 23的地址搜索部28从存储部24中搜索与地址转换请求中包含的虚拟地址[63:13]中的[63:22]和上下文[12:0]一致的地址转换对(步骤S602)。
并且,若搜索到一致的地址转换对(步骤S603肯定),地址搜索部28判定搜索到的地址转换对的切割信息是否是8K(步骤S604)。
在搜索到的地址转换对的切割信息是8K的情况下(步骤S604肯定),地址应答部29判定地址转换请求中包含的虚拟地址[63:13]的剩下的位数[21:13]和搜索到的地址转换对的虚拟地址[21:13]是否一致(步骤S605)。
在虚拟地址[21:13]一致的情况下(步骤S605肯定),地址应答部29从搜索到的地址转换对中取得绝对地址[46:13],计算出绝对地址并向运算部/命令控制部11a应答(步骤S606)。
返回步骤S604,在搜索到的地址转换对的切割信息不是8K的情况下,即是4M的情况下(步骤S604否定),地址应答部29从搜索到的地址转换对中取得绝对地址[46:22],计算出绝对地址并向运算部/命令控制部11a应答(步骤S607)。
另一方面,在未搜索到一致的地址转换对(步骤S603否定)或者虚拟地址[21:13]不一致的情况下(步骤S605否定),地址应答部29设为微TLB未中并向主TLB 22发送地址转换请求(步骤S608)。
[第一实施例的效果]
这样,根据第一实施例,在读出主TLB 22中保持的地址转换对并登记到微TLB 23时,检测所读出的地址转换对的页大小,根据检测出的页大小,将读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数,对所决定的位数附加虚拟地址,并且将表示已切割为规定的页大小的切割信息附加到切割后的地址转换对并登记到微TLB 23,在从处理器(CPU)接收到从虚拟地址向物理地址的地址转换请求的情况下,根据微TLB 23中登记的地址转换对的切割信息,决定用于搜索微TLB 23中登记的地址转换对的地址转换请求的搜索对象位,从微TLB 23中搜索将由所决定的搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对,在从微TLB 23中搜索到将由搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在未搜索到地址转换对的情况下,向主TLB 22发送地址转换请求,因此能够减少地址比较条件,提高处理性能。
例如,在微TLB 23中仅登记规定的页大小的地址转换对,因此结合规定的页大小搜索虚拟地址便可,与登记各种页大小的情况相比,能够减少地址比较条件,提高处理性能。
此外,根据第一实施例,检测读出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种,在检测出读出的地址转换对的页大小是64K的情况下,将读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是15位至13位,在检测出读出的地址转换对的页大小是512K的情况下,将读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是18位至13位,在检测出读出的地址转换对的页大小是32M的情况下,将读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是24位至22位,在检测出读出的地址转换对的页大小是256M的情况下,将读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是27位至22位,在检测出读出的地址转换对的页大小是8K或者4M的情况下,不切割读出的地址转换对,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是0位,在从处理器接收到地址转换请求的情况下,根据微TLB 23中登记的地址转换对的切割信息,决定与8K或者4M对应的地址转换请求的搜索对象位,从微TLB 23中搜索将由所决定的搜索对象位表示的虚拟地址与地址转换请求中包含的上下文对应登记的地址转换对,因此能够减少地址比较条件,提高处理性能。
例如,如果地址转换对的页大小是8K、64K、512K字节则切割为8K,如果是4M、32M、256M字节则切割为4M,并登记到微TLB 23,由此,在微TLB 23中,仅存储8K或者4M的页大小的地址转换对。因此,微TLB 23在接收到地址转换请求后,使用页大小为4M时的虚拟地址[63:22]和页大小为8K时的虚拟地址[63:13]这两种模式之一,搜索微TLB 23中保持的地址转换对便可,因此能够减少地址比较条件,提高处理性能。
第二实施例
前面说明了本发明的实施例,但本发明也可以在上述实施例以外通过各种不同的方式来实施。因此,如以下所示,对于系统结构等说明不同的实施例。
(1)系统结构等
此外,也能手动进行本实施例中说明的各个处理中的作为自动进行的处理说明的处理(例如,来自主存储部的包含物理地址的地址转换对(项)的输出处理等)的全部或一部分。此外,对于上述文本中或图中所示的处理过程、控制过程、具体的名称、包含各种数据或参数的信息,除了特别提到的情况以外能够任意进行变更。
此外,图示的各装置的各个结构要素是功能概念上的要素,在物理上不一定如图示的那样构成。即,各装置的分散、组合的具体方式并不限定于图示的方式,能够根据各种负荷和使用状况等,将其全部或一部分以任意单位在功能上或物理上分散或组合(例如,组合页大小检测部和位数决定部等)来构成。
产业上的可利用性
如上所述,本发明涉及的计算机、TLB控制方法以及TLB控制程序对于包括将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB的计算机是有效的,特别适于减少地址比较条件,提高处理性能。
Claims (6)
1、一种计算机,具有将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB,其特征在于,包括:
页大小检测单元,在读出所述主TLB中保持的地址转换对并登记到微TLB时,检测读出的地址转换对的页大小;
位数决定单元,根据所述页大小检测单元检测出的页大小,将所述读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数;
登记单元,对所述位数决定单元决定的位数附加虚拟地址,并且将表示已切割为所述规定的页大小的切割信息附加到所述切割后的地址转换对,并登记到微TLB;
地址搜索单元,在从处理器接收到从所述虚拟地址向物理地址的地址转换请求的情况下,根据由所述登记单元登记到微TLB的地址转换对的切割信息,决定用于搜索所述微TLB中登记的地址转换对的所述地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对;以及
地址应答单元,在所述地址搜索单元从微TLB中搜索到将由搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在所述地址搜索单元未搜索到地址转换对的情况下,向主TLB发送所述地址转换请求。
2、根据权利要求1所述的计算机,其特征在于:
所述页大小检测单元检测读出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种;
所述位数决定单元在所述页大小检测单元检测出读出的地址转换对的页大小是64K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是15位至13位,在所述页大小检测单元检测出读出的地址转换对的页大小是512K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是18位至13位,在所述页大小检测单元检测出读出的地址转换对的页大小是32M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是24位至22位,在所述页大小检测单元检测出读出的地址转换对的页大小是256M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是27位至22位,在所述页大小检测单元检测出读出的地址转换对的页大小是8K或者4M的情况下,不切割所述读出的地址转换对,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是0位;
所述地址搜索单元在从处理器接收到所述地址转换请求的情况下,根据所述登记单元在微TLB中登记的地址转换对的切割信息,决定与8K或者4M对应的地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对。
3、一种TLB控制方法,适用于具有将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB的计算机,其特征在于包括:
页大小检测步骤,在读出所述主TLB中保持的地址转换对并登记到微TLB时,检测读出的地址转换对的页大小;
位数决定步骤,根据所述页大小检测步骤检测出的页大小,将所述读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数;
登记步骤,对所述位数决定步骤决定的位数附加虚拟地址,并且将表示已切割为所述规定的页大小的切割信息附加到所述切割后的地址转换对,并登记到微TLB;
地址搜索步骤,在从处理器接收到从所述虚拟地址向物理地址的地址转换请求的情况下,根据由所述登记步骤登记到微TLB的地址转换对的切割信息,决定用于搜索所述微TLB中登记的地址转换对的所述地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对;以及
地址应答步骤,在所述地址搜索步骤从微TLB中搜索到将由搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在所述地址搜索步骤未搜索到地址转换对的情况下,向主TLB发送所述地址转换请求。
4、根据权利要求3所述的TLB控制方法,其特征在于:
所述页大小检测步骤检测读出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种;
所述位数决定步骤在所述页大小检测步骤检测出读出的地址转换对的页大小是64K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是15位至13位,在所述页大小检测步骤检测出读出的地址转换对的页大小是512K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是18位至13位,在所述页大小检测步骤检测出读出的地址转换对的页大小是32M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是24位至22位,在所述页大小检测步骤检测出读出的地址转换对的页大小是256M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是27位至22位,在所述页大小检测步骤检测出读出的地址转换对的页大小是8K或者4M的情况下,不切割所述读出的地址转换对,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是0位;
所述地址搜索步骤在从处理器接收到所述地址转换请求的情况下,根据所述登记步骤在微TLB中登记的地址转换对的切割信息,决定与8K或者4M对应的地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对。
5、一种TLB控制程序,由作为具有将表示虚拟地址与绝对地址的对应的多个地址转换对作为页表保持的主TLB,和保持主TLB中保持的页表的一部分的微TLB的计算机的计算机执行,其特征在于包括:
页大小检测过程,在读出所述主TLB中保持的地址转换对并登记到微TLB时,检测读出的地址转换对的页大小;
位数决定过程,根据所述页大小检测过程检测出的页大小,将所述读出的地址转换对切割为规定的页大小,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数;
登记过程,对所述位数决定过程决定的位数附加虚拟地址,并且将表示已切割为所述规定的页大小的切割信息附加到所述切割后的地址转换对,并登记到微TLB;
地址搜索过程,在从处理器接收到从所述虚拟地址向物理地址的地址转换请求的情况下,根据由所述登记过程登记到微TLB的地址转换对的切割信息,决定用于搜索所述微TLB中登记的地址转换对的所述地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对;以及
地址应答过程,在所述地址搜索过程从微TLB中搜索到将由搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对的情况下,根据该地址转换对计算出绝对地址并向处理器应答,在所述地址搜索过程未搜索到地址转换对的情况下,向主TLB发送所述地址转换请求。
6、根据权利要求5所述的TLB控制程序,其特征在于:
所述页大小检测过程检测读出的地址转换对的页大小是8K、64K、512K、4M、32M、256M字节中的哪一种;
所述位数决定过程在所述页大小检测过程检测出读出的地址转换对的页大小是64K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是15位至13位,在所述页大小检测过程检测出读出的地址转换对的页大小是512K的情况下,将所述读出的地址转换对切割为8K字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是18位至13位,在所述页大小检测过程检测出读出的地址转换对的页大小是32M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是24位至22位,在所述页大小检测过程检测出读出的地址转换对的页大小是256M的情况下,将所述读出的地址转换对切割为4M字节,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是27位至22位,在所述页大小检测过程检测出读出的地址转换对的页大小是8K或者4M的情况下,不切割所述读出的地址转换对,决定向切割后的地址转换对中包含的绝对地址中附加的虚拟地址的位数是0位;
所述地址搜索过程在从处理器接收到所述地址转换请求的情况下,根据所述登记步骤在微TLB中登记的地址转换对的切割信息,决定与8K或者4M对应的地址转换请求的搜索对象位,从所述微TLB中搜索将由所决定的搜索对象位表示的虚拟地址与所述地址转换请求中包含的上下文对应登记的地址转换对。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/062462 WO2008155848A1 (ja) | 2007-06-20 | 2007-06-20 | 計算機、tlb制御方法およびtlb制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681308A true CN101681308A (zh) | 2010-03-24 |
CN101681308B CN101681308B (zh) | 2014-08-13 |
Family
ID=40156014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780053345.1A Expired - Fee Related CN101681308B (zh) | 2007-06-20 | 2007-06-20 | 计算机及tlb控制方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8190853B2 (zh) |
EP (1) | EP2169556A4 (zh) |
JP (1) | JP4998554B2 (zh) |
KR (1) | KR101078277B1 (zh) |
CN (1) | CN101681308B (zh) |
WO (1) | WO2008155848A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766259A (zh) * | 2016-08-23 | 2018-03-06 | 华为技术有限公司 | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110145542A1 (en) * | 2009-12-15 | 2011-06-16 | Qualcomm Incorporated | Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups |
US10037228B2 (en) | 2012-10-25 | 2018-07-31 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
US10169091B2 (en) * | 2012-10-25 | 2019-01-01 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
US10310973B2 (en) | 2012-10-25 | 2019-06-04 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
US9405703B2 (en) * | 2014-06-04 | 2016-08-02 | Advanced Micro Devices, Inc. | Translation lookaside buffer |
US10776281B2 (en) * | 2018-10-04 | 2020-09-15 | International Business Machines Corporation | Snoop invalidate filter for distributed memory management unit to reduce snoop invalidate latency |
US11675710B2 (en) * | 2020-09-09 | 2023-06-13 | Apple Inc. | Limiting translation lookaside buffer searches using active page size |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6024491B2 (ja) * | 1981-07-24 | 1985-06-13 | 富士通株式会社 | アドレス変換制御方式 |
US4725776A (en) * | 1984-01-25 | 1988-02-16 | Matsushita Electric Industry Co., Ltd. | Magnetic position detector using a thin film magnetoresistor element inclined relative to a moving object |
US5263140A (en) * | 1991-01-23 | 1993-11-16 | Silicon Graphics, Inc. | Variable page size per entry translation look-aside buffer |
JPH04311233A (ja) * | 1991-04-09 | 1992-11-04 | Nec Corp | アドレス変換装置 |
JPH0546483A (ja) * | 1991-08-14 | 1993-02-26 | Toshiba Corp | 仮想アドレス変換方式 |
US5386527A (en) * | 1991-12-27 | 1995-01-31 | Texas Instruments Incorporated | Method and system for high-speed virtual-to-physical address translation and cache tag matching |
JPH05225064A (ja) | 1992-02-10 | 1993-09-03 | Hitachi Ltd | アドレス変換装置及びバッファ記憶制御装置 |
US5465337A (en) * | 1992-08-13 | 1995-11-07 | Sun Microsystems, Inc. | Method and apparatus for a memory management unit supporting multiple page sizes |
JPH06202954A (ja) * | 1992-12-28 | 1994-07-22 | Fujitsu Ltd | タグ比較回路及びこれを用いたトランスレーション・ルック・アサイド・バッファ |
US5526504A (en) * | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
JPH08329687A (ja) * | 1995-06-05 | 1996-12-13 | Hitachi Ltd | 半導体集積回路 |
US5907867A (en) * | 1994-09-09 | 1999-05-25 | Hitachi, Ltd. | Translation lookaside buffer supporting multiple page sizes |
US5946716A (en) * | 1996-05-30 | 1999-08-31 | Hewlett-Packard Company | Sectored virtual memory management system and translation look-aside buffer (TLB) for the same |
US6493812B1 (en) * | 1999-12-17 | 2002-12-10 | Hewlett-Packard Company | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache |
JP2002132581A (ja) * | 2000-10-25 | 2002-05-10 | Mitsubishi Electric Corp | メモリ管理機構 |
US6553477B1 (en) * | 2000-11-06 | 2003-04-22 | Fujitsu Limited | Microprocessor and address translation method for microprocessor |
JP4311233B2 (ja) | 2003-03-05 | 2009-08-12 | コニカミノルタホールディングス株式会社 | 静電潜像現像用トナーとトナーの製造方法及び画像形成方法 |
US7100018B2 (en) * | 2003-07-31 | 2006-08-29 | Silicon Graphics, Inc. | System and method for encoding page size information |
US7243208B2 (en) * | 2003-08-13 | 2007-07-10 | Renesas Technology Corp. | Data processor and IP module for data processor |
US7117290B2 (en) | 2003-09-03 | 2006-10-03 | Advanced Micro Devices, Inc. | MicroTLB and micro tag for reducing power in a processor |
-
2007
- 2007-06-20 JP JP2009520202A patent/JP4998554B2/ja not_active Expired - Fee Related
- 2007-06-20 CN CN200780053345.1A patent/CN101681308B/zh not_active Expired - Fee Related
- 2007-06-20 EP EP07767300A patent/EP2169556A4/en not_active Withdrawn
- 2007-06-20 WO PCT/JP2007/062462 patent/WO2008155848A1/ja active Application Filing
- 2007-06-20 KR KR1020097026129A patent/KR101078277B1/ko not_active IP Right Cessation
-
2009
- 2009-12-16 US US12/654,303 patent/US8190853B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766259A (zh) * | 2016-08-23 | 2018-03-06 | 华为技术有限公司 | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 |
CN107766259B (zh) * | 2016-08-23 | 2021-08-20 | 华为技术有限公司 | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2008155848A1 (ja) | 2010-08-26 |
WO2008155848A1 (ja) | 2008-12-24 |
KR101078277B1 (ko) | 2011-10-31 |
EP2169556A4 (en) | 2010-10-13 |
CN101681308B (zh) | 2014-08-13 |
KR20100013324A (ko) | 2010-02-09 |
US8190853B2 (en) | 2012-05-29 |
EP2169556A1 (en) | 2010-03-31 |
JP4998554B2 (ja) | 2012-08-15 |
US20100106936A1 (en) | 2010-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681308B (zh) | 计算机及tlb控制方法 | |
JP5440067B2 (ja) | キャッシュメモリ制御装置およびキャッシュメモリ制御方法 | |
CN101617298B (zh) | 用于dma、任务终止和同步操作的缓存一致保持 | |
KR20030025297A (ko) | 캐시 시스템 및 캐시 섹션 결정 방법 및 프로세싱 시스템 | |
EP2339474A1 (en) | Cache unit, arithmetic processing unit, and information processing unit | |
EP1733308B1 (en) | Intelligent pci bridging consisting of prefetching all data prior to sending data to requesting service | |
WO2007046324A1 (ja) | 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記録媒体 | |
JP4669244B2 (ja) | キャッシュメモリ装置およびメモリ制御方法 | |
JP4140910B2 (ja) | データ処理装置、データ管理装置、データ処理方法、データ管理方法、データ処理プログラム、データ管理プログラム、及び情報システム | |
JP3604548B2 (ja) | アドレス一致検出装置、通信制御システム及びアドレス一致検出方法 | |
CN113204370A (zh) | 指令缓存方法及装置 | |
US20170147508A1 (en) | Device, system and method of accessing data stored in a memory | |
US10635591B1 (en) | Systems and methods for selectively filtering, buffering, and processing cache coherency probes | |
JP3190700B2 (ja) | アドレス変換装置 | |
CN114816219A (zh) | 数据写入和读取方法、装置及数据读写系统 | |
CN100587676C (zh) | 探测标记的控制装置 | |
KR100588739B1 (ko) | 문서처리시스템에서 문서의 중복 방지 방법 | |
JPH05158793A (ja) | 並列キャッシュメモリ | |
JP2003196157A (ja) | プロセッサ装置及びメモリ管理方法 | |
CN115587052A (zh) | 一种缓存性能的处理方法及其相关设备 | |
CN116303212A (zh) | 一种数据访问方法、装置、计算机设备及存储介质 | |
CN115687248A (zh) | 一种计算机数据分析管理系统 | |
US20080065793A1 (en) | Semiconductor storage device and information processing device including semiconductor storage device | |
TW512276B (en) | Pipeline tag controller with no speed-lost status | |
JPH08272687A (ja) | 入出力キャッシュメモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140813 Termination date: 20150620 |
|
EXPY | Termination of patent right or utility model |