TWI416334B - 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器 - Google Patents
在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器 Download PDFInfo
- Publication number
- TWI416334B TWI416334B TW095125210A TW95125210A TWI416334B TW I416334 B TWI416334 B TW I416334B TW 095125210 A TW095125210 A TW 095125210A TW 95125210 A TW95125210 A TW 95125210A TW I416334 B TWI416334 B TW I416334B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- data transfer
- request
- requests
- target address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明大致上係關於在一個滙流排上之通訊。且特別係關於結合用於傳送之封包至一個使用一個封包化協定之匯流排之中。
現代的個人電腦系統大致上係包含許多不同的裝置,包含處理器、記憶體、使用磁性或光學媒體之資料儲存裝置、諸如鍵盤及滑鼠之使用者輸入裝置、諸如監視器及印表機之輸出裝置、繪圖加速器等等。這些裝置全部透過實施於該系統之一個主機板上的許多不同的匯流排而彼此通訊。許多匯流排協定係為已知的,包含周邊裝置互連(Peripheral Component Interconnect,PCI),快速周邊裝置互連(PCI-Express,PCI-E),先進繪圖處理(Advanced Graphics Processing,AGP),超傳輸(Hypertransport)等等。每一個匯流排協定係指定互連之物理及電氣特性以及透過該匯流排傳輸資訊的格式。於許多情況下,一個個人電腦系統之匯流排係被分段,不同的分段有時候係使用不同的匯流排協定,且該系統係包含互連不同分段之橋接晶片。
典型地,匯流排係使用於交換系統構件之間的資料。舉例而言,當一個繪圖處理器係需要讀取儲存於系統記憶體內的構造或頂點資料,該繪圖處理器係透過一個匯流排請求該資料,且透過相同的匯流排接收一項回應。在許多裝置係正在(例如,向系統記憶體)實施資料請求或一個裝置係正在實施大的或頻繁的請求時,一
個匯流排或匯流排分段係能夠變成飽和的,導致較差的效能。事實上,許多現有的繪圖處理器係為頻寬受限的;亦即,其之效能係受限於透過連接該些處理器及該系統之其餘裝置的匯流排傳送資料之能力。因此,減少匯流排上的資料量,其係增加可使用的頻寬,係被期望改進系統效能。減少匯流排上的資料量之技術係因而受到高度期待。
本發明之實施例係提供用於合併複數個資料傳送請求及傳送合併請求成為一個封包化匯流排上之單一封包之裝置及方法,該封包化匯流排係諸如快速周邊裝置互連(PCI-E)匯流排。舉例而言,假如請求係指向相同目標裝置內之鄰接的位址範圍,則請求係能夠被結合。一個伺機性合併程序係有利地被使用,其係在一個第一請求及後來的請求係可合併的且於某一期間內被接收之情況下,合併該第一請求及該後來的請求;否則,請求係能夠在不合併之下被傳送。該程序之等待時間及其他參數係能夠被調整,以最佳化由於合併之滙流排上減少的費用及藉由等待可合併的請求所導入之增加的延遲之間之取捨。
根據本發明之一個觀點,其係提供一種用於傳送複數個客戶而來的資料傳送請求作為於一個匯流排上的封包之匯流排介面裝置。該滙流排介面裝置係包含一個佇列、結合器邏輯及輸出邏輯。該佇列係建構成儲存自該些客戶而來的資料傳送請求,每一個資料傳送請求係指定一個目標位址範圍。該結合器邏輯係建構成自該佇
列內至少一個資料傳送請求形成一個封包,且係進一步建構成在正被結合之兩個或更多個資料傳送請求係指定可以被合併之個別目標位址範圍之情況下,結合該佇列內兩個或更多個資料傳送請求成為一個封包。該輸出邏輯係建構成驅動該些封包至該匯流排之中。
於某些實施例中,由兩個或更多個資料傳送請求所指定之個別的目標位址範圍係在個別的目標位址範圍係鄰接的之情況下為可合併的。於其他實施例中,每一個資料傳送請求係進一步指定一個目標裝置,且其中,由兩個或更多個資料傳送請求所指定之個別的目標位址範圍係在該兩個或更多個資料傳送請求之每一個係指定相同的目標裝置且個別的目標位址範圍係鄰接的之情況下為可合併的。
於某些實施例中,該結合器邏輯係包含合併邏輯及傳送控制邏輯。合併邏輯係建構成偵測是否該佇列內任何資料傳送請求係可與該佇列內最舊的一個資料傳送請求合併,且至少一部分根據該偵測而產生狀態資訊。該傳送控制邏輯係建構成決定是否於一個目前的週期期間傳送一個封包或等待一個週期傳送一個封包,其中,是否傳送一個封包之決定係至少一部分根據由該合併邏輯所產生之狀態資訊。
許多不同的情況係能夠於決定是否傳送一個封包時被測試。舉例而言,該傳送控制邏輯係能夠被建構成使得是否傳送一個封包之決定係至少一部分根據於該佇列內資料傳送請求之數量、或者根據自傳送前一個封包所經過的時間、或者根據自接收該佇列內最舊的資料傳送請求所經過的時間、或根據該佇列內可與該佇列內
最舊的資料傳送請求合併之資料傳送請求的數量而定。這些或其他情況的任何組合係可以被測試。
匯流排介面裝置係能夠以許多不同的方式被配置。於一個實施例中,該裝置係為一個處理器之一個構件,且該些客戶係該處理器之處理核心。於另一個實施例中,該些客戶之每一個係為一個分離的構件,且該匯流排介面裝置係以一個專用區域匯流排線建構,以用於連接至每一個客戶。
於某些實施例中,該些資料傳送請求係以一個適合於在該匯流排上傳送之封包格式被該匯流排介面裝置所接收。於其他實施例中,該些資料傳送請求係以與一個適合於在該匯流排上傳送之封包格式不同的內部格式所接收。該些資料傳送請求係可以包含,舉例而言,讀取請求及/或寫入請求。該匯流排係能夠為一個快速周邊裝置互連(PCI-E)匯流排或任何其他封包化匯流排。
根據本發明之另一個觀點,一種用於傳送複數個客戶而來的資料傳送請求作為於一個匯流排上的封包之方法,其係包含接收一個指定一個第一位址範圍之第一資料傳送請求及接收至少一個後續資料傳送請求,每一個後續傳送請求係指定一個個別的目標位址範圍。一個關於是否該第一目標位址範圍係可與一或多個後續資料傳送請求之目標位址範圍合併之決定係被實施。一個封包係形成用於在該匯流排上傳送。於該第一目標位址範圍係可與由一或多個後續資料傳送請求所指定之目標位址範圍合併之情況下,該封包係自該第一請求及該一或多個後續資料傳送請求形成;於該第一目標位址範圍係不可與任何後續資料傳送請求之目標位址範圍合
併之情況下,該封包係自該第一請求形成。該封包係被驅動至該匯流排之中。
於某些實施例中,形成封包之動作係被實施,以回應於一個傳送條件,其係能夠根據許多不同的考量而定。舉例而言,該傳送條件係能夠至少一部分根據已經被接收之資料傳送請求之數量、或者根據自傳送前一個封包所經過的時間、或者根據自接收第一個資料傳送請求所經過的時間、或者根據可與第一個資料傳送請求合併之後續資料傳送請求之數量而定。當一個封包係被形成及/或傳送時,這些或其他情況之任何組合係可以被使用。
根據本發明之又另一個觀點,一個處理器係包含複數個處理核心及一個匯流排介面單元。每一個處理核心係建構成產生資料傳送請求。建構成接收自該些處理核心而來的資料傳送請求及傳送該些資料傳送請求作為一個匯流排上的封包之匯流排介面單元係包含一個佇列、結合器邏輯及輸出邏輯。該佇列係建構成儲存自該些處理核心而來的資料傳送請求,每一個資料傳送請求係指定一個目標位址範圍。該結合器邏輯係建構成自該佇列內至少一個資料傳送請求形成一個封包,且係進一步建構成在被結合的兩個或更多個資料傳送請求指定可合併之個別的目標位址範圍之情況下,結合該佇列內兩個或更多個資料傳送請求成為一個封包。輸出邏輯係建構成驅動該些封包至該匯流排之中。
下列實施方式及後附圖式將提供本發明之本質及優點之較佳瞭解。
本發明之實施例係提供用於結合二或更多個資料傳送請求成為一個單一封包,以用於傳送至一個封包化匯流排上之裝置及方法,該封包化匯流排係諸如快速周邊裝置互連(PCI-E)匯流排。如於此所使用,一個“封包化”匯流排係包含資料傳送請求係使用具有一個標頭(整體上雖然不必要具有固定大小)及一個可變大小的酬載之封包透過其傳送之任何匯流排。有利的是,該標頭係辨識該請求裝置及該目標位址範圍。目標位址範圍係能夠由起始及結束位址所辨識、由起始位址及大小所辨識、或類似物所辨識。於某些範例中,該目標裝置係可以被明確地辨識;於其他範例中,該目標位址範圍係根據位址映射規則而適當地辨識該目標裝置,且一個目標裝置之明顯的辨識係不需要。請求係能夠被包含複數個請求產生者之積體裝置之匯流排介面單元、被諸如一個開關之分離的匯流排介面元件或者被在觀看本揭示內容之下變成明顯的之其他裝置所結合。結合複數個請求成為一個單一封包係減少複數個封包標頭所引起的匯流排上之費用。於某些實施例中,該減少的費用係能夠提供資料頻寬及/或其他效能的優點,其之範例係敘述於下文。
第1圖係為根據本發明之一個實施例的一個電腦系統100之一個方塊圖。電腦系統100係包含一個中央處理單元102及一個透過一個記憶體橋接器105通訊之系統記憶體104。記憶體橋接器105係透過一個匯流排106連接一個輸入/輸出橋接器107。輸入/輸出橋接器107係接收自一或多個使用
者輸入裝置108(例如,鍵盤,滑鼠)而來的使用者輸入,且透過匯流排106及記憶體橋接器105轉送該輸入至中央處理單元102。視覺輸出係設置於一個以像素為基礎之顯示裝置110(例如,一個傳統的陰極射線管或液晶顯示器為基礎之監視器)上,該顯示裝置110係於一個繪圖子系統112之控制下操作,該繪圖子系統112係透過一個匯流排113連接至記憶體橋接器105。一個系統磁碟114係亦連接至輸入/輸出橋接器107。一個開關116係提供輸入/輸出橋接器107及其他構件之間之連接,其他構件係諸如一個網路適應器118及許多不同的附加(add-in)卡120,121。於較佳實施例中,於系統100之許多不同的構件之間之某些連接或全部連接係使用一個封包化匯流排協定而實施,其中,不同的構件之間係例如記憶體橋接器105及繪圖子系統112之間、記憶體橋接器105及輸入/輸出橋接器107之間以及輸入/輸出橋接器107及開關116之間,而封包化匯流排協定係諸如快速周邊裝置互連(PCI-E)。
繪圖處理子系統112係包含一個繪圖處理單元122及一個繪圖記憶體124,其係可以例如使用諸如可程式處理器、特殊應用積體電路及記憶體元件之一或多個積體電路裝置而實施。該繪圖處理單元122係可以建構成實施關於自繪圖資料產生像素資料且與繪圖記憶體124交互作用之許多不同的工作,以儲存及更新像素資料及類似物,其中,繪圖資料係由透過記憶體橋接器105及匯流排113由中央處理單元102及/或系統記憶體104所提供。舉例而言,該繪圖
處理單元122係可以從由執行於中央處理單元102上許多不同的程式所提供之二維或三維景物資料產生像素資料。該繪圖處理單元122係亦可以儲存透過記憶體橋接器105所接收之像素資料至繪圖記憶體124之中,而具有或不具有進一步的處理。有利的是,該繪圖處理單元122係包含一個掃瞄管線,以用於自繪圖記憶體124傳送像素資料至顯示裝置110。提供及掃瞄操作之任何組合係能夠於該繪圖處理單元122中實施,且一個詳細說明係被省略,因為對於瞭解本發明係不重要。
應瞭解的是,於此所顯示之系統係為例示性的,且變化及修改係可能的。匯流排裝置及橋接器之數量及配置係可以隨需要而修改;舉例而言,一個繪圖子系統係能夠連接至輸入/輸出橋接器107而非連接至記憶體橋接器105,或者輸入/輸出橋接器107及記憶體橋接器105係可以整合於一個單一晶片之中。可替代地,一個繪圖子系統係能夠積體化於一個具有匯流排橋接器之單一晶片之中。該匯流排拓樸係亦可以改變;舉例而言,於一個替代實施例中,該系統記憶體係直接連接至該中央處理單元,而非透過一個橋接器。
任何數量之繪圖處理器係可以包含於其內(例如,藉由連接具有一個於其上之繪圖處理器之附加卡至匯流排113),且如此之處理器係可以平行運算,以產生用於相同顯示裝置或用於不同顯示裝置之影像。每一個繪圖處理器係可以具有任何數量之本地繪圖記憶體,包含無本地記憶體,且一個繪圖處理器係可以以任何組合方式使用本地記憶體及系統記憶體。
第2圖係為根據本發明之一個實施例之繪圖處理單元122的方塊圖。該繪圖處理單元122係包含複數個執行核心202(1)至202(N),其係平行運算,以實施提供及/或掃瞄操作。於一個實施例中,執行核心202(1)至202(N)之一係實施掃瞄操作,而其他核心係實施提供操作;應瞭解的是,其他組態係可以被使用。任何數量之N係可以被設定,且每一個核心係可以具有大致上傳統的設計。
有時候於其之運算期間,執行核心202(1)至202(N)係可以要求資料自系統記憶體104(第1圖)或其他可透過記憶體橋接器105接取繪圖處理單元122之裝置取出。根據本發明之一個實施例,執行核心202(1)至202(N)係轉送如此之請求給一個匯流排介面單元204。匯流排介面單元204係包含一個傳送器模組206及一個接收器模組208。一個實施例係敘述於下文之傳送器模組206係轉送自該些核心接收而來的請求給匯流排113。接收器模組208係透過匯流排113接收對於該些請求之回應,且轉送每一個回應給執行核心202(1)至202(N)之一個提出請求的核心。
於較佳實施例中,匯流排係為一個“封包化”匯流排,其係意謂資訊係使用可於大小上改變之封包而被傳送。於資料傳送請求之情況下,每一個封包係包含一個固定大小(例如,20個位元組)之標頭,其係辨識請求裝置、目標裝置及資料被來回傳送之(目標裝置內的)目標位址或位址範圍。於某些實施例中,位址係於一個“總體”位址空間內定義,該總體位址空間係於複數個
裝置之間共享,且該目標位址範圍單獨足以辨識一個目標裝置;於如此之情況下,該目標裝置之一個分離的辨識元係可以被省略。類似地,於複數個空間(例如,輸入/輸出空間,記憶體空間,組態空間等等)被定義且每一個空間的一部分係指定給特定目標裝置之情況下,該目標裝置係可以藉由於該空間內指定一個目標位址空間及一個目標位址範圍而被辨識。該目標位址範圍係能夠使用起始及結束位址、或一個起始位址及大小或類似物而指定。
有利的是,該標頭係亦包含其他資訊,諸如將被實施之運算之形式(例如,讀取或寫入)、封包優先順序、封包流水號碼及由該請求裝置所提供之其他獨一無二的辨識元(於此稱為一個“標籤”)等等。於一個寫入運算之情況下,一個請求封包係有利地亦具有一個包含將被寫入之資料的“酬載”部分。有利的是,於一個讀取運算之情況下,該請求封包之酬載部分係被省略。許多封包格式係為業界所熟知,且一個詳細說明係被省略,因為其對於瞭解本發明係不重要。於一個實施例中,該封包係符合快速周邊裝置互連(PCI-E)協定。
在該封包請求一個讀取運算之下,有利的是,該目標裝置係送回一個回應封包,該回應封包的酬載部分係包含該被請求的資料。該回應封包之標頭係辨識該請求裝置,且係包含自對應的請求封包而來的標籤,以便利該資料之辨識。於一個寫入運算之情況下,一個回應封包係可能不被送出。
於某些實施例中,每一個讀取請求或寫入請求封包之目標裝置係將一個確認收到(“Ack”)送回給傳送
該請求之裝置。與任何資料傳送分離的Ack係可以為一個小的封包,其係僅例如藉由將與該請求封包相關的標籤送回而指示成功接收該請求封包。於一個讀取請求之情況下,該目標裝置係在接收該請求封包及(在一個可施加讀取延遲期間之後)在一個分離封包內的請求資料時,送回一個Ack。接著,該請求裝置係傳送一個Ack回該目標裝置,以指示接收到該資料封包。於一個實施例中,Ack亦符合快速周邊裝置互連協定。
傳送器模組206係有利地提供每一個被傳送之請求封包的獨一無二的標籤給接收器208,且亦提供關於核心202(1)至202(N)之哪一個係產生該請求的資訊給接收器208。接收器208係匹配進來的回應封包之標頭內之請求標籤及由傳送器模組206所提供之請求標籤,且使用此資訊以導引該回應至核心202(1)至202(N)之產生核心。
於某些範例中,於系統100(第1圖)之其他裝置係可以請求自繪圖處理子系統112而來去的資料傳送,例如自繪圖記憶體124而來去的資料傳送。於此情況下,接收器208係透過匯流排113接收一個進來的請求封包,且轉送該請求至繪圖處理子系統112內之一個適合的處理裝置。該處理裝置係可以為舉例而言,核心202(1)至202(N)之一或者一個分離的繪圖記憶體介面模組(未示於第2圖)。回應(資料或Ack)係自該處理裝置送回至傳送器模組206,其係格式化及透過匯流排113傳送一個回應至該請求裝置。
封包係不受限於資料傳送請求及回應。於某些實施
例中,除了資料傳送請求及回應之外,封包亦可以被使用於系統構件之間傳送許多不同的訊息(例如,中斷,重置,及類似物)。
於一個實施例中,匯流排113係為一個快速周邊裝置互連匯流排,其係具有分離的實際路徑113a、113b,以分別用於傳送封包及接收封包,如示於第2圖。應瞭解的是,其他封包化匯流排係能夠被取代,其係具有或不具有分離的傳送及接收路徑,且本發明係不受限於快速周邊裝置互連匯流排。
根據本發明之一個實施例,當核心202(1)至202(N)係產生資料傳送請求時,傳送器單元206係能夠結合複數個請求成為一個在匯流排113上傳送的單一封包。假如封包係指向相同裝置內的鄰接位址範圍且指定相同形式之運算(例如,讀取或寫入),則封包係有利地被結合。
第3圖係顯示一個結合封包的操作原理。封包302係具有一個標頭部分304及一個酬載部分306(其係可以為空白的)。標頭部分304係指定一個裝置(Dev1),一個位址範圍〔A0,A1),及一項運算(讀取)。於此,位址範圍係於一個線性位址空間內使用半開放區間〔Aa,Ab)而被指定,其中,a<b,其係表示該範圍內的第一個位址係為Aa,且最後一個位址係為比Ab小之最大的有效位址值。位址索引係被排序,使得假如a<b,則位址Aa係於該線性位址空間內比位址Ab為低;因此,應瞭解的是,A0<A1<A2等等。位址之間之間隔係為任意的,且係可以被改變;舉例而言,當A1及A2係為分隔32位元組時,A0及A1係可以分隔6
4位元組。熟習本項技術者在接取本發明之教示之下將能夠調整於此所述之實施例成為其他位址空間。
類似地,封包308係具有一個標頭部分310及一個酬載部分312(其係可以為空白的)。標頭部分310係指定相同的裝置(Dev1)及一個位址範圍〔A1,A2)。封包302及308係指向相同裝置內的鄰接位址範圍,且指定相同形式之運算。根據本發明之一個實施例,這些封包係能夠被結合成為一個新的封包314。封包314之標頭部分316係指定相同的裝置(Dev1),該結合的位址範圍〔A0,A2),及運算(讀取)。該封包314之該酬載部分318係含有封包302及308之串接的載酬。
於某些實施例中,封包標頭係具有相同的大小,而不論酬載的大小為何。舉例而言,標頭316之大小係與標頭304及310之一的大小相同。傳送結合的封包314而非個別的封包302及308係減少一個標頭之大小所使用之頻寬。此係能夠造成實質上節省。舉例而言,於一個使用快速周邊裝置互連之實施例之中,每一個封包標頭係為20個位元組,且酬載係可以為16、32、64或128個位元組。假如兩個64位元之酬載係被合併成一個128位元組之中,則有效頻寬係增加大約13.5%。在一個匯流排裝置係為有限頻寬的情況下,此係為一個意義重大的效率增益,對於繪圖處理單元而言係常有此種情況。更整體而言,只要結合的封包314係小於該兩個封包302、308,則結合該些封包係造成匯流排頻寬使用上的減少,且特別是在匯流排裝置係為有限頻寬的情況,某些效能上的改
善。
再者,應注意的是,在該資料傳送請求係為一個讀取請求之情況下,結合封包係能夠減少兩個方向上的標頭費用,因為對於每一個請求封包之回應係以一個分離封包傳送。舉例而言,於第3圖中,假如該目標裝置透過一個快速周邊裝置互連匯流排接收封包302及308,則其係產生兩個回應封包,以傳送請求的資料。然而,假如該目標裝置係接收封包314,其係將僅產生一個回應封包。此外,於使用快速周邊裝置互連或該目標裝置對於每一個接收到的封包傳送一個Ack之其他協定之實施例中,結合封包係能夠減少需要被傳送之Ack的數量,其係進一步減少匯流排上的費用。
於某些實施例中,在傳送器模組206係正在傳送回應封包之情況下,結合封包係可能不適當的。舉例而言,快速周邊裝置互連係需要一個目標裝置對於每一個接收到的封包送回至少一個封包,因此,在一個快速周邊裝置互連裝置係正作用為一個目標裝置之下,傳送器模組206係不結合回應一個請求所產生之封包。熟習本項技術者將體認,傳送器模組206係能夠建構成區別請求封包及其他形式之封包,且僅針對請求封包實施結合操作。
在傳送器模組206係正在傳送請求封包之情況下,任何請求及任何數量之請求係能夠被結合成為一個單一封包,只要該目標裝置係能夠回應該請求。於某些實施例中,自不同核心202而來的請求係能夠被傳送器206所結合。在該請求係為一個讀取請求之下,傳送器206係有利地提供指示哪一個核心202係請
求該結合的請求之資料的哪一部分之資訊給接收器模組208。給定如此之資訊之下,接收器模組208係能夠導引該送回的資料的正確的部分給正確的客戶。
第4圖係為根據本發明之一個實施例之傳送器模組206的方塊圖。傳送器模組206係包含一個輸入仲裁器402,一個用於暫時儲存寫入請求之寫入佇列404,一個用於暫時儲存讀取請求之讀取佇列406,一個寫入結合器408,一個讀取結合器412,一個輸出仲裁器416及一個連接至匯流排113之向外的資料路徑113a的驅動電路418。
輸入仲裁器402係接收自核心202(1)至202(N)而來的資料傳送請求,包含讀取及寫入請求。於某些實施例中,該些核心係以由該匯流排所指定之封包格式傳送請求給傳送器模組206;於其他實施例中,係使用一個不同的資料格式傳送該些請求,且該些請求係於傳送器模組206內被轉換成適合的封包格式。
輸入仲裁器402係導引寫入請求至寫入佇列404及讀取請求至讀取佇列406。因為複數個核心係可以同時實施請求,所以輸入仲裁器402係有利地包含用於在同時的請求之間仲裁的控制邏輯。諸如循環順序(Round-robin)、以優先順序為基礎之仲裁或類似方式之傳統的仲裁或排程規則係可以被使用,且一個特定的仲裁機制係本發明而言為不重要的。於一個實施例中,輸入仲裁器402係於每一個時脈週期轉送一個請求至讀取佇列406及寫入佇列404之每一個。
讀取佇列406及寫入佇列404係可以使用傳
統用於以所接收之次序佇列請求之方法而實施。如下文所述,於某些實施例中,請求係可以不按照次序自讀取佇列406及寫入佇列404移除。
寫入結合器408係包含合併邏輯420,一個計時器422及傳送控制邏輯424。當合併邏輯420接收新的請求時係檢查新的請求,以決定是否其係能夠與一個目前的請求合併,例如於寫入佇列404內最舊的請求(加上已經與該最舊的請求合併的任何請求)。合併邏輯420之一個特定實施方式係敘述於下文。傳送控制邏輯424係使用由合併邏輯420所提供之狀態資訊,以決定是否一個封包將被傳送。傳送控制邏輯424係可以建構成偵測許多不同的狀況,於該些狀況下,一個封包係被傳送,範例係敘述於下文。當一個封包將被傳送時,傳送控制邏輯424係自由合併邏輯420所辨識之目前的請求產生該封包。於某些實施例中,傳送控制邏輯424亦重新格式化該請求成為該匯流排協定所指定之封包格式。一旦一個封包被形成,傳送控制邏輯424係轉送該封包至輸出仲裁器416,且自寫入佇列404中移除所有包含於該封包內的請求。計時器422係有利地被傳送控制邏輯424所使用,以防止請求在寫入佇列404中等待太久,如下文所述。
類似地,讀取結合器412係包含合併邏輯426,一個計時器428及傳送控制邏輯430。當合併邏輯426接收新的請求時係檢查新的請求,以決定是否其係能夠與一個目前的請求合併,例如於讀取佇列406內最舊的請求(加上已經與該最舊的請求合併的任
何請求)。合併邏輯426之一個特定實施方式係敘述於下文。傳送控制邏輯430係使用由合併邏輯426所提供之狀態資訊,以決定是否一個封包將被傳送。傳送控制邏輯430係可以建構成偵測許多不同的狀況,於該些狀況下,一個封包係被傳送,範例係敘述於下文。當一個封包將被傳送時,傳送控制邏輯430係自由合併邏輯426所辨識之目前的請求產生該封包。於某些實施例中,傳送控制邏輯430亦重新格式化該請求成為該匯流排協定所指定之封包格式。一旦一個封包被形成,傳送控制邏輯430係轉送該封包至輸出仲裁器416,且自讀取佇列406中移除所有包含於該封包內的請求。計時器428係有利地被傳送控制邏輯430所使用,以防止請求在讀取佇列406中等待太久,如下文所述。
寫入結合器408及讀取結合器412係有利地彼此傳通關於於其個別的佇列內之封包的目標裝置及目標位址的資訊,舉例而言,使得具有相同的目標位址之讀取請求及寫入請求之間的次序係能夠被保存。舉例而言,假設一個核心係(依序)傳送一個自位址範圍〔A0,A1)讀取資料之第一請求、一個將資料寫入位址範圍〔A1,A2)之第二請求及一個自位址範圍〔A1,A2)讀取資料之第三請求。在合併該兩個讀取請求之前,讀取結合器412係根據自寫入結合器408傳通而來的資訊而偵測介於中間的寫入請求的存在。於一個實施例中,讀取結合器412係合併該兩個讀取請求且保存合併的請求(亦即,不傳送合併的請求至輸出仲裁器416),直到介於中間的寫入請求係已經被傳送為止。可
替代地,讀取結合器412係可以不合併該第二請求而傳送該第一請求;例如在寫入請求之傳送係被延遲之情況下,此選項係較佳的。
輸出仲裁器416係接收自寫入結合器408而來之攜帶寫入請求之封包,以及接收自讀取結合器412而來的攜帶讀取請求之封包。於一個實施例中,寫入結合器408及讀取結合器412之每一個係於每一個時脈週期上最多傳送一個封包給仲裁器416。在僅該些結合器之一係提供一個封包之下,輸出仲裁器416轉送該封包至驅動電路418。在該兩個結合器皆提供封包之下,輸出仲裁器416係可以採用傳統的仲裁邏輯以於其之間選擇(例如,最近服務過的或以優先順序為基礎之仲裁演算法)。輸出仲裁器416係可以包含先進先出或其他緩衝器,以暫時儲存封包,直到該些封包被選擇用於傳送為止。
驅動電路418係接收自輸出仲裁器416而來的選擇出的封包,且根據匯流排協定而驅動該封包至匯流排線113a之中。驅動電路418係可以為大致上傳統的設計。於某些實施例中,該匯流排係包含複數個訊號線113a,且驅動電路418係平行地驅動包含該封包之資料位元之至少某些位元至這些線之中。
應體認的是,於此所敘述之傳送器模組係為例示性的,且變化及修改係可能的。讀取佇列及寫入佇入係可以具有任何大小,且係可以於實際上或邏輯上分離的電路中實施。該讀取結合器及寫入結合器係可以具有相同的或不同的組態,且於某些實施例中,結合請求係可以僅對於讀取請求或僅對於寫入請求實施。於匯流排協定
係不包含一個用於傳送資料之專用路徑之下的實施例中,該傳送器模組之輸出仲裁器或另一個構件係可以被組構成在傳送一個封包之前,以與可應用匯流排協定一致之方式獲得該匯流排之控制,如同熟習本項技術者所已知。再者,雖然該傳送器模組係參照特定功能方塊而於此被敘述,應瞭解的是,該些方塊係為了敘述方便而予以定義,且不需要對應於實際上不同的構件。
合併邏輯方塊420及426現在將予以敘述。第5圖係為一個顯示根據本發明之一個實施例之可以於讀取結合器412之合併邏輯方塊426及/或寫入結合器408之合併邏輯方塊420中實施之控制邏輯方法500的流程圖。方法500係可以被重複,其係起始於“循環”步驟502。於某些實施例中,方法500之執行係與一個時脈同步化,其係可以被進一步與匯流排之操作同步化。
於此實施例1,一個“主動視窗”係定義於讀取佇列406(或寫入佇列404)之中,以辨識為目前合併之候選的請求。該主動視窗係具有一個預先決定的最大大小Mw,有利的是,其係以請求的數量來測量。舉例而言,Mw係可以為2、3、4或任何達到讀取佇列406之全部大小的大小。於任何給定時間,於讀取佇列406中第Mw個最舊的請求係於該主動視窗之中。
起初,讀取佇列406係為空的。如上文所述,於操作期間,輸入仲裁器402係於每一個週期上將0個或更多個請求加入讀取佇列406。於步驟504中,合併邏輯426係檢查讀取佇列406,以決定是否一個新的請求係已經被接收。假如如此,則於步驟506
中,合併邏輯426係決定是否計時器428係已經在執行,且假如不是,則於步驟508中啟動計時器428。於一個實施例中,計時器428係能夠使用一個能夠於每一個時脈週期上被增加或重置之計數器而實施,且啟動計時器係包含重置該計數器,使得其係能夠如下文所指示被增加。假如於步驟506中,計時器428係已經在執行,則於步驟510中,計時器428係被增加。
於步驟512中,合併邏輯426係決定是否該新的請求係能夠與一個目前的請求合併。有利的是,該“目前的請求”係藉由參照一個位址範圍而被定義。當第一個請求係被接收時,目前的位址範圍係被起始化成該請求的位址範圍。其後,每次一個封包被傳送,該目前的位址範圍係被重新起始化成該佇列內最舊的請求之位址範圍。直到諸如一個封包被傳送之時,假如後續請求之位址範圍係與目前的位址範圍為鄰接的,則合併邏輯426係能夠藉由合併後續請求之位址範圍成為目前的位址範圍而擴展目前的位址範圍。
因此,步驟512係包含比較新的請求之位址範圍及目前的位址範圍,以決定是否合併係可能的。於某些實施例中,有利的是,“可合併”位址範圍係包含代表相同位址空間內鄰接的區塊,使得合併係使位址範圍變大。此外,可合併的位址範圍係亦可以包含部分或全部重疊的位址範圍。因此,位址範圍〔A0,A2)之請求係可與位址範圍〔A1,A2)之請求或與位址範圍〔A0,A2)之第二個請求合併。在不同的請求之位址範圍重疊之下,有利的是,傳送器模組206(第2圖)係辨識由每一個
核心202所請求之特定範圍之接收器模組208,且接收器模組208係傳送適當的資料至每一個請求核心202。
於某些實施例中,合併係可以改變起始或結束位址。於其他實施例中,起始位址係不因合併而改變,且僅目標位址對應於較小的位址值之請求係於步驟512中被認為可合併的。此外,合併亦可以受限於目標瞄準相同裝置之請求。於某些實施例中,自不同核心而來的請求係可以或可以不被認為可合併的。
假如新的請求係能夠被合併,則於步驟514中,目前的位址範圍係更新成反映合併的請求。目前的位址範圍係可以,例如由一個起始位址(例如,將被接取之最低位址值)及一個範圍大小或者一個起始位址及一個結束位址(例如,將被接取之最低及最高位址值)所表示;更新目前的位址範圍係可以包含改變起始位址、結束位址及/或範圍大小,以反映原始的目前請求及新的請求之串接的範圍。
於步驟516中,該新的請求係被標示為被合併的。於某些實施例中,於該佇列內的請求係可以被修改以反映合併。於其他實施例中,該些請求係不被修改,且旗標或類似資料結構係可以被使用於辨識哪些請求係被合併。更明確言之,於一個實施例中,一個對應於該視窗內每一個位置之1位元暫存器係被設置。暫存器值係可以被初始化成為一個邏輯低的值,以指示該請求係尚未被合併,且於步驟516中對於已經被合併之請求設定一個邏輯高的值。
於步驟518中,合併邏輯426係檢查在合併新
的請求之後可能的另外的合併。舉例而言,假如一個第一個請求係具有位址範圍〔A0,A1)且一個第二個請求係具有位址範圍〔A2,A3),則無任何合併係可能的。然而,假如一個具有位址範圍〔A1,A2)之第三個請求係被接收,且與第一個請求合併以產生一個目前的位址範圍〔A0,A2),則亦合併第二個請求以產生一個目前的位址範圍〔A0,A3)係變成可能的。有利的是,步驟518係包含偵測如此之情況且實施額外的合併。
第6圖係為一個可以於步驟518中實施以合併額外的請求之方法的流程圖。於步驟606開始,方法600係橫越主動視窗,以辨識其內位址範圍係與目前的合併過的位址範圍為鄰接的之任何未合併的請求。於步驟608中,一個候選請求係被選擇。有利的是,該候選請求係為該主動視窗內尚未被標示為被合併的最舊的請求。於步驟610中,該候選請求之目標位址係被決定。
於步驟612中,係決定是否該候選請求之目標位址範圍係可以與目前的合併過位址範圍合併。有利的是,使用於步驟512中用於合併之相同條件係使用於步驟612中。假如該些位址範圍係可合併的,則該合併過的位址範圍係於步驟614中被更新,且於步驟616中,該候選請求係被標示為被合併的。這些步驟係可以大致上類似於上述之步驟514及516。
於步驟618中,不論是否該候選請求被合併,是否該視窗內任何未合併的請求尚未被測試係被確定。假如如此,則於步驟608中,下一個如此之請求係被選擇作為新旳候選請求,且如上文所述被測試。
於步驟620中,其係決定是否測試應該繼續。舉例而言,假如於視窗橫越期間有任何請求被合併,則另外的未合併的請求係現在可能可以與擴展過的位址範圍合併係可能的。假如測試係應該繼續,則方法600係返回步驟606以開始該視窗之一個新的橫越。應體認的是,示於第6圖之特定步驟係不需要。
於步驟518檢查額外的合併係能夠減少合併在請求到達的次序之相關性。舉例而言,假設該主動視窗內最舊的請求係具有一個目標位址範圍〔A0,A1),下一個最舊的請求係具有一個目標位址範圍〔A2,A3),且第三個最舊的請求係具有一個目標位址範圍〔A1,A2)。於方法500中之步驟512-516,第一個請求係與第三個請求合併以產生一個合併的位址範圍〔A0,A2)。於步驟518中,第二個請求係與該合併過的請求合併以產生一個合併的位址範圍〔A0,A3)。應注意的是,步驟518係可選用的,且於某些實施例中,簡化合併邏輯係可以具有一個比增加步驟518提供的合併請求之可能性為高的優先順序。
再次參照第5圖,合併邏輯426係提供更新的狀態資訊給傳送控制邏輯430。該狀態資訊係可以包含可被傳送控制邏輯430所使用用於決定是否在目前週期期間傳送一個封包之任何資訊。狀態資訊之範例係包含視窗內請求的總數量,合併成目前請求之請求數量,目前位址範圍的大小,等等。
於步驟504中無任何請求被接收之情況下,合併邏輯426係於步驟524中將計時器428增加。於步驟526中,合併邏輯426係決定是否於上一個週
期期間一個封包被傳送;步驟526係可以包含偵測由傳送控制邏輯430所產生之一個訊號,如下文所述。假如一個封包被傳送,則該封包係包含該佇列內最舊的請求,因此,目前的位址範圍係不再為準確的。於步驟528中,目前的位址範圍係被更新,以反映現在為該讀取佇內406中最舊的請求之位址範圍。有利的是,合併邏輯426係檢查該佇列406內能夠與現在最舊的請求合併之其他請求(步驟518)。
現在將敘述傳送控制邏輯424及430。第7圖係為一個顯示根據本發明之一個實施例之可以實施於讀取結合器412之傳送控制邏輯430中或寫入結合器408之傳送控制邏輯中之控制邏輯方法700的流程圖。方法700係可以自“循環”步驟702開始被重複。
於步驟704中,傳送控制邏輯430(或傳送控制邏輯424)係決定是否一個傳送條件係已經產生。如於此所使用,一個“傳送條件”係大致上指其之產生係指示一個封包應該自讀取佇列406(或寫入佇列404)被傳送之任何可偵測的條件。有利的是,傳送條件係被定義及轉變成為一個特定系統組態,且係可以考量諸如讀取佇列406之大小、傳送器模組206所導入的最大延遲、匯流排活動的真正水準等等之考量點。許多傳送條件係可以被使用,且本發明之一個實施例係可以於步驟704中測試傳送條件的任何數量及組合。
舉例而言,於某些實施例中,當計時器428(或計時器422)係時間終了時,例如當實施計時器428之計數器係已經到達一預定最大值時,一個傳送條件
係產生。有利的是,該最大值係被定義成使得當等待較長係導入不被期望由合併請求而來的效率增益作補償之延遲時,計時器428之時間終了係產生。於某些實施例中,最大值係可以為一個固定值,其係能夠為該裝置之一個可建構的參數。於其他實施例中,最大值係能夠根據操作條件而作動態調整,例如藉由監視匯流排資料量、當匯流排係負荷相當輕時選擇一個較低的最大值以減少延遲及當匯流排係負荷相當重時選擇一個較高的最大值以增加結合封包的可能性。
於某些實施例中,傳送條件係根據請求佇列及/或匯流排協定之性質而定。舉例而言,如上文所述,於某些實施例中,一個主動視窗係於讀取佇列406中被定義,以辨識為目前用於合併之候選的請求。該主動視窗係具有一個預定最大大小Mw,有利的是,其係以請求之數量來測量。舉例而言,Mw係可以為2、3、4或任何達到讀取佇列406之全部大小的大小。於任何給定時間,於讀取佇列406中第Mw個最舊的請求係於該主動視窗之中(假如少於Mw個請求係存在於讀取佇列406中,則所有請求係於該主動視窗之中)。
一旦該主動視窗係為滿的,亦即,一旦讀取佇列406係包含Mw個請求,則繼續等待請求係不再值得(即使計時器係尚未時間終了),因為無新的請求能夠進入該主動視窗,直到一個封包已經被傳送為止。因此,有利的是,一個滿的主動視窗係被偵測為一個傳送條件。舉例而言,假如Mw=2,則一旦兩個請求係已經被接收,則第一個請求係應該被傳送。假如第二個請求之目標位址範圍係與第一個請求的目標位址範圍為鄰接
的,則該些請求係如上文所述被合併。否則,第二個請求係維持於佇列之中,直到一個第二個條件發生於一個後續週期之中為止。
於另一個實施例中,一個傳送條件係根據能夠被合併的請求之最大數量MR而定;MR係能夠為達到視窗大小Mw之任何大小。假如佇列406中第一個(最舊的)請求係能夠與MR-1個其他請求合併,則有利的是在形成及傳送該封包之前不再等待。舉例而言,於一個如此之實施例中,Mw=3且MR=2;假如最舊的請求係能夠與第二舊的請求合併,則於MR上的傳送條件係產生,且一個封包係被傳送,而不論是否一個第三個請求係已經被接收。應體認的是,在MR=Mw且一個根據Mw之傳送條件被使用之情況下,一個根據MR之傳送條件係為多餘的,此道理係為以MR為基礎的傳送條件係只有在以Mw為基礎之傳送條件亦發生之下才發生。
於又另一個實施例中,一個傳送條件係根據由該匯流排所支援之最大封包大小而定。一旦一個具有最大大小之封包係能夠藉由合併主動視窗內請求而被產生,在不產生一個不可接受的大的封包之下,無進一步的請求係能夠與現存的請求合併。舉例而言,假設匯流排協定係限制一個封包的酬載為128位元組。假如佇列406內第一個(最舊的)請求係具有128位元組酬載,則其係不能夠被合併成為一個較大的封包,且封包大小的條件係產生。類似地,假如佇列406內第一個(最舊的)請求係具有64位元組酬載且係能夠與另一個64位元組請求合併以形成一個具有128個位元組酬載,則該封包大小傳送條件係亦產生。應瞭解的是,一
個128位元組之最大值的範例係為例示性的;不同的匯流排協定係可以對於封包大小置放不同的限制(或無限制)。
再次參照第7圖,步驟704係可以包含偵測上述或其他傳送條件之任何組合。假如於步驟704中,未發生任何傳送條件,則方法700係返回步驟702而不採取任何動作。假如一個傳送條件之發生係被偵測到,則於步驟706中,一個封包係形成。於一個實施例中,傳送控制邏輯430係藉由參照由合併邏輯426所決定之目前的位址範圍而形成該封包,如上文所述。形成一個封包係可以包含產生一個新的標頭,或者於請求係已經格式化為封包之實施例中,修改於一個封包之標頭內的位址範圍之資訊,以結合自任何與其合併之其他封包而來的資訊。產生一個封包係亦可以包含串接被合併的請求(或封包)之酬載;有利的是,酬載係根據位址之次序而串接,其係不必然為該視窗內的請求之次序。於某些實施例中,酬載係可以串接成為被辨識的可合併的請求(例如,於第5圖的方法500之步驟514中),而非等待直到步驟706為止。於步驟708中,封包係被傳送至輸出仲裁器416,以用於傳送至匯流排之上。
於步驟710中,封包資訊係被轉送至接收器模組208(第2圖)。有利的是,該封包資訊係包含獨一無二的封包標籤,該標籤係為核心202(1)至202(N)之哪一個(或哪些)係請求該資料之辨識,以及可以被接收器模組208所使用以決定如何處理任何接收到的對於該封包之回應之其他資訊。如此之資訊
係可以在本質上大致上係傳統的,且接收器模組208係不需要知道是否一個特定封包係藉由合併請求而被產生,除了回應所接收之資料的不同子集合被繞接至不同的請求核心之外。
於步驟712中,傳送控制邏輯430係自讀取佇列406中移除包含於封包內的所有請求。於一個實施例中,上述之合併暫存器值係被使用於決定哪些請求係包含於該封包之內。
於步驟714中,傳送控制邏輯430係發訊給合併邏輯426通知一個封包係已經被傳送。為了回應此資訊,合併邏輯426係能夠更新目前的位址範圍,以反映一個不同的請求現在為最舊的請求,如上文所述。於步驟716中,傳送控制邏輯430係重置計時器428。接著方法700係返回步驟702,以用於下一個循環。
應瞭解的是,於此所述之合併及傳送方法係為例示性的,且變化及修改係可能的。敘述為循序的步驟係可以平行執行,步驟之次序係可以改變,且步驟係可以被修改或合併。舉例而言,主動視窗係可以具有任何大小(2個請求或更多個請求),且係可以橫越任何次數(一次,二次,等等)。於某些實施例中,假如一個最大的封包大小或合併請求的最大數量係達到,則視窗之橫越係中斷。於某些實施例中,某些位址範圍係可能不被允許;舉例而言,假如允許的酬載大小係為32、64及128個位元組,則一個32位元組的請求及一個64位元組的請求係不能被合併產生一個96位元組的酬載。於此所述之方法係被修改成解決任何如此之限制。
此外,傳送條件係可以與上述之條件不同。舉例而言,於此所述之計時器係每當一個封包被傳送時重置,且因此,一個給定請求於該佇列內等待的循環數量係一部分根據是否其他封包被正被傳送而定。於一個替代實施例中,一個分離的計時器(例如,一個計數器)係被使用於每一個請求,且當其之計時器時間終了時,一個請求係被傳送,而不論其他活動為何。更明確言之,傳送條件之任何數量及組合係可以由該傳送控制邏輯所測試。於某些實施例中,自某些核心而來的請求係可以被傳送而不需要等待。舉例而言,假如一個核心係設計作為高的優先順序,則自該客戶而來的一個請求的接收係可以被視為一個傳送條件,且封包形成邏輯係可以被建構成偵測如此之請求且傳送該請求作為一個封包,而不論是否其他封包係於該佇列中等待。於此所述之方法係可以被實施成結合讀取請求及/或結合寫入請求。如上文所注意到,不同的邏輯係可以被使用於控制讀取請求之結合及寫入請求之結合。
為了進一步顯示本發明之一個實施例之操作,第8圖係為用於可以被傳送器模組206(第2圖)接收及根據上述之方法處理之讀取請求的序列之處理的範例。於第8圖中,行802係辨識循環(為了方便起見,編號為1-8)。行804係顯示在接收任何新的請求之後,在每一個循環期間主動視窗內請求的位址範圍。行806係指示哪一個傳送條件(假如有的話)係發生於每一個循環。為了此範例之目的,該些傳送條件係為:“計時器”,假如該計時器係到達計數3,則其係時間終了;“視窗滿的”,當這些請求係於該視窗內
(Mw=3)時,其係發生;及“最大的合併”,當兩個可合併的請求係出現於該視窗中(MR=2)時,其係發生。行808係指示在該循環期間被傳送之封包(假如有的話)的位址範圍。
於循環1期間,一個具有目標位址範圍〔A0,A1)之第一個請求811係被接收,且進入主動視窗之中。該計時器係起始於一個0的起始值。無傳送條件發生,所以無封包被傳送。於循環2及3期間,無請求被接收,且第一個請求811係於該主動視窗之中等待。該計時器係每一循環增加1。
於循環4期間,一個具有目標位址範圍〔A2,A3)之第二個請求812係被接收,且進入主動視窗之中。該計時器係達到一個計數3且時間終了,因此一個封包821係被傳送。如上文所述,該封包係對應於該視窗內最舊的請求(請求811);因為〔A0,A1)及〔A2,A3)係非鄰接的範圍,所以請求812係不與請求811合併,且封包821係具有目標位址範圍〔A0,A1)。因此一個封包被傳送,所以該計時器係重置。
於循環5期間,一個具有目標位址範圍〔A5,A6)之第三個請求813係被接收,且進入主動視窗之中。無傳送條件發生,所以無封包被傳送。
於循環6期間,一個具有目標位址範圍〔A3,A4)之第四個請求814係被接收,且進入主動視窗之中。因為該視窗係現在為滿的,所以一個傳送條件係發生,且一個封包822係被傳送。於此情況下,最舊的請求係為請求812,且請求814係與請求812合併。因此,封包822係具有目標位址範圍〔A2,A4)。請求8
13係不被合併,且繼續保存於該視窗之中。
於循環7時,一個具有目標位址範圍〔A6,A7)之第五個請求815係被接收,且進入主動視窗之中。因為請求815係能夠與請求813合併,所以一個“最大的合併”傳送條件係發生,且一個封包823係被傳送。由於合併,封包823係具有目標位址範圍〔A5,A7)。
於循環8時,一個具有目標位址範圍〔A7,A8)之第六個請求816係被接收,且進入主動視窗之中。此時,請求816係為該視窗內唯一的請求,且無傳送條件發生,所以無封包被傳送。此方法係能夠以此方式無限地繼續。
應瞭解的是,於此所述之事件次序及傳送條件係為例示性的,且變化及修改係可能的。不同的傳送條件係可以被定義,且不同的規則係可以被使用於決定是否請求係能夠被合併。
於第8圖所示之範例中,合併係減少在匯流排上傳送之封包之數量,由5個(請求之數量)減少為3個。更整體而言,藉由合併請求能夠被增加之頻寬係一部分根據特定傳送條件及實施之合併規則而定。其亦一部分根據由許多不同的核心或匯流排單元之其他客戶所產生之請求傾向於具有鄰接的目標位址範圍之程度而定,其係根據由該些客戶所實施之操作之形式而定。如上文所注意到,只要合併的封包係小於該合併自其產生之兩個或更多個封包之組合大小,則係達成頻寬上至少一些減少。再者,在複數個請求合併成一個封包之下,
回應將相當可能以一個封包送回而非複數個封包,藉此減少返回路徑上頻寬使用。
此外,封包合併係能夠提供其他優點。舉例而言,於某些實施例中,當驅動電路418(第4圖)係不正在傳送封包時,藉由將驅動電路418置放於一個低功率狀態而減少功率消耗;因此,減少由驅動電路418所傳送之封包數量係能夠減少功率消耗。作為另一個範例,於匯流排介面單元204(第2圖)係使用標籤以追蹤一個回應係尚未被接收之請求封包之下,合併請求成為一個較少數量之封包係能夠減少需要被追蹤之標籤的數量。
雖然本發明係已經針對特定實施例予以敘述,熟習本項技術者將體認,許多修改係可能的。舉例而言,結合請求係不受限於快速周邊裝置互連(PCI-E)匯流排協定;於此所述之技術係可以調用於任何匯流排,裝置係透過該匯流排使用封包傳送讀取及/或寫入請求。本發明亦能夠在不同的電腦系統係透過一個網路藉由交換封包而通訊之下,被應用於不同的電腦系統(包含伺服器及客戶系統,傳送及/或接收資料之手持或行動裝置,等等)之間之通訊。
於某些實施例中,合併係能夠根據匯流排活動之水準而被致能或禁能。舉例而言,第4圖之傳送控制邏輯424及/或430係可以建構成使得當匯流排活動係低於一臨限準位時,每當一個請求被接收時,一個傳送條件係產生。此係減少藉由等待決定是否一個第一個請求係能夠與一個後續請求合併所導入之延遲。在匯流排活動係高於該臨限值之下,其他傳送條件係可以被測
試,例如,如上文所述。臨限匯流排活動水準係可以有利地被設定,使得當匯流排係足夠忙碌使得透過該匯流排傳送請求至匯流排及/或接收對於請求之回應的某一延遲係可以被預期發生時,合併係被致能。
再者,雖然上述之實施例係關於繪圖處理單元,本發明係不受限於繪圖處理單元或受限於積體化的處理器。具有管理自複數個客戶而來的請求之匯流排介面之裝置係能夠包含適合的構件以管理請求。舉例而言,第1圖之快速周邊裝置互連開關116係亦可以建構成合併自與其連接之裝置而來的請求。
因此雖然本發明係已經針對特定實施例而予以敘述,應體認的是,本發明係意欲涵蓋所有在下列申請專利範圍之範疇內的修改及均等物。
100‧‧‧電腦系統
102‧‧‧中央處理單元
105‧‧‧記憶體橋接器
104‧‧‧系統記憶體
106‧‧‧匯流排
107‧‧‧輸入/輸出橋接器
108‧‧‧使用者輸入裝置
110‧‧‧顯示裝置
112‧‧‧繪圖子系統
113‧‧‧匯流排
114‧‧‧系統磁碟
116‧‧‧開關
118‧‧‧網路適應器
120,121‧‧‧附加卡
122‧‧‧繪圖處理單元
124‧‧‧繪圖記憶體
202(1)至202(N)‧‧‧執行核心
204‧‧‧匯流排介面單元
206‧‧‧傳送器模組
208‧‧‧接收器模組
113a‧‧‧實際路徑
113b‧‧‧實際路徑
302‧‧‧封包
304‧‧‧標頭部分
306‧‧‧酬載部分
308‧‧‧封包
310‧‧‧標頭部分
312‧‧‧酬載部分
314‧‧‧封包
316‧‧‧標頭部分
318‧‧‧酬載部分
402‧‧‧輸入仲裁器
404‧‧‧寫入佇列
406‧‧‧讀取佇列
408‧‧‧寫入結合器
412‧‧‧讀取結合器
416‧‧‧輸出仲裁器
418‧‧‧驅動電路
420‧‧‧合併邏輯
422‧‧‧計時器
424‧‧‧傳送控制邏輯
426‧‧‧合併邏輯
428‧‧‧計時器
430‧‧‧傳送控制邏輯
802‧‧‧行
804‧‧‧行
806‧‧‧行
808‧‧‧行
811‧‧‧請求
812‧‧‧請求
821‧‧‧封包
813‧‧‧請求
814‧‧‧請求
822‧‧‧封包
815‧‧‧請求
823‧‧‧封包
816‧‧‧請求
第1圖係為一個根據本發明之一個實施例的電腦系統之方塊圖;第2圖係為一個根據本發明之一個實施例的繪圖處理單元之方塊圖;第3圖係顯示一個根據本發明之一個實施例的用於結合封包之操作原理;第4圖係為一個根據本發明之一個實施例的結合及傳送封包之傳送器模組之方塊圖;第5圖係為一個顯示根據本發明之一個實施例的可以實施於一個合併邏輯方塊中之控制邏輯程序的流程圖;第6圖係為一個根據本發明之一個實施例的用於
合併額外的請求之程序步驟的流程圖;第7圖係為一個顯示根據本發明之一個實施例的可以實施於一個傳送控制邏輯方塊中之控制邏輯程序的流程圖;及第8圖係為一個根據本發明之一個實施例的用於一個請求序列之處理之範例。
206‧‧‧傳送器模組
113a‧‧‧實際路徑
402‧‧‧輸入仲裁器
404‧‧‧寫入佇列
406‧‧‧讀取佇列
408‧‧‧寫入結合器
412‧‧‧讀取結合器
416‧‧‧輸出仲裁器
418‧‧‧驅動電路
420‧‧‧合併邏輯
422‧‧‧計時器
424‧‧‧傳送控制邏輯
426‧‧‧合併邏輯
428‧‧‧計時器
430‧‧‧傳送控制邏輯
Claims (23)
- 一種在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之匯流排介面裝置,該裝置係包含:一個佇列,其係建構成儲存自複數個客戶而來的複數個資料傳送請求,每一個資料傳送請求係指定一個目標位址範圍;一個結合器邏輯,其係建構成自該佇列內至少一個資料傳送請求形成一個封包,在被結合之兩個或更多個資料傳送請求所指定的個別的目標位址範圍係可以被合併之情況下,該結合器邏輯係進一步建構成結合該佇列內兩個或更多個資料傳送請求成為一個封包;及一個輸出邏輯,其係建構成驅動該些封包至該匯流排之中;其中,由兩個或更多個資料傳送請求所指定之個別的目標位址範圍在個別的目標位址範圍係部分重疊之情況下,是可合併的。
- 如申請專利範圍第1項之匯流排介面裝置,其中,由兩個或更多個資料傳送請求所指定之個別的目標位址範圍,在個別的目標位址範圍係鄰接的情況下,也是可合併的。
- 如申請專利範圍第2項之匯流排介面裝置,其中,每一個資料傳送請求係進一步指定一個目標裝置,且其中,由兩個或更多個資料傳送請求所指定之個別的目標位址範圍,在該兩個或更多個資料傳送請求之每一個係指定相同的目標裝置且個別的目標位址範圍係鄰接的情況下,也是可合併的。
- 如申請專利範圍第1項之匯流排介面裝置,其中,該結合器邏輯係包含:合併邏輯,其係建構成偵測是否該佇列內任何資料傳送請求係可與該佇列內最舊的一個資料傳送請求合併,且至少一部分根據該偵測而產生狀態資訊;及傳送控制邏輯,其係建構成決定是否於一個目前的週期期間傳送一個封包或等待一個週期傳送一個封包,其中,是否傳送一個封包之決定係至少一部分根據由該合併邏輯所產生之狀態資訊。
- 如申請專利範圍第4項之匯流排介面裝置,其中,該傳送控制邏輯係進一步建構成使得是否傳送一個封包之決定係至少一部分根據於該佇列內資料傳送請求之數量而定。
- 如申請專利範圍第4項之匯流排介面裝置,其中,該傳送控制邏輯係進一步建構成使得是否傳送一個封包之決定係至少一部分根據自傳送前一個封包所經過的時間而定。
- 如申請專利範圍第4項之匯流排介面裝置,其中,該傳送控制邏輯係進一步建構成使得是否傳送一個封包之決定係至少一部分根據自接收該佇列內最舊的資料傳送請求所經過的時間而定。
- 如申請專利範圍第4項之匯流排介面裝置,其中,該傳送控制邏輯係進一步建構成使得是否傳送一個封包之決定係至少一部分根據該佇列內可與該佇列內最舊的 資料傳送請求合併之資料傳送請求的數量而定。
- 如申請專利範圍第1項之匯流排介面裝置,其中,該些客戶係一處理器之處理核心。
- 如申請專利範圍第1項之匯流排介面裝置,其中,該些客戶之每一個係為一個分離的構件,且該匯流排介面裝置係以一個專用區域匯流排線建構,以用於連接至每一個客戶。
- 如申請專利範圍第1項之匯流排介面裝置,其中,該些資料傳送請求係以一個適合於在該匯流排上傳送之封包格式被該匯流排介面裝置所接收。
- 如申請專利範圍第1項之匯流排介面裝置,其中,該些資料傳送請求係以與一個適合於在該匯流排上傳送之封包格式不同的內部格式所接收。
- 如申請專利範圍第1項之匯流排介面裝置,其中,該些資料傳送請求之每一個係為一個讀取請求。
- 如申請專利範圍第1項之匯流排介面裝置,其中,該些資料傳送請求之每一個係為一個寫入請求。
- 如申請專利範圍第1項之匯流排介面裝置,其中,該匯流排係為一個快速周邊裝置互連(PCI-E)匯流排。
- 一種在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法,其係包含:接收一個指定一個第一位址範圍之第一資料傳送請 求;接收至少一個後續資料傳送請求,每一個後續傳送請求係指定一個個別的目標位址範圍;決定是否該第一目標位址範圍係可與一或多個後續資料傳送請求之目標位址範圍合併;形成一個用於在該匯流排上傳送之封包,其中,於該第一目標位址範圍係可與由一或多個後續資料傳送請求所指定之目標位址範圍合併之情況下,該封包係自該第一請求及該一或多個後續資料傳送請求形成,且其中,於該第一目標位址範圍係不可與任何後續資料傳送請求之目標位址範圍合併之情況下,該封包係自該第一請求形成;及驅動該封包至該匯流排之中;其中,由兩個或更多個資料傳送請求所指定之個別的目標位址範圍在個別的目標位址範圍係部分重疊之情況下,是可合併的。
- 如申請專利範圍第16項之方法,其中,在該第一目標位址範圍及該第二目標位址範圍係鄰接的情況下,該第一目標位址範圍也是可與一個後續資料傳送請求之一個第二目標位址範圍合併。
- 如申請專利範圍第17項之方法,其中,該第一及後續資料傳送請求之每一個係進一步指定一個目標裝置,且其中,在該第一目標位址範圍及該第二目標位址範圍係指定相同的目標裝置且該第一目標位址範圍及該第二目標位址範圍係鄰接的情況下,該第一目標位址範圍也 是可與一個後續資料傳送請求之一個第二目標位址範圍合併。
- 如申請專利範圍第16項之方法,其中,形成封包之動作係被實施,以回應於一個至少一部分根據已經被接收之資料傳送請求之數量之傳送條件。
- 如申請專利範圍第16項之方法,其中,形成封包之動作係被實施,以回應於一個至少一部分根據自傳送前一個封包所經過的時間之傳送條件。
- 如申請專利範圍第16項之方法,其中,形成封包之動作係被實施,以回應於一個至少一部分根據自接收第一資料傳送請求所經過的時間之傳送條件。
- 如申請專利範圍第16項之方法,其中,形成封包之動作係被實施,以回應於一個至少一部分根據可與第一資料傳送請求合併之後續資料傳送請求之數量之傳送條件。
- 一種在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之處理器,其係包含:複數個處理核心,每一個處理核心係建構成產生資料傳送請求;及一個匯流排介面單元,其係建構成接收自該些處理核心而來的資料傳送請求及傳送該些資料傳送請求作為一個匯流排上的封包,該匯流排介面單元係包含:一個佇列,其係建構成儲存自該些處理核心而來的資料傳送請求,每一個資料傳送請求係指定一個目標位 址範圍;結合器邏輯,其係建構成自該佇列內至少一個資料傳送請求形成一個封包,在被結合的兩個或更多個資料傳送請求所指定的個別的目標位址範圍係可以被合併之情況下,該結合器邏輯進一步建構成結合該佇列內兩個或更多個資料傳送請求成為一個封包;及輸出邏輯,其係建構成驅動該些封包至該匯流排之中;其中,由兩個或更多個資料傳送請求所指定之個別的目標位址範圍在個別的目標位址範圍係部分重疊之情況下,是可合併的。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17926605A | 2005-07-11 | 2005-07-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200710671A TW200710671A (en) | 2007-03-16 |
| TWI416334B true TWI416334B (zh) | 2013-11-21 |
Family
ID=37191360
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW095125210A TWI416334B (zh) | 2005-07-11 | 2006-07-11 | 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US7526593B2 (zh) |
| EP (1) | EP1750202A1 (zh) |
| CN (1) | CN100524266C (zh) |
| TW (1) | TWI416334B (zh) |
Families Citing this family (70)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8116889B2 (en) * | 2002-06-27 | 2012-02-14 | Openpeak Inc. | Method, system, and computer program product for managing controlled residential or non-residential environments |
| US7933945B2 (en) * | 2002-06-27 | 2011-04-26 | Openpeak Inc. | Method, system, and computer program product for managing controlled residential or non-residential environments |
| US7340548B2 (en) * | 2003-12-17 | 2008-03-04 | Microsoft Corporation | On-chip bus |
| US7624221B1 (en) * | 2005-08-01 | 2009-11-24 | Nvidia Corporation | Control device for data stream optimizations in a link interface |
| US20080126641A1 (en) * | 2006-08-31 | 2008-05-29 | Irish John D | Methods and Apparatus for Combining Commands Prior to Issuing the Commands on a Bus |
| US20080086594A1 (en) * | 2006-10-10 | 2008-04-10 | P.A. Semi, Inc. | Uncacheable load merging |
| CN101043510B (zh) * | 2007-04-29 | 2012-03-07 | 中兴通讯股份有限公司 | Pci-e总线分布式系统单板内及单板间数据通讯方法 |
| TW200844841A (en) * | 2007-05-10 | 2008-11-16 | Realtek Semiconductor Corp | Method for expediting data access of universal serial bus stoarage device |
| US8458282B2 (en) * | 2007-06-26 | 2013-06-04 | International Business Machines Corporation | Extended write combining using a write continuation hint flag |
| TWI346289B (en) * | 2007-12-19 | 2011-08-01 | Ralink Technology Corp | Peripheral complying with sdio standard and method for managing sdio command |
| CN101320361B (zh) * | 2008-02-27 | 2011-12-07 | 中兴通讯股份有限公司 | 一种多cpu通讯方法及系统 |
| EP2148307B1 (en) * | 2008-07-21 | 2011-09-14 | Somfy SAS | Method for controlling a group of wirelessly controlled appliances |
| US8738812B2 (en) * | 2009-05-27 | 2014-05-27 | Plx Technology, Inc. | Transfer of commands and storage data to a data storage device |
| GB2474446A (en) * | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
| CN102088398B (zh) * | 2009-12-08 | 2013-03-20 | 华为技术有限公司 | Web并发事件处理方法及装置 |
| US8295305B2 (en) * | 2009-12-30 | 2012-10-23 | International Business Machines Corporation | Dual scheduling of work from multiple sources to multiple sinks using source and sink attributes to achieve fairness and processing efficiency |
| US8532129B2 (en) * | 2009-12-30 | 2013-09-10 | International Business Machines Corporation | Assigning work from multiple sources to multiple sinks given assignment constraints |
| US8391305B2 (en) * | 2009-12-30 | 2013-03-05 | International Business Machines Corporation | Assignment constraint matrix for assigning work from multiple sources to multiple sinks |
| CN102207919A (zh) * | 2010-03-30 | 2011-10-05 | 国际商业机器公司 | 加速数据传输的处理单元、芯片、计算设备和方法 |
| EP2437428A1 (en) * | 2010-10-01 | 2012-04-04 | Koninklijke Philips Electronics N.V. | Device and method for load balancing for data packet transmissions in wireless networks |
| US8639861B1 (en) | 2011-03-31 | 2014-01-28 | Emc Corporation | Pseudo writing system and method |
| US9117032B2 (en) * | 2011-06-01 | 2015-08-25 | International Business Machines Corporation | Facilitating routing by selectively aggregating contiguous data units |
| US9134909B2 (en) | 2011-08-30 | 2015-09-15 | International Business Machines Corporation | Multiple I/O request processing in a storage system |
| US8879571B2 (en) * | 2011-11-01 | 2014-11-04 | Hewlett-Packard Development Company, L.P. | Delays based on packet sizes |
| TWI447646B (zh) * | 2011-11-18 | 2014-08-01 | Asmedia Technology Inc | 資料傳輸裝置及多個指令的整合方法 |
| CN102567278A (zh) * | 2011-12-29 | 2012-07-11 | 中国科学院计算技术研究所 | 一种片上多核数据传输方法和装置 |
| US9268731B2 (en) * | 2012-01-06 | 2016-02-23 | Intel Corporation | Controlling devices via advance notice signaling |
| ES2660154T3 (es) * | 2012-03-23 | 2018-03-21 | Itron Global Sarl | Conversión de paquetes de comunicación |
| US8902901B2 (en) | 2012-03-23 | 2014-12-02 | Itron, Inc. | Communication packet conversion |
| US9712453B1 (en) * | 2012-03-26 | 2017-07-18 | Amazon Technologies, Inc. | Adaptive throttling for shared resources |
| US9449359B2 (en) * | 2012-09-13 | 2016-09-20 | Ati Technologies Ulc | Rendering settings in a multi-graphics processing unit system |
| US9489307B2 (en) * | 2012-10-24 | 2016-11-08 | Texas Instruments Incorporated | Multi domain bridge with auto snoop response |
| US9158691B2 (en) | 2012-12-14 | 2015-10-13 | Apple Inc. | Cross dependency checking logic |
| US9343177B2 (en) | 2013-02-01 | 2016-05-17 | Apple Inc. | Accessing control registers over a data bus |
| KR20150093004A (ko) * | 2014-02-06 | 2015-08-17 | 삼성전자주식회사 | 불휘발성 저장 장치의 동작 방법 및 불휘발성 저장 장치를 액세스하는 컴퓨팅 장치의 동작 방법 |
| GB2525613A (en) * | 2014-04-29 | 2015-11-04 | Ibm | Reduction of processing duplicates of queued requests |
| CN105306421A (zh) * | 2014-06-30 | 2016-02-03 | 中兴通讯股份有限公司 | 一种基于pci-e接口的信号处理方法及信号处理装置 |
| KR102173089B1 (ko) * | 2014-08-08 | 2020-11-04 | 삼성전자주식회사 | 인터페이스 회로 및 그것의 패킷 전송 방법 |
| KR102287402B1 (ko) * | 2015-03-23 | 2021-08-06 | 삼성전자주식회사 | 버스 인터페이스 장치, 이를 포함하는 반도체 집적회로 장치 및 상기 장치의 동작 방법 |
| US10157133B2 (en) | 2015-12-10 | 2018-12-18 | Arm Limited | Snoop filter for cache coherency in a data processing system |
| US9900260B2 (en) | 2015-12-10 | 2018-02-20 | Arm Limited | Efficient support for variable width data channels in an interconnect network |
| US9990292B2 (en) | 2016-06-29 | 2018-06-05 | Arm Limited | Progressive fine to coarse grain snoop filter |
| US9892066B1 (en) | 2016-10-31 | 2018-02-13 | International Business Machines Corporation | Dynamically adjusting read data return sizes based on interconnect bus utilization |
| US9684461B1 (en) | 2016-10-31 | 2017-06-20 | International Business Machines Corporation | Dynamically adjusting read data return sizes based on memory interface bus utilization |
| US10270704B2 (en) | 2016-11-10 | 2019-04-23 | Microsoft Technology Licensing, Llc. | Throttling output with ongoing input |
| US10474620B2 (en) * | 2017-01-03 | 2019-11-12 | Dell Products, L.P. | System and method for improving peripheral component interface express bus performance in an information handling system |
| US10042766B1 (en) | 2017-02-02 | 2018-08-07 | Arm Limited | Data processing apparatus with snoop request address alignment and snoop response time alignment |
| US10482055B2 (en) | 2017-05-10 | 2019-11-19 | Qualcomm Incorporated | Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine |
| US10261699B2 (en) * | 2017-05-16 | 2019-04-16 | Dell Products L.P. | Systems and methods for hardware-based RAID acceleration |
| KR102429904B1 (ko) | 2017-09-08 | 2022-08-05 | 삼성전자주식회사 | PCIe P2P 접속의 밴드위스를 최대화할 수 있는 방법 및 시스템 |
| KR20190031683A (ko) * | 2017-09-18 | 2019-03-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| CN107666515B (zh) * | 2017-09-20 | 2019-07-09 | Oppo广东移动通信有限公司 | 图像处理方法和装置、计算机设备、计算机可读存储介质 |
| US20190124180A1 (en) * | 2017-10-20 | 2019-04-25 | Hewlett Packard Enterprise Development Lp | Packet compression and decompression |
| US10712949B2 (en) | 2017-11-09 | 2020-07-14 | Western Digital Technologies, Inc. | Adaptive device quality of service by host memory buffer range |
| US10496457B2 (en) * | 2018-04-02 | 2019-12-03 | Micron Technology, Inc. | Grouping requests to reduce inter-process communication in memory systems |
| KR102608825B1 (ko) * | 2018-04-26 | 2023-12-04 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
| CN110020383B (zh) * | 2018-06-01 | 2023-04-11 | 创新先进技术有限公司 | 一种页面数据请求处理方法及装置 |
| US20200059437A1 (en) * | 2018-08-20 | 2020-02-20 | Advanced Micro Devices, Inc. | Link layer data packing and packet flow control scheme |
| US10866917B2 (en) * | 2018-12-03 | 2020-12-15 | Ati Technologies Ulc | Inter device data exchange via external bus by utilizing communication port |
| US20200192842A1 (en) * | 2018-12-14 | 2020-06-18 | Ati Technologies Ulc | Memory request chaining on bus |
| CN112395234A (zh) * | 2019-08-16 | 2021-02-23 | 阿里巴巴集团控股有限公司 | 一种请求处理方法及装置 |
| CN112380148B (zh) * | 2020-11-30 | 2022-10-25 | 海光信息技术股份有限公司 | 数据传输方法和数据传输装置 |
| JP7516300B2 (ja) * | 2021-03-17 | 2024-07-16 | キオクシア株式会社 | メモリシステム |
| CN113485950A (zh) * | 2021-06-22 | 2021-10-08 | 上海天数智芯半导体有限公司 | 一种合并发送PCIe存储器写请求的系统及方法 |
| CN113535172B (zh) * | 2021-07-23 | 2024-03-19 | 上海米哈游璃月科技有限公司 | 一种信息查找方法、装置、设备及存储介质 |
| US12470518B2 (en) * | 2021-08-23 | 2025-11-11 | Nvidia Corporation | Physically distributed control plane firewalls with unified software view |
| US20240061703A1 (en) * | 2022-08-17 | 2024-02-22 | Mediatek Inc. | Transaction merging method and transaction merging system |
| EP4629714A4 (en) * | 2022-12-01 | 2026-01-14 | Beijing Xiaomi Mobile Software Co Ltd | METHOD AND APPARATUS FOR INFORMATION PROCESSING, COMMUNICATION DEVICE AND STORAGE MEDIA |
| WO2025059873A1 (zh) * | 2023-09-19 | 2025-03-27 | 芯原微电子(上海)股份有限公司 | 请求合并方法、单元及芯片 |
| CN120067035B (zh) * | 2025-04-25 | 2025-10-03 | 摩尔线程智能科技(北京)股份有限公司 | 片间互联装置及电子设备 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6405276B1 (en) * | 1998-12-10 | 2002-06-11 | International Business Machines Corporation | Selectively flushing buffered transactions in a bus bridge |
| TW502175B (en) * | 2000-11-24 | 2002-09-11 | Mellanox Technologies Ltd | Parallel bus communications over a packet-switching fabric |
| TW510994B (en) * | 1997-10-24 | 2002-11-21 | Sony Electronics Inc | Method of and apparatus for detecting direction of reception of bus packets and controlling direction of transmission of bus packets within an IEEE 1394 serial bus node |
| TW515181B (en) * | 1999-11-24 | 2002-12-21 | Intel Corp | Immediate cut-off protocol and interface for a packet-based bus connecting processors |
| US20030147411A1 (en) * | 2002-02-06 | 2003-08-07 | Goosman Todd Foster | Method and apparatus for concatenating and piggybacking data packets |
| US20040233933A1 (en) * | 2003-05-23 | 2004-11-25 | Munguia Peter R. | Packet combining on PCI express |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5918072A (en) | 1995-09-18 | 1999-06-29 | Opti Inc. | System for controlling variable length PCI burst data using a dummy final data phase and adjusting the burst length during transaction |
| US6304550B1 (en) | 1996-01-17 | 2001-10-16 | Alcatel Usa, Inc. | System and method for broadcast control of a data transmission system |
| US7054935B2 (en) | 1998-02-10 | 2006-05-30 | Savvis Communications Corporation | Internet content delivery network |
| US6185598B1 (en) | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
| JP2000059435A (ja) * | 1998-08-05 | 2000-02-25 | Nippon Telegr & Teleph Corp <Ntt> | 誤り制御方法および装置 |
| US6101568A (en) * | 1998-08-25 | 2000-08-08 | Stmicroelectronics, Inc. | Bus interface unit having dual purpose transaction buffer |
| US6804251B1 (en) | 1998-11-12 | 2004-10-12 | Broadcom Corporation | System and method for multiplexing data from multiple sources |
| US6462998B1 (en) | 1999-02-13 | 2002-10-08 | Integrated Device Technology, Inc. | Programmable and electrically configurable latch timing circuit |
| US6721334B1 (en) * | 1999-02-18 | 2004-04-13 | 3Com Corporation | Method and apparatus for packet aggregation in packet-based network |
| DE19919177A1 (de) | 1999-04-28 | 2000-11-02 | Philips Corp Intellectual Pty | Netzwerk mit mehreren Netzwerk-Clustern zur drahtlosen Übertragung von Paketen |
| US6499077B1 (en) | 1999-12-30 | 2002-12-24 | Intel Corporation | Bus interface unit for reflecting state information for a transfer request to a requesting device |
| US6546447B1 (en) * | 2000-03-30 | 2003-04-08 | International Business Machines Corporation | Method and apparatus for dynamic PCI combining for PCI bridges |
| US7079501B2 (en) | 2001-01-31 | 2006-07-18 | International Business Machines Corporation | Method and system for efficiently delivering content to multiple requesters |
| IL141855A0 (en) * | 2001-03-07 | 2002-03-10 | Onetiercommunications Inc | A method and apparatus for providing an improved quality of service for data transfer over the internet |
| US7170893B2 (en) * | 2001-06-15 | 2007-01-30 | Lucent Technologies Inc. | Technique for selecting the number of packets to be concatenated |
| US20040003164A1 (en) * | 2002-06-27 | 2004-01-01 | Patrick Boily | PCI bridge and data transfer methods |
| US7000060B2 (en) | 2002-09-27 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for ordering interconnect transactions in a computer system |
| US7426219B2 (en) * | 2003-02-26 | 2008-09-16 | Avaya Inc. | Method and apparatus for reducing packet data mixer delay |
| US7133943B2 (en) | 2003-02-26 | 2006-11-07 | International Business Machines Corporation | Method and apparatus for implementing receive queue for packet-based communications |
| US7000041B2 (en) * | 2003-03-31 | 2006-02-14 | Intel Corporation | Method and an apparatus to efficiently handle read completions that satisfy a read request |
| US20040252721A1 (en) | 2003-06-16 | 2004-12-16 | International Business Machines Corporation | Bundled internet protocol packets |
| US7391769B2 (en) * | 2003-06-27 | 2008-06-24 | Lucent Technologies Inc. | Packet aggregation for real time services on packet data networks |
| EP1511231A1 (en) * | 2003-08-28 | 2005-03-02 | Siemens Aktiengesellschaft | A method for transmission of data packets through a network |
| US7639713B2 (en) * | 2004-01-21 | 2009-12-29 | Emc Corporation | Database block network attached storage packet joining |
| US7974191B2 (en) * | 2004-03-10 | 2011-07-05 | Alcatel-Lucent Usa Inc. | Method, apparatus and system for the synchronized combining of packet data |
| US7447233B2 (en) * | 2004-09-29 | 2008-11-04 | Intel Corporation | Packet aggregation protocol for advanced switching |
-
2006
- 2006-07-11 TW TW095125210A patent/TWI416334B/zh active
- 2006-07-11 CN CNB2006101534618A patent/CN100524266C/zh not_active Expired - Fee Related
- 2006-07-11 EP EP06116988A patent/EP1750202A1/en not_active Withdrawn
- 2006-10-03 US US11/538,399 patent/US7526593B2/en not_active Expired - Lifetime
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW510994B (en) * | 1997-10-24 | 2002-11-21 | Sony Electronics Inc | Method of and apparatus for detecting direction of reception of bus packets and controlling direction of transmission of bus packets within an IEEE 1394 serial bus node |
| US6405276B1 (en) * | 1998-12-10 | 2002-06-11 | International Business Machines Corporation | Selectively flushing buffered transactions in a bus bridge |
| TW515181B (en) * | 1999-11-24 | 2002-12-21 | Intel Corp | Immediate cut-off protocol and interface for a packet-based bus connecting processors |
| TW502175B (en) * | 2000-11-24 | 2002-09-11 | Mellanox Technologies Ltd | Parallel bus communications over a packet-switching fabric |
| US20030147411A1 (en) * | 2002-02-06 | 2003-08-07 | Goosman Todd Foster | Method and apparatus for concatenating and piggybacking data packets |
| US20040233933A1 (en) * | 2003-05-23 | 2004-11-25 | Munguia Peter R. | Packet combining on PCI express |
Also Published As
| Publication number | Publication date |
|---|---|
| US7526593B2 (en) | 2009-04-28 |
| CN1904868A (zh) | 2007-01-31 |
| CN100524266C (zh) | 2009-08-05 |
| TW200710671A (en) | 2007-03-16 |
| US20070079044A1 (en) | 2007-04-05 |
| EP1750202A1 (en) | 2007-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI416334B (zh) | 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器 | |
| US12547557B2 (en) | System and method for facilitating efficient event notification management for a network interface controller (NIC) | |
| US8549204B2 (en) | Method and apparatus for scheduling transactions in a multi-speed bus environment | |
| US7827325B2 (en) | Device, system, and method of speculative packet transmission | |
| KR960012686B1 (ko) | 통신 시스템용 스테이션 및 그 통신방법 | |
| CN106257434B (zh) | 一种基于增强型外设互连协议总线的数据传输方法及装置 | |
| US9774651B2 (en) | Method and apparatus for rapid data distribution | |
| EP2741456A1 (en) | Method, device, system and storage medium for achieving message transmission of pcie switch network | |
| JP2007316859A (ja) | マルチグラフィックスプロセッサシステム、グラフィックスプロセッサおよびデータ転送方法 | |
| TW200814672A (en) | Method and system for a user space TCP offload engine (TOE) | |
| US8473658B2 (en) | Input output bridging | |
| US8230137B2 (en) | Network processor, reception controller and data reception processing method performing direct memory access transfer | |
| CN116414758B (zh) | 面向高速可扩展互联裸芯与PCIe主设备的并行式转换接口 | |
| US20110029706A1 (en) | Electronic device and method for controlling an electronic device | |
| CN115550606A (zh) | 一种基于网络协议的图像采集系统及方法 | |
| WO2022188807A1 (zh) | 数据传输系统及相关设备 | |
| KR20140125311A (ko) | 멀티 코어를 가진 네트워크 인터페이스 카드를 이용한 트래픽 처리 장치 및 방법 | |
| US10452579B2 (en) | Managing input/output core processing via two different bus protocols using remote direct memory access (RDMA) off-loading processing system | |
| CN114157401A (zh) | 一种支持长短两种报文格式的重传缓冲装置 | |
| US20120246263A1 (en) | Data transfer apparatus, data transfer method, and information processing apparatus | |
| CN121478691A (zh) | 一种dma控制器、控制方法及桥接芯片 | |
| JP2004054419A (ja) | ノード間トランザクション処理装置 | |
| JP2008250496A (ja) | エンジン・プロセッサ連携システム及び連携方法 | |
| CN111666106A (zh) | 来自多个远程芯片的数据卸载加速 | |
| GB2488680A (en) | A method/architecture for processing requests in a bus architecture that includes at least two master devices an at least one slave device |