CN1120196A - 地址变换电路 - Google Patents

地址变换电路 Download PDF

Info

Publication number
CN1120196A
CN1120196A CN95103805A CN95103805A CN1120196A CN 1120196 A CN1120196 A CN 1120196A CN 95103805 A CN95103805 A CN 95103805A CN 95103805 A CN95103805 A CN 95103805A CN 1120196 A CN1120196 A CN 1120196A
Authority
CN
China
Prior art keywords
bit
electrode
unit
address
identifier
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
Application number
CN95103805A
Other languages
English (en)
Inventor
彭迟俊
保罗·C·罗斯巴克
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of CN1120196A publication Critical patent/CN1120196A/zh
Pending 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

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)
  • Static Random-Access Memory (AREA)

Abstract

CAM/SRAM结构执行各种长度的块的地址变换。各个地址变换被存储在分成上半和下半部分的寄存器中。上半部分包含CAM位单元,它们使输入若有效地址与存储的标识符(BEPI)匹配并与存储BL标识符的SRAM位单元交替。块长度标识符限定了变换的块的长度,因而限定了必然在输入有效地址与存储的标识符之间进行匹配的位的数目。下半部分包含SRAM位单元,它存储与标识符(BRPN)有关的实际地址,并与多路复用电路交替。

Description

地址变换电路
本发明涉及数字计算系统,且更具体地说是涉及地址变换方法和装置。
现代数据处理系统一般包括地址变换方案。地址变换,是将系统数据处理器所操作的存储器地址,映象成提供给系统的存储系统的地址。一般地,数据处理系统所处理的地址被称为“有效”或“逻辑”地址。相反地,出现在数据处理系统的通信总线上的地址被称为“实际”或“物理”地址。
地址变换方案改善了数据处理系统的性能;其理由至少有三个。第一,地址变换方案可被用来限定关于主存储器的具体部分的某些有用特性。例如,这些特性可以防止系统数据处理器在某些特定的操作模式下对输入/输出装置进行写入,或者可以限制存储器的其他区被高速缓冲存储器所缓存。另外,在数据处理器存储器中可以同时驻留多个应用软件而不用担心一个程序会毁坏另一个程序。第二,地址变换方案使数据处理器能够执行比系统随机存取存储器(RAM)大的程序。这些非常大的程序大多数都被存储在永久性存储装置(硬盘、磁带等等)中。根据需要将这些非常大的程序的较小部分调入到系统RAM中。这种特征被称为“虚拟存储器”。第三,在多处理器数据处理系统(MP)中的多个数据处理器可以方便地对存储在存储器中的相同数据进行存取。MP系统中的各个数据处理器能够使用不同的地址来对存储器中的相同存储单元进行存取。这种特征简化了各个系统的软件编程。这种特征还可以被单个数据处理器的数据处理系统中执行的多个程序所采用。
有三种基本类型的地址变换方案:分页、分段和组合的分页/分段。现有技术中的这三种方案每一个都有优点和缺点。
在分页寻址方案中,主存储器被分成若干个固定大小的块(“页”)。数据处理器产生的各个有效地址的一定数目的地址位(最有效位)标明了存储器中选定的页。各个有效地址的其余的地址位(最低有效位)标明了选定的页中的字节。页通常是较小的。因此,页变换数据是大量的并被存储在一个表中。
在分段地址方案中,主存储器被分成若干个大小可变的块(“段”)。数据处理器产生的各个有效地址的最高有效和最低有效位分别标明了段和选定的段中的字节。在开始时,数据处理系统的操作系统程序码、其应用程序码、其应用程序数据、以及其指针栈均被映象到主存储器中的四个段中的不同的一个中。因此,段的大小已经扩展到比页的大小大若干个量级。段变换数据较小因而可以被存储在寄存器存储器或表中。
在分页/分段方案中,主存储器也被分割成页。然而,各个有效地址,在被映象到主存储器中的具体页中之前,借助分段方案而被映象到一个中介或“虚拟”地址。同样,最低有效位被用来标明选定页中的字节。在某些分页/分段方案中,页和段都是固定大小的块。PowerPC Architecture采用了这种全部固定大小的分页/分段寻址方案。
PowerPC Architecture在分页/分段方案之外限定了两种附加的寻址模式。第一,一种块地址变换机制(BAT)提供了将比单个的页大的有效地址范围映象到实际存储器的邻接区中的手段。这些区能够标示一个存储映象显示缓存器或一个特别大的数值数据阵列。第二,PowerPC Architecture限定了一种实际寻址模式。在该实际寻址模式中,数据处理器所处理的有效地址在不受到任何变换的情况下被输出到存储系统。如果被启动,则选择该实际寻址模式。如果该实际寻址模式没有被启动,则BAT的成功地址变换产生实际地址。如果实际寻址模式没有被启动且BAT不产生成功的地址变换,则分页/分段方案产生该实际地址。
根据本发明,公布了一种地址变换器,它具有适当的配置以基本上消除已知地址变换器的缺点。
一种地址变换器具有多个用于将接收的有效地址变换成实际地址的输入端。各个输入端具有第一和第二行沿着平行线和字线驱动器排列的电路单元。第一行电路单元具有J个屏蔽位—标识符位单元对,其中J是一个整数。J个屏蔽位—标识符位单元对又具有屏蔽位单元和第一内容寻址存储位单元。第l个屏蔽位单元存储第l个逻辑状态,其中l是从1至J的一个整数。第l个第一内容寻址位单元存储多个标识符位中的第l个。如果接收的多个有效地址位的第l个与第l个逻辑状态相匹配或者如果第l个标识符位在逻辑上等价于第一个逻辑状态,则第l个第一内容寻址位单元还去除对第一组多个控制信号中的第l个的断言。如果各个第一控制信号被去断言,则字线驱动器断言一个匹配信号。第二行电路单元具有J个数据位—多路复用电路对。J个数据位—多路复用电路对由具有数据位单元和多路复用电路。第l个数据位单元存储多个实际地址位中的第l个。如果字线驱动器断言匹配信号且如果第l个逻辑状态与第一个逻辑状态相对应,第l个多路复用电路输出多个有效地址位中的第l个。或者,如果字线驱动器断言匹配信号且如果第l个逻辑状态与第二逻辑状态相对应,则第l个多路复用电路输出多个实际地址位中的第l个。第l个多路复用电路与第l个屏蔽位单元对相邻。
从以下结合附图的详细描述,可以更清楚地理解本发明的特征和优点。在附图中,相同的标号被用来表示相同的部分,且其中:
图1是框图,显示了根据本发明的数据处理器;
图2是框图,显示了图1的数据高速缓冲存储器;
图3是图2所示的块地址变换器的框图;
图4是框图,显示了图3所示的块地址变换器的第一部分;
图5是图3所示的块地址变换器的第二部分的电路图;
图6是图3所示的块地址变换器的第三部分的电路图;
图7是框图,显示了图2所示的块地址变换器的位单元配置;
图8是图2所示的有效—实际地址变换器的框图;
图9是图1所示的第二种地址变换器的框图;
图10是图9所示的段后备缓存器的框图;
图11是图10所示的段后备缓存器的第一部分的逻辑图;且
图12是图11所示的段后备缓存器的第二部分的逻辑图。
图1显示了根据本发明的数据处理器10的框图。数据处理器10是这样的数据处理器,即它通过采用与分页/分段寻址变换方案相结合的块地址变换器方案而改善了性能。块地址变换器将可变长度的有效地址块变换成类似大小的实际地址块。与各个块地址变换映象相联系的一个标识符,指明了块的大小。块的该大小规定了为了产生变换而在输入有效地址块与存储的映象标识符必须匹配的位数目。块的大小还规定了块地址变换器从一个存储的数据场输出的位的数目和它从输入的有效地址输出的位数。所公布的块地址变换器在半导体基底上的配置,减小了其大小并增大了其操作频率。1.数据处理器概述
继续参见图1,总线接口单元(以下称为BIU)12控制着数据处理器10与数据处理系统(未显示)的其他部分之间的数据流动。BIU12与指令高速缓冲存储器14和数据高速缓冲存储器16相连。数据高速缓冲存储器16将在下面结合图2至8进行更详细的描述。指令高速缓冲存储器114将指令提供给指令提取单元18指令提取单元18将各个指令送到适当的执行单元。数据处理器10带有分支单元20、定点执行单元A22、定点执行单元B24、复杂定点执行单元26、装载/存储执行单元28、和浮点执行单元30。定点执行单元A 22、定点执行单元B24、复杂定点执行单元26、和装载/存储执行单元28将它们的结果读出并写入到一个通用构造寄存器存储器32(标为GPR且以下称为GPR存储器)和一个第一更名缓存器34。复杂定点执行单元26和装载/存储执行单元28将它们的结果读出并写入到一个浮点构造寄存器存储器36(标为FPR且在下面被称为FPR存储器)和一个第二更名缓存器38。数据处理器10还具有一个与BIU12、指令高速缓冲存储器14和数据高速缓冲存储器16相连的第二地址变换单元40。第二地址变换单元40将在下面结合图9至11作更详细的描述。
没有所公布的本发明的数据处理器10的操作是现有技术中已知的。一般地,分支单元20确定在一定的数据寄存器和指令本身的内容给定的情况下适当的编程指令的序列。指令高速缓冲存储器¨将这种编程指令序列提供给指令提取单元18。如果指令高速缓冲存储器14不包含所需的指令,则它将从数据处理器10以外的一个主存储器系统(未显示)提取这些指令。
指令提取单元18向各种执行单元20、22、24、26、28和30发出编程指令序列的各个指令。各个执行单元执行具体种类的指令中的一或多个指令。各个执行单元的具体指令种类由该执行单元的名称来表示。例如,定点执行单元A和B执行对诸如加、减、“与”、“或”和“异或”的定点符号表示的操作数进行简单的数学运算。复杂定点执行单元26对以诸如乘或除的定点符号表示的操作数进行更为复杂的数学运算。浮点执行单元30对以诸如乘和除的浮点符号表示的操作数进行数学运算。
定点执行单元A和B和复杂定点执行单元26将它们的运算结果送回到第一更名缓存器34中的指定入口。当在产生该结果的指令之前的所有指令都已经置换了它们的GPR存储器入口时,第一重新命名缓存器34周期地用从第一更名缓存器34来的入口置换GPR存储器32的入口。指令提取单元18协调这种置换。第一更名缓存器34和GPR存储器32都能够将操作数提供到定点执行单元A和B和复杂定点执行单元26。
浮点执行单元30将其运算的结果送回到第二更名缓存器38中的指定入口。当在产生该结果的指令之前的所有指令都已经置换了它们的FPR存储器入口时,第二更名缓存器38周期地用第二重新命名缓存器38中的入口来置换FPR存储器36的入口。指令提取单元18也协调这种置换。第二更名缓存器38和FPR存储器36都向浮点执行单元30提供操作数。
装载/存储执行单元28读取存储在GPR存储器32、第一更名缓存器34、FPR存储器36或第二更名缓存器38中的数据,并将选定的数据写入到数据高速缓冲存储器16。这种数据,还可以根据数据处理器10的与所公布的本发明无关的运算特性,而被写入到一个外部存储系统(未显示)。相反地,装载/存储执行单元28读取存储在数据高速缓冲存储器16中的数据并将读出的数据写入GPR存储器32、第一更名缓存器34、FPR存储器36或第二更名缓存器38。如果数据高速缓冲存储器16不包含所需的数据,则它将从数据处理器10以外的主存储器系统经过BIU12来提取此数据。
下面结合图2至11来描述带有所公布的数据高速缓冲存储器的数据处理器10的操作。一般地,数据处理器10是减少指令组计算机(“RISC”)。数据处理器10通过将各个指令分成一系列更小的步骤而实现高性能,而每一个这些步骤在时间上可以与其他指令的步骤相重叠。这种性能策略被称为“流水线化”。
在所描述的实施例中,各个指令被分成多至五个分立的步骤:提取、调度、执行、写回和完成。指令高速缓冲存储器14中的存储器管理电路(未显示)在提取阶段中获取从指令提取单元18或分支单元20所标明的存储地址开始的一或多个指令。指令提取单元18,在确定没有不允许的数据依赖关系且为调度阶段中的指令结果保留了更名缓存器入口之后,将各个指令路由到适当的执行单元。各个具体的执行单元在执行阶段执行其编程指令,并将其结果(如果有的话)在写固阶段写入到保留的更名缓存器入口。最后,指令提取单元18用存储在更名缓存器中的具体指令的结果来更新构造寄存器存储器  这是在位于该具体指令之前的所有指令都已经如此置换了构造寄存器存储器之后进行的。一般地,各个指令阶段占据一个机器时钟周期。然而,某些指令需要多于一个的时钟周期来执行,而其他的则不需要所有的五个阶段。由于各种指令完成所需的时间的不同,在写回与完成阶段之间可能有延迟。
2.数据高速缓冲存储器
A.概述
图2显示了图1所示的数据高速缓冲存储器16的框图。应该注意的是指令高速缓冲存储器14和数据高速缓冲存储器16基本上类似。这两种结构的不同,主要取决于存储在它们中的信息的使用。块地址变换器(BAT)42、有效—实际地址变换器(ERAT)44、和数据阵列46,在数据处理器10的各个时钟周期期间,从装载/存储执行单元28接收数据存取的有效地址。一个2∶1多路复用器(标为MUX)48根据一个构造约定来选择BAT42或ERAT44产生的地址变换输出。与该地址变换相平行地,数据阵列46输出与所提供的有效地址有关的相关实际地址标识符和高速缓冲存储器行。比较器50接收多路复用器48输出的地址变换输出和数据阵列46输出的实际地址标识符。如果该地址变换输出与实际地址标识符在逻辑上等价,则至装载/存储执行单元28的数据输出实际上是所请求的数据。比较器50在此情况下断言DCACHE HIT。如果地址变换输出和实际地址标识符在逻辑上相等,则至装载/存储执行单元28的数据输出不是所请求的数据。比较器50在此情况下被去断言DCACHE HIT。在第二种情况下,BIU 12将请求来自存储系统(未显示)的数据。一旦BIU 12接收到来自该存储系统的数据,它将把该数据写入数据阵列46。
BAT 42和ERAT 44试图变换由装载/存储单元28提供给它们的各个64位有效地址中的五十二个最高有效位(MSB)。如果命中,BAT 42和ERAT 44就产生与提供的有效地址对应的实际地址的二十八个MSB,即实际页码(RPN)。各个结构也将断言表示成功变换的命中信号。如果BAT 42成功地变换了有效地址,它就断言控制信号ERAT HIT。具体有效地址的全部40位实际地址,是通过连接该有效地址的RPN和该有效地址的十二个最低有效位(LSB)而实现的。在PowerPCArchitecture中,BAT 42变换的地址在ERAT 44(如果有的话)之前。因此,当控制信号BAT HIT被断言时,该控制信号使多路复用器48输出由BAT 42产生的RPN。相反地,当被去断言时,控制信号BAT HIT使多路复用器48输出由ERAT 44产生的RPN。如果BAT 42和ERAT 44都未能成功变换具体的有效地址时,则第二地址变换单元40将尝试变换有效地址。控制信号BAT HIT和ERAT HIT被路由到第二地址变换单元40,以便利这种操作。BAT 42将在下面结合图3至7而得到更详细的描述。ERAT 44将结合图8而得到详细的描述。第二地址变换单元40将结合图9至11而得到详细的描述。
数据阵列46是实际编号的半相关高速缓冲存储器,它被用作八向设定相关高速缓冲存储器。数据阵列46包含512条高速缓冲存储器线,这些线中的每一条都存储四个四倍长字数据。这512条高速缓冲存储器线被组织成由三十二个子阵列(camlet)组成的两个库。各个子阵列包含八条高速缓冲存储器线。每四个四倍长字数据,可以被映象到具体子阵列中的八个不同的高速缓冲存储器线中的一条。各个数据阵列46中的各个高速缓冲存储器线,在内容寻址存储器(CAM)中存储REAL ADDRESS TAG,在CAM中存储EFFECTIVE ADDRESS TAG,并在一行静态随机存取存储器(SRAM)位单元中存储四个四倍长字。各个REAL ADDRESS TAG包含高速缓冲存储器线入口的实际地址的二十八个最高有效位。各个EFFECTIVE ADDRESS TAG包含高速缓冲存储器线入口的有效地址的八个最高有效位。
数据阵列46将装载/存储单元28提供给它的各个有效地址的有效地址位(52:57)编入一个子阵列。同时,数据阵列尝试使有效地址位(44:51)与一个选定子阵列中的八个EFFECTIVE AD-DRESSTAG之一相匹配。如果数据阵列46发现EFFECTIVE AD-DRESS TAG在一个子阵列中相匹配,则发生了有效地址命中且数据阵列46断言控制信号EFFECTIVE ADDRESS HIT。在此情况下,数据阵列46将有关的128位输出到装载/存储单元28。此时,该有效地址成功只是一个可能的命中。如上所述,比较器50,通过将多路复用器48的RPN输出与选定的一个子阵列的REAL AD-DRESS TAG相比较,来判定各个有效地址命中是否实际的数据高速缓冲存储器命中。如果如果数据阵列46没有在一个子阵列中发现EFFECTIVE ADDRESS TAG,则发生了高速缓冲存储器失配且数据阵列46去除对控制信号EFFECTIVE ADDRESS HIT的断言。在此情况下,BIU 12请求在四十位实际地址开始的数据,该实际地址是通过结合RPN和提供的有效地址的十二个LSB而产生的。
B.块地址变换器
i.概述
图3描述了图2所示的BAT 42的框图。在第一种操作模式中,BAT 42提供了用于将范围大于一页的虚拟地址映象到实际存储器的邻接区域中的机制。BAT 42包含用于将来自装载/存储单元28的输入有效地址映象到四个可能的实际地址存储单元的四个入口。这种操作模式被称为“有效模式”。在第二种操作模式中,BAT42只是将输入的有效地址作为实际地址传送到其输出端。这种模式被称为“实际模式”。这两种寻址模式由控制信号REAL MODE控制。在用户可见专用寄存器(未显示)中的一个单个的位,产生了控制信号REAL MODE。
BAT 42中的四个入口中的每一个,都存储四十七位块有效页编号(BEPI)、一个十一位块长度标识符(BL标识符)、和一个二十三位块实际页码(BRPN)。BAT 42中的每一个入口,还存储有各种位(未显示),这些位限定了入口的BRPN访问的实际存储器空间的某些特性。这些位是与本发明无关的。这四个BEPI被存储在CAM结构中。这四个BL标识符和四个BRPN被存储在SRAM位单元中。通过匹配入口的BEPI的内容与输入的有效地址,来读出入口的BRPN,如下所述。具体的入口的BRPN,是通过输入控制信号BAT BINARY SELECT上的二进制编号(000至111)并通过向BRPN提供适当的输入数据,而被写入的。
在有效至实际地址的变换中,提供的各个有效地址的三十六个MSB总是与四个BEPI的三十六个MSB进行匹配。然而,在PowerPCArchitecture中,BEPI的十一个最低有效位中的每一个,根据存储在BL标识符中的数据,可以与或可以不与相应的十一个有效地址位匹配。这种特征,使得数据处理器10的用户能够确定不同的块大小。例如,如果第二入口的BL标识符在逻辑上等于(0000000 0011,MSB至LSB),则第二入口的BEPI的四十五个(36+9)MSB必须与输入的有效地址的四十五个MSB匹配,以选择第二入口的BRPN。在此情况下,块的大小是512KB。如果第二入口的BL标识符在逻辑上等于(000 0001 1111,MSB至LSB),则第二入口的BEPI的四十二个(36+6)MSB必须与输入有效地址的四十二个MSB匹配,以选择第二入口的BRPN。在此情况下,块的大小是4MB。应该理解的是,BAT 42中的各个入口可以具有不同的值。
BAT 42在两种情况下输出用于地址变换的二十三位数据流。首先,如果相关的BEPI与输入的有效地址匹配且如果数据处理器10在虚拟模式下运行,BAT 42输出BRPN。在该虚拟模式中,BAT42通过将BRPN的十二个MSB与其余的BRPN LSB(如果没有被屏蔽)或者对应的有效地址位(如果被屏蔽)一位一位地相结合,而产生BRPN。在上述的第一个例子中,BRPN将由(1)选择的BRPN的十二个MSB、(2)选定的六个次MSB以及(3)有效地址位(45:46)的结合来产生。在上述的第二个例子中,BRPN将由(1)选定的BRPN的十二个MSB、(2)选定的BRPN的六个次MSB以及(3)有效地址位(42:46)的结合产生。其次,如果数据处理器10运行在实际模式,则BAT 42输出输入有效地址的二十三个MSB。多路复用器48接收的RPN(图2)本身就是上述BRPN与有效地址位(47:51)的结合。
ii.平衡的可屏蔽/不可屏蔽CAM
图4显示了图3所示的BAT 42的第一部分的电路图。图4显示了BAT 42的第一入口中的第三十六和第三十七CAM。CAM单元52存储位单元54中的第一入口的BEPI的第三十六位。如上所述,CAM单元总是将有效地址的第三十六位与存储在位单元54中的数据相比较。因此,CAM单元52不需要是可屏蔽的。CAM单元56存储位单元58中的第一入口的BEPI的第三十七位。如上所述,CAM单元可以将或可以不将有效地址的第三十七位与存储在位单元58中的数据进行比较。这种有条件的比较,取决于第一入口的BL标识符的MSB的值。因此,CAM单元52必须是可屏蔽的。CAM单元56一般比CAM单元52更快。这种特征简化了设计,但不降低性能。
应该理解的是,紧挨在CAM单元52的左侧,有三十五个CAM单元,它们与CAM单元52相同。这些CAM单元存储第一入口的BEPI的第一至三十五位。这种结构由向CAM单元52的左侧的水平省略号表示。类似地,紧挨在CAM单元56的右侧,有十个与CAM单元56相同的CAM单元。这些CAM单元存储第一入口的BEPI的第三十八至第四十七位。这种结构由至CAM单元56右侧的水平省略号来表示。这十个CAM单元的设置与存储第一入口的十一个BL标识符位的的十一个位单元相交替。BAT 42的的配置将在下面结合图7描述。另外,在所描述的部分行以下,有三行CAM单元和BL标识符位单元。这三行存储第二、第三和第四BEPI和第二、第三和第四BL标识符。这种结构由CAM单元52和56之下的纵向省略号来表示。
继续看图4,位单元54在数据信号(标为D)和杠数据信号(用D表示)上输出存储的逻辑状态及其补码。该数据信号与选通门60的一个n型器件相连并与选通门62的一个p型器件相连。杠数据信号与选通门60的一个p型器件和选通门62的一个n型器件相连。选通门60的第一电极与倒相器64的一个输出端相连。倒相器64的一个输入端与“与非”门66的输出端相连。“与非”门66的第一输入端接收周期时钟信号CLOCK。“与非”门66的第二输入端与一个倒相器68的一个输出端相连。倒相器68的一个输入端接收有效地址EA的第三十六位。(EA(0)是该有效地址的第一位)。选通门62的第一电极与倒相器70的一个输出端相连。倒相器70的一个输入端与“与非”门72的一个输出端相连。“与非”门72的第一输入端接收周期时钟信号CLOCK。“与非”门72的第二输入端接收有效地址的第三十六位。各个选通门60和62的第二电极与n型晶体管74的控制电极相连。晶体管74的第一电极与同第一入口中的CAM单元共同的匹配线节点相连。出现在该匹配线节点上的电压产生一个信号MATCHLIN。晶体管74的第二电极接收第一电源电压,通常被称为地。
位单元58也在数据信号(标为D)和杠数据信号(标为D)上输出所存储的逻辑状态及其补码。该数据信号与选通门76的一个n型器件和选通门78的一个p型器件相连。该杠数据信号与选通门76的一个p型器件和选通门78的一个n型器件相连。选通门76的一个第一电极与“与非”门80的一个输出端相连。“与非”门80的第一输入端接收周期时钟信号CLOCK。“与非”门80的第二输入端与倒相器82的一个输出端相连。倒相器82的一个输入端接收有效地址EA的第三十七位。选通门78的第一电极与“与非”门84的一个输出端相连。“与非”门84的第一输入端接收周期时钟信号CLOCK。“与非”门84的第二输入端接收有效地址EA的第三十七位。各个选通门76和78的第二电极与“或非”门86的第一输入端相连。“或非”门86的第二输入端接收第一入口的BL标识符的第一位BL(0)。“或非”门86的一个输出端与n型晶体管88的控制电极相连。晶体管88的第一电极与匹配线节点相连。晶体管88的第二电极接收第一电源电压。
CAM单元52和56进行三种操作:比较、写入和读出。
在比较操作中(周期时钟信号CLOCK对应于高逻辑状态),有效地址的四十七个MSB被与四个BEPI的每一个的四十七个存储位相比较。如果所有四十七对有效地址与存储的数据位在BAT 42的具体入口中都在逻辑上相等,则该入口的匹配线节点将被保持在预置状态(高)。出现在匹配线节点上的电压此时能够得到缓冲,以驱动一个控制信号—该控制信号将入口的BRPN位单元耦合到一系列输出位线。如果在具体的BAT 42入口中,有效地址与存储的数据位中有一或多对在逻辑上不相等,则该具体入口的匹配线节点将向地放电。在此情况下,该入口的BRPN位单元将不与输出位线相耦合。应该注意,CAM单元52和56的配置是不同的。选通门60和62将输入有效地址位的逻辑补码传送到晶体管74的控制电极。相反地,选通门76和78将输入有效地址位传送到“或非”门86的第一输入端。这种不同使得CAM单元56在第一BL标识符位对应于高逻辑状态时能够不使匹配线节点放电。
位单元54的内容,可以通过将位线连接到位单元54的写入端口(均未显示)而得到写入。一般地,BAT BIN ARY SELECT的解码形式被用来实际这种连接。出现在该位线上的所有逻辑状态都被写入到位单元54中。相反地,位单元54的内容,可以通过将位线连接到位单元54的写入端口并将一个检测放大器(均未显示)连接到该位线,而得到读出。
iii.分配的多路复用器
图5显示了图3所示的BAT 42的第二部分的电路图。图5显示了与BAT 42的第一入口中的第N个BRPN位单元92相联系的分配多路复用电路90,其中N是整数。位单元92存储第一入口的BRPN的第N位。如上所述,如果在匹配操作中选择了一个入口,则BAT 42总是输出该入口的BRPN的十二个MSB。根据该入口的BL标识符,BAT 42也将输出其余的十一个LSB中的某些个。如果BAT 42不输出其余十一个BRPN位中的具体一个,则它将输出相应的有效地址位。所显示的电路在各个有效地址与BRPN位对之间进行多路复用,同时该入口进行CAM操作。BAT 42能够以比进行CAM操作更快的速度,进行这种多路复用操作。因此,与块长度功能有关的时间损失隐藏在CAM操作之下,且不出现在数据高速缓冲存储器16的速度通路上。
应该理解的是,在BAT42的第一入口中还有十个与图5中所示的电路相同的电路。这十一个电路存储并输出第一入口BRPN的十一个LSB。这种结构由图5中所示的电路中左和右侧的水平省略号来表示。另外,在所示的部分行之下,有三行十一个分配多路复用电路90。这三行存储第二、第三和第四BRPN的十一个LSB。这种结构由分配多路复用电路90之下的纵向省略号来表示。各个BRPN的这三十六个MSB只包含位单元92。所示的实施例是六十四位的数据处理器。然而,只允许各个实际地址的长度为四十位。因此,各个BRPN的二十四个MSB没有与多路复用器48相连。
继续参见图5,位单元92的一个杠数据输出信号(标为)与倒相器94的输入端相连。(位单元92的未显示的杠数据输出信号被用作写入端口)。倒相器94的输出端与选通门96的第一电极相连。第一入口的BL标识符的第N位BL(N)与倒相器98的一个输入端、选通门96的p型器件、和选通门100的一个n型器件相连。倒相器98的一个输出端与选通门96的一个n型器件和选通门100的一个p型器件相连。选通门96和100的每一个的第二电极与n型晶体管102的控制电极相连。晶体管102的第一电极与n型晶体管104的第一电极相连。晶体管102的第二电极接收第一电源电压。晶体管104的控制电极接收上面结合图4描述的控制信号MATCHLIN的缓冲形式。晶体管104的第二电极与第N位线(标为BIT LINE(N))相连。该第N位线将在下面结合图6作更详细的描述。
分配多路复用电路90执行两种功能:比较/读出,和写入。
在比较/读出操作中,如果与四个MATCHLIN信号中的一个对应的BEPI与输入的有效地址匹配,则四个MATCHLIN信号中的这一个将保持在预置状态。在此情况下,晶体管104将使晶体管102的第一电极与输出位线相连。如果BL标识符的第N位对应于逻辑低状态,则第N位单元92的数据信号输出(杠数据输出信号的倒相)将到达晶体管102的控制电极。如果BL标识符的第N位对应于逻辑高状态,则有效地址的第N位将到达晶体管102的控制电极。在这两种情况下,电路(未显示)将晶体管102的第一电极预置到逻辑高状态。第N位线的逻辑状态输出是第N位单元92或第N有效地址位的逻辑补码。(该输出如上面结合图6所述地受到倒相。)如果对应于四个MATCHLIN信号中的一个的BEPI不同输入有效地址匹配,则四个MATCHLIN信号中的这一个将放电到逻辑低状态。在此情况下,晶体管104不将晶体管102的第一电极连接到输出位线。
如上所述,具体BRPN的二十四个MSB不与多路复用器48相连。如果CAM匹配操作选择了具体的BRPN,则该具体BRPN的随后的十二个MSB总是得到输出。这十二个位没有BL标识符位。因此,倒相器98的输入端、选通门96的n型器件、以及选通门1000的p型器件,接收与逻辑高状态对应的电压电平。这使分配多路复用电路90输出位单元92的杠数据输出。
位单元92的内容,可以通过将位线信号连接到写入端口(未显示),而得到写入。一般地,BAT BINARY SELECT信号的解码形式,被用来实现这种连接。出现在位线信号上的所有逻辑状态,都被写入位单元92。
iv.实际模式旁路电路
图6显示了图3所示的BAT42的第三部分的电路图。图6显示了与第N个BRPN位线耦合的旁路电路106。如结合图4和5所描述的,如果具体入口的BEPI与输入有效地址相匹配,BAT 42在二十三条位线上输出具体入口的二十三个BRPN位。这种操作模式被称为“有效模式”。旁路电路106还提供使有效地址被输出到多路复用器48的路径。这种操作模式被称为“实际模式”。旁路电路106,在不在位线与多路复用器48之间添加额外的二至一多路复用器而且不用三至一多路复用器取代二至一多路复用器48的情况下,提供这种输出路径。
应该理解的是,还有四十六个与图6所示的相同的其他旁路电路。这四十六个旁路电路与BAT 42的其他四十六条BRPN位线相连。这种结构由图6所示的电路的左和右侧的水平省略号表示。BRPN位通过相应的晶体管104而与它们各自的位线相连。BAT42中的四个入口中的每一个的第N个BRPN位,与第N位线相连。如上所述,BRPN的二十四个MSB在所述的实施例中没有实施。这二十四条位线没有与多路复用器48相连。只有二十三个LSB位线被输出到多路复用器48。
继续参见图6,旁路电路106有串联在第二电源电压(标为VDD)与第一电压电平之间的五个晶体管108、110、112、114和116。晶体管108的第二电极与晶体管110的第一电极相连。晶体管110的第二电极与晶体管112的第一电极相连。晶体管112的第二电极与晶体管114的第一电极相连。晶体管114的第二电极与晶体管116的第一电极相连。晶体管116的第二电极接收第一电源电压。晶体管108和116的控制电极接收BAT 42提供的有效地址EA的第N位。晶体管110的控制电极和晶体管112的控制电极,分别接收周期时钟信号CLOCK及其逻辑补码。晶体管118的第一和第二电极分别与晶体管108的第一和第二电极相连。晶体管114的控制电极接收控制信号REAL MODE。晶体管118的控制电极接收控制信号REAL MODE。晶体管110的第二电极与第N条BRPN位线相连。晶体管108、110和118是p型器件。晶体管112、114和116是n型器件。第N条位线与第一倒相器120的一个输入端相连。倒相器120的一个输出端与多路复用器48相连并与第二倒相器122的一个输入端相连。倒相器122的输出端与倒相器120的输入端相连。
旁路电路106在两种模式下运行:有效和实际模式。在这两种模式下,旁路电路106,当周期时钟信号CLOCK对应于逻辑高状态(以及对应于逻辑低状态)时,对位线进行预置。旁路电路106随后当周期时钟信号CLOCK对应于逻辑低状态(以及对应于逻辑高状态)时判定或“评价”位线输出。在有效模式下,用户可视专用寄存器(未显示)中的一个信号位去除对控制信号REAL MODE的断言,使BRPN位线输出选定的BRPN。晶体管110和118将位线预置至高电平电压(VDD)。选定的BRPN中的各个位,根据该位的值,可以对或或可以不对各个对应的位线进行放电。在该实际模式中,控制信号REAL MODE得到断言,且BRPN位线输出输入的有效地址EA。如果第N个有效地址位对应于逻辑低状态,晶体管108和110将该位线预置至高电压电平(VDD)。相反地,如果第N个有效地址位对应于逻辑高状态,则晶体管114和116将该位线预置至低电压电平(地)。四个缓存的MATCHLIN信号,得到控制信号RE-AL MODE的补码的选通,以防止BRPN中的一个或多个的内容在实际模式下使位线放电。
v.块地址变换器配置
图7显示了图2所示的BAT 42的位单元配置的框图。相对于可掩码BEPI位单元和多路复用BRPN位单元的BL标识符位单元的设置,降低了位单元互连的复杂性。这种简化的互连,减小了所产生的电路的尺寸和电容,从而增大了其总体性能。
在所示的实施例中,数据处理器10是六十四位数据处理器。因此,BAT 42采用了两个六十四位寄存器(标为UPPER和LOWER)来存储BEPI、BL标识符、BRPN、和构成BAT 42的各个入口(标为ENTRY0至ENTRY3)的各个其他位。下面只描述对应于BAT 42的第“0”个入口的两个寄存器。但应该理解的是,其余的三入口是相同的。
继续参见图7,各个BL标识符位单元位于它屏蔽的BEPI位单元的右侧。例如,第一或第“0”个BL标识符位单元BL0位于第三十七个BEPI位单元BEPI 36的右侧。如上所述,BEPI的三十六个MSB总是与输入的有效地址EA进行比较。这些BEPI位不一定要与BL标识符位相对应。因此,存储BEPI的三十六个MSB的三十六个CAM单元被连续地配置。第三十六和第三十七个CAM单元在上面结合图4进行了描述。
另外,存储BRPN的各个位单元在相应的BEPI位之下得到排列。例如,第三十七个BRPN位单元即BRPN 36,位于第三十七个BEPI位单元即BEPI36的下面。如上所述,BRPN的十二个MSB(BRPN 24至BRPN 35)总是在成功的匹配之后被输出。这些BRPN位不一定要有对应的BL标识符位。因此,存储BRPN的十二个MSB的十二个SRAM位单元被连续地配置。(不与多路复用器48相连的BRPN的二十四位,即BRPN0至BRPN23,也被连续地设置在存储BRPN的十二个MSB的位单元的左侧)。这些多路复用的BRPN位单元结合图5而在上面得到了描述。
标为“OTHER BITS”的位单元,存储描述至变换地址的存取权利、有关的BRPN的有效性等等的信息。各个入口的MATCHLIN控制信号从上面的六十四位寄存器的右侧出来,并进入一个驱动电路124。驱动电路124缓存控制信号MATCHLIN,用控制信号REAL MODE和BAT BINARY(未显示)对其进行选通,并将其送回到两个六十四位寄存器。
可屏蔽BEPI CAM单元与BL标识符位单元的交叠以及多路复用的BRPN位单元与BL标识符位单元的排列,减小了BL标识符位与使用它们的各种电路之间的距离。另外,将有效地址的各个位路由到相应的BEPICAM单元(用于匹配)和路由到相应的BRPN位单元(用于与存储的BRPN位进行多路复用),只需要一条输入线。因而所产生的互连得到了简化。这种互连方法至少有三个优点。第一,互连的金属层较少,因为多数的互连是局部的或接近局部的,即在相邻电路之间的。第二,较少的互连减小了BAT 42的总体尺寸。较小的尺寸降低了电路的成本。第三,较短和较少的互连减小了所产生的电路的电容。小的电容增大了BAT 42的最大运行频率。
C.有效—实际地址晶体管
图8显示了图2所示的ERAT 44的框图。ERAT 44对六十四个近期使用的有效—实际地址变换进行高速缓冲存储。这六十四个变换中的任何一个都能够通过单个的查阅操作进行存取:不需要中介的虚拟地址变换步骤。然而,ERAT 44在段和页的基础上支持入口无效操作。因此,ERAT 44是快速并与分页/分段变换方案相兼容的。
ERAT 44是六十四入口CAM/SRAM结构的。各个入口包含与存储有效段标识或“ESID”的第一匹配线相连的三十六个CAM单元、与存储有效页标识或“EPI”的第二匹配线相连的十六个CAM单元、存储有效入口位的V-BIT单元、字线驱动器、一行SRAM数据位单元、以及存储入口替换指针的REPLACEMENTPOINTER位单元。一个有效地址的ESID是该有效地址的三十六个MSB。一个有效地址的EPI是该有效地址随后的十六个MSB,EA(36:51)。各个ESID和EPICAM单元都与图4所示的CAM单元52类似。然而,各个入口中的三十六个ESID CAM单元与第一匹配线相连。各个入口中的十六个EPI CAM单元与第二匹配线相连。各种的CAM单元独立地对其各自的匹配线进行放电。ERAT44中的各个入口,将一个有效页映象到存储在DATA场中的RPN。映象的有效地址的三十六个MSB,被存储在ESIDCAM中。映象的有效地址的随后十六个MSB,被存储在EPICAM中。用于变换的相应实际页标,被存储在数据阵列中。实际地址,通过结合RPN与有效地址的十二个LSB,而从该RPN产生。ERAT 44还输出描述关于所产生的页的属性(诸如存取特权、可高速缓冲存储性等等)的各种位。
ERAT 44执行五种功能:变换、在失配之后的重新填充、段后备缓存器无效项(SLBIE)、表后备缓存器无效项(TLBIE)、以及段后备缓存器无效全部(SLBIA)。BIU 12、数据高速缓冲存储器16和指令提取单元18,根据ERAT 44执行的功能,产生信号CON-TROL。
ERAT 44,当数据高速缓冲存储器16执行装载或存储指令时,执行变换操作。在变换操作中,ERAT 44试图输出与指令的存储单元的有效地址对应的RPN。ERAT 44,通过将有效地址的三十六个MSB加到各个ESID上,并通过将随后的十六个MSB加到各个EPI上,来判定它是否包含所需的映象。如果具体的有效入口的ESID和EPI都与输入有效地址匹配,则第一和第二匹配线都将保持在预置状态。该具体入口的字线驱动器随后将断言该入口的字线,从而将对应的数据场的位单元耦合至输出位线并最终耦合至多路复用器48。该具体入口的字线驱动器将断言控制信号ERATHIT。如果一个具体入口的ESID和EPI之一或二者不与输入有效地址匹配,则第一和第二匹配线之一或二者将被放电。在此情况下,具体入口的字线驱动器将去除对该入口的字线的断言。如果没有入口包含匹配映象,则没有字线驱动器电路将断言ERAT HIT,即ERAT失配。如下面所述,次级变换单元40将尝试在ERAT失配的情况下变换有效地址。数据处理器10也能够利用这种方法,通过通过将预定电平的电压加到选定属性位单元的位线上,来对具体入口的属性位进行更新。
ERAT 44在未能成功变换有效地址之后,在失配操作一定时间之后,进行重新填充。在这些情况下,次级变换单元40向ERAT提供适当的变换,以便将来使用。次级变换单元40将变换的ES-ID、EPI、RPN、以及属性数据,分别提供给选定的入口的ESIDCAM、EPICAM和DATA位线(未显示)。一个环路计数器(未显示)选择用于替换的入口。该环路计数器依次检验各个时钟周期的一个V-BIT,直到(1)它遇到了无效的V-BIT入口,或者(2)次级变换单元40在失配操作之后开始重新填充。在任何一种情况下,环路计数器停止其检验并指向最后检验的入口。该环路计数器,通过将一个第一逻辑状态写入最后检验的入口的REPLACEMENTPOINTER位单元并通过将一个第二逻辑状态写入所有其他的入口,来表明最后检验的入口。
当指令提取单元18解码SLBIE指令时,ERAT 44执行段后备缓存器无效项操作。在SLBIE操作中,ERAT 44使与指定的段或ESID有关的所有映象无效。在一个给定的时刻,可以有任何数目的映象与ERAT 44中的具体ESID有关。ERAT 44,通过将指定的ESID加到各个入口的ESID CAM单元,来标明与指定的段对应的映象。ERAT 44忽略EPI匹配线信号。如果输入的ESID和具体入口的ESID CAM的内容匹配,则该入口的第一匹配线将保持在预置状态。该具体入口的字线驱动器随后将断言该入口的字线,将对应的V-BIT耦合到对应于一个无效入口的电压电平。该电压电平将被写入该无效入口的V-BIT。
ERAT 44,当指令提取单元18解码一个TLBIE指令时,执行表后备缓存器无效项操作。在TLBIE操作中,ERAT 44使与指定的页或EPI有关的所有映象无效。在给定的时刻,可以有任何数目的与ERAT 44中的具体EPI有关的映象。ERAT 44,通过将指定的EPI加到各个入口的EPI CAM单元,标明与指定的页对应的所有映象。ERAT44忽略ESID匹配线信号。如果输入的EPI与具体入口的EPI CAM的内容匹配,则该入口的第二匹配线将保持在预置状态。该具体入口的字线驱动器随后将断言该入口的字线,使对应的V-BIT与对应于一个无效入口的电压电平相耦合。该电压电平将被写入该无效入口的V-BIT中。
当指令提取单元18解码SLBIE指令时,ERAT 44执行段后备缓存器无效项操作。在一个SLBIE操作中,ERAT 44使ERAT 44中的所有映象无效。ERAT 44忽略ESID和EPI匹配线信号。在一个SLBIE操作中,各个字线驱动器断言其字线,使对应的V-BIT与对应于一个无效项的电压电平相耦合。
3.第二地址变换单元
A.概述
图9显示了图1所示的第二地址变换单元40的框图。次级变换单元40当E RAT 42判定它不包含具体的有效—实际地址变换时提供了该具体的变换:在结合图8描述的上述失配操作之后的重新填充。第二地址变换单元40,根据PowerPC Architecture六十四位分页/分段方案,将接收的有效地址变换成实际地址。在这种分页/分段方案中,各个有效地址首先被变换成一个中介或虚拟地址,并随后被变换成实际地址。虽然应该注意的是该虚拟地址没有被用作寻址索引。在该分页/分段方案的第一步,有效地址(ESID)的三十六个MSB被变换成一个五十二位的虚拟段标识(VSID)。该虚拟地址可以被抽象地想象为虚拟段标识与有效地址的二十八个LSB的结合。该虚拟地址是八位的。在该分页/分段方案的第二步,该虚拟地址的六十八个MSB被变换成五十二位的实际页标(RPN)。该实际地址是有效地址的十二个LSB与RPN的结合。
一个段后备缓存器(SLB)126接收有效地址的ESID,产生控制信号段后备缓存器命中(SLB HIT),并输出与输入的ESID有关的虚拟段标识(VSID TAG)。SLB 126是完全相关的二十个入口的CAM/SRAM结构。各个入口包含与匹配线相连的三十六CAM单元和五十二个SRAM单元。该三十六CAM单元存储三十六位ES-ID。这五十二个SRAM单元存储五十二位VSID。各个EPI CAM单元都与图4所示的CAM单元52类似。ERAT 44中的各个入口,将一个有效页映象到实际的页。SLB 126将在下面结合图10和11描述。
一个页表后备缓存器(TLB)128接收有效地址的EPI的六个LSB并输出两个标识符数据组。各个输出标识符(TAG WAY0,TAGWAY1)包含EPI的十个MSB(一个方式页编号)和与具体的虚拟
实际地址变换有关的虚拟段标识。各个数据输出(DATA WAY0,DATA WAY1)包含与具体的虚拟—实际地址变换有关的RPN和描述所产生的页的属性(诸如存取特权、可高速缓冲存储性等等)的各个位。TLT128是一个一百二十八入口双向设定相关SRAM高速缓冲存储器。
一个比较器130将(1)VSID TAG与输入有效地址的EPI的十个MSB的结合与(2)TAG WAY0进行逻辑比较。比较器132将(1)VSID TAG与输入有效地址的EPI的结合与(2)TAG WAY1进行逻辑比较。解码器134接收比较器130和134的一个输出并产生控制信号SECONDARY HIT。解码器134的输出还选择多路复用器136将两个输入中的哪一个输出到ERAT 42。次级变换单元40将有效地址和控制信号SLB HIT和SECONDARY HIT送到BIU12。
在所述实施例中,次级变换单元40,将输入有效地址变换成虚拟地址,并且并行将该虚拟地址变换成实际地址。这种并行策略比严格的串行有效—虚拟—实际方法快。然而,次级变换单元40,当它开始虚拟—实际变换步骤时,必然对虚拟地址进行猜测。
在有效—实际步骤中,SLB 126将输入的ESID与各个存储的ESID进行比较。如果输入的ESID与存储的ESID匹配,则发生了SLB命中。在此情况下,SLB 126输出与匹配的ESID对应的VSID。SLB126还断言控制信号SLB HIT。如果输入的ESID不与存储的ESID匹配,则发生了SLB失配。在此情况下,SLB 126去除对控制信号SLBHIT的断言。
在虚拟—实际步骤中,TLT 128用EPI的六个LSB来对两个入口进行编号。TLT 128的这种双向设定相关特性,使具体的虚拟段标识进入TLT 128中的两个入口中的一个。这两个入口由虚拟段标识的EPI的六个LSB进行编号。这两个入口是TLB的“猜测”。比较器130和132判定VSID猜测中是否有一个是正确的。如上所述,比较器130和132将(1)VSID TAG与输入有效地址的EPI的十个MSB的结合同(2)TAG WAY0或TAG WAY1分别进行逻辑比较。如果猜测之一是正确的,则发生了TLB命中。在此情况下,解码器134使多路复用器136将与正确猜测的虚拟段标识对应的RPN输出到ERAT 42。解码器134还将断言控制信号SEC-OND ARY HIT。如果猜测中没有正确的,则发生了TLB失配。在此情况下,解码器134将去除对控制信号SECONDARY HIT的断言。
如果发生了SLB失配或TLB失配,BIU 12为变换映象而对主存储器进行存取,即“硬件表游动”。在数据处理器10上运行的软件操作系统在主存储器中建立分段表和页表—其中分别存储有所有允许的有效—实际和虚拟—实际映象。在SLB失配的情况下,BIU12在主存储器中,在第一专用寄存器(未显示)的内容与ESID的数学函数(无用信息)的结合所产生的地址,读出所需的有效—虚拟变换。类似地,在TLB失配的情况下,BIU 12在主存储器中在第二专用寄存器(未显示)的内容与EPI的无用信息的结合所产生的地址,读出所需的虚拟—实际变换。这些变换映象随后被适当地存储在SLB126和TLT 128中,以便将来使用。
B.段后备缓存器
图10显示了图9所示的SLB 126的框图。SLB 126与PowerPC三十二位和六十四位地址变换模型相容。具体地,PowerPC三十二位地址变换模型要求SLB 126中的十六个入口是可寻址的,以便以唯一的二进制输入进行读出和写入。SLB 126在此模型中起着寄存器存储器的作用。相反地,PowerPC的六十四位地址变换模型只要求SLB 126中的各个入口在其ESID的内容与输入的ESID匹配时或在一个替换算法表明它应该被替换时是可存取的。SLB126在此模型中起着表的作用。所述的SLB,在不增大关键的读出速度通路的情况下,执行着两种功能。
SLB 126是二十个入口的CAM/SRAM结构的。各个入口包含一个REPLACEMENT POINTER位单元,该单元存储一个入口替换指针、一个写入控制电路、与存储ESID的匹配线相连的三十六个CAM单元、存储有效入口位的V-BIT单元、一个字线控制电路、以及存储与该入口的ESID对应的VSID的五十二个SRAM位单元。该REPLACEMENT POINTER场是以环路计数器实施的。在该计数器中的一个入口得到初始指定,且与一个第一逻辑状态对应的电压电平被写入到该入口的REPLACEMENT POINTER位单元。与一个第二逻辑状态对应的电压电平被写入所有其他的REPLACEMENT POINTER位单元。当VSID被写入前面的入口时,该替换指针进到下一个依次的入口。否则,该REPLACEMENTPOINTER继续指定前面的入口。写入控制和字线控制电路将在下面结合图11和12进行描述。
PowerPC三十二位变换模型要求首先的十六个入口可以利用移动指令而得到写入或读出。因此,一个1/16解码器138被连接到SLB 126的前十六个入口。(PowrPC Architecture结构只定义了三十二位操作模型中的十六个寄存器。)当数据处理器10执行移动指令时,解码器138从指令提取单元18接收二进制地址和控制信号BINARY。解码器138随后断言与该指令指定的入口相连的十六DECODE控制信号中的一个。另外,多路复用器140将寄存器号或有效地址耦合至基准和杠基准输入线,并将其耦合至ESID CAM单元的位线和杠位输入线。
图11显示了图10所示SLB 126的第一部分的逻辑图,即一个写入控制电路142。SLB 126中各个入口包含一个写入控制电路142。“或”门144的一个输出端产生控制信号WRITE ROW。控制信号WRITE ROW的使用,在下面将结合图12描述。“或”门144的第一输入端与“与”门146的一个输出端相连。“或”门144的第二输入端,与“与”门148的一个输出端相连。“与”门146的第一输入端,与该入口的替换指针位单元相连。“与”门146的第二输入端,接收控制信号BINARY的逻辑补码。“与”门148的第一输入端,接收控制信号DECODE。如果移动指令将SLB 126中的第N个入口分别指定为该指令的目标或源寄存器,则解码器138认定十六DE-CODE控制信号中的第N个。SLB 126中的最后四入口接收与逻辑低状态对应的电压电平,而不是控制信号DECODE。“与”门148的第二输入端,接收控制信号BINARY。
图12显示了图10所示的SLB 126的第二部分的逻辑图,一个字线控制电路150。SLB 126中的各个入口都包含一个字线控制电路150。“或”门152的一个输出端产生控制信号WORDLINE。该控制信号字线将具体入口中的各个位单元耦合到位线。各种位单元的内容随后可根据操作而被写入或读出。“或”门152的一个第一输入端与“与”门154的输出端相连。“或”门152的第二输入端与“与”门156的一个输出端相连。“与”门154的第一输入端接收入口的控制信号WRITE ROW。“与”门154的第二输入端接收该控制信号的逻辑补码。“与”门156的第一输入端接收如上面结合图4描述的控制信号MATCHLIN。各个入口的ESID CAM单元,控制如上而结合图4所述的MATCHLIN上的电压。“与”门148的第二输入端接收控制信号。
回到图10,SLB 126执行反映其双缓存器—寄存器存储器特性的四种功能:SLB写入、SLB读出、段寄存器写入、以及段寄存器读出。在PowerPC Architecture中,至SLB 126中的具体入口的段寄存器写入必须在从该具体入口的段寄存器读出之前。
在一个SLB写入操作中,BIU 12在SLB失配之后将有效—虚拟页变换提供给SLB 126。指令提取单元18去除对控制信号BI-NARY的断言且BIU 12去除对该控制信号的断言。BIU 12还将该变换的ESID和VSID分别提供给多路复用器140和VSID位线。只有一个写入控制电路142将确认其控制信号WRITE ROW。而且,只有一个字线控制电路150将把它的位单元连接到输入的ES-ID和VSID。输入的ESID和VSID将被写入到这一个入口。这一个入口是其REPLACEMENT POINTER位单元存储第一逻辑状态的入口。该REPLACEMENT POINTER随后进行到下一个依次的入口。
在SLB读出操作中,ERAT 42将该ERAT 42不能变换的有效地址送到次级变换单元40。指令提取单元18去除对控制信号BI-NARY的断言且ERAT 42断言该控制信号。ERAT 42还将该变换的ESID提供给多路复用器140,以与存储的所有ESID相比较。只有一个写入控制电路将断言其控制信号WRITE ROW。且只有一个字线控制电路将把其VSID位单元连接到输出位线。SLB 126将一个入口的VSID TAG送到比较器130和132,以进行如上面结合图9所述地进行比较。这一个入口是其ESID与输入的ESID匹配的入口。这一个入口的匹配线将保持在预置状态。
在段寄存器写入操作中,一个程序指令将SLB 126中的前十六个入口中的一个指定为指令操作数的目的。指令提取单元18断言控制信号BINARY、去除对该控制信号的断言、并借助控制信号REGISTER NUMBER来指定这十六个入口中具体的一个。指令提取单元18还将该寄存器号和指令操作数分别送到多路复用器140和VSID位线。只有一个写入控制电路142将断言其控制信号WRITE ROW。且只有一个字线控制电路150将使其位单元与输入的寄存器号和指令操作数相连。输入的寄存器号和指令操作数将被写入这一个入口。这一个入口是由解码器138选择的一个入口。例如,指令移动至段寄存器五(十进制)将“0101”(十进制的5)和一个指定的操作数分别写入第五个入口的ESID和VSID。RE-PLACEMENT POINTER随后进行到选定的入口之后的入口,而不论替换指针的以前的位置如何。这种过程尽量延迟了对选定的入口的内容的替换。
在段寄存器读出操作中,一个程序指令将SLB 126中的前十六个入口之一的VSID指定为指令操作数的源。指令提取单元18断言控制信号BINARY并断言控制信号。指令提取单元18还将寄存器号送到多路复用器140。只有一个字线控制电路150将使其VSID位单元与输出位线相连。该指令操作数将来自这一个入口。这一个入口是其ESID与输入的寄存器号匹配的入口。这一个入口的匹配线将保持在预置状态。继续看前面的例子,第五个入口的字线控制电路150把它的VSID位单元与输出位线相连,因为其ES-ID的内容“0101”(十进制的5)与输入的寄存器号5(十进制)匹配。该段读出操作,如这里所述地,不会影响SLB读出操作的性能。一般地,SLB读出操作是两种读出操作中较慢的一个。SLB126因而限制了对关键的SLB读出速度通路的额外延迟。
虽然已经结合具体的实施例描述了本发明,但对本领域的技术人员来说,可以进行进一步的修正和改进。例如,所公布的本发明可以被包含在在传统上被归为复杂指令设定计算机或CISC机的数据处理器中。另外,在某些实施例中,某些功能单元可以被省略或被重新设置在数据处理器10的其他区域中。因此,应该理解的是,本发明包括了所有这些修正,而这些修正没有脱离如所附权利要求书所限定的本发明的精神和范围。

Claims (5)

1.一种地址变换电路,用于将接收的有效地址变换成实际地址,其特征在于:
多个入口,这多个入口的每一个都包括:
大体上沿着第一条线路排列的第一行电路单元,该第一行电路单元的特征在于:
J个屏蔽位—标识符位单元对,其中J是一个整数,这J个屏蔽位—标识符位单元对中的每一个都沿着第一线路排列,该J个屏蔽位—标识符位单元对的每一个的特征在于:
一个屏蔽位单元,第l个屏蔽位单元对的屏蔽位单元存储第l个逻辑状态,其中l是从1至J的整数;
第一内容寻址存储位单元,该第l个屏蔽位一标识符位单元对的第一内容寻址位单元与第l个屏蔽位—标识符位单元对的屏蔽位单元相耦合,第l个屏蔽位—标识符位单元对的第一内容可寻址位单元存储多个标识符位中的第l个,第l个屏蔽位—标识符位单元对的第一内容寻址位单元接收多个有效地址位中的第l个,如果第l个逻辑状态对应于一个第一状态或者如果多个标识符位中的第l个在逻辑上与多个有效地址位中的第l个相等,则第l个屏蔽位—标识符位单元对的第一内容寻址位单元解除对J个第一控制信号中的第l个的认定;
与J个屏蔽位—标识符位单元对的各个第一内容寻址存储器位单元相耦合的字线驱动器,如果J个第一控制信号中的每一个都被解除认定,则该字线驱动器确认一个匹配线信号;
大体上沿着一条第二线路排列的第二行电路单元,该第二线大体上与第一线平行,该第二行电路单元的特征在于:
J个数据位—多路复用电路对,这J个数据位—多路复用电路对中的每一个都沿着第二线路排列,这J个数据位—多路复用电路对的每一个的特征在于:
数据位单元,第l个数据位—多路复用电路对的数据位单元与第l个屏蔽位—标识符位单元对相邻,第l个数据位—多路复用电路对存储多个实际地址位中的第l个;以及
多路复用电路,第l个数据位—多路复用电路对的多路复用电路与第l个屏蔽位—标识符位单元对相邻并与第l个数据位—多路复用电路对的数据位单元相邻,第l个数据位—多路复用电路对的多路复用电路与字线驱动器相邻、与第l个数据位—多路复用电路对的屏蔽位单元相邻、并与第l个数据位—多路复用电路对的数据位单元相邻,如果字线驱动器确认匹配线信号且如果第l个逻辑状态对应于第二逻辑状态则第l个数据位—多路复用电路对的多路复用电路输出多个实际地址位中的第l个,如果该字线驱动器确认该匹配线信号且如果第l个逻辑状态对应于第一逻辑状态则第l个数据位—多路复用电路对的多路复用电路输出多个有效地址位中的第l个。
2.根据权利要求1的地址变换电路,其中第l个数据位—多路复用电路对的多路复用电路的特征在于:
第一选通门,其特征在于一个p-器件控制电极、一个n-器件控制电极、一个第一电极和一个第二电极,该p-器件控制电极接收第l个逻辑状态,该n-器件控制电极接收第l个逻辑状态的逻辑补码,该第一电极与第l个数据位-多路复用电路对的数据位单元相耦合;
第二选通门,其特征在于一个p-器件控制电极、一个n-器件控制电极、一个第一电极和一个第二电极,该p-器件控制电极接收第l个逻辑状态的逻辑补码,该n-器件控制电极接收第l个逻辑状态,该第一电极接收多个有效地址位中的第l个;
一个第一晶体管,其特征在于一个控制电极、一个第一电极和一个第二电极,该控制电极与第一选通门的第二电极和第二选通门的第二电极相耦合,该第一电极接收一个第一电源电压;以及
一个第二晶体管,其特征在于一个控制电极、一个第一电极和一个第二电极,该控制电极接收匹配线信号,该第一电极与第一晶体管的第二电极相耦合,该第二电极产生第l个数据位—多路复用电路对的输出。
3.根据权利要求2的地址变换电路,其中第一行CAM单元的特征在于:
K个第二内容寻址存储器位单元,其中K是一个整数,第L个第二内容寻址位单元存储多个标识符位中的第L个,其中L是从J+1至J+1+K的整数,第L个第二内容寻址位单元接收多个有效地址位中的第L个,如果多个标识符位中的第L个在逻辑上与多个有效地址位中的第L个相等则第L个第二内容寻址位单元解除对K个第二控制信号中的第L个的认定;
其中字线驱动器与J个屏蔽位—标识符位单元对的各个第一内容可寻址存储器位单元相耦合并与K个第二内容寻址位单元相耦合,如果J个第一控制信号中的每一个和K个第二控制信号中的每一个都被解除认定则字线驱动器确认一个匹配线信号;且
其中第二行位单元的特征在于:
M个数据位单元,其中M是整数,M个数据位单元中的第N个存储多个实际地址位中的第N个,其中N是从J+1至J+1+M的整数,如果字线驱动器确认该匹配线信号则M个数据位单元中的第N个输出多个实际地址位中的第N个。
4.根据权利要求3的地址变换电路,其中第l个屏蔽位—标识符位单元对的第一内容寻址存储器位单元的特征在于:
第一标识符位单元,用于存储和输出第l个标识符位和第l个标识符位的逻辑补码;
与第一标识符位单元耦合的第三选通门,该第三选通门的特征在于一个p-器件控制电极、一个n-器件控制电极、一个第一电极和一个第二电极,该p-器件控制电极接收第l个标识符位的逻辑补码,该n-器件控制电极接收第l个标识符位,该第一电极接收多个有效地址位中的第l个的逻辑补码;
与第一标识符位单元耦合的一个第四选通门,该第四选通门的特征在于一个p-器件控制电极、一个n-器件控制电极、一个第一电极和一个第二电极、该p-器件控制电极接收第l个标识符位,该n-器件控制电极接收该第l个标识符位的逻辑补码,该第一电极接收多个有效地址位中的第l个;
一个“或非”门,其特征在于一个第一输入端、一个第二输入端和一个输出端,该第一输入端与第三选通门的第二电极和第四选通门的第二电极相耦合,该第二输入端接收第l个逻辑状态;
一个第三晶体管,其特征在于一个控制电极、一个第一电极和一个第二电极,该控制电极接收“或非”门的输出,该第一电极接收第一电源电压,该第二电极产生J个第一控制信号中的第l个;
其中第L个第二内容寻址位单元的特征在于:
一个第二标识符位单元,用于存储和输出第L个标识符位和该第L个标识符位的逻辑补码;
一个第五选通门,它与第二标识符位单元相耦合,该第三选通门的特征在于一个p-器件控制电极、一个n-器件控制电极、一个第一电极和一个第二电极,该p-器件控制电极接收第L个标识符位的逻辑补码,该n-器件控制电极接收第L个标识符位,该第一电极接收多个有效地址位中的第L个;
与第二标识符位单元耦合的一个第六选通门,该第六选通门的特征在于一个p-器件控制电极、一个n-器件控制电极、一个第一电极和一个第二电极,该p-器件控制电极接收第L个标识符位,该n-器件控制电极接收第L个标识符位的逻辑补码,该第一电极接收多个有效地址位中的第L个的逻辑补码;以及
一个第四晶体管,其特征在于一个控制电极、一个第一电极和一个第二电极,该控制电极与第五选通门的第二电极和第六选通门的第二电极相耦合,第一电极接收第一电源电压,第二电极产生K个第二控制信号中的第L个。
5.一种地址变换电路,用于将接收的有效地址变换成实际地址,其特征在于:
多个入口,这多个入口的每一个都包括:
大体上沿着一个第一线路排列的第一行电路单元,该第一行电路单元的特征在于内容寻址存储器位单元与块长度位单元的的交替序列,该内容寻址存储器位单元存储标识符,该块长度位单元存储块长度场,当接收的有效地址在逻辑上与存储的标识符的一部分相等时内容寻址存储器位单元确认一个匹配线,存储的标识符的该部分的大小响应于块长度场;以及
大体上沿着一个第二线路排列的第二行电路单元,该第二线路大体上与第一线路平行,该第二行电路单元的特征在于数据位单元与多路复用电路的交替序列,这些数据位单元的第l个大体上相邻于内容寻址存储器位单元中的第l个,其中l是整数,该数据位单元存储一个实际地址,当内容寻址存储器位单元确认匹配线时该多路复用电路输出实际地址的一部分和接收的有效地址的一部分,实际地址的该部分的大小和接收有效地址的该部分的大小响应于块长度场。
CN95103805A 1994-04-04 1995-03-31 地址变换电路 Pending CN1120196A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US222,779 1994-04-04
US08/222,779 US5530824A (en) 1994-04-04 1994-04-04 Address translation circuit

Publications (1)

Publication Number Publication Date
CN1120196A true CN1120196A (zh) 1996-04-10

Family

ID=22833644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN95103805A Pending CN1120196A (zh) 1994-04-04 1995-03-31 地址变换电路

Country Status (6)

Country Link
US (1) US5530824A (zh)
EP (1) EP0676698A1 (zh)
JP (1) JPH07295889A (zh)
KR (1) KR950033842A (zh)
CN (1) CN1120196A (zh)
TW (1) TW403870B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298608A (zh) * 2013-07-17 2015-01-21 英飞凌科技股份有限公司 使用地址位重排列的存储器访问
CN105912484A (zh) * 2015-02-19 2016-08-31 美国博通公司 高带宽存储器和少故障差分异或

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19526960A1 (de) * 1994-09-27 1996-03-28 Hewlett Packard Co Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung
US6813699B1 (en) 1995-06-02 2004-11-02 Transmeta Corporation Speculative address translation for processor using segmentation and optional paging
US5752260A (en) * 1996-04-29 1998-05-12 International Business Machines Corporation High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US5754463A (en) * 1996-07-15 1998-05-19 Intel Corporation Multi-ported content addressable memory with precharge "non match"
US5907866A (en) * 1996-12-19 1999-05-25 International Business Machines Corporation Block address translation circuit using two-bit to four-bit encoder
KR100263672B1 (ko) * 1997-05-08 2000-09-01 김영환 가변적인 페이지 크기를 지원하는 어드레스 변환장치
JPH11120075A (ja) * 1997-10-20 1999-04-30 Toshiba Corp 半導体記憶装置及び半導体記憶システム
US6021481A (en) * 1997-11-10 2000-02-01 International Business Machines Corporation Effective-to-real address cache managing apparatus and method
US6338128B1 (en) * 1999-05-20 2002-01-08 International Business Machines Corp. System and method for invalidating an entry in a translation unit
US6772315B1 (en) * 2001-05-24 2004-08-03 Rambus Inc Translation lookaside buffer extended to provide physical and main-memory addresses
JP2004094338A (ja) * 2002-08-29 2004-03-25 Seiko Epson Corp 半導体集積回路
US7062631B1 (en) * 2003-07-17 2006-06-13 Transmeta Corporation Method and system for enforcing consistent per-physical page cacheability attributes
US7185170B2 (en) * 2004-08-27 2007-02-27 Freescale Semiconductor, Inc. Data processing system having translation lookaside buffer valid bits with lock and method therefor
JP5300407B2 (ja) * 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
JP5337247B2 (ja) * 2009-08-07 2013-11-06 パナソニック株式会社 半導体記憶装置
TWI421871B (zh) * 2009-11-27 2014-01-01 Macronix Int Co Ltd 定址一記憶積體電路之方法與裝置
US9807169B2 (en) * 2015-05-04 2017-10-31 Sap Se Distributed tagging of data in a hybrid cloud environment
US10418079B1 (en) * 2018-03-26 2019-09-17 Oracle International Corporation Register file bit cells with integrated multiplexer

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764996A (en) * 1971-12-23 1973-10-09 Ibm Storage control and address translation
US4654777A (en) * 1982-05-25 1987-03-31 Tokyo Shibaura Denki Kabushiki Kaisha Segmented one and two level paging address translation system
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
US4813002A (en) * 1986-07-21 1989-03-14 Honeywell Bull Inc. High speed high density dynamic address translator
AU603167B2 (en) * 1986-12-23 1990-11-08 Bull Hn Information Systems Inc. Segment descriptor unit
JP2960415B2 (ja) * 1987-05-22 1999-10-06 株式会社日立製作所 記憶保護方法および装置
US5133058A (en) * 1989-09-18 1992-07-21 Sun Microsystems, Inc. Page-tagging translation look-aside buffer for a computer memory system
US5155825A (en) * 1989-12-27 1992-10-13 Motorola, Inc. Page address translation cache replacement algorithm with improved testability
US5263140A (en) * 1991-01-23 1993-11-16 Silicon Graphics, Inc. Variable page size per entry translation look-aside buffer
EP0508577A1 (en) * 1991-03-13 1992-10-14 International Business Machines Corporation Address translation mechanism
US5327372A (en) * 1992-01-17 1994-07-05 Matsushita Electric Industrial Co., Ltd. Semiconductor memory device
US5437017A (en) * 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298608A (zh) * 2013-07-17 2015-01-21 英飞凌科技股份有限公司 使用地址位重排列的存储器访问
CN104298608B (zh) * 2013-07-17 2017-08-15 英飞凌科技股份有限公司 使用地址位重排列的存储器访问
CN105912484A (zh) * 2015-02-19 2016-08-31 美国博通公司 高带宽存储器和少故障差分异或
CN105912484B (zh) * 2015-02-19 2019-01-18 安华高科技股份有限公司 高带宽存储器和少故障差分异或

Also Published As

Publication number Publication date
EP0676698A1 (en) 1995-10-11
KR950033842A (ko) 1995-12-26
TW403870B (en) 2000-09-01
JPH07295889A (ja) 1995-11-10
US5530824A (en) 1996-06-25

Similar Documents

Publication Publication Date Title
CN1120196A (zh) 地址变换电路
CN1118027C (zh) 存储器访问保护
CN1295622C (zh) 地址映射方法和映射信息管理方法及其闪速存储器
CN100390756C (zh) 一种将储存数据重新导向的虚拟集合高速缓存
CN101523359B (zh) 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用
JP3670041B2 (ja) 不揮発性メモリチップイネーブル符号化方法、コンピュータシステム、およびメモリコントローラ
CA2321466C (en) Priority encoder circuit and method
US20130019051A1 (en) Meta data handling within a flash media controller
WO1981001894A1 (en) Cache memory in which the data block size is variable
CN1088215C (zh) 不按顺序执行读写指令的存储器控制器
GB2176918A (en) Memory management for microprocessor system
US5499204A (en) Memory cache with interlaced data and method of operation
CN1652092A (zh) 不同高速缓存级上具有关联集重叠同余组的多级高速缓存
US6571316B1 (en) Cache memory array for multiple address spaces
US6349362B2 (en) Scheme to partition a large lookaside buffer into an L2 cache array
US6915385B1 (en) Apparatus for unaligned cache reads and methods therefor
CA1310135C (en) Buffer memory control apparatus
EP0413434B1 (en) Pipelined processor with variable instruction length
CN1093658C (zh) 数字处理器
US6694407B1 (en) Cache memory with data transfer control and method of operating same
EP0717359A2 (en) Register cache for a computer processor
US5732405A (en) Method and apparatus for performing a cache operation in a data processing system
WO2006038258A1 (ja) データプロセッサ
CN1267024A (zh) 用于多线程处理机的指令高速缓存器
CN1514372A (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