微控制器单元的制作方法

文档序号:6608896阅读:202来源:国知局
专利名称:微控制器单元的制作方法
技术领域
本发明涉及微控制器和存储器访问模式,更具体地涉及微控制器中存储器寻址的优化。
背景技术
微控制器或微控制器单元(MCU)是包含许多在典型计算机系统中存在的功能的集成电路(IC)。微控制器使用微处理器作为其中央处理单元(CPU),并且引入例如存储器、定时参考和输入/输出外设的特性,而所有这些均在相同芯片上。微控制器对于需要许多判决或计算的任何应用都是非常有用的。在多数情况下,与离散逻辑相比,使用微控制器的计算能力会更加容易。一些典型微控制器应用包含电话、自动应答机、寻呼机、电机控制器、电器、远程控制设备、玩具、汽车电子设备等等。
8位微控制器每年都在进入越来越小的应用,这些应用中不需要典型微控制器的健壮功能和较大存储器尺寸。此外,随着在更加紧凑的电池供电的系统中使用8位微控制器,优化功率效率的核心变成终端产品成功的关键。因而,需要一种小型和低功率的微控制器。这种小尺寸微控制器为正在出现的应用提供理想的解决方案,例如正迁移到完全固态电子器件操作的简单电机设备,或已经演变成更小或甚至用完即弃的版本的便携设备。


