CN111913746B - 一种低开销嵌入式处理器设计方法 - Google Patents
一种低开销嵌入式处理器设计方法 Download PDFInfo
- Publication number
- CN111913746B CN111913746B CN202010895572.6A CN202010895572A CN111913746B CN 111913746 B CN111913746 B CN 111913746B CN 202010895572 A CN202010895572 A CN 202010895572A CN 111913746 B CN111913746 B CN 111913746B
- Authority
- CN
- China
- Prior art keywords
- low
- instruction
- execution
- embedded processor
- operand
- 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.)
- Active
Links
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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/22—Microcontrol or microprogram arrangements
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明公开了一种低开销嵌入式处理器设计方法,设计的低开销嵌入式处理器以N位数据位宽取指,对取得的指令以1~N/n个执行周期进行译码,每一个执行周期采用n位数据位宽将数据传输到执行单元以执行该指令;低开销嵌入式处理器包括取指单元、译码器、寄存器文件以及执行单元,译码器用于在执行周期控制信号的控制下对取得的指令以1~N/n个执行周期进行译码得到相应的控制信号,从寄存器文件中读取相应的操作数,将操作数和控制信号送往对应的执行单元。本发明通过增加指令的执行周期,利用低数据位宽的数据通路来实现高数据位宽的数据通路的低开销嵌入式处理器,减少了处理器的硬件开销,从而能够有效地降低嵌入式处理器的面积和功耗。
Description
技术领域
本发明涉及微处理器设计领域,具体涉及一种低开销嵌入式处理器设计方法。
背景技术
目前,物联网(IoT)技术被广泛的运用于智慧城市、智能家居、工业等领域,是目前发展最快的信息技术。为了减少数据传输量以及降低服务器负载,物联网技术要求边缘设备有一定的处理数据的能力。受限于运用场景,边缘设备的体积和功耗都需要严格的控制,这对嵌入式处理器在面积和功耗方面的设计提出了新的挑战。
目前低成本的嵌入式处理器(如ARM公司的Cortex-M系列处理器)采取简单的原则,以使用传统的顺序流水线为主,尽可能的提高处理器的能效比。目前嵌入式处理器从传统体系结构方向优化面积和功耗已经非常困难,大多数新设计的处理器都是在某些部件的具体实现上进行优化,这些优化带来的收益往往较低。另一种优化方式则是简化指令集架构。由于嵌入式处理器中运行的程序往往比较简单而且固定,这些程序中使用的大部分指令往往是一些简单的算术运算指令或分支指令,因此嵌入式处理器并不需要像目前通用指令集那样复杂的指令集。简化指令集架构的思想就是设计一种用于嵌入式处理器简单但功能完备的指令集,基于这个简单的指令集来实现嵌入式处理器,从而降低嵌入式处理器的面积和功耗开销。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种低开销嵌入式处理器设计方法,本发明在此基础上利用低数据位宽的数据通路来实现高数据位宽的数据通路的低开销嵌入式处理器,从而能够有效地降低嵌入式处理器的面积和功耗。
为了解决上述技术问题,本发明采用的技术方案为:
一种低开销嵌入式处理器设计方法,设计的低开销嵌入式处理器以N位数据位宽取指,对取得的指令以1~N/n个执行周期进行译码,每一个执行周期采用n位数据位宽将数据传输到执行单元以执行该指令,其中N为该低开销嵌入式处理器支持的指令集的最大长度,n为该低开销嵌入式处理器的内部数据位宽。
此外,本发明还提供一种低开销嵌入式处理器,包括:
取指单元,用于从指令存储器或缓存中取出指令;
译码器,用于在执行周期控制信号的控制下对取得的指令以1~N/n个执行周期进行译码得到相应的控制信号,从寄存器文件中读取相应的操作数,将操作数和控制信号送往对应的执行单元,n为该低开销嵌入式处理器的内部数据位宽;
寄存器文件,用于缓存操作数;
执行单元,用于在控制信号的控制下执行指令的运算。
可选地,所述低开销嵌入式处理器支持的指令集的最大长度为N,所述取指单元的取指位宽为N,该低开销嵌入式处理器的内部数据位宽n的取值为N/2。
可选地,所述执行周期控制信号为“低位/高位控制信号”,一条指令进入译码器的第一个执行周期“低位/高位控制信号”信号为低电平,在接下来执行这条指令期间的每个执行周期“低位/高位控制信号”都自动反相,且在取得的指令尚未执行完毕时所述译码器阻塞取指单元的取值操作。
可选地,所述寄存器文件包括用于得到源寄存器号1的第一选择器、用于得到源寄存器号2的第二选择器、用于得到目的寄存器号的第三选择器,所述译码器的控制信号包括用于控制第二控制器的选择信号rs1,用于控制第一控制器的选择信号rs2,用于控制第三选择器的选择信号rd,选择信号rs1用于选择读出源寄存器号rs1的低半字{rs1,0}或者高半字{rs1,1}作为操作数1,选择信号rs2用于选择读出源寄存器号rs2的低半字{rs2,0}或者高半字{rs2,1}作为操作数2,选择信号rd用于选择目的寄存器号rs的低半字{rs,0}或者高半字{rs,1},所述寄存器文件将源寄存器号rs1和源寄存器号rs2读出的数据作为执行单元的输入,或在写信号的控制下将写数据写入数据存储器或Cache中的目的寄存器号rs。
可选地,所述寄存器文件包括64个N/2位寄存器。
可选地,所述执行单元包括算术逻辑单元,所述算术逻辑单元包括移位器、加法器、比较逻辑、逻辑部件和选择器,所述移位器将上一个执行周期输入的N/2位移位操作数、本执行周期读取的N/2位的操作数1或操作数2组合得到N位数据,移位完成后通过选择结果的高N/2位或低N/2位作为移位器的结果;所述加法器的位宽为N/2位,所述加法器用于将上一个执行周期输入的N/2位移位操作数、本执行周期读取的N/2位的操作数1或操作数2、进位信号求和,且在求和结果产生进位时生成进位信号以在下一次求和运算时使用;所述比较逻辑用于根据加法器的结果产生比较信号输出;所述逻辑部件用于对输入的操作数1、操作数2进行逻辑运算;所述译码器输出的控制信号包括结果选择信号,所述选择器用于在结果选择信号的控制下选择移位器、加法器、比较逻辑、逻辑部件中的一项的输出结果作为最终的算术逻辑运算结果。
可选地,所述执行单元包括乘法单元,所述乘法单元用于通过4个执行周期执行4次n位乘法操作,并将其结果移位相加得到N位乘法的结果,其中N为该低开销嵌入式处理器支持的指令集的最大长度,n为该低开销嵌入式处理器的内部数据位宽。
可选地,所述执行单元包括除法单元,所述除法单元为N位除法器,源操作数分为高低半字且通过两个执行周期输入除法单元中。
此外,本发明还提供一种物联网终端,包括微处理器和存储器,该微处理器为所述的低开销嵌入式处理器。
和现有技术相比,本发明具有下述优点:
1、经研究发现处理器中的各个功能模块消耗的硬件资源和其数据位宽成正相关。实验表明一个32位算术逻辑单元消耗的硬件资源大约是16位算术逻辑单元的2倍。因此使用较低位宽使得处理器能够降低处理器的硬件资源开销。本发明在此基础上通过增加指令的执行周期,利用低数据位宽的数据通路来实现高数据位宽的数据通路的低开销嵌入式处理器,减少了处理器的硬件开销,从而能够有效地降低嵌入式处理器的面积和功耗。
2、本发明利用低数据位宽的数据通路来实现高数据位宽的数据通路的低开销嵌入式处理器,具有扩展性好的优点,例如可使用16位数据通路实现32位嵌入式处理器、64位嵌入式处理器等。
3、本发明利用低数据位宽的数据通路来实现高数据位宽的数据通路的低开销嵌入式处理器,针对所需数据位宽较少的指令(例如跳转链接指令、半字节指令等)并不需要通过增加指令的执行周期,从而可以极大地减少这类指令的硬件资源消耗。
附图说明
图1为本发明实施例中处理器的结构框图。
图2为本发明实施例中的寄存器文件读写逻辑图。
图3为本发明实施例中的ALU结构框图。
图4为本发明实施例中的移位器逻辑图。
图5为本发明实施例在实现的RISC-V处理器中处理Load指令以及SLT指令部分信号的波形图。
具体实施方式
本实施例低开销嵌入式处理器设计方法设计的低开销嵌入式处理器以N位数据位宽取指,对取得的指令以1~N/n个执行周期进行译码,每一个执行周期采用n位数据位宽将数据传输到执行单元以执行该指令,其中N为该低开销嵌入式处理器支持的指令集的最大长度,n为该低开销嵌入式处理器的内部数据位宽。
以32位低开销嵌入式处理器(该低开销嵌入式处理器支持的指令集的最大长度为32)为例,该低开销嵌入式处理器以32位数据位宽取指,对取得的指令以1或2个执行周期进行译码,每一个执行周期采用16位数据位宽(该低开销嵌入式处理器的内部数据位宽)将数据传输到执行单元以执行该指令。本实施例设计的低开销嵌入式微处理器通过增加指令的执行周期,该发明利用16位数据通路实现了一个32位处理器,并支持16位地址空间。在内部使用减半的数据通路可以尽量降低处理器的硬件开销。对于大部分32位操作,16位数据通路需要两个执行周期,分别处理32位数据的低半字和高半字。
下文将将以32位RISC-V指令集的低开销嵌入式处理器为例,对本实施例低开销嵌入式处理器设计方法设计的低开销嵌入式处理器进行进一步的详细说明。
如图1所示,本实施例的低开销嵌入式处理器包括:
取指单元,用于从指令存储器或缓存中取出指令;
译码器,用于在执行周期控制信号的控制下对取得的指令以1~N/n个执行周期进行译码得到相应的控制信号,从寄存器文件中读取相应的操作数,将操作数和控制信号送往对应的执行单元,n为该低开销嵌入式处理器的内部数据位宽;
寄存器文件,用于缓存操作数;
执行单元,用于在控制信号的控制下执行指令的运算。
本实施例中,低开销嵌入式处理器支持的指令集的最大长度为N,取指单元的取指位宽为N,该低开销嵌入式处理器的内部数据位宽n的取值为N/2。由于RISC-V标准指令的长度是32位,因此这个低开销嵌入式处理器的取指位宽被设置为32位。取指单元的具体实现和传统处理器并无区别,在此不再赘述。
参见图1,本实施例中取指单元包括流水线寄存器,用于将这个处理器核的处理过程分为两段流水线,两个流水阶段分别是取指阶段(IF)和译码执行阶段(ID)。取指阶段的主要功能是根据程序计数器(PC)中的地址从指令存储器中取指令。由于取指位宽对处理器性能影响较大,取指位宽不应低于指令集的指令位宽,因此本发明中取指位宽与指令位宽保持一致。对于一个指令长度固定为32的指令集而言,取指位宽应该设计成32位。如图1,取指阶段根据当前执行周期执行的指令类型和执行结果选择PC值或者分支目标地址作为下一执行周期的取指地址。译码执行阶段。主要功能是对取指阶段取到的指令进行译码和执行。译码执行阶段主要包括译码器(Decoder)、寄存器文件(RF)、算术逻辑单元(ALU)、乘法单元(MUL)、除法单元(DIV)等部件。
本实施例中,执行周期控制信号为“低位/高位控制信号”,一条指令进入译码器的第一个执行周期“低位/高位控制信号”信号为低电平,在接下来执行这条指令期间的每个执行周期“低位/高位控制信号”都自动反相,且在取得的指令尚未执行完毕时译码器阻塞取指单元的取值操作。译码器在对指令进行译码时,不仅依赖于输入的指令,还依赖于指令的执行周期。在不同的执行周期,产生不同的控制信号,分别对32位数据的高半字或低半字进行处理。图1中的“低位/高位控制信号”用来说明当前执行周期是高半字执行周期还是低半字执行周期。译码器将会产生控制信号、指令中的立即数、读写寄存器号、以及选择对应结果写回寄存器的信号,如果本条指令需要执行多个执行周期,还将产生阻塞取指单元的信号。
由于每条指令所需的执行周期不同,译码器会根据指令的类型和当前执行周期的执行结果决定指令的执行周期,并根据情况阻塞取指单元。对于大部分指令而言,译码器在第一个执行周期产生处理低半字的控制信号,第二个执行周期产生处理高半只的控制信号;对于一些特殊指令,如右移指令和比较指令,则先处理高半字再处理低半字。
该低开销嵌入式处理器将一个32位寄存器分成2个16位寄存器,分别保存32位数据的高半字和低半字。因此,寄存器文件中的逻辑寄存器数量是指令集架构中寄存器数量的两倍。如图2所示,寄存器文件包括用于得到源寄存器号1的第一选择器、用于得到源寄存器号2的第二选择器、用于得到目的寄存器号的第三选择器,译码器的控制信号包括用于控制第二控制器的选择信号rs1,用于控制第一控制器的选择信号rs2,用于控制第三选择器的选择信号rd,选择信号rs1用于选择读出源寄存器号rs1的低半字{rs1,0}或者高半字{rs1,1}作为操作数1,选择信号rs2用于选择读出源寄存器号rs2的低半字{rs2,0}或者高半字{rs2,1}作为操作数2,选择信号rd用于选择目的寄存器号rs的低半字{rs,0}或者高半字{rs,1},寄存器文件将源寄存器号rs1和源寄存器号rs2读出的数据作为执行单元的输入,或在写信号的控制下将写数据写入数据存储器或Cache中的目的寄存器号rs。
本实施例中,寄存器文件包括64个N/2位寄存器,使得兼容性更好。因为不同的RISC-V扩展包含不同的寄存器个数,例如RV32E指令集中包含16个32位寄存器,而RV32I中包含32个。为了支持RV32I,该处理器中包含64个16位寄存器。
如图2所示,通过译码器产生的控制信号,可以有选择的读取32位数据的高低半字,在指令中的寄存器号(rs1、rs2、rd)的末尾加0或者1得到对应的高低半字的寄存器号。根据两个源寄存器号读出的数据可以作为算术逻辑单元和乘除法单元的输入,也可以作为需要写入数据存储器或Cache中的数据。写信号和写数据则用来向对应的目的寄存器中写入指令的执行结果。
本实施例中,执行单元包括算术逻辑单元,如图3所示,算术逻辑单元包括移位器、加法器、比较逻辑、逻辑部件和选择器,移位器将上一个执行周期输入的N/2位移位操作数、本执行周期读取的N/2位的操作数1或操作数2组合得到N位数据,移位完成后通过选择结果的高N/2位或低N/2位作为移位器的结果;加法器的位宽为N/2位,加法器用于将上一个执行周期输入的N/2位移位操作数、本执行周期读取的N/2位的操作数1或操作数2、进位信号求和,且在求和结果产生进位时生成进位信号以在下一次求和运算时使用;比较逻辑用于根据加法器的结果产生比较信号输出;逻辑部件用于对输入的操作数1、操作数2进行逻辑运算;译码器输出的控制信号包括结果选择信号,选择器用于在结果选择信号的控制下选择移位器、加法器、比较逻辑、逻辑部件中的一项的输出结果作为最终的算术逻辑运算结果。
算术逻辑单元两个操作数可能是立即数、PC值或者来自寄存器的数据,根据指令类型通过图2所示的两个选择器进行选择。本实施例中,移位器的位宽是32位,因为高半字或低半字移出的数据会出现在相应的低半字或高半字的结果中。如图4所示,通过组合“移位操作数”(上一个执行周期的16位移位操作数,在第一个执行周期为全0或全1)和“操作数1”(本执行周期读取的16位移位操作数)得到32位数据,移位完成后,通过选择结果的高16位或者低16位作为移位器的结果。本实施例中,加法器的位宽是16位,其需要能产生进位,也能让进位参与运算;对于逻辑操作,高低半字之间没有影响,因此只需要使用16位逻辑部件即可;比较逻辑则用于根据加法器的结果产生比较信号。通过三个部件分别得到移位、加法和逻辑结果后,然后根据译码器产生的控制信号,选择对应的结果作为算术逻辑单元的输出。算术逻辑单元的结果根据指令类型的不同可以作为分支目标地址、访问数据存储器的地址、写寄存器的数据等。
本实施例中,执行单元包括乘法单元,乘法单元用于通过4个执行周期执行4次n位乘法操作,并将其结果移位相加得到N位乘法的结果,其中N为该低开销嵌入式处理器支持的指令集的最大长度,n为该低开销嵌入式处理器的内部数据位宽。
本实施例中,执行单元包括除法单元,基于性能方面的考虑,除法单元为N位除法器,源操作数分为高低半字且通过两个执行周期输入除法单元中。除法单元具体按照32位除法器实现,其操作数和结果通过两个执行周期读取和写回。RISC-V指令集中有两类乘法指令,一类乘法指令需要乘法结果的低32位,另一类则需要结果高32位。在该处理器中,这两类指令分别需要3个和4个时钟执行周期来完成:乘法单元执行3次16位乘法可以得到低32位结果,高32位则需要执行4次16位乘法。
另外,由于该低开销嵌入式处理器只支持16位地址空间,因此访存地址的产生可以在一个执行周期内完成;在进行两个32位操作数比较时,先比较高半字,在高半字相等的情况下再比较低半字,这样在某些情况下可以节约一个时钟执行周期。
对于跳转链接指令(JAL/JALR),只用一个执行周期来完成目标地址的计算及返回地址的保存;对于Store字节或半字指令(SB/SH),只用一个执行周期完成向数据存储器发送地址和数据;对于分支指令中存在的比较操作,先比较两个操作数的高半字,在高位相等的情况下再比较低半字;
对于Load字节或者半字指令(LB/LH/LBU/LHU)以及小于置位指令(SLT)该处理器先写高半字寄存器,图5是这些指令的一个波形图。在第①执行周期,产生低半字的访存地址,并向高半字寄存器中写0;在第②执行周期,Load的低半字数据有效,将数据写入低半字寄存器,至此,LBU和LHU指令执行完成;而对于LB和LH指令则根据符号位决定是否需要执行第③执行周期(当符号位为1时进入第③执行周期)。
另外,如果执行LW指令,在第②执行周期中还会访问数据的高半字;在第③执行周期中,Load的高半字数据有效,如果是LW指令,向高半字寄存器中写入Load数据,如果是LB/LH则向高半字寄存器中写入符号位。SLT指令类似,因为其结果只可能是0或者1,因此在第一个执行周期向高半字寄存器中写入0,第二个执行周期则根据执行的结果向低半字寄存器写入0或者1。
本实施例的低开销嵌入式处理器的执行过程如下:1) 取指单元根据程序计数器中的地址从存储器中取出一条指令,并送往译码器;2) 译码器对这条指令进行译码得到相应的控制信号,并从寄存器文件中读取相应的操作数,并将操作数和控制信号送往对应的执行单元。一条指令进入译码器的第一个执行周期“低位/高位控制信号”信号为低电平,在接下来执行这条指令期间的每个执行周期“低位/高位控制信号”都自动反相;3) 执行单元根据控制信号对操作数执行相应的操作(这些操作包括:如果是一条Load/Store指令,那么就向存储器发送访存地址和数据,数据存储器或Cache执行读写操作,并返回读数据;如果是一条算术逻辑指令,则由ALU完成;如果是一条乘除法指令,则由乘法单元或除法器完成),并输出相应的结果;4) 根据控制信号向相应的寄存器中写入结果或执行一次跳转;其中,执行跳转的方式就是改变取指单元中程序计数器的值;5) 判断一条指令是否执行完成,如果还没有执行完成,则阻塞取指单元,跳转到2)。对于大多数指令,当“低位/高位控制信号”为高时表示该指令执行完成(即两个执行周期),但是有部分指令还需要根据执行的结果判断;而乘除法指令则是在乘除法单元执行结束后指令才会执行完成;6) 执行完成,取指段输出下一条指令到译码执行段。综上所述,本实施例低开销嵌入式处理器设计方法通过增加执行周期的方式,以16位内部数据通路实现了一个32位处理器,其硬件开销显著低于传统32位处理器,适合用于对于面积和功耗有严格要求的物联网边缘设备中。
此外,本实施例还提供一种物联网终端,包括微处理器和存储器,该微处理器为本实施例前述的低开销嵌入式处理器。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种低开销嵌入式处理器,其特征在于,包括:
取指单元,用于从指令存储器或缓存中取出指令;
译码器,用于在执行周期控制信号的控制下对取得的指令以1~N/n个执行周期进行译码得到相应的控制信号,从寄存器文件中读取相应的操作数,将操作数和控制信号送往对应的执行单元,n为该低开销嵌入式处理器的内部数据位宽;
寄存器文件,用于缓存操作数;
执行单元,用于在控制信号的控制下执行指令的运算;
所述低开销嵌入式处理器支持的指令集的最大长度为N,所述取指单元的取指位宽为N,该低开销嵌入式处理器的内部数据位宽n的取值为N/2;
所述寄存器文件包括用于得到源寄存器号1的第一选择器、用于得到源寄存器号2的第二选择器、用于得到目的寄存器号的第三选择器,所述译码器的控制信号包括用于控制第二控制器的选择信号rs1,用于控制第一控制器的选择信号rs2,用于控制第三选择器的选择信号rd,选择信号rs1用于选择读出源寄存器号rs1的低半字{rs1,0}或者高半字{rs1,1}作为操作数1,选择信号rs2用于选择读出源寄存器号rs2的低半字{rs2,0}或者高半字{rs2,1}作为操作数2,选择信号rd用于选择目的寄存器号rs的低半字{rs,0}或者高半字{rs,1},所述寄存器文件将源寄存器号rs1和源寄存器号rs2读出的数据作为执行单元的输入,或在写信号的控制下将写数据写入数据存储器或Cache中的目的寄存器号rs。
2.根据权利要求1所述的低开销嵌入式处理器,其特征在于,所述执行周期控制信号为“低位/高位控制信号”,一条指令进入译码器的第一个执行周期“低位/高位控制信号”信号为低电平,在接下来执行这条指令期间的每个执行周期“低位/高位控制信号”都自动反相,且在取得的指令尚未执行完毕时所述译码器阻塞取指单元的取值操作。
3.根据权利要求1所述的低开销嵌入式处理器,其特征在于,所述寄存器文件包括64个N/2位寄存器。
4.根据权利要求1所述的低开销嵌入式处理器,其特征在于,所述执行单元包括算术逻辑单元,所述算术逻辑单元包括移位器、加法器、比较逻辑、逻辑部件和选择器,所述移位器将上一个执行周期输入的N/2位移位操作数、本执行周期读取的N/2位的操作数1或操作数2组合得到N位数据,移位完成后通过选择结果的高N/2位或低N/2位作为移位器的结果;所述加法器的位宽为N/2位,所述加法器用于将上一个执行周期输入的N/2位移位操作数、本执行周期读取的N/2位的操作数1或操作数2、进位信号求和,且在求和结果产生进位时生成进位信号以在下一次求和运算时使用;所述比较逻辑用于根据加法器的结果产生比较信号输出;所述逻辑部件用于对输入的操作数1、操作数2进行逻辑运算;所述译码器输出的控制信号包括结果选择信号,所述选择器用于在结果选择信号的控制下选择移位器、加法器、比较逻辑、逻辑部件中的一项的输出结果作为最终的算术逻辑运算结果。
5.根据权利要求1所述的低开销嵌入式处理器,其特征在于,所述执行单元包括乘法单元,所述乘法单元用于通过4个执行周期执行4次n位乘法操作,并将其结果移位相加得到N位乘法的结果,其中N为该低开销嵌入式处理器支持的指令集的最大长度,n为该低开销嵌入式处理器的内部数据位宽。
6.根据权利要求1所述的低开销嵌入式处理器,其特征在于,所述执行单元包括除法单元,所述除法单元为N位除法器,源操作数分为高低半字且通过两个执行周期输入除法单元中。
7.一种物联网终端,包括微处理器和存储器,其特征在于,该微处理器为权利要求1~6中任意一项所述的低开销嵌入式处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010895572.6A CN111913746B (zh) | 2020-08-31 | 2020-08-31 | 一种低开销嵌入式处理器设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010895572.6A CN111913746B (zh) | 2020-08-31 | 2020-08-31 | 一种低开销嵌入式处理器设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913746A CN111913746A (zh) | 2020-11-10 |
CN111913746B true CN111913746B (zh) | 2022-08-19 |
Family
ID=73267925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010895572.6A Active CN111913746B (zh) | 2020-08-31 | 2020-08-31 | 一种低开销嵌入式处理器设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913746B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115826910B (zh) * | 2023-02-07 | 2023-05-02 | 成都申威科技有限责任公司 | 一种向量定点的alu处理系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426160A (zh) * | 2015-11-10 | 2016-03-23 | 北京时代民芯科技有限公司 | 基于sprac v8指令集的指令分类多发射方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09330218A (ja) * | 1996-06-11 | 1997-12-22 | Sony Corp | マイクロプロセッサ |
CN101526895B (zh) * | 2009-01-22 | 2011-01-05 | 杭州中天微系统有限公司 | 基于指令双发射的高性能低功耗嵌入式处理器 |
CN101894013B (zh) * | 2010-07-16 | 2013-07-31 | 中国科学院计算技术研究所 | 处理器内指令级流水线控制方法及其系统 |
CN102750133B (zh) * | 2012-06-20 | 2014-07-30 | 中国电子科技集团公司第五十八研究所 | 支持simd的32位三发射的数字信号处理器 |
US10671391B2 (en) * | 2014-02-25 | 2020-06-02 | MIPS Tech, LLC | Modeless instruction execution with 64/32-bit addressing |
CN109298886A (zh) * | 2017-07-25 | 2019-02-01 | 合肥君正科技有限公司 | Simd指令执行方法、装置及处理器 |
-
2020
- 2020-08-31 CN CN202010895572.6A patent/CN111913746B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426160A (zh) * | 2015-11-10 | 2016-03-23 | 北京时代民芯科技有限公司 | 基于sprac v8指令集的指令分类多发射方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111913746A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2810068B2 (ja) | プロセッサシステム、コンピュータシステム及び命令処理方法 | |
US7694109B2 (en) | Data processing apparatus of high speed process using memory of low speed and low power consumption | |
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
JP2816248B2 (ja) | データプロセッサ | |
JPH04313121A (ja) | インストラクションメモリ装置 | |
US5041968A (en) | Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location | |
US20220214884A1 (en) | Issuing instructions based on resource conflict constraints in microprocessor | |
US7805590B2 (en) | Coprocessor receiving target address to process a function and to send data transfer instructions to main processor for execution to preserve cache coherence | |
US6687808B2 (en) | Data processor using indirect register addressing | |
JPH1165844A (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
KR100986375B1 (ko) | 피연산자의 빠른 조건부 선택 | |
US7613903B2 (en) | Data processing device with instruction translator and memory interface device to translate non-native instructions into native instructions for processor | |
CN111913746B (zh) | 一种低开销嵌入式处理器设计方法 | |
US20060095746A1 (en) | Branch predictor, processor and branch prediction method | |
US10409599B2 (en) | Decoding information about a group of instructions including a size of the group of instructions | |
US20070300042A1 (en) | Method and apparatus for interfacing a processor and coprocessor | |
US6438680B1 (en) | Microprocessor | |
US7925862B2 (en) | Coprocessor forwarding load and store instructions with displacement to main processor for cache coherent execution when program counter value falls within predetermined ranges | |
CN111813446A (zh) | 一种数据加载和存储指令的处理方法和处理装置 | |
CN112559037B (zh) | 一种指令执行方法、单元、装置及系统 | |
US5812845A (en) | Method for generating an object code for a pipeline computer process to reduce swapping instruction set | |
US6266764B1 (en) | Program controller for switching between first program and second program | |
JPH04104350A (ja) | マイクロプロセッサ | |
CN111813447A (zh) | 一种数据拼接指令的处理方法和处理装置 | |
JP3102399B2 (ja) | データ処理装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |