新聞中心

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

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

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

一致消息

本文引用地址:http://www.butianyuan.cn/article/86946.htm

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

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

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

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

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

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

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

非一致命令

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

實例—一致讀取共享消息

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


圖2  一致讀取共享消息

結(jié)語

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

參考文獻(xiàn):

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

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