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

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

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

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

什么是指令調(diào)度(下)

jf_78858299 ? 來源:姜海波 畢昇編譯 ? 作者:姜海波 畢昇編譯 ? 2023-02-02 09:36 ? 次閱讀

指令調(diào)度的問題與約束

指令調(diào)度受到多方面的約束,如數(shù)據(jù)依賴約束、功能部件約束、寄存器約束等^[3]^,在這些約束下,尋找到最優(yōu)解,降低指令流水間的stall,就是指令調(diào)度的終極目標。

指令流水間的stall主要由數(shù)據(jù)型冒險、結構性冒險、控制型冒險導致。

  • 數(shù)據(jù)型冒險:當前指令的執(zhí)行依賴與上一條指令執(zhí)行的結果。數(shù)據(jù)型冒險共有三種:寫后讀(RAW)、讀后寫(WAR)、寫后寫(WAW)。數(shù)據(jù)冒險可能產(chǎn)生數(shù)據(jù)流依賴。
  • 結構型冒險:多條指令同時訪問一個硬件單元的時候,由于缺少相應的資源,導致結構型冒險。
  • 控制型冒險:存在分支跳轉(zhuǎn),無法預測下一條要執(zhí)行的指令,導致其產(chǎn)生的控制型冒險。

編譯器解決上述冒險的方法就是通過插入 NOP 指令,增加流水間的stall來化解冒險。

下面簡單介紹一下三種數(shù)據(jù)型冒險(即數(shù)據(jù)依賴):

  1. 寫后讀(RAW):一條指令讀取前一條指令的寫入結果。寫后讀是最常見的一種數(shù)據(jù)依賴類型,這種依賴被稱為真數(shù)據(jù)依賴(true dependence)。
    x = 1;
    y = x;
    
  2. 讀后寫(WAR):一條指令寫入數(shù)據(jù)到前一條指令的操作數(shù)。這種依賴被稱為反依賴或反相關(anti dependence)。
    y = x;
    x = 1;
    
  3. 寫后寫(WAW):兩條指令寫入同一個目標。這種依賴被稱為輸出依賴(output dependence)。
    x = 1;
    x = 2;
    

指令調(diào)度算法之表調(diào)度(List Scheduling)

表調(diào)度是一種貪心+啟發(fā)式方法,用以調(diào)度基本塊中的各個指令操作,是基本塊中指令調(diào)度的最常見方法。基于基本塊的指令調(diào)度不需要考慮程序的控制流,主要考慮數(shù)據(jù)依賴、硬件資源等信息

表調(diào)度的基本思想:維護一個用來存儲已經(jīng)準備執(zhí)行的指令的ready列表和一個正在執(zhí)行指令的active列表,ready列表的構建主要基于數(shù)據(jù)依賴約束和硬件資源信息;根據(jù)調(diào)度算法以周期為單位來執(zhí)行具體的指令調(diào)度,包括從列表中選擇及調(diào)度指令,更新列表信息。

基本的表調(diào)度算法大致分為以下三步:

  1. 根據(jù)指令間依賴,建立依賴關系圖。
  2. 根據(jù)當前指令節(jié)點到根節(jié)點的長度以及指令的latency,計算每個指令的優(yōu)先級。
  3. 不斷選擇一個指令,并調(diào)度它,
    • 使用兩個隊列維護ready的指令和正在執(zhí)行的active的指令;
    • 在每個周期:選擇一個滿足條件的ready的指令并調(diào)度它,更新ready隊列;檢查active的指令是否執(zhí)行完畢,更新active列表。

指令調(diào)度案例^[4]^

本案例選自卡內(nèi)基梅隆大學(Carnegie Mellon University)的Compiler Design課程。

假設當前CPU有兩個計算單元(即每個周期可以執(zhí)行兩條指令);加法指令的latency為 2 cycles,其他指令為 1 cycle。

  1. 根據(jù)數(shù)據(jù)依賴關系構建出依賴關系圖。
    圖片
  2. 計算指令節(jié)點優(yōu)先級
    優(yōu)先級計算公式如下:
    其中,表示當前指令節(jié)點,表示的子節(jié)點,表示 "true dependency" ,表示 "anti-dependency" 。
    圖片
    其中 I10 為葉節(jié)點,優(yōu)先級為其latency,故結果為1;I4 為非葉節(jié)點,優(yōu)先級為當前節(jié)點latency(I4 為加法指令,latency為2)+ 子節(jié)點的優(yōu)先級,故結果為3。本例中無反依賴(anti-dependency)情形。
  3. 執(zhí)行調(diào)度
    圖片
    在實際執(zhí)行調(diào)度時,對于同等優(yōu)先級的指令,由于具體調(diào)度方案的不同,會出現(xiàn)不同的情況,例如本例中出現(xiàn)的場景,可以通過添加其他度量標準進一步優(yōu)化優(yōu)先級計算方案。盡管表調(diào)度方法不能保證得到最優(yōu)調(diào)度結果,但它是接近最優(yōu)解的。

本文只是簡單介紹了最基本的表調(diào)度方法,在實際應用中,存在各種基于該方法的改進方案。關于LLVM編譯器中的表調(diào)度算法,可以先自行閱讀其源碼,更多相關介紹,敬請期待。

結語

本文簡單介紹了指令調(diào)度的基本概念,指令調(diào)度的原因與影響以及基本的指令調(diào)度算法。

指令調(diào)度作為NP完全問題目前依舊尚未有一個完美的解決方案,對指令調(diào)度算法的探索與優(yōu)化尚有很大的發(fā)展空間。

LLVM之父Chris Lattner認為“編譯器的黃金時代”已經(jīng)降臨^[5]^。隨著計算機架構的復興,未來的N年里將是每一位編譯器工程師大顯身手的時代。

參考

  1. Keith D. Cooper, Linda Torczon. Engineering a Compiler (Second Edition).
  2. https://zhuanlan.zhihu.com/p/360364235
  3. Andrew W.Apple, Maia Ginsburg. Modern Compiler Implementation in C.
  4. https://www.cs.cmu.edu/afs/cs/academic/class/15745-s19/www/lectures/L18-Instruction-Scheduling-pre-class.pdf
  5. https://zhuanlan.zhihu.com/p/502730940
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19286

    瀏覽量

    229854
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10863

    瀏覽量

    211784
  • 指令調(diào)度器

    關注

    0

    文章

    4

    瀏覽量

    1506
收藏 人收藏

    評論

    相關推薦

    FreeRTOS任務調(diào)度器的三種調(diào)度算法講解(

    配置如下時,調(diào)度算法就會變成不帶時間片的搶占式調(diào)度
    的頭像 發(fā)表于 03-21 13:46 ?2853次閱讀
    FreeRTOS任務<b class='flag-5'>調(diào)度</b>器的三種<b class='flag-5'>調(diào)度</b>算法講解(<b class='flag-5'>下</b>)

    應急通信調(diào)度指揮系統(tǒng)的原理

      應急通信調(diào)度指揮系統(tǒng)的原理  從技術層面,我們提到的應急通信調(diào)度指揮系統(tǒng)原理,如圖所示,主要包括四個方面:信息采集、信息傳遞、信息處理以及指令下達和執(zhí)行 。其中,虛框內(nèi)表示急需  1.信息采集
    發(fā)表于 12-29 17:21

    編譯器優(yōu)化的靜態(tài)調(diào)度介紹

    量與指令調(diào)度相關性更強,下面簡單介紹一這兩種模式。  流水線  將指令執(zhí)行過程分成多個階段,每個階段使用不同的硬件資源,從而使得多條指令
    發(fā)表于 03-17 17:07

    基于ARM Cortex-M3的μCOS-II任務調(diào)度硬件指令實現(xiàn)

    本文首先多UC/OS-II的任務調(diào)度算法做了詳細的分析, 然后介紹了基于基于ARM Cortex-M3的COS-II的任務調(diào)度硬件指令實現(xiàn)
    發(fā)表于 03-25 15:13 ?270次下載
    基于ARM Cortex-M3的μCOS-II任務<b class='flag-5'>調(diào)度</b>硬件<b class='flag-5'>指令</b>實現(xiàn)

    同時多線程處理器的指令調(diào)度器設計

    同時多線程處理器的指令調(diào)度器設計_李樂
    發(fā)表于 01-08 14:55 ?0次下載

    云環(huán)境基于動態(tài)蟻群遺傳算法的調(diào)度方法研究_尚志會

    云環(huán)境基于動態(tài)蟻群遺傳算法的調(diào)度方法研究_尚志會
    發(fā)表于 01-30 23:17 ?0次下載

    柔性負荷調(diào)度,發(fā)電調(diào)度的補充

    的負荷,包含具備需求彈性的可調(diào)節(jié)負荷或可轉(zhuǎn)移負荷,具備雙向調(diào)節(jié)能力的電動汽車、儲能、蓄能,以及分布式電源、微網(wǎng)等。傳統(tǒng)發(fā)電調(diào)度中,機組需按照調(diào)控指令完全響應,而柔性負荷調(diào)度在滿足電網(wǎng)調(diào)度
    發(fā)表于 05-24 14:44 ?7130次閱讀
    柔性負荷<b class='flag-5'>調(diào)度</b>,發(fā)電<b class='flag-5'>調(diào)度</b>的補充

    Storm環(huán)境基于權重的任務調(diào)度算法

    問題,提出一種Storm環(huán)境基于權重的任務調(diào)度算法(TSAW-Storm)。該算法首先根據(jù)各任務的CPU資源占用情況以及任務間的數(shù)據(jù)流大小,分別確定拓撲的點權和邊權;并利用最大化邊權增益的思想,逐步構建起各工作節(jié)點中承載的任務集合,在保證集群負載均
    發(fā)表于 04-17 10:52 ?0次下載
    Storm環(huán)境<b class='flag-5'>下</b>基于權重的任務<b class='flag-5'>調(diào)度</b>算法

    如何在云計算環(huán)境進行資源調(diào)度算法的研究

    云計算作為一種新興的商業(yè)計算模型被提出以來,經(jīng)過學術界與產(chǎn)業(yè)界的不斷推進,云計算正逐漸從理論走向?qū)嵺`,國家也投入巨額人力物力來促進“云計算”在我國落地。基于云環(huán)境的資源調(diào)度是一個重要研究方向,云
    發(fā)表于 01-02 15:18 ?4次下載
    如何在云計算環(huán)境<b class='flag-5'>下</b>進行資源<b class='flag-5'>調(diào)度</b>算法的研究

    機場智能調(diào)度系統(tǒng)的功能及應用方案

    根據(jù)機場地勤運作特點和業(yè)務需求,易華錄提供了一體化端到端的機場無線地勤調(diào)度解決方案,為機場運作提供高效、安全、可靠并且高性價比的特有的機場調(diào)度系統(tǒng),統(tǒng)一承載語音通話、集群語音、工作流指令、信息發(fā)布
    發(fā)表于 11-16 10:49 ?3183次閱讀

    HLS優(yōu)化設計的最關鍵指令

    Unroll 指令在 for 循環(huán)的代碼區(qū)域進行優(yōu)化,這個指令不包含流水線執(zhí)行的概念,單純地將循環(huán)體展開使用更多地硬件資源實現(xiàn),保證并行循環(huán)體在調(diào)度地過程中是彼此獨立的。
    的頭像 發(fā)表于 01-14 09:41 ?2602次閱讀

    云環(huán)境HEDSM工作流調(diào)度策略綜述

    針對傳統(tǒng)算法處理云環(huán)境中任務調(diào)度時出現(xiàn)的尋優(yōu)性能差以及尋優(yōu)方案不能滿足用戶多樣性需求的問題,在考慮任務完成時間、完成成本以及資源閑置率3個優(yōu)化目標的情況,文中通過模擬啟發(fā)弌算法調(diào)度過程(初始化
    發(fā)表于 05-29 15:39 ?6次下載

    異構環(huán)境的多DAG任務調(diào)度算法綜述

    異構環(huán)境的多DAG任務調(diào)度算法綜述
    發(fā)表于 06-21 15:15 ?13次下載

    什么是指令調(diào)度(上)

    指令調(diào)度是指對程序塊或過程中的操作進行排序以有效利用處理器資源的任務^[1]^。指令調(diào)度的目的就是通過重排指令,提高
    的頭像 發(fā)表于 02-02 09:36 ?2952次閱讀
    什么是<b class='flag-5'>指令</b><b class='flag-5'>調(diào)度</b>(上)

    基于優(yōu)先級調(diào)度的嵌入式實時操作系統(tǒng)內(nèi)核詳解()

    基于優(yōu)先級調(diào)度的嵌入式實時操作系統(tǒng)內(nèi)核詳解()
    的頭像 發(fā)表于 09-06 12:46 ?893次閱讀
    基于優(yōu)先級<b class='flag-5'>調(diào)度</b>的嵌入式實時操作系統(tǒng)內(nèi)核詳解(<b class='flag-5'>下</b>)
    主站蜘蛛池模板: 免费国产综合视频在线看| 欧美黑人粗暴另类多交| 中文字幕一区二区三区在线播放| 亚洲欧美色中文字幕| 女人精aaaa片一级毛片女女| 午夜免费毛片| 激情欧美一区二区三区中文字幕| 国产女主播在线| 黄网观看| 最新午夜宅男| 狠狠狠色丁香婷婷综合久久88| 人人爱人人艹| 中国日韩欧美中文日韩欧美色| 噜噜噜噜噜噜色| 久久刺激视频| 亚洲人成电影在线| 成年网站在线看| 男操女免费视频| 日本理论在线| 天天色天天干天天| 26uuu另类亚洲欧美日本一| 69xxxxtube日本免费| 日本视频黄色| 天天插天天搞| 狠狠色噜噜狠狠狠狠97影音先锋| 久青草国产手机在线视频| 国产亚洲精品久久久久久久软件| 伊人久久大香线蕉综合电影| 国模爱爱| 分分精品| 免费黄色一级| 成人欧美另类人妖| 日韩色影视| 乱操视频| 四虎影视永久地址| 手机看片日韩在线| 亚洲第一黄色网| 激情福利网| 黄篇网站在线观看| 男女爱爱免费视频| 操操操干干|