数字处理器 本发明涉及数字处理器中抑制功耗的技术,该数字处理器包括一个逻辑高速缓冲存储器和一个地址转换机,更具体地讲,本发明涉及有效地适用于诸如微型计算机或微处理器的技术。
为了改进数字处理器的运行,一种处理是在这种数字处理器内构造一个高速缓冲存储器。在不需要用户意识到物理存储器或实际存储器,使用操作系统(下文称“OS”)控制存储器的情况下,要求数字处理器支持地址转换机。地址转换机用于把逻辑地址(或虚拟地址)转换成物理地址的以实施虚拟存储器。
到目前为至,采用了数字处理器内结造一个转换后备缓冲器(下文称“TLB”)的技术,保留逻辑/物理地址转换对,用以高速地运行地址转换机。尽管需要高速缓冲存储器和TLB以改善数字处理器的运行和支持OS,考虑到要抑制功耗的增大,重点要尽可能地阻止TLB并行于高速缓冲存储器的运行。因此,通过经常地访问TLB,高速缓冲存储器项目不得不把搜索地址作为物理地址时,该物理高速缓冲存储器保留一对物理地址信息和数据,这将引起功耗的增加。另一方面,通过仅在高速缓冲存储器落空的时间内得以访问TLB,高速缓冲存储器项目允许把搜索地址作为逻辑地址,该逻辑高速缓冲存储器保留了一对逻辑地址信息和数据。结果,考虑到功耗的减小,逻辑高速缓冲存储器优于物理高速缓冲存储器。尽管逻辑高速缓冲存储器存在着同义词的问题。
下面将描述该同义词的问题。首先,多任务OS中的每一任务作为一个运行环境处理。该处理包括数字处理器的状态、地址空间和用以把逻辑地址转换为物理地址地地址转换表。如图3所示,过程1中可把逻辑地址A转换为物理地址C,在过程2中可把逻辑地址A转换为物理地址D。换言之,当在这种多物理地址空间内执行过程到过程的转换时,TLB的内容必须是可改变的。然而,如果通过使TLB的内容无效,在过程到过程转换每次执行时,都置换该项目,不仅理过程时间,而且功耗都将增大到不可忽视的程度。
鉴于上述原因,如图4A所示介绍了一个地址空间标识符(ASID)的概念,从而通过地址空间标识符扩展逻辑地址,可以区分过程1中的逻辑地址和过程2中的逻辑地址。因此每次执行过程到过程的转换时,不需要使TLB无效。
当用地址空间标识符扩展逻辑地址时,可能产生如图5所示的情况,即过程1、2共享它们之间的一个物理地址空间。更具体地,可产生这样一种情况,即过程1中的逻辑地址A和过程2中的逻辑地址B被转换为同一物理地址C。上述把同一物理地址分配给不同的逻辑地址的情况称为同义词。
参照图6A、6B,将顺序地给出逻辑高速缓冲存储器中同义词引起问题的描述。由于逻辑地址A和B不同,认为数据一样的两项目可能同时地存在于图6A所示的逻辑高速缓冲存储器中。现在假设当分配给逻辑地址B的数据C以如图6B所示的状态重写时,分配给逻辑地址B的数据C变为数据D,尽管相应于地址B的主存储器上的数据以写的方式被重写为D,分配给高速缓冲存储器上逻辑地址A的数据仍保持为C,它使高速缓冲存储器和存储在主存储器中的数据不一致。当读分配给逻辑地址A的数据时,发生高速缓冲存储器命中,并且使用数据C。这样就产生了同义词问题。
为了解决同义词问题,可以引进一共享标志的概念。比如说,该共享标志是这样一个标志,用以指示预定物理地址空间或其上的数据是否用于多个不同过程或逻辑地址空间。如图4B所示,这样一种共享标志SH附于逻辑高速缓冲存储器的高速缓冲存储器项目上。当逻辑高速缓冲存储器的项目包括的数据是共享数据时,共享标志SH被设置为“1”,否则设置为“0”。
采用这种共享标志概念的情况下,成组相联(set—associative)格式的逻辑高速缓冲存储器被假设为如图2所示的状态。
当以那种状态访问逻辑地址b(VA(b)表示诸如逻辑页面号码的逻辑页面信息)时,并且因此而选择的项目是高速缓冲存储落空时,也就是,当这样所选择的项目的标记VA(a)不表示分配给逻辑的地址b且项目的公享标志SH为1的逻辑页面信息VA(b)时,将遵循下面的过程而不需要附加新的项目。换句话说,通过TLB,作为高速缓冲存储器的一个搜寻地址的逻辑地址b经地址转换,以得到它的物理地址信息PA(b)。还有,同样通过TLB,所选择标记的逻辑页面信息VA(a)被用于地址转换,以得到物理地址信息PA(a)。比较两个物理地址信息的位时,如果完全一致,即PA(a)=PA(b)时,这就意味着物理地址b与物理地址a共享一个数据,则高速缓冲存储器项目作为高速缓冲存储器命中处理。结果,避免了多个数据存在于逻辑高速缓冲存储器的同一物理地址上,并且可以这样解决同义词问题。
本发明者发现,当使用上述高速缓冲存储器时,处理同义词的方法,由于要两次访问TLB,在处理增加的功耗问题上还存在着不足。
关于访问TLB所产生的功耗问题,即使在高速缓冲存储器写命中的情况下,也必须访问TLB,用以把逻辑地址为物理地址,本发明者证实这样也增加功耗。
本发明的一个目的是提供一个数字处理器,它可以减少访问TBL的次数,这对于处理同义词问题是非常重要的。
本发明的另一个目的是提供一个数字处理器,当处于高速缓冲存储器写命中时,它允许不访问TLB。
本发明的另一个目的是提供一个数字处理器,在访问TLB时,可以减少功耗。
本发明的这些和其它目的以及新的特征,通过参考下面的详细描述和附图,将变得更为清楚。
下面将简要地给出本发明一个示例性实施例的描述。
(1)数字处理器包括一个逻辑高速缓冲存储器(10),用逻辑地址信息作为搜索信息;一个转换后备缓冲器(11),用于存放把逻辑地址转换为物理地址的转换对;以及控制装置,用于控制逻辑高速缓冲存储器和转换后备缓冲器,逻辑高速缓冲存储器有一个用于保留相应于逻辑地址信息(如图9示出了高速缓冲存储器项目的数据部分内的物理地址信息PA)的物理地址信息的区域。
在希望的逻辑地址与其它逻辑地址共享一个物理地址空间的情况下,当从逻辑高速缓冲存储器用搜索信息(例如分配给逻辑地址的偏移数据部分)选择出高速缓冲存储器项目与希望的逻辑地址不一致时,控制装置比较用这样选择的高速缓冲存储器项目所保持的物理地址信息(例如物理页面信息)与以转换后备缓冲器所得到的物理地址信息,并且在证明比较结果一致的情况,可以利用用高速缓冲存储器项目所选择的信息。
(2)从使用诸如包含在高速缓冲存储器项目中的物理页面信息的物理地址信息另一观点出发,当搜索信息所选择的高速缓冲存储器项目相应于希望的逻辑地址时,控制装置通过这样所选择的高速缓冲存储器项目所得到物理地址,可用于产生将要写进物理地址空间的一个物理地址。
(3)用于上述控制的控制装置包括:高速缓冲存储器地址比较装置(202),用于检测从高速缓冲存储器处用搜索信息所选择的高速缓冲存储器项目不相应于一个希望的逻辑地址;并且希望的逻辑地址与其它的逻辑地址共享一个物理地址空间;物理地址比较装置(204),用于比较这样选择的高速缓冲存储器项目所保持的物理地址信息与从转换后备缓冲器所得的物理地址信息,基于高速缓冲存储器地址比较器检测结果,以检测上述两信息的一致性;一个数据控制器(301),当物理地址比较装置所得的比较结果一致时,用于使用通过高速缓冲存储器项目所保持的信息;和一个地址控制器(300),当从逻辑高速缓冲存储器处用搜索信息所选择的高速缓冲存储器项目相应于写处理中的希望逻辑地址时,该地址控制器(300)使用这样选择的高速缓冲存储器项目所保持的物理地址,用于产生写入物理地址空间的一个物理地址。
(4)考虑到一个地址转换机支持可变页面大小的情况,当逻辑页面大小改变时,可以使用一个“全相联”(full—associative)格式的转换后备缓冲器以替代前述转换后备缓冲器。
诸如相应于逻辑页面信息VA的物理页面信息PA的信息,作为一个高速缓冲存储器标记地址,存储在逻辑高速缓冲存储器10处,用以访问一个共享区,当发生高速缓冲存储器落空时,逻辑高速缓冲存储器所保持的物理页面信息PA与转换后备缓冲器内的搜索地址转换的物理页面信息PA相比较,当比较结果一致时,作为高速缓冲存储器命中处理该高速缓冲存储器项目,因此,以访问转换后备缓冲器的次数被减半的方式,解决了同一物理地址被分配给不同的逻辑地址所引起的同义词问题。
关于转换后备缓冲器的高速缓冲存储器写命中时,通过在与命中相关的高速缓冲存储器项目内的物理页面信息,为外部写存取而产生一个物理地址的情况下,在高速缓冲存储器写命中时,完全不需要访问转换后备缓冲器。
逻辑高速缓冲存储器的使用,不仅可使功耗降低,并且在高速缓冲存储器命中时,还可以不访问转换后备缓冲器。因此,由于只有在高速缓冲存储器落空时要访问转换后备缓冲器,所以用以访问转换缓冲器的总功耗也可降低。
当地址转换机支持可变页面大小时,访问采用成组相联格式的转换后备缓冲器的技术不得不随着页面大小而改变。在这种情况下,提供了一个相应于典型页面大小的成组相关格式的转换后备缓冲器,和另一个全相联格式的转换后备缓冲器;前一转换后备缓冲器用于这样一个典型页面大小,而后一个转换后备缓冲器用于其它页面大小。
图1是一个示意性图形,用于说明按照本发明的控制一个逻辑高速缓冲存储器的技术,用以解决数字处理器中的同义词问题;
图2是一个示意性图形,用于说明控制一个逻辑高速缓冲存储器技术,用以解决高速缓冲存储器项目中没包括有物理地址的同义词问题;
图3是图形,示出了一个多物理地址空间;
图4A是格式图,示出了用地址空间扩展的逻辑地址的一个例子;
图4B是格式图,示出了带有共享标志的一个高速缓冲存储器项目的例子;
图5示出了说明同义词概念的图形;
图6A和图6B是说明逻辑高速缓冲存储器中的同义词问题的图形;
图7是一个微型计算机的作为体现本发明的数字处理器的框图;
图8示出了TLB中的项目格式的一个例子;
图9示出了逻辑高速缓冲存储器中项目格式的一个例子;
图10是框图,详细地示出了图7所示的逻辑高速缓冲存储器、TLB和控制单元;
图11是逻辑高速缓冲存储器的全体控制流程图;
图12是高速缓冲存储器读/写命中的情况下,逻辑高速缓冲存储器的运行控制流程图;
图13是高速缓冲存储器读落空的情况下,逻辑高速缓冲存储器的运行控制流程图;以及
图14是高速缓冲存储器写落空的情况下,逻辑高速缓冲存储器运行控制流程图。
图7是体现本发明的作为数字处理器的一个微型计算机的框图。微型计算机(或微处理器)1包括:一个逻辑高速缓冲存储器10,一个转换后备缓冲器11(后面只简单地称为“TLB”),一个控制单元12,一个外围模块13。这些都连接到内部总线14、15上,并且在硅制成的一个半导体基底(或芯片)上形成。
控制单元12是一个电路块,通常作为控制电路用于控制上述中央处理单元、总线控制器、逻辑高速缓冲存储器10和TLB11,它还可以作为一个外部接口电路。图7中,在该电路块中示例地给出了一个内部控制器121和一个外部总线控制器122,作为关于芯片的内部和外部的输入输出控制单元。逻辑高速缓冲存储器10、TLB11和内部控制器121连接到内部总线14,而TLB11、外围模块13和外部总线控制器122连接到内部总线15。外围模块器13合适地包括下面外围电路(没示出):一个定时器,一个串行口通信接口,RAM、ROM和DMAC(直接存储存取控制器)。图7中,参考数字16表示关于逻辑高速缓冲存储器10的一组控制信号线;数字17表示关于TLB11的一组控制信号线;数字18表示位于TLB11和外围模块13之间的一组控制信号线;数字19表示关于外围模块13的一组控制信号线;并且数字20表示位于逻辑高速缓冲存储器10和TLB11之间的一组控制信号线。通过一外部总线3或其它,本发明的本实施例中的微型计算机1与主存储器2相连。在该实施例中,TLB11和控制单元12中用于控制TLB11的电路组成一个地址转换机,用于实现虚拟存储器。
图8示出了TLB11中的项目格式的一个例子。一个项目包括一个逻辑地址部分和一个物理地址部分。
逻辑地址部分有一个有效位V(1位),指示该项目有效;一个地址空间标识符(一个标识数字)ASID(8位)和一个逻辑页面信息VA(20位)。
物理地址部分有一个保护PR(2位),用于存储器保护;物理页面信息PA(20位),相应于逻辑地址部分中的物理页面;和一个共享标志SH(1位),用于指示物理页面信息所分配的物理页面是否与其它多个物理页面共享。
按照本发明的该实施例,逻辑页面信息和逻辑页面信息确定的逻辑页面内的偏移信息组成逻辑地址。偏移信息的位数确定一个逻辑页面的大小。本实施例中假设逻辑页面大小为一常量。当逻辑地址被转换为物理地址时,从相应于逻辑地址的逻辑页面信息的一个项目中得到物理页面信息,并且通过在物理页面信息的低顺序端串联逻辑地址的偏移信息,可以利用该逻辑地址。
图9示出了逻辑高速缓冲存储器10中的项目格式的一个例子。一个项目包括一个地址部分和一个数据部分。
地址部分与TLB11的逻辑地址部分一样,并且保持了一个指示项目为有效的有效位V(1位),一个地址空间标识符ASID(8位)和逻辑页面信息VA(20位)。
通过把16位数据连接到TLB11的物理地址部分形成该数据部分。并且还保持了一个用于存储器保护的一个保护PR(2位);一个共享标志SH(1位),用于指示逻辑页面是否与其它逻辑页面共享数据;和相应于地址部分中心逻辑页面的物理页面信息PA(20位)。
要特别注意的是,尽管在逻辑高速缓冲存储器10和TLB11中采用了地址空间标识符和共享标志的概念,逻辑高速缓冲存储器10处理物理页面信息PA以减少访问TLB的次数。比如由于高速缓冲存储器落空,当一个项目最初登记在逻辑高速缓冲存储器10时,通过TLB,可以利用存放在高速缓冲存储器项目的数据部分的物理页面信息。
图1中,示出了一示意图,用以说明为解决上述同义词问题,控制逻辑高速缓冲存储器10的技术。图1中,示例性的高速缓冲存储器项目VA(a)表示逻辑页面信息,象相应于逻辑地址a的一个逻辑页面数。PA(a)表示分配给物理地址的相应于逻辑地址a的物理页面信息。当以那种状态访问逻辑地址b(VA(b)表示它的逻辑页面信息)时,并且这样所选择的项目是高速缓冲存储器落空时,也就是,这样所选择的项目的标记VA(a)与分配给逻辑地址b且项目的共享标志SH为1的逻辑页面信息VA(b)不一致时,将遵循下面的一个过程而不需要附加一个新项目。换句话,物理页面信息PA(b)与这样选择的项目所保持的物理页面信息PA(a)相比较。当高速缓冲存储器项目没有如图2所示的物理页面信息时,不得不访问TLB,把这样所选择的项目内的逻辑页面信息转换为物理页面信息。与图2的过程相比,本发明该实施例中访问TLB11的次数减少一半,并且功耗可以降低到那种程度。
当物理地址中的比较结果完全一致时,即PA(a)=PA(b),由于假设逻辑地址b与逻辑地址a共享数据,所以项目中的数据被用作高速缓冲存储器命中。相应地,分配给同一物理地址的多个数据被避免存在于逻辑高速缓冲存储器中,从而解决了同义词问题。
高速缓冲存储器写命中(写访问的高速缓冲存储器命中)时,由于命中项目保持了相应的物理页面信息PA,尽管没有示出,本发明该实施例的逻辑高速缓冲存储器10中,不需要再次访问TLB11以得到一个物理地址,用于把数据写进物理地址空间内的主存储器。不但访问TLB的次数,而且功耗都可减少。
图10是框图,更详细地示出了逻辑高速缓冲存储器10,TLB11和控制单元12。图10中,要特别注意逻辑高速缓冲存储器10和TLB11的控制。
图10中的逻辑高速缓冲存储器10中,数字100表示一个写数据输入接口;101表示一个读数据输出接口;并且102表示一个访问地址信号输入接口。假设有一个访问逻辑高速缓冲存储器10的地址信号作为逻辑地址中偏移信息的部分,输入到地址总线200。用于写访问时,通过地址总线200和数据总线201,高速缓冲存储器项目中的数据被输入到输入接口100。用于读访问时,从输出接口101中并行地读出高速缓冲存储器项目中的数据。该高速缓冲存储器项目是参照图9安排的。
如上说明的,逻辑高速缓冲存储器10处于成组相联格式,并且偏移信息的一部分用于它的访问地址。例如,假设总共用32位定义逻辑地址,换句话说,高20位分配给逻辑页面信息,低12位分配给偏移信息,4K字节用于一个页面。当包括低4位的8位偏移信息用于逻辑高速缓冲存储器10的访问地址时,以16字节读出和写进高速缓冲存储器项目中的数据DATA。
图10的TLB11中,数字110通常表示一个写数据输入接口;数字111表示一个读数据输出接口;并且数字112表示一个访问地址信号输入接口。用于访问TLB11的一个地址信号作为分配逻辑地址信息的一部分(比如偏移信息)提供给地址总线200,这是因为在TLB11中使用了如本发明该实施例的高速缓冲存储器的由成组相联格式。写访问时,通过地址总线200和数据总线201,项目数据被提供给输入接口110。读访问时,高速缓冲存储器项目中的数据从输出接口111中被并行地读出。TLB中项目数据包含的内容与图8所描述的那些相似。
图10中,参考数字202表示一个高速缓冲存储器地址比较器;数字203表示一个TLB地址比较器;并且数字204表示一个物理地址比较器。还有,控制单元12中,还示例地给出了一个外部总线控制器300,一个数据控制器301,一个地址发生单元302,一个地址控制器303,一个异常处理控制器304和一个逻辑地址空间管理单元305。控制单元12的电路框图中,要特别注意逻辑高速缓冲存储器10和TLB11的控制。相应地,在这里省略了用于控制程序取出和指令执行顺序的指令控制系统。高速缓冲存储器地址比较器202,TLB地址比较器203和物理地址比较器204也组成了用于控制逻辑高速缓冲存储器10和TLB11的组成部分。可以用诸如比较器之类的特别硬件或中央处理单元和软件的组合构成上述比较器。
地址发生单元302产生逻辑页面信息和偏移信息,并把信息馈给地址总线200。逻辑地址空间管理单元305按照当前处理输出一个地址空间标识符(ASID)。
数据控制器301,有各种操作单元,一组寄存器或工作区等,作为CPU的一部分,用于计算数据,并且控制相应从逻辑高速缓冲存储器10读出的数据的存取。异常处理控制器304控制,比如在TLB落空的情况下把相应于主存储器中从页面表的得到的逻辑地址的一个页面项目写入TLB中。
地址控制器303控制从逻辑高速缓冲存储器10读出的物理页面信息PA和从TLB11读出的物理页面信息PA的使用,以产生一个物理地址。比如,当写访问的情下,逻辑高速缓冲存储器10命中时,关于该命中的包含在高速缓冲存储器项目的物理页面信息PA被用作产生一个物理地址,用于外部访问。
高速缓冲存储器202比较从逻辑高速缓冲存储器10读出的逻辑页面信息PA和以地址发生单元302输出的逻辑页面信息,并且比较从逻辑高速缓冲存储器10读出的ASID和从逻辑地址空间管理单元305输出的ASID。当从逻辑高速缓冲存储器1 0读出的共享标志SH为“1”时,不比较地址空间标识符。输出比较结果作为逻辑地址落空/匹配信号400,当且仅当有效位V为有效时且比较结果被证实一致时,问题中的信号被设置为高电平。在其他情况,该信号为低电平。当逻辑地址落空/匹配信号400被设置为高电平(这种情况也被称为“高速缓冲存储器命中”),数据控制器301使用高速缓冲存储器10的数据DATA,以执行预定的运算,或者数据被输入到外部总线控制器300,用于外部访问。
物理地址比较器204比较逻辑高速缓冲存储器10输出的物理页面信息PA和TLB11输出的物理页面信息。该比较结果作为物理地址落空/匹配信号401输出。物理地址落空/匹配信号401被设置为高电平时,包括如下情况:高速缓冲存储器地址比较器202的比较结果产生一高速缓冲存储器落空(逻辑地址落空/匹配信号401为低电平),有效位(未示出)仍然有效,共享标志SH为“1”(共享),以及物理地址比较器204所得的比较产生很好地匹配。物理地址落空/匹配信号401被设置为高电平时,控制单地12执行与高速缓冲存储器命中相同的过程,尽管逻辑地址落空/匹配信号400为负电平。这种控制模式与图1所描述的内容一致。
TLB地址比较器203比较从TLB11读出的逻辑页面信息PA与地址发生单元302输出的逻辑页面信息,并且比较从TLB11读出的ASID和逻辑地址空间管理单元305输出的ASID。当从TLB11读出的共享标志SH为“1”时,该ASID被排除在比较目的之外。比较结果作为TLB落空/匹配信号402输出,并且仅当有效位V为有效时,以及比较结果一致时,问题中的信号被设置为一高电平。其他情况该信号为低电平。当TLB落空/匹配信号402为低电平(此种情况也称之为”TLB落空”)时,异常处理控制器304控制外部总线控制器300,由此相应于逻辑地址的页面项目从页面表中被写进主存储器的TLB11中。TLB落空/匹配信号402被设置为高电平(此种情况也称之为“TLB命中”)时,并且需要使用物理页面信息PA进行外部访问时,地址控制器303把物理页面信息提供给外部总线控制器300,因此可以访问,比如,主存储器的物理地址空间。
图11是逻辑高速缓冲存储器10的全部控制流程。根据本流程,将给出关于逻辑高速缓冲存储器10和TLB11的控制运行的描述。
首先,分配给搜寻逻辑地址的偏移信息被用于从逻辑高速缓冲存储器10选择一个高速缓冲存储器项目(步骤S1)。用该选择的高速缓冲存储器项目检查该有效位V,确定该高速缓冲存储器项目是否有效(步骤S2)。当(V=0),即无效时,访问该TLB以提供外部访问(步骤S4)。TLB命中的情况下,可以用包含在TLB11的项目的物理地址进行外部访问(步骤S7)。当TLB落空的情况下,进行TLB落空的异常处理,并且OS把相应于逻辑地址的项目,从存储器上的页面表处取得放入TLB11(步骤S13)上。执行完异常处理时,TLB命中条件在步骤S4被确立,并且在步骤S7提供外部访问。
当在步骤S2,有效位V为有效(V=1)时,相应地检查共享标志SH(步骤S3)。当SH=1时,即这样所选择的高速缓冲存储器项目的数据是共享数据时,分配给搜寻逻辑地址的逻辑页面信息VA(SER)与作为高速缓冲存储器项目中的一个高速缓冲存储地址的逻辑页面信息VA(CACHE)相比较(步骤S6),当比较结果一致时(步骤10),使用该高速缓冲存储器项目的数据DATA。当上述比较结果不一致时,用分配给搜寻逻辑地址的逻辑页面信息VA(SER)搜寻该TLB11。结果,在TLB命中的情况下得到相应的物理页面信息PA(TLB)。然后物理页面信息PA(TLB)与包含在高速缓冲存储器项目的物理页面信息PA(CACHE)进行比较(步骤S12)。比较结果一致时,假定搜寻逻辑地址与高速缓冲存储器项目的逻辑地址被分配给同一物理地址,因此问题中高速缓冲存储存器项目与高速缓冲存储器命中的情况一样被使用(步骤S16)。当步骤S12的比较结果不一致时,高速缓冲存储器落空情况保持不变,并且进行外部访问(步骤S15)。顺便说说,当在步骤S11决定TLB时,在步骤S13执行异常处理。异常处理结束时,在步骤S11确立TLB命中条件,并且过程进入步骤S12。当步骤S3的结果为SH=0时,即为非共享数据时,在地址比较时要考虑地址空间标识符。然后搜寻逻辑地址的逻辑页面信息VA(SER)和地址空间标识符ASID(SER)分别包含在高速缓冲存储器项目中作为高速缓冲存储器地址的逻辑页面信息VA(CACHE)和地址空间标识符ASID(CACHE)相比较(步骤S5)。当比较结果一致时,使用高速缓冲存储器项目内的信息(步骤S8),并且在读访问时,使用该数据。写访问的情况下,包含在高速缓冲存储器项目的物理页面信息被用作写进物理地址空间。当步骤S5的比较结果不一致时,访问TLB11(步骤S9),并且在TLB命中时,这样得到的物理页面信息用于进行外部访问(步骤S14)。当TLB落空时,在步骤S13执行异常处理。
图12、13和14描出了高速缓冲存储器的代表性运行模式,在高速缓冲存储器的运行控制流程中,要特别注意高速缓冲存储器读命中、高速缓冲存储器写命中、高速缓冲存储器读落空和高速缓冲存储器写落空四种模式。它们的内容实质上与图11所描述的相似,仅仅描述的观点不同。
图12是高速缓冲存储器读/写命中情况下,逻辑高速缓冲存储器的一个运行控制流程。高速缓冲存储器读命中时,读数据被定义为由逻辑地址的偏移信息所选择的包含在高速缓冲存储器项目的一个相应的数据部分(步骤S21)。高速缓冲存储器写命中时,写数据被写进用逻辑地址的偏移信息所选择的高速缓冲存储器项目中(步骤S22)。相应地,从高速缓冲存储器项目中读出该物理页面信息PA(CACHE)(步骤S23),并且靠使用该信息,该写数据被写进主存储器(步骤S24)。在步骤S20,决定那时是否要提供读或写访问。图12中的步骤S20至S24的详细内容与图11中的步骤S8、S10、S16的内容相同。
图13是高速缓冲存储器读落空情况下,逻辑高速缓冲存储器的一个运行控制流程。在高速缓冲存储器落空的情况下,当在步骤S30确定为TLB命中,并且当在步骤S32确定共享标志SH=1时,与高速缓冲存储器落空相关的包含在高速缓冲存储器项目的物理页面信息PA(CACHE)与关于TLB命中的物理页面信息PA(TLB)一致(步骤S33),这时关于高速缓冲存储器落空的高速缓冲存储器项目作为高速缓冲存储器命中来处理(步骤S34)。
在步骤S30决定为TLB落空时,执行TLB落空的异常处理(步骤S31)。当在步骤S32确定SH=0时或当在步骤S33确定不一致时,步骤S30从TLB命中得到的物理页面信息PA(TLB)被存放在高速缓冲存储器(步骤S35)中。相应地,通过使用物理页面信息和关于该读数据的逻辑地址的逻辑页面信息可以进行外部读访问(步骤S36)并且该高速缓冲存储器落空被存放在高速缓冲存储器(步骤S37)处。当数据在步骤S35和S37存放在高速缓冲存储器时,通过关于该高速缓冲存储器落空的逻辑地址的偏移信息的一部分确定写目的。图13的步骤S35、S36和S37的详细内容与图11的步骤S14和S15内容一致。
图14是高速缓冲存储器写落空时,其本身一个运行控制流程。在高速缓冲存储器写落空的情况下,当在步骤S40决定为TLB命中时,并且在步骤S42决定共享标志SH=1时,包含在高速缓冲存储器项目的关于高速缓冲存储器落空的物理页面信息PA(CACHE)与关于TLB命中的物理页面信息PA(TLB)一致。关于该高速缓冲存储器写落空的高速缓冲存储器项目这时作为一个高速缓冲存储器命中来处理(步骤S44)。
在步骤S40决定为TLB落空时,执行TLB落空的异常处理(步骤S41)。当在步骤S42决定SH=0时,在步骤S40,以TLB命中所得到的物理页面信息PA(TLB)被读出(步骤S45),通过使用物理页面信息,得以进行外部读访问(步骤S46)。当在步骤S43决定为不一致时,在步骤S40以TLB命中得到的物理页面信息PA(TLB),用于外部写访问(步骤S46)。
按照本发明的前述实施例,取得如下效果。
(1)使用逻辑高速缓冲存储器10,使得在高速缓冲存储器命中的情况下省略去TLB的访问,因此可以降低功耗将近20%。
(2)相应于逻辑页面信息VA(CACHE)的物理页面信息PA(CACHE)作为一个高速缓冲存储器标记地址被保持在高速缓冲存储器10中,并且当高速缓冲存储器落空的情况下访问该共享区时,保持在高速缓冲存储器物理页面信息PA(CACHE)与通过TLB从搜索地址转换得的物理页面信息PA(TLB)进行比较。比较结果一致的情况下,由于高速缓冲存储器项目被当作高速缓冲存储器命中处理,可以用这样一种方式解决同一物理地址被分给不同的逻辑地址的同义词问题,即访问TLB11的次数是常规设备的访问次数一半。
(3)关于高速缓冲存储器10的高速缓冲存储器写命中的情况下,与该命中相关的高速缓冲存储器项目内的物理页面信息PA(CACHE)用于产生进行外部写访问的一个物理地址,因此,在高速缓冲存储器写命中时,完全不需要访问TLB11。
(4)从(2)和(3)知道,只有在高速缓冲存储器落空的情况下才需访问TLB11,因此访问TLB的总功耗可以减少。
(5)从(2)和(3)知道,只有在高速缓冲存储器落空的情况下才需访问TLB11,当访问TLB11时,给出了最好的访问时间余量。通过使用在TLB中没转换的逻辑地址的一部分,用物理地址确定一个集合的情况下,在地址比较之前不得不取得一个物理地址在高速缓冲存储器中得到。当在一个机器周期访问该高速缓冲存储器时,TLB的访问时间达到0.5个机器周期。在本实施例中由于仅在高速缓冲存储器落空时需要访问TLB,微型计算机的运行可以降低到这样一种程度,即使TLB访问时间被设置为一个机器周期也可不考虑该降低。因此,便于TLB定时的设计,还有,允许TLB简单地高速地处理这样一个微型计算机的运行。
已经给出了本发明最佳实施例的一个详细描述,在不脱离本发明的精神和范围的情况下,可以进行各种修改。
尽管本发明的上述最佳实施例中,给出了用相联存储器以成组相联格式安排的TLB的详细描述。在全相联格式中也可使用。当使用全相联格式时,由于存储电路需要一位一位输出的比较器用于CAM(按内容访问存储器),所以不仅芯片面积,而且它的功耗都有增大的趋势。相应地,在考虑微型计算机的低功耗的时,使用成组相关格式的TLB是一种优点。
当地址转换机支持可变页面大小时,得以访问地址转换缓冲器的技术,诸如使用成组相联格式的TLB必须能按照页面大小的改变。在那种情况下,相应于可选择的页面大小的成组相联格式的多个TLB被准备好,并且使用与页面大小相一致的一个合适的TLB。或者准备了一个相应于代表性的页面大小成组相联的一个TLB和准备好了全相联格式的另一个TLB。从而当涉及一个代表性页面大小时,使用前一个TLB,在其他情况使用后面一个。
还有,在逻辑页面之间的分离空间时,限制访问TLB,也可以降低功耗。换句话,当物理页面信息在同一逻辑页面范围内是常量时,从TLB得到的物理页面信息被正确地存放在一个寄存器中,且当访问同一逻辑页面时,通过使用寄存器中的物理页面信息,可以产生一个物理页面。
发明者以微型计算机的使用作为背景,给出了本发明应用的描述。然而本发明并不仅仅限于这种应用,还可广泛地应用到任何其他数字处理器。本发明可以应用到数据处理,它至少使用一个逻辑高速缓冲存储器和一个地址转换缓冲器。
本发明公开的最佳实施例可取得的效果总结如下:
诸如相应于逻辑页面信息的物理页面信息的信息被保持在逻辑高速缓冲存储器处,并且当在高速缓冲存储器落空的情况下访问共享区时,保持在高速缓冲存储器的物理页面信息与通过TLB从搜寻地址转换得到的物理页面信息相比较。发当较结果一致时,由于高速缓冲存储器项目作为高速缓冲存储器命中处理,同一物理地址被分配给不同逻辑地址的同义词问题可以用这种方式解决,即访问TLB的次数与常规设备相比被减少一半。
在关于高速缓冲存储器的高速缓冲存储器写命中时,相应于该命中的,在高速缓冲存储器项目的物理页面信息用于产生进行外部写访问的一个物理地址,因此在高速缓冲存储器写命中时完全不需要访问TLB。
使用逻辑高速缓冲存储器在高速缓冲存储器命中时可以省略对TLB的访问,因此可以降低功耗。由于仅在高速缓冲存储器落空时需要访问TLB,所以因访问TLB所引起的总功耗可以降低。
如上所述,只有在高速缓冲存储器落空的情况下才需访问TLB11,当访问TLB时,给出了最好的访问时间含量。由于仅在高速缓冲存储器落空时需要访问TLB,微型计算机的运行可以降低到这样一种程度,即使TLB访问时间被设置为一个机器周期也可不考虑该降低。因此即使诸如微型计算机的数字处理器运行速度增加的情况下,也便于TLB定时的设计,还有,允许TLB简单地高速地处理这样一个微型计算机的运行。
还有,准备好了一个相应于代表性的页面大小的成组相联格式的TLB和准备好了全相联格式的另一个TLB,从而,当涉及一个代表性页面大小时,使用前一个TLB,在其他情况使用后一个TLB。在保证前述效果的同时,允许地址转换机仅简单处理它支持的可变页面大小。