説明

Fターム[5B081CC25]の内容

特別なプログラム実行装置 (1,497) | コンパイラ (1,025) | 最適化 (549) | レジスタ割付 (25)

Fターム[5B081CC25]の下位に属するFターム

Fターム[5B081CC25]に分類される特許

1 - 20 / 23


【課題】一側面として、ソースプログラムに含まれるループ構造に応じたSIMD化処理の処理量がループ構造の解析処理により増大することを抑制する。
【解決手段】ソース解析部35は、複数の命令を1個のSIMD命令に置き換えるSIMD化処理の候補として、処理対象の命令列から依存関係の無い複数の命令の組合せである第1の組合わせと第2の組み合わせを抽出し、抽出した第1の組み合わせと第2の組み合わせの各々についてSIMD化した場合の予測実行時間を算出する。最適化実行部36は、第1の組み合わせと第2の組み合わせのうち、算出部で算出された予測実行時間が短い組み合わせについてSIMD化を行なう。 (もっと読む)


【課題】入力データが変化しても処理の高速化を図れるようにする。
【解決手段】プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルを参照し、その変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的にレジスタに配置されるように、変数の配置先をレジスタ又はメモリに決定し、決定された変数の配置先を、変換テーブルに含まれる変数の配置先の情報に反映し、変換テーブルに含まれる変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、プロセッサコアが実行可能な命令コードに変換し、変換された命令コードをプロセッサコアが実行する際に使用される変数に応じて、変換テーブルに含まれる変数の使用頻度の情報を更新する。 (もっと読む)


【課題】メモリアクセスを削減する変換器及び変換方法を提供する。
【解決手段】本発明の変換器は、メモリからフェッチしたレジスタ形式のバイトコードを保持する保持部と、バイトコードの命令コードに対応したネイティブコードのひな形を格納する第1記憶部と、保持部からバイトコードを取り出し、第1記憶部に格納されているネイティブコードのひな形を用いて、当該バイトコードに対応する1または複数のネイティブコードを作成する命令作成部と、物理レジスタと、命令作成部が作成したネイティブコードにより当該物理レジスタに格納されたデータに対応するデータを格納するメモリ上のレジスタとの対応関係を示すデータを格納する第2記憶部と、を備え、命令作成部は、作成するネイティブコードが、第2記憶部に格納されたデータに含まれるメモリ上のレジスタに関するロード命令であると判定した場合、当該ネイティブコードの作成を省略することを特徴とする。 (もっと読む)


【課題】コンピュータ資源のパフォーマンス向上のために、メモリアクセスをレジスタアクセスに置き換える。
【解決手段】各レジスタの値が退避されるスタック領域内へのメモリアクセスをローカル変数アクセスに置換する。SPがエスケープしていないことを条件に、エスケープしていないSPを介したメモリアクセスをローカル変数アクセスに置換する。バイナリコード内に含まれるcall命令で呼ばれるコードをインラインすることに応じて、各コール命令及びインラインされたコードにcall番号を付与し、SPがエスケープしていた場合に、エスケープしたSPをベースアドレスとするメモリアクセスのうち、エスケープを引き起こした命令に付与されたcall番号と、該call番号の祖先のcall番号とに属しているメモリアクセスのローカル変数アクセスへの置換を禁止し、一方、残りの禁止しなかったメモリアクセスをローカル変数アクセスに置換する。 (もっと読む)


【課題】別個にコンパイルされたコーラ・ルーチンからパラメータを転送し、複数のインタフェースを介して、別個にコンパイルされたコーリー・ルーチンがパラメータを受け取ることを可能にする。
【解決手段】インタフェースは、規則によるインタフェース、及び別のインタフェースを含み得る。コーラ・ルーチンは、別のインタフェースを介してパラメータを転送し、コーリー・ルーチンの別のエントリ・ポイントに対してコールする。関連付けられたスタブ・ルーチンは、規則によるインタフェースを介してパラメータを転送し、コーリー・ルーチンの通常のエントリ・ポイントに対してコールする。コーリー・ルーチンが対応する別のエントリ・ポイントを含んでいる場合、コーラ・ルーチンは別のエントリ・ポイントにリンクする。さもなければ、コーリー・ルーチンは、スタブ・ルーチンを介してコーリー・ルーチンにリンクする。 (もっと読む)


【課題】 コンパイル装置およびコンパイルプログラムに関し、複数の演算器を使っての演算処理の高速化を図る。
【解決手段】 ソースコード内に記述されたループを複数の命令群にアンローリングし、複数のレジスタを複数のレジスタ群にグループ分けしたときの各1つのレジスタ群を複数の命令群それぞれに割り当て、複数の命令群それぞれについて、1つの命令群に出現する変数のうちの複数の命令群に共通に使用される共通変数を除く個別変数の全てをその1つの命令群に割り当てられた1つのレジスタ群を構成するレジスタのみに割り付ける。 (もっと読む)


【課題】転送命令の生成を低減するプログラム変換装置を提供する。
【解決手段】プログラム変換装置は、ソースプログラムをオブジェクトプログラムに変換するプログラム変換装置であって、実レジスタの代わりに仮想レジスタより記述されたプログラム部分を含むソースプログラムをメモリに記憶し、プログラム部分を跨ぐ生存区間を有する変数を検出し(ステップc2)、検出された変数に対して実レジスタを割り当てた場合の得失値を実レジスタ毎に算出し(ステップc3)、前記得失値が最小の実レジスタを前記仮想レジスタに割り当てる(ステップc4)。 (もっと読む)


【課題】プログラムの実行時間を短縮する。
【解決手段】複数あるベクトルレジスタ12への割当が指示された配列を、ベクトルレジスタ12のそれぞれの記憶領域に応じて分割し、分割した配列の記憶領域をそれぞれ異なるベクトルレジスタ12に割り当てるステップと、配列が割り当てられたベクトルレジスタ12のレジスタ番号をインデックスレジスタ15にセットするコードを生成するステップと、ベクトルレジスタ12に割り当てられた配列に対してインデックスレジスタ15を用いてアクセスするコードを生成するステップと、を含む。 (もっと読む)


【課題】メモリアクセス命令のベクトル化は、メモリのバンド幅を増やすことを目的として、2つ又はそれ以上のメモリアクセス命令を1つのシングルメモリアクセス命令に結合し、長いメモリアクセス待ち時間を持つコンピュータデバイスの性能を高める。
【解決手段】最小データアクセス単位(MDAU)より小さい読み出し又は書き込みの複数のメモリアクセス命令を、複数の最小データアクセス単位を読み出す又は書き込む複数のメモリアクセス命令に変換する段階102と、複数のメモリアクセス命令をベースアドレスにオフセットを加算する形式に変換する段階104と、変換された複数のメモリアクセス命令の複数のサブセットを複数のパーティションにグループ化する段階106と、複数の命令パターンとマッチする複数のサブセット内の複数の変換されたメモリアクセス命令をベクトル化する段階108とを備える。 (もっと読む)


【課題】callee−saveレジスタの回復コードでpop命令を用いながら、不要な回復コードを削減する。
【解決手段】関数出口において回復不要なレジスタを検出し、回復不要なレジスタを考慮してcallee−saveレジスタの退避順序と回復順序を決定し、回復不要なレジスタの回復コードを生成せず、回復不要になったレジスタの合計サイズをスタックレジスタの更新サイズに反映させる機能を有する。 (もっと読む)


【課題】プログラム全体の最適化と局所的な最適化の調和を取った最適化ができるコンパイル装置を提供する。
【解決手段】コンパイル装置のレジスタ割り当て部13は、ループとその他の部分からなるプログラムを入力して、ループおよびその他の部分に基づいてプログラムの各変数に第1の優先度を与え、第1の優先度の高い順に所定数の変数(第1の変数)にグローバルレジスタを、残りの変数(第2の変数)に非グローバルレジスタを割り当てる(第1の割り当て)。レジスタ割り当て部13は、ループ部分に基づいて各変数に第2の優先度を与え、第2の変数のうち第2の優先度が、何れかの第1の変数の第2の優先度より高い何れかの変数(第4の変数)に、第1の変数のうち第2の優先度が、第4の変数の第2の優先度より低い何れかの変数(第3の変数)に割り当てた前記グローバルレジスタを割り当て直す(第2の割り当て)。 (もっと読む)


【課題】アセンブリ言語の部分を跨いで生存するレジスタとアセンブリ言語の部分において指定されるレジスタとが実際にバッティングする場合のみ検出することができるプログラム開発装置を提供する。
【解決手段】プログラム開発装置1は、ターゲットプロセッサ上で実行される目的プログラムのための原始プログラム中に、ターゲットプロセッサのレジスタを直接指定している1以上の代入文を含むか否かを解析する構文解析部11と、原始プログラムがコンパイルされ割り付けられるレジスタの生存区間情報を検出し、検出した生存区間情報に基づき割り付けられるレジスタが1以上の代入文を跨いで生存しているか否かを検出する検出部とを有する。 (もっと読む)


【課題】メモリの一部を一時的にゲストハードウエアのレジスタによって代行させる際に、ソースコード上での区別を不要にし、設計や検証の効率化を図る。
【解決手段】プロセッサとメモリとゲストハードウエアからなるシステムに組み込む転送機構と、プロセッサの実行する命令列を再構成するリアセンブラとを備える。リアセンブラは、ソースコードおよび該ソースコードからコンパイルされた第1のバイナリコードを取り込んで、転送機構の動作の手がかりとなり且つプロセッサの処理に影響を与えない標識命令を書き込んだ第2のバイナリコードを再構成してメモリにロードする。転送機構は、プロセッサが実行するメモリとの間の読み書き処理のうち、ゲストハードウエアが実行すべき処理で参照/代入される変数の読み書き処理を検出し、当該検出した読み書き処理について、ゲストハードウエアと所定のレジスタとの間で読み書きを実行させる。 (もっと読む)


【課題】プロセッサにおいてレジスタファイルの低消費電力化を図ることのできるプロセッサを提供する。
【解決手段】プロセッサ1は、複数のレジスタを有するレジスタファイル12と、レジスタファイル12における、電源の供給を停止する1以上のレジスタを選択可能なスイッチ素子群回路12aと、オブジェクトコードの実行時に、オブジェクトコードに含まれる、使用するレジスタ数あるいは使用しないレジスタ数の情報に基づいて、レジスタファイル12を制御するためのレジスタファイル制御信号を出力する実行部21と、レジスタファイル制御信号に基づいて、電源の供給を停止する1以上のレジスタを選択するためのレジスタ制御信号をスイッチ素子群回路12aに出力するレジスタファイル制御部16とを有する。 (もっと読む)


【課題】プログラム格納用のメモリサイズを小さくする。
【解決手段】ソースプログラムをオブジェクトプログラムに変換する際に、同一のレジスタを続けて使用する命令コードが複数ある場合に、これらの命令コードが連続するように変換する。また、変換したmビットの命令コードの内で有効ビット数がnビット以下の命令コードに対しては、下位のビット位置に無効ビットを配置すると共にレジスタを指定するオペランドを上位の一定のビット位置に配置する。一方、命令コードの有効ビット数がnビットを越える命令コードに対しては、レジスタを指定するオペランドを削除する。この結果、オブジェクトプログラムを構成する各命令コードの有効ビット数はnビット以下になる。従って、上位nビットをプログラム格納用のメモリに書き込むことで、プログラム格納用のメモリサイズを小さくすることができるという効果がある。 (もっと読む)


【課題】レジスタを割り付けられない変数を減らすと共に、レジスタ間の値の受渡を減らし、プログラムの実行を効率化する。
【解決手段】コンパイラ装置は、変数間の干渉関係を示す干渉情報を記憶しており、各変数に、干渉関係にある変数の組に同一のレジスタを割り付けない範囲内において、基準数以上のレジスタの中から所定の手順に従ってレジスタを選択して割り付け、同一のレジスタが割り付けられた複数の前記変数を新たな変数に置換し、かつ当該複数の変数の各々についての干渉関係を併合して当該新たな変数についての干渉関係を生成し、その干渉関係により干渉情報を更新し、当該新たな変数を使用する前記プログラム中の各変数に、更新した前記干渉情報に基づく干渉関係にある変数の組に同一のレジスタを割り付けない範囲内において、前記所定の手順と同一の手順に従って前記基準数のレジスタの中から選択したレジスタを割り付ける。 (もっと読む)


【課題】命令分解用の予備のレジスタの有効活用を実現すると共に、予備のレジスタの複数用途での共用の際のエラー検出性を確保できるようなコンパイラシステムを提供する。
【解決手段】命令定義資源設定部31は、レジスタ割り付け部32による処理の前処理として、命令毎にその命令で定義および参照するレジスタなどの資源を中間コードに設定していく。命令定義資源設定部31は、各命令が複数命令に分解される可能性について検出し、分解される可能性がある命令については、分解に使用するレジスタR29の定義および参照があるものとして、レジスタR29を中間コードに設定する。レジスタ割り付け部32は、分解に使用するレジスタR29の生存区間を跨がない範囲で、レジスタR29を汎用用途に使用する。 (もっと読む)


【課題】キャッシュミスが発生しにくいレジスタ退避を実現する。
【解決手段】コンパイル装置4は、コードを,仮想レジスタに割り当てるユニット4a、仮想レジスタのレジスタ生存区間がスカラ使用タイプかSIMD使用タイプか判断するユニット4b、レジスタ生存区間が実レジスタに割り当て可能か判断するユニット4c、レジスタ生存区間が実レジスタに割り当て可能な場合、レジスタ生存区間を実レジスタに割り当てるユニット4d、レジスタ生存区間が実レジスタに割り当て可能ではなくレジスタ生存区間がスカラ使用タイプと判断された場合に退避用SIMD実レジスタを確保するユニット4e、退避用SIMD実レジスタが確保された場合にレジスタ生存区間を退避用SIMD実レジスタに割り当て、残りのレジスタ生存区間を実レジスタに割り当て、レジスタ生存区間と残りのレジスタ生存区間の境界にレジスタ退避コードを割り当てるユニット4fを具備する。 (もっと読む)


【課題】複数の命令を1のサイクルにおいて実行するプロセッサにおいて、並列処理を行う場合に、実行サイクル数を削減することができるプロセッサ及びコンパイル装置を提供する。
【解決手段】レジスタR0〜R31は、それぞれ上位32ビットの領域と下位32ビットの領域に分かれている。レジスタ書込制御部431は、1のサイクルで発行された各命令における書き込むレジスタと書き込み位置(上位又は下位のいずれか)を示す情報をセレクタ4321、4322へ出力する。セレクタ4321、4322は、それぞれ、第1演算部44、第2演算部45又は第3演算部46から出力される各データのうちいずれか1のデータを選択し、選択したデータをいずれか1のレジスタの上位及び下位へそれぞれ書き込む。 (もっと読む)


【課題】ループ処理の性能を向上させるコンパイラ装置を提供する。
【解決手段】ループ処理を含むCプログラム22を機械語プログラム38に変換するコンパイラ20であって、Cプログラム22に含まれるループ処理外に位置する命令で使用される変数の生存区間の状況に基づいて、当該命令をループ処理内に移動可能か否かを判定する移動判定部28と、移動判定部28で移動可能と判断された命令を前記ループ処理内に移動させ、中間プログラムを生成する移動実行部30と、中間プログラムを機械語プログラム38に変換して出力する出力部36とを備える。 (もっと読む)


1 - 20 / 23