TW201437813A - 在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 - Google Patents

在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 Download PDF

Info

Publication number
TW201437813A
TW201437813A TW103121460A TW103121460A TW201437813A TW 201437813 A TW201437813 A TW 201437813A TW 103121460 A TW103121460 A TW 103121460A TW 103121460 A TW103121460 A TW 103121460A TW 201437813 A TW201437813 A TW 201437813A
Authority
TW
Taiwan
Prior art keywords
host device
disk drive
information
gap
time delay
Prior art date
Application number
TW103121460A
Other languages
English (en)
Other versions
TWI467386B (zh
Inventor
Ross John Stenfort
Original Assignee
Lsi Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lsi Corp filed Critical Lsi Corp
Publication of TW201437813A publication Critical patent/TW201437813A/zh
Application granted granted Critical
Publication of TWI467386B publication Critical patent/TWI467386B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program 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/126Program 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-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)

Abstract

本發明提供一種用於在自一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品。在操作中,一磁碟機自一主機裝置接收一或多個命令。此外,將資訊排入佇列以傳送至該主機裝置。此外,在該資訊中插入一間隙以傳送至該主機裝置使得該主機裝置能夠傳送額外的命令至該磁碟機。

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)

  1. 一種用於儲存處理之方法,其包含:在一磁碟機處自一主機裝置接收一或多個命令,該主機裝置及該磁碟機經由包含直接記憶體存取(DMA)資料階段之一儲存協定而通信,其中該磁碟機經啟用以阻止該主機裝置傳送額外命令至該磁碟機;將資訊排入佇列以傳送至該主機裝置;依據磁碟機狀態且獨立於當前主機信號發送而判定是否在該資訊中插入一間隙以傳送至該主機裝置,使得該間隙係在該DMA資料階段之一連續兩者之個別資料之間,且該主機裝置經啟用以傳送該等額外命令至該磁碟機;基於該判定有條件地插入該間隙,否則不插入該間隙;及其中該間隙係在正傳送該資訊至該主機裝置時之一週期期間被插入。
  2. 如請求項1之方法,其中傳送至該主機裝置之該資訊包括設定資訊及與該一或多個命令之至少一者相關聯之資料。
  3. 如請求項2之方法,其中該設定資訊包括一DMA訊框資訊結構(FIS)。
  4. 如請求項2之方法,其中該設定資訊包括一設定裝置位元FIS。
  5. 如請求項2之方法,其中在傳送該設定資訊之前插入一時間延遲。
  6. 如請求項2之方法,其中在傳送該設定資訊之後插入一時間延遲。
  7. 如請求項1之方法,其進一步包含在一時間延遲期間在該磁碟機處自該主機裝置接收該等額外命令。
  8. 如請求項1之方法,其中插入該間隙包括在正傳送該資訊至該主機裝置時之該週期期間插入一時間延遲。
  9. 如請求項1之方法,其中磁碟機狀態之依據包含自接收一先前命令起算之一時間量之一依據。
  10. 如請求項8之方法,其中該時間延遲之一時間長度係基於自該磁碟機接收一先前命令起算之一時間量。
  11. 如請求項1之方法,其中一時間延遲之一時間長度或插入該時間延遲之一時間點中之至少一者係經即時判定。
  12. 如請求項1之方法,其中一時間延遲之一時間長度或插入該時間延遲之一時間點中之至少一者係一預定值。
  13. 如請求項1之方法,其中傳送至該主機裝置之該資訊包括設定資訊,該設定資訊包括指示一時間延遲係在該設定資訊之後之額外資訊。
  14. 如請求項1之方法,其中傳送至該主機裝置之該資訊包括狀態資訊,及在傳送該狀態資訊之前插入一時間延遲。
  15. 如請求項1之方法,其中插入該間隙包括插入額外資訊。
  16. 如請求項1之方法,其中該主機裝置預先於該間隙之前被通知關於該間隙。
  17. 如請求項1之方法,其中該磁碟機包括一串列ATA(SATA)磁碟機。
  18. 如請求項1之方法,其中磁碟機狀態之依據包含該磁碟機之一當前佇列深度之一依據。
  19. 一種體現於一電腦可讀取媒體上之電腦程式產品,其包含:用於在一磁碟機處自一主機裝置接收一或多個命令之電腦程式碼,該主機裝置及該磁碟機經由包含直接記憶體存取(DMA)資料階段之一儲存協定而通信,其中該磁碟機經啟用以阻止該主 機裝置傳送額外命令至該磁碟機;用於將資訊排入佇列以傳送至該主機裝置之電腦程式碼;用於依據磁碟機狀態且獨立於當前主機信號發送而判定是否在該資訊中插入一間隙以傳送至該主機裝置之電腦程式碼,使得該間隙係在該DMA資料階段之一連續兩者之個別資料之間,且該主機裝置經啟用以傳送該等額外命令至該磁碟機;及用於基於該判定有條件地插入該間隙及否則不插入該間隙之電腦程式碼,其中該間隙係在正傳送該資訊至該主機裝置時之一週期期間被插入。
  20. 如請求項19之電腦程式產品,其中磁碟機狀態之依據包含該磁碟機之一當前佇列深度之一依據。
  21. 一種用於儲存處理之設備,其包含:一磁碟機,其經啟用以自一主機裝置接收一或多個命令,該主機裝置及該磁碟機經啟用以經由包含直接記憶體存取(DMA)資料階段之一儲存協定而通信,其中該磁碟機經啟用以阻止該主機裝置傳送額外命令至該磁碟機;一緩衝器,其經啟用以將資訊排入佇列以傳送至該主機裝置;及一控制器,其經啟用以依據磁碟機狀態且獨立於當前主機信號發送而判定是否在該資訊中插入一間隙以傳送至該主機裝置,使得該間隙係在該DMA資料階段之一連續兩者之個別資料之間,且該主機裝置經啟用以傳送該等額外命令至該磁碟機,該控制器進一步經啟用以基於該判定有條件地插入該間隙,及否則不插入該間隙,及其中該間隙係在正傳送該資訊至該主機裝置時之一週期期間被插入
  22. 如請求項21之設備,其中磁碟機狀態之依據包含該磁碟機之一當前佇列深度之一依據。
TW103121460A 2009-07-17 2010-07-16 在由一磁碟機傳送至一主機裝置的資訊中插入一間隙之系統、方法及電腦程式產品 TWI467386B (zh)

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 true TW201437813A (zh) 2014-10-01
TWI467386B 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)

* Cited by examiner, † Cited by third party
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

Family Cites Families (96)

* Cited by examiner, † Cited by third party
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
KR20030040503A (ko) * 2000-09-28 2003-05-22 시게이트 테크놀로지 엘엘씨 디스크 드라이브용 임계 이벤트 로그
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
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling 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
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
KR101122511B1 (ko) * 2002-10-28 2012-03-15 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most 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
US7096313B1 (en) * 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory 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
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
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 データ伝送制御方法及び記憶装置
WO2005094281A2 (en) * 2004-03-25 2005-10-13 Riverstone Networks, 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
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
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
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
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
US7904672B2 (en) * 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
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
US8209465B2 (en) * 2007-10-30 2012-06-26 Hagiwara Sys-Com Co., Ltd. Data writing method
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
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
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
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 株式会社東芝 ディスクアレイ制御装置および記憶装置
US8219781B2 (en) * 2008-11-06 2012-07-10 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
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
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
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
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
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
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
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

Also Published As

Publication number Publication date
US20140173139A1 (en) 2014-06-19
US20130227174A1 (en) 2013-08-29
KR101281480B1 (ko) 2013-07-02
EP2454671A4 (en) 2014-06-04
WO2011008963A2 (en) 2011-01-20
TWI447586B (zh) 2014-08-01
TWI467386B (zh) 2015-01-01
TW201120641A (en) 2011-06-16
WO2011008963A3 (en) 2011-05-12
CN102713873A (zh) 2012-10-03
JP2012533800A (ja) 2012-12-27
KR20120046259A (ko) 2012-05-09
EP2454671A2 (en) 2012-05-23
US20110016233A1 (en) 2011-01-20
CN102713873B (zh) 2016-10-19
US8140712B2 (en) 2012-03-20
US8615609B2 (en) 2013-12-24
US20130019031A1 (en) 2013-01-17
JP5658250B2 (ja) 2015-01-21
US9330033B2 (en) 2016-05-03
US8423680B2 (en) 2013-04-16

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
US10969983B2 (en) Method for implementing NVME over fabrics, terminal, server, and system
TWI476630B (zh) 由至少一處理器所執行的連續服務方法、連續服務設備及非暫態電腦可讀取儲存媒體
TWI470436B (zh) 用於排序關聯於儲存裝置之複數個寫入命令之系統、方法、及電腦程式產品
CN101853344B (zh) 对输入输出装置内容的基于平台的验证
JP5030070B2 (ja) 複数のグラフィックプロセッサ間での通信を暗号化するためのビデオ処理システム、方法、及びコンピュータプログラム
US10331359B2 (en) Memory subsystem with wrapped-to-continuous read
TWI528183B (zh) 使用資料傳輸率節流來執行序列ata連接的資料傳輸之方法、電腦可讀媒體和系統
US20070150683A1 (en) Dynamic memory buffer allocation method and system
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
JP2005267139A (ja) ブリッジ装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees