一种扩展SRAM容量的虚拟存储方法技术

技术编号:7759033 阅读:215 留言:0更新日期:2012-09-14 00:52
一种扩展SRAM容量的虚拟存储方法,在SRAM上选取交换块,同时在EFlash上选取备份块,SRAM上交换块会分成几个扇区,每个扇区的大小与eflash扇区大小一样,SRAM的扇区作为交换扇区和EFlash的扇区交换数据,从而实现可以任意扩展SRAM空间的目的。本发明专利技术在不增加SRAM物理空间的前提下,可以任意地增加SRAM的虚拟空间,减小了芯片的面积,降低了系统的功耗。

【技术实现步骤摘要】

本专利技术涉及一种扩展SRAM容量的虚拟存储方法
技术介绍
随着信息网络技术的发展,使得随时随地地连接网络获取信息变成现实,以信息交换和共享为主要内容的电子政务和电子商务得以迅猛发展。但是开放型的互联网协议和脆软的PC桌面操作系统使得信息安全问题成为互联网应用进步的主要障碍。安全芯片以其自身的强安全性近些年来得到了极大的发展,为网络安全做出一重要贡献。安全芯片有双重安全机制,第一重是芯片本身集成的加密算法模块,芯片设计公司通常都会将经实践检验的最安全的几种加密算法集成入芯片。第二重保护则是CPU卡芯片特有的COS系统,COS可以为芯片设立多个相互独立的密码,密钥是目录为单位存放,每个目录下的密钥相互之间独立,并且有防火墙功能。近些年来,IC卡已经逐步进入了包括金融、通信、医疗、公交、身份识别等在内的多个应用领域。如图I所示,安全芯片的存储单元包括以下三种R0M、SRAM、EFlash。ROM主要用于存储芯片设计厂商固化的启动代码;SRAM主要用于存放COS运算过程中的一些全局变量和堆栈等信息;EFlash主要用于存放COS厂商的应用程序。SRAM不需要刷新电路即能保存它内部存储的数据,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,且功能较大。EFlash这种非挥发性存储器是EEPROM走向成熟的产物。它的集成度非常高,满足了应用程序越来越大的需要。随着COS的越来越复杂,COS厂商对SRAM的大容量需求也起来越强烈,但是SRAM的集成度非常低,如果要增加SRAM的空间,必然会增加芯片的成本,同时也会增加芯片的功耗。目前芯片公司对芯片的成本已经非常敏感,在国内安全芯片竞争越来越激烈的情况下,成本直接决定了一款芯片的成败。因此如何在不增加SRAM物理容量的前提下,满足COS厂商对SRAM大容量的需求是一个很大的技术难点。
技术实现思路
本专利技术提供一种扩展SRAM容量的虚拟存储方法,在不增加SRAM物理空间的前提下,可以任意地增加SRAM的虚拟空间。减小了芯片的面积,降低了系统的功耗。为了达到上述目的,本专利技术提供一种扩展SRAM容量的虚拟存储方法,该方法包含以下步骤 步骤I、初始化; 步骤2、CPU访问SRAM的虚拟地址SramVaddr ; 步骤3、判断SRAM的虚拟地址SramVaddr是否小于(M_m)K,若是,跳转到步骤10,若否,跳转到步骤4 ; 其中,M是SRAM的总容量,m是SRAM的最后mK字节; 步骤4、令SRAM交换扇区虚拟基地址序号Sid=O ;步骤5、判断SRAM交换扇区Sid的虚拟基地址是否等于SRAM虚拟基地址SramVaddr,若是,则跳转到步骤10,若否,则跳转到步骤7 ;步骤 6、Sid= Sid +1 ; 步骤7、判断Sid是否大于n,若是,跳转到步骤8,若否,跳转到步骤5 ; 步骤8、SRAM控制器产生硬件异常,CPU进入异常处理函数,SRAM与EFlash进行交换数据操作; 步骤9、更改最空闲交换扇区的基地址; 步骤10、将SRAM的虚拟地址SramVaddr映射到物理地址SramPaddr ; 步骤11、CPU执行读写操作; 步骤12、CPU结束访问SRAM。所述的步骤I包含以下步骤 步骤I. I、在SRAM上选取交换块,同时在EFlash上选取备份块; 将SRAM的最后mK字节平均划分成n个扇区,对每个扇区从0到n进行编号,分别对应记为 SramSwapSector 0 SramSwapSector n ; 将CPU访问SRAM的系统地址称之为SRAM虚拟地址,记为SramVaddr,SRAM实际物理寻址地址称之为SRAM物理地址,记为SramPaddr ; 步骤I. 2、SRAM控制器在上电时,初始化n个交换扇区的虚拟基地址。SRAM上交换块的每个扇区的大小与eflash上备份快的每个扇区大小一样,交换块中每个物理扇区都与一个对应的逻辑扇区进行对应,该对应表会在SRAM控制器内保存。所述的步骤8包含以下步骤 步骤8. I、SRAM控制器设置异常错误虚拟源地址ErrScrVaddr和异常错误虚拟目标地址 ErrDstVaddr ;步骤 8. 2、令 WordCnt=O ; 步骤8. 3、读出以ErrScrVaddr为虚拟基地址的整个扇区中以WordCnt为偏移量的一个字; 步骤8. 4、将步骤8. 3中读出的一个字写入到EFlash的某一空白扇区中;步骤 8. 5 > WordCnt = WordCnt+1 ; 步骤8. 6、判断WordCnt =W是否成立,若是,跳转到步骤8. 7,若否,跳转到步骤8. 3 ; W代表一个扇区的字数;步骤 8. 7、令 WordCnt=O ; 步骤8. 8、根据异常错误虚拟目标地址ErrDstVaddr对应的EFlash中的扇区,读出该扇区中已经备份的第WordCnt个数据; 步骤8. 9、将步骤8. 8中读出的数据写入到以ErrScrVaddr为扇区虚拟基地址,以WordCnt为偏移量的SRAM中;步骤 8. 10 > WordCnt = WordCnt+1 ; 步骤8. 11、判断WordCnt =W是否成立,若是,跳转到步骤8. 12,若否,跳转到步骤8. 8 ; W代表一个扇区的字数; 步骤8. 12、交换完成标志位置位; 步骤8. 13、结束交换数据。异常错误虚拟源地址ErrScrVaddr表示的是一个虚拟基地址,此虚拟基地址对应的整个扇区数据需要备份到EFlash中,因为此虚拟基地址所在的交换扇区将被用来存放引起硬件异常的SRAM虚拟地址所有的 整个扇区; 异常错误虚拟目标地址ErrDstVaddr表示的是一个虚拟基地址,此虚拟基地址对应的整个扇区数据需要从EFlsah中还原过来,为异常处理结束后CPU再次执行引起此次异常的指令服务。所述的步骤9包含以下步骤 步骤9. I、CPU访问交换扇区S ; 步骤9. 2、计算交换扇区S在当前空闲状态表中的位置POS ; 步骤9. 3、从位置0到POS执行循环左移操作,完成一次空闲状态转换流程。本专利技术在不增加SRAM物理空间的前提下,可以任意地增加SRAM的虚拟空间。减小了芯片的面积,降低了系统的功耗。附图说明图I是芯片存储单元的逻辑结构 图2是本专利技术的流程 图3是本专利技术SRAM与EFlash进行交换数据操作的流程 图4是交换扇区初始化空闲状态表; 图5是在图4空闲状态下访问SramSwapSector2的空闲状态表; 图6是空闲状态转换流程图。具体实施例方式以下根据图2 图6,具体说明本专利技术的较佳实施例。如图2所示,以物理容量为8K字节的SRAM为例,说明如何扩展SRAM的容量。该扩展SRAM容量的虚拟存储方法包含以下步骤 步骤I、初始化; 步骤I. I、在SRAM上选取交换块,同时在EFlash上选取备份块; 通常情况,SRAM上交换块会分成几个扇区,每个扇区的大小与eflash扇区大小一样,交换块中每个物理扇区都与一个对应的逻辑扇区进行对应,该对应表会在SRAM控制器内保存。将SRAM的最后2K字节划分成4个扇区,SRAM的这四个扇区作为交本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈诚朱念好周玉洁
申请(专利权)人:上海爱信诺航芯电子科技有限公司
类型:发明
国别省市:

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

1