在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

應對分支預測有哪些優化措施

麥辣雞腿堡 ? 來源:軒哥談芯 ? 作者:義軒 ? 2023-11-29 17:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

應對分支預測有哪些優化措施

下面再來看一下分支預測,這也是 ChatGPT 給出的一個簡易答案

// 不利于流水線的循環結構
for (int i = 0; i < N; ++i) {
    if (condition) {
        // 循環體
    }
}


// 更有利于流水線的循環結構
if (condition) {
    for (int i = 0; i < N; ++i) {
        // 循環體
    }
}

上面的案例就是說明,我們應該在循還外進行條件判斷,這樣即便是預測失敗概率 10%,也只有 10%的回滾情況,但是如果放到循環體內部,那么這個 10%的回滾操作將被執行 N 次。

除了把判斷語句從循環體中挪出來,還有一些小的技巧供大家參考一下。

合并條件,盡可能減少分支預測失敗時對效率的影響

優化前:

if(case1){    if( case2 )    {        do();    }}

優化后:

if( case1 && case2 ){    do();}

優化前:

if( case1 == 0 && case2 == 0 && case3 == 0 ){    do();}

優化后:

if( ( case1 | case2 | case3 ) == 0 ){    do();}

跳轉避免分支預測

if else改寫成switch形式(switch使用的指針 list 進行跳轉的指令,直接跳轉到對應分支)。這樣就相當于將多個函數使用函數指針的形式存儲到數組中,然后通過 case 查表,直接進行調用。

直接運算,避免判斷

先說明一些基本位運算知識:

|x| > > 31 = 0     // 非負數右移31為一定為0
~(|x| > > 31) = -1 // 0取反為-1


-|x| > > 31 = -1   // 負數右移31為一定為0xffff = -1
~(-|x| > > 31) = 0 // -1取反為0


-1 = 0xffff
-1 & x = x        // 以-1為mask和任何數求與,值不變

如對于

if(value < 0 ) value = 0

可改成

value &= ~(value > > 31 )

再比如:

if (data[c] >= 128){    sum += data[c];}

可以優化為:

int t = (data[c] - 128) >> 31; // 非負數右移 310,負數右移則為 -1sum += ~t & data[c];     // 這里利用 0 和 -1,正好等同于條件,大于 128 忽略,小于 128
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19878

    瀏覽量

    234794
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17954

    瀏覽量

    365557
  • 預測
    +關注

    關注

    0

    文章

    39

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CPU分支預測對程序的影響

    分支預測的英文名字是“Branch Prediction”,如果大家在Google上搜索這個關鍵字,可以看到關于分支預測的很多內容。不過,要搞清楚
    發表于 09-23 14:11 ?1355次閱讀

    如何統計蜂鳥E203的分支預測率?

    想請問大家如何統計蜂鳥E203的分支預測率,我嘗試在exu_commit模塊里統計,但是發現預測率都有寫問題,想請教以下大家
    發表于 06-10 07:05

    嵌入式處理器動態分支預測機制研究與設計

    嵌入式處理器動態分支預測機制研究與設計針對嵌入式處理器的特定應用環境,通過對傳統神經網絡算法的改進,結合定制的分支目標緩沖,提出一種復合式動態分支
    發表于 10-06 09:53

    如何應對歐盟玩具安全新指令的措施

    歐盟玩具安全新指令的措施實施后,相關企業應何應對呢?北測檢測作為第三方權威檢測機構,建議相關企業積極應對歐盟玩具安全新指令的措施,盡量做到以下幾點:  1.加快了解國際玩具標準體系。玩
    發表于 01-18 11:22

    優化技巧:提前if判斷幫助CPU分支預測

    摘要: 在stackoverflow上有一個非常有名的問題:為什么處理有序數組要比非有序數組快?,可見分支預測對代碼運行效率非常大的影響。要提高代碼執行效率,一個重要的原則就是盡量避免CPU把
    發表于 06-13 16:27

    ADC輸出雜散的成因是什么?哪些優化措施

    Giga ADC 是 TI 推出的采樣率大于 1GHz 的數據轉換產品系列,主要應用于微波通信、衛星通信以及儀器儀表。本文介紹了 Giga ADC 的主要架構以及 ADC 輸出雜散的成因分析,以及優化性能的主要措施
    發表于 04-07 06:23

    如何對分布式天線系統(DAS)進行優化

    什么是分布式天線系統?如何對分布式天線系統(DAS)進行優化
    發表于 05-24 06:03

    對高級持久性威脅(APT)什么應對措施

    高級持久性威脅(APT)的特點是什么?對高級持久性威脅(APT)什么應對措施
    發表于 05-24 06:40

    什么是內存優化那些優化措施

    什么是內存優化那些優化措施
    發表于 01-14 06:22

    安騰處理器中多級分支預測機制

    分支預測技術可消除分支指令之后損失的周期,防止流水線斷流。高比率的分支預測精確度是高性能微處理器性能的保證。本文詳細分析了安騰處理器(Ita
    發表于 08-21 12:11 ?12次下載

    示波管常見故障分析及其應對措施

    示波管常見故障分析及其應對措施
    發表于 05-05 11:12 ?9次下載

    揭秘LDO的噪音類型及應對措施

    揭秘LDO的噪音類型及應對措施
    發表于 02-09 17:05 ?7次下載

    MOS管開通過程的米勒效應及應對措施

    MOS管開通過程的米勒效應及應對措施
    的頭像 發表于 11-27 17:52 ?4016次閱讀
    MOS管開通過程的米勒效應及<b class='flag-5'>應對</b><b class='flag-5'>措施</b>

    CPU中什么是分支預測

    什么是分支預測 在超標量的流水線架構上,我們得知,CPU 在運行指令的時候,會在一個時鐘上做多個操作,也就是涉及到調用前后相關的指令,比如我們在一個簡單的判斷語句中。 if (n > 0 ) { n
    的頭像 發表于 11-29 17:22 ?1320次閱讀

    EMI(電磁干擾):原理、影響與應對措施

    EMI(電磁干擾):原理、影響與應對措施?|深圳比創達電子EMC
    的頭像 發表于 03-26 11:22 ?4218次閱讀
    EMI(電磁干擾):原理、影響與<b class='flag-5'>應對</b><b class='flag-5'>措施</b>?
    主站蜘蛛池模板: 国产亚洲高清视频 | 456性欧美欧美在线视频 | 亚洲丁香婷婷 | 99热色| 三级视频网站在线观看播放 | 澳门久久| 日本加勒比一区 | 好硬好湿好爽再深一点h视频 | 清纯漂亮小美女准备啪啪 | 免费看黄的视频网站 | 国模于子涵啪啪大胆 | 欧美aaaav免费大片 | 亚洲成人三级电影 | 亚洲理论在线 | xxxx日本老师hd | 亚洲综合视频一区 | 啪啪免费网站视频观看 | 在线免费视频网站 | 最近观看免费高清视频 | 亚洲欧美日韩一区 | 最近2018中文字幕2019高清 | 国产成人精品日本亚洲语音1 | 特级免费毛片 | 伊人久久大香线蕉综合高清 | 天堂avwww | 欧美成人26uuu欧美毛片 | 成人美女隐私免费 | 一区二区三区久久 | 国产骚b | 国产农村女人一级毛片了 | 天天做天天摸天天爽天天爱 | 国产免费播放一区二区三区 | 老师别揉我胸啊嗯上课呢视频 | 在线视频免费播放 | 种子天堂bt磁力在线资源 | 91大神精品视频 | 韩国午夜精品理论片西瓜 | 精品国产午夜久久久久九九 | 免费 在线观看 视频 | 免费一级毛片在线播放 | 一区二区三区四区在线免费观看 |