<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 在嵌入式多核集群中利用OCP處理高速緩沖器一致流量

在嵌入式多核集群中利用OCP處理高速緩沖器一致流量

作者:Matthias Knoth MIPS科技公司 時(shí)間:2008-08-14 來(lái)源:電子產(chǎn)品世界 收藏

一致消息

本文引用地址:http://dyxdggzs.com/article/86946.htm

  系統可能執行四個(gè)一致消息,這四個(gè)消息是由CPU負載/存儲活動(dòng)產(chǎn)生的L1高速緩沖器行狀態(tài)變化導致的。發(fā)起的CPU將這個(gè)消息以主端口命令發(fā)送。系統的同級CPU接收基于該行狀態(tài)變化的干預,并以其本地高速緩沖器行狀態(tài)進(jìn)行響應。

  第一種消息類(lèi)型是CohReadOwn,表示在嘗試修改高速緩沖器行時(shí)發(fā)生的高速緩沖器的不命中。同級內核遇到處于“修改”狀態(tài)的該行時(shí),會(huì )強制回寫(xiě)到存儲器子系統中,并執行本地失效。作為優(yōu)化,本地遇到的行數據將被轉發(fā)到請求方 CPU,以降低存取延遲。請求方CPU將使該行作為“專(zhuān)有”行,并執行行修改指令。然后,高速緩沖器行狀態(tài)將變成“修改過(guò)的”。在等待行重新填滿(mǎn)的時(shí)候,請求方CPU將繼續另一個(gè)線(xiàn)程的執行。

  一致讀取共享(CohReadShared)消息表明在讀行操作過(guò)程中發(fā)生的高速緩沖器不命中。不需要行修改。遇到“已修改”狀態(tài)的該行的同級內核將強制回寫(xiě)到存儲器子系統。命中的同級行將轉換到“共享”狀態(tài)。命中數據將被轉發(fā)到請求方內核,并以“共享”狀態(tài)安裝。然后執行讀行操作。在等待行重新填滿(mǎn)的時(shí)候,請求方CPU將繼續另外一個(gè)線(xiàn)程的執行。

  一致升級(CohUpgrade)消息表明遇到命中“共享”行的一個(gè)高速緩沖器行修改指令。同級內核將收到通知取消命中行。在修改指令執行完以后,“共享”行會(huì )隨之升級為“修改”行。

  最終,一致回寫(xiě)(CohWriteBack)消息表示驅逐了一個(gè)一致高速緩沖器行。一致管理器將通過(guò)干預端口發(fā)起數據移動(dòng),并將數據轉發(fā)到存儲器子系統。被驅逐的高速緩沖器行隨后便由一個(gè)新的—可能是一致的—地址取代。在這種情況下,CohReadOwn或CohReadShared導致了這個(gè)驅逐。
  
一致高速緩沖器操作指令

  為了響應高速緩沖器操作,需要發(fā)起一致消息,并發(fā)送到同級內核。

  ·CohCopyBack—將一致高速緩沖器行回寫(xiě)到存儲子系統。
  ·CohInvalidate—清除一致高速緩沖器行,而不是將其內容回寫(xiě)到存儲子系統。
  ·CohWriteInvalidate—I/O一致單元在一個(gè)新的高速緩沖器行注入一致域。
  ·CohReadInvalidate — I/O一致單元通知系統,高速緩沖器行將離開(kāi)一致域。
  ·CohCompletionSync—無(wú)數據的命令可以保持排序。

非一致命令

  傳統的命令,如“讀取”和“寫(xiě)入”命令是由整個(gè)系統支持的,以處理非一致存儲器存取的數據存取。當高速緩存的、非一致地址內的命中失敗,或者非高速緩存存取引發(fā)存儲子系統內的讀取操作時(shí),就會(huì )發(fā)出讀命令。如果響應數據是作為非一致高速緩存安裝的話(huà),那么非高速緩存數據就會(huì )直接被消耗掉。提取和負載/存儲活動(dòng)可導致讀取處理。當高速緩存的、非一致逐出數據或非高速緩存地址范圍存儲被寫(xiě)入存儲子系統時(shí),即發(fā)出寫(xiě)入命令。內核的 主端口執行命令和數據階段的處理。

實(shí)例—一致讀取共享消息

  CPU0 在一致高速緩存行上遇到負載不命中,并發(fā)起 cohReadShared 消息(無(wú)修改意圖)。一致管理器將干預消息發(fā)送到所有內核,在此內核 1 將響應“修改”的命中。一致管理器現在發(fā)起了一個(gè)修改行回寫(xiě),將行數據從內核 1 中的干預端口移動(dòng)到存儲子系統。命中的內核 1 高速緩存行轉移到“共享”狀態(tài)(見(jiàn)圖2)。行數據移動(dòng)也會(huì )轉發(fā)到內核 0,在此它可在“共享”狀態(tài)下安裝。


圖2  一致讀取共享消息

結語(yǔ)

  OCP互連有助于支持基于消息的一致方案。集中的一致管理器可以串化從單獨內核發(fā)出的一致消息,并詢(xún)問(wèn)同級內核的一致?tīng)顟B(tài)。內核之間的數據轉發(fā)可減少存取延遲和對更高級別的存儲器層的流量。單個(gè)內核支持OCP主端口發(fā)起數據存取和OCP從端口接收來(lái)自一致管理器的詢(xún)問(wèn)。

參考文獻:

  1.  OCP規范2.2,2006 OCP-IP協(xié)會(huì ),版權所有
  2.  OCP一致擴展,第二部分:信號和解碼(未發(fā)表、初稿)
  3.  MIPS32 系統用戶(hù)手冊,MIPS科技公司

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>