Nand快閃記憶體的映射表管理方法及其系統與流程
2023-11-12 01:42:25 2

本發明涉及存儲技術領域,尤其涉及一種nand快閃記憶體的映射表管理方法及其系統。
背景技術:
nand快閃記憶體由於其體積小、質量輕、抗震性強、噪聲小、耐高溫和低功耗等優點,已經廣泛地應用在常見的電子產品中。nand快閃記憶體中的ftl(flashtranslationlayer,快閃記憶體轉換層)是一種與作業系統間對話的介質,由於存在ftl,因此作業系統可將快閃記憶體等產品作為一個磁碟驅動器,在快閃記憶體等產品上建立多個虛擬的數據塊或者扇區用以存儲及管理數據。
目前,由於傳統的單層或者雙層映射表太大,而電子產品的單晶片的內存大小有限,所以有必要減小映射表在單晶片的內存中所佔的空間。
技術實現要素:
本發明所要解決的技術問題是:提供一種nand快閃記憶體的映射表管理方法及其系統,可以減少佔用電子產品的單晶片的內存空間。
為了解決上述技術問題,本發明採用的技術方案為:
一種nand快閃記憶體的映射表管理方法,包括:
當將數據寫入nand快閃記憶體時,建立至少一個的一級映射表、二級映射表和三級映射表,所述一級映射表對應至少一個的所述二級映射表的存放位置,所述二級映射表對應至少一個的所述三級映射表的存放位置,所述三級映射表對應所述數據在nand快閃記憶體上的實際位置;
判斷所述一級映射表、二級映射表和三級映射表的個數是否超過預設個數;
若是,則將預設個數的一級映射表、二級映射表和三級映射表存放至單晶片的內存中,將未存放在單晶片的內存中的一級映射表、二級映射表和三級映射表存放至nand快閃記憶體中。
本發明採用的另一技術方案為:
一種nand快閃記憶體的映射表管理系統,包括:
建立模塊,用於當將數據寫入nand快閃記憶體時,建立至少一個的一級映射表、二級映射表和三級映射表,所述一級映射表對應至少一個的所述二級映射表的存放位置,所述二級映射表對應至少一個的所述三級映射表的存放位置,所述三級映射表對應所述數據在nand快閃記憶體上的實際位置;
判斷模塊,用於判斷所述一級映射表、二級映射表和三級映射表的個數是否超過預設個數;
存放模塊,用於若是,則將預設個數的一級映射表、二級映射表和三級映射表存放至單晶片的內存中,將未存放在單晶片的內存中的一級映射表、二級映射表和三級映射表存放至nand快閃記憶體中。
本發明的有益效果在於:當將數據寫入nand快閃記憶體時,建立具有三級映射關係的映射表,並且只將一定個數的一級映射表、二級映射表和三級映射表存放在單晶片的內存中,其餘的則存放在nand快閃記憶體中,可以減少映射表在單晶片的內存中的佔用空間,降低單晶片的製作成本,並且本發明採用三級映射的方式,可以提高查詢效率。
附圖說明
圖1為本發明的nand快閃記憶體的映射表管理方法的流程圖;
圖2為本發明的nand快閃記憶體的映射表管理系統的示意圖。
標號說明:
1、建立模塊;2、判斷模塊;3、存放模塊。
具體實施方式
為詳細說明本發明的技術內容、所實現目的及效果,以下結合實施方式並配合附圖予以說明。
本發明最關鍵的構思在於:只將一定個數的一級映射表、二級映射表和三級映射表存放在單晶片的內存中,其餘的則存放在nand快閃記憶體中,可以減少映射表在單晶片的內存中的佔用空間,降低單晶片的製作成本。
請參照圖1,一種nand快閃記憶體的映射表管理方法,包括:
當將數據寫入nand快閃記憶體時,建立至少一個的一級映射表、二級映射表和三級映射表,所述一級映射表對應至少一個的所述二級映射表的存放位置,所述二級映射表對應至少一個的所述三級映射表的存放位置,所述三級映射表對應所述數據在nand快閃記憶體上的實際位置;
判斷所述一級映射表、二級映射表和三級映射表的個數是否超過預設個數;
若是,則將預設個數的一級映射表、二級映射表和三級映射表存放至單晶片的內存中,將未存放在單晶片的內存中的一級映射表、二級映射表和三級映射表存放至nand快閃記憶體中。
從上述描述可知,本發明的有益效果在於:當將數據寫入nand快閃記憶體時,建立具有三級映射關係的映射表,並且只將一定個數的一級映射表、二級映射表和三級映射表存放在單晶片的內存中,其餘的則存放在nand快閃記憶體中,可以減少映射表在單晶片的內存中的佔用空間,降低單晶片的製作成本,並且本發明採用三級映射的方式,可以提高查詢效率。存放在單晶片的內存中的映射表的數目可以根據內存大小進行設置,例如可以存放兩個一級映射表,兩個二級映射表和十六個三級映射表。
進一步的,當需要建立新的三級映射表,並且單晶片的內存中的三級映射表的個數達到預設個數時,將訪問次數最少的三級映射表存放至nand快閃記憶體中,並同步更新對應的二級映射表。
由上述描述可知,可以根據需要將訪問次數最少的,即將最不常用的三級映射表存放至nand快閃記憶體中,對存放在單晶片的內存中的映射表進行實時調整,可以提高查詢效率。
進一步的,當需要建立新的二級映射表,並且單晶片的內存中的二級映射表的個數達到預設個數時,將訪問次數最少的二級映射表存放至nand快閃記憶體中,並同步更新對應的一級映射表。
由上述描述可知,可以將使用較少的二級映射表存至nand快閃記憶體中,對二級映射表進行實時調整。
進一步的,當存放於nand快閃記憶體上的一三級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的三級映射表存放至nand快閃記憶體中,並將所述一三級映射表存放至單晶片的內存中,同步更新對應的二級映射表。
進一步的,當存放於nand快閃記憶體上的一二級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的二級映射表存放至nand快閃記憶體中,並將所述一二級映射表存放至單晶片的內存中,同步更新對應的一級映射表。
進一步的,當存放於nand快閃記憶體上的一一級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的一級映射表存放至nand快閃記憶體中,並將所述一一級映射表存放至單晶片的內存中。
由上述描述可知,當nand快閃記憶體上的映射表訪問次數較多時,將其與單晶片的內存中訪問次數最少的映射表互換存放位置,可以更加有效地管理相關數據。
請參照圖2,本發明的另一技術方案為:
一種nand快閃記憶體的映射表管理系統,包括:
建立模塊,用於當將數據寫入nand快閃記憶體時,建立至少一個的一級映射表、二級映射表和三級映射表,所述一級映射表對應至少一個的所述二級映射表的存放位置,所述二級映射表對應至少一個的所述三級映射表的存放位置,所述三級映射表對應所述數據在nand快閃記憶體上的實際位置;
判斷模塊,用於判斷所述一級映射表、二級映射表和三級映射表的個數是否超過預設個數;
存放模塊,用於若是,則將預設個數的一級映射表、二級映射表和三級映射表存放至單晶片的內存中,將未存放在單晶片的內存中的一級映射表、二級映射表和三級映射表存放至nand快閃記憶體中。
進一步的,還包括第一更新模塊,用於當需要建立新的三級映射表,並且單晶片的內存中的三級映射表的個數達到預設個數時,將訪問次數最少的三級映射表存放至nand快閃記憶體中,並同步更新對應的二級映射表。
進一步的,還包括第二更新模塊,用於當需要建立新的二級映射表,並且單晶片的內存中的二級映射表的個數達到預設個數時,將訪問次數最少的二級映射表存放至nand快閃記憶體中,並同步更新對應的一級映射表。
進一步的,還包括第三更新模塊,用於當存放於nand快閃記憶體上的一三級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的三級映射表存放至nand快閃記憶體中,並將所述一三級映射表存放至單晶片的內存中,同步更新對應的二級映射表。
進一步,還包括第四更新模塊,用於當存放於nand快閃記憶體上的一二級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的二級映射表存放至nand快閃記憶體中,並將所述一二級映射表存放至單晶片的內存中,同步更新對應的一級映射表。
進一步的,還包括第五更新模塊,用於當存放於nand快閃記憶體上的一一級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的一級映射表存放至nand快閃記憶體中,並將所述一一級映射表存放至單晶片的內存中。
實施例一
請參照圖1,本發明的實施例一為:
一種nand快閃記憶體的映射表管理方法,可以減少佔用電子產品的單晶片的內存空間,包括:
s1、當將數據寫入nand快閃記憶體時,建立至少一個的一級映射表、二級映射表和三級映射表,所述一級映射表對應至少一個的所述二級映射表的存放位置,所述二級映射表對應至少一個的所述三級映射表的存放位置,所述三級映射表對應所述數據在nand快閃記憶體上的實際位置。本實施例中,一個一級映射表對應的二級映射表的存放位置的數量可以根據需要進行設置,一個二級映射表對應的三級映射表的存放位置的數量也可以根據需要進行設置,一個三級映射表對應的實際位置也可以根據需要進行設置,一個存放位置的大小可以是2位元組、4位元組或者8位元組。在建立映射表時,可以根據數據大小來建立相應大小的映射表,當存入新的數據時,根據需要增加映射表的數量。
s2、判斷所述一級映射表、二級映射表和三級映射表的個數是否超過預設個數;若是,則進行步驟s3,若否,則將一級映射表、二級映射表和三級映射表全部存放至單晶片的內存中。在單晶片的內存中存放的一級映射表、二級映射表和三級映射表的個數可以根據單晶片的內存大小來定,各級映射表的預設個數可以相同,也可以不同。例如,可以存放兩個一級映射表,兩個二級映射表和16個三級映射表,若每一個映射表的大小均為4096bytes,那麼存放在單晶片的內存中的映射表的總大小為80kbytes,佔用的單晶片的內存空間很小。
s3、將預設個數的一級映射表、二級映射表和三級映射表存放至單晶片的內存中,將未存放在單晶片的內存中的一級映射表、二級映射表和三級映射表存放至nand快閃記憶體中。本實施例中,可以將映射表存放至nand快閃記憶體的slc塊中。
本實施例中,當需要建立新的三級映射表,並且單晶片的內存中的三級映射表的個數達到預設個數時,將訪問次數最少的三級映射表存放至nand快閃記憶體中,並同步更新對應的二級映射表。當需要建立新的二級映射表,並且單晶片的內存中的二級映射表的個數達到預設個數時,將訪問次數最少的二級映射表存放至nand快閃記憶體中,並同步更新對應的一級映射表。
本實施例中,當存放於nand快閃記憶體上的一三級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的三級映射表存放至nand快閃記憶體中,並將所述一三級映射表存放至單晶片的內存中,同步更新對應的二級映射表。當存放於nand快閃記憶體上的一二級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的二級映射表存放至nand快閃記憶體中,並將所述一二級映射表存放至單晶片的內存中,同步更新對應的一級映射表。當存放於nand快閃記憶體上的一一級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的一級映射表存放至nand快閃記憶體中,並將所述一一級映射表存放至單晶片的內存中。預設次數可以根據需要進行設置,對於不同級的映射表,預設次數可以設置為相同,也可以設置為不同。
實施例二
請參照圖2,本發明的實施例二為:一種nand快閃記憶體的映射表管理系統,與實施例一的方法相對應,包括:
建立模塊1,用於當將數據寫入nand快閃記憶體時,建立至少一個的一級映射表、二級映射表和三級映射表,所述一級映射表對應至少一個的所述二級映射表的存放位置,所述二級映射表對應至少一個的所述三級映射表的存放位置,所述三級映射表對應所述數據在nand快閃記憶體上的實際位置;
判斷模塊2,用於判斷所述一級映射表、二級映射表和三級映射表的個數是否超過預設個數;
存放模塊3,用於若是,則將預設個數的一級映射表、二級映射表和三級映射表存放至單晶片的內存中,將未存放在單晶片的內存中的一級映射表、二級映射表和三級映射表存放至nand快閃記憶體中。
進一步的,還包括第一更新模塊,用於當需要建立新的三級映射表,並且單晶片的內存中的三級映射表的個數達到預設個數時,將訪問次數最少的三級映射表存放至nand快閃記憶體中,並同步更新對應的二級映射表。
進一步的,還包括第二更新模塊,用於當需要建立新的二級映射表,並且單晶片的內存中的二級映射表的個數達到預設個數時,將訪問次數最少的二級映射表存放至nand快閃記憶體中,並同步更新對應的一級映射表。
進一步的,還包括第三更新模塊,用於當存放於nand快閃記憶體上的一三級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的三級映射表存放至nand快閃記憶體中,並將所述一三級映射表存放至單晶片的內存中,同步更新對應的二級映射表。
進一步,還包括第四更新模塊,用於當存放於nand快閃記憶體上的一二級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的二級映射表存放至nand快閃記憶體中,並將所述一二級映射表存放至單晶片的內存中,同步更新對應的一級映射表。
進一步的,還包括第五更新模塊,用於當存放於nand快閃記憶體上的一一級映射表的訪問次數超過預設次數時,將單晶片的內存中訪問次數最少的一級映射表存放至nand快閃記憶體中,並將所述一一級映射表存放至單晶片的內存中。
綜上所述,本發明提供的一種nand快閃記憶體的映射表管理方法及其系統,只將一定個數的一級映射表、二級映射表和三級映射表存放在單晶片的內存中,其餘的則存放在nand快閃記憶體中,可以減少映射表在單晶片的內存中的佔用空間,降低單晶片的製作成本,並且實時對單晶片的內存中的映射表進行調整,可以有效地對相關數據進行管理。
以上所述僅為本發明的實施例,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等同變換,或直接或間接運用在相關的技術領域,均同理包括在本發明的專利保護範圍內。