本發(fā)明實施例涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,尤其涉及一種基于nandflash的數(shù)據(jù)讀取裝置和方法。
背景技術(shù):
半導(dǎo)體存儲器包括易失性存儲器和非易失性存儲器。nandflash是flash內(nèi)存,即閃存的一種,屬于非易失性存儲設(shè)備。
在現(xiàn)有技術(shù)中,讀取nandflash中存儲數(shù)據(jù)的方法如下:當(dāng)發(fā)起某次讀取數(shù)據(jù)命令后,從存儲單元讀出的數(shù)據(jù)送入錯誤檢查和糾正(errorcorrectingcode,ecc)模塊,ecc模塊會對讀取的數(shù)據(jù)進(jìn)行判斷。如果讀取的數(shù)據(jù)的錯誤量超出既定量,ecc模塊會對讀取的數(shù)據(jù)進(jìn)行矯正操作。如果矯正后的數(shù)據(jù)的錯誤量依然超出既定量,則輸出此次讀取數(shù)據(jù)失敗的指示;如果讀取的數(shù)據(jù)的錯誤量在既定量范圍內(nèi),則將讀取到的數(shù)據(jù)作為該次讀取結(jié)果的結(jié)果并輸出。
上述讀取nandflash中存儲數(shù)據(jù)的方法不可靠,經(jīng)常出現(xiàn)讀取失敗的情況。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種基于nandflash的數(shù)據(jù)讀取裝置和方法,以優(yōu)化數(shù)據(jù)讀取過程,提高數(shù)據(jù)讀取的成功率。
一方面,本發(fā)明實施例提供了一種基于nandflash的數(shù)據(jù)讀取裝置,包括:
存儲單元,用于存儲數(shù)據(jù);
錯誤檢測和糾正單元,用于對根據(jù)讀數(shù)據(jù)操作指令從所述存儲單元讀取的數(shù)據(jù)進(jìn)行判斷和矯正,并根據(jù)判斷和矯正結(jié)果產(chǎn)生讀取成功狀態(tài)信號或讀取失敗狀態(tài)信號,發(fā)送所述讀取失敗狀態(tài)信號至智能檢測單元,發(fā)送讀取成功狀態(tài)信號和讀取的數(shù)據(jù)至第第一數(shù)據(jù)選擇單元;
智能檢測單元,用于根據(jù)所述讀取失敗狀態(tài)信號發(fā)送新的讀數(shù)據(jù)操作指令至所述存儲單元,以再次觸發(fā)數(shù)據(jù)讀取操作;
第一數(shù)據(jù)選擇單元,用于根據(jù)所述讀取成功狀態(tài)信號,輸出所述錯誤檢測和糾正單元發(fā)送的所述讀取的數(shù)據(jù)。
另一方面,本發(fā)明實施例還提供了一種基于nandflash的數(shù)據(jù)讀取方法,包括:
當(dāng)接收到讀數(shù)據(jù)操作指令時,使存儲單元中的數(shù)據(jù)處于可讀狀態(tài);
錯誤檢測和糾正單元讀取存儲單元中的數(shù)據(jù),對所述讀取的數(shù)據(jù)進(jìn)行判斷和矯正,并根據(jù)判斷和矯正結(jié)果產(chǎn)生讀取成功狀態(tài)信號或讀取失敗狀態(tài)信號;
智能檢測單元根據(jù)所述讀取失敗狀態(tài)信號發(fā)送新的讀數(shù)據(jù)操作指令以再次觸發(fā)數(shù)據(jù)讀取操作;
第一數(shù)據(jù)選擇單元根據(jù)所述讀取成功狀態(tài)信號,輸出所述讀取的數(shù)據(jù)。
本發(fā)明實施例提供的技術(shù)方案,可以根據(jù)錯誤檢測和糾正單元發(fā)出的讀取失敗狀態(tài)信號重新發(fā)送新得讀數(shù)據(jù)操作指令至存儲單元,以再次觸發(fā)數(shù)據(jù)讀取操作。由于nandflash中的錯誤位多屬據(jù)臨界錯誤,在重復(fù)讀數(shù)據(jù)后大多數(shù)能夠正確讀出數(shù)據(jù),因此可以大大提高nandflash使用過程中的可靠性,提高數(shù)據(jù)讀取的成功率,并且減小主芯片對于數(shù)據(jù)讀取裝置的檢查次數(shù),降低負(fù)載和功耗。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例一提供的一種基于nandflash的數(shù)據(jù)讀取裝置的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實施例二提供的一種基于nandflash的數(shù)據(jù)讀取裝置的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例三提供的一種基于nandflash的數(shù)據(jù)讀取方法的流程示意圖;
圖4是本發(fā)明實施例四提供的一種基于nandflash的數(shù)據(jù)讀取方法的流程示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,以下將參照本發(fā)明實施例中的附圖,通過實施方式清楚、完整地描述本發(fā)明的技術(shù)方案,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
實施例一
圖1是本發(fā)明實施例一提供的一種基于nandflash的數(shù)據(jù)讀取裝置的結(jié)構(gòu)示意圖。參見圖1,圖中箭頭可表示傳輸數(shù)據(jù)或者信號的流向,該裝置包括:
存儲單元10,用于存儲數(shù)據(jù);
錯誤檢測和糾正單元20,用于對根據(jù)讀數(shù)據(jù)操作指令從所述存儲單元10讀取的數(shù)據(jù)進(jìn)行判斷和矯正,并根據(jù)判斷和矯正結(jié)果產(chǎn)生讀取成功狀態(tài)信號或讀取失敗狀態(tài)信號,發(fā)送所述讀取失敗狀態(tài)信號至智能檢測單元30,發(fā)送讀取成功狀態(tài)信號和讀取的數(shù)據(jù)至第一數(shù)據(jù)選擇單元40;
在讀取存儲單元10中存儲的數(shù)據(jù)時,先向存儲單元10發(fā)送讀數(shù)據(jù)操作指令,數(shù)據(jù)操作指令包括需要讀取的數(shù)據(jù)的,錯誤檢測和糾正單元20即可讀取到相應(yīng)的數(shù)據(jù),然后對讀取的數(shù)據(jù)進(jìn)行判斷和矯正。其中,錯誤檢測和糾正單元20具體可為ecc(errorcorrectingcode)模塊,對讀取到的數(shù)據(jù)進(jìn)行檢測判斷和矯正的具體過程為現(xiàn)有技術(shù),可參考相關(guān)技術(shù)。當(dāng)錯誤檢測和糾正單元20產(chǎn)生讀取失敗信號時,說明此次讀取的數(shù)據(jù)不滿足條件;當(dāng)產(chǎn)生讀取成功狀態(tài)信號時,說明此次讀取的數(shù)據(jù)滿足相應(yīng)的條件,可將讀取的數(shù)據(jù)輸出。
智能檢測單元30,用于根據(jù)所述讀取失敗狀態(tài)信號發(fā)送新的讀數(shù)據(jù)操作指令至所述存儲單元10,以再次觸發(fā)數(shù)據(jù)讀取操作;
當(dāng)智能檢測單元30接收到讀取失敗狀態(tài)信號時,可以發(fā)送新的讀數(shù)據(jù)操作指令至存儲單元10,以再次觸發(fā)數(shù)據(jù)讀取操作,可以提高數(shù)據(jù)讀取的成功率。
其中,所述智能檢測單元30還用于:根據(jù)所述讀取失敗狀態(tài)信號發(fā)送參數(shù)調(diào)整指令至所述存儲單元10,以調(diào)整讀取所述存儲單元10時的數(shù)據(jù)偏移系數(shù)和溫度偏移系數(shù)。
當(dāng)智能檢測單元30發(fā)送新的讀數(shù)據(jù)操作指令至所述存儲單元10,以再次觸發(fā)數(shù)據(jù)讀取操作時,可以發(fā)送參數(shù)調(diào)整指令至所述存儲單元10,以調(diào)整讀取所述存儲單元10時的數(shù)據(jù)偏移系數(shù)和溫度偏移系數(shù),提高數(shù)據(jù)讀取的成功率。
第一數(shù)據(jù)選擇單元40,用于根據(jù)所述讀取成功狀態(tài)信號,輸出所述錯誤檢測和糾正單元20發(fā)送的所述讀取的數(shù)據(jù)。
若錯誤檢測和糾正單元20產(chǎn)生讀取成功狀態(tài)信號,說明此次數(shù)據(jù)讀取成功,可以將錯誤檢測和糾正單元20發(fā)送的讀取的數(shù)據(jù)作為此次讀取的數(shù)據(jù)進(jìn)行輸出。
本實施例提供的技術(shù)方案,可以根據(jù)錯誤檢測和糾正單元發(fā)出的讀取失敗狀態(tài)信號重新發(fā)送新得讀數(shù)據(jù)操作指令至存儲單元,以再次觸發(fā)數(shù)據(jù)讀取操作。由于nandflash中的錯誤位多屬據(jù)臨界錯誤,在重復(fù)讀數(shù)據(jù)后大多數(shù)能夠正確讀出數(shù)據(jù),因此可以大大提高nandflash使用過程中的可靠性,提高數(shù)據(jù)讀取的成功率,并且減小主芯片對于數(shù)據(jù)讀取裝置的檢查次數(shù),降低負(fù)載和功耗。
實施例二
圖2是本發(fā)明實施例二提供的一種基于nandflash的數(shù)據(jù)讀取裝置的結(jié)構(gòu)示意圖,本實施例是在實施例一的基礎(chǔ)上進(jìn)行了優(yōu)化。
在本實施例中,所述錯誤檢測和糾正單元20,還用于發(fā)送所述讀取失敗狀態(tài)信號至第二數(shù)據(jù)選擇單元50;
所述智能檢測單元30,具體用于根據(jù)接收到的當(dāng)前讀取失敗狀態(tài)信號判斷是否滿足預(yù)設(shè)截止條件,若是,則產(chǎn)生截止控制信號,發(fā)送至第一數(shù)據(jù)選擇單元40和第二數(shù)據(jù)選擇單元50,若否,則根據(jù)所述讀取失敗狀態(tài)信號發(fā)送新的讀數(shù)據(jù)操作指令至所述存儲單元10,以再次觸發(fā)數(shù)據(jù)讀取操作;
其中,所述預(yù)設(shè)截止條件為接收到的讀取失敗狀態(tài)信號的次數(shù)達(dá)到預(yù)設(shè)次數(shù)。
在本實施例的另一種實施例方式中,也可以將預(yù)設(shè)次數(shù)設(shè)置至無窮大,即當(dāng)智能檢測單元30接收到當(dāng)前讀取失敗狀態(tài)信號時,發(fā)送新的讀數(shù)據(jù)操作指令至所述存儲單元10,以再次觸發(fā)數(shù)據(jù)讀取操作。
所述第二數(shù)據(jù)選擇單元50,用于根據(jù)所述截止控制信號輸出讀取失敗狀態(tài)信號;
所述第一數(shù)據(jù)選擇單元40,還用于根據(jù)所述截止控制信號,輸出所述錯誤檢測和糾正單元20當(dāng)前發(fā)送的讀取的數(shù)據(jù)。
若智能檢測單元30產(chǎn)生截止控制信號,說明經(jīng)過預(yù)設(shè)次數(shù)的讀取,讀取的數(shù)據(jù)仍不滿足錯誤檢測和糾正單元20的判斷和矯正條件,可以將錯誤檢測和糾正單元20最后一次輸出的數(shù)據(jù)作為最終的讀取數(shù)據(jù)輸出,并輸出讀取失敗狀態(tài)信號。
進(jìn)一步的,參見圖2,所述錯誤檢測和糾正單元20,包括:
數(shù)據(jù)錯誤量判斷子單元201,用于判斷所述讀取的數(shù)據(jù)的錯誤量是否大于設(shè)定閾量;
在數(shù)據(jù)存儲的時候,會保存有存儲數(shù)據(jù)的校驗數(shù)據(jù),例如奇偶校驗數(shù)據(jù)。在讀取存儲數(shù)據(jù)的時候,數(shù)據(jù)錯誤量判斷子單元201根據(jù)校驗數(shù)據(jù)判斷讀取的數(shù)據(jù)的錯誤量是否大于設(shè)定閾量。
數(shù)據(jù)矯正子單元202,用于若所述讀取的數(shù)據(jù)的錯誤量大于所述設(shè)定閾量,對所述讀取的數(shù)據(jù)進(jìn)行矯正;
第一信號控制子單元203,用于若所述讀取的數(shù)據(jù)的錯誤量不大于所述設(shè)定閾量,產(chǎn)生所述讀取成功狀態(tài)信號;
第二信號控制子單元204,用于若所述矯正后的數(shù)據(jù)的錯誤量大于所述設(shè)定閾量,產(chǎn)生所述讀取失敗狀態(tài)信號;
若所述矯正后的數(shù)據(jù)的錯誤量不大于所述設(shè)定閾量,產(chǎn)生所述讀取成功狀態(tài)信號;
數(shù)據(jù)輸出子單元205,用于輸出所述讀取的數(shù)據(jù)至所述第一數(shù)據(jù)選擇單元40。
本實施例提供的技術(shù)方案,智能檢測單元根據(jù)接收到的當(dāng)前讀取失敗狀態(tài)信號判斷數(shù)據(jù)讀取失敗的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),再次觸發(fā)數(shù)據(jù)讀取操作,并將讀取失敗狀態(tài)信號和讀取的數(shù)據(jù)輸出,方便外部讀取數(shù)據(jù)的程序根據(jù)輸出的狀態(tài)信號和數(shù)據(jù)使用輸出的數(shù)據(jù),可以提高nandflash使用過程中的可靠性,并且減小主芯片對于數(shù)據(jù)讀取裝置的檢查次數(shù),降低負(fù)載和功耗。
實施例三
圖3是本發(fā)明實施例三提供的一種基于nandflash的數(shù)據(jù)讀取方法的流程示意圖。該方法適用于需要從nandflash存儲介質(zhì)中讀取存儲的數(shù)據(jù)的情況,可由配置于上述實施例一或?qū)嵤├械臄?shù)據(jù)讀取裝置來執(zhí)行,所述裝置可由軟件和/或硬件實現(xiàn)。參見圖3,本實施例提供的基于nandflash的數(shù)據(jù)讀取方法具體包括:
s310、當(dāng)接收到讀數(shù)據(jù)操作指令時,使存儲單元中的數(shù)據(jù)處于可讀狀態(tài);
s320、錯誤檢測和糾正單元讀取存儲單元中的數(shù)據(jù),對所述讀取的數(shù)據(jù)進(jìn)行判斷和矯正,并根據(jù)判斷和矯正結(jié)果產(chǎn)生讀取成功狀態(tài)信號或讀取失敗狀態(tài)信號;
s330、智能檢測單元根據(jù)所述讀取失敗狀態(tài)信號發(fā)送新的讀數(shù)據(jù)操作指令以再次觸發(fā)數(shù)據(jù)讀取操作;
s340、第一數(shù)據(jù)選擇單元根據(jù)所述讀取成功狀態(tài)信號,輸出所述讀取的數(shù)據(jù)。
進(jìn)一步的,所述智能檢測單元根據(jù)所述讀取失敗狀態(tài)信號發(fā)送新的讀數(shù)據(jù)操作指令以再次觸發(fā)數(shù)據(jù)讀取操作,包括:
根據(jù)當(dāng)前讀取失敗狀態(tài)信號判斷是否滿足預(yù)設(shè)截止條件,若是,則產(chǎn)生截止控制信號,若否,則根據(jù)所述讀取失敗狀態(tài)信號發(fā)送新的讀數(shù)據(jù)操作,以再次觸發(fā)數(shù)據(jù)讀取操作;
第二數(shù)據(jù)選擇單元根據(jù)所述截止控制信號,輸出讀取失敗狀態(tài)信號;
第一數(shù)據(jù)選擇單元根據(jù)所述截止控制信號,輸出當(dāng)前讀取的數(shù)據(jù)。
其中,所述預(yù)設(shè)截止條件為產(chǎn)生的讀取失敗狀態(tài)信號的次數(shù)達(dá)到預(yù)設(shè)次數(shù)。
進(jìn)一步的,在所述智能檢測單元根據(jù)所述讀取失敗狀態(tài)信號發(fā)送新的讀數(shù)據(jù)操作指令以再次觸發(fā)數(shù)據(jù)讀取操作之前,還包括:
智能檢測單元根據(jù)所述讀取失敗狀態(tài)信號發(fā)送參數(shù)調(diào)整指令至所述存儲單元,以調(diào)整讀取所述存儲單元時的數(shù)據(jù)偏移系數(shù)和溫度偏移系數(shù)。
進(jìn)一步的,所述錯誤檢測和糾正單元讀取存儲單元中的數(shù)據(jù),對所述讀取的數(shù)據(jù)進(jìn)行判斷和矯正,并根據(jù)判斷和矯正結(jié)果產(chǎn)生讀取成功狀態(tài)信號或讀取失敗狀態(tài)信號,包括:
判斷所述讀取的數(shù)據(jù)的錯誤量是否大于設(shè)定閾量;
若所述讀取的數(shù)據(jù)的錯誤量大于所述設(shè)定閾量,對所述讀取的數(shù)據(jù)進(jìn)行矯正;
若所述讀取的數(shù)據(jù)的錯誤量不大于所述設(shè)定閾量,產(chǎn)生所述讀取成功狀態(tài)信號;
若所述矯正后的數(shù)據(jù)的錯誤量大于所述設(shè)定閾量,產(chǎn)生所述讀取失敗狀態(tài)信號。
本實施例提供的技術(shù)方案,可以提高nandflash使用過程中的可靠性,,可以提高讀取數(shù)據(jù)的成功率。
實施例四
圖4是本發(fā)明實施例四提供的一種于nandflash的數(shù)據(jù)讀取方法的流程示意圖。所述方法是在接收到外部讀數(shù)據(jù)操作指令后順序執(zhí)行,參見圖4,所述方法包括:
s410、使存儲單元中的數(shù)據(jù)處于可讀狀態(tài);
s420、讀取存儲單元中的數(shù)據(jù);
s430、判斷讀取的數(shù)據(jù)的錯誤量是否大于設(shè)定閾量,若否,跳轉(zhuǎn)至s490;
s440、對所述讀取的數(shù)據(jù)進(jìn)行矯正;
s450、判斷矯正后的數(shù)據(jù)的錯誤量是否大于設(shè)定閾量,若否,跳轉(zhuǎn)至s490;
s460、產(chǎn)生讀取失敗狀態(tài)信號;
s470、判斷產(chǎn)生的讀取失敗的狀態(tài)信號的次數(shù)是否達(dá)到預(yù)設(shè)次數(shù),若否,跳轉(zhuǎn)至s410;
s480、輸出讀取失敗狀態(tài)信號;
s490、輸出當(dāng)前讀取的數(shù)據(jù)。
注意,上述僅為本發(fā)明的較佳實施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實施例對本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。