NANDFLASH使用壽命的計算方法及系統與流程
2023-05-14 10:04:31 3

本發明涉及快閃記憶體技術領域,特別是涉及nandflash使用壽命的計算方法及系統。
背景技術:
nandflash雖有自身的物理壽命,由於flash的固有特性,如:按頁讀寫、按環讀寫、寫操作之前需要對flash的塊進行擦除等特性,因此flash的實際使用壽命即為塊的擦寫次數,但實際讀寫時並不能按最理想的擦寫次數來估算flash的實際使用壽命,需要使用不同的磨損平衡算法來平衡各個數據塊的擦除次數,而且由於各種使用場景的不同,寫入的數據量及寫入數據的大小不同,很難對nandflash的使用壽命進行估算。
技術實現要素:
基於此,有必要針對傳統技術很難對nandflash的使用壽命進行估算的問題,提供一種能夠估算nandflash使用壽命的nandflash使用壽命的計算方法及系統。
為達到發明目的,提供一種nandflash使用壽命的計算方法,所述方法包括:
獲取nandflash的測試參數及nandflash的擦寫次數初始值;
根據所述測試參數對所述nandflash進行測試,並獲得每次測試後所述nandflash的擦寫次數當前值;
根據所述擦寫次數初始值和所述擦寫次數當前值獲得每次測試nandflash時對應的擦寫次數淨增長值;
提取所述測試參數中的測試次序信息,對所述測試次序信息和所述擦寫次數淨增長值進行分析,得到二者之間的對應關係,並根據所述對應關係計算出所述nandflash的使用壽命。
在其中一個實施例中,所述根據所述擦寫次數初始值和所述擦寫次數當前值獲得每次測試nandflash時對應的擦寫次數淨增長值的步驟包括:
獲取每次測試所述nandflash時所述nandflash中預設的各個數據塊對應的塊擦寫次數淨增長值;
根據所述塊擦寫次數淨增長值獲得每次測試所述nandflash時對應的所述擦寫次數淨增長值。
在其中一個實施例中,所述根據所述塊擦寫次數淨增長值獲得每次測試所述nandflash時對應的所述擦寫次數淨增長值的步驟包括:
每次測試nandflash後,將所述nandflash中各個所述數據塊對應的塊擦寫次數淨增長值進行降序排序,得到排序後的塊擦寫次數淨增長值;
由所述排序後的塊擦寫次數淨增長值中獲取排序在前預設數量的第一塊擦寫次數淨增長值;
對預設數量的所述第一塊擦寫次數淨增長值進行均值運算,得到每次測試nandflash時對應的擦寫次數淨增長值。
在其中一個實施例中,所述提取所述測試參數中的測試次序信息,對所述測試次序信息和所述擦寫次數淨增長值進行分析,得到二者之間的對應關係的步驟包括:
由所述測試參數中提取所述測試次序信息,並根據所述測試次序信息和所述擦寫次數淨增長值計算出所述測試次序信息和所述擦寫次數淨增長值的擬合判定係數;
根據所述擬合判定係數判斷是否能夠得到所述測試次序信息和所述擦寫次數淨增長值之間的線性回歸方程;
若是,則根據測試次序信息和所述擦寫次數淨增長值計算所述線性回歸方程的回歸係數估算值,並由所述回歸係數估算值求得所述線性回歸方程;
若否,則根據測試nandflash時得到的擦寫次數淨增長值的實際測試值和估計值計算殘差,根據殘差判定離群點,並將離群點去除後,根據測試次序信息和所述擦寫次數淨增長值計算所述線性回歸方程的回歸係數估算值,由所述回歸係數估算值求得所述線性回歸方程。
在其中一個實施例中,所述根據所述對應關係計算出所述nandflash的使用壽命的步驟包括:
獲取所述nandflash的預設標稱值;
利用所述預設標稱值以及所述線性回歸方程計算出所述nandflash的使用壽命。
本發明還提供一種nandflash使用壽命的計算系統,所述系統包括:
第一獲取模塊,用於獲取nandflash的測試參數及nandflash的擦寫次數初始值;
測試獲取模塊,用於根據所述測試參數對所述nandflash進行測試,並獲得測試後的nandflash的擦寫次數當前值;
第二獲取模塊,用於根據所述擦寫次數初始值和所述擦寫次數當前值獲得每次測試nandflash時對應的擦寫次數淨增長值;
分析計算模塊,用於提取所述測試參數中的測試次序信息,對所述測試次序信息和所述擦寫次數淨增長值進行分析,得到二者之間的對應關係,並根據所述對應關係計算出所述nandflash的使用壽命。
在其中一個實施例中,所述第二獲取模塊包括:
第一獲取單元,用於獲取每次測試所述nandflash時所述nandflash中預設的各個數據塊對應的塊擦寫次數淨增長值;
第二獲取單元,用於根據所述塊擦寫次數淨增長值獲得每次測試所述nandflash時對應的所述擦寫次數淨增長值。
在其中一個實施例中,所述第一獲取單元包括:
排序子單元,用於每次測試nandflash後,將所述nandflash中各個所述數據塊對應的塊擦寫次數淨增長值進行降序排序,得到排序後的塊擦寫次數淨增長值;
獲取子單元,用於由所述排序後的塊擦寫次數淨增長值中獲取排序在前預設數量的第一塊擦寫次數淨增長值;
運算子單元,用於對預設數量的所述第一塊擦寫次數淨增長值進行均值運算,得到每次測試nandflash時對應的擦寫次數淨增長值。
在其中一個實施例中,所述分析計算模塊包括:
第一計算單元,用於由所述測試參數中提取所述測試次序信息,並根據所述測試次序信息和所述擦寫次數淨增長值計算出所述測試次序信息和所述擦寫次數淨增長值的擬合判定係數;
判斷單元,用於根據所述擬合判定係數判斷是否能夠得到所述測試次序信息和所述擦寫次數淨增長值之間的線性回歸方程;若是,則根據測試次序信息和所述擦寫次數淨增長值計算所述線性回歸方程的回歸係數估算值,並由所述回歸係數估算值求得所述線性回歸方程;若否,則根據測試nandflash時得到的擦寫次數淨增長值的實際測試值和估計值計算殘差,根據殘差判定離群點,並將離群點去除後,根據測試次序信息和所述擦寫次數淨增長值計算所述線性回歸方程的回歸係數估算值,由所述回歸係數估算值求得所述線性回歸方程。
在其中一個實施例中,所述分析計算模塊還包括:
第三獲取單元,用於獲取所述nandflash的預設標稱值;
第二計算單元,用於利用所述預設標稱值以及所述線性回歸方程計算出所述nandflash的使用壽命。
本發明的有益效果包括:
上述nandflash使用壽命的計算方法及系統,利用nandflash自身的固有特性並結合nandflash進行寫操作時的特性,通過模擬不同的操作場景,獲取nandflash測試之前的擦寫次數初始值和每次測試nandflash後的擦寫次數當前值,根據擦寫次數初始值和擦寫次數當前值得到每次測試nandflash時的擦寫次數淨增長值,並通過有限次測試的測試次序信息和擦寫次數淨增長值得到測試次序信息和擦寫次數淨增長值之間的對應關係,最後利用測試次序信息和擦寫次數淨增長值之間的對應關係計算出nandflash的使用壽命,從而克服傳統技術中難以對nandflash使用壽命進行估算的問題,且能夠實現對nandflash使用壽命的快速估算。
附圖說明
圖1為一個實施例中的nandflash使用壽命的計算方法的流程示意圖;
圖2為一個實施例中的測試次序與擦寫次數淨增長值的散點圖的仿真示意圖;
圖3為一個實施例中的nandflash使用壽命的計算系統的結構示意圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例對本發明nandflash使用壽命的計算方法及系統進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,並不用於限定本發明。
在一個實施例中,如圖1所示,提供了一種nandflash使用壽命的計算方法,該方法包括以下步驟:
s100,獲取nandflash的測試參數及nandflash的擦寫次數初始值。
s200,根據測試參數對nandflash進行測試,並獲得每次測試後nandflash的擦寫次數當前值。
s300,根據擦寫次數初始值和擦寫次數當前值獲得每次測試nandflash時對應的擦寫次數淨增長值。
s400,提取測試參數中的測試次序信息,對測試次序信息和擦寫次數淨增長值進行分析,得到二者之間的對應關係,並根據對應關係計算出nandflash的使用壽命。
本實施例中,由於nandflash自身的固有特性,在對nandflash進行寫操作之前需要對nandflash中的數據塊進行擦除,因此nandflash的實際使用壽命即為nandflash數據塊的擦寫次數。結合文件系統讀寫nandflash的特性,通過模擬不同的操作場景,即由測試者輸入不同的測試參數對nandflash進行測試,並通過底層驅動反饋nandflash的真實擦除次數,即每次測試nandflash後的擦寫次數當前值,同時在對nandflash測試之前獲取nandflash的擦寫次數初始值,然後根據擦寫次數當前值和擦寫次數初始值獲得每次測試nandflash時對應的擦寫次數淨增長值,具體地,將每次測試後得到的nandflash的擦寫次數當前值減去擦寫次數初始值便可得到每次測試nandflash時對應的擦寫次數淨增長值,此處之所以要減去nandflash的擦寫次數初始值是因為nandflash可能在出廠之前已經做過測試或已經被寫操作過,而後續對nandflash的擦寫次數及測試次數進行擬合計算時是按照出廠時間為零的基準去評估nandflash的使用壽命的,所以此處將每次測試nandflash得到的擦寫次數當前值減去擦寫次數初始值能夠提高nandflash使用壽命估算的準確性。由測試參數中得到測試次序信息,即測試次數,對nandflash的擦寫次數淨增長值及測試次序信息進行分析,得到二者的對應關係,此處為利用最小二乘原理得到的線性回歸方程,最後根據二者的對應關係計算出nandflash的使用壽命,從而克服傳統技術中很難對nandflash使用壽命進行估算的問題,在根據二者的對應關係計算nandflash的使用壽命時,將nandflash生產廠商標定的可擦寫次數-即預設標稱值代入擦寫次數淨增長值及測試次序信息的對應關係中,從而能夠實現對nandflash使用壽命的快速估算。
需要說明的是,測試參數包括寫操作方式、數據量、數據包大寫及測試次序信息。其中,文件系統對nandflash進行寫操作方式包括順序寫和隨機寫,順序寫即以順序方式對nandflash進行寫操作;隨機寫即隨機產生讀寫位置,以覆寫方式對nandflash進行寫操作。
在一個實施例中,參見圖2,步驟s300包括:
s310,獲取每次測試nandflash時nandflash中預設的各個數據塊對應的塊擦寫次數淨增長值。
s320,根據塊擦寫次數淨增長值獲得每次測試nandflash時對應的擦寫次數淨增長值。
nandflash是以數據塊為基本單位進行讀寫操作的,nandflash在出廠時預先劃分為多個數據塊,在對nandflash進行寫操作時,實際上是對nandflash中的各個數據塊進行擦寫操作,而在每次測試nandflash時,nandflash中的各個數據塊對應的塊擦寫次數淨增長值可能有不同的塊擦寫次數淨增長值,因此取某個數據塊的塊擦寫次數淨增長值顯然不能有效地表示nandflash的擦寫次數淨增長值,為了有效地表示nandflash的擦寫次數淨增長值,可將各個數據塊對應的塊擦寫次數淨增長進行均值運算,如:進行算術平均值運算,從而得到比較有效表示nandflash的擦寫次數淨增長值。
此處需要說明的是,nandflash的寫操作次數越多,其對應的擦寫次數淨增長值也越大,因此,在測試nandflash的使用壽命時,對nandflash的測試次數越多,最後估算出的nandflash的使用壽命與實際使用壽命越接近,但同時對nandflash的測試次數越多,也會降低nandflash的使用壽命。
優選地,在一個實施例中,步驟s320包括:
s321,每次測試nandflash後,將nandflash中各個數據塊對應的塊擦寫次數淨增長值進行降序排序,得到排序後的塊擦寫次數淨增長值。
s320,由排序後的塊擦寫次數淨增長值中獲取排序在前預設數量的第一塊擦寫次數淨增長值。
s330,對預設數量的第一塊擦寫次數淨增長值進行均值運算,得到每次測試nandflash時對應的擦寫次數淨增長值。
在nandflash的實際使用過程中,nandflash的使用壽命通常與nandflash中擦寫次數最多的數據塊相關,例如:當某個數據塊的擦寫次數達到該nandflash的最大擦寫次數時,該nandflash便失效。而僅僅將擦寫次數最多的數據塊的塊擦寫次數淨增長值作為nandflash的擦寫次數淨增長值又有一定的偶然性。本實施例中將nandflash中各個數據塊對應的塊擦寫次數淨增長值進行降序排序,並將排序在前預設數量的第一塊擦寫次數淨增長值進行均值運算,即將擦寫次數最多的前預設數量的數據塊對應的塊擦寫次數淨增長值進行均值運算,例如:將nandflash中所有數據塊中擦寫次數最多的前20%(第一塊擦寫次數淨增長值對應的數據塊的數量佔所有數據塊的數量的百分比)的數據塊對應的塊擦寫次數淨增長值進行均值運算,得到nandflash的擦寫次數合理均值,將其作為nandflash的擦寫次數淨增長值,一方面能夠降低計算nandflash中所有數據塊對應的塊擦寫次數淨增長值的均值的複雜度,且能夠提高對nandflash使用壽命估算的準確性(擦寫次數多的數據塊更能反映nandflash的實際使用壽命),另一方面還能克服只以某一數據塊的塊擦寫次數淨增長值作為nandflash的擦寫次數淨增長值時偶然性的缺陷。由上述方式,依次得到每次測試nandflash時對應的擦寫次數淨增長值。
在一個實施例中,步驟s400包括:
s410,由測試參數中提取測試次序信息,並根據測試次序信息和擦寫次數淨增長值計算出測試次序信息和擦寫次數淨增長值的擬合判定係數。
s420,根據擬合判定係數判斷是否能夠得到測試次序信息和擦寫次數淨增長值之間的線性回歸方程;若是,則執行步驟s421;若否,則執行步驟s422。
s421,根據測試次序信息和擦寫次數淨增長值計算線性回歸方程的回歸係數估算值,並由回歸係數估算值求得線性回歸方程。
s422,根據測試nandflash時得到的擦寫次數淨增長值的實際測試值和估計值計算殘差,根據殘差判定離群點,並將離群點去除後,根據測試次序信息和擦寫次數淨增長值計算線性回歸方程的回歸係數估算值,由回歸係數估算值求得線性回歸方程。
由測試參數中提取測試次序信息,如測試次序:x=[1,2,3,...,n],將該測試次序作為自變量,該測試次序即為讀取底層驅動提供的nandflash的擦寫次數的次序,其可以是間隔固定時間得到,因此可換算為使用時間,將每次對nandflash測試時的擦寫次數的合理均值作為因變量,即y=[y1,y2,y3,...,yn],繪製相應的散點圖,如圖2所示,觀測可知兩個變量之間的對應關係,此處可通過計算這兩個變量的擬合判定係數r來判斷兩個變量之間是否能夠得到線性回歸方程,擬合判定係數r如下:
擬合判定係數r越趨近於1擬合效果越好,能夠較好地得到線性回歸方程。
如果判定二者成線性相關關係,則可進一步得到線程回歸方程,在圖2所示的實施例中,測試次序與nandflash每次測試時的擦寫次數淨增長值成一元線性方程,計算線性回歸方程的回歸係數估算值,則本實施例中計算一元線性方程的斜率估算值和截距估算值,求得線性回歸方程為y=bx+a,其中,b為線程回歸方程的斜率,a為線性回歸方程的截距。斜率估算值和截距估算值的計算公式如下:
其中,為線性回歸方程的斜率估算值,為線性回歸方程的截距估算值,n為測試總次數,xi表示任意一個測試次序的數值、yi表示與任意一個測試次序對應的擦寫次數淨增長值,表示測試次序數值的均值、表示擦寫次數淨增長值的均值。
如果測試次序與nandflash每次測試時的擦寫次數淨增長值不能得到線性回歸方程,即二者的擬合效果不好,則需要計算實際測試值yi與估計值之間的殘差,並將殘差值超出一定閾值的實際測試值作為離群點去除,然後重新擬合測試次序信息與擦寫次數淨增長值之間的線性回歸方程。
在一個實施例中,步驟s400還包括:
s430,獲取nandflash的預設標稱值。
s440,利用預設標稱值以及線性回歸方程計算出nandflash的使用壽命。
獲取nandflash的預設標稱值,其中,預設標稱值為nandflash生產廠商標定的可擦寫次數,即默認的可擦寫次數,通常為3000次;在利用預設標稱值以及線性回歸方程計算出nandflash的使用壽命時,根據公式:壽命值=(預設標稱值-a)/b得到,即將默認的可擦寫次數帶入線性回歸方程中得到nandflash的使用壽命。進一步地,為了便於表示nandflash的壽命值,將公式壽命值=(預設標稱值-a)/b/365,得到以年為單位表示的壽命值。其利用最小二乘原理通過有限次測試的測試參數(測試次序和擦寫次數淨增長值)來擬合出一個線性回歸方程,然後根據公式估算出nandflash的使用壽命,能夠有效地估算出nandflash的使用壽命,解決了傳統技術中難以對nandflash的使用壽命進行估算的問題。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。
在一個實施例中,如圖3所示,還提供了一種nandflash使用壽命的計算系統,該系統包括:第一獲取模塊100,用於獲取nandflash的測試參數及nandflash的擦寫次數初始值。測試獲取模塊200,用於根據測試參數對nandflash進行測試,並獲得測試後的nandflash的擦寫次數當前值。第二獲取模塊300,用於根據擦寫次數初始值和擦寫次數當前值獲得每次測試nandflash時對應的擦寫次數淨增長值。分析計算模塊400,用於提取測試參數中的測試次序信息,對測試次序信息和擦寫次數淨增長值進行分析,得到二者之間的對應關係,並根據對應關係計算出所述nandflash的使用壽命。
本實施例中的nandflash使用壽命的計算系統,利用nandflash自身的固有特性並結合nandflash進行寫操作時的特性,通過模擬不同的操作場景,獲取nandflash測試之前的擦寫次數初始值和每次測試nandflash後的擦寫次數當前值,根據擦寫次數初始值和擦寫次數當前值得到每次測試nandflash時的擦寫次數淨增長值,並通過有限次測試的測試次序信息和擦寫次數淨增長值得到測試次序信息和擦寫次數淨增長值之間的對應關係,最後利用測試次序信息和擦寫次數淨增長值之間的對應關係計算出nandflash的使用壽命,從而克服傳統技術中難以對nandflash使用壽命進行估算的問題,且能夠實現對nandflash使用壽命的快速估算。
在一個實施例中,第二獲取模塊300包括:第一獲取單元310,用於獲取每次測試nandflash時nandflash中預設的各個數據塊對應的塊擦寫次數淨增長值。第二獲取單元320,用於根據塊擦寫次數淨增長值獲得每次測試nandflash時對應的擦寫次數淨增長值。
在一個實施例中,第一獲取單元320包括:排序子單元321,用於每次測試nandflash後,將nandflash中各個數據塊對應的塊擦寫次數淨增長值進行降序排序,得到排序後的塊擦寫次數淨增長值。獲取子單元322,用於由排序後的塊擦寫次數淨增長值中獲取排序在前預設數量的第一塊擦寫次數淨增長值。運算子單元323,用於對預設數量的第一塊擦寫次數淨增長值進行均值運算,得到每次測試nandflash時對應的擦寫次數淨增長值。
在一個實施例中,分析計算模塊400包括:第一計算單元410,用於由測試參數中提取測試次序信息,並根據測試次序信息和擦寫次數淨增長值計算出測試次序信息和擦寫次數淨增長值的擬合判定係數。判斷單元420,用於根據擬合判定係數判斷是否能夠得到測試次序信息和擦寫次數淨增長值之間的線性回歸方程;若是,則根據測試次序信息和擦寫次數淨增長值計算所述線性回歸方程的回歸係數估算值,並由回歸係數估算值求得線性回歸方程;若否,則根據測試nandflash時得到的擦寫次數淨增長值的實際測試值和估計值計算殘差,根據殘差判定離群點,並將離群點去除後,根據測試次序信息和擦寫次數淨增長值計算線性回歸方程的回歸係數估算值,由回歸係數估算值求得線性回歸方程。
在一個實施例中,分析計算模塊400還包括:第三獲取單元430,用於獲取nandflash的預設標稱值。第二計算單元440,用於利用預設標稱值以及線性回歸方程計算出nandflash的使用壽命。
由於此系統解決問題的原理與前述一種nandflash使用壽命的計算方法相似,因此該系統的實施可以參見前述方法的實施,重複之處不再贅述。
以上所述實施例的各技術特徵可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特徵所有可能的組合都進行描述,然而,只要這些技術特徵的組合不存在矛盾,都應當認為是本說明書記載的範圍。
以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並不能因此而理解為對發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬於本發明的保護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。