浅析嵌入式存储系统设计方法

发布者:MindfulYogi最新更新时间:2010-02-09 关键字:嵌入式  存储 手机看文章 扫描二维码
随时随地手机看文章

嵌入式存储系统由嵌入式硬件和固化在硬件平台中的嵌入式存储系统软件组成。传统的小规模嵌入式存储系统,软件多采用前后台的方法,通常应用于实时性要求不高的简单场合;对于复杂的应用场合,较为普遍的做法是给系统配上嵌入式存储系统实时操作系统(RTOS),这样不仅能够使系统具有良好的实时性能,降低软件编制的工作量,还可以提高整个系统的稳定性。此外,为了简化用户程序,系统通常要提供一些必要的库函数供用户调用。同前后台系统相比,这种实时嵌入式系统增加了系统存储空间的开销。Intel 8051系列及各种兼容的单片机因其极高的性价比、丰富的库函数和长期的技术积累等背景而被广泛应用于各种嵌入式领域中。受传统单片机寻址空间的限制,嵌入式应用中经常需要进行存储空间扩展。本文借鉴传统计算机系统设计中的虚拟存储技术,以8051单片机为例提出一种采用页面分组和虚拟接口技术扩展存储空间的方法。本方法与Keil C编译器具有良好的兼容性。

2 存储系统的组织

2.1 虚拟存储系统

计算机系统中常采用虚拟存储技术来扩展存储系统容量,页式虚拟存储器是常用的一种组织方法。在这种方法下,整个虚拟地址空间和主存空间均被分成容量相等的若干页,地址变换机构(通常是一个快速地址变换表)建立了虚拟空间到主存空间虚页到实页的映射。页式存储器组织关系如图1。

虚拟存储系统利用计算机CPU中的一组寄存器堆作为页表基址寄存器,如图1(b)所示,它与页表一起给出用户程序地址。实际计算机系统的页式虚拟存储要比这复杂得多,还需考虑未命中时的外部地址变换以及页面替换算法,然而在嵌入式存储系统中这些都可以简化乃至省去。

2.2 单片机嵌入式存储系统程序存储区扩展

受虚拟存储系统启发,我们把上述方法作了一些修改以应用于嵌入式存储系统中。由于系统设计选用的外部程序存储器容量为256k,而一般单片机(如 8051系列)的寻址空间为64k,为简单起见,以64k为一页,将256k虚拟地址分为4页映射到单片机的64k空间。嵌入式存储系统中地址变换机构可被简化:单片机没有专用的页表基址寄存器,可以通过额外的端口线(如P1.0,P1.1,P1.2等)作为基址指定不同的页面,页表查询可用一个跳转表实现。然而页面切换前后必须保证能够正确访问到跳转表,因此所有64k页面都需要有一个完全相同的代码段用来存放跳转表和中断矢量等公共资源。

为提高存储器利用率可采用图2所示的结构,其中公共段中存放了高32k段之间相互调用所需要


的跳转表。各段相互调用之前应先跳转到公共段,执行页面切换后再跳转到被调用程序的入口,这就实现了18位虚拟地址到16位主存地址的变换。不妨以P1.0,P1.1,P1.2作为页面基址来指定不同的页,相应的跳转表程序结构如下:

ADDR:CLR EA ;关中断

SETB/CLR P1.0 ;切换页面

SETB/CLR P1.1

SETB/CLR P1.2

SETB EA ;开中断

JMP REAL_ADDR ;跳转 [page]

在公共段(256k存储芯片的低32k)中存放操作系统和提供给用户的其他库函数,其他各段用来存放嵌入式存储系统的用户程序。采用图2结构的单片机与存储器接口原理图如图3所示。其中A0~A15地址线接法与普通存储器扩展方法相同。


以上考虑了复位时页面应切换到公共代码区。

Keil C51编译器是单片机开发应用中非常流行的一种高效编译器,它支持上述页面分组技术。

2.3 单片机嵌入式存储系统数据存储区扩展

嵌入式存储系统中引入操作系统需要增加一定的数据存储器开销,必要时仍可以采用分页技术扩展数据存储区容量。

引入操作系统以后,数据区有两种组织方法,比较简单的一种方法是操作系统与用户程序共用一个数据区,编译器将整个程序一起编译,不必区分是系统程序还是用户程序。但这样对用户来说操作系统变得不透明了,而且不良的用户程序可能会破坏系统的数据区,导致整个系统崩溃。

相对应的另一种方法是给操作系统与用户程序分别分配独立的数据区,譬如将128k 数据存储器给操作系统和用户程序各分配64k。不幸地是,当操作系统与用户程序一起编译时,编译器会自动给它们分配不同的地址,这样即使存储器物理上是分开的,操作系统与用户程序的数据区还是无法地址复用,这极大地浪费了地址空间;而且对传统的单片机, Keil C 编译器最大只支持64k数据区,幸运地是,这个矛盾可以通过采用虚拟接口的方法加以解决。

为此,将公共代码段中的程序单独编译,并且在链接、定位目标代码时,给操作系统和公共库函数的每个函数在0x0000~0x7FFFH内分别指定一个固定的首地址。鉴于用户程序可能调用这些函数,需要为这些函数分别编写一个相同类型的同名伪函数,每个伪函数仅包含一条到真实函数(入口地址已知)的转移指令,所有这些函数都存放在一个被称为虚拟接口的头文件中。虚拟接口文件与用户程序一起编译,完成用户程序与操作系统两次编译的接口。显然这种方法仅占用了用户区的极少量代码空间,而丝毫没有浪费用户数据区,同时又实现了地址复用。

公共代码段和操作系统的数据区特殊的对应关系(见图4),很容易通过P2端口线来指定。由单片机外部程序区访问时序(图 5)可知,PSEN的上升沿后数据总线A0~A7上开始出现指令或指令操作数,此时的地址线A15指示当前访问的是公共代码段(对应数据区高64k)还是其他程序段(对应数据区低64k),因此在PSEN上升沿锁存地址线A15,用它可以选择不同的数据存储器空间。

3 存储系统的性能分析

本文基于虚拟存储系统思想实现了嵌入式存储系统中大容量存储器的扩展。不难看出系统的扩展余地受端口线的限制。由于在同一块芯片中构造图2所示的结构,需要多使用一根端口线,因此对于8051系列使用整个P1口可以将系统的程序虚拟空间扩展至8M字节。数据存储区扩展的最大容量还与程序在编译时所被分成块的数目有关,最大可达16M字节,这在单片机嵌入式存储系统中已经是足够大了。

程序在调用不同页面的函数时需要额外的软件切换周期,频繁的页面切换会降低系统的性能,因此编译时应仔细选择函数,尽可能将相关的函数分配在同一页中。

数据存储区切换是由硬件实现的,页面切换并不降低系统性能。由于操作系统与用户程序数据区相互独立,对用户来说整个64k空间都是可用的,这就增加了操作系统的透明性。

4结论

嵌入式存储系统由于它的专用性和特殊性,系统的软硬件设计都与传统的计算机系统设计方法有所不同。但进行嵌入式系统设计时仍然很有必要借鉴传统计算机系统体系结构成熟的设计方法,“量体裁衣”为我所用。作者在进行嵌入式存储系统平台设计时借鉴了传统计算机虚拟存储思想来扩展存储系统,并在实际项目中得以应用,证明这种方法是非常有效的。

关键字:嵌入式  存储 引用地址:浅析嵌入式存储系统设计方法

上一篇:浅析嵌入式存储系统设计方法
下一篇:SanDisk推出64GB iNAND嵌入式闪存驱动器

推荐阅读最新更新时间:2024-05-02 21:00

中国嵌入式产业:要走自己的路
导语: 在日前举办的第11届高交会上,昭营科技展示了09年重磅推出的Vortex86DX(800MHz)系列产品和仅手掌大小的低功耗及超环保节能型电脑。昭营科技自主创新的技术和卓越的性能吸引了众多专业观众和用户参观。在展会现场,本站记者采访了昭营科技高阶主管邱英祯先生,畅谈嵌入式工业电脑的创新理念、现状及发展趋势。(文中简称邱工) 昭营科技高阶主管邱英祯先生    以功会友促进节能降耗   ——推动整个产业的发展   NetBook,是目前全球首款低功耗、性能卓越的小笔电。该电脑的功耗仅10W,是常规电脑功耗的几十分之一,采用DMP的最新处理器Vortex86MX SoC芯片,集成全套XP操作系统于SD卡内,可以当
[嵌入式]
中国<font color='red'>嵌入式</font>产业:要走自己的路
Microchip推出集成SPI接口的非易失性数字电位器
全新7位及8位器件可应用于更广泛的工业温度范围 全球领先的单片机和模拟半导体供应商——Microchip Technology Inc.(美国微芯科技公司)宣布推出 MCP4141/2及MCP4241/2 (MCP41XX/42XX) 非易失性数字电位器。全新7位及8位器件集成了串行外设接口 (SPI),适用于零下40至125摄氏度更广泛的工业温度范围。此外,新器件还备有多种符合工业标准的封装,包括深受欢迎的 3 x 3毫米DFN封装。 与机械式电位器相比,MCP41XX/42XX 器件的不同之处在于它可通过SPI接口实现数字控制,有助于提高系统的精度、灵活性及生产能力,并降低制造成本。器件内的非易失性存储器还可使器件在掉电期
[新品]
嵌入式 arm平台kernel启动第一阶段汇编head.s分析
arm_linux内核生成过程: 1. 依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试信息、符号表的最初的内核,大小约23MB; 命令:arm-linux-gnu-ld -o vmlinux -T arch/arm/kernel/vmlinux.lds arch/arm/kernel/head.o init/built-in.o --start-group arch/arm/mach-s3c2410/built-in.o kernel/built-in.o mm/built-in.o fs/built-in
[单片机]
<font color='red'>嵌入式</font> arm平台kernel启动第一阶段汇编head.s分析
风河被VDC评为最领先嵌入式Linux厂商
      Intel公司旗下全资子公司风河系统公司(Wind River)日前宣布,风河公司被VDC Research Group评为嵌入式Linux市场最领先厂商。根据VDC日前最新发布的《2009年 嵌入式系统 市场Linux产品》研究报告,风河在2008年里取得了占整个市场收入30%以上的市场份额,领先于紧随其后的竞争者多达7个百分点。风河公司在2004年正式进军Linux业务,与其占据市场领导地位的专有操作系统——VxWorks形成了强有力的互补与加强格局。        风河公司副总裁、Linux产品事业部总经理Vincent Rerolle表示:“四年多来,风河公司的Linux业务从仅仅一个概念化部门发展到占据市
[嵌入式]
“安捷伦电子测量仪器展”重装上阵
  安捷伦科技日前宣布将于2008年在全国近20个城市举办“安捷伦电子测量仪器展暨专题研讨会”。宝鸡、阎良作为此次研讨会的首站,分别于1月16日和1月18日正式拉开帷幕,接下来会在重庆、绵阳、广州、长沙、武汉、苏州、杭州等城市举行。此外,活动还将针对不同领域的测试应用需求,举办多场技术讲座。   与以往不同,2008年的“安捷伦电子测量仪器展暨专题研讨会”主要是面向航空航天和国防领域从事雷达、电子战、数字信号处理、数字电路调试及自动化测试系统等产品研发和生产的广大工程技术人员的。研讨会主要议题包括:雷达与通信系统中复杂信号的产生解决方案、雷达与通信系统中复杂信号的分析解决方案、安捷伦高性能PNA-X微波网络仪及复杂器件测试、安捷
[测试测量]
USB3.0主机控制器在嵌入式媒体网关上的应用
一:嵌入式媒体网关的系统架构 嵌入式媒体网关通俗的来说就是一台嵌入式的计算机,其架构和我们平常了解的个人电脑的架构基本类似,只是在普通个人电脑的基础上简化了相关的输入输出设备,以降低整个系统的成本。大多数嵌入式媒体网关的系统框图如下: 从框图我们可以看出来,嵌入式CPU是整个系统的核心,嵌入式CPU本身带有各种各样的外部I/O接口。就上面的框图而言,SDRAM为系统软件的运行提供动态存储器空间、FLASH用来存储系统的固件代码、SATA和USB2.0接口用来连接外部存储装置、PCI Express接口用来给系统扩展其他的功能卡、以太网接口为系统提供网络连接功能。 通常来讲,嵌入式媒体网关运行Linux操作系统,通过网络来
[单片机]
USB3.0主机控制器在<font color='red'>嵌入式</font>媒体网关上的应用
基于FPGA与外部SRAM的大容量数据存储
1 引言   我们将针对FPGA中内部BlockRAM有限的缺点,提出了将FPGA与外部SRAM相结合来改进设计的方法,并给出了部分VHDL程序。   2 硬件设计   这里将主要讨论以Xilinx公司的FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)为主要器件来完成大容量数据存储的设计思路。   FPGA即现场可编程门阵列,其结构与传统的门阵列相似,大量的可编程逻辑块( CLB , Configurable Logic Block ) 在芯片中央按矩阵排列,芯片四周为可编程输入/输出块( IOB , Input / Output Block),CLB行列之间及CLB和IO
[嵌入式]
基于FPGA与外部SRAM的大容量数据<font color='red'>存储</font>
Rambus为汽车安全推出嵌入式硬件安全模块 可加快ADAS系统上市
半导体IP供应商Rambus近年来扩大了业务范围,开始为新型技术提供半导体芯片。据外媒报道,现在,Rambus推出了一款嵌入式硬件安全模块,该模块已经通过了ISO认证,适用于关键汽车安全系统。 Rambus的RT-640嵌入式HSM可以使ADAS系统更快地上市(图片来源:Rambus) 该模块被命名为RT-640嵌入式HSM,是一款根据ISO 26262:2018国际标准,获得汽车安全完整性等级B级(ASIL-B)认证的硬件信任根(Hardware Root of Trust)解决方案。该硬件可让汽车制造商符合功能安全要求,同时无需让其硬件重新获得符合ISO标准的认证。因此,在设计关键的高级驾驶辅助系统(ADAS)时,该
[汽车电子]
Rambus为汽车安全推出<font color='red'>嵌入式</font>硬件安全模块 可加快ADAS系统上市
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved