預(yù)測(cè)計(jì)數(shù)器的制造方法
【專利摘要】根據(jù)示例性實(shí)施方案,諸如數(shù)字信號(hào)處理器(DSP)的處理器具備用作預(yù)測(cè)計(jì)數(shù)器的寄存器。所述預(yù)測(cè)計(jì)數(shù)器可以包括兩個(gè)以上有用值,且除用作用于執(zhí)行指令的條件以外,還可以追蹤循環(huán)或條件分支內(nèi)的嵌套級(jí)。在某些情況下,所述預(yù)測(cè)計(jì)數(shù)器可以被配置來以單指令多數(shù)據(jù)(SIMD)模式或寄存器內(nèi)SIMD(SWAR)模式進(jìn)行操作。
【專利說明】預(yù)測(cè)計(jì)數(shù)器
[0001]相關(guān)申請(qǐng)的交叉參考
[0002]本申請(qǐng)要求2012年10月23日提交且名為“Predicate Counter”的美國臨時(shí)申請(qǐng)第61/717,541號(hào)的優(yōu)先權(quán),該申請(qǐng)的全部?jī)?nèi)容以引用方式并入。2012年12月19日提交且名為“Memory Interconnect Network Architecture for Vector Processors” 的同在申請(qǐng)中的美國申請(qǐng)第13/720,624號(hào)(“624申請(qǐng)”)的全部?jī)?nèi)容也以引用方式并入本文中。
【技術(shù)領(lǐng)域】
[0003]本公開大體上涉及并行處理,且更特別地說涉及一種采用預(yù)測(cè)計(jì)數(shù)器的向量處理器。
【背景技術(shù)】
[0004]并行處理通常是由用于最優(yōu)化處理應(yīng)用程序的處理器(例如,用于最優(yōu)化數(shù)字信號(hào)處理應(yīng)用程序的數(shù)字信號(hào)處理器(DSP))來實(shí)施。處理器可用作單指令多數(shù)據(jù)(SMD)或數(shù)據(jù)并行處理器以實(shí)現(xiàn)并行處理。在SMD操作中,將一個(gè)指令發(fā)送到處理器的多個(gè)處理元件,其中每個(gè)處理元件可獨(dú)立地對(duì)不同數(shù)據(jù)執(zhí)行相同操作。對(duì)持續(xù)較高產(chǎn)量和增加性能的要求不斷增長(zhǎng)已造成寄存器內(nèi)SMD(SWAR),其中處理元件可作用于其相關(guān)寄存器內(nèi)的多組數(shù)據(jù)。例如,一個(gè)32位寄存器可以包括四個(gè)8位數(shù)據(jù)、八個(gè)4位數(shù)據(jù)或三個(gè)10位數(shù)據(jù),其每個(gè)可由一個(gè)處理元件并行操作。
[0005]雖然在處理器的硬件中實(shí)施SWAR相對(duì)便宜,但是從編程的觀點(diǎn)來看SWAR面臨諸多挑戰(zhàn)。例如,SffAR編程通常必需來自并非ISO C或C++標(biāo)準(zhǔn)的部分的高級(jí)語言(諸如C/C++)的固有、內(nèi)聯(lián)匯編和/或?qū)S邢蛄繑?shù)據(jù)類型(諸如float2、int4、short4,等等)。因?yàn)檫@些編程選項(xiàng)(專有向量數(shù)據(jù)類型、固有和/或內(nèi)聯(lián)匯編)為處理器所特有,所以SWAR編程難以移植原有代碼。此外,因?yàn)镾WAR編程對(duì)向量處理器添加額外等級(jí)的并行處理,所以常規(guī)處理器由于確保處理器識(shí)別兩個(gè)等級(jí)的并行操作(雙向并行)而增加程序員的負(fù)擔(dān):(使用SWAR的)處理元件內(nèi)的一個(gè)等級(jí)的并行處理和跨處理器的向量單元的處理元件的另一等級(jí)的并行處理。因此,雖然用于執(zhí)行并行處理的現(xiàn)有處理器架構(gòu)和相關(guān)方法通常適用于其希望目的,但是在所有方面其并非完全令人滿意。
【專利附圖】
【附圖說明】
[0006]在閱讀附圖后根據(jù)下列詳述會(huì)充分了解本公開。本公開強(qiáng)調(diào):根據(jù)業(yè)界標(biāo)準(zhǔn)實(shí)踐,各個(gè)特征并未按比例繪制且僅用于說明目的。實(shí)際上,為了明確論述,可以任意增加或減小各個(gè)特征的尺寸。
[0007]圖1是包括預(yù)測(cè)計(jì)數(shù)器的示例性數(shù)字信號(hào)處理器的方框圖。
[0008]圖2是被配置來執(zhí)行寄存器內(nèi)SMD操作的數(shù)字信號(hào)處理器內(nèi)的寄存器的方框圖。
【具體實(shí)施方式】[0009]MM
[0010]一方面,本發(fā)明公開了一種處理器,其包括:處理元件;序列發(fā)生器,其被配置來將條件可執(zhí)行的指令提供到處理元件,其中條件是由預(yù)測(cè)計(jì)數(shù)器中編碼的預(yù)測(cè)提供;和預(yù)測(cè)計(jì)數(shù)寄存器,其被配置來接收兩個(gè)以上有意義的值和提供其值作為預(yù)測(cè)計(jì)數(shù)。
[0011]另一方面,本發(fā)明公開了一種由計(jì)算機(jī)執(zhí)行的方法,其包括:接收與預(yù)測(cè)計(jì)數(shù)器被配置來接收兩個(gè)以上有用值相關(guān)的指令;如果預(yù)測(cè)計(jì)數(shù)器是第一值,那么執(zhí)行指令;和如果預(yù)測(cè)計(jì)數(shù)器不是第一值,那么忽略指令。
[0012]在另一實(shí)施方案中,本發(fā)明公開了一種有形計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)當(dāng)執(zhí)行時(shí)命令處理器進(jìn)行以下各項(xiàng)的軟件指令:讀取預(yù)測(cè)計(jì)數(shù)器,預(yù)測(cè)計(jì)數(shù)器具有兩個(gè)以上有用值;讀取條件指令;如果預(yù)測(cè)計(jì)數(shù)器是第一值,那么執(zhí)行指令;如果預(yù)測(cè)計(jì)數(shù)器不是第一值,那么忽略指令并基于預(yù)測(cè)計(jì)數(shù)器的值操控預(yù)測(cè)計(jì)數(shù)器。
[0013]公開的示例性實(shí)施方案
[0014]下列公開提供用于實(shí)施本公開的不同特征的許多不同實(shí)施方案或?qū)嵗?。下文描述組件和配置的特定實(shí)例以簡(jiǎn)化本公開。當(dāng)然,這些僅是實(shí)例且不希望進(jìn)行限制。此外,本公開可以在各個(gè)實(shí)例中重復(fù)參考數(shù)字和/或字母。這種重復(fù)是出于簡(jiǎn)化和明確的目的,且本身并不指示論述的各個(gè)實(shí)施方案和/或配置之間的關(guān)系。不同實(shí)施方案可以具有不同優(yōu)點(diǎn),且任何實(shí)施方案均無需特定優(yōu)點(diǎn)。
[0015]指令預(yù)測(cè)涉及線性化分支操作,這可基本上改善高速緩存性能和指令流水線。在傳統(tǒng)的分支拓?fù)渲?,條件指令可以呈以下形式:
[0016]
【權(quán)利要求】
1.一種處理器,其包括: 處理元件; 序列發(fā)生器,其被配置來將條件可執(zhí)行的指令提供到所述處理元件,其中條件是由預(yù)測(cè)計(jì)數(shù)器中編碼的預(yù)測(cè)提供;和 預(yù)測(cè)計(jì)數(shù)器寄存器,其被配置來接收兩個(gè)以上有意義的值并提供其值作為預(yù)測(cè)計(jì)數(shù)。
2.根據(jù)權(quán)利要求1所述的處理器,其還包括: 多個(gè)處理元件,其中每個(gè)處理元件包括預(yù)測(cè)計(jì)數(shù)器寄存器,且其中所述處理器被配置來以單指令多數(shù)據(jù)(SIMD)模式進(jìn)行操作。
3.根據(jù)權(quán)利要求2所述的處理器,其中: 每個(gè)處理元件分成多個(gè)I信道; 所述處理器被配置來以寄存器內(nèi)SMD模式進(jìn)行操作;且 所述處理器還包括預(yù)測(cè)計(jì)數(shù)器組,其中所述預(yù)測(cè)計(jì)數(shù)器組包括至少nX I個(gè)預(yù)測(cè)計(jì)數(shù)器,其中η是處理元件的數(shù)量。
4.根據(jù)權(quán)利要求1所述的處理器,其中所述處理器被配置來以寄存器內(nèi)單指令多數(shù)據(jù)模式進(jìn)行操作。
5.根據(jù)權(quán)利要求4所述的處理器,其中所述處理器包括用于提供取決于所述預(yù)測(cè)計(jì)數(shù)器的IF、ELSE和ENDIF原語的電路系統(tǒng)。
6.根據(jù)權(quán)利要求5所述的處理`器,其中所述IF原語包括: 接收條件; 如果所述預(yù)測(cè)計(jì)數(shù)器不是零,那么所述預(yù)測(cè)計(jì)數(shù)器遞增; 如果所述預(yù)測(cè)計(jì)數(shù)器是零且所述條件為假,那么將所述預(yù)測(cè)計(jì)數(shù)器設(shè)置成I。
7.根據(jù)權(quán)利要求5所述的處理器,其中所述ELSE原語包括: 如果所述預(yù)測(cè)計(jì)數(shù)器是零,那么將所述預(yù)測(cè)計(jì)數(shù)器設(shè)置成I ;和 如果所述預(yù)測(cè)計(jì)數(shù)器是1,那么將所述預(yù)測(cè)計(jì)數(shù)器設(shè)置成零。
8.根據(jù)權(quán)利要求5所述的處理器,其中所述ENDIF原語包括: 如果所述預(yù)測(cè)計(jì)數(shù)器不是零,那么所述預(yù)測(cè)計(jì)數(shù)器遞減。
9.根據(jù)權(quán)利要求1所述的處理器,其中所述處理器包括用于實(shí)施LOOP和NEXT_STAGE原語的電路系統(tǒng),其中: 所述LOOP原語被配置來在展開階段循環(huán)的第一指令前執(zhí)行;和 所述NEXT_STAGE原語被配置來在流水線式階段循環(huán)的階段之間執(zhí)行。
10.根據(jù)權(quán)利要求9所述的處理器,其中所述LOOP原語被配置來以寄存器內(nèi)單指令多數(shù)據(jù)(SWAR)模式進(jìn)行操作,且其中所述LOOP原語被配置來接收多個(gè)SWAR信道作為參數(shù)。
11.一種由計(jì)算機(jī)執(zhí)行的方法,其包括: 接收與預(yù)測(cè)計(jì)數(shù)器被配置來接收兩個(gè)以上有用值相關(guān)的指令; 如果所述預(yù)測(cè)計(jì)數(shù)器是第一值,那么執(zhí)行所述指令;和 如果所述預(yù)測(cè)計(jì)數(shù)器不是所述第一值,那么忽略所述指令。
12.根據(jù)權(quán)利要求11所述的方法,其中所述第一值是零。
13.根據(jù)權(quán)利要求11所述的方法,其中所述第一值選自由零、1、MAXINT、-MAXINT、無窮、負(fù)無窮和非數(shù)值組成的組。
14.根據(jù)權(quán)利要求11所述的方法,其還包括: 如果所述預(yù)測(cè)計(jì)數(shù)器不是第一值,那么采取額外動(dòng)作。
15.根據(jù)權(quán)利要求11所述的方法,其還包括: 執(zhí)行取決于所述預(yù)測(cè)計(jì)數(shù)器的IF、ELSE和ENDIF原語。
16.根據(jù)權(quán)利要求15所述的方法,其中: 所述IF原語包括: 接收條件; 如果所述預(yù)測(cè)計(jì)數(shù)器不是零,那么所述預(yù)測(cè)計(jì)數(shù)器遞增; 如果所述預(yù)測(cè)計(jì)數(shù)器是零且所述條件為假,那么將所述預(yù)測(cè)計(jì)數(shù)器設(shè)置成I。 所述ELSE包括: 如果所述預(yù)測(cè)計(jì)數(shù)器是零,那么將所述預(yù)測(cè)計(jì)數(shù)器設(shè)置成I ;和 如果所述預(yù)測(cè)計(jì)數(shù)器是I,那么將所述預(yù)測(cè)計(jì)數(shù)器設(shè)置成零;且 所述ENDIF原語包括: 如果所述預(yù)測(cè)計(jì)數(shù)器不是零,那么所述預(yù)測(cè)計(jì)數(shù)器遞減。
17.根據(jù)權(quán)利要求11所述的方法,其還包括: 在流水線式階段循環(huán)中于所述第一指令前執(zhí)行LOOP且在所述展開循環(huán)的階段之間執(zhí)行NEXT_STAGE原語,所述LOOP原語和NEXT_STAGE原語的執(zhí)行每個(gè)均取決于所述預(yù)測(cè)計(jì)數(shù)器。
18.一種有形計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)執(zhí)行時(shí)命令處理器進(jìn)行以下各項(xiàng)的軟件指令: 讀取預(yù)測(cè)計(jì)數(shù)器,所述預(yù)測(cè)計(jì)數(shù)器具有兩個(gè)以上有用值; 讀取條件指令; 如果所述預(yù)測(cè)計(jì)數(shù)器是第一值,那么執(zhí)行所述指令; 如果所述預(yù)測(cè)計(jì)數(shù)器不是所述第一值,那么忽略所述指令并基于所述預(yù)測(cè)計(jì)數(shù)器的值操控所述預(yù)測(cè)計(jì)數(shù)器。
19.根據(jù)權(quán)利要求18的有形計(jì)算機(jī)可讀介質(zhì),其中所述操控選自由遞增、遞減和維持所述預(yù)測(cè)計(jì)數(shù)器的所述值組成的組。
20.根據(jù)權(quán)利要求18的有形計(jì)算機(jī)可讀介質(zhì),其還包括嵌套條件分支,所述嵌套條件分支被配置來基于布爾(Boolean)條件和由所述預(yù)測(cè)計(jì)數(shù)器指示的整數(shù)嵌套級(jí)有條件地執(zhí)行指令。
21.根據(jù)權(quán)利要求18的有形計(jì)算機(jī)可讀介質(zhì),其還包括在所述階段循環(huán)開始處具有LOOP原語且在所述階段循環(huán)的每個(gè)階段之間具有NEXT_STAGE原語的展開階段循環(huán)。
22.根據(jù)權(quán)利要求18的有形計(jì)算機(jī)可讀介質(zhì),其還包括在寄存器內(nèi)單指令多數(shù)據(jù)操作內(nèi)使用所述預(yù)測(cè)計(jì)數(shù)器的指令。
【文檔編號(hào)】G06F9/38GK103777922SQ201310487400
【公開日】2014年5月7日 申請(qǐng)日期:2013年10月17日 優(yōu)先權(quán)日:2012年10月23日
【發(fā)明者】A·J·希格哈姆, B·勒納, K·桑海, M·博金斯, J·L·瑞德福特, M·S·艾倫 申請(qǐng)人:亞德諾半導(dǎo)體技術(shù)公司