• 正文
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于Credit的流量控制

8小時(shí)前
200
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

流量控制(Flow Control),也叫流控,它是控制組件之間發(fā)送和接收信息的過程。在總線中,流控的基本單位稱為flit。

在標(biāo)準(zhǔn)同步接口中(比如AXI協(xié)議接口),握手信號(hào)如果直接采用寄存器打拍的方式容易導(dǎo)致信號(hào)在不同的方向上出現(xiàn)偏離。因此,引入了更復(fù)雜的FIFO結(jié)構(gòu)替代了寄存器方式來給握手信號(hào)打拍,方便后端時(shí)序收斂。但是,各種各樣的FIFO設(shè)計(jì)要么引入氣泡,要么浪費(fèi)容量或引入不需要的握手邏輯組合鏈。為了避免控制電路中的組合邏輯路徑,在一個(gè)時(shí)鐘周期內(nèi),數(shù)據(jù)被搬進(jìn)或搬出FIFO是不允許的,因此存在FIFO氣泡。

現(xiàn)在許多NoC設(shè)計(jì)采用基于credit的流量控制(比如CHI協(xié)議接口)。在這種方式中,源端會(huì)跟蹤目的端有多少資源可以使用。只有源端收到目的端發(fā)送的credit,源端才可以發(fā)送flit給出去。顯然,目的端必須保證發(fā)出多少個(gè)credit,就必須能收下多少個(gè)flit。

下圖為一個(gè)簡(jiǎn)單的基于credit流控示例圖,源端的up/down counter會(huì)對(duì)收到的credit進(jìn)行計(jì)數(shù),表示下游Sink目的端可以收多少數(shù)據(jù)。因此Sink必須有足夠的buffer來存放數(shù)據(jù)。因此,組件之間的數(shù)據(jù)轉(zhuǎn)發(fā)簡(jiǎn)化為只需要看valid信號(hào)就行了。源端每次發(fā)送一個(gè)數(shù)據(jù),就需要up/down counter的計(jì)數(shù)值減1。

圖1 基于credit的流控示例圖

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