两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

指令處理方法及裝置的制造方法

文檔序號(hào):8395700閱讀:300來源:國知局
指令處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種指令處理方法及裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)和智能終端設(shè)備的普及,多線程處理器廣泛應(yīng)用于各種終端設(shè)備中,例如ORACLE公司最新推出的SPARC T5型號(hào)的處理器中每個(gè)內(nèi)核包含8個(gè)硬件線程。
[0003]多線程處理器中的所有硬件線程通常共享一個(gè)高速緩沖存儲(chǔ)器(Cache),該處理器的每個(gè)硬件線程取指時(shí)都要訪問該Cache,然而,該Cache只有一個(gè)讀端口,即在同一時(shí)刻只能給一個(gè)硬件線程分配指令,并且多線程處理器取指時(shí)頻繁訪問Cache和存儲(chǔ)器,導(dǎo)致程序運(yùn)行的過程中取指操作的帶寬較小,并且消耗大量功耗。目前的循環(huán)高速緩沖存儲(chǔ)器(Loop Cache)技術(shù)可以識(shí)別向后的跳轉(zhuǎn)(Backward Branch),并將跳轉(zhuǎn)后的若干條指令存入寄存器文件(Register File)中,并把跳轉(zhuǎn)后第一條指令的虛擬地址(VirtualAddress,簡稱為:VA)存入基地址寄存器(Base Address Register,簡稱為:BAR)中;在程序運(yùn)行時(shí),根據(jù)個(gè)人計(jì)算機(jī)(Personal Computer,簡稱為:PC)與基地址之差產(chǎn)生Index函數(shù)值,如果在Loop Cache存儲(chǔ)范圍內(nèi)就直接從Loop Cache中取指,即不需要訪問Cache。
[0004]現(xiàn)有技術(shù)中采用Loop Cache技術(shù)的取指方式,可以在一定程度上增加取指帶寬,但是該技術(shù)需要為每個(gè)硬件線程提供Register File和BAR,導(dǎo)致取指操作的功耗進(jìn)一步增大。

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

[0005]本發(fā)明實(shí)施例提供一種指令處理方法及裝置,以解決現(xiàn)有技術(shù)中采用Loop Cache技術(shù)的取指方式,需要為每個(gè)硬件線程提供Register File和BAR,導(dǎo)致取指操作的功耗進(jìn)一步增大的問題。
[0006]第一方面,本發(fā)明實(shí)施例提供一種指令處理方法,包括:
[0007]填寫指令隊(duì)列,寫入所述指令隊(duì)列的為循環(huán)指令流,所述循環(huán)指令流為程序指令流中的循環(huán)體;
[0008]將所述指令隊(duì)列中的循環(huán)指令流按照循環(huán)順序發(fā)送給終端設(shè)備,以使終端設(shè)備按照所述循環(huán)順序執(zhí)行所述指令隊(duì)列中的循環(huán)指令流,所述循環(huán)順序?yàn)樗鲅h(huán)指令流中指令循環(huán)執(zhí)行的順序。
[0009]在第一方面的第一種可能實(shí)現(xiàn)方式中,所述循環(huán)指令流包括第一跳轉(zhuǎn)指令和第二跳轉(zhuǎn)指令及其之間的指令流;所述填寫指令隊(duì)列,包括:
[0010]根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫所述指令隊(duì)列,寫入所述第二跳轉(zhuǎn)指令后停止對(duì)所述指令隊(duì)列的填寫。
[0011]根據(jù)第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫所述指令隊(duì)列之前,還包括:
[0012]接收用戶輸入的程序運(yùn)行指令;
[0013]所述根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫所述指令隊(duì)列,寫入所述第二跳轉(zhuǎn)指令后停止對(duì)所述指令隊(duì)列的填寫,包括:
[0014]根據(jù)所述程序運(yùn)行指令從高速緩沖存儲(chǔ)器Cache中取指;
[0015]將取出的所述第一跳轉(zhuǎn)指令以及之后取出的指令流寫入所述指令隊(duì)列,將取出的所述第二跳轉(zhuǎn)指令寫入所述指令隊(duì)列并停止取指操作。
[0016]根據(jù)第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述將取出的所述第一跳轉(zhuǎn)指令以及之后取出的指令寫入所述指令隊(duì)列之前,還包括:
[0017]將所述第一跳轉(zhuǎn)指令的跳轉(zhuǎn)地址記錄到所述指令隊(duì)列的頭地址寄存器中;
[0018]所述將所述指令隊(duì)列中的循環(huán)指令流按照循環(huán)順序發(fā)送給終端設(shè)備,包括:
[0019]將所述指令隊(duì)列中的循環(huán)指令流按照順序從所述指令隊(duì)列的起始發(fā)送給所述終端設(shè)備;
[0020]發(fā)送所述第二跳轉(zhuǎn)指令時(shí),若所述第二跳轉(zhuǎn)指令的跳轉(zhuǎn)地址與所述指令隊(duì)列的頭地址相等,則重新從所述指令隊(duì)列的起始發(fā)送所述循環(huán)指令流。
[0021]根據(jù)第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,還包括:發(fā)送所述第二跳轉(zhuǎn)指令時(shí),若所述第二跳轉(zhuǎn)指令的跳轉(zhuǎn)地址與所述指令隊(duì)列的頭地址不等,則刪除所述指令隊(duì)列中的指令流,并且重新填寫所述指令隊(duì)列。
[0022]根據(jù)第一方面的第一種到第四種可能的實(shí)現(xiàn)方式種任意一種,在第五種可能的實(shí)現(xiàn)方式中,若所述第一跳轉(zhuǎn)指令與所述第二跳轉(zhuǎn)指之間的指令流數(shù)目超過所述指令隊(duì)列的容量,則所述根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫所述指令隊(duì)列,寫入所述第二跳轉(zhuǎn)指令后停止對(duì)所述指令隊(duì)列的填寫,還包括:
[0023]根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫所述指令隊(duì)列,所述指令隊(duì)列被填滿后從頭開始重新填寫,所述指令隊(duì)列的頭地址被更新。
[0024]根據(jù)第一方面、第一方面的第一種到第五種可能的實(shí)現(xiàn)方式種任意一種,在第六種可能的實(shí)現(xiàn)方式中,所述循環(huán)指令流中的指令數(shù)目小于8個(gè)。
[0025]根據(jù)第一方面的第一種到第三種可能的實(shí)現(xiàn)方式種任意一種,在第七種可能的實(shí)現(xiàn)方式中,所述指令隊(duì)列的數(shù)目為至少兩個(gè);則所述根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫所述指令隊(duì)列,寫入所述第二跳轉(zhuǎn)指令后停止對(duì)所述指令隊(duì)列的填寫,包括:
[0026]根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫第一指令隊(duì)列,寫入所述第二跳轉(zhuǎn)指令后停止對(duì)所述第一指令隊(duì)列的填寫;
[0027]若所述第二跳轉(zhuǎn)指令的跳轉(zhuǎn)地址與所述第一跳轉(zhuǎn)指令的跳轉(zhuǎn)地址不等,則將所述第二跳轉(zhuǎn)指令的跳轉(zhuǎn)地址記錄到第二指令隊(duì)列的頭地址寄存器中;
[0028]根據(jù)所述指令流的順序從所述第二跳轉(zhuǎn)指令開始填寫所述第二指令隊(duì)列,寫入第三跳轉(zhuǎn)指令后停止對(duì)所述第二指令隊(duì)列的填寫;
[0029]若所述第三跳轉(zhuǎn)指令的跳轉(zhuǎn)地址與所述第一跳轉(zhuǎn)指令的跳轉(zhuǎn)地址相等,則停止對(duì)所述指令隊(duì)列的填寫。
[0030]根據(jù)第一方面的第七種可能的實(shí)現(xiàn)方式,在第八種可能的實(shí)現(xiàn)方式中,所述將所述指令隊(duì)列中的循環(huán)指令流按照循環(huán)順序發(fā)送給終端設(shè)備,包括:
[0031]將所述第一指令隊(duì)列和所述第二指令隊(duì)列中的循環(huán)指令流按照循環(huán)順序發(fā)送給所述終端設(shè)備,以使終端設(shè)備按照所述循環(huán)順序執(zhí)行所述第一指令隊(duì)列和所述第二指令隊(duì)列中的循環(huán)指令流。
[0032]第二方面,本發(fā)明實(shí)施例提供一種指令處理裝置,包括:
[0033]填寫模塊,用于填寫指令隊(duì)列,寫入所述指令隊(duì)列的為循環(huán)指令流,所述循環(huán)指令流為程序指令流中的循環(huán)體;
[0034]發(fā)送模塊,用于將所述填寫模塊寫入所述指令隊(duì)列中的循環(huán)指令流按照循環(huán)順序發(fā)送給終端設(shè)備,以使終端設(shè)備按照所述循環(huán)順序執(zhí)行所述指令隊(duì)列中的循環(huán)指令流,所述循環(huán)順序?yàn)樗鲅h(huán)指令流中指令循環(huán)執(zhí)行的順序。
[0035]在第二方面的第一種可能實(shí)現(xiàn)方式中,所述循環(huán)指令流包括第一跳轉(zhuǎn)指令和第二跳轉(zhuǎn)指令及其之間的指令流;所述填寫模塊,具體用于根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫所述指令隊(duì)列,寫入所述第二跳轉(zhuǎn)指令后停止對(duì)所述指令隊(duì)列的填寫。
[0036]根據(jù)第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述裝置還包括:接收模塊,用于在所述填寫模塊根據(jù)所述指令流的順序從所述第一跳轉(zhuǎn)指令開始填寫所述指令隊(duì)列之前,接收用戶輸入的程序運(yùn)行指令;
[0037]所述填寫模塊,包括:
[0038]取指單元,用于根據(jù)所述接收模塊接收的程序運(yùn)行指令從高速緩沖存儲(chǔ)器Cache中取指;
[0039]填寫單元,用于將取出的所述第一跳轉(zhuǎn)指令以及之后取出的指令流寫入所述指令隊(duì)列,將取出的所述第二跳轉(zhuǎn)指令寫入所述指令隊(duì)列并停止取指操作。
[0040]根據(jù)第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述填寫模塊還包括:記錄單元,用于在所述填寫單元將取出的所述第一跳轉(zhuǎn)指令以及之后取出的指令寫入所述指令隊(duì)列之前,將所述第一跳轉(zhuǎn)指令的跳轉(zhuǎn)地址記錄到所述指令隊(duì)列的
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
漠河县| 英山县| 河曲县| 江陵县| 扶余县| 始兴县| 喀喇| 集贤县| 汝州市| 金坛市| 郧西县| 东方市| 梁平县| 册亨县| 资阳市| 乡宁县| 讷河市| 神木县| 武穴市| 翁源县| 肥东县| 奉新县| 梓潼县| 阳东县| 鄂托克旗| 旬邑县| 顺义区| 海兴县| 腾冲县| 迭部县| 南岸区| 普兰店市| 辉县市| 江山市| 八宿县| 慈溪市| 基隆市| 西青区| 额尔古纳市| 东平县| 丹棱县|