專利名稱:在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的制作方法
技術領域:
本發(fā)明涉及存儲器系統(tǒng),并且更特別地,涉及在驅(qū)動器開始發(fā)送數(shù)據(jù)時在驅(qū)動器處從主機裝置接收命令。
背景技術:
在許多存儲系統(tǒng)中,當有沖突時,在發(fā)送幀時,目標裝置先于主機而具有優(yōu)先級。在這些情況下,當命令排隊時(例如,使用第一方直接存儲器存取等),一旦目標已經(jīng)發(fā)送了直接存儲器存取(DMA)設置幀信息結構(FIS)以進入數(shù)據(jù)相位(data phase),則主機通常不能向目標裝置發(fā)送任何命令。
如果驅(qū)動器能夠很快地獲取數(shù)據(jù),則主機能夠向驅(qū)動器發(fā)送等于最大隊列深度的命令數(shù)。然后,驅(qū)動器可以在幀之間沒有任何間斷的情況下返回DMA設置、數(shù)據(jù)、DMA設置、數(shù)據(jù)等。這不允許主機發(fā)送任何更多的命令。在這些情況下,驅(qū)動器的隊列深度可以從最大隊列深度振蕩到零,回到最大隊列深度并再次振蕩到零。這可能會負面地影響性能。因此,需要解決與現(xiàn)有技術相關聯(lián)的這些和/或其他問題。
發(fā)明內(nèi)容
提供了用于在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的系統(tǒng)、方法以及計算機程序產(chǎn)品。在操作時,在驅(qū)動器處從主機裝置接收一個或多個命令。另外,將信息排隊以發(fā)送至主機裝置。此外,在信息中插入間隔以發(fā)送至主機裝置,使得主機裝置能夠向驅(qū)動器發(fā)送附加命令。
圖I示出了根據(jù)一個實施方式的用于在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的方法。圖2示出了根據(jù)一個實施方式的用于在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的系統(tǒng)。圖3示出了根據(jù)另一個實施方式的用于在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的方法。圖4示出了可以實施以上各實施方式的各種架構和/或功能的示例性系統(tǒng)。
具體實施例方式下文與示出了本發(fā)明的所選細節(jié)的附圖一起提供了對本發(fā)明的一個或多個實施方式的詳細描述。結合實施方式描述了本發(fā)明。本文中的實施方式被理解為僅是示例性的,本發(fā)明明確地不限于本文中的任一個或全部實施方式,并且本發(fā)明包括大量替換、修改和等價物。為了避免論述單調(diào),可以將各種詞標簽(包括但不限于第一、最后、某個、各個、另夕卜、另一個、特別、選擇、一些以及顯著的)應用于實施方式的單獨集合;如本文所使用的,這種標簽明顯不旨在表達數(shù)量、或任何形式的喜好或偏見,而僅為了便于區(qū)分單獨的設置。所公開的處理的一些操作的順序可以在本發(fā)明的范圍內(nèi)改變。在以下描述中闡述了大量具體細節(jié)來提供對本發(fā)明的透徹理解。這些細節(jié)為了實施例而提供,并且本發(fā)明可以根據(jù)權利要求來實踐,而無需一些或全部的細節(jié)。為了清楚,沒有詳細描述在本發(fā)明的相關技術領域中已知的技術材料,以免不必要地使本發(fā)明模糊。引言包括該引言僅是為了便于更快地理解詳細描述;任何弓I言的段落需要是整個主題的精簡概括,并且不意味著是詳盡或限制性的描述,因此,本發(fā)明不限于在引言(包括明確的實施例,如果有的話)中給出的概念。例如,以下的引言僅向某些實施方式提供了空間和組織所限制的概括信息。在以下的說明書中通篇還 討論了很多其他實施方式,包括最終引出權利要求的那些實施方式。提供了用于在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的系統(tǒng)、方法和計算機程序產(chǎn)品。在操作中,在驅(qū)動器處從主機裝置接收一個或多個命令。另外,將信息進行排隊以發(fā)送到主機裝置。此外,在信息中插入間隔以發(fā)送到主機裝置,使得主機裝置能夠向驅(qū)動器發(fā)送附加命令。實例實施方式結束了詳細描述的引言,隨后是實例實施方式的集合,至少包括一些明確地列舉為“EC” (實施例組合)的實施方式,以提供根據(jù)本文中描述的概念的各種實施方式類型的額外描述,這些實施例并不意味著相互排斥、詳盡或限制的,并且本發(fā)明不限于這些實例實施方式,而是包括所頒布的權利要求的范圍內(nèi)的所有可能的修改和變化。ECl. —種方法,包括在驅(qū)動器從主機裝置接收一個或多個命令;將信息排隊以發(fā)送到主機裝置;以及在信息中插入間隔以發(fā)送到主機裝置,使得主機裝置能夠向驅(qū)動器發(fā)送附加命令。EC2.根據(jù)ECl的方法,其中,插入間隔包括插入時間延遲。EC3.根據(jù)EC2的方法,其中,信息包括設置信息和與一個或多個命令中的至少一個相關聯(lián)的數(shù)據(jù)。EC4.根據(jù)EC3的方法,其中,設置信息包括直接存儲器存取(DMA)幀信息結構(FIS)。EC5.根據(jù)EC3的方法,其中,設置信息包括設置裝置位(setup device bit)FIS。EC6.根據(jù)EC3的方法,其中,在發(fā)送設置信息之前插入時間延遲。EC7.根據(jù)EC3的方法,其中,在發(fā)送設置信息之后插入時間延遲。EC8.根據(jù)EC2的方法,還包括在時間延遲期間在驅(qū)動器處從主機裝置接收附加命令。EC9.根據(jù)EC2的方法,其中,插入時間延遲包括在信息發(fā)送到主機裝置期間插入時間延遲。EC10.根據(jù)EC9的方法,其中,基于驅(qū)動器的當前隊列深度來插入時間延遲。
ECll.根據(jù)EC9的方法,其中,基于自接收到前一命令以來的時間量來插入時間延遲。EC12.根據(jù)EC9的方法,其中,時間延遲的時間長度基于驅(qū)動器的當前隊列深度。EC13.根據(jù)EC9的方法,其中,時間延遲的時間長度基于自驅(qū)動器接收到前一命令以來的時間量。EC14.根據(jù)EC2的方法,其中,實時確定時間延遲的時間長度和插入時間延遲的時間點中的至少一個。EC15.根據(jù)EC2的方法,其中,時間延遲的時間長度和插入時間延遲的時間點中的 至少一個為預定值。EC16.根據(jù)EC2的方法,其中,信息包括設置信息,設置信息包括指示時間延遲在設置信息之后的信息。EC17.根據(jù)EC2的方法,其中,信息包括狀態(tài)信息,并在發(fā)送狀態(tài)信息之前插入時間延遲。EC18.根據(jù)ECl的方法,其中,插入間隔包括插入附加信息。EC19.根據(jù)ECl的方法,其中,在插入間隔之前向主機裝置通知間隔。EC20.根據(jù)ECl的方法,其中,驅(qū)動器包括串行ATA (SATA)驅(qū)動器。EC21. 一種嵌入在計算機可讀介質(zhì)上的計算機程序產(chǎn)品,包括用于在驅(qū)動器處從主機裝置接收一個或多個命令的計算機代碼;用于將信息排隊以發(fā)送到主機裝置的計算機代碼;以及用于在發(fā)送到主機裝置的信息中插入間隔使得主機裝置能夠向驅(qū)動器發(fā)送附加命令的計算機代碼。EC22. —種設備,包括用于從主機裝置接收一個或多個命令的驅(qū)動器;用于將信息排隊以發(fā)送到主機裝置的緩沖器;以及用于在信息中插入間隔以發(fā)送到主機裝置使得主機裝置能夠向驅(qū)動器發(fā)送附加命令的控制器。E23. 一種系統(tǒng),包括被使得能夠從主機裝置接收命令的驅(qū)動器,主機裝置被使得能夠利用使驅(qū)動器阻止主機發(fā)送附加命令的存儲協(xié)議而與驅(qū)動器通信,驅(qū)動器包括控制器,以及緩沖器;以及其中當存在沖突時,驅(qū)動器先于主機裝置而具有優(yōu)先級,緩沖器被使得能夠?qū)⑿畔⑴抨犚园l(fā)送到主機裝置,以及控制器被使得能夠在信息中插入間隔,使主機裝置能夠向驅(qū)動器發(fā)送附加命令。EC24.根據(jù)EC23的系統(tǒng),其中,控制器進一步被使得能夠在驅(qū)動器已經(jīng)開始至少部分地經(jīng)由向主機裝置發(fā)送設置信息而向主機裝置發(fā)送信息之后插入間隔,以使主機裝置能夠向驅(qū)動器發(fā)送附加命令。EC25.根據(jù)EC24的系統(tǒng),其中,設置信息包括直接存儲器存取(DMA)設置。
EC26.根據(jù)EC23的系統(tǒng),其中,裝置包括下列項中的一個或多個串行ATA (SATA)驅(qū)動器,串行連接SCSI (SAS)驅(qū)動器,光纖通道(FC)驅(qū)動器,以及通用串行總線(USB)驅(qū)動器。EC27.根據(jù)EC23的系統(tǒng),其中,命令包括下列項中的一個或多個傳輸請求,
傳輸數(shù)據(jù)的命令,訪問與驅(qū)動器相關聯(lián)的存儲器的一部分的命令,以及提取數(shù)據(jù)的命令。EC28.根據(jù)EC23的系統(tǒng),其中,信息包括下列項中的一個或多個數(shù)據(jù)信息,數(shù)據(jù)結構信息,直接存儲器存取(DMA)幀信息結構(FIS),設置裝置位FIS,以及與命令中的至少一個相關聯(lián)的數(shù)據(jù)。EC29.根據(jù)EC 23的系統(tǒng),其中,間隔包括下列項中的一個或多個打斷,中斷,以及延遲。EC30.根據(jù)EC23的系統(tǒng),其中,間隔包括下列項中的一個或多個時間延遲,附加信息,間隔的長度,銷售商具體信息,以及與間隔相關聯(lián)的信息。EC31.根據(jù)EC23的系統(tǒng),其中,控制器進一步被使得能夠至少部分地基于驅(qū)動器的當前命令隊列長度來插入間隔。EC32.根據(jù)EC23的系統(tǒng),其中,控制器進一步被使得能夠至少部分地基于自接收到前一命令以來的時間來插入間隔。EC33.根據(jù)EC23的系統(tǒng),其中,間隔包括時間延遲,并且控制器被使得能夠?qū)崟r確定時間延遲的長度。EC34.根據(jù)EC23的系統(tǒng),其中,間隔包括時間延遲,并且控制器被使得能夠?qū)崟r確定插入時間延遲的時間點。EC35. 一種方法,包括在驅(qū)動器處從主機裝置接收一個或多個命令,主機裝置被使得能夠利用使驅(qū)動器阻止主機裝置發(fā)送附加命令的存儲協(xié)議而與驅(qū)動器通信;將信息排隊以發(fā)送到主機裝置,發(fā)送至少部分地經(jīng)由到主機裝置的設置信息;確定是否插入時間延遲;以及
基于確定,有條件地插入時間延遲,以使主機裝置能夠向驅(qū)動器發(fā)送附加命令。EC36.根據(jù)EC35的方法,其中,設置信息包括直接存儲器存取(DMA)設置。EC37.根據(jù)EC35的方法,還包括檢查與驅(qū)動器相關聯(lián)的緩沖器,以確定是否存在有效排隊命令,并且如果存在,則執(zhí)行該確定。EC38.根據(jù)EC35的方法,其中,驅(qū)動器包括下列項中的一個或多個串行ATA (SATA)驅(qū)動器,串行連接SCSI (SAS)驅(qū)動器,
光纖通道(FC)驅(qū)動器,以及通用串行總線(USB)驅(qū)動器。EC39.根據(jù)EC35的方法,其中,命令包括下列項中的一個或多個傳輸請求,傳輸數(shù)據(jù)的命令,訪問與驅(qū)動器相關聯(lián)的存儲器的一部分的命令,以及提取數(shù)據(jù)的命令。EC40.根據(jù)EC35的方法,其中,信息包括下列項中的一個或多個數(shù)據(jù)信息,數(shù)據(jù)結構信息,直接存儲器存取(DMA)幀信息結構(FIS),設置裝置位FIS,以及與命令中的至少一個相關聯(lián)的數(shù)據(jù)。EC41.根據(jù)EC35的方法,其中,該確定至少部分地基于驅(qū)動器的當前命令隊列深度。EC42.根據(jù)EC35的方法,其中,該確定至少部分地基于自接收到前一命令以來的時間。EC43.根據(jù)EC35的方法,還包括實時確定時間延遲的長度。EC44.根據(jù)EC35的方法,還包括實時確定插入時間延遲的時間點。EC45. 一種系統(tǒng),包括用于在驅(qū)動器處從主機裝置接收一個或多個命令的裝置,主機裝置被使得能夠利用使驅(qū)動器阻止主機裝置發(fā)送附加命令的存儲協(xié)議而與驅(qū)動器通信;用于將信息排隊以發(fā)送到主機裝置的裝置,該發(fā)送至少部分地經(jīng)由到主機裝置的設置信息;用于確定是否插入時間延遲的裝置;以及用于基于用于確定的裝置而有條件地插入時間延遲以使主機裝置能夠向驅(qū)動器發(fā)送附加命令的裝置。EC46.根據(jù)EC45的系統(tǒng),其中,設置信息包括直接存儲器存取(DMA)設置。EC47.根據(jù)EC45的系統(tǒng),還包括用于檢查與驅(qū)動器相關聯(lián)的緩沖器以確定當前是否存在有效排隊命令的裝置;并且其中,用于確定的裝置有條件地基于用于檢查的裝置的結果。EC48.根據(jù)EC45的系統(tǒng),其中,驅(qū)動器包括下列項中的一個或多個
串行ATA (SATA)驅(qū)動器,串行連接SCSI (SAS)驅(qū)動器,光纖通道(FC)驅(qū)動器,以及通用串行總線(USB)驅(qū)動器。EC49.根據(jù)EC45的系統(tǒng),其中,命令包括下列項中的一個或多個傳輸請求,傳輸數(shù)據(jù)的命令,
訪問與驅(qū)動器相關聯(lián)的存儲器的一部分的命令,以及提取數(shù)據(jù)的命令。EC50.根據(jù)EC45的系統(tǒng),其中,信息包括下列項中的一個或多個數(shù)據(jù)信息,數(shù)據(jù)結構信息,直接存儲器存取(DMA)幀信息結構(FIS),設置裝置位FIS,以及與命令中的至少一個相關聯(lián)的數(shù)據(jù)。EC51.根據(jù)EC45的系統(tǒng),其中,用于確定的裝置至少部分地基于驅(qū)動器的當前命令隊列深度來運行。EC52.根據(jù)EC45的系統(tǒng),其中,用于確定的裝置至少部分地基于自接收到前一命令以來的時間來運行。EC53.根據(jù)EC45的系統(tǒng),還包括用于實時確定時間延遲的長度的裝置。EC54.根據(jù)EC45的系統(tǒng),還包括用于實時確定插入時間延遲的時間點的裝置。EC55. 一種具有存儲在其中的一組指令的有形計算機可讀介質(zhì),當由計算機執(zhí)行一組指令時,該有形計算機可讀介質(zhì)使計算機執(zhí)行包括下列項的功能在驅(qū)動器處從主機裝置接收一個或多個命令,主機裝置被使得能夠利用使驅(qū)動器阻止主機裝置發(fā)送附加命令的存儲協(xié)議而與驅(qū)動器通信;將信息排隊以發(fā)送到主機裝置,發(fā)送至少部分地基于到主機裝置的設置信息;以及有條件地插入時間延遲,以使主機裝置能夠向驅(qū)動器發(fā)送附加命令。EC56.根據(jù)EC55的有形計算機可讀介質(zhì),其中,有條件地插入至少部分地基于確定是否插入時間延遲。EC57.根據(jù)EC56的有形計算機可讀介質(zhì),其中,該確定至少部分地基于驅(qū)動器的當前命令隊列深度。EC58.根據(jù)EC56的有形計算機可讀介質(zhì),其中,該確定至少部分地基于自接收到上一命令以來的時間。EC59.根據(jù)EC55的有形計算機可讀介質(zhì),其中,該功能還包括實時確定時間延遲的長度。EC60.根據(jù)EC55的有形計算機可讀介質(zhì),其中,該功能還包括實時確定插入時間延遲的時間點。EC61.根據(jù)EC55的有形計算機可讀介質(zhì),其中,驅(qū)動器進一步包括下列項中的一個或多個串行ATA (SATA)驅(qū)動器,串行連接SCSI (SAS)驅(qū)動器,光纖通道(FC)驅(qū)動器,以及通用串行總線(USB)驅(qū)動器。EC62.根據(jù)EC55的有形計算機可讀介質(zhì),其中,命令包括下列項中的一個或多個傳輸請求,
傳輸數(shù)據(jù)的命令,訪問與驅(qū)動器相關聯(lián)的存儲器的一部分的命令,以及提取數(shù)據(jù)的命令。EC63.根據(jù)EC55的有形計算機可讀介質(zhì),其中,信息包括下列項中的一個或多個數(shù)據(jù)信息,數(shù)據(jù)結構信息,直接存儲器存取(DMA)幀信息結構(FIS),設置裝置位FIS,以及與命令中的至少一個相關聯(lián)的數(shù)據(jù)。圖I示出了根據(jù)一個實施方式的用于在被從驅(qū)動器發(fā)送到主機裝置的信息中插入間隔的方法100。如圖所示,在驅(qū)動器處從主機裝置接收一個或多個命令。參見操作102。命令可以包括能夠被從主機裝置發(fā)送到驅(qū)動器的任何命令或指令。例如,在一個實施方式中,命令可以包括傳輸數(shù)據(jù)的命令(例如,傳輸請求等)。在另一實施方式中,命令可以包括訪問與驅(qū)動器相關聯(lián)的存儲器的一部分的命令。驅(qū)動器可以包括能夠存儲數(shù)據(jù)的任何驅(qū)動器。例如,在一個實施方式中,驅(qū)動器可以包括串行ATA(SATA)驅(qū)動器。在各種其他實施方式中,驅(qū)動器可以包括但不限于串行連接SCSI (SAS)驅(qū)動器、光纖通道(FC)驅(qū)動器、或通用串行總線(USB)驅(qū)動器和/或任何其他存儲裝置或驅(qū)動器。此外,主機裝置可以包括能夠向驅(qū)動器發(fā)送命令的任何裝置。例如,在不同的實施方式中,主機裝置可以包括臺式計算機、膝上型計算機和/或任何其他邏輯類型。另外,主機裝置可以采用各種其他裝置的形式,包括但不限于個人數(shù)字助理(PDA)裝置、移動電話
目.-rf* ο如圖I進一步所示,將信息排隊以發(fā)送到主機裝置。參見操作104。在一個實施方式中,信息可以在緩沖器或能夠?qū)?shù)據(jù)排隊的裝置中排隊。信息可以包括任何數(shù)據(jù)或與數(shù)據(jù)相關聯(lián)的信息(例如,數(shù)據(jù)類型信息、數(shù)據(jù)結構信息等)。在一個實施方式中,信息可以包括設置信息和與至少一個命令相關聯(lián)的數(shù)據(jù)。例如,在驅(qū)動器處從主機裝置接收的命令可以包括提取數(shù)據(jù)的命令。然后,驅(qū)動器可以將數(shù)據(jù)和設置信息排隊。在一個實施方式中,設置信息可以包括直接存儲器存取(DMA)幀信息結構(FIS)。在另一實施方式中,設置信息可以包括設置裝置位FIS。應當注意的是,在不同實施方式中,間隔可以基于時間或者基于命令閾值或者基于兩者的組合。閾值還可以基于命令的數(shù)量和隊列深度或其他參數(shù)。此外,在信息中插入間隔以發(fā)送到主機裝置,使得主機裝置能夠向驅(qū)動器發(fā)送附加命令。參見操作106。在本說明書的上下文中,間隔是指主機裝置能夠向驅(qū)動器發(fā)送命令的打斷、中斷、或延遲。在不同的實施方式中,間隔可以包括時間延遲或附加信息等。例如,在一個實施方式中,插入間隔可以包括插入時間延遲。在另一實施方式中,插入間隔可以包括插入附加信
肩、O附加信息可以包括任何類型的信息。例如,在一個實施方式中,附加信息可以包括指示間隔的長度的信息。在另一實施方式中,附加信息可以包括銷售商具體信息。在又一實施方式中,附加信息可以包括與間隔相關聯(lián)的信息。在另一實施方式中,信息可以包括設置信息,設置信息包括指示時間延遲在設置信息之后的信息。在該情況下,信息可以包括狀態(tài)信息,并且時間延遲可以在發(fā)送狀態(tài)信息之前或者在狀態(tài)信息之后插入。 應當注意的是,可以在發(fā)送信息時的任一時間點插入間隔。例如,在間隔包括時間延遲的情況下,可以在發(fā)送設置信息之前插入時間延遲。在另一實施方式中,可以在發(fā)送設置信息之后插入時間延遲。在這兩種情況下,可以在時間延遲期間在驅(qū)動器處從主機裝置接收附加命令。在一個實施方式中,插入間隔可以包括在正向主機裝置發(fā)送信息的期間插入間隔。應當注意的是,插入間隔的時間點可以基于各種參數(shù)。例如,在一個實施方式中,可以基于驅(qū)動器的當前隊列深度來插入。在另一實施方式中,間隔可以基于自從接收到前一命令以來的時間量來插入。此外,間隔的長度或大小可以基于各種參數(shù)。例如,在一個實施方式中,時間延遲的時間長度可以基于驅(qū)動器的當前隊列深度。在另一實施方式中,時間延遲的時間長度可以基于自從接收到前一命令以來的時間量。在這兩種情況下,作為選擇,可以實時確定時間延遲的時間長度或插入時間延遲的時間點中的至少一個。作為另一種選擇,時間延遲的時間長度或插入時間延遲的時間點中的至少一個可以為預定值。在該情況下,預定值可以是在硬件或軟件中設置的值。現(xiàn)在將陳述關于各種可選架構和特征(通過它們可以實現(xiàn)上述框架)的更詳細信息。應當更加注意的是,為了說明的目的而闡述了下面的信息,而不應被理解為以任何形式的限制。下面所述的任何特征可以可選地結合所描述的其他特征或者不排斥所描述的其他特征。圖2示出了根據(jù)一個實施方式的用于在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的系統(tǒng)200。作為選擇,本系統(tǒng)200可以被實施為執(zhí)行圖I的方法100。然而,當然,系統(tǒng)200可以在任何所需的環(huán)境中實施。應當注意的是,在本說明書中可以應用上述定義。如圖所示,系統(tǒng)200包括用于從主機裝置204接收一個或多個命令的驅(qū)動器202。此外,系統(tǒng)200包括用于將信息排隊以發(fā)送到主機裝置204的緩沖器206。另外,系統(tǒng)200包括控制器208,用于在信息中插入間隔以發(fā)送到主機裝置204,使得主機裝置204能夠在驅(qū)動器202已經(jīng)開始向主機裝置204發(fā)送信息之后向驅(qū)動器202發(fā)送附加命令。應當注意的是,驅(qū)動器202可以包括諸如SATA驅(qū)動器、SAS驅(qū)動器、FC驅(qū)動器和/或任何其他存儲裝置或驅(qū)動器的各種類型的驅(qū)動器。通過在信息中插入間隔,可以配置非??斓靥崛?shù)據(jù)的驅(qū)動器,使得當驅(qū)動器已經(jīng)開始發(fā)送數(shù)據(jù)時,其不從最大隊列深度振蕩到零。
例如,在SATA中,當有沖突時,在發(fā)送幀時,目標通常先于主機而具有優(yōu)先級。另夕卜,通常在SATA中,當將命令排隊時(例如,使用第一方直接存儲器存取等),一旦目標已經(jīng)發(fā)送了 DMA設置FIS以進入數(shù)據(jù)相位,則主機不能向目標發(fā)送任何命令。如果驅(qū)動器真的能夠很快地提取數(shù)據(jù),則主機能夠向驅(qū)動器發(fā)送等于最大隊列深度(例如,32,等)的命令數(shù)。通常,驅(qū)動器可以然后返回DMA設置、數(shù)據(jù)、DMA設置、數(shù)據(jù)等,同時在各幀之間沒有間隔。這不允許主機發(fā)送任何更多的命令。驅(qū)動器的隊列深度將從最大隊列深度(例如,32,等)振蕩到O并從O返回到最大隊列深度(例如,32,等)。這可能負面地影響性能。在一些情況下,硬盤驅(qū)動器(HDD)很慢,以致于在數(shù)據(jù)中有間隔,因此不會發(fā)生該振蕩。然而,對于較快的驅(qū)動器,可能發(fā)生該振蕩。
因此,在一個實施方式中,在向主機裝置204發(fā)出DMA設置之前,可以插入一個或多個間隔,以使主機裝置204向驅(qū)動器202發(fā)送更多的命令??梢曰诎?qū)動器202的當前隊列深度或自上一個命令開始的時間量的各種參數(shù)來插入間隔。在一個實施方式中,插入間隔的時間點可以基于驅(qū)動器202的當前隊列深度、自上一個命令開始以來的時間量、或者這些或一些其他參數(shù)的組合。此外,允許從主機裝置204發(fā)送命令的間隔的長度還可以基于各種參數(shù)。例如,間隔的長度可以基于隊列深度、時間或一些其他參數(shù)。在各種實施方式中,這些參數(shù)可以由主機裝置204或驅(qū)動器202實時調(diào)整。作為選擇,參數(shù)還可以被設置為固定值。在一個實施方式中,驅(qū)動器202可以通過向DMA設置添加信息以指示在該DMA設置之后將有間隔,來向主機裝置204發(fā)信號。作為選擇,主機裝置204可以通過向命令中添加信息,來對發(fā)送命令的結束發(fā)信號。應當注意的是,在一個實施方式中,還可以在發(fā)送狀態(tài)之前插入間隔。這可以代替在DMA設置FIS之前插入間隔來執(zhí)行,或者除了在DMA設置FIS之前插入間隔之外而另外地執(zhí)行。圖3示出了根據(jù)另一實施方式的用于在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的方法300。作為選擇,本方法300可以在圖I至圖2的功能和架構的背景中實施。然而,當然,方法300可以在任何所需的環(huán)境中執(zhí)行。再次,上述定義可以應用于本說明書。如圖所示,確定是否存在有效排隊命令。參見操作302。在該情況下,有效排隊命令可以是與驅(qū)動器相關聯(lián)的緩沖器中的有效排隊命令。如果存在有效排隊命令,則確定是否插入時間延遲。參見操作304。在一個實施方式中,定時器可以用于插入時間延遲。如果確定插入時間延遲,則插入時間延遲。參見操作306。然后確定系統(tǒng)是否準備好了數(shù)據(jù)傳輸。參見操作308。如果系統(tǒng)準備好了數(shù)據(jù)傳輸,則發(fā)送DMA設置FIS。參見操作310。一旦發(fā)送了DMA設置FIS,則完成了數(shù)據(jù)傳輸。參見操作312。應當注意的是,DMA設置可以僅僅是用于與命令相關聯(lián)的一條數(shù)據(jù)。一旦該條數(shù)據(jù)已經(jīng)完成了傳輸,則可以插入間隔。因此,然后,再次確定是否插入時間延遲。參見操作314。如果確定插入時間延遲,則插入時間延遲。參見操作316。如進一步所示的,確定是否發(fā)送設置裝置位FIS。參見操作318。如果確定發(fā)送設置裝置位FIS,則發(fā)送設置裝置位FIS。參見操作320。
以此方式,即使在驅(qū)動器已經(jīng)開始發(fā)送數(shù)據(jù)時,主機裝置也能夠向驅(qū)動器發(fā)送命令。應當注意的是,盡管沒有在圖3中示出,但可以在時間延遲期間向主機裝置發(fā)送信息。例如,可以插入關于時間延遲的持續(xù)時間的信息或者銷售商具體信息。圖4是示出了其中可以實施上述各實施方式的各種架構和/或功能的示例性系統(tǒng)400。如圖所示,系統(tǒng)400被設置為包括連接至通信總線402的至少一個主機處理器401。系統(tǒng)400還包括主存儲器404。控制邏輯(軟件)和數(shù)據(jù)被存儲在隨機存取存儲器(RAM)形式的主存儲器404中。系統(tǒng)400還包括圖形處理器406和顯示器408 (即,計算機顯示器)。在一個實施方式中,圖形處理器406可以包括多個著色器模塊(shader module)、光柵模塊等。上述模塊中的每一個甚至還可以位于單個半導體平臺上 ,以形成圖形處理單元(GPU)。 在本說明書中,單個半導體平臺可以指基于唯--元半導體的集成電路或芯片。
應當注意的是,“術語”單個半導體平臺還可以指模擬芯片上操作并通過利用傳統(tǒng)中央處理單元(CPU)和總線實現(xiàn)而做出顯著改善的具有增大連接的多芯片模塊。當然,各個模塊還可以被單獨或者根據(jù)用戶需求而位于半導體平臺的各種組合中。系統(tǒng)400還可以包括次存儲器400。次存儲器400例如包括硬盤驅(qū)動器和/或可移除存儲驅(qū)動器,以表示軟盤驅(qū)動器、磁帶驅(qū)動器、光盤驅(qū)動器等??梢瞥鎯︱?qū)動器以公知的該方式從可移除存儲器單元讀取和/或向其寫入。計算機程序或計算機控制邏輯算法還可以存儲在主存儲器404和/或次存儲器410中。當執(zhí)行這些計算機程序時,這些計算機程序使系統(tǒng)400執(zhí)行各種功能。存儲器404、存儲器410和/或任何其他存儲器都是計算機可讀媒介的可能實例。在一個實施方式中,以上各圖的架構和/或功能性可以在主機處理器401、圖形處理器406、能夠?qū)崿F(xiàn)主處理器401和圖形處理器406的至少一部分性能的集成電路(未示出)、芯片組(即,被設計為作為單位進行工作并且銷售以用于執(zhí)行相關功能等的一組集成電路)、和/或用于該問題的任何其他集成電路的背景中實現(xiàn)。另外,以上各圖的架構和/或功能性可以在通用計算機系統(tǒng)、電路板系統(tǒng)、專用于娛樂目的的游戲機控制系統(tǒng)、特定應用系統(tǒng)、和/或任何其他所需系統(tǒng)的背景中實現(xiàn)。例如,系統(tǒng)400可以采用臺式計算機、膝上型計算機和/或其他類型的邏輯的形式。另外,系統(tǒng)400可以采用各種其他裝置的形式,包括但不限于個人數(shù)字助理裝置、移動電話裝置、電視機等。進一步地,盡管沒有示出,但為了通信,系統(tǒng)400可以耦接至網(wǎng)絡[例如,電信網(wǎng)絡、局域網(wǎng)(LAN)、無線網(wǎng)、諸如互聯(lián)網(wǎng)、對等網(wǎng)絡、電纜網(wǎng)絡等的廣域網(wǎng)(WAN)]。盡管以上已經(jīng)描述了各種實施方式,但應當理解,其僅通過實例而不是限制的方式給出。因此,優(yōu)選實施方式的寬度和范圍不應當由上述實施方式的任一個限制,而是應該僅根據(jù)所附權利要求及其等價物來限定。結論在準備文本和附圖時,僅僅為了方便,在描述中已經(jīng)進行了某種選擇,除非有相反指示,否則該選擇在本質(zhì)上不應當被理解為表達關于所述實施方式的結構或操作的附加信息。選擇的實例包括用于附圖編碼的名稱的特殊組織或分配,以及用于實施方式的特征和元件的標識和引用的元件標識符(標注或數(shù)字指示符等)的特殊組織或分配。
詞語“包括(includes or including) ”具體地旨在被理解為描述開放范圍的邏輯集合的抽象概念,除非其后面明確地跟隨有詞“在.· ·中”,否則并不意味著表達物理包含。盡管為了描述和理解的清楚,已經(jīng)在一些細節(jié)上描述了上面的實施方式,但本發(fā)明不限于所提供的細節(jié)。存在很多本發(fā)明的實施方式,所公開的實施方式是示例性的而不是限制性的。將理解的是,構造、排列和使用的許多變化也可能與說明書一致,并且它們都在所頒布的專利的權利要求的范圍內(nèi)。例如,根據(jù)每個組件塊中的各個實施方式,所使用的互聯(lián)和功能單位位寬、時鐘速度以及技術類型都是可變的,向互連和邏輯提供的名稱僅為示例性的,并不應理解為限制所描述的概念。流程圖的順序和排列以及流程圖處理、動作、和功能元素根據(jù)各個實施方式是可變的。并且,除非有明 確地相反闡述,所指定的值范圍、所使用的最大和最小值、或其他特殊規(guī)格(諸如閃存技術類型、以及寄存器和緩沖器中的條目或級的數(shù)量)僅僅屬于所描述的實施方式,并且期望追蹤實施技術的改善和變化,并不應被理解為限制??梢圆捎矛F(xiàn)有技術中已知的功能等效的技術來替代所描述的技術,以實施各種部件、子系統(tǒng)、操作、功能、例程、次例程、線內(nèi)例程、程序、宏、或其部分。還應當理解,由于實施方式的功能依賴于更快的處理(促進先前在硬件中的功能遷移到軟件中)和更高的集成度(促進先前在軟件中的功能遷移到硬件中)的技術趨勢和設計約束,實施方式的許多功能方面可選地在硬件(即,一般專用電路)或軟件(即,經(jīng)由一些方式的編程控制器或處理器)中實現(xiàn)。各個實施方式中的具體變化包括但不限于分區(qū)差異;不同形式因素和配置;不同操作系統(tǒng)和其他系統(tǒng)軟件的使用;不同接口標準、網(wǎng)絡協(xié)議、或通信鏈路的使用;以及當根據(jù)特殊應用的獨特功能和業(yè)務約束來實施本文中描述的構思時所預期的其他變化。已經(jīng)用細節(jié)和環(huán)境背景描述了實施方式,這遠遠超過所描述的實施方式的許多方面的最小實現(xiàn)的要求。本領域普通技術人員將認識到,一些實施方式省略了公開的部件或特征,而不會改變剩余元件之間的基本合作。因此能理解,所公開的大部分細節(jié)不是實施所述實施方式的各個方面所需要的。就剩余元件與現(xiàn)有技術相區(qū)分來說,省略的部件和特征并不是對這里描述的概念的限制。設計上的所有這種變化都是對所描述的實施方式表達的教導的非實質(zhì)改變。還應理解,本文所描述的實施方式對其他計算和網(wǎng)絡應用也有廣泛應用,并不限于所描述的實施方式的特殊應用或工業(yè)。因此,本發(fā)明將被理解為包括在所頒布的專利的權利要求范圍內(nèi)的所有可能的修改和變化。
權利要求
1.一種方法,包括 在驅(qū)動器處從主機裝置接收一個或多個命令; 將信息排隊以發(fā)送到所述主機裝置;以及 在所述信息中插入間隔以發(fā)送到所述主機裝置,使得所述主機裝置能夠向所述驅(qū)動器發(fā)送附加命令。
2.根據(jù)權利要求I所述的方法,其中,插入所述間隔包括插入時間延遲。
3.根據(jù)權利要求2所述的方法,其中,所述信息包括設置信息和與所述一個或多個命令中的至少一個相關聯(lián)的數(shù)據(jù)。
4.根據(jù)權利要求3所述的方法,其中,所述設置信息包括直接存儲器存取(DMA)幀信息結構(FIS)。
5.根據(jù)權利要求3所述的方法,其中,所述設置信息包括設置裝置位FIS。
6.根據(jù)權利要求3所述的方法,其中,在發(fā)送所述設置信息之前插入所述時間延遲。
7.根據(jù)權利要求3所述的方法,其中,在發(fā)送所述設置信息之后插入所述時間延遲。
8.根據(jù)權利要求2所述的方法,還包括在所述時間延遲期間在所述驅(qū)動器處從所述主機裝置接收所述附加命令。
9.根據(jù)權利要求2所述的方法,其中,插入所述時間延遲包括在所述信息正被發(fā)送到所述主機裝置期間插入所述時間延遲。
10.根據(jù)權利要求9所述的方法,其中,基于所述驅(qū)動器的當前隊列深度來插入所述時間延遲。
11.根據(jù)權利要求9所述的方法,其中,基于自接收到前一命令以來的時間量來插入所述時間延遲。
12.根據(jù)權利要求9所述的方法,其中,所述時間延遲的時間長度是基于所述驅(qū)動器的當前隊列深度的。
13.根據(jù)權利要求9所述的方法,其中,所述時間延遲的時間長度基于自由所述驅(qū)動器接收到前一命令以來的時間量。
14.根據(jù)權利要求2所述的方法,其中,實時確定所述時間延遲的時間長度和插入所述時間延遲的時間點中的至少一個。
15.根據(jù)權利要求2所述的方法,其中,所述時間延遲的時間長度和插入所述時間延遲的時間點中的至少一個為預定值。
16.根據(jù)權利要求2所述的方法,其中,所述信息包括設置信息,所述設置信息包括指示所述時間延遲在所述設置信息之后的信息。
17.根據(jù)權利要求2所述的方法,其中,所述信息包括狀態(tài)信息,并在發(fā)送所述狀態(tài)信息之前插入所述時間延遲。
18.根據(jù)權利要求I所述的方法,其中,插入所述間隔包括插入附加信息。
19.根據(jù)權利要求I所述的方法,其中,在插入所述間隔之前向所述主機裝置通知所述間隔。
20.根據(jù)權利要求I所述的方法,其中,所述驅(qū)動器包括串行ATA(SATA)驅(qū)動器。
21.—種嵌入在計算機可讀介質(zhì)上的計算機程序產(chǎn)品,包括 用于在驅(qū)動器處從主機裝置接收一個或多個命令的計算機代碼;用于將信息排隊以發(fā)送到所述主機裝置的計算機代碼;以及 用于在所述信息中插入間隔以發(fā)送到所述主機裝置、使得所述主機裝置能夠向所述驅(qū)動器發(fā)送附加命令的計算機代碼。
22.—種設備,包括 用于從主機裝置接收一個或多個命令的驅(qū)動器; 用于將信息排隊以發(fā)送到所述主機裝置的緩沖器;以及 用于在信息中插入間隔以發(fā)送到所述主機裝置使得所述主機裝置能夠向所述驅(qū)動器發(fā)送附加命令的控制器。
23.—種系統(tǒng),包括 被使得能夠從主機裝置接收命令的驅(qū)動器,所述主機裝置被使得能夠通過利用使所述驅(qū)動器阻止所述主機發(fā)送附加命令的存儲協(xié)議而與所述驅(qū)動器通信,所述驅(qū)動器包括 控制器;以及 緩沖器;以及 其中 當存在沖突時,所述驅(qū)動器先于所述主機裝置而具有優(yōu)先級, 所述緩沖器被使得能夠?qū)⑿畔⑴抨犚园l(fā)送到所述主機裝置,以及所述控制器被使得能夠在所述信息中插入間隔,使所述主機裝置能夠向所述驅(qū)動器發(fā)送附加命令。
24.根據(jù)權利要求23所述的系統(tǒng),其中,所述控制器進一步被使得能夠在所述驅(qū)動器已經(jīng)開始至少部分地經(jīng)由向所述主機裝置發(fā)送設置信息而向所述主機裝置發(fā)送信息之后插入間隔,以使所述主機裝置能夠向所述驅(qū)動器發(fā)送附加命令。
25.根據(jù)權利要求24所述的系統(tǒng),其中,所述設置信息包括直接存儲器存取(DMA)設置。
26.根據(jù)權利要求23所述的系統(tǒng),其中,所述驅(qū)動器包括下列項中的一個或多個 串行ATA(SATA)驅(qū)動器, 串行連接SCSI (SAS)驅(qū)動器, 光纖通道(FC)驅(qū)動器,以及 通用串行總線(USB)驅(qū)動器。
27.根據(jù)權利要求23所述的系統(tǒng),其中,所述命令包括下列項中的一個或多個 傳輸請求, 傳輸數(shù)據(jù)的命令, 訪問與所述驅(qū)動器相關聯(lián)的存儲器的一部分的命令,以及提取數(shù)據(jù)的命令。
28.根據(jù)權利要求23所述的系統(tǒng),其中,所述信息包括下列項中的一個或多個 數(shù)據(jù)信息, 數(shù)據(jù)結構信息, 直接存儲器存取(DMA)幀信息結構(FIS), 設置裝置位FIS,以及 與所述命令中的至少一個相關聯(lián)的數(shù)據(jù)。
29.根據(jù)權利要求23所述的系統(tǒng),其中,所述間隔包括下列項中的一個或多個打斷, 中斷,以及 延遲。
30.根據(jù)權利要求23所述的系統(tǒng),其中,所述間隔包括下列項中的一個或多個 時間延遲, 附加信息, 所述間隔的長度, 銷售商具體信息,以及 與所述間隔相關聯(lián)的信息。
31.根據(jù)權利要求23所述的系統(tǒng),其中,所述控制器進一步被使得能夠至少部分地基于所述驅(qū)動器的當前命令隊列深度來插入所述間隔。
32.根據(jù)權利要求23所述的系統(tǒng),其中,所述控制器進一步被使得能夠至少部分地基于自接收到前一命令以來的時間來插入所述間隔。
33.根據(jù)權利要求23所述的系統(tǒng),其中,所述間隔包括時間延遲,并且所述控制器被使得能夠?qū)崟r確定所述時間延遲的長度。
34.根據(jù)權利要求23所述的系統(tǒng),其中,所述間隔包括時間延遲,并且所述控制器被使得能夠?qū)崟r確定插入所述時間延遲的時間點。
35.一種方法,包括 在驅(qū)動器處從主機裝置接收一個或多個命令,所述主機裝置被使得能夠通過利用使所述驅(qū)動器阻止所述主機裝置發(fā)送附加命令的存儲協(xié)議而與所述驅(qū)動器通信; 將信息排隊以發(fā)送到所述主機裝置,所述發(fā)送至少部分地經(jīng)由到所述主機裝置的設置信息; 確定是否插入時間延遲;以及 基于所述確定,有條件地插入所述時間延遲,以使所述主機裝置能夠向所述驅(qū)動器發(fā)送附加命令。
36.根據(jù)權利要求35所述的方法,其中,所述設置信息包括直接存儲器存取(DMA)設置。
37.根據(jù)權利要求35所述的方法,還包括檢查與所述驅(qū)動器相關聯(lián)的緩沖器,以確定是否存在有效排隊命令,并且如果存在,則執(zhí)行所述確定。
38.根據(jù)權利要求35所述的方法,其中,所述驅(qū)動器包括下列項中的一個或多個 串行ATA(SATA)驅(qū)動器, 串行連接SCSI (SAS)驅(qū)動器, 光纖通道(FC)驅(qū)動器,以及 通用串行總線(USB)驅(qū)動器。
39.根據(jù)權利要求35所述的方法,其中,所述命令包括下列項中的一個或多個 傳輸請求, 傳輸數(shù)據(jù)的命令, 訪問與所述驅(qū)動器相關聯(lián)的存儲器的一部分的命令,以及 提取數(shù)據(jù)的命令。
40.根據(jù)權利要求35所述的方法,其中,所述信息包括下列項中的一個或多個 數(shù)據(jù)信息, 數(shù)據(jù)結構信息, 直接存儲器存取(DMA)幀信息結構(FIS), 設置裝置位FIS,以及 與所述命令中的至少一個相關聯(lián)的數(shù)據(jù)。
41.根據(jù)權利要求35所述的方法,其中,所述確定至少部分地基于所述驅(qū)動器的當前命令隊列深度。
42.根據(jù)權利要求35所述的方法,其中,所述確定至少部分地基于自接收到前一命令以來的時間。
43.根據(jù)權利要求35所述的方法,還包括實時確定所述時間延遲的長度。
44.根據(jù)權利要求35所述的方法,還包括實時確定插入所述時間延遲的時間點。
45.一種系統(tǒng),包括 用于在驅(qū)動器處從主機裝置接收一個或多個命令的裝置,所述主機裝置被使得能夠利用使所述驅(qū)動器阻止所述主機裝置發(fā)送附加命令的存儲協(xié)議而與所述驅(qū)動器通信; 用于將信息排隊以發(fā)送到所述主機裝置的裝置,所述發(fā)送至少部分地經(jīng)由到所述主機裝置的設置信息; 用于確定是否插入時間延遲的裝置;以及 用于基于所述用于確定的裝置而有條件地插入所述時間延遲以使所述主機裝置能夠向所述驅(qū)動器發(fā)送附加命令的裝置。
46.根據(jù)權利要求45所述的系統(tǒng),其中,所述設置信息包括直接存儲器存取(DMA)設置。
47.根據(jù)權利要求45所述的系統(tǒng),還包括用于檢查與所述驅(qū)動器相關聯(lián)的緩沖器以確定當前是否存在有效排隊命令的裝置;并且其中,所述用于確定的裝置有條件地基于所述用于檢查的裝置的結果。
48.根據(jù)權利要求45所述的系統(tǒng),其中,所述驅(qū)動器包括下列項中的一個或多個 串行ATA(SATA)驅(qū)動器, 串行連接SCSI (SAS)驅(qū)動器, 光纖通道(FC)驅(qū)動器,以及 通用串行總線(USB)驅(qū)動器。
49.根據(jù)權利要求45所述的系統(tǒng),其中,所述命令包括下列項中的一個或多個 傳輸請求, 傳輸數(shù)據(jù)的命令, 訪問與所述驅(qū)動器相關聯(lián)的存儲器的一部分的命令,以及 提取數(shù)據(jù)的命令。
50.根據(jù)權利要求45所述的系統(tǒng),其中,所述信息包括下列項中的一個或多個 數(shù)據(jù)信息, 數(shù)據(jù)結構信息, 直接存儲器存取(DMA)幀信息結構(FIS),設置裝置位FIS,以及 與所述命令中的至少一個相關聯(lián)的數(shù)據(jù)。
51.根據(jù)權利要求45所述的系統(tǒng),其中,所述用于確定的裝置至少部分地基于所述驅(qū)動器的當前命令隊列深度來運行。
52.根據(jù)權利要求45所述的系統(tǒng),其中,所述用于確定的裝置至少部分地基于自接收到前一命令以來的時間來運行。
53.根據(jù)權利要求45所述的系統(tǒng),還包括用于實時確定所述時間延遲的長度的裝置。
54.根據(jù)權利要求45所述的系統(tǒng),還包括用于實時確定插入所述時間延遲的時間點的 裝置。
55.一種具有存儲在其中的一組指令的有形計算機可讀介質(zhì),當由計算機執(zhí)行所述一種指令時,所述有形計算機可讀介質(zhì)使所述計算機執(zhí)行包括下列項的功能 在驅(qū)動器處從主機裝置接收一個或多個命令,所述主機裝置被使得能夠利用使所述驅(qū)動器阻止所述主機裝置發(fā)送附加命令的存儲協(xié)議而與所述驅(qū)動器通信; 將信息排隊以發(fā)送到所述主機裝置,所述發(fā)送至少部分地基于到所述主機裝置的設置/[目息;以及 有條件地插入時間延遲,以使所述主機裝置能夠向所述驅(qū)動器發(fā)送所述附加命令。
56.根據(jù)權利要求55所述的有形計算機可讀介質(zhì),其中,所述有條件地插入至少部分地基于確定是否插入所述時間延遲。
57.根據(jù)權利要求56所述的有形計算機可讀介質(zhì),其中,所述確定至少部分地基于所述驅(qū)動器的當前命令隊列深度。
58.根據(jù)權利要求56所述的有形計算機可讀介質(zhì),其中,所述確定至少部分地基于自接收到上一命令以來的時間。
59.根據(jù)權利要求55所述的有形計算機可讀介質(zhì),其中,所述功能還包括實時確定所述時間延遲的長度。
60.根據(jù)權利要求55所述的有形計算機可讀介質(zhì),其中,所述功能還包括實時確定插入所述時間延遲的時間點。
61.根據(jù)權利要求55所述的有形計算機可讀介質(zhì),其中,所述驅(qū)動器進一步包括下列項中的一個或多個 串行ATA(SATA)驅(qū)動器, 串行連接SCSI (SAS)驅(qū)動器, 光纖通道(FC)驅(qū)動器,以及 通用串行總線(USB)驅(qū)動器。
62.根據(jù)權利要求55所述的有形計算機可讀介質(zhì),其中,所述命令包括下列項中的一個或多個 傳輸請求, 傳輸數(shù)據(jù)的命令, 訪問與所述驅(qū)動器相關聯(lián)的存儲器的一部分的命令,以及 提取數(shù)據(jù)的命令。
63.根據(jù)權利要求55所述的有形計算機可讀介質(zhì),其中,所述信息包括下列項中的一個或多個 數(shù)據(jù)信息, 數(shù)據(jù)結構信息, 直接存儲器存取(DMA)幀信息結構(FIS), 設置裝置位FIS,以及 與所述命令中的至少一個相關聯(lián)的數(shù)據(jù)。
全文摘要
本發(fā)明提供了用于在從驅(qū)動器被發(fā)送到主機裝置的信息中插入間隔的系統(tǒng)、方法和計算機程序產(chǎn)品。在操作中,在驅(qū)動器處從主機裝置接收一個或多個命令。另外,將信息排隊以發(fā)送到主機裝置。此外,在信息中插入間隔以發(fā)送到主機裝置,使得主機裝置能夠向驅(qū)動器發(fā)送附加命令。
文檔編號G06F13/38GK102713873SQ201080040461
公開日2012年10月3日 申請日期2010年7月15日 優(yōu)先權日2009年7月17日
發(fā)明者羅斯·斯藤福特 申請人:Lsi 公司