Clock Crossing Adapter傳輸效率分析 (Latency增長,傳輸效率下降)

原創By DeeZeng [ Intel FPGA筆記 ]ios

在用Nios II測試 DDR3時候發現一個現象 (測試爲:寫全片,讀全片+比對)架構

  1. 用單獨的PLL產生時鐘(200MHz)驅動 Nios II,  測試DDR3時間爲87s
  2. 用 DDR3 IP的 afi_clk(200MHz) 驅動 Nios II,  測試DDR3時間爲67s

 

只是換了個時鐘爲何影響這麼大?相差近 20s測試

 分析發現spa

  1. PLL 產生的時鐘 和 DDR3 的afi_clk 是兩個時鐘域
  2. Qsys interconnect 會在 Avalon MM 不一樣時鐘域 自動插入 Clock Crossing Adapter
  3. Nios II的讀寫 和 Clock Crossing Adapter 特性形成傳輸效率低下

 


 

接下來將具體分析一下,爲何測試時間會相差那麼大:orm

1、跨時鐘域 Qsys自動插入 Clock Crossing Adapter
blog

 1. 當Avalon MM Master  和 Avalon MM Slave 的時鐘爲不一樣時鐘的時候  (相似Nios II 用pll 200MHz , DDR3 都用了 afi_clk 200MHz)ip

 adapter_insert

 咱們將鼠標懸浮在 黑圓點那 能夠看到鏈接信息,而且 紅點提示:A Clock Crossing adapter will be inserted資源

2. 當Avalon MM Master  和 Avalon MM Slave 的時鐘爲同一個的時候  (相似Nios II 和 DDR3 都用了 afi_clk)get

咱們將鼠標懸浮在 黑圓點那 能夠看到鏈接信息, 而後不會有Clock Crossing Bridge提示it

 

2、 Clock Crossing Adapter 將增長 多個週期 的 latency

clock crossing adapter

如上兩圖,能夠看出Clock Crossing Adapter的架構 將致使增長几個週期的 latency

 

3、增長的Latency 對傳輸效率有什麼影響?

 1. 低效率的讀寫操做,雪上加霜

low

若是自己傳輸協議就是如上圖這種低效的。 動做半天,只讀了一個word。 那增長几個latency後效率變得更低下

舉例:

       若是原來4個週期出一個Word, 那效率是 25%

       而加上5個週期 latency後,變爲9個週期出一個Word,效率下降爲 11%

 

2. 高效率的讀寫操做,影響不大

high

  若是自己傳輸協議就是如上圖這種高效的。 burst傳輸,只是延遲幾個週期

 舉例:

        若是原來4個週期出delay,一次傳輸100個word 耗時 104 ,效率爲 96%

        而加上5個週期 latency後,變爲109個週期出100 Word,效率下降爲 92%

 

、Nios II 的讀寫是什麼狀況呢?

 

從上面 一 二 三 點分析,咱們已經知道測試時間增加的緣由:增長的 Timing Crossing Adapter形成傳輸效率變低了

經查手冊,找到一個 Nios II 的 操做時序圖(並不是Nios II 操做DDR3的) ,操做 latency4個週期 一次操做8個

nios

舉例:

        若是原來4個週期出delay,一次傳輸8個word 耗時 12,效率爲 66%

        插入Timing Adapter 假設增長了5個週期 latency後,變爲17個週期出8Word,效率下降爲 47%

     (這裏只是舉例, Nios II操做DDR3實際並不是這種時序。 DDR3 -> DDR -> Quarter Bridge ->,

        DDR3的read latency也會隨着這些bridge變換。bus變換過程當中也增長了Width Adapter等,因此只是簡單判斷緣由 )

 

因此 測試DDR3爲:寫全片,讀全片+比對。比對耗時一致。讀寫變慢致使時間差別

 


 

這篇博文的目的:

1. 關注帶寬和吞吐量的應用,注意一下這些 Clock Crossing Adapter  和 Pipe Bridge 的添加  (注意到 Bridge有可能下降傳輸效率這回事)

     分析 bridge帶來 fmax 的提高,和效率下降的權衡。 (其實關鍵就是儘可能burst 提高傳輸效率)

2. 這篇分析 並非不建議用 Timing Clock Crossing Adapter (注意到 Bridges 還有不少其餘做用)

    它還有不少的做用 如 

       1. 提高fmax

       2.調節架構(多個master,多個slave)節省邏輯資源

       3. ...

 

詳細資料請參考:https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-qps-platform-designer.pdf

相關文章
相關標籤/搜索