CN101398783A - 存储装置以及数据重复排除方法 - Google Patents
存储装置以及数据重复排除方法 Download PDFInfo
- Publication number
- CN101398783A CN101398783A CNA2008101089040A CN200810108904A CN101398783A CN 101398783 A CN101398783 A CN 101398783A CN A2008101089040 A CNA2008101089040 A CN A2008101089040A CN 200810108904 A CN200810108904 A CN 200810108904A CN 101398783 A CN101398783 A CN 101398783A
- Authority
- CN
- China
- Prior art keywords
- data
- flash memory
- storage area
- logical address
- rid
- 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
- 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
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明提供存储装置以及数据重复排除方法,能够在实现作为存储介质的闪速存储器的长寿命化的同时,有效利用闪速存储器。在闪速存储器芯片所提供的存储区域上定义的物理单位区域内的规定的管理信息存储区域中,存储对应的1个或多个逻辑单位区域的逻辑地址,来进行数据重复排除处理,并且针对每个物理单位区域,对管理信息存储区域中存储的逻辑地址的总数量即使用度、和与该物理单位区域对应的有效的逻辑地址数量即重复度进行管理,对于使用度和重复度的差超过既定值的物理单位区域,执行使该物理单位区域恢复初始状态的再生处理。
Description
技术领域
本发明涉及存储装置以及数据重复排除方法,尤其适用于以闪速存储器作为存储介质的存储装置。
背景技术
以往,在存储装置中,作为数据存储介质而使用了例如磁盘或光盘等可以随机存取的非易失性存储介质。现在主流的存储装置具备大量小型磁盘驱动器。
另外,随着近年的半导体技术的进步,开发了可以统一清除的非易失性半导体存储器。作为这种非易失性半导体存储器存在例如闪速存储器。在以闪速存储器作为存储介质的存储装置中,与具备大量小型磁盘驱动器的存储装置相比,认为寿命、节电以及存取时间等方面更加优秀。
在此对闪速存储器进行说明。在闪速存储器中,块(Block)是统一清除数据的单位的存储区域,页(Page)是读写数据的单位。如后所述,在1个块内设有多个页。另外,闪速存储器因其特性而无法直接改写数据。即,闪速存储器,在改写所存储的数据时,使存储的有效数据保存到其它块中。然后,以块为单位清除所存储的数据。然后,在清除了数据的块中写入数据。
具体而言,闪速存储器可以将“1”改写为“0”,但无法将“0”改写为“1”。因此,在闪速存储器中,在数据改写时清除在块中存储的数据的全体。这样,闪速存储器中的数据的改写,伴随着每个块的数据的清除。但是,闪速存储器的每一个块的数据清除所需的时间,与写入1页的数据所需的时间相比,长约一个数量级。因此,为进行1页的数据的改写而进行每次1块的数据清除时,闪速存储器的数据改写性能悲观地恶化。即,作为存储介质而使用闪速存储器时,必须通过可以隐蔽从闪速存储器清除数据的时间的算法来写入数据。
在通常的针对闪速存储器的数据改写动作中,以向未使用区域的追加方式来进行数据改写,不在每次改写数据时清除数据。但是,当重复数据的改写时,闪速存储器内的未使用区域减少,因此需要清除已写入闪速存储器的不需要的数据,使存储区域成为可以再利用的状态。因此,仅将包含旧数据的块内的有效数据拷贝到未使用区域,清除拷贝源的块来使其成为可以再利用的状态的块再生处理(以下将其称为“再生(reclamation)”),对于闪速存储器的数据高速改写是必须的。以无效数据增多的块为对象来执行该再生。
另一方面,在闪速存储器中,数据清除的次数存在限制。例如,保证了每块多达10万次的清除次数。数据的改写集中、清除次数增大的块存在无法清除数据而不能使用的问题。因此,以闪速存储器作为存储介质的情况下,必须进行防止数据清除处理集中于特定块的清除次数平均化处理。
为了以上所述的数据清除时间的隐蔽和数据清除次数的平均化,在闪速存储器模块内写入数据时,进行从逻辑地址向物理地址的地址变换处理。闪速存储器模块由一个以上的闪速存储器芯片、和控制向该闪速存储器芯片的数据读写的闪速存储器控制器构成。该闪速存储器控制器进行逻辑地址和物理地址的变换,而且,为了保存地址变换表,而在闪速存储器中的每个物理单位区域、即每个物理块的规定的逻辑地址存储区域中存储了与该物理块对应的逻辑单位区域、即逻辑块的逻辑地址。
另外,为了降低存储装置的容量成本,数据重复排除技术(也被称为deduplication或者数据重复去除技术)受到了关注。数据重复排除技术是将存储了相同数据的多个逻辑块与存储了该数据的一个物理块对应起来的技术,可以节约存储的数据容量(参照专利文献1)。通过数据重复排除技术,可以降低数据的改写次数,因此通过将该数据重复排除技术应用于以闪速存储器作为存储介质的存储装置,可以期待闪速存储器的长寿命化。
【专利文献1】美国专利6928526号
发明内容
在以闪速存储器作为存储介质的存储装置中应用数据重复排除技术时,需要在每个物理块中保持与该物理块对应的各逻辑块的逻辑地址。
然而,每个物理块的逻辑地址存储区域是有限的,因此将大量逻辑地址写入该逻辑地址存储区域时,该逻辑地址存储区域的容量不足。另外,闪速存储器是无法进行数据重写(overwrite)的存储介质,因此对重复写入状态的物理块反复进行数据更新时,无效的逻辑地址增加,数据重复排除的效率降低。
因此,在以闪速存储器作为存储介质的存储装置中应用数据重复排除技术时,需要方便地清除在各物理块的逻辑地址区域中存储的无效逻辑地址,若可以做到这一点,则可以实现闪速存储器的长寿命化,有效地防止数据重复排除的效率恶化,使闪速存储器的使用效率提高。
另一方面,针对闪速存储器的存储区域的每个管理单位进行上述的数据重复排除。例如,在搭载有多个闪速存储器模块的存储装置中,在每个闪速存储器模块中独立地进行所述数据重复排除处理,所述多个闪速存储器模块分别搭载多个闪速存储器芯片。
然而,数据的重复不仅发生在闪速存储器模块内、在闪速存储器模块间有时数据也会重复。因此,若可以排除这种闪速存储器模块间的数据重复,则可以进一步提高数据重复排除的效率。
考虑到以上各点而提出本发明,第一,提出了可以实现作为存储介质的闪速存储器的长寿命化,同时可以提高闪速存储器的使用效率的存储装置以及数据重复排除方法;第二,提出了可以进一步提高数据重复排除的效率的存储装置以及数据重复排除方法。
为了解决所述问题,在本发明中,提供一种搭载了一个或多个闪速存储器模块的存储装置,其特征在于,所述闪速存储器模块具备:提供存储区域的至少一个闪速存储器芯片;以及控制针对所述闪速存储器芯片的数据读写的控制器,所述控制器,在所述闪速存储器芯片提供的所述存储区域上定义的物理单位区域内的规定的管理信息存储区域中,存储对应的一个或多个逻辑单位区域的逻辑地址,由此进行排除重复数据的数据重复排除,并且针对每个所述物理单位区域管理使用度和重复度,所述使用度是所述管理信息存储区域中存储的所述逻辑地址的总数量,所述重复度是该物理单位区域所对应的有效的所述逻辑地址的数量,对于所述使用度和所述重复度的差超过既定值的所述物理单位区域,执行将该物理单位区域恢复为初始状态的再生处理。
另外,在本发明中提供一种存储装置,其具备提供存储区域的多个闪速存储器模块、和控制针对所述多个闪速存储器模块的数据读写的存储控制器,其特征在于,所述存储控制器以规定单位分割数据,在所述多个闪速存储器模块中进行读写,并且对于该规定单位以上的数据大小的数据,在跨越所述多个闪速存储器模块的范围内进行排除重复数据的重复排除处理,所述多个闪速存储器模块,对于所述规定单位以下的数据大小的数据,针对每个该闪速存储器模块进行数据重复排除处理。
而且,在本发明中,提供一种排除存储装置中的数据重复的数据重复排除方法,该存储装置搭载了一个或多个闪速存储器模块,该闪速存储器模块具有分别提供存储区域的至少一个闪速存储器芯片,该数据重复排除方法的特征在于,具有以下步骤:第一步骤,在所述闪速存储器芯片提供的所述存储区域上定义的物理单位区域内的规定的管理信息存储区域中,存储对应的一个或多个逻辑单位区域的逻辑地址,来进行所述数据重复排除处理,并且,针对每个所述物理单位区域管理使用度和重复度,所述使用度是在所述管理信息存储区域中存储的所述逻辑地址的总数量,所述重复度是该物理单位区域所对应的有效的所述逻辑地址的数量;第二步骤,对于所述使用度和所述重复度的差超过既定值的所述物理单位区域,执行将该物理单位区域恢复为初始状态的再生处理。
而且,在本发明中提供一种排除存储装置中的数据重复的数据重复排除方法,该存储装置具有提供存储区域的多个闪速存储器模块、和控制针对所述多个闪速存储器模块的数据读写的存储控制器,该数据重复排除方法的特征在于,具备以下步骤:第一步骤,所述存储控制器以规定单位分割数据,在所述多个闪速存储器模块中进行读写,并且对于该规定单位以上的数据大小的数据,在跨越所述多个闪速存储器模块的范围内进行排除重复数据的重复排除处理;第二步骤,所述多个闪速存储器模块,对于所述规定单位以下的数据大小的数据,针对每个该闪速存储器模块进行数据重复排除处理。
根据本发明,可以在实现作为存储介质的闪速存储器的长寿命化的同时有效利用闪速存储器。另外,根据本发明,可以进一步提高数据重复排除的效率。
附图说明
图1是表示第1至第5实施方式的存储装置的结构的框图。
图2是表示第1至第5实施方式的通道适配器的结构的框图。
图3是表示第1至第5实施方式的存储适配器的结构的框图。
图4是表示第1至第5实施方式的闪速存储器模块的结构的框图。
图5是用于说明第1至第5实施方式的闪速存储器模块的块结构的概念图。
图6是用于说明物理块中的管理信息存储区域的概念图。
图7是用于说明物理地址以及逻辑地址的对应的概念图。
图8是用于说明物理地址以及逻辑地址的对应的概念图。
图9是用于说明地址变换表的概念图。
图10是用于说明散列值管理表的概念图。
图11是用于说明物理块管理表的概念图。
图12是用于说明第1实施方式的数据写入处理的流程图。
图13是用于说明第1实施方式的再生处理的流程图。
图14是用于说明第2实施方式的数据重复排除处理的流程图。
图15是用于说明第3实施方式的数据重复排除处理的流程图。
图16是用于说明第3实施方式的数据重复排除处理的概念图。
图17是用于说明第3实施方式的物理块的数据结构的概念图。
图18是用于说明第4实施方式的再生处理的流程图。
图19是用于说明RAID条带化动作的概念图。
图20是用于说明第5实施方式的数据重复排除处理管理表的概念图。
符号说明
1存储装置;2存储控制器;3闪速存储器模块;6A、6B存储适配器;10维护终端;50处理器;53 RAM;54 ROM;59、100物理块;60、101页;63、105、105A~105h管理信息存储区域;66逻辑地址存储区域;80地址变换表;82散列值管理表;84物理块管理表;104、104A~104h子块;120数据重复排除管理表
具体实施方式
参照以下附图,详细描述本发明的一个实施方式。
(1)第1实施方式
图1表示第1实施方式的存储装置1的结构。该存储装置1由:分别提供存储区域的多个闪速存储器模块3A~3P;和控制针对这些闪速存储器模块3A~3P的数据读写的存储控制器2构成。
存储控制器2具备:通道适配器4A、4B;高速缓冲存储器5A、5B;存储适配器6A、6B以及相互结合网7A、7B。此外,在图1中表示了各设置两个通道适配器4A、4B;高速缓冲存储器5A、5B以及存储适配器6A、6B的情况,但它们也可以各设置一个或三个以上。
相互结合网7A、7B例如由交换器等构成,将通道适配器4A、高速缓冲存储器5A以及存储适配器6A相互连接,并且将通道适配器4B、高速缓冲存储器5B以及存储适配器6B相互连接。
通道适配器A4经由通道8AA~8DA与未图示的外部的上位装置相连。同样地,通道适配器4B经由通道8AB~8DB与外部的上位装置相连。此外,上位装置是向本实施方式的存储装置1读写数据的计算机。
高速缓冲存储器5A、5B用于暂时存储从通道适配器4A、4B以及存储适配器6A、6B接收到的数据。
存储适配器6A经由通道9AA~9DA与各闪速存储器模块3A~3P分别连接,以便可以经由对应的通道9AA~9DA访问希望的闪速存储器模块3A~3P。具体而言,存储适配器6A经由通道9AA与闪速存储器模块3A~3D连接,经由通道9BA与闪速存储器模块3E~3H相连。另外,存储适配器6A经由通道9CA与闪速存储器模块3I~3L连接,经由通道9DA与闪速存储器模块3M~3P连接。
同样地,存储适配器6B经由通道9AB~9DB与各闪速存储器模块3A~3P分别连接,以便可以经由对应的通道9AB~9DB访问希望的闪速存储器模块3A~3P。具体而言,存储适配器6B经由通道9AB与闪速存储器模块3A~3D连接,经由通道9BB与闪速存储器模块3E~3H连接。另外,存储适配器6B经由通道9CB与闪速存储器模块3I~3L连接,经由通道9DB与闪速存储器模块3M~3P连接。
通道适配器4A、4B以及存储适配器6A、6B与维护终端10相连。维护终端10是具备CPU(Central Processing Unit)和存储器等信息处理资源的计算机装置,例如由笔记本型个人计算机构成。维护终端10将由存储装置1的管理者输入的设定信息发送至通道适配器4A、4B和/或存储适配器6A、6B。
此外,也可以代替通道适配器4A和存储适配器6A,而设置具备这些通道适配器4A和存储适配器6A的功能的一个适配器。
11A~11D表示RAID(Redundant Arrays of Inexpensive Disks)组。例如,RAID组11A由闪速存储器模块3A、3E、3I、3M构成。当属于RAID组11A的闪速存储器模块3A、3E、3I、3M之一、例如闪速存储器模块3A中发生故障而无法读出数据时,可以根据存储在属于相同RAID组11A的其它闪速存储器模块3E、3I、3M中的关联的数据,复原存储在该闪速存储器模块3A中的数据。
闪速存储器模块3A~3P经由网络12A与存储适配器6A相连,并且经由网络12B与存储适配器6B相连。存储控制器2和闪速存储器模块3A~3P经由网络12A、12B相互通信用于数据重复排除控制的信息等。
图2表示通道适配器4A、4B的结构。如该图2所示,通道适配器4A、4B具备:主机通道接口21、高速缓冲存储器接口22、网络接口23、处理器24、本地存储器25以及处理器外围控制部26。
主机通道接口21是用于经由通道8AA~8DA、8AB~8DB与上位装置进行通信的接口,将通道8AA~8DA、8AB~8DB上的数据传输协议与存储控制器2的内部的数据传输协议相互转换。另外,高速缓冲存储器接口22是针对相互结合网7A、7B的接口,网络接口23是用于进行与维护终端10的通信的接口。此外,主机通道接口21和高速缓冲存储器接口22经由信号线27相连。
处理器24是负责该通道适配器4A、4B全体的动作控制的处理器,根据存储在本地存储器25中的程序进行各种控制处理。例如,处理器24控制上位装置和相互结合网7A、7B之间的数据传输。
本地存储器25存储由处理器24执行的程序和表。该表由管理者设定或变更。此时,管理者将与表的设定或表的变更相关的信息输入维护终端10。维护终端10将输入的信息经由网络接口23发送至处理器24。处理器24根据接收到的信息生成或变更表,将生成或变更后的表存储在本地存储器25中。
处理器外围控制部26控制主机通道接口21、高速缓冲存储器接口22、网络接口23、处理器24以及本地存储器25间的数据传输。处理器外围控制部26例如由芯片组等构成。
图3表示存储适配器6A、6B的结构。如该图3所示,存储适配器6A、6B具备高速缓冲存储器接口31、存储通道接口32、网络接口33、处理器34、本地存储器35以及处理器外围控制部36。
高速缓冲存储器接口31是用于将该存储适配器6A、6B与相互结合网7A、7B连接的接口。另外,存储通道接口32是用于将该存储适配器6A、6B与通道9AA~9DA、9AB~9DB连接的接口,将通道9AA~9DA、9AB~9DB上的数据传输协议和存储控制器2内部的数据传输协议相互转换。此外,高速缓冲存储器接口31和存储通道接口32经由信号线37相连。
网络接口33是用于将该存储适配器6A、6B与维护终端10和闪速存储器模块3A~3P连接的接口。
处理器34是负责该存储适配器6A、6B全体的动作控制的处理器,根据存储在本地存储器35中的程序进行各种控制处理。例如,处理器34控制各闪速存储器模块3A~3P和相互结合网7A、7B间的数据传输。
本地存储器35存储由处理器34执行的程序和表。该表由管理者设定或变更。此时,管理者将与表的设定或表的变更相关的信息输入维护终端10。维护终端10将输入的信息经由网络接口33发送至处理器34。处理器34根据接收到的信息生成或变更表,将生成或变更后的表存储在本地存储器35中。
处理器外围控制部36控制高速缓冲存储器接口31、存储通道接口32、网络接口33、处理器34以及本地存储器35间的数据传输。处理器外围控制部36例如由芯片组等构成。
图4表示闪速存储器模块3A~3P的结构。闪速存储器模块3A~3P具备闪速存储器控制器41和闪速存储器42。闪速存储器42是用于存储数据的非易失性存储介质,闪速存储器控制器41进行用于对闪速存储器42读写数据或删除存储在闪速存储器42中的数据的控制处理。
该闪速存储器控制器41具备:处理器50、接口部51、内部总线52、RAM(Random Access Memory)53、ROM(Read Only Memory)54、网络接口55、闪速存储器接口部56以及数据传输部57。
闪速存储器42由多个闪速存储器芯片58构成。在闪速存储器芯片58提供的存储区域中设定多个物理块59,在该物理块59中存储数据。块59是存储器控制器41清除数据的单位。
接口部51经由通道9AA~9DA与存储控制器2内的存储适配器6A连接,并且经由通道9AB~9DB与存储控制器2内的存储适配器6B连接。并且,接口部51经由这些通道9AA~9DA、9AB~9DB收发来自存储适配器6A和存储适配器6B的数据或命令(例如SCSI命令)。
例如接口部51接收经由通道9AA~9DA、9AB~9DB从存储适配器6A或存储适配器6B发送的数据,将接收到的数据存储在存储器53中。另外,接口部51将存储器53中存储的数据经由通道9AA~9DA、9AB~9DB发送至存储适配器6A或存储适配器6B。
RAM53由可以高速读写数据的SRAM(Static RAM)或DRAM(DynamicRAM)构成,用于暂时存储由接口部51收发的数据。另外,ROM54由非易失性存储器构成,存储由处理器50执行的程序。在存储装置启动时将该程序从ROM54向RAM53拷贝,以便能够由处理器50执行。
另外,在RAM53中还存储了由处理器50参照的表。该表例如是闪速存储器42的逻辑地址和物理地址的变换表。逻辑地址是用于从闪速存储器模块3A~3P外(例如从存储适配器6A、6B)访问闪速存储器42的地址,物理地址是用于由闪速存储器控制器41访问闪速存储器42的地址。
内部总线52将处理器50、接口部51、RAM53、ROM54、网络接口55、数据传输部57以及闪速存储器接口部56相互连接,作为数据传输路径而工作。
网络接口55控制闪速存储器控制器41和存储控制器2间的通信。网络接口55经由网络12A、12B与存储适配器6A、6B相连。
闪速存储器接口部56是将闪速存储器控制器41和闪速存储器42连接的接口。
数据传输部57根据处理器50的命令,控制接口部51和RAM53以及闪速存储器42间等的数据传输。此外,由处理器50执行数据传输部57的功能时,可以省略数据传输部57。
处理器50负责闪速存储器模块3A~3P全体的动作控制,根据拷贝到RAM53中的程序进行各种控制处理。例如,处理器50参照被拷贝到RAM53中的闪速存储器42的逻辑地址和物理地址的变换表,在闪速存储器42中读写数据。另外,处理器50对于闪速存储器模块3A~3P内的块59进行再生处理(块再生处理)以及损耗平衡(wear leveling)处理(清除次数平均化处理)。
图5表示在闪速存储器芯片的存储区域中设定的块59的结构。如该图5所示,块59由几十个(例如64个)左右的页60构成。
如上所述,页60是闪速存储器控制器41在闪速存储器芯片58中读写数据的单位。例如,在NAND(Not AND)型闪速存储器的情况下,闪速存储器控制器41以20~30μs/页的速度读出数据,以0.2~0.3ms/页的速度写入数据。另外,闪速存储器控制器41以2~4ms/块的速度清除数据。
页60由作为用于存储通常的数据的区域的数据部61、作为用于存储该页60的管理信息以及纠错信息的区域的冗余部62构成。例如,每1页的容量为2112字节,将其中的2048字节设定为数据部,将64字节设定为冗余部62。
管理信息包含偏移地址(offset address)和页状态(page status)。该偏移地址是对应的块59内的该页60的相对地址。另外,页状态表示该页60是有效页、无效页、未使用页或处理过程中的页中的某种页。
纠错信息是用于检测和修正该页60的错误的信息,例如使用汉明码(Hamming code)。例如,通过由处理器50执行在RAM53或ROM54中存储的程序来生成该纠错信息。
冗余部62通常仅可以由闪速存储器控制器41访问。因此,仅数据部61是可以从存储适配器6A、6B访问的区域。换言之,可以说将逻辑地址映射到数据部61的存储器空间。
块59在规定的存储器位置具有管理信息存储区域63。该管理信息存储区域63是存储与块59内的物理地址对应的逻辑地址等的管理信息的区域。因此,从属于块59的页60的数据部61的合计中减去管理信息存储区域63而得到的容量,成为存储控制器2可以在闪速存储器模块3A~3P的每1块中存储的数据容量。
此外,在本实施方式中,为了便于说明,设在闪速存储器模块3A~3P中读写数据的访问单位是在闪速存储器42的每1块中可以存储的容量。即,存储控制器2以向闪速存储器42内的块59的数据存储容量单位,对闪速存储器模块3A~3P读写数据。
图6表示管理信息存储区域63的结构。由该图6可知,管理信息存储区域63由块管理信息存储区域64、散列(hash)值存储区域65以及逻辑地址存储区域66构成。
其中,在块管理信息存储区域64中存储该块59到目前为止的清除次数、和表示块59的状态(有效、无效、未使用或已写入)的信息。
另外,在散列值存储区域65中存储用于识别被写入该块59中的数据的信息、即散列值。该散列值可以通过存储控制器2生成,或者也可以通过闪速存储器模块3A~3P内的处理器50生成。
当通过存储控制器2生成散列值时,存储控制器2将生成的散列值和写入数据一起发送至闪速存储器模块3A~3P。通过该方法有能够降低处理器50的负荷的优点。另外,当在闪速存储器模块3A~3P内生成散列值时,例如使用生成闪速存储器模块3A~3P内的纠错信息的某种手段来生成散列值。通过该方法有能够降低存储控制器2和闪速存储器模块3A~3P间的通道负荷的优点。
而且,在逻辑地址存储区域66中存储与该块59对应的逻辑块的逻辑地址。在这种情况下,在本实施方式的存储装置1中搭载了数据重复排除功能,通过该数据重复排除功能,可以将最大8个逻辑块与一个物理块(块59)对应。因此,本实施方式的情况下,在逻辑地址存储区域66中可以存储最大8个与该块59对应的逻辑块的逻辑地址(LBA00~LBA07)。
此外,在逻辑地址存储区域66中存储的信息,只要是可以确定逻辑块的信息,则也可以是逻辑地址以外的信息。将逻辑地址存储区域66中存储的最大8个的逻辑地址中的有效逻辑地址数定义为重复度,将逻辑地址存储区域66中存储的逻辑地址的总数定义为使用度。另外,可以存储在逻辑地址存储区域66中的逻辑地址数不限于8个,可以是任意个。但是,当将过大的容量分配给逻辑地址存储区域66时,1个块59中可以存储的数据量减少,因此当决定存储的逻辑地址数时,需要考虑管理信息存储区域63的开销(overhead)。
接着,使用图7和图8,具体说明逻辑地址和物理地址的对应以及使用度和重复度。
图7表示物理地址空间70的物理块59A、59B与逻辑地址空间71的逻辑块72A~72C之间的对应关系。第一物理块59A是从物理地址“aaaa”开始的块,其中写入了数据“A”。该第一物理块59A与第一至第三逻辑块72A~72B相对应,在该第一物理块59A的逻辑地址存储区域63A中存储了所述第一至第三逻辑块72A~72C的逻辑地址(“xxxx”、“yyyy”、“zzzz”)。
在这种情况下,第一物理块59A的逻辑地址存储区域63A中存储的3个逻辑地址全部有效,因此第一物理块59A的使用度以及重复度都成为“3”。
此外,在物理地址空间70中,从物理地址“bbbb”开始的第二物理块59B是未使用块,假定在其逻辑地址存储区域63B中未存储逻辑地址。
另一方面,从这种状态起将逻辑地址空间71的第三逻辑块72C中存储的数据改写为“B”时,如图8所示,物理地址空间70中,在未使用的第二物理块59B中写入数据“B”,在该第二物理块59B的逻辑地址存储区域63B中写入逻辑地址“zzzz”(703)。
然后,存储了作为第三物理块72C的原始数据的“A”的第一物理块59A的逻辑地址存储区域66(图6)中的第三逻辑块72C的逻辑地址被重写为“0”,被无效化。该第三逻辑块72C的数据改写的结果是,第一物理块59A的使用度成为“3”,重复度成为“2”。
于是,重复度根据数据改写而增减,但使用度只增加不减少。当使用度达到逻辑地址存储区域66的可存储的逻辑地址数的最大值(例如图6中为8个)时,需要对该物理块59执行再生,使逻辑地址存储区域66成为未使用。
图9~图11表示在参照图4说明的闪速存储器模块3A~3P的RAM53内保存的、由处理器50参照的各种管理表。图9表示地址变换表80,图10表示散列值管理表82,图11表示物理块管理表84。
地址变换表80是用于将上位装置识别的逻辑地址变换为与该逻辑地址对应的物理地址的表,如图9所示,由“逻辑块地址”栏81A、“物理块地址”栏81B以及“已写入标志”栏81C构成。
在“逻辑块地址”栏81A中存储上位装置识别的逻辑地址中、与该闪速存储器模块3A~3P提供的存储区域对应的逻辑块的逻辑地址,在“物理块地址”栏81B中存储与该逻辑地址对应的物理块的物理地址。
另外,在“已写入标志”栏81C中存储已写入标志,该已写入标志表示是否已对该物理块进行了数据的写入。已写入标志是表示对应的逻辑地址空间是未使用还是已写入的标志,例如,当已写入时在“已写入标志”栏81C中存储“1”,当未使用时在“已写入标志”栏81C中存储“0”。
散列值管理表82是用于对写入该闪速存储器模块3A~3P内的物理块的数据的散列值等进行管理的表,如图10所示,由“散列值”栏83A、“物理块地址”栏83B、“控制标志”栏83C以及“逻辑地址”栏83D构成。
其中,在“散列值”栏83A中存储对应的数据的散列值,在“物理块地址”栏83B中存储该闪速存储器模块3A~3P中存储了该数据的物理块的物理地址。另外,在“控制标志”栏83C中存储用于如后所述地判定是否对该条目进行了处理的控制标志,在“逻辑块地址”栏83D中存储与存储了所述数据的物理块对应的逻辑块的逻辑地址。
此外,在散列值管理表82中,有时同一散列值与多个物理块的物理地址相对应。另外,有时针对每个散列值存储多个逻辑块的逻辑地址。
物理块管理表84是用于管理该闪速存储器模块3A~3P内的每个物理块的使用度和重复度等的表,由“物理块地址”栏85A、“使用度”栏85B、“重复度”栏85C以及“逻辑地址存储区域的空闲”栏85D构成。
并且,在“物理块地址”栏85A中存储该闪速存储器模块3A~3P内的各物理块的物理地址,在“使用度”栏85B和“重复度”栏85C中分别存储该物理块的当前的使用度和重复度。另外,在“逻辑地址存储区域的空闲”栏85D中,存储该物理块的逻辑地址存储区域66(图6)中可以存储的逻辑地址的剩余数量。例如如图6所示,当逻辑地址存储区域66中可以存储的逻辑地址数最大为8个时,该剩余数量成为“8”与使用度的差。
图12表示与本实施方式的存储装置1中的数据写入处理相关的闪速存储器模块3A~3P的处理器50(图4)的处理内容。在本实施方式中,特征之一在于同时执行向闪速存储器芯片58的数据写入、和数据重复排除处理。
即,处理器50当从存储控制器2接收写入命令以及写入对象数据(以下将其称为写入数据)时,开始该图12所示的数据写入处理,在散列值管理表82(图10)上检索针对该写入数据的散列值(SP1)。
在这种情况下,如上所述可以在存储控制器2(图1)侧以及闪速存储器控制器41(图4)侧的某一侧生成写入数据的散列值,例如在存储控制器2侧生成所述散列值时,处理器50从存储控制器2一起接收写入命令和散列值,在散列值管理表82上检索该散列值。另外,在闪速存储器模块3A~3P侧内生成所述散列值时,根据该写入数据计算散列值,在散列值管理表82上检索该散列值。
接着,处理器50根据步骤SP1的检索结果,判断是否将与所述写入数据对应的散列值相一致的散列值登录在了散列值管理表82中(SP2)。
在该判断中得到否定结果,意味着被认为与该写入数据相同的数据尚未被写入本闪速存储器模块内。因此,在这种情况下不需要进行数据重复排除处理。于是,此时处理器50判断地址变换表80中与作为写入数据的写入目的地而指定的逻辑块对应的条目的已写入标志是否为“1”(SP3)。
处理器50,当在该判断中得到否定结果时参照地址变换表80,将写入数据写入与作为写入目的地而指定的逻辑块对应的物理块中。另外,处理器50与之对应地将所述逻辑块的逻辑地址和该写入数据的散列值等必要的信息写入该物理块的管理信息存储区域63(图5)中(SP4),然后进入步骤SP8。
与之相对,处理器50当在所述判断中得到肯定结果时参照物理块管理表84,对该逻辑块分配未使用的物理块,将写入数据写入该物理块(SP5)。
接着,处理器50通过用“0”重写逻辑块的逻辑地址来使其无效化,该逻辑地址被存储在此前作为写入数据的写入目的地而指定的逻辑块所对应的物理块的管理信息存储区域63(图5)的逻辑地址存储区域66(图6)中(SP6),而且,将物理块管理表84的该物理块所对应的条目的重复数减去“1”(SP7)。
接着,处理器50在地址变换表80中登录条目,并且将该条目中的已写入标志设定为“1”(SP8),所述条目是将作为写入数据的写入目的地而指定的逻辑块、与在步骤SP5中写入了写入数据的物理块对应起来的条目。
然后,处理器50在散列值管理表82中登录新条目,该条目由在步骤SP5中写入未使用的物理块的写入数据的散列值、该物理块的物理地址、与该物理块对应的逻辑块的逻辑地址等信息构成。另外,处理器50,作为物理块管理表84中与该物理块对应的条目的逻辑地址存储区域66的空闲数而设定“7”,并且将该条目的使用度和重复度分别设定为“1”(SP9),此后结束该数据写入处理。
与之相对,处理器50在步骤SP2的判断中得到肯定结果时,开始数据重复排除处理,首先,选择存储了与步骤SP2中检测出的散列值相同的已写入数据的物理块,作为与写入数据的写入目的地的逻辑块对应的物理块。此时,当所述散列值在散列值管理表82上与多个物理块对应时,在具有与写入数据的写入目的地逻辑块对应的物理块的情况下,处理器50选择与写入目的地逻辑块对应的物理块,在没有与写入目的地逻辑块对应的物理块的情况下,处理器50参照物理块管理表84,从该多个物理块中选择使用度最小的物理块(SP10)。
接着,处理器50通过逐位比较此时预定写入的写入数据与已写入在步骤SP10中选择的物理块的已写入数据,判断它们是否完全一致(SP11)。此外,在仅通过散列值的一致、不一致便可以判断数据的一致、不一致时,可以省略该步骤SP11。
然后,处理器50在该判断中得到否定结果时进入步骤SP3,与之相反,当得到肯定结果时参照物理块管理表84,判断写入了所述已写入数据的物理块的使用度是否未达到物理块的逻辑地址存储区域88中可以存储的逻辑地址的最大数n(在此为“8”)(SP12)。
处理器50在该判断中得到否定结果时进入步骤SP3,与之相反,当得到肯定结果时,判断在该物理块的管理信息存储区域63(图5)的逻辑地址存储区域66(图6)中是否存储了作为该写入数据的写入目的地而指定的逻辑块的逻辑地址(SP13)。
在该判断中得到肯定结果,意味着在该物理块中已经写入了与该写入数据相同的写入数据。并且,此时处理器50不将写入数据写入该物理块地、结束该数据写入处理。
另外,在步骤SP13的判断中得到否定结果时,为了进行数据重复排除,处理器50在所述步骤SP10中选择的物理块的管理信息存储区域63的逻辑地址存储区域66中追加作为该写入数据的写入目的地而指定的逻辑块的逻辑地址,并且与之对应地更新散列值管理表82(SP14)。
另外,处理器50在地址变换表80中登录作为写入数据的写入目的地而指定的逻辑块的逻辑地址以及步骤SP10中选择的物理块的物理地址的条目,并且将该条目中的已写入标志的值设定为“1”(SP15)。
而且,处理器50将与步骤SP10中选择的物理块对应的物理块管理表84上的条目中的逻辑地址存储区域66的空闲数减少1,并且将该条目的使用度和重复度分别增加1(SP16),此后结束该数据写入处理。
另一方面,图13表示与所述数据写入处理独立进行的再生处理相关的闪速存储器模块3A~3P的处理器50的处理内容。该再生处理的特征在于,根据物理块的使用度和重复度的差来判定是否执行针对该物理块的再生。
并且,当存储控制器2检测出空闲(idle)状态的闪速存储器模块3A~3P时,向该闪速存储器模块3A~3P发出再生的执行命令,接收到该执行命令的闪速存储器模块3A~3P的处理器50,按照存储在RAM53中的对应的控制程序,执行该图13所示的再生处理。
即,处理器50,当从存储控制器2接收了再生的执行命令时,开始再生处理,首先参照物理块管理表84,将物理地址指针设置在最小的物理地址(SP20)。
接着,处理器50参照物理块管理表84,判断此时物理块指针所指示的物理块的使用度是否大于“0”(该物理块并非未使用)、并且该物理块的使用度和重复度的差分值是否大于预定的阈值(该物理块的逻辑地址存储区域66中存储的逻辑地址中被无效化的逻辑地址(被重写了“0”的逻辑地址)的数量多于所述阈值)(SP21)。
处理器50在该判断中得到否定结果时进入步骤SP27,与之相反,当得到肯定结果时,判断该物理块的重复度是否为“0”(SP22)。
在该判断中得到肯定结果,意味着该物理块的逻辑地址存储区域66中不存在有效的逻辑地址(未被重写“0”的逻辑地址),即该物理块中所存储的写入数据已经被更新,并被存储在其它物理块中。于是,此时处理器50进入步骤SP24。
与之相反,在所述判断中得到否定结果,意味着该物理块的逻辑地址存储区域66中存在有效的逻辑地址(该物理块中存储的数据是尚未被更新的有效数据)。于是,此时处理器50将该物理块中存储的写入数据拷贝到未使用的物理块中。处理器50选择清除次数较少的未使用物理块作为该拷贝目的地物理块。另外,此时处理器50,在拷贝源的物理块的逻辑地址存储区域66中存储的逻辑地址中,仅将有效的逻辑地址拷贝到拷贝目的地的物理块的逻辑地址存储区域66中(SP23)。
接着,处理器50将地址变换表80的对应的条目的物理地址改写为拷贝目的地的物理块的物理地址,并且将散列值管理表82的对应的条目中的物理地址改写为拷贝目的地的物理块的物理地址(SP24),然后,从所述拷贝源的物理块中清除写入该物理块的写入数据(SP25)。
接着,处理器50将物理块管理表84中的拷贝源的物理块的条目初始化(SP26)。具体而言,处理器50针对物理块管理表84中的拷贝源的物理块的条目,将使用度和重复度都设为“0”,而且将逻辑地址存储区域66的空闲数恢复为“8”。
此后,处理器50参照物理块管理表84,判断物理块指针是否指示着物理地址在最后的物理块的该物理地址(SP27)。
处理器50,在所述判断中得到否定结果时参照物理块管理表84,将物理地址指针设置在该物理地址指针当时所指示的物理地址的下一物理地址。但是,此时,应排除在步骤SP23中作为拷贝目的地而选择的物理块的物理地址(SP28)。
然后,处理器50此后重复步骤SP21~步骤SP28的处理,直到在步骤SP27中得到肯定结果。其结果是,顺次对该闪速存储器模块3A~3P内的物理块中满足步骤SP21中的条件的物理块进行再生处理。
处理器50,最终由于针对相应的全部物理块的再生结束而在步骤SP27中得到肯定结果时,结束该再生处理。
接下来,说明本实施方式的数据重复排除处理对闪速存储器的改写寿命的效果。首先,在不进行数据重复排除处理时,在闪速存储器的物理块中存储的数据的清除所需的次数E1如下式表示
【数学式5】
E1=写入数据大小/块大小 ...(5)。
另一方面,设数据的重复率为m,在进行数据重复排除处理时,闪速存储器的物理块中存储的数据的清除所需的比例E2可以如下式表示
【数学式6】
E2=写入数据大小×(1-m)/块大小+1 ...(6)。
假定写入数据的大小足够大,当忽略E2的第2项的“+1”时,通过数据重复排除,在物理块中存储的数据的清除次数达到(1-m)倍。即,通过数据重复排除,闪速存储器的改写寿命增加1/(1-m)倍。例如,当写入平均重复50%的数据时,介质寿命延长到约2倍。另外,实际不向物理块写入重复数据,而仅追加逻辑地址,因此改写时间缩短,写入性能提高。
但是,为了精确,需要考虑针对每个物理块设置的管理信息存储区域66(图5)的开销对改写寿命延长效果的影响。当针对每128kB块大小确保512B的管理区域时,数据重复排除的介质寿命延长效果降低512B/128kB=约0.4%。
如上所述,在本实施方式的存储装置中,通过使用了数据重复排除技术,可以实现闪速存储器的长寿命化,此外,针对每个物理块来管理使用度和重复度,当使用度和重复度的差超过阈值时执行针对该物理块的再生,因此方便地进行再生,于是可以防止数据重复排除的效率恶化,从而提高闪速存储器的使用效率。
(2)第2实施方式
第2实施方式的特征在于,在各闪速存储器模块3A~3P中,在像第1实施方式那样进行向闪速存储器42的数据写入处理时,不执行数据重复排除处理,而在与数据写入处理不同的时刻执行所述数据重复排除处理,并且针对多个重复数据中的每一个来进行数据重复排除处理。
图14表示与这种第2实施方式中的数据重复排除处理相关的闪速存储器模块3A~3P的处理器50的具体处理内容。处理器按照存储在RAM53(图4)中的对应的程序,执行该图14所示的数据重复排除处理。
即,处理器50当从存储适配器6A、6B(图1)接收了数据重复排除的执行命令时,开始该数据重复排除处理,首先,将散列值管理表82的各条目的控制标志全部设定为“0”(SP30)。
接着,处理器50在散列值管理表82上检索已将控制标志设定为“0”的多个条目中相同的散列值(SP31)。此外,处理器50在该检索中检测出多个上述散列值时,仅选择最初检测出的散列值,以该散列值为对象来执行以下处理。
接下来,处理器50参照物理块管理表84,设通过步骤SP31的检索而检测出的散列值的各条目所对应的物理块的数量为X、在这些物理块的逻辑地址存储区域中存储的有效的逻辑地址的数量为Y,判断所述X和Y是否满足下式
【数学式7】
X≥2 ...(7),以及
【数学式8】
X-int(Y/n)-1≥阈值 ...(8)(SP32)。在此,可以作为这些物理块的重复度的合计而求得Y。
在此,n是物理块的逻辑地址存储区域66(图6)中可以存储的逻辑地址的最大值(在此是“8”),int(Y/n)表示小于Y/n并且最接近Y/n的整数。因此,int(Y/n)+1是数据重复排除处理后的使用物理块数,因此(8)式的左边表示数据重复排除处理的效果。
在该判断中得到否定结果意味着:在控制标志被设定为“0”的多个条目中不存在相同的散列值;或者尽管存在所述散列值,但即使进行数据重复排除处理,也无法期待很大的效果。于是,此时处理器50结束该数据重复排除处理。
与之相反,在步骤SP32的判断中得到肯定结果,意味着在控制标志被设定为“0”的多个条目中存在相同的散列值,并且在进行数据重复排除处理的情况下,可以期待较大的效果。
于是,此时处理器50通过分别逐位比较在步骤SP31中检测出的多个条目的各物理块中存储的写入数据,判断在所述多个条目的各物理块中分别存储的写入数据是否完全相同(SP33)。此外,在仅通过散列值的一致便可以保证数据一致的情况下,也可以省略该步骤SP33。
然后,处理器50当在该判断中得到否定结果时,结束针对所述各条目的物理块中存储的写入数据的数据重复排除处理,在将所述各条目的控制标志都变更为“1”后(SP34)返回步骤SP31。
与之相反,处理器50当在所述判断中得到肯定结果时,将步骤SP31中检测出的多个条目的各物理块中存储的相同写入数据,拷贝到int(Y/n)+1个的未使用的物理块中(SP35)。在此,处理器50选择清除次数较少的未使用物理块作为拷贝目的地物理块。
接着,处理器50在写入数据的拷贝目的地的各物理块中的逻辑地址存储区域66(图6)中,分散存储与拷贝源的各物理块分别对应的各逻辑块的逻辑地址(SP36)。
然后,处理器50将地址变换表80的对应的各条目、即与拷贝源物理块对应的各逻辑块所分别对应的条目的物理地址,更新为在步骤SP36中在逻辑地址存储区域66中存储了该逻辑块的逻辑地址的物理块的物理地址。另外,处理器50将散列值管理表82上的在步骤SP35中拷贝的写入数据的散列值所对应的各条目的控制标志分别更新为“1”,并且与之配合地,根据步骤SP35以及步骤SP36的处理,更新所述条目的物理地址、或所述条目的物理地址以及逻辑地址(SP37)。
接着,处理器50,针对在步骤SP35中的写入数据的拷贝源的各物理块,通过在该物理块的逻辑地址存储区域66中存储的全部逻辑地址上重写“0”,将这些全部逻辑地址无效化。而且,处理器50将物理块管理表84中的这些拷贝源的各物理块的重复度改写为“0”(SP38)。
接着,处理器50返回步骤SP31,此后重复同样的处理(SP31~SP38-SP31)。然后,处理器50最终在步骤SP32中得到否定结果时,结束该数据重复排除处理。
如上所述,根据本实施方式,在与数据写入不同的时刻、例如闪速存储器模块为空闲状态时等时刻进行数据重复排除处理,因此,除了通过第1实施方式得到的效果以外,还可以得到以下特殊效果:例如数据写入处理大量重叠时,可以提前并且有效地防止由于执行数据重复排除处理而导致数据写入处理的处理速度降低。
(3)第3实施方式
第3实施方式的特征在于,不像第2实施方式那样集体对存储相同数据的多个物理块进行数据重复排除处理,而是每次1对地对存储了相同数据的物理块进行数据重复排除处理。
图15表示与这种第3实施方式中的数据重复排除处理相关的闪速存储器模块3A~3P的处理器50的具体处理内容。处理器50按照在RAM53(图4)中存储的对应的控制程序,执行该图15所示的数据重复排除处理。
即,处理器50,当从存储适配器6A、6B(图1)接收数据重复排除的执行命令时,开始数据重复排除处理,首先将散列值管理表82的各条目的控制标志全部设定为“0”(SP40)。
接着,处理器50在散列值管理表82中检索分别将控制标志设定为“0”的多个条目中相同的散列值(SP41)。此外,处理器50当在该检索中检测出满足上述条件(在分别将控制标志设定为“0”的多个条目中相同)的多个散列值时,以最初检测出的散列值为对象执行以下处理。
以下,将与通过步骤SP41的检索而检测出的散列值的各条目对应的物理块中、在物理块管理表84上登录的逻辑地址存储区域66的空闲数量最大的物理块称为第一对象物理块,将与通过步骤SP41的检索而检测出的散列值的各条目对应的物理块中、逻辑地址存储区域66的空闲数量最小并且重复度最小的块称为第二对象物理块。
接着,处理器50参照物理块管理表84,设存在具有相同散列值且控制标志为“0”的多个条目,并且第一对象物理块中的逻辑地址存储区域66的空闲数量为X、第二对象物理块的重复度为Y,判断能否在第一对象物理块中的逻辑地址存储区域66的空闲区域中,追加在第二对象物理块中的逻辑地址存储区域66中存储的逻辑地址(X≥Y)(SP42)。
处理器50,当在该判断中得到否定结果时,再次通过在散列值管理表82上检索在步骤SP41中满足上述条件的散列值,来判断是否存在满足该条件的其它散列值(SP43)。然后,处理器50在该判断中得到否定结果时,结束该数据重复排除处理。
与之相反,处理器50在所述判断中得到肯定结果时返回步骤SP42,此后重复同样的处理,直到在步骤SP42中得到肯定结果或者在步骤SP43中得到否定结果(SP42-SP43-SP42)。
处理器50当最终在步骤SP42中得到肯定结果时,通过分别逐位比较在第一对象物理块中存储的数据与在第二对象物理块中存储的数据,判断在所述多个条目的各物理块中分别存储的数据是否相同(SP44)。此外,当仅通过散列值的一致便可以保证数据一致时,也可以省略该步骤SP44。
处理器50,当在该判断中得到肯定结果时,如图16所示,将第二对象物理块的逻辑地址存储区域66中存储的全部逻辑地址拷贝到第一对象物理块的逻辑地址存储区域66中(SP45)。此外,在该图16中,写入第一和第二对象物理块59A、59B的数据都是“A”。并且,该图16表示了将第二对象物理块59B的逻辑地址存储区域66中存储的逻辑地址“Y”拷贝到第一对象物理块的逻辑地址存储区域66的空闲区域时的情况。处理器50在步骤SP44中得到否定结果时,使处理进入步骤SP47。
接着,处理器50在第二对象物理块的逻辑地址存储区域66中存储的全部逻辑地址上重写“0”,来将这些逻辑地址无效化。另外,处理器50将物理块管理表84的第二对象物理块所对应的条目的重复度变更为“0”。而且,处理器50全部清除地址变换表80的第二对象物理块所对应的条目的逻辑地址,并且将该清除的全部逻辑地址作为第一对象物理块所对应的条目的逻辑地址,追加到地址变换表80中(SP46)。
而且,处理器50在散列值管理表82中将第二对象物理块所对应的条目的控制标志的值变更为“1”,并且更新该条目中的物理地址和逻辑地址,而且在物理块管理表84中分别更新第一对象物理块所对应的条目的使用度、重复度以及逻辑地址存储区域66的空闲数量(SP47)。
接着,处理器50返回步骤SP41,此后重复同样的处理,直到在步骤SP43中得到否定结果(SP41~SP47-SP41)。然后,处理器50最终在步骤SP43中得到否定结果时,结束该数据重复排除处理。
如上所述,根据本实施方式,每次1对地对存储相同数据的物理块进行数据重复排除处理,因此,可以得到与第1实施方式的效果等同的效果。
(4)第4实施方式
在上述第1至第3实施方式中说明了以物理块为单位来进行数据重复排除处理的情况。与之相对,第4实施方式的特征在于,以小于物理块的块大小的数据大小来进行数据重复排除处理。
图17表示本实施方式中的闪速存储器模块3A~3P中的物理块100的数据结构。在该图17中,物理块100包含从第一个到第m个的页101(101A~101m(m是整数))。这些页101都由与参照图6所述的数据部61以及冗余部62相同的数据部102以及冗余部103构成。
在本实施方式中,对以2页为单位来执行数据重复排除处理的情况进行说明。以下,将执行数据重复排除处理的页单位(在此是2页)称为子块104。例如,物理块100包含:由第1和第2页101A、101B构成的子块104A;由第3和第4页101C、101D构成的子块104B;由第m-1和第m页101(m-1)、101m构成的子块101h(h=m/2)。另外,在各子块104A~104h中分别设置了具有与参照图4所述的管理信息存储区域63功能相同的管理信息存储区域105(105A~105h)。
另外,以下为了简化说明,设数据的读写单位以及数据重复排除处理单位为子块单位。即,在本实施方式中,在图9的地址变换表80、图10的散列值管理表82以及图11的物理块管理表84中全部以子块单位来管理信息。通过在参照图14或图15所述的第2或第3实施方式中的数据重复排除处理的说明中将“块”替换为“子块”,可以执行子块单位的数据重复排除处理。
但是,由于子块不是清除单位,因此再生处理需要修改。因此,以下说明使数据的读写单位以及数据重复排除处理单位为子块104的情况下的再生处理。
图18表示在使数据的读写以及数据重复排除处理的单位为子块单位时的、与再生处理相关的闪速存储器模块3A~3P的处理器50的处理内容。该再生处理的特征在于,进行子块单位和块单位的两级的数据拷贝,处理器50按照在RAM53(图4)中存储的对应的程序,执行图18所示的再生处理。
即,处理器50当从存储控制器2接收再生的执行命令时开始再生处理,首先参照物理块管理表(参照图11),将物理地址指针设置在物理地址最小的物理块的该物理地址(SP50)。
接着,处理器50参照物理块管理表(参照图11),判断此时物理块指针所指示的物理块内的子块104的使用度是否大于“0”(该子块104并非未使用)、并且该子块104的使用度和重复度的差分值是否大于预先设定的阈值(该子块104的管理信息存储区域105内的逻辑地址存储区域中存储的逻辑地址中无效的逻辑地址的数量多于所述阈值)(SP51)。
处理器50在该判断中得到否定结果时进入步骤SP55,与之相反,当得到肯定结果时,将该子块104中存储的数据拷贝到未使用的物理块100的子块104中。另外,此时处理器50仅将拷贝源的子块104内的逻辑地址存储区域中存储的逻辑地址中的有效的逻辑地址,拷贝到拷贝目的地的子块104的逻辑地址存储区域中(SP52)。
接着,处理器50将地址变换表(参照图9)的对应的条目的子块104的地址改写为拷贝目的地的子块104的地址,并且从散列值管理表(参照图10)的对应的条目中删除与拷贝源的子块104对应的条目(SP53),然后,将物理块管理表中的拷贝源的子块104所对应的条目的重复度更新为“0”(SP54)。
此后,处理器50根据物理块管理表,判断此时处理过的子块104是否是此时作为对象的物理块100内的最后的子块104(SP55)。
然后,处理器50当在该判断中得到否定结果时,将物理地址指针设置在该物理块100中的下一子块104的地址(SP56),然后返回步骤SP51,此后重复同样的处理(SP51~SP56-SP51)。
然后,最终由于针对此时作为对象的物理块100内的全部子块104结束同样的处理而在步骤SP55中得到肯定结果时,处理器50判断该物理块100内的各子块104的使用度的合计是否大于0、并且从各子块104的使用度的合计中减去重复度的合计所得到的值是否大于规定的阈值(SP57)。
处理器50在该判断中得到否定结果时进入步骤SP62,与之相反,当得到肯定结果时,与参照图13所述的再生处理的步骤SP23~步骤SP26同样地将该物理块100中存储的数据拷贝到未使用的物理块100,并且与之对应地更新地址变换表、散列值管理表以及物理块管理表(SP59~SP61)。
此后,处理器50参照物理块管理表,判断物理块指针是否指示着物理地址在最后的物理块的物理地址(SP62)。
当在所述判断中得到否定结果时,处理器50参照物理块管理表,将物理地址指针设置在该物理地址指针此时指示的物理地址的下一物理地址。但是,此时,应排除在步骤SP52、SP58中作为拷贝目的地而选择的物理块100的物理地址(SP63)。
接着,处理器50返回步骤SP51,之后重复步骤SP51~步骤SP63的处理,直到在步骤SP62中得到肯定结果。结果,针对该闪速存储器模块3A~3P内的物理块100以及该物理块100内的子块104中满足步骤SP57的条件的物理块10以及满足步骤SP51的条件的子块104,顺次进行再生处理。
然后,处理器50,最终由于结束针对相应的全部物理块100以及子块104的再生而在步骤SP62中得到肯定结果时,结束该再生处理。
如上所述,根据本实施方式,以小于物理块的块大小的数据大小进行数据重复排除处理,因此与第1至第3实施方式相比,可以更进一步提高数据重复排除的效率。
(5)第5实施方式
首先,对RAID(Redundant Array of Inexpensive Disks)的条带化(数据分割)动作进行说明。
在RAID中如图19所示将数据分割为被称为条带110A,110B,...的数据单位,将该条带110A,110B,...进一步分割为被称为条带单元110A1~110A3,110B1~110B3,...的数据单位。然后,构成相同条带110A,110B,...的各条带单元110A1~110A3,110B1~110B3,...分别分散在构成RAID组111的多个存储介质112A~112D中,并且在相同时刻被读写。此外,下面说明所述存储介质112A~112D是闪速存储器模块的情况。
根据冗余化方法或条带化的大小等,在RAID中定义了RAID0、RAID1、RAID1+0等多个级别。并且,例如在RAID5中如图19所示,由构成相同条带110A,110B,...的条带单元110A1~110A3,110B1~110B3,...生成的校验位(parity)被分散存储在构成RAID组111的各闪速存储器模块112A~112D中。结果,例如即使条带110A和条带110B具有完全相同的数据,闪速存储器模块内也没有重复的数据。即,在条带单元110A1~110A3,110B1~110B3,...的每个条带单元中数据重复时,即使在闪速存储器模块112A~112D的每个中进行数据重复排除处理,也无法期待效果。
另一方面,当观察RAID组111全体时,重复数据跨越多个闪速存储器模块112A~112D而存在。为了排除这种重复状态,需要由可以访问RAID组111全体的存储控制器进行数据重复排除处理。
因此,在本实施方式中,存储装置1的存储控制器2(图1)进行控制,以便以条带单元大小以上的数据处理单位、并且在跨越多个闪速存储器模块3A~3P(图1)的范围内执行数据重复排除处理。另外,在本实施方式中,在闪速存储器模块3A~3P中,以条带单元大小以下的数据处理单位执行数据重复排除处理。这样,通过以不同级别的数据处理单位执行数据重复排除处理,数据重复的可能性升高,因此提高数据重复排除效果。
具体而言,存储控制器2根据需要,经由网络12A或网络12B对闪速存储器模块3A~3P指示在闪速存储器模块3A~3P的每个中执行的数据重复排除处理的数据处理单位或条带单元大小。由此,可以协调存储控制器2和闪速存储器模块3A~3P中的数据重复排除。
此外,作为数据重复排除的分级控制的另一例,存储控制器2也可以针对闪速存储器模块3A~3P中的每一个,经由网络12A和网络12B监视该闪速存储器模块3A~3P内存在的各物理块的使用度和重复度的统计信息,对于没有数据重复排除的效果的闪速存储器模块3A~3P进行控制,以便停止数据重复排除处理。
另外,存储控制器2也可以经由网络12A、12B调查每个闪速存储器3A~3P的重复度和未使用的物理块数的统计信息,计算该重复度和未使用的物理块数据的乘积,来预测闪速存储器模块3A~3P的每一个中今后可以存储的容量。
图20表示为了进行上述本实施方式的数据重复排除处理,而由存储控制器2保持并管理的数据重复排除管理表120。从该图20可以明了,数据重复排除管理表120由“逻辑单元号码”栏120A、“逻辑块地址”栏120B、“上位控制”栏120C和“下位控制”栏120D构成。另外,“逻辑块地址”栏120B由“开始逻辑块地址”栏120BA和“最终逻辑块地址”栏120BB构成,“上位控制”栏120C由“上位控制标志”栏120CA和“上位控制大小”栏120CB构成。另外,“下位控制”栏120D由“下位控制标志”栏120DA和“下位控制大小”栏120DB构成。
并且,在“逻辑单元号码”栏120A中存储存在于该存储控制器2的下级的各逻辑单元的逻辑单元号码,在“开始逻辑块地址”栏120BA和“最终逻辑块地址”栏120BB中分别存储在该逻辑单元中进行数据重复排除处理的最初的逻辑块的逻辑地址和最后的逻辑块的逻辑地址。所述进行数据重复排除处理的最初的逻辑块的逻辑地址和最后的逻辑块的逻辑地址,由用户通过维护终端10(图1)设定。
另外,在“上位控制标志”栏120CA中存储表示存储控制器2是否对该逻辑单元执行数据重复排除处理的标志(以下,将其称为数据重复排除处理执行可否标志),在“上位控制大小”栏120CB中存储执行所述数据重复排除处理时的数据处理单位(以下,将其称为数据重复排除处理执行单位)。在所述“上位控制标志”栏120CA和“上位控制大小”栏120CB中存储的标志或数据处理单位,也由用户通过维护终端10(图1)设定。
而且,在“下位控制标志”栏120DA中存储表示在具有与该逻辑单元对应的物理单元的闪速存储器模块3A~3P中是否执行数据重复排除处理的标志,在“上位控制大小”栏120DB中存储在所述闪速存储器模块3A~3P中执行数据重复排除处理时的数据处理单位。在所述“上位控制标志”栏120DA和“上位控制大小”栏120DB中存储的标志或数据处理单位,也由用户通过维护终端10(图1)设定。
然后,存储控制器2基于该数据重复排除管理表120,根据需要控制对应的闪速存储器模块3A~3P,由此,以条带单元大小以上的数据处理单位、并且在跨越多个闪速存储器模块3A~3P的范围内执行数据重复排除处理。
此外,作为数据重复排除处理的执行可否的设定例,有时进行设定,以便对于与容量效率相比更要求冗余性的数据不执行数据重复排除处理。或者,在与容量效率相比更重视读写的吞吐率的情况下,或对于访问集中的数据,进行控制以便不执行重复排除处理地将数据分散存储在多个物理介质中。
如上所述,在本实施方式中,以条带单元大小以上的数据处理单位、并且在跨越多个闪速存储器模块3A~3P的范围内执行数据重复排除处理,因此,可以协调存储控制器2和闪速存储器模块3A~3P中的数据重复排除,于是可以使数据重复排除处理的效果进一步提高。
Claims (18)
1.一种搭载了一个或多个闪速存储器模块的存储装置,其特征在于,
所述闪速存储器模块具备:
提供存储区域的至少一个闪速存储器芯片;以及
控制针对所述闪速存储器芯片的数据读写的控制器,
所述控制器,
在所述闪速存储器芯片提供的所述存储区域上定义的物理单位区域内的规定的管理信息存储区域中,存储对应的一个或多个逻辑单位区域的逻辑地址,由此进行排除重复数据的数据重复排除,并且针对每个所述物理单位区域管理使用度和重复度,所述使用度是所述管理信息存储区域中存储的所述逻辑地址的总数量,所述重复度是该物理单位区域所对应的有效的所述逻辑地址的数量,对于所述使用度和所述重复度的差超过既定值的所述物理单位区域,执行将该物理单位区域恢复为初始状态的再生处理。
2.根据权利要求1所述的存储装置,其特征在于,
所述物理单位区域是统一清除数据的单位,
所述控制器以所述物理单位区域为单位,在所述闪速存储器芯片提供的所述存储区域中读写数据,并且执行用于进行所述数据重复排除的处理。
3.根据权利要求1所述的存储装置,其特征在于,
所述控制器用0来重写所述管理信息存储区域中存储的所述逻辑地址中成为无效的所述逻辑地址。
4.根据权利要求1所述的存储装置,其特征在于,
所述控制器,设存储了同一数据的所述物理单位区域的数量为X、设存储了所述同一数据的所述物理单位区域的所述管理信息存储区域中存储的有效的所述逻辑地址的数量为Y、设可以在所述管理信息存储区域中存储的所述逻辑地址的最大数量为n,当通过下式计算出的值在规定值以上时,
【数学式1】X-int(Y/n)-1..(1),
将所述同一数据拷贝至通过下式计算出的个数的、未使用的所述物理单位区域中,排除重复的数据,
【数学式2】int(Y/n)+1。
5.根据权利要求1所述的存储装置,其特征在于,
所述控制器,
从存储了同一数据的多个所述物理单位区域中,选择所述逻辑地址所对应的所述管理信息存储区域的空闲最大的第一物理单位区域,并且选择所述逻辑地址所对应的所述管理信息存储区域的空闲最小、且该管理信息存储区域中存储的有效的所述逻辑地址的数量最小的第二物理单位区域,
当所述第一物理单位区域的所述逻辑地址所对应的所述管理信息存储区域的空闲数量,在所述第二物理单位区域的所述管理信息存储区域中存储的有效的所述逻辑地址的数量以上时,将所述第二物理单位区域的所述管理信息存储区域中存储的有效的所述逻辑地址拷贝至所述第一物理单位区域的所述管理信息存储区域的空闲区域中,排除重复的数据。
6.根据权利要求1所述的存储装置,其特征在于,
所述物理单位区域是由作为物理块内的数据读写单位的至少一页构成的子块,该物理块是统一清除数据的单位。
7.一种存储装置,具备提供存储区域的多个闪速存储器模块、和控制针对所述多个闪速存储器模块的数据读写的存储控制器,其特征在于,
所述存储控制器以规定单位分割数据,在所述多个闪速存储器模块中进行读写,并且对于该规定单位以上的数据大小的数据,在跨越所述多个闪速存储器模块的范围内进行排除重复数据的重复排除处理,
所述多个闪速存储器模块,对于所述规定单位以下的数据大小的数据,针对每个该闪速存储器模块进行数据重复排除处理。
8.根据权利要求7所述的存储装置,其特征在于,
所述存储控制器对所述多个闪速存储器模块指示该闪速存储器模块中的所述数据重复排除处理的处理单位。
9.根据权利要求8所述的存储装置,其特征在于,
针对每个规定单位的存储区域,设定可否执行由所述存储控制器或所述闪速存储器模块执行的所述数据重复排除处理。
10.一种排除存储装置中的数据重复的数据重复排除方法,该存储装置搭载了一个或多个闪速存储器模块,该闪速存储器模块具有分别提供存储区域的至少一个闪速存储器芯片,该数据重复排除方法的特征在于,具有以下步骤:
第一步骤,在所述闪速存储器芯片提供的所述存储区域上定义的物理单位区域内的规定的管理信息存储区域中,存储对应的一个或多个逻辑单位区域的逻辑地址,来进行所述数据重复排除处理,并且,针对每个所述物理单位区域管理使用度和重复度,所述使用度是在所述管理信息存储区域中存储的所述逻辑地址的总数量,所述重复度是该物理单位区域所对应的有效的所述逻辑地址的数量;
第二步骤,对于所述使用度和所述重复度的差超过既定值的所述物理单位区域,执行将该物理单位区域恢复为初始状态的再生处理。
11.根据权利要求10所述的数据重复排除方法,其特征在于,
所述物理单位区域是统一清除数据的单位,
所述闪速存储器模块以所述物理单位区域为单位,在所述闪速存储器芯片提供的所述存储区域中读写数据,并且执行用于进行所述数据重复排除的处理。
12.根据权利要求10所述的数据重复排除方法,其特征在于,
在所述第二步骤中,
用0重写所述管理信息存储区域中存储的所述逻辑地址中成为无效的所述逻辑地址。
13.根据权利要求10所述的数据重复排除方法,其特征在于,
在所述第一步骤中,
设存储了同一数据的所述物理单位区域的数量为X、设存储了所述同一数据的所述物理单位区域的所述管理信息存储区域中存储的有效的所述逻辑地址的数量为Y、设可以在所述管理信息存储区域中存储的所述逻辑地址的最大数量为n,当通过下式计算出的值在规定值以上时,
【数学式3】X-int(Y/n)-1..(3),
将所述同一数据拷贝至通过下式计算出的个数的、未使用的所述物理单位区域中,排除重复的数据,
【数学式4】int(Y/n)+1..(4)。
14.根据权利要求10所述的数据重复排除方法,其特征在于,
在所述第二步骤中,
从存储了同一数据的多个所述物理单位区域中,选择所述逻辑地址所对应的所述管理信息存储区域的空闲最大的第一物理单位区域,并且选择所述逻辑地址所对应的所述管理信息存储区域的空闲最小、且该管理信息存储区域中存储的有效的所述逻辑地址的数量最小的第二物理单位区域,
当所述第一物理单位区域的所述逻辑地址所对应的所述管理信息存储区域的空闲数量,在所述第二物理单位区域的所述管理信息存储区域中存储的有效的所述逻辑地址的数量以上时,将所述第二物理单位区域的所述管理信息存储区域中存储的有效的所述逻辑地址拷贝至所述第一物理单位区域的所述管理信息存储区域的空闲区域中,排除重复的数据。
15.根据权利要求10所述的数据重复排除方法,其特征在于,
所述物理单位区域是由作为物理块内的数据读写单位的至少一页构成的子块,该物理块是统一清除数据的单位。
16.一种排除存储装置中的数据重复的数据重复排除方法,该存储装置具有提供存储区域的多个闪速存储器模块、和控制针对所述多个闪速存储器模块的数据读写的存储控制器,该数据重复排除方法的特征在于,具备以下步骤:
第一步骤,所述存储控制器以规定单位分割数据,在所述多个闪速存储器模块中进行读写,并且对于该规定单位以上的数据大小的数据,在跨越所述多个闪速存储器模块的范围内进行排除重复数据的重复排除处理;
第二步骤,所述多个闪速存储器模块,对于所述规定单位以下的数据大小的数据,针对每个该闪速存储器模块进行数据重复排除处理。
17.根据权利要求16所述的数据重复排除方法,其特征在于,
在所述第二步骤中,
所述存储控制器对所述多个闪速存储器模块指示该闪速存储器模块中的所述数据重复排除处理的处理单位。
18.根据权利要求17所述的数据重复排除方法,其特征在于,
针对每个规定单位的存储区域,设定可否执行由所述存储控制器或所述闪速存储器模块执行的所述数据重复排除处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007255892A JP5026213B2 (ja) | 2007-09-28 | 2007-09-28 | ストレージ装置及びデータ重複排除方法 |
JP2007255892 | 2007-09-28 | ||
JP2007-255892 | 2007-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101398783A true CN101398783A (zh) | 2009-04-01 |
CN101398783B CN101398783B (zh) | 2011-02-02 |
Family
ID=40190687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101089040A Active CN101398783B (zh) | 2007-09-28 | 2008-06-06 | 存储装置以及数据重复排除方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US7818495B2 (zh) |
EP (1) | EP2042995B1 (zh) |
JP (1) | JP5026213B2 (zh) |
CN (1) | CN101398783B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102792259A (zh) * | 2010-03-04 | 2012-11-21 | 日本电气株式会社 | 存储装置 |
CN104903842A (zh) * | 2012-12-31 | 2015-09-09 | 桑迪士克科技股份有限公司 | 用于在非易失性存储器中的异步裸芯操作的方法和系统 |
CN109144897A (zh) * | 2018-09-04 | 2019-01-04 | 杭州阿姆科技有限公司 | 一种实现大容量ssd磁盘的方法 |
CN109196483A (zh) * | 2016-07-27 | 2019-01-11 | 株式会社日立制作所 | 计算机系统和数据保存方法 |
CN110781101A (zh) * | 2019-10-25 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种一对多映射关系的存储方法、装置、电子设备及介质 |
Families Citing this family (203)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640746B2 (en) * | 2005-05-27 | 2010-01-05 | Markon Technologies, LLC | Method and system integrating solar heat into a regenerative rankine steam cycle |
JP4464378B2 (ja) * | 2006-09-05 | 2010-05-19 | 株式会社日立製作所 | 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法 |
US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US7962706B2 (en) * | 2008-02-14 | 2011-06-14 | Quantum Corporation | Methods and systems for improving read performance in data de-duplication storage |
US8825617B2 (en) * | 2008-03-14 | 2014-09-02 | International Business Machines Corporation | Limiting deduplication based on predetermined criteria |
US8346730B2 (en) * | 2008-04-25 | 2013-01-01 | Netapp. Inc. | Deduplication of data on disk devices based on a threshold number of sequential blocks |
US7908436B1 (en) * | 2008-04-25 | 2011-03-15 | Netapp, Inc. | Deduplication of data on disk devices using low-latency random read memory |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8370309B1 (en) | 2008-07-03 | 2013-02-05 | Infineta Systems, Inc. | Revision-tolerant data de-duplication |
US8832034B1 (en) | 2008-07-03 | 2014-09-09 | Riverbed Technology, Inc. | Space-efficient, revision-tolerant data de-duplication |
US8166263B2 (en) | 2008-07-03 | 2012-04-24 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US8099571B1 (en) * | 2008-08-06 | 2012-01-17 | Netapp, Inc. | Logical block replication with deduplication |
US8086799B2 (en) * | 2008-08-12 | 2011-12-27 | Netapp, Inc. | Scalable deduplication of stored data |
US8078593B1 (en) | 2008-08-28 | 2011-12-13 | Infineta Systems, Inc. | Dictionary architecture and methodology for revision-tolerant data de-duplication |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
EP2329378A4 (en) | 2008-09-26 | 2015-11-25 | Commvault Systems Inc | SYSTEMS AND METHODS FOR MANAGING SINGLE-INSTANCE DATA |
US8244995B2 (en) * | 2008-10-30 | 2012-08-14 | Dell Products L.P. | System and method for hierarchical wear leveling in storage devices |
US8412677B2 (en) | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US8271718B2 (en) * | 2009-03-11 | 2012-09-18 | Hitachi, Ltd. | Storage system and control method for the same, and program |
KR101504632B1 (ko) * | 2009-03-25 | 2015-03-20 | 삼성전자주식회사 | 레이드를 사용한 장치들과 방법들 |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
JP4900850B2 (ja) * | 2009-04-01 | 2012-03-21 | 日本電気株式会社 | ディスクアレイ装置、ディスクアレイ装置の管理方法及びプログラム |
US8321380B1 (en) | 2009-04-30 | 2012-11-27 | Netapp, Inc. | Unordered idempotent replication operations |
US20100281207A1 (en) * | 2009-04-30 | 2010-11-04 | Miller Steven C | Flash-based data archive storage system |
US8655848B1 (en) | 2009-04-30 | 2014-02-18 | Netapp, Inc. | Unordered idempotent logical replication operations |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
JP2011018206A (ja) * | 2009-07-09 | 2011-01-27 | Hitachi Ltd | ファイル管理方法、計算機、及びファイル管理プログラム |
US20110055471A1 (en) * | 2009-08-28 | 2011-03-03 | Jonathan Thatcher | Apparatus, system, and method for improved data deduplication |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US20110060882A1 (en) * | 2009-09-04 | 2011-03-10 | Petros Efstathopoulos | Request Batching and Asynchronous Request Execution For Deduplication Servers |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8200641B2 (en) * | 2009-09-11 | 2012-06-12 | Dell Products L.P. | Dictionary for data deduplication |
US8671072B1 (en) | 2009-09-14 | 2014-03-11 | Netapp, Inc. | System and method for hijacking inodes based on replication operations received in an arbitrary order |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
JP5303038B2 (ja) * | 2009-09-18 | 2013-10-02 | 株式会社日立製作所 | 重複したデータを排除するストレージシステム |
US8762338B2 (en) * | 2009-10-07 | 2014-06-24 | Symantec Corporation | Analyzing backup objects maintained by a de-duplication storage system |
US8473690B1 (en) | 2009-10-30 | 2013-06-25 | Netapp, Inc. | Using logical block addresses with generation numbers as data fingerprints to provide cache coherency |
US8799367B1 (en) * | 2009-10-30 | 2014-08-05 | Netapp, Inc. | Using logical block addresses with generation numbers as data fingerprints for network deduplication |
US8478933B2 (en) * | 2009-11-24 | 2013-07-02 | International Business Machines Corporation | Systems and methods for performing deduplicated data processing on tape |
JP4838878B2 (ja) * | 2009-12-04 | 2011-12-14 | 富士通株式会社 | データ管理プログラム、データ管理装置、およびデータ管理方法 |
US20110161560A1 (en) * | 2009-12-31 | 2011-06-30 | Hutchison Neil D | Erase command caching to improve erase performance on flash memory |
US9134918B2 (en) * | 2009-12-31 | 2015-09-15 | Sandisk Technologies Inc. | Physical compression of data with flat or systematic pattern |
JP2011175532A (ja) * | 2010-02-25 | 2011-09-08 | Nec Corp | 制御装置、メモリ制御方法およびプログラム |
JP5434705B2 (ja) * | 2010-03-12 | 2014-03-05 | 富士通株式会社 | ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法 |
JP4892072B2 (ja) * | 2010-03-24 | 2012-03-07 | 株式会社東芝 | ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法 |
JP5691234B2 (ja) * | 2010-04-27 | 2015-04-01 | 日本電気株式会社 | ディスクアレイ装置、及び、ミラーリング制御方法 |
US9053032B2 (en) | 2010-05-05 | 2015-06-09 | Microsoft Technology Licensing, Llc | Fast and low-RAM-footprint indexing for data deduplication |
US8935487B2 (en) | 2010-05-05 | 2015-01-13 | Microsoft Corporation | Fast and low-RAM-footprint indexing for data deduplication |
US20110276744A1 (en) | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
US8423735B2 (en) * | 2010-05-21 | 2013-04-16 | International Business Machines Corporation | Space reservation in a deduplication system |
US9063656B2 (en) | 2010-06-24 | 2015-06-23 | Dell Gloval B.V.—Singapore Branch | System and methods for digest-based storage |
US9678688B2 (en) * | 2010-07-16 | 2017-06-13 | EMC IP Holding Company LLC | System and method for data deduplication for disk storage subsystems |
JP5423896B2 (ja) * | 2010-08-31 | 2014-02-19 | 日本電気株式会社 | ストレージシステム |
JP5688676B2 (ja) * | 2010-09-06 | 2015-03-25 | 日本電気株式会社 | ストレージ装置及びストレージ装置の記憶資源の使用効率向上方法 |
US9092151B1 (en) * | 2010-09-17 | 2015-07-28 | Permabit Technology Corporation | Managing deduplication of stored data |
US9489404B2 (en) | 2010-09-29 | 2016-11-08 | International Business Machines Corporation | De-duplicating data in a network with power management |
US8935492B2 (en) | 2010-09-30 | 2015-01-13 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US8352676B2 (en) | 2010-10-26 | 2013-01-08 | Hitachi, Ltd. | Apparatus and method to store a plurality of data having a common pattern and guarantee codes associated therewith in a single page |
US10394757B2 (en) | 2010-11-18 | 2019-08-27 | Microsoft Technology Licensing, Llc | Scalable chunk store for data deduplication |
US9208472B2 (en) | 2010-12-11 | 2015-12-08 | Microsoft Technology Licensing, Llc | Addition of plan-generation models and expertise by crowd contributors |
US8959293B2 (en) | 2010-12-14 | 2015-02-17 | Microsoft Corporation | Data deduplication in a virtualization environment |
JP2012133655A (ja) * | 2010-12-22 | 2012-07-12 | Sony Corp | 管理装置、管理方法、およびプログラム |
US9110936B2 (en) | 2010-12-28 | 2015-08-18 | Microsoft Technology Licensing, Llc | Using index partitioning and reconciliation for data deduplication |
US8458145B2 (en) * | 2011-01-20 | 2013-06-04 | Infinidat Ltd. | System and method of storage optimization |
JP5630313B2 (ja) * | 2011-02-16 | 2014-11-26 | 日本電気株式会社 | ストレージ制御装置、ストレージシステム、ストレージ制御方法及びそのためのプログラム |
US9081511B2 (en) | 2011-02-23 | 2015-07-14 | International Business Machines Corporation | Source-target relations mapping |
US9021221B2 (en) | 2011-03-08 | 2015-04-28 | International Business Machines Corporation | Cascaded, point-in-time-copy architecture with data deduplication |
US8782362B2 (en) | 2011-03-08 | 2014-07-15 | International Business Machines Corporation | Cyclic point-in-time-copy architecture with data deduplication |
US20120233416A1 (en) | 2011-03-08 | 2012-09-13 | International Business Machines Corporation | Multi-target, point-in-time-copy architecture with data deduplication |
US9223511B2 (en) * | 2011-04-08 | 2015-12-29 | Micron Technology, Inc. | Data deduplication |
US9069477B1 (en) * | 2011-06-16 | 2015-06-30 | Amazon Technologies, Inc. | Reuse of dynamically allocated memory |
CN102833298A (zh) * | 2011-06-17 | 2012-12-19 | 英业达集团(天津)电子技术有限公司 | 分布式的重复数据删除系统及其处理方法 |
US8521705B2 (en) * | 2011-07-11 | 2013-08-27 | Dell Products L.P. | Accelerated deduplication |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US8930307B2 (en) | 2011-09-30 | 2015-01-06 | Pure Storage, Inc. | Method for removing duplicate data from a storage array |
US8990171B2 (en) | 2011-09-01 | 2015-03-24 | Microsoft Corporation | Optimization of a partially deduplicated file |
US8620886B1 (en) | 2011-09-20 | 2013-12-31 | Netapp Inc. | Host side deduplication |
KR101826047B1 (ko) | 2011-09-28 | 2018-02-07 | 삼성전자주식회사 | 저장 장치 및 그 구동 방법 |
KR101382273B1 (ko) * | 2011-09-30 | 2014-04-10 | 인하대학교 산학협력단 | Ssd 저장장치의 마모도 감소를 위한 ssd 기반 서버급 저장장치의 복합적 데이터 중복제거 방법 |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
US9424175B1 (en) * | 2011-11-30 | 2016-08-23 | Emc Corporation | System and method for improving cache performance |
US8732403B1 (en) | 2012-03-14 | 2014-05-20 | Netapp, Inc. | Deduplication of data blocks on storage devices |
US8706971B1 (en) | 2012-03-14 | 2014-04-22 | Netapp, Inc. | Caching and deduplication of data blocks in cache memory |
JP5638022B2 (ja) * | 2012-03-30 | 2014-12-10 | 株式会社東芝 | ディスクアレイ装置 |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US8996881B2 (en) | 2012-04-23 | 2015-03-31 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by encryption |
US9262428B2 (en) | 2012-04-23 | 2016-02-16 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual address |
US9779103B2 (en) * | 2012-04-23 | 2017-10-03 | International Business Machines Corporation | Preserving redundancy in data deduplication systems |
US10133747B2 (en) | 2012-04-23 | 2018-11-20 | International Business Machines Corporation | Preserving redundancy in data deduplication systems by designation of virtual device |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
US9465737B1 (en) * | 2012-07-02 | 2016-10-11 | Toshiba Corporation | Memory systems including a duplicate removing filter module that is separate from a cache module |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US10642505B1 (en) | 2013-01-28 | 2020-05-05 | Radian Memory Systems, Inc. | Techniques for data migration based on per-data metrics and memory degradation |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9189409B2 (en) | 2013-02-19 | 2015-11-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing writes to solid state drive cache memories of storage controllers |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9639461B2 (en) | 2013-03-15 | 2017-05-02 | Sandisk Technologies Llc | System and method of processing of duplicate data at a data storage device |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US10120694B2 (en) | 2013-03-15 | 2018-11-06 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US10102144B2 (en) * | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
KR20150002297A (ko) * | 2013-06-28 | 2015-01-07 | 삼성전자주식회사 | 스토리지 시스템 및 그의 동작 방법 |
TWI515736B (zh) * | 2013-07-25 | 2016-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
US9459902B2 (en) * | 2013-08-16 | 2016-10-04 | Red Hat Israel, Ltd. | Memory duplication by destination host in virtual machine live migration |
US9454400B2 (en) * | 2013-08-16 | 2016-09-27 | Red Hat Israel, Ltd. | Memory duplication by origin host in virtual machine live migration |
US9418131B1 (en) | 2013-09-24 | 2016-08-16 | Emc Corporation | Synchronization of volumes |
US9378106B1 (en) * | 2013-09-26 | 2016-06-28 | Emc Corporation | Hash-based replication |
WO2015065312A1 (en) * | 2013-10-28 | 2015-05-07 | Hitachi, Ltd. | Method and apparatus of data de-duplication for solid state memory |
US10545918B2 (en) | 2013-11-22 | 2020-01-28 | Orbis Technologies, Inc. | Systems and computer implemented methods for semantic data compression |
KR20150067583A (ko) * | 2013-12-10 | 2015-06-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법 |
KR102140792B1 (ko) | 2013-12-24 | 2020-08-03 | 삼성전자주식회사 | 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들 |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US9606870B1 (en) | 2014-03-31 | 2017-03-28 | EMC IP Holding Company LLC | Data reduction techniques in a flash-based key/value cluster storage |
US9342465B1 (en) | 2014-03-31 | 2016-05-17 | Emc Corporation | Encrypting data in a flash-based contents-addressable block device |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US10089033B2 (en) | 2014-04-24 | 2018-10-02 | Hitachi, Ltd. | Storage system |
US20150317083A1 (en) * | 2014-05-05 | 2015-11-05 | Virtium Technology, Inc. | Synergetic deduplication |
JP5864667B2 (ja) * | 2014-05-07 | 2016-02-17 | 株式会社日立製作所 | ストレージシステムおよびそのデータ制御方法 |
US9396243B1 (en) | 2014-06-27 | 2016-07-19 | Emc Corporation | Hash-based replication using short hash handle and identity bit |
US20170046092A1 (en) * | 2014-07-04 | 2017-02-16 | Hewlett Packard Enterprise Development Lp | Data deduplication |
WO2016006050A1 (ja) * | 2014-07-09 | 2016-01-14 | 株式会社日立製作所 | ストレージシステム及び記憶制御方法 |
US9483199B1 (en) * | 2014-08-18 | 2016-11-01 | Permabit Technology Corporation | Data deduplication using multiple devices |
JP6050794B2 (ja) * | 2014-08-22 | 2016-12-21 | 株式会社日立製作所 | フラッシュメモリモジュール、不揮発性半導体メモリモジュール及びストレージ装置 |
US9575680B1 (en) | 2014-08-22 | 2017-02-21 | Veritas Technologies Llc | Deduplication rehydration |
US10423495B1 (en) | 2014-09-08 | 2019-09-24 | Veritas Technologies Llc | Deduplication grouping |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US10025843B1 (en) | 2014-09-24 | 2018-07-17 | EMC IP Holding Company LLC | Adjusting consistency groups during asynchronous replication |
US9792069B2 (en) | 2014-09-29 | 2017-10-17 | Western Digital Technologies, Inc. | Offline deduplication for solid-state storage devices |
US9626121B2 (en) * | 2014-12-19 | 2017-04-18 | International Business Machines Corporation | De-duplication as part of other routinely performed processes |
TWI709864B (zh) * | 2015-01-29 | 2020-11-11 | 韓商愛思開海力士有限公司 | 一種利用重複刪除過程的儲存系統、方法及裝置 |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US9940337B2 (en) * | 2015-05-31 | 2018-04-10 | Vmware, Inc. | Predictive probabilistic deduplication of storage |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
TWI569139B (zh) * | 2015-08-07 | 2017-02-01 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 |
US11625181B1 (en) | 2015-08-24 | 2023-04-11 | Pure Storage, Inc. | Data tiering using snapshots |
US11294588B1 (en) * | 2015-08-24 | 2022-04-05 | Pure Storage, Inc. | Placing data within a storage device |
WO2017068617A1 (ja) * | 2015-10-19 | 2017-04-27 | 株式会社日立製作所 | ストレージシステム |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US9690512B2 (en) | 2015-11-23 | 2017-06-27 | Samsung Electronics Co., Ltd. | Method of similarity testing by syndromes and apparatus therefore |
US20170161202A1 (en) * | 2015-12-02 | 2017-06-08 | Samsung Electronics Co., Ltd. | Flash memory device including address mapping for deduplication, and related methods |
US10101925B2 (en) * | 2015-12-23 | 2018-10-16 | Toshiba Memory Corporation | Data invalidation acceleration through approximation of valid data counts |
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
JP6587953B2 (ja) * | 2016-02-10 | 2019-10-09 | 東芝メモリ株式会社 | ストレージコントローラ、ストレージ装置、データ処理方法およびプログラム |
US10324635B1 (en) | 2016-03-22 | 2019-06-18 | EMC IP Holding Company LLC | Adaptive compression for data replication in a storage system |
US10310951B1 (en) | 2016-03-22 | 2019-06-04 | EMC IP Holding Company LLC | Storage system asynchronous data replication cycle trigger with empty cycle detection |
US10437785B2 (en) | 2016-03-29 | 2019-10-08 | Samsung Electronics Co., Ltd. | Method and apparatus for maximized dedupable memory |
US10528284B2 (en) | 2016-03-29 | 2020-01-07 | Samsung Electronics Co., Ltd. | Method and apparatus for enabling larger memory capacity than physical memory size |
US10678704B2 (en) | 2016-03-29 | 2020-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for enabling larger memory capacity than physical memory size |
US9983821B2 (en) | 2016-03-29 | 2018-05-29 | Samsung Electronics Co., Ltd. | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application |
US10496543B2 (en) | 2016-03-31 | 2019-12-03 | Samsung Electronics Co., Ltd. | Virtual bucket multiple hash tables for efficient memory in-line deduplication application |
US10095428B1 (en) | 2016-03-30 | 2018-10-09 | EMC IP Holding Company LLC | Live migration of a tree of replicas in a storage system |
US9959073B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Detection of host connectivity for data migration in a storage system |
US10565058B1 (en) | 2016-03-30 | 2020-02-18 | EMC IP Holding Company LLC | Adaptive hash-based data replication in a storage system |
US9959063B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Parallel migration of multiple consistency groups in a storage system |
US9966152B2 (en) * | 2016-03-31 | 2018-05-08 | Samsung Electronics Co., Ltd. | Dedupe DRAM system algorithm architecture |
KR102190403B1 (ko) * | 2016-05-20 | 2020-12-11 | 삼성전자주식회사 | 물리적 메모리 크기보다 큰 메모리 용량을 가능하게 하기 위한 방법 및 장치 |
US10083067B1 (en) | 2016-06-29 | 2018-09-25 | EMC IP Holding Company LLC | Thread management in a storage system |
US10048874B1 (en) | 2016-06-29 | 2018-08-14 | EMC IP Holding Company LLC | Flow control with a dynamic window in a storage system with latency guarantees |
US9983937B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Smooth restart of storage clusters in a storage system |
US10013200B1 (en) | 2016-06-29 | 2018-07-03 | EMC IP Holding Company LLC | Early compression prediction in a storage system with granular block sizes |
US10152232B1 (en) | 2016-06-29 | 2018-12-11 | EMC IP Holding Company LLC | Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system |
US10162554B2 (en) * | 2016-08-03 | 2018-12-25 | Samsung Electronics Co., Ltd. | System and method for controlling a programmable deduplication ratio for a memory system |
US10162831B2 (en) | 2016-08-12 | 2018-12-25 | International Business Machines Corporation | Lockless management of deduplicated data using reference tags |
JP6805816B2 (ja) * | 2016-12-27 | 2020-12-23 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理方法及びプログラム |
KR102509913B1 (ko) * | 2017-01-25 | 2023-03-14 | 삼성전자주식회사 | 최대화된 중복 제거 메모리를 위한 방법 및 장치 |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
JP6579149B2 (ja) | 2017-04-20 | 2019-09-25 | 富士通株式会社 | ストレージ制御装置、及びストレージ制御プログラム |
JP2018181207A (ja) * | 2017-04-20 | 2018-11-15 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム |
JP6785204B2 (ja) * | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US10896153B2 (en) * | 2018-03-30 | 2021-01-19 | EMC IP Holding Company LLC | Large block misaligned deduplication |
US11392551B2 (en) * | 2019-02-04 | 2022-07-19 | EMC IP Holding Company LLC | Storage system utilizing content-based and address-based mappings for deduplicatable and non-deduplicatable types of data |
JP2022529530A (ja) * | 2019-04-22 | 2022-06-22 | ウィンターロウド,マーク,ウィリアム | ソフトウェアの制御、空間、時間、モジュール性、参照、初期化性、および可変性態様に対する境界のハードウェア強制 |
KR20210034897A (ko) | 2019-09-23 | 2021-03-31 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
CN116868180A (zh) * | 2021-03-09 | 2023-10-10 | 华为技术有限公司 | 用于改进重复数据删除的内存控制器和方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411546B1 (en) * | 1997-03-31 | 2002-06-25 | Lexar Media, Inc. | Nonvolatile memory using flexible erasing methods and method and system for using same |
JP3421581B2 (ja) * | 1998-06-29 | 2003-06-30 | 株式会社日立製作所 | 不揮発性半導体メモリを用いた記憶装置 |
US6513051B1 (en) * | 1999-07-16 | 2003-01-28 | Microsoft Corporation | Method and system for backing up and restoring files stored in a single instance store |
US6477544B1 (en) * | 1999-07-16 | 2002-11-05 | Microsoft Corporation | Single instance store for file systems |
US6389433B1 (en) * | 1999-07-16 | 2002-05-14 | Microsoft Corporation | Method and system for automatically merging files into a single instance store |
JP2003241901A (ja) * | 2002-02-19 | 2003-08-29 | Hitachi Software Eng Co Ltd | ディスク共用制御方法および装置 |
US6928526B1 (en) * | 2002-12-20 | 2005-08-09 | Datadomain, Inc. | Efficient data storage system |
CN100511181C (zh) * | 2003-08-29 | 2009-07-08 | 松下电器产业株式会社 | 非易失性存储装置及其写入方法 |
CN100437517C (zh) * | 2004-04-28 | 2008-11-26 | 松下电器产业株式会社 | 非易失性存储装置和数据写入方法 |
JP3976764B2 (ja) * | 2005-06-16 | 2007-09-19 | 株式会社ルネサステクノロジ | 半導体ディスク装置 |
JP4688584B2 (ja) * | 2005-06-21 | 2011-05-25 | 株式会社日立製作所 | ストレージ装置 |
US7472252B2 (en) * | 2005-08-15 | 2008-12-30 | Microsoft Corporation | Merging identical memory pages |
US7853750B2 (en) * | 2007-01-30 | 2010-12-14 | Netapp, Inc. | Method and an apparatus to store data patterns |
-
2007
- 2007-09-28 JP JP2007255892A patent/JP5026213B2/ja not_active Expired - Fee Related
-
2008
- 2008-01-28 US US12/010,602 patent/US7818495B2/en not_active Expired - Fee Related
- 2008-02-19 EP EP08250569A patent/EP2042995B1/en not_active Expired - Fee Related
- 2008-06-06 CN CN2008101089040A patent/CN101398783B/zh active Active
-
2010
- 2010-10-15 US US12/905,566 patent/US8156279B2/en not_active Expired - Fee Related
-
2012
- 2012-04-09 US US13/442,678 patent/US8417882B2/en active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102792259A (zh) * | 2010-03-04 | 2012-11-21 | 日本电气株式会社 | 存储装置 |
CN102792259B (zh) * | 2010-03-04 | 2016-12-07 | 日本电气株式会社 | 排除重复存储的存储装置 |
CN104903842A (zh) * | 2012-12-31 | 2015-09-09 | 桑迪士克科技股份有限公司 | 用于在非易失性存储器中的异步裸芯操作的方法和系统 |
CN104903842B (zh) * | 2012-12-31 | 2018-08-14 | 桑迪士克科技有限责任公司 | 用于在非易失性存储器中的异步裸芯操作的方法和系统 |
CN109196483A (zh) * | 2016-07-27 | 2019-01-11 | 株式会社日立制作所 | 计算机系统和数据保存方法 |
CN109196483B (zh) * | 2016-07-27 | 2023-04-21 | 株式会社日立制作所 | 计算机系统和数据保存方法 |
CN109144897A (zh) * | 2018-09-04 | 2019-01-04 | 杭州阿姆科技有限公司 | 一种实现大容量ssd磁盘的方法 |
CN109144897B (zh) * | 2018-09-04 | 2023-07-14 | 杭州阿姆科技有限公司 | 一种实现大容量ssd磁盘的方法 |
CN110781101A (zh) * | 2019-10-25 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种一对多映射关系的存储方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US8417882B2 (en) | 2013-04-09 |
US20090089483A1 (en) | 2009-04-02 |
US7818495B2 (en) | 2010-10-19 |
JP2009087021A (ja) | 2009-04-23 |
US20120198139A1 (en) | 2012-08-02 |
US20110035541A1 (en) | 2011-02-10 |
CN101398783B (zh) | 2011-02-02 |
JP5026213B2 (ja) | 2012-09-12 |
US8156279B2 (en) | 2012-04-10 |
EP2042995A1 (en) | 2009-04-01 |
EP2042995B1 (en) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101398783B (zh) | 存储装置以及数据重复排除方法 | |
CN112783425B (zh) | 将耐久性组应用于分区命名空间 | |
EP3800554B1 (en) | Storage system managing metadata, host system controlling storage system, and storage system operating method | |
CN103620563B (zh) | 用于非易失性存储器的可变超量配置 | |
US9176810B2 (en) | Bit error reduction through varied data positioning | |
US8762622B2 (en) | Enhanced MLC solid state device | |
CN103902403B (zh) | 经由冗余阵列的非易失性存储器编程故障恢复 | |
US10061710B2 (en) | Storage device | |
US7594075B2 (en) | Metadata for a grid based data storage system | |
WO2011010344A1 (ja) | 複数のフラッシュパッケージを有するストレージシステム | |
CN109992530A (zh) | 一种固态驱动器设备及基于该固态驱动器的数据读写方法 | |
CN104423888B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
US20080276038A1 (en) | Storage system using flash memory modules logically grouped for wear-leveling and raid | |
CN101923512B (zh) | 三层闪存装置、智能存储开关和三层控制器 | |
US20130290613A1 (en) | Storage system and storage apparatus | |
CN104937561A (zh) | 存储装置 | |
CN102779096A (zh) | 一种基于页块面三维的闪存地址映射方法 | |
US9251059B2 (en) | Storage system employing MRAM and redundant array of solid state disk | |
CN102405460A (zh) | 虚拟存储系统及其运行方法 | |
DE102009026178A1 (de) | Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten | |
KR20200113047A (ko) | 오픈 채널 스토리지 장치의 동작 방법 | |
CN102667738A (zh) | 具有多个raid组分条的内存系统及其方法 | |
US10795768B2 (en) | Memory reallocation during raid rebuild | |
WO2017068617A1 (ja) | ストレージシステム | |
CN102122235A (zh) | 一种raid4系统及其数据读写方法 |
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 |