專利名稱:一種單指令多數(shù)據(jù)流結(jié)構(gòu)上的數(shù)據(jù)處理方法及處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器技術(shù)領(lǐng)域,尤其涉及一種單指令多數(shù)據(jù)流結(jié)構(gòu)上的數(shù)據(jù)處理 方法及處理器。
背景技術(shù):
SIMD (Single Instruction Multiple Data,單指令多數(shù)據(jù)流)技術(shù)是一種廣泛應(yīng) 用的開發(fā)細(xì)粒度數(shù)據(jù)并行性的技術(shù)。SIMD技術(shù)的核心思想是在多個(gè)執(zhí)行單元上對(duì)不同的 數(shù)據(jù)采用相同的指令序列進(jìn)行加工,從而一次得到多個(gè)加工后的計(jì)算結(jié)果,以提高計(jì)算效 率。SIMD技術(shù)早期主要用于機(jī)柜級(jí)的高性能計(jì)算機(jī)領(lǐng)域,如美國伊利諾伊州立大學(xué)研制的 ILLIAC IV型機(jī)。隨著半導(dǎo)體工藝的發(fā)展,芯片內(nèi)部能夠集成越來越多的晶體管,人們開始 將SIMD技術(shù)用在處理器內(nèi)部以開發(fā)細(xì)粒度的數(shù)據(jù)并行性。在傳統(tǒng)的SIMD微處理器中,通常不提供對(duì)條件分支指令的支持。在遇到條件分支 指令時(shí),需要程序員采用手工冗余計(jì)算的辦法。如圖1所示,一段分支代碼在執(zhí)行到分支指 令時(shí),SIMD處理器將執(zhí)行左右兩部分分支路徑,在圖中分別以虛實(shí)兩種線條區(qū)分。當(dāng)完成 分支路徑計(jì)算后,再計(jì)算相應(yīng)的分支條件,根據(jù)分支條件決定具體提交哪個(gè)分支的計(jì)算結(jié) 果。由于左右分支路徑均需要在處理器上執(zhí)行,得到計(jì)算結(jié)果后,在提交階段選擇符合分支 條件的計(jì)算結(jié)果提交,而不符合分支條件的結(jié)果則被舍棄,因此產(chǎn)生了大量的無用計(jì)算,造 成了功耗浪費(fèi),執(zhí)行效率較低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種SIMD結(jié)構(gòu)上的數(shù)據(jù)處理方法及處理器,以解決現(xiàn)有技 術(shù)中SIMD結(jié)構(gòu)上的指令執(zhí)行過程中功耗浪費(fèi),執(zhí)行效率較低的問題。其具體方案為一種單指令多數(shù)據(jù)流結(jié)構(gòu)SIMD的數(shù)據(jù)處理方法,包括選取符合條件的指令處理多組數(shù)據(jù)流,所述指令具有包括標(biāo)記位和索引位的謂詞 域;將所述指令進(jìn)行譯碼,并獲取所述標(biāo)記位和索引位的值;利用所述標(biāo)記位的值判斷所述指令是否為謂詞指令;當(dāng)所述指令為謂詞指令時(shí),讀取預(yù)設(shè)謂詞寄存器中與所述索引位值對(duì)應(yīng)的表項(xiàng)內(nèi) 的謂詞;將所述謂詞均勻分配給所述多組數(shù)據(jù)流;分別比較所述標(biāo)記位與每一組數(shù)據(jù)流對(duì)應(yīng)的謂詞的值;確定比較結(jié)果為相同的數(shù)據(jù)流為可處理數(shù)據(jù)流;執(zhí)行指令處理所述可處理數(shù)據(jù)流。優(yōu)選的,還包括確定比較結(jié)果為不同的數(shù)據(jù)流為非可處理數(shù)據(jù)流;執(zhí)行空操作指令處理所述非可處理數(shù)據(jù)流。
優(yōu)選的,還包括當(dāng)所述比較結(jié)果為不同時(shí),停止對(duì)其對(duì)應(yīng)的數(shù)據(jù)流的處理。優(yōu)選的,當(dāng)所述指令為非謂詞指令時(shí),直接執(zhí)行所述指令處理多組數(shù)據(jù)流。一種SIMD處理器,包括指令選取單元,用于選取符合條件的指令處理多組數(shù)據(jù)流,所述指令具有包括標(biāo) 記位和索引位的謂詞域;譯碼單元,用于將所述指令進(jìn)行譯碼,并獲取所述標(biāo)記位和索引位的值;判斷單元,用于利用所述標(biāo)記位的值判斷所述指令是否為謂詞指令;謂詞寄存器,用于存放謂詞;讀取單元,用于當(dāng)所述指令為謂詞指令時(shí),讀取預(yù)設(shè)謂詞寄存器中與所述索引位 對(duì)應(yīng)的表項(xiàng)內(nèi)的謂詞;分配單元,用于將所述謂詞均勻分配給所述多組數(shù)據(jù)流;比較單元,用于分別比較所述標(biāo)記位與每一組數(shù)據(jù)流對(duì)應(yīng)的謂詞的值;確定單元,用于確定比較結(jié)果為相同的數(shù)據(jù)流為可處理數(shù)據(jù)流;執(zhí)行單元,用于執(zhí)行指令處理所述可處理數(shù)據(jù)流。優(yōu)選的,所述確定單元還用于確定比較結(jié)果為不同的數(shù)據(jù)流為非可處理數(shù)據(jù)流; 所述執(zhí)行單元還用于執(zhí)行空操作指令處理所述非可處理數(shù)據(jù)流。本發(fā)明公開的SIMD結(jié)構(gòu)上的數(shù)據(jù)處理方法引入謂詞執(zhí)行方式,利用謂詞標(biāo)記和 謂詞的比較結(jié)果來判斷是否需要執(zhí)行指令處理數(shù)據(jù)流組,然后只執(zhí)行比較結(jié)果為相同的指 令對(duì)應(yīng)的數(shù)據(jù)流,避免了因?yàn)樘幚聿恍枰惶幚淼臄?shù)據(jù)流造成的功耗浪費(fèi),以及處理效率 低的問題。能夠高效地處理不規(guī)則控制流,進(jìn)一步擴(kuò)大了 SIMD結(jié)構(gòu)的適用范圍。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中的SIMD結(jié)構(gòu)上執(zhí)行分支指令的流程圖;圖2為實(shí)施例1公開的數(shù)據(jù)處理方法流程圖;圖3為實(shí)施例2公開的數(shù)據(jù)處理方法的流程圖;圖4為實(shí)施例2公開的謂詞域結(jié)構(gòu)示意圖;圖5為實(shí)施例2公開的謂詞標(biāo)記位定義示意圖;圖6為實(shí)施例2公開的標(biāo)記位與謂詞的比較規(guī)則示意圖;圖7為本發(fā)明公開的SIMD處理器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。謂詞執(zhí)行技術(shù)是一種解決指令間控制相關(guān)的技術(shù),通過引入邏輯謂詞,將控制相 關(guān)與某個(gè)分支中的指令,轉(zhuǎn)換為該分支條件(即謂詞)及相應(yīng)數(shù)據(jù)的數(shù)據(jù)相關(guān)。傳統(tǒng)的謂 詞執(zhí)行技術(shù)通過消除多個(gè)基本塊之間的控制相關(guān),配合編譯器將多個(gè)基本塊合并成為一個(gè) 內(nèi)部無控制相關(guān)的超塊,實(shí)現(xiàn)了挖掘更多的指令級(jí)并行性的目的。分支指令謂詞化后產(chǎn)生 多個(gè)代表不同分支路徑的布爾型謂詞,位于分支中的指令具有謂詞域,只有當(dāng)指令對(duì)應(yīng)的 謂詞域滿足相應(yīng)的謂詞條件時(shí),指令才執(zhí)行。謂詞執(zhí)行技術(shù)能夠?qū)⒅噶铋g的控制依賴轉(zhuǎn)換 為對(duì)謂詞的數(shù)據(jù)依賴。本發(fā)明依據(jù)謂詞執(zhí)行技術(shù),公開了一種SIMD結(jié)構(gòu)上的數(shù)據(jù)處理方法,其具體實(shí)施 方式如下所示實(shí)施例一本實(shí)施例公開的SIMD結(jié)構(gòu)上的數(shù)據(jù)處理方法的流程如圖2所示,包括步驟S21、選取符合條件的指令處理多組數(shù)據(jù)流,所述指令具有包括標(biāo)記位和索引 位的謂詞域;指令中的謂詞域由編譯器預(yù)先設(shè)置,編譯器在將寫好的程序翻譯為二進(jìn)制機(jī)器代 碼時(shí),自動(dòng)為每個(gè)分支分配一個(gè)謂詞編號(hào),并將此編號(hào)填寫在與此分支關(guān)聯(lián)的指令的謂詞 域中。在程序執(zhí)行的過程中,通過計(jì)算指令計(jì)算出相應(yīng)謂詞的值,并通過謂詞寄存器寫指令 將謂詞寫入預(yù)先設(shè)定的謂詞寄存器內(nèi)。謂詞寄存器的每個(gè)表項(xiàng)具有一個(gè)寫入位,當(dāng)謂詞寄 存器寫入指令完成對(duì)所述表項(xiàng)的寫入時(shí),同時(shí)要將相應(yīng)表項(xiàng)的寫入位置位,根據(jù)實(shí)際的硬 件實(shí)現(xiàn),可以將其置為1或0,以表示謂詞寄存器的此項(xiàng)已經(jīng)有相應(yīng)謂詞的值。被選取的指 令需要同時(shí)符合操作數(shù)已經(jīng)被滿足的條件,以及相應(yīng)的謂詞已經(jīng)被計(jì)算,并寫入到謂詞寄 存器內(nèi)的條件。步驟S22、將所述指令進(jìn)行譯碼,并獲取標(biāo)記位和索引位的值;步驟S23、利用所述標(biāo)記位的值判斷所述指令是否為謂詞指令;步驟S24、當(dāng)所述指令為謂詞指令時(shí),讀取預(yù)設(shè)謂詞寄存器中與所述索引位值對(duì)應(yīng) 的表項(xiàng)內(nèi)的謂詞;步驟S25、將所述謂詞均勻分配給所述多組數(shù)據(jù)流;步驟S26、分別比較所述標(biāo)記位與每一組數(shù)據(jù)流對(duì)應(yīng)的謂詞的值是否相同;步驟S27、確定比較結(jié)果為相同的數(shù)據(jù)流為可處理數(shù)據(jù)流;步驟S28、執(zhí)行指令處理所述可處理數(shù)據(jù)流。從上述步驟可以看出,本發(fā)明公開的SIMD結(jié)構(gòu)上的數(shù)據(jù)處理方法通過引入謂詞 執(zhí)行方式,利用謂詞標(biāo)記和謂詞的比較結(jié)果來判斷是否需要執(zhí)行指令處理數(shù)據(jù)流組,然后 只執(zhí)行比較結(jié)果為相同的指令對(duì)應(yīng)的數(shù)據(jù)流,避免了因?yàn)樘幚聿恍枰惶幚淼臄?shù)據(jù)流造成 的功耗浪費(fèi),以及處理效率低的問題。實(shí)施例二本實(shí)施例中較為詳細(xì)的對(duì)本發(fā)明公開的數(shù)據(jù)處理方法進(jìn)行了描述,其流程如圖3 所示,步驟S31、選取符合條件的指令處理多組數(shù)據(jù)流,所述指令具有包括標(biāo)記位和索引 位的謂詞域;
指令集要求在每條指令編碼時(shí),增加N位的謂詞域,謂詞域具體結(jié)構(gòu)如圖4所示, 謂詞域的前M位的謂詞標(biāo)記位用來確定以下兩個(gè)問題,1、此條語句是否為謂詞語句;2、若 為謂詞語句,則此語句在何種謂詞狀態(tài)下執(zhí)行,本實(shí)施例中以M = 2為例,其定義方式如圖 5所示。本發(fā)明中謂詞存儲(chǔ)于預(yù)先設(shè)定的謂詞寄存器中,謂詞寄存器為一組多端口寄存器, 存放對(duì)應(yīng)的謂詞數(shù)據(jù)。謂詞域的剩余N-M位為謂詞索引位,可以索引2N_M項(xiàng),根據(jù)每條指令 的謂詞域的索引位可以找到與該指令對(duì)應(yīng)的謂詞。然后將謂詞根據(jù)SIMD結(jié)構(gòu)的特點(diǎn)進(jìn)行 分組,例如,如果SIMD結(jié)構(gòu)中包括四個(gè)執(zhí)行單元,可以同時(shí)利用一條指令對(duì)四組數(shù)據(jù)進(jìn)行 處理,則將謂詞分為四組,每一組分別對(duì)應(yīng)一個(gè)執(zhí)行單元,利用每組謂詞與標(biāo)記位的比較結(jié) 果控制該執(zhí)行單元是否工作,從而實(shí)現(xiàn)控制指令是否執(zhí)行。步驟S32、將所述指令進(jìn)行譯碼,并獲取標(biāo)記位和索引位的值;步驟S33、利用所述標(biāo)記位的值判斷所述指令是否為謂詞指令,若是,則執(zhí)行步驟 S34,若否,則執(zhí)行步驟S311 ;根據(jù)圖4所示的定義方式,對(duì)應(yīng)當(dāng)前標(biāo)記位,判斷指令是否為謂詞指令。步驟S34、讀取預(yù)設(shè)的謂詞寄存器中與所述索引位值對(duì)應(yīng)的表項(xiàng)內(nèi)的謂詞;根據(jù)索引位的值查找謂詞寄存器中與其對(duì)應(yīng)的表項(xiàng),讀取表項(xiàng)內(nèi)的謂詞,例如索 引位為111,則其值為7,則讀取謂詞寄存器內(nèi)第七個(gè)表項(xiàng)內(nèi)存儲(chǔ)的謂詞。步驟S35、將所述謂詞均勻分配給所述多組數(shù)據(jù)流;步驟S36、分別比較所述標(biāo)記位與每一組數(shù)據(jù)流對(duì)應(yīng)的謂詞的值是否相同,若是, 則執(zhí)行步驟S37,若否,則執(zhí)行步驟S39 ;將標(biāo)記位與謂詞按照預(yù)設(shè)規(guī)則進(jìn)行比較,預(yù)設(shè)規(guī)則可以根據(jù)情況自行設(shè)定,但是 需要遵循一定的原則,即當(dāng)指令為謂詞指令時(shí),指令謂詞域的標(biāo)記位與謂詞寄存器內(nèi)索引 出的相應(yīng)謂詞的值相同時(shí),比較結(jié)果為TRUE,否則比較結(jié)果為FALSE,如圖6所示,只有謂詞 值和謂詞標(biāo)記位相同的時(shí)候,結(jié)果為TRUE,而對(duì)于非謂詞語句,即謂詞標(biāo)記為01時(shí),需要對(duì) 指令按照正常順序執(zhí)行,所以不管其對(duì)應(yīng)的謂詞是什么,其結(jié)果都為TRUE。步驟S37、確定比較結(jié)果為相同的數(shù)據(jù)流為可處理數(shù)據(jù)流;若比較結(jié)果為相同,則表示該指令可以被執(zhí)行處理其對(duì)應(yīng)的數(shù)據(jù)流,符合執(zhí)行條 件,步驟S38、執(zhí)行指令處理所述可處理數(shù)據(jù)流;步驟S39、確定比較結(jié)果為不同的數(shù)據(jù)流為非可處理數(shù)據(jù)流;
若比較結(jié)果不同,說明不需要執(zhí)行指令處理該數(shù)據(jù)流。步驟S310、執(zhí)行空操作指令處理所述非可處理數(shù)據(jù)流;若比較結(jié)果為不同,則表示不需要執(zhí)行指令處理該數(shù)據(jù)流,可以以空操作代替指 令對(duì)數(shù)據(jù)流的處理,或者引入門控時(shí)鐘,將執(zhí)行該數(shù)據(jù)流的執(zhí)行單元休眠,停止對(duì)該數(shù)據(jù)流 的處理。步驟S311、執(zhí)行指令處理所有數(shù)據(jù)流組。本實(shí)施例中具體公開了利用標(biāo)記位判斷指令的類型以及利用一定的規(guī)則判斷指 令是否執(zhí)行的的步驟,對(duì)于比較結(jié)果為不同的指令利用空指令進(jìn)行填充,從而不去處理,節(jié) 省了功耗??梢詫?shí)現(xiàn)減少冗余分支指令的計(jì)算,有效的提高了處理效率,降低了能耗,能夠 高效地處理不規(guī)則控制流應(yīng)用,進(jìn)一步擴(kuò)大了 SIMD結(jié)構(gòu)的適用范圍。
本發(fā)明還公開了一種SIMD處理器,其結(jié)構(gòu)如圖7所示,包括指令選取單元71、、 譯碼單元72、判斷單元73、謂詞寄存器74、讀取單元75、分配單元76、比較單元77、確定單 元78、執(zhí)行單元79,其中指令選取單元71用于選取待執(zhí)行指令;譯碼單元72用于將所述指令進(jìn)行譯碼,并 獲取標(biāo)記位和索引位的值;判斷單元73用于利用所述標(biāo)記位的值判斷所述指令是否為謂 詞指令;謂詞寄存器74用于存放謂詞;讀取單元75用于當(dāng)所述指令為謂詞指令時(shí),讀取預(yù) 設(shè)的謂詞寄存器中與所述索引位值對(duì)應(yīng)的表項(xiàng)內(nèi)的謂詞;分配單元76用于將所述謂詞均 勻分配給所述多組數(shù)據(jù)流;比較單元77用于分別比較所述標(biāo)記位與每一組數(shù)據(jù)流對(duì)應(yīng)的 謂詞的值是否相同;確定單元78用于確定比較結(jié)果為相同的數(shù)據(jù)流為可處理數(shù)據(jù)流;執(zhí)行 單元79用于執(zhí)行指令處理所述可處理數(shù)據(jù)流。本實(shí)施例公開的SIMD處理器具有四個(gè)執(zhí)行單元,可以同時(shí)對(duì)四組數(shù)據(jù)流進(jìn)行處 理,每個(gè)執(zhí)行部件依據(jù)比較單元的比較結(jié)果來控制是否執(zhí)行此條指令。當(dāng)此功能部件不需 要執(zhí)行此條指令時(shí),可以采用直接填充空指令到流水線的方式,利用空指令代替當(dāng)前的指 令,不對(duì)數(shù)據(jù)進(jìn)行處理,或者引入門控時(shí)鐘,將此功能部件休眠,停止對(duì)指令的處理。確定單元還用于確定比較結(jié)果為不同的數(shù)據(jù)流為非可處理數(shù)據(jù)流,執(zhí)行單元還用 于執(zhí)行空操作指令處理所述非可處理數(shù)據(jù)流。由圖可以看出,本實(shí)施例公開的SIMD處理器只在硬件上加入了謂詞寄存器和控 制邏輯,不需要改動(dòng)原有處理器的微結(jié)構(gòu),結(jié)構(gòu)簡單,易于實(shí)現(xiàn)。本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他 實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置 而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說 明即可。專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元 及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和 軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些 功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè) 技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng) 認(rèn)為超出本發(fā)明的范圍。結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí) 行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存 儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù) 領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的 一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明 將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一 致的最寬的范圍。
權(quán)利要求
一種單指令多數(shù)據(jù)流結(jié)構(gòu)SIMD的數(shù)據(jù)處理方法,其特征在于,包括選取符合條件的指令處理多組數(shù)據(jù)流,所述指令具有包括標(biāo)記位和索引位的謂詞域;將所述指令進(jìn)行譯碼,并獲取所述標(biāo)記位和索引位的值;利用所述標(biāo)記位的值判斷所述指令是否為謂詞指令;當(dāng)所述指令為謂詞指令時(shí),讀取預(yù)設(shè)謂詞寄存器中與所述索引位值對(duì)應(yīng)的表項(xiàng)內(nèi)的謂詞;將所述謂詞均勻分配給所述多組數(shù)據(jù)流;分別比較所述標(biāo)記位與每一組數(shù)據(jù)流對(duì)應(yīng)的謂詞的值;確定比較結(jié)果為相同的數(shù)據(jù)流為可處理數(shù)據(jù)流;執(zhí)行指令處理所述可處理數(shù)據(jù)流。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 確定比較結(jié)果為不同的數(shù)據(jù)流為非可處理數(shù)據(jù)流; 執(zhí)行空操作指令處理所述非可處理數(shù)據(jù)流。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括 當(dāng)所述比較結(jié)果為不同時(shí),停止對(duì)其對(duì)應(yīng)的數(shù)據(jù)流的處理。
4.根據(jù)權(quán)利要求1-3中任意一項(xiàng)所述的方法,其特征在于,當(dāng)所述指令為非謂詞指令 時(shí),直接執(zhí)行所述指令處理多組數(shù)據(jù)流。
5.一種SIMD處理器,其特征在于,包括指令選取單元,用于選取符合條件的指令處理多組數(shù)據(jù)流,所述指令具有包括標(biāo)記位 和索引位的謂詞域;譯碼單元,用于將所述指令進(jìn)行譯碼,并獲取所述標(biāo)記位和索引位的值; 判斷單元,用于利用所述標(biāo)記位的值判斷所述指令是否為謂詞指令; 謂詞寄存器,用于存放謂詞;讀取單元,用于當(dāng)所述指令為謂詞指令時(shí),讀取預(yù)設(shè)謂詞寄存器中與所述索引位對(duì)應(yīng) 的表項(xiàng)內(nèi)的謂詞;分配單元,用于將所述謂詞均勻分配給所述多組數(shù)據(jù)流; 比較單元,用于分別比較所述標(biāo)記位與每一組數(shù)據(jù)流對(duì)應(yīng)的謂詞的值; 確定單元,用于確定比較結(jié)果為相同的數(shù)據(jù)流為可處理數(shù)據(jù)流; 執(zhí)行單元,用于執(zhí)行指令處理所述可處理數(shù)據(jù)流。
6.根據(jù)權(quán)利要求5所述的SIMD處理器,其特征在于,所述確定單元還用于確定比較結(jié) 果為不同的數(shù)據(jù)流為非可處理數(shù)據(jù)流;所述執(zhí)行單元還用于執(zhí)行空操作指令處理所述非可 處理數(shù)據(jù)流。
全文摘要
本發(fā)明公開了一種SIMD上的數(shù)據(jù)處理方法及處理器,包括選取符合條件的處理多組數(shù)據(jù)流,指令具有包括標(biāo)記位和索引位的謂詞域;將指令進(jìn)行譯碼,并獲取標(biāo)記位和索引位的值;利用標(biāo)記位的值判斷指令是否為謂詞指令;當(dāng)指令為謂詞指令時(shí),讀取預(yù)設(shè)謂詞寄存器中與索引位值對(duì)應(yīng)的表項(xiàng)內(nèi)的謂詞;將謂詞均勻分配給多組數(shù)據(jù)流;分別比較標(biāo)記位與每一組數(shù)據(jù)流對(duì)應(yīng)的謂詞的值;確定比較結(jié)果為相同的數(shù)據(jù)流為可處理數(shù)據(jù)流;執(zhí)行指令處理可處理數(shù)據(jù)流。本發(fā)明公開的SIMD結(jié)構(gòu)上的數(shù)據(jù)處理方法引入謂詞執(zhí)行方式,利用謂詞標(biāo)記和謂詞的比較結(jié)果來判斷是否需要執(zhí)行指令處理數(shù)據(jù)流組,避免了處理不需要被處理的數(shù)據(jù)流造成的功耗浪費(fèi),以及處理效率低的問題。
文檔編號(hào)G06F9/38GK101930358SQ20101026176
公開日2010年12月29日 申請(qǐng)日期2010年8月16日 優(yōu)先權(quán)日2010年8月16日
發(fā)明者任永青, 劉谷, 周偉, 孫濤, 安虹, 徐光 , 李小強(qiáng), 李頎, 許牧, 譚旭, 郝秀蕊 申請(qǐng)人:中國科學(xué)技術(shù)大學(xué)