CN1423773A - 于处理器中建立的操作模式 - Google Patents

于处理器中建立的操作模式 Download PDF

Info

Publication number
CN1423773A
CN1423773A CN00818341A CN00818341A CN1423773A CN 1423773 A CN1423773 A CN 1423773A CN 00818341 A CN00818341 A CN 00818341A CN 00818341 A CN00818341 A CN 00818341A CN 1423773 A CN1423773 A CN 1423773A
Authority
CN
China
Prior art keywords
processor
operator scheme
indication
descriptor
address
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
CN00818341A
Other languages
English (en)
Other versions
CN100419671C (zh
Inventor
凯文·J·马克格瑞斯
麦克·T·克拉克
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN1423773A publication Critical patent/CN1423773A/zh
Application granted granted Critical
Publication of CN100419671C publication Critical patent/CN100419671C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种支持处理模式的处理器,在该模式中,地址长度是大于32位,而该操作数的长度可以是32或64位。该位地址长度可以额定为64位,但是在处理模式的多种不同实施例中,在该处理模示中,可以配置超过32位的地址长度,可多到且包含64位。处理模式的建立方式为:将在控制用寄存器中的致能指示置于致能状态,且将在分段描述符中将第一操作模式指示及第二操作模式指示设定在先前定义的状态中。可以使用该第一操作模式指示及第二操作模式指示的其它结合方式以对于可以与x86处理器架构兼容的32位及16位处理方式提供兼容的模式(而该致能指示仍在致能状态)。

Description

于处理器中建立的操作模式
技术领域
本发明涉及处理器领域,尤其涉及处理器中地址及操作数长度。
背景技术
x86架构(熟知为IA-32架构)在市场上已广泛地为大众所接受,而且是一项相当成功的产品。因此,使用x86架构设计处理器具有相当多的优点。此类型的处理器的优点为可以将容量大的软件写入x86架构中(考量此处理器可以执行该软件,且因此使用该处理器的计算机系统在市场上接受度颇高,是因为具有大量可使用的软件之故)。
随着计算机系统持续发展,愈需要使用64位的地址长度(有时后指操作数长度operand size)。较大的地址长度允许程序具有较大的内存足印(footprint,为程序中的指令所占据的内存容量及由程序所操作的数据量),以在内存空间内操作。较大的操作数长度允许在较大的操作数上操作,或者是在操作数进行更精准的操作。更有效的应用及/或操作系统可以使用64位地址及/或操作数长度。
不完全令人满意的是x86架构限制在最大为32位的操作数长度,及32位的地址长度之内。操作数长度指由处理器操作的位数目(例如在来源或标的操作数中位的数目)。该地址长度指由处理器产生的地址中位的数目。因此,使用x86架构的处理器不符合需要64位地址或操作数长度的应用上的需要。
发明内容
上面所概述的问题可由以下所说明的处理器解决。支持第一处理模式的处理器,在该模式中,地址长度是大于32位,而该操作数的长度可以是32或64位。该位地址长度可以额定为64位,但是在处理模式的多种不同实施例中,在该处理模示中,可以配置超过32位的地址长度,可多到且包含64位。第一处理模式的建立方式为:将在控制用寄存器中的致能指示(enable indication)置于致能状态,且将在分段描述符(segment descriptor)中的第一操作模式指示及一第二操作模式指示设定在预先定义的状态中。可以使用该第一操作模式指示及第二操作模式指示的其它结合方式以对于可以与x86处理器架构兼容的32位及16位处理方式提供兼容的模式(而该致能指示仍在致能状态)。最好,可以提供64位的处理,且提供与x86兼容的架构,因此支持现有的码以写入x86处理器架构中。
而且,经由对于64位或16位处理提供兼容模式,而对于第一处理模式的致能指示仍在控制寄存器的致能状态中,可以简化软件的兼容性。例如具有第一处理模式的优点的编码的操作系统仍可开展出写入32位或16位模式的应用。该处理器可以在第一处理模式下操作,而执行操作系统码。在执行应用码时,处理器可以在32或16位模式下操作(如由在对应的分段描述符中的第一及第二操作模式中所指向者)。但是,当执行一操作模式的调用(call),或者是当一异常或中断导致执行操作模式码时,该致能指示可以指示该处理器该操作系统码在第一操作模式中,而因此允许第一处理模式在该开关处建立起来(基于对应该操作系统的分段描述符中的第一及第二操作模式指示)。
另外,如果有控制寄存器中的致能指示在不致能状态时,可以支持16及32位x86操作模式。如果致能指示不致能,则第一操作模式指示不定义,且如果该处理器的操作模式为16或32位,则该第二操作模式指示可以加以决定。可以使用某些模式,例如,如果处理器支持一分段描述符,而该分段描述符在不同的型式将定义第一操作模式指示项时,可以使用上述的模式。
广言之,考虑一种处理器。该处理器包含一分段寄存器及一控制寄存器。配置该分段寄存器的配置以储存辨识该分段描述符的分段选择器,该分段描述符说明第一操作模式指示项及一第二操作模式指示项。配置该控制寄存器的配置以储存一致能指示。为了响应该致能指示,该第一处理模式,及该第二处理模式,配置该处理器的操作模式指示项以建立一操作模式。
另外,考虑一处理器,包含一分段寄存器及一控制寄存器,配置该寄存器的配置以储存一致能指示。配置该分段寄存器的配置以储存一分段选择器,及来自分段描述符的信息,该分段选择器包含一进入一分段描述符表的索引,其中该分段描述符表储存在与该处理器耦合的内存中,且分段描述符储存在由该索引指示的登录项中的分段描述符表中。该处理器是作成以从该分段描述符表中读取该分段描述符,作为该分段选择器的响应,且该分段描述符包含一操作模式指示项。该处理器是配置成以在一操作模式下操作,其中在该操作模式下,虚拟地址大于32位以响应在致能状态下的致能指示,及在第一状态下的操作模式指示项。
而且,本发明提出一方法,其中在一处理器中建立一操作模式,以响应在处理器内的控制寄存器中的致能指示,在分段描述符中的第一操作模式指示项,及在分段描述符中的第二操作模式指示项。取出操作数,且产生地址,以响应该操作模式。
附图说明
阅读下文中的说明及参考附图即可更进一步了解本发明的特征及优点。
图1为处理的一实施例的方块图。
图2为用于32/64模式的分段描述符一实施例的方块图。
图3为用于兼容模式的分段描述符的一实施例的方块图。
图4为依据图1所示的处理器的一实施例的兼容模式及遗留模式的作业的方块图。
图5为显示操作模式的一实施例的表,为分段描述符及控制用寄存器数值的函数。
图6为显示使用指令首段以越位内设操作模式的一实施例的表。
图7为一寄存器的一实施例的方块图。
图8表示一全域描述符表及一本地描述符表的实施例。
图9为一32/64调用选通描述符(call gate descriptor)的一实施例的方块图。
图10为一指令格式的方块图。
图11为包含图1的处理器的计算机系统的实施例的方块图。
图12为包含图1的处理器的计算机系统的另一实施例的方块图。
本发明可作多种修改及变更的型式,附图仅显示特定的实施例作为范例,而且此将于下文中加以说明。须了解,所附的图标及其说明并非用于限制本发明于这些特定的型式,相反地,本发明涵盖由权利要求所定义的本发明的精神及观点中所有的修改,变更及对等的实例。
具体实施方式
兹参照图1,其中显示处理器10的一实施例的方块图。本发明也适用于其它的实施例,或以其它的实施例完成本发明。在图1的实施例中,处理器10包含指令快取缓冲存储器12,执行核心14,数据快取缓冲存储器16,外部接口单元18,内存管理单元(MMU)20,寄存器文件22。在所示的实施例中,MMU20包含一组分段寄存器24,第一控制寄存器26,第二控制寄存器28,本地描述符表列寄存器(LDTR)30,全域描述符表列寄存器(GDTR)32。该指令快取缓冲存储器12耦合该外部接口单元18,执行核心14,MMU20。执行核心14更进一步耦合该MMU20,寄存器文件22,及数据快取缓冲存储器16,数据快取缓冲存储器16更进一步耦合该MMU20及外部接口单元18。外部接口单元18更进一步耦合MMU20及外部接口。
一般说来,处理器10使用一与x86架构兼容的处理器架构,且包含其它额外的架构特征以支持64位的处理。配置处理器10以建立一操作模式,可响应储存在码分段描述符中储存的信息,而该分段描述符是对应现在的执行码,且可以更进一步响应储存在一个或多个控制寄存器中的致动指示。在本文中,“操作模式”一词指用于多种不同的可程序可选择的处理器属性所指定的预设数值(default value)。例如,操作模式指定一预设的操作数长度(default operand size),及一预设的地址长度(default address size)。该预设的操作数长度特定一指令的操作数中的位数,除非是一指令的编码已超过该预设数值,否则该预设的地址长度指定在一指令的内存操作数的一地址中。该预设的地址长度至少指定内存操作数中的虚拟地址(virtual address)的长度,且也可以用于指定实际地址(physical address)的长度。另外,实际地址的长度也可以与预设地址的长度不相关,且也可以与此将于下文中加以说明的LEM位有关(即如果LEM位已清除,而如果设定LEM位的话,则一配置的相关长度大于32位而小于64位),或者是与另一控制位相关(即实际的地址延伸位,或在另一控制寄存器中的PAE位)。在本文中“虚拟地址”指在经一地址转译机构(如一调用机构)转译成“实际地址”前所产生的一地址,其为实际上用于近接(access)一内存的地址。另外,在本文中,一“分段描述符(segment descriptor)”为一由软件产生且由处理器使用以辨识内存的一分段的近接控制及状态的数据结构。一“分段描述符表(segment descriptor table)”表示在内存中的一个表,包含多个登录项,各登录项可储存一分段描述符。
在所示的实施例中,MMU20产生一操作模式,且传送该操作模式予一执行核心14。执行核心14使用操作模式执行该指令。尤其是,执行核心14从寄存器文件22或内存中取出具有该内设操作数长度的操作数(如果该内存操作数为可快速存取缓冲者,则经由该数据快取缓冲存储器16,或者是如果该内存操作数非快速存取缓冲者,或漏失数据快取缓冲存储器16,则经由该外部接口单元18),除非一特定的指令编码越位(override)该预设的地址长度,在此例子中,使用越位的地址长度。同样地,执行核心14产生内存操作数的地址,其中该地址具有预设的操作数长度,除非是一预设的指令编码越位该预设的操作数长度,在此一例子中使用越位的地址长度。在其它的实施例中,用于产生该操作模式的信息可以在处理器10的某些部位中局部加上阴影,其中该处理器使用该操作模式(如执行核心14),且可以从该局部阴影的拷贝中决定该操作模式。
如上所述,MMU20产生该操作模式,以响应一个对应将执行的码的分段描述符,而且更进一步响应在控制寄存器中的一或多个数值。来自码分段描述符中的信息储存在分段寄存器24中的一寄存器(此寄存器称为CS,或码分段code segment)。另外,控制寄存器26储存一用于致能一操作模式的致能指示(LME enable indication),其中该预设地址长度大于32位(“32/64模式”),且大于在32位及16位操作模式中某些兼容的模式。该预设的操作数长度在32/64模式中可以是32位者,但是如果需要的话,该数个指令可以越位具有一64位操作数长度的预设32位操作数长度。如果LME指示在一致能状态的话,则除了32位及16位的模式外,可以使用该32/64模式。如果LME指示在一不致能模式,则不致能该32/64模式。在一实施例中,在32/64模式,可以配置预设的地址长度,但是可以有任何的数值多达或包含64位。而且,在一给定的配置中,虚拟地址的长度可以与在该配置中实际地址的长度不同。
须了解文中说明的致能指示可以是致能状态的位,而该状态在该位的致能状态,且为具有不致能状态的位,而该状态在该位的清除状态。但是,也有可能是其它的编码状态,包含使用多位方式的编码,及一编码方式,其中致能状态为清除状态,而不致能状态为设定状态。因此,此说明的其余部位可以将在控制寄存器26中的LME指示以做为LME位,而其中已设定致能状态,且清除不致能状态。但是,如上所述,也可以是LME指示的其它编码状态。
分段寄存器24储存来自分段描述符的信息,而该分段描述符现在正为将被处理器10所执行的码所使用。如上所述,CS为分段寄存器24中的一项,且指定内存的码分段。该码分段储存将执行的码。更进一步的分段寄存器可以定义出多种不同的数据分段(即,由SS分段寄存器所定义的堆栈数据分段,且最多可以由DS,ES,FS及GS分段寄存器定义出4个数据分段)。图1表示一个基本上分段寄存器24A的内容,其中包含一选择字段24AA及一描述符字段24AB。选择字段24AA负载一分段选择器,以动作一特定的分段,作为为执行核心14所执行的某些分段负载指令的响应。该分段选择器辨识在内存的分段描述符表中的分段描述符。尤其是,处理器10可以使用两个分段描述符表:一个本地描述符表及一个全域描述符表。本地描述符表的基础地址是型式在LDTR 30中。同样地,全域描述符表是储存在GDTR 32中。在分段选择器内的一位(表指示位)选择描述符表,且分段描述符的其余部份作为进入选择的表的指示。当一指令负载一分段选择器进入分段寄存器24中的一项时,MMU20从选择的分段描述符表中读取说明的分段描述符,且将来自分段描述符的储存信息储存在分段描述符字段中(即用于分段寄存器24A的分段描述符字段24AB)。储存在分段描述符字段中的信息可以包含分段描述符中任何适当的子集(subset),如果需要的话包含所有的分段描述符。另外,如果需要的话从分段描述符或者是其它来源中得到的其它信息可以储存在分段描述符字段中。例如,一实施例中可以将来自码分段描述符的操作模式指示译码,且储存译码的数值,而非该操作模式指示中原先的数值。如果一指令导致CS加载一指令选择器的话,则可以改变码分段,且因此改变处理器10的操作模式。此将于下文中加以说明分段描述符表。
在一实施例中,在32/64模式中只有使用CS分段寄存器。该数据分段寄存器则予以忽略。在16及32位模式中,可以动作码分段及数据分段。而且,在控制寄存器28中的第二致能指示(PE)影响该MMU20的操作。该PE致能指示可以用于致能保护模式,其中可以使用分段及/或调用地址转译。如果PE致能指示为不致能状态,则非分段及调用机构,且处理10在一“实际模式”中(在状态模式中,由执行核心14产生的地址为实际地址)。与LME指示类似的处为,PE指示中可以为一位,其中该致能状态为将设定的位,而不致能状态为该被清除的位。但是,如上所述本发明中考量使用其它的实施例。
须了解MMU20可以使用其它的硬件机构,如上所述者。例如,MMU20包含调用硬件,以从虚拟地址向实际地址配置调用地址转译功能。该调用硬件可以包含一转译旁视缓冲器(translation lookasidebuffer(TLB))以储存调用的转译。
须了解控制寄存器26及28可以配置如一结构控制寄存器(即控制寄存器26可以是CR4,且控制寄存器28可以是CR0)。另外,控制寄存器中的一或两者可以配置如一模式特定的寄存器,以允许使用其它的架构控制寄存器,而不会干扰到32/64模式。
一般,指令快取缓冲存储器12可以是用于储存指令字节的快取缓冲存储器。执行核心14定义来自执行用的指令快取缓冲存储器12的指令。指令快取缓冲存储器12可以使用任何适当的快取缓冲存储器配置。如果在一指令快取缓冲存储器12中漏失了得到的一项指令,则指令快取缓冲存储器12可以与外部接口单元18进行通讯,而将漏失的快取缓冲存储器线填入指令快取缓冲存储器12中。另外,指令快取缓冲存储器12可以与MMU20通讯,以接收用于从指令快取缓冲存储器12中取得的虚拟地址的实际地址模式。
执行核心14执行配置指令快取缓冲存储器12中的取得的指令。执行核心14取得来自寄存器文件22中的寄存器操作数,且更新在寄存器文件22中的标的寄存器。由操作模式及对于一特定的指令中操作模式中任何的越位控制该寄存器操作数的长度。同样地,执行核心14从数据快取缓冲存储器16中得到内存操作数,且更新在数据快取缓冲存储器16中的标的内存位置,以进行内存操作数的快取缓冲存储器作业,且储存在数据快取缓冲存储器16中。内存操作数的长度同样地由操作模式及对于一特定分段的操作模式的任何越位所控制。而且,由执行核心14产生的内存操作数的地址由该操作模式及对于一特定指令的操作模式中的任何越位所控制。
执行核心14可以使用适当的指令。例如,执行核心14可以是管线核心,一超尺寸核心,或其结合。执行核心14可以依据设计上的选择使用不规则随机执行方式,或者是依据设计上的选择进行规则的执行方式。
如同如处理器10及对于一特定指令的任何的越位所指示的64位,32位,16位,8位寄存器的方式近接该包含64位寄存器的寄存器文件22。此将于下文中加以说明用于一实施例的寄存器的格式,兹参照图7。在寄存器文件22中包含的寄存器可以包含如LEAX,LEBX,LECX,LEDX,LEDI,LESI,LESP,及LEBP寄存器。寄存器文件22可以基本上包含LEIP寄存器。另外,执行核心14可以使用寄存器再编名型式,其中在寄存器文件22中任何的寄存器可以对映到一架构的寄存器中。在寄存器文件22中寄存器的数目的配置与此一实施例有关。
数据快取缓冲存储器16为一以用于储存数据的快取缓冲存储器。数据快取缓冲存储器16可以使用任何适当的架构,其中包含直接对映(direct-mapped),设定相关,及完全的相关配置。如果在数据快取缓冲存储器16中没有得到一数据或没有更新该数据,则数据快取缓冲存储器16与外部接口单元18通讯,以将漏失的快取缓冲存储器线写入数据快取缓冲存储器16中。另外,如果数据快取缓冲存储器16使用一可回写快取缓冲存储器作业方式,可以在数据快取缓冲存储器16中读取的更新的快取缓冲存储器线路可以与外部接口单元18通讯以回写入内存中。数据快取缓冲存储器16可以与MMU20通讯,以接收虚拟地址的模式,因此将该虚拟地址写入该数据快取缓冲存储器16。
外部接口单元18与在处理器10允许的系统通讯。如上所述,外部接口单元18可以与用于指令快取缓冲存储器12及数据快取缓冲存储器16的快取缓冲存储器线路通讯,而且也可以与MMU20通讯。例如,外部接口单元18可以近接分段描述符表,及/或依据MMU20的行动准则近接该调用表。
须了解如果需要的话,处理器10包含一整合位准2(L2)的快取缓冲存储器。而且,可以配置外部接口单元18的配置,使得除了与该系统通讯外,尚可以与一旁侧的快取缓冲存储器通讯。
兹参照图2,其中显示对于32/64模式的码分段描述符40的一实施例的方块图。当然,在本发明中仍依据应用或考量其它的实施例以达成此实施例的目的。在图2所示的实施例中,码分段描述符40包含8个字节,其中最大有效位为4个字节。4个最大有效位储存的数值地址与最小有效位的数值地址大。4个字节中各群的最大有效位在图2中以位31显示(以下的图3中也一样),且最小有效位在该图中以位0显示。在4个字节内的短垂直线限制各位,且长垂直线限制一位,但是也限制一字段(在图2及图3中均同)。
与以下图3说明的32位及16位码分段描述符不同,该码分段描述符40不包含一基础地址或限制。处理器10使用一用于32/64模式的平坦虚拟地址(而非使用在32位及16位模式中的分段线性地址近接)。因此,在分段描述符40中反转码分段描述符40中的部份,否则这些将储存在基础地址中且限制在其内。须注意,由分段所提供的虚拟地址在文中也称为“线性地址”。而文中的“虚拟地址”包含任何的地址,其经由一转译地址转译为实际上用于寻址内存的实际上地址,其中包含在非分段架构中产生的线性地址及其它的虚拟地址。
分段描述符40包含一D位42及一L位44(可以为用于32/64模式码分段中的一项),一可使用位(AVL)46,一呈现(P)位48,一描述符优先准位(DPL)50,一型式字段52。使用一D位42及L位44以决定执行核心14的操作模式,如下文的图5中所示者。使用P位48以指示在内存中存在该分段否。如果位设定P位48,则呈现该分段,且可以从该分段中取出数据码。如果清除P位48,则不呈现该分段,且产生一异常指示,以将该分段加载内存中(例如,从磁盘储存器,或经一网络连结)。一DPL指示该分段的优先准位。处理器10使用4个优先准位(在DPL字段中编码如0到3,而位准0为最大优先准位)。在更大的优先准位下,某些分段及处理器来源(如配置及控制寄存器)为唯一可执行或可近接者,且试着在由一异常所导致的较低优先准位下,执行这些指令或近接这些来源。当来自码分段描述符40的信息加载CS分段寄存器时,该DPL成为处理器10的现在优先准位(CPL)型式字段52编码分段的型式。对于码分段,型式字段52的最大有效位中的两位可被设定(最大有效位从一系统分段中辨识出其为一码或一数据分段,且第二最大有效位从一数据分段中辨识出其是否为一码分段),且其余的位可以编码其它的分段型式信息(如唯执行,执行且可以读取,或执行且只有读取,一致,及是否可以近接该码分段)。
须注意,虽然在码分段描述符中的数个指示项以位的方式加以说明,而其中设定及清除数值已定义其意义,但是在其它的实施例中也可以使用反向编码,且如果需要的话,可以使用数个。因此,例如,D位42及L位44依据是一操作模式指示中的例子,如果需要的话,其可以是一个或多个位,此类似于上述的致能指示的说明。
兹参照图3,其中显示用于32及16位兼容模式的码分段描述符54的一实施例的方块图。也可以使用及考量其它的实施例。如同图2所示的实施例,码分段描述符54包含8个字节,其中包含4个最大有效位,此最大有效位位在4个最小有效位之前。
码分段描述符54包含类似上述码分段描述符40的说明中的D位42,L位44,AVL位46,P位48,DPL 50及型式字段52。另外,码分段描述符54包含一个基础地址字段(参考数字为56A,56B,及56C),一个限制字段(参考数字为57A,及57B),及一个G位58。基础地址字段包含一基础地址,此地址加入逻辑取得地址(储存在LEIP寄存器中)以形成架构的线性地址,然后此线性地址可以经由调用模式机构模式成为实际的地址。该限制字段储存一个分段限制,此定义该分段的长度。不允许在大于分段数目的一逻辑地址处近接一字节,因此,此动作导致发生异常状态。G位58决定分段限制字段的尺寸。如果G位58设定该限制的长度为4字节页(例如将12个最小有效的0加到限制字段的限制中)。如果清除G位58,则使用该项限制。
当没有经由在控制寄存器26中的LME位致能32/64模式时,则用于32及16位模式中的码分段描述符与码分段描述符54类似,只是反转该L位,且定义该位为0。须更进一步了解在依据此实施例的32及16位模式中(两者均具有LME位设定的兼容模式,及LME位清除的模式),也可以使用数据分段。数据分段描述符可以类似码分段描述符54,唯定义D位42以指示该分段的上界或定义该预设的堆栈尺寸(用于堆栈分段)。
兹参照图4,其中显示在控制寄存器26及兼容模式中LME位的代表性例子中允许在配置32/64模式及32及16位模式中具有高度的伸缩性。方块60指示当设定LME位中的基本上作业方式,方块62指示当清除LME位时,基本上作业方式。
如方块60所示,当设定LME位中的基本上作业方式,则支持的兼容模式允许一个64位的操作系统(即显示一种操作系统,该操作系统是设计成利用超过32位及/或64位的数据操作数的虚拟及实际地址空间)。用于操作系统的码分段可以由图2所示的32/64模式码分段描述符40所定义,且因此可以设定L位。因此,对于由该操作系统及该操作系统维持的数据结构而言,该操作系统可以善用扩充的虚拟地址空间及实际地址空间的优点(其中包含如分段描述符表及调用转译表)。该操作系统也使用在32/64模式中定义的64位的数据型式,该32/64模式是使用经由越位预设32位操作数长度的指令编码。而且,经由在分段描述符表中的一或多个32位兼容模式分段描述符(L位清除,D位设定,即图2所示的分段描述符),且分支于兼容模式分段之一,该操作系统可以开始一个32位的应用程序。同样地,经由在分段描述符表中建立一个或多个16位兼容模式分段描述符(清除L位,清除D位,即,图2中所示的分段描述符54),该操作系统可以开始一16位的应用程序。因此,一个64位的操作系统可以维持其能力以在兼容模式中执行现存的32位及16位应用程序。因此,一个64位的操作系统可以维持在兼容模式中执行现存的32位及16位应用程序的能力。如果该程序需要扩大能力的话,可以采用32/64模式的特定应用程序,或者是可以维持32位或16位。
当处理器10正执行32位应用程序时,该处理器10的操作模式为32位。因此,一般该应用程序与以32位模式及LME位清除的状态下执行相同的方式执行(即当时操作系统如同一32位的操作系统)。但是,应用程序可以调用一操作系统服务,历经一异常状态,或终止操作。在每一个例子中,处理器10可以回到执行该操作系统码的步骤(如图4的箭头64中所示者)。因为操作系统码在32/64模式下操作,操作系统服务常规,异常处理器等的地址超过32位。因此,在回到操作系统码之前,该处理器10必需产生一个大于32位的地址。LME位提供处理器10一项指示,其中说明操作系统在32/64模式下操作,甚至现在的操作模式为32位,且因此处理器10可以提供较大的地址空间以操作系统调用及异常状态。
在一个实施例中,使用储存在分段描述符表中的中断分段描述符以处理该异常状态。如果设定LME位的话,则全域分段描述符可以是16字节的登录项,其中包含处理该异常状态的操作系统常规的64位地址。如果清除LME位,则全域分段描述符可以为8字节的登录项,其中包含一个32位的地址。因此,处理器10近接全域描述符表,以响应该LME指示(即如果设定LME位则读取16字节的登录项,且如果清除LME位,则读取8字节的登录项)。因此,可以由64位的操作系统处理该异常状态,甚至该应用程序正在32位的兼容模式下执行时。而且,如果清除该LME位时,处理器10支持32位(或16位)的操作系统。
同样地,在处理器10内的调用机构可以基于LME位的状态,在不同的操作方式下操作。因为操作系统基本上在比应用程序还要高的优先准位下执行,所以小心地控制从应用程序向操作系统的转换,以确定应用程序只可以执行允许的操作系统常规。尤其是,必需小心的控制优先准位的改变。在一个实施例中,处理器10可以至少支持两个机构以执行操作系统调用。有一种方法可以经由在分段描述符表中的调用选通(gate)(此将于下文中加以说明)。另一种方法可以由处理器10支持的SYSCALL指令,其中使用一模式特定的寄存器作为操作系统常规的地址来源。更新模式特定的寄存器为具有优先作业的权力,且因此只有在较高优先准位下执行的码(即操作系统码)可以由该SYSCALL指令使用的模式特定寄存器中建立该地址。对于SYSCALL方法,可以定义出第二模式特定的寄存器以储存操作系统常规的地址中最大有效位中的32位。因此,如果设定LME位的话,可以从储存在最小有效位的32位内的模式特定的寄存器中读取该地址。另外,由SYSCALL指令使用的模式特定寄存器指令可以扩充为64位,且该地址可以为基于LME位的状态下的32位(模式特定寄存器的最小有效位的32位)或64位。
如上所述,具有LME位设定可以允许处理器10在一系统中操作,其中在该系统中,操作系统为64位,且一个或多个应用程序不为64位者(前如图所示的32位或16位,其操作方式与上述说明的方式类似)。另外,如方块62中所示者,具有LME位清除的地址允许处理器10在与x86架构兼容的32位或16位模式下操作。如上所述,指定用于处理异常及操作系统调用的机构以处理将设定或清除的LME位,且因此可以未修改下操作该32位及16位模式,甚至处理器10可以在32/64模式下操作。而且,经由当清除LME位时,提供该x86兼容的32及16位模式(且不晓得L位,其在这些模式下反转),处理器10可以在一系统下操作,其中对于某些非32/64模式的其它原因定义该L位,而且如果设定LME位时,仍可以支持32/64模式。因此,使用一32位操作系统及32或16位应用程序的系统可以使用该处理器10。然后,该系统可以升级到一64位的操作系统,而不必改变处理器10。
图4中没有显示的是一个与LME位设定共同操作的64位的操作系统及一个64位的应用程序。用于上述用于64位操作系统及32位应用程序的操作系统常规的机构可以等效地应用到64位的应用程序。另外,上述机构也支持用于支持64位补偿的调用选通(此将于下文中加以说明)。
兹参照图5,如图所示的表70说明依据处理器10的一实施例的LME位,在码分段描述符(descriptor)中的L位,在码分段描述符及处理器10的对应操作模式中的D位的状态。也可以使用或来源其它的实施例。如表70中所示者,如果清除LME位的话,则反转L位(即定义为0)。但是,如果清除LME位的话,则处理器10可以处理L位如一不注意事项。因此,x86兼容的16位及32位模式如果清除LME位的话,则可以由处理器10提供。如果设定LME位,且清除在码分段中的L位,则由处理器10相关一兼容的操作模式,且D位选择16位或32位的模式。如果设定LME位及该位LME位,且清除D位,则对于该处理器10选择32/64模式。最后,如果LME,L及D位均设定时所选择的模式可反转。
如上所述,及以下依图6的说明,32/64操作模式均在超过32位(配置上与64位无关,但是可以上达64位)的预设地址长度,及32位的预设操作数长度。该32位的程序操作数长度可以经由一特定的指令编码,越位到64位。选择32位的预设操作数长度以使得对于某些程序的平均指令长度达到最小(考量越位64位,包含在增加指令长度时,指令编码中的指令首段),其中有这些程序中,对于为该程序执行的多项数据操作中,32位即是敷使用。对于此程序(其可以为现在的程序的实际数目),移动到一64位的操作数长度实际上可以减少由该程序所达到的执行性能(即增加执行的时间)。某一部份上,此项减少的作业有助于使得当储存64位的数值时,由该程序使用的数据结构的内存中的长度两倍。如果32位即足敷使用时,则这些数据结构将储存32位的数值。所以,如果将64位的数值使用在32位的数值即足够使用的环境中,则当近接数据结构时,增加近接的字节的数目,且增加的内存频宽(以及由各数值所占用的增加的快取缓冲存储器空间)可以导致增加执行时间。因此,选择32位作为预设的操作数长度,且该预设数值可以经由一特定的指令的编码,而越位。
兹参照图6,其中表72示使用指令首段的实施例,以越位一特定指令的操作模式。也可以使用及考量其它的实施例。执行核心14及依据表72对于一特定的指令决定地址长度及操作系统的长度。尤其是对于图6所示的实施例,可以使用指令首段字节(地址长度越位首段字节)以越位该预设的地址长度,而且,使用其它的指令首段字节(该操作数长度越位该首段字节)以越位该预设的操作数长度。将越位首段字节的地址长度编码为67(16进制),且编码越位首段字节的操作数长度为66(16进制)。则特定指令中的越位首段的数目形成该表的列。而该表中的行指示特定指令的操作数长度及地址长度,是基于在对应列中的操作模式及越位首段的数目。越位首段的数目指对应型式的越位首段的数目(即地址长度列为基于越位首段地址长度的数目,而操作数长度列为越位首段的操作数长度的数目)。
在越位首段的数目中标示为“0”的列表示用于各操作模式下预设操作数的长度及地址长度。须了解32位及16位模式的行与兼容模式(LME设定)及标准模式(LME清除)有关。而且,当预设的地址长度为在32/64模式中的64位时,该地址位的实际数目可以如上所述独立配置。
在32/64模式位的模式中的地址长度越位首段中内涵内将地址长度从64位(对于一给定的配置小于64位,但是大于32位)改变为32位,如表72中所示者。另外,在32/64模式下的操作数长度越位首段的内涵将该操作数长度从32位改变为64位。达到必需提供16位的操作数(如支持在“C”程序语言中的短整数的数据型式)。因此,在32/64模式中的双操作数长度越位首段中的两项选择16位的操作数长度。多于两个的操作数长度越位首段的内容导致与双操作数长度越位首段的内容相同的操作数长度。同样地,一个的地址长度越位首段的内容导致与一地址长度越位首段的内容相同的地址长度。
对于32位的模式,越位首段的内容使得预设的32位长度成为16位长度,且多于一个的越位首段的内容具有与一越位首段的内容相同的效应。同样地,对于16位的模式,单一越位首段的内容导致预设的16位长度成为32位,且多于一个的越位首段的内容与一越位首段的内容具有相同的效应。
兹参照图7,其中显示LEAX寄存器74的一实施例。在寄存器文件22中的其它寄存器类似此寄存器。可以使用或考量其它的实施例。在图7所示的实施例中,寄存器74包含64位,而最大有效位标示为位63,而最小有效位标示为0。图7标基于一指令的操作数长度近接的LEAX寄存器的某些部位(如果选择A寄存器作为操作数的话)。尤其是,如果操作数长度为64位,则近接寄存器74的全部事项(如图7的粗体标示“LEAX”中所示者)。如果操作数长度为32位,则近接寄存器74的位31:0(图7的粗标示“AX”中所示者)。如果操作数长度为16位,则近接寄存器的位16:0(如图7的粗体标示“AX”中所示者)。可以基于操作模式及任何越位首段的内容,选择上述的操作数长度。但是,定义特定指令的OP码,其可近接一8位的寄存器(在图7中为AH或AL)。
兹参照图8,其中的方块图显示全域描述符(descriptor)表80及一本地扩充器表82的一实施例。可能考量其它的实施例。如图8及上述的说明者,由GDTR提供全域分段描述符表80的基础地址,而由LDTR30提供本地描述符表82的基础地址。因此,为了支持在虚拟地址空间内随意放置全域扩充器表80及本地描述符表82。如果清除LME位,GDTR32及LDTR32可以第二64位的基础地址。如果清除LME位,则基础地址的最大有效位的32位可以用于位在该描述符表。
配置全域描述符表80及本地描述符表82的配置以储存多种不同型式的分段描述符(descriptor)。例如,图8中显示32/64模式码分段描述符84,86,90及兼容模式描述符92,94。各描述符84-94全域在对应描述符表中的一登录项,其中一登录项可以储存一分段描述符(对于图2,图3说明的实施例为8字节)。在全域描述符表80的描述符中的另一型式为本地描述符表描述符96,其对于本地描述符表82定义一系统指令,且在提供LDTR30中的基础地址。LDTR30使用LLDT指令予以初始化,其中该指令有分段选择器作为一操作数,而该分段选择器是定位在全域描述符表80中的描述符96中。如果需要的话,全域描述符表80可以储存不同本地描述符表的多个LDT描述符。因为如果设定LME位LDT描述符96可以储存64位的补偿值,所以LDT描述符96可以中断全域描述符表80中的单一登录项。同样地,各项工作在描述符表80及82的一项的可以具有一工作状态(TSS)描述符,以储存与该工作相关的某些信息。因此,TSS描述符可以占据两个登录项以允许在该64位地址空间的任何处所中储存该TSS信息。
该本地及全域描述符表可以用于储存调用选通描述符。例如,图8中显示调用选通描述符100,102及104。调用选通描述符支持64位的补偿,而且因此可以占据对应描述符表中的两个登录项。以下图9中说明基本上的32/64调用选通描述符。
经由维持分段描述符表80,82为8个字节,且对于包含64位补偿的描述符使用两个登录项,用于16及32位模式的描述符可以储存在相同的表中,作为包含64位补偿的描述符。因此,在兼容模式下的应用可以在如同64位操作系统中一般在相同的分段描述符表中具有适当的描述符。
一般,使用调用选通以管理具有低优先准位的码分段及具有高优先准位的码分段之间的转译(即一应用过程调用一操作系统常规)。低优先准位的码包含一调用及其它的分支指令,其指定一分段描述符作为标的(且指定补偿于该分段中,其中在该例子中不了解此状态)。该分段描述符辨识在描述符表内的调用选通描述符,且包含需要执行较对优先准位码时所需要的最小优先准位。当处理器10执行调用或其它的分支指令时,指令将该描述符表指向分段选择器,且定位该调用选通。如果处理器10中现在的优先准位及要求的优先准位(其为分段选择器的某些部位,且可以用于优先准位核对目的的用的低优先准位)均反映具有够格的优先准位时(即在数值上,该优先准位小于或等于在调用选通描述符中的最小优先准位时),则可以处理该调用。调用选通描述符包含标的分段(具有较大的优先准位的码分段)的分段选择器,且包含在标的分段内的补偿,其中此分段是为开始进行码取得作业的分段。处理器10取出该分段选择器及来自该调用选通描述符的补偿值,且读取该标的分段描述符,以开始取得具有一较高优先准位的码。另外,如果在现在的优先准位或要求的优先准位中存在任何一项其优先准位小于在调用选通描述符中的最小优先准位时(即现在或要求优先准位中任何一项其数值大于该最小优先准位时),则在近接该调用选通描述符,且不近接该标的描述符时,处理器10发出一异常信号。因此,可以小心地控制在高优先准位下近接该码的作业。
如上所述,调用选通描述符包含一标的分段选择器,及在该分段内的补偿。图8中显示对于标的分段描述符的参考,其为从一调用选通描述符到另一描述符的箭头。例如,调用选通描述符100参考模式描述符90;调用选通描述符102参考32/64模式描述符86,且调用选通描述符104参考32/64模式描述符84。如图8中所示者,调用选通描述符可以储存在描述符表中,或可以在其它的表或相同的表中参考一描述符。而且,一调用选通描述符可以为一个32/64模式描述符或一兼容模式描述符。
一般,当处理器10使用分段选择器从描述符表中的一项读取一描述符时,读取一描述符表。但是,如果设定LME位,且处理器10侦测到该登录项为调用选通描述符LDT描述符,或TSS描述符时,处理器10在该表中读取下一登录项,以得到描述符中其余部份。因此,在该具有不同长度的兼容模式描述符(或标准模式描述符)中可以同时存在调用选通描述符,LDT描述符及TSS描述符,而不必定义表登录项的长度,而不处理对占据一登录项的描述符定义该表的管理方式。而且,因为调用选通描述符,LDT描述符及TSS描述符的第二部份可以如一分段描述符一般近接,所以当如以下图9中所示者,当在描述符表中储存该描述符时,在第二部份中为描述符的型式字段的描述符的某些部位可以加以设定。另外,处理器10可以在每次执行描述符表的读取作业时,从描述符表中读取两个连续的登录项,如果第一登录项为调用选通,LDT描述符型式,或TSS描述符型式时,则也可以使用该第二登录项。
须了解在任何的操作模式(32/64模式,32位兼容模式,16位兼容模式)中的码操作可以当设定LME位时参考一调用选通描述符。因此,甚至该常规的地址在使用调用选通机构时的32位或16位的地址空间的外部,则32或16位的应用仍可以调用一操作系统常规。另外,调用选通描述符可以参考具有任何操作模式的码分段。操作系统可以确定在调用选通中功能的最大有效位的32位为0(对于32位的标的分段),或在调用选通中补偿的最大有效位的48位为0(对于16位的标的分段)。
兹参照图9,其中显示一调用选通描述符120的一实施例的方块图。也可以配置及考量其它的实施例以达到同一目的。与图2及图3类似,显示的最大有效字节在最小有效字节的上方。以4字节为一群的最大有效位显示如位31,而最小有效位中显示如位0。在四个字节内的数个垂直线限制各位,且长的垂直线限制位,也限制一字段。如上所述,一调用选通描述符全域描述符表中的两个登录项。图9中的水平虚线分割调用选通描述符120成为上部位(在该线之上)及一下部位(在该线之下)。下部位储存在由调用选通的分段选择器所指引的登录项中,而上部位储存在下一连续的登录项中。
调用选通描述符120包含一标的分段选择器(字段122),一补偿字段(字段124A,124B及124C),一出现(P)位126,一描述符优先准位(DPL)128,一型式字段130及一虚拟型式字段132。P位类似上述说明的P位48。标的分段选择器辨识在描述符表内的一表的登录项,其中该描述符表储存标的分段描述符(具有较高的优先准位)。该补偿值辨识开始取出码的地址。在32/64模式中,因为码分段没有基础地址,且使用平坦方式的线性寻址,所以在开始得到码的地址为该补偿。在其它的模式中,将补偿值加入由标的分段描述符所定义的分段基础中,以产生开始得到该码的地址。如上所述,该补偿可以包含在本实施例中的64个位。
DPL 128储存调用常规中的最小优先准位(均在现在的优先准位及要求的优先准位下),其可顺利地通过该调用选通,且在标的分段描述符指定的优先准位下执行该调用常规。
将型式字段130编码为一调用选通说明型式。在一实施例中,此型式编码为在x86架构中定义的32位调用选通型式。另外,也可以使用其它的编码方式。最后,编码该虚拟型式字段132成为一无效的型式(如0),以确定如果出现一分段选择器,其中该分段选择器辨识储存在调用选通描述符120的上半的描述符表登录项中时,则由处理器10发出一异常信号。
须注意LDT描述符96的下半部份类似32位的LDT描述符,而LDT描述符96的上半部位类似调用选通描述符120的上半部位。
兹参照图10,其中显示用于为处理器10执行的指令的指令格式140的方块图。也可以考量应用其它的实施例达成本实施例相同的目的。在图10所示的实施例中,指令格式140包含一首段字段142,一OP码字段144,一模式R/M(寄存器/内存)字段146,一SIB(尺寸指示基础)字段148,一位移字段150,一瞬间处理字段152。除了OP码字段144外的各个字段均为可视需要选择者。因此,指令字段140可以定义成一变动长度的指令。
首段字段142用于该指令的任何的指令首段。如上所述,可以将一操作数长度越位首段及一地址首段越位首段编码成为一指令,以越位该处理器10的操作模式。这些越位首段包含在该首段字段142中。如上所述,操作数长度越位首段及地址长度越位首段可以为包含在首段字段142中的字节。
Op码字段144包含该指令的op码(即为将被执行的指令集中的指令)。对于其它的指令,op码中的一部份可以包含在模式R/M字段146内。而且某些op码特定一8位或16位的寄存器为一操作数。因此,op码编码可以用于越位由处理器10的操作模式指示的默认值。
Mod R/M字段146及SIB字段148指示该指令的操作数。位移字段150包含任何的位移信息,且瞬间处理字段152包含一瞬间操作数。计算机系统
兹参照图11,其中显示一计算机系统200的一实施例的方块图,其中该计算机系统包含该处理器10,而处理器系经一总线桥接器202耦合到多个系统组件。也可以考量使用其它的实施例达到相同的目的。在所示的系统中,主存储器204经一内存总线206耦合到操作数,且图形控制器208经一AGP总线210耦合到总线桥接器202。最后,多个PCI装置212A至212B经一PCI总线214耦合到总线桥接器202中。可以更进一步提供第二总线桥接器216以将电子接口经EISA/ISA总线220而适应一个或多个EISA或ISA装置218。处理器10经CPU总线224耦合到总线桥接器202,且耦合到选择性L2快取缓冲存储器228。另外,CPU总线224及至L2快取缓冲存储器228的接口可以包含可以耦合外部接口单元18的外部接口。
总线桥接器202提供在处理器10,主存储器204,图形控制器208,及连结到PCI总线214的装置之间的接口。当从连接到总线桥接器202的装置中的一项接收到操作时,总线桥接器202辨识操作的目的(即一特定的装置,或者是在PCI总线214的例子中,该标的为在PCI总线214上)。总线桥接器202路由该操作到标的装置中。产生总线桥接器202将为来源装置或总线使用的协议的操作转译为由标的装置或总线使用的协议。
另外对于PCI总线214提供到ISA/EISA的接口处,如果需要的话,第二总线桥接器#尚提供其它额外的功能。可在第二总线桥接器216外或与其整合的输入/输出控制器(图中没有显示)也可以包含在计算机系统200中,以对于键盘或鼠标222提供操作上的支持,且如果需要的话,对于多种不同的串行或并行接口提供该支持。在另一实施例中,外部快取缓冲存储器单元(图中没有显示)可以更进一步耦合在其它实施例的处理器10及总线桥接器202之间的CPU总线224。另外,该外部快取缓冲存储器可以耦合到总线桥接器202中,且对于外部快取缓冲存储器的快取缓冲存储器控制逻辑也可以整合入该总线桥接器202内。L2快取缓冲存储器226显示以后侧配置的型式提供予处理器10。须注意L2快取缓冲存储器228可以与处理器10分开,整合于具有处理器10的卡匣(如开槽1或开槽A)中,甚至整合在具有处理器10的半导体基体中。
主存储器204为一内存,其中储存应用程序,且由此,可以执行处理器10。适当的主存储器包含DRAM(动态随机存取内存)。例如可以使用多排方式的SDRAM(同步DRAM),或者是也可以使用RambusDRAM(RDRAM)。
以多种不同的周边装置显示PCIA因此212A至212B,例如可为卡路适配卡,视讯加速器,声霸卡,硬或软盘驱动器,或驱动器控制器,SCSI(小型计算机系统接口)转接器,及电话卡。同样地,ISA装置可以是多种不同的周边装置,如调制解调器,声音卡,及多种数据辨识卡,如GPIB或字段总线适配卡。
提供图形控制器208以控制在显示224上的文字及影像的显示。图形控制器228可以以一基本上的图形加速器显示,习知技术中一般为三维数据结构,其可以有效地从主存储器204中读取或读取。图形控制器208因此可以为主AGP总线210,其要求或接收近接一标的接口,其中该接口在该总线桥接器202内,因此得以近接主存储器204。专用的图形总线适于快速从主存储器204中得到数据。对于某些操作,更进一步配置图形控制器208的型式使在总线上产生PCI协议转译。总线桥接器202的AGP接口因此可以在功能上包含传送APG协议及PCI协议标的及初始器转换的功能。显示器224为任何型式的电子显示器而可以显示影像或文字者。适当的显示器226包含阴影射线管(“CRT”),液晶显示器(“LCD”)等。
须注意当在上述说明中使用AGP,PCI,及ISA或EISA总线作为说明例子时,实际上如果需要的话也可以使用任何的总线架构取代上述说明的总线。更进一步说明计算机系统200可以为包含额外处理器的多处理计算机系统(如以计算机系统200的操作组件显示的处理器10a)。处理器10a可以类似处理器10。尤其是,处理器10a可以为处理器10的复制品。处理器10a可以经一独立的总线(如图11中所示者)连接总线桥接器202,或可以共享处理器10内的CPU总线224。而且,处理器10a可以耦合选择性的L2快取缓冲存储器228a,此快取缓冲存储器类似L2快取缓冲存储器228。
兹参照图12,其中显示计算机系统200的另一实施例。某些,也可以考量使用其它的实施例达成相同的目的。在图12的实施例中,计算机系统300包含数个处理节点312A,312B,312C及312D。各处理节点312经包含在各对应的处理节点312A至312D内的内存控制器316A至316D藕合到对应的内存314A至314D。另外,处理节点312A至312D包含用于与处理节点312A-312进行通讯的接口逻辑。例如,处理节点312A包含接口逻辑318A,以与处理节点312B进行通讯,包含接口逻辑318B,以与处理节点312进行C通讯,且包含第三接口逻辑318C,以与另一处理节点(图中没有显示)进行通讯。同样地,处理节点312B包含接口逻辑318D,318E及318F;处理节点312C包含接口逻辑318G,318G,318I;且处理节点312D包含接口逻辑318J,318K及318L。耦合处理节点312D以具有接口逻辑318L而与多个输入/输出装置通讯(如在链状配置中的装置320A至320B)。在类似的型式中,也可以使用其它的处理节点以与其它的I/O装置进行通讯。
对处理节点312A至312D配置以包封为基础的连结,以交互处理节点之间的通讯作业。在本实施例中,配置该连结如单一方向的线集(如使用线324A以从处理节点312A向处理节点312B传送包封,而使用线324B以从处理节点312B向处理节点312A传送包封)。使用其它的线集324C至324H以在图12中所示的其它处理节点之间传送包封。一般,各线集324可以包含一个或多个数据线,一个或多个对应该数据线的时钟线,及一个或多个指示将传送的型式的控制线。可以以快取缓冲存储器同相相关型式中操作该连结,以在处理节点之间进行通讯作业,或者是以非同相相关的型式,在处理节点及I/O装置之间进行通讯(或者是至传统结构的I/O总线的总线桥接器,如PCI总线或ISA总线)。而且,可以类似,在I/O装置之间,使用一菊键(daisy chain)结构,在非同相相关型式下操作该连结。须了解从一处理节点向另一处理节点传送的包封可以通过一或多个中间节点。例如,由处理节点312A向处理节点312D传送的包封可以通过处理节点312B或者是处理节点312C中的任何一项,如图12中所示者。可以使用任何适当的常规算法。计算机系统300的其它实施例可以包含除图12所示外的更多或更少的处理节点。
一般,可以以在节点之间的线324上的一个或多个位时间传送该包封。一位时间为在对应的时钟线上的时钟信号的上升端下降端。该包封可以包含用于建立交易的包封,用于维持快取缓冲存储器同相的探针包封(probe包封),及来自一探针及命令的响应包封。
除了内存控制器及接口逻辑外,处理节点312A至312D可以包含一个或多个处理器。广言之,处理节点包含至少一处理器,且可以视需要包含一内存控制器,以与一内存,且如果需要的话与其它的逻辑组件之间进行通讯。尤其是,各处理节点312A至312D包含处理器10中的一个或多个复本。外部接口单元18可以包含在该节点内的接口逻辑318,及内存控制器316。
内存314A至314D可以包含其它适当的内存装置。例如内存314A至314D可以包含一个或多个RAMBUS DRAM(RDRAM),同步DRAM(SDRAM),静态RAM等。计算机系统300的地址空间在内存314A至314D之间划分开。各处理节点312A至312D可以包含内存对映件,用于决定那一地址对映到内存314A至314D的对映关系,且因此对于特定地址的内存要求路由到该处理节点312A至312D。在一实施例中,在计算机系统300内之一地址的同相相关点为内存控制器316A至316D,其中该控制器耦合到储存对应该地址的字节的内存。另言之,该内存控制器316A至316D必需确定各近接内存314A至314D的内存可以以快取缓冲存储器同相相关的方式产生。内存控制器316A至316D可以包含用于介接内存314A至314D的控制电路。另外,内存控制器316A至316D可以包含对于询问内存要求的要求序列。
一般,接口逻辑318A至318L可以包含多种不同的缓冲器以接收来自该连结的包封,且缓冲将在该连结上传送的包封。计算机系统300可以使用任何适当的流程控制机构以传送该包封。例如,在一实施例中,各接口逻辑318储存该连结的另一端的接收器内各型式缓冲器的数目,其为接口逻辑将要介接者。该接口逻辑不传送包封,除非接收的接口逻辑318存在一自由缓冲器以储存该包封。当一接收缓冲器经由路由包封进入其内而馈入数据时,接收的接口逻辑传送一讯息予该传送接口逻辑以指示该缓冲器已馈入数据。此机构称为“以联单为基础(coupon-based)的系统”。
I/O装置320A至320B可以为任何适当的I/O装置。例如I/O装置320A至320B可以包含网络适配卡,视讯卡,声霸卡,硬或软盘驱动器或驱动控制器,SCSI(小型计算机系统接口)转接地,及电话卡,调制解调器,及多种不同的数据取得卡,如GPIB,字段总线适配卡。
虽然文中已应较佳实施例说明本发明,但本领域技术人员可对上述实施例加以更改及变更,而不偏离本发明的精神及观点。所以本发明的权利要求涵盖本发明所有的变动及修改例。

Claims (18)

1.一种处理器,包含:
一分段寄存器,此分段寄存器的配置为作成用于储存一分段选择器,以辨识一分段描述符,该分段描述符包含第一操作模式指示项及第二操作模式指示项;
一控制寄存器,此控制寄存器的配置用于储存一致能指示,其中配置该处理器的配置以因应该致能指示,该第一操作模式指示项,及该第二操作模式指示项,而建立一操作模式。
2.如权利要求1所述的处理器,其中如果该致能指示在一致能状态,且该第一操作模式指示项在第一状态中,则该操作模式为第一操作模式,而其中如果该致能指示在该致能状态中,则该操作模式为第二操作模式,该第一操作模式指示项在第二状态中,且该第二操作模式指示项在该第一状态中。
3.如权利要求2所述的处理器,其中如果该致能指示在该致能状态中,且该第一操作模式指示项在该第二状态中,则该操作模式为多个可用的操作模式中的一操作模式,且其中选择该多个操作模式中的操作模式,以响应该第二操作模式指示项的一状态。
4.如权利要求3所述的处理器,其中该多个操作模式中的一操作模式为32位的操作模式。
5.如权利要求3所述的处理器,其中该多个操作模式中的一操作模式为16位的操作模式。
6.如权利要求2所述的处理器,其中该第一操作模式包含大于32位的内设地址长度。
7.如权利要求6所述的处理器,其中该内定地址长度作用在由该处理器产生的虚拟地址中。
8.如权利要求7所述的处理器,其中依据为该处理器使用的分段机构产生一虚拟地址。
9.如权利要求7所述的处理器,其中更进一步将该内定的地址长度作用到为该处理器产生的实际地址中。
10.如权利要求1所述的处理器,其中如果该致能指示在一种不致能状态中,则不定义该第一操作模式指示项,而配置该处理器的配置以建立该操作模式,作为该第二操作模式指示项的响应项。
11.一种处理器,包含:
一分段寄存器,此分段寄存器的配置是作成为用以储存一分段选择器,及来自一分段描述符的信息,其中该分段选择器包含指引一分段描述符表的索引,该表是储存在一内存中,而该处理器耦合该内存,储存在该分段描述符表的分段描述符以为该索引所指示的登录项所储存,其中配置该处理器的配置以从该分段描述符表中读取该分段描述符,因此响应该分段选择器,该分段描述符包含一操作模式指示项;以及
一控制寄存器,此控制寄存器的配置是作成用以储存一致能指示;
该处理器的配置是配置成在一操作模式下操作,在该操作模式下,虚拟地址大于32位,以响应在致能状态下的致能指示,且该操作模式指示项在第一状态下。
12.如权利要求11所述的处理器,其中该实际地址是在该操作模式下大于32位。
13.如权利要求12所述的处理器,其中该实际地址的第一位数是小于或等于64位。
14.如权利要求11所述的处理器,其中该虚拟地址的第一位数是小于或等于64位。
15.如权利要求11所述的处理器,其中该分段描述符还包含一个优先准位。
16.如权利要求11所述的处理器,其中还包含第二控制寄存器,配置此控制寄存器以储存第二致能指示其中配置处理器的配置以从该分段描述符表中读取该控制寄存器,以响应在该致能状态的第二致能指示。
17.一种方法包含:
在处理器中建立操作模式,以响应在该处理器内的控制寄存器,在分段描述符中的第一操作模式指示项,及在该分段描述符中的第二操作模式指示项中的致能指示;
取出操作数且产生地址,以响应该操作模式。
18.如权利要求17所述的处理器,其中该建立的动作包含步骤为建立第一操作模式,以响应在一致能状态的致能指示,且该第一操作模式指示项在第一状态中,且其中该第一操作模式包含大于32位的内定地址长度。
22.如权利要求18所述的方法,其中该建立的动作包含步骤为如果该致能指示在该致能状态中,且该第一操作模式指示项在第二状态中,则建立多个操作模式中的一操作模式,且选择该多个操作模式中的一操作模式,以响应该第二操作模式指示项中的一状态。
CNB008183414A 2000-01-14 2000-07-19 一种建立操作模式的处理器以及在处理器中建立操作模式的方法 Expired - Lifetime CN100419671C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/483,101 2000-01-14
US09/483,101 US6973562B1 (en) 2000-01-14 2000-01-14 Establishing an operating mode in a processor

Publications (2)

Publication Number Publication Date
CN1423773A true CN1423773A (zh) 2003-06-11
CN100419671C CN100419671C (zh) 2008-09-17

Family

ID=23918664

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008183414A Expired - Lifetime CN100419671C (zh) 2000-01-14 2000-07-19 一种建立操作模式的处理器以及在处理器中建立操作模式的方法

Country Status (8)

Country Link
US (1) US6973562B1 (zh)
EP (1) EP1247171B1 (zh)
JP (1) JP4520683B2 (zh)
KR (1) KR100636413B1 (zh)
CN (1) CN100419671C (zh)
DE (1) DE60005219T2 (zh)
TW (1) TW567434B (zh)
WO (1) WO2001052058A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100350379C (zh) * 2004-07-08 2007-11-21 国际商业机器公司 用于在32位aix内核中自动更新64位的域的方法和系统
CN102331978A (zh) * 2011-07-07 2012-01-25 曙光信息产业股份有限公司 一种龙芯刀片大内存地址设备dma控制器访问的实现方法
CN105094870A (zh) * 2014-05-13 2015-11-25 中标软件有限公司 64位Linux操作系统兼容32位应用软件的方法
CN107870736A (zh) * 2016-09-28 2018-04-03 龙芯中科技术有限公司 支持大于4gb非线性闪存的方法及装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1387250B8 (en) * 2002-07-31 2012-02-29 Texas Instruments Inc. Processor that accomodates multiple instruction sets and multiple decode modes
US7343378B2 (en) * 2004-03-29 2008-03-11 Microsoft Corporation Generation of meaningful names in flattened hierarchical structures
US20060282606A1 (en) * 2005-06-08 2006-12-14 Dell Products L.P. System and method for automatically optimizing available virtual memory
JP5289688B2 (ja) * 2006-07-05 2013-09-11 ルネサスエレクトロニクス株式会社 プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
US7451298B2 (en) * 2006-08-03 2008-11-11 Apple Inc. Processing exceptions from 64-bit application program executing in 64-bit processor with 32-bit OS kernel by switching to 32-bit processor mode
US7802252B2 (en) * 2007-01-09 2010-09-21 International Business Machines Corporation Method and apparatus for selecting the architecture level to which a processor appears to conform
US8938606B2 (en) * 2010-12-22 2015-01-20 Intel Corporation System, apparatus, and method for segment register read and write regardless of privilege level
US8528083B2 (en) * 2011-03-10 2013-09-03 Adobe Systems Incorporated Using a call gate to prevent secure sandbox leakage
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
GB2522290B (en) 2014-07-14 2015-12-09 Imagination Tech Ltd Running a 32-bit operating system on a 64-bit machine
GB2546465B (en) * 2015-06-05 2018-02-28 Advanced Risc Mach Ltd Modal processing of program instructions
CN111026452B (zh) * 2019-11-20 2023-10-20 北京明朝万达科技股份有限公司 一种远程32位进程注入64位进程的方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620274A (en) 1983-04-01 1986-10-28 Honeywell Information Systems Inc. Data available indicator for an exhausted operand string
US4701946A (en) 1984-10-23 1987-10-20 Oliva Raymond A Device for controlling the application of power to a computer
US4868740A (en) 1986-06-04 1989-09-19 Hitachi, Ltd. System for processing data with multiple virtual address and data word lengths
JPS63174145A (ja) * 1987-01-14 1988-07-18 Hitachi Ltd デ−タ処理装置
JP2507756B2 (ja) * 1987-10-05 1996-06-19 株式会社日立製作所 情報処理装置
US5381537A (en) * 1991-12-06 1995-01-10 International Business Machines Corporation Large logical addressing method and means
US5617554A (en) * 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5692167A (en) * 1992-07-31 1997-11-25 Intel Corporation Method for verifying the correct processing of pipelined instructions including branch instructions and self-modifying code in a microprocessor
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
US5517651A (en) 1993-12-29 1996-05-14 Intel Corporation Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5758116A (en) 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions
US5644755A (en) 1995-02-24 1997-07-01 Compaq Computer Corporation Processor with virtual system mode
US5774686A (en) * 1995-06-07 1998-06-30 Intel Corporation Method and apparatus for providing two system architectures in a processor
US5787495A (en) 1995-12-18 1998-07-28 Integrated Device Technology, Inc. Method and apparatus for selector storing and restoration
US5784638A (en) 1996-02-22 1998-07-21 International Business Machines Corporation Computer system supporting control transfers between two architectures
US5826074A (en) 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US6086623A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. Method and implementation for intercepting and processing system calls in programmed digital computer to emulate retrograde operating system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100350379C (zh) * 2004-07-08 2007-11-21 国际商业机器公司 用于在32位aix内核中自动更新64位的域的方法和系统
CN102331978A (zh) * 2011-07-07 2012-01-25 曙光信息产业股份有限公司 一种龙芯刀片大内存地址设备dma控制器访问的实现方法
CN105094870A (zh) * 2014-05-13 2015-11-25 中标软件有限公司 64位Linux操作系统兼容32位应用软件的方法
CN107870736A (zh) * 2016-09-28 2018-04-03 龙芯中科技术有限公司 支持大于4gb非线性闪存的方法及装置
CN107870736B (zh) * 2016-09-28 2021-08-10 龙芯中科技术股份有限公司 支持大于4gb非线性闪存的方法及装置

Also Published As

Publication number Publication date
KR20020091066A (ko) 2002-12-05
DE60005219D1 (de) 2003-10-16
JP2003519868A (ja) 2003-06-24
EP1247171A1 (en) 2002-10-09
JP4520683B2 (ja) 2010-08-11
KR100636413B1 (ko) 2006-10-19
DE60005219T2 (de) 2004-06-24
CN100419671C (zh) 2008-09-17
TW567434B (en) 2003-12-21
US6973562B1 (en) 2005-12-06
WO2001052058A1 (en) 2001-07-19
EP1247171B1 (en) 2003-09-10

Similar Documents

Publication Publication Date Title
CN1423773A (zh) 于处理器中建立的操作模式
CN1153145C (zh) 预加载不同缺省地址转换属性的方法和装置
CN1304962C (zh) 转译后备缓冲器清除滤波器
AU2009308007B2 (en) Opportunistic page largification
US8799621B2 (en) Translation table control
CN1149473C (zh) 用32位微处理器中的4字节和8字节页面表表目实现线性地址扩展以及到物理存储器上的映射
CN1846200A (zh) 在处理器中用于减少功耗的微变换检测缓冲器及微标记符
CN1174314C (zh) 用于64位寻址的调用选通扩充
CN1613054A (zh) 控制指令集体系结构之间的二进制编码翻译的兼容水平
JPH07262092A (ja) 仮想メモリ管理システム、変換索引バッファ管理方法、及び変換索引バッファパージオーバーヘッド最小化方法
US6434685B1 (en) Paged memory management system within a run-time environment
CN1260656C (zh) 能够使用虚拟存储器处理模式的数据处理系统
CN101040254A (zh) 用于管理数据的系统和方法
CN1021936C (zh) 数据处理系统中产生保护号或者环号的装置
CN1078720C (zh) 输入/输出数据的规模相异的先入先出存贮器及其方法
JP3240673B2 (ja) 文字パターンの管理方法
CN100345107C (zh) 微机应用系统和微机、及信号处理系统和集成电路
JPH10301848A (ja) 多重ページサイズを有する仮想記憶装置
CN1740989A (zh) 通用嵌入式系统虚拟页属性管理方法
CN1848096A (zh) 转换旁视缓冲器中避免重复匹配输入的改良装置与方法
CN1155885C (zh) 在可携带式电子产品上读取数据库扩展信息的方法
CN1342935A (zh) 多重可变地址映射电路
JPS62189543A (ja) アドレス変換方式
CN1716226A (zh) 使64位处理器兼容32位桥接芯片的系统及转换装置
JPS5898892A (ja) 情報処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080917