CN1431584A - 延伸微处理器数据模式的装置及方法 - Google Patents

延伸微处理器数据模式的装置及方法 Download PDF

Info

Publication number
CN1431584A
CN1431584A CN 03103038 CN03103038A CN1431584A CN 1431584 A CN1431584 A CN 1431584A CN 03103038 CN03103038 CN 03103038 CN 03103038 A CN03103038 A CN 03103038A CN 1431584 A CN1431584 A CN 1431584A
Authority
CN
China
Prior art keywords
extension
instruction
operand
microprocessor
order
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
CN 03103038
Other languages
English (en)
Other versions
CN1218243C (zh
Inventor
G·葛兰·亨利
罗德·E·胡克
泰瑞·派克斯
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.)
INTELLIGENCE FIRST CO
Original Assignee
INTELLIGENCE FIRST CO
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
Priority claimed from US10/227,008 external-priority patent/US7395412B2/en
Application filed by INTELLIGENCE FIRST CO filed Critical INTELLIGENCE FIRST CO
Publication of CN1431584A publication Critical patent/CN1431584A/zh
Application granted granted Critical
Publication of CN1218243C publication Critical patent/CN1218243C/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
    • 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

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)

Abstract

本发明涉及一种装置及方法,用于扩充一微处理器指令集,以提供可由该微处理器指令集的可程序化指令予以指定的延伸大小操作数。该装置包括一转译逻辑与一延伸执行逻辑。该转译逻辑将一延伸指令转译成对应的微指令,由该微处理器执行。该延伸指令具有一延伸前置码与一延伸前置码标记。该延伸前置码指定对应一指定运算的一操作数的延伸操作数大小,其中该延伸操作数大小是无法由一即有指令集进行指定。该延伸前置码标记则指出该延伸前置码,且是原本该即有指令集内另一依据架构所指定的运算码。该延伸执行逻辑耦接至转译逻辑,用以接收该对应的微指令,并使用该操作数以执行该指定运算。

Description

延伸微处理器数据模式的装置及方法
与相关申请案的对照
(0001)本申请主张以下美国申请案的相关权益:案号10/227008,申请日为2002年8月22日。
(0002)本申请与下列同在申请中的美国专利申请案有关,都具有相同的申请人与发明人。
台湾申请案号    申请日   DOCKETNUMBER       专利名称
91116957 7/30/02 CNTR:2176 延伸微处理器指令集的装置及方法
91116958 7/30/02 CNTR:2186 执行条件指令的装置及方法
91124008 10/18/02 CNTR:2187 选择性控制存储器属性的装置及方法
91116956 7/30/02 CNTR:2188 选择性地控制条件码同写的装置及方法
91116959 7/3O/02 CNTR:2189 增加微处理器的缓存器数量的机制
91124006 10/18/02 CNTR:2191 延伸微处理器地址模式的装置及方法
    CNTR:2192 储存检查的禁止
    CNTR:2193 选择性中断的禁止
