CN113316766A - 用于执行启动过程的数字装置及其控制方法 - Google Patents
用于执行启动过程的数字装置及其控制方法 Download PDFInfo
- Publication number
- CN113316766A CN113316766A CN201980089758.8A CN201980089758A CN113316766A CN 113316766 A CN113316766 A CN 113316766A CN 201980089758 A CN201980089758 A CN 201980089758A CN 113316766 A CN113316766 A CN 113316766A
- Authority
- CN
- China
- Prior art keywords
- page data
- memory
- cluster
- block
- duplicate
- 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
Links
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/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本说明书公开了一种用于执行休眠启动过程的数字装置及其控制方法。这里,根据本发明的实施方式的数字装置包括:第一存储器;第二存储器,该第二存储器存储基于第一存储器的各页面数据生成的快照映像;以及控制单元,该控制单元用于生成快照映像,其中,该控制单元通过将重复页面数据与预存储在第二存储器中的快照映像进行比较来对第一存储器中的重复页面数据进行主去重复,并且选择性地对重复页面数据进行辅去重复,其中,通过辅去重复步骤来使数据碎片化最小化。
Description
技术领域
本公开涉及一种用于启动(booting)数字装置的方法和设备,并且更具体地,涉及一种用于在例如计算系统中生成用于休眠启动的快照映像(snapshot image)的方法。
背景技术
在计算机文件系统中,快照映像是例如包括关于系统在先前时间点的状态的信息的计算机文件和目录的集合。
使用快照映像的启动通常被称为休眠启动,与传统系统启动相比具有显著提高启动速度的优点。因此,它用于启动需要快速处理性能的嵌入式产品或移动终端。
休眠启动提供在诸如闪存存储器或硬盘驱动器(HDD)的存储装置中自动保存直到计算系统断电时所执行的工作内容的功能。
在典型的省电模式中,消耗特定量的功率来维持数据。另外,当数据长时间处于省电模式时,可能由于数据丢失而无法恢复到先前状态。
然而,在休眠启动的情况下,可以在创建计算系统的状态或数据的快照映像之后完全关闭电源。因此,休眠启动在功率方面是有利的,并且大大降低了数据丢失的风险。
另一方面,由于数据包含直到系统关机之前的时间点所执行的工作的内容,所以用于休眠启动的快照映像的数据的大小需要针对存储的相当大的数据存储容量。
此外,针对休眠启动,每当系统关机时,重复创建和存储快照映像的过程。因此,根据数字装置的使用和使用周期,休眠启动可能会持续减小作为存储介质的存储装置的寿命。
近来,各种数字装置已经被用于汽车部件。针对这样的数字装置,寿命可靠性是非常重要的。为了利用休眠启动技术,必须保证高于特定水平的寿命可靠性。
因此,需要一种能够在执行休眠启动的同时稳定地保证寿命可靠性的快照映像创建方法。
发明内容
技术问题
本公开的目的是提供一种用于在系统关机时生成存储在RAM中的页面数据的快照映像并将所生成的页面数据存储在闪存存储器中的数字装置及其控制方法。
本公开的另一目的是提供一种能够通过在生成快照映像时省略重复页面数据来减小要存储的快照映像的大小(volume)的数字装置及其控制方法。
本公开的另一目的是提供一种能够通过页面数据的去重复来使在生成快照映像时不可避免地出现的数据碎片化最小化的数字装置及其控制方法。
本公开的另一目的是提供一种能够显著解决用作针对快照映像的存储空间的闪存存储器的可靠性劣化的数字装置及其控制方法。
本领域技术人员将理解,通过本公开可以实现的目的不限于上文已经具体描述的那些,并且通过以下详细描述将更清楚地理解上述和其它目的。
技术方案
本公开的上述和其它目的可以通过提供一种用于控制数字装置以执行启动过程的方法来实现,该方法包括以下步骤:从存储在第一存储器中的页面数据当中去除重复页面数据;将去除重复页面数据之后剩余的页面数据与预存储在第二存储器中的页面数据进行比较;根据作为所述比较的结果所述重复页面数据是否位于所述第二存储器的热簇中而选择性地去除所述重复页面数据;以及基于选择性地去除重复页面数据之后剩余的页面数据生成快照映像。
在一个实施方式中,第一存储器可以包括随机存取存储器(RAM),并且第二存储器可以包括闪存存储器。
在一个实施方式中,从存储在所述第一存储器中的所述页面数据当中去除所述重复页面数据的步骤可以包括以下步骤:针对存储在所述第一存储器中的所述页面数据逐页面计算散列值;以及确定所计算的散列值是否是重复的,其中,针对具有重复散列值的页面数据,仅关于所述重复页面数据的位置信息被存储在映射表中。
在一个实施方式中,可以在所述映射表中设置存储在所述第一存储器中的所述页面数据的逻辑地址与存储在所述第二存储器中的页面数据的物理地址之间的映射关系。
在一个实施方式中,选择性地去除所述重复页面数据的步骤可以包括以下步骤:执行簇管理;以及通过逐页计算出的散列值来确定在主去重复101之后剩余的所述页面数据与预存储在所述第二存储器中的所述页面数据是否重叠,其中,当具有重复散列值的页面数据位于第二存储器的热簇中时,可以仅将关于所述重复页面数据的位置信息存储在映射表中。
在一个实施方式中,执行所述簇管理的步骤可以包括以下步骤:将所述主去重复之后剩余的所述页面数据与包括在位于所述第二存储器中的块中的页面数据进行比较;当作为所述比较的结果在所述块中存在重复页面数据时,将所述块中的使用计数器增加预定值;以及基于针对包括位于所述第二存储器上的预定数量的所述块的簇的块使用计数器的值来指定热块和热簇。
在一个实施方式中,该方法还可以包括以下步骤:当所述块使用计数器的值大于第一阈值时,指定所述热块;以及当所述热块的数量大于第二阈值并且数据碎片化小于第三阈值时,指定所述热簇。
在一个实施方式中,生成所述快照映像的步骤可以包括以下步骤:压缩辅去重复之后剩余的页面数据;以及分配用于存储经压缩的页面数据的簇空间。
在一个实施方式中,该方法还可以包括将所生成的快照映像存储在第二存储器中的步骤。
在本公开的另一方面,本文提供了一种数字装置,该数字装置包括:第一存储器;第二存储器,所述第二存储器被配置为存储基于存储在所述第一存储器中的页面数据生成的快照映像;以及控制器,所述控制器被配置为生成所述快照映像,其中,所述控制器被配置为:执行从存储在所述第一存储器中的所述页面数据当中去除重复页面数据的主去重复,将去除所述重复页面数据之后剩余的页面数据与预存储在所述第二存储器中的页面数据进行比较;根据所述重复页面数据是否位于所述第二存储器的热簇中而执行选择性地去除所述重复页面数据的辅去重复;以及基于所述辅去重复之后剩余的页面数据生成快照映像。
有益效果
本发明具有以下有益效果。
根据本公开的各个实施方式当中的一个实施方式,当系统关机时,可以生成与存储在RAM中的页面数据相对应的快照映像,并且可以使用该快照映像来提供快速并且稳定的启动。
根据本公开的各个实施方式当中的另一实施方式,当生成用于休眠启动的快照映像时,可以通过省略重复页面数据来减少要存储的快照映像的大小。
根据本公开的各个实施方式当中的另一实施方式,可以使当通过页面数据的去重复生成快照映像时不可避免地出现的数据碎片化最小化。
根据本公开的各个实施方式当中的另一实施方式,通过降低用作快照映像的存储空间的闪存存储器的使用频率,可以显著地抑制寿命可靠性的劣化。
本公开中可获得的效果不限于上述效果,并且根据以下描述,本领域普通技术人员可以清楚地理解未提及的其它效果。
附图说明
图1是示出在生成用于休眠启动的快照映像时传统技术与本公开之间的差异的框图。
图2是示出根据本公开的实施方式的对存储在第一存储器中的页面数据执行主去重复的操作的流程图。
图3是示出根据本公开的实施方式的对在主去重复之后剩余的页面数据执行辅去重复的操作的流程图。
图4是示出根据本公开的实施方式的执行簇管理的操作的流程图。
图5是示出根据本公开的实施方式的执行块使用计数的操作的流程图。
图6是示出根据本公开的实施方式的指定热簇的操作的流程图。
图7是示出根据本公开的实施方式的生成快照映像的操作的流程图。
图8是示出根据本公开的实施方式的分配簇和压缩页面的操作的流程图。
图9的(a)是示出当施加系统电力时根据本公开的快照映像的启动序列的流程图。
图9的(b)是示出当系统电源关闭时根据本公开的生成快照映像的过程的流程图。
图10示出了用于解释在生成快照映像时编程或存储在第二存储器中的快照映像的大小方面的传统技术与本公开之间的差异的数据。
具体实施方式
在下文中,将参照附图详细描述本文公开的示例性实施方式。在所有附图中,相同的附图标记是指相同或相似的部件,并且将省略对其的多余描述。如本文所使用的,后缀“模块”和“单元”被添加或可互换地使用以便于准备本说明书,并且不旨在暗示不同的含义或功能。在本公开的实施方式的以下描述中,将省略已知技术的详细描述以避免使本公开的主题变得模糊。附图旨在帮助理解本文所公开的实施方式,并且不应被解释为包括本公开的精神和范围内包括的所有修改、等同物和替代物。
应注意,本公开的以下实施方式仅旨在实现本公开,而不旨在限制或限定本公开的范围。本公开所属领域的技术人员可以从本公开的详细描述和实施方式容易地推断出的内容应被解释为在本公开的范围内。
以上详细说明不应解释为在所有方面是说明性的而非限制性的。本公开的范围应当由所附权利要求的合理解释来确定,并且在本公开的等效范围内的所有修改都被包括在本公开的范围内。
本文描述的启动装置或启动方法可以应用于诸如移动电话、智能电话、膝上型计算机、上网本、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航系统、数字TV、台式计算机、可携式摄像机、数码相机和MP3播放器的各种终端,但不限于此。
图1是示出在生成用于休眠启动的快照映像时传统技术与本公开之间的差异的框图。
参照图1,第一存储器110通常是指诸如RAM的系统存储器,并且数据逐页面存储在系统存储器中。
当数字装置的系统关机时,用于休眠启动的传统快照映像生成技术在不处理存储在第一存储器110中的页面数据的情况下生成快照映像,并将其存储在第二存储器120中。在本公开中,所生成的快照映像的大小可以通过经由主去重复操作和辅去重复操作去除重复页面来减小,而不是原样使用存储在第一存储器110中的页面数据。
这里,主去重复操作是从存储在第一存储器当中的页面数据中去除重复页面数据的操作,并且辅去重复操作是从在主去重复操作之后剩余的页面数据当中选择性地去除与第二存储器中的页面数据重叠的页面数据的操作。
另外,去除重复页面数据并不意味着删除已经写入第一存储器110上的页面数据,而是意指例如设置为仅存储针对重复页面数据的原始页面数据,并且仅存储关于针对剩余重复页面数据的对应的原始页面数据的位置信息。
在主去重复操作101中,原始页面数据意指在重复页面数据当中位于较高优先级的页面数据。在辅去重复操作103中,原始页面数据意指在重复页面数据当中存储在第二存储器120的热簇区域中的页面数据。
当基于通过去重复设置存储在第一存储器110中的页面数据生成快照映像时,除了原始页面数据之外,不需要存储重复页面数据,并且仅存储指示原始页面数据的位置的信息。因此,与传统技术相比,可以显著地减少新编程或存储在第二存储器120中的数据的大小。
根据本公开的第二存储器120意指例如用于数据存储的非易失性存储器,并且包括闪存存储器。
下文描述闪存存储器以用于理解本公开。在闪存存储器的情况下,每单元的编程(或写入)次数(寿命)通常为约1000到100000。这取决于闪存存储器的编程类型。单级单元(SLC)的寿命最高约100000次,多级单元(MLC)的寿命最高约10000次,并且三级单元(TLC)的寿命最高约1000次。
因此,当闪存存储器被用作第二存储器120时,闪存存储器的寿命随着存储在针对快照映像的闪存存储器中的页面数据的大小的增大而减小。
图2是示出根据本公开的实施方式的对存储在第一存储器110中的页面数据执行主去重复的操作101的流程图。
图1所示的主去重复操作101包括作为另一实施方式的图2所示的操作中的一些或全部。
首先,执行计算针对存储在第一存储器110中的页面数据的散列值(hash value)的操作(S210)。散列值意指使用散列函数获得的固定长度的值。重复散列值可以被视为重复页面数据。
可以使用例如消息-摘要算法5(MD5)和安全散列算法(SHA)中的至少一个的密码散列函数来计算散列值。散列函数可以实现为软件或硬件块(去重复模块)。
基于所计算的散列值来确定数据是否是重复页面数据(S220)。针对除了原始页面数据之外的剩余的重复页面数据,仅将指示原始页面数据的位置的信息存储在映射表中(S230),并将对应的页面数据设置为不另外存储在第二存储器120中(S240)。因此,在新生成的快照映像中仅存储关于重复页面数据的位置信息,并且不另外存储页面数据本身。由此,可以减少所存储的数据的大小。
映射表(未示出)表示存储在第一存储器110中的页面数据的逻辑地址和存储在第二存储器120中的页面数据的物理地址之间的映射关系。
存储在第一存储器110中的页面数据的逻辑地址包括关于基于存储在第一存储器110中的页面数据的物理地址的主去重复和辅去重复之后的经去重复的页面数据集的位置信息。
存储在第二存储器120中的页面数据的物理地址表示具有逻辑地址的页面数据中的每一者被实际存储在第二存储器120中的物理空间。
图3是示出根据本公开的实施方式的对在主去重复操作101之后剩余的页面数据执行辅去重复的操作103的流程图。
根据另一实施方式,图1所示的辅去重复操作103可以如图3所示来实现,并且包括这些操作中的一些或全部。
辅去重复操作103是根据数据是否属于第二存储器120的热簇(cluster),与预存储在第二存储器120中的快照映像相比选择性地去除重复页面数据的操作。
预存储的快照映像是指当执行休眠启动的数字装置第一次操作并且其系统关机时,在仅对存储在第一存储器110中的页面数据执行主去重复之后立即存储在第二存储器120中的页面数据。
另外,首先生成的快照映像包括簇表和映射表以便于之后在辅去重复中使用。
簇表是包含关于存储快照映像的簇的信息的表。多个页面数据可以存储在一个簇中,并且指示页面数据中的每一者的散列值的信息被存储在簇表中。
这里,簇是用于存储数据的特定大小的区域。在本公开中,一个页面的页面数据被存储在一个页面空间中,并且聚集特定数量的页面以构成一个块。特定数量的块构成簇单元。通常,需要特定数量的簇来存储快照映像。
辅去重复操作103以执行簇管理开始(S310)。首先,通过簇管理针对每个簇计数冗余使用的数量,并指定热簇。
此后,检查在主去重复操作101之后剩余的页面数据是否与预存储在第二存储器120中的快照映像中的页面数据重叠。
当存在重复页面数据时,确定页面数据是否位于第二存储器120中的热簇中(S320)。
作为确定S320的结果,当重复页面数据属于热簇时,将其设置为仅将关于原始页面数据的位置信息添加到重复页面数据的映射表中,排除存在于热簇中的原始页面数据(S330)。
作为确定S320的结果,当重复页面数据不属于热簇时,将重复页面数据设置为存储在针对快照映像的第二存储器120中的新簇空间中而无需去重复(S340)。
如上所述划分情况并且即使页面数据重复,通过分配单独的簇空间来存储页面数据旨在使数据碎片化最小化。
通常,通过页面数据的去重复,当生成快照映像时,要在第二存储器120中另外编程的数据大小减小。然而,当启动系统时,因为快照映像的数据被存储在多个分离的空间中而不是连续的存储空间中,所以数据加载时间可能较长。
因此,从休眠启动速度的角度来看,为了使数据碎片化最小化,页面数据可能导致数据碎片化不被去重复,而是被连续地存储在单独分配的存储空间中,而不是去除所有重复页面数据。
热簇是为了解决数据碎片化问题而在本公开中新引入的概念,稍后将提供其详细描述。
图4是示出根据本公开的实施方式的执行簇管理的操作S310的流程图。
在另一实施方式中,执行图3所示的簇管理的操作S310可以如图4所示实现,并且包括该操作中的一些或全部。
簇管理是更新存储在第二存储器120中的快照映像所位于的簇的信息的过程,并且主要分为对块的冗余使用次数进行计数(S410)和指定热簇(S420)。
对块的冗余使用次数进行计数(S410)是更新关于存储了构成预存储快照映像的页面数据的块的信息的操作。根据该操作,当主去重复之后剩余的页面数据与块中的页面数据重叠时,块使用计数器从参考值增加特定值。
当首先创建簇表时,块使用计数器可以被设置为特定值(即,作为参考值的0或正数)。当块使用计数器被设置为0时,根据存在或不存在重复页面,块使用计数器从0增加特定值。当从开始指定除了0之外的特定正值时,块使用计数器可以被设置为根据重复页的存在或不存在而增加或减小特定值。
指定热簇(S420)是基于热块的数量和数据碎片化的程度来确定块聚集的簇是否是热簇的操作。
当执行簇管理时(S310),也更新预存储的簇表信息(S650)。该信息包括簇是否是热簇、页面数据的散列值以及针对块的重复使用次数的参考值。
图5是示出根据本公开的实施方式的执行块使用计数的操作S410的流程图。
在另一实施方式中,执行图4所示的块使用计数的操作S410可以如图5中那样实现,并且包括一些或全部操作。
块是数据存储空间,其是页面的上级概念和簇的下级概念。在一个块中存在特定量的页面空间。
基于存储了现有快照映像的页面数据的第二存储器120的块,检查是否存在与主去重复操作101之后剩余的页面数据重叠的页面数据(S510)。当在块中存在重复页面数据时,块使用计数器从参考值增加特定值(S520)。
在检查是否存在重复数据时,基于页面数据的散列值是否如在主去重复的情况下那样被重复来确定重复数据的存在。在这种情况下,基于预存储在第二存储器120中的簇表的散列值信息和在主去重复中使用的散列值信息来执行散列值的比较(S510)。
图6是示出根据本公开的实施方式的指定热簇的操作S420的流程图。
在另一实施方式中,图4所示的指定热簇的操作S420可以如图6所示实现,并包括一些或全部操作。
基于在块使用计数操作S410中获得的块的重复使用次数,当该块的块使用次数大于第一阈值时,将该块指定为热块(S610)。
因此,例如,热块表示具有多个重复页面数据的块。
此后,检查包括预定数量的块的每个簇中的热块的数量,并且将其与第二阈值进行比较(S620)。
当存在于簇中的热块的数量大于第二阈值时,检查簇中数据碎片化的程度。
当数据碎片化的程度大于第三阈值时,将该簇指定为热簇(S630),并将其用作针对辅数据去重复的参考。
在具有少于特定数量的热块的簇或不满足针对数据碎片化的条件的簇的情况下,任何重复页面数据在辅去重复操作中不经受去重复,重复不被去重复,而是被设置为通过指定新的簇来存储。此外,这种信息存储在簇表中。
这里,由于热簇是存在多个重复页面数据并且数据碎片化程度小的区域,所以在随后的启动操作中可以高速加载属于热簇的数据。
另一方面,针对不属于热簇的重复页面数据,通过分配新的簇并在其中连续存储数据,可以防止将来的数据加载中的数据碎片化。
另外,除了热簇之外还可以指定冷簇。冷簇是指具有特定数量的与热块相对的冷块的簇。
冷块是指具有小于或等于特定值的重复使用次数的块,这意指几乎没有重复页面数据的块。
因此,在重复页面数据属于冷簇的情况下,可以通过分配新簇并在其中连续存储数据来防止将来的加载操作中的数据碎片化。
可以同时指定热簇和冷簇,或者可以仅指定它们中的一个。虽然在本公开的实施方式中描述了仅指定热簇作为示例,但是本公开不限于此。
图7是示出根据本公开的实施方式的生成快照映像的操作105的流程图。
在另一实施方式中,生成图1所示的快照映像的操作105可以如图7中那样实现,并且包括一些或全部操作。
首先,压缩在完成辅去重复之后剩余的页面数据,并且分配用于存储经压缩的页面数据的簇空间(S710)。
由于所分配的簇是页面数据实际存储在第二存储器120中的物理地址,因此基于相关信息来更新映射表(S720)。
图8是示出根据本公开的实施方式的分配簇和压缩页面的操作S710的流程图。
在另一实施方式中,图7所示的分配簇和压缩页面的操作S710可以如图8所示实现,并包括一些或全部操作。
首先,压缩新包括在快照映像中的页面数据(S810),并且标识经压缩的页面将被存储在簇中的空闲空间(S820)。
当在簇中存在空闲空间时,设置为将压缩页面数据存储在现有簇中(S830)。当空间不足以存储数据时,设置为分配新的簇并在其中存储数据(S840)。
图9的(a)是示出当施加系统电力时根据本公开的快照映像的启动序列的流程图。
参照图9的(a),在数字装置执行休眠启动的情况下,当施加电力时(S910),执行启动加载程序(S911),并执行初始化硬件装置的主板初始化操作(S912)。然后,将存储在第二存储器120中的快照映像加载到第一存储器110中(S913)。此后,基于关于快照映像的页面数据信息,装置就在关闭之前恢复到系统状态(S914)。
图9的(b)是示出当系统电源关闭时根据本公开的生成快照映像的过程的流程图。
当传送断电命令时(S920),设置不向除了第一存储器110之外的剩余硬件区域供电的省电模式(S921)。
因为通常诸如RAM的系统存储器是易失性存储器,并且当断电时,存储在存储器中的信息丢失,所以向第一存储器110供电。因此,当基于第一存储器110中的页面数据生成快照映像时,必须保持供电。
此后,根据是否存在重复数据,对存储在第一存储器110中的页面数据执行主去重复(S922)和辅去重复(S923)。然后,基于剩余的页面数据生成快照映像,并将所生成的快照映像存储在第二存储器120中(S924)。此后,关闭系统(S925)。
图10示出了用于解释在生成快照映像时编程或存储在第二存储器120中的快照映像的大小方面的传统技术和本公开之间的差异的数据。
该数据是通过对作为汽车的电子部件之一的AVN(音频视频导航)执行性能测试而获得的结果。在AVN中,第一存储器是RAM,并且第二存储器是闪存存储器。
如图10所示,当使用传统技术存储快照映像时,大约300MiB的数据被另外编程到闪存存储器中。
然而,在本公开中,当生成快照映像时,执行主去重复操作和辅去重复操作,并且因此新编程的数据约为20MiB(传统技术中数据的约十分之一)。
如上所述,针对闪存存储器,可以在每个单元上执行程序的次数是有限的。因此,每次断电时频繁地存储大量数据可能降低寿命可靠性。因此,图10所示的结果可以表明,与传统技术相比,本公开的技术可以将寿命可靠性提高10倍或更多。
另外,根据本公开的辅去重复的效果可以通过在快照映像的加载速度方面的比较来确认。
典型地,执行休眠启动的目的是数字装置的快速启动,但是多次去重复可能加速数据碎片化,从而使得连续数据读取困难并且阻碍快速启动。
然而,通过辅去重复操作103,只有当重复页面数据位于热簇中时才执行去重复,并且在其它情况下,分配新的簇以连续地存储数据。因此,当后来加载数据时,可以执行连续读取,并且可以防止由数据碎片化引起的启动速度的降低。
从图10可以看出,快照映像的加载速度约为140MiB/sec,并且在传统技术和本发明之间是类似的。
也就是说,当快照映像被加载到RAM中时,从闪存存储器读取的数据的大小是相似的。因此,可以看出,在根据本公开的快照映像中,数据碎片化不是问题。
本说明书中公开的用于控制数字装置的方法可以被实现为数字装置中提供的处理器可读记录介质上的处理器可读代码。处理器可读记录介质包括存储有处理器可读的数据的所有类型的记录装置。处理器可读记录介质的示例包括ROM、RAM、CD-ROM、磁带、软盘和光学数据存储装置,并且还包括如在互联网上发送的载波形式的实现。另外,处理器可读记录介质可以被分布到通过网络连接的计算机系统,使得可以按照分布式方式存储和执行处理器可读代码。
尽管已经参照附图描述了本公开的实施方式,但是它们仅仅是示例,并且本公开不限于特定实施方式。本公开所属领域的普通技术人员可以做出的各种修改也在如权利要求所限定的本公开的范围内。不应该从本公开的精神单独理解这些修改。
Claims (13)
1.一种用于控制数字装置以执行启动过程的方法,所述方法包括以下步骤:
从存储在第一存储器中的页面数据当中去除重复页面数据;
将去除所述重复页面数据之后剩余的页面数据与预存储在第二存储器中的页面数据进行比较;
根据作为所述比较的结果所述重复页面数据是否位于所述第二存储器的热簇中而选择性地去除所述重复页面数据;以及
基于选择性地去除所述重复页面数据之后剩余的页面数据生成快照映像。
2.根据权利要求1所述的方法,其中,所述第一存储器包括随机存取存储器RAM,并且
其中,所述第二存储器包括闪存存储器。
3.根据权利要求1所述的方法,其中,从存储在所述第一存储器中的页面数据当中去除所述重复页面数据的步骤包括以下步骤:
针对存储在所述第一存储器中的页面数据逐页面计算散列值;以及
确定所计算的散列值是否是重复的,
其中,针对具有重复散列值的页面数据,仅关于所述重复页面数据的位置信息被存储在映射表中。
4.根据权利要求3所述的方法,其中,在所述映射表中设置存储在所述第一存储器中的页面数据的逻辑地址与存储在所述第二存储器中的页面数据的物理地址之间的映射关系。
5.根据权利要求1所述的方法,其中,选择性地去除所述重复页面数据的步骤包括以下步骤:
执行簇管理;以及
通过逐页计算出的散列值来确定在主去重复之后剩余的页面数据与预存储在所述第二存储器中的页面数据是否重叠,
其中,当具有重复散列值的页面数据位于所述第二存储器的热簇中时,仅将关于所述重复页面数据的位置信息存储在映射表中。
6.根据权利要求5所述的方法,其中,执行所述簇管理的步骤包括以下步骤:
将所述主去重复之后剩余的页面数据与包括在位于所述第二存储器中的块中的页面数据进行比较;
当作为所述比较的结果在所述块中存在重复页面数据时,将所述块中的使用计数器增加预定值;以及
基于针对包括位于所述第二存储器上的预定数量的所述块的簇的块使用计数器的值来指定热块和热簇。
7.根据权利要求6所述的方法,该方法还包括以下步骤:
当所述块使用计数器的值大于第一阈值时,指定所述热块;以及
当所述热块的数量大于第二阈值并且数据碎片化小于第三阈值时,指定所述热簇。
8.根据权利要求1所述的方法,其中,生成所述快照映像的步骤包括以下步骤:
压缩选择性地去除所述重复页面数据之后剩余的页面数据;以及
分配用于存储经压缩的页面数据的簇空间。
9.根据权利要求8所述的方法,该方法还包括以下步骤:
将所生成的快照映像存储在所述第二存储器中。
10.一种数字装置,该数字装置包括:
第一存储器;
第二存储器,所述第二存储器被配置为存储基于存储在所述第一存储器中的页面数据生成的快照映像;以及
控制器,所述控制器被配置为生成所述快照映像,
其中,所述控制器被配置为:
从存储在所述第一存储器中的页面数据当中去除重复页面数据;
将去除所述重复页面数据之后剩余的页面数据与预存储在所述第二存储器中的页面数据进行比较;
根据作为所述比较的结果所述重复页面数据是否位于所述第二存储器的热簇中而选择性地去除所述重复页面数据;并且
基于选择性地去除所述重复页面数据之后剩余的页面数据生成快照映像。
11.根据权利要求10所述的数字装置,其中,所述第一存储器包括随机存取存储器RAM,并且
其中,所述第二存储器包括闪存存储器。
12.根据权利要求10所述的数字装置,其中,所述控制器包括:
第一控制器,所述第一控制器被配置为对所述第二存储器中的块使用次数进行计数;以及
第二控制器,所述第二控制器被配置为在所述第二存储器中指定热簇,
其中,所述第一控制器执行以下操作:
将包括在位于所述第二存储器中的块中的页面数据与主去重复之后剩余的页面数据进行比较;以及
当所述块中存在重复页面数据时,将所述块中的使用计数器增加预定值,
其中,所述第二控制器基于针对包括位于所述第二存储器上的预定数量的所述块的簇的块使用计数器的值来指定热块和热簇。
13.根据权利要求12所述的数字装置,其中,所述第二控制器执行以下操作:
当所述块使用计数器的值大于第一阈值时,指定所述热块;以及
当所述热块的数量大于第二阈值并且数据碎片化小于第三阈值时,指定所述热簇。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/006425 WO2020241918A1 (ko) | 2019-05-29 | 2019-05-29 | 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113316766A true CN113316766A (zh) | 2021-08-27 |
CN113316766B CN113316766B (zh) | 2023-09-26 |
Family
ID=73552863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980089758.8A Active CN113316766B (zh) | 2019-05-29 | 2019-05-29 | 用于执行启动过程的数字装置及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11579892B2 (zh) |
EP (1) | EP3979075A4 (zh) |
KR (1) | KR20220002242A (zh) |
CN (1) | CN113316766B (zh) |
WO (1) | WO2020241918A1 (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009187134A (ja) * | 2008-02-04 | 2009-08-20 | Ricoh Co Ltd | 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体 |
US20100070724A1 (en) * | 2008-09-16 | 2010-03-18 | Hitachi, Ltd. | Storage system and method for operating storage system |
KR20130017748A (ko) * | 2011-08-12 | 2013-02-20 | 아주대학교산학협력단 | 메모리 컨트롤러 및 이의 데이터 관리방법 |
CN104484480A (zh) * | 2014-12-31 | 2015-04-01 | 华为技术有限公司 | 基于重复数据删除的远程复制方法及装置 |
CN104915265A (zh) * | 2014-03-10 | 2015-09-16 | 联想(北京)有限公司 | 数据备份方法和电子设备 |
US20160012071A1 (en) * | 2014-07-11 | 2016-01-14 | Quantum Corporation | Immediate Recovery Of Virtual Machine Using Deduplication Device and Snapshots |
US20170116087A1 (en) * | 2015-10-23 | 2017-04-27 | Fujitsu Limited | Storage control device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9589008B2 (en) * | 2013-01-10 | 2017-03-07 | Pure Storage, Inc. | Deduplication of volume regions |
JP2014170430A (ja) * | 2013-03-04 | 2014-09-18 | Nec Corp | メモリ管理方法、データ要素回収方法とデータ要素回収プログラム、情報処理装置およびその制御方法と制御プログラム |
-
2019
- 2019-05-29 WO PCT/KR2019/006425 patent/WO2020241918A1/ko unknown
- 2019-05-29 US US17/415,471 patent/US11579892B2/en active Active
- 2019-05-29 EP EP19930864.4A patent/EP3979075A4/en active Pending
- 2019-05-29 CN CN201980089758.8A patent/CN113316766B/zh active Active
- 2019-05-29 KR KR1020217018535A patent/KR20220002242A/ko not_active Application Discontinuation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009187134A (ja) * | 2008-02-04 | 2009-08-20 | Ricoh Co Ltd | 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体 |
US20100070724A1 (en) * | 2008-09-16 | 2010-03-18 | Hitachi, Ltd. | Storage system and method for operating storage system |
KR20130017748A (ko) * | 2011-08-12 | 2013-02-20 | 아주대학교산학협력단 | 메모리 컨트롤러 및 이의 데이터 관리방법 |
CN104915265A (zh) * | 2014-03-10 | 2015-09-16 | 联想(北京)有限公司 | 数据备份方法和电子设备 |
US20160012071A1 (en) * | 2014-07-11 | 2016-01-14 | Quantum Corporation | Immediate Recovery Of Virtual Machine Using Deduplication Device and Snapshots |
CN104484480A (zh) * | 2014-12-31 | 2015-04-01 | 华为技术有限公司 | 基于重复数据删除的远程复制方法及装置 |
US20170116087A1 (en) * | 2015-10-23 | 2017-04-27 | Fujitsu Limited | Storage control device |
Also Published As
Publication number | Publication date |
---|---|
EP3979075A4 (en) | 2023-01-11 |
US20220066785A1 (en) | 2022-03-03 |
US11579892B2 (en) | 2023-02-14 |
KR20220002242A (ko) | 2022-01-06 |
WO2020241918A1 (ko) | 2020-12-03 |
CN113316766B (zh) | 2023-09-26 |
EP3979075A1 (en) | 2022-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210182209A1 (en) | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device | |
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN109358804B (zh) | 一种数据处理方法、装置及闪存设备 | |
US8103820B2 (en) | Wear leveling method and controller using the same | |
US8886912B2 (en) | Methods and apparatus for reallocating addressable spaces within memory devices | |
US8392649B2 (en) | Memory storage device, controller, and method for responding to host write commands triggering data movement | |
US20110099325A1 (en) | User device and mapping data management method thereof | |
US20120005557A1 (en) | Virtual copy and virtual write of data in a storage device | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US20130138871A1 (en) | Flash Memory Device and Data Access Method for Same | |
CN102375788A (zh) | 为具有非易失性存储器的系统动态地分配功率预算的方法及装置 | |
US9424177B2 (en) | Clock switching method, memory controller and memory storage apparatus | |
US8589647B2 (en) | Apparatus and method for synchronizing a snapshot image | |
US10620874B2 (en) | Memory management method, memory control circuit unit and memory storage apparatus | |
US20130091322A1 (en) | Electronic System and Memory Managing Method Thereof | |
US20130290609A1 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
US20140219041A1 (en) | Storage device and data processing method thereof | |
CN103389941B (zh) | 存储器格式化方法、存储器控制器及存储器存储装置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
CN117033268A (zh) | 一种ssd控制器、数据处理方法、设备及存储介质 | |
CN113316766B (zh) | 用于执行启动过程的数字装置及其控制方法 | |
CN105868046B (zh) | 存储装置中管理、写入及加载固件代码的方法 | |
US20110264848A1 (en) | Data recording device | |
CN105630697A (zh) | 一种利用mram存储小文件的存储结构 | |
CN115525208A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |