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

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

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

PCIe彈性緩存主要用于解決跨時(shí)鐘域問(wèn)題

SwM2_ChinaAET ? 來(lái)源:未知 ? 作者:李倩 ? 2018-09-08 09:59 ? 次閱讀

前面在介紹PCIe物理層邏輯子層的文章中,有提到過(guò)彈性緩存(Elastic Buffer,又稱為CTC Buffer或者Synchronization Buffer)。其本質(zhì)上是一種FIFO,主要用于解決跨時(shí)鐘域問(wèn)題。當(dāng)然,PCIe的彈性緩存還用于補(bǔ)償時(shí)鐘誤差(Compensate for the clock differences)。實(shí)際上,除了PCIe,彈性緩存還廣泛應(yīng)用于其它的高速串行接口——USB、InfiniBand、Fibre Channel、Gigabit Ethernet等基于SerDes的應(yīng)用。

由于PCIe采用的基于8b/10b的嵌入式源同步時(shí)鐘,接收端存在兩個(gè)時(shí)鐘域:一個(gè)是通過(guò)CDR從數(shù)據(jù)流中解析出來(lái)的時(shí)鐘,用該時(shí)鐘對(duì)數(shù)據(jù)進(jìn)行采樣;另一個(gè)是本地時(shí)鐘域,用于其他的邏輯的。借助彈性緩存(FIFO),可以實(shí)現(xiàn)數(shù)據(jù)在這兩個(gè)時(shí)鐘域的轉(zhuǎn)換。

以PCIe Gen1為例,鏈路上的數(shù)據(jù)速率為2.5Gbps。但實(shí)際上,任何晶振(或者其他頻率發(fā)生器)都是有誤差的,PCIe Spec允許的誤差范圍為±300ppm(Parts Per Million)。即,鏈路上實(shí)際的頻率范圍為2.49925GHz~2.50075GHz。借助彈性緩存,通過(guò)刪除或者插入SKP Ordered Set可以消除鏈路頻率誤差的影響。如下圖所示:

需要注意的是PCIe Spec并沒(méi)有規(guī)定彈性緩存的具體位置,設(shè)計(jì)者可以將彈性緩存放在8b/10b解碼器之前,也可以把彈性緩存放在8b/10b解碼器之后。不過(guò),Mindshare的建議是將彈性緩存放置于8b/10b解碼器之前的。

當(dāng)本地時(shí)鐘域的時(shí)鐘(Local Clock)的速度比數(shù)據(jù)流通過(guò)CDR解析出的時(shí)鐘(Recovered Clock)的時(shí)鐘要快時(shí),且彈性緩存即將被讀空之前,可以向SKP Ordered Set中插入1~2個(gè)SKP。如下圖所示:

當(dāng)本地時(shí)鐘域的時(shí)鐘(Local Clock)的速度比數(shù)據(jù)流通過(guò)CDR解析出的時(shí)鐘(Recovered Clock)的時(shí)鐘要慢時(shí),且彈性緩存即將溢出之前,可以從SKP Ordered Set中移除1~2個(gè)SKP。如下圖所示:

需要特別注意的是,Intel提出的PIPE規(guī)范(并非PCI-SIG強(qiáng)制的規(guī)范,具體參考前面關(guān)于PIPE的文章)中,只允許每次從一個(gè)SKP Ordered Set中插入或者移除一個(gè)SKP。如果需要插入或者移除兩個(gè)SKP,則需要對(duì)兩個(gè)SKP Ordered Set進(jìn)行操作。如下圖所示:

聲明:本文內(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)投訴
  • 解碼器
    +關(guān)注

    關(guān)注

    9

    文章

    1107

    瀏覽量

    40444
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1165

    瀏覽量

    81981

原文標(biāo)題:【博文連載】PCIe掃盲——彈性緩存(Elastic Buffer,or CTC Buffer)

文章出處:【微信號(hào):ChinaAET,微信公眾號(hào):電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA設(shè)計(jì)中解決時(shí)鐘的三大方案

    時(shí)鐘處理是FPGA設(shè)計(jì)中經(jīng)常遇到的問(wèn)題,而如何處理好時(shí)鐘間的數(shù)據(jù),可以說(shuō)是每個(gè)FPGA初
    的頭像 發(fā)表于 11-21 11:13 ?3713次閱讀
    FPGA設(shè)計(jì)中解決<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>的三大方案

    關(guān)于時(shí)鐘信號(hào)的處理方法

    我在知乎看到了多bit信號(hào)時(shí)鐘的問(wèn)題,于是整理了一下自己對(duì)于時(shí)鐘信號(hào)的處理方法。
    的頭像 發(fā)表于 10-09 10:44 ?5615次閱讀

    如何處理好FPGA設(shè)計(jì)中時(shí)鐘間的數(shù)據(jù)

    時(shí)鐘處理是FPGA設(shè)計(jì)中經(jīng)常遇到的問(wèn)題,而如何處理好時(shí)鐘間的數(shù)據(jù),可以說(shuō)是每個(gè)FPGA初
    發(fā)表于 07-29 06:19

    FPGA時(shí)鐘處理簡(jiǎn)介

    (10)FPGA時(shí)鐘處理1.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)FPGA時(shí)鐘
    發(fā)表于 02-23 07:47

    調(diào)試FPGA時(shí)鐘信號(hào)的經(jīng)驗(yàn)總結(jié)

    1、時(shí)鐘信號(hào)的約束寫法  問(wèn)題一:沒(méi)有對(duì)設(shè)計(jì)進(jìn)行全面的約束導(dǎo)致綜合結(jié)果異常,比如沒(méi)有設(shè)置異步時(shí)鐘分組,綜合器對(duì)異步時(shí)鐘路徑進(jìn)行靜態(tài)時(shí)序分
    發(fā)表于 11-15 14:47

    cdc路徑方案幫您解決時(shí)鐘難題

    這一章介紹一下CDC也就是時(shí)鐘可能存在的一些問(wèn)題以及基本的時(shí)鐘處理方法。
    的頭像 發(fā)表于 11-30 06:29 ?6975次閱讀
    cdc路徑方案幫您解決<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>難題

    關(guān)于FPGA中時(shí)鐘的問(wèn)題分析

    時(shí)鐘問(wèn)題(CDC,Clock Domain Crossing )是多時(shí)鐘設(shè)計(jì)中的常見現(xiàn)象。在FPGA領(lǐng)域,互動(dòng)的異步時(shí)鐘
    發(fā)表于 08-19 14:52 ?3219次閱讀

    揭秘FPGA時(shí)鐘處理的三大方法

    時(shí)鐘處理是 FPGA 設(shè)計(jì)中經(jīng)常遇到的問(wèn)題,而如何處理好時(shí)鐘間的數(shù)據(jù),可以說(shuō)是每個(gè) FP
    的頭像 發(fā)表于 12-05 16:41 ?1539次閱讀

    關(guān)于時(shí)鐘的詳細(xì)解答

    每一個(gè)做數(shù)字邏輯的都繞不開時(shí)鐘處理,談一談SpinalHDL里用于時(shí)鐘
    的頭像 發(fā)表于 04-27 10:52 ?4142次閱讀
    關(guān)于<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>的詳細(xì)解答

    介紹3種方法時(shí)鐘處理方法

    時(shí)鐘處理是FPGA設(shè)計(jì)中經(jīng)常遇到的問(wèn)題,而如何處理好時(shí)鐘間的數(shù)據(jù),可以說(shuō)是每個(gè)FPGA初
    的頭像 發(fā)表于 09-18 11:33 ?2.2w次閱讀
    介紹3種方法<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>處理方法

    SpinalHDL里用于時(shí)鐘處理的一些手段方法

    每一個(gè)做數(shù)字邏輯的都繞不開時(shí)鐘處理,談一談SpinalHDL里用于時(shí)鐘
    的頭像 發(fā)表于 07-11 10:51 ?1663次閱讀

    時(shí)鐘電路設(shè)計(jì)總結(jié)

    時(shí)鐘操作包括同步時(shí)鐘操作和異步
    的頭像 發(fā)表于 05-18 09:18 ?618次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>電路設(shè)計(jì)總結(jié)

    FPGA時(shí)鐘處理方法(一)

    時(shí)鐘是FPGA設(shè)計(jì)中最容易出錯(cuò)的設(shè)計(jì)模塊,而且一旦時(shí)鐘出現(xiàn)問(wèn)題,定位排查會(huì)非常困難,因?yàn)?/div>
    的頭像 發(fā)表于 05-25 15:06 ?1733次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>處理方法(一)

    FPGA時(shí)鐘處理方法(二)

    上一篇文章已經(jīng)講過(guò)了單bit時(shí)鐘的處理方法,這次解說(shuō)一下多bit的時(shí)鐘方法。
    的頭像 發(fā)表于 05-25 15:07 ?842次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>處理方法(二)

    如何處理時(shí)鐘這些基礎(chǔ)問(wèn)題

    對(duì)于數(shù)字設(shè)計(jì)人員來(lái)講,只要信號(hào)從一個(gè)時(shí)鐘跨越到另一個(gè)時(shí)鐘,那么就可能發(fā)生亞穩(wěn)態(tài)。我們稱為“時(shí)鐘
    發(fā)表于 01-08 09:39 ?433次閱讀
    如何處理<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>這些基礎(chǔ)問(wèn)題