TWI536772B - 直接提供資料訊息至協定層之技術 - Google Patents
直接提供資料訊息至協定層之技術 Download PDFInfo
- Publication number
- TWI536772B TWI536772B TW099131697A TW99131697A TWI536772B TW I536772 B TWI536772 B TW I536772B TW 099131697 A TW099131697 A TW 099131697A TW 99131697 A TW99131697 A TW 99131697A TW I536772 B TWI536772 B TW I536772B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- data
- layer
- link layer
- tracker
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network interface controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明係有關於直接提供資料訊息至協定層之技術。
電腦系統一般由多個半導體及其他耦接在一起的元件形成。例如,典型系統除了可能的一或多個其他可耦接至一母板的處理器以外,還包括一中央處理單元(CPU)。這些處理器又可耦接至其他元件,諸如記憶體控制器、輸入/輸出中樞、其他半導體裝置,及諸如大容量儲存器之系統元件,例如,此係藉由組配在該母板上的互連的方式或藉由其他此類連接進行。
為了在不同元件之間通訊,一通訊協定可被使用。許多此類協定規定不同層體處理通訊任務。在一些協定中,一實體層是實際上沿著一互連發送訊息且接收及處理來自一或多個其他裝置之一相應實體層的訊息的層體。此實體層又可耦接至執行各種諸如錯誤檢測及校正之功能的一鏈結層。該鏈結層又可耦接至一協定層,該協定層接收來自該鏈結層的訊息封包且進一步處理它們以將之安排路由至它們在一半導體元件內的目的位置。通常,該鏈結層會包括一大緩衝器以臨時儲存所有進入的訊息。然而,此緩衝器會大大增加晶粒耗費,還會增加處理進入訊息的複雜度。
依據本發明之一實施例,係特地提出一種裝置,其包含:一鏈結層,其用以接收及轉發一訊息到耦接到該鏈結層之一協定層,且包括用以判定該訊息之一訊息類型之一解碼器,其中如果該訊息是一非資料訊息,則該鏈結層直接將一信用返回提供到該訊息之一發送者;及該協定層,其包括用以儲存自該鏈結層接收到之資料訊息之一共享緩衝器,其中該協定層用以在該資料訊息移出該共享緩衝器時,發出針對一資料訊息之一信用返回,該信用返回將經由該鏈結層發送到該訊息發送者。
第1圖是根據本發明之一實施例的一通訊協定之一部分的一方塊圖。
第2圖是根據本發明之一實施例的一方法之一流程圖。
第3圖是根據本發明之一實施例的一系統之一方塊圖。
在各種實施例中,一通訊協定可提供有不包括任何實質的緩衝電路的一鏈結層。以此方式,進入訊息在該鏈結層所作的處理可最小而直接提供至一協定層作進一步處理。因此,與一大鏈結層緩衝器相比,該協定層內的任一緩衝器的大小可被減小及簡化。
現在參考第1圖,其顯示了根據本發明之一實施例之一分層通訊協定之一部分之一方塊圖。特定地,第1圖顯示了用以處理進入訊息與外播訊息兩者之一通訊協定100之一部分。第1圖中顯示之該部分包括一鏈結層部分及一協定層部分。要理解,針對不同的協定,其它層也可存在,包括一實體層、路由層等。而且,要注意,為了便於說明,第1圖中顯示之該等層之該等部分主要處理輸入通訊,而為了不使所描述之實施例費解,未顯示此等層之主要發送器電路。作為一個範例,第1圖之通訊協定可對應於與根據英特爾快速通道互連(QPI)協定操作之一鏈結聯用之一協定,該英特爾快速通道互連(QPI)協定為點對點互連且在諸如處理器、晶片組等之各種半導體裝置之間提供一多層通訊協定。
如第1圖中所示,進入訊息可能獲接收且提供給一訊息類別解碼器/累加器110。此鏈結層電路之複雜度可為最小且可包括只用於一小段訊息部分之載體,該小段訊息部分例如為若干微片,其中針對一指定通訊協定,一微片可對應於一最小流量控制單位。作為一個範例,微片寬度可以是80個位元,但本發明之範圍不局限於此點。解碼器/累加器110用來確定接收到之訊息之類型且將其引向該協定層中之恰當位置。在一個實施例中,解碼器/累加器110可分析一進入訊息之一標頭或其它原始資料以確定其訊息類別。
對於不包括資料之一接收訊息(即,一非資料訊息),一信用返回可直接提供到也屬於該鏈結層之信用返回計數器115,以使該等信用未經與該協定層有關之延遲而返回到該訊息之啟動器。一般而言,該等計數器115可表示為用於每一訊息類型及虛擬網路(VN)之一計數器,使得該等不同信用類型之該等信用可獲獨立地保持。在一個實施例中,可能有三個虛擬網路─VN0、VN1及VNA。該VN0/VN1虛擬網路實質上是一組虛擬通道,其中該虛擬網路內之每一虛擬通道自身具有獨立緩衝及流量控制信用。在此等虛擬網路內,一指定訊息類別之信用按每一訊息返回。該VNA是一自適應虛擬網路,其作為遍及所有訊息類別之一共享資源緩衝器,這意味著此虛擬網路之該流量控制信用池也可在所有訊息類別之間共享。在此網路內發送之訊息分解為流量控制單位(即微片)且針對此網路返回之信用以微片為間隔。
在不同實施例中可以使用各種訊息類別。在一個特定實施例中,可存在多個訊息類別,其每一個可在該等虛擬網路之一個或多個上傳播。因此,此等虛擬網路將獨立的傳輸通道(即虛擬通道)提供給該協定層以允許共享一實體通道。在此實施例中,該等訊息類別可包括一本地(HOM)訊息類別、一非連貫標準(NCS)訊息類別、一非資料回應(NDR)訊息類別、一資料回應標準(DRS)訊息及一非連貫旁路(NCB)訊息類別。
解碼之後,解碼器/累加器110將該等訊息內容提供到該協定層內之一恰當位置。例如,就資料訊息而言,該等資料酬載可提供到該協定層之一共享資料緩衝器120及該資料命令訊息(例如標頭)可提供到追蹤器之一個,即一遠程代理器追蹤器130或一當地代理器追蹤器140。關於其它未攜帶資料之訊息,該訊息資訊可提供到該等追蹤器之一個或多個。該遠端代理器及該本地代理器追蹤結構為一歸屬代理器(HA)追蹤自一結構(例如互連)接收到之未處理請求。特定地,追蹤器130追蹤由一遠程代理器提出之請求及追蹤器140追蹤由該當地代理器發出之請求。作為一個範例,該遠程代理器可以是將在下面討論之一處理器之一快取代理器,而該當地代理器可以是一晶片組之一快取代理器,其中該晶片組進一步包括也將下面討論之一歸屬代理器。因此,在一個示範實施態樣中,第1圖中顯示之該通訊協定及該等層可有關於一晶片組元件之互連結構之一概觀。
在一個實施例中,遠程代理器追蹤器130針對一遠程代理器經允許在任一指定時間所具有的未處理之對該HA提出之請求之最大數目(MaxRequest[ra])而定大小。對於該結構上之可向HA作出請求之每一遠程代理器,該HA可具有與其有關之一追蹤結構(在第1圖之說明中,遠程代理器追蹤器130可作為一多維陣列實施)。相應地,本地代理器追蹤器140之深度表示一本地代理器經允許在任一指定時間所具有的未處理之對該HA提出之請求之最大數目(MaxRequest[la])。此結構也可以作為一多維陣列實施。因此,在任一指定時間在該結構上以此HA為目標的未處理之訊息之總數為MaxRequest[ra]+MaxRequest[la]。此等追蹤結構可將該命令資訊(例如,位址、請求類型、操作碼、異動ID等)及該異動狀態儲存在該晶片內(例如,該異動是否發出、該資料是否接收到、是否發送回一完成信號等)。相反,來自一遠程代理器之與該命令有關之任何資料可儲存在共享資料緩衝器120中。一資料訊息將該相同命令資訊儲存在儲存有一非資料訊息之一共享緩衝器中,外加與該命令有關之該資料酬載所處之一共享資料緩衝器位址。透過將該等非資料訊息之該等目的地與該等資料酬載分開,該自適應虛擬網路之維護可大大簡化。
除了該等追蹤器,一個或多個協定功能佇列150可儲存與該訊息有關之資訊,該等協定功能佇列150之細節將在下面進一步討論。如進一步所示,資料訊息之信用返回可自共享資料緩衝器120發送到信用返回計數器115。在各種實施態樣中,當資料自該共享資料緩衝器移除時,可提供此等信用返回。儘管第1圖中之該實施例顯示了此特定實施態樣,但本發明之範圍不局限於此點。
注意到,該鏈結層具有作為解碼器/累加器110之一部分實現之很小的緩衝。在一個實施例中,此緩衝可僅足以累積最大尺寸之標頭(例如3個微片)及一半快取列之資料(例如4個微片)以用於資料通信。沒有從該協定層到該鏈結層之反壓力,因此一旦整個訊息標頭及/或資料已累積於該鏈結層內,其被直接發送到該協定層。因此,該協定層確保將有資源可供所有接收訊息及資料使用。
為了使緩衝保持最小,自一遠程代理器回寫之資料(例如DRS及NCB訊息類別)保持在一獨立資料結構中,即該協定層之共享資料緩衝器120中。此資料結構之最小深度可以考量該自適應虛擬網路(VNA)信用池加上每資料訊息類別(例如DRS及NCB)每非自適應虛擬網路(即VN0及VN1)的一個快取列而予以定大小。以此方式定大小,此資料結構實體地表示該等虛擬網路信用池,但只針對資料訊息類別。只有當該資料已移出該資料結構時,用於此等訊息類別之信用返回。在一個實施例中,與一請求有關之一快取列資料連續地儲存在該資料結構內。以此方式,該協定層只需要該結構內之資料之起始位址來取出該資料。而且,此結構內所需的緩存量遠遠小於每一追蹤器需要儲存用於該歸屬代理器可能接收之每一請求/回應之一快取列資料(即MaxRequest[ra]+MaxReqyest[la])之情況。相反,該等追蹤器儲存與請求/回應訊息有關之最小量資訊。
協定功能佇列150表示一專用排序佇列(例如一先進先出(FIFO))以用於該協定層引起之每一特定功能。此等操作之範例包括將合理請求發到記憶體、將不合理請求發到IO代理器等。此等佇列可能薄,因為它們只需要儲存用來接取該訊息之相關追蹤器內之所有請求資訊之一請求識別符(ID)及該特定功能所需之任一其它混雜資訊(例如用於一回寫異動之資料之位置、回寫類型(隱式/顯式)、目標資訊等)。在一個實施例中,每一佇列深度可被定大小以處理遭接收以用於該指定功能之最大數目個訊息。作為一範例,一排序佇列可被定大小以接受MaxRequest[ra]或MaxRequest[ra]+MaxRequest[la]且可將一接收到之進入順序保持在該排序佇列中。在一個實施例中,可以有六個排序佇列,即一發出排序佇列(儲存到動態隨機存取記憶體(DRAM))、一非發出排序佇列(用來保持連貫性及串列化輸入信息)、一CPU再發排序佇列(用來解決衝突且將CPU請求第二次發到DRAM)、一確認衝突(AckCnflt)排序佇列(用來處理來自CPU之衝突交握)、一NCS排序佇列(通過此佇列,所有NCS通信調度到IO代理器)及一NCB排序佇列(通過此佇列,所有NCB通信發到IO代理器)。要注意,在一些實施例中,該協定層可以以比該鏈結層低之一時鐘速度運行且因而可對並行之多個訊息操作。
在操作中,當一本地鏈結層從此IO代理器之一結構接收到一訊息時,在將整個訊息傳遞到協定層之前,其基於訊息類別及操作碼在累加器110中對該訊息執行最小累積。在該鏈結層將該訊息呈現給該協定層之前,其成功(例如,證實沒有循環冗餘週期(CRC)誤差)接收一訊息之所有累積微片。當該等進入訊息傳遞到該協定層時,基於該解碼訊息類別及操作碼資訊,它們由請求追蹤器130及140之一個或兩者使用。以此方式,經由該訊息之唯一請求ID,該訊息將更新該目標資料結構內之一特有項,在一個實施例中,該訊息之唯一請求ID可對應於該原始請求者之節點ID及該異動ID。由於該協定層內之該等追蹤器針對每一代理器所具有的未處理之對該HA提出之請求之最大數目而定大小,則該協定層可確保用於所有進入訊息(例如MaxRequest[ra]+MaxRequest[la])之資源。如果需要對該進入訊息採取一特定動作(例如需要向記憶體發一請求),則該協定層還將把該請求ID載入到專用於該功能之協定功能佇列150之該排序佇列。
由於該協定層確保所有接收到之訊息將即時地被使用,則當該鏈結層成功地在該解碼器/累加器110中解碼該整個訊息時,該鏈結層可將虛擬網路信用返回到該遠程代理器。此規則之唯一例外是自該遠程代理器之快取列回寫(例如DRS & NCB訊息類別),其中只有當該資料已移出共享資料緩衝器120之後,該等信用才返回。因此,在該簡單訊息累加器以外之該鏈結層內,不需要複雜的緩衝要求。
因此,當成功接收到該訊息內之所有微片時,用於非資料(例如HOM、NCS及NDR)訊息之信用受累積且安排以從該鏈結層經由計數器115返回。接著,只有當該全部資料酬載已移出共享資料緩衝器120時,用於資料訊息(例如DRS及NCB)之信用(標頭及資料酬載兩者)才受累積且安排以返回。
現在參考第2圖,其顯示了根據本發明之一個實施例之一方法之一流程圖。如第2圖中所示,方法200可用來處理自一通訊協定之一互連接收之進入訊息。如第2圖中所示,方法200可開始於在一代理器之一鏈結層中接收一訊息,該代理器諸如一歸屬代理器,其可以是對應於作為該訊息之一主體之一特定記憶體位置之一所有者或管理者(方塊210)。接著,訊息類型可獲確定(方塊220)。例如,一訊息類別解碼器用來基於該訊息之一標頭確定該訊息類別。因此,該解碼器可確定該訊息類型是否為一非資料訊息類型(菱形225)。如果該訊息是一非資料類型,例如,一命令或其它此類訊息,則控制傳到方塊260。在方塊260處,一信用返回可直接從該鏈結層發送到該發送者,而不需要涉及該協定層中之任何操作。而且,該接收到之訊息可轉發到該協定層(方塊265)。要注意,在各種實施態樣中,方塊260及265之該等操作並列地或連續地執行,連續執行時先執行任一操作。
仍參考第2圖,當該訊息發送到該協定層時,與該訊息有關之資訊可儲存在該協定曾之一相應追蹤器中(方塊270)。然而本發明之範圍不局限於此點,該儲存之資訊可包括一請求ID及關於該訊息之某元資料,諸如目的位址、請求類型(例如讀或寫)、操作碼、連貫類型、衝突資訊等。作為一範例,該協定層可包括兩類追蹤器,一個與該(等)本地代理器有關及一個與該(等)遠程代理器有關。視該訊息類型而定,該訊息之資訊課儲存在兩個追蹤器中。而且,可判定該訊息類型是否與要執行之一動作有關(菱形275)。如果無關,則此訊息之處理完成。否則,控制傳到方塊280,在此,用於該訊息之最少資訊可以儲存在一排序佇列中。更特定地,諸如一請求ID之一識別符可儲存在一排序佇列中,使得當此佇列項遭接取以對該相應訊息執行一操作時,其它資訊可自該相應追蹤器項獲得。
仍參考第2圖,如果該鏈結層判定該訊息類型為一資料類型,則該訊息可轉發到該協定層(方塊230)。在該協定層中,此資料訊息之資料可儲存在一共享資料緩衝器中(方塊235)且所有命令資訊(例如,目的位址、請求類型、資料返回等)及一資料有效狀態儲存在該恰當追蹤器內。接著以後,例如當與該訊息有關之一操作受執行時,例如用以將該資料從該緩衝器寫入一相應位置之一寫資料操作,該資料可獲輸出,即移出該共享資料緩衝器(方塊240)。在資料之此移出該緩衝器後,用於該訊息之一信用返回可從自該協定層發出且經由該鏈結層回到該發送者(方塊250)。儘管第2圖之實施例中顯示此特定實施態樣,但本發明之範圍不局限於此點。
利用本發明之一實施例,由於可避免需要負責減慢在一自適應虛擬網路內傳遞之所有訊息之一共享資源緩衝器且相反該鏈結層僅專用於保證資料完整性且維持該結構上之流量控制,則該鏈結層可大大簡化。因此,關於流量控制之閘數量及複雜度可大大降低。替代在一鏈結層內需要資源分配邏輯及一仲裁方案以重新分配訊息及返回信用之一大鏈表資料結構,該鏈結層在將該標頭及/或資料發送到該協定層之前,僅對其進行累積。該鏈結層在它與該協定層之間不具有“再一次猜想”該遠程代理器選擇之訊息發送順序之一非自然仲裁點。相反,利用本發明之一實施例之一代理器按照該等進入訊息離開該結構而被接收之順序處理它們。假定一協定層運行慢於微片時鐘速度,由於沒有單一序列點,該鏈結層可合理地在一單一時鐘內同時發出命令與移動資料,允許較好的吞吐量及較少的延時。
更進一步,將流量控制保持在該鏈結層內之負荷大大降低。這是由於當該等進入訊息獲成功解碼時,流量控制信用即受返回。因為該等進入訊息直接按指定路線發送到協定層資料結構,此快速鏈結層信用釋放可發生,且對於非資料類別,可告知一任意信用數(則MaxRequest[*]為限制因子)。該協定層還可並行地處理進入資訊(假定一協定層以低於該微片時鐘速度之一速度操作)且還可按照進入訊息自該遠程代理器接收到之順序處理它們。
現在參考第3圖,其顯示了根據本發明之一個實施例之一系統之一方塊圖。如第3圖中所示,系統300可以是一電腦系統,作為一些範例,其可採取各種形式,諸如一伺服器電腦、桌上型電腦、筆記型電腦、上網本型電腦或行動計算裝置。如第3圖中所示,系統300包括一處理器310,即一CPU,在一個實施例中其可以是一多核處理器。處理器310可包括一個或多個快取記憶體,使得其可作為一快取代理器(CA)。大體而言,一快取代理器可以是使異動加入到一連貫記憶體及可將記憶體位置之副本儲存到例如其自身之快取記憶體中之一實體。
進一步如第3圖中所示,處理器310可經由一互連315耦接到一晶片組320,在一個實施例中,晶片組320可以是一整合之圖像及記憶體控制器裝置(GMCH),在一個實施例中,互連315可以是一點對點互連,諸如一QPI互連。除了內部圖像電路325之外,晶片組320可提供歸屬代理器及快取代理器功能。大體而言,一歸屬代理器可以是處理連貫異動之一實體且因而該歸屬代理器發揮控制連貫記憶體之至少一部分之作用。在第3圖顯示之該實施例中,此連貫記憶體可以是經由一記憶體匯流排335耦接到晶片組320之一系統記憶體340,在一個實施例中系統記憶體340可以是一動態隨機存取記憶體(DRAM)。
如圖所示,其它組件可耦接到晶片組320,包括一圖形裝置330,其可以是經由諸如一圖形匯流排之一互連325耦接之一外部圖形卡。此外,一周邊控制器中心(PCH)350可以耦接到晶片組320,例如經由一互連345。接著,PCH 350可與各種周邊裝置通訊,該等周邊裝置諸如大容量儲存器、網路組件、周邊組件互連高速(PCIe)卡、輸入/輸出裝置等。儘管第3圖之實施例中顯示此特定實施態樣,要理解本發明之範圍不局限於此點。在各種實施例中,處理器310及晶片組320都可包括諸如以上關於第1圖所述之鏈結層及協定層,從而降低對用於該等鏈結層之晶片上緩衝器之需要。而且,實施例可植入到具有多個處理器、晶片組等之系統中,且其中一處理器或晶片組可包括一歸屬代理器。例如,在一些實施態樣中,一處理器可包括一歸屬代理器且可直接耦接到其中不具有一晶片組之一記憶體。
實施例可以以程式碼形式實施且可儲存在儲存有指令之一儲存媒體上,該等指令可用來規劃一系統以執行該等指令。該儲存媒體可包括但不局限於:包括軟碟、光碟、光碟、固態驅動器(SSD)、唯讀光碟記憶體(CD-ROM)、可重寫光碟(CD-RW)及磁光碟之任一類型磁碟、半導體裝置,該等半導體裝置諸如唯讀記憶體(ROM)、諸如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)之隨機存取記憶體(RAM)、可抹除可規劃唯讀記憶體(EPROM)、快閃記憶體、電氣可抹除可規劃唯讀記憶體(EEPROM)、磁卡或光卡或者用於儲存電子指令之任一其它類型媒體。
儘管本發明已就有限數目個實施例予以描述,但熟於此技者將明白,可對其作大量修改及改變。目的是使所附申請專利範圍涵蓋落入本發明之真正精神及範圍內之所有這樣之修改及改變。
100...通訊協定
110...訊息類別解碼器/累加器
115...信用返回計數器
120...共享資料緩衝器
130...遠程代理器追蹤器、請求追蹤器
140...當地代理器追蹤器、請求追蹤器
150...協定功能佇列
200...方法
210、220、230、235、240、250、260、265、270、280...方塊
225、275...菱形
300...系統
310...處理器
320...晶片組
325...互連、內部圖像電路
330...圖形裝置
335...記憶體匯流排
340...系統記憶體
345‧‧‧互連
350‧‧‧周邊控制器中心(PCH)
第1圖是根據本發明之一實施例的一通訊協定之一部分的一方塊圖。
第2圖是根據本發明之一實施例的一方法之一流程圖。
第3圖是根據本發明之一實施例的一系統之一方塊圖。
100...通訊協定
110...訊息類別解碼器/累加器
115...信用返回計數器
120...共享資料緩衝器
130...遠程代理器追蹤器、請求追蹤器
140...當地代理器追蹤器、請求追蹤器
150...協定功能佇列
Claims (21)
- 一種通訊裝置,其包含:一鏈結層,用以接收及轉發一訊息到耦接至該鏈結層的一協定層,該鏈結層包括用於判定該訊息之訊息類型的一解碼器,其中,若該訊息是一非資料訊息,則該鏈結層會直接將一信用返回提供給該訊息之發送者;以及該協定層,其包括用於儲存自該鏈結層所接收到的資料訊息的一共享緩衝器,其中,該協定層可基於一資料訊息被移出該共享緩衝器之事件而發送針對該資料訊息的一信用返回,該信用返回會經由該鏈結層而被發送給該訊息發送者;其中,若該訊息是一非資料訊息,則該鏈結層會不通過該協定層而直接將該信用返回提供給該鏈結層所包括的一信用返回計數器。
- 如申請專利範圍第1項所述之裝置,其中,該協定層進一步包括一第一追蹤器,該第一追蹤器與耦接至該鏈結層的至少一個遠程代理器相關聯,以儲存與來自該至少一個遠程代理器的請求訊息相關聯的資訊,其中,該第一追蹤器會將儲存在該共享緩衝器中的資料訊息之資料以不分開的方式儲存。
- 如申請專利範圍第2項所述之裝置,其中,該協定層進一步包括一第二追蹤器,該第二追蹤器與耦接至該鏈結層的至少一個本地代理器相關聯,以儲存與來自至少一 個本地代理器的請求訊息相關聯的資訊,其中,該第二追蹤器會將儲存在該共享緩衝器中的資料訊息之資料以不分開的方式儲存。
- 如申請專利範圍第2項所述之裝置,其中,該第一追蹤器分別針對各個代理器而包括有多項,該等項各係用於儲存與一訊息相關聯的一請求識別符,其中,該請求識別符是與針對該訊息之該發送者的一識別符和針對該訊息的一異動識別符對應的一唯一識別符。
- 如申請專利範圍第4項所述之裝置,其進一步包含:耦接至該第一追蹤器的至少一個排序佇列,其中,該排序佇列可儲存對應於該第一追蹤器中之一項的一請求識別符、並可保持該等排序佇列項之接收順序。
- 如申請專利範圍第5項所述之裝置,其中,該裝置可在該第一追蹤器之一項的一請求識別符被自該排序佇列輸出時取用儲存於該項中之資訊。
- 如申請專利範圍第1項所述之裝置,其中,該鏈結層和該協定層被包括在一通訊協定中,該鏈結層係用於進行錯誤校正,且該協定層係用於進行封包路由。
- 一種通訊方法,其包含以下步驟:在耦接至一互連體和一協定層的一鏈結層中接收一進入訊息;在該鏈結層中判定該訊息之訊息類型,並且若該訊息類型是一非資料類型則不通過該協定層而將一信用返回直接從該鏈結層發送給該發送者及被包括在該鏈 結層中的一計數器;以及若該訊息類型被判定為是一資料類型,則將該訊息轉送到該協定層、將該資料儲存在該協定層的一共享資料緩衝器中、並接著經由該鏈結層而將一資料類型信用返回發送給該計數器;其中,該信用返回並未被儲存在該共享資料緩衝器中。
- 如申請專利範圍第8項所述之方法,其進一步包含以下步驟:將該資料自該共享資料緩衝器輸出,以及基於對該資料自該共享資料緩衝器之輸出之完成,經由該鏈結層將該資料類型信用返回發送給該發送者。
- 如申請專利範圍第8項所述之方法,其進一步包含以下步驟:將該資料訊息轉送到該協定層而不在該鏈結層中緩衝該資料訊息。
- 如申請專利範圍第8項所述之方法,其進一步包含以下步驟:將與該訊息相關聯的第一資訊儲存在該協定層之一第一追蹤器中,該資訊包括針對該訊息的一請求識別符;以及將該請求識別符儲存在一排序佇列的一項中。
- 一種通訊方法,其包含以下步驟: 在耦接至一互連體的一鏈結層中接收一訊息;在該鏈結層中判定該訊息之訊息類型,並且若該訊息類型是一非資料類型則將一信用返回直接從該鏈結層發送給該發送者;若該訊息類型被判定為是一資料類型,則將該訊息轉送到該協定層,並將該資料儲存在該協定層的一共享資料緩衝器中;將與該訊息相關聯的第一資訊儲存在該協定層之一第一追蹤器中,該資訊包括針對該訊息的一請求識別符;將該請求識別符儲存在一排序佇列的一項中;以及當該排序佇列之該項是在該排序佇列之首端時,利用該請求識別符而取用該第一追蹤器中之該第一資訊。
- 如申請專利範圍第12項所述之方法,其進一步包含以下步驟:利用該第一資訊而進行一操作。
- 一種通訊系統,其包含:用於執行指令的一處理器,該處理器包括用於儲存儲存在一系統記憶體中之資訊之副本的至少一個快取代理器;耦接至該處理器以防護該系統記憶體之至少一部分的一歸屬代理器,一鏈結層,用以接收來自該處理器的一訊息並將來自該處理器之該訊息轉送到耦接至該鏈結層的一協定層,該鏈結層包括用於判定該訊息之訊息類型的一解碼 器,其中,若該訊息是一非資料訊息則該鏈結層會直接將一信用返回提供給該處理器,並且該協定層包括用於儲存接收自該鏈結層之資料訊息的一共享緩衝器,其中,該協定層會基於一資料訊息被移出該共享緩衝器之事件而發送針對該資料訊息的一信用返回,該信用返回會經由該鏈結層而被發送給該處理器;以及耦接至該歸屬代理器的該系統記憶體,其中,該系統記憶體包含動態隨機存取記憶體(DRAM);其中,若該訊息是一非資料訊息,則該鏈結層會不通過該協定層而直接將該信用返回提供給該鏈結層所包括的一信用返回計數器。
- 如申請專利範圍第14項所述之系統,其中,該協定層進一步包括與該處理器相關聯的一第一追蹤器,用以儲存與來自該處理器之請求訊息相關聯的資訊,其中,該第一追蹤器會將儲存在該共享緩衝器中的資料訊息之資料以不分開的方式儲存。
- 如申請專利範圍第15項所述之系統,其中,該協定層進一步包括與該本地代理器相關聯的一第二追蹤器,用以儲存與來自該本地代理器之請求訊息相關聯的資訊,其中,該第二追蹤器會將儲存在該共享緩衝器中的資料訊息之資料以不分開的方式儲存。
- 如申請專利範圍第15項所述之系統,其中,該第一追蹤器包括多項,該等項各係用於儲存與一訊息相關聯的一請求識別符,其中,該請求識別符是與針對該處理器的 一識別符和針對該訊息的一異動識別符對應的一唯一識別符。
- 如申請專利範圍第17項所述之系統,其進一步包含:耦接至該第一追蹤器的至少一個排序佇列,其中,該排序佇列可儲存對應於該第一追蹤器中之一項的一請求識別符,該系統進一步包含:經由一點對點互連體而耦接至該處理器的一晶片組,該晶片組可在該第一追蹤器之一項的一請求識別符被自該排序佇列輸出時取用儲存於該項中之資訊。
- 如申請專利範圍第14項所述之系統,其中,該協定層係用於儲存與一第一追蹤器中之該訊息相關聯的第一資訊,該資訊包括針對該訊息的一請求識別符,該協定層並可將該請求識別符儲存在一排序佇列之一項中,該協定層可利用該請求識別符而取用該第一追蹤器中之該第一資訊。
- 如申請專利範圍第14項所述之系統,其中,該處理器包括一歸屬代理器,並且該系統進一步包含耦接至該處理器的至少一個其它處理器、以及耦接至該等多個處理器的一晶片組。
- 如申請專利範圍第14項所述之系統,其進一步包含:耦接至該處理器的一晶片組,其中,該晶片組包括該歸屬代理器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/618,867 US8819305B2 (en) | 2009-11-16 | 2009-11-16 | Directly providing data messages to a protocol layer |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201138379A TW201138379A (en) | 2011-11-01 |
TWI536772B true TWI536772B (zh) | 2016-06-01 |
Family
ID=43992290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099131697A TWI536772B (zh) | 2009-11-16 | 2010-09-17 | 直接提供資料訊息至協定層之技術 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8819305B2 (zh) |
CN (1) | CN102065073B (zh) |
TW (1) | TWI536772B (zh) |
WO (1) | WO2011059574A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352648B1 (en) * | 2010-11-22 | 2013-01-08 | Xilinx, Inc. | Credit-based flow control |
CN102394732B (zh) * | 2011-09-06 | 2013-09-18 | 中国人民解放军国防科学技术大学 | 一种多微包并行处理结构 |
US9507746B2 (en) * | 2012-10-22 | 2016-11-29 | Intel Corporation | Control messaging in multislot link layer flit |
CN104380269B (zh) | 2012-10-22 | 2018-01-30 | 英特尔公司 | 高性能互连相干协议 |
CN104461997B (zh) * | 2014-11-26 | 2017-12-05 | 上海斐讯数据通信技术有限公司 | 一种pos‑phy接口设备及设计方法 |
CN113660344B (zh) * | 2021-08-20 | 2024-03-15 | 上海肇观电子科技有限公司 | 通信方法、装置、电子设备和计算机可读存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9606834D0 (en) * | 1996-03-30 | 1996-06-05 | Int Computers Ltd | Inter-processor communication |
US6658480B2 (en) * | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US7330479B2 (en) | 2003-09-25 | 2008-02-12 | International Business Machines Corporation | Shared transmit buffer for network processor and methods for using same |
US7411969B2 (en) | 2003-10-28 | 2008-08-12 | Intel Corporation | Method, system, and apparatus for a credit based flow control in a computer system |
US20050144341A1 (en) | 2003-12-31 | 2005-06-30 | Schmidt Daren J. | Buffer management via non-data symbol processing for a point to point link |
US20050262250A1 (en) | 2004-04-27 | 2005-11-24 | Batson Brannon J | Messaging protocol |
JP2005332250A (ja) * | 2004-05-20 | 2005-12-02 | Toshiba Corp | データ処理装置およびフロー制御方法 |
US7493426B2 (en) * | 2005-01-31 | 2009-02-17 | International Business Machines Corporation | Data communication method and apparatus utilizing programmable channels for allocation of buffer space and transaction control |
US7643477B2 (en) * | 2005-08-24 | 2010-01-05 | Intel Corporation | Buffering data packets according to multiple flow control schemes |
US8131940B2 (en) * | 2007-03-31 | 2012-03-06 | Intel Corporation | Methods and apparatuses to support memory transactions using partial physical addresses |
US7971074B2 (en) * | 2007-06-28 | 2011-06-28 | Intel Corporation | Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system |
US8174977B2 (en) | 2007-07-06 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | End-to-end flow control in a network |
US8635380B2 (en) * | 2007-12-20 | 2014-01-21 | Intel Corporation | Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning |
US8085801B2 (en) * | 2009-08-08 | 2011-12-27 | Hewlett-Packard Development Company, L.P. | Resource arbitration |
-
2009
- 2009-11-16 US US12/618,867 patent/US8819305B2/en not_active Expired - Fee Related
-
2010
- 2010-09-17 TW TW099131697A patent/TWI536772B/zh active
- 2010-09-23 WO PCT/US2010/050013 patent/WO2011059574A2/en active Application Filing
- 2010-09-26 CN CN201010293356.0A patent/CN102065073B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TW201138379A (en) | 2011-11-01 |
CN102065073A (zh) | 2011-05-18 |
WO2011059574A2 (en) | 2011-05-19 |
US8819305B2 (en) | 2014-08-26 |
WO2011059574A3 (en) | 2011-07-21 |
CN102065073B (zh) | 2014-03-12 |
US20110116511A1 (en) | 2011-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6757768B1 (en) | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node | |
US20060047849A1 (en) | Apparatus and method for packet coalescing within interconnection network routers | |
US6832279B1 (en) | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node | |
US8490110B2 (en) | Network on chip with a low latency, high bandwidth application messaging interconnect | |
US8099521B2 (en) | Network interface card for use in parallel computing systems | |
US8214845B2 (en) | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data | |
US7702742B2 (en) | Mechanism for enabling memory transactions to be conducted across a lossy network | |
TWI536772B (zh) | 直接提供資料訊息至協定層之技術 | |
US11265235B2 (en) | Technologies for capturing processing resource metrics as a function of time | |
TW200937219A (en) | A network on chip | |
US9690713B1 (en) | Systems and methods for effectively interacting with a flash memory | |
US20110252173A1 (en) | Translating a requester identifier to a chip identifier | |
US20200393991A1 (en) | Efficient data movement method for in storage computation | |
EP4070203B1 (en) | Apparatus and methods for managing packet transfer across a memory fabric physical layer interface | |
WO2006007053A1 (en) | Method and apparatus for synchronous unbuffered flow control of packets on a ring interconnect | |
CN113126911A (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
US12056072B1 (en) | Low latency memory notification | |
US6889278B1 (en) | Method and apparatus for fast acknowledgement and efficient servicing of interrupt sources coupled to high latency paths | |
US12038867B2 (en) | Two-level arbitration in a reconfigurable processor | |
CN118012510B (zh) | 一种网络处理器、网络数据处理装置和芯片 | |
US20240070111A1 (en) | Reconfigurable dataflow unit with streaming write functionality | |
CN118012510A (zh) | 一种网络处理器、网络数据处理装置和芯片 | |
CN115640142A (zh) | 数据生产主体单元、数据消费主体单元、相关装置和方法 | |
JP2000090060A (ja) | マルチプロセッサコンピュ―タシステムにおけるオ―バラン保護用クレジットベ―ズドメッセ―ジプロトコル |