CN1265263C - 具有低功率译码电路的处理器 - Google Patents

具有低功率译码电路的处理器 Download PDF

Info

Publication number
CN1265263C
CN1265263C CN200310117338.7A CN200310117338A CN1265263C CN 1265263 C CN1265263 C CN 1265263C CN 200310117338 A CN200310117338 A CN 200310117338A CN 1265263 C CN1265263 C CN 1265263C
Authority
CN
China
Prior art keywords
instruction
decoding unit
processor
code translator
decoding
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.)
Expired - Lifetime
Application number
CN200310117338.7A
Other languages
English (en)
Other versions
CN1514329A (zh
Inventor
查里·谢勒
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.)
Via Technologies Inc
Original Assignee
Via Technologies 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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1514329A publication Critical patent/CN1514329A/zh
Application granted granted Critical
Publication of CN1265263C publication Critical patent/CN1265263C/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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units

Abstract

本发明涉及一种具有低功率译码电路的处理器,于本发明之一实施例中,包含一可译码第一类型指令的第一译码器,一可译码第二类型指令的第二译码器,及一可处理至少一种特殊类型指令的特殊指令部件,此特殊类型指令是指第一及译码部件第二译码部件无法直接译码而造成执行单元无法执行的指令。于另一实施例中为一相关的处理器指令译码方法。

Description

具有低功率译码电路的处理器
技术领域
本发明涉及一种处理器,特别是有关于一种具有低功率译码电路的处理器及其译码方法。
背景技术
处理器(例如:微处理器)是一应用广泛且众所周知的组件,其应用范围自台式计算机到可携式电子装置,如行动电话和个人数字助理(PDA)。有些应用领域的处理器具有强大的效能(如高阶计算机工作站),有些处理器的设计则较为简单,可用以供应低阶、较不昂贵的产品使用。
对于处理器的性能要求而言,大致可分为处理速度与耗电量两方面。一般来说,高性能的处理器处理速度快,设计复杂且耗电量较大;而低性能的处理器则刚好相反。高耗电量常常导致高温和缩短电池使用时间的结果(此是对于使用电池作为电力来源的装置而言)。可携式电子装置的需求大幅成长的结果,已使得对处理器的要求逐渐趋向于低耗电量,且同时又需保持一定水准的处理速度。
一种传统降低组件耗电量的方法,是使用低耗电量运作模式(或称为休眠状态),其意指当组件没有被使用时,只能以极少量电力维持基本运作的操作方式。即便如此,对电子组件于使用时也可拥有低电力消耗的要求仍是有增无减,此种要求则需靠设计更有效率的工作组件来达成。
很多电子组件皆需消耗电力,其中之一即为处理器。事实上,处理器本身又具有许多不同会消耗电力的组件,如译码部件。处理器中的译码部件是将被编码的指令(encoded instruction)加以译码以便执行的组件。图1为公知的处理器译码部件的示意方块图。
以整体观之,图1中指令取出/执行部分10包括取指部件(fetchlogic)12及译码器14,其中,取指部件12是用以取出编码指令,而译码器14则是用以将编码指令译码成可用于控制及执行的讯号。以此观之,译码器14的输出15(讯号线)是用以作为处理器执行单元(executionunit)内的其它组件(图上并无示出)的输入,以执行编码指令所指定的功能运作。此过程是众所周知的基本概念,故不再赘述。
传统上对于需处理不同类型的指令集或是接收非译码器14可辨识的指令集的状况,处理方式是引入一转译部件(translation logic)16以转译此指令成译码器14所能辨识的指令。当然,在处理连续指令的同时,即需额外的脉冲进行译码及执行的动作,其中,图1即为一施行此工作的电路实例。
如图1所示,多工器(multiplexor)18有时会用于将取指部件12所取出的指令或是转译部件16所转译完成的指令选择性地输入至译码器14中。此外,控制部件20是用以筛选(select)欲输入多工器18及译码器14的指令;一般来说,控制组件20会评估取指部件12所输出的指令并判断其是否可为译码器14所译码。若为是,则控制组件20会命令多工器18直接将取指部件12的输出指令输入至译码器14中。若为否,则控制组件20会命令多工器18将转译部件16的输出指令输入至译码器14中。当然,过程中还有许多其它的细节,但在此不予以探讨,因熟悉本领域的技术人员自可了解图1中所示的电路及其相关细节。
如图1所示的电路有其缺点:此种电路的复杂性及耗电性皆过高;可以理解的是,译码器14与转译部件16不会同时使用复杂的设计:若译码器14为复杂的设计以接受许多不同类型的指令,则当输入译码器14的指令变多时,译码器14的负载会变大,所须消耗的电力也随之增加。此负载变大及消耗电力增加的状况若是因某些很少使用的指令所造成,则明显不合节省电力的效益。
反之,若译码器14为简单的设计以接受较少类型的指令,则转译部件16中就必须用引入额外的部件以处理其它类型的指令,并且当转译部件16作动(active)进行转译工作时,译码器14同时也在处理转译部件16所输出的转译完成的指令。两者同时作用的结果将增加电力的消耗。
因此,如何于处理器中设计更进步且有效率的译码部件,以使得电力使用效率得以提高,是当前努力的目标。
发明内容
鉴于上述的发明背景,为了满足产业对传统处理器具更有效率的译码部件的要求,本发明提供一种新的、具有低功率译码电路的处理器,可用以解决上述传统电路未能达成的标的。
本发明之一目的是提供一种改良的译码部件装置及译码方法。本发明是将译码部件的一部分译码工作交由软件执行以减低译码部件于任一时间的总工作负载量,进而降低译码部件的耗电量,并据此达到低功率的目的。通过低功率目的的达成,本发明所提供的译码部件对于处理器,特别是可携式电子装置内的处理器而言,将具有更佳的应用。
根据以上所述的目的,本发明揭示了一种具有低功率译码电路的处理器,其包含:
用以取出编码指令的取指部件;
第一译码部件,该第一译码部件是用以译码复数个包含于第一类型指令集内的编码指令,且该第一译码部件的输入是该取指部件所输出的编码指令;
第二译码部件,该第二译码部件是用以译码复数个包含于第二类型指令集内的编码指令,且该第二译码部件的输入是该取指部件所输出的编码指令;
特殊指令部件,该特殊指令部件是用以与该第二译码部件配合以处理至少一种特殊指令,其中,该特殊指令是指包含于第二类型指令集内但该第二译码部件无法直接译码而造成处理器内的执行单元无法执行的指令;以及
更包含一控制部件,该控制部件是用以选择性控制该第一及第二译码部件,使该第一译码部件进行译码时,该第二译码部件维持休眠状态,且该第二译码部件进行译码时,该第一译码部件维持休眠状态。
该特殊指令部件包含一判定部件,该判定部件是用以判定内存区域的开始地址,其中该内存区域存有可执行特殊指令的例程。
该特殊指令部件包含一呼叫部件,该呼叫部件是用以执行系统呼叫至该内存区域地址。
更包含另一特殊指令部件,该另一特殊指令部件是用以与该第一译码部件配合,以处理至少一种包含于第一类型指令集内但该第一译码部件无法直接译码而造成处理器内的执行单元无法执行的指令。
该第一与第二类型指令集内的所有指令皆不相同。
更包含一执行部件,该执行部件是用以执行该第一及第二译码部件所译码完成的指令。
该处理器可应用于一可携式电子装置。
该控制部件会对该取指部件所输出的编码指令做出响应,且该控制部件是设计以确保该第一及第二译码部件于任一时间内只有一个处于作动状态。
更包含一第三译码部件,该第三译码部件可译码复数个包含于第三类型指令集内的编码指令,且该第三译码部件的输入是该取指部件所输出的编码指令。
该控制部件更设计以选择性控制该第一、第二及第三译码部件,使该第一、第二及第三译码部件于任一时间内只有一个处于作动状态。
该控制部件更设计以确保当该第一、第二及第三译码部件其中之一处于作动状态时,其余的译码部件维持休眠状态。
一种具有低功率译码电路的处理器,其包含:
复数个译码器,其中每一个译码器所设计以译码的指令与其余译码器所设计以译码的指令均类型不同且不重叠;以及
特殊指令部件,该特殊指令部件与至少一个该复数个译码器配合,以处理至少一种特殊指令,其中,该至少一种特殊指令是指无法于处理器内直接被译码而造成处理器内的执行单元无法执行的指令。
更包含一控制部件,该控制部件是设计以确保该复数个译码器于任一时间内只有一个处于作动状态,并确保该唯一作动的译码器处于作动状态时,其余译码器维持休眠状态。
更包含一用以执行已译码的指令的执行部件。
该处理器可应用于一可携式电子装置。
一种具有低功率译码电路的处理器,其包含:
可译码复数个第一类型指令的第一译码器;
可译码复数个第二类型指令的第二译码器;与
特殊指令部件,该特殊指令部件是用以处理至少一种特殊指令,其中该至少一种特殊指令是指该第一及第二译码器无法直接译码而造成处理器内的执行单位无法执行的指令。
更包含一控制部件,该控制部件是设计以选择性控制该第一及第二译码器,使该第一译码器进行译码动作时,该第二译码器维持休眠状态。
该控制部件更设计以选择性控制该第一及第二译码器,使该第二译码器进行译码动作时,该第一译码器维持休眠状态。
本发明还进一步提出了一种用于处理器的指令译码方法,该译码方法包含:
判断所取出的指令为第一或第二类型的指令;
该所取出的指令为第一类型的指令时,则令第一译码器加以译码;
该所取出的指令为第二类型的指令且可被第二译码器直接译码时,则令第二译码器进行译码;
该所取出的指令为第二类型的指令且不可被第二译码器直接译码时,则通过系统呼叫至存放于内存区域的软件以执行该指令,该指令的译码与该第一、第二类型的指令的译码是平行的;以及
该所取出的指令被判断为第二类型的指令且由该第二译码器进行译码时,该第一译码器维持休眠状态;该所取出的指令被判断为第一类型的指令且由该第一译码器进行译码时,该第二译码器维持休眠状态。
该判断步骤更包含判断该所取出的指令为第一、第二或第三类型的指令。
一种用于处理器的指令译码方法,该译码方法包含:
判断所取出的指令是否可被处理器内的译码器直接译码;
该所取出的指令可被直接译码时,则使用译码器加以译码;以及
该所取出的指令不可被直接译码时,则通过系统呼叫至存放于内存区域的软件以进行该指令的执行工作,该指令的译码与译码器的直接译码是平行的,并且处理器内的译码器于任一时间内只有一个处于作动状态,并确保该唯一作动的译码器处于作动状态时,其余译码器维持休眠状态。
在本发明之一实施例中,其包含一处理第一类型指令的第一译码器、一处理第二类型指令的第二译码器,以及一处理至少一种特殊类型指令的特殊指令部件,其中此特殊类型指令是指第一及第二译码器无法直接译码而造成执行单元无法执行的指令。
在本发明的另一实施例中,所揭示的一指令译码方法。此方法首先判断所取出的指令能不能由处理器内的译码器直接译码,若为是,则指令将直接被译码并执行;若为否,则此译码方法会寻找内存上存有执行此指令功能的软件例程(routine)的地址,并通过执行系统呼叫或其它适当方式,令执行单元通过此例程进行指令执行的工作。
附图说明
附图所示为本发明的各种装置构造或方法流程图,将配合说明以详细解释本发明的原理。在附图中:
图1为先前技艺的处理器译码部件的示意方块图;
图2为根据本发明之一实施例所建构的可携式电子装置示意方块图;
图3为根据本发明的另一实施例所建构的可携式电子装置示意方块图;
图4为本发明关于译码部件部分之一实施例的特性示意方块图;
图5为本发明关于译码部件部分的另一实施例的示意方块图;
图6为根据本发明之一实施例所建构的执行译码操作的实施方法及其步骤的说明流程图;
图7为根据本发明的另一实施例所建构的执行译码操作的实施方法及其步骤的说明流程图;
图8为根据本发明的再一实施例所建构的执行译码操作的实施方法及其步骤的说明流程图;
图9为施行图8所示方法之一实施例的示意方块图;
图10为图9中的第二译码部件如何令特殊指令部件执行系统呼叫至指定的内存地址的示意方块图;
图11为本发明一施行译码操作的实施例的施行方法的步骤说明流程图;
图12为图11所示方法之一实施例的示意方块图;
图13为本发明施行译码操作的另一实施例的施行方法的步骤说明流程图;
图14为图13所示方法之一实施例的示意方块图;与
图15为图13所示方法之另一实施例的示意方块图。
【图号说明】
10、指令取出/执行部分                12、取指部件
14、译码器                           15、讯号线
16、转译部件                         18、多工器
20、控制部件                         100、可携式电子装置
110、处理器                          112、取指部件
114、第一译码部件                    115、讯号总线
116、第二译码部件                    117、执行部件
120、控制部件                        121、控制讯号
122、控制讯号                            125、或门
128、多工器                              129、多工器
130、使用者接口                          140、显示装置
162、第一译码部件                        164、第二译码部件
166、第N译码部件                         170、控制部件
171、控制讯号                            172、控制讯号
173、控制讯号                            182、下拉电阻
184、下拉电阻
210、取指部件自内存取出一编码指令
212、判断编码指令为第一或第二类型的指令
214、将编码指令传送至第一译码部件并进行译码
216、将编码指令传送至第二译码部件并进行译码
218、将已译码指令传送至执行部件并执行
310、取指部件自内存取出一编码指令
312、判断编码指令为第一、第二或是其它类型的指令
314、将编码指令传送至第一译码部件并进行译码
316、将编码指令传送至第二译码部件并进行译码
318、将编码指令传送至第N译码部件并进行译码
320、将已译码指令传送至执行部件并执行
416、第二译码部件直接完成译码
418、将已译码指令传送至执行部件并执行
452、判断编码指令是否可被第二译码部件直接译码
454、判定存有执行例程的内存地址
456、执行系统呼叫至所判定的内存地址
464、第二译码部件
466、特殊指令部件
467、查阅表
491、第二译码部件的输出
490、执行系统呼叫至所判定的内存地址部件
512、判断编码指令为第一、第二或是无法辩识的指令
554、判定存有执行例程的内存地址
556、执行系统呼叫至所判定的内存地址
566、特殊指令部件
567、查阅表
570、控制部件
573、控制讯号
610、取指部件自内存取出一编码指令
612、判断编码指令是否可被直接译码
616、直接译码指令
618、执行已译码指令
654、判定存有执行例程的内存开始地址
656、执行系统呼叫至所判定的内存开始地址
662、译码部件
666、特殊指令部件
667、查阅表
670、控制部件
672、控制讯号
762、译码部件
766、特殊指令部件
767、查阅表
具体实施方式
本发明在此所探讨的方向为一种具有低功率译码电路的处理器及译码方法。为了能彻底地了解本发明,将在下列的描述中提出详尽的结构组件或步骤。显然地,本发明的施行并未限定于熟习处理器的技艺者所熟习的特殊细节;另一方面,众所周知的组件并未特别详细描述,以避免造成本发明不必要的限制。本发明的较佳实施例会详细描述如下,然而除了这些详细描述之外,本发明还可广泛地施行在其它的实施例中,且本发明的范围不受限定,其以专利范围为准。
如前所述,创新性的处理器译码部件及译码方法包含有很多施行方式,如同本发明之一施行方式,译码部件中包含多个译码器,其中每一译码器都是特别设计以直接译码(意即于硬件内完成译码工作)包含于一指令集内的所有指令。此一施行方式的实施例于图2至图7中说明。
如同本发明的另一施行方式,译码部件中包含多个译码器,其中一个或一个以上的译码器是设计以直接译码大部分但非全部的包含于一指令集内的所有指令。对于无法直接译码的指令,则通过软件来加以执行。此施行方式的实施例中,译码部件会执行系统呼叫至一内存区域中的某地址,其内存有执行无法直接译码(辨识)指令的软件,以进行指令的执行。如同本发明另一种施行方式,译码部件包含单一的译码器,其中此译码器是设计以直接译码大部分但非全部的包含于一指令集内的所有指令,对于无法直接译码的指令,则由译码部件经由软件来加以执行。此一施行方式的实施例于图8至图14中说明。
参阅图2所示,其为一可携式电子装置100,其包含一根据本发明之一实施例所建构的处理器110,此类电子装置需求的急速成长已是众所周知。大部分此类电子装置是以电池为电源,并包含一使用者接口130(如键盘)及显示装置140(如一平面显示器)。许多电子装置中的显示装置140包含一触感式(touch-sensitive)屏幕,可让使用者由其上直接输入资料。使用者接口130、显示装置140及电子装置100上的其它公知组件,或非本发明的相关部分,于此不再赘述。
本发明主要提供一用于处理器中,可处理多类型的指令集的译码部件电路。根据本发明之一实施例所建构的一处理器110,其包含传统的用以取出编码指令(encoded instruction)的取指部件(fetchlogic)112,及用以执行编码指令所指定的功能运作的执行部件(execution logic)117。此两种组件已为公知组件,故不再赘述。
如图2所示的实施例,处理器110提供可处理两种不同类型指令集的译码部件,举例来说,此译码部件可处理32位及16位的指令集。多重指令集的使用常是为了程序设计时的弹性、升级软件的兼容性(accommodation of legacy software),或是其它的理由。一般来说,32位的指令集可提供较强大或较强健的程序代码及程序设计兼容性;16位的指令集适用于较紧凑简洁、且内存需求较少的程序代码。如本领域的技术人员所能理解,其它有关32位及16位指令集于使用上的取舍也是同样适用。
第一译码部件114及第二译码部件116分别负责译码包含于第一类型指令集及第二类型指令集内的指令;取指部件112的输出是直接被输入至第一及第二译码部件。此实施例重点为:控制部件120通过控制讯号121及122以控制译码部件114及116,以令其中一个译码部件作动时,另一个译码部件维持休眠(inactive)状态。此外,与第一图中所示的先前技艺不同的是,使用多重译码器于执行译码动作前,可省去将指令自一指令集类型转译成其它指令集类型的步骤。以译码包含于第二类型的指令集内的指令为例,因在执行译码动作前不须先将指令转译成第一指令集类型以便第一译码部件114识别,故可提升整体呈现的译码速度。
同时,如图2所示,取指部件112和译码部件114及116之间讯号信道频宽(signal path width)为″n″位,其中,n是为一可变数字,其通常是2的级数。输入至控制部件120的讯号也是经由相同频宽的讯号信道;控制部件120的作用是判断所取出的编码指令应由译码部件第一译码部件114或是译码部件第二译码部件116进行译码。
另一方面,″m″讯号线是译码部件114及116的输出。一般来说,m是一个与n相异的整数,用以代表执行逻辑117在执行编码指令时所需的讯号线及控制线号码。此讯号线及控制线号码是一执行特征,取决于执行部件117的电路形式。本实施例中,自第一译码部件114及第二译码部件116输出的讯号有一比一的对应关系(1-to-1correspondence),且可被一或门(OR logic)125所合并。本实施例中,处于休眠状态的译码部件114或116所输出的讯号为逻辑零(logiczero),因此实际上或门(OR logic)125只将作动的译码部件114或116所输出的讯号经由讯号总线(signal bus)115输入至执行部件117中。
本领域的技术人员可了解,图2所示实施例的概念可以许多不同的方式加以施行,而本发明则不限于任何特定的施行方式。一施行方式将配合图4加以说明;另一施行方式则将配合图5加以说明。然而,应注意的是其它施行方式的实施例也是有可能的。
参阅图3所示,其是为本发明另一实施例的示意方块图。图中取指部件112、执行部件117及或门125与图2中所示相同,于此不再赘述。图3与图2所示实施例主要不同之处在于图3所示实施例中,其引入一可译码第一及第二类型以外的其它类型指令集的译码部件组件。图3中的译码组件的功能与图2所描述相似,并分别编号为第一译码部件162、第二译码部件164及第N译码部件166。图3所示实施例可较图2所示实施例多处理第一及第二类型以外的其它类型的指令。举例来说,图3所示实施例可译码32位的指令、16位的指令及Java指令。由于Java为网际网络上所常用的语言,故此实施例对网络应用组件的设计特别有用。
此外,控制部件170分别输出171、172及173三种控制讯号以控制译码组件162、164及166。如图3所述,控制部件170会判断取指部件112所输出的编码指令是属于第一译码部件162、第二译码部件164或第N译码部件166所负责的指令类型。控制部件170控制这些译码部件,以确保没有作动的译码组件维持休眠状态。
参阅图4所示,图4为图2所述的选择性控制译码部件组件114及116的施行方式的示意方块图。同样的施行方式也适用于图3中的译码组件162、164及166。于图4中,控制部件120输出控制讯号121及122以控制多工器128及129中的选择部件(select logic),并据以令多工器128及129将取指部件112所输出的编码指令传送到相对应的译码部件114及116中。多工器128及129会对译码部件输入无运作(no op)讯号,其中此无运作讯号是发出此讯号的多工器所对应的译码部件所无法识别,并此无运作讯号可令此译码部件进入休眠状态。在此,可应用CMOS技术以使得处于休眠状态的译码部件只消耗极少量的电力。
在指令译码的过程中,控制部件120会确保取指部件112所输出的指令不会同时通过多工器128及129,也就是在任一时间至少会有一个无运作(no op)讯号被传送到某一多工器及其所对应的译码部件上。甚至,在某些时间(例如:闲置状态;idle status),多工器128及129会同时发出无运作(no op)讯号,也即译码部件114及116同时进入休眠状态,并据此达到省电的目的。
参阅图5所示,其为本发明另一实施例的示意方块图。如图4所述,达成处理器省电目的之一方式是在于利用CMOS逻辑于某些工作状态时耗电量极低的特性;相对地,图5为使用非CMOS逻辑的实施例,其中控制讯号(本图标中也称为致能讯号(enable signal))121及122是用以使得译码部件114及116两者之一能选择性地运作,且另一失效(disable),并令失效者进入休眠状态。若于此作用过程中,译码部件组件114、116浮接(float)或变成三态(tri state)而造成系统不稳,则下拉电阻(pull down resistor)182及184会接到译码部件114或116所输出的讯号信道上。下拉电阻182及184为高阻抗电阻(highimpedance resistor),可限制电流的流过,因此也可限制自电源供应处流出的电流。
在叙述过本发明几个实施例的建构方式与特色之后,参阅图6所示,其为本发明之一实施例以整体观之的实施方法流程图。步骤210是为取出取指部件自内存取出一编码指令,接着,步骤212是为判断所取出的编码指令为第一或第二类型的指令。步骤214及216是为根据判断的结果将所取出的编码指令传送至相对应的译码部件进行译码动作。最后,步骤218是为将译码后的指令传送至执行单元进行执行动作。
参阅图7所示,其为本发明另一实施例以整体观之的实施方法流程图。步骤310是为取指部件自内存取出一编码指令,接着,步骤312是为判断所取出的编码指令为第一类型、第二类型或是其它类型的指令。步骤314、316及318是为根据判断的结果将所取出的编码指令传送至相对应的译码部件以进行译码动作。最后,步骤320是为将译码后的指令传送至执行单元进行执行动作。
至此已叙述本发明的实施例中,译码器能直接译码包含于一指令集内所有指令者的特性。然而,有时译码电路的设计会过于复杂(由于成本或其它原因),则原本用以处理一或多个指令集的译码部件会不再被设计成能直接译码包含于指令集内的所有指令,此时,对于译码部件无法直接译码的特殊指令,将改由译码部件指引处理器(透过执行一系统呼叫或其它方法)至内存中的某一地址通过软件以进行译码,其中,上述的地址存有执行此特殊指令的软件例程(softwareroutine)。
配合图1至图7所叙述的实施例,其已介绍本发明所提出的译码部件之一施行方式:使用多个专用(dedicated)的译码器直接译码所取出的包含于不同指令集的编码指令,且在任一时间下,通过控制部件的控制使该多个译码器中只有一个处于作动状态。参阅图8至图14所示,其为本发明所提出的译码部件电路的另一施行方式:处理无法由硬件或译码电路直接进行译码的特殊指令的状况。参阅图8所示,其为一类似图6但有部分修改的流程图。图8中,整个指令处理流程的开始步骤是为步骤210,此步骤210是为取指部件取出编码指令,接着,步骤212是为译码部件判断所取出的编码指令属第一或第二类型的指令。如判断结果是属于第二类型,则进行步骤452,步骤452是为译码部件第二译码部件判断此所取出的编码指令是否可被第二译码部件直接译码。于此过程而言,译码部件的设计可能会因为需辨识包含于某一指令集内的所有指令而变得过分复杂,此复杂设计的较高成本若是因某些不常使用的指令集所造成,则显然不合效益。因此,一般而言,译码部件的设计不会将不常使用的指令集于硬件内直接译码,而是通过软件或其它方法来执行。
图8中,若所取出的编码指令为第二类型指令,且第二译码部件判断所取出的编码指令可被第二译码部件直接译码,则进行步骤416,步骤416是令第二译码部件直接完成译码动作,如图6所述。接着,进行步骤418以便于将译码完成的指令传送至执行单元执行。相对地,若判断结果为所取出的编码指令不可被第二译码部件直接译码,则进行步骤454,由第二译码部件指定一内存区域的地址,以令可执行此指令的软件例程进行执行动作,其中,较佳的方式是以第一或第二指令译码器(instruction decoder)可直接译码的指令写成此例程。内存区域地址指定后,进行步骤456,以便于处理器执行一系统呼叫至此内存区域地址并执行所取出编码指令的功能。软件例程执行指令的过程中,在执行完一上述的特殊指令后,会从内存区域地址末端传送一跳回(return)指令以引导处理器的程序计数器自依序取出到的下一个编码指令继续执行的动作。
参阅图9所示,其是为图8所示实施例的特征示意方块图。图9与图2所示的处理器110相似,故类似的组件是以相同号码表示,并于此不再赘述。图9与图2主要不同之处为,图9中的第二译码部件464能处理包含于第二类型指令集中但第二译码部件无法直接译码的指令。具体来说,图9中的第二译码部件464含有一特殊指令部件466,其能判定(identify)某段内存区域的开始地址,其中,此段内存存有软件以执行第二译码部件464无法直接译码的指令。其实施方式是为:特殊指令部件466含有一查阅表467,其能提供第二译码部件464无法直接译码的指令相对应的输出值,当然,查阅表467也能提供所有包括第二译码部件464可直接或不可直接译码的指令的输出值。
如上所述,译码部件的输出中包含译码后的数据以及用以执行该译码后资料的控制讯号。如图10所示,第二译码部件464的输出491包含两个部分:第一部分为32位的立即资料(immediate data);剩下的位或讯号则由输出中的其它讯号线传送。这些输出讯号会被传送至处理器内的执行单元,其中执行单元包含一部件490,其可执行系统呼叫至一指定的内存地址。因此,实际上在执行特殊指令时,第二译码部件464会输出一32位的字段(field)以指定一实时地址(immediateaddress),让处理器能另外利用一指令处理例程(instruction handlingroutine)来处理特殊指令;于输出中,剩下的其它讯号则会指出上述的32位实时数据字段中所运送的资料需要一特别的内存地址来执行。因此,译码部件的输出实际上是用以运作处理器内的组件以执行系统呼叫至执行特殊指令的相关内存地址上,而非直接于处理器内的执行单元中进行执行工作。
回到图9,查阅表467中包含N个包含于第二类型指令集内且第二译码部件可辨识的指令及其相对应的译码值,这些译码值是为位状态(bit status)或第二译码部件464的输出值的数字表示。同样地,查阅表467中也包含M个第二译码部件464无法辨识且必须由储存于内存中的软件例程来处理的特殊指令。在查阅表467中的开始地址(ADDR.1-ADDR.M)即是用以指定这些软件例程的地址。当然,在符合上述的本发明精神与范围的前提下,其它的部件或运作机制也可同时被用以处理特殊指令。
此外,在不违背本发明的精神与范围的前提下,第一译码部件114也可修改成含有类似466的特殊指令部件并用以执行包含于第一类型指令集中但第一译码部件114无法直接译码的特殊指令。此外,本发明的实施方式也可应用于处理器内含有超过两个以上的译码器而可处理两种以上类型指令集的情况,如上所述的使用三个译码器而可分别处理32位的指令集、16位的指令集与Java指令集的实施例。本发明的另一实施例可取出250个Java指令,其中,246个Java指令可被直接译码,剩下的10个Java指令则必须通过系统呼叫所指定的软件例程来执行。
参阅图11所示,其为本发明的另一实施例。图11所示是为与图7类似但稍微不同的特殊指令处理方法的流程图。在图7中,步骤312是为判断取指部件所取出的指令为第一、第二或其它类型的指令,而图11中,步骤512则是判断取指部件所取出的指令为第一、第二或是无法辨识的指令,其中,此无法辨识的指令是指无法被第一或第二译码部件所辨识(非包含第一或第二类型指令集内),也即,图11所示的实施例可将无法辨识的指令另外集中处理。如图11所示,若判断结果为所取出的指令是一特殊指令(上述的非第一或第二类型的无法辨识的指令),则进行步骤554,步骤554是为指定一内存区域的开始地址以进行指令执行工作。接着,进行步骤556,步骤556是为执行一系统呼叫至所指定的内存地址。随后,处理器开始执行内存地址上用以处理特殊指令的程序直到执行完程序中之一跳回(return)指令(或是其它适当的结束指令;ending instruction)。接着,执行程序会自取指部件所取出的下一编码指令继续(resume)下一笔执行工作。参阅图12所示,其是为类似图9所示的示意方块图,其内容为图11所示的本发明的可能实施例;有关图12中组成组件的叙述已于图3及图9提过,于此不再赘述。图12所示实施例中最重要的是用以判定存有执行特殊指令的软件的内存开始地址以执行特殊指令的部件566是单独存在于第一、第二译码部件162及164之外,以使特殊指令的处理不用配合译码器而是另外单独进行。类似图9中查阅表467的查阅表567是用以帮助执行程序的进行。
图12中另有一控制部件570,此部件选择性控制第一译码部件162、第二译码部件164以及用以处理非定义(undefined)的特殊指令的逻辑566,使此三者在任一时间内只有一个处于作动状态以达到处理器省电的目的。此运作方式与前面图2至图7所示的实施例内容相同。
参阅图13所示,其为一步骤流程图,说明另一根据本发明所建构的指令译码方法。其内容是为一特殊指令处理过程,其中,此特殊指令处理过程是用于仅处理单一指令集内的指令的处理器。如前所述的实施例,处理程序始于取指部件取出一编码指令。接着,步骤612是为判断所取出的指令是否可被处理器内的译码部件直接译码:若为是,则进行步骤616,步骤616是为将所取出的指令直接译码,随后进行步骤618,步骤618是为执行译码后的指令;若为否,则进行步骤654,步骤654是为判定可执行所取出的特殊指令的软件例程于内存存放处的开始地址,随后进行步骤656,步骤656是为处理器执行一系统呼叫至所判定的内存地址。
参阅图14及图15所示,其为图13所述方法的另两种实施例。图14中,用以判定可执行特殊指令的软件于内存存放处的开始地址的部件666,是于译码部件662之外单独存在。控制部件670传送控制讯号171及672以控制译码部件662及部件666,使此两部件组件于任一时间内只有一个处于作动状态,以达到处理器省电的目的。图15中,用以判定可执行特殊指令的软件于内存存放处的开始地址的部件766是整合于译码部件762内。与此实施例相同的施行方式已于图9中叙述,于此不再赘述。
所有本发明的修改及变化皆包含于本发明的权利请求项中所定义的合理、合法的权利与其所延伸的名称的范围内。
如上所述,本发明是将处理器内译码部件之一部分译码工作交由软件执行以减低译码部件于任一时间的总工作负载量,进而降低译码部件的耗电量以达到低功率的目的。
显然地,根据上述实施例中的描述,本发明可能有许多的修正与差异。因此需要在其附加的权利要求项的范围内加以理解,除了上述的详细描述外,本发明还可以广泛地在其它的实施例中施行。上述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围,凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述申请专利范围内。

Claims (18)

1、一种具有低功率译码电路的处理器,其特征在于,其包含有:
用以取出编码指令的取指部件;
第一译码部件,该第一译码部件是用以译码复数个包含于第一类型指令集内的编码指令,且该第一译码部件的输入是该取指部件所输出的编码指令;
第二译码部件,该第二译码部件是用以译码复数个包含于第二类型指令集内的编码指令,且该第二译码部件的输入是该取指部件所输出的编码指令;
特殊指令部件,该特殊指令部件是用以与该第二译码部件配合以处理至少一种特殊指令,其中,该特殊指令是指包含于第二类型指令集内但该第二译码部件无法直接译码而造成处理器内的执行单元无法执行的指令,该特殊指令部件的输出可直接由执行单元执行;以及
控制部件,该控制部件是用以选择性控制该第一及第二译码部件,使该第一译码部件进行译码时,该第二译码部件维持休眠状态,且该第二译码部件进行译码时,该第一译码部件维持休眠状态。
2、如权利要求1所述的具有低功率译码电路的处理器,其特征在于:该特殊指令部件包含一判定部件,该判定部件是用以判定内存区域的开始地址,其中该内存区域存有可执行特殊指令的例程。
3、如权利要求2所述的具有低功率译码电路的处理器,其特征在于:该特殊指令部件包含一呼叫部件,该呼叫部件是用以执行系统呼叫至该内存区域地址。
4、如权利要求2所述的具有低功率译码电路的处理器,其特征在于:更包含另一特殊指令部件,该另一特殊指令部件是用以与该第一译码部件配合,以处理至少一种包含于第一类型指令集内但该第一译码部件无法直接译码而造成处理器内的执行单元无法执行的指令。
5、如权利要求1所述的具有低功率译码电路的处理器,其特征在于:该第一与第二类型指令集内的所有指令皆不相同。
6、如权利要求1所述的具有低功率译码电路的处理器,其特征在于:更包含一执行部件,该执行部件是用以执行该第一及第二译码部件所译码完成的指令。
7、如权利要求1所述的具有低功率译码电路的处理器,其特征在于:该处理器可应用于一可携式电子装置。
8、如权利要求1所述的具有低功率译码电路的处理器,其特征在于:该控制部件会对该取指部件所输出的编码指令做出响应,且该控制部件是设计以确保该第一及第二译码部件于任一时间内只有一个处于作动状态。
9、如权利要求1所述具有低功率译码电路的处理器,其特征在于:更包含一第三译码部件,该第三译码部件可译码复数个包含于第三类型指令集内的编码指令,且该第三译码部件的输入是该取指部件所输出的编码指令,该控制部件更设计以选择性控制该第一、第二及第三译码部件,使该第一、第二及第三译码部件于任一时间内只有一个处于作动状态。
10、如权利要求9所述的具有低功率译码电路的处理器,其特征在于:该控制部件更设计以确保当该第一、第二及第三译码部件其中之一处于作动状态时,其余的译码部件维持休眠状态。
11、一种具有低功率译码电路的处理器,其特征在于,其包含:
复数个译码器,其中每一个译码器所设计以译码的指令与其余译码器所设计以译码的指令均类型不同且不重叠;
特殊指令部件,该特殊指令部件与至少一个该复数个译码器配合,以处理至少一种特殊指令,其中,该至少一种特殊指令是指无法于处理器内直接被译码而造成处理器内的执行单元无法执行的指令,该特殊指令部件的输出可直接由执行单元执行;以及
控制部件,该控制部件是设计以确保该复数个译码器于任一时间内只有一个处于作动状态,并确保该唯一作动的译码器处于作动状态时,其余译码器维持休眠状态。
12、如权利要求11所述的具有低功率译码电路的处理器,其特征在于:更包含一用以执行已译码的指令的执行部件。
13、如权利要求11所述的具有低功率译码电路的处理器,其特征在于:该处理器可应用于一可携式电子装置。
14、一种具有低功率译码电路的处理器,其特征在于,其包含:
可译码复数个第一类型指令的第一译码器;
可译码复数个第二类型指令的第二译码器;
特殊指令部件,该特殊指令部件是用以处理至少一种特殊指令,其中该至少一种特殊指令是指该第一及第二译码器无法直接译码而造成处理器内的执行单元无法执行的指令,该特殊指令部件的输出可直接由执行单元执行;以及
控制部件,该控制部件是设计以选择性控制该第一及第二译码器,使该第一译码器进行译码动作时,该第二译码器维持休眠状态。
15、如权利要求14所述的具有低功率译码电路的处理器,其特征在于:该控制部件更设计以选择性控制该第一及第二译码器,使该第二译码器进行译码动作时,该第一译码器维持休眠状态。
16、一种用于处理器的指令译码方法,其特征在于,该译码方法包含:
判断所取出的指令为第一或第二类型的指令;
该所取出的指令为第一类型的指令时,则令第一译码器加以译码;
该所取出的指令为第二类型的指令且可被第二译码器直接译码时,则令第二译码器进行译码;
该所取出的指令为第二类型的指令且不可被第二译码器直接译码时,则通过系统呼叫至存放于内存区域的软件以执行该指令,该指令的译码与该第一、第二类型的指令的译码是平行的;以及
该所取出的指令被判断为第二类型的指令且由该第二译码器进行译码时,该第一译码器维持休眠状态;该所取出的指令被判断为第一类型的指令且由该第一译码器进行译码时,该第二译码器维持休眠状态。
17、如权利要求16所述用于处理器的指令译码方法,其特征在于:该判断步骤更包含判断该所取出的指令为第一、第二或第三类型的指令,该所取出的指令为第三类型的指令时,则令第三译码器加以译码,并选择性控制该第一、第二及第三译码器,使该第一、第二及第三译码器于任一时间内只有一个处于作动状态。
18、一种用于处理器的指令译码方法,其特征在于,该译码方法包含:
判断所取出的指令是否可被处理器内的译码器直接译码;
该所取出的指令可被直接译码时,则使用译码器加以译码;以及
该所取出的指令不可被直接译码时,则通过系统呼叫至存放于内存区域的软件以进行该指令的执行工作,该指令的译码与译码器的直接译码是平行的,并且处理器内的译码器于任一时间内只有一个处于作动状态,并确保该唯一作动的译码器处于作动状态时,其余译码器维持休眠状态。
CN200310117338.7A 2003-04-10 2003-12-10 具有低功率译码电路的处理器 Expired - Lifetime CN1265263C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/410,981 US20040205322A1 (en) 2003-04-10 2003-04-10 Low-power decode circuitry for a processor
US10/410,981 2003-04-10

Publications (2)

Publication Number Publication Date
CN1514329A CN1514329A (zh) 2004-07-21
CN1265263C true CN1265263C (zh) 2006-07-19

Family

ID=33130892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200310117338.7A Expired - Lifetime CN1265263C (zh) 2003-04-10 2003-12-10 具有低功率译码电路的处理器

Country Status (3)

Country Link
US (1) US20040205322A1 (zh)
CN (1) CN1265263C (zh)
TW (1) TWI237785B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707389B2 (en) * 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
US7263621B2 (en) * 2004-11-15 2007-08-28 Via Technologies, Inc. System for reducing power consumption in a microprocessor having multiple instruction decoders that are coupled to selectors receiving their own output as feedback
US8533496B1 (en) * 2009-11-10 2013-09-10 Marvell International Ltd. Power management of iterative data processing systems
US10437596B2 (en) * 2014-11-26 2019-10-08 Texas Instruments Incorporated Processor with a full instruction set decoder and a partial instruction set decoder
US10157164B2 (en) * 2016-09-20 2018-12-18 Qualcomm Incorporated Hierarchical synthesis of computer machine instructions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901225A (en) * 1984-04-09 1990-02-13 Kabushiki Kaisha Toshiba Processing apparatus with hierarchical structure for implementing a machine instruction
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5727221A (en) * 1994-12-22 1998-03-10 Texas Instruments Incorporated Computer system power management interconnection circuitry and systems
US6081890A (en) * 1998-11-30 2000-06-27 Intel Corporation Method of communication between firmware written for different instruction set architectures
US6393572B1 (en) * 1999-04-28 2002-05-21 Philips Electronics North America Corporation Sleepmode activation in a slave device

Also Published As

Publication number Publication date
US20040205322A1 (en) 2004-10-14
TW200406703A (en) 2004-05-01
TWI237785B (en) 2005-08-11
CN1514329A (zh) 2004-07-21

Similar Documents

Publication Publication Date Title
CN1152305C (zh) 虚拟机系统
CN1288556C (zh) 运算处理系统和控制方法,任务管理系统和方法
CN1877532A (zh) 编译装置
CN1549976A (zh) 通用串行端口体系结构和系统
CN1728023A (zh) 集成电路运行目标的节能实现
CN1178145C (zh) 高效执行特长指令字的处理器
CN1310148C (zh) 程序执行处理终端装置和程序执行处理方法
CN1655118A (zh) 处理器和编译器
CN1993670A (zh) 信息处理装置
CN1503142A (zh) 控制高速缓存的高速缓存系统和高速缓存控制装置
CN1591374A (zh) 直接存储器存取传输控制器
CN101046741A (zh) 处理器装置和复合条件处理方法
CN1637696A (zh) 移动终端设备中支持输入确认的系统与方法
CN1532666A (zh) 信息处理装置、该装置的时钟脉冲控制方法及控制程序
CN1725177A (zh) 嵌入式设备集成开发系统及其使用方法
CN100346285C (zh) 处理器芯片与存储控制系统及方法
CN1265263C (zh) 具有低功率译码电路的处理器
CN101043212A (zh) 半导体集成电路器件及其电路插入方法
CN101055569A (zh) 一种电子数据表的函数收集方法和装置
CN2703277Y (zh) 具有低功率译码电路的处理器
CN1924761A (zh) 数据处理装置、程序、记录介质和内容回放装置
CN1959630A (zh) 微处理器
CN1564104A (zh) 一种基于软硬件协同管理的电源管理系统及管理方法
CN1598797A (zh) 实时处理器系统及控制方法
CN1741018A (zh) Http网页动态输出的方法和系统

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

Granted publication date: 20060719

CX01 Expiry of patent term