国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

探究一種新的可配置處理器的異構多核線程級動態調度模型

電子工程師 ? 來源:中國集成電路 ? 作者:胡泊 付宇卓 ? 2021-04-27 18:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文針對基于可配置處理器的異構多核結構,提出一種新的線程級動態調度模型。此類異構多核系統中每個核分別針對某一應用做指令集擴展,調度器通過線程、處理器核以及指令集間的映射關系,動態調度線程至適合的處理器核,從而在沒有大幅增加芯片面積的前提下,達到與每個核都

1.概述

多核處理器從結構上可以分為同構多核和異構多核兩類。同構多核使用多個相同的處理核,通過并行處理提高系統性能;異構多核使用多個不同的處理核,增加并行性的同時還可針對特定應用做硬件加速,因此具有更好的加速比。不過,由于異構多核的核間指令集存在差異,動態調度較難實現。

本文針對基于可配置處理器的異構多核結構,提出一種新的線程級動態調度模型。此類異構多核系統中每個核分別針對某一應用做指令集擴展,調度器通過線程、處理器核以及指令集間的映射關系,動態調度線程至適合的處理器核,從而在沒有大幅增加芯片面積的前提下,達到與每個核都具有全擴展指令集相近似的加速比,此外該模型還可以有效減少編程模型的復雜度。

2.新模型的數學描述

2.1 現有異構多核分析

同構多核核間無差異,因此動態調度容易實現,而異構多核動態調度可行與否取決于指令集結構設計?,F有異構多核指令集結構設計大致可分為三類:

● 指令集完全不同

此類設計中,設計者選擇不同功能導向的處理器核組成異構多核系統,每一種核針對某一類處理都具有較強功能,核之間的指令集存在巨大差異,因此動態調度在此類設計中無法實現,只能通過靜態調度的方式完成任務指派[3]。

● 指令集完全相同

此類設計中,設計者選取具有相同指令集但硬件配置上有所不同的處理器核,組成異構多核系統[2]。

● 指令集部分相同

此類設計中,處理核心是一組可配置處理器,所有的處理核心具有一個公共的指令集,每個核心都可以根據應用增加一些擴展指令,以增強對應用某一方面的處理能力[4]。

2.2. 新模型的數學描述

本文提出的調度模型即針對基于可配置處理器的異構多核。該模型成立基于以下假設,每個核的指令集配置完成于芯片設計階段,芯片一旦生產,任意一個核的指令集配置都不可修改。實際上,動態可配置指令集對芯片面積及功耗都會帶來巨大消耗,因此現在市場上絕大部分可配置處理器都符合上述假設。為描述簡單起見,下文中一個處理器核被稱為core。

首先定義模型中使用的三個集合。

集合 C= {Xi|Xi是系統中某個core}

集合 I={Yi|Yi是系統中某種指令集}

集合 T={Zi|Zi是系統中某個線程}

對于上述集合,存在映射關系

f :C→∪Ii,Ii.I且Ii≠φ,即任意一個core必然存在一個I的非空子集Im與之對應,其實際意義表示該core可以運行集合Im所包含的指令。根據模型的成立條件,core的指令集在系統運行時不可修改,因此不同core對應的Im可能相同,但是每個core僅對應一個Im,故f是單射,即XIi∈C,Im.I,且Im ≠φ,f(Xi)=Im (式1)類似的。

還存在映射關系g:T→∪Ii,Ii.I且Ii≠φ,即任意一個線程必然存在一個I的非空子集In與之對應,其實際意義表示該線程必須運行在具有指令集In 的處理器上。任意一個時刻每個線程僅有一個In與之對應,此外不同的線程對應的In可能相同,故g也是單射,即Zi∈T,In.I,且In≠φ,g(Zi)=In (式2)根據上述公式,對任意的Xi,可以得到一個Im,任意的Zi,可以得到一個In,則公式(3)成立。

這是模型中的調度函數,當線程所需指令集是core指令集的子集,match(Im,In)值為1,表示線程Zi可以運行在處理器核Xi上。

3. 模型實現

上述模型可以有多種實現方式,本文參考位圖的思想完成其中一種實現。

3.1. 三個集合的確定

考慮常用多核規模,32 種指令集已可滿足指令集種類數量要求,因此該實現將無符號二進制32位整數的每一位對應一種指令集,其最低有效位為20,記為ISA1,最高有效位為231,記為ISA32,若可以運行指令集ISAm,則該無符號整數的第m位為1,故集合I在基于位圖的實現中定義為I={ISAm無符號整數第m-1位為1,1≤m≤32}。

任意I中幾個元素,對其依次做或運算(OR)得到一個新整數,該整數即可表示由這幾個元素構成的I的子集。系統中所有的core具有公共指令集,將此指令集記為ISA1。

系統中每個core具有一個唯一編號,因此集合C= {0, 1, ……, n.1},n為系統中core的數量。

此外,根據線程的定義,不同的線程不能具有相同的線程句柄,因此T={所有線程句柄}。

3.2. 三個公式的實現

定義一個二維的無符號整數數組cpu_isa_map,數組每行第一個元素為core的編號,第二個元素為I的一個非空子集,表示該core可以運行的所有指令集,最后一行用于循環結束,第一個元素為無窮大(0xFFFFFFFF),第二個元素為空集。以core的編號對該數組遍歷查詢即可實現公式1。圖1為該數組的一個例子。

POSIX線程標準中,每個線程具有pthread_attr_t結構體類型的屬性參數,為了兼容POSIX標準,擴展該結構體,添加一個無符號整數變量runnable_isa,表示該線程可以運行的指令集集合。創建線程時需要顯示設置runnable_isa,如果沒有設置,該變量默認值為公共指令集ISA1,這樣就實現了公式2。

對于公式3,首先根據調度器當前運行的core編號查詢cpu_isa_map獲得core支持的指令集core_isa,然后遍歷線程調度器的就緒線程隊列,將每個線程的runnable_isa屬性與core_isa做與操作(AND),若結果不為0且runnable小于等于core_isa,則說明該core的指令集配置滿足線程所需的運行要求。

即match(Im,In)為1,線程可以被運行,如果所有線程均無法運行在該核上,則返回空指針。圖2為此算法實現,其中HEAD(state)為獲得就緒線程隊列的頭指針,該隊列尾指針的next指針為空指針。至此,模型已經全部實現完畢。

4. 實驗結果

本文使用基于Xtensa處理器組成的異構多核系統,以Motion-JPEG作為測試程序對該模型進行實驗分析。

4.1. 實驗平臺簡介

Xtensa處理器是Tensilica公司推出的一種可配置處理器,該處理器除了具有一組固定的指令集之外,還可以通過TIE功能擴展指令集以加速程序運行。Tensilica公司提供了該處理器基于SystemC的仿真模型。本文的實驗平臺是由3個Xtensa處理器仿真模型組成的異構多核系統,分別記為core0,core1,core2。

