0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA和CPU如何搭配?

SSDFans ? 來源:未知 ? 作者:李倩 ? 2018-06-20 15:17 ? 次閱讀

一個故事理解流水線、并行、緩存、內(nèi)存、存儲

蛋蛋花了一天給小蛋蛋做了一個玩具汽車,沒想到做的太好了,同學(xué)們都來買。蛋蛋一個人忙不過來,就一家人合作生產(chǎn)。蛋蛋負責(zé)把原料分類擺放在桌上,小蛋蛋擰螺絲組裝,蛋媽把玩具放到包裝盒里。三個人采用流水線的方式,每個人都沒閑著,生產(chǎn)效率大為提高,一天能造50個玩具。

隔壁老王看到蛋蛋做玩具賺錢了,也一家三口加入造玩具大軍,慢慢整個小區(qū)家家冒煙,戶戶生產(chǎn)。五十家人采用并行工作的方式,一天能造2500個玩具。

本來,蛋蛋家里的工作臺旁邊有個箱子,叫做緩存。把玩具生產(chǎn)的原料和生產(chǎn)好的玩具放在自己家里,離得又近又速度快。

小區(qū)里家家冒煙后,原料供應(yīng)和玩具運輸需求量大增。居民們在小區(qū)中央建了一個倉庫,叫做內(nèi)存,里面放了很多原料和玩具,看門大爺每天推著手推車到每家每戶去送原料,收玩具,人們給他起了個外號——總線。

鎮(zhèn)長看到蛋蛋家園小區(qū)交的玩具稅日漸增長,為了增加收入,決定建設(shè)玩具小鎮(zhèn),于是鎮(zhèn)上每個小區(qū)都開始生產(chǎn)玩具,玩具生產(chǎn)規(guī)模日漸擴大。鎮(zhèn)中心建了一個大倉庫,集中存放原料和玩具,倉庫太大了,如果一個個領(lǐng)取太不方便,所以每次提貨或者送貨必須以500個為單位批量領(lǐng)取,這個大倉庫叫做硬盤。

在我們的計算機中,CPU采用流水線的方式工作,把一個任務(wù)分成十幾個步驟,用十幾級流水線計算,速度增長了十幾倍。多核CPU就是并行工作,又能把計算速度提升幾倍。計算速度快了之后,對數(shù)據(jù)的讀寫速度要求變高,所以,現(xiàn)代CPU設(shè)計了先進的緩存系統(tǒng),可以說,對現(xiàn)代通用CPU來說,緩存才是核心。

可是對某些應(yīng)用來說,CPU有點走歪了,它擅長的是用高頻率把順序執(zhí)行的任務(wù)分解成很多級流水線高速執(zhí)行,但是對于深度學(xué)習(xí)等計算,需要的是大量的并行計算,這時候,CPU的核心數(shù)成了限制。

FPGA的并行性

蛋蛋設(shè)計了一個復(fù)雜的機器叫CPU,它能一條條讀取并執(zhí)行蛋蛋寫好的指令,把任務(wù)分解成很多級流水線,生產(chǎn)出各種各樣復(fù)雜的玩具。

玩具市場總是有新的流行風(fēng)尚,最近突然樂高玩具開始大火,每一個積木都長得差不多,但是很多的積木就可以搭出復(fù)雜的形狀?,F(xiàn)在的家長都希望寓教于玩,讓孩子玩游戲也能動腦筋,蛋蛋看到了這個趨勢,也想生產(chǎn)樂高積木??墒撬l(fā)現(xiàn)復(fù)雜的機器CPU的生產(chǎn)效率太低了,他需要的是同時大批量幾百上千個機器并行生產(chǎn),而CPU最多只能同時生產(chǎn)十幾個。所以,蛋蛋又鉆研了一段時間,研制出新的機器——FPGA。這臺機器里面有幾千個小引擎,按照蛋蛋設(shè)定好的任務(wù),大家熱火朝天地生產(chǎn)自己的小積木。

我們上大學(xué)學(xué)習(xí)的C語言是給CPU編程的語言,它的特點就是寫一個main函數(shù),里面有很多內(nèi)容,程序啟動后,從頭按順序執(zhí)行到結(jié)尾。這是因為只有一個CPU在運行,程序會轉(zhuǎn)化為指令讓CPU一條條執(zhí)行。

FPGA是并行計算機,它的基礎(chǔ)編程語言叫做Verilog,在這種語言中,每一段程序,都會轉(zhuǎn)化為FPGA芯片里面的一個小計算引擎,大家并行執(zhí)行,熱火朝天的干自己的活。

FPGA和CPU如何搭配

FPGA作為可重構(gòu)計算引擎,一般要和CPU搭配使用。如下圖,可重構(gòu)計算引擎要么直接和CPU緊密相連,要么和緩存相連,前者叫緊耦合,后者叫松耦合。還有一種情況下,F(xiàn)PGA是作為協(xié)處理器coprocessor連到內(nèi)存總線上,和CPU共享內(nèi)存。

如下圖,F(xiàn)PGA作為協(xié)處理器,CPU把指令寫入內(nèi)存,F(xiàn)PGA從內(nèi)存讀取指令執(zhí)行,并把計算結(jié)果寫入內(nèi)存。這種模式的優(yōu)點是簡單易行,協(xié)處理器和CPU分離。瓶頸在于共享內(nèi)存,限制了性能,同時由于通過內(nèi)存交互,CPU和FPGA之間通信延遲變長了。所以適合于FPGA能獨立執(zhí)行的加速任務(wù),比如視頻編解碼、數(shù)據(jù)加解密等。

下圖是一個松耦合的例子。CPU(ARC)和可重構(gòu)計算邏輯放在一顆芯片里面,CPU可以直接訪問可重構(gòu)計算引擎,而且共享內(nèi)存,可重構(gòu)計算引擎可以通過DMA方式直接讀寫內(nèi)存。同時,我們看到可重構(gòu)計算引擎有自己的數(shù)據(jù)讀寫接口,所以可以脫離CPU獨立工作,打工創(chuàng)業(yè)兩不誤。

再來看一個緊耦合的例子。如下圖,CPU FU是一般CPU的基本計算單元,例如ALU、乘法器、浮點處理器等,RFU跟這些基本單元一樣,放在芯片里面,而且可以直接被CPU的寄存器控制,還能訪問緩存中的數(shù)據(jù)。

總結(jié)一下,協(xié)處理器相當(dāng)于外地當(dāng)官的,只能接受皇帝的命令工作。松耦合就是京城里的官員,可以定期去皇宮跟皇帝嘮嘮嗑。緊耦合已經(jīng)到了外戚和太監(jiān)的地步,能在皇宮里經(jīng)常值班。

松耦合和緊耦合都要在芯片里面放可重構(gòu)計算引擎,成本比較高,但是效率也很高。相當(dāng)于CPU里面有個FPGA,隨時可以編程讓它做不同的計算。處理視頻時,配置成視頻編解碼邏輯,做AI計算時配置成深度學(xué)習(xí)計算器,一個芯片既有CPU,又有可以配置的硬件計算引擎。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21628

    瀏覽量

    601254
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10807

    瀏覽量

    210854
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5466

    瀏覽量

    120891

原文標(biāo)題:阿呆讀可重構(gòu)計算2:FPGA如何克服CPU的缺陷?

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGACPU和GPU快的原理是什么

    本文首先闡述了FPGA的原理了,其次分析了FPGACPU和GPU快的原理,最后闡述了CPU與GPU的區(qū)別。
    的頭像 發(fā)表于 05-31 09:00 ?1.7w次閱讀
    <b class='flag-5'>FPGA</b>比<b class='flag-5'>CPU</b>和GPU快的原理是什么

    FPGA真的能取代CPU和GPU嗎?

    最近我們看到一篇文章,說FPGA可能會取代CPU和GPU成為將來機器人研發(fā)領(lǐng)域的主要芯片。文章列舉了很多表格和實驗數(shù)據(jù),證明了在很多領(lǐng)域FPGA的性能會極大優(yōu)于CPU。并且預(yù)言
    發(fā)表于 05-16 10:39 ?1.7w次閱讀

    混合CPU_FPGA系統(tǒng)的調(diào)試方法

    混合CPU_FPGA系統(tǒng)的調(diào)試方法:
    發(fā)表于 07-23 10:44 ?7次下載
    混合<b class='flag-5'>CPU_FPGA</b>系統(tǒng)的調(diào)試方法

    一種利用FPGACPU設(shè)計

    基于現(xiàn)場可編程(FPGA)技術(shù)和硬件描述語言VHDL的設(shè)計和綜合,通過自頂向下的設(shè)計方法和模塊化設(shè)計思想,在Quartus II環(huán)境下能定制、仿真、下載驗證和實現(xiàn)CPU功能。通過VHDL語言定制了運算器ALU模塊和調(diào)用宏模塊定制了RAM模塊,介紹了基于
    發(fā)表于 03-15 17:39 ?178次下載

    基于FPGA的嵌入式CPU的VHDL建模和設(shè)計

    目前,基于FPGA 的嵌入式CPU核的設(shè)計已成為SOC設(shè)計的重要部分.提出一種嵌入式CPU核的VHDI 行為建模方法,與傳統(tǒng)的基于電路結(jié)構(gòu)建模的CPU核的設(shè)計方法不同,新的VHDI 建
    發(fā)表于 06-27 16:00 ?75次下載
    基于<b class='flag-5'>FPGA</b>的嵌入式<b class='flag-5'>CPU</b>的VHDL建模和設(shè)計

    FPGACPU、DSP的競爭與融合

    FPGA技術(shù)來說,早期研發(fā)在5年前就已開始嘗試采用多核和硬件協(xié)處理加速技術(shù)朝系統(tǒng)并行化方向發(fā)展。在實際設(shè)計中,FPGA已經(jīng)成為CPU的硬件協(xié)加速器,很多芯片廠商采用了硬核或軟核CPU+FPG
    發(fā)表于 09-23 15:30 ?839次閱讀

    三步教你如何DIY電腦主板和CPU搭配

    本文來自ZOL很多DIY玩家在剛接觸硬件的時候,經(jīng)常被主板和CPU的型號搞得暈頭轉(zhuǎn)向,不知道如何進行搭配,畢
    的頭像 發(fā)表于 11-27 06:42 ?1.5w次閱讀

    FPGACPU有什么關(guān)系_FPGACPU的聯(lián)系

    CPU+FPGA的并行處理是目前的發(fā)展趨勢這種處理方式將大行其道。
    發(fā)表于 01-02 15:54 ?1.7w次閱讀

    簡單了解CPU和內(nèi)存搭配規(guī)律

    CPU和內(nèi)存都具有相應(yīng)的速率和帶寬。在配置電腦過程中,根據(jù)CPU的速率和帶寬,來搭配相應(yīng)速率和帶寬的內(nèi)存,會直接影響整機的性能。如果搭配不當(dāng)往往會浪費
    發(fā)表于 07-09 10:33 ?3.3w次閱讀

    FPGA為什么比CPU和GPU快

    FPGA仿真篇-使用腳本命令來加速仿真二 基于FPGA的HDMI高清顯示借口驅(qū)動 基于FPGA灰度圖像高斯濾波算法的實現(xiàn) FPGA為什么比CPU
    發(fā)表于 02-20 20:49 ?1645次閱讀

    如何才能合理的搭配CPU和主板

    裝機的時候該怎么選擇主板?對于大俠級人物這是一個簡單的問題,但對于電腦小白卻是一個頭痛的問題。其實,CPU和主板如何搭配是有一定的方法,按照下面的方法來,相信你也會選出自己所用的主板。
    的頭像 發(fā)表于 10-26 12:19 ?6385次閱讀

    使用FPGA實現(xiàn)CPU設(shè)計的畢業(yè)論文總結(jié)

    CPU的總體結(jié)構(gòu)到局部功能的實現(xiàn)采用了自頂向下的設(shè)計方法和模塊化的設(shè)計思想,利用Xilinx 公司的Spartan II 系列FPGA,設(shè)計實現(xiàn)了八位CPU軟核。在FPGA內(nèi)部不僅實
    發(fā)表于 08-03 17:58 ?13次下載
    使用<b class='flag-5'>FPGA</b>實現(xiàn)<b class='flag-5'>CPU</b>設(shè)計的畢業(yè)論文總結(jié)

    如何使用CPU配置FPGA的詳細資料說明

    FPGA 設(shè)計,代價不小。為了進一步降低產(chǎn)品的成本和升級成本, 可以考慮利用板上現(xiàn)有CPU 子系統(tǒng)中空閑的ROM 空間存放FPGA 的配置數(shù)據(jù), 并由CPU模擬專用EPROM 對
    發(fā)表于 08-13 17:43 ?2次下載
    如何使用<b class='flag-5'>CPU</b>配置<b class='flag-5'>FPGA</b>的詳細資料說明

    如何使用FPGA實現(xiàn)八位RISC CPU的設(shè)計

    CPU的總體結(jié)構(gòu)到局部功能的實現(xiàn)采用了自頂向下的設(shè)計方法和模塊化的設(shè)計思想, 利用Xilinx 公司的Spartan II 系列FPGA, 設(shè)計實現(xiàn)了八位CPU軟核。在FPGA 內(nèi)部
    發(fā)表于 08-19 17:43 ?7次下載
    如何使用<b class='flag-5'>FPGA</b>實現(xiàn)八位RISC <b class='flag-5'>CPU</b>的設(shè)計

    為什么FPGA主頻比CPU慢,但卻可以用來幫CPU做加速

    我們知道,FPGA的頻率一般只有幾百MHz,而CPU的頻率卻高達數(shù)GHz。那么,有不少網(wǎng)友心中就有一個疑問:為什么FPGA主頻比CPU慢,但卻可以用來幫
    的頭像 發(fā)表于 11-20 09:56 ?3879次閱讀