專利名稱:I/o控制器和描述符傳輸方法
技術領域:
在此討論的實施例涉及控制I/O設備的I/O控制器。
背景技術:
當諸如磁盤設備或網絡接口等的1/0設備(輸入/輸出設備)執行數據傳輸或分 組傳輸時,例如,計算機中的處理器向控制1/0設備的1/0控制器傳遞描述符。描述符可以 包括指示要由I/O設備執行的處理的種類和作為數據傳輸對象的主存儲器的地址等的信 息。1/0控制器可以基于從處理器傳遞的描述符中的信息而使1/0設備執行所指示的處理。
在向1/0控制器傳輸描述符時,處理器將描述符寫到設置在1/0控制器中的描述 符存儲單元,并將寫至描述符存儲單元的描述符傳輸至1/0控制器。描述符存儲單元可以
是與主存儲器分離地設置的且與存儲器訪問相比可被更快地訪問的存儲器單元。另外,1/
0控制器可以從處理器接收請求,并讀取存儲在主存儲器中的描述符。 提出了一種數據傳輸,在該數據傳輸中,DMA控制器順序地處理由CPU寫到TD鏈存 儲單元的TD鏈中所包括的多個傳輸描述符,并且通過直接存儲器存取而在主存儲器和I/O 設備之間傳輸一系列數據。 通常,處理器將描述符寫到設置在I/O控制器中的描述符存儲單元,然后將所寫 的描述符傳輸至I/0控制器,可以減少傳瑜描述符的延遲。然而,在該方法中,1/0控制器 必須設置有具有相對大的容量的描述符存儲單元。 而且,在其中1/0控制器從處理器接收請求并讀取存儲在主存儲器中的描述符的
方法中,需要時間來從主存儲器讀取描述符,因此增大了傳輸描述符的延遲。 要解決的問題是在不增大用于存儲描述符的存儲器單元的容量的情況下減少傳
輸描述符的延遲。
發明內容
在此所討論的實施例的一方面是提供I/O控制器和描述符傳輸方法。 可以通過下面的I/O控制器實現上述方面,其中,可以將I/O設備連接至該I/O控
制器,并且該I/O控制器指令I/O設備執行處理,該I/O控制器包括描述符傳輸設備,該描
述符傳輸設備傳輸指示要執行的處理的內容的描述符;以及執行指令單元,該執行指令單
元基于從描述符傳輸設備傳輸的描述符而指令1/0設備執行該處理;其中,描述符傳輸設
備包括用于存儲描述符的存儲器,根據來自處理器的與描述符讀取源相關的指示而從存
儲描述符的主存儲器或所述存儲器讀取所指示的描述符的描述符讀取單元;以及將所讀取
的描述符傳輸至執行指令單元的描述符傳輸單元。
在下文更充分地描述和聲明的結構和操作的細節中,參考構成該細節的一部分的 附圖,這些所述的和其它的方面和優點將隨之而顯而易見,在附圖中相似的附圖標記始終 表示相似的部分。
圖1示出示例性設備結構; 圖2A示出描述符傳輸方法,并且圖2B示出利用示例性描述符傳輸設備的示例性
描述符傳輸方法; 圖3示出示例性實施例; 圖4示出描述符傳輸設備中的示例性操作和處理; 圖5示出示例性描述符傳輸處理序列; 圖6示出第二示例性實施例; 圖7示出第三示例性實施例;以及 圖8示出描述符讀取單元中的操作和處理。
具體實施例方式
圖1示出根據示例性實施例的描述符傳輸設備。根據來自處理器2的指令,根據 示例性實施例的描述符傳輸設備1從主存儲器5或描述符存儲單元12讀取描述符,并將所 讀取的描述符傳輸至I/0控制器3。描述符是與要由1/0設備4執行的處理相關的信息,并 且例如包括指示要由I/O設備4執行的處理的種類和作為數據傳輸對象的主存儲器的地址 的信息。圖1示出配備有描述符傳輸設備1的示例性I/O控制器3。然而,描述符傳輸設備 1可以是獨立于I/O控制器3的設備。 處理器2還可以通過路徑6將描述符存儲在主存儲器5的描述符存儲區域51中, 或存儲在設于描述符傳輸設備1中的描述符存儲單元12中,并且還向描述符傳輸設備1指 示描述符讀取源。 I/O控制器3指令I/O設備4執行由通過路徑6而從描述符傳輸設備1傳輸的描 述符所指示的要由I/O設備執行的處理。設置在I/O控制器3中的執行指令單元31接收 從設于描述符傳輸設備1中的描述符讀取單元11傳輸的描述符,并指令I/O設備4執行與 所傳輸的描述符相對應的處理。例如,I/O設備4執行例如由I/O控制器3指令的處理。
圖1所示的描述符傳輸設備1包括描述符讀取單元11和描述符存儲單元12。描 述符讀取單元11例如根據從處理器2接收的指示描述符讀取源的指示而從存儲描述符的 主存儲器5或描述符存儲單元12讀取與該指示相對應的描述符。而且,描述符讀取單元11 用于將所讀取的描述符傳輸至設置在I/O控制器3中的執行指令單元31。
在I/O控制器3指令I/O設備4執行由描述符所指示的處理時,描述符讀取單元 11可以能夠從讀取源讀取后續的描述符,即,預取操作。 描述符存儲單元12是可與主存儲器5分離地設置的、且與存儲器訪問相比可被更
快地訪問的存儲器單元。描述符存儲單元12存儲由處理器2所寫的描述符。 圖2A示出描述符傳輸方法,并且圖2B示出利用示例性描述符傳輸設備1的示例
性描述符傳輸方法。
圖2A和2B示出在下面的情況下的例子將三個描述符(即,第一描述符Dl以及 后續的描述符D2和D3)傳輸至I/O控制器3。圖1所示的處理器2指令描述符傳輸設備1 從描述符存儲單元12讀取描述符Dl,并從主存儲器5讀取描述符D2和D3。
圖2A示出了 處理器從時間t0到時間t3將描述符Dl至D3順序地寫到主存儲 器,并且處理器從時間t3到時間t4指令描述符傳輸設備讀取描述符。描述符傳輸設備從 時間t4到時間t6從主存儲器讀取描述符Dl,并且從時間t6到時間t7將所讀取的描述符 Dl傳輸至I/O控制器。然后,I/O控制器從時間t7到時間t9將用于指令執行基于描述符 Dl的處理的執行指令數據發送至1/0設備。 描述符傳輸設備從時間t7到時間t8從主存儲器讀取描述符D2,并且從時間t9到 時間t10將所讀取的描述符D2傳輸至I/O控制器。另一方面,I/O控制器從時間t10到時 間t12將基于描述符D2的執行指令數據發送至I/O設備。 而且,描述符傳輸設備從時間t10到時間tll從主存儲器讀取描述符D3,并且從時 間t12到時間t13將所讀取的描述符D3傳輸至I/O控制器。隨后,I/O控制器將基于描述 符D3的執行指令數據發送至I/O設備。 另一方面,如圖2B所示,根據示例性實施例,例如,如圖1所示的處理器2從時間 t0到時間tl將描述符Dl寫到描述符存儲單元12,并且從時間tl到時間t3,將描述符D2 和D3寫到主存儲器5。從時間t3到時間t4,處理器2指令描述符傳輸設備1讀取描述符。
處理器2指令描述符傳輸設備1從描述符存儲單元12讀取描述符Dl ,并且還從主 存儲器5讀取描述符D2和D3。 描述符傳輸設備1從時間t4到時間t4A從描述符存儲單元12讀取描述符Dl,并 且從時間t4A到時間t5將所讀取的描述符Dl傳輸至I/O控制器3。另一方面,I/O控制器 3從時間t5到時間t8A將用于指令執行基于描述符Dl的處理的執行指令數據發送至I/O 設備4。 描述符傳輸設備1從時間t5到時間t7A,從主存儲器讀取描述符D2,并且從時間 t8A到時間t8B,將所讀取的描述符D2傳輸至I/O控制器3。 I/O控制器3從時間t8B到時 間tllA,將基于描述符D2的執行指令數據發送至I/O設備4。 描述符傳輸設備1從時間t8B到時間tlOA,從主存儲器讀取描述符D3,并且從時 間tllA到時間tllB,將所讀取的描述符D3傳輸至I/O控制器3。 I/O控制器3將基于描述 符D3的執行指令數據發送至I/O設備4。 根據示例性實施例,與圖2A所示的例子相比,從處理器2發出用于讀取描述符Dl 的指令時開始到I/O控制器3開始傳輸執行指令數據時的時段被縮短了時段t7-t5。換句 話說,在示例性實施例中,由于處理器2指令描述符傳輸設備1從與主存儲器相比可被更快 地訪問的描述符存儲單元12讀取第一描述符Dl,因而與從主存儲器讀取描述符Dl的圖2A 的例子相比,可以減少傳輸描述符的延遲。 而且,在示例性實施例中,在I/O控制器3發送基于第一描述符Dl的執行指令數 據時,描述符傳輸設備1從主存儲器5讀取在描述符Dl之后的描述符D2。因此,可以隱藏 讀取該存儲器的延遲。作為其結果,該實施例可以進一步減少傳輸該描述符的延遲。
而且,在示例性實施例中,處理器2將在Dl之后的描述符D2和D3寫到主存儲器 5。因此,對于存儲該描述符,僅需要小容量的描述符存儲單元12,另外,在確保描述符存儲
6單元12中的空閑區域之前,處理器2不必等待去寫該描述符。 圖3示出第一示例性實施例。在第一實施例中,處理器2將描述符隨同與該描述 符相對應的源類型(Source Type)(例如圖3所示的源類型=1) 一起寫到主存儲器5的描 述符存儲區域51。處理器2指令描述符傳輸設備1A從主存儲器5讀取以下描述符指示 源類型的值為1的"源類型=1"。 設置在描述符傳輸設備1A中的描述符讀取單元11A從主存儲器5讀取描述符,并 獲得所讀取的描述符的源類型。例如,描述符傳輸設備1A中的描述符讀取單元IIA基于所 獲得的源類型的值而確定是將所讀取的描述符傳輸至1/0控制器3A,還是等待將所讀取的 描述符寫到描述符存儲單元12然后將寫到描述符存儲單元12的描述符傳輸至I/O控制器 3A。"源類型"是指示描述符讀取源的標記,并被存儲在用于存儲源類型的預定字段 中。 圖3所示的被寫到描述符存儲單元12的描述符El是要被傳輸至I/O控制器3A 的第一描述符,并且E2和E3是在El之后的描述符。在第一實施例中,假定與E1、E2和E3 中每一個相對應的源類型的值為"0"。 圖4示出示例性實施例中的描述符傳輸設備的示例性操作和處理。在第一實施例 中,當描述符傳輸設備1A從處理器2接收描述符讀取指令時,描述符傳輸設備1A從主存儲 器5讀取描述符。描述符傳輸設備1A基于從主存儲器5所讀取的描述符的源類型而確定 是將所讀取的描述符傳輸至I/O控制器3A,還是等待通過處理器2將描述符寫到描述符存 儲單元12而不將所讀取的描述符傳輸至I/O控制器3A。 如果描述符傳輸設備1A已確定了從主存儲器5讀取的描述符的源類型不是"O", 則描述符傳輸設備1A確定要傳輸的描述符的讀取源為描述符存儲單元12,并等待通過處 理器2將該描述符寫到描述符存儲單元12。響應于描述符被寫到描述符存儲單元12,描述 符傳輸設備1A從描述符存儲單元12讀取所寫的描述符。 另一方面,如果描述符傳輸設備1A已確定了從主存儲器5讀取的描述符的源類型 為"0",則描述符傳輸設備1A確定要傳輸的描述符為從主存儲器5讀取的描述符(也就是 說,確定描述符讀取源為主存儲器5),并將所讀取的描述符傳輸至I/O控制器3A。
描述符讀取單元11A從處理器2接收描述符讀取指令,并且例如基于指示該單元 自身中包括的描述符的存儲位置的指示器而讀取存儲在主存儲器5的描述符存儲區域51 中的描述符(Sl)。描述符讀取單元11A確定所讀取的描述符是否是有效的描述符(S2)。 描述符讀取單元11A確定在Sl中已被從其讀取描述符的描述符存儲區域51是否是處理器 2已將描述符寫到的區域,并基于該確定的結果而確定所讀取的描述符是否是有效的描述 符。 如果描述符讀取單元11A已確定了在Sl中已從處理器2尚未寫的區域讀取了描 述符,則描述符讀取單元IIA確定所讀取的描述符不是有效的描述符,并且處理進行到S8。 另一方面,如果描述符讀取單元11A已確定在S1中已從處理器2已寫的區域讀取了描述 符,則描述符讀取單元IIA確定所讀取的描述符是有效的描述符,并且處理進行到S3。
描述符讀取單元11A確定在Sl中讀取的描述符的源類型是否是"O" (S3)。如果 描述符讀取單元11A已確定描述符的源類型為"O",則描述符讀取單元IIA確定要傳輸的描述符的讀取源為主存儲器5。描述符讀取單元11A確認I/O控制器3A沒有正在處理描述 符,也就是說,I/O控制器3A沒有正在執行用于發送基于描述符的執行指令數據的處理,然 后將在SI中讀取的描述符傳輸至I/O控制器3A(S4)。 如果描述符讀取單元11A已確認I/O控制器3A正在處理描述符,則描述符讀取單 元11A保持描述符,直到I/O控制器3A終止描述符處理為止。 描述符讀取單元IIA更新指示描述符的存儲位置的指示器,并讀取已被寫到主存 儲器的描述符存儲區域51的后續的描述符(S5),然后處理返回至S2。
在S3中,如果描述符讀取單元11A已確定描述符的源類型不是"O",則描述符讀取 單元IIA確定要傳輸的描述符的讀取源為描述符存儲單元12。換句話說,描述符讀取單元 11A等待由處理器2將描述符寫到描述符存儲單元12,而不將在S1中讀取的描述符傳輸至 I/O控制器(S6)。 響應于描述符被寫到描述符存儲單元12,描述符讀取單元11A從描述符存儲單元 12讀取描述符,并將該描述符傳輸至I/O控制器3A(S7)。描述符讀取單元11A等待來自處 理器2的描述符讀取指令(S8)。 圖5示出了示例性描述符傳輸處理序列。例如,圖3所示的處理器2從時間t0到 時間tl將源類型為1的描述符寫到主存儲器5,并從時間tl到時間t2指令描述符傳輸設 備1A讀取該描述符。從時間t2到時間t3,已接收到讀取指令的描述符傳輸設備1A中的 描述符讀取單元11A從主存儲器5讀取該描述符。如果描述符讀取單元11A已確定所讀取 的描述符的源類型為"1"(也就是說,源類型不是"0"),則如上文所述地,描述符讀取單元 11A基于例如圖4的S6中所示的處理而等待由處理器2將描述符寫到描述符存儲單元12。
當處理器2從時間t4到時間t5將第一描述符El寫到描述符存儲單元12時,描 述符讀取單元11A在作為寫描述符E1已被終止時的時間的時間t5開始從描述符讀取單元 12讀取描述符El。描述符讀取單元11A從時間t6到時間t7將描述符El傳輸至I/O控制 器3A。 I/O控制器3A從時間t7到時間tll將用于指令執行基于描述符El的處理的數據 (即,執行指令數據)發送至I/O設備4。 對于作為在描述符El之后的描述符的E2和E3,處理器2從時間t5到時間t8將 描述符E2和E3寫到主存儲器5,并從時間t8到時間t9指令描述符傳輸設備1A讀取該描 述符。從時間t9到時間t10,已接收到讀取指令的描述符傳輸設備1A中的描述符讀取單元 11A從主存儲器5讀取描述符E2。描述符讀取單元11A確定所讀取的描述符E2的源類型 為"0",并且從時間tll到時間tl2,將描述符E2傳輸至1/0控制器3A。 1/0控制器3A從 時間t12到時間tl4,將基于描述符E2的執行指令數據發送至I/O設備4。
描述符讀取單元11A從時間t12到時間t13從主存儲器5讀取描述符E3。描述符 讀取單元11A確定所讀取的描述符E3的源類型為"0",并且從時間t14到時間tl5,將描述 符E3傳輸至I/O控制器3A。然后,控制器3A在時間t15時開始向I/O設備4發送基于描 述符E3的執行指令數據。 另一方面,如圖5所示,處理器2從時間t9到時間t10將源類型為"1 "的描述符寫 到主存儲器5,并從時間t10到時間tll指令描述符傳輸設備1A讀取該描述符。從時間t15 到時間t16,已接收到讀取指令的描述符傳輸設備1A中的描述符讀取單元11A從主存儲器 5讀取描述符,并且如果描述符讀取單元11A已確定所讀取的描述符的源類型不是"0",則
8描述符讀取單元11A等待將描述符寫到描述符存儲單元12。 在參考圖3至5所述的第一示例性實施例中,處理器2將具有源類型的描述符寫 到主存儲器5,然后指令描述符傳輸設備1A從主存儲器5讀取該描述符。如果描述符傳輸 設備1A已確定從主存儲器5讀取的描述符的源類型不是"O",則描述符傳輸設備IA等待由 處理器2將描述符寫到描述符存儲單元12,并且響應于描述符被寫到描述符存儲單元12, 描述符傳輸設備1A從描述符存儲單元12讀取所寫的描述符。 因此,例如,通過利用處理器2將源類型的值為"1"的描述符寫到主存儲器5,可以 總是從描述符存儲單元12讀取第一描述符,從而使描述符傳輸設備1A處于等待狀態,然后 將第一描述符寫到描述符存儲單元12。換句話說,根據第一實施例,可以將描述符傳輸設備 1A設置成從描述符存儲單元12讀取期望的描述符。 與描述符相對應的源類型的值不局限于"O"或"l",并且可以采用任意數量的種 類的源類型和任意的源類型的值。而且,可以根據源類型的值而預先確定從描述符存儲單 元12的哪個地址讀取描述符。 例如,處理器2可以將源類型為"2"、"3"和"4"的描述符分別寫到主存儲器5,然 后可以指令描述符傳輸設備1A讀取該描述符,并且描述符傳輸設備1A可以根據從主存儲 器5讀取的描述符的源類型的值而從描述符存儲單元12的地址讀取描述符。
圖6示出第二示例性實施例。在圖6所示的處理單元中,省略了對被分配了與圖 3所示的處理單元相同的附圖標記的類似的處理單元的說明。 在第二示例性實施例中,根據與第一實施例相類似的描述符傳輸方法,描述符傳 輸設備1A將從主存儲器5A或描述符存儲單元12讀取的描述符寫到I/O控制器。
處理器2將具有源類型的描述符寫到主存儲器5A的描述符區域51 ,然后指令描述 符傳輸設備1A從主存儲器5A讀取描述符。 例如,如果將描述符讀取單元IIA設置成從描述符存儲單元12讀取描述符,則處 理器2將源類型不是"0"(例如,為"l")的描述符寫到主存儲器5A上的描述符存儲區域 51。例如,如果描述符傳輸設備1A中的描述符讀取單元11A已確定從主存儲器5A讀取的 描述符的源類型不是"0",則描述符讀取單元11A等待由處理器2將該描述符寫到描述符存 儲單元12。響應于描述符被寫到描述符存儲單元12,描述符讀取單元IIA從描述符存儲單 元12讀取被寫到描述符存儲單元12的描述符,并將該描述符傳輸至I/O控制器3B。
如果描述符讀取單元11A已確定從主存儲器5A讀取的描述符的源類型為"0",則 描述符讀取單元11A將所讀取的描述符傳輸至I/O控制器3B。 I/O控制器3B將基于所傳 輸的描述符的執行指令數據發送至I/O設備4。 在第二示例性實施例中,在主存儲器5A上設置有完成描述符存儲區域52。當1/ 0設備4完成由從執行指令單元31發送的執行指令數據所指示的處理的執行時,I/O設備 4向完成描述符處理單元32通知該處理已完成。設置在I/O控制器3B中的完成描述符處 理單元32將指示已由I/O設備4完成了該處理的信息作為完成描述符信息而寫到主存儲 器5A上的完成描述符存儲區域52。完成描述符信息可以包括指示已完成了執行由描述符 所指示的處理(即,由通過執行指令單元31發送至I/O設備4的執行指令數據所指示的處 理)的信息。 例如,如圖6所示,當完成了由被寫到主存儲器5A上的描述符存儲區域51的描述符El所指示的處理的執行時,完成描述符處理單元32將作為指示完成了執行由描述符El 所指示的處理的信息的完成描述符1寫到完成描述符存儲區域52。 如果例如描述符讀取單元11A已從圖6所示的主存儲器5A讀取了主存儲器5A中 的源類型為"0"的描述符,則描述符讀取單元11A等待將描述符x寫到描述符存儲單元12, 然后讀取描述符x,并將描述符x傳輸至I/O控制器3B。如圖6所示,當I/O設備4完成了 執行由所傳輸的描述符x所指示的處理時,I/O控制器3B中的完成描述符處理單元32將作 為指示已完成了執行由描述符x所指示的處理的信息的完成描述符x寫到主存儲器5A上 的完成描述符存儲區域52。 在第二實施例中,每當完成由描述符所指示的處理時,將完成描述符信息寫到主 存儲器5A上的完成描述符存儲區域。因此,根據第二示例性實施例的例子,將指示該處理 的描述符與指示是否已完成了執行該處理的信息相關聯。作為其結果,可以容易地知道由 哪個描述符指示完成了的處理。 圖7示出第三示例性實施例。在圖7所示的處理單元中,省略了對被分配了與圖3 所示的處理單元相同的附圖標記的類似的處理單元的說明。在第三示例性實施例中,被寫 到主存儲器5或描述符存儲單元12的描述符包括針對緊接著描述符自身的要讀取的描述 符的指示器。描述符讀取單元IIB基于描述符中所包括的指示器而確定緊接著要讀取的描 述符的讀取源,并且如圖7所示的雙點劃箭頭70所示地,基于該確定的結果而順序地從該 讀取源讀取緊接著要讀取的描述符。 當處理器2將描述符寫到主存儲器5或描述符存儲單元12時,將針對緊接著要讀 取的描述符的指示器存儲在各描述符中包括的字段(例如next—ptr字段)中。該指示器 指示緊接著要讀取的描述符已被寫到了描述符存儲單元12或主存儲器5的哪個區域。
設置在描述符傳輸設備IB中的描述符讀取單元11B基于存儲在從主存儲器5或 描述符存儲單元12讀取的描述符的next—ptr字段中的指示器而確定是否已將下個描述符 寫到了描述符存儲單元12或主存儲器5。描述符讀取單元IIB基于該確定的結果而從描述 符存儲單元12或主存儲器5讀取下個描述符。 圖8示出了第三實施例中的描述符讀取單元中的示例性操作和處理。當描述符讀 取單元11B從處理器2接收到描述符讀取指令時,描述符讀取單元11B從由該單元自身中 保持的指示器所指示的讀取源(主存儲器5或描述符存儲單元12)讀取描述符(Sll)。可 以將該指示器的初始值預先設置到處理器2。 描述符讀取單元11B確定所讀取的描述符是否有效(S12)。描述符讀取單元11B 確定在Sll中已從其讀取描述符的區域是否是已被處理器2寫的區域,并基于該確定的結 果而確定所讀取的描述符是否是有效的描述符。 描述符讀取單元11B確認I/O控制器3C不是正在處理描述符(即,I/O控制器3C 不是正在執行用于發送基于描述符的執行指令數據的處理),然后將所讀取的描述符傳輸 至I/O控制器3C(S13)。如果描述符讀取單元11B已確認了 I/O控制器3C正在處理描述 符,則描述符讀取單元11B將描述符保持在預定的存儲器單元中,直到I/O控制器3C終止 描述符處理為止。 描述符讀取單元11B從由在Sll中讀取的描述符的next_ptr字段中存儲的指示 器所指示的讀取源讀取描述符(S14),并且處理返回至S12。
如果描述符讀取單元11B在S12中已確定所讀取的描述符為無效的描述符,則描 述符讀取單元llB保持已被確定為無效的描述符的next—ptr字段中存儲的指示器,并等待 來自處理器2的描述符讀取指令(S15)。然后,當描述符讀取單元11B接收到來自處理器2 的下個描述符讀取指令時,描述符讀取單元11B從由所保持的指示器所指示的讀取源讀取 描述符。 在第三示例性實施例中,由于描述符已具有針對下個描述符的指示器,因而不必 將描述符寫到描述符存儲單元12或主存儲器5的連續的存儲器區域。而且,由于指示器 指定了是從主存儲器5還是從描述符存儲單元12讀取描述符,因而可以切換描述符讀取 源。例如,通過將描述符讀取單元11B中保持的指示器的初始值設置成指示描述符存儲單 元12,描述符讀取單元11B可以在不訪問主存儲器5的情況下讀取描述符存儲單元12中的 描述符。 在描述符傳輸設備、I/O控制器和描述符傳輸方法中,如果來自處理器的與描述符 讀取源相關的指示指示從已被與主存儲器分離地設置的、且可被快速地訪問的存儲器單元 讀取描述符,則描述符傳輸設備從該存儲器單元讀取描述符,并將該描述符傳輸至I/O控 制器。因此,可以在不增大存儲器單元容量的情況下減少傳輸描述符的延遲。
可以在計算硬件(計算設備)和/或軟件中實現實施例,例如(在非限定性的例子 中)任何可以存儲、檢索、處理和/或輸出數據和/或與其它計算機進行通信的計算機。可 以將產生的結果顯示在計算硬件的顯示器上。可以將實現實施例的程序/軟件記錄在包括 計算機可讀記錄介質的計算機可讀介質上。還可以通過傳輸通信介質來傳輸實現實施例的 程序/軟件。計算機可讀記錄介質的例子包括磁性記錄設備、光盤、磁光盤和/或半導體存 儲器(例如RAM、 ROM等)。磁性記錄設備的例子包括硬盤驅動器(HDD)、軟盤(FD)和磁帶 (MT)。光盤的例子包括DVD (數字多功能光盤)、DVD-RAM、 CD-ROM (壓縮盤-只讀存儲器) 和CD-R(可記錄)/RW。通信介質的例子包括載波信號。 此外,根據實施例的方面,可以提供所描述的特征、功能和/或操作的任何組合。
從本詳細說明書來看,實施例的許多特征和優點是明顯的,因此,所附的權利要求 旨在涵蓋落在所附的權利要求的實質精神和范圍內的實施例的所有這種特征和優點。此 外,由于對于本領域的技術人員來說,可以容易地進行許多變型和改變,因此不是要將本發 明的實施方式局限于例示和說明的具體的結構和操作,相應地,所有適當的變型和等同方 案均落在本發明的實施例的范圍之內。
權利要求
一種I/O控制器,I/O設備能夠被連接至所述I/O控制器,并且所述I/O控制器指令所述I/O設備執行處理,所述I/O控制器包括描述符傳輸設備,所述描述符傳輸設備傳輸指示要執行的處理的內容的描述符;以及執行指令單元,所述執行指令單元基于從所述描述符傳輸設備所傳輸的描述符而指令所述I/O設備執行所述處理;其中,所述描述符傳輸設備包括存儲器,用于存儲所述描述符;描述符讀取單元,所述描述符讀取單元根據來自處理器的與描述符讀取源相關的指示而從存儲所述描述符的主存儲器或所述存儲器讀取所指示的描述符;以及描述符傳輸單元,所述描述符傳輸單元將所讀取的描述符傳輸至所述執行指令單元。
2. 根據權利要求1所述的1/0控制器,其中存儲在所述主存儲器中的所述描述符包括指示所述描述符讀取源的讀取源信息;以及 所述描述符讀取單元基于從所述主存儲器讀取的描述符中包括的讀取源信息而確定是將所讀取的描述符傳輸至所述I/O控制器,還是等待將所述描述符寫到所述存儲器然后將被寫到所述存儲器的所述描述符傳輸至所述I/O控制器。
3. 根據權利要求2所述的I/O控制器,還包括信息設置單元,所述信息設置單元在所述主存儲器中設置指示所述I/O設備已完成了 由所述描述符所指示的處理的信息。
4. 一種描述符傳輸方法,用于將指示要執行的處理的內容的描述符傳輸至指令1/0設 備執行該處理的I/O控制器,所述方法包括將所述描述符存儲在主存儲器或預定的存儲器單元中; 指示描述符讀取源;根據所述描述符讀取源的指示而從所述主存儲器或所述存儲器單元讀取所指示的描 述符;以及將所讀取的描述符傳輸至所述I/O設備控制器。
5. 根據權利要求4所述的描述符傳輸方法,其中存儲在所述主存儲器中的所述描述符包括指示所述描述符讀取源的讀取源信息;以及 當將所述描述符傳輸至所述1/0控制器時,基于從所述主存儲器讀取的描述符中所包 括的讀取源信息而確定是將所讀取的描述符傳輸至所述1/0控制器,還是等待將所述描述 符寫到所述存儲器單元然后將被寫到所述存儲器單元的所述描述符傳輸至所述I/O控制 器。
6. 根據權利要求5所述的描述符傳輸方法,還包括在所述主存儲器中設置指示所述1/0設備已執行了已被傳輸至所述1/0控制器的所述 描述符中所指示的處理的信息。
7. 根據權利要求4所述的描述符傳輸方法,其中存儲在所述主存儲器或所述存儲器單元中的所述描述符包括針對緊接著所述描述符自身的要讀取的描述符的指示器;以及基于所述描述符中包括的指示器而確定所述描述符讀取源。
8. —種計算機,包括處理器;主存儲器,用于存儲所述處理器所使用的信息;1/0控制器,用于基于作為與要由所述1/0設備執行的處理相關的信息的描述符而控 制與所述計算機相連接的1/0設備的操作;以及描述符傳輸設備,用于將所述描述符傳輸至所述I/0控制器,其中, 所述描述符傳輸設備包括 存儲器單元,用于存儲所述描述符;描述符讀取裝置,用于根據來自所述處理器的指示而讀取所指示的描述符;以及 描述符傳輸設備,用于將所讀取的描述符傳輸至所述I/O控制器;在多個所述描述符中,所述處理器將在前的描述符寫到所述存儲器單元,并且還將后 續的描述符寫到所述主存儲器;以及所述描述符讀取裝置根據來自所述處理器的指示而從所述存儲器單元和所述主存儲 器中的任一個讀取所述描述符。
9. 根據權利要求8所述的計算機,其中所述描述符讀取裝置根據來自所述處理器的指示而首先讀取存儲在所述存儲器單元 中的所述在前的描述符;以及所述描述符讀取裝置順序地讀取存儲在所述主存儲器中的所述后續的描述符。
10. 根據權利要求8所述的計算機,其中所述I/O控制器還包括用于指令所述I/O設備執行基于所述描述符的所述處理的執行 指令單元;所述描述符傳輸設備被設置在所述1/0控制器中;以及 所述描述符傳輸裝置將所讀取的描述符傳輸至所述執行指令單元。
11. 根據權利要求8所述的計算機,其中在所述描述符中包括指示所述后續的描述符的存儲器位置的指示器;以及 所述描述符讀取裝置參考所讀取的描述符中包括的所述指示器而讀取所述后續的描 述符。
12. 根據權利要求8所述的計算機,其中, 在所述描述符中包括指示描述符讀取源的信息;以及所述描述符讀取裝置參考所讀取的描述符中包括的信息而確定是將所讀取的描述符 傳輸至所述1/0控制器,還是等待由所述處理器將所述描述符寫到所述存儲器單元。
13. —種1/0控制器,包括傳輸設備,所述傳輸設備根據來自處理器的指示而從存儲描述符的存儲器讀取所述描 述符,并傳輸與要執行的處理的內容相關的數據;以及指令單元,所述指令單元基于所傳輸的數據而指令設備執行所述處理。
全文摘要
提供了I/O控制器和描述符傳輸方法。可與I/O設備相連接的、且指令I/O設備執行處理的I/O控制器包括描述符傳輸設備,該描述符傳輸設備傳輸指示要執行的處理的內容的描述符;以及執行指令單元,該執行指令單元指令I/O設備執行基于從描述符傳輸設備所傳輸的描述符的處理;其中描述符傳輸設備包括存儲器,用于存儲描述符;描述符讀取單元,該描述符讀取單元根據來自處理器的與描述符讀取源相關的指示而從存儲描述符的主存儲器或所述存儲器讀取所指示的描述符;以及描述符傳輸單元,該描述符傳輸單元將所讀取的描述符傳輸至執行指令單元。
文檔編號G06F13/12GK101794262SQ20101000258
公開日2010年8月4日 申請日期2010年1月19日 優先權日2009年1月30日
發明者井上智宏, 安島雄一郎, 平本新哉 申請人:富士通株式會社