[发明专利]用于快速存取堆栈存储器的方法和系统有效
申请号: | 200480031315.7 | 申请日: | 2004-10-20 |
公开(公告)号: | CN101084484A | 公开(公告)日: | 2007-12-05 |
发明(设计)人: | 乔舒亚·M·康纳;詹姆斯·H·格罗斯巴赫;约瑟夫·W·特里斯 | 申请(专利权)人: | 密克罗奇普技术公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京律盟知识产权代理有限责任公司 | 代理人: | 刘国伟;王允方 |
地址: | 美国亚*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 快速 存取 堆栈 存储器 方法 系统 | ||
技术领域
本发明总的涉及微处理器。具体地,本发明涉及存取用作在微控制器或微处理器中的堆栈数据结构的通用存储器。
背景技术
微控制器单元(MCU)已经在制造和电子产业中使用了多年。在任何微处理器或微控制器中,存在用于保存中间值的存储器单元(即RAM)。那些存储器单元可以用于实现称为“堆栈”的概念性的数据容器。堆栈是像线性表那样的结构,对于线性表,所有的插入和删除都在所述列表的一端进行。可以借助通常称为压栈(push)、出栈(pop)和顶(top)的三种操作来声明指定堆栈为何的规则或原理。压栈向堆栈添加项,出栈删除最新添加的项,而顶返回该项,其不改变堆栈。堆栈用于在微控制器上运行的多种软件应用程序。
多数微控制器具有有限的存储器资源。可以通过使用软件堆栈来增加存储器资源的数量。软件堆栈是一种方法,其中在将一组数据位置用于存储对于整个计算机程序的一部分来说为本地的上下文(context)。这种方法使得能够有效地使用RAM,这是因为仅仅当前有效的计算机程序的一部分才消耗RAM空间。通过具有用于指示堆栈的顶部的专用指针来实现软件堆栈。所述专用指针通常称为堆栈指针。可以通过操纵该堆栈指针来向软件堆栈添加数据或从软件堆栈删除数据。也可以通过使用“堆栈指针相关的寻址”来引用在堆栈中的数据,由此使用与堆栈指针的偏移来寻址数据。
图1图解了使用RAM来创建软件堆栈。具体上,将RAM 102的一部分保留作为软件堆栈104。在图1的右侧上图解了软件堆栈104的放大视图。具体上,软件堆栈104具有堆栈指针150以及可以使用与堆栈指针150的偏移来存取的附加寄存器。例如,与堆栈指针150相邻的寄存器152可以作为堆栈指针+1来存取。类似地,与寄存器152相邻的寄存器与堆栈指针150偏移2。所述堆栈包含“n”个寄存器,最后一个的寄存器198与堆栈指针偏移“n”,如图1所示。
因为许多高级语言是以需要使用软件堆栈的方式来设计的,因此使用高级语言所写的软件应用程序的整体性能依赖于微控制器有效处理堆栈相关的操作的能力。快速的软件堆栈存取和操纵可以提高整体性能。因此,当期望软件应用程序的更快的性能时,需要减少存取和/或操纵软件堆栈所需的时间。
发明内容
本发明通过下述方式而克服了上述的问题以及现有技术的其他缺陷和不足:通过提供一种具有为快速存储器存取而预留的存储器的一部分的微控制器,并且通过将这个存储器重新映射到堆栈上以用于快速存取。
本发明包括用于提供对在堆栈中的存储器的快速存取的方法、系统和装置。所述系统和装置包括寻址位、堆栈指针和快速存取随机存取存储器(“RAM”)。所述方法使得能够与寻址位和堆栈指针相结合地使用第一寻址模式,以将存取RAM的位置移位,并且获得文字偏移寻址模式。
通过以公开为目而给出并且结合附图所进行的下列的对所述实施例的说明,本发明的特征和优点将变得清楚。
附图说明
通过参见结合附图而进行的下列说明,可以更全面地理解本公开及其优点,其中:
图1是图解在传统微控制器的通用存储器中的堆栈的实现方式的方框图。
图2是图解按照本发明的教程的快速存取存储器的一个实施例的方框图。
图3是图解按照本发明的教程的文字偏移(literal offset)寻址模式的方框图。
图4是图解按照本发明的一个实施例的模式指定过程的流程图。
图5是图解传统地址产生单元的方框图。
图6是图解按照本发明的教程的地址产生单元的另一实施例的方框图。
虽然本发明容易有各种修改和替换形式,但是其特定的例证实施例已经通过举例的方式而被示出在附图中,并且在此被详细地说明。但是,应当明白,在此说明的特定实施例不意欲将本发明限定到所公开的特定形式,而是相反,意欲涵盖落入由所附权利要求所限定的本发明的精神和范围中的所有修改、等同内容和替代内容。
具体实施方式
公开一种使得能够对在堆栈中的存储器进行快速存取的方法和装置。具体上,本公开描述了具有用于快速存储器存取的存取位的微控制器,并且那些快速存取位被重新定向以用于快速堆栈存取。通过减少堆栈存取所需要的时间,可以提高微控制器的整体性能。因此,本发明的一个优点是它提供了对于堆栈的快速存取,并因而提供了微控制器的更快的整体性能。
典型的高级软件应用(程序)使用具有参数和局部变量的函数子例程,例如下面的代码示例:
void foo(char a,char b)
{
int c;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于密克罗奇普技术公司,未经密克罗奇普技术公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200480031315.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于动态地调节水流的装置
- 下一篇:纳米板材平面布胶设备和布胶方法