(58)【調査した分野】(Int.Cl.,DB名)
前記第1直交表作成部は、範囲指定のないレジスタについては該レジスタの該当ビットを1因子に割り当て、範囲指定のあるレジスタについては該レジスタの前記所定単位ビットのうちの前記ビットを1因子に割り当てて直交表を作成する請求項1記載のレジスタ最適化装置。
前記第1直交表作成ステップにおいて、範囲指定のないレジスタについては該レジスタの該当ビットを1因子に割り当て、範囲指定のあるレジスタについては該レジスタの前記所定単位ビットのうちの前記ビットを1因子に割り当てて直交表を作成する請求項5記載のレジスタ最適化方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したように、特許文献1に記載された装置等は、直交表を用いて組み合わせのテストパターンの数を削減している。しかしながら、レジスタの設定値をテストする場合、テスト数(実験数)を削減したいという要望と、レジスタの数とレジスタのビット数はより多くテストしたいという要望があり、直交表を用いてテスト数を削減するだけでは不十分であり、改善の余地がある。
【0007】
本発明は、前述した事情に鑑みてなされたものであり、テスト数を削減することができるとともに、より多くのレジスタ及びレジスタのビット数をテストすることができるレジスタ最適化装置及びレジスタ最適化方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明では、システムのマイクロプロセッサ内部のレジスタの設定値を最適化するレジスタ最適化装置であって、システムの機能に関連しているレジスタを抽出するレジスタ抽出部と、レジスタ抽出部で抽出されたレジスタにおける所定ビット数を1つの単位とする所定単位ビットのうちの少なくとも1つのビットを抽出し、ビットを1因子に割り当てて、任意の2因子間の全水準の組み合わせが現れる直交表を作成する第1直交表作成部と、直交表の組み合わせに対してテストを実行する第1テスト実行部と、第1テスト実行部のテスト結果に基づき、システムの動作に影響している因子を特定する第1因子特定部と、第1因子特定部で特定した因子を含む所定単位ビット内のビットを1因子に割り当てて直交表を作成する第2直交表作成部と、直交表の組み合わせに対して再度テストを実行する第2テスト実行部と、第2テスト実行部のテスト結果に基づき、システムの動作に影響している要因のビットを特定する第2因子特定部と、第2因子特定部で特定されたビットの設定値を変更する設定部と、設定部で設定されたビットの設定値が規格値の範囲に入っているか否か判定する判定部と、を備え、判定部がビットの設定値が規格値の範囲に入っていないと判定した場合、第1直交表作成部、第1テスト実行部、第1因子特定部、第2直交表作成部、第2テスト実行部、第2因子特定部、及び設定部は、それぞれ、処理を実行することを特徴とするレジスタ最適化装置を提供する。
【0009】
また、第1直交表作成部は、範囲指定のないレジスタについては該レジスタの該当ビットを1因子に割り当て、範囲指定のあるレジスタについては該レジスタの所定単位ビットのうちのビットを1因子に割り当てて直交表を作成する構成でもよい。
【0010】
また、所定単位ビットは、4ビット、1バイト、又は1ワードであってもよい。
【0011】
また、システムの仕様書に基づき、開発中のシステムの機能を抽出する機能抽出部を備え、レジスタ抽出部は、機能抽出部で抽出されたシステムの機能に関連しているレジスタを抽出する構成でもよい。
【0012】
また、本発明では、システムのマイクロプロセッサ内部のレジスタの設定値を最適化するレジスタ最適化方法であって、システムの機能に関連しているレジスタを抽出するレジスタ抽出ステップと、レジスタ抽出ステップで抽出されたレジスタにおける所定ビット数を1つの単位とする所定単位ビットのうちの少なくとも1つのビットを抽出し、ビットを1因子に割り当てて、任意の2因子間の全水準の組み合わせが現れる直交表を作成する第1直交表作成ステップと、直交表の組み合わせに対してテストを実行する第1テスト実行ステップと、第1テスト実行ステップのテスト結果に基づき、システムの動作に影響している因子を特定する第1因子特定ステップと、
第1因子特定ステップで特定した因子を含む所定単位ビット内のビットを1因子に割り当てて直交表を作成する第2直交表作成ステップと、直交表の組み合わせに対して再度テストを実行する第2テスト実行ステップと、第2テスト実行
ステップのテスト結果に基づき、システムの動作に影響している要因のビットを特定する第2因子特定ステップと、第2因子特定ステップで特定されたビットの設定値を変更する設定ステップと、設定ステップで設定されたビットの設定値が規格値の範囲に入っているか否か判定する判定ステップと、を備え、判定ステップでビットの設定値が規格値の範囲に入っていないと判定した場合、第1直交表作成ステップ、第1テスト実行ステップ、第1因子特定ステップ、第2直交表作成ステップ、第2テスト実行ステップ、第2因子特定ステップ、及び設定ステップの処理を実行することを特徴とするレジスタ最適化方法を提供する。
【0013】
また、第1直交表作成ステップにおいて、範囲指定のないレジスタについては該レジスタの該当ビットを1因子に割り当て、範囲指定のあるレジスタについては該レジスタの所定単位ビットのうちのビットを1因子に割り当てて直交表を作成する構成でもよい。
【0014】
また、所定単位ビットは、4ビット、1バイト、又は1ワードであってもよい。
【0015】
また、システムの仕様書に基づき、開発中のシステムの機能を抽出する機能抽出ステップを備え、レジスタ抽出ステップにおいて、機能抽出ステップで抽出されたシステムの機能に関連しているレジスタを抽出する構成でもよい。
【発明の効果】
【0016】
本発明によれば、テスト数を削減することができるとともに、より多くのレジスタ及びレジスタのビット数をテストすることができる。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態について図面を参照して説明する。ただし、本発明はこれに限定されるものではない。また、図面においては、実施形態を説明するため、一部分を大きくまたは強調して記載するなど適宜縮尺を変更して表現することがある。
【0019】
図1は、本発明の実施形態に係るレジスタ最適化装置1の構成を示すブロック図である。
図1に示すレジスタ最適化装置1は、システム(例えば組込みシステム)のマイクロプロセッサ内部のレジスタの値(パラメータ)を最適化する装置である。ここで、テスト対象のシステムとしては、例えば、様々なデバイスを組み合わせて構成されたシステムを想定している。最適化とは、システムとして各デバイスなどが正常に動作するようにレジスタの値を適切な値に設定することをいう。
【0020】
ハードウェアであるマイクロプロセッサを制御するシステムの場合、例えば、レジスタの値が所定の範囲になったときに指令を出す、というようなレジスタの範囲の設定などを行う必要がある。この場合、膨大な数のレジスタの組み合わせがあり、各々のレジスタの最適値を見つけるためには膨大な時間がかかってしまう。そこで、本実施形態では、直交表を用いて不具合のあるレジスタ(設定値として適切な値が設定されていないレジスタ)を効率よく発見する方法を提案する。
【0021】
図2は、テスト対象(試験対象)のシステム100の構成例を示すブロック図である。
図2に示すシステム100は、デバイス等の動作に必要な機能のすべてを1つの半導体チップに実装するSoC(System On a Chip)化されたシステムである。レジスタ最適化装置1は、例えば
図2に示すようなシステム100のレジスタの値を最適化する装置である。なお、システム100は一例であって、レジスタ最適化装置1によるレジスタの最適化の対象となるシステムは
図2に示したものに限定されない。例えば、組み込みボードにおけるデバイス間のレジスタ設定も対象となる。
【0022】
図1の説明に戻り、レジスタ最適化装置1は、例えば、CPU(Central Processing Unit)を有するコンピュータ(例えばパーソナルコンピュータ)などで実現される。このレジスタ最適化装置1は、
図1に示すように、機能特定部11、レジスタ抽出部12、直交表作成部13(第1直交表作成部、第2直交表作成部)、テスト実行部14(第1テスト実行部、第2テスト実行部)、因子特定部15(第1因子特定部、第2因子特定部)、設定部16、及び記憶部20を有している。なお、レジスタ最適化装置1における機能特定部11、レジスタ抽出部12、直交表作成部13、テスト実行部14、因子特定部15、及び設定部16は、CPUがプログラムに基づいて実行する制御・処理に相当する。
【0023】
機能特定部11は、システムの仕様書に基づいて開発中のシステムの機能を抽出する処理部である。レジスタ抽出部12は、機能特定部11が抽出した機能に関連しているレジスタを抽出する処理部である。直交表作成部13は、レジスタ抽出部12が抽出したレジスタの所定ビットを1因子とし、水準を2とした直交表を作成する処理部である。具体的には、直交表作成部13は、レジスタ抽出部12で抽出されたレジスタにおける所定ビット数を1つの単位とする所定単位ビット(例えば、4ビット、1バイト(8ビット)、1ワード(32ビット))のうちの少なくとも1つのビットを抽出し、抽出したビットを1因子に割り当て、水準を2とした直交表(第1直交表)を作成する。このような処理を行う直交表作成部13を第1直交表作成部という。また、直交表作成部13は、後述する因子特定部15で特定した因子を含む所定単位ビット内の各ビットを1因子に割り当て、水準を2とした直交表(第2直交表)を作成する。このような処理を行う直交表作成部13を第2直交表作成部という。
【0024】
テスト実行部14は、直交表作成部13が作成した直交表の組み合わせ(テストパターン)に対してテストを実行する処理部である。第1直交表作成部が作成した第1直交表の組み合わせに対してテストを実行するテスト実行部14を第1テスト実行部といい、第2直交表作成部が作成した第2直交表の組み合わせに対してテストを実行するテスト実行部14を第2テスト実行部という。
【0025】
因子特定部15は、テスト実行部14のテスト結果に基づき、システムの動作に影響している因子を特定する処理部である。第1テスト実行部のテスト結果に基づき、システムの動作に影響している因子を特定する因子特定部15を第1因子特定部といい、第2テスト実行部のテスト結果に基づき、システムの動作に影響している因子を特定する因子特定部15を第2因子特定部という。設定部16は、レジスタの値を設定し、また因子特定部15で特定されたレジスタの値を変更する処理部である。判定部17は、設定部16で設定されたレジスタの値が規定値の範囲に入っているか否か判定する処理部である。
【0026】
記憶部20は、各種情報を記憶するメモリなどの装置である。記憶部20に記憶される情報としては、システムの仕様書の情報(開発中の機能、機能に関連しているレジスタの情報などを含む)、レジスタ最適化装置1を制御するためのプログラムなどを含む。また、記憶部20に記憶される情報としては、機能特定部11が抽出した機能、レジスタ抽出部12が抽出したレジスタ、直交表作成部13が作成した直交表、テスト実行部14によるテストの実行結果、因子特定部15が特定した因子の情報なども含む。
【0027】
レジスタ最適化装置1は、通常のシステムの開発業務で発生するデバイス間やデバイス内におけるレジスタの設定値を決定する工程で利用される。すなわち、システムの開発では、システムの方向性、システム化計画、要件定義、システム要件定義、ソフトウェア要件定義、プログラミング、ソフトウェア適格性確認テスト、システム適格性確認テスト、要求テスト、評価などの順で行われる。レジスタ最適化装置1は、例えばソフトウェア要件定義(設計の段階)及びソフトウェア適格性確認テスト(テストの段階)の工程で利用される。
【0028】
次に、
図3〜
図12を参照して、レジスタ最適化装置1の動作(レジスタ最適化方法)について説明する。
【0029】
図3は、本発明の実施形態に係るレジスタ最適化方法の処理を示すフローチャートである。
図4は、
図3に示すレジスタ最適化方法の第1直交表作成処理(ステップS3)を示すフローチャートである。
図5は、
図3に示すレジスタ最適化方法の第2直交表作成処理(ステップS6)を示すフローチャートである。
【0030】
図3に示す処理において、レジスタ最適化装置1の機能特定部11は、システムの仕様書に基づいて開発中のシステムの機能・条件を自動的に抽出する(ステップS1)。機能特定部11により抽出される機能・条件は、システムの環境(温度など)、動作モード、ハードウェア構成などにより決定される。なお、本実施形態では、機能特定部11がシステムの仕様書に基づいて開発中のシステムの機能・条件を自動的に抽出する構成としていたが、開発者がシステムの仕様書に基づいて手動で開発中のシステムの機能・条件を抽出してもよい。
【0031】
次に、レジスタ抽出部12は、システムの仕様書に基づいて、機能特定部11が抽出した機能に関連しているレジスタや、機能特定部11が抽出した機能のうちの所定の条件に関連するレジスタを抽出する(ステップS2)。そして、直交表作成部13は、レジスタ抽出部12で抽出されたレジスタの所定単位ビットのうちの所定ビットを抽出し、所定ビットを1因子に割り当てて直交表(第1直交表)を作成する(ステップS3)。
【0032】
図6は、直交表における因子と水準の割付を示す図である。直交表とは、任意の2因子(列)について、その水準のすべての組み合わせが同回数ずつ現れる性質を持つテスト(実験)のための割付表である。一般に、多元配置のテストでは、少なくとも因子の水準数の積だけテスト数が必要となり、因子数が多くなるとテスト数は膨大な数になってしまう。求める相互作用が少なければ、直交表を用いることによって、多くの因子に関するテストを比較的少ない回数で行うことができる。
【0033】
図6に示すように、直交表における因子(パラメータ)として、レジスタ抽出部12で抽出された、システムやデバイスに実装される機能・条件(
図6に示す例では機能A)に関連するレジスタ(
図6に示す例ではレジスタA,B,C・・・)に含まれるビット(Bit)が割り付け(割り当て)られる。また、直交表における水準(パラメータへの設定値)は0又は1の「2」である。直交表の行は、テストNo.(テスト回数、組み合わせ数)である。直交表は直交表作成部13により機能・条件ごとに作成される。例えば、機能Aに関連するレジスタがレジスタA,B,Cである場合、それらレジスタA,B,Cに含まれるビットが因子として割り付けられ、機能Bに関連するレジスタがレジスタC,D,Eの場合、それらレジスタC,D,Eに含まれるビットが因子として割り付けられる。
【0034】
直交表の大きさ(サイズ)は、テストしたい項目(因子)の数と種類、テスト時間、費用などの関係から決定される。また、直交表の大きさ=Σ(因子の水準+1)+1の式からも算出することが可能である。直交表は大きくなるほど、テストに要する工数が増えるだけでなく、最適値を導くまでの時間が長くなるが、テストの精度は向上する。これらの工数と精度を考慮した上で直交表の大きさが決定される。
【0035】
図7は、直交表に割り付けるレジスタのビット位置を示す図である。
図7に示すレジスタは24ビット(0ビット目、1ビット目、2ビット目、・・・、23ビット目)のレジスタである。直交表に割り付けるレジスタのビットは漸化式の差分数列型の算術数列A.P(Arithmetic Progression)を用いて行う。すなわち、直交表作成部13は算出数列an=a+(n−1)d によってレジスタのビットの位置を指定する。
図7に示す例では、aは0,1,2,3、nは1,2,3,4,5、dは4である。この場合、レジスタの24ビットは、4ビットごとの単位に分けられる。すなわち、24ビットは、「0,1,2,3」「4,5,6,7」「8,9,10,11」「12,13,14,15」「16,17,18,19」「20,21,22,23」に分けられる。4ビットの単位が所定単位ビットである。所定単位ビットは、dの値に応じて変更される。例えば、dが8の場合は、レジスタの24ビットは、8ビットごとの単位、すなわち、「0,1,2,3,4,5,6,7」「8,9,10,11,12,13,14,15」「16,17,18,19,20,21,22,23」に分けられる。
【0036】
図8は、直交表の例を示す図である。
図8(a)は2水準L8の直交表であり、
図8(b)は2水準L16の直交表である。このように直交表の大きさによって、各因子(各パラメータ)に割り当てられる値(水準)及びテストの実行回数は予め定められる。
【0037】
次に、
図4を参照して
図3のステップS3の処理(第1直交表作成処理)の内容について説明する。
図4に示すように、第1直交表作成処理(ステップS3)において、直交表作成部13は、レジスタ抽出部12で抽出されたレジスタ(機能・条件に関連するレジスタ)が範囲指定のあるレジスタか否か判定する(ステップS3A)。ここで、指定範囲のないレジスタとは、イネーブルビットやアクティベートビットなどが設定されるレジスタである。イネーブルビットは、イネーブルのレジスタに固まっており、範囲指定はなく、このビットがたったら機能が動き出すというビットである。指定範囲のあるレジスタは、レジスタの各ビット(16ビット、24ビット、32ビット、64ビットのレジスタの各ビット)のうち、指定範囲のビットに値が設定されるレジスタである。直交表作成部13は、範囲指定のあるレジスタでないと判定した場合(つまり、範囲指定のないレジスタであると判定した場合)(ステップS3AのNO)、レジスタの該当ビット(イネーブルビットなど)を1因子に割り当てる(ステップS3B)。一方、直交表作成部13は、範囲指定のあるレジスタであると判定した場合(ステップS3AのYES)、レジスタの指定範囲内の所定単位ビットのうちの所定ビットを1因子に割り当てる(ステップS3C)。
【0038】
図9は、直交表に割り当てるレジスタA,B,Cの例を示す図である。
図9に示すレジスタA、レジスタB及びレジスタCは、システムの機能・条件Aに関連しているレジスタであるものとする。レジスタAはイネーブルビットが設定されたレジスタ、すなわち指定範囲のないレジスタである。レジスタAの「EN」がイネーブルビット(Enable bit)を示している。レジスタB及びレジスタCは、指定範囲(0ビット目〜7ビット目)のあるレジスタである。レジスタB及びレジスタCは、所定単位ビットを4ビットとしている。すなわち、レジスタB及びレジスタCは、0ビット目から3ビット目の4ビットを所定単位ビットとし、4ビット目から7ビット目の4ビットを所定単位ビットとしている。レジスタB及びレジスタCは、初期値として、All0(すべてのビットの値が0)、All1(すべてのビットの値が1)、所定単位ビットの値が16進数の5h(4ビットの値が2進数「0101」)、又は所定単位ビットの値が16進数のAh(4ビットの値が2進数の「1010」)となっている。
【0039】
図9において、〇が付されているビットが直交表に割り付けられるビットである。また、×が付されているビットが直交表に割り付けられないビットである。レジスタAの場合、0ビット目(イネーブルビット)が直交表に割り付けられる。レジスタBの場合、3ビット目と7ビット目(所定単位ビットの所定ビット)が直交表に割り付けられる。レジスタCの場合も、3ビット目と7ビット目(所定単位ビットの所定ビット)が直交表に割り付けられる。レジスタB,Cにおいて割り付けられるビットは、
図7で説明した算術数列によって指定されたビットである。
【0040】
図10は、第1直交表とレジスタ展開の具体例を示す図である。
図10の左上図に示す直交表(第1直交表)は、条件Aに関連するレジスタA,B,Cのビットが割り当てられた直交表である。直交表作成部13は、レジスタAの0ビット目(イネーブルビット)、レジスタBの3ビット目(
図10のB0)と7ビット目(
図10のB1)、及びレジスタCの3ビット目(
図10のC0)と7ビット目(
図10のC1)を直交表に割り当て、水準を2とした第1直交表を作成する。この第1直交表は、2水準L8の直交表であり、テストがNo.0〜No.7まで実行される。
【0041】
図3の説明に戻り、テスト実行部14は、直交表作成部13が作成した第1直交表の組み合わせ(
図10の第1直交表のNo.0〜No.7)に対してテストを実行する(ステップS4)。そのテストの結果が特性値として出力される。パラメータ設計においては機能品質を合理的に表現する特性値が必要である。特性値出力判定は、
図10の右上図に示すように、二重丸が100%の特性値であり、丸(〇)が90%の特性値であり、三角(△)が80%の特性値であり、四角(□)が50%の特性値であり、四角(◇)が30%の特性値であり、バツ(×)が0%の特性値である。上記の例では、特性値が大きいほど良い特性である。
【0042】
次に、因子特定部15は、テスト実行部14のテスト結果(特性値出力判定)に基づいて、システムの動作に影響している因子を特定する(ステップS5)。
図10に示す例では、因子特定部15は、No.5の特性値出力判定がシステムに影響している要因であると判定する。そして、因子特定部15は、直交表のNo.5におけるレジスタBのレジスタ分割名B1(レジスタBの7ビット目)の「1」を、
図10の下図におけるBit区切り位置「3」に対応する直交表上の値(bin)に割り付け、
図10の下図におけるBit区切り位置「2」「1」「0」に対応する直交表上の値(bin)に「0」を割り付ける。レジスタ分割名B1の直交表上の値(Hex)は「8」となる。因子特定部15は、直交表のNo.5におけるレジスタBのレジスタ分割名B0(レジスタBの3ビット目)の「0」を、
図10の下図におけるBit区切り位置「3」に対応する直交表上の値(bin)に割り付け、
図10の下図におけるBit区切り位置「2」「1」「0」に対応する直交表上の値(bin)に「0」を割り付ける。レジスタ分割名B0の直交表上の値(Hex)は「0」となる。因子特定部15は、直交表のNo.5におけるレジスタCのレジスタ分割名C1(レジスタCの7ビット目)の「1」を、
図10の下図におけるBit区切り位置「3」に対応する直交表上の値(bin)に割り付け、
図10の下図におけるBit区切り位置「2」「1」「0」に対応する直交表上の値(bin)に「0」を割り付ける。レジスタ分割名C1の直交表上の値(Hex)は「8」となる。因子特定部15は、直交表のNo.5におけるレジスタCのレジスタ分割名C0(レジスタCの3ビット目)の「0」を、
図10の下図におけるBit区切り位置「3」に対応する直交表上の値(bin)に割り付け、
図10の下図におけるBit区切り位置「2」「1」「0」に対応する直交表上の値(bin)に「0」を割り付ける。レジスタ分割名C0の直交表上の値(Hex)は「0」となる。
【0043】
次に、直交表作成部13は、因子特定部15で特定された因子を含む所定単位ビット内のビットを1因子に割り当て、水準を2とした直交表(第2直交表)を作成する(ステップS6)。
図5を参照して
図3のステップS6の処理(第2直交表作成処理)の内容について説明する。
【0044】
図5に示すように、第2直交表作成処理(ステップS6)において、直交表作成部13は、因子特定部15で特定された因子を含むレジスタが範囲指定のあるレジスタか否か判定する(ステップS6A)。直交表作成部13は、範囲指定のあるレジスタでないと判定した場合(つまり、範囲指定のないレジスタであると判定した場合)(ステップS6AのNO)、レジスタの該当ビット(イネーブルビットなど)を1因子に割り当てる(ステップS6B)。一方、直交表作成部13は、範囲指定のあるレジスタであると判定した場合(ステップS6AのYES)、レジスタにおける影響している因子に含まれる所定単位ビット内のビットを1因子に割り当てる(ステップS6C)。
【0045】
図11は、第2直交表の具体例を示す図である。直交表作成部13は、
図10の下図におけるレジスタ分割名B1のBit区切り位置「2」「1」「0」のビット(レジスタBの6ビット目、5ビット目、4ビット目)を直交表に割り当て、
図10の下図におけるレジスタ分割名B0のBit区切り位置「2」「1」「0」のビット(レジスタBの2ビット目、1ビット目、0ビット目)を直交表に割り当て、
図10の下図におけるレジスタ分割名C1のBit区切り位置「2」「1」「0」のビット(レジスタCの6ビット目、5ビット目、4ビット目)を直交表に割り当て、
図10の下図におけるレジスタ分割名C0のBit区切り位置「2」「1」「0」のビット(レジスタCの2ビット目、1ビット目、0ビット目)を直交表に割り当て、水準を2とした第2直交表を作成する。この第2直交表は、2水準L16の直交表であり、テストがNo.0〜No.15まで実行される。なお、
図10の下図におけるレジスタ分割名B1のBit区切り位置「3」のビット(レジスタBの7ビット目)の値は「1」に固定し、
図10の下図におけるレジスタ分割名B0のBit区切り位置「3」のビット(レジスタBの3ビット目)の値は「0」に固定し、
図10の下図におけるレジスタ分割名C1のBit区切り位置「3」のビット(レジスタCの7ビット目)の値は「1」に固定し、
図10の下図におけるレジスタ分割名C0のBit区切り位置「3」のビット(レジスタCの3ビット目)の値は「0」に固定し、さらにレジスタAの値を固定した条件で、テストを実行する。
【0046】
テスト実行部14は、直交表作成部13が作成した第2直交表の組み合わせ(
図11の第2直交表のNo.0〜No.15)に対して再度テストを実行する(ステップS7)。そのテストの結果が特性値として出力される。
【0047】
次に、因子特定部15は、テスト実行部14のテスト結果(特性値出力判定)に基づいて、システムの動作に影響している要因のビット(影響要因ビット)を特定する(ステップS8)。
図11に示す例では、因子特定部15は、No.14の特性値出力判定がシステムに影響している要因のビットであると判定する。
【0048】
図12は、レジスタ最適化結果の具体例を示す図である。因子特定部15は、直交表のNo.14におけるレジスタBのレジスタ分割名B1のBit区切り位置「3」に対応する直交表上の値(bin)に「1」を割り付け、レジスタ分割名B1のBit区切り位置「2」に対応する直交表上の値(bin)に「1」を割り付け、レジスタ分割名B1のBit区切り位置「1」に対応する直交表上の値(bin)に「0」を割り付け、レジスタ分割名B1のBit区切り位置「0」に対応する直交表上の値(bin)に「0」を割り付ける。レジスタ分割名B1の直交表上の値(Hex)は「C」となる。この値が最適値となる。
【0049】
因子特定部15は、直交表のNo.14におけるレジスタBのレジスタ分割名B0のBit区切り位置「3」に対応する直交表上の値(bin)に「0」を割り付け、レジスタ分割名B0のBit区切り位置「2」に対応する直交表上の値(bin)に「1」を割り付け、レジスタ分割名B0のBit区切り位置「1」に対応する直交表上の値(bin)に「0」を割り付け、レジスタ分割名B0のBit区切り位置「0」に対応する直交表上の値(bin)に「1」を割り付ける。レジスタ分割名B0の直交表上の値(Hex)は「5」となる。この値が最適値となる。
【0050】
因子特定部15は、直交表のNo.14におけるレジスタCのレジスタ分割名C1のBit区切り位置「3」に対応する直交表上の値(bin)に「1」を割り付け、レジスタ分割名C1のBit区切り位置「2」に対応する直交表上の値(bin)に「1」を割り付け、レジスタ分割名C1のBit区切り位置「1」に対応する直交表上の値(bin)に「0」を割り付け、レジスタ分割名C1のBit区切り位置「0」に対応する直交表上の値(bin)に「1」を割り付ける。レジスタ分割名C1の直交表上の値(Hex)は「D」となる。この値が最適値となる。
【0051】
因子特定部15は、直交表のNo.14におけるレジスタCのレジスタ分割名C0のBit区切り位置「3」に対応する直交表上の値(bin)に「0」を割り付け、レジスタ分割名C0のBit区切り位置「2」に対応する直交表上の値(bin)に「0」を割り付け、レジスタ分割名C0のBit区切り位置「1」に対応する直交表上の値(bin)に「0」を割り付け、レジスタ分割名C0のBit区切り位置「0」に対応する直交表上の値(bin)に「1」を割り付ける。レジスタ分割名C0の直交表上の値(Hex)は「1」となる。この値が最適値となる。
【0052】
図3の説明に戻り、設定部16は、
図12に示したレジスタの最適値を設定(変更)する(ステップS9)。次に、判定部17は、ステップS9で設定した最適値(設定値)が仕様書における規格値(規定値)の範囲内に入っているか否か判定する(ステップS10)。判定部17が設定値が規格値に入っていないと判定した場合は(ステップS10のNO)、ステップS3の処理に戻り、ステップS3〜S10の処理を繰り返し実行する。一方、判定部17が規格値が規格値に入っていると判定した場合は(ステップS10のYES)、所定の機能に関連したレジスタの最適化は終了したと判断して、その機能についての処理を終了する。なお、他の機能について最適化する場合は、ステップS1から実行する。
【0053】
以上に説明したように、本実施形態では、テスト数を削減することができるとともに、より多くのレジスタ及びレジスタのビット数をテストすることができる。
【0054】
以上、本発明の実施形態を説明したが、本発明の技術的範囲は、上記の実施形態に記載の範囲には限定されない。本発明の趣旨を逸脱しない範囲で、上記の実施形態に、多様な変更または改良を加えることが可能である。また、上記の実施形態で説明した要件の1つ以上は、省略されることがある。そのような変更または改良、省略した形態も本発明の技術的範囲に含まれる。また、上記した実施形態や変形例の構成を適宜組み合わせて適用することも可能である。
【0055】
例えば、
図11に示した第2直交表では、B1の「2」「1」「0」、B0の「2」「1」「0」、C1の「2」「1」「0」、C0の「2」「1」「0」を割り当てていたが、B1の「3」「2」「1」「0」、B0の「3」「2」「1」「0」、C1の「3」「2」「1」「0」、C0の「3」「2」「1」「0」を割り当ててもよい。また、第2直交表には、レジスタAのビットを割り当ててもよい。
【0056】
また、最適化の対象となるレジスタの例として、16ビット、24ビット、32ビット、64ビットのレジスタとしていたが、これらのビットのレジスタに限定されず、例えば128ビット、256ビットなどのレジスタであってもよい。