多線程處理器、編譯器裝置及操作系統(tǒng)裝置制造方法
【專利摘要】一種并行執(zhí)行多個(gè)線程的命令的多線程處理器(1),具有:由分別執(zhí)行命令的多個(gè)運(yùn)算器構(gòu)成的運(yùn)算器組(119);第1命令分組部(108)~第3命令分組部(110),按照每個(gè)線程,將該線程所包含的命令分組為由能夠由上述多個(gè)運(yùn)算器同時(shí)執(zhí)行的命令構(gòu)成的組;線程選擇部(114),通過控制多個(gè)線程的命令的執(zhí)行頻度,從而按照多線程處理器(1)的每個(gè)執(zhí)行周期,從多個(gè)線程中選擇含有對(duì)多個(gè)運(yùn)算器發(fā)行的命令的線程;以及命令發(fā)行部(115),按照多線程處理器(1)的每個(gè)執(zhí)行周期,對(duì)多個(gè)運(yùn)算器發(fā)行由線程選擇部(114)選擇的線程所包含的命令中、被分組后的組的命令。
【專利說明】多線程處理器、編譯器裝置及操作系統(tǒng)裝置
[0001]本申請(qǐng)是2010年3月18日提交的申請(qǐng)?zhí)枮?01080009472.3、發(fā)明名稱為“多線
程處理器、編譯器裝置及操作系統(tǒng)裝置”的中國(guó)專利申請(qǐng)的分案申請(qǐng)。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及并行執(zhí)行多個(gè)線程(thread)的多線程處理器等,尤其涉及通過控制各個(gè)線程所包含的命令的執(zhí)行定時(shí)來提高各個(gè)線程的執(zhí)行效率的多線程處理器等。
【背景技術(shù)】
[0003]近年來,在AV (Audio/Visual)處理的領(lǐng)域中,連續(xù)發(fā)表了新的編解碼器(codec)或新規(guī)格等,基于軟件的AV處理的需求日益提高。因此,在AV系統(tǒng)等中要求的處理器性能也飛躍性提高。并且,對(duì)應(yīng)于所執(zhí)行的軟件的多任務(wù)化,開發(fā)了許多采用同時(shí)執(zhí)行多個(gè)線程的多線程技術(shù)的多線程處理器。
[0004]在現(xiàn)有的多線程處理器中,公知有以下技術(shù),即:按照處理器的每個(gè)執(zhí)行周期來切換執(zhí)行的線程的細(xì)粒度多線程(Fine-Grained Multithreading)(例如,參照專利文獻(xiàn)I),或者以Intel公司的超線程技術(shù)為代表的、在執(zhí)行周期內(nèi)同時(shí)執(zhí)行多個(gè)線程的同步多線程(Simultaneous Multithreading:SMT)(例如,參照非專利文獻(xiàn) I)等。
[0005]現(xiàn)有技術(shù)文獻(xiàn)
[0006]專利文獻(xiàn)
[0007]專利文獻(xiàn)1:日本特開2008 - 123045號(hào)公報(bào)(圖6等)
[0008]非專利文獻(xiàn)
[0009]非專利文獻(xiàn)1:1ntel社(平成21年2月16 日檢索)、網(wǎng)址< URL:http://www.1ntel.com/jp/technology/hyperthread/ >
發(fā)明概要
[0010]發(fā)明要解決的問題
[0011]但是,在現(xiàn)有的多線程處理器中,當(dāng)在線程之間競(jìng)爭(zhēng)運(yùn)算資源的情況下,用戶指定或處理器實(shí)施方面的線程的優(yōu)先度中處于劣勢(shì)的其它線程的執(zhí)行效率存在局部明顯下降的情況。
[0012]并且,在各個(gè)線程的命令數(shù)與運(yùn)算器資源數(shù)的平衡較差的情況下,有可能不能得到在多線程動(dòng)作中期待的那樣的執(zhí)行效率。例如,針對(duì)具有能夠同時(shí)執(zhí)行4個(gè)命令的運(yùn)算器資源的處理器、想要連續(xù)發(fā)行分別包含在兩個(gè)線程中的2個(gè)命令和3個(gè)命令時(shí),兩個(gè)線程的合計(jì)命令數(shù)是5。因此,不能同時(shí)執(zhí)行這兩個(gè)線程而只執(zhí)行某一個(gè)線程的命令。因此,導(dǎo)致一個(gè)或兩個(gè)運(yùn)算器資源不被使用而造成浪費(fèi),存在線程的執(zhí)行效率降低的問題。
[0013]
【發(fā)明內(nèi)容】
[0014]本發(fā)明是為了解決上述問題而提出的,其目的在于,提供線程的執(zhí)行效率高的多線程處理器、以及適合于該多重處理器的編譯器裝置和操作系統(tǒng)裝置。[0015]用于解決問題的手段
[0016]本發(fā)明的某個(gè)方面的多線程處理器,并行執(zhí)行多個(gè)線程的命令,具有:分別執(zhí)行命令的多個(gè)運(yùn)算器;分組部,按照每個(gè)線程,將該線程所包含的命令分組為由能夠由上述多個(gè)運(yùn)算器同時(shí)執(zhí)行的命令構(gòu)成的組;線程選擇部,通過控制上述多個(gè)線程的命令的執(zhí)行頻度,從而按照上述多線程處理器的每個(gè)執(zhí)行周期,從上述多個(gè)線程中選擇含有對(duì)上述多個(gè)運(yùn)算器發(fā)行的命令的線程;以及命令發(fā)行部,按照上述多線程處理器的每個(gè)執(zhí)行周期,對(duì)上述多個(gè)運(yùn)算器發(fā)行如下命令,即:由上述線程選擇部選擇的上述線程所包含的命令中、由上述分組部進(jìn)行分組而得到的組的命令。
[0017]根據(jù)這種結(jié)構(gòu),通過控制多個(gè)線程的執(zhí)行頻度,能夠防止在用戶指定或處理器實(shí)施方面的線程之間的優(yōu)先度中處于劣勢(shì)的線程的執(zhí)行效率局部明顯下降。此外,能夠控制多個(gè)線程的執(zhí)行頻度以使得運(yùn)算器資源能夠有效利用,能夠獲得各個(gè)線程的命令數(shù)和運(yùn)算器資源數(shù)的平衡,高效率地使用運(yùn)算器資源。由此,能夠提供線程的執(zhí)行效率高的多線程處理器。
[0018]優(yōu)選為,上述多線程處理器還具有命令數(shù)指定部,該命令數(shù)指定部按照每個(gè)線程來指定由上述分組部進(jìn)行分組的上述組所包含的命令的最大個(gè)數(shù),上述分組部以不超過由上述命令數(shù)指定部指定的上述命令的最大個(gè)數(shù)的方式對(duì)命令進(jìn)行分組。
[0019]根據(jù)這種結(jié)構(gòu),能夠獲得各個(gè)線程的命令數(shù)和運(yùn)算器資源數(shù)的平衡,高效率地使用運(yùn)算器資源。
[0020]另外,優(yōu)選為,上述命令數(shù)指定部按照在寄存器中設(shè)定的值來指定上述最大個(gè)數(shù)。
[0021]根據(jù)這種結(jié)構(gòu),通過在維持命令集體系的狀態(tài)下利用程序來更新寄存器的設(shè)定值,能夠按程序的每個(gè)任意的范圍來控制上述最大個(gè)數(shù),優(yōu)化執(zhí)行效率。
[0022]并且,也可以是,上述命令數(shù)指定部按照上述多個(gè)線程所包含的用于指定上述最大個(gè)數(shù)的命令來指定上述最大個(gè)數(shù)。
[0023]根據(jù)這種結(jié)構(gòu),與按照在寄存器中設(shè)定的值來指定最大個(gè)數(shù)的情況相比,能夠與能夠削減的地址設(shè)定和存儲(chǔ)器訪問相應(yīng)地更高速地變更設(shè)定。此外,能夠不必在意開銷損耗而與能夠高速地變更設(shè)定相應(yīng)地按程序的更詳細(xì)的每個(gè)任意的范圍來控制上述最大個(gè)數(shù),優(yōu)化執(zhí)行效率。
[0024]另外,優(yōu)選為,上述線程選擇部具有執(zhí)行間隔指定部,該執(zhí)行間隔指定部對(duì)上述多個(gè)線程分別指定在上述多個(gè)運(yùn)算器中的命令的執(zhí)行周期間隔,上述線程選擇部按照由上述執(zhí)行間隔指定部指定的執(zhí)行周期間隔來選擇上述線程。
[0025]根據(jù)這種結(jié)構(gòu),能夠抑制優(yōu)先度較高的線程長(zhǎng)時(shí)間占用資源,能夠防止優(yōu)先度較低的線程的執(zhí)行局部停止。
[0026]另外,優(yōu)選為,上述執(zhí)行間隔指定部按照在寄存器中設(shè)定的值來指定上述執(zhí)行周期間隔。
[0027]根據(jù)這種結(jié)構(gòu),通過在維持命令集體系的狀態(tài)下利用程序來更新寄存器的設(shè)定值,能夠按程序的每個(gè)任意的范圍來抑制資源占用,提高其它線程的執(zhí)行效率。
[0028]并且,也可以是,上述執(zhí)行間隔指定部按照上述多個(gè)線程所包含的用于指定上述執(zhí)行周期間隔的命令來指定上述執(zhí)行周期間隔。
[0029]根據(jù)這種結(jié)構(gòu),與按照在寄存器中設(shè)定的值來指定執(zhí)行周期間隔的情況相比,能夠與能夠削減的地址設(shè)定、存儲(chǔ)器訪問相應(yīng)地更高速地變更設(shè)定。此外,能夠不必在意開銷損耗而與能夠高速地變更設(shè)定相應(yīng)地按程序的更詳細(xì)的每個(gè)任意的范圍來抑制資源占用,提聞其它線程的執(zhí)行效率。
[0030]另外,優(yōu)選為,上述線程選擇部具有發(fā)行間隔抑制部,該發(fā)行間隔抑制部針對(duì)發(fā)行了在多個(gè)線程之間引起運(yùn)算器競(jìng)爭(zhēng)的命令的線程來進(jìn)行抑制,以使得引起上述競(jìng)爭(zhēng)的命令在固定的執(zhí)行周期數(shù)內(nèi)無法執(zhí)行。
[0031]根據(jù)這種結(jié)構(gòu),與唯一地抑制執(zhí)行周期的方法不同,能夠只對(duì)最小必要限度的命令進(jìn)行抑制。因此,能夠不降低執(zhí)行效率并高效率地向其它線程讓出資源。
[0032]本發(fā)明的另一個(gè)方面的編譯器裝置,將源程序轉(zhuǎn)換為可執(zhí)行代碼,適合于將多個(gè)線程的命令并行執(zhí)行的多線程處理器,該編譯器裝置具有:指示取得部,取得與多線程控制相關(guān)的編程員的指示;以及控制代碼生成部,根據(jù)上述指示來生成對(duì)處理器的執(zhí)行模式進(jìn)行控制的代碼。
[0033]根據(jù)這種結(jié)構(gòu),能夠按照與多線程控制相關(guān)的編程員的指示來控制處理器的執(zhí)行模式。因此,能夠生成適合于線程執(zhí)行效率高的多線程處理器的代碼。
[0034]本發(fā)明的另一個(gè)方面的操作系統(tǒng)裝置,適合于將多個(gè)線程的命令并行執(zhí)行的多線程處理器,該操作系統(tǒng)裝置具有系統(tǒng)代碼處理部,該系統(tǒng)代碼處理部根據(jù)與多線程控制相關(guān)的編程員的指示來處理系統(tǒng)調(diào)用,該系統(tǒng)調(diào)用使得處理器的執(zhí)行模式能夠控制。
[0035]根據(jù)這種結(jié)構(gòu),能夠按照與多線程控制相關(guān)的編程員的指示來控制處理器的執(zhí)行模式。因此,能夠處理適合于線程執(zhí)行效率高的多線程處理器的系統(tǒng)調(diào)用。
[0036]另外,本發(fā)明不僅能夠?qū)崿F(xiàn)為這樣的具有特征性的處理部的多線程處理器,而且也能夠?qū)崿F(xiàn)為將多線程處理器所包含的特征性的處理部作為步驟的信息處理方法。此外,還能夠?qū)崿F(xiàn)為使計(jì)算機(jī)執(zhí)行信息處理方法所包含的特征性步驟的程序。并且,這種程序當(dāng)然能夠通過⑶一 ROM (Compact Disc 一 Read Only Memory)等非易失性記錄介質(zhì)、因特網(wǎng)等通信網(wǎng)絡(luò)而進(jìn)行流通。
[0037]發(fā)明效果
[0038]根據(jù)本發(fā)明的多線程處理器等,即使是在線程之間競(jìng)爭(zhēng)運(yùn)算資源的情況下,也能夠防止在用戶指定及處理器實(shí)施方面的線程之間的優(yōu)先度中處于劣勢(shì)的線程的執(zhí)行效率局部明顯下降。此外,能夠得到各個(gè)線程的命令數(shù)和運(yùn)算器資源數(shù)的平衡,高效率地使用運(yùn)算器資源。由此,能夠提供線程的執(zhí)行效率高的多線程處理器。
【專利附圖】
【附圖說明】
[0039]圖1是本發(fā)明的實(shí)施方式I的多線程處理器的框圖。
[0040]圖2是本發(fā)明的實(shí)施方式I的線程選擇部的框圖。
[0041]圖3是表示本發(fā)明的實(shí)施方式I的多線程處理器的動(dòng)作的流程圖。
[0042]圖4是本發(fā)明的實(shí)施方式I的線程選擇處理的流程圖。
[0043]圖5是表示本發(fā)明的實(shí)施方式2的編譯器的結(jié)構(gòu)的框圖。
[0044]圖6是表示本發(fā)明的實(shí)施方式2的編譯器能夠受理的用于多線程的控制的指示的一覽的圖。
[0045]圖7是表示使用了“關(guān)注區(qū)間指示”的源程序的一例的圖。[0046]圖8是表示使用了 “非關(guān)注區(qū)間指示”的源程序的一例的圖。
[0047]圖9是表示使用了 “命令并行度指示”的源程序的一例的圖。
[0048]圖10是表示使用了“多線程執(zhí)行模式指示”的源程序的一例的圖。
[0049]圖11是表示使用了“響應(yīng)性確保區(qū)間指示”的源程序的一例的圖。
[0050]圖12是表示使用了“停頓插入頻度指示”的源程序的一例的圖。
[0051]圖13是表示使用了“運(yùn)算器釋放頻度指示”的源程序的一例的圖。
[0052]圖14是表示使用了 “緊迫度檢測(cè)指示”的源程序的一例的圖。
[0053]圖15是表示使用了“執(zhí)行周期期待值指示”的源程序的一例的圖。
[0054]圖16是表示本發(fā)明的實(shí)施方式2的操作系統(tǒng)的結(jié)構(gòu)的框圖。
【具體實(shí)施方式】
[0055]下面,參照【專利附圖】
【附圖說明】多線程處理器等的實(shí)施方式。另外,在實(shí)施方式中標(biāo)注了相同標(biāo)號(hào)的構(gòu)成要素進(jìn)行同樣的動(dòng)作,因而有時(shí)省略重復(fù)說明。
[0056](實(shí)施方式I)
[0057]在本實(shí)施方式中,說明通過命令執(zhí)行控制來提高命令執(zhí)行效率的多線程處理器、命令數(shù)的限制、限制的命令數(shù)的基于寄存器的指定、限制的命令數(shù)的基于命令的指定、執(zhí)行周期數(shù)間隔的指定、執(zhí)行周期數(shù)間隔的基于寄存器的指定、執(zhí)行周期數(shù)間隔的基于命令的指定、存在資源制約的命令的發(fā)行間隔的抑制。
[0058]圖1是表示本實(shí)施方式的多線程處理器的結(jié)構(gòu)的框圖。另外,在本實(shí)施方式中,假定是能夠并行執(zhí)行3個(gè)線程的多線程處理器。
[0059]多線程處理器I具備:命令存儲(chǔ)器101、第I命令解碼器102、第2命令解碼器103、第3命令解碼器104、第I命令數(shù)指定部105、第2命令數(shù)指定部106、第3命令數(shù)指定部107、第I命令分組部108、第2命令分組部109、第3命令分組部110、第I寄存器111、第2寄存器112、第3寄存器113、線程選擇部114、命令發(fā)行控制部115、線程選擇器(threadselector) 116、線程用寄存器選擇器117?118、以及運(yùn)算器組119。
[0060]命令存儲(chǔ)器101是對(duì)在多線程處理器I中執(zhí)行的命令進(jìn)行保持的存儲(chǔ)器,保持3個(gè)獨(dú)立執(zhí)行的線程的命令流。
[0061]第I命令解碼器102、第2命令解碼器103和第3命令解碼器104從命令存儲(chǔ)器101讀出彼此不同的線程的命令,并對(duì)讀出的命令進(jìn)行解碼。
[0062]第I命令數(shù)指定部105、第2命令數(shù)指定部106和第3命令數(shù)指定部107分別指定如下命令數(shù),即:將由第I命令解碼器102、第2命令解碼器103和第3命令解碼器104解碼后的命令分組為能夠同時(shí)執(zhí)行的命令組時(shí)的、能夠同時(shí)執(zhí)行的命令數(shù)。在本實(shí)施方式中,將命令數(shù)的上限設(shè)為3來進(jìn)行說明。關(guān)于指定命令數(shù)的方法,可以是,將用于指定命令數(shù)的專用命令包含在各個(gè)線程的命令流中,通過執(zhí)行該專用命令來指定命令數(shù)?;蛘?,也可以是,設(shè)置對(duì)命令數(shù)進(jìn)行設(shè)定的專用寄存器,由各個(gè)線程的命令流而變更專用寄存器的值來指定命令數(shù)。
[0063]在通過執(zhí)行專用命令來指定命令數(shù)的情況下,不存在因地址設(shè)定、寄存器訪問而引起的開銷損耗(overhead loss)。因此,能夠高速地實(shí)現(xiàn)命令數(shù)的變更。此外,通過預(yù)先在線程的多個(gè)位置插入上述專用命令,能夠在線程內(nèi)的多個(gè)命令范圍中指定不同的命令數(shù)。對(duì)專用寄存器來設(shè)定命令數(shù)的情況下,能夠在維持命令集(instruction set)的體系的狀態(tài)下對(duì)同時(shí)執(zhí)行的命令數(shù)進(jìn)行控制。
[0064]通過與運(yùn)算器資源的數(shù)量、能夠同時(shí)執(zhí)行的線程數(shù)的平衡相應(yīng)地變更命令數(shù)的指定,能夠提高命令執(zhí)行效率。例如,在運(yùn)算器是4個(gè)、能夠同時(shí)執(zhí)行的線程數(shù)是2個(gè)的情況下,如果預(yù)先將命令數(shù)的上限設(shè)為2,則兩個(gè)線程各使用兩個(gè)運(yùn)算器。但是,如果預(yù)先將命令數(shù)的上限設(shè)為3,則對(duì)于各個(gè)線程,最大將3個(gè)命令分組到一個(gè)命令組。因此,例如,在兩個(gè)線程中、一個(gè)線程的命令組所包含的命令數(shù)是3而另一個(gè)線程的命令組所包含的命令數(shù)是2的情況下,則只能執(zhí)行某一個(gè)線程,產(chǎn)生未使用的運(yùn)算器,因此導(dǎo)致線程的執(zhí)行效率下降。
[0065]第I命令分組部108、第2命令分組部109和第3命令分組部110將由第I命令解碼器102、第2命令解碼器103和第3命令解碼器104分別解碼后的命令分組為能夠同時(shí)執(zhí)行的命令組。另外,在進(jìn)行分組時(shí),以不超過由第I命令數(shù)指定部105、第2命令數(shù)指定部106和第3命令數(shù)指定部107設(shè)定的命令數(shù)的方式進(jìn)行命令的分組。
[0066]第I寄存器111、第2寄存器112和第3寄存器113是在基于各個(gè)線程的命令的運(yùn)算時(shí)使用的寄存器堆(register file)。
[0067]線程選擇部114保持與線程優(yōu)先度相關(guān)的設(shè)定信息,根據(jù)線程的執(zhí)行狀況來選擇執(zhí)行的線程。假設(shè)線程優(yōu)先度是預(yù)先設(shè)定的。
[0068]命令發(fā)行控制部115控制線程選擇器116、線程用寄存器選擇器117和118,以便對(duì)運(yùn)算器組119發(fā)行由線程選擇部114選擇的線程。此外,命令發(fā)行控制部115將與已對(duì)運(yùn)算器組119發(fā)行的線程相關(guān)的發(fā)行命令信息通知線程選擇部114。另外,本實(shí)施方式中將能夠同時(shí)執(zhí)行的線程數(shù)設(shè)為2。
[0069]線程選擇器116是按照命令發(fā)行控制部115的指示來選擇執(zhí)行線程(由運(yùn)算器組119執(zhí)行命令的線程)的選擇器。
[0070]線程用寄存器選擇器117?118是與線程選擇器116同樣地按照命令發(fā)行控制部115的指示來選擇與執(zhí)行線程成套的寄存器的選擇器。
[0071]運(yùn)算器組119包含加法器或乘法器等多個(gè)運(yùn)算器。在本實(shí)施方式中,將能夠同時(shí)執(zhí)行的運(yùn)算器數(shù)量設(shè)為4。
[0072]圖2是表示圖1所示的線程選擇部114的具體結(jié)構(gòu)的框圖。
[0073]線程選擇部114具有第I發(fā)行間隔抑制部201、第2發(fā)行間隔抑制部202、第3發(fā)行間隔抑制部203、第I執(zhí)行間隔指定部204、第2執(zhí)行間隔指定部205和第3執(zhí)行間隔指定部206。
[0074]第I發(fā)行間隔抑制部201、第2發(fā)行間隔抑制部202和第3發(fā)行間隔抑制部203分別進(jìn)行控制,以使得在從所分配的線程發(fā)行了由于運(yùn)算器組119的運(yùn)算器數(shù)量限制等而不能同時(shí)執(zhí)行的命令的情況下,在此后的固定期間中不對(duì)該線程發(fā)行該命令。
[0075]第I執(zhí)行間隔指定部204、第2執(zhí)行間隔指定部205和第3執(zhí)行間隔指定部206分別指定線程的執(zhí)行間隔,以使得按照固定間隔來執(zhí)行所分配的線程。關(guān)于指定執(zhí)行間隔的方法,可以是,將用于指定執(zhí)行間隔的專用命令包含在各個(gè)線程的命令流中,通過執(zhí)行該專用命令來指定執(zhí)行間隔?;蛘撸部梢允?,設(shè)置對(duì)執(zhí)行間隔進(jìn)行設(shè)定的專用寄存器,由各個(gè)線程的命令流而變更專用寄存器的值來指定執(zhí)行間隔。通過指定執(zhí)行間隔,能夠抑制優(yōu)先度高的線程長(zhǎng)時(shí)間占用資源,能夠防止低優(yōu)先度的線程的執(zhí)行發(fā)生局部停止。在通過執(zhí)行專用命令來指定執(zhí)行間隔的情況下,不存在因地址設(shè)定、寄存器訪問而引起的開銷損耗。并且,通過預(yù)先在線程的多個(gè)位置插入上述專用命令,能夠在線程內(nèi)的多個(gè)命令范圍中指定不同的執(zhí)行間隔。對(duì)專用寄存器設(shè)定執(zhí)行間隔的情況下,能夠在維持命令集的體系的狀態(tài)下對(duì)執(zhí)行間隔進(jìn)行控制。
[0076]另外,在本實(shí)施方式中,第I發(fā)行間隔抑制部201、第2發(fā)行間隔抑制部202、第3發(fā)行間隔抑制部203、第I執(zhí)行間隔指定部204、第2執(zhí)行間隔指定部205以及第3執(zhí)行間隔指定部206分別包含減計(jì)數(shù)器,該減計(jì)數(shù)器在每當(dāng)執(zhí)行周期經(jīng)過時(shí)使值減I。
[0077]下面,為了方便而將3個(gè)線程稱為線程A、線程B、線程C。利用第I命令解碼器102、第I命令數(shù)指定部105、第I命令分組部108、第I寄存器111、第I發(fā)行間隔抑制部201和第I執(zhí)行間隔指定部204來執(zhí)行線程A。利用第2命令解碼器103、第2命令數(shù)指定部106、第2命令分組部109、第2寄存器112、第2發(fā)行間隔抑制部202和第2執(zhí)行間隔指定部205來執(zhí)行線程B。利用第3命令解碼器104、第3命令數(shù)指定部107、第3命令分組部110、第3寄存器113、第3發(fā)行間隔抑制部203和第3執(zhí)行間隔指定部206來執(zhí)行線程C。
[0078]下面,說明多線程處理器I的動(dòng)作。
[0079]圖3是表示多線程處理器I的動(dòng)作的流程圖。
[0080]第I命令解碼器102、第2命令解碼器103和第3命令解碼器104分別對(duì)在命令存儲(chǔ)器101中存儲(chǔ)的線程A、B和C的命令流進(jìn)行解碼(步驟SOOl )。
[0081]第I命令分組部108將由第I命令數(shù)指定部105指定的命令數(shù)作為上限,將在第I命令解碼器102中識(shí)別出的線程A的命令流分組為由能夠被運(yùn)算器組119同時(shí)執(zhí)行的命令構(gòu)成的命令組。同樣,第2命令分組部109將由第2命令數(shù)指定部106指定的命令數(shù)作為上限,將在第2命令解碼器103中識(shí)別出的線程B的命令流分組為由能夠被運(yùn)算器組119同時(shí)執(zhí)行的命令構(gòu)成的命令組。并且,第3命令分組部110將由第3命令數(shù)指定部107指定的命令數(shù)作為上限,將在第3命令解碼器104中識(shí)別出的線程C的命令流分組為由能夠被運(yùn)算器組119同時(shí)執(zhí)行的命令構(gòu)成的命令組(步驟S002)。
[0082]命令發(fā)行控制部115根據(jù)與線程選擇部114保持的線程優(yōu)先度相關(guān)的設(shè)定信息、和通過步驟S002的處理而被分組后的命令的信息,確定兩個(gè)能夠執(zhí)行的線程(步驟S003)。在此,假設(shè)線程A和C是被確定為能夠執(zhí)行的線程來進(jìn)行以后的說明。
[0083]線程選擇器116選擇線程A和C作為執(zhí)行線程。此外,線程用寄存器選擇器117選擇與線程A和C對(duì)應(yīng)的第I寄存器111和第3寄存器113。運(yùn)算器組119利用在由線程用寄存器選擇器117選擇的寄存器(第I寄存器111和第3寄存器113)中存儲(chǔ)的數(shù)據(jù),執(zhí)行由線程選擇器116選擇的線程(線程A和C)的運(yùn)算(步驟S004)。
[0084]線程用寄存器選擇器118選擇與線程用寄存器選擇器117選擇的寄存器相同的寄存器(第I寄存器111和第3寄存器113)。運(yùn)算器組119將線程(線程A和C)的運(yùn)算結(jié)果寫入到線程用寄存器選擇器118選擇的寄存器(第I寄存器111和第3寄存器113)中(步驟 S005)。
[0085]接著,使用圖4的流程圖說明基于線程選擇部114和命令發(fā)行控制部115的線程選擇處理。
[0086]另外,在本說明中,在從線程A發(fā)行了后述的發(fā)行間隔抑制命令的情況下,第I發(fā)行間隔抑制部201在這之后抑制(禁止)在兩個(gè)機(jī)器周期(machine cycle)之間發(fā)行該發(fā)行間隔抑制命令。在此,發(fā)行間隔抑制命令是指在多個(gè)線程之間引起運(yùn)算器的競(jìng)爭(zhēng)的命令。同樣,在從線程B發(fā)行了發(fā)行間隔抑制命令的情況下,第2發(fā)行間隔抑制部202在這之后抑制(禁止)在兩個(gè)機(jī)器周期之間發(fā)行該發(fā)行間隔抑制命令。并且,在從線程C發(fā)行了發(fā)行間隔抑制命令的情況下,第3發(fā)行間隔抑制部203在這之后抑制(禁止)在兩個(gè)機(jī)器周期之間發(fā)行該發(fā)行間隔抑制命令。這樣,能夠只對(duì)必要最小限度的命令進(jìn)行抑制。因此,能夠不降低執(zhí)行效率而高效率地向其它線程讓出資源。
[0087]此外,假定為,第I執(zhí)行間隔指定部204指定執(zhí)行周期間隔,以使得運(yùn)算器組119能夠在兩個(gè)機(jī)器周期中執(zhí)行一次線程A的命令。同樣,假設(shè)為,第2執(zhí)行間隔指定部205指定執(zhí)行周期間隔,以使得運(yùn)算器組119能夠在兩個(gè)機(jī)器周期中執(zhí)行一次線程B的命令。并且,假設(shè)為,第3執(zhí)行間隔指定部206指定執(zhí)行周期間隔,以使得運(yùn)算器組119能夠在兩個(gè)機(jī)器周期中執(zhí)行一次線程C的命令。
[0088]此外,關(guān)于線程的優(yōu)先度,假設(shè)線程A最高,其次線程B較高,線程C最低。
[0089]下面,假設(shè)在關(guān)注的機(jī)器周期的前一個(gè)機(jī)器周期中執(zhí)行線程A和C、且利用線程A發(fā)行了發(fā)行間隔抑制命令,來對(duì)關(guān)注的機(jī)器周期的動(dòng)作進(jìn)行說明。另外,將要說明的動(dòng)作是第I回的動(dòng)作,為了與后面敘述的第2回的動(dòng)作進(jìn)行區(qū)分,對(duì)各個(gè)步驟的步驟序號(hào)賦予表示第I回的“一 I”。在第I回開始時(shí),假設(shè)對(duì)第I發(fā)行間隔抑制部201、第2發(fā)行間隔抑制部202和第3發(fā)行間隔抑制部203的減計(jì)數(shù)器設(shè)定了 O。此外,假設(shè)對(duì)第I執(zhí)行間隔指定部204、第2執(zhí)行間隔指定部205和第3執(zhí)行間隔指定部206的減計(jì)數(shù)器設(shè)定了 O。
[0090]線程選擇部114從命令發(fā)行控制部115取得在之前的機(jī)器周期中執(zhí)行的線程A和C的執(zhí)行狀況(步驟SlOl -1)。即,取得如下信息,該信息表示線程A和C的已執(zhí)行(已發(fā)行)的命令是否是發(fā)行間隔抑制命令。在此,假設(shè)線程選擇部114取得了表示線程A的已執(zhí)行的命令是發(fā)行間隔抑制命令這一情況的信息。
[0091]由于執(zhí)行了線程A的發(fā)行間隔抑制命令,因而第I發(fā)行間隔抑制部201對(duì)其減計(jì)數(shù)器設(shè)定2,以作為對(duì)該發(fā)行間隔抑制命令的發(fā)行進(jìn)行抑制的周期數(shù)(步驟S102 -1)。此夕卜,由于執(zhí)行了線程A和C,因而第I執(zhí)行間隔指定部204和第3執(zhí)行間隔指定部206對(duì)各自的減計(jì)數(shù)器的值設(shè)定I。
[0092]由于第I執(zhí)行間隔指定部204和第3執(zhí)行間隔指定部206的減計(jì)數(shù)器的值是I不是0,因而線程選擇部114判定為不能執(zhí)行線程A和C。并且,由于第2執(zhí)行間隔指定部205的減計(jì)數(shù)器的值是0,因而線程選擇部114判定為能夠執(zhí)行線程B。因此,線程選擇部114只選擇線程B作為執(zhí)行對(duì)象線程,并通知命令發(fā)行控制部115。此外,線程選擇部114將選擇出的線程B的優(yōu)先度最高這一情況一并進(jìn)行通知(步驟S103 -1)。
[0093]命令發(fā)行控制部115根據(jù)從線程選擇部114接收到的線程B的優(yōu)先度信息、和表示由第2命令分組部109進(jìn)行的線程B的命令的分組結(jié)果的信息,將線程B確定為執(zhí)行線程(步驟S104 — Do
[0094]命令發(fā)行控制部115通過對(duì)線程選擇器116以及線程用寄存器選擇器117和118進(jìn)行操作,從第2命令分組部109向運(yùn)算器組119發(fā)送線程B的命令,從而運(yùn)算器組119執(zhí)行線程B的命令(步驟S105 — I)。
[0095]第I發(fā)行間隔抑制部201、第2發(fā)行間隔抑制部202、第3發(fā)行間隔抑制部203、第I執(zhí)行間隔指定部204、第2執(zhí)行間隔指定部205和第3執(zhí)行間隔指定部206將各自的減計(jì)數(shù)器的值分別減I (步驟S106 — I)。此時(shí),在減計(jì)數(shù)器的值是O的情況下,不進(jìn)行減法而保持設(shè)定為O的狀態(tài)。
[0096]在每個(gè)機(jī)器周期實(shí)施以上的步驟SlOl?S106的處理。對(duì)上述說明的下一個(gè)機(jī)器周期說明后續(xù)步驟。另外,對(duì)各個(gè)步驟的步驟序號(hào)賦予表示第2回的“一 2”。另外,假設(shè)線程A要再次執(zhí)行發(fā)行間隔抑制命令來進(jìn)行說明。
[0097]線程選擇部114從命令發(fā)行控制部115取得在之前的機(jī)器周期中執(zhí)行的線程B的執(zhí)行狀況(步驟SlOl - 2)。即,假設(shè)取得如下信息,該信息表示在線程B的已執(zhí)行的命令中不包含發(fā)行間隔抑制命令。
[0098]由于執(zhí)行了線程B,因而第2執(zhí)行間隔指定部205對(duì)減計(jì)數(shù)器設(shè)定1(步驟S102 —2)。
[0099]由于第2執(zhí)行間隔指定部205的減計(jì)數(shù)器的值是I不是0,因而線程選擇部114判定為不能執(zhí)行線程B。此外,由于第I執(zhí)行間隔指定部204和第3執(zhí)行間隔指定部206的減計(jì)數(shù)器的值是0,因而線程選擇部114判定為能夠執(zhí)行線程A和C。因此,線程選擇部114選擇線程A和C作為執(zhí)行對(duì)象線程,并通知命令發(fā)行控制部115。此外,線程選擇部114將線程A的優(yōu)先度比線程B的優(yōu)先度高這一情況一并通知命令發(fā)行控制部115。此外,第I發(fā)行間隔抑制部201的減計(jì)數(shù)器的值是I。因此,為了使線程A的發(fā)行間隔抑制命令不被發(fā)行,線程選擇部114除了優(yōu)先度信息以外、還將線程A沒有發(fā)行間隔抑制命令的執(zhí)行權(quán)這一情況通知命令發(fā)行控制部115 (步驟S103 — 2)。
[0100]命令發(fā)行控制部115根據(jù)從線程選擇部114接收到的線程A和C的優(yōu)先度信息以及發(fā)行間隔抑制命令的信息、和表示由第I命令分組部108和第3命令分組部110進(jìn)行的線程A和C的命令的分組結(jié)果的信息,判斷為線程A是由于發(fā)行間隔抑制命令的限制而不能執(zhí)行的線程,將線程C確定為執(zhí)行線程(步驟S104 - 2)。
[0101 ] 命令發(fā)行控制部115通過對(duì)線程選擇器116、線程用寄存器選擇器117和118進(jìn)行操作,從第3命令分組部110向運(yùn)算器組119發(fā)送線程C的命令,從而運(yùn)算器組119執(zhí)行線程C的命令(步驟S105 — 2)。
[0102]第I發(fā)行間隔抑制部201、第2發(fā)行間隔抑制部202、第3發(fā)行間隔抑制部203、第I執(zhí)行間隔指定部204、第2執(zhí)行間隔指定部205和第3執(zhí)行間隔指定部206將各自的減計(jì)數(shù)器的值分別減I (步驟S106 — 2)。此時(shí),在減計(jì)數(shù)器的值是0的情況下,不進(jìn)行減法而保持設(shè)定為0的狀態(tài)。
[0103]另外,在圖4的流程圖中,通過多線程處理器I的電源斷開或復(fù)位來結(jié)束處理。
[0104]如以上說明的那樣,根據(jù)實(shí)施方式I的多線程處理器1,即使是在線程之間競(jìng)爭(zhēng)運(yùn)算資源的情況下,也能夠防止在用戶指定或處理器實(shí)施方面的線程間的優(yōu)先度中處于劣勢(shì)的線程的執(zhí)行效率局部明顯下降。此外,能夠得到各個(gè)線程的命令數(shù)和運(yùn)算器資源數(shù)的平衡,高效率地使用運(yùn)算器資源。
[0105]另外,根據(jù)本實(shí)施方式,將線程數(shù)設(shè)為3,但是不限于該值,當(dāng)然能夠進(jìn)行各種變更,而且這些變更都包含在本發(fā)明的范圍內(nèi)。
[0106]并且,根據(jù)本實(shí)施方式,將同時(shí)命令發(fā)行數(shù)上限設(shè)為3,但是不限于該值,當(dāng)然能夠進(jìn)行各種變更,而且這些變更都包含在本發(fā)明的范圍內(nèi)。
[0107]并且,根據(jù)本實(shí)施方式,將能夠同時(shí)執(zhí)行的線程數(shù)的上限設(shè)為2,但是不限于該值,當(dāng)然能夠進(jìn)行各種變更,而且這些變更都包含在本發(fā)明的范圍內(nèi)。
[0108]并且,根據(jù)本實(shí)施方式,將能夠同時(shí)執(zhí)行的運(yùn)算器數(shù)的上限設(shè)為4,但是不限于該值,當(dāng)然能夠進(jìn)行各種變更,而且這些變更都包含在本發(fā)明的范圍內(nèi)。
[0109](實(shí)施方式2)
[0110]下面,參照【專利附圖】
【附圖說明】本發(fā)明的實(shí)施方式2的編譯器和操作系統(tǒng)。
[0111]圖5是表示本發(fā)明的實(shí)施方式2的編譯器3的結(jié)構(gòu)的框圖。
[0112]編譯器3接受編程員利用C語言記述的源程序301作為輸入,轉(zhuǎn)換為內(nèi)部的中間表現(xiàn)(中間代碼)并實(shí)施了優(yōu)化、資源的分配后,生成適合于目標(biāo)處理器的可執(zhí)行代碼302。被編譯器3作為目標(biāo)的處理器是在實(shí)施方式I中說明的多線程處理器I。
[0113]下面,說明本發(fā)明的編譯器3的各個(gè)構(gòu)成要素的詳細(xì)結(jié)構(gòu)及其動(dòng)作。另外,編譯器3是一種程序,通過在具有處理器和存儲(chǔ)器的計(jì)算機(jī)上執(zhí)行用于實(shí)現(xiàn)編譯器3的各個(gè)構(gòu)成要素的程序來實(shí)現(xiàn)其功能。這樣的程序當(dāng)然能夠通過CD - ROM等非易失性記錄介質(zhì)、因特網(wǎng)等通信網(wǎng)絡(luò)而進(jìn)行流通。
[0114]編譯器3,作為在計(jì)算機(jī)上被執(zhí)行的情況下發(fā)揮作用的處理部,具有句法分析(parser)部31、優(yōu)化部32和代碼生成部33。編譯器3通過使計(jì)算機(jī)作為這些處理部而發(fā)揮作用,能夠使計(jì)算機(jī)作為編譯器裝置進(jìn)行動(dòng)作。
[0115]句法分析部31對(duì)輸入到編譯器3的源程序301提取保留字(關(guān)鍵字)等并進(jìn)行詞法分析和語法分析,根據(jù)固定規(guī)則將各個(gè)語句轉(zhuǎn)換為中間代碼。
[0116]優(yōu)化部32對(duì)所輸入的中間代碼實(shí)施冗余去除、命令調(diào)度或寄存器分配等優(yōu)化處理。
[0117]代碼生成部33,對(duì)于從優(yōu)化部32輸出的中間代碼,通過參照在內(nèi)部保持的轉(zhuǎn)換表等,將全部代碼置換為機(jī)器語言代碼。由此,生成可執(zhí)行代碼302。
[0118]優(yōu)化部32具有多線程執(zhí)行控制指示解釋部321、命令調(diào)度部322、執(zhí)行狀態(tài)檢測(cè)代碼生成部323和執(zhí)行控制代碼生成部324。命令調(diào)度部322具有響應(yīng)性確保調(diào)度部3221。
[0119]多線程執(zhí)行控制指示解釋部321受理由編程員進(jìn)行的用于控制多線程執(zhí)行的指示,作為編譯選項(xiàng)(compile option)、pragma指令(# pragma)或內(nèi)部函數(shù)(intrinsicfunction).多線程執(zhí)行控制指示解釋部321將所受理的指示存儲(chǔ)到中間代碼中,并傳遞給后級(jí)的命令調(diào)度部322等。
[0120]圖6是表示多線程執(zhí)行控制指示解釋部321受理的用于多線程執(zhí)行控制的指示的一覽的圖。下面,關(guān)于圖6所示的各個(gè)指示,參照使用該指示的源程序301的示例進(jìn)行說明。
[0121]參照?qǐng)D7, “關(guān)注區(qū)間指不”利用“ # pragma_focus begin” 和“ # pragma_focusend”將相比其它線程應(yīng)該關(guān)注的源程序301中的區(qū)間包圍起來從而進(jìn)行指定。根據(jù)該指示,編譯器3進(jìn)行控制,以使得重點(diǎn)對(duì)該區(qū)間分配處理器周期、運(yùn)算資源。
[0122]參照?qǐng)D8, “非關(guān)注區(qū)間指不”利用“ # pragma_unfocus begin” 和“ # pragma_unfocus end”將相比其它線程不怎么需要關(guān)注的源程序301中的區(qū)間包圍起來從而進(jìn)行指定。根據(jù)該指示,編譯器3進(jìn)行控制,以使得不怎么對(duì)該區(qū)間分配處理器周期、運(yùn)算資源。
[0123]參照?qǐng)D9,“命令并行度指示”用于指定源程序301中被“ # pragma ILP =‘num’ begin”和“ # pragma ILP end”包圍起來的區(qū)間的命令并行度。對(duì)‘num’部分指定I?3中的任意一個(gè)數(shù)字,編譯器3生成用于設(shè)定所指定的動(dòng)作模式的代碼,并實(shí)施假設(shè)了所指定的命令并行度的命令調(diào)度。圖9示出了對(duì)‘num’指定“3”的命令并行度指示。SP,指定“3”作為由“# pragma ILP = 3begin”和“# pragma ILP end”包圍起來的區(qū)間的命令并彳丁度。
[0124]參照?qǐng)D10,“多線程執(zhí)行模式指示”用于使源程序301中被“ # pragma_single_thread begin”和“ # pragma_single_thread end”包圍起來的區(qū)間僅在自身線程的單線程模式下進(jìn)行動(dòng)作。根據(jù)該指示,編譯器3生成對(duì)動(dòng)作模式進(jìn)行設(shè)定的代碼、即在上述區(qū)間中將線程的執(zhí)行數(shù)設(shè)為一個(gè)的代碼。
[0125]參照?qǐng)D11,“響應(yīng)性確保區(qū)間指示”用于針對(duì)源程序301中被“ # pragma_response=‘num’begin”和“# pragma_response end”包圍起來的區(qū)間來指定其它線程最低限度能夠響應(yīng)的頻度。對(duì)‘num’部分指定表示應(yīng)該最低限度幾個(gè)周期能夠執(zhí)行一次其它線程的數(shù)值,編譯器3調(diào)整自身線程的生成代碼以使得滿足指定條件。在圖11中示出了對(duì)‘num’指定“10”的響應(yīng)性確保區(qū)間指示。S卩,該指示用于使在由“# pragma_response = lObegin”和“ # pragma_response end”包圍的區(qū)間中、在10個(gè)周期中有一個(gè)周期執(zhí)行其它線程,以滿足該指示的方式生成代碼。例如,生成按照固定頻度來插入停頓周期(stall cycle)的代碼、按照固定周期來釋放運(yùn)算器資源的代碼。
[0126]參照?qǐng)D12,“停頓插入頻度指示”用于針對(duì)源程序301中被“ # pragma_stall_freq=‘num’begin”和“# pragma_stall_freq end”包圍起來的區(qū)間來指定產(chǎn)生最低限度一個(gè)停頓周期的頻度。對(duì)‘num’部分指定表示應(yīng)該最低限度幾個(gè)周期產(chǎn)生一次停頓的數(shù)值,編譯器3插入適當(dāng)?shù)耐nD周期以使得滿足指定條件。圖12示出了對(duì)‘num’指定“10”的停頓插入頻度指示。S卩,生成代碼,以使得在由“# pragma_stall_freq = lObegin”和“# pragma_stall_freq end”包圍起來的區(qū)間中、在10個(gè)周期中有I個(gè)周期產(chǎn)生停頓周期。
[0127]參照?qǐng)D13,“運(yùn)算器釋放頻度指示”用于針對(duì)源程序301中被“ # pragma_release_freq = ‘res’: ‘num’begin”和“# pragma_release_freq end”包圍起來的區(qū)間來指定對(duì)于所指定的運(yùn)算器產(chǎn)生最低限度一次未使用的周期的頻度。對(duì)‘res’部分能夠指定‘mul’或者‘mem’作為運(yùn)算器的種類,‘mul’表示乘法器,‘mem’表示存儲(chǔ)器訪問裝置。對(duì)‘num’部分指定表示應(yīng)該最低限度幾個(gè)周期產(chǎn)生一次所指定的運(yùn)算器的未使用周期的數(shù)值,編譯器3調(diào)整生成代碼以使得滿足指定條件。圖13示出了對(duì)‘res’指定‘mul’、對(duì)‘num’指定“10”的運(yùn)算器釋放頻度指示。S卩,生成代碼,以使得在由“ # pragma_release_freq =mul: lObegin”和“ # pragma_release_freqend”包圍的區(qū)間中、在10個(gè)周期中有I個(gè)周期產(chǎn)生不使用所指定的運(yùn)算器即乘法器的周期。
[0128]參照?qǐng)D14,“緊迫度(tightness)檢測(cè)指示”是一種內(nèi)部函數(shù)的集,用于檢測(cè)對(duì)于所期待的執(zhí)行周期數(shù)緊迫到何種程度。利用函數(shù)_get_tightness_start()指定源程序301中的周期數(shù)計(jì)測(cè)區(qū)間的起點(diǎn)。能夠利用函數(shù)_get_tightness(num)得到緊迫度。對(duì)自變量‘num’指定自起點(diǎn)起的執(zhí)行周期數(shù)的期待值或應(yīng)保證值,該函數(shù)將實(shí)際的執(zhí)行周期數(shù)與所指定的數(shù)值之比返回。圖14示出了對(duì)‘num’指定“1000”的緊迫度檢測(cè)指示。由此,如果實(shí)際的執(zhí)行周期數(shù)是n,則函數(shù)_get_tightness_start (1000)返回n/1000。
[0129]此外,編程員利用該函數(shù)能夠得到處理的緊迫度,能夠?qū)εc緊迫度對(duì)應(yīng)的控制進(jìn)行編程。例如,在緊迫度大于I的情況下,可以生成使運(yùn)算器資源減少或使命令并行度減少的代碼。并且,在緊迫度小于I的情況下,可以生成使運(yùn)算器資源增加或使命令并行度增加的代碼。
[0130]參照?qǐng)D15,“執(zhí)行周期期待值指示”是用于指示所期待的執(zhí)行周期數(shù)的內(nèi)部函數(shù)的集。利用函指定源程序301中的周期數(shù)計(jì)測(cè)區(qū)間的起點(diǎn)。利用函數(shù)_expected_cycle(num)指定執(zhí)行周期數(shù)的期待值。對(duì)自變量‘num’指定自起點(diǎn)起的執(zhí)行周期數(shù)的期待值或應(yīng)保證值。根據(jù)編程員利用該函數(shù)而指定的期待值,編譯器3或操作系統(tǒng)4能夠?qū)С鰧?shí)際的處理的緊迫度,并自動(dòng)實(shí)施適當(dāng)?shù)膱?zhí)行周期數(shù)的控制。[0131]“自動(dòng)控制指示”是一種編譯選項(xiàng),指示出實(shí)施自動(dòng)多線程執(zhí)行控制。利用一auto — MT — control = OS選項(xiàng)來指示操作系統(tǒng)4的自動(dòng)控制,利用一 auto — MT —control = COMPILER選項(xiàng)來指示編譯器3的自動(dòng)控制。
[0132]再次參照?qǐng)D5,命令調(diào)度部322保持所輸入的命令組之間的依存關(guān)系并適當(dāng)進(jìn)行命令的再排列,由此實(shí)施使執(zhí)行效率提高的優(yōu)化。另外,在進(jìn)行命令的再排列時(shí),假定命令等級(jí)的并行度來實(shí)施再排列。在前述的指示中,對(duì)于進(jìn)行“關(guān)注區(qū)間指示”的區(qū)間假設(shè)并行度為3,對(duì)于進(jìn)行“非關(guān)注區(qū)間指示”的區(qū)間假設(shè)并行度為1,對(duì)于進(jìn)行“命令并行度指示”的區(qū)間假設(shè)為遵從指示的并行度。在缺省情況下假設(shè)并行度為3。
[0133]并且,對(duì)于進(jìn)行“多線程執(zhí)行模式指示”的區(qū)間,假設(shè)不存在其它線程而只有自身線程在處理器上動(dòng)作,來實(shí)施命令調(diào)度。
[0134]命令調(diào)度部322具有響應(yīng)性確保調(diào)度部3221。
[0135]響應(yīng)性確保調(diào)度部3221,對(duì)于進(jìn)行前述“響應(yīng)性確保區(qū)間指示”或“停頓插入頻度指示”的區(qū)間,從開頭開始按順序搜索周期,在所指定的數(shù)值的周期數(shù)的停頓不發(fā)生的周期連續(xù)的情況下,插入使停頓發(fā)生的“nop”命令,并從下一個(gè)命令開始繼續(xù)搜索。由此,其它線程對(duì)所指定的周期在I個(gè)周期能夠可靠地執(zhí)行命令。
[0136]并且,對(duì)于進(jìn)行前述“運(yùn)算器釋放頻度指示”的區(qū)間,進(jìn)行命令調(diào)度時(shí),對(duì)使用所指定的運(yùn)算器的周期進(jìn)行計(jì)數(shù),計(jì)數(shù)器達(dá)到所指定的數(shù)值的情況下假設(shè)在下一個(gè)周期中不能使用該運(yùn)算器,從而進(jìn)行調(diào)度。如果產(chǎn)生不使用該運(yùn)算器的周期,則對(duì)計(jì)數(shù)進(jìn)行復(fù)位。由此,其它線程對(duì)所指定的周期在I周期能夠使用該運(yùn)算器。
[0137]執(zhí)行狀態(tài)檢測(cè)代碼生成部323對(duì)應(yīng)于前述指示來插入用于檢測(cè)執(zhí)行狀態(tài)的代碼。
[0138]具體地講,對(duì)應(yīng)于前述“緊迫度檢測(cè)指示”,在記述有函數(shù)_get_tightness_start ()的部分中插入用于使處理器的周期計(jì)數(shù)開始的系統(tǒng)調(diào)用(system call)。并且,在記述有函數(shù)_get_tightness(num)的部分中插入:將處理器的周期計(jì)數(shù)值讀出的系統(tǒng)調(diào)用;以及將用所讀出的計(jì)數(shù)值除以對(duì)num賦予的期待值而得到的值作為緊迫度來返回的代碼。編程員能夠根據(jù)該返回值得知處理的緊迫度。
[0139]此外,對(duì)應(yīng)于前述“執(zhí)行周期期待值指示”,在記述有函數(shù)_以?6(^6(1_(^(316_StartO的部分中插入用于使處理器的周期計(jì)數(shù)開始的系統(tǒng)調(diào)用。能夠?qū)?yīng)于各個(gè)指示而獨(dú)立地進(jìn)行周期計(jì)數(shù)。
[0140]并且,作為自動(dòng)控制指示的編譯選項(xiàng)一 auto -MT- control而指定了 OS的情況下,在記述有函數(shù)_61口6(^6(1_07(316 (num)的部分中插入用于將由num指示的執(zhí)行周期數(shù)的期待值傳遞給操作系統(tǒng)4而敦促執(zhí)行控制的系統(tǒng)調(diào)用。與此對(duì)應(yīng)地,能夠由操作系統(tǒng)4實(shí)施執(zhí)行控制。
[0141]此外,作為自動(dòng)控制指示的編譯選項(xiàng)一 auto - MT - control而指定了 COMPILER的情況下,在記述有函數(shù)_expected_cycle (num)的部分中插入將處理器的周期計(jì)數(shù)讀出的系統(tǒng)調(diào)用,用所讀出的計(jì)數(shù)值除以對(duì)num賦予的期待值來計(jì)算緊迫度,在緊迫度為0.8以上的情況下,插入進(jìn)行與后述的“關(guān)注區(qū)間”對(duì)應(yīng)的控制的代碼,在緊迫度小于0.8的情況下,插入進(jìn)行與后述的“非關(guān)注區(qū)間”對(duì)應(yīng)的控制的代碼。由此,編譯器能夠自動(dòng)生成對(duì)與緊迫度對(duì)應(yīng)的多線程執(zhí)行控制進(jìn)行實(shí)施的代碼。
[0142]執(zhí)行控制代碼生成部324插入用于對(duì)應(yīng)于前述指示來對(duì)執(zhí)行進(jìn)行控制的代碼。
[0143]具體地講,對(duì)應(yīng)于“關(guān)注區(qū)間指示”,在區(qū)間的begin的部分中插入將命令并行度設(shè)定為3的系統(tǒng)調(diào)用,在區(qū)間的end的部分中插入恢復(fù)為原來的設(shè)定的系統(tǒng)調(diào)用。
[0144]并且,對(duì)應(yīng)于“非關(guān)注區(qū)間指示”,在區(qū)間的begin的部分中插入將命令并行度設(shè)定為I的系統(tǒng)調(diào)用、和設(shè)定為使其它線程的周期不中斷的執(zhí)行模式的代碼,在區(qū)間的end的部分中插入恢復(fù)為原來的設(shè)定的系統(tǒng)調(diào)用。
[0145]另外,對(duì)應(yīng)于“命令并行度指示”,在區(qū)間的begin的部分中插入將命令并行度設(shè)定為所指定的值的系統(tǒng)調(diào)用,在區(qū)間的end的部分中插入恢復(fù)為原來的設(shè)定的系統(tǒng)調(diào)用。
[0146]另外,對(duì)應(yīng)于“多線程執(zhí)行模式指示命令并行度指示”,在區(qū)間的begin的部分中插入用于轉(zhuǎn)移到單線程模式的系統(tǒng)調(diào)用,在區(qū)間的end的部分中插入恢復(fù)為原來的設(shè)定的系統(tǒng)調(diào)用。
[0147]并且,對(duì)應(yīng)于“執(zhí)行周期期待值指示”和“自動(dòng)控制指示”,插入與如前所述地檢測(cè)到的緊迫度相對(duì)應(yīng)來進(jìn)行與“非關(guān)注區(qū)間”或“關(guān)注區(qū)間”同樣的控制的代碼。
[0148]通過采取以上所述的編譯器3的結(jié)構(gòu),在多線程處理器I中,能夠控制自身線程的執(zhí)行模式和處理器資源的使用狀況,能夠根據(jù)需要來關(guān)注自身線程的處理或?qū)ζ渌€程分配處理器資源。此外,即使是在關(guān)注自身線程的處理的情況下,其它線程也能夠保證規(guī)定的響應(yīng)性。此外,能夠獲得執(zhí)行時(shí)的執(zhí)行周期數(shù)的信息并據(jù)此按照緊迫度進(jìn)行上述控制,能夠?qū)崿F(xiàn)極其精細(xì)的性能調(diào)諧(tuning)和處理器利用效率的提高。
[0149]圖16是表示本發(fā)明的實(shí)施方式2的操作系統(tǒng)4的結(jié)構(gòu)的框圖。
[0150]操作系統(tǒng)4,作為被在計(jì)算機(jī)上執(zhí)行時(shí)發(fā)揮作用的處理部,具有系統(tǒng)調(diào)用處理部41、進(jìn)程(process)管理部42、存儲(chǔ)器管理部43和硬件控制部44。另外,操作系統(tǒng)4是一種程序,通過在具有處理器和存儲(chǔ)器的計(jì)算機(jī)上執(zhí)行用于實(shí)現(xiàn)操作系統(tǒng)4的各個(gè)構(gòu)成要素的程序來實(shí)現(xiàn)功能。這樣的程序當(dāng)然能夠通過CD - ROM等非易失性記錄介質(zhì)、因特網(wǎng)等通信網(wǎng)絡(luò)進(jìn)行流通。操作系統(tǒng)4,通過使計(jì)算機(jī)作為這些處理部發(fā)揮作用,能夠使計(jì)算機(jī)作為操作系統(tǒng)裝置進(jìn)行動(dòng)作。另外,操作系統(tǒng)4動(dòng)作的處理器是實(shí)施方式I所示的多線程處理器I。
[0151]進(jìn)程管理部42對(duì)在操作系統(tǒng)4上動(dòng)作的多個(gè)進(jìn)程賦予優(yōu)先度,據(jù)此來確定分配給各個(gè)進(jìn)程的時(shí)間,并控制進(jìn)程的切換等。
[0152]存儲(chǔ)器管理部43實(shí)施如下等控制:存儲(chǔ)器的可利用部分的管理、存儲(chǔ)器的分配及釋放、主存儲(chǔ)與二次存儲(chǔ)之間的交換(swap )。
[0153]系統(tǒng)調(diào)用處理部41提供與系統(tǒng)調(diào)用對(duì)應(yīng)的處理,該系統(tǒng)調(diào)用是針對(duì)應(yīng)用程序的核心服務(wù)(kernel service)。
[0154]系統(tǒng)調(diào)用處理部41具有多線程執(zhí)行控制系統(tǒng)調(diào)用處理部411和緊迫度檢測(cè)系統(tǒng)調(diào)用處理部412。[0155]多線程執(zhí)行控制系統(tǒng)調(diào)用處理部411處理用于對(duì)處理器的多線程動(dòng)作進(jìn)行控制的系統(tǒng)調(diào)用。
[0156]具體地講,多線程執(zhí)行控制系統(tǒng)調(diào)用處理部411受理對(duì)前述編譯器3的執(zhí)行控制代碼生成部324的命令并行度進(jìn)行設(shè)定的系統(tǒng)調(diào)用,設(shè)定處理器的動(dòng)作命令并行度并保存原來的命令并行度。并且,多線程執(zhí)行控制系統(tǒng)調(diào)用處理部411受理向原來的命令并行度進(jìn)行恢復(fù)的系統(tǒng)調(diào)用,并將處理器設(shè)定為所保存的原來的命令并行度。另外,多線程執(zhí)行控制系統(tǒng)調(diào)用處理部411受理向單線程模式轉(zhuǎn)移的系統(tǒng)調(diào)用,將處理器的動(dòng)作模式設(shè)定為單線程模式并保存原來的線程模式。并且,多線程執(zhí)行控制系統(tǒng)調(diào)用處理部411受理向原來的線程模式進(jìn)行恢復(fù)的系統(tǒng)調(diào)用,并將處理器設(shè)定為所保存的原來的線程模式。
[0157]緊迫度檢測(cè)系統(tǒng)調(diào)用處理部412處理用于檢測(cè)處理的緊迫度并予以應(yīng)對(duì)的系統(tǒng)調(diào)用。
[0158]具體地講,緊迫度檢測(cè)系統(tǒng)調(diào)用處理部412受理用于使前述編譯器3的執(zhí)行狀態(tài)檢測(cè)代碼生成部323的處理器的周期計(jì)數(shù)開始的系統(tǒng)調(diào)用,獲得處理器的計(jì)數(shù)器并進(jìn)行使計(jì)數(shù)開始的設(shè)定。此外,緊迫度檢測(cè)系統(tǒng)調(diào)用處理部412受理將當(dāng)前的周期計(jì)數(shù)讀出的系統(tǒng)調(diào)用,讀出處理器的相應(yīng)計(jì)數(shù)器的當(dāng)前的計(jì)數(shù)值,并返回該值。進(jìn)而,緊迫度檢測(cè)系統(tǒng)調(diào)用處理部412受理用于傳遞執(zhí)行周期數(shù)的期待值而敦促執(zhí)行控制的系統(tǒng)調(diào)用,讀出處理器的相應(yīng)計(jì)數(shù)器的當(dāng)前的計(jì)數(shù)值,根據(jù)該值和所傳遞的執(zhí)行周期數(shù)的期待值來推導(dǎo)緊迫度,并實(shí)施與緊迫度對(duì)應(yīng)的執(zhí)行控制。在緊迫度較高的情況下,緊迫度檢測(cè)系統(tǒng)調(diào)用處理部412提高該進(jìn)程的優(yōu)先度,并實(shí)施與前述“關(guān)注區(qū)間”對(duì)應(yīng)的控制。另一方面,在緊迫度較低的情況下,緊迫度檢測(cè)系統(tǒng)調(diào)用處理部412降低該進(jìn)程的優(yōu)先度,并實(shí)施與前述“非關(guān)注區(qū)間”對(duì)應(yīng)的控制。
[0159]硬件控制部44實(shí)施在系統(tǒng)調(diào)用處理部41等中所需要的硬件控制用的寄存器設(shè)定和讀出。
[0160]具體地講,實(shí)施如下處理:前述命令并行度的設(shè)定和恢復(fù)、多線程動(dòng)作模式的設(shè)定和恢復(fù)、周期計(jì)數(shù)器的初始化、與周期計(jì)數(shù)器的讀出對(duì)應(yīng)的硬件的寄存器設(shè)定和讀出。
[0161]通過采取以上所述的操作系統(tǒng)4的結(jié)構(gòu),能夠?qū)崿F(xiàn)利用程序的多線程處理器的動(dòng)作控制,能夠?qū)Ω鱾€(gè)程序適當(dāng)?shù)胤峙涮幚砥髻Y源。并且,能夠根據(jù)所輸入的由編程員假設(shè)的執(zhí)行周期數(shù)的期待值和從硬件讀出的實(shí)際的執(zhí)行周期的信息來檢測(cè)緊迫度,并自動(dòng)實(shí)施適當(dāng)?shù)目刂?,能夠減輕編程員的調(diào)諧負(fù)擔(dān)。
[0162]本發(fā)明不限于上述的實(shí)施方式,當(dāng)然能夠?qū)崿F(xiàn)各種變更,并且這些變更都包含在本發(fā)明的范圍內(nèi)。例如,可以考慮以下所述的變形。
[0163](I)在上述實(shí)施方式2的編譯器中,假設(shè)了適合于C語言的編譯器系統(tǒng),但是本發(fā)明不限于C語言。在采用其它編程語言的情況下,本發(fā)明也能夠保持其意義。
[0164](2)在上述實(shí)施方式2的編譯器中,假設(shè)了適合于高級(jí)語言的編譯器系統(tǒng),但是本發(fā)明不限于此。例如,同樣能夠?qū)⒈景l(fā)明應(yīng)用于以匯編程序?yàn)檩斎氲膮R編器。
[0165](3)在上述實(shí)施方式2中,作為目標(biāo)處理器,假設(shè)了 I個(gè)周期能夠發(fā)行3個(gè)命令、能夠同時(shí)使3個(gè)線程并行動(dòng)作的處理器,但是本發(fā)明不限于該同時(shí)發(fā)行命令數(shù)、線程數(shù)。
[0166](4)在上述實(shí)施方式2中,作為目標(biāo)處理器,假設(shè)了超標(biāo)量處理器(superscalarprocessor),但是本發(fā)明不限于此。也能夠?qū)⒈景l(fā)明應(yīng)用于VLIM(Very Long InstructionWord)處理器。
[0167](5)在上述實(shí)施方式2中,作為對(duì)多線程執(zhí)行控制指示解釋部進(jìn)行指示的方法,分別規(guī)定了 pragma指令、內(nèi)部函數(shù)、編譯選項(xiàng),但是本發(fā)明不限于這種規(guī)定。進(jìn)行pragma指令的部分也可以利用內(nèi)部函數(shù)來實(shí)現(xiàn),反過來也可以。并且,在匯編程序的情況下,還能夠作為偽指令進(jìn)行指示。
[0168](6)在上述實(shí)施方式2中,作為提供給多線程執(zhí)行控制指示解釋部的命令并行度指示,作為處理器假設(shè)了最少I最多3,但是本發(fā)明不限于這種指定。也可以指定位于處理器的能力的中間的2等并行度。
[0169](7)在上述實(shí)施方式2中,作為提供給多線程執(zhí)行控制指示解釋部的響應(yīng)確保區(qū)間指示、停頓插入頻度指示和運(yùn)算器釋放指示,提供了作為周期數(shù)的頻度,但是本發(fā)明不限于這種指定。也可以用毫秒等時(shí)間進(jìn)行這些指示,還可以如高、中、低那樣用程度進(jìn)行指示。
[0170](8)在上述實(shí)施方式2中,作為提供給多線程執(zhí)行控制指示解釋部的運(yùn)算器釋放頻度指示的運(yùn)算器,假設(shè)了乘法器和存儲(chǔ)器訪問,但是本發(fā)明不限于這種指示。也可以指示其它運(yùn)算器,還可以用更細(xì)的單位進(jìn)行指示以使得對(duì)加載(load)和儲(chǔ)存(storage)進(jìn)行區(qū)分等。
[0171](9)在上述實(shí)施方式2中,在提供給多線程執(zhí)行控制指示解釋部的緊迫度檢測(cè)指示和執(zhí)行周期期待值指示中,用周期數(shù)來提供期待值,但是本發(fā)明不限于這種指示。也可以用毫秒等時(shí)間進(jìn)行指示,還可以如大、中、小那樣用程度進(jìn)行指示。
[0172](10)在上述實(shí)施方式2的操作系統(tǒng)中,假設(shè)了伴隨有進(jìn)程管理和存儲(chǔ)器管理的通用操作系統(tǒng),但是也可以是諸如縮小了功能的設(shè)備驅(qū)動(dòng)程序(device driver)那樣的操作系統(tǒng)。即使在這種形態(tài)下,也能夠通過API進(jìn)行硬件的適當(dāng)控制。
[0173]另外,也可以將上述實(shí)施方式和上述變形例分別進(jìn)行組合。
[0174]此次公開的實(shí)施方式在所有方面上都僅是示例,不能認(rèn)為是限制性的方式。本發(fā)明的范圍不在于上述的說明,而包含由請(qǐng)求保護(hù)的范圍所示、與請(qǐng)求保護(hù)的范圍同等意義及范圍內(nèi)的所有變更。
[0175]產(chǎn)業(yè)上的可利用性
[0176]如上所述,本發(fā)明的多線程處理器,即使是在線程之間競(jìng)爭(zhēng)運(yùn)算資源的情況下也具有如下效果,即:能夠防止在用戶指定、處理器實(shí)施方面的線程之間的優(yōu)先度中處于劣勢(shì)的線程的執(zhí)行效率局部明顯下降,并且能夠取得各個(gè)線程的命令數(shù)和運(yùn)算器資源數(shù)的平衡而實(shí)現(xiàn)高效率的多線程執(zhí)行,因而可以應(yīng)用于多線程處理器和使用該多線程處理器的應(yīng)用軟件等。
[0177]附圖標(biāo)記說明
[0178]I 多線程處理器
[0179]3 編譯器
[0180]4 操作系統(tǒng)
[0181]31 句法分析部
[0182]32 優(yōu)化部
[0183]33 代碼生成部
[0184]41 系統(tǒng)調(diào)用處理部[0185]42進(jìn)程管理部
[0186]43存儲(chǔ)器管理部
[0187]44硬件控制部
[0188]101命令存儲(chǔ)器
[0189]102第I命令解碼器
[0190]103第2命令解碼器
[0191]104第3命令解碼器
[0192]105第I命令數(shù)指定部
[0193]106第2命令數(shù)指定部
[0194]107第3命令數(shù)指定部
[0195]108第I命令分組部
[0196]109第2命令分組部
[0197]110第3命令分組部
[0198]111第I寄存器
[0199]112第2寄存器
[0200]113第3寄存器
[0201]114線程選擇部
[0202]115命令發(fā)行控制部
[0203]116線程選擇器
[0204]117,118線程用寄存器選擇器
[0205]119運(yùn)算器組
[0206]201第I發(fā)行間隔抑制部
[0207]202第2發(fā)行間隔抑制部
[0208]203第3發(fā)行間隔抑制部
[0209]204第I執(zhí)行間隔指定部
[0210]205第2執(zhí)行間隔指定部
[0211]206第3執(zhí)行間隔指定部
[0212]301源程序
[0213]302可執(zhí)行代碼
[0214]321多線程執(zhí)行控制指示解釋部
[0215]322命令調(diào)度部
[0216]323執(zhí)行狀態(tài)檢測(cè)代碼生成部
[0217]324執(zhí)行控制代碼生成部
[0218]411多線程執(zhí)行控制系統(tǒng)調(diào)用處理部
[0219]412緊迫度檢測(cè)系統(tǒng)調(diào)用處理部
[0220]3221響應(yīng)性確保調(diào)度部
【權(quán)利要求】
1.一種編譯器裝置,將源程序轉(zhuǎn)換為可執(zhí)行代碼,適合于將多個(gè)線程的命令并行執(zhí)行的多線程處理器, 該編譯器裝置具有: 指示取得部,取得與多線程控制相關(guān)的編程員的指示;以及 控制代碼生成部,根據(jù)上述指示來生成對(duì)處理器的執(zhí)行模式進(jìn)行控制的代碼。
2.根據(jù)權(quán)利要求1所述的編譯器裝置,其中, 上述指示取得部取得對(duì)并行執(zhí)行進(jìn)行關(guān)注的指示。
3.根據(jù)權(quán)利要求1所述的編譯器裝置,其中, 上述指示取得部取得不對(duì)并行執(zhí)行進(jìn)行關(guān)注的指示。
4.根據(jù)權(quán)利要求2或3所述的編譯器裝置,其中, 上述控制代碼生成部根據(jù)上述指示來生成使運(yùn)算器數(shù)增減的代碼。
5.根據(jù)權(quán)利要求1所述的編譯器裝置,其中, 上述指示取得部取得關(guān)于命令并行度的指示, 上述控制代碼生成部生成按上述命令并行度來執(zhí)行線程的代碼。
6.根據(jù)權(quán)利要求1所述的編譯器裝置,其中, 上述指示取得部取得關(guān)于線程的執(zhí)行數(shù)的指示。
7.根據(jù)權(quán)利要求6所述的編譯器裝置,其中, 上述指示取得部取得關(guān)于單線程執(zhí)行的指示。
8.根據(jù)權(quán)利要求6或7所述的編譯器裝置,其中, 上述控制代碼生成部根據(jù)上述指示來生成對(duì)線程的執(zhí)行數(shù)進(jìn)行控制的代碼。
9.根據(jù)權(quán)利要求1所述的編譯器裝置,其中, 上述指示取得部取得與線程的響應(yīng)性的確保相關(guān)的指示。
10.根據(jù)權(quán)利要求1所述的編譯器裝置,其中, 上述指示取得部取得與產(chǎn)生停頓周期的頻度相關(guān)的指示。
11.根據(jù)權(quán)利要求1所述的編譯器裝置,其中, 上述指示取得部取得與運(yùn)算器資源的釋放相關(guān)的指示。
12.根據(jù)權(quán)利要求9~11中任意一項(xiàng)所述的編譯器裝置,其中, 上述控制代碼生成部根據(jù)上述指示來生成按固定頻度插入停頓周期的代碼。
13.根據(jù)權(quán)利要求9~11中任意一項(xiàng)所述的編譯器裝置,其中, 上述控制代碼生成部根據(jù)上述指示來生成按固定頻度釋放運(yùn)算器資源的代碼。
14.根據(jù)權(quán)利要求1~3、5~7、9~11中任意一項(xiàng)所述的編譯器裝置,其中, 上述指示是指針對(duì)上述源程序中的固定區(qū)間的指示。
15.一種編譯器裝置,將源程序轉(zhuǎn)換為可執(zhí)行代碼,適合于將多個(gè)線程的命令并行執(zhí)行的多線程處理器, 該編譯器裝置具有用于檢測(cè)處理的緊迫度的接口。
16.根據(jù)權(quán)利要求15所述的編譯器裝置,其中, 上述接口是對(duì)使周期計(jì)數(shù)開始的地點(diǎn)進(jìn)行指示的接口。
17.根據(jù)權(quán)利要求15所述的編譯器裝置,其中, 上述接口是對(duì)上述緊迫度的測(cè)定地點(diǎn)中的周期數(shù)的期待值進(jìn)行輸入的接口。
18.根據(jù)權(quán)利要求17所述的編譯器裝置,其中, 上述接口是返回根據(jù)上述期待值和實(shí)際周期數(shù)導(dǎo)出的緊迫度的接口。
19.根據(jù)權(quán)利要求15~18中任意一項(xiàng)所述的編譯器裝置,其中, 上述編譯器裝置還具有代碼生成部,該代碼生成部生成與上述緊迫度對(duì)應(yīng)的處理。
20.根據(jù)權(quán)利要求19所述的編譯器裝置,其中, 上述代碼生成部按照上述緊迫度來生成使運(yùn)算器資源增減的代碼。
21.根據(jù)權(quán)利要求19所述的編譯器裝置,其中, 上述代碼生成部按照上述緊迫度來生成使命令并行度增減的代碼。
22.根據(jù)權(quán)利要求15~18中任意一項(xiàng)所述的編譯器裝置,其中, 上述接口通過編譯器裝置的內(nèi)部函數(shù)而實(shí)現(xiàn)。
23.一種操作系統(tǒng)裝置,適合于將多個(gè)線程的命令并行執(zhí)行的多線程處理器, 該操作系統(tǒng)裝置具有系統(tǒng)代碼處理部,該系統(tǒng)代碼處理部根據(jù)與多線程控制相關(guān)的編程員的指示來處理系統(tǒng)調(diào)用,該系統(tǒng)調(diào)用使得處理器的執(zhí)行模式能夠控制。
24.根據(jù)權(quán)利要求23所述的操作系統(tǒng)裝置,其中, 上述系統(tǒng)調(diào)用是與命令并行度相關(guān)的系統(tǒng)調(diào)用。`
25.根據(jù)權(quán)利要求23所述的操作系統(tǒng)裝置,其中, 上述系統(tǒng)調(diào)用是與線程的執(zhí)行數(shù)相關(guān)的系統(tǒng)調(diào)用。
26.根據(jù)權(quán)利要求23所述的操作系統(tǒng)裝置,其中, 上述系統(tǒng)調(diào)用是與周期計(jì)數(shù)相關(guān)的系統(tǒng)調(diào)用。
27.根據(jù)權(quán)利要求23所述的操作系統(tǒng)裝置,其中, 上述系統(tǒng)調(diào)用是實(shí)施與緊迫度對(duì)應(yīng)的處理的系統(tǒng)調(diào)用。
【文檔編號(hào)】G06F9/38GK103631567SQ201310647848
【公開日】2014年3月12日 申請(qǐng)日期:2010年3月18日 優(yōu)先權(quán)日:2009年5月28日
【發(fā)明者】古賀義宏, 瓶子岳人 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社