互連中的數據存儲維護請求的製作方法
2023-09-16 15:37:25 1
專利名稱:互連中的數據存儲維護請求的製作方法
技術領域:
本發明涉及數據處理裝置領域,所述數據處理裝置具有包括高速緩存(cache)和 存儲器這二者的數據存儲(data store) 0更具體地,本發明涉及用於這些數據處理裝置 的互連電路,該互連電路提供數據路線(data route),一個或多個啟動器設備(initiator device)如主設備(master)通過所述數據路線訪問(access) —個或多個接受設備 (recipient device)如從設備(slave)。
背景技術:
在數據處理系統中互連(interconnect)被用來提供不同組件之間的連接。它們 提供數據路線,其中一個或多個啟動器設備可以通過所述數據路線訪問一個或多個接受設 備。啟動器設備只是生成事務請求的設備,並因而可以是諸如處理器的主設備或者是另一 個互連。接受設備只是接收事務的設備,並且其可為諸如外圍設備的從設備或者也可以是 另一個互連。系統隨著多個處理器相互之間、多個處理器與多個設備、多個處理器與包含提供 快速數據訪問的高速緩存和存儲器這二者的不同存儲設施之間的通信而變得更加複雜,為 了編寫出確保跨時間的交互過程的一致行為(consistent behaviour)的軟體,為多處理器 系統編寫軟體的程序設計者需要涉及架構的等待時間和拓撲的詳細知識。即使有了這些詳 細知識,也只有在付出某些不平常的努力和成本後才能獲得一致性。在一般意義上對於任意的架構提供允許編程人員確保跨時間的交互過程的一致 行為的機制,將是所期望的。在具有任意架構的複雜系統中,存在與數據存儲維護操作相關聯的具體問題。比 如知道這些操作何時完成是很重要的,但如果系統不確定數據存儲的數量或布置,則很難 對此進行追蹤。例如在具有多個高速緩存的系統中,其中多個高速緩存中的至少一些能夠由多於 一個主設備訪問,在沒有高速緩存的架構並且具體為其數量和布置的詳細知識的情況下, 對於任意維護高速緩存的高速緩存維護操作來說,很難確定何時完成該維護。因此,在設計 架構不可知的系統時,數據存儲維護操作提出了一個特殊的問題。
發明內容
本發明的第一方面提供了用於數據處理裝置的互連電路,所述互連電路被配置為 提供數據路線,其中至少一個啟動器設備能夠通過所述數據路線訪問至少一個接受設備, 所述互連電路包括至少一個輸入,用於從所述至少一個啟動器設備接收事務請求;至少 一個輸出,用於向所述至少一個接受設備輸出事務請求;多個路徑,用於在所述至少一個輸 入和所述至少一個輸出之間傳送所述事務請求;其中所述事務請求中的至少一個包括數據 存儲維護請求,其請求對所述數據處理裝置內的數據存儲執行的數據存儲維護操作;以及 控制電路,用於從所述至少一個輸入向所述至少一個輸出路由所述接收的事務請求;其中所述控制電路被配置為通過沿著所述多個路徑中的至少一個傳送後面跟著屏障(barrier) 事務請求的所述數據存儲維護請求來響應所述數據存儲維護請求的接收,所述控制電路被 配置為保持沿著所述多個路徑中的所述至少一個傳送的事務請求流中至少一些事務請求 相對於所述屏障事務請求的排序,以使所述事務請求流中在所述數據存儲維護請求之前的 至少一些事務請求,通過所述屏障事務請求而被保持於所述數據存儲維護請求之前,並且 所述事務請求流中位於所述數據存儲維護請求之後的至少一些事務請求,通過所述屏障事 務請求而被保持於所述數據存儲維護請求之後。本發明認識到數據存儲維護操作在數據處理系統中呈現的問題,並通過屏障的使 用來解決這些問題。如果通過不允許至少一些指令跨越屏障重排序,來建立互連以響應屏 障事務請求,則能夠在數據存儲維護操作之後使用屏障來阻止數據存儲維護請求之後的事 務在其之前被執行。此外,只需建立該互連以響應於屏障進行操作,並且不需要知道所存在 的高速緩存及其位置的知識,便可確保數據存儲維護操作的正確且一致的執行。另外,如果 出於其他原因建立互連以響應於屏障而起作用,則能夠使用該功能來有效應對數據存儲維 護操作而不需要任何顯著的額外開銷。通過不允許至少一些事務請求超越(overtake)或者被屏障事務請求超越,排序 可被保持,這樣,屏障位於事務請求流中且保持其周圍的排序。在一些實施例中,所述控制電路被配置為,通過延遲所述至少一些事務請求沿所 述多個路徑之一的傳輸直到接收到清除(Clear)所述屏障事務的響應信號為止,來響應所 述屏障事務請求以保持位於所述屏障事務請求之後的所述至少一些事務請求的排序。在系統中,要被保持在屏障之後的至少一些事務請求可能已被阻塞(blocking) 電路延遲,於是位於屏障後面的事務請求能夠被允許超越它,因為它們不是要由屏障保持 次序的事務請求,而應待在屏障後面的事務請求已在上遊被延遲。然而,屏障前面的所有事 務請求必須保持在其前面。在一些實施例中,所述數據存儲維護請求包括高速緩存維護請求,所述數據處理 裝置包括至少一個存儲器和用於存儲保存於所述至少一個存儲器中的數據項目的本地拷 貝的一個或多個高速緩存,所述互連電路被配置為傳送所述高速緩存維護請求和所述屏障 事務請求到所述一個或多個高速緩存中的至少一個。高速緩存維護請求需要按某種次序來執行以便保持數據一致,並且因此在以不同 速度操作的不同設備通過互連而彼此通信的系統中,屏障事務對幫助保持排序可能是有用 的。在一些實施例中,所述互連電路被配置為接收來自所述至少一個高速緩存的所述 響應信號。高速緩存可被配置為使得當它接收到跟在高速緩存維護事務請求之後的屏障事 務請求時生成響應信號。該高速緩存可以僅在接收到屏障事務請求之後生成和傳送響應, 在這種情況下該響應向啟動器設備提供指示高速緩存維護請求已到達該高速緩存,或者 高速緩存可被配置為僅當被請求的高速緩存維護操作已執行到這樣的一點-即進一步的 事務能夠由高速緩存安全處理時,向屏障發送響應。該點將依賴於高速緩存的設計,並且可 能是當在高速緩存自身內部執行的高速緩存維護操作(如無效線)已完成時,即使這些高 速緩存維護操作所觸發的其他操作(例如向存儲器寫入髒數據)仍然是未決的。需要注意的是,如果進一步發送維護事務請求,則在它們後面進一步發送屏障事務請求。在一些實施例中,所述互連電路包括所述一個或多個高速緩存中的至少一個,所 述至少一個高速緩存被配置為在所述高速緩存的輸入處保持所述屏障事務請求,且不接收 任何進一步的事務請求,並且響應於與所述高速緩存相關聯的控制電路確定所述高速緩存 保持請求已被處理到一點-在該點處接收進一步的的事務請求是安全的,所述至少一個高 速緩存被配置為接收所述進一步的事務請求。如果屏障事務請求沒有阻塞上遊事務請求流,則在一些實施例中,其可被保持於 高速緩存的輸入處,使得沒有進一步的事務請求能夠由高速緩存接收,直到控制電路確定 從數據一致性的角度看,對於高速緩存來說接收進一步的事務請求是安全的。在一些實施例中,所述高速緩存維護請求觸發了待傳送到另外的數據存儲的事務 請求,所述點包括這樣一個點-在該點源自所述高速緩存維護操作的所有事務已被進一步 傳送,所述控制電路被配置為在源自所述高速緩存維護操作的所述事務之後進一步傳送所 述屏障事務請求。如果高速緩存維護請求沒有觸發進一步的事務請求到另外的數據存儲,則所 述控制電路被配置為,響應於確定所述高速緩存維護請求已被處理到所述點而消除 (eliminate)所述屏障事務請求,其中在所述點處接收進一步的事務請求是安全的。如果高速緩存維護請求觸發了進一步的事務請求,則在這些請求之後發送屏障事 務請求。如果高速緩存維護請求沒有生成進一步的事務請求,換言之,如果所有的高速緩存 維護操作都在該高速緩存中被執行,且該高速緩存位於路徑的末端,以致於此外沒有另外 的高速緩存,則一旦不需要屏障來阻塞高速緩存的輸入,就可將其消除。在一些實施例中,所述高速緩存維護請求被指向一個或多個地址,所述屏障事務 請求包括對應的一個或多個地址,所述控制電路被配置為沿著所述多個路徑中的至少一些 路由所述屏障事務請求和所述高速緩存維護請求。可針對整個高速緩存執行高速緩存維護操作,例如整個高速緩存可被刷新,或者 高速緩存維護操作可針對單個地址或地址範圍執行。在後一情況中,如果屏障事務也包含 地址,則是有利的。控制電路被配置為沿著路徑中的至少一些路由屏障事務請求和高速緩 存維護請求。可能的是沿著所有路徑路由請求,或者可能的是控制電路認識到這樣的高速 緩存維護請求永遠不需要沿特定路徑服務任何組件並且因此它便不會沿該路徑發送屏障 或高速緩存維護請求。在適當時沿路徑子集向下發送屏障和高速緩存維護請求的能力減少 了由屏障和高速緩存維護請求給系統造成的等待時間。在一些實施例中,位於所述高速緩存維護請求之後並通過所述屏障事務請求保持 於其後面的所述至少一些事務請求包括到所述一個或多個地址的事務請求。在屏障事務請求內具有地址的一個特殊優勢在於這能夠向控制電路指示需要被 阻塞的事務。因此,不受高速緩存維護操作影響且本身不影響高速緩存維護操作的到其他 地址的事務能繼續進行。這在高速緩存維護操作可能花費比較長的時間時非常有利,並且 因此,如果所有的事務都被停止等待其完成,則系統的等待時間可能會極大地增加。在屏 障事務請求內發信號通知(signal)地址的能力使得這個潛在的等待時間問題被顯著地改
口 ο在一些實施例中,所述多個路徑中的所述至少一些路徑為通向可為所述一個或多個地址緩存數據的任意高速緩存的路徑。發送高速緩存維護請求和屏障事務請求所沿的路徑可以是通向可為該地址緩存 數據的任意高速緩存的路徑。在這種情況下,將針對可緩存該地址的所有高速緩存執行維 護操作。在其他實施例中,所述多個路徑中的所述至少一些路徑為通向發起所述高速緩存 維護請求的所述啟動器能夠將所述一個或多個地址的數據緩存於其中的任意高速緩存的 路徑。可替換地,控制電路可以僅發送維護請求和後面跟著的屏障請求到高速緩存維護 請求的啟動器能夠將該地址的數據緩存於其中的任意高速緩存。可能只適合維護啟動器本 身能夠訪問的高速緩存,並且在這種情況下,沿著那些路徑僅傳送高速緩存維護請求和屏 障事務請求。在一些實施例中,所述多個路徑中的至少一些路徑為從節點分叉出來的分叉 (divergent)路徑,所述控制電路被配置為沿著路由所述事務請求所沿著的所述分叉路徑 中的至少一些路徑複製和傳送所述高速緩存維護請求,以及所述後面跟著的屏障事務請 求。路徑分叉之處,高速緩存維護請求可能需要被複製以在可能包含高速緩存的任意 路徑上傳播。高速緩存維護請求被複製所沿行(follow)的任意路徑,屏障事務請求也應該 被複製以沿行,且應該在複製的高速緩存維護請求之後沿其發送。這樣便能夠確保數據處 理裝置的正確行為。在一些實施例中,所述控制電路被配置為延遲所述屏障事務請求之後的所述至少 一些事務請求的傳輸,直到接收到對應於所有的所述複製的屏障事務請求的響應信號之後。在屏障事務請求被阻塞的情況下,則後續的事務請求也被阻塞,直到所有複製的 屏障事務請求的響應已被接收為止。這樣就能確保沒有後續的事務被向下發送到所述路 徑任意一個,在所述路徑處它們可能將高速緩存維護操作向下帶到另一個路徑上,而這將 導致處理錯誤。在一些實施例中,所述控制電路包括位於所述互連內序列化(serialisation)的 一點的響應信號生成器,在該點之外的事務請求不能被重排序,所述響應信號生成器被配 置為生成針對所述屏障事務請求的所述響應信號,且不再進一步傳送所述屏障事務請求。在互連內的序列化的一點上,可以確信進一步被傳送的後續事務將保持它們被 傳送的排序。因此,在該點上,可發送響應信號到屏障事務,且無需進一步傳送屏障事務,因 為不存在事務相互超越的問題。這樣,可高效處理屏障事務,且當不再需要屏障事務時,可 將其從系統中移除。在一些實施例中,所述控制電路包括響應信號生成器和阻塞電路,所述響應信號 生成器響應於接收到所述屏障事務請求而沿著接收所述屏障事務請求的入口路徑(entry path)發布(issue)所述響應信號,並且所述阻塞電路響應於接收到所述屏障事務請求而 阻塞傳送所述屏障事務請求所沿著的所有出口路徑(exit path),從而阻塞所述屏障事務 請求之後的所述至少一些事務請求,直到接收到所述響應信號為止。通過阻塞向下發送屏障的路徑直到接收到指示路徑是暢通的(clear)的響應信號為止,阻塞電路可以保持該排序。如果有若干路徑,則可以複製屏障以沿每一個路徑或者 至少路徑的一個子集向下傳送,並且可能需要來自全部或只排除一個的響應以允許停止阻塞。在一些實施例中,所述響應信號生成器緊挨著所述阻塞電路的上遊。響應信號生成器和阻塞電路可被相互鄰接地布置,以便當屏障到達這些單元時路 徑被清除(cleared),從而上遊拖延的事務可被進一步發送,而出口路徑被阻塞。在一些實施例中,所述多個路徑包括至少一個交叉路徑(bisection path),所述 交叉路徑包括所述互連電路內的兩節點之間的唯一通信路徑,所述兩個節點包括所述交叉 路徑的入口節點和出口節點;所述響應信號生成器位於所述入口節點處,且響應於接收到 所述屏障事務請求,而沿所述入口路徑傳送所述響應信號;以及所述阻塞電路位於所述出 口節點處,且響應於接收到所述屏障事務請求,而阻塞傳送所述屏障事務請求所沿著的所 有出口路徑,從而阻塞所述屏障事務請求之後的所述至少一些事務請求。互連內存在連接各種啟動器設備和接受設備的路徑。這些路徑中的一些構成可被 看作交叉路徑的路線,因為它們是互連電路內兩個節點之間的唯一鏈路,因此切斷該路徑 會將互連沿該路徑分成兩部分。節點是電路中的任意點。在這種情況下,當屏障事務請求 到達交叉路徑的入口節點時,通過發送響應信號來清除後面的路徑,將那些被屏障事務請 求所阻塞的路徑解除阻塞是有利的。如果響應信號生成器位於交叉路徑的起點,則阻塞電 路可位於該路徑的終點,因為如果事務以正確的次序進入交叉路徑,它們必須以同樣的次 序退出。沿交叉路徑傳播的事務請求只能沿一個路線傳播,因而,必須保持相對於屏障其 被向下沿路線發送的次序。因此,如果系統已被建立,使得其以相對於屏障的正確次序到達 入口節點處,則一旦屏障事務請求被向下沿交叉路徑發送,之前的路徑可被解除阻塞,從而 允許後續的已拖延的事務請求被傳送。這樣,它們能夠響應於確定屏障事務請求已到達交 叉路徑的入口節點而沿著該互連的一部分被傳送,而不是在它們能夠被傳送前等待完成先 前所有的指令。這樣,可縮短與這些屏障事務請求的阻塞特徵相關聯的等待時間,並且顯著 地改善互連電路的性能。在一些實施例中,所述互連電路包括至少一個域,所述至少一個域包括所述至少 一個輸入中的至少一個,用於從所述至少一個啟動器設備接收事務請求,域邊界被布置以 使得任意接收自所述至少一個輸入的事務請求的合併發生於所述至少一個域內;以及所述 屏障事務請求包括指示器,指示是否其應用到所述至少一個域;以及所述控制電路響應於 檢測到包括指示其應用到所述至少一個域的所述指示器的所述屏障事務請求,位於所述至 少一個域外,而提供指示所述屏障事務位於所述域外的指示。已被認可的是如果互連被布置成域,其中域被選擇為互連的區域,在區域中,發 生任何接收自域內的輸入的事務請求的合併,則可根據屏障事務請求位於域內還是域外而 區別對待。因此,已經發現,將互連看作是以域布置,以及對於至少一些屏障事務被標記為 應用到特定域,是有利的,於是當確定這樣的屏障事務請求位於其應用到的域的外部時,這 可被指示為在該點它的屏障行為將會改變。應該注意的是在一些實施例中,指示屏障事 務請求應用到域的指示器可能是與請求相關聯的明確的(explicit)指示器,而在其他實 施例中其可能是暗含的(implicit),控制電路能夠從屏障事務請求的位置和類型確定它應用到該域。在一些實施例中,所述指示包括附於所述屏障事務請求的指示器,指示現在其位 於其所應用到的域外。該指示器可被用來為屏障提供依賴於其位置的不同行為。例如,屏障可具有屬性 它只在由指示器指示的域的內部阻塞,並從而一旦位於該域的外面(即使可能在交叉耦合 (cross-coupled)區域中)則其可以不再阻塞。在一些實施例中,所述控制電路包括響應信號生成器,所述響應信號生成器被配 置為,如果其位於所述指示器指示的所述屏障所應用到的域內,則不響應預定類型的屏障 事務請求,並且如果其位於所述域外,則響應所述預定類型的屏障事務請求。域的屬性和屏障事務請求的屬性變化有賴於它們是否在特定域內,這能被本發明 實施例所使用以向啟動器設備提供高速緩存維護請求當前在何處的指示。某些屏障事務請 求當位於其域內時不能被早先地響應,因而,如果從這樣的屏障事務接收到響應,可以肯定 的是它已經退出了它所應用到的域。因為數據存儲維護請求必須保持在它前面,則也必然 已退出該域。屏障事務的使用使得能夠將數據存儲維護事務請求的位置與其操作相分離, 並對其進行監視。當在不知道存在多少高速緩存的架構不可知的系統中處理高速緩存維護操作,這 將變得特別有用。在這種情況下,接收自高速緩存的指示所請求的維護已在高速緩存中被 執行的響應,並未告訴啟動器設備在系統中是否有仍存在具有未決維護操作的其他高速緩 存。因此,此高速緩存維護操作請求後跟著具有域指示器的屏障,使得啟動器設備能夠知道 指定域內的所有高速緩存維護操作何時完成,其中所述域指示器將在退出域時生成響應。 域屬性是這樣的,如果域被適當地選擇,則這可以是足夠信息以允許啟動器設備知道傳送 進一步的事務請求是安全的。在一些實施例中,所述互連電路包括多個域,所述多個域中的每一個包括所述至 少一個輸入中的至少一個,用於從所述至少一個啟動器設備接收事務請求,域邊界被布置 以使得接收自所述域的一個內的所述至少一個輸入的事務請求的任意合併發生於所述域 的所述一個內。雖然在一些實施例中互連電路可能具有單個域,在其他實施例中它具有多個域, 並且假定其全被布置,從而接收自域內輸入的事務請求的任意合併發生於該域中,則它們 將全部具有屬性屏障事務行為會在退出域時改變,且可採用該屬性來減少互連內由屏障 造成的等待時間。在一些實施例中,所述多個域中的至少一個是更大域的子集,且具有對於每個輸 入存在域層次(hierarchy),這樣如果輸入是低層次域的成員,則它也是高層次域的成員, 並且在事務退出所述高層次域的同時或之前事務退出所述低層次域。在一些實施例中,域被按層次來布置,並且這可用來提供對於屏障事務的進一步 控制,正如之後將看到的那樣。高層次域比低層次域更大或者與之具有相同大小並包含低 層次域,因此事務在退出高層次域的同時或之前退出低層次域。在一些實施例中,所述域包括只包含所述輸入中的一個輸入的非可共享 (non-shareable)域、包含所有所述輸入的系統域,以及至少一種另外類型的可共享域,對 於每個輸入,存在域層次,使非可共享域內的輸入也位於用於所述輸入的所述至少一種類型的可共享域內,所述至少一種類型的可共享域內的輸入也位於用於所述輸入的所述系統 域內。具有只是輸入的非可共享域可能是有用的,這樣當它們位於互連內時,所有被標 記為非可共享的屏障位於域的外部,從而屏障應用到非可共享域的指示器可用作屏障位於 其域外部的指示器。也有其他可共享域和系統域,其包括所有輸入且其本身也是可共享域。在一些實施例中,所述數據處理裝置包括多個層次級(hierarchical level)的多 個高速緩存,所述屏障事務請求包括指示所述多個層次級中至少一個的指示器,所述多個 層次級中至少一個的高速緩存被配置為,響應於接收到屏障事務請求而生成響應信號。可由對屏障事務請求的響應來確定高速緩存維護操作的進程的另一種方法是,如 果屏障事務請求被這樣標記,則只有特定層次級的高速緩存將發送針對該請求的響應。這 樣,舉個例子,如果屏障被標記為只應用到2級高速緩存,則屏障將在高速緩存維護事務請 求之後通過一級高速緩存,且不會發送對屏障的響應,只有一旦到達2級高速緩存時才會 發送響應。本發明的第二個方面提供了一種用於從啟動器設備經由互連而接收事務請求的 接受設備,所述接受設備包括輸入,用於從所述互連接收所述事務請求;高速緩存;響應 信號生成器,用於生成對於預定類型的屏障事務請求的響應信號;所述接受設備被配置為, 響應於在所述輸入處接收到後面跟著所述預定類型的屏障事務請求之一的高速緩存維護 請求,生成對所述屏障事務請求的所述響應;所述接受設備被配置為,當所述接受設備已確 定所述高速緩存已經為所述高速緩存接收和處理進一步的事務請求而不損害數據一致性 執行了足夠的高速緩存維護操作時,發布所述響應信號。被配置為當已確定接受設備接收進一步的事務請求是安全的時而非當這些高速 緩存維護事務請求完成時,僅針對跟在高速緩存維護請求之後的特定類型的屏障事務請求 傳送響應的接受設備,能夠減少系統的等待時間。在一些實施例中,所述接受設備響應於接收到跟在高速緩存維護請求之後的另外 類型的屏障事務請求,在所述接受設備的輸入處保持所述屏障事務請求,並且不接收進一 步的事務請求,直到所述接受設備已確定所述高速緩存已為所述高速緩存接收和處理進一 步的事務請求而不損害數據一致性執行了足夠的高速緩存維護操作為止。在一些情況下,屏障事務請求位於事務請求之間,其中所述事務請求中的至少一 些事務請求相對於屏障事務請求不得被重排序。在這種情況下接受設備可被配置為在輸入 處保留屏障事務請求,直到它能進一步傳送該請求或將其消除為止。這樣該屏障阻塞了通 向其他事務請求的入口,並且只有一旦移除屏障時這些才能夠繼續進行。本發明的第三個方面提供了一種用於生成並經由互連向接受設備發布事務請求 的啟動器設備,其中所述事務請求包括數據存儲維護事務請求,該啟動器設備包括屏障事 務請求生成器,被配置為生成屏障事務請求,所述屏障事務請求向所述互連指示穿過互連 的事務請求流內的至少一些事務請求的排序應該通過以下方式被保持不允許出現於所述 事務請求流中所述屏障事務請求之前的事務請求中的至少一些相對於出現於所述屏障事 務請求之後的所述事務請求中的至少一些的重排序;其中所述啟動器設備被配置為發布後 面跟著所述屏障事務請求的所述數據存儲維護事務請求。當啟動器設備發布數據存儲維護請求時,重要的是,需要在維護操作之前訪問數據存儲,或者需要在這些操作之後訪問的其它事務請求相對於該維護請求不進行重排序。 為了以架構不可知的方式來確保這一點,啟動器設備可具有生成屏障的屏障生成器,啟動 器設備發布屏障以跟在數據存儲維護操作之後。屏障向互連指示其之後的至少一些事務 必須保持在其後面,而之前的至少一些必須保持在其前面。在一些實施例中,所述屏障生成器被配置成,依賴於所述數據存儲維護請求,為所 述生成的屏障事務請求提供阻塞或非阻塞指示器。可由屏障生成器生成的屏障可有利地為阻塞的或非阻塞的,阻塞屏障指示至少 一些必須待在阻塞屏障之後的事務請求已在上遊被阻塞,從而所有事務都可以超越它,而 非阻塞屏障不得被其所應用到的事務請求超越。在一些實施例中,所述啟動器設備被配置為,響應於所述屏障事務請求生成器生 成具有所述阻塞指示器的所述屏障事務請求,不向所述互連發布出現於所述屏障事務請求 之後的所述至少一些事務請求直到所述啟動器設備已接收到對於所述阻塞屏障事務請求 的響應為止;以及響應於所述屏障事務請求生成器生成具有所述非阻塞指示器的所述屏障 事務請求,向所述互連發布出現於所述屏障事務請求之後的至少一些事務請求。在一些實施例中,所述屏障生成器被配置成,為所述生成的屏障事務請求提供指 示所述屏障事務請求所應用到的所述互連內的域的域指示器。如上面所提到的,根據域來控制屏障事務請求可提供一種用於提供關於屏障到達 互連內的何處的信息。本發明的第四個方面提供一種用於從至少一個啟動器設備經由互連電路向至少 一個接受設備路由數據的方法,所述方法包括在至少一個輸入處從所述至少一個啟動器 設備接收事務請求,所述事務請求中的至少一個包括請求對所述數據處理裝置內的高速緩 存執行的數據存儲維護操作的數據存儲維護請求;以及沿著多個路徑中的至少一個向至少 一個輸出傳送所述事務請求;響應於接收到所述數據存儲維護請求沿著所述多個路徑中 的至少一個傳送其後跟著屏障事務請求的所述數據存儲維護請求;通過將所述數據存儲維 護請求之後的至少一些事務請求保持在所述屏障請求之後,在沿著所述多個路徑中至少一 個傳送的事務請求流內保持所述至少一些事務請求相對於所述屏障事務請求的排序。本發明的第五個方面提供了一種數據處理裝置,包括多個啟動器,所述多個啟動 器包括至少一個根據本發明第三個方面的啟動器,至少一個根據本發明第一個方面的接受 設備和互連電路,用於在所述啟動器和所述接受設備之間提供數據路線。本發明的第六個方面提供了一種生成並經由互連向接受設備發布數據存儲保持 事務請求的方法,包括生成所述數據存儲維護事務請求中的一個,並且之後生成屏障事務 請求,所述屏障事務請求向所述互連指示穿過所述互連的事務請求流內的至少一些事務 請求的排序應該通過以下方式被保持不允許出現於所述事務請求流中的所述屏障事務請 求之前的所述事務請求中的至少一些相對於出現於所述屏障事務請求之後的所述事務請 求中的至少一些的重排序;以及發布後面跟著所述屏障事務請求的所述數據存儲維護事務 請求。
參照如附圖中所示出的本發明的實施例,僅通過舉例來進一步描述本發明,在附圖中圖1顯示了適於處理屏障的互連;圖2顯示了根據本發明實施例的含有互連的系統;圖3顯示了根據本發明另一實施例的含有互連的系統;圖4顯示了根據本發明實施例的具有高速緩存的互連;圖5顯示了具有不同層次級的高速緩存的系統;圖6顯示了說明根據本發明實施例的方法的流程圖;圖7a,7b和8示意性地示出了如何將互連分為不同的域,某些屏障有賴於其所在 的域而被區別對待。
具體實施例方式圖1顯示了互連10,其被配置為使用屏障控制事務請求的傳輸,並且還示出了在 這樣的互連中如何處理屏障。互連10經由多個路徑將多個主設備20,22,M及沈連接到多 個從設備30,32,34及36。這些路徑可具有交叉耦合部分,譬如40處作為例子所示出的,在 該處兩個路徑中的每一個在其各自的分割點(split point) 41和42上分成兩條,並且在合 並點(merge point) 44和45處上合併。也有如50處作為例子所示出的交叉路徑。存在在 互連中的兩個節點之間唯一連接的路徑,以致於切斷該路徑實際上將會將互連分為兩半。當事務沿這些不同的路徑傳送時,這些路徑的特性(nature),也就是說它們是交 叉耦合還是交叉的將影響事務的排序。例如交叉耦合的路徑將以分割點開始,該分割點將 該事務流分為多個事務流,並且分割點前在事務流中位於另一個事務後的事務,可能在先 前落後於的事務到達其自己的目的地之前,到達其目的地。沿著交叉路徑傳播的事務必須 保持其次序,除非有某個功能單元允許重排序,如在60處作為例子示出的重排序緩衝器。 重排序緩衝器被用來重排序事務,以允許高優先級的事務先於低優先級的事務被遞送到從 設備。也存在被稱作重匯聚(reconvergent)的路徑,其中之前分割開的路徑重新回到 一起,且這也可引起事務流內的重排序。互連10沒有任何重匯聚路徑。事務以不同於其被發送的次序到達其目的地這一事實會代理問題,其中後續的事 務依賴於先前的事務,因此需要首先完成先前的事務。例如,如果在事務流中針對相同地址 存儲指令先於裝載指令,則重要的是,存儲要先於裝載執行,否則裝載將讀出錯誤值。為了 允許程式設計師確保所需要的事務按照所需要的次序到達,互連10被配置為響應事務流中的 屏障事務,以保持互連內事務相對於屏障的排序。因此,屏障事務可被插在應互不超越的事 務之間,這將確保不會出現問題。互連可以通過延遲事務流中屏障事務之後出現的事務前進通過互連直到接收到 屏障事務的響應信號為止來響應於這些屏障事務。響應信號指示發送後續的指令是安全 的。需要注意的是,清除路徑的響應信號可以是指示早先的事務已全部完成的信號,或者其 僅僅是指示屏障事務已經通過路徑的信號,例如,如果該路徑是交叉路徑,或者該屏障已到 達一節點,在該節點處早先的清除響應信號被發送且阻塞(blocking)被再次執行。互連也可以僅在先前的事務之後、後續的事務之前,沿著各個路徑發送屏障事務, 且不允許跨越它對事務的任何重排序,以使得當檢測到屏障到達某一點時,互連能夠確定所有先前的事務都已通過該點。是只在流中傳送了屏障,還是延遲了事務,這依賴於屏障的 特性,以及它是否是阻塞屏障,其中阻塞屏障是在先前的上遊點處阻塞了後續事務請求中 的至少一些的屏障。屏障事務的進程受控於控制電路70。本圖中這被示意性地示為單個塊,但事實上 控制電路遍布於臨接其所控制的電路的互連。因而,例如在每個分割點,均有某一控制電路 確保至少在某些實施例中,當接收到屏障事務時將其複製,且從分割點沿每個出口路徑向 下發送複製屏障事務。也可能有其他實施例,其中沿除一條路徑以外的所有出口路徑向下 發送複製的屏障,之後將會對此進行描述。控制電路將知曉屏障事務已被複製,因而在其清 除用於傳送事務的路徑之前,可能需要來自每個複製的屏障事務的響應信號,其中所述事 務在原始屏障事務之後且必須保持在其後。屏障事務以其最簡單的形式由主設備發布,例如主設備20,然後主設備20阻塞所 有後續的事務,直到其得到來自互連的指示其能夠傳送後續的事務的響應信號。可替換地, 屏障可由控制電路在一進入互連時立即發布。屏障事務之前的事務以及該屏障事務被傳送 到互連,而控制電路70控制這些事務的路由。因此在分割點42處,屏障事務被複製且其傳 播到合併點44和45處。在該點處,事務進入到交叉路徑50和52,並且因事務不能改變其 在這些路徑上相對於屏障的位置,當屏障事務到達這些路徑之一的起點時,可知先於該屏 障事務的所有事務都在其前面,且沿著那條路徑保持在其之前。從而,早期響應信號可由早 期響應單元80發送,且響應於這兩個信號的接收,分割點42處的控制電路向主設備20發 送該早期響應信號,隨後該主設備20可以將受其控制的屏障事務之後的事務解除阻塞,並 將其傳送至互連。通過提供早期響應單元80,主設備20被阻塞的時間較之其等待來自從設備的指 示屏障事務已到達從設備的響應的時間要短得多,並且通過這種方式,由屏障事務引起的 等待時間減少了。沿路徑50傳送的屏障事務退出互連併到達從設備30,而未沿除交叉路徑50以外 的任何路徑傳播,因此無需響應於該屏障事務而再次阻塞,因為一旦屏障通過早期響應單 元80,在其之前的事務就必定保持在那兒。然而,沿著路徑52發送的屏障事務到達另一交 叉耦合的部分48,且響應於在分割點49處接收到屏障事務,與該分割點相關聯的控制電路 70複製屏障事務,沿兩個出口路徑將它向下發送且針對出現於屏障之後並受其控制的事務 請求而阻塞其後的入口路徑。從而在一些實施例中,通過保持在阻塞電路90內的緩衝器 中,這些後續事務被拖延,直到接收到對所有複製的屏障事務的響應信號。從而,複製的屏 障事務穿過交叉耦合電路40並退出交叉耦合電路以進一步進入交叉鏈路50和52。正如 之前提到的,交叉路徑使事務相對於屏障保持按序排列,並因此早期響應可由早期響應單 元80從交叉路徑起點發送。阻塞電路90等待接收來自分割點49處的對屏障事務的響應。 分割點49複製屏障事務,且進一步發送兩個屏障事務,沿每條路徑向下發送一個。分割點 49不向阻塞電路90發迴響應,直到它已接收到來自其傳送的兩個屏障事務中的每一個的 響應。響應於該響應,阻塞電路90允許保持在其緩衝器中的任意後續事務被傳送。因為清 除電路位於退出互連之前的最後的交叉路徑上,所以無需進一步阻塞某些屏障類型。之前提到過交叉路徑52上的重排序緩衝器60,並且該緩衝器被配置為響應屏障, 且不允許由屏障控制的事務相對於屏障被重排序。
在之前的說明中,假定屏障在那兒以保持其之後的所有事務位於其後。然而在一 些實施例中,正如之後詳細展現的那樣,屏障可能只需阻止後續事務的子集超越它,可能是 那些來自特定主設備的事務或者是那些具有特定功能的事務,比如寫事務。在這種情況下, 控制電路70和阻塞電路90僅僅延遲事務的該子集,並允許其他繼續進行。此外,在分割點 上,如果由屏障控制的事務決不會沿所述路徑之一向下,則無需沿該路徑上向下發送複製 的屏障。圖2顯示了具有多個處理器Pl,P2,P3的互連,其中多個處理器Pl,P2,P3在本實 施例中通過互連10訪問兩個高速緩衝200,210。正如之前所提到的,在具有訪問各種數據 存儲(包括不同高速緩存和不同存儲器)的多個設備的複雜系統中,保持數據一致性是一 個複雜的問題。這包括需要在某些時間點上執行高速緩存維護操作,以確保各種存儲器中 的數據存儲保持一致。如果是為詳細架構不可知的系統編寫程序,處理這樣的高速緩存維護操作是很難 的。可發布高速緩存維護操作,但可能很難得知其何時完成。特別是具有位於互連內的不 同高速緩存層次級和不同高速緩存的系統內,因為在這樣的系統中,很難得知特定的高速 緩存是否是沿特定路徑的最後一個高速緩存。在本發明的實施例中,通過使用屏障事務解 決了該問題。因此,當發布高速緩存維護操作時,屏障跟在其後被發布。屏障的通道可被追蹤, 並從而由於高速緩存維護操作在其前面,因而也可被追蹤。可根據高速緩存維護請求來選 擇屏障的屬性,從而可選擇只阻止任意後續事務超越高速緩存維護請求的屏障,或者可使 用阻塞在某個點之後的事務的屏障。屏障生成器79顯示於主設備Pl中,且其響應於來自 主設備Pl的請求而生成並發布屏障事務請求。當已生成和發布高速緩存一致性維護請求 時,主設備引導屏障生成器生成屏障,屏障的屬性可根據待執行的維護操作來選擇。所生成的屏障可以是阻塞屏障或者是非阻塞屏障,如果其是阻塞屏障,則主設備 Pl不發布該屏障所應用的任何進一步的事務請求,直到其接收到對該屏障的響應。在圖2顯示的實施例中,存在早期響應單元71,其後跟有阻塞電路72,阻塞電路73 後又跟有分叉(divergence)點73。互連中的控制電路70檢測到從處理器Pl接收的高速 緩存維護請求和後面跟著的屏障事務,並且如果它是阻塞屏障,則它會在早期響應單元71 處向屏障發布響應,且該早期響應會在主設備Pl處被接收,主設備Pl之後可以進一步傳送 任何阻塞的事務請求。之後阻塞電路72阻塞受制於屏障事務請求的進一步的事務請求。如 果其不是阻塞屏障,則屏障事務請求僅被傳送通過早期響應單元和阻塞電路。後面跟著屏障事務請求的高速緩存維護請求隨後到達分叉點73,且控制電路70 確定需要對高速緩存200和210這二者執行高速緩存維護,因而對高速緩存維護請求和跟 在其後的屏障事務進行複製。之後進一步向高速緩存200和210傳送這些請求。互連電路 10具有在高速緩存200和210相應互連輸出之前的、連同阻塞單元77和78 —起的早期響 應單元75和76,並且如果屏障是阻塞屏障,則在屏障事務到達早期響應單元75和76時發 送響應,而響應於這兩個響應的接收,阻塞電路72允許進一步發送後續的事務。但當這些 後續的事務到達這些點時,它們然後將被阻塞電路77和78所阻塞。位於相應接受設備內的高速緩存200和210然後接收後面跟著屏障事務請求的高 速緩存維護請求,並且如果屏障是阻塞屏障,則當控制電路203已確定高速緩存維護操作已進行到進一步的事務請求可被安全處理的點時,與每個高速緩存相關聯的響應電路201 發送對屏障事務請求的響應。因此,舉個例子,如果一旦一些線被標記為無效高速緩存就被 刷新,且高速緩存具有用於待處理的進一步的事務的空間,則可發送響應。在該點響應屏 障是有利的,因為,例如如果高速緩存充滿髒線,則將所有該數據寫回存儲器將花費很長時 間。一旦已經開始該過程,高速緩存中就存在可用於存儲數據的線,從而可執行進一步的事 務。如果屏障事務請求是非阻塞屏障,則其被保持於相應高速緩存的輸入接口 202處,直到 高速緩存已足夠充分地處理高速緩存維護請求,以安全地接收進一步的事務,在該點上,屏 障事務請求或者進一步地在由高速緩存維護請求觸發的其他數據存儲維護操作之後被傳 送,或者被消除。如果屏障是阻塞屏障,則當阻塞電路77和78接收到來自響應生成器201的響應 時,其停止阻塞後續的事務,並且這些能夠繼續進行到相應的高速緩存。如上所提到的,屏障生成器79響應於高速緩存維護操作的類型而確定其生成阻 塞還是非阻塞屏障。因此,舉例而言,如果請求的高速緩存維護操作僅僅是無效的線操作, 可發布僅位於事務流中該操作之後的非阻塞屏障,且不允許事務從任意方向通過它。如之 前所提到的,屏障事務請求能夠相對於它們自身或事務的子集保持所有事務的排序。在上 面的例子中,無效線連到特定地址,因此,屏障可有利地包含該地址,在該情況下控制電路 70將僅保持具有該地址的事務相對於屏障的次序,但根據需要將允許其他事務請求相對於 屏障被重排序。圖3顯示了該情況下的另一實施例,互連10包括高速緩存220和221,且將三個處 理器PI、P2與P3和兩個存儲器MEMl和MEM2互連起來。在互連10處接收的來自Pl的高 速緩存維護事務請求後面跟著已由主設備Pl生成的阻塞屏障事務,並且指示後續的事務 在Pl點處被阻塞,直到接收到響應信號為止。互連內的早期響應信號生成器71向主設備 Pl發送響應,以允許後續的事務進一步繼續進行。這些後續的事務然後遇到阻塞電路72, 該阻塞電路72阻塞這些後續的事務直到接收到響應為止。之後互連中有一個分叉點73,並且屏障和高速緩存維護事務可被複製並進一步發 送到高速緩存220和221。如果是這種情況,則與分叉點相關聯的控制電路70將保持接收 自一個高速緩存的任意響應信號,且當它已接收到來自兩個高速緩存的響應信號時只向阻 塞電路72傳送響應信號。如果高速緩存維護事務只對高速緩存220執行,則屏障和高速緩存維護事務不被 複製,而僅被發送到高速緩存220且不需要阻塞。屏障事務只停留於連接高速緩存220的 輸入處以阻止其他事務進入高速緩存,直到高速緩存準備好接收屏障事務並進一步地將其 傳送為止。如果高速緩存220響應於發送到存儲器的高速緩存維護請求而生成事務,則屏障 事務請求也在這些之後被發送。通往存儲器的路徑上有一個分叉點230,並且與分叉點230 相關聯的控制電路70向合適的存儲器傳送所生成的事務和後面跟著的屏障事務請求。因 此,它們可被傳送到MEMl和MEM2,或者只傳送到MEM1,這依賴於需要什麼維護操作。在事 務之後傳送屏障事務,並且如果在兩條路徑上都發送了事務,則屏障事務被複製,且屏障電 路232阻塞了到後續事務的路徑。然而,如果對於高速緩存維護操作只存在一個需要被訪 問的存儲器,則在高速緩存維護操作之後發送單個屏障事務,且不需要執行阻塞。
如果維護操作針對所選擇的地址範圍,則屏障可以是指定了這些地址範圍的編址 (addressed)屏障,在該情況下,針對其他地址的事務可超越該屏障,並且如果其為阻塞,則 將只阻塞針對指定地址的事務。當屏障到達存儲器時它停留而阻塞存儲器的入口,直到完 成由高速緩存維護請求引起的存儲器內的操作為止。在該點上,所有後續的事務都能進入 存儲器。如果阻塞屏障被複製並被發送到兩個存儲器,則當其進入每個存儲器時發送響應 信號,並且一旦兩個響應信號都已經被接收,阻塞電路232處的阻斷就被清除,且任何被阻 塞的事務請求可被進一步發送。圖3中只詳細示出了 Pl和高速緩存220以及存儲器之間的連接,其他連接也是存 在的但為了使得圖更加清楚而未示出。圖4顯示了本發明的可替換實施例,其中處理器Pl能夠在高速緩存220而非221 中存儲數據。響應於接收到後面跟著屏障事務請求的高速緩存維護請求,控制電路70識別 出處理器Pl只能訪問高速緩存220而不能訪問高速緩存221,並因此向高速緩存220傳送 高速緩存維護操作和後面跟著的屏障事務,而在阻塞屏障的情況下,早期響應單元71向處 理器Pl發送響應。屏障事務停留於高速緩存220的入口處且阻塞進一步的事務進入高速 緩存,直到高速緩存中的高速緩存維護操作完成為止。在該點處,在高速緩存維護操作觸發 的任意維護操作之後,進一步傳送屏障事務,且後續的事務能夠訪問高速緩存220。這樣,對 高速緩存的訪問不被阻塞,直到所有高速緩存維護操作完成為止,其只有高速緩存自身中 的操作本身完成之前才被阻塞。在圖4的上述實施例中,高速緩存維護操作是針對高速緩存的總的高速緩存維護 操作。在一些操作中,其可以針對高速緩存中的特定地址或者地址範圍。在此情況下,屏障 事務將包含該信息且阻塞電路將只阻塞針對那些地址的事務,而其它事務被傳送。這樣在 相當程度上減少了系統的等待時間。圖5顯示了具有高速緩存層次的系統。在該實施例中,主設備Pl和P2中的屏障 生成器可生成具有指示高速緩存層次的指示器的屏障,例如其可以指示層次級2。在該情況 下,該指示器指示只應從L2高速緩存發送響應。這使得系統能夠知道高速緩存維護操作何 時到達層次級2的共享高速緩存。實際上,屏障使你得知屏障之前的事務已到達何處,因為屏障是不被允許超越其 前面的任何事務(其所應用到的事務)的。因此,可使用屏障來確定某些高速緩存維護操 作何時到達特定高速緩存或某個層次級的高速緩存。高速緩存上的響應電路也可用來確定 高速緩存維護操作中一個合適的點用以響應屏障,因此,當向高速緩存發送後續事務是安 全的時能夠生成信號,而非只是發信號通知高速緩存維護操作完成,並且這樣等待時間能 夠被減少。圖6顯示了說明根據本發明實施例使用屏障事務請求確保數據存儲維護操作的 排序的方法步驟的流程圖。數據存儲維護請求在互連處被接收,後面跟著屏障。該請求沿 至少一個路徑傳送且其後跟著屏障。如果該屏障是阻塞屏障,則受制於該屏障且在事務請 求流中在其之後的事務請求在上遊某處被阻塞,因此,如果早期響應單元被滿足,則發送釋 放被阻塞事務的響應。依賴於早期響應單元的位置,阻塞單元可能再次阻塞,在此情況下該 阻斷將由後續的響應單元解除阻塞。通過不允許這些事務從任意方向通過屏障,屏障保持
19其所應用到的事務的排序。圖7和8示意性地示出了將互連分成不同的域的方法,所述不同的域具有特定屬 性並允許屏障依據其所在的域而被區別對待,特別是被響應和不再阻塞。這些屬性使得能 夠減少與這些屏障相關聯的等待時間。有許多不同的方法將主設備和互連的各部分分組成(group)不同域並在域中控 制屏障和事務以確保保持正確的事務排序而不過度地增加等待時間。在這一點上,如下事 實已被認可,如果某些規則強加到與域相關的互連的拓撲上,則屏障將具有某些可被用以 減少屏障等待時間的屬性。以特定方式布置域可以在允許的系統拓撲中產生約束,但是也 可減少由屏障產生的等待時間,因此,下面所述的域的不同的可能實施方式兼具優點和缺 點。因此,例如,如果高速緩存維護事務具有與其相關聯的域指示器,其後可跟著具有相同 域指示器的屏障事務,如下所陳述的,屏障上的域指示器可在域邊界上產生早期響應,並由 此通過允許清除先前的阻塞而減少與屏障相關聯的等待時間。此外,如果使用了該屬性,響 應信號的接收將提供以下指示屏障事務請求已到達互連中的該位置,並且因此高速緩存 維護請求也已到達此位置。這樣,可獨立於其操作而確定高速緩存維護請求的位置。應該注意的是,雖然屏障事務可有與高速緩存維護事務相同的域指示器,但其也 可具有不同的域指示器,或者其具有域指示器而高速緩存維護事務沒有這樣的指示器。例 如在高速緩存刷新的情況下,則該操作需要繼續進行至其中任意回寫(write back)正被執 行的存儲器,然而,對於要正確執行的後續事務來說,一旦由刷新觸發的事務已經到達外部 域,就可安全地允許其他事務繼續進行。在該情況下,用合適的域指示器標記屏障事務允許 當其到達外部域時(在該點,指示器設備可進一步傳送事務)響應被發送。在所有的域布置中,如果屏障事務被標記為與特定域相關,當其位於該域外且其 是阻塞屏障時,它可以在除重匯聚區域之外總是非阻塞的。在其域內,某些類型的屏障可以 在除交叉耦合區域之外是非阻塞的。如果在高速緩存維護請求後使用在其域中總是阻塞的 屏障類型,則對該屏障的響應將指示屏障及因此的高速緩存維護請求二者都已退出由屏障 所指示的域。在第一「空(null) 」實施方式中,沒有考慮這些域。所有的屏障被視為應用於系統 所有部分中的所有事務。在性能方面這明顯很差,因為來自屏障的等待時間將會很高。然 而,它允許不受限制的、任意的域成員資格(即使該成員資格沒有效果)和拓撲,所以總能 被建立。這在邏輯上等效於所有域在所有其域中包括所有主設備。在可替代的「近似空(nearly null),,的實施方式中,有與每個主設備相關的非可 共享域,而與這些域相關的屏障在該域外被區別對待。因為非可共享屏障在除來自主設備 的輸入的任何地方都在其共享性(shareability)域外,其在整個互連中可以被這樣對待, 並因而在互連的所有非重匯聚部分是非阻塞的。其他共享性域屏障事務被如同在空實施方 式中一樣對待。這在邏輯上等效於為發布者(issuer)或主設備輸入,以及包括所有其它主 設備的所有其它域做出非可共享域邊界。可替代的「簡單(simple)」實施方式具有某種受限制的拓撲和改善的性能。依據 可接受的限制水平,該方法給出兩種不同的解決方案。共享性域成員資格的三個限制對這兩種方法來說是共同的1.觀測者的非可共享域僅是其自身。
2.觀測者的系統共享性域至少包括它能夠與之直接或間接通信的所有其它觀測
者ο3.觀測者的內部可共享域的所有成員也是其外部可共享域的成員。這些中的頭兩個是由[3]施加的限制。此外,兩種方法中的每一個具有特定的拓 撲限制以及可能額外的共享性域成員資格限制。這兩種實施方式中的第一種需要限制每個位置在單個域中,並因此依賴於互連 中的每個位置,其僅是內部、外部或系統域中的一種。為了能達到這一點,必須執行額外的 共享性域成員資格限制。任意觀測者的任意共享性域中的所有成員必須使該共享性域中的所有其他成員 成為與其同一級的共享性域的成員。亦即,如果觀測者B是觀測者A的內部可共享域的成 員,則相互地,A必定是B的內部共享性域的成員。必須滿足的拓撲限制是1.域邊界必須包括所有域成員2.域外的任何事物都不可併入域中-亦即,域邊界不能包括不在域邊界內的任何 事物的下遊的任何事物3.所有的域邊界必須位於域交叉鏈路上在此情況下考慮域邊界的簡單方法是如同地形學上代表海拔(其中垂直面是允 許的,但垂懸(overhang)是不允許的)的輪廓線。每個主設備在相同高度上,而每個共享 性域輪廓和與其同類型的所有其他輪廓位於相同高度。垂直懸崖(vertical cliff)是容 許的,以允許不同類型的可共享域是相同的,但是允許共享性域交叉的垂懸則不容許。這些拓撲限制要求沒有任何事物可併入域中-域的成員(這將違反限制1)不可 能併入,非成員(這將違反限制2)也不可能併入。如果成員的分割下遊退出了域,並且之 後在也沒有與域外事物合併的情況下再併入域,則退出和再進入之間的部分實際上仍位於 域中。拓撲和所組合的域成員資格限制確保了 在屏障的共享性域中,它不會遇到來自 該域之外觀測者的事務,並且當其退出域時,其已與來自其曾經與之合併的域的所有成員 的所有事務流合併。它們確保了 任意內部可共享域外的任意位置位於所有內部可共享域 的外部,且如果在任意外部可共享域的外部,則在所有外部可共享域的外部。其結果是,在分割點由屏障進行阻塞的要求可通過僅將屏障的共享性域和分割點 所處的域類型進行比較來確定,這是由於沒有共享性域成員能合併位置的下遊這一要求已 由此類的限制系統中域的外部的屏障隱含地滿足。該機制也可通過屏障位於其共享性域外的明確指示(這可能需要在域出口點處 的顯式檢測組件),或者在每個相關分割點處該狀態的確定來實施。這兩種實施方式中的第二種允許多個域中的位置。該實施方式依賴於當屏障事 務穿過共享性域的邊界時該屏障事務的所指示的共享性域被修改,從而一旦其退出共享性 域,就通過進行該轉變使其變為非阻塞的。當其傳出內部或外部可共享域時,其的所指示的 域朝非可共享移動,並且當標記為非可共享時可知位於其域外,並且這樣便能成為非阻塞 的。在該情況下,共享性域成員資格的額外限制更為寬鬆
對於任意兩個共享性域A和B,A的所有成員中的任意一個也必須是B的成員,或 者B的所有成員也必須是A的成員,或者都是(該情況下A和B是完全相同的)。換句話 說,域邊界不能交叉。需要同樣的拓撲限制1.域邊界必須包括所有域成員為了允許拓撲的最大靈活性,必須有可能分解拓撲組件(分割和合併)以使得域 邊界可被那樣繪製2.域外的任何事物都不可併入域中-亦即,域邊界不得包括不在域邊界內的任何 事物的下遊的任何事物3.域邊界跨越域交叉鏈路最後,施加一個額外的拓撲限制以補償由寬鬆的域成員資格限制引起的問題4.沒有任何邊界位置可用於不同數量的用於不同主設備的域,除了位置已位於其 外部共享性域之外的主設備。限制4確保了當屏障跨過域邊界時不得不被修改的情況下,其跨越其所在的所有 域的邊界。這確保了修改操作不依賴於屏障的始發方(originator)。如果屏障被修改並獲得非阻塞狀態,如果它位於交叉鏈路上則其自然被解除阻 塞,但在一些情況下,儘管位於交叉耦合鏈路上其也可被解除阻塞。如果跨越域邊界的鏈路 是域交叉鏈路,也就是說,就所關注的該域而言它們是交叉的,亦即,它們不與來自其自身 域中的路徑合併,而只與來自其他域的路徑合併,之後屏障事務的修改在那兒發生,並且解 除阻塞也可從那一點發生。如果除了在退出域時將所指示的域改向非可共享,在進入域時將所指示的域改得 遠離非可共享,則可放棄限制2。這需要不飽和的域指示器,或者可被進入的域的數量限制, 以使得飽和不發生。此外,這將導致已進入域的屏障由於其增長的指示範圍而阻塞來自該 域的非成員的事務。圖7a非常概略地示出互連中域的上述實現。該圖中主設備示於互連中,雖然實際 上其肯定位於互連外。每個主設備20、22、對、26、觀具有流或直接包圍它的只與其自身生 成的事務相關的非可共享域120、122、124、126、127。然後有一些下一層次級的域,其可以包 括多個主設備或同樣只包括相同主設備,因此,主設備20和22具有它們的非可共享域,並 具有包圍它們的內部域121,而主設備M具有內部域125,主設備沈具有非可共享域1 和內部域127,並且主設備觀具有非可共享域1 和內部域129。然後有包圍它們的外部 域,在本例中是域31和33。還有作為整個互連的系統域。正如所看到的那樣,域完全位於 彼此中而不會以任意方式相交。也有一個限制,即來自域的所有出口路徑為交叉路徑。通 過以這種方式限制域,能夠確保離開這些域的事務將以特定的方式離開,並且,假定在域中 屏障正確運行,當事務在交叉路徑上離開時,它們將以正確次序離開。這允許以特定方式控 制針對這些域的屏障事務。圖7b示意性地示出了域的出口節點135,該域包括主設備p0和pi。此出口節點 135受控於控制電路70,並且在此節點處已知任意屏障事務和其控制的事務處於正確的次 序。如之前所描述的那樣,屏障事務不一定控制所有事務,但可控制由特定主設備生成的事 務或特定功能的事務。
在共享性域的例子中,屏障事務被標記為控制來自特定域的事務。因此,事務可被 標記為系統屏障事務,因為它控制所有的事務,其可被標記為控制來自流或非可共享域、來 自內部域或來自外部域的事務。無論如何,當屏障事務退出域時,在此實施方式中它能使其 層次級降低,從而如果它是外部域屏障,則當其退出內部域時其將被降低為控制來自內部 域的事務的屏障事務,且當其退出外部域時,它將使其控制的層次級降低為其中沒有事務 需由其延遲的非可共享域。這是可能的,因為在該點處所有事務相對於該屏障被排序,且假 定沒有重匯聚路徑,則互連可確定排序是正確的。應該注意的是,系統屏障在退出域時不改 變,因為它們總是應用於任意地方的任意事物。應該注意的是,如果域中有重匯聚路徑,則任何的非阻塞屏障在跨越重匯聚區域 時必須變為阻塞的。如果引入重匯聚路徑的另外的互連被連接到具有域的互連,則控制屏 障的域系統不再起作用。如果增加了會影響域及其層次的互連,則系統被控制以使得當它 退出域時屏障事務中的共享性域指示器不會降低。關於重匯聚區域應該注意的是,針對特定地址的一些事務可被限制成沿經過重匯 聚區域的特定路線傳送,並且在這種情況下,對於該地址,重匯聚區域不是重匯聚的,互連 可被限制,以使得事務沿特定路線傳送到所有地址的特定地址,在這種情況下任意重匯聚 區域可被視為交叉耦合區域,歸功於重匯聚區域施加於系統上的相當多的限制,這可能是 有利的。歸功於互連被配置的方式,域中未被標記為非可共享屏障的任意屏障事務實際上 將控制其遇到的任意域中的事務,因其不會遇到來自另一個域的事務。被標記為非可共享 屏障的屏障事務將不會延遲其之後的任何事務,然而,不會允許任何事務相對於該事務進 行重排序。這樣,通過以該方式布置互連域以及通過降低域出口處指示器的層次級,使用一 種簡單方法確定是否屏障事務必須延遲其遇到的所有事務或者不延遲任何事務,而不需要 控制組件精確獲知它們在互連內的哪個域中。用於域的另外可能的實施方式是「複雜(complex) 」實施方式。這可用於上述拓撲 限制或域成員資格限制被認為限制性太強的情況。假定對於非可共享和系統域成員資格的 要求被保留,所需要的信息為明確的枚舉列表,該列表涉及在該位置處屏障發布者和共享 性域的何種組合可被認為是非阻塞的。因此,並非如針對圖如和恥描述的實施方式中的 那樣能夠根據屏障自身來確定屏障的阻塞特性,而是屏障的阻塞特性由位置、該位置處存 儲的域信息來確定。這可以在每個相關位置利用兩個列表來實現,一個用於內部可共享域,並且一個 用於外部可共享域。每個列表指示對其而言位置位於該域外的集合或屏障源。可替代地,列 表可存儲具有兩個比特值的源,其中比特值指示該位置位於該源的哪些共享性域的外部。不管用何種方法表示信息,當系統被重新使用時,由於對表示域信息的不同要求, 要實現設計重用很明顯會顯著地更為複雜且更為困難。圖8顯示了這種互連的一個例子。該互連接收來自四個主設備S0、S1、S2或S3的 事務請求。SO和Sl位於內部域200中,而S2和S3位於內部域301中,且它們全位於外部 域302中。也有包含其他域的未顯示的其他主設備。在位置310處,一物位於內部域中用於來自S2的事務,並且位於外部域中用於來 自SO或Sl的事務。因此,該位置可這樣標記,且當接收到屏障時可確定它們與哪個域相關,以及因此屏障是否位於其域的外面。因此,應用到S0、S1內部域的屏障位於其域的外面,且 可被這樣標記或依賴於實施例而發送早期響應。很明顯這是非常複雜的。對此的一種替換方式是保守的複雜實施方式(conservative complex implementation)。這被用於需要複雜實施方式的拓撲和域成員資格自由度(freedom)的 情況,但是該實施方式和重用問題必須避免。在這種情況下,使每個必須展現域位置特定的 行為的組件認為其自身處在域的特定級別上並取得了正確的行為,是可能的。如果組件認 為自身處在其實際所在的最小域中,則對於實際位於它們的域外的屏障來說該組件在行為 方面是保守的(仍是正確的),並且對於位於它們的域內的那些屏障來說是正確的。在這方 面應該注意的是,屏障、域或事務的屬性能夠在能使它們被更高效處理的情況下被改變,如 果它們被改變得更具有限制性的話。從而,被標記為內部的屏障可被視為外部屏障,而被標 記為應用到外部域的事務可被標記為應用到內部域。採用該方法,需要知曉域的組件能夠只被編程或配置為具有單個域(具有內部域 成員資格的安全預設,這可在加電時被使用)。因此,在此實施方式中,域中的位置被標記為具有它是其成員的、具有最嚴格行為 的域的屬性,該域是除非可共享域外的最低層次級的域。該位置處的屏障事務然後被視為 處於此域中。在這樣的布置中,允許域是其他域的部分子集。在該布置中,為了調整屏障的 阻塞行為而無需知道其在互連的何處,不是在屏障退出域時改變屏障上的標記,而是依賴 於互連中的位置所在的最低層次或最小可共享域,將互連中的位置標記為位於特定域中。例如在圖8的例子中,不需要採用三種不同的標記來標記位置310,只用其所在的 最小可共享域來標記它,也就是內部。因此,在這種情況下,任何被標記為內部或外部的屏 障被認為是位於該域內,而來自SO、Sl內部域的屏障將被認為是位於其域內,即使它不是。 因此,沒有早期響應可被發送,且互連的等待時間將增加,這便是本方法的不足。然而,對域 的標記與確定屏障是否位於域內一樣簡單。附加的權利要求中定義了本發明的各種另外的方面和特徵。可以對此處之前描述 的實施例做出各種修改,而不脫離本發明的範圍。雖然參照附圖詳細描述了本發明的示例性實施例,應知道的是本發明並不限於這 些明確的實施例,並且本領域技術人員可做出各種變更和修改,而不脫離由附加的權利要 求所限定的本發明的範圍和精神。
權利要求
1.用於數據處理裝置的互連電路,所述互連電路被配置為提供數據路線,至少一個啟 動器設備能夠通過所述數據路線訪問至少一個接受設備,所述互連電路包括至少一個輸入,用於從所述至少一個啟動器設備接收事務請求;至少一個輸出,用於向所述至少一個接受設備輸出事務請求;多個路徑,用於在所述至少一個輸入和所述至少一個輸出之間傳送所述事務請求;其中所述事務請求中的至少一個包括數據存儲維護請求,該數據存儲維護請求請求對所述 數據處理裝置內的數據存儲執行的數據存儲維護操作;以及控制電路,用於從所述至少一個輸入向所述至少一個輸出路由所述接收的事務請求;其中所述控制電路被配置為,通過沿著所述多個路徑中的至少一個傳送後面跟著屏障事務 請求的所述數據存儲維護請求來響應所述數據存儲維護請求的接收,所述控制電路被配置 為保持沿著所述多個路徑中的所述至少一個傳送的事務請求流中至少一些事務請求相對 於所述屏障事務請求的排序,以使得所述事務請求流中在所述數據存儲維護請求之前的至 少一些事務請求,通過所述屏障事務請求而被保持於所述數據存儲維護請求之前,並且所 述事務請求流中位於所述數據存儲維護請求之後的至少一些事務請求,通過所述屏障事務 請求而被保持於所述數據存儲維護請求之後。
2.根據權利要求1所述的互連電路,其中所述控制電路被配置為,通過延遲所述至少 一些事務請求沿所述多個路徑的所述一個的傳輸直到接收到清除所述屏障事務的響應信 號為止,來響應所述屏障事務請求以保持位於所述屏障事務請求之後的所述至少一些事務 請求的排序。
3.根據權利要求1所述的互連電路,其中所述數據存儲維護請求包括高速緩存維護請 求,所述數據處理裝置包括至少一個存儲器和用於存儲保存於所述至少一個存儲器中的數 據項目的本地拷貝的一個或多個高速緩存,所述互連電路被配置為傳送所述高速緩存維護 請求和所述屏障事務請求到所述一個或多個高速緩存中的至少一個。
4.根據權利要求3所述的互連電路,其中所述控制電路被配置為通過延遲所述至少 一些事務請求沿所述多個路徑中的所述一個的傳輸直到接收到清除所述屏障事務的響應 信號為止,來響應所述屏障事務請求以保持位於所述屏障事務請求之後的所述至少一些事 務請求的排序,並且所述互連電路被配置為接收來自所述至少一個高速緩存的所述響應信 號。
5.根據權利要求3所述的互連電路,其中所述互連電路包括所述一個或多個高速緩存 中的至少一個,所述至少一個高速緩存被配置為在所述高速緩存的輸入處保持所述屏障事 務請求並且不接收任何進一步的事務請求,並且響應於與所述高速緩存相關聯的控制電路 而確定所述高速緩存維護請求已被處理到一點-在該點處接收進一步的事務請求是安全 的,所述至少一個高速緩存被配置為接收所述進一步的事務請求。
6.根據權利要求5所述的互連電路,其中如果所述高速緩存維護請求觸發了待傳送到 另外的數據存儲的事務請求,所述點包括這樣一個點-在該點處源自所述高速緩存維護操 作的所有事務已被進一步傳送,所述控制電路被配置為在源自所述高速緩存維護操作的所 述事務之後進一步傳送所述屏障事務請求。
7.根據權利要求5所述的互連電路,其中如果所述高速緩存維護請求沒有觸發進一步 的事務請求,則所述控制電路被配置為,響應於確定所述高速緩存維護請求已被處理到所 述點而消除所述屏障事務請求,其中在所述點處接收進一步的事務請求是安全的。
8.根據權利要求3所述的互連電路,其中所述高速緩存維護請求被指向一個或多個地 址,所述屏障事務請求包括對應的一個或多個地址,所述控制電路被配置為沿著所述多個 路徑中的至少一些路由所述屏障事務請求和所述高速緩存維護請求。
9.根據權利要求8所述的互連電路,其中位於所述高速緩存維護請求之後並通過所述 屏障事務請求保持於其後面的所述至少一些事務請求包括到所述一個或多個地址的事務 請求。
10.根據權利要求8所述的互連電路,所述多個路徑中的所述至少一些路徑為通向能 夠為所述一個或多個地址緩存數據的所述一個或多個高速緩存中任一個的路徑。
11.根據權利要求1所述的互連電路,所述控制電路被配置為沿著所述多個路徑中的 至少一些路徑路由所述屏障事務請求和所述高速緩存維護請求,所述多個路徑中的所述至 少一些路徑為通向發起所述高速緩存維護請求的所述啟動器能夠為其緩存數據的任意高 速緩存的路徑。
12.根據權利要求1所述的互連電路,所述多個路徑中的至少一些路徑為從節點分叉 出來的分叉路徑,所述控制電路被配置為沿著路由所述事務請求所沿著的所述分叉路徑中 的至少一些來複製和傳送所述數據存儲維護請求以及所述後面跟著的屏障事務請求。
13.根據權利要求12所述的互連電路,所述控制電路被配置為延遲所述屏障事務請求 之後的所述至少一些事務請求的傳輸,直到接收到響應於所有的所述複製的屏障事務請求 的響應信號為止。
14.根據權利要求1所述的互連電路,所述控制電路包括位於所述互連內序列化中一 點的響應信號生成器,在該點之外事務請求不能被重排序,所述響應信號生成器被配置為 生成針對所述屏障事務請求的所述響應信號,並且不再進一步傳送所述屏障事務請求。
15.根據權利要求1所述的互連電路,所述控制電路包括響應信號生成器和阻塞電路, 所述響應信號生成器響應於接收到所述屏障事務請求而沿著入口路徑發布所述響應信號, 其中所述屏障事務請求是從所述入口路徑接收的,並且所述阻塞電路響應於接收到所述屏 障事務請求而阻塞傳送所述屏障事務請求所沿著的所有出口路徑,從而阻塞所述屏障事務 請求之後的所述至少一些事務請求,直到接收到所述響應信號為止。
16.根據權利要求15所述的互連電路,其中所述響應信號生成器位置緊挨著所述阻塞 電路的上遊。
17.根據權利要求15所述的互連電路,其中所述多個路徑包括至少一個交叉路徑,所 述交叉路徑包括所述互連電路內的兩個節點之間的唯一通信路徑,所述兩個節點包括所述 交叉路徑的入口節點和出口節點;所述響應信號生成器位於所述入口節點處,並且響應於接收到所述屏障事務請求而沿 所述入口路徑傳送所述響應信號,其中所述屏障事務請求是從所述入口路徑接收的;以及所述阻塞電路位於所述出口節點處,並且響應於接收到所述屏障事務請求而阻塞傳送 所述屏障事務請求所沿著的所有出口路徑,從而阻塞所述屏障事務請求之後的所述至少一 些事務請求。
18.根據權利要求1所述的互連電路,所述互連電路包括至少一個域,所述至少一個域 包括所述至少一個輸入中的至少一個,用於從所述至少一個啟動器設備接收事務請求,域 邊界被布置以使得接收自所述至少一個輸入的事務請求的任何合併發生於所述至少一個 域內;以及所述屏障事務請求包括指示器,所述指示器指示其是否應用到所述至少一個域;以及所述控制電路響應於檢測到所述屏障事務請求-所述屏障事務請求包括指示其應用 到所述至少一個域的所述指示器,位於所述至少一個域外,而提供指示所述屏障事務位於 所述域外的指示。
19.根據權利要求18所述的互連電路,其中所述指示包括應用到所述屏障事務請求的 指示器,指示現在其位於其所應用到的域外。
20.根據權利要求18所述的互連電路,其中所述控制電路包括響應信號生成器,所述 響應信號生成器被配置為,如果其位於所述指示器指示的所述屏障所應用到的域內,則不 響應預定類型的屏障事務請求,並且如果其位於所述域外,則響應所述預定類型的屏障事 務請求。
21.根據權利要求18所述的互連電路,所述互連電路包括多個域,所述多個域中的每 一個包括所述至少一個輸入中的至少一個,用於從所述至少一個啟動器設備接收事務請 求,域邊界被布置以使得接收自所述域中的一個內的所述至少一個輸入的事務請求的任何 合併發生於所述域中的所述一個內。
22.根據權利要求21所述的互連電路,其中所述多個域中的至少一個是更大域的子 集,並且對於每個輸入存在域層次,以使得如果輸入是低層次域的成員,則它也是高層次域 的成員,並且在事務退出所述高層次域的同時或之前事務退出所述低層次域。
23.根據權利要求22所述的互連電路,其中所述域包括只包含所述輸入中的一個輸入 的非可共享域,和包含所有所述輸入的系統域,以及至少一種另外類型的可共享域,對於每 個輸入,存在域層次以使得非可共享域內的輸入也位於用於所述輸入的所述至少一種類型 的可共享域內,所述至少一種類型的可共享域內的輸入也位於用於所述輸入的所述系統域 內。
24.根據權利要求1所述的互連電路,其中所述數據處理裝置包括多個層次級的多個 高速緩存,所述屏障事務請求包括指示所述多個層次級中的至少一個的指示器,所述多個 層次級中的所述至少一個的高速緩存被配置為響應於接收到所述屏障事務請求而生成響應信號。
25.一種用於從啟動器設備經由互連接收事務請求的接受設備,所述接受設備包括輸入,用於從所述互連接收所述事務請求;高速緩存;響應信號生成器,用於生成對於預定類型的屏障事務請求的響應信號;所述接受設備被配置為響應於在所述輸入處接收到後面跟著所述預定類型的屏障事 務請求之一的高速緩存維護請求而生成對所述屏障事務請求的所述響應;所述接受設備被 配置為,當所述接受設備已確定所述高速緩存已經為所述高速緩存接收和處理進一步的事 務請求而不損害數據一致性執行了足夠的高速緩存維護操作時,發布所述響應信號。
26.根據權利要求25所述的接受設備,所述接受設備響應於接收到跟在高速緩存維護請求之後的另外類型的屏障事務請求,在所述接受設備的輸入處保持所述屏障事務請求並 且不接收進一步的事務請求,直到所述接受設備已確定所述高速緩存已為所述高速緩存接 收和處理進一步的事務請求而不損害數據一致性執行了足夠的高速緩存維護操作為止,於 是所述屏障事務請求被進一步傳送,且所述輸入接收進一步的事務請求。
27.一種用於生成並經由互連向接受設備發布事務請求的啟動器設備,其中所述事務 請求包括數據存儲維護事務請求,所述啟動器設備包括屏障事務請求生成器,被配置為生成屏障事務請求,所述屏障事務請求向所述互連指 示穿過所述互連的事務請求流內的至少一些事務請求的排序應該通過以下方式被保持 不允許出現於所述事務請求流中所述屏障事務請求之前的所述事務請求中的至少一些相 對於出現於所述屏障事務請求之後的所述事務請求中的至少一些的重排序;其中所述啟動器設備被配置為發布後面跟著所述屏障事務請求的所述數據存儲維護事務 請求。
28.根據權利要求27所述的啟動器設備,其中所述屏障生成器被配置為,依賴於所述 數據存儲維護事務請求,為所述生成的屏障事務請求提供阻塞或非阻塞指示器。
29.根據權利要求觀所述的啟動器設備,所述啟動器設備被配置為,響應於所述屏障 事務請求生成器生成具有所述阻塞指示器的所述屏障事務請求,而不向所述互連發布出現 於所述屏障事務請求之後的所述至少一些事務請求,直到所述啟動器設備已接收到對於所 述阻塞屏障事務請求的響應;以及響應於所述屏障事務請求生成器生成具有所述非阻塞指示器的所述屏障事務請求,向 所述互連發布出現於所述屏障事務請求之後的所述至少一些事務請求。
30.根據權利要求27所述的啟動器設備,其中所述屏障生成器被配置為,為所述生成 的屏障事務請求提供指示所述屏障事務請求應用到的所述互連內的域的域指示器。
31.一種數據處理裝置,包括多個啟動器,所述多個啟動器包括用於生成並經由互連向 接受設備發布事務請求的至少一個啟動器設備,其中所述事務請求包括數據存儲維護事務 請求,所述數據處理裝置包括屏障事務請求生成器,被配置為生成屏障事務請求,所述屏障事務請求向所述互連指 示穿過所述互連的事務請求流內至少一些事務請求的排序應該通過以下方式被保持不 允許出現於所述事務請求流中所述屏障事務請求之前的所述事務請求中的至少一些相對 於出現於所述屏障事務請求之後的所述事務請求中的至少一些的重排序;其中所述啟動器設備被配置為發布後面跟著所述屏障事務請求的所述數據存儲保持事務 請求;以及根據權利要求1所述的至少一個接受設備和互連電路,用於在所述多個啟動器和所述 接受設備之間提供數據路線。
32.—種用於從至少一個啟動器設備經由互連電路向至少一個接受設備路由數據的方 法,所述方法包括在至少一個輸入處從所述至少一個啟動器設備接收事務請求,所述事務請求中的至少 一個包括請求對所述數據處理裝置內的數據存儲執行的數據存儲維護操作的數據存儲維 護請求;以及沿著多個路徑中的至少一個向至少一個輸出傳送所述事務請求;響應於接收到所述數據存儲維護請求沿著所述多個路徑中的至少一個傳送後面跟著屏障事務請求的所述數據存儲維護請求;通過使用所述屏障事務請求將沿著所述多個路徑中的所述至少一個傳送的事務請求 流中位於所述數據存儲維護請求之前的至少一些事務請求保持在所述數據存儲維護請求 之前並且將所述事務請求流中位於所述數據存儲維護請求之後的至少一些事務請求保持 在所述數據存儲維護請求之後,在所述事務請求流中保持至少一些事務請求相對於所述屏 障事務請求的排序。
33. 一種生成並經由互連向接受設備發布數據存儲維護事務請求的方法,所述方法包括生成所述數據存儲維護事務請求中的一個並且之後生成屏障事務請求,所述屏障事務 請求向所述互連指示穿過所述互連的事務請求流內的至少一些事務請求的排序應該通過 以下方式被保持不允許出現於所述事務請求流中的所述屏障事務請求之前的所述事務請 求中的至少一些相對於出現於所述屏障事務請求之後的所述事務請求中的至少一些的重 排序;以及發布後面跟著所述屏障事務請求的所述數據存儲維護事務請求。
全文摘要
本發明涉及互連中的數據存儲維護請求。公開了用於數據處理裝置的互連電路。互連電路被配置為提供數據路線,至少一個啟動器設備可以通過數據路線訪問至少一個接受設備。互連電路包括至少一個輸入,用於從啟動器設備接收事務請求;至少一個輸出,用於向接受設備輸出事務請求;多個路徑,用於在至少一個輸入和至少一個輸出之間傳送事務請求;所述事務請求中的至少一個包括數據存儲維護請求,其請求對數據處理裝置內的數據存儲執行的數據存儲維護操作;和控制電路,用於從至少一個輸入向至少一個輸出路由所接收的事務請求;控制電路被配置為通過沿著多個路徑中的至少一個傳送後面跟著屏障事務請求的數據存儲維護操作來響應數據存儲維護操作的接收。
文檔編號G06F13/16GK102063391SQ20101060931
公開日2011年5月18日 申請日期2010年10月13日 優先權日2009年10月13日
發明者B·J·梅休森, C·W·萊科克, P·A·裡奧克羅瓦, R·R·格裡森思懷特 申請人:Arm有限公司