CN1516001A - 一种新型risc流水线微控制器构架及其操作方法 - Google Patents

一种新型risc流水线微控制器构架及其操作方法 Download PDF

Info

Publication number
CN1516001A
CN1516001A CNA031147844A CN03114784A CN1516001A CN 1516001 A CN1516001 A CN 1516001A CN A031147844 A CNA031147844 A CN A031147844A CN 03114784 A CN03114784 A CN 03114784A CN 1516001 A CN1516001 A CN 1516001A
Authority
CN
China
Prior art keywords
instruction
register
micro controller
controller frame
class
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.)
Pending
Application number
CNA031147844A
Other languages
English (en)
Inventor
朱建国
潘松
李逍波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Hair Group Integated Circuit Co Ltd
Shanghai Haier Integrated Circuit Co Ltd
Original Assignee
Shanghai Hair Group Integated Circuit Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Hair Group Integated Circuit Co Ltd filed Critical Shanghai Hair Group Integated Circuit Co Ltd
Priority to CNA031147844A priority Critical patent/CN1516001A/zh
Publication of CN1516001A publication Critical patent/CN1516001A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明是一个新型RISC微控制器构架。该微控制器构架的核心有两级流水线,采用数据存储器与指令存储器分离的哈佛型结构,存取速度可以增加一倍;指令集有38条指令,编码效率高,采用流水线化结构,非常容易进行指令扩展;该微控制器构架支持低功耗睡眠和唤醒模式,支持外部中断,支持B口高4位变化中断,具有强大的中断处理能力,能处理八级中断;数据存储器采用单端口,异步低功耗SRAM,存储深度为256×8,可扩展至2K,程序存储器采用嵌入式FLASH,存储深度为4K×16位,可扩展到64k位,寻址方式有直接寻址,间接寻址,立即数寻址等方式;能在DC~40MHz运行,目前在同类产品中运行速度为最快。本发明微控制器构架再加上适当的外围模块资源后,可集成进各种嵌入式系统、单片系统(SOC)中,广泛应用于消费电子、通信、卫星定位和音、视频等领域。

Description

