JP6474196B2 - 静的スケジュールプロセッサのノンブロッキング実行装置及び方法 - Google Patents

静的スケジュールプロセッサのノンブロッキング実行装置及び方法 Download PDF

Info

Publication number
JP6474196B2
JP6474196B2 JP2014040668A JP2014040668A JP6474196B2 JP 6474196 B2 JP6474196 B2 JP 6474196B2 JP 2014040668 A JP2014040668 A JP 2014040668A JP 2014040668 A JP2014040668 A JP 2014040668A JP 6474196 B2 JP6474196 B2 JP 6474196B2
Authority
JP
Japan
Prior art keywords
input data
result
latency
processor
buffer
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.)
Active
Application number
JP2014040668A
Other languages
English (en)
Other versions
JP2014174994A (ja
Inventor
勸 宅 權
勸 宅 權
禹 相 玉
相 玉 禹
時 和 李
時 和 李
鄭 錫 潤
錫 潤 鄭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014174994A publication Critical patent/JP2014174994A/ja
Application granted granted Critical
Publication of JP6474196B2 publication Critical patent/JP6474196B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Description

下記の実施形態は入力データに対する演算中に基本レイテンシよりも著しく大きいレイテンシが発生する場合、プロセッサ全体が長いサイクルの間にストール(stall)状態に切り替えることなく演算能力を保持する静的スケジュールプロセッサのノンブロッキング実行装置及び方法に対する技術的な思想を開示する。
静的スケジュールプロセッサ(static schedule processor)は、与えられた入力データに対して適用しなければならない演算をどのような演算ユニットでどのような順序をもって実行するかをコンパイル時に決定する方式のプロセッサである。ソフトウェアパイプラインアルゴリズムのうち、スケジュールを決定するSRP(Samsung Reconfigurable Processor)も静的スケジュールプロセッサに該当する。
プロセッサの演算スケジュールは、各演算が実行可能な演算ユニット、各演算の入力データが備えられる時点、各演算の所用時間などを考慮して最適の実行性能を発揮するように作られる。
ここで、演算の所用時間が常に一定のレギュラーレイテンシ(regular latency)演算では、コンパイル時に正確なタイミング算出が可能なので、最適のスケジュールを発揮することができる。しかし、演算の所用時間が不規則なイレギュラーレイテンシ(irregular latency)演算の場合は、コンパイル時に1つレイテンシ値を仮定して先にスケジュールを生成するので、ランタイムに仮定と異なるレイテンシが発生する場合、これを対処するための別途の方法が求められる。
本発明の目的は、静的スケジュールプロセッサのノンブロッキング実行装置及び方法を提供することにある。
<発明の概要>
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置は、伝達される入力データを用いて少なくとも1つ以上の演算を処理するプロセッサと、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納する入力バッファとを含み、前記プロセッサは、前記少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニットを含み、前記少なくとも1つ以上の演算ユニットは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理する。
一実施形態に係る静的スケジュールプロセッサは、入力バッファから入力データが伝達され、複数の演算ユニットを用いて演算を行う演算処理部と、前記入力データの演算中に前記複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断する判断部と、前記追加レイテンシが発生する場合にダミー値を出力して前記入力バッファに格納する格納処理部とを備える。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、プロセッサで、伝達される入力データを用いて少なくとも1つ以上の演算を処理するステップと、入力バッファで、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納するステップとを含み、前記少なくとも1つ以上の演算を処理するステップは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理するステップを含む。
一実施形態に係る静的スケジュールプロセッサの動作方法は、複数の演算のうち第1演算の実行中に選択的にダミー値を出力するステップと、前記複数の演算のうち第2演算を実行するステップと、前記第1演算を再実行して前記第1演算が正常終了することによって結果を取得するステップとを含む。
一実施形態に係るプロセッサの動作方法を用いると、各入力データに対する演算中に、基本レイテンシよりも著しく大きいレイテンシが発生した場合、プロセッサ全体が長いサイクルの間にストール状態になることで演算能力の低下を防止することができる。
一実施形態に係るプロセッサの動作方法を用いると、基本レイテンシよりも大きいレイテンシが発生しても、プロセッサはストールすることなく当該の演算値のみをダミー値に処理するだけで、続けて次のデータに対する演算は正常に実行できる。そして、後でダミー値として処理されたデータに対しては演算を再度行うことができる。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置を説明するブロック図である。 一実施形態に係るノンブロッキング実行装置の入力バッファを説明する図である。 他の一実施形態に係る静的スケジュールプロセッサを説明するブロック図である。 一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法を説明するフローチャートである。 一実施形態に係るプロセッサの動作方法を説明するフローチャートである。
<発明の詳細>
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置は、伝達される入力データを用いて少なくとも1つ以上の演算を処理するプロセッサと、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納する入力バッファとを含み、前記プロセッサは、前記少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニットを含み、前記少なくとも1つ以上の演算ユニットは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理する。
一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記入力データを前記レギュラーレイテンシの演算で処理するか、または前記イレギュラーレイテンシの演算で処理するかを判断してもよい。
一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記入力バッファに格納されているか否かを確認してもよい。
一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記以前の演算結果値が前記入力バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力してもよい。
一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記以前の演算結果値が前記入力バッファに格納されていない場合に演算を実行し、前記演算の実行中に追加レイテンシが発生するか否かを判断してもよい。
一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記演算の実行中に追加レイテンシが発生する場合にダミー値を出力し、前記出力されたダミー値に相応する状態ビットを前記入力バッファに記録してもよい。
一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を前記入力バッファに記録してもよい。
一実施形態に係る前記少なくとも1つ以上の演算ユニットは、前記演算の実行中に追加レイテンシが発生しない場合に前記演算の実行による結果値を出力し、前記出力された結果値を前記入力バッファに記録してもよい。
一実施形態に係る前記入力バッファは、状態レジスタ及び結果バッファを含み、前記状態レジスタは、前記入力データに対する状態を格納し、前記結果バッファは、以前の演算結果値を格納してもよい。
一実施形態に係る前記状態レジスタは、前記入力データに対して演算を再度行うか否かに対する状態を格納してもよい。
一実施形態に係る静的スケジュールプロセッサは、入力バッファから入力データが伝達され、複数の演算ユニットを用いて演算を行う演算処理部と、前記入力データの演算中に前記複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断する判断部と、前記追加レイテンシが発生する場合にダミー値を出力して前記入力バッファに格納する格納処理部とを備える。
一実施形態に係る前記演算処理部は、前記入力バッファから前記伝達された入力データに対する以前の演算結果値が格納されているかを確認し、前記以前の演算結果値が格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力してもよい。
一実施形態に係る前記演算処理部は、前記入力バッファから前記伝達された入力データに対する以前の演算結果値が格納されているかを確認し、前記以前の演算結果値が前記入力バッファに格納されていない場合、前記入力データの演算を実行してもよい。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、プロセッサで、伝達される入力データを用いて少なくとも1つ以上の演算を処理するステップと、入力バッファで、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納するステップとを含み、前記少なくとも1つ以上の演算を処理するステップは、前記伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理するステップを含む。
一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記入力データを前記レギュラーレイテンシの演算で処理するか、または前記イレギュラーレイテンシの演算で処理するかを判断するステップを含んでもよい。
一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記入力バッファに格納されているか否かを確認するステップを含んでもよい。
一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記以前の演算結果値が前記入力バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力するステップを含んでもよい。
一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、以前の演算結果値が前記入力バッファに格納されていない場合に演算を実行し、前記演算の実行中に追加レイテンシが発生するか否かを判断するステップを含んでもよい。
一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記演算の実行中に追加レイテンシが発生する場合にダミー値を出力し、前記出力されたダミー値に相応する状態ビットを前記入力バッファに記録するステップを含んでもよい。
一実施形態に係る前記少なくとも1つ以上の演算を処理するステップは、前記追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を前記入力バッファに記録するステップを含んでもよい。
一実施形態に係る静的スケジュールプロセッサの動作方法は、複数の演算のうち第1演算の実行中に選択的にダミー値を出力するステップと、前記複数の演算のうち第2演算を実行するステップと、前記第1演算を再実行して前記第1演算が正常終了することによって結果を取得するステップとを含む。
一実施形態に係る第1演算の実行時間が選定された値を超過する場合、前記ダミー値が出力されてもよい。
一実施形態に係る前記選定された値は、前記第1演算のプロセッサ実行サイクルカウントを含んでもよい。
以下、実施形態を添付する図面を参照しながら詳細に説明する。
実施形態を説明するにおいて、関連する公知機能または構成に対する具体的な説明が実施形態の要旨を不要に曖昧にすると判断される場合にはその詳細な説明は省略される。そして、本明細書で用いられる用語は実施形態を適切に表現するために用いられる用語として、これはユーザ、運用者の意図、または該当技術が属する分野の慣例などによって変わり得る。したがって、用語に対する定義は本明細書の全般にわたる内容に基づいて定められる。各図面に提示された同一の参照符号は同一の部材を示す。
図1は、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100を説明するブロック図である。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100は、入力バッファ110及びプロセッサ120を備える。
以下の「プロセッサ」は、静的スケジュール基盤のプロセッサを含んでもよい。
一実施形態に係るプロセッサ120は、伝達される入力データを用いて少なくとも1つ以上の演算を処理する。
一実施形態に係る入力バッファ110は、入力データをプロセッサに伝達し、少なくとも1つ以上の演算に対する処理結果を格納してもよい。
ここでのプロセッサ120は、少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニット121(Functional Unit:FU)を備えてもよい。
少なくとも1つ以上の演算ユニット121は、伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算方式で処理してもよい。
少なくとも1つ以上の演算ユニット121は、入力データを確認し、確認された結果に応じて当該入力データをレギュラーレイテンシの演算で処理するか、イレギュラーレイテンシの演算で処理するかを決定してもよい。
少なくとも1つ以上の演算ユニット121は、演算の所用時間が常に一定であるため、コンパイル時に正確なタイミング算出が可能であり、最適のスケジュールを作り出すことのできる入力データに対してレギュラーレイテンシの演算で処理してもよい。
反対に、少なくとも1つ以上の演算ユニット121は、演算の所用時間が不規則な入力データに備えてコンパイル時に1つのレイテンシ値を仮定して先にスケジュールを生成してもよい。ここで、少なくとも1つ以上の演算ユニット121は、ランタイムに仮定と他のレイテンシが発生する場合にも長いサイクルの間にストール状態に切り替えることなく、演算能力を保持することができる。
言い換えれば、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100は、静的スケジュール基盤のプロセッサ動作を実行しながらもノンブロッキング特性を保持することができる。
少なくとも1つ以上の演算ユニット121は、追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を入力バッファ110に記録してもよい。
一実施形態に係るプロセッサ120は、与えられた入力データに対して適用しなければならない演算をどのような演算ユニットでどのような順序をもって実行するかをコンパイル時に決定してもよい。
一実施形態に係るプロセッサ120は、静的スケジュール基盤として、動的スケジュール基盤のプロセッサに比べてハードウェアの大きさが小さくて簡単である。また、一実施形態に係るプロセッサ120は、追加レイテンシが発生した分だけのプロセッサ120動作をストールしないため、一般的な静的スケジュール基盤のプロセッサがランタイムに発生するレイテンシに対応することのできない問題を解決することができる。
一実施形態に係るプロセッサ120が実行する演算中に外部要因に影響を受けることなく実行できる演算は常に一定のレイテンシを発生させる。例えば、キャッシュメモリを参照して演算処理する間にキャッシュヒットされる場合などには選定されたレイテンシ以外に追加レイテンシが発生しない。一実施形態に係るプロセッサ120は、このような演算に対してレギュラーレイテンシの演算方式で処理してもよい。
外部メモリアクセスなどの外部要因の影響を受ける動作が含まれた演算や条件に応じて、選択的な動作を行う演算に対して一般的なプロセッサであれば、演算する度にレイテンシが変わり得る。一実施形態に係るプロセッサ120は、このような演算についてイレギュラーレイテンシの演算方式に処理してもよい。
例えば、一般的なプロセッサがデータキャッシュによってプロセッサ外部のメモリにアクセス動作する場合、キャッシュヒットまたはミス(cache hit/miss)の有無に応じて動作が変わりつつ、実行に必要なレイテンシが変わることがある。また、同じキャッシュミスの状況でも外部メモリにアクセスするための所要時間が毎度変わるので、実行に必要なレイテンシも変わり得る。
これとは対照的に、一実施形態に係るプロセッサ120は、実行する全ての演算のレイテンシを定められた値に指定してもよい。前記決定した値は、全ての演算で同一であるか、実行する全ての演算で同一でなくてもよい。
ここで、一実施形態に係るプロセッサ120は、指定されたレイテンシにより最適の実行性能が発揮できるスケジュールを生成することができ、ランタイムには定められたスケジュールに応じてのみ動作する。
もし、ランタイムに特定演算が行われるためにさらに多くの時間が必要な場合は、一実施形態に係るプロセッサ120は、システムの効率のために追加レイテンシによりストール状態を維持しないため、特定演算の処理が完了するまで待機しない。また、一実施形態に係るプロセッサ120は、追加レイテンシが発生した特定演算を無視して誤ったデータを出力することもない。
言い換えれば、指定されたレイテンシ以外に追加レイテンシが発生した場合、一実施形態に係るプロセッサ120は、その演算の結果を用いる次の演算をスケジュールに定められた時点に合わせて実行することができない。言い換えれば、レイテンシが予め指定した値よりも大きければ、その演算の結果を用いる次の演算をスケジュールに定められた時点に合わせて実行できなくなる。
このような状況が発生すると、一般的には追加発生したレイテンシだけプロセッサをストールし、特定演算が完了すれば再び本来のスケジュールの通りに演算実行を再開する。
一実施形態に係るプロセッサ120は、指定されたレイテンシ以外に追加レイテンシが発生した場合、特定演算を処理した演算ユニット121によって意味のない値であるダミー値を出力してもよい。また、出力されたダミー値に相応する状態ビットは、結果格納信号140によって入力バッファ110に結果値として格納されてもよい。
入力バッファ110は、入力データに対して複数のイレギュラーレイテンシ演算による結果値を格納してもよい。
一実施形態に係るプロセッサ120は、各エントリに対してイレギュラーレイテンシ演算の結果値を格納しておいてもよく、結果検索信号130によって、特定演算の処理以前にも格納された結果値を検索してもよい。
言い換えれば、一実施形態に係るプロセッサ120は、特定演算の処理前に入力される入力データの以前結果値にダミー値に相応する状態ビットが格納され、演算ユニット121の再実行が必要であるかを先に確認することができる。すなわち、一実施形態に係るプロセッサ120は、イレギュラーレイテンシ演算の場合、演算を開始する時点に先に当該データに対する当該演算の結果値が予め入力バッファに格納されているかの以前結果値を検索してもよい。
結果値が存在すれば、一実施形態に係るプロセッサ120は、演算を再実行する代わりにスケジュールに定義された基本レイテンシ後に照会された結果値を出力してもよい。もし、ダミー値に相応する状態ビットが入力されたり、結果値が入力バッファに存在しなければ、一実施形態に係るプロセッサ120は当該演算を実際に再実行してもよい。
その後、演算ユニット121の実行結果、基本レイテンシ中に演算が完了すれば、一実施形態に係るプロセッサ120は有効な演算結果値を出力してもよい。
演算ユニット121の実行結果、基本レイテンシ中に演算が完了されなければ、一実施形態に係るプロセッサ120はダミー値を出力する。プロセッサ120が実際に演算した場合レイテンシと関係なしにその結果値は入力バッファに格納されてもよい。
一実施形態に係るプロセッサ120はダミー値を出力し、追加発生したレイテンシだけプロセッサをストールしないだけではなく、ダミー値による誤った結果値を出力しない。
一実施形態に係るプロセッサ120は、各入力データに対する最終の実行結果を出力するための全ての中間演算でダミー値の出力があるか否かを確認する。
そのために、一実施形態に係るプロセッサ120が指定されたレイテンシ内に演算を終了して正常な出力値を出力し、これを入力バッファ110に格納する場合、プロセッサ120は完了フラグ信号150によって完了フラグを入力バッファ110に送信してもよい。ここで、入力バッファ110は、格納される出力値に相応する完了フラグを確認して入力データの演算が正常に終了されたことを表現する。
正常に終了した入力データは出力データとして外部に出力され、次の処理に用いられる。正常出力されたエントリは入力バッファ110で削除されてもよい。
もし、完了フラグが確認されない入力データの場合はダミー値を含む結果として判断し、入力バッファ110で適切な時点に当該入力データを再びプロセッサ120に送信し、演算過程を最初から再開してもよい。
言い換えれば、プロセッサ120は、各入力データの演算中にイレギュラーレイテンシ演算の結果が基本レイテンシよりも大きい場合を検出し、当該データに対して再び演算するように動作してもよい。ここで、以前ステップにおける処理結果値は、入力バッファ110に入力データに対応する位置に格納されてもよい。
これにより、例外的なレイテンシに対しても選定されたスケジュールを保ちながら演算結果が同一に実行することができ、追加レイテンシだけプロセッサ全体をストールしないため、プロセッサの処理性能を向上させることができる。
すなわち、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100を用いると、各入力データに対する演算中に基本レイテンシよりも著しく大きいレイテンシが発生した場合について、プロセッサ全体が長いサイクルの間にストール状態になって演算能力が低下することを防止することができる。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100を用いると、基本レイテンシよりも大きいレイテンシが発生してもプロセッサはストールすることなく当該の演算値のみをダミー値として処理するだけで、続けて次のデータの演算は正常に行うことができる。例えば、演算の最初実行と外部メモリアクセスのような待機中である追加レイテンシ演算が完了するとき、後ほどダミー値として処理されたデータは演算を最初から再演算すればよい。言い換えれば、追加発生したレイテンシだけのストールサイクルを減少させ得る一方、当該データに対して再演算するだけの実行時間のみが追加される。
一般的に、入力データ1件当りプロセッサ演算時間は、10〜50サイクル程度が必要とされる。一方、キャッシュメモリアクセス演算の追加レイテンシは100〜300サイクル程度が必要とされる。
ここで、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行装置100を用いると、追加レイテンシの発生ごとに100〜300サイクルストールによるサイクルの無駄遣いを防止することができ、再演算に必要な10〜50サイクルのみで性能向上を図ることができる。
図2は、一実施形態に係るノンブロッキング実行装置の入力バッファ200を説明する図である。
一実施形態に係る入力バッファ200は、少なくとも1つ以上の入力データに対して入力される順序に応じてエントリごとに区分して格納してもよい。
プロセッサに提供する入力データが外部から供給されれば、入力データは一実施形態に係る入力バッファ200に格納される。
入力バッファ200は、格納されたエントリのうち1つのエントリ210を選択して実際プロセッサの入力に伝達する。
エントリ210は、状態ビット(state)211、入力データ(Input data)212、結果バッファ(result0〜3)213を備えてもよい。
入力バッファ200がエントリ210に対して格納する内容は、まず入力データ212そのものとエントリの状態情報、そして複数のイレギュラーレイテンシ演算による結果値である。プロセッサは、エントリ210に対してイレギュラーレイテンシ演算の結果値を格納してもよく、格納された結果値を照会してもよい。
具体的に、プロセッサは、各入力データが演算ユニットで処理された後の結果に応じて完了フラグを状態ビット211に格納してもよい。プロセッサは、入力バッファの状態ビット211を確認して当該入力データ212が再実行されなければならないか否かを決定してもよい。
入力データ212は演算ユニットで処理される単位として、格納される順に入力バッファ200に積載されてもよい。
結果バッファ213は、演算ユニットで入力データ212が処理された後の結果値を格納してもよい。もし、演算ユニットで追加レイテンシが発生する場合、結果バッファ213にはダミー値に相応する状態ビットが記録されてもよい。また、結果バッファ213にダミー値に相応する状態ビットが記録される場合、状態ビット211には完了フラグが記録されない。
プロセッサの入力で伝達されたエントリ210は、まず入力バッファ200から削除されず残っている。エントリ210が削除される時点は、プロセッサで全ての処理が完了して出力データが発生する時点である。
図3は、一実施形態に係る静的スケジュールプロセッサ300を説明するブロック図である。
一実施形態に係る静的スケジュールプロセッサ300は、演算処理部310、判断部320、格納処理部330を備える。
外部メモリを参照しなければならない場合、同じキャッシュミスの状況でも外部メモリにアクセスするための所要時間が毎回異なることもあるため、実行に必要なレイテンシも異なり得る。
一実施形態に係る静的スケジュールプロセッサ300は、実行する全ての演算のレイテンシを定められた値に指定してもよい。ここで、一実施形態に係る静的スケジュールプロセッサ300は、指定されたレイテンシにより最適の実行性能が発揮されるスケジュールを生成し、ランタイムには定められたスケジュールによってのみ動作する。
一実施形態に係る演算処理部310は、入力バッファから入力データが伝達され、複数の演算ユニットを用いて演算を実行する。
一実施形態に係る判断部320は、入力データの演算中に前記複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断する。
一実施形態に係る格納処理部330は、追加レイテンシが発生する場合にダミー値を出力して入力バッファに格納する。
ここで、一実施形態に係る静的スケジュールプロセッサ300は、入力データに対する演算をストールせず次の演算を行ってもよい。
一実施形態に係る静的スケジュールプロセッサ300は、予め設定されたレイテンシにしたがって入力データの演算を処理してもよい。もし、一実施形態に係る演算処理部310がデータキャッシュによってプロセッサ外部のメモリにアクセスする場合が発生すると、キャッシュヒットまたはミス(cache hit/miss)の有無に応じて動作が変わりつつ、実行に必要な追加レイテンシが生成されてもよい。
例えば、ランタイムに特定演算が行われるために多くの時間が必要な場合、一実施形態に係る静的スケジュールプロセッサ300は、システム効率のために追加レイテンシによりストール状態を維持しないことから、特定演算の処理が完了するまで待機しない。また、一実施形態に係る静的スケジュールプロセッサ300は、追加レイテンシが発生した特定演算を無視して誤ったデータを出力することもない。
言い換えれば、指定されたレイテンシ以外に追加レイテンシが発生した場合、一実施形態に係る静的スケジュールプロセッサ300は、その演算結果を使用する次の演算をスケジュールに定められた時点に合わせて実行できなくなる。言い換えれば、レイテンシが予め指定された値よりも大きければ、その演算の結果を用いる次の演算をスケジュールに定められた時点に合わせて実行できなくなる。
このような状況が発生すると、一実施形態に係る格納処理部330は、追加レイテンシが発生する場合にダミー値を出力して入力バッファに格納してもよい。
一実施形態に係る演算処理部310は、入力バッファから伝達された入力データに対する以前の演算結果値が格納されているかを先に確認する。ここで、演算処理部310は、以前の演算結果値が格納されている場合、スケジュールに定義されている基本レイテンシ後に以前の演算結果値を出力してもよい。
一実施形態に係る演算処理部310は、入力バッファに以前の演算結果値が格納されていない場合、入力データの演算を再実行してもよい。
すなわち、一実施形態に係る静的スケジュールプロセッサ300を用いると、各入力データに対する演算中に基本レイテンシよりも著しく大きいレイテンシが発生した場合、プロセッサ全体が長いサイクルの間にストール状態になって演算能力の低下を防止することができる。
一実施形態に係る静的スケジュールプロセッサ300を用いると、基本レイテンシよりも大きいレイテンシが発生しても、プロセッサはストールすることなく当該の演算値のみをダミー値として処理するだけで続けて次のデータの演算は正常に実行できる。そして、後ほどダミー値として処理されたデータは演算を最初から再演算すればよい。言い換えれば、追加発生したレイテンシだけのストールサイクルを減少させ得る一方、当該データに対して再演算するだけの実行時間のみが追加される。
一般的に、入力データ1件当りプロセッサの演算時間は10〜50サイクル程度が必要とされる。一方、キャッシュメモリアクセス演算の追加レイテンシは100〜300サイクル程度が必要とされる。
ここで、一実施形態に係る静的スケジュールプロセッサ300を用いると、追加レイテンシの発生時ごとに100〜300サイクルストールによるサイクルの無駄遣いを防止することができ、再演算に必要な10〜50サイクルのみで性能向上を図ることができる。
図4は、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法を説明するフローチャートである。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、入力バッファを介して入力データをプロセッサに伝達する(S401)。
次に、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、プロセッサによって伝達される入力データを用いて少なくとも1つ以上の演算を処理する(S402)。
次に、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、入力バッファを介して入力データをプロセッサに伝達し、少なくとも1つ以上の演算に対する処理結果を格納する(S403)。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、少なくとも1つ以上の演算を処理するため、伝達される入力データをレギュラーレイテンシの演算及びイレギュラーレイテンシの演算のうち少なくとも1つの演算を用いて処理してもよい。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、予め設定されたレイテンシにより入力データに対する演算を処理してもよい。この場合、レギュラーレイテンシの演算を適用して入力データの演算を実行してもよい。
もし、データキャッシュによってプロセッサ外部のメモリにアクセスする場合が発生すると、キャッシュヒットまたはミスの有無に応じて動作が変わり、実行に必要な追加レイテンシが生成することがある。この場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、イレギュラーレイテンシの演算を適用して入力データの演算を実行する。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、少なくとも1つ以上の演算を処理するために、入力データをレギュラーレイテンシの演算で処理するか、またはイレギュラーレイテンシの演算で処理するかを判断する。
入力データをイレギュラーレイテンシの演算で処理する場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、入力データに対する以前の演算結果値が入力バッファに格納されているか否かを確認する。
以前の演算結果値が前記入力バッファに格納されている場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、スケジュールとして定義されている基本レイテンシ後に以前の演算結果値を出力してもよい。
以前の演算結果値が前記入力バッファに格納されていない場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は演算を実行し、演算の実行中に追加レイテンシが発生するか否かを判断する。
キャッシュミスなどの理由により演算の実行中に追加レイテンシが発生する場合、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法はダミー値を出力し、出力されたダミー値に相応する状態ビットを入力バッファに記録して正しい結果値ではないことを表示する。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、演算の実行中に追加レイテンシが発生しない場合、演算の実行による結果値を出力してもよい。また、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法は、出力された結果値を入力バッファに記録してもよい。
結局、一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法を用いると、各入力データに対する演算中に基本レイテンシよりも著しく大きいレイテンシが発生した場合、プロセッサ全体が長いサイクルの間にストール状態になって演算能力の低下を防止することができる。
一実施形態に係る静的スケジュールプロセッサのノンブロッキング実行方法を用いると、基本レイテンシよりも大きいレイテンシが発生しても、プロセッサはストールすることなく当該の演算値のみをダミー値として処理するだけで続けて次のデータの演算は正常に実行できる。そして、後ほどダミー値として処理されたデータは演算を最初から再演算すればよい。言い換えれば、追加発生したレイテンシだけのストールサイクルを減少させう得る一方、当該データに対して再演算するだけの実行時間のみが追加される。
図5は、一実施形態に係るプロセッサの動作方法を説明するフローチャートである。
一実施形態に係るプロセッサの動作方法は、入力バッファから入力データが伝達されて演算を行い、入力データの演算中に複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断し、追加レイテンシが発生する場合にダミー値を出力して入力バッファに格納してもよい。
具体的に、一実施形態に係るプロセッサの動作方法は、入力バッファから入力データが伝達されて演算を行う前にレギュラー演算で処理するか、イレギュラー演算で処理するかを判断する(S501)。例えば、入力バッファの状態ビットに当該入力データの完了フラグがセッティングされている場合、入力データをレギュラー演算で処理してもよい。
レギュラー演算で処理する場合、一実施形態に係るプロセッサの動作方法は、入力データに対して選定された演算を実行し(S502)、実行結果による有効値を出力する(S503)。
イレギュラー演算で処理する場合、一実施形態に係るプロセッサの動作方法は、演算を行うために入力バッファから伝達された入力データに対する以前の演算結果値が格納されているかを確認する(S504)。
もし、以前の演算結果値が格納されている場合、一実施形態に係るプロセッサの動作方法は、以前の演算結果値を有効値として出力する(S503)。言い換えれば、一実施形態に係るプロセッサの動作方法は、スケジュールとして定義されている基本レイテンシ後に以前の演算結果値を出力してもよい。
以前の演算結果値が格納されていない場合、一実施形態に係るプロセッサの動作方法は入力データに対する演算を実行する(S505)。
一実施形態に係るプロセッサの動作方法は、入力データに対する演算途中に追加レイテンシの存在可否を判断する(S506)。例えば、4回の実行サイクルの後にも演算が終了しなければ、演算のための追加レイテンシが決定されてもよい。しかし、追加レイテンシはこのような状況だけで決定されるものと限定されることはない。
もし、追加レイテンシが発生しなければ、一実施形態に係るプロセッサの動作方法は、実行による結果値を入力バッファに記録する(S507)。また、追加レイテンシが存在すれば、一実施形態に係るプロセッサの動作方法はプロセッサのストールを防止するためにダミー値を出力する(S508)。
一実施形態に係るプロセッサの動作方法は、出力されたダミー値を入力バッファに格納する(S509)。
実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうち1つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、光ディスクのような光磁気媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを用いてコンピュータによって実行できる高級言語コードが含まれる。前記したハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するように構成されてもよく、その逆も同様である。
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
100:静的スケジュールプロセッサのノンブロッキング実行装置
110:入力バッファ
120:プロセッサ
121:演算ユニット
130:結果検索信号
140:結果格納信号
150:完了フラグ信号

Claims (5)

  1. 伝達される入力データを用いて少なくとも1つ以上の演算を処理するプロセッサと、
    前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納する入力バッファであって、前記入力データに対する状態を格納する状態レジスタ及び以前の演算結果値を格納する結果バッファを含む、入力バッファと、
    を含み、
    前記プロセッサは、前記少なくとも1つ以上の演算をそれぞれ行う少なくとも1つ以上の演算ユニットを含み、
    前記少なくとも1つ以上の演算ユニットは、
    前記伝達される入力データをレギュラーレイテンシの演算で処理するか、またはイレギュラーレイテンシの演算で処理するかを判断し、
    前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記結果バッファに格納されているか否かを確認し、
    前記以前の演算結果値が前記結果バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力し、
    前記以前の演算結果値が前記結果バッファに格納されていない場合に演算を実行し、前記演算の実行中に追加レイテンシが発生するか否かを判断し、
    前記演算の実行中に追加レイテンシが発生する場合にダミー値を出力し、前記出力されたダミー値に相応する状態ビットを前記結果バッファに記録し、
    前記演算の実行中に追加レイテンシが発生しない場合に前記演算の実行による結果値を出力し、前記出力された結果値を前記結果バッファに記録し、
    前記入力データに対する最終演算結果を出力するための全ての中間演算で前記ダミー値を含まない場合に、前記状態レジスタに完了フラグを設定し、前記完了フラグが設定されていない前記入力データに関する演算を後に再実行することを特徴とする静的スケジュールプロセッサのノンブロッキング実行装置。
  2. 前記少なくとも1つ以上の演算ユニットは、前記追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を前記結果バッファに記録することを特徴とする請求項1に記載の静的スケジュールプロセッサのノンブロッキング実行装置。
  3. 入力バッファから入力データが伝達され、複数の演算ユニットを用いて演算を行う演算処理部であって、前記入力データを、レギュラーレイテンシの演算で処理するか、またはイレギュラーレイテンシの演算で処理するかを判断し、前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記入力バッファの結果バッファに格納されているか否かを確認し、前記以前の演算結果値が前記結果バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力し、前記以前の演算結果値が前記結果バッファに格納されていない場合に演算を実行する、演算処理部と、
    前記入力データの演算中に前記複数の演算ユニットのうち少なくとも1つに追加レイテンシが発生するかを判断する判断部と、
    前記追加レイテンシが発生する場合にダミー値を出力して前記結果バッファに格納し、前記追加レイテンシが発生しない場合に前記演算の実行による結果値を出力して前記結果バッファに格納し、前記入力データに対する最終演算結果を出力するための全ての中間演算で前記ダミー値を含まない場合に、前記入力バッファの状態レジスタに完了フラグを設定する格納処理部と、
    を備え、
    前記演算処理部は、前記完了フラグが設定されていない前記入力データに関する演算を後に再実行することを特徴とする静的スケジュールプロセッサ。
  4. プロセッサで、伝達される入力データを用いて少なくとも1つ以上の演算を処理するステップと、
    入力バッファで、前記入力データを前記プロセッサに伝達し、前記少なくとも1つ以上の演算に対する処理結果を格納するステップであって、前記入力バッファは、前記入力データに対する状態を格納する状態レジスタ及び以前の演算結果値を格納する結果バッファを含む、ステップと、
    を含み、
    前記少なくとも1つ以上の演算を処理するステップは、
    前記伝達される入力データをレギュラーレイテンシの演算で処理するか、またはイレギュラーレイテンシの演算で処理するかを判断するステップと、
    前記入力データを前記イレギュラーレイテンシの演算で処理する場合、前記入力データに対する以前の演算結果値が前記結果バッファに格納されているか否かを確認するステップと、
    前記以前の演算結果値が前記結果バッファに格納されている場合、スケジュールとして定義されている基本レイテンシ後に前記以前の演算結果値を出力するステップと、
    以前の演算結果値が前記結果バッファに格納されていない場合に演算を実行し、前記演算の実行中に追加レイテンシが発生するか否かを判断するステップと、
    前記演算の実行中に追加レイテンシが発生する場合にダミー値を出力し、前記出力されたダミー値に相応する状態ビットを前記結果バッファに記録するステップと、
    前記入力データに対する最終演算結果を出力するための全ての中間演算で前記ダミー値を含まない場合に、前記状態レジスタに完了フラグを設定し、前記完了フラグが設定されていない前記入力データに関する演算を後に再実行するステップと、
    を含むことを特徴とする静的スケジュールプロセッサのノンブロッキング実行方法。
  5. 前記少なくとも1つ以上の演算を処理するステップは、前記追加レイテンシが発生した演算の実行が終了した後、演算の最終的な結果値を前記結果バッファに記録するステップを含むことを特徴とする請求項4に記載の静的スケジュールプロセッサのノンブロッキング実行方法。
JP2014040668A 2013-03-11 2014-03-03 静的スケジュールプロセッサのノンブロッキング実行装置及び方法 Active JP6474196B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0025509 2013-03-11
KR1020130025509A KR102028729B1 (ko) 2013-03-11 2013-03-11 정적 스케쥴 프로세서의 논블로킹 실행 장치 및 방법

Publications (2)

Publication Number Publication Date
JP2014174994A JP2014174994A (ja) 2014-09-22
JP6474196B2 true JP6474196B2 (ja) 2019-02-27

Family

ID=50389194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014040668A Active JP6474196B2 (ja) 2013-03-11 2014-03-03 静的スケジュールプロセッサのノンブロッキング実行装置及び方法

Country Status (5)

Country Link
US (1) US9405546B2 (ja)
EP (1) EP2778906A1 (ja)
JP (1) JP6474196B2 (ja)
KR (1) KR102028729B1 (ja)
CN (1) CN104050034B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102101834B1 (ko) 2013-10-08 2020-04-17 삼성전자 주식회사 영상 처리 장치 및 방법
JP7218594B2 (ja) * 2019-01-31 2023-02-07 オムロン株式会社 処理装置、ドライバモニタリングシステム、処理方法、及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010042187A1 (en) * 1998-12-03 2001-11-15 Marc Tremblay Variable issue-width vliw processor
US6519694B2 (en) * 1999-02-04 2003-02-11 Sun Microsystems, Inc. System for handling load errors having symbolic entity generator to generate symbolic entity and ALU to propagate the symbolic entity
AU2003283710A1 (en) * 2002-12-30 2004-07-22 Koninklijke Philips Electronics N.V. Very long instruction word processor
US20090150890A1 (en) * 2007-12-10 2009-06-11 Yourst Matt T Strand-based computing hardware and dynamically optimizing strandware for a high performance microprocessor system
US8719553B2 (en) 2008-01-31 2014-05-06 Arm Norway As Method for re-circulating a fragment through a rendering pipeline
CN101777027B (zh) * 2010-01-21 2012-06-06 龙芯中科技术有限公司 基于动静态混合调度策略的访存操作管理装置及其方法
GB2494731B (en) * 2011-09-06 2013-11-20 Nds Ltd Preventing data extraction by sidechannel attack

Also Published As

Publication number Publication date
JP2014174994A (ja) 2014-09-22
EP2778906A1 (en) 2014-09-17
KR20140111416A (ko) 2014-09-19
CN104050034A (zh) 2014-09-17
US20140258690A1 (en) 2014-09-11
US9405546B2 (en) 2016-08-02
KR102028729B1 (ko) 2019-11-04
CN104050034B (zh) 2019-11-01

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
US10241797B2 (en) Replay reduction by wakeup suppression using early miss indication
JP5512803B2 (ja) ベクトル命令を取り扱うためのデータ処理装置および方法
KR101361928B1 (ko) 스레드 이송 시의 캐시 프리필링
JP4170218B2 (ja) キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置
JP6633119B2 (ja) 自律的メモリの方法及びシステム
KR20190033084A (ko) 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적
US20220113966A1 (en) Variable latency instructions
US20240036876A1 (en) Pipeline protection for cpus with save and restore of intermediate results
JP6474196B2 (ja) 静的スケジュールプロセッサのノンブロッキング実行装置及び方法
JP2020507848A (ja) メモリシステムへの加速されたアクセスを提供するための方法及び機器
CN110806900A (zh) 一种访存指令处理方法及处理器
US9639472B2 (en) Prefetch list management in a computer system
EP3543846B1 (en) Computer system and memory access technology
US9507725B2 (en) Store forwarding for data caches
US20090228692A1 (en) Load Register Instruction Short Circuiting Method
US11474946B2 (en) Calculator and calculation method
US20120191910A1 (en) Processing circuit and method for reading data
JP5843804B2 (ja) 演算装置およびエラー処理方法
US9983932B2 (en) Pipeline processor and an equal model compensator method and apparatus to store the processing result
JP5440083B2 (ja) シミュレーション装置、方法およびプログラム
CN113853584A (zh) 可变延时指令
JP2014134852A (ja) キャッシュメモリ、キャッシュメモリの検索方法、情報処理装置、およびプログラム
WO2019134376A1 (zh) 虚拟地址确定方法及装置、处理器、存储介质
JP5993687B2 (ja) ワンチッププロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180921

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20181004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190129

R150 Certificate of patent or registration of utility model

Ref document number: 6474196

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250