欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

程序變換方法及程序變換系統(tǒng)的制作方法

文檔序號:6557896閱讀:230來源:國知局
專利名稱:程序變換方法及程序變換系統(tǒng)的制作方法
技術領域
本發(fā)明是關于將用C語言等高級語言描述的源程序變換成機器語言程序的程序變換方法及程序變換裝置,特別是關于對編譯器(compiler)的信息輸入及編譯器中的優(yōu)化。
背景技術
以往,已提出了各種將由高級語言描述的源程序變換成機器語言指令串的編譯器。但是,簡單的編譯器卻不能避免例如由高速緩沖存儲器的錯誤等的影響所造成的性能惡化。因此,近些年來,提出了根據該源程序內的信息及該源程序的評測(profile)信息,實現(xiàn)減少高速緩沖存儲器錯誤的優(yōu)化的編譯器(例如,參照日本專利特開2001-166948號公報及日本專利特開平7-129410號公報)。
但是,在現(xiàn)有的技術中,只著眼于自身的任務實現(xiàn)優(yōu)化處理。為此,依然不能考慮到系統(tǒng)內其他任務產生的影響,當在單一處理器上多個任務分時操作時、及在各具有本地高速緩沖存儲器的多個處理器上多個任務進行操作時,由于高速緩沖存儲器的高速緩沖存儲錯誤等影響,以計算機系統(tǒng)整體看時,存在性能大幅下降的問題。這樣的問題不僅限于編譯器,在OS(Operating System)、及硬件調度器(hardware scheduler)進行任務調度(task scheduling)時,也會根據任務調度的結果,性能大幅度下降。
因此,需要系統(tǒng)軟件的程序員人工進行試行錯誤性的數據配置等工作,需要大量的開發(fā)工時。

發(fā)明內容
本發(fā)明是為了解決上述課題而提出的,其目的在于提供程序變換方法等,在系統(tǒng)軟件開發(fā)時,提高計算機系統(tǒng)整體的執(zhí)行性能,并且可以減少系統(tǒng)軟件的開發(fā)工時。
為了達到上述目的,本發(fā)明所涉及的程序變換方法,是將由高級語言描述的源程序變換成機器語言程序的程序變換方法,其特征在于,包括對上述源程序進行詞法分析和語法分析的解析(parse)步驟;根據上述解析步驟的分析結果,將上述源程序變換成中間代碼的中間代碼變換步驟;接受為提高上述機器語言程序執(zhí)行效率的提示(hint)信息的提示信息接受步驟;根據上述提示信息,對上述中間代碼進行優(yōu)化的優(yōu)化步驟;以及將優(yōu)化后的上述中間代碼變換成機器語言程序的機器語言程序變換步驟;在上述提示信息中,包括與對應于成為變換對象的上述源程序的執(zhí)行對象以外的執(zhí)行對象有關的信息。
這樣,也考慮了與成為變換對象的執(zhí)行對象以外的執(zhí)行對象有關的信息,即與成為變換對象的任務或線程(thread)以外的任務或線程有關的信息,在系統(tǒng)級上的優(yōu)化成為可能。因此,可以提供在系統(tǒng)軟件開發(fā)中提高計算機系統(tǒng)整體的執(zhí)行性能、并可減少系統(tǒng)軟件的開發(fā)工時的程序變換方法。
另外,上述優(yōu)化步驟,也可以包括根據上述提示信息、對優(yōu)化對象的數據進行可有效使用高速緩沖存儲器的調整的高速緩存行(cache line)調整步驟。
這樣,可以考慮與變換對象以外的任務或線程有關的信息,并確定數據的配置,可以避免在高速緩沖存儲器的特定集(set)上映射(mapping)偏離而產生相互沖突。從而可提高計算機系統(tǒng)整體的性能及提高系統(tǒng)軟件的易開發(fā)性。
另外,上述優(yōu)化步驟,也可以包括根據上述提示信息,將成為變換對象的上述執(zhí)行對象分配給執(zhí)行該執(zhí)行對象的某個處理器的處理器分配步驟。
這樣,可以考慮與變換對象以外的任務或線程有關的信息,并為在多處理器系統(tǒng)中,提高本地高速緩沖存儲器的利用效率,而進行數據配置的確定及分配處理器的確定。從而可提高計算機系統(tǒng)整體的性能及提高系統(tǒng)軟件的易開發(fā)性。
另外,這種程序變換方法中的各種步驟,也可以適用于將機器語言程序裝入(load)在主存儲器的載入器(loader)中。
本發(fā)明另一方面所涉及的程序開發(fā)系統(tǒng),是由源程序開發(fā)機器語言程序的程序開發(fā)系統(tǒng),其特征在于,包括編譯系統(tǒng);執(zhí)行由上述編譯系統(tǒng)(compiler system)所生成的機器語言程序,并輸出執(zhí)行日志(log)的模擬器(simulator)裝置;以及對由上述模擬器裝置輸出的上述執(zhí)行日志進行分析,并對用于上述編譯系統(tǒng)優(yōu)化的執(zhí)行分析結果進行輸出的評測(profile)裝置。上述編譯系統(tǒng)包括第1程序變換裝置、及第2程序變換裝置,上述第1程序變換裝置是將由高級語言描述的源程序變換成機器語言程序的程序變換裝置,其包括對上述源程序進行詞法分析和語法分析的解析單元;根據上述解析單元的分析結果,將上述源程序變換成中間代碼的中間代碼變換單元;接受為提高上述機器語言程序執(zhí)行效率的提示信息的提示信息接受單元;根據上述提示信息,對上述中間代碼進行優(yōu)化的優(yōu)化單元;以及將優(yōu)化后的上述中間代碼變換成機器語言程序的機器語言程序變換單元,在上述提示信息中,包括與作為變換對象的上述源程序所對應執(zhí)行對象以外的執(zhí)行對象有關的信息。另外上述第2程序變換裝置是接受至少1個目標文件、并將該目標文件變換成機器語言程序的程序變換裝置,其特征在于,包括接收為提高上述機器語言程序執(zhí)行效率的提示信息的提示信息接收單元;以及根據上述提示信息,對上述目標文件進行優(yōu)化,且變換成上述機器語言程序的優(yōu)化單元,在上述提示信息中,包括與作為變換對象的上述至少1個目標文件所對應的執(zhí)行對象以外的執(zhí)行對象有關的信息。
這樣,可以將由編譯系統(tǒng)生成的機器語言程序的執(zhí)行結果的分析結果再次反饋到編譯系統(tǒng)。另外,對于變換對象以外的任務或線程的執(zhí)行結果,也可以將該執(zhí)行結果的分析結果反饋給編譯系統(tǒng)。為此,可提高計算機系統(tǒng)整體的性能及提高系統(tǒng)軟件的易開發(fā)性。
本發(fā)明不僅可以實現(xiàn)具有這種特征步驟的程序變換方法,也可以實現(xiàn)將程序變換方法中包含的特征步驟作為單元的程序變換裝置,及實現(xiàn)將程序變換方法中所包含的特征步驟作為在計算機上執(zhí)行的程序。而且,這樣的程序當然也可以通過CD-ROM(Compact Disc-Read Only Memory)等記錄媒體及因特網等通信網絡進行流通。
與現(xiàn)有的編譯器單元相比,由于也可以包括在有其他文件、任務、線程影響的系統(tǒng)級上進行優(yōu)化,所以可提高計算機系統(tǒng)的執(zhí)行性能。
另外,不需要系統(tǒng)軟件的程序員進行試行錯誤的數據配置等工作,可使系統(tǒng)軟件開發(fā)工時減少。


圖1是表示本發(fā)明的實施方式1所涉及的編譯系統(tǒng)作為對象的系統(tǒng)硬件結構的方框圖。
圖2是表示高速緩沖存儲器的硬件結構的方框圖。
圖3是表示高速緩沖存儲器項目的詳細的位結構圖。
圖4是表示開發(fā)機器語言程序的程序開發(fā)系統(tǒng)結構的方框圖。
圖5是表示編譯系統(tǒng)結構的功能方框圖。
圖6是用于說明配置集信息設定部及數據配置確定部處理概要的圖。
圖7是表示高速緩存行調整部處理內容的流程圖。
圖8是表示調節(jié)信息的一例的圖。
圖9是表示高速緩存行調整部中循環(huán)的再構成轉換圖。
圖10是表示配置集信息設定部處理內容的流程圖。
圖11是表示配置集信息的一例的圖。
圖12是表示重要數據的實際配置地址的一例的圖。
圖13是表示集配置狀況數據的一例的圖。
圖14是表示數據配置確定部處理內容的流程圖。
圖15是表示本發(fā)明的實施方式2所涉及的編譯系統(tǒng)作為對象的系統(tǒng)硬件結構的方框圖。
圖16是表示編譯系統(tǒng)結構的功能方框圖。
圖17是表示處理器序號提示信息設定部處理內容的流程圖。
圖18是表示處理器分配狀況數據的一例的圖。
圖19是表示配置集信息設定部處理內容的流程圖。
圖20是表示處理器序號信息確定部處理內容的流程圖。
圖21是表示數據配置確定部處理內容的流程圖。
圖22是表示系統(tǒng)級提示信息的一例的圖。
圖23是表示將本發(fā)明使用于載入器的結構的圖。
具體實施例方式
下面,參照附圖對本發(fā)明的實施方式所涉及的編譯系統(tǒng)進行說明。
(實施方式1)圖1是表示本發(fā)明的實施方式1所涉及的編譯系統(tǒng)作為對象(target)的計算機系統(tǒng)硬件結構的方框圖。計算機系統(tǒng)包括處理器1、主存儲器2及高速緩沖存儲器3。
處理器1是執(zhí)行機器語言程序的處理部。
主存儲器2是存儲由處理器1執(zhí)行的機器語言指令及各種數據等的存儲器。
高速緩沖存儲器3是根據4通路集聯(lián)(4way set associative)方式操作、并與主存儲器2相比可以更高速進行數據讀寫的存儲器。高速緩沖存儲器3的存儲容量比主存儲器2的存儲容量小。
圖2是表示高速緩沖存儲器3的硬件結構的方框圖。如該圖所示,高速緩沖存儲器3是4通路集聯(lián)方式的高速緩沖存儲器,包括地址寄存器10、解碼器20、4個通路21a~21d(以下,分別簡稱為“通路0~3”)、4個比較器22a~22d、4個AND電路23a~23d、OR電路24、選擇器25、及信號分離器(demultiplexer)26。
地址寄存器10是保持對主存儲器2的存取地址的寄存器。該存取地址為32位。如該圖所示,存取地址從最高位依次包括21位標簽地址、及4位集索引(set index)(圖中的SI)。此處標簽地址指示映射到通路的主存儲器2中的區(qū)域。集索引(SI)表示跨通路0~3的多個集中的1個。由于集索引(SI)為4位,集共存在16集。由標簽地址及集索引(SI)所特定的塊是置換(replace)單位,當塊存放在高速緩沖存儲器3中時也稱為行數據(line data)或行。行數據的大小是由比集索引(SI)低位的地址位(7位)所決定的大小,即128字節(jié)。當1個字為4字節(jié)時,1行數據為32字。地址寄存器10中的最低位的7位,在通路存取時可以被忽略。
解碼器20對集索引(SI)的4位數據進行解碼,選擇跨4個通路0~3的16集中的1個。
4個通路0~3具有相同的結構,合計共有4×2K字節(jié)的容量。通路0有16個高速緩沖存儲器項目(entry)。
圖3表示1個高速緩沖存儲器項目的詳細的位結構。如該圖所示,1個高速緩沖存儲器項目保持有效標志(valid flag)V、21位的標簽、128字節(jié)的行數據、弱標志(weak flag)W及占用標志(duty flag)D?!坝行酥綱”表示該高速緩沖存儲器項目是否有效,“標簽”是21位的標簽地址的拷貝?!靶袛祿笔怯蓸撕灥刂芳凹饕?SI)所特定的塊中的128字節(jié)數據的拷貝。“占用標志D”是表示在該高速緩沖存儲器項目中是否已有寫入,即在高速緩沖存儲器項目中由于通過高速緩沖存儲的數據的寫入、而與主存儲器2中的數據不同,為此是否需要寫回到主存儲器2(覆蓋)的標志。“弱標志W”是表示從高速緩沖存儲器項目驅逐對象的標志,當發(fā)生高速緩沖存儲器錯誤時,弱標志W優(yōu)先從1的高速緩沖存儲器項目驅逐數據。
通路1~3也與通路0相同。由集索引(SI)的4位通過解碼器20選擇跨4通路的4個高速緩沖存儲器項目被稱為“集”。
比較器22a對地址寄存器10中的標簽地址與由集索引(SI)所選擇的集中所包含的4個標志中的通路0標簽是否一致進行比較。對于比較器22b~22c,除了對應于通路21b~21d之外也是相同的。
AND電路23a對有效標志V與比較器22a的比較結果進行比較,檢查兩者是否一致。設該比較結果為h0。當比較結果h0為1時,意味著存在地址寄存器10中的標簽地址及集索引(SI)所對應的行數據、即在通路0中找到了(hit)。而比較結果h0為0時,意味著未找到(mishit)。對于AND電路23b~23d,除了對應通路21b~21d之外也是相同的。該比較結果h1~h3意味著在通路1~3中是找到了還是未找到。
OR電路24是取比較結果h0~h3的“邏輯和”。以該“邏輯和”作為尋找(hit)的尋找,表示是否在高速緩沖存儲器3中找到了。
選擇器25在所選擇的集中的通路0~3的行數據中,選擇找到了通路的行數據。
信號分離器26在高速緩沖存儲器項目寫入數據時,輸出通路0~3之一的寫入數據。
圖4是表示在圖1所示的計算機系統(tǒng)的處理器1中執(zhí)行的開發(fā)機器語言程序的程序開發(fā)系統(tǒng)30結構的方框圖。程序開發(fā)系統(tǒng)30包括調試器(debugger)31、模擬器(simulator)32、評測器(profiler)33、及編譯系統(tǒng)34。程序開發(fā)系統(tǒng)30的各構成處理部作為在計算機(未圖示)上執(zhí)行的程序而被實現(xiàn)。
編譯系統(tǒng)34是用于讀入源程序44及系統(tǒng)級提示信息41、并向機器語言程序43a變換的程序。編譯系統(tǒng)34生成機器語言程序43a,并輸出作為與該程序有關的信息的任務信息42a。關于編譯系統(tǒng)34的詳細內容將在后面敘述。
調試器31是為了特定在編譯系統(tǒng)34中的源程序44編譯時發(fā)現(xiàn)的錯誤位置及原因,以及檢查程序執(zhí)行狀況的程序。
模擬器32是虛擬執(zhí)行機器語言程序的程序,執(zhí)行時的信息作為執(zhí)行日志信息40輸出。模擬器32在其內部具有使高速緩沖存儲器3的找到及未找到等模擬結果包含在執(zhí)行日志信息40中輸出的高速緩沖存儲器用模擬器38。
評測器33是對執(zhí)行日志信息40進行分析,并將編譯系統(tǒng)34中優(yōu)化等的提示的信息,輸出給系統(tǒng)級提示信息41的程序。
系統(tǒng)級提示信息41用于收集編譯系統(tǒng)34中優(yōu)化的提示的信息,其構成包括評測器33的分析結果、程序員對編譯系統(tǒng)41的指示(例如,實用、編譯選項(compile option)、編入函數)、及有關源程序44的任務信息42a及有關與源程序44不同的其他源程序的任務信息42b。
關于該軟件開發(fā)系統(tǒng)30對于計算機系統(tǒng)執(zhí)行的多個任務,可以采用調試器31、模擬器32及評測器33進行信息分析,可以將有關由計算機系統(tǒng)執(zhí)行的多個任務的信息作為系統(tǒng)級提示信息41,輸入到編譯系統(tǒng)34中。而編譯系統(tǒng)34本身也加到機器語言程序43a中,輸出與成為系統(tǒng)級提示信息41一部分的編譯對象任務有關的任務信息42a。
圖5是表示編譯系統(tǒng)34的結構的功能方框圖。該編譯系統(tǒng)是將C語言或C++語言等高級語言描述的源程序44變換成將上述處理器1作為對象處理器的機器語言程序43a的交叉編譯系統(tǒng)(cross compiler system),由在個人計算機等計算機上執(zhí)行的程序來實現(xiàn),大體由編譯器35、匯編器36、及連接器37構成。
編譯器35由解析部50、中間代碼變換部51、系統(tǒng)級優(yōu)化部52、及代碼生成部53構成。
解析部50是對編譯對象的源程序44抽出保留字(關鍵字)等、進行詞法分析及語法分析的處理部。
中間代碼變換部51是將從解析部50傳遞的源程序44的各語句(statement)按一定規(guī)則變換成中間代碼的處理部。
系統(tǒng)級優(yōu)化部52是對于從中間代碼變換部51輸出的中間代碼進行冗余去除、改變指令排列、寄存器分配等的處理,由此進行執(zhí)行速度提高及代碼尺寸削減等的處理部,除了通常的優(yōu)化處理,還包括根據所輸出的系統(tǒng)級提示信息41,進行本編譯器35特有的優(yōu)化的高速緩存行調整部55及配置集信息設定部56。關于高速緩存行調整部55及配置集信息設定部56的處理將在后面敘述。系統(tǒng)級優(yōu)化部52對與數據配置有關的信息等、其他源程序進行編譯時,以及對該源程序進行再編譯時,將成為提示的信息作為任務信息42a進行輸出。
代碼生成部53對于從系統(tǒng)級優(yōu)化部52輸出的中間代碼,參照內部保持的變換表等,來將全部代碼置換成機器語言指令,生成匯編程序45。
匯編器36對于從編譯器35輸出的匯編程序45,參照內部保持的變換表等,來將全部代碼置換成二進制形式的機器語言代碼,生成目標文件46。
連接器37對于從匯編器36輸出的多個目標文件46,確定未解決的數據的地址配置等而進行連接,由此生成機器語言程序43a。連接器37除了通常的連接處理,還具有根據輸入的系統(tǒng)級提示信息41等進行本連接器37特有的優(yōu)化的系統(tǒng)級優(yōu)化部57。系統(tǒng)級優(yōu)化部57包括數據配置確定部58。對于數據配置確定部58的處理將在后面敘述。連接器37,與機器語言程序43a一起,對有關數據配置的信息等、及其他源程序進行編譯時,及對該源程序進行再編譯時,將成為提示的信息輸出給任務信息42a。
在編譯系統(tǒng)34中,特別力求削減高速緩沖存儲器3中的高速緩沖存儲錯誤。高速緩沖存儲錯誤大體可分為(1)初始錯誤、(2)容量性錯誤、及(3)競爭性錯誤3種。
“初始錯誤”是指最初對目標(主存儲器2中所存儲的數據或指令)進行存取時,由于該目標未存儲在高速緩沖存儲器3中而引起的未找到?!叭萘啃藻e誤”是指由于一次要處理大量的目標,而未能將這些目標一次存入高速緩沖存儲器3中引起的未找到。“競爭性錯誤”是指不同的目標要同時使用高速緩沖存儲器3中的高速緩沖存儲器項目,而相互從高速緩沖存儲器項目進行沖突所產生的未找到。在編譯系統(tǒng)34中,對于在系統(tǒng)級引起最嚴重的性能惡化的“競爭性錯誤”實施對策。
下面,以具體的例子,對以上那樣構成的編譯系統(tǒng)34的特征操作進行說明。
圖6是用于說明配置集信息設定部56及數據配置確定部58的有關數據配置的優(yōu)化處理的概要的圖。圖6(a)表示了在各任務或各文件中頻繁存取的變量(變量A~F)。此處,為了簡單起見,設各變量的數據量為高速緩沖存儲器3的行數據量,即為128字節(jié)的倍數。在編譯系統(tǒng)34中,使這些變量集中映射到高速緩沖存儲器3上的同一集中,確定變量的配置地址、集,以使之不引起顛簸(thrashing)(沖突)。在圖6的例子中,如圖6(c)所示,計算機系統(tǒng)中的重要數據(任務A的變量A、任務B的變量D及任務C的變量F)已集中映射到高速緩沖存儲器3的同一集的集1中了。因此,有可能引起顛簸。致力于通過優(yōu)化避免這種情況。下面對編譯系統(tǒng)34的各優(yōu)化處理的內容進行說明。
圖7是表示編譯器35的系統(tǒng)級優(yōu)化部52的高速緩存行調整部55處理內容的流程圖。
高速緩存行調整部55是使后面的優(yōu)化有效地發(fā)揮功能而進行各種調整處理的部分,首先根據系統(tǒng)級提示信息41,抽出應考慮編譯對象內的配置的重要數據(步驟S11)。實際上是抽出發(fā)生評測器33或用戶指示的顛簸的數據或存取頻率高的數據。關于系統(tǒng)級提示信息41的具體例子將在后面敘述,系統(tǒng)級提示信息41中所包含的數據作為“重要數據”處理。
然后,高速緩存行調整部55,對于步驟S11中所抽出的數據,在數據中設定調節(jié)(align)信息,以使該數據占的行數變小(步驟12)。由于保持該調節(jié)信息、連接器37確定最終的該數據的配置地址,因此在此調整的占有行數被保持。
圖8是表示調節(jié)信息的一例的圖,例如,任務A數據的變量A表示應以128字節(jié)單位進行調節(jié)配置的數據。
最后,高速緩存行調整部55,對于包含抽出數據的循環(huán),根據需要重新構成循環(huán)使各迭代的處理變?yōu)樾袨閱挝?步驟S13)。具體來說,對于在循環(huán)內的重要數據的處理數據量超過3行的循環(huán),對循環(huán)的迭代進行分割,重新構成循環(huán),以使之成為進行1行處理的內循環(huán)及按該單位重復的外循環(huán)的雙重循環(huán)結構。具體的變換轉換(image)如圖9中所示。圖8中所示的調節(jié)信息,由于變量A(數組A)應是按每128字節(jié)(1行大小)進行調節(jié)的,所以要向雙重循環(huán)進行結構變換。該處理是為了防止在將循環(huán)處理分割成多個線程時,各線程處理的數據跨過行的邊界,而降低高速緩沖存儲器利用效率而進行的。即將對圖9(a)所示的4行(=4×128字節(jié))的數據(數組A)進行處理的循環(huán)處理,結構變換成如圖9(b)所示,通過將數據A按各1行(=128字節(jié))進行調節(jié),對1行的數據進行循環(huán)處理的循環(huán)處理。
圖10是表示編譯器35的系統(tǒng)級優(yōu)化部52的配置集信息設定部56處理內容的流程圖。
在配置集信息設定部56中,首先從系統(tǒng)級提示信息41輸入包括編譯對象任務以外的任務的各重要數據的實際配置地址及配置集信息(步驟S21)。圖11是表示根據圖6中所示的數據配置作成的配置集信息的一例,由“任務名”、“數據名”、及“集序號”構成。例如,任務A的變量A表示在高速緩沖存儲器3上配置在集序號1中。圖12是表示重要數據的實際配置地址的一例,由“任務名”、“數據名”、及主存儲器3上的“實際配置地址”構成。例如,任務名G的變量H表示配置在主存儲器3的0xFFE87地址中。
然后,配置集信息設定部56,對于在步驟S21輸入的是實際配置地址的數據,求出在高速緩沖存儲器3上配置的集,作成系統(tǒng)整體的集配置狀況數據(步驟S22)。該集配置狀況數據表示對高速緩沖存儲器的各集、系統(tǒng)內的重要數據進行了多少行的映射。圖13是表示根據圖6中所示的數據配置作成的集配置狀況數據的一例的圖,表示了“集序號”、及在該集序號的集上映射的數據“行數”。例如,表示了在集0中映射1行的數據,而在集1中映射3行的數據。
最后,配置集信息設定部56確定由上述高速緩存行調整部55抽出的編譯對象內的重要數據的配置集,以使計算機系統(tǒng)整體的重要數據在映射的集中不產生偏離而是均等的,將該屬性附加在數據中,并且也將該信息輸出給任務信息42a(步驟S23)。該任務信息42a可在其他編譯單位的編譯中確定數據配置時進行參照。另外,在數據中附加的屬性可在OS等的任務調度時進行參照。
圖14是表示連接器37的系統(tǒng)級優(yōu)化部57的數據配置確定部58處理內容的流程圖。
在數據配置確定部58中,首先從系統(tǒng)級提示信息41抽出在對象任務中應考慮配置的重要數據(步驟S31)。實際上是抽出發(fā)生評測器33或用戶所指示的顛簸的數據、或存取頻率高的數據。該處理是與步驟S11同樣的處理。
數據配置確定部58從系統(tǒng)級提示信息41輸入也包括對象任務以外任務的各重要數據的實際配置地址及配置集信息(步驟S32)。該處理是與步驟S21同樣的處理。
然后,數據配置確定部58從在步驟S32輸入的實際配置地址及輸入到連接器37的目標文件46的實際配置地址,求出各數據所配置的高速緩沖存儲器3的集,作成計算機系統(tǒng)整體的集配置狀況數據(步驟S33)。該集配置狀況數據表示對于高速緩沖存儲器的各集、系統(tǒng)內的重要數據進行了多少行的映射。集配置狀況數據與圖13中所示的相同。
最后,配置集信息確定部58確定由步驟S31抽出的對象任務內的重要數據的實際配置地址,以使計算機系統(tǒng)整體的重要數據在所映射的集中不產生偏離而是均等的,并且也將該信息輸出給任務信息42a(步驟S34)。該任務信息42a可在其他任務的編譯中確定數據配置時進行參照。即,如圖13中所示的集配置狀況數據的集1那樣,在集中進行數據映射時,對行數最少的行(例如集3及集4)等重新映射換數據,由此重新確定實際配置地址。
這樣,在編譯系統(tǒng)34中,也包含編譯對象任務以外的任務信息、作為提示信息進行輸入,確定數據配置,以使重要數據向高速緩沖存儲器的集的映射不偏離,由此可以防止因顛簸而產生的性能降低。
(實施方式2)圖15是表示本發(fā)明的實施方式2所涉及的編譯系統(tǒng)作為對象的計算機系統(tǒng)硬件結構的方框圖。計算機系統(tǒng)包括3個處理器(61a~61c)、各自具有的本地高速緩沖存儲器(63a~63c)、及共用存儲器62。具有本地高速緩沖存儲器的3個處理器,通過總線64連接到共用存儲器62上。
關于處理器61a~61c的各操作與實施方式1中所述的相同,共用存儲器62的操作與實施方式1中所述的主存儲器2相同。計算機系統(tǒng)內的各程序或線程通過操作系統(tǒng)進行調度,以使在上述3個處理器61a~61c上并行執(zhí)行??蓪⑤斎氲皆摬僮飨到y(tǒng)的任務調度的提示信息,作為編譯系統(tǒng)嵌入機器語言程序中。具體來說附加了希望各任務及線程分配給某個處理器、還是希望將某個任務及線程一同分配給相同的處理器的提示信息。
各本地高速緩沖存儲器63a~63c,除了實施方式1所述的高速緩沖存儲器3的、保持主存儲器2的內容并可以高速存取的功能,還具有保持數據一貫性的功能。該功能可使多個本地高速緩沖存儲器63a~63c保持共用存儲器62的同一地址的數據,避免各自獨立更新產生的誤操作。具體來說,本地高速緩沖存儲器63a~63c具有監(jiān)視總線64及其他本地高速緩沖存儲器63a~63c的狀態(tài)的功能,當與自己保持的數據相同地址的數據在其他本地高速緩沖存儲器63a~63c上進行更新時,使自己保持的數據無效,由此來維持一貫性。
通過該機構可以維持數據的一貫性,但是當頻繁產生數據無效化時,在性能方面將產生大幅度惡化。從而,在程序開發(fā)系統(tǒng)中也考慮這一點,以提高高速緩沖存儲器63a~63c的利用效率。
程序開發(fā)系統(tǒng)的結構與實施方式1中圖4所示的程序開發(fā)系統(tǒng)30的結構相同。但是,采用了以下說明的編譯系統(tǒng)74,以代替編譯系統(tǒng)34。
圖16是表示程序開發(fā)系統(tǒng)內編譯系統(tǒng)74結構的功能方框圖。由于幾乎所有部分都與實施方式1中圖5所示的編譯系統(tǒng)34的結構圖相同,故以下只對不同的部分進行說明。
編譯系統(tǒng)74采用編譯器75代替編譯系統(tǒng)34中的編譯器35,采用連接器77代替連接器37。
編譯器75采用系統(tǒng)級優(yōu)化部82代替編譯器35的系統(tǒng)級優(yōu)化部52。系統(tǒng)級優(yōu)化部82在系統(tǒng)級優(yōu)化部52中增加了處理器序號提示信息設定部86,并且采用配置集信息設定部86代替配置集信息設定部56。關于高速緩存行調整部55的操作,與實施方式1中說明的相同。
連接器77采用系統(tǒng)級優(yōu)化部77代替連接器37的系統(tǒng)級優(yōu)化部57。系統(tǒng)級優(yōu)化部77在系統(tǒng)級優(yōu)化部57中增加了處理器序號信息設定部89,并采用數據配置確定部88代替數據配置確定部58。
圖17是表示處理器序號提示信息設定部85處理內容的流程圖。
在處理器序號提示信息設定部85中,首先根據系統(tǒng)級提示信息41,抽出應考慮線程及任務中的數據配置的重要數據(步驟S41)。實際上是抽出發(fā)生評測器33或用戶所指示的顛簸的數據、或存取頻率高的數據。
處理器序號提示信息設定部85從系統(tǒng)級提示信息41中輸入也包括編譯對象任務以外任務的各重要數據的實際配置地址、配置集信息、及各任務的處理器序號提示信息(步驟S42)。
然后,處理器序號提示信息設定部85對每個處理器序號進行各重要數據的分類,并作成作為系統(tǒng)整體的處理器分配狀況數據(步驟S43)。該處理器分配狀況數據表示指示了對各處理器分配哪個地址及集的重要數據。例如,圖18中所示的數據。
最后,處理器序號提示信息設定部85對于在步驟S41抽出的各數據所屬的線程及任務,考慮上述處理器分配狀況數據,確定該線程及任務的處理器序號提示,以使之對同一地址的數據分配到同一處理器,并在映射到同一處理器的同一集中的數據不產生偏離而是均等的,附加該屬性,并且也將該信息輸出到任務信息42a(步驟S44)。該任務信息42a可在其他編譯單位的編譯中確定數據配置及處理器序號時進行參照。
圖19是表示配置集信息設定部86處理內容的流程圖。
在配置集信息設定部86中,首先從系統(tǒng)級提示信息41輸入也包括編譯對象任務以外的任務的各重要數據的實際配置地址、配置集信息、及處理器序號信息(步驟S51)。
然后,配置集信息設定部86對于由上述處理器序號提示信息設定部85抽出的該線程及任務的重要數據,檢查同一地址的數據是否分配給了3個以上的處理器,如果是,則在該數據中附加不可高速緩沖存儲區(qū)域的屬性,并將該信息也輸出給任務信息42a(步驟S52)?!安豢筛咚倬彌_存儲區(qū)域”是指該區(qū)域內的數據不被傳輸給本地高速緩沖存儲器63a~63c的、共用存儲器62內的區(qū)域。步驟52的處理是為了使重要數據被拷貝到多個本地高速緩沖存儲器中、維持數據一貫性的附加(overhead)處理,由此為防止性能惡化而實施的。
以后的處理按每個處理器序號實施。對于未給予處理器序號的數據,作為分配給一個處理器處理、執(zhí)行處理。即當在步驟S51所輸入的信息是實際配置地址時,配置集信息設定部86求出配置在該地址的數據所配置的本地高速緩沖存儲器上的集,作成該處理器整體的集配置狀況數據(步驟S53)。該集配置狀況數據表示對高速緩沖存儲器的各集、該處理器內的重要數據被映射了幾行。即,與圖13中所示的相同。
最后,配置集信息設定部86確定由上述處理器序號提示信息設定部85抽出的編譯對象內的重要數據的配置集,以使該處理器整體的重要數據在所映射的集中不產生偏離而是均等的,將該屬性附加在數據中,并且也將該信息輸出給任務信息42a(步驟S54)。該任務信息42a可在其他編譯單位的編譯中確定數據配置及處理器序號時進行參照。
圖20是表示處理器序號信息設定部89處理內容的流程圖。
在處理器序號信息設定部89中,首先根據系統(tǒng)級提示信息41,抽出應考慮線程及任務中的數據配置的重要數據(步驟S61)。實際上是抽出發(fā)生評測器33或用戶所指示的顛簸的數據、或存取頻率高的數據。
處理器序號信息設定部89從系統(tǒng)級提示信息41輸入也包括編譯對象任務以外任務的各重要數據的實際配置地址、配置集信息、及各任務的處理器序號提示信息(步驟S62)。
然后,處理器序號信息設定部89對每個處理器序號進行各重要數據的分類,并作成系統(tǒng)整體的處i器分配狀況數據(步驟S63)。該處理器分配狀況數據表示對各處理器指示了分配哪個地址及集的重要數據。例如,圖18中所示的數據。
最后,處理器序號信息設定部89對于在步驟S61抽出的各數據所屬的線程及任務,考慮上述處理器分配狀況數據,確定該線程及任務的處理器序號,以使之對同一地址的數據分配到相同的處理器,并使映射到同一處理器的同一集中的數據不產生偏離而是均等的,附加該屬性,并且也將該信息輸出到任務信息42a(步驟S64)。該任務信息42a,可在其他編譯單位的編譯中確定數據配置及處理器序號時進行參照。另外,OS或硬件調度器通過查看附加在任務中的屬性信息,可以將任務分配給處理器,進行任務調度。
圖21是表示數據配置確定部88處理內容的流程圖。
在數據配置確定部88中,首先從系統(tǒng)級提示信息41輸入也包括編譯對象任務以外的任務的各重要數據的實際配置地址、配置集信息、及處理器序號信息(步驟S71)。
然后,數據配置確定部88對于由上述處理器序號信息設定部89抽出的線程及任務的重要數據,檢查同一地址的數據是否分配給了3個以上的處理器,如果是,則在該數據中附加不可高速緩沖存儲區(qū)域的屬性,并將該信息也輸出給任務信息42a(步驟S72)。該處理是為了使重要數據拷貝到多個本地高速緩沖存儲器中、維持一貫性的附加處理,由此為防止性能惡化而實施的。
以后的處理按每個處理器序號實施。對于未給予處理器序號的數據,作為分配給一個處理器處理,執(zhí)行處理。數據配置確定部88從步驟S71所輸入的實際配置地址及所輸入的目標文件的實際配置地址,求出各自被配置的集,作成該處理器整體的集配置狀況數據(步驟S73)。該集配置狀況數據表示對高速緩沖存儲器的各集、該處理器內的重要數據被映射了幾行。
最后,配置集信息確定部88確定由上述處理器序號信息設定部89抽出的編譯對象內的重要數據的實際配置地址,以使該處理器整體的重要數據在所映射的集中不產生偏離而是均等的,并且也將該信息輸出給任務信息42a(步驟S74)。該任務信息42a可在其他編譯單位的編譯中確定數據配置及處理器序號時進行參照。
如以上所述,在編譯系統(tǒng)74中,也包含編譯對象任務以外的任務信息、作為提示信息進行輸入,確定數據配置,以使之在多處理器中同一數據不分散到多個處理器的本地高速緩沖存儲器中,且向各本地高速緩沖存儲器的集的映射不偏離,由此可以防止因顛簸而產生性能降低。
作為補充說明,在以上說明的實施方式中,對于編譯系統(tǒng)輸入的系統(tǒng)級提示信息文件的一例如圖22中所示。
如圖22中所示,在編譯系統(tǒng)中作為用于確定數據配置及處理器序號的信息,對于系統(tǒng)內的各任務及其包含的各線程,與在該時刻分配處理器ID一起,如果確定為重要的數據名稱,則可以指定該地址及集序號。例如,由<TaskInfo>及</TaskInfo>所包圍的部分表示對1個任務的任務信息,而由<ThreadInfo>及</ThreadInfo>所包圍的部分表示對1個線程的線程信息。另外,由<VariableInfo>及</VariableInfo>所包圍的部分對應于上述一個重要數據,其中包括實際地址信息、及處理器序號等的信息。該提示信息如圖4的程序開發(fā)系統(tǒng)結構圖中所示,包括從評測器33自動生成的信息、從編譯系統(tǒng)自動生成的信息、及程序員描述的信息。
以上,通過實施方式對本發(fā)明所涉及的程序開發(fā)方法及編譯系統(tǒng)進行了說明,但是本發(fā)明并不限于這些實施方式。即,(1)在上述實施方式中,作為系統(tǒng)級提示信息的賦予方是假定以文件進行輸入的,但是并不限于文件輸入,采用以編譯選項指定的方法、在源文件內增加實用指示的方法、及在源文件內增加表示指示內容的編入函數的方法,也可以實現(xiàn)本發(fā)明的效果。
(2)在上述實施方式中,是假定在編譯系統(tǒng)中進行靜態(tài)優(yōu)化,但是如圖23中所示,也可以在存儲器中裝入有程序及數據的載入器90中安裝本發(fā)明的機構。這時載入器90讀入各機器語言程序43及系統(tǒng)級提示信息92,附加處理器序號提示信息,并且確定重要數據的配置地址,據此在主存儲器91中配置數據。這樣的結構也可以實現(xiàn)本發(fā)明的效果。
(3)在上述實施方式中,分別表示了實施方式1中所示的單處理器用的編譯系統(tǒng)、及實施方式2中所示的多處理器用編譯系統(tǒng),但是這些并不一定是獨立的。也可以用一個編譯系統(tǒng)對應于單處理器及多處理器兩種情況。這時,可以通過以編譯選項及提示信息的形式將有關對象處理器的信息賦予編譯系統(tǒng)來實現(xiàn),。
(4)在上述實施方式2中,是以共用存儲器型的多處理器為對象的,但是本發(fā)明并不限定該多處理器及高速緩沖存儲器的結構。在不具有集中共用存儲器的分散共用存儲器型等結構的多處理器系統(tǒng)中,本發(fā)明也具有意義。
(5)在上述實施方式2中,是假設OS根據處理器序號提示信息在各處理器中對任務及線程進行調度的,但是也不一定需要OS的存在。也可以在代替OS而裝有由硬件實施調度的調度器的系統(tǒng)中,實現(xiàn)本發(fā)明的效果。
(6)在上述實施方式2中,是假設由實際處理器構成的多處理器系統(tǒng),但是也不一定是實際處理器。例如,在使單處理器進行分時操作、而作為虛擬多處理器工作的系統(tǒng)、及在具有多個這種虛擬多處理器的多處理器系統(tǒng)中,本發(fā)明也具有意義。
產業(yè)上利用的可能性本發(fā)明可以適用于編譯系統(tǒng)、特別是可以適用于以執(zhí)行多任務的系統(tǒng)為對象的編譯系統(tǒng)等中。
權利要求
1.一種程序變換方法,將由高級語言描述的源程序變換成機器語言程序,其特征在于,包括解析步驟,對上述源程序進行詞法分析和語法分析;中間代碼變換步驟,根據上述解析步驟的分析結果,將上述源程序變換成中間代碼;提示信息接受步驟,接受用于提高上述機器語言程序執(zhí)行效率的提示信息;優(yōu)化步驟,根據上述提示信息,對上述中間代碼進行優(yōu)化;以及機器語言程序變換步驟將優(yōu)化后的上述中間代碼變換成機器語言程序,在上述提示信息中,包含與成為變換對象的上述源程序所對應的執(zhí)行對象以外的執(zhí)行對象有關的信息。
2.如權利要求1所述的程序變換方法,其特征在于在上述提示信息中,包含表示還含有與變換對象相對應的執(zhí)行對象以外的執(zhí)行對象、而應作為優(yōu)化對象的數據的信息;上述優(yōu)化步驟,包括根據上述提示信息,對作為優(yōu)化對象的數據,進行可有效使用高速緩沖存儲器的調整的高速緩存行調整步驟。
3.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟包括高速緩存行調整步驟,該高速緩存行調整步驟根據上述提示信息,對作為優(yōu)化對象的數據,進行可有效使用高速緩沖存儲器的調整;上述高速緩存行調整步驟中,對作為優(yōu)化對象的數據調整數據配置,以使該數據所占的高速緩沖存儲器上的行數減少。
4.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟包括高速緩存行調整步驟,該高速緩存行調整步驟根據上述提示信息,對作為優(yōu)化對象的數據,進行可有效使用高速緩沖存儲器的調整;上述高速緩存行調整步驟中,對于包括作為優(yōu)化對象的數據的循環(huán)進行循環(huán)分割,以便在該循環(huán)的迭代中,可以以高速緩沖存儲器的行為單位對該數據進行存取。
5.如權利要求1所述的程序變換方法,其特征在于在上述提示信息中,包含與也包括與變換對象相對應的執(zhí)行對象以外的執(zhí)行對象、而應作為優(yōu)化對象數據的實際配置地址有關的信息;上述優(yōu)化步驟,包括根據上述提示信息,設定與作為優(yōu)化對象的數據在高速緩沖存儲器上所配置的集有關的信息的配置集信息設定步驟。
6.如權利要求1所述的程序變換方法,其特征在于在上述提示信息中,包含表示還包括與變換對象相對應的執(zhí)行對象以外的執(zhí)行對象、而作為優(yōu)化對象的數據被配置在高速緩沖存儲器的某個集中的信息;上述優(yōu)化步驟包括配置集信息設定步驟,該配置集信息設定步驟根據上述提示信息,設定與作為優(yōu)化對象的數據在高速緩沖存儲器上所配置的集有關的信息。
7.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟包括配置集信息設定步驟,該配置集信息設定步驟根據上述提示信息,設定與作為優(yōu)化對象的數據在高速緩沖存儲器上所配置的集有關的信息;上述配置集信息設定步驟中,根據上述提示信息,確定作為優(yōu)化對象的數據被配置在高速緩沖存儲器的某個集中,從而不會產生因上述提示信息所指定的數據被配置在高速緩沖存儲器上的同一個集中而相互沖突的情況。
8.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟包括配置集信息設定步驟,該配置集信息設定步驟根據上述提示信息,設定與作為優(yōu)化對象的數據在高速緩沖存儲器上所配置的集有關的信息;上述配置集信息設定步驟中,根據上述提示信息,確定作為變換對象的執(zhí)行對象中所包含的數據配置,以使映射到高速緩沖存儲器的各集中的數據數均等。
9.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟,包括配置集信息設定步驟,根據上述提示信息,設定與作為優(yōu)化對象的數據在高速緩沖存儲器上所配置的集有關的信息;以及提示信息輸出步驟,將由上述配置集信息設定步驟所確定的配置信息作為提示信息輸出。
10.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟包括配置集信息設定步驟,該配置集信息設定步驟根據上述提示信息,設定與作為優(yōu)化對象的數據在高速緩沖存儲器上所配置的集有關的信息;上述配置集信息設定步驟中,根據上述提示信息,在由上述提示信息所指定的數據中,對于分配給預定數量以上的處理器的數據,確定將該數據配置在不被分配給高速緩沖存儲器的主存儲器上的區(qū)域。
11.如權利要求1所述的程序變換方法,其特征在于在上述提示信息中,包含表示還包括與變換對象相對應的執(zhí)行對象以外的執(zhí)行對象、而各執(zhí)行對象被分配在某個處理器的信息;上述優(yōu)化步驟包括配置集信息設定步驟,該配置集信息設定步驟根據上述提示信息,設定與作為優(yōu)化對象的數據在高速緩沖存儲器上所配置的集有關的信息。
12.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟包括處理器分配步驟,該處理器分配步驟根據上述提示信息,將作為變換對象的上述執(zhí)行對象分配給該執(zhí)行對象被執(zhí)行的某個處理器;上述處理器分配步驟中,根據上述提示信息,將上述執(zhí)行對象分配給該執(zhí)行對象被執(zhí)行的某個處理器,以便不會產生因上述提示信息所指定的數據被配置在高速緩沖存儲器上的同一個集中而相互沖突的情況、或同一數據被分散配置在多個處理器中的情況。
13.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟包括處理器分配步驟,該處理器分配步驟根據上述提示信息,將作為變換對象的上述執(zhí)行對象分配給執(zhí)行該執(zhí)行對象的某個處理器;上述處理器分配步驟中,根據上述提示信息,將上述執(zhí)行對象分配給執(zhí)行該執(zhí)行對象的某個處理器,以使映射到各處理器的本地高速緩沖存儲器各集中的數據數均等。
14.如權利要求1所述的程序變換方法,其特征在于上述優(yōu)化步驟,包括處理器分配步驟,根據上述提示信息,將作為變換對象的上述執(zhí)行對象分配給執(zhí)行該執(zhí)行對象的某個處理器;以及提示信息輸出步驟,將與上述處理器分配步驟所確定的執(zhí)行對象的處理器分配有關的信息作為提示信息進行輸出。
15.一種程序變換方法,接受至少1個目標文件,將該目標文件變換成機器語言程序,其特征在于,包括提示信息接收步驟,接收用于提高上述機器語言程序執(zhí)行效率的提示信息;以及優(yōu)化步驟,根據上述提示信息,對上述目標文件進行優(yōu)化,且變換成上述機器語言程序;在上述提示信息中,包括與成為變換對象的上述至少1個目標文件所對應的執(zhí)行對象以外的執(zhí)行對象有關的信息,上述優(yōu)化步驟包括數據配置確定步驟,該數據配置確定步驟根據上述提示信息,確定作為優(yōu)化對象的上述目標文件所包含的數據的實際配置地址。
16.如權利要求15所述的程序變換方法,其特征在于在上述提示信息中,包含表示還包括與變換對象相對應的執(zhí)行對象以外的執(zhí)行對象、而應作為優(yōu)化對象的數據的信息。
17.如權利要求15所述的程序變換方法,其特征在于在上述提示信息中,包含與還包括與變換對象相對應的執(zhí)行對象以外的執(zhí)行對象、而應作為優(yōu)化對象的數據的實際配置地址有關的信息。
18.如權利要求15所述的程序變換方法,其特征在于在上述提示信息中,包含表示還包括與變換對象相對應的執(zhí)行對象以外的執(zhí)行對象、而應作為優(yōu)化對象的數據配置在高速緩沖存儲器的哪個集中的信息。
19.如權利要求15所述的程序變換方法,其特征在于上述數據配置確定步驟中,根據上述提示信息,確定作為優(yōu)化對象的上述目標文件中所包含的數據的實際配置地址,從而不會產生因多個數據被配置在高速緩沖存儲器上的同一個集中而相互沖突的情況。
20.如權利要求15所述的程序變換方法,其特征在于上述數據配置確定步驟中,根據上述提示信息,確定應作為優(yōu)化對象的數據所配置的高速緩沖存儲器上的集,以使被映射到高速緩沖存儲器的各集中的數據數均等,并根據所確定的集,確定作為優(yōu)化對象的上述目標文件中所包含的數據的實際配置地址。
21.如權利要求15所述的程序變換方法,其特征在于上述優(yōu)化步驟還包括提示信息輸出步驟,該提示信息輸出步驟將與上述數據配置確定步驟所確定的實際配置地址有關的信息作為提示信息進行輸出。
22.如權利要求15所述的程序變換方法,其特征在于上述數據配置確定步驟中,根據上述提示信息,確定作為優(yōu)化對象的上述目標文件中所包含數據的實際配置地址,從而不會產生因上述提示信息所指定的數據被配置在高速緩沖存儲器上同一個集中而相互沖突的情況、或者同一數據被分散配置在多個處理器中的情況。
23.如權利要求15所述的程序變換方法,其特征在于上述數據配置確定步驟中,根據上述提示信息,確定作為優(yōu)化對象的上述目標文件中所包含的數據的實際配置地址,以使被映射到各處理器的本地高速緩沖存儲器各集中的數據數均等。
24.如權利要求15所述的程序變換方法,其特征在于上述數據配置確定步驟中,根據上述提示信息,在由上述提示信息指定、并包含在作為優(yōu)化對象的上述目標文件的數據中,對于分配給預定數量以上處理器的數據,確定該數據的實際配置地址,以使該數據配置在不被分配到高速緩沖存儲器的主存儲器上的區(qū)域。
25.如權利要求15所述的程序變換方法,其特征在于上述優(yōu)化步驟包括處理器分配步驟,該處理器分配步驟根據上述提示信息,將上述執(zhí)行對象分配給執(zhí)行該執(zhí)行對象的某個處理器。
26.如權利要求25所述的程序變換方法,其特征在于在上述提示信息中,包含表示還包括與變換對象相對應的執(zhí)行對象以外的執(zhí)行對象、而各執(zhí)行對象被分配在哪個處理器的信息。
27.如權利要求25所述的程序變換方法,其特征在于上述處理器分配步驟中,根據上述提示信息,將上述執(zhí)行對象分配給執(zhí)行該執(zhí)行對象的某個處理器,從而不會產生因上述提示信息所指定的數據被配置在高速緩沖存儲器上同一個集中而相互沖突的情況、或者同一數據被分散配置在多個處理器中的情況。
28.如權利要求25所述的程序變換方法,其特征在于上述處理器分配步驟中,根據上述提示信息,將上述執(zhí)行對象分配給執(zhí)行該執(zhí)行對象的某個處理器,以使被映射到各處理器的本地高速緩沖存儲器各集中的數據數均等。
29.如權利要求25所述的程序變換方法,其特征在于上述優(yōu)化步驟還包括提示信息輸出步驟,該提示信息輸出步驟將與上述處理器分配步驟所確定的執(zhí)行對象的處理器分配有關信息作為提示信息進行輸出。
30.一種程序開發(fā)系統(tǒng),其從源程序開發(fā)機器語言程序,其特征在于,包括編譯系統(tǒng);模擬器裝置,執(zhí)行由上述編譯系統(tǒng)所生成的機器語言程序,并輸出執(zhí)行日志;以及評測裝置,對由上述模擬器裝置所輸出的上述執(zhí)行日志進行分析,并對用于上述編譯系統(tǒng)中的優(yōu)化的執(zhí)行分析結果進行輸出,上述編譯系統(tǒng),是從源程序開發(fā)機器語言程序的編譯系統(tǒng),包括第1程序變換裝置,將由高級語言描述的源程序變換成第1機器語言程序;以及第2程序變換裝置,接受至少1個目標文件,并將該目標文件變換成第2機器語言程序,上述第1程序變換裝置,包括解析單元,對上述源程序進行詞法分析和語法分析;中間代碼變換單元,根據上述解析單元的分析結果,將上述源程序變換成中間代碼;第1提示信息接受單元,接受用于提高上述第1機器語言程序執(zhí)行效率的第1提示信息;第1優(yōu)化單元,根據上述第1提示信息,對上述中間代碼進行優(yōu)化;以及第1機器語言程序變換單元,將由上述第1優(yōu)化單元優(yōu)化后的上述中間代碼變換成第1機器語言程序,在上述第1提示信息中,包括與作為變換對象的上述源程序所對應的執(zhí)行對象以外的執(zhí)行對象有關的信息,上述第2程序變換裝置,包括第2提示信息接收單元,接收用于提高上述第2機器語言程序執(zhí)行效率的第2提示信息;以及第2優(yōu)化單元,根據上述第2提示信息,對上述目標文件進行優(yōu)化,且變換成上述第2機器語言程序,在上述第2提示信息中,包括與作為變換對象的上述至少1個目標文件所對應的執(zhí)行對象以外的執(zhí)行對象有關的信息。
31.如權利要求30所述的程序開發(fā)系統(tǒng),其特征在于在上述提示信息中,包括有上述編譯系統(tǒng)輸出的提示信息。
32.如權利要求30所述的程序開發(fā)系統(tǒng),其特征在于在上述提示信息中,包括有上述評測裝置輸出的上述執(zhí)行分析結果。
全文摘要
在系統(tǒng)軟件的開發(fā)中,提高計算機整體的執(zhí)行性能、且減少系統(tǒng)軟件開發(fā)工時的程序開發(fā)系統(tǒng),其具有編譯系統(tǒng)等。編譯系統(tǒng)是讀入源程序及系統(tǒng)級提示信息并變換成機器語言程序的程序,生成機器語言程序,并且輸出有關該程序信息的任務信息。系統(tǒng)級提示信息收集編譯系統(tǒng)中的優(yōu)化的提示的信息,由評測器的分析結果、程序員的指示、有關源程序的任務信息、及有關與源程序不同的其他源程序的任務信息構成。
文檔編號G06F9/45GK1834922SQ20061007180
公開日2006年9月20日 申請日期2006年3月16日 優(yōu)先權日2005年3月16日
發(fā)明者瓶子岳人, 濱田智雄 申請人:松下電器產業(yè)株式會社
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
丰台区| 盖州市| 静乐县| 罗江县| 昌图县| 甘谷县| 黑水县| 陵川县| 翁牛特旗| 乌鲁木齐市| 贵阳市| 贞丰县| 西贡区| 桓台县| 巩留县| 龙海市| 聂拉木县| 盐山县| 青河县| 西贡区| 扶绥县| 长兴县| 汉寿县| 泸西县| 琼海市| 山阴县| 曲靖市| 思茅市| 新龙县| 广水市| 深泽县| 平舆县| 南汇区| 台中市| 云林县| 乐亭县| 德江县| 类乌齐县| 苍溪县| 自治县| 上饶市|