《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 流水線技術(shù)在編程器中的提速應(yīng)用

流水線技術(shù)在編程器中的提速應(yīng)用

2015-07-30
作者:周立功致遠(yuǎn)電子

       摘要:美國思科公司總裁約翰·錢伯斯他在談到新經(jīng)濟(jì)的規(guī)律時說,現(xiàn)代競爭已經(jīng)不是大魚吃小魚,而是快的吃慢的.在現(xiàn)代競爭中,效率有著決定性的作用。專業(yè)的燒錄器廠商是如何做到比山寨燒錄產(chǎn)品的快呢?

       美國思科公司總裁約翰·錢伯斯他在談到新經(jīng)濟(jì)的規(guī)律時說,現(xiàn)代競爭已“不是大魚吃小魚,而是快的吃慢的.”在現(xiàn)代競爭中,效率有著決定性的作用。

       做嵌入式開發(fā)的工程師都知道,一旦產(chǎn)品需要量產(chǎn),批量生產(chǎn)的燒錄器必不可少。在調(diào)試階段,工程師可以用串口下載來實現(xiàn)代碼的燒錄,如果用串口進(jìn)行生產(chǎn),工廠是絕不會允許的,因為效率實在太低。

       燒錄器的功能,主要對非易失性的存儲器進(jìn)行操作(MCU內(nèi)部Flash也都是各類非易失性的存儲器)。這些存儲器通常都需要擦除、編程和校驗。這些基本操作和一些控制設(shè)置操作,是燒錄的主要內(nèi)容。

       通常情況下,這些操作都是依次執(zhí)行的,先擦除,擦除完成后,對存儲器進(jìn)行加電編程,編程完成后,再對編程的部分進(jìn)行校驗、對比。這些步驟都是環(huán)環(huán)相扣,一步一步實現(xiàn)的,串行的處理效率是很低的。正如,一個人處理一件事忙不過,那么兩個人三個人一起來呢,效率立即提高3倍。 

       一步一步實現(xiàn)的方式,就是目前市面上很多山寨燒錄器的做法,效率低下。

圖片7.jpg

                            圖1山寨的燒錄器

       專業(yè)燒錄器廠商,不僅提高燒錄時的工作頻率,而且命令之間也盡量提高并行度,以達(dá)到效率最大化。

       稍微思考下,就會發(fā)現(xiàn),燒錄器在編程過程中是按照這樣一個順序執(zhí)行的:從上位機(jī)取命令數(shù)據(jù)→命令解析→執(zhí)行。這個過程是一個按順序循環(huán)執(zhí)行的,對應(yīng)的操作為取指、譯碼和執(zhí)行,解釋如下:

       取指----從命令FIFO中取出指令。

       譯碼----根據(jù)指令,產(chǎn)生對應(yīng)的控制信號。

       執(zhí)行----執(zhí)行擦除、編程或者檢驗操作,或者設(shè)置相關(guān)參數(shù)。

       如果沒有采用流水線技術(shù),時空圖如圖2所示。

圖片8.png

                            圖2無流水線時空圖

       從圖2可知,每條命令都要經(jīng)過取指、譯碼和執(zhí)行后才能進(jìn)行下一條命令,這嚴(yán)重影響系統(tǒng)的效率。最致命的是,取指、譯碼和執(zhí)行都不能同時工作,只有完成取指之后才能譯碼,譯碼之后才能執(zhí)行。

       因此,燒錄器做出了改變,采用了“流水線”技術(shù)。根據(jù)編程器的操作步驟,可以把工作流程分為取指、譯碼和執(zhí)行三部分,每一部分負(fù)責(zé)自己的工作。這樣不僅細(xì)化了整個工作流程,而且能夠使三部分同時工作,從而提高了并行度,進(jìn)而提高了工作效率。在FPGA硬件實現(xiàn)上,這三部分分別對應(yīng)三個電路,并且在它們之間都插入寄存器組,組成三級流水線,如圖3所示。這樣,在每個時鐘周期下,取指、譯碼和執(zhí)行部分同時使用上級傳下來的數(shù)據(jù)工作,并且在下一個周期把結(jié)果傳給寄存器以供下一級電路使用。在這個過程中,寄存器起到了暫存結(jié)果的作用。

圖片9.png

                           圖3 流水線電路示意圖

       采用流水線技術(shù)的時空圖如圖4所示。

圖片10.png

                                圖4流水線時空圖

       從圖4中可知,相關(guān)的命令執(zhí)行在時間上是交疊在一起的,也就是說三條命令同時工作(經(jīng)過首次延遲之后)!比如,在時刻T4,指令N+3在取值,指令N+2在譯碼,指令N+1執(zhí)行。值得注意的是,在某一時刻,它們雖然同時工作,但操作的都不是同一條指令。另外,在每個周期,都有一條命令在“執(zhí)行”,也就是說一個周期產(chǎn)生一個結(jié)果,而無流水線技術(shù)需要3個周期才有一個結(jié)果,相比之下,工作效率提高了3倍??上驳氖牵魉€技術(shù)會提高頻率上限。

       在FPGA設(shè)計上,需要估算取值、譯碼和之下三部分的延時,盡量做到它們之間的延時相等或者接近,才能發(fā)揮流水線的優(yōu)勢。另外,理論上,流水線級數(shù)越多,工作頻率越快,效率相對也高。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。