一种新型RISC流水线微控制器构架及其操作方法
技术领域
本发明总体上属于半导体集成电路设计领域的微控制器(MCU)领域,具体为执行精简指令集的微控制器。
背景技术
随着深亚微米CMOS集成电路生产工艺的不断进步,目前技术上已经可以把复杂的微控制器(MCU)内核集成在一块芯片上,同时留有足够的硅片面积用于实现复杂的存储器和外设逻辑,过去用于高端32位和64位CPU的设计方法和构架现在已经能够有效的用于低价8位微控制器系统。利用这些功能强大而且便宜的微控制器,全系统的集成度不断提高。硬件结构可执行更复杂高效的程序,集成更多的硬件功能。
近年来,微控制器的精简指令集(RISC)结构获得了广泛的普及。虽然RISC处理器应该具有什么特征还有不同的看法,但是各种RISC结构都有一些特征:(1)多数指令是单周期指令,以便于实现结构流水化;(2)独立而且简单的加载和存储指令都是双周期指令;(3)指令解码通常都是硬连线实现而不是微解码,以便加快执行速度;(4)多数指令具有固定格式,以简化指令编码和译码;(5)较小的指令集和少数几种寻址模式;(6)数据通道流水线化,使处理过程高度并行;(7)采用大容量高速寄存器堆(或称为寄存器文件),尽量避免与速度较低的系统RAM交换数据。
RISC微控制器的这些特征也带来了一些本质的缺陷和不足:(1)指令集不可扩展;(2)流水线段及级数较多,带来了流水线段数据相关性判据的复杂性,有时甚至影响到流水线数据吞吐率;(3)数据存储器与程序存储器复用,没有专门的寄存器堆,或者是特殊寄存器堆与通用寄存器堆没有分开,影响了对这些寄存器的访问速度,限制了运行速度的提高;(4)没有采用可测性设计(DFT),在应用中无法保证产品的制造生产质量。
现在有很多公司生产RISC微控制器,如Microchip、Motorola、NEC、Hitachi、Atmel、Holtek等。虽然Texas Instruments公司的TMS370Cx1x系列8位微控制器并没有利用RISC构架,但提供了可用于RAM和通用寄存器的一组RAM模块,Motorola的8位微控制器MC6805也有类似的双用途RAM。Microchip公司有PIC16C5X、7X和9X系列,使用了Harvard结构,数据和程序(指令)使用不同的存储器和总线;指令处理部分采用了二级指令流水线,同时处理二条指令;系统RAM兼作寄存器组,并不存在真实的内部寄存器。由于所有存储器最终都由静态RAM实现,在运行大量涉及寄存器操作的程序时会使性能大幅度降低。为了加快运行速度,常常采用很大的数据存储器,甚至达16M字节,有一些微控制器采用SRAM与由触发器实现的内部寄存器共存的方法。这样都不可避免的增大了芯片面积和造价。
快速设计周期在微控制器系统开发中是非常重要的,而且软件在计算机系统里有着不容置疑的重要地位。微控制器系统的使用跟软件编程与硬件设计之间的规格接口密切相关,这个接口就是微控制器的指令集。指令集必须完备,使所有可计算的功能都在合理的程序空间内得以实现。而且指令集必须是高效的,以便使常用的功能可以用相对少的指令实现。
因此,提供给应用软件开发的微控制器系统必须有一个完备而高效的指令集。
发明内容
一个哈佛型结构的微控制器构架,其结构包括:程序总线、数据总线、程序存储器、通过程序总线连接到程序存储器的的指令译码器、数据随机存储器(RAM)、寄存器堆、通用算术逻辑单元(ALU)和地址总线等,这些部件是通过微码操作控制结构实现的;它还包括:
一个二级四段流水线结构,由四相时钟驱动工作,每一段流水线在对应时钟相内完成功能,它包括:
取址和译码装置,用于从程序存储器取出指令并进行译码操作;
读寄存器装置,用于从工作寄存器和数据寄存器读出数据;
算术逻辑运算装置(ALU),用于算术和逻辑运算;
回写寄存器及内部中断和堆栈处理装置,用于将ALU操作结果回写到寄存器里,同时进行内部中断和堆栈处理,以备下一级流水线使用;
时钟发生器,用于为上述装置提供四相时钟信号,同时产生所述二级四段流水线结构所需的同步时钟信号。
根据本发明第1方面的微控制器构架,所述中断处理和内部堆栈处理装置可以自动进行压栈和出栈处理。
根据本发明第2方面的微控制器构架,所述取址和译码装置包括指令译码器、多路器、程序计数器、指令存储器;
根据本发明第3方面的微控制器构架,所述读寄存器装置包括数据存储器、工作寄存器;
根据本发明第4方面的微控制器构架,所述回写寄存器及内部中断和堆栈处理装置包括中断处理器、内部堆栈、数据存储器、工作寄存器;
根据本发明第1到5方面的微控制器构架,所述指令译码器的输出指令码分成3类:寄存器操作类、位操作类和立即数类。
根据本发明第1方面的微控制器构架,还包括一套指令集,该指令集属于精简指令集,包含38条指令。
根据本发明第7方面的微控制器构架,其中所述指令集包含一条乘法指令multAf。该指令有自己的机器操作码,指定了第一和第二寄存器。指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一和第二寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。
根据本发明第8所述的控制器,其指令集中包含一条程序执行分支控制指令jumpf。该指令有自己的机器操作码。指令执行时,指令执行单元产生相应的控制信号,改变程序计数器的值,采用立即数相对寻址方式控制指令的执行顺序,在寄存器堆的页内跳转。
根据本发明第9方面的微控制器构架,所述指令集包括6条运算指令,每一条指令都有各自的机器操作码,指定了第一和第二寄存器。这一类指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一和第二寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。这一类指令有addAf、andAf、iorAf、subAf和xorAf。
根据本发明第10方面的微控制器构架,包括4条位操作指令,每一条指令都有各自的机器操作码,指定了一个寄存器。这一类指令执行时,指令执行单元产生相应的控制信号,清除或置位寄存器的所有位或指定位。这一类指令有clr、clrA、bitclr和bitset。
根据本发明第11方面的微控制器构架,包括1条求补指令com,该指令有独立的机器操作码,指定了第一和第二寄存器。该指令执行时,根据标志位的值把结果输出存回上述第一或第二寄存器。
根据本发明第12方面的微控制器构架,包括4条递增和递减指令,每一条指令都有各自的机器操作码,指定了第一和第二寄存器。这一类指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。这一类指令有dec、decsz、inc和incsz。
根据本发明第13方面的微控制器构架,包括3条数据移动指令,每一条指令都有各自的机器操作码,指定了一个或二个寄存器。这一类指令执行时,指令执行单元产生相应的控制信号,把一个寄存器的内容或立即数保存到另一个寄存器中。这一类指令有mov、movAf和movlA。
根据本发明第14方面的微控制器构架,包括1条空操作指令nop,该指令有独立的机器操作码。该指令执行时,不执行任何操作。
根据本发明第15方面的微控制器构架,包括2条移位指令,每一条指令都有各自的机器操作码,指定了第一和第二寄存器。这一类指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。这一类指令有rol和ror。
根据本发明第16方面的微控制器构架,包括1条交换指令swap,该指令有独立的机器操作码,指定了第一和第二寄存器。该指令执行时,交换第一寄存器高位和低位的值,再把操作的输出存回上述第一或第二寄存器。
根据本发明第17方面的微控制器构架,包括4条程序执行分支控制指令,每一条指令都有各自的机器操作码。这一类指令执行时,指令执行单元产生相应的控制信号,改变程序计数器的值,控制指令的执行顺序。这一类指令有btsc、btss、bsf和goto。
根据本发明第18方面的微控制器构架,包括5条立即数运算指令,每一条指令都有各自的机器操作码,指定了一个寄存器。指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)把寄存器的内容与立即数相运算;(II)把运算结果保存回寄存器。这一类指令有AddlA、andlA、iorlA、sublA和xorlA。
根据本发明第19方面的微控制器构架,包括4条子程序调用及返回指令,每一条指令都有各自的机器操作码。这一类指令执行时,指令执行单元产生相应的控制信号,能够自动地进行压栈和出栈出操作,把当前程序计数器的值压入堆栈,或从堆栈顶部弹出当前地址,装载到程序计数器中。这一类指令有call、return、retie和retlA。
根据本发明第20方面的微控制器构架,包括2条看门狗控制指令指令,每一条指令都有各自的机器操作码。这一类指令执行时,指令执行单元产生相应的控制信号,能够重置看门狗的值。这一类指令有clrwdt和sleep。
根据本发明第1方面的微控制器构架,其数据存储器包括特殊寄存器和通用寄存器,利用地址映射电路把分布在不同的区和数据空间的特殊寄存器和通用寄存器的物理地址映射到连续的物理地址上。
根据本发明第1方面的微控制器构架,所述微控制器构架包括中断处理和内部堆栈处理方式,在调用子程序或中断处理时自动进行压栈和出栈操作,实现中断的高效处理。
一种用于操作微控制器构架的方法,所述方法包括下述步骤:
时钟发生器同时产生四相时钟信号,提供给所述二级四段流水线结构;
在Q1时钟周期,从程序存储器取出指令并进行译码操作;
在Q2时钟周期,从工作寄存器和数据寄存器读出数据;
在Q3时钟周期,根据译码操作对所述数据进行算术和逻辑运算;
在Q4时钟周期,将ALU操作结果回写到寄存器里,同时进行内部中断和堆栈处理,以备下一级流水线使用。
根据本发明第24方面的方法,还包括在所述第四时钟周期进行中断处理的操作。
根据本发明第25方面的方法,还包括在所述第一时钟周期判断是否在进行中断处理的操作。
本发明是一种新型RISC流水线微控制器构架及实现,该微控制器构架的指令集为精简指令集(RISC),数据总线宽度为8位,采用两级流水线并行处理和执行指令,数据存储采用RAM方式实现,作为通用寄存器堆,有176字节,用存储器编译器设计,其物理地址是按顺序从8h’00到8’h5f,需要用一个映射表映射到逻辑地址上。另外还有80字节的特殊寄存器用于各种中断和状态位的存储,其物理地址也要映射到逻辑地址上。这样通用寄存器堆和特殊寄存器使用的逻辑地址正好达到256字节,完全发挥8位地址的容量。
在8位微控制器芯片领域,大多数芯片的指令集复杂,结构繁琐,运行速度较低,指令可扩展性较差,编译器复杂等特点,难以满足高速控制和通信的要求。为提高8位微控制器运行速度,简化指令并使其具有可扩展性,实现精简系统结构,简化编译器的目的,本发明提供一种可靠的而有效的系统构架,采用38条精简指令,两级流水线,哈佛型结构,达到了运行速度快,指令简单,系统构架明晰,编译器简单的目的,完全可以满足高速控制和实时通信的要求。
本发明微控制器构架的核心结构是一个2级4段流水线。指令寄存器在译码时把指令分成3大类,产生3个相应的输出,算术逻辑单元ALU在四相时钟的第3相Q3内完成算术和逻辑运算。
由于本发明采用全同步设计,在设计流程中时序收敛比较快速,并且各阶段之间没有时序上的耦合,在前端设计和版图设计阶段引入了时钟树调整方法,大大提高了芯片运行速度。为了在把本发明微控制器构架最终应用于实际产品时能够检测出芯片的制造缺陷,设计时引入了DFT设计方法,测试结构用扫描链实现全扫描,对电路的所有触发器都进行扫描测试。在系统设计阶段,必须采用同步设计和纯组合电路设计,尽量避免电平锁存器设计。
附图说明
图1是本发明微控制器构架的系统框图。
图2是流水线基本电路。
图3是本发明微控制器构架的应用环境及外围模块资源配置图。
图4是地址映射关系图。
图5是本发明微控制器构架内核。
图6是本发明中的算术逻辑运算单元。
图7是实现所提出指令集的四个流水线段原理图。
图8是向左循环移动指令(rlf)的具体操作说明。
图9是向右循环移动指令(rrf)的具体操作说明。
图10是二级四段流水线结构框图。
具体实施方式
下面详细描述与微控制器构架功能特征相关的硬件细节。
如图10是一个二级四段流水线结构,由四相时钟驱动工作,每一段流水线在对应时钟相内完成功能,它包括:取址和译码装置80,用于从程序存储器2取出指令并进行译码操作,它包括指令译码器32、多路器75、程序计数器27、程序存储器2;读寄存器装置,用于从工作寄存器36和数据寄存器1读出数据,它包括数据存储器1、工作寄存器36;算术逻辑运算装置(ALU 37)82,用于算术和逻辑运算;回写寄存器及内部中断和堆栈处理装置83,用于将ALU操作结果回写到寄存器里,同时进行内部中断和堆栈处理,以备下一级流水线使用,它包括中断处理器28、内部堆栈29、数据存储器1、工作寄存器36;时钟发生器14,用于为上述装置提供四相时钟信号,同时产生所述二级四段流水线结构所需的同步时钟信号。
根据上述框图10,本发明提供了一种操作二级四段流水线结构的方法。在流水线工作时,时钟发生器把外部时钟74分成四相时钟,分别为:Q1(第一时钟),Q2(第二时钟),Q3(第三时钟),Q4(第四时钟),这就是控制4个流水线段的时钟。在Q1相时钟内,向程序存储器进行取指并译码,临时程序指针指向下一条指令,同时进行中断处理判断。在Q2相时钟内,进行读数据存储器操作。在Q3相时钟内由ALU进行算术和逻辑运算。在Q4相时钟内将运算后的结果写回工作寄存器4或数据存储器5(由通用寄存器堆构成),同时将程序指针6指向下一条指令,并且处理堆栈,开放中断。这样,4条指令并行进行处理,大大加快了运行速度。
参考图1,这是本发明微控制器构架的系统结构。首先,程序指针(13位)从程序存储器取出指令,把指令送到指令寄存器中存储起来,然后进行相应的译码。由于指令分三大类:字节操作类指令,位操作指令,立即数操作和控制操作类指令,所以译码时输出也会分成三大类,参考图5。译码完成后,进行读寄存器或者把立即数送往ALU(算术逻辑运算单元)37,然后在ALU完成算本和逻辑运算,然后将运算结果回送到工作寄存器A或数据存储器(8位),同时将程序指针加1,取出下一条指令,如此不断循环,形成流水线作业。本发明中指令集的大部分为单周期指令,比较容易实现流水线。实现流水线框架的基本电路如图2所示。
68是15位程序总线,69是13位程序总线,70是13位内部堆栈输出总线,71是13位内部堆栈输入总线,72是8位数据总线,73是程序计数器控制信号。
图3是本发明微控制器构架的应用环境及资源配置图。
异步静态数据存储器1的存储深度为176,位数为8位,它是寄存器堆的一部分,用作通用数据寄存器,与特殊寄存器堆分离。特殊寄存器用D型边沿触发器实现。异步静态数据存储器1与Sram接口电路3一起组成了通用数据寄存器电路。在实现时异步静态数据存储器1是用标准RAM COMPILER生成的,其地址在0~175之间连续,同时CPU核中寄存器堆寻址空间在0~255之间连续。本发明寄存器堆分成两个区:0区和1区。每一个区有128个寄存器,包括特殊寄存器和通用寄存器。由于在CPU核中特殊寄存器分布在不同的区和数据空间,因此需用接口电路3来进行地址映射,见图4。寄存器堆里,0区从8’h00到8’h1f,1区从8’h80到8’haf,都用D型触发器来实现。其中包含一个Status寄存器。0区从8’h20到8’h7f映射到异步数据存储器堆:从8’h00到8’h5f,1区从8’hb0到8’hff映射到异步数据存储器堆:从8’h60到8’haf。
程序存储器2的存储深度为8K,单元长度为15位,采用异步方式与CPU核进行数据交换。它利用了第三方IP的FLASH存储器。这样本发明可进行多次编程,易于擦除和重编程,可提高应用系统编程灵活度。从图3中可以看到,本发明的程序存储器2和数据存储器分开,属于哈佛型结构,二者带有各自的总线,数据传输速率比共享总线增加1倍。
时钟发生器电路14为本发明芯片提供所有的时钟信号,如四相时钟CLK1,CLK2,CLK3,CLK4和测试时钟test_clk等。复位电路15为本发明的其它部分提供所有必要的复位信号,如上电复位电路,启动延时定时器,WDT复位信号,外部复位信号等。
本发明的新型构架7是一个RISC两级流水线结构的CPU核,是本发明的核心部分,具体构架参考图5。
时钟发生器14产生输出时钟信号43,对内部堆栈29,内部中断处理器28和程序计数器27进行时钟同步;产生输出时钟信号59,对指令译码器32进行时钟同步;同时还产生时钟信号38,时钟信号39,时钟信号41,分别对算术逻辑运算单元ALU 37,特殊寄存器堆35,工作寄存器A 36进行时钟同步。这些时钟信号就构成了前述两级流水线(如图2所示)运行节奏。组成流水线的流水线段有四段。这样大大降低了各流水线段的数据相关性判断,同时降低了流水线实现结构的复杂度。
复位电路15产生复位信号42,对程序计数器27,内部中断处理器28,内部堆栈29和多路选择器30进行复位;复位电路15还产生复位信号62,对指令寄存器组31进行复位;本发明芯片指令寄存器组31在复位状况下,总是指向0地址即首地址;复位电路15还产生复位信号60,复位信号52和复位信号61,分别对指令译码器32,特殊寄存器堆35,工作寄存器A 36进行复位。
复位电路对本芯片发明很重要,复位可使本发明电路按实际应用的需要回到初始状态,有效地开始工作。
首先,复位电路15产生复位信号,使程序计数器27的内容为0,而且多路选择器30选择程序计数器27,程序计数器27输出13位地址指针57,此时13位地址指针57指向指令寄存器组31的首地址(为0)处,取出首地址处指令代码,传送给15位程序数据代码信号58。指令译码器32接收到15位程序数据代码信号58并开始译码,译码后产生三大类控制信号56,即寄存器操作类控制信号、位操作类控制信号、立即数和控制类信号。控制器33根据这三大类信号,产生正逻辑的控制信号47,控制信号50,控制信号55,控制信号48,控制信号49和控制信号51,分别控制数据通道34,特殊寄存器堆35,算术逻辑运算单元ALU 37,程序计数器27,内部中断处理器28,内部堆栈29,多路选择器30,工作寄存器A 36。
下面就本发明所涉及的控制信号进行归类。正逻辑控制信号47主要有二个,即fout_re和fin_we。其中fout_re表示从寄存器堆读出数据使能信号,fin_we表示将数据写进寄存器堆里(参考图4)。它包含特殊D型寄存器堆和用SRAM实现的通用寄存器堆,用正逻辑控制信号50来区分,其信号为special_reg_flag,当信号值为“1”时,它表示指令访问的是内部用特殊D型触发器实现的特殊寄存器堆;当其值为“0”时,它表示指令访问的是外部通用寄存器堆。正逻辑控制信号51表示将数据写进工作寄存器的使能信号wwe。正逻辑控制信号48表示在执行完一条指令后先判断是否有中断和是否有程序指针从内部堆栈弹出和压入,如果没有上述情况发生就给出程序计数器27的计数器使能信号,让程序指针指向下一条指令。控制信号49表示在内部中断处理器28内有中断,内部堆栈有弹出地址的情况下进行内部地址指针优先排序,确定多路选择器30选择其中一个地址指针。正逻辑控制信号55表示送给算术逻辑运算单元ALU 37的各种操作数包括逻辑和算术操作数。ALU37根据正逻辑控制信号55操作数进行算术逻辑运算,并将运算后的结果通过8位数据总线到达数据通道34,经过数据通道和各种控制信号,将结果写回寄存器堆(包括通用寄存器堆和特殊寄存器堆)或工作寄存器A 36中。
算术逻辑运算单元37的结构具体参考图6。2选1多路选择器63的输入为工作寄存器A和常数8’h1,输出为alub。同样,2选1多路选择器66的输入k表示从指令直接译码过来的立即数,fout表示从寄存器堆里输出的数据。对这些输入的选择需要根据当前执行的指令来判断。多路选择器66的输出为alua,它一方面输入进算术逻辑运算部分,另一方面通过2选1多路选择器64,输入进算术逻辑运算部分。多路选择器64由信号alubf来控制,信号alubf主要由清零指令产生。如果有清零信号产生,就选通alua输入进算术逻辑运算部分65。算术逻辑运算部分65是算术逻辑运算单元最核心的部分,它包含有移位运算、与非、或非、异或、非、加法、减法、乘法和比较等运算。这些运算根据opcode[3:0]来进行选择,3-8译码器67主要用来进行位操作。另一个信号“status[2]”是进位或借位,用于进行加法,减法,移位运算。算术逻辑运算部分65输出有三种信号即:运算结果aluout,运算零标志aluz,运算进位标志alucout。
图7说明实现所提出指令集的四个流水线段的工作原理。在时钟的Q1相内,进行取指、译码及判断中断处理。Q2相内,进行译码操作,指令码共分成三类:寄存器操作类、位操作类和立即数类。这种划分方法最容易实现四个流水线段,结构简单,而且没有复杂的数据相关性判断,也没有复杂的条件相关性判断,大大加快流水线的运行速度。Q3相时钟内完成算术和逻辑运算。Q4相时钟内将运算结果写回工作寄存器或通用寄存器堆,并将程序指针指向下一条指令并释放中断,设置中断寄存器位。
在执行call、returnf等指令时,内部中断处理器28和内部堆栈处理电路可以自动进行压栈和出栈处理,把当前程序地址从程序计数器取出来,压入堆栈,或把堆栈顶部弹出,作为当前地址装载到程序计数器中。这种方式大大加快了中断处理速度。
本发明微控制器构架支持常见微控制器的典型程序指令,包括算术和逻辑指令、分支指令、数据传输指令和位测试及位设置指令。这些指令能由前面叙述和附图中给出的微控制器构架电路支持实现。以下是本发明微控制器构架的指令集。
(1)   指令:addAf
编码:7’b0000111
操作:(A)+(f)->(目标)
语法:[标号]addAf f,d
描述:把寄存器f的内容加到寄存器A的内容上。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
(2)   指令:andAf
编码:7’b0000101
操作:(A).AND.(f)->(目标)
语法:[标号]andAf f,d
描述:把寄存器f的内容跟寄存器A的内容求“与”。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
(3)   指令:iorAf
编码:7’b0000100
操作:(A).OR.(f)->(目标)
语法:[标号]iorAf f,d
描述:把寄存器f的内容跟寄存器A的内容求“或”。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
(4)   指令:subAf
编码:7’b0000010
操作:(f)-(A)->(目标)
语法:[标号]subAf f,d
描述:把寄存器f的内容减去寄存器A的内容(余2法)。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
(5)   指令:xorAf
编码:7’b0000110
操作:(A).XOR.(f)->(目标)
语法:[标号]xorAf f,d
描述:把寄存器A的内容跟寄存器f的内容求异或。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
上述指令addAf、andAf、iorAf、subAf和xorAf执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一和第二寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。
(6)   指令:clr
编码:8’b00000011
操作:00h->(f)
1->Z
语法:[标号]clr f
描述:清除寄存器f的内容,并把标志位Z设为“1”。
(7)   指令:clrA
编码:8’b00000010
操作:00h->(A)
1->Z
语法:[标号]clrA
描述:清除寄存器A的内容,并把标志位Z设为“1”。
(8)   指令:bitclr
编码:5’b00100
操作:0->(f<b>)
语法:[标号]bitclr f,b
描述:寄存器f的第“b”位被清零。
(9)   指令:bitset
编码:5’b00101
操作:1->(f<b>)
语法:[标号]bitset f,b
描述:寄存器f的第“b”位被置“1”。
上述指令clr、clrA、bitclr和bitset执行时,指令执行单元产生相应的控制信号,清除或置位寄存器的所有位或指定位。
(10)  指令:com
编码:7’b0001001
操作:(f)00h->(目标)
语法:[标号]com f,d
描述:把寄存器f的内容求补。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
该指令执行时,根据标志位的值把结果输出存回上述第一或第二寄存器。
(11)  指令:dec
编码:7’b0000011
操作:(f)-1->(目标)
语法:[标号]dec f,d
描述:把寄存器f的内容减“1”。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
(12)  指令:decsz
编码:7’b0001011
操作:(f)-1->(目标)
如果结果为“0”则跳过下一指令
语法:[标号]decsz f,d
描述:把寄存器f的内容减“1”。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
如果结果为“1”,则接着执行下一条指令。如果结果为“0”,则执行一条“NOP”指令,占据2个时钟周期。
(13)  指令:inc
编码:7’b0001010
操作:(f)+1->(目标)
语法:[标号]inc f,d
描述:把寄存器f的内容加“1”。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
(14)  指令:incsz
编码:7’b0001111
操作:(f)+1->(目标)
如果结果为“0”则跳过下一指令
语法:[标号]incsz f,d
描述:把寄存器f的内容加“1”。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
如果结果为“1”,则接着执行下一条指令。如果结果为“0”,则执行一条“NOP”指令,占据2个时钟周期。
上述指令dec、decsz、inc和incsz执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。
(15)  指令:mov
编码:7’b0001000
操作:(f)->(目标)
语法:[标号]mov f,d
描述:移动寄存器f的内容,目标与“d”的状态相关。如果d=0,则目标是寄存器A;如果d=1,则目标是寄存器堆本身。“d=1”用于通过状态标志位“Z”来测试寄存器堆。
(16)  指令:movAf
编码:8’b0000_0001
操作:(A)->(f)
语法:[标号]movAf f
描述:移动寄存器A的内容到寄存器“f”上。
(17)  指令:movlA
编码:5’b11100
操作:k->(A)
语法:[标号]movlA k
描述:把8位立即数k装载进寄存器A,k的值“don’t care”被当成0处理。
上述指令mov、movAf和movlA执行时,指令执行单元产生相应的控制信号,把一个寄存器的内容或立即数保存到另一个寄存器中。
(18)  指令:nop
编码:15’b00000_000_11_00000
操作:空操作
语法:[标号]nop
描述:空操作。
该指令执行时,不执行任何操作。
(19)  指令:rol
编码:7’b0001101
操作:参见下列描述
语法:[标号]rol f,d
描述:把寄存器f的内容通过进位标志向左循环移动一位,具体操作参见附图8。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
(20)  指令:ror
编码:7’b0001100
操作:参见下列描述
语法:[标号]ror f,d
描述:把寄存器f的内容通过进位标志向右循环移动一位,具体操作参见附图9。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
上述指令rol和ror执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。
(21)  指令:swap
编码:7’b0001110
操作:(f<3:0>)->(目标<7:4>),
(f<7:4>)->(目标<3:0>)
语法:[标号]swap f,d
描述:把寄存器f的内容的上、下半位元组交换。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。
该指令执行时,交换第一寄存器高位和低位的值,再把操作的输出存回上述第一或第二寄存器。
(22)  指令:btsc
编码:5’b00110
操作:如果(f<b>)=0则跳过下一指令
语法:[标号]btsc f,b
描述:如果寄存器f的第“b”位是“1”,则执行下一条指令。
如果寄存器f的第“b”位是“0”,则放弃下一条指令,执行一条“nop”指令,一共占据2个时钟周期。
(23)  指令:btss
编码:5’b00111
操作:如果(f<b>)=1则跳过下一指令
语法:[标号]btss f,b
描述:如果寄存器f的第“b”位是“1”,则执行下一条指令。
如果寄存器f的第“b”位是“0”,则放弃下一条指令,执行一条“nop”指令,共占据2个时钟周期。
(24)  指令:bsf
编码:5’b01110
操作:1->f<b>
语法:[标号]bsf f,b(0=<f=<127,b=<7)
描述:bsf将寄存器f的第b位置1。
(25)  指令:goto
编码:4’b1101
操作:k->PC<10:0>,
(PCLATH<4:3>)->PC<12:11>
语法:[标号]goto k(0<k<256)
描述:goto是无条件分支,可以在寄存器堆之间跳转。11位直接地址装载进PC的<10:0>位。PC的其余高位<12:11>从PCLATH<4:3>装载。goto是双周期指令。
上述指令btsc、btss、bsf和goto执行时,指令执行单元产生相应的控制信号,改变程序计数器的值,控制指令的执行顺序。
(26)  指令:addlA
编码:6’b111111
操作:(A)+k->(A)
语法:[标号]addlA k
描述:寄存器A的内容增加一个8位数字k,结果保存回寄存器A。
(27)  指令:andlA
编码:7’b1111001
操作:(A).AND.(k)->(A)
语法:[标号]addlA k
描述:寄存器A的内容跟8位数字k求“与”,结果保存回寄存器A。
(28)  指令:iorlA
编码:7’b1111000
操作:(A).OR.k->(A)
语法:[标号]iorlA k
描述:把寄存器A的内容跟8位数字k求或,结果保存在寄存器A上。
(29)  指令:sublA
编码:6’b111110
操作:k-(A)->(A)
语法:[标号]sublA k
描述:8位数字减去寄存器A的内容(余2法),结果保存在寄存器A上。
(30)  指令:xorlA
编码:7’b1111010
操作:(A).XOR.k->(k)
语法:[标号]xorlA k
描述:把寄存器A的内容跟8位数字k求异或。结果保存在寄存器A上。
上述指令AddlA、andlA、iorlA、sublA和xorlA执行时,指令执行单元产生相应的控制信号,完成功能:(I)把寄存器的内容与立即数相运算;(II)把运算结果保存回寄存器。
(31)  指令:call
编码:4’b1100
操作:(PC)+1->TOS,
k->PC<10:0>,
(PCLATH<4:3>)->PC<12:11>
语法:[标号]call k
描述:调用子程序。首先,返回地址(PC+1)压入堆栈。11位直接地址装载进PC的<10:0>位。PC的其余高位<12:11>从PCLATH<4:3>装载。call是双周期指令。
(32)  指令:return
编码:15’b000000000001000
操作:TOS->PC
语法:[标号]return
描述:从子程序返回。堆栈上弹,堆栈的顶部(TOS)装载到程序计数器中。这是双周期指令。
(33)  指令:retie
编码:15’b000000000001001
操作:TOS->PC,
1->GIE
语法:[标号]retie
描述:从中断返回。
(34)  指令:retlA
编码:5’b11101
操作:k->(A),
TOS->PC
语法:[标号]retlA k
描述:把8位数字装载到寄存器A上。程序计数器从堆栈(返回的地址)的顶部装载。这是双周期指令。
上述指令call、return、retie和retlA执行时,指令执行单元产生相应的控制信号,能够自动地进行压栈和出栈出操作,把当前程序计数器的值压入堆栈,或从堆栈顶部弹出当前地址,装载到程序计数器中。
(35)  指令:clrwdt
编码:15’b0000000_0110_0100
操作:00h->WDT,
0->WDT预定标,
1-> TO
1-> PD
语法:[标号]clrwdt
描述:clrwdt指令重置看门狗定时器,也重置看门狗定时器的预定标因子,同时置位状态位 TO和 PD。
(36)  指令:sleep
编码:15’b0000000_0110_0011
操作:00h->WDT,
0->WDT预定标,
1-> TO
0-> PD
语法:[标号]sleep
描述:掉电状态位 PD被清除,超时状态位 TO被置位,看门狗定时器和预定标因子被清除,处理器处于睡眠状态,时钟振荡器停止工作。
上述指令clrwdt和sleep执行时,指令执行单元产生相应的控制信号,能够重置看门狗的值。
(37)  指令:multAf
编码:7’b1000111
操作:(A)*(f)->(目标)
语法:[标号]multAf f,d
描述:把寄存器f的内容与寄存器A的内容相乘。如果d=0,则结果保存在寄存器A上;如果d=1,则结果保存回寄存器f。该条指令的引入,使本发明的计算能力大大增强,克服了现有微控制器构架数据处理能力弱的缺陷,从而能适应于计算量密集型应用,如空调变频算法等。
上述指令multAf执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一和第二寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。
(38)  指令:jumpf
编码:4’b1001
模作:k+PC<10:0>->PC<10:0>,
(PCLATH<4:3>)->PC<12:11>
语法:[标号]jumpf k(k<127)
描述:jumpf也是无条件分支指令。与goto指令不同的地方在于,jumpf采用立即数相对寻址方式,是在寄存器堆的页内跳转。11位相对地址装载进PC的<10:0>位。PC的其余高位<12:11>从PCLATH<4:3>装载。jump是双周期指令。该指令丰富了本发明的寻址方式,在寄存器堆规模较大时使用更方便,运行速度快。
上述jumpf指令执行时,指令执行单元产生相应的控制信号,改变程序计数器的值,采用立即数相对寻址方式控制指令的执行顺序,在寄存器堆的页内跳转。
应用程序示例:
MAINCLRWDT
BSF STATUS,RPO
BTSSSTATUS,C
GOTO LOWER
..
LOWERCLRWDT
..
END
示例说明:
上电进行初始复位时,程序指针的数值为13b’0000000000000,同时程序指针6指向程序存储器2的首地址13b’0000000000000,后者的内容为CLRWDT。时钟发生器14产生第一相时钟Q1,此时将程序存储器2首地址的内容CLRWDT取出,完成二级四段流水结构的第一级:取指操作。同时,将取出的指令CLRWDT送到译码器32进行译码,产生对WDT10(外部看门狗)进行清零的控制信号。由于WDT10是外部独立的计数/计时器,在其余的流水线段Q2、Q3相时钟中为空操作。同时在Q4相四中,程序计数器27自动加1,并判断是否有中断正在中断处理器28处理中,和内部堆栈29是否为0。如果没有中断处理,并且中断为空,那么程序计数器27的内容将通过流水线的多路器传送给程序指针,进入下一个流水线循环。此时程序指针变为13b’0000000000001,指向流水线的程序存储器2中地址13b’0000000000001,该地址的内容为BSF。
BSF的主要功能是选通寄存器1区,执行时,在时钟发生器14产生的下一个Q1相时钟里,将程序存储器13b’0000000000001中的内容BSF取出,完成流水线段的第一段取指工作,并通过流水线段的译码器32进行译码,产生相应的读、写Status状态寄存器信号,同时产生位操作控制信号,在下一个Q2相时钟,由读Status控制信号将Status中的内容读到数据总线,完成流水线的第二段操作——读寄存器操作。在下一个Q3相时钟中,由译码器32产生的位操作控制信号在流水线段的ALU部件进行位操作,将Status[5]相应位设置为1,在流水线的下一个Q4相时钟,流水线段将ALU37中操作结果写入寄存器,完成流水线段的写入寄存器操作。此时,将程序计数器27加1,形成下一次流水线操作,同时还判断是否有中断在流水线段里面的中断处理器进行处理,并判断内部堆栈29是否为空,如果没有中断发生,同时堆栈也为空,就将程序计数器27的内容传送给程序指针。此时程序指针的值为13b’0000000000002,并指向程序存储器2的地址13b’0000000000002,其内容为BTSS。
在执行BTSS指令时,在Q1相中,从程序存储器2里取出指令,并通过译码器32进行译码操作,产生读Status寄存器控制信号及位控制信号。在Q2时钟时,通过读Status寄存器控制信号进行流水线段的读寄存器内容的操作,将相应的内容读到数据总线。在Q3相时钟时,在ALU做位测试工作,将其结果送入数据总线,同时判断ALU运算操作的零标志位,看其是否为1。如果为1,则表示该指令执行测试跳转,否则继续按顺序执行下一条指令。在下一个Q4相时钟时,将运算操作零标志写入Status寄存器的第0位Status[0],同时将程序计数器加1。在下一次流水线操作时,因为ALU操作零标志为1,所以流水线段会插入一个空操作“NOP”,以继续完成流水线。虽然此时程序存储器2的内容是GOTO指令,但并不执行,而是执行空操作。空操作“NOP”运行后,在Q4相中,程序计数器27加1,到下一条指令,如此不断循环,完成二级流水线操作。
GOTO执行时,在Q1相时钟,从程序存储器2取指,并通过流水线段中的译码器进行译码,并产生相应的转移地址控制信号,同时将地址暂时存储在临时程序指针中,在Q2、Q3相时钟,GOTO指令基本上是空操作。在Q4相时钟,程序计数器27内容不会再加1,而直接载入转移地址。在下一次流水线操作时,由于前一条指令是GOTO指令,因此流水线段中会自动插入一条空操作指令NOP,进行流水线操作。同时在NOP指令运行的Q4相时钟内,程序计数器27中的PC值已经转移地址的值。在下一次流水线操作时会将转移地址中的指令进行流水线操作。
前面所提供的对较佳实施例的描述是为了使本领域的熟练技术人员能完成或使用本实用新型。对于本领域的熟练技术人员来说,对这些实施例各种修改将是显而易见的,并且在不使用创造性的情况下,在此所定义的一般原理可以应用于其他实施例。这样,本实用新型并不是要局限于在此所示出的实施例,而是符合与在此所揭示的原理和新颖特征关联的最宽范畴。

Claims (26)

1、一个哈佛型结构的微控制器构架,其结构包括:程序总线、数据总线、程序存储器、通过程序总线连接到程序存储器的的指令译码器、数据随机存储器(RAM)、寄存器堆、通用算术逻辑单元(ALU)和地址总线等,这些部件是通过微码操作控制结构实现的;其特征在于,它还包括:
一个二级四段流水线结构,由四相时钟驱动工作,每一段流水线在对应时钟相内完成功能,它包括:
取址和译码装置,用于从程序存储器取出指令并进行译码操作;
读寄存器装置,用于从工作寄存器和数据寄存器读出数据;
算术逻辑运算装置(ALU),用于算术和逻辑运算;
回写寄存器及内部中断和堆栈处理装置,用于将ALU操作结果回写到寄存器里,同时进行内部中断和堆栈处理,以备下一级流水线使用;
时钟发生器,用于为上述装置提供四相时钟信号,所述四相时钟信号包括第一、第二、第三和第四时钟信号。
2、如权利要求1所述的微控制器构架,其特征在于,所述中断处理和内部堆栈处理装置自动进行压栈和出栈处理。
3、如权利要求2所述的微控制器构架,其特征在于,所述取址和译码装置包括指令译码器、多路器、程序计数器、程序存储器;
4、如权利要求3所述的微控制器构架,其特征在于,所述读寄存器装置包括数据存储器、工作寄存器;
5、如权利要求4所述的微控制器构架,其特征在于,所述回写寄存器及内部中断和堆栈处理装置包括中断处理器、内部堆栈、数据存储器、工作寄存器;
6、如权利要求1到5所述的微控制器构架,其特征在于,所述指令译码器的输出指令码分成3类:寄存器操作类、位操作类和立即数类。
7、如权利要求1所述的微控制器构架,其特征在于,还包括一套指令集,该指令集属于精简指令集,包含38条指令。
8、如权利要求7所述的微控制器构架,其特征在于,其中所述指令集包含一条乘法指令multAf,该指令指定了第一和第二寄存器,指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一和第二寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器。
9、如权利要求8所述的控制器,其特征在于,其指令集中包含一条程序执行分支控制指令jumpf,该指令执行时,指令执行单元产生相应的控制信号,改变程序计数器的值,采用立即数相对寻址方式控制指令的执行顺序,在寄存器堆的页内跳转。
10、如权利要求9所述的微控制器构架,其特征在于,所述指令集包括不同的6条运算指令,每一条指令指定了第一和第二寄存器,这一类指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一和第二寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器,这一类指令有addAf、andAf、iorAf、subAf和xorAf。
11、如权利要求10所述的微控制器构架,包括4条不同的位操作指令,每一条指令指定了一个寄存器,这一类指令执行时,指令执行单元产生相应的控制信号,清除或置位寄存器的所有位或指定位,这一类指令有clr、clrA、bitclr和bitset。
12、如权利要求11所述的微控制器构架,包括1条求补指令com,该指令指定了第一和第二寄存器,该指令执行时,根据标志位的值把结果输出存回上述第一或第二寄存器。
13、如权利要求12所述的微控制器构架,包括4条不同的递增和递减指令,每一条指令都有各自的机器操作码,指定了第一和第二寄存器,这一类指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器,这一类指令有dec、decsz、inc和incsz。
14、如权利要求13所述的微控制器构架,包括3条不同的数据移动指令,每一条指令都有各自的机器操作码,指定了一个或二个寄存器,这一类指令执行时,指令执行单元产生相应的控制信号,把一个寄存器的内容或立即数保存到另一个寄存器中,这一类指令有mov、movAf和movlA。
15、如权利要求14所述的微控制器构架,包括1条空操作指令nop,该指令有独立的机器操作码,该指令执行时,不执行任何操作。
16、如权利要求15所述的微控制器构架,包括2条不同的移位指令,每一条指令指定了第一和第二寄存器,这一类指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)访问寄存器堆,把第一寄存器的内容提供给上述通用ALU作为输入;(II)操作通用ALU,完成其操作码规定的操作;(III)访问寄存器堆,把上述通用ALU操作的输出存回上述第一或第二寄存器,这一类指令有rol和ror。
17、如权利要求16所述的微控制器构架,包括1条交换指令swap,该指令有独立的机器操作码,指定了第一和第二寄存器,该指令执行时,交换第一寄存器高位和低位的值,再把操作的输出存回上述第一或第二寄存器。
18、如权利要求17所述的微控制器构架,包括4条不同的程序执行分支控制指令,每一条指令都有各自的机器操作码,这一类指令执行时,指令执行单元产生相应的控制信号,改变程序计数器的值,控制指令的执行顺序,这一类指令有btsc、btss、bsf和goto。
19、如权利要求18所述的微控制器构架,包括5条不同的立即数运算指令,每一条指令都有各自的机器操作码,指定了一个寄存器,指令执行时,指令执行单元产生相应的控制信号,完成功能:(I)把寄存器的内容与立即数相运算;(II)把运算结果保存回寄存器,这一类指令有AddlA、andlA、iorlA、sublA和xorlA。
20、如权利要求19所述的微控制器构架,包括4条不同的子程序调用及返回指令,每一条指令都有各自的机器操作码,这一类指令执行时,指令执行单元产生相应的控制信号,能够自动地进行压栈和出栈出操作,把当前程序计数器的值压入堆栈,或从堆栈顶部弹出当前地址,装载到程序计数器中,这一类指令有call、return、retie和retlA。
21、如权利要求20所述的微控制器构架,包括2条不同的看门狗控制指令指令,每一条指令执行时,指令执行单元产生相应的控制信号,能够重置看门狗的值,这一类指令有clrwdt和sleep。
22、如权利要求1所述的微控制器构架,其特征在于,其数据存储器包括特殊寄存器和通用寄存器,利用地址映射电路把分布在不同的区和数据空间的特殊寄存器和通用寄存器的物理地址映射到连续的物理地址上。
23、如权利要求1所述的微控制器构架,其特征在于,所述微控制器构架包括中断处理和内部堆栈处理方式,在调用子程序或中断处理时自动进行压栈和出栈操作,实现中断的高效处理。
24、一种用于操作微控制器构架的方法,其特征在于,所述方法包括下述步骤:
时钟发生器同时产生四相时钟信号,提供给所述二级四段流水线结构;
在第一时钟周期,从程序存储器取出指令并进行译码操作;
在第二时钟周期,从工作寄存器和数据寄存器读出数据;
在第三时钟周期,根据译码操作对所述数据进行算术和逻辑运算;
在第四时钟周期,将ALU操作结果回写到寄存器里,同时进行内部中断和堆栈处理,以备下一级流水线使用。
25、如权利要求24所述的方法,其特征在于,还包括在所述第四时钟周期进行中断处理的操作。
26、如权利要求25所述的方法,其特征在于,还包括在所述第一时钟周期判断是否在进行中断处理的操作。
CNA031147844A 2003-01-08 2003-01-08 一种新型risc流水线微控制器构架及其操作方法 Pending CN1516001A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA031147844A CN1516001A (zh) 2003-01-08 2003-01-08 一种新型risc流水线微控制器构架及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA031147844A CN1516001A (zh) 2003-01-08 2003-01-08 一种新型risc流水线微控制器构架及其操作方法

Publications (1)

Publication Number Publication Date
CN1516001A true CN1516001A (zh) 2004-07-28

Family

ID=34239399

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA031147844A Pending CN1516001A (zh) 2003-01-08 2003-01-08 一种新型risc流水线微控制器构架及其操作方法

Country Status (1)

Country Link
CN (1) CN1516001A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100430890C (zh) * 2005-08-31 2008-11-05 上海海尔集成电路有限公司 一种8位risc微控制器
CN101286117B (zh) * 2007-07-24 2010-06-02 威盛电子股份有限公司 微码修补扩充装置、扩充微码修补机制容量的装置及其方法
CN101281480B (zh) * 2008-05-21 2010-06-23 中兴通讯股份有限公司 一种嵌入式系统中实现睡眠功能的方法
CN101866279A (zh) * 2009-08-14 2010-10-20 威盛电子股份有限公司 微处理器及其相关方法
CN101221494B (zh) * 2005-08-31 2010-12-29 上海海尔集成电路有限公司 一种8位risc微控制器构架
CN102262611A (zh) * 2010-05-25 2011-11-30 无锡华润矽科微电子有限公司 一种16位的risc cpu系统结构
CN103488462A (zh) * 2013-09-06 2014-01-01 暨南大学 一种改进型8051ip核
CN104133806A (zh) * 2014-07-31 2014-11-05 杭州康芯电子有限公司 一种十六位嵌入式芯片软核
CN104809073A (zh) * 2014-01-23 2015-07-29 比亚迪股份有限公司 一种片上系统及其位操作逻辑控制方法
CN106020017A (zh) * 2016-05-16 2016-10-12 深圳清华大学研究院 微控制器及其控制方法
CN108243056A (zh) * 2016-12-27 2018-07-03 大唐移动通信设备有限公司 一种获取异常信息的方法及装置
CN110059040A (zh) * 2019-04-17 2019-07-26 芯来智融半导体科技(上海)有限公司 一种基于risc-v架构的可嵌套异常和非屏蔽中断系统及方法
CN110780616A (zh) * 2019-09-06 2020-02-11 重庆东渝中能实业有限公司 一种基于流水线技术处理通讯命令的方法
CN111359232A (zh) * 2020-03-11 2020-07-03 上海电子信息职业技术学院 一种智能模型车
CN112860320A (zh) * 2021-02-09 2021-05-28 山东英信计算机技术有限公司 基于risc-v指令集进行数据处理的方法、系统、设备及介质

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101221494B (zh) * 2005-08-31 2010-12-29 上海海尔集成电路有限公司 一种8位risc微控制器构架
CN100430890C (zh) * 2005-08-31 2008-11-05 上海海尔集成电路有限公司 一种8位risc微控制器
CN101286117B (zh) * 2007-07-24 2010-06-02 威盛电子股份有限公司 微码修补扩充装置、扩充微码修补机制容量的装置及其方法
CN101281480B (zh) * 2008-05-21 2010-06-23 中兴通讯股份有限公司 一种嵌入式系统中实现睡眠功能的方法
CN101866279A (zh) * 2009-08-14 2010-10-20 威盛电子股份有限公司 微处理器及其相关方法
CN102262611B (zh) * 2010-05-25 2014-05-14 无锡华润矽科微电子有限公司 一种16位的risc cpu系统结构
CN102262611A (zh) * 2010-05-25 2011-11-30 无锡华润矽科微电子有限公司 一种16位的risc cpu系统结构
CN103488462B (zh) * 2013-09-06 2016-04-13 暨南大学 一种改进型8051ip核
CN103488462A (zh) * 2013-09-06 2014-01-01 暨南大学 一种改进型8051ip核
CN104809073A (zh) * 2014-01-23 2015-07-29 比亚迪股份有限公司 一种片上系统及其位操作逻辑控制方法
CN104809073B (zh) * 2014-01-23 2018-05-29 比亚迪股份有限公司 一种片上系统及其位操作逻辑控制方法
CN104133806A (zh) * 2014-07-31 2014-11-05 杭州康芯电子有限公司 一种十六位嵌入式芯片软核
CN106020017A (zh) * 2016-05-16 2016-10-12 深圳清华大学研究院 微控制器及其控制方法
CN106020017B (zh) * 2016-05-16 2019-02-01 深圳清华大学研究院 微控制器及其控制方法
CN108243056A (zh) * 2016-12-27 2018-07-03 大唐移动通信设备有限公司 一种获取异常信息的方法及装置
CN110059040A (zh) * 2019-04-17 2019-07-26 芯来智融半导体科技(上海)有限公司 一种基于risc-v架构的可嵌套异常和非屏蔽中断系统及方法
CN110780616A (zh) * 2019-09-06 2020-02-11 重庆东渝中能实业有限公司 一种基于流水线技术处理通讯命令的方法
CN111359232A (zh) * 2020-03-11 2020-07-03 上海电子信息职业技术学院 一种智能模型车
CN111359232B (zh) * 2020-03-11 2021-09-14 上海电子信息职业技术学院 一种智能模型车
CN112860320A (zh) * 2021-02-09 2021-05-28 山东英信计算机技术有限公司 基于risc-v指令集进行数据处理的方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN1516001A (zh) 一种新型risc流水线微控制器构架及其操作方法
CN1186718C (zh) 微控制器指令集
CN1287270C (zh) 重启动翻译的指令
CN1153155C (zh) 装有高效利用主处理器中的寄存器数据的协处理器的信息处理装置
CN1126030C (zh) 数据处理装置
CN1584824A (zh) 一种基于cisc结构的微处理器构架及指令实现方式
CN1236380C (zh) 具随机数产生器及用于存储随机数数据的指令的微处理器
CN1244051C (zh) 对于处理数据的装置和方法
CN1279449C (zh) 微处理器
CN1303536C (zh) 执行自高速缓存的快速推测式加载运算的微处理器及方法
CN1246772C (zh) 处理器
CN1497435A (zh) 处理器
CN1688966A (zh) 包括对准或者广播指令的多媒体协处理器控制机制
CN1860441A (zh) 用于可重新配置环境中的高效高性能数据操作元件
CN1472646A (zh) 适应性强具备最佳化功能的编译装置
CN1484787A (zh) 处理器流水线中的硬件指令翻译
CN1564136A (zh) 基于目标机上的ejtag部件的交叉调试器实现方法
CN1269052C (zh) 支持缩小代码长度的常量还原型处理器
CN1503128A (zh) 具有支持多任务运算的随机数产生器的微处理器及方法
CN1286004C (zh) 支持程序编码长度减小的微处理器
CN1310131C (zh) 随机数产生器及产生方法及具有随机位产生器的微处理器
CN1737750A (zh) 一种新型的8位risc微控制器构架
CN2862189Y (zh) 一种新型的8位risc微控制器构架
CN1627252A (zh) 微处理机与随机存取快取记忆体的快速弹出装置及其方法
CN1207527A (zh) 微处理器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication