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

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

智能識(shí)別蘋(píng)果安卓USB充電協(xié)議芯片
CH246D USB口與快充充電器協(xié)議握手失敗是什么原因?
bq25792握手協(xié)議
基于ECC帶緩存的快速SSL握手協(xié)議
什么是握手信號(hào)? 什么是握手協(xié)議?
什么是詢問(wèn)握手身份驗(yàn)證協(xié)議
tcp協(xié)議三次握手詳細(xì)過(guò)程

AXI4協(xié)議五個(gè)不同通道的握手機(jī)制

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

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

評(píng)論