CN100573450C - 在具有与非闪速存储器的系统执行应用程序的方法和设备 - Google Patents

在具有与非闪速存储器的系统执行应用程序的方法和设备 Download PDF

Info

Publication number
CN100573450C
CN100573450C CNB2006100668600A CN200610066860A CN100573450C CN 100573450 C CN100573450 C CN 100573450C CN B2006100668600 A CNB2006100668600 A CN B2006100668600A CN 200610066860 A CN200610066860 A CN 200610066860A CN 100573450 C CN100573450 C CN 100573450C
Authority
CN
China
Prior art keywords
storage area
application program
data storage
memory
code
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.)
Expired - Fee Related
Application number
CNB2006100668600A
Other languages
English (en)
Other versions
CN1848086A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1848086A publication Critical patent/CN1848086A/zh
Application granted granted Critical
Publication of CN100573450C publication Critical patent/CN100573450C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46DMANUFACTURE OF BRUSHES
    • A46D1/00Bristles; Selection of materials for bristles
    • A46D1/006Antimicrobial, disinfectant bristles, handle, bristle-carrier or packaging
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46DMANUFACTURE OF BRUSHES
    • A46D1/00Bristles; Selection of materials for bristles
    • A46D1/02Bristles details
    • A46D1/0207Bristles characterised by the choice of material, e.g. metal
    • AHUMAN NECESSITIES
    • A46BRUSHWARE
    • A46BBRUSHES
    • A46B2200/00Brushes characterized by their functions, uses or applications
    • A46B2200/10For human or animal care
    • A46B2200/1066Toothbrush for cleaning the teeth or dentures

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

公开了一种用于执行应用程序的设备,该设备包括:包含数据存储器的只读存储器(ROM),该ROM用于在存储非可执行代码的存储区中存储应用程序代码;随机存取存储器(RAM),包括当应用程序被执行时所需的堆内存区;应用程序安装模块,用于当预定条件发生时,在数据存储区安装应用程序代码;和应用程序执行模块,用于将安装在数据存储区的应用程序代码加载到堆内存区中,并执行应用程序代码。

Description

在具有与非闪速存储器的系统执行应用程序的方法和设备
技术领域
本发明涉及一种用于在具有NAND(与非)闪速存储器的系统中执行应用程序的方法和设备。
背景技术
随着信息终端技术的近期发展,小型系统越来越多地使用闪速存储器作为小型固定存储器。闪速存储器是一种低功耗的、微型的、可以永久地储存数据的存储器,并且它分为NAND型存储器和NOR(或非)型存储器。NAND闪速存储器与NOR闪速存储器相比价格低,集成度高,但基本不支持运行时空间大小不变(XIP)功能。XIP功能能够使程序直接在闪速存储器内执行,而不是将程序加载到随机存取存储器(RAM)中。
因此,采用NAND闪速存储器的设备被局限在,为了执行可执行代码,它必须将与可执行代码相同容量的代码复制到RAM中,并且在RAM中执行被复制的代码,以用于引导。由于NAND闪速存储器与NOR闪速存储器相比价格低,集成度高,并且在硬件方面能够达到高容量和高处理速度。因此,在移动终端等领域NAND闪速存储器的应用在增加,使用NAND闪速存储器的产品也在迅速增加。
换而言之,NAND闪速存储器只提供了一种基本I/O中的块单元的方案。另外,NAND闪速存储器与NOR闪速存储器相比具有相对高的写入速度和高集成度,但不支持XIP功能。因此,为了在NAND闪速存储器中存储可执行代码并把它用作可执行只读存储器(ROM),有必要采用将可执行代码复制到相同大小的RAM区并在RAM中执行该代码的方案。
以下,将对照图1描述一种在NAND闪速存储器中根据应用程序执行可执行代码的传统方案。参照图1,NAND闪速存储器10包括用于存储可执行代码的区12和用于存储诸如资源数据的非可执行代码的区域14。另外,NAND闪速存储器10还包括用于存储用户数据等的存储区16。存储区16被用作数据库,并且存储由用户输入的数据、由用户下载的数据等。为了初始化,存储区16可被格式化。为了执行存储在NAND闪速存储器10中的可执行代码,有必要在RAM 20中提供一个与用于存储可执行代码区12相同大小的区域22。因此,当引导被执行时,应用程序执行模块将存储在NAND闪速存储器10中的可执行代码复制到RAM 20的区域22,并在RAM 20中执行可执行代码。
同样,为了把NAND闪速存储器10用作基本ROM,用于执行可执行代码的区域22总是必要的。因此,RAM20需要额外的储存容量并且产生了附加成本。此外,在RAM 20中的集成度成本也比在闪速存储器中的高。因此,如上所述,当该NAND闪速存储器10被用作ROM时,通过使用NAND闪速存储器10而得到的优势被RAM容量的附加需要所抵消。因此,取得价格优势是困难的。
发明内容
因此,作出本发明是用来解决发生在现有技术中的上述问题,并且本发明提供了这样一种方法和设备,该方法和设备用于将可执行程序存储在闪速存储器中,并使用该闪速存储器作为可执行ROM来执行可执行程序,而不用使用附加的RAM。
因此,本发明能够减少高价RAM的使用,从而减小系统体积和降低系统成本。
为了达到上述目的,根据本发明的一方面,提供一种用于执行应用程序的设备,该设备包括:包含数据存储区的与非闪速存储器,与非闪速存储器用于在存储非可执行代码存的储区中存储应用程序代码;随机存取存储器(RAM),包括当行应用程序被执行时需要的堆内存区;应用程序安装模块,用于在预定条件发生时,在数据存储区安装应用程序代码;应用程序执行模块,用于当应用程序代码被执行时,将安装在数据存储区的应用程序代码加载到堆内存区中,并执行应用程序代码。
附图说明
从下面结合附图的详细描述中,本发明的以上和其它目的、特点以及优点将变得更加清楚,其中:
图1是示出传统的用于在NAND闪速存储器中执行可执行代码的方案的图解;
图2是示出根据本发明实施方式的用于执行应用程序的设备的图解;
图3是示出根据本发明实施方式的应用程序安装模块的操作的流程图;
图4是示出根据本发明实施方式的应用程序执行模块的操作的流程图。
具体实施方式
以下,将对照附图来详细描述本发明的优选实施方式。在本发明以下的叙述中,将省略可能使本发明的主题不够清晰的已知功能和结构的详细叙述。
本发明提供了这样一种方法,该方法在使用低价格且高容量的NAND闪速存储器的同时,通过防止如同现有技术中那样将所有可执行代码加载到随机存取存储器(RAM)中,来很大地降低了与需要高价格的RAM相关的成本。
为此目的,本发明没有将与可执行代码相应的部分存储到只读存储器(ROM)代码区中,而是将可执行代码部分存储在资源区中或者存储在不包含在额外RAM的区域中。然后,本发明将已存储的部分复制到用于初始化的内部文件系统中,以用于初始化引导。另外,当需要执行被复制到文件系统中的可执行代码时,本发明将复制到文件系统中的可执行代码加载到RAM的堆内存中并执行该可执行代码。根据本发明,在RAM中存储可执行代码不总是必需的,从而可以节省RAM的空间。
图2是根据本发明实施方式的用于执行应用程序的设备的示图。对照图2,该设备包括应用程序安装模块100、ROM 30、应用程序执行模块200、和RAM40。
根据本发明,ROM 30可包括NAND闪速存储器。ROM 30包括用于存储可执行代码的第一闪速存储区32、用于存储非可执行代码的第二闪速存储区34和用于存储用户数据的第三闪速存储区36等。
第二闪速存储区34用于储存内置数据,如图像和声音,并且存储可执行代码。例如,在图2中,第二闪速存储区34存储了与应用程序A相应的可执行代码和与应用程序B相应的可执行代码,但是本发明不限于这些可执行代码。也就是说,第二闪速存储区34能够存储附加应用程序的可执行代码。当执行引导时,与应用程序A相应的可执行代码和与应用程序B相应的可执行代码将被用于安装的应用程序安装模块100复制到第三闪速存储区36。第三闪速存储区36是被用来当作数据库等的储存区。另外,第三闪速存储区36可以是文件系统。因此,当文件系统被格式化时,存储在第三闪速存储区36中的数据将被删除。
当操作系统被引导时,应用程序安装模块100确定是否将存储在第二闪速存储区34的应用程序代码存储到(即,安装到)第三闪速存储区36中。例如,应用程序安装模块100具有必须安装在第三闪速存储区36中的应用程序列表,并且能够确定当执行引导时这些应用程序的可执行代码是否已被安装在第三闪速存储区36中。如果应用程序代码没有被安装在第三闪速存储区36中,则应用程序安装模块100将存储在第二闪速存储区34中的应用程序代码复制到第三闪速存储区36中,以用于安装。该应用程序代码可以作为文件或者数据库被安装在第三闪速存储区36的特定区域中。另外,为了管理应用程序,应用程序安装模块100将安装在第三闪速存储区36中的应用程序在应用程序执行模块200中注册。
那么,当安装在第三闪速存储区36中的应用程序被执行时,应用程序执行模块200能够将存储在第三闪速存储区36中的应用程序代码加载到RAM 40的堆内存44,并且执行该应用程序代码。堆内存44是当应用程序被执行时分配给RAM 40的存储器,用以提供所需的存储空间。具体来说,存储在第三闪速存储区36中的应用程序代码被加载到其中的RAM 40的堆内存44是只在应用程序执行时才使用的存储器。也就是说,堆内存44是一种在堆内存44在应用程序的结尾被自动释放之后当另一应用程序被执行时能够被重复使用的存储器。RAM 40包括用来存储可执行代码的区域42,并且这个区域42具有与在ROM 30中的第一闪速存储区32的大小相同的大小。
与现有的可执行代码存储区32的应用程序没有任何差别,安装在第三闪速存储器区36中的应用程序可被用户使用。另外,将可执行代码存储在RAM中未必总是必需的,所以可以节省RAM。以下,将参照图3描述应用程序安装模块100的操作。
图3是示出根据本发明的实施方式的应用程序安装模块100的操作的流程图。参照图3,在步骤310中,应用程序安装模块100确定应用系统是否正在被引导。另外,应用程序安装模块100能够确定是否在执行格式化。当正在执行格式化时,步骤320、330和340也可被执行。
当操作系统正在被引导时,步骤320被执行。在步骤320中,应用程序安装模块100确定是否将存储在ROM 30的第二闪速存储区34的应用程序代码存储到(即,安装到)第三闪速存储区36中。如果应用程序代码已被安装,则该过程结束。如果必须安装在第三闪速存储区36中的应用代码没有被存储,则步骤330被执行。在步骤330中,应用程序安装模块100将存储在第二闪速存储区34中的应用程序代码复制到第三闪速存储区36中,并安装被复制的应用程序代码。如上所述,该应用程序代码可被安装在第三闪速存储区36的特定区域中作为文件或者数据库。在步骤340中,为了管理应用程序,应用程序安装模块100将安装在第三闪速存储区36中的应用程序注册在应用程序执行模块200中。以下,将参照图4描述程序执行模块200的操作。
参照图4,在步骤410中,程序执行模块200确定执行存储在第三闪速存储区36中的应用程序是否被请求。如果执行存储在第三闪速存储区36中的应用程序被请求,则执行步骤420。在步骤420中,程序执行模块200将存储在第三闪速存储区36中的应用程序代码加载到RAM 40的堆内存44中。在步骤430中,程序执行模块200执行相应的应用程序。也就是说,程序执行模块200能够将存储在第三闪速存储区36中的应用程序代码加载到RAM 40的堆内存44中,并执行该应用程序代码。如上所述,堆内存44是一种只在应用程序被执行时才被使用的存储器,并且是一种在堆内存44在应用程序的结尾被自动释放之后当另一应用程序被执行时能够被重复使用的存储器。在图2中,与应用程序A和B相应的可执行代码被加载到堆内存44并被执行。
同时,可以通过将用于管理应用程序信息的快速启动器和用于将应用程序加载堆内存的操作系统的装入程序集成来构造程序执行模块200。
如上所述,根据本发明,与现有的始终需要相同大小的RAM的方案相反,当NAND闪速存储器被用作可执行ROM时,NAND闪速存储器通常被加载到存储器,然后,仅仅在执行时被加载到RAM。因此,减少了昂贵的RAM的使用。结果,能够有效地降低产品的单位成本。
虽然已经对照本发明的特定优选实施方式显示和描述了本发明,但是本领域技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可对这些实施方式做出形式和细节上的各种改变。

Claims (8)

1、一种用于执行应用程序的设备,所述设备包括:
与非闪速存储器,包括数据存储区,所述与非闪速存储器将应用程序代码存储在用于存储非可执行代码的存储区中;
随机存取存储器,包括当应用程序被执行时所需的堆内存区;
应用程序安装模块,用于当预定条件发生时,将应用程序代码安装在数据存储区中;和
应用程序执行模块,将安装在数据存储区中的应用程序代码加载到堆内存区中,并执行所述应用程序。
2、如权利要求1所述的设备,其中,当所述预定条件发生时,应用程序安装模块确定应用程序代码是否已被安装在数据存储区中,如果应用程序代码没有被安装在数据存储区中,则应用程序安装模块将应用程序代码安装在数据存储区中。
3、如权利要求1所述的设备,其中,所述预定条件包括引导操作系统和格式化数据存储区之一。
4、如权利要求1所述的设备,其中,所述与非闪速存储器是不支持运行时空间大小不变功能的存储器。
5、一种用于在包括与非闪速存储器和随机存取存储器的设备中执行应用程序的方法,所述与非闪速存储器包括数据存储区,并且用于将应用程序存储在用于存储非可执行数据的存储区中,所述随机存取存储器包括应用程序被执行时所必需的堆内存区,所述方法包括以下步骤:
当预定条件发生时,将应用程序代码安装在数据存储区中;和
将安装在数据存储区中的应用程序代码加载到堆内存区,并执行所述应用程序。
6、如权利要求5所述的方法,其中,安装步骤包括:
当所述预定条件发生时,确定应用程序代码是否已被安装在数据存储区中;和
如果应用程序代码没有被安装在数据存储区中,则将所述应用程序代码安装在数据存储区中。
7、如权利要求5所述的方法,其中,所述预定条件包括引导操作系统和格式化数据存储区之一。
8、如权利要求5所述的方法,其中,所述与非闪速存储器是不支持运行时空间大小不变功能的存储器。
CNB2006100668600A 2005-04-06 2006-03-31 在具有与非闪速存储器的系统执行应用程序的方法和设备 Expired - Fee Related CN100573450C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050028576 2005-04-06
KR1020050028576A KR100640389B1 (ko) 2005-04-06 2005-04-06 Nand플래시 메모리를 구비한 장치에서 어플리케이션을실행하는 방법 및 그 장치

Publications (2)

Publication Number Publication Date
CN1848086A CN1848086A (zh) 2006-10-18
CN100573450C true CN100573450C (zh) 2009-12-23

Family

ID=36588367

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100668600A Expired - Fee Related CN100573450C (zh) 2005-04-06 2006-03-31 在具有与非闪速存储器的系统执行应用程序的方法和设备

Country Status (4)

Country Link
US (1) US20060230190A1 (zh)
EP (1) EP1710697A1 (zh)
KR (1) KR100640389B1 (zh)
CN (1) CN100573450C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2015561A1 (fr) * 2007-07-10 2009-01-14 Nagracard S.A. Procédé d'envoi d'un code exécutable à un dispositif de réception et procédé d'exécution de ce code
KR101404721B1 (ko) * 2008-04-28 2014-06-10 시게이트 테크놀로지 엘엘씨 하드디스크 드라이브의 공정방법
CN101686340A (zh) * 2008-09-26 2010-03-31 深圳市朗科科技股份有限公司 扩展图像通信设备功能的方法及系统
CN108255526B (zh) * 2016-12-28 2020-07-31 深圳市中兴微电子技术有限公司 一种系统启动及运行的方法、装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023761A (en) * 1997-08-13 2000-02-08 Vlsi Technology, Inc. Method and system for using decompression on compressed software stored in non-volatile memory of an embedded computer system to yield decompressed software including initialized variables for a runtime environment
US6601167B1 (en) * 2000-01-14 2003-07-29 Advanced Micro Devices, Inc. Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program
US6941410B1 (en) 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
US6442660B1 (en) 2001-03-21 2002-08-27 Sharp Laboratories Of America, Inc. Dynamic system relocation based on availability of system memory
US6895463B2 (en) 2001-10-30 2005-05-17 Pioneer Digital Technologies, Inc. Method and apparatus for efficiently running an execution image using volatile and non-volatile memory
US6988163B2 (en) * 2002-10-21 2006-01-17 Microsoft Corporation Executing binary images from non-linear storage systems
US7055145B2 (en) * 2002-10-30 2006-05-30 Intel Corporation Dynamic management of execute in place applications
GB2404748B (en) * 2003-08-01 2006-10-04 Symbian Ltd Computing device and method
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
US20050268077A1 (en) * 2004-05-11 2005-12-01 Peter Kuan Memory system for an electronic device and the method for controlling the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Computer Basics:IBM/PC. ENS,D,et,al.. 1998
Computer Basics:IBM/PC. ENS,D,et,al. 1998 *

Also Published As

Publication number Publication date
KR20060106134A (ko) 2006-10-12
CN1848086A (zh) 2006-10-18
EP1710697A1 (en) 2006-10-11
US20060230190A1 (en) 2006-10-12
KR100640389B1 (ko) 2006-10-30

Similar Documents

Publication Publication Date Title
US7610479B2 (en) Computing device method that presents as a single file system operating system components in both executable and non-executable memory
US7856637B1 (en) Runtime emulating static thread local storage of portable executable software code
KR20130028782A (ko) 메모리 장치의 활용 영역 확장
CN101512485A (zh) 用于作为后台任务更新固件的方法和装置
CN107870769A (zh) 操作系统的安装方法及装置
CN103984565A (zh) 文件系统预提取的方法与电子装置以及启动方法
CN103577212A (zh) 系统启动预加载方法及装置
KR20100088210A (ko) 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치
CN100573450C (zh) 在具有与非闪速存储器的系统执行应用程序的方法和设备
CN112667246B (zh) 应用功能扩展的方法、装置及电子设备
CN101403966B (zh) 一种实现可移植软件的方法
CN116661910B (zh) 一种应用调用的方法及装置
CN103677937A (zh) 升级软件和运行软件的方法及装置
CN103685408A (zh) 以存储区域网络提供读取基础镜像的服务器、主机及方法
US8131917B2 (en) Storing a driver for controlling a memory
EP2047364A1 (en) A method to use global variables for pre-efi initialization modules in efi-based firmware
JP2007510211A (ja) コンピュータ装置におけるダイナミック・リンク・ライブラリのマッピング
CN100395704C (zh) 一种在Nand Flash存储器中直接建立只读文件系统的方法
US6883078B2 (en) Microcomputer with reduced memory usage and associated method
US6625060B2 (en) Microcomputer with efficient program storage
CN101908009B (zh) 文件备份与使用方法
US7681009B2 (en) Dynamically updateable and moveable memory zones
KR101140522B1 (ko) 객체 관리 시스템 및 방법
US7603665B2 (en) Method and apparatus for loading relocatable in-place executable files in a virtual machine
US20110161550A1 (en) Sub-os virtual memory management layer

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091223

Termination date: 20160331