本申請涉及存儲設備應用領域,特別是涉及一種數(shù)據(jù)寫入方法、存儲控制芯片及其閃存設備。
背景技術:
1、閃存設備,例如:固態(tài)硬盤(solid?state?drives,ssd),是一種以半導體閃存(nand?flash)作為介質(zhì)的存儲設備。在閃存設備寫入數(shù)據(jù)的過程中需要由閃存設備的存儲控制芯片向閃存介質(zhì)傳輸數(shù)據(jù),然而在高速傳輸數(shù)據(jù)的過程中,存儲控制芯片容易面臨處理瓶頸,導致數(shù)據(jù)斷流。
2、數(shù)據(jù)斷流,是指在閃存設備的存儲控制芯片的處理速度小于數(shù)據(jù)傳輸速度的情況下,暫時中斷數(shù)據(jù)傳輸,直到存儲控制芯片完成當前數(shù)據(jù)的處理,然后從中斷的地方繼續(xù)傳輸數(shù)據(jù)。這會使得數(shù)據(jù)在寫入過程中出現(xiàn)錯誤,影響數(shù)據(jù)的完整性、準確性等。
3、目前,通常在數(shù)據(jù)斷流導致數(shù)據(jù)寫入錯誤后,對出錯的數(shù)據(jù)進行恢復,例如:對于采用了獨立磁盤冗余陣列(redundant?arrays?of?inexpensive?disks,raid)技術的閃存設備,當數(shù)據(jù)斷流發(fā)生在一個數(shù)據(jù)邏輯單元(die)時,基于raid的冗余特性來恢復部分出錯的數(shù)據(jù)。
4、在實現(xiàn)本申請過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題:現(xiàn)有方案沒有為寫入過程出現(xiàn)的數(shù)據(jù)斷流提供足夠的處理機制,一旦發(fā)生數(shù)據(jù)斷流,寫入的數(shù)據(jù)容易出錯。并且對于采用raid技術的閃存設備,當數(shù)據(jù)斷流發(fā)生在多個die時,超出raid技術的恢復能力,容易導致數(shù)據(jù)永久丟失。
技術實現(xiàn)思路
1、本申請實施例提供一種數(shù)據(jù)寫入方法、存儲控制芯片及其閃存設備,以減少因數(shù)據(jù)斷流導致的數(shù)據(jù)寫入錯誤,提高數(shù)據(jù)寫入的完整性和準確性,從而提高閃存設備的可靠性和穩(wěn)定性。
2、本申請實施例提供以下技術方案:
3、第一方面,本申請實施例提供一種數(shù)據(jù)寫入方法,該數(shù)據(jù)寫入方法應用于閃存設備,閃存設備包括閃存介質(zhì),該數(shù)據(jù)寫入方法包括:
4、獲取寫命令,基于寫命令向閃存介質(zhì)發(fā)送第一編程指令并進行數(shù)據(jù)傳輸操作;
5、在每一次數(shù)據(jù)傳輸操作完成之后,檢測是否存在斷流標記,其中,斷流標記用于表示數(shù)據(jù)傳輸操作的過程中發(fā)生數(shù)據(jù)斷流;
6、在檢測到斷流標記時,向閃存介質(zhì)重新發(fā)送第一編程指令并重新進行數(shù)據(jù)傳輸操作,直至在任一次數(shù)據(jù)傳輸操作完成后未檢測到斷流標記時,向閃存介質(zhì)發(fā)送第二編程指令,以將數(shù)據(jù)寫入閃存介質(zhì);
7、其中,第一編程指令包括數(shù)據(jù)的地址信息,第二編程指令用于指示閃存介質(zhì)寫入數(shù)據(jù)。
8、第二方面,本申請實施例提供一種存儲控制芯片,包括:
9、至少一個處理器;以及,
10、與至少一個處理器通信連接的存儲器;其中,
11、存儲器存儲有可被至少一個處理器執(zhí)行的指令,指令被至少一個處理器執(zhí)行,以使至少一個處理器能夠執(zhí)行如第一方面的數(shù)據(jù)寫入方法。
12、第三方面,本申請實施例提供一種閃存設備,包括:
13、如第二方面的存儲控制芯片;
14、至少一個閃存介質(zhì),與存儲控制芯片通信連接。
15、第四方面,本申請實施例還提供了一種非易失性計算機可讀存儲介質(zhì),非易失性計算機可讀存儲介質(zhì)存儲有計算機可執(zhí)行指令,計算機可執(zhí)行指令用于使閃存設備能夠執(zhí)行如第一方面的數(shù)據(jù)寫入方法。
16、本申請實施例的有益效果是:區(qū)別于現(xiàn)有技術的情況下,本申請實施例提供的一種數(shù)據(jù)寫入方法,該數(shù)據(jù)寫入方法應用于閃存設備,閃存設備包括閃存介質(zhì),該數(shù)據(jù)寫入方法包括:獲取寫命令,基于寫命令向閃存介質(zhì)發(fā)送第一編程指令并進行數(shù)據(jù)傳輸操作;在每一次數(shù)據(jù)傳輸操作完成之后,檢測是否存在斷流標記,其中,斷流標記用于表示數(shù)據(jù)傳輸操作的過程中發(fā)生數(shù)據(jù)斷流;在檢測到斷流標記時,向閃存介質(zhì)重新發(fā)送第一編程指令并重新進行數(shù)據(jù)傳輸操作,直至在任一次數(shù)據(jù)傳輸操作完成后未檢測到斷流標記時,向閃存介質(zhì)發(fā)送第二編程指令,以將數(shù)據(jù)寫入閃存介質(zhì);其中,第一編程指令包括數(shù)據(jù)的地址信息,第二編程指令用于指示閃存介質(zhì)寫入數(shù)據(jù)。
17、通過在檢測到斷流標記時,向閃存介質(zhì)重新發(fā)送第一編程指令并重新進行數(shù)據(jù)傳輸操作,直至在任一次數(shù)據(jù)傳輸操作完成后未檢測到斷流標記時,向閃存介質(zhì)發(fā)送第二編程指令,以將數(shù)據(jù)寫入閃存介質(zhì),本申請能夠在寫入過程中對數(shù)據(jù)斷流進行處理,使得數(shù)據(jù)能夠正確、完整地寫入閃存介質(zhì),從而減少因數(shù)據(jù)斷流導致的數(shù)據(jù)寫入錯誤,提高數(shù)據(jù)寫入的完整性和準確性,進而提高閃存設備的可靠性和穩(wěn)定性。
1.一種數(shù)據(jù)寫入方法,其特征在于,應用于閃存設備,所述閃存設備包括閃存介質(zhì),所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述數(shù)據(jù)傳輸操作用于將所述數(shù)據(jù)傳輸至所述閃存介質(zhì),所述閃存設備還包括后端模塊、硬件模塊和寄存器;
3.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權利要求1所述的方法,其特征在于,所述閃存設備還包括高速緩存空間和冗余緩沖區(qū),所述高速緩存空間包括至少兩個數(shù)據(jù)緩沖區(qū);
5.根據(jù)權利要求4所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權利要求5所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權利要求5所述的方法,其特征在于,所述閃存介質(zhì)包括至少兩個普通數(shù)據(jù)邏輯單元和一個校驗數(shù)據(jù)邏輯單元,其中,每一個所述普通數(shù)據(jù)邏輯單元一一對應一個所述數(shù)據(jù)緩沖區(qū),所述校驗數(shù)據(jù)邏輯單元對應所述冗余緩沖區(qū);
8.根據(jù)權利要求1或4所述的方法,其特征在于,所述方法還包括:
9.根據(jù)權利要求8所述的方法,其特征在于,所述閃存設備還包括冗余緩沖區(qū);
10.一種存儲控制芯片,其特征在于,包括:
11.一種閃存設備,其特征在于,包括: