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

文档序号:6438288阅读:303来源:国知局
专利名称:地址转换器和地址转换方法
技术领域
本发明涉及地址转换器和地址转换方法,更具体地说,涉及用于将虚拟地址转换成真实地址的地址转换器和地址转换方法。
背景技术
由于近来资源量的增加,各种系统对大的真实地址空间的需求增加了,需要更灵活和更便宜的地址转换器。对于地址转换器来说,虚拟存储器方案将程序指定的虚拟地址转换为向真实存储器显示的真实地址,该方案极大地减小了对存储空间的限制。
一些采用所述虚拟存储器方案的传统的地址转换器具有根据管理员模式或用户模式而切换的地址转换缓冲器。用于管理员模式的地址转换缓冲器不需要保留进程号,因此节省了存储器资源(例如参照日本未审查专利公布号6-52058(第 - 段,图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时,如果动态条目和静态条目互相匹配,那么具有较高优先权的条目被地址转换获得。
本发明的地址转换器通过操作系统将虚拟地址和真实地址在地址转换缓冲器中分类并存储,以根据正在运行的操作系统来执行“从虚拟到真实”的地址转换。因此,当切换操作系统时不必改变地址转换缓冲器的内容,而这可以减小系统负载。另外还可以减小操作系统间切换的开销。
前面应该被认为仅是对本发明原理的解释。而且,由于很多修改和改变对于本领域的技术人员来说是显而易见的,因此不应当将本发明限定为已经示出和描述的严格的结构和应用,并且相应地,所有适当的修改及等同物可以被认为落在所附权利要求及其等同物的本发明的范围中。
权利要求
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所述的地址转换器,其中,通过使用页内偏移位,向发射所述程序命令的处理器返回关于所述地址转换的状态信息。
全文摘要
一种能够减小地址转换中的系统负载和操作系统间切换的开销的地址转换器。基于处理器所运行的多种操作系统,多个地址转换缓冲器将虚拟地址和真实地址进行分类并存储。例如,地址转换缓冲器存储对应于操作系统的虚拟地址和真实地址。根据正在运行的操作系统,地址转换控制器访问对应的地址转换缓冲器,以将虚拟地址转换成真实地址。
文档编号G06F9/46GK1704912SQ20041009109
公开日2005年12月7日 申请日期2004年11月16日 优先权日2004年6月2日
发明者高桥清刚, 池敦 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1