專利名稱:快速響應trim命令的方法、SSD控制器及系統的制作方法
技術領域:
本發明涉及存儲技術領域,尤其涉及一種快速響應trim命令的方法以及對應的 快速響應trim命令的SSD控制器、快速響應trim命令的SSD系統。
背景技術:
固態硬盤(Solid State Disk, SSD)采用非易失性存儲芯片作為存儲介質,物理 上這些存儲芯片在寫入數據之前必須先進行擦除操作。而在擦除之前,則需將存儲芯片的 存儲塊上原先有效的數據轉移到另外的已擦過的塊,這個過程一般稱為垃圾回收。垃圾回 收的效率直接影響SSD的寫性能,垃圾回收效率越高對主機向SSD寫入數據的寫性能的影 響越小。當一個塊上的數據全為無效數據時垃圾回收的效率最高。
為此,ATA (Advanced Technology Attachment,高級技術附件規格)協議里新增 TRM命令,ATA TRM命令是文件系統用來通知設備哪些邏輯地址不再被占用,可以被設備 回收為空閑空間,在ATA命令集中,TRM命令只是DATA MANAGEMENT SET (DMS)命令的一 個子命令,DMS命令是專門用來做設備優化的,當DMS的feature屬性最低位置1,發送的就 是TRIM命令;該命令通過 DATA MANAGEMENT SET 命令下發,歸類于 DMA(Direct Memory Access, 直接內存存取)協議命令。在刪除文件時,通過該條命令可將一段數據設定為無效,從而提 高SSD后續垃圾回收的效率;同時,TRIM減少了無效數據的搬移,降低了存儲芯片的磨損, 對提高SSD壽命也有積極作用。
一般而言,SSD控制器在執行TRM命令時并非立即將TRM數據所在的 物理塊進行垃圾回收,否則垃圾回收所帶來的讀/寫/擦除將占用很長的時間(參 見專利CN200920227341. 7 “一種用于固態硬盤的八通道SOC控制芯片”以及專利 US20120066447 “SCHEDULING OF I/O INAN SSD ENVIRONMENT”)。SSD 控制器的主要操作 是修改相關數據所對應的表項,包括基于邏輯地址索引的數據狀態表和基于物理地址的物 理狀態表,而當TRIM的區域范圍很大時,表項修改的次數和時間呈線性增長,進而會影響 命令的響應時間,使得命令完成超時;即使在SSD控制器中采用緩存技術,將表項緩存在其 中,在表項修改時只更新緩存中的數據,能一定程度地改善命令完成時間,但仍不能根本地 解決上述問題。發明內容
為解決上述現有技術中存在的技術問題,本發明提供一種快速響應trim命令的 方法以及對應的快速響應trim命令的SSD控制器、快速響應trim命令的SSD系統,實施本 發明所提供的技術方案,可以快速地執行連續多個大段數據的trim命令,從而在較短的時 間內響應主機的多個大段數據的trim請求,減小了系統的等待時間,提高命令響應效率。
為解決上述技術問題,本發明提供一種快速響應trim命令的方法,包括固態硬盤SSD控制器接到主機下發的trim命令時,獲取該trim命令所指的邏輯地址范圍;SSD控制器修改所述trim命令所指的邏輯地址的狀態,將其置為無效;SSD控制器向主機返回表不trim命令完成的應答信號;在trim命令完成應答后,由SSD控制器擇機執行對所述邏輯地址對應的物理地址的狀 態進行修改,將其置為無效。
其中,所述在trim命令完成應答后,由SSD控制器擇機執行對所述邏輯地址對應 的物理地址的狀態進行修改,將其置為無效,包括在主機未下發新的trim命令的情況下, SSD控制器對所述trim命令所指的邏輯地址對應的物理地址的狀態進行修改,將其置為無 效;或者在SSD處于空閑的狀態時,SSD控制器對所述trim命令所指的邏輯地址對應的物 理地址的狀態進行修改,將其置為無效。
其中,若SSD控制器對所述trim命令所指的邏輯地址對應的物理地址的狀態進行 修改的操作尚未完成,接收到主機下發的新的trim命令時,則SSD控制器緩存尚未完成的 修改物理地址的操作,響應主機下發的新的trim命令;且當所述新的trim命令完成后,SSD 控制器繼續執行尚未完成的修改物理地址的操作。
其中,所述SSD控制器向主機返回表示trim命令完成的應答信號之后,還包括 SSD控制器接到主機下發的寫IO請求時,SSD控制器獲取一個可寫的物理地址;SSD控制器下發寫命令,將主機下發的數據寫到已分配的物理地址;SSD控制器修改邏輯地址,將其指向新寫入數據的物理地址,并置該邏輯地址有效;SSD控制器修改新寫入數據的物理地址的狀態信息,并將其標記為有效。
其中,所述SSD控制器修改新寫入數據的物理地址的狀態信息,并將其標記為有 效之后還包括SSD控制器判斷所述邏輯地址之前是否有效;若有效,則修改原物理地址的 狀態信息,并將其標記為無效。
其中,所述SSD控制器向主機返回表示trim命令完成的應答信號之后,還包括 SSD控制器接到主機讀IO請求,判斷其邏輯地址之前是否有效;若有效,則SSD控制器查詢映射表獲取主機請求的數據所處的物理地址,并下發讀命令讀取所述數據返回給主 機;若無效,則SSD控制器根據設定將所述邏輯地址的數據內容設定為確定值或任意值, 并將數據返回給主機。
相應的,本發明還提供一種快速響應trim命令的SSD控制器,包括邏輯地址獲取模塊,用于在所述SSD控制器接到主機下發的trim命令時,獲取該trim 命令所指的邏輯地址范圍;邏輯地址修改模塊,用于根據所述邏輯地址獲取模塊所獲取的邏輯地址范圍修改所述 trim命令所指的邏輯地址的狀態,將其置為無效;trim命令應答模塊,用于在所述邏輯地址修改模塊完成邏輯地址的狀態修改后,向主 機返回表示trim命令完成的應答信號;物理地址修改模塊,用于在所述trim命令應答模塊向主機完成應答后,擇機執行對所 述邏輯地址對應的物理地址的狀態進行修改,將其置為無效。
其中,所述物理地址修改模塊,用于在主機未下發新的trim命令的情況下,SSD控 制器對所述trim命令所指的邏輯地址對應的物理地址的狀態進行修改,將其置為無效;或者在SSD處于空閑的狀態時,SSD控制器對所述trim命令所指的邏輯地址對應的物理地址 的狀態進行修改,將其置為無效。
其中,所述物理地址修改模塊包括物理地址修改單元,用于在所述trim命令應答模塊向主機完成應答后,擇機執行對所 述邏輯地址對應的物理地址的狀態進行修改,將其置為無效;修改操作緩存單元,用于在所述物理地址修改單元對所述trim命令所指的邏輯地址 對應的物理地址的狀態進行修改的操作尚未完成,所述SSD控制器又接收到主機下發的新 的trim命令時,緩存尚未完成的修改物理地址的操作,供SSD控制器響應主機下發的新的 trim命令;且當所述新的trim命令完成后,控制所述物理地址修改單元繼續執行尚未完成 的修改物理地址的操作。
其中,所述SSD控制器還包括寫IO請求處理模塊,用于在所述SSD控制器接到主機下發的寫IO請求時,寫IO請求 處理模塊獲取一個可寫的物理地址,下發寫命令,將主機下發的數據寫到已分配的物理地 址并修改邏輯地址,將其指向新寫入數據的物理地址,且修改新寫入數據的物理地址和邏 輯地址的狀態信息,將其標記為有效。
其中,所述寫IO請求處理模塊還用于在修改新寫入數據的物理地址的狀態信息, 并將其標記為有效之后,判斷所述邏輯地址之前是否有效;若有效,則修改原物理地址的狀 態信息,并將其標記為無效。
其中,所述SSD控制器還包括讀IO請求處理模塊,用于在所述SSD控制器接到主機讀IO請求,判斷其邏輯地址之前 是否有效;若有效,則查詢映射表獲取主機請求的數據所處的物理地址,并下發讀命令讀取 所述數據返回給主機;若無效,則根據設定將所述邏輯地址的數據內容設定為確定值或任 意值,并將數據返回給主機。
對應的,本發明還提供一種快速響應trim命令的SSD系統,所述系統包括SSD以 及前述的快速響應trim命令的SSD控制器。
本發明提供的快速響應trim命令的方法以及對應的快速響應trim命令的SSD控 制器、快速響應trim命令的SSD系統,可以快速地執行連續多個大段數據的trim命令,避 免現有技術中一般的SSD完成一個大段數據的trim命令對應的所有操作將占用較長時間 的技術問題,從而在較短的時間內響應主機的多個大段數據的trim請求,減小了系統的等 待時間,提聞命令響應效率。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖圖1為本發明提供的快速響應trim命令的方法第一實施例流程示意圖;圖2為本發明提供的快速響應trim命令的方法第二實施例流程示意圖;圖3為本發明提供的主機寫IO流程示意圖;圖4為本發明提供的主機讀IO流程示意圖;圖5為本發明提供的快速響應trim命令的SSD控制器第一實施例結構示意圖;圖6為本發明提供的快速響應trim命令的SSD控制器第二實施例結構示意圖。
具體實施方式
本發明提供的快速響應trim命令的方法以及對應的快速響應trim命令的SSD控 制器、快速響應trim命令的SSD系統,可以快速地執行連續多個大段數據的TRIM命令,從 而在較短的時間內響應主機的多個大段數據的TRIM請求,減小了系統的等待時間,提高命 令響應效率。
參見圖1,為本發明提供的快速響應trim命令的方法第一實施例流程示意圖,如 圖1所示,該快速響應trim命令的方法包括步驟S101, SSD控制器接到主機下發的trim命令時,獲取該trim命令所指的邏輯地址 范圍。更為具體的,SSD控制器在執行trim后會修改兩個表項,將表項中數據的有效標志 置為無效,這兩個表項一個是基于邏輯地址索引,一個是基于物理地址索引的。對于SSD控 制器而言,基于邏輯地址索引表項的修改(即trim命令所指的邏輯地址范圍)是連續的,表 項修改的效率較高;而基于物理地址索引的修改是隨機的,表項修改的效率較低;步驟S102,SSD控制器修改所述trim命令所指的邏輯地址的狀態,將其置為無效; 步驟S103,SSD控制器向主機返回表示trim命令完成的應答信號。更為具體的,在現有 技術中,只有當SSD控制器完成對邏輯地址索引和物理地址索引兩個表項的有效標志置修 改,才會向主機發送trim命令完成的應答信號;而在本發明實施例中,SSD控制器在完成對 邏輯地址索引表項的修改后,即向主機返回表示trim命令完成的應答信號。由于對于SSD 控制器而言,基于邏輯地址索引表項的修改效率較高;而基于物理地址索引的修改效率較 低,所以SSD控制器在完成對邏輯地址索引表項的修改后,即向主機返回表示trim命令完 成的應答信號可以大大的縮短對主機trim命令的響應時間;步驟S104,在trim命令完成應答后,由SSD控制器擇機執行對所述邏輯地址對應的物 理地址的狀態進行修改,將其置為無效。更為具體的,在本實施例中,對于主機而言,只要收 到SSD控制器反饋的trim命令完成的應答信號即可認為是命令完成,在此之后的主機命令 都是基于trim后的狀態進行操作的。SSD控制器基于物理地址的狀態表修改影響控制器垃 圾回收的操作,可將其放在trim命令完成應答后,由控制器后臺擇機觸發執行(比如在SSD 處于空閑態下,或是TRM命令完成后立即執行)。照此方式執行的trim命令,既達到了 TRM 執行的效果,又縮短了 trim的響應時間;本發明提供的快速響應trim命令的方法,避免現有技術中一般的SSD控制器完成一個 大段數據的trim命令對應的所有操作將占用較長時間(特別是完成對物理地址的標志位 置修改所需要的時間)的技術問題,從而可以在較短的時間內響應主機的trim請求,減小了 系統的等待時間,提聞命令響應效率;上一實施例提供的快速響應trim命令的方法在實際應用中,可能出現SSD控制器在 SSD空閑時,執行前一個trim命令的物理地址狀態表的修改過程中(未修改完成)的情況 下,主機又下發一個新的trim命令;對于此問題,在本發明提供的快速響應trim命令的方法第二實施例中將提供其解決方式;參見圖2,為本發明提供的快速響應trim命令的方法第二實施例流程示意圖,如圖2所示,該快速響應trim命令的方法包括步驟S201, SSD控制器接收主機下發的新的trim命令(在本實施例中,將主機在當前下發的trim命令稱為“新的trim命令”,將主機在所述新的trim命令下發之前所下發的trim 命令稱為“前一個trim命令”)步驟S202,SSD控制器判斷當前是否正在執行前一個trim命令的物理地址狀態表的修改;若判斷為是,則執行步驟S203 ;若判斷為否,則執行步驟S204 ;步驟S203,SSD控制器對未完成的前一個trim命令的物理地址狀態表修改操作進行緩存;更為具體的,若SSD控制器對前一個trim命令所指的邏輯地址對應的物理地址的狀態進行修改的操作尚未完成,接收到主機下發的新的trim命令時,則SSD控制器緩存尚未完成的修改物理地址的操作,以響應主機下發的新的trim命令;且當所述新的trim命令完成后,SSD控制器繼續執行尚未完成的修改物理地址的操作;步驟S204,SSD控制器獲取新的trim命令所指的邏輯地址范圍;更為具體的,SSD控制器在執行新的trim后會修改兩個表項,將表項中數據的有效標志置為無效,這兩個表項一個是基于邏輯地址索引,一個是基于物理地址索引的。對于SSD 控制器而言,基于邏輯地址索引表項的修改(即trim命令所指的邏輯地址范圍)是連續的, 表項修改的效率較高;而基于物理地址索引的修改是隨機的,表項修改的效率較低;步驟S205,SSD控制器修改所述新的trim命令所指的邏輯地址的狀態,將其置為無 效;步驟S206,SSD控制器向主機返回表示新的trim命令完成的應答信號;更為具體的,在現有技術中,只有當SSD控制器完成對邏輯地址索引和物理地址索引兩個表項的有效標志置修改,才會向主機發送trim命令完成的應答信號;而在本發明實施例中,SSD控制器在完成對邏輯地址索引表項的修改后,即向主機返回表示trim命令完成的應答信號。由于對于SSD控制器而言,基于邏輯地址索引表項的修改效率較高;而基于物理地址索引的修改效率較低,所以SSD控制器在完成對邏輯地址索引表項的修改后,即向主機返回表示trim命令完成的應答信號可以大大的縮短對主機trim命令的響應時間; 步驟S207,在新的trim命令完成應答后,由SSD控制器擇機執行對所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效。若在執行新的trim命令前,有緩存前一個 trim命令的物理地址狀態表修改操作,還需要擇機完成該緩存的操作;更為具體的,SSD控制器擇機執行對邏輯地址對應的物理地址的狀態進行修改,包括但不限于SSD控制器在主機未下發新的trim命令的情況下,或SSD控制器在SSD處于空閑的狀態下,SSD控制器對trim命令所指的邏輯地址對應的物理地址的狀態進行修改,將其置為無效;進一步的,在本實施例中,對于主機而言,只要收到SSD控制器反饋的trim命令完成的應答信號即可認為是命令完成,在此之后的主機命令都是基于trim后的狀態進行操作的。 SSD控制器基于物理地址的狀態表修改影響控制器垃圾回收的操作,可將其放在trim命令完成應答后,由控制器后臺擇機觸發執彳丁(比如在SSD處于空閑態下,或是TRIM命令完成后立即執行)。照此方式執行的trim命令,既達到了 TRM執行的效果,又縮短了 trim的響應 時間;本發明提供的快速響應trim命令的方法,SSD控制器可以緩存未完成的操作,轉而去 執行下一個trim命令的邏輯狀態修改,直至完成后繼續之前未完成的操作。基于此,SSD控 制器可以完成主機連續多個大段數據的trim命令的操作,從而在較短的時間內響應主機 的多個大段數據的trim請求,減小了系統的等待時間,提高命令響應效率。
為便于本領域技術人員更好的理解本發明的技術方案,本發明還提供了主機寫IO 和主機讀IO的流程示意圖;參見圖3,為本發明提供的主機寫IO流程示意圖。如圖所示,該流程包括步驟S301,SSD控制器接到主機下發的寫IO請求時,SSD控制器為其獲取一個可寫的 物理地址;步驟S302,SSD控制器下發寫命令,將主機下發的數據寫到已分配的物理地址;步驟S303,SSD控制器修改邏輯地址(即修改映射表),將其指向新寫入數據的物理地 址,并置該邏輯地址有效;步驟S304,SSD控制器修改新寫入數據的物理地址的狀態信息,并將其標記為有效。
進一步的,基于本發明提供的快速響應trim命令的方法第一、二實施例,本實施 例中的流程還包括步驟S305,SSD控制器判斷所述邏輯地址之前是否有效(數據未被寫過或是寫到但又 被TRIM過則視為無效);若有效,則執行步驟S306 ;步驟S306,修改原物理地址的狀態信息,并將其標記為無效。
參見圖4,為本發明提供的主機讀IO流程示意圖。如圖所示,該流程包括步驟S401,SSD控制器接到主機讀IO請求;步驟S402,SSD控制器判斷主機讀IO請求指向的邏輯地址之前是否有效。若有效,則 執行步驟S403 ;若無效,則執行步驟S405 ;步驟S403,SSD控制器查詢映射表獲取主機請求的數據所處的物理地址;步驟S404,SSD控制器下發讀命令讀取所述數據返回給主機;步驟S405,SSD控制器根據設定將所述邏輯地址的數據內容設定為確定值或任意值, 并將數據返回給主機。
結合上述各實施例,本領域技術人員可以理解的是,本發明提供的快速響應trim 命令的方法中,SSD控制器在完成對邏輯地址索引表項的修改后,即向主機返回表示trim 命令完成的應答信號,對物理地址的狀態修改由SSD控制器擇機執行,同時,SSD控制器可 以緩存這些未完成的操作,轉而去執行下一個trim命令的邏輯狀態修改,直至完成后繼續 之前未完成的操作。基于此,SSD控制器可以完成主機連續多個大段數據的trim命令的操 作,從而在較短的時間內響應主機的多個大段數據的trim請求,減小了系統的等待時間, 提高命令響應效率。
參見圖5,為本發明提供的快速響應trim命令的SSD控制器第一實施例結構示意 圖,如圖所示,該SSD控制器包括邏輯地址獲取模塊1、邏輯地址修改模塊2、trim命令應 答模塊3和物理地址修改模塊4 ;邏輯地址獲取模塊1,用于在所述SSD控制器接到主機下發的trim命令時,獲取該trim命令所指的邏輯地址范圍。更為具體的,SSD控制器在執行trim后會修改兩個表項, 將表項中數據的有效標志置為無效,這兩個表項一個是基于邏輯地址索引,一個是基于物 理地址索引的。對于SSD控制器而言,基于邏輯地址索引表項的修改(即trim命令所指的 邏輯地址范圍)是連續的,表項修改的效率較高;而基于物理地址索引的修改是隨機的,表 項修改的效率較低;邏輯地址修改模塊2,用于根據所述邏輯地址獲取模塊I所獲取的邏輯地址范圍修改 所述trim命令所指的邏輯地址的狀態,將其置為無效;trim命令應答模塊3,用于在所述邏輯地址修改模塊2完成邏輯地址的狀態修改后,向 主機返回表示trim命令完成的應答信號。更為具體的,在現有技術中,只有當SSD控制器 完成對邏輯地址索引和物理地址索引兩個表項的有效標志置修改,trim命令應答模塊3才 會向主機發送trim命令完成的應答信號;而在本發明實施例中,trim命令應答模塊3在邏 輯地址修改模塊2完成對邏輯地址索引表項的修改后,即向主機返回表示trim命令完成的 應答信號。由于對于SSD控制器而言,邏輯地址修改模塊2基于邏輯地址索引表項的修改 效率較高;而物理地址修改模塊4基于物理地址索引的修改效率較低,所以trim命令應答 模塊3在邏輯地址修改模塊2完成對邏輯地址索引表項的修改后,即向主機返回表示trim 命令完成的應答信號可以大大的縮短對主機trim命令的響應時間;物理地址修改模塊4,用于在所述trim命令應答模塊3向主機完成應答后,擇機執行 對所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效。更為具體的,在本實施例 中,對于主機而言,只要收到trim命令應答模塊3反饋的trim命令完成的應答信號即可認 為是命令完成,在此之后的主機命令都是基于trim后的狀態進行操作的。物理地址修改模 塊4基于物理地址的狀態表修改影響控制器垃圾回收的操作,可將其放在trim命令完成應 答后擇機觸發執行(比如在SSD處于空閑態下,或是TRM命令完成后立即執行)。照此方式 執行的trim命令,既達到了 TRIM執行的效果,又縮短了 trim的響應時間;本發明提供的快速響應trim命令的SSD控制器,可以避免現有技術中一般的SSD控制 器完成一個大段數據的trim命令對應的所有操作將占用較長時間(特別是完成對物理地 址的標志位置修改所需要的時間)的技術問題,從而可以在較短的時間內響應主機的trim 請求,減小了系統的等待時間,提聞命令響應效率。
上一實施例提供的快速響應trim命令的SSD控制器在實際應用中,可能出現SSD 控制器在SSD空閑時,執行前一個trim命令的物理地址狀態表的修改過程中(未修改完成) 的情況下,又收到主機下發的新的trim命令。對于此問題,在本發明提供的快速響應trim 命令的SSD控制器第二實施例中將提供其解決方式。需要說明的是,本實施例提供的快速 響應trim命令的SSD控制器尤其適合于SSD配合使用,組成快速響應trim命令的SSD系參見圖6,為本發明提供的快速響應trim命令的SSD控制器第二實施例結構示意圖。在 本實施例中,將主機在當前下發的trim命令稱為“新的trim命令”,將主機在所述新的trim 命令下發之前所下發的trim命令稱為“前一個trim命令”。如圖6所示,該SSD控制器同 樣包括邏輯地址獲取模塊1、邏輯地址修改模塊2、trim命令應答模塊3和物理地址修改 模塊4。所述邏輯地址獲取模塊1、邏輯地址修改模塊2、trim命令應答模塊3與上一實施 例中的模塊基本相同,故本實施例中不再贅述,本實施例中將著重描述物理地址修改模塊4的功能和結構;邏輯地址獲取模塊1,用于在所述SSD控制器接到主機下發的trim命令時,獲取該 trim命令所指的邏輯地址范圍;邏輯地址修改模塊2,用于根據所述邏輯地址獲取模塊I所獲取的邏輯地址范圍修改 所述trim命令所指的邏輯地址的狀態,將其置為無效;trim命令應答模塊3,用于在所述邏輯地址修改模塊2完成邏輯地址的狀態修改后,向 主機返回表示trim命令完成的應答信號;物理地址修改模塊4,用于在所述trim命令應答模塊3向主機完成應答后,擇機執行對 所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效;更為具體的,在本實施例中,對于主機而言,只要收到trim命令應答模塊3反饋的trim 命令完成的應答信號即可認為是命令完成,在此之后的主機命令都是基于trim后的狀態 進行操作的。物理地址修改模塊4基于物理地址的狀態表修改影響控制器垃圾回收的操 作,可將其放在trim命令完成應答后擇機觸發執行。所述擇機觸發執行包括但不限于在 主機未下發新的trim命令的情況下執行;或者在SSD處于空閑的狀態時執行。照此方式執 行的trim命令,既達到了 TRM執行的效果,又縮短了 trim的響應時間;進一步的,該物理地址修改模塊4包括物理地址修改單元41,用于在所述trim命令應答模塊向主機完成應答后,擇機執行對 所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效;修改操作緩存單元42,用于在所述物理地址修改單元41對所述trim命令所指的邏輯 地址對應的物理地址的狀態進行修改的操作尚未完成,所述SSD控制器又接收到主機下發 的新的trim命令時,緩存尚未完成的修改物理地址的操作,供SSD控制器響應主機下發的 新的trim命令;且當所述新的trim命令完成后,控制所述物理地址修改單元41繼續執行 尚未完成的修改物理地址的操作;本發明提供的快速響應trim命令的方法,SSD控制器可以緩存這些未完成的操作,轉 而去執行下一個trim命令的邏輯狀態修改,直至完成后繼續之前未完成的操作。基于此, SSD控制器可以完成主機連續多個大段數據的trim命令的操作,從而在較短的時間內響應 主機的多個大段數據的trim請求,減小了系統的等待時間,提高命令響應效率;優選的,本實施例提供的SSD控制器還可以包括寫IO請求處理模塊5和讀IO請求處 理模塊6 ;寫IO請求處理模塊5,用于在所述SSD控制器接到主機下發的寫IO請求時,寫IO請求 處理模塊獲取一個可寫的物理地址,下發寫命令,將主機下發的數據寫到已分配的物理地 址并修改邏輯地址,將其指向新寫入數據的物理地址,且修改新寫入數據的物理地址和邏 輯地址的狀態信息,將其標記為有效;優選的,所述寫IO請求處理模塊5還用于在修改新寫入數據的物理地址的狀態信息, 并將其標記為有效之后,判斷所述邏輯地址之前是否有效;若有效,則修改原物理地址的狀 態信息,并將其標記為無效。寫IO請求處理模塊5對寫IO請求的處理過程可參見如圖3 所示的主機寫IO流程;讀IO請求處理模塊6,用于在所述SSD控制器接到主機讀IO請求,判斷其邏輯地址之 前是否有效;若有效,則查詢映射表獲取主機請求的數據所處的物理地址,并下發讀命令讀取所述數據返回給主機;若無效,則根據設定將所述邏輯地址的數據內容設定為確定值或 任意值,并將數據返回給主機。讀IO請求處理模塊5對讀IO請求的處理過程可參見如圖 4所示的主機讀IO流程;本發明提供的快速響應trim命令的SSD控制器,其在完成對邏輯地址索引表項的修改 后,即向主機返回表示trim命令完成的應答信號,對物理地址的狀態修改由SSD控制器擇 機執行,同時,SSD控制器可以緩存這些未完成的操作,轉而去執行下一個trim命令的邏輯 狀態修改,直至完成后繼續之前未完成的操作。基于此,本發明提供的SSD控制器可以完成 主機連續多個大段數據的trim命令的操作,從而在較短的時間內響應主機的多個大段數 據的trim請求,減小了系統的等待時間,提聞命令響應效率;需要說明的是,本實施例提供的快速響應trim命令的SSD控制器尤其適合于SSD配合 使用,組成快速響應trim命令的SSD系統。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以 通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質 中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁 碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。
以上內容是結合具體的優選實施方式對本發明所作的進一步詳細說明,不能認定 本發明的具體實施只局限于這些說明。對于本發明所屬技術領域的普通技術人員來說,在 不脫離本發明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發明的 保護范圍。
權利要求
1.一種快速響應trim命令的方法,其特征在于,包括 固態硬盤SSD控制器接到主機下發的trim命令時,獲取該trim命令所指的邏輯地址范圍; SSD控制器修改所述trim命令所指的邏輯地址的狀態,將其置為無效; SSD控制器向主機返回表不trim命令完成的應答信號; 在trim命令完成應答后,由SSD控制器擇機執行對所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效。
2.如權利要求1所述的快速響應trim命令的方法,其特征在于,所述在trim命令完成應答后,由SSD控制器擇機執行對所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效,包括 在主機未下發新的trim命令的情況下,SSD控制器對所述trim命令所指的邏輯地址對應的物理地址的狀態進行修改,將其置為無效;或者 在SSD處于空閑的狀態時,SSD控制器對所述trim命令所指的邏輯地址對應的物理地址的狀態進行修改,將其置為無效。
3.如權利要求1所述的快速響應trim命令的方法,其特征在于,若SSD控制器對所述trim命令所指的邏輯地址對應的物理地址的狀態進行修改的操作尚未完成,接收到主機下發的新的trim命令時,則SSD控制器緩存尚未完成的修改物理地址的操作,響應主機下發的新的trim命令;且當所述新的trim命令完成后,SSD控制器繼續執行尚未完成的修改物理地址的操作。
4.如權利要求1至3中任一項所述的快速響應trim命令的方法,其特征在于,所述SSD控制器向主機返回表示trim命令完成的應答信號之后,還包括 SSD控制器接到主機下發的寫IO請求時,SSD控制器獲取一個可寫的物理地址; SSD控制器下發寫命令,將主機下發的數據寫到已分配的物理地址; SSD控制器修改邏輯地址,將其指向新寫入數據的物理地址,并置該邏輯地址有效; SSD控制器修改新寫入數據的物理地址的狀態信息,并將其標記為有效。
5.如權利要求4所述的快速響應trim命令的方法,其特征在于,所述SSD控制器修改新寫入數據的物理地址的狀態信息,并將其標記為有效之后還包括 SSD控制器判斷所述邏輯地址之前是否有效;若有效,則修改原物理地址的狀態信息,并將其標記為無效。
6.如權利要求1至3中任一項所述的快速響應trim命令的方法,其特征在于,所述SSD控制器向主機返回表示trim命令完成的應答信號之后,還包括 SSD控制器接到主機讀IO請求,判斷其邏輯地址之前是否有效; 若有效,則SSD控制器查詢映射表獲取主機請求的數據所處的物理地址,并下發讀命令讀取所述數據返回給主機; 若無效,則SSD控制器根據設定將所述邏輯地址的數據內容設定為確定值或任意值,并將數據返回給主機。
7.一種快速響應trim命令的SSD控制器,其特征在于,包括 邏輯地址獲取模塊,用于在所述SSD控制器接到主機下發的trim命令時,獲取該trim命令所指的邏輯地址范圍;邏輯地址修改模塊,用于根據所述邏輯地址獲取模塊所獲取的邏輯地址范圍修改所述trim命令所指的邏輯地址的狀態,將其置為無效; trim命令應答模塊,用于在所述邏輯地址修改模塊完成邏輯地址的狀態修改后,向主機返回表示trim命令完成的應答信號; 物理地址修改模塊,用于在所述trim命令應答模塊向主機完成應答后,擇機執行對所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效。
8.如權利要求7所述的快速響應trim命令的SSD控制器,其特征在于, 所述物理地址修改模塊,用于在主機未下發新的trim命令的情況下,SSD控制器對所述trim命令所指的邏輯地址對應的物理地址的狀態進行修改,將其置為無效;或者 在SSD處于空閑的狀態時,SSD控制器對所述trim命令所指的邏輯地址對應的物理地址的狀態進行修改,將其置為無效。
9.如權利要求7所述的快速響應trim命令的SSD控制器,其特征在于,所述物理地址修改模塊包括 物理地址修改單元,用于在所述trim命令應答模塊向主機完成應答后,擇機執行對所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效; 修改操作緩存單元,用于在所述物理地址修改單元對所述trim命令所指的邏輯地址對應的物理地址的狀態進行修改的操作尚未完成,所述SSD控制器又接收到主機下發的新的trim命令時,緩存尚未完成的修改物理地址的操作,供SSD控制器響應主機下發的新的trim命令;且當所述新的trim命令完成后,控制所述物理地址修改單元繼續執行尚未完成的修改物理地址的操作。
10.如權利要求7至9中任一項所述的快速響應trim命令的SSD控制器,其特征在于,所述SSD控制器還包括 寫IO請求處理模塊,用于在所述SSD控制器接到主機下發的寫IO請求時,寫IO請求處理模塊獲取一個可寫的物理地址,下發寫命令,將主機下發的數據寫到已分配的物理地址并修改邏輯地址,將其指向新寫入數據的物理地址,且修改新寫入數據的物理地址和邏輯地址的狀態信息,將其標記為有效。
11.如權利要求10所述的快速響應trim命令的SSD控制器,其特征在于,所述寫IO請求處理模塊還用于在修改新寫入數據的物理地址的狀態信息,并將其標記為有效之后,判斷所述邏輯地址之前是否有效;若有效,則修改原物理地址的狀態信息,并將其標記為無效。
12.如權利要求7至9中任一項所述的快速響應trim命令的SSD控制器,其特征在于,所述SSD控制器還包括 讀IO請求處理模塊,用于在所述SSD控制器接到主機讀IO請求,判斷其邏輯地址之前是否有效;若有效,則查詢映射表獲取主機請求的數據所處的物理地址,并下發讀命令讀取所述數據返回給主機;若無效,則根據設定將所述邏輯地址的數據內容設定為確定值或任意值,并將數據返回給主機。
13.一種快速響應trim命令的SSD系統,其特征在于,所述系統包括SSD以及如權利要求7至12中任一項所述的快速響應trim命令的SSD控制器。
全文摘要
本發明提供一種快速響應trim命令的方法、SSD控制器及系統,該方法包括固態硬盤SSD控制器接到主機下發的trim命令時,獲取該trim命令所指的邏輯地址范圍;SSD控制器修改所述trim命令所指的邏輯地址的狀態,將其置為無效;SSD控制器向主機返回表示trim命令完成的應答信號;在trim命令完成應答后,由SSD控制器擇機執行對所述邏輯地址對應的物理地址的狀態進行修改,將其置為無效。本發明提供的技術方案,可以快速地執行連續多個大段數據的TRIM命令,從而在較短的時間內響應主機的多個大段數據的TRIM請求,減小了系統的等待時間,提高命令響應效率。
文檔編號G06F13/16GK103019971SQ20121048198
公開日2013年4月3日 申請日期2012年11月25日 優先權日2012年11月25日
發明者向志華, 李欣, 張琴, 楊繼濤, 王燦, 黎智, 李程 申請人:向志華, 李欣, 張琴, 楊繼濤, 王燦, 黎智, 李程