固态硬盘及写操作方法与流程

文档序号:27918602发布日期:2021-12-11 10:54阅读:268来源:国知局
固态硬盘及写操作方法与流程

1.本发明涉及数据存储技术领域,特别涉及一种固态硬盘及写操作方法。


背景技术:

2.固态硬盘(ssd,solid state drives)是用固态电子存储芯片制作的存储硬盘,主要由控制器,存储介质和缓存单元组成。目前最主流的固态硬盘采用闪存存储器(flash memory)作为存储介质来存储数据,而采用控制器内部的sram(static random access memory)或外部的dram(dynamic random access memory)作为缓存。
3.闪存的最小写操作单元是页(page),其大小不同于主机接口命令的数据单元。因此,在执行主机写命令操作时,需要将写数据先暂存在缓存内,在将写数据整合成闪存所需的单元页的大小后再写入闪存中。写数据缓存需要同时支持高速数据写入和读出,其所需数据带宽需求较高。而且,由于闪存的写操作有一定的失败概率,所以为了保证数据不丢失,需将写数据保持在缓存内直至闪存写操作成功。但是闪存的写操作时间非常长,因此需要一个较大容量的缓存。
4.目前对于固态硬盘,当采用sram作为缓存时,虽然sram能提供高数据读写带宽,但由于sram成本很高,因此很难提供很大的容量,所以一般地,在完成大数据量的写操作之前需要释放sram的部分缓存空间,如果写操作失败,则已被释放的缓存空间内的数据就此丢失;当采用dram作为缓存时,虽然能够提供较大的容量,但是由于其读写带宽低,又难以满足要求控制器的高宽带需求,同时提升dram的读写带宽的技术较为复杂,采用该技术,将会极大地增加固态硬盘的制造成本。因此,目前固态硬盘的缓存方案均不能高效、高质量地完成写数据操作。


技术实现要素:

5.鉴于上述问题,本发明的目的在于提供一种固态硬盘以及针对固态硬盘的写操作方法,以解决现有技术中存在的问题。
6.根据本发明的一方面,提供一种固态硬盘,包括:
7.控制器,与主机连接,用于从外部接收写数据,所述控制器包括用于存储所述写数据的第一缓存单元;
8.闪存存储器,与所述控制器连接,接收所述第一缓存单元根据所述控制器的第一指令传送来的所述写数据;以及
9.第二缓存单元,与所述控制器连接,接收并存储来自所述第一缓存单元内的所述写数据作为备份数据,并根据所述控制器的第二指令将所述备份数据传送给所述闪存存储器,其中,所述第二指令是所述闪存存储器在所述第一指令下的写数据失败的情况下得到的。
10.可选地,所述控制器包括:
11.中央处理器,连接所述第一缓存单元,控制所述第一缓存单元内的所述写数据的
存储和释放;
12.接口单元,与所述中央处理器和所述主机连接,接收所述写数据,实现数据传输;
13.闪存控制器,与所述中央处理器和所述闪存存储器连接,控制所述写数据写入所述闪存存储器中;以及
14.缓存控制器,与所述中央处理器和所述第二缓存单元连接,根据所述中央处理器的控制实现所述第二缓存单元内的所述写数据的存储和释放。
15.可选地,所述第一缓存单元为静态随机存取存储器,所述第二缓存单元为动态随机存取存储器。
16.可选地,所述中央处理器用于控制所述第一缓存单元存储所述写数据,并向所述第一缓存单元和所述闪存控制器发送第一指令;以及在所述第一指令下向所述闪存存储器传输所述写数据结束后,释放所述第一缓存单元的缓存空间。
17.可选地,所述闪存存储器在所述第一指令下的写数据失败后,所述中央处理器向所述缓存控制器和所述闪存控制器发送第二指令。
18.根据本发明的另一方面,提供一种用于固态硬盘的写操作方法,所述固态硬盘包括控制器、闪存存储器和第二缓存单元,所述控制器包括第一缓存单元,其中所述控制器执行以下操作:
19.从主机接收写数据存储在所述第一缓存单元;
20.从所述第一缓存单元中读取所述写数据备份至所述第二缓存单元,并将其传送给所述闪存存储器;以及
21.在接收到所述闪存存储器写数据失败的反馈后,重复地执行从所述第二缓存单元中读取所述写数据,并将其传送给所述闪存存储器的步骤,直到接收到所述闪存存储器写数据成功的反馈;
22.释放所述第二缓存单元内所述写数据所占用的缓存空间。
23.可选地,在从所述第一缓存单元中读取所述写数据备份至所述第二缓存单元,并将其传送给所述闪存存储器的步骤之后还包括:
24.在所述写数据的传输完成后,释放所述第一缓存单元内所述写数据所占用的缓存空间。
25.可选地,从所述第一缓存单元中读取所述写数据备份至所述第二缓存单元,并将其传送给所述闪存存储器的步骤包括:
26.将所述第一缓存单元中的所述写数据备份至所述第二缓存单元中;
27.读取所述第一缓存单元内的所述写数据,将其传送给所述闪存存储器。
28.可选地,从所述第一缓存单元中读取所述写数据备份至所述第二缓存单元,并将其传送给所述闪存存储器的步骤包括:
29.从所述第一缓存单元中读取所述写数据,存储至所述第二缓存单元中,并同时将其传送给所述闪存存储器。
30.根据本发明的又一方面,还提供一种用于固态硬盘的写操作方法,所述固态硬盘包括控制器、闪存存储器和第二缓存单元,所述控制器包括第一缓存单元,其中所述控制器执行以下操作:
31.从主机接收写数据;
32.将所述写数据同时存储在所述第一缓存单元和所述第二缓存单元;
33.从所述第一缓存单元中读取所述写数据,并将其传送给所述闪存存储器;
34.在所述写数据的传输完成后,释放所述第一缓存单元内所述写数据所占用的缓存空间;以及
35.在接收到所述闪存存储器写数据失败的反馈后,重复地执行从所述第二缓存单元中读取所述写数据,并将其传送给所述闪存存储器的步骤,直到接收到所述闪存存储器写数据成功的反馈;
36.释放所述第二缓存单元内所述写数据所占用的缓存空间。
37.可选地,所述闪存存储器写数据失败包括:所述闪存存储器中反馈写失败状态信号。
38.可选地,所述闪存存储器写数据失败包括:所述闪存存储器中的所述写数据与所述主机的所述写数据不完全匹配。
39.本技术提供的固态硬盘及其写操作方法,在将主机的写数据存储在第一缓存单元中,而在第一缓存单元向闪存存储器传输写数据之前或同时,将写数据由第一缓存单元备份至具有大容量特性的外部第二缓存单元中,从而在第一缓存单元向闪存存储器的写操作失败时可以继续调用第二缓存单元的备份数据,通过结合第一缓存单元和第二缓存单元二者的优点,提高写操作的效率和质量,节省了第一缓存单元的容量,也降低了第二缓存单元的宽带需求。而在第一缓存单元接收到主机的写数据之后,将其备份至第二缓存单元,并完成写数据存入闪存存储器的操作,使得整个写数据的备份和写入操作都在固态硬盘内部独立完成,简化主机与固态硬盘之间的硬件设计,降低成本。
40.进一步地,在第一缓存单元向闪存存储器传输写数据结束后就立即释放第一缓存单元,而不需要等到写操作写入成功后才释放,以加快第一缓存单元的释放回收再使用,实现使用小容量缓存单元即可保证大带宽写操作流畅性的效果,避免因第一缓存单元内的数据积压需要扩容导致的成本增加。
附图说明
41.通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:
42.图1示出了根据本发明实施例的固态硬盘的简易结构框图;
43.图2示出了根据本发明实施例的固态硬盘的写操作方法的简易流程图;
44.图3a示出了根据本发明第一实施例的固态硬盘的写操作方法的具体流程图;
45.图3b示出了执行图3a的写操作方法的第一实施例的固态硬盘的示意性框图;
46.图4a示出了根据本发明第二实施例的固态硬盘的写操作方法的具体流程图;
47.图4b示出了执行图4a的写操作方法的第二实施例的固态硬盘的示意性框图;
48.图5a示出了根据本发明第三实施例的固态硬盘的写操作方法的具体流程图;
49.图5b示出了执行图5a的写操作方法的第三实施例的固态硬盘的示意性框图。
具体实施方式
50.以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附
图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
51.以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
52.除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
53.下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
54.图1示出了根据本发明实施例的固态硬盘的简易结构框图。
55.固态硬盘是用固态电子存储芯片制作的存储硬盘,本实施例的固态硬盘100包括:控制器110,存储介质和第二缓存单元130。其采用闪存存储器120作为存储介质来存储数据,同时采用控制器110内部的第一缓存单元115和控制器110外部的第二缓存单元130来作为缓存单元。控制器110负责存储介质上的数据管理,作为数据的中转,连通主机200和闪存存储器120;缓存单元用来辅助控制器110进行数据处理。如图1,控制器110与主机200连接,用于从外部接收写数据,控制器110包括第一缓存单元115,存储写数据;闪存存储器120与控制器110连接,接收第一缓存单元115根据控制器110的第一指令传送来的写数据;第二缓存单元130与控制器110连接,接收和存储来自第一缓存单元115的写数据作为备份数据,并根据控制器110的第二指令将备份数据传送给闪存存储器120,该第二指令是闪存存储器120在第一指令下的写操作失败的情况下得到的。
56.进一步地,控制器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的控制,将第一缓存单元115中的写数据备份至第二缓存单元130中,成为备份数据,或者将第二缓存单元130中的数据释放。
57.闪存存储器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的大容量。
58.具体地,控制器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将第一缓存单元115内的写数据存储至第二缓存单元130中,作为备份数据,此时,写数据存储在第一缓存单元115和第二缓存单元130中。中央处理器114在将写数据向闪存存储器120传输结束后,就释放第一缓存单元115的缓存空间;如果检测到闪存存储器120存储写数据成功,就释放第二缓存单元130的缓存空间;而如果闪存存储器120在第一指令下的写操作失败,则中央处理器114向缓存控制器113和闪存控制器112发送第二指令,该第二指令表示需要将第二缓存单元130中的写数据传输至闪存存储器120;第二缓存单元130根据控制器110的第二指令将备份数据传送至闪存存储器120,直至闪存存储器120存储写数据成功才释放第二缓存单元130的缓存空间。
59.进一步地,主机200向固态硬盘100传输写数据时,也可以由控制器110将写数据同时存储在第一缓存单元115和第二缓存单元130内。本发明考虑到由控制器110同时向两个缓存单元缓存写数据需要增加一定的设计复杂度,所以在前述实施例中采用由控制器110先将写数据缓存至第一缓存单元115,再由第一缓存单元115备份至第二缓存单元130的方案。
60.本技术实施例的固态硬盘100由于在第一缓存单元115中存储了写数据,并在第一缓存单元115向闪存存储器120传输写数据之前或同时还将写数据备份至第二缓存单元130中作为备份数据,从而在向闪存存储器120传输写数据时,只从作为第一缓存单元115的sram中读取数据,兼顾了sram的缓存空间和带宽需求。而将写数据备份至第二缓存单元130,使得闪存存储器120的写操作失败时,写数据仍然在dram上有备份,控制器110仍然可以发起新的闪存存储器120的写操作,将dram中的备份数据传送至闪存存储器120,不会丢失写数据,保证了数据传输的安全性和成功率。等到闪存存储器120的写操作成功之后,固态硬盘100的控制器110再删除dram上的数据备份,释放其所占的dram缓存空间。那么,由于主要依靠sram进行数据的读写,大多数情况下dram仅用于写数据备份,即只执行写数据的写入动作,只有在闪存存储器120的写命令操作失败的情况下才会从dram读取备份数据,所以绝大部分时间dram只有数据写入,并不需要数据读出。通过这种混合sram和dram的写数据缓存管理机制,dram的带宽需求能降低一半。从而兼顾了sram和dram的优点,互相补足,
即保证了数据传输的成功率和可靠性,也降低了带宽需求,降低了成本。
61.并且在写数据传输到闪存存储器120后,立即释放写数据占据的sram的缓存空间,而不需要等待写数据写入闪存存储器120操作的成功,这样可以及时释放sram的缓存空间。sram缓存速度快容量小,加快sram缓存释放回收再使用,才能实现使用小容量sram即可保证大带宽写操作的流畅性的特点。若是等到闪存存储器120写操作成功才释放sram中的写数据缓存,会耗费大量的时间(通常会是数百微秒到数毫秒),则会使sram中数据缓存不能快速得到释放而积压,从而占用比较大容量sram,增加主控芯片成本。及时释放sram不仅可以保证数据的及时存取,还可以降低对芯片的需求,降低成本。
62.而且,当由控制器110同时将写数据存储在第一缓存单元115和备份至第二缓存单元130时,为保证数据传输的步调一致性和准确性,需要在固态硬盘100与主机200的接口处增加一定的设计复杂度。而由第一缓存单元115将写数据备份至第二缓存单元130后,再由第一缓存单元115向闪存存储器120传输写数据则不用考虑数据传输的步调一致性,降低设计成本和复杂度。另外,由第一缓存单元115将写数据备份至第二缓存单元130,使得主机200在将写数据传输给控制器110之后,写数据的所有传输操作都可以在固态硬盘100内独立完成,减少与主机200之间的数据牵绊,增加独立性。
63.本发明还提供固态硬盘100的写操作方法,具体结合附图2进行说明。图2示出了根据本发明实施例的固态硬盘的写操作方法的简易流程图。
64.结合图1

图2,本实施例的用于固态硬盘100的写操作方法由控制器110执行,具体包括执行以下操作:
65.在步骤s01中,从主机200接收写数据,存储在控制器110内部的第一缓存单元115中;
66.在步骤s02中,从第一缓存单元115中读取写数据备份至第二缓存单元130,并根据第一指令将其传送给闪存存储器120;
67.在步骤s03中,在写数据的传输完成后,释放第一缓存单元115内写数据占用的缓存空间;
68.在步骤s04中,判断闪存存储器120写数据是否成功,成功则执行步骤s06,否则执行步骤s05;
69.在步骤s05中,在接收到闪存存储器120的写数据失败的反馈后,重复地执行根据第二指令从第二缓存单元130中读取写数据,并将其传送给闪存存储器120的步骤,直到接收到闪存存储器120写数据成功的反馈;其中,闪存存储器120写数据失败包括:闪存存储器120中反馈写失败状态信号。
70.在步骤s06中,释放第二缓存单元130内写数据占用的缓存空间。
71.以下根据图3a

图5b分别介绍不同实施例下的固态硬盘及其写操作方法。
72.图3a示出了根据本发明第一实施例的固态硬盘的写操作方法的具体流程图;图3b示出了执行图3a的写操作方法的第一实施例的固态硬盘的示意性框图。
73.如图3a和图3b,本发明第一实施例的写操作方法实际上是在固态硬盘100的控制器110从主机200获取写数据时,将写数据同时写入sram和dram中。
74.参见图3a,在步骤s101中,控制器把写数据同时写入第一缓存单元和第二缓存单元。该步骤中,控制器110从主机200接收写数据,一边由中央处理器114控制将写数据存入
第一缓存单元115,另一边由中央处理器114控制缓存控制器113将写数据存储在第二缓存单元130中,作为备份数据。此处的同时不是用于表示准确的时间,而是为了表达在中央处理器114执行第一指令之前,dram和sram中均存入了写数据。
75.在步骤s102中,控制器读取第一缓存单元内的写数据,将写数据传送给闪存存储器。该步骤中,中央处理器114向第一缓存单元115和闪存控制器112发送第一指令,将第一缓存单元115内的写数据传送给闪存存储器120。
76.在步骤s103中,写数据传输结束后释放第一缓存单元的缓存空间。该步骤中,写数据存入闪存存储器120中,传输结束,此时释放第一缓存单元115内写数据占据的缓存空间,避免sram的数据压力太大,而存储空间紧缺。
77.在步骤s104中,判断闪存存储器写数据是否成功。该步骤中,例如将闪存存储器120内的写数据与主机200发送的写数据进行对比,若二者数据一致,闪存存储器120的写操作执行成功,执行步骤s105;若闪存存储器120中的写数据与主机200的写数据不完全匹配,认为存入失败,即写操作执行失败,执行步骤s106。或者该步骤中,例如闪存存储器120通过闪存控制器112向控制器110返回数据写入失败状态信号,即,闪存存储器120中反馈写失败状态信号,则认为存入失败,即写操作执行失败,执行步骤s106。
78.在步骤s105中,释放第二缓存单元的缓存空间。在s104中,判断闪存存储器120写数据成功,数据传输完成,则执行该步骤,释放dram的缓存空间。
79.在步骤s106中,控制器读取第二缓存单元内的写数据,将其传送给闪存存储器。判断闪存存储器120写操作失败,此时sram缓存空间已释放,在dram中还有备份数据,那么,重新再向闪存存储器120传送写数据,此时的数据来源于第二缓存单元130中的备份数据。
80.循环执行步骤s104

s106,闪存存储器120中写数据存储成功,再释放dram的缓存单元。
81.如图3b所示,图3a的写操作方法在固态硬盘100在与主机200的接口处设计dma(direct memory access)来搬运数据,减轻中央处理器114的压力。具体地,固态硬盘100在接收到主机200的写数据后,通过位于控制器110内部的hdma(host direct memory access),即第一搬运单元151把数据分别同时写入第一缓存单元(sram)115和第二缓存单元(dram)130,之后由第一缓存单元115将写数据传输至闪存存储器120。第一搬运单元(hdma)151例如位于控制器110内部的接口单元111内,为固态硬盘110内部结构。
82.第一搬运单元(hdma)151通过一个输入通路l10接收主机200的写数据,再经由两个输出通路l11和l12分别将写数据传输至第一缓存单元115和第二缓存单元130。两条输出通路处理数据必须同步,若不同步则会降低接收主机200写数据的速度,例如,两条输出通路同时将第一批数据传输至两个缓存单元之后才会开始下一批数据的传输。由于dram在周期自刷新期间不能写入数据,所以为了达到使两条输出通路处理数据同步,则一般会在第二通路l12上设置缓存来平衡往sram写数据和往dram写数据的步调不一致性,这样做会增加一定的设计复杂度,所以该实施例适用于主机接口处比较容易增加设计复杂度的场景。
83.进一步地,在控制器110内部还包括第二搬运单元152,即fdma(flash direct memory access),通过第二搬运单元152将第一缓存单元115的写数据传输至闪存存储器120,第二搬运单元152例如位于闪存控制器112内部。hdma和fdma均为固态硬盘110内部的硬件设计,本实施例的固态硬盘采用hdma和fdma搬运数据可以减小中央处理器114的数据
处理压力,同时利用内部的硬件结构也没有为固态硬盘100增加多余的硬件设备。
84.图4a示出了根据本发明第二实施例的固态硬盘的写操作方法的具体流程图;图4b示出了执行图4a的写操作方法的第二实施例的固态硬盘的示意性框图。
85.如图4a,本实施例提供的固态硬盘的写操作方法与实施例一大致相同,不同之处在于,本实施例中,将主机200的写数据先存储在第一缓存单元115中;再将第一缓存单元115中的写数据备份至第二缓存单元130中。即dram中的数据来自于sram,二者是分开存储的。本实施例中,在固态硬盘100的控制器110从主机200获取写数据时,先将写数据写入sram,在进行闪存存储器120的写命令操作之前,将写数据从sram读出,备份在dram上。本实施例的步骤s203

s207与实施例一的步骤s102

s106完全相同,不再赘述。
86.本实施例中,步骤s201中,控制器把写数据写入第一缓存单元。控制器110的中央处理器114控制将主机200的写数据仅存入第一缓存单元115。
87.在步骤s202中,控制器把写数据从第一缓存单元备份到第二缓存单元。在执行向闪存存储器120传送写数据之前,中央处理器114控制第一缓存单元115中的写数据备份至第二缓存单元130内,完成写数据的备份。
88.之后执行步骤s203

s207。
89.如图4b,该实施例相较第一实施例更便于设计和实施,因为该实施例中,写数据先存储在第一缓存单元115中,之后再由第一缓存单元115将写数据传输至第二缓存单元130,不用考虑数据传输的一致性,因此不需要在固体硬盘100与主机200的接口处调整第一搬运单元251传输数据的一致性。图4b示出的第二实施例中,第一搬运单元251(hdma)通过输入通路l20接收主机200的写数据,再通过单一的输出通路l21将写数据传输至第一缓存单元115,该第一搬运单元251与图3b实施例的第一搬运单元151相同,只是减少了一条输出通路。另外,本实施例中,还需要第三搬运单元253,即gdma(general direct memory access)将写数据从第一缓存单元115(sram)搬移到第二缓存单元130(dram),gdma为通用dma,通常一般带dram的控制器110都会有这样一个通用dma。那么,主机200的写数据先被控制器110接收,经由第一搬运单元251存储在第一缓存单元115,再由第三搬运单元253将第一缓存单元115内的写数据备份至第二缓存单元130,之后由第二搬运单元252将第一缓存单元115内的写数据传输至闪存存储器120。第二搬运单元252即fdma,与图3b实施例的第二搬运单元152一致。
90.该实施例中,由于写数据的传输完全是串行执行(由主机200传输至第一缓存单元115,再由第一缓存单元传输至第二缓存单元130,之后再由第一缓存单元115传输至闪存存储器120),因此不需要考虑数据传输的步调一致性,不需要修改主机200接口处和闪存存储器120接口处的设计复杂度,只需使用固态硬盘100内自带的多个dma即可达成写数据备份目的,相比第一实施例,本实施例设计简单,成本较低,且写数据的传输相对独立,减轻cpu的传输压力。所以该实施例的固态硬盘及写操作方法适用于:不能修改主控芯片硬件设计而只采用软件即可实现写数据备份的场景。
91.图5a示出了根据本发明第三实施例的固态硬盘的写操作方法的具体流程图;图5b示出了执行图5a的写操作方法的第三实施例的固态硬盘的示意性框图。
92.如图5a,本实施例提供的用于固态硬盘100的写操作方法包括:从主机200接收写数据;将写数据存储在第一缓存单元115中;从第一缓存单元115中读取写数据,存储至第二
缓存单元130中,并同时将其传送给闪存存储器120;在写数据的传输完成后,释放第一缓存单元115内写数据所占用的缓存空间;在接收到闪存存储器120写数据失败的反馈后,重复地执行从第二缓存单元130中读取写数据,并将其传送给闪存存储器120的步骤,直到接收到闪存存储器120写数据成功的反馈;以及释放第二缓存单元130内写数据所占用的缓存空间。其中,闪存存储器120写数据失败包括:闪存存储器120中反馈写失败状态信号,或,闪存存储器120中的写数据与主机200的写数据不完全匹配。
93.本实施例与上述两个实施例的区别在于,上述两个实施例是在第一缓存单元115向闪存存储器120传送写数据之前就在dram中做好写数据的备份,而本实施例是在第一缓存单元115向闪存存储器120传送写数据的同时,将sram中的写数据备份到dram中。即在固态硬盘100的控制器110把sram上的写数据传送给闪存存储器120的同时,将写数据备份在控制器110外部的dram上。
94.本实施例的步骤s301与实施例二的步骤s201完全相同,本实施例的步骤s303

s306与实施例二的步骤s204

s207以及实施例一的步骤s103

s106完全相同,相同之处不再赘述。
95.那么,本实施例中,在步骤s302中,控制器读取第一缓存单元内的写数据,将写数据传送给闪存存储器,并同时将写数据从第一缓存单元备份到第二缓存单元。中央处理器114向第一缓存单元115、缓存控制器113和闪存控制器112发送第一指令,读取第一缓存单元115内的写数据传送给闪存存储器120,同时也将其备份至第二缓存单元130中,之后才释放sram的缓存空间。
96.如图5b,该实施例由于在控制器110接收到主机200的写数据并存储至第一缓存单元115之后,要使写数据由第一缓存单元115(sram)同时传输至闪存存储器120和第二缓存单元130(dram),因此需要调整闪存存储器120接口处的第二搬运单元352(fdma)的数据传输一致性。具体地,通过第一搬运单元351(hdma)将主机200的写数据搬运至第一缓存单元115,然后从sram读取写数据,第二搬运单元352(fdma)通过一条输入通路l32接收第一缓存单元115的写数据,然后通过两条输出通路将写数据搬运至第二缓存单元130和闪存存储器120。如图5b,第一输出通路l33把数据搬运至闪存存储器120,第二输出通路l34同时把数据搬运至dram,该fdma与图3b实施例的fdma相同,只是增加了一条输出通路。fdma的两条输出通路处理数据必须同步,否则可能会降低写闪存速度。由于dram的周期自刷新等操作,一般会在第二输出通路l34上设置缓存来平衡往闪存存储器120写数据和往dram写数据的步调不一致性。这样的设计一定程度上会增加闪存接口处的设计复杂度。因此,本实施例相比于第二实施例,设计复杂度相对提升,所以该实施例适用于:主机接口处不容易增加设计复杂度,而闪存接口处比较容易增加设计复杂度的场景。
97.上述三个实施例均是将写数据存入sram,同时备份至dram,保证数据传输的安全性、可靠性和完整性,有效避免数据的丢失,同时还可以使dram达到带宽需求。并且,上述实施例中,第一实施例和第三实施例的写操作方法的执行速度相近,均比第二实施例稍快;第二实施例的设计复杂度最为简单。本发明的三个实施例的固态硬盘及其写操作方法各有特点,在选择固态硬盘时可以根据实际需求选取。
98.综上,本技术实施例提供的固态硬盘及写操作方法,在将第一缓存单元内的写数据传送给闪存存储器之时或之前,先将写数据备份至第二缓存单元中,从而在第一缓存单
元的写数据传输至闪存存储器的写操作失败时可以继续调用第二缓存单元的备份数据,保证写数据的存储成功率和完整率,提高存储精度;并且,主要采用作为第一缓存单元的sram负责写数据的写入和读出,利用sram的高宽带解决了dram因宽带较低无法快速读写数据的问题;并且采用作为第二缓存单元的dram来存储写数据的备份数据,主要执行写数据的写入操作,仅在闪存存储器缓存失败时才启动读取操作,利用dram的高容量解决了sram因容量小无法长时间存储写数据而导致写数据存入闪存存储器失败的问题。通过同时结合第一缓存单元和第二缓存单元二者的优点,提高写操作的效率和质量,也降低了宽带需求。
99.依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上描述,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1