91124007 10/18/02 CNTR:2195 非暂存存储器参照控制机制
91116672 7/26/02 CNTR:2198 选择性地控制结果回写的装置及方法
技术领域
(0003)本发明是有关微电子的领域,尤指一种能将延伸地址模式控制纳入一既有的微处理器指令集架构的技术。
背景技术
(0004)自1970年代初面世以来,微处理器的使用即呈指数般成长。从最早应用于科学与技术的领域,到如今已从那些特殊领域引进商业的消费者领域,如桌上型与膝上型(laptop)计算机、视频游戏控制器以及许多其它常见的家用与商用装置等产品。
(0005)随着使用上的爆炸性成长,在技术上也历经一相对应的提升,其特征在于对下列项目有着日益升高的要求:更快的速度、更强的寻址能力、更快的存储器存取、更大的操作数,更多种一般用途类型的运算(如浮点运算、单一指令多重数据(SIMD)、条件移动等)以及附加的特殊用途运算(如数字信号处理功能及其它多媒体运算)。如此造就了该领域中惊人的技术进展,且都已应用于微处理器的设计,像扩充流水线化(extensive pipelining)、超纯量架构(super-scalar architecture)、快取结构、乱序处理(out-of-order processing)、爆发式存取(burst access)机制、分支预测(branch predication)以及假想执行(speculative execution)。总之,比起30年前刚出现时,现在的微处理器呈现出惊人的复杂度,且具备了强大的能力。
(0006)但与许多其它产品不同的是,有另一非常重要的因素已限制了,并持续限制着微处理器架构的演进。现今微处理器会如此复杂,一大部分得归因于这项因素,即旧有软件的兼容性。在市场考量下,所多制造商选择将新的架构特征纳入最新的微处理器设计中,但同时在这些最新的产品中,又保留了所有为确保兼容于较旧的、即所谓“旧有”(legacy)应用程序所必需的能力。
(0007)这种旧有软件兼容性的负担,没有其它地方,会比在x86-兼容的微处理器的发展史中更加显而易见。大家都知道,现在的32/16位的虚拟模式(virtual-mode)x86微处理器,仍可执行1980年代所撰写的8位真实模式(real-mode)的应用程序。而本领域的技术人员也承认,有不少相关的架构“包袱”堆在x86架构中,只为了支持与旧有应用程序及运作模式的兼容性。虽然在过去,研发者可将新开发的架构特征加入既有的指令集架构,但如今使用这些特征所凭借的工具,即可程序化的指令,却变得相当稀少。更简单他说,在某些重要的指令集中,已没有“多余”的指令,让设计者可藉以将更新的特征纳入一既有的架构中。
(0008)例如,在x86指令集架构中,已经没有任何一未定义的一字节大小的运算码状态,是尚未被使用的。在主要的一字节大小的x86运算码图中,全部256个运算码状态都已被既有的指令占用了。结果是,x86微处理器的设计者现在必须在提供新特征与保留旧有软件兼容性两者间作抉择。若要提供新的可程序化特征,则必须分派运算码状态给这些特征。若既有的指令集架构没有多余的运算码状态,则某些既存的运算码状态必须重新定义,以提供给新的特征。因此,为了提供新的特征,就得牺牲旧有软件兼容性了。
(0009)一个持续恶化且困扰微处理器设计者的问题,即是操作数的大小。早期的微处理器设计提供了使用8位操作数的8位运算。随着应用程序使用的计算日渐复杂,操作数的大小与相关的运算也增加至16位。现在用于桌上型/膝上型应用程序的微处理器,已能提供32位的操作数/运算。微处理器的操作数/运算的大小,通常称为数据模式(data mode)。因此,为了保留与旧有应用程序的兼容性,现代的桌上型/膝上型计算机的微处理器皆能以32位、16位甚至是8位的数据模式运作。
(0010)但即使到现在,由于微处理器不能支持延伸数据模式,如64位与128位的数据模式,仍有些应用程序的领域会遭受不利的影响。不过,为了要在已无剩余运算码值的架构内支持这些延伸数据模式,必须将既有运算码重新定义,如此将会导致无法支持旧有的应用程序。
(0011)因此,我们所需要的是,一种可将延伸数据模式纳入既有微处理器指令集架构的装置及方法,其中该指令集架构是被已定义的运算码完全占用,且纳入该延伸数据模式还能让一符合旧有规格的微处理器保留执行旧有应用程序的能力。
发明内容
(0012)本发明如同前述其它申请案,是针对上述及其它公知技术的问题与缺点加以克服。本发明提供一种更好的技术,用以扩充微处理器的指令集,使其超越现有的能力,提供延长的操作数,可由该微处理器指令集的可程序化指令在其上运作。在一具体实施例中,提供了一种用以延伸微处理器数据模式的装置。该装置包括一转译逻辑(translation logic)与一延伸执行逻辑(extendedexecution logic)。该转译逻辑将一延伸指令转译成对应的微指令(microinstruction),由微处理器执行。该延伸指令具一延伸前置码(extended prefix)与一延伸前置码标记(extended prefix tag)。该延伸前置码指定对应一指定运算的一操作数的延伸操作数大小,其中该延伸操作数大小不能由一既有指令集加以指定。该延伸前置码标记则指出该延伸前置码,其中延伸前置码标记是原本该既有指令集内另一依据架构所指定的运算码。该延伸执行逻辑耦接至转译逻辑,用以接收该对应的微指令,并使用该操作数来执行该指定运算。
(0013)本发明的一个目的在于提出一种扩充既有微处理器指令集以提供延伸数据模式的机制。该机制包括一延伸指令与一转译器(translator)。该延伸指令指定一操作数的延伸操作数大小。该操作数是对应一指定运算,而该延伸指令包括该既有微处理器指令集其中一选取的运算码,其后则接着一n位的延伸前置码。该选取的运算码指出该延伸指令,而该n位的延伸前置码则指出该延伸操作数大小。该延伸操作数大小不能另依该既有微处理器指令集加以指定。该转译器组态为接收该延伸指令,并产生一微指令序列,以指示微处理器依照该延伸操作数大小,于该操作数上执行该指定运算。
(0014)本发明的另一目的在于提出一种为既有指令集增添延伸数据模式能力的指令集延伸模块。该指令集延伸模块具有一逸出标记(escape tag)、一延伸操作数大小指定元(extended operand size specifier)及一延伸执行逻辑。该逸出标记由一转译逻辑接收,并指出一对应指令的附随部分是指定了微处理器所要执行的一延伸运算,其中该逸出标记为该既有指令集内的一第一运算码。该延伸操作数大小指定元耦接至该逸出标记,且为该附随部分其中之一,用以指定对应该延伸运算的数个数据模式其中之一。该延伸执行逻辑耦接至该转译逻辑,利用所指定的数据模式执行该延伸运算,其中该既有指令集仅提供既有的数据模式,而未能提供所指定的数据模式。
(0015)本发明的再一目的在于提供一种扩充既有指令集架构的方法,可在微处理器内程序化地指定一延伸数据模式。该方法包括提供一延伸指令,该延伸指令包括一延伸标记及一延伸前置码,其中该延伸标记是该既有指令集架构其中一第一运算码项目;通过该延伸前置码与该延伸指令的其余部分指定该延伸数据模式与一指定运算,其中该既有指令集架构仅提供指定既有数据模式而非该延伸数据模式的指令;以及依据该延伸数据模式执行该指定运算。
附图说明
(0016)本发明的前述与其它目的、特征及优点,在配合下列说明及所附图标后,将可获得更好的理解:
(0017)图1为一相关技术的微处理器指令格式的方块图;
(0018)图2为一表格,其描述一指令集架构中的指令,如何对应至图1指令格式内一8位运算码字节的位逻辑状态;
(0019)图3为本发明的延伸指令格式的方块图;
(0020)图4为一表格,其显示依据本发明,延伸架构特征如何对应至8位延伸前置码实施例中位的逻辑状态;
(0021)图5为解说本发明应用延伸数据模式的一流水线化微处理器的方块图;
(0022)图6为本发明用于指定一微处理器中的延伸数据模式的延伸前置码的一具体实施例的方块图;
(0023)图7为图5微处理器内转译阶段逻辑的具体的方块图;
(0024)图8为图5的微处理器内延伸执行阶段逻辑的方块图;以及
(0025)图9为描述本发明对于指定微处理器中的一延伸数据模式运算的指令,进行转译与执行的方法的运作流程图。图标说明:
100指令格式                             101前置码
102运算码                               103地址指定元
2008位运算码图                          201运算码值
202运算码F1H
300延伸指令格式                         301前置码
302运算码                               303地址指定元
304延伸指令标记                         305延伸前置码
400 8位前置码图                         401架构特征
500流水线化微处理器                       501提取逻辑
502指令高速缓存/外部存储器
503指令队列                               504转译逻辑
505延伸转译逻辑                           506微指令队列
507执行逻辑                               508延伸执行逻辑
600延伸前置码                             601地址模式字段
602备用字段
700转译阶段逻辑                           701激活状态信号
702机器特定缓存器                         703延伸特征字段
704指令缓冲器                             705转译逻辑
706转译控制器                             707除能信号
708逸出指令检测器                         709延伸前置码译码器
710指令译码器                             711控制只读存储器
712微指令缓冲器                           713运算码延伸项字段
714微运算码字段                           715目的字段
716来源字段                               717位移字段
800延伸执行阶段逻辑                       801微指令缓冲器
802操作数输入缓冲器                       803操作数输入缓冲器
804延伸地址逻辑                           805偏移缓冲器
806延伸线性地址产生器                     807节区选取元缓冲器
808节区描述元表                           809节区描述元
810缓冲器                                 811缓冲器
812较低线性地址缓冲器                     813较高线性地址缓冲器
814操作数字段                             815操作数延伸项字段
816延伸缓存器
900~924对指定微处理器的延伸数据模式运算的指令,进行转译与执行的方法的运作流程
100指令格式                               101前置码
102运算码                                 103地址指定元
200 8位运算码图                           201运算码值
202运算码F1H
300延伸指令格式                        301前置码
302运算码                              303地址指定元
304延伸指令标记                        305延伸前置码
400 8位前置码图                        401架构特征
500流水线化微处理器                    501提取逻辑
502指令高速缓存/外部存储器
503指令队列                            504转译逻辑
505延伸转译逻辑                        506微指令队列
507执行逻辑                            508延伸执行逻辑
600延伸前置码                          601地址模式字段
602备用字段
700转译阶段逻辑                        701激活状态信号
702机器特定缓存器                      703延伸特征字段
704指令缓冲器                          705转译逻辑
706转译控制器                          707除能信号
708逸出指令检测器                      709延伸前置码译码器
710指令译码器                          711控制只读存储器
712微指令缓冲器                        713运算码延伸项字段
714微运算码字段                        715目的字段
716来源字段                            717位移字段
800延伸执行阶段逻辑                    801微指令缓冲器
802操作数输入缓冲器                    803操作数输入缓冲器
804延伸地址逻辑                        805偏移缓冲器
806延伸线性地址产生器                  807节区选取元缓冲器
808节区描述元表                        809节区描述元
810缓冲器                              811缓冲器
812较低线性地址缓冲器                  813较高线性地址缓冲器
814操作数字段                          815操作数延伸项字段
816延伸缓存器
900~924对指定微处理器的延伸数据模式运算的指令,进行转译与执行的方法的运作流程
具体实施方式
(0026)以下的说明,是在一特定实施例及其必要条件的脉络下而提供,可使一般本领域技术人员能够利用本发明。然而,各种对该较佳实施例所作的修改,对本领域技术人员而言乃是显而易见,并且,在此所讨论的一般原理,亦可应用至其它实施例。因此,本发明并不限于此处所展示与叙述的特定实施例,而是具有与此处所公开的原理与新颖特征相符的最大范围。
(0027)前文已针对今日的微处理器内,如何扩充其架构特征,以超越相关指令集能力的技术,作了背景的讨论。有鉴于此,在图1与图2,将讨论一相关技术的例子。此处的讨论强调了微处理器设计者所一直面对的两雄,即一方面,他们想将最新开发的架构特征纳入微处理器的设计中,但另一方而,他们又要保留执行旧有应用程序的能力。在图1至2的例子中,一完全占用的运算码图,已把增加新运算码至该范例架构的可能性排除,因而迫使设计者要不就选择将新特征纳入,而牺牲某种程度的旧有软件兼容性,要不就将架构上的最新进展一并放弃,以使维持微处理器与旧有应用程序的兼容性。在相关技术的讨论后,于图3至9,将提供对本发明的讨论。藉由利用一既有但未使用的运算码作为一延伸指令的前置码标记,本发明可让微处理器设计者克服已完全使用的指令集架构的限制,除了提供程序员使用比现有还长的操作数执行运算的能力,同时也能保留执行旧有应用程序所需的所有特征。
(0028)请参阅图1,其是一相关技术的微处理器指令格式100的方块图。该相关技术的指令100具有数量可变的数据项101-103,每一项目皆设定成一特定值,合在一起便组成微处理器的一特定指令100。该特定指令100指示微处理器执行一特定运算,例如将两操作数相加,或者是将一操作数从存储器搬移至一内部缓存器,或从该内部缓存器搬移至存储器。一般而言,指令100内的运算码项目102指定了所要执行的特定运算,而选用(optional)的地址指定元项目103位于运算码102之后,以指定关于该特定运算的附加信息,像是如何执行该运算,操作数位于何处等等。指令格式100并允许程序员在一运算码102前加上前置码项目101。在运算码102所指定的特定运算执行时,前置码101用以指示是否使用特定的架构特征。一般来说,这些架构特征能应用于指令集中任何运算码102所指定运算的大部分。例如,现今前置码101存在于一些能使用不同大小的操作数(如8位、16位、32位)执行运算的微处理器中。而当许多此类处理器被程序化为一预设的操作数大小时(比如32位),在其个别指令集中所提供的前置码101,仍能使程序员依据各个指令,选择性地取代(override)该预设的操作数大小(如为了执行16位的运算)。可选择的操作数大小仅是架构特征的一例,在许多现代的微处理器中,这些架构特征能应用于众多可由运算码102加以指定的运算(如加,减、乘、布尔逻辑等)。
(0029)图1所示的指令格式100,有一为业界所熟知的范例,此即x86指令格式100,其为所有现代的x86-兼容微处理器所采用。更具体他说,x86指令格式100(也称为x86指令集架构100)使用了8位前置码101、8位运算码102以及8位地址指定元103。x86架构100亦具有数个前置码101,其中两个取代了x86微处理器所预设的地址/数据大小(即运算码状态66H与67H),另一个则指示微处理器依据不同的转译规则来解译其后的运算码字节102(即前置码值0FH,其使得转译动作是依据所谓的二字节运算码规则来进行),其它的前置码101则使特殊运算重复执行,直至重复条件满足为止(即REP运算码:F0H、F2H及F3H)。
(0030)现请参阅图2,其显示一表格200,用以描述一指令集架构的指令201如何对应至图1指令格式内一8位运算码字节102的位值。表格200呈现了一8位运算码图200的范例,其将一8位运算码项目102所具有的最多256个值,关联到对应的微处理器运算码指令201。表格200将运算码项目102的一特定值,譬如02H,映像至一对应的运算码指令201(即指令I02 201)。在x86运算码图的例子中,为此领域中人所熟知的是,运算码值14H是映像全x86的进位累加(Add with Carry,ADC)指令,此指令将一8位的直接(immediate)操作数加至架构缓存器AL的内含值。本领域的技术人员也将发觉,上文提及的x86前置码101(亦即66H、67H、0FH、F0H、F2H及F3H)是实际的运算码值201,其在不同脉络下,指定要将特定的架构延伸项应用于随后的运算码项目102所指定的运算。例如,在运算码14H(正常情况下,是前述的ADC运算码)前加上前置码0FH,会使得x86处理器执行一“解压缩与插入低压缩的单精度浮点值”(Unpack and Interleave Low PackedSingle-Precision Floating-Point Values)运算,而非原本的ADC运算。诸如此x86例子所述的特征,在现代的微处理器中是部分地致能,此因微处理器内的指令转译解码逻辑是依序解译一指令100的项目101-103。所以在过去,于指令集架构中使用特定运算码值作为前置码101,可允许微处理器设计者将不少先进的架构特征纳入兼容旧有软件的微处理器的设计中,而不会对未使用那些特定运算码状态的旧有程序,带来执行上的负面冲击。例如,一未曾使用x86运算码0FH的旧有程序,仍可在今日的x86微处理器上执行。而一较新的应用程序,借着运用x86运算码0FH作为前置码101,就能使用许多新进纳入的x86架构特征,如单一指令多重数据(SIMD)运算,条件移动运算等等。
(0031)尽管过去已藉由指定可用/多余的运算码值201作为前置码10i(也称为架构特征标记/指针101或逸出指令10i),来提供架构特征,但许多指令集架构100在提供功能上的强化时,仍会因为一非常直接的理由,而磁到阻碍:所有可用/多余的运算码值已被用完,也就是,运算码图200中的全部运算码值已被架构化地指定。当所有可用的值被分派为运算码项目102或前置码项目101时,就没有剩余的运算码值可作为纳入新特征之用。这个严重的问题存在于现在的许多微处理器架构中,因而迫使设计者得在增添架构特征与保留旧有程序的兼容性两者间作抉择。
(0032)值得注意的是,图2所示的指令201是以一般性的方式表示(亦即124、186),而非具体指涉实际的运算(如进位累加、减、异或)。这是因为,在一些不同的微处理器架构中,完全占用的运算码图200在架构上,已将纳入较新进展的可能性排除。虽然图2例子所提到的,是8位的运算码项目102,本领域的技术人员仍将发觉,运算码102的特定大小,除了作为一特殊情况来讨论完全占用的运算码结构200所造成的问题外,其它方面与问题本身并不相干。因此,一完全占用的6位运算码图将有64个可架构化地指定的运算码/前置码201,并将无法提供可用/多余的运算码值作为扩充之用。
(0033)另一种替代做法,则并非将原有指令集完全废弃,以一新的格式100与运算码图200取代,而是只针对一部份既有的运算码201,以新的指令意含取代,如图2的运算码40H至4FH。以这种混合的技术,微处理器就可以单独地以下列两种模式的一运作:其中旧有模式利用运算码40H-4FH,是依旧有规则来解译,或者以另一种改良模式(enhanced mode)运作,此时运算码40H-4FH则依加强的架构规则来解译。此项技术确能允许设计者将新特征纳入设计,然而,当符合旧有规格的微处理器于加强模式运作时,缺点仍旧存在,因为微处理器不能执行任何使用运算码40H—4FH的应用程序。因此,站在保留旧有软件兼容性的立场,兼容旧有软件/加强模式的技术,还足无法接受的。
(0034)然而,对于运算码空间已完全占用的指令集200,且该空间涵盖所有于符合旧有规格的微处理器上执行的应用程序的情形,本案发明人已注意到其中运算码201的使用状况,且他们亦观察出,虽然有些指令202是架构化地指定,但未用于能被微处理器执行的应用程序中。图2所述的指令IF1 202即为此现象的一例。事实上,相同的运算码值202(亦即F1H)是映像至未用于x86指令集架构的一有效指令202。虽然该未使用的x86指令202是有效的x86指令202,其指示要在x86微处理器上执行一架构化地指定的运算,但它却未使用于任何能在现代x86微处理器上执行的应用程序。这个特殊的x86指令202被称为电路内模拟断点(In Circuit Emulation Breakpoint)(亦即ICEBKPT,运算码值为F1H),之前都是专门使用于一种现在已不存在的微处理器模拟设备中。ICE BKPT 202从未用于电路内模拟器之外的应用程序中,并且先前使用ICE BKPT 202的电路内模拟设备已不复存在。因此,在x86的情形下,本案发明人已在一完全占用的指令集架构200内发现一样工具,借着利用一有效但未使用的运算码202,以允许在微处理器的设计中纳入先进的架构特征,而不需牺牲旧有软件的兼容性。在一完全占用的指令集架构200中,本发明利用一架构化地指定但未使用的运算码202,作为一指针标记,以指出其后的一n位前置码,因此允许微处理器设计者可将最多2n个最新发展的架构特征,纳入微处理器的设计中,同时保留与所有旧有软件完全的兼容性。
(0035)本发明藉提供一n位的延伸操作数大小指定元前置码,以使用前置码标记/延伸前置码的概念,因而可允许程序员在一微处理器中,依据每个指令指定一延伸数据模式予一对应的运算。该延伸数据模式是用以取代该微处理器的既有指令集架构所支持的既有数据模式。本发明现将参照图3至9进行讨论。
(0036)现请参阅图3,其为本发明的延伸指令格式300的方块图。与图1所讨论的格式100非常近似,该延伸指令格式300具有数量可变的指令项目301-305,每一项目设定为一特定值,集合起来便组成微处理器的一特定指令300。该特定指令300指示微处理器执行一特定运算,像是将两操作数相加,或是将一操作数从存储器搬移至微处理器的缓存器内。一般而言,指令300的运算码项目302指定了所要执行的特定运算,而选用的地址指定元项目303则位于运算码302后,以指定该特定运算的相关附加信息,像是如何执行该运算,操作数位于何处等等。指令格式300亦允许程序员在一运算码。302前加上前置码项目301。在运算码302所指定的特定运算执行时,前置码项目301是用来指示是否要使用既有的架构特征。
(0037)然而,本发明的延伸指令300是前述图1指令格式100的一超集(superset),其具有两个附加项目304与305,可被选择性作为指令延伸项,并置于一格式化延伸指令300中所有其余项目301-303之前。这两个附加项目304与305可让程序员能在一符合旧有规格的微处理器内,指定一延伸数据模式,以依据该延伸数据模式执行一运算,其中该延伸数据模式是无法另由该符合旧有规格微处理器的既有指令集来加以程序化。这两个附加项目304与305可将较大的操作数/运算纳入一具有已完全占用的指令集架构的微处理器设计中,选用项日304与305是一延伸指令标记304与一延伸操作数大小指定元前置码305。该延伸指令标记304是一微处理器指令集内另一依据架构所指定的运算码。在一x86的实施例中,该延伸指令标记304,或称逸出标记304,是用运算码状态F1H,其为早先使用的ICE BKPT指令。逸出标记304向微处理器逻辑指出,该延伸前置码305,或称延伸特征指定元305,是跟随在后,其中该延伸前置码305指定了对应于一指定运算的一操作数/运算大小或数据模式。在一具体实施例中,逸出标记304指出,一对应延伸指令300的附随部分301-303及305指定了微处理器所要执行的一延伸运算。延伸操作数大小指定元305,或称延伸前置码305,指定了对应于一相关运算的数个操作数大小其中之一。微处理器内的延伸执行逻辑于执行该延伸运算时,存取延伸大小的缓存器中的操作数,并使用与该指定的操作数大小或数据模式相一致的处理规则,来处理所存取的操作数。
(0038)此处将本发明的延伸数据模式的技术作个概述。一延伸指令是组态为于一既有微处理器指令集中指定一延伸数据模式,其中该延伸数据模式无法另依该既有微处理器指令集来加以指定。该延伸指令包括该既有指令集的运算码/指令304其中之一以及一n位的延伸特征前置码305。所选取的运算码对旨令作为一指针304,以指出指令300是一延伸特征指令300(亦即,其指定了微处理器架构的延伸项),该n位的特征前置码305则指出该延伸数据模式。在一具体实施例中,延伸前置码305具有八位,最多可指定256种不同的数据模式。n位前置码的实施例,则最多可指定2n种不同的数据模式。在另一实施例中,提供64位的数据模式,以取代符合旧有规格微处理器中预设的数据模式(如32位或16位)。因此,在对应的运算执行时,执行逻辑即于64位的操作数上执行64位的运算(如加、减、逻辑运算等)。在另一实施例中,则更允许程序员指定64位或128位的数据模式。
(0039)现请参阅图4,一表格400显示依据本发明,缓存器延伸项如何映像至一8位延伸前置码实施例的位逻辑状态。类似于图2所讨论的运算码图200,图4的表格400呈现一8位的延伸数据模式前置码图400的范例,其将一8位延伸前置码项日305的最多256个值,关联到一符合旧有规格的微处理器的对应延伸数据模式401(如E34、E40等)。在一x86的具体实施例中,本发明的8位延伸特征前置码305是提供给数据模式401(亦即E00-RFF)之用,该些数据模式401乃现行x86指令集架构所未能提供的。
(0040)图4所示的延伸特征401是以一般性的方式表示,而非具体指涉实际的特征,此因本发明的技术可应用于各种不同的架构延伸项401与特定的指令集架构。本领域的技术人员将发觉,许多不同的架构特征401,其中一些已于上文提及,可依此处所述的逸出标记304/延伸前置码305技术将其纳入一既有的指令集。图4的8位前置码实施例提供了最多256个不同的特征401,而一n位前置码实施例则具有最多2n个不同特征401的程序化选择。
(0041)现请参阅图5,其为解说本发明用以执行延伸数据模式运算的流水线化微处理器500的方块图。微处理器500具有三个明显的阶段类型:提取。转译及执行。提取阶段具有提取逻辑501,可从指令高速缓存502或外部存储器502提取指令。所提取的指令经由指令队列503送至转译阶段。转译阶段具有转译逻辑504,耦接至一微指令队列506。转译逻辑504包括延伸转译逻辑505。执行阶段则有执行逻辑507,其内具有延伸执行逻辑508。
(0042)依据本发明,于运作时,提取逻辑501从指令高速缓存/外部存储器502提取格式化指令,并将这些指令依其执行顺序放入指令队列503中。接着从指令队列503提取这些指令,送至转译逻辑504。转译逻辑504将每一送入的指令转译/译码为一对应的微指令序列,以指示微处理器500去执行这些指令所指定的运算。依本发明,延伸转译逻辑505检测那些具有延伸前置码标记的指令,以进行对应延伸数据模式指定元前置码的转译/译码。在一x86的实施例中,延伸转译逻辑505组态为检测其值为FIH的延伸前置码标记,其是x86的ICE BKPT运算码。延伸微指令字段则提供于微指令队列506中,以允许在微处理器500内指定延伸数据模式。
(0043)微指令从微指令队列506被送至执行逻辑507,其中延伸执行逻辑508组态为依照该延伸微指令字段所指定,存取内部的微处理器缓存器。数个被指定要用于执行一指定运算的来源操作数,则从来源操作数延伸缓存器中提取。延伸执行逻辑508执行微指令所指定的运算,并产生对应的结果。随着结果的产生,延伸执行逻辑508将该对应结果回写至该。延伸微指令字段所指定的目的操作数延伸缓存器。
(0044)本领域的技术人员将发现,图5所示的微处理器500是现代的流水线化微处理器50经过简化的结果。事实上,现代的流水线化微处理器500最多可包括有20至30个不同的流水线阶段。然而,这些阶段可概括地归类为方块图所示的三个阶段,因此,图5的方块图500可用以点明前述本发明实施例所需的必要组件。为了简明起见,微处理器500中无关的组件并未显示出来。
(0045)现请参阅图6,其为本发明用于指定一微处理器延伸操作数/运算的延伸前置码600的一具体实施例的方块图。延伸操作数/运算指定元前置码600具8位大小。在一具体实施例中,8位前置码600的值指定一对应运算的一延伸数据模式,其中该对应运算是由本发明的延伸指令的其余部分所指定,如此处所述。在一x86的实施例中,该延伸数据模式(如64位的操作数/运算)被指定,以取代一预设的数据模式(如32位的操作数/运算)。
(0046)在图6的本发明延伸前置码600的实施范例中,整个前置码600是用于指定一延伸数据模式。然而,本领域技术人员将察觉,指定数个延伸数据模式其中之一所需的位数,是依该些延伸数据模式的数量而定。因此,一个能够指定64位或128位数据模式的实施例,仅需前置码600的一个位就足以区分该两种模式。所以,前置码600的其余位便可用于指定一既有指令集架构所无法提供的其它延伸特征。
(0047)现请参阅图7,其为图5的微处理器内转译阶段逻辑700的具体的方块图。转译阶段逻辑700具有一指令缓冲器704,依本发明,其提供延伸指令至转译逻辑705。转译逻辑705是耦接至一具有一延伸特征字段703的机器特定缓存器(machine specific register)702。转译逻辑705具一转译控制器706,其提供一除能信号707至一逸出指令检测器708及一延伸译码器709。逸出指令检测器708耦接至延伸译码器709及一指令译码器710。延伸译码器709与指令详码逻辑710存取一控制只读存储器(ROM)711,其中储存了对应至某些延伸指令的样板(template)微指令序列。转译逻辑705亦包括一微指令缓冲器712,其具有一运算码延伸项字段713、一微运算码字段714、一目的字段715、一来源字段716以及一位移字段717。
(0048)运作上,在微处理器通电激活期间,机器特定缓存器702内的延伸字段703的状态是藉由信号激活状态(signal power-up state)701决定,以指出该特定微处理器是否能转详与执行本发明之用以提供微处理器的延伸数据模式的延伸指令。在一具体实施例中,信号701从一特征控制缓存器(图上未显示)导出,该特征控制缓存器则读取一于制造时即已组态的熔丝数组(fusearray)(未显示)。机器特定缓存器702将延伸特征字段703的状态送至转译控制器706。转译控制逻辑706则控制从指令缓冲器704所提取的指令,要依照延伸转译规则或常用转译规则进行解译。提供这样的控制特征,可允许监督应用程序(如BIOS)致能/除能微处理器的延伸执行特征。若延伸特征被除能,则具有被选为延伸特征标记的运算码状态的指令,将依常用转译规则进行转译。在一x86的具体实施例中,选取运算码状态FlH作为标记,则在常用的转译规则下,遇到F1H将造成不合法的指令异常(exception)。若延伸转译被除能,指令译码器710将转译/译码所有送入的指令,并对微指令712的所有字段713至717进行组态。然而,在延伸转译规则下,若遇到标记,则会被逸出指令检测器708检测出来。逸出指令检测器708因而使指令译码器710转译/译码该延伸指令的其余部分,并对微指令712的微运算码字段714与位移字段717进行组态,而延伸译码器709则译码/转译该延伸前置码,以对微指令712的微运算码延伸项字段713进行组态。某些特定指令将导致对控制ROM711的存取,以获取对应的微指令序列样板。经过组态的微指令712被送至一微指令队列(未显示于图中),由处理器进行后续执行。
(0049)现请参阅图8,其为图5微处理器内的延伸缓存器阶段逻辑800的方块图。该延伸缓存器阶段逻辑800具一缓存器逻辑(register logic)802,其从一微指令缓冲器801或微指令队列801提取本发明的延伸微指令。缓存器逻辑802具一包括数个延伸缓存器816的延伸缓存器档案803。每一延伸缓存器816具一预设的操作数字段814与一操作数延伸项字段815。在一x86实施例中,该预设的操作数字段814为32位宽,以支持既有x86的32位操作数的储存与提取。在一64位的实施例中,操作数延伸项字段815是32位宽,以允许操作数扩充至64位。一128位的实施例则提供96位的操作数延伸项字段815。缓存器816由延伸读取逻辑806存取,以提取来源操作数,并由延伸回写逻辑807存取,以储存结果操作数。延伸读取逻辑806将来源操作数OP1、OP2输出至两个操作数缓冲器809、810。结果操作数RS1、RS2则经由两个结果缓冲器812、813被送至延伸回写逻辑807。
(0050)运作上,延伸微指令与一流水线时钟(未显示)同步,从微指令队列801被送至缓存器逻辑802。在一时钟周期内,延伸读取逻辑802译码延伸微指令的来源操作数地址字段804、805,以判断哪些缓存器816包括要用于一指定运算的来源操作数。延伸微指令801的运算码延伸项字段(未显示)的值决定了读取逻辑806于存取缓存器档案803时所用的数据模式。对预设的数据模式而言,只有被寻址的缓存器816内的预设操作数字段814被存取。对延伸数据模式而言,会对预设字段814与操作数延伸项字段815的一等长部分进行存取,以提取来源操作数。因此,来源操作数OP1、OP2从缓存器档案803被提取,并送至来源操作数缓存器809、810。而且,延伸微指令被送入流水线至缓冲器808,以供微处理器的后续流水线阶段(未显示)执行。在同一时钟周期内,一最近执行运算的结果RS1、RS2被回写至由完整(completed)微指令缓冲器811中的目的缓存器字段(未显示)所指定的目的缓存器816中。完整微指令缓冲器811中的运算码延伸项字段(未显示)的值判断结果是否回写至目的缓存器816的操作数延伸项字段,以及是延伸项字段815的哪一部份被回写。对应的结果操作数RS1、RS2则被送入缓冲器812、813。
(0051)图8所示的缓存器阶段逻辑800,提供了于单一时钟周期内,一致地存取两个来源缓存器与两个结果缓存器的能力。另一实施例则提供两个来源操作数与单一的目的操作数。为确保缓存器816的一致性,延伸缓存器逻辑802于执行结果RS1、RS2的回写前,便存取来源操作数OP1、OP2。
(0052)现请参阅图9,其为描述本发明对可让程序员指定微处理器的延伸数据模式的指令,进行转译与执行的方法的运作流程图。流程开始于方块902,其中一个组态有延伸特征指令的程序,被送至微处理器。流程接着进行至方块904。
(0053)于方块904中,下一个指令是从高速缓存/外部存储器提取。流程接着进行至判断方块906。
(0054)于判断方块906中,对在方块904中所提取的下个指令进行检查,以判断是否包括一本发明的延伸逸出码。在一x86的实施例中,该检查是用以检测运算码值F1(ICE BKPT)。若检测到该延伸逸出码,则流程进行至方块908。若未检测到该延伸逸出码,则流程进行至方块912。
(0055)于方块908中,译码/转译该延伸指令的延伸前置码部分,以决定被指定用以执行现行运算的一延伸数据模式。流程接着进行到方块910。
(0056)于方块910中,现行运算所用的该延伸数据模式被指定于一对应微指令序列的延伸项字段。流程接着进行至方块912。
(0057)于方块912中,该指令的所有其余部分被译码/转译,以决定该指定运算,该运算的操作数的地址以及依据该既有微处理器指令集架构,由前置码所指定的既有架构特征的使用。流程接着进行至方块914。
(0058)于方块914中,一微指令序列被组态为指定该指定运算及其对应的运算码延伸项。流程接着进行至方块916。
(0059)于方块916中,该微指令序列被送至一微指令队列,由微处理器执行。流程接着进行至方块918。
(0060)于方块918中,该微指令序列由本发明的一延伸缓存器逻辑进行提取。该延伸缓存器逻辑从指定缓存器中提取对应于该指定运算的操作数。操作数是依该微指令序列内指定的数据模式(即预设或延伸)定其大小。流程接着进行至方块920。
(0061)于方块920中,延伸执行逻辑运用该指定的数据模式,使用于方块918中所存取的操作数执行该指定运算,以产生结果操作数。流程接着进行至方块922。
(0062)于方块922中,该结果操作数被送至该延伸缓存器逻辑,并以该微指令序列所指定的数据模式被回写至延伸缓存器中。流程接着进行至方块924。
(0063)于方块924中,本方法完成。
(0064)虽然本发明及其目的、特征与优点已详细叙述,其它实施例亦可包括在本发明的范围内。例如,本发明已就如下的技术加以叙述,利用已完全占用的指令集架构内一单一、未使用的运算码状态作为标记,以指出其后的延伸特征前置码。但本发明的范围就任一方面来看,并不限于已完全占用的指令集架构,或未使用的指令,或是单一标记。相反地,本发明涵盖了未完全映像的指令集、具已使用运算码的实施例以及使用一个以上的指令标记的实施例。例如,考虑一没有未使用运算码状态的指令集架构。本发明的一具体实施例包括了选取一作为逸出标记的运算码状态,其中选取标准是依市场因素而决定。另一具体实施例则包括使用运算码的一特殊组合作为标记,如运算码状态7FH的连续出现。因此,本发明的本质是在于使用一标记序列,其后则为一n位的延伸前置码,可允许程序员于一延伸指令中指定延伸数据模式,而该些模式是无法另由微处理器指令集的既有指令来提供。
(0065)此外,本发明主要是以64位与128位的延伸数据模式来进行描述。然而,这些模式仅仅是用来在现代桌上型/膝上型计算机微处理器所展现的数据模式的脉络下,说明本发明的各个方面。所以本领域技术人员将知道,本发明的范围可以延伸至需要非常大或小的操作数/运算的应用程序,或者具有大小可变的操作数/运算的应用程序,其中一特定操作数/运算的大小是依据每个指令来指定。
(0066)再者,虽然上文是利用微处理器为例来解说本发明及其目的、特征和优点,本领域的技术人员仍可察觉,本发明的范围并不限于微处理器的架构,而可涵盖所有形式的可程序化装置,如信号处理器。工业用控制器(industrial controller)、阵列处理机及其它同类装置。
总之,以上所述者,仅为本发明的较佳实施例而已,当不能以的限定本发明所实施的范围。大凡依本发明权利要求所作的等效变化与修饰,皆应仍属于本发明专利涵盖的范围内。

Claims (18)

1.一种用以延伸一微处理器的数据模式的装置,其特征在于,它包括:
一转译逻辑,用以将一延伸指令转译成对应的微指令,由微处理器执行,其中该延伸指令包括:
一延伸前置码,用以指定对应一指定运算的一操作数的延伸操作数大小,其中该延伸操作数大小不能由一既有指令集加以指定;以及
一延伸前置码标记,用以指出该延伸前置码,其中该延伸前置码标记是原本该既有指令集内另一依据架构所指定的运算码;以及
一延伸执行逻辑,耦接至该转译逻辑,用以接收该对应的微指令,并使用该操作数来执行该指定运算。
2.如权利要求1所述的装置,其特征在于所述的延伸指令还包括该既有指令集的指令项目。
3.如权利要求2所述的装置,其特征在于所述的指令项目指定该微处理器所要执行的该运算,且其中对应该运算的该操作数是提取自/储存至一缓存器,其中该缓存器依据数个操作数大小支持操作数的提取/储存。
4.如权利要求1所述的装置,其特征在于所述的延伸前置码指示该微处理器于执行该指定运算时,取代该操作数的一预设的操作数大小。
5.如权利要求1所述的装置,其特征在于所述的延伸前置码包括:
一延伸操作数大小字段,用以指定该操作数的该延伸操作数大小,其中该延伸操作数大小是该些操作数大小之一。
6.如权利要求1所述的装置,其特征在于所述的转译逻辑包括:
一逸出指令检测逻辑,用于检测该延伸前置码标记;
一指令译码逻辑,用以决定该操作数及所要执行的该运算;以及
一延伸译码逻辑,耦接至该逸出指令检测逻辑与该指令译码逻辑,用以决定该延伸操作数大小,并于该对应微指令内指定该延伸操作数大小。
7.一种扩充一既有微处理器指令集以提供延伸数据模式的机制,其特征在于,它包括:
一延伸指令,组态为指定一操作数的延伸操作数大小,该操作数对应一指定运算,而该延伸指令包括该既有微处理器指令集其中一选取的运算码,其后则接着一n位的延伸前置码,该选取的运算码指出该延伸指令,而该n位的延伸前置码则指出该延伸操作数大小,其中该延伸操作数大小不能另依该既有微处理器指令集加以指定;以及
一转译器,组态为接收该延伸指令,并产生一微指令序列,以指示一微处理器依照该延伸操作数大小,于该操作数上执行该指定运算。
8.如权利要求7所述的机制,其特征在于所述的延伸指令还包括:
其余指令项目,组态为指定该操作数与该指定运算,其中该指定运算的该操作数是提供自/至一延伸操作数缓存器。
9.如权利要求7所述的机制,其特征在于所述的n位的前置码包括:
一数据模式取代字段,组态为指定该延伸操作数大小予该操作数,其中该延伸操作数大小包括数个操作数大小其中之  。
10.如权利要求7所述的机制,其特征在于所述的转译器包括:
一逸出指令检测器,用以检测该延伸指令内的该选取的运算码;
一指令译码器,用以译码该延伸指令的其余部分,以决定该指定运算;以及
一延伸前置码译码器,耦接至该逸出指令检测器及该指令译码器,用以译码该n位的延伸前置码,并于该微指令序列内指定该延伸操作数大小。
11.一种为一既有指令集增添延伸数据模式能力的指令集延伸模块,其特征在于,它包括:
一逸出标记,由一转译逻辑接收,并指出一对应指令的附随部分加以指定的一微处理器所要执行一延伸运算,其中该逸出标记为该既有指令集内的一第一运算码;
一延伸操作数大小指定元,耦接至该逸出标记,且为该附随部分其中之一,用以指定对应该延伸运算的数个数据模式其中之一;以及
一延伸执行逻辑,耦接至该转译逻辑,利用所指定的数据模式执行该延伸运算,其中该既有指令集仅提供既有的数据模式,而未能提供所指定的数据模式。
12.如权利要求11所述的指令集延伸模块,其特征在于所述的附随部分的其余部分包括一第二运算码与选用的数个地址指定元,用以指定该延伸运算与数个操作数,其中该些操作数是依所指定的数据模式加以执行。
13.如权利要求11所述的指令集延伸模块,其特征在于所述的转译逻辑将该逸出标记与该附随部分转译成对应的微指令,该对应的微指令是指示该延伸缓存器逻辑依据所指定的数据模式,于该延伸运算执行时,存取一延伸缓存器,以提取/储存一延伸操作数。
14.如权利要求11所述的指令集延伸模块,其特征在于所述的转译逻辑包括:
一逸出标记检测逻辑,用以检测该逸出标记,并指示该附随部分的转译动作需依据延伸转译常规;以及
一译码逻辑,耦接至该逸出标记检测逻辑,用以依据该既有指令集的常规,执行指令的转译动作,并依据该延伸转译常规执行该对应指令的转译,以依据所指定的数据模式,致能该延伸运算的执行。
15.一种扩充一既有指令集架构的方法,可在一微处理器内程序化地指定一延伸数据模式,该方法包括:
提供一延伸指令,该延伸指令包括一延伸标记及一延伸前置码,其中该延伸标记是该既有指令集架构其中一第一运算码项目;
通过该延伸前置码与该延伸指令的其余部分指定该延伸数据模式与一指定运算,其中该既有指令集架构仅提供指定既有数据模式而非该延伸数据模式的指令;以及
依据该延伸数据模式执行该指定运算。
16.如权利要求15所述的方法,其特征在于所述的指定延伸数据模式的动作包括:首先指定该指定运算,其中该首先指定的动作包括使用该既有指令集架构中一第二运算码项目。
17.如权利要求15所述的方法,其特征在于,还包括:
将该延伸指令转译成微指令,该微指令是指示一延伸执行逻辑依据该延伸数据模式执行该延伸运算。
18.如权利要求17所述的方法,其特征在于所述的转译延伸指令的动作包括:
于一转译逻辑内,检测该延伸标记;以及
依照延伸转译规则译码该延伸前置码与该延伸指令的其余部分,以取代该延伸运算的一预设数据模式。
CN 03103038 2002-08-22 2003-01-28 延伸微处理器数据模式的装置及方法 Expired - Lifetime CN1218243C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/227,008 2002-08-22
US10/227,008 US7395412B2 (en) 2002-03-08 2002-08-22 Apparatus and method for extending data modes in a microprocessor

Publications (2)

Publication Number Publication Date
CN1431584A true CN1431584A (zh) 2003-07-23
CN1218243C CN1218243C (zh) 2005-09-07

Family

ID=22851377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 03103038 Expired - Lifetime CN1218243C (zh) 2002-08-22 2003-01-28 延伸微处理器数据模式的装置及方法

Country Status (2)

Country Link
CN (1) CN1218243C (zh)
TW (1) TWI282066B (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1332526C (zh) * 2003-09-29 2007-08-15 智慧第一公司 微处理器区块密码编译方法与装置
US7302551B2 (en) 2002-04-02 2007-11-27 Ip-First, Llc Suppression of store checking
US7315921B2 (en) 2002-02-19 2008-01-01 Ip-First, Llc Apparatus and method for selective memory attribute control
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7328328B2 (en) 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
CN100377075C (zh) * 2005-03-18 2008-03-26 威盛电子股份有限公司 使浮点格式实现指令级规格的设备及方法
CN100383728C (zh) * 2005-08-25 2008-04-23 应广科技股份有限公司 可执行等待及延后指令的程序地址运算器架构
US7373483B2 (en) 2002-04-02 2008-05-13 Ip-First, Llc Mechanism for extending the number of registers in a microprocessor
US7380109B2 (en) 2002-04-15 2008-05-27 Ip-First, Llc Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor
US7380103B2 (en) 2002-04-02 2008-05-27 Ip-First, Llc Apparatus and method for selective control of results write back
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7395412B2 (en) 2002-03-08 2008-07-01 Ip-First, Llc Apparatus and method for extending data modes in a microprocessor
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7543134B2 (en) 2002-02-12 2009-06-02 Ip-First, Llc Apparatus and method for extending a microprocessor instruction set
US7546446B2 (en) 2002-03-08 2009-06-09 Ip-First, Llc Selective interrupt suppression
CN1661958B (zh) * 2004-03-15 2010-04-28 威盛电子股份有限公司 区块密码功能的微处理器及方法
CN101286117B (zh) * 2007-07-24 2010-06-02 威盛电子股份有限公司 微码修补扩充装置、扩充微码修补机制容量的装置及其方法
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543134B2 (en) 2002-02-12 2009-06-02 Ip-First, Llc Apparatus and method for extending a microprocessor instruction set
US7529912B2 (en) 2002-02-12 2009-05-05 Via Technologies, Inc. Apparatus and method for instruction-level specification of floating point format
US7647479B2 (en) 2002-02-19 2010-01-12 Ip First, Llc Non-temporal memory reference control mechanism
US7315921B2 (en) 2002-02-19 2008-01-01 Ip-First, Llc Apparatus and method for selective memory attribute control
US7328328B2 (en) 2002-02-19 2008-02-05 Ip-First, Llc Non-temporal memory reference control mechanism
US7395412B2 (en) 2002-03-08 2008-07-01 Ip-First, Llc Apparatus and method for extending data modes in a microprocessor
US7546446B2 (en) 2002-03-08 2009-06-09 Ip-First, Llc Selective interrupt suppression
US7373483B2 (en) 2002-04-02 2008-05-13 Ip-First, Llc Mechanism for extending the number of registers in a microprocessor
US7380103B2 (en) 2002-04-02 2008-05-27 Ip-First, Llc Apparatus and method for selective control of results write back
US7647478B2 (en) 2002-04-02 2010-01-12 Ip First, Llc Suppression of store checking
US7302551B2 (en) 2002-04-02 2007-11-27 Ip-First, Llc Suppression of store checking
US7380109B2 (en) 2002-04-15 2008-05-27 Ip-First, Llc Apparatus and method for providing extended address modes in an existing instruction set for a microprocessor
US7519833B2 (en) 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7539876B2 (en) 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7529367B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7532722B2 (en) 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7536560B2 (en) 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7321910B2 (en) 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7392400B2 (en) 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7502943B2 (en) 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
CN1332526C (zh) * 2003-09-29 2007-08-15 智慧第一公司 微处理器区块密码编译方法与装置
CN1661958B (zh) * 2004-03-15 2010-04-28 威盛电子股份有限公司 区块密码功能的微处理器及方法
CN100377075C (zh) * 2005-03-18 2008-03-26 威盛电子股份有限公司 使浮点格式实现指令级规格的设备及方法
CN100383728C (zh) * 2005-08-25 2008-04-23 应广科技股份有限公司 可执行等待及延后指令的程序地址运算器架构
CN101286117B (zh) * 2007-07-24 2010-06-02 威盛电子股份有限公司 微码修补扩充装置、扩充微码修补机制容量的装置及其方法

Also Published As

Publication number Publication date
CN1218243C (zh) 2005-09-07
TWI282066B (en) 2007-06-01

Similar Documents

Publication Publication Date Title
CN1431584A (zh) 延伸微处理器数据模式的装置及方法
CN1088214C (zh) 用多指令集处理数据的器件和方法
CN1089460C (zh) 多指令集的数据处理
US7529912B2 (en) Apparatus and method for instruction-level specification of floating point format
EP1351131B1 (en) Mechanism for extending the number of registers in a microprocessor
EP1335279B1 (en) Apparatus and method for extending a microprocessor instruction set
CN1243304C (zh) 用以在扩充寄存器模式下存取扩充寄存器集的中央处理单元及其方法
USRE40509E1 (en) Methods and apparatus for abbreviated instruction sets adaptable to configurable processor architecture
US7647478B2 (en) Suppression of store checking
CN1629801A (zh) 产生早期指令结果的管线式微处理器、装置以及方法
EP1359502B1 (en) Apparatus and method for address extension in a microprocessor
CN1211731C (zh) 延伸微处理器地址模式的装置及方法
CN1212566C (zh) 执行条件指令的装置及方法
CN1308813C (zh) 非临时存储器参量的控制装置、结构和方法
CN1237441C (zh) 选择性控制存储器属性的装置及方法
CN1271511C (zh) 选择性地中断抑制的装置及其方法
CN1414465A (zh) 选择性地控制结果回写的装置及方法
CN1414464A (zh) 增加微处理器的缓存器数量的机制
CN1414469A (zh) 选择性地控制条件码回写的装置及方法
JP2004302827A (ja) マイクロコントローラ
CN1453702A (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
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20050907