[go: up one dir, main page]

CN1704912A - 地址转换器和地址转换方法 - Google Patents

地址转换器和地址转换方法 Download PDF

Info

Publication number
CN1704912A
CN1704912A CNA2004100910944A CN200410091094A CN1704912A CN 1704912 A CN1704912 A CN 1704912A CN A2004100910944 A CNA2004100910944 A CN A2004100910944A CN 200410091094 A CN200410091094 A CN 200410091094A CN 1704912 A CN1704912 A CN 1704912A
Authority
CN
China
Prior art keywords
address
real
virtual
address translation
translator
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
Application number
CNA2004100910944A
Other languages
English (en)
Other versions
CN1704912B (zh
Inventor
高桥清刚
池敦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Socionext Inc
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN1704912A publication Critical patent/CN1704912A/zh
Application granted granted Critical
Publication of CN1704912B publication Critical patent/CN1704912B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation

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

地址转换器和地址转换方法
技术领域
本发明涉及地址转换器和地址转换方法,更具体地说,涉及用于将虚拟地址转换成真实地址的地址转换器和地址转换方法。
背景技术
由于近来资源量的增加,各种系统对大的真实地址空间的需求增加了,需要更灵活和更便宜的地址转换器。对于地址转换器来说,虚拟存储器方案将程序指定的虚拟地址转换为向真实存储器显示的真实地址,该方案极大地减小了对存储空间的限制。
一些采用所述虚拟存储器方案的传统的地址转换器具有根据管理员模式或用户模式而切换的地址转换缓冲器。用于管理员模式的地址转换缓冲器不需要保留进程号,因此节省了存储器资源(例如参照日本未审查专利公布号6-52058(第[0016]-[0018]段,图1))。
现在更多的提供实时处理的系统以混合方法运行多种操作系统(OS)。
发明内容
本发明提供用于将虚拟地址转换为真实地址的地址转换器。该地址转换器包括用于基于处理器运行的多种操作系统来对所述虚拟地址和所述真实地址进行分类和存储的多个地址转换缓冲器,以及用于根据正在运行的操作系统,访问一个地址转换缓冲器来将所述虚拟地址转换为所述真实地址的地址转换控制器。
而且,本发明提供一种用于将虚拟地址转换为真实地址的地址转换方法,其根据正在运行的操作系统,通过访问用于基于处理器运行的多种操作系统将所述虚拟地址和所述真实地址进行分类和存储的地址转换缓冲器中的一个,将所述虚拟地址转换为所述真实地址。
通过下面的描述,结合通过举例的方法而图示本发明的优选实施例的附图,本发明的上述和其它特性和优点将会很明显。
附图说明
图1是本发明的地址转换器的原理图;
图2根据第一实施例,示出了微处理器的硬件结构的例子;
图3示出了核心的硬件结构的例子;
图4示出了缓存单元的硬件结构的例子;
图5示出了ITRON和Linux的存储器映射;
图6示出了向OS分配地址映射寄存器(AMR)和转换参考缓冲器(Translation Look-aside Buffer,TLB);
图7是根据第一实施例的存储器管理单元(MMU)的功能性方框图;
图8是根据第二实施例的MMU的功能性方框图;
图9解释了真实地址输出中的操作;
图10是根据第三实施例的MMU的功能性方框图;
图11示出了AMR的存储器映射;
图12是根据第四实施例的MMU的功能性方框图;
图13根据第五实施例,示出了向MMU发射的命令。
具体实施方式
如在背景技术的描述中所陈述的那样,因为例如由于地址缓冲器的内容可能改变而导致OS不使用相同的地址映射,所以,以混合方式运行多种OS的系统会由于算法和控制电路而出现高负载的问题。
另外,由于高的系统负载,这种系统会因为在OS之间的切换中发生的长延迟而出现开销问题。
出于对前面所述内容的考虑而提出本发明,并将提供能够减小系统负载和在OS之间切换的开销的地址转换器和地址转换方法。
现在参照图1详细描述本发明的原理。
参照该图,本发明的地址转换器具有地址转换缓冲器1a和1b,以及地址转换控制器2。
基于处理器运行的多种操作系统,地址转换缓冲器1a和1b将虚拟地址和真实地址分类并保存。例如,地址转换缓冲器1a存储对应于操作系统OS1的虚拟地址和真实地址,而地址转换缓冲器1b存储对应于操作系统OS2的虚拟地址和真实地址。
地址转换控制器2访问地址转换缓冲器1a、1b,以根据正在运行的操作系统OS1、OS2将虚拟地址转换为真实地址。例如,当处理器运行操作系统OS1时,地址转换控制器2访问地址转换缓冲器1a以进行“从虚拟到真实”的地址转换。
由于当操作系统切换时不需要改变地址转换缓冲器1a和1b的内容,因此可以减小系统负载。另外,可以减小在操作系统之间切换的开销。
现在将详细描述第一实施例。
图2根据第一实施例,示出了微处理器的硬件结构的例子。
参照该图,微处理器11是单片半导体设备,其具有核心12、同步DRAM(SDRAM)控制器13、局域总线接口14、直接存储器访问控制器(DMAC)15、总线桥16、调试支持单元(DSU)17、时钟复位电源控制(CRPC)18、定时器19、通用异步收发器(UART)20、因特网控制器(IRC)21和通用输入/输出(GPIO)22。核心12可以是算术逻辑单元(ALU)。SDRAM 23、ASIC引擎24和闪存25被连接到微处理器11。
核心12包括中央处理单元(CPU)和缓存单元。核心12的CPU根据例如存储在SDRAM 23中的数据(包括程序)来控制每个单元。在控制操作中,CPU使用缓存单元来载入和存储数据。
现在参照图3来详细描述核心12。
参照该图,核心12包括缓存单元31、整型单元32和浮点单元33。整型单元32和浮点单元33是CPU的一部分,通过与缓存单元31交换数据来执行整型运算和浮点运算。
缓存单元31具有指令缓存、地址转换单元(存储器管理单元)和数据缓存。存储器管理单元使用虚拟地址方法来控制数据的地址转换,所述数据在指令缓存或数据缓存与整型单元32或浮点单元33之间交换。注意指令缓存是用于存储指令代码的缓存,数据缓存是用于存储数据的缓存。
参照图4详细描述缓存单元31。
参照该图,缓存单元31具有存储器管理单元(MMU)41、指令缓存46和数据缓存47。专用寄存器(SR)48被连接到MMU 41。SR 48可以被安装在缓存单元31中,或外部附加到缓存单元31。
MMU 41具有MMU控制器42、指令地址映射寄存器(IAMR)43、数据地址映射寄存器(DAMR)44和转换参考缓冲器(TLB)45。
SR 48具有硬件状态寄存器(HSR)48a、指令地址映射有效寄存器(IAMVR)48b和数据地址映射有效寄存器(DAMVR)48c。
IAMR 43、DAMR 44和TLB 45存储由程序指定的虚拟地址和向实际存储器显示的真实地址,两种地址相互关联。
IAMR 43和DAMR 44静态存储虚拟地址和真实地址。即,一旦一个虚拟地址和一个真实地址被程序存储在IAMR 43或DAMR 44中,那么它们的对应关系就固定了。
TLB 45动态存储虚拟地址和真实地址。即,当既不在缓存中也不在TLB中的新数据被另外寄存在指令缓存46或数据缓存47中时,最近最少使用的数据的虚拟地址和真实地址就从TLB 45中被取出。然后新数据的虚拟地址和真实地址被存储在TLB 45中。
MMU控制器42通过访问HSR 48来控制上述存储部件。
注意,IAMR 43存储对应于指令编码的虚拟地址和真实地址,DAMR44存储对应于数据的虚拟地址和真实地址。由于TLB 45动态地工作,所以它能够处理大型数据。
微处理器11能够以混合方式运行多种OS以执行实时处理。例如,一般情况下Linux运行,当需要实时处理(例如产生中断)时,ITRON运行。在下面的描述中,微处理器11运行的Linux和ITRON作为OS。
ITRON使用的存储区域比Linux的小得多。内核使用了Linux的存储区域的一小部分,用户应用使用了其中的一大部分。因此,MMU 41将静态的IAMR 43和DAMR 44分配给ITRON和Linux内核,将动态的TLB45分配给Linux用户应用。
图5示出了对应于ITRON和Linux的存储器映射。
该图示出了对应于ITRON和Linux的虚拟空间。对应于Linux的虚拟空间被分割为内核区域51和用户应用区域52。内核区域51具有Kmap区域和驱动器区域。对应于ITRON的存储空间比对应于Linux的小得多。
图6示出了向OS分配AMR和TLB。
如该图所示,TLB被分配给Linux用户应用,而AMR被分配给Linux内核和ITRON。
该图中的TLB相应于图4的TLB 45,AMR相应于IAMR 43和DAMR 44。为了简化解释,示出了AMR而没有区分对应于指令的AMR(IAMR 43)和对应于数据的AMR(DAMR 44)。
现在参照图7,描述根据第一实施例的MMU 41的功能。
参照该图,MMU 41具有AMR 61和62、TLB 63和选择器64。TLB63相应于图4的TLB 45。AMR 61和62相应于图4的IAMR 43和DAMR44,但是在示出的时候没有区分对应于指令和对应于数据的AMR。
AMR 61存储被ITRON使用的虚拟地址和真实地址。
AMR 62存储被Linux内核使用的虚拟地址和真实地址。
TLB 63存储被Linux用户应用使用的虚拟地址和真实地址。
选择器64根据OS从CPU接收控制信号,并基于所述控制信号,通过访问AMR 61、62和/或TLB 63来选择性地输出从虚拟地址转换得到的真实地址。
例如,在ITRON运行时,当选择器64从CPU接收到控制信号时,它通过访问AMR 61,选择性地输出从虚拟地址转换得到的真实地址。另一方面,在Linux运行时,当选择器64从CPU接收到控制信号时,它通过访问AMR 62和TLB 63,选择性地输出从虚拟地址转换得到的真实地址。即,选择器64根据CPU所运行的OS来为“从虚拟到真实”的地址转换选择AMR 61、62和/或TLB 63。可以从CPU以外的控制设备输出控制信号。
如图6所示,Linux和ITRON都使用AMR。因此,如果只提供一个AMR,那么它们可能会互相干扰。为了避免干扰,AMR的内容应该根据正在运行的是Linux还是ITRON而改变。
本发明提供对应于ITRON的AMR 61和对应于Linux的AMR 62和TLB 63,以基于OS并响应于控制信号来输出转换得到的真实地址。因此,AMR的内容不必改变,其结果是减小了由于算法和控制电路而出现的系统负载。另外,AMR中的内容不变可以减小处理中的开销。
现在参照附图详细描述第二实施例。
第一实施例对于Linux内核和ITRON使用不同的AMR。但是,第二实施例使用一个AMR并与第一实施例具有相同的效果。
图8根据第二实施例,示出了MMU的功能性方框图。
参照该图,MMU具有AMR 71、TLB 72和选择器73。TLB 72相应于图4的TLB 45。AMR 71相应于图4的IAMR 43和DAMR 44,但是在示出的时候没有区分对应于指令和对应于数据的AMR。
AMR 71存储由ITRON和Linux内核使用的虚拟地址和真实地址。注意,每个虚拟/真实地址对都被指定了一个有效位71a,如该图所示。有效位是表明该虚拟/真实地址对是属于ITRON和Linux中哪一个的信息。例如,有效位0表明虚拟/真实地址对被Linux内核使用,而有效位1表明虚拟/真实地址对被ITRON使用。
TLB 72存储被Linux用户应用使用的虚拟地址和真实地址。
选择器73基于有效位71a和HSR的内容,选择性地输出使用AMR71和/或TLB 72从虚拟地址转换得到的真实地址。HSR是例如图4的HSR48a,其存储关于正在运行的OS的信息。
基于有效位71a,选择器73输出使用AMR 71转换得到的真实地址。例如,当Linux运行时,选择器73输出有效位为0的转换得到的真实地址。当ITRON运行时,选择器73输出有效位为1的转换得到的真实地址。
有效位71a与虚拟地址/真实地址相关联地存储在AMR 71中。但是,可以提供不同的寄存器(地址映射有效寄存器(AMVR))来存储有效位。在这种情况下,选择器73访问AMVR以输出真实地址。注意,图4的IAMVR 48b和DAMVR 48c相应于该AMVR。如果只为OS提供一个AMVR,那么在每次切换OS时,AMVR的内容应该被保存在例如RAM这样的存储设备中并从中恢复。
另外,根据HSR的内容,选择器73输出使用TLB 72转换得到的真实地址。例如,当ITRON运行时,选择器73不输出来自TLB 72的真实地址。相反,当Linux运行时,选择器73输出来自TLB 72的真实地址。换句话说,选择器73根据HSR的内容来使得来自TLB 72的输出有效或无效。
图9解释了如何通过使用AMVR来输出真实地址。
所示的HSR的EDAT是用于确定使TLB 72的真实地址有效或无效的信息。EDAT=ON表示Linux正在运行,因此选择器73使得来自TLB 72的真实地址有效(ON)。另一方面,EDAT=OFF表示ITRON正在运行,因此选择器73使得来自TLB 72的真实地址无效(OFF)。
选择器73输出AMR 71中相应于存储在AMVR中的位0的真实地址。例如,图9所示的AMVR的最左边的位相应于图8的AMR 71的最上面一行,而AMVR的最右边的位相应于AMR 71的最下面一行。当AMVR指示011011011时,选择器73输出从图8的AMR 71从上面数第一、第四和第七行的转换得到的真实地址。在100100100的情况下,选择器73输出从图8的AMR 71从上面数第二、第三、第五、第六、第八和第九行的转换得到的真实地址。
简而言之,选择器73根据AMVR中设置的位来输出对应于Linux内核或ITRON的真实地址。
如上所述,向每个虚拟/真实地址对指定有效位,并且使得TLB中的真实地址有效或无效。因此,AMR的内容不是必须改变的,其结果是减小了由于算法和控制电路而出现的系统负载,也减小了处理中的开销。另外,由于可以使得TLB的真实地址有效或无效,因此可以防止ITRON和Linux用户应用互相干扰。
TLB一般是组相联RAM或全相联RAM。组相联RAM容易安装,但只处理固定的页大小。全相联RAM能够处理各种页大小,但很难安装并会增加电路规模。
因此,使用组相联RAM作为TLB,使用全相联RAM作为AMR。例如,图7所示的MMU使用全相联RAM作为AMR 61和62,使用组相联RAM作为TLB 63。图8所示的MMU使用全相联RAM作为AMR 71,使用组相联RAM作为TLB 72。
每个传统的微处理器只运行一种OS,即使当有两个地址转换缓冲器(例如AMR和TLB)可以使用时,对组相联RAM和全相联RAM的使用也是根据OS而固定的。即,当微处理器工作时,对它们的使用不能改变。
根据本发明,为了运行两种OS,微处理器关联使用TLB(组相联)和AMR(全相联)来管理虚拟地址和真实地址,并根据正在运行的OS来适当地改变对TLB和AMR的使用。这可以减小OS间切换的开销,并可以根据OS,通过使用组相联和全相联以及简单便宜的MMU的硬件结构来设置最优状态。
现在参照附图详细描述第三实施例。
在组相联TLB的情况下,为了在TLB的一整行中存储新的真实地址,真实地址输入重写最近最少使用的地址。如果这种重写经常发生,那么性能就会极大地恶化。作为避免性能恶化的有效技术,提高TLB中每个组的行数。但是,该技术增大了电路规模和成本。
由于系统失效抖动现象更可能连续出现,所以第三实施例提供防止性能恶化的技术,其中,从TLB取出的固定页的条目被存储在全相联AMR的一部分中,当TLB已满时,地址被直接寄存在AMR中。
图10是根据第三实施例的MMU的功能性方框图。
参照该图,MMU具有TLB 81、AMR 82和选择器83。
TLB 81是N路组相联TLB,其被划分为N行(N为整数)。AMR 82是全相联。
当Linux发出寄存新虚拟地址的请求时,选择器83确定TLB 81是否在相应行有空闲空间。如果TLB 81没有空闲空间,那么选择器83将存储最近最少使用的真实地址的行的数据移入AMR 82。然后选择器83将所述新虚拟地址寄存在TLB 81的空闲空间中。可替换地,选择器83可以将Linux的新虚拟地址直接寄存在AMR 82中。
如参照图6所描述的那样,AMR被分配给静态ITRON和Linux内核。因此,应当在AMR 82的静态区域内创建对应于动态Linux用户应用的区域。
图11示出了AMR的存储器映射。
所示的存储器映射84属于AMR。存储器映射84具有对应于ITRON、Linux内核和Linux用户应用的区域。因此,TLB中对应于用户应用的数据可以被移入AMR中。
如上所述,从TLB中取出的固定页的条目被保存在AMR的一部分中。可替换地,当TLB没有空闲空间时,在AMR中进行直接寄存。这可以减少抖动(thrashing)的出现。
由于这些技术可以实现这种减少,而不增加TLB中每个组的行数,因此可以控制电路规模。
注意,甚至可以通过将从全相联缓冲器(AMR)中取出的最近最少使用的数据存储在组相联缓冲器(TLB)中,从而减少抖动的出现。
接下来,参照附图详细描述第四实施例。
如图11所示,AMR应该被分配给动态Linux用户应用,以使Linux用户应用不与Linux内核和ITRON互相干扰。换句话说,应该进行这种分配,以使CPU不会在运行ITRON时访问对应于Linux用户应用的区域,反过来CPU也不会在运行Linux时访问对应于ITRON的区域。
对于该分配来说,向每个虚拟/真实地址对给出条目信息,所述条目信息表明虚拟地址和真实地址是动态条目(对应于Linux用户应用)还是静态条目(对应于Linux内核或ITRON)。然后基于向虚拟/真实地址对给出的条目信息,根据OS来进行地址转换。
图12是根据第四实施例的MMU的功能性方框图。
参照该图,MMU具有AMR 91和选择器92。注意,TLB没有示出。
AMR 91存储被ITRON、Linux内核和Linux用户应用所使用的虚拟地址和真实地址。注意,如该图所示,向每个虚拟/真实地址对给出了条目信息。所述条目信息表明虚拟地址和真实地址是动态条目还是静态条目。
例如,向被ITRON和Linux内核使用的虚拟/真实地址对给出条目信息S,表明其为静态条目。向被Linux用户应用使用的虚拟/真实地址对给出条目信息D,表明其为动态条目。注意,当虚拟地址和真实地址被寄存在AMR 91中时,给出所述条目信息。
选择器92基于条目信息,根据操作模式(当ITRON运行时为静态模式或当Linux运行时为动态模式)。例如,在静态模式中,选择器92输出从条目信息为S的虚拟地址转换得到的真实地址。另一方面,在动态模式中,选择器92输出条目信息为D的真实地址。
另外,在选择器92中,地址获取优先权在动态模式中被设置为从动态条目到静态条目的顺序。地址获取优先权在静态模式中被设置为从静态条目到动态条目的顺序。这是因为,在动态条目和静态条目使用相同的区域,并且两个不同的真实地址对应于相同的虚拟地址的情况下,当发出将虚拟地址转换为真实地址的请求时,所述两个真实地址被获取。为了避免这种状况的发生,例如在动态模式中,先执行基于动态条目的“从虚拟到真实”的地址转换,如果相应的真实地址不存在,那么执行基于静态条目的地址转换。
如上所述,向每个虚拟/真实地址对给出说明是动态条目还是静态条目的条目信息,并被存储。然后,基于所述条目信息,根据操作模式输出真实地址。这可以防止动态条目和静态条目互相干扰。
另外,在Linux内核区域的一部分中创建了Linux用户区域(用户应用区域)。为了动态地改变该用户区域,内核区域被设置为用于静态条目的区域,用户区域被设置为用于动态条目的区域。然后,Linux中的获取优先权被设置为从动态条目到静态条目的顺序,于是从用户区域到内核区域地执行获取。另外,ITRON中的获取优先权被设置为从静态条目到动态条目的顺序,于是从内核区域到用户区域地执行获取。通过这样做,可以很容易地设置灵活的地址转换。
注意,组相联中的动态条目由于固定的页大小而被称为固定条目,而全相联中的静态条目由于可变的页大小而被称为可变条目。
现在参照附图详细描述第五实施例。
如在第四实施例中描述的那样,能够同时执行动态地址转换和静态地址转换的地址转换器非常灵活而且有成本效益。但是,为了访问希望的动态条目或静态条目的数据,就需要改变操作模式。第五实施例提供了一种LRA命令,以在不考虑操作模式的情况下访问希望的静态条目或动态条目。另外,通过在虚拟地址=真实地址处使用多个位(页内(in-page)偏移位)来向CPU通报关于例如不能执行地址转换的情况的异常报告。
图13根据第五实施例,示出了向MMU发射的命令。
如该图所示,该命令被划分为三个字段101、102和103。字段101表明能够在不考虑操作模式的情况下进行所希望的对动态条目和静态条目的访问的程序命令代码(LRA)。字段102包含要被转换的地址。字段103包括说明了操作模式的信息。另外,还设置了表明是否需要关于地址转换能否执行的报告的信息。注意,该图中x、y、z是0或1。
以图12的MMU为例,当字段103包含S=0时,不为了地址转换而搜索AMR 91的静态条目。相反,当S=1时,则为了地址转换而搜索AMR 91的静态条目。当D=0时,不为了地址转换而搜索AMR 91和TLB的动态条目。当D=1时,则为了地址转换而搜索AMR 91和TLB的动态条目。
于是,通过设置S,D=1,0,可以实现与静态模式相同的操作。通过设置S,D=0,1,可以实现与动态模式相同的操作。通过设置S,D=1,1,不论操作模式如何,两种条目都被搜索。
因此,不论操作模式如何,都可以访问所希望的动态条目和静态条目。
当字段103表明E=0时,不向CPU发送异常报告。相反,当E=1时,向CPU发送异常报告。例如,当相应于被请求转换的虚拟地址的真实地址不存在时,那么当E=0时不向CPU告知此事,或者当E=1时向CPU告知此事。
传统上,这种异常报告的发出与例如地址转换的发出不同。因此,需要不同的操作来获得异常报告和地址转换的结果,而这会很麻烦。本发明为异常报告在虚拟地址=真实地址处使用多个位或页内偏移位,提供了使用上的方便。
例如,假设虚拟地址和真实地址都包括32个位。当虚拟地址和真实地址的较低的16位相同时,该真实地址可以被较高的16位指定。在这种情况下,由于真实地址的较低的16位不具有指定地址的信息,因此该较低的16位被用于异常报告。这种通过以这种方式使用用于异常报告的页内偏移位来增加异常报告的做法提供了使用上的方便。
当S,D=1,1时,如果动态条目和静态条目互相匹配,那么具有较高优先权的条目被地址转换获得。
本发明的地址转换器通过操作系统将虚拟地址和真实地址在地址转换缓冲器中分类并存储,以根据正在运行的操作系统来执行“从虚拟到真实”的地址转换。因此,当切换操作系统时不必改变地址转换缓冲器的内容,而这可以减小系统负载。另外还可以减小操作系统间切换的开销。
前面应该被认为仅是对本发明原理的解释。而且,由于很多修改和改变对于本领域的技术人员来说是显而易见的,因此不应当将本发明限定为已经示出和描述的严格的结构和应用,并且相应地,所有适当的修改及等同物可以被认为落在所附权利要求及其等同物的本发明的范围中。

Claims (20)

1.一种用于将虚拟地址转换为真实地址的地址转换器,包括:
多个地址转换缓冲器,用于基于处理器运行的多种操作系统来对所述虚拟地址和所述真实地址进行分类和存储;以及
地址转换控制器,用于根据所述多种操作系统中的正在运行的操作系统,通过访问所述多个地址转换缓冲器来将所述虚拟地址转换为所述真实地址。
2.如权利要求1所述的地址转换器,其中,对应于所述多种操作系统提供所述多个地址转换缓冲器,为对应的所述多种操作系统存储所述虚拟地址和所述真实地址。
3.如权利要求1所述的地址转换器,其中,所述多个所述地址转换缓冲器被一个地址转换缓冲器代替,所述一个地址转换缓冲器用于与多个标识相关联地存储所述虚拟地址和所述真实地址,所述标识的每一个都表明虚拟地址和真实地址属于所述多种操作系统中的哪一种。
4.如权利要求3所述的地址转换器,还包括用于为所述多种操作系统之一存储所述虚拟地址和所述真实地址的单个地址转换缓冲器。
5.如权利要求4所述的地址转换器,其中,组相联缓冲器被用作所述地址转换缓冲器和所述单个地址转换缓冲器中的一个,全相联缓冲器被用作所述地址转换缓冲器和所述单个地址转换缓冲器中的另外一个。
6.如权利要求5所述的地址转换器,其中,当最近最少使用的数据从所述组相联缓冲器中被取出时,所述最近最少使用的数据被保存在所述全相联缓冲器中。
7.如权利要求3所述的地址转换器,其中所述地址转换缓冲器具有对应于动态条目和对应于静态条目的区域。
8.如权利要求1所述的地址转换器,其中,所述地址转换控制器响应于程序命令执行地址转换,以将虚拟地址转换为真实地址,而不考虑所述处理器正在运行的所述操作系统。
9.如权利要求8所述的地址转换器,其中,所述地址转换控制器响应于所述程序命令,使用页内偏移位向所述处理器返回关于地址转换的状态信息。
10.一种用于将虚拟地址转换为真实地址的地址转换方法,包括根据处理器运行的多种操作系统中正在运行的操作系统,通过访问用于基于所述多种操作系统而将所述虚拟地址和所述真实地址进行分类和存储的地址转换缓冲器,将所述虚拟地址转换为所述真实地址。
11.一种用于将虚拟地址转换为真实地址的地址转换器,其基于多种操作系统,对用于存储所述虚拟地址和所述真实地址的地址转换缓冲器进行分类,并将所述虚拟地址和所述真实地址存储在所述地址转换缓冲器中。
12.如权利要求11所述的地址转换器,其中,所述地址转换缓冲器对于不相应的所述操作系统隐藏起来。
13.一种将虚拟地址转换为真实地址的地址转换器,包括:
用于存储所述虚拟地址和所述真实地址的地址转换缓冲器;以及
存储单元,用于与多个标识相关联地存储所述虚拟地址和所述真实地址,所述标识表明所述虚拟地址和所述真实地址所属于的操作系统。
14.如权利要求13所述的地址转换器,还包括用于集中存储所述标识的标识存储单元,其中当所述操作系统被切换时,所述标识被共同保存和恢复。
15.一种用于将虚拟地址转换为真实地址的地址转换器,包括:
第一组相联地址转换缓冲器;以及
第二全相联地址转换缓冲器,其中所述第一组相联地址转换缓冲器存储动态条目的所述虚拟地址和所述真实地址,所述第二全相联地址转换缓冲器存储静态条目的所述虚拟地址和所述真实地址。
16.如权利要求15所述的地址转换器,其中,当最近最少使用的数据从所述第一组相联地址转换缓冲器中被取出时,所述最近最少使用的数据被保存在所述第二全相联地址转换缓冲器中,直到被再次取出。
17.如权利要求15所述的地址转换器,其中,当最近最少使用的数据从所述第二全相联地址转换缓冲器中被取出时,所述最近最少使用的数据被保存在所述第一组相联地址转换缓冲器中,直到被再次取出。
18.一种用于将虚拟地址转换为真实地址的地址转换器,包括用于存储动态条目和静态条目的所述虚拟地址和所述真实地址的地址转换缓冲器,其中,当所述动态条目和所述静态条目使用相同区域时,所述动态条目和所述静态条目具有地址转换的优先权顺序。
19.一种用于将虚拟地址转换为真实地址的地址转换器,其中,对应于动态条目的地址转换、对应于静态条目的地址转换或者根据向所述动态条目和所述静态条目给出的优先权顺序而进行的地址转换可由程序命令指定。
20.如权利要求19所述的地址转换器,其中,通过使用页内偏移位,向发射所述程序命令的处理器返回关于所述地址转换的状态信息。
CN2004100910944A 2004-06-02 2004-11-16 地址转换器和地址转换方法 Expired - Lifetime CN1704912B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004164586A JP4233492B2 (ja) 2004-06-02 2004-06-02 アドレス変換装置
JP164586/2004 2004-06-02

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2007100792782A Division CN101004715B (zh) 2004-06-02 2004-11-16 地址转换器和地址转换方法

Publications (2)

Publication Number Publication Date
CN1704912A true CN1704912A (zh) 2005-12-07
CN1704912B CN1704912B (zh) 2010-04-28

Family

ID=35450291

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2004100910944A Expired - Lifetime CN1704912B (zh) 2004-06-02 2004-11-16 地址转换器和地址转换方法
CN2007100792782A Expired - Lifetime CN101004715B (zh) 2004-06-02 2004-11-16 地址转换器和地址转换方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2007100792782A Expired - Lifetime CN101004715B (zh) 2004-06-02 2004-11-16 地址转换器和地址转换方法

Country Status (3)

Country Link
US (1) US7761686B2 (zh)
JP (1) JP4233492B2 (zh)
CN (2) CN1704912B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101165664B (zh) * 2006-10-17 2010-04-21 国际商业机器公司 用于在数据处理系统中管理地址转换的方法和装置
CN101165667B (zh) * 2006-10-17 2010-06-02 国际商业机器公司 用于在数据处理系统中管理地址转换的方法和装置
CN101165666B (zh) * 2006-10-17 2011-07-20 国际商业机器公司 在数据处理系统中建立地址转换的方法和装置
CN101401085B (zh) * 2006-03-10 2012-06-27 微软公司 用于诸如硬件设备的资源的选择性地址转换的方法和系统
CN109168213A (zh) * 2018-08-16 2019-01-08 江门市蓬江区天利新科技有限公司 一种灯串地址转换器及转换方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122305A (ja) * 2005-10-27 2007-05-17 Hitachi Ltd 仮想計算機システム
JP2007233615A (ja) 2006-02-28 2007-09-13 Fujitsu Ltd アドレス変換装置
US7401201B2 (en) * 2006-04-28 2008-07-15 Freescale Semiconductor, Inc. Processor and method for altering address translation
WO2008114415A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited マルチプロセッシングシステム
WO2008155851A1 (ja) 2007-06-20 2008-12-24 Fujitsu Limited 演算処理装置、エントリ制御プログラムおよびエントリ制御方法
JP5466768B2 (ja) * 2010-11-02 2014-04-09 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・アクセスを制御する装置およびコンピュータ
US8615766B2 (en) * 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
CN104731720B (zh) * 2014-12-30 2018-01-09 杭州中天微系统有限公司 组相连的二级内存管理装置
US11580031B2 (en) * 2019-07-31 2023-02-14 Intel Corporation Hardware for split data translation lookaside buffers

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4811206A (en) * 1986-01-16 1989-03-07 Ibm Corporation Data processing system with overlapped address translation and address computation
JPS62206658A (ja) * 1986-03-07 1987-09-11 Hitachi Ltd 記憶管理装置
US5053951A (en) * 1986-12-23 1991-10-01 Bull Hn Information Systems Inc. Segment descriptor unit for performing static and dynamic address translation operations
JPH06100987B2 (ja) 1987-04-10 1994-12-12 日本電信電話株式会社 アドレス変換制御方法
JPH0293952A (ja) * 1988-09-30 1990-04-04 Hitachi Ltd 仮想計算機システム
CA2083634C (en) * 1991-12-30 1999-01-19 Hung Ping Wong Method and apparatus for mapping page table trees into virtual address space for address translation
JPH05324477A (ja) 1992-05-21 1993-12-07 Toshiba Corp アドレス変換バッファ機構
US5493660A (en) * 1992-10-06 1996-02-20 Hewlett-Packard Company Software assisted hardware TLB miss handler
JPH06124237A (ja) 1992-10-13 1994-05-06 Fuji Xerox Co Ltd アドレス変換バッファ装置
US5903752A (en) * 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5721922A (en) * 1994-10-13 1998-02-24 Intel Corporation Embedding a real-time multi-tasking kernel in a non-real-time operating system
US5850395A (en) * 1995-07-19 1998-12-15 Fujitsu Network Communications, Inc. Asynchronous transfer mode based service consolidation switch
JPH0981459A (ja) * 1995-09-19 1997-03-28 Hitachi Ltd アドレス変換バッファ装置
US6073224A (en) * 1996-07-01 2000-06-06 Sun Microsystems, Inc. Network interface circuit with replacement circuitry and method for segregating memory in an address translation unit with locked and unlocked regions
US5918251A (en) * 1996-12-23 1999-06-29 Intel Corporation Method and apparatus for preloading different default address translation attributes
US6173417B1 (en) * 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
US6742103B2 (en) * 2000-08-21 2004-05-25 Texas Instruments Incorporated Processing system with shared translation lookaside buffer
US6553477B1 (en) 2000-11-06 2003-04-22 Fujitsu Limited Microprocessor and address translation method for microprocessor
GB2373889A (en) * 2001-03-30 2002-10-02 Siroyan Ltd Address translation with partial physical addresses
US6832333B2 (en) * 2001-08-30 2004-12-14 International Business Machines Corporation Method for supporting user level online diagnostics on Linux
US20030177334A1 (en) * 2002-03-14 2003-09-18 International Business Machines Corporation Address mapping for disk drive to accommodate multiple operating systems
US6941442B2 (en) * 2002-08-02 2005-09-06 Arm Limited Entry lockdown within a translation lookaside buffer mechanism
US6851030B2 (en) * 2002-10-16 2005-02-01 International Business Machines Corporation System and method for dynamically allocating associative resources
US7103748B2 (en) * 2002-12-12 2006-09-05 International Business Machines Corporation Memory management for real-time applications
ES2315469T3 (es) * 2003-04-09 2009-04-01 Virtuallogix Sa Sistemas operativos.
JP3936672B2 (ja) * 2003-04-30 2007-06-27 富士通株式会社 マイクロプロセッサ
US7100018B2 (en) * 2003-07-31 2006-08-29 Silicon Graphics, Inc. System and method for encoding page size information
US7200733B2 (en) * 2003-09-11 2007-04-03 Honeywell International Inc. Virtual memory translator for real-time operating systems

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101401085B (zh) * 2006-03-10 2012-06-27 微软公司 用于诸如硬件设备的资源的选择性地址转换的方法和系统
CN101165664B (zh) * 2006-10-17 2010-04-21 国际商业机器公司 用于在数据处理系统中管理地址转换的方法和装置
CN101165667B (zh) * 2006-10-17 2010-06-02 国际商业机器公司 用于在数据处理系统中管理地址转换的方法和装置
CN101165666B (zh) * 2006-10-17 2011-07-20 国际商业机器公司 在数据处理系统中建立地址转换的方法和装置
CN109168213A (zh) * 2018-08-16 2019-01-08 江门市蓬江区天利新科技有限公司 一种灯串地址转换器及转换方法

Also Published As

Publication number Publication date
CN101004715A (zh) 2007-07-25
JP4233492B2 (ja) 2009-03-04
CN1704912B (zh) 2010-04-28
US20050273572A1 (en) 2005-12-08
US7761686B2 (en) 2010-07-20
CN101004715B (zh) 2010-07-28
JP2005346358A (ja) 2005-12-15

Similar Documents

Publication Publication Date Title
CN1315060C (zh) 储存存储器型式数据的转译旁视缓冲器
US6742104B2 (en) Master/slave processing system with shared translation lookaside buffer
CN1243304C (zh) 用以在扩充寄存器模式下存取扩充寄存器集的中央处理单元及其方法
Basu et al. Reducing memory reference energy with opportunistic virtual caching
CN1262942C (zh) 利用无数据事务获得全局促进工具的方法、设备和系统
CN1704912A (zh) 地址转换器和地址转换方法
CN1272714C (zh) 数据处理系统内分配和访问存储映像工具的方法、设备和系统
US20100058026A1 (en) Loading entries into a tlb in hardware via indirect tlb entries
CN1509436A (zh) 以推测方式使高速缓存中的缓存行失效的方法及系统
CN1606097A (zh) 闪速存储器控制装置、存储器管理方法、及存储器芯片
CN1124378A (zh) 数字处理器
US6742103B2 (en) Processing system with shared translation lookaside buffer
CN1009592B (zh) 微处理器芯片上的堆栈式超高速缓冲存储器
CN1930553A (zh) 访问逻辑分区中的存储器
KR20200133165A (ko) 어플리케이션 프로세서, 시스템-온 칩 및 메모리 관리 유닛의 동작 방법
CN1560736A (zh) 储存引发指令同调性的装置及方法
CN1168025C (zh) 用于多线程处理机的指令高速缓存器
CN117083599A (zh) 硬件辅助的存储器访问跟踪
CN111949562A (zh) 应用处理器、系统级芯片及操作存储器管理单元的方法
CN1174314C (zh) 用于64位寻址的调用选通扩充
CN1553496A (zh) 一种用于访问系统芯片外sdram的控制器及其实现方法
CN1924833A (zh) 具有多阶快取架构的处理模块
CN1278227C (zh) 一种基于mips指令集的处理器的多线程方法和装置
CN1269043C (zh) 内存地址的重新映射方法
CN118093450A (zh) 通过优化tlb提高mcm gpu地址翻译效率的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: FUJITSU MICROELECTRONICS CO., LTD.

Free format text: FORMER OWNER: FUJITSU LIMITED

Effective date: 20081024

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20081024

Address after: Tokyo, Japan

Applicant after: FUJITSU MICROELECTRONICS Ltd.

Address before: Kanagawa

Applicant before: Fujitsu Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: FUJITSU SEMICONDUCTORS CO., LTD

Free format text: FORMER NAME: FUJITSU MICROELECTRON CO., LTD.

CP03 Change of name, title or address

Address after: Kanagawa

Patentee after: FUJITSU MICROELECTRONICS Ltd.

Address before: Tokyo, Japan

Patentee before: Fujitsu Microelectronics Ltd.

ASS Succession or assignment of patent right

Owner name: SUOSI FUTURE CO., LTD.

Free format text: FORMER OWNER: FUJITSU SEMICONDUCTOR CO., LTD.

Effective date: 20150519

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150519

Address after: Kanagawa

Patentee after: SOCIONEXT Inc.

Address before: Kanagawa

Patentee before: FUJITSU MICROELECTRONICS Ltd.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20100428