專利名稱:通過存儲裝置管理內部操作的制作方法
技術領域:
本發明大體上涉及存儲裝置,且更明確地說,涉及一種允許通過存儲裝置自主管 理內部操作的方法且涉及一種使用所述方法的存儲裝置。
背景技術:
本文中“整體命令序列(INSQ) ”是指從例如MP3播放器、數碼相機或計算機系統 (例如,膝上型計算機)等主機裝置發送到存儲裝置的再現命令序列,所述序列或存儲裝置 與某些應用相關聯,例如與音樂播放、視頻記錄、圖像俘獲等應用相關聯,所述應用具有與 其相關聯的特征、元數據或屬性,例如包大小、時間戳、音頻或視頻重放持續時間、數據讀取 或數據寫入速率、地址存取或地址連續性等。主機裝置有時將INSQ發送到與其一起工作的 存儲裝置,而不管所述存儲裝置當前執行哪一內部操作或所述存儲裝置中哪一內部操作在 進行中。這可能不利地影響存儲裝置的性能和整個存儲裝置-主機系統的性能。當執行INSQ時(即,當INSQ為“活動”、“開”或“在進行中”時)將避免存儲裝置 的一些操作的執行,而存儲裝置的一些其它操作在INSQ的執行期間可能是有益或強制性 的,如下文所闡釋。并非INSQ的命令序列在本文中稱為“散發命令序列”。也就是說,“散發 命令序列”是指存儲裝置不認為是被存儲裝置“知曉”的命令序列的一部分的序列,其與通 過定義被存儲裝置知曉的INSQ不同。計算機系統中的存儲裝置可視為呈現為一存儲裝置,且因此,即使所述存儲裝置 執行后臺任務并執行內部操作(例如,存儲裝置的正常操作所要求的“內務處理”操作),所 述存儲裝置也預期提供良好的服務質量(“QoS”)。依據計算機系統給定的服務的情境(例如,重放音頻文件、俘獲圖像、復制數據文 件等)而定,可由存儲裝置作為“后臺”操作而執行的操作可屬于第一組內部操作,其在下 文中稱為額外序列(“ESQ”)操作群組;或屬于第二組內部操作,其在下文中稱為內部序列 (“ISQ”)操作群組。本文中“ESQ操作”是指如果INSQ在進行中則應避免的存儲操作(例如,靜態耗損 均衡),因為ESQ操作將不利地影響或將干擾或將以另外的方式降級存儲裝置的性能。舉例 來說,在從存儲裝置重放音樂文件時不執行靜態耗損均衡操作將是有益的。本文中“ISQ操作”是指在INSQ的執行期間允許或準許執行的存儲或存儲相關操 作,因為其對存儲裝置的總體操作具有積極影響,或至少其不會干擾或以另外的方式消極地影響INSQ的執行。在一些情況下,此類ISQ操作如果執行的話將顯著改進存儲裝置本身 的內部效率或作為整體的所涉及的存儲系統的效率。為下一命令或為預期命令(例如,高 速緩存下一數據)作準備而進行的操作是示范性ISQ操作。有時,甚至需要ISQ操作,因為 就服務質量(“QoS”)和存儲裝置總體效率來說,其具有積極影響。就存儲裝置來說,ESQ操作可包含例如將高速緩存的數據存檔、靜態耗損均衡、快 閃折疊(flash folding)(在快閃存儲器裝置的領域中也稱為“垃圾收集”)、加強等操作, 其是數字數據存儲管理的領域中已知的操作。ISQ操作可包含快閃管理操作;加密/解密 傳出/傳入數據;壓縮/解壓傳出/傳入數據;反病毒操作;磁盤碎片整理操作;加強;備份 數據;改變數據格式等,其是數字數據存儲管理的領域中已知的操作。因此,值得注意的是, 給定操作是ISQ還是ESQ可取決于在進行中的操作(例如,INSQ)。所述操作在一個INSQ 正發生時可能是ISQ,且在另一 INSQ正發生時可能是ESQ。為了改進存儲裝置的性能(例如,在性能、電源故障抗擾性、穩定的位速率等方 面),ESQ操作的執行必須以在INSQ在進行中時不執行ESQ操作的方式與INSQ的執行協 調。原因是,在INSQ在進行中時執行ESQ操作可能對存儲裝置的性能有不利影響,這可能 (例如)導致高等待時間、數據損失或數據惡化。ESQ操作傳統上由主機裝置啟始,因為以 下假設只有主機裝置可識別INSQ何時終止,且因此ESQ操作可安全地開始。在一種現有技術解決方案中,ESQ操作(例如)只有在裝置的主機通知存儲裝置 當前INSQ將終止或已終止且當前或接下來幾秒內沒有新的INSQ被調度之后才允許由存儲 裝置開始。換句話說,盡管傳統的存儲裝置能夠啟始ESQ操作,但其將需要來自其主機裝置 的其可以這樣做的確認。此約束要求存儲裝置的設計者與主機裝置設計者協作以允許存儲 裝置的設計者以ESQ操作不會與活動的主機裝置的INSQ沖突的方式來調度ESQ操作。在另一現有技術解決方案中,ESQ操作允許由存儲裝置自主啟始,但其不與主機裝 置同步,即ESQ操作有時由存儲裝置以錯誤的定時(即,在INSQ在進行中且因此不應受ESQ 干擾時)執行。因此,存儲裝置能夠實現以下目的將是有益的在所涉及的存儲系統所提供的服 務的變化的情境下自主地識別存儲后臺操作是否以及何時可如存儲裝置原始計劃或調度 的那樣執行,以及是否、何時以及哪些操作應被防止、掛起或延遲直到當前執行的INSQ終 止為止,以及是否、何時以及哪些操作在INSQ執行期間可以或應該執行。
發明內容
結合系統、工具和方法描述和說明以下實施例及其各方面,所述系統、工具和方法 的范圍希望為示范性和說明性的而不是限定性的。根據本發明,一種存儲裝置在沒有主機裝置干預的情況下自主地檢測是否以及何 時INSQ處于某一狀態(即,處于“活動”狀態還是“不活動”狀態)或正將其狀態從“活動” 改變為“不活動”還是從“不活動”改變為“活動”。依據INSQ的當前狀態或依據其轉變而 定,存儲裝置避免、掛起或抑制執行ESQ操作或ISQ操作,或者允許或準許這些操作。提供一種由存儲裝置處理所述存儲裝置的內部操作的方法,所述方法包含a)定 義命令的一個或一個以上INSQ,所述一個或一個以上整體命令序列的每一者能夠處于“活 動”狀態和“不活動”狀態;b)將第一組內部操作(“ESQ”)和第二組內部操作(“ISQ”)與所述一個或一個以上整體命令序列的每一者相關聯,所述第一組內部操作是將在所述相應 整體命令序列處于所述“活動”狀態時不執行的操作,且所述第二組內部操作是在所述相應 整體命令序列處于所述“活動”狀態時準許執行的操作;C)從主機裝置接收命令;d)基于從 所述接收的命令(以及可能從先前接收的命令)得出的信息,確定所述一個或一個以上整 體命令序列中的一者是否處于所述“活動,,狀態或正從所述“不活動,,狀態轉變到所述“活 動”狀態;以及e)如果所述一個或一個以上整體命令序列中的所述一者處于所述“活動”狀 態或正從所述“不活動”狀態轉變到所述“活動”狀態,那么存儲裝置抑制執行與所述相應 整體命令序列相關聯的所述第一組內部操作的任何操作。如果所述一個或一個以上整體命令序列中的所述一者處于所述“活動,,狀態或正 從所述“不活動”狀態轉變到所述“活動”狀態,那么存儲裝置可準許執行與所述相應整體命 令序列相關聯的所述第二組內部操作的任何操作。然而,如果所述一個或一個以上整體命 令序列中的所述一者處于所述“不活動”狀態或正從所述“活動”狀態轉變到所述“不活動” 狀態,那么存儲裝置準許執行所述第一組內部操作的操作并抑制執行與所述相應整體命令 序列相關聯的所述第二組內部操作的任何操作。存儲裝置可通過確定從自主機裝置接收的命令(一或多個)得出的所述信息分別 滿足預定義的序列開始(“B0S”)條件還是序列結束(“EOS”)條件來確定所述一個或一 個以上整體命令序列中的所述一者從所述“不活動”狀態轉變到所述“活動”狀態還是從所 述“活動”狀態轉變到所述“不活動”狀態。存儲裝置通過將動態參數的值或累加值與預定 義的靜態參數進行比較來確定從自主機裝置接收的命令得出的所述信息滿足預定義的BOS 條件還是EOS條件。所述一個或一個以上整體命令序列中的至少一者可與重放多媒體內容相關聯,或 與俘獲多媒體內容或圖像相關聯,或與數據同步相關聯,或與啟動命令相關聯。所述第一組或所述第二組內部操作的操作可以是快閃管理操作;用于對傳出/傳 入數據進行加密/解密的加密/解密操作;用于對傳出/傳入數據進行壓縮/解壓的壓縮/ 解壓操作;反病毒操作;加強操作;磁盤碎片整理操作;用于備份數據的備份操作;以及涉 及改變數據格式的操作。快閃管理操作可以是垃圾收集操作;錯誤校正操作;用于將數據 高速緩存到存儲裝置的快速快閃存儲區域中的高速緩存數據操作;用于清洗高速緩存的數 據的清洗操作;低功率模式操作;以及靜態耗損均衡操作。還提供一種存儲裝置,其可以是快閃存儲器裝置。所述存儲裝置可包含通信接 口,其用于從主機裝置接收存儲命令;以及大容量存儲區域,其用于保存(i) 一個或一個以 上預定義的整體序列,所述一個或一個以上整體命令序列的每一者能夠處于“活動”狀態和 “不活動”狀態,以及( )將第一組內部操作(“ESQ”)和第二組內部操作(“ISQ”)與所 述一個或一個以上整體命令序列中的每一者相關聯,所述第一組內部操作是將在所述相應 整體命令序列處于所述“活動”狀態時不執行的操作,且所述第二組內部操作是在所述相應 整體命令序列處于所述“活動”狀態時準許執行的操作。所述存儲裝置還包含控制器,其適于或經配置以(i)經由所述通信接口從所述主 機裝置接收命令,以及(ii)基于從所述接收的命令(以及可能從先前接收的命令)得出的 信息,確定所述一個或一個以上整體命令序列中的一者是否處于所述“活動”狀態或正從所 述“不活動”狀態轉變到所述“活動”狀態,或者所述一個或一個以上整體命令序列中的所述一者是否處于所述“不活動”狀態或正從所述“活動”狀態轉變到所述“不活動”狀態。響應于所述一個或一個以上整體命令序列中的所述一者處于所述“活動”狀態或 正從所述“不活動”狀態轉變到所述“活動”狀態,所述控制器抑制執行所述相應第一組內部 操作的任何操作。除了所述控制器抑制執行所述相應第一組內部操作的任何操作外,所述 控制器還可準許執行與所述相應整體命令序列相關聯的所述第二組內部操作的任何操作。 如果所述一個或一個以上整體序列中的所述一者處于所述“不活動”狀態或其正從所述“活 動”狀態轉變到所述“不活動”狀態,所述控制器準許執行所述相應第一組內部操作的任何 操作。所述控制器可通過估定或確定從自所述主機裝置接收的命令(一或多個)得出的 所述信息分別滿足預定義的BOS條件還是EOS條件來確定所述一個或一個以上整體序列中 的任一者從所述“不活動”狀態轉變到所述“活動”狀態以及從所述“活動”狀態轉變到所述 “不活動”狀態。除了上文描述的示范性方面和實施例外,通過參看圖式并通過學習以下詳細描述 將了解另外的方面和實施例。
參考圖式中說明示范性實施例。希望本文揭示的實施例為說明性的而不是限制性 的。然而,通過結合附圖閱讀而參考以下詳細描述可更好地理解揭示內容,附圖中圖1展示根據本發明的實例性實施例可由存儲裝置使用以確定INSQ的狀態的狀 態機; 圖2展示根據本發明當INSQ從“ INSQ不在進行中”狀態轉變到“ INSQ在進行中” 狀態時存儲裝置采取的步驟;圖3展示根據本發明當INSQ從“ INSQ在進行中”狀態轉變到“ INSQ不在進行中” 狀態時存儲裝置采取的步驟;圖4展示根據本發明的實例性實施例用于保存靜態信息的INSQ表;圖5展示根據本發明的實例性實施例用于保存動態信息的INSQ表;圖6展示根據本發明的實例性實施例可由存儲裝置使用以將INSQ的狀態從“關” 改變為“開”的方法;圖7展示根據本發明的實例性實施例可由存儲裝置使用以將INSQ的狀態從“開” 改變為“關”的方法;圖8是根據本發明的實例性實施例的存儲裝置的框圖;圖9展示根據本發明的實例性實施例由存儲裝置的控制器使用的數據庫;以及圖10展示根據本發明的實例性實施例可由存儲裝置使用的方法。將了解,為了說明的簡單性和清楚性,圖式中展示的元件不一定按比例繪制。此 外,在認為適當之處,圖中參考標號可重復以指示相同、相應或類似的元件。
具體實施例方式通過參考本發明實例性實施例的本實施方式來更好地理解所附權利要求書。本實 施方式無意限制權利要求書的范圍,而是提供本發明的實例。
“序列開頭”(BOS)在本文表示存儲裝置推斷或決定INSQ正開始或出現,或INSQ已 經開始或已經出現。在無存儲裝置與之操作的主機裝置干預推斷或決定過程,或以任何方 式影響所述過程的情況下,存儲裝置基于預定義的條件而作出推斷或作出決定。存儲裝置 鑒于一組預定義的參數和閾值(即,條件)來評估主機裝置所發布的命令,所述參數和閾值 (如果INSQ不在進行中)可共同向存儲裝置指示INSQ的開始。“序列末尾”(EOS)在本文表示存儲裝置推斷或決定INSQ正終止或已經終止。在 無存儲裝置與之操作的主機裝置干預推斷或決定過程,或以任何方式影響所述過程的情況 下,存儲裝置基于預定義的條件而作出推斷或作出決定。存儲裝置鑒于一組預定義的參數 和閾值(即,條件)來評估主機裝置所發布的命令,所述參數和閾值(如果INSQ在進行中) 可共同向存儲裝置指示INSQ的終止。圖1是根據本發明的存儲裝置可使用的簡化狀態機。根據本發明,一組INSQ是預 定義的且存儲在INSQ表中,其中INSQ表中的每一條目包含INSQ和與所述INSQ相關聯的 參數。關于所述狀態機,INSQ表中的每一 INSQ能夠處于“活動”狀態(展示為“整體序列 在進行中” 16),或處于“不活動”狀態(展示為“整體序列不在進行中” 1幻。INSQ表中的一 個或一個以上INSQ可同時為活動,而其它INSQ為不活動。關于圖2和圖3,對于不同INSQ 可同時發生多個例子。給定INSQ表中的INSQ,如果INSQ當前處于“整體序列不在進行中” 12狀態,且存 儲裝置識別序列開頭(BOS)(如上文所闡釋)指示INSQ現正處于活動狀態,或INSQ正從不 活動狀態轉變到活動狀態,那么存儲裝置自動將INSQ的狀態從“整體序列不在進行中” 12 切換(14)到“整體序列在進行中” 16。如果INSQ當前處于“整體序列在進行中” 16狀態, 且存儲裝置識別序列末尾¢0 (如上文所闡釋)指示INSQ現正處于不活動狀態,或INSQ 正從活動狀態轉變到不活動狀態,那么存儲裝置自動將整體序列的狀態從“整體序列在進 行中” 16切換(10)到“整體序列不在進行中” 12。圖2展示根據本發明的當INSQ的狀態從“INSQ不在進行中”狀態變成“INSQ在進 行中”狀態時存儲裝置所采取的步驟。在可同時執行一個以上任務的存儲系統(例如,常被 稱為“多任務”或“多線程”系統的存儲系統)中,一個以上INSQ可在進行中,且INSQ表中 的每一 INSQ可經歷用于評估所述INSQ是在進行中還是不在進行中的相同或類似的評估過程。以下描述內容涉及INSQ表中的示范性INSQ(下文稱為“INSQ 1”),但同一過程與 可保存在INSQ表中的任何INSQ有關。如果“INSQ 1”變為活動,那么存儲裝置(在步驟20 處)使與“INSQ 1”有關的狀態機的狀態從“INSQ 1不在進行中”變成“INSQl在進行中”。 如果針對“INSQ 1”出現B0S,那么存儲裝置確定所述INSQ變為活動,且如果滿足預定義的 標準,那么確定BOS出現。如上文所闡釋,存儲裝置所執行的后臺操作可被認為是ISQ操作或ESQ操作,且當 INSQ在進行中時,應避免或停止ESQ操作。因此,在步驟22處,存儲裝置掛起與活動“ INSQ 1”有關的ESQ操作,在步驟M處,存儲裝置恢復關于活動“INSQ 1”的ISQ操作,且在步驟 沈處,存儲裝置期待或等待,直到“INSQ 1”變為不活動為止。如果針對“INSQ Γ’出現E0S, 那么存儲裝置確定所述INSQ變為不活動,且如果滿足預定義的標準,那么確定EOS出現。下 文所述的圖4和圖5中展示用于確定INSQ何時或是否改變或已經改變其狀態的INSQ表和標準。圖3展示根據本發明的當INSQ的狀態從“INSQ在進行中”狀態變成“INSQ不在進 行中”狀態時存儲裝置所采取的步驟。以下描述內容也涉及上文結合圖2所提及的示范性 "INSQ 1”,但同一評估過程與可保存在INSQ表中的任何INSQ有關。如果“INSQ1”變為不 活動,那么EOS出現,存儲裝置通過(在步驟30中)使與“INSQ 1”相關聯的狀態機的狀態 從“INSQ 1在進行中”變成“INSQ 1不在進行中”來對此作出響應。如上文所闡釋,只有在 有關INSQ不在進行中時,存儲裝置才允許ESQ操作。因此,在步驟32處,存儲裝置掛起與 不活動的“INSQ 1”有關的ISQ操作,且在步驟34處,存儲裝置恢復ESQ操作。在步驟36 處,存儲裝置期待或等待,直到可確定BOS為止。INSQ表保存確定標準,其可包含兩種類型的參數(存儲裝置通過所述參數來評 估INSQ的狀態)靜態參數,其值在運行時間期間不改變;以及動態參數,其值在運行時間 (即,“在運行中”)期間由存儲裝置響應于存儲裝置從主機裝置接收到或已經從主機裝置 接收到的一個或一個以上命令(例如響應于正從主機裝置接收到最后一個命令,且可能還 響應于存儲裝置先前從主機裝置接收到的一個或一個以上命令)而動態地更新。“靜態參 數”實際上是存儲裝置用來確定INSQ是“開”還是“關”或是否已經在這兩個狀態之間變化 的標準(例如,閾值)。“動態參數”實際上是與INSQ有關的變量在給定時間點時(例如, 在存儲裝置接收到給定命令時)的值,存儲裝置對照靜態參數檢查所述INSQ,以確定所述 靜態參數所表示的標準是否已經被滿足。舉例來說,如果主機裝置為MP3播放器,那么其發 送給存儲裝置的命令組可能與播放音樂文件相關聯。主機裝置發送給存儲裝置的命令組可 包含一個或一個以上命令。圖4中展示示范性INSQ或有關的靜態參數,且圖5中展示與圖 4的INSQ有關的示范性動態參數,下文描述所述兩個圖式。圖4展示根據本發明實例性實施例的INSQ表40。含有INSQ的靜態參數的INSQ 表40包含四個示范性條目,編號為1到4,所述示范性條目中的每一者容納一個INSQ和與 INSQ有關的參數和閾值,如下文所述。存儲裝置基于INSQ表40中所保存的信息來識別并 更新INSQ的狀態(即,從“INSQ在進行中”狀態到“INSQ不在進行中”狀態,且反之亦然)。INSQ表40包含用于保存以下示范性靜態參數的五個示范性字段(1) "INSQ的識別符”(41處所示)。此字段可容納每個INSQ的類型或已經指配 給所述INSQ的名稱。(2) "INSQ的BOS參數”(42處所示)。此字段指定一個或一個以上參數,所述參 數已經被選擇為使得存儲裝置可計算或估計所述參數的值或狀態,且計算或估計出的值或 狀態可指示有關的INSQ已經在進行中(S卩,已經是活動的),或有關的INSQ正從不活動狀 態轉變到活動狀態。值是從存儲裝置從主機裝置接收到的一個或一個以上命令得出的所述 一個或一個以上參數允許存儲裝置決定或確定BOS指示是否已經出現或正出現。“讀取性 能”、“到達時間”(TOA)和命令操作數(例如,主機裝置所存取的邏輯地址)是存儲裝置可 從自主機裝置接收到的命令收集或計算的示范性信息。當一個或一個以上估計出或計算出的參數滿足或超過預定義的值或滿足預定義 的條件時,認為序列開頭(BOS)已經出現,如下文結合“INSQ的BOS閾值”字段更詳細地闡釋。(3) “ INSQ的BOS閾值”03處展示)。此字段容納存儲裝置應用于INSQ的BOS參數字段42中所指定的一個或一個以上參數的一個邏輯條件或一組邏輯條件。如果與特定 INSQ相關聯的所述邏輯條件或所述組邏輯條件被滿足,那么存儲裝置確定針對所述INSQ 已經出現整體序列B0S,其后,存儲裝置使所述INSQ的狀態變成“ INSQ在進行中”。邏輯條 件可關于BOS參數的最小值,關于BOS參數的最大值,關于BOS參數的最小值與最大值之間 的任何值,或關于被計數的事件的數目等等。(4) "INSQ的EOS參數”(44處所示)。此字段指定一個或一個以上參數,所述參 數已經被選擇為使得存儲裝置可計算或估計所述參數的值或狀態,且計算或估計出的值或 狀態可向存儲裝置指示有關的INSQ即將終止,或有關的INSQ剛剛終止,值是從存儲裝置從 主機裝置接收到的一個或一個以上命令得出的所述一個或一個以上參數允許存儲裝置決 定或確定EOS是否已經出現或正出現。“讀取性能”、“到達時間”(TOA)和命令操作數(例如,主機裝置所存取的邏輯地 址)是存儲裝置可從在存儲裝置處從主機裝置接收到的命令收集或計算的示范性信息。當一個或一個以上估計出或計算出的參數滿足或超過預定義的值或滿足預定義 的條件時,認為序列末尾(EOS)出現,如下文結合“INSQ的EOS閾值”字段更詳細地闡釋。(5) “ INSQ的EOS閾值”(45處所示)。此字段容納存儲裝置應用于INSQ的EOS參 數字段44中所指定的一個或一個以上參數的一個邏輯條件或一組邏輯條件。如果與特定 INSQ相關聯的所述邏輯條件或所述組邏輯條件被滿足,那么存儲裝置確定針對所述INSQ 已經出現整體序列E0S,其后,存儲裝置使所述INSQ的狀態變成“INSQ不在進行中”。邏輯 條件可關于EOS參數的最小值,關于EOS參數的最大值,關于EOS參數的最小值與最大值之 間的任何值,或關于被計數的事件的數目等等。舉例來說,INSQ表40保存下文所述的“實例1”到“實例4”中所涉及的四個示范 性整體序列(INSQ)。實例1-主機裝置為MP3播放器第一條目含有被稱為“播放MP3,,的示范性INSQ,其關于MP3操作(即,假定主機 裝置為MP3音樂播放器)。MP3音樂播放器從存儲裝置讀取媒體內容(其根據MP3數據格式壓縮),并利用解 壓縮構件(不管是軟件應用程序還是硬件模塊)來(即,通過解壓縮)將經壓縮的媒體內 容轉換成其可使用(即,重放)的原始數據格式。MP3播放器將原始數據(即,經解壓縮的 媒體內容)發送到揚聲器(即,MP3播放器“重放”所述媒體內容)。因為MP3數據格式要 求MP3文件以MP3標準所指定的速率(其目前為16千字節每秒(KB/sec))重放,所以MP3 播放器以同一數據速率從存儲裝置請求數據。在此實例中,INSQ的BOS參數為“與MP3標準(16KB/s)匹配的常規平均讀取速 率” (410處所示),其表示存儲裝置監視其從MP3播放器接收到的數據讀取請求,并計算MP3 播放器讀取數據的平均速率,看所述數據讀取請求是否以指定速率(即,16KB/S)被接收。 在正常數據重放操作下,存儲裝置期望所述速率為16KB/S,且只要沒有數據是以所述速率 被讀取,存儲裝置就“知道”播放MP3 INSQ尚未開始。如上文所闡釋,當MP3播放器正在重 放媒體內容時,在存儲裝置中執行某些內部操作是不可行的。舉例來說,如果在重放期間進 行,那么執行耗損均衡將使被重放的音頻的質量嚴重降級。在上文所提及的實例中,“與MP3標準(16KB/S)匹配的常規平均讀取速率”參數的INSQ的BOS決定閾值可以是(例如)“至少2秒的常規數據讀取” G15處所示)。這 表示如果在存儲裝置處以上文所提及的速率(即,16KB/S)接收到數據請求,且如果所述 速率維持至少2秒,那么存儲裝置假定BOS正出現或已經出現;即,這向存儲裝置指示“播 放MP3”INSQ正開始或已經開始,或“播放MP3”INSQ在進行中。在這種情況下(即,“播放 MP3” INSQ在進行中),存儲裝置可執行ISQ操作,但避免執行針對所述“播放MP3” INSQ預 定義的ESQ操作。在上文所提及的實例中,INSQ的EOS參數為“與MP3標準(16KB/s)不匹配的平均 讀取速率”(420處所示),其表示存儲裝置可計算從MP3播放器接收數據讀取請求的平均速 率,看所述平均速率是否為指定速率(即,16KB/S)。在正常數據重放操作下,存儲裝置期望 所述速率為16KB/S,且只要數據請求繼續在存儲裝置處以所述速率被接收,存儲裝置就“知 道” “播放MP3” INSQ仍在進行中。在上文所提及的實例中,“與MP3標準(16KB/S)不匹配的平均讀取速率”參數的 INSQ的EOS決定閾值可以是(例如)“至少1秒不流動” 025處所示)。這表示是否停止 在存儲裝置處以上文所提及的速率(即,16KB/S)接收數據請求持續至少一秒,這向存儲裝 置指示“播放MP3”INSQ正終止或已經終止,或“播放MP3”INSQ不再在進行中。在暫停播放 MP3歌曲或數據期間,或在整個MP3文件已經重放之后,平均讀取速率將與MP3標準偏離。 在這種情況下(即,“播放MP3”INSQ不在進行中),存儲裝置允許執行針對“播放MP3”INSQ 預定義的ESQ操作,或恢復其執行。實例2-主機裝置為數碼相機第二條目含有被稱為“俘獲連拍圖像”的示范性INSQ,其關于數碼相機操作(即, 假定主機裝置為數碼相機)。為了示范起見,假定數碼相機每秒俘獲四個圖像(即,每250 毫秒一個圖像),對每一圖像進行壓縮,并立即一個接一個地將經壓縮的圖像發送到存儲裝 置以供存儲。假定經壓縮圖像的平均大小為2兆字節(MB),相機以8MB每秒(MB/sec)的 速率將圖像數據寫入存儲裝置中。為了評估“俘獲連拍圖像”INSQ的狀態,存儲裝置監視其 從數碼相機接收到的數據寫入請求,并計算數碼相機將圖像的經壓縮數據寫入所述存儲裝 置的存儲空間的平均速率,以便決定數據是否以8MB/sec的期望平均速率寫入。如果數據 是以8MB/sec的期望平均速率或以更高速率寫入,那么這表示“俘獲連拍圖像”INSQ已經開 始,或“俘獲連拍圖像” INSQ在進行中。因此,在此實例中,INSQ的BOS參數是“超過8MB/ s的突發寫入頻率”。如果“俘獲連拍圖像” INSQ在進行中,那么存儲裝置可執行ISQ操作, 但避免執行針對“俘獲連拍圖像” INSQ預定義的ESQ操作。數碼相機以數據突發的形式將圖像傳送到其與之合作的存儲裝置,其中每一數據 突代表一個圖像。在此實例中,將使“俘獲連拍圖像” INSQ的BOS閾值保存為以每兩個連 續數據突發之間一毫秒的最大延遲一個接一個到達的最少三個數據寫入突發。如果在存儲 裝置處以1毫秒的最大延遲接收到三個循序數據突發(以8MB/sec的速率接收每個數據突 發),那么存儲裝置假定“俘獲連拍圖像” INSQ在進行中。因此,INSQ的BOS閾值為“至少 隔開1毫秒的3個突發”。如果“俘獲連拍圖像” INSQ的狀態為“INSQ在進行中”,那么存儲裝置等待EOS指 示,因為(如上文所闡釋)只有在INSQ(其在此實例中為“俘獲連拍圖像”INSQ)終止之后, 才允許執行ESQ操作。為了識別EOS是否出現或是否已經出現,存儲裝置使用INSQ的EOS閾值“突發之間超過3毫秒的延遲”。為了識別“俘獲連拍圖像”INSQ的E0S,存儲裝置監視 從數碼相機接收到的數據寫入請求,并檢查所述數據寫入請求是否以不同于8MB/sec的平 均寫入速率被提供,或兩個連續數據突發之間是否存在超過三毫秒(其為此實例中的INSQ 的EOS閾值)的延遲。如果存在在此期間沒有數據寫入請求在存儲裝置處以期望速率(即, 8MB/sec)被接收到的超過3毫秒的延遲,那么存儲裝置假定“俘獲連拍圖像” INSQ不再在 進行中(即,INSQ已經終止),其表示存儲裝置可允許執行針對“俘獲連拍圖像” INSQ預定 義的ESQ操作,且恢復被掛起的ESQ操作。實例3-主機裝置為計算機系統第三條目含有被稱為“更新啟動圖像”的示范性INSQ,其關于計算機系統中的啟動 操作。為了示范起見,假定計算機系統更新存儲在從扇區#0(零)開始的循序邏輯扇區中 的數據文件。如果扇區的大小為512個字節,且數據文件大小為10千字節(KB),那么所述 數據文件存儲在由十二個邏輯扇區(即,邏輯扇區#0到#19,扇區#0和#19包含在內)組 成的扇區區域中。計算機系統通過更新扇區#0,接著扇區#1,依此類推,直到最后一個扇區 (即,扇區#19)被更新為止,來循序地更新所述數據文件。為了評估“更新啟動圖像”INSQ的狀態,存儲裝置監視其從計算機系統接收到的數 據寫入請求。如果存儲對將數據寫入扇區#0中的寫入請求,那么存儲裝置推斷“更新啟動 圖像” INSQ在進行中,因為INSQ的BOS參數為(在此實例中)“寫入扇區#0”,且INSQ的 BOS閾值為“事件的發生”,其表示所述數據正被或即將被寫入扇區#0中。如果“更新啟動 圖像” INSQ在進行中,那么存儲裝置可執行ISQ操作,但避免針對“更新啟動圖像” INSQ預 定義的ESQ操作。當數據文件的最后一個邏輯扇區(在此實例中為扇區#19)被更新時,存儲裝置推 斷“更新啟動圖像” INSQ不再在進行中,因為EOS參數為“寫入啟動圖像的最后一個扇區”, 且INSQ的EOS閾值為“事件的發生”。即,寫入最后一個扇區一次對存儲裝置來說足以確定 EOS已經出現。如果“更新啟動圖像” INSQ不再在進行中,那么存儲裝置可允許執行ESQ操 作,且恢復被掛起的EXQ操作。實例4-主機裝置是計算機系統第四條目含有被稱為“讀取啟動圖像”的示范性INSQ,其關于計算機系統的啟動操 作。為了示范起見,假定計算機系統讀取存儲在從扇區#0開始的循序邏輯扇區(如上文結 合實例3所述)中的數據文件。為了識別“讀取啟動圖像” INSQ的狀態,或其變化,存儲裝置監視其從計算機系統 接收到的數據讀取請求。如果存在對從扇區#0讀取數據的讀取請求,那么存儲裝置推斷 “讀取啟動圖像” INSQ在進行中,因為BOS參數為“從扇區#0讀取”,且BOS閾值為“事件的 發生”,其表示從扇區#0讀取數據在進行中。在這種情況下(即,“讀取啟動圖像” INSQ在 進行中),存儲裝置可執行ISQ操作,但避免針對“讀取啟動圖像” INSQ預定義的ESQ操作。當數據文件的最后一個邏輯扇區(在此實例中為邏輯扇區#19)最后被讀取時, 存儲裝置推斷“讀取啟動圖像” INSQ不再在進行中,因為EOS參數為“讀取啟動圖像的最后 一個扇區”,且EOS閾值為“事件的發生”。即,讀取最后一個扇區對存儲裝置來說足以推斷 “讀取啟動圖像” INSQ不再在進行中。在這種情況下(即,“讀取啟動圖像” INSQ不再在進 行中),存儲裝置可允許執行ESQ操作,且恢復被掛起的EXQ操作。
遠程裝置或計算機系統可(例如)通過使用專用應用程序編程接口( “API”)向 存儲裝置提供含有靜態參數的INSQ表40 (且,如果需要的話,更新所述INSQ表40)。專用 API可(例如)用于更新或刪除現存表條目,或添加新的表條目等等。簡要地說,“API”是 可由操作系統、庫或服務提供以支持計算機程序所作出的請求的源代碼接口。或者,可在 制造存儲裝置時或在存儲裝置的定制階段由軟件開發人員處理(即,產生和存儲)INSQ表 40。可在運行時間期間,通過在主機裝置上運行的應用程序來處理(即,產生、存儲、修改和 更新)INSQ表40。定制要求可關于在有關主機裝置上運行的應用程序、使用場境、系統特征 等等,或從在有關主機裝置上運行的應用程序、使用場境、系統特征等等得出。圖5展示根據本發明的實例性實施例的INSQ表50。含有INSQ的動態參數的INSQ 表50包含四個實例性條目,編號為1到4,每一條目容納一個INSQ和INSQ相關參數,如下 文所描述。由存儲裝置在運行時間(即,“運行中”)期間響應于(即,得自)主機裝置相對 于主機裝置所呈現的服務而向存儲裝置發布的命令,來動態地收集和更新INSQ表50中所 保存的參數。舉例來說,如果主機裝置是MP3播放器,那么MP3播放器向存儲裝置發送的命 令可與重放和音頻文件相關聯。圖5中展示了實例性動態參數,如下文所述。圖5的INSQ表50含有實例性動態參數,其與圖4的INSQ表40中的四個示范性 INSQ相關,且四個示范性字段用于保存這些參數,如下(1) "INSQ的標識符”(501處所示)。此字段容納INSQ的類型或已指配給INSQ 的名稱。如上文所述,INSQ表50與INSQ表40的四個示范性INSQ相關。因此,INSQ表50 使用與表40相同的INSQ的類型或名稱。(2) “狀態(開/關)”(502處所示)。存儲在此字段中的值(即,“開”或“關”) 指定INSQ是否在進行中。S卩,如果INSQ當前在進行中,那么指配給其的值將為“開”,且如 果INSQ當前不在進行中,那么指配給其的值將為“關”。(3) “動態BOS參數”(503處所示)。如果INSQ不在進行中(即,其在“狀態(開 /關)”字段中的狀態是“關”),那么存儲裝置“等待”(即,期待)INSQ開始。因此,存儲裝 置計算或評估將要保存在“動態BOS參數”字段中的值,以便決定是否已發生BOS指示。存 儲裝置基于存儲裝置從主機裝置接收到的一個或一個以上命令來計算動態BOS參數。(4) “動態EOS參數”(504處所示)。如果INSQ在進行中(即,其在“狀態(開/ 關),,字段中的狀態是“開”),那么存儲裝置“等待”(即,期待)INSQ終止。因此,存儲裝置 計算將要保存在“動態EOS參數”字段中的EOS參數值。存儲裝置基于存儲裝置從主機裝 置接收到的一個或一個以上命令來計算動態EOS參數。繼續上文的實例1,510處展示的稱為“播放MP3”的當前狀態INSQ是“開”,意味 著INSQ在進行中。因此,存儲裝置沒有必要計算BOS參數,出于此原因,當前保存在“動態 BOS參數”字段中的值為“N/A” (即,不適用)。如上文所闡釋,如果INSQ為“開”,那么存 儲裝置期待INSQ終止。因此,存儲裝置評估、計算或檢查動態EOS參數,以便估定是否正發 生EOS或已發生EOS。如果存儲裝置決定正發生EOS或已發生E0S,那么存儲裝置將“播放 MP3” INSQ的狀態從“開”改變為“關”,且評估、計算或檢查動態BOS參數,以便估定是否正 發生BOS或已發生B0S。換句話說,當“播放MP3” INSQ當前是活動(即,其在515處為“開”)時,與“播放 MP3” INSQ相關的動態BOS參數不適用(520處展示為“N/A” ),這意味著必須考慮動態EOS參數的當前值,其在此實例中為“12毫秒”。隨著“播放MP3” INSQ的進行,此動態EOS參數 的值增加,且當其達到或超過靜態EOS閾值“至少一秒不流動”(其在INSQ表40中指定) 時,存儲裝置決定已發生EOS。如果“播放MP3” INSQ不活動(即,如果其為“關”),那么將 要考慮的參數將為動態BOS參數,而不是動態EOS參數。如INSQ表40中所示,“播放MP3,,INSQ的EOS閾值是“ 1秒”(圖4中425處所示), 這意味著MP3播放器從存儲裝置讀取數據的平均速率420 (圖4中所示的標準)必須連續 地與標準速率偏離(即,16KB/S),并持續至少一秒,以使存儲裝置決定已發生EOS。然而, 如圖5中所示,從開始當前“播放MP3” INSQ以來已逝去僅12毫秒(圖5中525處所示)。 因此,存儲裝置仍認為“播放MP3” INSQ處于“開”狀態。繼續上文的實例2,稱為“俘獲連拍圖像”的第二 INSQ的當前狀態為“開”,這意味 著INSQ在進行中。因此,存儲裝置沒有必要計算BOS參數,出于此原因,當前保存在“動態 BOS參數”字段中的值為“N/A” (即,不適用)。如上文所闡釋,如果INSQ為“開”,那么存儲 裝置期待INSQ終止,且因此,其評估、計算或檢查動態EOS參數,以便估定是否正發生EOS。 如果存儲裝置決定已發生E0S,那么存儲裝置將“俘獲連拍圖像” INSQ的狀態從“開”改變 為“關”,且評估、計算或檢查動態BOS參數,以便估定是否已發生B0S。換句話說,因為“俘獲連拍圖像” INSQ當前是活動(即,其為“開”)的,所以與“俘 獲連拍圖像”INSQ相關的動態BOS參數不適用,這意味著必須考慮動態EOS參數的當前值, 其在此實例中為“2. 03毫秒”。隨著“俘獲連拍圖像” INSQ繼續進行,此動態EOS參數的值 增加,且當其達到或超過靜態EOS閾值“突發之間延遲超過3毫秒”(其在INSQ表40中指 定)時,存儲裝置決定正發生或已發生EOS。如果“俘獲連拍圖像” INSQ不活動(即,如果 其為“關”),那么將要考慮的參數將為動態BOS參數,而不是動態EOS參數。如INSQ表40中所示,“俘獲連拍圖像” INSQ的EOS閾值是“突發之間延遲超過3 毫秒”,這意味著數據寫入突發之間的延遲(在字段44中,圖4中所示的標準)必須超過3 毫秒,以使存儲裝置決定已發生EOS。然而,如圖5中所示,存儲裝置至今所計算或測量的最 大延遲僅為2. 03毫秒,出于此原因,存儲裝置仍認為“俘獲連拍圖像” INSQ處于“開”狀態。繼續上文的實例3,稱為“更新啟動圖像”INSQ的第三INSQ的當前狀態為“關”,這 意味著INSQ不活動或不在進行中。因此,存儲裝置不計算動態EOS參數,而是其計算、評估 或檢查動態BOS參數,以便估定是否已發生B0S。如果已發生B0S,那么存儲裝置將“更新啟 動圖像” INSQ的狀態從“關”改變為“開”,且評估、計算或檢查動態EOS參數,以便估定是否 已發生E0S。如INSQ表40中所示,“更新啟動圖像”INSQ的BOS閾值為“事件發生”(“事件”是 指將數據寫入扇區#0中),這意味著必須將數據寫入扇區#0中,以使存儲裝置決定已發生 BOS0然而,如圖5中所示,尚未發生將數據寫入扇區#0中(在圖5中被稱作“未發生”), 出于此原因,存儲裝置仍認為“更新啟動圖像” INSQ處于“關”狀態。繼續上文的實例4,稱為“讀取啟動圖像”INSQ的第四INSQ的狀態為“關”,這意味 著INSQ不活動(S卩,INSQ不在進行中)。因此,存儲裝置不計算動態EOS參數,而是其計算 或檢查動態BOS參數,且以便估定是否已發生B0S。如果已發生B0S,那么存儲裝置將“讀取 啟動圖像” INSQ的狀態從“關”改變為“開”,且評估、計算或檢查動態EOS參數,以便估定是 否已發生E0S。
如INSQ表40中所示,“讀取啟動圖像”INSQ的BOS閾值為“事件發生”(“事件”是 指從扇區#0讀取數據),這意味著必須從扇區#0讀取數據,以使存儲裝置決定已發生B0S。 然而,如圖5中所示,尚未發生從扇區#0讀取數據(在圖5中被稱作“未發生”),出于此原 因,存儲裝置仍認為“讀取啟動圖像” INSQ處于“關”狀態。圖6展示根據本發明的實例性實施例可由存儲裝置用于將INSQ的狀態從 “關”(即,從“INSQ不在進行中”的狀態)改變為“開”(即,改變為“INSQ在進行中”的狀 態)的方法。主機裝置(例如,MP3播放器)可發布一個或一個以上命令并將其轉發給與 INSQ相關的存儲裝置。命令可以是數據讀取請求或數據寫入請求。數據讀取請求和數據寫 入請求可與INSQ相關或相關聯。在步驟50處,存儲裝置接收主機裝置的命令(例如,重放命令)。響應于接收到主 機裝置的命令,存儲裝置開始INSQ檢查例行程序以檢查預先列舉在其INSQ表中的INSQ,以 了解所列舉的INSQ中的任一者是否與所接收的命令相關或受其影響。即,存儲裝置檢查所 接收的命令是否對預先列舉的INSQ中的任一者的當前狀態或狀態具有影響。由存儲裝置 使用的INSQ表可為逐結構等同的,或分別類似于圖4和圖5的INSQ表40和50。在步驟52處,存儲裝置通過檢查第一表的條目而開始檢查(例如,通過使用INSQ 檢查例行程序)INSQ表,且在步驟M處,存儲裝置檢查INSQ表的第一條目是否為“空值”, 其中“空值”指示INSQ表的末尾。如果第一條目為空值(在步驟M處展示為“是”),那么 中止過程(在44處展示為“退出”),因為INSQ表為空,或存儲裝置已關于所接收的命令檢 查了整個INSQ。 如果第一條目不是空值(在步驟M處展示為“否”),這意味著條目含有一 INSQ, 其狀態仍將要由存儲裝置基于當前接收到的命令(或基于當前接收到的命令和一個或一 個以上先前接收到的命令)以及與當前評估的INSQ相關的定義和特征(例如,條件,閾值 等)來評估或重新評估。即,存儲裝置必須決定所討論的INSQ的狀態是否因為存儲裝置已 從主機裝置接收到的一個或一個以上命令而必須改變。在步驟56處,存儲裝置檢查INSQ的當前狀態是否為“關”。如果INSQ的當前狀態 為“關”(在步驟56處展示為“是”),那么這意味著INSQ不活動(即,其不在進行中),且因 此存儲裝置等待預期INSQ狀態發生改變;即,從不活動狀態(即,“INSQ不在進行中”)改 變為“活動狀態”(即,INSQ在進行中)。因此,在步驟58處,存儲裝置測量、檢查或估計BOS參數,并在步驟60處檢查當前 測量、檢查或估計的BOS參數是否超過INSQ表中指定的BOS閾值。如果BOS參數超過BOS 閾值(在步驟60中展示為“是”),那么這向存儲裝置指示當前評估的INSQ的狀態正或最近 已從“不活動”改變為“活動”(即,INSQ現在進行中),且因此存儲裝置不執行與那個INSQ 相關聯的任何新的ESQ操作,或如果當INSQ改變狀態(即,從“不活動”到“活動”)時ESQ 操作在進行中,那么存儲裝置掛起那個ESQ操作,且恢復與所討論的INSQ相關的ISQ操作, 如圖2中所示。另外,在步驟62中,通過將INSQ的狀態從“關”改變為“開”,存儲裝置更新 INSQ表。其后,在步驟64中,存儲裝置繼續移動到INSQ表的下一條目(即,迄今為止的第 二條目),且針對第二條目并針對剩余的INSQ重復結合INSQ表的第一條目所描述的過程, 直到在步驟M處遇到空值條目,其終止INSQ評估過程。將針對存儲裝置從主機裝置接收到 的每一命令重復相同的INSQ評估過程。如果未超過BOS閾值(在步驟60處展示為“否”),那么這意味著所討論的INSQ仍不活動,且因此其當前狀態(即,“關”)應維持不變。因此, 存儲裝置不改變INSQ狀態且評估下一 INSQ的狀態。圖7展示根據本發明的實例性實施例可由存儲裝置用于將INSQ的狀態從 “開”(即,從“ INSQ在進行中”的狀態)改變為“關”(即,改變為“ INSQ不在進行中”的狀 態)的方法。主機裝置(例如,MP3播放器)可發布一個或一個以上命令并將其轉發給與 INSQ相關的存儲裝置。命令可以是數據讀取請求或數據寫入請求。數據讀取請求和數據寫 入請求可與INSQ相關或相關聯。在步驟70處,存儲裝置接收主機裝置的命令(例如,重放命令)。響應于接收到主 機裝置的命令,存儲裝置開始INSQ檢查例行程序以檢查預先列舉在其INSQ表中的INSQ,以 了解所列舉的INSQ中的任一者是否與所接收的命令相關或受其影響。即,存儲裝置檢查所 接收的命令是否對預先列舉的INSQ中的任一者的當前狀態或狀態具有影響。由存儲裝置 使用的INSQ表可為逐結構等同的,或分別類似于圖4和圖5的INSQ表40和50。在步驟72處,存儲裝置通過檢查第一表的條目而開始檢查(例如,通過使用INSQ 檢查例行程序)INSQ表,且在步驟74處,存儲裝置檢查INSQ表的第一條目是否為“空值”, 其中“空值”指示INSQ表的末尾。如果第一條目為空值(在步驟74處展示為“是”),那么 中止過程(在86處展示為“退出”),因為INSQ表為空,或存儲裝置已關于所接收的命令檢 查了整個INSQ。如果第一條目不是空值(在步驟74處展示為“否”),這意味著條目含有一 INSQ, 其狀態仍將要由存儲裝置基于當前接收到的命令(或基于當前接收到的命令和一個或一 個以上先前接收到的命令)以及與當前評估的INSQ相關的定義和特征(例如,條件,閾值 等)來評估或重新評估。即,存儲裝置必須決定所討論的INSQ的狀態是否因為存儲裝置從 主機裝置接收到的一個或一個以上命令而必須改變。在步驟76處,存儲裝置檢查INSQ的當前狀態是否為“開”。如果INSQ的當前狀態 為“開”(在步驟76處展示為“是”),那么這意味著INSQ是活動的(即,其在進行中),且 因此存儲裝置等待預期INSQ狀態發生改變;即,從活動狀態(即,“INSQ在進行中”)改變 為“不活動狀態”(即,INSQ不在進行中)。因此,在步驟78處,存儲裝置測量、檢查或估計BOS參數,并在步驟80處檢查當前 測量、檢查或估計的BOS參數是否超過INSQ表中指定的BOS閾值。如果BOS參數超過BOS 閾值(在步驟80中展示為“是”),那么這向存儲裝置指示當前評估的INSQ的狀態正或最 近已從“活動”改變為“不活動”(即,INSQ不在進行中),且因此存儲裝置掛起ISQ操作,且 恢復與所討論的INSQ相關的ESQ操作,如圖3中所示,且另外,在步驟82中,INSQ的狀態 從“開”改變為“關”。另外,在步驟82中,通過將INSQ的狀態從“開”改變為“關”,存儲裝置更新INSQ 表。其后,在步驟84中,存儲裝置繼續移動到INSQ表的下一條目(即,迄今為止的第二條 目),且針對第二條目并針對剩余的INSQ重復結合INSQ表的第一條目所描述的過程,直到 在步驟74處遇到空值條目,其終止INSQ評估過程。將針對存儲裝置從主機裝置接收到的 每一命令重復相同的INSQ評估過程。如果未超過EOS閾值(在步驟80處展示為“否”),那么這意味著所討論的INSQ仍 是活動的,且因此其當前狀態(即,“開”)應維持不變。因此,存儲裝置不改變INSQ狀態且評估下一 INSQ的狀態。圖8展示根據本發明的實例性實施例的存儲裝置800。存儲裝置800包含大容量 存儲區域808 (其可為快閃存儲器)、控制器840,所示控制器840經由數據和控制線806管 理大容量存儲區域808,且經由主機接口 802與主機裝置850通信。控制器840通過控制 (例如)“讀取”、“寫入”和“擦除”操作,并通過空值與主機裝置850的通信,來控制所有至 /從大容量存儲區域808的數據存儲和數據檢索以及至/從主機裝置850的數據轉移。控 制器840還執行例如損耗平衡等的內部“內務處理”操作。控制器840的這些行為在此項 技術中是已知的。大容量存儲區域808的一部分可用于保存靜態INSQ表810、動態INSQ表820和 ISQ和ESQ表830。靜態INSQ表810可含有預定義INSQ的列表以及與預定義INSQ相關的 靜態INSQ的BOS和EOS參數和閾值。動態INSQ表820可包含有預定義INSQ的列表,或 INSQ表820的條目可與INSQ表810中所保存的INSQ相關聯。動態INSQ表820可另外含 有與預定義INSQ相關的動態INSQ的BOS和EOS參數和閾值。ISQ和ESQ表830可含有多個第一組內部操作(即,多組ESQ操作)和多個第二組 內部操作(即,多組ISQ操作),其分別與預定義INSQ相關聯或相關。即,第一組操作和第 二組操作與預定義INSQ中的每一 INSQ相關聯。靜態INSQ表810可等同于或類似于圖4 的INSQ表,且動態INSQ表820可等同于或類似于圖5的INSQ表。靜態INSQ表810和動 態INSQ表820可視為一個INSQ表,且一般來說,INSQ表810、INSQ表820和ISQ和ESQ表 830可以是一個相關數據庫的一部分,或作為一個相關數據庫來管理。靜態信息(例如,靜 態參數和閾值)應保存在非易失性存儲器中,而動態參數(例如,動態BOS相關值、動態EOS 相關值和INSQ的當前狀態)可保存在易失性存儲器(例如,隨機存取存儲器(“RAM”))中 (或保存在非易失性存儲器中)。主機裝置850將存儲命令發送到存儲裝置800,且針對存儲裝置接收到的每一命 令,控制器840在查找表810和820中搜索命令所屬的或命令可與其相關聯的INSQ。如果 控制器840在查找INSQ表810和820中找到此類INSQ,那么控制器840在動態INSQ表820 中更新屬于那個INSQ的動態參數的值,且基于保存在INSQ表810中的靜態閾值,確定INSQ 正處于何種狀態(即,“ INSQ在進行中”或“ INSQ不在進行中”),或INSQ是否已改變,或將 要改變其狀態,控制器840在查找表ISQ/ESQ表830中查看是否有與INSQ相關聯的ISQ或 ESQ操作將允許執行或恢復,或將避免或掛起,視情況而定。換句話說,控制器840適于使用從主機裝置850接收到的一個或一個以上存儲命 令,以確定一個或一個以上預定義INSQ中的任一者是否正從或已從“不活動”狀態轉變為 “活動”狀態,或從“活動”狀態轉變為“不活動狀態”,且響應于預定義INSQ從“不活動”狀 態轉變為“活動”狀態,控制器840避免或掛起與那個INSQ相關的ESQ操作的執行,且允許 或執行與那個INSQ相關的ISQ操作的執行。響應于INSQ從“活動”狀態轉變為“不活動”狀態,控制器840允許或恢復ESQ操 作的執行,且避免或掛起ISQ操作的執行。控制器840通過確定從主機裝置接收到的一個 或一個以上命令,和/或從所述一個或一個以上命令得到的信息是否滿足如本文所描述的 預定義BOS條件或EOS條件(例如,分別結合圖4和圖5的表40和50),來確定INSQ從“不 活動”狀態轉變為“活動”狀態和從“活動”狀態轉變為“不活動”狀態。控制器840通過將動態變量/參數的值或累加值與預定義靜態參數(即,預設條件)進行比較,來確定命令和 /或從所述命令得到的信息是否滿足預定義BOS條件或EOS條件。控制器840可使用例如計數器860的計數器來對與存儲裝置從主機裝置接收到的 一個或一個以上命令相關的或從其得到的事件進行計數。控制器840可具有例如定時器 870的定時器以執行例如數據讀取速率和數據寫入速率的各種時間相關計算。圖9示意性說明根據本發明實例性實施例的由存儲裝置的控制器使用數據庫 900。查找表905含有四個預定義INSQ 910的示范性列表。雖然圖9中未展示,但查找表 905還含有圖8的查找表810和820中所保存的類型的(或與之類似的)參數和閾值,所述 參數和閾值與示范性INSQ 910相關聯。查找表930可與圖8的ISQ/ESQ表830相同或相 似,其含有與預定義INSQ 910相關聯的ISQ和ESQ操作的示范性列表。舉例來說,ISQ 901 和ESQ 911與稱為“俘獲連拍圖像”的INSQ 910相關聯,ISQ 902和ESQ 912可與稱為“播 放MP3”的INSQ 910相關聯,ISQ 903和ESQ 913可與稱為“更新啟動圖像”的INSQ 910相 關聯,且ISQ 904和ESQ 914可與稱為“讀取啟動圖像”的INSQ910相關聯。由主機裝置(例如圖8的主機裝置850)發布和發送存儲命令,并在存儲裝置(例 如圖8的存儲裝置800)處接收所述存儲命令,所述存儲器命令在915處用符合展示為箭 頭。響應于接收到存儲命令915,存儲裝置的控制器檢查存儲命令915是否屬于任何一個 INSQ 910或是否可與任何一個INSQ 910相關聯。在圖9所示的實例中,發現所接收的存 儲命令915屬于稱為“俘獲連拍圖像”的INSQ 910或其可與稱為“俘獲連拍圖像”的INSQ 910相關聯(所述關聯由虛線920展示)。如上文結合圖5的表50闡釋,動態INSQ表保存每一預定義INSQ的當前狀態(即, “開”或“關”),且對于給定INSQ,如果所討論的INSQ為“開”,那么存儲裝置的控制器檢查 EOS參數和EOS閾值。否則(即,所討論的INSQ為“關”),那么存儲裝置的控制器檢查與所 述INSQ相關聯的BOS參數和BOS閾值。再次參看圖9,通過更新與“俘獲連拍圖像”INSQ相 關聯的動態參數并詳查相應閾值,存儲裝置的控制器“知道” “俘獲連拍圖像” INSQ的狀態 正在或已經從“開”改變為“關”還是從“關”改變為“開”。如果“俘獲連拍圖像” INSQ的狀態正在或已經從“開”改變為“關”,那么這意味著 將避免或掛起ISQ操作并允許執行ESQ操作或應恢復執行ESQ操作。如果“俘獲連拍圖 像” INSQ的狀態正在或已經從“關”改變為“開”,那么這意味著應允許或恢復或執行ISQ 操作且必須避免或掛起ESQ操作。因此,存儲裝置控制器在ISQ/ESQ查找表930中搜索與 INSQ"俘獲連拍圖像”相關的ISQ和ESQ操作。如上文提及,ISQ操作901和ESQ 911與“俘 獲連拍圖像”INSQ相關聯,所述關聯分別如虛線921和931展示。ISQ操作901包含命名為 “ ISQ-I ”、“ ISQ-2 ”、“ ISQ-3 ”、“ ISQ-4 ” 和 “ ISQ-5 ” 的 ISQ 操作。舉例來說,ISQ 操作“ ISQ-I ” 可以是例如在預測和高速緩存預期數據中所涉及的一個操作或一組操作。ESQ操作911包 含命名為 “ESQ-l”、“ESQ-2”、“ESQ-3”、“ESQ-4” 和 “ESQ-5” 的 ESQ 操作。舉例來說,ESQ 操 作“ESQ-1”可以是例如在靜態耗損均衡中所涉及的一個操作或一組操作。根據INSQ的類 型為每一預定義INSQ設置或選擇EOS和BOS參數的類型及其閾值以及ISQ和ESQ操作的 類型。此項技術中已知對這些參數、閾值和操作類型的恰當設置或選擇。圖10展示根據本發明的實例性實施例的可由存儲裝置使用的方法。在步驟1010 處,定義一個或一個以上整體命令序列,其中所述一個或一個以上所定義的整體命令序列中的每一者能夠處于“活動”狀態和“不活動”狀態。在步驟1020處,為所述一個或一個 以上所定義的整體命令序列中的每一者定義第一組內部操作(“ESQ”)和第二組內部操作 (“ISQ”)并將所述內部操作與之相關聯,其中第一組內部操作包含將在相應整體命令序列 處于“活動”狀態時不執行的操作,且第二組內部操作包含準許或將在相應整體命令序列處 于“活動”狀態時執行的操作。在步驟1030處,存儲裝置從主機裝置接收命令,且在步驟1040處,基于從所接收 命令得出且可能從先前所接收命令得出的信息而確定所述一個或一個以上所定義的整體 命令序列中的任一者是否處于“活動”狀態或正在從“不活動”狀態轉變為“活動”狀態。如果所述一個或一個以上所定義的整體命令序列中的任一者處于“活動,,狀態或 正在從“不活動”狀態轉變為“活動”狀態(如步驟1040處的“是”展示),那么在步驟1050 處,抑制執行為所述活動整體命令序列定義并與之相關聯的第一組內部操作(即,ESQ操 作)中的任何操作或掛起其執行,且在步驟1060處,準許執行與所述活動整體命令序列相 關聯的第二組內部操作(即,ISQ操作)中的操作(如果其執行尚未開始的話)或準許繼 續其執行(如果其執行已掛起的話)。在一些情況下,甚至可高度推薦或需要執行對存儲裝 置或整個存儲系統的效率具有某種或重要積極作用的某些操作。然而,如果所述一個或一個以上所定義的整體命令序列中的任一者不處于“活動” 狀態或不在從“不活動”狀態轉變為“活動”狀態(如步驟1040處的“否”展示);S卩,所述整 體序列處于不活動狀態,那么在步驟1070處,抑制執行為所述不活動整體命令序列定義并 與之相關聯的第二組內部操作(ISQ)中的任何操作,且在步驟1080處,準許執行為所述不 活動整體命令序列定義并與之相關聯的第一組內部操作(ESQ)中的操作。關于步驟1040, 在檢查特定INSQ的當前狀態是“開”(或其狀態正在從“關”轉變為“開”)還是“關”(或 其狀態正在從“開”轉變為“關”)之后,確定所述INSQ是活動的還是不活動的,如分別結合 圖6和圖7更詳細描述。所述一個或一個以上所定義的整體命令序列中的至少一者可與重放多媒體內容 相關聯,或與俘獲多媒體內容或圖像相關聯,或與數據同步相關聯,或與啟動命令相關聯。為INSQ定義并與之相關聯的第一組(ESQ)和第二組(ISQ)內部操作中的每一者 可包含以下操作中的任一者快閃管理操作;加密/解密傳出/傳入數據;壓縮/解壓傳出 /傳入數據;反病毒操作;磁盤碎片整理操作;備份數據;和改變數據格式。快閃管理操作可 涉及垃圾收集;激活錯誤校正機制;將數據高速緩存到存儲裝置的快速快閃存儲區域中; 清洗所高速緩存的數據;使用低功率模式;和靜態耗損均衡。在一個實例中,可在與重放音樂文件相關聯的INSQ在進行中(即,活動的)時允 許“低功率模式”操作。也就是說,如果MP3播放器(示范性主機裝置)重放音樂文件,那么 存儲裝置可在存儲裝置正接收用于重放音樂文件的INSQ( S卩,一系列命令)時使用“低功率 模式”。因為重放音樂文件需要以大約、接近或近似16KB/秒的恒定位速率讀取音樂文件, 所以只有其執行不會不利影響所指定的位速率(即,16KB/秒),才可允許低功率模式操作。 可相對于給定INSQ “允許”、“推薦”或“強制”內部操作(ISQ)。在此實例中,“允許” “低功 率模式”操作,這意味著在“MP3播放” INSQ在進行中時執行或抑制執行這些操作不對整個 存儲系統的整體性能存在許多消極或積極作用。在一個實例中,在主機裝置正從存儲裝置讀取操作系統(“OS”)的位圖像時,存儲裝置可使用錯誤校正機制以增強數據讀取可靠性。讀取OS圖像可定義為INSQ,且可為OS 圖像讀取INSQ定義錯誤校正操作。在此實例中,“推薦” “OS圖像讀取”操作,因為在可能 的程度上,推薦采取用以改進數據讀取過程的可靠性的動作。在一個實例中,在數碼相機(示范性主機裝置)正在存儲裝置中存儲連拍照片時, 存儲裝置可使用數據高速緩存操作。在存儲裝置中存儲連拍照片可定義為INSQ,且可為連 拍照片存儲INSQ定義數據高速緩存操作。在此實例中,“強制” “數據高速緩存”操作,因為 數碼相機向存儲裝置傳送照片的速率高于存儲裝置能存儲照片的速度。如果INSQ在進行中,那么不推薦或應避免一些操作。在一個實例中,在MP3播放 器正在重放音樂文件時不推薦執行反病毒操作,因為在此類情況下執行反病毒操作可能造 成聽得見的嗝聲干擾。在一個實例中,在數碼相機正在存儲裝置中存儲連拍照片時必須避 免執行垃圾收集操作,因為在此類情況下執行垃圾收集操作可能造成照片丟失或破壞。請注意,在一些INSQ在進行中時可能準許執行或者可能推薦或強制內部操作,而 在一些其它INSQ在進行中可能必須避免或者可能不推薦所述相同內部操作。因此,此類 內部操作可同時定義為針對一個INSQ定義的第一組內部操作(ESQ)中的操作和針對另一 INSQ定義的第二組內部操作(ISQ)中的操作。舉例來說,針對涉及更新OS位圖像的INSQ推薦執行錯誤校正操作,但在INSQ涉 及重放音樂文件的情況下必須避免執行錯誤校正操作,因為執行錯誤校正操作消耗大量電 力和計算資源。在本發明的描述內容和權利要求書中,動詞“包括”、“包含”和“具有”及其變化形 式中的每一者用于指示所述動詞的賓語未必是動詞主語的部件、組件、元件或零件的完全 列舉。本文中使用冠詞“一”來指代一個或一個以上(即,至少一個)所述冠詞的語法賓語, 這取決于上下文。舉例來說,依據上下文而定,“一元件”可意指一個元件或一個以上元件。 本文使用術語“包含”以意指“包含但不限于”且與短語“包含但不限于”互換使用。本文使 用術語“或”及“和”以意指“和/或”且與術語“和/或”互換使用,除非上下文另有明確指 示。本文使用術語“例如”以意指“例如但不限于”且與短語“例如但不限于”互換使用。已經如此描述了本發明的示范性實施例,所屬領域的技術人員將了解對所揭示實 施例的修改將屬于本發明的范圍內。因此,替代實施例包括更多模塊、更少模塊和/或功能 上等效的模塊。舉例來說,存儲裝置可使用更多、更少、不同、額外或替代標準來決定是否已 經發生EOS或BOS。
權利要求
1.一種用于處理存儲裝置的內部操作的方法,所述方法包括當所述存儲裝置連接至主機裝置時,響應于從接收自所述主機裝置的一個或多個命令 得出的信息,確定命令序列是否處于活動狀態和第一轉變狀態之一,其中在所述第一轉變 狀態中,所述命令序列正從不活動狀態轉變到所述活動狀態;以及當所述命令序列處于所 述活動狀態或所述第一轉變狀態時,抑制執行第一組內部存儲器管理操作中的任何操作, 所述第一組內部存儲器管理操作中的每一者為額外序列操作。
2.根據權利要求1所述的方法,其進一步包括當所述命令序列處于所述活動狀態或 所述第一轉變狀態時,準許執行第二組內部存儲器管理操作中的任何操作,所述第二組內 部存儲器管理操作中的每一者為內部序列操作。
3.根據權利要求2所述的方法,其進一步包括 當所述命令序列處于所述不活動狀態或第二轉變狀態時,準許執行所述第一組內部存 儲器管理操作中的操作,且抑制執行所述第二組內部存儲器管理操作中的任何操作,其中 在所述第二轉變狀態中,所述命令序列正從所述活動狀態轉變到所述不活動狀態,。
4.根據權利要求1所述的方法,其進一步包括通過確定從所接收的一個或多個命令 得出的所述信息是否滿足預定義的序列開始條件,確定所述命令序列是否處于所述第一轉 變狀態。
5.根據權利要求4所述的方法,其中所述預定義的序列開始條件包括平均讀取速率與 預定的讀取速率匹配的條件,其中所述平均讀取速率與所述主機裝置讀取動態圖像專家組 音頻播放器3(MP;3)數據相關聯。
6.根據權利要求1所述的方法,其中所述命令序列與動態圖像專家組音頻播放器 3(MP3)內容的重放相關聯。
7.根據權利要求1所述的方法,其中所述命令序列與數據同步相關聯。
8.根據權利要求1所述的方法,其中所述命令序列與啟動命令相關聯。
9.根據權利要求1所述的方法,其中所述第一組內部存儲管理操作的操作包括以下各 項之一加密/解密傳出/傳入數據;壓縮/解壓傳出/傳入數據;反病毒操作;磁盤碎片整理操作;加強;備份數據;改變數據格式;以及快閃管理操作,其中所述快閃存儲器管理操作可選自以下各項; 垃圾收集; 采用錯誤校正機制;將數據高速緩存到快速快閃存儲區域中; 清洗高速緩存的數據; 低功率模式操作;以及 靜態耗損均衡。
10.根據權利要求2所述的方法,其中所述第二組內部存儲管理操作包括以下各項之加密/解密傳出/傳入數據;壓縮/解壓傳出/傳入數據;反病毒操作;磁盤碎片整理操作;加強;備份數據;改變數據格式;以及快閃管理操作,其中所述快閃存儲器管理操作可選自以下各項; 垃圾收集; 采用錯誤校正機制;將數據高速緩存到快速快閃存儲區域中; 清洗高速緩存的數據; 低功率模式操作;以及 靜態耗損均衡。
11.根據權利要求1所述的方法,其中所接收的一個或多個命令包括數據讀請求和數 據寫請求之一。
12.—種存儲裝置,其包括 大容量存儲區域,其用于保存命令序列,所述命令序列處于活動狀態、不活動狀態、第一轉變狀態和第二轉變狀態之 一,其中所述第一轉變狀態中,所述命令序列正從所述不活動狀態轉變到所述活動狀態,及 所述第二轉變狀態中,所述命令序列正從所述活動狀態轉變到所述不活動狀態;第一組內部存儲器管理操作,所述第一組內部存儲器管理操作中的每一者為額外序列 操作;以及第二組內部存儲器管理操作,所述第二組內部存儲器管理操作中的每一者為內部序列 操作;及控制器,其適于當所述存儲裝置被操作連接到主機裝置時,從所述主機裝置接收一個或多個命令; 基于從所接收的命令得出的信息,確定何時所述命令序列處于所述活動狀態或所述第 一轉變狀態,響應于所述命令序列處于所述活動狀態或所述第一轉變狀態,禁止執行所述第一組內 部存儲器管理操作中的第一操作,且準許執行所述第二組內部存儲器管理操作中的第二操 作。
13.根據權利要求12所述的存儲裝置,其中所述控制器進一步適于基于從所接收的一個或多個命令得出的信息,確定所述命令序列何時處于所述不活動 狀態或所述第二轉變狀態;且響應于所述命令序列處于所述不活動狀態或所述第二轉變狀態,準許執行所述第一組 內部存儲器管理操作中的操作。
14.根據權利要求12所述的存儲裝置,其中所述控制器進一步適于通過確定從所接 收的一個或多個命令得出的所述信息滿足預定義的序列開始條件還是序列結束條件,確定 所述命令序列處于所述第一轉變狀態還是所述第二轉變狀態。
15.根據權利要求14所述的存儲裝置,其中所述預定義的序列開始條件為所述存儲裝 置在預定義的時間段內接收預定數量的數據突發。
16.根據權利要求14所述的存儲裝置,其中所述控制器用于確定從所接收的一個或多 個命令得出的所述信息是否滿足特定的預定義的序列結束條件,其中所述特定的預定義的 序列結束條件為所述存儲裝置接收連續兩個數據突發的時間延遲超過預定的時間段。
17.根據權利要求14所述的存儲裝置,其中所述控制器用于通過對存儲在參數表中的 預定義的序列開始條件閾值的比較,確定從所接收的一個或多個命令得出的所述信息是否 滿足特定的預定義的序列開始條件,其中所述參數表在所述存儲裝置中。
18.根據權利要求14所述的存儲裝置,其中所述控制器用于通過對存儲在參數表中的 預定義的序列結束條件閾值的比較,確定從所接收的一個或多個命令得出的所述信息是否 滿足特定的預定義的序列結束條件,其中所述參數表在所述存儲裝置中。
19.根據權利要求12所述的存儲裝置,其中所述第一組內部存儲管理操作的所述第一 操作為以下各項之一加密/解密傳出/傳入數據;壓縮/解壓傳出/傳入數據;反病毒操作;磁盤碎片整理操作;加強;備份數據;改變數據格式;以及快閃管理操作,其中所述快閃存儲器管理操作可選自以下各項; 垃圾收集; 采用錯誤校正機制;將數據高速緩存到快速快閃存儲區域中; 清洗高速緩存的數據; 低功率模式操作;以及 靜態耗損均衡。
20.根據權利要求12所述的存儲裝置,其中所述第一組內部存儲管理操作的所述第一 操作為以下各項之一加密/解密傳出/傳入數據;壓縮/解壓傳出/傳入數據;反病毒操作;磁盤碎片整理操作;加強;備份數據;改變數據格式;以及快閃管理操作,,其中所述快閃存儲器管理操作可選自以下各項; 垃圾收集; 采用錯誤校正機制;將數據高速緩存到快速快閃存儲區域中; 清洗高速緩存的數據; 低功率模式操作;以及 靜態耗損均衡。
全文摘要
本發明涉及通過存儲裝置管理內部操作。本發明提供一種方法,其使存儲裝置能夠自主地(即,在沒有主機裝置干預的情況下)確定與由所述主機裝置發布的一個或一個以上存儲命令有關的整體命令序列是否處于某一狀態(即,其是“活動的”還是“不活動的”)或正從“活動”狀態轉變到“不活動”狀態還是從“不活動”狀態轉變到“活動”狀態。依據所述確定的狀態或轉變而定,所述存儲裝置確定是否抑制執行額外序列(“ESQ”)操作并準許執行內部序列(“ISQ”)操作,或反之亦然。
文檔編號G06F12/02GK102063295SQ20101028684
公開日2011年5月18日 申請日期2008年5月28日 優先權日2007年5月28日
發明者埃拉德·巴拉姆, 阿米爾·莫塞克 申請人:桑迪士克Il有限公司