TW200406680A - Method, system, and program for handling input/output commands - Google Patents

Method, system, and program for handling input/output commands Download PDF

Info

Publication number
TW200406680A
TW200406680A TW092117139A TW92117139A TW200406680A TW 200406680 A TW200406680 A TW 200406680A TW 092117139 A TW092117139 A TW 092117139A TW 92117139 A TW92117139 A TW 92117139A TW 200406680 A TW200406680 A TW 200406680A
Authority
TW
Taiwan
Prior art keywords
data
request
address
initiator
target device
Prior art date
Application number
TW092117139A
Other languages
English (en)
Other versions
TWI298838B (en
Inventor
Sailesh Bissessur
Richard P Mackey
Mark A Schmisseur
David R Smith
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of TW200406680A publication Critical patent/TW200406680A/zh
Application granted granted Critical
Publication of TWI298838B publication Critical patent/TWI298838B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Information Transfer Systems (AREA)
  • Programmable Controllers (AREA)

Description

200406680 玫、發明說明: 【發明所屬之技術領域】 本發明與一種用以處理輸入/輸出指令之系統,方法及程 式有關。 【先前技術】 圖1說明一先前技術儲存裝置架構,其中一外部匯流排主 體2(例如一網路配接器(如一光纖通道控制器、乙太網路控 制器等))可經由一周邊零件連接介面(Peripheral Component Interconnect ; PCI)匯流排10(其可利用該PCI或PCI-X協定) 上的一序列進階技術接附規格(Serial Advanced Technology Attachment ; SATA)控制器8存取一個或多個磁碟4、6中的 資料。在先前技術系統中,在該外部匯流排主體2與SATA 控制器8之間傳送的資料首先流經一記憶體控制器12及記 憶體14,例如一靜態動態隨機存取記憶體(Static Dynamic Random Access Memory ; SDRAM)。例如,在該外部匯流 排主體2想將資料寫及該等磁碟4、6時,該外部匯流排主體 2可傳送該資料至該記憶體14。然後該SATA控制器8可讀取 在該寫入請求中發送至該記憶體14的該資料並將該資料寫 入磁碟4、6。對於一讀取操作,該SATA控制器8 —般將請 求讀取資料傳送至該記憶體14,而該外部匯流排主體2—般 從該記憶體14存取該讀取資料。該等控制器2及8可包括直 接記憶體存取(Direct Memory Access ; DMA)引擎,其經由 該記憶體14執行實際資料運動操作。 此外,在該PCI-X先前技術中,該記憶體14使能在一外部 86057 200406680 匯流排主體2與一 SATA控制器8之間讀取並寫入叢發,因為 莓的SATA控制备必須操作為一匯流排主體以處理叢發資 料傳送。該PCI及PCI-X協定之進一步詳情係說明在該等公 口木中Γ pci當地匯沉排說明書」,2·3版(pci特殊影響群組, 2〇〇2年3月)及「PCI當地匯流排說明書之ρα_χ附錄」,1〇a 版(PCI特殊影響群組,2〇00年7月)。 採用该1己憶體14元件以缓衝在該等控制器2及8之間傳送 的資料能提供額外潛伏期及延遲,此係因為在將該記憶體 14用作一中間緩衝器時所包括的該等額外讀取及寫入操 作。因為該等原因,所以在該技術中需要改良用以在一匯 流排架構中的控制器之間傳送資料的技術。 【發明内容】 本發明是有關一種用以處理輸入/輸出(I/O)請求的方法, 其中一匯流排致能與一啟動器、目標裝置及裝置控制器之 通信,而且其中該裝置控制器存取該目標裝置以執行導入 該目標裝置的I/O指令,該方法包括: 接收一 I/O請求指令以存取該目標裝置;及 配置遠啟動!§·以傳送該匯流排上的至少一資料請求至該 裝置控制器之一預定位址視窗中的一記憶體位址,其中言亥 裝置控制器能從該匯流排上的該啟動器要求至該預定位址 視窗中的該記憶體位址之該資料請求以執行針對該目標裳 置的該資料請求。 【實施方式】 以下說明參考了附圖,該等附圖形成本發明之一部分並 86057 200406680 說明本發明之幾個具體實施例。應瞭解可利用其他具體實 施例而且可改變結構及操作而不背離本發明之範疇。 在一外部匯流排主體與一磁碟控制器之間直接傳送資料 請求。 圖2說明一計算環境,本發明之各方面係在其中實施。一
儲存系統50,例如一磁碟陣列(如一大票磁碟(Just a Bunch of Disks ; JBOD)、容錯式獨立磁碟(RAID)陣列等),包括一 外部匯流排主體52,其為能啟動記憶體請求至一磁碟控制 器54(其管理至該等磁碟60a至60η的存取)之一外部匯流排 主體。外部匯流排主體52可包括一直接記憶體存取(DMA) 引擎56。磁碟控制器54包括一直接記憶體存取(DMA)引擎 58,用以處理該控制器54之I/O操作。該磁碟控制器54可實 施一磁碟存取協定,例如SATA、ΑΤΑ、小型電腦系統介面 (Small Computer System Interface ; SCSI)、整合電子式驅 動介面(Integrated Drive Electronics ; IDE)等。該磁碟控制 器54使能存取一個或多個磁碟驅動器60a至60n。該磁碟控g 制器54包括一緩衝器64,其中從該等磁碟60a至60η讀取的 資料及傳送至該等磁碟60a至60η的寫入資料係緩衝後才傳 送至該啟動器。該磁碟控制器54可包括一元件(例如具體實 施例中的一序列引擎,其中該磁碟控制器54包括一 SATA控 制器),用以將該緩衝器64中的資料寫入該等磁碟60a至 60η。該外部匯流排主體52可包括一網路配接器,其從導入 該等磁碟60a至60η的一網路上之裝置接收I/O請求。 一 I/O處理器70(例如英代爾(Intel®)IQ803 10處理器)管理 86057 200406680 t 、 系統操作並對該I/O控制器DMA引擎56進行程式化以在一 規定位址讀取及寫入資料並執行與I/O管理有關的其他操 作。在某等具體實施例中,該I/O處理器70與一 PCI匯流排 72連接,該匯流排使能在該外部匯流排主體52、磁碟控制 器54及I/O處理器70中間進行通信以執行從該主處理器接 收的一 I/O指令。該外部匯流排主體52、磁碟控制器54及I/O 處理器70可在一個或多個PCI附加卡上實施,該等附加卡在 該匯流排72上通信。例如,該I/O處理器70及磁碟控制器54 可在一相同PCI卡上實施,而該外部匯流排主體52可在一不 同PCI卡(如一網路配接器卡)上實施。該匯流排72可遵照該 等PCI或PCI-X協定或該項技術中熟知的任何其他通信協 定。該PCI-X協定之進一步詳情係說明在由PCISIG公佈的公 告案「PCI-X說明書1.0a版」中。 在該外部匯流排主體52包括一網路配接器卡(例如一光 纖通道配接器)的具體實施例中,該I/O處理器70可經由該配 接器接收該I/O指令,然後配置該外邵匯流排主體5 2及磁碟 控制器54以傳送資料,如以下所說明。 在某等具體實施例中,該磁碟控制器54係配置以便具有 包括大量位址的一位址視窗,該等位址可隨機存取並用以 在該外部匯流排主體52與該磁碟控制器緩衝器64之間直接 傳送資料。該位址視窗有大量位址,受到請求時,該等位 址引起該磁碟控制器5 4要求至該匯流排7 2上的該請求之存 取並直接回應該外部匯流排主體52請求。該外部匯流排主 體D Μ A 5 6可隨機或按順序利用由该位址視窗提供的位址。 86057 -9- 200406680 因此該外部匯流排主體DMA56可藉由在該位址視窗中存取 一記憶體空間而推拉該磁碟之資料。此外,對於任一請求, 該DMA56可採用該位址視窗中的任一位址以傳送該請求至 該磁碟控制器54。該外部匯流排主體52中的該DMA引擎56 可由該I/O處理器70配置,以採用該位址視窗中的位址直接 與該磁碟控制器54形成介面。 圖3說明磁碟控制器54之配置暫存器80,該I/O處理器70 在其中寫入設定以配置該匯流排72用於I/O操作。可由該I/O 處理器70在該配置暫存器80中寫入的設定包括: 位址視窗82 :具有大量位址’一啟動器(例如該外部匯流 排主體52)可採用該等位址來直接與此處的該磁碟控制 器54及緩衝器64通信。 DMA模式84 :指示該DMA引擎是否係用於該等ι/〇操作。 讀取/窝入搡作Γ〇Ρ)86丄指示該等接收請求是否係處理為 至該等磁碟60a至60η的讀取或寫入操作。 叢發從屬模式88 L·指示該啟動器是否將以叢發從動模式 操作,從而使該磁碟控制器能回應來自該外部匯流排主 體52的叢發記憶體請求。 圖4說明在該外部匯流排主體52、磁碟控制器54及I/O處 理器7〇中間實施的互動式操作,用以將資料寫入依據本發 明之具體實施例的該等磁碟60a至60η。區塊100及1〇2可由 該I/O處理器70執行。在區塊100中,該I/O處理器70對該外 部匯流排主體52程式化以從一外部來源獲取資料。例如, 在該I/O處理器70包括一主機匯流排配接器的具體實施例 86057 -10 - 200406680 中,該外部來源可包括導入該等磁碟60a至60η的一外部主 機提交之I/O寫入請求。該I/O處理器70進一步對該外部匯流 排主體DMA引擎56程式化(在區塊1〇2中)以便以叢發大小 封包形式傳送該獲取資料至該匯流排7 2上的該磁碟控制器 54之該位址視窗中的位址。該I/O處理器70對該磁碟控制器 54配置暫存器80程式化(在區塊104中),以使該磁碟控制器 54中的DMA模式84失去作用,並藉由設定欄位88而使叢發 模式能發揮作用。 為了回應配置(在區塊100及102中),該外部匯流排主體52 可接收(在區塊120中)從該外部來源獲取的資料。區塊12〇 至124說明由該I/O處理器70配置時,由該外部匯流排主體 52實施的操作或邏輯。然後該外部匯流排主體52劃分(在區 塊122中)該資料以寫入叢發大小區塊以便傳送至該匯流排 72上的該磁碟控制器54之位址視窗中的位址。接著該DMA 引擎56傳送(在區塊124中)包括具有獲取資料之該等較小區 塊的鳥入請求至該位址視窗中的一位址。在某等具體實施 例(如PCI-X具體貫施例)中,該DMA引擎56以叢發模式(利 用記憶體請求)傳送資料以便能傳送較大數量的資料。 區塊140至144說明由該磁碟控制器54執行的操作,用以 處理至該等磁碟6〇a至6〇n之該位址視窗的寫入操作。在區 塊140中,該磁碟控制器54要求在該匯流排72上傳送至該位 址視窗中的-位址之該等寫入請求上的存取。因$該dma 模式84已失去作用而且寫入係指示在該操作攔位%中,所 以該磁碟控制器54(在區塊142中)依據緩衝方案(可以為先 86057 -11 - 200406680 進先出(First-In-First-Out ;FIFO))添加該接收資料至該緩衝 器64。然後該磁碟控制器54傳送(在區塊144中)緩衝資料至 該目標磁碟60a至60η。如上所述,該磁碟控制器54可包括 一序列引擎,用以傳送該緩衝器64中的寫入資料至該等磁 碟60a至60η 。 圖5說明由該外部匯流排主體52、磁碟控制器54及I/O處 理器70執行的操作,用以將資料從該等磁碟60a至60η傳送 至依據本發明之具體實施例的該外部匯流排主體52。區塊 200及202說明由該I/O處理器70執行的操作,用以配置用於 一讀取操作的儲存系統50,該讀取操作可由一外部主機系 統啟動並在一網路上傳送至該外部匯流排主體52,包括一 主機匯流排配接器。在區塊200中,該I/O處理器70配置該 磁碟控制器54之配置暫存器80,以使欄位84中的DMA模式 失去作用,並使欄位88中的叢發模式能發揮作用。該I/O處 理器70進一步配置(在區塊202中)該外部匯流排主體 52DMA引擎56以便請求該磁碟控制器54之位址視窗中的一 規定數量之資料。在PCI-X具體實施例中,該I/O處理器70 可配置該外部匯流排主體52以發佈叢發讀取請求,其中每 個請求包括該位址視窗中的一位址及要讀取的資料之一位 元組數(例如512位元組)。該位址視窗包括一非可預先獲取 區域,因為資料一旦已從該磁碟控制器54之緩衝器64讀取 就會損壞(採用來自磁碟60a至60η的新資料替換)。 區塊210、2 12及214說明由該外部匯流主體DMA引擎56 執行的操作,用以提交該等讀取請求。在區塊210及2 12中, 86057 -12- 200406680 該DMA引擎56構造具有叢發區塊大小的讀取請求,該等大 小由該I/O處理器70設定至該磁碟控制器54之該位址視窗 中的位址。然後該DMA引擎56傳送(在區塊214中)該等讀取 請求及該傳送長度之該位元組數至該位址視窗。 區塊220、222、224、226及228說明由該磁碟控制器54 執行的操作,用以處理該叢發讀取請求。在區塊220中,該 磁碟控制器54從該目標磁碟60a至60η重新獲得資料並添加 (在222中)該資料至該緩衝器64之底部,然後係FIFO具體實 施例中最近添加的資料。獨立緩衝來自磁碟60a至60η的資 料時,該磁碟控制器54可偵測(在區塊224中)至該匯流排72 上的該位址視窗82中的一位址之一請求並要求(在區塊226 中)該請求。為了回應該讀取請求,該磁碟控制器54可傳送 (在區塊228中)該緩衝器64頂部的資料(即該緩衝器中最舊 的資料)至該匯流排以返回至該異動啟動器(即該外部匯流 主體52)。在某等具體實施例中,不管該位址視窗中所用的 實際位址,資料都係首先從該緩衝器傳送。此外,在非可 預先獲取具體實施例中,一旦資料係從該緩衝器64讀取, 則當來自磁碟60a至60η的下一個資料存取時該資料會覆蓋 掉。 因此所述具體實施例提供一種技術以使一啟動器(例如 該外部匯流主體52)能傳送叢發資料請求至該磁碟控制器 54中的一預定義位址視窗,從而引起該磁碟控制器54作為 一從屬控制器並傳送寫入資料至一目標磁碟60a至60η或從 該緩衝器64返回讀取資料。根據所述具體實施例,一外部 86057 -13- 200406680 匯流排主體可直接與一磁碟控制器(例如一 ΑΤΑ或SATA控 制器)通信而無需一中間記憶體裝置(例如圖1所示的裝置)。 此外,所述具體實施例使一外部匯流排主體能直接叢發資 料至一磁碟控制器(例如一 ΑΤΑ控制器)或從該磁碟控制器 叢發資料,其中該磁碟控制器以叢發從屬模式操作。如此, 所述具體實施例實質上減小了處理I/O指令所需要的潛伏 期及處理器週期。而且,繼續存取的資料(例如從一磁碟驅 動器流入的資料)能映射至隨機存取空間(記憶體空間)。 配置資料傳送操作之位址視窗 在該系統50實施該PCI-X協定的具體實施例中,讀取請求 可傳送為一分離讀取請求。在一分離讀取請求中,該外部 匯流排主體52具體實施例作為一匯流排主體傳送一讀取請 求至該磁碟控制器54之該位址窗中的一記憶體位址,該控 制器在接收該請求時作為一從屬匯流排。若該請求資料可 用,則該磁碟控制器54具體實施例操作為一匯流排主體並 將該請求資料返回至該匯流排72上的該外部匯流排主體 52。該分離讀取請求保存匯流排頻寬,因為最初請求該資 料的該外部匯流排主體52在該資料可用之前不必頻繁從該 磁碟控制器54請求該讀取資料,此係與該PCI協定中一延遲 讀取異動有關的情況。 至該磁碟控制器54的一 I/O請求之大小係限制為配置給 該磁碟控制器54的該記憶體空間之大小。例如,若該磁碟 控制器54之該記憶體空間或位址視窗大小為一百萬位元組 (Mbyte),則至該磁碟控制器54具體實施例的一 I/O請求之最 86057 -14- 200406680 大位元組大小最多為一百萬位元組。在所述具體實施例中, 該位址視窗可採用由該磁碟控制器54執行的任一 I/O請求 之大小獨立配置。 圖6說明包括在該外部匯流排主體52中一配置暫存器 250,其包括一最大記憶體讀取位元組數欄位252(指示任一 未決分離讀取請求之最大位元組大小)及一最大突出分離 異動欄位254(指示在該外部匯流排主體52中的未決分離讀 取請求之最大數量)。因此,當所有請求都為未決(尚未完成) 時該外部匯流排主體52所能定址的位址空間之最大數量在 此係指「最大可指定位址空間」,包括攔位252及254中的值 之乘積。 在某等具體實施例中,能導入該磁碟控制器54之該位址 視窗的未決分離讀取請求之該最大數量為該位址視窗之大 小除以該最大分離讀取請求大小。將該未決請求位元組數 限制為該位址視窗之大小能確保多未決分離讀取請求將不 會導入該位址視窗中的相同記憶體位址。若多未決分離讀 取請求係導入相同記憶體位址,則該外部匯流排主體52具 體實施例不能匹配返回至特定請求的資料。 定義用於該磁碟控制器54的該位址視窗在當前具體實施 例中能擴展至數個十億位元組。但是,該系統50設計者想 根據該磁碟控制器54及系統50(該磁碟控制器54將在其中 操作)之特徵將該位址視窗設定為某較小數量。在某等具體 實施例中,該最大未決分離異動欄位254係根據該位址視窗 之大小配置,以便該最大未決分離異動欄位254係設定為該 86057 -15 - 200406680 位址視窗之大小(其可根據該外部匯流排主體52之該分離 讀取容量而獨立配置)除以該最大記憶體讀取位元組數欄 位252。如此,來自該外部匯流排主體52的該等最大未決分 離讀取請求將在任一既定時間也不會採用除該磁碟控制器 54所提供的位址以外之其他位址。此確保該位址視窗中沒 有一個記憶體位址會同時用於多未決分離讀取請求。換言 之,至再用位址的先前請求完成之前該外部匯流排主體52 將不會再用先前用過的位址。否則,若該磁碟控制器52採 用該位址視窗中的相同記憶體位址接收多分離讀取請求, 則該磁碟控制器54具體實施例就不能決定該外部匯流排主 體52啟動該等分離讀取請求之順序。 圖7說明在該I/O處理器70中實施的邏輯,用以啟動(例如 系統啟動或重新啟動)時分配該等外部匯流排主體52PCI暫 存器。啟動該配置常式(在區塊300中)後,該I/O處理器70 配置(在區塊302中)該磁碟控制器54之該位址視窗至一預定 最佳大小,用於導入該控制器54的操作。該位址視窗可配 置在該磁碟控制器54之該PCI-X配置暫存器中。在該外部匯 流排主體52中的該最大記憶體讀取位元組數252暫存器係 設定(在區塊304中)為一預定值,其為一提交分離讀取請求 之最大大小。該等最大未決分離異動254係設定(在區塊306 中)為該位址視窗位元組大小之整數結果除以該最大記憶 體讀取位元組數252。若該除法之結果不係一整數,則該最 大未決分離異動264具體實施例包括該除法結果之整數部 分。然後該I/O處理器70能執行額外(在區塊308中)配置操 86057 -16- 200406680 作。配置該位址視窗及外部匯流排主體暫存器250(圖6)後, 至該磁碟控制器54的該位址視窗係設定以使資料可直接在 一外部匯流排主體52之間傳送而無需經過該匯流排72上的 一外部記憶體裝置。 圖8說明在該I/O處理器70中實施的邏輯,用以配置該外 部匯流排主體52及該磁碟控制器54從而處理提交至該外部 匯流排主體52的一讀取請求。接收(在區塊350中)具有一傳 送大小的一 I/O請求後,該I/O處理器70設定(在區塊352中) 一基本位址為該位址視窗中的第一位址並設定(在區塊354 中)剩餘位址視窗為該位址視窗位元組大小。一剩餘傳送大 小變數係設定(在區塊356中)為該接收I/O請求之傳送大小。 然後該I/O處理器70在一描述符表中添加(在區塊358中)一 描述符入口,該描述符表定義該外部匯流排DMA56執行的 操作。圖9說明具有複數個入口 402a至402η的一 DMA描述符 表400,其中每個入口包括一入口數量404a至404η、該請求 所導入的該記憶體位址之一位址406a至406η及一位元組數 408a至408η(指示包括在至該記憶體位址406a至406η的該 請求中之位元組數量)。入口係添加至在一先進先出(FIFO) 基礎上處理的一清單。若(在區塊360中)該剩餘位址視窗大 小為零’指不該視窗中的所有位址都係用於該等先前描述 符入口中,則該剩餘位址視窗係設定(在區塊362中)為該位 址視窗位元組大小。該添加入口 402η之位址406η係設定(在 區塊364中)為該基礎位址。若(在區塊360中)該剩餘位址視 窗大小不為零,則該I/O處理器70設定(在區塊366中)該添加 86057 -17- 200406680 入口 402η中的該位址406η為該位址加緊接前述入口 402“ 中的該位元組數。 根據區塊364或366,該I/O處理器70設定(在區塊368中) 該添加入口 402η之該位元組數408η為不超過該剩餘位址視 窗或該剩餘傳送大小的許多位元組。然後該添加入口 402η 之該位元組數408η係從該剩餘位址視窗及剩餘傳送大小減 去(在區塊370中)。若(在區塊372中)該剩餘傳送大小為零, 即在該接收I/O請求中沒有進一步的位元元組需要讀取,則 該I/O處理器70發送(在區塊374中)一指令至該磁碟控制器 54以從磁碟60a至60η存取該I/O異動中所請求的資料並將 該資料儲存在緩衝器64中。該I/O處理器70還向該外部匯流 排主體DMA56發信號(在區塊376中),以發佈添加至該DMA 描述符表400的該等入口之讀取請求從而存取將由該磁碟 控制器54收集並儲存在該緩衝器64(圖2)中的資料。若(在區 塊372中)該剩餘傳送大小大於零,即在該接收I/O請求中有 進一步的位元組必須處理,則控制進行至區塊358以添加另 一入口至該描述符表。 根據圖8之該邏輯,在該描述符表400中所指示的入口可 以為不同位元組數大小。在某等具體實施例中,該I/O處理 器70能配置該外部匯流排主體52之讀取請求大小為不受該 等描述符入口 402a、402i至402η中的該位元組數大小408a、 408i至408η約束之一值(例如5 12位元組)。在某等具體實施 例中,該入口之該位元組數408a、408i至408η不可超過該 位址視窗之大小。在此類具體實施例中,該磁碟控制器54 86057 -18- 200406680 之該位址視窗必須設定為能適應未決讀取請求254之最大 數量(圖6)之一大小,每個請求至多具有等同於分離讀取請 求之最大讀取位元組數252的一位元組數大小。例如,若該 最大未決請求254為四千位元組(kb)而該最大讀取位元組數 252為一千位元組(kb),則該位址視窗大小必須至少為四千 位元組。但是,每個描述符入口 402a、402i至402η能具有 四千位元組的一位元組數,即該位址視窗大小。在此情況 下,當處理定義具有大於該最大讀取位元組數252的一位元 組數408a至408η之一請求的一描述符入口 402a至402η時, 該外部匯流排主體52將劃分該描述符請求(在範例中為四 千位元組)為不超過該最大讀取位元組數252(即一千位元 組)之請求。如此,在該等描符入口 402a至402η中指示的該 位元組408a至408η(圖9)不受該最大讀取位元組數252約束, 並改為由該位址視窗之大小限制。因此在某等具體實施例 中,一描述符入口 402a至402η之該位元組數408a至408η不 能超過該位址視窗之限制。 圖10說明在該DMA引擎56中實施的邏輯,用以處理由該 I/O處理器70依據圖8之該邏輯產生的該DMA描述符表400。 為了回應(在區塊450中)來自該I/O處理器70的信號以開始 操作,該DMA5 6設定(在區塊452中)未決分離請求變數之數 量為零。然後該DMA56從區塊454至470執行一迴路,用於 該DMA描述符表400中的每個入口 i,其中i等於1至η。若(在 區塊45 6中)入口 i之該位元組數408i超過該最大讀取位元組 數252(圖6),則該DMA引擎5 6劃分(在區塊458中)入口 i中的 86057 -19- 200406680 請求為多分離讀取子請求,每個子請求不超過該最大讀取 位元組數252以從由入口 i之請求存取的該位址視窗之區段 讀取序列位址。每個子請求係以相同方法處理為序列描述 符入口,然後處理該描述符表400中的下一個入口。 根據區塊456或458無分枝,若(在區塊460中)未決分離請 求之數量不超過在該配置暫存器250中指示的該最大未決 分離異動254(即可發佈更多的分離讀取請求),則該DMA56 傳送(在區塊462中)該讀取請求或入口 402i之一子請求至提 供用於入口 402i的該記憶體位址406i。該未決分離請求變數 得到增加(在區塊464中)而且控制進行(在區塊470中)返回 至區塊454以處理該DMA描述符表400中的下一個入口。若 (在區塊460中)分離請求之最大可能數量未決,則該DMA56 等待(在區塊466中)一分離請求完成。該分離請求完成後, 該DMA56減少(在區塊468中)一未決分離請求變數中並進 行至區塊458以傳送該DMA描述符表400中的第i個入口中 的下一個讀取請求。 根據所述具體實施例,該磁碟控制器54之該位址視窗能 設定為不受在該外部匯流排主體52中接收的該I/O異動之 大小約束的任一大小。根據該配置位址視窗,該I/O處理器 具體實施例決定未決分離讀取請求之該最大數量,該外部 匯流排主體DMA5 6可提交該等請求以便處理大於該位址視 窗的一接收I/O異動。藉由設定該最大未決分離異動254不 會引起該等未決分離請求之位元組數量超過該位址視窗中 的位元組數量,該具體實施例要求再用該位址視窗中的位 86057 -20- 200406680 址,該I/O處理器70確保該磁碟控制器54能決定啟動請求的 順序並返回請求資料至該正確請求。如此,該外部匯流排 主體52能確信與從該磁碟控制器54返回的資料有關之讀取 請求。 返回資料至讀取請求 圖11說明圖2所示的該系統50之另一項具體實施例,其中 圖 11 中系統 550之元件 552、554、556、558、560a至 560η、 5 64、570及572可包括圖2所示的相同元件52、54、56、58、 60a至60η、64、70及72。另外,圖11中的該系統500包括一 橋接器574,其位於該外部匯流排主體552與該匯流排 572(同該磁碟控制器554連接)之間。另一匯流排576連接該 外部匯流排主體552與該橋接器574。在PCI及PCI-X具體實 施例中,一橋接器(例如橋接器574)可就原始啟動器(例如外 部匯流排552)所形成的順序而採用順序顛倒方式傳送讀取 請求(例如分離讀取請求)。此可能導致該橋接器574在傳送 一較早發送的請求前先傳送一較晚發送的讀取請求。 在上述具體實施例中,該磁碟控制器554返回從該磁碟 560a至560η讀取的來自該緩衝器564之資料以回應該位址 視窗中的一位址。若該外部匯流排主體552從該位址視窗中 的序列位址請求序列資料,則該外部匯流排552希望該資料 以該等請求產生的順序返回至該等序列請求。但是,若該 磁碟控制器554從該緩衝器564返回資料至一位址請求(其 隨至一尚未處理的先前位址之一請求後),則該磁碟控制器 554可以順序顛倒方式返回該資料。例如,PCI及PCI-X橋接 86057 -21 - 680 器可採用順序顛倒方式傳送請求。 · 世 在此一 h況下,若該磁 碟控制器554回應採用該等請灰 士 &I佈 < 顛倒順序接收的一 謂取請求,則該磁碟控制器554可採用顛倒順序返回資料, 以便當該資料應返回至—尚未接收的先前發佈之請求時資 料可返回至一後續請求。 ” 在某等所述具體實施例中,該磁碟控制器W依據該等請 求由該外部匯流排主體DMA556啟動所採用的順序返回資 料至來自該外部匯流排主體552的請求,而不管該等請求是 否係採用其顛倒順序接收。如此,資料係以該等請求發佈 所採用的順序繼續返回至該等請求,以便每個傳送的請求 都將存取從磁碟560a至560n請求的資料之一序列部分。為 了採用該等請求由該外部匿流排主體552啟動之順序返回 序列貧料至孩等請求’該磁碟控制器…保持一請求仔列 578至緩衝器讀取請求(例如採用顛倒順序從該外部匯流排 主體552接收的分離讀取請求)。該磁碟控制器“々進一步保 持一下一個位址變數58〇,指示應接收的繼續隨先前處理請 求之後的下一個請求之位址。在所述具體實施例中,該外 部匯流排王體552繼續發佈請求至該位址視窗中的位址,因 此〆後續%求應導入緊隨該目#位址加該先前請求之位元 組數之位址。在某等具體實施例中,該請求佇列578可為足 夠大小以仔列可因為該外部匯流排主體554而立刻變為未 決的殯取凊求 < 最大數量,其可包括設定用於該外部匯流 排主體552的最大未決分離異動254(圖6)。 該印求仔列578可包括具有從該外部匯流排主體552傳送 86057 -22- 200406680 的每個讀取請求之資訊。圖12說明採用該請求佇列578中的 每個請求入口 590保持的資訊,其中每個入口 59〇可包括請 求貧訊592,用以識別該請求、在該位址視窗内用於該目標 裝置(例如磁碟560a至560n)的請求594之目標位址及該請求 之一位元組數596。 在某等具體實施例中,每個讀取請求可指定相同請求位 元、、且大小。在另外的具體實施例中,每個讀取請求當存取 該位址視窗中的鄰近位址時可指定一不同位元組大小。在 某等具體實施例中,當處理由該1/〇處理器57〇依據圖8之邏 輯產生的一描述符表時,該等讀取請求可包括從該外部匯 流排王體DMA 556發送的讀取請求(例如分離讀取請求)。 圖13說明在磁碟控制器554中實施的邏輯,用以返回資料 至分離讀取請求。控制始於該磁碟控制器接收(在區塊6〇〇 中)分離?買取請求將得到接收的指示。此指示可包括該I/O 處理器570發送該指令至緩衝器並存取用於一 I/O請求之资 料,例如該I/O處理器570在圖8之區塊374中發送的信號: 該磁碟控制器554設定(在區塊6〇2中)一下一個位心數 5 80 ’扣不用於所期望的下一個序列分離讀取請求之位址, 該請求係至該磁碟㈣器554位址視窗中的該基礎位址或 第一位址。從該外部匯流排主體552接收(在區塊6〇4中)至該 视έ中的位址之一分離讀取請求後,該磁碟控制器 554決定(在區塊6〇6中)該接收請求是否係至與該下—個= 址變數580中指示的相同之一位址。若不同,則該磁磲控制 器554在該請求侍列578中传列(在區塊⑽中)該接收分:讀 86057 -23 - 200406680 取請求,其中該排列請求590可包括該請求資訊592、該目 標位址594及該請求之該位元組數596。若(在區塊606中)該 接收請求之該目標位址與該下一個位址變數58〇中指示的 位址相同,則該磁碟控制器554返回(在區塊610中)一資料封 包(若在該緩衝器564中當前可用)至該接收請求(其具有來 自該緩衝器564的等同於該接收分離讀取請求中指示的位 元組數之多個位元組)。在某等具體實施例中,該緩衝器5 64 仔列根據FIFO從该等磁碟560a至560η存取之資料,因此該 返回資料係從該緩衝器564之「先進」底部存取。 返回該貧料後’若(在區塊612中)該下一個位址變數580 加該返回請求之位元組數等於該位址視窗中的最後位址 (即在孩最後請求後沒有其他序列位址保持在該位址視窗 中),則該下一個位址變數580係設定(在區塊614中)為該基 礎位址,因為該等位址反過來成為該基礎位址。否則,若 在最後請求之後在該位址視窗中還有位址,則該磁碟控制 益554向(在區塊616中)該 问叫现甓数增加資料… 回的孩請求之位元組數,因為該下一個請求將導入隨該 前處理請求之最後位址之後的該下一個序列位址。 在區塊614或616中將該下_個位址變數58()加入該下 個佇列讀取請求之位址後,該磁碟控制器554決定(在區 618中)該請求传列578中的-件列讀取請求是否具有與 下一個位址變數580相同的一目舞户^ 曰址594(圖12),即先前, 收並放置在該請求佇列578中的今加社 T的藏下一個期望序列分離 取請求之位址。若不相@,則控制返回至區塊604以等待 86057 -24- 200406680 一個分離讀取請求。否則,該磁碟控制器554解佇列(在區 塊620中)具有相同位址的請求。當解佇列具有相同位址的 請求(在區塊620中)時’該磁碟控制器5 54從該緩衝器5 64存 取(在區塊622中)等同於該解排列請求之位元組數的多個位 元組並採用该技術中熟知的方法返回(在區塊6 2 4中)該等存 取位元組至該解排列請求。控制從區塊624進行至區塊612 以设足该下一個位址變數5 8 0為要處理的該下一個序列讀 取請求之位址。 圖14提供一表格,說明四序列讀取請求1、2、3及4(每個 長度為一千位元組並由該外部匯流排主體552發佈)係如何 依據圖13之遂輯處理。在圖14之範例中,該磁碟控制器5 5 4 採用與其由該外部匯流排主體552啟動相反的順序接收至 該位址視窗中的序列位址之請求1、2、3及4。如圖所示, 資料直至返回至先前序列位址之請求才返回至一請求。直 至資料返回至該先前請求,才仵列該請求。 根據所述具體實施例’若該磁碟控制器5 5 4因由一橋接器 574處理一請求或其他原因而採用顛倒順序接收分離讀取 請求,則該磁碟控制器554將佇列採用顛倒順序接收的請求 並僅返回資料至為下一個期望讀取請求之一請求。如此, 該磁碟控制器554採用該等分離讀取請求由該外部匯流排 主體5 5 2啟動之順序繼績返回資料至該等分離讀取請求。此 確保該外部匯流排主體552接收返回至適當讀取請求的資 料,因此資料係採用其想要得到服務的順序返回至序列請 TF 。 86057 -25- 200406680 額外具體實施例 在此說明的操作及邏輯可採用產生軟體、韌體、硬體或 其組合的標準程式及/或工程技術實施為一方法、裝置或製 造物品。在此使用的辭彙「製造物品」指在硬體邏輯中實 施的機械唯讀指令或邏輯(例如一積體電路晶片、可程式化 閘陣列(Programmable Gate Array ; PGA)、特定應用積體電 路(Application Specific Integrated Circuit ; ASIC)等)或一機 械唯讀媒體(例如磁性儲存媒體(如硬碟驅動器、軟碟、磁帶 等)、光記憶體(CD-ROM、光碟等)、揮發性及非揮發性記 憶體裝置(如 EEPROM、ROM、PROM、RAM、DRAM、SRAM、 韌體、可程式化邏輯等)。電腦唯讀媒體中的編碼由一處理 器存取並執行。實施較佳具體實施例所採用的編碼可進一 步經由一傳送媒體或由一網路上的一文件伺服器存取。在 此類情況下,實施該編碼所採用的製造物品可包括一傳送 媒體,例如一網路傳送線路、無線傳送媒體、經由空間、 無線電波傳播的信號、紅外線信號等。當然,熟悉技術人 士應明白可對此配置進行許多修改而不背離本發明之範 疇,而且該製造物品可包括該技術中熟知的任一資訊承載 媒體。 在所述具體實施例中,該等處理裝置52、54及70在一匯 流排佈局(例如PCI-X或PCI匯流排佈局)上通信。在另外的 具體實施例中,該等處理裝置52、54及70可採用該技術中 熟知的任一通信架構通信。 在PCI匯流排具體實施例中,額外PCI-X或PCI橋接器可定 86057 -26- 200406680 位於該等處理裝置52、54及70之任一個與該匯流排72之間 以使能在該匯流排72上通信。例如,在Pci-Χ具體實施例中, 該外部匯流排主體52可傳送叢發讀取請求至一橋接器,然 後該橋接器傳送該請求至匯流排72以獲取請求資料之確切 數量。 在某等具體實施例中,該等磁碟驅動器6〇a至6〇n包括磁 性硬碟驅動器。在另外的具體實施例中,與該磁碟控制器 54連接的儲存裝置可包括該技術中熟知的任一儲存裝置, 例如光碟、磁帶等。 在所述具體實施例中,該啟動器採用該位址視窗以提交 請求至一磁碟控制器。在另外的具體實施例中,該目標磁 碟控制器除與儲存有關的控制器以外還可包括該技術中熟 知的任一種類之輸入/輸出控制器裝置。此外,該啟動器或 外部匯流排主體52可以為啟動請求至該磁碟控制器的任一 裝置,例如一主機匯流排配接器或其他外部裝置。 圖4及5之邏輯說明以一特定順序出現的特定操作。在另 外的具體實施例中,某等邏輯操作可以一不同順序執行、 修=或移除。而且,可添加步驟至上述邏輯並仍遵所述具 體實施例。此外’在此說明的操作可繼續出現或某等操作 可j列處理。此外,操作可藉由—單—處理單元或分配處 理單元執行。在進一步的具體實施例中,該位址視窗可設 定為一較小大小以使位址視窗可用於多目標裝置(例如磁 碟控制器),以便每個目標裝置可以具有該位址視窗之一獨 特範圍”匕使該外部g流排主體可藉由發#資料請求至配 86057 -21 ~ 200406680 置用於該特定目標裝置的該位址視窗中之記憶體位址而直 接存取多目標裝置之任一個。 在所述具體實施例中,該等接收讀取請求包括分離讀取 請求。另外’依據上述邏輯處理的該等請求可包括任一種 資料返回匯流排請求。 在上述具體實施例中,該磁碟控制器保持由該外部匯流 排^體發佈的該下-個序列請求之位址,該位址應接收以 決定请求是否係採用颠倒順序接收。在另外的具體眚施例 中,該磁碟控制器可執行另外的操作以決定進行由該接收 讀取請求所請求的資料之序列資料之至少之一讀取請求是 否未經處理’即當前接收請求是否係用於隨由尚未處理的 先前請求所請求的資料之後的資料。可採用另外的計算、 標記及/或其他指示器以決定傳送請求是否係以顛倒:序 接收。 本發明之具體實施例之上述說明已呈現用作說明之目 的。其意圖並非作為詳盡形式或限制本發明為所揭示的精 確形式。可根據上述原理進行許多修改及改變。其意圖^ 本發明 < 範疇不係由此詳細說明而係由所附申請專利範圍 限制。上述規範、範例及資料提供對本發明之組成物的製 以及使用的完整說明。因為本發明之許多具體實施例可在 不同離本發明之精神及範疇的條件下進行,所以本發明包 含在此後所附的申請專利範圍中。 【圖式簡單說明】 參考附圖’其中所有相同參考號都代表相應部件: 86057 -28- 200406680 圖1就明用以存取先前技術中熟知的儲存裝置中的資料 之一匯流排架構; 圖2說明用以存取依據本發明之且晋#余 私乃之具貝施例的儲存裝置 中的資料之一匯流排架構; 器之配 圖3說明依據本發明之具體實施例的一磁碟控制 置暫存器; 圖4及5况明用以處理依據本發 狡力心丹眩貫施例的I/O請 求之邏輯; 圖6說明依據本發明之具體實施例配置的暫存器; 圖7說明用以配置依據本發明之具體實施例的—裝置栌 制器之邏輯; 1 匯 圖8說明用以配置依據本發明之具體實施例的—外部 流排主體之邏輯; 圖9說明利用本發明之且㈣余 知月乏具目豆貝她例的一直接記憶體 (DMA)描述符表; 圖10說明用以處理依據本發 叙<兴月旦男施例的一DMA描 述符表之邏輯; 圖11說明用以存取依據本發明之具體實施例的儲存裝置 中的資料之另一匯流排架構; 圖12說明依據本發明之 乃又具月豆貝犯例進行讀取請求處理期 間Ϊ宁列的一請求之欄位; 圖1 3說明用以依據本又 贿舍、 今又力C具睹貝她例返回資料奢 請求之邏輯;及 、 〜 圖14說明如何仿於士 豕赉明之具體實施例處理讀取請求之 86057 -29- 200406680 一範例 ° 【圖式代表符號說明】 2 外部匯流排主體 4 磁碟 6 磁碟 8 序列進階技術接附規格控制器 10 周邊零件連接介面匯流排 12 記憶體控制器 14 記憶體 50 儲存系統 52 外部匯流排主體 54 磁碟控制器 56 直接記憶體存取引擎 58 直接記憶體存取引擎 60a至 60η 磁碟 64 緩衝器 70 I/O處理器 72 周邊零件連接介面匯流排 80 配置暫存器 82 位址視窗 84 直接記憶體存取模式 86 讀取/寫入操作 88 叢發從屬模式 250 配置暫存器 86057 -30- 200406680 252 最大記憶體讀取位元組數欄位 254 最大未決分離異動欄位 400 直接記憶體存取描述符表 402a至402η 入口 404a至 404η 入口編號 406a至 406η 位址 408a至408η 位元組數 500 系統 552 外部匯流排主體 554 磁碟控制器 556 直接記憶體存取 558 直接記憶體存取 560a至 560η 磁碟 564 缓衝器 570 I/O處理器 572 匯流排 574 橋接器 576 匯流排 578 請求仵列 580 下一個位址變數 590 請求入口 592 請求資訊 594 目標位址 596 請求位元組數 -31 - 86057

Claims (1)

  1. 200406680 拾、申請專利範園: 1 · 一種用以處理輸入/輸出(I/O)請求的方法,其中一匯流耕 致能與一啟動器、目標裝置及裝置控制器之通信,而且其 中該裝置控制器存取該目標裝置以執行導入該目標裳置 的I/O指令’該方法包括· 接收一 I/O請求指令以存取該目標裝置;及 配置該啟動器以傳送該匯流排上的至少一資料請、欠i 該裝置控制器之一預定位址視窗中的一記憶體位址,其中 該裝置控制器能從該匯流排上的該啟動器要求至謗預定 位址視窗中的該記憶體位址之該資料請求以執行針爾^亥 目標裝置的該資料請求。 2·如申請專利範圍第1項之方法,其中該啟動器包括—直接 吕己fe體存取(DMA)引擎’而且其中配置該啟動器以傳送咳 至少一資料請求包括配置該DMA引擎以傳送該至少_資 料請求。 3. 如申請專利範圍第2項之方法,其中該裝置控制器包括一 DMA引擎,該方法進一步包括: 採用該處理器配置該裝置控制器以便在處理該啟動器 在孩匯流排上傳送的該等資料請求時使該DM A引擎失去 作用。 4. 如申請專利範圍第丨項之方法,其中該接收1/〇指令包括一 爲入铋作,其中该啟動器傳送具有該等資料請求的寫入資 料至该位址視窗中的一隨機記憶體位址。 5. 如申請專利範圍第丄項之方法,其;該接收ι/〇指令包括_ 讀取操作,用以從該目標裳置讀取資料,其中該啟動器傳 86057 200406680 送讀取請求至該位址視窗;該方法進一步包括: 採用該處理器配置該裝置控制器以從該目標裝置存取 該資料。 6·如申請專利範圍第1項之方法,其中該等資料請求係傳送 至該位址視窗中的隨機記憶體位址,而且其中該等資料請 求繼續存取該目標裝置中的資料。 7 ·如申請專利範圍第1項之方法,其中該等資料請求係以叢 發模式傳送,而且其中在處理以叢發模式傳送的該等資料 請求時該磁碟控制器操作為一從屬控制器。 8· —種用以處理輸入/輸出(1/0)指令的方法,其中一匯流排 致能與一啟動器及目標裝置之通信,該方法包括: 採用一裝置控制器偵測導入用以定址該目標裝置的_ 位址視窗中之一記憶體位址的一資料請求,其中該裝置控 制器控制至該目標裝置的存取; 採用該裝置控制器從該啟動器要求在該匯流排上傳送 的該資料請求;及 採用該裝置控制器執行該資料請求。 9 ·如申凊專利範圍第8項之方法,其中該裝置控制器包括一 直接兄憶體存取(DMA)引擎,其中該啟動器傳送該資料請 求至該裝置控制器,而且其中在該裝置控制器處理該資料 請求時該裝置控制器DMA引擎失去作用。 10·如申請專利範圍第8項之方法,其中該〗/〇指令包括一寫入 操作’其中該啟動器傳送具有至少一資料請求的寫入資料 至该位址視窗,該方法進一步包括·· 採用該裝置控制器處理至該位址視窗的資料請求為寫 86057 -2- 200406680 入操作; 採用該裝置控制器儲存採用來自一緩衝器中的該啟動 器之該資料請求接收的窝入資料;及 傳送來自该緩衝器的該寫入資料至該目標儲存裝置。 11 ·如申請專利範圍第8項之方法,其中該1/0指令包括一讀取 操作,用以從該目標裝置讀取資料,該方法進一步包括: 採用该裝置技制器處理至該位址視窗的資料請求為讀 取操作;及 採用該裝置控制器返回來自該目標裝置的請求資料至 該啟動器。 12.如申請專利範圍第丨丨項之方法,進一步包括: 儲存從一緩衝器中的該目標裝置存取的資料,其中該缓 衝資料係返回以回應至該位址視窗中的任一記憶體位址 之一資料請求。 13·如申請專利範圍第12項之方法,其中該裝置控制器管理該 緩衝器為一先進先出(FIFO)佇列,而且其中資料係根據該 FIFO仵列中的資料之一順序從該緩衝器返回以回應至該 位址視窗中的任一記憶體位址之一資料請求。 14·如申請專利範圍第12項之方法,其中該位址視窗係至一非 可預先獲取區域。 15. 如申請專利範圍第8項之方法,其中該啟動器包括一網路 配接器’該裝置控制器包括一磁碟控制器,以及該目標裝 置包括至少一儲存磁碟。 16. 如申請專利範圍第15項之方法,其中該匯流排實施該 PCI-X協定。 86057 2〇〇4〇668〇 i 7 /種用以處理輸入/輸出(I/O)請求的系統,其中一匯滴^非 致能與一啟動器、目標裝置及裝置控制器之通信,而且$ 中該裝置控制器存取該目標裝置以執行導入該目標复置 的I/O指令,該系統包括: /處理器; 由該處理器執行的編碼,用以引起該處理器執行: ⑴接收一 I/O請求指令以存取該目標裝置;及 (ii)配置該啟動器以傳送該匯流排上的至少一資料枝裝 至該裝置控制器之一預定位址視窗中的一記憶體位址,其 中該裝置控制器能從該匯流排上的該啟動器要求至^' 定位址視窗中的該記憶體位址之該資料請求以執行針對 該目標裝置的該資料請求。 1 8·如申請專利範圍第17項之系統,其中該接收〗/〇指令包括 一寫入操作’其中該啟動器傳送具有該等資料請求的寫入 資料至該位址視窗中的一隨機記憶體位址。 19·如申請專利範圍第17項之系統,其中該接收〗/〇指令包括 一讀取操作,用以從該目標裝置讀取資料,其中該啟動器 傳送讀取請求至該位址視窗;該系統進一步包括: 用以採用該處理器配置該裝置控制器以從該目標裝置 存取該貧料的構件。 20. 如申請專利範圍第17項之系統,其中該等資料請求係傳送 至孩位址視冒中的隨機記憶體位址,而且其中該等資料請 求繼續存取該目標裝置中的資料。 21. —種用以處理I/O請求的系統,包括: 一匯流排; 86057 200406680 與該匯流排耦合的一啟動器; 與該匯流排耦合的一裝置控制器; 一目標裝置,其中該裝置控制器提供至一目標裝置的疒 取,包括:以及 予 與該匯流排耦合的一處理器; 由S處理备執行的編碼,用以引起該處理器執行· (1)接收一 I/O請求指令以存取該目標裝置;及 (η)配置該啟動器以傳送該匯流排上的至少一資料1装 至该裝置控制器之一預定位址視窗中的一記憶體位址,其 中该裝置控制器能從該匯流排上的該啟動器要求至兮词 定位址視窗中的該記憶體位址之該資料請求以執行針對 該目標裝置的該資料請求。 22_如申請專利範圍第21項之系統,其中該接收1/〇指令包括 一寫入操作,其中該啟動器傳送具有該等資料請求的寫入 資料至該位址視窗中的一隨機記憶體位址。 23 ·如申請專利範圍第21項之系統,其中該接收I/O指令包括 一讀取操作,用以從該目標裝置讀取資料,其中該啟動器 傳送讀取請求至該位址視窗;其中該編碼係進一步能引起 該處理器執行: 配置該裝置控制器以從該目標裝置存取該資料。 24. 如申請專利範圍第21項之系統,其中該等資料請求係傳送 至該位址視窗中的隨機記憶體位址,而且其中該等資料請 求繼續存取該目標裝置中的資料。 25. —種用以處理輸入/輸出(I/O)請求的製造物品,其中一匯 流排致能與一啟動器、目標裝置及裝置控制器之通信,而 86057 200406680 且其中該裝置控制器存取該目標裝置以執行導入該目標 裝置的I/O指令,其中該製造物品能引起操作,該等操作 包括· 接收一I/O請求指令以存取該目標裝置;及 配置該啟動器以傳送該匯流排上的至少一資料請求至 該裝置控制器之一預定位址視窗中的一記憶體位址,其中 該裝置控制器能從該匯流排上的該啟動器要求至該預定 位址視窗中的該記憶體位址之該資料請求以執行針對該 目標裝置的該資料請求。 26. 如申請專利範圍第25項之製造物品,其中該啟動器包括一 直接記憶體存取(DMA)引擎,而且其中配置該啟動器以傳 送該至少一資料請求包括配置該DMA引擎以傳送該至少 一資料請求。 27. 如申請專利範圍第26項之製造物品,其中該裝置控制器包 括一DMA引擎,該製造物品進一步包括: 配置該裝置控制器以便在處理該啟動器在該匯流排上 傳送的該等資料請求時使該DMA引擎失去作用。 28. 如申請專利範圍第25項之製造物品,其中該接收I/O指令 包括一寫入操作,其中該啟動器傳送具有該等資料請求的 寫入資料至該位址視窗中的一隨機記憶體位址。 29. 如申請專利範圍第25項之製造物品,其中該接收I/O指令 包括一讀取操作,用以從該目標裝置讀取資料,其中該啟 動器傳送讀取請求至該位址視窗;該製造物品進一步包 括: 配置該裝置控制器以從該目標裝置存取該資料。 86057 200406680 30·如申請專利範圍第25項之製造物品,其中該等資料請求係 傳送至該位址視窗中的隨機記憶體位址,而且其中該等資 料請求繼續存取該目標裝置中的資料。 31. 如申請專利範圍第25項之製造物品,其中該等資料請求係 以叢發模式傳送,而且其中在處理以叢發模式傳送的該等 資料請求時該磁碟控制器操作為一從屬控制器。 32. —種用以處理輸入/輸出(I/O)指令的製造物品,其中一匯 流排致能與一啟動器及目標裝置之通信,其中該製造物品 能引起操作,該等操作包括: 偵測導入用以說明該目標裝置的一位址視窗中之一記 憶體位址的一資料請求,其中該裝置控制器控制至該目標 裝置的存取; 從該啟動器要求在該匯流排上傳送的該資料請求;及 執行該資料請求。 33 ·如申請專利範圍第32項之製造物品,其中該裝置控制器包 括一直接i己憶體存取(DMΑ)引擎,其中該啟動器傳送該資 料請求至該裝置控制器,而且其中在該裝置控制器處理該 資料請求時該裝置控制器DMA引擎失去作用。 34.如申請專利範圍第32項之製造物品,其中該i/ο指令包括 一寫入操作,其中該啟動器傳送具有至少一資料請求的寫 入資料至該位址視窗,該製造物品進一步包括: 處理至該位址視窗的資料請求為寫入操作; 儲存採用該資料請求從一緩衝器中的該啟動器接收的 寫入資料;及 傳送來自該緩衝器的該寫入資料至該目標儲存裝置。 86057 200406680 35·如申請專利範圍第32項之製造物品,其中該I/O指令包括 一讀取操作,用以從該目標裝置讀取資料,該製造物品進 一步包括: 處理至該位址視窗的資料請求為寫入操作;及 返回來自該目標裝置的資料至該啟動器。 36. 如申請專利範圍第35項之製造物品,進一步包括: 儲存從一緩衝器中的該目標裝置存取的資料,其中該緩 衝資料係返回以回應至該位址視窗中的任一記憶體位址 之一資料請求。 37. 如申請專利範圍第36項之製造物品,其中該裝置控制器管 理該緩衝器為一先進先出(FIFO)佇列,而且其中資料係根 據該FIFO佇列中的資料之一順序從該緩衝器返回以回應 至該位址視窗中的任一記憶體位址之一資料請求。 3 8.如申請專利範圍第37項之製造物品,其中該位址視窗係至 一非可預先獲取區域。 39. 如申請專利範圍第29項之製造物品,其中該啟動器包括一 網路配接器,該裝置控制器包括一磁碟控制器,以及該目 標裝置也括至少一儲存磁碟。 40. 如申請專利範圍第39項之製造物品,其中該匯流排實施該 PCI-X協定。 86057
TW092117139A 2002-07-24 2003-06-24 Method, system, and computer readable recording medium for handling input/output commands TWI298838B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/205,663 US7130933B2 (en) 2002-07-24 2002-07-24 Method, system, and program for handling input/output commands

Publications (2)

Publication Number Publication Date
TW200406680A true TW200406680A (en) 2004-05-01
TWI298838B TWI298838B (en) 2008-07-11

Family

ID=30770115

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092117139A TWI298838B (en) 2002-07-24 2003-06-24 Method, system, and computer readable recording medium for handling input/output commands

Country Status (8)

Country Link
US (2) US7130933B2 (zh)
EP (1) EP1573559B1 (zh)
CN (1) CN100481043C (zh)
AT (1) ATE433584T1 (zh)
AU (1) AU2003259210A1 (zh)
DE (1) DE60327945D1 (zh)
TW (1) TWI298838B (zh)
WO (1) WO2004010316A2 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040083323A1 (en) * 2002-10-24 2004-04-29 Josef Rabinovitz Large array of SATA data device assembly for use in a peripheral storage system
US7000037B2 (en) * 2002-10-24 2006-02-14 Josef Rabinovitz Large array of mass data storage devices connected to a computer by a serial link
US7516272B2 (en) * 2003-03-28 2009-04-07 Emc Corporation Midplane-independent implementations of data storage system enclosures
US7243178B2 (en) * 2003-05-16 2007-07-10 Intel Corporation Enable/disable claiming of a DMA request interrupt
US7826614B1 (en) * 2003-11-05 2010-11-02 Globalfoundries Inc. Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation
JP4298542B2 (ja) * 2004-02-20 2009-07-22 キヤノン株式会社 像加熱装置
US20050289253A1 (en) * 2004-06-24 2005-12-29 Edirisooriya Samantha J Apparatus and method for a multi-function direct memory access core
US20060282602A1 (en) * 2005-06-09 2006-12-14 Tse-Hsine Liao Data transmission device and method thereof
US20060288158A1 (en) * 2005-06-15 2006-12-21 Tse-Hsine Liao Interface system of a serial advanced technology attachment (SATA) having speedy data access function and method thereof
GB2427486B (en) * 2005-06-23 2010-09-29 Giga Byte Tech Co Ltd Interface system for SATA having fast data access function and method thereof
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
TW200811659A (en) * 2006-08-18 2008-03-01 Icp Electronics Inc Storage device with hard disk simulation function and control chip thereof
US8572302B1 (en) * 2006-10-13 2013-10-29 Marvell International Ltd. Controller for storage device with improved burst efficiency
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US20080109569A1 (en) * 2006-11-08 2008-05-08 Sicortex, Inc Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US20080109573A1 (en) * 2006-11-08 2008-05-08 Sicortex, Inc RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node
US8140826B2 (en) * 2007-05-29 2012-03-20 International Business Machines Corporation Executing a gather operation on a parallel computer
US8161480B2 (en) * 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
US8122228B2 (en) 2008-03-24 2012-02-21 International Business Machines Corporation Broadcasting collective operation contributions throughout a parallel computer
US7991857B2 (en) 2008-03-24 2011-08-02 International Business Machines Corporation Broadcasting a message in a parallel computer
US7912997B1 (en) * 2008-03-27 2011-03-22 Xilinx, Inc. Direct memory access engine
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8375197B2 (en) * 2008-05-21 2013-02-12 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8161268B2 (en) * 2008-05-21 2012-04-17 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
KR101624868B1 (ko) * 2008-08-06 2016-06-07 삼성전자주식회사 가상화 장치의 제어방법 및 가상화 장치
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
US8565089B2 (en) * 2010-03-29 2013-10-22 International Business Machines Corporation Performing a scatterv operation on a hierarchical tree network optimized for collective operations
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8346883B2 (en) 2010-05-19 2013-01-01 International Business Machines Corporation Effecting hardware acceleration of broadcast operations in a parallel computer
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8489859B2 (en) 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
WO2012010930A2 (en) * 2010-07-21 2012-01-26 Freescale Semiconductor, Inc. Integrated circuit device, data storage array system and method therefor
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8713379B2 (en) * 2011-02-08 2014-04-29 Diablo Technologies Inc. System and method of interfacing co-processors and input/output devices via a main memory system
BR112013020341B1 (pt) * 2011-03-02 2021-06-08 Nec Corporation sistema de controle de dados e método de controle de dados
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
US9690703B1 (en) * 2012-06-27 2017-06-27 Netapp, Inc. Systems and methods providing storage system write elasticity buffers
KR102004849B1 (ko) * 2012-08-02 2019-07-29 삼성전자 주식회사 동적 메모리 재할당 관리 방법과 상기 방법을 수행할 수 있는 장치
JP6433191B2 (ja) * 2014-08-18 2018-12-05 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
US9678681B2 (en) * 2015-06-17 2017-06-13 International Business Machines Corporation Secured multi-tenancy data in cloud-based storage environments
DE102015223786A1 (de) * 2015-11-30 2017-06-01 Dialog Semiconductor (Uk) Limited Integrierte Schaltung mit serieller Schnittstelle

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB653711A (en) 1948-08-23 1951-05-23 John William Pratt Improvements in or relating to supporting means for girders or the like
US5524268A (en) * 1992-06-26 1996-06-04 Cirrus Logic, Inc. Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases
US5561821A (en) * 1993-10-29 1996-10-01 Advanced Micro Devices System for performing I/O access and memory access by driving address of DMA configuration registers and memory address stored therein respectively on local bus
JP3403284B2 (ja) * 1995-12-14 2003-05-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム及びその制御方法
KR0160193B1 (ko) * 1995-12-30 1998-12-15 김광호 직접메모리접근 제어장치
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6070207A (en) 1998-01-26 2000-05-30 Intel Corporation Hot plug connected I/O bus for computer system
US7181548B2 (en) * 1998-10-30 2007-02-20 Lsi Logic Corporation Command queueing engine
US6275876B1 (en) 1999-05-21 2001-08-14 International Business Machines Corporation Specifying wrap register for storing memory address to store completion status of instruction to external device
US6697885B1 (en) * 1999-05-22 2004-02-24 Anthony E. B. Goodfellow Automated DMA engine for ATA control
US6564271B2 (en) * 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter

Also Published As

Publication number Publication date
TWI298838B (en) 2008-07-11
EP1573559A2 (en) 2005-09-14
ATE433584T1 (de) 2009-06-15
CN100481043C (zh) 2009-04-22
US7130933B2 (en) 2006-10-31
WO2004010316A2 (en) 2004-01-29
CN1864145A (zh) 2006-11-15
US20040019711A1 (en) 2004-01-29
US20060168359A1 (en) 2006-07-27
AU2003259210A1 (en) 2004-02-09
WO2004010316A3 (en) 2004-05-27
US7464199B2 (en) 2008-12-09
DE60327945D1 (de) 2009-07-23
EP1573559B1 (en) 2009-06-10

Similar Documents

Publication Publication Date Title
TW200406680A (en) Method, system, and program for handling input/output commands
US9727503B2 (en) Storage system and server
US9304938B2 (en) Storage device and data transferring method thereof
US9696942B2 (en) Accessing remote storage devices using a local bus protocol
US11042300B2 (en) Command load balancing for NVME dual port operations
EP4220419B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
KR20160049200A (ko) 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
US10108565B2 (en) Method for on-demand fetching of SGL pointers based buffer, traffic and command requirements
US11467764B2 (en) NVMe-based data read method, apparatus, and system
US20130019050A1 (en) Flexible flash commands
US10866755B2 (en) Two stage command buffers to overlap IOMMU map and second tier memory reads
EP1532535B1 (en) Method, system, and program for configuring components on a bus for input/output operations
TWI275943B (en) Method, system, and computer readable recording medium for returning data to read requests
US10977201B1 (en) Per IO direct memory access redirection
US20240168876A1 (en) Solving submission queue entry overflow using metadata or data pointers
EP4184334A2 (en) Storage devices including a controller and methods operating the same

Legal Events

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