JP4747028B2 - Microprocessor, information processing method and program using the same - Google Patents

Microprocessor, information processing method and program using the same Download PDF

Info

Publication number
JP4747028B2
JP4747028B2 JP2006132305A JP2006132305A JP4747028B2 JP 4747028 B2 JP4747028 B2 JP 4747028B2 JP 2006132305 A JP2006132305 A JP 2006132305A JP 2006132305 A JP2006132305 A JP 2006132305A JP 4747028 B2 JP4747028 B2 JP 4747028B2
Authority
JP
Japan
Prior art keywords
processing
branch
branch processing
test
executed
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
JP2006132305A
Other languages
Japanese (ja)
Other versions
JP2007304838A (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 Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2006132305A priority Critical patent/JP4747028B2/en
Publication of JP2007304838A publication Critical patent/JP2007304838A/en
Application granted granted Critical
Publication of JP4747028B2 publication Critical patent/JP4747028B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、マイクロプロセッサにかかり、特に、分岐処理を実行するマイクロプロセッサに関する。   The present invention relates to a microprocessor, and more particularly to a microprocessor that executes branch processing.

近年、処理の高速化のために、VLIW方式の計算機システムが開発されている。ここで、VLIW方式とは、並列動作可能な複数の演算器を独立した複数の命令の集まりであるVLIW(Very Long Instruction Word)と称さされる1個の長い命令語により制御する方式である。つまり、かかる方式の計算機システムは、並列動作可能な複数の演算器を備えており、VLIW上の独立した各命令により、当該各演算器を同期をとって個々にかつ並列に制御して作動する。   In recent years, VLIW computer systems have been developed to speed up processing. Here, the VLIW method is a method in which a plurality of arithmetic units capable of operating in parallel are controlled by one long instruction word called VLIW (Very Long Instruction Word) which is a collection of a plurality of independent instructions. That is, this type of computer system includes a plurality of arithmetic units capable of operating in parallel, and operates by controlling each arithmetic unit individually and in parallel in synchronization with each independent command on the VLIW. .

そして、上述したようなVLIW型プロセッサは、命令間に依存関係のない命令を同時に実行できる利点があるが、逆に処理によっては依存関係のために未使用(nop)となる演算器が生じる。この未使用の演算器を生かして、演算を二重化し、データインティグリティ(信頼性)を向上させる方法がある。例えば、先行する処理の出力をテストする処理を二重化し、両者のテスト結果を比較することによって不正を検出することにより、ハードウェア障害をプログラムにより検出する方法がある(下記、特許文献1参照)。   The VLIW processor as described above has an advantage that instructions having no dependency relationship between instructions can be simultaneously executed. On the contrary, depending on the processing, an arithmetic unit that is not used due to the dependency relationship is generated. There is a method of improving data integrity (reliability) by making use of this unused computing unit to duplicate the computation. For example, there is a method for detecting a hardware failure by a program by duplicating a process for testing the output of the preceding process and comparing the test results of the two (see Patent Document 1 below). .

特開昭60−151753号公報JP 60-151753 A

ここで、上述したようなVLIW型プロセッサを用いてプログラミングする場合には、コンパイラを使用して並列処理を最も効率的に行なえるコードを生成するのが一般的である。このとき、プログラムの中でプログラムによってハードウェアの信頼性を確保することが必要な場合には、アセンブリ言語により意識的に信頼性を向上させるコーディングを行なう場合がある。かかる場合には、プログラムの本来性能を低下させずにプロセッサの故障検出率を高めることを行なうことが必要であるが、総じて性能向上と相反する傾向にある。   Here, when programming using the VLIW type processor as described above, it is common to use a compiler to generate code that can perform parallel processing most efficiently. At this time, when it is necessary to ensure the reliability of the hardware in the program, there is a case where coding is performed to improve the reliability consciously by the assembly language. In such a case, it is necessary to increase the failure detection rate of the processor without degrading the original performance of the program, but generally there is a tendency to conflict with the performance improvement.

例えば、上述した特許文献1の従来例では、テスト結果が一致していたと判明した後に実際の分岐処理が実行されるため、かかる分岐処理を実行するまでに余計な処理時間が必要であった。また、ハードウェアの障害が発生することによってテスト結果が不一致であった場合には、障害に対するリカバリ機能が装備されておらず、障害の発生したプロセッサをシステムから切り離したり、システムを停止するなどの処理が行われていたため、処理を続行することができない、という問題があった。   For example, in the conventional example of Patent Document 1 described above, since an actual branch process is executed after it is determined that the test results match, extra processing time is required until such a branch process is executed. Also, if the test results do not match due to a hardware failure, the recovery function for the failure is not provided, and the failed processor is disconnected from the system, or the system is stopped, etc. There was a problem that the process could not be continued because the process was being performed.

このため、本発明では、上記従来例の有する不都合を改善し、特に、分岐処理を行うハードウェアに障害が生じた場合にリカバリ処理を実行して信頼性の向上を図ると共に、処理性能の低下を抑制することができるマイクロプロセッサを提供することをその目的とする。   For this reason, the present invention improves the inconveniences of the above-described conventional example, and in particular, improves recovery by executing recovery processing when a failure occurs in the hardware that performs branch processing, and decreases processing performance. It is an object of the present invention to provide a microprocessor capable of suppressing the problem.

そこで、本発明の一形態であるマイクロプロセッサは、
同一の所定の処理結果をそれぞれテストする複数のテスト処理手段と、
各テスト処理手段によるテスト結果に応じてそれぞれ分岐処理を行う複数の分岐処理手段と、
他の分岐処理手段に優先して実行される所定の分岐処理手段にて分岐できなった場合に障害対応処理を実行するトラップ手段と、
を備えたことを特徴としている。
Therefore, a microprocessor according to an embodiment of the present invention is
A plurality of test processing means for respectively testing the same predetermined processing result;
A plurality of branch processing means for performing branch processing according to the test results of each test processing means,
Trap means for executing failure handling processing when a predetermined branch processing means executed in preference to other branch processing means cannot be branched;
It is characterized by having.

具体的に、トラップ手段は、所定の分岐処理手段に対応するテスト処理手段によるテスト結果が正しいにも関わらず当該正しい方向に分岐できなかった場合に実行される。そして、トラップ手段は、所定の分岐処理手段の障害に関する情報を取得する処理を行う。また、トラップ手段は、障害対応処理の実行後に他の分岐処理手段の実行に復帰する。   Specifically, the trap means is executed when the test result by the test processing means corresponding to the predetermined branch processing means is correct, but the branch cannot be made in the correct direction. Then, the trap means performs processing for acquiring information related to the failure of the predetermined branch processing means. Further, the trap means returns to the execution of the other branch processing means after the execution of the failure handling process.

さらに、上記所定の分岐処理手段と上記他の分岐処理手段とは、ほぼ並列に実行される、ことを特徴としており、例えば、マイクロプロセッサは、所定の分岐処理手段と他の分岐処理手段とをそれぞれ異なる演算器にて実行するVLIW型プロセッサである。   Further, the predetermined branch processing means and the other branch processing means are executed substantially in parallel. For example, the microprocessor includes a predetermined branch processing means and another branch processing means. It is a VLIW processor that is executed by different computing units.

上記発明によると、まず、同一の所定の処理結果のテストが複数のテスト処理手段にて実行され、これに対する同一の分岐処理が複数の分岐処理手段にて多重化されていることにより、信頼性の向上を図ることができる。これに加え、所定の分岐処理手段にて正常に分岐されないなどハードウェア障害が発生した場合であっても、かかる障害情報の取得などリカバリ処理がトラップ手段にて実行されるため、さらなる信頼性の向上を図ることができると共に、後続する他の分岐処理手段による処理が実行されることで、処理性能の低下を抑制することができる。特に、VLIW型プロセッサを用いて、同一の分岐処理を異なる演算器にてほぼ並列に実行することで、より有効に処理性能の低下を抑制することができる。   According to the above invention, first, a test of the same predetermined processing result is executed by a plurality of test processing means, and the same branch processing for the test is multiplexed by a plurality of branch processing means. Can be improved. In addition to this, even if a hardware failure occurs, such as when the predetermined branch processing means does not branch normally, recovery processing such as acquisition of such fault information is executed by the trap means, so that further reliability can be achieved. The improvement can be achieved, and the processing by the other branch processing means that follows can be executed, so that a decrease in processing performance can be suppressed. In particular, by using the VLIW processor to execute the same branch processing almost in parallel with different computing units, it is possible to more effectively suppress a decrease in processing performance.

また、本発明の他の形態であるプログラムは、
マイクロプロセッサに、
同一の所定の処理結果をそれぞれテストする複数のテスト処理手段と、
各テスト処理手段によるテスト結果に応じてそれぞれ分岐処理を行う複数の分岐処理手段と、
他の分岐処理手段に優先して実行される所定の分岐処理手段にて分岐できなかった場合に障害対応処理を実行するトラップ手段と、
を実現させる、ことを特徴としている。
Moreover, the program which is the other form of this invention is:
To the microprocessor
A plurality of test processing means for respectively testing the same predetermined processing result;
A plurality of branch processing means for performing branch processing according to the test results of each test processing means,
Trap means for executing failure handling processing when a predetermined branch processing means that is executed in preference to other branch processing means cannot branch.
It is characterized by realizing.

さらに、本発明の他の形態であるマイクロプロセッサによる情報処理方法は、
マイクロプロセッサが、
同一の所定の処理結果をそれぞれテストする複数の分岐条件テスト工程と、各テスト処理によるテスト結果に応じてそれぞれ実行される複数の分岐処理工程と、を有すると共に、
複数の分岐処理工程のうち、他の分岐処理工程に優先して実行される所定の分岐処理工程に続いて、当該所定の分岐処理工程にて分岐できなかった場合に障害対応処理を実行するトラップ工程を有する、
ことを特徴としている。
Furthermore, an information processing method by a microprocessor according to another aspect of the present invention is as follows.
The microprocessor
A plurality of branch condition test steps for respectively testing the same predetermined processing result, and a plurality of branch processing steps respectively executed according to the test result by each test processing,
Trap that executes failure handling processing when a predetermined branch processing step cannot be branched following a predetermined branch processing step that is executed in preference to other branch processing steps among a plurality of branch processing steps Having steps,
It is characterized by that.

上述した構成のプログラムや情報処理方法であっても、上記マイクロプロセッサと同様に作用するため、上述した本発明の目的を達成することができる。   Even the program and the information processing method having the above-described configuration operate in the same manner as the above-described microprocessor, so that the above-described object of the present invention can be achieved.

本発明は、以上のように構成され機能するので、これによると、同一の所定の処理結果のテスト及びこれに応じた分岐処理が多重化されており、かつ、他の分岐処理手段と比べて先に実行される所定の分岐処理手段にて正常に分岐されないなどハードウェア障害が発生した場合に、かかる障害情報の取得などリカバリ処理がトラップ手段にて実行されるため、信頼性の向上を図ることができると共に、後続する他の分岐処理手段による処理が実行されることでシステムが停止することなく、処理性能の低下を抑制することができる、という従来にない優れた効果を有する。   Since the present invention is configured and functions as described above, according to this, the test of the same predetermined processing result and the branch processing according to this are multiplexed, and compared with other branch processing means. In the event of a hardware failure, such as when a predetermined branch processing unit that is executed first does not branch normally, recovery processing such as acquisition of such failure information is performed by the trap unit, thereby improving reliability. In addition, the present invention has an unprecedented excellent effect that a decrease in processing performance can be suppressed without stopping the system by executing processing by another branch processing means that follows.

本発明におけるマイクロプロセッサは、多重化した分岐処理の間にリカバリ処理を行うことを特徴としている。以下、実施例では、VLIW型プロセッサにて実現する場合を一例に挙げて説明する。   The microprocessor according to the present invention is characterized in that recovery processing is performed during multiplexed branch processing. Hereinafter, in the embodiment, a case where it is realized by a VLIW processor will be described as an example.

本発明の第1の実施例を、図1乃至4を参照して説明する。図1乃至図2は、本実施例におけるマイクロプロセッサの構成及び動作を示す説明である。図3は、プログラム例を示す図である。   A first embodiment of the present invention will be described with reference to FIGS. FIGS. 1 and 2 are diagrams illustrating the configuration and operation of the microprocessor according to the present embodiment. FIG. 3 is a diagram illustrating a program example.

[構成]
本実施例におけるマイクロプロセッサは、上述したように、並列動作可能な複数の演算器を装備し、独立した複数の命令の集まりであるVLIW(Very Long Instruction Word)と称さされる1個の長い命令語により制御する方式のVLIW型プロセッサである。図1は、このVLIW型プロセッサを搭載した情報処理装置70を示している。
[Constitution]
As described above, the microprocessor according to this embodiment includes a plurality of arithmetic units capable of operating in parallel, and one long instruction called a VLIW (Very Long Instruction Word) which is a collection of a plurality of independent instructions. This is a VLIW processor controlled by words. FIG. 1 shows an information processing apparatus 70 equipped with this VLIW processor.

そして、情報処理装置70のプロセッサには、本発明であるプログラムが組み込まれることにより、図1に示すような構成及び動作を実現可能となる。具体的には、情報処理装置70つまりVLIW型プロセッサには、プログラムが組み込まれることにより、処理W(10)を実行する機能と、処理X(201)を実行する機能と、処理W(10)の結果をテストするテストA(202)を実行する機能(テスト処理手段)と、当該テストA(202)と同じテストを行なうテストB(203)を実行する機能(テスト処理手段)と、テストA(202)の結果に応じて分岐する分岐処理a(301)を実行する機能(分岐処理手段)と、分岐処理a(301)に後続しテストA(202)の結果に応じてリカバリ処理(60)へ割り込むトラップ(302)を実行する機能(トラップ手段)と、トラップ(302)に後続しテストB(203)の結果に応じて分岐する分岐処理b(303)を実行する機能(分岐処理手段)と、が構築されている。また、分岐処理a(301)、分岐処理b(303)の結果に応じて実行される処理Y(40)と処理Z(50)とを実行する機能も構築されている。   Then, the configuration and operation as shown in FIG. 1 can be realized by incorporating the program according to the present invention in the processor of the information processing apparatus 70. Specifically, the information processing apparatus 70, that is, the VLIW processor, incorporates a program, thereby executing a function of executing the process W (10), a function of executing the process X (201), and a process W (10). A function (test processing means) for executing the test A (202) for testing the result of the test, a function (test processing means) for executing the test B (203) for performing the same test as the test A (202), and a test A A function (branch processing means) that executes a branch process a (301) that branches according to the result of (202), and a recovery process (60 that follows the branch process a (301) according to the result of test A (202) ) (Trap means) for executing a trap (302) that interrupts, and branch processing b (303) that branches after the trap (302) according to the result of the test B (203) Ability to run the (branch processing unit), are constructed. In addition, a function for executing a process Y (40) and a process Z (50) executed according to the results of the branch process a (301) and the branch process b (303) is also constructed.

そして、上述したように、VLIW型プロセッサは、複数の演算器を装備して並列処理が可能であるため、上述した各機能は、それぞれ図2に示すように並列に作動する。ここでは、演算器が3つ装備されており、サイクル1では、演算器1は処理W(10)を実行し、演算器2及び演算器3は未使用(nop)となる。そして、後続するサイクル2(図1の符号20)では、演算器1は処理X(202)を、演算器2はテストA(202)を、演算器3ではテストB(203)を、それぞれ並列に実行する。さらに後続するサイクル3(図1の符号30)では、演算器1は分岐処理a(301)を、演算器2はトラップ(302)を、演算器3は分岐処理b(303)を、それぞれ並列に実行する。   As described above, since the VLIW processor is equipped with a plurality of arithmetic units and can perform parallel processing, the functions described above operate in parallel as shown in FIG. Here, three arithmetic units are provided, and in cycle 1, the arithmetic unit 1 executes the process W (10), and the arithmetic units 2 and 3 are not used (nop). In the subsequent cycle 2 (reference numeral 20 in FIG. 1), the computing unit 1 performs the processing X (202), the computing unit 2 performs the test A (202), and the computing unit 3 performs the test B (203) in parallel. To run. Further, in the subsequent cycle 3 (reference numeral 30 in FIG. 1), the computing unit 1 performs the branch process a (301), the computing unit 2 performs the trap (302), and the computing unit 3 performs the branch process b (303) in parallel. To run.

ここで、トラップ(302)は、特に、二重化された分岐処理a(301)と分岐処理b(303)との間で、分岐処理a(301)にて正常に分岐できなかった場合、つまり、分岐回路のハードウェア障害が生じた場合に、実行される。その具体的な動作については、動作説明時に詳述する。   Here, the trap (302) is, in particular, when the branch process a (301) cannot branch normally between the duplex branch process a (301) and the branch process b (303), that is, It is executed when a hardware failure of the branch circuit occurs. The specific operation will be described in detail when the operation is described.

そして、トラップ(302)によるリカバリ処理(60)を実行する機能は、分岐処理a(301)で発生したハードウェア障害の状況を残すために必要なデータ採取や、再度分岐処理を実行するために割り込み元のプログラム格納アドレスを算出し、データ採取が完了した後に割り込みが発生したプログラム格納アドレスの次のアドレス、つまり分岐処理b(303)へ復帰する処理を行なう(図1の符号601,602,603参照)。   The function of executing the recovery process (60) by the trap (302) is for collecting data necessary for leaving the status of the hardware failure that has occurred in the branch process a (301) and executing the branch process again. The program storage address of the interrupt source is calculated, and after data collection is completed, the process returns to the address next to the program storage address where the interrupt occurred, that is, the branch process b (303) (reference numerals 601 and 602 in FIG. 1). 603).

ここで、図3に、図2に示す命令列を、Intel R IA64アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアルにおけるアセンブリ言語のニーモニックでコーディングした例を示す。図中において「cmp」は比較命令を表す。「br」は分岐命令を表す。「(p) br」は条件付きの分岐命令であることを表す。「break」は割り込みを表す。また、「p」、「r」はそれぞれテストA(202)とテストB(203)の結果が格納されるレジスタを表す。また、図4には、トラップ(302)の動作をコーディングした例を示す。   Here, FIG. 3 shows an example in which the instruction sequence shown in FIG. 2 is coded by an assembly language mnemonic in the Intel RIA64 architecture software developer's manual. In the figure, “cmp” represents a comparison instruction. “Br” represents a branch instruction. “(P) br” represents a conditional branch instruction. “Break” represents an interrupt. “P” and “r” represent registers in which the results of test A (202) and test B (203) are stored, respectively. FIG. 4 shows an example in which the operation of the trap (302) is coded.

[動作]
次に、本発明の動作について、図1乃至図2を参照して説明する。まず、図2に示すように、サイクル1にて処理W(10)が実行される。そして、次のサイクル2にて、先行する処理W(10)のテストが行われる。つまり、図1のサイクル20及び図2に示すように、演算器2でテストA(202)が実行され、演算器3でテストB(203)が実行される(テスト処理工程)。なお、テストB(203)は、テストA(202)を二重化した処理であり、テストA(202)と同じく、処理W(10)の結果をテストしている。
[Operation]
Next, the operation of the present invention will be described with reference to FIGS. First, as shown in FIG. 2, process W (10) is executed in cycle 1. Then, in the next cycle 2, a test for the preceding process W (10) is performed. That is, as shown in the cycle 20 of FIG. 1 and FIG. 2, the test A (202) is executed by the computing unit 2, and the test B (203) is executed by the computing unit 3 (test processing step). The test B (203) is a process in which the test A (202) is duplicated, and the result of the process W (10) is tested in the same manner as the test A (202).

そして、図1に示すさらに次のサイクル30つまり図2に示すサイクル3では、各演算器で、分岐処理a(301)(所定の分岐処理工程)、トラップ(302)(トラップ工程)、分岐処理b(303)(他の分岐処理工程)がそれぞれ実行される。このとき、各分岐先アドレスの計算は、ほぼ同時に(並列に)実行されるが、実際に分岐先にジャンプする動作は、図3のコーディング例の「#サイクル2」と「#サイクル3」の間に示されるように、分岐処理a(301)、トラップ(302)、分岐処理b(303)の優先順位で処理が実行される。つまり、図1のサイクル30に示す順に処理が実行される。   In the next cycle 30 shown in FIG. 1, that is, in cycle 3 shown in FIG. 2, the branch processing a (301) (predetermined branch processing step), trap (302) (trap step), and branch processing are performed by each arithmetic unit. b (303) (another branch processing step) is executed. At this time, the calculation of each branch destination address is executed almost simultaneously (in parallel), but the operation of actually jumping to the branch destination is the “# cycle 2” and “# cycle 3” in the coding example of FIG. As shown in the middle, the process is executed in the priority order of the branch process a (301), the trap (302), and the branch process b (303). That is, processing is executed in the order shown in the cycle 30 of FIG.

具体的には、まず、分岐処理a(301)では、テストA(202)の結果が「真」の場合に処理Y(40)に分岐する。つまり、テストAの結果、分岐GO(p=1)の場合には、処理Y(40)に進み、先読みしたトラップ(302)つまり図3に示す「(p) break 10」、及び、分岐処理b(303)つまり「(r)br.cond.spnt Y」の分岐先へはジャンプしない。   Specifically, in branch process a (301), if the result of test A (202) is “true”, the process branches to process Y (40). That is, if the result of test A is branch GO (p = 1), the process proceeds to process Y (40), the prefetched trap (302), that is, “(p) break 10” shown in FIG. It does not jump to the branch destination of b (303), that is, “(r) br.cond.spnt Y”.

ここで、分岐処理a(301)を実行している演算器1の分岐回路が故障などにより、テスト結果が正しく「真」である(p=1)にも関わらず、実際に処理Y(40)にジャンプできなかった場合には、トラップ(302)に進む。つまり、図3に示す「(p) break 10 」に優先権が移り、かかる場合には「p=1」であるので「break 10」が実行される。すると、図4に示すコーディングのトラップ先となるリカバリ処理(60)が実行され、トラップ元のアドレスを取得して格納し(601)、障害情報などを採取する障害処理を実行して(602)、障害処理が完了した時点でトラップ元のアドレスの次のアドレスへ復帰する(603)、という障害対応処理を行なう。そして、その後、分岐処理b(303)に復帰し、当該分岐処理bが実行され、ここで正常に分岐が実行される。   Here, although the test result is correctly “true” (p = 1) due to a failure or the like of the branch circuit of the arithmetic unit 1 executing the branch process a (301), the actual process Y (40 ) Go to the trap (302). That is, priority shifts to “(p) break 10” shown in FIG. 3, and in this case, “p = 1”, so “break 10” is executed. Then, the recovery process (60) as the trap destination of the coding shown in FIG. 4 is executed, the trap source address is acquired and stored (601), and the fault process for collecting fault information and the like is executed (602). When the failure processing is completed, failure handling processing is performed to return to the address next to the trap source address (603). Thereafter, the process returns to the branch process b (303), the branch process b is executed, and the branch is normally executed here.

