JP5211511B2 - Process execution device, process execution method, and program - Google Patents

Process execution device, process execution method, and program Download PDF

Info

Publication number
JP5211511B2
JP5211511B2 JP2007051369A JP2007051369A JP5211511B2 JP 5211511 B2 JP5211511 B2 JP 5211511B2 JP 2007051369 A JP2007051369 A JP 2007051369A JP 2007051369 A JP2007051369 A JP 2007051369A JP 5211511 B2 JP5211511 B2 JP 5211511B2
Authority
JP
Japan
Prior art keywords
thread
memory
cycle
executed
memory access
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.)
Expired - Fee Related
Application number
JP2007051369A
Other languages
Japanese (ja)
Other versions
JP2008217210A (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 JP2007051369A priority Critical patent/JP5211511B2/en
Publication of JP2008217210A publication Critical patent/JP2008217210A/en
Application granted granted Critical
Publication of JP5211511B2 publication Critical patent/JP5211511B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Advance Control (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、所定の処理を実行する処理実行装置、処理実行方法及びプログラムに関する。   The present invention relates to a process execution device, a process execution method, and a program for executing a predetermined process.

近年、コンピュータにて所定の処理が行われる場合、複数の処理が同時に(並行して)行われているように見せるマルチスレッド処理を用いたプロセッサ等の制御装置が実用化されている(例えば、非特許文献1参照。)。   In recent years, when predetermined processing is performed by a computer, a control device such as a processor using multithread processing that makes it appear that a plurality of processes are performed simultaneously (in parallel) has been put into practical use (for example, (Refer nonpatent literature 1.).

このマルチスレッド処理においては、ある時点において現在スレッドが実行されているサイクルの次のサイクルに実行すべきスレッドが無いと判断された場合、当該次のサイクルは空きサイクルとなってしまい、無駄な時間が生じてしまう。   In this multi-thread processing, if it is determined that there is no thread to be executed in the cycle next to the cycle in which the current thread is being executed at a certain point in time, the next cycle becomes an empty cycle, and wasted time Will occur.

また、装置に設けられたメモリの正常性を確認するためのメモリチェックプロセスが、OSのスケジュール可能なプロセスとして実行される。そのとき、通常の処理と同様に、プロセスの優先度に基づいてスケジュールされるため、システムの処理性能とメモリチェックプロセスとにより達成される信頼性とはトレードオフの関係にある。
「Sun Niagara and an Evaluation of SMT in IBM's Power5」 http://www.cs.rice.edu/~johnmc/comp522/lecture-notes/Lecture4.pdf
In addition, a memory check process for confirming the normality of the memory provided in the apparatus is executed as a process that can be scheduled by the OS. At that time, as in normal processing, scheduling is performed based on the priority of the process. Therefore, the processing performance of the system and the reliability achieved by the memory check process are in a trade-off relationship.
“Sun Niagara and an Evaluation of SMT in IBM's Power5” http://www.cs.rice.edu/~johnmc/comp522/lecture-notes/Lecture4.pdf

しかしながら、非特許文献1に記載された技術では、全部のスレッドがメモリ待ちや、入出力(I/O)操作の完了待ち等で、実行可能ではなくなり、パイプラインの次のサイクルに有効な命令が投入できなくなってしまう虞がある。このサイクルは、処理装置の利用者が意図した処理がまったくできないサイクルであり、利用者から知るところでない。また、上述したようにシステムの処理性能と信頼性とはトレードオフの関係にあるため、システムの処理性能を上げようとするとシステムの信頼性が下がり、また、システムの信頼性を上げようとするとシステムの処理性能が下がってしまうという虞がある。   However, in the technique described in Non-Patent Document 1, all threads are not executable due to waiting for memory or completion of input / output (I / O) operations, and are effective in the next cycle of the pipeline. May not be able to be inserted. This cycle is a cycle in which processing intended by the user of the processing apparatus cannot be performed at all, and is not known from the user. Also, as mentioned above, there is a trade-off between system processing performance and reliability, so trying to increase system processing performance decreases system reliability and attempts to increase system reliability. There is a risk that the processing performance of the system will decrease.

本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、通常の処理性能に影響を与えずに高信頼のシステムを効率的に構築することができる処理実行装置、処理実行方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the problems of the conventional technology as described above, and is capable of efficiently constructing a highly reliable system without affecting normal processing performance. An object is to provide an apparatus, a process execution method, and a program.

上記目的を達成するために本発明は、
メモリを有し、複数のスレッドを所定のサイクルでパイプライン実行するための処理実行装置であって、
現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかを判断する実行決定部と、
前記実行決定部にて次のサイクルに実行可能なスレッドが無いと判断された場合、前記メモリの正常性を確認するメモリアクセススレッドを起動するメモリアクセススレッド起動部と、
前記メモリアクセススレッド起動部にて前記メモリアクセススレッドが起動した後、前記メモリの正常性を確認し、前記メモリが正常であると判断された場合、前記メモリアクセススレッドを休止状態にするメモリチェック部とを有する。
In order to achieve the above object, the present invention provides:
A processing execution device having a memory and executing a plurality of threads in a pipeline in a predetermined cycle,
An execution decision unit that determines whether there is a thread that can be executed in the cycle following the cycle in which the thread is currently being executed;
A memory access thread activation unit that activates a memory access thread for confirming the normality of the memory, when the execution determination unit determines that there is no thread that can be executed in the next cycle;
A memory check unit that checks the normality of the memory after the memory access thread is activated by the memory access thread activation unit and puts the memory access thread into a dormant state when it is determined that the memory is normal And have.

また、前記メモリチェック部は、前記メモリが正常ではないと判断された場合、異常を通知するための割り込みを発生することを特徴とする。   The memory check unit may generate an interrupt for notifying abnormality when it is determined that the memory is not normal.

また、該処理実行装置は、制御プロセッサであることを特徴とする。   The processing execution device is a control processor.

また、複数のスレッドをサイクリックにパイプライン処理する処理実行方法であって、
現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかを判断する処理と、
前記次のサイクルに実行可能なスレッドが無いと判断された場合、メモリの正常性を確認するメモリアクセススレッドを起動する処理と、
前記メモリアクセススレッドが起動した後、前記メモリの正常性を確認する処理と、
前記メモリが正常であると判断された場合、前記メモリアクセススレッドを休止状態にする処理とを有する。
In addition, a process execution method for cyclically processing a plurality of threads,
The process of determining whether there is a thread that can be executed in the cycle following the cycle in which the thread is currently executing;
When it is determined that there is no thread that can be executed in the next cycle, a process of starting a memory access thread for checking the normality of the memory; and
After the memory access thread is activated, a process for checking the normality of the memory;
And processing to put the memory access thread into a dormant state when it is determined that the memory is normal.

また、前記メモリが正常ではないと判断された場合、異常を通知するための割り込みを発生する処理を有することを特徴とする。   Further, it is characterized in that when it is determined that the memory is not normal, a process for generating an interrupt for notifying abnormality is provided.

また、複数のスレッドをサイクリックにパイプライン処理するためのプログラムであって、
現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかを判断する手順と、
前記次のサイクルに実行可能なスレッドが無いと判断された場合、メモリの正常性を確認するメモリアクセススレッドを起動する手順とをコンピュータに実行させる。
A program for cyclically processing a plurality of threads,
Steps to determine if there are any threads that can run in the next cycle after the current thread is running,
When it is determined that there is no thread that can be executed in the next cycle, the computer is caused to execute a procedure for starting a memory access thread for confirming the normality of the memory.

上記のように構成された本発明においては、複数のスレッドを所定のサイクルでパイプライン実行するために、現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかが判断され、次のサイクルに実行可能なスレッドが無いと判断された場合、メモリの正常性を確認するメモリアクセススレッドが起動し、メモリアクセススレッドが起動した後、メモリの正常性が確認され、メモリが正常であると判断された場合、メモリアクセススレッドが休止状態にされる。   In the present invention configured as described above, in order to pipeline execute a plurality of threads in a predetermined cycle, it is determined whether there is a thread that can be executed in the cycle following the cycle in which the current thread is executed. If it is determined that there is no thread that can be executed in the next cycle, the memory access thread that confirms the normality of the memory is activated, and after the memory access thread is activated, the normality of the memory is confirmed and the memory Is determined to be normal, the memory access thread is suspended.

これにより、空きのサイクルが発生した場合、その空きのサイクルにメモリをチェックするメモリアクセススレッドを実行することにより、サイクルの有効利用を実現することができる。   Thus, when an empty cycle occurs, effective use of the cycle can be realized by executing a memory access thread that checks the memory in the empty cycle.

以上説明したように本発明においては、複数のスレッドを所定のサイクルでパイプライン実行するために、実行決定部が現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかを判断し、次のサイクルに実行可能なスレッドが無いと判断された場合、メモリアクセススレッド起動部がメモリの正常性を確認するメモリアクセススレッドを起動し、メモリアクセススレッドが起動した後、メモリチェック部がメモリの正常性を確認し、メモリが正常であると判断された場合、メモリアクセススレッドを休止状態にする構成としたため、通常の処理性能に影響を与えずに高信頼のシステムを効率的に構築することができる。   As described above, in the present invention, in order to pipeline execute a plurality of threads in a predetermined cycle, is there a thread that can be executed in the cycle following the cycle in which the execution determination unit is currently executing the thread? If it is determined that there is no thread that can be executed in the next cycle, the memory access thread activation unit activates the memory access thread to check the normality of the memory, and after the memory access thread is activated, the memory When the check unit checks the normality of the memory and it is determined that the memory is normal, the memory access thread is put into a dormant state, so that a highly reliable system can be efficiently used without affecting normal processing performance. Can be built.

以下に、本発明の実施の形態について図面を参照して説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図1は、本発明の処理実行装置の実施の一形態を示す図である。   FIG. 1 is a diagram showing an embodiment of a processing execution apparatus according to the present invention.

本形態は図1に示すように、実行決定部103と、メモリアクセススレッド起動部104と、命令デコード部105と、命令実行部106と、メモリアクセス部107と、命令完了確認部108と、メモリ109とから構成されている。   In this embodiment, as shown in FIG. 1, the execution determination unit 103, the memory access thread activation unit 104, the instruction decoding unit 105, the instruction execution unit 106, the memory access unit 107, the instruction completion confirmation unit 108, 109.

実行決定部103は、処理するスレッドを選択する。本形態では、スレッド101−1〜スレッド101−4の状態に基づいて、スレッド101−1〜スレッド101−4うち1つのスレッドを選択する。ここで、選択された命令実行に必要なデータがレジスタ(不図示)から取り出され、スレッド101−1〜101−4それぞれに予め付与されたスレッド番号とともに以下に説明するパイプラインで持ちまわりされる。また、現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかを判断する。また、ここではスレッド101−1〜101−4の数が4つの場合を例に挙げたが、その数は4つに限らない。   The execution determining unit 103 selects a thread to be processed. In this embodiment, one thread is selected from the threads 101-1 to 101-4 based on the states of the threads 101-1 to 101-4. Here, data necessary for execution of the selected instruction is taken out from a register (not shown), and is carried around in the pipeline described below together with thread numbers given in advance to the respective threads 101-1 to 101-4. . In addition, it is determined whether there is a thread that can be executed in the cycle following the cycle in which the thread is currently being executed. Although the case where the number of threads 101-1 to 101-4 is four is taken as an example here, the number is not limited to four.

メモリアクセススレッド起動部104は、実行決定部103にて、現在スレッドが実行されているサイクルの次のサイクルに実行すべきスレッドが無いと判断された場合、メモリアクセススレッド102を起動する。このメモリアクセススレッド102は、メモリ109の正常性を確認するスレッドである。メモリ109の正常性の確認方法については、所定のデータをメモリ109に書き込み、その後メモリ109から読み出されたデータと書き込まれたデータとを比較することによる確認等の従来の方法を使用すれば良く、ここでは特に規定しない。また、メモリアクセススレッド102が起動した場合、起動しているスレッドがメモリアクセススレッド102である旨を示す情報が、以下に説明するパイプラインで持ちまわりされる。   The memory access thread activation unit 104 activates the memory access thread 102 when the execution determination unit 103 determines that there is no thread to be executed in the cycle next to the cycle in which the thread is currently being executed. This memory access thread 102 is a thread for confirming the normality of the memory 109. As a method for confirming the normality of the memory 109, a conventional method such as confirmation by writing predetermined data into the memory 109 and then comparing the data read from the memory 109 with the written data may be used. Well, not specified here. When the memory access thread 102 is activated, information indicating that the activated thread is the memory access thread 102 is carried around in the pipeline described below.

命令デコード部105は、実行決定部103にて取り出された命令、または、メモリアクセススレッド102の命令をデコードし、当該命令の動作を決定する。   The instruction decoding unit 105 decodes the instruction taken out by the execution determining unit 103 or the instruction of the memory access thread 102 and determines the operation of the instruction.

命令実行部106は、命令デコード部105にて決定された動作(演算実行)が行われる。   The instruction execution unit 106 performs the operation (calculation execution) determined by the instruction decoding unit 105.

メモリアクセス部107は、メモリ109に対して、命令実行部106にて演算が実行される際に必要なメモリアクセスを行う。   The memory access unit 107 performs memory access necessary when the instruction execution unit 106 executes an operation on the memory 109.

命令完了確認部108は、メモリアクセス部107によるメモリアクセスの終了を確認するメモリチェック部である。   The instruction completion confirmation unit 108 is a memory check unit that confirms the end of memory access by the memory access unit 107.

メモリ109は、処理をするためのデータを記憶するメモリである。メモリアクセススレッド102が起動し、メモリ109の正常性が確認され、正常である場合、スレッドサスペンド状態になる。また、異常である場合は、割り込みをOS等に通知する。なお、メモリ109は処理実行装置外に設けられているものであっても良い。   The memory 109 is a memory that stores data for processing. The memory access thread 102 is activated, the normality of the memory 109 is confirmed, and if it is normal, the thread suspend state is entered. If it is abnormal, an interrupt is notified to the OS or the like. Note that the memory 109 may be provided outside the processing execution apparatus.

なお、本発明は図1に示した形態のようにパイプライン処理を行うものである。   In the present invention, pipeline processing is performed as shown in FIG.

図2は、図1に示したスレッド101−1〜101−4のパイプライン処理の様子を模式化した図である。ここでは、各サイクルには空きのサイクルがない場合を例に挙げて説明する。   FIG. 2 is a diagram schematically showing the pipeline processing of the threads 101-1 to 101-4 shown in FIG. Here, a case where there is no empty cycle in each cycle will be described as an example.

まず、サイクル1にて、スレッド101−1の命令デコード処理(ID:Instruction Decording)が実行される。この命令デコード処理は、図1に示した命令デコード部105にて実行される処理である。   First, in cycle 1, an instruction decoding process (ID: Instruction Decording) of the thread 101-1 is executed. This instruction decoding process is a process executed by the instruction decoding unit 105 shown in FIG.

その後、サイクル2にて、スレッド101−1の命令実行処理(EX:Execute)が行われる。この命令実行処理は、図1に示した命令実行部106にて実行される処理である。また、サイクル2にて、スレッド101−2の命令デコード処理が実行される。   Thereafter, in cycle 2, instruction execution processing (EX: Execute) of the thread 101-1 is performed. This instruction execution process is a process executed by the instruction execution unit 106 shown in FIG. In cycle 2, the instruction decode process of the thread 101-2 is executed.

その後、サイクル3にて、スレッド101−1のメモリアクセス処理(MA:Memory Access)が実行される。このメモリアクセス処理は、メモリアクセス部107にて実行される処理である。また、サイクル3にて、スレッド101−2の命令実行処理が実行される。また、サイクル3にて、スレッド101−3の命令デコード処理が実行される。   Thereafter, in cycle 3, a memory access process (MA: Memory Access) of the thread 101-1 is executed. This memory access process is a process executed by the memory access unit 107. In cycle 3, the instruction execution process of the thread 101-2 is executed. In cycle 3, the instruction decoding process of the thread 101-3 is executed.

その後、サイクル4にて、スレッド101−1の命令完了確認処理(IC:Instruction Completion)が実行される。この命令完了確認処理は、図1に示した命令完了確認部108にて実行される処理である。また、サイクル4にて、スレッド101−2のメモリアクセス処理が実行される。また、サイクル4にて、スレッド101−3の命令実行処理が実行される。また、サイクル4にて、スレッド101−4の命令デコード処理が実行される。   Thereafter, in cycle 4, instruction completion confirmation processing (IC: Instruction Completion) of the thread 101-1 is executed. This instruction completion confirmation process is a process executed by the instruction completion confirmation unit 108 shown in FIG. In cycle 4, the memory access process of the thread 101-2 is executed. In cycle 4, the instruction execution process of the thread 101-3 is executed. In cycle 4, the instruction decoding process of the thread 101-4 is executed.

その後、サイクル5にて、スレッド101−2の命令完了確認処理が実行される。また、サイクル5にて、スレッド101−3のメモリアクセス処理が実行される。また、サイクル5にて、スレッド101−4の命令実行処理が実行される。   Thereafter, in cycle 5, the instruction completion confirmation process of the thread 101-2 is executed. In cycle 5, the memory access process of the thread 101-3 is executed. In cycle 5, the instruction execution process of the thread 101-4 is executed.

その後、サイクル6にて、スレッド101−3の命令完了確認処理が実行される。また、サイクル6にて、スレッド101−4のメモリアクセス処理が実行される。   Thereafter, in cycle 6, instruction completion confirmation processing of the thread 101-3 is executed. In cycle 6, the memory access process of the thread 101-4 is executed.

その後も、各スレッド101−1〜101−4の各処理が実行される。   Thereafter, the processes of the threads 101-1 to 101-4 are executed.

以下に、図1に示した形態における処理実行方法についてフローチャートを用いて説明する。   Below, the processing execution method in the form shown in FIG. 1 is demonstrated using a flowchart.

図3は、図1に示した処理実行装置における処理実行方法を説明するためのフローチャートである。   FIG. 3 is a flowchart for explaining a process execution method in the process execution apparatus shown in FIG.

まず、実行決定部103にて次のサイクルに実行可能なスレッドがあるかどうかが判断される(ステップS1)。ここでは、スレッド101−1〜101−4の状態に基づいて、次のサイクルに実行可能なスレッドがあるかどうかが判断される。つまり、例えば、あるサイクルで1つの処理が行われた次のサイクルが実行される時点で、所定の処理開始タイミングに満たないスレッドは実行可能なスレッドではないと判断される。   First, the execution determination unit 103 determines whether there is a thread that can be executed in the next cycle (step S1). Here, based on the state of the threads 101-1 to 101-4, it is determined whether there is a thread that can be executed in the next cycle. That is, for example, when a next cycle in which one process is performed in a certain cycle is executed, it is determined that a thread that does not satisfy the predetermined process start timing is not an executable thread.

ステップS1にて、例えば、スレッド101−1の処理が行われた次のサイクルでスレッド101−2が実行決定部103にて実行可能であると判断された場合を例に挙げて説明する。スレッド101−2が実行可能であると判断されると、命令デコード部105にて、スレッド101−2の命令がデコードされ(上述したID処理)、当該命令の動作が決定される(ステップS2)。   For example, a case where it is determined in step S1 that the thread 101-2 can be executed by the execution determination unit 103 in the next cycle in which the processing of the thread 101-1 is performed will be described. If it is determined that the thread 101-2 can be executed, the instruction decoding unit 105 decodes the instruction of the thread 101-2 (ID processing described above), and determines the operation of the instruction (step S2). .

そして、デコードされた命令の演算が命令実行部106にて実行(上述したEX処理)される(ステップS3)。このEX処理が行われる際に、演算実行に必要なメモリ109に対するメモリアクセス(上述したMA処理)がメモリアクセス部107によって行われる(ステップS4)。   Then, the operation of the decoded instruction is executed by the instruction execution unit 106 (EX process described above) (step S3). When this EX process is performed, the memory access unit 107 performs memory access (the above-described MA process) necessary for execution of the operation (step S4).

その後、メモリ109に対するメモリアクセスが正常に終了したかどうかが命令完了確認部108にて確認される(上述したIC処理)(ステップS5)。この正常終了の確認方法については、所定の正常性確認が終了したかどうかを判断する等の従来のメモリアクセスの正常処理確認方法を使用すれば良く、ここでは特に規定しない。   Thereafter, whether or not the memory access to the memory 109 is normally completed is confirmed by the instruction completion confirmation unit 108 (IC processing described above) (step S5). The normal termination confirmation method may be a conventional memory access normal processing confirmation method such as determining whether or not predetermined normality confirmation is completed, and is not particularly defined here.

一方、ステップS1にて、実行決定部103にて次のサイクルに実行可能なスレッドが無いと判断された場合は、メモリアクセススレッド起動部104によってメモリアクセススレッド102が起動する(ステップS6)。   On the other hand, when the execution determining unit 103 determines in step S1 that there is no thread that can be executed in the next cycle, the memory access thread starting unit 104 starts the memory access thread 102 (step S6).

メモリアクセススレッド102が起動すると、起動したメモリアクセススレッド102の命令が命令デコード部105にてデコードされ(上述したID処理)、当該命令の動作が決定される(ステップS7)。   When the memory access thread 102 is activated, the instruction of the activated memory access thread 102 is decoded by the instruction decoding unit 105 (ID processing described above), and the operation of the instruction is determined (step S7).

そして、デコードされた命令が命令実行部106にて実行(上述したEX処理)される(ステップS8)。メモリアクセススレッド102の命令は、メモリ109の正常性を確認するものであるため、そのためのメモリ109に対するメモリアクセス(上述したMA処理)がメモリアクセス部107によって行われ、メモリ109に異常があるかどうかが命令完了確認部108にて判断される(ステップS9)。   Then, the decoded instruction is executed (EX process described above) by the instruction execution unit 106 (step S8). Since the instruction of the memory access thread 102 is for confirming the normality of the memory 109, whether or not the memory 109 for that purpose is accessed by the memory access unit 107 (the above-described MA processing) and the memory 109 is abnormal. Whether or not the instruction completion confirmation unit 108 determines is determined (step S9).

メモリ109に異常があると判断された場合、割り込みが発生し、他のOSに通知される(ステップS10)。   When it is determined that there is an abnormality in the memory 109, an interrupt is generated and notified to another OS (step S10).

一方、メモリ109に異常が無いと判断された場合は、メモリアクセススレッド102はサスペンド(休止)状態となる(ステップS11)。   On the other hand, if it is determined that there is no abnormality in the memory 109, the memory access thread 102 enters a suspended (pause) state (step S11).

図4は、ステップS1にて次のサイクルに実行可能なスレッドが無いと判断され、空きのサイクルにおいてメモリアクセススレッド102が実行される場合の処理のサイクルの様子を模式化した図である。   FIG. 4 is a diagram schematically showing a process cycle when it is determined in step S1 that there is no thread that can be executed in the next cycle, and the memory access thread 102 is executed in an empty cycle.

図4に示すように、例えば、スレッド101−2が実行された次のサイクルにて実行可能なスレッドが無い場合、当該サイクルが空きスレッドとなり、その空きスレッドにメモリアクセススレッド102が挿入される形で実行されることとなる。   As shown in FIG. 4, for example, when there is no thread that can be executed in the next cycle in which the thread 101-2 is executed, the cycle becomes an empty thread, and the memory access thread 102 is inserted into the empty thread. Will be executed.

以上説明したように本発明においては、空きのサイクルが発生した場合、その空きのサイクルにメモリをチェックするメモリアクセススレッドを実行することにより、サイクルの有効利用を実現することができる。   As described above, in the present invention, when an empty cycle occurs, effective use of the cycle can be realized by executing a memory access thread that checks the memory in the empty cycle.

なお、本発明においては、その機能を実現するためのプログラムを処理実行装置にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを処理実行装置に読み込ませ、実行するものであっても良い。処理実行装置にて読取可能な記録媒体とは、フロッピーディスク(登録商標)、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、処理実行装置に内蔵されたHDD等を指す。この記録媒体に記録されたプログラムは、例えば、処理実行装置が有する制御部(不図示)にて読み込まれ、制御部の制御によって、上述したものと同様の処理が行われる。ここで、処理実行装置が有する制御部は、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。   In the present invention, a program for realizing the function is recorded on a recording medium readable by the processing execution device, and the program recorded on the recording medium is read by the processing execution device and executed. There may be. The recording medium readable by the processing execution device refers to a transfer medium such as a floppy disk (registered trademark), a magneto-optical disk, a DVD, and a CD, as well as an HDD built in the processing execution device. The program recorded on the recording medium is read by, for example, a control unit (not shown) included in the processing execution device, and the same processing as described above is performed under the control of the control unit. Here, the control unit included in the process execution device operates as a computer that executes a program read from a recording medium on which the program is recorded.

本発明の処理実行装置の実施の一形態を示す図である。It is a figure which shows one Embodiment of the process execution apparatus of this invention. 図1に示したスレッドのパイプライン処理の様子を模式化した図である。FIG. 2 is a diagram schematically illustrating a state of pipeline processing of a thread illustrated in FIG. 1. 図1に示した処理実行装置における処理実行方法を説明するためのフローチャートである。It is a flowchart for demonstrating the process execution method in the process execution apparatus shown in FIG. ステップS1にて次のサイクルに実行可能なスレッドが無いと判断され、空きのサイクルにおいてメモリアクセススレッドが実行される場合の処理のサイクルの様子を模式化した図である。FIG. 10 is a diagram schematically showing a process cycle when it is determined in step S1 that there is no thread that can be executed in the next cycle, and a memory access thread is executed in an empty cycle.

符号の説明Explanation of symbols

101−1〜101−4 スレッド
102 メモリアクセススレッド
103 実行決定部
104 メモリアクセススレッド起動部
105 命令デコード部
106 命令実行部
107 メモリアクセス部
108 命令完了確認部
109 メモリ
101-1 to 101-4 Thread 102 Memory Access Thread 103 Execution Determination Unit 104 Memory Access Thread Activation Unit 105 Instruction Decoding Unit 106 Instruction Execution Unit 107 Memory Access Unit 108 Instruction Completion Confirmation Unit 109 Memory

Claims (6)

メモリを有し、複数のスレッドを所定のサイクルでパイプライン実行するための処理実行装置であって、
現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかを判断する実行決定部と、
前記実行決定部にて次のサイクルに実行可能なスレッドが無いと判断された場合、前記メモリの正常性を確認するメモリアクセススレッドを起動するメモリアクセススレッド起動部と、
前記メモリアクセススレッド起動部にて前記メモリアクセススレッドが起動した後、前記メモリの正常性を確認し、前記メモリが正常であると判断された場合、前記メモリアクセススレッドを休止状態にするメモリチェック部とを有する処理実行装置。
A processing execution device having a memory and executing a plurality of threads in a pipeline in a predetermined cycle,
An execution decision unit that determines whether there is a thread that can be executed in the cycle following the cycle in which the thread is currently being executed;
A memory access thread activation unit that activates a memory access thread for confirming the normality of the memory, when the execution determination unit determines that there is no thread that can be executed in the next cycle;
A memory check unit that checks the normality of the memory after the memory access thread is activated by the memory access thread activation unit and puts the memory access thread into a dormant state when it is determined that the memory is normal And a process execution device.
請求項1に記載の処理実行装置において、
前記メモリチェック部は、前記メモリが正常ではないと判断された場合、異常を通知するための割り込みを発生することを特徴とする処理実行装置。
The process execution device according to claim 1,
The memory execution unit generates an interrupt for notifying an abnormality when it is determined that the memory is not normal.
請求項1または請求項2に記載の処理実行装置において、
該処理実行装置は、制御プロセッサであることを特徴とする処理実行装置。
In the processing execution device according to claim 1 or 2,
The process execution apparatus is a control processor.
複数のスレッドをサイクリックにパイプライン処理する処理実行方法であって、
現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかを判断する処理と、
前記次のサイクルに実行可能なスレッドが無いと判断された場合、メモリの正常性を確認するメモリアクセススレッドを起動する処理と、
前記メモリアクセススレッドが起動した後、前記メモリの正常性を確認する処理と、
前記メモリが正常であると判断された場合、前記メモリアクセススレッドを休止状態にする処理とを有する処理実行方法。
A process execution method that cyclically pipelines multiple threads,
The process of determining whether there is a thread that can be executed in the cycle following the cycle in which the thread is currently executing;
When it is determined that there is no thread that can be executed in the next cycle, a process of starting a memory access thread for checking the normality of the memory; and
After the memory access thread is activated, a process for checking the normality of the memory;
A process execution method comprising: setting the memory access thread to a dormant state when it is determined that the memory is normal.
請求項4に記載の処理実行方法において、
前記メモリが正常ではないと判断された場合、異常を通知するための割り込みを発生する処理を有することを特徴とする処理実行方法。
In the processing execution method of Claim 4,
A process execution method comprising a process of generating an interrupt for notifying an abnormality when it is determined that the memory is not normal.
複数のスレッドをサイクリックにパイプライン処理するためのプログラムであって、
現在スレッドが実行されているサイクルの次のサイクルに実行可能であるスレッドがあるかどうかを判断する手順と、
前記次のサイクルに実行可能なスレッドが無いと判断された場合、メモリの正常性を確認するメモリアクセススレッドを起動する手順とをコンピュータに実行させるプログラム。
A program for cyclically processing multiple threads,
Steps to determine if there are any threads that can run in the next cycle after the current thread is running,
A program for causing a computer to execute a procedure for starting a memory access thread for confirming normality of a memory when it is determined that there is no thread that can be executed in the next cycle.
JP2007051369A 2007-03-01 2007-03-01 Process execution device, process execution method, and program Expired - Fee Related JP5211511B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007051369A JP5211511B2 (en) 2007-03-01 2007-03-01 Process execution device, process execution method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007051369A JP5211511B2 (en) 2007-03-01 2007-03-01 Process execution device, process execution method, and program

Publications (2)

Publication Number Publication Date
JP2008217210A JP2008217210A (en) 2008-09-18
JP5211511B2 true JP5211511B2 (en) 2013-06-12

Family

ID=39837206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007051369A Expired - Fee Related JP5211511B2 (en) 2007-03-01 2007-03-01 Process execution device, process execution method, and program

Country Status (1)

Country Link
JP (1) JP5211511B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2580327B (en) * 2018-12-31 2021-04-28 Graphcore Ltd Register files in a multi-threaded processor

Also Published As

Publication number Publication date
JP2008217210A (en) 2008-09-18

Similar Documents

Publication Publication Date Title
KR101746018B1 (en) Method and apparatus for efficient scheduling for asymmetrical execution units
JP4703718B2 (en) Selective subroutine return structure
KR100983135B1 (en) Processor and method of grouping and executing dependent instructions in a packet
US20210382721A1 (en) Central processor-coprocessor synchronization
EP3948556A1 (en) Processor and interrupt controller
JP2011129104A (en) Adaptive optimized compare-exchange operation
JP3756409B2 (en) Data hazard detection system
TW201712535A (en) Vector operand bitsize control
WO2015039582A1 (en) Virtual resource allocation method and apparatus
JP2009258985A (en) Information processor and error correction method
JP4420055B2 (en) Multi-thread processor and inter-thread synchronous operation method used therefor
JP5211511B2 (en) Process execution device, process execution method, and program
US11256543B2 (en) Processor and instruction scheduling method
JP2008217070A (en) Computer system and memory system
JP2010152733A (en) Multi-core system
JPWO2009098737A1 (en) External device access apparatus, control method thereof, and system LSI
JP2006227923A (en) Disk management apparatus and program
EP3131004A1 (en) Processor and method
JP5007860B2 (en) Vector processing equipment
JP4975586B2 (en) Programmable controller that can execute multiple sequence programs in parallel
CN109390026A (en) data storage device and reading method
US11645185B2 (en) Detection of faults in performance of micro instructions
JP2010044699A (en) Information processor
US10481867B2 (en) Data input/output unit, electronic apparatus, and control methods thereof
JP2009251681A (en) Expansion method for stack region and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130211

R150 Certificate of patent or registration of utility model

Ref document number: 5211511

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees