亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多線程并行執(zhí)行裝置、廣播流再現(xiàn)裝置、廣播流儲(chǔ)存裝置、儲(chǔ)存流再現(xiàn)裝置、儲(chǔ)存流再編碼...的制作方法

文檔序號(hào):6359092閱讀:162來源:國(guó)知局
專利名稱:多線程并行執(zhí)行裝置、廣播流再現(xiàn)裝置、廣播流儲(chǔ)存裝置、儲(chǔ)存流再現(xiàn)裝置、儲(chǔ)存流再編碼 ...的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及將循環(huán)處理中的重復(fù)單位分為多個(gè)線程而并行執(zhí)行的技術(shù)。
背景技術(shù)
在將某一個(gè)循環(huán)處理用多個(gè)線程分擔(dān)而并行地處理(多線程化)時(shí),需要在并行處理的情況和逐次處理的情況的兩情況下最終的變量的值為相同的值。將其稱作“終值保證”。作為實(shí)現(xiàn)這樣的終值保證的技術(shù),已知有專利文獻(xiàn)1、2的技術(shù)。在專利文獻(xiàn)2中,在使某個(gè)循環(huán)處理并行化時(shí),按照并行過程設(shè)置區(qū)域。然后,在對(duì)在各并行過程中定義的變量附加表示是否是最終的重復(fù)的代碼后,保存到對(duì)應(yīng)的區(qū)域中。并且,如果對(duì)于循環(huán)處理的全部的并行過程的執(zhí)行完成,則以對(duì)保存在各區(qū)域中的變量附加的代碼為線索,確定與擔(dān)當(dāng)最終的重復(fù)的過程對(duì)應(yīng)的變量。接著,通過將所確定的變量取出,能夠正確地參照變量的值。先行技術(shù)文獻(xiàn)專利文獻(xiàn)專利文獻(xiàn)1 日本專利第3269639號(hào)公報(bào)專利文獻(xiàn)2 日本特開平5-181687號(hào)公報(bào)
發(fā)明概要發(fā)明要解決的課題但是,如果將專利文獻(xiàn)2的方法應(yīng)用到上述的循環(huán)處理的多線程化中,則按照線程設(shè)置區(qū)域,將由各線程處理的變量保存到該區(qū)域中。因此,有與線程數(shù)成比例、需要的存儲(chǔ)器區(qū)域增大的問題。例如,如果線程數(shù)是16 個(gè),則對(duì)應(yīng)需要16個(gè)存儲(chǔ)器區(qū)域。

發(fā)明內(nèi)容
本發(fā)明是解決這樣的問題的,目的是提供一種能夠以少量的存儲(chǔ)器區(qū)域?qū)崿F(xiàn)終值保證的多線程并行執(zhí)行裝置。解決課題的手段有關(guān)本發(fā)明的多線程并行執(zhí)行裝置,其特征在于,具備執(zhí)行機(jī)構(gòu),將一個(gè)循環(huán)處理中的重復(fù)單位分為多個(gè)線程并行執(zhí)行;接收機(jī)構(gòu),在上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的期間中,從上述執(zhí)行機(jī)構(gòu)接收表示各線程中的重復(fù)單位的執(zhí)行的結(jié)果的值、和表示該重復(fù)單位的順序的順序信息的組;保存機(jī)構(gòu),用來保存上述值和上述順序信息的組;控制機(jī)構(gòu),在上述接收機(jī)構(gòu)接收到上述組的情況下,基于由接收到的上述順序信息與保存在上述保存部中的順序
5信息分別表示的順序的先后,控制是使接收到的上述順序信息和對(duì)應(yīng)的上述值的組覆蓋還是不覆蓋到上述保存部中;確定機(jī)構(gòu),如果由上述執(zhí)行機(jī)構(gòu)進(jìn)行的并行執(zhí)行結(jié)束,則確定保存在上述保存機(jī)構(gòu)中的值作為上述一個(gè)循環(huán)處理的執(zhí)行結(jié)果。發(fā)明效果根據(jù)有關(guān)本發(fā)明的多線程并行執(zhí)行裝置,如果接收機(jī)構(gòu)接收到值和順序信息的組,則能夠使是否向保存機(jī)構(gòu)覆蓋接收到的信息基于由接收到的順序信息和保存的順序信息分別表示的順序的先后而不同,所以能夠適當(dāng)?shù)剡M(jìn)行覆蓋控制而實(shí)現(xiàn)終值保證。此外,通過向保存機(jī)構(gòu)覆蓋值和順序信息,使得即使多線程數(shù)增加、也不會(huì)增加上述保存機(jī)構(gòu)的存儲(chǔ)器區(qū)域。


圖1是多線程并行執(zhí)行裝置101的功能塊圖。圖2是表示數(shù)據(jù)更新管理部103中的處理的流程圖。圖3是覆蓋要否的判斷表。圖4是表示實(shí)例程序1、和將該實(shí)例程序1逐次執(zhí)行的情況下的處理結(jié)果的圖。圖5是表示將圖4的實(shí)例程序1利用線程1、2并行執(zhí)行的情況下的各迭代的處理結(jié)果的圖。圖6是說明以迭代號(hào)碼1 — 3 — 2 — 4的順序執(zhí)行的情況下的、信息的流動(dòng)和暫定數(shù)據(jù)保存部104的覆蓋的有無的圖的前半。圖7是說明以迭代號(hào)碼1 — 3 — 2 — 4的順序執(zhí)行的情況下的、信息的流動(dòng)和暫定數(shù)據(jù)保存部104的覆蓋的有無的圖的后半。圖8(a)是表示設(shè)定了斷點(diǎn)的實(shí)例程序2的圖,圖8 (b)是表示在將實(shí)例程序2逐次執(zhí)行的情況下、在第2個(gè)迭代中中斷的狀況的形象圖,圖8(c)是將實(shí)例程序2利用線程 1、2并行執(zhí)行時(shí)的形象圖。圖9是多線程并行執(zhí)行裝置901的功能塊圖。
圖10是表示數(shù)據(jù)更新管理部903中的處理的流程圖。
圖11是覆蓋要否的判斷表。
圖12是多線程并行執(zhí)行裝置1201的功能塊圖。
圖13是多線程編譯器1302的結(jié)構(gòu)圖。
圖14是表示處理線程程序生成部1304中的處理的流程圖。
圖15是集成電路1501的功能塊圖。
圖16是廣播流再現(xiàn)裝置1601的功能塊圖。
圖17是廣播流儲(chǔ)存裝置1701的功能塊圖。
圖18是儲(chǔ)存流再現(xiàn)裝置1801的功能塊圖。
圖19是儲(chǔ)存流再編碼裝置1901的功能塊圖。
圖20是表示變形例的圖。
圖21是表示數(shù)據(jù)更新管理部103中的處理的流程圖。
圖22是多線程并行執(zhí)行裝置2201的功能塊圖。
具體實(shí)施例方式以下,參照附圖對(duì)本發(fā)明的實(shí)施方式進(jìn)行說明。(實(shí)施方式1)如圖1所示,多線程并行執(zhí)行裝置101具備多線程執(zhí)行部102、數(shù)據(jù)更新管理部 103、暫定數(shù)據(jù)保存部104、確定數(shù)據(jù)保存部105。多線程執(zhí)行部102例如由CPU構(gòu)成,執(zhí)行程序。該程序包括相當(dāng)于循環(huán)處理的重復(fù)單位(稱作迭代)的命令群。多線程執(zhí)行部102將該迭代分為多個(gè)線程而并行執(zhí)行。在該并行執(zhí)行中,多線程執(zhí)行部102每當(dāng)各線程中的迭代結(jié)束,就將表示迭代的執(zhí)行結(jié)果的值、和表示已執(zhí)行的迭代在循環(huán)處理中是第幾個(gè)(該順序與假設(shè)將循環(huán)處理逐次執(zhí)行時(shí)的執(zhí)行的順序一致)的迭代號(hào)碼i(th)的組向接收部111發(fā)送。此外,在并行執(zhí)行結(jié)束時(shí),多線程執(zhí)行部102對(duì)結(jié)束判斷部113目的地發(fā)送表示結(jié)束的結(jié)束信息。數(shù)據(jù)更新管理部103根據(jù)由多線程執(zhí)行部102進(jìn)行的并行執(zhí)行,管理暫定數(shù)據(jù)保存部104及確定數(shù)據(jù)保存部105的數(shù)據(jù)更新。數(shù)據(jù)更新管理部103具備接收部111、保存控制部112、結(jié)束判斷部113、確定部 114。接收部111接收從多線程執(zhí)行部102發(fā)送來的、包括表示迭代的執(zhí)行結(jié)果的值與表示已執(zhí)行的迭代在循環(huán)處理中是第幾個(gè)的迭代號(hào)碼i(th)的組的信息。保存控制部112在沒有暫定數(shù)據(jù)保存部104的數(shù)據(jù)的情況下,將接收部111接收到的值與迭代號(hào)碼i(th)的組保存到暫定數(shù)據(jù)保存部104中。此外,保存控制部112在暫定數(shù)據(jù)保存部104中已經(jīng)保存有對(duì)應(yīng)的信息的情況下,按照后述的條件,進(jìn)行是否覆蓋保存的控制。結(jié)束判斷部113如果從多線程執(zhí)行部102接收到上述結(jié)束信息,則判斷并行執(zhí)行的結(jié)束。并且,如果判斷為結(jié)束,則對(duì)確定部114通知該消息。另外,并行執(zhí)行結(jié)束的判斷并不限定于此,也可以使用一般的方法。確定部114如果從結(jié)束判斷部113接受到結(jié)束判斷的通知,則將保存在暫定數(shù)據(jù)保存部104中的值取出,向確定數(shù)據(jù)保存部105反映(復(fù)制)。暫定數(shù)據(jù)保存部104是用來在由多線程執(zhí)行部102進(jìn)行的并行執(zhí)行中保存上述值和迭代號(hào)碼i的。另外,在本說明書中,將保存在暫定數(shù)據(jù)保存部104中的迭代號(hào)碼表述為“i”,將接收部111從多線程執(zhí)行部102接收到的迭代號(hào)碼區(qū)別表述為“i (th) ”。確定數(shù)據(jù)保存部105是用來保存作為上述一個(gè)循環(huán)處理的執(zhí)行結(jié)果的值的。另外,兩保存部 104、105 例如由 RAM (Random Access Memory)構(gòu)成。接著,參照?qǐng)D2對(duì)多線程并行執(zhí)行時(shí)的數(shù)據(jù)更新管理部103的動(dòng)作進(jìn)行說明。首先,保存控制部112進(jìn)行暫定數(shù)據(jù)保存部104的內(nèi)容清空等的初始設(shè)定(S21)。然后,在由結(jié)束判斷部113判斷并行執(zhí)行的結(jié)束(S22 是)之前,為步驟S23 S25 的處理的重復(fù)。如果接收部111接收到值和迭代號(hào)碼i (th) (S23 是),則保存控制部112判斷是否需要將暫定數(shù)據(jù)保存部104的值與迭代號(hào)碼i的組通過接收到的值和迭代號(hào)碼i (th)覆蓋(S24)。該判斷沿著圖3的表進(jìn)行。即,保存控制部112基于接收部111接收到的迭代號(hào)碼i(th)與保存在暫定數(shù)據(jù)保存部104中的迭代號(hào)碼i的大小關(guān)系進(jìn)行判斷。S卩,如果迭代號(hào)碼i不比迭代號(hào)碼i(th)大(i > i(th)),則保存控制部112判斷為不需要覆蓋(S24:否)。相對(duì)于此,如果迭代號(hào)碼i是迭代號(hào)碼i(th)以下(i Si (th)),則保存控制部112 判斷為需要覆蓋(S24:是)。另外,在并行執(zhí)行的剛開始后的情況下等、在暫定數(shù)據(jù)保存部 104中沒有保存有數(shù)據(jù)時(shí)也判斷為需要覆蓋。并且,保存控制部112將接收到的值和迭代號(hào)碼i(th)的組覆蓋到暫定數(shù)據(jù)保存部 104 中(S25)。通過該覆蓋,在保存控制部112中,迭代的順序?yàn)轫樞蚩壳暗闹当粍h除,迭代的順序?yàn)轫樞蚋亢蟮闹当槐4妗H绻山Y(jié)束判斷部113判斷為并行執(zhí)行的結(jié)束(S22 是),則確定部114將暫定數(shù)據(jù)保存部104的值取出,反映給確定數(shù)據(jù)保存部105。另外,在暫定數(shù)據(jù)保存部104的數(shù)據(jù)是無效的情況下(從多線程執(zhí)行部1個(gè)都沒有發(fā)送數(shù)據(jù)的情況下、或發(fā)送的數(shù)據(jù)都是null的情況下等),確定部114也可以不進(jìn)行值的取出。根據(jù)以上那樣的流程,通過在并行執(zhí)行中重復(fù)的步驟S23 S25,保存在暫定數(shù)據(jù)保存部104中的值成為在作為迭代的執(zhí)行結(jié)果輸出的多個(gè)值中順序最靠后的順序的值。因而,能夠使與在并行執(zhí)行的結(jié)束后逐次處理的情況相同的值反映到確定數(shù)據(jù)保存部105中,能夠?qū)崿F(xiàn)終值保證。并且,保存在暫定數(shù)據(jù)保存部104中的數(shù)據(jù)僅值和迭代號(hào)碼的一個(gè)組就足夠,與按照線程準(zhǔn)備存儲(chǔ)器區(qū)域的情況相比能夠成為較少的存儲(chǔ)器區(qū)域。接著,舉并行執(zhí)行的具體例更詳細(xì)地說明。圖4是表示實(shí)例程序1的圖。該實(shí)例程序1的源代碼表示進(jìn)行a = 0,1,2,3和4 次的迭代。在將該實(shí)例程序1逐次執(zhí)行的情況下,因?yàn)?l)a = 0 時(shí),由 b[a] = b
= 2 > -2,c = 0+1 = 1(2)a = 1 時(shí),由 b[a] = b[l] = 1 > -2,c = 1+1 = 2(3)a = 2 時(shí),由 b[a] = b[2] = -I > -2,c = 2+1 = 3(4)a = 3時(shí),由b[a] = b[3] = _2彡-2,c不更新,所以為c = 3,值“3”為處理結(jié)果。假設(shè)將該實(shí)例程序1的4次的迭代劃分而分配給各兩次線程1 (負(fù)責(zé)a = 0,1)和線程2 (負(fù)責(zé)a = 2,3)。如圖5所示,結(jié)束了第1個(gè)迭代(a = 0)的線程“ 1 ”將值1和迭代號(hào)碼“ 1 ”的組向數(shù)據(jù)更新管理部103的接收部111發(fā)送。同樣,線程1、2每當(dāng)各次的迭代結(jié)束,就將該處理結(jié)果的值和迭代號(hào)碼的組向數(shù)據(jù)更新管理部103的接收部111發(fā)送。
考慮圖5的4次的迭代以迭代號(hào)碼1 — 3 — 2 — 4的順序結(jié)束的情況。將該情況下的各種數(shù)據(jù)的變遷的形象表示在圖6、圖7中。如圖6(a)所示,在第1個(gè)迭代結(jié)束時(shí),多線程執(zhí)行部向數(shù)據(jù)更新管理部103發(fā)送作為迭代的執(zhí)行結(jié)果的值“ 1,,和迭代號(hào)碼“ 1 ”。如果數(shù)據(jù)更新管理部103的接收部111接收到該值“1”和迭代號(hào)碼“1”,則數(shù)據(jù)更新管理部103的保存控制部112因?yàn)樵跁憾〝?shù)據(jù)保存部104中沒有保存有數(shù)據(jù),所以判斷為需要覆蓋而進(jìn)行覆蓋(圖2,S23 是,S24 是,S25)。如圖6 (b)所示,在第3個(gè)迭代結(jié)束時(shí),數(shù)據(jù)更新管理部103的保存控制部112因?yàn)楸4嬖跁憾〝?shù)據(jù)保存部104中的迭代號(hào)碼“1”是接收部111接收到的迭代號(hào)碼“3”以下, 所以判斷為需要覆蓋而進(jìn)行覆蓋(S23 是,S24 是,S25)。如圖7(c)所示,在第2個(gè)迭代結(jié)束時(shí),數(shù)據(jù)更新管理部103的保存控制部112因?yàn)楸4嬖跁憾〝?shù)據(jù)保存部104中的迭代號(hào)碼“3”比接收部111接收到的迭代號(hào)碼“2”大, 所以判斷為不需要覆蓋(323:是,324:否)。并且,保存控制部112將接收部111接收到的值“2”和迭代號(hào)碼“2”丟棄。如圖7(d)所示,在第4個(gè)迭代結(jié)束時(shí),數(shù)據(jù)更新管理部103的接收部111接收到的值是“null”為空,所以保存控制部112判斷為不需要覆蓋(323:是,324:否)。并且,保存控制部112將接收部111接收到的值“null”和迭代號(hào)碼“4”丟棄。如圖7(e)所示,全部的迭代結(jié)束,從多線程執(zhí)行部102發(fā)送表示并行執(zhí)行的結(jié)束的結(jié)束信息,如果數(shù)據(jù)更新部103的結(jié)束判斷部113接收到該結(jié)束信息(S22 是),則確定部114取得保存在暫定數(shù)據(jù)保存部104中的值“3”,向確定數(shù)據(jù)保存部105保存(S26)。這樣,保存在確定數(shù)據(jù)保存部105中的值“3”與逐次處理時(shí)的處理結(jié)果的值 “3”(參照?qǐng)D4) 一致,可知實(shí)現(xiàn)了終值保證。(實(shí)施方式2)實(shí)施方式2是在以循環(huán)處理的重復(fù)單位設(shè)定了用來將處理中中途中止的斷點(diǎn)的情況下也想要實(shí)現(xiàn)終值保證。在這樣設(shè)定了斷點(diǎn)的情況下,在逐次執(zhí)行時(shí)和并行執(zhí)行時(shí),執(zhí)行的形態(tài)不同,所以為了實(shí)現(xiàn)終值保證而需要進(jìn)一步的設(shè)計(jì)。具體地使用圖8進(jìn)行說明。在圖8(a)所示的實(shí)例程序2中,記述有包括4次的迭代的循環(huán)處理??紤]將該程序逐次地執(zhí)行。在該執(zhí)行中,如果在第2個(gè)迭代中達(dá)到斷點(diǎn),則不執(zhí)行第3個(gè)、第4個(gè)迭代(圖8(b))。這里,假設(shè)將該實(shí)例程序2的4次迭代如圖8 (c)所示那樣對(duì)線程1和線程2各分配兩次。如上所述,在逐次執(zhí)行的情況下,不執(zhí)行第3個(gè)、第4個(gè)迭代,所以在并行執(zhí)行的情況下,也需要使得第3個(gè)、第4個(gè)迭代的處理結(jié)果不作為一系列的處理的最終的值反映。所以,在本實(shí)施方式2中,通過利用表示是否到達(dá)了斷點(diǎn)的中斷標(biāo)志(是在到達(dá)時(shí)為ON、在未到達(dá)時(shí)為OFF的標(biāo)志),實(shí)現(xiàn)終值保證的實(shí)現(xiàn)。如圖9所示,多線程并行執(zhí)行裝置901具備多線程執(zhí)行部902、數(shù)據(jù)更新管理部 903、暫定數(shù)據(jù)保存部904。多線程執(zhí)行部902每當(dāng)各線程中的迭代結(jié)束,將表示迭代的執(zhí)行結(jié)果的值、表示執(zhí)行的迭代在循環(huán)處理中是第幾個(gè)的迭代號(hào)碼i(th)、以及表示是否到達(dá)了斷點(diǎn)的中斷標(biāo)志的組向接收部911發(fā)送。其他功能與多線程執(zhí)行部102 (圖1)是同樣的。數(shù)據(jù)更新管理部903的保存控制部912基于接收部911接收到的值、迭代號(hào)碼 i (th)和中斷標(biāo)志的三者的組,進(jìn)行是否覆蓋保存的控制。暫定數(shù)據(jù)保存部904是用來在由多線程執(zhí)行部902進(jìn)行的并行執(zhí)行中保存值、迭代號(hào)碼i和中斷標(biāo)志的三者的組的單元。圖9的其他功能塊與使用圖1說明的功能塊是同樣的,所以省略說明。接著,參照?qǐng)D10對(duì)多線程并行執(zhí)行時(shí)的數(shù)據(jù)更新管理部903的動(dòng)作進(jìn)行說明。在圖10中,賦予了與圖2相同的號(hào)碼的步驟S21 S22、S26與圖2是同樣的,所以省略說明。特別是,如果接收部911接收到值、迭代號(hào)碼i(th)和中斷標(biāo)志的組(S103:是), 則保存控制部912判斷是否需要將暫定數(shù)據(jù)保存部904的值、迭代號(hào)碼i和中斷標(biāo)志通過接收到的值、迭代號(hào)碼i(th)和中斷標(biāo)志覆蓋(S104)。該判斷沿著圖11的表。如圖11的表所示,基于接收部911接收到的中斷標(biāo)志的0N/0FF、保存在暫定數(shù)據(jù)保存部904中的中斷標(biāo)志的0N/0FF、迭代號(hào)碼的大小關(guān)系的3個(gè)要素,保存控制部912判斷
覆蓋還是不覆蓋。以下,對(duì)在圖11的表中、在Ll L6的各行中使覆蓋的有無不同的理由簡(jiǎn)單地說明。Ll L2的行與實(shí)施方式1同樣,將迭代號(hào)碼在順序上更靠后的值保存到暫定數(shù)據(jù)保存部904中。L3的行由于在暫定數(shù)據(jù)保存部904中已保存有中斷的值,所以不覆蓋。L4的行由于接收部911接收到的值是中斷的值,所以進(jìn)行覆蓋。L5、L6的行是在多個(gè)迭代中、在2以上的迭代中到達(dá)了斷點(diǎn)的情況。此時(shí),在暫定數(shù)據(jù)保存部104中,需要保留與向斷點(diǎn)最初(在假定為逐次處理的情況下的順序中為最初) 到達(dá)的迭代對(duì)應(yīng)的值。因而,在L5的行中,如果接收部911接收到的迭代號(hào)碼i(th)比保存在暫定數(shù)據(jù)保存部904中的迭代號(hào)碼i順序靠前,則進(jìn)行覆蓋。L6的行為L(zhǎng)5的行的相反。保存控制部912按照?qǐng)D11的表,如果判斷為需要覆蓋(S104:是),則將接收到的值、迭代號(hào)碼i (th)和中斷標(biāo)志的組覆蓋到暫定數(shù)據(jù)保存部904中(S105)。然后,在通過結(jié)束判斷部113判斷并行執(zhí)行的結(jié)束(S22 是)之前,為步驟S103、 S104、S105的處理的重復(fù)。并且,如果由結(jié)束判斷部113判斷為并行執(zhí)行的結(jié)束(S22 是),則確定部114將保存在暫定數(shù)據(jù)保存部904中的值向確定數(shù)據(jù)保存部105反映(S26)。此時(shí),保存在暫定數(shù)據(jù)保存部904中的值保存著與在假設(shè)為逐次處理的情況下的順序中向斷點(diǎn)最初到達(dá)的迭代對(duì)應(yīng)的值,所以能夠?qū)崿F(xiàn)終值保證。(實(shí)施方式3)實(shí)施方式3是將實(shí)施方式1的數(shù)據(jù)更新管理部103作為多線程執(zhí)行部?jī)?nèi)的管理線程構(gòu)成的。
如圖12所示,多線程并行執(zhí)行裝置1201具備多線程執(zhí)行部1202。該多線程執(zhí)行部 1202包括分擔(dān)處理循環(huán)處理的迭代的處理線程1202a、1202b、和數(shù)據(jù)更新管理線程1203。數(shù)據(jù)更新管理線程1203具備與數(shù)據(jù)更新管理部103 (圖1)同樣的功能。SP,數(shù)據(jù)更新管理線程1203具備以下的⑴ ⑷的功能。(1)從處理線程1202a、1202b接收包括表示迭代的執(zhí)行結(jié)果的值、和表示已執(zhí)行的迭代在循環(huán)處理中是第幾個(gè)的迭代號(hào)碼i(th)的組的信息的功能(對(duì)應(yīng)于圖1 接收部 111的功能)。(2)基于接收到的信息、進(jìn)行是否覆蓋保存到暫定數(shù)據(jù)保存部104中的控制的功能(對(duì)應(yīng)于圖1 保存控制部112的功能)。(3)如果從處理線程1202a、1202b接收表示并行執(zhí)行的結(jié)束的結(jié)束信息、則判斷并行執(zhí)行的結(jié)束的功能(對(duì)應(yīng)于圖1 結(jié)束判斷部113的功能)。(4)如果判斷為并行執(zhí)行的結(jié)束、則將保存在暫定數(shù)據(jù)保存部104中的值取出、向確定數(shù)據(jù)保存部105反映的功能(對(duì)應(yīng)于圖1 確定部114的功能)。另外,也可以構(gòu)成為,使得在數(shù)據(jù)更新管理線程1203中具備在實(shí)施方式2中說明的數(shù)據(jù)更新管理部903 (圖9)的功能。(實(shí)施方式4)在實(shí)施方式4中,對(duì)從源程序生成面向處理線程及數(shù)據(jù)更新管理線程的程序的多線程編譯器進(jìn)行說明。圖13是多線程編譯器1302的結(jié)構(gòu)圖。在圖13中,多線程編譯器1302以源程序1301為輸入,生成處理線程程序1310、數(shù)據(jù)更新管理線程程序1311。前處理部1303對(duì)源程序1301執(zhí)行循環(huán)優(yōu)化等的前處理。處理線程程序生成部1304在能夠并行處理的循環(huán)處理及循環(huán)內(nèi)從多個(gè)處理線程導(dǎo)出代入的變量,生成作為數(shù)據(jù)更新管理線程的管理對(duì)象的管理對(duì)象變量列表1305及附加了并行化處理和向數(shù)據(jù)更新管理線程的通知處理的處理線程程序的中間代碼1306。數(shù)據(jù)更新管理線程程序生成部1307生成用來對(duì)管理對(duì)象變量列表1305的各變量進(jìn)行圖2所示的流程圖的動(dòng)作的、數(shù)據(jù)更新管理線程程序的中間代碼1308。后處理部1309對(duì)處理線程程序的中間代碼1306及數(shù)據(jù)更新管理線程程序的中間代碼1308執(zhí)行代碼變換等的后處理。圖14是處理線程程序生成部1304的流程圖。在圖14中,處理線程程序生成部首先判斷是否有未解析的循環(huán)處理(S1401)。在沒有未解析的循環(huán)處理的情況下(S1401 否),結(jié)束處理。在有未解析的循環(huán)處理的情況下(S1401 是),判斷在該循環(huán)的迭代間是否有依存關(guān)系(S1402)。在循環(huán)的迭代間有依存關(guān)系的情況下(S1402 有),回到是否有未解析的循環(huán)處理的判斷(S1401)。在循環(huán)的迭代間沒有依存關(guān)系的情況下(S1402 無),判斷是否有未解析的循環(huán)內(nèi)代入變量(S1403)。在沒有未解析的循環(huán)內(nèi)代入變量的情況下(S1403 否),向并行處理開始、結(jié)束處理的附加(S1408)前進(jìn)。在有未解析的循環(huán)內(nèi)代入變量的情況下(S1403 是),進(jìn)行以下的處理。在該變量被循環(huán)外參照的情況下(S1404 是),附加用來對(duì)數(shù)據(jù)更新管理線程通知的線程數(shù)據(jù)更新信息的通知處理(S1405)。這里所述的“線程數(shù)據(jù)更新信息”,是有關(guān)各處理線程處理的數(shù)據(jù)的更新的信息。 例如,包括表示迭代的執(zhí)行結(jié)果的值和迭代號(hào)碼i(th)的組。在該變量被循環(huán)內(nèi)參照的情況下(S1406 是),將上述變量復(fù)制為處理線程內(nèi)專用(S1407)。接著,附加并行處理開始處理及結(jié)束處理(S1408),回到是否有未解析的循環(huán)處理的判斷(S1401)。根據(jù)該結(jié)構(gòu),數(shù)據(jù)更新管理線程接收來自各處理線程的線程數(shù)據(jù)更新信息,進(jìn)行是否更新數(shù)據(jù)更新信息的判斷,將終值保證所不需要的數(shù)據(jù)丟棄,僅保存需要的1個(gè)數(shù)據(jù), 因此,不需要按照處理線程保存數(shù)據(jù)更新信息的區(qū)域,所以能夠通過少量的存儲(chǔ)器區(qū)域?qū)崿F(xiàn)多線程并行執(zhí)行時(shí)的終值保證。此外,通過在多線程執(zhí)行機(jī)構(gòu)之上執(zhí)行數(shù)據(jù)更新管理線程,能夠使用已有的多線程執(zhí)行機(jī)構(gòu)實(shí)現(xiàn)。此外,通過多線程編譯器,能夠從在1個(gè)線程中動(dòng)作的程序自動(dòng)地生成能夠在多線程執(zhí)行機(jī)構(gòu)上動(dòng)作、實(shí)現(xiàn)了終值保證的程序。另外,多線程編譯器1302生成的處理線程程序1310既可以是1個(gè)程序,也可以由多個(gè)程序構(gòu)成。另外,處理線程程序1310及數(shù)據(jù)更新管理線程程序1311既可以是與源程序相同的語言的程序,也可以是在多線程動(dòng)作機(jī)構(gòu)上動(dòng)作的對(duì)象代碼。另外,在本實(shí)施方式4中,生成管理對(duì)象變量列表1305、處理線程程序的中間代碼 1306、及數(shù)據(jù)更新管理線程程序的中間代碼1308,但也可以生成為文件等,也可以僅在編譯器內(nèi)部中保持信息。此外,在本實(shí)施方式4中,將前處理部1303與其他處理部分開表示,但也可以考慮沒有前處理部1303的結(jié)構(gòu)。此外,也可以采取前處理部1303包含在其他處理部中的結(jié)構(gòu)。另外,在本實(shí)施方式4中,將后處理部1309與其他處理部分開表示,但也可以考慮沒有后處理部1309的結(jié)構(gòu)。此外,也可以采取后處理部1309包含在其他處理部中的結(jié)構(gòu)。(實(shí)施方式5)實(shí)施方式5是將在實(shí)施方式1等中說明的多線程并行執(zhí)行裝置用集成電路(LSI) 構(gòu)成的。該集成電路可以搭載在數(shù)字電視機(jī)或藍(lán)光記錄機(jī)等的各種AV設(shè)備中。如圖15所示,集成電路1501具備多線程執(zhí)行部1202和暫定數(shù)據(jù)保存部104。另外,集成電路例如是LSI,既可以單獨(dú)1芯片化,也可以包括一部分或全部而1芯片化。這里設(shè)為L(zhǎng)SI,但根據(jù)集成度的差異,也有稱作IC、系統(tǒng)LSI、超級(jí)LSI、超大規(guī)模LSI 的情況。此外,集成電路化的方法并不限定于LSI,也可以通過專用電路或通用處理器實(shí)現(xiàn)。 也可以使用在LSI制造后能夠編程的FPGA (Field Programmable Gate Array)、或能夠再構(gòu)成LSI內(nèi)部的電路單元的連接及設(shè)定的可重構(gòu)處理器。進(jìn)而,如果因半導(dǎo)體技術(shù)的進(jìn)步或派生的其他技術(shù)出現(xiàn)代替LSI的集成電路化的技術(shù),則當(dāng)然也可以使用該技術(shù)進(jìn)行功能塊的集成化。
(實(shí)施方式6)在實(shí)施方式1中說明的多線程并行執(zhí)行裝置裝入在各種裝置中,適當(dāng)?shù)貓?zhí)行解碼及再編碼。圖16所示的廣播流再現(xiàn)裝置1601具備接收廣播流的接收部1602、將接收到的廣播流解碼的解碼部1603、將解碼后的廣播流再現(xiàn)的再現(xiàn)部1604。該解碼部1603包括多線程并行執(zhí)行裝置101而構(gòu)成。圖17所示的廣播流儲(chǔ)存裝置1701具備接收廣播流的接收部1602、將接收到的廣播流再編碼的再編碼部1705、將再編碼后的廣播流儲(chǔ)存的儲(chǔ)存部1706。該再編碼部1705 包括多線程并行執(zhí)行裝置101而構(gòu)成。圖18所示的儲(chǔ)存流再現(xiàn)裝置1801保存儲(chǔ)存流的儲(chǔ)存部1706、將儲(chǔ)存的流解碼的解碼部1603、將解碼后的流再現(xiàn)的再現(xiàn)部1604。該解碼部1603包括多線程并行執(zhí)行裝置 101而構(gòu)成。圖19所示的儲(chǔ)存流再編碼裝置1901具備儲(chǔ)存流的儲(chǔ)存部1706、將儲(chǔ)存的流再編碼的再編碼部1705。該再編碼部1705包括多線程并行執(zhí)行裝置101而構(gòu)成。另外,本實(shí)施方式6可以與各實(shí)施方式適當(dāng)組合。例如,也可以將在實(shí)施方式5中說明的集成電路1501裝入到廣播流再現(xiàn)裝置1601中。(實(shí)施方式7)在實(shí)施方式1中,暫定數(shù)據(jù)保存部104保存的信息是表示迭代的執(zhí)行結(jié)果的值和迭代號(hào)碼i的1組,但也可以將這些組保存多個(gè)。通過這樣保存多個(gè)組,在將多個(gè)種類的迭代并行執(zhí)行的情況下也能夠?qū)崿F(xiàn)終值保證。使用圖22說明一例。多線程并行執(zhí)行裝置2201具備多線程執(zhí)行部2202、數(shù)據(jù)更新管理部2203、暫定數(shù)據(jù)保存部2204。暫定數(shù)據(jù)保存部2204分別保存有η個(gè)(η是2以上的整數(shù))由(1)表示迭代的執(zhí)行結(jié)果的值、⑵迭代號(hào)碼i、⑶用來識(shí)別迭代的種類的識(shí)別ID的三者構(gòu)成的組。多線程執(zhí)行部2202具有將多個(gè)種類的迭代并行執(zhí)行的功能,每當(dāng)各線程中的迭代結(jié)束,將表示迭代的執(zhí)行結(jié)果的值、迭代號(hào)碼i、及識(shí)別ID向接收部2211發(fā)送。此外,多線程執(zhí)行部2202如果多個(gè)種類中的某個(gè)的全部迭代結(jié)束,則將包括用來識(shí)別結(jié)束的迭代的種類的識(shí)別ID的結(jié)束信息向結(jié)束判斷部2213發(fā)送。保存控制部2212如果接收部2211接收到值、迭代號(hào)碼i和識(shí)別ID的三者的組, 則基于接收到的迭代號(hào)碼i、和與在暫定數(shù)據(jù)保存部2204中接收到的識(shí)別ID對(duì)應(yīng)的迭代號(hào)碼i的大小關(guān)系,進(jìn)行是否將對(duì)應(yīng)于該識(shí)別ID的值及迭代號(hào)碼i覆蓋保存的控制。保存控制部2212在覆蓋保存時(shí),從暫定數(shù)據(jù)保存部2204保存的信息之中,將對(duì)應(yīng)于識(shí)別ID的值及迭代號(hào)碼i作為覆蓋的對(duì)象。結(jié)束判斷部2213如果從多線程執(zhí)行部2202接收到上述結(jié)束信息,則確定部2214 從保存在暫定數(shù)據(jù)保存部2204中的組之中取得與包含在該結(jié)束信息中的識(shí)別ID對(duì)應(yīng)的值,保存到確定數(shù)據(jù)保存部2205中。另外,為了區(qū)別是哪個(gè)種類的迭代的處理結(jié)果,也可以在確定數(shù)據(jù)保存部2205中將識(shí)別ID與值建立關(guān)聯(lián)而保存。
13
以上對(duì)本實(shí)施方式7進(jìn)行了說明,但也可以考慮使用在實(shí)施方式2中說明的中斷標(biāo)志的變形例。作為具體的結(jié)構(gòu),多線程執(zhí)行部2202每當(dāng)各線程中的迭代結(jié)束,將(1)表示迭代的執(zhí)行結(jié)果的值、(2)表示已執(zhí)行的迭代在循環(huán)處理中是第幾個(gè)的迭代號(hào)碼i(th)、 (3)用來識(shí)別迭代的種類的識(shí)別ID、(4)表示是否到達(dá)了斷點(diǎn)的中斷標(biāo)志的4種信息向接收部2211發(fā)送。并且,保存控制部2212基于接收到的迭代號(hào)碼i與在暫定數(shù)據(jù)保存部2204 中對(duì)應(yīng)于接收到的識(shí)別ID的迭代號(hào)碼i的大小關(guān)系、以及接收到的中斷標(biāo)志的0N/0FF和與在暫定數(shù)據(jù)保存部2204中接收到的識(shí)別ID對(duì)應(yīng)的中斷標(biāo)志的0N/0FF,進(jìn)行覆蓋保存的有無的判斷。該判斷的方法與使用圖11說明的是同樣的,所以省略說明。(實(shí)施方式8)也可以在各實(shí)施方式中說明的多線程執(zhí)行部發(fā)出的命令中包括在以下的(1) (3)中說明那樣的內(nèi)容。這些命令能夠貢獻(xiàn)于柔性的并行執(zhí)行。基本的結(jié)構(gòu)與在圖1中說明的是同樣的,所以在以下的本實(shí)施方式的說明中使用圖1的功能塊進(jìn)行。(1)將暫定數(shù)據(jù)保存部104的信息無效化的命令從多線程執(zhí)行部102經(jīng)由接收部111接受到該命令的保存控制部112將暫定數(shù)據(jù)保存部104的信息無效化(或者清空)。該命令可以用于多線程并行執(zhí)行的初始設(shè)定(圖
2,S21) ο(2)對(duì)管理硬件發(fā)送線程數(shù)據(jù)更新信息的命令是將線程數(shù)據(jù)更新信息(有關(guān)各處理線程處理的數(shù)據(jù)的更新的信息)向管理硬件發(fā)送的命令。(3)將暫定數(shù)據(jù)保存部104的信息反映到實(shí)際的變量中的命令是將暫定數(shù)據(jù)保存部104的信息保存到確定數(shù)據(jù)保存部105中而反映到實(shí)際的變量中的命令。該命令例如可以在值的反映處理(圖2,S26)中使用。(實(shí)施方式9)本實(shí)施方式9是將實(shí)施方式7、8混合那樣的實(shí)施方式。在以下的說明中使用圖22 的功能塊進(jìn)行。在實(shí)施方式9中,與實(shí)施方式7同樣,暫定數(shù)據(jù)保存部2204分別保存有η個(gè)(η是 2以上的整數(shù))由(1)表示迭代的執(zhí)行結(jié)果的值、(2)迭代號(hào)碼i、(3)識(shí)別ID的三者構(gòu)成的組。并且,在多線程執(zhí)行部2202的線程數(shù)據(jù)更新信息中,包括用來確定是該η個(gè)的組的中的哪個(gè)的識(shí)別ID。此外,在多線程執(zhí)行部2202中,也可以發(fā)出以下這樣的命令。下述(1) (3)的哪個(gè)都包括用來識(shí)別命令的執(zhí)行對(duì)象的1個(gè)以上的識(shí)別ID。(1)將暫定數(shù)據(jù)保存部2204的區(qū)域確?;驘o效化的命令是將暫定數(shù)據(jù)保存部2204內(nèi)的對(duì)應(yīng)于識(shí)別ID用的區(qū)域確?;驘o效化的命令。這些命令可以用于多線程并行執(zhí)行的初始設(shè)定(圖2,S21)。此外,在不能確保(無效化)的情況下,可以考慮將發(fā)生例外處理、或管理各區(qū)域的占用狀態(tài)的狀態(tài)寄存器更新。(2)將線程數(shù)據(jù)更新信息向管理硬件發(fā)送的命令是將對(duì)應(yīng)于指定的識(shí)別ID的線程數(shù)據(jù)更新信息向管理硬件發(fā)送的命令。
(3)將暫定數(shù)據(jù)保存部2204的信息反映到實(shí)際的變量中的命令是將對(duì)應(yīng)于指定的識(shí)別ID的暫定數(shù)據(jù)保存部2204的信息保存到確定數(shù)據(jù)保存部 2205中而反映到實(shí)際的變量中的命令。該命令例如可以在值的反映處理(圖2,S26)中使用。(4)將暫定數(shù)據(jù)保存部2204的區(qū)域釋放的命令是將暫定數(shù)據(jù)保存部2204內(nèi)的對(duì)應(yīng)于1個(gè)以上的識(shí)別ID用的區(qū)域釋放的命令。 該命令例如可以將經(jīng)過值的反映處理(圖2,S26)、沒有用的區(qū)域用在對(duì)象中。此外,也可以將有關(guān)上述(3)及(4)的處理通過1個(gè)命令實(shí)現(xiàn)。< 補(bǔ)充 1>以上,對(duì)本實(shí)施方式進(jìn)行了說明,但本發(fā)明并不限定于上述內(nèi)容,在用來達(dá)到本發(fā)明的目的和與其關(guān)聯(lián)或附屬的目的的各種形態(tài)中也能夠?qū)嵤?,例如也可以是以下這樣。(1)在實(shí)施方式中,如圖5所示,設(shè)在沒有更新值的迭代的情況下,多線程執(zhí)行部 102發(fā)送表示數(shù)據(jù)是空的“null”而進(jìn)行了說明,但并不限定于此。例如,關(guān)于不更新值的迭代,多線程執(zhí)行部102也可以不發(fā)送值或迭代號(hào)碼。(2)在實(shí)施方式中,如圖1那樣,將暫定數(shù)據(jù)保存部104和確定數(shù)據(jù)保存部105表示為不同的保存機(jī)構(gòu),但也可以是相同的數(shù)據(jù)保存機(jī)構(gòu)。(3)在實(shí)施方式中,如圖4那樣舉出了使for if文的命令重復(fù)的例子進(jìn)行了說明,但并不限定于此。例如在C語言中,也可以使用for語句、while語句、do while語句寸。(4)在實(shí)施方式中,每當(dāng)各迭代結(jié)束,多線程執(zhí)行部102將作為其執(zhí)行結(jié)果的值和迭代號(hào)碼發(fā)送,但也可以代替它而以線程的結(jié)束為契機(jī)發(fā)送。例如,如圖20(a)所示,如果線程1的處理結(jié)束,則多線程執(zhí)行部102發(fā)送表示線程1負(fù)責(zé)的迭代的執(zhí)行結(jié)果的值“2”和線程號(hào)碼“thl”。同樣,如果線程2的處理結(jié)束,則多線程執(zhí)行部102發(fā)送表示線程2負(fù)責(zé)的迭代的執(zhí)行結(jié)果的值“3”和線程號(hào)碼“th2”。并且,數(shù)據(jù)更新部管理部103的保存控制部112基于線程號(hào)碼的大小關(guān)系判斷覆蓋的需要與否。在圖20(b)的例子中,由于保存在暫定數(shù)據(jù)保存部中的線程號(hào)碼“th2”比接收到的線程號(hào)碼“thl”順序靠后,所以不覆蓋。(5)在實(shí)施方式中,如圖2所示,關(guān)于初始設(shè)定(S21)停留在簡(jiǎn)單的說明,但例如也可以如以下這樣進(jìn)行對(duì)應(yīng)于數(shù)據(jù)更新的有無的行為。S卩,如圖21所示,作為初始設(shè)定,保存控制部112將迭代號(hào)碼設(shè)定為“_1”(S2101)。并且,在并行執(zhí)行結(jié)束后(S22 是),保存控制部112如果迭代號(hào)碼是“_1”的原狀 (S2102 否),則意味著暫定數(shù)據(jù)保存部104的值盡管有并行執(zhí)行也沒有被更新,所以將數(shù)據(jù)的反映(S26)跳過。(6)在實(shí)施方式中,如圖7(e)所示,在并行執(zhí)行的結(jié)束時(shí)使保存在暫定數(shù)據(jù)保存部104中的值為“3”、向確定數(shù)據(jù)保存部105反映,但并不限定于此??傊灰軌虼_定值“3”作為并行執(zhí)行的結(jié)果就可以。例如,也可以將表示是結(jié)果的信息附加給值“3”。
(7)各在實(shí)施方式中,設(shè)多線程執(zhí)行部中的處理線程數(shù)為兩個(gè)而進(jìn)行了說明,但并不限定于此,只要是兩個(gè)以上,可以取任意的個(gè)數(shù)。例如,處理線程數(shù)也可以是4個(gè)或8個(gè)。(8)也可以將實(shí)施方式1 9及本補(bǔ)充的內(nèi)容組合實(shí)施。< 補(bǔ)充 2>本實(shí)施方式包括以下的形態(tài)。(1)有關(guān)本實(shí)施方式的多線程并行執(zhí)行裝置,其特征在于,具備執(zhí)行機(jī)構(gòu),將一個(gè)循環(huán)處理中的重復(fù)單位分為多個(gè)線程并行執(zhí)行;接收機(jī)構(gòu),在上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的期間中,從上述執(zhí)行機(jī)構(gòu)接收表示各線程中的重復(fù)單位的執(zhí)行的結(jié)果的值、和表示該重復(fù)單位的順序的順序信息的組;保存機(jī)構(gòu),用來保存上述值和上述順序信息的組;控制機(jī)構(gòu), 在上述接收機(jī)構(gòu)接收到上述組的情況下,基于由接收到的上述順序信息與保存在上述保存部中的順序信息分別表示的順序的先后,控制是使接收到的上述順序信息和對(duì)應(yīng)的上述值的組覆蓋還是不覆蓋到上述保存部中;確定機(jī)構(gòu),如果由上述執(zhí)行機(jī)構(gòu)進(jìn)行的并行執(zhí)行結(jié)束,則確定保存在上述保存機(jī)構(gòu)中的值作為上述一個(gè)循環(huán)處理的執(zhí)行結(jié)果。(2)也可以是,在上述一個(gè)循環(huán)處理中的重復(fù)單位中,設(shè)定了用來將處理在中途中止的斷點(diǎn);上述接收機(jī)構(gòu)接收的上述組除了上述值和上述順序信息以外,還包括表示向上述斷點(diǎn)已到達(dá)還是未到達(dá)的標(biāo)志;上述保存機(jī)構(gòu)是用來保存包括上述值、上述順序信息和上述標(biāo)志的組的;上述控制機(jī)構(gòu)將包含在由上述接收機(jī)構(gòu)接收到的上述組中的上述順序信息和上述標(biāo)志參照保存在上述保存機(jī)構(gòu)中的上述順序信息和上述標(biāo)志,進(jìn)行上述覆蓋的控制。根據(jù)該結(jié)構(gòu),在設(shè)定了斷點(diǎn)的循環(huán)處理中也能夠?qū)崿F(xiàn)終值保證。(3)也可以是,上述控制機(jī)構(gòu)如果與在假設(shè)將上述一個(gè)循環(huán)處理逐次處理的情況下向斷點(diǎn)最初到達(dá)的重復(fù)單位對(duì)應(yīng)的值保存在上述保存機(jī)構(gòu)中,則抑制上述覆蓋。(4)也可以是,上述控制機(jī)構(gòu)在有由上述接收機(jī)構(gòu)進(jìn)行的接收的情況下,當(dāng)接收到的上述順序信息表示比保存在上述保存部中的順序信息順序靠后時(shí),使接收到的上述值和上述順序信息的組覆蓋到上述保存部中,當(dāng)接收到的上述順序信息表示比保存在上述保存部中的順序信息順序靠前時(shí),使接收到的上述值和上述順序信息的組不覆蓋到上述保存部中。(5)也可以是,上述一個(gè)循環(huán)處理中的重復(fù)單位是迭代;上述順序信息是表示迭代的順序的迭代號(hào)碼。(6)也可以是,上述接收機(jī)構(gòu)、上述控制機(jī)構(gòu)及上述確定機(jī)構(gòu)由作為上述執(zhí)行機(jī)構(gòu)的執(zhí)行對(duì)象的管理線程構(gòu)成。(7)也可以是,上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的重復(fù)單位有多個(gè)種類;上述接收機(jī)構(gòu)除了上述組以外還接收用來識(shí)別上述重復(fù)單位的種類的識(shí)別碼;上述保存機(jī)構(gòu)與用來識(shí)別重復(fù)單位的種類的識(shí)別碼建立關(guān)聯(lián)而保存上述組;上述控制機(jī)構(gòu)以與接收到的識(shí)別碼建立了關(guān)聯(lián)的組為對(duì)象進(jìn)行覆蓋的有無的控制。(8)也可以是,上述執(zhí)行機(jī)構(gòu)發(fā)出將上述保存機(jī)構(gòu)保存的信息無效化的命令、將上述組向管理用硬件發(fā)送的命令、或者將保存在上述保存機(jī)構(gòu)中的值反映到實(shí)際的變量中的命令的至少某1個(gè)命令。
16
(9)在(8)中,也可以是,上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的重復(fù)單位有多個(gè)種類;上述接收機(jī)構(gòu)除了上述組以外還接收用來識(shí)別上述重復(fù)單位的種類的識(shí)別碼;上述保存機(jī)構(gòu)與用來識(shí)別重復(fù)單位的種類的識(shí)別碼建立關(guān)聯(lián)而保存上述組;上述控制機(jī)構(gòu)是以與接收到的識(shí)別碼建立了關(guān)聯(lián)的組為對(duì)象進(jìn)行覆蓋的有無的控制的;上述執(zhí)行機(jī)構(gòu)發(fā)出的命令包括作為執(zhí)行對(duì)象的識(shí)別碼。(10)廣播流再現(xiàn)裝置也可以是,具備接收機(jī)構(gòu),接收廣播流;解碼機(jī)構(gòu),將接收到的廣播流解碼;再現(xiàn)機(jī)構(gòu),將解碼后的廣播流再現(xiàn);上述解碼機(jī)構(gòu)包括(1)的多線程并行執(zhí)行裝置而構(gòu)成。(11)廣播流儲(chǔ)存裝置也可以是,具備接收機(jī)構(gòu),接收廣播流;再編碼機(jī)構(gòu),將接收到的廣播流再編碼;儲(chǔ)存機(jī)構(gòu),將再編碼后的廣播流儲(chǔ)存;上述再編碼機(jī)構(gòu)包括(1)的多線程并行執(zhí)行裝置而構(gòu)成。(12)儲(chǔ)存流再現(xiàn)裝置也可以是,具備儲(chǔ)存機(jī)構(gòu),儲(chǔ)存流;解碼機(jī)構(gòu),將儲(chǔ)存的流解碼;再現(xiàn)機(jī)構(gòu),將解碼后的流再現(xiàn);上述解碼機(jī)構(gòu)包括(1)的多線程并行執(zhí)行裝置而構(gòu)成。(13)儲(chǔ)存流再編碼裝置也可以是,具備儲(chǔ)存機(jī)構(gòu),儲(chǔ)存流;再編碼機(jī)構(gòu),將儲(chǔ)存的流再編碼;上述再編碼機(jī)構(gòu)包括(1)的多線程并行執(zhí)行裝置而構(gòu)成。(14) 一種集成電路,其特征在于,具備執(zhí)行機(jī)構(gòu),將一個(gè)循環(huán)處理中的重復(fù)單位分為多個(gè)線程并行執(zhí)行;接收機(jī)構(gòu),在上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的期間中,從上述執(zhí)行機(jī)構(gòu)接收表示各線程中的重復(fù)單位的執(zhí)行的結(jié)果的值、和表示該重復(fù)單位的順序的順序信息的組;保存機(jī)構(gòu),用來保存上述值和上述順序信息的組;控制機(jī)構(gòu),在上述接收機(jī)構(gòu)接收到上述組的情況下,基于由接收到的上述順序信息與保存在上述保存部中的順序信息分別表示的順序的先后,控制是使接收到的上述順序信息和對(duì)應(yīng)的上述值的組覆蓋還是不覆蓋到上述保存部中;確定機(jī)構(gòu),如果由上述執(zhí)行機(jī)構(gòu)進(jìn)行的并行執(zhí)行結(jié)束,則確定保存在上述保存機(jī)構(gòu)中的值作為上述一個(gè)循環(huán)處理的執(zhí)行結(jié)果。(15)上述執(zhí)行機(jī)構(gòu)也可以由多線程處理器構(gòu)成。(16)上述執(zhí)行機(jī)構(gòu)也可以由多核處理器構(gòu)成。(17)有關(guān)本實(shí)施方式的多線程并行執(zhí)行方法,其特征在于,包括執(zhí)行步驟,將一個(gè)循環(huán)處理中的重復(fù)單位分為多個(gè)線程使執(zhí)行機(jī)構(gòu)并行執(zhí)行;接收步驟,在上述執(zhí)行步驟中上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的期間中,從上述執(zhí)行機(jī)構(gòu)接收表示各線程中的重復(fù)單位的執(zhí)行的結(jié)果的值、和表示該重復(fù)單位的順序的順序信息的組;保存步驟,用來將上述值和上述順序信息的組保存到保存機(jī)構(gòu)中;控制步驟,在上述接收步驟接收到上述組的情況下,基于由接收到的上述順序信息與保存在上述保存機(jī)構(gòu)中的順序信息分別表示的順序的先后,控制是使接收到的上述順序信息和對(duì)應(yīng)的上述值的組覆蓋還是不覆蓋到上述保存機(jī)構(gòu)中;確定步驟,如果上述執(zhí)行步驟中的并行執(zhí)行結(jié)束,則確定保存在上述保存機(jī)構(gòu)中的值作為上述一個(gè)循環(huán)處理的執(zhí)行結(jié)果。(18)有關(guān)本實(shí)施方式的多線程編譯器,是將在1個(gè)處理線程上動(dòng)作而包括循環(huán)處理的源程序編譯的多線程編譯器,其特征在于,生成多個(gè)處理線程用的程序,每當(dāng)上述循環(huán)處理中的重復(fù)單位結(jié)束,則將表示執(zhí)行的結(jié)果的值和表示該重復(fù)單位的順序的順序信息的組發(fā)送;數(shù)據(jù)更新管理線程用的程序,如果從各處理線程接收到上述組,則將包含在該組中的順序信息與在保存機(jī)構(gòu)中已經(jīng)保存的順序信息比較,控制將包含在接收到的組中的值和順序信息覆蓋還是不覆蓋到上述保存機(jī)構(gòu)中。工業(yè)實(shí)用性有關(guān)本發(fā)明的多線程并行執(zhí)行裝置在將一個(gè)循環(huán)處理中的重復(fù)單位分為多個(gè)線程而并行執(zhí)行那樣的多線程執(zhí)行環(huán)境中具有實(shí)用性。標(biāo)號(hào)說明101、901、1201、2201多線程并行執(zhí)行裝置102、902、1202、2202 多線程執(zhí)行部103,903,2203數(shù)據(jù)更新管理部104,904,2204暫定數(shù)據(jù)保存部105,2205確定數(shù)據(jù)保存部111、911、2211 接收部112、912、2212 保存控制部113、2213結(jié)束判斷部114,2214 確定部1202a、1202b 處理線程1203數(shù)據(jù)更新管理線程
1302多線程編譯器
1501集成電路
1601廣播流再現(xiàn)裝置
1602接收部
1603解碼部
1604再現(xiàn)部
1701廣播流儲(chǔ)存裝置
1705再編碼部
1706儲(chǔ)存部
1801儲(chǔ)存流再現(xiàn)裝置
1901儲(chǔ)存流再編碼裝置
權(quán)利要求
1.一種多線程并行執(zhí)行裝置,其特征在于,具備執(zhí)行機(jī)構(gòu),將一個(gè)循環(huán)處理中的重復(fù)單位分為多個(gè)線程并行執(zhí)行; 接收機(jī)構(gòu),在上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的期間中,從上述執(zhí)行機(jī)構(gòu)接收表示各線程中的重復(fù)單位的執(zhí)行的結(jié)果的值、和表示該重復(fù)單位的順序的順序信息的組; 保存機(jī)構(gòu),用來保存上述值和上述順序信息的組;控制機(jī)構(gòu),在上述接收機(jī)構(gòu)接收到上述組的情況下,基于由接收到的上述順序信息與保存在上述保存部中的順序信息分別表示的順序的先后,控制是使接收到的上述順序信息和對(duì)應(yīng)的上述值的組覆蓋還是不覆蓋到上述保存部中;以及確定機(jī)構(gòu),當(dāng)由上述執(zhí)行機(jī)構(gòu)進(jìn)行的并行執(zhí)行結(jié)束時(shí),確定保存在上述保存機(jī)構(gòu)中的值作為上述一個(gè)循環(huán)處理的執(zhí)行結(jié)果。
2.如權(quán)利要求1所述的多線程并行執(zhí)行裝置,其特征在于,在上述一個(gè)循環(huán)處理中的重復(fù)單位中,設(shè)定了用來將處理在中途中止的斷點(diǎn); 上述接收機(jī)構(gòu)接收的上述組除了上述值和上述順序信息以外,還包括表示向上述斷點(diǎn)已到達(dá)還是未到達(dá)的標(biāo)志;上述保存機(jī)構(gòu)用來保存包括上述值、上述順序信息和上述標(biāo)志的組; 上述控制機(jī)構(gòu)將包含在由上述接收機(jī)構(gòu)接收到的上述組中的上述順序信息和上述標(biāo)志參照保存在上述保存機(jī)構(gòu)中的上述順序信息和上述標(biāo)志,進(jìn)行上述覆蓋的控制。
3.如權(quán)利要求2所述的多線程并行執(zhí)行裝置,其特征在于,在假設(shè)將上述一個(gè)循環(huán)處理進(jìn)行逐次處理的情況下如果與最初到達(dá)斷點(diǎn)的重復(fù)單位對(duì)應(yīng)的值保存在上述保存機(jī)構(gòu)中,則上述控制機(jī)構(gòu)抑制上述覆蓋。
4.如權(quán)利要求1所述的多線程并行執(zhí)行裝置,其特征在于, 上述控制機(jī)構(gòu)在有由上述接收機(jī)構(gòu)進(jìn)行的接收的情況下,當(dāng)接收到的上述順序信息表示比保存在上述保存部中的順序信息順序靠后時(shí),使接收到的上述值和上述順序信息的組覆蓋到上述保存部中,當(dāng)接收到的上述順序信息表示比保存在上述保存部中的順序信息順序靠前時(shí),使接收到的上述值和上述順序信息的組不覆蓋到上述保存部中。
5.如權(quán)利要求4所述的多線程并行執(zhí)行裝置,其特征在于, 上述一個(gè)循環(huán)處理中的重復(fù)單位是迭代;上述順序信息是表示迭代的順序的迭代號(hào)碼。
6.如權(quán)利要求1所述的多線程并行執(zhí)行裝置,其特征在于,上述接收機(jī)構(gòu)、上述控制機(jī)構(gòu)及上述確定機(jī)構(gòu)由作為上述執(zhí)行機(jī)構(gòu)的執(zhí)行對(duì)象的管理線程構(gòu)成。
7.如權(quán)利要求1所述的多線程并行執(zhí)行裝置,其特征在于, 上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的重復(fù)單位有多個(gè)種類;上述接收機(jī)構(gòu)除了上述組以外還接收用來識(shí)別上述重復(fù)單位的種類的識(shí)別碼; 上述保存機(jī)構(gòu)與用來識(shí)別重復(fù)單位的種類的識(shí)別碼建立關(guān)聯(lián)而保存上述組; 上述控制機(jī)構(gòu)以與接收到的識(shí)別碼建立了關(guān)聯(lián)的組為對(duì)象進(jìn)行覆蓋的有無的控制。
8.如權(quán)利要求1所述的多線程并行執(zhí)行裝置,其特征在于,上述執(zhí)行機(jī)構(gòu)發(fā)出將上述保存機(jī)構(gòu)保存的信息無效化的命令、將上述組向管理用硬件發(fā)送的命令、或者將保存在上述保存機(jī)構(gòu)中的值反映到實(shí)際的變量中的命令的至少某1個(gè)命令。
9.如權(quán)利要求8所述的多線程并行執(zhí)行裝置,其特征在于, 上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的重復(fù)單位有多個(gè)種類;上述接收機(jī)構(gòu)除了上述組以外還接收用來識(shí)別上述重復(fù)單位的種類的識(shí)別碼; 上述保存機(jī)構(gòu)與用來識(shí)別重復(fù)單位的種類的識(shí)別碼建立關(guān)聯(lián)而保存上述組; 上述控制機(jī)構(gòu)以與接收到的識(shí)別碼建立了關(guān)聯(lián)的組為對(duì)象進(jìn)行覆蓋的有無的控制; 上述執(zhí)行機(jī)構(gòu)發(fā)出的命令包括作為執(zhí)行對(duì)象的識(shí)別碼。
10.一種廣播流再現(xiàn)裝置,其特征在于, 具備接收機(jī)構(gòu),接收廣播流;解碼機(jī)構(gòu),將接收到的廣播流解碼;以及再現(xiàn)機(jī)構(gòu),將解碼后的廣播流再現(xiàn);上述解碼機(jī)構(gòu)由權(quán)利要求1所述的多線程并行執(zhí)行裝置構(gòu)成。
11.一種廣播流儲(chǔ)存裝置,其特征在于, 具備接收機(jī)構(gòu),接收廣播流;再編碼機(jī)構(gòu),將接收到的廣播流再編碼;以及儲(chǔ)存機(jī)構(gòu),將再編碼后的廣播流儲(chǔ)存;上述再編碼機(jī)構(gòu)由權(quán)利要求1所述的多線程并行執(zhí)行裝置構(gòu)成。
12.—種儲(chǔ)存流再現(xiàn)裝置,其特征在于, 具備儲(chǔ)存機(jī)構(gòu),儲(chǔ)存流;解碼機(jī)構(gòu),將儲(chǔ)存的流解碼;以及再現(xiàn)機(jī)構(gòu),將解碼后的流再現(xiàn);上述解碼機(jī)構(gòu)由權(quán)利要求1所述的多線程并行執(zhí)行裝置構(gòu)成。
13.一種儲(chǔ)存流再編碼裝置,其特征在于, 具備儲(chǔ)存機(jī)構(gòu),儲(chǔ)存流;以及再編碼機(jī)構(gòu),將儲(chǔ)存的流再編碼;上述再編碼機(jī)構(gòu)由權(quán)利要求1所述的多線程并行執(zhí)行裝置構(gòu)成。
14.一種集成電路,其特征在于,具備執(zhí)行機(jī)構(gòu),將一個(gè)循環(huán)處理中的重復(fù)單位分為多個(gè)線程并行執(zhí)行; 接收機(jī)構(gòu),在上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的期間中,從上述執(zhí)行機(jī)構(gòu)接收表示各線程中的重復(fù)單位的執(zhí)行的結(jié)果的值、和表示該重復(fù)單位的順序的順序信息的組; 保存機(jī)構(gòu),用來保存上述值和上述順序信息的組;控制機(jī)構(gòu),在上述接收機(jī)構(gòu)接收到上述組的情況下,基于由接收到的上述順序信息與保存在上述保存部中的順序信息分別表示的順序的先后,控制是使接收到的上述順序信息和對(duì)應(yīng)的上述值的組覆蓋還是不覆蓋到上述保存部中;確定機(jī)構(gòu),如果由上述執(zhí)行機(jī)構(gòu)進(jìn)行的并行執(zhí)行結(jié)束,則確定保存在上述保存機(jī)構(gòu)中的值作為上述一個(gè)循環(huán)處理的執(zhí)行結(jié)果。
15.如權(quán)利要求14所述的集成電路,其特征在于, 上述執(zhí)行機(jī)構(gòu)由多線程處理器構(gòu)成。
16.如權(quán)利要求14所述的集成電路,其特征在于, 上述執(zhí)行機(jī)構(gòu)由多核處理器構(gòu)成。
17.—種多線程并行執(zhí)行方法,其特征在于,包括執(zhí)行步驟,將一個(gè)循環(huán)處理中的重復(fù)單位分為多個(gè)線程使執(zhí)行機(jī)構(gòu)并行執(zhí)行; 接收步驟,在上述執(zhí)行步驟中上述執(zhí)行機(jī)構(gòu)并行執(zhí)行的期間中,從上述執(zhí)行機(jī)構(gòu)接收表示各線程中的重復(fù)單位的執(zhí)行的結(jié)果的值、和表示該重復(fù)單位的順序的順序信息的組; 保存步驟,用來將上述值和上述順序信息的組保存到保存機(jī)構(gòu)中; 控制步驟,在上述接收步驟接收到上述組的情況下,基于由接收到的上述順序信息與保存在上述保存機(jī)構(gòu)中的順序信息分別表示的順序的先后,控制是使接收到的上述順序信息和對(duì)應(yīng)的上述值的組覆蓋還是不覆蓋到上述保存機(jī)構(gòu)中;以及確定步驟,當(dāng)上述執(zhí)行步驟中的并行執(zhí)行結(jié)束時(shí),確定保存在上述保存機(jī)構(gòu)中的值作為上述一個(gè)循環(huán)處理的執(zhí)行結(jié)果。
18.—種多線程編譯器,是將在1個(gè)處理線程上動(dòng)作而包括循環(huán)處理的源程序編譯的多線程編譯器,其特征在于,生成多個(gè)處理線程用的程序,每當(dāng)上述循環(huán)處理中的重復(fù)單位結(jié)束,則將表示執(zhí)行的結(jié)果的值和表示該重復(fù)單位的順序的順序信息的組發(fā)送;以及數(shù)據(jù)更新管理線程用的程序,當(dāng)從各處理線程接收到上述組時(shí),將包含在該組中的順序信息與在保存機(jī)構(gòu)中已經(jīng)保存的順序信息比較,控制將包含在接收到的組中的值和順序信息覆蓋還是不覆蓋到上述保存機(jī)構(gòu)中。
全文摘要
在暫定數(shù)據(jù)保存部(104)中保存有值“3”和迭代號(hào)碼“3”的情況下,在數(shù)據(jù)更新管理部(103)接收到與迭代號(hào)碼“2”建立了聯(lián)系的值“2”的情況下,數(shù)據(jù)更新管理部(103)通過將兩迭代號(hào)碼的大小關(guān)系比較,判斷為不將接收到的信息覆蓋到暫定數(shù)據(jù)保存部(104)中。然后,數(shù)據(jù)更新管理部(103)如果從多線程執(zhí)行部(102)接收到表示并行執(zhí)行的結(jié)束的結(jié)束信息,則將保存在暫定數(shù)據(jù)保存部(104)中的值“3”反映到確定數(shù)據(jù)保存部(105)中。
文檔編號(hào)G06F9/46GK102449605SQ201180002248
公開日2012年5月9日 申請(qǐng)日期2011年6月3日 優(yōu)先權(quán)日2010年6月14日
發(fā)明者上田恭子 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1