TWI467386B - 在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 - Google Patents
在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 Download PDFInfo
- Publication number
- TWI467386B TWI467386B TW103121460A TW103121460A TWI467386B TW I467386 B TWI467386 B TW I467386B TW 103121460 A TW103121460 A TW 103121460A TW 103121460 A TW103121460 A TW 103121460A TW I467386 B TWI467386 B TW I467386B
- Authority
- TW
- Taiwan
- Prior art keywords
- host device
- disk drive
- gap
- information
- time delay
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
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)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Transfer Systems (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Bus Control (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Pinball Game Machines (AREA)
Description
本發明係關於記憶體系統,且更特定言之,係關於一旦一磁碟機開始傳送資料,該磁碟機自一主機裝置接收命令。
在許多儲存系統中,在傳輸訊框時,若存在一衝突,目標裝置具有優先於一主機裝置之優先權。在此等情形下,當將命令排入佇列(例如,使用第一方直接記憶體存取等等)時,一旦目標裝置已傳送一直接記憶體存取(DMA)設定訊框資訊結構(FIS)以進入資料階段,該主機裝置通常不能傳送任何命令至目標裝置。
若磁碟機能夠快速提取資料,則該主機裝置可傳送等於最大佇列深度之許多命令至磁碟機。接著,磁碟機可在無訊框之間之任何間斷之情況下傳回一DMA設定、資料等等。此不允許該主機裝置再傳送命令。
在此等情形下,該磁碟機之佇列深度可自一最大佇列深度振盪至零,回到該最大佇列深度,且再振盪至零。此可負面影響效能。因此,需要解決與先前技術相關聯之此等及/或其他問題。
提供一種用於在自一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品。在操作中,一磁碟機自一主機裝置接收一或多個命令。此外,將資訊排入佇列以傳送至該主機裝置。此外,在該資訊中插入一間隙以傳送至該主機裝置使得該主機裝置能夠傳送額外的命令至該磁碟機。
200‧‧‧系統
202‧‧‧磁碟機
204‧‧‧主機裝置
206‧‧‧緩衝器
208‧‧‧控制器
400‧‧‧例示性系統
401‧‧‧主處理器
402‧‧‧通信匯流排
404‧‧‧主記憶體
406‧‧‧圖形處理器
408‧‧‧顯示器
410‧‧‧輔助儲存裝置
圖1展示根據一實施例之在自一磁碟機傳送至一主機裝置的資訊中插入一間隙之一方法。
圖2展示根據一實施例之在自一磁碟機傳送至一主機裝置的資訊中插入一間隙之一系統。
圖3展示根據另一實施例之在自一磁碟機傳送至一主機裝置的資訊中插入一間隙之一方法。
圖4繪示其中可實施各種先前實施例之各種架構及/或功能性之一例示性系統。
圖1展示根據一實施例之在自一磁碟機傳送至一主機裝置的資訊中插入一間隙之一方法100。如所示,一磁碟機自一主機裝置接收一或多個命令。見操作102。
該等命令可包含能夠自該主機裝置傳送至該磁碟機之任何命令或指令。例如,在一實施例中,該命令可包含傳送資料之一命令(例如,一傳送請求等等)。在另一實施例中,該命令可包含存取與該磁碟機相關聯之記憶體之一部分之一命令。
該磁碟機可包含能夠儲存資料之任何磁碟機。例如,在一實施例中,該磁碟機可包含一串列ATA(SATA)磁碟機。在各種其他實施例中,該磁碟機可包含(但不限於)一串列連接SCSI(SAS)磁碟機、一光纖通道(FC)磁碟機或一通用串列匯流排(USB)磁碟機及/或任何其他儲
存裝置或磁碟機。
此外,該主機裝置可包含能夠傳送命令至磁碟機之任何裝置。例如,在各種實施例中,該主機裝置可包含一桌上型電腦、一膝上型電腦及/或任何其他類型的邏輯件。又,該主機裝置可表現為包含(但不限於)個人數位助理(PDA)裝置、行動電話裝置等等之各種其他裝置之形式。
如圖1中進一步所示,將資訊排入佇列以傳送至該主機裝置。見操作104。在一實施例中,可在能夠將資料排入佇列之一緩衝器或一裝置中將該資訊排入佇列。
該資訊可包含與該資料(例如,資料類型資訊、資料結構資訊等等)相關聯之任何資料或資訊。在一實施例中,該資訊可包含與命令之至少一者相關聯之設定資訊及資料。例如,該磁碟機自該主機裝置接收之該等命令可包含擷取資料之一命令。
接著,該磁碟機可將該資料及設定資訊排入佇列。在一實施例中,該設定資訊可包含一直接記憶體存取(DMA)訊框資訊結構(FIS)。在另一實施例中,該設定資訊可包含一設定裝置位元FIS。應注意,在各種實施例中,該間隙可為基於時間或基於命令臨限值或基於時間與基於命令臨限值之一組合。該臨限值亦可為基於命令數目及佇列深度或其他參數。
此外,在該資訊中插入一間隙以傳送至該主機裝置使得該主機裝置能夠傳送額外命令至該磁碟機。見操作106。在本描述之內容背景下,一間隙係指其中該主機裝置能夠傳送命令至該磁碟機之間斷、中斷或延遲。
在各種實施例中,該間隙可包含一時間延遲或額外資訊等等。例如,在一實施例中,插入該間隙可包含插入一時間延遲。在另一實施例中,插入該間隙可包含插入額外資訊。
額外資訊可包含任何類型的資訊。例如,在一實施例中,額外資訊可包含指示間隙之一長度之資訊。在另一實施例中,額外資訊可包含供應商特定資訊。在又另一實施例中,額外資訊可包含與間隙相關聯之資訊。
在又另一實施例中,該資訊可包含設定資訊,其包含指示該時間延遲係在該設定資訊之後之資訊。在此情形下,該資訊可包含狀態資訊且可在傳送該狀態資訊之前或在該狀態資訊之後插入該時間延遲。
應注意,可在傳送資訊之任一時間點插入該間隙。例如,在間隙包含一時間延遲之情形下,可在傳送該設定資訊之前插入該時間延遲。在另一實施例中,可在傳送該設定資訊之後插入該時間延遲。
在任一情形下,該磁碟機可在該時間延遲之一週期期間自主機裝置接收額外命令。在一實施例中,插入該間隙可包含在正傳送該資訊至該主機裝置時之一週期期間插入該間隙。
應注意,插入該間隙的時間點可基於多種參數。例如,在一實施例中,可基於磁碟機之一當前佇列深度插入該間隙。在另一實施例中,可基於自接收一先前命令起算之一時間量插入該間隙。
此外,間隙的長度或大小可基於多種參數。例如,在一實施例中,時間延遲之一時間長度可基於磁碟機之一當前佇列深度。在另一實施例中,該時間延遲之一時間長度可基於自接收一先前命令起算之一時間量。
在任一情形下,作為一選項,可即時判定該時間延遲之一時間長度或插入該時間延遲之一時間點之至少一者。作為另一選項,該時間延遲之一時間長度或插入該時間延遲之一時間點之至少一者可為一預定值。在此情形下,該預定值可為設定於硬體或軟體中之一值。
現將闡述更多關於各種選用架構及特徵之繪示性資訊(根據使用
者的需要,可使用或不使用該等架構及特徵實施上述架構)。應堅決注意,下列資訊係為繪示性目的予以闡述且不應理解為以任何方式限制。在排除或不排除所描述的其他特徵之情況下,可視情況地併入下列特徵之任一者。
圖2展示根據一實施例之在自一磁碟機傳送至一主機裝置的資訊中插入一間隙之一系統200。作為一選項,本系統200可經實施以執行圖1之該方法100。當然,然而,可在任何期望環境中實施該系統200。亦應注意,在本描述中可應用上述定義。
如所示,系統200包含一磁碟機202,其用於自一主機裝置204接收一或多個命令。此外,該系統200包含一緩衝器206,其用於將資訊排入佇列以傳送至該主機裝置204。又,該系統200包含一控制器208,其用於在該資訊中插入一間隙以傳送至一主機裝置204使得該主機裝置204能夠在磁碟機202已開始傳送該資訊至該主機裝置204之後傳送額外的命令至該磁碟機202。
應注意,該磁碟機202可包含各種類型的磁碟機,諸如一SATA磁碟機、一SAS磁碟機、一FC磁碟機及/或任何其他的儲存裝置或磁碟機。藉由在該資訊中插入間隙,極快速提取資料之磁碟機可經組態使在磁碟機已開始傳送資料時磁碟機不自一最大佇列深度振盪至零。
例如,在SATA中,當傳輸訊框時,若存在一衝突,目標裝置通常具有優先於該主機裝置之優先權。此外,典型地在SATA中,當將命令排入佇列(例如,使用第一方直接記憶體存取等等)時,一旦目標裝置已傳送一DMA設定FIS以進入資料階段,該主機裝置不可傳送任何命令至該目標裝置。
若磁碟機可非常快速提取資料,則一主機裝置可傳送等於一最大佇列深度(例如,32等等)之許多命令至該磁碟機。典型地,接著,該磁碟機可連續傳回一DMA設定、資料、一DMA設定、資料等等,
而在訊框之間無任何間隙。此不允許該主機裝置再傳送任何命令。
該磁碟機之佇列深度將從最大佇列深度(例如,32等等)振盪至0然後振盪回到最大佇列深度(例如,32等等)再至0。此可負面影響效能。在某些情形下,硬碟機(HDD)係如此慢以致資料中存在間隙而不發生此種振盪。然而,在更快磁碟機的情形下,可發生該振盪。
因此,在一實施例中,可在傳送一DMA設定至該主機裝置204之前插入一或多個間隙以允許該主機裝置204傳送更多的命令至該磁碟機202。插入該間隙的時間點可基於多種參數,包含該磁碟機202之一當前佇列深度或自最後命令起算之時間量。在一實施例中,插入該間隙的時間點可基於該磁碟機202之該當前佇列深度、自最後命令起算之時間量或此等或某些其他參數之一組合。
此外,允許自主機裝置204傳送命令之該間隙之一長度亦可基於多種參數。例如,該間隙之該長度可基於該佇列深度、時間或某些其他參數。在各種實施例中,可由該主機裝置204或該磁碟機202即時調整此等參數。作為一選項,亦可將該等參數設定為固定值。
在一實施例中,該磁碟機202可藉由添加資訊至DMA設定來發信號通知該主機裝置204以指示在此DMA設定之後將係一間隙。作為一選項,該主機裝置204可藉由將資訊添加至該命令中而發信號通知傳送命令之結束。亦應注意,在一實施例中,可在傳送狀態之前插入該等間隙。此可經執行以代替在DMA設定FIS之前插入該等間隙,或除在DMA設定FIS之前插入該等間隙之外亦可執行此。
圖3展示根據另一實施例之在自一磁碟機傳送至一主機裝置的資訊中插入一間隙之一方法300。作為一選項,可在圖1至圖2之功能性及架構之背景下實施本方法300。當然,然而,可在任何期望的環境中執行該方法300。在本描述中可再次應用上述定義。
如所示,判定是否存在主動佇列命令。見操作302。在此情形
下,該等主動佇列命令可為與一磁碟機相關聯之一緩衝器中之主動佇列命令。
若存在主動佇列命令,則判定是否插入一時間延遲。見操作304。在一實施例中,可將一計時器用以插入該時間延遲。
若經判定以插入該時間延遲,則插入該時間延遲。見操作306。接著,判定該系統是否準備開始資料傳送。見操作308。
若該系統已準備開始資料傳送,則傳送一DMA設定FIS。見操作310。一旦傳送該DMA設定FIS,就完成該資料傳送。見操作312。應注意,該DMA設定可僅為與一命令相關聯之一資料區塊。一旦已完成傳送此資料區塊,則可插入一間隙。
因此,接著,再次判定是否插入一時間延遲。見操作314。若經判定以插入該時間延遲,則插入該時間延遲。見操作316。
如進一步所示,既經判定是否傳送一設定裝置位元FIS。見操作318。若經判定以傳送該設定裝置位元FIS,則傳送該設定裝置位元FIS。見操作320。
以此方式,甚至在該磁碟機已開始傳送資料時,該主機裝置亦能夠傳送命令至該磁碟機。應注意,儘管圖3中未繪示,然可在該時間延遲之期間,將資訊傳送至該主機裝置。例如,可插入關於該時間延遲之持續時間之資訊或供應商特定資訊。
圖4繪示其中可實施各種前述實施例之各種架構及/或功能性之一例示性系統400。如所示,提供包含至少一主處理器401(其係連接至一通信匯流排402)之一系統400。該系統400亦包含一主記憶體404。控制邏輯(軟體)及資料係儲存於可表現為隨機存取記憶體(RAM)之形式之該主記憶體404中。
該系統400亦包含一圖形處理器406及一顯示器408,亦即,一電腦監視器。在一實施例中,該圖形處理器406可包含複數個著色模
組、一光柵化模組等等。該等上述模組之各者甚至可位於一單一半導體平台上以形成一圖形處理單元(GPU)。
在本描述中,一單一半導體平台可指一唯一單一基於半導體積體電路或晶片。應注意,術語單一半導體平台亦可指具有增強之連接能力的多晶片模組,其模擬晶片上操作,且大幅度改良利用一習知中央處理單元(CPU)及匯流排的實施方案。當然,根據使用者的需要,各種模組亦可單獨定位或位於各種組合之半導體平台中。
該系統400亦可包含一輔助儲存裝置410。該輔助儲存裝置410包含(例如)一硬碟機及/或一可卸除式儲存磁碟機(表示一軟碟機、一磁帶機、一光碟機等等)。該可卸除式儲存磁碟機以一熟知的方式自一可卸除式儲存單元讀取及/或寫入至該可卸除式儲存單元。
可在該主記憶體404及/或該輔助儲存裝置410中儲存電腦程式或電腦控制邏輯演算法。當執行此等電腦程式時,該等電腦程式使該系統400執行各種功能。記憶體404、儲存裝置410及/或任何其他儲存裝置係電腦可讀取媒體之可能實例。
在一實施例中,可在主處理器401、圖形處理器406、具有該主處理器401及該圖形處理器406兩者之能力之至少一部分之一積體電路(圖式中未展示)、一晶片組(亦即,經設計以作為用於執行相關功能之一單元進行作業及售賣之一積體電路群組等等)及/或任何其他關於該內容之積體電路之背景下實施各種先前圖式之架構及/或功能性。
又,可在一般電腦系統、一電路板系統、專用於娛樂目的之一遊戲機系統、一特定應用系統及/或任何其他所期望的系統之背景下實施各種先前圖式之架構及/或功能性。例如,該系統400可表現為一桌上型電腦、膝上型電腦及/或任何其他類型的邏輯件之形式。又,該系統400可表現為各種其他裝置之形式,包含(但不限於)一個人數位助理裝置、一行動電話裝置、一電視等等。
此外,雖然圖式中未展示,但是為通信目的,該系統400可耦合至一網路[例如,一電信網路、區域網路(LAN)、無線網路、廣域網路(WAN)諸如網際網路、同級間網路、纜線網路等等]。
雖然上文已描述各種實施例,但應瞭解,已僅藉由(但不限於)實例提呈該等實施例。因此,一較佳實施例之廣度及範疇不應受限於上述例示性實施例之任一者,但應僅根據下列申請專利範圍及其等之等效物進行定義。
Claims (22)
- 一種用於儲存處理之方法,其包含:在一磁碟機處自一主機裝置接收一或多個命令,該主機裝置及該磁碟機經由包含直接記憶體存取(DMA)資料階段之一儲存協定而通信,其中該磁碟機經啟用以阻止該主機裝置傳送額外命令至該磁碟機;將資訊排入佇列以傳送至該主機裝置;依據磁碟機狀態且獨立於當前主機信號發送而判定是否在該資訊中插入一間隙以傳送至該主機裝置,使得該間隙係在該DMA資料階段之一連續兩者之個別資料之間,且該主機裝置經啟用以傳送該等額外命令至該磁碟機;基於該判定有條件地插入該間隙,否則不插入該間隙;及其中該間隙係在正傳送該資訊至該主機裝置時之一週期期間被插入。
- 如請求項1之方法,其中傳送至該主機裝置之該資訊包括設定資訊及與該一或多個命令之至少一者相關聯之資料。
- 如請求項2之方法,其中該設定資訊包括一DMA訊框資訊結構(FIS)。
- 如請求項2之方法,其中該設定資訊包括一設定裝置位元FIS。
- 如請求項2之方法,其中在傳送該設定資訊之前插入一時間延遲。
- 如請求項2之方法,其中在傳送該設定資訊之後插入一時間延遲。
- 如請求項1之方法,其進一步包含在一時間延遲期間在該磁碟機處自該主機裝置接收該等額外命令。
- 如請求項1之方法,其中插入該間隙包括在正傳送該資訊至該主機裝置時之該週期期間插入一時間延遲。
- 如請求項1之方法,其中磁碟機狀態之依據包含自接收一先前命令起算之一時間量之一依據。
- 如請求項8之方法,其中該時間延遲之一時間長度係基於自該磁碟機接收一先前命令起算之一時間量。
- 如請求項1之方法,其中一時間延遲之一時間長度或插入該時間延遲之一時間點中之至少一者係經即時判定。
- 如請求項1之方法,其中一時間延遲之一時間長度或插入該時間延遲之一時間點中之至少一者係一預定值。
- 如請求項1之方法,其中傳送至該主機裝置之該資訊包括設定資訊,該設定資訊包括指示一時間延遲係在該設定資訊之後之額外資訊。
- 如請求項1之方法,其中傳送至該主機裝置之該資訊包括狀態資訊,及在傳送該狀態資訊之前插入一時間延遲。
- 如請求項1之方法,其中插入該間隙包括插入額外資訊。
- 如請求項1之方法,其中該主機裝置預先於該間隙之前被通知關於該間隙。
- 如請求項1之方法,其中該磁碟機包括一串列ATA(SATA)磁碟機。
- 如請求項1之方法,其中磁碟機狀態之依據包含該磁碟機之一當前佇列深度之一依據。
- 一種體現於一電腦可讀取媒體上之電腦程式產品,其包含:用於在一磁碟機處自一主機裝置接收一或多個命令之電腦程式碼,該主機裝置及該磁碟機經由包含直接記憶體存取(DMA)資料階段之一儲存協定而通信,其中該磁碟機經啟用以阻止該主 機裝置傳送額外命令至該磁碟機;用於將資訊排入佇列以傳送至該主機裝置之電腦程式碼;用於依據磁碟機狀態且獨立於當前主機信號發送而判定是否在該資訊中插入一間隙以傳送至該主機裝置之電腦程式碼,使得該間隙係在該DMA資料階段之一連續兩者之個別資料之間,且該主機裝置經啟用以傳送該等額外命令至該磁碟機;及用於基於該判定有條件地插入該間隙及否則不插入該間隙之電腦程式碼,其中該間隙係在正傳送該資訊至該主機裝置時之一週期期間被插入。
- 如請求項19之電腦程式產品,其中磁碟機狀態之依據包含該磁碟機之一當前佇列深度之一依據。
- 一種用於儲存處理之設備,其包含:一磁碟機,其經啟用以自一主機裝置接收一或多個命令,該主機裝置及該磁碟機經啟用以經由包含直接記憶體存取(DMA)資料階段之一儲存協定而通信,其中該磁碟機經啟用以阻止該主機裝置傳送額外命令至該磁碟機;一緩衝器,其經啟用以將資訊排入佇列以傳送至該主機裝置;及一控制器,其經啟用以依據磁碟機狀態且獨立於當前主機信號發送而判定是否在該資訊中插入一間隙以傳送至該主機裝置,使得該間隙係在該DMA資料階段之一連續兩者之個別資料之間,且該主機裝置經啟用以傳送該等額外命令至該磁碟機,該控制器進一步經啟用以基於該判定有條件地插入該間隙,及否則不插入該間隙,及其中該間隙係在正傳送該資訊至該主機裝置時之一週期期間被插入
- 如請求項21之設備,其中磁碟機狀態之依據包含該磁碟機之一當前佇列深度之一依據。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/505,333 US8140712B2 (en) | 2009-07-17 | 2009-07-17 | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201437813A TW201437813A (zh) | 2014-10-01 |
TWI467386B true TWI467386B (zh) | 2015-01-01 |
Family
ID=43450212
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099123548A TWI447586B (zh) | 2009-07-17 | 2010-07-16 | 在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 |
TW103121460A TWI467386B (zh) | 2009-07-17 | 2010-07-16 | 在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099123548A TWI447586B (zh) | 2009-07-17 | 2010-07-16 | 在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 |
Country Status (7)
Country | Link |
---|---|
US (4) | US8140712B2 (zh) |
EP (1) | EP2454671A4 (zh) |
JP (1) | JP5658250B2 (zh) |
KR (1) | KR101281480B1 (zh) |
CN (1) | CN102713873B (zh) |
TW (2) | TWI447586B (zh) |
WO (1) | WO2011008963A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110004718A1 (en) | 2009-07-02 | 2011-01-06 | Ross John Stenfort | System, method, and computer program product for ordering a plurality of write commands associated with a storage device |
US8140712B2 (en) | 2009-07-17 | 2012-03-20 | Sandforce, Inc. | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
KR102238650B1 (ko) | 2014-04-30 | 2021-04-09 | 삼성전자주식회사 | 저장 장치, 상기 저장 장치를 포함하는 컴퓨팅 시스템 및 상기 저장 장치의 동작 방법 |
US9817777B2 (en) * | 2015-03-31 | 2017-11-14 | Toshiba Memory Corporation | Multi-operating state serial ATA devices and methods of operation therefor |
US11568073B2 (en) | 2016-12-02 | 2023-01-31 | Nutanix, Inc. | Handling permissions for virtualized file servers |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205418A1 (en) * | 2003-02-28 | 2004-10-14 | Kenji Sakaue | ECC control apparatus |
US20080184094A1 (en) * | 2007-01-26 | 2008-07-31 | Micron Technology, Inc. | Programming management data for NAND memories |
US20090113119A1 (en) * | 2007-10-30 | 2009-04-30 | Hagiwara Sys-Com Co., Ltd | Data writing method |
Family Cites Families (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03250499A (ja) | 1990-02-27 | 1991-11-08 | Nec Corp | データ記憶回路 |
GB2251324B (en) | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US5485595A (en) | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
JPH08124393A (ja) | 1994-10-20 | 1996-05-17 | Fujitsu Ltd | データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置 |
US5568423A (en) | 1995-04-14 | 1996-10-22 | Unisys Corporation | Flash memory wear leveling system providing immediate direct access to microprocessor |
US5805809A (en) | 1995-04-26 | 1998-09-08 | Shiva Corporation | Installable performance accelerator for maintaining a local cache storing data residing on a server computer |
US5621687A (en) | 1995-05-31 | 1997-04-15 | Intel Corporation | Programmable erasure and programming time for a flash memory |
US6728851B1 (en) | 1995-07-31 | 2004-04-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
US5835935A (en) | 1995-09-13 | 1998-11-10 | Lexar Media, Inc. | Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory |
US5956473A (en) | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
US5963970A (en) | 1996-12-20 | 1999-10-05 | Intel Corporation | Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields |
US6085248A (en) * | 1997-02-11 | 2000-07-04 | Xaqtu Corporation | Media access control transmitter and parallel network management system |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
JP3898305B2 (ja) | 1997-10-31 | 2007-03-28 | 富士通株式会社 | 半導体記憶装置、半導体記憶装置の制御装置及び制御方法 |
US5924120A (en) * | 1998-02-03 | 1999-07-13 | Digital Equipment Corporation | Method and apparatus for maximizing utilization of an internal processor bus in the context of external transactions running at speeds fractionally greater than internal transaction times |
EP1027653B1 (de) | 1998-09-04 | 2004-09-15 | Hyperstone AG | Zugriffssteuerung eines speichers beschränkter löschhäufigkeit |
FR2787601A1 (fr) | 1998-12-22 | 2000-06-23 | Gemplus Card Int | Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire |
US6301639B1 (en) * | 1999-07-26 | 2001-10-09 | International Business Machines Corporation | Method and system for ordering priority commands on a commodity disk drive |
US7628622B2 (en) | 1999-08-04 | 2009-12-08 | Super Talent Electronics, Inc. | Multi-level cell (MLC) slide flash memory |
US6405295B1 (en) | 1999-09-07 | 2002-06-11 | Oki Electric Industry, Co., Ltd. | Data storage apparatus for efficient utilization of limited cycle memory material |
JP2001100935A (ja) * | 1999-09-28 | 2001-04-13 | Internatl Business Mach Corp <Ibm> | ディスク装置およびその制御方法 |
US6928494B1 (en) * | 2000-03-29 | 2005-08-09 | Intel Corporation | Method and apparatus for timing-dependant transfers using FIFOs |
US6600614B2 (en) | 2000-09-28 | 2003-07-29 | Seagate Technology Llc | Critical event log for a disc drive |
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
EP1280063A3 (en) | 2001-07-27 | 2005-03-30 | Fujitsu Limited | Cache control methods and apparatus for hard disk drives |
US6948026B2 (en) | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
US20030058681A1 (en) | 2001-09-27 | 2003-03-27 | Intel Corporation | Mechanism for efficient wearout counters in destructive readout memory |
US7000063B2 (en) | 2001-10-05 | 2006-02-14 | Matrix Semiconductor, Inc. | Write-many memory device and method for limiting a number of writes to the write-many memory device |
US7130933B2 (en) * | 2002-07-24 | 2006-10-31 | Intel Corporation | Method, system, and program for handling input/output commands |
KR101174308B1 (ko) | 2002-10-28 | 2012-08-16 | 쌘디스크 코포레이션 | 비휘발성 저장 시스템들에서 자동 웨어 레벨링 |
US6831865B2 (en) | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
US7035967B2 (en) | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US7096313B1 (en) | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
US7103732B1 (en) | 2002-10-28 | 2006-09-05 | Sandisk Corporation | Method and apparatus for managing an erase count block |
US6973531B1 (en) | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
TW555100U (en) | 2002-11-27 | 2003-09-21 | Power Quotient Int Co Ltd | High speed of data transfer of solid state disk on module |
US6925523B2 (en) | 2003-03-03 | 2005-08-02 | Agilent Technologies, Inc. | Managing monotonically increasing counter values to minimize impact on non-volatile storage |
JP4460867B2 (ja) * | 2003-09-26 | 2010-05-12 | 東芝ストレージデバイス株式会社 | インターフェース装置及びパケット転送方法 |
US7032087B1 (en) | 2003-10-28 | 2006-04-18 | Sandisk Corporation | Erase count differential table within a non-volatile memory system |
JP2005215729A (ja) * | 2004-01-27 | 2005-08-11 | Hitachi Global Storage Technologies Netherlands Bv | データ伝送制御方法及び記憶装置 |
US7222214B2 (en) | 2004-03-25 | 2007-05-22 | Lucent Technologies Inc. | Device-level address translation within a programmable non-volatile memory device |
JP2006164012A (ja) * | 2004-12-09 | 2006-06-22 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置及びそのパワー・セーブ・モードの制御方法 |
US7318962B2 (en) * | 2005-01-28 | 2008-01-15 | The United States Of America As Represented By The Secretary Of The Navy | Magnetically directed self-assembly of molecular electronic junctions comprising conductively coated ferromagnetic microparticles |
US20060209684A1 (en) | 2005-03-18 | 2006-09-21 | Via Technologies, Inc. | Data rate controller, and method of control thereof |
JP4679943B2 (ja) | 2005-03-23 | 2011-05-11 | ヒタチグローバルストレージテクノロジーズネザーランドビーブイ | データ記憶装置及びその不揮発性メモリ内データ書き換え処理方法 |
US7620747B1 (en) | 2005-10-12 | 2009-11-17 | Nvidia Corporation | Software based native command queuing |
US20070260756A1 (en) * | 2006-01-05 | 2007-11-08 | Pao-Ching Tseng | Method for Processing Command via SATA Interface |
US7694026B2 (en) | 2006-03-31 | 2010-04-06 | Intel Corporation | Methods and arrangements to handle non-queued commands for data storage devices |
US7739470B1 (en) * | 2006-10-20 | 2010-06-15 | Emc Corporation | Limit algorithm using queue depth to control application performance |
US7904764B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | Memory lifetime gauging system, method and computer program product |
US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
US7747813B2 (en) | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
US7809900B2 (en) | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
US8090980B2 (en) | 2006-12-08 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for providing data redundancy in a plurality of storage devices |
JP2008226040A (ja) * | 2007-03-14 | 2008-09-25 | Hitachi Ltd | 情報処理装置及びコマンド多重度制御方法 |
JP2008250961A (ja) | 2007-03-30 | 2008-10-16 | Nec Corp | 記憶媒体の制御装置、データ記憶装置、データ記憶システム、方法、及び制御プログラム |
KR20080090021A (ko) | 2007-04-03 | 2008-10-08 | 삼성테크윈 주식회사 | 데이터 전송 속도가 다른 인터페이스들을 갖는 데이터 저장모듈 및 이의 데이터 전송방법 |
JP4400650B2 (ja) | 2007-05-23 | 2010-01-20 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
US20080294813A1 (en) | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Managing Housekeeping Operations in Flash Memory |
US7631128B1 (en) * | 2007-06-28 | 2009-12-08 | Emc Corporation | Protocol controller for a data storage system |
US7840751B2 (en) * | 2007-06-29 | 2010-11-23 | Seagate Technology Llc | Command queue management of back watered requests |
US7945727B2 (en) * | 2007-07-27 | 2011-05-17 | Western Digital Technologies, Inc. | Disk drive refreshing zones in segments to sustain target throughput of host commands |
TWI373772B (en) | 2007-10-04 | 2012-10-01 | Phison Electronics Corp | Wear leveling method and controller using the same |
US20090125645A1 (en) | 2007-11-12 | 2009-05-14 | Gemalto Inc | System and method for supporting multiple tokens having a smart card to control parameters of a flash memory device |
US7849275B2 (en) | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
US7903486B2 (en) | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
US9183133B2 (en) | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
US8453022B2 (en) | 2007-12-05 | 2013-05-28 | Densbits Technologies Ltd. | Apparatus and methods for generating row-specific reading thresholds in flash memory |
US7827320B1 (en) * | 2008-03-28 | 2010-11-02 | Western Digital Technologies, Inc. | Serial ATA device implementing intra-command processing by detecting XRDY primitive while in the XRDY state |
US7970978B2 (en) | 2008-05-27 | 2011-06-28 | Initio Corporation | SSD with SATA and USB interfaces |
US20100017588A1 (en) | 2008-07-15 | 2010-01-21 | Radoslav Danilak | System, method, and computer program product for providing an extended capability to a system |
US20100017566A1 (en) | 2008-07-15 | 2010-01-21 | Radoslav Danilak | System, method, and computer program product for interfacing computing device hardware of a computing device and an operating system utilizing a virtualization layer |
US20100017807A1 (en) | 2008-07-15 | 2010-01-21 | Radoslav Danilak | System, method, and computer program product for transparent communication between a storage device and an application |
US20100017650A1 (en) | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
US8140739B2 (en) | 2008-08-08 | 2012-03-20 | Imation Corp. | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table |
US20100064093A1 (en) | 2008-09-09 | 2010-03-11 | Radoslav Danilak | System, method, and computer program product for converting data in a binary representation to a non-power of two representation |
US8131921B2 (en) | 2008-09-17 | 2012-03-06 | Intel Corporation | Command suspension in response, at least in part, to detected acceleration and/or orientation change |
JP4399021B1 (ja) | 2008-10-29 | 2010-01-13 | 株式会社東芝 | ディスクアレイ制御装置および記憶装置 |
US8285970B2 (en) | 2008-11-06 | 2012-10-09 | Silicon Motion Inc. | Method for managing a memory apparatus, and associated memory apparatus thereof |
US20100146236A1 (en) | 2008-12-08 | 2010-06-10 | Radoslav Danilak | System, method, and computer program product for rendering at least a portion of data useless in immediate response to a delete command |
US20100250830A1 (en) | 2009-03-27 | 2010-09-30 | Ross John Stenfort | System, method, and computer program product for hardening data stored on a solid state disk |
US8090905B2 (en) | 2009-03-27 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format |
US8230159B2 (en) | 2009-03-27 | 2012-07-24 | Lsi Corporation | System, method, and computer program product for sending logical block address de-allocation status information |
US8291131B2 (en) | 2009-07-06 | 2012-10-16 | Micron Technology, Inc. | Data transfer management |
US8140712B2 (en) | 2009-07-17 | 2012-03-20 | Sandforce, Inc. | System, method, and computer program product for inserting a gap in information sent from a drive to a host device |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US20110022765A1 (en) | 2009-07-23 | 2011-01-27 | Ross John Stenfort | System, method, and computer program product for maintaining a direct connection between an initiator and a drive |
US20110041039A1 (en) | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
US20110041005A1 (en) | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System |
US8108737B2 (en) | 2009-10-05 | 2012-01-31 | Sandforce, Inc. | System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device |
-
2009
- 2009-07-17 US US12/505,333 patent/US8140712B2/en not_active Expired - Fee Related
-
2010
- 2010-07-15 WO PCT/US2010/042147 patent/WO2011008963A2/en active Application Filing
- 2010-07-15 CN CN201080040461.1A patent/CN102713873B/zh active Active
- 2010-07-15 EP EP10800548.9A patent/EP2454671A4/en not_active Withdrawn
- 2010-07-15 JP JP2012520784A patent/JP5658250B2/ja not_active Expired - Fee Related
- 2010-07-15 KR KR1020127004286A patent/KR101281480B1/ko not_active IP Right Cessation
- 2010-07-16 TW TW099123548A patent/TWI447586B/zh not_active IP Right Cessation
- 2010-07-16 TW TW103121460A patent/TWI467386B/zh not_active IP Right Cessation
-
2012
- 2012-03-19 US US13/423,808 patent/US8423680B2/en active Active
-
2013
- 2013-04-07 US US13/858,064 patent/US8615609B2/en active Active
- 2013-12-12 US US14/104,468 patent/US9330033B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205418A1 (en) * | 2003-02-28 | 2004-10-14 | Kenji Sakaue | ECC control apparatus |
US20080184094A1 (en) * | 2007-01-26 | 2008-07-31 | Micron Technology, Inc. | Programming management data for NAND memories |
US20090113119A1 (en) * | 2007-10-30 | 2009-04-30 | Hagiwara Sys-Com Co., Ltd | Data writing method |
Also Published As
Publication number | Publication date |
---|---|
EP2454671A4 (en) | 2014-06-04 |
JP5658250B2 (ja) | 2015-01-21 |
US20130019031A1 (en) | 2013-01-17 |
TW201120641A (en) | 2011-06-16 |
CN102713873A (zh) | 2012-10-03 |
JP2012533800A (ja) | 2012-12-27 |
US9330033B2 (en) | 2016-05-03 |
US8423680B2 (en) | 2013-04-16 |
US20130227174A1 (en) | 2013-08-29 |
TWI447586B (zh) | 2014-08-01 |
TW201437813A (zh) | 2014-10-01 |
KR20120046259A (ko) | 2012-05-09 |
KR101281480B1 (ko) | 2013-07-02 |
US20140173139A1 (en) | 2014-06-19 |
US20110016233A1 (en) | 2011-01-20 |
EP2454671A2 (en) | 2012-05-23 |
WO2011008963A2 (en) | 2011-01-20 |
US8615609B2 (en) | 2013-12-24 |
WO2011008963A3 (en) | 2011-05-12 |
CN102713873B (zh) | 2016-10-19 |
US8140712B2 (en) | 2012-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI444831B (zh) | 降低對記憶體的至少一部分之資料傳輸速率之方法、裝置、系統及電腦可讀媒體 | |
TWI467386B (zh) | 在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 | |
US11567895B2 (en) | Method, apparatus and system for dynamic control of clock signaling on a bus | |
TWI476630B (zh) | 由至少一處理器所執行的連續服務方法、連續服務設備及非暫態電腦可讀取儲存媒體 | |
TWI470436B (zh) | 用於排序關聯於儲存裝置之複數個寫入命令之系統、方法、及電腦程式產品 | |
JP5030070B2 (ja) | 複数のグラフィックプロセッサ間での通信を暗号化するためのビデオ処理システム、方法、及びコンピュータプログラム | |
US10331359B2 (en) | Memory subsystem with wrapped-to-continuous read | |
US20100017588A1 (en) | System, method, and computer program product for providing an extended capability to a system | |
US8319780B2 (en) | System, method, and computer program product for synchronizing operation of a first graphics processor and a second graphics processor in order to secure communication therebetween | |
TWI579697B (zh) | 用於保持在啟動器與磁碟機之間之直接連接的系統、方法及電腦程式產品 | |
US10733127B2 (en) | Data transmission apparatus and data transmission method | |
US20200301746A1 (en) | Information processing apparatus and information processing system | |
JP2005267139A (ja) | ブリッジ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |