線程偏差計(jì)數(shù)器的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及計(jì)算領(lǐng)域,尤其涉及到用于流水線處理器的線程偏移計(jì)數(shù)器。
【背景技術(shù)】
[0002] 流水線是通過將任務(wù)劃分成多個(gè)"階段"而加速計(jì)算設(shè)備的性能的方法,其每一個(gè) 可以包含在階段中和其他線程不是相互排斥的一個(gè)或多個(gè)"線程"。例如,流水線級可以包 括:從存儲器讀取用在后一階段的值的第一線程,操作從存儲器中的先前階段讀取數(shù)值的 第二線程,以及向存儲器存儲在以前階段進(jìn)行的操作結(jié)果的值的第三線程。在某些情況下, 流水線的速度和效率可以優(yōu)于線性執(zhí)行,其中每個(gè)指令必須按順序加載、執(zhí)行然后存儲。
【附圖說明】
[0003] 結(jié)合附圖閱讀時(shí),從下面的詳細(xì)描述可最好地理解本發(fā)明。需要強(qiáng)調(diào),按照在該行 業(yè)的標(biāo)準(zhǔn)做法,各種特征不是按比例繪制,并且僅用于說明目的。事實(shí)上,各種特征的尺寸 可任意放大或縮小,為了清楚的討論。
[0004] 圖1是根據(jù)本說明書的一個(gè)或多個(gè)示例實(shí)施例,流水線多核數(shù)字信號處理器的框 圖。
[0005] 圖2是根據(jù)本說明書的一個(gè)或多個(gè)示例實(shí)施例,沒有線程偏移計(jì)數(shù)器執(zhí)行流水線 運(yùn)算的方法的流程圖。
[0006] 圖3是根據(jù)本說明書的一個(gè)或多個(gè)示例實(shí)施例,使用線程偏移計(jì)數(shù)器執(zhí)行流水線 運(yùn)算的方法的流程圖。
【具體實(shí)施方式】
[0007] 在一個(gè)實(shí)施例中,公開了一種數(shù)字信號處理器,包括:第一處理元件,經(jīng)配置以通 信地耦合到存儲器,所述處理元件包括計(jì)算單元;通用寄存器組;和線程數(shù)寄存器,經(jīng)配置 以保持和操作模塊化整數(shù)。
[0008] 在另一個(gè)例子中,公開了一種有形計(jì)算機(jī)可讀存儲介質(zhì),其上為具有N個(gè)迭代的 循環(huán)存儲原語,所述原語可操作以指示所述處理器來初始化循環(huán)計(jì)數(shù)器的值小于N ;預(yù)充 流水線;執(zhí)行具有多個(gè)線程的階段,所述線程由固定整數(shù)加上具有模數(shù)m的模塊化線程偏 移整數(shù)〇τ確定;遞增〇 τ;若循環(huán)計(jì)數(shù)器不為零,則遞減計(jì)數(shù)器,并執(zhí)行再次執(zhí)行步驟;如果 計(jì)數(shù)器是零,刷新流水線。
[0009] 在又一個(gè)示例中,公開了執(zhí)行N次迭代的流水線多級循環(huán)的方法,使用線程偏移 計(jì)數(shù)器〇 τ,包括初始化循環(huán)計(jì)數(shù)器的值小于N ;預(yù)填流水線;執(zhí)行具有多個(gè)線程的階段,所 述線程由固定整數(shù)加〇,識別;遞增〇 τ;若循環(huán)計(jì)數(shù)器不為零,則遞減計(jì)數(shù)器,并再次執(zhí)行 所述執(zhí)行步驟;如果計(jì)數(shù)器是零,刷新流水線。
[0010] 本公開的示例實(shí)施方案
[0011] 下面的公開提供了許多不同的實(shí)施例或示例,用于實(shí)現(xiàn)本發(fā)明的不同特征。部件 和安排的具體實(shí)例描述如下,以簡化本公開。這些當(dāng)然僅僅是示例,并且不旨在進(jìn)行限制。 此外,本發(fā)明可以在各種示例中重復(fù)附圖標(biāo)記和/或字母。這種重復(fù)是為了簡化和清楚的 目的,其本身并不決定所討論的各種實(shí)施例和/或配置之間的關(guān)系。
[0012] 不同的實(shí)施例具有不同的優(yōu)點(diǎn),并沒有特別的優(yōu)點(diǎn)是任何實(shí)施例必需的。
[0013] "原語"如在本說明書中明確地定義,作為可用于與其它原語或高級操作相結(jié)合以 建立更高級別操作的基本或原始的計(jì)算操作,并且可是(作為非限制性示例)用戶可訪問 的硬件指令、執(zhí)行為硬件指令一部分的非用戶可訪問操作、用戶可訪問的軟件程序、或者執(zhí) 行作為用戶可訪問的軟件程序的一部分的非用戶訪問軟件程序、用戶可訪問微碼、或者執(zhí) 行作為用戶可訪問微碼的一部分的非用戶可訪問微碼。示例原語可以具有三個(gè)平行階段: (1)數(shù)據(jù)負(fù)載;(2)原語的執(zhí)行,和(3)數(shù)據(jù)存儲。
[0014] 為了優(yōu)化處理器或硬件加速器的性能,操作的多個(gè)階段可以被流水線化,其中,例 如,單一階段可包括三個(gè)或多個(gè)平行原語,諸如(加載,執(zhí)行,存儲)。在一個(gè)示例中,三個(gè) 線程被定義。當(dāng)處理器正在對線程4執(zhí)行原語,諸如乘法,直接存儲器存?。―M)引擎可 以被寫出來或存儲線程T im的結(jié)果,其結(jié)果在以前的階段中計(jì)算,并讀入或裝入線τ N+1數(shù) 據(jù),用于執(zhí)行下一階段。這意味著該處理核心可以被優(yōu)化,以繼續(xù)對數(shù)據(jù)操作,而不必等待 數(shù)據(jù)加載和數(shù)據(jù)存儲操作完成。
[0015] 示例處理器可以提供用戶可訪問的原語(諸如,微碼),其允許加工精細(xì)控制。在 這種情況下,用戶可以定義N次迭代循環(huán),使用三個(gè)線程,或者換言之,M = 3。值M = 3 (對 應(yīng)于三個(gè)流水線階段)公開了作為一個(gè)例子,但應(yīng)注意,實(shí)施例是非限制性的,并且M不必 是和流水線級的相同數(shù)目,并且可是任何正整數(shù),并且更具體地正整數(shù),M>2。
[0016] 示例微代碼可以如下處理,其中" 11 "表明并行操作:
【主權(quán)項(xiàng)】
1. 一種數(shù)字信號處理器,包括: 第一處理元件,經(jīng)配置以通信地耦合到存儲器,所述處理元件包括: 計(jì)算單元; 通用寄存器組;和 線程數(shù)寄存器,經(jīng)配置以保持和操作模塊化整數(shù)。
2. 根據(jù)權(quán)利要求1所述的數(shù)字信號處理器,其中,所述模塊化整數(shù)的模量是3。
3. 根據(jù)權(quán)利要求1所述的數(shù)字信號處理器,其中,所述模塊化整數(shù)的模量是用戶可配 置的。
4. 根據(jù)權(quán)利要求1所述的數(shù)字信號處理器,進(jìn)一步包括實(shí)質(zhì)上相同于第一處理單元的 多個(gè)處理元件。
5. 根據(jù)權(quán)利要求1所述的數(shù)字信號處理器通信地耦合到存儲介質(zhì),其上存儲原語,用 于執(zhí)行具有N次迭代的循環(huán),所述原語可操作以指示處理器: 初始化循環(huán)計(jì)數(shù)器的值小于N; 預(yù)充流水線; 執(zhí)行具有多個(gè)線程的階段,所述線程由固定整數(shù)加上在線程計(jì)數(shù)寄存器中存儲的整數(shù) 確定; 遞增線程計(jì)數(shù)器; 若循環(huán)計(jì)數(shù)器不為零,則遞減計(jì)數(shù)器,并再次執(zhí)行所述執(zhí)行步驟;和 如果計(jì)數(shù)器是零,刷新流水線。
6. 其上存儲原語的有形計(jì)算機(jī)可讀存儲介質(zhì),用于具有N個(gè)迭代的循環(huán),所述原語可 操作以指示所述處理器以: 初始化循環(huán)計(jì)數(shù)器的值小于N; 預(yù)充流水線; 執(zhí)行具有多個(gè)線程的階段,所述線程由固定整數(shù)加上具有模數(shù)M的模塊化線程偏移整 數(shù)Ot確定; 遞增〇T; 若循環(huán)計(jì)數(shù)器不為零,則遞減計(jì)數(shù)器,并再次執(zhí)行所述執(zhí)行步驟; 如果計(jì)數(shù)器是零,刷新流水線。
7. 根據(jù)權(quán)利要求6所述的有形計(jì)算機(jī)可讀存儲介質(zhì),其中,M= 3。
8. 根據(jù)權(quán)利要求7所述的有形計(jì)算機(jī)可讀存儲介質(zhì),其中: 預(yù)填流水線包括執(zhí)行具有單個(gè)線程的第一階段,所述單個(gè)線程包括加載第一值,并使 用第一線程執(zhí)行第二階段,包括使用所述第一值作為輸入,平行于包括加載第二值的第二 線程執(zhí)行原語。
9. 根據(jù)權(quán)利要求7所述的有形計(jì)算機(jī)可讀存儲介質(zhì),其中,所述多個(gè)線程由固定整數(shù) 加模塊化線程偏移整數(shù)識別,包括: 以形式(2+0T,1+0T,0+0T)的并行(加載,執(zhí)行,存儲)。
10. 根據(jù)權(quán)利要求6所述的有形計(jì)算機(jī)可讀存儲介質(zhì),其中,初始化計(jì)數(shù)器包括初始化 計(jì)數(shù)器的N-M-I的值。
11. 根據(jù)權(quán)利要求10所述的有形計(jì)算機(jī)可讀存儲介質(zhì),其中,預(yù)填充所述流水線包括 執(zhí)行N-M-I級,其中第一級具有一個(gè)線程,以及每個(gè)其他級比其前級多一個(gè)線程。
12. 根據(jù)權(quán)利要求10所述的的有形計(jì)算機(jī)可讀存儲介質(zhì),其中,刷新流水線包括執(zhí)行 N-M-I級,其中第一級具有N-M-I個(gè)線程,以及每個(gè)其他級比其前級少一個(gè)線程。
13. -種執(zhí)行N次迭代的流水線多級循環(huán)的方法,使用線程偏移計(jì)數(shù)器OT,包括: 初始化循環(huán)計(jì)數(shù)器的值小于N; 預(yù)填流水線; 執(zhí)行具有多個(gè)線程的階段,所述線程由固定整數(shù)加〇3只別; 遞增〇T; 若循環(huán)計(jì)數(shù)器不為零,則遞減計(jì)數(shù)器,并再次執(zhí)行所述執(zhí)行步驟; 果計(jì)數(shù)器是零,刷新流水線。
14.根據(jù)權(quán)利要求13的方法,其中,所述線程偏移計(jì)數(shù)器0T是具有模數(shù)M的模塊化整 數(shù)。
15.根據(jù)權(quán)利要求14所述的方法,其中,M=3。
16.根據(jù)權(quán)利要求15所述的方法,其中: 預(yù)填流水線包括執(zhí)行具有單個(gè)線程的第一階段,所述單個(gè)線程包括加載第一值,并使 用第一線程執(zhí)行第二階段,包括使用所述第一值作為輸入,平行于包括加載第二值的第二 線程執(zhí)行原語。
17.根據(jù)權(quán)利要求15所述的方法,其中,所述多個(gè)線程由固定整數(shù)加模塊化線程偏移 整數(shù)識別,包括: 以形式(2+0T,1+0T,0+0T)的并行(加載,執(zhí)行,存儲)。
18.根據(jù)權(quán)利要求14所述的方法,其中,初始化計(jì)數(shù)器包括初始化計(jì)數(shù)器的N-M-I的 值。
19.根據(jù)權(quán)利要求18所述的方法,其中,刷新流水線包括執(zhí)行N-M-I級,其中第一級具 有N-M-I個(gè)線程,以及每個(gè)其他級比其前級多一個(gè)線程。
20.根據(jù)權(quán)利要求18所述的方法,其中,刷新流水線包括執(zhí)行N-M-I級,其中第一級具 有N-M-I個(gè)線程,以及每個(gè)其他級比其前級多一個(gè)線程。
【專利摘要】在一個(gè)實(shí)施例中,公開了具有包含配置以用作線程偏移計(jì)數(shù)器的模塊化整數(shù)的寄存器的數(shù)字信號處理器。在多級流水線循環(huán),其可以在微碼中實(shí)現(xiàn),循環(huán)的主體只有一個(gè)重復(fù)階段。在每個(gè)階段中,由單一重復(fù)階段的每個(gè)線程中執(zhí)行的操作由固定整數(shù)與所述線程偏移計(jì)數(shù)器的總和識別。在每次通過循環(huán)之后,線程偏移計(jì)數(shù)器遞增,從而保持單個(gè)重復(fù)階段的流水線操作。
【IPC分類】G06F9-38
【公開號】CN104699460
【申請?zhí)枴緾N201410723083
【發(fā)明人】B·勒納
【申請人】美國亞德諾半導(dǎo)體公司
【公開日】2015年6月10日
【申請日】2014年12月3日
【公告號】EP2884388A1, US20150154027