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

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

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

淺談CCIX協(xié)議層

路科驗(yàn)證 ? 來(lái)源:老秦談芯 ? 作者:老秦談芯 ? 2022-08-24 09:44 ? 次閱讀

3. CCIX協(xié)議層

3.9 錯(cuò)誤處理

事務(wù)錯(cuò)誤可以分為兩類:

數(shù)據(jù)錯(cuò)誤。用于當(dāng)訪問(wèn)了正確的地址位置,但在數(shù)據(jù)中檢測(cè)到無(wú)法糾正的(uncorrectable)錯(cuò)誤。通常,這在ECC或奇偶校驗(yàn)檢測(cè)到數(shù)據(jù)損壞時(shí)使用。

非數(shù)據(jù)錯(cuò)誤。當(dāng)檢測(cè)到與數(shù)據(jù)損壞無(wú)關(guān)的錯(cuò)誤時(shí)使用。

3.10 數(shù)據(jù)包頭

3.10.1 數(shù)據(jù)包頭

CCIX支持兩種數(shù)據(jù)包頭:

PCIe兼容的數(shù)據(jù)包頭,遵循PCIe協(xié)議規(guī)范

優(yōu)化的數(shù)據(jù)包頭,僅適用于CCIX協(xié)議規(guī)范

兩種格式如下:

1857e3b8-22ce-11ed-ba43-dac502259ad0.png

187357d8-22ce-11ed-ba43-dac502259ad0.png

189fcfb6-22ce-11ed-ba43-dac502259ad0.png

每個(gè)數(shù)據(jù)包可以包含多條消息。數(shù)據(jù)包中的每條消息都包含一個(gè)MsgLen字段,該字段指示該消息的長(zhǎng)度。

NoMessagePack屬性用于控制是否支持在一個(gè)數(shù)據(jù)包中打包多條消息。當(dāng)NoMessagePack屬性為True時(shí),發(fā)送方只需為每個(gè)數(shù)據(jù)包發(fā)送一條消息。當(dāng)NoMessagePack屬性為False時(shí),根據(jù)MaxPacketSize參數(shù)的限制,允許發(fā)送方在每個(gè)數(shù)據(jù)包中打包多條消息。 MaxPacketSize屬性用于控制最大數(shù)據(jù)包大小。這決定了數(shù)據(jù)包有效負(fù)載中的最大字節(jié)數(shù),因此也是數(shù)據(jù)包頭中長(zhǎng)度字段指示的最大值。MaxPacketSize的值可以是128B,256B,512B。 每個(gè)接收接口必須聲明NoMessagePack和MaxPacketSize屬性,以便軟件在系統(tǒng)配置期間可以獲取這些信息

3.11 消息格式

3.11.1 讀請(qǐng)求

讀請(qǐng)求消息格式:

18c5c248-22ce-11ed-ba43-dac502259ad0.png

3.11.2 寫請(qǐng)求

寫請(qǐng)求消息格式:

18e13ca8-22ce-11ed-ba43-dac502259ad0.png

3.11.3 無(wú)數(shù)據(jù)響應(yīng)

無(wú)數(shù)據(jù)響應(yīng)消息格式:

191224c6-22ce-11ed-ba43-dac502259ad0.png

3.11.4 有數(shù)據(jù)響應(yīng)

有數(shù)據(jù)響應(yīng)消息格式:

19326344-22ce-11ed-ba43-dac502259ad0.png

3.11.5 監(jiān)聽(tīng)

監(jiān)聽(tīng)消息格式:

1954ddfc-22ce-11ed-ba43-dac502259ad0.png

3.11.6 雜項(xiàng)消息

Credited雜項(xiàng)消息格式

19830b32-22ce-11ed-ba43-dac502259ad0.png

信用交換消息格式:

19b51f6e-22ce-11ed-ba43-dac502259ad0.png

NOP消息格式:

19d309d4-22ce-11ed-ba43-dac502259ad0.png

協(xié)議錯(cuò)誤消息格式:

19e98a38-22ce-11ed-ba43-dac502259ad0.png

3.11.7 請(qǐng)求鏈(Request Chaining)

CCIX支持一種請(qǐng)求鏈機(jī)制。如果一個(gè)請(qǐng)求是發(fā)送到前一個(gè)請(qǐng)求的后續(xù)地址,允許為這個(gè)請(qǐng)求發(fā)送一條優(yōu)化的消息。

3.11.8 監(jiān)聽(tīng)鏈(Snoop Chaining)

同樣的,CCIX也支持監(jiān)聽(tīng)鏈機(jī)制。

3.11.9 擴(kuò)展字段

CCIX允許消息包含使用一個(gè)或多個(gè)消息擴(kuò)展的附加字段。

1a1d6826-22ce-11ed-ba43-dac502259ad0.png

1a400b74-22ce-11ed-ba43-dac502259ad0.png

1a577e6c-22ce-11ed-ba43-dac502259ad0.png

3.12 可選特性和參數(shù)

3.13 消息路由和代理ID分配

3.13.1 消息路由

對(duì)于一條消息,Address或TgtID值決定下一個(gè)要去的端口或鏈路。對(duì)于這種路由,地址路由消息使用系統(tǒng)地址映射(System Address Map,SAM),ID路由消息使用ID映射(ID Map,IDM)。監(jiān)聽(tīng)響應(yīng)使用的路由表標(biāo)記為SR-IDM。SR-IDM可以與樹(shù)拓?fù)浠蛲耆B接拓?fù)渲械腎DM相同,但在其他一些拓?fù)渲?,如具有維度序路由的網(wǎng)絡(luò),SR-IDM的編程方式必須與IDM不同。

1a80b7d2-22ce-11ed-ba43-dac502259ad0.png

對(duì)于地址路由消息,是這樣的:

在原始RA中,RSAM表用于確定請(qǐng)求是發(fā)送到本地目標(biāo)還是路由到端口

如果是發(fā)到端口,通過(guò)使用端口SAM(PSAM)確定所使用的鏈接

到達(dá)下一個(gè)芯片前,重復(fù)該過(guò)程,直到請(qǐng)求到達(dá)HA所在的芯片

系統(tǒng)中的每個(gè)芯片都包括一個(gè)64個(gè)條目的ID映射表,該表中的每個(gè)條目都提供了路由詳細(xì)信息,以達(dá)到適當(dāng)?shù)拇鞩D。ID路由獨(dú)立于代理類型,具有相同代理ID值的所有代理必須位于同一芯片上,并且對(duì)這些代理ID的請(qǐng)求響應(yīng)和監(jiān)聽(tīng)使用相同的路由。完全連接和樹(shù)狀拓?fù)渲械谋O(jiān)聽(tīng)響應(yīng)也采用相同的路徑。 IDM表僅確定正在使用的每個(gè)有效代理ID,也就是代理位于芯片本地或用于到達(dá)最終代理路由上的下一個(gè)芯片的端口/鏈路。對(duì)于遠(yuǎn)程代理,在到達(dá)下一個(gè)芯片時(shí),該芯片的IDM表用于確定下一次跳躍(hop),直到最終到達(dá)最終目的地。

3.13.2 廣播監(jiān)聽(tīng)路由

對(duì)于Broadcast和Broadcast-1監(jiān)聽(tīng)請(qǐng)求消息,廣播轉(zhuǎn)發(fā)控制向量(Broadcast Forward Control Vector)與IDM表結(jié)合使用,以確定消息應(yīng)如何傳播。 在Broadcast監(jiān)聽(tīng)路徑上的任何一點(diǎn)上,廣播監(jiān)聽(tīng)都可以分為多個(gè)監(jiān)聽(tīng)。轉(zhuǎn)發(fā)到另一個(gè)出口端口的拆分偵聽(tīng)必須是廣播偵聽(tīng)。在Broadcast-1監(jiān)聽(tīng)路徑上的任何一點(diǎn)上,都可以分為多個(gè)監(jiān)聽(tīng)。轉(zhuǎn)發(fā)到出口端口的拆分偵聽(tīng)必須最多包括一個(gè)Broadcast-1偵聽(tīng)和任意數(shù)量的Broadcast Snoop。分割Broadcast或Broadcast-1偵聽(tīng)的點(diǎn)負(fù)責(zé)收集和合并與接收到的監(jiān)聽(tīng)請(qǐng)求相對(duì)應(yīng)的所有監(jiān)聽(tīng)響應(yīng)。

3.13.3 TxnID分配

將TxnID分配給內(nèi)存和監(jiān)聽(tīng)請(qǐng)求必須遵循以下規(guī)則:

對(duì)于內(nèi)存請(qǐng)求,TxnID對(duì)于從單個(gè)源到單個(gè)點(diǎn)的所有超發(fā)請(qǐng)求必須是唯一的

對(duì)于Unicast,Broadcast,Broadcast-1,監(jiān)聽(tīng)TxnID必須是唯一的

參與端口聚合的CCIX端口允許重新映射TxnID。下圖顯示了聚合端口示例,芯片1上的端口可以重新映射它們發(fā)送的請(qǐng)求的TxnID。芯片2上的代理必須保證其通過(guò)聚合端口接收到的芯片1的請(qǐng)求的TxnID是唯一。

1aa7552c-22ce-11ed-ba43-dac502259ad0.png

3.13.4 代理ID

所有代理都使用6-bit的ID字段,分配給某一種代理的ID必須是唯一的,位于同一芯片上的不同類型的代理可以使用相同的ID值,同一ID不得分配給不同芯片上的不同代理類型。

3.13.5 目標(biāo)ID確定

HA根據(jù)需要監(jiān)聽(tīng)的RA的ID發(fā)出監(jiān)聽(tīng)消息。可以根據(jù)監(jiān)聽(tīng)過(guò)濾器(Snoop Filter)機(jī)制,或者目錄(Directory)機(jī)制來(lái)確定需要監(jiān)聽(tīng)的RA。 CCIX規(guī)范中的三種監(jiān)聽(tīng)路由類型:

Unicast:僅向TgtID字段中指定的代理發(fā)送監(jiān)聽(tīng)。

Broadcast:向所有請(qǐng)求代理發(fā)送監(jiān)聽(tīng)。

Broadcast-1:向除TgtID字段中指定的請(qǐng)求代理外的所有請(qǐng)求代理發(fā)送監(jiān)聽(tīng)。

代理ID分配總結(jié)

下表總結(jié)了不同消息類型中SrcID和TgtID分配的規(guī)則。

1aca7c5a-22ce-11ed-ba43-dac502259ad0.png

3.14 內(nèi)存擴(kuò)展

CCIX規(guī)范支持內(nèi)存擴(kuò)展。例如一個(gè)場(chǎng)景,主代理在一個(gè)芯片上,其負(fù)責(zé)管理的物理內(nèi)存在另外一個(gè)芯片上。這時(shí),HA充當(dāng)請(qǐng)求者,發(fā)出請(qǐng)求并接受響應(yīng);而SA充當(dāng)HA的角色,接受請(qǐng)求并負(fù)責(zé)返回響應(yīng)。

關(guān)于內(nèi)存擴(kuò)展的限制就不展開(kāi)了。

3.15 端口聚合

CCIX允許在兩個(gè)芯片之間使用多個(gè)并行CCIX鏈路進(jìn)行通信。這種連接方式被稱為端口聚合,用于單個(gè)端口的可用吞吐量不足以滿足兩個(gè)芯片之間通信需求的情況。CCIX支持的可聚合端口數(shù)量是2,4,8,16。

1af3ef40-22ce-11ed-ba43-dac502259ad0.png

使用端口聚合時(shí),以下規(guī)則適用于通過(guò)可用端口的事務(wù)路由:

請(qǐng)求消息和窺探消息根據(jù)地址解碼進(jìn)行路由

所有響應(yīng)必須使用與相關(guān)請(qǐng)求相同的CCIX端口。

只有在確定使用同一CCIX鏈路的情況下,才允許在單個(gè)數(shù)據(jù)包中組合消息

端口聚合路由

總結(jié): CCIX的協(xié)議層首先定義了CCIX一致性協(xié)議,包括緩存行的狀態(tài),狀態(tài)間的轉(zhuǎn)移,及對(duì)應(yīng)的各種請(qǐng)求和響應(yīng)事務(wù);并且,對(duì)數(shù)據(jù)包頭和消息格式進(jìn)行了定義,包括各字段及其含義;然后是對(duì)CCIX消息路由的規(guī)范,消息可以通過(guò)地址或者ID路由,兩種路由方式分別有各自的限制;最后是內(nèi)存擴(kuò)展和端口聚合的說(shuō)明。 通過(guò)這一層,CCIX規(guī)范對(duì)系統(tǒng)內(nèi)存擴(kuò)展,芯片間一致性和數(shù)據(jù)共享提供了基礎(chǔ)框架。

審核編輯:湯梓紅

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

    關(guān)注

    8

    文章

    6817

    瀏覽量

    88743
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1200

    瀏覽量

    82353

原文標(biāo)題:老秦帶你探索CCIX(六)

文章出處:【微信號(hào):Rocker-IC,微信公眾號(hào):路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    淺談架構(gòu)原理

    淺談架構(gòu)原理
    發(fā)表于 01-16 09:14

    一文弄懂CCIX協(xié)議

    3. CCIX協(xié)議3.1 介紹每個(gè)CCIX代理都有一個(gè)ID,通過(guò)ID進(jìn)行消息路由。每個(gè)CCIX端口可以與一個(gè)或多個(gè)其他
    發(fā)表于 06-08 17:23

    CCIX 1.1設(shè)備必須支持PCIe 5.0 PHY或CCIX EDR PHY這兩種物理

    必須符合下面表中的定義。傳輸DVSEC包含CCIX物理、數(shù)據(jù)鏈路層和事務(wù)的控制和狀態(tài)寄存器(Control and Status Register,CSR)。協(xié)議DVSEC包含
    發(fā)表于 08-16 15:45

    IP協(xié)議,IP協(xié)議的內(nèi)容有哪些?

    IP協(xié)議,IP協(xié)議的內(nèi)容有哪些? Internet上使用的一個(gè)關(guān)鍵的底層協(xié)議是網(wǎng)際協(xié)議,通
    發(fā)表于 04-06 16:45 ?9513次閱讀

    CCIX協(xié)議對(duì)于一些高性能應(yīng)用詳解

    用于加速器的緩存一致互聯(lián)協(xié)議CCIX)是指由一家新的行業(yè)標(biāo)準(zhǔn)機(jī)構(gòu) – CCIX聯(lián)盟 -- 開(kāi)發(fā)的一組規(guī)范。CCIX的驅(qū)動(dòng)因素是需要比當(dāng)前可用技術(shù)更快的互連,并且需要緩存一致性,以便在
    發(fā)表于 11-15 11:14 ?1.4w次閱讀
    <b class='flag-5'>CCIX</b><b class='flag-5'>協(xié)議</b>對(duì)于一些高性能應(yīng)用詳解

    【理論】通信的硬件協(xié)議和軟件協(xié)議

    眾所周知通信協(xié)議就是一種數(shù)據(jù)傳輸?shù)?b class='flag-5'>協(xié)議規(guī)范,從軟硬件層面可以分為硬件通信協(xié)議和軟件通信協(xié)議,
    發(fā)表于 12-05 15:51 ?9次下載
    【理論】通信的硬件<b class='flag-5'>層</b><b class='flag-5'>協(xié)議</b>和軟件<b class='flag-5'>層</b><b class='flag-5'>協(xié)議</b>

    一文詳細(xì)了解CCIX規(guī)范

    正文開(kāi)始前,閑扯幾句。在接下來(lái)分析CCIX規(guī)范的過(guò)程中,大家會(huì)發(fā)現(xiàn)CCIX里面有太多ARM的影子,尤其是協(xié)議的一致性協(xié)議部分,你會(huì)看到有很
    的頭像 發(fā)表于 06-23 09:20 ?1930次閱讀

    CCIX協(xié)議消息字段的含義

    每個(gè)CCIX代理都有一個(gè)ID,通過(guò)ID進(jìn)行消息路由。
    的頭像 發(fā)表于 06-28 17:22 ?1259次閱讀

    關(guān)于CCIX協(xié)議

    所謂的原子事務(wù),指的是此事務(wù)就像原子一樣是不可分割的,要么所有操作全部完成,要么全部不執(zhí)行,不存在執(zhí)行部分操作的情況。在單處理器系統(tǒng)中,能夠在單條指令中完成的操作都可以認(rèn)為是“原子操作“,因?yàn)橹袛嘀荒馨l(fā)生于指令之間 。
    的頭像 發(fā)表于 07-13 09:27 ?1392次閱讀

    一文詳解CCIX規(guī)范

    正文開(kāi)始前,閑扯幾句。在接下來(lái)分析CCIX規(guī)范的過(guò)程中,大家會(huì)發(fā)現(xiàn)CCIX里面有太多ARM的影子,尤其是協(xié)議的一致性協(xié)議部分,你會(huì)看到有很
    的頭像 發(fā)表于 08-01 14:01 ?2225次閱讀

    CCIX協(xié)議詳解

    每個(gè)CCIX代理都有一個(gè)ID,通過(guò)ID進(jìn)行消息路由。 每個(gè)CCIX端口可以與一個(gè)或多個(gè)其他CCIX端口通信。CCIX交換機(jī)(Switch)包括CCI
    的頭像 發(fā)表于 08-03 14:12 ?2519次閱讀

    CCIX傳輸詳解

    開(kāi)篇中提過(guò),CCIX可以看作兩個(gè)主要規(guī)范,分別是CCIX協(xié)議規(guī)范和CCIX傳輸規(guī)范。
    的頭像 發(fā)表于 08-09 11:39 ?1441次閱讀

    CCIX物理詳解

    CCIX 1.1設(shè)備必須支持兩種物理中的一種:PCIe 5.0 PHY,或者是CCIX EDR PHY。
    的頭像 發(fā)表于 08-15 11:12 ?2165次閱讀

    CCIX協(xié)議詳解

    全一致性讀事務(wù),包括:ReadUnique,ReadClean, ReadNotSharedDirty,ReadShared。其事務(wù)流程如下圖。
    的頭像 發(fā)表于 08-17 09:39 ?1262次閱讀

    CCIX傳輸詳解

    開(kāi)篇中提過(guò),CCIX可以看作兩個(gè)主要規(guī)范,分別是CCIX協(xié)議規(guī)范和CCIX傳輸規(guī)范。
    的頭像 發(fā)表于 09-09 13:01 ?1338次閱讀