CN112947869A - 固态硬盘及写操作方法 - Google Patents
固态硬盘及写操作方法 Download PDFInfo
- Publication number
- CN112947869A CN112947869A CN202110445653.0A CN202110445653A CN112947869A CN 112947869 A CN112947869 A CN 112947869A CN 202110445653 A CN202110445653 A CN 202110445653A CN 112947869 A CN112947869 A CN 112947869A
- Authority
- CN
- China
- Prior art keywords
- write data
- flash memory
- cache unit
- controller
- unit
- 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.)
- Pending
Links
Images
Classifications
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/061—Improving I/O performance
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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
- 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
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
- G06F2212/284—Plural cache memories being distributed
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了一种固态硬盘及写操作方法,固态硬盘包括:控制器,与主机连接,用于从外部接收写数据,控制器包括第一缓存单元,存储写数据;闪存存储器,与控制器连接,接收第一缓存单元根据控制器的第一指令传送来的写数据;以及第二缓存单元,与控制器连接,存储写数据作为备份数据,并根据控制器的第二指令将备份数据传送给闪存存储器,第二指令是闪存存储器在第一指令下的写数据失败后得到的。本申请的固态硬盘及写操作方法,在将主机的写数据写入闪存存储器之前先存入第一缓存单元中,并备份至第二缓存单元中,从而在写操作失败时可以继续调用备份数据,通过结合第一缓存单元和第二缓存单元二者的优点,提高写操作的效率和质量,降低了宽带需求。
Description
技术领域
本发明涉及模拟数据存储技术领域,特别涉及一种固态硬盘及写操作方法。
背景技术
固态硬盘(SSD,Solid State Drives)是用固态电子存储芯片制作的存储硬盘,主要由控制器,存储介质和缓存单元组成。目前最主流的固态硬盘采用闪存存储器(FlashMemory)作为存储介质来存储数据,而采用控制器内部的SRAM(Static Random AccessMemory)或外部的DRAM(Dynamic Random Access Memory)作为缓存。
闪存的最小写操作单元是页(page),其大小不同于主机接口命令的数据单元。因此,在执行主机写命令操作时,需要将写数据先暂存在缓存内,在将写数据整合成闪存所需的单元页的大小后再写入闪存中。写数据缓存需要同时支持高速数据写入和读出,其所需数据带宽需求较高。而且,由于闪存的写操作有一定的失败概率,所以为了保证数据不丢失,需将写数据保持在缓存内直至闪存写操作成功。但是闪存的写操作时间非常长,因此需要一个较大容量的缓存。
目前对于固态硬盘,当采用SRAM作为缓存时,虽然SRAM能提供高数据读写带宽,但由于SRAM成本很高,因此很难提供很大的容量,所以一般地,在完成大数据量的写操作之前需要释放SRAM的部分缓存空间,如果写操作失败,则已被释放的缓存空间内的数据就此丢失;当采用DRAM作为缓存时,虽然能够提供较大的容量,但是由于其读写带宽低,又难以满足要求控制器的高宽带需求,同时提升DRAM的读写带宽的技术较为复杂,采用该技术,将会极大地增加固态硬盘的制造成本。因此,目前固态硬盘的缓存方案均不能高效、高质量地完成写数据操作。
发明内容
鉴于上述问题,本发明的目的在于提供一种固态硬盘以及针对固态硬盘的写操作方法,以解决现有技术中存在的问题。
根据本发明的一方面,提供一种固态硬盘,包括:
控制器,与主机连接,用于从外部接收写数据,所述控制器包括第一缓存单元,存储所述写数据;
闪存存储器,与所述控制器连接,接收所述第一缓存单元根据所述控制器的第一指令传送来的所述写数据;以及
第二缓存单元,与所述控制器连接,存储所述写数据作为备份数据,并根据所述控制器的第二指令将所述备份数据传送给所述闪存存储器,其中,所述第二指令是所述闪存存储器在所述第一指令下的写数据失败的情况下得到的。
可选地,所述控制器包括:
中央处理器,连接所述第一缓存单元,控制所述第一缓存单元内的所述写数据的存储和释放;
接口单元,与所述中央处理器和所述主机连接,接收所述写数据,实现数据传输;
闪存控制器,与所述中央处理器和所述闪存存储器连接,控制所述写数据写入所述闪存存储器中;以及
缓存控制器,与所述中央处理器和所述第二缓存单元连接,根据所述中央处理器的控制实现所述第二缓存单元内的所述写数据的存储和释放。
可选地,所述第一缓存单元为静态随机存取存储器,所述第二缓存单元为动态随机存取存储器。
可选地,所述中央处理器用于控制所述第一缓存单元存储所述写数据,并向所述第一缓存单元和所述闪存控制器发送第一指令;以及在将所述写数据写入所述闪存存储器后,释放所述第一缓存单元的缓存空间。
可选地,所述闪存存储器在所述第一指令下的写数据失败后,所述中央处理器向所述缓存控制器和所述闪存控制器发送第二指令。
根据本发明的另一方面,提供一种用于固态硬盘的写操作方法,所述固态硬盘包括控制器、闪存存储器和第二缓存单元,所述控制器包括第一缓存单元,其中所述控制器执行以下操作:
从主机接收写数据;
将所述写数据分别存储在所述第一缓存单元和所述第二缓存单元;
从所述第一缓存单元中读取所述写数据,并将其传送给所述闪存存储器;
在所述写数据的传输完成后,释放所述第一缓存单元内所述写数据所占用的缓存空间;以及
在接收到所述闪存存储器写数据失败的反馈后,重复地执行从所述第二缓存单元中读取所述写数据,并将其传送给所述闪存存储器的步骤,直到接收到所述闪存存储器写数据成功的反馈;
释放所述第二缓存单元内所述写数据所占用的缓存空间。
可选地,将所述写数据分别存储在所述第一缓存单元和所述第二缓存单元的步骤包括:
将所述写数据同时存储在所述第一缓存单元和第二缓存单元中。
可选地,将所述写数据分别存储在所述第一缓存单元和所述第二缓存单元的步骤包括:
将所述写数据存储在所述第一缓存单元中;
将所述第一缓存单元中的所述写数据备份至所述第二缓存单元中。
可选地,将所述写数据分别存储在所述第一缓存单元和所述第二缓存单元,从所述第一缓存单元中读取所述写数据,并将其传送给所述闪存存储器的步骤包括:
将所述写数据存储在所述第一缓存单元中;
从所述第一缓存单元中读取所述写数据,存储至所述第二缓存单元中,并同时将其传送给所述闪存存储器。
可选地,所述闪存存储器写数据失败包括:所述闪存存储器中反馈写失败状态信号。
可选地,所述闪存存储器写数据失败包括:所述闪存存储器中的所述写数据与所述主机的所述写数据不完全匹配。
本申请提供的固态硬盘及其写操作方法,在将主机的写数据写入闪存存储器之前先存入第一缓存单元中,并备份至第二缓存单元中,从而在第一缓存单元的写操作失败时可以继续调用第二缓存单元的备份数据,通过结合第一缓存单元和第二缓存单元二者的优点,提高写操作的效率和质量,也降低了宽带需求。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示出了根据本发明实施例的固态硬盘的示意性结构框图;
图2示出了根据本发明第一实施例的写操作方法的流程图;
图3示出了根据本发明第二实施例的写操作方法的流程图;
图4示出了根据本发明第三实施例的写操作方法的流程图。
具体实施方式
以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1示出了根据本发明实施例的固态硬盘的示意性结构框图。
固态硬盘是用固态电子存储芯片制作的存储硬盘,本实施例的固态硬盘100包括:控制器110,存储介质和第二缓存单元130。其采用闪存存储器120作为存储介质来存储数据,同时采用控制器110内部的第一缓存单元115和控制器110外部的第二缓存单元130来作为缓存单元。控制器110负责存储介质上的数据管理,作为数据的中转,连通主机200和闪存存储器120;缓存单元用来辅助控制器110进行数据处理。如图1,控制器110与主机200连接,用于从外部接收写数据,控制器110包括第一缓存单元115,存储写数据;闪存存储器120与控制器110连接,接收第一缓存单元115根据控制器110的第一指令传送来的写数据;第二缓存单元130与控制器110连接,存储写数据作为备份数据,并根据控制器110的第二指令将备份数据传送给闪存存储器120,该第二指令是闪存存储器120在第一指令下的写操作失败的情况下得到的。
进一步地,控制器110包括:接口单元111,闪存控制器112,缓存控制器113,中央处理器114和第一缓存单元115。接口单元111连接外部主机200和中央处理器114,实现数据传输,例如是将主机200的写数据传输至控制器110,常见的接口单元111有SATA,PCIe等;中央处理器114例如是CPU,用于控制固态硬盘100内的各个部件的运作,例如与第一缓存单元115连接,控制第一缓存单元115内的写数据的存储和释放,可以将写数据存储在第一缓存单元115中;闪存控制器112与中央处理器114和闪存存储器120连接,根据中央处理器114的控制,将写数据写入闪存存储器120中;缓存控制器113连接中央处理器114和第二缓存单元130,根据中央处理器114的控制,将写数据备份至第二缓存单元130中,成为备份数据,或者将第二缓存单元130中的数据释放。
闪存存储器120的最小写操作单元是页(page),而主机200接口命令的数据单元是扇区(sector),二者不同,因此在执行主机200的写命令操作时,并不能直接把写数据写到闪存存储器120中,而是先暂存在写数据缓存(write data buffer)内,写数据缓存即缓存单元。缓存单元内的写数据被整合成闪存存储器120所需的单元页的大小,然后再被写入闪存存储器120中。在固态硬盘100执行写命令处理时,缓存单元需要同时支持高速数据写入和读出,比如,对于PCIe Gen3x4主机接口的固态硬盘,要支持3GB/s的数据写性能,缓存单元需要6GB/s的数据读写带宽。且为保证数据不丢失,写数据会保持在缓存单元内直至闪存写操作成功。但是闪存存储器120的写操作时间非常长,为了保证固态硬盘100的持续写性能,缓存单元需要提供一个比较大的容量。本实施例中,同时采用控制器110内部的第一缓存单元115和控制器110外部的第二缓存单元130来作为缓存单元,并且,将高速DRAM(Dynamic Random Access Memory,动态随机存取存储器)作为第二缓存单元130,将SRAM(Static Random Access Memory,静态随机存取存储器)作为第一缓存单元115,把写数据同时缓存在SRAM和DRAM上,从而可以同时利用SRAM的高宽带和DRAM的大容量。
具体地,控制器110与主机200连接,通过接口单元111接收主机200的写数据,实现数据传输,执行主机200的写命令操作,存储写数据;此时,中央处理器114控制第一缓存单元115存储写数据,并向第一缓存单元115和闪存控制器112发送第一指令,该第一指令表示需要将第一缓存单元115中的写数据传输至闪存存储器120;闪存存储器120与控制器110连接,根据中央处理器114的第一指令读取第一缓存单元115中的写数据并存储在闪存存储器120中;第二缓存单元130与控制器110内的缓存控制器113连接,缓存控制器113与中央处理器114连接,根据中央处理器114的控制实现第二缓存单元130内的写数据的存储和释放;中央处理器114在将第一缓存单元115内的写数据向闪存存储器120传送的同时或在将写数据向闪存存储器120传输之前,控制缓存控制器113将写数据存储至第二缓存单元130中,作为备份数据,此时,写数据同时存储在第一缓存单元115和第二缓存单元130中。中央处理器114在将写数据写入闪存存储器120后,就释放第一缓存单元115的缓存空间;如果检测到闪存存储器120存储写数据成功,就释放第二缓存单元130的缓存空间;而如果闪存存储器120在第一指令下的写操作失败,则中央处理器114向缓存控制器113和闪存控制器112发送第二指令,该第二指令表示需要将第二缓存单元130中的写数据传输至闪存存储器120;第二缓存单元130根据控制器110的第二指令将备份数据传送至闪存存储器120,直至闪存存储器120存储写数据成功才释放第二缓存单元130的缓存空间。
本申请实施例的固态硬盘100由于在将写数据向闪存存储器120传送前,在第一缓存单元114和第二缓存单元130中均存储了写数据,将第二缓存单元130中的写数据作为备份数据,而只从作为第一缓存单元115的SRAM中读取数据,并且在数据传输到闪存存储器120后,立即释放写数据占据的SRAM的缓存空间,兼顾了SRAM的缓存空间和带宽需求。等到闪存存储器120的写操作成功之后,固态硬盘100的控制器110再删除DRAM上的数据备份,释放其所占的DRAM缓存空间。而如果闪存存储器120的写操作失败,写数据仍然在DRAM上有备份,固态硬盘100的控制器110仍然可以发起新的闪存存储器120的写操作,将DRAM中的备份数据传送至闪存存储器120,不会丢失写数据,保证了数据传输的安全性和成功率。而且,由于主要依靠SRAM进行数据的读写,大多数情况下DRAM仅用于写数据备份,即只执行写数据的写入动作,只有在闪存存储器120的写命令操作失败的情况下才会从DRAM读取备份数据,所以绝大部分时间DRAM只有数据写入,并不需要数据读出。通过这种混合SRAM和DRAM的写数据缓存管理机制,DRAM的带宽需求能降低一半。从而兼顾了SRAM和DRAM的优点,互相补足,即保证了数据传输的成功率和可靠性,也降低了带宽需求,降低了成本。
本发明还提供固态硬盘100的写操作方法,具体结合附图2-4进行说明。
图2示出了根据本发明第一实施例的写操作方法的流程图。
结合图1-图2,本实施例的用于固态硬盘100的写操作方法由控制器110执行,具体包括执行以下操作:从主机200接收写数据,将写数据分别存储在控制器110内部的第一缓存单元115和外部的第二缓存单元130中,第二缓存单元130中的写数据为备份数据;从第一缓存单元115中读取写数据,并根据第一指令将写数据传送给闪存存储器120;在写数据的传输完成后释放第一缓存单元115内写数据占用的缓存空间;以及在接收到闪存存储器120的写数据失败的反馈后,重复地执行根据第二指令从第二缓存单元130中读取写数据,并将其传送给闪存存储器120的步骤,直到接收到闪存存储器120写数据成功的反馈;其中,闪存存储器120写数据失败包括:闪存存储器120中反馈写失败状态信号。最后,释放第二缓存单元130内写数据占用的缓存空间。
所以本发明第一实施例的写操作方法实际上是在固态硬盘100的控制器110从主机200获取写数据时,将写数据同时写入SRAM和DRAM中。
参见图2,在步骤S101中,控制器把写数据同时写入第一缓存单元和第二缓存单元。该步骤中,控制器110从主机200接收写数据,一边由中央处理器114控制将写数据存入第一缓存单元114,另一边由中央处理器114控制缓存控制器113将写数据存储在第二缓存单元130中,作为备份数据。此处的同时不是用于表示准确的时间,而是为了表达在中央处理器114执行第一指令之前,DRAM和SRAM中均存入了写数据。
在步骤S102中,控制器读取第一缓存单元内的写数据,将写数据传送给闪存存储器。该步骤中,中央处理器114向第一缓存单元115和闪存控制器112发送第一指令,将第一缓存单元115内的写数据传送给闪存存储器120。
在步骤S103中,写数据传输结束后释放第一缓存单元的缓存空间。该步骤中,写数据存入闪存存储器120中,传输结束,此时释放第一缓存单元115内写数据占据的缓存空间,避免SRAM的数据压力太大,而存储空间紧缺。
在步骤S104中,判断闪存存储器写数据是否成功。该步骤中,例如将闪存存储器120内的写数据与主机200发送的写数据进行对比,若二者数据一致,闪存存储器120的写操作执行成功,执行步骤S105;若闪存存储器120中的写数据与主机200的写数据不完全匹配,认为存入失败,即写操作执行失败,执行步骤S106。或者该步骤中,例如闪存存储器120通过闪存控制器112向控制器110返回数据写入失败状态信号,即,闪存存储器120中反馈写失败状态信号,则认为存入失败,即写操作执行失败,执行步骤S106。
在步骤S105中,释放第二缓存单元的缓存空间。在S104中,判断闪存存储器120写数据成功,数据传输完成,则执行该步骤,释放DRAM的缓存空间。
在步骤S106中,控制器读取第二缓存单元内的写数据,将其传送给闪存存储器。判断闪存存储器120写操作失败,此时SRAM缓存空间已释放,在DRAM中还有备份数据,那么,重新再向闪存存储器120传送写数据,此时的数据来源于第二缓存单元130中的备份数据。
循环执行步骤S104-S106,闪存存储器120中写数据存储成功,再释放DRAM的缓存单元。
图3示出了根据本发明第二实施例的写操作方法的流程图。
本实施例提供的固态硬盘的写操作方法与实施例一大致相同,不同之处在于,本实施例中,将主机200的写数据分别存储在控制器110内部的第一缓存单元114和外部的第二缓存单元130中这一步骤具体包括:将主机200的写数据存储在第一缓存单元115中;将第一缓存单元115中的写数据备份至第二缓存单元130中。即DRAM中的数据来自于SRAM,二者是分开存储的。本实施例中,在固态硬盘100的控制器110从主机200获取写数据时,先将写数据写入SRAM,在进行闪存存储器120的写命令操作之前,将写数据从SRAM读出,备份在DRAM上。
如图3,本实施例的步骤S203-S207与实施例一的步骤S102-S106完全相同,不再赘述。
本实施例中,步骤S201中,控制器把写数据写入第一缓存单元。控制器110的中央处理器114控制将主机200的写数据仅存入第一缓存单元115。
在步骤S202中,控制器把写数据从第一缓存单元备份到第二缓存单元。在执行向闪存存储器120传送写数据之前,中央处理器114控制第一缓存单元115中的写数据备份至第二缓存单元130内,完成写数据的备份。
之后执行步骤S203-S207。
图4示出了根据本发明第三实施例的写操作方法的流程图。
本实施例提供的用于固态硬盘100的写操作方法包括:从主机200接收写数据;将写数据存储在第一缓存单元115中;从第一缓存单元115中读取写数据,存储至第二缓存单元130中,并同时将其传送给闪存存储器120;在写数据的传输完成后,释放第一缓存单元115内写数据所占用的缓存空间;在接收到闪存存储器120写数据失败的反馈后,重复地执行从第二缓存单元130中读取写数据,并将其传送给闪存存储器120的步骤,直到接收到闪存存储器120写数据成功的反馈;以及释放第二缓存单元130内写数据所占用的缓存空间。其中,闪存存储器120写数据失败包括:闪存存储器120中反馈写失败状态信号,或,闪存存储器120中的写数据与主机200的写数据不完全匹配。
本实施例与上述两个实施例的区别在于,上述两个实施例是在第一缓存单元115向闪存存储器120传送写数据之前就在DRAM中做好写数据的备份,而本实施例是在第一缓存单元115向闪存存储器120传送写数据的同时,将SRAM中的写数据备份到DRAM中。即在固态硬盘100的控制器110把SRAM上的写数据传送给闪存存储器120的同时,将写数据备份在控制器110外部的DRAM上。
参见图4,本实施例的步骤S301与实施例二的步骤S201完全相同,本实施例的步骤S303-S306与实施例二的步骤S204-S207以及实施例一的步骤S103-S106完全相同,相同之处不再赘述。
那么,本实施例中,在步骤S302中,控制器读取第一缓存单元内的写数据,将写数据传送给闪存存储器,并同时将写数据从第一缓存单元备份到第二缓存单元。中央处理器114向第一缓存单元115、缓存控制器113和闪存控制器112发送第一指令,读取第一缓存单元115内的写数据传送给闪存存储器120,同时也将其备份至第二缓存单元130中,之后才释放SRAM的缓存空间。
上述三个实施例均是将写数据存入SRAM,同时备份至DRAM,保证数据传输的安全性、可靠性和完整性,有效避免数据的丢失,同时还可以使DRAM达到带宽需求。并且,上述实施例中,第一实施例和第三实施例的写操作方法的执行速度相近,均比第二实施例稍快。
综上,本申请实施例提供的固态硬盘及写操作方法,在将第一缓存单元内的写数据传送给闪存存储器之时或之前,先将写数据备份至第二缓存单元中,从而在第一缓存单元的写数据传输至闪存存储器的写操作失败时可以继续调用第二缓存单元的备份数据,保证写数据的存储成功率和完整率,提高存储精度;并且,主要采用作为第一缓存单元的SRAM负责写数据的写入和读出,利用SRAM的高宽带解决了DRAM因宽带较低无法快速读写数据的问题;并且采用作为第二缓存单元的DRAM来存储写数据的备份数据,主要执行写数据的写入操作,仅在闪存存储器缓存失败时才启动读取操作,利用DRAM的高容量解决了SRAM因容量小无法长时间存储写数据而导致写数据存入闪存存储器失败的问题。通过同时结合第一缓存单元和第二缓存单元二者的优点,提高写操作的效率和质量,也降低了宽带需求。
依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (11)
1.一种固态硬盘,包括:
控制器,与主机连接,用于从外部接收写数据,所述控制器包括第一缓存单元,存储所述写数据;
闪存存储器,与所述控制器连接,接收所述第一缓存单元根据所述控制器的第一指令传送来的所述写数据;以及
第二缓存单元,与所述控制器连接,存储所述写数据作为备份数据,并根据所述控制器的第二指令将所述备份数据传送给所述闪存存储器,其中,所述第二指令是所述闪存存储器在所述第一指令下的写数据失败的情况下得到的。
2.根据权利要求1所述的固态硬盘,其中,所述控制器包括:
中央处理器,连接所述第一缓存单元,控制所述第一缓存单元内的所述写数据的存储和释放;
接口单元,与所述中央处理器和所述主机连接,接收所述写数据,实现数据传输;
闪存控制器,与所述中央处理器和所述闪存存储器连接,控制所述写数据写入所述闪存存储器中;以及
缓存控制器,与所述中央处理器和所述第二缓存单元连接,根据所述中央处理器的控制实现所述第二缓存单元内的所述写数据的存储和释放。
3.根据权利要求1所述的固态硬盘,其中,所述第一缓存单元为静态随机存取存储器,所述第二缓存单元为动态随机存取存储器。
4.根据权利要求2所述的固态硬盘,其中,所述中央处理器用于控制所述第一缓存单元存储所述写数据,并向所述第一缓存单元和所述闪存控制器发送第一指令;以及在将所述写数据写入所述闪存存储器后,释放所述第一缓存单元的缓存空间。
5.根据权利要求4所述的固态硬盘,其中,所述闪存存储器在所述第一指令下的写数据失败后,所述中央处理器向所述缓存控制器和所述闪存控制器发送第二指令。
6.一种用于固态硬盘的写操作方法,所述固态硬盘包括控制器、闪存存储器和第二缓存单元,所述控制器包括第一缓存单元,其中所述控制器执行以下操作:
从主机接收写数据;
将所述写数据分别存储在所述第一缓存单元和所述第二缓存单元;
从所述第一缓存单元中读取所述写数据,并将其传送给所述闪存存储器;
在所述写数据的传输完成后,释放所述第一缓存单元内所述写数据所占用的缓存空间;以及
在接收到所述闪存存储器写数据失败的反馈后,重复地执行从所述第二缓存单元中读取所述写数据,并将其传送给所述闪存存储器的步骤,直到接收到所述闪存存储器写数据成功的反馈;
释放所述第二缓存单元内所述写数据所占用的缓存空间。
7.根据权利要求6所述的写操作方法,将所述写数据分别存储在所述第一缓存单元和所述第二缓存单元的步骤包括:
将所述写数据同时存储在所述第一缓存单元和第二缓存单元中。
8.根据权利要求6所述的写操作方法,其中,将所述写数据分别存储在所述第一缓存单元和所述第二缓存单元的步骤包括:
将所述写数据存储在所述第一缓存单元中;
将所述第一缓存单元中的所述写数据备份至所述第二缓存单元中。
9.根据权利要求6所述的写操作方法,其中,将所述写数据分别存储在所述第一缓存单元和所述第二缓存单元,从所述第一缓存单元中读取所述写数据,并将其传送给所述闪存存储器的步骤包括:
将所述写数据存储在所述第一缓存单元中;
从所述第一缓存单元中读取所述写数据,存储至所述第二缓存单元中,并同时将其传送给所述闪存存储器。
10.根据权利要求6所述的写操作方法,其中,所述闪存存储器写数据失败包括:所述闪存存储器中反馈写失败状态信号。
11.根据权利要求6所述的写操作方法,其中,所述闪存存储器写数据失败包括:所述闪存存储器中的所述写数据与所述主机的所述写数据不完全匹配。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110445653.0A CN112947869A (zh) | 2021-04-25 | 2021-04-25 | 固态硬盘及写操作方法 |
CN202111225733.1A CN113778344A (zh) | 2021-04-25 | 2021-10-21 | 固态硬盘及写操作方法 |
US17/728,301 US12045498B2 (en) | 2021-04-25 | 2022-04-25 | Solid state drive and write operation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110445653.0A CN112947869A (zh) | 2021-04-25 | 2021-04-25 | 固态硬盘及写操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112947869A true CN112947869A (zh) | 2021-06-11 |
Family
ID=76233399
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110445653.0A Pending CN112947869A (zh) | 2021-04-25 | 2021-04-25 | 固态硬盘及写操作方法 |
CN202111225733.1A Pending CN113778344A (zh) | 2021-04-25 | 2021-10-21 | 固态硬盘及写操作方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111225733.1A Pending CN113778344A (zh) | 2021-04-25 | 2021-10-21 | 固态硬盘及写操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12045498B2 (zh) |
CN (2) | CN112947869A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590038A (zh) * | 2021-07-27 | 2021-11-02 | 联芸科技(杭州)有限公司 | 固态硬盘的管理方法和固态硬盘 |
WO2024130909A1 (zh) * | 2022-12-22 | 2024-06-27 | 深圳大普微电子科技有限公司 | 存储装置、存储系统及存储装置的写入方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230280940A1 (en) * | 2022-03-01 | 2023-09-07 | Micron Technology, Inc. | Memory controller for managing raid information |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974506A (en) * | 1996-06-28 | 1999-10-26 | Digital Equipment Corporation | Enabling mirror, nonmirror and partial mirror cache modes in a dual cache system |
US20050166086A1 (en) * | 2002-09-20 | 2005-07-28 | Fujitsu Limited | Storage control apparatus, storage control method, and computer product |
US8489820B1 (en) * | 2008-03-18 | 2013-07-16 | Netapp, Inc | Speculative copying of data from main buffer cache to solid-state secondary cache of a storage server |
CN101552032B (zh) * | 2008-12-12 | 2012-01-18 | 深圳市晶凯电子技术有限公司 | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 |
US9047178B2 (en) * | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US9304901B2 (en) * | 2013-03-14 | 2016-04-05 | Datadirect Networks Inc. | System and method for handling I/O write requests |
US20170123991A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer in a storage device |
US9971645B2 (en) * | 2016-08-23 | 2018-05-15 | Seagate Technology Llc | Auto-recovery of media cache master table data |
US10198205B1 (en) * | 2016-12-19 | 2019-02-05 | Pure Storage, Inc. | Dynamically adjusting a number of storage devices utilized to simultaneously service write operations |
KR102398186B1 (ko) * | 2017-07-03 | 2022-05-17 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 사용자 장치의 동작 방법 |
CN110287062A (zh) * | 2019-06-28 | 2019-09-27 | 深圳忆联信息系统有限公司 | 一种硬件缓存管理数据备份和快速恢复的方法及其系统 |
CN110413234B (zh) * | 2019-07-26 | 2024-04-26 | 杭州电子科技大学 | 一种固态硬盘 |
CN110413233A (zh) * | 2019-07-26 | 2019-11-05 | 杭州电子科技大学 | 一种固态硬盘控制器 |
-
2021
- 2021-04-25 CN CN202110445653.0A patent/CN112947869A/zh active Pending
- 2021-10-21 CN CN202111225733.1A patent/CN113778344A/zh active Pending
-
2022
- 2022-04-25 US US17/728,301 patent/US12045498B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590038A (zh) * | 2021-07-27 | 2021-11-02 | 联芸科技(杭州)有限公司 | 固态硬盘的管理方法和固态硬盘 |
WO2024130909A1 (zh) * | 2022-12-22 | 2024-06-27 | 深圳大普微电子科技有限公司 | 存储装置、存储系统及存储装置的写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113778344A (zh) | 2021-12-10 |
US20220342591A1 (en) | 2022-10-27 |
US12045498B2 (en) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112947869A (zh) | 固态硬盘及写操作方法 | |
US7809979B2 (en) | Storage control apparatus and method | |
US7444478B2 (en) | Priority scheme for transmitting blocks of data | |
JP4930555B2 (ja) | 制御装置、制御方法およびストレージシステム | |
US11954369B2 (en) | Command draining using host memory buffer | |
WO2021254368A1 (zh) | 一种内存条、计算机和服务器 | |
US20200401346A1 (en) | Storage system | |
US20110010582A1 (en) | Storage system, evacuation processing device and method of controlling evacuation processing device | |
US11861217B2 (en) | DRAM-less SSD with command draining | |
CN106469119B (zh) | 一种基于nvdimm的数据写缓存方法及其装置 | |
CN111984365A (zh) | 一种虚拟机虚拟磁盘双活实现方法及系统 | |
US20210318739A1 (en) | Systems and methods for managing reduced power failure energy requirements on a solid state drive | |
CN111459527A (zh) | 存储器系统及其操作方法 | |
JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
US20100325373A1 (en) | Duplexing Apparatus and Duplexing Control Method | |
US11853571B2 (en) | Storage devices hiding parity swapping behavior | |
CN103049218B (zh) | 数据存储方法和控制器 | |
JP2024525777A (ja) | ホストメモリバッファキャッシュ管理 | |
US20190179749A1 (en) | Memory system, operating method thereof and nonvolatile memory device | |
US12045506B2 (en) | Combining operations during reset | |
US12038853B2 (en) | Reducing link up time in PCIe systems | |
US10628322B2 (en) | Memory system and operating method thereof | |
CN113094294B (zh) | Ssd异常掉电处理方法、装置、计算机设备及存储介质 | |
KR20240019364A (ko) | 저전력 모드를 위한 nvm에서의 선택적 hmb 백업 | |
CN117642716A (zh) | 从hmb丢失的恢复 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210611 |
|
WD01 | Invention patent application deemed withdrawn after publication |