演算装置に有効な演算命令が入力されていないNOP状態の検出に従って、受信する入力信号を制御する制御信号を出力するNOP検出部と、前記NOP検出部が出力した前記制御信号に従って、演算命令を示すOPコード信号を受信し、受信した前記OPコード信号を出力する命令制御部と、前記NOP検出部が出力した前記制御信号に従って、被演算データを示すオペランド信号を受信し、受信した前記オペランド信号を出力するオペランド制御部と、前記命令制御部が出力した前記OPコード信号が示す演算命令に従って、前記オペランド制御部が出力した前記オペランド信号が示す被演算データに対する演算処理を実行し、求めた演算結果データを出力する演算部と、前記演算部が出力した前記演算結果データに基づいて、エラーが発生したか否かを判別するエラー検出部と、を備える、ことを特徴とする演算装置。前記命令制御部は、前記NOP検出部が前記NOP状態を検出した場合、直前に受信した前記OPコード信号を前記演算部に出力し、前記オペランド制御部は、前記NOP検出部が前記NOP状態を検出した場合、直前に受信した前記オペランド信号を前記演算部に出力し、前記エラー検出部は、前記演算部が直前に求めた前記演算結果データと前記NOP状態を検出した際に求めた前記演算結果データとを比較し、それぞれが異なる場合にエラーが発生したと判断する、ことを特徴とする請求項1に記載の演算装置。前記オペランド制御部は、第1オペランド制御部と、第2オペランド制御部と、を備え、前記第1オペランド制御部は、前記NOP検出部が前記NOP状態を検出していない場合、第1オペランド信号を受信し、受信した前記第1オペランド信号を前記演算部に出力し、前記NOP検出部が前記NOP状態を検出した場合、直前に受信した前記第1オペランド信号を前記第2オペランド制御部に出力し、前記第2オペランド制御部が出力した第2オペランド信号を受信し、受信した前記第2オペランド信号を前記演算部に出力し、前記第2オペランド制御部は、前記NOP検出部が前記NOP状態を検出していない場合、前記第2オペランド信号を受信し、受信した前記第2オペランド信号を前記演算部に出力し、前記NOP検出部が前記NOP状態を検出した場合、直前に受信した前記第2オペランド信号を前記第1オペランド制御部に出力し、前記第1オペランド制御部が出力した前記第1オペランド信号を受信し、受信した前記第1オペランド信号を前記演算部に出力する、ことを特徴とする請求項1又は2に記載の演算装置。前記NOP検出部は、前記NOP状態を検出したことを示すNOP検出信号を前記エラー検出部に出力し、前記エラー検出部は、前記NOP検出信号を受信し、前記NOP検出信号が前記NOP状態を示している場合、かつ、エラーが発生したと判別した場合、エラーが発生したことを示すエラー検出信号を出力する、ことを特徴とする請求項1乃至3のいずれか1項に記載の演算装置。前記OPコード信号が減算命令を示しているか否かを検出する減算検出部と、前記演算部が求めた前記演算結果データの符号を反転させる符号反転部と、を更に備え、前記符号反転部は、前記減算検出部が前記減算命令を検出した場合、前記演算部が求めた前記演算結果データの符号を反転し、前記エラー検出部は、前記演算部が求めた前記演算結果データと、前記符号反転部が符号を反転した前記演算結果データとを比較する、ことを特徴とする請求項1乃至4のいずれか1項に記載の演算装置。前記NOP検出部が出力した前記NOP検出信号を否定する否定部をさらに備え、前記否定部は、否定した前記NOP検出信号を前記エラー検出部に出力し、前記エラー検出部は、前記演算部が求めた前記演算結果データと前記否定部が否定して出力した前記NOP検出信号が示す値との論理積を求め、求めた前記論理積を前記演算結果データとして出力する、ことを特徴とする請求項1乃至5のいずれか1項に記載に演算装置。前記演算部は、パイプライン構成であり、前記NOP検出部は、前記NOP検出信号が示す値を記憶する記憶部を前記パイプラインの段数に従った数備える、ことを特徴とする請求項1乃至6のいずれか1項に記載の演算装置。前記命令制御部は、受信した前記OPコード信号を記憶するOPコード記憶部を備え、前記第1オペランド制御部は、受信した前記オペランド信号を記憶する第1オペランド記憶部を備え、前記第2オペランド制御部は、受信した前記オペランド信号を記憶する第2オペランド記憶部を備え、前記NOP検出部は、前記NOP検出信号を記憶する第1NOP記憶部と、前記第1NOP記憶部が記憶している前記NOP検出信号を記憶する第2NOP記憶部と、を備え、前記演算部は、前記演算結果データを記憶する第1演算結果記憶部と、前記第1演算結果記憶部が記憶している前記演算結果データを記憶する第2演算結果記憶部と、を備え、前記NOP検出部が前記NOP状態を検出した第1のクロックサイクルにおいて、前記NOP検出部は、前記第1NOP記憶部に前記NOP検出信号を記憶し、前記制御信号を前記命令制御部と前記第1オペランド制御部及び前記第2オペランド制御部に出力し、前記命令制御部は、直前に受信した前記OPコード信号を前記OPコード記憶部に記憶し、前記OPコード記憶部に記憶された前記OPコード信号を前記演算部に出力し、前記第1オペランド制御部は、前記第2オペランド制御部から受信した前記第2オペランド信号を前記第1オペランド記憶部に記憶し、前記第1オペランド記憶部に記憶された前記第2オペランド信号を前記演算部に出力し、前記第2オペランド制御部は、前記第1オペランド制御部から受信した前記第1オペランド信号を前記第2オペランド記憶部に記憶し、前記第2オペランド記憶部に記憶された前記第1オペランド信号を前記演算部に出力し、前記演算部は、求めた前記演算結果データを前記第1演算結果記憶部に記憶する、ことを特徴とする請求項3に記載の演算装置。前記第1のクロックサイクルの次の第2のクロックサイクルにおいて、前記NOP検出部は、前記第1NOP記憶部に記憶された前記NOP検出信号を前記第2NOP記憶部に記憶し、前記第2NOP記憶部に記憶された前記NOP検出信号を前記エラー検出部に出力し、前記演算部は、前記第1演算結果記憶部に記憶された前記演算結果データを前記第2演算結果記憶部に記憶し、前記命令制御部と前記第1オペランド制御部及び前記第2オペランド制御部の出力信号に従って試験演算結果データを求め、求めた前記試験演算結果データを前記第1演算結果記憶部に記憶し、前記第1演算結果記憶部に記憶された前記試験演算結果データと前記第2演算結果記憶部に記憶された前記演算結果データを前記エラー検出部に出力し、前記エラー検出部は、前記演算部が出力した前記試験演算結果データと前記演算結果データとを比較し、両者が異なる値である場合、かつ、前記NOP検出部が出力した前記NOP検出信号が前記NOP状態を示している場合、前記エラー検出信号を出力する、ことを特徴とする請求項8に記載の演算装置。演算装置に有効な演算命令が入力されていないNOP状態の検出に従って、受信する入力信号を制御する制御信号を出力するNOP検出ステップと、前記NOP検出ステップで出力した前記制御信号に従って、演算命令を示すOPコード信号を受信し、受信した前記OPコード信号を出力する命令制御ステップと、前記NOP検出ステップで出力した前記制御信号に従って、被演算データを示すオペランド信号を受信し、受信した前記オペランド信号を出力するオペランド制御ステップと、前記命令制御ステップで出力した前記OPコード信号が示す演算命令に従って、前記オペランド制御ステップで出力した前記オペランド信号が示す被演算データに対する演算処理を実行し、求めた演算結果データを出力する演算ステップと、前記演算ステップで出力した前記演算結果データに基づいて、エラーが発生したか否かを判別するエラー検出ステップと、を備える、ことを特徴とするエラー検出方法。パリティプリディクション等の一般的なエラー検出方法は、検査回路が複雑な構成になるため、コストや回路規模の都合上、一部の回路にのみ搭載されることが多い。このため、このようなエラー検出方法では、全ての回路におけるエラーを検出することができない。また、特許文献1が開示する手法は、2つのALUの出力を比較することでエラーを検出する方法であるため、ALUを1つしか有していない算術論理演算器においては適用することができない。また、特許文献2が開示する手法は、ALUが1つしか有さない場合でも適用できるが、試験データを予め格納しておく必要があり、実行する試験命令や試験データが限られる。よって、エラー検出効果が限定されることとなり、特許文献2が開示する手法では、演算器内でエラーを検出できない箇所が存在し得ることとなる。本発明は、上記事情に鑑みてなされたものであり、エラーの検出効果を高くすることができる演算装置及びエラー検出方法を提供することを目的とする。上記目的を達成するため、本発明の第1の観点に係る演算装置は、演算装置に有効な演算命令が入力されていないNOP状態の検出に従って、受信する入力信号を制御する制御信号を出力するNOP検出部と、前記NOP検出部が出力した前記制御信号に従って、演算命令を示すOPコード信号を受信し、受信した前記OPコード信号を出力する命令制御部と、前記NOP検出部が出力した前記制御信号に従って、被演算データを示すオペランド信号を受信し、受信した前記オペランド信号を出力するオペランド制御部と、前記命令制御部が出力した前記OPコード信号が示す演算命令に従って、前記オペランド制御部が出力した前記オペランド信号が示す被演算データに対する演算処理を実行し、求めた演算結果データを出力する演算部と、前記演算部が出力した前記演算結果データに基づいて、エラーが発生したか否かを判別するエラー検出部と、を備える、ことを特徴とする。上記目的を達成するため、本発明の第2の観点に係るエラー検出方法は、演算装置に有効な演算命令が入力されていないNOP状態の検出に従って、受信する入力信号を制御する制御信号を出力するNOP検出ステップと、前記NOP検出ステップで出力した前記制御信号に従って、演算命令を示すOPコード信号を受信し、受信した前記OPコード信号を出力する命令制御ステップと、前記NOP検出ステップで出力した前記制御信号に従って、被演算データを示すオペランド信号を受信し、受信した前記オペランド信号を出力するオペランド制御ステップと、前記命令制御ステップで出力した前記OPコード信号が示す演算命令に従って、前記オペランド制御ステップで出力した前記オペランド信号が示す被演算データに対する演算処理を実行し、求めた演算結果データを出力する演算ステップと、前記演算ステップで出力した前記演算結果データに基づいて、エラーが発生したか否かを判別するエラー検出ステップと、を備える、ことを特徴とする。本発明によれば、エラーの検出効果を高くすることができる。本発明の実施形態に係る演算装置について、図面を参照して説明する。[第1実施形態]本実施形態に係る演算装置1は、図1に示すように、命令制御部100と、第1オペランド制御部200と、第2オペランド制御部300と、演算部400と、NOPNoOperation検出部500と、エラー検出部600と、を備える。命令制御部100は、演算部400に対する入力信号であるOPOperationコード信号を外部から受信し、OPコード信号を演算部400とNOP検出部500に出力する。さらに、命令制御部100は、OPコード信号を再帰的に自身に出力する。なお、OPコード信号とは、演算部400が演算命令を実行する際に必要な全ての制御信号を含む信号である。例えば、有効な演算命令であるか否かを示すバリッド信号や、演算命令の種別を識別する信号、浮動小数点演算である場合の丸め制御信号等である。第1オペランド制御部200は、入力信号である被演算データとなる第1オペランド信号を外部から受信し、第1オペランド信号を演算部400に出力する。また、第1オペランド制御部200は、第1オペランド信号を第2オペランド制御部300に出力する。第2オペランド制御部300は、入力信号である被演算データとなる第2オペランド信号を外部から受信し、第2オペランド信号を演算部400に出力する。また、第2オペランド制御部300は、第2オペランド信号を第1オペランド制御部200に出力する。演算部400は、命令制御部100が出力したOPコード信号と、第1オペランド制御部200と第2オペランド制御部300が出力した第1オペランド信号と第2オペランド信号と、を受信する。演算部400は、OPコード信号が示す演算命令に従って演算処理を行い、演算結果のデータをエラー検出部600に出力する。なお、後述する動作により、演算部400は、タイミングをずらして被演算データを入れ替えて演算処理を実行する。この演算結果のデータも、エラー検出部600に出力される。NOP検出部500は、命令制御部100が出力したOPコード信号を受信し、NOP状態を検出する。NOP検出部500は、NOP検出信号をエラー検出部600に出力し、また、NOP検出信号を命令制御部100、第1オペランド制御部200、第2オペランド制御部300の制御信号として出力する。なお、NOP状態とは、OPコード信号が無効である状態のことである。エラー検出部600は、演算部400が出力した二つの演算結果のデータを比較し、NOP検出部500が出力したNOP検出信号が示す値と、比較結果を示す値とを基に、エラーが発生しているか否かを検出する。また、エラー検出部600は、演算部400が出力した演算結果のデータを、外部に出力する。以上が、演算装置1の構成である。続いて、演算装置1の詳細な構成の一例について説明する。命令制御部100は、図2に示すように、2入力セレクタ110と、OPコードレジスタ120と、から構成される。入力信号であるOPコード信号は、2入力セレクタ110を介してOPコードレジスタ120に記憶される。2入力セレクタ110は、一方の入力を外部からの入力信号であるOPコード信号とし、他方の入力をOPコードレジスタ120から出力されるOPコード信号とする。他方の入力が有効になった場合、OPコードレジスタ120の値が保持されることになる。第1オペランド制御部200は、2入力セレクタ210と、第1オペランドレジスタ220と、から構成される。入力信号である第1オペランド信号は、2入力セレクタ210を介して第1オペランドレジスタ220に記憶される。第2オペランド制御部300は、2入力セレクタ310と、第2オペランドレジスタ320と、から構成される。入力信号である第2オペランド信号は、2入力セレクタ310を介して第2オペランドレジスタ320に記憶される。第1オペランドレジスタ220に記憶される第1オペランド信号は、第2オペランド制御部300の2入力セレクタ310に出力される。また、第2オペランドレジスタ320に記憶される第2オペランド信号は、第1オペランド制御部200の2入力セレクタ210に出力される。すなわち、第1オペランド制御部200の2入力セレクタ210は、一方の入力を第1オペランド信号とし、他方の入力を第2オペランド信号とする。また、第2オペランド制御部300の2入力セレクタ310は、一方の入力を第2オペランド信号とし、他方の入力を第1オペランド信号とする。演算部400は、算術演算器410と、第1演算結果レジスタ420と、第2演算結果レジスタ430と、から構成される。算術演算器410は、OPコードレジスタ120に記憶されるOPコード信号、第1オペランドレジスタ220と第2オペランドレジスタ320に記憶される二つのオペランド信号、を入力とし、OPコード信号に基づいて演算処理を実行する。第1演算結果レジスタ420は、算術演算器410が出力した演算結果のデータを記憶し、第2演算結果レジスタ430は、第1演算結果レジスタ420が出力した演算結果のデータを記憶する。なお、算術演算器410が実行する演算処理は、加算、乗算、整数加算、整数乗算、浮動小数点加算、浮動小数点乗算等である。NOP検出部500は、NOP検出器510と、第1NOPレジスタ520と、第2NOPレジスタ530と、から構成される。NOP検出器510は、一方の入力を入力信号であるOPコード信号とし、他方の入力をOPコードレジスタ120に記憶されるOPコード信号とする。NOP検出器510が出力するNOP検出信号は、2入力セレクタ110、210、310の制御信号として出力される。第1NOPレジスタ520は、NOP検出器510が出力したNOP検出信号が示す値を記憶する。第2NOPレジスタ530は、第1NOPレジスタ520が出力した値を記憶する。NOP検出器510は、一方の入力、すなわち入力信号であるOPコード信号が無効であり、他方の入力、すなわちOPコードレジスタ120に記憶されているOPコード信号が有効であるタイミングを検出する。すなわち、NOP検出器510は、直前に演算命令が入力されており、かつ、現在演算命令が入力されていないタイミングを検出する。エラー検出部600は、比較器610と、論理積回路620と、から構成される。比較器610は、第1演算結果レジスタ420に記憶された演算結果のデータと、第2演算結果レジスタ430に記憶された演算結果のデータと、を比較する。論理積回路620は、第2NOPレジスタ530に記憶されるNOP検出信号が示す値と比較器610が出力した比較結果を示す値との論理積を出力する。この出力結果が、エラー検出信号となる。以上が、演算装置1の詳細な構成である。続いて、演算装置1の具体的な動作の一例について、タイミングチャートを参照して具体的に説明する。図3に示すように、クロックサイクルT1では、有効な演算命令のOPコードMUL乗算と、その演算処理に対する第1オペランドY0と、第2オペランドZ0と、が入力されている。クロックサイクルT2では、有効な演算命令のOPコードADD加算と、その演算処理に対する第1オペランドY1と、第2オペランドZ1と、が入力されている。また、クロックサイクルT1で入力されたOPコードMULが、OPコードレジスタ120に記憶され、第1オペランドY0が、第1オペランドレジスタ220に記憶され、第2オペランドZ0が、第2オペランドレジスタ320に記憶されている。クロックサイクルT3では、有効な演算命令が存在しないため、NOP検出器510はNOP状態を検出している。また、クロックサイクルT1で入力された演算命令に対する演算処理が終了し、第1演算結果レジスタ420は、演算結果X0を記憶し、演算結果としてX0が出力されている。また、クロックサイクルT2で入力されたOPコードADDが、OPコードレジスタ120に記憶され、第1オペランドY1が、第1オペランドレジスタ220に記憶され、第2オペランドZ1が、第2オペランドレジスタ320に記憶されている。クロックサイクルT4では、有効な演算命令のOPコードADDと、その演算処理に対する第1オペランドY2と、第2オペランドZ2と、が入力されている。また、クロックサイクルT2で入力された演算命令に対する演算処理が終了し、第1演算結果レジスタ420は、演算結果X1を記憶し、演算結果としてX1が出力されている。このとき、第2演算結果レジスタ430は、クロックサイクルT1で入力された演算命令の演算結果X0を記憶している。クロックサイクルT4では、有効な演算命令が入力されているため、NOP検出器510はNOP状態を検出しないが、第1NOPレジスタ520は、NOP状態を示す値例えば真を記憶している。ここで、クロックサイクルT3で出力されたNOP検出信号は、2入力セレクタ110、210、310に出力され、2入力セレクタ110、210、310は、入力信号を切り替える。すなわち、2入力セレクタ110は、OPコードレジスタ120に記憶されているOPコードを入力とし、2入力セレクタ210は、第2オペランドレジスタ320に記憶されている第2オペランドを入力とし、2入力セレクタ310は、第1オペランドレジスタ220に記憶されている第1オペランドを入力とする。このため、OPコードレジスタ120は、クロックサイクルT3で記憶されたOPコードと同じOPコードADDを記憶し、第1オペランドレジスタ220は、クロックサイクルT3で第2オペランドレジスタ320に記憶された第2オペランドZ1を記憶し、第2オペランドレジスタ320は、クロックサイクルT3で第1オペランドレジスタ220に記憶された第1オペランドY1を記憶する。すなわち、クロックサイクルT4では、第1オペランドレジスタ220と第2オペランドレジスタ320に記憶されている値は、NOP状態を検出したクロックサイクルT3で記憶されていた値をそれぞれ入れ替えたデータとなる。なお、クロックサイクルT4では、NOP状態を検出していないため、2入力セレクタ110、210、310の入力は元に戻る。クロックサイクルT5では、有効な演算命令のOPコードMULと、その演算処理に対する第1オペランドY3と、第2オペランドZ3と、が入力されている。また、OPコードレジスタ120は、クロックサイクルT4で入力されたOPコードADDを記憶し、第1オペランドレジスタ220は、クロックサイクルT4で入力された第1オペランドY2を記憶し、第2オペランドレジスタ320は、クロックサイクルT4で入力された第2オペランドZ2を記憶している。クロックサイクルT4で第1演算結果レジスタ420に記憶された演算結果X1は、第2演算結果レジスタ430に記憶されている。また、クロックサイクルT5では、上述のようにクロックサイクルT4で入れ替えたオペランドの演算結果X1’が、第1演算結果レジスタ420に記憶されている。また、クロックサイクルT4で第1NOPレジスタ520に記憶されたNOP検出信号は、クロックサイクルT5では第2NOPレジスタ530に記憶されている。この第2NOPレジスタ530に記憶されているNOP検出信号は、比較器610のイネーブル信号となる。比較器610は、第1演算結果レジスタ420に記憶されている演算結果X1’と、第2演算結果レジスタ430に記憶されている演算結果X1とを比較し、仮に両値が不一致であった場合、論理積回路620によるイネーブル化を経て、エラー検出信号が出力される。このように、演算装置1は、有効な演算命令が入力されていないタイミングを検出して試験演算命令を実行し、以下の式で表される比較を行い、エラーの検出を行う。YnZn=ZnYn又はYn×Zn=Zn×Ynなお、Yn、Znは、NOP状態を検出する直前のクロックサイクルにおけるオペランドである。クロックサイクルT6以降は、上述のような動作を実行し、同様にエラーを検出する。なお、NOP検出時に入れ替えたデータに対する演算結果は、演算命令に対する出力結果ではないため、演算装置1の外部でこの値を無視する必要がある。また、演算装置1内にこのような値を無視する機構を配置することも可能である。以上が、演算装置1の動作の一例である。以上説明したように、本実施形態に係る演算装置1は、有効な命令がないタイミングを検出して直前の演算命令に対するオペランドを入れ替えて演算処理を実行することで、試験命令や試験データを限定することなくエラーを検出することができる。また、本実施形態に係る演算装置1は、装置内に算術演算器410が一つしかない場合でも、演算器全体をエラー検出の対象とすることができ、エラー検出効果を高くすることができる。また、本実施形態に係る演算装置1は、エラーを検出するための回路として、入力信号に対するセレクタ、演算結果を格納するレジスタ、演算結果を比較するための比較器、等を追加する程度であり、いずれも算術演算器410の外部への追加が可能であるため、算術演算器410内部のクリティカルパスに影響を与えない。よって、本実施形態に係る演算装置1は、回路規模や信号遅延等のインパクトを小さくすることができる。[第2実施形態]本実施形態に係る演算装置2は、図4に示すように、第1実施形態に係る演算装置1の構成に加え、減算検出部700と、符号反転部800と、否定部900と、を更に備える。演算装置2は、第1実施形態に係る演算装置1が検出できるエラーに加え、整数減算や浮動小数点減算等の演算処理に対してもエラーを検出することができ、さらに試験演算結果のデータをマスクすることができる。なお、第1実施形態に係る演算装置1と同様の機能を実現する要素については、同一の符号を付し、説明を省略する。減算検出部700は、命令制御部100から出力したOPコード信号を受信し、OPコード信号が減算命令であるか否かを検出する。減算検出部700は、減算検出信号を符号反転部800に出力する。符号反転部800は、減算検出部700が出力した減算検出信号と演算部400が出力した演算結果のデータを受信し、受信した減算検出信号が減算を示している場合、すなわち、OPコード信号が減算命令であった場合、演算結果のデータの符号を反転させる。符号反転部800は、符号反転後の演算結果のデータをエラー検出部600に出力する。なお、符号反転とは、整数減算の場合は2の補数を求める処理のことであり、浮動小数点減算の場合は最上位ビットである符号ビットを反転させる処理のことである。否定部900は、NOP検出部500が出力したNOP検出信号を否定し、エラー検出部600に出力する。NOP検出信号の否定とは、NOP検出信号が示す値を反転することである。例えば、検出信号が1真を示す場合、否定部900は、0偽として出力し、検出信号が0偽を示す場合、否定部900は、1真として出力する。この出力は、試験演算結果の出力をマスクする際に用いられる。以上が、演算装置2の構成である。続いて、演算装置2の詳細な構成の一例について説明する。減算検出部700は、図5に示すように、減算検出器710と、減算レジスタ720と、から構成される。減算検出器710は、OPコードレジスタ120に記憶されているOPコードを受信し、受信したOPコードが減算命令であるか否かを示す減算検出信号を減算レジスタ720に記憶する。減算レジスタ720に記憶された減算検出信号が示す値は、符号反転器810に出力される。符号反転部800は、符号反転器810から構成され、減算レジスタ720に記憶された減算検出信号と第1演算結果レジスタ420に記憶された演算結果のデータを受信する。符号反転器810は、減算レジスタ720に記憶された減算検出信号が減算命令であることを示す値であった場合、受信した演算結果のデータの符号を反転し、符号反転した演算結果のデータを第2演算結果レジスタ430に記憶する。否定部900は、NOTゲート910から構成される。NOTゲート910は、第2NOPレジスタ530に記憶されたNOP検出信号を受信し、受信したNOP検出信号を否定して論理積回路630に出力する。論理積回路630は、NOTゲート910が出力した否定信号と第1演算結果レジスタ420が記憶した演算結果を示すデータを受信し、両値の論理積を出力する。このため、第2NOPレジスタ530にNOPを示す値が記憶されている場合、その値が否定されて論理積が求められるため、試験演算命令の演算結果をマスクすることができる。以上が、演算装置2の詳細な構成の一例である。続いて、演算装置2の動作の一例について、タイミングチャートを参照して具体的に説明する。図6に示すように、クロックサイクルT2では、有効な演算命令であるOPコードSUB減算と、その演算処理に対する第1オペランドY1と、第2オペランドZ1と、が入力されている。また、クロックサイクルT3では、有効な演算命令が入力されず、NOP検出器510は、NOPを検出している。このため、第1実施形態と同様に、クロックサイクルT3では、クロックサイクルT2で入力されたオペランドを入れ替えて試験演算命令を実行している。クロックサイクルT3では、減算検出器710は、OPコードが減算命令であることを示す減算検出信号を出力し、減算レジスタ720に記憶している。これと同時に、NOP検出器510も、NOP検出信号を出力し、クロックサイクルT4で第1NOPレジスタ520に記憶されている。また、クロックサイクルT4では、第1演算結果レジスタ420に、クロックサイクルT2で入力されたオペランドY1、Z1の減算命令に対する演算結果X1が記憶されている。クロックサイクルT4では、減算レジスタ720にOPコードが減算命令であることを示す値が記憶されているため、符号反転器810は、第1演算結果レジスタ420の出力X1に対して符号反転処理を実行する。よって、クロックサイクルT5では、符号反転器810は、符号反転させた演算結果X1を、第2演算結果レジスタ430に記憶する。また、第1演算結果レジスタ420は、クロックサイクルT2で入れ替えられたオペランドに対する演算結果X1’を記憶する。クロックサイクルT5では、比較器610は、第1演算結果レジスタ420が記憶している演算結果X1’と、第2演算結果レジスタ430が記憶している符号反転させた演算結果とを比較する。論理積回路620は、比較結果のデータと第2NOPレジスタ530が出力するNOP検出信号との論理積を求め、これをエラー検出信号として出力する。クロックサイクルT5では、論理積回路630は、第1演算結果レジスタ420が出力するデータと、第2NOPレジスタ530が出力する否定データとの論理積を求める。すなわち、クロックサイクルT5では、第2NOPレジスタ530はNOP状態を示す値を記憶しているため、論理積回路630によって試験演算結果X1’がマスクされる。第2NOPレジスタ530は、演算装置2が試験演算処理を実行するタイミングのみでNOP状態を示す値を記憶している。このため、試験演算結果はマスクされるが、通常の演算結果はマスクされることはない。このように、演算装置2は、第1実施形態と同様に、有効な演算命令が入力されていないタイミングを検出して試験演算命令を実行し、第1実施形態に加え、以下の式で表される比較を行い、エラーの検出を行う。Yn-Zn=Zn-Ynなお、Yn、Znは、NOP状態を検出する直前のクロックサイクルにおけるオペランドである。クロックサイクルT6以降も、上述のような動作を実行し、同様にエラーを検出する。以上が、演算装置2の動作の一例である。以上説明したように、本実施形態に係る演算装置2は、第1実施形態に係る演算装置1が奏する効果に加え、整数減算や浮動小数点減算に対してもエラーを検出することが可能であり、更に、試験演算命令に対する演算結果をマスクすることができる。演算装置2内で試験演算命令に対する演算結果をマスクすることができるため、外部装置でこのような試験演算命令に対する演算結果を考慮する必要がない。[第3実施形態]本実施形態に係る演算装置3は、図7に示すように、第1実施形態に係る演算装置1の構成と同様であるが、詳細な構成が異なり、算術演算器410が3Tのパイプライン構造となっている。なお、第1実施形態に係る演算装置1と同様の機能を実現する要素については、同一の符号を付し、説明を省略する。算術演算器410は、内部に第1パイプラインレジスタ440と、第2パイプラインレジスタ450と、を備える。このような構成の場合、NOP検出信号を記憶するレジスタの段数を、パイプラインの段数と合わせれば良い。よって、NOP検出部500は、第3NOPレジスタ540と、第4NOPレジスタ550と、を更に備える。以上が、演算装置3の詳細な構成の一例である。続いて、演算装置3の動作の一例について、タイミングチャートを参照して具体的に説明する。図8に示すように、クロックサイクルT2では、有効な演算命令であるOPコードADDと、その演算命令に対する第1オペランドY1と、第2オペランドZ1と、が入力される。また、クロックサイクルT3では、有効な命令が存在していない。クロックサイクルT3では、第1オペランドY1と第2オペランドZ1に対する演算処理が実行されるが、算術演算器410がパイプライン構造であるため、演算結果X1は、クロックサイクルT6で第1演算結果レジスタ420に記憶される。その後、演算結果X1は、クロックサイクルT7で第2演算結果レジスタ430に記憶され、オペランドを入れ替えた演算結果X1’との比較が行われる。クロックサイクルT3では、有効な演算命令が入力されなかったため、NOP検出器510は、NOP検出信号を出力する。これにより、クロックサイクルT4では、第1NOPレジスタ520は、NOPを示す値を記憶する。第2NOPレジスタ530は、クロックサイクルT5にて、第1NOPレジスタが記憶している値を記憶する。第3NOPレジスタ540、第4NOPレジスタ550も同様に、クロックサイクルを1つずつずらしてNOP状態を示す値が記憶される。NOP状態を示す値を記憶するレジスタを多段構成にすることで、最後の第4NOPレジスタ550は、演算結果を比較するタイミングと同じタイミングでイネーブル信号を出力することができ、エラー検出部600は、エラーを検出することができる。このように、演算装置3は、第1実施形態と同様に、算術演算器410がパイプライン構成であっても、有効な演算命令が入力されていないタイミングを検出して試験演算命令を実行することができる。クロックサイクルT6以降も、上述のような動作を実行し、同様にエラーを検出する。以上が、演算装置3の動作の一例である。以上説明したように、本実施形態に係る演算装置3は、第1実施形態に係る演算装置1が奏する効果に加え、算術演算器410がパイプライン構成であっても、エラーを検出することができる。[変形例]本発明は、上記実施形態に限定されず、種々の変形例及び応用が可能である。上記実施形態では、デジタル回路で構成される演算装置について説明したが、これに限られず、コンピュータで構成することも可能である。この場合、コンピュータで構成される演算装置4は、図9に示すように、制御部11と、主記憶部12と、外部記憶部13と、操作部14と、表示部15と、送受信部16と、から構成される。主記憶部12と、外部記憶部13と、操作部14と、表示部15と、送受信部16とは、いずれも内部バス10を介して制御部11と接続している。送受信部16は、シリアルインタフェースまたはLANLocalAreaNetworkインタフェース等から構成されている。送受信部16は、シリアルインタフェースやネットワークを介して送信された情報等を受信する。また、送受信部16は、受信した情報等を、制御部11に供給する。外部記憶部13は、フラッシュメモリ、ハードディスク、DVD-RAMDigitalVersatileDiscRandom-AccessMemory、DVD-RWDigitalVersatileDiscReWritable等の不揮発性メモリから構成され、各処理を制御部11に行わせるためのプログラム19を予め記憶し、また、制御部11の指示に従って、外部記憶部13が記憶するデータを制御部11に供給し、制御部11から供給されたデータを記憶する。主記憶部12は、RAMRandom-AccessMemory等から構成され、外部記憶部13に記憶されているプログラム19を読み込み、さらに制御部11の作業領域としても使用される。制御部11は、CPUCentralProcessingUnit等から構成され、外部記憶部13に記憶されているプログラム19に従って、後述する各処理を実行する。操作部14は、キーボードやマウス、操作キーやタッチパネルなどの入力デバイス等と、入力デバイス等を内部バス10に接続するインタフェース装置から構成されている。操作部14は、ユーザの指示を処理する機能を備え、ユーザの操作によって入力されたデータを制御部11に供給する。表示部15は、LCDLiquidCrystalDisplayまたは有機ELElectroLuminescence等から構成されている。表示部15は、各データや情報等を表示する。上述のような一般的な情報処理装置に命令制御部100、第1オペランド制御部200、第2オペランド制御部300、演算部400、NOP検出部500、エラー検出部600、減算検出部700、符号反転部800、否定部900、の各処理を実行させることで、演算装置4は、上述の各実施形態に係る演算装置1~3と同等の機能、効果を実現することができる。なお、本発明は、本発明の広義の趣旨及び範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。上記実施形態の一部又は全ては、以下の付記のようにも記載されうるが、以下には限られない。付記1演算装置に有効な演算命令が入力されていないNOP状態の検出に従って、受信する入力信号を制御する制御信号を出力するNOP検出部と、前記NOP検出部が出力した前記制御信号に従って、演算命令を示すOPコード信号を受信し、受信した前記OPコード信号を出力する命令制御部と、前記NOP検出部が出力した前記制御信号に従って、被演算データを示すオペランド信号を受信し、受信した前記オペランド信号を出力するオペランド制御部と、前記命令制御部が出力した前記OPコード信号が示す演算命令に従って、前記オペランド制御部が出力した前記オペランド信号が示す被演算データに対する演算処理を実行し、求めた演算結果データを出力する演算部と、前記演算部が出力した前記演算結果データに基づいて、エラーが発生したか否かを判別するエラー検出部と、を備える、ことを特徴とする演算装置。付記2前記命令制御部は、前記NOP検出部が前記NOP状態を検出した場合、直前に受信した前記OPコード信号を前記演算部に出力し、前記オペランド制御部は、前記NOP検出部が前記NOP状態を検出した場合、直前に受信した前記オペランド信号を前記演算部に出力し、前記エラー検出部は、前記演算部が直前に求めた前記演算結果データと前記NOP状態を検出した際に求めた前記演算結果データとを比較し、それぞれが異なる場合にエラーが発生したと判断する、ことを特徴とする付記1に記載の演算装置。付記3前記オペランド制御部は、第1オペランド制御部と、第2オペランド制御部と、を備え、前記第1オペランド制御部は、前記NOP検出部が前記NOP状態を検出していない場合、第1オペランド信号を受信し、受信した前記第1オペランド信号を前記演算部に出力し、前記NOP検出部が前記NOP状態を検出した場合、直前に受信した前記第1オペランド信号を前記第2オペランド制御部に出力し、前記第2オペランド制御部が出力した第2オペランド信号を受信し、受信した前記第2オペランド信号を前記演算部に出力し、前記第2オペランド制御部は、前記NOP検出部が前記NOP状態を検出していない場合、前記第2オペランド信号を受信し、受信した前記第2オペランド信号を前記演算部に出力し、前記NOP検出部が前記NOP状態を検出した場合、直前に受信した前記第2オペランド信号を前記第1オペランド制御部に出力し、前記第1オペランド制御部が出力した前記第1オペランド信号を受信し、受信した前記第1オペランド信号を前記演算部に出力する、ことを特徴とする付記1又は2に記載の演算装置。付記4前記NOP検出部は、前記NOP状態を検出したことを示すNOP検出信号を前記エラー検出部に出力し、前記エラー検出部は、前記NOP検出信号を受信し、前記NOP検出信号が前記NOP状態を示している場合、かつ、エラーが発生したと判別した場合、エラーが発生したことを示すエラー検出信号を出力する、ことを特徴とする付記1乃至3のいずれか1つに記載の演算装置。付記5前記OPコード信号が減算命令を示しているか否かを検出する減算検出部と、前記演算部が求めた前記演算結果データの符号を反転させる符号反転部と、を更に備え、前記符号反転部は、前記減算検出部が前記減算命令を検出した場合、前記演算部が求めた前記演算結果データの符号を反転し、前記エラー検出部は、前記演算部が求めた前記演算結果データと、前記符号反転部が符号を反転した前記演算結果データとを比較する、ことを特徴とする付記1乃至4のいずれか1つに記載の演算装置。付記6前記NOP検出部が出力した前記NOP検出信号を否定する否定部をさらに備え、前記否定部は、否定した前記NOP検出信号を前記エラー検出部に出力し、前記エラー検出部は、前記演算部が求めた前記演算結果データと前記否定部が否定して出力した前記NOP検出信号が示す値との論理積を求め、求めた前記論理積を前記演算結果データとして出力する、ことを特徴とする付記1乃至5のいずれか1つに記載に演算装置。付記7前記演算部は、パイプライン構成であり、前記NOP検出部は、前記NOP検出信号が示す値を記憶する記憶部を前記パイプラインの段数に従った数備える、ことを特徴とする付記1乃至6のいずれか1つに記載の演算装置。付記8前記命令制御部は、受信した前記OPコード信号を記憶するOPコード記憶部を備え、前記第1オペランド制御部は、受信した前記オペランド信号を記憶する第1オペランド記憶部を備え、前記第2オペランド制御部は、受信した前記オペランド信号を記憶する第2オペランド記憶部を備え、前記NOP検出部は、前記NOP検出信号を記憶する第1NOP記憶部と、前記第1NOP記憶部が記憶している前記NOP検出信号を記憶する第2NOP記憶部と、を備え、前記演算部は、前記演算結果データを記憶する第1演算結果記憶部と、前記第1演算結果記憶部が記憶している前記演算結果データを記憶する第2演算結果記憶部と、を備え、前記NOP検出部が前記NOP状態を検出した第1のクロックサイクルにおいて、前記NOP検出部は、前記第1NOP記憶部に前記NOP検出信号を記憶し、前記制御信号を前記命令制御部と前記第1オペランド制御部及び前記第2オペランド制御部に出力し、前記命令制御部は、直前に受信した前記OPコード信号を前記OPコード記憶部に記憶し、前記OPコード記憶部に記憶された前記OPコード信号を前記演算部に出力し、前記第1オペランド制御部は、前記第2オペランド制御部から受信した前記第2オペランド信号を前記第1オペランド記憶部に記憶し、前記第1オペランド記憶部に記憶された前記第2オペランド信号を前記演算部に出力し、前記第2オペランド制御部は、前記第1オペランド制御部から受信した前記第1オペランド信号を前記第2オペランド記憶部に記憶し、前記第2オペランド記憶部に記憶された前記第1オペランド信号を前記演算部に出力し、前記演算部は、求めた前記演算結果データを前記第1演算結果記憶部に記憶する、ことを特徴とする付記3に記載の演算装置。付記9前記第1のクロックサイクルの次の第2のクロックサイクルにおいて、前記NOP検出部は、前記第1NOP記憶部に記憶された前記NOP検出信号を前記第2NOP記憶部に記憶し、前記第2NOP記憶部に記憶された前記NOP検出信号を前記エラー検出部に出力し、前記演算部は、前記第1演算結果記憶部に記憶された前記演算結果データを前記第2演算結果記憶部に記憶し、前記命令制御部と前記第1オペランド制御部及び前記第2オペランド制御部の出力信号に従って試験演算結果データを求め、求めた前記試験演算結果データを前記第1演算結果記憶部に記憶し、前記第1演算結果記憶部に記憶された前記試験演算結果データと前記第2演算結果記憶部に記憶された前記演算結果データを前記エラー検出部に出力し、前記エラー検出部は、前記演算部が出力した前記試験演算結果データと前記演算結果データとを比較し、両者が異なる値である場合、かつ、前記NOP検出部が出力した前記NOP検出信号が前記NOP状態を示している場合、前記エラー検出信号を出力する、ことを特徴とする付記8に記載の演算装置。付記10演算装置に有効な演算命令が入力されていないNOP状態の検出に従って、受信する入力信号を制御する制御信号を出力するNOP検出ステップと、前記NOP検出ステップで出力した前記制御信号に従って、演算命令を示すOPコード信号を受信し、受信した前記OPコード信号を出力する命令制御ステップと、前記NOP検出ステップで出力した前記制御信号に従って、被演算データを示すオペランド信号を受信し、受信した前記オペランド信号を出力するオペランド制御ステップと、前記命令制御ステップで出力した前記OPコード信号が示す演算命令に従って、前記オペランド制御ステップで出力した前記オペランド信号が示す被演算データに対する演算処理を実行し、求めた演算結果データを出力する演算ステップと、前記演算ステップで出力した前記演算結果データに基づいて、エラーが発生したか否かを判別するエラー検出ステップと、を備える、ことを特徴とするエラー検出方法。