一种新型的8位risc微控制器构架的制作方法

文档序号:3670294阅读:185来源:国知局
专利名称:一种新型的8位risc微控制器构架的制作方法
技术领域
本发明属于半导体集成电路设计领域,尤其涉及一种微控制器(MCU ) 系统构架。
技术背景近年来,微控制器的精简指令集(RISC)结构获得了广泛的普及。 虽然RISC处理器应该具有什么特征还有不同的看法,但是各种RISC结 构都有以下这些特征(1)多数指令是单周期指令,以便于实现结构流 水线化;(2)独立而且筒单的加载和存储指令都是双周期指令;(3) 指令解码通常都是硬连线实现而不是微解码,以便加快执行速度;(4)多数指令具有固定格式,以简化指令编码和译码;(5)较小的指令集和 少数几种寻址模式;(6)数据通道流水线化,使处理过程高度并行;(7) 采用大容量高速寄存器堆(或称为寄存器文件),尽量避免与速度较低 的系统RAM交换数据。RISC微控制器的这些特征也带来了一些本质的缺陷和不足(1)指 令集不可扩展;(2)流水线段及级数较多,带来了流水线段数据相关性 判据的复杂性,有时甚至影响到流水线数据吞吐率;(3)数据存储器与 程序存储器复用,没有专门的寄存器堆,或者是特殊寄存器堆与通用寄 存器堆没有分开,影响了对这些寄存器的访问速度,限制了运行速度的 提高;(4)没有采用可测性设计(DFT),在应用中无法保证产品的制造 生产质量;(5)而目前尚未解决的最大问题在于对于两级四段流水线结构,各才莫块间无法相互备份、相互依靠,更不能对数据进行预处理和处 理,严重影响了该结构的抗千扰能力。发明内容本发明需要解决的技术问题在于提供一种新型的8位RISC微控 制器构架,以使得指令不仅完备,而且能够相互备份,相互依靠,对 数据进行预处理,从而提高整个结构的抗千扰能力。本发明的技术方案为包括程序总线、数据总线、程序存储器、 通过程序总线连接到程序存储器的指令译码器、数据随机存储器 (RAM)、寄存器堆、通用算术逻辑单元(ALU)和地址总线,上述部 件通过微码操作控制结构实现;还包括一个二级四段流水线结构,由 四相时钟驱动工作,每一段流水线在对应时钟相内完成功能,其特征 在于,所述二级四段流氷线结构包括指令处理装置,用于完成指令译码、PC备份、双周期指令预处理、 中断向量处理、端口变化中断预处理操作;数据读取装置,接收指令读取装置输出的寻址操作数和数据内 容,并完成多个功能寄存器或数据寄存器读取,同时完成中断请求标志 预处理操作;数据运算装置,接收指令处理装置输出的运算类型操作码、接收 数据读取装置输出的数据内容,并完成算术逻辑运算装置(AUJ)数据运算、端口变化终端处理、空闲模式激活预处理搡作,同时读取下一条指数据写回装置,将^L据运算装置的运算结果按照指令处理装置的操作数寻址部分做写回操作,包括完成ALU数据写回、内部中断和堆栈处理,同时完成PC处理,PC处理包括PC加1、 PC出栈、PC跳转;时钟发生器,用于为上述四个装置提供四相时钟信号,同时产生所述二级四,殳流水线结构所需的同步时钟信号。上述数据写回装置中所述的中断处理和内部堆栈处理装置可以自动进4亍PC压栈和出栈处理。上述指令处理装置包括寄存器、指令译码器、端口预处理器、中断处理器、多路器、立即数处理器。上述数据读取装置包括数据寄存器、两个功能寄存器,多路器。 上述数据运算装置包括算术逻辑运算单元、多路器、指令读取器、端口终处理器。上述数据写回装置包括数据寄存器、两个功能寄存器,中断处理器、 堆栈处理器、PC处理器。本发明的微控制器构架还包括一套指令集,该指令集属于精简指令 集,包含48条指令;所述指令处理装置的输出指令码分成3类字节 操作类、位操作类和立即数与控制类操作类。根据本发明的微控制器构架,其ALU完成所有指令都只需要一个时 钟周期,在指令周期的第三时钟周期内完成。根据本发明的微控制器构架,其数据寄存器包括特殊寄存器和通用 寄存器,利用地址映射电路把分布在不同的区和数据空间的特殊寄存器 和通用寄存器的物理地址映射到连续的物理地址上。冲艮椐本发明的孩t控制器构架,所述中断处理和内部堆栈处理方式在调用子程序或中断处理时自动进行PC压栈和出栈搡作,实现中断的高效处理。本发明的樣t控制器构架还包括一套指令集,属于精简指令集,包含48条指令,所述指令处理装置的输出指令码分为3类,即字节操作类、 位操作类和立即数操作与控制类。其中字节操作类指令有28条,分别是对功能寄存器或者寄存器R的 算术逻辑运算操作以及空操作;算术逻辑运算的结果按照标志位F写入目 标寄存器,F如果为0,目标寄存器为数据写回装置内的功能寄存器A1(本 文中的AO、 Al、 B0、 Bl只是功能寄存器的代号,可以替换;因为对于功 能寄存器A0/A1在物理上的寻址为同一类功能寄存器A,在不同的装置内 分别定义为A0/A1,即将功能寄存器A内容读至数据总线记为AO,从总线 上将数据写入功能寄存器A记为Al;对于功能寄存器B0/B1在物理上的 寻址为同一类功能寄存器B,在不同的装置中分别定义为B0/B1,即将功 能寄存器B内容读至数据总线记为BO,从总线上将数据写入功能寄存器B 记为B1。 ); F如果为l,目标寄存器为R或数据写回装置内的功能寄存 器Bl。其中位搡作类指令有4条,是对寄存器R某位进行清0或者置1的 操作以及对位是否为0或者1进行判断操作;清0和置1的结果按照F 做写回操作,如果是判断操作,将不进行写回操作。其中立即数与控制类操作指令有18条,是对立即数操作和对微控 制器控制的指令。作为对本发明的改进,所述微控制器构架的中断包括硬件中断和软 件中断,可以选择l个或多个中断入口地址,更加容易的判别不同的中 断类型,4吏用多个中断入口地址模式,软中断优先级最高。作为对本发明的改进,所述微控制器构架的内部堆栈处理,采用独热码(0ne-Hot)状态机,使得PC压栈和出栈的操作更加稳定可靠.作为对本发明的改进,其字节操作类指令集中可包含8条程序执行 不带进/借位的算术逻辑运算指令,这些指令将寄存器R和数据读取装 置内的功能寄存器AO内容输入到算术运算单元ALU进行运算,将运算 的结果按照标志位F做写回操作;这些寄存器运算指令包括加法、减法、 加1、减1、逻辑与、逻辑同或、逻辑异或、逻辑求补码,其操作码分 別对应的指令符号为ADD、 SUB、 INC、 DEC、 AND、 IOR、 X0R、 C0MP。作为对本发明的改进,其字节操作类指令集中可包含2条程序执行 寄存器清0指令,这些指令包括对R清零CLR R和对数据读取装置内的 功能寄存器AO清零并将结果写回Al的指令CLRA。作为对本发明的改进,其字节操作类指令集中可包含2条程序执行 加/减1并判断指令,这些指令将R内容输入到ALU进行运算,将进行 加/减l操作,判断结果是否为0来决定是否执行下一条指令,并将结 果按照F做写回操作;这些指令包括加1判断、减1判断,其操作码分 别对应的指令符号为進、魔.作为对本发明的改进,其字节操作类指令集中可包含2条程序执行 带进/借位C的循环移位操作指令,这些指令将R内容以及C输入到ALU 进行移位操作,并将结果按照F做写回操作;这些指令包括左移、右移指令,其操作码分别对应的指令符号为RL、 RR 作为只中本发明的改进,其字节操作类指令集中可包含3条程序执行 空操作指令,执行这些指令不作任何操作,这些指令操作码分别对应的 指令符号为N0P、 N0P2、 N0P3。作为对本发明的改进,其字节操作类指令集中可包含2条程序执行 带进位的十进制BCD码加法调整指令,这些指令将加法之后的R或者A 的内容以及C和DC输入到ALU进行BCD码运算,并将结果写回数据写 回装置内的功能寄存器Al或R操作;这些指令包括对寄存器R和对功 能寄存器AO进行BCD码(二进制码十进制)调整,这些指令操作码分 别对应的指令符号为DAW、 MR。作为对本发明的改进,其字节操作类指令集中可包含2条程序执行 带进/借位的算术逻辑运算指令,这些指令将R和数据读取装置内的功 能寄存器AO内容以及C输入到ALU进行运算,将运算的结果按照F做 写回操作;这些指令包括带进位加法、带借位减法,这些指令操作码分 别对应的指令符号为ADDC、 SUBC。作为对本发明的改进,其字节操作类指令集中可包含l条程序执行 乘法运算指令,这条指令将R和功能寄存器AO内容输入到ALU进行运 算,将运算的结果低8位按照F做写回操作,高8位写入数据写回装置 内功能寄存器Bl,寄存器乘法指令为单周期指令,这条指令操作码符号 为MUL。作为对本发明的改进,其字节操作类指令集中可包含2条程序数据 传送运算指令,这些指令将R或数据读取装置内的功能寄存器AO内容存入到另一个寄存器,然后通过ALU,将数据」fe照F啦文写回才喿作;这些 指令操作码分别对应的指令符号为MOV、 MOVA.作为对本发明的改进,其字节操作类指令集中可包含1条程序执行 功能寄存器数据传送指令,这条指令将功能寄存器AO的内容存入功能 寄存器Bl或将功能寄存器B0的内容存入功能寄存器Al,并按照F做写 回操作;F为O,将功能寄存器BO的内容写入功能寄存器Al, F为l, 将功能寄存器AG的内容写入功能寄存器Bl,这条指令操作码符号为 MOVAB。作为对本发明的改进,其字节操作类指令集中可包含1条程序字节 内数据传送指令,这条指令将R内容输入ALU进行高4位和低4位交换, 将数据按照F做写回操作,这条指令操作码符号SWAP。作为对本发明的改进,其位操作类指令集中可包含2条程序执行位 清0或置1指令,这些指令将R内容输入到ALU,根据指定的位进行清 0或置1运算,将运算的结杲按照F做写回操作;这些指令包括位清0、 置l,其操作码分别对应的指令符号为BC、 BS。作为对本发明的改进,其位操作类指令集中可包含2条程序执行位 判断决定才丸行指令,这些指令将R内容输入到ALU,根据指定的位进行 是0或1的判断,决定是否执行下一条指令;这些指令包括判断位为0、 判断位为l,其操作码分别对应的指令符号为JBC、 JBS。作为对本发明的改进,其立即数与控制类指令集中可包含5条程序执行不带进/借位的立即数I和数据读取装置内的功能寄存器AO算术 逻辑运算指令,这些指令将I和AO内^^T入到ALU进行运算,将运算的结果写入数据写回装置内功能寄存器Al操作;这些立即数运算指令 包4舌加法、减法、逻辑与、逻辑同或、逻辑异或,其才喿作码分别对应的 指令符号为ADDI、 SUBI、 A斷、IORI、 X0RI。作为对本发明的改进,其立即数与控制类指令集中包含2条程序执 行带进/借位的I和功能寄存器AO算术逻辑运算指令,这些指令将I和 AO内容输入到ALU进行运算,将运算的结杲写入功能寄存器Al操作; 这些指令包括带进位加法、带借位减法,其操作码分别对应的指令符号 为ADDCI、 SUBCI。作为对本发明的改进,其立即数与控制类指令集中包含1条程序对数据读取装置内的功能寄存器AO赋值指令,将立即数赋值给功能寄存 器Al的指令,这条指令操作码对应指令符号MOVI。作为对本发明的改进,其立即数与控制类指令集中包含l条程序执 行立即数乘法运算指令,这条指令将立即数和功能寄存器AO内容输入 到ALU进4亍运算,将运算的结果低8位写入功能寄存器Al,高8位写入 功能寄存器B1,立即数乘法指令为单周期指令,这条指令操作码对应指 令符号MULI。作为对本发明的改进,其立即数与控制类指令集中包含2条程序执 行调用子程序指令,这些指令将立即数赋值程序计数器PC,然后将PC 值压入堆栈;这些指令包括调用子程序、长地址调用子程序,其操作码 分别对应的指令符号为CALL、 LCALL。作为对本发明的改进,其立即数与控制类指令集中包含2条程序执 行跳转指令,这些指令将立即数赋值给PC;这些指令包括跳转、短地址跳转,其搡作码分别对应的指令符号为G0T0、 JUMP。作为对本发明的改进,其立即数与控制类指令集中包含1条程序执 行子程序返回指令,这条指令将跳出子程序,其操作码对应的指令符号 为RET。作为对本发明的改进,其立即数与控制类指令集中包含l条程序执 行带立即数子程序返回指令,这条指令将跳出子程序,同时将立即数赋 值给功能寄存器Al,其操作码对应的指令符号为RETI。作为对本发明的改进,其立即数与控制类指令集中包含1条程序执 行中断程序返回指令,这条指令将跳出中断子程序,其操作码对应的指 令符号为RETINT。作为对本发明的改进,其立即数与控制类指令集中包含1条程序对 看门狗WDT清0指令,这条指令将WDT清Q,其操作码分别对应的指令 符号为CWDT。作为对本发明的改进,其立即数与控制类指令集中包含1条程序进 入空闲模式指令,其操作码分别对应的指令符号为IDLE。作为对本发明的改进,其立即数与控制类指令集中包含1条程序执 行长调用子程序指令LCALL,这条指令无需通过设置跨页操作,直接实 现程序存储器8k范围内的子程序调用。作为对本发明的改进,其立即数与控制类指令集中包含1条程序执 行短地址跳转指令JUMP,这条指令将实现程序存储器-255 ~+255范围内的跳转。本发明是一种新型RISC流水线微控制器构架及实现,该微控制器构架的指令集为精简指令集(RISC),数据总线宽度为8位,采用两级 流水线并4亍处理和执行指令,数据存储采用单端异步RAM方式实现,作 为通用寄存器堆,内部还有D触发器组成的寄存器堆,共同组成了数据 寄存器,其物理地址通过一个映射表映射到逻辑地址上。本发明的"^支术效果是在流水线工作时,时钟发生器把外部时钟,分 成四相时钟Q1/Q2/Q3/Q4,即控制4个流水线段的时钟。而四相时钟是通 过两级触发器的状态机来控制实现的,可使其各项时钟不会交叉耦合,并 且具备很强的抗干扰性,保证能够产生稳定的时钟,因此各装置间相互依 靠、相互备份,而对数据的预处理和处理,又可使得该结构对于抗干扰能 力有4艮大的提高;除此之外,由于采用合理的流水时钟和构架设置,适合 采用Top-Down的全同步设计,从而缩短设计、验证周期,同时具备可测 性:没计DFT和可制造性设计DFM,实现较高的芯片生产良率。


图l是二级四段流水线结构的机构框图; 图2是本发明微控制器构架的系统框图; 图3是流水线基本电路;图4是本发明微控制器构架的应用环境及外围模块资源配置图; 图5是本发明微控制器构架内核;具体实施方式
下面详细描述与微控制器构架功能特征相关的硬件细节。如图1是一个二级四段流水线结构,由四相时钟Q1/Q2/Q2/Q3驱动工作,每一^殳流水线在对应时钟相内完成功能,它包括指令处理装置,程序指针指向程序存储器,选取程序的内容,使其进入指令寄存器,指令寄 存器的值经过译码器进行译码操作,该装置还包括对端口的变化进行采样的端口预处理器和对立即数操作的立即数处理器,此类功能在Ql相时钟 完成;数据读取装置,由指令处理装置输出的译码信号,进入读数据寻址 处理单元对数据寄存器进行寻址并且从被寻址到的数据寄存器读取数据, 该装置还包含对中断请求标志位进行处理的中断标志位处理器和位操作 处理器,此类功能在Q2相时钟完成;数据运算装置,包括进行数据运算 的算术逻辑运算单元ALU,确定端口变化的端口终处理单元,检测微控制 器是否处于空闲模式的空闲模式处理器,读取下一条指令的取指令处理 器,此类功能在Q3相时钟完成;数据写回装置,包括对数据寄存器进行 寻址的写数据寻址处理器,并将数据运算装置的结果写回被写数据寻址的 数据寄存器或功能寄存器,同时还包括堆栈处理器、中断处理器和PC处 理器(含PC加1、 PC出栈、PC跳转),以备下一级流水线4吏用,此类功 能在Q4相时钟完成;时钟发生器,由独热码(One-Hot )状态机产生的四 相时钟信号分别输出至各个其他装置,同时产生所述二级四段流水线结构所需的同步时钟信号。参考图2,这是本发明微控制器构架的系统结构。首先,时钟发生器 为各个装置提供时钟,16位程序指针指向程序存储器并取出指令,需要 把指令送到指令寄存器中存储起来,然后进行相应的译码。译码器控制整 个微控制器工作状态,译码器的输出的微码将指令分为三大类字节操作 类指令,位操作指令,立即数操作和控制操作类指令。如果是控制操作类 指令,通过多路器的选择,将选##码器输出的程序指针。和算术逻辑运算相关的指令,将译码输出指向ALU,决定ALU的运算类型(包括算术运 算和逻辑运算),具体操作参考核心构架的实现(图5)。中断处理器是处 理中断的核心部件,当发生中断时,通过多路器将选择中断向量作为程序 指针,同时PC处理器将当前PC输入堆栈处理器做压栈处理;当发生中断 返回时,堆栈处理器做出栈处理,将栈中的数据输出至PC处理器,而PC 处理器将通过多路器将出栈的数据作为程序指针。PC处理器除了上述功 能以外,还包括微控制器正常工作的PC加l操作,执行跳转指令时,译 码器将跳转地址赋值给PC做跳转操作,以及为抗干扰而设计的PC备份操 作,每次PC的变化都将上一次PC值做备份,以备PC受干扰时可以做一 些补^t操作。所以译码时输出也会分成三大类,参考图5。译码器输出对 于寄存器的操作就是读写操作,首先,读寄存器需要译码器输出读寻址信 号,指定某个特定的凄t据寄存器以及相应的读信号;其次,当ALU运算完 毕,写寄存器需要译码器输出写寻址信号,指定某个特定的数据寄存器以 及相应的写信号,如果指定的寄存器为功能寄存器,那么直接写回功能寄 存器。完成一个指令周期后,多路器将选取下一个临时程序指针输入到程 序指针,取出下一条指令,如此不断循环,形成流水线作业。本发明中指 令集的大部分为单周期指令,执行的效率较高,更加容易的实现流水线操 作。由于芯片工作才莫式和端口处理是本发明的较为突出的特点,所以微控 制器在流水操作中实时的检测微控制器是否需要进入低功耗的空闲模式,所以安排Q3来完成空闲模式处理;而端口预处理和端口后处理是检测芯 片的部分端口是否有变化,通过Q1完成预处理和Q3完成终处理,以保证微控制器对外部信号的变化做出准确的判断,避免芯片受到干扰后,无法 正确判断的现象发生。如图3所示的程序流程原理图。复位以后,PC寄存器值为OOOOH,程 序指针指向程序存储器的0000H处。时钟发生器开始工作,在Q1相时钟, PC值备份到PC—TEMP寄存器;由芯片的工作模式判断得知是否芯片是否 工作在IDLE模式,如果工作在IDLE模式,PC值同样备份到PC—PLUS寄 存器,否则PC加1备份到PC-PLUS寄存器。而PC—PLUS和PC—TEMP值在 Q4相时钟,通过判断芯片工作模式,给PC寄存器赋值,如果工作在IDLE 模式,PC-TEMP寄存器赋值给PC寄存器,否则PC-PLUS寄存器值赋给PC 寄存器。执《亍调用子程序指令,在Q4相时钟,PC—TEMP值直接压栈到STACK 堆栈寄存器,PC寄存器的值通过指令译码得到,实现PC跳转;该堆栈为 多级堆栈,采用独热码(One-Hot)状态机实现堆栈状态的转移,使得堆栈 的压栈出栈非常稳定;当中断返回或者子程序中断返回,堆栈将做出栈操 作,堆栈的栈顶值赋给PC寄存器。PC寄存器值可以直接通过指令赋值, 将功能寄存器A的值直接赋值给PC寄存器,实现PC跳转;PC寄存器还 可以通过跳转类指令,将立即数值赋值给PC寄存器,实现PC跳转。可选择的多中断向量和中断向量表是本发明的一个重要特征,从图5 发现,通过中断向量选通,可以选择一个中断向量模式,即中断向量O, 或者多个中断向量,即中断向量1到中断向量N。根据实际应用,选择一 个合适的中断向量表,将不同的中断进行分类,分别分配到不同的中断向 量,即中断向量1到中断向量N。 一次中断只能选择一个中断向量,中断 向量通过多向量逸通信号,选择本次中断的中断向量,进行中断子程序的处理,偵::浮中断的应用更加方〗更可靠。程序流程和程序指针相互依赖,在Q3相时钟,比较PC—TEMP寄存器 值和程序指针是否一样,产生PC-DIFF标志信号,如果PC—DIFF为1表示 程序指针已经发生改变,如果PC-DIFF为0表示PC指针没有发生变化。 当PC—DIFF为1,表示程序工作在跳转或者中断或者调用子程序,程序指 针通过PC指向程序存储器,如果PC-DIFF为O,表示程序顺序执行,即 PC加1的模式执行。这种方法实现的PC处理、中断处理、堆栈处理,能够达到性能可 靠、速度争支快,比如在执行CALL、 RET等指令时,中断处理器和堆栈处 理电路可以自动进行PC压栈和出栈处理,把当前程序地址从程序计数 器取出来,压入堆栈,或把堆栈顶部弹出,作为当前地址装载到程序计 数器中。这种方式大大加快了中断处理速度。如图4所示,为本发明的算术逻辑运算单元原理图。2选1的多路 选择器MUX1的输入为寄存器A0或B0和常数01H,输出为alub。同样, 通过另 一个多路选择器固X3的输入K是从指令直接译码过来的立即数, fout表示从寄存器堆里输出的数据。对这些输入的选择需要根据当前执 行的指令来判断,选择所需的输出数据。多路选择器MUX3的输出为 alua,它一方面输入进算术逻辑运算部分,另一方面通过2选1多路选 择器MUX2,输入进算术逻辑运算部分。多路选择器MUX2由信号alubf 来控制,信号alubf主要由清零指令产生。如果有清零信号产生,就选 通alua输入进算术逻辑运算部分ALU。算术逻辑运算部分ALU是算术逻 辑运算单元最核心的部分,它包含有硬件加法器、硬件乘法器、硬件移位器、逻辑运算器、位操作器等,可以实现移位运算、与非、或非、异 或、非、加法、减法、乘法和比较等运算。根据opcode [3: 0]来进行选择,3 - 8译码器主要用来进行位操作。 通过3-8译码器选中所需操作的位,输入ALU的位操作器进行位的运算 和操作(包括位置1和位清0 )。另 一个信号C是进位或借位,用于进行 加法,减法,移位运算。算术逻辑运算部分输出有三种信号即运算进 位标志aluc,半字节进位标志aludc,运算零标志aluz,运算结果的数 据l;如果进行乘法运算,产生高8位的运算结杲为数据2和低8位的 运算结果为数据2。由于加法器、乘法器、移位器、逻辑运算器、位操 作器都是采用硬件实现,即采用逻辑的线与、线或等硬件电路实现,大 大节省的运算单元的芯片面积,同时也大大提高了运算速度,比如通过 硬件乘法器执行的乘法指令只需要一个指令周期就可以完成。本发明ALU完成所有的指令都只需要一个时钟周期,即在指令周期的 Q3相时钟完成。而运算的结杲在指令周期的Q4相时钟写入对应的寄存器, 数据1通过选择器写入功能寄存器Al或数据寄存器,选择器通过指令的 标志位F做选择写入功能寄存器Al或数据寄存器;如果执行乘法指令, 那么乘法的高8位结果写入功能寄存器Bl、低8位结果写入功能寄存器 Al;如果执行运算类的指令过程中,产生的进位标志aluc,半字节进位 标志aludc,零标志aluz,将写入状态寄存器STA,分别为STA第O位STA[O] 保存进位/借位C , ST A第1位ST A [ 1 ]保存半字节进位DC , ST A第2位ST A [2] 保存零标志位Z。对于功能寄存器A0/A1在物理上的寻址为同一类功能寄 存器A,在不同的装置分别定义为A0/A1,即将功能寄存器A内容读至数据总线记为AO,从总线上将数据写入功能寄存器A记为Al;对于功能寄存 器B0/B1在物理上的寻址为同一类功能寄存器B,在不同的装置分别定义 为B0/B1,即将功能寄存器B内容读至数据总线记为BO,从总线上将数据 写入功能寄存器B记为Bl。图5是本发明微控制器构架的应用环境及资源配置图。 异步静态数据存储器是寄存器堆的一部分,用作通用数据寄存器,与 特殊寄存器堆分离,特珠寄存器用D型边沿触发器实现。异步静态数据存 储器与SRAM接口电路3—起组成了通用数据寄存器电路,在实现时异步 静态数据存储器l是用标准RAM COMPILER生成的。程序存储器通过配置 接口,采用异步方式与CPU核进行数据交换。从图5中可以看到,本发明 的程序总线和数据总线分开,属于哈佛型结构,数据传输速率比共享总线 增力口 1倍。时钟发生器电路为本发明芯片提供所有的时钟信号,包括四相时钟 Ql/Q2/Q3/Q4等,四相时钟连接到各个功能模块,为各个模块工作的提供 时钟。复位电路为本发明的其它部分提供所有必要的复位信号,如上电复 位电路,启动延时定时器,WDT复位信号,外部复位信号等。本发明的其他外围模块包括通信接口,外围定时器,捕捉/比较/脉宽 调制等。通信接口主要是串行通信接口,包括HSSP高速同步串行接口和 HASRT高速同步异步发送接收通信接口。外围定时器包括T1定时器,T2 定时器。捕捉/比较/脉宽调制主要包括CCPl第一路捕捉/比较/脉宽调制, CCP2第二路捕捉/比较/脉宽调制。这些外围电路使得微控制器的控制能 力大大增强,实现了基本的通信接口功能,强大的定时功能,对外部信号处理能力的等等。本发明微控制器构架支持常见微控制器的典型程序指令,包括算术 和逻辑指令、分支指令、数椐传输指令和位测试及位设置指令。这些指 令能由前面叙述和附图中给出的微控制器构架电路支持实现。以下是本发明樣吏控制器构架的指令集,最高位可以扩展,该位微码可以为0或1。 (1 )指令ADD 编码7' bllOlOll 操作(A) + (R)-> (目标) 语法[标号]ADD R, F描述把寄存器R的内容加到寄存器A的内容上。如果F =0,则结果保存在寄存器A上;如果F = 1,则结果保存回 寄存器R。影响标志位C, DC, Z(2 )指令SUB编码7, bllOlllO操作(R) - (A)-> (目标)语法[标号]SUB R, F描述把寄存器R的内容减去寄存器A的内容(余2法 )。如果F = 0,则结果保存在寄存器A上;如果F = 1,贝'j 结果保存回寄存器R。影响标志位C, DC, Z(3)指令INC编码7, bllOOllO 操作(R) + 1 —> (目标) 语法[标号]INC R, F描述把寄存器R的内容加1。如果F-O,则结果保存 在寄存器A上;如果F = 1,则结果保存回寄存器R。 影响标志位Z (4 )指令DEC 编码7, bllOim 操作(R) - 1 -> (目标) 语法[标号]DEC R,F描述把寄存器R的内容加1。如果F-O,则结果保存 在寄存器A上;如果F - 1,则结果保存回寄存器R。 影响标志位Z (5 )指令AND 编码7, WIOIOOI 操作(A) .AND. (R)—> (目标) 语法[标号]AND R, F描述把寄存器R的内容跟寄存器A的内容逻辑与。如 果F = 0,则结果保存在寄存器A上;如果F - 1,则结果保 存回寄存器R。影响标志位Z(6 )指令IOR编码7, b1101000操作(A) .OR. (R) -> (目标)"i吾法[标号]I OR R, F描述把寄存器R的内容跟寄存器A的内容逻辑或。如 果F = 0,则结果保存在寄存器A上;如果F = 1,则结果保 存回寄存器R。影响标志位Z(7 )指令XOR编码7' bllOlOlO操作(A) .XOR. (R)-〉(目标)语法[标号]XOR R, F描述把寄存器A的内容跟寄存器R的内容逻辑异或。 如果F = 0,则结果保存在寄存器A上;如果F = 1,则结果 保存回寄存器R。影响标志位Z (8 )指令COM 编码7, bllOOlOl 操作—(R)-> (目标) 语法[标号]COM R, F描述把寄存器R的内容取反。如果F-O,则结果保存 在寄存器A上;如果F- 1,则结果保存回寄存器R。 影响标志位Z(9 )指令CUl R 编码8, bllOllOll 搡作OOh -> (R)1 一> Z 语法[标号]CLR R描述清除寄存器R的内容,并把标志位Z置1。 影响标志位Z(10) 指令CLRA编码15, bllOllOlOOOOOOll 操作OOh -> (A)1 一> Z 语法[标号]CLRA描述清除寄存器A的内容,并把标志位Z置1。 影响标志位Z(11) 指令JINC 编码7, bllOOOll 操作(R) + 1 -> (目标)如果结果为0则跳过下一指令 语法[标号]JINC R, F描述把寄存器R的内容加1。如果F-O,则结果保存 在寄存器A上;如果F = 1,则结果保存回寄存器R。如果结果为1,则接着执行下一条指令。如果结果为0,则^l行一条NOP指令,占据2个时钟周期。 (12) 指令JDEC 编码7, b1100111 操作(R) — 1 -〉(目标)如果结果为0则跳过下一指令 语法[标号]JDEC R, F描述把寄存器R的内容減1。如果F-O,则结果保存 在寄存器A上;如果F- 1,则结果保存回寄存器R。如果结果为1,则接着执行下一条指令。如果结果为0, 则执行一条NOP指令,占据2个时钟周期。(13〉 指令RL编码7, bl 100001操作参见下列描述语法[标号]RL R, F描述把寄存器R的内容通过进位标志向左循环移动一 位,具体操作参见附图1。如果F = 0,则结果保存在寄存器 A上;如果F = 1,则结果保存回寄存器R。影响标志位C(14) 指令RR编石马7' b1100000操作参见下列描述语法[标号〗RR R, F4苗述把寄存器R的内容通过进位标志向右循环移动一 位,具体操作参见附图2。如果F = 0,则结果保存在寄存器 A上;如果F = 1,则结果保存回寄存器R。影响标志位C(15) 指令NOP编码15, bll0-1100_0xx0—0000 操作空操作 语法[标号]NOP 描述空操作。该指令执行时,不执行任何操作。x表示0和l都可以。(16) 指令N0P2编码15' bill —lxxx—xxxx—xxxx 操作空操作 语法[标号]N0P2 描述空操作。该指令执行时,不执行任何操作。x表示G和l都可以。(17) 指令N0P3编-马15, b000—000x一xxxx —xxxx 操作空搡作 语法[标号]NOP3 描述空操作。该指令执行时,不执行任何操作。x表示O和l都可以。(18) 指令DAW编码15' bOOO—0100—xxxx一xxxx 操作参见下列描述 语法[标号]DAW描述把寄存器A的内容进行BCD码调整,具体调整操 作参见附图3。并将结果保存回寄存器A。 影响标志位C, DC, Z(19) 指令DAR 编码7, bOOOOlOl 操作参见下列描述 语法[标号]DAR R, F描述把寄存器R的内容进行BCD码调整,具体调整操 作参见附图3。如果F == 0,则结果保存在寄存器A上;如果 F = 1,则结杲保存回寄存器R。影响标志位C, DC, Z(20) 指令ADDC 编码7, blll010x操作(A) + (R) + C -〉(目标) 语法[标号]ADDC R, F描述把寄存器R的内容和C加到寄存器A的内容上。 如果F = 0,则结果保存在寄存器A上;如杲F = 1,则结杲保存回寄存器R.影响标志位C, DC, Z(21) 指令SUBC 编码7, blll011x操作(R) — (A) - C —> (目标) 语法[标号]SUBC R, F描述把寄存器R的内容减去寄存器A的内容,再减去C 。如果F = 0,则结果保存在寄存器A上;如果F = 1,则结 果保存回寄存器R。影响标志位C, DC, Z(22) 指令MUL 编码7, blllOOOl搡作(R) * (A)低8位-〉(目标),(R) * (A)高8位 -〉(B)语法[标号]MUL R, F描述把寄存器R的内容乘以寄存器A的内容。如果F-0,则结果l呆存在寄存器A上;如果F = 1,则结果保存回寄 存器R。高8位保存到B寄存器,所以一般配合MOVAB指令使 用。乘法指令占用1个指令周期。该条指令的引入,使本发 明的计算能力大大增强,克服了现有微控制器构架数据处理 能力弱的缺陷,从而能适应于计算量密集型应用,如空调变 频算法等。影响标志位Z(23) 指令MOV 编石马7, bllOOlOO 操作(R)-〉(目标) 语法[标号]MOV R, F描述移动寄存器R的内容。如果F-O,则目标是寄存 器A;如果F = 1,则目标是寄存器堆本身。"F = 1"用于通 过状态标志位"Z"来测试寄存器堆。影响标志位Z(24) 指令MOVA 编码8, bllOllOOl 操作(A) -> (R) 语法[标号]MOVA R描述移动寄存器A的内容到寄存器R。(25) 指令MOVAB 编;马7, blllOOlx操作(A) —> (B)或者(B) —> (A) 语法[标号]MOVAB F描述按照F-l,移动寄存器A的内容到寄存器B;按 照F= 0,移动寄存器B的内容到寄存器A。该条指令的引入,使得本发明,增加了一种寻址方式。(26) 指令SWAP编码7, bllOOOlO搡作(f<3:0〉)-〉(目标<7:4>),(f<7: 4〉)—> (目标<3: 0>) 语法[标号]SWAP R, F描述把寄存器R的内容的上、下半位元组交换。如果F =0,则结果保存在寄存器A上;如果F - 1,则结果保存回寄存器R。该指令4丸行时,交换第一寄存器高位和低位的值,再把 操作的输出存回寄存器A或R寄存器。(27) 指令BC 编码5, blOOl
操作0 -> (R〈BIT〉) 语法[标号]BC R, BIT描述:寄存器R的第BIT位被清零。BIT从7-0表示R 第7~0位。(28) 指令BS 编码5' b10010 操作1 -> (R〈BIT〉) 语法[标号]BC R, BIT描述寄存器R的第BIT位被置1。(29) 指令JBC 编码5, b10001操作如果(R〈BIT〉) = 0则跳过下一指令 -浯法标号]JBC R, BIT描述如果寄存器R的第BIT位是"1",则执行下一条 指令。如果寄存器R的第BIT位是"0",则放弃下一条指令 ,执行一条NOP指令, 一共占据2个时钟周期。(30) 指令JBC 编码5, b10000操作如果(R〈BIT〉) = l则跳过下一指令 语法[标号]JBC R, BIT描述:如果寄存器R的第BIT位是0,则执行下一条指令 。如果寄存器R的第BIT位是1,则放弃下一条指令,执行一 条N0P指令, 一共占据2个时钟周期。(31) 指令ADDI 编码7, bl01001x 操作(A) + I -> (A) 语法[标号]ADDI I描述寄存器A的内容加一个8位数字I,结果保存回寄 存器A。影响标志位C, DC, Z(32) 指令SUBI 编码7, bl01000x 操作I — (A) -> (A)i吾法[标号]SUBI i描述8位数字减去寄存器A的内容,结果保存回寄存器A。影响才示志位C, DC, Z(33) 指令ANDI 编码7' blOlOlOl 操作(A) .AND. I -〉 (A) 语法[标号]ANDI I描述寄存器A的内容跟8位数字I逻辑与,结果保存 回寄存器A。影响标志位Z(34) 指令I0RI 编码7, blOlOlOO 操作(A) .OR. I -> (A) 语法[标号]IROI I描述寄存器A的内容跟8位数字I逻辑或,结杲保存 回寄存器A (35) 指令XORI 编码7, blOlOllO 操作(A) .XOR. I -> (A) 语法[标号]XORI I描述寄存器A的内容跟8位数字I异或。结果保存回寄存器A。影响标志位Z(36) 指令ADDCI 编码7, bOOOOOlO 操作(A) + I + C -〉 (A) 语法[标号]ADDCI I描述寄存器A的内容加8位数字I,再加C以后,结杲 保存回寄存器A。 影响标志位C, DC, Z(37) 指令SUBCI 编码7, bOOOOOll操作I - (A) C -> (A) 语法[标号]SUBCI I描述8位数字减去寄存器A的内容,再减C以后,结果 保存回寄存器A。 影响标志位C, DC, Z(38) 指令MOVI 编码7, blOlllxx 操作I -〉 (A) 语法[标号]MOVI I描述把8位立即数I装载进寄存器A, I的值为空,被 当成0处理 (39 ) 指令CALL编石马4, b0001操作(PC) + 1 -> TOS,I -〉 PC<10: 0>,(PCH<7: 3>) -> PC<15:11> 语法[标号]CALL I描述调用子程序。首先,返回地址(PC+1)压入堆栈。 11位直接地址装载进PC的〈10: 0>位。PC的其余高位〈15 :11〉从PCH〈4: 3>装载。CALL是双周期指令。(40) 指令LCALL 编码4' b01操作(PC) + 1 -> TOS,I -> PC〈12: 0〉, 语法[标号]LCALL I描述调用子程序。首先,返回地址(PC+1)压入堆栈。 低13位直接地址装栽进PC的〈12: 0〉位。LCALL是双周 期指令。TOS为堆栈的顶部。(41) 指令GOTO 编码4, b0010 操作I -> PC〈10:0〉,(PCH〈7: 3>) -> P(X15:11〉 语法[标号GOTO I (0 < I < 2048)描述G0T0是无条件分支,可以在寄存器堆之间跳转。 11位直接地址装载进PC的<10: 0>位。PC的其余高位<15: 11〉从PCH〈7: 3>装载。G0T0是双周期指令。(42) 指令JUMP 编码7, blllOOOO 操作I -> PC<7: 0>,(PCH〈7: 0〉) -> PC〈15:8〉语法[标号]GOTO I (0 < I < 256)描述COTO是无条件分支,可以在寄存器堆之间跳转。8 位直接地址装载进PC的<7: 0>位。PC的其余高位〈15: 8>从 PCH〈7:0〉装载。JUMP是双周期指令。(43) 指令MULI 编码7, b000011x 操作I * (A) -〉 (A) 语法[标号]MULI I描述立即数乘以寄存器A的内容。结杲保存在寄存器A 上,高8位4M到B寄存器。乘法指令占用1个指令周期。 该条指令的引入,使本发明的计算能力大大增强,克服了现 有微控制器构架数据处理能力弱的缺陷,从而能适应于计算 量密集型应用,如空调变频算法等。影响才示志位C, DC, Z(44) 指令RET编;马15' bllOllOOOOOOOOOO 操作TOS -〉 PC 语法[标号]RET描述从子程序返回。堆栈上弹,堆栈的顶部(T0S)装 栽到程序计数器中。这是双周期指令。(45) 指令RETIA 编码5, b10110 操作I -> (A),TOS -> PC 语法[标号]RETIA I描述把8位数字装载到寄存器A上。程序计数器从堆 栈(返回的地址)的顶部装载。这是双周期指令。(46) 指令RETIE编码15, bllOllOOOOOOlOOl 操作TOS -> PC,1 -〉 GIE 语法[标号]RETIE描述从中断返回,并且使得全局中断使能有效。 上述指令CALL、 LCALL、 GOTO、 JUMP、 RET、 RETIE、 RETIA 执行时,指令执行单元产生相应的控制信号,能够自动地进 行PC出栈操作,把当前程序计数器的值压入堆栈,或从堆栈 顶部弹出当前地址,装载到程序计数器中。编码:15, b0000000 —0110—0100 操作00h -〉 WDT,0 -〉 WDT预定标,1 -〉 0T 1 -> LP语法[标号]CWDT描述CWDT指令重置看门狗定时器,也重置看门狗定时 器的预定标因子,同时置位超时状态位OT和低功耗状态位LP(48) 指令IDLE编码15, bllO—1100-0000—0000 操作OOh ->冊T,0 -> WDT预定标,1 -> OT 0 -> LP语法[标号]IDLE描述低功耗状态位LP被清除,超时状态位OT被置位 ,看门狗定时器和预分频被清除,处理器处于空闲状态,时 钟振荡器停止工作。上述指令CWDT和IDLE执行时,指令执行单元产生相应 的控制信号,能够重置看门狗的值。应用程序示例ORG O0HJINC 21H, 1 AND22H, 0定义首i也址00H加1判断寄存器21H的内容,并写回21H 22寄存器内容和功能寄存器A做逻辑与操作: 写回功能寄存器ACALL 88H调用88H处的子程序ORG 88H RET 示例说明上述汇编代码经过编译,得到程序存储器地址和程序存储器内存 储的二进制代码如下程序地址 二进制程序代码 16进制代码0000H 0110001110110001 63B1H0001H 0110100100100010 6922H0002H 0000100010001000 0888H0088H 0110110000001000 6C08H下面结合上述应用程序示例和示例说明书中所提供的程序地址、 二进制程序代码和16进制代码作进一步详细说明,从中表现出CPU对 于上述指令操作以及使用到的各个装置内的功能模块的工作原理。首先上电进行初始复位时,16位程序指针的数值为0000H,同时程 序指针指向程序存储器16位地址的首地址0000H,其存储的内容为 63B1H。第一步,在第一指令周期的第一时钟,通过译码63B1H得知该指令 为JINC (才乘作码对应的指令符号,在发明内容中有述)加1判断指令, 产生JINC的控制信号;本条指令的操作数为寄存器21,即对寄存器21 的内容进行操作;将PC寄存器值0000H写入PC-TEMP临时寄存器做备 《分操作;经过双周期指令预处理,该指令可能为双周期指令;没有中断 和端口变化,所以中断向量处理器和端口变化中断预处理器空闲。同时 将程序指针0000H做PC寄存器值备份到PC-TEMP寄存器,PC—PLUS加1 操作以及CPU其他相关处理。第二步,在第一指令周期的第二时钟,通过读数据寻址器完成寄存 器寻址,即将寄存器21H内容读取至数据总线;没有中断和位操作,所 以中断标志位处理器和位操作处理器空闲。第三步,在第一指令周期的第三时钟,指令译码的结果表明输入的 运算数据多路选择器的输出alua为从寄存器堆里输出的数据fout, 即实施例指令集中所提及的寄存器30H的内容和另一多路选择器的输出 alub为OIH,即加法所需的数值l;数据选择完毕,ALU将根据译码信 号对2个输入的数据进行加法运算,加法运算在ALU的硬件加法器内进 行;如果加法以后输出零标志位Z为0,那么该指令为单周期指令,指 令顺序执行,即PC-PLUS寄存器值作为程序指针来读取下一条指令 6922H;如果加法以后输出零标志位Z为1,那么指令为双周期指令,流水线革殳会插入一个空操作N0P( 6C00H ),以继续完成流水线,即PC—PLUS 不做读取程序存储器操作;端口变化终端处理和空闲模式激活预处理此 时为空闲状态。第四步,在第一指令周期的第四时钟,ALU运算完毕的数据写回寄 存器21H (在实施例中已提及),零标志位Z写入状态寄存器的STA[2]; 判断是否有中断正在中断处理器内处理,内部堆栈是否为有操作等,此 时没有中断和堆栈处理,那么程序计数器的内容将通过流水线的多路器 传送给程序指针,此时程序指针变为0001H,进入下一个流水线循环。由于每条指令所需各个装置的功能模块不一样,比如上述CALL指 令将由堆栈操作、PC跳转操作,AND指令需要功能寄存器A参与工作等 等。每条指令代码从译码操作开始,都必须经过一个指令周期的四相时 钟,而在指令周期的第三相时钟读取下一条指令,从而组成了两级四段 流水线结构方法。虽然已公开了本发明的优选实施例,但本领域技术人员将会意识到, 在不背离权利要求书中公开的本发明的范围和省去隔直电容精神的情况 下,任何各种修改、添加和替换均属于本发明的保护范围。
权利要求
1、一种新型8位RISC微控制器构架,其特征在于该微控制器结构包括状态机、时钟发生器和二级四段流水线结构,所述状态机和时钟发生器相连,所述二级四段流水线结构包括指令处理装置,与状态机相连,用于完成指令的译码、PC备份、双周期指令预处理、中断向量处理、端口变化预处理操作;数据读取装置,与状态机相连,用于接收指令处理装置输出的寻址操作数和数据内容,并完成多个功能寄存器或数据寄存器读取,同时完成中断请求标志预处理操作;数据运算装置,与状态机相连,用于接收指令处理装置输出的运算类型操作码、接收数据读取装置输出的数据内容,并完成算术逻辑运算装置数据运算、端口变化终处理、空闲模式激活预处理操作,同时读取下一条指令;数据写回装置,与状态机相连,用于将数据运算装置的运算结果按照指令处理装置的操作数寻址部分做写回操作,包括完成算术逻辑运算装置数据写回、内部中断和堆栈处理,同时完成PC处理,PC处理包括PC加1、PC出栈、PC跳转。
2、 才艮据权利要求1所述的新型8位RISC微控制器构架,其特征在于所 述指令处理装置包括指令寄存器、指令译码器、端口预处理器、中断处理 器、多路器和立即数处理器,所述指令寄存器和指令译码器通过程序总线相 连,多路器和立即数处理器通过数据总线相连,端口预处理器与系统总线相 连,中断处理器与地址总线相连。
3、 才艮据权利要求1或2所述的新型8位RISC微控制器构架,其特征在 于所述数据读取装置包括数据寄存器、第一功能寄存器、第二功能寄存器、 多路器,其中,第一功能寄存器通过数据总线分别与数据寄存器和多路器相 连,第二功能寄存器和多路器通过数据总线相连。
4、 才艮据权利要求3所述的新型8位RISC微控制器构架,其特征在于所述数据运算装置包括算术逻辑单元、多路器、指令读取器、端口终处理器, 其中,算术逻辑单元通过数据总线分别与多路器、指令读取器、端口终处理 器相连。
5、 4艮据权利要求4所述的新型8位RISC微控制器构架,其特征在于所 述数据写回装置包括数据寄存器、第三功能寄存器、中断处理器、堆栈处理 器和程序计数器,其中,数据寄存器通过数据总线与第三功能寄存器相连, 程序计数器通过地址总线分别与中断处理器和堆栈处理器相连。
6、 4艮据权利要求1所述的新型8位RISC微控制器构架,其特征在于所 述状态机为独热码状态机。
7、 根据权利要求1所述的新型8位RISC微控制器构架,其特征在于微 控制器结构还fe括一套精筒指令集,该指令集包含48条指令;所述指令处理 装置的输出指令码分成3类字节操作类、位操作类和立印数操作与控制类。
8、 根据权利要求7所述的新型8位RISC微控制器构架,其特征在于所 述字节操作类指令有28条,分别是对功能寄存器或者寄存器R的算术逻辑运 算操作以及空操作;算术逻辑运算的结果按照标志位F写入目标寄存器,F 如果为0,目标寄存器为数据写回装置内的功能寄存器A1; F如果为l,目标 寄存器为寄存器R或数据写回装置内的功能寄存器Bl。
9、 根据权利要求8所述的新型8位RISC微控制器构架,其特征在于所 述指令集中包含1条程序执行功能寄存器数据传送指令,这条指令将功能寄 存器A0的内容写入功能寄存器B1中,或将功能寄存器BO的内容写入功能寄 存器A1中,并按照F做写回操作,当F为O,将功能寄存器BO的内容写入 功能寄存器Al中,当F为1,将功能寄存器A0的内容写入功能寄存器B1中, 这条指令操作码符号为M0VAB。
10、 根据权利要求7所述的新型8位RISC微控制器构架,其特征在于 所述指令集中包舍2条程序执行调用子程序指令,这些指令将立即数赋值程 序计数器,然后将程序计数器的值压入堆栈;这些指令包括调用子程序、长 地址调用子程序,其搡作码分别对应的指令符号为CALL、 LCALL。
全文摘要
本发明公开了一种新型的8位RISC微控制器构架,其包括二级四段流水线结构,二级四段流水线结构包括指令处理装置、数据读取装置、数据运算装置、数据写回装置、状态机和时钟发生器。通过上述结构使得各项时钟不交叉耦合,保证能够产生稳定的时钟,各装置间相互依靠、相互备份,而对数据的预处理和处理,又可使得该结构对于抗干扰能力有很大的提高,从而实现高生产率。
文档编号G06F9/38GK101221494SQ20071018721
公开日2008年7月16日 申请日期2005年8月31日 优先权日2005年8月31日
发明者刘桂蓉, 岳卫杰, 松 潘, 陈光胜 申请人:上海海尔集成电路有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1