当前位置: 首页 > 专利查询>浙江大学专利>正文

嵌入式系统中基于sram的局部变量支持方法技术方案

技术编号:2850523 阅读:201 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种嵌入式系统中基于sram的局部变量支持方法。是将嵌入式系统中应用程序的局部变量操作空间从通常所使用的sdram中转移到sram中,实现所有局部变量操作都在sram中进行,而让sdram专注于全局变量操作和代码执行的部分。sram是高速度低功耗的高端存储器件,将sram用于对局部变量进行支持,解决了使用sdram进行局部变量操作速度慢,功耗高的缺陷,可以减少功耗并提高效率。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统程序结构及运行模式的
,特别是涉及一种。
技术介绍
在最近二、三十年嵌入式领域取得了长足的发展,许多行业的发展已经离不开嵌入式领域的参与,如汽车、航空、重工、机器人、智能管家等不一而足。这些产业嵌入式领域的需求,促使了嵌入式系统的发展,同时也提出了越来约高的要求。为应对高性能、低功耗的市场要求,嵌入式系统已由过去的低端逐步的走向高端,很多的嵌入式系统里已经加入了高端的器件,这些器件无疑是为了提高系统性能,如Intel的pxa27x系列就加入了sram作为辅助存储器,它是低功耗、高速度的器件。系统中有了高端的器件而没有很好的应用就不会最大限度的发挥端器件的作用。通常,在嵌入式系统中sram被用作节能器件,对它的读写是低功耗操作所以在一定的程度上是起到了的降低功耗的作用,这方面的应用如sram作为视频帧缓冲,视频数据的读写操作都在sram中进行,所以较之在sdram中就在能耗上有了大的降低。同时,sdram的操作速度较慢,现在已经成为了CPU利用的一个瓶颈。在sram的应用目前很多在探索阶段,许多想法很好但不能实现或不实用,这是有很多方面原因的,如sram目前在嵌入式的空间数量比sdram还少的太多,空间限制过大。比如有个想法,就是把代码都放到sram中运行,但显然是不合适的,因为sram太小了,很多程序在空间尺寸上遇到瓶颈。sram空间有限性在一定程度上限制了它的应用范围,但是它的空间大小在做局部变量支持方面可以尽现其才,目前,在嵌入式系统内有已有较多的sram,这样的空间长度已经足够作为程序局部变量支持了。用C语言所也成的程序基本上有函数所构成,函数中的变量即为局部变量,所以在一个应用程序中对局部变量的操作是占大部分的,应此在局部变量上的性能优化和功耗优化是对整个程序性能优化和功耗优化的主要部分。
技术实现思路
本专利技术的目的在于提供一种。本专利技术解决其技术问题采用的技术方案如下1)程序编译时堆栈分离在嵌入式系统中,静态随机存储器sram,Static Random Access Memory,采用静态存储操作,无需刷新周期,所以速度快,功耗小。同步动态血随机存储器sdram,Synchronous dynamic Random Access Memory,一种以电荷形式进行存储的半导体存储器,有刷新周期,速度较sram慢,功耗高。编译器编译代码,将堆和代码在sdram中编址,栈在sram中编址;2)sram堆栈分配在程序载入时,动态地设置堆栈寄存器;多任务运行时,在sram中实现多个栈,其方法是固定地给每个任务分配20k字节空间,这样的大小已足够嵌入式程序使用;3)sram堆栈管理在sdram中,定义一个数据结构,专门管理栈空间;当有新任务载入运行时,将使用掉的sram空间标记出来,以保证不被再次使用;在一个程序退出时,将已标记为使用的标记擦除,以表示改空间可用。本专利技术是一种全新的嵌入式系统局部变量支持方法,不再采用嵌入式系统中传统的在sdram中进行局部变量支持的方法,而是在高端的嵌入式sram存储器件里实现程序局部变量的的支持。sram在功耗上和运行速度上都比sdram有很大的优势。由于在嵌入式系统中,由C/C++语言实现的程序由大量函数构成,所以局部变量的运算在整个程序的运行上占有很大比重,对局部变量操作的优化是整个程序运行效率的提高和功耗的降低非常关键的一步。本专利技术与
技术介绍
相比,具有的有益的效果是(1)运行速度提高。sram在读写速度上是sdram的两倍,采用sram作为局部变量支持较传统的sdram中实现局部变量支持的程序运行速度提高了20%。(2)运行功耗降低。sram在激活状态下的电流强度是sdram在激活状态下电流强度的25倍,sram中的局部变量运行功耗下降40%。附图说明附图是本专利技术实现方法流程图。具体实施例方式具体步骤如下。1)程序编译时堆栈分离在附图中,在程序进行编译时,编译时局部变量分离,局部变量地址编入sram地址,全局变量编入sdram地址,然后对程序代码进行编译,形成程序的二进制代码。在附图中,启动装载器BootLoader在程序开始处嵌入代码检查sdram的空间使用情况,若没有找到空闲空间,则程序的装入延迟,等待sdram有足够的空间。如果找到了足够的空间,则将程序装入到sdram中,设置好程序计数寄存器;并将程序前端嵌入预处理代码装载到sdram中。2)sram堆栈分配Sram跟踪块是针对sram的使用情况定义,在sdram最高地址处定义一段二字节空间,该空间的每位的0、1状态代表sram从低到高每隔20K字节的区域的有无使用的状态。1代表该对应空间为已用空间,不得再被占用,0代码对应空间为空闲空间,可以被占用。在图1中,程序检测sram跟踪块定义的二字节空间,从低位到高位找到0状态位,则说明找到了20k空闲空间,标记该位,使状态位为1,使其他程序不能再占用,以免引起覆盖和冲突。如果没有找到空间,堆栈按照传统方式放在sdram中进行。如果找到了空间,根据该位的偏移位置,即从最低位到该位的偏移位数,在程序开始处动态设置堆栈寄存器,使得堆栈寄存器能够指向该占用空间的底端,使与状态位对应到的sram中的未被使用空间成为该程序的栈空间。所以该程序在运行时可以将局部变量在该空闲空间中增长或削减,这样就可以程序的具体变量操作就会在sram中进行。由于程序的局部变量操作从sdram中移入到了sram中,所以运行速度提高,运行功耗降低。3)sram堆栈管理多任务系统需要在内存内同时运行多个程序,且各个程序能够安全地互不干扰地执行,这样就要求有多个堆栈对于多个程序,所以要在sram中实现多个栈,这就要求保证不能覆盖和冲突。要保证不同程序的堆栈在自己所属地堆栈空间生长而不跨界到别的空间,其方法是固定地给每个任务分配20k字节空间,这样的堆栈大小已足够嵌入式程序使用。在sdram中,定义一个数据结构,在这个数据结构是全局的,生命周期覆盖整个嵌入式系统运行始终,里面积累有sram使用状况和每个程序所以空间的对于空间地址及堆栈寄存器对应的每个程序的当前堆栈位置,专门管理堆栈空间,当有新任务载入运行时,将使用掉的sram空间标记出来,以保证不被再次使用;在一个程序运行结束时,在程序的尾部嵌入代码设置数据结构状态,清零该程序使用的栈空间所对应的状态位,从而使之释放,成为可利用空间。本文档来自技高网
...

【技术保护点】
一种嵌入式系统中基于sram的局部变量支持方法,其特征在于:1)程序编译时堆栈分离在嵌入式系统中,静态随机存储器sram,StaticRandomAccessMemory,采用静态存储操作,无需刷新周期,所以速度 快,功耗小。同步动态血随机存储器sdram,SynchronousdynamicRandomAccessMemory,一种以电荷形式进行存储的半导体存储器,有刷新周期,速度较sram慢,功耗高。编译器编译代码,将堆和代码在s dram中编址,栈在sram中编址;2)sram堆栈分配在程序载入时,动态地设置堆栈寄存器;多任务运行时,在sram中实现多个栈,其方法是固定地给每个任务分配20k字节空间,这样的大小已足够嵌入式程序使用;3 )sram堆栈管理在sdram中,定义一个数据结构,专门管理栈空间;当有新任务载入运行时,将使用掉的sram空间标记出来,以保证不被再次使用;在一个程序退出时,将已标记为使用的标记擦除,以表示改空间可用。

【技术特征摘要】
1.一种嵌入式系统中基于sram的局部变量支持方法,其特征在于1)程序编译时堆栈分离在嵌入式系统中,静态随机存储器sram,Static Random Access Memory,采用静态存储操作,无需刷新周期,所以速度快,功耗小。同步动态血随机存储器sdram,Synchronous dynamic Random Access Memory,一种以电荷形式进行存储的半导体存储器,有刷新周期,速度较sram慢,功耗高。编译器编译...

【专利技术属性】
技术研发人员:陈天洲胡威沙峰谢斌
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

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

1
相关领域技术
  • 暂无相关专利