使用指令字段规定扩展功能的微处理器的制作方法

文档序号:6411088阅读:195来源:国知局
专利名称:使用指令字段规定扩展功能的微处理器的制作方法
技术领域
本发明涉及微处理器领域,尤其涉及用于扩展现有的微处理器结构内的微处理器功能的机构。
为了与用于以前的80×86各代产品--8086/8,80286,80386和80486所开发的大量软件维持兼容性,微处理器制造商继续开发执行×86指令的新产品。维持软件兼容性迫使在较新的产品中有许多结构上的妥协。为了保持较早产品的功能,硬件经常被简单地修改或为了增加容量和性能而被扩展。经常扩展以增加容量和性能的一个领域是存储器寻址模型。
早期的×86微处理器使用分段来实现一个存储器寻址模型。在分段中,一个存储器地址由使用两个部分的一条指令规定一个段和在段内的一个偏移量。段选择器存储在一个段寄存器中并且说明该段位于主存储器中的什么地方(如果处理器运行在无保护模式下)或者指向存储在主存储器中的段描述符表的一个段描述符。段描述符包含关于段的信息,包括它的基地址。基地址加上偏移量形成物理地址。有能力进入存储器的每条×86指令有一个缺省的段寄存器,从该寄存器取出它的段数据。×86结构定义了六个段寄存器CS,DS,SS,ES,FS和GS。CS是用于代码(指令)存储的缺省的段寄存器。DS是用于不处理堆栈值的指令的缺省的段寄存器。对于堆栈存取,SS是缺省的段寄存器。ES是用于字符串处理指令的缺省的段寄存器。通过加上一个段代换前缀字节到指令,缺省的段可以被代换而采用用于一个特定指令的另一个段寄存器。段代换前缀字节是指令的一个字段。如这里使用的,术语“指令字段”指的是形成一个指令的字节内的一个或多个字节。
从80386开始,特别的分页电路被加到分段地址产生硬件以允许分页存储器系统的实现。程序设计员开发了使用分页存储器系统的操作系统。分页存储器系统在任何给定的时间提供加载较小程序的部分到主存储器的能力并且同时提供用于程序运行的附加的内置保护检查。有关分页结构和在×86结构中分段的附加的信息可以从1987年由在旧金山的SYBEX,Inc.的Crawford等人的出版物“编程80386”中找到。在这里结合参考了这个出版物的所有部分。
当实现这样的分页存储器系统时一般不使用存储器分段。存储器分段不能被“关断”,但可以通过一个“平板”存储器模型的使用而被有效地禁止。通过使所有的段寄存器指向同样的存储器段而创建一个平板存储器模型(即使所有的存储器段重叠)。通过在所有的段寄存器存储同样的段信息完成这种重叠。使用分页机构的程序设计员一般实现平板存储器模型。
平板存储器模型在段寄存器的使用上有很大的影响。保持冗余的段地址信息使得80286微处理器增加的两个通用的段寄存器FS和GS实际上是没用的。(其他的段寄存器由80×86指令不明显的引用,但仅仅是在一定程度上有用的,因为它们包含冗余的信息)。此外,操作系统可以检测使用这些寄存器用于其他有用的目的的企图并且可以产生一个例外。由于这些寄存器被用于地址产生,加载一个不适当值的段寄存器可以使一个程序破坏由另一个程序使用的存储空间,或操作系统本身。在平板存储器模型下对于明确的参照段寄存器的一个建设性的使用是需要的。
根据本发明的微处理器可以解决上面概述的大部分问题。微处理器被配置以检测在平板存储器模式中被执行的指令代码序列中段代换前缀的存在,并且使用前缀值或存储在相关的段寄存器中的值以控制内部和/或外部功能。此外,该微处理器可以被配置以发信号通知下面的指令的正常执行的变化或修改。展示的许多实施例有益地使用段代换前缀以扩展微处理器的性能或容量。透明的和不透明的实施例均被考虑。该微处理器可以被配置以提供许多有用的功能而不改变×86结构。因此,当实现透明的实施例时与×86结构的较早的装置的向后兼容性可以被有益的维持。当实现不透明实施例时,向后兼容性可以不被维持但×86结构仍然不被修改。因此,因为一些编码被仔细地对待,代码可以容易地进入实现新功能的处理器,而指令组的所有特性是不改变的。
概括地说,本发明考虑的微处理器包括一个地址转换单元,多个段寄存器,一个第一控制单元,一个配置寄存器,以及一个第二控制单元。地址转换单元被配置以从一个逻辑地址和一个段值产生一个物理地址。紧紧耦合到地址转换单元的至少多个段寄存器中的一个存储前面提到的段值。第一控制单元被配置以检测一个表示多个段寄存器中的一个的指令字段并传送一个信号到表示多个段寄存器中的一个的地址转换单元。配置寄存器存储一个表示系统的一个地址转换模式的值。最后,第二控制单元被配置以完成一个取决于存储在配置寄存器中的值并且还取决于来自第一控制单元的信号的功能。本发明还考虑了包含上述微处理器和主存储器的一个计算机系统。
本发明还进一步考虑的一个微处理器包括一个地址转换单元,多个段寄存器,一个第一控制单元,一个第二控制单元,以及一个配置寄存器。地址转换单元被配置以从一个逻辑地址和一个段值产生一个物理地址。段寄存器被耦合到地址转换单元,其中至少多个段寄存器中的一个存储段值。也耦合到地址转换单元的第一控制单元被配置以检测一个表示多个段寄存器中的一个的指令字段并且传送一个信号到表示所述多个段寄存器中的一个的地址转换单元。配置寄存器存储一个表示微处理器的地址转换模式的值。耦合到配置寄存器和段寄存器的第二控制单元被配置以完成一个取决于存储在配置寄存器中的值并且还取决于段值的功能。此外本发明考虑的一个计算机系统包括了上述的微处理器和一个主存储器。
根据阅读下面的详细描述以及根据参照的附图,本发明的其他目的和优点将变得明显,其中

图1是包含一个80×86微处理器的计算机系统的方框图。
图2是说明图1的地址转换单元的方框图,它包括产生在实模式下运行的80×86微处理器中实际存储器地址的结构。
图3是说明图1的地址转换单元的方框图,它包括产生在保护模式下运行的80×86微处理器中实际存储器地址的结构。
图4是一个包括一个高速缓冲存储器控制器的微处理器的一部分的方框图,该控制器通过段寄存器选择信息被有选择地允许操作。
图5是一个包括一个数据预取单元的微处理器的一部分的方框图,该预取单元通过段寄存器选择信息被有选择地允许操作。
图6是一个包括一个分支预测单元的微处理器的一部分的方框图,该分支预测单元通过段寄存器选择信息接收控制信息。
尽管本发明对于各种修改和改变的形式是容许的,这里的特定实施例在附图中作为例子示出并且将在这里详细地描述。然而,应该理解那里的附图和详细的描述并不试图限制本发明为公开的特定的形式,而是相反,本发明是包括了适合由附加的权利要求书所定义的本发明的精神和范围的所有的修改、等效和替换。
现在来看图1,展示了包括一个微处理器101的计算机系统100的方框图。在一个实施例中,微处理器101实现80×86微处理器结构。微处理器101被耦合到一个外部高速缓冲存储器单元102和一个主存储器104。在一些实施例中,不包括外部高速缓冲存储器单元102。外部高速缓冲存储器单元102被用于加速最新存取的数据和不存储在微处理器101的内部高速缓冲存储器中的指令的传送。微处理器101包括一个协调从微处理器101的内部单元到外部高速缓冲存储器单元102和/或主存储器104的信息传送的总线接口单元106。内部高速缓冲存储器单元108存储由取出单元110和执行单元112使用的指令和数据信息。在一个实施例中,内部高速缓冲存储器单元108包括一个统一的指令和数据高速缓冲存储器。在另一个实施例中,分开的指令和数据高速缓冲存储器被配置到内部高速缓冲存储器单元108中。
在讨论本发明的独一无二的特征之前将描述微处理器101的单元。取出单元110从内部高速缓冲存储器单元108取出指令并且将指令送到指令译码单元114。指令译码单元114对于传递到执行单元112的接收的指令译码。驻留在寄存器的操作数被指令译码单元114取出并且当指令被传递到执行单元112时提供指令。一旦操作数是可获得的则执行单元112被配置以执行指令。如本领域的那些技术人员所理解的,有时×86指令具有的操作数根据一个偏移量,或根据寄存器和偏移量的某些结合存储在一个寄存器特定的地址的存储器中。为了检索存储在存储器中的操作数,执行单元112传送段寄存器标识信息和一个计算的偏移量到地址转换单元116。段寄存器标识信息或者由段代换前缀字节或者由用于相关的指令的缺省段寄存器产生。根据微处理器101的转换模式,地址转换单元116通过分段方法以及选择地通过上面描述的分页方法转换地址。
在一个实施例中,转换的地址绕过地址转换单元116到内部高速缓冲存储器单元。在另一个实施例中,一个高速缓冲存储器存取由执行单元112开始并且使用来自地址转换单元116的转换地址完成。在另外一个实施例中,内部高速缓冲存储器单元108采用一个未转换的地址寻址。在这个实施例中,当一个高速缓冲存储器的丢失发生,或当高速缓冲存储器线路被从内部高速缓冲存储器单元108除去并返回到主存储器104时,地址转换单元116被存取。
总的来说,地址转换单元116被配置以接收段寄存器标识信息和一个偏移量并且转换这个信息为物理地址。如果平板的寻址模式是有效的,由于段寄存器每个包含同样的值,所以段寄存器标识信息是不重要的。因此,通过解释传送到地址转换单元116的段标识信息,特征可以加到微处理器101。以这种方式加上的特征可以是透明的,使得利用这些特征所写的代码将正确地运行在实现×86结构但不实现加上的特征的处理器上并且使得不知道特征的所写的代码将正确地运行在实现加上的特征的处理器上。以这种方式加上的特征也可以是不透明的,使得利用特征的所写的代码可以不正确地运行在不实现特征的处理器上并且使得不知道特征的代码可以不运行在实现特征的处理器上。此外,通过使用存储在选择的段寄存器内(即由段寄存器代换前缀规定的段寄存器)的值以控制一个特征,特征可以以不透明方式加上。当存储的值被使用时,因为地址转换单元116被配置以忽略(当完成转换时)用于控制特征的段寄存器的部分,特征是不透明的。由于这个功能不是80×86结构的一部分,由存储在一个段寄存器中的值控制的增加的特征是不透明的。在详细讨论地址转换单元116之后,正如下面将要展示的,许多不同的特征要被考虑。
图2详细地展示了用于实模式物理地址产生的情况下图1的地址转换单元116。在这个模式中,地址转换单元116产生20位物理地址。地址转换单元116提供段寄存器标识信息和一个16位偏移量值。多路复用器204使用段寄存器选择信息以提供段寄存器中的一个的内容到移位寄存器206。(8086/8微处理器仅有所示六个段寄存器中的四个CS,DS,ES和SS)。然后移位寄存器206向左移动这个值四个二进制位的位置,形成一个存储器段的20位基地址。加法器208加上16位偏移量到20位段基地址,得到一个用于在存储器中定位的20位物理地址。
图3详细地展示了用于保护模式物理地址产生的情况下图1的地址转换单元116。保护模式在8086/8微处理器中是不能利用的。如同在实模式中,地址转换单元116提供段寄存器标识信息和一个偏移量值。然而,在保护模式中段寄存器包含一个到驻留在主存储器中的存储器段信息的两个表中的一个的索引。该表包含关于地址的转换的信息,包括段的基地址和段的大小。
从80286微处理器开始,加上了两个通用段寄存器(FS和GS),使得段寄存器的总数达到六个。关于六个存储器段的信息可以被加载到六个段寄存器。一般地与每个段寄存器有关的投影寄存器存储来自有关段描述符的数据,包括段的基地址。在80286中,段基地址是24位长。在80386和80486中,段基地址是32位长。多路复用器304使用段寄存器标识信息以提供相应的存储器段的基地址中的一个的内容。加法器306加上偏移量到段基地址,得到用于在存储器中定位的一个物理地址(假定分页电路308被禁止)。在80286中,偏移量是16位长,而物理地址是24位长。在80386和80486中,偏移量可以是16或32位长,而物理地址是32位长。如果分页电路308是允许的,根据分页算法由加法器306形成的地址也再次被转换。分页算法使用由加法器306形成的地址的高位比特以索引到包含页面表的地址的一个页面目录。页面表的地址被加到来自加法器306的位的第二范围以找到一个特定的页面目录的入口。存储在这里的信息被用于转换由加法器306形成的地址到一个物理地址。
在平板寻址方式中,分页算法被用于转换并且由加法器306产生的地址如上所述与逻辑地址相同。因此,段寄存器用得非常少。特别少使用的是段寄存器FS和GS,它们不是用于×86指令的缺省的段寄存器。因此,有关FS和GS寄存器的段寄存器代换字节可以被用于允许微处理器101的扩展的特征。另外,规定对于一个指令的缺省的段寄存器的段寄存器代换字节可以用于另一个实施例中。应该注意当平板存储器寻址无效时这另一个实施例也可以被使用。
图4是一个包括一个高速缓冲存储器控制单元404的微处理器101的一部分的方框图。高速缓冲存储器控制单元404被配置在内部高速缓冲存储器单元108内并且被耦合到执行单元112和一个控制寄存器402。高速缓冲存储器控制单元404使用由执行单元112提供的段寄存器标识信息,以及使用在控制寄存器402中的一个使能位400的内容被选择地使能。当使能位400被设置时,高速缓冲存储器控制器404选择地存储与指令有关的数据,该指令在内部高速缓冲存储器单元108中产生段寄存器标识信息。这种高速缓冲存储器能力选择是除了×86结构的结构的高速缓冲存储器能力选择以外如在页面表入口的PCD位中所体现的。在一个实施例中,数据被存储除非FS寄存器被用于相关指令的一个段寄存器代换前缀字节规定。其他的实施例可以使用其他的段寄存器代换用于这个功能。
在另一个实施例中,存储在选择的段寄存器内的值被传送到高速缓冲存储器控制单元404。因此一个特定的地址的高速缓冲存储器能力是由传送的值确定的。
如果使能位400被清除,段寄存器标识信息不用于确定一个特定的地址的高速缓冲存储器能力。在另一个实施例中,用于一个地址的高速缓冲存储器特性被传送到外部高速缓冲存储器102(如图1所示)。
在另一个实施例中,高速缓冲存储器控制器404被配置以选择地存储在连续写入或写回模式中的一个行。当使能位400被设置,高速缓冲存储器控制器404选择地存储与在一个连续写入或写回模式的内部高速缓冲存储器单元108中产生的段寄存器标识信息的指令相关的数据。这种模式选择是除了×86结构的结构连续写入选择以外如在页面表入口的PWT位所体现的。在一个实施例中,数据被以写回模式存储除非FS段寄存器被用于相关指令的一个段寄存器代换前缀字节规定。其他的实施例可以使用其他的段寄存器代换前缀字节用于这个功能。在另一个实施例中,存储在选择的段寄存器内的值被传送到高速缓冲存储器控制单元404。因此一个特定的地址的连续写入或写回模式被传送的值确定。如果使能位400被清除,段寄存器标识信息不用于确定一个特定的地址的连续写入或写回模式。在另一个实施例中,用于一个地址的连续写入或写回特性被传送到外部高速缓冲存储器102(如图1所示)。
高速缓冲存储器控制单元404具有根据与一条指令相关的段寄存器标识信息的一个特定的值实现一个高速缓冲存储器刷新或高速缓冲存储器清除操作的另一个实施例。高速缓冲存储器刷新操作导致包含高速缓冲存储器刷新操作的地址的一个高速缓冲存储器界被从高速缓冲存储器中除去。如果该行相对于主存储器修改,修改的值被写回到主存储器。一个高速缓冲存储器清除操作类似于刷新操作在于一个修改的高速缓冲存储器界被写回到主存储器。然而,高速缓冲存储器清除操作并不从高速缓冲存储器除去行。与立刻影响整个高速缓冲存储器的×86结构的INVD和WBINVD指令不同,这些操作影响一个单个的高速缓冲存储器界。GS段代换前缀字节被用于引起在这个实施例中一个刷新操作,以及ES段代换前缀字节被用于引起一个清除操作。其他的实施例可以使用其他的段寄存器代换前缀字节用于这些功能,或可以使用在选择的段寄存器中存储的值以规定这些功能。如果使用存储在选择的段寄存器中的值,那么该值与段标识值一起被传送到高速缓冲存储器控制单元404。
在另一个实施例中,高速缓冲存储器控制单元404实现基于FS段寄存器代换前缀字节的使用的一个推测的丢失行填充功能。在这个实施例中,如果FS段代换前缀字节被规定用于一个特定的指令和相关于指令丢失内部高速缓冲存储器单元108的地址,则包含地址的高速缓冲存储器界被从主存储器取出,即使指令被执行单元112推测地执行。有时,一个特定的指令可以表现出对于微处理器101是推测的,即使地址是正确的并且在不久的将来被程序所要求。如果一个程序编制器或编译程序知道这种情况,它会规定对于指令的一个高速缓冲存储器丢失被推测地取出到内部高速缓冲存储器108。当用于本文中的指令执行时,术语“推测”意味着在知道指令在一个程序中被指令的连续执行的请求之前一个指令被执行。
高速缓冲存储器控制器404的另一个实施例被配置以分配一个高速缓冲存储器界用于如果ES段寄存器代换前缀字节包括在存储指令中,则存储丢失内部高速缓冲存储器108的指令。如果使能位400没有设置,那么丢失内部高速缓冲存储器108的存储指令被写到主存储器而不取出相关的高速缓冲存储器界到内部高速缓冲存储器108。如果使能位400被设置,那么如果存储指令包括ES段寄存器代换前缀字节,丢失内部高速缓冲存储器108的存储指令将导致相关的数据字节的一个高速缓冲存储器界填充发生。如果不包括ES段寄存器代换前缀字节,则高速缓冲存储器界填充将不发生并且存储的数据将被写到主存储器。在另一个实施例中,丢失高速缓冲存储器的存储指令将导致一个高速缓冲存储器界被分配但相关的数据字节将不从存储器取出。由存储指令提供的数据字节将被存储到高速缓冲存储器界。然而,高速缓冲存储器界的其他数据字节在内部高速缓冲存储器108中被标记为无效,直到附加的存储指令使得其他数据字节变得有效。在另一个可供选择的实施例中,其他的数据字节被设置为零。高速缓冲存储器控制单元404的一个附加的实施例被配置以使用存储在选择的段寄存器中的值来规定上面提到的推测的丢失行填充功能。
在一个实施例中,控制寄存器402是出现在80386和以后的微处理器中的控制寄存器0。使能位400是控制寄存器0的位31,分页位。当位31被设置时,分页被使能。
图5是一个包括数据预取单元500的微处理器101的一部分的方框图。数据预取单元500耦合到执行单元112和控制寄存器402。通过使用由执行单元112提供的段寄存器标识信息和使用在控制寄存器402中的使能位400的内容,数据预取单元500被选择地使能。当使能位400被设置时,数据预取单元500预取在由指令说明的地址开始的主存储器104(如图1所示)的连续的字节组中存储的高速缓冲存储器界有关的数据。高速缓冲存储器界由内部高速缓冲存储器单元108存储。如果使能位400没有设置,那么数据预取单元保持空闲。在一个实施例中,如果FS段寄存器代换被用于一个指令,数据预取单元500开始预取。由数据预取单元500取出的连续的高速缓冲存储器界的数量可以根据不同的实施例而变化。在另一个实施例中,在选择的段寄存器中存储的值的控制下数据预取开始。此外,用于取出的连续高速缓冲存储器界的数量可以由在选择的段寄存器中存储的值规定。
在另一个实施例中,数据预取单元500实现其他的预取方案。应该注意许多预取方案适合于数据预取单元500,包括基于预取方案和其他“智能”预取方案的进步。各种“智能”预取方案是公知的。
图6是一个包括包含在取出单元110中的分支预测单元600的微处理器101的一部分的方框图。分支预测单元600耦合到执行单元112和一个控制寄存器402。分支预测单元600实现在取出单元110内体现的,并且作为另一个可供选择的方案的分支预测方案。另一个可供选择的方案通过由执行单元112提供的段寄存器标识信息和在控制寄存器402中的使能位400的内容而被使能。如果使能位400没有设置,则使用分支预测单元600的分支预测方案。如果使能位400被设置,则分支预测单元600的分支预测方案被使用,除了在分支指令包括FS或GS段寄存器代换前缀字节之前立即有一个空操作指令的情况。在这种情况下,使用另一个可供选择的分支预测方案。
在一个实施例中,如果一个先前的空操作包括FS段寄存器代换前缀字节,另一个可供选择的分支预测方案是预测被采用的分支,或者如果GS段寄存器代换前缀字节被包括,另一个可供选择的分支预测方案是预测不被采用的分支。在这个应用的上下文中,术语“空操作”并不是指×86结构的NOP指令。“空操作”是一个不改变一个寄存器或存储器,而引用一个存储器单元的一条指令,使得一个段寄存器代换前缀字节可以与指令一起被包括。一个示范的空操作指令是一条将零加到一个存储器单元的内容的指令。此外,存储在选择的段寄存器中的值可以被用于使能或禁止另一个可供选择的分支预测方案。
对于段寄存器标识信息的上述使用是透明的使用,除了使用存储在选择的段寄存器中(代替一个特别的段代换前缀字节的存在)的值以控制一个特征的实施例。不透明的使用也被考虑,如下所述。
两个示范性的不透明的使用可以在执行单元112内实现。首先,一个段寄存器代换字节可以被用于创建不修改状态标志的指令。例如,ADD指令修改状态标志。通过使用段寄存器代换前缀字节,一个使用存储器操作数的ADD指令被修改为不修改状态标志的ADD指令。在一个实施例中,FS段寄存器代换前缀字节说明ADD指令将不修改状态标志。这个功能允许用于取决于由一个特定的操作产生的状态标志的分支的调度。许多指令可以在分支指令与取决于是否指令不修改状态标志的指令之间执行。
帮助分支指令调度的另一个实施例是实现状态标志的多种设置。在这种方式中,条件的多种设置可以被同时保留。段寄存器代换前缀字节可以与修改状态标志的指令一起使用以说明多个状态标志设置中的哪一个要修改。这样紧接着一个分支指令之前的空操作指令使用段寄存器代换前缀字节以说明多个状态标志设置中的哪一个是分支指令应该使用的以确定分支方向。如果相对于一条指令不包括任何段寄存器代换前缀字节,则状态标志的缺省设置是相关于指令的。另一个实施例使用存储在选择的段寄存器内的值以选择要被一个特定的指令使用的状态标志的设置。
段寄存器代换前缀字节的另一个不透明的使用可以在指令译码单元114内体现。如上所述,指令译码单元114读取作为一个指令的操作数规定的寄存器并与指令一起传送该值到执行单元112。在这个实施例中,段寄存器代换前缀字节用于选择存储数据的多个寄存器存储单元中的一个。每个寄存器存储单元包括×86寄存器的所有补充。在这种方式中,结构的寄存器组可以扩展而不改变指令编码。在本领域的熟练的技术人员应该理解,一个较大的寄存器组允许较多操作数值保留在寄存器(可以快速存取)中并且因此对于存储器的存取(一般要求一个较长的时间周期)减少了。在一个实施例中,没有任何段寄存器代换前缀字节规定寄存器的第一个存储单元,一个说明FS段寄存器的段寄存器代换前缀字节规定寄存器的第二个存储单元,一个说明GS段寄存器的段寄存器代换前缀字节规定寄存器的第三个存储单元,以及一个说明ES段寄存器的段寄存器代换前缀字节规定寄存器的第四个存储单元。在另一个实施例中,存储在选择的段寄存器内的值用于选择来自许多寄存器存储单元的合适的寄存器存储单元。
应该注意许多其他不透明的使用可以被创建用于段寄存器代换前缀字节。本发明考虑了通过段寄存器代换前缀字节的使用实现的透明和不透明的功能。此外要注意尽管上述实施例是80×86微处理器,在任何微处理器结构中实现的任何微处理器可以从结构的相似的扩展中得到好处。
在1993年10月29日由Witt等人申请的系列号08/146,382的共同未决的、共同转让的专利申请,名称为“高性能超标量微处理器”中可以找到关于微处理器的其他部分的方面。此外,在1995年1月25日由Tran等人申请的系列号08/377865的共同未决的、共同转让的专利申请,名称为“高性能超标量指令调整单元”中可以找到信息。在这里结合参考了公开的整个上述两个申请。
一旦完全理解了上述公开的申请,本发明的各种变化和修改对于本领域的那些技术人员将变得很明显。下列权利要求将被解释以试图包括所有这些变化和修改。
权利要求
1.一个微处理器包括一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述微处理器的地址转换模式的值;以及一个第二控制单元,耦合到所述配置寄存器和所述第一控制单元,其中所述第二控制单元被配置以完成一个取决于存储在所述配置寄存器的所述值和进一步取决于来自所述第一控制单元的所述信号的功能。
2.如权利要求1所述的微处理器,其中所述第二控制单元是一个高速缓冲存储器控制单元。
3.如权利要求2所述的微处理器,其中所述高速缓冲存储器控制单元被配置以忽略与包括所述指令字段的指令有关的数据字节。
4.如权利要求3所述的微处理器还包含一个耦合到所述高速缓冲存储器控制单元的总线接口单元。
5.如权利要求4所述的微处理器,其中所述总线接口单元被配置以传送一个信号到表示所述忽略功能的一个外部高速缓冲存储器单元。
6.如权利要求2所述的微处理器,其中所述高速缓冲存储器控制单元被配置以根据包括一个与包含所述指令字段的指令有关的地址的高速缓冲存储器界执行一个高速缓冲存储器刷新操作。
7.如权利要求2所述的微处理器,其中所述高速缓冲存储器控制单元被配置以根据包括一个与包含所述指令字段的指令有关的地址的高速缓冲存储器界执行一个高速缓冲存储器清除操作。
8.如权利要求2所述的微处理器,其中所述高速缓冲存储器控制单元还被配置以请求与包含所述指令字段的指令有关的一个地址有关的数据字节,尽管所述指令是推测的。
9.如权利要求2所述的微处理器,其中所述高速缓冲存储器控制单元被配置以存储与包含在连续写入模式下所述指令字段的指令有关的数据字节。
10.如权利要求2所述的微处理器,其中所述高速缓冲存储器控制单元被配置以存储与包含在写回模式下所述指令字段的指令有关的数据字节。
11.如权利要求2所述的微处理器,其中所述高速缓冲存储器控制单元被配置,如果所述存储指令在所述相关的数据高速缓冲存储器中丢失,从主存储器传送与一个存储指令相关的数据字节到一个相关的数据高速缓冲存储器。
12.如权利要求2所述的微处理器,其中所述高速缓冲存储器控制单元被配置以分配用于与所述存储指令相关的数据字节在相关的数据高速缓冲存储器内的高速缓冲存储器界。
13.如权利要求1所述的微处理器,其中所述第二控制单元是一个数据预取单元。
14.如权利要求13所述的微处理器,其中所述数据预取单元被配置以预取与包含所述指令字段的指令相关的地址开始的连续的高速缓冲存储器界。
15.一个微处理器包括一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述微处理器的地址转换模式的值;以及一个第二控制单元,耦合到所述配置寄存器和所述多个段寄存器,其中所述第二控制单元被配置以完成一个取决于存储在所述配置寄存器的所述值和进一步取决于所述段值的功能。
16.如权利要求15所述的微处理器,其中所述第二控制单元是一个高速缓冲存储器控制单元。
17.如权利要求16所述的微处理器,其中所述高速缓冲存储器控制单元被配置以根据所述段值忽略与包含所述指令字段的指令相关的数据字节。
18.如权利要求17所述的微处理器还包含一个耦合到所述高速缓冲存储器控制单元的总线接口单元。
19.如权利要求18所述的微处理器,其中所述总线接口单元被配置以传送一个信号到表示所述忽略功能的一个外部高速缓冲存储器单元。
20.如权利要求16所述的微处理器,其中所述高速缓冲存储器控制单元被配置以根据所述段值根据包括一个与包含所述指令字段的指令有关的地址的高速缓冲存储器界执行一个高速缓冲存储器刷新操作。
21.如权利要求16所述的微处理器,其中所述高速缓冲存储器控制单元被配置以根据所述段值根据包括一个与包含所述指令字段的指令有关的地址的高速缓冲存储器界执行一个高速缓冲存储器清除操作。
22.如权利要求16所述的微处理器,其中所述高速缓冲存储器控制单元还被配置以请求与包含所述指令字段的指令有关的一个地址有关的数据字节,尽管所述指令是推测的。
23.如权利要求16所述的微处理器,其中所述高速缓冲存储器控制单元被配置以存储与包含在连续写入模式下所述指令字段的指令有关的数据字节。
24.如权利要求16所述的微处理器,其中所述高速缓冲存储器控制单元被配置以存储与包含在写回模式下所述指令字段的指令有关的数据字节。
25.如权利要求16所述的微处理器,其中所述高速缓冲存储器控制单元被配置,如果所述存储指令在所述相关的数据高速缓冲存储器中丢失,从主存储器传送与一个存储指令相关的数据字节到一个相关的数据高速缓冲存储器。
26.如权利要求16所述的微处理器,其中所述高速缓冲存储器控制单元被配置以分配用于与所述存储指令相关的数据字节在相关的数据高速缓冲存储器内的一个高速缓冲存储器界。
27.如权利要求15所述的微处理器,其中所述第二控制单元是一个数据预取单元。
28.如权利要求27所述的微处理器,其中所述数据预取单元被配置以根据所述段值预取与包含所述指令字段的指令相关的地址开始的连续的高速缓冲存储器界。
29.一个计算机系统包括一个主存储器;以及一个微处理器耦合到所述主存储器,其中所述微处理器包含一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述计算机系统的地址转换模式的值;以及一个第二控制单元,耦合到所述配置寄存器和所述第一控制单元,其中所述第二控制单元被配置以完成一个取决于存储在所述配置寄存器的所述值和进一步取决于来自所述第一控制单元的所述信号的功能。
30.如权利要求29所述的计算机系统还包括一个耦合在所述主存储器和所述微处理器之间的外部高速缓冲存储器单元。
31.一个计算机系统包括一个主存储器;以及一个微处理器,耦合到所述主存储器,其中所述微处理器包含一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述计算机系统的地址转换模式的值;以及一个第二控制单元,耦合到所述配置寄存器和所述多个段寄存器,其中所述第二控制单元被配置以完成一个取决于存储在所述配置寄存器的所述值和进一步取决于所述段值的功能。
32.如权利要求31所述的计算机系统还包括一个耦合在所述主存储器和所述微处理器之间的外部高速缓冲存储器单元。
33.一个微处理器包括一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述微处理器的地址转换模式的值;以及一个执行单元,用于执行指令,其中所述执行单元被配置以接收所述信号并根据所述信号修改所述指令的执行。
34.如权利要求33所述的微处理器,其中所述执行单元被配置以根据执行一个指令的结果修改一组状态标志。
35.如权利要求34所述的微处理器,其中所述执行单元被配置以当执行一个包含所述指令字段的指令时使状态标志的所述设置不变。
36.如权利要求34所述的微处理器,其中所述执行单元包括表示执行一个指令的结果的状态标志的多种设置。
37.如权利要求36所述的微处理器,其中所述执行单元被配置以根据执行包含所述指令字段的指令的结果选择状态标志的所述多种设置之一来修改,并且其中所述执行单元被配置以根据所述指令字段选择状态标志的所述多种设置中的所述一个。
38.一个微处理器包括一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述微处理器的地址转换模式的值;以及一个执行单元,用于执行指令,其中所述执行单元被配置以接收所述段值并根据所述段值修改所述指令的执行。
39.如权利要求38所述的微处理器,其中所述执行单元被配置以根据执行一个指令的结果修改一组状态标志。
40.如权利要求39所述的微处理器,其中所述执行单元被配置以根据所述段值当执行一个包含所述指令字段的指令时使状态标志的所述设置不变。
41.如权利要求39所述的微处理器,其中所述执行单元包括表示执行一个指令的结果的状态标志的多种设置。
42.如权利要求41所述的微处理器,其中所述执行单元被配置以根据执行包含所述指令字段的指令的结果选择状态标志的所述多种设置之一来修改,并且其中所述执行单元被配置以根据所述段值选择状态标志的所述多种设置中的所述一个。
43.一个计算机系统包括一个主存储器;以及一个微处理器,耦合到所述主存储器,其中所述微处理器包含一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述微处理器的地址转换模式的值;以及一个执行单元,用于执行指令,其中所述执行单元被配置以接收所述信号并根据所述信号修改所述指令的执行。
44.如权利要求4 3所述的计算机系统还包括一个耦合在所述主存储器和所述微处理器之间的外部高速缓冲存储器单元。
45.一个计算机系统包括一个主存储器;以及一个微处理器,耦合到所述主存储器,其中所述微处理器包含一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述微处理器的地址转换模式的值;以及一个执行单元,用于执行指令,其中所述执行单元被配置以接收所述段值并根据所述段值修改所述指令的执行。
46.如权利要求45所述的计算机系统还包括一个耦合在所述主存储器和所述微处理器之间的外部高速缓冲存储器单元。
47.一个微处理器包括一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述微处理器的地址转换模式的值;以及一个第二控制单元,配置成接收所述信号并根据所述信号修改指令的译码。
48.如权利要求47所述的微处理器,其中所述第二控制单元被配置以从多个寄存器存储单元之一选择一个与指令相关的寄存器值,并且其中所述第二控制单元根据所述指令字段选择所述多个寄存器存储单元的所述之一。
49.一个微处理器包括一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述微处理器的地址转换模式的值;以及一个第二控制单元,配置成接收所述段值并根据所述段值修改指令的译码。
50.如权利要求49所述的微处理器,其中所述第二控制单元被配置以从多个寄存器存储单元之一选择一个与指令相关的寄存器值,并且其中所述第二控制单元根据所述段值选择所述多个寄存器存储单元的所述之一。
51.一个计算机系统包括一个主存储器;以及一个微处理器,耦合到所述主存储器,其中所述微处理器包含一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述计算机系统的地址转换模式的值;以及一个第二控制单元,配置成接收所述信号并根据所述信号修改指令的译码。
52.如权利要求51所述的计算机系统还包括一个耦合在所述主存储器和所述微处理器之间的外部高速缓冲存储器单元。
53.一个计算机系统包括一个主存储器;以及一个微处理器,耦合到所述主存储器,其中所述微处理器包含一个地址转换单元,配置成从一个逻辑地址和一个段值产生一个物理地址;多个段寄存器,耦合到所述地址转换单元,其中至少所述多个段寄存器之一存储所述段值;一个第一控制单元,耦合到所述地址转换单元,其中所述第一控制单元被配置以检测一个表示所述多个段寄存器之一的指令字段并传送一个信号到表示所述多个段寄存器的所述之一的所述地址转换单元;一个配置寄存器,用于存储一个表示所述计算机系统的地址转换模式的值;以及一个第二控制单元,配置成接收所述段值并根据所述段值修改指令的译码。
54.如权利要求53所述的计算机系统还包括一个耦合在所述主存储器和所述微处理器之间的外部高速缓冲存储器单元。
55.根据一个表示多个段寄存器之一的指令字段操作一个控制单元的方法包括检测与一个特殊指令相关的所述指令字段的存在;传递一个表示所述多个段寄存器的所述之一的值到所述控制单元;根据所述值操作所述控制单元。
56.如权利要求55所述的方法还包括如果所述指令字段没有被检测则以缺省方式操作所述控制单元。
57.如权利要求55所述的方法还包括通过一个存储在控制寄存器的值使能所述控制单元。
58.根据一个表示多个段寄存器之一的指令字段操作控制单元的方法包括检测与一个特殊指令相关的所述指令字段的存在;传递一个存储在所述多个段寄存器的所述之一的值到所述控制单元;根据所述值操作所述控制单元。
59.如权利要求58所述的方法还包括如果所述指令字段没有被检测则以缺省方式操作所述控制单元。
60.如权利要求58所述的方法还包括通过一个存储在控制寄存器的值使能所述控制单元。
全文摘要
提供了一个微处理器,以透明和/或不透明的方式扩展了实现的结构的功能和/或性能。该微处理器被配置以检测被以平板存储器模式执行的指令代码序列中段代换前缀的存在,并且使用前缀值以控制内部和/或外部功能。另外,微处理器可以被配置以发信号通知下面的指令的正常执行的改变或修改。许多实施例示出了使用段代换前缀来扩展微处理器的性能或容量。当实现透明的实施例时与x86结构的较老装置的向后兼容性可以被保持。
文档编号G06F9/318GK1187255SQ96194492
公开日1998年7月8日 申请日期1996年6月7日 优先权日1996年6月7日
发明者德鲁·J·杜顿, 戴维·S·克里斯蒂 申请人:高级微型器件公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1