色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

hash算法在FPGA中的實現(xiàn)(1)

CHANBAEK ? 來源: FPGA的現(xiàn)今未 ? 作者: FPGA的現(xiàn)今未 ? 2023-09-07 17:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FPGA的設(shè)計中,尤其是在通信領(lǐng)域,經(jīng)常會遇到hash算法的實現(xiàn)。hash算法在FPGA的設(shè)計中,它主要包括2個部分,第一個就是如何選擇一個好的hash函數(shù),減少碰撞;第二個就是如何管理hash表。本文不討論hash算法本身,僅說明hash表的管理。

原理

先對齊本文中要說明的幾個概況,如下圖所示,hash函數(shù)的輸入稱為key,hash函數(shù)的輸出,稱為hash值,或者index。以上稱呼可能不標(biāo)準(zhǔn),但是不影響對方案的理解即可。

圖片

hash算法的實現(xiàn)可以用一個很簡單的圖來表示,如下圖所示,對輸入的key做hash運算后,得到index,以index作為地址,把key值存入到其index對應(yīng)的hash表中。同理,在查詢的時候,也是先對key計算hash值,然后查hash表,如果hash表無效,說明沒有命中,如果有效,則判斷hash表中的key和輸入的key是否相等,相等則為命中。

圖片

舉2個例子簡單說明下,假定key5,計算出index = 0,但是add0為空,所以key5沒有命中,或者說,hash表中沒有key5這個元素。假定key6,計算hash后得到index = 3,hash表addr3中有數(shù)據(jù),但是存放在addr3中的數(shù)據(jù)為key4,不等于key6,所以key6也沒有命中。

hash表構(gòu)建

上圖hash表的示意圖其實已經(jīng)說明了一個簡單的hash表的構(gòu)建,在FPGA內(nèi)部,常用BRAM來存放一個hash表,上圖所示hash表的深度為N,每個hash表中存放一個key。假如key的位寬為50個bit,hash后的index位寬為9bit。那么hash表就需要一個64bit*512表項,消耗1個M36K(以xilinx的資源為例)。

但是事情肯定沒有這么簡單,因為只要有hash的地方就有沖突。那么下一步就是要解決hash沖突的問題。

解決hash沖突最常見的方案就是hash鏈表,如下圖所示,key1、key5、key7具有相同的hash值,可以通過一個鏈表的形式將他們串聯(lián)在一起。這種方案在軟件是可能是非常好實現(xiàn)的,但是在FPGA里實現(xiàn)可能就比較難了,比如鏈表的最大深度為多少呢?每個hash桶的鏈表是單獨存放還是所有的存放在一起呢?

圖片

我們知道一個好的hash函數(shù),應(yīng)該是要盡可能地減少沖突的。如果從算法上我們證明了,我們的沖突最多不超過4次,那就有更加簡單的方案來實現(xiàn)這個hash表了。

我們把hash表做一個改進,如下圖所示,我們每個hash桶中,不再是存放一個key,而是最多存放4個key,也就是不用鏈表來解決hash沖突問題。

圖片

這樣做的好處有2個,一個是沒有了對鏈表的處理,比較簡單,第二個就是處理速度快,一次讀操作就把具有相同hash值的所有key值全部讀出來進行比較。那這種方案在FPGA的ram中如何實現(xiàn)呢?還是以key的寬度為50bit,index的位寬為9bit為例。

一個桶的內(nèi)部結(jié)果如下圖所示,每個key還需要1bit指示是否有效,那么4個key需要514 = 204bit,用一個216bit512的BRAM即可,消耗2.5個M36K。

圖片

如果key的位寬非常大,比如是五元組,一共104bit,如果用上述的方案,那就是105*4 = 420bit,那就需要6個M36K來存放。可見,key的位寬越大,消耗的資源就越多。

hash表的優(yōu)化

如果我的設(shè)計,要的就是速度,對資源的消耗不是很關(guān)系,那用上述的結(jié)構(gòu)即可,如果我的設(shè)計可以犧牲一點點性能,但是需要減少資源的消耗,怎么辦呢?

我們可以把hash桶的內(nèi)部結(jié)構(gòu)修改下,由拼位寬改成拼深度,如下圖所示:

圖片

分別以50bit和104bit的key為例,對于50bit的key,需要的存儲為64bit5124,需要4個M36K。對于104bit的key,需要的存儲為108bit5124,需要6塊。看似需要的緩存并沒有減少,有的情況下甚至增加了。

如果hash值是8bit了,那情況就不一樣了。因為hash值為8bit和9bit的時候,BRAM的深度的增加,并沒有帶來額外的資源消耗,但是表項的寬度卻只有原來的一半,資源也就可以減少一半。比如原來hash表位 288bit256,需要消耗4個M36K,采用上述的優(yōu)化方案后,表項變成144512,只需要消耗2個M36K。

除了上述的對hash桶的改進外,有時候可以同時拼寬度和深度,如下圖所示:

圖片

總結(jié)

hash表的設(shè)計,需要兼顧資源和性能問題。主要的考慮點就是充分利用BRAM 的特性來實現(xiàn)資源和性能的平衡。

圖片

當(dāng)然,hash表也可以不放在BRAM中,存放在DDR里,那就演變成另外一個話題,如何高效地讀寫DDR中的hash表了。

聲明:本文內(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)注

    1645

    文章

    22050

    瀏覽量

    618684
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6206

    瀏覽量

    137846
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64921
  • Hash算法
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    7539
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于FPGA實現(xiàn)FOC算法之PWM模塊設(shè)計

    哈嘍,大家好,從今天開始正式帶領(lǐng)大家從零到一,FPGA平臺上實現(xiàn)FOC算法,整個算法的框架如下圖所示,如果大家對
    的頭像 發(fā)表于 07-17 15:21 ?733次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>FOC<b class='flag-5'>算法</b>之PWM模塊設(shè)計

    FPGA機器學(xué)習(xí)的具體應(yīng)用

    ,越來越多地被應(yīng)用于機器學(xué)習(xí)任務(wù)。本文將探討 FPGA 機器學(xué)習(xí)的應(yīng)用,特別是加速神經(jīng)網(wǎng)絡(luò)推理、優(yōu)化
    的頭像 發(fā)表于 07-16 15:34 ?512次閱讀

    基于Matlab與FPGA的雙邊濾波算法實現(xiàn)

    前面發(fā)過中值、均值、高斯濾波的文章,這些只考慮了位置,并沒有考慮相似度。那么雙邊濾波來了,既考慮了位置,有考慮了相似度,對邊緣的保持比前幾個好很多,當(dāng)然實現(xiàn)上也是復(fù)雜很多。本文將從原理入手,采用Matlab與FPGA設(shè)計實現(xiàn)雙邊
    的頭像 發(fā)表于 07-10 11:28 ?648次閱讀
    基于Matlab與<b class='flag-5'>FPGA</b>的雙邊濾波<b class='flag-5'>算法</b><b class='flag-5'>實現(xiàn)</b>

    基于FPGA的壓縮算法加速實現(xiàn)

    本設(shè)計,計劃實現(xiàn)對文件的壓縮及解壓,同時優(yōu)化壓縮中所涉及的信號處理和計算密集型功能,實現(xiàn)對其的加速處理。本設(shè)計的最終目標(biāo)是證明充分并行化的硬件體系結(jié)構(gòu)
    的頭像 發(fā)表于 07-10 11:09 ?819次閱讀
    基于<b class='flag-5'>FPGA</b>的壓縮<b class='flag-5'>算法</b>加速<b class='flag-5'>實現(xiàn)</b>

    PID控制算法的C語言實現(xiàn):PID算法原理

    工業(yè)應(yīng)用 PID 及其衍生算法是應(yīng)用最廣泛的算法之一,是當(dāng)之無愧的萬能算法,如果能夠熟練掌握 PID
    發(fā)表于 02-26 15:24

    FPGA磁致伸縮位移傳感器的應(yīng)用

    FPGA磁致伸縮位移傳感器中用于信號處理、數(shù)據(jù)采集等,其高并行處理、可編程性提升了傳感器速度、精度,支持復(fù)雜算法實現(xiàn)實時控制,優(yōu)化系統(tǒng)響應(yīng),是傳感器高效、精準(zhǔn)、智能化的核心。
    的頭像 發(fā)表于 02-17 14:48 ?395次閱讀

    FPGAAI方面有哪些應(yīng)用

    提供了強有力的支持。 一、FPGA 深度學(xué)習(xí)的應(yīng)用 深度學(xué)習(xí)是 AI 的重要分支,涉及海量的數(shù)據(jù)運算。FPGA 能夠針對深度學(xué)習(xí)算法
    的頭像 發(fā)表于 01-06 17:37 ?1407次閱讀

    FPGA 實時信號處理應(yīng)用 FPGA圖像處理的優(yōu)勢

    優(yōu)勢之一是其并行處理能力。與傳統(tǒng)的CPU或GPU相比,FPGA可以同時執(zhí)行多個操作,這在圖像處理尤為重要,因為圖像處理通常涉及大量的并行數(shù)據(jù)流和復(fù)雜的算法。例如,進行圖像濾波或邊緣
    的頭像 發(fā)表于 12-02 10:01 ?1822次閱讀

    FPGA 人工智能的應(yīng)用

    FPGA是一種可編程的半導(dǎo)體設(shè)備,它允許工程師在生產(chǎn)后重新配置硬件邏輯。與傳統(tǒng)的ASIC(應(yīng)用特定集成電路)相比,FPGA具有更高的靈活性,可以根據(jù)不同的應(yīng)用需求進行編程和重配置。這種靈活性使得FPGA成為
    的頭像 發(fā)表于 12-02 09:53 ?2236次閱讀

    FPGA物聯(lián)網(wǎng)的應(yīng)用前景

    FPGA(現(xiàn)場可編程門陣列)物聯(lián)網(wǎng)的應(yīng)用前景非常廣闊,其高度的靈活性和可編程性使其成為物聯(lián)網(wǎng)應(yīng)用不可或缺的核心組件。以下是對FPGA
    的頭像 發(fā)表于 10-25 09:22 ?1172次閱讀

    FPGA圖像處理領(lǐng)域的優(yōu)勢有哪些?

    單元和可編程互聯(lián)線,可以實現(xiàn)高度并行的數(shù)據(jù)處理。圖像處理任務(wù),如圖像預(yù)處理、特征提取和圖像識別等,需要大量的計算任務(wù)。FPGA可以通過并行處理技術(shù),將這些任務(wù)同時執(zhí)行,從而大大提高
    發(fā)表于 10-09 14:36

    為什么FPGA屬于硬件,還需要搞算法

    嗎?單純搞算 法就行了嗎?一臉懵求解答。 A:FPGA 屬于硬件,但其功能的實現(xiàn)離不開算法FPGA 雖然是硬件,但它具有可編程性,要
    發(fā)表于 09-09 16:54

    如何在FPGA實現(xiàn)按鍵消抖

    FPGA(現(xiàn)場可編程門陣列)實現(xiàn)按鍵消抖是一個重要的設(shè)計環(huán)節(jié),特別是處理用戶輸入時,由于物理按鍵的機械特性和電氣特性,按鍵在按下和釋放
    的頭像 發(fā)表于 08-19 18:15 ?3558次閱讀

    FPGA自動駕駛領(lǐng)域有哪些應(yīng)用?

    FPGA自動駕駛領(lǐng)域的主要應(yīng)用: 一、感知算法加速 圖像處理:自動駕駛需要通過攝像頭獲取并識別道路信息和行駛環(huán)境,這涉及到大量的圖像處理任務(wù)。
    發(fā)表于 07-29 17:09

    FPGA人工智能的應(yīng)用有哪些?

    和安全的云計算和網(wǎng)絡(luò)服務(wù)。 三、具體應(yīng)用場景 圖像分類:圖像分類任務(wù)FPGA可以承擔(dān)前置處理、圖像卷積、全連接等任務(wù)。通過FPGA的并行計算能力,可以大幅提高
    發(fā)表于 07-29 17:05
    主站蜘蛛池模板: 久久精品九九亚洲精品天堂 | a级男女性高爱潮高清试看 A级毛片无码久久精品免费 | 黑色丝袜美女被网站 | 欧美日韩中文字幕综合图区 | 亚洲免费在线播放 | 中文免费视频 | av56788成 人影院 | 天天躁日日躁狠狠躁午夜剧场 | 在线观看国产亚洲 | 诱受H嗯啊巨肉舍友1V1 | 天天爽夜夜爽夜夜爽 | 亚洲一区自拍高清亚洲精品 | 亚洲国产成人精品不卡青青草原 | 簧片在线观看 | 狠狠色在在线视频观看 | 亚洲色视在线观看视频 | 国产精品久久久久久无码专区 | 国产免费毛片在线观看 | WWWXXXX兽交| 好紧好湿太硬了我太爽了文字 | 色窝窝777欧美午夜精品影院 | 老师你奶真大下面水真多 | 动漫美女喷水 | 中文字幕网站在线观看 | 国产二区自拍 | 亚洲欧美中文日韩v在线 | 美女与男人对肌免费网站 | 100国产精品人妻无码 | 亚洲色婷婷久久精品AV蜜桃久久 | 兽皇VIDEO另类HD | 性色AV一区二区三区咪爱四虎 | brazzers情欲狂欢 | 日本妞欧洲 | 男女牲交全过程免费播放 | 全黄H全肉细节文短篇 | 老司机福利在视频在ae8 | 欧洲xxxxx| 亚洲一区二区三区乱码在线欧洲 | 小小水蜜桃3视频在线观看 小向美奈子厨房magnet | 久久婷婷色一区二区三区 | 纯肉巨黄H爆粗口男男分卷阅读 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品