微控制器指令集制造技术

技术编号:2846177 阅读:201 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种微控制器装置,其具备一用于处理微控制器的行为的指令集。本发明专利技术提供具有使一模块化仿真成为可能的线性化地址空间的装置和系统。可能通过寄存器文件或数据存储器进行直接或间接寻址。特殊功能寄存器,包括程序计数器(PC)和工作寄存器(W),映射到数据存储器中。一正交(对称)指令集使得可能使用任何寻址模式对任何寄存器进行任何操作。因此,两个文件寄存器可用于一些两个操作数的指令。这允许在两个寄存器之间直接移动数据,而不需要通过所述W寄存器。因此,增强了性能并减少了程序存储器的利用率。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及微控制器,且更具体地说,本专利技术涉及被集合到一指令集中的操作码指令,所述指令集用于操纵微控制器的行为。
技术介绍
微控制器单元(MCU)许多年来用于制造业和电气业中。图1展示用于中型MCU器件的典型的核心存储器总线配置。在许多情况下,微控制器利用精简指令集计算(RISC)微处理器。这些器件中的一些器件的高性能可归因于RISC微处理器所共有的许多架构特征。这些特征包括 哈佛架构(Harvard architecture) 长字指令 单字指令 单周期指令 指令流水线操作 精简指令集 寄存器文件架构 正交(对称)指令 哈佛架构 如图2所示,哈佛架构具有程序存储器26和数据存储器22,二者是作为独立存储器且可由CPU 24通过独立总线进行访问。与传统的冯·诺依曼架构(在图3中展示)相比,哈佛架构具有改良的带宽,其中冯·诺依曼架构的程序和数据是由CUP 34通过同一总线从同一存储器36取得。为了执行一条指令,冯·诺依曼机器必须在8位总线上进行一次或一次以上(通常是一次以上)的访问才能取得指令。然后必须取得数据、对数据进行操作,可能还要写入数据。由此描述可见,总线可能会非常繁忙。 与冯·诺依曼机器相反,在哈佛架构下,单个指令周期内即可取得全部14位的指令。因此在哈佛架构下,当访问程序存储器时,数据存储器位于独立总线上,且可被读取和写入。这些独立的总线允许在执行一条指令的同时获取下一条指令。 长字指令 长字指令的指令总线宽度比8位数据存储器总线宽(位数更多)。由于使用了相互独立的两条总线,所以这就成为了可能。这进一步允许指令大小不同于8位数据字宽度,这允许程序存储器更有效的使用,因为可针对架构需求对程序存储器宽度进行优化。 单字指令 单字指令操作码为14位宽,从而有可能具有所有单字指令。14位宽的程序存储器访问总线可在单周期中取得一条14位的指令。由于是单字指令,所以程序存储器位置的字数等于用于器件的指令数。这就意味着所有位置都是合法指令。一般在冯·诺依曼架构(在图3中展示)中,大多数指令是多字节指令。然而,具有4K字节的程序存储器的器件一般允许约2K的指令。这个2∶1的比率只是大概情况,且取决于应用代码。由于每一指令可用多个字节,所以不能保证每个位置都是合法指令。 指令流水线 指令流水线是两级流水线,其重叠进行取指操作和指令执行。取指花费一个机器周期(“TCY”),而执行花费另一TCY。然而,由于当前指令的取指和前一条指令的执行是重叠进行的,故在每一TCY内进行一条指令的取指和另一条指令的执行。 单周期指令 程序存储器总线是14位宽,因此能在单个TCY中完成整条指令的取指。指令中含有所需的所有信息,并能在单一周期中执行。如果指令的结果修改了程序计数器的内容,那么在执行中可存在一个周期的延迟。这需要流水线排空并获取新指令。 精简指令集 当指令集设计得很好且高度正交(对称)时,执行所有所需任务只需较少指令。指令越少,就能越迅速地掌握整个指令集。 寄存器文件架构 寄存器文件/数据存储器可被直接或间接寻址。所有特殊功能寄存器,包括程序计数器,都映射到数据存储器。 正交(对称)指令集 正交指令有可能使用任何寻址模式对任何寄存器进行任何操作。这个对称性和无“特殊指令”使编程简单且有效。此外,可显著缩短学习曲线。中型指令集只使用两条非面向寄存器的指令,它们用于核心特征中的两者。其中一条是SLEEP指令,可将器件设置成最低功耗使用模式。另一条是CLRWDT指令,所述指令通过防止片内监视定时器(WDT)溢出和使器件复位来检验芯片是否适当地工作。 时钟图/指令周期 时钟输入(来自OSC1)在内部经过4分频,以产生4个非重叠的正交时钟,即Q1、Q2、Q3和Q4。在每一Q1中,程序计数器(PC)递增;在Q4中,从程序存储器取指,并将指令锁存在指令寄存器中。指令的译码和执行是在下一个Q1到Q4之间完成。图4和图5说明时钟和指令执行流。 指令流/流水线操作 一个“指令周期”由4个Q周期(Q1、Q2、Q3和Q4)组成,其如4所示,且如图4和图5所示,所述4个Q周期包含TCY。注意在图5中,所有指令在单个周期中执行,除非有一些程序转移。程序转移花费两个周期,因为流水线中的取指指令“排空”,同时获取新指令且然后执行所述指令。 取指花费一个指令周期,而译码和执行花费另一指令周期。然而,由于是流水线操作,所以每一指令可有效地在一个周期中执行。如果一条指令导致程序计数器改变(例如,GOTO),那么需要额外的周期来完成所述指令(图5)。在Q1中开始取指,且程序计数器递增。在执行周期中,在周期Q1中将所取指令锁存“指令寄存器(IR)”中。然后,在Q2、Q3和Q4期间对这条指令进行译码并执行这条指令。在Q2期间对数据存储器进行读取(读取操作数),且在Q4期间进行写入(写入目的地)。图5展示用于所示的指令序列的两级流水线的操作。在TCY0时,从程序存储器取第一条指令。在TCY1期间,执行第一条指令,同时取第二条指令。在TCY2期间,执行第二条指令,同时取第三条指令。在TCY3期间,执行第三条指令(CALL SUB_1),同时取第四条指令。当执行完第三条指令时,CPU将指令4的地址压入栈,且将程序计数器(PC)改变成SUB_1地址。这就意味着需要从流水线中“排空”在TCY3期间所取的指令。在TCY4期间,指令4排空(执行为NOP),且取地址SUB_1处的指令。最后,在TCY5期间,执行指令5,且取地址SUB_1+1处的指令。 尽管现有技术的微控制器有用,但是不可仿真多种模块。此外,图1中所述的微控制器的类型不可使地址空间线性化。最后,现有技术的微控制器易受编译程序错误问题的影响。需要一种能够使地址空间线性化以便能够进行模块化仿真的微控制器的装置、方法和系统。这项技术中还需要减少编译程序错误。
技术实现思路
本专利技术通过提供排除现有技术中所经历的许多编译程序错误的微控制器指令集,克服了以上所识别的问题以及现有技术的其它缺点和不足。此外提供一种具有使模块化仿真成为可能的线性化地址空间的装置和系统。 本专利技术可直接或间接地寻址其寄存器文件或数据存储器。所有的特殊功能寄存器都映射到数据存储器中,其中包括程序计数器(PC)和工作寄存器(W)。本专利技术具有正交(对称)指令集,它使得使用任何寻址模式对任何寄存器进行任何操作成为可能。这种对称性和无“特殊最佳情况”使利用本专利技术的编程简单且有效。此外,可显著缩短写软件应用程序的学习曲线。本专利技术比现有技术的增强之一是允许两个文件寄存器用于一些两个操作数的指令中。这允许在两个寄存器之间直接移动数据,而不需要通过W寄存器,且因此增强了性能并减少了程序存储器的利用率。 本专利技术的优选实施例包括ALU/W寄存器、PLA、8位乘法器、带有栈的程序计数器(PC)、表锁存器/表指针、ROM锁存器/IR锁存器、FSR、中断引导电路和最常用的状态寄存器。与现有技术不同,本专利技术的设计回避了对以下组件的需要独立模块中的计时器、所有的复位产生电路(WDT、POR、BOR等)、中断标志、使能标志、INTCON寄存器、RCON寄存器、配置位、器件ID字、I本文档来自技高网
...

【技术保护点】
一种微控制器,其包含:    一中央处理单元;    一数据存储器,其具有一线性化地址空间,且与所述中央处理单元耦接,其被分成n个存储区;    所述中央处理单元包含:    一存储区选择单元,其或者访问所述存储区中的一者或者访问一虚拟存储区,由此所述虚拟存储区组合所述数据存储器的两个存储区的部分存储空间,且其中所选的存储区形成一寄存器文件;    一算术逻辑单元,其与所述寄存器文件耦接;    复数个特殊功能寄存器,其映射到所述数据存储器中的所述存储区中的一者,其中所述特殊功能寄存器中的一者是一与所述算术逻辑单元耦接的工作寄存器;    一程序计数器寄存器,其位于所述中央处理单元内,所述程序计数器映射到所述数据存储器中;和    一工作寄存器,其位于所述中央处理单元内,且与所述算术逻辑单元耦接,所述工作寄存器映射到所述数据存储器中;    其中所述微控制器具有一用于控制所述算术逻辑单元的指令集,且其中至少一个指令包含一指示所述存储区选择单元是访问所述存储区中的一者还是访问所述虚拟存储区的位。

【技术特征摘要】
【国外来华专利技术】US 2003-10-23 60/513,910;US 2004-3-9 10/796,7711.一种微控制器,其包含一中央处理单元;一数据存储器,其具有一线性化地址空间,且与所述中央处理单元耦接,其被分成n个存储区;所述中央处理单元包含一存储区选择单元,其或者访问所述存储区中的一者或者访问一虚拟存储区,由此所述虚拟存储区组合所述数据存储器的两个存储区的部分存储空间,且其中所选的存储区形成一寄存器文件;一算术逻辑单元,其与所述寄存器文件耦接;复数个特殊功能寄存器,其映射到所述数据存储器中的所述存储区中的一者,其中所述特殊功能寄存器中的一者是一与所述算术逻辑单元耦接的工作寄存器;一程序计数器寄存器,其位于所述中央处理单元内,所述程序计数器映射到所述数据存储器中;和一工作寄存器,其位于所述中央处理单元内,且与所述算术逻辑单元耦接,所述工作寄存器映射到所述数据存储器中;其中所述微控制器具有一用于控制所述算术逻辑单元的指令集,且其中至少一个指令包含一指示所述存储区选择单元是访问所述存储区中的一者还是访问所述虚拟存储区的位。2.根据权利要求1所述的微控制器,其中所述指令集包括一具有一编码1110 1010kkkk kkkk的指令,其中一旦调用所述指令,便将一8位字面值复制到由一文件选择寄存器所指向的位置,然后所述文件选择寄存器递减,所述字面值“k”由所述指令的kkkk kkkk部分指示。3.根据权利要求1所述的微控制器,其中所述指令集包括一具有一编码1110 1001 ffkkkkkk的指令,其中一旦调用所述指令,便从一文件选择寄存器中减去一6位无符号字面值以形成一结果,所述结果被存储到所述文件选择寄存器中,所述字面值由所述指令的kk kkkk部分指示,所述文件选择寄存器由所述指令的ff部分指示。4.根据权利要求1所述的微控制器,其中所述指令集包括一具有一编码1110 100111kk kkkk的指令,其中一旦调用所述指令,便从一文件选择寄存器中减去一无符号6位字面值以形成一结果,所述结果被存储回所述文件选择寄存器中且被返回,所述字面值由所述指令的kk kkkk部分指示。5.根据权利要求1所述的微控制器,其中所述指令集包括一具有一编码1110 1000 ffkkkkkk的指令,其中一旦调用所述指令,便将一无符号6位字面值加入一文件选择寄存器,将结果存储到所述文件选择寄存器中,所述字面值由所述指令的kk kkkk部分指示,所述文件选择寄存器由所述指令的ff部分指示。6.根据权利要求1所述的微控制器,其中所述指令集包括一具有一编码1110 100011kk kkkk的指令,其中一旦调用所述指令,便将一由所述指令的kk kkkk部分指示的6位字面值加入一文件选择寄存器,且将结果存储回所述文件选择寄存器。7.根据权利要求1所述的微控制器,其中所述指令集包括一具有一编码1110 1011 0sssssss 1111 dddd dddd dddd的指令,其中一旦调用所述指令,便将一8位值复制到一由所述12位值dddd dddd dddd指示的目的地,复制到所述目的地的所述8位值的位置通过将所述7位字面值值sss ssss加入一文件选择寄存器中的值来指示。8.根据权利要求1所述的微控制器,其中所述指令集包括一具有一编码1110 1011 lsssssss 1111 xxxx xddd dddd的指令,其中一旦调用所述指令,便将一8位值复制到一由所述指令的ddd dddd部分指示的位置,所述8位值的位置通过将所述7位字面值值sss ssss加入一文件选择寄存器中的值来确定。9.根据权利要求1所述的微控制器,其中所述指令集包括一具有一编码0000 00000001 0100的指令,其中一旦调用所述指令,...

【专利技术属性】
技术研发人员:爱德华布赖恩博尔斯罗德尼杰伊德雷克达雷尔雷约翰森苏密特K米特拉兰迪亚奇詹姆斯格罗斯巴赫乔舒亚M康纳约瑟夫W特里斯
申请(专利权)人:密克罗奇普技术公司
类型:发明
国别省市:US[美国]

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

1