專利名稱:可重構(gòu)處理器和可重構(gòu)處理器的微核的制作方法
技術(shù)領(lǐng)域:
以下描述涉及一種可重構(gòu)處理器。
背景技術(shù):
可重構(gòu)架構(gòu)指這樣的架構(gòu),其中,計算裝置的硬件配置可以被改變以最佳地執(zhí)行任務(wù)。當(dāng)僅以硬件方式處理任務(wù)時,由于硬件的固定配置,一旦在任務(wù)的處理中發(fā)生變化,則難以有效地實現(xiàn)該任務(wù)。相反,如果僅以軟件方式處理任務(wù),則可以通過重構(gòu)軟件來處理任務(wù),并且在任務(wù)的處理中發(fā)生的變化可以被處置,但是處理速度比數(shù)據(jù)以硬件方式被處理時慢??芍貥?gòu)架構(gòu)基于硬件和軟件兩者的優(yōu)點來處理任務(wù)。近年來,在反復(fù)地執(zhí)行相同任務(wù)的數(shù)字信號處理的領(lǐng)域中,已經(jīng)對可重構(gòu)架構(gòu)投入更多的關(guān)注。一種可重構(gòu)架構(gòu)是粗粒度陣列(CGA)。CGA由多個具有相同計算能力的功能單元構(gòu)成。通過控制功能單元之間的連接,可以對于一個任務(wù)優(yōu)化CGA。
發(fā)明內(nèi)容
在一個一般方面中,可重構(gòu)處理器包括至少一個微核(min1-core),并且所述至少一個微核中的每個微核包括至少兩個具有不同的各自計算能力的功能單元。在另一個一般方面中,可重構(gòu)處理器包括多個微核和所述微核所連接的外部網(wǎng)絡(luò)。每一個微核包括:第一功能單元、第二功能單元和內(nèi)部網(wǎng)絡(luò),其中,第一功能單元包括第一組運算元件,第二功能單元包括與第一組運算元件不同的第二組運算元件,并且,第一功能單元與第二功能單元被連接到內(nèi)部網(wǎng)絡(luò)。在另一個一般方面中,可重構(gòu)處理器包括:第一功能單元、第二功能單元和內(nèi)部網(wǎng)絡(luò),其中,第一功能單元包括第一組運算元件,第二功能單元包括與第一組運算元件不同的第二組運算元件,并且,第一功能單元與第二功能單元被連接到內(nèi)部網(wǎng)絡(luò)。在每個微核中的每個功能單元的部分計算能力可以根據(jù)包括在每個功能單元中的至少一個運算元件中的每一個運算元件的類型來定義,并且每個微核的全部計算能力可以通過包括在每個微核中的功能單元的部分計算能力的組合來定義。微核的計算能力可以彼此不同,或者可以彼此相同。另外,當(dāng)存在未被包括在所有的功能單元中的至少一個運算元件時,在相同微核中包括的至少兩個功能單元的計算能力可以彼此不同。根據(jù)下面的詳細(xì)描述、附圖以及權(quán)利要求,其它特征和方面將變得清楚。
圖1是示出可重構(gòu)處理器的示例的示圖。圖2是示出微核的配置的示例的示圖。圖3是示出微核的配置的示例的示圖。圖4是示出可重構(gòu)處理器的示例的示圖。
具體實施例方式提供下面的描述以幫助讀者全面理解本文中描述的方法、設(shè)備和/或系統(tǒng)。但是,對本文中描述的方法、設(shè)備和/或系統(tǒng)的各種改變、修改和等同物對本領(lǐng)域的普通技術(shù)人員將是清楚的。此外,為了更加清楚和簡明,可以省略對于本領(lǐng)域的普通技術(shù)人員眾所周知的功能和結(jié)構(gòu)的描述。在整個附圖和詳細(xì)描述中,相同的附圖標(biāo)記指示相同的元件。為了清楚、演示和便利,這些元件的相對大小和描繪可以被夸大。圖1是示出可重構(gòu)處理器的示例的示圖。參考圖1,可重構(gòu)處理器100包括多個微核101a、101b、IOlc和101d、以及微核IOla到IOld中的每一個微核所連接的外部網(wǎng)絡(luò)102。微核IOla到IOld能夠執(zhí)行彼此獨立的指令、工作或任務(wù)。例如,微核MC#0101a和MC#1101b能夠同時處理兩條沒有相互依賴關(guān)系的指令。微核IOla到IOld中的每一個微核是用于設(shè)計或擴展可重構(gòu)處理器100的基本單元。例如,在圖1中示出的示例示出存在四個微核IOla到IOld,但這只是一個示例,并且微核的數(shù)量可以是例如8、16或任何其它數(shù)量。微核IOla到IOld中的每一個微核具有全部計算能力中的預(yù)定量。在圖1中示出的示例中,計算能力指運算處理能力,即,系統(tǒng)可以處理的運算的類型。這樣,系統(tǒng)的計算能力可以基于可由該系統(tǒng)支持或提供的運算的類型來定義。例如,將認(rèn)識到,支持運算A和運算B的系統(tǒng)在計算能力方面與支持運算C和運算D的系統(tǒng)不同。另外,將認(rèn)識到,支持運算A、B和C的系統(tǒng)在計算能力方面與支持運算A、B、C和D的系統(tǒng)不同,并且將理解,后一系統(tǒng)具有比前一系統(tǒng)更強的計算能力。例如,在圖1中示出的示例中的運算A、B、C和D可以是算術(shù)運算(諸如加法和乘法)、邏輯運算(諸如“邏輯和”以及“邏輯乘”)、標(biāo)量運算和向量運算,但是,運算A、B、C和D的類型并不限于此。微核IOla到IOld中的每一個微核可以包括多個具有不同計算能力的功能單元。換句話說,微核IOla到IOld中的每一個微核的全部計算能力可以在微核IOla到IOld中的每一個微核的功能單元之間劃分,并且被作為部分計算能力映射到所述功能單元。例如,微核MC#0101的全部計算能力可以被在微核MC#0101a的功能單元之間劃分。這樣,將理解到:微核MC#0101a的全部計算能力可以通過微核MC#0101a的功能單元的部分計算能力的組合來定義。將參考圖2和圖3在稍后描述微核IOla到IOld中的每一個微核的詳細(xì)配置。微核IOla到IOld所連接的外部網(wǎng)絡(luò)102使得微核IOla到IOld能夠相互通信。例如,由微核MC#0101a生成的數(shù)據(jù)可以通過外部網(wǎng)絡(luò)102傳送到微核MC#3101d。微核IOla到IOld中的每一個微核可以具有多個通道,通過這些通道來通過外部網(wǎng)絡(luò)102發(fā)送和接收數(shù)據(jù)。外部網(wǎng)絡(luò)102的配置(即,微核IOla到IOld之間的連接)可以根據(jù)配置信息而改變,其中,所述配置信息可以被存儲在單獨的存儲器(未示出)中。微核IOla到IOld的全部計算能力可以相同,或者可以彼此不同。微核IOla到IOld中的每一個微核可以包括專用局部寄存器文件(LRF)(未示出)。微核IOla到IOld中的每一個微核可以使用其專用LRF來將數(shù)據(jù)推送到微核IOla到IOld中的另一個微核的專用LRF,并且微核IOla到IOld中的每一個微核可以處理由微核IOla到IOld中的另一個微核推送到其專用LRF的數(shù)據(jù)。可重構(gòu)處理器100可以被配置用來作為粗粒度陣列(CGA)處理器進行操作,或者作為超長指令字(VLIW)處理器進行操作。例如,所有的微核IOla到IOld可以在CGA模式下基于CGA架構(gòu)來處理循環(huán)操作,并且,某些微核IOla到IOld (例如,微核MC#0101a和微核MC#2101c)可以在VLIW模式下基于VLIW架構(gòu)來處理除了循環(huán)操作的其它一般操作。對于模式轉(zhuǎn)換,可重構(gòu)處理器100可以包括全局寄存器文件(GRF)(未示出),以在CGA模式與VLIM模式之間的轉(zhuǎn)換期間,臨時地存儲內(nèi)部/外部數(shù)據(jù)(live-1n/live-out data)。圖2是示出微核的配置的示例的示圖。參考圖2,微核200包括多個功能單元201和202以及功能單元201和202所連接的內(nèi)部網(wǎng)絡(luò)203。在圖2中示出的示例示出了兩個功能單元201和202,但是功能單元的數(shù)量可以是例如4、8、16或任何其它數(shù)量。微核200的功能單元可以是標(biāo)量功能單元,或者向量功能單元,或者標(biāo)量功能單元和向量功能單元的任意組合。功能單元201包括運算元件A 210a和運算元件B 210b,并且功能單元202包括運算元件C 210c和運算元件D 210d。在圖2中示出的示例中,運算元件A 210a可以是執(zhí)行運算A的電路或模塊。例如,如果運算A是加法,那么運算元件A 210a可以是加法器。功能單元201和202可以具有不同的計算能力。例如,功能單元201和202可以共享微核200的全部計算能力。例如,假定微核200具有執(zhí)行運算A、B、C和D的能力(全部計算能力),那么功能單元FU#0201具有執(zhí)行運算A和B的能力(第一部分計算能力),功能單元FU#1202具有執(zhí)行運算C和D的能力(第二部分計算能力)。部分計算能力的量可以根據(jù)每個功能單元中所包括的運算元件的類型來確定。換句話說,功能單元FU#0201的運算元件A 210a和B 210b的類型可以與功能單元FU#1202的運算元件C 210c和D 210d的類型不同。例如,功能單元FU#0201可以具有由運算元件A210a和運算元件B 210b構(gòu)成的第一運算元件組,功能單元FU#1202可以具有由運算元件C210c和運算元件D210d構(gòu)成的第二運算元件組。并不是所有的運算元件都必須彼此不同,并且如果存在對功能單元210和202而言非共同的至少一個運算元件(即,所述至少一個運算元件沒有既被包括在功能單元210又被包括在功能單元202中),那么“并不是所有的運算元件都必須彼此不同”也就足夠了。例如,在功能單元FU#0201具有運算元件A 210a和B 210b,并且功能單元FU#1202具有運算元件A 210a、B 210b和C 210c的情況下,功能單元FU#0201和功能單元FU#1202將具有不同的計算能力。功能單元201和202所連接的內(nèi)部網(wǎng)絡(luò)203使得功能單元201和202能夠相互通信。例如,由功能單元FU#0201生成的數(shù)據(jù)可以通過內(nèi)部網(wǎng)絡(luò)203被傳送到功能單元FU#1202o
內(nèi)部網(wǎng)絡(luò)203的配置(即,功能單元201與202之間的連接)可以根據(jù)配置信息而改變,其中,所述配置信息可以被存儲在單獨的存儲器(未示出)中。功能單元201和202中的每一個功能單元可以包括專用局部寄存器文件(LRF)(未示出)。功能單元201和202中的每一個功能單元可以使用其專用LRF來將數(shù)據(jù)推送到功能單元201和202中的另一個功能單元的專用LRF,并且功能單元201和202中的每一個功能單元可以處理由功能單元201和202中的另一個功能單元推送到其專用LRF的數(shù)據(jù)。圖3是示出微核的配置的另一示例的示圖。參考圖3,微核300包括多個功能單元301a、301b、301c和301d以及功能單元301a到301d所連接的內(nèi)部網(wǎng)絡(luò)302。微核300的基本配置和內(nèi)部網(wǎng)絡(luò)302與圖2示出的微核200的基本配置和內(nèi)部網(wǎng)絡(luò)相同,因此將不再重復(fù)對其進行的詳細(xì)描述。微核300的功能單元301a到301d可以是標(biāo)量功能單元,或者向量功能單元,或者標(biāo)量功能單元和向量功能單元的任意組合。微核300具有處理運算A、B、C、D和E的能力。換句話說,微核300的全部計算能力對應(yīng)于運算A、B、C、D和E。微核300的全部計算能力在微核300的功能單元301a到301d之間共享。例如,功能單元FU#0301a包括運算元件A 320a和運算元件B 321b,功能單元FU#1301b包括運算元件A 320a和運算元件B 321b,功能單元FU#2301c包括運算元件A 320a和運算元件C322,功能單元FU#3301d包括運算元件A 320a、運算元件D 323和運算元件E 324。微核300可以包括至少兩個具有不同計算能力的計算單元。例如,如果微核300包括至少一對具有不同計算能力的計算單元并且至少一個運算單元并非對功能單元而言是共同的(即,并未被包括在所有的運算單元中),那么將滿足對在圖3中示出的示例中示出的微核300的要求。例如,如果某些功能單元,例如,功能單元FU#030 Ia和FU#130 Ib具有相同的計算能力,但是存在至少一對具有不同計算能力的功能單元,例如,功能單元FU#0301a和FU#2301c,則微核300的全部計算能力將被分布在功能單元301a到301d之間。另外,即使當(dāng)存在對所有的運算單元301a到301d而言共同的運算元件(例如,運算元件A 320a),即,所述運算元件被包括在所有的運算單元301a到301d中時,如果至少一個其它運算元件(例如,運算元件B 32lb、運算元件C 322、運算元件D 323和運算元件E 324)并非對所有的運算單元301a到301d而言是共同的,S卩,所述至少一個其它運算元件沒有被包括在所有的運算單元301a到301d中,那么微核300的全部計算能力也將被分布在功能單元301a到301d之間。圖4是示出可重構(gòu)處理器的另一示例的示圖。參考圖4,可重構(gòu)處理器400包括處理單元401和模式控制單元402。處理單元401包括多個微核MC#0到MC#19以及微核MC#0到MC#19所連接的外部網(wǎng)絡(luò)(未示出,但是與圖1中的外部網(wǎng)絡(luò)102類似)。微核MC#0到MC#19中的每一個微核是用于設(shè)計或擴展在圖4中示出的示例中示出的可重構(gòu)處理器400的基本單元。每一個微核的配置可以與圖2和圖3中示出的示例中示出的微核的配置相同。處理單元401可在兩種模式下操作。例如,處理單元401可在用于處理循環(huán)操作的CGA模式下操作,并且可在用于處理除了循環(huán)運算的其它操作的VLIW模式下操作。在CGA模式下,處理單元401作為CGA模塊411進行操作。CGA模塊411包括16個微核MC#4到MC#19以及配置存儲器413。配置存儲器413被連接到處理單元401的外部網(wǎng)絡(luò)(未示出),以使得微核MC#4到MC#19能夠通過外部網(wǎng)絡(luò)訪問配置存儲器413。微核MC#4到MC#19能夠并行地處理循環(huán)。微核MC#4到MC#19之間的連接或網(wǎng)絡(luò)配置可以根據(jù)將由CGA模塊411所處理的循環(huán)的類型來優(yōu)化。關(guān)于微核MC#4到MC#19之間的連接或網(wǎng)絡(luò)配置的結(jié)構(gòu)的配置信息被存儲在配置存儲器413中。也就是說,在CGA模式下,處理單元401根據(jù)存在于配置存儲器413中的配置信息基于CGA模塊411來處理循環(huán)操作。在CGA模式下,每一個操作可以由微核MC#4到MC#19的功能單元(諸如在圖2和圖3中示出的功能單元)來執(zhí)行。在VLIW模式下,處理單元401作為VLIW模塊412進行操作。VLIW模塊412包括4個微核MCm到MC#3以及VLIW存儲器414。VLIff存儲器414被連接到處理單元401的外部網(wǎng)絡(luò)(未示出),以使得微核MCm到MC#3能夠通過外部網(wǎng)絡(luò)訪問VLIW存儲器414。微核MC#0到MC#3中的每一個微核根據(jù)VLIW架構(gòu)來處理存儲在VLIW存儲器414中的超長指令。也就是說,在VLIW模式下,處理器401根據(jù)存在于VLIW存儲器414中的指令基于VLIW模塊412來處理操作。在VLIW模式下,可以由微核MC#0到MC#3來執(zhí)行每個操作。某些微核可以在VLIW模式和CGA模式下共享。例如,在圖中4示出的示例中,用于CGA模塊411中的微核MC#5到MC#8還可以在VLIW模式下作為VLIW機器進行操作。模式控制單元402通過生成模式切換信號或模式轉(zhuǎn)換指令來將處理單元401從CGA模式切換到VLIW模式,反之亦然。例如,如果處理單元401正在CGA模式中處理循環(huán)操作,那么處理單元401可以響應(yīng)于來自模式控制單元402的模式切換信號或模式切換指令,從CGA模式切換到VLIW模式,然后可以在VLIW模式下處理除了循環(huán)運算的其它運算。在這種情況下,處理循環(huán)運算的結(jié)果(諸如可以被稱為上下文信息的內(nèi)部/外部數(shù)據(jù))可以被臨時地存儲在全局寄存器文件415中。全局寄存器文件415被連接到處理單元401的外部網(wǎng)絡(luò)(未示出),以使得微核MCM到MC#19能夠通過外部網(wǎng)絡(luò)訪問全局寄存器文件415。在處理單元401在VLIW模式下進行運算后,處理單元401可以響應(yīng)于來自模式控制單元402的模式切換信號或模式切換指令,切換回CGA模式,從全局寄存器文件415檢索上下文信息,并繼續(xù)在CGA模式下處理之前在CGA模式下被處理的循環(huán)操作。模式控制單元402可以從由處理單元401在VLIW模式下進行操作時所處理的操作獲得處理單元401在CGA模式下進行運算所必需的信息。如上所述,微核的全部計算能力被分布在微核的功能單元之間,并且基于功能單元的組合來設(shè)計微核,其中,微核被用作用于處理操作的基本單元,使得在高頻環(huán)境中資源的不必要消耗可被最小化,并且可以提高處理器的性能。另外,由于每個微核具有全部計算能力,因此基于一個微核一個微核地設(shè)計可重構(gòu)處理器可以確保提高的可擴縮性。CGA可以與精簡指令集計算機(RISC)處理器或多發(fā)射處理器(mult1-1ssueprocessor)共享資源。當(dāng)本文中所描述的可重構(gòu)處理器作為與多發(fā)射處理器共享資源的CGA處理器進行操作時,多發(fā)射處理器的每個發(fā)射時隙可以由可重構(gòu)處理器的微核之一形成,或者由可重構(gòu)處理器的微核之一的功能單元之一形成。在本文中描述的可重構(gòu)處理器可以被用作處理器IP (圖像處理器);被用于視頻系統(tǒng)和音頻系統(tǒng)中;被用于圖像處理和3D圖形處理;被用于A/V、圖像和3D圖形融合系統(tǒng)(convergence system)中;以及被用于相機、MP3播放器、移動電話和平板產(chǎn)品中。但是,這些僅僅是示例,并且可重構(gòu)處理器可以被用于將從本文中描述的可重構(gòu)處理器所提供的優(yōu)點受益的任何應(yīng)用中。圖4中的模式控制單元402可以使用一個或多個硬件部件、一個或多個軟件部件、或者一個或多個硬件部件和一個或多個軟件部件的組合來實現(xiàn)。硬件部件可以是例如物理地執(zhí)行一個或多個操作的物理裝置,但不限于此。硬件部件的示例包括:算術(shù)元件、運算元件、功能元件、寄存器、總線、存儲器裝置和處理裝置。軟件部件可以例如通過由軟件或指令來控制以執(zhí)行一個或多個操作的處理裝置來實現(xiàn),但不限于此。計算機、控制器或其它控制裝置可以使處理裝置運行軟件或執(zhí)行指令。一個軟件部件可以由一個處理裝置來實現(xiàn),或者兩個或更多軟件部件可以由一個處理裝置來實現(xiàn),或者一個軟件部件可以由兩個或更多處理裝置來實現(xiàn),或者兩個或更多軟件部件可以由兩個或更多處理裝置來實現(xiàn)。處理裝置可以使用一個或多個通用或?qū)S糜嬎銠C(諸如,作為示例的處理器、控制器和算術(shù)邏輯單元、數(shù)字信號處理器、微型計算機、現(xiàn)場可編程陣列、可編程邏輯單元、微處理器、或者能夠運行軟件或執(zhí)行指令的任何其它裝置)來實現(xiàn)。處理裝置可以運行操作系統(tǒng)
(OS),并且可以運行一個或多個在該OS下操作的軟件應(yīng)用。當(dāng)運行軟件或執(zhí)行指令時,處理裝置可以訪問,存儲,操縱,處理和創(chuàng)建數(shù)據(jù)。為了簡單起見,可以在描述中使用單數(shù)術(shù)語“處理裝置”,但是本領(lǐng)域的普通技術(shù)人員將認(rèn)識到處理裝置可以包括多個處理元件和多種類型的處理元件。例如,處理裝置可以包括一個或多個處理器、或者一個或多個處理器以及一個或多個控制器。另外,不同的處理配置都是可行的,諸如并行處理器或多核處理器。配置用來實施用于執(zhí)行操作A的軟件部件的處理裝置可以包括處理器,該處理器被編程,以用來運行軟件或執(zhí)行指令以控制處理器執(zhí)行操作A。另外,配置用來實施用于執(zhí)行操作A、操作B和操作C的軟件部件的處理裝置可以具有各種配置,例如,作為示例,配置用來實施用于執(zhí)行操作A、B和C的軟件部件的處理器;配置用來實施用于執(zhí)行操作A的軟件部件的第一處理器、以及配置用來實施用于執(zhí)行操作B和C的軟件部件的第二處理器;配置用來實施用于執(zhí)行操作A和B的軟件部件的第一處理器、以及配置用來實施用于執(zhí)行操作C的軟件部件的第二處理器;配置用來實施用于執(zhí)行操作A的軟件部件的第一處理器、配置用來實施用于執(zhí)行操作B的軟件部件的第二處理器、以及配置用來實施用于執(zhí)行操作C的軟件部件的第三處理器;配置用來實施用于執(zhí)行操作A、B和C的軟件部件的第一處理器、以及配置用來實施用于執(zhí)行操作A、B和C的軟件部件的第二處理器,或者均實施操作A、B和C中的一個或多個操作的一個或多個處理器的任意其它配置。盡管這些示例提及了三個操作A、B、C,但是可以實施的操作的數(shù)量并不限于三個,而可以是實現(xiàn)想要的結(jié)果或執(zhí)行想要的任務(wù)所需的任何數(shù)量的操作。用于控制處理裝置來實施軟件部件的軟件或指令可以包括用于獨立地或共同地指示或配置處理裝置來執(zhí)行一個或多個想要的操作的計算機程序、代碼段、指令或上述幾項的某種組合。軟件或指令可以包括可以由處理裝置直接執(zhí)行的機器代碼(諸如由編譯器產(chǎn)生的機器代碼),和/或可以由處理裝置使用解釋器執(zhí)行的高級代碼。軟件或指令以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)可以永久地或臨時地以下列任何類型來實現(xiàn):機器、部件、物理或虛擬裝備、計算機存儲介質(zhì)或裝置、或者能夠向處理裝置提供指令或數(shù)據(jù)或提供由處理裝置解釋的指令或數(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í)行。例如,軟件或指令以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu)可以被記錄、存儲或固化到一個或多個非暫態(tài)計算機可讀存儲介質(zhì)中。非暫態(tài)計算機可讀存儲介質(zhì)可以是任何數(shù)據(jù)存儲裝置,該數(shù)據(jù)存儲裝置能夠存儲軟件或指令以及任何相關(guān)數(shù)據(jù)、數(shù)據(jù)文件和數(shù)據(jù)結(jié)構(gòu),使得它們可以由計算機系統(tǒng)或處理裝置來讀取。非暫態(tài)計算機可讀存儲介質(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ù)人員知曉的任何其它的非暫態(tài)計算機存儲介質(zhì)。用于實現(xiàn)本文中公開的示例的功能性程序、代碼和代碼片段可以由與這些示例有關(guān)的領(lǐng)域中的編程人員基于本文中提供的附圖及其相應(yīng)描述容易地構(gòu)建。雖然本公開包括特定的示例,但是本領(lǐng)域普通技術(shù)人員將清楚:在不脫離權(quán)利要求及其等同物的精神和范圍的情況下,可以對這些示例進行形式和細(xì)節(jié)上的各種改變。在本文中描述的示例應(yīng)當(dāng)僅以描述的目的來考慮,而不是出于限制的目的。每個示例中的特征和方面的描述將被認(rèn)為可以應(yīng)用于其它示例中類似的特征或方面。如果以不同的順序執(zhí)行所述技術(shù)和/或如果在所述系統(tǒng)、架構(gòu)、裝置或電路中的部件以不同的方式組合和/或由其它部件或它們的等同物來替換和補充,那么可以實現(xiàn)適合的結(jié)果。例如,根據(jù)本發(fā)明示例性實施例的可重構(gòu)處理器可被理解為包括至少一個微核,也可被理解為直接包括各個功能單元,而不需要限定微核的結(jié)構(gòu)。因此,本公開的范圍并不由詳細(xì)描述來限定,而是通過權(quán)利要求及其等同物來限定,并且在權(quán)利要求及其等同物的范圍內(nèi)的所有變化將被解釋為包括在本公開中。
權(quán)利要求
1.一種可重構(gòu)處理器,包括: 至少一個微核; 其中,所述至少一個微核中的每一個微核包括至少兩個具有不同的各自計算能力的功能單元。
2.如權(quán)利要求1所述的可重構(gòu)處理器,其中,每個功能單元包括至少一個配置用來執(zhí)行運算的運算元件。
3.如權(quán)利要求2所述的可重構(gòu)處理器,其中,根據(jù)包括在每個功能單元中的所述至少一個運算元件中的每一個運算元件的類型來定義每個功能單元的計算能力。
4.如權(quán)利要求2所述的可重構(gòu)處理器,其中,功能單元的運算元件包括沒有被包括在所有功能單元中的至少一個運算元件。
5.如權(quán)利要求4所述的可重構(gòu)處理器,其中,功能單元的運算元件還包括在功能單元中的至少兩個功能單元中所包括的至少一個運算元件。
6.如權(quán)利要求1所述的可重構(gòu)處理器,其中,所述至少一個微核中的每一個微核還包括所述功能單元所連接的內(nèi)部網(wǎng)絡(luò)。
7.如權(quán)利要求1所述的可重構(gòu)處理器,其中,所述至少一個微核中的每一個微核具有全部計算能力,其中,所述全部計算能力由所述功能單元的各個部分計算能力的組合來定義。
8.如權(quán)利要求1所述的可重構(gòu)處理器,還包括所述至少一個微核中的每一個微核所連接的外部網(wǎng)絡(luò)。
9.如權(quán)利要求1所述的 可重構(gòu)處理器,其中,可重構(gòu)處理器是粗粒度陣列(CGA)處理器或者超長指令字(VLIW)處理器。
10.如權(quán)利要求9所述的可重構(gòu)處理器,其中,所述至少一個微核中的每一個微核構(gòu)成用于設(shè)計或擴展CGA處理器或VLIW處理器的基本單元。
11.一種可重構(gòu)處理器,包括: 多個微核;以及 所述微核所連接的外部網(wǎng)絡(luò); 其中,每個微核包括: 包括第一組運算元件的第一功能單元; 包括不同于第一組運算元件的第二組運算元件的第二功能單元;以及 第一功能單元和第二功能單元所連接的內(nèi)部網(wǎng)絡(luò)。
12.如權(quán)利要求11所述的可重構(gòu)處理器,其中,第一組運算元件和第二組運算元件包括沒有既被包括在第一組運算元件又被包括在第二組運算元件中的至少一個運算元件。
13.如權(quán)利要求12所述的可重構(gòu)處理器,其中,第一組運算元件和第二組運算元件還包括既被包括在第一組運算元件又被包括在第二組運算元件中的至少一個運算元件。
14.如權(quán)利要求11所述的可重構(gòu)處理器,其中,每個微核具有全部計算能力;以及 第一功能單元和第二功能單元均具有全部計算能力中的部分計算能力。
15.如權(quán)利要求11所述的可重構(gòu)處理器,其中,可重構(gòu)處理器是粗粒度陣列(CGA)處理器或者超長指令字(VLIW)處理器。
16.如權(quán)利要求15所述的可重構(gòu)處理器,其中,每一個微核構(gòu)成用于設(shè)計或擴展CGA處理器或VLIW處理器的基本單元。
17.如權(quán)利要求11所述的可重構(gòu)處理器,還包括配置用來生成模式控制信號的模式控制單元,其中,所述模式控制信號控制微核在粗粒度陣列(CGA)模式與超長指令字(VLIW)模式之間進行切換。
18.如權(quán)利要求17所述的可重構(gòu)處理器,其中,當(dāng)微核處于CGA模式下時,第一組微核作為CGA處理器進行操作;并且 當(dāng)微核處于VLIW模式下時,第二組微核作為VLIW處理器進行操作。
19.如權(quán)利要求18所述的可重構(gòu)處理器,其中,沒有微核既被包括在第一組微核又被包括在第二組微核中。
20.如權(quán)利要求18所述的可重構(gòu)處理器,其中,微核中的至少一個既被包括在第一組微核又被包括在第二組微核中。
21.如權(quán)利要求17所述的可重構(gòu)處理器,還包括: 配置存儲器,被連接到外部網(wǎng)絡(luò),并且配置用來在CGA模式下存儲關(guān)于第一組微核之間的連接的配置信息; 全局寄存器文件,被連接到外部網(wǎng)絡(luò),并且配置用來在CGA模式下存儲第一組微核的上下文信息;以及 VLIW存儲器,被連接到外部網(wǎng)絡(luò),并且配置用來在VLIW模式下存儲將由第二組微核來處理的超長指令字。
22.一種可重構(gòu)處理器,包括: 包括第一組運算元件的第一功能單元; 包括不同于第一組運算元件的第二組運算元件的第二功能單元;以及 第一功能單元和第二功能單元所連接的內(nèi)部網(wǎng)絡(luò)。
23.如權(quán)利要求22所述的可重構(gòu)處理器,其中,第一組運算元件和第二組運算元件包括沒有既被包括在第一組運算元件又被包括在第二組運算元件中的至少一個運算元件。
24.如權(quán)利要求23所述的可重構(gòu)處理器,其中,第一組運算元件和第二組運算元件還包括既被包括在第一組運算元件又被包括在第二組運算元件中的至少一個運算元件。
全文摘要
一種可重構(gòu)處理器和可重構(gòu)處理器的微核,所述可重構(gòu)處理器包括多個微核和所述微核所連接的外部網(wǎng)絡(luò)。每一個微核包括第一功能單元、第二功能單元和內(nèi)部網(wǎng)絡(luò),其中,第一功能單元包括第一組運算元件,第二功能單元包括與第一組運算元件不同的第二組運算元件,并且,第一功能單元與第二功能單元被連接到內(nèi)部網(wǎng)絡(luò)。
文檔編號G06F9/50GK103164285SQ20121053720
公開日2013年6月19日 申請日期2012年12月12日 優(yōu)先權(quán)日2011年12月12日
發(fā)明者徐東寬, 金碩鎮(zhèn), 俞炯碩, 權(quán)起奭, 樸哉彥 申請人:三星電子株式會社