本文主要介紹握手的基本概念,讀者可通過該篇文章對握手有個基本概念。
握手簡介
舉個簡單例子;
上圖中sender拉高vld發(fā)送有效的數(shù)據(jù)給receiver,receiver拉高ready代表準備好接收數(shù)據(jù)。
vld==1、ready==1:sender發(fā)送有效數(shù)據(jù),receiver同時也準備好接收數(shù)據(jù),完成一次有效數(shù)據(jù)傳輸;
vld==1、ready==0:sender發(fā)送有效數(shù)據(jù),receiver未準備好接收數(shù)據(jù)。反壓sender,通常情況下sender需保持vld直到receiver拉高ready,完成一次傳輸;
vld==0、ready==1:send沒有數(shù)據(jù)需要發(fā)送,receiver已提前做好接收數(shù)據(jù)的準備;一旦send發(fā)起數(shù)據(jù)傳輸,即可完成一次握手;
vld==0、ready==0:send沒有數(shù)據(jù)需要傳輸,receiver也沒有做好接收數(shù)據(jù)準備;
其實拿流水線的下級和上級很好理解,握手就體現(xiàn)了上下級之間的配合關(guān)系,使得流水能夠正常運轉(zhuǎn);
握手與反壓
握手的主要工作就是確保上下級之間的流量基本一致。關(guān)于反壓可以有如下理解:
流水線上若上級處理速度大于下級處理速度,則下級需反饋信息給上級,我接收不過來你的數(shù)據(jù)了;即拉低ready;
流水線上若下級處理速度大于上級處理速度,則上級需反饋信息給下級,我處理速度跟不上你處理速度,給你的數(shù)據(jù)沒那么快。即通過拉低一段時間的vld,使得上級得以喘息。
其實從這里我也突然悟出來了一個道理,握手是給了每級處理單元一個控制速度的權(quán)利。完美的流水線,應(yīng)該來說是不需要通過握手來實現(xiàn)的(太理想了),因為還需要握手來控制數(shù)據(jù)的傳輸?shù)鹊龋?/p>
流水線中反壓(拉低ready)
反壓的目的都是為了屏蔽上級單元送數(shù)據(jù)來。但根據(jù)流水中的每級單元中是否有存儲單元,可分為帶存儲器的反壓和不帶存儲器的反壓;在帶存儲器的反壓根據(jù)對前級還是前前級的反壓可分為:跨級反壓、逐級反壓;
不帶存儲器的反壓
即流水線上的每一級都沒有存儲單元,后級與前級的耦合性高,當流水線中間某一級錯誤,導(dǎo)致整條流水線均停止工作;在上圖中可以理解成,若C出于某種原因不能接收B_OUT,由于B中沒有暫存空間,導(dǎo)致的結(jié)果就是B也不能接收A_OUT數(shù)據(jù)了。可以理解成工廠流水線里頭,每一級都沒有容器可以存放上一級的輸出物。
特點:
1.節(jié)省存儲器資源,每一級都沒有存儲器;2.流水控制復(fù)雜,后級的流水停止,需對前面的每一級都有控制;(牽一發(fā)而動全身)
帶存儲器的逐級反壓
如上圖,和不帶存儲器的流水比起來,各級流水中都加入了一定的緩存容量。這樣做的一個好處就是每一級與每一級之間的握手都變成了相對獨立的握手模塊。這里留個懸念,緩存的大小如何設(shè)定?
帶存儲器的跨級反壓
如上圖,C的反壓直接跳過B,反壓到A。目前我是沒接觸過這種設(shè)計,但是我認為這種設(shè)計也有一定的合理性以及局限性;這種結(jié)構(gòu)需要求C可以無條件接收B_OUT數(shù)據(jù),也就是單向握手,只要B給出B_OUT,C 100%可以接收;
握手與反壓設(shè)計注意點
sender發(fā)生數(shù)據(jù)的vld指示和receiver接收的ready指示應(yīng)該為獨立的邏輯產(chǎn)生,不可將二者扯上聯(lián)系;
若存在流水,則是否為某一級流水添加存儲單元、該存儲單元多大都是需要考慮的點,出發(fā)點都是為了流水的效率;
流水除了考慮各級的存儲深度外,不要忽略流水路上處理中的數(shù)據(jù);
-
存儲器
+關(guān)注
關(guān)注
38文章
7622瀏覽量
166140 -
存儲單元
+關(guān)注
關(guān)注
1文章
66瀏覽量
16347 -
流水線
+關(guān)注
關(guān)注
0文章
124瀏覽量
26456
原文標題:芯片設(shè)計方法學之--握手
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
valid-ready握手協(xié)議和enable-xoff協(xié)議對比

【芯片設(shè)計】握手協(xié)議的介紹與時序說明

智能識別蘋果安卓USB充電協(xié)議芯片
CH246D USB口與快充充電器協(xié)議握手失敗是什么原因?
bq25792握手協(xié)議
基于ECC帶緩存的快速SSL握手協(xié)議
什么是握手信號? 什么是握手協(xié)議?
什么是詢問握手身份驗證協(xié)議
tcp協(xié)議三次握手詳細過程

在握手協(xié)議中的Valid及data打拍技巧

Valid-Ready握手協(xié)議的介紹與時序說明

評論