JP5621232B2 - Out-of-order execution processor - Google Patents

Out-of-order execution processor Download PDF

Info

Publication number
JP5621232B2
JP5621232B2 JP2009210866A JP2009210866A JP5621232B2 JP 5621232 B2 JP5621232 B2 JP 5621232B2 JP 2009210866 A JP2009210866 A JP 2009210866A JP 2009210866 A JP2009210866 A JP 2009210866A JP 5621232 B2 JP5621232 B2 JP 5621232B2
Authority
JP
Japan
Prior art keywords
instruction
execution
stop
resumption
report
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
JP2009210866A
Other languages
Japanese (ja)
Other versions
JP2011060129A (en
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009210866A priority Critical patent/JP5621232B2/en
Publication of JP2011060129A publication Critical patent/JP2011060129A/en
Application granted granted Critical
Publication of JP5621232B2 publication Critical patent/JP5621232B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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, look ahead

Description

本発明は、インオーダー(In−Order)に比べて高速に動作するアウトオブオーダー(Out−of−Order)実行プロセッサに関する。   The present invention relates to an out-of-order execution processor that operates at a higher speed than in-order.

プログラムに記述された順に命令を実行する場合、その方式はインオーダーとアウトオブオーダーとに分けられる。プログラムに記述された命令が第1命令、第2命令、第3命令、…の順である場合を想定する。   When instructions are executed in the order described in the program, the method is divided into in-order and out-of-order. Assume that the instructions described in the program are in the order of the first instruction, the second instruction, the third instruction,.

インオーダーの場合、プログラムに記述された命令が順に実行される。インオーダーでは、例えば、第1命令、第2命令、第3命令、…の順に実行される。   In the case of in-order, the instructions described in the program are executed in order. In the in-order, for example, the first instruction, the second instruction, the third instruction,.

アウトオブオーダーの場合、実行時間の短縮のために、プログラムに記述された命令の順序が変更されて実行される。アウトオブオーダーでは、例えば、第2命令と第3命令の順番が入れ替わり、第1命令、第3命令、第2命令、…の順に実行され、第3命令が実行されている間に、メモリアクセスが行われるものとする。ここで、第3命令は、割り込みにより、第2命令の結果に依存しないものとする。この場合、正確な割り込みを実現しない。   In the case of out-of-order, in order to shorten the execution time, the order of instructions described in the program is changed and executed. In the out-of-order, for example, the order of the second instruction and the third instruction is switched, and the first instruction, the third instruction, the second instruction,... Are executed in this order, and the memory access is performed while the third instruction is being executed. Shall be performed. Here, it is assumed that the third instruction does not depend on the result of the second instruction due to an interrupt. In this case, an accurate interrupt is not realized.

しかし、従来のアウトオブオーダー実行プロセッサにおいて、次のような課題がある。   However, the conventional out-of-order execution processor has the following problems.

第1の課題として、実行される命令の順序が変更されるため、特定命令の実行の中断が困難なことである。即ち、命令単位で実行中断可能な状態を作り出すことは困難であった。   As a first problem, since the order of instructions to be executed is changed, it is difficult to interrupt the execution of a specific instruction. That is, it has been difficult to create a state in which execution can be interrupted in units of instructions.

第2の課題として、正確な実行の停止のサポートには大きいコストが必要で、かつ、ソフトウェア制御が必要であるため、特定命令を実行するタイミングでのメモリ状態のダンプができないことである。例えば、メモリダンプをとるとプログラムの実行を最初から再度実行する必要があり、長時間ジョブの解析の妨げとなっていた。   The second problem is that support for accurate stop of execution requires a large cost and requires software control, so that the memory state cannot be dumped at the timing of executing a specific instruction. For example, if a memory dump is taken, it is necessary to execute the program again from the beginning, which hinders long-term job analysis.

第3の課題として、近年の並列実行をサポートするプロセッサでの実行再開は、複数のコアをサイクル単位で同期させる必要があり、これができないことである。   As a third problem, the resumption of execution in a processor that supports parallel execution in recent years is because it is necessary to synchronize a plurality of cores in units of cycles, and this is not possible.

命令の処理に関連する技術を紹介する。   Introduces technologies related to instruction processing.

特許文献1には、プロセッサが記載されている。プロセッサは、命令のデコード情報と実行結果を蓄えるリオーダバッファと、1個以上の演算器を持つアウトオブオーダー実行プロセッサである。このプロセッサは、先行する命令が実行を完了しないと実行不可能な同期命令を検出する同期命令検出デコーダと、リオーダバッファにおいて同期命令検出デコーダの検出結果を記憶する同期フラグと、リオーダバッファの同期フラグが立っている命令の先行命令が全て実行完了したことを検出する同期完了検出回路と、同期完了検出回路の結果によって、リオーダバッファの同期フラグが立っている命令を演算器に投入させる同期命令発行回路を備え、同期命令の実行結果に依存しない後続命令は自らも同期命令でない限りアウトオブオーダー実行することを特徴としている。   Patent Document 1 describes a processor. The processor is an out-of-order execution processor having a reorder buffer for storing instruction decode information and execution results, and one or more arithmetic units. The processor includes a synchronous instruction detection decoder that detects a synchronous instruction that cannot be executed unless the preceding instruction completes execution, a synchronization flag that stores a detection result of the synchronous instruction detection decoder in the reorder buffer, and a synchronization flag of the reorder buffer Synchronous completion detection circuit that detects the completion of the execution of all the preceding instructions of the instruction that is standing, and issuance of a synchronous instruction that causes the arithmetic unit to input an instruction for which the synchronization flag of the reorder buffer is set based on the result of the synchronization completion detection circuit A subsequent instruction that includes a circuit and does not depend on the execution result of the synchronous instruction is executed out-of-order unless the instruction itself is a synchronous instruction.

特許文献2には、計算機システムが記載されている。計算機システムは、計算機システムに障害が発生した際に、主記憶部内の内容をメモリダンプとして外部記憶部に保存するものである。この計算機システムは、計算機システム内の状態を監視し、計算機システムが障害を起こしたと判断した場合に、メモリダンプ採取を行うための指示を行う状態監視部と、状態監視部からの指示に基づいて主記憶部の内容を外部記憶部に保存するメモリダンプ採取部と、状態監視部からの指示に基づき、計算機システムのリブートを行う起動初期化プログラム部と、メモリダンプ採取部にメモリダンプ採取を行わせるリセット手段とを備えたことを特徴としている。   Patent Document 2 describes a computer system. The computer system stores the contents in the main storage unit as a memory dump in the external storage unit when a failure occurs in the computer system. This computer system monitors the state in the computer system, and when it is determined that the computer system has failed, based on the instruction from the state monitoring unit and an instruction from the state monitoring unit for instructing to collect a memory dump A memory dump collection unit that saves the contents of the main storage unit to the external storage unit, a startup initialization program unit that reboots the computer system based on an instruction from the state monitoring unit, and a memory dump collection to the memory dump collection unit And a reset means for making it possible.

特許文献3には、情報処理装置が記載されている。情報処理装置は、ソフトウェア命令の先取りを行ってこの先取り命令をその実行まで保持する複数ステージからなるプログラムバッファを有し、主記憶装置に対する要求アドレスとソフトウェア命令の実行停止予定アドレスとを比較して両アドレスが一致したときにソフトウェア命令の実行停止をなすようにしたものである。この情報処理装置は、両アドレスの比較結果をプログラムバッファ内の各ステージのソフトウェア命令に対応して保持する比較結果保持手段と、プログラムバッファ内の実行しようとするソフトウェア命令が格納されているステージに対応する比較結果保持手段の内容が一致したときに、引続くソフトウェア命令の実行を抑止制御する制御手段とを含むことを特徴としている。   Patent Document 3 describes an information processing apparatus. The information processing apparatus has a program buffer composed of a plurality of stages for prefetching software instructions and holding the prefetch instructions until the execution, and compares the request address for the main storage device with the execution stop scheduled address of the software instruction. When the two addresses match, the execution of the software instruction is stopped. This information processing apparatus includes comparison result holding means for holding the comparison result of both addresses corresponding to the software instruction of each stage in the program buffer, and a stage in which the software instruction to be executed in the program buffer is stored. And control means for controlling to inhibit execution of the subsequent software instruction when the contents of the corresponding comparison result holding means match.

特許文献4には、情報処理装置が記載されている。情報処理装置は、先行制御方式を採用するものである。この情報処理装置は、一つ又は複数の特定条件を設定する第1の手段と、命令列実行中に前記第1の手段で設定した特定の条件を検出する第2の手段と、前記第2の手段により特定の条件を検出したときに、前記命令列の実行を一次中断してある一命令を実行した後、前記命令列の実行を再開する第3の手段とを具備したことを特徴としている。   Patent Document 4 describes an information processing apparatus. The information processing apparatus employs a preceding control method. The information processing apparatus includes: a first unit that sets one or a plurality of specific conditions; a second unit that detects a specific condition set by the first unit during instruction sequence execution; and the second unit And a third means for resuming execution of the instruction sequence after executing the one instruction that is temporarily interrupted when the specific condition is detected by the means. Yes.

特開2001−51846号公報(請求項1)JP 2001-51846 A (Claim 1) 特開2007−94537号公報(請求項1)JP 2007-94537 A (Claim 1) 特開平1−240941号公報(請求項1)JP-A-1-240941 (Claim 1) 特開平5−143378号公報(請求項1)JP-A-5-143378 (Claim 1)

本発明の課題は、特定命令に対して正確な実行中断・再開を行うアウトオブオーダー実行プロセッサを提供することにある。   An object of the present invention is to provide an out-of-order execution processor that accurately suspends and resumes execution of a specific instruction.

本発明のアウトオブオーダー実行プロセッサは、命令発行制御部と、命令アドレスチェック部と、命令デコーダと、実行再開フィルタ部とを具備している。命令発行制御部は、プログラムに記述された順に命令を発行する。命令アドレスチェック部は、プログラムに順に記述された命令のうちの特定命令のアドレスを保持し、命令発行制御部に発行された命令のアドレスが特定命令のアドレスに一致する場合、ストップ命令検出指示を出力する。命令デコーダは、命令発行制御部に発行された命令を順にデコードし、ストップ命令検出指示を受け取った場合、特定命令のデコードを中断し、ストップ命令検出報告を出力する。命令発行制御部は、ストップ命令検出報告に応じて、命令の発行を中断する。実行再開フィルタ部は、ストップ命令検出報告に応じて、命令の実行が中断している旨をユーザに通知するための命令実行停止報告を出力する。実行再開フィルタ部は、時間同期タイマを有し、ユーザによる実行再開指示を受け取ってから、時間同期タイマが特定の時間に到達したとき、ユーザによる実行再開指示を命令実行再開指示として命令発行制御部に出力する。命令発行制御部は、命令実行再開指示に応じて、中断した命令の発行を再開する。   The out-of-order execution processor of the present invention includes an instruction issue control unit, an instruction address check unit, an instruction decoder, and an execution resumption filter unit. The instruction issue control unit issues instructions in the order described in the program. The instruction address check unit holds the address of a specific instruction among the instructions sequentially described in the program, and issues a stop instruction detection instruction when the address of the instruction issued to the instruction issue control unit matches the address of the specific instruction. Output. The instruction decoder sequentially decodes the instructions issued to the instruction issuance control unit, and when receiving a stop instruction detection instruction, interrupts the decoding of the specific instruction and outputs a stop instruction detection report. The instruction issuance control unit interrupts issuance of instructions in response to the stop instruction detection report. The execution restart filter unit outputs an instruction execution stop report for notifying the user that the execution of the instruction is interrupted in response to the stop instruction detection report. The execution resumption filter unit has a time synchronization timer. When the time synchronization timer reaches a specific time after receiving the execution resumption instruction by the user, the instruction resumption control unit uses the execution resumption instruction by the user as a command execution resumption instruction. Output to. The instruction issuance control unit resumes the issuance of the interrupted instruction in response to the instruction execution resumption instruction.

以上により、本発明のアウトオブオーダー実行プロセッサによれば、上述の構成・動作により、特定命令に対して正確な実行中断・再開を行うことができる。   As described above, according to the out-of-order execution processor of the present invention, it is possible to accurately suspend and resume execution of a specific instruction by the above-described configuration and operation.

図1は、本発明の実施形態によるアウトオブオーダー実行プロセッサの構成を示している。FIG. 1 shows the configuration of an out-of-order execution processor according to an embodiment of the present invention.

以下に添付図面を参照して、本発明の実施形態によるアウトオブオーダー実行プロセッサについて詳細に説明する。   Hereinafter, an out-of-order execution processor according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

[構成]
図1は、本発明の実施形態によるアウトオブオーダー実行プロセッサの構成を示している。
[Constitution]
FIG. 1 shows the configuration of an out-of-order execution processor according to an embodiment of the present invention.

本発明の実施形態によるアウトオブオーダー実行プロセッサは、命令発行制御部101、命令アドレスレジスタ部102、命令キャッシュ部103、命令アドレスチェック部104、命令デコーダ105、命令実行部106、システムコントロール部107、実行再開フィルタ部108、診断部109を具備している。   An out-of-order execution processor according to an embodiment of the present invention includes an instruction issue control unit 101, an instruction address register unit 102, an instruction cache unit 103, an instruction address check unit 104, an instruction decoder 105, an instruction execution unit 106, a system control unit 107, An execution restart filter unit 108 and a diagnosis unit 109 are provided.

本発明の実施形態によるアウトオブオーダー実行プロセッサは、コンピュータに適用され、そのコンピュータは、図示しないCPU(Central Processing Unit)と、図示しない記録媒体である記憶部とを具備している。記憶部には、コンピュータに実行させるためのコンピュータプログラムが記憶されている。CPUは、起動時などに記憶部からコンピュータプログラムを読み取って実行する。コンピュータプログラムは、上記の命令発行制御部101、命令アドレスレジスタ部102、命令キャッシュ部103、命令アドレスチェック部104、命令デコーダ105、命令実行部106、システムコントロール部107、実行再開フィルタ部108、診断部109を含んでいる。これらの動作については後述する。   An out-of-order execution processor according to an embodiment of the present invention is applied to a computer, and the computer includes a CPU (Central Processing Unit) (not shown) and a storage unit that is a recording medium (not shown). The storage unit stores a computer program to be executed by a computer. The CPU reads and executes the computer program from the storage unit at the time of startup or the like. The computer program includes the instruction issue control unit 101, the instruction address register unit 102, the instruction cache unit 103, the instruction address check unit 104, the instruction decoder 105, the instruction execution unit 106, the system control unit 107, the execution resumption filter unit 108, the diagnosis. Part 109 is included. These operations will be described later.

上述のコンピュータは、例えば、ベクトル型スーパーコンピュータであるものとする。この場合、本発明の実施形態によるアウトオブオーダー実行プロセッサは、ベクトル型スーパーコンピュータのスカラプロセッサ部分に利用される。   The computer described above is assumed to be a vector supercomputer, for example. In this case, the out-of-order execution processor according to the embodiment of the present invention is used for the scalar processor portion of the vector supercomputer.

[動作]
次に、本発明の実施形態によるアウトオブオーダー実行プロセッサの動作を説明する。
[Operation]
Next, the operation of the out-of-order execution processor according to the embodiment of the present invention will be described.

命令発行制御部101は、プログラムに記述された順に命令を発行する。   The instruction issue control unit 101 issues instructions in the order described in the program.

命令アドレスレジスタ部102は、命令発行制御部101に発行された命令のアドレスを保持する。   The instruction address register unit 102 holds an address of an instruction issued to the instruction issue control unit 101.

命令キャッシュ部103は、命令アドレスレジスタ部102に保持されたアドレスが表す命令を保持する。即ち、命令発行制御部101に発行された命令を保持する。   The instruction cache unit 103 holds an instruction represented by an address held in the instruction address register unit 102. That is, the command issued to the command issue control unit 101 is held.

命令アドレスチェック部104は、プログラムに順に記述された命令のうちの特定命令のアドレスを保持している。命令アドレスチェック部104は、命令アドレスレジスタ部102に保持されたアドレスが特定命令のアドレスと一致する場合、ストップ命令検出指示Aを命令デコーダ105に出力する。   The instruction address check unit 104 holds an address of a specific instruction among instructions sequentially described in the program. The instruction address check unit 104 outputs a stop instruction detection instruction A to the instruction decoder 105 when the address held in the instruction address register unit 102 matches the address of the specific instruction.

命令デコーダ105は、命令キャッシュ部103に保持された命令を順にデコードする。命令デコーダ105は、ストップ命令検出指示Aを受け取った場合、命令キャッシュ部103に保持された特定命令のデコードを中断し、ストップ命令検出報告Bを実行再開フィルタ部108と命令発行制御部101とに出力し、命令実行再開要求B’をシステムコントロール部107に出力する。このとき、実行再開フィルタ部108は、ストップ命令検出報告Bに応じて、実行中断を表す実行中断フラグ110を内部で保持する。また、命令発行制御部101は、ストップ命令検出報告Bに応じて、命令の発行を中断する。   The instruction decoder 105 sequentially decodes the instructions held in the instruction cache unit 103. When the instruction decoder 105 receives the stop instruction detection instruction A, the instruction decoder 105 interrupts the decoding of the specific instruction held in the instruction cache unit 103, and sends the stop instruction detection report B to the execution restart filter unit 108 and the instruction issuance control unit 101. The instruction execution restart request B ′ is output to the system control unit 107. At this time, the execution resumption filter unit 108 internally retains an execution interruption flag 110 indicating execution interruption according to the stop instruction detection report B. Further, the instruction issuance control unit 101 interrupts the issuance of instructions in response to the stop instruction detection report B.

命令実行部106は、命令デコーダ105にデコードされた命令を順に実行する。命令実行部106は、命令デコーダ105にデコードされた全ての命令を実行したとき、仕掛命令実行完了報告Cをシステムコントロール部107に出力する。   The instruction execution unit 106 executes the instructions decoded by the instruction decoder 105 in order. The instruction execution unit 106 outputs an in-process instruction execution completion report C to the system control unit 107 when all instructions decoded by the instruction decoder 105 are executed.

システムコントロール部107は、実行される命令を監視する。システムコントロール部107は、命令実行部106から仕掛命令実行完了報告Cを受け取ったとき、命令デコーダ105からの命令実行再開要求B’を命令実行再開要求Dとして実行再開フィルタ部108に出力する。   The system control unit 107 monitors instructions to be executed. When the system control unit 107 receives the in-process instruction execution completion report C from the instruction execution unit 106, the system control unit 107 outputs the instruction execution resumption request B ′ from the instruction decoder 105 to the execution resumption filter unit 108 as the instruction execution resumption request D.

実行再開フィルタ部108は、中断状態フラグ110を保持している場合、命令実行再開要求Dに応じて、命令の実行が中断している旨をユーザに通知するための命令実行停止報告を診断部109に出力する。   When the execution resumption filter unit 108 holds the interruption state flag 110, the diagnosis resumption unit reports a command execution stop report for notifying the user that the execution of the instruction is suspended in response to the instruction execution resumption request D. Output to 109.

診断部109は、命令実行停止報告に応じて、命令の実行が中断している旨をユーザに通知する。   The diagnosis unit 109 notifies the user that the execution of the instruction is interrupted in response to the instruction execution stop report.

この際にメモリダンプの取得や、メモリへのデータの書き込み(チェックポイントイメージの展開)などが実施できる。   At this time, acquisition of a memory dump, writing of data to a memory (development of a checkpoint image), and the like can be performed.

実行再開はユーザによる診断部109への実行再開指示で実現される。診断部109は、上記の通知に対して、ユーザによる実行再開指示を受け付ける。診断部109は、ユーザにより実行再開指示が行われた場合、その実行再開指示を実行再開フィルタ108に出力する。   Execution resumption is realized by a user's execution resumption instruction to the diagnosis unit 109. The diagnosis unit 109 receives an execution resumption instruction from the user in response to the notification. When the execution resumption instruction is issued by the user, the diagnosis unit 109 outputs the execution resumption instruction to the execution resumption filter 108.

実行再開フィルタ部108は、ユーザによる実行再開指示を受け取ってから、時間同期タイマ111によりカウントを開始する。カウントの結果、時間同期タイマ111が特定の時間に到達したとき、即ち、特定の時間が経過したとき、内部で保持している実行中断フラグ110を消去した上で、ユーザによる実行再開指示を命令実行再開指示Eとして命令発行制御部101に出力する。   The execution resumption filter unit 108 starts counting by the time synchronization timer 111 after receiving the execution resumption instruction from the user. As a result of counting, when the time synchronization timer 111 reaches a specific time, that is, when the specific time has elapsed, the execution interruption flag 110 held inside is erased and a command to resume execution by the user is issued. The instruction is output to the instruction issuance control unit 101 as an execution restart instruction E.

この際に、実行再開フィルタ部108内の時間同期タイマ111を利用して複数のプロセッサコアが時間同期して実行再開することができる。   At this time, a plurality of processor cores can resume execution in time synchronization using the time synchronization timer 111 in the execution restart filter unit 108.

命令発行制御部101は、命令実行再開指示Eに応じて、中断した命令の発行を再開する。   The instruction issuance control unit 101 resumes the issuance of the interrupted instruction in response to the instruction execution resumption instruction E.

なお、時間同期タイマ111による時間同期は、Network Timing Protocolなどで利用されるネットワーク遅延を考慮した時間同期を採用することで容易に実現可能である。通常のソフトウェア実装の場合にはマイクロ秒単位での時間同期が限界だが、ハードウェアで厳密にタイミングを計測することで数百ピコ秒単位の時間同期が実現できる。   Note that the time synchronization by the time synchronization timer 111 can be easily realized by adopting the time synchronization taking into account the network delay used in the Network Timing Protocol or the like. In the case of normal software implementation, time synchronization in microseconds is the limit, but time synchronization in units of several hundred picoseconds can be realized by strictly measuring timing with hardware.

[効果]
以上の説明により、本発明の実施形態によるアウトオブオーダー実行プロセッサによれば、第1の効果として、上述の構成・動作により、特定命令に対して正確な実行中断・再開を実現することができる。
[effect]
As described above, according to the out-of-order execution processor according to the embodiment of the present invention, as a first effect, it is possible to realize accurate execution interruption / resumption for a specific instruction by the above-described configuration / operation. .

また、本発明の実施形態によるアウトオブオーダー実行プロセッサによれば、第2の効果として、実行中断の実現でソフトウェア割り込みを利用していないので、実行中断時の正確なメモリダンプの採取ができることである。   Further, according to the out-of-order execution processor according to the embodiment of the present invention, as a second effect, since the software interruption is not used for realizing the execution interruption, it is possible to accurately collect the memory dump at the time of the execution interruption. is there.

また、本発明の実施形態によるアウトオブオーダー実行プロセッサによれば、第3の効果として、数百ピコ秒単位の同期状態からの実行再開を実現しているので、同一のチェックポイントのメモリダンプから実行状態の再現を実現できることである。   In addition, according to the out-of-order execution processor according to the embodiment of the present invention, as the third effect, the execution restart from the synchronization state of several hundred picoseconds is realized, so from the memory dump of the same checkpoint The reproduction of the execution state can be realized.

101 命令発行制御部、
102 命令アドレスレジスタ部、
103 命令キャッシュ部、
104 命令アドレスチェック部、
105 命令デコーダ、
106 命令実行部、
107 システムコントロール部、
108 実行再開フィルタ部、
109 診断部、
110 実行中断フラグ、
111 時間同期タイマ、
A ストップ命令検出指示、
B ストップ命令検出報告、
B’ 命令実行再開要求、
C 仕掛命令実行完了報告、
D 命令実行再開要求、
E 命令実行再開指示
101 Instruction issue control unit,
102 Instruction address register section,
103 instruction cache unit,
104 Instruction address check part,
105 instruction decoder,
106 instruction execution unit,
107 system control unit,
108 execution restart filter unit,
109 diagnostic department,
110 execution interruption flag,
111 time synchronization timer,
A Stop command detection instruction,
B Stop command detection report,
B 'instruction execution restart request,
C In-process instruction execution completion report,
D command execution resume request,
E Instruction resumption instruction

Claims (13)

プログラムに記述された順に命令を発行する命令発行制御部と、
前記プログラムに順に記述された命令のうちの特定命令のアドレスを保持し、前記命令発行制御部に発行された命令のアドレスが前記特定命令のアドレスに一致する場合、ストップ命令検出指示を出力する命令アドレスチェック部と、
前記命令発行制御部に発行され、命令キャッシュ部に保持された命令を順にデコードし、前記命令アドレスチェック部から出力された前記ストップ命令検出指示を受け取った場合、前記特定命令のデコードを中断し、ストップ命令検出報告を出力する命令デコーダと、
時間同期タイマを有する実行再開フィルタ部と
を具備し、
前記命令発行制御部は、前記ストップ命令検出報告に応じて、命令の発行を中断し、
前記実行再開フィルタ部は、
前記ストップ命令検出報告に応じて、命令の実行が中断している旨をユーザに通知するための命令実行停止報告を出力し、
ユーザによる実行再開指示を受け取ってから、前記時間同期タイマが特定の時間に到達したとき、前記ユーザによる実行再開指示を命令実行再開指示として前記命令発行制御部に出力し、
前記命令発行制御部は、前記命令実行再開指示に応じて、中断した命令の発行を再開するアウトオブオーダー実行プロセッサ。
An instruction issue control unit for issuing instructions in the order described in the program;
An instruction that holds the address of a specific instruction among the instructions sequentially described in the program and outputs a stop instruction detection instruction when the address of the instruction issued to the instruction issue control unit matches the address of the specific instruction An address check section;
The instructions issued to the instruction issuance control unit and the instructions held in the instruction cache unit are sequentially decoded.When the stop instruction detection instruction output from the instruction address check unit is received, the decoding of the specific instruction is interrupted, An instruction decoder for outputting a stop instruction detection report;
An execution resumption filter unit having a time synchronization timer,
The instruction issuance control unit interrupts issuance of an instruction in response to the stop instruction detection report,
The execution restart filter unit
In response to the stop instruction detection report, output an instruction execution stop report for notifying the user that the execution of the instruction is interrupted,
When the time synchronization timer reaches a specific time after receiving the execution resumption instruction by the user, the execution resumption instruction by the user is output as the instruction execution resumption instruction to the instruction issuance control unit,
The instruction issue control unit is an out-of-order execution processor that resumes issuing an interrupted instruction in response to the instruction execution restart instruction.
前記命令デコーダにデコードされた命令を順に実行し、前記命令デコーダにデコードされた全ての命令を実行したとき、仕掛命令実行完了報告を出力する命令実行部と、
前記仕掛命令実行完了報告を受け取ったとき、命令実行再開要求を出力するシステムコントロール部と
を更に具備し、
前記実行再開フィルタ部は、前記ストップ命令検出報告に応じて、実行中断を表す実行中断フラグを保持し、前記実行中断フラグを保持している場合、前記命令実行再開要求に応じて、前記命令実行停止報告を出力する
請求項1に記載のアウトオブオーダー実行プロセッサ。
An instruction execution unit that sequentially executes instructions decoded by the instruction decoder and outputs an in-process instruction execution completion report when all the instructions decoded by the instruction decoder are executed;
A system control unit that outputs an instruction execution restart request when the in-process instruction execution completion report is received;
The execution resumption filter unit holds an execution interruption flag indicating execution interruption in response to the stop instruction detection report. When the execution interruption flag is held, the instruction execution is executed in response to the instruction execution resumption request. The out-of-order execution processor according to claim 1, which outputs a stop report.
前記命令デコーダは、前記ストップ命令検出指示を受け取った場合、前記特定命令のデコードを中断し、前記ストップ命令検出報告と命令実行再開要求とを出力し、
前記システムコントロール部は、前記仕掛命令実行完了報告を受け取ったとき、前記命令デコーダからの命令実行再開要求を前記命令実行再開要求として出力する
請求項2に記載のアウトオブオーダー実行プロセッサ。
The instruction decoder, when receiving the stop instruction detection instruction, interrupts the decoding of the specific instruction, outputs the stop instruction detection report and an instruction execution restart request,
The out-of-order execution processor according to claim 2, wherein the system control unit outputs an instruction execution resumption request from the instruction decoder as the instruction execution resumption request when receiving the in-process instruction execution completion report.
前記実行再開フィルタ部は、前記ユーザによる命令実行再開指示を受け取ってから、前記時間同期タイマが特定の時間に到達したとき、内部で保持している前記実行中断フラグを消去した上で、前記ユーザによる命令実行再開指示を前記命令実行再開指示として前記命令発行制御部に出力する
請求項2又は3に記載のアウトオブオーダー実行プロセッサ。
The execution resumption filter unit, after receiving the instruction execution resumption instruction by the user, when the time synchronization timer reaches a specific time, erases the execution interruption flag held therein, The out-of-order execution processor according to claim 2, wherein the instruction execution resumption instruction is output to the instruction issuance control unit as the instruction execution resumption instruction.
前記命令実行停止報告に応じて、命令の実行が中断している旨をユーザに通知し、その通知に対してユーザによる命令実行再開指示を受け付ける診断部
を更に具備する請求項1〜4のいずれかに記載のアウトオブオーダー実行プロセッサ。
5. The diagnostic section according to claim 1, further comprising: a diagnosis unit that notifies the user that the execution of the instruction is interrupted in response to the instruction execution stop report, and receives an instruction execution resumption instruction by the user in response to the notification. An out-of-order execution processor.
前記命令発行制御部に発行された命令のアドレスを保持する命令アドレスレジスタ部を更に具備し、
前記命令アドレスチェック部は、前記命令アドレスレジスタ部に保持された命令のアドレスが前記特定命令のアドレスに一致する場合、前記ストップ命令検出指示を出力する
請求項1〜5のいずれかに記載のアウトオブオーダー実行プロセッサ。
An instruction address register unit that holds an address of an instruction issued to the instruction issue control unit;
The out instruction according to claim 1, wherein the instruction address check unit outputs the stop instruction detection instruction when an instruction address held in the instruction address register unit matches an address of the specific instruction. Ob-order execution processor.
命令デコーダを有するプロセッサを用いる方法であって、
(S1) プログラムに記述された順に命令を発行するステップと、
(S2) 前記(S1)のステップに発行された命令のアドレスが、前記プログラムに順に記述された命令のうちの特定命令のアドレスに一致する場合、ストップ命令検出指示を出力するステップと、
(S3) 前記(S1)のステップに発行され、命令キャッシュ部に保持された命令を順にデコードするステップと、
(S4) 前記ストップ命令検出指示を受け取った場合、前記特定命令のデコードを中断し、ストップ命令検出報告を出力するステップと、
(S5) 前記ストップ命令検出報告に応じて、命令の発行を中断するステップと、
(S6) 前記ストップ命令検出報告に応じて、命令の実行が中断している旨をユーザに通知するための命令実行停止報告を出力するステップと、
(S7) ユーザによる実行再開指示を受け取ってから、特定の時間に到達したとき、前記ユーザによる実行再開指示を命令実行再開指示として出力するステップと、
(S8) 前記命令実行再開指示に応じて、中断した命令の発行を再開するステップと
を具備するアウトオブオーダー実行方法。
A method using a processor having an instruction decoder comprising:
(S1) issuing instructions in the order described in the program;
(S2) a step of outputting a stop instruction detection instruction when the address of the instruction issued in the step of (S1) matches the address of a specific instruction among the instructions sequentially described in the program;
(S3) sequentially decoding instructions issued to the step (S1) and held in the instruction cache unit;
(S4) when receiving the stop instruction detection instruction, interrupting decoding of the specific instruction and outputting a stop instruction detection report;
(S5) interrupting issuance of an instruction in response to the stop instruction detection report;
(S6) outputting a command execution stop report for notifying the user that execution of the command is interrupted in response to the stop command detection report;
(S7) a step of outputting the execution resumption instruction by the user as an instruction execution resumption instruction when a specific time is reached after receiving the execution resumption instruction by the user;
(S8) An out-of-order execution method comprising a step of resuming issuance of a suspended instruction in response to the instruction execution resumption instruction.
(S9) 前記(S3)のステップによりデコードされた命令を順に実行するステップと、
(S10) 前記(S3)のステップによりデコードされた全ての命令を実行したとき、仕掛命令実行完了報告を出力するステップと、
(S11) 前記仕掛命令実行完了報告を受け取ったとき、命令実行再開要求を出力するステップと
を更に具備し、
前記(S6)のステップは、前記ストップ命令検出報告に応じて、実行中断を表す実行中断フラグを保持し、前記実行中断フラグを保持している場合、前記命令実行再開要求に応じて、前記命令実行停止報告を出力する
請求項7に記載のアウトオブオーダー実行方法。
(S9) sequentially executing the instructions decoded in the step (S3);
(S10) a step of outputting an in-process instruction execution completion report when all the instructions decoded in the step of (S3) are executed;
(S11) further comprising a step of outputting an instruction execution restart request when the in-process instruction execution completion report is received;
The step of (S6) holds an execution interruption flag indicating execution interruption in response to the stop instruction detection report. When the execution interruption flag is held, the instruction in response to the instruction execution restart request The out-of-order execution method according to claim 7, wherein an execution stop report is output.
前記(S4)のステップは、前記ストップ命令検出指示を受け取った場合、前記特定命令のデコードを中断し、前記ストップ命令検出報告と命令実行再開要求とを出力し、
前記(S11)のステップは、前記仕掛命令実行完了報告を受け取ったとき、前記命令デコーダからの命令実行再開要求を前記命令実行再開要求として出力する
請求項8に記載のアウトオブオーダー実行方法。
The step of (S4), when receiving the stop instruction detection instruction, interrupts the decoding of the specific instruction, outputs the stop instruction detection report and an instruction execution restart request,
9. The out-of-order execution method according to claim 8, wherein the step of (S11) outputs an instruction execution restart request from the instruction decoder as the instruction execution restart request when the in-process instruction execution completion report is received.
前記(S7)のステップは、前記ユーザによる命令実行再開指示を受け取ってから、時間同期タイマが特定の時間に到達したとき、内部で保持している前記実行中断フラグを消去した上で、前記ユーザによる命令実行再開指示を前記命令実行再開指示として出力する
請求項8又は9に記載のアウトオブオーダー実行方法。
In the step (S7), when the time synchronization timer reaches a specific time after receiving the instruction execution resumption instruction by the user, the execution interruption flag held inside is erased, and then the user 10. The out-of-order execution method according to claim 8 or 9, wherein an instruction execution resumption instruction is output as the instruction execution resumption instruction.
(S12) 前記命令実行停止報告に応じて、命令の実行が中断している旨をユーザに通知し、その通知に対してユーザによる命令実行再開指示を受け付けるステップ
を更に具備する
請求項7〜10のいずれかに記載のアウトオブオーダー実行方法。
(S12) The system further comprises a step of notifying the user that the execution of the instruction is interrupted in response to the instruction execution stop report and receiving an instruction execution resumption instruction by the user in response to the notification. The out-of-order execution method described in any of the above.
(S13) 前記(S1)のステップに発行された命令のアドレスを保持するステップ
を更に具備し、
前記(S2)のステップは、前記(S13)のステップに保持された命令のアドレスが前記特定命令のアドレスに一致する場合、前記ストップ命令検出指示を出力する
請求項7〜11のいずれかに記載のアウトオブオーダー実行方法。
(S13) further comprising a step of holding an address of an instruction issued in the step (S1);
The step (S2) outputs the stop instruction detection instruction when the address of the instruction held in the step (S13) matches the address of the specific instruction. Out-of-order execution method.
請求項7〜12のいずれかに記載のアウトオブオーダー実行方法の各ステップをコンピュータに実行させるコンピュータプログラム。   The computer program which makes a computer perform each step of the out-of-order execution method in any one of Claims 7-12.
JP2009210866A 2009-09-11 2009-09-11 Out-of-order execution processor Active JP5621232B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009210866A JP5621232B2 (en) 2009-09-11 2009-09-11 Out-of-order execution processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009210866A JP5621232B2 (en) 2009-09-11 2009-09-11 Out-of-order execution processor

Publications (2)

Publication Number Publication Date
JP2011060129A JP2011060129A (en) 2011-03-24
JP5621232B2 true JP5621232B2 (en) 2014-11-12

Family

ID=43947665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009210866A Active JP5621232B2 (en) 2009-09-11 2009-09-11 Out-of-order execution processor

Country Status (1)

Country Link
JP (1) JP5621232B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01205349A (en) * 1988-02-12 1989-08-17 Nec Corp Queuing possible type debugging system
JP2002163126A (en) * 2000-11-28 2002-06-07 Nec Microsystems Ltd Event detecting circuit embedded in debugging cpu, event detecting method, and external peripheral circuit
US20040040013A1 (en) * 2002-08-26 2004-02-26 Mohit Kalra Time-based breakpoints in debuggers
JP2006163566A (en) * 2004-12-03 2006-06-22 Seiko Epson Corp Information processor
JP4382833B2 (en) * 2007-04-23 2009-12-16 日本テキサス・インスツルメンツ株式会社 Processor
JP2009048474A (en) * 2007-08-21 2009-03-05 Toshiba Corp Semiconductor integrated circuit device

Also Published As

Publication number Publication date
JP2011060129A (en) 2011-03-24

Similar Documents

Publication Publication Date Title
JP5450336B2 (en) Saving and restoring register state
JP4222370B2 (en) Program for causing a computer to execute a debugging support apparatus and a debugging processing method
KR102571928B1 (en) Programmable instruction buffering
JP6367490B2 (en) Memory access protection with processor transactional memory support
JP2005539322A5 (en)
CN101395585A (en) Firmware extendable commands for a microcontroller based flash memory digital controller
JP5155655B2 (en) Microprocessor output port and control of instructions provided from it
JP3088129B2 (en) Microprocessor
JP5621232B2 (en) Out-of-order execution processor
JP2004302731A (en) Information processor and method for trouble diagnosis
JP2008269390A (en) Processor
US9886396B2 (en) Scalable event handling in multi-threaded processor cores
JP2008262557A (en) Task management device for controller and task management method for controller
JP2006221606A (en) Data processor
KR20210087431A (en) Devices and data processing methods for transactional memory
JP2004127154A (en) Information processor, instruction emulation device and instruction emulation processing/execution method
JP3977694B2 (en) Reset device
JP6399772B2 (en) Microprocessor and apparatus
JP5211511B2 (en) Process execution device, process execution method, and program
JP2010044699A (en) Information processor
JP2017102887A (en) Information processing device, start method, and start program
JPH08161185A (en) Guest execution control system for virtual computer system
JP2008299740A (en) Asynchronous microprocessor and electronic information device
JP6477248B2 (en) Arithmetic processing device and processing method of arithmetic processing device
JP2001005689A (en) Trace sampling circuit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131010

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140409

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140611

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140618

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: 20140826

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140908

R150 Certificate of patent or registration of utility model

Ref document number: 5621232

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150