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

一種消息訪存的編譯方法及相關(guān)裝置的制造方法

文檔序號(hào):9217123閱讀:209來(lái)源:國(guó)知局
一種消息訪存的編譯方法及相關(guān)裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種消息訪存的編譯方法及相關(guān)裝置。
【背景技術(shù)】
[0002]在日常的計(jì)算機(jī)運(yùn)算過(guò)程中,會(huì)經(jīng)常通過(guò)訪存指令讀取內(nèi)存中的參數(shù),而這個(gè)訪存密度是非常大的,因此,若能夠?qū)σ恍┰L存指令進(jìn)行合并,則可以減小計(jì)算機(jī)的運(yùn)算開(kāi)銷(xiāo)。
[0003]現(xiàn)有技術(shù)中有一種數(shù)據(jù)流分析的訪存合并優(yōu)化方法,具體包括以下步驟:
[0004]I)利用編譯器收集整個(gè)程序的訪存操作信息,將所得信息存入一個(gè)映射表;
[0005]2)由編譯器對(duì)程序中的所有基本塊構(gòu)造支配圖和后支配圖;
[0006]3)對(duì)程序中的所有讀操作做反向數(shù)據(jù)流分析,更新基本塊的輸入數(shù)據(jù)集和輸出數(shù)據(jù)集;
[0007]4)對(duì)程序中的所有寫(xiě)操作,進(jìn)行正向數(shù)據(jù)流分析,更新基本塊的輸入數(shù)據(jù)集和輸出數(shù)據(jù)集;
[0008]5)根據(jù)步驟3)和步驟4)所得到的基本塊的輸入數(shù)據(jù)集和輸出數(shù)據(jù)集,對(duì)每一個(gè)訪存操作,判斷該訪存操作所在基本塊的輸入數(shù)據(jù)集合中的訪存操作是否可與該訪存操作合并,并為輸入數(shù)據(jù)集中所有可以與當(dāng)前訪存操作做合并的訪存操作建立一個(gè)集合;
[0009]6)判斷用于保存可合并的訪存操作的集合是否為空,若為空,則跳轉(zhuǎn)到步驟10),否則,執(zhí)行下一步;
[0010]7)對(duì)步驟5)所得集合中的所有元素,分別計(jì)算各個(gè)元素對(duì)應(yīng)的訪存操作與當(dāng)前訪存操作之間的合并密度;
[0011]8)從步驟7)所得到的結(jié)果中,選擇合并密度最大的訪存操作,將該訪存操作與當(dāng)前訪存操作進(jìn)行合并,生成新的訪存操作;
[0012]9)判斷所合并的訪存操作的類(lèi)型,若訪存操作為讀操作,則將訪存操作所在基本塊的讀操作替換為對(duì)臨時(shí)寄存器的讀操作,并跳轉(zhuǎn)到步驟
[0013]13),若訪存操作為寫(xiě)操作,執(zhí)行下一步;
[0014]10)訪存操作為寫(xiě)操作,將訪存操作所在基本塊的寫(xiě)操作替換為對(duì)源操作數(shù)寄存器的寫(xiě);
[0015]11)在寫(xiě)操作合并時(shí),如果兩個(gè)寫(xiě)操作的數(shù)據(jù)位置相鄰,則到步驟13);否則,執(zhí)行下一步;
[0016]12)兩個(gè)寫(xiě)操作的數(shù)據(jù)位置不相鄰,則遍歷支配圖中一個(gè)寫(xiě)操作原來(lái)所在基本塊的所有祖先節(jié)點(diǎn),尋找位于這些節(jié)點(diǎn)中的一個(gè)讀操作,使得該讀操作讀取中間間隔部分的數(shù)據(jù),如果找到該讀操作,則在合并的寫(xiě)操作之前插入指令,將中間間隔部分的數(shù)據(jù)寫(xiě)入源操作數(shù)寄存器,如果找不到這樣的讀操作,則在支配圖上該寫(xiě)操作原來(lái)所在基本塊的父節(jié)點(diǎn)對(duì)應(yīng)的基本塊處,插入這樣的讀操作;
[0017]13)轉(zhuǎn)步驟 3);
[0018]14)結(jié)束。
[0019]上述現(xiàn)有技術(shù)主要是將地址相鄰或者相近的兩個(gè)或多個(gè)訪存指令合并為一條多字節(jié)的訪存指令,并合并后的訪存指令存放在寄存器或局部存儲(chǔ)器中,原先的訪存指令會(huì)被替換為對(duì)寄存器或局部存儲(chǔ)器的直接訪問(wèn)的指令。
[0020]在上述現(xiàn)有技術(shù)中,當(dāng)所要訪問(wèn)的存儲(chǔ)數(shù)據(jù)不相鄰時(shí),需要生成新的訪存指令,增大了處理的開(kāi)銷(xiāo),而在實(shí)際應(yīng)用中,存儲(chǔ)數(shù)據(jù)不相鄰的情況經(jīng)常出現(xiàn),因此,新的訪存指令會(huì)占用較大開(kāi)銷(xiāo)。

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

[0021]本發(fā)明實(shí)施例提供了一種消息訪存的編譯方法及裝置,用于提供一種適用于在全程序中進(jìn)行大范圍消息合并的方法。
[0022]本發(fā)明實(shí)施例第一方面提供的消息訪存的編譯方法,包括:
[0023]獲取消息式內(nèi)存的訪存序列;
[0024]確定所述訪存序列中各個(gè)訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性;
[0025]根據(jù)所述節(jié)點(diǎn)屬性對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整,使得節(jié)點(diǎn)屬性相同的訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置連續(xù)。
[0026]在第一方面的第一種可能實(shí)現(xiàn)的方法中,所述訪存序列包括:
[0027]訪存操作的類(lèi)型,訪存節(jié)點(diǎn)的標(biāo)識(shí),訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性。
[0028]在第一方面的第二種可能實(shí)現(xiàn)的方法中,所述節(jié)點(diǎn)屬性包括:動(dòng)作屬性和結(jié)構(gòu)屬性。
[0029]結(jié)合第一方面的第二種可能實(shí)現(xiàn)的方法,在第三種可能實(shí)現(xiàn)的方法中,所述確定所述訪存序列中各個(gè)訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性之后,根據(jù)所述節(jié)點(diǎn)屬性對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整之前,包括:
[0030]根據(jù)所述各個(gè)訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性生成節(jié)點(diǎn)樹(shù)鏈表;
[0031]所述根據(jù)所述節(jié)點(diǎn)屬性對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整,具體包括:
[0032]根據(jù)所述節(jié)點(diǎn)樹(shù)鏈表中訪存節(jié)點(diǎn)的位置關(guān)系,對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)難
iF.0
[0033]結(jié)合第一方面的第三種可能實(shí)現(xiàn)的方法,在第四種可能實(shí)現(xiàn)的方法中,所述根據(jù)所述各個(gè)訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性生成節(jié)點(diǎn)樹(shù)鏈表,具體包括:
[0034]確定所述訪存節(jié)點(diǎn)中最上層級(jí)的結(jié)構(gòu)屬性,并以所述最上層級(jí)的結(jié)構(gòu)屬性作為所述節(jié)點(diǎn)樹(shù)鏈表的根節(jié)點(diǎn),再依次根據(jù)所述訪存節(jié)點(diǎn)的各個(gè)層級(jí)的結(jié)構(gòu)屬性確定所述訪存節(jié)點(diǎn)的鏈表路徑,生成節(jié)點(diǎn)樹(shù)鏈表。
[0035]結(jié)合第一方面的第三種可能實(shí)現(xiàn)的方法,在第五種可能實(shí)現(xiàn)的方法中,所述根據(jù)所述各個(gè)訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性生成節(jié)點(diǎn)樹(shù)鏈表,具體還包括:
[0036]以所述動(dòng)作屬性作為所述節(jié)點(diǎn)樹(shù)鏈表的根節(jié)點(diǎn),再依次根據(jù)所述訪存節(jié)點(diǎn)的各個(gè)層級(jí)的結(jié)構(gòu)屬性確定所述訪存節(jié)點(diǎn)的鏈表路徑,生成節(jié)點(diǎn)樹(shù)鏈表。
[0037]結(jié)合第一方面的第四或五種可能實(shí)現(xiàn)的方法,在第六種可能實(shí)現(xiàn)的方法中,所述根據(jù)所述各個(gè)訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性生成節(jié)點(diǎn)樹(shù)鏈表之前,還包括:
[0038]確定所述各個(gè)訪存節(jié)點(diǎn)的標(biāo)識(shí)序號(hào);
[0039]所述依次根據(jù)所述訪存節(jié)點(diǎn)的各個(gè)層級(jí)的結(jié)構(gòu)屬性確定所述訪存節(jié)點(diǎn)的鏈表路徑之后,還包括:
[0040]根據(jù)所述各個(gè)訪存節(jié)點(diǎn)的標(biāo)識(shí)序號(hào),在節(jié)點(diǎn)樹(shù)鏈表的葉子節(jié)點(diǎn)中依次排列所述各個(gè)訪存節(jié)點(diǎn)。
[0041]結(jié)合第一方面的第六種可能實(shí)現(xiàn)的方法,在第七種可能實(shí)現(xiàn)的方法中,所述根據(jù)所述節(jié)點(diǎn)屬性對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整,使得節(jié)點(diǎn)屬性相同的訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置連續(xù),具體包括:
[0042]根據(jù)所述節(jié)點(diǎn)樹(shù)鏈表中訪存節(jié)點(diǎn)的位置關(guān)系,對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整,使得節(jié)點(diǎn)屬性相同的訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置連續(xù),且同一層級(jí)的結(jié)構(gòu)屬性下,訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置根據(jù)所述標(biāo)識(shí)序號(hào)由小至大或由小至大依次排列。
[0043]在第一方面的第八種可能實(shí)現(xiàn)的方法中,所述根據(jù)所述節(jié)點(diǎn)屬性對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整,使得節(jié)點(diǎn)屬性相同的訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置連續(xù)之后,還包括:
[0044]對(duì)訪存序列中訪問(wèn)節(jié)點(diǎn)屬性相同,且存儲(chǔ)地址相鄰的訪存節(jié)點(diǎn)的訪存指令進(jìn)行合并,生成合并后的訪存指令,所述合并后的訪存指令的訪存長(zhǎng)度小于或等于所述消息式內(nèi)存的最大訪存長(zhǎng)度。
[0045]本發(fā)明實(shí)施例第二方面提供編譯裝置,包括:
[0046]獲取單元,用于獲取消息式內(nèi)存的訪存序列;
[0047]屬性確定單元,用于確定所述訪存序列中各個(gè)訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性;
[0048]調(diào)整單元,用于根據(jù)所述節(jié)點(diǎn)屬性對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整,使得節(jié)點(diǎn)屬性相同的訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置連續(xù)。
[0049]在第二方面的第一種可能實(shí)現(xiàn)的方法中,所述訪存序列包括:
[0050]訪存操作的類(lèi)型,訪存節(jié)點(diǎn)的標(biāo)識(shí),訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性。
[0051]在第二方面的第二種可能實(shí)現(xiàn)的方法中,所述節(jié)點(diǎn)屬性包括:動(dòng)作屬性和結(jié)構(gòu)屬性。
[0052]結(jié)合第二方面的第二種可能實(shí)現(xiàn)的方法,在第三種可能實(shí)現(xiàn)的方法中,所述裝置還包括:
[0053]鏈表生成單元,用于根據(jù)所述各個(gè)訪存節(jié)點(diǎn)的節(jié)點(diǎn)屬性生成節(jié)點(diǎn)樹(shù)鏈表;
[0054]所述調(diào)整單元還用于根據(jù)所述節(jié)點(diǎn)樹(shù)鏈表中訪存節(jié)點(diǎn)的位置關(guān)系,對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整。
[0055]結(jié)合第二方面的第三種可能實(shí)現(xiàn)的方法,在第四種可能實(shí)現(xiàn)的方法中,所述鏈表生成單元具體用于:
[0056]確定所述訪存節(jié)點(diǎn)中最上層級(jí)的結(jié)構(gòu)屬性,并以所述最上層級(jí)的結(jié)構(gòu)屬性作為所述節(jié)點(diǎn)樹(shù)鏈表的根節(jié)點(diǎn),再依次根據(jù)所述訪存節(jié)點(diǎn)的各個(gè)層級(jí)的結(jié)構(gòu)屬性確定所述訪存節(jié)點(diǎn)的鏈表路徑,生成節(jié)點(diǎn)樹(shù)鏈表。
[0057]結(jié)合第二方面的第三種可能實(shí)現(xiàn)的方法,在第五種可能實(shí)現(xiàn)的方法中,所述鏈表生成單元具體還用于:
[0058]以所述動(dòng)作屬性作為所述節(jié)點(diǎn)樹(shù)鏈表的根節(jié)點(diǎn),再依次根據(jù)所述訪存節(jié)點(diǎn)的各個(gè)層級(jí)的結(jié)構(gòu)屬性確定所述訪存節(jié)點(diǎn)的鏈表路徑,生成節(jié)點(diǎn)樹(shù)鏈表。
[0059]結(jié)合第二方面的第四或五種可能實(shí)現(xiàn)的方法,在第六種可能實(shí)現(xiàn)的方法中,所述鏈表生成單元具體還用于:確定所述各個(gè)訪存節(jié)點(diǎn)的標(biāo)識(shí)序號(hào);根據(jù)所述各個(gè)訪存節(jié)點(diǎn)的標(biāo)識(shí)序號(hào),在節(jié)點(diǎn)樹(shù)鏈表的葉子節(jié)點(diǎn)中依次排列所述各個(gè)訪存節(jié)點(diǎn)。
[0060]結(jié)合第二方面的第六種可能實(shí)現(xiàn)的方法,在第七種可能實(shí)現(xiàn)的方法中,根據(jù)所述節(jié)點(diǎn)樹(shù)鏈表中訪存節(jié)點(diǎn)的位置關(guān)系,對(duì)訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置進(jìn)行調(diào)整,使得節(jié)點(diǎn)屬性相同的訪存節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)位置連續(xù),且同一層級(jí)的
當(dāng)前第1頁(yè)1 2 3 4 5 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
黑山县| 化隆| 敖汉旗| 洪洞县| 康平县| 八宿县| 尤溪县| 增城市| 阿克苏市| 安图县| 阳高县| 东莞市| 南澳县| 沙湾县| 淅川县| 长治市| 信丰县| 固阳县| 黄骅市| 永安市| 松阳县| 正阳县| 壤塘县| 瓮安县| 平南县| 广州市| 晋城| 武功县| 江陵县| 大港区| 桃园市| 湘阴县| 新绛县| 五台县| 高邮市| 烟台市| 哈尔滨市| 石楼县| 马尔康县| 于田县| 毕节市|