CN114461137B - 一种基于固体硬盘的写入方法及装置 - Google Patents

一种基于固体硬盘的写入方法及装置 Download PDF

Info

Publication number
CN114461137B
CN114461137B CN202111591166.1A CN202111591166A CN114461137B CN 114461137 B CN114461137 B CN 114461137B CN 202111591166 A CN202111591166 A CN 202111591166A CN 114461137 B CN114461137 B CN 114461137B
Authority
CN
China
Prior art keywords
target solid
solid state
state disk
wafers
capacity
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
Application number
CN202111591166.1A
Other languages
English (en)
Other versions
CN114461137A (zh
Inventor
江峰
程咏阳
惠钊
秦伯钦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202111591166.1A priority Critical patent/CN114461137B/zh
Publication of CN114461137A publication Critical patent/CN114461137A/zh
Application granted granted Critical
Publication of CN114461137B publication Critical patent/CN114461137B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种基于固体硬盘的写入方法及装置,其中,基于固体硬盘的写入方法包括:获取目标固体硬盘的标称容量和实际容量;将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格;基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘。通过将目标固体硬盘的标称容量作为操作系统对目标固体硬盘的容量检测值,再将业务数据顺序写入目标固体硬盘,不仅避免了目标固体硬盘被操作系统“强制报废”导致无法再写入数据的问题,还减少了磁盘碎片的产生,提高了固定硬盘的使用寿命。

Description

一种基于固体硬盘的写入方法及装置
技术领域
本发明涉及计算机硬件领域,具体涉及一种基于固体硬盘的写入方法及装置。
背景技术
固态硬盘(SSD)的整体结构由电子芯片和电路板组成,相较于机械硬盘(HDD),固体硬盘具有低能耗、无噪声、抗震动、低散热、体积小和速度快的优势,因此具备更长远的使用前景。但随着写入次数的增加,固体硬盘中会出现较多的磁盘碎片,虽然可以通过固体硬盘的“垃圾回收”机制对这些无效碎片进行回收,但经过回收操作的固体硬盘内有时会出现坏“块”,导致在操作系统上进行读取固体硬盘容量时出现实际容量与标称容量不一致的问题,从而固体硬盘被操作系统“强制报废”,无法再写入数据。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中固体硬盘由于实际容量与标称容量不一致,导致被操作系统“强制报废”,无法再写入数据的缺陷,从而提供一种基于固体硬盘的写入方法及装置。
根据第一方面,本发明实施例提供了一种基于固体硬盘的写入方法,所述方法包括:
获取目标固体硬盘的标称容量和实际容量;
将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格;
基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘。
可选地,所述基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘,包括:
获取业务数据的数据量;
判断所述业务数据的数据量是否不超过所述基于所述目标固体硬盘的实际容量;
当所述所述业务数据的数据量不超过所述基于所述目标固体硬盘的实际容量时,将所述业务数据顺序写入所述目标固体硬盘。
可选地,所述获取目标固体硬盘的实际容量,包括:
获取所述目标固体硬盘中的坏晶圆数量;
基于所述目标固体硬盘的标称容量和所述坏晶圆数量,确定所述目标固体硬盘的实际容量。
可选地,所述获取所述目标固体硬盘中的坏晶圆数量,包括:
基于所述目标固体硬盘的标称容量,确定所述目标固体硬盘的标称晶圆数量;
扫描所述目标固体硬盘,确定当前所述目标固体硬盘内正常晶圆数量;
基于所述标称晶圆数量和所述正常晶圆数量,确定当前所述目标固体硬盘中的坏晶圆数量。
可选地,所述坏晶圆数量通过以下公式得到:
Δ=A-B
其中,Δ为所述坏晶圆数量,A为所述标称晶圆的数量,B为所述正常晶圆的数量。
可选地,所述基于所述目标固体硬盘的标称容量和所述坏晶圆数量,确定所述目标固体硬盘的实际容量,包括:
扫描所述目标固体硬盘,确定当前所述所述目标固体硬盘内已用晶圆数量;
基于所述目标固体硬盘的标称容量、坏晶圆数量和当前已用晶圆数量,确定所述目标固体硬盘的实际容量。
可选地,所述目标固体硬盘的实际容量通过以下公式得到:
ω=A-C-Δ
其中,ω为当前所述目标固体硬盘中可用的晶圆数量,A为所述标称晶圆的数量,C为所述当前已用晶圆的数量,Δ为所述坏晶圆的数量。
根据第二方面,本发明实施例提供了一种基于固体硬盘的写入装置,所述装置包括:
获取模块,用于获取目标固体硬盘的标称容量和实际容量;
检测模块,用于将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格;
写入模块,用于基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘。
根据第三方面,本发明实施例提供了一种电子设备,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
本发明技术方案,具有如下优点:
本发明实施例提供的基于固体硬盘的写入方法及装置,通过获取目标固体硬盘的标称容量和实际容量;将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格;基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘。通过将目标固体硬盘的标称容量作为操作系统对目标固体硬盘的容量检测值,再将业务数据顺序写入目标固体硬盘,不仅避免了目标固体硬盘被操作系统“强制报废”导致无法再写入数据的问题,还减少了磁盘碎片的产生,提高了固定硬盘的使用寿命。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的基于固体硬盘的写入方法的流程图;
图2为本发明实施例的基于固体硬盘的写入方法的方法架构图;
图3为本发明实施例的基于固体硬盘的写入方法的固体硬盘物理机构图;
图4为本发明实施例的基于固体硬盘的写入方法的固体硬盘写入数据流程图;
图5为本发明实施例的基于固体硬盘的写入方法的固体硬盘回收机制流程图;
图6为本发明实施例的基于固体硬盘的写入装置的结构示意图;
图7为本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明实施例提供了一种基于固体硬盘的写入方法,如图1所示,该基于固体硬盘的写入方法具体包括如下步骤:
步骤S101:获取目标固体硬盘的标称容量和实际容量。在实际应用中,目标固体硬盘会存在多次写入和擦除业务数据的操作,导致标称容量和实际容量不一致。
固态硬盘(SSD)诞生于上世纪70年代,最早的SSD使用随机存取存储器(RAM)作为存储介质,但是RAM掉电后存储的数据就会丢失,同时价格也特别昂贵,并未得到广泛应用。后来出现了基于闪存(Flash)的SSD,Flash具有掉电后存储数据不丢失的特性,因此Flash-SSD慢慢取代了RAM-SSD,并被业界广泛接受。但是,此时机械硬盘(HDD)已经占据了大部分的市场,成为最普遍的数据存储方式。到本世纪初,随着制造工艺的不断进步,SDD迎来了长足的发展,同时HDD在工艺和技术上已经很难有突破性的进展,而SSD在性能和容量上还在不断突破,成为研究的热点。区别于HDD由磁盘、磁头等机械部件构成,整个SSD无任何机械装置,全部由电子芯片及电路板组成,相较于HDD,SSD具有低能耗、无噪声、抗震动、低散热、体积小和速度快的优势,不过价格相比HDD要更高,而且使用寿命有限,因此,提高SSD的使用寿命可以极大程度减少企业的建设成本。从工程角度出发,为了适配SSD的“页写块擦”和“坏块置换”特性,SSD制造厂商会预留7%至15%的闪存空间,称为OP空间(Over-Provisioning),这些空间对用户是不可见的,这也就意味着无法写入业务数据。例如一块SSD实际空间为128GB,可用容量却只有120GB,这里的实际空间即为本发明实施例中的标称容量,可用容量即为本发明实施例中的实际容量,如果为了提高SSD空间利用率而减少或者不设置OP空间,会导致整个SSD在出现坏块后因无法进行有效置换而被操作系统“强制报废”,因此需要一种新的写入方法对固体硬盘的容量进行处理,从而保证固体硬盘SSD不会因为出现坏块而被操作系统“强制报废”。
步骤S102:将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格。在实际应用中,操作系统会先读取固体硬盘的容量,当固体硬盘的容量与标称容量一致时,才会将数据写入固体硬盘,但在实际情况中,固体硬盘往往会由于多次写入和擦除导致实际容量和标称容量不一致的情况,进而导致操作系统对固体硬盘“误判”,判定该固体硬盘不可用。通过将标称容量输入至操作系统中,可避免操作系统对固体硬盘“强制报废”。
具体地,如图2所示,在实际应用中,本发明实施例在目标固体硬盘内创建了桥接层,桥接层由“容量映射”、“坏块管理”和“写入转换”三部分组成,通过桥接层与主机、操作系统进行连接,保证了业务数据顺利写入目标固体硬盘,在本发明实施例中的“容量映射”部分,包括两种映射机制,即“虚拟映射”和“实际映射”。在利用SMART机制对SSD进行扫盘后,“虚拟映射”机制会向操作系统报告,宣称该SSD容量未发生变化。该机制保证了不会因为SSD实际容量的变化导致被操作系统“强制报废”。
步骤S103:基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘。本发明实施例通过将业务数据顺序写入所述目标固体硬盘,减少了磁盘碎片的产生,进而减少甚至避免了擦除以及回收机制对目标固体硬盘的损害,从而有效延长了固体硬盘的使用寿命。
具体地,在实际应用中,固体硬盘SSD由控制单元、存储单元和缓存单元组成,就内部结构来看,控制单元中的主控芯片是SSD的大脑,如同CPU之于PC一样,是SSD的关键部件,作用是使用SSD中固件算法中的控制程序,去执行自动信号处理、耗损平衡、错误校正码、坏块管理、垃圾回收、与Host通信、以及执行数据加密等任务。作为业务数据存储载体,存储单元无疑是SSD的核心器件,在SSD中,闪存颗粒代替磁性材料成为了存储单元的基本存储介质,每一个闪存颗粒称为一个晶圆(Die),Die是接收和执行命令的基本单元。每个Die有若干个分组(Plane),每个Plane有若干个块(Block),每个Block有若干个页(Page)。Page是SSD进行读写的最小单位,一般为2KB至16KB不等。每个Page中有若干个存储单元。而根据存储单元中电子密度差异,又可以分为单层次存储单元SLC、双层存储单元MLC、三层存储单元TLC和四层存储单元QLC。SLC写入数据时电压变化区间小,寿命长,读写次数在10万次以上,造价高,多用于企业级高端产品。MLC使用高低电压的不同来构建双层电子结构,寿命长,读写次数大约在5000次左右,造价可接受,多用于民用高端产品。TLC(或QLC)使用更复杂的电压控制机制,存储密度更高。但是读写次数较少,约为500至1000次左右,寿命短,但造价成本低。闪存颗粒的制造成本占据整个产品的70%以上,因此,TLC和QLC是当下主流SSD厂商首选的闪存颗粒存储单元结构。本发明实施例是基于闪存颗粒对SSD的写入方法进行改进。
示例性地,在实际应用中,如图3所示,SSD写入业务数据的过程是对浮置栅层充电子,也称为编程。写之前需要先进行擦除,由于擦除之后,数据都变成了1,所以需要对要写入0的浮置栅层进行充电。SSD读取数据的过程,是对晶体管施加一个低电压,如果浮置栅层中没有电子,那么管子就是导通的,读到1;如果浮置栅层中有电子,管子不导通,读到0。读取数据时,因为是否有电子会影响到管子的导通性,所以可以利用电流感应浮置栅层里电子捕获量的多寡,靠感应强度转换成二进制的0与1。SSD读写操作的基本单位是Page。SSD的擦除过程是在衬底施加电压足够长的时间,把电子从浮置栅层中吸出来,由于整个Block共用一个衬底,所以在擦除时,一次擦除一个Block,即擦除操作的基本单位是Block。
SSD除了具有“页写块擦”的特性,还具有“写放大”特性,这也是制约SSD空间利用率的重要因素。其在数值上等于“最终写入闪存的数据量”占“Host写入的数据总量”的比例。示例性地,以东芝BiCS3进行说明,一个Die大小为64GB,一个Die是由2个32GB的Plane组成,一个Plane由8192个4MB的Block组成,一个Block由256个16KB的Page组成。当Host要写入16KB的业务数据时,最坏的状况就是一个Block中没有可用空间,但是这个Block中有一些无效数据内容能够被擦除,这时控制单元的做法就是,把这个Block中全部的数据搬到缓存单元,然后擦除这个Block,在缓存单元里更新整个Block的内容,更新完成后,把最新的数据搬回Block,整个操作造成的写放大如下:Host只需写16KB数据,却带来了整个Block的写操作,写放大就等于4MB/16KB=256倍。
此外,在Page页写入之前,必须要将page所在的Block块擦除。具体而言,SSD的业务数据写入分为“新写入”和“覆盖写”两种不同方式,处理流程不同,如图4所示。在“新写入”时,流程为找到一个空闲Page;->数据写入到空闲Page;->更新mapping table。在“覆盖写”时,流程为先找到一个空闲页H;->读取Page-G中的数据到SSD内部的buffer中,把更新的字节更新到buffer;->buffer中的数据写入到H;->更新mapping table中G页,置为无效页;->更新mapping table中H页,添加映射关系。如果在覆盖写操作比较多的情况下,会产生较多的无效页,类似于磁盘碎片,此时需要SSD的“垃圾回收”机制来回收这部分空间了。频繁的“垃圾回收”操作不仅会影响SSD的数据读写速率,而且还会减少其使用寿命,应尽量减少“垃圾回收”频率。
SSD的缓存单元,也叫OP空间,是指SSD实际的存储空间要比可写入业务数据的空间大。比如一块SSD实际空间128GB,可用容量却只有120GB。OP空间值一般在7%至15%之间,作用是降低写放大,提高数据写入性能,通过实测分析显示,OP空间的大小对顺序写入的影响不大,但是对随机写的影响是线性增加的。假设系统中只有两个Block,最终还剩下两个无效的Page。此时要写入一个新Page,必须要先对两个无效的Page擦除才能用于写入。而擦除的粒度是Block,需要读取当前Block有效数据到新的Block,如果此时没有额外的空间,便做不了擦除操作,那么最终两个无效的Page便不能得到利用。所以,SSD需要提供额外的缓存,即OP空间保证“垃圾回收”的正常运行。图5显示的是利用OP空间进行“垃圾回收”操作的过程。从OP空间中,找到一个空闲的Block-T;->把Block-0的ABCDEFH和Block-1的A复制到空闲Block-T;->擦除Block-0;->把Block-1的BCDEFH复制到Block-0,此时Block0就有两个空闲Page;->擦除Block-1;->将Block-T中的ABCDEFHA复制到Block-1。而SSD的“垃圾回收”机制会带来两个问题:1.SSD的寿命减少,每个Block都有擦写次数的限制,超过这个次数时,浮置栅层充不进电子(写失败),或者浮置栅层的电子很容易就跑出来(比特翻转,0->1),或者浮置栅层里面的电子跑不出来(擦除失败),最终结果就是该Block不能用了。2.写放大,即内部真正写入的数据量大于用户请求写入的数据量。传统方法中,SSD坏块替换策略是用固定的OP空间的好晶圆替换坏晶圆,但是当坏晶圆太多时,可替换的OP空间用完,固态硬盘就意味着报废了。
通过执行上述步骤,本发明实施例提供的基于固体硬盘的写入方法,通过获取目标固体硬盘的标称容量和实际容量;将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格;基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘。通过将目标固体硬盘的标称容量作为操作系统对目标固体硬盘的容量检测值,再将业务数据顺序写入目标固体硬盘,不仅避免了目标固体硬盘被操作系统“强制报废”导致无法再写入数据的问题,还减少了磁盘碎片的产生,提高了固定硬盘的使用寿命。
具体地,在一实施例中,上述步骤S101中获取目标固体硬盘的实际容量具体包括如下步骤:
步骤S201:获取所述目标固体硬盘中的坏晶圆数量。
具体地,在一实施例中,上述步骤S201具体包括如下步骤:
步骤S301:基于所述目标固体硬盘的标称容量,确定所述目标固体硬盘的标称晶圆数量。
步骤S302:扫描所述目标固体硬盘,确定当前所述目标固体硬盘内正常晶圆数量。在实际应用中,正常晶圆指的是可写入业务数据的晶圆。
步骤S303:基于所述标称晶圆数量和所述正常晶圆数量,确定当前所述目标固体硬盘中的坏晶圆数量。
在实际应用中,我们将SSD中可以供用户写入业务数据的空间占设计空间的比例称为空间利用率。仍以上述SSD为例,假设其一共由100个64GB的晶圆组成,其中OP空间为15个晶圆,则此时的SSD空间利用率为对外呈现的容量为64GB×100×85%=5.44TB。为了提高SSD的空间利用率,一个显而易见的方法就是减少OP空间占比,例如从15%直接降为1%,此时的OP空间仅有1个晶圆,SSD的空间利用率可以提高到对外呈现的容量为64GB×100×85%=5.44TB。从用户角度看,可用容量增加了/>传统方法中OP空间占比高达7%至15%,导致SSD中可供写入有效的业务数据空间占比小,单位GB数据价格高。本方法将OP空间降低至1%,提高了SSD的空间利用率。
但是,无论我们做何努力,SSD中闪存颗粒的劣化过程都是必然的,这也是传统方法中OP空间不能设置过小的核心原因。示例性地,如果整个SSD中出现一个坏晶圆,且恰好就是OP空间,则意味着当所有的闪存单元写满业务数据后,没有额外的OP空间供擦除操作进行临时业务数据存储,整个SSD就只能读取已有的业务数据,不能再写入新的业务数据了,这对用户来说是不可接受的。如果坏晶圆不是OP空间,此时,就算SSD还未被写满,由于对外可用的容量已经改变,与操作系统对SSD进行初始化时标称的容量不符,因此会直接认定该SSD无效,这对于用户和设备制造商都是严重的损失。为了解决该项难题,我们在发明创造的桥接层中设计了“坏块管理”和“容量映射”部分。在“坏块管理”部分中,我们利用SMART机制,扫描当前正常晶圆的数目,并根据以下公式得到坏晶圆数量。
计算坏晶圆数量通过以下公式得到:
Δ=A-B
其中,Δ为所述坏晶圆数量,A为所述标称晶圆的数量,B为所述正常晶圆的数量。
步骤S202:基于所述目标固体硬盘的标称容量和所述坏晶圆数量,确定所述目标固体硬盘的实际容量。
具体地,在实际应用中,通过容量映射部分对目标固体硬盘的标称容量和实际容量进行获取,坏晶圆的数量通过坏块管理部分进行获取。
具体地,在一实施例中,上述步骤S202基于所述目标固体硬盘的标称容量和所述坏晶圆数量,确定所述目标固体硬盘的实际容量,还具体包括如下步骤:
步骤S401:扫描所述目标固体硬盘,确定当前所述所述目标固体硬盘内已用晶圆数量;
步骤S402:基于所述目标固体硬盘的标称容量、坏晶圆数量和当前已用晶圆数量,确定所述目标固体硬盘的实际容量。
具体地,在实际应用中,本发明实施例在利用SMART机制对SSD进行扫盘后,不论坏晶圆数目Δ有多少,“虚拟映射”机制会向操作系统报告,宣称该SSD容量未发生变化(例如仍为6.34TB)。该机制保证了不会因为晶圆数目的变化导致被操作系统“强制报废”。另一方面,由于实际可供写入业务数据的晶圆数目确实减少了,因此“真实映射”机制会异步通知主机Host当前可用的晶圆的数目ω,ω的计算公式如下所示:
ω=A-C-Δ
其中,ω为当前所述目标固体硬盘中可用的晶圆数量,A为所述标称晶圆的数量,C为所述当前已用晶圆的数量,Δ为所述坏晶圆的数量。
通过“虚拟映射”和“实际映射”两种映射机制相结合,解决了OP空间不足带来的操作系统层面对SSD的“强制报废”。理论条件下,主机Host可以控制写入业务数据的总量,实现闪存颗粒的100%利用,以细粒度访问控制的方式在保证SSD利用率的同时,最大程度延长了其使用寿命。
具体地,在一实施例中,上述步骤S103基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘具体包括如下步骤:
步骤S501:获取业务数据的数据量。在实际应用中,业务数据存储在主机Host内,如图2所示,主机Host内至少包括两部分,业务写入和空间管理。目标固体硬盘的容量映射部分与主机Host的空间部分进行配合,从而获取业务数据的数据量。
步骤S502:判断所述业务数据的数据量是否不超过所述基于所述目标固体硬盘的实际容量。在实际应用中,主机Host内空间管理主要用于判断业务数据的数据量是否不超过目标固体硬盘的实际容量,避免出现业务数据超过目标固体硬盘容量导致无法成功写入的情况。
步骤S503:当所述所述业务数据的数据量不超过所述基于所述目标固体硬盘的实际容量时,将所述业务数据顺序写入所述目标固体硬盘。
在实际应用中,传统方法中的随机业务数据写入会导致频繁的“垃圾回收”操作,不仅会降低SSD的读写性能,而且会严重损耗闪存颗粒的使用寿命。本发明实施例将业务数据处理方式优化为顺序写入、大块删除模式,减少“垃圾回收”过程对于OP空间的依赖,而且可以有效减少Block的擦除次数。
具体地,在实际应用中,虽然可以通过降低OP空间的方式提高SSD的空间利用率,仍以上述SSD为例,假设其一共由100个64GB的晶圆组成,其中OP空间为15个晶圆,最终可将利用率甚至提高至16.54%,但在传统方法中,这种操作具有极高的风险,业务数据随机写入模式会带来频繁的“垃圾回收”操作,OP空间减少会制约业务数据随机写入性能。令人欣喜的是,我们发现OP空间减少对业务数据顺序写入性能的影响不大。因此,本发明实施例在SSD内创造的桥接层中设计了“写入转换”部分,将业务数据处理方式优化为顺序写入、大块删除模式,这样不仅可以极大程度减少“垃圾回收”过程对于OP空间的依赖,而且可以减少Block的擦除次数,增加闪存单元的使用寿命。
下面将结合具体应用示例,对本发明实施例提供的基于固体硬盘的写入方法进行详细的说明。
如图2所示,本发明实施例以NAND型固体硬盘为例,通过在该固体硬盘内创建桥接层,并在桥接层内对三个部分进行设计,涉及的三个部分分别为“容量映射”、“坏块管理”和“写入转换”。“容量映射”内包含“真实映射”和“虚拟映射”两种机制;“坏块管理”用于对固体硬盘内的坏晶圆进行获取和处理,“写入转换”用于将业务数据写入固体硬盘内。当固体硬盘接入操作系统后,固体硬盘通过“容量映射”内的“虚拟映射”机制将固体硬盘的标称容量数据传输给操作系统的文件系统,当操作系统判定该固体硬盘的容量数据与标称容量一致时,主机Host开始启动业务数据写入工作,当对固体硬盘进行业务数据写入时,固体硬盘内的“容量映射”内的“真实映射”机制会将固体硬盘的实际容量传输给主机Host,固体硬盘的实际容量会和将写入的业务数据的数据量进行比较,当即将写入的业务数据的数据量未超过固体硬盘的实际容量时,主机Host内的业务数据将传输至固体硬盘,通过固体硬盘内的“写入转换”部分将业务数据顺序写入固体硬盘。本发明实施例通过对固体硬盘桥接层中的“虚拟映射”和“实际映射”两种机制进行设计,在提高固体硬盘空间利用率的同时,最大程度延长了其使用寿命,并对固体硬盘闪存颗粒实现了顺序写入和大块删除的优化。
本发明实施例提供了一种基于固体硬盘的写入装置,如图6所示,该基于固体硬盘的写入装置包括:
获取模块101,用于获取目标固体硬盘的标称容量和实际容量。详细内容参见上述方法实施例中步骤S101的相关描述,在此不再进行赘述。
检测模块102,用于将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格。详细内容参见上述方法实施例中步骤S102的相关描述,在此不再进行赘述。
写入模块103,用于基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘。详细内容参见上述方法实施例中步骤S103的相关描述,在此不再进行赘述。
上述的基于固体硬盘的写入装置的更进一步描述参见上述基于固体硬盘的写入方法实施例的相关描述,在此不再进行赘述。
通过上述各个组成部分的协同合作,本发明实施例提供的基于固体硬盘的写入装置,通过将目标固体硬盘的标称容量作为操作系统对目标固体硬盘的容量检测值,再将业务数据顺序写入目标固体硬盘,不仅避免了目标固体硬盘被操作系统“强制报废”导致无法再写入数据的问题,还减少了磁盘碎片的产生,提高了固定硬盘的使用寿命。
本发明实施例提供了一种电子设备,如图7所示,该电子设备包括处理器901和存储器902,所述存储器902和所述处理器901之间互相通信连接,其中处理器901和存储器902可以通过总线或者其他方式连接,图7中以通过总线连接为例。
处理器901可以为中央处理器(Central Processing Unit,CPU)。处理器901还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器901的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

Claims (7)

1.一种基于固体硬盘的写入方法,其特征在于,包括:
获取目标固体硬盘的标称容量和实际容量;
将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格;
基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘;
所述获取目标固体硬盘的实际容量,包括:
获取所述目标固体硬盘中的坏晶圆数量;
基于所述目标固体硬盘的标称容量和所述坏晶圆数量,确定所述目标固体硬盘的实际容量;
所述基于所述目标固体硬盘的标称容量和所述坏晶圆数量,确定所述目标固体硬盘的实际容量,包括:
扫描所述目标固体硬盘,确定当前所述目标固体硬盘内已用晶圆数量;
基于所述目标固体硬盘的标称容量、坏晶圆数量和当前已用晶圆数量,确定所述目标固体硬盘的实际容量;
所述目标固体硬盘的实际容量通过以下公式得到:
ω=A-C-△
其中,ω为当前所述目标固体硬盘中可用的晶圆数量,A为标称晶圆的数量,C为所述当前已用晶圆的数量,△为所述坏晶圆的数量。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘,包括:
获取业务数据的数据量;
判断所述业务数据的数据量是否不超过所述基于所述目标固体硬盘的实际容量;
当所述业务数据的数据量不超过所述基于所述目标固体硬盘的实际容量时,将所述业务数据顺序写入所述目标固体硬盘。
3.根据权利要求1所述的方法,其特征在于,所述获取所述目标固体硬盘中的坏晶圆数量,包括:
基于所述目标固体硬盘的标称容量,确定所述目标固体硬盘的标称晶圆数量;
扫描所述目标固体硬盘,确定当前所述目标固体硬盘内正常晶圆数量;
基于所述标称晶圆数量和所述正常晶圆数量,确定当前所述目标固体硬盘中的坏晶圆数量。
4.根据权利要求3所述的方法,其特征在于,所述坏晶圆数量通过以下公式得到:
△=A-B
其中,△为所述坏晶圆数量,A为所述标称晶圆的数量,B为所述正常晶圆的数量。
5.一种基于固体硬盘的写入装置,其特征在于,包括:
获取模块,用于获取目标固体硬盘的标称容量和实际容量;所述获取目标固体硬盘的实际容量,包括:获取所述目标固体硬盘中的坏晶圆数量;基于所述目标固体硬盘的标称容量和所述坏晶圆数量,确定所述目标固体硬盘的实际容量;所述基于所述目标固体硬盘的标称容量和所述坏晶圆数量,确定所述目标固体硬盘的实际容量,包括:扫描所述目标固体硬盘,确定当前所述目标固体硬盘内已用晶圆数量;基于所述目标固体硬盘的标称容量、坏晶圆数量和当前已用晶圆数量,确定所述目标固体硬盘的实际容量;所述目标固体硬盘的实际容量通过以下公式得到:
ω=A-C-△
其中,ω为当前所述目标固体硬盘中可用的晶圆数量,A为标称晶圆的数量,C为所述当前已用晶圆的数量,△为所述坏晶圆的数量;
检测模块,用于将所述目标固体硬盘的标称容量作为操作系统对所述目标固体硬盘的容量检测值,以使所述操作系统对所述目标固体硬盘的容量检测结果为合格;
写入模块,用于基于所述目标固体硬盘的实际容量,将业务数据顺序写入所述目标固体硬盘。
6.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-4中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行如权利要求1-4中任一项所述的方法。
CN202111591166.1A 2021-12-23 2021-12-23 一种基于固体硬盘的写入方法及装置 Active CN114461137B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111591166.1A CN114461137B (zh) 2021-12-23 2021-12-23 一种基于固体硬盘的写入方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111591166.1A CN114461137B (zh) 2021-12-23 2021-12-23 一种基于固体硬盘的写入方法及装置

Publications (2)

Publication Number Publication Date
CN114461137A CN114461137A (zh) 2022-05-10
CN114461137B true CN114461137B (zh) 2024-01-02

Family

ID=81408452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111591166.1A Active CN114461137B (zh) 2021-12-23 2021-12-23 一种基于固体硬盘的写入方法及装置

Country Status (1)

Country Link
CN (1) CN114461137B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419693A (zh) * 2010-09-28 2012-04-18 联想(北京)有限公司 一种管理存储单元的磁盘空间的方法和电子设备
CN103488575A (zh) * 2013-08-12 2014-01-01 记忆科技(深圳)有限公司 动态调整固态硬盘预留空间的方法及其固态硬盘
CN103500586A (zh) * 2013-09-26 2014-01-08 北京奇虎科技有限公司 检测移动存储装置容量的方法及设备
CN103559138A (zh) * 2013-10-09 2014-02-05 华为技术有限公司 固态硬盘及其空间管理方法
CN108255408A (zh) * 2016-12-28 2018-07-06 中国电信股份有限公司 数据存储方法以及系统
CN109471765A (zh) * 2018-11-14 2019-03-15 郑州云海信息技术有限公司 一种硬盘质量检测系统及方法
CN110347528A (zh) * 2018-04-03 2019-10-18 爱思开海力士有限公司 用于坏块管理的存储器系统及方法
CN110879761A (zh) * 2018-09-05 2020-03-13 华为技术有限公司 硬盘故障处理方法、阵列控制器及硬盘
CN111694506A (zh) * 2019-03-15 2020-09-22 杭州海康威视数字技术股份有限公司 磁盘总容量确定方法、装置、磁盘及机器可读存储介质
CN112256194A (zh) * 2020-09-30 2021-01-22 新华三技术有限公司成都分公司 一种存储空间的分配方法和存储服务器
CN113093993A (zh) * 2021-03-25 2021-07-09 深圳大普微电子科技有限公司 一种闪存空间动态分配方法及固态硬盘
CN113724775A (zh) * 2021-08-23 2021-11-30 南京大普信息技术有限公司 元信息管理方法、固态硬盘控制器及固态硬盘

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5423407B2 (ja) * 2010-01-08 2014-02-19 富士通株式会社 記憶管理装置、記憶管理方法および記憶管理プログラム
US20140164678A1 (en) * 2012-12-12 2014-06-12 Key Technology Corporation Intelligent detection device of solid state hard disk combining a plurality of nand flash memory cards and detecting method for the same
US9552166B2 (en) * 2014-09-02 2017-01-24 Sandisk Technologies Llc. Process and apparatus to reduce declared capacity of a storage device by deleting data

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419693A (zh) * 2010-09-28 2012-04-18 联想(北京)有限公司 一种管理存储单元的磁盘空间的方法和电子设备
CN103488575A (zh) * 2013-08-12 2014-01-01 记忆科技(深圳)有限公司 动态调整固态硬盘预留空间的方法及其固态硬盘
CN103500586A (zh) * 2013-09-26 2014-01-08 北京奇虎科技有限公司 检测移动存储装置容量的方法及设备
CN103559138A (zh) * 2013-10-09 2014-02-05 华为技术有限公司 固态硬盘及其空间管理方法
CN108255408A (zh) * 2016-12-28 2018-07-06 中国电信股份有限公司 数据存储方法以及系统
CN110347528A (zh) * 2018-04-03 2019-10-18 爱思开海力士有限公司 用于坏块管理的存储器系统及方法
CN110879761A (zh) * 2018-09-05 2020-03-13 华为技术有限公司 硬盘故障处理方法、阵列控制器及硬盘
CN109471765A (zh) * 2018-11-14 2019-03-15 郑州云海信息技术有限公司 一种硬盘质量检测系统及方法
CN111694506A (zh) * 2019-03-15 2020-09-22 杭州海康威视数字技术股份有限公司 磁盘总容量确定方法、装置、磁盘及机器可读存储介质
CN112256194A (zh) * 2020-09-30 2021-01-22 新华三技术有限公司成都分公司 一种存储空间的分配方法和存储服务器
CN113093993A (zh) * 2021-03-25 2021-07-09 深圳大普微电子科技有限公司 一种闪存空间动态分配方法及固态硬盘
CN113724775A (zh) * 2021-08-23 2021-11-30 南京大普信息技术有限公司 元信息管理方法、固态硬盘控制器及固态硬盘

Also Published As

Publication number Publication date
CN114461137A (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
US8843697B2 (en) Operating method of data storage device
US8180953B2 (en) Data accessing method for flash memory, and storage system and controller system thereof
US9384123B2 (en) Memory system
CN108038026B (zh) 一种基于闪存的数据快速恢复方法与系统
KR101734200B1 (ko) 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법
TWI585770B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US20090172255A1 (en) Wear leveling method and controller using the same
US8667210B2 (en) Memory management method, memory controller and memory storage apparatus
WO2014074449A2 (en) Wear leveling in flash memory devices with trim commands
US20160350025A1 (en) Data storage device
KR20100009464A (ko) 메모리 스토리지 장치 및 그 제어 방법
CN106557432B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
KR20150020385A (ko) 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
CN110879793B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI584189B (zh) 記憶體控制器、記憶體儲存裝置與資料寫入方法
CN110309077B (zh) 主机与设备协同工作的闪存转换层构建方法及装置
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
CN113885692B (zh) 存储器效能优化方法、存储器控制电路单元以及存储装置
TW201801089A (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
CN117441164A (zh) 在非易失性存储器的控制器的写入高速缓存中镜像数据
TW201321974A (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
WO2017022082A1 (ja) フラッシュメモリパッケージ、及び、フラッシュメモリパッケージを含むストレージシステム
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN116483253A (zh) 用于基于主机所提供的阈值而延迟写入缓冲器的清空的存储系统和方法
CN112860193B (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