复杂指令集微控制器的译码方法和装置制造方法及图纸

技术编号:4166372 阅读:201 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种复杂指令集微控制器的译码方法和装置,该方法包括:将预先读取的指令送入第一指令寄存器中,并对所述指令进行预先译码,产生在整个指令周期内有效的功能代码;将经过预先译码后的指令送入第二指令寄存器中,在第一个时钟周期内对所述指令进行第一次译码,产生在当前机器周期内有效的功能代码,以及在当前机器周期的第三个时钟周期或者其他机器周期的第一个时钟周期或第三个时钟周期对所述指令进行第二次译码,产生在下一个时钟周期内有效的功能代码。本发明专利技术通过在指令队列的不同阶段,根据指令代码实现功能的时间长度不同进行分别译码,从而提高了译码效率,减少了指令执行的机器周期数,减少了指令的运行时间,提高了执行速度。

Decoding method and device for complex instruction set micro controller

The invention relates to a method and device for decoding complex instruction set microcontroller, the method includes: the pre fetch instruction to the first instruction register, and pre decoding of the instruction code, generating function in the entire instruction period; after the pre decoded instructions into the instruction register second first, in a clock cycle for the first time decoding of the instruction, produce a valid function code in the current machine cycle, and in the current machine cycle is third clock cycles or other machine cycle in one clock cycle or third clock cycles of the instruction of the second decoding, code generation function in the next clock cycle. The present invention through different stages in the instruction queue, according to the instruction code to achieve the function of different length of time were decoding, so as to improve the decoding efficiency, reduces the instruction execution number of machine cycles, reducing the running time of the instruction, improves the speed of execution.

【技术实现步骤摘要】

本专利技术涉及半导体集成电路设计领域,尤其是一种复杂指令集(Complex Instruction Set Computer,简称CISC)微控制器的译码方法和装置。
技术介绍
微控制器(Microcontroller Unit,简称MCU)是将微型计算机的主要部 分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代 中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应 用已经遍及各个领域。微控制器可从不同方面进行分类,根据指令结构可分为精简指令集 (Reduced Instruction Set Computer,简称RISC )和CISC孩i控制器。RSIC 指令集的指令相对较少,执行速度快,但通常需要多个指令组合才能完成功 能的实现,这样就需要较多的编译时间来执行。CISC指令集的指令丰富,功 能较为强大,读取指令和执行指令采用单指令流水线结构。CISC体系的丰富 的指令集^更于应用,能实现较复杂的功能任务。在CISC微控制器中,程序的各条指令是按顺序串行执行的,每条指令中 的各个操作也是按顺序串行执行的。程序执行首先读取指令码,然后译码。 根据译码后得到的指令的类型,将操作数或者需要计算的地址送入算术逻辑单元(Arithmetic Logic Unit,简称ALU)进行运算。然后,存储运算的结 果,写入寄存器或者内存单元。然后再读入下一字节的指令,进^泽码、ALU 运算、回写存储数据,以此类推,直到指令结束。CISC微控制器的一条指令 通常需要执行多个机器周期, 一个机器周期为4个时钟周期。在指令的译码结构上也为按顺序串行执行。虽然上述顺序执行控制简单,但是计算机各部 分的利用率不高,执行速度较慢。因此,上述现有技术的CISC微控制器指令的译码方法较为简单, 一个机器周期只能执行一次取指、译码结构,造成指令执行的机器周期较多,计算 机各部分的利用率不高,执行速度较慢。
技术实现思路
本专利技术的目的是提供一种复杂指令集微控制器的译码方法和装置,用以 减少指令执行的机器周期,提高译码效率和微控制器的运行速度。为实现上述目的,本专利技术提供了一种复杂指令集微控制器的译码方法,包括将预先读取的指令送入第一指令寄存器中,并对所述指令进行预先译码, 产生在整个指令周期内有效的功能代码;将经过预先译码后的指令送入第二指令寄存器中,在第一个时钟周期内 对所述指令进行第一次译码,产生在当前机器周期内有效的功能代码,以及 在当前机器周期的第三个时钟周期或者其他机器周期的第一个时钟周期或第 三个时钟周期对所述指令进行第二次译码,产生在下一个时钟周期内有效的 功能代码。为实现上述目的,本专利技术还提供了一种复杂指令集微控制器的译码装置, 包括第一指令寄存器,用于存储从程序存储器中预先读取的指令; 预译码模块,用于对所述第一指令寄存器中的指令进行预先译码,产生在整个指令周期内有效的功能代码;第二指令寄存器,用于存储从预译码模块中读取的指令;第 一译码模块,用于在第 一个时钟周期内对所述第二指令寄存器中的指令进行第 一次译码,产生在当前机器周期内有效的功能代码;4第二译码模块,用于在当前机器周期的第三个时钟周期或者其他机器周 期的第一个时钟周期或第三个时钟周期对所述第二指令寄存器中的指令进行 第二次译码,产生在下一个时钟周期内有效的功能代码。由上述技术方案可知,本专利技术通过在指令队列的不同阶段,根据指令代 码实现功能的时间长度不同进行分别译码,从而提高了译码效率,减少了指 令执行的机器周期数,减少了指令的运行时间,提高了执行速度。附图说明图1为本专利技术复杂指令集微控制器的译码方法的实施例的流程示意图; 图2为本专利技术复杂指令集微控制器的译码装置的实施例的结构示意图。具体实施例方式下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。CISC微控制器的一条指令通常需要执行多个机器周期,即一个指令周期 包含有多个机器周期, 一个机器周期则为四个时钟周期,即CO、 Cl、 C2和C3。如图1所示,为本专利技术复杂指令集微控制器的译码方法的实施例的流程 示意图。本实施例包括以下步骤步骤IOI、将预先读取的指令送入第一指令寄存器中,并对上述指令进行 预先译码,产生在整个指令周期内有效的功能代码。在一条指令执行前一个时钟周期C3,译码装置先通过程序数据总线从程序存储器中读取指令,将其放入指令队列单元的第一指令寄存器IRO中,此 阶段为指令的预取阶段,完成指令部分功能的译码,并由译码装置的控制电 路根据译码结果进行操作。在IRO中的指令译码产生的是在整个指令周期内 都有效的功能代码,即用于整个指令周期内;步骤102、将经过预先译码后的指令送入第二指令寄存器中,在第一个时 钟周期内对上述指令进行第一次译码,产生在当前机器周期内有效的功能代5码,以及在当前机器周期的第三个时钟周期或者其他机器周期的第一个时钟 周期或第三个时钟周期对上述指令进行第二次译码,产生在下一个时钟周期 内有效的功能代码。在随后的时钟周期C0,指令进入到译码装置队列单元的指令寄存器IR 中,在此阶段完成指令的其他功能的译码,并由控制电路根据译码结果进行 操作。根据指令实现功能的不同,在指令译码的第二阶段,即指令寄存器IR 中译码阶段,对指令译码分为两个部分PARTI和PART2。在每个机器周期的 时钟周期CO阶段,对指令进行PARTI译码,产生在当前机器周期有效的功能 代码,即用于当前机器周期内;在每个机器周期的偶数次时钟周期C0或C2, 对指令进行PART2译码,产生在下个时钟周期Cl或C3有效的功能代码,即 用于下个时钟周期Cl或C3内。译码装置通过三个阶段的译码完成指令译码 工作,并根据译码结果控制中央控制单元内其他模块的工作。本实施例的译码方法通过在指令队列的不同阶段,根据指令代码实现功 能的时间长度不同进行分别译码,从而提高了译码效率,减少了指令执行的 机器周期数,减少了指令的运行时间,提高了执行速度。以加法指令ADD rrr,n为例对应用本实施例的指令执行作进一步的说明, 其中rrr为通用寄存器代表多个工作寄存器,n为立即数。首先在前一个机器周期的时钟周期C3进行IRO译码,预取指令ADD rrr, n送入IRO中,将指令中的rrr译码为A (A为一个工作寄存器),以供指令 执行中使用;其次在当前机器周期的时钟周期CO进行IR PARTI译码,将IRO中的指 令ADD A, n送入IR中,时钟周期Cl取A中数据,送入ALU的寄存器0P1中, 取立即数n,送入ALU的寄存器0P2中;随后在当前机器周期的时钟周期C2进行IR PART2译码,时钟周期C3在 ALU中进行加法计算0P1+0P2;最后在下一个机器周期的时钟周期CO进行IR PARTI译码,将ALU结果回写到寄存器A中。至此,可以看出,完成上述加法指令ADD rrr, n的机器周期数为两个, 与现有技术完成上述加法指令ADD rrr, n的机器周期数三个相比,本实施例 可以减少该指令执行的机器周期数,减少了指令的运行时间,提高了执行速 度。如图2所示,为本专利技术复杂指令集微控制器的译码装置的实施例的结构 示意图。本实施例包括第一指令寄存器10,用于存储从程序存储器中预先 读取本文档来自技高网
...

【技术保护点】
一种复杂指令集微控制器的译码方法,其特征在于包括: 将预先读取的指令送入第一指令寄存器中,并对所述指令进行预先译码,产生在整个指令周期内有效的功能代码; 将经过预先译码后的指令送入第二指令寄存器中,在第一个时钟周期内对所述指令进 行第一次译码,产生在当前机器周期内有效的功能代码,以及在当前机器周期的第三个时钟周期或者其他机器周期的第一个时钟周期或第三个时钟周期对所述指令进行第二次译码,产生在下一个时钟周期内有效的功能代码。

【技术特征摘要】
1、一种复杂指令集微控制器的译码方法,其特征在于包括将预先读取的指令送入第一指令寄存器中,并对所述指令进行预先译码,产生在整个指令周期内有效的功能代码;将经过预先译码后的指令送入第二指令寄存器中,在第一个时钟周期内对所述指令进行第一次译码,产生在当前机器周期内有效的功能代码,以及在当前机器周期的第三个时钟周期或者其他机器周期的第一个时钟周期或第三个时钟周期对所述指令进行第二次译码,产生在下一个时钟周期内有效的功能代码。2、 一种复杂指令集微控制器的译码装置,其特征在于包括 第一指令寄...

【专利技术属性】
技术研发人员:张晓诗赵启山谷志坤史卫东许漪
申请(专利权)人:上海海尔集成电路有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1