欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的并行處理方法

文檔序號:9546910閱讀:548來源:國知局
用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的并行處理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及可重構(gòu)計算領(lǐng)域,特別是涉及一種用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理 器的并行處理方法。
【背景技術(shù)】
[0002] 可重構(gòu)處理器是為了滿足信息時代人們對計算速度和計算通用性需求的重要產(chǎn) 物,它兼?zhèn)淞送ㄓ锰幚砥骱蛯S眉呻娐返膬?yōu)勢。典型的粗粒度可重構(gòu)處理器由主控制器、 主存DDR和可重構(gòu)處理單元(RPU)構(gòu)成,各個部分之間的數(shù)據(jù)傳輸通過總線實現(xiàn)。主控制 器用來運(yùn)行操作系統(tǒng),負(fù)責(zé)整個系統(tǒng)資源的調(diào)度。當(dāng)一個計算任務(wù)在可重構(gòu)處理器上運(yùn)行 時,編譯器會將任務(wù)代碼進(jìn)行軟硬件劃分。軟硬件劃分是指將程序代碼劃分成在通用處理 器上運(yùn)行的串行代碼(軟件部分)與在RPU上運(yùn)行的代碼(硬件部分)。劃分出來的串行 代碼通過普通的編譯器便可以將其編譯成可執(zhí)行代碼。而另一部分則要經(jīng)過另外的特殊的 編譯流程之后生成RPU上相應(yīng)的配置信息。RPU通常包含若干個可重構(gòu)陣列(PEA),每個陣 列包含方陣形式排列的基本處理單元(PE),每一個PE可執(zhí)行字級的算術(shù)或者邏輯操作,PE 之間可經(jīng)由route互相通信。PEA中配置信息的生成方法則是可重構(gòu)計算編譯器研究的重 點。
[0003] 針對如何高效快速的完成軟硬件劃分及生成配置信息,使得計算密集型任務(wù)在可 重構(gòu)處理器上運(yùn)行的時間大大縮短,國內(nèi)外編譯器領(lǐng)域已經(jīng)有較為成熟的流程。然而這些 編譯流程面向的可重構(gòu)處理器都是兩層異構(gòu)結(jié)構(gòu),并行語言的擴(kuò)展也相對復(fù)雜

【發(fā)明內(nèi)容】

[0004] 為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明之目的在于提供一種用于多層次異構(gòu)結(jié) 構(gòu)的可重構(gòu)處理器的并行處理方法,開發(fā)了一套用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)架構(gòu)編譯器 后端處理方案,以生成并行任務(wù)在此種架構(gòu)下運(yùn)行的配置信息。
[0005] 為達(dá)上述及其它目的,本發(fā)明提出一種用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的并 行處理方法,包括如下步驟:
[0006] 步驟一,獲取類匯編的代碼中間表示IR,并進(jìn)行指令提取
[0007] 步驟二,對提取出的指令進(jìn)行分析,根據(jù)數(shù)據(jù)流構(gòu)建指令依賴圖;
[0008] 步驟三,計算迭代間隔,該迭代間隔指單個PE重復(fù)執(zhí)行兩條相同指令之間所間隔 的時鐘周期;
[0009] 步驟四,構(gòu)建C0NFIGIR配置信息,該C0NFIGIR配置信息包含執(zhí)行配置包的可重構(gòu) 運(yùn)算陣列編號、配置包長度及各條配置信息中的操作指令;
[0010] 步驟五,獲取訪存信息;
[0011] 步驟六,對C0NFIGIR配置信息二進(jìn)制映射。
[0012] 進(jìn)一步地,于步驟一中,指令提取為分析該IR并提取出真正需要映射的指令,包 括訪存的L0AD/ST0RE,以及在高級語言源代碼中的各類算術(shù)運(yùn)算、邏輯運(yùn)算。
[0013] 進(jìn)一步地,于步驟三中,所述迭代間隔指單個PE重復(fù)執(zhí)行兩條相同指令之間所間 隔的時鐘周期,所述迭代間隔越小表征著代碼的并行度越高。
[0014] 進(jìn)一步地,該迭代間隔的計算不僅要考慮代碼間的數(shù)據(jù)依賴,還要考慮硬件架構(gòu) 中基本運(yùn)算單元的數(shù)量。
[0015] 進(jìn)一步地,于步驟四中,每條配置信息包含至少8個數(shù)據(jù)域,其中INPUT1、INPUT2 和OUTPUT分別儲存兩個輸入操作數(shù)和輸出操作數(shù);OPCODE表征運(yùn)算種類,為加減乘等算術(shù) 運(yùn)算或邏輯運(yùn)算和訪存運(yùn)算;ITERATION域儲存迭代次數(shù),剩下的三個ITERATION域儲存操 作數(shù)在每次迭代時在共享存儲器中的地址增量。
[0016] 進(jìn)一步地,如果涉及到選擇、移位操作,數(shù)據(jù)域進(jìn)行相應(yīng)擴(kuò)展。
[0017] 進(jìn)一步地,所述C0NFIGIR配置信息中每條配置信息在構(gòu)建時,不會填入所有的信 息,其中每個操作數(shù)的初始地址信息為缺省值。
[0018] 進(jìn)一步地,于步驟五中,引入空函數(shù)的方法,將地址從IR外部獲取后,于IR中添加 一個空函數(shù),以函數(shù)參數(shù)傳遞的方式將地址信息讀入到IR中。
[0019] 進(jìn)一步地,訪存信息的獲取還包括迭代增量的計算。
[0020] 進(jìn)一步地,于步驟六中,在所述C0NFIGIR配置信息構(gòu)建完畢后,調(diào)用相關(guān)的規(guī)則 將其翻譯成二進(jìn)制機(jī)器代碼。
[0021] 與現(xiàn)有技術(shù)相比,本發(fā)明一種用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的并行處理方 法實現(xiàn)了面向一種面向的三層異構(gòu)可重構(gòu)處理器架構(gòu),并開發(fā)了一套用于多層次異構(gòu)結(jié)構(gòu) 的可重構(gòu)架構(gòu)編譯器后端處理方案,以生成并行任務(wù)在此種架構(gòu)下運(yùn)行的配置信息。
【附圖說明】
[0022] 圖1為本發(fā)明所應(yīng)用之用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的架構(gòu)示意圖;
[0023] 圖2為本發(fā)明一種用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的并行處理方法的步驟 流程圖;
[0024] 圖3為本發(fā)明較佳實施例中C0NFIGIR中每條指令的基本字段結(jié)構(gòu)圖;
[0025] 圖4為本發(fā)明較佳實施例中原始的C程序經(jīng)過前端處理后所加的并行標(biāo)記示例以 及生成的中間代碼表示示例圖。
【具體實施方式】
[0026] 以下通過特定的具體實例并結(jié)合【附圖說明】本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可 由本說明書所揭示的內(nèi)容輕易地了解本發(fā)明的其它優(yōu)點與功效。本發(fā)明亦可通過其它不同 的具體實例加以施行或應(yīng)用,本說明書中的各項細(xì)節(jié)亦可基于不同觀點與應(yīng)用,在不背離 本發(fā)明的精神下進(jìn)行各種修飾與變更。
[0027] 圖1為本發(fā)明所應(yīng)用之多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的架構(gòu)示意圖。如圖1 所示,本發(fā)明所應(yīng)用之用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器,包括:一個ARMll核10 (主控 制器)、主存DDR20及多個RPU處理單元30,各個模塊之間通過AHB總線進(jìn)行通信,一個獨 立的RPU處理單元30包含1個負(fù)責(zé)搬運(yùn)配置包的ARM7核301 (協(xié)控制器),4個共享內(nèi)存 (shared memory,SM) SM1-SM4 和 4 個可重構(gòu)運(yùn)算陣列(Processing Element Array, PEA) PEA1-PEA4,每個PEA以方陣形式排列若干基本運(yùn)算單元(PE),在本發(fā)明較佳實施例中為16 個,各個PE之間可以按照一定的路由關(guān)系進(jìn)行通信。需要注意的是,主控制器ARMll核10、 協(xié)控制器ARM7核301和可重構(gòu)運(yùn)算陣列PEA三者的內(nèi)存空間都是獨立的,不能直接進(jìn)行相 互訪問。主控制器與協(xié)控制器之間、主控制器與PEA之間以及協(xié)控制器與PEA之間的數(shù)據(jù) 傳遞都是通過DMA (直接內(nèi)存存?。﹣硗瓿傻模@三部分模塊共同組成了一個三層次的可重 構(gòu)異構(gòu)架構(gòu),每當(dāng)處理器接到一個運(yùn)算任務(wù),會首先進(jìn)行軟硬件任務(wù)劃分,劃分后的串行部 分在ARMll上執(zhí)行,可并行的部分由編譯器生成配置包,由ARM7負(fù)責(zé)搬運(yùn)到各個PEA上,配 置在PEA上流水執(zhí)行,三層結(jié)構(gòu)分工合作,并行完成一套可并行任務(wù)。
[0028] 針對運(yùn)行在這種多層異構(gòu)可重構(gòu)處理器上的并行任務(wù),已有相關(guān)嵌入到編譯器前 端的并行處理方案。這種方案基于ANSI C語言實現(xiàn),在ANSI C語言描述的任務(wù)中,對可并 行運(yùn)算部分(以函數(shù)為單元)加入了若干并行、同步標(biāo)記,指明了待運(yùn)算的數(shù)據(jù)矩陣以及這 些數(shù)據(jù)拷貝到SM中的地址等信息,同時指明執(zhí)行運(yùn)算的運(yùn)算陣列編號及SM序號,以便編譯 器后端識別。
[0029] 基于上述的硬件架構(gòu)以及編譯器前端基礎(chǔ),本發(fā)明提出了一種相對應(yīng)的編譯器后 端的并行處理方案。
[0030] 圖2為本發(fā)明一種用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的并行處理方法的步驟 流程圖。如圖2所示,本發(fā)明一種用于多層次異構(gòu)結(jié)構(gòu)的可重構(gòu)處理器的并行處理方法,應(yīng) 用于編譯器后端,包括如下步驟:
[0031] 步驟201,獲取類匯編的代碼中間表示(Intermediate Representation, IR),并進(jìn) 行指令提取。具體地說,分析IR并提取出真正需要映射的指令,包括訪存的L0AD/ST0RE,以 及在高級語言源代碼中的各類算術(shù)運(yùn)算、邏輯運(yùn)算。
[0032] 步驟202,構(gòu)建依賴圖。對提取出的指令進(jìn)行分析,根據(jù)數(shù)據(jù)流構(gòu)建指令依賴圖,這 是決定配置信息執(zhí)行順序的關(guān)鍵步驟。
[0033] 步驟203,計算迭代間隔。迭代間隔指的是單個PE重復(fù)執(zhí)行兩條相同指令之間所 間隔的時鐘周期,迭代間隔越小表征著代碼的并行度越高。迭代間隔的計算不僅要考慮代 碼間的數(shù)據(jù)依賴,還要考慮硬件架構(gòu)中的PE數(shù)量。
[0034] 步驟204,構(gòu)建C0NFIGIR(配置信息)。C0NFIGIR是本發(fā)明提出的一種存儲配置信 息的全新數(shù)據(jù)結(jié)構(gòu),也可以看作是配置信息的打包方式。它包含執(zhí)行配置包的PEA編號、配 置包長度(配置信息數(shù)量)及各條配置信息中的操作指令等信息,可以看作是最終配置信 息的可讀性表示形式。C0NFIGIR中每條配置信息的基本結(jié)構(gòu)請參考圖3,包含至少8個數(shù) 據(jù)域,INPUTl、INPUT2和OUTPUT分別儲存兩個輸入操作數(shù)和輸出操作數(shù);OPCODE表征運(yùn)算 種類,可以是加減乘等算術(shù)運(yùn)算,也可以是邏輯運(yùn)算和訪存運(yùn)算;ITERATION域儲存迭代次 數(shù);剩下的三個ITERATION域儲存操作數(shù)在每次迭代時在共享存儲器
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乾安县| 合江县| 慈溪市| 海宁市| 当涂县| 绥中县| 十堰市| 温泉县| 吉木乃县| 进贤县| 耒阳市| 资讯 | 江油市| 和田县| 大荔县| 玛沁县| 大渡口区| 黔江区| 昌黎县| 郎溪县| 车险| 五常市| 平阴县| 加查县| 安国市| 台中县| 日土县| 合山市| 云南省| 江口县| 方山县| 诏安县| 晋中市| 阿荣旗| 南部县| 加查县| 贵港市| 府谷县| 大埔县| 襄樊市| 沭阳县|