TW201734804A - 用戶可配置被動背景操作 - Google Patents
用戶可配置被動背景操作 Download PDFInfo
- Publication number
- TW201734804A TW201734804A TW105140964A TW105140964A TW201734804A TW 201734804 A TW201734804 A TW 201734804A TW 105140964 A TW105140964 A TW 105140964A TW 105140964 A TW105140964 A TW 105140964A TW 201734804 A TW201734804 A TW 201734804A
- Authority
- TW
- Taiwan
- Prior art keywords
- solid state
- state drive
- queue depth
- condition
- garbage collection
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
本發明闡述一種允許固態驅動機執行被動垃圾收集的系統及方法。所述固態驅動機可包括:儲存器,儲存資料;以及垃圾收集邏輯,可對所述儲存器執行垃圾收集。接收電路可自主機接收配置命令。所述配置命令可包括例如空閒持續時間及/或隊列深度臨限值等條件。條件儲存器可儲存所述條件。狀態確定器可確定所述固態驅動機的狀態。比較器可將所述固態驅動機的所述狀態與所述條件進行比較以判斷是否觸發被動垃圾收集。
Description
本發明概念大體而言是有關於固態驅動機(Solid State Drive,SSD),且更具體而言是有關於當固態驅動機可執行垃圾收集(Garbage Collection,GC)時進行的增強。
垃圾收集是固態驅動機(SSD)上的常發事件。當固態驅動機用盡自由抹除區塊時,所述固態驅動機會執行垃圾收集(GC)以空出新的抹除區塊以供新的寫入使用。此過程可能使固態驅動機的讀取/寫入效能減緩,乃因寫入/讀取必須在可對請求提供服務之前等待垃圾收集完成。例如儲存器智慧(Storage Intelligence)等特徵有助於利用由主機啟動的垃圾收集來應對此問題。然而,此要求是主機發出垃圾收集命令以通知裝置開始進行垃圾收集。
仍需要找到一種方式來提高大資料庫的效能並使將延時最小化及壓低成本兩個目標達成平衡。
根據發明概念的實施例,提供一種固態驅動機(SSD),所述固態驅動機包括:儲存器,用於資料;垃圾收集邏輯,對所述儲存器執行垃圾收集;接收電路,接收配置命令及資料請求,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件;條件儲存器,儲存所述條件;狀態確定器,確定所述固態驅動機的狀態;以及比較器,將所述固態驅動機的所述狀態與所述條件進行比較。
根據本發明概念的另一實施例,提供一種方法,所述方法包括:在固態驅動機(SSD)處接收配置命令,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件;將所述條件儲存於所述固態驅動機上;以及使用所述條件對所述固態驅動機執行垃圾收集。
根據本發明概念的又一實施例,提供一種製品,所述製品包括有形儲存媒體,所述有形儲存媒體上儲存有非暫時性指令,所述非暫時性指令當由機器執行時使得:在固態驅動機(SSD)處接收配置命令,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件;將所述條件儲存於所述固態驅動機上;以及使用所述條件對所述固態驅動機執行垃圾收集。
現將詳細參照本發明概念的實施例,所述實施例的例子示於附圖中。在以下詳細說明中,提出諸多具體細節以使得能夠達成對本發明概念的透徹理解。然而,應理解,此項技術中具有通常知識者可在不使用該些具體細節的條件下實踐本發明概念。在其他實例中,未對眾所習知的方法、過程、組件、電路、及網路予以詳細闡述,以避免使所述實施例的各個態樣不必要地模糊。
應理解,儘管本文中可能使用用語「第一」、「第二」等來闡述各種元件,然而該些元件不應受該些用語限制。該些用語僅用於區分各個元件。舉例而言,在不背離本發明概念的範圍的條件下,可將第一模組稱為第二模組,且相似地,可將第二模組稱為第一模組。
本文中在對本發明概念的說明中使用的術語僅用於闡述具體實施例而非旨在限制本發明概念。除非上下文中清楚地另外指示,否則在對本發明概念及隨附申請專利範圍的說明中使用的單數形式「一(a、an)」及「所述(the)」旨在亦包含複數形式。亦應理解,本文所用用語「及/或(and/or)」指代且囊括相關所列項中一或多個項的任意及全部可能組合。更應理解,當在本說明書中使用用語「包括(comprises及/或comprising)」時,是指明所陳述特徵、整數、步驟、操作、元件、及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件、及/或其群組的存在或添加。所述圖式的組件及特徵未必按比例繪製。
藉由在所述裝置的狀態已越過某一臨限值時容許所述裝置被配置成在各輸入/輸出請求之間自動開始背景操作,例如垃圾收集等由主機啟動的背景操作的效力可以得到提高。此特徵可由主機藉由命令或設定頁面而進行賦能或去能。
容許所述裝置被配置成自動開始背景操作可幫助主機在對主機的應用進行最少的修改或不進行修改的條件下經歷輸入/輸出(input/output,I/O)的改善。此特徵使對主機應用未意料到的固態驅動機(SSD)空閒時間的使用最大化。主機可將固態驅動機配置成在各命令請求(即,空閒時間)之間自動開始背景操作。
在一個例子中,主機可將固態驅動機裝置配置成在空閒持續時間達到某一時間時自動開始背景操作:例如,50毫秒(ms)。所述固態驅動機可在隊列中不存在主機命令時開啟空閒計時器且在已過50毫秒時開始背景操作。
在另一例子中,主機可將固態驅動機裝置配置成在命令隊列深度落至低於某一水準(例如,10個命令)時自動開始背景操作。此種低隊列深度可向所述裝置表明存在「輕的」訊務量且因此裝置可運行背景操作。此可對正被處理的當前輸入/輸出的效能產生影響,但不應對輸入/輸出具有顯著的總體影響。
所述裝置可使用所述裝置的介面協定(例如,小電腦系統介面(Small Computer System Interface,SCSI)、非揮發性快速記憶體(Non-Volatile Memory Express,NVMe)、高級技術附接(AT Attachment,ATA)、串列高級技術附接(Serial ATA,SATA)、網際網路小電腦系統介面(iSCSI)、光纖通道(Fiber Channel,FC)、乙太網路等)來配置。舉例而言,在小電腦系統介面中,可在模式頁面中設定配置值以對被動垃圾收集進行賦能以及對背景操作條件設置進行設定,在非揮發性快速記憶體中,可在特徵頁面中對該些設置進行設定,且以此類推。
圖1示出根據本發明概念的實施例包括被配備用於執行被動垃圾收集的固態驅動機(SSD)的系統。在圖1中,電腦105可包括處理器110、記憶體115、及固態驅動機120。處理器110可為任一種處理器:例如,英特爾至強(Intel Xeon)、賽揚(Celeron)、安騰(Itanium)或淩動(Atom)處理器、或者AMD皓龍(Opteron)處理器。記憶體115可為任一種記憶體,例如非揮發性記憶體(例如,快閃記憶體)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)、持續隨機存取記憶體(Persistent Random Access Memory,PRAM)等,但通常為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。固態驅動機120可為任一種固態驅動機。另外,固態驅動機120可被可自本發明概念的實施例獲益的任何等效儲存裝置取代。電腦105自身可被例如膝上型電腦、伺服器、或可攜式計算裝置(例如,智慧型電話)等提供類似功能性且不失一般性的任何機器取代。為簡潔起見,電腦105將稱作「主機」。
圖2示出圖1所示主機105的其他細節。參照圖2,通常,主機105包括一或多個處理器110,所述一或多個處理器110可包括記憶體控制器205及計時器210,記憶體控制器205及計時器210可用於協調主機105的組件的運作。處理器110亦可耦合至記憶體115,記憶體115可包括例如隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、或其他狀態保存媒體。處理器110亦可耦合至儲存裝置120且耦合至網路連接器215,網路連接器215可為例如乙太網路連接器或無線連接器。處理器110亦可連接至其他組件中的匯流排220,匯流排220可附接有用戶介面225及可使用輸入/輸出引擎230來管理的輸入/輸出介面埠。
圖3示出被配備用於執行被動垃圾收集的圖1所示固態驅動機120的細節。在圖3中,固態驅動機120可包括可用於發送及接收資訊(例如操作或資料)的電路305。固態驅動機120亦可包括固態驅動機控制器310及快閃記憶體315。固態驅動機控制器310可控制固態驅動機120的運作。快閃記憶體315可儲存在可進行垃圾收集的區塊中的資料。
固態驅動機控制器310可包括在其他組件中的狀態確定器320、比較器325、條件儲存器330、觸發器電路335、及垃圾收集邏輯340。狀態確定器320可確定固態驅動機120的狀態。固態驅動機120的「狀態」可相依於圖1所示主機105所規定的是哪一條件。如上所述,主機105可規定不同的條件,例如空閒持續時間(即,固態驅動機120不處理來自圖1所示主機105或其他主機的請求的期間的間隔)或隊列深度(即,有多少個正待處理的命令)。依據圖1所示主機105所規定的條件,狀態確定器320可確定固態驅動機120的適宜狀態。
比較器325可將由狀態確定器320確定的固態驅動機120的狀態與圖1所示主機105所規定的條件進行比較。舉例而言,若圖1所示主機105規定了為50毫秒的空閒持續時間,則比較器325可將此空閒持續時間與由狀態確定器320確定的固態驅動機120實際已空閒的時間長度進行比較。若固態驅動機120已空閒達至少50毫秒,則比較器325可指示滿足所述條件。作為另一選擇,若圖1所示主機105規定了為10個命令的隊列深度,則比較器325可將此隊列深度與固態驅動機120的當前擱置(pending)的命令的數目進行比較。若固態驅動機120具有不多於10個當前擱置的命令,則比較器325可指示滿足所述條件。
條件儲存器330可在固態驅動機120上以本地方式儲存用於判斷何時執行被動垃圾收集的條件。舉例而言,若圖1所示主機105規定了為50毫秒的空閒持續時間,則條件儲存器330可將50毫秒儲存為所述條件。作為另一選擇,若圖1所示主機105規定了為10個命令的隊列深度,則條件儲存器330可將10個命令儲存為所述條件。比較器325可自條件儲存器330存取所述條件。
條件可為單一的或複合的。舉例而言,圖1所示主機105可規定單一的條件,例如為50毫秒的空閒持續時間。接著,若固態驅動機120空閒達50毫秒,則可觸發被動垃圾收集。以此種方式執行被動垃圾收集的優點為固態驅動機120可在無來自圖1所示主機105的指令的條件下盡全力在快閃記憶體315內保持有盡可能多的自由抹除區塊。但圖1所示主機105亦可規定由為50毫秒的空閒持續時間及少於10,000個自由抹除區塊構成的複合條件。以此種方式,即使固態驅動機120空閒達充足的間隔,若固態驅動機120具有足夠的自由抹除區塊,則固態驅動機120仍將不執行被動垃圾收集。藉由不執行被動垃圾收集,固態驅動機120可避免在另一命令進入時不必要地忙碌,所述另一命令的進入可在垃圾收集完成的同時發生延遲。
當使用複合條件時,該些複合條件可使用傳統邏輯運算符(「及(AND)」、「或(OR)」、及「非(NOT)」)而以任何所期望方式且以任何數目加以組合。舉例而言,圖1所示主機105可規定為(持續時間=50毫秒)及(隊列深度<=10個命令)及(自由抹除區塊<10,000個)的條件。此種組合規定:要執行被動垃圾收集,則固態驅動機120的隊列深度必須在為50毫秒的持續時間內不大於10個命令;並且即使如此,被動垃圾收集亦僅在快閃記憶體315中存在少於10,000個自由抹除區塊時才將執行。應注意在此例子中,持續時間並非衡量空閒持續時間(即,固態驅動機120不處理任何命令的期間的間隔),而是闡述固態驅動機120的總體狀態(隊列中有10個或更少命令及自由抹除區塊少於10,000個)保持不變的期間的間隔。藉由使用持續時間的此更廣義的概念,可使用複合條件(持續時間=50毫秒)及(隊列深度=0)規定空閒持續時間。
當所述條件為複合的時,狀態確定器320可確定固態驅動機120的多個狀態。舉例而言,若圖1所示主機105規定(持續時間=50毫秒)及(自由抹除區塊<10,000)的條件,則狀態確定器320可確定固態驅動機120的空閒時間及自由抹除區塊計數二者。
觸發器電路335可接收比較器325的結果。觸發器電路335可接著在滿足所述條件時發送觸發訊號至垃圾收集邏輯340以執行被動垃圾收集。
垃圾收集邏輯340可為對快閃記憶體315執行垃圾收集的邏輯。垃圾收集自身為傳統的,且此處無需對其予以贅述。
儘管圖3將狀態確定器320、比較器330、條件儲存器330、及觸發器電路335示出為固態驅動機控制器310內的獨立組件,然而本發明概念的實施例可將該些組件組合成單個單元,或組合成任何所期望的子組合。圖3將該些組件示出為獨立組件僅是為了更佳地說明在執行被動垃圾收集的過程中所涉及的操作。
圖4示出發送配置命令、隨後資料請求至圖1所示固態驅動機120的圖1所示主機105。在圖4中,主機105可發送配置命令405至固態驅動機120。配置命令405可包括條件410,條件410可為單一條件或複合條件。當使用配置命令405配置被動垃圾收集時,主機105可發送資料請求415、420、及425。儘管圖4示出主機105發送三個資料請求415、420、及425,然而本發明概念的實施例可支援任何數目的資料請求。
另外,主機105可發送多個配置命令405。舉例而言,主機105可發送第一配置命令,所述第一配置命令將條件410規定為10個命令的隊列深度。但基於固態驅動機120的響應時間,主機105可決定將條件410改變至為50毫秒的空閒持續時間。主機105可發送如所期望般多的配置命令405;通常,最新配置命令將置換任何先前的配置命令。
圖5示出根據本發明概念的實施例用於基於圖1所示固態驅動機120已空閒的時間長度而判斷是否執行被動垃圾收集的圖3所示比較器330。在圖5中,條件505被設定為空閒持續時間:例如,50毫秒。狀態確定器320可對圖1所示固態驅動機120已空閒的時間長度進行追蹤。舉例而言,狀態確定器320可在固態驅動機120變得空閒時開啟計時器,且可發送週期性狀態資訊(示出為狀態510)至比較器330。比較器330可接著將狀態510與條件505進行比較。當基於狀態510而滿足條件505時,比較器330可使用觸發器515指示成功比較,所述成功比較可被發送至圖3所示觸發器電路335。
圖5亦示出接收自由抹除區塊數目520的比較器330。如上所述,在其中圖1所示主機105規定複合條件的情境中,亦可藉由狀態確定器320而確定自由抹除區塊數目520。但若圖1所示條件410僅慮及圖1所示固態驅動機120的空閒時間,則可自圖5省略自由抹除區塊數目520。
圖6示出根據本發明概念的另一實施例用於基於圖1所示固態驅動機120的隊列深度而判斷是否執行被動垃圾收集的圖3所示比較器330。圖6相似於圖5,除了圖6使用隊列深度作為圖4所示條件410而非使用空閒時間作為圖4所示條件410以外。因此,條件605示出比較器330所慮及的隊列深度臨限值。比較器330亦可將狀態610視作狀態確定器320所確定的命令隊列的深度。作為所述比較的結果,若滿足條件605,則比較器330可產生觸發器515。
正如圖5,圖6示出亦接收自由抹除區塊數目520的比較器330。若條件410包括自由抹除區塊的臨限數目,則狀態確定器320可確定自由抹除區塊數目520,比較器330可將自由抹除區塊數目520與自由抹除區塊的臨限數目進行比較。若圖4所示條件410不包括自由抹除區塊的臨限數目,則可自圖6省略自由抹除區塊數目520。
圖7示出在圖1所示固態驅動機120包括多個命令隊列時確定圖1所示固態驅動機120的隊列深度的圖3所示狀態確定器320。在圖7中,狀態確定器320可接收深度705、710、及715,深度705、710、及715可代表圖1所示固態驅動機120中的三個命令隊列的深度。儘管圖7示出三個深度705、710、及715,然而本發明概念的實施例可對於任何數目的命令隊列支援任何數目的深度。
給定深度705、710、及715,狀態確定器320可將任何所期望統計數值計算為圖6所示命令隊列深度610。示例性統計數值可包括平均值720(亦稱為算術平均數)、和725、中值730、最小值735、及最大值740,但本發明概念的其他實施例可計算其他統計數值。平均值720可計算為所有深度705、710、及715之和除以深度705、710、及715的數目。和725可簡單地計算為所有深度705、710、及715之和(和725可代表橫跨所有隊列的擱置命令的總數目)。中值730可代表在所有隊列大小按數值次序排列時位於中間的隊列的大小。最小值735可代表具有最小數目的擱置命令的隊列的大小。並且最大值740可代表具有最大數目的擱置命令的隊列的大小。
圖8A至圖8B示出根據本發明概念的實施例管理對圖1所示固態驅動機120進行的背景垃圾收集的過程的流程圖。在圖8A中,在方塊805處,圖3所示固態驅動機控制器310可判斷圖1所示固態驅動機120是否被設定成執行背景垃圾收集。若圖1所示固態驅動機120被設定成執行背景垃圾收集,則在方塊810處,圖3所示固態驅動機控制器310(藉由全部在圖3中示出的狀態確定器320、比較器325、及條件儲存器330)可等待直至滿足圖4所示條件410為止。當滿足圖4所示條件410時,在方塊815中,圖3所示觸發器電路335可觸發垃圾收集邏輯340開始背景垃圾收集。
在方塊820(圖8B)中,圖3所示固態驅動機控制器310可判斷在發生背景垃圾收集的同時是否有正擱置完成的主機命令。若不存在正擱置完成的主機命令,則在方塊825處可繼續進行背景垃圾收集。否則,在方塊830處,圖3所示固態驅動機控制器310(藉由全部在圖3中示出的狀態確定器320、比較器325、及條件儲存器330)可判斷是否仍滿足圖4所示條件410。若仍滿足圖4所示條件410,則控制可延伸至方塊825以繼續進行背景垃圾收集。否則,在方塊835處,可暫停背景垃圾收集,以允許處理擱置的主機命令。
圖9示出根據本發明概念的實施例為何圖1所示固態驅動機120可配置以執行被動垃圾收集的示例性過程的流程圖。在圖9中,在方塊905處,圖3所示接收電路305可接收圖4所示配置命令405。在方塊910處,圖3所示固態驅動機控制器310可辨識圖4所示配置命令405中的圖4所示條件410。在方塊915處,條件儲存器330可儲存圖4所示條件410。在方塊920處,圖3所示固態驅動機控制器310可使用圖4所示條件410來判斷是否被動地觸發垃圾收集。以下在圖10至圖11中示出可如何實作方塊920的例子。
在方塊925中,圖3所示接收電路305可自圖1所示主機105接收命令以執行垃圾收集。此命令可用於由主機啟動的垃圾收集。在方塊930處,圖3所示垃圾收集邏輯340可執行由主機啟動的垃圾收集。處理可接著返回至方塊920。應注意,由主機啟動的垃圾收集為可選的且如由虛線箭頭935所示可被省略。
圖10示出根據本發明概念的實施例圖1所示固態驅動機120使用圖1所示固態驅動機120的圖5所示空閒時間505且視需要使用圖1所示固態驅動機120的圖5所示自由區塊計數520來判斷何時執行被動垃圾收集的示例性過程的流程圖。在圖10中,在方塊1005處,狀態確定器320可對圖1所示固態驅動機120的圖5所示空閒時間510進行追蹤。在方塊1010處,圖3所示比較器330可將圖5所示空閒時間510與圖5所示空閒持續時間505進行比較。在方塊1015處,圖3所示固態驅動機控制器310可判斷圖5所示空閒時間510是否滿足圖5所示空閒持續時間505。若不滿足圖5所示空閒持續時間505,則控制可返回至方塊1005。
若圖5所示空閒時間510滿足圖5所示空閒持續時間505,則在方塊1020處,圖3所示固態驅動機控制器310可判斷在圖1所示固態驅動機120中是否存在充足數目的自由抹除區塊。若存在充足數目的自由抹除區塊,則控制可返回至方塊1005。否則,控制可進行至方塊930,在方塊930中垃圾收集邏輯340可對圖3所示快閃記憶體315執行垃圾收集。應注意,在圖10中,方塊930為被動垃圾收集操作而非由主機啟動的垃圾收集操作;但對於圖3所示垃圾收集邏輯340而言並無差別。如由虛線箭頭1025所示,方塊1020為可選的,在所述情形中圖1所示固態驅動機120中的自由抹除區塊的數目不是圖4所示條件410的部分。
圖11示出根據本發明概念的實施例圖1所示固態驅動機120使用圖1所示固態驅動機120的圖6所示隊列深度605且視需要使用圖1所示固態驅動機120的圖6所示自由區塊計數520來判斷何時執行被動垃圾收集的示例性過程的流程圖。在圖11中,在方塊1105處,狀態確定器320可對圖1所示固態驅動機120的圖6所示隊列深度605進行追蹤。在方塊1110處,圖3所示比較器330可將圖6所示隊列深度605與圖6所示隊列深度臨限值610進行比較。在方塊1115處,圖3所示固態驅動機控制器310可判斷圖6所示隊列深度605是否滿足圖6所示隊列深度臨限值610。若不滿足圖6所示隊列深度臨限值610,則控制可返回至方塊1105。
若圖6所示隊列深度605滿足圖6所示隊列深度臨限值610,則在方塊1120處圖3所示固態驅動機控制器310可判斷在圖1所示固態驅動機120中是否存在充足數目的自由抹除區塊。若存在充足數目的自由抹除區塊,則控制可返回至方塊1105。否則,控制可進行至方塊930,在方塊930中垃圾收集邏輯340可對圖3所示快閃記憶體315執行垃圾收集。應注意,在圖11中,方塊930為被動垃圾收集操作而非由主機啟動的垃圾收集操作;但對於圖3所示垃圾收集邏輯340而言並無差別。如由虛線箭頭1125所示,方塊1120為可選的,在所述情形中圖1所示固態驅動機120中的自由抹除區塊的數目不是圖4所示條件410的部分。
圖12示出根據發明概念的實施例圖3所示狀態確定器320在圖1所示固態驅動機120包括多個命令隊列時確定圖1所示固態驅動機120的圖6所示隊列深度610的示例性過程的流程圖。在方塊1205中,圖3所示狀態確定器320可確定所述多個隊列中的每一者的圖7所示深度705、710、及715。在方塊1210處,圖3所示狀態確定器320可根據所述多個隊列的圖7所示深度705、710、及715計算例如全部在圖7中示出的平均值720、和725、中值730、最小值735、或最大值740等統計數值。狀態確定器320可接著使用此所計算統計數值作為圖6所示隊列深度610。
在圖8A至圖12中,示出了本發明概念的某些實施例。但熟習此項技術者應認識到,藉由改變所述方塊的次序、藉由省略方塊、或藉由包括未在圖式中示出的環節,本發明概念亦可具有其他實施例。無論是否明確闡述,流程圖的所有此類變型均被視為本發明概念的實施例。
以下論述旨在提供對其中可實作有本發明概念的某些態樣的適合的一或多個機器的簡要大體說明。所述一或多個機器可至少部分地藉由以下來控制:來自例如鍵盤、滑鼠等傳統輸入裝置的輸入;以及自另一機器接收的指示、與虛擬實境(virtual reality,VR)環境的交互、生物劑量學回饋(biometric feedback)、或另一種輸入訊號。本文中所用用語「機器」旨在廣泛地囊括單片機(single machine)、虛擬機(virtual machine)、或通訊地耦合的一起運作的機器、虛擬機、或裝置的系統。示例性機器包括:計算裝置,例如個人電腦、工作站、伺服器、可攜式電腦、手持式裝置、電話機、平板電腦(tablet)等;以及運輸裝置,例如私人或公共運輸工具(例如,汽車、火車、計程車等)。
所述一或多個機器可包括例如可程式化或非可程式化邏輯裝置或陣列、應用專用積體電路(Application Specific Integrated Circuit,ASIC)、嵌入式電腦、智慧卡等嵌入式控制器。所述一或多個機器可使用一或多個連接(例如經由網路介面、數據機、或其他通訊耦合進行的連接)而連接至一或多個遠端機器。各機器可藉由例如內部網路、網際網路、局部區域網路、廣域網路等實體網路及/或邏輯網路而互連。熟習此項技術者應知,網路通訊可使用包括射頻(radio frequency,RF)、衛星、微波、電氣及電子工程師學會(Institute of Electrical and Electronics Engineers,IEEE)802.11、藍芽®、光學裝置、紅外裝置、纜線、雷射等各種有線及/或無線短程或長程載體或協定。
本發明概念的實施例可藉由參照或結合包括功能、過程、資料結構、應用程式等的相關聯資料來闡述,所述相關聯資料當由機器存取時會使得所述機器執行任務或定義抽象資料類型或低層級硬體上下文。相關聯資料可儲存於例如以下等裝置中:揮發性及/或非揮發性記憶體,例如隨機存取記憶體、唯讀記憶體等;或者其他儲存裝置及其相關聯的儲存媒體,包括硬驅動機、軟碟、光學儲存器、磁帶、快閃記憶體、記憶條、數位視訊光碟、生物邏輯儲存器等。相關聯資料可以封包、串列資料、並列資料、傳播訊號等形式藉由包括實體網路及/或邏輯網路的傳輸環境而進行傳遞且可以壓縮或加密格式使用。相關聯資料可用於分佈式環境中,且在本地及/或遠端地儲存以供機器存取。
發明概念的實施例可包括包含能夠由一或多個處理器執行的指令的有形非暫時性機器可讀取媒體,所述指令包括執行本文所述本發明概念的元件的指令。
由於已參照所示實施例闡述並說明瞭本發明概念的原理,因此應認識到,在不背離此類原理的條件下可在佈置及細節上對所示實施例加以修改且可以任何所期望方式將所示實施例加以組合。而且,儘管前面的論述已著重於具體實施例,然而亦慮及其他配置。具體而言,儘管本文中使用例如「根據本發明概念的實施例」等表達,然而該些片語意欲大體提及實施例可能性,且並非旨在將本發明概念限制為具體實施例配置。本文中所使用的該些用語可提及能夠組合成其他實施例的相同的或不同的實施例。
前面的說明性實施例不應被視作限制其發明概念。儘管已闡述了若干實施例,然而熟習此項技術者將易知,在不本質上背離本發明的新穎教示內容及優點的條件下可對該些實施例作出諸多潤飾。因此,所有此類潤飾皆旨在包含於如申請專利範圍中所界定的此發明概念的範圍內。
本發明概念的實施例可擴展至以下聲明且並無限制:
聲明1. 本發明概念的實施例包括一種固態驅動機(SSD),所述固態驅動機(SSD)包括: 儲存器,用於資料; 垃圾收集邏輯,對所述儲存器執行垃圾收集; 接收電路,接收配置命令及資料請求,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件; 條件儲存器,儲存所述條件; 狀態確定器,確定所述固態驅動機的狀態;以及 比較器,將所述固態驅動機的所述狀態與所述條件進行比較。
聲明2. 本發明概念的實施例包括根據聲明1的固態驅動機,更包括觸發器電路,若所述比較器指示所述固態驅動機的所述狀態滿足所述條件,則所述觸發器電路觸發所述垃圾收集邏輯對所述儲存器執行垃圾收集。
聲明3. 本發明概念的實施例包括根據聲明1的固態驅動機,其中所述條件包括複合條件。
聲明4. 本發明概念的實施例包括根據聲明2的固態驅動機,其中所述觸發器電路運作以在所述比較器指示所述固態驅動機的所述狀態滿足所述條件且所述固態驅動機上的自由抹除區塊的數目低於臨限值時觸發所述垃圾收集邏輯對所述儲存器執行垃圾收集。
聲明5. 本發明概念的實施例包括根據聲明1的固態驅動機,其中所述接收電路運作以自主機接收所述配置命令。
聲明6. 本發明概念的實施例包括根據聲明1的固態驅動機,其中: 所述條件包括所述空閒持續時間; 所述狀態確定器運作以確定所述固態驅動機的空閒時間;且 所述比較器運作以將所述固態驅動機的所述空閒時間與所述空閒持續時間進行比較。
聲明7. 本發明概念的實施例包括根據聲明1的固態驅動機,其中: 所述條件包括所述隊列深度臨限值; 所述狀態確定器運作以確定所述固態驅動機的命令隊列深度;且 所述比較器能夠運作以將所述固態驅動機的所述命令隊列深度與所述隊列深度臨限值進行比較。
聲明8. 本發明概念的實施例包括根據聲明7的固態驅動機,其中所述狀態確定器運作以自多個深度確定所述固態驅動機的所述命令隊列深度。
聲明9. 本發明概念的實施例包括根據聲明8的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度的平均值。
聲明10. 本發明概念的實施例包括根據聲明8的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度之和。
聲明11. 本發明概念的實施例包括根據聲明8的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度的中值。
聲明12. 本發明概念的實施例包括根據聲明8的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度中的最大值。
聲明13. 本發明概念的實施例包括根據聲明8的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度中的最小值。
聲明14. 本發明概念的實施例包括根據聲明1的固態驅動機,其中所述接收電路運作自主機接收指令來執行垃圾收集。
聲明15. 本發明概念的實施例包括根據聲明1的固態驅動機,其中所述配置命令包括用戶可配置的配置命令。
聲明16.本發明概念的實施例包括一種方法,所述方法包括: 在固態驅動機(SSD)處接收配置命令,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件; 將所述條件儲存於所述固態驅動機上;以及 使用所述條件對所述固態驅動機執行垃圾收集。
聲明17. 本發明概念的實施例包括根據聲明16的方法,其中在固態驅動機處接收配置命令包括在所述固態驅動機處自主機接收所述配置命令。
聲明18. 本發明概念的實施例包括根據聲明16的方法,其中使用所述條件對所述固態驅動機執行垃圾收集包括: 監視所述固態驅動機的狀態; 將所述固態驅動機的所述狀態與所述條件進行比較;以及 在所述固態驅動機的所述狀態滿足所述條件時對所述固態驅動機執行垃圾收集。
聲明19. 本發明概念的實施例包括根據聲明18的方法,其中; 在固態驅動機處接收配置命令包括在所述固態驅動機處接收所述配置命令,所述配置命令包括所述空閒持續時間; 監視所述固態驅動機的狀態包括對所述固態驅動機的空閒時間進行追蹤;且 將所述固態驅動機的所述狀態與所述條件進行比較包括將所述固態驅動機的所述空閒時間與所述空閒持續時間進行比較。
聲明20. 本發明概念的實施例包括根據聲明18的方法,其中; 在固態驅動機處接收配置命令包括在所述固態驅動機處接收所述配置命令,所述配置命令包括所述隊列深度臨限值; 監視所述固態驅動機的狀態包括確定所述固態驅動機的命令隊列深度;且 將所述固態驅動機的所述狀態與所述條件進行比較包括將所述隊列深度臨限值與所述固態驅動機的所述命令隊列深度進行比較。
聲明21. 本發明概念的實施例包括根據聲明20的方法,其中監視所述固態驅動機的狀態包括確定所述固態驅動機的命令隊列深度包括: 確定多個命令隊列的多個深度;以及 自所述多個深度確定所述命令隊列深度。
聲明22. 本發明概念的實施例包括根據聲明21的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者的平均值。
聲明23. 本發明概念的實施例包括根據聲明21的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者之和。
聲明24. 本發明概念的實施例包括根據聲明21的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者的中值。
聲明25. 本發明概念的實施例包括根據聲明21的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者中的最大值。
聲明26.本發明概念的實施例包括根據聲明21的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者中的最小值。
聲明27. 本發明概念的實施例包括根據聲明16的方法,其中在固態驅動機(SSD)處接收配置命令包括在所述固態驅動機處接收所述配置命令,所述配置命令包括複合條件。
聲明28. 本發明概念的實施例包括根據聲明18的方法,其中在所述固態驅動機的所述狀態滿足所述條件時對所述固態驅動機執行垃圾收集包括在所述固態驅動機的所述狀態滿足所述條件且所述固態驅動機上的自由抹除區塊的數目低於臨限值時對所述固態驅動機執行垃圾收集。
聲明29. 本發明概念的實施例包括根據聲明16的方法,更包括自主機接收指令以執行垃圾收集。
聲明30. 本發明概念的實施例包括根據聲明16的方法,其中在固態驅動機處接收配置命令包括在所述固態驅動機處接收用戶可配置的配置命令,所述用戶可配置的配置命令包括自包括所述空閒持續時間及所述隊列深度臨限值的所述集合提取的所述條件。
聲明31. 本發明概念的實施例包括一種製品,所述製品包括有形儲存媒體,所述有形儲存媒體上儲存有非暫時性指令,所述非暫時性指令當由機器執行時使得: 在固態驅動機(SSD)處接收配置命令,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件; 將所述條件儲存於所述固態驅動機上;以及 使用所述條件對所述固態驅動機執行垃圾收集。
聲明32. 本發明概念的實施例包括根據聲明31的製品,其中在固態驅動機處接收配置命令包括在所述固態驅動機處自主機接收所述配置命令。
聲明33. 本發明概念的實施例包括根據聲明31的製品,其中使用所述條件對所述固態驅動機執行垃圾收集包括: 監視所述固態驅動機的狀態; 將所述固態驅動機的所述狀態與所述條件進行比較;以及 在所述固態驅動機的所述狀態滿足所述條件時對所述固態驅動機執行垃圾收集。
聲明34. 本發明概念的實施例包括根據聲明33的製品,其中; 在固態驅動機處接收配置命令包括在所述固態驅動機處接收所述配置命令,所述配置命令包括所述空閒持續時間; 監視所述固態驅動機的狀態包括對所述固態驅動機的空閒時間進行追蹤;且 將所述固態驅動機的所述狀態與所述條件進行比較包括將所述固態驅動機的所述空閒時間與所述空閒持續時間進行比較。
聲明35. 本發明概念的實施例包括根據聲明33的製品,其中; 在固態驅動機處接收配置命令包括在所述固態驅動機處接收所述配置命令,所述配置命令包括所述隊列深度臨限值; 監視所述固態驅動機的狀態包括確定所述固態驅動機的命令隊列深度;且 將所述固態驅動機的所述狀態與所述條件進行比較包括將所述隊列深度臨限值與所述固態驅動機的所述命令隊列深度進行比較。
聲明36. 本發明概念的實施例包括根據聲明35的製品,其中監視所述固態驅動機的狀態包括確定所述固態驅動機的命令隊列深度包括: 確定多個命令隊列的多個深度;以及 自所述多個深度確定所述命令隊列深度。
聲明37. 本發明概念的實施例包括根據聲明36的製品,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者的平均值。
聲明38. 本發明概念的實施例包括根據聲明36的製品,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者之和。
聲明39. 本發明概念的實施例包括根據聲明36的製品,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者的中值。
聲明40. 本發明概念的實施例包括根據聲明36的製品,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者中的最大值。
聲明41. 發明概念的實施例包括根據聲明36的製品,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者中的最小值。
聲明42. 本發明概念的實施例包括根據聲明31的製品,其中在固態驅動機(SSD)處接收配置命令包括在所述固態驅動機處接收所述配置命令,所述配置命令包括複合條件。
聲明43. 本發明概念的實施例包括根據聲明33的製品,其中在所述固態驅動機的所述狀態滿足所述條件時對所述固態驅動機執行垃圾收集包括在所述固態驅動機的所述狀態滿足所述條件且所述固態驅動機上的自由抹除區塊的數目低於臨限值時對所述固態驅動機執行垃圾收集。
聲明44. 本發明概念的實施例包括根據聲明31的製品,其中所述有形儲存媒體上更儲存有非暫時性指令,所述非暫時性指令當由所述機器執行時使得自主機接收指令以執行垃圾收集。
聲明45. 本發明概念的實施例包括根據聲明31的製品,其中在固態驅動機處接收配置命令包括在所述固態驅動機處接收用戶可配置的配置命令,所述用戶可配置的配置命令包括自包括所述空閒持續時間及所述隊列深度臨限值的所述集合提取的所述條件。
因此,考慮到本文所述實施例的眾多種排列形式,此詳細說明及附帶材料僅旨在為說明性的,且不應被視作限制本發明概念的範圍。因此,本發明概念所主張的是所有此類潤飾皆可處於以下申請專利範圍及其等效範圍的範圍及精神內。
105‧‧‧電腦/主機 110‧‧‧處理器 115‧‧‧記憶體 120‧‧‧固態驅動機/儲存裝置 205‧‧‧記憶體控制器 210‧‧‧計時器 215‧‧‧網路連接器 220‧‧‧匯流排 225‧‧‧用戶介面 230‧‧‧輸入/輸出引擎 305‧‧‧接收電路 310‧‧‧固態驅動機控制器 315‧‧‧快閃記憶體 320‧‧‧狀態確定器 325‧‧‧比較器 330‧‧‧條件儲存器 335‧‧‧觸發器電路 340‧‧‧垃圾收集邏輯 405‧‧‧配置命令 410‧‧‧條件 415、420、425‧‧‧資料請求 505‧‧‧空閒持續時間 510‧‧‧空閒時間 515‧‧‧觸發器 520‧‧‧自由抹除區塊數目/自由區塊計數 605‧‧‧隊列深度臨限值 610‧‧‧命令隊列深度 705、710、715‧‧‧深度 720‧‧‧平均值 725‧‧‧和 730‧‧‧中值 735‧‧‧最小值 740‧‧‧最大值 805、810、815、820、825、830、835、905、910、915、920、925、930、1005、1010、1015、1020、1105、1110、1115、1120、1205、1210‧‧‧步驟 935、1025、1125‧‧‧虛線箭頭
圖1示出根據本發明概念的實施例包括被配備用於執行被動垃圾收集的固態驅動機(SSD)的系統。 圖2示出圖1所示電腦的其他細節。 圖3示出被配備用於執行被動垃圾收集的圖1所示固態驅動機的細節。 圖4示出發送配置命令、隨後資料請求至圖1所示固態驅動機的圖1所示系統。 圖5示出根據本發明概念的實施例用於基於圖1所示固態驅動機已空閒的時間長度而判斷是否執行被動垃圾收集的圖3所示比較器。 圖6示出根據本發明概念的另一實施例用於基於圖1所示固態驅動機的隊列深度而判斷是否執行被動垃圾收集的圖3所示比較器。 圖7示出在圖1所示固態驅動機包括多個命令隊列時確定圖1所示固態驅動機的隊列深度的圖3所示狀態確定器。 圖8A至圖8B示出根據本發明概念的實施例管理對圖1所示固態驅動機進行的背景垃圾收集的過程的流程圖。 圖9示出根據本發明概念的實施例為何圖1所示固態驅動機可配置以執行被動垃圾收集的示例性過程的流程圖。 圖10示出根據本發明概念的實施例圖1所示固態驅動機使用圖1所示固態驅動機的空閒時間且視需要使用圖1所示固態驅動機的自由區塊計數來判斷何時執行被動垃圾收集的示例性過程的流程圖。 圖11示出根據本發明概念的實施例圖1所示固態驅動機使用圖1所示固態驅動機的隊列深度且視需要使用圖1所示固態驅動機的自由區塊計數來判斷何時執行被動垃圾收集的示例性過程的流程圖。 圖12示出根據本發明概念的實施例圖3所示狀態確定器在圖1所示固態驅動機包括多個命令隊列時確定圖1所示固態驅動機的隊列深度的示例性過程的流程圖。
105‧‧‧電腦/主機
110‧‧‧處理器
115‧‧‧記憶體
120‧‧‧固態驅動機/儲存裝置
Claims (26)
- 一種固態驅動機(SSD),包括: 儲存器,用於資料; 垃圾收集邏輯,對所述儲存器執行垃圾收集; 接收電路,接收配置命令及資料請求,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件; 條件儲存器,儲存所述條件; 狀態確定器,確定所述固態驅動機的狀態;以及 比較器,將所述固態驅動機的所述狀態與所述條件進行比較。
- 如申請專利範圍第1項所述的固態驅動機,更包括觸發器電路,若所述比較器指示所述固態驅動機的所述狀態滿足所述條件,則所述觸發器電路觸發所述垃圾收集邏輯對所述儲存器執行垃圾收集。
- 如申請專利範圍第2項所述的固態驅動機,其中所述觸發器電路運作以在所述比較器指示所述固態驅動機的所述狀態滿足所述條件且所述固態驅動機上的自由抹除區塊的數目低於臨限值時觸發所述垃圾收集邏輯對所述儲存器執行垃圾收集。
- 如申請專利範圍第1項所述的固態驅動機,其中: 所述條件包括所述空閒持續時間; 所述狀態確定器運作以確定所述固態驅動機的空閒時間;且 所述比較器運作以將所述固態驅動機的所述空閒時間與所述空閒持續時間進行比較。
- 如申請專利範圍第1項所述的固態驅動機,其中: 所述條件包括所述隊列深度臨限值; 所述狀態確定器運作以確定所述固態驅動機的命令隊列深度;且 所述比較器運作以將所述固態驅動機的所述命令隊列深度與所述隊列深度臨限值進行比較。
- 如申請專利範圍第5項所述的固態驅動機,其中所述狀態確定器運作以自多個深度確定所述固態驅動機的所述命令隊列深度。
- 如申請專利範圍第6項所述的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度的平均值。
- 如申請專利範圍第6項所述的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度中的最大值。
- 如申請專利範圍第6項所述的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度之和。
- 如申請專利範圍第6項所述的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度的中值。
- 如申請專利範圍第6項所述的固態驅動機,其中所述狀態確定器運作以將所述命令隊列深度計算為所述多個深度中的最小值。
- 一種方法,包括: 在固態驅動機(SSD)處接收配置命令,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件; 將所述條件儲存於所述固態驅動機上;以及 使用所述條件對所述固態驅動機執行垃圾收集。
- 如申請專利範圍第12項所述的方法,其中使用所述條件對所述固態驅動機執行垃圾收集包括: 監視所述固態驅動機的狀態; 將所述固態驅動機的所述狀態與所述條件進行比較;以及 在所述固態驅動機的所述狀態條件滿足所述條件時對所述固態驅動機執行垃圾收集。
- 如申請專利範圍第13項所述的方法,其中; 在固態驅動機處接收配置命令包括在所述固態驅動機處接收所述配置命令,所述配置命令包括所述空閒持續時間; 監視所述固態驅動機的狀態包括對所述固態驅動機的空閒時間進行追蹤;且 將所述固態驅動機的所述狀態與所述條件進行比較包括將所述固態驅動機的所述空閒時間與所述空閒持續時間進行比較。
- 如申請專利範圍第13項所述的方法,其中; 在固態驅動機處接收配置命令包括在所述固態驅動機處接收所述配置命令,所述配置命令包括所述隊列深度臨限值; 監視所述固態驅動機的狀態包括確定所述固態驅動機的命令隊列深度;且 將所述固態驅動機的所述狀態與所述條件進行比較包括將所述隊列深度臨限值與所述固態驅動機的所述命令隊列深度進行比較。
- 如申請專利範圍第13項所述的方法,其中監視所述固態驅動機的狀態包括確定所述固態驅動機的命令隊列深度,包括: 確定多個命令隊列的多個深度;以及 自所述多個深度確定所述命令隊列深度。
- 如申請專利範圍第16項所述的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者的平均值。
- 如申請專利範圍第16項所述的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者中的最大值。
- 如申請專利範圍第16項所述的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者之和。
- 如申請專利範圍第16項所述的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者的中值。
- 如申請專利範圍第16項所述的方法,其中自所述多個深度確定所述命令隊列深度包括將所述命令隊列深度計算為所述多個深度中的所有者中的最小值。
- 如申請專利範圍第13項所述的方法,其中在所述固態驅動機的所述狀態條件滿足所述條件時對所述固態驅動機執行垃圾收集包括在所述固態驅動機的所述狀態條件滿足所述條件且所述固態驅動機上的自由抹除區塊的數目低於臨限值時對所述固態驅動機執行垃圾收集。
- 如申請專利範圍第12項所述的方法,更包括自主機接收指令以執行垃圾收集。
- 一種製品,包括有形儲存媒體,所述有形儲存媒體上儲存有非暫時性指令,所述非暫時性指令當由機器執行時使得: 在固態驅動機(SSD)處接收配置命令,所述配置命令包括自包括空閒持續時間及隊列深度臨限值的集合提取的條件; 將所述條件儲存於所述固態驅動機上;以及 使用所述條件對所述固態驅動機執行垃圾收集。
- 如申請專利範圍第24項所述的製品,其中使用所述條件對所述固態驅動機執行垃圾收集包括: 監視所述固態驅動機的狀態; 將所述固態驅動機的所述狀態與所述條件進行比較;以及 在所述固態驅動機的所述狀態條件滿足所述條件時對所述固態驅動機執行垃圾收集。
- 如申請專利範圍第25項所述的製品,其中在所述固態驅動機的所述狀態條件滿足所述條件時對所述固態驅動機執行垃圾收集包括在所述固態驅動機的所述狀態條件滿足所述條件且所述固態驅動機上的自由抹除區塊的數目低於臨限值時對所述固態驅動機執行垃圾收集。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662309954P | 2016-03-17 | 2016-03-17 | |
US62/309,954 | 2016-03-17 | ||
US15/151,470 US10409719B2 (en) | 2016-03-17 | 2016-05-10 | User configurable passive background operation |
US15/151,470 | 2016-05-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201734804A true TW201734804A (zh) | 2017-10-01 |
TWI682277B TWI682277B (zh) | 2020-01-11 |
Family
ID=59855673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105140964A TWI682277B (zh) | 2016-03-17 | 2016-12-12 | 用戶可配置被動背景操作的固態驅動機、方法及製品 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10409719B2 (zh) |
JP (1) | JP6847694B2 (zh) |
KR (1) | KR20170108788A (zh) |
CN (1) | CN107203337B (zh) |
TW (1) | TWI682277B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI739075B (zh) * | 2019-01-03 | 2021-09-11 | 慧榮科技股份有限公司 | 閃存的資料寫入方法及電腦程式產品 |
US11288185B2 (en) | 2019-01-03 | 2022-03-29 | Silicon Motion, Inc. | Method and computer program product for performing data writes into a flash memory |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018181281A (ja) * | 2017-04-21 | 2018-11-15 | 富士通株式会社 | ストレージシステム、制御装置及びストレージ装置 |
JP6785204B2 (ja) | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11537513B2 (en) * | 2017-12-11 | 2022-12-27 | SK Hynix Inc. | Apparatus and method for operating garbage collection using host idle |
KR20190102390A (ko) * | 2018-02-26 | 2019-09-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20190108788A (ko) * | 2018-03-15 | 2019-09-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
JP6901427B2 (ja) * | 2018-03-27 | 2021-07-14 | キオクシア株式会社 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
KR102546255B1 (ko) * | 2018-08-03 | 2023-06-21 | 삼성전자주식회사 | 호스트의 지시 없이 능동적으로 유지보수 동작을 개시하는 스토리지 장치 및 그것을 포함하는 전자 시스템 |
DE102019118631A1 (de) | 2018-08-03 | 2020-02-06 | Samsung Electronics Co., Ltd. | Speichervorrichtung, welche eine Wartungsarbeit unabhängig ohne Befehl des Host initiiert, und elektronisches System mit derselben |
KR102689985B1 (ko) * | 2019-06-13 | 2024-08-01 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법 |
KR20210074876A (ko) | 2019-12-12 | 2021-06-22 | 삼성전자주식회사 | 호스트 장치와 인터페이스를 수행하는 스토리지 장치 및 이의 동작 방법 |
CN114168082B (zh) * | 2021-12-10 | 2023-07-04 | 深圳忆联信息系统有限公司 | 避免ssd空闲块耗尽的方法、装置、计算机设备及存储介质 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03141442A (ja) * | 1989-10-27 | 1991-06-17 | Hitachi Ltd | タスク制御方式 |
JP2002297443A (ja) * | 2001-04-02 | 2002-10-11 | Sharp Corp | 動的メモリ管理装置と動的メモリ管理方法とコンピュータプログラムとこれを記録した記録媒体およびこれらを備えた携帯端末 |
US7743276B2 (en) | 2006-09-27 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Sufficient free space for redundancy recovery within a distributed data-storage system |
CN101681282A (zh) | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
US8032724B1 (en) * | 2007-04-04 | 2011-10-04 | Marvell International Ltd. | Demand-driven opportunistic garbage collection in memory components |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US8166233B2 (en) * | 2009-07-24 | 2012-04-24 | Lsi Corporation | Garbage collection for solid state disks |
US8370720B2 (en) | 2009-08-19 | 2013-02-05 | Ocz Technology Group, Inc. | Mass storage device and method for offline background scrubbing of solid-state memory devices |
US8521972B1 (en) | 2010-06-30 | 2013-08-27 | Western Digital Technologies, Inc. | System and method for optimizing garbage collection in data storage |
US8713268B2 (en) | 2010-08-05 | 2014-04-29 | Ut-Battelle, Llc | Coordinated garbage collection for raid array of solid state disks |
CN102147767B (zh) * | 2011-04-26 | 2014-04-02 | 记忆科技(深圳)有限公司 | 固态硬盘垃圾收集参数动态调整方法及其系统 |
US8527544B1 (en) | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
KR20130048594A (ko) | 2011-11-02 | 2013-05-10 | 삼성전자주식회사 | 지연 요소를 고려한 분산 스토리지 시스템, 분산 스토리지 관리 장치 및 방법 |
KR20130075018A (ko) * | 2011-12-27 | 2013-07-05 | 한국전자통신연구원 | 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법 |
US20130290601A1 (en) | 2012-04-26 | 2013-10-31 | Lsi Corporation | Linux i/o scheduler for solid-state drives |
US8898376B2 (en) | 2012-06-04 | 2014-11-25 | Fusion-Io, Inc. | Apparatus, system, and method for grouping data stored on an array of solid-state storage elements |
US8799561B2 (en) | 2012-07-27 | 2014-08-05 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9372642B2 (en) * | 2013-07-22 | 2016-06-21 | International Business Machines Corporation | RAID 10 reads optimized for solid state drives |
CN103914392B (zh) * | 2014-04-03 | 2017-05-03 | 深圳市硅格半导体有限公司 | 闪存的空块回收方法及装置 |
US9383926B2 (en) | 2014-05-27 | 2016-07-05 | Kabushiki Kaisha Toshiba | Host-controlled garbage collection |
KR20150139112A (ko) * | 2014-06-02 | 2015-12-11 | 삼성전자주식회사 | 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 |
US9525737B2 (en) * | 2015-04-14 | 2016-12-20 | E8 Storage Systems Ltd. | Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect |
CN105373487B (zh) * | 2015-12-16 | 2018-06-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储操作系统的碎片整理方法及系统 |
-
2016
- 2016-05-10 US US15/151,470 patent/US10409719B2/en active Active
- 2016-11-29 KR KR1020160160770A patent/KR20170108788A/ko not_active Application Discontinuation
- 2016-12-12 TW TW105140964A patent/TWI682277B/zh active
-
2017
- 2017-02-10 JP JP2017023269A patent/JP6847694B2/ja active Active
- 2017-03-13 CN CN201710149320.7A patent/CN107203337B/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI739075B (zh) * | 2019-01-03 | 2021-09-11 | 慧榮科技股份有限公司 | 閃存的資料寫入方法及電腦程式產品 |
US11288185B2 (en) | 2019-01-03 | 2022-03-29 | Silicon Motion, Inc. | Method and computer program product for performing data writes into a flash memory |
US11960396B2 (en) | 2019-01-03 | 2024-04-16 | Silicon Motion, Inc. | Method and computer program product for performing data writes into a flash memory |
Also Published As
Publication number | Publication date |
---|---|
JP2017168088A (ja) | 2017-09-21 |
JP6847694B2 (ja) | 2021-03-24 |
US10409719B2 (en) | 2019-09-10 |
US20170270042A1 (en) | 2017-09-21 |
CN107203337A (zh) | 2017-09-26 |
CN107203337B (zh) | 2021-11-09 |
TWI682277B (zh) | 2020-01-11 |
KR20170108788A (ko) | 2017-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI682277B (zh) | 用戶可配置被動背景操作的固態驅動機、方法及製品 | |
US11748418B2 (en) | Storage aggregator controller with metadata computation control | |
CN107402894B (zh) | 用于执行自适应中断控制的计算机系统及其控制中断的方法 | |
JP5480834B2 (ja) | Sasエクスパンダにおけるデータプリフェッチ | |
US10698808B2 (en) | Garbage collection—automatic data placement | |
US10671141B2 (en) | Storage device and method of controlling link state thereof | |
CN110658980B (zh) | 数据处理方法及装置、存储系统 | |
TW201250471A (en) | Managing data placement on flash-based storage by use | |
WO2015039352A1 (zh) | 缓存数据的方法和存储系统 | |
US10884920B2 (en) | Metadata-based operations for use with solid state devices | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
WO2017006675A1 (ja) | 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム | |
US9367492B2 (en) | Storage virtualization apparatus causing access request process to be delayed based on incomplete count and storage virtualization method | |
JP2005115600A (ja) | 情報処理装置及び方法 | |
US9377966B2 (en) | Method and apparatus for efficiently processing storage commands | |
KR102526104B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
JP2012533800A5 (zh) | ||
WO2017113895A1 (zh) | 一种创建虚拟机的方法及装置 | |
JP2016045563A (ja) | Nandバックグラウンド処理制御装置 | |
US20160011791A1 (en) | Storage control apparatus, storage system, and program | |
US20150199130A1 (en) | Method for processing data in storage device and storage device | |
NL2026311B1 (en) | Control method and control system for data transmission | |
US20150142768A1 (en) | Stored device with searching engines | |
KR102036124B1 (ko) | 저장 명령을 효율적으로 처리하는 방법 및 장치 | |
WO2015184648A1 (zh) | 一种处理访问请求的方法及装置 |