午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

用于支持處理器的多模式的設(shè)備和方法

文檔序號:6544536閱讀:203來源:國知局
用于支持處理器的多模式的設(shè)備和方法
【專利摘要】提供一種用于支持處理器的多模式的設(shè)備和方法。所述用于支持多模式的設(shè)備可包括:指令分配器,被配置為根據(jù)當(dāng)前執(zhí)行模式從均包括操作數(shù)和操作碼的多個接收的指令之中選擇至少一個指令,并將包括在選擇的至少一個指令中的每個指令中的操作碼傳送到多個功能單元;操作數(shù)交換控制器,被配置為基于包括在選擇的至少一個指令中的每個指令中的操作數(shù),產(chǎn)生用于路由以便執(zhí)行選擇的至少一個指令的交換配置信息;操作數(shù)交換器,被配置為基于交換配置信息將功能單元的輸出或寄存器堆的輸出路由至功能單元的輸入或寄存器堆的輸入。
【專利說明】用于支持處理器的多模式的設(shè)備和方法
[0001] 本申請要求于2013年4月22日提交到韓國知識產(chǎn)權(quán)局的第10-2013-0044429號 韓國專利申請的優(yōu)先權(quán),該申請的公開內(nèi)容通過引用全部包含于此。

【技術(shù)領(lǐng)域】
[0002] 以下描述涉及一種用于支持處理器的多模式的設(shè)備和方法。

【背景技術(shù)】
[0003] 包括多個功能單元(FU)的超長指令字(VLIW)處理器在單個時鐘周期內(nèi)處理由多 個指令構(gòu)成的長指令字。粗粒度可重構(gòu)陣列(CGRA)處理器是也能夠在單個周期內(nèi)處理由 多個指令構(gòu)成的長指令字,并包括比VLIW處理器的功能單元更多的功能單元的硬件,所述 功能單元以陣列形式彼此直接連接,用于高速執(zhí)行操作。
[0004] 即使存在數(shù)據(jù)依賴,CGRA和VLIW處理器也可處理長指令字。然而,在編譯階段執(zhí) 行數(shù)據(jù)處理的所有調(diào)度,這增加了編譯時間,并會降低對功能單元的利用。
[0005] 單指令多線程(SIMT)處理器是具有多個功能單元并由多個功能單元使用單個指 令的架構(gòu),其中,每個功能單元執(zhí)行單獨的線程。也就是說,SIMT處理器允許多個功能單元 單獨處理相同指令序列中的大量數(shù)據(jù)(或線程)。
[0006] SMT給需要在相同處理中處理大量數(shù)據(jù)的海量并行數(shù)據(jù)處理應(yīng)用提供益處,但是 當(dāng)存在數(shù)據(jù)依賴時,難以進(jìn)行數(shù)據(jù)處理。


【發(fā)明內(nèi)容】

[0007] -個或更多個示例性實施例可克服以上缺點和以上未描述的其它缺點。然而,將 理解,一個或更多個示例性實施例不需要克服以上描述的缺點,并且可不克服以上描述的 任何問題。
[0008] 根據(jù)示例性實施例的方面,提供一種用于支持包括寄存器堆和多個功能單元的處 理器的多模式的設(shè)備,所述設(shè)備包括:指令分配器,被配置為根據(jù)當(dāng)前執(zhí)行模式從均包括操 作數(shù)和操作碼的多個接收的指令之中選擇至少一個指令,并將包括在選擇的至少一個指令 中的每個指令中的操作碼傳送到多個功能單元;操作數(shù)交換控制器,被配置為基于包括在 選擇的至少一個指令中的每個指令中的操作數(shù),產(chǎn)生用于路由以便執(zhí)行選擇的至少一個指 令的交換配置信息;操作數(shù)交換器,被配置為基于交換配置信息將功能單元的輸出或寄存 器堆的輸出路由至功能單元的輸入或寄存器堆的輸入。
[0009] 指令分配器還可被配置為響應(yīng)于當(dāng)前執(zhí)行模式為單指令多線程(SMT)模式,基 于程序計數(shù)器信息從所述多個接收的指令之中選擇一個指令,將包括在選擇的指令中的操 作數(shù)傳送到操作數(shù)交換控制器的所有輸入端口,并將包括在選擇的指令中的操作碼傳送到 所有的功能單元。
[0010] 指令分配器還可被配置為響應(yīng)于當(dāng)前執(zhí)行模式為超長指令字(VLIW)/粗粒度可 重構(gòu)陣列(CGRA)模式并且至少兩個指令被選擇,基于包括在所述選擇的至少兩個指令中 的操作數(shù)和操作碼,將不同的操作數(shù)傳送到操作數(shù)交換控制器的每個輸入端口,并將不同 的操作數(shù)傳送到每個功能單元。
[0011] 指令分配器還可被配置為響應(yīng)于當(dāng)前執(zhí)行模式為集成模式,從所述多個接收的指 令之中選擇一些指令,將相同的操作數(shù)傳送到操作數(shù)交換控制器的第一組輸入端口,將不 同的操作數(shù)傳送到操作數(shù)交換控制器的第二組輸入端口中的每個輸入端口,將相同的操作 碼傳送到第一組功能單元,并將不同的操作碼傳送到第二組功能單元的每個功能單元。
[0012] 操作數(shù)交換控制器可被配置為將操作數(shù)的邏輯地址轉(zhuǎn)換為物理地址。
[0013] 操作數(shù)交換器可被配置為:將寄存器堆的輸出路由至寄存器堆的輸入;將寄存器 堆的輸出路由至功能單元的輸入;將功能單元的輸出路由至寄存器堆的輸入;或?qū)⒁粋€功 能單元的輸出路由至另一功能單元的輸入。
[0014] 操作數(shù)交換器可包括至少一個交換級。
[0015] 交換配置信息可包括與所述至少一個交換級相應(yīng)的至少一條交換級配置信息。
[0016] 每條交換級配置信息被以流水線方式順序輸入到相應(yīng)的交換級。
[0017] 根據(jù)另一示例性實施例的方面,提供一種支持包括寄存器堆和多個功能單元的處 理器的多模式的方法。所述方法包括:根據(jù)當(dāng)前執(zhí)行模式從均包括操作數(shù)和操作碼的多個 接收的指令之中選擇至少一個指令;將包括在選擇的至少一個指令中的每個指令中的操作 碼傳送到所述多個功能單元;基于包括在選擇的至少一個指令中的每個指令中的操作數(shù), 產(chǎn)生用于路由以便執(zhí)行所述選擇的至少一個指令的交換配置信息;基于交換配置信息將功 能單元的輸出或寄存器堆的輸出路由至功能單元的輸入或寄存器堆的輸入。
[0018] 響應(yīng)于當(dāng)前執(zhí)行模式為單指令多線程(SIMT)模式,一個或更多個指令的選擇可 包括基于程序計數(shù)器信息從所述多個接收的指令之中選擇一個指令,操作碼的傳送包括將 包括在選擇的指令中的操作碼傳送到所有的功能單元。
[0019] 響應(yīng)于當(dāng)前執(zhí)行模式為超長指令字(VLIW)/粗粒度可重構(gòu)陣列(CGRA)模式,所述 至少一個指令的選擇包括基于程序計數(shù)器信息從所述多個接收的指令中選擇一個指令,操 作碼的傳送包括將包括在所述選擇的至少一個指令中的操作碼傳送到所有的功能單元。
[0020] 響應(yīng)于當(dāng)前執(zhí)行模式為集成模式,所述至少一個指令的選擇包括從所述多個接收 的指令之中選擇一些指令,操作碼的傳送包括將不同的操作碼傳送到第一組功能單元的每 個功能單元,并將相同的操作碼傳送到第二組功能單元的每個功能單元。
[0021] 交換配置信息的產(chǎn)生可包括將包括在選擇的至少一個指令中的每個指令中的操 作數(shù)的邏輯地址轉(zhuǎn)換為物理地址,并基于物理地址產(chǎn)生交換配置信息。
[0022] 根據(jù)另一示例性實施例的一方面,提供一種用于支持包括寄存器堆和多個功能單 元的多模式處理器的設(shè)備。所述設(shè)備可包括:操作數(shù)交換控制器,被配置為接收用于選擇多 模式處理器的模式的模式選擇信號,根據(jù)模式選擇信號來接收與選擇的至少一個指令相應(yīng) 的至少一個操作數(shù),并基于由操作數(shù)交換控制器接收的所述選擇的至少一個操作數(shù),產(chǎn)生 用于在寄存器堆和所述多個功能單元之間進(jìn)行路由的交換配置信息;操作數(shù)交換器,被配 置為基于交換配置信息將第一功能單元的輸出或寄存器堆的輸出路由至第二功能單元的 輸入或寄存器堆的輸入。
[0023] 所述設(shè)備還可包括指令分配器,被配置為接收模式選擇信號并根據(jù)模式選擇信號 將相同的操作碼輸出到所有的功能單元,將不同的操作碼輸出到所有的功能單元,或?qū)⑾?同的操作碼輸出到第一組功能單元并將不同的操作碼輸出到第二組功能單元的每個功能 單元。
[0024] 響應(yīng)于模式選擇信號與單指令多線程(SIMT)模式相應(yīng),指令分配器可將相同的 操作碼輸出到所有的功能單元,響應(yīng)于模式選擇信號與超長指令字(VLIW)/粗粒度可重構(gòu) 陣列(CGRA)模式相應(yīng),指令分配器可將不同的操作碼輸出到所有的功能單元;響應(yīng)于模式 選擇信號與集成模式相應(yīng),指令分配器可將相同的操作碼輸出到第一組功能單元并將不同 的操作碼輸出到第二組功能單元中的每個功能單元。
[0025] 根據(jù)另一示例性實施例的方面,提供一種多模式處理器,可包括:指令分配器,被 配置接收用于選擇多模式處理器的模式的模式選擇信號,接收均包括操作數(shù)和操作碼的多 個指令,并基于模式選擇信號輸出至少一個操作碼和至少一個操作數(shù);操作數(shù)交換控制器, 被配置為接收用于選擇多模式處理器的模式的模式選擇信號,以及由指令分配器輸出的所 述至少一個操作數(shù);操作數(shù)交換器,被配置為使用來自操作數(shù)交換控制器的交換配置信息 來控制接收由指令分配器輸出的所述至少一個操作碼的多個功能單元。
[0026] 基于模式選擇信號,操作數(shù)交換器可控制所述多個功能單元均作為單指令多線程 (SMT)處理器運行,均作為超長指令字(VLIW)/粗粒度可重構(gòu)陣列(CGR)處理器運行,或所 述多個功能單元中的一些作為SMT處理器運行而剩余的功能單元作為VLIW/CGRA處理器 運行。
[0027] 從詳細(xì)描述、附圖和權(quán)利要求中,其它特征和方面將變得清楚。

【專利附圖】

【附圖說明】
[0028] 通過參照附圖對特定示例性實施例進(jìn)行描述,上述和/或其它方面將變得更加清 楚,在附圖中:
[0029] 圖1是示出根據(jù)示例性實施例的用于支持多模式的設(shè)備的示圖;
[0030] 圖2是詳細(xì)示出圖1的指令分配器的示圖;
[0031] 圖3是示出圖1的操作數(shù)交換器的示例的示圖;
[0032] 圖4A是示出根據(jù)示例性實施例的交換配置信息的示例的示圖;
[0033] 圖4B是用于解釋將交換級配置信息輸入到交換級的順序的示圖;
[0034] 圖5是示出根據(jù)示例性實施例的支持多模式的方法的流程圖。

【具體實施方式】
[0035] 提供以下描述以幫助讀者獲得對這里描述的方法、設(shè)備和/或系統(tǒng)的全面理解。 因此,將向本領(lǐng)域的普通技術(shù)人員提出這里描述的方法、設(shè)備和/或系統(tǒng)的各種改變、修改 和等同物。此外,為了更加清晰和簡明,可省略已知功能和結(jié)構(gòu)的描述。
[0036] 貫穿附圖和詳細(xì)描述,除非另外描述,否則相同的附圖標(biāo)號將被理解為表示相同 的元件、特征和結(jié)構(gòu)。為了清楚、說明和方便,可夸大這些元件的相對大小和描繪。
[0037] 以下描述描述了能夠基于處理器的處理和性能需要在不同模式之間進(jìn)行切換的 處理器。更具體地講,所述處理器支持例如(i)用于海量數(shù)據(jù)處理的單指令多線程(SMT) 模式,(ii)利用軟件流水線提高性能的超長指令字(VLIW)模式或粗粒度可重構(gòu)陣列 (CGRA)模式,(iii)處理器的一部分以SMT模式工作并且處理器的一部分以VLIW/CGRA模 式工作的集成模式。
[0038] 在描述示例性實施例之前,將給出SMT模式、VLTW/CGRA模式和集成模式的概述。
[0039] [SMT 模式]
[0040] 在SMT模式中,系統(tǒng)中的功能單元使用相同的指令,對不同的物理地址空間進(jìn)行 訪問,并接收相同的操作碼。傳送到系統(tǒng)中的操作數(shù)交換(operandswitch)控制器的操作 數(shù)相同,因此具有相同的邏輯地址空間。然而,這些操作數(shù)具有不同的物理地址空間。寄存 器堆(register file)被劃分為與工作的功能單元的數(shù)量相同的數(shù)量的段,使得不同的寄存 器段可被分配到每個工作的功能單元,用作功能單元的本地寄存器。操作數(shù)交換控制器將 接收的操作數(shù)的邏輯地址轉(zhuǎn)換為物理地址,使得每個功能單元可訪問對應(yīng)于與由該功能單 元接收的操作碼相關(guān)的操作數(shù)的本地寄存器,并基于轉(zhuǎn)換的地址來產(chǎn)生交換配置信息。
[0041] [VLIW/CGRA 模式]
[0042] 在VLIW/CGRA模式中,功能單元使用不同的指令,訪問相同的物理地址空間,并接 收不同的操作碼。傳送到操作數(shù)交換控制器的操作數(shù)不同,但具有相同的邏輯地址空間,這 使功能單元訪問相同的目標(biāo)。由于功能單元使用不同的指令,因此,與由該功能單元接收 的操作碼相應(yīng)的操作數(shù)彼此不同,并且每個操作數(shù)具有與物理地址空間相同的邏輯地址空 間。
[0043] VLIW處理器在以下方面與CGRA處理器不同。CGRA處理器包括比VLIW處理器的 功能單元更多的功能單元,具有本地寄存器堆,并且可使用網(wǎng)絡(luò),在網(wǎng)絡(luò)中,數(shù)據(jù)可在功能 單元之間直接發(fā)送而不需要經(jīng)過中央寄存器堆。VLIW處理器需要較大的寄存器堆帶寬,這 是因為所有的功能單元訪問中央寄存器堆。如果對中央寄存器堆的訪問受限(例如,特定 功能單元僅被允許訪問特定寄存器堆子集),則并行處理性能會因由例如寄存器堆之間的 數(shù)據(jù)傳送引起的功能單元的使用效率降低而降低。CGRA處理器/模式可通過使用功能單元 和功能單元之間的本地寄存器的連接來避免這些問題。也就是說,由于可在功能單元之間 發(fā)送數(shù)據(jù)而不需要經(jīng)過中央寄存器堆,因此更多的指令可用于并行處理,從而提高效率。 [0044][集成模式]
[0045] 集成模式組合SMT模式和VLIW/CGRA模式兩者。在集成模式中,第一組功能單元 接收相同的操作碼而第二組功能單元中的每個接收不同的操作碼。與SIMT模式相應(yīng)的操 作數(shù)具有與物理地址空間不同的邏輯地址空間,而與VLIW/CGRA模式相應(yīng)的操作數(shù)具有與 物理地址空間相同的邏輯地址空間。
[0046] 圖1是示出根據(jù)示例性實施例的用于支持上述多模式處理的設(shè)備100的示圖。
[0047] 圖1中示出的設(shè)備100的示例包括寄存器堆102和八個功能單元(FU) 104,然而, 功能單元104的數(shù)量可根據(jù)系統(tǒng)性能或使用目的而變化。
[0048] 參照圖1,用于支持多模式處理的設(shè)備100可包括指令分配器110、操作數(shù)交換控 制器120和操作數(shù)交換器130。
[0049] 指令分配器110可接收多個指令106。所述指令可以是均包括操作數(shù)(operand)和 操作碼(opcode)的機(jī)器指令。操作數(shù)可被視為選擇的指定將操縱或操作何種數(shù)據(jù)的代碼 的一部分。操作碼可被視為選擇的指定將被執(zhí)行的操作的指令的一部分。指令分配器110 根據(jù)當(dāng)前模式來選擇接收的指令106中的一個或更多個,將包含在選擇的指令中的操作數(shù) 傳送到操作數(shù)交換控制器120,并將包含在選擇的指令中的操作碼傳送到FU104。
[0050] 在硬件開始工作之前確定當(dāng)前模式。具體地講,在SMT模式下操作的指令與在 VLIW/CGRA模式下操作的指令不同,因此,當(dāng)編譯器創(chuàng)建機(jī)器碼時已確定了執(zhí)行模式??捎?最初確定模式的程序員來確定執(zhí)行模式,隨后向編譯器通知所述模式,或者編譯器可分析 程序,確定哪個模式更有效,并基于確定的模式來編譯代碼。一旦確定了執(zhí)行模式并編譯了 代碼,編譯器就可指示處理器使用合適的處理模式。在一個或更多個示例性實施例中,存在 可被插入編譯的代碼中的用于模式切換的單獨的指令。處理器硬件可讀取插入的指令以便 確定模式。
[0051] 在SIMT模式中,指令分配器110基于程序計數(shù)器(PC)信息來選擇接收的指令106 之一,將包含在選擇的指令中的操作數(shù)傳送到操作數(shù)交換控制器120的所有輸入端口,并 將包含在選擇的指令中的操作碼傳送到所有的FU104。換言之,在SMT模式中,指令分配器 110將相同的操作數(shù)傳送到操作數(shù)交換控制器120的所有輸入端口和所有的FU104。
[0052] 在VLIW/CGRA模式中,指令分配器110選擇接收的指令106中的多于一個指令, 將不同的操作數(shù)傳送到操作數(shù)交換控制器120的每個輸入端口,并基于包含在接收的指令 106中的操作數(shù)和操作碼將不同的操作碼傳送到FU104中的每個。
[0053] 集成模式組合SMT模式和VLIW/CGRA模式兩者。在集成模式中,指令分配器110 從接收的指令106之中選擇一些指令,將包含在選擇的指令之一中的操作數(shù)分配給操作數(shù) 交換控制器120的第一組輸入端口,并將包含在一個選擇的指令中的操作碼分配給FU104 的相應(yīng)的第一組。指令分配器110將包含在選擇的指令的其它指令中的操作數(shù)分配給操作 數(shù)交換控制器120的第二組輸入端口,并將包含在選擇的指令的其它指令中的操作碼分配 給FU104的相應(yīng)的第二組。也就是說,在集成模式中,基于包含在從接到的指令之中選擇的 一些指令中的操作數(shù)和操作碼,指令分配器110可將相同的操作數(shù)傳送到操作數(shù)交換控制 器120的第一組輸入端口,將不同的操作數(shù)傳送到剩余輸入端口(S卩,第二組輸入端口)中 的每個,同時將相同的操作碼傳送到第一組FU,并將不同的操作碼傳送到剩余FU中的每個 (即,與第二組輸入端口相應(yīng)的第二組FU)。在這種情況下,接收相同的操作數(shù)(或相同的 操作碼)的操作數(shù)交換控制器120的輸入端口的數(shù)量(或功能單元104的數(shù)量)可根據(jù)使 用目的或系統(tǒng)性能而變化。
[0054] 在集成模式中,SMT模式下的功能單元和VLIW/CGRA模式下的功能單元的使用率 取決于特定應(yīng)用。優(yōu)選地,第一組功能單元104在位置上彼此鄰近地被分組,第二組功能單 元104在位置上彼此鄰近地被分組。
[0055] 操作數(shù)交換控制器120從指令分配器110接收操作數(shù),將操作數(shù)的邏輯地址轉(zhuǎn)換 為物理地址以允許功能單元或寄存器使用接收的操作數(shù)來訪問期望的功能單元或寄存器, 并產(chǎn)生操作數(shù)交換器130的交換配置信息SC。操作數(shù)交換控制器120可從外部源接收模式 信號108以區(qū)分SMT模式、VLIW/CGRA模式和集成模式。
[0056] 在SMT模式中,由于所有功能單元104使用相同的指令,因此傳送到操作數(shù)交換 控制器120的輸入端口的操作數(shù)全部相同。因此,傳送到輸入端口的操作數(shù)具有相同的邏 輯地址空間。然而,由于寄存器堆被劃分以被每個功能單元(或線程)使用,因此傳送到 操作數(shù)交換控制器120的輸入端口的操作數(shù)具有不同的物理地址空間,并且允許功能單元 104訪問在不同的物理地址空間的寄存器。更具體地講,整個寄存器堆102被劃分為與工作 的功能單元1〇4(或線程)的數(shù)量相同的數(shù)量的段,并且不同的寄存器段可被分配到每個工 作的功能單元104(或每個線程),用作功能單元(或線程)的本地寄存器。在這種情況下, 操作數(shù)交換控制器120可接收一個操作數(shù),將與各個功能單元相應(yīng)的操作數(shù)的邏輯地址轉(zhuǎn) 換為物理地址,以允許每個功能單元104訪問對應(yīng)于與由該功能單元104接收的操作碼相 關(guān)的操作數(shù)的本地寄存器,并基于轉(zhuǎn)換的地址來產(chǎn)生交換配置信息SC。
[0057] 在VLIW/CGRA模式中,由于所有的功能單元104使用不同的指令,因此傳送到操作 數(shù)交換控制器120的輸入端口的操作數(shù)彼此不同,并且操作數(shù)具有彼此相同的邏輯地址空 間和彼此相同的物理地址空間。因此,每個功能單元104可自由地具有操作數(shù),并且操作數(shù) 交換控制器120可接收單獨的操作數(shù),并產(chǎn)生交換配置信息SC以允許每個功能單元104訪 問相關(guān)目標(biāo)。在這種情況下,由于使用相同的地址空間,因此相同的操作數(shù)使功能單元訪問 相同的目標(biāo)。
[0058] 在集成模式中,與SMT模式相應(yīng)的操作數(shù)具有不同的邏輯地址空間和不同的物 理地址空間,而與VLIW/CGRA模式相應(yīng)的操作數(shù)具有相同的邏輯地址空間和相同的物理地 址空間。因此,操作數(shù)交換控制器120組合SMT模式和VLIW/CGRA模式,并根據(jù)組合的模 式而工作。
[0059] 操作數(shù)交換控制器120可將操作數(shù)的邏輯地址轉(zhuǎn)換為物理地址,并基于轉(zhuǎn)換的物 理地址來產(chǎn)生交換配置信息SC。基于交換配置信息SC :在SMT模式中,允許所有的功能單 元104利用相同的邏輯地址空間(相同的邏輯地址空間,而不同的物理地址空間)來訪問 它們的目標(biāo);在VLIW/CGRA模式中,允許所有的功能單元利用各個邏輯地址空間來訪問它 們的目標(biāo),在集成模式中,僅允許一些功能單元利用一些邏輯地址空間來訪問它們的目標(biāo)。
[0060] 操作數(shù)交換器130可基于由操作數(shù)交換控制器120產(chǎn)生的交換配置信息SC,在功 能單元104和寄存器之間進(jìn)行路由(route)以允許執(zhí)行由指令分配器110選擇的指令。例 如,基于交換配置信息SC,操作數(shù)交換器130可將寄存器堆的輸出路由至FU的輸入,將FU 的輸出路由至寄存器堆的輸入,將一個FU的輸出路由至另一 FU的輸入,或?qū)⒁粋€寄存器堆 的輸出路由至另一寄存器堆的輸入。
[0061] 在一個示例性實施例中,操作數(shù)交換器130可包括多個交換級,每個交換級可包 括存儲器裝置,諸如觸發(fā)器。稍后將參照圖3對此進(jìn)行詳細(xì)描述。
[0062] 圖2是詳細(xì)示出圖1的指令分配器110的示圖。在圖2中示出的示例性實施例中, 操作數(shù)交換控制器120具有8個輸入端口,設(shè)置8個功能單元來執(zhí)行操作,一個指令包括一 個操作數(shù)和一個操作碼。
[0063] 參照圖2,指令分配器110可包括16個2X1復(fù)用器251、252、253、254、255、256、 257、258、261、262、263、264、265、266、267 和 268 以及兩個 8X 1 復(fù)用器 230 和 240。指令分 配器110接收8個指令,并產(chǎn)生分別包括與8個指令分離的操作數(shù)和操作碼的操作數(shù)集210 和操作碼集220。屬于操作數(shù)集210的8個操作數(shù)211、212、213、214、215、216、217和218 被傳送到連接到操作數(shù)交換控制器120的各個輸入端口的8個2 X 1復(fù)用器251至258中 的各個復(fù)用器的輸入,并且還被傳送到8 X 1復(fù)用器230的輸入。8 X 1復(fù)用器230接收8個 操作數(shù)211至218,基于PC信息來選擇針對特定指令的操作數(shù),并將選擇的操作數(shù)傳送到8 個2X 1復(fù)用器251至258的輸入。8個2X 1復(fù)用器251至258中的每個根據(jù)設(shè)置的執(zhí)行 模式108來確定輸出,并將確定的輸出傳送到操作數(shù)交換控制器120的相應(yīng)輸入端口。
[0064] 此外,屬于操作碼集220的8個操作碼221至228被傳送到連接到8個功能單元 104中的各自的8個2 X 1復(fù)用器261至268的輸入,并且還被傳送到8 X 1復(fù)用器240的輸 入。8X 1復(fù)用器240接收8個操作碼221至228,并基于PC信息將特定操作碼傳送到8個 2X 1復(fù)用器261至268。8個2X 1復(fù)用器261至268中的每個根據(jù)設(shè)置的執(zhí)行模式108來 確定輸出,并將確定的輸出傳送到相應(yīng)的功能單元104。
[0065] 在SMIT模式中,2X1復(fù)用器251至258中的每個將從8X1復(fù)用器230輸入的操 作數(shù)確定為輸出,并將輸出傳送到操作數(shù)交換控制器120的8個輸入端口之中的相應(yīng)的輸 入端口。此外,2 X 1復(fù)用器261至268中的每個將從8 X 1復(fù)用器240輸入的操作碼確定為 輸出,并將輸出傳送到相應(yīng)的功能單元。也就是說,操作數(shù)交換控制器120的8個輸入端口 接收相同的操作數(shù),功能單元104接收相同的操作碼。
[0066] 在VLIW/CGRA模式中,2 X 1復(fù)用器251至258中的每個將從操作數(shù)集210直接接收 的操作數(shù)確定為輸出,并將輸出傳送到操作數(shù)交換控制器120的8個輸入端口之中的相應(yīng) 的輸入端口 [哪個端口不重要,但需要自始至終保持一致]。此外,2X1復(fù)用器261至268 中的每個將從操作碼集220直接輸入的操作碼確定為輸出,并將輸出傳送到相應(yīng)的功能單 元104。因此,不同的操作數(shù)被傳送到操作數(shù)交換控制器120的8個輸入端口中的每個,并 且不同的操作碼被傳送到每個功能單元104。
[0067] 在集成模式中,2X 1復(fù)用器251至258中的一些復(fù)用器將從操作數(shù)集210直接輸 入的操作數(shù)確定為輸出,并且其余的2X1復(fù)用器將從8X1復(fù)用器輸入的操作數(shù)確定為它 們的輸出。確定的輸出被傳送到操作數(shù)交換控制器120的8個輸入端口之中的各個端口。 此外,2X 1復(fù)用器261至268中的一些將從操作碼集220直接輸入的操作碼確定為它們的 輸出,其余的2X1復(fù)用器將從8X1復(fù)用器240輸入的操作碼確定為它們的輸出。確定的 輸出被傳送到各個功能單元。也就是說,不同的操作數(shù)被傳送到操作數(shù)交換控制器120的8 個輸入端口中的一些輸入端口,相同的操作數(shù)被傳送到操作數(shù)交換控制器120的剩余的輸 入端口。以相同的方式,不同的操作碼被傳送到8個功能單元中的一些,相同的操作碼被傳 送到剩余的功能單元。
[0068] 此外,將從操作數(shù)集210直接輸入的操作數(shù)確定為它們的輸出的2X1復(fù)用器的數(shù) 量以及將從操作碼集220直接輸入的操作碼確定為它們的輸出的2X 1復(fù)用器的數(shù)量可根 據(jù)系統(tǒng)性能或使用目的而變化。
[0069] 圖3是示出圖1的操作數(shù)交換器130的示例的示圖。
[0070] 在圖3中,操作數(shù)交換器130包括三個交換級,但是本公開的多方面不限于此,使 得構(gòu)成交換的交換級的數(shù)量可根據(jù)系統(tǒng)性能或使用目的而變化。
[0071] 參照圖3,操作數(shù)交換器130可包括交換級1、交換級2和交換級3。每個交換級可 包括存儲裝置,諸如觸發(fā)器。
[0072] 基于交換配置信息SC,操作數(shù)交換器130可將一個寄存器堆的輸出路由至另一寄 存器堆的輸入,將寄存器堆的輸出路由至FU的輸入,將FU的輸出路由至寄存器堆的輸入, 或?qū)⒁粋€FU的輸出路由至另一 FU的輸入。
[0073] 在操作數(shù)交換器130將FU的輸出路由至FU的輸入的情況下,可建立功能單元之 間的連接而不需要寄存器堆的幫助,因此,操作數(shù)交換器130可被用于使VLIW/CGRA模式下 的操作之間的數(shù)據(jù)傳送開銷最小化。此外,在操作數(shù)交換器130將一個寄存器堆的輸出路 由至另一寄存器堆的輸入的情況下,可執(zhí)行"移動"操作而不需要功能單元104的幫助,因 此操作數(shù)交換器130可被用于提高VLIW/CGRA的性能。
[0074] 圖4A是示出根據(jù)示例性實施例的交換配置信息SC的示例的示圖,圖4B是解釋將 交換級配置信息輸入到交換級的順序的示圖。圖4A和圖4B中示出的示例假設(shè)操作數(shù)交換 器130包括三個交換級,這與圖3的示例一樣。
[0075] 參照圖4A,在操作數(shù)交換器130包括三個交換級的情況下,每個交換配置信息SC 可被分開產(chǎn)生,在這種情況下,交換配置信息SC可包含交換級1的配置信息SSC1、交換級2 的配置信息SSC2和交換級3的配置信息SSC3。
[0076] 以下,將參照圖3、圖4A和圖4B來描述將配置信息輸入到每個交換級的示例性方 法。
[0077] 參照圖4B,在時間tl,包含在由操作數(shù)交換控制器120產(chǎn)生的初始交換配置信息 SCI中的交換級1的配置信息SC1-SSC1被輸入到交換級1。
[0078] 之后,在時間t2,包含在由操作數(shù)交換控制器120產(chǎn)生的第二交換配置信息SC2中 的交換級1的配置信息SC2-SSC1被輸入到交換級1,同時,包含在初始交換配置信息SCI中 的交換級2的配置信息SC1-SSC2被輸入到交換級2。
[0079] 在時間t3,包含在由操作數(shù)交換控制器120產(chǎn)生的第三交換配置信息SC3中的交 換級1的配置信息SC3-SSC1被輸入到交換級1。同時,包含在第二交換配置信息SC2中的 交換級2的配置信息SC2-SSC2被輸入到交換級2,包含在初始交換配置信息SCI中的交換 級3的配置信息SC1-SSC3被輸入到交換級3。
[0080] 這樣,可以以流水線方式執(zhí)行交換級配置信息SSC至每個交換級的順序輸入。
[0081] 圖5是示出根據(jù)示例性實施例的支持多模式的方法的流程圖。
[0082] 參照圖5,在510,確定當(dāng)前執(zhí)行模式的類型。
[0083] 響應(yīng)于確定當(dāng)前執(zhí)行模式為SIMT模式,在522,基于程序計數(shù)器信息從多個接收 的指令之中選擇一個指令。在532,將包括在選擇的指令中的操作碼傳送到每個功能單元。 也就是說,在SIMT模式中,將相同的操作碼傳送到所有的功能單元。
[0084] 響應(yīng)于確定當(dāng)前執(zhí)行模式為VLIW/CGRA模式,在524,選擇所有的接收的指令。隨 后,在534,將包括在選擇的指令中的操作碼傳送到各個功能單元,其中,傳送的操作碼彼此 不同。
[0085] 響應(yīng)于在510確定當(dāng)前執(zhí)行模式為集成模式,在526,選擇接收的指令中的一些指 令,在536,將不同的操作碼傳送到一些功能單元,而將相同的操作碼傳送到剩余的功能單 元。在這種情況下,被傳送不同的操作碼的功能單元的數(shù)量可根據(jù)系統(tǒng)性能或使用目的而 變化。
[0086] 之后,為了執(zhí)行在522、524或526中選擇的指令,在540,基于包括在每個選擇的指 令中的操作數(shù)來產(chǎn)生用于路由的交換配置信息。
[0087] 例如,可將選擇的操作數(shù)的邏輯地址轉(zhuǎn)換為物理地址,并且可基于轉(zhuǎn)換的地址來 產(chǎn)生交換配置信息SC。
[0088] 在SMT模式中,由于所有的功能單元使用相同的指令,因此與由各個功能單元接 收的操作碼相應(yīng)的操作數(shù)具有相同的邏輯地址空間。然而,由于寄存器堆被劃分以被每個 功能單元(或線程)使用,因此與由各個功能單元接收的操作碼相應(yīng)的操作數(shù)具有彼此不 同的物理地址空間。也就是說,邏輯地址空間與物理地址空間不同。
[0089] 在VLIW/CGRA模式中,由于所有的功能單元使用不同的指令,因此,與由功能單元 接收的操作碼相應(yīng)的操作數(shù)彼此不同,并且每個操作數(shù)具有與物理地址空間相同的邏輯地 址空間。
[0090] 在集成模式中,與SMT模式相應(yīng)的一些操作數(shù)具有與物理地址空間不同的邏輯 地址空間,而與VLIW/CGRA模式相應(yīng)的剩余的操作數(shù)具有與物理地址空間相同的邏輯地址 空間。
[0091] 因此,在SMT模式和集成模式中,邏輯地址空間需要被轉(zhuǎn)換為物理地址空間。
[0092] 隨后,在550,基于產(chǎn)生的交換配置信息,將功能單元或寄存器堆路由至另一功能 單元或另一寄存器堆以執(zhí)行在522、524或526中選擇的指令。
[0093] 本發(fā)明的實施例還可被實施為一種多模式處理器,該多模式處理器包括:指令分 配器,被配置接收用于選擇多模式處理器的模式的模式選擇信號,接收多個指令,并基于模 式選擇信號輸出至少一個操作碼和至少一個操作數(shù),所述多個指令均包括操作數(shù)和操作 碼;操作數(shù)交換控制器,被配置為接收用于選擇多模式處理器的模式的模式選擇信號,以及 由指令分配器輸出的所述至少一個操作數(shù);操作數(shù)交換器,被配置為使用來自操作數(shù)交換 控制器的交換配置信息來控制接收由指令分配器輸出的所述至少一個操作碼的多個功能 單元。其中,基于模式選擇信號,操作數(shù)交換器控制所述多個功能單元均作為單指令多線程 (SMT)處理器運行,均作為超長指令字(VLIW)/粗粒度可重構(gòu)陣列(CGRA)處理器運行,或 所述多個功能單元中的一些作為SMT處理器運行而剩余的功能單元作為VLIW/CGRA處理 器運行。
[0094] 當(dāng)前示例性實施例可被實現(xiàn)為計算機(jī)可讀記錄介質(zhì)中的計算機(jī)可讀代碼。本領(lǐng)域 的熟練的計算機(jī)程序員可容易地推斷出構(gòu)成計算機(jī)程序的代碼和代碼段。計算機(jī)可讀記錄 介質(zhì)包括存儲計算機(jī)可讀數(shù)據(jù)的所有類型的記錄介質(zhì)。計算機(jī)可讀記錄介質(zhì)的示例包括 ROM、RAM、CD-ROM、磁帶、軟盤和光學(xué)數(shù)據(jù)存儲器。此外,可以以諧波(諸如互聯(lián)網(wǎng)傳輸)的 形式來實現(xiàn)記錄介質(zhì)。此外,計算機(jī)可讀記錄介質(zhì)可通過網(wǎng)絡(luò)被分布到可以以分布方式存 儲和執(zhí)行計算機(jī)可讀代碼的計算機(jī)系統(tǒng)。
[〇〇95] 以上已描述了若干示例。然而,將理解,可進(jìn)行各種修改。例如,如果以不同的順 序執(zhí)行描述的技術(shù),和/或如果以不同的方式組合和/或由其它組件或它們的等同物代替 或補(bǔ)充在描述的系統(tǒng)、架構(gòu)、裝置或電路中的組件,則可實現(xiàn)合適的結(jié)果。因此,其它實施方 式在權(quán)利要求的范圍內(nèi)。
【權(quán)利要求】
1. 一種用于支持包括寄存器堆和多個功能單元的處理器的多模式的設(shè)備,所述設(shè)備包 括: 指令分配器,被配置為根據(jù)當(dāng)前執(zhí)行模式從多個接收的指令之中選擇至少一個指令, 并將包括在選擇的所述至少一個指令中的每個指令中的操作碼傳送到多個功能單元,所述 多個接收的指令均包括操作數(shù)和操作碼; 操作數(shù)交換控制器,被配置為基于包括在選擇的所述至少一個指令中的每個指令中的 操作數(shù),產(chǎn)生用于路由以便執(zhí)行選擇的所述至少一個指令的交換配置信息; 操作數(shù)交換器,被配置為基于交換配置信息將功能單元的輸出或寄存器堆的輸出路由 至功能單元的輸入或寄存器堆的輸入。
2. 如權(quán)利要求1所述的設(shè)備,其中,指令分配器還被配置為響應(yīng)于當(dāng)前執(zhí)行模式為單 指令多線程(SIMT)模式,基于程序計數(shù)器信息從所述多個接收的指令之中選擇一個指令, 將包括在選擇的指令中的操作數(shù)傳送到操作數(shù)交換控制器的所有輸入端口,并將包括在選 擇的指令中的操作碼傳送到所有的功能單元。
3. 如權(quán)利要求1所述的設(shè)備,其中,指令分配器還被配置為響應(yīng)于當(dāng)前執(zhí)行模式為超 長指令字(VLIW)/粗粒度可重構(gòu)陣列(CGRA)模式并且至少兩個指令被選擇,基于包括在選 擇的所述至少兩個指令中的操作數(shù)和操作碼,將不同的操作數(shù)傳送到操作數(shù)交換控制器的 每個輸入端口,并將不同的操作數(shù)傳送到每個功能單元。
4. 如權(quán)利要求1所述的設(shè)備,其中,指令分配器還被配置為響應(yīng)于當(dāng)前執(zhí)行模式為集 成模式,從所述多個接收的指令之中選擇一些指令,將相同的操作數(shù)傳送到操作數(shù)交換控 制器的第一組輸入端口,將不同的操作數(shù)傳送到操作數(shù)交換控制器的第二組輸入端口中的 每個輸入端口,將相同的操作碼傳送到第一組功能單元,并將不同的操作碼傳送到第二組 功能單元的每個功能單元。
5. 如權(quán)利要求1所述的設(shè)備,其中,操作數(shù)交換控制器還被配置為將操作數(shù)的邏輯地 址轉(zhuǎn)換為物理地址。
6. 如權(quán)利要求1所述的設(shè)備,其中,操作數(shù)交換器還被配置為: 將寄存器堆的輸出路由至寄存器堆的輸入; 將寄存器堆的輸出路由至功能單元的輸入; 將功能單元的輸出路由至寄存器堆的輸入;或 將一個功能單元的輸出路由至另一功能單元的輸入。
7. 如權(quán)利要求1所述的設(shè)備,其中,操作數(shù)交換器包括至少一個交換級。
8. 如權(quán)利要求7所述的設(shè)備,其中,交換配置信息包括與所述至少一個交換級相應(yīng)的 至少一條交換級配置信息。
9. 如權(quán)利要求8所述的設(shè)備,其中,每條交換級配置信息被以流水線方式順序地輸入 到相應(yīng)的交換級。
10. -種支持包括寄存器堆和多個功能單元的處理器的多模式的方法,所述方法包 括: 根據(jù)當(dāng)前執(zhí)行模式從多個接收的指令之中選擇至少一個指令,所述多個接收的指令均 包括操作數(shù)和操作碼; 將包括在選擇的所述至少一個指令中的每個指令中的操作碼傳送到所述多個功能單 元; 基于包括在選擇的所述至少一個指令中的每個指令中的操作數(shù),產(chǎn)生用于路由以便執(zhí) 行選擇的所述至少一個指令的交換配置信息; 基于交換配置信息將功能單元的輸出或寄存器堆的輸出路由至功能單元的輸入或寄 存器堆的輸入。
11. 如權(quán)利要求10所述的方法,其中,響應(yīng)于當(dāng)前執(zhí)行模式為單指令多線程(SIMT)模 式,所述至少一個指令的選擇包括基于程序計數(shù)器信息從所述多個接收的指令之中選擇一 個指令,操作碼的傳送包括將包括在選擇的所述至少一個指令中的操作碼傳送到所有的功 能單元。
12. 如權(quán)利要求10所述的方法,其中,響應(yīng)于當(dāng)前執(zhí)行模式為超長指令字(VLIW)/粗粒 度可重構(gòu)陣列(CGRA)模式,所述至少一個指令的選擇包括選擇所有的接收的指令,操作碼 的傳送包括將來自選擇的指令的不同的操作碼傳送到每個功能單元。
13. 如權(quán)利要求10所述的方法,其中,響應(yīng)于當(dāng)前執(zhí)行模式為集成模式,所述至少一個 指令的選擇包括從所述多個接收的指令之中選擇一些指令,操作碼的傳送包括將不同的操 作碼傳送到第一組功能單元,并將相同的操作碼傳送到第二組功能單元的每個功能單元。
14. 如權(quán)利要求10所述的方法,其中,交換配置信息的產(chǎn)生包括將包括在選擇的所述 至少一個指令中的每個指令中的操作數(shù)的邏輯地址轉(zhuǎn)換為物理地址,并基于物理地址產(chǎn)生 交換配置信息。
15. -種用于支持包括寄存器堆和多個功能單元的多模式處理器的設(shè)備,所述設(shè)備包 括: 操作數(shù)交換控制器,被配置為接收用于選擇多模式處理器的模式的模式選擇信號,根 據(jù)模式選擇信號來接收與選擇的至少一個指令相應(yīng)的至少一個操作數(shù),并基于由操作數(shù)交 換控制器接收的選擇的所述至少一個操作數(shù),產(chǎn)生用于在寄存器堆和所述多個功能單元之 間進(jìn)行路由的交換配置信息; 操作數(shù)交換器,被配置為基于交換配置信息將第一功能單元的輸出或寄存器堆的輸出 路由至第二功能單元的輸入或寄存器堆的輸入。
16. 如權(quán)利要求15所述的設(shè)備,還包括指令分配器,被配置為接收模式選擇信號并根 據(jù)模式選擇信號將相同的操作碼輸出到所有的功能單元,將不同的操作碼輸出到所有的功 能單元,或?qū)⑾嗤牟僮鞔a輸出到第一組功能單元并將不同的操作碼輸出到第二組功能單 元的每個功能單元。
17. 如權(quán)利要求16所述的設(shè)備,其中,響應(yīng)于模式選擇信號與單指令多線程(SIMT)模 式相應(yīng),指令分配器將相同的操作碼輸出到所有的功能單元, 響應(yīng)于模式選擇信號與超長指令字(VLIW)/粗粒度可重構(gòu)陣列(CGRA)模式相應(yīng),指令 分配器將不同的操作碼輸出到所有的功能單元; 響應(yīng)于模式選擇信號與集成模式相應(yīng),指令分配器將相同的操作碼輸出到第一組功能 單元并將不同的操作碼輸出到第二組功能單元中的每個功能單元。
18. -種多模式處理器,包括: 指令分配器,被配置接收用于選擇多模式處理器的模式的模式選擇信號,接收多個指 令,并基于模式選擇信號輸出至少一個操作碼和至少一個操作數(shù),所述多個指令均包括操 作數(shù)和操作碼; 操作數(shù)交換控制器,被配置為接收用于選擇多模式處理器的模式的模式選擇信號,以 及由指令分配器輸出的所述至少一個操作數(shù); 操作數(shù)交換器,被配置為使用來自操作數(shù)交換控制器的交換配置信息來控制接收由指 令分配器輸出的所述至少一個操作碼的多個功能單元。
19.如權(quán)利要求18所述的多模式處理器,其中,基于模式選擇信號,操作數(shù)交換器控制 所述多個功能單元均作為單指令多線程(SMT)處理器運行,均作為超長指令字(VLIW)/粗 粒度可重構(gòu)陣列(CGRA)處理器運行,或所述多個功能單元中的一些作為SMT處理器運行 而剩余的功能單元作為VLIW/CGRA處理器運行。
【文檔編號】G06F15/80GK104111912SQ201410163684
【公開日】2014年10月22日 申請日期:2014年4月22日 優(yōu)先權(quán)日:2013年4月22日
【發(fā)明者】鄭武坰, 柳秀晶, 趙淵坤 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1