0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

驗(yàn)證符合AXI/ACE標(biāo)準(zhǔn)的互連的策略:第二部分

星星科技指導(dǎo)員 ? 來源:synopsys ? 作者:Ray Varghese ? 2023-05-29 10:24 ? 次閱讀

在這篇文章中,我們將重點(diǎn)介紹基本的連貫交易測試。我們使用術(shù)語“基本”來表示在進(jìn)行更高級(jí)測試之前作為先決條件的東西。相干事務(wù)是 AXI/ACE 協(xié)議中用于執(zhí)行加載和存儲(chǔ)操作的一組事務(wù)。這些事務(wù)中的每一個(gè)都有一組與互連不同的響應(yīng)要求。此外,這些事務(wù)中的每一個(gè)都可以在多個(gè)配置中使用。我們需要驗(yàn)證互連對于每種事務(wù)類型是否正常工作。我們將首先概述該協(xié)議,然后再進(jìn)行這些協(xié)議的測試策略。

ACE 協(xié)議概述

ACE 協(xié)議為系統(tǒng)級(jí)一致性提供了一個(gè)框架。它可以在跨緩存共享數(shù)據(jù)時(shí)保持正確性。它還支持最大限度地重用緩存數(shù)據(jù)。該協(xié)議旨在支持不同的一致性協(xié)議,如 MESI、ESI、MEI 和 MOESI(其中 M 代表修改,O 代表擁有,E 代表獨(dú)占,S 代表共享,I 代表無效)。ACE 協(xié)議是使用以下方法實(shí)現(xiàn)的:

一個(gè)五狀態(tài)緩存模型,用于定義相干系統(tǒng)中任何緩存行的狀態(tài),如下圖所示:

pYYBAGR0DQmAe6wJAABMb57di6o873.png

定義的狀態(tài)為:

– 有效,無效:無效時(shí),緩存行不存在。如果有效,緩存行將存在于緩存中。

– 唯一,共享:當(dāng)唯一時(shí),緩存行僅存在于一個(gè)緩存中。共享時(shí),緩存行可能存在于多個(gè)緩存中。

– 干凈、臟污:干凈后,緩存不負(fù)責(zé)更新主內(nèi)存。當(dāng)臟時(shí),緩存行已相對于主內(nèi)存進(jìn)行了修改,并且此緩存必須確保主內(nèi)存最終更新。

現(xiàn)有 AXI4 通道上的附加信令,允許傳輸新的事務(wù)和信息。

附加通道(稱為偵聽通道)使互連能夠訪問存儲(chǔ)在與其連接的主服務(wù)器緩存中的信息。

我們將通過一個(gè)來自可共享位置的加載操作和存儲(chǔ)操作的示例來更清楚地說明 ACE 協(xié)議。

執(zhí)行加載操作

考慮下面給出的系統(tǒng),其中兩個(gè)主設(shè)備連接到互連。兩個(gè)主節(jié)點(diǎn)都有一個(gè)緩存?;ミB也連接到主存儲(chǔ)器??紤]主控 1 需要讀取存儲(chǔ)在變量 u 中的值的情況。還假設(shè)此值已存儲(chǔ)在主 2 的緩存中。以下序列用于檢索 u 的值:

主站 1 在讀取地址通道上發(fā)出讀取事務(wù) (1)

互連在主站2的偵聽地址通道上發(fā)出偵聽事務(wù)(2)

主站 2 返回偵聽響應(yīng)和數(shù)據(jù)信息 (3a)

如果主站2未返回?cái)?shù)據(jù),互連將從主存儲(chǔ)器(3b)讀取數(shù)據(jù)。請注意,即使在收到對 snoop 事務(wù)的響應(yīng)之前,也允許互連從主內(nèi)存讀取

一旦收到數(shù)據(jù),它就會(huì)通過其讀取數(shù)據(jù)通道(1)返回到主4。

ReadClean、ReadNotSharedDirty 或 ReadShared 事務(wù)用于從可共享位置執(zhí)行加載操作。當(dāng)啟動(dòng)主節(jié)點(diǎn)不想承擔(dān)更新內(nèi)存的責(zé)任時(shí),將使用 ReadClean 事務(wù)。當(dāng)主服務(wù)器想要加載數(shù)據(jù)并且可以接受除 SharedDirty 狀態(tài)之外的任何狀態(tài)的緩存行時(shí),將使用 ReadNotSharedDirty 轉(zhuǎn)換。當(dāng)主節(jié)點(diǎn)想要加載數(shù)據(jù)并且可以接受處于任何狀態(tài)的緩存行時(shí),將使用 ReadShared 事務(wù)。如果不需要緩存副本,則使用 ReadOnce 事務(wù)。ReadNoSnoop 用于從不可共享的位置讀取。

poYBAGR0DSmACBVOAAC4cQ7SMVE370.png

執(zhí)行存儲(chǔ)操作

在上面的系統(tǒng)中,假設(shè)主控 1 想要向變量 u 寫入一個(gè)新值。以下序列用于將新值存儲(chǔ)到 Master1 的緩存中:

Master 1 發(fā)出一個(gè)事務(wù),指示它想要存儲(chǔ) u 的緩存行的唯一副本。這是通過發(fā)送MakeUnique交易(1)來完成的。

互連將偵聽事務(wù)發(fā)送到主 2 以使其緩存行無效。這是通過發(fā)送 MakeInvalid 事務(wù) (2) 來完成的。

失效完成后,Master 2 將在其偵聽響應(yīng)通道 (3) 上做出響應(yīng)。

互連現(xiàn)在響應(yīng)主節(jié)點(diǎn) 1,指示所有其他主節(jié)點(diǎn)使變量 u (4) 的緩存行存儲(chǔ)值無效。

主 1 現(xiàn)在將 U 的新值寫入其緩存中。此時(shí),緩存行對于主控服務(wù)器 1 處于唯一狀態(tài),而主控服務(wù)器 2 中不存在此高速緩存行。

poYBAGR0DS2AJuziAACkDyWRkO0739.png

根據(jù)是否需要完整緩存行存儲(chǔ)或部分緩存行存儲(chǔ),以及主服務(wù)器是否已具有緩存行的副本,存儲(chǔ)操作將使用 MakeUnique、CleanUnique 或 ReadUnique 事務(wù)。如果正在存儲(chǔ)的主節(jié)點(diǎn)沒有緩存,但希望寫入可共享的內(nèi)存位置,則使用 WriteUnique 或 WriteLineUnique 事務(wù)。WriteNoSnoop 事務(wù)用于寫入不可共享的位置。

ACE 中使用的其他交易記錄

內(nèi)存更新事務(wù),用于將臟線寫入內(nèi)存。WriteBack 或 WriteClean 用于此目的。

逐出事務(wù)由主服務(wù)器發(fā)出,以指示要從其本地緩存中逐出的緩存行的地址。

緩存維護(hù)事務(wù)用于訪問和維護(hù)系統(tǒng)中其他主組件的緩存。CleanShared、CleanInvalid 或 MakeInvalid 事務(wù)用于此目的。

屏障事務(wù)用于提供有關(guān)系統(tǒng)中事務(wù)的排序和觀察的保證。這將在后續(xù)帖子中詳細(xì)討論。

分布式虛擬內(nèi)存 (DVM) 事務(wù)用于虛擬內(nèi)存系統(tǒng)維護(hù)。

基本一致性事務(wù)測試

如上所述,ACE 中使用了許多不同的事務(wù)來保持一致性。由于這些事務(wù)類型中的每一個(gè)都有不同的響應(yīng)和一致性要求,因此最好單獨(dú)測試每個(gè)事務(wù)類型,以確?;ミB滿足所有規(guī)范要求。我們將以 ReadShared 事務(wù)為例來描述這些事務(wù)類型的一般驗(yàn)證要求。

下面是規(guī)范中的表,顯示了 ReadShared 事務(wù)的緩存行狀態(tài)更改:

pYYBAGR0DTOAZujiAAC93tiS8nY990.png

在上表中,“開始狀態(tài)”是指在發(fā)出事務(wù)之前主服務(wù)器中緩存行的狀態(tài)。RRESP 是指互連對發(fā)起事務(wù)的主站給出的響應(yīng)。預(yù)期結(jié)束狀態(tài)是指事務(wù)完成后緩存行的狀態(tài)。最后兩列根據(jù)是否存在窺探過濾器引用了其他可能的最終狀態(tài),我們將在本文中詳細(xì)介紹這些狀態(tài)。第二個(gè)表指的是推測性閱讀。這表示甚至在主服務(wù)器讀取緩存行的狀態(tài)之前發(fā)出的事務(wù)?;旧希绻x取事務(wù)的緩存已經(jīng)具有該地址的條目,則不需要將其發(fā)送出主服務(wù)器。但是,為了提高性能,主服務(wù)器可能會(huì)選擇在獲取有關(guān)緩存行狀態(tài)的信息之前發(fā)送事務(wù)。如果事務(wù)是在這種狀態(tài)下發(fā)出的,則在第二個(gè)表中表示。

從上表可以看出,單個(gè)交易的驗(yàn)證空間相當(dāng)大。需要注意的一個(gè)重要方面是,激勵(lì)需要來自多個(gè)主站的流量。這是因?yàn)橐采w的狀態(tài)空間要求測試所有不同的響應(yīng)類型和緩存狀態(tài)。僅當(dāng)主節(jié)點(diǎn)具有相對于彼此處于特定緩存行狀態(tài)的緩存行時(shí),才能在系統(tǒng)中創(chuàng)建不同的響應(yīng)類型。例如,響應(yīng)類型 (RRESP) 為 10 表示緩存行由另一個(gè)主服務(wù)器共享,這要求緩存行存在于互連偵聽的主節(jié)點(diǎn)中。下圖總結(jié)了測試此序列的關(guān)鍵要求:

poYBAGR0DTuADcskAAFajSO3zuE366.png

在啟動(dòng)特定類型的事務(wù)之前,序列必須將系統(tǒng)初始化為隨機(jī)但有效的狀態(tài)。這可確保執(zhí)行所有不同的響應(yīng)類型和緩存行狀態(tài)。

初始化必須確保也遵守緩存狀態(tài)的規(guī)則。例如,緩存行只能在一個(gè)緩存中是唯一的或臟的。如果兩個(gè)主節(jié)點(diǎn)中存在緩存行,并且兩個(gè)緩存行都是干凈的,則它們的數(shù)據(jù)應(yīng)該是相同的。同樣,如果某個(gè)位置的所有緩存行都是干凈的,則緩存行的內(nèi)容必須與內(nèi)存的內(nèi)容匹配。

序列必須具有配置感知能力:它必須知道系統(tǒng)中的主節(jié)點(diǎn)數(shù)量、這些主節(jié)點(diǎn)的接口類型等。使序列具有配置感知性可確保序列在具有不同拓?fù)涞南到y(tǒng)中可移植。

關(guān)鍵驗(yàn)證點(diǎn)

主緩存之間的一致性:在任何給定時(shí)間點(diǎn),所有主緩存都必須具有相同的數(shù)據(jù)視圖。

主緩存和內(nèi)存之間的一致性:如果所有緩存行都是干凈的,則緩存行的內(nèi)容必須與內(nèi)存的內(nèi)容匹配。

窺探交易:由主站發(fā)起的每個(gè)事務(wù)都有一個(gè)相應(yīng)的窺探交易,該事務(wù)將由互連啟動(dòng)。我們需要確?;ミB發(fā)出的窺探交易是正確的。

偵聽和相干事務(wù)之間的數(shù)據(jù)完整性:如果 Snoop 事務(wù)返回?cái)?shù)據(jù),則必須將相同的數(shù)據(jù)返回給通過其讀取數(shù)據(jù)通道請求數(shù)據(jù)的主服務(wù)器。

排序事務(wù):訪問同一位置的事務(wù)具有互連的特定排序要求。這將在本系列的下一篇文章中詳細(xì)討論。

在這篇文章中,我們描述了測試策略和連貫交易測試的關(guān)鍵方面。在下一篇文章中,我們將重點(diǎn)介紹與訪問重疊地址相關(guān)的規(guī)范的一些細(xì)節(jié)。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8701

    瀏覽量

    84561
  • ACE
    ACE
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    10617
  • AXI
    AXI
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    16514
收藏 人收藏

    評論

    相關(guān)推薦

    實(shí)現(xiàn)免調(diào)整VCO1的IC (第二部分)

    實(shí)現(xiàn)免調(diào)整VCO1的IC (第二部分)
    發(fā)表于 05-07 13:18 ?46次下載

    AT91SAM9260使用手冊第二部分

    AT91SAM9260使用手冊第二部分
    發(fā)表于 03-10 09:13 ?86次下載

    常用單片機(jī)實(shí)例與仿真_第二部分

    第二部分 常用單片機(jī)實(shí)例與仿真 需要的下載
    發(fā)表于 11-10 17:37 ?13次下載

    微型模塊電源產(chǎn)品第二部分

    微型模塊電源產(chǎn)品第二部分,有需要的下來看看
    發(fā)表于 03-17 17:43 ?0次下載

    無線信道的信道容量:第二部分_英文版

    無線信道的信道容量:第二部分_英文版,感興趣的可以看看。
    發(fā)表于 08-05 17:32 ?0次下載

    中國NB-IOT產(chǎn)業(yè)聯(lián)盟-第二部分問題清單-20160824

    中國NB-IOT產(chǎn)業(yè)聯(lián)盟-第二部分問題清單
    發(fā)表于 01-11 12:00 ?7次下載

    2012年P(guān)SoC數(shù)?;旌显O(shè)計(jì)培訓(xùn)_第二部分

    2012年P(guān)SoC數(shù)?;旌显O(shè)計(jì)培訓(xùn)_第二部分
    發(fā)表于 10-27 09:32 ?26次下載
    2012年P(guān)SoC數(shù)?;旌显O(shè)計(jì)培訓(xùn)_<b class='flag-5'>第二部分</b>

    如何使用 Nios II 處理器進(jìn)行你中意的設(shè)計(jì)之第二部分教程

    使用 Nios II 處理器進(jìn)行設(shè)計(jì)”第二部分
    的頭像 發(fā)表于 06-11 14:36 ?4918次閱讀
    如何使用 Nios II 處理器進(jìn)行你中意的設(shè)計(jì)之<b class='flag-5'>第二部分</b>教程

    AN-389: 使用Σ-Δ轉(zhuǎn)換器—第二部分[中文版]

    AN-389: 使用Σ-Δ轉(zhuǎn)換器—第二部分[中文版]
    發(fā)表于 03-19 06:38 ?0次下載
    AN-389: 使用Σ-Δ轉(zhuǎn)換器—<b class='flag-5'>第二部分</b>[中文版]

    有時(shí)你需要一點(diǎn)收獲第二部分

    有時(shí)你需要一點(diǎn)收獲第二部分
    發(fā)表于 04-19 11:32 ?9次下載
    有時(shí)你需要一點(diǎn)收獲<b class='flag-5'>第二部分</b>

    超聲波感應(yīng)器會(huì)被用于何處?—— 第二部分

    超聲波感應(yīng)器會(huì)被用于何處?—— 第二部分
    發(fā)表于 11-01 08:27 ?2次下載
    超聲波感應(yīng)器會(huì)被用于何處?—— <b class='flag-5'>第二部分</b>

    如何實(shí)現(xiàn)更高的系統(tǒng)效率——第二部分:高速柵極驅(qū)動(dòng)器

    如何實(shí)現(xiàn)更高的系統(tǒng)效率——第二部分:高速柵極驅(qū)動(dòng)器
    發(fā)表于 11-02 08:15 ?2次下載
    如何實(shí)現(xiàn)更高的系統(tǒng)效率——<b class='flag-5'>第二部分</b>:高速柵極驅(qū)動(dòng)器

    設(shè)計(jì)一臺(tái)物聯(lián)網(wǎng)模塊燈——第二部分

    設(shè)計(jì)一臺(tái)物聯(lián)網(wǎng)模塊燈——第二部分
    發(fā)表于 11-02 08:16 ?0次下載
    設(shè)計(jì)一臺(tái)物聯(lián)網(wǎng)模塊燈——<b class='flag-5'>第二部分</b>

    救世主Ga N來啦!第二部分:測量

    救世主Ga N來啦!第二部分:測量
    發(fā)表于 11-03 08:04 ?0次下載
    救世主Ga N來啦!<b class='flag-5'>第二部分</b>:測量

    生成任意量級(jí)的偏置電流網(wǎng)絡(luò)(第二部分

    生成任意量級(jí)的偏置電流網(wǎng)絡(luò)(第二部分
    發(fā)表于 11-03 08:04 ?0次下載
    生成任意量級(jí)的偏置電流網(wǎng)絡(luò)(<b class='flag-5'>第二部分</b>)