CN1286005C - 微处理器 - Google Patents

微处理器 Download PDF

Info

Publication number
CN1286005C
CN1286005C CNB021570299A CN02157029A CN1286005C CN 1286005 C CN1286005 C CN 1286005C CN B021570299 A CNB021570299 A CN B021570299A CN 02157029 A CN02157029 A CN 02157029A CN 1286005 C CN1286005 C CN 1286005C
Authority
CN
China
Prior art keywords
data
bit
instruction
microprocessor
calculation circuit
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 - Fee Related
Application number
CNB021570299A
Other languages
English (en)
Other versions
CN1427336A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1427336A publication Critical patent/CN1427336A/zh
Application granted granted Critical
Publication of CN1286005C publication Critical patent/CN1286005C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

微处理器,包括计算单元,该计算单元(i)包括均能够进行局部数据计算的局部计算单元,和(ii)能够进行N位或少于N位的数据计算,其中N为局部数据计算单元进行数据计算的总位数。当使计算单元根据一条从一个存储器中取得的指令进行数据计算时,该微处理器根据一个以进行数据计算的位数形式选择的位宽模式,来控制局部计算单元,以便(i)使所有的局部计算单元投入运行,或(ii)暂停一个预定数量的局部计算单元的运行,而使其余的局部计算单元投入运行。

Description

微处理器
技术领域
本发明涉及的是微处理器,特别是涉及一种降低微处理器电能消耗的技术。
背景技术
在现有技术中,当执行一个特定目的的应用程序时,一种众所周知的降低微处理器的电能消耗的方法是暂停应用程序中没有用到的一个或多个微处理器的独立功能模块的电源(电压施加)或时钟信号源。
例如,当一个微处理器,诸如一个包含多个独立处理单元VLIW(很长的指令字)的微处理器,被安装在一个产品中,并且将要执行一个特定的应用程序时,作为产品设计的一部分,可以事先确定在该特定的应用程序的执行中,哪些模块是没有用到的,并控制和暂停这些没有用到的处理单元的时钟信号源,这样可以减少一个微处理器的电能消耗,而又不会降低其处理性能。而且,在美国专利5,913,068中,公开了一种技术,可依照其系统运行环境设置来控制多个CPU的并行操作。
近年来,在该背景下,随着多媒体相关的技术的发展,开发了多种多功能信息处理机。
安装在这种多功能信息处理机中的微处理器需要执行各种涉及不同类型的数据的应用程序,例如一个集中于控制图形用户界面或视听数字信号处理的应用程序。
通常,每一个这样的应用程序都包括专用于数据计算的计算指令,如加法运算,尽管应用程序之间,被处理的数据类型有所不同。一般而言,不同的应用程序中的计算指令都是在一个微处理器中的相同的数据计算电路中处理的。
由此,对于一个微处理器中的数据计算电路,无论要执行什么应用程序,都不可能采用现有技术来控制和暂停电压源和时钟信号源。
发明内容
鉴于上述的问题,本发明的一个目的是提供一个微处理器,能够减少执行数据计算中的电能消耗,同时保持微处理器所要执行的不同应用程序中处理的不同类型的数据所需的计算性能水平。
本发明的另一个目的是提供一种微处理器,能够在所执行的应用程序处理满足某一条件的某一类型数据时,提高数据计算的速度。因为要求微处理器满足所有的目的并应用于各种类型的数据,这种能力是一个基本性能水平的微处理器所不具备的。
一般来讲,本发明是基于这样一个概念来解决这些问题的,即不同的应用程序具有不同的处理数据值的范围,和具有数据计算所需的不同的有效位数。本发明提供了一种微处理器,依照一个从存储器中取得的指令进行处理,包括:一个计算电路,该电路(i)包括局部计算电路,每个局部计算电路进行部分数据计算,和(ii)能够进行N位或少于N位的数据计算,其中N为该局部计算电路进行数据计算的总的位数;一个位宽选择单元,能够选择一个位宽模式,指定一个进行数据计算的确定位数;一个执行控制单元,如果取得的指令是一个用于数据计算的指令,该单元能够控制计算电路,进行数据计算;和一个运行控制单元,当该执行控制单元控制计算电路进行数据计算时,(i)在位宽选择单元选择一个指定N位的第一位宽模式的情况下,使所有的局部计算电路投入运行,和(ii)在位宽选择单元选择一个指定小于N位的第二位宽模式的情况下,暂停一个预定数量的局部计算电路的运行,而使其余的局部计算电路投入运行。
利用所述的配置,在选择第二位宽模式的情况下,可以使电能消耗小于选择第一位宽模式时的电能消耗,因为仅有一部分的局部计算电路在运行。这样,通过根据每个应用程序所需的计算性能水平,换句话说,根据每个应用程序所需数据计算的有效位数,来选择一个位宽模式,可以减少没有使用的局部计算电路(如果存在的话)所产生的电能消耗,因为运行控制单元仅要求局部计算电路工作在一个进行计算的功能模块所包含的局部计算电路中。
而且,该微处理器可以具有一个配置,其中每个局部计算电路根据接收一个时钟信号来进行局部数据计算,运行控制单元(i)在位宽选择单元选择第一位宽模式的情况下,为所有局部计算电路中的每一个提供一个时钟信号,和(ii)在位宽选择单元选择第二位宽模式的情况下,暂停为一个预定数目的局部计算电路提供时钟信号,并为每个其余的局部计算电路提供一个时钟信号。
利用所述的配置,可以通过一个相当简单的控制和暂停时钟信号源的配置,在某一情况下暂停一个确定数量的局部计算电路的运行
而且,该微处理器可以具有一个配置,其中每个局部计算电路都包括一个计算器和一个位数据获取电路,计算器按照提供的数据的位数进行数据计算,位数据获取电路一接收到一个时钟信号,即获得一个或多个数据总线上的数据位数,并将其提供给计算器,对于每个局部计算电路,该位数都是特定的,运行控制单元通过为每个位数据获取电路提供一个时钟信号,来为每个局部计算电路提供一个时钟信号。
利用所述的配置,可以通过一个相对简单的配置进行控制,以便不会徒然地向计算器提供数据。结果是,在某一条件下,某一数量的计算器的输入值不变;因此,可以使这样的计算器的电能消耗很小。
而且,该微处理器可以具有这样一个配置,其中除了进行N位的最高位的数据计算的局部计算电路之外,局部计算电路都能够输出一个进位信号,表明在数据计算中出现一个溢出,该计算电路包括一个进位信号传输单元,除了进行N位的最低有效位的数据计算的局部计算电路之外,该单元为所有局部计算电路各输入一个进位信号,该进位信号是从一个进行数据的局部计算电路输出的,该局部计算电路计算的有效数据位数低于将要被输入一个这样的进位信号的特定局部计算电路的有效数据位数,该微处理器进一步包括一个进位信号禁止单元,在位宽选择单元选择第二位宽模式的情况下,能够禁止进位信号传输单元向预定数量的、由运行控制单元暂停了时钟信号源的局部计算电路输入一个进位信号。
利用所述的配置,微处理器能够很容易地提高处理速度,并减小电能消耗,因为在选择了第二位宽模式的情况下,可以部分禁止进位信号的传输。因此,在实现一个节能的并具有一个高性能水平的微处理器中,这一能力是很有用的。例如,只要选择了第二位宽模式,通过提供另一个能够控制作用于每个计算器的电压电平的控制单元,可以稍微降低作用到整个计算电路的电压电平,而不会降低计算的速度。只要选择第二位宽模式,通过提供另一个能够控制提供给每个计算器的时钟信号的频率的控制单元,可以稍微提高计算速度。
该微处理器进一步包括一个时钟频率控制单元,能够(i)控制运行控制单元,在位宽选择单元选择了第一位宽模式的情况下,每个局部计算电路提供一个第一频率的时钟信号,和(ii)控制运行控制单元,在位宽选择单元选择了第二位宽模式的情况下,为每个局部计算电路提供一个高于第一频率的第二频率时钟信号。
利用该所述配置,在不需某一数量的局部计算电路运行时,可以提高数据计算的速度,使其超过在需要所有的局部计算电路投入运行时由传输进位信号所需的时间多少决定的标准性能水平。
该微处理器进一步包括一个电压控制单元,能够控制电压电平,以便(i)在位宽选择单元选择了第一位宽模式的情况下,在计算电路上施加一个第一电压电平的电压,和(ii)在位宽选择单元选择了第二位宽模式的情况下,在计算电路上施加一个低于第一电压电平的第二电压电平电压。
利用该所述配置,可以减少数据计算所消耗的电能,因为在某一数目的局部计算电路不需运行时,可以降低施加到计算电路的电压电平。
该微处理器进一步包括一个时钟频率控制单元,能够(i)控制运行控制单元,在位宽选择单元选择了第一位宽模式的情况下,为每个局部计算电路提供一个第一频率的时钟信号,和(ii)控制运行控制单元,在位宽选择单元选择了第二位宽模式的情况下,为每个局部计算电路提供一个高于第一频率的第二频率时钟信号;一个电压控制单元,能够控制电压电平,以便(i)在位宽选择单元选择了第一位宽模式的情况下,在计算电路上施加一个第一电压电平的电压,和(ii)在位宽选择单元选择了第二位宽模式的情况下,在计算电路上施加一个低于第一电压电平的第二电压电平电压;一个控制模式选择单元,能够按照为每个局部计算电路提供的时钟信号的频率和施加于计算电路的电压电平来选择一个控制模式;和一个开关单元,能够(i)在控制模式选择单元选择一个第一控制模式时,允许时钟频率控制单元的控制,和禁止电压控制单元的控制,和(ii)在控制模式选择单元选择一个第二控制模式时,允许电压控制单元的控制,和禁止时钟频率控制单元的控制。
利用该所述配置,微处理器能够选择提高数据计算的速度或减少数据计算消耗的电能,以及,例如能够为每个应用程序规定这样的一个选择,等等。
微处理器进一步包括一个信号稳定单元,能够在一个预定的时间周期内,将一个用来向微处理器外部输出信号的信号线的电压电平维持在一个预定的电平,该预定周期从控制模式选择单元从一个控制模式变化到另一个控制模式时开始。
利用该所述配置,可以防止微处理器中的电压和频率的变化对连接到该微处理器的其它电路造成不利影响。
而且,该微处理器可以包含一个存储器存取单元,能够对一个外部存储器进行存取,其中,如果获取的指令为一个向一个存储器写数据的指令,执行控制单元使一个存储器存取单元将一段或多段数据写入该外部存储器,位宽选择单元根据该外部存储器的一个预定区域中存储的一个值来选择一个位宽模式。
利用该所述的配置,通过在一个预定的存储器区域中设定一个位宽模式,每个应用程序能够很容易通知微处理器判断暂停一定数量的局部计算电路运行的条件所需的此类信息,即一个位宽值该所确定的位宽模式是基于数据计算中的有效位。这样,可以进行微调控制,对于每个应用程序而言,能够减小单独判断所消耗的电能,无论是否需要所有的局部计算电路投入运行。
而且,该微处理器可以具有一个配置,其中如果取得的指令是一个用于数据计算的指令,则位宽选择单元(i)在获取的指令为一个用于N位数据计算的指令的情况下,选择第一位宽模式,和(ii)在获取的指令为一个用于小于N位的数据计算的指令的情况下,选择第二位宽模式。
利用该所述配置,与一个仅由16位数据计算指令组成的应用程序的情况相比,微处理器能够利用较少的电能消耗来执行仅由用于计算8位数据计算的指令组成的应用程序。这样,例如,当比较(a)一个处理运动图象压缩或在低图象质量下解压的应用程序或程序例程和(b)一个在高图象质量下解压的应用程序或程序例程时,计算所需的位数是不同的;因此,通过利用具有所需的指定位数的计算指令来组成应用程序,与后面的应用程序相比有可能降低了前面应用程序运行所消耗的电能。
而且,该微处理器可以包含:一个数据存储单元,其中包含一个存储计算电路的一个N位计算结果区域;和一个数据写入控制单元,能够(i)在选择了第一位宽模式的情况下,将完整的N位结果写入到该区域中,和(ii)在选择了第二位宽模式的情况下,仅将小于N位的一部分结果写入到该区域。
利用该所述配置,可以通过避免无用的写入,更确切地讲,根据基于每个应用程序所需的数据计算的有效位数的位宽模式,在诸如一个高速缓冲存储器或寄存器等等的存储单元的一个区域中仅写入与该有效位数一样少的位数,来减少电能消耗。
而且,该微处理器可以包括一个数据写入控制单元,能够(i)在选择了第一位宽模式的情况下,将计算电路输出的完整的N位结果写入到一个外部存储器中,和(ii)在选择了第二位宽模式的情况下,仅将该结果中小于N位的一部分写入到该外部存储器中。
利用所述配置,可以通过避免无用的写入,更确切地讲,根据基于每个应用程序所需的数据计算的有效位数的位宽模式,通过总线仅写入与一个外部存储器的有效位数同样少的位数,来减少电能消耗。
而且,该微处理器可以具有一个配置,其中计算电路包括两个局部计算电路,各进行N/2位的局部数据计算,和执行控制单元,如果获取的指令是一个用于N位数据计算的指令,而且也是在位宽选择单元选择了第二位宽模式的情况下,(i)使一个局部计算电路进行该N位中较低N/2位局部数据计算,然后(ii)使同样的局部数据计算电路进行较高N/2位的局部数据计算,如果存在的话,同时在进行较低N/2位局部数据计算期间考虑一个溢出情况。
利用该配置,在需要由一个能够计算16位数据的数据计算电路来计算一段16位数据的情况下,通过使用这样一个数据计算电路进行两次8位数据计算,则可以减少电能损耗,尽管可能会降低计算速度。
而且,该微处理器可以具有一个配置,其中各局部计算电路在接收到提供的数据位数时进行局部数据计算,运行控制单元(i)在位宽选择单元选择了第一位宽模式的情况下,为所有的局部计算电路提供针对特定的局部计算电路的尽可能多的位数,和(ii)在位宽选择单元选择了第二位宽模式的情况下,暂停为一个预定数量的局部计算电路提供数据位,并为其余的局部计算电路提供针对该特定局部计算电路的尽可能多的数据位。
利用该配置,通过控制向一定数量的局部计算电路提供数据位,可以减少数据计算中的电能消耗。
而且,该微处理器可以具有一个配置,其中每个局部计算电路均进行数据计算,而在其上施加一个预定电平的电压,运行控制单元(i)在位宽选择单元选择了第一位宽模式的情况下,在所有的局部计算电路上均施加该预定电平的电压,和(ii)在位宽选择单元选择了第二位宽模式的情况下,暂停在一个预定数量的局部计算电路上施加该预定电平的电压,并在其余的局部计算电路上均施加该预定电平的电压。
利用该配置,通过控制和暂停施加的电压这样一个相当简单的配置,可以在某一条件下,暂停一定数量的局部计算电路的运行。
附图说明
下面结合附图说明本发明的具体实施方案,来对本发明进行描述,可以明确了解本发明的这些和其它的目的、优势和特征。
附图中:
图1是本发明的第一个实施方案的微处理器100的功能模块图;
图2显示的是第一实施方案的计算单元131的详细结构;
图3是一个时钟选通控制单元136的输入和输出的真值表;
图4是一个控制表,显示了利用进位控制单元137根据输入信号输出的控制信号;
图5是一个控制表,显示了由电压控制单元150和频率控制单元160根据不同的总线宽度模式和运行模式进行的控制;
图6是本发明的第二个实施方案的微处理器300的功能模块图;
图7是一个微处理器300的指令组中的一部分的例子;
图8是一个示意图,显示了第三个实施方案中能够进行写入控制的数据存储器140的一部分;和
图9显示了第四个实施方案中计算单元231的详细结构。
具体实施方式
1.第一实施方案
下面参考图1-5,来描述第一实施方案中的微处理器100。
1-1.总体结构
图1是本发明的第一个实施方案的微处理器100的功能模块图。
微处理器100是在一个外部存储器存储的程序中对指令进行解码并执行这些指令规定的处理的微处理器。微处理器100是由CMOS(互补金属氧化物半导体)构成的,包括指令存储器110、指令解码单元120、指令执行单元130、数据存储器140、电压控制单元150、频率控制单元160、和总线宽度控制单元170,如图1中的功能模块示意图所示。
这里应当注意,指令存储器110是一个高速缓存存储器,用来存储将要执行的从一个外部存储器中获取的指令。该外部存储器存储应用程序,诸如各种类型的特定目的应用程序,和一个控制这些应用程序执行的操作系统。执行这些应用程序所需的所有指令是通过指令存储器110来获取的。
不同的应用程序中,所处理的数字数据的有效值不同,例如,可以小于100、小于2000、或小于30000。这意味着有些应用程序仅处理那些可以用8位表示的数据,有些是12位,有些是16位。此外,有些应用程序需要高速执行,有些应用程序不需高速执行,但所消耗的电能应有所减少。显然,程序员和系统设计人员能够事先认识到每个应用程序的这些特征,并且假设应用程序是这样构建的,使得在每个程序中可以指定一个总线宽度和一个操作模式(将在后面解释)。
指令解码单元120是一个电路,它从指令存储器110中取得一条指令,并将其一个接一个地解码,根据解码的结果向指令执行单元130中的一个指定的电路等发送一个控制信号,以便使指定的电路运行。当一个特定指令已经被解码时,指令解码单元120还指示电压控制单元150、频率控制单元160和总线宽度控制单元170改变其控制行为。这种特定指令的一个例子是一个专用指令,表明要执行的应用程序已经被改变(此后,称之为CHANGE指令),该指令是要在一个应用程序中指定的。
更具体地讲,指令解码单元120根据指令解码的结果来发送上述控制信号;因此,例如,当指令解码单元120已经解码了一个加法指令的情况下,指令解码单元120发送一个控制信号,来控制时钟信号的信号线中设置的一个开关元件,以便将频率控制单元160的时钟信号(CLK)提供给计算单元131中的时钟选通控制单元136。
指令执行单元130是由多个电路构成的,如计算单元131、传输单元139等等。
这里应当注意,该计算单元131是一个进行16位数据计算的典型的例子,并且这里假定计算单元131是一个将输入的两个16位数据相加并输出一个16位结果数据的加法电路。
传输单元139是一个将一个外部存储器中的数据传送到微处理器的数据存储器140中的电路。实际中,指令执行单元130包括多个数据计算电路,如包括放大电路等等的算术电路和逻辑电路,以及一个用于将数据存储器140中的某些数据传送到一个外部存储器中的电路。
数据存储器140是一个存储数据高速缓冲存储器和寄存器,包括用于存储总线宽度模式的总线宽度模式区域148和用于存储运行模式的运行模式区域149。该数据存储器140通过总线与多个电路,如指令执行单元130中的计算单元131相连。
总线宽度模式是指定数据计算所需的位数是16的模式、12位模式或是8位模式。运行模式是用来指定有关节能和高速控制的模式,即普通模式、高速模式或低电能消耗模式。
每个应用程序都配置为在上述的CHANGE指令之前,包含一个数据传输指令,用来将外部存储器中表示总线宽度模式的这种数据传送到数据存储器中的总线宽度模式148区域或运行模式区域149。如果指令解码单元120解码一个数据传输指令并使传输单元139执行该传输,那么,结果是,总线宽度模式区域148存储一个由应用程序指定的总线宽度模式,运行模式区域149存储一个由应用程序指定的运行模式。
电压控制单元150控制要施加到微处理器功能模块上的电压。有时该单元进行的控制是不向没有用到的功能模块上施加电压,有时是使施加到计算单元131上的电压电平根据总线宽度模式和运行模式而变化,通过触发指令解码单元120来指示电压控制单元150改变其控制行为。
频率控制单元160为微处理器中的每个模块提供时钟信号,并控制时钟信号的频率,等等。有时该单元的控制是不为没有用到的功能模块提供时钟信号,有时是使提供给计算单元131的时钟信号频率根据总线宽度模式和运行模式而变化,通过触发指令解码单元120来指示电压控制单元150改变其控制行为。
微处理器100包括一个机构,例如,在下列情况下(i)电压控制单元150实施控制,不向没有用到的功能模块施加电压,而向使用中的功能模块施加某一电压,或者应当改变电压电平,和(ii)频率控制单元160实施控制,改变时钟的频率,该机构能够通过控制,使得通过一个外部电路连接到微处理器100的某个端子的电压电平在一个预定的时间,如几十毫秒内,维持与微处理器100所处的基片的低电平标准电压相同的电平。电压控制单元150和频率控制单元160均向该控制机构传送一个这样的信号,表示要实施一个改变电压或频率状态的控制行为。这样,可以防止由某一个端子,如用于向外部电路输出一个请求信号的端子的电压电平变化引起的外部电路的误动作。
而且,总线宽度控制单元170查看总线宽度模式区域148,触发指令解码单元120,指示总线宽度控制单元170改变其控制行为,例如,通过用一个唯一的2位信号来表示每个总线宽度模式,并将选择的总线宽度模式通知给计算单元131。
1-2.计算单元和时钟选通控制的内部结构
下面详细描述的是计算单元131,它是本发明的一个重要部件。
图2显示了第一实施方案的计算单元131的详细结构。
如图2所示,计算单元131是一个进行两个16位数据计算的电路,附图中这两个数据用“srcA”“srcB”表示,输出进位信号(carry),表明是否已经出现进位,附图中,用“dest”表示计算结果数据部分。计算单元131包括局部计算电路132a、132b和132c,进位传输单元134a和134b,进位选择电路135,时钟选通控制单元136和进位控制单元137。
局部计算单元132a进行一个从计算输入的16位数据的最低位开始的8位数据的计算,输出一个8位数据和进位信号,作为计算的结果。局部计算单元132a包括(i)一个数据部分,根据提供的时钟信号读取一个要计算的8位数据,(ii)一个计算器133a,根据读入的数据,将两个8位数据相加,和(iii)一个数据部分,根据一个提供的时钟信号,输出一个8位数据和一个进位信号,作为计算的结果。
局部计算单元132b进行一个4位数据的计算,该数据从用于计算的输入的16位数据的第8位开始(最低为第0位),输出一个4位数据和一个进位信号,作为计算的结果。局部计算单元132b包括(i)一个数据部分,根据提供的时钟信号读取一个要计算的4位数据,(ii)一个计算器133b,根据读入的数据,将两个4位数据相加,和(iii)一个数据部分,根据一个提供的时钟信号,输出一个4位数据和一个进位信号,作为计算的结果。
局部计算单元132c进行一个4位数据的计算,该数据结束于计算输入的16位数据的最高位,输出一个4位数据和一个进位信号,作为计算的结果。局部计算单元132c包括(i)一个数据部分,根据提供的时钟信号读取一个要计算的4位数据,(ii)一个计算器133c,根据读入的数据,将两个4位数据相加,和(iii)一个数据部分,根据一个提供的时钟信号,输出一个4位数据和一个进位信号,作为计算的结果。
在指令解码单元120的控制下,根据一个用于一个加法指令等的操作数,选择由存储器140中的某些地址或寄存器ID指定的两个16位数据。该两个选择的16位数据将各被放置到16位总线上,并分别作为scrA[15:0]和scrB[15:0]输入给计算单元131。同时,在指令解码单元120的控制下,按类似的方式,根据一个用于一个加法指令等的操作数,将由计算单元131输出的一个16位数据,即dest[15:0]存储到一个由存储器140中的某个地址或寄存器ID指定的区域中。一个由计算单元131输出的进位信号(carry)将被存储到一个所谓的标志寄存器等中。
进位传输单元134a是一个电路,在进位控制单元137的控制下,将一个由计算器133a输出的进位信号输入到计算器133b的一个所谓的进位输入端。该进位传输单元134b是一个在进位控制单元137的控制下将一个由计算器133b输出的进位信号输入到计算器133c的所谓的输入端。
进位选择电路135是一个在进位控制单元137的控制下选择一个由局部计算单元132a、132b和132c输出的进位信号,并输出该信号,作为一个计算单元131的输出信号。
时钟选通控制单元136从总线宽度控制单元170接收一个表示总线宽度的信号183,通过单独开关操作对每个局部计算单元进行控制,由频率控制单元160提供的时钟信号182是被传送到每个局部计算单元,还是被被截止,取决于所表示的总线宽度。
图3是一个时钟控制单元136的输入和输出的真值表。
图3中显示的一个时钟信号(CLK)和一个总线宽度模式是输入的信号;而一个从时钟选通控制单元136输出到另一个局部计算单元的信号是由一个时钟信号(CLK)和一个总线宽度模式值的组合来确定的。
更具体地讲,如图3中所示,根据一个由频率控制单元160提供时钟信号(CLK),时钟选通控制单元136将一个时钟信号(i)在总线宽度模式为16位模式的情况下,传输给所有的局部计算单元132a、132b和132c,(ii)在总线宽度模式为12位模式的情况下,仅传输给除局部计算单元132c外的两个局部计算单元,和(iii)当总线宽度模式为8位模式的情况下,仅传输给局部计算单元132a。
进位控制单元137是一个电路,从总线宽度控制单元170接收一个表示总线宽度模式的信号183,并根据所表示的总线宽度模式控制进位传输单元134a、134b、和进位选择电路135。
图4是一个控制表,显示了由进位控制单元137根据输入值输出的信号。
在图4的表中,总线宽度模式是输入信号;例如“进位输入到计算器133b”是一个1位控制信号,指示进位传输单元134a是否应在输出信号中反映输入信号;例如,“进位输入到计算器133c”是一个1位控制信号,指示进位传输单元134a是否应在输出信号中反映该输入信号;例如,“选择输出的进位”是一个2位控制信号,指示进位选择电路135,选择作为计算单元131的一个输出信号的进位信号来自于哪个计算器。
如该表中所示,在总线宽度模式为16位模式的情况下,时钟选通控制单元136(i)指示每个进位传输单元134a和134b,将输出值设置为一个反映输入的进位信号的值,而且还(ii)指示进位选择电路135选择由计算器133c输入的进位信号(carry[2])。
在总线宽度模式为12位模式的情况下,时钟选通控制单元136(i)指示进位传输单元134a,将输出值设置为一个反映输入的进位信号的值,(ii)指示进位传输单元134b不改变输出值,而且还(iii)指示进位选择电路135选择由计算器133b输入的进位信号(carry[1])。
在总线宽度模式为8位模式的情况下,时钟选通控制单元136(i)指示进位传输单元134a和134b均不改变输出值,而且还(ii)指示进位选择电路135选择由计算器133c输入的进位信号(carry[0])。
1-3.电压控制和频率控制
下面解释由电压控制单元150对施加到计算单元131上的电压的控制,和由频率控制单元160对提供给计算单元131的时钟信号的控制。
图5是一个控制表,显示了由电压控制单元150和频率控制单元160根据不同的总线宽度模式和运行模式来进行的控制。
如该表中所示,在从指令解码单元120接收到改变其控制行为的指令后,根据总线宽度模式和运行模式的组合,电压控制单元150确定要施加到计算单元131上的电压电平,而频率控制单元160确定提供给计算单元131的时钟信号的频率。
换句话说,如果总线宽度模式为16位模式,或者如果运行模式是普通模式,那么电压控制单元150为计算单元131施加一个1.8V(伏特)的电压,频率控制单元160向计算单元131提供100MHz(兆赫)的时钟频率。如果12位模式是和高速模式的组合,则电压控制单元150为计算单元131施加一个1.8V(伏特)的电压,频率控制单元160向计算单元131提供100MHz(兆赫)的时钟频率。如果12位模式和是低能耗模式的组合,则电压控制单元150为计算单元131施加一个1.6V(伏特)的电压,频率控制单元160向计算单元131提供100MHz(兆赫)的时钟频率。如果8位模式是和高速模式的组合,则电压控制单元150为计算单元131施加一个1.8V(伏特)的电压,频率控制单元160向计算单元131提供166MHz(兆赫)的时钟频率。如果8位模式是和低能耗模式的组合,则电压控制单元150为计算单元131施加一个1.4V(伏特)的电压,频率控制单元160向计算单元131提供100MHz(兆赫)的时钟频率。
应当注意,计算单元131中的计算需要进位传输,而且由于较高列的计算应反映出较低列的结果,进位传输对于整体计算的速度有很大的影响。
因此,当总线宽度模式为12位模式时,可以在总体上缩短计算单元131上进行的计算所需的时间,因为与选择16位模式的情况相比,具有较少的进位传输级;因此与总线宽度模式为16位模式的情况相比,可以设置较高的时钟信号的频率和较高的计算速度。而且,在总线宽度模式为8位模式时,可以设置更高的时钟频率,因为进位传输级更少。
换句话说,如图5中所示,例如,当应用程序需要高速模式时,通过为16位模式设置100MHz、为12位模式设置133MHz、为8位模式设置166MHz的频率,可以使时钟信号的频率达到总线宽度模式所允许的最高频率。
此外,当总线宽度模式为12位模式时,可以在总体上缩短计算单元131中的计算时间,因为与选择16位模式的情况相比,具有较少的进位传输级;因此与选择16位模式的情况相比,可以降低电压电平,使计算在一个较低的速度下进行,以便在总体上维持与计算单元131中的16位模式相同的性能水平。而且,在总线宽度模式为8位模式的情况下,可以使计算单元131的整体计算速度与选择16位模式的情况相同,因为有更少的进位传输级,所以还可以进一步降低电压电平。
换句话说,如图5中所示,例如,当应用程序需要低能耗模式时,通过为16位模式设置1.8V、为12位模式设置1.6V、为8位模式设置1.4V的电压,可以使施加到计算单元131上的电压电平为总线宽度模式所允许的最低值。附带说明一下,当电压电平高时,计算器的计算速度也高,相反,电压电平越低,计算速度越低。
1-4.详细的运行
下面参考特定的例子来描述微处理器100的运行。
利用一个例子来描述微处理器100的运行,该例子中,首先需要执行涉及16位数据的应用程序A,然后,将执行需高速运行的涉及8位数据的应用程序B,接下来执行需低能耗执行的涉及12位数据的应用程序C。
最初将要执行的应用程序A包括(i)一个传输指令,设置一个值,表示总线宽度模式区域148中的16位模式的,(ii)一个传输指令,设置一个值,表示运行模式区域149中的普通模式,和(iii)一个CHANGE指令,表示该应用程序的一个变化。应用程序B包括(i)一个传输指令,设置一个值,表示总线宽度模式区域148中的8位模式的,(ii)一个传输指令,表示运行模式区域149中的高速模式,和(iii)一个有待最初执行的CHANGE指令,表示该应用程序的一个变化。应用程序C包括(i)一个传输指令,设置一个值,表示总线宽度模式区域148中的12位模式的,(ii)一个传输指令,设置一个值,表示运行模式区域149中的低能耗模式,和(iii)一个CHANGE指令,表示该应用程序的一个变化。
1-4-1.16位模式和普通模式组合下的运行
首先,指令存储器110从应用程序A中获取一系列的指令,指令解码单元120和指令执行单元130均顺序执行该指令系列中的每一条指令,然后,通过执行传输指令,在总线宽度模式区域148中设置一个表示16位模式的值,在运行模式区域149中设置一个表示普通模式的值。
接下来,在应用程序A中指令解码单元120解码CHANGE指令之后,指令解码单元120指示电压控制单元150、频率控制单元160和总线宽度控制单元170改变其控制行为,结果是,电压控制单元150向计算单元131施加一个1.8V的电压,频率控制单元160向计算单元131中的时钟选通控制单元136输入一个100MHz的时钟信号(参见图5),而总线宽度控制单元170查阅总线宽度模式区域148中的表示一个总线宽度模式的值,并向计算单元131的时钟选通控制单元136和进位控制单元137均传送一个表示总线宽度模式的信号。这里应当注意,因为在电压改变等等之后需要立即稳定电压等等,因此与完成一条通用指令相比,完成CHANGE指令的时间要长一些。
接下来,例如,在应用程序A中,指令解码单元120解码一个加法指令,在数据存储器中将两个16位数据相加,指令解码单元120指示计算单元131执行该指令,然后,所有局部计算电路132a、132b和132c的位数据读取级和计算结果输出级根据时钟选通控制单元136提供的时钟信号(CLKA、CLKB和CLKC)进行运算,接着,两个16位数据,即scrA和scrB的所有位值被分别输入到计算器133a、133b和133c之一,并在其中计算,以及进位传输单元134a、134b和134c发送进位信号,(参见图4)。结果是,计算单元131向数据存储器140输出(i)一个来自于计算器133c的进位信号,和(ii)一个16位数据,其高4位是一个由计算器133c计算的结果的4位数据;接下来的后4位是一个由计算器133b计算的结果的4位数据;其低8位是一个由计算器133a计算的结果的8位数据。这样,就完成了计算,使得输出数据中的所有16位都是有效的。
之后也可以用同样的方式来处理应用程序A中的其它加法指令。
1-4-2.8位模式和高速模式组合下的运行
下面的解释是,在应用程序A执行完一个指令之后,微处理器100执行应用程序B的情况。
这里,由于应用程序B是针对这种可以用8位充分表示的数值,如1-100进行计算,并具有这样数值的计算结果,所以假定选择的是8位模式。
指令存储器110从应用程序B获取一系列的指令,指令解码单元120和指令执行单元130均顺序执行每条指令,然后,通过执行传输指令,设置总线宽度模式区域148中一个表示8位模式的值,和一个运行模式区域149中表示高速模式的值。
接着,在指令解码单元120解码了应用程序B中的CHANGE指令后,指令解码单元120指示电压控制单元150、频率控制单元160和总线宽度控制单元170改变其控制行为,结果是,电压控制单元150向计算单元131施加一个1.8V的电压,频率控制单元160向计算单元131中的时钟选通控制单元136输入一个166MHz的时钟信号(参见图5),而总线宽度控制单元170参阅总线宽度模式区域148中的表示一个总线宽度模式的值,向计算单元131的时钟选通控制单元136和进位控制单元137均传送一个表示总线宽度模式的信号。
接下来,例如,在应用程序B中,指令解码单元120解码一个加法指令,在数据存储器140中将两个16位数据相加,指令解码单元120指示计算单元131执行该指令,然后,仅有局部计算电路132a的位数据读取级和计算结果输出级根据时钟选通控制单元136提供的时钟信号(CLKA)进行运算(参见图3),然后,在两个16位数据中,即scrA和scrB中的8个低位被输入到计算器133a并在其中计算,而进位传输单元134a、134b不传输进位信号(参见图4)。结果是,因为输入值没有变化,所以计算器133b和133c不进行计算,这样就减少了电能消耗。最后,计算单元131向数据存储器140输出(i)一个来自于计算器133a的进位信号,和(ii)一个16位数据,其低8位是作为计算器133a的计算结果的一个8位数据。这里应当注意,局部计算单元132b和132c的计算结果输出级是配置为导线连接的,这样如果没有提供时钟信号,在输出电压变为零。因此,由计算单元131输出的16位数据的高8位为零。这样,就已经完成了计算,使得输出数据中的8位是有效的。
应用程序B中的其它加法指令的处理要比应用程序A中的加法指令的速度高。可见应用程序B是常规运行的。
应当注意,因为在执行加法指令时输入值没有改变的计算器133b和133c是由一个CMOS构成的,所以可以实现电能消耗的减少,因此,如果没有进行开关操作,则消耗很少的电能。
此外,一个COMS电路的电能消耗是与运行频率成正比,且与运行电压的平方成正比。这意味着,作为一种实现高速执行的方式,当8位模式与高速模式组合,其中运行电压相同,而提供给计算电路的时钟信号的频率高于选择16位模式的频率时,与提高电压的情况相比,可以降低电能消耗。
1-4-3.12位模式和低耗模式组合下的运行
下面的解释是,在完成应用程序B中的指令之后,微处理器100执行应用程序C的情况。
指令存储器110从应用程序C获取一系列的指令,指令解码单元120和指令执行单元130均顺序执行每条指令,然后,通过执行传输指令,设置总线宽度模式区域148中的一个表示12位模式的值,和一个运行模式区域149中表示低耗模式的值。
接着,在指令解码单元120解码了应用程序C中的CHANGE指令后,指令解码单元120指示电压控制单元150、频率控制单元160和总线宽度控制单元170改变其控制行为,结果是,电压控制单元150向计算单元131施加一个1.6V的电压,频率控制单元160向计算单元131中的时钟选通控制单元136输入一个100MHz的时钟信号(参见图5),而总线宽度控制单元170参阅总线宽度模式区域148中的表示一个总线宽度模式的值,向计算单元131的时钟选通控制单元136和进位控制单元137均传送一个表示总线宽度的信号。
接下来,例如,在应用程序C中,指令解码单元120解码一个加法指令,在数据存储器140中将两个16位数据相加,指令解码单元120指示计算单元131执行该指令,然后,除了局部计算单元132C,局部计算电路132a和132b的位数据读取级和计算结果输出级根据时钟选通控制单元136提供的时钟信号(CLKA和CLKB)运行(参见图3),然后(i)两个16位数据,即scrA和scrB的12个低位中的高4位被输入到计算器133b并在其中计算,(ii)该12个低位中的低8位被输入到计算器133a并在其中计算,和(iii)进位传输单元134a传输一个进位信号,但进位传输单元134b不传输进位信号(参见图4)。结果是,因为输入值没有变化,所以计算器133c不进行计算,这样就减少了电能消耗。最后,计算单元131向数据存储器140输出(i)一个来自于计算器133b的进位信号,和(ii)一个16位数据,其低8位是作为计算器133a的计算结果的一个8位数据;而接下来的4位是作为计算器133b的计算结果的一个4位数据。这里应当注意,局部计算单元132c的计算结果输出级是用一个导线连接来配置的,这样如果没有提供时钟信号,在输出电压变为零。因此,由计算单元131输出的16位数据的4个最高位为零。这样,就完成了计算,使得输出数据中的12位是有效的。
应用程序C中的其它加法指令的处理要比应用程序A中的加法指令的电能消耗低。
2.第二个实施方案
下面参考图6和图7来描述第二实施方案中的微处理器300,其中对第一方案中的微处理器100做了部分修正。
微处理器300与微处理器100的不同之处在于,在一个应用程序中,微处理器300根据在诸如一条加法指令的计算指令下所要计算的数据的位数,来单独改变每个将要执行的总线宽度模式,而微处理器100基本上建立在改变每个将要执行的应用程序的总线宽度模式的假定之上的。
图6是本发明的第二实施方案的微处理器300的一个功能模块图。应当注意,在图6中,微处理器300的某些实际上与微处理器100相同的部件用与图1中相同的符号来表示,而且将不对这些相同部件做详细解释。
微处理器300是由COMS构成的,包括指令存储器110、指令解码单元320、指令执行单元130、数据存储器340、电压控制单元350、频率控制单元360和总线宽度控制单元370,如图6中的功能模块所示。
这里应当注意,指令解码单元320是一个从指令存储器110中获取指令和将其逐一地解码,并根据解码的结果将一个控制信号发送给指令执行单元130的一个指定的电路等等,以便使这样的一个指定电路投入运行。当解码了一个CHANGE指令时,该指令解码单元320还指示电压控制单元350和频率控制单元360改变其控制行为。当解码了一条计算指令时,指令解码单元320检测在该计算指令下将要计算的数据中的位数,并将检测的结果通知给总线宽度控制单元370。
图7显示的是一条设置微处理器300的指令的一部分的例子。
在该表中,MOVE指令是一条指示一个数据传输的指令;ADD16指令是一条16位加法指令,指示两个16位数据的相加,和输出一个16位数据结果;ADD12指令是一条12位加法指令,指示两个12位数据的相加,和输出一个12位数据结果;ADD8指令是一条8位加法指令,指示两个8位数据的相加,和输出一个8位数据结果。
这样,在微处理器300的指令集中,可以区分指令彼此之间是一条指示进行8位数据计算的指令,还是一条指示进行12位数据计算的指令,或是一条指示进行16位数据计算的指令。
对于每个应用程序,或对于一个应用程序中的每个处理,可以单独根据需要有选择地使用这些16位加法指令、12位加法指令、和位加法指令。注意,如果在应用程序中,在一系列要在相当短的时间里执行的指令中,同时存在16位、12位和8位中的两个或多个不同类型,最好是安排为,应用程序将运行模式设置为普通模式。原因是改变电压或时钟频率要占用一定的时间;因此,如果频繁地进行这样的改变,会降低应用程序的性能。例如,电压改变1mV要花费近10μs的时间。
在解码了一条16位的加法指令后,指令解码单元320即通知总线控制单元370该模式为16位模式,并使指令执行单元130中的计算单元131进行一个加法操作;在解码了一条12位的加法指令后,指令解码单元320即通知总线宽度控制单元370该模式为12位模式,并使计算单元131进行一个加法操作;在解码了一条8位的加法指令后,指令解码单元320即通知总线控制单元370该模式为8位模式,并使计算单元131进行一个加法操作。
数据存储器340为一个高速缓存存储器和存储数据的寄存器,包括用于存储运行模式的运行模式区域149。每个应用程序被配置为,在一个上述的CHANGE指令之前,包括一个数据传输指令,用于将这种表示运行模式的外部存储器中的数据传输到数据存储器的运行模式区域149中。当指令解码单元320解码一条数据传输指令,并使传输单元139执行该传输时,结果是,运行模式区域149存储一个由应用程序指定的运行模式。
总线宽度控制单元370包括存储和保持总线宽度模式的总线宽度模式区域371。一旦获得由指令解码单元320对要在一条指令下计算的数据位数的检测结果时,总线宽度控制单元370将该检测结果存储和保持在总线宽度模式区域371中。因此,总线宽度模式区域371保留了下面的信息:(i)对应于一个用于16位数据计算指令的16位模式,或(ii)对应于一个用于12位数据计算指令的12位模式,或(iii)对应于一个用于8位数据计算指令的8位模式。总线宽度控制单元370参照总线宽度模式区域371,例如,通过用一个2位信号来表示每个总线宽度模式,以便识别这些总线宽度模式,并将选择的总线宽度模式通知给计算单元131。
电压控制单元350控制有待施加到微处理器的功能模块上的电压。解码单元320利用一个指令触发来指示电压控制单元350改变其控制行为,或者利用一个触发改变总线宽度模式区域371中的总线宽度模式,有时实施控制使得不向没有使用的功能模块施加电压,有时使得施加到计算单元131的电压电平根据选择的总线宽度模式和存储在运行模式区域149中的运行模式而改变。
频率控制单元360为微处理器的每个功能模块提供时钟信号,并控制时钟信号的频率等等。解码单元320利用一个指令触发来指示频率控制单元360改变其控制行为,或者利用一个触发改变总线宽度模式区域371中的总线宽度模式,有时实施控制使得不向没有使用的功能模块提供时钟信号,有时使得提供给计算单元131的时钟信号频率根据选择的总线宽度模式和存储在运行模式区域149中的运行模式而改变。
在指令解码单元320的控制下,如针对一条16位的加法指令,根据一个加法指令等的操作数,选择由数据存储器340中的某些地址或寄存器I D指定的两段16位数据。所选择的两段16位数据将各自被放置到16位总线组上,并分别作为scrA[15:0]和scrB[15:0]输入到计算单元131。用类似的方式,对于一条12位加法指令,选择数据存储器340中的两段12位数据,并分别作为scrA[11:0]和scrB[11:0]输入到计算单元131。类似地,对于一条8位加法指令,选择数据存储器340中的两段8位数据,并分别作为scrA[7:0]和scrB[7:0]输入到计算单元131。
此外,在指令解码单元320的控制下,如针对一条16位的加法指令,根据一个加法指令的操作数等等,将由计算单元131输出的一段16位数据,即dest[15:0]存储在一个由数据存储器140中的某一地址或寄存器ID指定的一个区域;对于一条12位的加法指令,根据一个加法指令的操作数等等,将由计算单元131输出的一段12位数据,即dest[11:0]存储在一个由数据存储器140中的某一地址或寄存器ID指定的一个区域;对于一条8位的加法指令,根据一个加法指令的操作数等,将由计算单元131输出的一段8位数据,即dest[7:0]存储在一个由数据存储器140中的某一地址或寄存器ID指定的一个区域。一个由计算单元131输出的进位信号(carry)将被存储到所谓的标志寄存器等中。
利用上述配置的微处理器300,根据包含的每个计算指令所需的位数,可以减少应用程序执行中的电能消耗,而又可以保持该应用程序的执行所需的性能水平,即使总线宽度模式不是在各个应用程序中指定的。
3.第三实施方案
下面参考图8来描述一个修正方法,其中进行一个写控制,用于将在第一个实施方案中由微处理器100中的计算单元131输出的一段16位数据(dest[15:0])和一个进位信号(carry)写入到数据存储器140的一部分。
图8是一个示意图,显示了第三实施方案中能够进行写控制的数据存储器140的一部分。
数据存储区域141a、141b和141c分别是用于8位、4位和4位的区域,这三个数据存储区域共同构成了一个16位寄存器。每个数据存储器区域都是独立的,被配置为仅当其接收到一个写信号时,将总线上的数据存储到一个存储单元中,该数据是计算单元131的输出结果。
写控制单元143是一个实施控制的电路,在指令解码单元120的控制下,在计算单元131完成计算时,将计算单元131输出的数据写入到一个存储单元中。该写控制单元143接收由总线宽度控制单元170发送的表示一个总线宽度模式的信号183,并根据所表示的总线宽度模式利用一个写信号提供数据存储区域的某些部分或全部。更确切地讲,写控制单元143(i)如果选择的是16位模式,则利用一个写信号提供全部的数据存储区域141a、141b和141c,(ii)如果选择的是12位模式,则利用一个写信号仅提供数据存储区域141a和141b,(iii)如果选择的是8位模式,则利用一个写信号仅提供数据存储区域141a。
结果,例如当选择的是8位模式时,在数据存储器140中仅记录dest[7:0];因此,不需要将数据记录到数据区域141b和141c中所需的电能。这样,与选择16位模式的情况相比,可以减少数据记录所需的电能消耗。
4.第四实施方案
下面参考图9来描述一个微处理器(此后称为“修正的处理器”),包括计算单元231,该计算单元是第一实施方案中的微处理器100中的计算单元131的修正形式。
在该例中,总线宽度模式是16位模式或8位模式,8位模式意味着由8位数据部分来计算16位数据。但是,应当注意,在该修正的处理器中,配置为无论是16为模式还是8位模式,在计算中数据的16位都将是有效的。
这里没有特别讨论的该修正处理器的其它特征与第一实施方案中的微处理器100相同。
图9显示了第四实施方案中的计算单元231的一个详细结构。
如附图中所示,计算单元231是一个电路,对附图中用“scrA”和“scrB”表示的两个16位数据进行计算,并输出一个表示是否出现一个进位的进位信号(carry),以及在附图中用“dest”表示的计算结果。该计算单元231包括输入控制单元232、计算器233a和33b、进位传输单元234、进位控制单元235、输出控制单元236、和时钟选通控制单元237。
这里,输入控制单元232是一个选择器,根据表示一个总线宽度模式的信号183,从scrA[15:0]和scrB[15:0]中选择要输入到计算器的数据部分。在16位模式中,输入控制单元232(i)将scrA[7:0]和scrB[7:0]传输到与计算器233a相连的两组8位信号线上,以及(ii)将scrA[15:8]和scrB[15:8]传输到与计算器233b相连的两组8位信号线上。在8位模式中,输入控制单元232(i)在第一时钟定时,将scrA[7:0]和scrB[7:0]传输到与计算器233a相连的两组8位信号线上,以及(ii)在第二时钟定时,将scrA[15:8]和scrB[15:8]传输到与计算器233a相连的两组8位信号线上。应当注意,输入控制单元232接收时钟信号源,以便能够在计算前将数据输入到计算器中,与计算器的计算定时同步。
计算器233a和233b各为一个电路,(i)根据一个提供的信号时钟,在与输入控制单元232相连的信号线上获取两段数据,(ii)将这两段数据相加,同时考虑输入到进位输入端的进位信号,和(iii)输出一段8位数据和一个进位信号,作为计算的结果。进位传输单元234是一个电路,在进位控制单元235的控制下,将计算器233a输出的进位信号有选择地输入到计算器233a的进位输入端、计算器233b的进位输入端,或输出控制单元236。
进位控制单元235(i)当选择的是16位模式时,控制进位传输单元234,将一个进位信号输入到计算器233b的进位输入端,和(ii)当选择的是8位模式时,控制进位传输单元234,在第一个时钟定时中,将一个进位信号输入到计算器233a的进位输入端,控制进位传输单元234,在第一时钟定时中,将一个进位信号输入到输出控制单元236。
输出控制单元236是一个选择器,根据表示一个总线宽度模式的信号183,将一个由计算器输出的数据部分输出到计算单元231的外部,即输出到数据存储器。在16位模式中,输出控制单元236(i)输出计算器233a输出的一段8位数据,作为dest[7:0],输出计算器233b输出的一个8位数据,作为dest[15:8],和一个由计算器233b输出的进位信号,作为“carry”。在8位模式中,输出控制单元236接收两段由计算器233a分别在第一次相加的时钟定时中和第二次相加的时钟定时中输出的8位数据,并输出第一个作为dest[7:0]的8位数据,和第二个作为dest[15:8]的8位数据,并进一步输出由进位传输单元234传输的进位信号,作为接下来的时钟定时的“carry”。
时钟选通控制电路237是一个电路,当选定16位模式时,它将从频率控制单元160输出的时钟信号(CLK)分别发送至以“CLKA”和“CLKB”表示的计算器233a和233b,并且当选定8位模式时,将该时钟信号仅发送给计算器233a,截止向计算器233b供应该时钟信号。
在上述修正的处理器中,在8位模式中进行数据计算所需的时间近似为16位模式中进行数据计算所需时间的两倍,由于在8位模式中计算器233b没有运行,因此可以减少电能的消耗。
而且,在8位模式中,不需利用一个时钟在计算器间传输一个进位信号,如果利用两个时钟来传输一个进位信号,就足够了;因此,可以由电压控制单元150根据一个运行模式进行控制,在第一实施方案中已对此进行了讨论。因此,当8位模式与低耗模式组合时,数据计算速度近似为16为模式时的一半,而降低了电能消耗。当8位模式与高速模式组合时,数据计算速度要比16为模式时高出近一半。
5.附加说明
至此,根据第一至第四个实施方案,对本发明的微处理器进行了解释。不必说,本发明不局限于这些实施方案。更确切地讲,应当注意下列事项:
(1)在实施方案中,微处理器被说明为由CMOS构成,但不必局限于此。
(2)在实施方案中,有待被解码的指令是由指令存储器从外部存储器中获取的;但也可以是,被解码的指令可以直接是外部存储器中的指令,或者外部存储器包括某些描述,用于指定已经存储在指令存储器中的各种指令中的一条指令,这样,由该描述所指定的指令将由指令解码单元120来解码。而且,外部存储器也可以是一个片内存储器。
而且,本发明中提供的数据存储器可以是一个微处理器外部的存储器。
(3)在实施方案中,显示了一个例子,其中一个CHANGE指令用作一个改变施加到计算器上的电压和提供该计算器的时钟信号的频率的触发;但是,一个指令组可以不必一定包括一个诸如CHANGE的专用指令,以使一个应用程序包括一个专用的指令。可以配置为,一个应用程序利用一个指定的地址在一个特定的寄存器或一个存储器区域存储一个表示一个运行模式或一个总线宽度模式的数值,电压控制单元、频率控制单元或总线宽度模式控制单元监视的特定寄存器或存储器区域的内容的变化,并记录该变化,作为改变控制的触发。在这种情况下,具有这样的指定地址的特定寄存器或存储器区域起到较前的实施方案中提供的运行模式区域或总线宽度区域的作用。
而且,还可以配置为,由编程者等将一个运行模式和一个总线宽度模式记录在一个应用程序的执行文件中,从而,当启动该应用程序时,一个操作系统从该执行文件中读取那些表示一个运行模式和一个总线宽度模式的数值,并将这些值复制到一个具有特定地址的特定寄存器或存储器区域中。而且,当操作系统通过不时地切换这些值在不同时间执行不同的应用程序时,可以根据每个应用程序来存储表示一个运行模式和一个总线宽度模式的数值,以便当应用程序切换时,用于新的应用程序的表示一个运行模式和一个总线宽度模式的数值会被复制到一个特定的寄存器等中。此外,可以是,操作系统事先将每个应用程序的表示一个运行模式和一个总线宽度模式的数值单独存储在一个存储区域中,使得这些特定的寄存器能够根据这些存储的值来设定,还可以是,一个操作员等能够改变这些存储的值。而且,也可以是,存储器具有这样一个结构,可以通过微处理器外部的总线来更新运行模式区域和总线宽度模式区域。
(4)可以配置为,对于实施方案中讨论的一条CHANGE指令,即一条用于触发改变对计算单元的电压电平和提供给控制单元的时钟频率的控制专用的指令,仅可以在监控程序模式中执行,例如,只有由这样一个运行在监控程序模式的操作系统核心程序所发出的CHANGE指令可以起到一个触发改变上述的电压电平和频率的作用。
(5)在实施方案中,由电压控制单元控制的电压电平的例子是1.8V、1.6V和1.4V,由频率控制单元控制的时钟信号的频率的例子是100MHz、133MHz和166MHz;但这仅是举例说明,也可以事先通过实验发现和采用其它能够达到正常性能的值。
(6)在实施方案中,电压控制单元和频率控制单元根据运行模式实施控制;但是也可以配置为,仅依照总线宽度模式来实施控制,运行模式固定为常规模式,这样,可以省略微处理器中的某些仅用来根据运行模式实施控制的部件。在这种情况下,应用程序无需包含运行模式相关的信息或传输指令。而且,当省略了第二实施方案中的处理器300的某些仅用来根据运行模式实施控制的部件时,由微处理器300执行的应用程序不必一定包括CHANGE指令和总线宽度模式相关的信息和传输指令。
(7)在实施方案中,所讨论的总线宽度模式是8位模式、12位模式和16位模式;但是,也可以采用一个4位模式,其中计算是仅利用一个能够进行4位数据的数据计算的计算器来进行的。也可以通过连接不同的计算器来采用一个24位模式或一个32模式,使得计算的最大位数为32位。
(8)在实施方案中,讨论了加法电路的电压电平和时钟信号的频率;但是,也可以对加法电路以外的多种数据计算电路,如包括一个乘法电路的算术电路或逻辑电路,采用类似的控制。
(9)在实施方案中,时钟选通控制单元根据总线宽度模式来控制局部计算单元和计算器的时钟信号源;但是,也可以根据总线宽度模式来控制和截止向计算器提供的输入数据信号,而不是控制时钟信号源。也可以配置计算单元,使得为每个局部计算单元和计算器单独提供电能,可以根据总线宽度模式来截止局部计算单元和计算器的电能供应。
(10)在第一实施方案中,写连接被配置为,如果没有提供时钟信号,则计算单元的计算器输出的电压电平为零;但是,也可以不用这种配置,而是配置为,作为计算结果的16位数据的最高4位或最高8位是没有参考值的不确定值,这样应用程序就不查阅该值。而且,也可以是,选择电路利用与一个选定进位信号(carry)中表示的相同的值,即0或1,在选择12位模式时,填充16位数据结果的最高4位,或者在选择8位模式时,填充16位数据结果的最高8位。
(11)在第三实施方案中,对于向一个数据存储器的写入,写入控制单元143根据总线宽度模式,利用一个写入信号来提供某些或全部数据存储区域,仅有这些利用一个写入信号提供的数据存储区域将记录存储单元中的一定数据;但是,也可以是,处理器本身具有一个机构,除了控制数据写入,还根据总线宽度模式有选择地控制从数据存储区域的数据读取。应当注意到,这样可以达到减少电能消耗的效果,即使仅根据总线宽度模式对数据存储器的数据读取和数据写入进行了控制,而没有根据总线宽度模式来控制提供给计算单元的时钟信号。
(12)在第四实施方案中,讨论了利用计算器233a和233b进行一段16位数据计算的16位模式,和仅利用计算器233a在两个周期中进行同样计算的8位模式。但是,也可以采用另外的有效模式,其中仅利用计算器233a在两个周期中进行一段16位数据的计算,同时,仅利用计算器233b在两个周期中进行另外一段16位数据的计算。也可以采用另一种有效模式,其中利用计算器233a和233b独立并行地进行两段8位数据的计算。在进行并行和独立计算的计算单元中控制不同的计算器时,无需进行计算器间的进位传输;由于没有这样的进位传输,在第四和其它实施方案中,可以根据高速模式或低耗模式来实施控制。
尽管参考附图利用例子对本发明进行了全面的描述,但应当注意对于那些本领域的熟练人员来讲,很容易对本发明进行各种更改和修正。因此,除非超出本发明的范围,这些更改和修正都应被认为是都属于本发明的内容。

