一種提高NANDFLASH片內執行代碼穩定性的裝置的製作方法
2023-10-22 10:34:56

本實用新型屬於涉及一種提高NANDFLASH片內執行代碼穩定性的裝置。
背景技術:
隨著技術和市場的發展,由於系統複雜度提高,程序代碼量和所需存儲的數據量越來越大,這就要求有更大的Flash空間來存放代碼和數據,另一方面,由於成本和集成度方面的原因,要求存儲體的尺寸越來越小。於是,支持XIP的Nor Flash存在的缺陷不斷被放大,而Nand Flash顯然成為更加優秀的選擇。
Nand Flash與硬碟驅動器類似,基於扇區(頁),適合於存儲連續的數據,如圖片、音頻或個人電腦數據。此外,跟硬碟一樣,Nand Flash存在壞的扇區,需要糾錯碼(ECC)來維持數據的完整性。Nand Flash每一頁有對應的空閒區,空閒區通常被用於ECC、耗損均衡(wear leveling)和其它軟體開銷功能。
目前,通過專利2006100526968公開的技術,已經可以實現Nand Flash的XIP,從而解決了Nor Flash存儲容量小、單元尺寸大,以及Nand Flash不支持XIP的問題。然而,在特殊的工作環境下,使用XIP技術仍然存在風險。
目前市場上存在的Nand Flash多為串行Flash,Flash和MCU之間通過板級電路連接。而線路上傳輸數據一般採用簡單的、無安全機制的通訊協議,例如SPI協議,因此數據的準確性並沒有得到保障,當採用XIP技術時,即使是一個位的錯誤,也可能導致整個系統的崩潰。
技術實現要素:
本實用新型提供了一種準確率高、抗幹擾能力強的提高NANDFLASH片內執行代碼穩定性的裝置。
本實用新型採用的技術方案是:
一種提高NANDFLASH片內執行代碼穩定性的裝置,包括Nand Flash、地址映射單元、Cache模塊、CPU,地址映射單元位於Nand Flash和Cache模塊之間,所述地址映射單元包括:
控制信息單元,用以產生Nand Flash所需的各種控制信號;
數據解析單元,用以將Nand Flash返回的數據解析為CPU所要求的寬度並傳輸給CPU,並加載進Cache模塊;
地址解析單元,用於將CPU傳來的線性地址解析為Nand Flash所需要的索引地址,其中,索引地址包括頁地址和頁內偏移地址,然後在控制信號的指示下分別將頁地址和頁內偏移地址送至Nand Flash;
控制信息單元通過控制總線連接Nand Flash,數據解析單元和地址解析單元通過地址數據復用總線連接Nand Flash,數據解析單元通過數據總線與Cache模塊連接,地址解析單元分別通過地址總線與CPU連接,其特徵在於:所述地址映射單元還包括:
硬體ECC單元,用以計算從Nand Flash讀回數據的ECC校驗值,並將計算結果和從Nand Flash中保存的ECC校驗值比較,根據校驗結果控制Cache控制器,將Cache模塊內的數據使能或無效;
硬體ECC單元連接在數據解析單元和Cache控制器之間。
本實用新型通過增加硬體ECC單元的方式提高MCU和Nand Flash之間數據通訊的可靠性,從而提高系統的抗幹擾能力。
本實用新型的Cache模塊和硬體ECC單元都是可配的,用於配置ECC的計算長度和Cache模塊一個Page的長度,以便於和不同廠商、型號的Nand Flash內部ECC計算長度匹配。
本實用新型的有益效果:
1、利用Nand Flash本身的ECC機制,不需要修改Nand Flash本身的實現,適用於現存的大多數Nand Flash。
2、採用硬體ECC單元計算,減少對系統效率的影響。
3、極大提高MCU和Nand Flash通訊的數據可靠性,增強了系統的可靠性。
4、增強了系統在強幹擾環境下工作的穩定性。
5、靈活可配的Cache模塊頁長和ECC計算長度,方便和不同的Nand Flash匹配。
附圖說明
圖1是本實用新型的結構示意圖。
圖2是本實用新型的使用流程示意圖。
具體實施方式
下面結合具體實施例來對本實用新型進行進一步說明,但並不將本實用新型局限於這些具體實施方式。本領域技術人員應該認識到,本實用新型涵蓋了權利要求書範圍內所可能包括的所有備選方案、改進方案和等效方案。
參照圖1,一種提高NANDFLASH片內執行代碼穩定性的裝置,包括Nand Flash、地址映射單元1、Cache模塊2、CPU,地址映射單元1位於Nand Flash和Cache模塊2之間,所述地址映射單元1包括:
控制信息單元11,用以產生Nand Flash所需的各種控制信號;
數據解析單元12,用以將Nand Flash返回的數據解析為CPU所要求的寬度並傳輸給CPU,並加載進Cache模塊2;
地址解析單元13,用於將CPU傳來的線性地址解析為Nand Flash所需要的索引地址,其中,索引地址包括頁地址和頁內偏移地址,然後在控制信號的指示下分別將頁地址和頁內偏移地址送至Nand Flash;
控制信息單元11通過控制總線連接Nand Flash,數據解析單元12和地址解析單元13通過地址數據復用總線連接Nand Flash,數據解析單元12通過數據總線與Cache模塊2連接,地址解析單元13分別通過地址總線與CPU連接,所述地址映射單元1還包括:
硬體ECC單元14,用以計算從Nand Flash讀回數據的ECC校驗值,並將計算結果和從Nand Flash中保存的ECC校驗值比較,根據校驗結果控制Cache控制器21,將Cache模塊2內的數據使能或無效;
硬體ECC單元14連接在數據解析單元12和Cache控制器21之間。
本實用新型通過增加硬體ECC單元14的方式提高MCU和Nand Flash之間數據通訊的可靠性,從而提高系統的抗幹擾能力。
本實用新型的Cache模塊2和硬體ECC單元14都是可配的,用於配置ECC的計算長度和Cache模塊一個Page的長度,以便於和不同廠商、型號的Nand Flash內部ECC計算長度匹配。
參見圖2,本實用新型僅包含重新加載Cache模塊數據時,對Nand Flash數據校驗的流程,不包含Cache模塊命中機制,具體流程如下:
1、當Cache模塊2需要重新加載時,啟動流程,通過Nand Flash接口和Nand Flash通訊。
2、通過發送命令獲取對應頁的數據,並加載到Cache模塊中。
3、同時通過硬體ECC單元14對獲取的數據進行ECC計算。
4、通過發送命令獲取對應頁的ECC值。
5、硬體ECC單元14計算結果和讀回的對應頁的ECC值比較。
6、如果不一致,則無效Cache模塊2並返回步驟2。
7、如果一致,則結束流程。
其中,由於讀回ECC值的過程也存在不可靠性,因此在和計算結果不一致的情況下,必須重新讀回,以保障準確性。同時,所有操作均以硬體形式完成,不需要用戶和代碼幹涉,提高易用性和效率。