CN101436120B - 微控制器、执行指令的方法及电子*** - Google Patents
微控制器、执行指令的方法及电子*** Download PDFInfo
- Publication number
- CN101436120B CN101436120B CN2008101462943A CN200810146294A CN101436120B CN 101436120 B CN101436120 B CN 101436120B CN 2008101462943 A CN2008101462943 A CN 2008101462943A CN 200810146294 A CN200810146294 A CN 200810146294A CN 101436120 B CN101436120 B CN 101436120B
- Authority
- CN
- China
- Prior art keywords
- instruction
- master
- data
- register
- microcontroller
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 14
- 241001269238 Data Species 0.000 claims description 25
- 238000013519 translation Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 abstract description 9
- 230000014759 maintenance of location Effects 0.000 abstract 5
- 239000003607 modifier Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000001629 sign test Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior 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
- 238000010586 diagram Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 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
- 230000007958 sleep Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
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)
Abstract
本发明公开了一种微控制器、执行指令的方法及电子***。该微控制器包括多个主寄存器、次寄存器和中央处理单元。多个主寄存器分别存储多个主数据。每个主数据具有第一宽度。次寄存器由多个主寄存器组成,用于存储具有第二宽度的次数据。次数据由多个主数据组合而成。中央处理单元执行处于第一模式的第一指令,即读取一个主数据进行操作;中央处理单元还执行处于第二模式的第二指令,即读取次数据进行操作。微控制器可执行包含不同宽度数据的指令,并可把数据存储在对应宽度的寄存器中,以减少指令总数和运行时间,从而节省了***的存储空间,减小了***的复杂性和成本,同时还提高了效率。
Description
技术领域
本发明是关于一种电子***,尤其是关于一种微控制器及其执行指令的方法。
背景技术
近年来,微控制器单元(MCU,microcontroller units)在电子产业中得到了广泛的应用。微控制器包括用于控制微处理器行为的指令集。其中,使用精简指令集计算(RISC,ReducedInstruction Set Computing)的微处理器得到广泛采用。
对数据存储器的访问可采用直接寻址模式和间接寻址模式。在直接寻址模式中,指令中包括一个直接访问数据存储器的地址。在间接寻址模式中,指令不包含直接访问数据存储器的地址。微控制器可根据指令中的偏移量和寄存器中的内容计算出所需的地址。因此,间接寻址模式比直接寻址模式复杂。然而在传统微控制器中,直接寻址模式的寻址空间非常有限。例如,一个具有16位编码的传统指令包括8位操作码和8位操作数。8位操作数可包含8位地址。此时,数据存储器的直接寻址空间可为0~255。数据存储器的其他空间可采用间接寻址进行访问。
此外,传统的微控制器可采用一组8位工作寄存器或一组16位工作寄存器来进行算术和/或逻辑运算。然而,不能直接采用8位工作寄存器进行16位数据的运算,也不能直接采用16位工作寄存器进行8位数据的运算。因此,当采用8位工作寄存器时,传统的微控制器需要额外的指令将16位数据转换成8位数据;同样的,当采用16位工作寄存器时,微控制器需要额外的指令将8位数据转换成16位数据。
发明内容
本发明要解决的技术问题在于提供一种微控制器及其执行指令的方法,用以节省***的存储空间,降低***的复杂性和成本。
为解决上述技术问题,本发明提供了一种微控制器,其包括多个主寄存器、次寄存器和中央处理单元(CPU)。多个主寄存器分别存储多个主数据。每个主数据具有第一宽度。次寄存器由多个主寄存器组成,用于存储具有第二宽度的次数据。次数据由多个主数据组合而成。中央处理单元执行处于第一模式的第一指令,即读取一个主数据进行操作;中央处理单元还执行处于第二模式的第二指令,即读取次数据进行操作。
本发明所述的微控制器,还包括:存储器,用于存储所述第一指令和所述第二指令,所述第一指令根据该第一指令中的信息指定所述多个主寄存器中的一个主寄存器,所述第二指令根据该第二指令中的信息指定所述次寄存器。
本发明所述的微控制器,所述第二宽度等于所述多个主数据的所述第一宽度的总和。
本发明所述的微控制器,所述第一指令包括一个操作码,用于表示对所述主数据执行的操作。
本发明所述的微控制器,所述第二指令包括一个操作码,用于表示对所述次数据执行的操作。
本发明所述的微控制器,还包括:翻译器,用于将所述第一指令翻译为第一机器码,并将所述第二指令翻译为第二机器码,所述中央处理单元根据所述第一机器码读取所述主数据进行操作,并根据所述第二机器码读取所述次数据进行操作。
本发明所述的微控制器,还包括:存储器,用于存储直接寻址指令,翻译所述直接寻址指令得到的机器码包括:主地址,用于访问数据存储器;及至少一个模式位,用于选择普通直接寻址模式或扩展直接寻址模式,所述普通直接寻址模式是根据所述主地址访问所述数据存储器,所述扩展直接寻址模式是根据包含所述主地址和额外地址的扩展地址访问所述数据存储器。
本发明所述的微控制器,所述额外地址存储在所述微控制器的一个寄存器中。
本发明还提供了一种执行指令的方法,其包括:将多个主数据分别存储在多个主寄存器中,其中该多个主数据的每一个主数据具有第一宽度;将具有第二宽度的次数据存储在由多个主寄存器组成的次寄存器中,其中次数据由多个主数据组合而成;执行第一模式的第一指令,以读取多个主数据的一个数据进行操作;执行第二模式的第二指令,以读取次数据进行操作。
本发明所述的执行指令的方法,所述第二宽度等于所述多个主数据的所述第一宽度的总和。
本发明所述的执行指令的方法,还包括:根据所述第一指令的信息指定所述多个主寄存器中的一个主寄存器;及根据所述第二指令的信息指定所述次寄存器。
本发明所述的执行指令的方法,还包括:将所述第一指令翻译为第一机器码;根据所述第一机器码读取所述主数据进行操作;将所述第二指令翻译为第二机器码;及根据所述第二机器码读取所述次数据进行操作。
本发明还提供了一种电子***,其包括:功能模块和微控制器。微控制器用于根据第一指令和第二指令控制该功能模块。该微控制器包括:多个主寄存器,用于分别存储多个主数据,该多个主数据的每一个主数据具有第一宽度;由该多个主寄存器组成的次寄存器,用于存储具有第二宽度的次数据,该次数据由多个主数据组合而成;中央处理单元,用于执行处于第一模式的第一指令,以读取多个主数据的一个主数据进行操作,以及执行处于第二模式的第二指令,以读取该次数据进行操作。
本发明所述的电子***,所述微控制器还包括用于存储所述第一指令和所述第二指令的存储器,所述第一指令根据该第一指令中的信息指定所述多个主寄存器中的一个主寄存器,所述第二指令根据该第二指令中的信息指定所述次寄存器。
本发明所述的电子***,所述第二宽度等于所述多个主数据的所述第一宽度的总和。
本发明所述的电子***,所述第一指令包括一个操作码,用于表示对所述主数据执行的操作。
本发明所述的电子***,所述第二指令包括一个操作码,用于表示对所述次数据执行的操作。
本发明所述的电子***,所述微控制器还包括翻译器,用于将所述第一指令翻译为第一机器码,并将所述第二指令翻译为第二机器码,所述中央处理单元根据所述第一机器码读取所述主数据进行操作,并根据所述第二机器码读取所述次数据进行操作。
本发明所述的电子***,还包括:存储器,用于存储直接寻址指令,翻译所述直接寻址指令得到的机器码包括:主地址,用于访问数据存储器;及至少一个模式位,用于选择普通直接寻址模式或扩展直接寻址模式,所述普通直接寻址模式是根据所述主地址访问所述数据存储器,所述扩展直接寻址模式是根据包含所述主地址和额外地址的扩展地址访问所述数据存储器。
本发明所述的电子***,所述额外地址存储在所述微控制器的一个寄存器中。
与现有技术相比,本发明微控制器可执行包含不同宽度数据的指令,并可把数据存储在对应宽度的寄存器中,以减少指令总数和运行时间,从而节省了***的存储空间,减小了***的复杂性和成本,同时还提高了效率。
附图说明
图1所示为根据本发明一个实施例的微控制器的结构框图。
图2所示为根据本发明一个实施例的图1中的示例性数据存储器的方框图。
图3所示为根据本发明一个实施例的用于数据存储器中的寄存器的示例性编程模型的方框图。
图4所示为根据本发明一个实施例的微控制器执行的一个指令的示例性编码。
图5至图11所示为根据本发明一个实施例的示例性算术运算类指令的列表。
图12至图22所示为根据本发明一个实施例的示例性逻辑运算类指令的列表。
图23至图26所示为根据本发明一个实施例的示例性数据转移类指令的列表。
图27至图28所示为根据本发明一个实施例的示例性位和位测试类指令。
图29至图30所示为根据本发明一个实施例的示例性程序转移类指令的列表。
图31所示为根据本发明一个实施例的示例性控制类指令。
图32所示为根据本发明一个实施例的微控制器的操作流程图。
图33所示为根据本发明一个实施例的电子***的方框图。
具体实施方式
以下结合附图和具体实施例对本发明的技术方案进行详细的说明,以使本发明的特性和优点更为明显。
以下将对本发明微控制器的实施例给出详细的说明。尽管本发明将结合一些具体实施方式进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员将理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、流程、元件和电路未作详细描述,以便于凸显本发明的主旨。
本发明的一个实施例提供了一种微控制器。该微控制器可应用于各种电子设备中以控制电子设备的运作。电子设备包括但不限于通信设备、汽车、安全***、电池***、热水器和恒温调节器等。
图1所示为根据本发明一个实施例的微控制器100的结构框图。在一个实施例中,微控制器100包括中央处理单元(CPU,Central processing unit)102,指令存储器104,程序存储器106和数据存储器108。在一个实施例中,指令存储器104可用于存储包含多个指令的指令集,并可集成在译码器(未在图1中示出)中。为了执行指令集中的一条指令,译码器可获取该指令的信息。微控制器100可采用一种哈佛架构(Harvard architecture),即程序存储器106和数据存储器108是分开的。程序存储器106可为可编程闪速存储器,用于存储用户编写的程序。数据存储器108可包括静态随机存储器(SRAM,static random accessmemory),用于存储执行程序所需的数据。微控制器100还包括程序存储器总线112和数据存储器总线114,分别用于访问程序存储器106和数据存储器108。当执行一个指令时,CPU102可通过数据存储器总线114读取存储在数据存储器108上的数据,并可通过程序存储器总线112读取存储在程序存储器106上的下一条指令。
图2所示为根据本发明一个实施例的微控制器100(如图1所示)的数据存储器108的示范框图。在一个实施例中,数据存储器108可包括但不局限于内部寄存器、特殊功能寄存器、输入/输出(I/O,input/output)寄存器和静态随机存储器(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,accumulator)。特殊功能寄存器(比如:接口寄存器,ADC和计数器的控制寄存器等)和I/O寄存器映射到数据存储器108中的地址为000DH~00DFH。SRAM是一个内部通用数据SRAM,映射到数据存储器108中的地址00E0H~FFFFH。SRAM的大小可根据具体应用的需要作改变。
图3所示为根据本发明的一个实施例的微控制器100(如图1所示)中数据存储器108中的寄存器的示例性编程模型300。编程模型300包括内部寄存器302~332(例如,图2的数据存储器108中的内部寄存器)。更具体的说,编程模型300包括工作寄存器302~318(例如:R0H302,R0L304,R1H306,R1L308,IXH312,IXL314,IYH316,IYL318),用于存储运算(例如,算术和逻辑运算)所需的数据。编程模型300还包括用于指示微控制器正在执行指令序列中哪一条指令的程序计数(PC,program counter)寄存器(例如,PCH322和PCL324),用于指示微控制器的堆栈(SP,stack pointer)中最顶端数据项的堆栈指针寄存器(例如,SPH326和SPL328),以及用于存储条件码(CC,condition code)当前值的条件码寄存器332。
在一个实施例中,内部寄存器(例如,寄存器302~332)为主寄存器。优点在于,多个主寄存器302~332可构成次寄存器。在一个实施例中,主寄存器302~332构成了一组次寄存器342~354。具体的说,主寄存器R0H302和主寄存器R0L304构成次寄存器R0342,主寄存器R1H306和主寄存器R1L308构成次寄存器R1344,主寄存器IXH312和主寄存器IXL314构成次寄存器IX346,主寄存器IYH316和主寄存器IYL318构成次寄存器IY348,主寄存器PCH322和主寄存器PCL 324构成次寄存器PC 352,主寄存器SPH326和主寄存器SPL328构成次寄存器SP 354。
主寄存器302~332可分别存储多个主数据。每一个主数据具有第一宽度,例如,8位。每一个次寄存器342~354由多个主寄存器(例如,在图3的例子中为两个主寄存器)组成,并可存储具有第二宽度(比如:16位)的次数据。次数据是由多个主数据组合而成。例如,次寄存器342中的次数据是由主寄存器302中的主数据和主寄存器304中的主数据组合而成。优点在于,CPU102可执行处于第一模式的第一指令,即读取主数据进行运算;CPU102也可执行处于第二模式的第二指令,即读取次数据进行运算。根据指令中包含的信息,该第一指令可指定一个或多个主寄存器,该第二指令可指定一个或多个次寄存器。
在一个实施例中,次寄存器的宽度等于构成该次寄存器的多个主寄存器的总宽度。在一个实施例中,工作寄存器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 00aaabbb”,其中“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位的宽度。
同理,次寄存器PC352和SP354也可根据不同应用的需要改变宽度的大小。在一个实施例中,次寄存器PC352和SP354可为16位宽度,其中分别包括8位的主寄存器PCH 322和PCL324,以及SPH326和SPL328,用于支持包含64K指令的程序。
另外,条件码寄存器332可为8位宽度。在一个实施例中,条件码寄存器332包括:进位/借位(BC)标志位,零(ZE)标志位,负(NZ)标志位,溢出(OV)标志位,符号测试(ST)位,用于半字节或半字操作的半进位/借位(HC)标志位,用于字操作的字进位/借位(HC)标志位,以及全局中断允许/禁止(IE)位。
图4所示为根据本发明一个实施例的微控制器100(如图1所示)执行的一个指令的示例性编码(机器码)400。翻译器(例如,汇编程序或C编译器)可将该指令翻译成机器码,例如:一个16位的机器码。机器码400包括操作码410和操作数420。操作码410具有可扩展的宽度(例如,在一个实施例中为7位),用于表示该指令执行的操作。操作数420可表示指令操作的数据,例如:参数,主寄存器的地址,次寄存器的地址等。在一个实施例中,机器码400还包括一个目的地址位(例如,位[8]),用于指示结果目的地址。优点在于,根据翻译得到的机器码400,CPU102可从主寄存器中读取主数据,也可从次寄存器中读取次数据。
微控制器100可采用多种寻址模式,包括但不局限于固定寻址模式、文字寻址模式、寄存器寻址模式、直接寻址模式和间接寻址模式等。在一个实施例中,固定寻址的指令除有明确定义外不需要地址。文字寻址的指令包含可用于数学运算的文字常数区。例如,一个指令可包含参数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可包括用于访问数据存储器的地址和至少一个用于选择普通直接寻址模式或扩展直接寻址模式的模式位。普通直接寻址模式是指根据指令中的地址访问数据存储器,而扩展直接寻址模式则是根据由指令中的地址和一个额外地址组成的扩展地址访问数据存储器。额外地址可存储于微控制器的寄存器中。寄存器中的额外地址和指令中的地址共同构成扩展地址。于是可根据扩展地址访问数据存储器108。
例如,机器码400的位[7]~位[5]可用作模式位。在一个实施例中,如果位[7]~位[5]取值为从“000”到“110”(即,“000”,“001”,“010”,“011”,“100”,“101”,或“110”),则表明执行普通直接寻址模式。此时位[7]~位[0]可用于访问数据存储器中地址从0到223中的内容。在一个实施例中,如果位[7]~位[5]取值为“111”,则表明执行扩展直接寻址模式。此时,一个寄存器(例如,图3中寄存器IXH312)的8位数据和机器码400(如图4)的位[4]~位[0]组成一个13位的地址,可用于直接访问数据存储器中8K字节的空间。因此,直接寻址空间实现了扩展。
微控制器100也可执行间接寻址模式的指令。变址寄存器可被应用于间接寻址,例如,寄存器IX346或IY348。间接寻址的指令还包括一个偏移量。通过将变址寄存器中的内容加上或减去偏移量提供变址地址,则可根据该变址地址访问数据存储器108。在一个实施例中,偏移量可为一个5位的可与变址寄存器中的内容相加的立即数(例如,用offs5[rx]表示)。在另一个实施例中,偏移量可为一个3位的自动偏移后增量(OPI,offset-post-increment)。变址地址是变址寄存器的值加上3位的偏移量。在另一个实施例中,偏移量可为一个3位的自动偏移前减量(OPD,offset-pre-decrement)。变址地址等于变址寄存器的值减去3位偏移量。
间接寻址的指令可包括操作数,如:q,rx,r,@offs5[rx],@offs3[rx],@offs5[IY],@offs3[IY],@offs3[IX],p,c,e,n等。参数q可表示变址模式选择位。在一个实施例中,当q等于0时,则选择自动偏移后增量(OPI);当q等于1时,则选择自动偏移前减量(OPD)。参数rx可指定一个变址寄存器(例如,IX或IY),参数r可表示寄存器选择位。在一个实施例中,当r等于0时,则选择寄存器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等于0时,则选择程序存储器中数据的高字节;当p等于1时,则选择程序存储器中数据的低字节。
参数c可为用于选择清零或置位操作的选择位。在一个实施例中,当c等于0时,则选择清零操作;当c等于1时,则选择置位操作。参数e可为一个3位数据,用于8位数据中的位位置(bitposition)选择,编码中可用“eee”表示。参数n可为一个8位的变址数,用于转移(branch)、相对调用和相对转移操作。
如前述图1所示,微控制器100包括指令存储器104,用于存储指令集。指令集中的每个指令都包括操作码和操作数。其中,操作码用于表示对应指令执行的操作,操作数用于表示执行对应指令所需的数据。
指令集中的指令可从多个指令列表中进行选择,以下将结合图5至图31进行描述。图5至图11所示为根据本发明的实施例的示例性算术运算类指令。算术运算类指令包括:ADD为无进位加法指令(例如,字节类无进位加法和字类无进位加法),ADC为带进位加法指令(例如,字节类带进位加法和字类带进位加法),SUB为无借位减法指令(例如,字节类无借位减法和字类无借位减法),SBC为带借位减法指令(例如,字节类带借位减法和字类带借位减法),INC为加1指令(例如,字节类加1和字类加1),DEC为减1指令(例如,字节类减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),S WAP为半字节或半字交换指令(例如,字节类SWAP和字类S WAP),NOT为取反指令(例如,字节类NOT和字类NOT),NEG为二进制补码指令(例如,字节类NEG和字类NEG),CLR为数据存储器清零指令(例如,字节类CLR和字类CLR),SET为数据存储器置位指令(例如,字节类SET和字类SET),等其他指令。
图23至图26所示为根据本发明的实施例的示例性数据转移类指令。数据转移类指令包括:MOV指令(例如,字节类MOV和字类MOV),LPX指令,LPD指令,LPW指令,PUSH指令(例如,字节类PUSH和字类PUSH),POP指令(例如,字节类POP和字类POP)等。
图27至图28所示为根据本发明的实施例的示例性位和位测试类指令。位和位测试类指令包括:BSC为工作字节寄存器和数据存储器的位清零或置位指令,BCSCC为条件码寄存器的位清零或置位指令,BTG为工作字节寄存器和数据存储器的位触发指令。
图29至图30所示为根据本发明的实施例的示例性程序转移类指令。程序转移类指令包括:SKP指令用作当工作字节寄存器和数据存储器的位e清零或置位时跳过,SKPCC指令用作当条件码寄存器的位e清零或置位时跳过,BRACC指令用作当条件码寄存器的位e清零或置位时转移,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中,CPU 102可执行第一模式的第一指令,即读取多个主数据(例如,主寄存器302和304中的主数据)中的一个主数据进行操作。在步骤508中,CPU 102可执行第二模式的第二指令,即读取次数据进行操作。
图33所示为根据本发明一个实施例的采用微控制器100(如图1所示)的电子***600的方框图。电子***600包括电源602,微控制器100,以及由微控制器100控制的功能模块606。在一个实施例中,电源602提供电能给微控制器100和功能模块606。在一个实施例中,微控制器100采用本发明前文所示的结构,用于根据一个程序包含的多个指令来控制功能模块606。例如,微控制器100可被用于电池管理***。微控制器100可用作控制功能模块,比如:电池充/放电电路或电池单元均衡模块。
因此,本发明公开了具有多个指令的微控制器100。微控制器100包括主寄存器(例如,8位宽的寄存器)和由主寄存器组成的次寄存器(例如,16位宽的寄存器)。因此,可直接采用主寄存器或次寄存器来执行需要8位或16位数据的指令。可将众多指令中的特定指令选出组成专用指令集。因此,指令集的大小是可改变的,可根据不同的应用来构造所需的指令集。此外,数据存储器中的直接寻址空间可通过使用扩展直接寻址模式进行扩展,即采用寄存器(例如,寄存器IXH)中的额外地址进行扩展。因此,降低了***的复杂性和成本,同时还提高了效率。
上文具体实施方式和附图仅为本发明的常用实施例。显然,在不脱离权利要求书所界定的本发明精神和发明范围的前提下可以有各种增补、修改和替换。本领域技术人员应该理解,本发明在实际应用中可根据具体的环境和工作要求在不背离发明准则的前提下在形式、结构、布局、比例、材料、元素、组件及其它方面有所变化。因此,在此披露的实施例仅用于说明而非限制,本发明的范围由权利要求书及其合法等同物界定,而不限于此前的描述。
Claims (20)
1.一种微控制器,其特征在于,包括:
多个主寄存器,用于分别存储多个主数据,所述多个主数据的每一个主数据具有第一宽度;
由所述多个主寄存器组成的次寄存器,用于存储具有第二宽度的次数据,所述次数据由所述多个主数据组合而成;及
中央处理单元,用于执行处于第一模式的第一指令,以读取所述多个主数据的一个主数据进行算术运算,以及执行处于第二模式的第二指令,以读取所述次数据进行算术运算。
2.根据权利要求1所述的微控制器,其特征在于,还包括:
存储器,用于存储所述第一指令和所述第二指令,所述第一指令根据该第一指令中的信息指定所述多个主寄存器中的一个主寄存器,所述第二指令根据该第二指令中的信息指定所述次寄存器。
3.根据权利要求1所述的微控制器,其特征在于,所述第二宽度等于所述多个主数据的所述第一宽度的总和。
4.根据权利要求1所述的微控制器,其特征在于,所述第一指令包括一个操作码,用于表示对所述主数据执行的算术运算。
5.根据权利要求1所述的微控制器,其特征在于,所述第二指令包括一个操作码,用于表示对所述次数据执行的算术运算。
6.根据权利要求1所述的微控制器,其特征在于,还包括:
翻译器,用于将所述第一指令翻译为第一机器码,并将所述第二指令翻译为第二机器码,所述中央处理单元根据所述第一机器码读取所述主数据进行算术运算,并根据所述第二机器码读取所述次数据进行算术运算。
7.根据权利要求1所述的微控制器,其特征在于,还包括:
存储器,用于存储直接寻址指令,翻译所述直接寻址指令得到的机器码包括:
主地址,用于访问数据存储器;及
至少一个模式位,用于选择普通直接寻址模式或扩展直接寻址模式,所述普通直接寻址模式是根据所述主地址访问所述数据存储器,所述扩展直接寻址模式是根据包含所述主地址和额外地址的扩展地址访问所述数据存储器。
8.根据权利要求7所述的微控制器,其特征在于,所述额外地址存储在所述微控制器的一个寄存器中。
9.一种执行指令的方法,其特征在于,包括:
将多个主数据分别存储在多个主寄存器中,所述多个主数据的每一个主数据具有第一宽度;
将具有第二宽度的次数据存储在由所述多个主寄存器组成的次寄存器中,所述次数据由所述多个主数据组合而成;
执行第一模式的第一指令,以读取所述多个主数据的一个主数据进行算术运算;及
执行第二模式的第二指令,以读取所述次数据进行算术运算。
10.根据权利要求9所述的执行指令的方法,其特征在于,所述第二宽度等于所述多个主数据的所述第一宽度的总和。
11.根据权利要求9所述的执行指令的方法,其特征在于,还包括:
根据所述第一指令的信息指定所述多个主寄存器中的一个主寄存器;及
根据所述第二指令的信息指定所述次寄存器。
12.根据权利要求9所述的执行指令的方法,其特征在于,还包括:
将所述第一指令翻译为第一机器码;
根据所述第一机器码读取所述主数据进行算术运算;
将所述第二指令翻译为第二机器码;及
根据所述第二机器码读取所述次数据进行算术运算。
13.一种电子***,其特征在于,包括:
功能模块;及
微控制器,用于根据包含第一指令和第二指令的程序控制所述功能模块,所述微控制器包括:
多个主寄存器,用于分别存储多个主数据,所述多个主数据的每一个主数据具有第一宽度;
由所述多个主寄存器组成的次寄存器,用于存储具有第二宽度的次数据,所述次数据由所述多个主数据组合而成;及
中央处理单元,用于执行处于第一模式的所述第一指令,以读取所述多个主数据的一个主数据进行算术运算,也用于执行处于第二模式的所述第二指令,以读取所述次数据进行算术运算。
14.根据权利要求13所述的电子***,其特征在于,所述微控制器还包括用于存储所述第一指令和所述第二指令的存储器,所述第一指令根据该第一指令中的信息指定所述多个主寄存器中的一个主寄存器,所述第二指令根据该第二指令中的信息指定所述次寄存器。
15.根据权利要求13所述的电子***,其特征在于,所述第二宽度等于所述多个主数据的所述第一宽度的总和。
16.根据权利要求13所述的电子***,其特征在于,所述第一指令包括一个操作码,用于表示对所述主数据执行的算术运算。
17.根据权利要求13所述的电子***,其特征在于,所述第二指令包括一个操作码,用于表示对所述次数据执行的算术运算。
18.根据权利要求13所述的电子***,其特征在于,所述微控制器还包括翻译器,用于将所述第一指令翻译为第一机器码,并将所述第二指令翻译为第二机器码,所述中央处理单元根据所述第一机器码读取所述主数据进行算术运算,并根据所述第二机器码读取所述次数据进行算术运算。
19.根据权利要求13所述的电子***,其特征在于,还包括:
存储器,用于存储直接寻址指令,翻译所述直接寻址指令得到的机器码包括:
主地址,用于访问数据存储器;及
至少一个模式位,用于选择普通直接寻址模式或扩展直接寻址模式,所述普通直接寻址模式是根据所述主地址访问所述数据存储器,所述扩展直接寻址模式是根据包含所述主地址和额外地址的扩展地址访问所述数据存储器。
20.根据权利要求19所述的电子***,其特征在于,所述额外地址存储在所述微控制器的一个寄存器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US96528907P | 2007-08-17 | 2007-08-17 | |
US60/965,289 | 2007-08-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101436120A CN101436120A (zh) | 2009-05-20 |
CN101436120B true CN101436120B (zh) | 2011-05-04 |
Family
ID=40710570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101462943A Expired - Fee Related CN101436120B (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 |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
CN103765401B (zh) * | 2011-04-07 | 2017-04-12 | 威盛电子股份有限公司 | 一种将有条件加载/存储指令编译成可变数目微指令的微处理器 |
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 |
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) |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
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 |
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 |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
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 |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
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 | 瑞昱半導體股份有限公司 | 可執行指令的電子裝置以及指令執行方法 |
Family Cites Families (5)
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 |
US7162612B2 (en) * | 2000-08-16 | 2007-01-09 | Ip-First, Llc | Mechanism in a microprocessor for executing native instructions directly from memory |
FR2831289B1 (fr) * | 2001-10-19 | 2004-01-23 | St Microelectronics Sa | Microprocesseur disposant d'un espace adressable etendu |
EP1701249A1 (en) * | 2005-03-11 | 2006-09-13 | Interuniversitair Microelektronica Centrum Vzw | Ultra low power ASIP (Application-Domain specific Instruction-set Processor) microcomputer |
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 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
- 2008-08-18 TW TW097131382A patent/TWI403954B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW200912741A (en) | 2009-03-16 |
CN101436120A (zh) | 2009-05-20 |
US20090070544A1 (en) | 2009-03-12 |
TWI403954B (zh) | 2013-08-01 |
US8443168B2 (en) | 2013-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101436120B (zh) | 微控制器、执行指令的方法及电子*** | |
US10514922B1 (en) | Transfer triggered microcontroller with orthogonal instruction set | |
CN114356417A (zh) | 实行16位浮点矩阵点积指令的***和方法 | |
KR102611813B1 (ko) | 바이패스 최적화, 가변 그리드 아키텍처 및 융합된 벡터 동작들을 갖는 코프로세서들 | |
CN100545804C (zh) | 一种基于cisc结构的微控制器及其指令集的实现方法 | |
CN110968346A (zh) | 用于执行用于快速元素解包到二维寄存器中的指令的*** | |
TWI461910B (zh) | 用於依照組態資訊執行原子記憶體操作之記憶體及方法 | |
CN113050990A (zh) | 用于矩阵操作加速器的指令的装置、方法和*** | |
CN104756090A (zh) | 提供扩展的缓存替换状态信息 | |
CN115686633A (zh) | 用于实现链式区块操作的***和方法 | |
ES2934513T3 (es) | Sistemas y métodos para omitir operaciones matriciales intrascendentes | |
CN110909883A (zh) | 用于执行指定三元片逻辑操作的指令的***和方法 | |
TW202307669A (zh) | 用於在異質處理資源上調適性地排程工作的設備及方法 | |
CN110909882A (zh) | 用于执行水平铺块操作的***和方法 | |
CN111666330A (zh) | 数据的读写方法和装置 | |
CN116860334A (zh) | 用于计算两个区块操作数中的半字节的数量积的***和方法 | |
CN114675883A (zh) | 用于对齐矩阵操作加速器瓦片的指令的装置、方法和*** | |
US7805581B2 (en) | Multiple address and arithmetic bit-mode data processing device and methods thereof | |
EP3929732A1 (en) | Matrix data scatter and gather by row | |
ES2951658T3 (es) | Sistemas, aparatos y métodos para generar un índice por orden de clasificación y reordenar elementos basándose en el orden de clasificación | |
CN114675888A (zh) | 用于加载矩阵操作加速器瓦片的指令的装置、方法和*** | |
WO2016034087A1 (en) | Method for handling mode switching with less unnecessary register data access and related non-transitory machine readable medium | |
CN113849768A (zh) | 伴随数据类型转换来加载和存储矩阵数据 | |
CN112149050A (zh) | 用于增强的矩阵乘法器架构的装置、方法和*** | |
US11263014B2 (en) | Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110504 Termination date: 20150818 |
|
EXPY | Termination of patent right or utility model |