Claims (26)

1.一种根据从一个存储器中获取的指令进行处理的微处理器,包含:
计算电路,(i)包括各自进行局部数据计算的局部计算电路,和(ii)能够进行N位或更少位的数据计算,其中N是局部计算电路进行数据计算的总位数;
位宽选择单元,能够选择一个位宽模式,指定要进行数据计算的一定的位数;
执行控制单元,如果获取的指令是一个用于数据计算的指令,该执行控制单元能够控制计算电路进行数据计算;和
运行控制单元,当执行控制单元控制计算电路进行数据计算时,能够(i)在位宽选择单元选择指定N位的第一位宽模式的情况下,使所有的局部计算电路投入运行,和(ii)当位宽选择单元选择指定少于N位的第二位宽模式的情况下,暂停预定数量的局部计算电路的运行,并使其余的局部计算电路投入运行;其中
所述局部计算电路在接收到时钟信号时,各自进行局部数据计算;和
所述运行控制单元(i)在位宽选择单元选择第一位宽模式时,为所有的局部计算电路各自提供时钟信号,和(ii)在位宽选择单元选择第二位宽模式时,暂停为预定数量的局部计算电路提供时钟信号,而为其余的局部计算电路各自提供时钟信号。
2.依照权利要求1的微处理器,其中
局部计算电路各包括一个计算器和一个位数据获取电路,所述计算器对提供的一定位数的数据进行数据计算,所述位数据获取电路在接收到一个时钟信号时,从一个或多个数据总线上获得所述位数的数据,并提供给计算器,对于每个局部电路而言该位数都是特定的,和
所述运行控制单元通过为每个位数据获取电路提供时钟信号,来为每个局部计算电路提供一个时钟信号。
3.依照权利要求1的微处理器,其中
除了对N位的最高有效位进行计算的局部电路之外的局部计算电路,各自均能够输出一个表示数据计算中发生一个溢出的进位信号,
所述计算电路包括一个进位信号传输单元,向除了对N位的最低有效位进行数据计算的局部电路之外的局部计算电路各输入一个进位信号,所述进位信号是从局部计算电路输出的,该局部计算电路进行一定数量的低有效位计算,这些低有效位低于这样的有待输入进位信号的特定局部计算电路所计算的位,和
所述微处理器进一步包括一个进位信号抑制单元,在位宽选择单元选择第二位宽模式的情况下,抑制进位信号传输单元将一个进位信号输入到预定数量的由运行控制单元暂停了对其提供时钟信号的局部计算电路。
4.依照权利要求3的微处理器,进一步包括一个时钟频率控制单元,能够(i)控制运行控制单元,在位宽选择单元选择第一位宽模式的情况下,为每个局部计算电路提供一个第一频率的时钟信号,和(ii)控制运行控制单元,在位宽选择单元选择第二位宽模式的情况下,为每个局部计算电路提供一个高于第一频率的第二频率的时钟信号。
5.依照权利要求3的微处理器,进一步包括一个电压控制单元,能够控制一个电压电平,以便(i)在位宽选择单元选择第一位宽模式的情况下,向计算电路施加一个第一电压电平,和(ii)在位宽选择单元选择第二位宽模式的情况下,向计算电路施加一个低于第一电压电平的第二电压电平。
6.依照权利要求3的微处理器,进一步包括:
时钟频率控制单元,能够(i)控制所述运行控制单元,在位宽选择单元选择第一位宽模式的情况下,为每个局部计算电路提供一个第一频率的时钟信号,和(ii)控制所述运行控制单元,在位宽选择单元选择第二位宽模式的情况下,为每个所述局部计算电路提供一个高于第一频率的第二频率的时钟信号;
电压控制单元,能够控制一个电压电平,以便(i)在位宽选择单元选择第一位宽模式的情况下,向所述计算电路施加一个第一电压电平,和(ii)在位宽选择单元选择第二位宽模式的情况下,向所述计算电路施加一个低于第一电压电平的第二电压的所述电平;
控制模式选择单元,能够根据为每个所述局部计算电路提供的时钟信号的频率和施加到计算电路的电压的电压电平,选择一个控制模式;和
切换单元,能够(i)在控制模式选择单元选择第一控制模式时,启动所述频率控制单元的控制,和禁止所述电压控制模式的控制,和(ii)在控制模式选择单元选择第二控制模式时,启动所述电压控制模式的控制,和禁止频率控制单元的控制。
7.依照权利要求6的微处理器,进一步包括:
信号稳定单元,能够在一个预定的时间内,将用于向微处理器外部输出一个信号的信号线的电平维持在一个预定的电平,该预定时间从所述控制模式选择单元从一个控制模式变到另一个控制模式时开始。
8.依照权利要求1的微处理器,包括:
存储器访问单元,能够访问一个外部存储器,其中
如果获取的指令是一个用于存储器的数据写入指令,则所述执行控制单元使存储器访问单元将一个或多个数据写入到该外部存储器,和
位宽选择单元,根据存储在外部存储器的一个预定区域中的值来选择一个位宽模式。
9.依照权利要求1的微处理器,其中
如果获取的指令是一个数据计算指令,则所述位宽选择单元(i)在获取的指令是一个用于N位的数据计算的指令的情况下,选择第一位宽模式,和(ii)在获取的指令是一个用于少于N位的数据计算的指令的情况下,选择第二位宽模式。
10.依照权利要求1的微处理器,包括
数据存储单元,包括一个存储所述计算电路的进行数据计算的N位数据计算结果的区域;和
数据写入控制单元,能够(i)在选择第一位宽模式的情况下,将全部N位结果写入到该区域中,和(ii)在选择第二位宽模式的情况下,仅将少于N位的一部分结果写入到该区域中。
11.依照权利要求1的微处理器,包括:
数据写入控制单元,能够(i)在选择第一位宽模式的情况下,将从所述计算电路输出结果的全部N位写入到一个外部存储器中,和(ii)在选择第二位宽模式的情况下,仅该结果中的少于N位的一部分写入到该外部存储器中。
12.依照权利要求1的微处理器,其中:
所述计算电路包括两个局部计算电路,每个局部计算电路进行N/2位的局部数据计算,和
所述执行控制单元,如果获取的指令是一个N位数据计算的指令,而且是在位宽选择单元选择第二位宽的情况下,(i)使一个所述局部计算电路进行N位的较低N/2位的局部数据计算,然后(ii)使同样的局部计算电路进行较高N/2位的局部数据计算,同时,如果存在的话,考虑一个在较低N/2位局部数据计算中出现的溢出。
13.依照权利要求1的微处理器,其中
每个所述局部计算电路在接收到提供的若干位数据之后立即进行局部数据计算,和
所述运行控制单元(i)在所述位宽模式选择单元选择第一位宽模式时,为所有局部计算电路均提供该特定局部计算电路能够计算的尽可能多的位数,和(ii)在位宽模式选择单元选择第二位宽模式时,暂停向预定数量的所述局部计算电路提供数据位,而向其余的所述局部计算电路的每一个提供该特定局部计算电路能够计算的尽可能多的数据位。
14.依照权利要求1的微处理器,其中
当施加了一个预定的电压电平时,每个所述局部计算电路进行数据计算,和
所述运行控制单元(i)在所述位宽模式选择单元选择第一位宽模式时,为所有所述局部计算电路的每一个均施加该预定的电压电平,和(ii)在所述位宽模式选择单元选择第二位宽模式时,暂停向预定数量的所述局部计算电路施加该预定的电压电平,而向其余的局部计算电路的每一个施加预定的电压电平。
15.依照权利要求14的微处理器,包括
存储器访问单元,能够访问一个外部存储器,其中
如果获取的指令是一个用于存储器数据写入指令,则执行所述控制单元使所述存储器访问单元将一个或多个数据写入到该外部存储器,和
所述位宽选择单元,根据存储在所述外部存储器的一个预定区域中的值来选择一个位宽模式。
16.依照权利要求14的微处理器,其中
如果获取的指令是一个数据计算指令,则所述位宽选择单元(i)在获取的指令是一个用于N位的数据计算的指令的情况下,选择第一位宽模式,和(ii)在获取的指令是一个用于少于N位的数据计算的指令的情况下,选择第二位宽模式。
17.依照权利要求1的微处理器,其中
计算电路在接收到一个时钟信号后立即进行数据计算,和
该微处理器进一步包括:
频率改变单元,能够改变提供给该计算电路的时钟信号频率;和
信号稳定单元,能够在一个预定的时间内,将用于向所述微处理器外部输出信号的信号线的电压电平维持在一个预定的电平,该预定时间从所述频率改变单元改变频率时开始。
18.依照权利要求1的微处理器,其中
该计算电路在被施加了一个预定的电压电平时,进行数据计算,和
该微处理器进一步包括:
电压改变单元,能够在一个预定范围内改变施加到该计算电路上的电压电平;和
信号稳定单元,能够在一个预定的时间内,将用于向所述微处理器外部输出信号的信号线的电压电平维持在一个预定的电平,该预定时间从电压改变单元改变电压电平时开始。
19.一种能够节约电能并提高处理速度的微处理器,其特征在于包括:
包括多个局部计算电路的数据计算单元,所述数据计算单元利用所有或者少于所有的局部计算电路而能使所述多个局部计算电路进行计算处理,和
控制模式选择单元,用于从多个频率水平选出时钟信号频率和从多个电压电平中选出电压电平,以便施加到进行计算处理的这些局部计算电路,
其中,所述数据计算单元利用少于所有的局部计算电路,以便以较低电压电平节约电能消耗和/或以较高时钟频率水平提高计算处理速度。。
20.依照权利要求19的微处理器,进一步包括:
响应所述控制模式选择单元的切换单元,使得在第一控制模式下,所述时钟频率控制单元控制多个局部计算电路;和使得在第二控制模式下,所述电压控制单元控制所述多个局部计算电路。
21.依照权利要求20的微处理器,进一步包括:
信号稳定单元,能够在一个预定的时间内,将用于向所述微处理器外部输出信号的信号线的电压电平维持在一个预定的电平,该预定时间从所述控制模式选择单元从一个控制模式改变到另一个控制模式时开始。
22.依照权利要求20的微处理器,进一步包括:
存储器访问单元,能够访问一个外部存储器,
其中所获取的指令使控制模式选择单元能够有效地激活所有多个局部计算电路中的一些。
23.依照权利要求22的微处理器,其中
所述控制模式选择单元包括位宽选择单元,该位宽选择单元根据所获取的计算指令中有待计算一定位数的数据来改变位宽模式。
24.依照权利要求22的微处理器,其中
所述控制模式选择单元包括位宽选择单元用于选择代表局部计算电路数目的位宽模式,根据存储在外部存储器中的一个预定区域的值激活所述局部计算电路。
25.依照权利要求24的微处理器,其中
当获取的指令是一个用于N位的数据计算的指令时,位宽选择单元选择第一位宽模式,和当获取的指令是一个用于少于N位的数据计算的指令时,选择第二位宽模式。
26.在微处理器中执行指令的方法,用以有选择地保持功率和提高处理速度,所述微处理器具有指令执行单元,该指令执行单元包括多个分执行单元,这些分执行单元的全部或者其中的一部分通过在从多个时钟频率选出的时钟频率和从多个电压电平选出的电压电平的条件下被激活来实施执行处理,所述方法包括以下步骤:
接收输入数据;
确定需要进行输入数据处理的所述分执行单元的数目;
当该分执行单元的数目小于全部所述多个分执行单元的数目时,从所述多个时钟频率中选出时钟频率并且从所述多个电压电平中选出电压电平;和
将该电压电平仅施加到所选数目的分执行单元以便能够处理输入数据,
其中与激活所有所述分执行单元相比,激活所有所述分执行单元中的一部分分执行单元可以在低电压电平条件下节约功率消耗和/或在较高时钟频率条件下提高执行速度。
CNB021570299A 2001-12-19 2002-12-19 微处理器 Expired - Fee Related CN1286005C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001386710A JP2003186567A (ja) 2001-12-19 2001-12-19 マイクロプロセッサ
JP386710/01 2001-12-19
JP386710/2001 2001-12-19

Publications (2)

Publication Number Publication Date
CN1427336A CN1427336A (zh) 2003-07-02
CN1286005C true CN1286005C (zh) 2006-11-22

Family

ID=19187963

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021570299A Expired - Fee Related CN1286005C (zh) 2001-12-19 2002-12-19 微处理器

Country Status (6)

Country Link
US (1) US7020787B2 (zh)
EP (1) EP1321850A3 (zh)
JP (1) JP2003186567A (zh)
KR (1) KR20030051380A (zh)
CN (1) CN1286005C (zh)
TW (1) TWI266237B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108416431A (zh) * 2018-01-19 2018-08-17 上海兆芯集成电路有限公司 神经网络微处理器与宏指令处理方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4412905B2 (ja) * 2003-01-28 2010-02-10 パナソニック株式会社 低電力動作制御装置、およびプログラム最適化装置
US20060206689A1 (en) * 2003-08-07 2006-09-14 Matsushita Electric Industrial Co., Ltd. Processor integrated circuit and product development method using the processor integrated circuit
US7496776B2 (en) * 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
JP4367225B2 (ja) * 2004-05-11 2009-11-18 ソニー株式会社 半導体集積回路
US7886131B1 (en) * 2006-08-14 2011-02-08 Marvell International Ltd. Multithread processor with thread based throttling
US9141392B2 (en) * 2010-04-20 2015-09-22 Texas Instruments Incorporated Different clock frequencies and stalls for unbalanced pipeline execution logics
TWM393112U (en) * 2010-06-02 2010-11-21 Sentelic Corp digital signal processor
KR20110137973A (ko) * 2010-06-18 2011-12-26 삼성전자주식회사 컴퓨터시스템 및 그 제어방법
US20120265904A1 (en) * 2011-06-23 2012-10-18 Renesas Electronics Corporation Processor system
JP5791462B2 (ja) * 2011-10-24 2015-10-07 三菱電機株式会社 半導体管理システム及び半導体管理方法
CN108733352B (zh) * 2017-04-25 2021-06-11 上海寒武纪信息科技有限公司 支持向量排序的装置、方法及应用
US20240303041A1 (en) * 2021-07-23 2024-09-12 Solid State Of Mind Apparatus and method for energy-efficient and accelerated processing of an arithmetic operation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2762670B2 (ja) * 1990-03-30 1998-06-04 松下電器産業株式会社 データ処理装置
JPH04302522A (ja) * 1991-03-29 1992-10-26 Hitachi Ltd 演算回路及びこれを用いた適応フィルタ並びにエコーキャンセラ
JP2984463B2 (ja) * 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
EP1229440B1 (en) * 1993-05-27 2007-05-02 Matsushita Electric Industrial Co., Ltd. Program converting unit and processor improved in address management
JP2832899B2 (ja) * 1993-05-31 1998-12-09 松下電器産業株式会社 データ処理装置およびデータ処理方法
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
EP0654733B1 (en) * 1993-11-23 2000-05-24 Hewlett-Packard Company Parallel data processing in a single processor
JP3520611B2 (ja) * 1995-07-06 2004-04-19 株式会社日立製作所 プロセッサの制御方法
JP3655403B2 (ja) * 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
CN1210647C (zh) * 1996-11-29 2005-07-13 松下电器产业株式会社 适于作由正值处理及饱和运算处理组成的修整处理的处理器
US5918058A (en) * 1997-02-20 1999-06-29 Arm Limited Routing of clock signals in a data processing circuit with a power saving mode of operation
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
US6308252B1 (en) * 1999-02-04 2001-10-23 Kabushiki Kaisha Toshiba Processor method and apparatus for performing single operand operation and multiple parallel operand operation
US6141283A (en) * 1999-04-01 2000-10-31 Intel Corporation Method and apparatus for dynamically placing portions of a memory in a reduced power consumption state
US6425086B1 (en) * 1999-04-30 2002-07-23 Intel Corporation Method and apparatus for dynamic power control of a low power processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108416431A (zh) * 2018-01-19 2018-08-17 上海兆芯集成电路有限公司 神经网络微处理器与宏指令处理方法

Also Published As

Publication number Publication date
TWI266237B (en) 2006-11-11
US20030135779A1 (en) 2003-07-17
TW200306493A (en) 2003-11-16
EP1321850A2 (en) 2003-06-25
EP1321850A3 (en) 2007-11-21
CN1427336A (zh) 2003-07-02
KR20030051380A (ko) 2003-06-25
US7020787B2 (en) 2006-03-28
JP2003186567A (ja) 2003-07-04

Similar Documents

Publication Publication Date Title
CN1286005C (zh) 微处理器
CN1174313C (zh) 多指令集的数据处理
CN1095116C (zh) 执行两种指令长度代码的处理机及其指令码输入装置
CN1121014C (zh) 具有risc结构的八位微控制器
CN100339824C (zh) 高效执行特长指令字的处理器和方法
CN1129843C (zh) 使用组合的数据处理器系统和指令系统
CN1253806C (zh) 仲裁电路和数据处理系统
CN1117315C (zh) 微处理机及多处理机系统
CN1177772A (zh) 独立处理多个指令流、软式控制各指令流的处理功能的多程序流程同时处理器
CN1050451A (zh) 可处于低功率待用状态的计算机
CN1749955A (zh) 控制处理器和协处理器间的数据传输的运算处理装置
CN1278226C (zh) 模拟装置、模拟方法
CN1476559A (zh) 用于保存返回状态的数据处理设备和方法
CN1993670A (zh) 信息处理装置
CN1758213A (zh) 带有共享内容的异构型并行多线程处理器(hpmt)
CN1664753A (zh) 用于集成设备中功率节流的快速频率切换的方法和系统
CN1503142A (zh) 控制高速缓存的高速缓存系统和高速缓存控制装置
CN1035190A (zh) 基于操作数长度和对位的微码转移
CN1236455A (zh) 具有risc结构的八位微控制器
CN1194321C (zh) 高速信息检索系统
CN1170906A (zh) 可变流水线级数的数据处理装置
CN1734415A (zh) 分枝预测装置及分枝预测方法
CN1744093A (zh) 数据流图处理方法及具备可重构电路的处理装置
CN1485741A (zh) 信息处理装置以及电子设备
CN1959630A (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
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee