本發(fā)明涉及存儲技術領域,特別涉及一種存儲系統(tǒng)、存儲管理裝置、存儲器、混合存儲裝置及存儲管理方法。
背景技術:
固態(tài)存儲器(Solid state disk,SSD)具有高性能、低延遲、低功耗、環(huán)境適應性強等優(yōu)點,同時成本也在不斷降低,因此目前應用的越來越普遍,一般用作硬盤的緩存,也可以直接用作硬盤。
但由于SSD不能原地寫,只能擦除原來的數(shù)據(jù)以后才能寫入新的數(shù)據(jù),且數(shù)據(jù)寫入的單位為頁(例如4kb),而數(shù)據(jù)擦除的單位為塊(例如1024KB),這與磁盤存儲器的工作原理不同,所以需要通過閃存轉換層(Flash translation layer,FTL),使文件系統(tǒng)可以像操作磁盤存儲器一樣操作SSD。
一般FTL需要執(zhí)行的操作有數(shù)據(jù)的寫入,邏輯地址與物理地址的映射、垃圾回收、負載均衡、還需要進行SSD中的物理塊的擦除等操作。如此,在使用一段時間,SSD的性能也由于垃圾回收、塊的擦除等操作變差。
技術實現(xiàn)要素:
本發(fā)明實施例提供存儲器管理裝置及方法,通過管理層管理存儲器,從而提高存儲器的性能。
本發(fā)明實施例第一方面提供一種存儲系統(tǒng),包括存儲器和管理器;
所述存儲器包括多個物理塊;
所述管理器用于接收數(shù)據(jù)寫請求,為待寫入數(shù)據(jù)頁確定邏輯塊,將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊中,并向所述存儲器發(fā)送數(shù)據(jù)寫指令,所述數(shù)據(jù)寫指令攜帶所述待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息;
所述存儲器用于接收所述數(shù)據(jù)寫指令,由所述數(shù)據(jù)寫指令中的所述待寫入數(shù)據(jù)頁的邏輯空間信息獲取所述邏輯塊的信息,根據(jù)所述邏輯塊的信息確定所述邏輯塊對應的物理塊,將所述待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
結合第一方面,在第一種可能的實現(xiàn)方式中,所述存儲器中還預先配置物理塊與邏輯 塊的對應關系,其中,每個物理塊對應一個邏輯塊,每個邏輯塊對應至少一個物理塊;則所述存儲器根據(jù)所述邏輯塊信息查詢所述物理塊與邏輯塊的對應關系確定所述邏輯塊對應的物理塊。
結合第一方面,在第二種可能的實現(xiàn)方式中,所述存儲器中設置每個邏輯塊分配標識信息,用于標識所述每個邏輯塊是否被分配對應的物理塊;
所述存儲器根據(jù)所述邏輯塊的信息確定所述邏輯塊對應的物理塊具體包括:所述存儲器根據(jù)所述邏輯塊的信息確定所述邏輯塊的分配標識信息,根據(jù)所述邏輯塊的分配標識信息確定所述邏輯塊是否被分配對應的物理塊,若確定所述邏輯塊未被分配對應的物理塊,為所述邏輯塊分配物理塊,并記錄所分配的物理塊與所述邏輯塊的對應關系,其中,每個物理塊對應一個邏輯塊,每個邏輯塊對應至少一個物理塊。
結合第一方面、第一種實現(xiàn)方式或者第二種實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述邏輯塊信息。。
結合第一方面、第一種實現(xiàn)方式或者第二種實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述待寫入數(shù)據(jù)頁的邏輯地址,所述存儲器中記錄存儲器的邏輯塊信息,所述存儲器在接收到所述數(shù)據(jù)寫指令,根據(jù)所述待寫入數(shù)據(jù)頁的邏輯地址及所述存儲器的邏輯塊信息,確定所述邏輯塊的信息。
結合第一方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述管理器還用于根據(jù)每個邏輯塊對應的數(shù)據(jù)頁,確定待擦除的邏輯塊,向所述存儲器發(fā)送擦除指令,所述擦除指令攜帶所述待擦除的邏輯塊的信息;
所述存儲器還用于接收所述擦除指令,根據(jù)所述擦除指令中的所述待擦除的邏輯塊的信息和所述物理塊與邏輯塊的對應關系,確定待擦除的物理塊,以及擦除所述待擦除的物理塊。
結合第一方面的第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,在確定待擦除的物理塊后,所述存儲器為所述待擦除的邏輯塊重新分配物理塊,并更新所述待擦除的邏輯塊的分配標識信息,之后再擦除所述待擦除的物理塊。
結合第一方面的第五種或者第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,所述管理器還用于在確定需要對已存儲的數(shù)據(jù)頁進行更新時,將所述已存儲的數(shù)據(jù)頁對應的邏輯塊中記錄的所述已存儲的數(shù)據(jù)頁的邏輯地址置為無效;
所述管理器用于根據(jù)每個邏輯塊對應的數(shù)據(jù)頁,確定待擦除的邏輯塊具體包括:選擇 無效邏輯地址數(shù)量多的邏輯塊作為所述待擦除的邏輯塊。
結合第一方面的第七種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,所述管理器在向所述存儲器發(fā)送所述擦除指令之前,所述管理器還用于對所述待擦除的邏輯塊中的有效的邏輯地址進行遷移,并確定所述有效的邏輯地址對應的數(shù)據(jù)頁為待遷移的數(shù)據(jù)頁,并向所述存儲器發(fā)送數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息;
所述存儲器還用于根據(jù)所述數(shù)據(jù)遷移指令將所述存儲器中所述待遷移的數(shù)據(jù)頁進行遷移。
第二方面,提供一種存儲管理裝置,應用于包括存儲器的存儲系統(tǒng),所述存儲器包括多個物理塊,所述存儲管理裝置包括:
邏輯塊管理模塊,用于接收數(shù)據(jù)寫請求,為待寫入數(shù)據(jù)頁確定邏輯塊,將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊中;
寫入指示模塊,用于根據(jù)所述邏輯塊管理模塊為所述待寫入數(shù)據(jù)頁確定的邏輯塊,向所述存儲器發(fā)送數(shù)據(jù)寫指令,其中,所述數(shù)據(jù)寫指令攜帶所述待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息;所述數(shù)據(jù)寫指令用于指示所述存儲器根據(jù)所述數(shù)據(jù)寫指令將所述邏輯塊對應的待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
結合第二方面,在第一種可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述邏輯塊信息。
結合第二方面,在第二種可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述待寫入數(shù)據(jù)頁的邏輯地址,所述存儲器中記錄存儲器的邏輯塊信息,所述存儲器在接收到所述數(shù)據(jù)寫指令,根據(jù)所述待寫入數(shù)據(jù)頁的邏輯地址及所述存儲器的邏輯塊信息,確定所述邏輯塊的信息。
結合第二方面、第二方面的第一種實現(xiàn)方式或者第二種實現(xiàn)方式,所述存儲管理裝置還包括擦除指令模塊,用于根據(jù)每個邏輯塊對應的數(shù)據(jù)頁,確定待擦除的邏輯塊,向所述存儲器發(fā)送擦除指令,所述擦除指令攜帶所述待擦除的邏輯塊的信息,所述擦除指令用于指示所述存儲器根據(jù)所述擦除指令中的所述待擦除的邏輯塊的信息和所述存儲器中設置的物理塊與邏輯塊的對應關系,確定待擦除的物理塊,以及擦除所述待擦除的物理塊。
結合第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述邏輯塊管理模塊還用于在確定需要對已存儲的數(shù)據(jù)頁進行更新時,將所述已存儲的數(shù)據(jù)頁對應的邏輯塊中記錄的所述已存儲的數(shù)據(jù)頁的邏輯地址置為無效;
所述擦除指令模塊用于確定待擦除的邏輯塊具體包括:選擇無效邏輯地址數(shù)量多的邏輯塊作為所述待擦除的邏輯塊。
結合第二方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述存儲管理裝置還包括遷移指令模塊,在所述擦除指令模塊在向所述存儲器發(fā)送所述擦除指令之前,所述遷移指令模塊用于對邏輯塊中有效的邏輯地址進行遷移,確定所述有效的邏輯地址對應的數(shù)據(jù)頁為待遷移的數(shù)據(jù)頁,并向所述存儲器發(fā)送數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息,所述數(shù)據(jù)遷移指令用于指示所述存儲器將所述存儲器中所述待遷移的數(shù)據(jù)頁進行遷移。
第三方面,提供一種存儲器,包括:
接收模塊,用于接收數(shù)據(jù)寫指令,所述數(shù)據(jù)寫指令攜帶待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息,所述數(shù)據(jù)寫指令是由管理器在接收到數(shù)據(jù)寫請求,為所述待寫入數(shù)據(jù)頁確定邏輯塊,并將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊之后發(fā)送的;
寫入模塊,用于根據(jù)所述數(shù)據(jù)寫指令中的所述待寫入數(shù)據(jù)頁的邏輯空間信息獲取邏輯塊信息,根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊,將所述待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
結合第三方面,在第一種可能的實現(xiàn)方式中,所述存儲器中還預先配置物理塊與邏輯塊的對應關系,其中,所述每個物理塊對應一個邏輯塊,每個邏輯塊對應至少一個物理塊;則所述存儲器根據(jù)所述邏輯塊信息查詢所述物理塊與邏輯塊的對應關系確定所述邏輯塊對應的物理塊。
結合第三方面,在第二種可能的實現(xiàn)方式中,所述存儲器中設置每個邏輯塊的分配標識信息,用于標識所述邏輯塊是否被分配對應的物理塊;
所述存儲器根據(jù)所述邏輯塊的信息確定所述邏輯塊對應的物理塊具體包括:所述存儲器根據(jù)所述邏輯塊的信息確定所述邏輯塊的分配標識信息,根據(jù)所述邏輯塊的分配標識信息確定所述邏輯塊是否被分配對應的物理塊,若確定所述邏輯塊未被分配對應的物理塊,為所述邏輯塊分配物理塊,并記錄所分配的物理塊與所述邏輯塊的對應關系,其中,每個物理塊對應一個邏輯塊,每個邏輯塊對應至少一個物理塊。
結合第三方面、第三方面的第一種可能實現(xiàn)方式或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述邏輯塊信息。
結合第三方面、第三方面的第一種可能實現(xiàn)方式或第二種可能的實現(xiàn)方式,在第四種 可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述待寫入數(shù)據(jù)頁的邏輯地址,所述存儲器中記錄存儲器的邏輯塊信息,所述存儲器在接收到所述數(shù)據(jù)寫指令,根據(jù)所述待寫入數(shù)據(jù)頁的邏輯地址及所述存儲器的邏輯塊信息,確定所述邏輯塊的信息。
結合第三方面的第四種可能的實現(xiàn),在第五種可能的實現(xiàn)方式中,所述接收模塊還用于接收所述管理器發(fā)送的擦除指令,所述擦除指令為所述管理器確定待擦除的邏輯塊后發(fā)送的,所述擦除指令攜帶所述待擦除的邏輯塊的信息;
所述存儲器還包括擦除模塊,用于根據(jù)所述擦除指令中的所述待擦除的邏輯塊的信息和所述物理塊與邏輯塊的對應關系,確定待擦除的物理塊,以及擦除所述待擦除的物理塊。
結合第三方面的第五種可能的實現(xiàn),在第六種可能的實現(xiàn)方式中,在確定待擦除的物理塊后,所述存儲器為所述待擦除的邏輯塊重新分配物理塊,并更新所述待擦除的邏輯塊的分配標識信息,之后,再擦除所述待擦除的物理塊。
結合第三方面的第五種或者第六種可能的實現(xiàn),在第七種可能的實現(xiàn)方式中,所述接收模塊還用于接收管理器發(fā)送的數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令為所述管理器確定所述待擦除的邏輯塊中待遷移的數(shù)據(jù)頁后發(fā)送的,所述待遷移的數(shù)據(jù)頁為所述待擦除的邏輯塊中的有效邏輯地址對應的數(shù)據(jù)頁,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息;
所述存儲器還包括遷移模塊,用于根據(jù)所述數(shù)據(jù)遷移指令將所述存儲器中所述待遷移的數(shù)據(jù)頁進行遷移。
第四方面,提供一種混合存儲裝置,包括硬盤、如第二方面的任意一種實現(xiàn)方式中的管理器,以及第三方面的任意一種實現(xiàn)方式所述的存儲器,所述存儲器作為所述磁盤存儲器的緩存。
第五方面,提供一種存儲管理方法,應用于包括存儲器的存儲系統(tǒng),所述存儲器包括多個物理塊,所述方法包括:
接收數(shù)據(jù)寫請求,為待寫入數(shù)據(jù)頁確定邏輯塊;
將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊中;
向所述存儲器發(fā)送數(shù)據(jù)寫指令,其中,所述數(shù)據(jù)寫指令攜帶所述待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息;所述數(shù)據(jù)寫指令用于指示所述存儲器根據(jù)所述數(shù)據(jù)寫指令將所述邏輯塊對應的待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
結合第五方面,在第一種可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述邏輯塊信息。
結合第五方面,在第二種可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述待寫入數(shù)據(jù)頁的邏輯地址,所述存儲器中記錄存儲器的邏輯塊信息,所述存儲器在接收到所述數(shù)據(jù)寫指令,根據(jù)所述待寫入數(shù)據(jù)頁的邏輯地址及所述存儲器的邏輯塊信息,確定所述邏輯塊的信息。
結合第五方面的第一種或者第二種可能的實現(xiàn)方式中,在第三種可能的實現(xiàn)方式中,根據(jù)每個邏輯塊對應的數(shù)據(jù)頁,確定待擦除的邏輯塊;
向所述存儲器發(fā)送擦除指令,所述擦除指令攜帶所述待擦除的邏輯塊的信息,所述擦除指令用于指示所述存儲器根據(jù)所述擦除指令中的所述待擦除的邏輯塊的信息和所述存儲器中設置的物理塊與邏輯塊的對應關系,確定待擦除的物理塊,以及擦除所述待擦除的物理塊。
結合第五方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述方法還包在確定需要對已存儲的數(shù)據(jù)頁進行更新時,將所述已存儲的數(shù)據(jù)頁對應的邏輯塊中記錄的所述已存儲的數(shù)據(jù)頁的邏輯地址置為無效;
選擇無效邏輯地址數(shù)量多的邏輯塊作為所述待擦除的邏輯塊。
結合第五方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,在所述向所述存儲器發(fā)送所述擦除指令之前,對邏輯塊中有效的邏輯地址進行遷移,確定所述有效的邏輯地址對應的數(shù)據(jù)頁為待遷移的數(shù)據(jù)頁;
向所述存儲器發(fā)送數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息,所述數(shù)據(jù)遷移指令用于指示所述存儲器將所述存儲器中所述待遷移的數(shù)據(jù)頁進行遷移。
第六方面,提供一種存儲管理方法,應用于存儲器;包括:
接收數(shù)據(jù)寫指令,所述數(shù)據(jù)寫指令攜帶待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息,所述數(shù)據(jù)寫指令是由管理器在接收到數(shù)據(jù)寫請求,為所述待寫入數(shù)據(jù)頁確定邏輯塊,并將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊之后發(fā)送的;
根據(jù)所述數(shù)據(jù)寫指令中的所述待寫入數(shù)據(jù)頁的邏輯空間信息獲取邏輯塊信息,根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊,將所述待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
結合第六方面,在第一種可能的實現(xiàn)方式中,所述存儲器中還預先配置物理塊與邏輯塊的對應關系,其中,所述每個物理塊對應一個邏輯塊,每個邏輯塊對應至少一個物理塊; 則所述根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊具體為:根據(jù)所述邏輯塊信息查詢所述物理塊與邏輯塊的對應關系確定所述邏輯塊對應的物理塊。
結合第六方面,在第二種可能的實現(xiàn)方式中,所述存儲器中設置所述邏輯塊的分配標識信息,用于標識所述邏輯塊是否被分配物理塊;
所述根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊具體為:
根據(jù)所述邏輯塊的信息確定所述邏輯塊的分配標識信息;
根據(jù)所述邏輯塊的分配標識信息確定所述邏輯塊是否被分配對應的物理塊;
若確定所述邏輯塊未被分配對應的物理塊,為所述邏輯塊分配物理塊,并記錄所分配的物理塊與所述邏輯塊的對應關系,其中,每個物理塊對應一個邏輯塊,每個邏輯塊對應至少一個物理塊。
結合第六方面、第六方面的第一種可能的實現(xiàn)方式或者第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述邏輯塊信息。
結合第六方面、第六方面的第一種可能的實現(xiàn)方式或者第二種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,還包括:
所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述待寫入數(shù)據(jù)頁的邏輯地址,所述存儲器中記錄存儲器的邏輯塊信息,所述存儲器在接收到所述數(shù)據(jù)寫指令,根據(jù)所述待寫入數(shù)據(jù)頁的邏輯地址及所述存儲器的邏輯塊信息,確定所述邏輯塊的信息。
結合第六方面的第一種或者第二種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,所述方法還包括:
接收擦除指令,所述擦除指令為所述管理器確定待擦除的邏輯塊后發(fā)送的,所述擦除指令攜帶所述待擦除的邏輯塊的信息;
根據(jù)所述擦除指令中的所述待擦除的邏輯塊的信息和所述物理塊與邏輯塊的對應關系,確定待擦除的物理塊,以及擦除所述待擦除的物理塊。
結合第六方面的第四種或者第五種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,還包括接收數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令為管理器確定所述待擦除的邏輯塊中待遷移的數(shù)據(jù)頁后發(fā)送的,所述待遷移的數(shù)據(jù)頁為所述待擦除的邏輯塊中的有效邏輯地址所對應的數(shù)據(jù)頁,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息;
根據(jù)所述數(shù)據(jù)遷移指令將所述存儲器中所述待遷移的數(shù)據(jù)頁進行遷移。
第七方面,提供一種存儲管理器,包括:處理器、存儲器、總線和通信接口;
所述存儲器用于存儲計算機執(zhí)行指令,所述處理器與所述存儲器通過所述總線連接,當所述計算設備運行時,所述處理器執(zhí)行所述存儲器存儲的所述計算機執(zhí)行指令,以使所述存儲管理器如下方法:
接收數(shù)據(jù)寫請求,為待寫入數(shù)據(jù)頁確定邏輯塊;
將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊中;
向所述存儲器發(fā)送數(shù)據(jù)寫指令,其中,所述數(shù)據(jù)寫指令攜帶所述待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息;所述數(shù)據(jù)寫指令用于指示所述存儲器根據(jù)所述數(shù)據(jù)寫指令將所述邏輯塊對應的待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
第八方面,提供一種存儲管理器,包括:處理器、存儲器、總線和通信接口;
所述存儲器用于存儲計算機執(zhí)行指令,所述處理器與所述存儲器通過所述總線連接,當所述計算設備運行時,所述處理器執(zhí)行所述存儲器存儲的所述計算機執(zhí)行指令,以使所述存儲管理器執(zhí)行如下方法:
接收數(shù)據(jù)寫指令,所述數(shù)據(jù)寫指令攜帶待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息,所述數(shù)據(jù)寫指令是由管理器在接收到數(shù)據(jù)寫請求,為所述待寫入數(shù)據(jù)頁確定邏輯塊,并將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊之后發(fā)送的;
根據(jù)所述數(shù)據(jù)寫指令中的所述待寫入數(shù)據(jù)頁的邏輯空間信息獲取邏輯塊信息,根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊,將所述待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
在第九方面,提供一種計算機可讀介質,包括計算機執(zhí)行指令,當計算機的處理器執(zhí)行所述計算機執(zhí)行指令時,所述計算機執(zhí)行如下方法:
接收數(shù)據(jù)寫請求,為待寫入數(shù)據(jù)頁確定邏輯塊;
將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊中;
向所述存儲器發(fā)送數(shù)據(jù)寫指令,其中,所述數(shù)據(jù)寫指令攜帶所述待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息;所述數(shù)據(jù)寫指令用于指示所述存儲器根據(jù)所述數(shù)據(jù)寫指令將所述邏輯塊對應的待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
在第十方面,提供一種計算機可讀介質,包括計算機執(zhí)行指令,當計算機的處理器執(zhí)行所述計算機執(zhí)行指令時,所述計算機執(zhí)行如下方法:
接收數(shù)據(jù)寫指令,所述數(shù)據(jù)寫指令攜帶待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息,所述數(shù)據(jù)寫指令是由管理器在接收到數(shù)據(jù)寫請求,為所述待寫入數(shù)據(jù)頁確定邏輯塊, 并將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊之后發(fā)送的;
根據(jù)所述數(shù)據(jù)寫指令中的所述待寫入數(shù)據(jù)頁的邏輯空間信息獲取邏輯塊信息,根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊,將所述待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
本發(fā)明通過對SSD劃為邏輯塊,并在邏輯塊中記錄存儲在SSD中的數(shù)據(jù)頁的邏輯地址,建立邏輯塊與SSD中的物理塊的對應關系,從而管理層可以通過對邏輯塊中記錄的數(shù)據(jù)頁的邏輯地址對SSD中存儲的數(shù)據(jù)頁進行管理,從而減少了FTL所執(zhí)行的操作,提升了SSD的性能。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術中SSD作為HDD的緩存使用的系統(tǒng)的架構圖。
圖2為現(xiàn)有技術中SSD進行數(shù)據(jù)更新時數(shù)據(jù)地址變化的示意圖。
圖3為本發(fā)明實施例提供的存儲系統(tǒng)的架構圖。
圖4為圖3所示的實施例中邏輯塊與物理塊的對應關系的示意圖。
圖5為在圖3所示的實施例中在對已存儲的數(shù)據(jù)進行更新時,邏輯塊中的邏輯地址變化的示意圖。
圖6為在圖3所示的實施例中在擦除物理塊之前,對待擦除物理塊中的數(shù)據(jù)進行遷移的示意圖。
圖7為本發(fā)明實施例中提供的存儲管理裝置的方塊圖。
圖8為本發(fā)明實施例中提供的SSD的結構圖。
圖9為本發(fā)明實施例提供的混合存儲裝置的結構圖。
圖10本發(fā)明實施例中管理器將數(shù)據(jù)寫入SSD的方法的流程圖。
圖11為本發(fā)明實施例中管理器控制SSD進行數(shù)據(jù)擦除的方法的流程圖。
圖12為本發(fā)明實施例中的計算機的結構組成示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地 描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例中的存儲器為包括多個物理塊,擦除原來的數(shù)據(jù)才能寫入新的數(shù)據(jù),且以頁為單位寫入數(shù)據(jù),而以物理塊為單位擦除數(shù)據(jù),這種存儲器的代表為SSD存儲器,下面的實施例中即以SSD為例進行說明。
如圖1,為現(xiàn)有技術中SSD作為HDD的緩存使用的系統(tǒng)的架構圖。一般將經(jīng)常訪問的數(shù)據(jù)存儲在SSD101中,并通過管理器103對SSD101和HDD102進行統(tǒng)一管理。所述管理器103通過映射表記錄著哪些HDD102數(shù)據(jù)緩存在SSD101中。當一個請求到達時,所述管理器103查找映射表,判斷所請求的數(shù)據(jù)是否存儲在SSD101上。如果數(shù)據(jù)存儲在SSD101上,則從SSD101中讀取數(shù)據(jù);如果數(shù)據(jù)不在SSD101上,則從HDD102中讀取數(shù)據(jù)。如果SSD101中的數(shù)據(jù)寫滿,則進行數(shù)據(jù)擦除,將不常用的數(shù)據(jù)替換出去。
對于圖1所示的架構,當所述SSD101與所述HDD102作為混合硬盤使用時,所述管理器103可以為所述混合硬盤的控制器,當所述SSD101與所述HDD102分別作為獨立的設備接入計算機時,所述管理器101可以裝載在所述計算機的操作系統(tǒng)中或者作為獨立的模塊裝載在所述計算機中。上述圖1中SSD作為HDD的緩存使用,在其他的應用場景中,SSD也可以獨立作為存儲設備。本發(fā)明可以運用于如圖1所示的架構中,也可以運用于SSD其它的應用場景中。
所述SSD一般為與非(not and,NAND)閃存,可以包括多個物理塊(如1024個),每個物理塊包括多個物理頁(如64個)。其中物理頁是讀、寫數(shù)據(jù)的基本單元,而物理塊是SSD進行數(shù)據(jù)擦除的基本單元。
所述SSD包括閃存轉換層(Flash translation layer,FTL),所述FTL可以用來記錄數(shù)據(jù)的邏輯地址(Logical Block Address,LBA)與SSD中的物理地址(Physical Block Address,PBA)的對應關系,根據(jù)邏輯地址與物理地址的對應關系執(zhí)行數(shù)據(jù)的讀或者寫操作。
另外,當需要對SSD上的數(shù)據(jù)進行更新時,所述FTL還可以把更新后的“新數(shù)據(jù)”寫入到SSD10的空閑物理頁并更新數(shù)據(jù)的LBA和SSD中的PBA的對應關系,并把包含“舊數(shù)據(jù)”的物理頁標記為無效頁。如圖2所示,若所述數(shù)據(jù)更新請求為對page 0中的數(shù)據(jù)進行更新,則FTL將更新后的page0的數(shù)據(jù)寫入到物理地址為n+2的物理頁中,而將Page 0的所在的物理地址為n的物理頁標識為無效。
在SSD寫滿之后,需要進行物理塊的替換,F(xiàn)TL選擇無效頁數(shù)量比較多的物理塊進行擦除以釋放空間存儲新的數(shù)據(jù)。但由于SSD所擦除的物理塊中可能包括大量的有效的數(shù)據(jù)頁,這就需要把這些有效頁的數(shù)據(jù)頁遷移到另外的空閑位置后,再對需要擦除的物理塊中的數(shù)據(jù)進行擦除,這個過程即為垃圾回收。
此外,F(xiàn)TL還要執(zhí)行負載均衡等操作。
本發(fā)明實施例所提供的技術方案旨在減少FTL所執(zhí)行的操作。本發(fā)明實施例所提供的技術方案為通過對SSD劃為邏輯塊,并在邏輯塊中記錄存儲在SSD中的數(shù)據(jù)頁的邏輯地址,建立邏輯塊與SSD中的物理塊的對應關系,從而管理層可以通過對邏輯塊及邏輯塊中記錄的數(shù)據(jù)頁的邏輯地址對SSD中的物理塊及物理塊中存儲的數(shù)據(jù)頁進行管理,減少了FTL所執(zhí)行的操作,從而提升了SSD的性能。
下面即通過本發(fā)明的不同的實施例對技術方案做詳細的描述。
如圖3所示,為本發(fā)明一實施例提供的存儲系統(tǒng)30的架構圖。所述存儲系統(tǒng)30包括管理器301及SSD302。所述SSD302包括多個物理塊303。所述管理器301接收數(shù)據(jù)寫請求,為待寫入數(shù)據(jù)頁確定邏輯塊,將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊中,并向所述SSD302發(fā)送數(shù)據(jù)寫指令,所述數(shù)據(jù)寫指令攜帶所述待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息,所述邏輯空間信息可以為所述邏輯塊信息或者所述待寫入數(shù)據(jù)頁的邏輯地址。
所述SSD302用于接收所述數(shù)據(jù)寫指令,由所述數(shù)據(jù)寫指令中的所述待寫入數(shù)據(jù)頁的邏輯空間信息獲取邏輯塊信息,根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊303,將所述待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊303中。
所述管理器301所接收的所述數(shù)據(jù)寫請求用于向所述SSD302寫入數(shù)據(jù),向所述SSD302寫入的數(shù)據(jù)可以為第一次被寫入所述存儲系統(tǒng)30的數(shù)據(jù),也可以為對已存儲在SSD302上的數(shù)據(jù)進行更新的數(shù)據(jù),也可以為從硬盤(圖未示)中調入所述SSD302的數(shù)據(jù)。
在所述SSD302預先配置了物理塊303與邏輯塊的對應關系,如圖4所示,所述每個物理塊303對應一個邏輯塊,每個邏輯塊對應至少一個物理塊303。如此,在所述SSD302在接收到所述數(shù)據(jù)寫指令后,可以根據(jù)所述數(shù)據(jù)寫指令中的所述邏輯塊的信息查詢所述物理塊與邏輯塊的對應關系,確定所述邏輯塊對應的物理塊303,將所述邏輯塊對應的待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊303中。通過上面的方式,可以使邏輯塊與物理塊關聯(lián)起來,且通過邏輯塊中記錄的數(shù)據(jù)頁的邏輯地址將物理塊303中記錄的數(shù)據(jù)頁與邏輯塊關 聯(lián)起來,即可以通過對邏輯塊的管理實現(xiàn)對SSD302中的物理塊303的管理。
在另一種實現(xiàn)方式中,所述邏輯塊與物理塊303之間的對應關系不是預先設置好的,而是動態(tài)分配的,具體為:所述存儲器中設置所述邏輯塊的分配標識信息,用于標識所述邏輯塊是否被分配物理塊303;所述存儲器根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊303具體為:所述存儲器根據(jù)所述邏輯塊信息確定所述邏輯塊的分配標識信息,根據(jù)所述分配標識信息確定所述邏輯塊是否被分配物理塊303,若確定所述邏輯塊未被分配物理塊303,則為所述邏輯塊分配物理塊303,并記錄所分配的物理塊303與邏輯塊的對應關系,確定所分配的物理塊303為所述邏輯塊對應的物理塊303。
進一步地,在本實施例中,在確定需要對已存儲的數(shù)據(jù)頁進行更新時,將所述已存儲的數(shù)據(jù)頁對應的邏輯塊中所記錄的所述已存儲的數(shù)據(jù)頁的邏輯地址置為無效。如圖5所示,若記錄在邏輯塊A中的數(shù)據(jù)頁Page0、page3、page4及page 5被更新,則記錄在邏輯塊A中的數(shù)據(jù)頁Page0、page3、page4及page 5的邏輯地址LA0、LA3、LA4、LA5被設置為無效。
進一步地,本實施例可通過管理器301控制SSD302中物理塊303的擦除,具體為:所述管理器301確定待擦除的邏輯塊,向所述SSD302發(fā)送擦除指令,所述擦除指令攜帶所述待擦除的邏輯塊的信息。
所述SSD302接收所述擦除指令,根據(jù)所述擦除指令中的所述待擦除的邏輯塊的信息和所述物理塊303與邏輯塊的對應關系,確定待擦除的物理塊303,以及擦除所述待擦除的物理塊303。
本實施例中,所述管理器301選擇無效邏輯地址數(shù)量多的邏輯塊作為所述待擦除的邏輯塊。
在確定待擦除的物理塊303后,所述SSD302為所述待擦除的邏輯塊重新分配物理塊,并更新所述待擦除的邏輯塊的分配標識信息,之后再擦除所述待擦除的物理塊303。這樣待擦除的邏輯塊可以立即被重新使用,而不需要等到物理塊擦除完之后再使用,從而提高了系統(tǒng)的性能。
進一步地,在本實施例中,所述管理器301在向所述SSD302發(fā)送所述擦除指令之前,還遷移所述待擦除的物理塊303中的有效的邏輯地址,并確定所述有效的邏輯地址對應的數(shù)據(jù)頁為待遷移的數(shù)據(jù)頁,并向所述SSD302發(fā)送數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息。
所述SSD302根據(jù)所述數(shù)據(jù)遷移指令將所述SSD302中所述待遷移的數(shù)據(jù)頁進行遷移。
在進行數(shù)據(jù)遷移時,所述數(shù)據(jù)遷移指令攜帶的所述待遷移的數(shù)據(jù)頁的信息為待遷移的數(shù)據(jù)頁的邏輯地址,所述SSD302在接收到所述數(shù)據(jù)遷移指令后,根據(jù)所述數(shù)據(jù)遷移指令中的所述待遷移的數(shù)據(jù)頁的邏輯地址在所述待擦除的物理塊中找到待遷移的數(shù)據(jù)頁,然后對待遷移的數(shù)據(jù)頁進行遷移。
如圖7所示,若邏輯塊A因為無效的邏輯頁的數(shù)量比較多而被選擇為待擦除的邏輯塊,但在邏輯塊A中還存在有效的邏輯地址LA16及LA17,則將所述有效的邏輯地址LA16及LA17遷移到邏輯塊B中。
所述SSD302接收到所述數(shù)據(jù)遷移指令后,則根據(jù)邏輯地址LA16及LA17在待擦除的邏輯塊A對應的待擦除的物理塊B中找到待遷移的數(shù)據(jù)頁page16及page17,然后將待遷移的數(shù)據(jù)頁page16及page17遷移到邏輯塊B所對應的物理塊C中。在數(shù)據(jù)遷移完后,所述SSD302即可對待擦除的物理塊A及物理塊B進行擦除。
如圖7所示,為本發(fā)明一實施例中提供的存儲管理裝置的方塊圖。所述存儲管理裝置70應用于存儲系統(tǒng),所述存儲系統(tǒng)包括SSD,所述SSD包括多個物理塊。所述第一存儲管理裝置70包括邏輯塊管理模塊702、寫入指示模塊703、擦除指示模塊704及遷移指示模塊705。
所述邏輯塊管理模塊702用于接收數(shù)據(jù)寫請求,為待寫入數(shù)據(jù)頁確定邏輯塊,將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊中。
所述寫入指示模塊703用于根據(jù)所述邏輯塊管理模塊702為所述待寫入數(shù)據(jù)頁確定的邏輯塊,向所述SSD發(fā)送數(shù)據(jù)寫指令,其中,所述數(shù)據(jù)寫指令攜帶所述待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息;所述數(shù)據(jù)寫指令用于指示所述SSD根據(jù)所述數(shù)據(jù)寫指令將所述邏輯塊對應的待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
所述待寫入數(shù)據(jù)頁的邏輯空間信息為所述邏輯塊信息或者所述待寫入數(shù)據(jù)頁的邏輯地址。
所述數(shù)據(jù)寫指令進一步指示所述SSD根據(jù)所述數(shù)據(jù)寫指令中的所述至少一個指定的邏輯塊的信息查詢所述SSD中設置的物理塊與邏輯塊的對應關系,確定所述至少一個指定的邏輯塊對應的物理塊,將所述至少一個指定的邏輯塊對應的待寫入數(shù)據(jù)頁寫入所述至少一個指定的邏輯塊對應的物理塊中。
所述擦除指示模塊704用于確定待擦除的邏輯塊,向所述SSD發(fā)送擦除指令,所述擦除指令攜帶所述待擦除的邏輯塊的信息,所述擦除指令用于指示所述SSD根據(jù)所述擦除指 令中的所述待擦除的邏輯塊的信息和所述SSD中設置的物理塊與邏輯塊的對應關系,確定待擦除的物理塊,以及擦除所述待擦除的物理塊。
進一步地,所述邏輯塊管理模塊702在確定需要對已存儲的數(shù)據(jù)頁進行更新時,將所述已存儲的數(shù)據(jù)頁對應的邏輯塊中所記錄的所述已存儲的數(shù)據(jù)頁的邏輯地址置為無效;
所述擦除指示模塊704選擇無效邏輯地址數(shù)量多的邏輯塊作為所述待擦除的邏輯塊。
在所述擦除指示模塊704在向所述SSD發(fā)送所述擦除指令之前,所述遷移指示模塊705用于將所述待擦除的邏輯塊中的有效的邏輯地址進行遷移,確定有效的邏輯地址對應的數(shù)據(jù)頁為待遷移的數(shù)據(jù)頁,并向所述SSD發(fā)送數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息,所述數(shù)據(jù)遷移指令用于指示所述SSD將所述SSD中所述待遷移的數(shù)據(jù)頁進行遷移。
如圖8所示,為本發(fā)明一實施例提供的SSD的方塊圖。所述SSD80可以應用于一存儲系統(tǒng),所述存儲系統(tǒng)包括管理器。所述SSD80包括接收模塊802、寫入模塊803、擦除模塊804、及遷移模塊805。
所述接收模塊802用于接收數(shù)據(jù)寫指令,所述數(shù)據(jù)寫指令攜帶待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息,所述數(shù)據(jù)寫指令是由管理器在接收到數(shù)據(jù)寫請求,為所述待寫入數(shù)據(jù)頁確定邏輯塊,并將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊之后發(fā)送的;
所述寫入模塊803用于根據(jù)所述數(shù)據(jù)寫指令中的所述待寫入數(shù)據(jù)頁的邏輯空間信息獲取邏輯塊信息,根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊,將所述待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
所述接收模塊802還用于接收所述管理器發(fā)送的擦除指令,所述擦除指令為所述管理器確定待擦除的邏輯塊后發(fā)送的,所述擦除指令攜帶所述待擦除的邏輯塊的信息。
所述擦除模塊804用于根據(jù)所述擦除指令中的所述待擦除的邏輯塊的信息和所述物理塊與邏輯塊的對應關系,確定待擦除的物理塊,以及擦除所述待擦除的物理塊。
所述接收模塊802還用于接收所述管理器發(fā)送的數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令為所述管理器確定所述待擦除的邏輯塊中待遷移的數(shù)據(jù)頁后發(fā)送的,所述待遷移的數(shù)據(jù)頁為所述待擦除的邏輯塊中有效的邏輯地址,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息。
所述遷移模塊805用于根據(jù)所述數(shù)據(jù)遷移指令將所述SSD中所述待遷移的數(shù)據(jù)頁進行 遷移。
如圖9所示,為本發(fā)明一實施例提供的一種混合存儲裝置90的結構圖。所述混合存儲裝置90包括包括管理器901、SSD902、及HDD903,所述SSD902作為所述HDD的緩存,所述SSD902包括多個物理塊904。
所述管理器901所執(zhí)行的功能與所述存儲系統(tǒng)30的管理器301所執(zhí)行的功能相同,所述SSD902所執(zhí)行的功能與所述存儲系統(tǒng)30的SSD302所執(zhí)行的功能相同,在此不再贅述。
本發(fā)明一實施例還提供一種存儲管理方法,所述存儲管理方法可以應用于存儲管理系統(tǒng),所述存儲管理系統(tǒng)包括管理器及SSD,所述SSD包括多個物理塊。所述存儲管理方法包括三部分,第一部分為管理器將數(shù)據(jù)寫入SSD的方法,第三部分所述管理器控制所述SSD進行數(shù)據(jù)擦除的方法。
如圖10所示,為管理器將數(shù)據(jù)寫入SSD的方法的流程圖。
步驟S1001,所述管理器接收數(shù)據(jù)寫請求,為待寫入數(shù)據(jù)頁確定邏輯塊。
步驟S1002,所述管理器將所述待寫入數(shù)據(jù)頁的邏輯地址記錄至所述邏輯塊中。
步驟S1003,所述管理器向所述SSD發(fā)送數(shù)據(jù)寫指令,所述數(shù)據(jù)寫指令攜帶所述待寫入數(shù)據(jù)頁及所述待寫入數(shù)據(jù)頁的邏輯空間信息。
步驟S1004,所述SSD接收所述數(shù)據(jù)寫指令,根據(jù)所述數(shù)據(jù)寫指令中的所述待寫入數(shù)據(jù)頁的邏輯空間信息獲取邏輯塊信息,根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊;
步驟S1005,所述SSD將所述待寫入數(shù)據(jù)頁寫入所述邏輯塊對應的物理塊中。
在上述方法中,所述SSD中還預先配置物理塊與邏輯塊的對應關系,其中,所述每個物理塊對應一個邏輯塊,每個邏輯塊對應至少一個物理塊,則步驟S1004中根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊具體為:根據(jù)所述邏輯塊信息查詢所述物理塊與邏輯塊的對應關系確定所述邏輯塊對應的物理塊。
可替換地,所述SSD中設置所述邏輯塊的分配標識信息,用于標識所述邏輯塊是否被分配物理塊,則則步驟S1004中根據(jù)所述邏輯塊信息確定所述邏輯塊對應的物理塊具體為:
根據(jù)所述邏輯塊信息確定所述邏輯塊的分配標識信息;
根據(jù)所述分配標識信息確定所述邏輯塊是否被分配物理塊;若確定所述邏輯塊未被分配物理塊,為所述邏輯塊分配物理塊,并記錄所分配的物理塊與邏輯塊的對應關系;
確定所分配的物理塊為所述邏輯塊對應的物理塊。
如圖11所示,為所述管理器控制所述SSD進行數(shù)據(jù)擦除的方法的流程圖。
步驟S1101,所述管理器確定待擦除的邏輯塊。
步驟S1102,所述管理器遷移所述待擦除的邏輯塊中的有效的邏輯地址,并確定所述有效的邏輯地址對應的數(shù)據(jù)頁為待遷移的數(shù)據(jù)頁。
步驟1103,所述管理器向所述SSD發(fā)送數(shù)據(jù)遷移指令,所述數(shù)據(jù)遷移指令攜帶所述待遷移的數(shù)據(jù)頁的信息。
步驟1104,所述SSD接收所述數(shù)據(jù)遷移指令,根據(jù)所述數(shù)據(jù)遷移指令中的所述待遷移的數(shù)據(jù)頁的信息將所述SSD中所述待遷移的數(shù)據(jù)頁進行遷移。
步驟1105,所述管理器向所述SSD發(fā)送擦除指令,所述擦除指令攜帶所述待擦除的邏輯塊的信息。
步驟1106,所述SSD接收所述擦除指令,根據(jù)所述擦除指令中的所述待擦除的邏輯塊的信息和所述物理塊與邏輯塊的對應關系,確定待擦除的物理塊,以及擦除所述待擦除的物理塊。
在上述方法中,在確定待擦除的物理塊后,還包括為所述待擦除的邏輯塊重新分配物理塊,并更新所述待擦除的邏輯塊的分配標識信息,之后,再刪除所述待擦除的物理塊
所述管理器可以根據(jù)所述邏輯塊中無效的邏輯地址的數(shù)量確定待擦除的邏輯塊,其中,所述待擦除的邏輯塊中包含的無效的邏輯地址的數(shù)量大于預設值。
如圖12所示,為本發(fā)明實施例提供的存儲管理器的結構組成示意圖。本發(fā)明實施例的存儲管理器可包括:
處理器1701、存儲器1702、系統(tǒng)總線1704和通信接口1705。CPU1701、存儲器1702和通信接口1705之間通過系統(tǒng)總線1704連接并完成相互間的通信。
處理器1701可能為單核或多核中央處理單元,或者為特定集成電路,或者為被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器1702可以為高速RAM存儲器,也可以為非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
存儲器1702用于計算機執(zhí)行指令1703。具體的,計算機執(zhí)行指令1703中可以包括程序代碼。
當存儲管理器運行時,處理器1701運行計算機執(zhí)行指令1703,可以執(zhí)行圖10或者圖11所述的方法流程。
本發(fā)明實施例還提供一種計算機可讀介質,包括計算機執(zhí)行指令,當計算機的處理器執(zhí)行所述計算機執(zhí)行指令時,所述計算機執(zhí)行圖10或者圖11所述的方法。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來請求相關的硬件來完成,所述程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:ROM、RAM、磁盤或光盤等。
以上對本發(fā)明實施例所提供的數(shù)據(jù)配置及其回退方法和設備,進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
+