基于微核的可重構(gòu)處理器、調(diào)度設(shè)備及其方法
【專利摘要】提供了一種基于微核的可重構(gòu)處理器、調(diào)度設(shè)備及其方法。所述基于微核(MC)的可重構(gòu)處理器包括多個MC,所述多個MC中的每個MC包括一組功能單元(FU),所述一組FU具有獨立執(zhí)行循環(huán)迭代的能力。所述多個MC包括:第一MC,被配置為執(zhí)行第一循環(huán)迭代;第二MC,被配置為執(zhí)行第二循環(huán)迭代。
【專利說明】基于微核的可重構(gòu)處理器、調(diào)度設(shè)備及其方法
[0001]本申請要求于2012年3月16日提交的第10-2012-0027400號韓國專利申請的權(quán)益,所述申請的全部公開通過引用為所有目的合并于此。
【技術(shù)領(lǐng)域】
[0002]以下描述涉及可重構(gòu)架構(gòu)和循環(huán)調(diào)度方法。
【背景技術(shù)】
[0003]一般而言,可重構(gòu)架構(gòu)是可改變計算設(shè)備的硬件配置使得硬件配置針對特定任務(wù)最優(yōu)化的架構(gòu)。
[0004]由于固定的硬件功能,僅在硬件中處理特定任務(wù)難以有效地處理在所述任務(wù)的處理期間做出的修改或改變,而僅在軟件中處理特定任務(wù)可容易地處理在所述任務(wù)的處理期間做出的修改或改變,但與任務(wù)的硬件處理相比,僅在軟件中處理特定任務(wù)導(dǎo)致低處理速度。
[0005]可重構(gòu)架構(gòu)已被設(shè)計為獲得硬件處理和軟件處理的所有優(yōu)點。具體地講,可重構(gòu)架構(gòu)已在迭代執(zhí)行相同任務(wù)的數(shù)字信號處理領(lǐng)域吸引了大量關(guān)注。
[0006]代表性的可重構(gòu)架構(gòu)是粗粒度陣列(CGA)。CGA由多個處理單元組成,并可通過改變處理單元之間的連接而針對特定任務(wù)被最優(yōu)化。
[0007]對于一般的CGA而言難以快速獲得用于循環(huán)調(diào)度的合適解決方案,因此已開發(fā)出用于解決該問題的多種啟發(fā)式算法。傳統(tǒng)的算法是基于模調(diào)度來增加CGA的功能單元的利用率。在傳統(tǒng)的算法中,當(dāng)功能單元的數(shù)量少時,可獲得功能單元的高利用率,但是當(dāng)使用大量功能單元時,難以獲得功能單元的高利用率。
【發(fā)明內(nèi)容】
[0008]在一總體方面,一種基于微核(MC)的可重構(gòu)處理器包括多個MC,所述多個MC中的每個MC包括一組功能單元(FU),所述一組功能單元具有獨立執(zhí)行循環(huán)迭代的能力;其中,所述多個MC包括:第一 MC,被配置為執(zhí)行第一循環(huán)迭代;第二 MC,被配置為執(zhí)行第二循環(huán)迭代。
[0009]第二 MC還可被配置為當(dāng)在第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴時,在第一 MC開始執(zhí)行第一循環(huán)迭代之后開始執(zhí)行第二循環(huán)迭代。
[0010]所述多個MC中的每個MC的FU可以是同類的FU。
[0011]所述多個MC中的每個MC的FU可以是不同類的FU。
[0012]所述可重構(gòu)處理器還可包括:外部鏈路,被配置為將所述多個MC彼此連接;其中,所述多個MC中的每個MC還包括;內(nèi)部鏈路,被配置為將MC的FU彼此連接。
[0013]在另一總體方面,一種基于微核(MC)的調(diào)度設(shè)備包括局部調(diào)度器,所述局部調(diào)度器被配置為:將第一循環(huán)迭代映射到多個MC中的第一 MC ;將第二循環(huán)迭代映射到多個MC中的第二 MC ;其中,所述多個MC中的每個MC包括一組功能單元(FU),所述一組FU具有獨立執(zhí)行循環(huán)迭代的能力。
[0014]所述調(diào)度設(shè)備還可包括:全局調(diào)度器,被配置為當(dāng)在第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴時,調(diào)整第一循環(huán)迭代和第二循環(huán)迭代之間的映射關(guān)系以產(chǎn)生循環(huán)傾斜。
[0015]所述全局調(diào)度器還可被配置為:相對于第一循環(huán)迭代延時第二循環(huán)迭代;將延時的第二循環(huán)迭代映射到第二 MC。
[0016]第二MC可被物理地連接到第一MC ;全局調(diào)度器還可被配置為:將第一循環(huán)迭代映射到第一 MC ;相對于第一循環(huán)迭代延時第二循環(huán)迭代;將延時的第二循環(huán)迭代映射到第二MC0
[0017]所述調(diào)度設(shè)備還可包括:MC配置單元,被配置為將可重構(gòu)處理器中的多個FU分組為所述多個MC中的每個MC的一組FU。
[0018]在另一總體方面,一種用于基于微核(MC)并包括多個功能單元(FU)的可重構(gòu)處理器的調(diào)度方法包括:將可重構(gòu)處理器中的FU分組為多個MC,所述多個MC中的每個MC包括一組FU,所述一組FU具有獨立執(zhí)行循環(huán)迭代的能力;將第一循環(huán)迭代映射到所述多個MC中的第一 MC ;將第二循環(huán)迭代映射到所述多個MC中的第二 MC。
[0019]所述調(diào)度方法還可包括:當(dāng)在第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴時,調(diào)整第一循環(huán)迭代和第二循環(huán)迭代之間的映射關(guān)系。
[0020]所述調(diào)整映射關(guān)系的步驟可包括:相對于第一循環(huán)迭代延時第二循環(huán)迭代;將延時的第二循環(huán)迭代映射到第二 MC。
[0021]第二MC可被物理地連接到第一MC ;所述調(diào)整映射關(guān)系的步驟可包括:將第一循環(huán)迭代映射到第一 MC ;相對于第一循環(huán)迭代延時第二循環(huán)迭代;將延時的第二循環(huán)迭代映射到第二 MC。
[0022]在另一總體方面,一種可重構(gòu)處理器包括:多個功能單元(FU),具有被重構(gòu)為多組FU以形成多個微核(MC)的能力;其中,所述多組FU中的每組具有獨立執(zhí)行循環(huán)迭代的能力;所述多個MC中的每個MC包括所述多組FU中的相應(yīng)一組FU ;所述多個MC中的每個MC被配置為執(zhí)行多個循環(huán)迭代中的不同的循環(huán)迭代。
[0023]所述多個MC可被配置為當(dāng)在循環(huán)迭代之間不存在依賴時,開始同時執(zhí)行循環(huán)迭代中的各個循環(huán)迭代。
[0024]當(dāng)在循環(huán)迭代之間存在依賴時,所述多個MC之一被配置為執(zhí)行循環(huán)迭代中的第一循環(huán)迭代,除執(zhí)行第一循環(huán)迭代的MC以外的所述多個MC中的每個MC被配置為在循環(huán)迭代中的緊接的前一循環(huán)迭代被執(zhí)行之后的預(yù)定時間,開始執(zhí)行循環(huán)迭代中的相應(yīng)的循環(huán)迭代。多組FU中的每組FU中的FU可以是同類的FU。
[0025]多組FU中的每組FU中的FU可以是不同類的FU。
[0026]所述可重構(gòu)處理器還可包括具有被重構(gòu)為外部鏈路和多個內(nèi)部鏈路的能力的多個可重構(gòu)鏈路;其中,外部鏈路可被配置為將所述多個MC彼此連接;每個內(nèi)部鏈路可被配置為將所述多個MC中的各個MC的FU彼此連接。
[0027]從以下詳細(xì)的描述、附圖和權(quán)利要求,其它特征和方面將是清楚的。
【專利附圖】
【附圖說明】
[0028]圖1是示出可重構(gòu)處理器的配置的示例的示圖。[0029]圖2是示出可重構(gòu)處理器的配置的另一示例的示圖。
[0030]圖3是示出用于可重構(gòu)處理器的調(diào)度設(shè)備的示例的示圖。
[0031]圖4是用于解釋基于微核(MC)的循環(huán)映射方法的示例的示圖。
[0032]圖5是用于解釋基于MC的循環(huán)映射方法的另一不例的不圖。
[0033]圖6A和圖6B是示出用于MC之間的通信的結(jié)構(gòu)的示例的示圖。
[0034]圖7是示出控制存儲器和MC之間的連接結(jié)構(gòu)的示例的示圖。
[0035]圖8是示出可重構(gòu)處理器的配置的另一示例的示圖。
[0036]圖9是示出用于可重構(gòu)處理器的調(diào)度方法的示例的流程圖。
【具體實施方式】
[0037]提供以下的描述以幫助讀者獲得在此描述的方法、設(shè)備和/或系統(tǒng)的全面理解。然而,在此描述的方法、設(shè)備和/或系統(tǒng)的各種改變、修改和等同物對于本領(lǐng)域的普通技術(shù)人員而言將是清楚的。此外,為了更加清楚和簡潔,可省略對于本領(lǐng)域普通技術(shù)人員而言已知的功能和構(gòu)造的描述。
[0038]在整個附圖和詳細(xì)描述中,相同的標(biāo)號表示相同的元件。附圖可以不是按比例的,并且為了清楚、說明和便利,附圖中的元件的相對大小、比例和描述可被夸大。
[0039]圖1是示出可重構(gòu)處理器100的配置的示例的示圖。參照圖1,可重構(gòu)處理器100包括多個微核(MC)。
[0040]每個MC包括多個功能單元(FU)。每個FU執(zhí)行多種算術(shù)運算和/或邏輯運算。
[0041]每個MC可獨立地執(zhí)行至少一個循環(huán)迭代。獨立的執(zhí)行可表示循環(huán)迭代可在MC中被完整地執(zhí)行而不需其它MC的幫助。例如,MC#0可使用FU#0、FU#UFU#4和FU#5完成特定循環(huán)迭代的執(zhí)行。也就是說,MC可被定義為可執(zhí)行循環(huán)迭代的一組FU (B卩,具有獨立地執(zhí)行循環(huán)迭代的能力的一組FU)。
[0042]各個MC可根據(jù)軟件流水線執(zhí)行不同的循環(huán)迭代。例如,MC#0可執(zhí)行第一循環(huán)迭代,MC#1可執(zhí)行第二循環(huán)迭代。換句話說,在基于軟件流水線的循環(huán)調(diào)度中,每個MC可以
是調(diào)度單元。
[0043]當(dāng)?shù)谝谎h(huán)迭代和第二循環(huán)迭代之間存在依賴時,第二循環(huán)迭代被映射到的MC在第一循環(huán)迭代的執(zhí)行開始之后開始執(zhí)行第二循環(huán)迭代。如果第一循環(huán)迭代被映射到MC#0,第二循環(huán)迭代被映射到MC#1,并且第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴,則MC#1在MC#0開始執(zhí)行第一循環(huán)迭代之后開始執(zhí)行第二循環(huán)迭代。換句話說,如果第一循環(huán)迭代和第二循環(huán)迭代之間存在遞歸,則考慮所述遞歸調(diào)整循環(huán)迭代開始被執(zhí)行的時間點。
[0044]在一示例中,每個MC的FU是同類的FU。例如,MC#0中的FU#0、FU#1、FU#4和FU#5具有相同的配置。
[0045]在另一示例中,每個MC的FU是不同類的FU。例如,MC#0的FU#0、FU#1、FU#4和FU#5中的至少兩個具有不同的配置。每個MC中的至少兩個FU可具有不同的計算能力。計算能力可以是由對應(yīng)的FU支持的一種運算。例如,具有完整計算能力的MC可被定義為一組均具有部分計算能力的FU。完整計算能力可被定義為執(zhí)行至少一個循環(huán)迭代所需的一種運算。
[0046]可重構(gòu)處理器100還包括外部鏈路110和每個MC中的內(nèi)部鏈路120a(在圖1中僅MC#0中的內(nèi)部鏈路被標(biāo)號120a標(biāo)識)。外部鏈路110提供MC之間的通信路徑,每個MC中的內(nèi)部鏈路120a提供MC的FU之間的通信路徑??芍貥?gòu)處理器100可包括具有被重構(gòu)為外部鏈路110和內(nèi)部鏈路120a的能力的多個可重構(gòu)鏈路。
[0047]可重構(gòu)處理器100還包括局部寄存器文件(RF) 130a和全局寄存器文件150。局部寄存器文件130a存儲由FU執(zhí)行的運算的結(jié)果或FU的上下文信息,全局寄存器文件150存儲由MC執(zhí)行的運算的結(jié)果或MC的上下文信息。
[0048]可重構(gòu)處理器100還包括控制存儲器140??刂拼鎯ζ?40定義FU和/或MC之間的連接關(guān)系。換句話說,可根據(jù)存儲在控制存儲器140中的配置信息針對執(zhí)行程序來最優(yōu)化可重構(gòu)處理器100。
[0049]圖2是示出可重構(gòu)處理器200的配置的另一示例的示圖。參照圖2,可重構(gòu)處理器200包括多個均具有多個FU的MC、局部寄存器文件130a、全局寄存器文件150、控制存儲器140以及鏈路210和220。FU、MC、局部寄存器文件130、全局寄存器文件150和控制存儲器140與以上參照圖1描述的對應(yīng)的組件相同,因此將省略其對應(yīng)的詳細(xì)描述。
[0050]在圖2中,可重構(gòu)處理器200具有以4X4網(wǎng)格拓?fù)浣Y(jié)構(gòu)連接的16個FU邏輯上形成4個MC的配置。例如,MC之間的鏈路(例如,210)用作圖1的外部鏈路110,每個MC中的鏈路(例如,220)用作圖1的內(nèi)部鏈路120a。
[0051]圖3是示出用于可重構(gòu)處理器的調(diào)度設(shè)備300的示例的示圖??蓪⒄{(diào)度設(shè)備300應(yīng)用于圖1和圖2中示出的基于MC的可重構(gòu)處理器100和200。參照圖1、圖2和圖3,調(diào)度設(shè)備300包括MC配置單元310、局部調(diào)度器320和全局調(diào)度器330。
[0052]MC配置單元310將包括在可重構(gòu)處理器100或200中的多個FU分組為多個MC。MC配置單元310將能夠獨立地執(zhí)行循環(huán)迭代的一組FU分組為一個MC。例如,MC配置單元310使用可重構(gòu)處理器100或200的硬件信息定義MC??芍貥?gòu)處理器100或200的硬件信息包括關(guān)于FU的計算能力和連接關(guān)系的信息。
[0053]局部調(diào)度器320將第一循環(huán)迭代映射到第一 MC并將第二循環(huán)迭代映射到第二 MC。換句話說,當(dāng)調(diào)度根據(jù)軟件流水線循環(huán)時,局部調(diào)度器320將MC用作調(diào)度單元。
[0054]全局調(diào)度器330將第一循環(huán)迭代映射到第一 MC。另外,當(dāng)?shù)谝谎h(huán)迭代和第二循環(huán)迭代之間存在依賴或遞歸時,全局調(diào)度器330調(diào)整映射關(guān)系以產(chǎn)生預(yù)定的循環(huán)傾斜(loop skew)。例如,全局調(diào)度器330相對于第一循環(huán)迭代延時第二循環(huán)迭代,隨后將經(jīng)過延時的第二循環(huán)迭代映射到第二 MC。第二 MC可被物理地連接到第一循環(huán)迭代被映射到的第 一 MC。
[0055]圖3中所示的塊已根據(jù)它們的功能被邏輯地分類。因此,可根據(jù)不同的標(biāo)準(zhǔn)對圖3中示出的塊的功能進(jìn)行分類。例如,圖3中示出的兩個或更多個塊可被集成到單個塊,或者由圖3中示出的塊之一執(zhí)行的一部分功能可由圖3中示出的其它塊中的一個或多個執(zhí)行。
[0056]圖4是用于解釋基于MC的循環(huán)映射方法的示例的示圖。參照圖3和圖4,由于在循環(huán)迭代之間不存在依賴,因此圖4中所示的循環(huán)映射方法對應(yīng)于由局部調(diào)度器320執(zhí)行映射的情況。
[0057]在圖4中,把將被執(zhí)行的循環(huán)分割為四個執(zhí)行單元A、B、C和D。每個執(zhí)行單元可以是指令。為了便于描述,將假設(shè)執(zhí)行單元A、B、C和D是指令。也就是說,循環(huán)可以是依次執(zhí)行指令A(yù)、B、C和D的應(yīng)用程序,并且指令A(yù)、B、C和D的順序執(zhí)行被迭代執(zhí)行。[0058]在此示例中,在循環(huán)迭代之間不存在依賴。例如,可同時執(zhí)行第一循環(huán)迭代α =
0)的指令B和第二循環(huán)迭代(i= I)的指令B。
[0059]參照圖3和圖4,局部調(diào)度器320將第一循環(huán)迭代(i = O)映射到MC#0并將第二循環(huán)迭代(i = D映射到MC#1。如圖4中所示,如果四個MC被配置,則局部調(diào)度器320將第五循環(huán)迭代(i = 4)映射到MCm并將第六循環(huán)迭代(i = 5)映射到MC#1。
[0060]由于基于均能夠獨立地執(zhí)行循環(huán)迭代的MC來執(zhí)行圖4的示例中的循環(huán)調(diào)度,因此即使FU的數(shù)量增加,也可保證循環(huán)調(diào)度的效率和可擴展性。
[0061]圖5是用于解釋基于MC的循環(huán)映射方法的另一不例的不圖。參照圖3和圖5,由于在循環(huán)迭代之間存在依賴,因此循環(huán)映射方法對應(yīng)于由局部調(diào)度器320和全局調(diào)度器330兩者執(zhí)行映射的情況。
[0062]在圖5中,把將被執(zhí)行的循環(huán)分割為四個執(zhí)行單元A、B、C和D。每個執(zhí)行單元可以是指令。為了便于描述,將假設(shè)A、B、C和D是指令。也就是說,循環(huán)可以是依次執(zhí)行指令A(yù)、B、C和D的應(yīng)用程序,并且指令A(yù)、B、C和D的順序執(zhí)行被迭代執(zhí)行。
[0063]如上所述,在此示例中,在循環(huán)迭代之間存在依賴。例如,在指令B的情況下,如果如圖5中所示第一循環(huán)迭代α = ο)的執(zhí)行的結(jié)果被用作第二循環(huán)迭代a = D的輸入,則可確定第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴或遞歸。圖5中的指令之間的帶箭頭的虛線表示循環(huán)間數(shù)據(jù)傳輸(即,依賴或遞歸)。
[0064]參照圖3和圖5,局部調(diào)度器320將第一循環(huán)迭代(i = O)映射到MC#0并將第二循環(huán)迭代(i = D映射到MC#1。如圖5中所示,如果四個MC被配置,則局部調(diào)度器320將第五循環(huán)迭代(i = 4)映射到MCm并將第六循環(huán)迭代(i = 5)映射到MC#1。
[0065]由于在循環(huán)迭代之間存在依賴或遞歸,因此全局調(diào)度器330將第二循環(huán)迭代(i =
1)延時預(yù)定時間(例如,d),隨后將延時的第二循環(huán)迭代映射到MC#1。此外,全局調(diào)度器330將第三循環(huán)迭代(i = 2)延時預(yù)定時間(例如,2d),隨后將延時的第三循環(huán)迭代映射到MC#2。此外,全局調(diào)度器330將第四循環(huán)迭代(i = 3)延時預(yù)定時間(例如,3d),隨后將延時的第四循環(huán)迭代映射到MC#3??煽紤]依賴或遞歸而將預(yù)定延時時間定義為合適的值,使得對應(yīng)遞歸的寫入(writing)被盡可能早地執(zhí)行,并且對應(yīng)遞歸的讀取(reading)被盡可能晚地執(zhí)行。該目的在于使得由于第一循環(huán)迭代和第二循環(huán)迭代之間的依賴而產(chǎn)生的第二循環(huán)迭代的延時時間最小化。
[0066]全局調(diào)度器330調(diào)整映射關(guān)系,使得與遞歸相關(guān)的數(shù)據(jù)通過MC之間的直接連接被傳輸??蛇x擇地,全局調(diào)度器330可調(diào)整映射關(guān)系,使得與遞歸相關(guān)的數(shù)據(jù)通過局部寄存器文件(例如,130a)、全局寄存器文件150或外部存儲器(未不出)被傳輸。
[0067]從圖5可知:如果存在依賴或遞歸,則所有MC在初始階段之后的穩(wěn)定狀態(tài)下進(jìn)行運算。如果由MC執(zhí)行的每周期的指令(IPC)的平均數(shù)是“k”,則在穩(wěn)定狀態(tài)下可執(zhí)行每周期“kX (MC的數(shù)量)”個指令。
[0068]圖6A和圖6B是示出用于MC之間的通信的結(jié)構(gòu)的示例的示圖。在大多數(shù)情況下,MC僅將數(shù)據(jù)傳輸?shù)剿鼈兊泥徑麺C,因此使用如圖6A中所示的環(huán)形總線或者使用如圖6B中所示的數(shù)據(jù)隊列可獲得高可擴展性。然而,當(dāng)必要時,諸如在相對不尋常的彼此遠(yuǎn)離的循環(huán)迭代之間的數(shù)據(jù)傳輸?shù)那闆r下,可使用全局寄存器文件或外部存儲器傳輸數(shù)據(jù)。
[0069]圖7是示出控制存儲器和MC之間的連接結(jié)構(gòu)的示例的示圖。在此示例中,MC根據(jù)循環(huán)調(diào)度算法共享相同的控制信息。然而,如果在循環(huán)迭代之間存在依賴,則MC以預(yù)定時間差進(jìn)行運算。因此,MC通過連接到控制存儲器710并具有用于解釋所述時間差的分層結(jié)構(gòu)的子存儲器720來共享相同的控制信息。子存儲器720的配置不限于任何特定配置,并且子存儲器720可包括高速緩存或觸發(fā)器(flip-flops)。
[0070]圖8是示出可重構(gòu)處理器800的配置的另一示例的示圖。參照圖8,可重構(gòu)處理器800包括循環(huán)控制器810、電源控制器820和多個微核(MC)。
[0071]圖8中所示的循環(huán)控制器810和微核之間的直接連接使循環(huán)控制器810能夠?qū)⑿盘杺鬏數(shù)組C,使得每個MC可在預(yù)定時間進(jìn)行運算,并還使已執(zhí)行最后的循環(huán)迭代的MC能夠?qū)⑿盘杺鬏數(shù)窖h(huán)控制器810,以終止整個循環(huán)的迭代。
[0072]電源控制器820防止電源被施加到一些MC,使得那些MC不進(jìn)行運算。電源控制器820可根據(jù)調(diào)度或應(yīng)用的目的停止任何MC的運算。
[0073]圖9是示出用于可重構(gòu)處理器的調(diào)度方法的示例的流程圖。參照圖3和圖9,根據(jù)調(diào)度方法將FU分組為若干MC(901)。例如,MC配置單元310可將包括在可重構(gòu)處理器中的多個FU分組為多個MC,每個MC被定義為可獨立執(zhí)行循環(huán)迭代的一組FU。
[0074]隨后,將每個循環(huán)迭代映射到MC(902)。例如,局部調(diào)度器320將第一循環(huán)迭代映射到第一 MC,并將第二循環(huán)迭代映射到第二 MC。
[0075]隨后,基于循環(huán)迭代之間的依賴調(diào)整映射關(guān)系(903)。例如,如果在第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴,則如例如圖5中所示,全局調(diào)度器330調(diào)整映射關(guān)系以考慮依賴或遞歸產(chǎn)生循環(huán)傾斜。
[0076]在以上描述的示例中,由于考慮遞歸而使用MC來調(diào)度循環(huán),因此即使在大型系統(tǒng)中,也可實現(xiàn)每周期大量的指令(IPC)和良好的可擴展性。
[0077]可使用一個或多個硬件組件、一個或多個軟件組件、或者一個或多個硬件組件和一個或多個軟件組件的組合來實現(xiàn)以上描述的調(diào)度設(shè)備300、MC配置單元310、局部調(diào)度器320、全局調(diào)度器330、循環(huán)控制器810和電源控制器820。
[0078]硬件組件可以是例如物理地執(zhí)行一個或多個運算的物理裝置,但不限于此。硬件組件的示例包括放大器、低通濾波器、高通濾波器、帶通濾波器、模數(shù)轉(zhuǎn)換器、數(shù)模轉(zhuǎn)換器、總線、存儲器裝置和處理裝置。
[0079]可通過例如由軟件或指令控制的處理裝置實現(xiàn)軟件組件以執(zhí)行一個或多個運算,但不限于此。計算機、控制器或其它控制裝置可使處理裝置運行軟件或執(zhí)行指令??赏ㄟ^一個處理裝置實現(xiàn)一個軟件組件,或者可通過一個處理器裝置實現(xiàn)兩個或多個軟件組件,或者可通過兩個或更多個處理裝置實現(xiàn)一個軟件組件,或者可通過兩個或更多個處理裝置實現(xiàn)兩個或更多個軟件組件。
[0080]可使用一個或多個通用或?qū)S糜嬎銠C(諸如,例如處理器、控制器和算術(shù)邏輯單元、數(shù)字信號處理器、微計算機、現(xiàn)場可編程門陣列、可編程邏輯單元、微處理器或能夠運行軟件或執(zhí)行指令的任何其它裝置)實現(xiàn)處理裝置。處理裝置可運行操作系統(tǒng)(OS),并可運行在OS下操作的一個或多個軟件應(yīng)用。當(dāng)運行軟件或執(zhí)行指令時,處理裝置可訪問、存儲、操作、處理和創(chuàng)建數(shù)據(jù)。為簡單起見,可在本說明書中使用單數(shù)指代“處理裝置”,但本領(lǐng)域的普通技術(shù)人員將理解,處理裝置可包括多個處理元件和多種類型的處理元件。例如,處理裝置可包括一個或多個處理器,或包括一個或多個處理器和一個或多個控制器。另外,不同的處理配置是可能的,諸如,并行處理器或多核處理器。
[0081]被配置為實現(xiàn)軟件組件以執(zhí)行運算A的處理裝置可包括被編程為運行軟件或執(zhí)行指令以控制處理器執(zhí)行運算A的處理器。另外,被配置為實現(xiàn)軟件組件以執(zhí)行運算A、運算B和運算C的處理裝置可具有多種配置,諸如,例如:被配置為實現(xiàn)軟件組件以執(zhí)行運算A、運算B和運算C的處理器;被配置為實現(xiàn)軟件組件以執(zhí)行運算A的第一處理器、和被配置為實現(xiàn)軟件組件以執(zhí)行運算B和運算C的第二處理器;被配置為實現(xiàn)軟件組件以執(zhí)行運算A和運算B的第一處理器、和被配置為實現(xiàn)軟件組件以執(zhí)行運算C的第二處理器;被配置為實現(xiàn)軟件組件以執(zhí)行運算A的第一處理器、被配置為實現(xiàn)軟件組件以執(zhí)行運算B的第二處理器、和被配置為實現(xiàn)軟件組件以執(zhí)行運算C的第三處理器;被配置為實現(xiàn)軟件組件以執(zhí)行運算A、運算B和運算C的第一處理器、和被配置為實現(xiàn)軟件組件以執(zhí)行運算A、運算B和運算C的第二處理器,或均實現(xiàn)運算A、運算B和運算C中的一個或多個的一個或多個處理器的任何其它配置。雖然這些示例涉及三個運算A、B和C,但可實現(xiàn)的運算的數(shù)量不限于三個,而可以是實現(xiàn)期望的結(jié)果或執(zhí)行期望的任務(wù)所需的任意數(shù)量的運算。
[0082]用于控制處理裝置以實現(xiàn)軟件組件的軟件或指令可包括計算機程序、一段代碼、指令或計算機程序、一段代碼、指令的某些組合,以獨立或共同地指示或配置處理裝置執(zhí)行一個或多個期望的運算。軟件或指令可包括可由處理裝置直接執(zhí)行的機器代碼(諸如由編譯器產(chǎn)生的機器代碼)和/或可由處理裝置使用解釋器執(zhí)行的更高級的代碼??蓪④浖蛑噶钜约叭魏蜗嚓P(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)永久地或暫時地包含在任何類型的機器、組件、物理設(shè)備或虛擬設(shè)備、計算機存儲介質(zhì)或裝置,或者能夠向處理裝置提供指令或數(shù)據(jù)或能夠由處理裝置解釋的傳播的信號波中。軟件或指令以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)還可分布于聯(lián)網(wǎng)的計算機系統(tǒng),使得軟件或指令以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)以分布式方式被存儲和執(zhí)行。
[0083]例如,可將軟件或指令以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)記錄、存儲或固定在一個或多個非暫時性計算機可讀存儲介質(zhì)中。非暫時性計算機可讀存儲介質(zhì)可以是能夠存儲軟件或指令以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)的任何數(shù)據(jù)存儲裝置,使得它們可被計算機系統(tǒng)或處理裝置讀取。非暫時性計算機可讀存儲介質(zhì)的示例包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、閃存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁帶、軟盤、磁光數(shù)據(jù)存儲裝置、光學(xué)數(shù)據(jù)存儲裝置、硬盤、固態(tài)盤或本領(lǐng)域普通技術(shù)人員所知的任何其它非暫時性計算機可讀存儲介質(zhì)。
[0084]可由所述示例所屬領(lǐng)域里的編程人員基于如在此提供的附圖及其對應(yīng)的描述來容易地構(gòu)建用于實現(xiàn)在此公開的示例的功能性程序、代碼和代碼段。
[0085]雖然本公開包括特定示例,但對于本領(lǐng)域的普通技術(shù)人員而言清楚的是:在不脫離權(quán)利要求及其等同物的精神和范圍的情況下,可在這些示例中做出各種修改。在此描述的示例將被認(rèn)為僅是描述性的意義,而不是為了限制的目的。每個示例中的特征或方面的描述將被認(rèn)為是可應(yīng)用于其它示例中的類似特征或方面。如果以不同的順序執(zhí)行描述的技術(shù),并且/或者如果在描述的系統(tǒng)、架構(gòu)、裝置或電路中的組件以不同的方式被組合或被其它組件或它們的等同物所取代或補充,則可實現(xiàn)合適的結(jié)果。因此,本公開的范圍不是由詳細(xì)描述來限定,而是由權(quán)利要求及其等同物限定,并且在權(quán)利要求及其等同物的范圍之內(nèi)的所有改變將被解釋為包括在本公開中。
【權(quán)利要求】
1.一種基于微核MC的可重構(gòu)處理器,所述可重構(gòu)處理器包括: 多個MC,所述多個MC中的每個MC包括一組功能單元FU,所述一組FU具有獨立執(zhí)行循環(huán)迭代的能力; 其中,所述多個MC包括: 第一 MC,被配置為執(zhí)行第一循環(huán)迭代; 第二 MC,被配置為執(zhí)行第二循環(huán)迭代。
2.如權(quán)利要求1所述的可重構(gòu)處理器,其中,第二MC還被配置為當(dāng)在第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴時,在第一 MC開始執(zhí)行第一循環(huán)迭代之后開始執(zhí)行第二循環(huán)迭代。
3.如權(quán)利要求1所述的可重構(gòu)處理器,其中,所述多個MC中的每個MC的FU是同類的FU0
4.如權(quán)利要求1所述的可重構(gòu)處理器,其中,所述多個MC中的每個MC的FU是不同類的FU。
5.如權(quán)利要求1所述的可重構(gòu)處理器,還包括:外部鏈路,被配置為將所述多個MC彼此連接; 其中,所述多個MC中的每個MC還包括;內(nèi)部鏈路,被配置為將MC的FU彼此連接。
6.一種基于微核MC的調(diào)度設(shè)備,所述調(diào)度設(shè)備包括局部調(diào)度器,所述局部調(diào)度器被配置為: 將第一循環(huán)迭代映射到多個MC中的第一 MC ; 將第二循環(huán)迭代映射到多個MC中的第二 MC ; 其中,所述多個MC中的每個MC包括一組功能單元FU,所述一組FU具有獨立執(zhí)行循環(huán)迭代的能力。
7.如權(quán)利要求6所述的調(diào)度設(shè)備,還包括:全局調(diào)度器,被配置為當(dāng)在第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴時,調(diào)整第一循環(huán)迭代和第二循環(huán)迭代之間的映射關(guān)系以產(chǎn)生循環(huán)傾斜。
8.如權(quán)利要求7所述的調(diào)度設(shè)備,其中,全局調(diào)度器還被配置為: 相對于第一循環(huán)迭代延時第二循環(huán)迭代; 將延時的第二循環(huán)迭代映射到第二 MC。
9.如權(quán)利要求7所述的調(diào)度設(shè)備,其中,第二MC被物理地連接到第一 MC ; 全局調(diào)度器還被配置為: 將第一循環(huán)迭代映射到第一 MC ; 相對于第一循環(huán)迭代延時第二循環(huán)迭代; 將延時的第二循環(huán)迭代映射到第二 MC。
10.如權(quán)利要求6所述的調(diào)度設(shè)備,還包括:MC配置單元,被配置為將可重構(gòu)處理器中的多個FU分組為所述多個MC中的每個MC的一組FU。
11.一種用于基于微核MC的可重構(gòu)處理器的調(diào)度方法,所述可重構(gòu)處理器包括多個功能單元FU,所述調(diào)度方法包括: 將可重構(gòu)處理器中的FU分組為多個MC,所述多個MC中的每個MC包括一組FU,所述一組FU具有獨立執(zhí)行循環(huán)迭代的能力;將第一循環(huán)迭代映射到所述多個MC中的第一 MC ; 將第二循環(huán)迭代映射到所述多個MC中的第二 MC。
12.如權(quán)利要求11所述的調(diào)度方法,還包括:當(dāng)在第一循環(huán)迭代和第二循環(huán)迭代之間存在依賴時,調(diào)整第一循環(huán)迭代和第二循環(huán)迭代之間的映射關(guān)系。
13.如權(quán)利要求12所述的調(diào)度方法,其中,調(diào)整映射關(guān)系的步驟包括: 相對于第一循環(huán)迭代延時第二循環(huán)迭代; 將延時的第二循環(huán)迭代映射到第二 MC。
14.如權(quán)利要求12所述的調(diào)度方法,其中,第二MC被物理地連接到第一 MC ; 調(diào)整映射關(guān)系的步驟包括: 將第一循環(huán)迭代映射到第一 MC ; 相對于第一循環(huán)迭代延時第二循環(huán)迭代; 將延時的第二循環(huán)迭代映射到第二 MC。
15.—種可重構(gòu)處理器,包括: 多個功能單元FU,具有被重構(gòu)為多組FU以形成多個微核MC的能力; 其中,所述多組FU中的每組具有獨立執(zhí)行循環(huán)迭代的能力; 所述多個MC中的每個MC包括所述多組FU中的相應(yīng)一組FU ; 所述多個MC中的每個MC被配置為執(zhí)行多個循環(huán)迭代中的不同的循環(huán)迭代。
16.如權(quán)利要求15所述的可重構(gòu)處理器,其中,所述多個MC被配置為當(dāng)在循環(huán)迭代之間不存在依賴時,開始同時執(zhí)行循環(huán)迭代中的各個循環(huán)迭代。
17.如權(quán)利要求15所述的可重構(gòu)處理器,其中,當(dāng)在循環(huán)迭代之間存在依賴時, 所述多個MC之一被配置為執(zhí)行循環(huán)迭代中的第一循環(huán)迭代; 除執(zhí)行第一循環(huán)迭代的MC以外的所述多個MC中的每個MC被配置為在循環(huán)迭代中的緊接的前一循環(huán)迭代被執(zhí)行之后的預(yù)定時間,開始執(zhí)行循環(huán)迭代中的相應(yīng)的循環(huán)迭代。
18.如權(quán)利要求15所述的可重構(gòu)處理器,其中,多組FU中的每組FU中的FU是同類的FU0
19.如權(quán)利要求15所述的可重構(gòu)處理器,其中,多組FU中的每組FU中的FU是不同類的FU。
20.如權(quán)利要求15所述的可重構(gòu)處理器,還包括具有被重構(gòu)為外部鏈路和多個內(nèi)部鏈路的能力的多個可重構(gòu)鏈路; 其中,外部鏈路被配置為將所述多個MC彼此連接; 每個內(nèi)部鏈路被配置為將所述多個MC中的各個MC的FU彼此連接。
【文檔編號】G06F15/16GK103646005SQ201310086205
【公開日】2014年3月19日 申請日期:2013年3月18日 優(yōu)先權(quán)日:2012年3月16日
【發(fā)明者】樸海旴, 金元燮 申請人:三星電子株式會社