当结合附图来阅读时,将能够更好地理解本发明的优选实施例的以下详细描述。通过例子来说明本发明,并且本发明不受附图的限制。应当理解,附图未按比例绘制,并且进行简化以便于理解本发明。
图1是根据本发明实施例的微控制器的示意模块图;图2A和2B说明了根据本发明实施例的指令字;图3是根据本发明实施例的中央处理单元的示意模块图;图4是说明根据本发明实施例的存储器的一部分的模块图;图5是说明根据本发明实施例的存储器的映射的模块图;而图6是说明根据本发明实施例的系统集成模块的操作的示意图。
具体实施例方式
下面结合附图进行的详细描述只是对本发明的当前优选实施例的说明,并没有打算代表可以实施本发明的唯一形式。应当理解,可以通过被包括在本发明的实质和范围内的不同实施例来实现相同或等价的功能。在附图中,类似数字用于表示类似的单元。
本发明提供了作为高性能体系结构的简化版本的微控制器。核心更小并且以缩减的指令集为特征,从而允许在小引脚数器件中实现紧凑和高效的嵌入式应用编码。本发明也提供了使用单字节指令来访问存储器空间的高效方法。
在一个实施例中,本发明是单芯片微控制器单元(MCU),包括中央处理单元(CPU),系统集成模块(SIM)和存储器。CPU处理8位指令,其中每个指令包含指令操作码(操作码)。操作码指定功能和寻址模式。CPU解码操作码以确定指令功能,寻址模式和操作数地址。在微型寻址模式中,指令的最低有效4位是操作数地址。在短寻址模式中,指令的最低有效5位是操作数地址,并且在直接寻址模式中,操作数地址是指令之后的8位。CPU将操作数地址转换成第一地址。连接到CPU的SIM从CPU接收第一地址并且将第一地址转换成存储器地址。存储器通过14位地址总线被连接到SIM,并且通过8位数据总线被连接到CPU。使用来自SIM的存储器地址访问存储器,并且存储器中存储的数据被提供给CPU。这里使用的存储器地址表示为十六进制。
本发明还提供了访问存储器中存储的操作数的方法,包括步骤解码指令以确定指令的操作码和寻址类型,其中在微型寻址模式中,操作码表示操作数位于存储器的第一预定部分,并且在短寻址模式中,操作码表示操作数位于存储器的第二预定部分;和产生操作数地址。在微型寻址模式中,操作数地址是指令的第一预定数量的位,而在短寻址模式中,操作数地址是指令的第二预定数量的位。
下面提供本发明的详细描述。在说明中,依据具有16Kx8存储器的8位MCU来描述本发明。然而本领域的技术人员会明白,这里描述的存储器访问技术可以被应用于具有更大存储器和更宽指令字的更加健壮的微控制器(例如16位或32位微处理器),以及其它类型的处理器和系统。某些寄存器被映射到存储器位置,并且针对映射寄存器的存储器位置提供了具体例子。然而应当理解,这种存储器映射寄存器可以位于其它存储器地址。因而这种存储器地址只是示例性的。在随后的说明中也使用指令助记符(mnemonics)。在本发明的一个实施例中,本发明是健壮MCU的缩减版本,类似于可从Austin,Texas的Freescale Semiconductor公司得到的HC08和HCS08微控制器。虽然本领域的技术人员会容易地理解下面使用的助记符,然而在可从Freescale得到的描述其微控制器的文献中可以找到这种助记符的更加详细的说明。
现在参照图1,其中示出了根据本发明实施例的微控制器单元(MCU)10。MCU 10包含中央处理单元(CPU)12,系统集成模块(SIM)14和存储器16。MCU 10优选地在单芯片上形成,并且使用具有共享程序和数据总线的冯诺依曼体系结构。更具体地,CPU 12通过数据总线18被连接到存储器16。在这里描述的实施例中,数据总线18为8位宽。CPU 12处理经由数据总线18从存储器16接收的8位指令。每个指令包含指定功能和寻址模式的指令操作码(操作码)。CPU 12解码操作码以确定指令功能,寻址模式和操作数地址。SIM 14被连接到CPU 12,从CPU 12接收操作数地址并且将操作数地址转换成存储器地址。经由地址总线19将存储器地址从SIM 14提供给存储器16。存储器地址被用于访问存储器16中存储的数据(例如指令操作数)。在当前优选实施例中,存储器地址为14位,存储器地址总线19为14位宽,这允许有16k可寻址存储器空间,并且由于数据总线18为8位宽,存储器16为16kx8。存储器16可以是单个存储器设备,不同类型存储器阵列(类似于快擦写存储器,RAM,OTP)的混合,和其它存储器映射外围模块,例如ADC或定时器。在其它实施例中,存储器地址总线更宽,并且其它设备被连接到存储器地址总线和数据总线,例如其它存储器和外部设备。
为了使MCU 10高效执行程序代码,通过定义用于访问存储器16的第一预定区域的微型寻址模式和用于访问存储器16的第二预定区域的短寻址模式来高效使用存储器。在本发明的当前优选实施例中,微型寻址模式能够寻址前十六(16)个存储器位置,短寻址模式能够寻址前三十二(32)个存储器位置。在本发明的其它实施例中,微型和短寻址模式分别能够被用于访问例如32字节和64字节。
现在参照图2A和2B,其中示出了指令字格式20和21的2个例子。在图2A中,指令字20为8位,包含4位操作码22和4位操作数地址24。4位操作数地址允许访问16个存储器位置,因而指令操作码22表示微型寻址模式。在当前优选实施例中,微型寻址模式能够只寻址地址映射中从$0000到$000F的前16字节。使用微型寻址模式的指令为INC,DEC,ADD和SUB。通过将计算强度最高的数据放置在存储器的这个区域($0000到$000F)中,能够优化程序代码。由于4位地址是指令的一部分,只有地址的最低有效4位必须被包含在指令中,从而节省了程序空间和执行时间。如下面更详细地描述的,CPU 12向4位操作数地址增加10个高位零,并且使用组合14位地址来访问期望的操作数。
在图2B中,指令字21为8位,包含3位操作码26和5位操作数地址28。5位操作数地址允许访问三十二个存储器位置,因而指令操作码26表示短寻址模式。在当前优选实施例中,短寻址模式能够只寻址地址映射中从$0000到$001F的前三十二字节。使用短寻址模式的指令为CLR,LDA和STA。类似于微型寻址模式,通过将计算强度最高的数据放置在存储器的这个区域($0000到$001F)中,能够优化程序代码。如下面更详细地描述的,CPU 12向5位操作数地址增加9个高位零,并且使用组合14位地址来访问期望的操作数。
微控制器10使用直接寻址模式访问位于直接地址空间中的操作数,在一个实施例中,直接地址空间为位置$0000到$00FF。在直接寻址模式中,操作数地址在指令字之后。在直接寻址模式中,CPU 12向直接地址操作数的低字节增加6个高位零以形成用于访问存储器16的14位地址。在扩展寻址模式中,在指令字之后(即操作码之后)的2个字节的低14位中提供14位操作数地址。跳转类型指令(即JSR和JMP)使用扩展寻址模式。其它寻址模式也被支持,并且将在下面讨论。
现在参照图3,其中示出CPU 12的示意模块图。CPU 12包含操作码解码器30,定序器32,算术和逻辑单元(ALU)34和地址产生器36。由于这些功能单元通常是本领域众所周知的,这里只需要进行简要描述以完全理解本发明。操作码解码器30经由数据总线18接收每个指令字,解码指令字以形成操作码,确定寻址模式和产生操作数地址。定序器32被连接到操作码解码器30,并且从操作码解码器30接收操作码。定序器32使用操作码确定指令的功能,并且产生ALU控制信号。ALU34被连接到定序器32,并且从定序器32接收ALU控制信号。ALU 34也被连接到数据总线18,使得它能够从存储器16接收指令和数据,并且向存储器16传送数据。ALU 34执行由指令表示并且由从定序器32接收的控制信号指定的操作。地址产生器36被连接到操作码解码器30,并且从解码器30接收寻址模式指示和操作数地址。更具体地,如上所述,根据寻址模式,地址产生器36向操作数地址增加10个、9个或6个前导零以形成14位第一地址。地址产生器36也从ALU 34接收表示是否需要从存储器36获取指令的控制信号。
现在参照图4,其中示出存储器16的一部分的映射40。示出的该部分存储器16是使用直接寻址模式可寻址的存储器空间,即位置$0000到$00FF。映射40包含经由微型寻址模式可访问的第一空间42和经由短寻址模式可访问的第二空间44。在示出的实施例中,微型寻址模式能够访问存储器位置$00到$0F,短寻址模式能够访问存储器位置$00到$1F。
映射40也表明存储器16包含充当间接数据寄存器(表示为D[X])46的第一预定地址,和用于访问索引寄存器(表示为″X″)48的第二预定地址。在当前优选实施例中,间接数据寄存器46位于地址$0E,索引寄存器位于地址$0F。在间接寻址模式(也被称作索引寻址模式)中,索引寄存器48包含存储器地址,间接数据寄存器46包含由索引寄存器指向的存储器地址的内容。在间接寻址模式中,与程序汇编期间确定的固定地址位置相反,在程序执行期间基于索引寄存器48的当前内容来计算操作数地址。这允许程序根据先前程序指令的结果来访问不同操作数位置(而不是访问当编写程序时确定的位置)。通过对索引寄存器48编程,能够使用间接数据寄存器46读/写直接页中的任何位置。本领域的技术人员将明白D[X]和X寄存器及其操作。
存储器16也包含用于访问页选择寄存器50的第三预定地址。页选择寄存器50是8位索引寄存器,其允许通过页窗口52访问整个16k字节地址空间中的所有存储器位置。也就是说,页选择寄存器50定义要通过页窗口访问哪个页。在示出的实施例中,页选择寄存器50位于存储器映射位置$1F,页窗口从$C0延伸到$FF。虽然不是必要的,然而优选的是间接数据寄存器46,索引寄存器48和页选择寄存器50(即第一,第二和第三预定地址)在短寻址模式可访问的存储器区域44内,并且间接数据寄存器46,索引寄存器48(即第一和第二预定地址)在微型寻址模式可访问的存储器区域42内。
图5示出了如何将存储器16分成多个页,其中页尺寸为处理器的最大物理地址除以页选择寄存器的最大值加一的和。在示出的实施例中,每个页为64字节(即页尺寸=16k/(255+1)=64)。使用直接寻址可访问第一,第二,第三和第四个页。使用寻页地址模式(paging addressmode)访问页,在寻页地址模式中,索引寄存器48被用于产生页地址。X[7:6]表示该第一至第四页(即,″00″=页0,″01″=页1,″10″=页2和″11″=页3)。如下面更详细地描述的,如果X[7:6]=″11″,则访问页3,并且使用页选择寄存器50和索引寄存器48中存储的数据产生存储器地址(存储器地址[13:6]=页选择寄存器,存储器地址[5:0]=X[5:0])。虽然间接数据寄存器46,索引寄存器48和页选择寄存器50被示出为位于存储器16中,然而本领域的技术人员会明白,这些寄存器可以位于CPU 12或SIM 14内,但是具有图4所示的存储器映射位置。
现在参照图6,其中示出了说明SIM 14的操作的示意图。如上所述,指令包含由操作码解码器30从指令中剥离并且提供给地址产生器36的操作数地址。地址产生器36通常通过向操作数地址填充若干个零来将操作数地址转换成14位第一地址。SIM 14从地址产生器36接收14位第一地址,并且将第一地址转换成用于访问存储器16的存储器地址(图6中的A2)。本领域的技术人员明白,14位地址能够访问多达16k个位置。
SIM 14包含第一逻辑模块60和连接到第一逻辑模块60的第二逻辑模块62。第一逻辑模块60从CPU 12接收第一地址″地址″并且将第一地址″地址″转换成中间地址A1。更具体地,如果第一地址″地址″等于间接数据寄存器D[X]46的地址(即$0E),则中间地址A1等于索引寄存器48的内容。另外,中间地址A1等于第一地址″地址″。
第二逻辑模块62从第一逻辑模块60接收中间地址A1,并且将中间地址A1转换成存储器地址A2。具体地,如果中间地址A1在预定范围内(在这种情况下为从$C0到$FF),则寻页被用于访问上方的存储器。在寻页模式中,存储器地址A2是页选择寄存器50与中间地址A1的低6位串联的内容。因而,在寻页时,A2=页[7:0]//A1[5:0]。如果中间地址A1不在预定范围内,则存储器地址A2等于中间地址A1。
如前面讨论所述,本发明提供了低成本、更小物理尺寸的微控制器,以及访问微控制器的相关系统存储器的方法。微控制器已经针对小存储器尺寸进行了优化。可以经由允许高效编码的单指令字来访问某些地址空间。出于图解和说明的目的提供了本发明优选实施例的说明,但是该说明并不是详尽的,或用于将本发明限于所公开的形式。本领域的技术人员应当理解,在不偏离本发明的构思范围的情况下可对上述实施例进行改变。可以容易地利用本发明的各种物理实现。例如,各种体系结构能够被用于CPU 12。本发明可以被实现在单个集成电路芯片上,实现为片上系统,或使用多个离散处理系统来实现。可以产生许多物理实现,以实现附图中说明的任何具体逻辑模块。例如,存储器可以被实现成DRAM,SRAM和快擦写存储器,并且可以具有各种物理尺寸。所讨论的位宽是特定于实现的,并且可以使用除了如上所述之外的位宽,例如指令字的位宽。可以在MOS,双极,SOI,GaAs或其它类型的半导体处理中实现本发明。用于实现地址产生器26和SIM 14的电路可以在系统内的各个位置处实现。例如,SIM 14能够被集成到CPU或存储器控制器中。因此应当明白,本发明不局限于公开的具体实施例,而是覆盖了在所附权利要求书定义的本发明实质和范围内的修改。
权利要求
1.一种单芯片微控制器单元MCU,包括中央处理单元CPU,其处理8位指令,每个指令包含指令操作码,即操作码,其中操作码指定功能和寻址模式,CPU解码操作码以确定指令功能,寻址模式和操作数地址,CPU支持指令的最低有效4位为操作数地址的微型寻址模式,指令的最低有效5位为操作数地址的短寻址模式,和操作数地址为指令之后的8位的直接寻址模式,CPU将操作数地址转换成第一地址;系统集成模块SIM,其连接到CPU并且从CPU接收第一地址,SIM将第一地址转换成存储器地址;和连接到SIM和CPU的存储器,其中使用来自SIM的存储器地址访问存储器,并且存储器中存储的数据被提供给CPU。
2.如权利要求1所述的MCU,其中存储器包含充当间接数据寄存器的第一预定地址和用于访问索引寄存器的第二预定地址,在间接寻址模式中,索引寄存器包含存储器地址,并且间接数据寄存器包含由索引寄存器指向的存储器地址的内容。
3.如权利要求2所述的MCU,其中存储器包含用于访问页选择寄存器的第三预定地址,页选择寄存器被用于定义使用页窗口访问的页的起始位置。
4.如权利要求3所述的MCU,其中第一,第二和第三预定地址在短寻址模式可访问的存储器区域内。
5.如权利要求4所述的MCU,其中第一和第二预定地址在微型寻址模式可访问的存储器区域内。
6.如权利要求3所述的MCU,其中CPU包括操作码解码器,其接收每个指令字,并且解码指令字以形成操作码,确定寻址模式和产生操作数地址;连接到操作码解码器的定序器,其接收操作码,确定指令的功能并且产生ALU控制信号;连接到定序器,操作码解码器和存储器的算术和逻辑单元ALU,用于执行由从定序器接收的ALU控制信号导致的操作;和地址产生器,连接到操作码解码器并且从操作码解码器接收操作数地址,其中地址产生器通过向操作数地址填充若干个前导零来将操作数地址转换成第一地址。
7.如权利要求6所述的MCU,其中在微型寻址模式中,地址产生器向操作数地址填充10个前导零,在短寻址模式中,地址产生器向操作数地址填充9个前导零,而在直接寻址模式中,地址产生器向操作数地址填充6个前导零。
8.如权利要求6所述的MCU,其中SIM包括第一逻辑模块,其从CPU接收第一地址并且将第一地址转换成中间地址,其中如果第一地址等于第一预定存储器地址,则中间地址等于第二预定存储器地址的内容,否则中间地址等于第一地址;和连接到第一逻辑模块的第二逻辑模块,其接收中间地址并且将中间地址转换成存储器地址,其中如果中间地址在预定范围内,则存储器地址等于第三预定地址与中间地址的最低有效6位串联的内容,否则存储器地址等于中间地址。
9.如权利要求8所述的MCU,其中索引寄存器和页选择寄存器位于SIM中。
10.一种微控制器单元MCU,包括用于存储指令和数据的存储器;连接到存储器的中央处理单元CPU,其处理指令字,每个指令字包含指令操作码,即操作码,其中操作码指定功能和寻址模式,CPU解码操作码以确定指令功能,寻址模式和操作数地址,CPU支持用于访问存储器的第一预定范围的微型寻址模式,用于访问存储器的第二预定范围的短寻址模式,和直接寻址模式,其中在微型寻址模式中,操作数地址包括指令字的第一数量的位,在短寻址模式中,操作数地址包括指令字的第二数量的位,而在直接寻址模式中,操作数地址包括下一指令字,CPU将操作数地址转换成第一地址;连接到存储器和CPU的系统集成模块SIM,其从CPU接收第一地址,SIM将第一地址转换成用于访问存储器的存储器地址;和连接到存储器和CPU的数据总线,其中使用来自SIM的存储器地址访问存储器,并且存储器地址处存储的数据被提供给CPU。
11.如权利要求10所述的MCU,其中指令字为8位长,在微型寻址模式中操作数地址是指令的最低有效4位,在短寻址模式中操作数地址为指令的最低有效5位。
12.如权利要求11所述的MCU,其中在微型寻址模式中,CPU向操作数地址填充10个前导零以产生第一地址,在短寻址模式中,CPU向操作数地址填充9个前导零以产生第一地址,而在直接寻址模式中,CPU向操作数地址填充6个前导零以产生第一地址。
13.如权利要求12所述的MCU,其中存储器包含充当间接数据寄存器的第一预定地址和用于访问索引寄存器的第二预定地址,在间接寻址模式中,索引寄存器包含存储器地址,并且间接数据寄存器包含由索引寄存器指向的存储器地址的内容。
14.如权利要求13所述的MCU,其中存储器包含用于访问页选择寄存器的第三预定地址,页选择寄存器被用于定义使用页窗口访问的页的起始位置。
15.如权利要求14所述的MCU,其中第一,第二和第三预定地址在短寻址模式可访问的存储器区域内,第一和第二预定地址在微型寻址模式可访问的存储器区域内。
16.如权利要求14所述的MCU,其中SIM包括第一逻辑模块,其从CPU接收第一地址并且将第一地址转换成中间地址,其中如果第一地址等于第一预定存储器地址,则中间地址等于第二预定存储器地址的内容,否则中间地址等于第一地址;和连接到第一逻辑模块的第二逻辑模块,其接收中间地址并且将中间地址转换成存储器地址,其中如果中间地址在预定范围内,则存储器地址等于第三预定地址与中间地址的最低有效6位串联的内容,否则存储器地址等于中间地址。
17.一种在微控制器中访问存储器中存储的操作数的方法,包括步骤解码指令以确定指令的操作码和寻址类型,其中在微型寻址模式中,操作码表示操作数位于存储器的第一预定部分,在短寻址模式中,操作码表示操作数位于存储器的第二预定部分;和产生操作数地址,其中在微型寻址模式中,操作数地址是指令的第一预定数量的位,在短寻址模式中,操作数地址是指令的第二预定数量的位。
18.如权利要求17所述的访问存储器中存储的操作数的方法,其中在微型寻址模式中操作数地址是指令的最低有效4位,在短寻址模式中操作数地址为指令的最低有效5位。
19.如权利要求17所述的访问存储器中存储的操作数的方法,其中存储器包含存储器的第一预定部分中充当间接数据寄存器的第一预定地址,和存储器的第一预定部分中充当索引寄存器的第二预定地址,在间接寻址模式中,索引寄存器包含存储器地址,并且间接数据寄存器包含由索引寄存器指向的存储器地址的内容。
20.如权利要求19所述的访问存储器中存储的操作数的方法,其中存储器包含位于第二预定存储器部分内、充当页选择寄存器的第三预定地址,当操作数地址在预定范围内时,通过串联页选择寄存器的值到操作数地址,来产生要访问的存储器地址。
全文摘要
微控制器单元(MCU)包含CPU,系统集成模块(SIM)和存储器。CPU解码操作码以确定功能,寻址类型和操作数地址,并且将操作数地址转换成第一地址。SIM将第一地址转换成存储器地址。存储器具有经由微型寻址模式可寻址的第一部分和经由短寻址模式可寻址的第二部分。微型和短地址空间能够通过单指令字来寻址。其余存储器位置能够经由可选寻址模式(例如间接寻址和寻页)来访问。第一和第二存储器部分包含用于间接寻址,索引寻址和寻页的映射寄存器。
文档编号G06F9/30GK101071410SQ200710101160
公开日2007年11月14日 申请日期2007年5月9日 优先权日2006年5月9日
发明者高德钧, 郑逸豪, 爱德华·J.·哈撒韦, 史蒂文·皮克林, 迈克尔·C.·伍德 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1