CN101030173A - 地址转换设备 - Google Patents
地址转换设备 Download PDFInfo
- Publication number
- CN101030173A CN101030173A CNA2006100925328A CN200610092532A CN101030173A CN 101030173 A CN101030173 A CN 101030173A CN A2006100925328 A CNA2006100925328 A CN A2006100925328A CN 200610092532 A CN200610092532 A CN 200610092532A CN 101030173 A CN101030173 A CN 101030173A
- Authority
- CN
- China
- Prior art keywords
- address
- date
- data
- page table
- stored
- 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
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]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- 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
- 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/654—Look-ahead translation
-
- 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
一种地址转换设备,其中:第一地址转换表根据存储于页表中的地址数据,存储与主存储器中的接收缓冲区对应的第一地址数据。第二地址转换表根据存储于页表中的地址数据存储与主存储器中除了接收缓冲区之外的其他区域对应的第二地址数据。地址转换请求判断单元判断地址转换请求是否与接收缓冲区有关。地址转换单元基于地址转换请求判断单元的判断结果来转换地址。
Description
技术领域
本发明涉及一种利用页表(page table)来响应地址转换请求而转换地址的技术,该页表存储用于在虚拟地址和物理地址之间转换地址的地址数据。
背景技术
近来,在使用虚拟存储方法的数据处理器中,与虚拟地址和物理地址之间的对应关系(correspondence)有关的地址数据存储于主存储器中,并且存储于主存储器中的部分地址数据存储于转换后备缓冲器(TLB,translationlook-aside buffer)中(例如,参见日本专利No.2586160)。在这种数据处理器中,如果与接收到转换请求的虚拟地址对应的地址数据存储于TLB中,则TLB将虚拟地址转换为物理地址。如果与接收到转换请求的虚拟地址对应的地址数据未存储于TLB中,则TLB访问主存储器然后将虚拟地址转换为物理地址。
如全集联方法(full set associative method)、直接映射方法(direct mappingmethod)、N路集联方法(N-way set associative method)之类的TLB控制方法可用于地址转换设备中。如果保存存储于主存储器中的地址数据的页表具有多级结构,则TLB也具有类似的多级结构。
当在通信期间分配数据时,数据处理器确保在主存储器中有用于分配数据的接收缓冲区。当分配数据时,数据处理器读取存储于接收缓冲区中的数据并利用主存储器中的转换表来进行与所读取的数据有关的地址转换。
可是,在传统技术中,在通信期间分配数据时,尽管数据处理器是从接收缓冲区读取数据,但由于所有的数据被均等处理,因此用于接收缓冲器的转换表不总是存储于TLB中。如果用于接收缓冲器的转换表未存储于TLB中,则发生缓存未命中(cache miss),从而在分配数据期间数据处理器必须访问具有低读取速度的主存储器,从而降低了处理速度。
发明内容
本发明的目的是至少解决传统技术中的问题。
根据本发明一个方案的地址转换设备利用页表来响应地址转换请求而转换地址,该页表存储用于在虚拟地址和物理地址之间转换地址的地址数据,该地址转换设备包括:第一地址转换表,从存储于该页表中的地址数据提取第一地址数据并存储该第一地址数据,该第一地址数据与主存储器中用于交换通信数据的接收缓冲区对应;第二地址转换表,从存储于该页表中的地址数据提取第二地址数据并存储该第二地址数据,该第二地址数据与主存储器中除了该接收缓冲区之外的其他区域对应;地址转换请求判断单元,判断该地址转换请求是否与该接收缓冲区有关;以及地址转换单元,基于该地址转换请求判断单元的判断结果转换该地址。当该地址转换请求判断单元判定该地址转换请求与该接收缓冲区有关时,该地址转换单元利用该第一地址数据和存储于该页表中的地址数据至少其中之一转换该地址;以及,当该地址转换请求判断单元判定该地址转换请求与该接收缓冲区无关时,该地址转换单元利用该第二地址数据和存储于该页表中的地址数据至少其中之一转换该地址。
本发明的上述及其他目的、特点、优点以及技术和工业上的重要性通过阅读以下对本发明优选实施例的详细说明并结合附图将得到更好地理解。
附图说明
图1为根据本发明第一实施例的地址转换设备的示意图;
图2为根据第一实施例的地址转换设备的方框图;
图3为示出TLB数据结构的示意图;
图4为示出页表数据结构的示意图;
图5为根据第一实施例用于地址转换处理的处理程序的流程图;
图6为根据第一实施例用于具体地址转换处理的处理程序的流程图;以及
图7为根据本发明第二实施例用于地址转换设备处理操作的处理程序的流程图。
具体实施方式
以下参考附图详细说明本发明的示范实施例。
“页表”为存储地址数据的表,而该地址数据用于虚拟地址和物理地址之间的地址转换。如图4所示,页表具有多级结构,并分为三个层级(hierarchy),即第1级至第3级。此外,如图3所示,虚拟地址包括与页表的第1级至第3级对应的数据。
在页表中,第1级层级存储在L1物理地址和L1虚拟地址之间建立对应关系的地址数据,其中,L1物理地址(例如,图4中的PA(L1_0))确定了存储于第2级层级中的地址数据的位置,L1虚拟地址(例如,图4中的VA(L1))代表虚拟地址的L1部分。此外,第2级层级存储在L2物理地址和L2虚拟地址之间建立对应关系的地址数据,其中,L2物理地址(例如,图4中的PA(L2))确定了存储于第3级层级中的地址数据的位置,L2虚拟地址(例如,图4中的VA(L2))代表虚拟地址的L2部分。第3级层级存储在物理地址(例如,图4中的PA)和L3虚拟地址(例如,图4中的VA)之间建立对应关系的地址数据,其中L3虚拟地址代表虚拟地址的L3部分。
数据处理器从页表的第1级层级读取与L1虚拟地址(例如,图4中的VA(L1))对应的L1物理地址(例如,图4中的PA(L1_0)),其中L1虚拟地址代表虚拟地址的L1部分。接着,数据处理器从页表的第2级层级读取与已读取的L1物理地址和代表虚拟地址的L2部分的L2虚拟地址(例如,图4中的VA(L2_0))对应的L2物理地址(例如,图4中的PA(L2_0))。接着,数据处理器读取与已读取的L2物理地址和代表虚拟地址的L3部分的L3虚拟地址(例如,图4中的VA)对应的物理地址(例如,图4中的PA)。
图1为根据本发明第一实施例的地址转换设备10的示意图。
地址转换设备10利用页表来响应地址转换请求而执行地址转换,该页表存储用于在虚拟地址和物理地址之间进行地址转换的地址数据(转换表)。根据第一实施例的地址转换设备的突出特点是该地址转换设备减少了缓存未命中,从而提高了处理速度。
如图1所示,地址转换设备10连接至处理器20,处理器20包括执行各种处理的中央处理器(CPU)21和主存储器22。主存储器22保存存储地址数据的页表22a,该地址数据用于虚拟地址和物理地址之间的地址转换。如图4所示,页表22a具有多级结构,并分为三个层级,即第1级至第3级。
地址转换设备10包括接收缓冲器(RB,receiving buffer)专用TLB 13a和第1级至第3级TLB 13b。根据存储于页表22a中的地址数据,RB专用TLB 13a从页表22a提取与分配通信数据期间主存储器22中使用的接收缓冲区对应的地址数据,并存储所提取的数据。如图3所示,第1级至第3级TLB13b为具有类似于页表22a结构的多级结构的页表。根据存储于页表22a中的地址数据,第1级至第3级TLB 13b提取与主存储器22中除了接收缓冲区之外的其他区域对应的地址数据,并存储所提取的数据。
如果地址转换设备10从处理器20的CPU 21接到地址转换请求(参见图1中的(1)),地址转换设备10的微控制器判断该地址转换请求是否与接收缓冲区有关(参见图1中的(2)),并向存储器管理单元(MMU)发出地址转换请求(参见图1中的(3))。如果地址转换请求与接收缓冲区有关,则地址转换设备10利用存储于RB专用TLB 13a中的地址数据执行地址转换。如果地址转换请求与接收缓冲区无关,则地址转换设备10利用存储于第1级至第3级TLB 13b和/或页表22a中的地址数据执行地址转换(参见图1中的(4))。接着,地址转换设备10将已转化的地址发送给处理器20(参见图1中的(5))。
这样,具有上述突出特点的地址转换设备10分开控制常用的接收缓冲区和除接收缓冲区之外的其他区域。如果地址转换请求与接收缓冲区有关,地址转换设备10访问RB专用TLB 13a并利用存储于接收缓冲区中的地址数据执行地址转换,从而能够减少缓存未命中并提高处理速度。
图2为根据第一实施例的地址转换设备10的方框图。
处理器20包括CPU 21和主存储器22。主存储器22保存存储地址数据的页表22a,该地址数据用于虚拟地址和物理地址之间的地址转换。如图4所示,页表22a具有多级结构,并分为三个层级,即第1级至第3级。
页表22a在作为最后一级的第3级层级中存储在虚拟地址和物理地址之间建立对应关系的地址数据(例如,图4中的“PA0”)。页表22a在第2级层级中存储用于确定存储于第3级层级中的地址数据的位置的地址数据(例如,图4中的“PA(L2_0)”)。此外,页表22a在第1级层级中存储用于确定存储于第2级层级中的地址数据的位置的地址数据(例如,图4中的“PA(L1_0)”)。
如图2所示,地址转换设备10包括处理器控制接口(interface)11、控制器12、以及存储单元13。
处理器控制接口11控制与地址转换设备10和处理器20之间交换的不同类型数据有关的通信。处理器控制接口11控制与地址转换设备10和处理器20之间的地址转换请求有关的数据接收,和与已转换地址有关的数据发送。
存储单元13存储由控制器12执行的各种处理所需的数据和程序。存储单元13包括与本发明特别紧密相关的RB专用TLB 13a和第1级至第3级TLB 13b。RB专用TLB 13a对应于权利要求书中所述的“第一地址转换表”,第1级至第3级TLB 13b对应于权利要求书中所述的“第二地址转换表”。
RB专用TLB 13a存储与RB有关的地址数据。根据存储于页表22a中的地址数据,RB专用TLB 13a从页表22a提取与分配通信数据期间主存储器22中使用的接收缓冲区对应的地址数据,并存储所提取的数据。存储与RB有关的地址数据的区域大小是有限的,并且与用于常规地址转换的TLB相比较,与接收缓冲区有关的地址转换所需的TLB只需要存储较少的条目(entry)。根据第一实施例,直接映射方法用作与RB专用TLB 13a有关的控制方法。然而,也可以使用其他方法,例如全集联方法、N路集联方法。
根据存储于页表22a中的地址数据,第1级至第3级TLB 13b从页表22a提取与主存储器22中除了接收缓冲区之外的其他区域对应的地址数据,并存储所提取的数据。如图3所示,第1级至第3级TLB 13b具有多级结构,而且以条目的形式存储地址数据并使得条目的数目在连续的级别中增加,直到最后一级。
第1级至第3级TLB 13b中的代表最后一级的第3级TLB中存储在虚拟地址和物理地址之间建立对应关系的地址数据(例如,图3中的“PA0”)。第1级至第3级TLB 13b中的第2级TLB中存储确定存储于页表22a的第3级层级中的地址数据的位置的地址数据(例如,图4中的“PA(L2_0)”)。此外,第1级至第3级TLB 13b中的第1级TLB中存储确定存储于页表22a的第2级层级中的地址数据的位置的地址数据(例如,图4中的“PA(L1_0)”)。
控制器12包括用于存储控制各种处理顺序的程序和必要数据的内部存储器。控制器12利用所存储的程序和数据执行各种处理。具体地,控制器12包括与本发明紧密相关的地址转换请求判断单元12a、地址转换单元12b、以及已转换地址发送单元12c。地址转换请求判断单元12a对应于权利要求书中所述的“地址转换请求判断单元”,地址转换单元12b对应于权利要求书中所述的“地址转换单元”。
地址转换请求判断单元12a判断地址转换请求是否与接收缓冲区有关。具体地,从处理器20的CPU 21接到地址转换请求后,地址转换请求判断单元12a判断地址转换请求是否与接收缓冲区有关。
如果地址转换请求与接收缓冲区有关,则地址转换单元12b利用存储于RB专用TLB 13a中的地址数据执行地址转换。如果地址转换请求与接收缓冲区无关,地址转换单元12b利用存储于第1级至第3级TLB 13b和/或页表22a中的地址数据执行地址转换。
如果地址转换请求判断单元12a判定地址转换请求与接收缓冲区有关,地址转换单元12b从RB专用TLB 13a读取与包含在地址转换请求中的地址对应的地址数据,并利用所读取的地址数据执行地址转换。
如果地址转换请求判断单元12a判定地址转换请求与接收缓冲区无关,地址转换单元12b从第1级至第3级TLB 13b读取与包含在地址转换请求中的地址对应的地址数据,并利用所读取的地址数据执行地址转换。
地址转换单元12b搜索与包含在地址转换请求中的虚拟地址对应的地址数据是否存在于代表TLB最后一级的第3级TLB中。如果与虚拟地址对应的地址数据存在于第3级TLB中,则地址转换单元12b从第3级TLB读取对应的地址数据,并利用所读取的地址数据将虚拟地址转换为物理地址。
如果与包含在地址转换请求中的虚拟地址对应的地址数据不存在于第3级TLB中,则地址转换单元12b搜索与该虚拟地址对应的地址数据是否存在于第2级TLB中。如果与包含在地址转换请求中的虚拟地址对应的地址数据存在于第2级TLB中,则地址转换单元12b从第2级TLB读取用于确定存储于页表22a的第3级层级中的地址数据的位置的地址数据(例如,图3中的“PA(L2_0)”)。
地址转换单元12b从页表22a的第3级层级中读取与已读取地址数据对应的地址数据和连续存储的8个地址数据,并将读取的地址数据存储在第3级TLB中。然后,地址转换单元12b从第3级TLB读取已存储的地址数据,并利用所读取的地址数据将虚拟地址转换为物理地址。
如果与包含在地址转换请求中的虚拟地址对应的地址数据不存在于第2级TLB中,则地址转换单元12b搜索与该虚拟地址对应的地址数据是否存在于第1级TLB中。如果与包含在地址转换请求中的虚拟地址对应的地址数据存在于第1级TLB中,则地址转换单元12b从第1级TLB中读取地址数据(例如,图3中的“PA(L1_1)”),从页表22a的第2级层级中读取与已读取地址数据对应的地址数据和连续存储的两个地址数据,并将读取的地址数据存储在第2级TLB中。
地址转换单元12b从第2级TLB中读取已存储的地址数据,从页表22a的第3级层级中读取与已读取地址数据对应的地址数据,将所读取的地址数据和连续存储的8个地址数据存储在第3级TLB中,从第3级TLB中读取已存储的地址数据,并利用所读取的地址数据将虚拟地址转换为物理地址。
如果与包含在地址转换请求中的虚拟地址对应的地址数据不存在于第1级TLB中,则地址转换单元12b从页表22a的第1级层级中读取与包含在地址转换请求中的虚拟地址对应的地址数据,将所读取的地址数据和连续存储的两个地址数据存储在第1级TLB中,读取所存储的地址数据,从页表22a的第2级层级中读取与已读取地址数据对应的地址数据,并将所读取的地址数据和连续存储的两个地址数据存储在第2级TLB中。
地址转换单元12b从第2级TLB中读取已存储的地址数据,从页表22a的第3级层级中读取与已读取地址数据对应的地址数据和连续存储的8个地址数据,将所读取的地址数据存储在第3级TLB中,从第3级TLB中读取所存储的地址数据,并利用所读取的地址数据将虚拟地址转换为物理地址。
已转换地址发送单元12c将已转换的地址发送给处理器20。已转换地址发送单元12c将由地址转换单元12b转换的数据发送给处理器20的CPU 21。
图5为根据第一实施例用于地址转换处理的处理程序的流程图。图6为根据第一实施例用于具体地址转换处理的处理程序的流程图。
如图5所示,地址转换设备10的地址转换请求判断单元12a在从处理器20的CPU 21接到地址转换请求后(在步骤S101中为“是”),判断地址转换请求是否与接收缓冲区有关(步骤S102)。
如果地址转换请求判断单元12a判定地址转换请求与接收缓冲区有关(在步骤S102中为“是”),地址转换单元12b从RB专用TLB 13a读取与包含在地址转换请求中的地址对应的地址数据,并利用所读取的地址数据执行地址转换(步骤S103)。
如果地址转换请求判断单元12a判定地址转换请求与接收缓冲区无关(在步骤S102中为“否”),地址转换单元12b从第1级至第3级TLB 13b读取与包含在地址转换请求中的地址对应的地址数据,并利用所读取的地址数据执行地址转换(步骤S104)。
以下参照图6详细说明地址转换。地址转换单元12b搜索与包含在地址转换请求中的虚拟地址对应的地址数据是否存在于代表TLB最后一级的第3级TLB中(步骤S1041)。如果与该虚拟地址对应的地址数据存在于第3级TLB中(在步骤S1041中为“是”),地址转换单元12b从第3级TLB中读取对应的地址数据,并利用所读取的地址数据将该虚拟地址转换为物理地址(步骤S1047)。
如果与包含在地址转换请求中的虚拟地址对应的地址数据不存在于第3级TLB中(在步骤S1041中为“否”),地址转换单元12b搜索与该虚拟地址对应的地址数据是否存在于第2级TLB中(步骤S1042)。如果与包含在地址转换请求中的虚拟地址对应的地址数据存在于第2级TLB中(在步骤S1042中为“是”),地址转换单元12b从第2级TLB中读取用于确定存储于页表22a的与第3级层级中的地址数据的位置的地址数据(例如,图3中的“PA(L2_0)”)。
地址转换单元12b从页表22a的第3级层级中读取与已读取地址数据对应的地址数据和连续存储的8个地址数据,并将读取的地址数据存储在第3级TLB中(步骤S1046)。地址转换单元12b从第3级TLB读取已存储的地址数据,并利用所读取的地址数据将虚拟地址转换为物理地址(步骤S1047)。
如果与包含在地址转换请求中的虚拟地址对应的地址数据不存在于第2级TLB中(在步骤S1042中为“否”),地址转换单元12b搜索与该虚拟地址对应的地址数据是否存在于第1级TLB中(步骤S1043)。如果与包含在地址转换请求中的虚拟地址对应的地址数据存在于第1级TLB中(在步骤S1043中为“是”),地址转换单元12b从第1级TLB中读取地址数据(例如,图3中的“PA(L1_1)”),从页表22a的第2级层级中读取与已读取地址数据对应的地址数据和连续存储的两个地址数据,并将读取的地址数据存储在2级TLB中(步骤S1045)。
地址转换单元12b从2级TLB中读取已存储的地址数据,从页表22a的第3级层级中读取与已读取地址数据对应的地址数据,将所读取的地址数据和连续存储的8个地址数据存储在第3级TLB中(步骤S1046),从第3级TLB中读取已存储的地址数据,并利用所读取的地址数据将虚拟地址转换为物理地址(步骤S1047)。
如果与包含在地址转换请求中的虚拟地址对应的地址数据不存在于第1级TLB中(在步骤S1043中为“否”),地址转换单元12b从页表22a的第1级层级中读取与包含在地址转换请求中的虚拟地址对应的地址数据和连续存储的两个地址数据,将所读取的地址数据存储在第1级TLB中(步骤S1044),读取所存储的地址数据,从页表22a的第2级层级中读取与已读取地址数据对应的地址数据和连续存储的两个地址数据,并将所读取的地址数据存储在第2级TLB中(步骤S1045)。
地址转换单元12b从第2级TLB中读取已存储的地址数据,从页表22a的第3级中读取与已读取地址数据对应的地址数据和连续存储的8个地址数据,将所读取的地址数据存储在第3级TLB中(步骤S1046),从第3级TLB中读取所存储的地址数据,并利用所读取的地址数据将虚拟地址转换为物理地址(步骤S1047)。
已转换地址发送单元12c将已转换的地址发送给处理器20。已转换地址发送单元12c将由地址转换单元12b转换的数据发送给处理器20的CPU 21。
根据第一实施例的地址转换设备10包括RB专用TLB 13a,RB专用TLB13a从存储于页表22a的地址数据中提取与分配通信数据期间主存储器22中使用的接收缓冲区对应的地址数据,并存储所提取的数据。
此外,地址转换设备10还包括第1级至第3级TLB 13b,第1级至第3级TLB 13b从存储于页表22a中的地址数据提取与主存储器22中除了接收缓冲区之外的其他区域对应的地址数据,并存储所提取的数据。地址转换请求判断单元12a判断地址转换请求是否与接收缓冲区有关。
如果地址转换请求与接收缓冲区有关,则地址转换单元12b利用存储于RB专用TLB 13a和/或页表22a中的地址数据执行地址转换。
如果地址转换请求与接收缓冲区无关,地址转换单元12b利用存储于第1级至第3级TLB 13b和/或页表22a中的地址数据执行地址转换。这样,地址转换设备10分开控制常用的接收缓冲区和除接收缓冲区之外的其他区域。
如果地址转换请求与接收缓冲区有关,地址转换设备10访问RB专用TLB 13a并利用存储于接收缓冲区中的地址数据执行地址转换,从而能够减少缓存未命中并提高处理速度。
根据第一实施例,页表22a具有多级结构。第1级至第3级TLB 13b类似地具有多级结构并且存储地址数据并使得地址数据的数目在连续的级别中增加,直到最后一级。这样,常用的最后一级具有最大数目的地址数据,从而能够减少缓存未命中并提高处理速度。
此外,根据第一实施例,当利用存储于页表22a中的地址数据而不是利用存储于第1级至第3级TLB 13b中的地址数据执行地址转换时,地址转换单元12b从页表22a读取连续存储于页表22a中的地址数据和用于地址转换的地址数据,并将所读取的数据存储于第1级至第3级TLB 13b中,从而在例如连续数据的地址转换时不必从主存储器读取地址数据,并能够提高处理速度。
根据本发明,当传输分配给有序(regular)地址的数据时(以下称作“跨越式传输(stride transfer)”),可以估计随后需要转换的数据,从而可以提前将所估计的要转换的数据缓存(cache)在TLB中。
图7为根据本发明第二实施例用于地址转换设备10的处理操作的处理程序的流程图。如图7所示,在基本操作设置中,地址转换设备10的微控制器将与元素(element)大小、跳跃距离(skip size)、总通信量有关的数据分配至MMU(步骤S201)。MMU根据接收的数据执行与TLB产生电路(generating circuit)有关的操作设置(步骤S202)。接到地址转换请求后,微控制器判断该地址转换是否与跨越式传输有关。如果该地址转换与跨越式传输有关,微控制器向MMU发出跨越式传输指令(步骤S203)。在接到跨越式传输指令后,MMU使用常规方法执行第一次地址转换,并将结果返回微控制器(步骤S204)。接到下一个地址转换请求后,微控制器根据预设的结构数据产生与估计的区域有关的TLB(步骤S205)。
微控制器向MMU发出与第二次跨越式传输有关的地址转换请求(步骤S206)。MMU将转换结果从预先产生的TLB发送至微控制器(步骤S207)。MMU根据总通信量判断该地址转换是否为最后一次地址转换(步骤S208)。如果该地址转换不是最后一次地址转换(在步骤S208中为“否”),则MMU重复类似的处理(步骤S205至S208)。如果该地址转换是最后一次地址转换(在步骤S208中为“是”),则MMU终止预读取并结束该处理。
在数据的跨越式传输期间,基于与跨越式传输相关的数据,微控制器从页表22a读取被估计为随后接收的数据的地址转换所需的地址数据,并重新将所读取的地址数据存储于第1级至第3级TLB 13b中。通过预先在第1级至第3级TLB 13b中存储所需的地址数据,可以减少从主存储器22读取地址数据的等待时间,从而能够提高处理速度。
第一实施例中说明的页表存储地址数据并使得条目的数目在连续的级别中增加,直到最后一级。然而,本发明并不限于此,也可以使用存储地址数据而使得每一级具有相同数目的条目的页表。
当在TLB中存储地址数据时,第一实施例中说明的地址转换设备读取连续存储的8个地址数据和用于地址转换的地址数据。然而,本发明并不限于此,也可以使用只读取用于地址转换的地址数据的地址转换设备,或者读取连续存储的任意数目的地址数据和用于地址转换的地址数据的地址转换设备。
所示设备的组成部件仅为概念性的,而不必一定在物理上类似于附图中所示的结构。例如,该设备不必一定具有所示的结构。根据负载或设备的使用方式,该设备的整体或部分在功能上或者在物理上都可以分离或整合。例如,地址转换请求判断单元12a和地址转换单元12b可以整合。此外,该设备所执行的处理功能可全部或部分通过CPU或CPU执行的程序或者通过使用布线逻辑电路(wired logic)的硬件而实现。
本实施例中说明的所有自动处理的全部或部分可通过人工操作执行。同样,本实施例中说明的所有人工处理的全部或部分可通过现有方法自动执行。除非另外指明,包含各种参数的处理顺序、控制顺序、具体名称以及数据都可以按需要改变。
本实施例中说明的通信控制方法可以使用计算机如个人计算机或工作站执行预先形成的程序来实现。该程序可以通过网络如因特网等分布。该程序也可以记录于计算机可读记录介质,例如硬盘、软盘(FD)、压缩盘-只读存储器(CD-ROM)、磁光(MO)盘、数字通用盘(DVD)等等,由计算机从记录介质上读取并执行。
根据本发明的实施例,地址转换设备包括第一地址转换表,该第一地址转换表从存储于页表中的地址数据提取与主存储器中用于分配通信数据的接收缓冲区对应的地址数据,并存储所提取的数据。此外,该地址转换设备还包括第二地址转换表,该第二地址转换表从存储于页表中的地址数据提取与主存储器中除了接收缓冲区之外的其他区域对应的地址数据,并存储所提取的数据。地址转换请求判断单元判断地址转换请求是否与接收缓冲区有关。如果该地址转换请求与接收缓冲区有关,地址转换设备利用存储于第一地址转换表和/或页表中的地址数据执行地址转换。如果该地址转换请求与接收缓冲区无关,地址转换设备利用存储于第二地址转换表和/或页表中的地址数据执行地址转换。这样,该地址转换设备分别控制常用的接收缓冲区和除接收缓冲区之外的其他区域。如果地址转换请求与接收缓冲区有关,该地址转换设备访问第一地址转换表并利用存储于接收缓冲区中的地址数据执行地址转换,从而能够在通信数据分配期间减少缓存未命中并提高处理速度。
此外,根据本发明的实施例,页表具有多级结构。第二地址转换表具有多级结构,而且存储地址数据并使得地址数据的数目在连续的级别中增加,直到最后一级。这样,常用的最后一级具有最大数目的地址数据,从而能够减少缓存未命中并提高处理速度。
此外,根据本发明的实施例,当利用存储于页表中的地址数据而不是利用存储于第二地址转换表中的地址数据执行地址转换时,地址转换设备从页表读取连续存储于页表中的地址数据和用于地址转换的地址数据,并将所读取的地址数据重新存储于第二地址转换表中,从而在例如连续数据的地址转换期间,不必从主存储器读取地址数据,而能够提高处理速度。
此外,根据本发明的实施例,在数据的跨越式传输期间,基于与跨越式传输相关的数据,微控制器从页表读取被估计为随后接收的数据的地址转换所需的地址数据,并将所读取的地址数据重新存储于第二地址转换表中。通过预先在第二地址转换表中存储所需的地址数据,可以减少从主存储器读取地址数据的等待时间,从而能够提高处理速度。
尽管为了进行完整且清楚的公开而就具体实施例描述了本发明,但所附权利要求书不因此而受到限制,而且应解释为包括本领域技术人员可想到的且完全落入本发明提出的基本启示范围内的所有修改和可选结构。
Claims (4)
1.一种地址转换设备,其利用页表来响应地址转换请求而转换地址,该页表存储用于在虚拟地址和物理地址之间转换地址的地址数据,该地址转换设备包括:
第一地址转换表,从存储于该页表中的地址数据提取第一地址数据并存储该第一地址数据,该第一地址数据与主存储器中用于交换通信数据的接收缓冲区对应;
第二地址转换表,从存储于该页表中的地址数据提取第二地址数据并存储该第二地址数据,该第二地址数据与主存储器中除了该接收缓冲区之外的其他区域对应;
地址转换请求判断单元,判断该地址转换请求是否与该接收缓冲区有关;以及
地址转换单元,基于该地址转换请求判断单元的判断结果转换该地址,其中,
当该地址转换请求判断单元判定该地址转换请求与该接收缓冲区有关时,该地址转换单元利用该第一地址数据和存储于该页表中的地址数据至少其中之一转换该地址;以及,
当该地址转换请求判断单元判定该地址转换请求与该接收缓冲区无关时,该地址转换单元利用该第二地址数据和存储于该页表中的地址数据至少其中之一转换该地址。
2.如权利要求1所述的地址转换设备,其中:
该页表具有多级结构;以及
该第二地址转换表基于该多级结构形成,并以如下方式存储该第二地址数据:地址数据的数目在各连续的级别中增加,直到最后一级。
3.如权利要求1所述的地址转换设备,其中:
当利用存储于该页表中的地址数据而不是利用该第二地址数据转换该地址时,该地址转换单元从该页表读取用于转换该地址的第三地址数据和与该第三地址数据连续存储的第四地址数据,并将该第三地址数据和该第四地址数据存储于该第二地址转换表中。
4.如权利要求1所述的地址转换设备,其中:
在跨越式传输数据期间,该地址转换单元基于与该跨越式传输有关的数据,从该页表读取第五地址数据并将该第五地址数据存储于该第二地址转换表中,该第五地址数据被估计为对于随后接收的数据进行地址转换是必需的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006053381A JP2007233615A (ja) | 2006-02-28 | 2006-02-28 | アドレス変換装置 |
JP2006053381 | 2006-02-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101030173A true CN101030173A (zh) | 2007-09-05 |
Family
ID=38048066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100925328A Pending CN101030173A (zh) | 2006-02-28 | 2006-06-15 | 地址转换设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070204129A1 (zh) |
EP (1) | EP1826676A1 (zh) |
JP (1) | JP2007233615A (zh) |
KR (1) | KR100833142B1 (zh) |
CN (1) | CN101030173A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990983A (zh) * | 2017-03-21 | 2017-07-28 | 北京新能源汽车股份有限公司 | 单片机烧写方法、装置、***及单片机 |
WO2021053420A1 (en) * | 2019-09-17 | 2021-03-25 | International Business Machines Corporation | Identifying translation errors |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009142631A1 (en) * | 2008-05-21 | 2009-11-26 | Hewlett-Packard Development Company, L.P. | Translation look-aside buffer |
KR101020295B1 (ko) * | 2009-03-30 | 2011-03-07 | 주식회사 하이닉스반도체 | 어드레스 변환회로 및 이를 이용한 반도체 메모리 장치 |
US9092358B2 (en) * | 2011-03-03 | 2015-07-28 | Qualcomm Incorporated | Memory management unit with pre-filling capability |
US9645934B2 (en) * | 2013-09-13 | 2017-05-09 | Samsung Electronics Co., Ltd. | System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer |
US10296465B2 (en) * | 2016-11-29 | 2019-05-21 | Board Of Regents, The University Of Texas System | Processor using a level 3 translation lookaside buffer implemented in off-chip or die-stacked dynamic random-access memory |
US10719452B2 (en) * | 2018-06-22 | 2020-07-21 | Xilinx, Inc. | Hardware-based virtual-to-physical address translation for programmable logic masters in a system on chip |
JP2021196884A (ja) | 2020-06-15 | 2021-12-27 | 富士通株式会社 | 半導体装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62222344A (ja) * | 1986-03-25 | 1987-09-30 | Hitachi Ltd | アドレス変換機構 |
US5412787A (en) * | 1990-11-21 | 1995-05-02 | Hewlett-Packard Company | Two-level TLB having the second level TLB implemented in cache tag RAMs |
US5586283A (en) * | 1993-10-07 | 1996-12-17 | Sun Microsystems, Inc. | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer |
JPH07319772A (ja) * | 1994-05-20 | 1995-12-08 | Hitachi Ltd | アドレス変換制御装置 |
EP0813709B1 (en) * | 1995-03-03 | 2007-10-17 | Fujitsu Limited | Parallel access micro-tlb to speed up address translation |
US6138225A (en) * | 1997-12-24 | 2000-10-24 | Intel Corporation | Address translation system having first and second translation look aside buffers |
JP3517580B2 (ja) | 1998-02-24 | 2004-04-12 | 株式会社日立製作所 | プロセッサ装置 |
DE10002120B4 (de) * | 1999-02-13 | 2006-04-20 | International Business Machines Corp. | Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung |
JP3476402B2 (ja) | 1999-11-11 | 2003-12-10 | Necエレクトロニクス株式会社 | アドレス変換装置及びアドレス変換方法 |
US6625714B1 (en) | 1999-12-17 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Parallel distributed function translation lookaside buffer |
EP1215582A1 (en) * | 2000-12-15 | 2002-06-19 | Texas Instruments Incorporated | Cache memory access system and method |
US6963964B2 (en) * | 2002-03-14 | 2005-11-08 | International Business Machines Corporation | Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses |
US7089396B2 (en) * | 2002-10-10 | 2006-08-08 | International Business Machines Corporation | Method and profiling cache for management of virtual memory |
US7103748B2 (en) * | 2002-12-12 | 2006-09-05 | International Business Machines Corporation | Memory management for real-time applications |
US7284100B2 (en) * | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
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 |
US20050160229A1 (en) * | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
JP4233492B2 (ja) | 2004-06-02 | 2009-03-04 | 富士通マイクロエレクトロニクス株式会社 | アドレス変換装置 |
US20060224815A1 (en) * | 2005-03-30 | 2006-10-05 | Koichi Yamada | Virtualizing memory management unit resources |
-
2006
- 2006-02-28 JP JP2006053381A patent/JP2007233615A/ja not_active Withdrawn
- 2006-05-23 EP EP06252688A patent/EP1826676A1/en not_active Withdrawn
- 2006-05-24 US US11/439,348 patent/US20070204129A1/en not_active Abandoned
- 2006-06-13 KR KR1020060052815A patent/KR100833142B1/ko not_active IP Right Cessation
- 2006-06-15 CN CNA2006100925328A patent/CN101030173A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106990983A (zh) * | 2017-03-21 | 2017-07-28 | 北京新能源汽车股份有限公司 | 单片机烧写方法、装置、***及单片机 |
WO2021053420A1 (en) * | 2019-09-17 | 2021-03-25 | International Business Machines Corporation | Identifying translation errors |
US11243864B2 (en) | 2019-09-17 | 2022-02-08 | International Business Machines Corporation | Identifying translation errors |
Also Published As
Publication number | Publication date |
---|---|
KR100833142B1 (ko) | 2008-05-29 |
EP1826676A1 (en) | 2007-08-29 |
KR20070089560A (ko) | 2007-08-31 |
US20070204129A1 (en) | 2007-08-30 |
JP2007233615A (ja) | 2007-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101030173A (zh) | 地址转换设备 | |
CN1306420C (zh) | 利用永久历史页表数据预取数据到高速缓存的装置和方法 | |
TWI684099B (zh) | 剖析快取替代 | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
US20170262372A1 (en) | Cache Memory System and Method for Accessing Cache Line | |
US20170153981A1 (en) | Using Shared Virtual Memory Resources for Performing Memory-Mapping | |
CN1296838C (zh) | 在分段操作***中提供用于页面转换的预转换段的设备和方法 | |
CN1700196A (zh) | 通过直接存储器访问控制器传输数据的***及方法 | |
WO2015110046A1 (zh) | Cache的管理方法及装置 | |
CN1940922A (zh) | 一种提高搜索信息速度的方法及*** | |
CN1248742A (zh) | 用于多-线程虚拟机的存储器分配的方法和装置 | |
CN1794208A (zh) | 大容量存储设备和用于动态管理大容量存储设备的方法 | |
CN100342353C (zh) | 嵌入式操作***中进程映射实现方法 | |
CN101063957A (zh) | 管理锁定的高速缓冲存储器中的组替换的***和方法 | |
CN1819544A (zh) | 一种基于bitmap表的缓存管理方法 | |
CN101046786A (zh) | 一种实现高效dma传输的dma控制器及传输方法 | |
CN1851677A (zh) | 嵌入式处理器***及其数据操作方法 | |
CN1896972A (zh) | 用于虚实地址变换及读写高速缓冲存储器的方法及装置 | |
CN107423229A (zh) | 一种面向页级ftl的缓冲区改进方法 | |
CN1924816A (zh) | 提高多核***访问临界资源速度的方法和装置 | |
CN1687899A (zh) | 将应用程序动态下载到用户识别模块的方法、***及模块 | |
WO2017086987A1 (en) | In-memory data shuffling | |
CN1896960A (zh) | 一种快照***及方法 | |
CN1260656C (zh) | 能够使用虚拟存储器处理模式的数据处理*** | |
CN1655130A (zh) | 一种获取硬盘中数据的方法 |
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: 20070905 |