一方、分岐処理a(301)にて、テストA(202)の結果が「偽」の場合や、分岐処理a(301)において「p」というレジスタが壊れたハードウェア障害によりテストA(202)の結果が不正(プレディケーションレジスタ故障)である場合には、処理Y(40)へ分岐は実行されずに、サイクル30内のトラップ(302)へ進む。但し、このとき、「p=0」であるため、トラップ(302)では何もせず、サイクル30における後続の分岐処理b(303)へ進む。そして、分岐処理b(303)は、テストB(203)の結果に応じて処理Y(40)へ分岐するか、もしくは処理Z(50)へ進むが、単に上述した「p」というレジスタが壊れた場合には(サイクル2における演算器2の故障)、テストB(203)の結果は「真」となり、「r=1」となるので、分岐処理b(303)で正常に処理Y(40)に分岐される。   On the other hand, in the branch process a (301), when the result of the test A (202) is “false”, or because of a hardware failure in which the register “p” is broken in the branch process a (301), the test A (202) If the result of (2) is illegal (predication register failure), the process proceeds to the trap (302) in the cycle 30 without branching to the process Y (40). However, since “p = 0” at this time, nothing is performed in the trap (302), and the process proceeds to the subsequent branch process b (303) in the cycle 30. Then, the branch process b (303) branches to the process Y (40) or proceeds to the process Z (50) depending on the result of the test B (203). In this case (failure of the arithmetic unit 2 in cycle 2), the result of the test B (203) is “true” and “r = 1”, so that the process Y (40) is normally performed in the branch process b (303). ).

なお、演算器1及び演算器2の双方が壊れ、「(p) br.cond.spnt Y」及び「(p) break 10」にジャンプできない場合であっても、演算器3による「(r) br.cond.spnt」で正しく分岐することができる。また、「p=r=0」のケースでは、分岐条件が成り立たないので、サイクル3の「(p) br.cond.spnt」、「(p) break 10」「(r)br.cond.spnt Y」は、分岐先アドレスの生成のみで、実際にはジャンプせずにNOP動作となる。   Even if both the arithmetic unit 1 and the arithmetic unit 2 are broken and cannot jump to “(p) br.cond.spnt Y” and “(p) break 10”, “(r) You can branch correctly with "br.cond.spnt". In the case of “p = r = 0”, the branch condition is not satisfied, so “(p) br.cond.spnt”, “(p) break 10”, “(r) br.cond.spnt” in cycle 3 “Y” is only the generation of the branch destination address, and the NOP operation is performed without actually jumping.

以上のように、本発明によると、分岐条件となるテスト処理を多重化しているため、信頼性の向上を図ることができると共に、分岐処理aにて正常に分岐されないなどハードウェア障害が発生した場合であっても、かかる障害情報の取得などリカバリ処理がトラップにて実行されるため、さらなる信頼性の向上を図ることができると共に、後続する他の分岐処理bによる処理が実行されることで、処理性能の低下を抑制することができる。特に、VLIW型プロセッサを用いて、同一の分岐処理a,bを異なる演算器にてほぼ並列に実行することで、より有効に処理性能の低下を抑制することができる。   As described above, according to the present invention, since the test processing as a branch condition is multiplexed, the reliability can be improved, and a hardware failure has occurred such that the branch processing a does not branch normally. Even in such a case, since the recovery process such as acquisition of the failure information is executed by the trap, the reliability can be further improved, and the process by the subsequent other branch process b is executed. Therefore, it is possible to suppress a decrease in processing performance. In particular, by using the VLIW processor to execute the same branch processes a and b almost in parallel with different arithmetic units, it is possible to more effectively suppress a decrease in processing performance.

ここで、上述した二重化されたテストAとテストBとの処理は、同一の命令を使ってテスト処理する必要はない。論理的に同一のテスト結果が得られる別のテスト命令を各テスト処理にて用いてもよい。   Here, it is not necessary to perform the test process using the same instruction for the processes of the duplicated test A and test B described above. Another test instruction that provides the logically same test result may be used in each test process.

また、上記では、図2のサイクル2においてテストAとテストBを実施しているが、テストAとテストBは、処理Wの次サイクルで実施する必要はなく、少なくとも1サイクル以上後に実行されればよい。さらには、テストAとテストBは、必ずしも同じサイクルで実行される必要はない。そして、テストAとテストBの実行順序は、テストBが先に実行されても同じである。但し、テストAは分岐処理aよりも前のサイクルで実行される必要があり、テストBは分岐処理bより前のサイクルで実行することが保障できればよい。   Further, in the above, test A and test B are performed in cycle 2 of FIG. 2, but test A and test B do not need to be performed in the next cycle of process W, and are executed at least after one cycle or more. That's fine. Furthermore, test A and test B do not necessarily have to be executed in the same cycle. The execution order of test A and test B is the same even if test B is executed first. However, the test A needs to be executed in the cycle before the branch process a, and it is only necessary to ensure that the test B is executed in the cycle before the branch process b.

さらに、上記では、テスト処理を二重化する場合について記載しているが、かかるテスト処理を三重化以上にして構成してもよい。これにより、さらなる信頼性の向上を図ることができる。そして、かかる場合には、各テスト処理ごとに対応する分岐処理が実行されるよう構成するが、いかなる分岐処理の間に上述したリカバリ処理つまりトラップを配置してもよく、全ての分岐処理の間に配置すると望ましい。   Furthermore, although the case where the test process is duplicated is described above, the test process may be configured to be triple or more. Thereby, the further improvement of reliability can be aimed at. In such a case, the corresponding branch process is executed for each test process. However, the recovery process, that is, the trap described above may be arranged between any branch processes. It is desirable to arrange in.

本発明は、高性能を要求されるプログラムにおいて、データインティグリティを高めることも必要なミッションクリティカルなプログラムの開発といった用途に適用することができ、産業上の利用可能性を有する。   INDUSTRIAL APPLICABILITY The present invention can be applied to uses such as development of a mission critical program that also needs to increase data integrity in a program that requires high performance, and has industrial applicability.

情報処理装置の構成及び動作を示す説明図である。It is explanatory drawing which shows the structure and operation | movement of information processing apparatus. 情報処理装置の構成及び動作を示す説明図である。It is explanatory drawing which shows the structure and operation | movement of information processing apparatus. コーディング例を示す図である。It is a figure which shows the example of coding. コーディング例を示す図である。It is a figure which shows the example of coding.

符号の説明Explanation of symbols

70 情報処理装置
202 テストA
203 テストB
301 分岐処理a
302 トラップ
303 分岐処理b

70 Information processing apparatus 202 Test A
203 Test B
301 Branch processing a
302 Trap 303 Branch processing b

Claims (8)

同一の所定の処理結果をそれぞれテストする複数のテスト処理手段と、
前記各テスト処理手段によるテスト結果に応じてそれぞれ分岐処理を行う複数の分岐処理手段と、
他の前記分岐処理手段に優先して実行される所定の前記分岐処理手段にて分岐できなった場合に障害対応処理を実行するトラップ手段と、
を備え、
前記所定の分岐処理手段による分岐処理、前記トラップ手段による障害対応処理、前記他の分岐処理手段による分岐処理、の優先順位で処理を実行する、
ことを特徴とするマイクロプロセッサ。
A plurality of test processing means for respectively testing the same predetermined processing result;
A plurality of branch processing means for performing branch processing according to the test results by the respective test processing means;
Trap means for executing failure handling processing when the predetermined branch processing means that is executed in preference to the other branch processing means fails to branch;
With
The processing is executed in the priority order of branch processing by the predetermined branch processing means, failure handling processing by the trap means, branch processing by the other branch processing means,
A microprocessor characterized by that.
前記トラップ手段は、前記所定の分岐処理手段に対応する前記テスト処理手段によるテスト結果が正しいにも関わらず当該正しい方向に分岐できなかった場合に実行される、ことを特徴とする請求項1記載のマイクロプロセッサ。   2. The trap means is executed when the test result by the test processing means corresponding to the predetermined branch processing means is correct but the branch cannot be made in the correct direction. Microprocessor. 前記トラップ手段は、前記所定の分岐処理手段の障害に関する情報を取得する処理を行う、ことを特徴とする請求項1又は2記載のマイクロプロセッサ。   3. The microprocessor according to claim 1, wherein the trap means performs processing for acquiring information relating to a failure of the predetermined branch processing means. 前記トラップ手段による前記障害対応処理の実行後に前記他の分岐処理手段による分岐処理を実行する、ことを特徴とする請求項1,2又は3記載のマイクロプロセッサ。   4. The microprocessor according to claim 1, wherein branch processing by the other branch processing means is executed after execution of the failure handling processing by the trap means. 並列動作可能な複数の演算器を装備し、
1つのサイクルにおける前記所定の分岐処理手段による分岐処理と前記他の分岐処理手段による分岐処理とは、それぞれ異なる前記演算器にて、前記所定の分岐処理手段による分岐処理、前記他の分岐処理手段による分岐処理、の優先順位で並列に実行される、ことを特徴とする請求項1,2,3又は4記載のマイクロプロセッサ。
Equipped with multiple computing units that can operate in parallel,
The branch processing by the predetermined branch processing means and the branch processing by the other branch processing means in one cycle are different from each other in the computing unit, the branch processing by the predetermined branch processing means, and the other branch processing means. 5. The microprocessor according to claim 1, wherein the microprocessor is executed in parallel with a priority order of branch processing according to claim 1.
マイクロプロセッサに、
同一の所定の処理結果をそれぞれテストする複数のテスト処理手段と、
前記各テスト処理手段によるテスト結果に応じてそれぞれ分岐処理を行う複数の分岐処理手段と、
他の前記分岐処理手段に優先して実行される所定の前記分岐処理手段にて分岐できなかった場合に障害対応処理を実行するトラップ手段と、
を実現させると共に、
前記マイクロプロセッサに、前記所定の分岐処理手段による分岐処理、前記トラップ手段による障害対応処理、前記他の分岐処理手段による分岐処理、の優先順位で処理を実行させるためのプログラム。
To the microprocessor
A plurality of test processing means for respectively testing the same predetermined processing result;
A plurality of branch processing means for performing branch processing according to the test results by the respective test processing means;
Trap means for executing failure handling processing when the predetermined branch processing means that is executed in preference to the other branch processing means cannot branch.
And realize
A program for causing the microprocessor to execute processing in a priority order of branch processing by the predetermined branch processing unit, failure handling processing by the trap unit, and branch processing by the other branch processing unit.
マイクロプロセッサが、
同一の所定の処理結果をそれぞれテストする複数のテスト処理工程と、各テスト処理によるテスト結果に応じてそれぞれ実行される複数の分岐処理工程と、を有すると共に、
前記複数の分岐処理工程のうち、他の前記分岐処理工程に優先して実行される所定の前記分岐処理工程に続いて、当該所定の分岐処理工程にて分岐できなかった場合に障害対応処理を実行するトラップ工程を有し、
前記所定の分岐処理工程による分岐処理、前記トラップ工程による障害対応処理、前記他の分岐処理工程による分岐処理、の優先順位で処理を実行する、
ことを特徴とするマイクロプロセッサによる情報処理方法。
The microprocessor
A plurality of test processing steps for respectively testing the same predetermined processing results, and a plurality of branch processing steps executed in accordance with the test results of each test processing,
Of the plurality of branch processing steps, following the predetermined branch processing step executed in preference to the other branch processing steps, the failure handling processing is performed when the predetermined branch processing step cannot branch. Having a trapping process to perform,
The processing is executed in the priority order of the branch processing by the predetermined branch processing step, the failure handling processing by the trap step, and the branch processing by the other branch processing step.
An information processing method using a microprocessor.
前記トラップ工程による前記障害対応処理の実行後に前記他の分岐処理工程による分岐処理を実行する、ことを特徴とする請求項記載のマイクロプロセッサによる情報処理方法。
8. The information processing method by a microprocessor according to claim 7 , wherein branch processing by the other branch processing step is executed after execution of the failure handling processing by the trap step.
JP2006132305A 2006-05-11 2006-05-11 Microprocessor, information processing method and program using the same Expired - Fee Related JP4747028B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006132305A JP4747028B2 (en) 2006-05-11 2006-05-11 Microprocessor, information processing method and program using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006132305A JP4747028B2 (en) 2006-05-11 2006-05-11 Microprocessor, information processing method and program using the same

Publications (2)

Publication Number Publication Date
JP2007304838A JP2007304838A (en) 2007-11-22
JP4747028B2 true JP4747028B2 (en) 2011-08-10

Family

ID=38838715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006132305A Expired - Fee Related JP4747028B2 (en) 2006-05-11 2006-05-11 Microprocessor, information processing method and program using the same

Country Status (1)

Country Link
JP (1) JP4747028B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002334317A (en) * 2001-05-09 2002-11-22 Hitachi Ltd Information processor
JP2003316598A (en) * 2002-04-22 2003-11-07 Mitsubishi Electric Corp Long instruction execution processor combined with high reliable mode operation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02110742A (en) * 1988-10-20 1990-04-23 Pfu Ltd Error detecting and synchronizing system for multi-processor
JPH04247531A (en) * 1991-02-04 1992-09-03 Fujitsu Ltd Fault detecting system
JP3080769B2 (en) * 1992-05-14 2000-08-28 株式会社東芝 VLIW type computer abnormality detection method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002334317A (en) * 2001-05-09 2002-11-22 Hitachi Ltd Information processor
JP2003316598A (en) * 2002-04-22 2003-11-07 Mitsubishi Electric Corp Long instruction execution processor combined with high reliable mode operation

Also Published As

Publication number Publication date
JP2007304838A (en) 2007-11-22

Similar Documents

Publication Publication Date Title
TWI738744B (en) Apparatus, method, and computer program product for program loop control
KR102629722B1 (en) Move prefix command
EP2673703B1 (en) Controlling the execution of adjacent instructions that are dependent upon a same data condition
KR102484125B1 (en) Error detection using vector processing circuit
CN108780397B (en) Program loop control
JP7011595B2 (en) Branch instruction
JPH06214799A (en) Method and apparatus for improvement of performance of random-sequence loading operation in computer system
JP2005166057A (en) Fault detecting computer system
US20070016760A1 (en) Central processing unit architecture with enhanced branch prediction
CN117193861B (en) Instruction processing method, apparatus, computer device and storage medium
KR20060098372A (en) Method and device for operand processing in a processor unit
JP4747028B2 (en) Microprocessor, information processing method and program using the same
Li et al. Tolerating radiation-induced transient faults in modern processors
CN107423029B (en) Calculation unit
US20080133838A1 (en) Data processing device
JP4357429B2 (en) Semiconductor integrated circuit device and compiler
JP2009129133A (en) Software partial test system, software partial test method, and program for software partial test
Ziener et al. Concepts for autonomous control flow checking for embedded cpus
KR101846498B1 (en) Recoverable and fault tolerant cpu core and control method thereof
EP4339782A1 (en) Processor and method of detecting soft error using the same
KR101923778B1 (en) Method thereof and apparatus for high performance computing using dual modular redundancy and error prediction
JPH11149390A (en) Data processor and fault diagnostic method in the same
JPH1124931A (en) Vliw type computer
CN117667508A (en) Processor and method for detecting soft error using the same
US20170212763A1 (en) Exception handling predicate register

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080512

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110404

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110426

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110516

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

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees