CN111596973B - 芯片内执行模式下的数据存储方法、装置及终端 - Google Patents
芯片内执行模式下的数据存储方法、装置及终端 Download PDFInfo
- Publication number
- CN111596973B CN111596973B CN202010707744.2A CN202010707744A CN111596973B CN 111596973 B CN111596973 B CN 111596973B CN 202010707744 A CN202010707744 A CN 202010707744A CN 111596973 B CN111596973 B CN 111596973B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- memory
- terminal
- execution mode
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000013500 data storage Methods 0.000 title claims abstract description 25
- 238000005192 partition Methods 0.000 claims description 30
- 230000008859 change Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000001276 controlling effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开实施例提供一种芯片内执行模式下的数据存储方法、装置及终端,属于嵌入式技术领域。其中方法包括:在加载模式下,将终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将第二部分数据压缩;将第一部分数据和压缩后的第二部分数据分别存储到终端的只读存储器内;由加载模式进入芯片内执行模式时,控制第一部分数据参与芯片内执行模式下的程序运行,以及,将只读存储器内的压缩后的第二部分数据解压到终端的随机存储器并参与芯片内执行模式下的程序运行。这样,可以根据物理空间的具体存储状态适应性地调整只读存储器和随机存储器之间的使用平衡,既能避免只读存储器内不合理的空间占用,提高只读存储器的空间利用效率。
Description
技术领域
本公开涉及嵌入式技术领域,尤其涉及一种芯片内执行模式下的数据存储方法、装置及终端。
背景技术
嵌入式系统中代码的执行方式主要有3种,分别为:
完全映射(fully shadowed),嵌入式系统程序运行时,将所有的代码从非易失存储器Flash、只读存储器(Read Only Memory,简称ROM)复制到随机存储器(Random AccessMemory,简称RAM)中运行;
按需分页(demand paging),只复制部分代码到RAM中。这种方法对RAM中的页进行导入/导出管理,如果访问位于虚存中但不在物理RAM中会产生页错误,这时才将代码和数据映射到RAM中;
芯片内执行(eXecute In Place,简称XIP ),在系统启动时,不将代码复制到RAM,而是直接在非易失性存储(Flash、ROM等)位置执行,RAM中只存放需要不断变化的数据部分。
运行程序主要包含三类数据,分别简称RO/RW/ZI数据:
1)只读数据(Read Only,简称RO),包含指令代码,字串图表等资源文件,占用烧写ROM空间。
2)读写数据(Read Write,简称RW),即在程序运行时会持续变化的数据,占用烧写ROM空间。
3)零初始化数据(Zero Initial,简称RI),不占用ROM空间,启动后由程序赋零初值。
现有的嵌入式XIP执行模型如图1所示,其中左侧为加载视角Load View,右侧为执行视角Execution View,ROM空间具有非易失物理属性,所以烧写时RO/RW会烧写到ROM区域。而在程序运行时,RAM空间具有易失属性,但可以高效运行,持续读写。所以会将RW展开到RAM空间,同时初始化ZI数据并执行程序。ROM空间中的RW数据是仅烧写存储在ROM中,是程序执行周期时加载到RAM空间使用,于是存储在ROM中的RW数据是可以压缩存储,来提高ROM空间利用效率,但同时会多消耗从ROM到RAM解压的时间。
可见,现有的芯片内执行模式下的数据存储方案存在占用空间较多或者消耗时间较多的技术问题。
发明内容
有鉴于此,本公开实施例提供一种芯片内执行模式下的数据存储方法、装置及终端,至少部分解决现有技术中存在的问题。
第一方面,本公开实施例提供了一种芯片内执行模式下的数据存储方法,应用于终端,所述方法包括:
在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩;
将所述第一部分数据和压缩后的所述第二部分数据分别存储到所述终端的只读存储器内;
由所述加载模式进入芯片内执行模式时,控制所述第一部分数据参与所述芯片内执行模式下的程序运行,以及,将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行。
根据本公开实施例的一种具体实现方式,所述将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据的步骤,包括:
判断所述只读存储器的物理空间是否满足预设充足状态;
若所述只读存储器的物理空间满足预设充足状态,则将所述只读数据差分为所述第一部分数据和所述第二部分数据,其中,所述第一部分数据的占用内存大于所述第二部分数据的占用内存;
若所述只读存储器的物理空间不满足预设充足状态,则将所述只读数据差分为所述第一部分数据和所述第二部分数据,其中,所述第一部分数据的占用内存小于所述第二部分数据的占用内存。
根据本公开实施例的一种具体实现方式,所述判断所述只读存储器的物理空间是否满足预设充足状态的步骤,包括:
获取所述终端内的初始化二值图像的实际尺寸;
根据所述终端的链接器的烧写分区布局,判断所述只读存储器的物理空间是否大于所述初始化二值图像的实际尺寸;
若所述只读存储器的物理空间大于所述初始化二值图像的实际尺寸,则判定所述只读存储器的物理空间满足预设充足状态;
若所述只读存储器的物理空间小于或者等于所述初始化二值图像的实际尺寸,则判定所述只读存储器的物理空间不满足预设充足状态。
根据本公开实施例的一种具体实现方式,所述在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩的步骤,包括:
根据所述二值图像的头部信息,将尾部的只读数据中的第一部分数据和第二部分数据分别压缩,并重新连接在一起,并在二值图像的头部更新压缩后的只读数据的信息,修改被压缩的只读数据的内容和数量,配置链接阶段的分区文件;
所述将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行的步骤,包括:
根据所述二值图像头部的信息,将压缩后的第二部分数据展开到随机存储器内使用。
根据本公开实施例的一种具体实现方式,所述根据所述二值图像的头部信息,将尾部的只读数据中的第一部分数据和第二部分数据分别压缩的步骤之前,所述方法还包括:
根据所述终端内链接器的分区布局,将需要压缩的只读部分,以加载模式的分区布局在尾部,并将加载地址/执行地址在编译、链接阶段自动记录在所述二值图像的头部。
根据本公开实施例的一种具体实现方式,所述将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据的步骤,包括:
确定所述只读数据包括的多个数据子集;
在产出所述二值图像时,根据分区文件中的数据排布参数,调整全部数据子集的布局,进而得到第一部分数据和第二部分数据,其中所述排布参数包括排布顺序和排布位置。
根据本公开实施例的一种具体实现方式,所述在产出所述二值图像时,根据分区文件中的数据排布参数,调整全部数据子集的布局的步骤之前,所述方法还包括:
接收用户输入的配置请求;
根据所述配置请求,调整所述分区文件中的数据排布参数。
根据本公开实施例的一种具体实现方式,所述方法还包括:
在所述加载模式下,将所述终端内的读写数据和零初始化数据存储到所述只读存储器内;
由所述加载模式进入所述芯片内执行模式时,将所述只读存储器内的所述读写数据和所述零初始化数据解压并展开到所述随机存储器内。
第二方面,本公开实施例提供了一种芯片内执行模式下的数据存储装置,所述装置包括:
差分模块,用于在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩;
存储模块,用于将所述第一部分数据和压缩后的所述第二部分数据分别存储到所述终端的只读存储器内;
运行模块,用于由所述加载模式进入芯片内执行模式时,控制所述第一部分数据参与所述芯片内执行模式下的程序运行,以及,将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行。
第三方面,本公开实施例还提供了一种终端,所述终端包括:
至少一个处理器;以及,
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述第一方面中任一项所述的芯片内执行模式下的数据存储方法。
第四方面,本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述第一方面或第一方面的任一实现方式中的芯片内执行模式下的数据存储方法。
第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使该计算机执行前述第一方面或第一方面的任一实现方式中的芯片内执行模式下的数据存储方法。
本公开实施例提供的芯片内执行模式下的数据存储方案,包括:在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩;将所述第一部分数据和压缩后的所述第二部分数据分别存储到所述终端的只读存储器内;由所述加载模式进入芯片内执行模式时,控制所述第一部分数据参与所述芯片内执行模式下的程序运行,以及,将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行。这样,可以根据物理空间的具体存储状态适应性地调整只读存储器和随机存储器之间的使用平衡,既能避免只读存储器内不合理的空间占用,提高只读存储器的空间利用效率。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有的嵌入式芯片内执行XIP模型的结构示意图;
图2为本公开实施例提供的一种芯片内执行模式下的数据存储方法的流程示意图;
图3为本公开实施例提供的芯片内执行模式下的数据存储方法所涉及的执行模型的示意图;
图4为本公开实施例提供的芯片内执行模式下的数据存储方法所涉及的执行模型的其他示意图;
图5为本公开实施例提供的一种芯片内执行模式下的数据存储装置的结构示意图;
图6为本公开实施例提供的一种终端的示意图。
具体实施方式
下面结合附图对本公开实施例进行详细描述。
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
本公开实施例提供一种芯片内执行模式下的数据存储方法。本实施例提供的芯片内执行模式下的数据存储方法可以由一计算装置来执行,该计算装置可以实现为软件,或者实现为软件和硬件的组合,该计算装置可以集成设置在服务器、终端设备等中。
参见图2,为本公开实施例提供的一种芯片内执行模式下的数据存储方法(以下简称本方法)的流程示意图,本方法应用于终端。如图2所示,所述方法主要包括以下步骤:
S201,在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩;
在嵌入式终端的芯片内执行XIP执行模型中,如图3所示,左侧为加载模式LoadView,右侧为执行视角Execution View。只读存储器ROM空间具有非易失物理属性,烧写时RO/RW会烧写到ROM区域。在程序运行时,随机存储器RAM空间具有易失属性,但可以高效运行,持续读写。将RW展开到RAM空间,同时初始化ZI数据并执行程序。ROM空间中的RW数据是仅烧写存储在ROM中,是程序执行周期时加载到RAM空间使用,于是存储在ROM中的RW数据是可以压缩存储,来提高ROM空间利用效率。
在加载模式,为了优化嵌入式系统中ROM和RAM的负载均衡,可以利用芯片内执行模式下的部分只读数据region压缩的方式实现。如图3所示,在加载模式Load View,将只读数据RO差分为第一部分数据RO_1和第二部分数据RO_2。其中,RO_1在ROM空间XIP方式参与运行,而RO_2是被压缩,需要解压并展开到RAM空间执行的Region。通过RO_1与RO_2 之间的分配关系,来调节RAM空间与ROM空间的使用效率。
根据本公开实施例的一种具体实现方式,所述将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据的步骤,可以包括:
判断所述只读存储器的物理空间是否满足预设充足状态;
若所述只读存储器的物理空间满足预设充足状态,则将所述只读数据差分为所述第一部分数据和所述第二部分数据,其中,所述第一部分数据的占用内存大于所述第二部分数据的占用内存;
若所述只读存储器的物理空间不满足预设充足状态,则将所述只读数据差分为所述第一部分数据和所述第二部分数据,其中,所述第一部分数据的占用内存小于所述第二部分数据的占用内存。
本实施方式中,根据ROM物理空间的充足状态来控制差分方案。即若ROM物理空间紧张,则提高压缩效率,将更多RO属性的数据压缩存储在RO_2中,以此提高ROM空间利用率。反之,若RAM空间紧张而ROM物理空间充足,则减少压缩为RO_2的部分数据。
进一步的,所述判断所述只读存储器的物理空间是否满足预设充足状态的步骤,包括:
获取所述终端内的初始化二值图像的实际尺寸;
根据所述终端的链接器的烧写分区布局,判断所述只读存储器的物理空间是否大于所述初始化二值图像的实际尺寸;
若所述只读存储器的物理空间大于所述初始化二值图像的实际尺寸,则判定所述只读存储器的物理空间满足预设充足状态;
若所述只读存储器的物理空间小于或者等于所述初始化二值图像的实际尺寸,则判定所述只读存储器的物理空间不满足预设充足状态。
本实施方式中,对判断ROM物理空间充足状态的依据作了进一步限定。ROM空间判断是根据研发阶段编译产出的二值图像binary image的实际尺寸binary image,该binaryimage是要烧写到目标硬件的物理存储媒介中。结合物理媒介的烧写分区规划,就可以算出是否有理想的闲余空间用于再开发或保证研发阶段的size弹性。
根据本公开实施例的一种具体实现方式,所述将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据的步骤,包括:
确定所述只读数据包括的多个数据子集;
在产出所述二值图像时,根据分区文件中的数据排布参数,调整全部数据子集的布局,进而得到第一部分数据和第二部分数据,其中所述排布参数包括排布顺序和排布位置。
只读数据的差分是由分区文件scatter控制。RO是由很多个数据子集section组成的集合,该scatter文件用途是在产出二值图像image时,用来指定组成因子section的顺序、位置、布局的,也就是通过配置分区文件scatter file 内的排布参数,就可以调整最终执行视角下的RO的位置。也可以进行集合拆分RO_1/RO_2。
S202,将所述第一部分数据和压缩后的所述第二部分数据分别存储到所述终端的只读存储器内;
如图3所示,将只读数据差分为第一部分数据RO_1和第二部分数据RO_2之后,将RO_2压缩,并将RO_1和压缩后RO_2存储到ROM中。
S203,由所述加载模式进入芯片内执行模式时,控制所述第一部分数据参与所述芯片内执行模式下的程序运行,以及,将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行。
在由加载模式Load View进入芯片内执行模式即执行视角Execution View时,ROM中存储的RO_1在ROM空间XIP方式参与运行,而ROM中被压缩的RO_2则需要解压展开到RAM空间,参与程序运行。
在上述实施例的基础上,根据本公开实施例的一种具体实现方式,所述在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩的步骤,包括:
根据所述二值图像的头部信息,将尾部的只读数据中的第一部分数据和第二部分数据分别压缩,并重新连接在一起,并在二值图像的头部更新压缩后的只读数据的信息,修改被压缩的只读数据的内容和数量,配置链接阶段的分区文件;
所述将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行的步骤,包括:
根据所述二值图像头部的信息,将压缩后的第二部分数据展开到随机存储器内使用。
此外,根据本公开实施例的一种具体实现方式,所述根据所述二值图像的头部信息,将尾部的只读数据中的第一部分数据和第二部分数据分别压缩的步骤之前,所述方法还可以包括:
根据所述终端内链接器的分区布局,将需要压缩的只读部分,以加载模式的分区布局在尾部,并将加载地址/执行地址在编译、链接阶段自动记录在所述二值图像的头部。
下面将结合图3和图4所示的实施方式,具体解释上述的文件差分过程和存储过程的步骤:
1)利用链接器armlink的分区scatter布局,将需要压缩的部分数据region,以load view加载视角布局在尾部,并将加载地址load address/执行地址executionaddress在编译、链接阶段自动记录在二值图像image的头部。
2)使用外部脚本根据image的头部信息,将尾部region分别压缩,并重新连接在一起。并更新压缩后的region信息在image头部,修改被压缩region的内容和数量,只需要配置链接阶段link的分区文件scatter file。
3)在引导装载程序bootloader阶段,会根据二值图像image头部的信息,进行压缩region展开到RAM空间使用。
4)用户需要配置的部分只是调整分区文件scatter file中,被压缩region的填充内容即可。
针对上述用户配置分区文件的过程,根据本公开实施例的一种具体实现方式,所述在产出所述二值图像时,根据分区文件中的数据排布参数,调整全部数据子集的布局的步骤之前,所述方法还可以包括:
接收用户输入的配置请求;
根据所述配置请求,调整所述分区文件中的数据排布参数。
本实施方式中,为了最大化方便用户给予ASR release的SDK进行再开发后的region配置与调整,只需要根据编译产出的map/image/partition空间自行编辑scatterfile文件即可,将适量size大小的sections编辑分布在被压缩的region域中即可。
如图4所示为分区文件scatter file散列文件的示意图,其中的*SECTION*部分就是控制编译imag的元素object/library的sections,本例中RO属性的数据本应该wildcard默认匹配布局在*(+RO)的部分区域。将RO属性,但通过细分粒度,可以将部分library/object的+RO section显示配置在APPEND_REGION中,参与压缩,该region在运行时会被展开到RAM空间运行。
每个APPEND_REGION单位,在产出image中的物理偏移、实际运行时需要展开的目标区域、展开后目标大小,都根据linker阶段的产出符号$Image$$APPEND_RG_n$$Base/$Load$$APPEND_RG_n$$Base/$Load$$APPEND_RG_n$$Length自动记录在的image的固定位置,方便Bootloader在运行image全对其进行解压与展开还原。 其中记录在image的固定位置的格式,与Bootloader中展开流程设计,均是ASR自创设计。
用户针对ROM/RAM的使用情况,进行调整的仅仅是sct中显示提取一部分RO的section,布局在被压缩的APPEND_REG_n中,来确定最佳的ROM/RAM空间使用的scatterfile布局文件。
此外,如图3所示,根据本公开实施例的一种具体实现方式,所述方法还包括:
在所述加载模式下,将所述终端内的读写数据和零初始化数据存储到所述只读存储器内;
由所述加载模式进入所述芯片内执行模式时,将所述只读存储器内的所述读写数据和所述零初始化数据解压并展开到所述随机存储器内。
本实施方式中,对于与只读数据同时参与存储的读写数据RW和零初始化数据ZI作了进一步限定。读写数据和零初始化数据同只读数据中的第二部分数据一致,在加载模式被压缩存储在ROM中,在由加载模式进入芯片内执行模式时,被解压并展开到RAM中。
综上所述,本公开实施例提供的芯片内执行模式下的数据存储方法,在加载模式下将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩;将所述第一部分数据和压缩后的所述第二部分数据分别存储到所述终端的只读存储器内;在由所述加载模式进入芯片内执行模式时,控制所述第一部分数据参与所述芯片内执行模式下的程序运行,以及,将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行。这样,可以根据物理空间的具体存储状态适应性地调整只读存储器和随机存储器之间的使用平衡,既能避免只读存储器内不合理的空间占用,提高只读存储器的空间利用效率。
与上面的方法实施例相对应,参见图5,本公开实施例还提供了一种芯片内执行模式下的数据存储装置50,包括:
差分模块501,用于在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩;
存储模块502,用于将所述第一部分数据和压缩后的所述第二部分数据分别存储到所述终端的只读存储器内;
运行模块503,用于由所述加载模式进入芯片内执行模式时,控制所述第一部分数据参与所述芯片内执行模式下的程序运行,以及,将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行。
图5所示装置可以对应的执行上述方法实施例中的内容,本实施例未详细描述的部分,参照上述方法实施例中记载的内容,在此不再赘述。
参见图6,本公开实施例还提供了一种终端60,该终端包括:
至少一个处理器;以及,
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述方法实施例中的芯片内执行模式下的数据存储方法。
本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述方法实施例中的芯片内执行模式下的数据存储方法。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使该计算机执行前述方法实施例中的的芯片内执行模式下的数据存储方法。
下面参考图6,其示出了适于用来实现本公开实施例的终端60的结构示意图。本公开实施例中的终端可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的终端仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,终端60可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有终端60操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许终端60与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种装置的终端60,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述终端中所包含的;也可以是单独存在,而未装配入该终端中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端执行时,使得该终端能够实现上述方法实施例提供的方案。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端执行时,使得该终端能够实现上述方法实施例提供的方案。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种芯片内执行模式下的数据存储方法,其特征在于,应用于终端,所述方法包括:
在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩;
将所述第一部分数据和压缩后的所述第二部分数据分别存储到所述终端的只读存储器内;
由所述加载模式进入芯片内执行模式时,控制所述第一部分数据参与所述芯片内执行模式下的程序运行,以及,将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行;所述将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据的步骤,包括:
判断所述只读存储器的物理空间是否满足预设充足状态;
若所述只读存储器的物理空间满足预设充足状态,则将所述只读数据差分为所述第一部分数据和所述第二部分数据,其中,所述第一部分数据的占用内存大于所述第二部分数据的占用内存;
若所述只读存储器的物理空间不满足预设充足状态,则将所述只读数据差分为所述第一部分数据和所述第二部分数据,其中,所述第一部分数据的占用内存小于所述第二部分数据的占用内存;所述判断所述只读存储器的物理空间是否满足预设充足状态的步骤,包括:
获取所述终端内的初始化二进制映像的实际尺寸;
根据所述终端的链接器的烧写分区布局,判断所述只读存储器的物理空间是否大于所述初始化二进制映像的实际尺寸;
若所述只读存储器的物理空间大于所述初始化二进制映像的实际尺寸,则判定所述只读存储器的物理空间满足预设充足状态;
若所述只读存储器的物理空间小于或者等于所述初始化二进制映像的实际尺寸,则判定所述只读存储器的物理空间不满足预设充足状态。
2.根据权利要求1所述的方法,其特征在于,所述在加载模式下,将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据,并将所述第二部分数据压缩的步骤,包括:
根据所述二进制映像的头部信息,将尾部的只读数据中的第一部分数据和第二部分数据分别压缩,并重新连接在一起,并在二进制映像的头部更新压缩后的只读数据的信息,修改被压缩的只读数据的内容和数量,配置链接阶段的分区文件;
所述将所述只读存储器内的压缩后的所述第二部分数据解压到所述终端的随机存储器并参与所述芯片内执行模式下的程序运行的步骤,包括:
根据所述二进制映像头部的信息,将压缩后的第二部分数据展开到随机存储器内使用。
3.根据权利要求2所述的方法,其特征在于,所述根据所述二进制映像的头部信息,将尾部的只读数据中的第一部分数据和第二部分数据分别压缩的步骤之前,所述方法还包括:
根据所述终端内链接器的分区布局,将需要压缩的只读部分,以加载模式的分区布局在尾部,并将加载地址/执行地址在编译、链接阶段自动记录在所述二进制映像的头部。
4.根据权利要求3所述的方法,其特征在于,所述将所述终端内运行程序中的只读数据差分为第一部分数据和第二部分数据的步骤,包括:
确定所述只读数据包括的多个数据子集;
在产出所述二进制映像时,根据分区文件中的数据排布参数,调整全部数据子集的布局,进而得到第一部分数据和第二部分数据,其中所述排布参数包括排布顺序和排布位置。
5.根据权利要求4所述的方法,其特征在于,所述在产出所述二进制映像时,根据分区文件中的数据排布参数,调整全部数据子集的布局的步骤之前,所述方法还包括:
接收用户输入的配置请求;
根据所述配置请求,调整所述分区文件中的数据排布参数。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述加载模式下,将所述终端内的读写数据和零初始化数据存储到所述只读存储器内;
所述读写数据为在程序运行时会持续变化的数据,所述零初始化数据为不占用只读存储器,启动后由程序赋零初值的数据;
由所述加载模式进入所述芯片内执行模式时,将所述只读存储器内的所述读写数据和所述零初始化数据解压并展开到所述随机存储器内。
7.一种终端,其特征在于,所述终端包括:
至少一个处理器;以及,
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述权利要求1至6中任一项所述的芯片内执行模式下的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010707744.2A CN111596973B (zh) | 2020-07-22 | 2020-07-22 | 芯片内执行模式下的数据存储方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010707744.2A CN111596973B (zh) | 2020-07-22 | 2020-07-22 | 芯片内执行模式下的数据存储方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111596973A CN111596973A (zh) | 2020-08-28 |
CN111596973B true CN111596973B (zh) | 2020-11-10 |
Family
ID=72186739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010707744.2A Active CN111596973B (zh) | 2020-07-22 | 2020-07-22 | 芯片内执行模式下的数据存储方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111596973B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1100540A (zh) * | 1994-08-18 | 1995-03-22 | 奥克利系统公司 | 压缩的基本输入/输出系统 |
CN1375769A (zh) * | 2001-03-20 | 2002-10-23 | 珠海市万禾网络技术有限公司 | 能够装载和运行特定操作系统的单芯片系统 |
CN1677348A (zh) * | 2004-03-30 | 2005-10-05 | 明基电通股份有限公司 | 可携式电子装置及其数据动态处理方法 |
CN1760831A (zh) * | 2004-10-11 | 2006-04-19 | 佛山市顺德区顺达电脑厂有限公司 | 手持式电子装置的操作系统执行方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7055145B2 (en) * | 2002-10-30 | 2006-05-30 | Intel Corporation | Dynamic management of execute in place applications |
CN101281785B (zh) * | 2008-05-13 | 2010-06-16 | 北京中星微电子有限公司 | 复合芯片电路、其使用方法及相关信息设备 |
US8407562B2 (en) * | 2009-09-01 | 2013-03-26 | Marvell World Trade Ltd. | Systems and methods for compressing data in non-volatile semiconductor memory drives |
-
2020
- 2020-07-22 CN CN202010707744.2A patent/CN111596973B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1100540A (zh) * | 1994-08-18 | 1995-03-22 | 奥克利系统公司 | 压缩的基本输入/输出系统 |
CN1375769A (zh) * | 2001-03-20 | 2002-10-23 | 珠海市万禾网络技术有限公司 | 能够装载和运行特定操作系统的单芯片系统 |
CN1677348A (zh) * | 2004-03-30 | 2005-10-05 | 明基电通股份有限公司 | 可携式电子装置及其数据动态处理方法 |
CN1760831A (zh) * | 2004-10-11 | 2006-04-19 | 佛山市顺德区顺达电脑厂有限公司 | 手持式电子装置的操作系统执行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111596973A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860303B2 (en) | Selective operating system patching/updating | |
CN103365696B (zh) | Bios镜像文件获取方法及装置 | |
WO2017107415A1 (zh) | 应用加载方法和装置 | |
CN107239309B (zh) | 补丁生成方法及装置、更新方法、电子设备、存储介质 | |
CN111290737B (zh) | 用于应用程序开发的方法、装置及电子设备 | |
CN110502357A (zh) | 一种栈回溯方法、装置、介质和设备 | |
JP2009510544A (ja) | ソフトウェアイメージを生成する解凍技術 | |
CN107608674A (zh) | 一种应用换肤方法、装置、计算机及存储介质 | |
CN108965430A (zh) | 图片获取方法、装置、计算机设备及存储介质 | |
CN112667246B (zh) | 应用功能扩展的方法、装置及电子设备 | |
CN112416359A (zh) | 动态分区定制方法、装置、设备和计算机可读存储介质 | |
CN113342330A (zh) | 前端工程生成方法及装置 | |
CN111708548A (zh) | 软件安装方法、装置、设备及存储介质 | |
CN110489162B (zh) | 安装包so文件精简方法、装置、介质和设备 | |
CN103514004A (zh) | Windows系统下的系统环境管理方法及装置 | |
CN111596973B (zh) | 芯片内执行模式下的数据存储方法、装置及终端 | |
CN107577474B (zh) | 升级文件的处理方法及装置、电子设备 | |
CN113272785A (zh) | 一种挂载文件系统的方法、终端设备及存储介质 | |
CN114548327A (zh) | 基于平衡子集的软件缺陷预测方法、系统、设备及介质 | |
CN114090028A (zh) | 系统升级方法、电子设备及存储介质 | |
CN105190510A (zh) | 增量地消费内容 | |
CN114090070A (zh) | 应用程序安装包文件处理方法及电子设备 | |
CN109542531A (zh) | 一种文件布局调整方法及装置 | |
US7702890B2 (en) | Information processing apparatus and program | |
WO2024119895A1 (zh) | 操作系统升级方法、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 8 / F, building 10, 399 Keyuan Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai 201203 (nominal Floor 9) Applicant after: Aojie Technology Co., Ltd Address before: 201203 Building 2, No. 399, Keyuan Road, free trade zone, Pudong New Area, Shanghai Applicant before: Aojie Technology (Shanghai) Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |