TWI403954B - 具有指令集之電子系統、微控制器及其指令執行方法 - Google Patents
具有指令集之電子系統、微控制器及其指令執行方法 Download PDFInfo
- Publication number
- TWI403954B TWI403954B TW097131382A TW97131382A TWI403954B TW I403954 B TWI403954 B TW I403954B TW 097131382 A TW097131382 A TW 097131382A TW 97131382 A TW97131382 A TW 97131382A TW I403954 B TWI403954 B TW I403954B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- data
- register
- primary
- microcontroller
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 11
- 238000012545 processing Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 239000000463 material Substances 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30069—Instruction skipping instructions, e.g. SKIP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
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)
Description
本發明是關於一種電子系統,尤其是關於一種微控制器及其執行指令的方法。
近年來,微控制器單元(Microcontroller Unit,MCU)在電子產業中被廣泛地應用。微控制器包括用於操作微處理器行為的指令。其中,使用精簡指令集計算(Reduced Instruction Set Computing,RISC)的微處理器得到廣泛採用。
對微控制器之資料記憶體的存取可採用直接定址模式和間接定址模式。在直接定址模式中,指令包括一個用來直接存取資料記憶體的位址。在間接定址模式中,用來直接存取資料記憶體的位址並不直接包含在指令內。微控制器可根據指令中的偏移量和暫存器中的內容計算出所需的位址。因此,間接定址模式比直接定址模式複雜。然而,在傳統微控制器中,直接定址模式的定址空間非常有限。例如,一個具有16位元編碼的傳統指令包括8位元運算碼和8位運算元(operand)。8位運算元可包含8位元的位址。此時,資料記憶體的直接定址空間可為0~255。資料記憶體的其他空間可採用間接定址進行存取。
此外,傳統的微控制器可採用一組8位元工作暫存器或一組16位元工作暫存器來進行算術和/或邏輯運算。然而,不能直接採用8位元工作暫存器進行16位元資料的運算,也不能直接採用16位元工作暫存器進行8位元資料的運算。因此,
當採用8位元工作暫存器時,傳統的微控制器需要額外的指令將16位元資料轉換成8位元資料;同樣的,當採用16位元資料工作暫存器時,微控制器需要額外的指令將8位元資料轉換成16位元資料。
本發明要解決的技術問題在於提供一種微控制器及其執行指令的方法,用以節省系統的儲存空間,降低系統的複雜性和成本。
為解決上述技術問題,本發明提供了一種微控制器,其包括多個主暫存器、次暫存器和中央處理單元(CPU)。多個主暫存器分別儲存多個主資料。每個主資料具有第一寬度。次暫存器由多個主暫存器組成,用於儲存具有第二寬度的次資料。次資料包含多個主資料之一組合。中央處理單元在第一模式下執行第一指令,即讀取一個主資料以進行操作;中央處理單元還在第二模式下執行第二指令,即讀取次資料以進行操作。
本發明還提供了一種執行指令的方法,其包括:將多個主資料分別儲存在多個主暫存器中,其中該多個主資料的每一個主資料具有第一寬度;將具有第二寬度的次資料儲存在包含多個主暫存器之次暫存器中,其中次資料包含多個主資料之一組合;在第一模式下執行第一指令,即讀取多個主資料的一個資料以進行操作;在第二模式下執行第二指令,即讀取次資料以進行操作。
本發明還提供了一種電子系統,其包括:功能模組和微控制器。微控制器用於根據第一指令和第二指令控制該功能模
組。該微控制器包括:多個主暫存器,用於分別儲存多個主資料,該多個主資料的每一個主資料具有第一寬度;由該多個主暫存器組成的次暫存器,用於儲存具有第二寬度的次資料,該次資料包含多個主資料之一組合;中央處理單元,用於在第一模式下執行第一指令,即讀取多個主資料的一個主資料以進行操作,以及在第二模式下執行第二指令,即讀取該次資料以進行操作。
以下結合附圖和具體實施例對本發明的技術方案進行詳細的說明,以使本發明的特性和優點更為明顯。
以下將對本發明微控制器的實施例給出詳細的說明。儘管本發明將結合一些具體實施模式進行闡述和說明,但需要注意的是本發明並不僅僅只局限於這些實施模式。相反,對本發明進行的修改或者等同替換,均應涵蓋在本發明的權利要求範圍當中。
本發明的一個實施例提供了一種微控制器。該微控制器可應用於各種電子設備中以操作電子設備的運作。電子設備包括通信設備、汽車、安全系統、電池系統、熱水器和恆溫調節器等,但不以此為限。
圖1所示為根據本發明一個實施例之微控制器100的架構圖。在一個實施例中,微控制器100包括一中央處理單元(Central processing unit,CPU)102、一指令記憶體104、一程式記憶體106和一資料記憶體108。在一個實施例中,指令記憶體104可用於儲存包含多個指令的指令集,並可整合在
一解碼器(圖1中未示)中。為了執行一個指令,解碼器可獲取該指令的訊息。微控制器100可採用一種程式記憶體106和資料記憶體108分開的哈佛架構(Harvard architecture)。程式記憶體106可為可編程快閃記憶體,用於儲存用戶編寫的程式。資料記憶體108可包括一資料靜態隨機存取記憶體(static random access memory,SRAM),用於儲存程式的資料。微控制器100包括一程式記憶體匯流排112和一資料記憶體匯流排114,分別用於存取程式記憶體106和資料記憶體108。當執行一個指令時,中央處理單元102可透過資料記憶體匯流排114從資料記憶體108取出資料,並可同步透過程式記憶體匯流排112從程式記憶體106取出下一條指令。
圖2所示為根據本發明一實施例之微控制器100(如圖1所示)的資料記憶體108的示範方塊圖。在一實施例中,資料記憶體108可包括內部暫存器、特殊功能暫存器、輸入輸出(Input/Output,I/O)暫存器和一靜態隨機存取記憶體(SRAM),但不以此為限。資料記憶體108在不同的應用中具有不同的架構。在一實施例中,內部暫存器在微控制器100執行操作指令(例如,算術運算指令、邏輯運算指令等)時被存取,特殊功能暫存器用於控制周邊硬體,I/O暫存器用於I/O操作,SRAM用於儲存操作資料。
如圖2的例子所示,內部暫存器映射到資料記憶體108中的位址為0000H~000CH,例如,暫存器R0L的位址為0000H,暫存器R0H的位址為0001H,暫存器R1L的位址為0002H,暫存器R1H的位址為0003H,暫存器IXL的位址為0004H,暫存器IXH的位址為0005H,暫存器IYL的位址為0006H,暫存器
IYH的位址為0007H,暫存器PCL的位址為0008H,暫存器PCH的位址為0009H,暫存器SPL的位址為000AH,暫存器SPH的位址為000BH,暫存器CC的位址為000CH。在一個實施例中,暫存器R0L也可在算術和邏輯運算中作為一通用累加器(A)。特殊功能暫存器(例如:界面暫存器、類比/數位轉換器以及計時器之控制暫存器等、以及I/O暫存器)映射到資料訊記憶體108中的位址為000DH~00DFH。SRAM可以是一個內部通用數資料SRAM,映射到資料記憶體108中的位址00E0H~FFFFH。SRAM的大小可根據具體應用的需要作改變。
圖3所示為根據本發明一實施例之微控制器100(如圖1所示)中資料記憶體108中暫存器的示例性編程模型300。編程模型300顯示內部暫存器302~332(例如,圖2中所示之資料記憶體108中的內部暫存器)。更具體的說,編程模型300包括工作暫存器302~318(例如:R0H 302、R0L304、R1H306、R1L308、IXH312、IXL314、IYH316、IYL318)用於儲存算術和邏輯運算的操作資料。編程模型300還顯示出一用於指示微控制器正在執行指令序列中哪一條指令的程式計數(PC)暫存器(例如,PCH322和PCL324)、一用於指出微控制器的堆疊中最頂端資料項的堆疊指標(SP)暫存器(例如,SPH326和SPL328),以及一用於儲存條件碼(CC)目前值的條件碼暫存器332。
在一個實施例中,內部暫存器(例如,暫存器302~332)為主暫存器。優點在於,多個主暫存器302~332可構成一次暫存器。在一個實施例中,主暫存器302~332構成了一組次暫存器342~354。更具體的說,暫存器R0H 302和暫存器R0L 304構成了一暫存器R0 342、暫存器R1H 306和暫存器R1L 308
構成了一暫存器R1 344、暫存器IXH 312和暫存器IXL 314構成了一暫存器IX 346、暫存器IYH 316和暫存器IYL 318構成了一暫存器IY 348、暫存器PCH 322和暫存器PCL 324構成了一暫存器PC 352、暫存器SPH 326和暫存器SPL 328構成了一暫存器SP 354。
主暫存器302~332可分別儲存多個主資料。每一個主資料具有一第一寬度,例如,8位元。每一次暫存器342~354包含多個主暫存器(例如,在圖3的例子中為兩個主暫存器)並可儲存具有一第二寬度(比如:16位元)的次資料。次資料包含多個主資料之組合。例如,次暫存器342中的次資料包含主暫存器302中的主資料和主暫存器304中的主資料之組合。其優點在於,中央處理單元102可在第一模式下執行一指令,此第一模式即為讀取主資料進行運算;中央處理單元102也可在第二模式下執行一指令,此第二模式即為讀取次資料進行運算。根據指令中所包含的訊息,該指令可指定一或多個主暫存器,也可指定一或多個次暫存器。
在一個實施例中,次暫存器的寬度等於構成該次暫存器的多個主暫存器的寬度總合。在一實施例中,工作暫存器302~318的寬度為8位元,可用作工作位元組暫存器。而且,次暫存器342~348的寬度為16位元,可用作工作文字暫存器。因此,可透過直接讀取位元組暫存器(例如,主暫存器)中的資料來執行位元組操作指令(例如,ADDR Ra,Rb),且可透過直接讀取文字暫存器(比如,次暫存器)中的資料來執行文字操作指令(比如:ADDWR Ri,Rj)。
在一實施例中,一指令可包括暫存器的位址,例如,A,Ra,
Rb,Ri和Rj。Ra和Rb可表示來源工作位元組暫存器的位址,在機器碼編碼中表示為“xxx”。在位元組操作中,根據Ra和Rb的值來選擇和存取主暫存器302~318。Ri和Rj可表示來源工作文字暫存器的位址,在機器碼編碼中表示為“xx”。在文字操作中,根據Ri和Rj的值來選擇和存取次暫存器342~348。
例如,在一個實施例中,一指令可被一翻譯器(例如,組譯器或C編譯器)翻譯為一16位元機器碼aaaa aaaa aabb ccee。值得注意的是,本發明實施例中所描述的機器碼包含二進制碼和機器碼中所示的字母或符號(例如,aaaa aaaa aabb ccee)僅作說明使用。在一個實施例中,位元[15]至位元[6](aaaa aaaa aa)之部分係指示指令的操作,位元[5]至位元[3](bbc)之部分係指示一第一主暫存器的一位址,位元[2]至位元[0](cee)之部分係指示一第二主暫存器的一位址。因此,當該指令被執行時時,第一主暫存器(bbc)和第二主暫存器(cee)被存取。在另一實施例中,位元[15]至位元[4](aaaa aaaa aabb)之部分係指示指令的操作,位元[3]至位元[2](cc)之部分係指示一第一次暫存器的位址,位元[1]至位元[0](ee)之部分係指示一第二次暫存器的位址。因此,當該指令被執行時時,第一次暫存器(cc)和第二次暫存器(ee)被存取。
一示例性指令“ADDR Ra,Rb”的操作是將主暫存器Ra和Rb中的8位元資料相加。該指令的機器碼為“1001 1010 00aa abbb”,其中“1001 1010 00”指示位元組加法運算,“aaa”表示主暫存器Ra的位址,“bbb”表示主暫存器Rb的位址。因此,Ra中的資料和Rb中的資料相加,並根據一目標位元(例如,位元[6])將相加所得的結果寫入暫存器Ra。示例性指令
“ADDWR Ri,Rj”的操作是將次暫存器Ri和Rj中的16位元資料相加。該指令的機器碼為“1001 1111 0000 iijj”,其中“1001 1111 0000”表示文字加法運算,“ii”表示次暫存器Ri的位址,“jj”表示次暫存器Rj的位址。因此,Ri中的資料和Rj中的資料相加,並根據目標位元(例如,位元[4])將相加所得的結果寫入暫存器Ri。
因此,微控制器可執行包含不同寬度資料的指令,並可把資料儲存在對應寬度的暫存器中。執行結果可相應地寫入主暫存器或次暫存器。在一實施例中,不需要額外的轉換指令和轉換操作,例如,將16位元資料轉換為8位元,反之亦然。因此,減少了指令總數和操作時間。
在一個實施例中,內部工作暫存器302~318還可根據不同應用的需要配置其他寬度(例如,16位元或32位元)。因此,次暫存器342~348可被配置具有32位元或64位元的寬度。
同理,程式計數暫存器352和堆疊指標暫存器SP 354也可根據不同應用的特殊需求改變寬度的大小。在一個實施例中,程式計數暫存器352和堆疊指標暫存器354可為16位元寬度,其中分別包括8位元的程式計數暫存器PCH 322和PCL 324、以及堆疊指標暫存器SPH 326和SPL 328,用於支援包含64K指令的程式。
另外,條件碼暫存器332可為8位元寬度。在一個實施例中,條件碼暫存器332包括一進位/借位(BC)旗標(flag)位元、一零(ZE)旗標位元、一負(NZ)旗標位元、一溢出(OV)旗標位元、一符號測試(ST)元、一用於半字(nibble)操作的半進位/借位(HC)旗標位元、一用於文字操作的文字進位/
借位(WC)旗標位元、以及一整體(global)中斷致能/失能(IE)位元。
圖4所示為根據本發明一實施例之微控制器100(如圖1所示)執行一指令的示例性編碼(機器碼)400。一指令可透過一翻譯器(例如,組譯器或C編譯器)翻譯成為一16位元的機器碼。機器碼400包括運算碼410和運算元420。在一實施例中,運算碼410具有可擴展的寬度(例如,7位元),用於指示該指令之操作。運算元420可指示指令操作的資料,例如:參數、主暫存器的位址、次暫存器的位址等。在一個實施例中,機器碼400還包括一個目的地位址位元(例如,位元[8]),用於指示一結果目的地。有利之處在於,根據機器碼400,中央處理單元102可從主暫存器中讀取主資料,也可從次暫存器中讀取次資料。
微控制器100可採用多種定址模式,包括一固定(inherent)定址模式、一文字定址模式、一暫存器定址模式、一直接定址模式和一間接定址模式等,但不以此為限。在一個實施例中,固定定址的指令除有明確定義外不需要位址。文字定址的指令包含可用於數學運算的文字常數區。例如,一個指令包含參數k,該參數k可為8位元並可直接用於運算。
如果一個指令指示一暫存器定址模式,該指令指定一或多個包含操作資料的暫存器。該指令可指定一或多個主暫存器302~318,或一或多個次暫存器342~348。根據指令所指定的暫存器,能直接完成所需操作。
在一個實施例中,執行直接定址的指令需要存取該指令所包含的位址所對應的資料記憶體。直接定址指令可包括運算元
@f,表示一暫存器的8位元位址。在一個16位元機器碼(例如,圖4中所示之編碼400)中,位元[7]至位元[0]可用於存取位址從0到255的資料記憶體。
示例性指令“ADDM A,@f,d”的操作是將累加器A(例如,圖2中所示之暫存器R0L)中的資料和直接定址模式下之資料記憶體(例如,圖2中所示之SRAM)中位址為(f)的資料相加,並根據指令中的目的地位元“d”將一加法結果寫入累加器A或位址為(f)的資料記憶體。
有利之處在於,資料記憶體的直接定址空間可以被擴展。在一個實施例中,一個指令的機器碼400可包括一用於存取資料記憶體的位址和至少一用於選擇在普通直接定址模式或擴展直接定址模式中做選擇的模式位元。普通直接定址模式是指根據指令中的位址存取資料記憶體,而擴展直接定址模式則是根據一包括指令中的位址以及一額外位址之擴展位址存取資料記憶體。額外位址可被儲存於微控制器的暫存器中。暫存器中的額外位址和指令中的位址共同構成擴展位址。於是可根據擴展位址存取資料記憶體。
例如,機器碼400的位元[7]至位元[5]可用作模式位元。在一個實施例中,如果位元[7]至位元[5]之值從“000”到“110”(即,“000”、“001”、“010”、“011”、“100”、“101”、或“110”),指示普通直接定址模式。則位元[7]至位元[0]可用於存取資料記憶體中位址從0到223中的內容。在一實施例中,如果位元[7]至位元[5]之值為“111”,則表明選擇擴展直接定址模式。此時,一個暫存器(例如,圖3中所示之暫存器IXH 312)的8位元資料和機器
碼400中位元[4]至位元[0]可組成一個13位元的位址,可用於直接存取資料記憶體中8K位元組的空間。因此,直接定址空間被擴展。
微控制器100也可執行指示間接定址模式的指令。指標(index)暫存器可被應用於間接定址,例如,暫存器IX 346或IY 348。間接定址的指令還包括一個偏移量。透過將指標暫存器中的內容加上或減去偏移量以提供一指標位址,則可根據此指標位址存取資料記憶體。在一實施例中,偏移量為一可與指標暫存器中的內容相加的5位元立即偏移量(例如,用offs5[rx]表示)。在另一個實施例中,偏移量可為一個3位元的自動偏移後增量(offset-post-increment,OPI)。指標位址是指標暫存器之值加上3位元的偏移量。在另一個實施例中,偏移量可為一個3位元的自動偏移前減量(offset-pre-decrement,OPD)。指標位址等於指標暫存器的值減去3位元的偏移量。
間接定址的指令可包括運算元,如:q、rx、r、@offs5[rx]、@offs3[rx]、@offs5[IY]、@offs3[IY]、@offs3[IX]、p、c、e、n等。參數q可表示指標模式選擇位元。在一個實施例中,當q等於零時,則選擇自動偏移後增量(OPI);當q等於1時,則選擇自動偏移前減量(OPD)。參數rx可指示一指標暫存器(例如,IX或IY),參數r可表示暫存器選擇位元。在一個實施例中,當r等於零時,則選擇暫存器IX;當r等於1時,則選擇暫存器IY。
參數@offs5[rx]可為基於參數r所選的指標暫存器(例如,IX或IY)的5位元偏移量,在編碼中可由“ooooo”表示。
參數@offs3[rx]可為基於參數r所選的指標暫存器(例如,IX或IY)的3位元偏移量,在編碼中可由“ooo”表示。參數@offs5[IY]可為基於暫存器IY的5位元偏移量,在編碼中可由“ooooo”或“yyyyy”表示。參數@offs3[IY]可為基於暫存器IY的3位元偏移量,在編碼中可由“ooo”或“yyy”表示。參數@offs3[IX]可為基於暫存器IX的3位元偏移量,在編碼中可由“ooo”或“xxx”表示。
參數p可為一位元組選擇位元,用於以位元組為單位載入程式記憶體資料。在一個實施例中,當p等於零時,則選擇程式記憶體資料的高位元組;當p等於1時,則選擇程式記憶體資料的低位元組。
參數c可為一選擇位元,用於選擇清除操作或設定操作。在一個實施例中,當c等於零時,則選擇清除操作;當c等於1時,則選擇設定操作。參數e可為一個3位元資料,用於8位元資料中的位元位置(bit position)選擇,編碼中可用“eee”表示。參數n可為一個8位元的指標數,用於分支(branch)、相對呼叫和相對轉移操作。
如前述圖1所示,微控制器100包括一指令記憶體104,用於儲存一指令集。每個指令都包括一用於指示對應指令操作的運算碼和一用於指示對應指令之執行資料的運算元。
指令集中的多個指令可從多個指令清單中進行選擇,以下將結合圖5至圖31進行描述。圖5至圖11所示為根據本發明的實施例的示例性算術運算類指令。算術運算類指令包括:無進位加法指令ADD(例如,位元組無進位加法和文字無進位加法)、進位加法指令ADC(例如,位元組進位加法和文字進位加
法)、無借位減法指令SUB(例如,位元組無借位減法和文字無借位減法)、借位減法指令SBC(例如,位元組借位減法和文字借位減法)、加1指令INC(例如,位元組加1和文字加1)、減1指令DEC(例如,位元組減1和文字減1)、無符號數比較指令CMP(例如,位元組比較和文字比較)、無符號數乘法指令MUL(例如,位元組乘法和文字乘法)等其他指令。
圖12至圖22所示為根據本發明的實施例所述的示例性邏輯運算指令。邏輯運算指令包括:邏輯及(AND)指令(例如,位元組AND和文字AND、邏輯或(OR)指令(例如,位元組OR和文字OR)、邏輯互斥(XOR)指令(例如,位元組XOR和文字XOR)、進位循環左移指令RLC(例如,位元組RLC和文字RLC)、進位循環右移指令RRC(例如,位元組RRC和文字RRC)、無進位循環左移指令RLNC(例如,位元組RLNC和文字RLNC)、無進位循環右移指令RRNC(例如,位元組RRNC和文字RRNC)、半位元組或半字交換指令SWAP(例如,位元組SWAP和文字SWAP)、取反指令NOT(例如,位元組NOT和文字NOT)、互補指令NEG(例如,位元組NEG和文字NEG)、資料記憶體清除指令CLR(例如,位元組CLR和文字CLR)、資料記憶體設定指令SET(例如,位元組SET和文字SET)等其他指令。
圖23至圖26所示為根據本發明的實施例的示例性資料轉移指令。資料轉移指令包括:指令MOVE(例如,位元組MOVE和文字MOVE)、指令LPX、指令LPD、指令LPW、指令PUSH(例如,位元組PUSH和文字PUSH)、指令POP(例如,位元組POP和文字POP)等。
圖27至圖28所示為根據本發明的實施例的示例性位元和
位元測試指令。位元和位元測試指令包括:工作位元組暫存器和資料記憶體的位元清除或設定指令BSC、條件碼暫存器的位元清除或設定指令BCSCC、工作位元組暫存器和資料記憶體的位元觸發指令BTG。
圖29至圖30所示為根據本發明的實施例的示例性程式分支(branch)指令。程式分支指令包括:當工作位元組暫存器和資料記憶體的位元e被清除或被設定時之跳過(skip)指令SKP、當條件碼暫存器的位元e被清除或被設定時之跳過指令SKPCC、當條件碼暫存器的位元e被清除或被設定時之分支指令BRACC作、無條件分支之相對跳躍指令RJMP、指標跳躍指令IJMP、次程序相對呼叫指令RCALL、次程序指標呼叫指令ICALL、表格函數呼叫指令CTBL、以查表為基礎的跳躍指令JTBL、次程序返回指令RET、次程序傳回一立即資料之指令RETD、中斷返回指令RETI等。
圖31所示為根據本發明的實施例的示例性控制指令。控制指令包括:不操作指令NOP、休眠指令SLEEP、監視定時器清除指令WTDCLR、特殊軟體中斷指令TRAP等其他指令。
在一實際應用中,可從圖5至圖31中的指令清單中選出特定的指令建構一專用指令集。因此,可根據各種應用情況選擇特定的指令建構一滿足需要的指令集(例如,圖5至圖31中所示之S0、S1、S2、及S3)。微控制器100可採用由所需指令組成的特定指令集,而非各類指令清單中的所有指令。這樣的設計可減小用來儲存指令集的指令記憶體空間,進而減小系統的複雜性和成本。
圖32所示為根據本發明一個實施例的微控制器100的操
作流程500。圖32將結合圖1和圖3進行描述。在步驟502中,多個主資料被分別儲存於多個主暫存器(例如,主暫存器302和304)中,每個主資料具有一第一寬度。在步驟504中,具有一第二寬度的次資料被儲存於一包含多個主暫存器之次暫存器(例如,包含主暫存器302和304的次暫存器342)中。次資料包含主資料的組合。在步驟506中,中央處理單元102在一第一模式下執行一第一指令,即讀取多個主資料(例如,主暫存器302和304中的主資料)中的一個主資料進行操作。在步驟508中,中央處理單元102可執行在一第二模式下執行一第二指令,即讀取次資料進行操作。
圖33所示為根據本發明一實施例採用微控制器的電子系統600的方塊圖。電子系統600包括一電源602、一微控制器100、以及由微控制器100控制的一功能模組606。在一個實施例中,電源602供電給微控制器100和功能模組606。在一個實施例中,微控制器100採用本發明上述所示的架構,用於根據一包含多個指令之程式來控制功能模組606。例如,微控制器100可被用於一電池管理系統。微控制器100可用以控制功能模組606,比如:電池充/放電電路或電池單元平衡模組。
因此,本發明公開了具有多個指令的微控制器100。微控制器100包括主暫存器(例如,8位元寬度的暫存器)和包括多個主暫存器的次暫存器(例如,16位元寬度的暫存器)。因此,可直接採用主暫存器或次暫存器來執行需要8位元或16位元資料的指令。可將眾多指令中的特定指令選出並組成一專用指令集。因此,指令集的大小是可改變的,可根據不同的應用需求來配置所需的指令集。此外,資料記憶體中的直接定址
空間可透過使用擴展直接定址模式進行擴展,即採用暫存器(例如,暫存器IXH)中的額外位址進行擴展。因此,降低了系統的複雜性和成本,同時還提升了效率。
在此描述之實施例僅為本發明的常見實施例,用於說明本發明而非限制。本技術領域中具有通常知識者應可以理解,在本質上不背離由後附申請專利範圍所界定的本發明的發明精神和發明範圍的前提下,可以有眾多其它的實施例。另外,在此描述或申請專利範圍中要求保護的本發明之元素可能為單數,在未明確說明的情況下其複數形式同樣視為處於本發明的保護範圍之內。
100‧‧‧微控制器
102‧‧‧中央處理單元
104‧‧‧指令記憶體
106‧‧‧程式記憶體
108‧‧‧資料記憶體
112‧‧‧程式記憶體匯流排
114‧‧‧資料記憶體匯流排
300‧‧‧編程模型
302~318‧‧‧內部暫存器/主暫存器/工作暫存器
322、324‧‧‧內部暫存器/主暫存器/程式計數暫存器
326、328‧‧‧內部暫存器/主暫存器/堆疊指標暫存器
332‧‧‧內部暫存器/主暫存器/條件碼暫存器
342~354‧‧‧暫存器/次暫存器
400‧‧‧編碼/機器碼
410‧‧‧運算碼
420‧‧‧運算元
500‧‧‧操作流程
502~508‧‧‧步驟
600‧‧‧電子系統
602‧‧‧電源
606‧‧‧功能模組
以下結合附圖和具體實施例對本發明的技術方法進行詳細的描述,以使本發明的特徵和優點更為明顯。其中:
圖1所示為根據本發明一個實施例的微控制器方塊圖。
圖2所示為根據本發明一個實施例圖1中的示例性資料記憶體圖表。
圖3所示為根據本發明一個實施例的示例性編程模型圖表。
圖4所示為根據本發明一個實施例之一指令的示例性編碼。
圖5所示為根據本發明一個實施例的示例性算術運算指令的部分列表。
圖6所示為根據本發明一個實施例的示例性算術運算指令的部分列表。
圖7所示為根據本發明一個實施例的示例性算術運算指令的部分列表。
圖8所示為根據本發明一個實施例的示例性算術運算指令的部分列表。
圖9所示為根據本發明一個實施例的示例性算術運算指令的部分列表。
圖10所示為根據本發明一個實施例的示例性算術運算指令的部分列表。
圖11所示為根據本發明一個實施例的示例性算術運算指令的部分列表。
圖12所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖13所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖14所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖15所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖16所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖17所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖18所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖19所示為根據本發明一個實施例的示例性邏輯運算指
令的部分列表。
圖20所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖21所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖22所示為根據本發明一個實施例的示例性邏輯運算指令的部分列表。
圖23所示為根據本發明一個實施例的示例性資料轉移指令的部分列表。
圖24所示為根據本發明一個實施例的示例性資料轉移指令的部分列表。
圖25所示為根據本發明一個實施例的示例性資料轉移指令的部分列表。
圖26所示為根據本發明一個實施例的示例性資料轉移指令的部分列表。
圖27所示為根據本發明一個實施例的示例性位元和位元測試指令。
圖28所示為根據本發明一個實施例的示例性位元和位元測試指令。
圖29所示為根據本發明一個實施例的示例性程式轉移指令的部分列表。
圖30所示為根據本發明一個實施例的示例性程式轉移指令的部分列表。
圖31所示為根據本發明一個實施例的示例性控制指令。
圖32所示為根據本發明一個實施例的微控制器操作流程。
圖33所示為根據本發明一個實施例的電子系統方塊圖。
100‧‧‧微控制器
102‧‧‧中央處理單元
104‧‧‧指令記憶體
106‧‧‧程式記憶體
108‧‧‧資料記憶體
112‧‧‧程式記憶體匯流排
114‧‧‧資料記憶體匯流排
Claims (17)
- 一種具有指令的微控制器,包括:多個主(primary)暫存器,儲存一主資料,其中每一該主資料具有一第一寬度;一次(secondary)暫存器,包含該多個主暫存器中的至少兩個,儲存具有一第二寬度的一次資料,其中該第二寬度是該第一寬度的整數倍數;以及一中央處理單元(CPU),在一第一模式下執行一第一指令集,以讀取該主資料,以及在一第二模式下執行一第二指令集,以讀取該次資料;其中,該第一指令集包括一第一指令,執行該第一指令的一結果被寫入該多個主暫存器中的其中一個,且其中該第二指令集包括一第二指令,執行該第二指令的一結果被寫入該次暫存器。
- 如申請專利範圍第1項的微控制器,進一步包括:一記憶體,儲存該第一指令和該第二指令,其中,該第一指令根據包含在該第一指令內的訊息指定該多個主暫存器中的其中一個,且其中該第二指令根據包含在該第二指令內的訊息指定該次暫存器。
- 如申請專利範圍第1項的微控制器,其中,該第一指令包括一個運算碼(opcode)。
- 如申請專利範圍第1項的微控制器,其中,該第二指令包括一個運算碼。
- 如申請專利範圍第1項的微控制器,進一步包括:一翻譯器,將該第一指令翻譯為一第一機器碼,並將該 第二指令翻譯為一第二機器碼,其中,該中央處理單元根據該第一機器碼讀取該主資料以進行操作,並根據該第二機器碼讀取該次資料以進行操作。
- 如申請專利範圍第1項的微控制器,進一步包括:一記憶體,儲存一直接定址指令,其中,從該直接定址指令翻譯而得之一機器碼包括:一主位址,指定一資料記憶體;以及至少一個模式位元,選擇一普通直接定址模式或一擴展直接定址模式,該普通直接定址模式是根據該主位址存取該資料記憶體,該擴展直接定址模式是根據包含該主位址和一額外位址的一擴展位址存取該資料記憶體。
- 如申請專利範圍第6項的微控制器,其中,該額外位址係被儲存於該微控制器的一暫存器中。
- 一種指令執行方法,包括:將多個主資料(primary data)分別儲存在多個主暫存器中,其中每一該主資料具有一第一寬度;將具有一第二寬度的一次資料(secondary data)儲存在包含該多個主暫存器中的至少兩個的一次暫存器中,其中該第二寬度是該第一寬度的整數倍數;在一第一模式下執行一第一指令,即讀取該主資料;以及在一第二模式下執行一第二指令,即讀取該次資料;其中,執行該第一指令的一結果被寫入該多個主暫存器中的其中一個,且其中,執行該第二指令的一結果被寫入該次暫存器。
- 如申請專利範圍第8項的方法,進一步包括:根據包含在該第一指令內的訊息指定該多個主暫存器中的其中一個;以及根據包含在該第二指令的訊息指定該次暫存器。
- 如申請專利範圍第8項的方法,進一步包括:將該第一指令翻譯為一第一機器碼;根據該第一機器碼讀取該主資料以進行操作;將該第二指令翻譯為一第二機器碼;以及根據該第二機器碼讀取該次資料以進行操作。
- 一種具有指令的電子系統,包括:一功能模組;以及一微控制器,根據包含一第一指令和一第二指令的一程式以控制該功能模組,該微控制器包括:多個主(primary)暫存器,儲存一主資料,其中每一該主資料具有一第一寬度;包含該多個主暫存器中的至少兩個的之一次(secondary)暫存器,儲存具有一第二寬度的一次資料,其中該第二寬度是該第一寬度的整數倍數;以及一中央處理單元,在一第一模式下執行一第一指令集,即讀取該主資料,並在一第二模式下執行一第二指令集,即讀取該次資料;其中,該第一指令集包括一第一指令,執行該第一指令的一結果被寫入該多個主暫存器中的其中一個,且其中該第二指令集包括一第二指令,執行該第二指令的一結果被寫入該次暫存器。
- 如申請專利範圍第11項的電子系統,其中,該微控制器進一步包括:一記憶體,儲存該第一指令和該第二指令,其中該第一指令根據包含在該第一指令內的訊息指定該多個主暫存器中的其中一個,及該第二指令根據包含在該第二指令中的訊息指定該次暫存器。
- 如申請專利範圍第11項的電子系統,其中,該第一指令包括一個運算碼(opcode)。
- 如申請專利範圍第11項的電子系統,其中,該第二指令包括一個運算碼。
- 如申請專利範圍第11項的電子系統,其中,該微控制器進一步包括:一翻譯器,將該第一指令翻譯為一第一機器碼,並將該第二指令翻譯為一第二機器碼,其中,該中央處理單元根據該第一機器碼讀取該主資料以進行操作,並根據該第二機器碼讀取該次資料以進行操作。
- 如申請專利範圍第11項的電子系統,進一步包括:一記憶體,儲存一直接定址指令,其中,從該直接定址指令翻譯而得之一機器碼包括:一主位址,指定一資料記憶體;以及至少一個模式位元,選擇一普通直接定址模式或一擴展直接定址模式,該普通直接定址模式是根據該主位址存取該資料記憶體,該擴展直接定址模式是根據包含該主位址和一額外位址的一擴展位址存取該資料記憶體。
- 如申請專利範圍第16項的電子系統,其中,該額外位址係被儲存於該微控制器的一暫存器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US96528907P | 2007-08-17 | 2007-08-17 | |
US12/228,995 US8443168B2 (en) | 2007-08-17 | 2008-08-18 | Microcontroller comprising a plurality of registers and instruction modes |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200912741A TW200912741A (en) | 2009-03-16 |
TWI403954B true TWI403954B (zh) | 2013-08-01 |
Family
ID=40710570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097131382A TWI403954B (zh) | 2007-08-17 | 2008-08-18 | 具有指令集之電子系統、微控制器及其指令執行方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8443168B2 (zh) |
CN (1) | CN101436120B (zh) |
TW (1) | TWI403954B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2488985A (en) * | 2011-03-08 | 2012-09-19 | Advanced Risc Mach Ltd | Mixed size data processing operation with integrated operand conversion instructions |
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 |
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) |
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 |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
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 |
EP3151110B1 (en) * | 2011-04-07 | 2019-12-25 | VIA Technologies, Inc. | Microprocessor that translates conditional load or store instructions into a variable number of microinstructions |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
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 |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
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 |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction 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 |
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 |
US9092227B2 (en) * | 2011-05-02 | 2015-07-28 | Anindya SAHA | Vector slot processor execution unit for high speed streaming inputs |
CN108182083B (zh) * | 2017-12-06 | 2021-12-24 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持断点调试的取指译码电路 |
TWI707272B (zh) * | 2019-04-10 | 2020-10-11 | 瑞昱半導體股份有限公司 | 可執行指令的電子裝置以及指令執行方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040243786A1 (en) * | 2001-10-19 | 2004-12-02 | Stmicroelectronics Sa | Microprocessor having an extended addressable space |
US20060212685A1 (en) * | 2005-03-11 | 2006-09-21 | Praveen Raghavan | Ultra low power ASIP architecture |
TWI284281B (en) * | 2004-01-21 | 2007-07-21 | Ip First Llc | Mechanism in a microprocessor for executing native instructions directly from memory |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5854939A (en) | 1996-11-07 | 1998-12-29 | Atmel Corporation | Eight-bit microcontroller having a risc architecture |
US8145887B2 (en) * | 2007-06-15 | 2012-03-27 | International Business Machines Corporation | Enhanced load lookahead prefetch in single threaded mode for a simultaneous multithreaded microprocessor |
-
2008
- 2008-08-18 TW TW097131382A patent/TWI403954B/zh not_active IP Right Cessation
- 2008-08-18 CN CN2008101462943A patent/CN101436120B/zh not_active Expired - Fee Related
- 2008-08-18 US US12/228,995 patent/US8443168B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040243786A1 (en) * | 2001-10-19 | 2004-12-02 | Stmicroelectronics Sa | Microprocessor having an extended addressable space |
TWI284281B (en) * | 2004-01-21 | 2007-07-21 | Ip First Llc | Mechanism in a microprocessor for executing native instructions directly from memory |
US20060212685A1 (en) * | 2005-03-11 | 2006-09-21 | Praveen Raghavan | Ultra low power ASIP architecture |
Also Published As
Publication number | Publication date |
---|---|
TW200912741A (en) | 2009-03-16 |
US20090070544A1 (en) | 2009-03-12 |
CN101436120B (zh) | 2011-05-04 |
CN101436120A (zh) | 2009-05-20 |
US8443168B2 (en) | 2013-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI403954B (zh) | 具有指令集之電子系統、微控制器及其指令執行方法 | |
US10514922B1 (en) | Transfer triggered microcontroller with orthogonal instruction set | |
JP4409427B2 (ja) | 複数のレジスタ・コンテキストを有するデータ処理システムおよび該システムのための方法 | |
KR102451950B1 (ko) | 융합된 단일 사이클 증가-비교-점프를 수행하기 위한 명령어 및 로직 | |
TWI461910B (zh) | 用於依照組態資訊執行原子記憶體操作之記憶體及方法 | |
JP3233163B2 (ja) | メモリ拡張スキームを切り替える疑似直線バンクを有するマイクロコントローラ | |
US20070136558A1 (en) | Data access program instruction encoding | |
US20110082999A1 (en) | Data processing engine with integrated data endianness control mechanism | |
WO2009073542A1 (en) | Enhanced microprocessor or microcontroller | |
TW202307669A (zh) | 用於在異質處理資源上調適性地排程工作的設備及方法 | |
TWI446258B (zh) | N位元微處理器裝置及其操作方法 | |
EP2223204B1 (en) | System and method of determining an address of an element within a table | |
JP2004086837A (ja) | データ処理装置 | |
TWI830927B (zh) | 用於處理器非回寫能力的設備、方法、及非暫時性機器可讀取媒體 | |
WO2016034087A1 (en) | Method for handling mode switching with less unnecessary register data access and related non-transitory machine readable medium | |
US20190102199A1 (en) | Methods and systems for executing vectorized pythagorean tuple instructions | |
JP4241625B2 (ja) | 半導体装置 | |
US20230367492A1 (en) | Flexible provisioning of coherent memory address decoders in hardware | |
TWI647619B (zh) | 用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 | |
US10817288B2 (en) | Combined instruction for addition and checking of terminals | |
Turley | M. Core shrinks code, power budgets | |
CN112148473A (zh) | 核-核“监听”指令变体 | |
JP2004151915A (ja) | データ処理装置 | |
JP2002351656A (ja) | マイクロプロセッサ | |
MCU | 16-bit MCU and DSC Programmer’s Reference Manual |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |