控制閃存的寫操作的方法和閃存的控制器的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實(shí)施例涉及信息技術(shù)領(lǐng)域,并更具體地,涉及一種控制閃存的寫操作的 方法和閃存的控制器。
【背景技術(shù)】
[0002] 閃存是一種非易失性存儲(chǔ)器,能夠靠存儲(chǔ)元周圍的氧化層在一定時(shí)間內(nèi)保存表示 數(shù)據(jù)值的電荷。并且閃存的很多優(yōu)點(diǎn),比如隨機(jī)訪問速度快、低功耗等,使得閃存的應(yīng)用范 圍越來越廣,不僅廣泛應(yīng)用于各種嵌入式設(shè)備,還應(yīng)用于各種個(gè)人設(shè)備,如筆記本等。隨著 技術(shù)的不斷發(fā)展,閃存尺寸變得越來越小,并且密度越來越大,每個(gè)存儲(chǔ)元可以保存兩個(gè), 三個(gè)甚至四個(gè)比特。但是,閃存的性能卻成為了新的挑戰(zhàn)。
[0003] 現(xiàn)有技術(shù)采用閃存存儲(chǔ)塊中存儲(chǔ)頁的ECC(Error Correction Code,糾錯(cuò)碼)來和 可擦寫次數(shù)來確定寫操作速度,在閃存使用的早期,更加充分的利用了糾錯(cuò)碼的糾錯(cuò)能力, 一定程度上提高了閃存的性能。
[0004] 然而現(xiàn)有技術(shù)在進(jìn)行寫操作時(shí),對(duì)所有的閃存存儲(chǔ)塊均采用了默認(rèn)的可擦寫次 數(shù),由于存儲(chǔ)塊之間存在制程差異現(xiàn)象,存儲(chǔ)塊的實(shí)際可擦寫次數(shù)并不一定與默認(rèn)的可擦 寫次數(shù)相同,因此采用這種方法時(shí)存儲(chǔ)塊的性能仍然較低。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的實(shí)施例提供了一種控制閃存的寫操作的方法和閃存的控制器,能夠提高 存儲(chǔ)塊的性能。
[0006] 第一方面,提供了一種閃存的控制器,該閃存包括至少一個(gè)存儲(chǔ)塊,閃存的控制器 包括:獲取模塊,用于獲取寫操作速度表,寫操作速度表記錄有多個(gè)可擦寫次數(shù)范圍和多個(gè) 寫操作速度之間的一一對(duì)應(yīng)關(guān)系;第一確定模塊,用于確定目標(biāo)存儲(chǔ)塊的實(shí)際可擦寫次數(shù), 其中,目標(biāo)存儲(chǔ)塊的實(shí)際可擦寫次數(shù)與目標(biāo)存儲(chǔ)塊的默認(rèn)可擦寫次數(shù)相異,目標(biāo)存儲(chǔ)塊的 默認(rèn)可擦寫次數(shù)存儲(chǔ)在閃存中;第二確定模塊,用于根據(jù)實(shí)際可擦寫次數(shù)所在的可擦寫次 數(shù)范圍,查找寫操作速度表,以確定實(shí)際可擦寫次數(shù)所對(duì)應(yīng)的寫操作速度;控制模塊,用于 根據(jù)實(shí)際可擦寫次數(shù)所對(duì)應(yīng)的寫操作速度,控制針對(duì)目標(biāo)存儲(chǔ)塊的寫操作。
[0007] 結(jié)合第一方面,在第一方面的第一種可能實(shí)現(xiàn)的方式中,第一確定模塊具體用于: 根據(jù)寫操作速度表,確定目標(biāo)存儲(chǔ)塊的實(shí)際可擦寫次數(shù)。結(jié)合第一方面的第一種可能實(shí)現(xiàn) 的方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,第一確定模塊具體用于:從寫操作速度表 中,確定多個(gè)寫操作速度;基于多個(gè)寫操作速度,多次寫入測(cè)試數(shù)據(jù),其中,測(cè)試數(shù)據(jù)是每次 以多個(gè)寫操作速度中不同的寫操作速度寫入的;多次讀取測(cè)試數(shù)據(jù)以及測(cè)試數(shù)據(jù)的糾錯(cuò) 碼,以確定在讀取的測(cè)試數(shù)據(jù)為正確的情況下,寫入所讀取的正確的測(cè)試數(shù)據(jù)時(shí)采用的最 大的寫操作速度;根據(jù)最大的寫操作速度,確定實(shí)際可擦寫次數(shù)。
[0008] 結(jié)合第一方面的第二種可能實(shí)現(xiàn)的方式,在第一方面的第三種可能的實(shí)現(xiàn)方式 中,第一確定模塊具體用于:針對(duì)目標(biāo)存儲(chǔ)塊的每個(gè)存儲(chǔ)頁,多次讀取測(cè)試數(shù)據(jù)和測(cè)試數(shù)據(jù) 的糾錯(cuò)碼,以確定在讀取的測(cè)試數(shù)據(jù)為正確的情況下,寫入所讀取的正確的測(cè)試數(shù)據(jù)時(shí)采 用的最大的寫操作速度,其中,每個(gè)存儲(chǔ)頁對(duì)應(yīng)于每個(gè)最大的寫操作速度,確定所有的最大 的寫操作速度中的最小值;根據(jù)最小值對(duì)應(yīng)的可擦寫次數(shù)范圍確定實(shí)際可擦寫次數(shù)。
[0009] 結(jié)合第一方面的第三種可能實(shí)現(xiàn)的方式,在第一方面的第四種可能的實(shí)現(xiàn)方式 中,第一確定模塊具體用于:確定與最小值對(duì)應(yīng)的可擦寫次數(shù)范圍相鄰的可擦寫次數(shù)范圍; 將相鄰的可擦寫次數(shù)范圍的上界確定為實(shí)際可擦寫次數(shù)。
[0010] 結(jié)合第一方面、第一方面的第一種至第四種中的任一種可能實(shí)現(xiàn)的方式,在第一 方面的第五種可能的實(shí)現(xiàn)方式中,該閃存的控制器還包括:映射模塊,用于將目標(biāo)存儲(chǔ)塊映 射到實(shí)際可擦寫次數(shù)所在的可擦寫次數(shù)范圍;匹配模塊,用于將多個(gè)數(shù)據(jù)熱度級(jí)別和多個(gè) 可擦寫次數(shù)范圍匹配,使得多個(gè)數(shù)據(jù)熱度級(jí)別中的每個(gè)數(shù)據(jù)熱度級(jí)別對(duì)應(yīng)于多個(gè)可擦寫次 數(shù)范圍中的至少一個(gè)可擦寫次數(shù)范圍,其中,多個(gè)數(shù)據(jù)熱度級(jí)別包括第一數(shù)據(jù)熱度級(jí)別和 第二數(shù)據(jù)熱度級(jí)別,當(dāng)?shù)谝粩?shù)據(jù)熱度級(jí)別大于第二數(shù)據(jù)熱度級(jí)別時(shí),與第一數(shù)據(jù)熱度級(jí)別 對(duì)應(yīng)的可擦寫次數(shù)范圍的下界不小于與第二數(shù)據(jù)熱度級(jí)別對(duì)應(yīng)的可擦寫次數(shù)范圍的下界; 控制模塊具體用于:從多個(gè)數(shù)據(jù)熱度級(jí)別中,確定目標(biāo)數(shù)據(jù)的數(shù)據(jù)熱度級(jí)別;根據(jù)與目標(biāo) 數(shù)據(jù)的數(shù)據(jù)熱度級(jí)匹配的可擦寫次數(shù)范圍,確定使用目標(biāo)存儲(chǔ)塊存儲(chǔ)目標(biāo)數(shù)據(jù)。
[0011] 結(jié)合第一方面的第五種可能實(shí)現(xiàn)的方式,在第一方面的第六種可能的實(shí)現(xiàn)方式 中,匹配模塊具體用于:根據(jù)映射到每個(gè)可擦寫次數(shù)范圍的所有存儲(chǔ)塊的數(shù)目,將多個(gè)數(shù)據(jù) 熱度級(jí)別和多個(gè)可擦寫次數(shù)范圍匹配。
[0012] 結(jié)合第一方面的第六種可能實(shí)現(xiàn)的方式,在第一方面的第七種可能的實(shí)現(xiàn)方式 中,多個(gè)數(shù)據(jù)熱度級(jí)別是根據(jù)數(shù)據(jù)大小確定的。
[0013] 結(jié)合第一方面的第七種可能實(shí)現(xiàn)的方式,在第一方面的第八種可能的實(shí)現(xiàn)方式 中,匹配模塊具體用于:根據(jù)公式1和公式2將多個(gè)數(shù)據(jù)熱度級(jí)別和多個(gè)可擦寫次數(shù)范圍匹 配,公式1為:
[0017] 其中,N為數(shù)據(jù)熱度級(jí)別和多個(gè)可擦寫次數(shù)范圍的個(gè)數(shù);Sizerii表示具有第k個(gè)數(shù) 據(jù)熱度級(jí)別的數(shù)據(jù)的大??;n A為第k個(gè)數(shù)據(jù)熱度級(jí)別的數(shù)據(jù)的個(gè)數(shù);ngk為映射到第k個(gè)可 擦寫次數(shù)范圍的所有存儲(chǔ)塊的個(gè)數(shù);在寫操作速度表中,滿足公式1的j。的最大值為第i個(gè) 數(shù)據(jù)熱度級(jí)別所對(duì)應(yīng)的至少一個(gè)可擦寫次數(shù)范圍的序數(shù)的上界,滿足公式2的j f的最大值 為第i個(gè)數(shù)據(jù)熱度級(jí)別所對(duì)應(yīng)的至少一個(gè)可擦寫次數(shù)范圍的序數(shù)的下界。
[0018] 第二方面,提供了一種方法,該方法包括:獲取寫操作速度表,寫操作速度表記錄 有多個(gè)可擦寫次數(shù)范圍和多個(gè)寫操作速度之間的一一對(duì)應(yīng)關(guān)系;確定目標(biāo)存儲(chǔ)塊的實(shí)際可 擦寫次數(shù),其中,目標(biāo)存儲(chǔ)塊的實(shí)際可擦寫次數(shù)與目標(biāo)存儲(chǔ)塊的默認(rèn)可擦寫次數(shù)相異,目標(biāo) 存儲(chǔ)塊的默認(rèn)可擦寫次數(shù)存儲(chǔ)在閃存中;根據(jù)實(shí)際可擦寫次數(shù)所在的可擦寫次數(shù)范圍,查 找寫操作速度表,以確定實(shí)際可擦寫次數(shù)所對(duì)應(yīng)的寫操作速度;根據(jù)實(shí)際可擦寫次數(shù)所對(duì) 應(yīng)的寫操作速度,控制針對(duì)目標(biāo)存儲(chǔ)塊的寫操作。
[0019] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,確定目標(biāo)存儲(chǔ)塊的實(shí)際 可擦寫次數(shù),包括:根據(jù)寫操作速度表,確定目標(biāo)存儲(chǔ)塊的實(shí)際可擦寫次數(shù)。
[0020] 結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式 中,根據(jù)寫操作速度表,確定目標(biāo)存儲(chǔ)塊的實(shí)際可擦寫次數(shù),包括:從寫操作速度表中,確定 多個(gè)寫操作速度;基于多個(gè)寫操作速度,多次寫入測(cè)試數(shù)據(jù),其中,測(cè)試數(shù)據(jù)是每次以多個(gè) 寫操作速度中不同的寫操作速度寫入的;多次讀取測(cè)試數(shù)據(jù)以及測(cè)試數(shù)據(jù)的糾錯(cuò)碼,以確 定在讀取的測(cè)試數(shù)據(jù)為正確的情況下,寫入所讀取的正確的測(cè)試數(shù)據(jù)時(shí)采用的最大的寫操 作速度;根據(jù)最大的寫操作速度,確定實(shí)際可擦寫次數(shù)。
[0021] 結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式 中,多次讀取測(cè)試數(shù)據(jù)以及測(cè)試數(shù)據(jù)的糾錯(cuò)碼,包括:針對(duì)目標(biāo)存儲(chǔ)塊的每個(gè)存儲(chǔ)頁,多次 讀取測(cè)試數(shù)據(jù)和測(cè)試數(shù)據(jù)的糾錯(cuò)碼,以確定在讀取的測(cè)試數(shù)據(jù)為正確的情況下,寫入所讀 取的正確的測(cè)試數(shù)據(jù)時(shí)采用的最大的寫操作速度,其中,每個(gè)存儲(chǔ)頁對(duì)應(yīng)于每個(gè)最大的寫 操作速度,根據(jù)最大的寫操作速度,確定實(shí)際可擦寫次數(shù),包括:確定所有的最大的寫操作 速度中的最小值;根據(jù)最小值對(duì)應(yīng)的可擦寫次數(shù)范圍確定實(shí)際可擦寫次數(shù)。
[0022] 結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式 中,根據(jù)最小值對(duì)應(yīng)的可擦寫次數(shù)范圍確定實(shí)際可擦寫次數(shù),包括:確定與最小值對(duì)應(yīng)的可 擦寫次數(shù)范圍相鄰的可擦寫次數(shù)范圍;將相鄰的可擦寫次數(shù)范圍的上界確定為實(shí)際可擦寫 次數(shù)。
[0023] 結(jié)合第二方面、第二方面的第一種至第四種中的任一種可能實(shí)現(xiàn)的方式,在第二 方面的第五種可能的實(shí)現(xiàn)方式中,該方法還包括:將目標(biāo)存儲(chǔ)塊映射到實(shí)際可擦寫次數(shù)所 在的可擦寫次數(shù)范圍;將多個(gè)數(shù)據(jù)熱度級(jí)別和多個(gè)可擦寫次數(shù)范圍匹配,使得多個(gè)數(shù)據(jù)熱 度級(jí)別中的每個(gè)數(shù)據(jù)熱度級(jí)別對(duì)應(yīng)于多個(gè)可擦寫次數(shù)范圍中的至少一個(gè)可擦寫次數(shù)范圍, 其中,多個(gè)數(shù)據(jù)熱度級(jí)別包括第一數(shù)據(jù)熱度級(jí)別和第二數(shù)據(jù)熱度級(jí)別,當(dāng)?shù)谝粩?shù)據(jù)熱度級(jí) 別大于第二數(shù)據(jù)熱度級(jí)別時(shí),與第一數(shù)據(jù)熱度級(jí)別對(duì)應(yīng)的可擦寫次數(shù)范圍的下界不小于與 第二數(shù)據(jù)熱度級(jí)別對(duì)應(yīng)的可擦寫次數(shù)范圍的下界;根據(jù)實(shí)際可擦寫次數(shù)所對(duì)應(yīng)的寫操作速 度,控制針對(duì)目標(biāo)存儲(chǔ)塊的寫操作,包括:從多個(gè)數(shù)據(jù)熱度級(jí)別中,確定目標(biāo)數(shù)據(jù)的數(shù)據(jù)熱 度級(jí)別;根據(jù)與目標(biāo)數(shù)據(jù)的數(shù)據(jù)熱度級(jí)匹配的可擦寫次數(shù)范圍,確定使用目標(biāo)存儲(chǔ)塊存儲(chǔ) 目標(biāo)數(shù)據(jù)。
[0024] 結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第二方面的第六種可能的實(shí)現(xiàn)方式 中,將多個(gè)數(shù)據(jù)熱度級(jí)別和多個(gè)可擦寫次數(shù)范圍匹配,包括:根據(jù)映射到每個(gè)可擦寫次數(shù)范 圍的所有存儲(chǔ)塊的數(shù)目,將多個(gè)數(shù)據(jù)熱度級(jí)別和多個(gè)可擦寫次數(shù)范圍匹配。
[0025] 結(jié)合第二方面的第六種可能的實(shí)現(xiàn)方式,在第二方面的第七種可能的實(shí)現(xiàn)方式 中,多個(gè)數(shù)據(jù)熱度級(jí)別是根據(jù)數(shù)據(jù)大小確定的。
[0026] 結(jié)合第二方面的第七種可能的實(shí)現(xiàn)方式,在第二方面的第八種可能的實(shí)現(xiàn)方式 中,根據(jù)映射到每個(gè)可擦寫次數(shù)范圍的所有存儲(chǔ)塊的數(shù)目,將多個(gè)數(shù)據(jù)熱度級(jí)別和多個(gè)可 擦寫次數(shù)范圍匹配,包括:根據(jù)公式1和公式2將多個(gè)數(shù)據(jù)熱度級(jí)別和多個(gè)可擦寫次數(shù)范圍 匹配,公式1為:
[0028] 公式2為:
[0030] 其中,N為數(shù)據(jù)熱度級(jí)別和多個(gè)可擦寫次數(shù)范圍的個(gè)數(shù);Sizerii表示具有第k個(gè)數(shù) 據(jù)熱度級(jí)別的數(shù)據(jù)的大?。籲 A為第k個(gè)數(shù)據(jù)熱度級(jí)別的數(shù)據(jù)的個(gè)數(shù);ngk為映射到第k個(gè)可 擦寫次數(shù)范圍的所有存儲(chǔ)塊的個(gè)數(shù);在寫操作速度表中,滿足公式1的j。的最大值為