專利名稱:在中央處理器中用于交替指令集的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及微處理器。更具體地,本發(fā)明涉及有選擇性地確定由中央處理器執(zhí)行的一個(gè)或更多個(gè)指令集。
背景技術(shù):
微控制器單元(MCU)多年來一直用于制造業(yè)和電子工業(yè)。微控制器典型地配備有中央處理器(CPU)和其他輔助元件。但是就所有基于硬件的器件而言,一旦器件已經(jīng)投放市場,一些用戶就會(huì)感到需要對(duì)CPU的指令集進(jìn)行修改。遺憾的是,一旦CPU已嵌入半導(dǎo)體,那么對(duì)半導(dǎo)體基底的修改,以及由此引起的器件行為的改變均已然不可能。因此在技術(shù)上就需要實(shí)現(xiàn)一種能夠適應(yīng)新的指令集,但仍然能以舊指令集工作的CPU。
發(fā)明內(nèi)容
本發(fā)明通過提供一種具有在可供替換的指令集之間選擇的熔斷器設(shè)置(fuse setting)的微控制器,克服了以上所述問題以及現(xiàn)有技術(shù)的其它缺點(diǎn)和不足。
對(duì)于指令數(shù)目有限的微控制器,可將這些指令編碼為其操作碼空間的一部分,人們希望這些微控制器具有在兩個(gè)或更多個(gè)指令集之間選擇的能力。為了包括用于優(yōu)化C編譯器代碼壓縮的新指令,現(xiàn)有指令的行為不得不進(jìn)行改變。但是,為了便于與先前開發(fā)的代碼逆向兼容,所述CPU必須表現(xiàn)出雙重行為一個(gè)或更多以新指令為目標(biāo),而一個(gè)以舊程序?yàn)槟繕?biāo)。還有可能添加附加指令(位于兩個(gè)指令集之一)。而且,可將所述指令選擇機(jī)制設(shè)計(jì)安排為平行和/或串行以將可能的選擇拓展到兩個(gè)或者更多個(gè)指令集。
本發(fā)明的特征和優(yōu)點(diǎn)將會(huì)在以下出于公開的目的而給出并配以附圖的實(shí)施例的敘述中一目了然。
通過參照以下配以附圖的描述,會(huì)對(duì)本發(fā)明所公開的特征和優(yōu)點(diǎn)有更為完全的理解,其中圖1是根據(jù)本發(fā)明的設(shè)計(jì)方案,圖示具有指令集選擇器的中央處理器結(jié)構(gòu)的方框圖。
圖2是根據(jù)本發(fā)明的設(shè)計(jì)方案,圖示具有熔斷器的中央處理器結(jié)構(gòu)的方框圖。
圖3是根據(jù)本發(fā)明的設(shè)計(jì)方案,圖示一種指令集選擇方法的流程圖。
圖4是根據(jù)本發(fā)明的設(shè)計(jì)方案,圖示所述指令集選擇方法的另一實(shí)施例的流程圖。
本發(fā)明能夠容許各種各樣的修改和可供選擇的形式,其中特定的示例性實(shí)施例已經(jīng)通過附圖示例的方式進(jìn)行了展示,并在此有詳細(xì)的文字描述。不過應(yīng)該理解到,這里給出的特定實(shí)施例的描述并不是要將本發(fā)明限制在所公開的特定形式,而與之相反,所述意圖是要如附加權(quán)利要求書所詳細(xì)說明的那樣,覆蓋所有落入本發(fā)明實(shí)質(zhì)和范圍的修改、等價(jià)物和可供選擇的方法。
具體實(shí)施例方式
提供一種在中央處理器中交替執(zhí)行指令集的方法、系統(tǒng)和設(shè)備。向微控制器提供一種熔斷器設(shè)置,依賴于該設(shè)置來確定多重指令集中的哪個(gè)指令集由所述中央處理器進(jìn)行處理。通過改變所述熔斷器設(shè)置,可以改變所述中央處理器特性,并由此總體上改變所述微控制器的特性。改變所述熔斷器設(shè)置,便可以選擇兩個(gè)或更多指令集中的一個(gè)用于所述中央處理器執(zhí)行。另外,改變所述熔斷器設(shè)置,也可以執(zhí)行或使無效單個(gè)指令集中的一個(gè)或更多個(gè)子集。
第二指令集,或者第一指令集的某些部分是否能被所述中央處理器執(zhí)行,可通過多種方式來實(shí)現(xiàn)。一個(gè)切換的例子就是采用熔斷器。所述熔斷器可以是基于閃熔的熔斷器,可以位于所述處理器的外部,或者嵌入所述處理器內(nèi)部。另外,所述熔斷器也可以在制造時(shí)通過諸如燒掉所述熔斷器發(fā)熱部分的辦法來進(jìn)行設(shè)置,這樣所述處理器就會(huì)基于所述熔斷器設(shè)置表現(xiàn)出不同的行為(由此某些指令變?yōu)榭蓤?zhí)行)。當(dāng)在下文的說明性示例中對(duì)單根熔斷器進(jìn)行描述時(shí),將會(huì)理解可以將多根熔斷器,或者熔斷器的等價(jià)物,設(shè)計(jì)安排以串聯(lián)和/或并聯(lián)的方式來提供更為豐富的指令選擇,以及由此引起的同一處理器的行為選擇。在可供替換的實(shí)施例中,除指令外,通過設(shè)置(或不設(shè)置)單根熔斷器或多根熔斷器還可以執(zhí)行增強(qiáng)功能(enhancement)。雖然所述熔斷器最好為可編程或可配置(通過諸如閃熔的辦法),但是為實(shí)施本發(fā)明則不必令所述熔斷器具有可編程的功能。
所述說明性實(shí)施例具有兩個(gè)指令集。不過本發(fā)明能夠使用兩個(gè)以上的指令集,或者相同指令集的一個(gè)或更多部分。特殊操作模式和RESET(重新設(shè)定)模式采用兩個(gè)寄存器進(jìn)行配置,出于方便稱為“CONFIG4L”和“TCFG4L”。STVREN設(shè)置用于使有效/使無效棧溢出/棧下溢重新設(shè)定。當(dāng)被設(shè)置時(shí),使有效由棧溢出/下溢引起的RESET。當(dāng)被清除時(shí),使無效由棧溢出/下溢引起的RESET。表1闡明了所述寄存器和它們的可能設(shè)置。
表1配置寄存器4L
在上表中,‘R’表示可讀位,‘W’表示可寫位,‘P’表示可編程位,‘U’表示未執(zhí)行位(但讀取為‘0’),0表示所述位被清除,‘x’表示所述位為未知,后跟一個(gè)數(shù)字的短線(‘-’)表示所述熔斷器,即工廠已編程序值寄存器(factory programmed value register),和測試RESET時(shí)的值。所述BKBUG是后臺(tái)調(diào)試器(background debugger)的使能位。所述ENHCPU是增強(qiáng)型CPU(enhanced CPU)的使能位。換句話說,在該實(shí)施例中,所述ENHCPU位是用于使有效由所述處理器執(zhí)行的可供替換的(或增強(qiáng)的)指令的熔斷器。LVP是低電壓編程使能位,而STVREN是所述棧溢出重新設(shè)定使能位。前述的每個(gè)位都可以通過分別設(shè)定為‘1’或‘0’來使有效或使無效。
所述指令集的選擇可以通過多種方法來實(shí)現(xiàn)。在該說明性實(shí)施例中,所述LVP熔斷器用于使有效/使無效低電壓編程選擇。當(dāng)被設(shè)置時(shí),使有效低電壓編程。既可以通過Vpp引腳高電壓,也可以通過所述編程(“PGM”)引腳邏輯高來進(jìn)入線路中的串行編程(“ICSP”)模式。當(dāng)被清除時(shí),使無效低電壓編程,進(jìn)入測試模式的唯一方法就是所述Vpp引腳高電壓;所述PGM引腳將被忽略。
在該實(shí)施例中,出于方便命名為“ENHCPU”的參數(shù)用于使有效/使無效要與C編譯器一起使用的所述CPU的增強(qiáng)型特征(enhanced feature)。當(dāng)所述“ENHCPU”熔斷器設(shè)定為‘0’時(shí),提供逆向兼容性。在該實(shí)施例中,當(dāng)所述ENHCPU熔斷器設(shè)定為‘1’時(shí),使有效所述C編譯器替換編碼(alternatecoding)的使用??晒┨鎿Q的實(shí)施例可能會(huì)顛倒所述ENHCPU熔斷器的設(shè)置(比方說逆向兼容性通過將所述ENHCPU設(shè)定為‘1’來提供)。
當(dāng)清除所述ENHCPU熔斷器時(shí),可以添加多重指令來增強(qiáng)所述CPU的性能。例如一些增強(qiáng)指令(enhanced instruction)可以是CALLW、MOVSF、MOVSS、PUSHL、ADDLFSR、ADDULNK、SUBLFSR和SUBULNK。而且,當(dāng)清除所述熔斷器時(shí),添加一個(gè)尋址模式,該模式利用按文字偏移(literal offset)索引的地址的訪問位編碼(access bit encode)來限制地址數(shù)目。在可供替換的實(shí)施例中,當(dāng)清除所述ENHCPU熔斷器時(shí),可能會(huì)執(zhí)行另一個(gè)指令集,或者使有效/使無效可供替換的尋址模式。
圖1a闡明了在此所公開的本發(fā)明的一個(gè)實(shí)施例。明確地,所述中央處理器102與指令集選擇器104(例如所述ENHCPU熔斷器)一同工作。所述指令集選擇器104可能位于任何方便的位置,既可以作為所述中央處理器的組成部分(見圖1b),也可以在別處,比方說在母板上(未示出)。
圖2闡明了另一個(gè)實(shí)施例,其中所述指令集選擇器是位于所述中央處理器102外部的熔斷器204。所述熔斷器204,與圖1b所述實(shí)施例類似,可能嵌入中央處理器102內(nèi)部。雖然考慮了熔斷器204,但是只要所述指令集選擇器104能夠在所述中央處理器內(nèi)部改變所述模式,那么本發(fā)明的其它實(shí)施例就都是可能的。
圖3闡明了選擇指令集的一種方法。所述方法通常起始于步驟302。將由一個(gè)或更多指令組成的一組指令分配給所述中央處理器102。問題是,將會(huì)在哪一個(gè)指令集下對(duì)那些指令進(jìn)行解釋并執(zhí)行?為了回答該問題,在步驟304中進(jìn)行核對(duì)來確認(rèn)已設(shè)置所述熔斷器204。如果已設(shè)置所述熔斷器204,那么在步驟308中所述中央處理器102采用所述第一指令集。否則,在步驟306中所述中央處理器102采用所述第二指令集。在兩者中任一情況下,所述指令均被執(zhí)行,而所述方法通常結(jié)束于步驟310。
圖4闡明了所述指令集選擇方法的另一實(shí)施例。在這種情況下,設(shè)置所述熔斷器204的結(jié)果與圖3所示方法相反。參照圖4,所述方法通常起始于步驟402。將由一個(gè)或更多指令組成的一組指令分配給所述中央處理器102。在步驟404中進(jìn)行核對(duì)來確認(rèn)已設(shè)置所述熔斷器204。如果已設(shè)置所述熔斷器204,那么在步驟408中所述中央處理器102采用所述第二指令集。否則,在步驟406中所述中央處理器102采用所述第一指令集。在二者中任一情況下,所述指令均被執(zhí)行,而所述方法通常結(jié)束于步驟410。
因此本發(fā)明很適于實(shí)現(xiàn)所述目標(biāo)并達(dá)到了所提及的目的和優(yōu)點(diǎn),以及其它其本身所固有的特征。當(dāng)對(duì)本發(fā)明采用圖示說明,文字?jǐn)⑹?,并參照本發(fā)明的示例性實(shí)施例進(jìn)行詳細(xì)闡述時(shí),這些參考并不意味著對(duì)本發(fā)明的限制,也無法推論出這樣的限制。本發(fā)明在形式和功能上能夠容許相當(dāng)多的修改、替換和等價(jià)物,而這些在本領(lǐng)域技術(shù)人員和那些從本發(fā)明的公開中受益的人身上均可發(fā)生。對(duì)本發(fā)明進(jìn)行圖示說明和文字?jǐn)⑹龅膶?shí)施例只是示例性質(zhì),并不是本發(fā)明范圍毫無遺漏的說明。因此,本發(fā)明只由附加權(quán)利要求書的實(shí)質(zhì)和范圍所限制,在權(quán)利要求書中給出了在所有方面對(duì)等價(jià)物的完全認(rèn)定。
權(quán)利要求
1.一種用于在中央處理器的第一指令集與第二指令集之間作選擇的系統(tǒng),包括熔斷器,所述熔斷器與所述中央處理器一同工作;其中當(dāng)將所述熔斷器設(shè)定為第一值時(shí),所述中央處理器執(zhí)行所述第一指令集,而當(dāng)將所述熔斷器設(shè)定為第二值時(shí),所述中央處理器執(zhí)行所述第二指令集。
2.如權(quán)利要求1所述系統(tǒng),其中所述第一值為‘1’。
3.如權(quán)利要求1所述系統(tǒng),其中所述第二值為‘1’。
4.如權(quán)利要求1所述系統(tǒng),其中所述第一值為‘0’。
5.如權(quán)利要求1所述系統(tǒng),其中所述第二值為‘0’。
6.一種方法包括確定是否已設(shè)置熔斷器;以及如果已設(shè)置所述熔斷器,那么依照第一指令集對(duì)指令進(jìn)行解釋,否則,依照第二指令集對(duì)所述指令進(jìn)行解釋。
7.如權(quán)利要求6所述方法,其中設(shè)定所述熔斷器為值‘1’。
8.如權(quán)利要求6所述方法,其中設(shè)定所述熔斷器為值‘0’。
9.一種用于在具有中央處理器的兩個(gè)或更多子集的指令集之間作選擇的系統(tǒng),包括熔斷器,所述熔斷器與所述中央處理器一同工作;其中當(dāng)所述熔斷器被設(shè)定為第一值時(shí),所述中央處理器執(zhí)行由所述指令集的兩個(gè)或更多子集組成的第一組,而當(dāng)所述熔斷器被設(shè)定為第二值時(shí),所述中央處理器執(zhí)行由所述指令集的兩個(gè)或更多子集組成的第二組。
10.如權(quán)利要求9所述系統(tǒng),其中所述第一值為‘1’。
11.如權(quán)利要求9所述系統(tǒng),其中所述第二值為‘1’。
12.如權(quán)利要求9所述系統(tǒng),其中所述第一值為‘0’。
13.如權(quán)利要求9所述系統(tǒng),其中所述第二值為‘0’。
全文摘要
提供一種方法、系統(tǒng)和設(shè)備用于在中央處理器中交替執(zhí)行指令集。向微控制器提供一種諸如熔斷器的配置機(jī)制,依賴于該設(shè)置來決定多重指令集中的哪個(gè)(或單個(gè)指令集的哪些部分)可由中央處理器執(zhí)行。通過改變?nèi)蹟嗥髟O(shè)置,可改變中央處理器的特性,并由此總體上改變微處理器的特性。
文檔編號(hào)G06F9/38GK1871580SQ200480031140
公開日2006年11月29日 申請日期2004年10月20日 優(yōu)先權(quán)日2003年10月24日
發(fā)明者艾戈·沃吉沃達(dá), 約瑟夫·W·特里斯 申請人:密克羅奇普技術(shù)公司