JP2018206175A - コンパイラ、情報処理装置及びコンパイル方法 - Google Patents
コンパイラ、情報処理装置及びコンパイル方法 Download PDFInfo
- Publication number
- JP2018206175A JP2018206175A JP2017112473A JP2017112473A JP2018206175A JP 2018206175 A JP2018206175 A JP 2018206175A JP 2017112473 A JP2017112473 A JP 2017112473A JP 2017112473 A JP2017112473 A JP 2017112473A JP 2018206175 A JP2018206175 A JP 2018206175A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- value
- code
- instruction
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
- G06F8/452—Loops
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
Abstract
Description
図1は、情報処理システム10の全体構成を示す図である。図1に示す情報処理システム10は、情報処理装置1と、記憶装置2と、操作端末3とを含む。図1に示す操作端末3は、操作端末3a、3b及び3cが含まれている。
初めに、情報処理装置1が行うコンパイル処理について説明を行う。図2は、情報処理装置1が行うコンパイル処理を説明するフローチャートである。
次に、情報処理装置1が行うコード実行処理について説明を行う。図3は、情報処理装置1が行うコード実行処理を説明するフローチャートである。
続いて、ソースコード134の具体例について説明を行う。図4は、ソースコード134の具体例について説明する図である。図4に示すソースコード134は、Fortranプログラムによって記述されたプログラムである。
次に、図4で説明したソースコード134から生成される変換コードの具体例について説明を行う。図5は、ソースコード134から生成される変換コードの具体例について説明を行う。
図6は、変換コードの具体例について説明する図である。具体的に、キャッシュラインサイズが256バイトである場合に生成される変換コードの具体例について説明する図である。以下、キャッシュラインサイズが256バイトであり、倍精度実数型の配列aが1つのキャッシュライン上に32要素を配置されるものとして説明を行う。また、配列aの先頭アドレスが256バイトの境界にアラインされ、かつ、現在アクセスしているキャッシュラインよりも6ライン先(96イタレーション先)のキャッシュラインをXFILL命令の対象とするものとして説明を行う。
図7は、変換コードの具体例について説明する図である。具体的に、図7は、外側ループのイタレーションを対象としてXFILL命令を生成した変換コードの具体例を説明する図である。
次に、情報処理装置1のハードウエア構成について説明する。図8は、情報処理装置1のハードウエア構成を説明する図である。
次に、情報処理装置1のソフトウエア構成について説明する。図9は、情報処理装置1の機能のブロック図である。図10は、情報格納領域130に記憶された情報のブロック図である。
次に、第1の実施の形態の概略について説明する。具体的に、図2で説明したS3及びS4の処理の概略について説明する。図11は、S3及びS4の処理の概略について説明するフローチャートである。
次に、第1の実施の形態の詳細について説明する。図12から図15は、第1の実施の形態におけるコンパイル処理及びコード実行処理の詳細を説明するフローチャートである。
初めに、コンパイル処理の詳細について説明を行う。具体的に、図12から図14は、図2で説明したS3の処理の詳細について説明するフローチャートである。
第1情報算出部111は、S42の処理において、例えば、以下の式(1)を用いることによって第1の値131の算出を行う。なお、式(1)において、hは、XFILL命令の実行に伴うレイテンシを隠蔽するために必要なイタレーション数を示す。さらに、nは、最内ループのイタレーション数を示す。
第2情報算出部112は、S43の処理において、例えば、以下の式(2)を用いることによって第2の値132の算出を行う。なお、式(2)において、hは、XFILL命令の実行に伴うレイテンシを隠蔽するために必要なイタレーション数を示す。また、nは、最内ループのイタレーション数を示す。また、mは、外側ループのイタレーション数を示す。さらに、ceil(x)は、x以上の最小の整数を算出する関数である。
コード変換部114は、S46の処理において、例えば、以下の式(3)及び(4)を用いることによって、XFILL命令の生成を行う。なお、式(3)及び(4)において、sは、キャッシュラインのサイズを示し、eは、sを多重ループに含まれる変数型サイズの最大値によって除算した値を示す。また、iは、最内ループのイタレーション数のカウンタ変数を示し、jは、外側ループのイタレーション数のカウンタ変数を示す。また、nは、最内ループのイタレーション数を示し、mは、外側ループのイタレーション数を示し、a(i,j)は、配列aのi,j要素のアドレスを示す。また、Dは、現在のイタレーションの配列先頭アドレスのsバイトアラインメントと、次のイタレーションの配列先頭アドレスのsバイトアラインメントとのずれの差分を示す。さらに、Mは、配列先頭アドレスのsバイトアラインメントとのずれを示す。
次に、コンパイル処理の詳細について説明を行う。具体的に、図15は、図2で説明したS4の処理の詳細について説明するフローチャートである。
次に、コード実行処理の詳細について説明を行う。具体的に、図16から図18は、図3で説明したS12の処理の詳細について説明するフローチャートである。
次に、第2の実施の形態におけるコンパイル処理について説明を行う。図19は、第2の実施の形態におけるコンパイル処理を説明するフローチャートである。
コード変換部114は、図19に示すように、S31の処理で特定した第1ループにおける書き込み領域サイズを特定する(S101)。
ソースコードに含まれる多重ループのうちの最内ループに含まれる第1の命令が実行される際に、前記最内ループによる所定回数先の前記第1の命令の実行に伴ってメインメモリから読み出されるキャッシュラインが書き込まれるキャッシュメモリ内の対象領域に対し、所定のデータを書き込む第2の命令が実行されるように、前記ソースコードを変換するコンパイラであって、
前記対象領域の特定を、前記最内ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第1変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第1の値を、前記ソースコードに含まれる多重ループ毎に算出し、
前記対象領域の特定を、前記最内ループの外側ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第2変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第2の値を、前記ソースコードに含まれる多重ループ毎に算出し、
前記ソースコードに含まれる多重ループ毎に、前記第1の値と前記第2の値とを比較し、
前記ソースコードに含まれる多重ループのうち、前記第1の値が前記第2の値よりも大きい多重ループを前記第1変換コードに変換し、前記ソースコードに含まれる多重ループのうち、前記第2の値が前記第1の値よりも大きい多重ループを前記第2変換コードに変換する、
処理をコンピュータに実行させることを特徴するコンパイラ。
付記1において、
前記変換する処理では、前記ソースコードに含まれる多重ループのうち、前記第1の値と前記第2の値とが等しい多重ループを前記第1変換コードまたは前記第2変換コードに変換する、
ことを特徴するコンパイラ。
付記1において、
前記変換する処理では、前記ソースコードに含まれる多重ループのうち、前記第1の値及び前記第2の値が所定の閾値よりも小さい多重ループの変換を行わない、
ことを特徴するコンパイラ。
付記1において、
前記第1変換コードに含まれる前記第2の命令は、前記最内ループによる前記第1の命令の現在までの繰返し回数よりも第1の回数後の前記第1の命令に対応するキャッシュラインが書き込まれる前記対象領域に対し、前記所定のデータを書き込む命令であり、
前記第1の値を算出する処理では、前記第1の回数を前記最内ループによるループ回数で除算することにより、前記第1の値を算出する、
ことを特徴するコンパイラ。
付記1において、
前記第2変換コードに含まれる前記第2の命令は、前記外側ループによる前記第1の命令の現在までの繰返し回数よりも第2の回数後の前記第1の命令に対応するキャッシュラインが書き込まれる前記対象領域に対し、前記所定のデータを書き込む命令であり、
前記第1の値を算出する処理では、前記第1の回数を前記最内ループによるループ回数で除算することにより、前記第1の値を算出する、
ことを特徴するコンパイラ。
付記1において、
前記第1の値を算出する処理では、前記第1の値の算出に要する情報の全てが取得可能である場合に、前記第1の値の算出を行い、
前記第2の値を算出する処理では、前記第2の値の算出に要する情報の全てが取得可能である場合に、前記第2の値の算出を行い、
前記変換する処理では、前記第1の値または前記第2の値の算出が行われていない場合、前記ソースコードに含まれる多重ループ毎に、前記第1変換コードと、前記第2変換コードと、前記第1の値及び前記第2の値の算出を行う命令を含む情報算出コードと、を生成する、
ことを特徴するコンパイラ。
付記1において、
前記変換する処理では、
前記ソースコードに含まれる多重ループ毎に、前記多重ループの書き込み領域サイズと、前記キャッシュラインのサイズとを比較し、
前記ソースコードに含まれる多重ループ毎のうち、書き込み領域サイズが前記キャッシュラインのサイズより大きい第1ループを、前記第1ループの書き込み領域サイズが1以上の前記キャッシュラインのサイズに収まる第2ループと、前記第2ループ以外の第3ループとに分割し、
前記第2ループの書き込み領域サイズに対して前記第2の命令を実行するように、前記第1ループを前記第1変換コードまたは前記第2変換コードに変換する、
ことを特徴するコンパイラ。
ソースコードに含まれる多重ループのうちの最内ループに含まれる第1の命令が実行される際に、前記最内ループによる所定回数先の前記第1の命令の実行に伴ってメインメモリから読み出されるキャッシュラインが書き込まれるキャッシュメモリ内の対象領域に対し、所定のデータを書き込む第2の命令が実行されるように、前記ソースコードを変換する情報処理装置であって、
前記対象領域の特定を、前記最内ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第1変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第1の値を、前記ソースコードに含まれる多重ループ毎に算出する第1情報算出部と、
前記対象領域の特定を、前記最内ループの外側ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第2変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第2の値を、前記ソースコードに含まれる多重ループ毎に算出する第2情報算出部と、
前記ソースコードに含まれる多重ループ毎に、前記第1の値と前記第2の値とを比較する情報判定部と、
前記ソースコードに含まれる多重ループのうち、前記第1の値が前記第2の値よりも大きい多重ループを前記第1変換コードに変換し、前記ソースコードに含まれる多重ループのうち、前記第2の値が前記第1の値よりも大きい多重ループを前記第2変換コードに変換するコード変換部と、を有する、
ことを特徴する情報処理装置。
付記8において、
前記コード変換部は、
前記ソースコードに含まれる多重ループ毎に、前記多重ループの書き込み領域サイズと、前記キャッシュラインのサイズとを比較し、
前記ソースコードに含まれる多重ループ毎のうち、書き込み領域サイズが前記キャッシュラインのサイズより大きい第1ループを、前記第1ループの書き込み領域サイズが1以上の前記キャッシュラインのサイズに収まる第2ループと、前記第2ループ以外の第3ループとに分割し、
前記第2ループの書き込み領域サイズに対して前記第2の命令を実行するように、前記第1ループを前記第1変換コードまたは前記第2変換コードに変換する、
ことを特徴する情報処理装置。
ソースコードに含まれる多重ループのうちの最内ループに含まれる第1の命令が実行される際に、前記最内ループによる所定回数先の前記第1の命令の実行に伴ってメインメモリから読み出されるキャッシュラインが書き込まれるキャッシュメモリ内の対象領域に対し、所定のデータを書き込む第2の命令が実行されるように、前記ソースコードを変換するコンパイル方法であって、
前記対象領域の特定を、前記最内ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第1変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第1の値を、前記ソースコードに含まれる多重ループ毎に算出し、
前記対象領域の特定を、前記最内ループの外側ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第2変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第2の値を、前記ソースコードに含まれる多重ループ毎に算出し、
前記ソースコードに含まれる多重ループ毎に、前記第1の値と前記第2の値とを比較し、
前記ソースコードに含まれる多重ループのうち、前記第1の値が前記第2の値よりも大きい多重ループを前記第1変換コードに変換し、前記ソースコードに含まれる多重ループのうち、前記第2の値が前記第1の値よりも大きい多重ループを前記第2変換コードに変換する、
ことを特徴するコンパイル方法。
付記10において、
前記変換する工程では、
前記ソースコードに含まれる多重ループ毎に、前記多重ループの書き込み領域サイズと、前記キャッシュラインのサイズとを比較し、
前記ソースコードに含まれる多重ループ毎のうち、書き込み領域サイズが前記キャッシュラインのサイズより大きい第1ループを、前記第1ループの書き込み領域サイズが1以上の前記キャッシュラインのサイズに収まる第2ループと、前記第2ループ以外の第3ループとに分割し、
前記第2ループの書き込み領域サイズに対して前記第2の命令を実行するように、前記第1ループを前記第1変換コードまたは前記第2変換コードに変換する、
ことを特徴するコンパイル方法。
3:操作端末 101:CPU
102:メモリ 103:I/Oユニット
104:記憶媒体 130:情報格納領域
Claims (9)
- ソースコードに含まれる多重ループのうちの最内ループに含まれる第1の命令が実行される際に、前記最内ループによる所定回数先の前記第1の命令の実行に伴ってメインメモリから読み出されるキャッシュラインが書き込まれるキャッシュメモリ内の対象領域に対し、所定のデータを書き込む第2の命令が実行されるように、前記ソースコードを変換するコンパイラであって、
前記対象領域の特定を、前記最内ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第1変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第1の値を、前記ソースコードに含まれる多重ループ毎に算出し、
前記対象領域の特定を、前記最内ループの外側ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第2変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第2の値を、前記ソースコードに含まれる多重ループ毎に算出し、
前記ソースコードに含まれる多重ループ毎に、前記第1の値と前記第2の値とを比較し、
前記ソースコードに含まれる多重ループのうち、前記第1の値が前記第2の値よりも大きい多重ループを前記第1変換コードに変換し、前記ソースコードに含まれる多重ループのうち、前記第2の値が前記第1の値よりも大きい多重ループを前記第2変換コードに変換する、
処理をコンピュータに実行させることを特徴するコンパイラ。 - 請求項1において、
前記変換する処理では、前記ソースコードに含まれる多重ループのうち、前記第1の値と前記第2の値とが等しい多重ループを前記第1変換コードまたは前記第2変換コードに変換する、
ことを特徴するコンパイラ。 - 請求項1において、
前記変換する処理では、前記ソースコードに含まれる多重ループのうち、前記第1の値及び前記第2の値が所定の閾値よりも小さい多重ループの変換を行わない、
ことを特徴するコンパイラ。 - 請求項1において、
前記第1変換コードに含まれる前記第2の命令は、前記最内ループによる前記第1の命令の現在までの繰返し回数よりも第1の回数後の前記第1の命令に対応するキャッシュラインが書き込まれる前記対象領域に対し、前記所定のデータを書き込む命令であり、
前記第1の値を算出する処理では、前記第1の回数を前記最内ループによるループ回数で除算することにより、前記第1の値を算出する、
ことを特徴するコンパイラ。 - 請求項1において、
前記第2変換コードに含まれる前記第2の命令は、前記外側ループによる前記第1の命令の現在までの繰返し回数よりも第2の回数後の前記第1の命令に対応するキャッシュラインが書き込まれる前記対象領域に対し、前記所定のデータを書き込む命令であり、
前記第1の値を算出する処理では、前記第1の回数を前記最内ループによるループ回数で除算することにより、前記第1の値を算出する、
ことを特徴するコンパイラ。 - 請求項1において、
前記第1の値を算出する処理では、前記第1の値の算出に要する情報の全てが取得可能である場合に、前記第1の値の算出を行い、
前記第2の値を算出する処理では、前記第2の値の算出に要する情報の全てが取得可能である場合に、前記第2の値の算出を行い、
前記変換する処理では、前記第1の値または前記第2の値の算出が行われていない場合、前記ソースコードに含まれる多重ループ毎に、前記第1変換コードと、前記第2変換コードと、前記第1の値及び前記第2の値の算出を行う命令を含む情報算出コードと、を生成する、
ことを特徴するコンパイラ。 - 請求項1において、
前記変換する処理では、
前記ソースコードに含まれる多重ループ毎に、前記多重ループの書き込み領域サイズと、前記キャッシュラインのサイズとを比較し、
前記ソースコードに含まれる多重ループ毎のうち、書き込み領域サイズが前記キャッシュラインのサイズより大きい第1ループを、前記第1ループの書き込み領域サイズが1以上の前記キャッシュラインのサイズに収まる第2ループと、前記第2ループ以外の第3ループとに分割し、
前記第2ループの書き込み領域サイズに対して前記第2の命令を実行するように、前記第1ループを前記第1変換コードまたは前記第2変換コードに変換する、
ことを特徴するコンパイラ。 - ソースコードに含まれる多重ループのうちの最内ループに含まれる第1の命令が実行される際に、前記最内ループによる所定回数先の前記第1の命令の実行に伴ってメインメモリから読み出されるキャッシュラインが書き込まれるキャッシュメモリ内の対象領域に対し、所定のデータを書き込む第2の命令が実行されるように、前記ソースコードを変換する情報処理装置であって、
前記対象領域の特定を、前記最内ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第1変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第1の値を、前記ソースコードに含まれる多重ループ毎に算出する第1情報算出部と、
前記対象領域の特定を、前記最内ループの外側ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第2変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第2の値を、前記ソースコードに含まれる多重ループ毎に算出する第2情報算出部と、
前記ソースコードに含まれる多重ループ毎に、前記第1の値と前記第2の値とを比較する情報判定部と、
前記ソースコードに含まれる多重ループのうち、前記第1の値が前記第2の値よりも大きい多重ループを前記第1変換コードに変換し、前記ソースコードに含まれる多重ループのうち、前記第2の値が前記第1の値よりも大きい多重ループを前記第2変換コードに変換するコード変換部と、を有する、
ことを特徴する情報処理装置。 - ソースコードに含まれる多重ループのうちの最内ループに含まれる第1の命令が実行される際に、前記最内ループによる所定回数先の前記第1の命令の実行に伴ってメインメモリから読み出されるキャッシュラインが書き込まれるキャッシュメモリ内の対象領域に対し、所定のデータを書き込む第2の命令が実行されるように、前記ソースコードを変換するコンパイル方法であって、
前記対象領域の特定を、前記最内ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第1変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第1の値を、前記ソースコードに含まれる多重ループ毎に算出し、
前記対象領域の特定を、前記最内ループの外側ループによる前記第1の命令の現在までの繰返し回数に基づいて行う前記第2の命令を含む第2変換コードが実行された場合に、前記メインメモリからのキャッシュラインの読み出し回数が削減される割合を示す第2の値を、前記ソースコードに含まれる多重ループ毎に算出し、
前記ソースコードに含まれる多重ループ毎に、前記第1の値と前記第2の値とを比較し、
前記ソースコードに含まれる多重ループのうち、前記第1の値が前記第2の値よりも大きい多重ループを前記第1変換コードに変換し、前記ソースコードに含まれる多重ループのうち、前記第2の値が前記第1の値よりも大きい多重ループを前記第2変換コードに変換する、
ことを特徴するコンパイル方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017112473A JP2018206175A (ja) | 2017-06-07 | 2017-06-07 | コンパイラ、情報処理装置及びコンパイル方法 |
US15/997,738 US10452368B2 (en) | 2017-06-07 | 2018-06-05 | Recording medium having compiling program recorded therein, information processing apparatus, and compiling method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017112473A JP2018206175A (ja) | 2017-06-07 | 2017-06-07 | コンパイラ、情報処理装置及びコンパイル方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018206175A true JP2018206175A (ja) | 2018-12-27 |
Family
ID=64564112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017112473A Pending JP2018206175A (ja) | 2017-06-07 | 2017-06-07 | コンパイラ、情報処理装置及びコンパイル方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10452368B2 (ja) |
JP (1) | JP2018206175A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112394940A (zh) * | 2020-11-18 | 2021-02-23 | 平安普惠企业管理有限公司 | 转换代码语法的方法、装置和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282231A (ja) * | 1996-04-17 | 1997-10-31 | Toshiba Corp | ライトバック型キャッシュ装置 |
JP2005322110A (ja) * | 2004-05-11 | 2005-11-17 | Matsushita Electric Ind Co Ltd | プログラム変換装置及びプロセッサ |
JP2010128960A (ja) * | 2008-11-28 | 2010-06-10 | Internatl Business Mach Corp <Ibm> | プリフェッチ命令生成方法、コンパイラ、及びプログラム |
JP2011138213A (ja) * | 2009-12-25 | 2011-07-14 | Fujitsu Ltd | 演算処理装置、情報処理装置及びキャッシュメモリ制御方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10207772A (ja) | 1997-01-23 | 1998-08-07 | Hitachi Ltd | キャッシュミス予測方法 |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7949831B2 (en) * | 2007-11-02 | 2011-05-24 | Oracle America, Inc. | Maintaining cache coherence using load-mark metadata to deny invalidation of load-marked cache lines |
JP5157424B2 (ja) * | 2007-12-26 | 2013-03-06 | 富士通セミコンダクター株式会社 | キャッシュメモリシステム及びキャッシュメモリの制御方法 |
WO2010010515A1 (en) * | 2008-07-23 | 2010-01-28 | Nxp B.V. | Adjustment of a processor frequency |
US8131931B1 (en) * | 2008-10-22 | 2012-03-06 | Nvidia Corporation | Configurable cache occupancy policy |
US10713202B2 (en) * | 2016-05-25 | 2020-07-14 | Samsung Electronics Co., Ltd. | Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports |
-
2017
- 2017-06-07 JP JP2017112473A patent/JP2018206175A/ja active Pending
-
2018
- 2018-06-05 US US15/997,738 patent/US10452368B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282231A (ja) * | 1996-04-17 | 1997-10-31 | Toshiba Corp | ライトバック型キャッシュ装置 |
JP2005322110A (ja) * | 2004-05-11 | 2005-11-17 | Matsushita Electric Ind Co Ltd | プログラム変換装置及びプロセッサ |
JP2010128960A (ja) * | 2008-11-28 | 2010-06-10 | Internatl Business Mach Corp <Ibm> | プリフェッチ命令生成方法、コンパイラ、及びプログラム |
JP2011138213A (ja) * | 2009-12-25 | 2011-07-14 | Fujitsu Ltd | 演算処理装置、情報処理装置及びキャッシュメモリ制御方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112394940A (zh) * | 2020-11-18 | 2021-02-23 | 平安普惠企业管理有限公司 | 转换代码语法的方法、装置和计算机设备 |
CN112394940B (zh) * | 2020-11-18 | 2024-02-20 | 内蒙古九有信创科技有限公司 | 转换代码语法的方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US20180357053A1 (en) | 2018-12-13 |
US10452368B2 (en) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9996696B2 (en) | Systems and methods to optimize execution of a software program using a type based self assembling control flow graph | |
KR101081090B1 (ko) | 명령어 스트림의 효율적인 에뮬레이션을 가능하게 하기 위한 레지스터 기반의 명령어 최적화 | |
US9465675B2 (en) | Communication control device, information processing apparatus, parallel computer system, and control method for parallel computer system | |
US20150331677A1 (en) | Compiling method and compiling device | |
US10496408B2 (en) | Information processing apparatus and conversion method | |
US20150293768A1 (en) | Compiling method and compiling apparatus | |
US10353682B2 (en) | Information processing device, storage medium, and method | |
JP7060803B2 (ja) | 情報処理装置、コンパイラプログラム及びコンパイル方法 | |
JP2018206175A (ja) | コンパイラ、情報処理装置及びコンパイル方法 | |
US11307991B2 (en) | Apparatus and method and computer program product for generating a storage mapping table | |
US10353708B2 (en) | Strided loading of non-sequential memory locations by skipping memory locations between consecutive loads | |
US20140157248A1 (en) | Conversion apparatus, method of converting, and non-transient computer-readable recording medium having conversion program stored thereon | |
JP2019021070A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US9535826B2 (en) | Automatic communication and optimization of multi-dimensional arrays for many-core coprocessor using static compiler analysis | |
US20090019225A1 (en) | Information processing apparatus and information processing system | |
JP2018124877A (ja) | コード生成装置、コード生成方法、およびコード生成プログラム | |
US20220405110A1 (en) | Non-transitory computer-readable recording medium and compilation method | |
JP6898556B2 (ja) | 情報処理装置、コンパイル方法及びコンパイルプログラム | |
JP2020140284A (ja) | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム | |
US9552197B2 (en) | Computer-readable recording medium storing information processing program, information processing apparatus, and information processing method | |
JP2019185486A (ja) | コード変換装置、コード変換方法、及びコード変換プログラム | |
JP7239827B2 (ja) | 情報処理装置及びコンパイラプログラム | |
JP7168731B1 (ja) | メモリアクセス制御装置、メモリアクセス制御方法、及び、メモリアクセス制御プログラム | |
JP2014099108A (ja) | 実行時間算出装置、実行時間算出方法、およびプログラム | |
JP6974722B2 (ja) | コンパイラプログラム、コンパイル方法及びコンパイルする情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210308 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210810 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220301 |