微控制器数据存储器的寻址方法和微控制器的制作方法

文档序号:6341093阅读:115来源:国知局
专利名称:微控制器数据存储器的寻址方法和微控制器的制作方法
技术领域
本发明涉及微控制器领域,尤其涉及一种微控制器数据存储器的寻址方法和微控制器。
背景技术
微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而功能越来越强大,这就使得微控制器的应用越来越广泛。目前应用的微控制器有多种,而精简指令集计算机(Reducedlnstruction Set Computer,简称为RISC)是一种执行较少类型计算机指令的微处理器。由于计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器复杂,执行操作也会更慢,所以RISC相对于普通微控制器而言能够以更快的速度执行操作,每秒约执行百万条指令。RISC指令的长度单一,一般为2个字节,这2个字节当中有8位(或7 位)用于表示指令操作码,其余的8位(或9位)用于表示访问数据存储器的地址。微控制器的数据存储器按照功能划分,可以分为通用数据寄存器和特殊功能寄存器。其中,通用数据寄存器可以用于存储指令执行过程中的数据或者状态标志位;特殊功能寄存器可以用于控制芯片各功能模块的运行及运行状态的指示。微控制器中的数据存储器数量较多,但是RISC指令的长度有限,就决定了 RISC指令可直接寻址的数据存储器的范围较小,一般为256个,最大可以达到512个。现有技术中为了克服RISC指令的上述问题,提出了一种对数据存储器进行分页的方法。对于较大空间的数据存储器,通常以1 位为单位进行分页,并将特殊功能寄存器均勻分布在几个页面的前半部分地址范围内,如图1所示。设置页面地址寄存器,用于选择当前页面,RISC指令可以访问当前页面范围内的数据存储器。如果RISC指令需要访问其他页面,必须首先通过页面地址寄存器进行页面的切换。为保证在任意页面均能对页面地址寄存器进行访问,需要将页面地址寄存器映射到各个页面。利用上述现有技术进行微控制器数据存储器的寻址方法的流程图可以如图2所示,将指令从程序存储器中读出后存储于指令寄存器,指令译码电路对指令寄存器中的指令进行译码,解析指令所需的操作。对需要进行数据存储器写/读操作的指令,提取指令码中包含的数据存储器的地址,并存储在数据存储器地址寄存器中。数据存储器地址寄存器中存储的数据存储器地址的高η位(η为页面地址寄存器的实际位数)表示需要访问的数据存储器所在的页面,低m位组成数据存储器地址的低m位。提取数据存储器地址寄存器中存储的数据存储器地址的高η位写入页面地址寄存器,进行页面的选择或切换,提取数据存储器地址寄存器中存储的数据存储器地址的低m位作为需要访问的数据存储器的地址在当前页面进行寻址。在实现本发明过程中,发明人发现现有技术中至少存在如下问题如果需要访问的特殊功能寄存器并不属于页面地址寄存器对应的当前页面,需要先对页面地址寄存器进行操作,令其切换到所需的页面后,才能进行特殊功能寄存器的寻址、访问,由于程序通常需要频繁访问不同的特殊功能寄存器,而对页面地址寄存器的写入至少需要一个机器周期完成,访问特殊功能寄存器也至少需要一个机器周期,也就是说现有技术要完成一次其他页面的特殊功能寄存器访问操作,需要至少两个机器周期,造成程序的执行效率较低。

发明内容
本发明实施例提供一种微控制器数据存储器的寻址方法和微控制器,用以解决现有技术中数据存储器的寻址程序复杂、进而造成微控制器程序的执行效率低的问题。本发明实施例提供一种微控制器数据存储器的寻址方法,包括对指令进行译码;获得指令操作码、快速数据存储区的访问使能标志和待访问数据存储区的低位地址值;所述快速数据存储区为一连续的地址空间,其中至少包括或者映射有特殊功能寄存器;根据所述快速数据存储区的访问使能标志获取待访问数据存储区的地址当所述快速数据存储区的访问使能标志指示访问快速数据存储区时,将预先存储的所述快速数据存储区的高位地址值作为待访问数据存储区的高位地址值,结合所述待访问数据存储区的低位地址值,得到待访问地址。本发明实施例提供一种微控制器,包括寻址电路,所述寻址电路至少包括指令译码电路和地址选择电路;所述指令译码电路对指令进行译码,输出指令操作码、快速数据存储区的访问使能信号和待访问数据存储区的低位地址信号;所述快速数据存储区为一连续的地址空间, 其中至少包括或者映射有特殊功能寄存器;所述地址选择电路在所述快速数据存储区的访问使能信号指示访问快速数据存储区时,将预先存储的所述快速数据存储区的高位地址值作为待访问数据存储区的高位地址信号,结合所述待访问数据存储区的低位地址信号,得到待访问地址。本发明实施例提供的微控制器数据存储器的寻址方法和微控制器,通过将微控制器的所有特殊功能寄存器存储在地址连续的快速数据存储区,指令中包括指令操作码、快速数据存储区的访问使能标志和待访问的数据存储器的低位地址值,可以对快速数据存储区中的任意数据存储器进行直接寻址,不受微控制器的数据存储器分页限制,提高了程序的执行效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中提供的对数据存储器进行分页的示意图;图2为现有技术中微控制器数据存储器的寻址方法流程图;图3为本发明微控制器数据存储器的快速数据存储区的示意图4为本发明微控制器数据存储器的寻址方法实施例的流程图;图5为本发明微控制器数据存储器的地址获得电路示意图;图6为本发明微控制器实施例的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提供了一种微控制器数据存储器的寻址方法,这种寻址方法可以不对页面地址寄存器进行页面操作便能完成数据存储器的访问,最快可以在一个机器周期内完成访问,提高了程序的执行效率,并且至少减少了一条指令代码,节省了程序存储空间。在执行数据存储器的寻址之前,准备工作包括将微处理器的全部特殊功能寄存器存储在连续的地址空间内,将这部分连续的地址空间称之为快速数据存储区。这部分连续的地址空间也可以理解为一个页面,如果全部特殊功能寄存器的数目不足以构成一个页面,也可以将部分通用数据寄存器存储在这部分连续的地址空间内。如图3所示,假设快速数据存储区的地址单元总数目为j,快速数据存储区中的特殊功能寄存器的数目为k,快速数据存储区中的通用数据寄存器的数目为t。其中数值t不能超过数值j与数值k相减后的差值,即t ^ j-k。其他的通用数据寄存器仍然可以按照现有技术中分页后访问。图4为本发明微控制器数据存储器的寻址方法实施例的流程图,该方法包括步骤401 将指令从程序存储器中读出后,存储于指令寄存器。需要说明的是,步骤401中所述的指令与现有技术中的RISC指令是有区别的,具体的区别在于步骤401中的指令由指令操作码和快速数据存储区的访问使能标志和待访问的数据存储器的低m位地址组成,这种指令可有多种不同的编码实现方式。其中,指令操作码用于表示该指令将要进行的指令操作的类型;快速数据存储区的访问使能标志用于表示是否对快速数据存储区进行访问使能;待访问数据存储区的低m位地址用于表示直接对应于待访问数据存储区的低m位地址。对于快速数据存储区的访问使能标志可以理解为当该访问使能标志为1时,该指令访问快速数据存储区;当该访问使能标志为0时,该指令不访问快速数据存储区,访问的是其他页面当中的数据存储器。当然也可以这样当该访问使能标志为0时,该指令访问快速数据存储区;当该访问使能标志为1时,该指令不访问快速数据存储区。上述两种方式都是被允许的。本实施例仅以二进制方式举例,但并不用以限制该使能标志的具体数值。步骤402 指令译码电路对指令寄存器中的指令进行译码,根据指令中的指令操作码确定指令要进行的操作;步骤403 根据指令中的快速数据存储区的访问使能标志确定是否访问快速数据存储区。步骤404:若指令中的快速数据存储区的访问使能标志代表访问快速数据存储区,将预先存储的快速数据存储区地址高η位作为待访问数据存储区的高η位地址,结合待访问数据存储区的低m位地址,得到待访问数据存储区的地址(共计n+m位),根据该地址对该数据存储区地址进行访问,根据指令操作码进行操作。这种访问与页面地址寄存器无关,可以直接访问到快速数据存储区中的地址单元,最快可以在一个机器周期内完成访问,提高了程序的执行效率,并且至少减少了一条指令代码(对页面地址寄存器的操作指令代码),节省了程序存储空间。具体的,本发明微控制器数据存储器的地址获得电路示意图可以如图5所示。其中,地址选择电路为多路地址选择器,产生数据存储区地址的高η位。通过快速数据存储区的访问使能进行选择。当快速数据存储区的访问使能为有效时,选择快速数据存储区地址高η位,否则,选择其他数据存储区地址高η位。其中的η为页面地址寄存器的实际位数, 可以为大于等于1,小于等于8的正整数。相应的,依照现有技术而言,m+n可以为16,但m、 η的具体数值并不限制在上述具体数值中。需要说明的是,存储在快速数据存储区的通用数据寄存器也可以实现如此快速方便的访问,用户可以将指令执行过程中操作频繁的数据或状态标志位存储在快速数据存储区的通用数据寄存器中。本实施例提供的微控制器数据存储器的寻址方法,通过将微控制器的所有特殊功能寄存器存储在地址连续的快速数据存储区,指令中包括指令操作码、快速数据存储区的访问使能标志和待访问数据存储区的低m位地址,可以对快速数据存储区中的任意数据存储器进行直接寻址,不受微控制器的数据存储器分页限制,提高了程序的执行效率。本发明实施例还提供了一种微控制器,该微控制器为上述数据存储器的寻址方法的特定执行主体,故可将方法实施例全部引述到本实施例中。如图6所示,本实施例提供的微控制器包括一寻址电路,该寻址电路包括指令译码电路601和地址选择电路602 ;其中, 指令译码电路601对指令进行译码,输出指令操作码、快速数据存储区的访问使能信号和待访问数据存储区的低位地址信号;该快速数据存储区为一连续的地址空间,其中至少包括或者映射有特殊功能寄存器;地址选择电路602在快速数据存储区的访问使能信号指示访问快速数据存储区时,将预先存储的快速数据存储区的高位地址值作为待访问数据存储区的高位地址信号,结合待访问数据存储区的低位地址信号,得到待访问地址。该寻址电路还可以包括页面地址寄存器和地址译码电路;该地址译码电路在快速数据存储区的访问使能信号指示访问其他数据存储区时,从页面地址寄存器中读取待访问数据存储区所在的页面,并根据待访问数据存储区所在的页面输出待访问数据存储区的高位地址信号,地址选择电路602将地址译码电路获得的待访问数据存储区的高位地址信号结合待访问数据存储区的低位地址信号,得到待访问地址。本实施例中所涉及的快速数据存储区为一连续的地址空间,其中存储有微控制器的全部特殊功能寄存器。如果该连续的地址空间并未被全部特殊功能寄存器填满,还可以将部分通用数据寄存器存储到快速数据存储区中。需要说明的是,快速数据存储区中通用数据寄存器的数量不应大于快速数据存储区的地址单元的总数量与特殊功能寄存器的总数量的差值。本实施例提供的微控制器,通过将微控制器的所有特殊功能寄存器存储在地址连续的快速数据存储区,指令中包括指令操作码、快速数据存储区的使能标志和待访问数据存储区的低m位地址,可以对快速数据存储区中的任意数据存储器进行直接寻址,不受微控制器的数据存储器分页限制,提高了程序的执行效率。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种微控制器数据存储器的寻址方法,其特征在于包括对指令进行译码;获得指令操作码、快速数据存储区的访问使能标志和待访问数据存储区的低位地址值;所述快速数据存储区为一连续的地址空间,其中至少包括或者映射有特殊功能寄存器;根据所述快速数据存储区的访问使能标志获取待访问数据存储区的地址当所述快速数据存储区的访问使能标志指示访问快速数据存储区时,将预先存储的所述快速数据存储区的高位地址值作为待访问数据存储区的高位地址值,结合所述待访问数据存储区的低位地址值,得到待访问地址。
2.根据权利要求1所述的微控制器数据存储器的寻址方法,其特征在于所述方法还包括当所述快速数据存储区的访问使能标志指示访问其他数据存储区时,从页面地址寄存器中获得待访问数据存储区所在的页面,通过地址译码电路获得待访问数据存储区的高位地址值,结合所述待访问数据存储区的低位地址值,得到待访问地址。
3.—种微控制器,包括寻址电路,其特征在于所述寻址电路至少包括指令译码电路和地址选择电路;所述指令译码电路对指令进行译码,输出指令操作码、快速数据存储区的访问使能信号和待访问数据存储区的低位地址信号;所述快速数据存储区为一连续的地址空间,其中至少包括或者映射有特殊功能寄存器;所述地址选择电路在所述快速数据存储区的访问使能信号指示访问快速数据存储区时,将预先存储的所述快速数据存储区的高位地址值作为待访问数据存储区的高位地址信号,结合所述待访问数据存储区的低位地址信号,得到待访问地址。
4.根据权利要求3所述的微控制器,其特征在于所述寻址电路还包括页面地址寄存器和地址译码电路;所述地址译码电路在所述快速数据存储区的访问使能信号指示访问其他数据存储区时,从所述页面地址寄存器中读取待访问数据存储区所在的页面,并根据所述待访问数据存储区所在的页面输出所述待访问数据存储区的高位地址信号,所述地址选择电路将所述地址译码电路获得的待访问数据存储区的高位地址信号结合所述待访问数据存储区的低位地址信号,得到待访问地址。
5.根据权利要求3所述的微控制器,其特征在于所述快速数据存储区中还包括或者映射有所述微控制器的通用寄存器,所述通用寄存器的数量小于或者等于所述快速数据存储区的地址单元的总数量与所述特殊功能寄存器的总数量的差值。
全文摘要
本发明提供一种微控制器数据存储器的寻址方法和微控制器。方法包括对指令进行译码;获得指令操作码、快速数据存储区的访问使能标志和待访问数据存储区的低位地址值;所述快速数据存储区为一连续的地址空间,其中至少包括或者映射有特殊功能寄存器;根据所述快速数据存储区的使能标志获取待访问数据存储区的地址当所述快速数据存储区的访问使能标志指示访问快速数据存储区时,将预先存储的所述快速数据存储区的高位地址值作为待访问数据存储区的高位地址值,结合所述待访问数据存储区的低位地址值,得到待访问地址。微控制器包括寻址电路,所述寻址电路至少包括指令译码电路和地址选择电路。
文档编号G06F9/30GK102541745SQ20101062001
公开日2012年7月4日 申请日期2010年12月31日 优先权日2010年12月31日
发明者朱世奇, 潘松, 赵启山, 陈立权 申请人:上海海尔集成电路有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1