两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

處理器的制作方法

文檔序號(hào):6577599閱讀:231來源:國知局
專利名稱:處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及處理器,尤其涉及具有可重構(gòu)的集成電路的處理器。

發(fā)明內(nèi)容
近年的處理器,例如在使用了數(shù)字信號(hào)的影像、音頻設(shè)備中搭載的處 理器,需要對(duì)應(yīng)多個(gè)處理。
從壓縮影像的情況來看,作為其壓縮方法的MPEG2、 MPEG4、 H.263、 H.264等多個(gè)標(biāo)準(zhǔn)已實(shí)現(xiàn)了實(shí)用化。
因此,考慮用戶的便利性等,要求近年的影像、音頻設(shè)備實(shí)現(xiàn)在一個(gè) 設(shè)備中對(duì)應(yīng)這些多個(gè)標(biāo)準(zhǔn)等的多個(gè)功能。
為了滿足這些要求,可以考慮通過搭載多個(gè)進(jìn)行一個(gè)處理的硬件來實(shí) 現(xiàn)多個(gè)處理的方法,或者只搭載一個(gè)硬件并用軟件執(zhí)行多個(gè)處理的方法。
前者的方法具有能夠?qū)崿F(xiàn)高性能的優(yōu)點(diǎn),但存在要實(shí)現(xiàn)的功能較多的 情況下,電路規(guī)模變大的缺點(diǎn)。再者,在追加新功能的情況下,需要追加 硬件。
另一方面,后者的方法具有通過軟件的追加、變更等能夠靈活地進(jìn)行 多個(gè)功能的實(shí)現(xiàn)、追加等的優(yōu)點(diǎn),但存在難以提高性能的缺點(diǎn)。
因此,提出了如下的可重構(gòu)硬件在同結(jié)構(gòu)的電路結(jié)構(gòu)的一部分裝入 適于特定處理的電路,通過動(dòng)態(tài)地變更硬件結(jié)構(gòu),對(duì)于特定的處理,可實(shí) 現(xiàn)靈活且高性能的處理(參考專利文獻(xiàn)l)。
專利文獻(xiàn)1:國際公開第2002/095496號(hào)小冊(cè)子
但是,這樣的可重構(gòu)硬件除了安裝電路功能的部分以外,還需要布線 部分、開關(guān)等,必然導(dǎo)致電路規(guī)模變大,而且,重構(gòu)需要時(shí)間。

發(fā)明內(nèi)容
因此,本發(fā)明的目的在于,提供一種抑制電路規(guī)模、靈活且高性能的 處理器。
為了實(shí)現(xiàn)上述問題,本發(fā)明的處理器,執(zhí)行由多個(gè)指令構(gòu)成的程序, 其特征在于,具有可重構(gòu)的集成電路;重構(gòu)單元,根據(jù)電路構(gòu)成信息, 將所述集成電路的一部分進(jìn)行重構(gòu);構(gòu)成信息存儲(chǔ)單元,存儲(chǔ)與多個(gè)指令 的各個(gè)相對(duì)應(yīng)的電路構(gòu)成信息;選擇單元,根據(jù)所述電路構(gòu)成信息,選擇 可同時(shí)重構(gòu)所述集成電路的2個(gè)以上的指令;執(zhí)行單元,使用根據(jù)與所述 選擇單元所選擇的2個(gè)以上的指令相對(duì)應(yīng)的電路構(gòu)成信息進(jìn)行了重構(gòu)的集 成電路,并行執(zhí)行該2個(gè)以上的指令。
本發(fā)明的處理器,其特征在于,具有指令取出部,從指令存儲(chǔ)部讀 入包含操作碼和操作數(shù)的指令碼;指令解碼部,解碼讀入的指令碼;指令 執(zhí)行部,包含可重構(gòu)運(yùn)算器;控制部,根據(jù)所述指令解碼部的解碼結(jié)果, 控制所述指令執(zhí)行部的動(dòng)作;構(gòu)成信息存儲(chǔ)部,按照每個(gè)操作碼的類別, 存儲(chǔ)用于構(gòu)成該操作碼所表示的處理執(zhí)行所需要電路的電路構(gòu)成信息,所 述指令解碼部根據(jù)解碼結(jié)果指示所述可重構(gòu)運(yùn)算器進(jìn)行重構(gòu),所述可重構(gòu) 運(yùn)算器按照來自所述指令解碼部的指示,使用與解碼的操作碼對(duì)應(yīng)的電路 構(gòu)成信息,來進(jìn)行重構(gòu),所述控制部,通過向完成重構(gòu)的可重構(gòu)運(yùn)算器發(fā) 送解碼的指令碼,對(duì)于操作數(shù)所表示的數(shù)據(jù)進(jìn)行控制,以執(zhí)行操作碼所表 示的處理。
本發(fā)明的處理器,其特征在于,所述指令解碼部基于所述電路構(gòu)成信 息選擇在所述可重構(gòu)運(yùn)算器可同時(shí)重構(gòu)的2個(gè)以上的指令,所述可重構(gòu)運(yùn) 算器使用與被選擇的2個(gè)以上的指令對(duì)應(yīng)的電路構(gòu)成信息來進(jìn)行重構(gòu),所 述控制部使用完成重構(gòu)的2個(gè)以上的電路來進(jìn)行控制,以執(zhí)行該2個(gè)以上 的指令。
本發(fā)明的處理器,其特征在于,所述指令執(zhí)行部還包括固定功能運(yùn)算 器,所述控制部在所述構(gòu)成信息存儲(chǔ)部中不存在與解碼的操作碼對(duì)應(yīng)的電 路構(gòu)成信息的情況下,控制為使用所述固定功能運(yùn)算器執(zhí)行指令。
本發(fā)明的處理器,其特征在于,所述操作數(shù)包含表示操作碼和電路構(gòu)成信息進(jìn)行對(duì)應(yīng)的代碼。
一種程序生成方法,生成在包含可重構(gòu)運(yùn)算器的處理器中使用程序, 其特征在于,在編譯時(shí),基于指令所使用的可重構(gòu)運(yùn)算器的區(qū)域數(shù),來決 定程序中的指令的順序。
如上所述的程序生成方法,其特征在于,考慮可同時(shí)執(zhí)行并且可同時(shí) 重構(gòu),來決定指令的順序。
為了實(shí)現(xiàn)上述問題,本發(fā)明的處理器,循環(huán)地按照分配給線程的各時(shí) 間來執(zhí)行多個(gè)線程,其具備可重構(gòu)的集成電路;重構(gòu)單元,根據(jù)電路構(gòu) 成信息,將上述集成電路的一部分進(jìn)行重構(gòu);構(gòu)成信息存儲(chǔ)單元,存儲(chǔ)與 多個(gè)線程的各個(gè)對(duì)應(yīng)的電路構(gòu)成信息;控制單元,依次使用根據(jù)對(duì)應(yīng)于線 程的電路構(gòu)成信息進(jìn)行了重構(gòu)的集成電路,執(zhí)行該線程;選擇單元,在上 述控制單元執(zhí)行某線程的期間,選擇下面執(zhí)行的線程,
上述控制單元還在執(zhí)行線程的期間,對(duì)于正在執(zhí)行的線程在使用的上 述集成電路部分之外的部分,使上述重構(gòu)單元根據(jù)與上述選擇單元所選擇 的線程相對(duì)應(yīng)的電路構(gòu)成信息進(jìn)行重構(gòu)。
本發(fā)明涉及的處理器通過具備上述結(jié)構(gòu),可以按各個(gè)線程來重構(gòu)電路,所 以能夠使用適于該線程的電路來執(zhí)行。此外,在線程的執(zhí)行中,能夠進(jìn)行 用于下一線程的重構(gòu),所以不需要重構(gòu)所需的時(shí)間,能夠?qū)崿F(xiàn)靈活且高性 能的處理器。
此外,上述處理器還包括運(yùn)算器;上述控制單元使用上述運(yùn)算器和上 述重構(gòu)的集成電路,執(zhí)行該線程。
由此,能夠使用通常的運(yùn)算器和進(jìn)行了重構(gòu)的集成電路來執(zhí)行線程, 根據(jù)處理來使用通常的運(yùn)算器,或者使用進(jìn)行了重構(gòu)的運(yùn)算器,或者使用 兩者,因此,能夠抑制電路規(guī)模,同時(shí)實(shí)現(xiàn)靈活且高性能的處理。例如是 將進(jìn)行了重構(gòu)的集成電路作為特定處理用的運(yùn)算器使用等。
艮P,不是為了所有的處理對(duì)集成電路進(jìn)行重構(gòu),所以能夠抑制可重構(gòu) 電路的規(guī)模,減小整個(gè)處理器的規(guī)模,并且處理所需的電路能夠重構(gòu),所 以能實(shí)現(xiàn)靈活且高性能的處理。
一種線程執(zhí)行方法,是在具有可重構(gòu)的集成電路、且按照分配給線程 的各時(shí)間循環(huán)地執(zhí)行多個(gè)線程的處理器中使用的線程執(zhí)行方法,其特征在于,該線程執(zhí)行方法包括重構(gòu)步驟,根據(jù)電路構(gòu)成信息,將上述集成電 路的一部分進(jìn)行重構(gòu);構(gòu)成信息存儲(chǔ)步驟,在存儲(chǔ)器中存儲(chǔ)與多個(gè)線程的 各個(gè)對(duì)應(yīng)的電路構(gòu)成信息;控制步驟,依次使用根據(jù)對(duì)應(yīng)于線程的電路構(gòu) 成信息進(jìn)行了重構(gòu)的集成電路,執(zhí)行該線程;
選擇步驟,在上述控制步驟執(zhí)行某線程的期間,選擇下面執(zhí)行的線程,
上述控制步驟還在執(zhí)行線程的期間,對(duì)于正在執(zhí)行的線程正使用的上 述集成電路部分以外的部分,使上述重構(gòu)步驟根據(jù)與上述選擇步驟所選擇 的線程相對(duì)應(yīng)的電路構(gòu)成信息進(jìn)行重構(gòu)。
此外,本發(fā)明涉及的處理器是執(zhí)行由多個(gè)指令構(gòu)成的程序的處理器, 其具備可重構(gòu)的集成電路;重構(gòu)單元,根據(jù)電路構(gòu)成信息,將上述集成 電路的一部分進(jìn)行重構(gòu);構(gòu)成信息存儲(chǔ)單元,存儲(chǔ)與多個(gè)指令的各個(gè)相對(duì) 應(yīng)的電路構(gòu)成信息;選擇單元,根據(jù)上述電路構(gòu)成信息,選擇可同時(shí)重構(gòu) 上述集成電路的2個(gè)以上的指令;執(zhí)行單元,使用根據(jù)與上述選擇單元所 選擇的2個(gè)以上的指令相對(duì)應(yīng)的電路構(gòu)成信息進(jìn)行了重構(gòu)的集成電路,并 行執(zhí)行該2個(gè)以上的指令。
本發(fā)明的處理器通過具備上述結(jié)構(gòu),可以按各個(gè)指令來重構(gòu)集成電路, 根據(jù)重構(gòu)的電路規(guī)模等,能夠同時(shí)進(jìn)行多個(gè)指令用的重構(gòu),因此,在抑制 電路規(guī)模的同時(shí),能夠?qū)崿F(xiàn)靈活且高性能的處理。為了同時(shí)進(jìn)行重構(gòu),不 僅考慮指令的順序,還需要使某一指令所需要的集成電路的電路規(guī)模和其 它指令所需要的集成電路的電路規(guī)模加起來,也不會(huì)超過可重構(gòu)的邏輯電 路的電路規(guī)模。


圖1是表示處理器1000的構(gòu)成例的圖。
圖2(a)是表示線程信息表1410的構(gòu)成例及內(nèi)容例的圖。
圖2(b)是表示線程的執(zhí)行例的時(shí)序圖。
圖3(a)是表示線程信息表1420的構(gòu)成例及內(nèi)容例的圖。
圖3(b)以及圖3(c)是表示線程的執(zhí)行例的時(shí)序圖。
圖4是表示本處理器的線程控制的處理的流程圖。
圖5是表示第二實(shí)施方式的處理器5000的構(gòu)成例的圖。圖6是表示在第二實(shí)施方式中使用的指令碼的構(gòu)成例的圖。
圖7是表示指令信息表5410的構(gòu)成例及內(nèi)容例的圖。
圖8是使用了第二實(shí)施方式涉及的指令組的程序例。
圖9是使程序工作的處理器的流水線動(dòng)作的例子。
圖IO是表示第二實(shí)施方式的處理器的指令執(zhí)行處理的流程圖。
圖11是使用了變形例的指令組的程序例。
圖12是使變形例的程序工作的處理器的流水線動(dòng)作的例子。
圖13是表示變形例的處理器的指令執(zhí)行處理的流程圖。
圖14是表示第二實(shí)施方式中使用的指令碼的構(gòu)成變形例的圖。
附圖標(biāo)記說明
1000、 5000處理器
11O0多線程處理器
1110線程調(diào)度部
1120固定功能運(yùn)算器
1200可重構(gòu)運(yùn)算器
1300構(gòu)成信息存儲(chǔ)部
1400重構(gòu)控制部
1410、 1420線程信息表
5010指令存儲(chǔ)部
5100指令取出部
5110、 5150指令碼
5111操作碼
5112操作數(shù)
5200指令解碼部
5300運(yùn)算控制部
5400地址表存儲(chǔ)部
5410指令信息表
54B使用區(qū)域數(shù)
5500重構(gòu)信息存儲(chǔ)部
5600可重構(gòu)運(yùn)算器5700固定功能運(yùn)算器
.
具體實(shí)施例方式
(第一實(shí)施方式) (概要)
本發(fā)明涉及的處理器除了通常的處理器所具備的運(yùn)算器之外,還具備 可重構(gòu)的硬件,通過分擔(dān)處理,抑制電路規(guī)模,實(shí)現(xiàn)高性能的處理。
即使是多個(gè)處理,也不是所有處理都不同,而是具有共同的處理和指 令、頻繁使用的處理和指令,共同的處理和指令由通常的運(yùn)算裝置執(zhí)行, 各處理所特有的處理在由可重構(gòu)硬件構(gòu)成的運(yùn)算裝置中執(zhí)行,所以是抑制 作為整個(gè)處理器的電路規(guī)模、且維持高性能的處理器。
本實(shí)施方式的處理器是多線程處理器,作為實(shí)現(xiàn)多線程的方法,采取 每隔一定時(shí)間就順序執(zhí)行各任務(wù)的循環(huán)方式。
各線程中適用各自固有的電路,或者需要固有電路的處理使用由可重 構(gòu)的硬件進(jìn)行了重構(gòu)的電路來執(zhí)行。
艮P,本處理器不需要具備每個(gè)線程所固有的電路,能夠抑制整體的電 路規(guī)模。
但是,重構(gòu)需要時(shí)間,因此重點(diǎn)在于刪除該時(shí)間。 下面,說明本發(fā)明的實(shí)施方式的多線程處理器。 (結(jié)構(gòu))
下面,使用圖1說明本發(fā)明涉及的處理器1000的結(jié)構(gòu)。 圖1是表示處理器1000的結(jié)構(gòu)例的圖。
處理器1000包括多線程處理器1100、可重構(gòu)運(yùn)算器1200、構(gòu)成信息 存儲(chǔ)部1300及重構(gòu)控制部1400。
多線程處理器IIOO是通常的處理器,是可以分時(shí)執(zhí)行多個(gè)不同處理的 所謂多線程處理器。
多線程處理器1100具有作為通常的運(yùn)算器的固定功能運(yùn)算器1120和 線程調(diào)度部1110,線程調(diào)度部1110具有決定下面執(zhí)行的線程等的線程調(diào)度 功能。
該線程調(diào)度部1110決定下面執(zhí)行的線程,進(jìn)行寄存器的保存、恢復(fù)等準(zhǔn)備之外,還執(zhí)行本發(fā)明特有的處理。
具體而言,是在線程執(zhí)行中選擇下面執(zhí)行的線程、向重構(gòu)控制部1400 通知該線程等。
該多線程處理器1100根據(jù)需要同內(nèi)部的固定功能運(yùn)算器1120和外部 的可重構(gòu)運(yùn)算器1200的兩者進(jìn)行運(yùn)算數(shù)據(jù)的交換,同時(shí)執(zhí)行處理。
此外,可重構(gòu)運(yùn)算器1200包括可實(shí)現(xiàn)組合電路或時(shí)序邏輯電路的邏輯 塊和邏輯塊之間的布線部分。邏輯塊是包含一覽表和觸發(fā)器的電路單元, 通過改變一覽表的設(shè)定值,實(shí)現(xiàn)希望的邏輯電路。此外,在布線部分配置 有晶體管開關(guān)等,可自由地設(shè)定布線路徑。
本實(shí)施方式中,設(shè)邏輯塊都是相同結(jié)構(gòu),能夠分別變更功能,通過用 可重排它們的布線組連接,實(shí)現(xiàn)各種功能的電路。
此外,可重構(gòu)運(yùn)算器1200被分割為相同結(jié)構(gòu)的10個(gè)區(qū)域。這些區(qū)域 分別獨(dú)立且能夠重構(gòu),區(qū)域間設(shè)有可重排的布線,可以用多個(gè)區(qū)域?qū)崿F(xiàn)一 個(gè)電路。
構(gòu)成信息存儲(chǔ)部1300具有存儲(chǔ)構(gòu)成信息的功能,該構(gòu)成信息用于將可 重構(gòu)運(yùn)算器1200重構(gòu)為希望電路。具有數(shù)量與希望的電路個(gè)數(shù)相等的構(gòu)成 信息。
該構(gòu)成信息中包含邏輯塊的一覽表的設(shè)定值、用于設(shè)定布線路徑的對(duì) 各晶體管開關(guān)的控制信號(hào)的信息。
此外,構(gòu)成信息存儲(chǔ)部1300除了存儲(chǔ)構(gòu)成信息,還具有存儲(chǔ)后面說明 的線程信息表1410的功能。該表是將線程和該線程中使用的構(gòu)成信息對(duì)應(yīng) 起來的表。
重構(gòu)控制部1400具有如下功能在線程執(zhí)行中從線程調(diào)度部1100接 受下一線程的通知,判斷是只用通常的固定功能運(yùn)算器1120就能執(zhí)行,還 是需要可重構(gòu)運(yùn)算器1200,在將可重構(gòu)運(yùn)算器1200重構(gòu)的情況下,向可 重構(gòu)運(yùn)算器1200和構(gòu)成信息存儲(chǔ)部1300發(fā)出指示。
向可重構(gòu)運(yùn)算器1200通知進(jìn)行重構(gòu)的主旨和進(jìn)行重構(gòu)的區(qū)域,并且, 指示構(gòu)成信息存儲(chǔ)部1300,以便指定構(gòu)成信息,將該構(gòu)成信息供給可重構(gòu) 運(yùn)算器1200。
此外,具有在不能重構(gòu)時(shí)將該主旨返回給線程調(diào)度部1110的功能。不能重構(gòu)的情況是指,可重構(gòu)運(yùn)算器1200中不存在可重構(gòu)的區(qū)域的情況。 (動(dòng)作)
接著,使用圖2 圖4說明本發(fā)明涉及的處理器的動(dòng)作。 使用圖2說明按照?qǐng)?zhí)行順序來執(zhí)行線程時(shí)的例子,使用圖3說明改變 線程的執(zhí)行順序時(shí)的例子。
最后,使用圖4的流程圖說明線程的控制處理。 (按照?qǐng)?zhí)行順序來執(zhí)行線程時(shí))
圖2 (a)是表示線程信息表1410的結(jié)構(gòu)例及內(nèi)容例的圖,圖2 (b) 是表示線程的執(zhí)行例的時(shí)序圖。
執(zhí)行了圖2 (a)所示的線程信息表1410的線程時(shí)的時(shí)序圖,就是圖2 (b)所示的時(shí)序圖。
首先,說明圖2 (a)的線程信息表1410。
該線程信息表1410被存儲(chǔ)在重構(gòu)信息存儲(chǔ)部1300。
線程信息表1410包括線程名1411、構(gòu)成信息1412和使用區(qū)域數(shù)1413。
線程名1411是線程的識(shí)別符。下面,說明按順序執(zhí)行用"THO" "TH3"表示的4個(gè)線程的情況。
構(gòu)成信息1412表示由線程名1411表示的線程使用可重構(gòu)運(yùn)算器1200 時(shí)的用于重構(gòu)的構(gòu)成信息。
使用區(qū)域數(shù)1413表示使用可重構(gòu)運(yùn)算器1200時(shí)需要的區(qū)域數(shù)。
例如,線程名1411 "THO"的線程使用由構(gòu)成信息1412 "構(gòu)成A"的結(jié) 構(gòu)進(jìn)行了重構(gòu)的可重構(gòu)運(yùn)算器1200,用構(gòu)成信息1412 "構(gòu)成A"將可重構(gòu) 運(yùn)算器1200重構(gòu)時(shí),需要使用區(qū)域數(shù)1413的"6"個(gè)區(qū)域。此外,與線程 名1411 "TH1"對(duì)應(yīng)的構(gòu)成信息1412 "-"表示不使用可重構(gòu)運(yùn)算器1200, 使用區(qū)域數(shù)1413當(dāng)然是"0"個(gè)。
接著,使用圖2 (b)說明線程的執(zhí)行例。
在此,示出了線程使用固定功能運(yùn)算器1120的時(shí)序10、表示該線程使 用可重構(gòu)運(yùn)算器1200時(shí)的構(gòu)成信息的時(shí)序20、和表示該線程在執(zhí)行中對(duì) 可重構(gòu)運(yùn)算器進(jìn)行重構(gòu)的構(gòu)成信息的時(shí)序30。此外,在表示時(shí)間的箭頭上 方示出構(gòu)成信息,在下方示出構(gòu)成信息所需要的區(qū)域數(shù)。而且,該圖2 (b) 中示出了所有線程使用固定功能運(yùn)算器1120的情況,但也可以具有不使用的期間。
首先,按線程名"TH0"、 "TH1"、 "TH2"、 "TH3"的順序執(zhí)行線程,各 個(gè)線程在執(zhí)行中重構(gòu)下一個(gè)線程使用的可重構(gòu)運(yùn)算器1200。
通過如此地事先進(jìn)行準(zhǔn)備,沒必要取得重構(gòu)所需的時(shí)間,實(shí)質(zhì)上只需 要線程的執(zhí)行時(shí)間。
例如,線程名"TH1"的線程100僅使用固定功能運(yùn)算器1120來執(zhí)行 線程。
在該期間,用下面預(yù)定執(zhí)行的線程名1411 "TH2"的線程110所使用的 構(gòu)成信息1412 "構(gòu)成C",將可重構(gòu)運(yùn)算器1200重構(gòu)。
此時(shí),可重構(gòu)運(yùn)算器1200具有全部10個(gè)區(qū)域,所以,所使用的可重 構(gòu)運(yùn)算器1200的區(qū)域數(shù)成為"構(gòu)成C"所需的"3/10"區(qū)域101。
同樣地,線程名"TH2"的線程110使用固定功能運(yùn)算器1120和可重 構(gòu)運(yùn)算器的"構(gòu)成C"來執(zhí)行線程。
在此期間,用下面預(yù)定執(zhí)行的線程名1411 "TH3"的線程所使用的構(gòu)成 信息1412 "構(gòu)成D",將可重構(gòu)運(yùn)算器1200重構(gòu)。
此時(shí),所使用的可重構(gòu)運(yùn)算器1200的區(qū)域數(shù)是,將"構(gòu)成C"使用的 "3/10"區(qū)域和"構(gòu)成D"所需要的"4/10"區(qū)域相加的"7/10"區(qū)域111。
如此地,在依次執(zhí)行線程之前,事先進(jìn)行必要的重構(gòu)。 (改變線程的執(zhí)行順序時(shí))
接著,使用圖3說明通過改變線程的執(zhí)行順序,在線程執(zhí)行中能夠進(jìn) 行用于下一線程的重構(gòu)的例子。
圖3 (a)是表示線程信息表1420的構(gòu)成例及內(nèi)容例的圖,圖3 (b) 及圖3 (c)是表示線程的執(zhí)行例的時(shí)序圖。
執(zhí)行了圖3 (a)所示的線程信息表1420的線程時(shí)的時(shí)序圖,是圖3 (b) 及圖3 (c)所示的時(shí)序圖。
首先,說明圖3 (a)的線程信息表1420。
該圖3 (a)的線程信息表1420與圖2 (a)的線程信息表1410幾乎相 同,所以只說明差異。
不同點(diǎn)在于,線程名1411 "TH1"的線程1421使用可重構(gòu)運(yùn)算器1200。 構(gòu)成信息1412為"構(gòu)成B",使用區(qū)域數(shù)1413為"5"個(gè)。接著,使用圖3 (b)說明表示線程的執(zhí)行例的時(shí)序圖。時(shí)序圖所表示 的內(nèi)容,與圖2 (b)相同。
線程名"THO"的線程200使用固定功能運(yùn)算器和可重構(gòu)運(yùn)算器的"構(gòu) 成A"來執(zhí)行線程。
在該期間,要用下面預(yù)定執(zhí)行的線程名1411 "TH1"的線程所使用的構(gòu) 成信息1412 "構(gòu)成B",將可重構(gòu)運(yùn)算器1200重構(gòu)。
該情況下,正在使用的可重構(gòu)運(yùn)算器1200的區(qū)域數(shù),成為將"構(gòu)成A" 使用的"6/10"區(qū)域和"構(gòu)成B"所需的"5/10"區(qū)域相加的"11/10"區(qū) 域201,在線程名"THO"的線程執(zhí)行中不能進(jìn)行"構(gòu)成B"的重構(gòu)。
因此,如圖3 (c)所示,在線程名"TH1"的線程230之前,執(zhí)行線程 名"TH2"的線程220。即,替換執(zhí)行順序來執(zhí)行線程。
若這樣,在線程名"THO"的線程執(zhí)行中,進(jìn)行重構(gòu)的是線程名"TH2" 的線程220所使用的"構(gòu)成B",成為"構(gòu)成A"使用的"6/10"區(qū)域和"構(gòu) 成C"所需的"3/10"區(qū)域相加的"9/10"區(qū)域211,能夠事先進(jìn)行重構(gòu)。
同樣地,在線程名"TH2"的線程220使用固定功能運(yùn)算器1120和可 重構(gòu)運(yùn)算器1200的"構(gòu)成C"來執(zhí)行線程的期間,用下面預(yù)定執(zhí)行的線程 名1411 "TH1"的線程所使用的構(gòu)成信息1412 "構(gòu)成B",將可重構(gòu)運(yùn)算器 1200重構(gòu)。
該情況下,正在使用的可重構(gòu)運(yùn)算器1200的區(qū)域數(shù),成為將"構(gòu)成C" 使用的"3/10"區(qū)域和"構(gòu)成B"所需的"5/10"區(qū)域相加的"8/10"區(qū) 域222。
通常,在循環(huán)方式中,根據(jù)由各線程應(yīng)執(zhí)行的處理,考慮分配給線程 的時(shí)間片(time slice)的長度。即,在必須保障處理時(shí)間的情況下,分 配時(shí)間片較長的線程等。
因此,周期不變化,成為對(duì)線程分配處理時(shí)的前提條件。 但是,同整個(gè)處理的執(zhí)行時(shí)間相比, 一個(gè)時(shí)間片的時(shí)間非常小,所以 在該處理器中,在規(guī)定時(shí)間內(nèi)由線程調(diào)度部1110調(diào)整各線程的執(zhí)行時(shí)間使 其與預(yù)定相同。例如,全部線程10執(zhí)行10次作為一段,計(jì)數(shù)各線程的執(zhí) 行次數(shù),在最初的線程開始第11次的執(zhí)行之前,用其它線程優(yōu)先執(zhí)行少于 IO次的部分。在全部線程執(zhí)行10次之后,開始最初的線程的第11次的執(zhí)行。
(線程的控制處理)
接著,使用圖4說明本處理器的線程控制的處理。 圖4是表示本處理器的線程控制處理的流程圖。
線程調(diào)度部1110選擇下面執(zhí)行的線程(步驟S100)。在剛開始控制處 理的情況下,是最初的線程。
在分配給各線程的處理全部結(jié)束時(shí)(步驟S110的"是"),結(jié)束線程的 控制處理。
在執(zhí)行作為被選擇的線程的下一線程時(shí),向重構(gòu)控制部1400傳遞其線 程名1411,委托重構(gòu)。
接受了委托的重構(gòu)控制部1400參照存儲(chǔ)在構(gòu)成信息存儲(chǔ)部1300中的 線程信息表1410,來判斷接受的線程名1411是否使用構(gòu)成可能運(yùn)算器 1200。具體地說,在與接受的線程名1411對(duì)應(yīng)的構(gòu)成信息1412中指定了 構(gòu)成的情況下,判斷為使用可重構(gòu)運(yùn)算器1200。
在判斷為不使用的情況下(步驟S120的"否"),重構(gòu)控制部1400向 線程調(diào)度部1110返回其主旨,線程調(diào)度部1110在當(dāng)前執(zhí)行中的線程結(jié)束 后,開始下一線程的執(zhí)行(步驟S150)。
另一方面,在判斷為使用的情況下(步驟S120的"是"),判斷進(jìn)行重 構(gòu)的區(qū)域是否空出。具體地說,判斷在與接受的線程名1411對(duì)應(yīng)的使用區(qū) 域數(shù)1413所示數(shù)量的區(qū)域是否空出。
重構(gòu)控制部1400在內(nèi)部存儲(chǔ)當(dāng)前使用的區(qū)域號(hào)碼,在正使用的線程的 時(shí)間片已結(jié)束的情況下,使用過的區(qū)域空出,從存儲(chǔ)的區(qū)域號(hào)碼中刪除。
在判斷為區(qū)域未空出的情況下(步驟S130的"否"),重構(gòu)控制部1400 向線程調(diào)度部1110通知其主旨。線程調(diào)度部1110選擇不同的線程(步驟 SIOO)。線程調(diào)度部1110存儲(chǔ)各線程的執(zhí)行次數(shù),在適當(dāng)時(shí)優(yōu)先選擇,并 且將全部線程的執(zhí)行次數(shù)相加。
另一方面,在判斷為區(qū)域是空出的情況下(步驟S130的"是"),重構(gòu) 控制部1400向可重構(gòu)運(yùn)算器1200通知進(jìn)行重構(gòu),向構(gòu)成信息存儲(chǔ)部1400 指定區(qū)域來發(fā)送與接受的線程名1411對(duì)應(yīng)的構(gòu)成信息1412。發(fā)送后,重 構(gòu)控制部1400更新存儲(chǔ)在內(nèi)部的使用中的區(qū)域號(hào)碼??芍貥?gòu)運(yùn)算器1200用從構(gòu)成信息存儲(chǔ)部1300發(fā)送的構(gòu)成信息來進(jìn)行 重構(gòu)(步驟S140),若結(jié)束,則通知重構(gòu)控制部1400。
接受了重構(gòu)已結(jié)束的通知的重構(gòu)控制部1400,向線程調(diào)度部1110返回 其通知內(nèi)容,線程調(diào)度部1110在當(dāng)前執(zhí)行中的線程結(jié)束后,立即開始下一 線程的執(zhí)行(步驟S150)。
使線程開始的線程調(diào)度部1110選擇下一個(gè)線程(步驟SIOO)。 (第二實(shí)施方式) (概要)
第一實(shí)施方式是每個(gè)線程使用進(jìn)行了重構(gòu)的可重構(gòu)運(yùn)算器,與此相比, 本實(shí)施方式中,每個(gè)指令使用進(jìn)行了重構(gòu)的可重構(gòu)運(yùn)算器。 下面說明第二實(shí)施方式的結(jié)構(gòu)等。 (結(jié)構(gòu))
圖5是第二實(shí)施方式的處理器5000的構(gòu)成例的圖。
處理器5000包括指令取出部5100、指令解碼部5200、運(yùn)算控制部5300、 地址表存儲(chǔ)部5400、重構(gòu)信息存儲(chǔ)部5500、可重構(gòu)運(yùn)算器5600及固定功 能運(yùn)算器5700,在外部具有指令存儲(chǔ)部5010。
指令存儲(chǔ)部5010具有預(yù)先存儲(chǔ)由處理器5000執(zhí)行的指令碼的功能。
指令取出部5100具有從指令存儲(chǔ)部5010讀入指令碼并傳遞給指令解 碼部5200的功能。
指令解碼部5200除了具有從指令取出部5100接受指令碼并解析的通 常的功能之外,還具有本發(fā)明獨(dú)有的功能。
具體地說是如下功能,即在解碼的結(jié)果是使用可重構(gòu)運(yùn)算器5600的指 令的情況下,根據(jù)指令種類從地址表存儲(chǔ)部5400取得存儲(chǔ)了構(gòu)成信息的地 址,將地址傳遞給重構(gòu)信息存儲(chǔ)部5500,并向可重構(gòu)運(yùn)算器5600發(fā)送構(gòu) 成信息。
地址表存儲(chǔ)部5400具有將指令種類和其構(gòu)成信息的地址對(duì)應(yīng)起來存儲(chǔ) 的功能。
運(yùn)算控制部5300具有按照指令解碼部5200解碼的結(jié)果來控制運(yùn)算動(dòng) 作的功能。對(duì)固定功能運(yùn)算器5700和可重構(gòu)運(yùn)算器5600, 一邊取得定時(shí)、 一邊發(fā)行指令。
15重構(gòu)信息存儲(chǔ)部5500對(duì)應(yīng)于多個(gè)指令的每個(gè)來存儲(chǔ)構(gòu)成信息的功能。 在此存儲(chǔ)的各構(gòu)成信息的開頭地址,由地址表存儲(chǔ)部5400同指令種類對(duì)應(yīng) 起來存儲(chǔ)著。該構(gòu)成信息和第一實(shí)施方式的存儲(chǔ)在構(gòu)成信息存儲(chǔ)部1300的 構(gòu)成信息相同。
此外,重構(gòu)信息存儲(chǔ)部5500具有在來自指令解碼部5200的指示下, 向可重構(gòu)運(yùn)算器5600發(fā)送指定的地址的構(gòu)成信息的功能。
可重構(gòu)運(yùn)算器5600是可重構(gòu)的運(yùn)算器,和第一實(shí)施方式的可重構(gòu)運(yùn)算 器1200相同。其中,在本實(shí)施方式中,是被分割為4個(gè)區(qū)域的運(yùn)算器。
固定功能運(yùn)算器5700由多個(gè)固定功能運(yùn)算器構(gòu)成,本實(shí)施方式中由三 個(gè)固定功能運(yùn)算器5701、 5702、 5703構(gòu)成。
下面,簡單地說明指令和構(gòu)成信息的對(duì)應(yīng)關(guān)系,并說明動(dòng)作。 (指令碼和構(gòu)成信息的對(duì)應(yīng)關(guān)系)
使用圖6和圖7說明根據(jù)本發(fā)明中使用的指令碼,求出用于進(jìn)行該指 令的執(zhí)行所必要的重構(gòu)的構(gòu)成信息的方法。
圖6是表示本發(fā)明中使用的指令碼構(gòu)成例的圖,圖7是表示指令信息 表5410的構(gòu)成例及內(nèi)容例的圖。
首先,從圖6的指令碼的構(gòu)成例開始說明。
本發(fā)明中使用的指令碼5110由表示指令種類的操作碼5111和表示由 該指令處理的值等的操作數(shù)5112構(gòu)成。
本發(fā)明中,該操作碼5111和構(gòu)成信息相對(duì)應(yīng)著(參照箭頭),在處理 器判斷為指令的執(zhí)行需要可重構(gòu)運(yùn)算器5600的情況下,由利用對(duì)應(yīng)起來的 構(gòu)成信息進(jìn)行了重構(gòu)的可重構(gòu)運(yùn)算器5600執(zhí)行指令。
在由處理器判斷為指令的執(zhí)行不需要可重構(gòu)運(yùn)算器5600的情況下,使 用固定功能運(yùn)算器5700來執(zhí)行。
接著,說明圖7的指令信息表5410。
該指令信息表5410被存儲(chǔ)在地址表存儲(chǔ)部5400。
指令信息表5410由操作碼種類5411、地址5412及使用區(qū)域數(shù)5413 構(gòu)成。
操作碼種類5411表示指令碼的操作碼,即指令。在此,僅記載了使用 可重構(gòu)運(yùn)算器5600的指令。因此,由固定功能運(yùn)算器5700執(zhí)行在此未記載的指令。
接著,地址5412表示同操作碼種類5411所表示的操作碼相對(duì)應(yīng)的構(gòu) 成信息的、重構(gòu)信息存儲(chǔ)部5500內(nèi)的地址。并且,本實(shí)施方式中采用了地 址,但也可以是ID等,只要是能夠確定重構(gòu)信息就可以。
使用區(qū)域數(shù)5413表示使用可重構(gòu)運(yùn)算器5600時(shí)的區(qū)域數(shù)。例如,操 作碼種類5411 "Sub"的指令使用由存儲(chǔ)在地址5412 "addr"所表示的地 址中的構(gòu)成信息進(jìn)行了重構(gòu)的可重構(gòu)運(yùn)算器1200,對(duì)可重構(gòu)運(yùn)算器1200 進(jìn)行重構(gòu)時(shí),需要使用區(qū)域數(shù)5413的"3"個(gè)區(qū)域。
本實(shí)施方式的情況下,考慮指令所使用的可重構(gòu)運(yùn)算器5600的區(qū)域數(shù), 在將程序變換為機(jī)器語言的編譯時(shí),在本實(shí)施方式中變換為指令碼5110 時(shí),決定指令的順序和由指令重構(gòu)的區(qū)域號(hào)碼。BP,在編譯時(shí),在考慮了 所執(zhí)行的指令的順序的基礎(chǔ)上,構(gòu)成在前面的指令執(zhí)行中可重構(gòu)的指令順 序,決定進(jìn)行各自的重構(gòu)的區(qū)域。此外,例如由操作者指定區(qū)域號(hào)碼,或 者按每個(gè)指令事先決定區(qū)域號(hào)碼等,以便由指令解碼部知道所使用的區(qū)域 號(hào)碼。
(動(dòng)作)
下面,使用圖8 圖10說明如何執(zhí)行指令。
圖8是使用了本發(fā)明涉及的指令組的程序例,圖9是使程序工作的處 理器的流水線動(dòng)作的例。
此外,圖IO是表示本實(shí)施方式的處理器的指令執(zhí)行處理的流程圖。 首先,簡單地說明圖8的程序。
操作碼5111 "add"、操作數(shù)5112 "r0,rl,r2"的指令碼意味著將寄存 器1的內(nèi)容和寄存器2的內(nèi)容相加并將結(jié)果代入寄存器0,操作碼5111 "sub"、操作數(shù)5112 "r3,rl,r3"的指令碼意味著從寄存器1的內(nèi)容減去 寄存器3的內(nèi)容并代入寄存器3。
此外,操作碼5111 "ReconfO"、操作數(shù)5112 "r2,r0,0xfe"的指令碼 意味著使用寄存器0的內(nèi)容和數(shù)值"Oxfe"進(jìn)行運(yùn)算"ReconfO",將結(jié)果 代入寄存器2;操作碼5111 "Reconfl"、操作數(shù)5112 "r3,rl,r3"的指令 碼意味著使用寄存器1的內(nèi)容和寄存器3的內(nèi)容進(jìn)行運(yùn)算"Reconfl",將 結(jié)果代入寄存器3。下面,使用圖9及圖10說明執(zhí)行程序的處理器的動(dòng)作。按照?qǐng)D10的 流程圖, 一邊參照?qǐng)D9的時(shí)序圖一邊說明。
圖8所示的程序被存儲(chǔ)在指令存儲(chǔ)部5010。
首先,指令取出部5100取出指令碼"Add r0, rl, r2"(圖10的步驟S800、 圖9的步驟S500),傳遞給指令解碼部5200。
接受了指令碼的指令解碼部5200解析接受到的指令碼。
在接受的指令碼是表示結(jié)束的代碼的情況下(圖10的步驟S810的 "是"),指令解碼部5200結(jié)束處理。
此外,在指令碼不是表示結(jié)束的代碼的情況下(圖10的步驟S810的 "否"),指令解碼部5200將操作碼5111 "Add"傳遞給地址表存儲(chǔ)部5400, 請(qǐng)求構(gòu)成信息的地址。
地址表存儲(chǔ)部5400參照指令信息表5410,檢索在操作碼種類5411中 是否存在被傳遞的操作碼5111 "Add",其結(jié)果不存在,所以向指令解碼部 5200返回不使用可重構(gòu)運(yùn)算器5600的消息(圖10的步驟S820的"否"、 圖9的歩驟S510)。
接受了不使用可重構(gòu)運(yùn)算器5600的消息的指令解碼部5200,將"Add r0,rl,r2"的已解碼的指令傳遞給運(yùn)算控制部5300。
被傳遞來解碼結(jié)果的運(yùn)算控制部5300向固定功能運(yùn)算器5700發(fā)行指 令,并執(zhí)行指令碼"AddrO,rl,r2"(圖10的步驟S830、 S840)。
指令取出部5100在取出指令碼"Add rO, rl, r2"之后,取出下一個(gè)指 令碼"Subr3,rl,r3"(圖10的步驟S800、圖9的步驟S520),傳遞給指令 解碼部5200。
接受了指令碼的指令解碼部5200向地址表存儲(chǔ)部5400傳遞操作碼 5111 "Sub",請(qǐng)求構(gòu)成信息的地址。
地址表存儲(chǔ)部5400參照指令信息表5410,檢索在操作碼種類5411中 是否存在被傳遞的操作碼5111 "Sub",結(jié)果存在,所以向指令解碼部5200 返回地址5412 "addrl"(圖10的步驟S820的"是"、圖9的步驟S600)。
接受了地址的指令解碼部5200向重構(gòu)信息存儲(chǔ)部5500傳遞接受到的 地址5412"addrl",向可重構(gòu)運(yùn)算器5600發(fā)送該地址的構(gòu)成信息,指示進(jìn) 行重構(gòu)。進(jìn)行了指示的指令解碼部5200向運(yùn)算控制部5300傳遞"Subr3,rl,r3" 的已解碼的指令。
另一方面,接受了指示的重構(gòu)信息存儲(chǔ)部5500向可重構(gòu)運(yùn)算器5600 發(fā)送接受到的地址的構(gòu)成信息,進(jìn)行重構(gòu)(圖10的步驟S850,圖9的步 驟S610)。
該重構(gòu)是對(duì)可重構(gòu)運(yùn)算器5600的4個(gè)區(qū)域中的3個(gè)區(qū)域進(jìn)行重構(gòu)(參 照?qǐng)D7)。
被傳遞了解碼結(jié)果的運(yùn)算控制器5600向可重構(gòu)運(yùn)算器5600發(fā)行指令, 并執(zhí)行指令碼"Subr3,rl,r3"(圖10的步驟S860、圖9的步驟S620)。 之后,將執(zhí)行結(jié)果寫入寄存器3 (圖9的步驟S630)。 如此地,依次并同時(shí)執(zhí)行指令。
在此,從執(zhí)行指令碼"Subr3,rl,r3"的下一個(gè)指令碼"ReconfO, r2, r0, Oxfe"的情況來看,該指令碼"ReconfO"使用可重構(gòu)運(yùn)算器5600。
因此,在"Subr3,rl,r3"的執(zhí)行中(圖9的步驟S620)進(jìn)行重構(gòu)(圖 9的步驟S700)。
該操作碼種類5411 "ReconfD"的使用區(qū)域數(shù)5413是"0"個(gè),所以, "Subr3,rl,r3"使用3個(gè)區(qū)域,在執(zhí)行中也能進(jìn)行重構(gòu)。 執(zhí)行下一個(gè)指令碼"Reconflr3,rl,r3"的情況也相同。 如此地,在具有可重構(gòu)的運(yùn)算器的處理器中,可以控制可按指令單位
進(jìn)行重構(gòu)的運(yùn)算器,能夠以較高的面積效率來實(shí)現(xiàn)靈活且高性能的運(yùn)算處理。
(變形例) 下面,說明第二實(shí)施方式的變形例。
第二實(shí)施方式中,按每個(gè)指令對(duì)可重構(gòu)運(yùn)算器進(jìn)行了重構(gòu),但在本變 形例中,說明一次重構(gòu)多個(gè)指令的例子。由于同時(shí)執(zhí)行多個(gè)指令,所以能 夠謀求處理速度的提高。
使用圖11 圖13說明如何執(zhí)行指令。
圖11是使用了本變形例的指令組的程序例,圖12是使程序工作的處 理器的流水線動(dòng)作的例子。
此外,圖13是表示本變形例的處理器的指令執(zhí)行處理的流程圖。首先,圖11所示程序的各指令的內(nèi)容和圖8相同。
但是,在相同的階段執(zhí)行"ReconfO r2, r0, Oxfe"和"Reconf 1 r3, rl, r3" 這一點(diǎn)是不同的。在圖11中,為了說明的方便,通過將"ReconfO r2,r0,0xfe"和"Reconflr3,rl,r3"橫向并列記載,示出了同時(shí)被執(zhí)行, 但是,編譯器事先輸出,以便指令解碼器5200能夠解釋同時(shí)執(zhí)行2個(gè)指令 的情況。
例如,考慮指令所使用的可重構(gòu)運(yùn)算器5600的區(qū)域數(shù),在編譯時(shí)決定 指令的順序和由指令進(jìn)行重構(gòu)的區(qū)域的號(hào)碼。即,在編譯時(shí)考慮指令執(zhí)行 的順序,選擇可同時(shí)執(zhí)行且能同時(shí)重構(gòu)的指令,決定進(jìn)行各自的重構(gòu)的區(qū) 域。該并行執(zhí)行的指令和使用的區(qū)域號(hào)碼是,例如設(shè)置表示并行實(shí)效的指 令碼,在其操作數(shù)中記載這些指令和區(qū)域號(hào)碼等。
具體地說,在編譯時(shí)考慮使用區(qū)域數(shù)5413, "Sub"和"ReconfO"可以 同時(shí)進(jìn)行重構(gòu),但"Sub"和"Reconfl"不能同時(shí)進(jìn)行重構(gòu)。這是因?yàn)椋?"Sub"和"Reconf0"加起來使用4個(gè)區(qū)域,但"Sub"和"Reconfl"加 起來需要5個(gè)區(qū)域(參照?qǐng)D7)。
使用圖12及圖13簡單地說明執(zhí)行程序的處理器的動(dòng)作。按照?qǐng)D13的 流程圖, 一邊參照?qǐng)D12的時(shí)序圖、 一邊說明。
圖13的流程圖只說明同圖10的流程圖之間的差異。具體地說,是步 驟S900 步驟S920。
"Reconf0 r2,r0,0xfe"和"Reconfl r3,rl,r3"使用可重構(gòu)運(yùn)算器, 并且,解析了同時(shí)執(zhí)行的指令解碼部5200向地址表存儲(chǔ)部5400傳遞操作 碼5111 "Reconf0"和"Reconfl",請(qǐng)求構(gòu)成信息的地址。
地址表存儲(chǔ)部5400參照指令信息表5410,向指令解碼部5200返回地 址5412 "addr4"和"addr5"(圖13的步驟S820的"是"、步驟S900的 "是")。
接受了地址的指令解碼部5200向重構(gòu)信息存儲(chǔ)部5500傳遞接受到的 地址5412 "addr4"和"addr5",向可重構(gòu)運(yùn)算器5600送出該地址的構(gòu)成 信息,指示進(jìn)行重構(gòu)。
進(jìn)行了指示的指令解碼部5200向運(yùn)算控制部5300傳遞"Reconf0 r2,r0,0xfe"和"Reconfl r3,rl,r3"的已解碼的指令。另一方面,接受了指示的重構(gòu)信息存儲(chǔ)部5500向可重構(gòu)運(yùn)算器5600 發(fā)送接受到的地址的構(gòu)成信息,進(jìn)行重構(gòu)(圖13的步驟S910、圖12的步 驟S700)。
被傳遞了解碼結(jié)果的運(yùn)算控制部5300向可重構(gòu)運(yùn)算器5600發(fā)行指令, 執(zhí)行指令碼"ReconfO r2, r0, 0xfe"和"Reconf 1, r3, rl, r3"(圖13的步 驟S920、圖12的步驟S710)。
接受了指令碼的指令解碼部5200,在不使用可重構(gòu)運(yùn)算器的情況(圖 13的步驟S820的"否")和即使使用了也是1個(gè)指令的情況(圖13的步 驟S900的"否")下,分別執(zhí)行同圖10相同的處理(圖13的步驟S840 步驟S870)。
并且,在此說明了同時(shí)處理使用可重構(gòu)的運(yùn)算器的2個(gè)指令的情況, 但能夠同時(shí)發(fā)行的指令數(shù)并不限于2個(gè)。此外,也可以和使用固定功能運(yùn) 算器5700的指令一起進(jìn)行處理。 (補(bǔ)充)
以上,基于實(shí)施方式說明了本發(fā)明涉及的處理器,但也可以將該處理 器局部進(jìn)行變形,毋庸置疑,本發(fā)明并不限于上述的實(shí)施方式。艮P:
(1) 第二實(shí)施方式中,將指令碼的操作碼和構(gòu)成信息對(duì)應(yīng)起來,但不 限于此。
例如,也可以事先在操作數(shù)的一部分代入表示構(gòu)成信息的代碼。如圖 14所示,在指令碼5150的操作數(shù)的字段5150中事先代入構(gòu)成信息的ID 等,在執(zhí)行時(shí)根據(jù)ID來確定構(gòu)成信息。
(2) 第二實(shí)施方式中,為了說明的方便,沒有詳細(xì)說明多個(gè)固定功能 運(yùn)算器的執(zhí)行,但在能夠同時(shí)執(zhí)行這些固定功能運(yùn)算器和可重構(gòu)運(yùn)算器的 情況下,也可以同時(shí)發(fā)行多個(gè)指令。
根據(jù)如何決定應(yīng)同時(shí)發(fā)行的指令,有可能大幅度提高運(yùn)算效率。
艮P,在由可重構(gòu)的硬件構(gòu)成的運(yùn)算器中,能夠選擇地執(zhí)行多種的運(yùn)算
功能。因此,能夠執(zhí)行任意的指令,通過執(zhí)行本發(fā)明的指令組,能夠制作
實(shí)現(xiàn)提高指令并行度的最佳功能的程序。
決定應(yīng)同時(shí)發(fā)行的指令的動(dòng)作,例如可以在處理器的內(nèi)部在指令解釋
時(shí)進(jìn)行,也可以在對(duì)處理器提供的程序的時(shí)刻預(yù)先進(jìn)行。(3) 實(shí)施方式中,可重構(gòu)運(yùn)算器被分配在均勻的多個(gè)區(qū)域,但也可以 是每個(gè)區(qū)域具有不同的邏輯塊,此外,該區(qū)域的大小也可以不同。
(4) 實(shí)施方式中,構(gòu)成可重構(gòu)運(yùn)算器的邏輯塊是包含一覽表和觸發(fā)器 的電路組件,但邏輯塊也可以包括ALU (Arithmetic and Logical Unit, 算數(shù)及邏輯單元)、進(jìn)行移位或數(shù)據(jù)控制、邏輯運(yùn)算的單元、觸發(fā)器等,即 也可以由一般邏輯電路的組合構(gòu)成。
本發(fā)明涉及的處理器能夠抑制電路規(guī)模、實(shí)現(xiàn)靈活且高性能的處理, 因此作為圖像處理LSI的運(yùn)算器等特別有用。
權(quán)利要求
1. 一種處理器,執(zhí)行由多個(gè)指令構(gòu)成的程序,其特征在于,具有可重構(gòu)的集成電路;重構(gòu)單元,根據(jù)電路構(gòu)成信息,將所述集成電路的一部分進(jìn)行重構(gòu);構(gòu)成信息存儲(chǔ)單元,存儲(chǔ)與多個(gè)指令的各個(gè)相對(duì)應(yīng)的電路構(gòu)成信息;選擇單元,根據(jù)所述電路構(gòu)成信息,選擇可同時(shí)重構(gòu)所述集成電路的2個(gè)以上的指令;執(zhí)行單元,使用根據(jù)與所述選擇單元所選擇的2個(gè)以上的指令相對(duì)應(yīng)的電路構(gòu)成信息進(jìn)行了重構(gòu)的集成電路,并行執(zhí)行該2個(gè)以上的指令。
2. —種處理器,其特征在于,具有-指令取出部,從指令存儲(chǔ)部讀入包含操作碼和操作數(shù)的指令碼; 指令解碼部,解碼讀入的指令碼; 指令執(zhí)行部,包含可重構(gòu)運(yùn)算器;控制部,根據(jù)所述指令解碼部的解碼結(jié)果,控制所述指令執(zhí)行部的動(dòng)作;構(gòu)成信息存儲(chǔ)部,按照每個(gè)操作碼的類別,存儲(chǔ)用于構(gòu)成該操作碼所 表示的處理執(zhí)行所需要電路的電路構(gòu)成信息,所述指令解碼部根據(jù)解碼結(jié)果指示所述可重構(gòu)運(yùn)算器使其進(jìn)行重構(gòu),所述可重構(gòu)運(yùn)算器按照來自所述指令解碼部的指示,使用與解碼的操 作碼對(duì)應(yīng)的電路構(gòu)成信息,來進(jìn)行重構(gòu),所述控制部通過向完成重構(gòu)的可重構(gòu)運(yùn)算器發(fā)送解碼的指令碼,對(duì)于 操作數(shù)所表示的數(shù)據(jù)進(jìn)行控制,以執(zhí)行操作碼所表示的處理。
3. 如權(quán)利要求2所述的處理器,其特征在于,所述指令解碼部基于所述電路構(gòu)成信息選擇在所述可重構(gòu)運(yùn)算器可同 時(shí)重構(gòu)的2個(gè)以上的指令,所述可重構(gòu)運(yùn)算器使用與被選擇的2個(gè)以上的指令對(duì)應(yīng)的電路構(gòu)成信 息來進(jìn)行重構(gòu),所述控制部使用完成重構(gòu)的2個(gè)以上的電路來進(jìn)行控制,以執(zhí)行該2 個(gè)以上的指令。
4. 如權(quán)利要求2所述的處理器,其特征在于, 所述指令執(zhí)行部還包括固定功能運(yùn)算器,所述控制部在所述構(gòu)成信息存儲(chǔ)部中不存在與解碼的操作碼對(duì)應(yīng)的電 路構(gòu)成信息的情況下,控制為使用所述固定功能運(yùn)算器來執(zhí)行指令。
5. 如權(quán)利要求2所述的處理器,其特征在于, 所述操作數(shù)包含表示操作碼和電路構(gòu)成信息進(jìn)行對(duì)應(yīng)的代碼。
6. —種程序生成方法,生成在包含可重構(gòu)運(yùn)算器的處理器中使用的程 序,其特征在于,在編譯時(shí),基于指令所使用的可重構(gòu)運(yùn)算器的區(qū)域數(shù),來決定程序中 的指令的順序。
7. 如權(quán)利要求6所述的程序生成方法,其特征在于, 考慮可同時(shí)執(zhí)行并且可同時(shí)重構(gòu),來決定指令的順序。
全文摘要
本發(fā)明涉及的處理器,是循環(huán)地按照分配給線程的時(shí)間來執(zhí)行多個(gè)線程的處理器,其具備可重構(gòu)的集成電路;事先存儲(chǔ)與多個(gè)線程的各個(gè)對(duì)應(yīng)的電路構(gòu)成信息,根據(jù)電路構(gòu)成信息將上述集成電路的一部分進(jìn)行重構(gòu),依次使用根據(jù)對(duì)應(yīng)于線程的電路構(gòu)成信息進(jìn)行了重構(gòu)的集成電路,執(zhí)行該線程。在執(zhí)行某線程的期間,選擇下面執(zhí)行的線程,對(duì)于正在執(zhí)行的線程在使用的上述集成電路部分之外的部分,為了下面執(zhí)行的線程而進(jìn)行重構(gòu)。
文檔編號(hào)G06F9/38GK101546255SQ20091013202
公開日2009年9月30日 申請(qǐng)日期2006年4月12日 優(yōu)先權(quán)日2005年4月12日
發(fā)明者橋本隆, 森下廣之, 清原督三 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
清徐县| 喀喇沁旗| 江华| 丰城市| 监利县| 武胜县| 泾源县| 蓝田县| 保定市| 盘锦市| 密云县| 中西区| 芦山县| 马龙县| 佳木斯市| 泌阳县| 东乡县| 皮山县| 沂南县| 平利县| 昌平区| 浙江省| 缙云县| 九江县| 南通市| 平乡县| 富宁县| 中方县| 苏州市| 旬阳县| 银川市| 芦山县| 拉孜县| 杭州市| 微山县| 恭城| 舞钢市| 基隆市| 呼玛县| 广元市| 阜新|