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

一種面向vliw體系結(jié)構(gòu)的多元啟發(fā)式指令選擇方法_4

文檔序號(hào):8380729閱讀:來(lái)源:國(guó)知局
關(guān)系雖然未解除,但所依賴的其他指令正在被執(zhí)行。
[0058]③各功能單元的二級(jí)指令集合
各功能單元的二級(jí)指令集合中的指令具有如下特征:所數(shù)據(jù)依賴的指令中沒有被執(zhí)行的那些指令是就緒指令或正在執(zhí)行指令或已經(jīng)執(zhí)行指令。
[0059]④各功能單元的可發(fā)射指令集合
各功能單元的可發(fā)射指令集合中的指令具有這樣的特征:數(shù)據(jù)依賴指令都已經(jīng)執(zhí)行完畢(數(shù)據(jù)依賴關(guān)系解除),正在等待相應(yīng)的功能單元空閑??砂l(fā)射就緒指令集合是就緒指令集合的一個(gè)子集。
[0060]⑤各功能單元的準(zhǔn)就緒指令集合
各功能單元的準(zhǔn)就緒指令集合中的指令具有這樣的特征:在下一拍可能是可發(fā)射指令。
[0061 ] ⑥指令間的數(shù)據(jù)依賴關(guān)系的枚舉類型
指令間的數(shù)據(jù)依賴關(guān)系類型有一般的數(shù)據(jù)讀寫數(shù)據(jù)依賴關(guān)系類型和訪存數(shù)據(jù)依賴關(guān)系類型。此外,針對(duì)流向量DSP處理器的硬件結(jié)構(gòu)和指令集,數(shù)據(jù)依賴關(guān)系類型還有標(biāo)量指令與向量指令之間SVR寄存器的訪問(wèn)依賴關(guān)系、向量指令之間的行列寄存器訪問(wèn)造成的依賴關(guān)系。每種依賴類型用一個(gè)與其他依賴類型都不相同的二進(jìn)制位表示,便于對(duì)依賴類型進(jìn)行判斷。該枚舉類型定義在指令類中。
[0062]⑦功能單元的枚舉類型
功能單元的枚舉類型包括各個(gè)物理功能單元的枚舉值,枚舉值從O開始增長(zhǎng)。該枚舉類型應(yīng)定義在處理器的體系結(jié)構(gòu)信息類中。
[0063]⑧每條指令都需要的輔助數(shù)據(jù)
每條指令都需要的輔助數(shù)據(jù)包括狀態(tài)標(biāo)識(shí):已發(fā)射標(biāo)識(shí)、已執(zhí)行標(biāo)識(shí),以及其他數(shù)據(jù):可能的功能單元代號(hào)、最終的功能單元代號(hào)、在某個(gè)時(shí)刻仍需要的執(zhí)行節(jié)拍數(shù)、下拍空閑關(guān)聯(lián)單元數(shù)、關(guān)聯(lián)單元數(shù)。
[0064]㈡頂層控制部分
頂層控制過(guò)程按如下步驟設(shè)計(jì):
(1)更新資源狀態(tài)表;
(2)從一級(jí)指令集合中獲取每個(gè)功能單元的可發(fā)射指令集合;
(3)從二級(jí)指令集合中獲取每個(gè)功能單元的準(zhǔn)就緒指令集合;
(4)為各功能單元中的各可發(fā)射指令集合中的每條指令計(jì)算所有啟發(fā)量的值;
(5)進(jìn)行帶優(yōu)先級(jí)多元啟發(fā)式就緒指令排序。
[0065]㈢面向VLIW體系結(jié)構(gòu)的多元啟發(fā)式指令選擇步驟步驟1:更新資源狀態(tài)表
本實(shí)施例通過(guò)更新資源狀態(tài)表模擬將處理器時(shí)間向前推進(jìn)一個(gè)指令節(jié)拍的過(guò)程,從而改變基本塊中指令的執(zhí)行狀態(tài),更新資源狀態(tài)表的步驟如下:
i.遍歷資源狀態(tài)表中各個(gè)功能單元對(duì)應(yīng)的數(shù)組元素,對(duì)于數(shù)組元素中保存的鏈表執(zhí)行步驟ii ~ V ;
?.將鏈表尾結(jié)點(diǎn)中所保存的指令指針值賦值給首結(jié)點(diǎn)中所保存的指令指針值;
iii.將鏈表尾結(jié)點(diǎn)中所保存的指令執(zhí)行所需節(jié)拍數(shù)值減去I后賦值給首結(jié)點(diǎn)中所保存的指令執(zhí)行所需節(jié)拍數(shù)變量;
IV.如果前一步所得的節(jié)拍數(shù)小于1,通過(guò)首結(jié)點(diǎn)中不為空的指令指針找到相應(yīng)的指令,將其執(zhí)行狀態(tài)改為已執(zhí)行;然后,將首結(jié)點(diǎn)中保存的指針值改為空,節(jié)拍數(shù)強(qiáng)制改為O ;
V.將首結(jié)點(diǎn)移動(dòng)到鏈表尾作為尾結(jié)點(diǎn)。
[0066]步驟2:指令獲取
本實(shí)施例在指令調(diào)度中對(duì)每一拍候選指令排序前,獲取各功能單元的候選指令集合中所有可發(fā)射指令以及準(zhǔn)就緒指令,獲取可發(fā)射指令的作用是為各物理和擴(kuò)展功能單元獲得可發(fā)射的指令集合,以便于后面階段從中選擇指令發(fā)射到物理功能單元執(zhí)行。
[0067]步驟2.1:可發(fā)射指令獲取步驟包括: 1.清空各功能單元的可發(fā)射指令集合,并將當(dāng)前可發(fā)射指令總數(shù)值初始化為O;
i1.遍歷各功能單元,為每個(gè)功能單元執(zhí)行步驟ii1、iv ;
ii1.遍歷當(dāng)前功能單元的就緒指令集合中的每條指令,對(duì)每條指令執(zhí)行步驟V處理;iv.如果指令的所有數(shù)據(jù)依賴指令已經(jīng)執(zhí)行完畢,將此指令添加到當(dāng)前單元的可發(fā)射指令集合中,并對(duì)總的可發(fā)射指令數(shù)加I。
[0068]通過(guò)上述步驟2.1,為每個(gè)功能單元獲得一個(gè)可發(fā)射指令集合。
[0069]步驟2.2:準(zhǔn)就緒指令獲取步驟包括:
i.設(shè)置一個(gè)標(biāo)志變量flag,標(biāo)志變量flag用于標(biāo)識(shí)一條二級(jí)指令是否可能在下一成為可發(fā)射指令;
?.遍歷各功能單元的二級(jí)指令集合,每個(gè)集合中的每條指令按步驟iii ~ vi1.進(jìn)行處理;
iii.將當(dāng)前功能單元對(duì)應(yīng)的準(zhǔn)就緒指令集合、準(zhǔn)就緒指令的依賴指令集合清空;
iv.遍歷當(dāng)前二級(jí)指令集合中的所有指令,每條指令執(zhí)行步驟V ~vii ;
V.令flag為“真”值;
V1.遍歷當(dāng)前二級(jí)指令的所有依賴指令,若有任意一條依賴指令既不是只要一拍的可發(fā)射指令、也不是在下一拍前執(zhí)行完畢的指令,則令flag為“假”并結(jié)束遍歷;
ν?.步驟Vi的處理完成后,若flag的值仍為“真”時(shí),將當(dāng)前指令添加到功能單元相應(yīng)的準(zhǔn)就緒指令集合中,然后將此指令的所有依賴指令添加到功能單元相應(yīng)的準(zhǔn)就緒指令的依賴指令集合中。
[0070]通過(guò)上述步驟2.2,為每個(gè)功能單元獲得一個(gè)準(zhǔn)就緒指令集合。
[0071]步驟3:帶優(yōu)先級(jí)的多元啟發(fā)式指令排序
本實(shí)施計(jì)算各功能單元中每條可發(fā)射指令對(duì)應(yīng)的各啟發(fā)量,對(duì)各功能單元中的可發(fā)射指令執(zhí)行多次排序,每次排序時(shí)按照優(yōu)先級(jí)順序選擇一個(gè)啟發(fā)量作為排序比較量,得到選擇后的可發(fā)射指令序列。
[0072]步驟3.1:啟發(fā)量計(jì)算
對(duì)每個(gè)功能單元(包括擴(kuò)展功能單元)中的可發(fā)射指令集合中的任意一條可發(fā)射指令都進(jìn)行如下處理:
i.計(jì)算依賴指令數(shù):對(duì)數(shù)據(jù)依賴指令集合中的指令進(jìn)行計(jì)數(shù)即得到依賴指令的總數(shù),得到依賴指令啟發(fā)量;
i1.計(jì)算通道寄存器依賴指令數(shù):遍歷數(shù)據(jù)依賴指令集合中的每條指令,判斷兩條指令的依賴關(guān)系,如果是因訪問(wèn)標(biāo)量處理單元和向量處理單元的通道寄存器而造成的數(shù)據(jù)依賴,則對(duì)此指令計(jì)數(shù),最后得到這種依賴指令的總數(shù),得到通道寄存器依賴指令啟發(fā)量;
iii.計(jì)算另類處理單元依賴指令數(shù):遍歷數(shù)據(jù)依賴指令集合中的每條指令,如果兩條指令中一條是屬于標(biāo)量處理單元而另一條是屬于向量處理單元,則對(duì)此依賴指令計(jì)數(shù)。最后得到這種依賴指令的總數(shù),得到另類處理單元依賴指令啟發(fā)量;
iv.關(guān)聯(lián)功能單元數(shù):設(shè)置一個(gè)功能單元編號(hào)集合,該集合初始時(shí)為空;然后遍歷數(shù)據(jù)依賴指令集合中的每條指令,如果指令與當(dāng)前指令不是屬于同一個(gè)功能單元,則將相應(yīng)的功能單元的編號(hào)添加到功能單元編號(hào)集合中;在遍歷完成后在功能單元編號(hào)集合中對(duì)重復(fù)的功能單元編號(hào)只保留一個(gè),集合中最終留下的功能單元編號(hào)的數(shù)量即為所需的關(guān)聯(lián)功能單元數(shù),得到關(guān)聯(lián)功能單元啟發(fā)量;
V.下拍空閑關(guān)聯(lián)功能單元數(shù):將上述得到的關(guān)聯(lián)功能單元,遍歷集合中的每個(gè)關(guān)聯(lián)功能單元,判斷該單元在下一拍是否可能空閑,如果空閑,則對(duì)此單元計(jì)數(shù);遍歷結(jié)束后得到的數(shù)量即所需的下拍空閑關(guān)聯(lián)功能單元數(shù),得到下拍空閑關(guān)聯(lián)功能單元啟發(fā)量;
判斷一個(gè)功能單元在下一拍是否空閑且與當(dāng)前指令關(guān)聯(lián)的依據(jù)是:該單元在當(dāng)前拍要么沒有一級(jí)指令,要么只有一條一級(jí)指令且這條指令在當(dāng)前拍一定會(huì)被發(fā)射(即是在可發(fā)射指令集合中),且該單元的準(zhǔn)就緒指令中至少有一條是當(dāng)前被依賴指令的依賴指令。
[0073]V1.另類功能單元依賴指令數(shù):遍歷數(shù)據(jù)依賴指令集合中的每條指令,如果指令與當(dāng)前指令不是屬于同一個(gè)功能單元,則對(duì)此指令計(jì)數(shù),遍歷結(jié)束后得到的數(shù)量即所需的另類功能單元依賴指令數(shù),得到另類功能單元依賴指令啟發(fā)量;
ν?.指令執(zhí)行節(jié)拍數(shù):通過(guò)指令助記符找到對(duì)應(yīng)的指令模板信息,從中獲取指令執(zhí)行的節(jié)拍數(shù),得到指令本身執(zhí)行特性啟發(fā)量。
[0074]通過(guò)上述步驟3.1得到各種啟發(fā)式元素對(duì)應(yīng)的啟發(fā)量的值作為指令重排依據(jù)。
[0075]步驟3.2:指令排序
按優(yōu)先級(jí)順序根據(jù)得到的各啟發(fā)量對(duì)可發(fā)射指令序列執(zhí)行排序的步驟如下:
i.遍歷各功能單元,為每個(gè)單元的可發(fā)射指令隊(duì)列分別按步驟ii ~ix進(jìn)行重排;
ii.將指令的另類處理單元依賴指令啟發(fā)量作為當(dāng)前啟發(fā)量,按此啟發(fā)量的值將可發(fā)射指令集合中的指令從大到小進(jìn)行排序,得到一個(gè)有序隊(duì)列;然后將得到的有序隊(duì)列拆分成多個(gè)子隊(duì)列,每個(gè)隊(duì)列具有相同的啟發(fā)量數(shù)值;
iii.將通道寄存器依賴指令
當(dāng)前第4頁(yè)1 2 3 4 5 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
辽中县| 河津市| 石楼县| 尚义县| 涡阳县| 汝阳县| 武隆县| 灵台县| 蓝田县| 清河县| 都兰县| 富顺县| 漯河市| 曲阳县| 和林格尔县| 武陟县| 甘南县| 新平| 察隅县| 连州市| 西乌珠穆沁旗| 台湾省| 黎城县| 井冈山市| 芦山县| 紫云| 盐池县| 天津市| 新邵县| 文昌市| 沂源县| 沈阳市| 贡觉县| 邳州市| 汾阳市| 长海县| 水富县| 弥勒县| 兴化市| 宜良县| 堆龙德庆县|