CN1871580A - 在中央处理器中用于交替指令集的方法和系统 - Google Patents

在中央处理器中用于交替指令集的方法和系统 Download PDF

Info

Publication number
CN1871580A
CN1871580A CNA200480031140XA CN200480031140A CN1871580A CN 1871580 A CN1871580 A CN 1871580A CN A200480031140X A CNA200480031140X A CN A200480031140XA CN 200480031140 A CN200480031140 A CN 200480031140A CN 1871580 A CN1871580 A CN 1871580A
Authority
CN
China
Prior art keywords
fuse
central processing
processing unit
instruction set
instruction
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.)
Pending
Application number
CNA200480031140XA
Other languages
English (en)
Inventor
艾戈·沃吉沃达
约瑟夫·W·特里斯
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology 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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of CN1871580A publication Critical patent/CN1871580A/zh
Pending 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/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
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/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

在中央处理器中用于交替指令集的方法和系统
技术领域
本发明主要涉及微处理器。更具体地,本发明涉及有选择性地确定由中央处理器执行的一个或更多个指令集。
背景技术
微控制器单元(MCU)多年来一直用于制造业和电子工业。微控制器典型地配备有中央处理器(CPU)和其他辅助元件。但是就所有基于硬件的器件而言,一旦器件已经投放市场,一些用户就会感到需要对CPU的指令集进行修改。遗憾的是,一旦CPU已嵌入半导体,那么对半导体基底的修改,以及由此引起的器件行为的改变均已然不可能。因此在技术上就需要实现一种能够适应新的指令集,但仍然能以旧指令集工作的CPU。
发明内容
本发明通过提供一种具有在可供替换的指令集之间选择的熔断器设置(fuse setting)的微控制器,克服了以上所述问题以及现有技术的其它缺点和不足。
对于指令数目有限的微控制器,可将这些指令编码为其操作码空间的一部分,人们希望这些微控制器具有在两个或更多个指令集之间选择的能力。为了包括用于优化C编译器代码压缩的新指令,现有指令的行为不得不进行改变。但是,为了便于与先前开发的代码逆向兼容,所述CPU必须表现出双重行为:一个或更多以新指令为目标,而一个以旧程序为目标。还有可能添加附加指令(位于两个指令集之一)。而且,可将所述指令选择机制设计安排为平行和/或串行以将可能的选择拓展到两个或者更多个指令集。
本发明的特征和优点将会在以下出于公开的目的而给出并配以附图的实施例的叙述中一目了然。
附图说明
通过参照以下配以附图的描述,会对本发明所公开的特征和优点有更为完全的理解,其中:
图1是根据本发明的设计方案,图示具有指令集选择器的中央处理器结构的方框图。
图2是根据本发明的设计方案,图示具有熔断器的中央处理器结构的方框图。
图3是根据本发明的设计方案,图示一种指令集选择方法的流程图。
图4是根据本发明的设计方案,图示所述指令集选择方法的另一实施例的流程图。
本发明能够容许各种各样的修改和可供选择的形式,其中特定的示例性实施例已经通过附图示例的方式进行了展示,并在此有详细的文字描述。不过应该理解到,这里给出的特定实施例的描述并不是要将本发明限制在所公开的特定形式,而与之相反,所述意图是要如附加权利要求书所详细说明的那样,覆盖所有落入本发明实质和范围的修改、等价物和可供选择的方法。
具体实施方式
提供一种在中央处理器中交替执行指令集的方法、系统和设备。向微控制器提供一种熔断器设置,依赖于该设置来确定多重指令集中的哪个指令集由所述中央处理器进行处理。通过改变所述熔断器设置,可以改变所述中央处理器特性,并由此总体上改变所述微控制器的特性。改变所述熔断器设置,便可以选择两个或更多指令集中的一个用于所述中央处理器执行。另外,改变所述熔断器设置,也可以执行或使无效单个指令集中的一个或更多个子集。
第二指令集,或者第一指令集的某些部分是否能被所述中央处理器执行,可通过多种方式来实现。一个切换的例子就是采用熔断器。所述熔断器可以是基于闪熔的熔断器,可以位于所述处理器的外部,或者嵌入所述处理器内部。另外,所述熔断器也可以在制造时通过诸如烧掉所述熔断器发热部分的办法来进行设置,这样所述处理器就会基于所述熔断器设置表现出不同的行为(由此某些指令变为可执行)。当在下文的说明性示例中对单根熔断器进行描述时,将会理解可以将多根熔断器,或者熔断器的等价物,设计安排以串联和/或并联的方式来提供更为丰富的指令选择,以及由此引起的同一处理器的行为选择。在可供替换的实施例中,除指令外,通过设置(或不设置)单根熔断器或多根熔断器还可以执行增强功能(enhancement)。虽然所述熔断器最好为可编程或可配置(通过诸如闪熔的办法),但是为实施本发明则不必令所述熔断器具有可编程的功能。
所述说明性实施例具有两个指令集。不过本发明能够使用两个以上的指令集,或者相同指令集的一个或更多部分。特殊操作模式和RESET(重新设定)模式采用两个寄存器进行配置,出于方便称为“CONFIG4L”和“TCFG4L”。STVREN设置用于使有效/使无效栈溢出/栈下溢重新设定。当被设置时,使有效由栈溢出/下溢引起的RESET。当被清除时,使无效由栈溢出/下溢引起的RESET。表1阐明了所述寄存器和它们的可能设置。
                 表1:配置寄存器4L
  CONFIG4L:
  R/P-1   R/P-0   U-0   U-0   U-0   R/P-1   U-0   R/P-1
  TCFG4L:
  R/W-1   R/W-1   U-0   U-0   U-0   R/W-1   U-0   R/W-1
  BKBUG   ENHCPU   -   -   -   LVP   -   STVREN
  位7                                                                                              位0
在上表中,‘R’表示可读位,‘W’表示可写位,‘P’表示可编程位,‘U’表示未执行位(但读取为‘0’),0表示所述位被清除,‘x’表示所述位为未知,后跟一个数字的短线(‘-’)表示所述熔断器,即工厂已编程序值寄存器(factory programmed value register),和测试RESET时的值。所述BKBUG是后台调试器(background debugger)的使能位。所述ENHCPU是增强型CPU(enhanced CPU)的使能位。换句话说,在该实施例中,所述ENHCPU位是用于使有效由所述处理器执行的可供替换的(或增强的)指令的熔断器。LVP是低电压编程使能位,而STVREN是所述栈溢出重新设定使能位。前述的每个位都可以通过分别设定为‘1’或‘0’来使有效或使无效。
所述指令集的选择可以通过多种方法来实现。在该说明性实施例中,所述LVP熔断器用于使有效/使无效低电压编程选择。当被设置时,使有效低电压编程。既可以通过Vpp引脚高电压,也可以通过所述编程(“PGM”)引脚逻辑高来进入线路中的串行编程(“ICSP”)模式。当被清除时,使无效低电压编程,进入测试模式的唯一方法就是所述Vpp引脚高电压;所述PGM引脚将被忽略。
在该实施例中,出于方便命名为“ENHCPU”的参数用于使有效/使无效要与C编译器一起使用的所述CPU的增强型特征(enhanced feature)。当所述“ENHCPU”熔断器设定为‘0’时,提供逆向兼容性。在该实施例中,当所述ENHCPU熔断器设定为‘1’时,使有效所述C编译器替换编码(alternatecoding)的使用。可供替换的实施例可能会颠倒所述ENHCPU熔断器的设置(比方说逆向兼容性通过将所述ENHCPU设定为‘1’来提供)。
当清除所述ENHCPU熔断器时,可以添加多重指令来增强所述CPU的性能。例如一些增强指令(enhanced instruction)可以是CALLW、MOVSF、MOVSS、PUSHL、ADDLFSR、ADDULNK、SUBLFSR和SUBULNK。而且,当清除所述熔断器时,添加一个寻址模式,该模式利用按文字偏移(literal offset)索引的地址的访问位编码(access bit encode)来限制地址数目。在可供替换的实施例中,当清除所述ENHCPU熔断器时,可能会执行另一个指令集,或者使有效/使无效可供替换的寻址模式。
图1a阐明了在此所公开的本发明的一个实施例。明确地,所述中央处理器102与指令集选择器104(例如所述ENHCPU熔断器)一同工作。所述指令集选择器104可能位于任何方便的位置,既可以作为所述中央处理器的组成部分(见图1b),也可以在别处,比方说在母板上(未示出)。
图2阐明了另一个实施例,其中所述指令集选择器是位于所述中央处理器102外部的熔断器204。所述熔断器204,与图1b所述实施例类似,可能嵌入中央处理器102内部。虽然考虑了熔断器204,但是只要所述指令集选择器104能够在所述中央处理器内部改变所述模式,那么本发明的其它实施例就都是可能的。
图3阐明了选择指令集的一种方法。所述方法通常起始于步骤302。将由一个或更多指令组成的一组指令分配给所述中央处理器102。问题是,将会在哪一个指令集下对那些指令进行解释并执行?为了回答该问题,在步骤304中进行核对来确认已设置所述熔断器204。如果已设置所述熔断器204,那么在步骤308中所述中央处理器102采用所述第一指令集。否则,在步骤306中所述中央处理器102采用所述第二指令集。在两者中任一情况下,所述指令均被执行,而所述方法通常结束于步骤310。
图4阐明了所述指令集选择方法的另一实施例。在这种情况下,设置所述熔断器204的结果与图3所示方法相反。参照图4,所述方法通常起始于步骤402。将由一个或更多指令组成的一组指令分配给所述中央处理器102。在步骤404中进行核对来确认已设置所述熔断器204。如果已设置所述熔断器204,那么在步骤408中所述中央处理器102采用所述第二指令集。否则,在步骤406中所述中央处理器102采用所述第一指令集。在二者中任一情况下,所述指令均被执行,而所述方法通常结束于步骤410。
因此本发明很适于实现所述目标并达到了所提及的目的和优点,以及其它其本身所固有的特征。当对本发明采用图示说明,文字叙述,并参照本发明的示例性实施例进行详细阐述时,这些参考并不意味着对本发明的限制,也无法推论出这样的限制。本发明在形式和功能上能够容许相当多的修改、替换和等价物,而这些在本领域技术人员和那些从本发明的公开中受益的人身上均可发生。对本发明进行图示说明和文字叙述的实施例只是示例性质,并不是本发明范围毫无遗漏的说明。因此,本发明只由附加权利要求书的实质和范围所限制,在权利要求书中给出了在所有方面对等价物的完全认定。

Claims (13)

1.一种用于在中央处理器的第一指令集与第二指令集之间作选择的系统,包括:
熔断器,所述熔断器与所述中央处理器一同工作;
其中当将所述熔断器设定为第一值时,所述中央处理器执行所述第一指令集,而当将所述熔断器设定为第二值时,所述中央处理器执行所述第二指令集。
2.如权利要求1所述系统,其中所述第一值为‘1’。
3.如权利要求1所述系统,其中所述第二值为‘1’。
4.如权利要求1所述系统,其中所述第一值为‘0’。
5.如权利要求1所述系统,其中所述第二值为‘0’。
6.一种方法包括:
确定是否已设置熔断器;以及
如果已设置所述熔断器,那么依照第一指令集对指令进行解释,否则,依照第二指令集对所述指令进行解释。
7.如权利要求6所述方法,其中设定所述熔断器为值‘1’。
8.如权利要求6所述方法,其中设定所述熔断器为值‘0’。
9.一种用于在具有中央处理器的两个或更多子集的指令集之间作选择的系统,包括:
熔断器,所述熔断器与所述中央处理器一同工作;
其中当所述熔断器被设定为第一值时,所述中央处理器执行由所述指令集的两个或更多子集组成的第一组,而当所述熔断器被设定为第二值时,所述中央处理器执行由所述指令集的两个或更多子集组成的第二组。
10.如权利要求9所述系统,其中所述第一值为‘1’。
11.如权利要求9所述系统,其中所述第二值为‘1’。
12.如权利要求9所述系统,其中所述第一值为‘0’。
13.如权利要求9所述系统,其中所述第二值为‘0’。
CNA200480031140XA 2003-10-24 2004-10-20 在中央处理器中用于交替指令集的方法和系统 Pending CN1871580A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51427103P 2003-10-24 2003-10-24
US60/514,271 2003-10-24

Publications (1)

Publication Number Publication Date
CN1871580A true CN1871580A (zh) 2006-11-29

Family

ID=34549323

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200480031140XA Pending CN1871580A (zh) 2003-10-24 2004-10-20 在中央处理器中用于交替指令集的方法和系统

Country Status (6)

Country Link
US (1) US20050091474A1 (zh)
EP (1) EP1687713A1 (zh)
KR (1) KR20060125740A (zh)
CN (1) CN1871580A (zh)
TW (1) TW200521858A (zh)
WO (1) WO2005043385A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006179124A (ja) * 2004-12-22 2006-07-06 Renesas Technology Corp 半導体記憶装置
EP1966684B1 (en) * 2005-12-23 2010-03-17 Koninklijke KPN N.V. Processor lock
US20090031109A1 (en) * 2007-07-24 2009-01-29 Via Technologies Apparatus and method for fast microcode patch from memory
US20090031110A1 (en) * 2007-07-24 2009-01-29 Via Technologies Microcode patch expansion mechanism
US20090031103A1 (en) * 2007-07-24 2009-01-29 Via Technologies Mechanism for implementing a microcode patch during fabrication
US20090031108A1 (en) * 2007-07-24 2009-01-29 Via Technologies Configurable fuse mechanism for implementing microcode patches
US20090031090A1 (en) * 2007-07-24 2009-01-29 Via Technologies Apparatus and method for fast one-to-many microcode patch
US20090031121A1 (en) * 2007-07-24 2009-01-29 Via Technologies Apparatus and method for real-time microcode patch
US20090031107A1 (en) * 2007-07-24 2009-01-29 Via Technologies On-chip memory providing for microcode patch overlay and constant update functions
US9274796B2 (en) 2009-05-11 2016-03-01 Arm Finance Overseas Limited Variable register and immediate field encoding in an instruction set architecture
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US8880851B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US8924695B2 (en) 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9128701B2 (en) 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US9032189B2 (en) 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
CN111209186A (zh) * 2019-12-25 2020-05-29 上海亮牛半导体科技有限公司 一种mcu用户程序代码的保护结构及其熔断测试方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
GB2290395B (en) * 1994-06-10 1997-05-28 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US6076155A (en) * 1995-10-24 2000-06-13 S3 Incorporated Shared register architecture for a dual-instruction-set CPU to facilitate data exchange between the instruction sets

Also Published As

Publication number Publication date
US20050091474A1 (en) 2005-04-28
KR20060125740A (ko) 2006-12-06
EP1687713A1 (en) 2006-08-09
TW200521858A (en) 2005-07-01
WO2005043385A1 (en) 2005-05-12

Similar Documents

Publication Publication Date Title
CN1871580A (zh) 在中央处理器中用于交替指令集的方法和系统
CN104183270B (zh) 配置数据的处理装置及方法
US5881290A (en) Industrial controller decompiler accommodating an expandable instruction set
TWI520058B (zh) 資料處理裝置與方法
CN1881476A (zh) 用于在集成电路装置上存储阵列冗余数据的装置和方法
CN1244069A (zh) 半导体器件的可编程管脚指定
CN101097512B (zh) 用于实施混洗和移位操作的方法、设备和系统
US8867746B2 (en) Method for protecting a control device against manipulation
IL124904A (en) High efficiency VLIW processor
CN101727983A (zh) 存储设备及其编程方法
RU2006135629A (ru) Вставка битов в слово данных
JP5352780B2 (ja) プロセッサ
CA2359862A1 (en) Using identifiers and counters for controlled optimization compilation
CN101031979A (zh) 用于在熔丝阵列上编写和读取代码的方法及装置
JP2020155197A (ja) メモリから読み取られたバイナリ信号の変換
TWI419168B (zh) 資料編程方法與資料讀取方法及應用其之單次可編程記憶體
CN101868780A (zh) 增强的微处理器或微控制器
EP3057100A1 (en) Memory device and operating method of same
CN1088868C (zh) 可修补嵌入式微处理器系统中的程序的装置
CN1486458A (zh) Cpu安全之提升方法
US8405530B2 (en) Encoding data based on weight constraints
US6515653B2 (en) Keyboard control system containing manufacture's identification code and multiple selection matrix
US20100090720A1 (en) Flexible parallel/serial reconfigurable array configuration scheme
JP4637707B2 (ja) 回路設計方法、回路設計システム、及びその回路設計方法での処理をコンピュータに行わせるためのプログラム
CN115954037B (zh) 提高efuse芯片良率的方法、装置和设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication