説明

ハードウェア実行結果照合方法及びハードウェア実行結果照合プログラム

【課題】ソフトウェアをハードウェア化した際の実行結果の照合。
【解決手段】入力パケットに入力順識別番号(TAG−I番号)を付加する工程SS1及びSH1と、ハードウェア処理による複数の結果パケットに出力順識別番号(TAG−O番号)を付加して出力する工程SH3と、ソフトウェア処理よる複数の結果パケットにハードウェア結果出力順序テーブルにより規定された出力順識別番号を付加する工程SS3と、これら出力した結果パケットをパケット毎に分割する工程SS5及びSH5と、該分割した複数の結果パケットの入力順識別番号を第1優先順序、出力順識別番号を第2優先順序のキーとしてソートする工程SS6及びSH6と、このソートした結果パケットを順に比較照合する工程SC1を実行することにより、ソフトウェア処理による結果パケット順をハードウェア処理による結果パケット順に合わせて照合するもの。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアを半導体集積回路によりハードウェア化する際のハードウェアのデバッグを行うハードウェア実行結果照合方法及びハードウェア実行結果照合プログラムに関する。
【背景技術】
【0002】
近年、コンピュータのソフトウェアにより実現していた機能を処理速度高速化のために半導体集積回路により前記機能を実現するハードウェア化が行われており、このハードウェア化に際しては、設計したハードウェアによる実行結果がソフトウェアの実行結果と整合しているか否かを照合することが必要である。
【0003】
従来技術によるハードウェアとソフトウェアの実行結果を検証する技術が記載された文献としては下記特許文献1が挙げられ、この特許文献1には、所定の機能を実現するソフトウェアによるシミュレーション結果と、前記ソフトウェアに基づいて作成したハードウェアのシミュレーション結果とを比較して等価性の検証を行うことにより期待値を用意せずにデバッグを行う技術が記載されている。
【特許文献1】特開2001−60210号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
前記特許文献1に記載された技術は、ソフトウェアの期待値を用意せずにデバッグを行うことができるものの、パケットの結果を出力する順番がソフトウェアとハードウェアとでは異なる場合、正確な検証を行うことが困難であると言う不具合があった。
【0005】
これを説明するためにパケットについて説明すると、まず、パケットとは、通信における情報の伝送単位を示し、例えば4ワード(1ワード=4バイト)で構成されるパケットの場合、図13に示す如く、パケットの種類を示すコマンド(cmd)15001とサイズ(長さ)を表すレングス(length)15002と未使用領域を表すリザーブ領域(Reserved)とを含むWord0と、符号15004で示す3つのデータ領域(Data0,Data1,Data2)から成るWord1〜3とから構成されている。
【0006】
このように構成された複数のパケットに対するソフトウェアとハードウェアの結果の照合は、従来においては出力順に照合する方式が採用されていた。この照合方式は、図14に示す如く、符号1003及び1002で示すパケット(1)〜(2)をソフトウェア演算処理部1004が順に演算処理し、その結果を符号1005〜1010に示す如く、結果パケット(1)−1,(1)−2,(1)−3,(2)−1の順に出力するソフトウェア処理1001と、同様に入力したパケット(1)〜(2)をハードウェア演算処理部が順に演算処理し、その結果を符号1012〜1017の順に出力するハードウェア処理1011とを並列に動作させ、前述した各結果パケットを順に比較することによって行われていた。なお、前述の「並列に動作」は、ソフトウェア処理1001とハードウェア処理1011を、必ずしも同時期に動作させる必要はなく、ソフトウェア処理1001の動作後にハードウェア処理1011を動作、もしくは、ハードウェア処理1011の動作後にソフトウェア処理1001を動作させるというシリアルな動作順序においてもあてはまる。
【0007】
この従来技術による結果照合方式は、ソフトウェア処理とハードウェア処理によって出力される結果パケット順が同一な場合は有効なものの、例えばハードウェアが高速化のために並列処理を実行する構成の際には結果パケット出力順が異なり、前述の結果照合ができないと言う不具合があった。これを具体的に説明すると、図15に示す如く、ソフトウェア処理2001が、符号2003及び2002で示すパケット(1)及びパケット(2)をソフトウェア演算処理部2004が順に演算処理し、その結果を符号2005〜2010に示す如く、結果パケット(1)−1,(1)−2,(1)−3,(2)−1の順に出力し、ハードウェア処理2011が、入力パケット2020と入力パケット2021を並列に演算する2つの演算処理部2018及び2019から構成される場合、個々の演算処理部2018及び2019から出力される結果パケットが、符号2012〜2017として示す如く、結果パケット(1)−1,(2)−1,(1)−2,(2)−2,(1)−3,(2)−3の順にソフトウェア処理による出力順と異なった順で出力するため、結果パケットの順番による比較ができないと言う不具合があった。
【0008】
本発明の目的は、ソフトウェア処理による結果パケットの出力順が異なるハードウェアの実行結果を照合することができるハードウェア実行結果照合方法及びハードウェア実行結果照合プログラムを提供することである。
【課題を解決するための手段】
【0009】
前記目的を達成するため本発明は、複数のデータ領域を含む入力パケットを複数記憶する入力パケット記憶部と、前記入力パケットを演算処理するソフトウェアを記憶するソフトウェア記憶部と、前記入力パケット記憶部に記憶した入力パケットを前記ソフトウェア記憶部に記憶したソフトウェアを用いて演算する制御部と、該制御部で演算した複数の結果パケットを記憶するソフトウェア結果パケット記憶部と、前記入力パケットの演算処理を実行する複数の演算処理部及び該演算処理部から出力された結果パケットの出力順に出力順識別番号を付加する出力順付加部とを有するハードウェア部と、該ハードウェア部の演算処理部により演算処理を実行したときの結果パケット出力順を格納したハードウェア結果出力順序テーブルと、前記入力パケット記憶部に記憶した入力パケットを前記ハードウェア部により演算し、該演算結果の結果パケットを記憶するハードウェア結果パケット記憶部とを備え、前記ソフトウェアをハードウェア化した半導体集積回路の実行結果を照合するハードウェア実行結果照合システムのハードウェア実行結果照合方法であって、
前記制御部が、
前記入力パケット記憶部に記憶した入力パケット毎に前記入力パケットの入力順を示す入力順識別番号を付加する第1工程と、
前記第1工程により入力順識別番号を付加した入力パケットの複数データを前記複数の演算処理部により並列的に演算して出力する第2工程と、
前記第2工程により出力される結果パケットに、出力される順番に出力順識別番号を付加して出力する第3工程と、
該第3工程により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ハードウェア結果パケット記憶部に記憶する第4工程と、
前記第4工程により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第5工程と、
該第5工程により分割した複数の結果パケットを、前記入力順識別番号を第1優先順位のキーとし、前記出力順識別番号を第2優先順位のキーとして所定の規則によりソートする第6工程と、
前記第1工程により入力順識別番号を付加した入力パケットの複数データを前記ソフトウェアにより演算した複数の結果パケットを順次出力する第7工程と、
該第7工程により順次出力される結果パケットに、前記ハードウェア結果出力順序テーブルに格納した出力順識別番号を付加して出力する第8工程と、
該第8工程により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ソフトウェア結果パケット記憶部に記憶する第9工程と、
前記第9工程により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第10工程と、
前記第10工程により分割した複数の結果パケットを、前記入力順識別番号を第1優先順位のキーとし、前記出力順識別番号を第2優先順位のキーとして前記所定の規則によりソートする第11工程と、
前記第6工程によりソートしたソフトウェア処理による結果パケットと前記第11工程によりソートしたハードウェア処理による結果パケットとを順次比較する第12工程とを実行することを第1の特徴とする。
【0010】
また本発明は、該第1の特徴のハードウェア実行結果照合方法において、前記ハードウェア部を、入力パケットを格納する複数のバッファと、該バッファから出力された入力パケットを複数のワード領域に格納されたデータを並列的に演算する複数の演算処理部と、該複数の演算処理部から出力された結果パケット毎に出力順識別番号を付加する複数の出力順識別番号付加部と、複数の出力順識別番号付加部から出力された結果パケットの出力順を調停する調停部とから構成し、該調停部が、前記複数の出力順識別番号付加部から出力された結果パケットの出力順を、前記複数の演算処理部の処理速度を基に予め定められた順番に規制することを第2の特徴とする。
【0011】
また本発明は、前記第1又は第2の特徴のハードウェア実行結果照合方法において、前記制御部が、前記入力順識別番号を整数型の変数の値を1増やすインクリメント若しくは変数の値を1減じるデクリメントして生成することにより、入力順識別番号が重複しないように入力順識別番号を入力パケットに付加することを第3の特徴とする。
【0012】
また本発明は、前記第1〜3何れかの特徴のハードウェア実行結果照合方法において、前記制御部が、前記入力順識別番号毎に出力順識別番号を整数型の変数の値を1増やすインクリメント若しくは変数の値を1減じるデクリメントして生成することにより、出力順識別番号が同一の入力順識別番号の結果パケットにおいて重複しないように出力順識別番号を出力パケットに付加することを第4の特徴とする。
【0013】
また本発明は、前記何れかの特徴のハードウェア実行結果照合方法であって、前記制御部が、前記第5工程及び第10工程において、レングスを基に複数の結果パケットを前記入力順識別番号毎に分割することを第5の特徴とする。
【0014】
また本発明は、複数のデータ領域を含む入力パケットを複数記憶する入力パケット記憶部と、前記入力パケットを演算処理するソフトウェアを記憶するソフトウェア記憶部と、前記入力パケット記憶部に記憶した入力パケットを前記ソフトウェア記憶部に記憶したソフトウェアを用いて演算する制御部と、該制御部で演算した複数の結果パケットを記憶するソフトウェア結果パケット記憶部と、前記入力パケットの演算処理を実行する複数の演算処理部及び該演算処理部から出力された結果パケットの出力順に出力順識別番号を付加する出力順付加部とを有するハードウェア部と、該ハードウェア部の演算処理部により演算処理を実行したときの結果パケット出力順を格納したハードウェア結果出力順序テーブルと、前記入力パケット記憶部に記憶した入力パケットを前記ハードウェア部により演算し、該演算結果の結果パケットを記憶するハードウェア結果パケット記憶部とを備え、前記ソフトウェアをハードウェア化した半導体集積回路の実行結果を照合するハードウェア実行結果照合システムのハードウェア実行結果照合プログラムであって、
前記制御部に、
前記入力パケット記憶部に記憶した入力パケット毎に前記入力パケットの入力順を示す入力順識別番号を付加する第1機能と、
前記第1機能により入力順識別番号を付加した入力パケットの複数データを前記複数の演算処理部により並列的に演算して出力する第2機能と、
前記第2機能により出力される結果パケットに、出力される順番に出力順識別番号を付加して出力する第3機能と、
該第3機能により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ハードウェア結果パケット記憶部に記憶する第4機能と、
前記第4機能により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第5機能と、
該第5機能により分割した複数の結果パケットを、前記入力順識別番号を第1優先順位のキーとし、前記出力順識別番号を第2優先順位のキーとして所定の規則によりソートする第6機能と、
前記第1機能により入力順識別番号を付加した入力パケットの複数データを前記ソフトウェアにより演算した複数の結果パケットを順次出力する第7機能と、
該第7機能により順次出力される結果パケットに、前記ハードウェア結果出力順序テーブルに格納した出力順識別番号を付加して出力する第8機能と、
該第8機能により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ソフトウェア結果パケット記憶部に記憶する第9機能と、
前記第9機能により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第10機能と、
前記第10機能により分割した複数の結果パケットを、前記入力順識別番号を第1優先順位のキーとし、前記出力順識別番号を第2優先順位のキーとして前記所定の規則によりソートする第11機能と、
前記第6機能によりソートしたソフトウェア処理による結果パケットと前記第11機能によりソートしたハードウェア処理による結果パケットとを順次比較する第12機能とを実現させることを第6の特徴とする。
【0015】
また本発明は、前記第6の特徴のハードウェア実行結果照合プログラムにおいて、前記ハードウェア部を、入力パケットを格納する複数のバッファと、該バッファから出力された入力パケットを複数のワード領域に格納されたデータを並列的に演算する複数の演算処理部と、該複数の演算処理部から出力された結果パケット毎に出力順識別番号を付加する複数の出力順識別番号付加部と、複数の出力順識別番号付加部から出力された結果パケットの出力順を調停する調停部とから構成し、該調停部に、前記複数の出力順識別番号付加部から出力された結果パケットの出力順を、前記複数の演算処理部の処理速度を基に予め定められた順番に規制する機能を実現させることを第7の特徴とする。
【0016】
また本発明は、前記第6又は第7の特徴のハードウェア実行結果照合プログラムにおいて、前記制御部に、前記入力順識別番号を整数型の変数の値を1増やすインクリメント若しくは変数の値を1減じるデクリメントして生成することにより、入力パケット毎に入力順識別番号が重複しないように入力パケットに付加する機能を実現させることを第8の特徴とする。
【0017】
また本発明は、前記第6から第8の何れかの特徴のハードウェア実行結果照合プログラムにおいて、前記制御部に、前記出力順識別番号を整数型の変数の値を1増やすインクリメント若しくは変数の値を1減じるデクリメントして生成することにより、出力パケット毎に出力順識別番号が重複しないように出力パケットに付加する機能を実現させることを第9の特徴とする。
【0018】
また本発明は、前記何れかの特徴のハードウェア実行結果照合プログラムであって、前記制御部に、前記第5機能及び第10機能において、レングスを基に複数の結果パケットを前記入力順識別番号毎に分割する機能を実現させることを第10の特徴とする。
【発明の効果】
【0019】
本発明によるハードウェア実行結果照合方法及びハードウェア実行結果照合プログラムは、入力パケットに入力順識別番号(TAG−I番号)を個々に付加する工程と、ハードウェア処理によって前記入力順識別番号を付加した複数の結果パケットに出力順識別番号(TAG−O番号)を付加して出力する工程と、ソフトウェア処理によって前記入力順識別番号を付加した複数の結果パケットに前記ハードウェア結果出力順序テーブルに記憶した順番の出力順識別番号(TAG−O番号)を付加して出力する工程と、該出力した結果パケットを入力順識別番号毎に分割する工程と、該分割した複数の結果パケットを、前記入力順識別番号を第1優先順序、出力順識別番号を第2優先順序のキーとして所定の規則によりソートする工程とを実行し、ソフトウェア処理による結果パケットにハードウェア処理による出力順識別番号を付加することによって、ソフトウェア処理による結果パケットの出力順が異なるハードウェア部の実行結果を照合することができる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の一実施形態によるハードウェア実行結果照合方法及びハードウェア実行結果照合プログラムを図面を参照して詳細に説明する。図1は、本実施形態によるハードウェア実行結果照合システムの構成を示す図、図2は、本実施形態による結果照合手順を示すフロー図、図3は、本実施形態の対象となる入力パケットの一例を示す図、図4は、本実施形態の対象となる出力パケットの一例を示す図、図5は、本実施形態による並列化したハードウェアの一例を示すブロック図、図6は、本実施形態による結果パケットの生成時間の一例を示すタイムチャート図、図7は、本実施形態による結果パケットのハードウェア結果出力順序の一例を示したテーブル図、図8は、本実施形態による入力パケット投入順序の一例を示す構成図、図9は、本実施形態によるソフトウェアの結果パケット出力順序の一例を示す構成図、図10は、本実施形態によるハードウェアの結果パケット出力順序の一例を示す構成図、図11は、本実施形態によるソフトウェアの結果パケットをソートした一例を示す構成図、図12は、本実施形態によるハードウェアの結果パケットをソートした一例を示す構成図、図13は、本実施形態によるパケットの一例を示す構成図である。
【0021】
[構成]
本実施形態によるハードウェア実行結果照合方法及びプログラムを実現するハードウェア実行結果照合システムは、図1に示す如く、コマンド等を入力するキーボード等の入力装置3001と、ディスプレイ等の出力装置3003と、プログラムに従った本実施形態による結果照合その他の機能を実行するCPU3002と、該CPU3002にて実行されるプログラムやデータを記憶する主記憶装置3004と、本実施形態の対象となる結果照合に使用されるソフトウェア他を記憶する補助記憶装置3005と、本実施形態による検査照合対象となる半導体集積回路を含むハードウェア部3006とから構成される。
【0022】
前記補助記憶装置3005に記憶されるプログラム及びデータは、ハードウェア化を行う基となるソフトウェアを格納する記憶部3007と、本実施形態による結果照合を制御するための結果照合プログラムを格納する記憶部3008と、記憶部3007に格納したソフトウェア及びハードウェア部3006に入力するための複数の入力データ(図3に示すパケットデータ5001)を格納する記憶部3009と、記憶部3007に格納したソフトウェアを用いた演算結果データを格納する記憶部3011と、ハードウェア部3006を用いた演算結果データを格納する記憶部3012とから構成される。尚、後述する説明においては、説明が冗長になるのを防ぐため、記憶部に記憶したプログラムやデータ等に記憶部の符号を付して説明することもある。
【0023】
前記ハードウェア部3006は、基になるソフトウェアをハードウェア化したものであって、図5に示す如く、入力ポート7001から入力される入力パケット(1)〜(3)を各々一時的に格納するバッファ7002〜7004と、入力パケット(1)の3つのデータ領域(Data0,Data1,Data2)のデータを各々演算する演算処理部7005〜7007と、入力パケット(2)の3つのデータ領域のデータ各々演算する演算処理部7008〜7010と、入力パケット(3)の3つのデータ領域のデータを各々演算する演算処理部7011〜7013と、前記演算処理部7005〜7007により演算したWord毎の結果データにTAG−O番号を付加するTAG−O付加部7016と、前記演算処理部7008〜7010により演算したWord毎の結果データにTAG−O番号を付加するTAG−O付加部7017と、前記演算処理部7011〜7013により演算したWord毎の結果データにTAG−O番号を付加するTAG−O付加部7018と、該TAG−O付加部7016〜7018から出力されたTAG−O番号付き結果パケットを出力する順番を後述するルールに従って調停して出力ポート7015から出力する調停部7014とから構成される。
【0024】
前記TAG−O付加部7016は、演算処理部7005から出力する結果パケットにTAG−O番号「0001」を付加し、演算処理部7006から出力する結果パケットにTAG−O番号「0002」を付加し、演算処理部7007から出力する結果パケットにTAG−O番号「0003」を付加する。前記TAG−O付加部7017及び7018は、各演算処理部から出力された順に整数インクリメント(整数型の変数の値を1増やす処理)もしくは整数デクリメント(整数型の変数の値を1減じる処理)したTAG−O番号を付加する。
【0025】
前記各TAG−O付加部7016〜7018から出力される結果パケットの出力順は、ハードウェア設計時に想定(設定)され、例えば図6に示す如く、TAG−O付加部7016においては結果パケット(1)−1と(1)−2と(1)−3とが同時間に出力され、TAG−O付加部7017においては[符号8001の結果パケット(2)−2]→[結果パケット(2)−1]→[符号8002の結果パケット(2)−3]の順に出力され、TAG−O付加部7018においては[結果パケット(3)−3]→[結果パケット(3)−2]→[結果パケット(3)−1]の順に出力されることが想定され、これら演算出力時間は、ハードウェアを設計する際に設計者が演算処理性能を見積もることで生成できる。
【0026】
この演算処理時間による結果出力順は、前記図6に示した処理時間を基に、図7に示す如く、各種入力パケット毎の結果パケットのハードウェア結果出力順序を示したテーブルとして表すことができ、このテーブルは、本発明におけるソフトウェアの実行結果とハードウェアの実行結果を照合(具体的には、後述のステップSS6におけるソート)する際に必要な情報であり、ハードウェア設計時にハードウェアの演算処理時間の見積り値をもとにしたハードウェアの結果出力順序をテーブルにまとめることで作成でき、補助記憶装置3005に記憶させる。また、ハードウェアの設計が完了し、実機が完成した後は、ハードウェアのシミュレーション環境もしくは実機を使用して処理時間を測定することで、図6のタイムチャートに示す演算処理時間の見積りが正しいか否かを確認することができる。見積りの演算処理時間と実測した演算処理時間に差があった場合は、図6のタイムチャートおよび図7のテーブルを実測の演算処理時間に修正し、図2のフローチャートのSS1に戻ってソフトウェアの入力パケットへのTAG−Iの付加からやり直すことで、ソフトウェアとハードウェアの正確な実行結果照合が可能である。
【0027】
[動作]
[入力動作]
このように構成されたハードウェア実行結果照合システムの動作を次に説明する。このハードウェア実行結果照合システムは、図1に示す如く、入力装置3001から入力されたコマンドに従ってCPU3002が補助記憶装置3005に格納したプログラム3008及び入力データ3009を主記憶装置3004にロードし、前記入力データ3009に入力パケットに対する識別子であるTAG−I番号の付加を指示するステップSS1及びステップSH1とを実行する。このTAG−I番号とは、図3左端の符号5002で示す入力パケット(1)〜(3)に個々に固有の識別番号として付加するものであり、例えば図3右端に符号5004として示す如く、符号5005の入力パケット(1)のTAG−I番号として「0001」、符号5006の入力パケット(2)のTAG−I番号として「0002」、符号5007の入力パケット(3)のTAG−I番号として「0003」を各々入力パケットの識別子として付加する。このTAG−I番号を付加した入力データは、再び補助記憶装置3005に入力データ3009として記憶される。
【0028】
[演算動作]
次いで本システムは、補助記憶装置3005に格納したTAG−I番号を付加した入力データ3009及びソフトウェア3007を主記憶装置3004にロードし、該ソフトウェア3007による入力パケットデータ3009の演算処理を行うステップSS2と、前記ハードウェア部3006の演算処理部7005〜7013による入力パケットデータ3009の演算処理を行うステップSH2と、前記ステップSS2によって演算した結果である結果パケットへTAG−O番号を付加するステップSS3と、該ステップSS2及びSS3を入力するパケット全ての演算が完了するまで実行するステップSS4と、前記ステップSH2によって演算した結果である結果パケットへTAG−O番号を付加するステップSH3と、該ステップSH2及びSH3を入力するパケット全ての演算が完了するまで行うステップSH4とを実行する。
【0029】
ここで前記ステップSS3及びSH3による結果パケットへ付加するTAG−O番号について説明する。まず、従来演算結果が、図4左側に示した如き、符号6002〜6004を付した結果パケット(1)−1,(1)−2,(1)−3,及び符号なしの(2)−1,(2)−2の順に整列した結果パケットの場合、本実施形態により付加する結果パケットは、例えば図4右側に符号6006〜6016で示す如く、演算処理時に処理対象の入力パケットに付加されたTAG−I番号(例えばTAG−I=0001)を保持し、演算処理を行った結果である結果パケットに更にTAG−O番号(例えばTAG−O=0001)を同一TAG−I番号の他の結果パケットと重複しないように順番に整数をインクリメントもしくは整数デクリメントしたものを付加することによって行われる。尚、図4に示すTAG番号は一例である。
【0030】
本実施形態によるハードウェア実行結果照合システムのCPU3002は、前記ステップSH3による結果パケットにTAG−O番号を付加する際、ハードウェア部3006が、図6に示した各演算処理部の演算処理時間に対応したTAG−O番号を結果パケットに付加して出力し、ハードウェア実行結果記憶部3012に記憶する。
【0031】
また本ハードウェア実行結果照合システムは、前記ステップSS3の結果パケットにTAG−O番号を付加する際、前述の補助記憶装置3005に記憶した結果出力順序テーブル(図7)を参照し、該テーブルに規定された規則に従って各出力パケットにTAG−O番号を付加する。これを具体的に説明すると、CPU3002は、ソフトウェアにより演算処理された結果パケットにおいて、結果パケット(1)−1は、ハードウェア結果出力順序が1番目(符号9001)のためTAG−O番号「0001」を付加し、結果パケット(1)−2は、ハードウェア結果出力順序が2番目(符号9002)のためTAG−O番号「0002」を付加し、結果パケット(1)−3は、ハードウェア結果出力順序が3番目(符号9003)のためTAG−O番号「0003」を付加する。なお、結果パケット(1)−1、結果パケット(1)−2、結果パケット(1)−3は、ソフトウェアの結果出力順序とハードウェアの結果出力順序が同じになるケースである。次に、ソフトウェアの結果出力順序とハードウェアの結果出力順序が異なるケースを結果パケット(2)−1、結果パケット(2)−2、結果パケット(2)−3で説明する。結果パケット(2)−1は、シリアル処理であるソフトウェアの結果出力順序は1番目であるが、TAG−O番号に「0001」を付加するのではなく、図7の結果出力順序テーブルを参照し、ハードウェア結果出力順序が2番目(符号9004)のためTAG−O番号「0002」を付加し、同様に、結果パケット(2)−2は、ハードウェア結果出力順序が1番目(符号9005)のためTAG−O番号「0001」を付加し、結果パケット(2)−3は、ハードウェア結果出力順序が3番目(符号9006)のためTAG−O番号「0003」を付加する。結果パケット(3)−1、結果パケット(3)−2、結果パケット(3)−3に対しても同様にハードウェア結果出力順序に沿ったTAG−O番号を付加する。
このため本システムは、ハードウェア処理によって出力される結果パケットに付加されるTAG−O番号と同じTAG−O番号をソフトウェア処理によって出力される同一の結果パケットに付加してソフトウェア実行結果記憶部3012に記憶する。
【0032】
これら記憶された結果パケットは、ソフトウェア処理により出力された結果パケットが、図9の符号11009〜11001として表した如く、1番目から9番目に向かって、結果パケット(1)−1,結果パケット(1)−2,結果パケット(1)−3,結果パケット(2)−1,結果パケット(2)−2,結果パケット(2)−3,結果パケット(3)−1,結果パケット(3)−2,結果パケット(3)−3の如き順番となる。
【0033】
これに対してハードウェア処理により出力された結果パケットは、図10に示す如く、1番目が結果パケット(2)−2,2番目が結果パケット(3)−3,3番目が結果パケット(2)−1,4番目が結果パケット(3)−2,5番目が結果パケット(1)−1,6番目が結果パケット(1)−2,7番目が結果パケット(1)−3,8番目が結果パケット(3)−1,9番目が結果パケット(2)−3の如きハードウェア並列処理による順番が混在した形となる。
【0034】
[分割動作]
次に本結果照合システムは、ソフトウェアによる実行結果をパケット毎に分割する処理を行うステップSS5と、前記ハードウェアによる実行結果をパケット毎に分割する処理を行うステップSH5とを実行する。このパケット分割処理は、パケットが前記図13に示した様にパケットの種類を示すコマンド15001とパケットの長さを示すレングス15002とがパケット内のフィールドにアサインされており、このコマンド15001とレングス15002を基にパケットの終端を判定することによって、パケット毎に分割することができる。
【0035】
[ソート動作]
次いで本ハードウェア実行結果照合システムは、前記ステップSS5により分割した結果パケットのデータに対し、TAG−I番号を優先順位1のキーとし、TAG−O番号を優先順位2のキーとして昇順にソートするステップSS6と、前記ステップSH5により分割した結果パケットのデータに対し、TAG−I番号を優先順位1のキーとし、TAG−O番号を優先順位2のキーとして昇順にソートするステップSH6とを実行する。尚、前記ソート順の規則は、降順であっても良いが、ソフトウェア処理による結果パケットとハードウェア処理による結果パケットのソート規則を同一にすることが必要である。
【0036】
前記ステップSS6によりソートされたソフトウェア処理による結果パケットは、図11に示す如く、下から順に、結果パケット(1)−1,結果パケット(1)−2,結果パケット(1)−3,結果パケット(2)−2,結果パケット(2)−1,結果パケット(2)−3,結果パケット(3)−3,結果パケット(3)−2,結果パケット(3)−1の順にソートされる。
また前記ステップSH6により出力されたハードウェア処理による結果パケットは、図12に示す如く、下から順に、結果パケット(1)−1,結果パケット(1)−2,結果パケット(1)−3,結果パケット(2)−2,結果パケット(2)−1,結果パケット(2)−3,結果パケット(3)−3,結果パケット(3)−2,結果パケット(3)−1の順に前記ソフトウェア処理による結果パケットと同一順にソートされる。
【0037】
[照合動作]
次にハードウェア実行結果照合システムは、前記ステップSS6及びSH6によりソートした結果パケットを順に比較して照合するステップSC1と、該ステップSC1による照合結果が一致か否かを判定するステップSC2と、該ステップSC2により一致すると判定したとき、全ての結果パケットが一致したか否かを判定し、全ての判定が済んでいないときに前記ステップSC1に戻り、済んだと判定したときに処理を終了するステップSC3とを実行することによって、ハードウェア部3006の実行結果パケットとソフトウェア3007による実行結果パケットとが一致するか検証することができる。尚、前記ステップSC2において結果パケットが一致していないと判定したとき、本システムは操作者に該当パケットに対するアラーム等を発し、不一致の原因解明を指示するように動作する。
【0038】
このように本実施形態によるハードウェア実行結果照合システムは、入力パケットに識別子であるTAG−I番号を個々に付加する工程と、ハードウェア処理によって前記識別子を付加した複数の結果パケット出力順にTAG−O番号を付加して出力する工程と、ソフトウェア処理によって前記入力順識別番号を付加した複数の結果パケットに前記ハードウェア結果出力順序テーブルに記憶した順番の出力順識別番号(TAG−O番号)を付加して出力する工程と、該出力した結果パケットをTAG−I番号毎に分割する工程と、該分割した複数の結果パケットを前記TAG−I番号及びTAG−O番号をキーとして所定の規則によりソートする工程とを実行し、ソフトウェア処理による結果パケットにハードウェア処理によって付加される出力識別番号を付加することによりハードウェア処理による結果パケットとソフトウェア処理による結果パケットとの出力順を合わせ、この出力順を合わせた結果パケットを順次比較することによって、ソフトウェア処理による結果パケットの出力順が異なるハードウェアの実行結果を照合することができる。
【図面の簡単な説明】
【0039】
【図1】本発明の一実施形態によるハードウェア実行結果照合システムの構成を示す図。
【図2】本実施形態による結果照合手順を示すフロー図。
【図3】本実施形態の対象となる入力パケットの一例を示す図。
【図4】本実施形態の対象となる出力パケットの一例を示す図。
【図5】本実施形態による並列化したハードウェアの一例を示すブロック図。
【図6】本実施形態による結果パケットの生成時間の一例を示すタイムチャート。
【図7】本実施形態による結果パケットのハードウェア結果出力順序例を示す図。
【図8】本実施形態による入力パケット投入順序の一例を示す図。
【図9】本実施形態によるソフトウェアの結果パケット出力順序例を示す図。
【図10】本実施形態によるハードウェアの結果パケット出力順序例を示す図。
【図11】本実施形態によるソフトウェアの結果パケットのソート例を示す図。
【図12】本実施形態によるハードウェアの結果パケットのソート例を示す図。
【図13】本実施形態の対象となるパケットの一例を示す図。
【図14】従来技術によるソフトウェアとハードウェア結果照合の一例を示す図。
【図15】従来技術によるソフトウェアとハードウェア結果照合の一例を示す図。
【符号の説明】
【0040】
2002〜2003:入力パケット、2004:演算処理部、2005〜2010:結果パケット、2020〜2021:入力パケット、2018及び2019:演算処理部、2012〜2017:結果パケット、3001:入力装置、3003:出力装置、3004:主記憶装置、3005:補助記憶装置、3006:ハードウェア部、3007:ソフトウェア記憶部、3008:プログラム記憶部、3009:入力パケットデータ記憶部、3011:ソフトウェア実行結果記憶部、3012:ハードウェア実行結果記憶部、7002〜7004:バッファ、7005〜7013:演算処理部、7014:調停部、7015:出力ポート、7001:入力ポート、7016〜7018:TAG−O付加部。

【特許請求の範囲】
【請求項1】
複数のデータ領域を含む入力パケットを複数記憶する入力パケット記憶部と、前記入力パケットを演算処理するソフトウェアを記憶するソフトウェア記憶部と、前記入力パケット記憶部に記憶した入力パケットを前記ソフトウェア記憶部に記憶したソフトウェアを用いて演算する制御部と、該制御部で演算した複数の結果パケットを記憶するソフトウェア結果パケット記憶部と、前記入力パケットの演算処理を実行する複数の演算処理部及び該演算処理部から出力された結果パケットの出力順に出力順識別番号を付加する出力順付加部とを有するハードウェア部と、該ハードウェア部の演算処理部により演算処理を実行したときの結果パケット出力順を格納したハードウェア結果出力順序テーブルと、前記入力パケット記憶部に記憶した入力パケットを前記ハードウェア部により演算し、該演算結果の結果パケットを記憶するハードウェア結果パケット記憶部とを備え、前記ソフトウェアをハードウェア化した半導体集積回路の実行結果を照合するハードウェア実行結果照合システムのハードウェア実行結果照合方法であって、
前記制御部が、
前記入力パケット記憶部に記憶した入力パケット毎に前記入力パケットの入力順を示す入力順識別番号を付加する第1工程と、
前記第1工程により入力順識別番号を付加した入力パケットの複数データを前記複数の演算処理部により並列的に演算して出力する第2工程と、
前記第2工程により出力される結果パケットに、出力される順番に出力順識別番号を付加して出力する第3工程と、
該第3工程により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ハードウェア結果パケット記憶部に記憶する第4工程と、
前記第4工程により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第5工程と、
該第5工程により分割した複数の結果パケットを、前記入力順識別番号を第1優先順位のキーとし、前記出力順識別番号を第2優先順位のキーとして所定の規則によりソートする第6工程と、
前記第1工程により入力順識別番号を付加した入力パケットの複数データを前記ソフトウェアにより演算した複数の結果パケットを順次出力する第7工程と、
該第7工程により順次出力される結果パケットに、前記ハードウェア結果出力順序テーブルに格納した出力順識別番号を付加して出力する第8工程と、
該第8工程により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ソフトウェア結果パケット記憶部に記憶する第9工程と、
前記第9工程により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第10工程と、
前記第10工程により分割した複数の結果パケットを、前記入力順識別番号を第1優先順位のキーとし、前記出力順識別番号を第2優先順位のキーとして前記所定の規則によりソートする第11工程と、
前記第6工程によりソートしたソフトウェア処理による結果パケットと前記第11工程によりソートしたハードウェア処理による結果パケットとを順次比較する第12工程とを実行するハードウェア実行結果照合方法。
【請求項2】
前記ハードウェア部を、入力パケットを格納する複数のバッファと、該バッファから出力された入力パケットを複数のワード領域に格納されたデータを並列的に演算する複数の演算処理部と、該複数の演算処理部から出力された結果パケット毎に出力順識別番号を付加する複数の出力順識別番号付加部と、複数の出力順識別番号付加部から出力された結果パケットの出力順を調停する調停部とから構成し、
該調停部が、前記複数の出力順識別番号付加部から出力された結果パケットの出力順を、前記複数の演算処理部の処理速度を基に予め定められた順番に規制する請求項1記載のハードウェア実行結果照合方法。
【請求項3】
前記制御部が、前記入力順識別番号を整数型の変数の値を1増やすインクリメント若しくは変数の値を1減じるデクリメントして生成することにより、入力順識別番号が重複しないように入力順識別番号を入力パケットに付加する請求項1又は2記載のハードウェア実行結果照合方法。
【請求項4】
前記制御部が、前記入力順識別番号毎に出力順識別番号を整数型の変数の値を1増やすインクリメント若しくは変数の値を1減じるデクリメントして生成することにより、入力順識別番号が同一の結果パケットにおいて、出力順識別番号が重複しないように出力順識別番号を出力パケットに付加する請求項1又は2又は3記載のハードウェア実行結果照合方法。
【請求項5】
前記制御部が、前記第5工程及び第10工程において、レングスを基に複数の結果パケットを前記入力順識別番号毎に分割する請求項1から4何れかに記載のハードウェア実行結果照合方法。
【請求項6】
複数のデータ領域を含む入力パケットを複数記憶する入力パケット記憶部と、前記入力パケットを演算処理するソフトウェアを記憶するソフトウェア記憶部と、前記入力パケット記憶部に記憶した入力パケットを前記ソフトウェア記憶部に記憶したソフトウェアを用いて演算する制御部と、該制御部で演算した複数の結果パケットを記憶するソフトウェア結果パケット記憶部と、前記入力パケットの演算処理を実行する複数の演算処理部及び該演算処理部から出力された結果パケットの出力順に出力順識別番号を付加する出力順付加部とを有するハードウェア部と、該ハードウェア部の演算処理部により演算処理を実行したときの結果パケット出力順を格納したハードウェア結果出力順序テーブルと、前記入力パケット記憶部に記憶した入力パケットを前記ハードウェア部により演算し、該演算結果の結果パケットを記憶するハードウェア結果パケット記憶部とを備え、前記ソフトウェアをハードウェア化した半導体集積回路の実行結果を照合するハードウェア実行結果照合システムのハードウェア実行結果照合プログラムであって、
前記制御部に、
前記入力パケット記憶部に記憶した入力パケット毎に前記入力パケットの入力順を示す入力順識別番号を付加する第1機能と、
前記第1機能により入力順識別番号を付加した入力パケットの複数データを前記複数の演算処理部により並列的に演算して出力する第2機能と、
前記第2機能により出力される結果パケットに、出力される順番に出力順識別番号を付加して出力する第3機能と、
該第3機能により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ハードウェア結果パケット記憶部に記憶する第4機能と、
前記第4機能により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第5機能と、
該第5機能により分割した複数の結果パケットを、前記入力順識別番号を第1優先順位のキーとし、前記出力順識別番号を第2優先順位のキーとして所定の規則によりソートする第6機能と、
前記第1機能により入力順識別番号を付加した入力パケットの複数データを前記ソフトウェアにより演算した複数の結果パケットを順次出力する第7機能と、
該第7機能により順次出力される結果パケットに、前記ハードウェア結果出力順序テーブルに格納した出力順識別番号を付加して出力する第8機能と、
該第8機能により出力され且つ入力順識別番号及び出力順識別番号が付加された結果パケットを前記ソフトウェア結果パケット記憶部に記憶する第9機能と、
前記第9機能により記憶した複数の結果パケットを前記入力順識別番号毎に分割する第10機能と、
前記第10機能により分割した複数の結果パケットを、前記入力順識別番号を第1優先順位のキーとし、前記出力順識別番号を第2優先順位のキーとして前記所定の規則によりソートする第11機能と、
前記第6機能によりソートしたソフトウェア処理による結果パケットと前記第11機能によりソートしたハードウェア処理による結果パケットとを順次比較する第12機能とを実現させるハードウェア実行結果照合プログラム。
【請求項7】
前記ハードウェア部を、入力パケットを格納する複数のバッファと、該バッファから出力された入力パケットを複数のワード領域に格納されたデータを演算する複数の演算処理部と、該複数の演算処理部から出力された結果パケット毎に出力順識別番号を付加する複数の出力順識別番号付加部と、複数の出力順識別番号付加部から出力された結果パケットの出力順を調停する調停部とから構成し、
該調停部に、前記複数の出力順識別番号付加部から出力された結果パケットの出力順を、前記複数の演算処理部の処理速度を基に予め定められた順番に規制する機能を実現させる請求項6記載のハードウェア実行結果照合プログラム。
【請求項8】
前記制御部に、前記入力順識別番号を整数型の変数の値を1増やすインクリメント若しくは変数の値を1減じるデクリメントして生成することにより、入力パケット毎に入力順識別番号が重複しないように入力パケットに付加する機能を実現させる請求項6又は7記載のハードウェア実行結果照合プログラム。
【請求項9】
前記制御部が、前記入力順識別番号毎に出力順識別番号を整数型の変数の値を1増やすインクリメント若しくは変数の値を1減じるデクリメントして生成することにより、入力順識別番号が同一の結果パケットにおいて、出力順識別番号が重複しないように出力順識別番号を出力パケットに付加する請求項6又は7又は8記載のハードウェア実行結果照合プログラム。
【請求項10】
前記制御部に、前記第5機能及び第10機能において、レングスを基に複数の結果パケットを前記入力順識別番号毎に分割する機能を実現させる請求項6から9何れかに記載のハードウェア実行結果照合プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2010−49480(P2010−49480A)
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2008−212999(P2008−212999)
【出願日】平成20年8月21日(2008.8.21)
【出願人】(000233295)日立情報通信エンジニアリング株式会社 (195)
【Fターム(参考)】