TWI474193B - 互連中的阻隔交易 - Google Patents
互連中的阻隔交易 Download PDFInfo
- Publication number
- TWI474193B TWI474193B TW99133596A TW99133596A TWI474193B TW I474193 B TWI474193 B TW I474193B TW 99133596 A TW99133596 A TW 99133596A TW 99133596 A TW99133596 A TW 99133596A TW I474193 B TWI474193 B TW I474193B
- Authority
- TW
- Taiwan
- Prior art keywords
- transaction
- blocking
- transaction request
- blocked
- transactions
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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/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 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/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
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
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)
- Multi Processors (AREA)
- Bus Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Circuit For Audible Band Transducer (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Measuring Volume Flow (AREA)
- Computer And Data Communications (AREA)
- Logic Circuits (AREA)
- Small-Scale Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
本發明有關於資料處理系統之領域。具體而言,本發明有關於用於資料處理設備之互連電路系統,此互連電路系統提供複數個資料路線,而一或多起始裝置(如,主站)可經由此資料路線來存取一或多接收裝置(如,從站)。
可利用互連來提供在資料處理系統中不同元件間的連接。這些互連提供了複數個資料路線,而一或多起始裝置可經由這些資料路線來存取一或多接收裝置。起始裝置就是一種產生一交易請求的裝置,且因而可為一主站(如,一處理器)或其可為另一互連。接收裝置就是一種可接收該交易的裝置,且因而可為一從站(如,一周邊元件)或亦可為另一互連。
隨著系統越來越複雜並利用複數個處理器彼此或和複數個裝置進行通訊,撰寫用於多處理器系統之軟體的設計者必須對該電路系統元件的佈局以及架構的潛時有更詳細的瞭解,方能撰寫出能夠確保互動處理在長時間下能有一致的行為的軟體。即便具備了這些詳細的瞭解,要達到這種一致性仍須耗費大量的心力且會犧牲系統的效能。
目前極需提出新的機制,以便讓程式設計者可針對任一架構以一種通用的方式,即能確保互動處理在長時間下的一致性。
本發明之第一態樣提供了用於一資料處理設備之互連電路系統,上述互連電路系統用以提供資料路線,以供至少一起始裝置經由該資料路線而存取至少一接收裝置,上述互連電路系統包含:至少一輸入端用以接收來自上述至少一起始裝置之交易請求;至少一輸出端用以輸出交易請求至上述至少一接收裝置;至少一路徑用以於上述至少一輸入端與上述至少一輸出端之間傳輸上述交易請求;控制電路系統用以將上述所接收之交易請求由上述至少一輸入端發送至上述至少一輸出端;其中上述控制電路系統用以回應一阻隔交易請求,以便沿著上述至少一路徑其中之一傳遞的一交易請求訊息流中的上述阻隔交易請求而保持至少某些交易請求的一順序,此一功能之實現係藉著相對於上述交易請求訊息流中晚於上述阻隔交易請求的至少某些交易請求,拒絕將在上述交易請求訊息流中早於上述阻隔交易請求的至少某些上述交易請求重新排序;其中上述阻隔交易請求包含一指示元,其指明在上述交易請求之訊息流內的上述交易請求中,何者包含其順序將被保持的上述至少某些交易請求。
當系統因為配備了多處理器與複數個周邊元件而變得更複雜時,程式設計者很難在沒有掌握用以執行該程式之系統的架構之細節的情形下,保持所需相對交易順序。提供可回應阻隔交易之互連電路系統使得軟體設計者能夠在不需考量該系統之架構與電路系統元件佈局的情形下,即可確保行為的一致性。
特別是,提供具有控制電路系統之互連電路系統,其中控制電路系統可用以回應阻隔交易請求,以保持至少某些請求相對於阻隔之順序,這代表著軟體設計者可以在僅瞭解資料開發商與消費者之間的邏輯關係的情形下,且不需瞭解用以操作該軟體之系統的電路系統元件佈局與延遲,即可撰寫出可於該系統上操作的軟體。如此一來,此互連電路系統使得程式設計者可以保持交易的相對順序而不需考量架構。
阻隔交易係指此交易具有一性質,使得受其控制的複數個交易不能相對於此阻隔交易而改變順序。因此,可將阻隔交易插入一交易請求訊息流中,以保持受其控制交易的順序,且因而防止某些交易的進行早於其他交易。藉由在阻隔交易中提供一指示元以指明該阻隔可控制該交易請求訊息流的何種交易請求,可以對系統提供更精確的控制,而能夠將因為阻隔而生的潛時僅限於該些交易(其包含不需被延遲的交易)的一子集,而允許其他交易如常行進。
若是沒有阻隔,設計者必須對系統中複數個代理器的架構關係有詳盡的瞭解;使用了阻隔時,設計者僅需知道資料開發商與消費者之間的邏輯關係即可。這些邏輯關係不會因為在不同的架構上執行該軟體而改變,且因而使得設計者能夠創造出在所有平台上都能一致運行的軟體,並使得且軟體系統能夠更輕易地跨平台使用。
實際上,阻隔使得硬體與軟體軟體設計可以脫鉤處理,因而能夠輕易地部署第三方軟體。
在某些實施方式中,該控制電路系統可保持順序,其係藉由延遲上述至少某些交易請求(其在上述交易請求訊息流中,發生於上述阻隔交易請求之後)的傳輸,直到接收到清空上述阻隔交易的一回應信號為止。
一般來說,控制電路系統不允許阻隔交易請求趕過該些至少某些交易請求中必須保持順序且在該交易訊息流中位於該阻隔前方的交易請求。在某些「非阻斷」阻隔中,該阻隔亦不允許位於該阻隔後方的交易請求趕過此阻隔,而得以保持該順序。在一系統中,當應保持在該阻隔後方的該至少某些交易請求已經被延遲了(可能是由阻斷電路系統延遲),則可允許位於該阻隔後方的交易請求趕過該阻隔,因為該阻隔不需要保持這些交易請求的順序,因為這些交易請求在上游就已經被延遲過了。然而,在該阻隔前方的所有交易請求必須仍然保持在該阻隔之前,否則當因為回應指明該阻隔已經到達一回應信號產生器的一回應信號,而允許該被延遲的交易請求行進時,則應指明在該交易訊息流中位於該阻隔之前的所有交易請求亦已到達此點。
在某些實施方式中,上述阻隔交易和該互連處理的其他交易請求具有相同的性質,且因此,該互連可提供此額外的功能,且同時在其他面向中與一更傳統的互連非常相似。
應注意到,一起始裝置是位於該互連上游且可供應交易請求的任何裝置。因此,舉例來說,其可以是另一互連或可以是一主站。相似地,一接收裝置為位於該互連下游且可接收該交易請求的裝置,因此,舉例來說,其可以是一從站或可以是另一互連。
在某些實施方式中,上述指示元可用以指明上述交易請求的一性質,且上述至少某些交易請求包含具有上述性質的交易請求。
一種指明何種交易請求應受到該阻隔控制的方法是指明這些請求的一性質。如此一來,即可識別具有此性質的任何交易請求,並做出相應的處理。在許多情形中,其可以是具有某些必須受到控制之性質的交易請求,因為只有這些交易請求可能導致該系統不正確地運作。
在某些實施方式中,上述性質包含上述交易請求的一來源。
該阻隔亦可專屬於特定起始裝置,當主站產生的交易保持相對於每一其他交易之順序很重要,而不需保持相對於他處產生之其他交易的順序時,此種性質很有用。允許阻隔僅延遲來自特定起始裝置的交易有助於降低該阻隔引入的潛時,因為其可降低被阻隔延遲的交易之數目。
在某些實施方式中,上述指示元指明上述交易請求的一功能。
某些互連可經設置而使得可利用阻隔來延遲具有一預定功能的交易請求,而不會延遲其他交易請求。因此,舉例來說,它們可以延遲對記憶體的寫入但不會延遲讀取。
在某些實施方式中,上述指示元指明一或多位址,上述至少某些交易請求包含前往上述一或多位址的交易請求。
由於阻隔交易的格式經設計和該互連傳輸之其他交易類似,阻隔交易具有位址欄,且因此,一種能夠方便且有效地限制阻隔的影響之方式就是限制這些阻隔僅能控制前往一或多個位址的交易。因此,僅有前往這些位址的交易會受到該阻隔的控制。當對前往相同位址或位址範圍的二或更多個交易而言,使其不得相對於彼此而重新排序是很重要的時候,上述方式非常有用。可利用在阻隔交易位址欄中的基底位址在該阻隔中表示一位址範圍,並可提供進一步的欄位以提供關於該範圍大小的一指示。
定址阻隔交易的進一步的優點是不需要在每一發散節點複製這些交易,因為它們僅控制前往某些目的地的交易請求,且因此,僅需將其沿著前往這些經定址目的地的路徑傳送。因此,當互連之電路系統元件的佈局使得其中有許多節點,且若有許多經複製的阻隔可能會造成阻隔風暴時,就適用此種方式。使用定址阻隔可以避免前述問題。
可利用定址阻隔交易來阻斷所有後續交易,或在某些實施方式中,可阻斷前往指定位址或位址範圍的交易,且不允許進一步傳送這些交易,直到接收到針對該阻隔之一回應為止。在其他實施例中,可將其用於一非阻斷方式中。只要欲將該阻隔交易傳送至可能具有此一位址的每一目的地,則在某些實施方式中,不會在接收到針對該阻隔之一回應之前延遲後續交易請求,該阻隔僅停留在所需的交易訊息流中,且不允許任何位於其後的交易趕過它。如此一來,其可提供所需的控制而不會過分地增加系統潛時。
定址阻隔亦可用於具有危害單元的系統中。危害單元係用以追蹤待處理且可能會產生危害的交易,因為這些交易可能會影響較晚的交易。舉例來說,一儲存交易中儲存了前往一特定地址的資料,其會影響對該位址的一讀取,且因此,在交易訊息流中,位於該儲存之後的任何對該位址的讀取,都應該保持在儲存的後方。一危害單元追蹤可能的危害交易以及任何可能是一危害的較晚的交易,直到其已經偵測到該危害交易已經完成為止。在較理想的情形中,危害單元應該要小,然而,若其存滿時,起始裝置就不能發出任何交易,直到一危害交易已經完成且已由該危害單元刪除該相關交易請求為止。利用此種方式使系統暫停會增加潛時,而處理此一問題的一種方法就是使用阻隔。一阻隔可確保某些交易的順序可保持不變。然而,它們本身就可能造成潛時。一定址阻隔為一良好的解決方案,因為若產生一阻隔,其係前往最近儲存的危害交易其中一交易之位址,則沒有後續交易可趕過此危害交易,且因而不再有可由該危害單元移除的一危害。
在某些實施方式中,上述互連電路系統包含複數個區域,每一區域包含來自一起始裝置之至少一輸入端,且上述阻隔交易請求包含一區域指示元以指明上述阻隔是否應延遲由所有起始裝置接收之交易請求,或僅延遲來自上述區域其中之一的起始裝置接收的交易請求,或不延遲交易請求。
進一步限定阻隔之功能性的方法是針對特定區域來進行限制。接收來自特定起始裝置之信號以及具有與相關指示元的阻隔之區域可指明其是否應延遲來自所有起始裝置的交易或僅延遲來自與特定區域相關之起始裝置的交易或不延遲交易請求。若該區域經過適當的設定,則這可以提供一種方便的方法來限制阻隔交易行為並降低潛時且同時保持所需的功能性。
在某些實施方式中,上述互連電路系統更包含阻隔管理電路系統。
除了用以相對於阻隔交易而控制交易請求的控制電路系統之外,還可以有阻隔管理電路系統,其可管理阻隔交易並在適當時將其刪除或合併。
阻隔交易請求之傳輸與其複製及其後續回應的處理並非不需管理成本,且因此,若有鄰近的阻隔交易請求,較有利的情形是將其合併以形成一單一阻隔交易請求,其可依需求而控制周遭交易請求的順序。如此一來,僅需針對此一經合併的請求進行回應、複製等等。
在某些實施方式中,上述控制電路系統用以在位於通往一匯聚區域之一進入點的一發散點處複製阻隔交易,以將一匯聚指示元提供給上述經複製的阻隔交易;以及上述阻隔管理電路系統可回應對於上述經複製的阻隔交易離開上述匯聚區域的偵測,以移除上述匯聚指示元並合併至少某些上述經複製的阻隔交易。
當有一發散節點且一單一進入路徑成為數個出口路徑時,為了讓該阻隔交易能正常發揮功能,必須在這些出口路徑上複製這些阻隔交易。這使得可以相對於每一該路徑上的該阻隔交易保持相關的交易順序。若發散路徑係進入一匯聚區域,則之後這些路徑之至少某些路徑會合併。這可能導致所有經複製的阻隔會被傳下這些經合併的路徑。因此,在本發明的某些實施方式中,不僅會複製該阻隔交易,且亦提供一匯聚指示元給該阻隔交易。這使得阻隔管理電路系統能偵測離開匯聚區域的經複製的阻隔交易,且可瞭解其係和該其他經複製的阻隔交易相關,並於適當時合併這些經複製阻隔交易中的至少某一些交易阻隔。亦應於匯聚區域的邊緣移除該匯聚指示元,且自此之後,可以獨立地處理該阻隔。
應注意到,若前往特定位址的交易請求永遠會利用相同的路徑而通過一匯聚區域,則就該位置而言該區域在功能上並非匯聚的,若此情形適用於所有所有位址,則區域對於任何位置而言都不是匯聚的,且可將其視為一交叉耦合區域來處理。不具有任何匯聚區域有一些優點,且因此,在某些實施方式中,互連經設計而使得對所定址的交易而言,該區域並非匯聚的,且因此,雖然從電路系統元件的佈局上看來其是匯聚的,但其在功能上是以交叉耦合區域的方式來運作。
在某些實施方式中,上述控制電路系統可進一步用以將一指示提供上述經複製的阻隔以指明上述經複製的阻隔交易之數目,以向上述阻隔管理電路系統指明可供合併的阻隔交易數目。
該控制電路系統可提供一指示給該經複製的阻隔交易以指明上述經複製的阻隔交易的數目。這使得該阻隔管理電路可以知道有多少潛在的阻隔交易可供合併到一起,並於匯聚區域的出口收集這些阻隔交易並於適當時將其合併到一起。
在某些實施方式中,上述阻隔管理電路系統用以回應針對上述交易請求訊息流中有鄰近的阻隔交易請求具有一相同指示元的偵測,以合併上述鄰近的阻隔交易請求並提供上述經合併的具有上述相同指示元的阻隔交易請求。
在其他情形中,可藉由將阻隔交易請求合併到一起而將其由系統移除。舉例來說,具有相同指示元的鄰近阻隔交易請求對於同交易會有相同的效果,且因此可將其合併成為一單一阻隔交易請求。
在某些實施方式中,上述阻隔管理電路系統用以合併具有不同指示元的阻隔交易請求,並提供一指示元給上述經合併的阻隔交易請求以指明上述經合併的阻隔交易請求之每一上述指示元所指的交易。
此外,亦可將具有不同指示元的阻隔交易請求合併,只要能夠指定一個新的指示元給該經合併的阻隔交易請求以指明受到該些經合併的阻隔交易之每一阻隔教義控制的交易請求可受到該經合併的阻隔交易控制。
舉例來說,當該阻隔交易請求具有不同區域指示元,則一經合併的阻隔交易可具有一區域指示元以指明該二合併之區域的限制。此指示元應包含各該獨立阻隔交易所指明的二區域。因此,若兩者有所重疊,則可適當地利用指示元以指明該二區域中最大的區域。
在某些實施方式中,上述阻隔管理電路系統經設置用以針對偵測到有一阻隔交易請求跟著一先前阻隔交易請求之後且兩者間沒有順序受到上述在後阻隔交易請求控制的干涉交易請求做出回應,以:重新排序上述交易請求而使得上述在後阻隔交易被移動到鄰近上述先前阻隔交易請求處;以及合併上述相鄰的阻隔交易請求。
相似地,在其他實施方式中,上述阻隔管理電路系統經設置用以針對偵測到有一阻隔交易請求跟著一先前阻隔交易請求之後且兩者間沒有順序受到上述在前阻隔交易請求控制的干涉交易請求做出回應,以:重新排序上述交易請求,而使得上述先前阻隔交易被移動到鄰近上述在後阻隔交易請求之處;以及合併上述相鄰阻隔交易請求。
當有多個阻隔交易請求具有干涉交易請求,且這些該干涉交易請求都沒有受到該第一阻隔交易請求控制或都沒有受到該第二阻隔交易請求控制時,則可相對於這些請求而移動不具有受其控制之干涉請求的該阻隔交易請求,且因此,可將其移動至鄰近該其他阻隔請求處,且可進一步合併之。更有甚者,若所有干涉交易請求都未受到任一阻隔的控制,則可移動此二阻隔,且可重新排序位於其間的該些交易,且之後可合併該些相鄰阻隔。利用此種方式來合併阻隔可以降低與傳輸阻隔交易請求以及傳輸回應相關的管理成本。
在某些實施方式中,上述阻隔管理電路系統經設置用以針對偵測到在二或多可合併之交易之間有一阻隔交易做出回應,以複製上述阻隔交易並將上述經複製的阻隔交易其中之一放置於上述二或多交易的任一側以及合併上述二或多交易。
通常可合併但被一阻隔交易隔開的交易亦可合併,只要將該阻隔交易經複製到該經合併的交易的任一側上即可。應注意到,除了該經合併的交易之外,在上述二阻隔之間也可以有其他交易。
在某些實施方式中,上述阻隔管理電路系統用以偵測位於重新排序緩衝區內或位於上述互連電路系統內之一節點上的上述阻隔交易請求,上述節點包含通往一二等分路徑的一進入節點,在上述互連電路系統中上述二等分路徑為上述進入節點與上述二等分路徑之一出口節點之間的唯一通訊路徑。
可在通往一二等分路徑的一進入節點處或於一重新排序緩衝區內,進行將此種阻隔交易請求的管理。在這些點上,可以確認這些阻隔交易請求並未在他處複製,且因此可以安全地將其合併。
在某些實施方式中,上述控制電路系統用以標記不受任何阻隔交易控制的交易請求,上述至少某些交易請求不包含上述經標記的交易請求。
能夠標記交易請求而讓阻隔交易不能套用至其上是很方便的。這可用於順應不具有阻隔的舊有系統,且因此利用此種方式以舊有組件來標記交易,使得它們可如支援阻隔之系統所預期般地運作。這亦可用於當某些指令很明顯不應被延遲(如,具有高優先性者)的時候,利用上述方式來標記某些指令。
本發明的第二態樣提供了一起始裝置,其可用以透過一互連發出交易請求予一接收裝置,上述起始裝置包含:一阻隔交易請求產生器,用以產生阻隔交易請求,此阻隔交易請求可向上述互連指明應當保持在通過上述互連之一交易請求訊息流內的至少某些交易請求之順序,而保持順序的方法是拒絕將在上述交易請求訊息流中早於上述阻隔交易請求的至少某些上述交易請求,相對於上述交易請求訊息流中晚於上述阻隔交易請求的至少某些上述交易請求,而重新排序;其中上述阻隔交易請求產生器用以提供一指示元予上述所產生的阻隔交易請求,以指明在上述交易請求之訊息流內的上述交易請求中,何者包含上述其順序需被保持的至少某些交易請求。
在某些實施方式中,上述起始裝置包含一阻隔交易產生器,上述阻隔交易產生器經設置用以針對偵測到有一高度排序的交易請求之輸出做出回應,以產生並輸出一阻隔交易。
一起始裝置產生的高度排序之交易具有暫停該主站輸出後續交易的效果,因為一高度排序之交易可能需要以其在起始交易訊息流中呈現的順序來進行,且不得相對於其他交易而重新排序。舉例來說,在AXI系統中即是如此,因為AXI允許重新排序交易,且亦提供了獨立的位址寫入與位址讀取通道。因此,當輸出至一互連時,該起始裝置通常會暫停以避免任何潛在的重新排序危害。本發明實施方式提供一種可以確保該起始裝置安全運作的方式,而不需讓起始裝置暫停,其係藉由顫生一阻隔且該阻隔係在該高度排序之交易之後傳送。在此時,由於已知後續交易不可能相對於其他交易而重新排序,就可以安全地傳輸後續交易。顯然地,一阻隔具有其自身的潛時,然而,由於早期回應產生與其他阻隔管理工具,此潛時明顯低於由暫停起始裝置所致的潛時。
在某些實施方式中,上述起始裝置更包含:一危害單元用以儲存可能產生一危害的突出交易請求;以及一輸出端用以輸出上述交易請求至上述互連;其中上述起始裝置經設置用以針對偵測到上述危害單元已存滿做出回應,而使得可暫停進一步交易請求的輸出,以產生並輸出一阻隔交易且清空至少一交易請求的上述危害單元。
如上所述,資料處理設備內的危害單元經設計為小尺寸,且因此,其僅能儲存有限數目的交易請求。當它們被存滿時,必須暫停該裝置,直到移除至少一該經儲存的交易請求為止,在此時其可繼續安全地進行處理。這很明顯地會增加系統潛時。本發明之實施方式藉由在裝置內提供一阻隔交易請求產生器來處理此一問題。此方法可回應針對偵測到危害單元已存滿,而發出一阻隔且這使得起始裝置可以自危害單元中移除任何與該阻隔相關的經儲存的交易。因此這使得起始裝置可以繼續進行處理,並可解決必須使之暫停的必要。
在某些實施方式中,上述阻隔交易請求為與所有交易請求相關的一全域阻隔交易請求,且上述起始裝置用以清空所有交易請求的上述危害單元。
在某些實施方式中,該阻隔交易請求為一全域阻隔交易請求,且因此,發出此一阻隔代表該危害單元內的所有交易都無法產生一危害,且可清空整個危害單元。
在其他實施方式中,上述阻隔交易與儲存於上述危害單元中的上述交易請求之一的位址相關,且上述危害單元用以自上述危害單元清空上述經儲存的交易請求。
全域阻隔交易請求具有與其相關的潛時問題,且因此為了系統效能著想,在較有利的情形中可輸出一定址阻隔交易請求,而使得該阻隔可停下前往該特定位址的交易請求,但其他交易請求可以繼續行進。與此一阻隔有關的潛時遠小於與全域阻隔有關的潛時。其缺點是在危害單元中,僅可刪除與此位址相關的一或多交易請求。然而,這可以釋放出至少一空間,且可允許起始裝置繼續進行處理並停止上述暫停操作,直到危害單元再度存滿為止。
在某些實施方式中,上述阻隔交易與新近儲存於上述危害單元中的上述交易請求其中一交易的位址有關,且上述危害單元用以自上述危害單元中清空上述新近儲存的交易請求。
本發明的第三態樣提供了一種資料處理設備,其包含其包含:根據本發明第二態樣的至少一起始裝置,用於發出交易請求;至少一接收裝置,用以接收上述交易請求;以及根據本發明第一態樣的互連,用以將上述至少一起始裝置連接至上述至少一接收裝置。
本發明的第四態樣提出一種接收裝置,用以由一互連接收交易請求,上述交易請求包含阻隔交易請求,上述阻隔交易請求用以保持一交易請求訊息流內至少某些交易請求的順序,其係藉由拒絕將在上述交易請求訊息流中早於上述阻隔交易請求的至少某些上述交易請求,相對於上述交易請求訊息流中晚於上述阻隔交易請求的至少某些上述交易請求,而重新排序;上述阻隔交易請求包含一指示元,以指明上述至少某些交易請求中何者的順需應予保持;上述接收裝置包含:一回應信號產生器,上述回應信號產生器用以回應上述阻隔交易請求,以產生並傳送對上述阻隔交易請求之一回應,且可回應上述阻隔交易請求中的一預定指示元,以延遲傳送上述回應,直到上述接收裝置已經至少部分處理了於上述阻隔交易請求之前接收之上述交易請求的至少一交易請求。
一接收裝置可針對接收到該阻隔交易請求做出回應,以產生並傳輸一回應。然而,在某些情形中,該阻隔的本質使得接收裝置不會立刻進行回應,而會等到先前所接收之交易的至少某些處理已經完成或至少部分完成為止。此種方式在某些情形中非常有用,舉例來說,在一情形中,一資料同步阻隔交易不僅需要在其之前的所有交易都已經到達其最終目的地,且亦需要其處理已完成。在此種情形中,只有在以上條件都成立的時候才會傳送一回應,這使得起始裝置與互連一旦接收到該回應之後,就能夠安全地處理進一步的交易。
本發明的第五態樣提出一種用以將資料由至少一起始裝置透過互連電路系統而發送至至少一接收裝置的方法,上述方法包含:由位於至少一輸入端的上述至少一起始裝置接收交易請求;將上述交易請求沿著複數個路徑其中至少一路徑向至少一輸出端發送;對於接收到一阻隔交易請求做出回應,以:在沿著上述至少一路徑其中之一傳遞的一交易請求訊息流內,保持至少某些交易請求相對於上述阻隔交易請求的順序,其係藉由拒絕將在上述交易請求訊息流中早於上述阻隔交易請求的至少某些上述交易請求,相對於上述交易請求訊息流中晚於上述阻隔交易請求的至少某些上述交易請求,而重新排序;其中上述阻隔交易請求包含一指示元,其指明在上述交易請求之訊息流內的上述交易請求中,何者包含其順序需被保持的上述至少某些交易請求。
第1圖繪示根據本發明一實施方式的互連10。互連10經由複數個路徑將複數個主站20、22、24及26連接至複數個從站30、32、34及36。這些路徑可具有交叉耦合部分(例如圖中所例示的40),在此處,於個別分支點41與42處分別將二路徑切分成二個路徑,並在合併點44與45分別合併。其中亦可有二等分路徑(例如圖中所例示的50),這些路徑在該互連中的二節點之間的唯一連接,而使得切斷該路徑將會實質上將該互連一分為二。
當交易沿著這些不同路徑移動時,路徑的本質(亦即這些路徑是否為交叉耦合或二等分)會影響這些交易的順序。舉例來說,一交叉耦合路徑的起點是一分支點,其可將該交易訊息流切分成多重交易訊息流,而在該分支點之前位於另一交易後的一交易可能會比原本在前面的交易到達目的地之前更早到達其本身的目的地。沿著二等分路徑移動的交易必須保持其順序,除非有某些功能單元允許重新排序,上述功能單元如一重新排序緩衝區(例如圖中所例示的60)。可利用重新排序緩衝區來重新排序交易,以允許具有較高優先性的交易在一較低優先性的交易之前由該站傳輸出去。
亦有一些所謂的再匯聚路徑,其中先前分開的路徑又匯合在一起,且這亦可能造成該交易訊息流內的重新排序。互連10不具有任何再匯聚路徑。
多個交易到達其個別目的地的的順序可能會其傳送順序不同的事實,對於取決於先前交易的後續交易(且因此必須先完成先前交易)而言,可能會導致一些問題。舉例來說,若在交易訊息流中有前往相同位址的一儲存指令位於一載入指令之前,則在載入之前先完成儲存是非常重要的,不然載入動作會讀取到不正確的數值。為了讓程序設計者能夠確保所需的交易以所需的順序到達目的地,互連10經設置可用以回應該交易訊息流中的阻隔交易,以保持該互連中的交易相對於該阻隔的順序。因此,可在不應趕過彼此的交易之間插入一阻隔交易,而這可以確保不會發生重新排序的問題。
該互連可藉由延遲在於該互連內傳遞之該交易訊息流中位於該阻隔交易之後的交易,來回應這些阻隔交易,直到已經接收到對於該阻隔交易之一回應信號為止。該回應信號指明已經可以安全的傳送一後續指令。應注意到,可清空一路徑的一回應信號可能可以是一種指明該較早的交易已全數完成的信號,或其可以僅是一種指明該阻隔交易已經沿著一路徑傳送(若,舉例來說,該路徑為二等分路徑)的信號,或該阻隔已經到達傳送出一早期清空回應信的一節點並可再度進行阻斷。
該互連亦可僅沿著各種路徑在該先前交易之後傳送該阻隔交易,而使得當偵測到該阻隔到達一特定點時,就該互連可以確信所有先前交易已經通過此點。不論其是僅在訊息流中傳輸該阻隔,或基於阻隔的本質而延遲交易以及基於該阻隔是否為一阻斷阻隔。
阻斷阻隔係指在受其控制的交易訊息流中位於其後的交易在上游某處被阻斷,且因此,其他交易可以趕過阻斷阻隔,因為它們必定不是需要保持在後方的交易;然而,阻隔本身不能趕過位於其前方受其控制的任何交易請求。可利用早期回應單元來接通阻斷阻隔。詳見下文。
非阻斷阻隔係指沒有交易請求被阻斷,且因此,受其控制的交易請求必須位於此阻隔交易請求的正確側上。因為沒有上游阻斷,不能利用早期回應單元將其接通。由下文討論將可理解,可利用阻斷或非阻斷指示元來指明阻隔的不同本質;或者是,一系統僅可支援一種類型的阻隔,在此種情形中就不需要指示元。或者是一阻隔可為預設阻隔類型,且在此情形中,只有另一種類型的阻隔具有一指示元。或者是,在互連中可能有些區域中的所有阻隔都表現成阻斷阻隔,而在有些區域中的所有阻隔都表現成非阻斷阻隔。在此種情形中該互連可經設置而使得阻隔不攜帶任何指示元,但該互連可以基於其在互連中的位置而以特定的方式來處理此阻隔。
阻隔交易的進程受到控制電路系統70的控制。在本圖式中,以單一阻斷概要地呈現此一情形,然而,在實際運用上,控制電路系統可分散於整個互連中並鄰近由其控制的電路系統。因此,在每一分支點,舉例來說,會有某些控制電路系統以確保至少在某些實施方式中,當接收到一阻隔交易時會將其複製,且可由該分之點將一經複製的阻隔交易向下傳送至每一出口路徑。在其他實施方式中,會將該經複製的阻隔向下傳送至除一者外之所有出口路徑,下文將詳述之。控制電路系統可以意識到已經複製了阻隔交易,且因此,可在其清空用以傳輸交易(其係位於原始阻隔交易之後且必須保持在其後)的路徑之前,要求來自每一經複製的阻隔交易之回應信號。
在最簡單的形式中,由一主站(如,主站20)發出一阻隔交易,且接著主站20阻斷所有後續交易,直到其具有來自該互連的一回應信號(其指明主站可傳輸後續交易)。或者是可由緊鄰該互連之進入點上的控制電路系統發出阻隔。將位於該阻隔交易之前的交易以及該阻隔交易傳輸至該互連,且控制電路系統70控制這些交易的發送。因此,在分支點42會複製阻隔交易,且其移動到合併點44與45。在此點上,該交易進入了二等分路徑50與52,且因為這些交易不能相對於位於一阻隔而改變其在這些路徑上的位置,當該阻隔交易到達這些路徑其中之一的起點時,就可以知道位於其之前的所有交易都位在前方,且在沿著該路徑上仍然會位於其前方。因此,清空單元80可傳送一早期回應信號,且可回應對所有這些信號的接收,位於分支點的控制電路系統傳送將早期回應信號傳送至主站20,之後主站20可接通位於受其控制的阻隔交易之後的交易,並將其傳輸給該互連。
藉由提供早期回應單元80,可將主站20阻斷一段短得許多的時間(相較於讓其等待來自多個從站的回應以指明該阻隔交易已到達該從站),且如此一來,可降低阻隔交易引入的潛時。
沿著路徑50傳送的阻隔交易離開該互連,並在不經過除了二等分路徑50以外任何其他路徑的情形下到達從站30,且因此,不需要回應此阻隔交易而再次進行阻隔,因為當阻隔已通過清空單元後,位於其前方的交易必然仍在其前方。然而,沿著路徑52傳送的阻隔交易會到達進一步的交叉耦合部分48,且可回應在分支點49接收到該阻隔交易,與此分支點相關聯的控制電路系統70會複製該阻隔交易、將其傳下至兩個出口路徑並針對位於其後方且受其控制的交易請求阻斷其後的進入路徑。因此,在某些實施方式中,藉由將這些後續交易保持在該阻斷電路系統90內的一緩衝區中,而延遲這些後續交易,直到針對所有經複製的阻隔交易接收到一回應信號為止。因此,該經複製的阻隔交易通過該交叉耦合電路系統40並離開該交叉耦合電路系統而加入進一步的二等分連結52與50。如上文所述,二等分路徑可保持交易相對於該阻隔的順序,且因此,可利用清空單元80由該二等分路徑的起點傳送一早期回應。阻斷電路系統90會等待接收來自分支點49之對該阻隔交易的回應。分支點49複製該阻隔交易,並將二阻隔交易進一步向下傳送至每一路徑。分支點49不會傳回一回應至阻斷電路系統90,直到其分別接收到對於其所傳輸的該二阻隔交易的回應為止。為了回應此種回應,阻斷電路系統90允許傳輸保存於其緩衝區中的任何後續交易。當該清空電路系統位於離開該互連之前的最後二等分路徑上時,不需要針對某些阻隔類型發出進一步的阻隔。
如上所述,在二等分路徑52上有一重新排序緩衝區60,且此緩衝區經設置用以回應該阻隔且不允許受到該阻隔控制的交易相對於該阻隔而重新排序。
在上文的敘述中,假設存在有一阻隔以將所有後續交易保持於其後。然而,在某些實施方式中,如下文所詳述者,該阻隔可能僅需要防止該後續交易的一子集趕過它,上述子集可能是來自一特定主站或具有特定功能(如,寫入交易)。在此種情形中,控制電路系統70與阻斷電路系統90僅會延遲此交易子集,且會允許其他交易繼續進行。更有甚者,在一分支點上,若該交易受到該阻隔控制,則絕對不會將此交易傳下至該路徑其中之一,不需要將一經複製的阻隔傳下至該路徑。
就此而論,經標記為與寫入交易相關的阻隔在本質上可阻斷進一步的寫入,而使得不會發出進一步的寫入,直到接收到一回應為止。因為此種性質,該阻隔不需要阻斷讀取,直到接收到對該寫入的回應為止,在該回應之前,不可發出進一步的寫入;且因此,可安全地發出讀取,一旦接收到對該寫入阻隔的一回應,即可發出進一步寫入,且在此點上該阻隔亦應阻斷讀取。
第2圖繪示根據本發明一實施方式的二互連,其相互連接了主站20、22、24與26至從站30、32與34。在此種情形中,互連12已經連接至互連10,且這對其中某些交易(離開互連10並進入互連12的交易)產生了再匯聚路徑。若互連10直接連接至從站,就可以利用清空單元80傳送一早期回應,因為其後續路徑為二等分路徑且連接至該互連的出口,則通常不會需要進一步的阻隔。
然而,如果交易並未前往目的地裝置,而是被傳送到進一步的互連,則不針對沿著這些路徑傳送的阻隔交易做出回應而將其阻斷,可能並不適當;且若前方有進一步的交叉耦合路徑或如此處所述的再匯聚路徑,則就可以適當地將其連接至進一步的互連以引入此路徑以改變該互連早期回應與阻斷的方式。因此,為了讓該互連可適用於不同的用途,其可包含可程式化阻斷電路系統92,其可經編程而開啟或關閉,此係取決於該互連是直接連接到從站或具有交叉耦合路徑或再匯聚路徑之另一互連。
因此,可程式化清空與阻斷電路系統82與92係受到控制電路系統76的控制,其可回應互連12連接至互連10一事,而阻斷通過該處的任何阻隔交易。如此一來,不允許該後續交易通過,至到接收到回應信號且確保其順序為止。
如上文所述,阻隔交易可阻斷受其控制的後續交易,上述交易可以是所有交易或一交易子集。可由該阻隔交易本身或由該後續交易來決定受到特定阻隔交易所控制的交易。
在本發明的實施方式中,阻隔交易經設計看起來和該互連傳輸的其他無異,且如此一來,可利用互連來處理這些阻隔交易而不需大幅重新設計其元件。第3圖繪示了一阻隔交易的概要內容。在本實施方式中,該阻隔交易請求所含的位址欄和一般的交易請求相似,但除了下文所述的定址阻隔之外,不會使用這些位址欄。其亦含有一尺寸欄,以指明一定址阻隔交易所涵蓋之位址範圍的尺寸;以一指示元欄,其含有指示元位元以指明該阻隔交易的各種性質(如,其適用於何種交易)。有兩種類型的阻隔交易,且該指示元位元的每一位元有兩種數值以指明這兩種不同的阻隔交易。上述二數值可向該互連指明該交易是一種阻隔交易,且亦指明其屬於何種類型的阻隔交易。因此,它們可以指明一系統資料同步阻隔(DSB)交易,此交易可用以在分離交易,其係發生於當該先前交易已經完成且以到達其最終目的地時,且在允許發出在此一資料同步阻隔之後(程式順序)的任何交易之前。因此,該主站可回應指明此種阻隔的指示元位元而阻斷後續交易,而沒有機會發生對此交易的早期回應,且因此,這些阻隔交易會導致顯著的潛時。
應注意到,由於該主站會阻斷後續交易進入該互連,直到其接收到來自該系統DSB的回應為止,且由於該回應必須來自該目的地,其他交易可以趕過該DSB因為它們不需要保持在任何交易之後。然而,一旦它們趕過了DSB,它們可和該阻隔控制的其他交易請求互動,在此一點上,該阻隔變得與這些交易相關,且因此,雖然它們可趕過該阻隔,若它們這麼做,之後它們就必須保持在其前方。
另一種類型的阻隔交易是資料記憶阻隔交易DMB,且不允許受這些阻隔控制的交易相對於此一阻隔而重新排序。這些阻隔只和該交易的順序有關,而與其在系統中前進的性質無關。因此,這些交易可以利用來自清空單元的早期回應,且可利用這些技術來降低這些阻隔交易所誘發的潛時。
在該阻隔交易中還有其他欄位,一種是識別或ID欄,用以識別產生該交易的主站;一種是可共享性區域欄,其可指明該阻隔屬於哪一可共享性區域(詳見後述);以及一種是阻斷指示元,其可經設定以指明是否應將該交易視為阻斷。若該指示元經過設定,則這代表已經針對此交易進行過阻隔,且因此,清空單元及阻隔單元(如,第1、2圖所示者)會讓該阻隔交易通過,且不會做出回應,因為它們知道後續交易已在上游被阻斷。下文將敘述此一作法的用途。然而,亦應注意到,若有再匯聚路徑(如,在第2圖所示的裝置中),則一阻斷單元(如,第2圖的阻隔單元92)會對具有以及不具有經設定之阻隔指示元的阻隔交易做出反應,且會進行阻斷作為回應。
在某些實施方式中,阻斷指示元不會存在於該阻隔交易上,並在經決定該些阻隔交易不具阻斷性之處,將所有阻隔交易視為阻斷阻隔交易來處理。
可能還有用於該阻隔交易的其他控制欄位,以指明其是否僅控制具有一特定功能的交易。因此,能夠得到僅和寫入交易相關的一阻隔交易。
可利用該位址欄來向阻隔指明僅控制前往特定位址或位址範圍的交易。在後面這種情形中,位址欄儲存一基底位址,且尺寸欄儲存該位址範圍的大小。定址阻隔的優點在於能夠控制非常特定的交易子集,且不會減緩其他交易。更有甚者,當交易在分支點經過複製時,如果已知在該一口路徑的一或多路徑中無法存取該位址或位址範圍,則不需要複製該定址阻隔,這可以降低互連的潛時與阻隔處裡的管理成本。由於使得阻隔交易和其他交易非常相似,會存有一位址欄,且因此,在一定址阻隔交易中能夠直接地提供該位址資訊。
第4圖繪示該互連傳送了一種並非阻斷交易的交易,且如圖所示,其形式上與阻隔交易非常相似。其在鎖定位元內有一指示元欄,可指明該交易是否應該忽略阻隔指令交易。因此,在一交易中標記像這樣的欄位,會使得其可自動通過任何阻斷。這在當舊有系統和支援阻隔的一互連一起使用時,非常有用。
如上文參照第3圖所述,有可共享性區域,這是一種將阻隔的效果分段的方式。這是一種可進一步改善系統潛時的方法,且後文將參照下列圖式詳細說明。
有多種方法可以將主站與該互連的多個部分分群成不同區域以及控制該區域內的阻隔與交易,以確保可保持正確的交易順序且不會過份地增加潛時。就此,已知若將某些規則套用到與該區域相關之互連的電路系統元件佈局上,則該阻隔會具有某些可供利用的性質,以降低該阻隔的潛時。將該區域排置成特殊的方式可以對所允許的系統之電路系統元件佈局造成限制,但也可能增加阻隔所產生的潛時,因此下文所述各種可能之區域的實作方式各有其利弊。
在所有的區域排置中,若將一阻隔交易標記為與一特定區域相關,當其位於該區域之外時,永遠可以接通接通此一交易(除了在一再匯聚區域中)。在其相關區域中,可以接通一DMB(除了在一交叉耦合區域中),而在其相關區域中,永遠會阻隔一DSB。將一系統DSB標記成與整個互連相關,且因此,它永遠不會位於其相關區域之外,且永遠可阻隔,直到由其目的地接收到一回應為止。
在第一種「零點」實作方式中,沒有選擇這些區域的任何部分。將所有阻隔視為可套用於該系統之所有部分中的所有交易。顯然地,此種方式的效能低落,因為由阻隔造成的潛時會很高。然而,此方式允許未經限制、任意的區域成員資格(即便該成員資格不具效用)與電路系統元件的佈局,且因而永遠可被建立。這在邏輯上等同於所有區域,包括為在其所有區域中的所有主站。
在一替代性的「幾近零點」實作方式中,有和每一主站相關的非共用區域,且在此區域外,會利用不同的方式來處理與這些區域相關的阻隔。當一非共用阻隔位於其可共享性區域之外且超過來自該主站之輸入端的任何位置時,可以將其視為位於整個互連中來處理,且因而在該互連的所有再匯聚部分中都是非阻斷的。將其他可共享性區域阻隔交易視為位於零點實作方式中來處理。這在邏輯上等同於使得該非共用區域邊界作為發出者或主站輸入,且所有其他區域含有所有其他主站。
一替代性的「簡單」實作方式具有某些受限制的電路系統元件的佈局以及較佳的效能。此種方式會產生兩種不同的解決方案,其係取決於可接受的線限制程度。
上述這些方法都可使用以下三種對於可共享性區域成員資格的限制。
1.一觀測器的非共用區域本身是單獨的。
2.一觀測器之系統可共享性區域包含所有可和其直接或間接通訊的至少所有其他觀測器。
3.一觀測器之內部共用區域的所有成員亦為其外部共用區域的成員。
上述限制的前兩種是由第三種限制所施加的限制。此外,上述兩種方案具有特定的元件佈局限制,以及可能的額外可共享性區域成員資格限制。
上述兩種實施方式的第一種需要一種限制以要求每一位置位於一單一區域中,且因此,其係取決於該互連中的每一位置只是一種區域區域(內部、外部或系統)。為了達到此一目的,必須實施一種額外的可共享性區域成員資格限制:
任何觀測器之任何可共享性區域的所有成員必須將該可共享性區域的所有其他成員作為與其具有相同等級之可共享性區域的成員。亦即,若觀測器B是觀測器A的內部共用區域的成員,則相對地,A必須是B的內部可共享性區域的成員。
必須符合的元件佈局限制如下:
1.該區域邊界必須包含該區域的所有成員
2.在一區域外沒有東西可合併至該區域中,即該區域邊界必須不得包含位於不在該區域邊界中之任何任何東西下由的任何東西
3.所有區域邊界必須位於區域二等分連結上
用較簡單的方式來說明,在此情形中,可將該區域邊界視為表示高度的元件佈局之等高線(其中允許垂直表面但不允許突出部分)。每一主站位於相同的高度,且每一可共享性區域輪廓也和其他相同類型者處於相同的高度。可允許垂直的旋牙,以使得不同類型的可共享性區域是相同的,但不允許可能會造成可共享性區域交叉的突出部分。
這些元件佈局的限制要求不可將任何東西合併至該區域中-該區域的會員(這會違反限制1)和非會員(這會違反限制2)都不行。如果位於一會員下游的分支離開了該區域,且之後重新合併到其中而沒有同時合併某些位於該區域外的東西,則在離開與重新進入之間的該不墳仍有效地位於該區域中。
元件佈局加上區域成員資格限制可確保在其可共享性區域中,一阻隔不會遇上來自位於該區域外之一觀測器的交易,且當其離開該區域時,其已經合併了來自曾和其合併的該區域中的所有成員的所有交易訊息流。它們亦可確保位於任何內部共用區域之外的任何位置都是位於所有內部共用區域之外,且若位在任何外部共用區域外部也就位於所有外部共用區域之外。
正因為如此,可僅藉由將該阻隔之可共享性區域和該分支點所處之區域的該區域類型進行比較,來決定對於一阻隔在一分支點是否為阻斷的要求,因為該阻隔位於此一受限制的系統之該區域之外,就隱含地符合了在該位置下由不可有該可共享性區域之成員進行合併的此一要求。
可藉由以下任一種方式來實作此一機制:明白地指出該阻隔位於其可共享性區域之外,這會需要在區域出口點上有一顯式偵測組件;或在每一相關分支點上決定該狀態。
上述兩種實作方式的第二種允許在多重區域中有多個位置。此種實作方式取決於當一阻隔交易通過所指明的可共享性區域的邊界時,該阻隔交易所受的修改,而使得一旦當其離開其可共享性區域時,可藉由進行該教義而使其變成非阻斷。當其通過其所指明區域的一內部或外部共用區域而朝向非共用區域且將其標記為非共用時,就可以知道其位於其區域之外且因而可以是非阻斷的。
在此種情形中,對於可共享性區域成員資格的額外限制較為寬鬆:
對於任兩個可共享性區域(A與B),A的所有either所有成員必須也是B的成員,或是B的所有成員也必須是A的成員,或以上兩種情形都成立(在此情形中,A和B是相同的)。換句話說,該區域邊界不回交叉。
需要相同的電路系統元件的佈局限制:
1.區域邊界必須包含該區域的所有成員
為了讓電路系統元件的佈局具有最大彈性,必須剛好能夠解構該電路系統元件的佈局組件(分支與合併)而使得能夠勾勒出區域邊界,而使得
2.位於一區域外的任何東西都不能合併到該區域中-即,該區域邊界必須不包含位於不再該區域邊界內之任何東西下游的任何東西
3.該區域邊界會越過區域二等分連結
最後,會施行一額外的元件佈局限制,以補償因為較寬鬆的區域成員資格限制所致的問題:
4.沒有邊界位置可用於不同具有不同區域數目的不同主站(此處排除了其外至已經位於其外部可共享性區域之外的主站)。
限制4確保當一阻隔因為越過一區域邊界而需要被修改時,它會越過他所處的所有區域的邊界。這可以確保修改作業不會因該阻隔的起始裝置而異。
若一阻隔經過修改且獲得了非阻斷狀態,當然可將其接通(若其係位於一二等分連結上),但在某些情形中,即便其位於一交叉耦合連結上,仍可將其接通。若越過該區域邊界的該連結是區域二等分連結(亦即,其就該區域而言是二等分的,即它們不會和來自其本身之區域的路徑合併,而只會和來自其他區域的路徑合併),則可在該處進行對該阻隔交易的修改,且亦可在該點進行上述接通。
在以下情形,可以省略限制2。若除了在區域出口上改變朝向非共用之所指區域,可改變該所指區域使其遠離位於區域進入點上的非共用。這需要一種沒有飽和的區域指示元;或對可供進入之該區域數目的限制,而使得飽和情形不會發生。此外,這會導致已經進入一區域的阻隔變成能夠阻斷來自該區域之非成員(這是因為它們的所指範圍增加)的交易。
第5A圖概要地繪示了在一互連內的上述區域的實作方式。第5A圖中所繪示的主站係位於互連內,但在實際上,它們當然可以位於互連之外。每一主站20、22、24、26、28具有直接位於其周邊的一訊息流或非共用區域120、122、124、126、127,這些訊息流或非功用區域可能僅和該主站所產生的交易相關。接著,有一些下一層級的區域,其可包含複數個主站或就是該同一主站,因此,同樣地,主站20與22有其非共用區域,且之後具有位於其周邊的內部區域121;而主站24具有內部區域125、主站26具有非共用區域126與內部區域127且主站28具有非共用區域128與內部區域129。接著,還有圍繞其設置的外部區域,在此實施例中種情形中,上述外部區域為區域31與33。之後有系統區域,也就是整個互連。如圖所述,這些區域完全位於彼此之內,且並未以任何方式相交。還有一個限制是來自這些區域的所有出口路徑都是二等分路徑。藉由這樣限制該些區域,可以確定離該這些區域的交易會以特定的方式離開,且當它們離開二等分路徑時,若是在該區域內該阻隔正常發揮功用,則它們會以正確的順序離開。這使得能夠以一種特定的方式相對於這些區域來控制阻隔交易。
第5B圖概要繪示前往一區域的一出口節點135,該區域包含主站p0與p1。此出口節點135受到控制電路系統70的控制,且在此點上,已知任何阻隔交易與受其控制的交易都處於正確的順序。現在,如上文所述,阻隔交易不必然控制所有交易,但可控制特定主站產生的交易或屬於特定功能的交易。
在可共享性區域的情形中,阻隔交易被標記成可控制來自特定區域的交易。因此,可將一交易標記為系統阻隔交易,因為其控制所有交易;可將其標記為控制來自一訊息流或非共用區域、來自一內部區域或來自一外部區域的交易。在任何情形中,當一阻隔交易離開一區域時,在本實作方式中,此阻隔交易可以減少此階層,而使得若其為一外部區域阻隔,當其離開該內部區域時,可將其降級為控制來自內部區域之交易的阻隔交易,且當其離開該外部區域時,其會使得受其控制之階層降級為一非共用區域,在該處沒有交易會受到其延遲。可以達成上述目標是因為在此點上,相對於此阻隔排定了所有交易的順序,且前提是沒有再匯聚路徑,則該互連可以確定該順序是正確的。應注意到,當系統阻隔離開區域的時候並不會改變,因為它們永遠適用於位於任何地方的任何東西。
應注意到,若在一區域內有再匯聚路徑,則任何非阻斷阻隔在越過該再匯聚區域時必須變成阻斷。若有進一步的互連引入了再匯聚路徑,並將此互連連接至具有這些區域的一互連,則用已控制阻隔的區域系統就無法運作了。若加入了會影響這些區域與其層系的一互連,則應控制該系統而使得當該阻隔交易離開該區域時,不會降級該阻隔交易中的該可共享性區域指示元。
應注意到,對於再匯聚區域,可限制前往特定地址的某些交易而使其沿著一特定路徑而通過該再匯聚區域,且在此種情形中,該再匯聚區域對於該位址而言並非匯聚,可限制一互連而使得對所有位址而言,交易都會沿著一特定路徑傳送前往一特定位址,在此種情形中可將任何再匯聚區域視為一交叉耦合區域來處理,這樣做的優點來自於一再匯聚區域會對系統造成可觀的限制。
受限於互連配置的方式,一區域中任合並未標記為一非共用阻隔的阻隔交易實際上都可以控制其所遇上之任何區域的交易,因為他不會遇上來自另一區域的交易。被標記為非共用阻隔的一阻隔交易不會延遲位於其後的任何交易,然而,沒有其他交易可相對於此交易而重新排需。如此一來,藉由這般排置該些互連區域,且藉由在該區域的出口上降低該指示元的層級,提供了一種簡單的方法以決定該阻隔交易是否必須延遲其所遇上的所有交易或不延遲交易,而該控制組件無須精確地知道這些交易位於互連中的何種區域。
另一種可能的區域實作方式為「複雜」實作方式。其係用於認為上述元件佈局限制或區域成員資格限制過於嚴格的情形中。假設應保持針對非共用及系統區域成員資格的限制,所需要的資訊是一種清單以明確地列舉出可將何種阻隔發出裝置與可共享性區域的組合視為在該位置為非阻斷的。因此,此處並非由阻隔本身來決定阻隔的阻斷性質(如參照第5A與5B圖所述的實作方式),而是由該位置以及儲存於該位置的區域資訊來決定該阻隔的阻斷本質。
可藉由在每一相關位置的兩種清單來達成此一目的,一清單是用於內部共用區域,而另一清單用於外部共用區域。每一清單指明位置位於該區域外的該組或阻隔源。或者是,可儲存一清單其中以二位元數值來指明該位置係位於該來源的何種可共享性區域之外。
不論如何表示上述資訊,其很明顯地更為複雜且難以允許設計重新使用,因為當重新使用依系統時,要表示該區域資訊的要求各不相同。
第6圖繪示此一互連的實施例。此互連由四個主站S0、S1、S2或S3接收交易請求。S0與S1係位於一內部區域200中,而S2或S3係位於一內部區域201中,四個主站皆位於一外部區域202內。還有其他未繪示的主站並具有其他區域。
在位置210,其對於來自S2的交易係位於該內部區域中且對於來自S0或S1的交易係位於該外部區域中。因此,可據此標記此一位置,且當接收到阻隔時,可以決定這些阻隔係有關於何種區域,且因此,可決定該阻隔是否位於其區域的外部。因此,適用於S0、S1內部區域的一阻隔係位於其區域之外,且可取決於實施方式而如是標記該阻隔或可傳送一早期回應。很明顯地,這非常複雜。
對此的一種替代性方案是保守複雜實作方式。此一實施方式係用於當需要複雜實作方式之元件佈局與區域成員資格自由,但必須避免其實作方式與重新使用問題的情形。在此種情形中,可以使必須表現出區域-位置-特定行為的每一組件認定其本身屬於一特定區域層級,且可達成正確的行為。若該組件認定其本身屬於其實際上所處的任何區域中的最小區域中時,則其對於實際上位於本身區域之外的阻隔之行為會是保守(但正確)的,且對於實際上位於本身區域內的阻隔之行為繪示正確的。就此,應注意到,可在適當處改變阻隔、區域或交易的性質,已使得其能夠以更有效率的方式被處理,前提是它們的改變是變得更具限制性。因此,可將標記為內部的一阻隔視為一外部阻隔來處理,且經標記為適用於一外部區域的一交易可被標記成適用於該內部區域。
利用此種方法,可以輕易地程式化必須意識到區域的這些組件,或將其設置為具有一單一區域(其具有安全的預設內部區域成員資格,這可運用於電力開啟時)。
因此,在此實作方式中,將位於該區域內的一位置標記為具有其身為成員之區域中具有最限制性之行為的區域所具有之性質,上述區域為除了非共用區域之外的最低層系層級之該區域。之後,位於此位置的阻隔交易會被視為位於此一區域內來處理。在此一排置中,允許區域成為其他區域的一部分子集。在此種排置中,並非在當一阻隔離開區域時改變該阻隔上的標記以調整該阻隔的阻斷行為而不需知道其位於互連中的何處,而是將該互連中的位置標記為處於一特定區域內,此係取決於其所處的該最低層系或最小共用區域。
在第6圖所示的實施例中,舉例來說,不需將位置210標記三種不同的標記,僅將其標記上其所處的屬於內部的最小共用區域。因此,在此種情形中,會將任何標記為內部或外部的阻隔視為位於此區域內,且會將來自S0、S1內部區域的一阻隔視為處於其區域內,即便事實上並非如此。因此,不能傳送早期回應,且互連的潛時會增加,這是此種方法的缺點。然而,對於區域的標計較為簡單,且對於一阻隔是否位於該區域中的決定也較為簡單。
第7圖繪示一進一步互連10,其具有複數個主站20、22與24及複數個從站30、32。其間有並未詳細繪示的交叉耦合電路系統40。
此一圖式闡明了利用在該阻隔交易上的該阻隔指示元向該互連指明該阻隔在上游已經經歷過處斷,且該互連不需進行進一步的阻斷動作。因此,在此種情形中,GPU 22發出的交易是對於潛時沒有重要性的交易,且因此,有一阻隔單元90會對所發出的該阻隔交易反應,並阻斷前往該阻隔的該後續交易,且將該阻隔交易標記為阻斷阻隔交易。這代表互連10中沒有早期回應單元會對此阻隔交易進行早期回應,且不會對其做出回應而阻斷所有後續阻隔單元。因此,該阻隔交易會保持阻斷,直到該阻隔交易本身到達其最終目的地為止,此時會將一回應信號傳送至GPU 22,且阻斷電路系統90移除該阻斷。應注意到,雖然此處所示的阻斷電路系統90係位於互連10之內,其亦可位於GPU 22本身之內。
這麼做的優點在於,如上所述,當來自一主站的交易的潛時並不重要時,在鄰近來源處阻斷這些交易代表該阻隔交易不會藉由在交叉耦合區域中阻斷其他主站發出的交易而對這些其他主站造成一潛時損失。應注意到,若該互連中有再匯聚路徑,則該互連內的阻隔單元可能需要回應一阻隔交易而進行阻斷,以確保正確的順序。
在並未使用此種阻隔指示元的實施方式中,則將位於其區域中的所有阻隔視為阻斷的,除非以某些方式將其標記為非阻斷的。
第8圖繪示常用於Cambridge United Kingdom AXITM
匯流排之ARMTM
的一互連10。這些匯流排具有平行的讀取與寫入通道,且因此,可將其視為不具有二等分路徑。然而,沿著這些路徑傳送的交易通常連結在一起,且其中一路徑連結沿著另一該路徑(通往被傳送的一阻隔交易)之一交易,可將這些路徑視為二等分路徑來處理,且可利用及早期回應與後續阻隔來降低阻隔交易的潛時。因此,在本圖式中,繪示了一路徑其中一早期回應單元80針對一阻隔交易產生一早期回應。其亦提供一種連結的交易,可將其向下傳送至與該阻隔交易所傳送之該路徑平行的其他路徑。後續阻隔單元90不會進一步傳送該阻隔交易,直到接收到該經連結的交易為止。應注意到,當阻隔可能合併(因此其位於合併點(如,91)或一從站內)時,會需要此種傳送經連結之交易的行為且僅在當兩個交易都到達其目的地時才進行回應的方式。因此,當將阻斷阻隔交易由阻隔單元90傳送至從站S0時,需要傳送一經連結的交易,且僅有當已經接收到該阻隔交易以及與其相連結的交易時,才會傳送一回應。用以傳下該阻隔交易的該路徑是是實際上被阻斷的唯一路徑。
應注意到,若是讀取與寫入訊息流將要合併,則必須在合併點整理該些訊息流的順序,因此,必須要有某些控制機制以確保該阻隔與經連結的交易同時到達該合併點。
第9圖繪示根據本發明一實施方式的一互連10,其包含複數個輸入端以接收來自主站20、22與24的信號,以及複數個輸出端以將該交易請求傳送至多個從站(包括記憶控制器112)。
用以傳送該交易的路徑包含二等分路徑與交叉耦合路徑。該互連用以回應阻隔交易請求,以確保相對於這些阻隔的交易順序。還有合併電路系統100,其係用以在適當處合併阻隔交易而增加該互連的效能。因此,若其偵測到二阻隔交易彼此相鄰,它會將這些阻隔交易合併為一單一阻隔交易,且來自該合併的阻隔交易之一回應會使得回應信號被傳送至被合併的兩個上述阻隔交易。
應注意到,若該阻隔交易具有不同的性質,則它們可能不適合合併,或可能需要改變這些性質而使得經合併的阻隔交易具有可使得兩個阻隔交易都發揮功能的性質。因此,舉例來說,若這些阻隔交易其中一者的可共享性區域指明其可控制來自內部區域1的交易與來自外部區域1(包含內部區域1與一進一步的起始裝置)的相鄰阻隔交易,則該合併的阻隔交易的該可共享性區域將會是外部區域1。換句話說,一可共享性區域(包含該欲合併的二阻隔交易之二可共享性區域)可提供一種可正確發揮功能的經合併的阻隔交易。應注意到,若是有三或更多的相鄰阻隔交易,則亦可合併之。
合併電路系統100亦可合併並非相鄰看僅具有不受制於該阻隔之干涉交易的阻隔交易。若該合併電路系統100鄰近一重新排序緩衝區110就可以做到。一重新排序緩衝區通常用以重新排序交易,而使得可將高優先性的交易放置於較低優先性交易之前,且可早於該較低優先性交易而離開至其個別的從站。其亦可連同合併電路系統100一起用於重新排序不相鄰的阻隔交易(其間僅具有該阻隔不適用之干涉交易)。在此種情形中,可以移動阻隔交易使其彼此相鄰,且之後可將其合併。應注意到,此合併電路系統必須位於一二等分連結上,否則合併阻隔可能導致不正確的順序,這是由於有經複製的阻隔在其他路徑中移動。
合併阻隔的一種替代方案是將其消除。第10圖繪示一種與第9圖類似的電路,但具有阻隔消除電路系統102。應注意到,在某些實施方式中,合併電路系統100與消除電路系統102為一單一單元,且可取決於實際情形而用以合併或消除阻隔。阻隔消除電路系統102可用於任何路徑上,包含交叉耦合與二等分路徑,且若其偵測到一阻隔跟著另一阻隔,其中在前的該阻隔可適用於在後之該阻隔所適用的所有非阻斷交易,且沒有適用於該在後阻隔的干涉非阻斷交易,則該阻隔消除單元102可拖延此後續阻隔,直到接收到針對所有此種先前阻隔的回應為止。一旦已經接收到這些回應,可將其向上游傳送,且亦可向上游傳送針對該新阻隔的一回應,並可消除此阻隔。如此一來,可由該互連電路系統移除一阻隔,且這能夠增加效能。
這種能夠這樣進行的能力具有一額外的優點,其可用於管理並非很常用的管理周邊元件。第11圖繪示一資料處理設備2,其具有互連電路系統10、電力管理單元120及長時間進入非作用模式的數個周邊元件32、34。利用控制電路系統70來控制互連電路系統10的不同部分。
在周邊元件32與34非作用時期中傳送至這些元件的交易請求僅可為阻隔交易。需要針對這些交易進行回應,但若該周邊元件處於一低耗電模式中,僅僅為了回應一阻隔交易而將其喚醒是非常不利的。為了處理此問題,可利用一阻隔消除單元102。一阻隔消除單元102設制於通往該周邊元件的路徑上,其使得可利用阻隔消除單元102連同控制電路系統70產生一阻隔並將其傳送至該些周邊元件。一旦已經接收到回應,則該些周邊元件可進入低耗電模式,且之後當接收到一進一步阻隔交易而已接收到針對一先前的阻隔交易所做的一回應時,可僅將一回應傳送至該進一步阻隔交易而不需喚醒該周邊元件,且可消除此阻隔交易。
該控制電路系統70可引發該阻隔消除單元去產生一阻隔交易以回應偵測到的該周邊元件的非作用情形,且之後可聯絡電力管理電路系統,以建議一旦已接收到一回應時,讓這些周邊元件進入低耗電模式。或者是,一旦已經將一阻隔交易傳送至該周邊元件,該控制電路系統70可向該電力管理電路系統120指明此一情形,之後該電力管理電路系統120可傳送一低耗電模式信號至該周邊元件,而使得它們進入低耗電模式。或者是,若該電力管理電路系統決定該是時候該讓周邊元件進入低耗電模式時,其可同時發出信號以通知該周邊元件與該控制電路系統70。可以延遲進入該低耗電模式,直到已經將一阻隔交易傳送至該周邊元件以及接收到一回應為止。在此時,該周邊元件可進入低耗電模式,且可回應任何後續阻隔交易而不需喚醒該周邊元件。
第12圖為流程圖,繪示用以實際上移動一阻斷阻隔通過一互連之方法,其係藉由沿著該互連進一步傳送一早期回應清空信號與阻隔。作為對一阻隔交易請求之回應,傳送一早期回應信號(一阻斷之上游可接收且之後可清除此信號),而使得可進一步傳送該邊界交易請求所控制的後續交易請求。之後該電路系統本身進一步傳送該阻隔交易請求,但針對受該該阻隔交易請求控制的後續交易請求阻斷用以傳送該阻隔交易請求。若有數個路徑,其可複製該阻隔交易請求而使得其可沿著該數個路徑的每一個路徑傳送。之後該電路系統會等待來自已進一步傳送之每一該阻隔交易請求的回應信號。當其接收到這些回應信號時,其可接通被阻斷的該後續交易請求並使其可繼續傳送。如此一來,當阻隔信號通過互連時,可以降低互連的潛時,且不會將該後續交易請求保持在該主站,直到已經在該從站完成該阻隔交易請求為止。應注意到,對於一資料同步阻隔請求不允許早期回應信號,且這些阻隔會導致該互連阻斷受該阻隔控制之後續交易請求,直到由該阻隔所傳送至的該些周邊元件之每一者接收到一清空回應為止。
亦應注意到,若該阻隔交易請求為一阻隔請求,則亦不會回應此交易請求而傳送早期回應信號。一阻隔請求是一種在上游被阻斷且亦如是標記以指明阻斷應保持在上游。由於在上游有一阻斷,可以確保其可作為一阻隔的交易不會被傳輸通過該上游阻斷,直到接收到針對該阻隔交易請求之一回應信號為止,且因此,不需要阻斷此阻隔交易請求。
應注意到,該互連電路系統中可能有某些點上可傳送對一阻隔請求的一早期回應,且該阻斷會向下游移動,而重新發出的阻隔本身被標記為阻斷或非阻斷。若這是非阻斷,其可指明在其後有交易需要被阻斷,此處的情形並非如此,因為它們已經被阻斷過了,但這是可以接受的;但若事實上可能存在某些需要阻隔的交易時,就無法接受其指明沒有需要阻隔的交易。這對下列情形非常有利:當一非阻斷阻隔越過一交叉耦合區域且因而必須延遲後續交易,但不想要其阻斷所有通往出口點的路徑時,故要一直指明其為非阻斷的,而使得可從能夠進行回應的第一個位置傳送一早期回應。
因此,若該請求並非一資料同步阻隔交易請求或一阻隔請求,則傳送一早期回應,且必須針對與該阻隔交易請求有關的後續交易請求而阻斷該經複製的阻隔交易請求方才傳送下去的該出口路徑。如此一來,可針對後續請求接通該上游路徑,且可傳送這些後續請求,只要此種能降低系統潛時的新的阻斷仍能保持所需的順序。之後可在此點拖延這些後續請求,直到接通此節點為止。應注意到,在某些情形中,該電路系統元件的佈局經設置而使得提供一早期回應與阻隔可能實際上會有不良後果,舉例來說,當每一上游都是二等分時,可能不會有任何因為接通所造成的優點,且在此點進行阻斷可能是第一個也是不必要的阻斷。
進行下列步驟以接通該節點。決定是否已經接收到針對已進一步傳送之任何該經複製的阻隔交易請求的一回應信號。當接收到一回應信號時,則決定是否有進一步的回應信號在等待該進一步的阻隔請求。當已經回應了所有該經複製的阻隔請求後,則可接通該出口路徑,且可進一步傳輸該後續交易請求。
第13圖為流程圖,繪示了消除阻隔交易請求之方法的步驟。
在一二等分路徑的起點接收一阻隔交易請求並沿著該二等分路徑進一步傳輸之。
之後接收一後續阻隔交易請求,並決定在該原始阻隔請求之後是否已經接收到任何受其控制的交易請求。若沒有此種交易,則決定該後續阻隔交易請求是否具有和該較早的阻隔交易請求相同的性質。若為肯定,則刪除該後續阻隔交易請求且不會進一步傳送之,並且當由該較早的處格交易請求接收到一回應時,針對此阻隔交易請求傳送一回應。這是可行的,因為該後續阻隔交易請求具有和第一阻隔交易請求相同的性質,該第一阻隔交易請求可作為在該第二交易之後的交易的一邊界,且因此,不需要進一步傳送該第二交易。這可以減少控制這些阻隔交易請求之該控制電路系統必須進行之處理的數量,且對於處於低耗電模式之周邊元件還有其他的優點(下文參照第14圖將可更明瞭)。亦應注意到,雖然本圖式並未示出,若進一步傳送該第二阻隔請求,則該互連會以通常的方式針對二阻隔請求來運作。
若該後續阻隔交易請求不具有和該較早的阻隔交易請求相同的性質,則需要進一步傳送之,並以正常的方式對齊進行回應。舉例來說,若該後續阻隔交易請求影響的通往該較早的阻隔交易請求之交易的一子集,其具有較窄的可共享性區域或僅影響寫入(相對於其可回應的所有功能)。
應注意到,由於這是位於一二等分路徑上,當接收到上述二阻隔交易請求,可分別傳送與其相關的一早期回應,且可輕易刪除該第二阻隔交易請求,且在該二等分路徑之終點所需的阻斷僅適用於該後續交易。
亦應注意雖然此流程圖係針對一二等分路徑所繪示,當阻隔具有相同性質且沒有受制於該阻隔的干涉交易時,可在任何路徑上完成消除一後續阻隔交易,只要當針對第一阻隔發出回應時將一回應傳送至上述二阻隔。
第14圖為流程圖,其繪示了用以控制周邊元件進入低耗電模式的方法步驟,其可利用參照第13圖所示之阻隔邊界消除性質的優點。接收到一電源關閉信號,其指明一周邊元件將要進入一低耗電模式。為了回應對此一信號的接收,沿著一二等分路徑將一阻隔交易請求傳送至該周邊元件並接收到一回應。接著,該周邊元件的電源關閉。當接收到一後續阻隔交易請求時,會決定在該較早的阻隔之後是否接收到受其控制的任何交易請求。若並未接收到此類請求,則可刪除此較晚的阻隔交易請求(若其和該較早的阻隔交易請求具有相同的性質)且可傳送對其的一回應。如此一來,若該周邊元件處於非作用狀態,則不需讓一阻隔交易請求打擾並喚醒此周邊元件。
若有受到該較早的阻隔控制的中間交易,或若該第二阻隔不具有和該較早的阻隔相同的性質,則不可刪除該阻隔,但必須以正常的方式將其進一步傳輸。
第15圖為流程圖,其繪示了降低一周邊元件功率消耗的方法步驟。接收一阻隔交易請求並將其傳輸至該周邊元件,且接收一回應以作為回應。為了回應針對此阻隔交易請求之接收,已知現在可刪除後續阻隔交易請求,且因此,此時為讓該周邊元件進入低耗電模式的適當時機。因此,將一請求傳送至該功率控制器以關閉該周邊元件的電源,且該周邊元件的電源被關閉。此時,可刪除所接收的後續阻隔交易(前提是並未接收到受該較早的邊界請求控制的中間,且前提是它們具有相同的性質),並傳送對其的一回應而不需打擾睡眠中的周邊元件。
若已經接收到受該較早的阻隔控制的中間交易,或若第二阻隔不具有和該較早的阻隔相同的性質,則不可刪除該阻隔且必須以正常的方式將其進一步傳輸。
第16圖繪示用以降低與阻隔交易請求相關之管理成本的方法步驟,此方法係藉由在可行處將其合併。
因此,在一二等分路徑的起點處接收一阻隔交易請求並傳送一早期回應,且進一步傳輸該阻隔交易請求。由於該處是一二等分路徑的起點,在此點不需要針對後續交易請求而阻斷該路徑。
接著接收一後續阻隔交易請求並傳送一早期回應,且進一步傳送該阻隔。在該二等分路徑上有一重新排序緩衝區,且兩個阻隔都儲存於其中。接著決定在該較早的阻隔之後且在接收到該後續阻隔之前是否接收到任何受該較早阻隔控制的交易請求。若為否定,移動該二阻隔交易請求使其在該後續阻隔的位置上彼此相鄰。若沒有受到該後續阻隔控制的干涉交易,則可以移動此後續阻隔使其鄰近該較早的阻隔。之後決定該些阻隔請求的性質是否相同。若為肯定,則這些阻隔可以合併,且可在該訊息流中的正確位置上進一步傳送一單一阻隔請求。若其不具有相同的性質,則決定其性質是否除了該可共享性區域之外都是相同的,且亦決定該可共享性區域其中之一是否為另一可共享區域的一子集。若實際情形如此,則可合併該些阻隔請求,且該經合併的請求具有該二可共享性區域中較大的區域。之後進一步傳送該經合併的阻隔請求。若該些阻隔請求的性質使得無法合併這些阻隔請求,則進一步傳送這些分別的請求。
應注意到,雖然上文係參照一重新排序緩衝區來描述阻隔的合併,可在一二等分路徑上合併相鄰且具有適當性質的阻隔交易,而不需使用一重新排序緩衝區。
亦應注意到,在一重新排序緩衝區中,若有可以重新排序的交易(除了在其間具有一阻隔指令可阻止其重新排序),則在某些實施方式中,可允許合併該交易並產生二阻隔,此二阻隔分別位於所產生之經合併的交易的兩側。
第17圖為流程圖,闡明在位於該互連(如第1圖所示的互連)內的一阻隔單元處理阻隔的方法步驟,並闡明了一阻隔交易可具有的不同性質。
因此,在接收到一阻隔交易之後,若一後續交易經指定受到該阻隔的控制,則會將其阻斷,直到接收到一回應為止。若其並未被這樣指定,則可考量該交易的其他性質。若其經指定為不受該阻隔控制,則可將其進一步傳輸之而不會阻斷。若並未被這樣指定,則決定其是否具有該阻隔所指定的一功能。應注意到該阻隔可能不會指定一特定功能,在此種情形中,會阻斷該交易而不論其功能為何,然而,若其確實指明了一功能,則未執行此功能的交易不會被阻斷,且會被進一步傳輸。若該後續交易指明一區域,則決定該交易之該區域指示元是否為一訊息流指示元,若為肯定,則不會阻斷該交易但若其為任何其他區域,則會將其阻斷。亦決定該阻隔是否為一同步阻隔或是否具有一阻斷指示元。在任一種情形中,這些阻隔都不會阻斷該後續交易,因為先前已經阻斷過這些後續交易了,且因此,所接收的任何後續交易不會受到這些阻隔的影響。
應注意到,雖然此處所示的步驟具有特定的順序,當然能夠以任何順序來執行這些步驟。此外,當該阻隔不具有一特定功能的指示元、起始裝置或區域時,則不需要考慮這些情形。
第18圖繪示根據本技術的一起始裝置與一接收裝置。此起始裝置為一處理器P0,其可連接至一互連10,且接著連接至接收裝置30。互連10可連接至更多圖中未繪示的接收裝置與起始裝置。
在本實施方式中,是由該起始裝置P0利用阻隔產生器130來產生該阻隔。此阻隔產生器產生具有至少一指示元的阻隔交易請求。此指示元可為一指示元指明該阻隔交易請求的本質(即為,其控制何種交易請求)或其可為一指示元指明該交易請求是否為阻斷、非阻斷或二者皆是。若該指示元指明該阻隔交易請求為一阻隔請求,則起始裝置P0不會在該阻隔交易請求之後將任何進一步的交易請求發出至互連,直到接收到針對該阻隔的一回應信號為止。
起始裝置P0亦具有一處理器150與一危害單元140。
當預期前往相同位址(其係由一代理裝置發出)的交易應依一特定順序發生,但它們卻可相對於彼此重新排序時,就會產生記憶危害。當它們偵測到一危害,主站就不得發出該較晚的交易,直到其見到該較早的交易已經完成(對於一讀取)或有經緩衝回應(對於一寫入)為止。
為了能夠針對危害做出決定,一主站必須具有一交易追蹤機制,其記錄了可能會導致發生一危害的交易。可將此機制以危害單元140的形式提供,危害單元140儲存了可能會導致發生一危害的待處理交易,直到它們不再可能產生危害為止。危害單元140具有有限的尺寸,此一尺寸非常小,這是非常有利的,因此,該危害單元也存在著可能會存滿的可能。若發生此一情形,則處理器150必須停止發出交易,直到儲存於該危害單元中的該些交易的一交易已經完成,且可由該危害單元刪除為止。若應儲存於該危害單元中的待處理交易未被儲存,則可能會發生無法補正的危害。這是不被允許的情形。很明顯地,此種停止會增加潛時。
當交易已完成而未發生危害的時候,可以移除危害。然而,若必須藉由發出一阻隔來保護一危害不致發生,可由該危害單元150移除該較早的交易,因為其不可能受到任何後續可能產生危害的交易危害。因此,本發明的實施方式利用阻隔產生器130來處理此種潛時。阻隔產生器130可偵測危害單元140何時存滿,且可回應此一偵測而發出一阻隔交易。此阻隔交易會阻止後續交易相對於其而重新排序,且因此,可以移除儲存於該危害單元中之該交易的潛在危害,之後可由該危害單元移除此些交易。因此,若該阻隔產生器產生了一全域阻隔(所有交易都不可相對於其而重新排序),則可清空危害單元140。然而,一全域阻隔本身就會對互連造成潛時,且可能不是非常理想。
因此,在某些實施方式中,更有利的情形是產生一定址阻隔,其係對應於位於該危害單元內之一交易的一位址。一般來說,會選擇該危害單元中最近的交易,因為在正常操作中,此交易有可能是最後被移除的交易。因此,阻隔產生器130偵測該危害單元中最近的交易之位址,病發出與此位址相關的一阻隔,而使得不允許前往該位址的任何交易相對於該阻隔而重新排序。這可以確保此經處理的交易不在是可能的危害,且可由該危害單元移除之。這可以釋放出空間,且允許處理器150繼續發出交易。
在其他情形中,亦可利用阻隔產生器130來產生阻隔。舉例來說,其可偵測該處理器發出的高度排序的交易必須以一特定的順序來完成。一般來說,當輸出高度排序的交易時,P0不會輸出任何進一步的交易,直到其接收到來自該高度排序之交易的一回應信號指明其已經完成為止。這當然會影響處理器P0潛時。在某些實施方式中,阻隔產生器130偵測該處理器150發出一高度排序的交易且其本身發出一阻隔。一旦已將該阻隔輸出至該互連10,該互連內的回應單元80會傳送一回應信號至處理器P0其會清空該阻隔並允許處理器P0輸出進一步的交易。為了避免因為相對於高度排序交易重新排序而產生的問題,阻隔單元90阻斷後續交易。當阻隔通過互連時,互連10會處理該阻隔,在適當時進行阻斷及清空,且處理器P0可繼續發出交易。當該互連經指定可處理阻隔以在可行處降低潛時的時候,可降低系統的潛時(相對於在處理器P0發生一阻斷直到已經完成該高度排序交易為止)。
接收裝置具有連接埠33用以接收來自起始裝置P經過互連10的交易請求,且回應對一阻斷阻隔交易請求的接收,回應信號產生器34發出一回應並透過連接埠33將其傳輸至互連10。為了回應該阻隔交易請求為一非阻斷交易請求一事,接收裝置30可不發出任何回應。此外,該接收裝置可回應該阻隔交易請求上的某些指示元,以延遲產生及/或傳輸上述回應信號,直到針對先前所接收之交易請求的處理已至少部分完成為止。有可能某些阻隔交易請求不只要求該較早的交易請求已到達其最終目的地,且也要求它們已完成處理,舉例來說一資料同步阻隔就是這樣。因此,回應該接收裝置識別此一阻隔(可能是藉由該阻隔交易請求內的指示元數值)一事,該接收裝置可延遲該回應信號的傳輸,直到已經完成所需的處理為止。
第19圖概要地繪示了在交叉耦合、再匯聚區域中的阻斷以及對交易的回應。其中具有阻隔的一交易訊息流到達發散點160。發散點160具有控制電路系統170以及與其相關聯的的阻隔管理電路系統180。其亦具有用以儲存交易的緩衝區162。
阻隔管理電路系統180複製該阻隔,並將該經複製的阻隔向下傳送至該些出口路徑的每一者。控制電路系統170用以阻斷該後續交易進一步前進,且可監控針對該經複製的阻隔交易之回應信號。在本實施方式中,為了回應對此二回應的接收,該控制電路系統接通其上尚未接收到回應的該路徑,並允許該後續交易在此路徑上前進。由於只允許它們在此一路徑上前進,它們不可能趕過此路徑上的該阻隔及該先前交易,且已經針對在其他路徑上的該阻隔做出回應,所以沒有相對於這些交易而重新排序的危險。在早期接通此路徑特別有利,因為這非常有可能是具有最多訊務的路徑,因為這是最慢進行回應的路徑,且因此,盡早將後續交易傳下此路徑有助於降低潛時。
在傳送該後續交易之前,亦可將一阻隔表示傳下此路徑。當在此路徑中有進一步的分之點時,可能就需要這麼做,此處的情形就是如此。
在下一發散點190,接收該阻隔會導致傳送一回應信號,並清空其他路徑,而接收該阻隔表示會導致該阻隔管理電路系統180複製該阻隔並將其傳下至每一該出口路徑,而該控制電路系統170可動作以停止該後續交易。為了回應在該些路徑該的一路徑上接收到一回應信號,可以接通其他路徑,因為這是其上並未接收到回應的唯一路徑,並將及後續交易與一阻隔表示一起進一步傳送。當在二路徑上都接收到一回應時,則可接通該二路徑。
應注意到,從未複製該阻隔表示,且不需要一回應。其僅允許該控制電路系統瞭解在其後的該交易係在接收到一回應之前所傳輸的,且因此,若有一後續發散點,舉例來說,可能需要阻斷。
這是一種能方便地改善處理阻隔之效率的方法。此外,在某些實施例中,此方法可能特別有利,例如若第19圖所示的路徑200恰巧是流量較低的路徑,且可能該先前交易為一阻隔且已接收到對其的一回應,則在此位於發散點190之阻隔的複製上,阻隔管理電路系統會察覺到之前傳下路徑200的該先前交易為一阻隔,且已經接收到針對此阻隔的一回應信號,且可以刪除該經複製的阻隔並做出回應,在此處,可立刻開啟其他路徑並將該後續交易傳送至該些路徑,因而更進一步降低系統的潛時。
第20圖摘要整理了不同種類的阻隔交易,以及當這些阻隔交易進入該互連中具有不同要求的不同區域時,如何將它們由一種類型轉換成另一種類型。如此一來,可藉由在可行之處移除一阻隔的阻斷本質並在必要時重新引入此阻斷本質,以降低該阻隔所致的潛時。
該記憶阻隔交易可以是阻斷或非阻斷,此係取決於其在該互連中的位置。事實上,這些阻隔有三種不同的行為,且可將其視為三種不同類型的記憶阻隔。有一種順序阻隔,其不會阻斷但會在停留在該交易訊息流中以將後續交易和較早的交易分隔開來,在具有多個區域的一互連中,位於其區域之外的一記憶阻隔可作為一順序阻隔;一系統清空阻隔會蓄意且對應於一DSB而進行阻斷;以及一區域清空阻隔通常不會阻斷但會基於必要的元件佈局理由(在一交叉耦合區域中)或任選的效能理由而進行區域性的阻斷。
在許多情形中,都可進行這些類型之間的轉換。由順序阻隔轉換為系統或區域清空阻隔需要轉換點阻斷後續交易。由系統或區域清空阻隔轉換為順序阻隔不必然需要提出一早期回應(以使得後續交易可被傳送),但仍可提供此種早期回應─此種不傳送早期回應的轉換是沒有意義的,因為這樣不會降低阻隔發出裝置的潛時,且會使得更多主戰在下一交叉耦合區域被阻斷。若需要一早期回應(且這是被允許的─即在一二等分區域中),則若回應一系統或區域清空阻隔,則由於早期回應可能導致來自該阻隔後方的交易被傳送,那麼提供該回應的位置必須阻斷這些較晚的交易或其必須改變該阻隔而使其成為一種順序阻隔。
一般來說,可想見任選的轉換並不常見,因為效能管理與服務品質的理由,交易的本質就非常有用─此處探討的阻隔的阻斷本質可以用來和阻隔的處斷本質加諸於該發出裝置與其他主站的潛時進行利害交換。
第20圖繪示可允許的阻隔轉換,其係根據轉換所發生的脈絡與該轉換需要何種阻隔而定。
附隨申請專利範圍中界定了本發明的各種態樣與特徵。可針對上文所述的實施方式進行各種修改而不致於背離本發明的範圍。
10、12...互連
20、22、24、26、28、P0、P1、P2、S0、S1、S2、S3...主站
30、32、34、36...從站
31、33、210...外部區域
40、48...交叉耦合部分
41、42、49...分支點
44、45、91...合併點
50、52...二等分路徑
60、110...重新排序緩衝區
70、76、170...控制電路系統
80...清空單元
82...清空電路系統
90、92...阻斷電路系統
100...合併電路系統
102...阻隔消除電路系統
112...記憶控制器
120、122、124、126、127、128...非共用區域
125、129、200、201...內部區域
130...阻隔產生器
135...出口節點
140...危害單元
150...處理器
160、190...發散點
162...用以儲存交易的緩衝區
180...阻隔管理電路系統
210...位置
上文參照本發明的實施方式並參照附隨圖式以例示的方式進一步說明本發明,其中圖式如下:
第1圖繪示根據本發明一實施方式的一互連;
第2圖繪示根據本發明一實施方式的二個連接在一起的互連;
第3圖概要繪示一阻隔交易請求根據本發明一實施方式的;
第4圖概要繪示另一交易請求;
第5A圖概要繪示一互連中多個區域的排置方式;
第5B圖繪示根據本發明一實施方式的一互連中之一區域及其出口節點;
第6圖繪示根據本發明進一步實施方式的一互連中之區域的進一步排置;
第7圖繪示根據本發明一實施方式的進一步互連;
第8圖繪示根據本發明一實施方式的具有平行讀取與寫入路徑的一互連;
第9圖繪示根據本發明一實施方式的一互連,其能夠合併阻隔交易;
第10圖繪示根據本發明一實施方式的一互連,其能夠消除阻隔交易;
第11圖繪示根據本發明一實施方式的具有一互連的一資料處理設備;
第12圖繪示根據本發明一實施方式,用以移除由透過一互連之一阻隔交易所造成之阻斷之方法的步驟流程圖;
第13圖繪示根據本發明一實施方式,用以移除一阻隔交易請求之方法的步驟流程圖;
第14圖繪示根據本發明一實施方式,用以控制周邊元件進入一低耗電模式之方法的步驟流程圖;
第15圖繪示根據本發明一實施方式,用以降低一周邊元件之功率消耗之方法的步驟流程圖;
第16圖繪示根據本發明一實施方式,用以在合適的情形中利用合併阻隔交易以降低與阻隔交易相關之管理成本之方法的步驟流程圖;
第17圖繪示根據本發明一實施方式,用以處理位於一互連內的一阻斷單元處的阻隔交易之方法的步驟流程圖;
第18圖繪示根據本技術的起始裝置與接收裝置;
第19圖概要繪示交易之傳輸及阻斷;以及
第20圖摘要整理了不同種類的阻隔交易,以及當這些阻隔交易進入該互連中具有不同要求的不同區域時,如何將它們由一種類型轉換成另一種類型。
10...互連
20、22、24、26、28...主站
30、32、34、36...從站
40、48...交叉耦合部分
41、42、49...分支點
44、45...合併點
50、52...二等分路徑
60...重新排序緩衝區
70...控制電路系統
80...清空單元
90...阻斷電路系統
Claims (26)
- 一種用於一資料處理設備的互連電路系統,上述互連電路系統用以提供複數個資料路線,以供至少一起始裝置透過該些資料路線來存取至少一接收裝置,上述互連電路系統包含:至少一輸入端,用以接收來自上述至少一起始裝置的交易請求;至少一輸出端,用以輸出交易請求至上述至少一接收裝置;至少一路徑,用以於上述至少一輸入端與上述至少一輸出端之間傳輸上述交易請求;控制電路系統,用以將上述所接收之交易請求自上述至少一輸入端發送至上述至少一輸出端;其中上述控制電路系統用以回應一阻隔交易請求,以相對於沿著上述至少一路徑其中之一傳遞的一交易請求訊息流中的上述阻隔交易請求而保持至少某些交易請求的一順序,其係藉由相對於上述交易請求訊息流中晚於上述阻隔交易請求的至少某些交易請求,拒絕將在上述交易請求訊息流中早於上述阻隔交易請求的至少某些上述交易請求重新排序;其中上述阻隔交易請求包含一指示元,其指明在上述交易請求訊息流內的上述交易請求中,何者包含其順序將被保持的上述至少某些交易請求。
- 如請求項1所述的互連電路系統,其中上述控制電路系統用以回應一阻隔交易請求,以保持至少某些交易請求相對於上述阻隔交易請求的一順序,其係藉由延遲上述交易請求訊息流中,發生於上述阻隔交易請求之後的沿著上述至少某些交易請求的路徑的傳輸,直到接收到清空上述阻隔交易的該回應信號為止。
- 如請求項1所述的互連電路系統,其中上述指示元指示上述交易請求之一性質,且上述至少某些交易請求包含具有上述性質的交易請求。
- 如請求項3所述的互連電路系統,其中上述性質包含上述交易請求之一來源。
- 如請求項3所述的互連電路系統,其中上述指示元指明上述交易請求的一功能。
- 如請求項3所述的互連電路系統,其中上述指示元指明一或多位址,上述至少某些交易請求包含前往上述一或多位址的交易請求。
- 如請求項2所述的互連電路系統,上述互連電路系統包含複數個區域,每一區域包含至少一輸入端其係用以接收來自一起始裝置之交易請求,其中上述指示元包含一區域指示元其指明是否應延遲接收自所有起始裝置之上述至少某些後續交易請求,或是否只延遲接收自上述區域其中一區域的該些後續交易請求,或是否不應延遲任何交易請求。
- 如請求項1所述的互連電路系統,其中上述阻隔交易請求包含一指示元其指明上述阻隔交易請求所適用的一區域,且上述控制電路系統用以決定所接收之一交易請求是否受制於上述阻隔交易請求,其係藉由決定上述所接收之交易請求之一發出者是否屬於上述阻隔所指明的上述區域。
- 如請求項1所述的互連電路系統,上述互連電路系統更包含阻隔管理電路系統。
- 如請求項9所述的互連電路系統,其中:上述控制電路系統用以在位於通往一再匯聚區域之一進入點的一發散節點處複製阻隔交易及以一再匯聚區域提供上述複製阻隔交易;以及上述阻隔管理電路系統可針對偵測到上述經複製的阻隔交易離開上述再匯聚區域做出回應,以移除上述再匯聚指示元並合併至少某些上述經複製的阻隔交易。
- 如請求項10所述的互連電路系統,其中上述控制電路系統更用以提供關於上述經複製的阻隔交易之一數目的一指示給上述經複製的阻隔,以向上述阻隔管理電路系統指明可供合併的阻隔交易之一數目。
- 如請求項9所述的互連電路系統,其中上述阻隔管理電路系統用以針對偵測到上述交易請求訊息流中的鄰近阻隔交易請求具有一相同指示元做出回應,以合併上述鄰近阻隔交易請求並提供上述相同指示元給上述經合併的阻隔交易請求。
- 如請求項9所述的互連電路系統,其中上述阻隔管理電路系統用以合併具有一不同指示元的阻隔交易請求,以及提供一指示元給上述經合併的阻隔交易請求,該指示元指明上述經合併的阻隔交易請求之上述指示元的每一者所指明的交易。
- 如請求項9所述的互連電路系統,其中上述阻隔管理電路系統經設置用以針對偵測到有一阻隔交易請求跟著一先前阻隔交易請求之後且兩者間沒有順序受到上述在後阻隔交易請求控制的干涉交易請求做出回應,以:重新排序上述交易請求而使得上述在後阻隔交易被移動到鄰近上述先前阻隔交易請求處;以及合併上述相鄰的阻隔交易請求。
- 如請求項9所述的互連電路系統,包含阻隔管理電路系統經設置用以針對偵測到有一阻隔交易請求跟著一先前阻隔交易請求之後且兩者間沒有順序受到上述先前阻隔交易請求控制的干涉交易請求做出回應,以:重新排序上述交易請求而使得上述先前阻隔交易被移動到鄰近上述在後阻隔交易請求之處;以及合併上述相鄰的阻隔交易請求。
- 如請求項9所述的互連電路系統,其中上述阻隔管理電路系統經設置用以針對偵測到在二或多可合併之交易之間有一阻隔交易做出回應,以複製上述阻隔交易並將上述經複製的阻隔交易其中之一放置於上述二或多交易的任一側,以及合併上述二或多交易。
- 如請求項14所述的互連電路系統,其中上述阻隔管理電路系統用以偵測位於重新排序緩衝區內或位於上述互連電路系統內之一節點上的上述阻隔交易請求,上述節點包含通往一二等分路徑的一進入節點,在上述互連電路系統中,上述二等分路徑為上述進入節點與上述二等分路徑之一出口節點之間的唯一通訊路徑。
- 如請求項1所述的互連電路系統,其中上述控制電路系統用以標記不受任何阻隔交易控制的交易請求,上述交易請求其中至少某些不包含上述經標記的交易請求。
- 一種起始裝置,用以透過一互連向一接收裝置發出交易請求,該起始裝置包含:一阻隔交易請求產生器,用以產生阻隔交易請求以向上述互連指明應該保持在通過上述互連之一交易請求訊息流內之至少某些交易請求的一順序,其係藉由不允許將在上述交易請求訊息流發生於上述阻隔交易請求之前的至少某些上述交易請求相對於發生於上述阻隔交易請求之後的至少某些上述交易請求而重新排序;其中上述阻隔交易請求產生器用以提供一指示元予上述所產生的阻隔交易請求,以指明在上述交易請求訊息流內的上述交易請求中,何者包含上述其順序需被保持的至少某些交易請求。
- 如請求項19所述的起始裝置,其中上述阻隔交易產生器經設置用以針對偵測到一高度排序之交易請求的輸出,以產生並輸出一阻隔交易。
- 如請求項19所述的起始裝置,上述起始裝置更包含:危害單元,用以儲存可能產生一危害的突出交易請求;以及一輸出端,用以輸出上述交易請求至上述互連;其中上述起始裝置經設置用以針對偵測到上述危害單元已存滿做出回應,而使得可暫停進一步交易請求的輸出,以產生並輸出與至少一位址相關的一阻隔交易,以及清空與上述至少一位址相關的任何交易請求的上述危害單元。
- 如請求項21所述的起始裝置,其中上述阻隔交易請求為與所有交易請求相關的一全域阻隔交易請求,且上述起始裝置用以清空所有交易請求的上述危害單元。
- 如請求項22所述的起始裝置,其中上述阻隔交易請求與新近儲存於上述危害單元中的上述交易請求其中之一的一位址相關,且上述危害單元用以清空上述危害單元中的上述新近儲存的交易請求。
- 一種資料處理設備,包含:根據請求項19的至少一起始裝置,用以發出交易請求;至少一接收裝置,用以接收上述交易請求;以及根據請求項1的的一互連,用以連接上述至少一起始裝置至上述至少一接收裝置。
- 一種接收裝置,用以接收來自一互連的交易請求,上述交易請求包含阻隔交易請求,上述阻隔交易請求用以保持一交易請求訊息流內至少某些交易請求的一順序,其係藉由拒絕將在上述交易請求訊息流中早於上述阻隔交易請求的至少某些上述交易請求,相對於上述交易請求訊息流中晚於上述阻隔交易請求的至少某些上述交易請求,而重新排序,上述阻隔交易請求包含一指示元,以指明上述至少某些交易請求中何者的順需應予保持,上述接收裝置包含:一回應信號產生器,上述回應信號產生器用以回應上述阻隔交易請求,以產生並傳送對上述阻隔交易請求之一回應,以及回應上述阻隔交易請求中的一預定指示元,以延遲傳送上述回應,直到上述接收裝置已經至少部分處理了於上述阻隔交易請求之前接收之上述交易請求的至少一交易請求。
- 一種用以將資料由至少一起始裝置透過互連電路系統而發送至至少一接收裝置的方法,上述方法包含以下步驟:由位於至少一輸入端的上述至少一起始裝置接收交易請求;將上述交易請求沿著複數個路徑其中至少一路徑向至少一輸出端發送;針對接收到一阻隔交易請求做出回應:在沿著上述至少一路徑其中之一傳遞的一交易請求訊息流內,保持至少某些交易請求相對於上述阻隔交易請求的一順序,其係藉由拒絕將在上述交易請求訊息流中早於上述阻隔交易請求的至少某些上述交易請求,相對於上述交易請求訊息流中晚於上述阻隔交易請求的至少某些上述交易請求,而重新排序;其中上述阻隔交易包含一指示元,其指明在上述交易請求訊息流內的上述交易請求中,何者包含其順序需被保持的上述至少某些交易請求。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB0917946A GB2474446A (en) | 2009-10-13 | 2009-10-13 | Barrier requests to maintain transaction order in an interconnect with multiple paths |
| GB201007342A GB2474532B8 (en) | 2009-10-13 | 2010-04-30 | Barrier transactions in interconnects |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201120656A TW201120656A (en) | 2011-06-16 |
| TWI474193B true TWI474193B (zh) | 2015-02-21 |
Family
ID=41402983
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW99133596A TWI474193B (zh) | 2009-10-13 | 2010-10-01 | 互連中的阻隔交易 |
| TW099133594A TW201120638A (en) | 2009-10-13 | 2010-10-01 | Reduced latency barrier transaction requests in interconnects |
| TW099134937A TWI533133B (zh) | 2009-10-13 | 2010-10-13 | 用於將分散式系統中多個組件的活動同步的方法、電路、裝置,及設備 |
Family Applications After (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW099133594A TW201120638A (en) | 2009-10-13 | 2010-10-01 | Reduced latency barrier transaction requests in interconnects |
| TW099134937A TWI533133B (zh) | 2009-10-13 | 2010-10-13 | 用於將分散式系統中多個組件的活動同步的方法、電路、裝置,及設備 |
Country Status (11)
| Country | Link |
|---|---|
| US (6) | US8732400B2 (zh) |
| EP (3) | EP2488951B1 (zh) |
| JP (6) | JP5650749B2 (zh) |
| KR (3) | KR20120095876A (zh) |
| CN (4) | CN102792290B (zh) |
| GB (4) | GB2474446A (zh) |
| IL (3) | IL218704A (zh) |
| IN (3) | IN2012DN02792A (zh) |
| MY (2) | MY155614A (zh) |
| TW (3) | TWI474193B (zh) |
| WO (3) | WO2011045556A2 (zh) |
Families Citing this family (52)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2474446A (en) * | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
| KR101699781B1 (ko) * | 2010-10-19 | 2017-01-26 | 삼성전자주식회사 | 시스템 온 칩 및 그것의 데이터 중재 방법 |
| US8589638B2 (en) * | 2011-07-19 | 2013-11-19 | Arm Limited | Terminating barriers in streams of access requests to a data store while maintaining data consistency |
| GB2493405B (en) * | 2011-08-03 | 2017-04-05 | Advanced Risc Mach Ltd | Debug barrier transactions |
| US8463960B2 (en) * | 2011-08-08 | 2013-06-11 | Arm Limited | Synchronisation of data processing systems |
| US9473424B2 (en) * | 2011-09-19 | 2016-10-18 | Fujitsu Limited | Address table flushing in distributed switching systems |
| US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
| US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
| US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
| US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
| US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
| US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
| US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
| US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
| US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US20140032854A1 (en) * | 2012-07-30 | 2014-01-30 | Futurewei Technologies, Inc. | Coherence Management Using a Coherent Domain Table |
| US9489307B2 (en) * | 2012-10-24 | 2016-11-08 | Texas Instruments Incorporated | Multi domain bridge with auto snoop response |
| US10210117B2 (en) * | 2013-07-18 | 2019-02-19 | Benjamin Aaron Gittins | Computing architecture with peripherals |
| GB2522057B (en) * | 2014-01-13 | 2021-02-24 | Advanced Risc Mach Ltd | A data processing system and method for handling multiple transactions |
| US20150317158A1 (en) | 2014-04-03 | 2015-11-05 | Applied Micro Circuits Corporation | Implementation of load acquire/store release instructions using load/store operation with dmb operation |
| GB2533972B (en) * | 2015-01-12 | 2021-08-18 | Advanced Risc Mach Ltd | An interconnect and method of operation of an interconnect |
| US20160246721A1 (en) * | 2015-02-19 | 2016-08-25 | Qualcomm Incorporated | Role based cache coherence bus traffic control |
| US10078589B2 (en) * | 2015-04-30 | 2018-09-18 | Arm Limited | Enforcing data protection in an interconnect |
| US9946492B2 (en) | 2015-10-30 | 2018-04-17 | Arm Limited | Controlling persistent writes to non-volatile memory based on persist buffer data and a persist barrier within a sequence of program instructions |
| US10241945B2 (en) | 2015-11-05 | 2019-03-26 | International Business Machines Corporation | Memory move supporting speculative acquisition of source and destination data granules including copy-type and paste-type instructions |
| US10067713B2 (en) | 2015-11-05 | 2018-09-04 | International Business Machines Corporation | Efficient enforcement of barriers with respect to memory move sequences |
| US10042580B2 (en) | 2015-11-05 | 2018-08-07 | International Business Machines Corporation | Speculatively performing memory move requests with respect to a barrier |
| US9996298B2 (en) | 2015-11-05 | 2018-06-12 | International Business Machines Corporation | Memory move instruction sequence enabling software control |
| US10140052B2 (en) * | 2015-11-05 | 2018-11-27 | International Business Machines Corporation | Memory access in a data processing system utilizing copy and paste instructions |
| US10126952B2 (en) * | 2015-11-05 | 2018-11-13 | International Business Machines Corporation | Memory move instruction sequence targeting a memory-mapped device |
| US10152322B2 (en) | 2015-11-05 | 2018-12-11 | International Business Machines Corporation | Memory move instruction sequence including a stream of copy-type and paste-type instructions |
| US10346164B2 (en) | 2015-11-05 | 2019-07-09 | International Business Machines Corporation | Memory move instruction sequence targeting an accelerator switchboard |
| GB2548387B (en) * | 2016-03-17 | 2020-04-01 | Advanced Risc Mach Ltd | An apparatus and method for filtering transactions |
| US10956205B2 (en) * | 2017-01-03 | 2021-03-23 | Arm Limited | Data processing |
| JP6944107B2 (ja) * | 2017-07-11 | 2021-10-06 | 富士通株式会社 | 情報処理装置、情報処理システム及びプログラム |
| KR102262209B1 (ko) * | 2018-02-09 | 2021-06-09 | 한양대학교 산학협력단 | 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치 |
| JP7207133B2 (ja) * | 2019-04-23 | 2023-01-18 | 富士通株式会社 | 情報処理装置、同期装置及び情報処理装置の制御方法 |
| US11593281B2 (en) * | 2019-05-08 | 2023-02-28 | Hewlett Packard Enterprise Development Lp | Device supporting ordered and unordered transaction classes |
| GB2585914B (en) * | 2019-07-23 | 2022-08-10 | Advanced Risc Mach Ltd | Epoch-based determination of completion of barrier termination command |
| US11055130B2 (en) | 2019-09-15 | 2021-07-06 | Mellanox Technologies, Ltd. | Task completion system |
| US11822973B2 (en) | 2019-09-16 | 2023-11-21 | Mellanox Technologies, Ltd. | Operation fencing system |
| US11372585B2 (en) | 2020-05-05 | 2022-06-28 | Micron Technology, Inc. | Asynchronous process topology in a memory device |
| CN114155709B (zh) * | 2021-11-23 | 2022-09-23 | 北京安融畅信息技术有限公司 | 一种急弯路段识别方法以及安全隐患排查方法 |
| US11876713B1 (en) * | 2023-03-13 | 2024-01-16 | Intuit Inc. | Client side backoff filter for rate limiting |
| US20250217207A1 (en) * | 2023-12-29 | 2025-07-03 | Apple Inc. | Translation Barrier Instruction |
| US20250258778A1 (en) * | 2024-02-08 | 2025-08-14 | Nvidia Corporation | Ordered store operations in a multiprocessor system |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6038646A (en) * | 1998-01-23 | 2000-03-14 | Sun Microsystems, Inc. | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface |
| TW200502805A (en) * | 2003-05-09 | 2005-01-16 | Incentia Design Systems Corp | Timing based scan chain implementation in an IC design |
| US20080301342A1 (en) * | 2007-06-01 | 2008-12-04 | Richard Gerard Hofmann | Device Directed Memory Barriers |
| TW200849051A (en) * | 2007-02-28 | 2008-12-16 | Ibm | System and method for sign-off timing closure of a VLSI chip |
Family Cites Families (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS55147744A (en) * | 1979-05-07 | 1980-11-17 | Hitachi Ltd | Memory controlling unit |
| US4833468A (en) | 1987-10-14 | 1989-05-23 | Unisys Corporation | Layered network |
| US5224214A (en) * | 1990-04-12 | 1993-06-29 | Digital Equipment Corp. | BuIffet for gathering write requests and resolving read conflicts by matching read and write requests |
| US5274782A (en) * | 1990-08-27 | 1993-12-28 | International Business Machines Corporation | Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks |
| US5459842A (en) | 1992-06-26 | 1995-10-17 | International Business Machines Corporation | System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory |
| US5608870A (en) * | 1992-11-06 | 1997-03-04 | The President And Fellows Of Harvard College | System for combining a plurality of requests referencing a common target address into a single combined request having a single reference to the target address |
| US5914953A (en) * | 1992-12-17 | 1999-06-22 | Tandem Computers, Inc. | Network message routing using routing table information and supplemental enable information for deadlock prevention |
| US5893165A (en) * | 1996-07-01 | 1999-04-06 | Sun Microsystems, Inc. | System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO |
| JP3636871B2 (ja) * | 1997-09-16 | 2005-04-06 | 株式会社日立製作所 | 並列プロセッサシステム |
| JP3858492B2 (ja) * | 1998-12-28 | 2006-12-13 | 株式会社日立製作所 | マルチプロセッサシステム |
| JP3889195B2 (ja) * | 1999-02-03 | 2007-03-07 | 株式会社東芝 | 画像処理装置、画像処理システムおよび画像処理方法 |
| US6430646B1 (en) * | 1999-08-18 | 2002-08-06 | Ati International Srl | Method and apparatus for interfacing a processor with a bus |
| US6748518B1 (en) * | 2000-06-06 | 2004-06-08 | International Business Machines Corporation | Multi-level multiprocessor speculation mechanism |
| US6647453B1 (en) * | 2000-08-31 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system |
| US6795878B2 (en) * | 2000-12-11 | 2004-09-21 | International Business Machines Corporation | Verifying cumulative ordering of memory instructions |
| US6967926B1 (en) * | 2000-12-31 | 2005-11-22 | Cisco Technology, Inc. | Method and apparatus for using barrier phases to limit packet disorder in a packet switching system |
| US7031338B2 (en) * | 2001-08-27 | 2006-04-18 | Hewlett-Packard Development Company, L.P. | System and method for the consolidation of data packets |
| US7051145B2 (en) * | 2001-12-10 | 2006-05-23 | Emulex Design & Manufacturing Corporation | Tracking deferred data transfers on a system-interconnect bus |
| EP1576466A2 (en) * | 2002-12-24 | 2005-09-21 | Sun Microsystems, Inc. | Generating prefetches by speculatively executing code through hardware scout threading |
| US7552317B2 (en) * | 2004-05-04 | 2009-06-23 | Sun Microsystems, Inc. | Methods and systems for grouping instructions using memory barrier instructions |
| US20050289306A1 (en) * | 2004-06-28 | 2005-12-29 | Sridhar Muthrasanallur | Memory read requests passing memory writes |
| JP4463097B2 (ja) * | 2004-12-24 | 2010-05-12 | エヌイーシーコンピュータテクノ株式会社 | データ転送システム、データ転送方法およびクロスバlsi |
| US7631130B2 (en) * | 2005-02-04 | 2009-12-08 | Mips Technologies, Inc | Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor |
| US7500045B2 (en) * | 2005-03-23 | 2009-03-03 | Qualcomm Incorporated | Minimizing memory barriers when enforcing strongly-ordered requests in a weakly-ordered processing system |
| US9026744B2 (en) * | 2005-03-23 | 2015-05-05 | Qualcomm Incorporated | Enforcing strongly-ordered requests in a weakly-ordered processing |
| TWI416334B (zh) * | 2005-07-11 | 2013-11-21 | Nvidia Corp | 在匯流排上以封包形式傳送來自複數個客戶的資料傳送請求之方法、匯流排介面裝置及處理器 |
| US7500039B2 (en) * | 2005-08-19 | 2009-03-03 | International Business Machines Corporation | Method for communicating with a processor event facility |
| US7917676B2 (en) * | 2006-03-10 | 2011-03-29 | Qualcomm, Incorporated | Efficient execution of memory barrier bus commands with order constrained memory accesses |
| US7610458B2 (en) * | 2006-04-25 | 2009-10-27 | International Business Machines Corporation | Data processing system, processor and method of data processing that support memory access according to diverse memory models |
| US7657680B2 (en) * | 2006-06-21 | 2010-02-02 | Finisar Corporation | Multiple bus interface control using a single controller |
| US7908406B2 (en) * | 2006-06-21 | 2011-03-15 | Finisar Corporation | Interface architecture for facilitating communication regardless of protocol |
| US7783817B2 (en) * | 2006-08-31 | 2010-08-24 | Qualcomm Incorporated | Method and apparatus for conditional broadcast of barrier operations |
| US7603490B2 (en) * | 2007-01-10 | 2009-10-13 | International Business Machines Corporation | Barrier and interrupt mechanism for high latency and out of order DMA device |
| US8006047B2 (en) * | 2007-06-27 | 2011-08-23 | Hitachi Global Storage Technologies Netherlands B.V. | Storage device with write barrier sensitive write commands and write barrier insensitive commands |
| WO2009025104A1 (ja) | 2007-08-22 | 2009-02-26 | Nec Corporation | 情報処理装置及び情報処理方法 |
| US8612950B2 (en) * | 2008-06-19 | 2013-12-17 | Intel Corporation | Dynamic optimization for removal of strong atomicity barriers |
| US8352682B2 (en) * | 2009-05-26 | 2013-01-08 | Qualcomm Incorporated | Methods and apparatus for issuing memory barrier commands in a weakly ordered storage system |
| GB2474446A (en) * | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
| US8589638B2 (en) * | 2011-07-19 | 2013-11-19 | Arm Limited | Terminating barriers in streams of access requests to a data store while maintaining data consistency |
-
2009
- 2009-10-13 GB GB0917946A patent/GB2474446A/en not_active Withdrawn
-
2010
- 2010-04-30 GB GB201007342A patent/GB2474532B8/en active Active
- 2010-04-30 GB GB1007363A patent/GB2474533A/en not_active Withdrawn
- 2010-09-28 CN CN201080046421.8A patent/CN102792290B/zh active Active
- 2010-09-28 KR KR1020127010025A patent/KR20120095876A/ko not_active Withdrawn
- 2010-09-28 WO PCT/GB2010/001822 patent/WO2011045556A2/en not_active Ceased
- 2010-09-28 CN CN2010800469669A patent/CN102713874A/zh active Pending
- 2010-09-28 MY MYPI2012001273A patent/MY155614A/en unknown
- 2010-09-28 EP EP10763398.4A patent/EP2488951B1/en not_active Not-in-force
- 2010-09-28 IN IN2792DEN2012 patent/IN2012DN02792A/en unknown
- 2010-09-28 WO PCT/GB2010/001819 patent/WO2011045555A1/en not_active Ceased
- 2010-09-28 IN IN2853DEN2012 patent/IN2012DN02853A/en unknown
- 2010-09-28 EP EP10782345.2A patent/EP2488952B1/en active Active
- 2010-09-28 KR KR1020127009810A patent/KR101734045B1/ko active Active
- 2010-09-28 JP JP2012533685A patent/JP5650749B2/ja active Active
- 2010-09-28 JP JP2012533684A patent/JP2013507708A/ja active Pending
- 2010-10-01 GB GB1016482A patent/GB2474552A/en not_active Withdrawn
- 2010-10-01 TW TW99133596A patent/TWI474193B/zh active
- 2010-10-01 TW TW099133594A patent/TW201120638A/zh unknown
- 2010-10-05 US US12/923,725 patent/US8732400B2/en active Active
- 2010-10-05 US US12/923,723 patent/US8856408B2/en active Active
- 2010-10-05 US US12/923,727 patent/US8607006B2/en active Active
- 2010-10-12 JP JP2010229679A patent/JP2011138481A/ja active Pending
- 2010-10-12 WO PCT/GB2010/051715 patent/WO2011045595A1/en not_active Ceased
- 2010-10-12 CN CN201080046965.4A patent/CN102576341B/zh active Active
- 2010-10-12 JP JP2012533691A patent/JP2013507710A/ja active Pending
- 2010-10-12 MY MYPI2012001398A patent/MY154614A/en unknown
- 2010-10-12 EP EP10775868.2A patent/EP2488954B1/en active Active
- 2010-10-12 KR KR1020127011968A patent/KR101734044B1/ko active Active
- 2010-10-12 IN IN3050DEN2012 patent/IN2012DN03050A/en unknown
- 2010-10-13 US US12/923,907 patent/US8601167B2/en not_active Expired - Fee Related
- 2010-10-13 TW TW099134937A patent/TWI533133B/zh active
- 2010-10-13 US US12/923,906 patent/US8463966B2/en active Active
- 2010-10-13 CN CN2010106093158A patent/CN102063391A/zh active Pending
-
2012
- 2012-03-18 IL IL218704A patent/IL218704A/en active IP Right Grant
- 2012-03-18 IL IL218703A patent/IL218703A0/en unknown
- 2012-03-27 IL IL218887A patent/IL218887A/en active IP Right Grant
-
2013
- 2013-08-06 US US13/960,128 patent/US9477623B2/en active Active
-
2014
- 2014-09-12 JP JP2014186541A patent/JP5865976B2/ja not_active Expired - Fee Related
-
2015
- 2015-05-12 JP JP2015097254A patent/JP6141905B2/ja active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6038646A (en) * | 1998-01-23 | 2000-03-14 | Sun Microsystems, Inc. | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface |
| TW200502805A (en) * | 2003-05-09 | 2005-01-16 | Incentia Design Systems Corp | Timing based scan chain implementation in an IC design |
| TW200849051A (en) * | 2007-02-28 | 2008-12-16 | Ibm | System and method for sign-off timing closure of a VLSI chip |
| US20080301342A1 (en) * | 2007-06-01 | 2008-12-04 | Richard Gerard Hofmann | Device Directed Memory Barriers |
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI474193B (zh) | 互連中的阻隔交易 | |
| US20020147869A1 (en) | System and method of increasing bandwidth for issuing ordered transactions into a distributed communication system | |
| KR100291230B1 (ko) | 데이터 처리 장치 | |
| GB2533972A (en) | An interconnect and method of operation of an interconnect |