支持多線程處理的功能單元、處理器及其操作方法
【專利說明】支持多線程處理的功能單元、處理器及其操作方法
[0001]本申請要求于2013年12月20日提交到韓國知識產(chǎn)權(quán)局的第10-2013-0160231號韓國專利申請的優(yōu)先權(quán),該申請的公開全部合并于此以資參考。
技術(shù)領(lǐng)域
[0002]與示例性實(shí)施例一致的設(shè)備和方法涉及一種多線程處理處理器,更具體地,涉及一種支持多線程處理的功能單元、包括該功能單元的處理器及其操作方法。
【背景技術(shù)】
[0003]隨著計(jì)算機(jī)技術(shù)的發(fā)展,存在很多情況是,不是僅有一個(gè)任務(wù)而是多個(gè)任務(wù)需要被同時(shí)執(zhí)行。可通過多重處理、多任務(wù)處理、多重編程和/或多線程處理來實(shí)現(xiàn)多個(gè)任務(wù)的同時(shí)執(zhí)行。
[0004]通過多任務(wù)處理或多重復(fù)用等來執(zhí)行多重處理,其中,多任務(wù)處理可指的是在多個(gè)處理器(或多個(gè)線程)中處理多個(gè)任務(wù),多重復(fù)用可指的是在一個(gè)處理器中處理多個(gè)任務(wù)。
[0005]例如,當(dāng)同時(shí)對多個(gè)操作(即,多個(gè)任務(wù))進(jìn)行多任務(wù)處理時(shí),操作系統(tǒng)(OS)可使用通過使用多個(gè)處理器(多重處理)的執(zhí)行方法,或使用執(zhí)行多個(gè)線程(多線程處理)的方法。
[0006]多重處理和多線程處理在同時(shí)的多個(gè)任務(wù)流程的特征方面具有共同之處。然而,多重處理和多線程處理之間的差別在于:在多重處理中,多個(gè)處理彼此獨(dú)立地運(yùn)行,并且每個(gè)處理具有其自己的內(nèi)存,而多線程處理共享一個(gè)處理中的內(nèi)存;線程之間的轉(zhuǎn)換速度比處理之間的轉(zhuǎn)換速度更快;線程的調(diào)度執(zhí)行得比處理的調(diào)度更快。
【發(fā)明內(nèi)容】
[0007]根據(jù)示例性實(shí)施例的一方面,提供了一種用于支持多線程處理的功能單元,所述功能單元包括:多個(gè)輸入端口,被配置為接收多個(gè)線程的操作碼和操作數(shù),其中,所述多個(gè)輸入端口中的每個(gè)輸入端口被配置為接收不同的線程的操作碼和操作數(shù);多個(gè)運(yùn)算器,被配置為使用接收的操作碼執(zhí)行運(yùn)算;運(yùn)算器選擇器,被配置為基于每個(gè)操作碼從所述多個(gè)運(yùn)算器中選擇一運(yùn)算器來使用接收到的操作數(shù)中的一操作數(shù)執(zhí)行特定運(yùn)算;多個(gè)輸出端口,被配置為輸出每個(gè)線程的運(yùn)算的運(yùn)算結(jié)果。
[0008]所述多個(gè)輸出端口中的每個(gè)輸出端口可被配置為輸出不同的線程的運(yùn)算結(jié)果。
[0009]所述多個(gè)運(yùn)算器可包括多個(gè)寄存器,所述多個(gè)寄存器被配置為沿著數(shù)據(jù)通路被分配給每個(gè)線程以存儲運(yùn)算的運(yùn)算結(jié)果。
[0010]所述多個(gè)運(yùn)算器中的每個(gè)運(yùn)算器可被配置為執(zhí)行與所述多個(gè)運(yùn)算器中的其它運(yùn)算器所執(zhí)行的運(yùn)算不同的特定運(yùn)算。
[0011 ] 所述多個(gè)運(yùn)算器中的至少兩個(gè)運(yùn)算器可被配置為執(zhí)行相同的運(yùn)算。
[0012]所述至少兩個(gè)運(yùn)算器可被配置為執(zhí)行在功能單元中被頻繁執(zhí)行的運(yùn)算。
[0013]所述至少兩個(gè)運(yùn)算器可被配置為產(chǎn)生指示當(dāng)前狀態(tài)的信號,并將產(chǎn)生的信號發(fā)送到運(yùn)算器選擇器。
[0014]根據(jù)另一示例性實(shí)施例的一方面,提供了一種處理器,包括:處理元件,被配置為包括用于同時(shí)執(zhí)行多個(gè)線程的至少一個(gè)功能單元;資源沖突檢測器,被配置為通過確定所述多個(gè)線程中是否有至少兩個(gè)線程同時(shí)嘗試在同一功能單元中執(zhí)行相同運(yùn)算來檢測資源沖突;資源調(diào)度器,被配置為響應(yīng)于檢測到資源沖突,根據(jù)預(yù)定標(biāo)準(zhǔn)確定沖突的所述至少兩個(gè)線程的處理順序。
[0015]資源沖突檢測器可包括:資源信息存儲器,被配置為存儲關(guān)于所述至少一個(gè)功能單元的運(yùn)算器信息;操作碼比較器,被配置為在所述至少一個(gè)功能單元中的每個(gè)功能單元中比較所述多個(gè)線程的操作碼;資源沖突確定器,被配置為基于操作碼比較器的比較結(jié)果和資源信息存儲器存儲的運(yùn)算器信息來確定資源沖突。
[0016]運(yùn)算器信息可包括以下項(xiàng)中的至少一個(gè)信息:運(yùn)算器的類型、運(yùn)算器的數(shù)量和每個(gè)運(yùn)算器的狀態(tài)信息。
[0017]資源調(diào)度器還可被配置為針對沖突的所述至少兩個(gè)線程中具有低優(yōu)先級的線程,產(chǎn)生延遲信號。
[0018]處理器還可包括:隊(duì)列,被配置為存儲從資源沖突檢測器接收的資源沖突檢測結(jié)果O
[0019]處理器還可包括:刷新器,被配置為響應(yīng)于存儲在隊(duì)列中的資源沖突檢測結(jié)果由于包括在所述多個(gè)線程中的某些線程中的控制聲明的執(zhí)行無效而刷新隊(duì)列。
[0020]根據(jù)另一示例性實(shí)施例,提供了一種操作處理器的方法,所述處理器包括被配置為同時(shí)處理多個(gè)線程的至少一個(gè)功能單元,所述方法包括:通過確定所述多個(gè)線程中是否有至少兩個(gè)線程同時(shí)嘗試在同一功能單元中執(zhí)行相同運(yùn)算來檢測資源沖突;響應(yīng)于檢測到資源沖突,根據(jù)預(yù)定標(biāo)準(zhǔn)確定沖突的所述至少兩個(gè)線程的處理順序。
[0021]檢測資源沖突的步驟可包括:針對所述至少一個(gè)功能單元中的每個(gè)功能單元對所述多個(gè)線程的操作碼進(jìn)行比較;基于比較的結(jié)果和存儲的運(yùn)算器信息確定資源沖突。
[0022]運(yùn)算器信息可包括以下項(xiàng)中的至少一個(gè)信息:運(yùn)算器的類型、運(yùn)算器的數(shù)量和每個(gè)運(yùn)算器的狀態(tài)信息。
[0023]所述方法還可包括:將沖突的所述至少兩個(gè)線程中具有低優(yōu)先級的線程延遲。
[0024]所述方法還可包括:將資源沖突檢測結(jié)果存儲在隊(duì)列中。
[0025]所述方法還可包括:響應(yīng)于存儲在隊(duì)列中的資源沖突檢測結(jié)果由于包括在所述多個(gè)線程中的某些線程中的控制聲明的執(zhí)行無效而刷新隊(duì)列。
【附圖說明】
[0026]通過結(jié)合附圖對示例性實(shí)施例的以下描述,以上和/或其它方面將會變得清楚和更容易理解,其中:
[0027]圖1是示意性地示出根據(jù)示例性實(shí)施例的用于支持多線程處理的功能單元的框圖;
[0028]圖2是示出根據(jù)示例性實(shí)施例的用于支持多線程處理的功能單元的示例的框圖;
[0029]圖3是示出根據(jù)示例性實(shí)施例的處理器的示例的框圖;
[0030]圖4是示出根據(jù)示例性實(shí)施例的圖3中的資源沖突檢測器的示例的詳細(xì)示圖;
[0031]圖5是示出根據(jù)另一示例性實(shí)施例的處理器的示例的框圖;
[0032]圖6是示出根據(jù)示例性實(shí)施例的操作處理器的示例方法的流程圖;
[0033]圖7是示出根據(jù)示例性實(shí)施例的圖6中檢測資源沖突的示例的詳細(xì)流程圖。
【具體實(shí)施方式】
[0034]提供以下描述以幫助讀者獲得對于在此描述的方法、設(shè)備和/或系統(tǒng)的全面理解。因此,將會為本領(lǐng)域的普通技術(shù)人員建議在此描述的方法、設(shè)備和/或系統(tǒng)的各種改變、修改和等同物。另外,為了更加清楚和簡明,可省略公知的功能和結(jié)構(gòu)的描述。
[0035]貫穿附圖和【具體實(shí)施方式】,除非另外說明,否則相同的附圖標(biāo)號將被理解為表示相同的元件、特征和結(jié)構(gòu)。為了清楚、示意和方便,可夸大這些元件的相對大小和描繪。
[0036]以下,將參照附圖詳細(xì)描述示例性實(shí)施例。
[0037]根據(jù)一個(gè)或更多個(gè)示例性實(shí)施例,本領(lǐng)域的普通技術(shù)人員應(yīng)理解,功能單元(也可被稱為執(zhí)行單元)可以是中央處理器(CPU)或處理器的一部分,并且可執(zhí)行正在CPU上運(yùn)行或者準(zhǔn)備在CPU上運(yùn)行的計(jì)算機(jī)程序所調(diào)用的操作和計(jì)算。功能單元可具有其自己的內(nèi)部控制序列單元,內(nèi)部控制序列單元也可被稱為運(yùn)算器選擇器,并且與CPU主控制單元分離。功能單