TWI396091B - 具有每個代理者佇列的淺層之非封鎖位址交換器 - Google Patents
具有每個代理者佇列的淺層之非封鎖位址交換器 Download PDFInfo
- Publication number
- TWI396091B TWI396091B TW095129810A TW95129810A TWI396091B TW I396091 B TWI396091 B TW I396091B TW 095129810 A TW095129810 A TW 095129810A TW 95129810 A TW95129810 A TW 95129810A TW I396091 B TWI396091 B TW I396091B
- Authority
- TW
- Taiwan
- Prior art keywords
- request
- switch
- agent
- agents
- interconnect
- Prior art date
Links
Classifications
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- 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/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
Description
本發明係關於積體電路之領域,且更特定而言本發明係關於用於積體電路內及/或積體電路之間的內連線的仲裁機制。
系統中之積體電路或積體電路內之多個電路通常需要相互通信。在許多情況下,系統/積體電路中之通信器可經由記憶體映射中之多個位址來通信。亦即,將記憶體映射內之位址指派至多個通信器,且使用對位址之讀取/寫入來通信。通常,此等通信器使用在通信器之間的內連線上傳輸的讀取/寫入異動。舉例而言,通常具有一位址匯流排,且在該位址匯流排上傳輸位址、命令及其他異動資訊以起始一異動。另外,可使用一資料匯流排來傳輸對應於異動的資料(若存在)。若為異動實施快取記憶體連貫性(coherency),則可提供一用於根據由通訊器實施之連貫性方案維護連貫性狀態的回應介面。
當通訊器間共用內連線或內連線之一部分時,需要用於在通訊器間仲裁內連線之使用的某些機制。在過去,已使用集中式及分散式仲裁機制。在集中式仲裁機制中,所有通信器傳輸一請求信號至中央仲裁器,該中央仲裁器判定將經許可以使用內連線的通信器("仲裁勝利者")。中央仲裁器傳回一許可信號至經許可的通信器,且然後經許可的通信器在內連線上驅動其異動。在分散式仲裁方案中,每一
通信器實施一區域仲裁器(或包括一附近的區域仲裁器)。每一通信器宣告其請求信號至所有區域仲裁器。區域仲裁器經設計以用於獨立地判定同一仲裁勝利者。經許可的通訊器之區域仲裁器通知經許可的通信器,該通信器在內連線上驅動其異動。
集中式仲裁機制通常較分散式仲裁機制易於實施。然而,集中式仲裁機制亦通常為一較長潛伏時間的機制。集中式仲裁機制包括請求信號之一潛在長距離傳輸,接著是許可信號之一相等長距離傳輸,接著是經許可的通信器驅動其異動。在另一方面,較複雜的分散式仲裁方案僅可能包括一個長距離傳輸(向每一區域仲裁器傳輸一請求信號)。分散式仲裁機制中之複雜性通常包括:特定通信器上所許可的較複雜"停駐"、控制通訊器之流程中的複雜性、及基於每個源通信器的目標通訊器中的緩衝器分配。
在一項實施例中,一交換器經組態以耦接至內連線。該交換器包含複數個儲存位置及一耦接至該複數個儲存位置之仲裁器控制電路。該複數個儲存位置經組態以儲存由複數個代理者傳輸之複數個請求。該仲裁器控制電路經組態以在儲存於該複數個儲存位置中之該複數個請求間進行仲裁。選定的請求是仲裁之勝利者,且該交換器經組態以將來自複數個儲存位置中之一者的該選定請求傳輸至內連線上。在另一實施例中,系統包含複數個代理者、一內連線及耦接至該複數個代理者及內連線的交換器。
在又一實施例中,一種方法包含:對來自複數個儲存位置中之複數個代理者之請求進行佇列;在複數個儲存位置之請求間進行仲裁以選擇複數個請求中之一者;及在內連線上傳輸該選定請求。
現參看圖1,其展示系統10之一項實施例的方塊圖。在所說明的實施例中,系統10包括複數個代理者,例如代理者12A至12D。系統亦包括一位址交換器14、一位址內連線16及一回應/資料內連線18。代理者12A至12B耦接至位址交換器14(其中代理者12B經由所說明的實施例中之正反器20A耦接)。位址交換器14進一步耦接至位址內連線16,該位址內連線16(經由所說明的實施例中之正反器20B至20I)耦接至代理者12A至12D。以另一方式來看,正反器20B至20I可為位址內連線16之部分。代理者12A至12D亦耦接至回應/資料內連線18。在一項實施例中,系統10可整合至單個積體電路晶片上。在其他實施例中,系統10之多個組件可實施於獨立積體電路上。任何等級之整合可用於各種實施例。
代理者12A至12B經組態以傳輸待在位址內連線16上傳輸的請求至位址交換器14。每一請求可包括異動之地址及命令(其識別待執行之異動)。可支援多種命令,例如連貫的讀取及寫入命令、非連貫的讀取及寫入命令、連貫的所有權命令、探察命令、同步命令、快取記憶體管理命令等。在多項實施例中,請求亦可包括其他資訊。舉例而言,在一個以下詳細描述之實施例中,請求可包括請求之一優先
權等級(用於仲裁)及一指示用於該請求之資料是否亦將被複製至第二階快取記憶體的指示。
代理者12A至12B亦稱為源代理者,因為其可藉由傳輸對位址內連線16之請求而在系統10中起始異動。例示性源代理者可包括:處理器、外部寫回快取記憶體(其為將已經修改的、收回的快取區塊寫入至記憶體的源寫入異動)、及輸入/輸出(I/O)橋接器(其為代表周邊裝置所耦接至的異動源)。如圖1中之橢圓所示,多項實施例可包括兩個以上之源代理者(或下述源/目標代理者)。其他代理者可能並非源異動而為異動之目標(亦即,接收異動且負責異動之資料的代理者)。該等代理者稱為目標代理者。對於讀取異動而言,目標代理者供應資料,除非另一代理者具有資料之較新近(經修改的)快取複本。對於寫入異動而言,目標代理者彙集由源代理者供應的寫入資料。目標代理者可包括(例如)記憶體控制器及/或I/O橋接器。一些代理者可為用於某些異動之源代理者及用於其他異動之目標代理者。例示性源/目標代理者可包括以上提及之I/O橋接器或外部快取記憶體。通常,一代理者可包含經組態以經由位址內連線16及回應/資料內連線18上之異動來進行通信的任何電路。
每一源代理者12A至12B(或源/目標代理者,儘管為了簡捷起見在描述中使用源代理者)可使用一請求信號來指示源代理者12A至12B正在傳輸一請求。位址交換器14亦可宣告一許可信號至一給定源代理者12A至12B,以指示由源代理者12A至12B傳輸之請求已經許可以在位址內連線16上
傳輸。
位址交換器14可包括複數個儲存位置,該複數個儲存位置可經組態以儲存由源代理者傳輸之請求直至請求經許可以在位址內連線16上傳輸為止。在一項實施例中,儲存位置可包含複數個佇列。每一佇列可對應於一特定源代理者,且可專用於儲存由彼源代理者傳輸之請求。亦即,在佇列與源代理者之間可存在一對一之對應。用於一給定源代理者之佇列可儲存由給定源代理者傳輸至位址交換器14之複數個請求。每一源代理者可知道對應於彼源代理者之佇列中之佇列項的數目,且可能無法傳輸多於佇列項的請求。
位址交換器14亦可經組態以在佇列中之請求間進行仲裁,以選擇一在位址內連線16上傳輸之請求。可採用任何仲裁方案。舉例而言,在一些實施例中,每一請求可具有指派至其的一優先權等級。仲裁方案可為一嚴格的優先權方案(選擇最高優先權請求),其具有防"挨餓"機制以避免較低優先權請求"挨餓"。位址交換器14可在位址內連線16上驅動選定請求。
因此,對於位址內連線16而言,位址交換器14可採用集中式仲裁。然而,在一些實施例中,因為請求被傳輸至位址交換器14並由位址交換器14驅動至位址內連線16上,所以可減少與將許可傳回至經選定以贏得仲裁之源代理者相關聯的潛伏時間(且源代理者回應該於該許可而驅動位址內連線16)。位址交換器14可在驅動選定請求至位址內連線
16上之同時,將許可傳回至源代理者。另外,在一些實施例中,位址交換器14中之仲裁電路可具有更多關於請求之資訊,因為請求本身在位址交換器14中進行佇列(例如,與通常在習知集中式仲裁器中所實施之請求/許可結構相比較)。
當源代理者自位址交換器14接收許可時,其被通知:一佇列項可用於儲存另一請求。在一項實施例中,可按傳輸次序許可來自給定源代理者之請求。因此,接收許可之源代理者可使許可與對應請求相關聯。在其他實施例中,位址交換器14可經組態以在一些情況下對請求進行重新排序(在傳輸來自相同源代理者之稍早接收的請求之前或提前傳輸來自源代理者之稍後接收的請求)。在該等實施例中,源代理者可耦接至位址內連線16,且可接收在其上傳輸之請求以判定何請求經許可了。舉例而言,在一些實施例中,源代理者可用源標籤標記每一請求且源代理者可自位址內連線16接收該源標籤以判定何請求經許可了。
在多項實施例中,位址內連線16可包含任何通信媒體。舉例而言,位址交換器16可包含一封包介面,其中請求作為封包在位址內連線16上、在一或多個時鐘週期中傳輸。特定言之,在一項實施例中,可在位址內連線16上、在一個時鐘週期中傳輸位址封包。該等實施例可使位址交換器14與異動之位址相位協定略微隔離。其他實施例可將位址內連線16實施為具有一匯流排,該匯流排具有一與多個控制信號一起傳送以指示在位址相位期間傳送之命令及其他
控制資訊的位址。
在位址內連線16上將請求廣播至代理者12A至12D。在一些實施例中,至最遠代理者12A至12D(就實體距離而言)之位址內連線16上的傳輸時間可超出與位址內連線16相關聯的時鐘之一時鐘週期。可使用正反器20B至20I來擷取請求並繼續傳播至代理者12A至12D。因此,位址交換器14與給定代理者12A至12B之間所包括的正反器20B至20I之數目可基於至最遠代理者之傳輸時間(依用於位址內連線16的時鐘信號之時鐘週期數目)。在所說明的實施例中,傳輸時間超出兩個時鐘週期且因此使用兩個正反器。其他實施例可包括零個正反器(若傳輸時間小於時鐘週期)、一個正反器(若傳輸時間超出一個時鐘週期但小於兩個時鐘週期)、或兩個以上之正反器(取決於傳輸時間)。為確保在邏輯上由每一代理者12A至12D在相同時鐘週期中接收一給定請求,可在位址交換器14與每一代理者12A至12D之間提供相等數目的正反器20B至20I,儘管一些代理者實體上較靠近位址交換器14且請求實體上能夠在較短傳輸時間內到達較近代理者。至較遠代理者之正反器20B至20I可沿位址交換器14與較遠代理者之間的距離予以實體地分佈。為使圖式簡單,圖1並非試圖說明正反器20B至20I之實體分佈。
因為每一代理者12A至12D邏輯上在相同時鐘週期中接收在位址內連線16上傳輸之請求,所以在一些實施例中,位址內連線16可為用於連貫異動之空間連貫性點。亦即,出於連貫性之目的,在位址內連線16上成功地傳輸之請求
之次序可定義異動次序。
類似地,在一些實施例中,請求自源代理者12A至12B至位址交換器14之傳輸時間可能超出一個時鐘週期。在一些實施例中,位址交換器14可實體上位於距預期具有最高請求頻寬之源代理者最近處(例如,典型具有比快取記憶體代理者高之請求頻寬的處理器代理者是I/O代理者)。在圖1之實施例中,來自源代理者12B之請求的傳輸時間可超出一個時鐘週期,且因此可使用正反器20A來擷取請求並繼續傳播至位址交換器14。類似地,可由正反器20A擷取由位址交換器14傳回之許可信號並在隨後的時鐘週期中傳播。
在本實施例中,因為位址內連線16是用於連貫異動之連貫性點(且亦可為作為整體之請求定義次序),所以自不同代理者傳輸至位址交換器14之請求間並不存在排序。因此,若在來自一個源代理者之傳輸時間中使用例如正反器20A之正反器,則無需為請求之傳輸時間小於一個時鐘週期的其他代理者插入正反器。
如上所述,在一些實施例中,源代理者可在位址內連線16上接收請求以判定來自給定代理者之位址交換器14中之未解決的多個請求中之何請求實際上經許可以在位址內連線16上傳輸。另外,在一些實施例中,亦可快取資料(且因此可參與連貫異動)之源代理者亦可出於連貫性之目的在位址內連線16上探聽其他源代理者之請求。目標代理者(例如,代理者12C至12D)耦接至位址內連線16以接收請求,該等代理者因為該等請求而成為目標代理者。
在一項實施例中,位址交換器14亦可經組態以管理至多個目標代理者12C至12D的流程控制。舉例而言,位址交換器14可經組態以判定每一請求定址何目標代理者(例如經由請求位址之粗粒度解碼,且基於解碼將位址映射至目標代理者)。位址交換器14可知道(在接收到來自位址內連線16之請求後)目標代理者中所佇列之請求的數目且可確保目標代理者之輸入佇列不會發生請求溢出。若給定請求之目標為輸入佇列已滿之給定目標代理者,則位址交換器14可確保該給定請求不會被選為仲裁之勝利者直至該給定目標代理者中的輸入佇列項可用為止。在此種情況下,位址交換器14可能無法封鎖其他請求。亦即,若稍早請求或更高優先權請求歸因於目標代理者無法接收請求而無法適當地贏得仲裁,位址交換器14仍能夠選擇目標為另一目標代理者之另一請求。在一些實施例中,位址交換器14亦可嘗試實施公平或最佳化源代理者間對目標代理者之存取。
代理者12A至12D亦可耦接至回應/資料內連線18,以傳輸經由位址內連線16上之請求所起始之異動的回應相位及資料相位。在多項實施例中,一些異動可能並不包括一資料相位。回應相位可包括(例如)來自用於連貫異動之快取代理者的回應。回應可提供指示在對應於異動之資料的接收器中應建立何種連貫性狀態的資訊。異動之資料相位涉及資料至源代理者(用於讀取)或目標代理者(用於寫入)的傳送。在多項實施例中,回應/資料內連線18可包含一通信媒體。
雖然在以上某些實施例中,將位址交換器14之儲存位置描述為每個代理者之佇列,但其他實施例可以其他方式來實施儲存位置。舉例而言,儲存位置可為源代理者將請求儲存至其中之單個佇列。可由位址交換器14將佇列項靈活地指派至源代理者,且可存在額外信號傳輸以向每一源代理者指示可用佇列項之數目(例如自位址交換器14傳輸信號至每一代理者以指示佇列項之數目,或至少一個額外佇列項可用於代理者等)。代理者可予以分組並可共用佇列,或可基於每一請求之目標來配置佇列。
注意,雖然在圖1之實施例中說明正反器20A至20I,但通常可將任何時控儲存裝置用作裝置20A至20I。舉例而言,可使用暫存器、鎖存器等。時控儲存裝置可包含經組態以回應於一時鐘信號而擷取一儲存值的任何儲存裝置。在本實施例中,輸入以用於正反器20A至20I之時鐘信號可為用於位址內連線16之時鐘。一些代理者可在內部使用多個時鐘來操作。本文所述其他正反器亦可使用任何時控儲存裝置來實施。通常,每一正反器20A至20I可具有等於其輸入寬度的位元寬度。舉例而言,正反器20A可為至位址交換器14之請求/許可介面之寬度且正反器20B至20I之寬度可為位址內連線16的寬度。
雖然上文之實例使用嚴格的優先權仲裁方案,但其他實施例可實施其他仲裁方案。舉例而言,其他仲裁方案可包括循環、優先權加權循環、循環與優先權方案之組合等。
雖然以上討論提及接收對位址內連線16之請求且在請求
間進行仲裁以判定將在位址內連線16上傳輸之仲裁勝利者的位址交換器,但其他實施例可實施一用於資料內連線的類似交換器。可自資料源接收至資料交換器之請求。請求可包括用於異動之資料及一識別資料所對應之位址請求的標籤。在多項實施例中,請求可包括一優先權,其可為與位址請求相同或不同的優先權。資料交換器可在進行佇列的資料請求間進行仲裁以選擇一仲裁勝利者在資料內連線上驅動。
現參看圖2,其展示位址交換器14之一項實施例的方塊圖。在所說明的實施例中,位址交換器14包括佇列,例如分別對應於代理者12A及12B之佇列30A及30B。位址交換器14進一步包括一多工器(mux)32、一輸出正反器34及一仲裁器控制電路36。佇列30A至30B經耦接以自其各自的代理者12A至12B接收請求。另外,在所說明的實施例中,仲裁器控制電路36及mux 32經耦接以接收請求。佇列30A至30B進一步耦接至仲裁器控制電路36及mux 32。在包括額外源代理者之實施例中,mux 32及仲裁器控制電路36可進一步經耦接以接收請求及位址交換器14中之對應佇列之輸出。仲裁器控制電路36經耦接以自代理者12A至12B接收請求信號,並向代理者12A至12B提供許可信號。仲裁器控制電路36經進一步耦接以向mux 32提供選擇控制。mux 32之輸出耦接至輸出正反器34,該輸出正反器34進一步耦接至位址內連線16。仲裁器控制電路36進一步經耦接以自代理者12C至12D(及其他目標代理者或源/目標代理者(在一些實施例
中))接收信用指示。
在所說明的實施例中,每一請求可包括一位址(Addr)、一命令(Cmd)、一優先權(Pr)、一異動ID(TId)及一ReorderOK位元(ROK)。佇列30A至30B可經組態以儲存請求。亦即,每一佇列項可包括足夠儲存容量以儲存請求。在所說明的實施例中,每一佇列30A至30B包括兩個項。在其他實施例中,每一佇列30A至30B中可包括更多項。位址是記憶體映射中之受請求影響並識別目標代理者之位址。命令識別被起始之異動。優先權指示請求之優先權等級。在一項實施例中,使用三個優先權等級。當請求之潛伏時間較為關鍵時可使用最高優先權等級。舉例而言,在一項實施例中,耦接至例如乙太網路介面之封包介面的一些I/O橋接器可使用最高優先權等級,以便在橋接器或驅動封包介面之電路中的緩衝器運行緩慢時讀取描述符或封包資料。中間優先權等級可由I/O橋接器用於處理器讀取及直接記憶體存取(DMA)描述符讀取。若源代理者之寫入緩衝器變為接近填滿,則中間優先權亦可用於寫入。低優先等權可用於所有其他請求(例如,處理器寫入、高頻寬讀取及寫入,諸如DMA讀取及寫入等)。其他實施例可使用更多或更少優先權等級。若先前請求仍處於代理者之佇列30A至30B中(意即,先前請求仍未經許可以在位址內連線16上傳輸),則reorderOK位元可用於指示是否可將請求重新排序在來自相同代理者的先前請求之前。源代理者可根據由代理者實施之一組排序規則產生reorderOK位元。圖4中說明一實例
並在下文中更詳細地討論。
當代理者12A至12B向位址交換器14傳輸一請求時,代理者12A至12B可宣告一對應的請求信號。亦即,所宣告的請求信號可用作請求之一有效位元,其用於寫入對應於代理者12A至12B之佇列30A至30B且用於向仲裁器控制電路36指示請求。仲裁器控制電路36亦可產生一許可信號(其用於每一源代理者12A至12B)。仲裁器控制電路36可宣告該許可信號至給定源代理者12A至12B,以便指示來自彼源代理者12A至12B之請求已經許可並將在位址內連線16上驅動。所宣告的許可信號可向代理者12A至12B指示代理者之佇列30A至30B中之佇列項正在釋放以接收另一請求。
每一代理者12A至12B可經組態以傳輸高達與其之佇列30A至30B中之佇列項之數目相等的請求(在所說明的實施例中為兩個)。在一項實施例中,每一代理者12A至12B可將佇列30A至30B中未解決之請求的數目限制為項之數目。亦即,代理者可傳輸兩個請求,且然後禁止傳輸額外請求直至一所宣告的許可信號指示一佇列項正被釋放為止。在另一實施例中,每一代理者12A至12B可填充其之佇列30A至30B並傳輸又一個請求,其中代理者12A至12B可繼續傳輸該又一個請求直至一先前請求經許可且因此所宣告的請求被寫入至一佇列項為止。
仲裁器控制電路36可在佇列30A至30B之請求間進行仲裁並選擇一待在位址內連線16上傳輸之請求。仲裁器控制電路36可向mux 32產生選擇控制,以便選擇請求並向輸出
正反器34提供選定請求。輸出正反器34驅動請求至位址內連線16上。可提供輸出正反器34以便確保在時鐘週期開始時驅動請求至位址內連線16上。在其他實施例中,可去除輸出正反器34且可一旦經由mux 32選擇則驅動請求。亦可自其之佇列30A至30B刪除選定請求,且仲裁器控制電路36可宣告許可信號至對應源代理者12A至12B。
仲裁器控制電路36可實施任何仲裁方案以在請求間進行選擇。舉例而言,如上所述,仲裁器控制電路36可實施具有防"挨餓"之嚴格的優先權選擇。在此種方案中,通常將最高優先權請求選擇為仲裁之勝利者。然而,若若干較高優先權請求致使較低優先權請求長時期地保持於佇列30A至30B中(亦即,較低優先權請求"挨餓"),則可選擇降低優先權請求。可以多種方式來實施防"挨餓"機制。舉例而言,每一請求可具有一與其相關聯的計時器或一時間戳,其指示請求已處於佇列30A至30B中多長時間。若請求已處於佇列30A至30B中之時間稍長於一臨限時段(其可為固定的或可程式化的),則可選擇該請求。請求之優先權可有效地隨其處於佇列30A至30B中之時間而增加。在另一實例中,若連續地選擇一定義數目個較高優先權請求(其中該數目可為固定的或可程式化的),則可自動選擇較低優先權請求。若對於一給定仲裁而言,佇列30A至30B中具有一個以上之具有最高優先權之請求,則可使用任何機制來在請求間進行選擇(例如,源代理者間之固定優先權、源代理者間的循環、可選擇最"老"請求等)。其他實施例可實施其他仲裁方
案(例如,無優先權之循環、基於優先權之加權循環等)。
若在佇列30A至30B中,高優先權請求位於另一請求之"後",則在以下情況下該高優先權請求無仲裁資格:若用於該高優先權請求之ReorderOK位元並未經設定以指示將該請求重新排序在先前請求之前。亦即,若ReorderOK位元並未指示重新排序是允許的,則仲裁器控制電路36不能在選擇同一佇列中之先前較低優先權請求之前選擇高優先權請求。若如ReorderOK位元所指示之重新排序在先前請求之前為允許的,則在較高優先權請求處於佇列中之較低優先權請求之後的情況下,可選擇高優先權請求。亦即,可在傳輸高優先權請求前由代理者將較低優先權請求傳輸至位址交換器。
在一些實施例中,仲裁器控制電路36亦可實施至每一目標代理者(例如,圖1之實施例中的代理者12C至12D)之流程控制。仲裁器控制電路36可(例如使用本實施例中之位址)判定每一請求之目標代理者。仲裁器控制電路36可使用位址至目標代理者之映射來程式化。舉例而言,可對一或多個暫存器38進行程式化以便將位址空間映射至目標代理者。基於位址映射,位址控制電路36可執行某些最重要位址位元之粗粒度解碼以判定目標代理者。在本實施例中,因為預期將相對較大的連續位址範圍程式化至目標代理者,所以在本實施例中解碼是粗粒度的。其他實施例可使用細粒度解碼。此外,雖然在本實施例中解碼為可程式化的,但其他實施例可具有固定的位址映射且仲裁器控制電
路36可根據固定位址映射解碼位址。
每一目標代理者可具有接收高達一定數目(例如根據目標代理者中所實施之緩衝器的數目)之異動的能力。在一些實施例中,可按異動類型對異動進行分組且可為每一目標代理者指定每一組異動之數目。舉例而言,在一項實施例中,可將異動分組為連貫讀取、連貫寫入、非投遞式之非連貫命令及投遞式之連貫命令。每一目標代理者可為以上每組異動實施一定數目緩衝器。
仲裁器控制電路36可經組態以實施至目標代理者之流程控制,以確保目標代理者之緩衝器並不溢出。舉例而言,可使用基於信用之系統,其中由用於對應異動類型之信用代表每一緩衝器。仲裁器控制電路36可(例如,使用圖2中之一或多個暫存器40)追蹤可用信用。若仲裁器控制電路36選擇給定類型且目標為給定目標代理者之請求,則仲裁器控制電路36可使對應信用計數減一。當緩衝器係可用時,目標代理者亦可傳送信用之歸還(展示為圖2中之信用)。因此,在任何給定時間點上,仲裁器控制電路36可知道用於每一異動類型之每一目標代理者中之緩衝器可用性。仲裁器控制電路36在一請求將消耗之信用並不可用的情況下可防止選擇該請求。可替代地選擇另一請求(甚至一較低優先權請求),其中用於該另一請求之對應信用為可用的。
在一些實施例中,仲裁器控制電路36亦可試圖確保源代理者存取給定目標代理者之公平性。仲裁器控制電路36可追蹤每一目標代理者之各種類型之信用的總體使用,以及
每一源代理者之信用使用。若用於目標代理者之信用的總體使用為高(指示目標代理者"忙"於異動)且一特定源代理者正以一高速率與該目標代理者進行通信(其由用於該目標代理者之信用的使用來指示),則仲裁器控制電路36可限制彼源代理者/目標代理者對之信用使用,以允許其他源代理者更好地存取該目標代理者。
如圖2之實施例中所示,mux 32及仲裁器控制電路36經耦接以接收當前由代理者12A至12B向位址交換器14傳輸之請求。若傳輸請求時佇列30A至30B為空(且用於目標代理者之對應信用為可消耗的),則對於一給定請求而言,仲裁器控制電路36可經組態以旁路經過佇列30A至30B,並經由mux 32選擇該請求。在該等情況下可避免穿經佇列之潛伏時間。在其他實施例中,僅可為一個源代理者或源代理者之一子集提供旁路(例如,處理器可具有旁路且其他代理者不可具有旁路)。在其他實施例中,可並不實施旁路且可去除傳入請求至mux 32及仲裁器控制電路36之連接。
注意,雖然本實施例使用ReorderOK位元來指示是否可將一給定請求重新排序在來自同一代理者之先前傳輸的請求之前,但其他實施例可使用其他指示。舉例而言,若佇列30A至30B中實施兩個以上的佇列項,則可存在對應於佇列中每一項之ReorderOK位元。每一ReorderOK位元可指示是否可將該請求相對於對應佇列項中之請求進行重新排序。或者,仲裁器控制電路36可實施一組排序規則,其應用於代理者以判定是否可將一給定請求重新排序在先前傳輸的
請求之前。
圖3是一說明仲裁控制電路36之一項實施例之操作的流程圖。雖然為便於理解,以一特定次序展示方塊,但可使用任何次序。此外,可由仲裁控制電路36中之組合邏輯電路並行地實施多種方塊。其他方塊、方塊組合或整個流程圖可視需要在多個時鐘週期中做管線式流動。
若"挨餓"控制經啟動以用於當前仲裁循環(決策方塊50),則仲裁控制電路36可超越"正常"(例如基於優先權)仲裁。如上所述,若一給定較低優先權請求長期地處於佇列中,則可啟動"挨餓"控制。或者,若在若干連續仲裁期間皆選擇高優先權請求,則可啟動"挨餓"控制。若已啟動"挨餓"控制(決策方塊50,"是(yes)"支線),則仲裁控制電路36可選擇"老"請求(或較低優先權請求)作為仲裁勝利者(方塊52)。
若並未啟動"挨餓"控制(決策方塊50,"否(no)"支線),則仲裁器控制電路36可將多個請求屏蔽為無仲裁資格,且可在並未屏蔽的請求間進行仲裁。舉例而言,若佇列中之一請求之ReorderOK位元指示並不允許重新排序,且在同一佇列中存在一先前請求,則可屏蔽該請求以防止在該先前請求前選擇該請求(例如,若該請求具有比先前請求高的優先權)(方塊54)。另外,若一請求之目標為一目標代理者,而對於該目標代理者而言無可用於該請求之適當類型的信用,則可屏蔽該請求(方塊56)。若仲裁控制電路36限制對應於一請求之源代理者可消耗之信用且已達到該限制,則亦
可屏蔽該請求,儘管存在可用於消耗之信用(方塊56)。仲裁控制電路36可將具有最高優先權之未被屏蔽的請求(方塊58)選擇為仲裁勝利者。
仲裁控制電路36可選擇經由mux 32至位址內連線16上之仲裁勝利者。另外,仲裁控制電路36可宣告至作為選定請求之源之源代理者的許可信號,且可刪除來自佇列之選定請求。
圖4是可由源代理者、或仲裁控制電路36或兩者在多項實施例中實施的一組排序規則之一項實施例的方塊圖。異動之類型橫向展示於表之頂部且沿表之左側向下展示。在列與行之交叉處是關於是否允許將彼列中之類型的異動重新排序在彼行中之類型的先前異動之前的規則。
因此,只要不存在位址匹配,則可自由地對連貫讀取及寫入請求進行重新排序。在上下文中,對維持連貫性之粒度(例如快取區塊)偵測位址匹配。可將連貫讀取請求重新排序在非連貫之投遞式請求及非連貫完成之前,但不可排序在非連貫之非投遞式請求之前(連貫讀取列及非連貫投遞式、非連貫非投遞式及非連貫完成行)。在一些情況下,請求是否可重新進行排序取決於請求之特定例子(包括a)及b)答案之交叉處)。在圖4之表下定義a)及b)之請求的類型。Y/N意謂著重新排序為可允許的,但並不要求被允許。因此,若圖4指示"是"或"Y/N",則可將請求重新排序。
接著參看圖5,其展示一在位址內連線上傳送請求之方法的高級流程圖。來自源代理者之請求在位址交換器中佇列
(方塊70)。位址交換器在所佇列的請求間進行仲裁以選擇一請求(方塊72)。在位址內連線上傳輸該選定請求(方塊74)。
於熟習此項技術者在完全瞭解以上揭示案的情況下可顯而易見許多變化及修改。吾人意欲以下申請專利範圍解釋為包含所有該等變化及修改。
10‧‧‧系統
12A、12B、12C、12D‧‧‧代理者
14‧‧‧位址交換器
16‧‧‧位址內連線
18‧‧‧回應/資料內連線
20A、20B、20C、20D、20E、20F、20G、20H、20I‧‧‧
正反器
30A、30B‧‧‧佇列
32‧‧‧多工器
34‧‧‧輸出正反器
36‧‧‧仲裁器控制電路
38‧‧‧暫存器
40‧‧‧暫存器
圖1是一積體電路之一項實施例的方塊圖。
圖2是圖1所示之仲裁器/位址交換器之一項實施例的方塊圖。
圖3是一說明圖2所示之用於在請求間進行仲裁之仲裁器控制單元之一項實施例的操作的流程圖。
圖4是說明一項實施例之排序規則的表。
圖5是一在位址內連線上傳送請求之方法的高級流程圖。
雖然本發明易受多種修改及替代形式的影響,但本文藉由圖式中之實例詳細描述本發明之特定實施例。然而,應瞭解圖式及其詳細描述並非意欲將本發明限制為所揭示之特定形式,相反,本發明意欲覆蓋屬於附隨申請專利範圍所定義之本發明之精神及範疇內的所有修改、等效物及替代。
10‧‧‧系統
12A、12B、12C、12D‧‧‧代理者
14‧‧‧位址交換器
16‧‧‧位址內連線
18‧‧‧回應/資料內連線
20A、20B、20C、20D、20E、20F、20G、20H、20I‧‧‧
正反器
Claims (15)
- 一種互連系統,其包含:複數個代理者;一內連線;及一耦接至該複數個代理者及該內連線的交換器,其中該交換器包含複數個儲存位置,且其中該複數個儲存位置經組態以儲存由該複數個代理者傳輸至該交換器的複數個請求,且其中該交換器經組態以在儲存於該複數個儲存位置中之該複數個請求間進行仲裁,且其中該交換器經組態以在該內連線上傳輸一選定請求,其中該選定請求是該仲裁的一勝利者;其中該內連線包括一或多個時控儲存裝置,其耦接於該交換器與在該內連線上接收請求的該複數個代理者中之每一者之間,及其中一或多個時控儲存裝置之一數目是基於該請求自該交換器至一最遠接收代理者的傳輸時間,及其中同樣數目的時控儲存裝置係位於該交換器及該複數個代理者中之每一者之間,儘管該複數個代理者中之至少一者具有自該交換器一較短傳輸時間。
- 如請求項1之系統,其中該複數個儲存位置包含複數個佇列,其中該複數個佇列中之每一者對應於該複數個代理者中之一各別代理者,且該複數個佇列中之每一者經組態以儲存由該各別代理者傳輸的請求,其中該複數個佇列中之每一者包含該複數個儲存位置中的至少兩者。
- 如請求項1之系統,其中該交換器經組態以在選擇一第二 請求前,將由該複數個代理者中之一第一代理者傳輸的一第一請求選擇為該選定請求,其中由該第一代理者在該第一請求之前傳輸該第二請求。
- 如請求項3之系統,其中每一請求具有一對應優先權,且其中該交換器經組態以:若該第一請求具有比該第二請求高的優先權,則在選擇該第二請求前選擇該第一請求。
- 如請求項3之系統,其中該交換器經組態以:若可根據一組排序規則重新排序該第一及該第二請求,則在選擇該第二請求前選擇該第一請求;且其中該交換器經組態以:若不可根據該組排序規則重新排序該第一及該第二請求,則即使該第一請求具有比該第二請求高的優先權,仍然不在選擇該第二請求之前選擇該第一請求。
- 如請求項5之系統,其中該第一代理者經組態以隨該第一請求傳輸一指示,其指示該第一請求是否可與該第二請求進行重新排序,且其中該交換器經組態以:若該指示指明該第一請求係可與該第二請求進行重新排序,則在選擇該第二請求之前選擇該第一請求。
- 如請求項1之系統,其中該交換器經組態以判定該複數個請求中之每一者的該複數個代理者中之一目標代理者,且其中若該複數個請求中之一個請求基於該請求的該目標代理者而封鎖,則該交換器經組態以選擇至另一目標代理者的另一請求作為該選定請求。
- 如請求項7之系統,其中該交換器經組態以解碼該複數個請求中之每一請求之一位址的一部分,以判定該請求的 該目標代理者。
- 如請求項1之系統,其中該複數個代理者之一第一代理者係透過與該內連線分開之一第一路徑耦接於該交換器,以傳輸請求至該交換器,其中該第一路徑具有少於一時脈週期之一第一傳輸時間且該第一路徑不包含時控儲存裝置;及其中該複數個代理者之一第二代理者係透過與該內連線及該第一路徑分開之一第二路徑耦接於該交換器,以傳輸請求至該交換器,其中該第二路徑具有大於該時脈週期之一第二傳輸時間且該第二路徑包含至少一時控儲存裝置。
- 如請求項1之系統,其中該複數個代理者之一第一代理者經組態以傳輸複數個請求至該交換器,及其中該第一代理者係耦接以接收來自該內連線由該交換器傳輸之該選定請求,及其中該第一代理者經組態以回應於在該內連線上接收該選定請求,判定由該第一代理者傳輸至該交換器之該複數個請求中之何者為選定請求。
- 一種互連方法,其包含:在複數個儲存位置中對來自複數個代理者之請求進行佇列;在該複數個儲存位置中之該等請求間進行仲裁以選擇該複數個請求中之一選定請求;及在一內連線上傳輸該選定請求,其中該內連線包括一或多個時控儲存裝置,其耦接於一交換器與在該內連線上接收請求的該複數個代理者中之每一者之間,及其中 一或多個時控儲存裝置之一數目是基於該請求自該交換器至一最遠接收代理者的傳輸時間,及其中同樣數目的時控儲存裝置係位於該交換器及該複數個代理者中之每一者之間,儘管該複數個代理者中之至少一者具有自該交換器一較短傳輸時間。
- 如請求項11之方法,其中該複數個代理者之一第一代理者係透過與該內連線分開之一第一路徑耦接於該交換器,以傳輸請求至該交換器,其中該第一路徑具有少於一時脈週期之一第一傳輸時間且該第一路徑不包含時控儲存裝置;及其中該複數個代理者之一第二代理者係透過與該內連線及該第一路徑分開之一第二路徑耦接於該交換器,以傳輸請求至該交換器,其中該第二路徑具有大於該時脈週期之一第二傳輸時間且該第二路徑包含至少一時控儲存裝置。
- 如請求項11之方法,其進一步包含:該複數個代理者之一第一代理者傳輸複數個請求至該交換器;該第一代理者接收來自該內連線由該交換器傳輸之該選定請求;及該第一代理者回應於在該內連線上接收該選定請求,判定由該第一代理者傳輸至該交換器之該複數個請求中之何者為選定請求。
- 如請求項11之方法,其進一步包含:該交換器在選擇一第二請求前,將由該複數個代理者 中之一第一代理者傳輸的一第一請求選擇為該選定請求,其中由該第一代理者在該第一請求之前傳輸該第二請求;該第一代理者隨該第一請求傳輸一指示,其指示該第一請求是否可與該第二請求進行重新排序,且其中該交換器回應於該指示指明該第一請求係可與該第二請求進行重新排序,在選擇該第二請求之前選擇該第一請求。
- 如請求項11之方法,其進一步包含該交換器在選擇一第二請求前,將由該複數個代理者中之一第一代理者傳輸的一第一請求選擇為該選定請求,其中由該第一代理者在該第一請求之前傳輸該第二請求;及其中每一請求具有一對應優先權,且其中該交換器回應於該第一請求具有比該第二請求高的優先權,在選擇該第二請求前選擇該第一請求。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/201,581 US7461190B2 (en) | 2005-08-11 | 2005-08-11 | Non-blocking address switch with shallow per agent queues |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200809518A TW200809518A (en) | 2008-02-16 |
TWI396091B true TWI396091B (zh) | 2013-05-11 |
Family
ID=37440602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095129810A TWI396091B (zh) | 2005-08-11 | 2006-08-14 | 具有每個代理者佇列的淺層之非封鎖位址交換器 |
Country Status (9)
Country | Link |
---|---|
US (3) | US7461190B2 (zh) |
EP (1) | EP1922629B1 (zh) |
JP (1) | JP4851523B2 (zh) |
CN (1) | CN101305354B (zh) |
AT (1) | ATE489678T1 (zh) |
DE (1) | DE602006018483D1 (zh) |
ES (1) | ES2354748T3 (zh) |
TW (1) | TWI396091B (zh) |
WO (1) | WO2007022018A1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062582B1 (en) | 2003-03-14 | 2006-06-13 | Marvell International Ltd. | Method and apparatus for bus arbitration dynamic priority based on waiting period |
US9087036B1 (en) | 2004-08-12 | 2015-07-21 | Sonics, Inc. | Methods and apparatuses for time annotated transaction level modeling |
US7620746B2 (en) * | 2005-09-29 | 2009-11-17 | Apple Inc. | Functional DMA performing operation on DMA data and writing result of operation |
US20070112945A1 (en) * | 2005-11-12 | 2007-05-17 | Lori Brown | Supply and demand project management tool |
US8868397B2 (en) * | 2006-11-20 | 2014-10-21 | Sonics, Inc. | Transaction co-validation across abstraction layers |
US8069279B2 (en) | 2007-03-05 | 2011-11-29 | Apple Inc. | Data flow control within and between DMA channels |
US20080270658A1 (en) * | 2007-04-27 | 2008-10-30 | Matsushita Electric Industrial Co., Ltd. | Processor system, bus controlling method, and semiconductor device |
US9292436B2 (en) | 2007-06-25 | 2016-03-22 | Sonics, Inc. | Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary |
US8112450B2 (en) * | 2008-01-31 | 2012-02-07 | Microsoft Corporation | Priority messaging and priority scheduling |
JP5147584B2 (ja) * | 2008-07-23 | 2013-02-20 | 株式会社日立製作所 | ストレージサブシステム及びコントローラによるコマンド実行方法 |
US8121129B2 (en) * | 2008-12-15 | 2012-02-21 | International Business Machines Corporation | Optimizing throughput of data in a communications network |
US9514074B2 (en) | 2009-02-13 | 2016-12-06 | The Regents Of The University Of Michigan | Single cycle arbitration within an interconnect |
US8199759B2 (en) * | 2009-05-29 | 2012-06-12 | Intel Corporation | Method and apparatus for enabling ID based streams over PCI express |
US8611335B1 (en) * | 2009-08-13 | 2013-12-17 | Google, Inc. | System and method for assigning paths for data flows through a wide-area network |
US8351594B2 (en) | 2010-02-08 | 2013-01-08 | Genesys Telecommunications Laboratories, Inc. | System for indicating priority levels for transaction and task engagement in a call center |
US8379659B2 (en) * | 2010-03-29 | 2013-02-19 | Intel Corporation | Performance and traffic aware heterogeneous interconnection network |
US8972995B2 (en) | 2010-08-06 | 2015-03-03 | Sonics, Inc. | Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads |
US8868855B2 (en) * | 2011-02-28 | 2014-10-21 | Hewlett-Packard Development Company, L.P. | Request management system and method for dynamically managing prioritized requests |
CN102736997B (zh) * | 2011-04-01 | 2017-05-03 | 中兴通讯股份有限公司 | 一种片上互联总线的仲裁方法和系统 |
US9021156B2 (en) | 2011-08-31 | 2015-04-28 | Prashanth Nimmala | Integrating intellectual property (IP) blocks into a processor |
US9176913B2 (en) | 2011-09-07 | 2015-11-03 | Apple Inc. | Coherence switch for I/O traffic |
CN103024699B (zh) * | 2011-09-22 | 2016-05-25 | 北京神州泰岳软件股份有限公司 | 一种短信发送方法和一种信息资源站实体 |
US8713234B2 (en) * | 2011-09-29 | 2014-04-29 | Intel Corporation | Supporting multiple channels of a single interface |
US8874976B2 (en) | 2011-09-29 | 2014-10-28 | Intel Corporation | Providing error handling support to legacy devices |
US8775700B2 (en) | 2011-09-29 | 2014-07-08 | Intel Corporation | Issuing requests to a fabric |
US8711875B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Aggregating completion messages in a sideband interface |
US8713240B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Providing multiple decode options for a system-on-chip (SoC) fabric |
US8929373B2 (en) | 2011-09-29 | 2015-01-06 | Intel Corporation | Sending packets with expanded headers |
US8805926B2 (en) | 2011-09-29 | 2014-08-12 | Intel Corporation | Common idle state, active state and credit management for an interface |
US9053251B2 (en) | 2011-11-29 | 2015-06-09 | Intel Corporation | Providing a sideband message interface for system on a chip (SoC) |
US8856415B2 (en) * | 2012-02-01 | 2014-10-07 | National Instruments Corporation | Bus arbitration for a real-time computer system |
US8982695B2 (en) * | 2012-09-29 | 2015-03-17 | Intel Corporation | Anti-starvation and bounce-reduction mechanism for a two-dimensional bufferless interconnect |
US20150154132A1 (en) * | 2013-12-02 | 2015-06-04 | Sandisk Technologies Inc. | System and method of arbitration associated with a multi-threaded system |
CN103914413A (zh) * | 2014-04-18 | 2014-07-09 | 东南大学 | 用于粗粒度可重构系统的外存访问接口及其访问方法 |
US9209961B1 (en) | 2014-09-29 | 2015-12-08 | Apple Inc. | Method and apparatus for delay compensation in data transmission |
US9904645B2 (en) * | 2014-10-31 | 2018-02-27 | Texas Instruments Incorporated | Multicore bus architecture with non-blocking high performance transaction credit system |
US9684615B1 (en) * | 2015-01-08 | 2017-06-20 | Altera Corporation | Apparatus and methods for multiple-channel direct memory access |
US10466738B2 (en) | 2015-07-20 | 2019-11-05 | Lattice Semiconductor Corporation | Low-speed bus time stamp methods and circuitry |
US9904635B2 (en) * | 2015-08-27 | 2018-02-27 | Samsung Electronics Co., Ltd. | High performance transaction-based memory systems |
US9934174B2 (en) * | 2015-09-18 | 2018-04-03 | Seagate Technology Llc | Selectively enable data transfer based on accrued data credits |
US10303631B2 (en) * | 2016-03-17 | 2019-05-28 | International Business Machines Corporation | Self-moderating bus arbitration architecture |
US10911261B2 (en) | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US10846126B2 (en) | 2016-12-28 | 2020-11-24 | Intel Corporation | Method, apparatus and system for handling non-posted memory write transactions in a fabric |
EP3593225A4 (en) | 2017-03-06 | 2020-03-18 | Facebook Technologies, LLC | OPERATING POINT CONTROLLER FOR CIRCUIT REGIONS OF AN INTEGRATED CIRCUIT |
US11231769B2 (en) | 2017-03-06 | 2022-01-25 | Facebook Technologies, Llc | Sequencer-based protocol adapter |
US11080188B1 (en) | 2018-03-28 | 2021-08-03 | Apple Inc. | Method to ensure forward progress of a processor in the presence of persistent external cache/TLB maintenance requests |
US10802974B2 (en) * | 2018-10-15 | 2020-10-13 | Texas Instruments Incorporated | Virtual network pre-arbitration for deadlock avoidance and enhanced performance |
US11397809B2 (en) * | 2019-09-23 | 2022-07-26 | Stmicroelectronics International N.V. | Protection scheme for sensor segmentation in virtualization application |
US10972408B1 (en) | 2020-02-10 | 2021-04-06 | Apple Inc. | Configurable packet arbitration with minimum progress guarantees |
US11422946B2 (en) | 2020-08-31 | 2022-08-23 | Apple Inc. | Translation lookaside buffer striping for efficient invalidation operations |
US11615033B2 (en) | 2020-09-09 | 2023-03-28 | Apple Inc. | Reducing translation lookaside buffer searches for splintered pages |
US11675710B2 (en) | 2020-09-09 | 2023-06-13 | Apple Inc. | Limiting translation lookaside buffer searches using active page size |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW446874B (en) * | 1998-09-21 | 2001-07-21 | Ibm | Method and apparatus for transaction recirculation in a data processing system |
US20030065843A1 (en) * | 2001-09-28 | 2003-04-03 | Jones Phillip M. | Next snoop predictor in a host controller |
US6601151B1 (en) * | 1999-02-08 | 2003-07-29 | Sun Microsystems, Inc. | Apparatus and method for handling memory access requests in a data processing system |
TW586059B (en) * | 2001-03-30 | 2004-05-01 | Cirrus Logic Inc | System-on-a-chip with a soft cache and systems and methods using the same |
US20040165598A1 (en) * | 2003-02-21 | 2004-08-26 | Gireesh Shrimali | Switch fabric scheduling with fairness and priority consideration |
US6832279B1 (en) * | 2001-05-17 | 2004-12-14 | Cisco Systems, Inc. | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4897833A (en) * | 1987-10-16 | 1990-01-30 | Digital Equipment Corporation | Hierarchical arbitration system |
US4987833A (en) | 1988-03-28 | 1991-01-29 | Antosh Mark J | Solar induction monorail apparatus and method |
US5392434A (en) * | 1993-09-03 | 1995-02-21 | Motorola, Inc. | Arbitration protocol system granting use of a shared resource to one of a plurality of resource users |
JP3525506B2 (ja) * | 1994-09-02 | 2004-05-10 | 株式会社日立製作所 | バスアービトレーション装置及び方法 |
DE69633166T2 (de) * | 1995-05-26 | 2005-08-18 | National Semiconductor Corp., Santa Clara | Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration |
EP0752666A3 (en) * | 1995-07-06 | 2004-04-28 | Sun Microsystems, Inc. | Method and apparatus for fast-forwarding slave requests in a packet-switched computer system |
JPH1196108A (ja) * | 1997-09-18 | 1999-04-09 | Toshiba Corp | 計算機システム及びバス制御装置 |
JPH11191076A (ja) * | 1997-12-26 | 1999-07-13 | Fujitsu Ltd | 情報処理装置 |
JP3071752B2 (ja) * | 1998-03-24 | 2000-07-31 | 三菱電機株式会社 | ブリッジ方法、バスブリッジ及びマルチプロセッサシステム |
US6434649B1 (en) * | 1998-10-14 | 2002-08-13 | Hitachi, Ltd. | Data streamer |
KR100708096B1 (ko) * | 2000-07-21 | 2007-04-16 | 삼성전자주식회사 | 버스 시스템 및 그 실행 순서 조정방법 |
US7028115B1 (en) | 2000-10-06 | 2006-04-11 | Broadcom Corporation | Source triggered transaction blocking |
DE60139260D1 (de) | 2001-10-29 | 2009-08-27 | Ericsson Telefon Ab L M | Optimierung des Entwurfs einer synchronen digitalen Schaltung |
US7360008B2 (en) * | 2004-12-30 | 2008-04-15 | Intel Corporation | Enforcing global ordering through a caching bridge in a multicore multiprocessor system |
-
2005
- 2005-08-11 US US11/201,581 patent/US7461190B2/en not_active Expired - Fee Related
-
2006
- 2006-08-11 DE DE602006018483T patent/DE602006018483D1/de active Active
- 2006-08-11 ES ES06801345T patent/ES2354748T3/es active Active
- 2006-08-11 EP EP06801345A patent/EP1922629B1/en not_active Not-in-force
- 2006-08-11 CN CN2006800375684A patent/CN101305354B/zh not_active Expired - Fee Related
- 2006-08-11 AT AT06801345T patent/ATE489678T1/de not_active IP Right Cessation
- 2006-08-11 WO PCT/US2006/031520 patent/WO2007022018A1/en active Application Filing
- 2006-08-11 JP JP2008526262A patent/JP4851523B2/ja not_active Expired - Fee Related
- 2006-08-14 TW TW095129810A patent/TWI396091B/zh not_active IP Right Cessation
-
2008
- 2008-10-31 US US12/263,255 patent/US7752366B2/en not_active Expired - Fee Related
-
2010
- 2010-05-26 US US12/787,865 patent/US7970970B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW446874B (en) * | 1998-09-21 | 2001-07-21 | Ibm | Method and apparatus for transaction recirculation in a data processing system |
US6601151B1 (en) * | 1999-02-08 | 2003-07-29 | Sun Microsystems, Inc. | Apparatus and method for handling memory access requests in a data processing system |
TW586059B (en) * | 2001-03-30 | 2004-05-01 | Cirrus Logic Inc | System-on-a-chip with a soft cache and systems and methods using the same |
US6832279B1 (en) * | 2001-05-17 | 2004-12-14 | Cisco Systems, Inc. | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node |
US20030065843A1 (en) * | 2001-09-28 | 2003-04-03 | Jones Phillip M. | Next snoop predictor in a host controller |
US20040165598A1 (en) * | 2003-02-21 | 2004-08-26 | Gireesh Shrimali | Switch fabric scheduling with fairness and priority consideration |
Also Published As
Publication number | Publication date |
---|---|
CN101305354A (zh) | 2008-11-12 |
US7752366B2 (en) | 2010-07-06 |
TW200809518A (en) | 2008-02-16 |
EP1922629B1 (en) | 2010-11-24 |
US7461190B2 (en) | 2008-12-02 |
WO2007022018A1 (en) | 2007-02-22 |
ATE489678T1 (de) | 2010-12-15 |
CN101305354B (zh) | 2011-08-31 |
ES2354748T3 (es) | 2011-03-17 |
EP1922629A1 (en) | 2008-05-21 |
JP4851523B2 (ja) | 2012-01-11 |
DE602006018483D1 (de) | 2011-01-05 |
US20100235675A1 (en) | 2010-09-16 |
US20070038791A1 (en) | 2007-02-15 |
US20090055568A1 (en) | 2009-02-26 |
JP2009514065A (ja) | 2009-04-02 |
US7970970B2 (en) | 2011-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI396091B (zh) | 具有每個代理者佇列的淺層之非封鎖位址交換器 | |
US9535860B2 (en) | Arbitrating memory accesses via a shared memory fabric | |
EP3238083B1 (en) | Mitigating traffic steering inefficiencies in distributed uncore fabric | |
US6606676B1 (en) | Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system | |
EP2430554B1 (en) | Hierarchical memory arbitration technique for disparate sources | |
EP3238080B1 (en) | Guaranteed quality of service in system-on-a-chip uncore fabric | |
US8407432B2 (en) | Cache coherency sequencing implementation and adaptive LLC access priority control for CMP | |
US6725307B1 (en) | Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system | |
US10133670B2 (en) | Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric | |
US9971711B2 (en) | Tightly-coupled distributed uncore coherent fabric | |
US11537538B2 (en) | Inter cluster snoop latency reduction | |
JP5356024B2 (ja) | 部分的にポピュレートされる階層型クロスバ | |
US7093052B2 (en) | Bus sampling on one edge of a clock signal and driving on another edge | |
US6928525B1 (en) | Per cache line semaphore for cache access arbitration | |
US6457085B1 (en) | Method and system for data bus latency reduction using transfer size prediction for split bus designs | |
US8397006B2 (en) | Arbitration scheme for accessing a shared resource | |
US7028115B1 (en) | Source triggered transaction blocking | |
US7668996B2 (en) | Method of piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization | |
EP3238085B1 (en) | Virtual legacy wire |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |