CN1828538A - 嵌入式系统中直接从文件系统运行程序的实现方法 - Google Patents

嵌入式系统中直接从文件系统运行程序的实现方法 Download PDF

Info

Publication number
CN1828538A
CN1828538A CN 200610050121 CN200610050121A CN1828538A CN 1828538 A CN1828538 A CN 1828538A CN 200610050121 CN200610050121 CN 200610050121 CN 200610050121 A CN200610050121 A CN 200610050121A CN 1828538 A CN1828538 A CN 1828538A
Authority
CN
China
Prior art keywords
kernel
embedded
file system
file
mapping
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200610050121
Other languages
English (en)
Other versions
CN100377086C (zh
Inventor
陈天洲
胡威
沙峰
连毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CNB2006100501212A priority Critical patent/CN100377086C/zh
Publication of CN1828538A publication Critical patent/CN1828538A/zh
Application granted granted Critical
Publication of CN100377086C publication Critical patent/CN100377086C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

本发明公开了一种嵌入式系统中直接从文件系统运行程序的实现方法。在嵌入式系统启动操作系统或者是启动应用程序时,直接在固件中执行,而不必要拷贝一份到内存,从而节省启动时间,减少消耗的内存空间,同时还能够减少系统的能耗。本发明的方法可以显著加快嵌入式系统程序,包括操作系统和应用程序的启动速度,使得嵌入式系统中程序速度显著提升,提高系统的响应速度。

Description

嵌入式系统中直接从文件系统运行程序的实现方法
技术领域
本发明涉及嵌入式系统启动优化技术领域,特别是涉及一种嵌入式系统中直接从文件系统运行程序的实现方法。
背景技术
嵌入式系统应定义为:”嵌入到对象体系中的专用计算机系统”。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各个行业的具体应用相结合后的产物,这一点就决定了他必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式计算机的外部设备中就包含了多个嵌入式微处理器,如键盘、硬盘、显示器、网卡、声卡等均是由嵌入式处理器控制的。现在,嵌入式系统带来的工业年产值已超过了1万亿美元,嵌入式计算机不仅在民品上而且在军事装备上也得到了广泛地应用。
嵌入式系统因其产品的特殊性有其很多的设计需要和特点。嵌入式要求具有实时性。作为应用型产品,嵌入式系统必须要把服务请求放在首位,尽快的对用户请求作出响应。同时,完善的电源管理设计也是系统设计的重要方面。快速引导系统,嵌入式系统要求在几秒钟内引导图形系统和交互界面。嵌入式系统要尽可能少的占用存储器。另外,高可靠性能,安全性能,DSP集成设计等都是嵌入式系统的特点。
直接从文件系统运行程序的硬件基础是FLASH存储器。Flash Memory内部构架和实现技术可以分为AND、NAND、NOR和DiNOR等几种,但目前以NAND和NOR为主流。NOR技术是由Intel公司1988年首先推出,NAND技术是由东芝公司1989年发明。NAND技术在设计之初是为了数据存储应用,NOR则是为了满足程序代码的高速访问,并且支持程序在芯片内部运行。目前关于两种技术的发展前景讨论很激烈,各种观点很多。客观来看,二者各有优势和不足。NOR工作电压低、随机读取快、功耗低、稳定性高;而NAND则写回速度快、芯片面积小,特别是容量大有很大优势。
页是NAND中的基本存贮单元,一页一般为512个字节,多个页面组成块。不同存储器内的块内页面数不尽相同,通常以16页或者32页比较常见。块容量计算公式比较简单,就是页面容量与块内页面数的乘积。根据Flash Memory容量大小,不同存储器中的块、页大小可能不同,块内页面数也不同。例如:8MB存储器,页大小常为512B、块大小为8KB,块内页面数为16。而2MB的存储器的页大小为256B、块大小为4KB,块内页面数也是16。NAND存储器由多个块串行排列组成。实际上,NAND型的Flash Memory可认为是顺序读取的设备,它仅用8比特的I/O端口就可以存取按页为单位的数据。NAND在读和擦写文件、特别是连续的大文件时,速度相当快,但随机存取速度则比较慢,因为它不能按字节写。NAND型存储器的价格如今已经不算昂贵,512MB芯片单价在最近是4.39美元,且仍呈下降趋势。NAND Flash设备易有坏块,为了补偿可能存在的坏块,通常在设计、生产时在规定的存储容量外另附加约2%大小的额外存储空间。NAND Flash用一个控制器管理坏块,当出现坏块控制器将数据转移到预定空闲存储区间,该过程对用户是透明的。
NOR的存储构架与PC机中的内存条技术类似,是一种并行的构架。由于单个芯片的存储容量提高困难,整个NOR芯片的存储容量较同时期的NAND小。过去NOR多采用单层存储单元排列,如今Intel公司采用多层存储单元(multi-level cell)排列技术,以此提高单位面积存储器的容量。另外Intel还计划采用提高芯片集成度的方法来提高NOR类型存储器的容量。NOR中多个存储单元是并行连接起来,可以允许特别快的实现随机字节访问。通常NAND在容量上占优势,NOR适合在容量要求小、但随机字节读写快的应用领域。
由于NOR和NAND在存储单元组织上的差异,二者的寻址方式差异较大。NAND的地址分为三部分:块号、块内页号、页内字节号。一次数据访问,NAND一般是经过三次寻址,先后确定块号、块内页号和页内字节号,至少占用三个时钟周期,因此随机字节读写速度慢。而NOR的地址线足够多,且存储单元是并列排布,可以实现一次性的直接寻址。另外,由于NOR的数据线宽度很大,即使容量增大,它的数据寻址时间基本上是一个常量,而NAND则比较困难。总之在数据传输速度上,NOR无论是在随机读取还是连续传输速度上都比NAND快,但相对而言,在连续大数据传输速度上,二者差异较小。从产品成本来看,NOR Flash的平均每MB成本是NAND Flash成本的三到四倍。成本价格的巨大差异,导致NOR容量增长比NAND困难。NOR Flash适用代码高速访问与执行,因此移动电话是NOR最常见的应用环境。嵌入式系统是面向用户,面向产品,面向应用的。如果没有既定目标和应用前景,则失去了其应用价值。所以,一个嵌入式系统对成本相当敏感,其软、硬件设计都必须高效。好的嵌入式系统是完成目标功能的最小系统。嵌入式处理器的功耗,体积,成本,可靠性,速度处理能力,电磁兼容性等方面都受到应用要求的制约。这些也是芯片厂商之间竞争的热点。嵌入式处理器针对用户的具体要求,对芯片配置进行裁减和添加,才能达到理想的性能。
嵌入式系统通常都要求有一定的实时性保障,为了提高执行速度和系统性能,嵌入式系统中的软件一般都固化在存储芯片或者处理器的内部存储器件当中,而不是存贮在磁盘等外部载体中。由于嵌入式系统的运算速度和存储容量存在一定程度上的限制,而且大部分系统都必须有较高的实时性保证,因此对软件质量(特别是可靠性方面)有着较高的要求。
嵌入式系统中的硬件资源环境一般比较苛刻,嵌入式微处理器和微控制器的内存一般都不大,要在如此紧张的资源下完成复杂的功能,这就要求嵌入式系统软件必须尽量的小巧、稳定和高效。在此情况下,作为移动嵌入式设备用户,往往要求较高的程序,包括了操作系统和应用程序,具有很短的响应时间,因此,要尽量缩短程序的启动时间,以达到用户的要求,并且启动时间已经成为影响用户对产品选择的重要因素。
发明内容
本发明的目的在于提供一种嵌入式系统中直接从文件系统运行程序的实现方法。
本发明解决其技术问题采用的技术方案如下:
1)操作系统内核参数修改
①提取并合并嵌入式操作系统内核的只读段;
②提取并合并嵌入式操作系统内核的读写段;
③修改页表映射,为内核建立页表;
④定制启动引导程序;
2)文件系统映射
①嵌入式操作系统内核地址空间与文件系统地址映射;
②应用程序地址空间与文件系统地址映射;
3)程序启动
①启动嵌入式操作系统;
②系统初始化;
③直接从文件系统读取内核启动;
④确定需要启动的应用程序;
⑤在文件系统找到对应的地址映射;
⑥读取应用程序代码执行。
本发明与背景技术相比,具有的有益的效果是:
本发明是一种嵌入式系统中直接从文件系统运行程序的实现方法,其主要功能是在嵌入式系统启动操作系统或者是启动应用程序时,直接在固件中执行,而不必要拷贝一份到内存,从而节省启动时间,减少消耗的内存空间,同时还能够减少系统的能耗。本发明的方法可以显著加快嵌入式系统程序,包括操作系统和应用程序的启动速度,使得嵌入式系统中程序速度显著提升,提高系统的响应速度。
(1)低能耗。本方法充分利用了现有嵌入式系统中,用于文件系统存储的Flash存储器能耗比动态随机存储器少的特点,避免了完全使用动态随机存储器的弱点,减少了能耗。
(2)启动时间加快。在嵌入式系统启动程序时,从文件系统直接进行启动,减少了从文件系统向内存搬运的过程,从而加速了操作系统和应用程序的启动速度,减少程序的响应时间。
附图说明
图1是本发明过程的示意图;
图2是本发明与原有方法的比较示意图,左图为原有方法,右图为直接运行方法。
具体实施方式
下面结合附图对本发明作进一步的说明。
一种嵌入式系统中直接从文件系统运行程序的实现方法,图1是本发明实施过程的整体示意图,其具体实施方法如下:
1)操作系统内核参数修改
①嵌入式操作系统的内核分成很多逻辑的段。有些段是可运行代码,或者是符号表,或者一些只读数据等等,这些段在内核运行过程中为只读的,即不做修改。把这些段提取出来,合并在一起,成为只读段。
②有些段是运行过程中可能用到的数据,或者是其他一些状态信息等等,这些段在内核运行过程中是可读写的,即可能会做修改。把这些段提取出来,合并在一起,成为读写段。
③修改页表映射,在链接文件中,确定只读部分在Flash文件系统中的起始位置,为内核建立页表。
内核创建自己的页表的过程分为两个部分。实际上,内核映像刚刚被装入内存后,CPU仍然处于实模式,所以分页功能没有启动。第一个阶段,内核仅创建足以把自己装入到内存中的地址空间,第二个阶段,内核充分利用剩余的内存并适当地建立分页页表。
④对引导程序进行定制,包括:传递内核参数,确定根设备,把读写部分拷贝到内存确定地址,生成合适的全局描述苻段和临时堆栈,设置中断,从而跳转到内核地址。
2)文件系统映射
①嵌入式操作系统内核地址空间与文件系统地址映射,内核必须创建一个映射把用户线性空间地起始部分和内核线性地起始部分都映射到内核驻留的物理地址。把内核的一部分驻留在Flash文件系统中,那么就要修改页表映射,让内核在初始化和以后的运行中都可见。定义变量分别表示内核在Flash中的起始地址和内核数据段起始地址。并映射只读内核和读写内核部分。然后同时映射到线性0x00000000和内核空间起始地址。
②应用程序地址空间与文件系统地址映射,按线性组织,同一个文件内容连续存放,保证物理地址的连续性。在存储过程中,注意地址的对齐,可以以4K为单位对齐。然后把再把文件逻辑上分页,比如分成以4K为单位的连续的页。比如一个8K的文件,可以分成连续的两页,而9K的文件则分成两个完整的页和一个只占用1K数据的页,文件总共要占有3页。这样,进程加载时候,只需要直接映射到Flash上的页就可以了,省去了加载文件到内存的过程。
3)程序启动
①启动嵌入式操作系统,在内核运行之前需要系统引导程序完成加载内核和一些辅助性的工作,然后跳转到内核代码的起始地址并执行。
②系统初始化,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。
③引导程序直接从文件系统读取内核,初始化段寄存器,为初始进程建立内核态堆栈,用空中断程序填充IDT,把系统参数和传递个操作系统的参数放入第一个保留页中,识别处理器模式,用GDT和IDT的地址来填充gdtr和idrt寄存器。开始加载驱动并且初始化用户环境。
④确定需要启动的应用程序。
⑤通过在文件系统找到对应的地址映射。
⑥当一个进程启动时,内核进程加载器把这些进程的页直接映射到Flash上的文件系统。这样,免去了程序的加载过程,加快了程序的启动过程读取应用程序代码执行。
如下表所示,是存储器的性能对照:
  Memory   Idle(mA)   Active(mA)   Read(16bit)   Write(16bit)   Erase(16bit)
  Mobile SDRAM   0.5   75   90ns   90ns   N/A
  Low Power SRAM   0.005   3   55ns   55ns   N/A
  Fash SRAM   5   65   10ns   10ns   N/A
  NOR Flash   0.03   32   200ns   210.5us   1.2sec
  NAND Flash   0.01   10   10.1us   200.5us   2ms
在图2中,通过应用本方法,驻留在Flash的文件系统中的程序能够直接被执行,而不用先通过操作系统将其加载到内存。减少了系统运行应用程序的整体内存需求,因而使系统能够同时运行更多的程序。内核完全的控制运行,所以应用程序的编写者不用刻意的为实现该方法而准备什么,程序员不必也不能感知它的存在。

Claims (1)

1.一种嵌入式系统中直接从文件系统运行程序的实现方法,其特征在于:
1)操作系统内核参数修改
①提取并合并嵌入式操作系统内核的只读段;
②提取并合并嵌入式操作系统内核的读写段;
③修改页表映射,为内核建立页表;
④定制启动引导程序;
2)文件系统映射
①嵌入式操作系统内核地址空间与文件系统地址映射;
②应用程序地址空间与文件系统地址映射;
3)程序启动
①启动嵌入式操作系统;
②系统初始化;
③直接从文件系统读取内核启动;
④确定需要启动的应用程序;
⑤在文件系统找到对应的地址映射;
⑥读取应用程序代码执行。
CNB2006100501212A 2006-03-31 2006-03-31 嵌入式系统中直接从文件系统运行程序的实现方法 Expired - Fee Related CN100377086C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100501212A CN100377086C (zh) 2006-03-31 2006-03-31 嵌入式系统中直接从文件系统运行程序的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100501212A CN100377086C (zh) 2006-03-31 2006-03-31 嵌入式系统中直接从文件系统运行程序的实现方法

Publications (2)

Publication Number Publication Date
CN1828538A true CN1828538A (zh) 2006-09-06
CN100377086C CN100377086C (zh) 2008-03-26

Family

ID=36946949

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100501212A Expired - Fee Related CN100377086C (zh) 2006-03-31 2006-03-31 嵌入式系统中直接从文件系统运行程序的实现方法

Country Status (1)

Country Link
CN (1) CN100377086C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442228C (zh) * 2006-11-17 2008-12-10 迈普(四川)通信技术有限公司 嵌入式设备引导方法
CN101320331B (zh) * 2007-06-07 2010-06-23 新唐科技股份有限公司 一种加快游戏机rom读取速度的方法及装置
CN101923515A (zh) * 2010-09-07 2010-12-22 上海市共进通信技术有限公司 在嵌入式系统应用设备的闪存中运行Web页面的方法
CN102289380A (zh) * 2010-06-21 2011-12-21 上海中标软件有限公司 firefox启动加速方法
CN101582029B (zh) * 2009-06-05 2013-07-03 中兴通讯股份有限公司 一种实现嵌入式应用的系统和方法
CN101710297B (zh) * 2009-12-17 2015-05-06 北京中星微电子有限公司 一种运行应用程序的方法及控制器
CN106325822A (zh) * 2016-08-25 2017-01-11 江苏绿扬电子仪器集团有限公司 提升dsp运算性能的方法
CN112000382A (zh) * 2020-08-26 2020-11-27 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052778A (en) * 1997-01-13 2000-04-18 International Business Machines Corporation Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs
KR100469669B1 (ko) * 2002-09-24 2005-02-02 삼성전자주식회사 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법
CN1184563C (zh) * 2003-06-06 2005-01-12 上海北大方正科技电脑系统有限公司 电子书或掌上电脑的操作系统启动方法
JP2005196286A (ja) * 2003-12-26 2005-07-21 Okuma Corp リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100442228C (zh) * 2006-11-17 2008-12-10 迈普(四川)通信技术有限公司 嵌入式设备引导方法
CN101320331B (zh) * 2007-06-07 2010-06-23 新唐科技股份有限公司 一种加快游戏机rom读取速度的方法及装置
CN101582029B (zh) * 2009-06-05 2013-07-03 中兴通讯股份有限公司 一种实现嵌入式应用的系统和方法
CN101710297B (zh) * 2009-12-17 2015-05-06 北京中星微电子有限公司 一种运行应用程序的方法及控制器
CN102289380A (zh) * 2010-06-21 2011-12-21 上海中标软件有限公司 firefox启动加速方法
CN102289380B (zh) * 2010-06-21 2014-02-26 中标软件有限公司 firefox启动加速方法
CN101923515A (zh) * 2010-09-07 2010-12-22 上海市共进通信技术有限公司 在嵌入式系统应用设备的闪存中运行Web页面的方法
CN101923515B (zh) * 2010-09-07 2012-07-04 上海市共进通信技术有限公司 在嵌入式系统应用设备的闪存中运行Web页面的方法
CN106325822A (zh) * 2016-08-25 2017-01-11 江苏绿扬电子仪器集团有限公司 提升dsp运算性能的方法
CN112000382A (zh) * 2020-08-26 2020-11-27 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质
CN112000382B (zh) * 2020-08-26 2023-10-13 绿盟科技集团股份有限公司 一种Linux系统启动方法、装置及可读存储介质

Also Published As

Publication number Publication date
CN100377086C (zh) 2008-03-26

Similar Documents

Publication Publication Date Title
CN1828538A (zh) 嵌入式系统中直接从文件系统运行程序的实现方法
CN111506262B (zh) 一种存储系统、文件存储和读取方法及终端设备
TWI614752B (zh) 經由記憶體通道關閉之節電技術
KR101311116B1 (ko) 비-휘발성 메모리를 구비한 시스템에 대한 전력 예산의 동적 할당
US20190042571A1 (en) Update-Insert for Key-Value Storage Interface
WO2019040320A1 (en) LOGICAL MAPPING TO PHYSICS
US7979648B2 (en) Dynamic interleaving
CN104346290A (zh) 存储装置、计算机系统及其操作方法
CN104461397A (zh) 一种固态硬盘及其读写方法
CN102890620A (zh) 非易失性临时数据处理
JP6276470B2 (ja) ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法
US10657068B2 (en) Techniques for an all persistent memory file system
CN111459844A (zh) 数据储存装置及用于存取逻辑至物理地址映射表的方法
CN101777061A (zh) 一种java卡对象管理方法及java卡
CN113419975B (zh) 存储器的控制系统及地址映射方法和地址映射装置
US20210157718A1 (en) Reduction of page migration between different types of memory
CN115756312A (zh) 数据访问系统、数据访问方法和存储介质
CN101661431B (zh) 用于快闪存储器的区块管理方法、快闪储存系统及控制器
CN102486751A (zh) 一种在微内存系统上实现小页nandflash虚拟大页的方法
US11526441B2 (en) Hybrid memory systems with cache management
KR20130079706A (ko) 휘발성 메모리를 포함하는 저장 장치의 구동 방법
KR100809293B1 (ko) 가상 머신에서 스택을 관리하는 장치 및 그 방법
US20140281122A1 (en) Multi-level table deltas
CN103258044A (zh) 一种面向dsp的二元组nandflash数据文件管理方法
WO2013095998A1 (en) Systems and methods for managing parallel access to multiple storage systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080326

Termination date: 20120331