欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

hash算法在FPGA中的實(shí)現(xiàn)(3)

CHANBAEK ? 來源:FPGA的現(xiàn)今未 ? 作者:FPGA的現(xiàn)今未 ? 2023-09-07 17:02 ? 次閱讀

在前面的文章中主要介紹了hash表及其鏈表的結(jié)構(gòu),同時(shí)說明了如何讀取表項(xiàng)。那表項(xiàng)是如何寫入的了?前期的文章中有少量的提及,這里單獨(dú)寫一篇,介紹兩種常見的方案。

CPU寫入表項(xiàng)

當(dāng)表項(xiàng)由CPU寫入的時(shí)候,FPGA只進(jìn)行讀?。ú楸恚┑臅r(shí)候,那么表項(xiàng)的插入就和FPGA沒有什么關(guān)系了。唯一要注意的就是表項(xiàng)要有一個(gè)CPU的寫接口。以hash表為例,如果hash表在內(nèi)部ram中,那么該ram就是CPU寫,邏輯讀;如果hash表在DDR中,那只需要給DDR留一個(gè)CPU的讀寫接口即可。

FPGA寫入表項(xiàng)

FPGA寫入表項(xiàng)的情況相對(duì)就要復(fù)雜一些,總體來說,不管什么場(chǎng)景,它都是用key計(jì)算hash值,然后查表,命中就返回命中結(jié)果,不命中就把key寫入表中的過程,用一個(gè)流程圖表示,如下圖所示:

圖片

hash表的寫入

根據(jù)前面hash表的構(gòu)建,我們討論一種情況,hash桶中存放多個(gè)key的場(chǎng)景,其他情況都是相似的處理方式。如下表所示:

圖片

當(dāng)key6來查表時(shí),如果計(jì)算出hash值為3,如果讀取addr3,發(fā)現(xiàn)里面已經(jīng)有key6,所以查表得到的結(jié)果是key6命中的;

當(dāng)key10來查表時(shí),如果計(jì)算出的hash值也是3,讀取addr3,發(fā)現(xiàn)里面沒有key10,返回的結(jié)果是不命中,同時(shí)還需要把key10和已經(jīng)存在的其他的key一起寫入addr3中,變成如下表:

圖片

hash鏈表的寫入

hash鏈表的寫入比hash表的寫入要復(fù)雜,因?yàn)槌薻ey的寫入,還涉及到鏈表地址的回寫。以一個(gè)具體的例子說明插入鏈表的過程。

假定hash桶的內(nèi)容如下圖所示,此時(shí)假定hash桶已經(jīng)滿了,但是還沒有鏈表,hash桶中具體存放什么key,如何存放key不影響hash鏈表的寫入,所以不在這里說明。

圖片

現(xiàn)在來了一個(gè)keyA,其hash值對(duì)應(yīng)到上述hash桶,且沒有命中,由于hash桶已經(jīng)滿了,無法繼續(xù)寫入hash桶中,必須寫入鏈表了。因?yàn)閷⒃搆eyA給到鏈表處理模塊,鏈表處理模塊會(huì)返回一個(gè)地址,addr1,表示當(dāng)前的keyA,已經(jīng)寫入鏈表,位置在addr1,這時(shí)需要把a(bǔ)ddr1這個(gè)地址寫回到hash桶中,這樣鏈表才能建立,如下圖所示,這樣在查表的時(shí)候,就可以根據(jù)hash桶中的addr1,得到keyA。

圖片

同理,如果繼續(xù)來一個(gè)keyB,hash值和keyA相同,在進(jìn)行key比較的時(shí)候,發(fā)現(xiàn)hash桶中沒有命中,同時(shí)鏈表addr1中也沒有命中,即keyB沒有命中,需要寫入hash桶或者h(yuǎn)ash鏈表中。我們?cè)诓楸淼臅r(shí)候得知addr1是最后一鏈(NULL),因此將keyB送給鏈表處理模塊,鏈表處理模塊返回一個(gè)地址,假定為addr2,表示keyB已經(jīng)寫入addr2中,這次也需要把地址addr2寫入地址addr1中,實(shí)現(xiàn)鏈表在尾部的插入。如下圖所示:

圖片

當(dāng)有key需要繼續(xù)插入時(shí),以此類推。

對(duì)于鏈表插入的位置,可以在尾部插入外,也可以在頭部插入。當(dāng)鏈表處理模塊返回keyB寫入的地址addr2后,將該地址寫入hash桶中,同時(shí)將hash桶中的地址addr1和keyB寫入到addr2中。如下圖所示:

圖片

無論是從鏈表頭插入還是鏈表尾插入,都不影響最終結(jié)果,可以根據(jù)自己設(shè)計(jì),選擇相對(duì)簡(jiǎn)單的實(shí)現(xiàn)方案。

總結(jié)

hash鏈表的插入,一般就是CPU寫入和邏輯自己寫入。邏輯寫入的時(shí)候,無論hash桶或者鏈表每一鏈的結(jié)構(gòu)如何,都可以采用上述的方式插入鏈表。

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

    關(guān)注

    1630

    文章

    21801

    瀏覽量

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

    關(guān)注

    68

    文章

    10909

    瀏覽量

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

    關(guān)注

    0

    文章

    43

    瀏覽量

    7421
  • 鏈表
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    10609
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA實(shí)現(xiàn)PID算法

    本帖最后由 發(fā)燒友LV 于 2014-12-29 20:13 編輯 FPGA實(shí)現(xiàn)PID算法,面臨著小數(shù)的計(jì)算,請(qǐng)問大家一般是怎么處
    發(fā)表于 12-03 21:59

    怎么spartan 3AN fpga實(shí)現(xiàn)遺傳算法

    我正在做我的遺傳算法項(xiàng)目,有沒有辦法斯巴達(dá)3AN fpga實(shí)現(xiàn)遺傳
    發(fā)表于 04-03 13:16

    1HASH函數(shù)軟件自保護(hù)的應(yīng)用

    本文介紹了HASH 函數(shù)的原理,并重點(diǎn)討論了其中的SHA-1 算法及其軟件自保護(hù)的應(yīng)用和實(shí)現(xiàn)技術(shù)。關(guān)鍵詞:
    發(fā)表于 08-07 09:28 ?17次下載

    MACFPGA的高效實(shí)現(xiàn)

    乘累加器DSP算法中有著舉足輕重的地位?,F(xiàn)在,很多前端DSP算法都通過FPGA實(shí)現(xiàn)。結(jié)合FPGA
    發(fā)表于 08-06 14:41 ?29次下載

    AESSubBytes算法FPGA實(shí)現(xiàn)

    介紹了AES,SubBytes算法FPGA的具體實(shí)現(xiàn).構(gòu)造SubBytes的S-Box轉(zhuǎn)換表可以直接查找ROM表來
    發(fā)表于 11-09 16:42 ?25次下載

    FPGA實(shí)現(xiàn)的FIR算法汽車動(dòng)態(tài)稱重儀表的應(yīng)用

    摘 要: 本文介紹了用FPGA實(shí)現(xiàn)的FIR算法,并對(duì)這種算法應(yīng)用于汽車動(dòng)態(tài)稱重儀表的結(jié)果做了分析。實(shí)踐證明此
    發(fā)表于 03-11 13:46 ?888次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>的FIR<b class='flag-5'>算法</b><b class='flag-5'>在</b>汽車動(dòng)態(tài)稱重儀表<b class='flag-5'>中</b>的應(yīng)用

    3DES算法FPGA高速實(shí)現(xiàn)

    摘要:介紹3-DES算法的概要;以Xilinx公司SPARTANII結(jié)構(gòu)的XC2S100為例,闡述用FPGA高速實(shí)現(xiàn)3-DES
    發(fā)表于 06-20 14:22 ?1473次閱讀
    <b class='flag-5'>3</b>DES<b class='flag-5'>算法</b>的<b class='flag-5'>FPGA</b>高速<b class='flag-5'>實(shí)現(xiàn)</b>

    基于FPGA的SM3算法優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)

    基于FPGA的SM3算法優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)的論文
    發(fā)表于 10-29 17:16 ?5次下載

    FPGA實(shí)現(xiàn)CRC算法的程序

    Xilinx FPGA工程例子源碼:FPGA實(shí)現(xiàn)CRC算法的程序
    發(fā)表于 06-07 15:07 ?28次下載

    基于SHA-1算法的硬件設(shè)計(jì)及實(shí)現(xiàn)FPGA實(shí)現(xiàn)

    算法進(jìn)行深入研究,面向Xilinx K7 410T FPGA 芯片設(shè)計(jì)SHA-1算法實(shí)現(xiàn)結(jié)構(gòu),完成SHA-1算法編程,進(jìn)行測(cè)試和后續(xù)應(yīng)用。該
    發(fā)表于 10-30 16:25 ?4次下載
    基于SHA-1<b class='flag-5'>算法</b>的硬件設(shè)計(jì)及<b class='flag-5'>實(shí)現(xiàn)</b>(<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>)

    Hash算法簡(jiǎn)介

    區(qū)塊Hash值時(shí)(即挖礦的過程),都使用了Hash算法,特別是SHA256算法。比特幣系統(tǒng)本身也就是加密算法的衍生物。
    的頭像 發(fā)表于 06-08 14:01 ?5091次閱讀

    hash算法的原理和實(shí)際應(yīng)用等幾個(gè)角度,對(duì)hash算法進(jìn)行一個(gè)講解

    由于hash的原理是將輸入空間的值映射成hash空間內(nèi),而hash值的空間遠(yuǎn)小于輸入的空間。根據(jù)抽屜原理,一定會(huì)存在不同的輸入被映射成相同輸出的情況。那么作為一個(gè)好的hash
    的頭像 發(fā)表于 06-03 17:34 ?3335次閱讀
    從<b class='flag-5'>hash</b><b class='flag-5'>算法</b>的原理和實(shí)際應(yīng)用等幾個(gè)角度,對(duì)<b class='flag-5'>hash</b><b class='flag-5'>算法</b>進(jìn)行一個(gè)講解

    hash算法FPGA實(shí)現(xiàn)(1)

    FPGA的設(shè)計(jì),尤其是通信領(lǐng)域,經(jīng)常會(huì)遇到hash算法
    的頭像 發(fā)表于 09-07 17:01 ?1392次閱讀
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b><b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>實(shí)現(xiàn)</b>(1)

    hash算法FPGA實(shí)現(xiàn)(2)

    在前面的文章hash算法FPGA實(shí)現(xiàn)(一)
    的頭像 發(fā)表于 09-07 17:02 ?993次閱讀
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b><b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>實(shí)現(xiàn)</b>(2)

    hash算法FPGA實(shí)現(xiàn)(4)

    在前面的文章主要介紹了hash表及其鏈表的結(jié)構(gòu),以及key值的插入方法,既然有key值的插入,那就有key值的刪除,一種刪除是CPU通過重新刷新鏈表來刪除,另外一種就是FPGA刪除了,這里主要討論
    的頭像 發(fā)表于 09-07 17:03 ?820次閱讀
    <b class='flag-5'>hash</b><b class='flag-5'>算法</b><b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>實(shí)現(xiàn)</b>(4)