• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 流水線技術在編程器中的提速應用

    流水線技術在編程器中的提速應用

    作者:周立功致遠電子 時間:2015-08-01 來源:電子產品世界 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/278124.htm

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

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

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

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

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

      

    圖片7.jpg

     

      圖1山寨的燒錄器

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

      稍微思考下,就會發現,燒錄器在編程過程中是按照這樣一個順序執行的:從上位機取命令數據→命令解析→執行。這個過程是一個按順序循環執行的,對應的操作為取指、譯碼和執行,解釋如下:

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

      譯碼----根據指令,產生對應的控制信號。

      執行----執行擦除、編程或者檢驗操作,或者設置相關參數。

      如果沒有采用技術,時空圖如圖2所示。

      

    圖片8.png

     

      圖2無時空圖

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

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

      

    圖片9.png

     

      圖3 流水線電路示意圖

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

      

    圖片10.png

     

      圖4流水線時空圖

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

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



    關鍵詞: 流水線 編程器

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 湘阴县| 西乌珠穆沁旗| 永城市| 台东县| 寻乌县| 昌江| 车险| 正阳县| 米林县| 封丘县| 安徽省| 西林县| 镇平县| 昆明市| 镇沅| 绥江县| 苍溪县| 临沭县| 正蓝旗| 汕尾市| 文成县| 聂拉木县| 洪泽县| 绥中县| 东莞市| 永善县| 博乐市| 微博| 渭南市| 安多县| 澄城县| 庆阳市| 资阳市| 彭泽县| 留坝县| 霞浦县| 宝坻区| 大渡口区| 图片| 衡阳市| 柞水县|