本文節選自:中國集成電路

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    20250

    瀏覽量

    252192
  • 仿真模型
    +關注

    關注

    1

    文章

    31

    瀏覽量

    12816
  • 多核處理器
    +關注

    關注

    0

    文章

    110

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【瑞薩FPB-RA6E2試用】【瑞薩FPB-RA6E2】RTOS(Real-Time Operating System,實時操作系統)《線程》個人理解及項目實現

    獨立的執行流,擁有自己的棧、優先、入口函數,由內核調度管理 調度(Scheduler) 決定哪個
    發表于 01-14 11:50

    解析Linux的進程、線程和協程

    和系統資源。線程的引入使得多核處理器得以充分利用,因為多線程程序可以更有效地分配和管理多核心的計算資源。
    發表于 12-22 11:00

    嵌入式基礎知識-系統調度

    調度,有許多相似之處。 1、進程的三狀態 執行態(Run):進程占用CPU資源,對于單核處理器,任時刻只能有個進行處于執行態。 就
    發表于 12-16 08:15

    如何配置處理器休眠模式?

    如何配置處理器休眠模式
    發表于 12-05 07:28

    文了解Mojo編程語言

    Mojo 是一種由 Modular AI 公司開發的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結合,特別適合人工智能(AI)、高性能計算(HPC)和系統編程場景。以下是關于
    發表于 11-07 05:59

    低優先線程無法調度怎么解決?

    1,設置了3,5,6,8幾個優先,設備在現場正常運行了年多后,顯示、前端、后端這3個低優先線程異常了,表現為屏幕不動,前端采集數據沒有變化等,其他高優先
    發表于 09-25 07:33

    rtth studio中nano 如何創建動態線程?

    有沒有大佬,可以說下為什么靜態線程可以正常使用,動態線程怎么也使用不了。 具體需要什么配置才能使用動態
    發表于 09-11 06:01

    【HZ-T536開發板免費體驗】—— linux創建線程

    的執行任務成為單線程。多線程是程序中包含多個執行流,在個程序中可以同時運行多個不同的線程來執行不同的任務。 多線程提高了CPU的使用鹵率。
    發表于 09-01 21:31

    rtt studio中nano 如何創建動態線程

    有沒有大佬,可以說下為什么靜態線程可以正常使用,動態線程怎么也使用不了。 具體需要什么配置才能使用動態
    發表于 08-22 06:19

    【老法師】多核異構處理器中M核程序的啟動、編寫和仿真

    文章,小編就將以飛凌嵌入式的OKMX8MP-C開發板為例,為大家介紹多核異構處理器M核程序的啟動配置、程序編寫和實時仿真的過程。
    的頭像 發表于 08-13 09:05 ?3985次閱讀
    【老法師】<b class='flag-5'>多核</b><b class='flag-5'>異構</b><b class='flag-5'>處理器</b>中M核程序的啟動、編寫和仿真

    商湯大裝置發布基于DeepLink的異構混合調度方案

    調度復雜、跨域訓練穩定性不足等行業挑戰,全面提升異構集群的協同效率與運行可靠性,加速國產AI算力從“可用”邁向“好用”,為大模型訓練提供強大而高效的支撐能力。
    的頭像 發表于 08-05 10:01 ?1097次閱讀

    一種集成FPGA和DSP芯粒的異構系統封裝

    將多個異構芯粒集成在起進行封裝是一種具有廣闊前景且成本效益高的策略,它能夠構建出既靈活又可擴展的系統,并且能有效加速多樣化的工作負載。
    的頭像 發表于 07-03 09:23 ?1995次閱讀
    <b class='flag-5'>一種</b>集成FPGA和DSP芯粒的<b class='flag-5'>異構</b>系統<b class='flag-5'>級</b>封裝

    深度剖析 RT-Thread 線程調度流程

    RT-Thread調度線程的主要流程分如下:rtthread_startup:RTT的啟動函數,主要負責板驅動,調度
    的頭像 發表于 06-25 18:24 ?1766次閱讀
    深度剖析 RT-Thread <b class='flag-5'>線程</b><b class='flag-5'>調度</b>流程

    米爾瑞芯微多核異構低功耗RK3506核心板重磅發布

    近日,米爾電子發布MYC-YR3506核心板和開發板,基于國產新一代入門級工業處理器瑞芯微RK3506,這款芯片采用三核Cortex-A7+單核Cortex-M0多核異構設計,不僅擁有
    發表于 05-16 17:20

    Nordic新代旗艦芯片nRF54H20深度解析

    異構架構??的芯片集成了: ??雙Cortex-M33內核??(主頻320MHz,性能達nRF5340的2倍) ??RISC-V協處理器集群??(專為實時任務優化) ??超大存儲配置??:2MB
    發表于 04-26 23:25