(57)【要約】【課題】ソフトウェアをハードウェア化した際の実行結果の照合。【解決手段】入力パケットに入力順識別番号（ＴＡＧ−Ｉ番号）を付加する工程ＳＳ１及びＳＨ１と、ハードウェア処理による複数の結果パケットに出力順識別番号（ＴＡＧ−Ｏ番号）を付加して出力する工程ＳＨ３と、ソフトウェア処理よる複数の結果パケットにハードウェア結果出力順序テーブルにより規定された出力順識別番号を付加する工程ＳＳ３と、これら出力した結果パケットをパケット毎に分割する工程ＳＳ５及びＳＨ５と、該分割した複数の結果パケットの入力順識別番号を第１優先順序、出力順識別番号を第２優先順序のキーとしてソートする工程ＳＳ６及びＳＨ６と、このソートした結果パケットを順に比較照合する工程ＳＣ１を実行することにより、ソフトウェア処理による結果パケット順をハードウェア処理による結果パケット順に合わせて照合するもの。【選択図】図２
2010049480.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ領域を含む入力パケットを複数記憶する入力パケット記憶部と、前記入力パケットを演算処理するソフトウェアを記憶するソフトウェア記憶部と、前記入力パケット記憶部に記憶した入力パケットを前記ソフトウェア記憶部に記憶したソフトウェアを用いて演算する制御部と、該制御部で演算した複数の結果パケットを記憶するソフトウェア結果パケット記憶部と、前記入力パケットの演算処理を実行する複数の演算処理部及び該演算処理部から出力された結果パケットの出力順に出力順識別番号を付加する出力順付加部とを有するハードウェア部と、該ハードウェア部の演算処理部により演算処理を実行したときの結果パケット出力順を格納したハードウェア結果出力順序テーブルと、前記入力パケット記憶部に記憶した入力パケットを前記ハードウェア部により演算し、該演算結果の結果パケットを記憶するハードウェア結果パケット記憶部とを備え、前記ソフトウェアをハードウェア化した半導体集積回路の実行結果を照合するハードウェア実行結果照合システムのハードウェア実行結果照合方法であって、
前記制御部が、
前記入力パケット記憶部に記憶した入力パケット毎に前記入力パケットの入力順を示す入力順識別番号を付加する第１工程と、
前記第１工程により入力順識別番号を付加した入力パケットの複数データを前記複数の演算処理部により並列的に演算して出力する第２工程と、
前記第２工程により出力される結果パケットに、出力される順番に出力順識別番号を付加して出力する第３工程と、
該第３工程により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ハードウェア結果パケット記憶部に記憶する第４工程と、
前記第４工程により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第５工程と、
該第５工程により分割した複数の結果パケットを、前記入力順識別番号を第１優先順位のキーとし、前記出力順識別番号を第２優先順位のキーとして所定の規則によりソートする第６工程と、
前記第１工程により入力順識別番号を付加した入力パケットの複数データを前記ソフトウェアにより演算した複数の結果パケットを順次出力する第７工程と、
該第７工程により順次出力される結果パケットに、前記ハードウェア結果出力順序テーブルに格納した出力順識別番号を付加して出力する第８工程と、
該第８工程により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ソフトウェア結果パケット記憶部に記憶する第９工程と、
前記第９工程により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第１０工程と、
前記第１０工程により分割した複数の結果パケットを、前記入力順識別番号を第１優先順位のキーとし、前記出力順識別番号を第２優先順位のキーとして前記所定の規則によりソートする第１１工程と、
前記第６工程によりソートしたソフトウェア処理による結果パケットと前記第１１工程によりソートしたハードウェア処理による結果パケットとを順次比較する第１２工程とを実行するハードウェア実行結果照合方法。
【請求項２】
前記ハードウェア部を、入力パケットを格納する複数のバッファと、該バッファから出力された入力パケットを複数のワード領域に格納されたデータを並列的に演算する複数の演算処理部と、該複数の演算処理部から出力された結果パケット毎に出力順識別番号を付加する複数の出力順識別番号付加部と、複数の出力順識別番号付加部から出力された結果パケットの出力順を調停する調停部とから構成し、
該調停部が、前記複数の出力順識別番号付加部から出力された結果パケットの出力順を、前記複数の演算処理部の処理速度を基に予め定められた順番に規制する請求項１記載のハードウェア実行結果照合方法。
【請求項３】
前記制御部が、前記入力順識別番号を整数型の変数の値を１増やすインクリメント若しくは変数の値を１減じるデクリメントして生成することにより、入力順識別番号が重複しないように入力順識別番号を入力パケットに付加する請求項１又は２記載のハードウェア実行結果照合方法。
【請求項４】
前記制御部が、前記入力順識別番号毎に出力順識別番号を整数型の変数の値を１増やすインクリメント若しくは変数の値を１減じるデクリメントして生成することにより、入力順識別番号が同一の結果パケットにおいて、出力順識別番号が重複しないように出力順識別番号を出力パケットに付加する請求項１又は２又は３記載のハードウェア実行結果照合方法。
【請求項５】
前記制御部が、前記第５工程及び第１０工程において、レングスを基に複数の結果パケットを前記入力順識別番号毎に分割する請求項１から４何れかに記載のハードウェア実行結果照合方法。
【請求項６】
複数のデータ領域を含む入力パケットを複数記憶する入力パケット記憶部と、前記入力パケットを演算処理するソフトウェアを記憶するソフトウェア記憶部と、前記入力パケット記憶部に記憶した入力パケットを前記ソフトウェア記憶部に記憶したソフトウェアを用いて演算する制御部と、該制御部で演算した複数の結果パケットを記憶するソフトウェア結果パケット記憶部と、前記入力パケットの演算処理を実行する複数の演算処理部及び該演算処理部から出力された結果パケットの出力順に出力順識別番号を付加する出力順付加部とを有するハードウェア部と、該ハードウェア部の演算処理部により演算処理を実行したときの結果パケット出力順を格納したハードウェア結果出力順序テーブルと、前記入力パケット記憶部に記憶した入力パケットを前記ハードウェア部により演算し、該演算結果の結果パケットを記憶するハードウェア結果パケット記憶部とを備え、前記ソフトウェアをハードウェア化した半導体集積回路の実行結果を照合するハードウェア実行結果照合システムのハードウェア実行結果照合プログラムであって、
前記制御部に、
前記入力パケット記憶部に記憶した入力パケット毎に前記入力パケットの入力順を示す入力順識別番号を付加する第１機能と、
前記第１機能により入力順識別番号を付加した入力パケットの複数データを前記複数の演算処理部により並列的に演算して出力する第２機能と、
前記第２機能により出力される結果パケットに、出力される順番に出力順識別番号を付加して出力する第３機能と、
該第３機能により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ハードウェア結果パケット記憶部に記憶する第４機能と、
前記第４機能により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第５機能と、
該第５機能により分割した複数の結果パケットを、前記入力順識別番号を第１優先順位のキーとし、前記出力順識別番号を第２優先順位のキーとして所定の規則によりソートする第６機能と、
前記第１機能により入力順識別番号を付加した入力パケットの複数データを前記ソフトウェアにより演算した複数の結果パケットを順次出力する第７機能と、
該第７機能により順次出力される結果パケットに、前記ハードウェア結果出力順序テーブルに格納した出力順識別番号を付加して出力する第８機能と、
該第８機能により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ソフトウェア結果パケット記憶部に記憶する第９機能と、
前記第９機能により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第１０機能と、
前記第１０機能により分割した複数の結果パケットを、前記入力順識別番号を第１優先順位のキーとし、前記出力順識別番号を第２優先順位のキーとして前記所定の規則によりソートする第１１機能と、
前記第６機能によりソートしたソフトウェア処理による結果パケットと前記第１１機能によりソートしたハードウェア処理による結果パケットとを順次比較する第１２機能とを実現させるハードウェア実行結果照合プログラム。
【請求項７】
前記ハードウェア部を、入力パケットを格納する複数のバッファと、該バッファから出力された入力パケットを複数のワード領域に格納されたデータを演算する複数の演算処理部と、該複数の演算処理部から出力された結果パケット毎に出力順識別番号を付加する複数の出力順識別番号付加部と、複数の出力順識別番号付加部から出力された結果パケットの出力順を調停する調停部とから構成し、
該調停部に、前記複数の出力順識別番号付加部から出力された結果パケットの出力順を、前記複数の演算処理部の処理速度を基に予め定められた順番に規制する機能を実現させる請求項６記載のハードウェア実行結果照合プログラム。
【請求項８】
前記制御部に、前記入力順識別番号を整数型の変数の値を１増やすインクリメント若しくは変数の値を１減じるデクリメントして生成することにより、入力パケット毎に入力順識別番号が重複しないように入力パケットに付加する機能を実現させる請求項６又は７記載のハードウェア実行結果照合プログラム。
【請求項９】
前記制御部が、前記入力順識別番号毎に出力順識別番号を整数型の変数の値を１増やすインクリメント若しくは変数の値を１減じるデクリメントして生成することにより、入力順識別番号が同一の結果パケットにおいて、出力順識別番号が重複しないように出力順識別番号を出力パケットに付加する請求項６又は７又は８記載のハードウェア実行結果照合プログラム。
【請求項１０】
前記制御部に、前記第５機能及び第１０機能において、レングスを基に複数の結果パケットを前記入力順識別番号毎に分割する機能を実現させる請求項６から９何れかに記載のハードウェア実行結果照合プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアを半導体集積回路によりハードウェア化する際のハードウェアのデバッグを行うハードウェア実行結果照合方法及びハードウェア実行結果照合プログラムに関する。
【背景技術】
【０００２】
近年、コンピュータのソフトウェアにより実現していた機能を処理速度高速化のために半導体集積回路により前記機能を実現するハードウェア化が行われており、このハードウェア化に際しては、設計したハードウェアによる実行結果がソフトウェアの実行結果と整合しているか否かを照合することが必要である。
【０００３】
従来技術によるハードウェアとソフトウェアの実行結果を検証する技術が記載された文献としては下記特許文献１が挙げられ、この特許文献１には、所定の機能を実現するソフトウェアによるシミュレーション結果と、前記ソフトウェアに基づいて作成したハードウェアのシミュレーション結果とを比較して等価性の検証を行うことにより期待値を用意せずにデバッグを行う技術が記載されている。
【特許文献１】特開２００１−６０２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記特許文献１に記載された技術は、ソフトウェアの期待値を用意せずにデバッグを行うことができるものの、パケットの結果を出力する順番がソフトウェアとハードウェアとでは異なる場合、正確な検証を行うことが困難であると言う不具合があった。
【０００５】
これを説明するためにパケットについて説明すると、まず、パケットとは、通信における情報の伝送単位を示し、例えば４ワード（１ワード＝４バイト）で構成されるパケットの場合、図１３に示す如く、パケットの種類を示すコマンド（ｃｍｄ）１５００１とサイズ（長さ）を表すレングス（ｌｅｎｇｔｈ）１５００２と未使用領域を表すリザーブ領域（Ｒｅｓｅｒｖｅｄ）とを含むＷｏｒｄ０と、符号１５００４で示す３つのデータ領域（Ｄａｔａ０，Ｄａｔａ１，Ｄａｔａ２）から成るＷｏｒｄ１〜３とから構成されている。
【０００６】
このように構成された複数のパケットに対するソフトウェアとハードウェアの結果の照合は、従来においては出力順に照合する方式が採用されていた。この照合方式は、図１４に示す如く、符号１００３及び１００２で示すパケット（１）〜（２）をソフトウェア演算処理部１００４が順に演算処理し、その結果を符号１００５〜１０１０に示す如く、結果パケット（１）−１，（１）−２，（１）−３，（２）−１の順に出力するソフトウェア処理１００１と、同様に入力したパケット（１）〜（２）をハードウェア演算処理部が順に演算処理し、その結果を符号１０１２〜１０１７の順に出力するハードウェア処理１０１１とを並列に動作させ、前述した各結果パケットを順に比較することによって行われていた。なお、前述の「並列に動作」は、ソフトウェア処理１００１とハードウェア処理１０１１を、必ずしも同時期に動作させる必要はなく、ソフトウェア処理１００１の動作後にハードウェア処理１０１１を動作、もしくは、ハードウェア処理１０１１の動作後にソフトウェア処理１００１を動作させるというシリアルな動作順序においてもあてはまる。
【０００７】
この従来技術による結果照合方式は、ソフトウェア処理とハードウェア処理によって出力される結果パケット順が同一な場合は有効なものの、例えばハードウェアが高速化のために並列処理を実行する構成の際には結果パケット出力順が異なり、前述の結果照合ができないと言う不具合があった。これを具体的に説明すると、図１５に示す如く、ソフトウェア処理２００１が、符号２００３及び２００２で示すパケット（１）及びパケット（２）をソフトウェア演算処理部２００４が順に演算処理し、その結果を符号２００５〜２０１０に示す如く、結果パケット（１）−１，（１）−２，（１）−３，（２）−１の順に出力し、ハードウェア処理２０１１が、入力パケット２０２０と入力パケット２０２１を並列に演算する２つの演算処理部２０１８及び２０１９から構成される場合、個々の演算処理部２０１８及び２０１９から出力される結果パケットが、符号２０１２〜２０１７として示す如く、結果パケット（１）−１，（２）−１，（１）−２，（２）−２，（１）−３，（２）−３の順にソフトウェア処理による出力順と異なった順で出力するため、結果パケットの順番による比較ができないと言う不具合があった。
【０００８】
本発明の目的は、ソフトウェア処理による結果パケットの出力順が異なるハードウェアの実行結果を照合することができるハードウェア実行結果照合方法及びハードウェア実行結果照合プログラムを提供することである。
【課題を解決するための手段】
【０００９】
前記目的を達成するため本発明は、複数のデータ領域を含む入力パケットを複数記憶する入力パケット記憶部と、前記入力パケットを演算処理するソフトウェアを記憶するソフトウェア記憶部と、前記入力パケット記憶部に記憶した入力パケットを前記ソフトウェア記憶部に記憶したソフトウェアを用いて演算する制御部と、該制御部で演算した複数の結果パケットを記憶するソフトウェア結果パケット記憶部と、前記入力パケットの演算処理を実行する複数の演算処理部及び該演算処理部から出力された結果パケットの出力順に出力順識別番号を付加する出力順付加部とを有するハードウェア部と、該ハードウェア部の演算処理部により演算処理を実行したときの結果パケット出力順を格納したハードウェア結果出力順序テーブルと、前記入力パケット記憶部に記憶した入力パケットを前記ハードウェア部により演算し、該演算結果の結果パケットを記憶するハードウェア結果パケット記憶部とを備え、前記ソフトウェアをハードウェア化した半導体集積回路の実行結果を照合するハードウェア実行結果照合システムのハードウェア実行結果照合方法であって、
前記制御部が、
前記入力パケット記憶部に記憶した入力パケット毎に前記入力パケットの入力順を示す入力順識別番号を付加する第１工程と、
前記第１工程により入力順識別番号を付加した入力パケットの複数データを前記複数の演算処理部により並列的に演算して出力する第２工程と、
前記第２工程により出力される結果パケットに、出力される順番に出力順識別番号を付加して出力する第３工程と、
該第３工程により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ハードウェア結果パケット記憶部に記憶する第４工程と、
前記第４工程により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第５工程と、
該第５工程により分割した複数の結果パケットを、前記入力順識別番号を第１優先順位のキーとし、前記出力順識別番号を第２優先順位のキーとして所定の規則によりソートする第６工程と、
前記第１工程により入力順識別番号を付加した入力パケットの複数データを前記ソフトウェアにより演算した複数の結果パケットを順次出力する第７工程と、
該第７工程により順次出力される結果パケットに、前記ハードウェア結果出力順序テーブルに格納した出力順識別番号を付加して出力する第８工程と、
該第８工程により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ソフトウェア結果パケット記憶部に記憶する第９工程と、
前記第９工程により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第１０工程と、
前記第１０工程により分割した複数の結果パケットを、前記入力順識別番号を第１優先順位のキーとし、前記出力順識別番号を第２優先順位のキーとして前記所定の規則によりソートする第１１工程と、
前記第６工程によりソートしたソフトウェア処理による結果パケットと前記第１１工程によりソートしたハードウェア処理による結果パケットとを順次比較する第１２工程とを実行することを第１の特徴とする。
【００１０】
また本発明は、該第１の特徴のハードウェア実行結果照合方法において、前記ハードウェア部を、入力パケットを格納する複数のバッファと、該バッファから出力された入力パケットを複数のワード領域に格納されたデータを並列的に演算する複数の演算処理部と、該複数の演算処理部から出力された結果パケット毎に出力順識別番号を付加する複数の出力順識別番号付加部と、複数の出力順識別番号付加部から出力された結果パケットの出力順を調停する調停部とから構成し、該調停部が、前記複数の出力順識別番号付加部から出力された結果パケットの出力順を、前記複数の演算処理部の処理速度を基に予め定められた順番に規制することを第２の特徴とする。
【００１１】
また本発明は、前記第１又は第２の特徴のハードウェア実行結果照合方法において、前記制御部が、前記入力順識別番号を整数型の変数の値を１増やすインクリメント若しくは変数の値を１減じるデクリメントして生成することにより、入力順識別番号が重複しないように入力順識別番号を入力パケットに付加することを第３の特徴とする。
【００１２】
また本発明は、前記第１〜３何れかの特徴のハードウェア実行結果照合方法において、前記制御部が、前記入力順識別番号毎に出力順識別番号を整数型の変数の値を１増やすインクリメント若しくは変数の値を１減じるデクリメントして生成することにより、出力順識別番号が同一の入力順識別番号の結果パケットにおいて重複しないように出力順識別番号を出力パケットに付加することを第４の特徴とする。
【００１３】
また本発明は、前記何れかの特徴のハードウェア実行結果照合方法であって、前記制御部が、前記第５工程及び第１０工程において、レングスを基に複数の結果パケットを前記入力順識別番号毎に分割することを第５の特徴とする。
【００１４】
また本発明は、複数のデータ領域を含む入力パケットを複数記憶する入力パケット記憶部と、前記入力パケットを演算処理するソフトウェアを記憶するソフトウェア記憶部と、前記入力パケット記憶部に記憶した入力パケットを前記ソフトウェア記憶部に記憶したソフトウェアを用いて演算する制御部と、該制御部で演算した複数の結果パケットを記憶するソフトウェア結果パケット記憶部と、前記入力パケットの演算処理を実行する複数の演算処理部及び該演算処理部から出力された結果パケットの出力順に出力順識別番号を付加する出力順付加部とを有するハードウェア部と、該ハードウェア部の演算処理部により演算処理を実行したときの結果パケット出力順を格納したハードウェア結果出力順序テーブルと、前記入力パケット記憶部に記憶した入力パケットを前記ハードウェア部により演算し、該演算結果の結果パケットを記憶するハードウェア結果パケット記憶部とを備え、前記ソフトウェアをハードウェア化した半導体集積回路の実行結果を照合するハードウェア実行結果照合システムのハードウェア実行結果照合プログラムであって、
前記制御部に、
前記入力パケット記憶部に記憶した入力パケット毎に前記入力パケットの入力順を示す入力順識別番号を付加する第１機能と、
前記第１機能により入力順識別番号を付加した入力パケットの複数データを前記複数の演算処理部により並列的に演算して出力する第２機能と、
前記第２機能により出力される結果パケットに、出力される順番に出力順識別番号を付加して出力する第３機能と、
該第３機能により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ハードウェア結果パケット記憶部に記憶する第４機能と、
前記第４機能により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第５機能と、
該第５機能により分割した複数の結果パケットを、前記入力順識別番号を第１優先順位のキーとし、前記出力順識別番号を第２優先順位のキーとして所定の規則によりソートする第６機能と、
前記第１機能により入力順識別番号を付加した入力パケットの複数データを前記ソフトウェアにより演算した複数の結果パケットを順次出力する第７機能と、
該第７機能により順次出力される結果パケットに、前記ハードウェア結果出力順序テーブルに格納した出力順識別番号を付加して出力する第８機能と、
該第８機能により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ソフトウェア結果パケット記憶部に記憶する第９機能と、
前記第９機能により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第１０機能と、
前記第１０機能により分割した複数の結果パケットを、前記入力順識別番号を第１優先順位のキーとし、前記出力順識別番号を第２優先順位のキーとして前記所定の規則によりソートする第１１機能と、
前記第６機能によりソートしたソフトウェア処理による結果パケットと前記第１１機能によりソートしたハードウェア処理による結果パケットとを順次比較する第１２機能とを実現させることを第６の特徴とする。
【００１５】
また本発明は、前記第６の特徴のハードウェア実行結果照合プログラムにおいて、前記ハードウェア部を、入力パケットを格納する複数のバッファと、該バッファから出力された入力パケットを複数のワード領域に格納されたデータを並列的に演算する複数の演算処理部と、該複数の演算処理部から出力された結果パケット毎に出力順識別番号を付加する複数の出力順識別番号付加部と、複数の出力順識別番号付加部から出力された結果パケットの出力順を調停する調停部とから構成し、該調停部に、前記複数の出力順識別番号付加部から出力された結果パケットの出力順を、前記複数の演算処理部の処理速度を基に予め定められた順番に規制する機能を実現させることを第７の特徴とする。
【００１６】
また本発明は、前記第６又は第７の特徴のハードウェア実行結果照合プログラムにおいて、前記制御部に、前記入力順識別番号を整数型の変数の値を１増やすインクリメント若しくは変数の値を１減じるデクリメントして生成することにより、入力パケット毎に入力順識別番号が重複しないように入力パケットに付加する機能を実現させることを第８の特徴とする。
【００１７】
また本発明は、前記第６から第８の何れかの特徴のハードウェア実行結果照合プログラムにおいて、前記制御部に、前記出力順識別番号を整数型の変数の値を１増やすインクリメント若しくは変数の値を１減じるデクリメントして生成することにより、出力パケット毎に出力順識別番号が重複しないように出力パケットに付加する機能を実現させることを第９の特徴とする。
【００１８】
また本発明は、前記何れかの特徴のハードウェア実行結果照合プログラムであって、前記制御部に、前記第５機能及び第１０機能において、レングスを基に複数の結果パケットを前記入力順識別番号毎に分割する機能を実現させることを第１０の特徴とする。
【発明の効果】
【００１９】
本発明によるハードウェア実行結果照合方法及びハードウェア実行結果照合プログラムは、入力パケットに入力順識別番号（ＴＡＧ−Ｉ番号）を個々に付加する工程と、ハードウェア処理によって前記入力順識別番号を付加した複数の結果パケットに出力順識別番号（ＴＡＧ−Ｏ番号）を付加して出力する工程と、ソフトウェア処理によって前記入力順識別番号を付加した複数の結果パケットに前記ハードウェア結果出力順序テーブルに記憶した順番の出力順識別番号（ＴＡＧ−Ｏ番号）を付加して出力する工程と、該出力した結果パケットを入力順識別番号毎に分割する工程と、該分割した複数の結果パケットを、前記入力順識別番号を第１優先順序、出力順識別番号を第２優先順序のキーとして所定の規則によりソートする工程とを実行し、ソフトウェア処理による結果パケットにハードウェア処理による出力順識別番号を付加することによって、ソフトウェア処理による結果パケットの出力順が異なるハードウェア部の実行結果を照合することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の一実施形態によるハードウェア実行結果照合方法及びハードウェア実行結果照合プログラムを図面を参照して詳細に説明する。図１は、本実施形態によるハードウェア実行結果照合システムの構成を示す図、図２は、本実施形態による結果照合手順を示すフロー図、図３は、本実施形態の対象となる入力パケットの一例を示す図、図４は、本実施形態の対象となる出力パケットの一例を示す図、図５は、本実施形態による並列化したハードウェアの一例を示すブロック図、図６は、本実施形態による結果パケットの生成時間の一例を示すタイムチャート図、図７は、本実施形態による結果パケットのハードウェア結果出力順序の一例を示したテーブル図、図８は、本実施形態による入力パケット投入順序の一例を示す構成図、図９は、本実施形態によるソフトウェアの結果パケット出力順序の一例を示す構成図、図１０は、本実施形態によるハードウェアの結果パケット出力順序の一例を示す構成図、図１１は、本実施形態によるソフトウェアの結果パケットをソートした一例を示す構成図、図１２は、本実施形態によるハードウェアの結果パケットをソートした一例を示す構成図、図１３は、本実施形態によるパケットの一例を示す構成図である。
【００２１】
［構成］
本実施形態によるハードウェア実行結果照合方法及びプログラムを実現するハードウェア実行結果照合システムは、図１に示す如く、コマンド等を入力するキーボード等の入力装置３００１と、ディスプレイ等の出力装置３００３と、プログラムに従った本実施形態による結果照合その他の機能を実行するＣＰＵ３００２と、該ＣＰＵ３００２にて実行されるプログラムやデータを記憶する主記憶装置３００４と、本実施形態の対象となる結果照合に使用されるソフトウェア他を記憶する補助記憶装置３００５と、本実施形態による検査照合対象となる半導体集積回路を含むハードウェア部３００６とから構成される。
【００２２】
前記補助記憶装置３００５に記憶されるプログラム及びデータは、ハードウェア化を行う基となるソフトウェアを格納する記憶部３００７と、本実施形態による結果照合を制御するための結果照合プログラムを格納する記憶部３００８と、記憶部３００７に格納したソフトウェア及びハードウェア部３００６に入力するための複数の入力データ（図３に示すパケットデータ５００１）を格納する記憶部３００９と、記憶部３００７に格納したソフトウェアを用いた演算結果データを格納する記憶部３０１１と、ハードウェア部３００６を用いた演算結果データを格納する記憶部３０１２とから構成される。尚、後述する説明においては、説明が冗長になるのを防ぐため、記憶部に記憶したプログラムやデータ等に記憶部の符号を付して説明することもある。
【００２３】
前記ハードウェア部３００６は、基になるソフトウェアをハードウェア化したものであって、図５に示す如く、入力ポート７００１から入力される入力パケット（１）〜（３）を各々一時的に格納するバッファ７００２〜７００４と、入力パケット（１）の３つのデータ領域（Ｄａｔａ０，Ｄａｔａ１，Ｄａｔａ２）のデータを各々演算する演算処理部７００５〜７００７と、入力パケット（２）の３つのデータ領域のデータ各々演算する演算処理部７００８〜７０１０と、入力パケット（３）の３つのデータ領域のデータを各々演算する演算処理部７０１１〜７０１３と、前記演算処理部７００５〜７００７により演算したＷｏｒｄ毎の結果データにＴＡＧ−Ｏ番号を付加するＴＡＧ−Ｏ付加部７０１６と、前記演算処理部７００８〜７０１０により演算したＷｏｒｄ毎の結果データにＴＡＧ−Ｏ番号を付加するＴＡＧ−Ｏ付加部７０１７と、前記演算処理部７０１１〜７０１３により演算したＷｏｒｄ毎の結果データにＴＡＧ−Ｏ番号を付加するＴＡＧ−Ｏ付加部７０１８と、該ＴＡＧ−Ｏ付加部７０１６〜７０１８から出力されたＴＡＧ−Ｏ番号付き結果パケットを出力する順番を後述するルールに従って調停して出力ポート７０１５から出力する調停部７０１４とから構成される。
【００２４】
前記ＴＡＧ−Ｏ付加部７０１６は、演算処理部７００５から出力する結果パケットにＴＡＧ−Ｏ番号「０００１」を付加し、演算処理部７００６から出力する結果パケットにＴＡＧ−Ｏ番号「０００２」を付加し、演算処理部７００７から出力する結果パケットにＴＡＧ−Ｏ番号「０００３」を付加する。前記ＴＡＧ−Ｏ付加部７０１７及び７０１８は、各演算処理部から出力された順に整数インクリメント（整数型の変数の値を１増やす処理）もしくは整数デクリメント（整数型の変数の値を１減じる処理）したＴＡＧ−Ｏ番号を付加する。
【００２５】
前記各ＴＡＧ−Ｏ付加部７０１６〜７０１８から出力される結果パケットの出力順は、ハードウェア設計時に想定（設定）され、例えば図６に示す如く、ＴＡＧ−Ｏ付加部７０１６においては結果パケット（１）−１と（１）−２と（１）−３とが同時間に出力され、ＴＡＧ−Ｏ付加部７０１７においては［符号８００１の結果パケット（２）−２］→［結果パケット（２）−１］→［符号８００２の結果パケット（２）−３］の順に出力され、ＴＡＧ−Ｏ付加部７０１８においては［結果パケット（３）−３］→［結果パケット（３）−２］→［結果パケット（３）−１］の順に出力されることが想定され、これら演算出力時間は、ハードウェアを設計する際に設計者が演算処理性能を見積もることで生成できる。
【００２６】
この演算処理時間による結果出力順は、前記図６に示した処理時間を基に、図７に示す如く、各種入力パケット毎の結果パケットのハードウェア結果出力順序を示したテーブルとして表すことができ、このテーブルは、本発明におけるソフトウェアの実行結果とハードウェアの実行結果を照合（具体的には、後述のステップＳＳ６におけるソート）する際に必要な情報であり、ハードウェア設計時にハードウェアの演算処理時間の見積り値をもとにしたハードウェアの結果出力順序をテーブルにまとめることで作成でき、補助記憶装置３００５に記憶させる。また、ハードウェアの設計が完了し、実機が完成した後は、ハードウェアのシミュレーション環境もしくは実機を使用して処理時間を測定することで、図６のタイムチャートに示す演算処理時間の見積りが正しいか否かを確認することができる。見積りの演算処理時間と実測した演算処理時間に差があった場合は、図６のタイムチャートおよび図７のテーブルを実測の演算処理時間に修正し、図２のフローチャートのＳＳ１に戻ってソフトウェアの入力パケットへのＴＡＧ−Ｉの付加からやり直すことで、ソフトウェアとハードウェアの正確な実行結果照合が可能である。
【００２７】
［動作］
［入力動作］
このように構成されたハードウェア実行結果照合システムの動作を次に説明する。このハードウェア実行結果照合システムは、図１に示す如く、入力装置３００１から入力されたコマンドに従ってＣＰＵ３００２が補助記憶装置３００５に格納したプログラム３００８及び入力データ３００９を主記憶装置３００４にロードし、前記入力データ３００９に入力パケットに対する識別子であるＴＡＧ−Ｉ番号の付加を指示するステップＳＳ１及びステップＳＨ１とを実行する。このＴＡＧ−Ｉ番号とは、図３左端の符号５００２で示す入力パケット（１）〜（３）に個々に固有の識別番号として付加するものであり、例えば図３右端に符号５００４として示す如く、符号５００５の入力パケット（１）のＴＡＧ−Ｉ番号として「０００１」、符号５００６の入力パケット（２）のＴＡＧ−Ｉ番号として「０００２」、符号５００７の入力パケット（３）のＴＡＧ−Ｉ番号として「０００３」を各々入力パケットの識別子として付加する。このＴＡＧ−Ｉ番号を付加した入力データは、再び補助記憶装置３００５に入力データ３００９として記憶される。
【００２８】
［演算動作］
次いで本システムは、補助記憶装置３００５に格納したＴＡＧ−Ｉ番号を付加した入力データ３００９及びソフトウェア３００７を主記憶装置３００４にロードし、該ソフトウェア３００７による入力パケットデータ３００９の演算処理を行うステップＳＳ２と、前記ハードウェア部３００６の演算処理部７００５〜７０１３による入力パケットデータ３００９の演算処理を行うステップＳＨ２と、前記ステップＳＳ２によって演算した結果である結果パケットへＴＡＧ−Ｏ番号を付加するステップＳＳ３と、該ステップＳＳ２及びＳＳ３を入力するパケット全ての演算が完了するまで実行するステップＳＳ４と、前記ステップＳＨ２によって演算した結果である結果パケットへＴＡＧ−Ｏ番号を付加するステップＳＨ３と、該ステップＳＨ２及びＳＨ３を入力するパケット全ての演算が完了するまで行うステップＳＨ４とを実行する。
【００２９】
ここで前記ステップＳＳ３及びＳＨ３による結果パケットへ付加するＴＡＧ−Ｏ番号について説明する。まず、従来演算結果が、図４左側に示した如き、符号６００２〜６００４を付した結果パケット（１）−１，（１）−２，（１）−３，及び符号なしの（２）−１，（２）−２の順に整列した結果パケットの場合、本実施形態により付加する結果パケットは、例えば図４右側に符号６００６〜６０１６で示す如く、演算処理時に処理対象の入力パケットに付加されたＴＡＧ−Ｉ番号（例えばＴＡＧ−Ｉ＝０００１）を保持し、演算処理を行った結果である結果パケットに更にＴＡＧ−Ｏ番号（例えばＴＡＧ−Ｏ＝０００１）を同一ＴＡＧ−Ｉ番号の他の結果パケットと重複しないように順番に整数をインクリメントもしくは整数デクリメントしたものを付加することによって行われる。尚、図４に示すＴＡＧ番号は一例である。
【００３０】
本実施形態によるハードウェア実行結果照合システムのＣＰＵ３００２は、前記ステップＳＨ３による結果パケットにＴＡＧ−Ｏ番号を付加する際、ハードウェア部３００６が、図６に示した各演算処理部の演算処理時間に対応したＴＡＧ−Ｏ番号を結果パケットに付加して出力し、ハードウェア実行結果記憶部３０１２に記憶する。
【００３１】
また本ハードウェア実行結果照合システムは、前記ステップＳＳ３の結果パケットにＴＡＧ−Ｏ番号を付加する際、前述の補助記憶装置３００５に記憶した結果出力順序テーブル（図７）を参照し、該テーブルに規定された規則に従って各出力パケットにＴＡＧ−Ｏ番号を付加する。これを具体的に説明すると、ＣＰＵ３００２は、ソフトウェアにより演算処理された結果パケットにおいて、結果パケット（１）−１は、ハードウェア結果出力順序が１番目（符号９００１）のためＴＡＧ−Ｏ番号「０００１」を付加し、結果パケット（１）−２は、ハードウェア結果出力順序が２番目（符号９００２）のためＴＡＧ−Ｏ番号「０００２」を付加し、結果パケット（１）−３は、ハードウェア結果出力順序が３番目（符号９００３）のためＴＡＧ−Ｏ番号「０００３」を付加する。なお、結果パケット（１）−１、結果パケット（１）−２、結果パケット（１）−３は、ソフトウェアの結果出力順序とハードウェアの結果出力順序が同じになるケースである。次に、ソフトウェアの結果出力順序とハードウェアの結果出力順序が異なるケースを結果パケット（２）−１、結果パケット（２）−２、結果パケット（２）−３で説明する。結果パケット（２）−１は、シリアル処理であるソフトウェアの結果出力順序は１番目であるが、ＴＡＧ−Ｏ番号に「０００１」を付加するのではなく、図７の結果出力順序テーブルを参照し、ハードウェア結果出力順序が２番目（符号９００４）のためＴＡＧ−Ｏ番号「０００２」を付加し、同様に、結果パケット（２）−２は、ハードウェア結果出力順序が１番目（符号９００５）のためＴＡＧ−Ｏ番号「０００１」を付加し、結果パケット（２）−３は、ハードウェア結果出力順序が３番目（符号９００６）のためＴＡＧ−Ｏ番号「０００３」を付加する。結果パケット（３）−１、結果パケット（３）−２、結果パケット（３）−３に対しても同様にハードウェア結果出力順序に沿ったＴＡＧ−Ｏ番号を付加する。
このため本システムは、ハードウェア処理によって出力される結果パケットに付加されるＴＡＧ−Ｏ番号と同じＴＡＧ−Ｏ番号をソフトウェア処理によって出力される同一の結果パケットに付加してソフトウェア実行結果記憶部３０１２に記憶する。
【００３２】
これら記憶された結果パケットは、ソフトウェア処理により出力された結果パケットが、図９の符号１１００９〜１１００１として表した如く、１番目から９番目に向かって、結果パケット（１）−１，結果パケット（１）−２，結果パケット（１）−３，結果パケット（２）−１，結果パケット（２）−２，結果パケット（２）−３，結果パケット（３）−１，結果パケット（３）−２，結果パケット（３）−３の如き順番となる。
【００３３】
これに対してハードウェア処理により出力された結果パケットは、図１０に示す如く、１番目が結果パケット（２）−２，２番目が結果パケット（３）−３，３番目が結果パケット（２）−１，４番目が結果パケット（３）−２，５番目が結果パケット（１）−１，６番目が結果パケット（１）−２，７番目が結果パケット（１）−３，８番目が結果パケット（３）−１，９番目が結果パケット（２）−３の如きハードウェア並列処理による順番が混在した形となる。
【００３４】
［分割動作］
次に本結果照合システムは、ソフトウェアによる実行結果をパケット毎に分割する処理を行うステップＳＳ５と、前記ハードウェアによる実行結果をパケット毎に分割する処理を行うステップＳＨ５とを実行する。このパケット分割処理は、パケットが前記図１３に示した様にパケットの種類を示すコマンド１５００１とパケットの長さを示すレングス１５００２とがパケット内のフィールドにアサインされており、このコマンド１５００１とレングス１５００２を基にパケットの終端を判定することによって、パケット毎に分割することができる。
【００３５】
［ソート動作］
次いで本ハードウェア実行結果照合システムは、前記ステップＳＳ５により分割した結果パケットのデータに対し、ＴＡＧ−Ｉ番号を優先順位１のキーとし、ＴＡＧ−Ｏ番号を優先順位２のキーとして昇順にソートするステップＳＳ６と、前記ステップＳＨ５により分割した結果パケットのデータに対し、ＴＡＧ−Ｉ番号を優先順位１のキーとし、ＴＡＧ−Ｏ番号を優先順位２のキーとして昇順にソートするステップＳＨ６とを実行する。尚、前記ソート順の規則は、降順であっても良いが、ソフトウェア処理による結果パケットとハードウェア処理による結果パケットのソート規則を同一にすることが必要である。
【００３６】
前記ステップＳＳ６によりソートされたソフトウェア処理による結果パケットは、図１１に示す如く、下から順に、結果パケット（１）−１，結果パケット（１）−２，結果パケット（１）−３，結果パケット（２）−２，結果パケット（２）−１，結果パケット（２）−３，結果パケット（３）−３，結果パケット（３）−２，結果パケット（３）−１の順にソートされる。
また前記ステップＳＨ６により出力されたハードウェア処理による結果パケットは、図１２に示す如く、下から順に、結果パケット（１）−１，結果パケット（１）−２，結果パケット（１）−３，結果パケット（２）−２，結果パケット（２）−１，結果パケット（２）−３，結果パケット（３）−３，結果パケット（３）−２，結果パケット（３）−１の順に前記ソフトウェア処理による結果パケットと同一順にソートされる。
【００３７】
［照合動作］
次にハードウェア実行結果照合システムは、前記ステップＳＳ６及びＳＨ６によりソートした結果パケットを順に比較して照合するステップＳＣ１と、該ステップＳＣ１による照合結果が一致か否かを判定するステップＳＣ２と、該ステップＳＣ２により一致すると判定したとき、全ての結果パケットが一致したか否かを判定し、全ての判定が済んでいないときに前記ステップＳＣ１に戻り、済んだと判定したときに処理を終了するステップＳＣ３とを実行することによって、ハードウェア部３００６の実行結果パケットとソフトウェア３００７による実行結果パケットとが一致するか検証することができる。尚、前記ステップＳＣ２において結果パケットが一致していないと判定したとき、本システムは操作者に該当パケットに対するアラーム等を発し、不一致の原因解明を指示するように動作する。
【００３８】
このように本実施形態によるハードウェア実行結果照合システムは、入力パケットに識別子であるＴＡＧ−Ｉ番号を個々に付加する工程と、ハードウェア処理によって前記識別子を付加した複数の結果パケット出力順にＴＡＧ−Ｏ番号を付加して出力する工程と、ソフトウェア処理によって前記入力順識別番号を付加した複数の結果パケットに前記ハードウェア結果出力順序テーブルに記憶した順番の出力順識別番号（ＴＡＧ−Ｏ番号）を付加して出力する工程と、該出力した結果パケットをＴＡＧ−Ｉ番号毎に分割する工程と、該分割した複数の結果パケットを前記ＴＡＧ−Ｉ番号及びＴＡＧ−Ｏ番号をキーとして所定の規則によりソートする工程とを実行し、ソフトウェア処理による結果パケットにハードウェア処理によって付加される出力識別番号を付加することによりハードウェア処理による結果パケットとソフトウェア処理による結果パケットとの出力順を合わせ、この出力順を合わせた結果パケットを順次比較することによって、ソフトウェア処理による結果パケットの出力順が異なるハードウェアの実行結果を照合することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態によるハードウェア実行結果照合システムの構成を示す図。
【図２】本実施形態による結果照合手順を示すフロー図。
【図３】本実施形態の対象となる入力パケットの一例を示す図。
【図４】本実施形態の対象となる出力パケットの一例を示す図。
【図５】本実施形態による並列化したハードウェアの一例を示すブロック図。
【図６】本実施形態による結果パケットの生成時間の一例を示すタイムチャート。
【図７】本実施形態による結果パケットのハードウェア結果出力順序例を示す図。
【図８】本実施形態による入力パケット投入順序の一例を示す図。
【図９】本実施形態によるソフトウェアの結果パケット出力順序例を示す図。
【図１０】本実施形態によるハードウェアの結果パケット出力順序例を示す図。
【図１１】本実施形態によるソフトウェアの結果パケットのソート例を示す図。
【図１２】本実施形態によるハードウェアの結果パケットのソート例を示す図。
【図１３】本実施形態の対象となるパケットの一例を示す図。
【図１４】従来技術によるソフトウェアとハードウェア結果照合の一例を示す図。
【図１５】従来技術によるソフトウェアとハードウェア結果照合の一例を示す図。
【符号の説明】
【００４０】
２００２〜２００３：入力パケット、２００４：演算処理部、２００５〜２０１０：結果パケット、２０２０〜２０２１：入力パケット、２０１８及び２０１９：演算処理部、２０１２〜２０１７：結果パケット、３００１：入力装置、３００３：出力装置、３００４：主記憶装置、３００５：補助記憶装置、３００６：ハードウェア部、３００７：ソフトウェア記憶部、３００８：プログラム記憶部、３００９：入力パケットデータ記憶部、３０１１：ソフトウェア実行結果記憶部、３０１２：ハードウェア実行結果記憶部、７００２〜７００４：バッファ、７００５〜７０１３：演算処理部、７０１４：調停部、７０１５：出力ポート、７００１：入力ポート、７０１６〜７０１８：ＴＡＧ−Ｏ付加部。
【図１】
2010049480.tif 000003
【図２】
2010049480.tif 000004
【図３】
2010049480.tif 000005
【図４】
2010049480.tif 000006
【図５】
2010049480.tif 000007
【図６】
2010049480.tif 000008
【図７】
2010049480.tif 000009
【図８】
2010049480.tif 000010
【図９】
2010049480.tif 000011
【図１０】
2010049480.tif 000012
【図１１】
2010049480.tif 000013
【図１２】
2010049480.tif 000014
【図１３】
2010049480.tif 000015
【図１４】
2010049480.tif 000016
【図１５】
2010049480.tif 000017