女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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)(4)

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

在前面的文章中主要介紹了hash表及其鏈表的結(jié)構(gòu),以及key值的插入方法,既然有key值的插入,那就有key值的刪除,一種刪除是CPU通過(guò)重新刷新鏈表來(lái)刪除,另外一種就是FPGA刪除了,這里主要討論FPGA如何刪除鏈表。

應(yīng)用場(chǎng)景

什么場(chǎng)景需要?jiǎng)h除hash表項(xiàng)呢?其實(shí)很多時(shí)候是不需要?jiǎng)h除表現(xiàn)的,比如最常見(jiàn)的類似bitmap的場(chǎng)景,還有字符串匹配場(chǎng)景等。但是如果hash表項(xiàng)需要老化的時(shí)候,就需要?jiǎng)h除hash鏈表了。

比如MAC地址學(xué)習(xí)建立的MAC地址表,需要在一定的間隔時(shí)間內(nèi)對(duì)所有的MAC地址進(jìn)行一次老化。如果采用hash算法來(lái)實(shí)現(xiàn)MAC地址表,那就是要?jiǎng)h除長(zhǎng)期沒(méi)有匹配的鏈表節(jié)點(diǎn)。我們知道,在鏈表插入的時(shí)候,需要對(duì)鏈表地址進(jìn)行有效的管理,同理,當(dāng)鏈表地址刪除后,也需要對(duì)鏈表地址重新管理,這里不討論具體業(yè)務(wù),只討論在刪除鏈表的時(shí)候如何管理鏈表。

鏈表的刪除

我們先看一個(gè)例子,如下圖所示,hash桶后面跟了3個(gè)鏈表(鏈表的刪除,和鏈表實(shí)現(xiàn)的方案沒(méi)有關(guān)系)。那如何刪除鏈表呢?

圖片

假如我們要?jiǎng)h除addr1,刪除后的形式如下圖所示,只需要修改hash桶中下一鏈的地址,即把要?jiǎng)h除的鏈表節(jié)點(diǎn)addr1中下一鏈的地址addr2,寫回到hansh桶中即可。

圖片

但是這里有一個(gè)問(wèn)題,我們鏈表可以從頭鏈到尾,即可以從上家找到下家,但是沒(méi)有辦法從下家找到上家。要?jiǎng)h除的鏈表節(jié)點(diǎn)addr1,知道下一鏈?zhǔn)莂ddr2,但是它不知道它的上一鏈在哪里?這里就引出一個(gè)新的問(wèn)題,雙向鏈表。

雙向鏈表

關(guān)于什么是雙向鏈表,這里不做解釋,網(wǎng)上有很多資料,這里先用一個(gè)圖來(lái)表示,我們把上面有3個(gè)鏈表的圖做一個(gè)改造,就可以得到雙向鏈表,如下圖所示:

圖片

每個(gè)鏈表節(jié)點(diǎn)包含有2個(gè)地址,左邊的地址指向上一鏈,右邊的地址指向下一鏈。比如keyB所在的鏈表節(jié)點(diǎn),它的下一鏈地址為addr3,上一鏈地址為addr1。

再回到開(kāi)始的問(wèn)題,假如addr1要被刪除掉。我們知道addr1的上一鏈?zhǔn)荖ULL,即沒(méi)有鏈表,是hash桶,下一鏈?zhǔn)莂ddr2,所以,我們只需要把a(bǔ)ddr1的下一鏈的地址addr2,寫入到addr1的上一鏈hash桶中,同時(shí)把a(bǔ)dd2的上一鏈指向addr1的上一鏈即可。

同理,如果要?jiǎng)h除addr2的時(shí)候,我們只需要把a(bǔ)ddr2的下一鏈的地址addr3,寫入addr2的上一鏈addr1中即可,同時(shí)把a(bǔ)ddr3的上一鏈指向addr2的上一鏈,即addr1即可,如下圖所示:

圖片

總結(jié)

當(dāng)需要?jiǎng)h除鏈表的時(shí)候,需要做的就是2讀2寫。

1、分別讀出要?jiǎng)h除鏈表addr2的上一鏈和下一鏈(讀出addr1和addr3的內(nèi)容);

2、將要?jiǎng)h除鏈表addr2的上一鏈地址addr1,寫入下一鏈的上一鏈地址中;

3、將要?jiǎng)h除鏈表addr2的下一鏈地址addr3,寫入上一鏈的下一鏈地址中;

hash在FPGA中的設(shè)計(jì)已經(jīng)完全介紹完畢,這些都是一些基礎(chǔ)的典型方法,當(dāng)然肯定還有其他一些更加優(yōu)秀的方案,歡迎討論交流。

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

    關(guān)注

    1643

    文章

    21941

    瀏覽量

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

    關(guān)注

    68

    文章

    11028

    瀏覽量

    215704
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    589

    瀏覽量

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

    關(guān)注

    0

    文章

    43

    瀏覽量

    7502
收藏 人收藏

    評(píng)論

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

    RC4加密算法FPGA設(shè)計(jì)與實(shí)現(xiàn)

    ,它的局限性也逐漸暴露出來(lái).很多計(jì)算機(jī)信息安全系統(tǒng),硬件加密手段被應(yīng)用到設(shè)備來(lái)提高密碼運(yùn)算速度和系統(tǒng)的安全性. 給出了一種RC4加密算法
    發(fā)表于 08-11 11:48

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

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

    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算法中有著舉足輕重的地位。現(xiàn)在,很多前端DSP算法都通過(guò)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表來(lái)
    發(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 ?918次閱讀
    <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)用

    RC4加密算法FPGA設(shè)計(jì)與實(shí)現(xiàn)

    RC4加密算法FPGA設(shè)計(jì)與實(shí)現(xiàn),下來(lái)看看。
    發(fā)表于 05-10 11:24 ?27次下載

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

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

    hash表的實(shí)現(xiàn)原理

    軟件開(kāi)發(fā),一個(gè)hash表相當(dāng)于把n個(gè)key隨機(jī)放入到b個(gè)bucket,以實(shí)現(xiàn)n個(gè)數(shù)據(jù)b個(gè)單位空間的存儲(chǔ)。 我們發(fā)現(xiàn)
    發(fā)表于 09-28 14:31 ?0次下載
    <b class='flag-5'>hash</b>表的<b class='flag-5'>實(shí)現(xiàn)</b>原理

    基于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í)(即挖礦的過(guò)程),都使用了Hash算法,特別是SHA256算法。比特幣系統(tǒng)本身也就是加密算法的衍生物。
    的頭像 發(fā)表于 06-08 14:01 ?5211次閱讀

    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 ?3579次閱讀
    從<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 ?1554次閱讀
    <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 ?1230次閱讀
    <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)(3)

    在前面的文章主要介紹了hash表及其鏈表的結(jié)構(gòu),同時(shí)說(shuō)明了如何讀取表項(xiàng)。那表項(xiàng)是如何寫入的了?前期的文章中有少量的提及,這里單獨(dú)寫一篇,介紹兩種常見(jiàn)的方案。
    的頭像 發(fā)表于 09-07 17:02 ?1018次閱讀
    <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>(3)