[发明专利]一种内存访问方法和装置有效
申请号: | 201010193377.5 | 申请日: | 2010-06-01 |
公开(公告)号: | CN102270181A | 公开(公告)日: | 2011-12-07 |
发明(设计)人: | 江小炜;彭洪 | 申请(专利权)人: | 炬力集成电路设计有限公司 |
主分类号: | G06F12/10 | 分类号: | G06F12/10 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 牛峥;王丽琴 |
地址: | 519085 广东省珠海*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 访问 方法 装置 | ||
技术领域
本发明涉及计算机技术,特别涉及一种内存访问方法和装置。
背景技术
在当前的计算机系统特别是嵌入式系统当中,硬件运算能力的日益提高使得越来越多的系统功能得以实现,而实现这些功能的软件的规模也相应的不断增大,从而软件的可执行代码的长度越来越长。
对于传统的寻址范围为2M字节的中央处理器(CPU),M为正整数,CPU在内存(RAM)空间中的一次寻址范围为2M字节,从而每次能够被执行的可执行代码的最大长度也为2M字节。显然,若可执行代码的长度超过该寻址范围时,即使可执行代码能够全部保存在RAM空间当中,CPU也无法一次性全部执行。这时,传统的解决方法是采用软件方式的分页(BankSwitch)模式来控制每次执行的可行代码片段——将保存全部可执行代码的RAM空间进行分页,CPU每次选取其中一页进行执行且各页之间的地址复用;同时,由于每页的可执行代码并非功能上完整的单元,从而在可执行代码的执行过程中不可避免的需要在各页之间进行切换,因此,还需要设置进行分页切换的代码(通常称为Bank切换代码)来实现各分页之间的切换。
下面通过一个具体示例来对所述Bank Switch模式进行详细说明,BankSwitch模式下可执行代码在RAM中的存储方式如图1所示,假设此时的RAM空间(通常也称为程序空间)为223字节,将其等分成128个bank(页面),每一个页面的大小为216字节:
其中,可执行代码共分为128页(其编号为bank 0~bank 127),各页的地址复用——其起始地址大于等于0x0000,小于0xffff(称为bank baseaddress),结束地址为0xFFFF,通常将该地址空间称为页空间;在任一时刻,仅有一个页面中保存的可执行代码处于执行状态,通常称该页面为处于激活状态的页面——即,CPU在同一时间点上仅执行处于激活状态的页面中保存的可执行代码;同时,所述地址复用的含义为:处于激活状态的页面i(i=0、1...n,n≤127)的物理地址空间为所述的bank base address~FFFF,而未处于激活状态的其它各页面则未被分配地址;另一方面,物理地址空间0000~bank base address称为共用段,该地址空间用于存储所述可执行代码中那些基本的、全局性的代码——例如用于变量初始化的代码、中断服务代码以及用于进行分页切换的页面切换代码等。
在这种情况下,如果当前处于激活状态的页面中的可执行代码执行过程中,需要调用位于其它页面的代码,就必须要在不同的页面间进行切换,因此每一个这种用于进行页面切换的页面切换代码都需要存储在RAM的根空间中。随着代码的页面数量的增多(即i值越大),相应产生的页面切换代码的数量就越多,从而所有页面切换代码在根空间中占用的空间就越大。通常,每个用于进行页面切换的页面切换代码的大小约为32~48字节,而一个正常尺寸的软件需要的页面切换代码的数量至少为上百个,这就会使得RAM根空间中存储的页面切换代码增大到4KB以上,而对于目前集成电路中的RAM来说,使用4KB字节或以上的空间只是用来完成页面切换的功能显然是不能接受的,因为RAM空间数量有限且成本很高,这种方式会导致大量RAM空间被占用而无法反复利用。
发明内容
本发明的主要目的在于提供一种内存访问方法和装置,能够减小对RAM空间的需要,提高RAM空间利用效率,降低程序编写和调试的复杂程度。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种内存访问方法,该方法包括:
步骤A、通过预设的硬件检测电路判断CPU将要访问的数据或指令与CPU当前正在访问的数据或指令是否在同一页面,如果不在同一页面,触发CPU的页面切换机制,并同时记录发现页面不匹配时的程序计数器的值;
步骤B、CPU进行页面切换时,保存将要访问的数据或指令所在的页面号码至页面寄存器中,开始执行页面切换处理程序,所述页面切换处理程序包括根据记录的不匹配地址设置返回现场使用的程序指针,从外部存储器中将将要访问的数据或指令更新到程序RAM当中,并将当前页面寄存器的值更新为保存的页面号码;
步骤C、结束页面切换处理程序,将程序计数器的值修改回记录的所述发现页面不匹配时的程序计数器的值,并返回继续执行步骤A。
所述判断CPU将要访问的数据或指令与CPU当前正在访问的数据或指令是否在同一页面的方法包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于炬力集成电路设计有限公司,未经炬力集成电路设计有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010193377.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种含有螺虫乙酯与氰氟虫腙的杀虫组合物
- 下一篇:新型鱼竿