TWI564716B - 固態儲存裝置及其相關資料寫入方法 - Google Patents
固態儲存裝置及其相關資料寫入方法 Download PDFInfo
- Publication number
- TWI564716B TWI564716B TW104133189A TW104133189A TWI564716B TW I564716 B TWI564716 B TW I564716B TW 104133189 A TW104133189 A TW 104133189A TW 104133189 A TW104133189 A TW 104133189A TW I564716 B TWI564716 B TW I564716B
- Authority
- TW
- Taiwan
- Prior art keywords
- programming
- page
- data
- layer cell
- layer
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種固態儲存裝置及其控制方法,且特別是有關於一種由三層晶胞(triple-level cell)快閃記憶體組成之固態儲存裝置及其相關資料寫入方法。
眾所周知,固態儲存裝置(Solid State Device,SSD)使用反及閘快閃記憶體(NAND flash memory)為主要儲存元件,而快閃記憶體為一種非揮發性(non-volatile)記憶體。也就是說,當資料寫入快閃記憶體後,即使系統電源關閉,資料仍保存在快閃記憶體中。
基本上,快閃記憶體的每個晶胞(cell)中皆包含浮動閘電晶體(floating gate transistor)。在進行編程動作(program action)時,係將熱載子(hot carrier)注入(inject)浮動閘電晶體的浮動閘極,而根據注入熱載子的數量即可改變浮動閘電晶體的臨限電壓(threshold voltage),並進而決定該晶胞的儲存狀態。並且,於抹除
動作(erase action)時,將熱載子退出(eject)浮動閘電晶體的浮動閘極。
快閃記憶體依據不同的設計,可分為單層晶胞(single-level cell)與多層晶胞(multi-level cell)的快閃記憶體。而多層晶胞更包括二層晶胞(double-level cell)、三層晶胞(triple-level cell),或者更多層晶胞的快閃記憶體。
請參照第1圖,其所繪示為各種快閃記憶體中的儲存狀態與臨限電壓的關係示意圖。在單層晶胞快閃記憶體中,每個晶胞可儲存一位元的資料(1bit/cell)。因此,根據熱載子的注入量,晶胞中的浮動閘電晶體可產生二種臨限電壓分佈,用以代表二種相異的儲存狀態。舉例來說,具備低臨限電壓之晶胞,其可視為儲存狀態“0”;具備高臨限電壓之晶胞,其可視為儲存狀態“1”。當然,此處的儲存狀態“0”與儲存狀態“1”僅是表示相異的二個儲存狀態,當然也可以用第一儲存狀態與第二儲存狀態來表示。舉例來說,臨限電壓在0V附近的晶胞,其可視為第一儲存狀態;臨限電壓在10V附近的晶胞,其可視為第二儲存狀態。
同理,二層晶胞快閃記憶體中,每個晶胞可儲存二位元的資料(2bits/cell)。因此,根據熱載子的注入量,晶胞中的浮動閘電晶體可產生四種臨限電壓分佈,用以代表四種相異的儲存狀態。例如,臨限電壓由低至高依序為儲存狀態“00”、儲存狀態“01”、儲存狀態“10”與儲存狀態“11”。
三層晶胞快閃記憶體中,每個晶胞可儲存三位元的
資料(3bits/cell)。因此,根據熱載子的注入量,晶胞中的浮動閘電晶體可產生八種臨限電壓分佈,用以代表八種相異的儲存狀態。例如,臨限電壓由低至高依序為儲存狀態“000”、儲存狀態“001”、儲存狀態“010”、儲存狀態“011”、儲存狀態“100”、儲存狀態“101”、儲存狀態“110”與儲存狀態“111”。
由以上說明可知,在編程快閃記憶體時,控制晶胞的熱載子注入量,即可改變晶胞的臨限電壓並更改其儲存狀態。然而,除了單層晶胞快閃記憶體在編程動作時,僅需進行一次編程程序(program procedure)即可以達到想要的儲存狀態,其他多層晶胞快閃記憶於編程動作時,需要進行多次編程程序才可以到達想要的儲存狀態。
請參照第2A圖,其所繪示為二層晶胞快閃記憶體的編程示意圖。第2A圖係將二層晶胞快閃記憶體編程為“10”儲存狀態所進行的二次編程程序。於第一次編程程序時,提供一第一編程電壓(program voltage),並將晶胞改變為“11”儲存狀態。接著,於第二次編程程序時,再提供一第二編程電壓用以改變為“10”儲存狀態。
同理,如欲將二層晶胞快閃記憶體編程為“01”儲存狀態。則於第一次編程程序時,將晶胞改變為“00”儲存狀態。接著,於第二次編程程序時,再將晶胞改變為“01”儲存狀態。
眾所周知,快閃記憶體寫入資料時係以頁(page)為單
位寫入快閃記憶體。頁的大小可由快閃記憶體製造商來定義,舉例來說每一頁可為2K bytes、4K bytes或者8K bytes。以4K bytes大小的頁為例,寫入資料包括:使用者資料、編碼資料與其他相關資料,總共為4224bytes(亦即,4224×8bits)。
換言之,如果利用單層晶胞快閃記憶體來儲存一個4K bytes頁的資料時,則需要利用(4224×8)數目的單層晶胞來儲存。再者,由於二層晶胞快閃記憶體的資料密度較高,所以(4224×8)數目的二層晶胞快閃記憶體可以儲存二個頁的資料(2×4224bytes)。同理,(4224×8)數目的三層晶胞快閃記憶體可以儲存三個頁的資料(3×4224bytes)。
請參照第2B圖與第2C圖,其所繪示為利用(4224×8)數目的二層晶胞快閃記憶體來儲存二個頁(第M頁與第N頁)的資料之示意圖。以第一個位元組(Byte-1)為例,假設於編程動作時,係將寫入資料(write data)0×65h(01100101b)儲存於第M頁的第一個位元組,將寫入資料0×DBh(11011011b)儲存於第N頁的第一個位元組。
如第2B圖所示,於第一次編程程序時,係將第M頁的第一個位元組的寫入資料(01100101b)編程至二層晶胞快閃記憶體的8個晶胞中。完成後,8個晶胞的儲存狀態依序為“00”、“11”、“11”、“00”、“00”、“11”、“00”、“11”。換言之,於第一次編程程序後,第M頁的第一個位元組的資料為(01100101b),而第N頁的第一個位元組的資料也為(01100101b)。
如第2C圖所示,於第二次編程程序時,再將第N頁的第一個位元組的寫入資料(11011011b)編程至二層晶胞快閃記憶體的8個晶胞中。完成後,8個晶胞的儲存狀態更改為“01”、“11”、“10”、“01”、“01”、“10、“01”、“11”。換言之,於第二次編程程序後,第M頁的第一個位元組的資料為(01100101b),而第N頁的第一個位元組的資料才會成為(11011011b)。
由上述的說明可知,於編程動作的第一次編程程序後,(4224×8)個晶胞的二層晶胞快閃記憶體僅能夠儲存第M頁的資料。而必須再次進行第二次編程程序之後,(4224×8)個晶胞的二層晶胞快閃記憶體才夠同時儲存第M頁以及第N頁的資料。
根據多層晶胞快閃記憶體之規格書的定義,二層晶胞快閃記憶體係進一步的被區分為上頁(upper page)以及下頁(lower page)。而上述第2B圖所示的第M頁,即為上頁,上述第2C圖所示的第N頁,即為下頁。換言之,而在編程動作(program action)的過程,第一次編程程序即為上頁編程程序,第二次編程程序即為下頁編程程序。而上頁編程程序以及下頁編程程序皆完成後,才能夠讀取二層晶胞快閃記憶體中的資料。
同理,三層晶胞快閃記憶體係進一步的被區分為上頁(upper page)、中頁(middle page)以及下頁(lower page)。而在編程的過程,需要進行三次的編程程序來分別編程上頁、中頁以及下頁。
然而,根據規格書的規範,於編程三層晶胞快閃記憶體時並無法連續三次都針對相同的三層晶胞進行編程程序。因此,可能會使得三層晶胞快閃記憶在編程動作的過程中造成資料遺失的風險。
本發明係有關於一種固態儲存裝置的資料寫入方法,包括下列步驟:(a)判斷一主機是否發出一電源關閉指令;(b)於確認該主機未發出該電源關閉指令時,進行複數個編程程序,將一緩衝元件中的複數個寫入資料根據一編程次序儲存至一TLC快閃記憶體;(c)於確認該主機發出該電源關閉指令時,產生複數個冗餘資料作為寫入資料儲存於該緩衝元件中;之後,進行複數個編程程序,將該緩衝元件中的寫入資料根據該編程次序儲存至該TLC快閃記憶體。
本發明係有關於一種固態儲存裝置,連接至一主機,該固態儲存裝置包括:一控制器,連接至該主機;一緩衝元件,連接至該控制器;以及一TLC快閃記憶體,連接至該控制器;其中,當該主機發出一電源關閉指令時,該控制器產生複數個冗餘資料作為複數個寫入資料儲存於該緩衝元件中;以及,該控制器進行複數個編程程序,將該緩衝元件中的寫入資料根據一編程次序儲存至該TLC快閃記憶體。
為了對本發明之上述及其他方面有更佳的瞭解,下
文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
300‧‧‧固態儲存裝置
301‧‧‧控制器
305‧‧‧TLC快閃記憶體
307‧‧‧緩衝元件
310‧‧‧外部匯流排
320‧‧‧主機
S502~S522‧‧‧步驟流程
第1圖所繪示為各種快閃記憶體中的儲存狀態與臨限電壓的關係示意圖。
第2A圖所繪示為二層晶胞快閃記憶體的編程示意圖。
第2B圖與第2C圖所繪示為利用(4224×8)數目的二層晶胞快閃記憶體來儲存二個頁(第M頁與第N頁)的資料之示意圖。
第3圖所繪示為三層晶胞快閃記憶體的編程示意圖。
第4A圖所繪示為本發明固態儲存裝置示意圖。
第4B圖所繪示為TLC快閃記憶體的編程次序示意圖。
第5圖所繪示為本發明固態儲存裝置的資料寫入方法流程圖。
第6A圖至第6D圖所繪示為接到電源關閉指令後,固態儲存裝置的內部運作示意圖。
請參照第3圖,其所繪示為三層晶胞快閃記憶體(以下簡稱為TLC快閃記憶體)的編程示意圖。第3圖係將TLC快閃記憶體編程為“100”儲存狀態的流程示意圖。於第一次編程程序時,先將TLC快閃記憶體改變為“111”儲存狀態。接著,於第二次編程程序時,再改變為“101”儲存狀態。最後,於第三次編
程程序時,再改變為“100”儲存狀態。
由以上的說明可知,於編程TLC快閃記憶體時時,需要先知道TLC快閃記憶體最終的儲存狀態,才能決定如何進行編程程序。舉例來說,如第3圖中的虛線所示,假設欲將TLC快閃記憶體編程為“011”儲存狀態時,需要先編程為“000”儲存狀態,接著編程為“010”儲存狀態,最後編程為“011”儲存狀態。同理,其他儲存狀態的三次編程程序也可以依此類推,不再贅述。
相同地,根據規格書的定義,TLC快閃記憶體係被定義為上頁、中頁以及下頁,並且需要進行上頁編程程序、中頁編程程序以及下頁編程程序。以下介紹TLC快閃記憶體的編程動作。
請參照第4A圖,其所繪示為本發明固態儲存裝置示意圖。固態儲存裝置300中包括一控制器301、一緩衝元件307與一TLC快閃記憶體305。控制器301連接至緩衝元件307與TLC快閃記憶體305。再者,控制器301利用一外部匯流排310與主機(host)320之間進行指令與資料的傳遞。
基本上,當主機320提供主機資料(host data)欲寫入TLC快閃記憶體305時,控制器301會先將主機資料進行ECC編碼程序,並且將主機資料編碼為寫入資料暫存於緩衝元件307。之後,控制器301會適時的進行編程動作,將緩衝元件307中的寫入資料儲存於TLC快閃記憶體305。其中,緩衝元件307係為
SRAM或者DRAM,其暫存的所有資料會隨著供應電源消失而不見;外部匯流排310可為USB匯流排、IEEE 1394匯流排、PCIe匯流排或SATA匯流排等等。
另外,規格書中針對TLC快閃記憶體305的特性,規範了編程次序(program order)。請參照第4B圖,其所繪示為TLC快閃記憶體的編程次序示意圖。以下的說明係以4K bytes的頁為例來進行說明,其中一頁的寫入資料包括:使用者資料、編碼資料與其他相關資料,總共為4224bytes(亦即,4224×8bits)。
如第4B圖所示,TLC快閃記憶體305中有多個頁,每個頁中各有(4224×8)數目的TLC晶胞。另外,固態儲存裝置300收到12頁的主機資料,經過ECC編碼程序後,依序產生A~L共12頁的寫入資料暫存於緩衝元件307中。
基本上,第A~C頁的寫入資料會儲存於第一頁TLC晶胞中。同理,第D~F頁的寫入資料會儲存於第二頁TLC晶胞中;第G~I頁的寫入資料會儲存於第三頁TLC晶胞中;第J~L頁的寫入資料會儲存於第四頁TLC晶胞中。
再者,根據規格書的規範,於TLC快閃記憶體305進行編程動作時,其編程次序如第4B圖所示。首先,動作(activate)第一頁TLC晶胞,進行第一次編程程序(1st),也就是第一頁TLC晶胞的上頁編程程序;接著,動作第二頁TLC晶胞,進行第二次編程程序(2nd),也就是第二頁TLC晶胞的上頁編程程序;接著,動作第一頁TLC晶胞,進行第三次編程程序(3rd),也就是第一頁
TLC晶胞的中頁編程程序;接著,動作第三頁TLC晶胞,進行第四次編程程序(4th),也就是第三頁TLC晶胞的上頁編程程序;接著,動作第二頁TLC晶胞,進行第五次編程程序(5th),也就是第二頁TLC晶胞的中頁編程程序;接著,動作第一頁TLC晶胞,進行第六次編程程序(6th),也就是第一頁TLC晶胞的下頁編程程序;接著,動作第四頁TLC晶胞,進行第七次編程程序(7th),也就是第四頁TLC晶胞的上頁編程程序;接著,動作第三頁TLC晶胞,進行第八次編程程序(8th),也就是第三頁TLC晶胞的中頁編程程序;接著,動作第二頁TLC晶胞,進行第九次編程程序(9th),也就是第二頁TLC晶胞的下頁編程程序。
由第4B圖所示的編程次序可知,當進行一特定頁中之上頁編程程序後,會繼續進行該特定頁的前一頁之中頁編程程序,接著繼續進行該特定頁前二頁之下頁編程程序。因此,當第一次編程程序(1st)、第三次編程程序(3rd)與第六次編程程序(6th)完成之後,才可確認第一頁TLC晶胞已經完成編程。同理,當第二次編程程序(2nd)、第五次編程程序(5th)與第九次編程程序(9th)完成之後,才可確認第二頁TLC晶胞已經完成編程。
另外,由於主機320尚未提供其他新主機資料,因此緩衝元件307中並沒有新增的寫入資料。由於TLC快閃記憶體305的編程次序限制,當控制器301無法對第五頁TLC晶胞進行上頁編程程序時,控制器301也無法對第四頁TLC晶胞進行中頁編程程序以及第三頁TLC晶胞進行下頁編程程序。同理,控制器
301更無法對第四頁TLC晶胞進行下頁編程程序。因此,緩衝元件307中,尚暫存了三頁(I、K、L)的寫入資料未被編程至TLC快閃記憶體305。
基本上,當一頁的TLC晶胞已經完成編程(經過三次編程程序)後,其儲存的所有資料可視為穩定的資料(stable data),可正確地經由控制器301的ECC解碼程序(ECC decoding procedure)而被正確的讀取。反之,當一頁的TLC晶胞尚未完成編程(經過三次編程程序)時,其儲存的資料可視為不穩定的資料(unstable data),將無法經由控制器301的ECC解碼程序而被正確的讀取。
由以上的說明可知,第4B圖中的第三頁TLC晶胞以及第四頁TLC晶胞尚未完成編程,所以第三頁TLC晶胞以及第四頁TLC晶胞中的資料為不穩定的資料。而控制器301必須等到主機320提供其他新的主機資料之後,才可以根據TLC快閃記憶體305的編程次序來繼續進行編程程序,如此才可使得第三頁TLC晶胞以及第四頁TLC晶胞中的資料變成穩定的資料。
眾所周知,緩衝元件307(SRAM或DRAM)暫存的所有資料會隨著供應電源消失而不見。當主機320傳遞電源關閉指令(shut-down command)至固態儲存裝置300時,由於編程次序的限制,緩衝元件307中暫存的三頁寫入資料(I、K、L)將隨著電源的消失而不見。
因此,當固態儲存裝置300再次接收到電源時,由
於第三頁TLC晶胞以及第四頁TLC晶胞皆未編程完成,所以控制器301無法通過ECC解碼程序讀取其儲存內容,而造成第三頁TLC晶胞以及第四頁TLC晶胞中的資料遺失的問題。
為了解決上述的狀況,本發明提出一種固態儲存裝置及其相關資料寫入方法,用以解決TLC快閃記憶體305的編程次序所造成之資料遺失的問題。請參照第5圖,其所繪示為本發明固態儲存裝置的資料寫入方法流程圖。此流程圖主要在說明固態儲存裝置300在寫入資料的過程收到電源關閉指令的動作,以及恢復供電時的動作。至於其他的運作,例如讀取動作(read action)與抹除動作,則不再詳述。
首先,當固態儲存裝置300正常運作時,控制器301會判斷是否收到主機320發出的電源關閉指令(步驟S502)。當控制器301未收到主機320發出的電源關閉指令時,控制器301進行編程程序,將緩衝元件307中的寫入資料根據編程次序儲存至TLC快閃記憶體305(步驟S504)。
再者,當控制器301收到主機320發出的電源關閉指令時,則控制器301產生預定的冗餘資料(redundant data)作為寫入資料儲存於緩衝元件307中。接著,控制器301進行編程程序,將緩衝元件307中的寫入資料根據編程次序儲存至TLC快閃記憶體305(步驟S508)。之後,固態儲存裝置300的電源消失(步驟S510),此時緩衝元件307中暫存的寫入資料將隨著電源的消失而不見。其中,預定的冗餘資料係由控制器301自行產生具有特定
圖樣(specific pattern)的冗餘資料。
之後,當固態儲存裝置300再次接收電源(步驟S520)時,控制器301產生電源消失前的冗餘資料作為寫入資料儲存於緩衝元件307中(步驟S522)。接著,回到步驟S502。
請參考第6A圖至第6D圖,其所繪示為接到電源關閉指令後,固態儲存裝置的內部運作示意圖。
首先,假設固態儲存裝置300接到電源關閉指令之前,緩衝元件307以及TLC晶胞快閃記憶體305中的資料儲存情況如第4B圖所示,亦即第三頁TLC晶胞以及第四頁TLC晶胞尚未編程完成,且緩衝元件307中尚有寫入資料(I、K、L)。
根據本發明的實施例,當固態儲存裝置300接收到電源關閉指令時,控制器301即產生預定的冗餘資料作為寫入資料並儲存於緩衝元件307中。如第6A圖所示,控制器301自行產生冗餘資料(R1~R6)作為寫入資料,暫存於緩衝元件307中。
接著,控制器301進行編程程序,將緩衝元件307中的寫入資料根據編程次序儲存至TLC快閃記憶體305。
因此,如第6B圖所示,控制器301動作第五頁TLC晶胞,進行第十次編程程序(10th),也就是第五頁TLC晶胞的上頁編程程序;接著,動作第四頁TLC晶胞,進行第十一次編程程序(11th),也就是第四頁TLC晶胞的中頁編程程序;接著,動作第三頁TLC晶胞,進行第十二次編程程序(12th),也就是第三頁TLC晶胞的下頁編程程序;接著,動作第六頁TLC晶胞,進行第
十三次編程程序(13th),也就是第六頁TLC晶胞的上頁編程程序;接著,動作第五頁TLC晶胞,進行第十四次編程程序(14th),也就是第五頁TLC晶胞的中頁編程程序;接著,動作第四頁TLC晶胞,進行第十五次編程程序(15th),也就是第四頁TLC晶胞的下頁編程程序。
由第6B圖可知,運用本發明的資料寫入方法,於固態儲存裝置300的電源關閉之前,可以確認由主機資料所編碼成的寫入資料已經完全儲存於TLC快閃記憶體305中。也就是說,可確認第一頁TLC晶胞至第四頁TLC晶胞皆已經完成編程,而第一頁TLC晶胞至第四頁TLC晶胞中的資料為穩定的資料。
再者,當固態儲存裝置300的電源關閉之後,由於緩衝元件307中暫存的三頁冗餘資料(R3、R5、R6)未被編程至TLC快閃記憶體305,所以會隨著電源消失而消失。
如第6C圖所示,當固態儲存裝置300再次接收電源時,控制器301先產生電源消失前的冗餘資料作為寫入資料儲存於緩衝元件307中。由於電源關閉前的冗餘資料係由控制器301自行產生,因此於電源恢復後,控制器301再次產生電源消失前的冗餘資料(R1~R6)作為寫入資料儲存於緩衝元件307中。
再者,如第6D圖所示,當固態儲存裝置300再次收到主機資料,經過ECC編碼程序後,即產生M~R的寫入資料暫存於緩衝元件307。之後,控制器301進行編程程序,將緩衝元件307中的寫入資料根據編程次序儲存至TLC快閃記憶體305。
因此,如第6D圖所示,當固態儲存裝置300未收到電源關閉指令時,控制器301會依序進行第十六次編程程序(16th)至第二十一次編程程序(21th),而詳細的流程不再贅述。
換言之,當固態儲存裝置300再次接收到電源之後,隨著新的寫入資料持續儲存至緩衝元件307,控制器301會進行編程程序,會使得第五頁TLC晶胞以及第六頁TLC晶胞中的資料成為穩定的資料。
由以上的說明可知,本發明的資料寫入方法係以頁為單位來進行。換句話說,TLC快閃記憶體305中具有複數個TLC晶胞群,每一TLC晶胞群具有M個TLC晶胞,用以進行三次編程程序,且每一該編程程序係寫入M個資料。再者,M個資料即為一個頁的位元數目,而該些TLC晶胞群即為多個頁的TLC晶胞,且每一頁的TLC晶胞係可寫入三個頁的位元數目。
另外,本發明係利用電源關閉之前的短暫時間,產生冗餘資料。並且,根據編程次序,將主機資料編碼而成的寫入資料儲存於TCL快閃記憶體305中,防止主機資料編碼而成的寫入資料隨著電源消失而消失。
再者,當固態儲存裝置300再次接收到電源之後,控制器301可再次產生冗餘資料並儲存於緩衝元件307中。並且,隨著主機資料的輸入,使得冗餘資料繼續被儲存於TLC快閃記憶體305中。
明顯地,雖然冗餘資料會占據TLC快閃記憶體305
的儲存空間,但是可以有效地防止主機資料編碼而成的寫入資料消失。
再者,主機320發出電源關閉指令至電源真正停止供應電源的時間約為100ms。再者,以資料寫入速率200Mbyte/sec為例,寫入6個頁的資料量為(4224×6)bytes,所以大約需要0.13ms即可將產生的冗餘資料儲存至TLC快閃記憶體305。因此,當固態儲存裝置300接收到電源關閉指令之後,確實有足夠的時間進行本發明所揭露的寫入方法,有效地防止主機資料編碼而成的寫入資料隨著電源消失而消失。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S502~S522‧‧‧步驟流程
Claims (11)
- 一種固態儲存裝置的資料寫入方法,包括下列步驟:(a)判斷一主機是否發出一電源關閉指令;(b)於確認該主機未發出該電源關閉指令時,進行複數個編程程序,將一緩衝元件中的複數個寫入資料根據一編程次序儲存至一三層晶胞快閃記憶體;以及(c)於確認該主機發出該電源關閉指令時,產生具有特定圖樣的複數個冗餘資料儲存於該緩衝元件中;之後,進行複數個編程程序,將該緩衝元件中尚未儲存至該三層晶胞快閃記憶體的寫入資料及該些冗餘資料根據該編程次序儲存至該三層晶胞快閃記憶體。
- 如申請專利範圍第1項所述之資料寫入方法,更包括下列步驟:(d)當接收到一電源後,產生該電源消失前的該些冗餘資料作為寫入資料儲存於該緩衝元件中;以及(e)回到該步驟(a)。
- 如申請專利範圍第1項所述之資料寫入方法,其中該些冗餘資料係由該固態儲存裝置所產生。
- 如申請專利範圍第1項所述之資料寫入方法,其中該固態儲存裝置中的該三層晶胞快閃記憶體中具有複數個三層晶胞群,每一個三層晶胞群具有M個三層晶胞,用以進行三次編程程序,且每一該編程程序係寫入M個資料,其中該編程次序包括下 列步驟:(f1)對該些三層晶胞群中的一特定三層晶胞群進行該三次編程程序中的一第一次編程程序;(f2)對該特定三層晶胞群的前一個三層晶胞群進行該三次編程程序中的一第二次編程程序;以及(f3)對該特定三層晶胞群的前二個三層晶胞群進行該三次編程程序中的一第三次編程程序。
- 如申請專利範圍第4項所述之資料寫入方法,其中該M個資料係為一個頁的位元數目,每一該三層晶胞群為一個頁的三層晶胞,且每一該頁的三層晶胞係寫入三個頁的位元數目。
- 如申請專利範圍第4項所述之資料寫入方法,其中該步驟(f1)係對該特定三層晶胞群進行一上頁編程程序;該步驟(f2)係對該特定三層晶胞群的前一個三層晶胞群進行一中頁編程程序;以及該步驟(f3)係對該特定三層晶胞群的前二個三層晶胞群進行一下頁編程程序。
- 一種固態儲存裝置,連接至一主機,該固態儲存裝置包括:一控制器,連接至該主機;一緩衝元件,連接至該控制器;以及一三層晶胞快閃記憶體,連接至該控制器;其中,當該主機未發出一電源關閉指令時,該控制器進行複數個編程程序,將該緩衝元件中的複數個寫入資料根據一編程次序儲存至該三層晶胞快閃記憶體,當該主機發出該電源關閉指令 時,該控制器產生具有特定圖樣的複數個冗餘資料儲存於該緩衝元件中;以及,該控制器進行複數個編程程序,將該緩衝元件中尚未儲存至該三層晶胞快閃記憶體的寫入資料及該些冗餘資料根據該編程次序儲存至該三層晶胞快閃記憶體。
- 如申請專利範圍第7項所述之固態儲存裝置,其中當該固態儲存裝置接收到一電源後,該控制器再次產生該電源消失前的該些冗餘資料作為寫入資料,儲存於該緩衝元件中。
- 如申請專利範圍第7項所述之固態儲存裝置,其中,該三層晶胞快閃記憶體中具有複數個三層晶胞群,每一個三層晶胞群具有M個三層晶胞,用以進行三次編程程序,且每一該編程程序係寫入M個資料。
- 如申請專利範圍第9項所述之固態儲存裝置,其中該編程次序係依序進行:(f1)對該些三層晶胞群中的一特定三層晶胞群進行該三次編程程序中的一第一次編程程序;(f2)對該特定三層晶胞群的前一個三層晶胞群進行該三次編程程序中的一第二次編程程序;以及,(f3)對該特定三層晶胞群的前二個三層晶胞群進行該三次編程程序中的一第三次編程程序。
- 如申請專利範圍第10項所述之固態儲存裝置,其中該M個資料係為一個頁的位元數目,每一該三層晶胞群為一個頁的三層晶胞,且每一該頁的三層晶胞係寫入三個頁的位元數目。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104133189A TWI564716B (zh) | 2015-10-08 | 2015-10-08 | 固態儲存裝置及其相關資料寫入方法 |
US14/992,285 US9747973B2 (en) | 2015-10-08 | 2016-01-11 | Solid state storage device and data writing method to prevent data loss during program cycle |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104133189A TWI564716B (zh) | 2015-10-08 | 2015-10-08 | 固態儲存裝置及其相關資料寫入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI564716B true TWI564716B (zh) | 2017-01-01 |
TW201714087A TW201714087A (zh) | 2017-04-16 |
Family
ID=58407797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104133189A TWI564716B (zh) | 2015-10-08 | 2015-10-08 | 固態儲存裝置及其相關資料寫入方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9747973B2 (zh) |
TW (1) | TWI564716B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201117001A (en) * | 2009-11-06 | 2011-05-16 | Phison Electronics Corp | Data backup method for a flash memory and controller and storage system using the same |
US20140006688A1 (en) * | 2012-07-02 | 2014-01-02 | Super Talent Technology, Corp. | Endurance and Retention Flash Controller with Programmable Binary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple, Multi, or Single-Level Flash-Memory Cells |
US20140013038A1 (en) * | 2012-07-05 | 2014-01-09 | Silicon Motion, Inc. | Data storage device and operating method for flash memory |
CN104050107A (zh) * | 2013-03-12 | 2014-09-17 | 光宝科技股份有限公司 | 固态储存装置及遭遇低电压时的数据处理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001344076A (ja) * | 2000-06-05 | 2001-12-14 | Fujitsu Ltd | ディスクアレイ装置 |
US9548108B2 (en) * | 2008-06-18 | 2017-01-17 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver for enhanced flash endurance |
JP2010211734A (ja) * | 2009-03-12 | 2010-09-24 | Toshiba Storage Device Corp | 不揮発性メモリを用いた記憶装置 |
WO2015106162A1 (en) * | 2014-01-09 | 2015-07-16 | SanDisk Technologies, Inc. | Selective copyback for on die buffered non-volatile memory |
KR102245822B1 (ko) * | 2014-11-26 | 2021-04-30 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법 |
-
2015
- 2015-10-08 TW TW104133189A patent/TWI564716B/zh active
-
2016
- 2016-01-11 US US14/992,285 patent/US9747973B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201117001A (en) * | 2009-11-06 | 2011-05-16 | Phison Electronics Corp | Data backup method for a flash memory and controller and storage system using the same |
US20140006688A1 (en) * | 2012-07-02 | 2014-01-02 | Super Talent Technology, Corp. | Endurance and Retention Flash Controller with Programmable Binary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple, Multi, or Single-Level Flash-Memory Cells |
US20140013038A1 (en) * | 2012-07-05 | 2014-01-09 | Silicon Motion, Inc. | Data storage device and operating method for flash memory |
CN104050107A (zh) * | 2013-03-12 | 2014-09-17 | 光宝科技股份有限公司 | 固态储存装置及遭遇低电压时的数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201714087A (zh) | 2017-04-16 |
US20170103806A1 (en) | 2017-04-13 |
US9747973B2 (en) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544993B (zh) | 非易失性存储器件和存储器***及管理、擦除和编程方法 | |
CN101681300B (zh) | 存储器*** | |
US9575839B2 (en) | Data storage device and operating method thereof | |
CN107544748B (zh) | 固态储存装置及其数据写入方法 | |
US7978512B2 (en) | Semiconductor memory system | |
CN112908374B (zh) | 存储器控制器及其操作方法 | |
US9646696B2 (en) | Semiconductor memory device, erasing methods thereof, and data storage device including the same | |
TWI775879B (zh) | 記憶體系統及其操作方法 | |
TWI533305B (zh) | 將資料寫入至快閃記憶體的方法及相關的記憶裝置與快閃記憶體 | |
US20140337574A1 (en) | Memory system, semiconductor memory device and operating method thereof | |
JP4253272B2 (ja) | メモリカード、半導体装置、及び半導体メモリの制御方法 | |
JP2009048680A (ja) | 記憶装置 | |
KR20120088454A (ko) | 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법 | |
CN113010093B (zh) | 存储器***以及存储器控制器 | |
CN104050107A (zh) | 固态储存装置及遭遇低电压时的数据处理方法 | |
CN114579041A (zh) | 存储器***及其操作方法 | |
CN106569730B (zh) | 固态储存装置及其相关资料写入方法 | |
TWI564716B (zh) | 固態儲存裝置及其相關資料寫入方法 | |
TWI646554B (zh) | 資料儲存裝置以及其操作方法 | |
US12019891B2 (en) | Memory controller controlling synchronization operation based on fused linked list and operating method thereof | |
WO2017047272A1 (ja) | 半導体記憶装置および半導体記憶装置におけるデータ消去方法 | |
TWI408687B (zh) | 記憶體運作方法 | |
KR20210054187A (ko) | 메모리 시스템, 메모리 장치 및 메모리 시스템의 동작 방법 | |
TWI607457B (zh) | 固態儲存裝置及其資料寫入方法 | |
CN111752470A (zh) | 存储器控制器及其操作方法 |