(57)【要約】【課題】テスト数を削減するとともに、より多くのレジスタ及びレジスタのビット数をテストする。【解決手段】システムのレジスタにおける所定ビット数を１つの単位とする所定単位ビットのうちの少なくとも１つのビットを抽出し、ビットを１因子に割り当てて、任意の２因子間の全水準の組み合わせが現れる直交表を作成する第１直交表作成部１３と、直交表の組み合わせに対してテストを実行する第１テスト実行部１４と、第１テスト実行部のテスト結果に基づき、システムの動作に影響している因子を特定する第１因子特定部１５と、第１因子特定部で特定した因子を含む所定単位ビット内のビットを１因子に割り当てて直交表を作成する第２直交表作成部１３と、直交表の組み合わせに対して再度テストを実行する第２テスト実行部１４と、第２テスト実行部のテスト結果に基づき、システムの動作に影響している要因のビットを特定する第２因子特定部１５とを備える。【選択図】図１
2019096029.tif 000002
【特許請求の範囲】
【請求項１】
システムのマイクロプロセッサ内部のレジスタの設定値を最適化するレジスタ最適化装置であって、
前記システムの機能に関連しているレジスタを抽出するレジスタ抽出部と、
前記レジスタ抽出部で抽出された前記レジスタにおける任意のビット数を１つの単位とする所定単位ビットのうちの少なくとも１つのビットを抽出し、前記ビットを１因子に割り当てて、任意の２因子間の全水準の組み合わせが現れる直交表を作成する第１直交表作成部と、
前記直交表の組み合わせに対してテストを実行する第１テスト実行部と、
前記第１テスト実行部のテスト結果に基づき、前記システムの動作に影響している因子を特定する第１因子特定部と、
前記第１因子特定部で特定した前記因子を含む前記所定単位ビット内のビットを１因子に割り当てて直交表を作成する第２直交表作成部と、
前記直交表の組み合わせに対して再度テストを実行する第２テスト実行部と、
前記第２テスト実行部のテスト結果に基づき、前記システムの動作に影響している要因のビットを特定する第２因子特定部と、
前記第２因子特定部で特定された前記ビットの設定値を変更する設定部と、
前記設定部で設定された前記ビットの設定値が規格値の範囲に入っているか否か判定する判定部と、を備え、
前記判定部が前記ビットの設定値が前記規格値の範囲に入っていないと判定した場合、前記第１直交表作成部、前記第１テスト実行部、前記第１因子特定部、前記第２直交表作成部、前記第２テスト実行部、前記第２因子特定部、及び前記設定部は、それぞれ、前記処理を実行することを特徴とするレジスタ最適化装置。
【請求項２】
前記第１直交表作成部は、範囲指定のないレジスタについては該レジスタの該当ビットを１因子に割り当て、範囲指定のあるレジスタについては該レジスタの前記所定単位ビットのうちの前記ビットを１因子に割り当てて直交表を作成する請求項１記載のレジスタ最適化装置。
【請求項３】
前記所定単位ビットは、４ビット、１バイト、又は１ワードである請求項１または請求項２記載のレジスタ最適化装置。
【請求項４】
前記システムの仕様書に基づき、開発中の前記システムの機能を抽出する機能抽出部を備え、
前記レジスタ抽出部は、前記機能抽出部で抽出された前記システムの機能に関連しているレジスタを抽出する請求項１から請求項３のいずれか１項に記載のレジスタ最適化装置。
【請求項５】
システムのマイクロプロセッサ内部のレジスタの設定値を最適化するレジスタ最適化方法であって、
前記システムの機能に関連しているレジスタを抽出するレジスタ抽出ステップと、
前記レジスタ抽出ステップで抽出された前記レジスタにおける任意のビット数を１つの単位とする所定単位ビットのうちの少なくとも１つのビットを抽出し、前記ビットを１因子に割り当てて、任意の２因子間の全水準の組み合わせが現れる直交表を作成する第１直交表作成ステップと、
前記直交表の組み合わせに対してテストを実行する第１テスト実行ステップと、
前記第１テスト実行ステップのテスト結果に基づき、前記システムの動作に影響している因子を特定する第１因子特定ステップと、
前記因子特定ステップで特定した前記因子を含む前記所定単位ビット内のビットを１因子に割り当てて直交表を作成する第２直交表作成ステップと、
前記直交表の組み合わせに対して再度テストを実行する第２テスト実行ステップと、
前記第２テスト実行部のテスト結果に基づき、前記システムの動作に影響している要因のビットを特定する第２因子特定ステップと、
前記第２因子特定ステップで特定された前記ビットの設定値を変更する設定ステップと、
前記設定ステップで設定された前記ビットの設定値が規格値の範囲に入っているか否か判定する判定ステップと、を備え、
前記判定ステップで前記ビットの設定値が前記規格値の範囲に入っていないと判定した場合、前記第１直交表作成ステップ、前記第１テスト実行ステップ、前記第１因子特定ステップ、前記第２直交表作成ステップ、前記第２テスト実行ステップ、前記第２因子特定ステップ、及び前記設定ステップの処理を実行することを特徴とするレジスタ最適化方法。
【請求項６】
前記第１直交表作成ステップにおいて、範囲指定のないレジスタについては該レジスタの該当ビットを１因子に割り当て、範囲指定のあるレジスタについては該レジスタの前記所定単位ビットのうちの前記ビットを１因子に割り当てて直交表を作成する請求項５記載のレジスタ最適化方法。
【請求項７】
前記所定単位ビットは、４ビット、１バイト、又は１ワードである請求項５または請求項６記載のレジスタ最適化方法。
【請求項８】
前記システムの仕様書に基づき、開発中の前記システムの機能を抽出する機能抽出ステップを備え、
前記レジスタ抽出ステップにおいて、前記機能抽出ステップで抽出された前記システムの機能に関連しているレジスタを抽出する請求項５から請求項７のいずれか１項に記載のレジスタ最適化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサ内部のレジスタの設定値を最適化するレジスタ最適化装置及びレジスタ最適化方法に関する。
【背景技術】
【０００２】
近年のシステム（組込みシステム）の開発プロセスにおいて、設計のモジュール化やモデルベース開発が進んでいる。従って、システムの開発の難易度が上がっている一方、比較的容易に設計が行えるようになってきている。しかしながら、システムの機能が増大し、ハードウェア・ソフトウェアで制御可能なレジスタは増大の一途をたどっている。その結果、設計や評価でレジスタの最適値を見つけるために多大なコストが必要となってきている。
【０００３】
一般に、ハードウェア・ソフトウェアのテストパターンの作成方法としては、オールペア法と直交表を用いる方法の２つの方法がある。オールペア法は、すべてのパラメータの組み合わせのテストパターンを作成し、そのテストパターンに基づいてテストを行う手法である。この場合、すべてのパラメータの組み合わせを網羅しようとするとテストパターンが膨大となってしまい、テスト時間も膨大な時間がかかってしまう。一方、直交表とは、任意の２因子について、その水準のすべての組み合わせが同数回ずつ現れるという特徴を持つ割り付け表である。この直交表を用いた方法では、パラメータの組み合わせ数を大幅に削減することができる。
【０００４】
例えば特許文献１には、試験対象（例えば、試験対象はデジタル回路のようなハードウェアでもよく、ソフトウェアでもよい）の因子間で取り得る値の組み合わせの網羅率が所定値となるように、テストパターンを生成し、テストパターンを試験対象に供給して試験を実行する試験装置、試験方法等が記載されている。網羅率が所定値となるような値の組み合わせを求める方法としては、直交表を用いたアルゴリズムが用いられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−１２１９９４公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、特許文献１に記載された装置等は、直交表を用いて組み合わせのテストパターンの数を削減している。しかしながら、レジスタの設定値をテストする場合、テスト数（実験数）を削減したいという要望と、レジスタの数とレジスタのビット数はより多くテストしたいという要望があり、直交表を用いてテスト数を削減するだけでは不十分であり、改善の余地がある。
【０００７】
本発明は、前述した事情に鑑みてなされたものであり、テスト数を削減することができるとともに、より多くのレジスタ及びレジスタのビット数をテストすることができるレジスタ最適化装置及びレジスタ最適化方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明では、システムのマイクロプロセッサ内部のレジスタの設定値を最適化するレジスタ最適化装置であって、システムの機能に関連しているレジスタを抽出するレジスタ抽出部と、レジスタ抽出部で抽出されたレジスタにおける所定ビット数を１つの単位とする所定単位ビットのうちの少なくとも１つのビットを抽出し、ビットを１因子に割り当てて、任意の２因子間の全水準の組み合わせが現れる直交表を作成する第１直交表作成部と、直交表の組み合わせに対してテストを実行する第１テスト実行部と、第１テスト実行部のテスト結果に基づき、システムの動作に影響している因子を特定する第１因子特定部と、第１因子特定部で特定した因子を含む所定単位ビット内のビットを１因子に割り当てて直交表を作成する第２直交表作成部と、直交表の組み合わせに対して再度テストを実行する第２テスト実行部と、第２テスト実行部のテスト結果に基づき、システムの動作に影響している要因のビットを特定する第２因子特定部と、第２因子特定部で特定されたビットの設定値を変更する設定部と、設定部で設定されたビットの設定値が規格値の範囲に入っているか否か判定する判定部と、を備え、判定部がビットの設定値が規格値の範囲に入っていないと判定した場合、第１直交表作成部、第１テスト実行部、第１因子特定部、第２直交表作成部、第２テスト実行部、第２因子特定部、及び設定部は、それぞれ、処理を実行することを特徴とするレジスタ最適化装置を提供する。
【０００９】
また、第１直交表作成部は、範囲指定のないレジスタについては該レジスタの該当ビットを１因子に割り当て、範囲指定のあるレジスタについては該レジスタの所定単位ビットのうちのビットを１因子に割り当てて直交表を作成する構成でもよい。
【００１０】
また、所定単位ビットは、４ビット、１バイト、又は１ワードであってもよい。
【００１１】
また、システムの仕様書に基づき、開発中のシステムの機能を抽出する機能抽出部を備え、レジスタ抽出部は、機能抽出部で抽出されたシステムの機能に関連しているレジスタを抽出する構成でもよい。
【００１２】
また、本発明では、システムのマイクロプロセッサ内部のレジスタの設定値を最適化するレジスタ最適化方法であって、システムの機能に関連しているレジスタを抽出するレジスタ抽出ステップと、レジスタ抽出ステップで抽出されたレジスタにおける所定ビット数を１つの単位とする所定単位ビットのうちの少なくとも１つのビットを抽出し、ビットを１因子に割り当てて、任意の２因子間の全水準の組み合わせが現れる直交表を作成する第１直交表作成ステップと、直交表の組み合わせに対してテストを実行する第１テスト実行ステップと、第１テスト実行ステップのテスト結果に基づき、システムの動作に影響している因子を特定する第１因子特定ステップと、因子特定ステップで特定した因子を含む所定単位ビット内のビットを１因子に割り当てて直交表を作成する第２直交表作成ステップと、直交表の組み合わせに対して再度テストを実行する第２テスト実行ステップと、第２テスト実行部のテスト結果に基づき、システムの動作に影響している要因のビットを特定する第２因子特定ステップと、第２因子特定ステップで特定されたビットの設定値を変更する設定ステップと、設定ステップで設定されたビットの設定値が規格値の範囲に入っているか否か判定する判定ステップと、を備え、判定ステップでビットの設定値が規格値の範囲に入っていないと判定した場合、第１直交表作成ステップ、第１テスト実行ステップ、第１因子特定ステップ、第２直交表作成ステップ、第２テスト実行ステップ、第２因子特定ステップ、及び設定ステップの処理を実行することを特徴とするレジスタ最適化方法を提供する。
【００１３】
また、第１直交表作成ステップにおいて、範囲指定のないレジスタについては該レジスタの該当ビットを１因子に割り当て、範囲指定のあるレジスタについては該レジスタの所定単位ビットのうちのビットを１因子に割り当てて直交表を作成する構成でもよい。
【００１４】
また、所定単位ビットは、４ビット、１バイト、又は１ワードであってもよい。
【００１５】
また、システムの仕様書に基づき、開発中のシステムの機能を抽出する機能抽出ステップを備え、レジスタ抽出ステップにおいて、機能抽出ステップで抽出されたシステムの機能に関連しているレジスタを抽出する構成でもよい。
【発明の効果】
【００１６】
本発明によれば、テスト数を削減することができるとともに、より多くのレジスタ及びレジスタのビット数をテストすることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るレジスタ最適化装置の構成を示すブロック図である。
【図２】テスト対象のシステムの構成例を示すブロック図である。
【図３】本発明の実施形態に係るレジスタ最適化方法の処理を示すフローチャートである。
【図４】図３に示すレジスタ最適化方法の第１直交表作成処理を示すフローチャートである。
【図５】図３に示すレジスタ最適化方法の第２直交表作成処理を示すフローチャートである。
【図６】直交表における因子と水準の割付を示す図である。
【図７】直交表に割り付けるレジスタのビット位置を示す図である。
【図８】直交表の例を示す図である。
【図９】直交表に割り当てるレジスタＡ，Ｂ，Ｃの例を示す図である。
【図１０】第１直交表とレジスタ展開の具体例を示す図である。
【図１１】第２直交表の具体例を示す図である。
【図１２】レジスタ最適化結果の具体例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について図面を参照して説明する。ただし、本発明はこれに限定されるものではない。また、図面においては、実施形態を説明するため、一部分を大きくまたは強調して記載するなど適宜縮尺を変更して表現することがある。
【００１９】
図１は、本発明の実施形態に係るレジスタ最適化装置１の構成を示すブロック図である。図１に示すレジスタ最適化装置１は、システム（例えば組込みシステム）のマイクロプロセッサ内部のレジスタの値（パラメータ）を最適化する装置である。ここで、テスト対象のシステムとしては、例えば、様々なデバイスを組み合わせて構成されたシステムを想定している。最適化とは、システムとして各デバイスなどが正常に動作するようにレジスタの値を適切な値に設定することをいう。
【００２０】
ハードウェアであるマイクロプロセッサを制御するシステムの場合、例えば、レジスタの値が所定の範囲になったときに指令を出す、というようなレジスタの範囲の設定などを行う必要がある。この場合、膨大な数のレジスタの組み合わせがあり、各々のレジスタの最適値を見つけるためには膨大な時間がかかってしまう。そこで、本実施形態では、直交表を用いて不具合のあるレジスタ（設定値として適切な値が設定されていないレジスタ）を効率よく発見する方法を提案する。
【００２１】
図２は、テスト対象（試験対象）のシステム１００の構成例を示すブロック図である。図２に示すシステム１００は、デバイス等の動作に必要な機能のすべてを１つの半導体チップに実装するＳｏＣ(System On a Chip)化されたシステムである。レジスタ最適化装置１は、例えば図２に示すようなシステム１００のレジスタの値を最適化する装置である。なお、システム１００は一例であって、レジスタ最適化装置１によるレジスタの最適化の対象となるシステムは図２に示したものに限定されない。例えば、組み込みボードにおけるデバイス間のレジスタ設定も対象となる。
【００２２】
図１の説明に戻り、レジスタ最適化装置１は、例えば、ＣＰＵ（Central Processing Unit）を有するコンピュータ（例えばパーソナルコンピュータ）などで実現される。このレジスタ最適化装置１は、図１に示すように、機能特定部１１、レジスタ抽出部１２、直交表作成部１３（第１直交表作成部、第２直交表作成部）、テスト実行部１４（第１テスト実行部、第２テスト実行部）、因子特定部１５（第１因子特定部、第２因子特定部）、設定部１６、及び記憶部２０を有している。なお、レジスタ最適化装置１における機能特定部１１、レジスタ抽出部１２、直交表作成部１３、テスト実行部１４、因子特定部１５、及び設定部１６は、ＣＰＵがプログラムに基づいて実行する制御・処理に相当する。
【００２３】
機能特定部１１は、システムの仕様書に基づいて開発中のシステムの機能を抽出する処理部である。レジスタ抽出部１２は、機能特定部１１が抽出した機能に関連しているレジスタを抽出する処理部である。直交表作成部１３は、レジスタ抽出部１２が抽出したレジスタの所定ビットを１因子とし、水準を２とした直交表を作成する処理部である。具体的には、直交表作成部１３は、レジスタ抽出部１２で抽出されたレジスタにおける所定ビット数を１つの単位とする所定単位ビット（例えば、４ビット、１バイト（８ビット）、１ワード（３２ビット））のうちの少なくとも１つのビットを抽出し、抽出したビットを１因子に割り当て、水準を２とした直交表（第１直交表）を作成する。このような処理を行う直交表作成部１３を第１直交表作成部という。また、直交表作成部１３は、後述する因子特定部１５で特定した因子を含む所定単位ビット内の各ビットを１因子に割り当て、水準を２とした直交表（第２直交表）を作成する。このような処理を行う直交表作成部１３を第２直交表作成部という。
【００２４】
テスト実行部１４は、直交表作成部１３が作成した直交表の組み合わせ（テストパターン）に対してテストを実行する処理部である。第１直交表作成部が作成した第１直交表の組み合わせに対してテストを実行するテスト実行部１４を第１テスト実行部といい、第２直交表作成部が作成した第２直交表の組み合わせに対してテストを実行するテスト実行部１４を第２テスト実行部という。
【００２５】
因子特定部１５は、テスト実行部１４のテスト結果に基づき、システムの動作に影響している因子を特定する処理部である。第１テスト実行部のテスト結果に基づき、システムの動作に影響している因子を特定する因子特定部１５を第１因子特定部といい、第２テスト実行部のテスト結果に基づき、システムの動作に影響している因子を特定する因子特定部１５を第２因子特定部という。設定部１６は、レジスタの値を設定し、また因子特定部１５で特定されたレジスタの値を変更する処理部である。判定部１７は、設定部１６で設定されたレジスタの値が規定値の範囲に入っているか否か判定する処理部である。
【００２６】
記憶部２０は、各種情報を記憶するメモリなどの装置である。記憶部２０に記憶される情報としては、システムの仕様書の情報（開発中の機能、機能に関連しているレジスタの情報などを含む）、レジスタ最適化装置１を制御するためのプログラムなどを含む。また、記憶部２０に記憶される情報としては、機能特定部１１が抽出した機能、レジスタ抽出部１２が抽出したレジスタ、直交表作成部１３が作成した直交表、テスト実行部１４によるテストの実行結果、因子特定部１５が特定した因子の情報なども含む。
【００２７】
レジスタ最適化装置１は、通常のシステムの開発業務で発生するデバイス間やデバイス内におけるレジスタの設定値を決定する工程で利用される。すなわち、システムの開発では、システムの方向性、システム化計画、要件定義、システム要件定義、ソフトウェア要件定義、プログラミング、ソフトウェア適格性確認テスト、システム適格性確認テスト、要求テスト、評価などの順で行われる。レジスタ最適化装置１は、例えばソフトウェア要件定義（設計の段階）及びソフトウェア適格性確認テスト（テストの段階）の工程で利用される。
【００２８】
次に、図３〜図１２を参照して、レジスタ最適化装置１の動作（レジスタ最適化方法）について説明する。
【００２９】
図３は、本発明の実施形態に係るレジスタ最適化方法の処理を示すフローチャートである。図４は、図３に示すレジスタ最適化方法の第１直交表作成処理（ステップＳ３）を示すフローチャートである。図５は、図３に示すレジスタ最適化方法の第２直交表作成処理（ステップＳ６）を示すフローチャートである。
【００３０】
図３に示す処理において、レジスタ最適化装置１の機能特定部１１は、システムの仕様書に基づいて開発中のシステムの機能・条件を自動的に抽出する（ステップＳ１）。機能特定部１１により抽出される機能・条件は、システムの環境（温度など）、動作モード、ハードウェア構成などにより決定される。なお、本実施形態では、機能特定部１１がシステムの仕様書に基づいて開発中のシステムの機能・条件を自動的に抽出する構成としていたが、開発者がシステムの仕様書に基づいて手動で開発中のシステムの機能・条件を抽出してもよい。
【００３１】
次に、レジスタ抽出部１２は、システムの仕様書に基づいて、機能特定部１１が抽出した機能に関連しているレジスタや、機能特定部１１が抽出した機能のうちの所定の条件に関連するレジスタを抽出する（ステップＳ２）。そして、直交表作成部１３は、レジスタ抽出部１２で抽出されたレジスタの所定単位ビットのうちの所定ビットを抽出し、所定ビットを１因子に割り当てて直交表（第１直交表）を作成する（ステップＳ３）。
【００３２】
図６は、直交表における因子と水準の割付を示す図である。直交表とは、任意の２因子（列）について、その水準のすべての組み合わせが同回数ずつ現れる性質を持つテスト（実験）のための割付表である。一般に、多元配置のテストでは、少なくとも因子の水準数の積だけテスト数が必要となり、因子数が多くなるとテスト数は膨大な数になってしまう。求める相互作用が少なければ、直交表を用いることによって、多くの因子に関するテストを比較的少ない回数で行うことができる。
【００３３】
図６に示すように、直交表における因子（パラメータ）として、レジスタ抽出部１２で抽出された、システムやデバイスに実装される機能・条件（図６に示す例では機能Ａ）に関連するレジスタ（図６に示す例ではレジスタＡ，Ｂ，Ｃ・・・）に含まれるビット（Ｂｉｔ）が割り付け（割り当て）られる。また、直交表における水準（パラメータへの設定値）は０又は１の「２」である。直交表の行は、テストＮｏ．（テスト回数、組み合わせ数）である。直交表は直交表作成部１３により機能・条件ごとに作成される。例えば、機能Ａに関連するレジスタがレジスタＡ，Ｂ，Ｃである場合、それらレジスタＡ，Ｂ，Ｃに含まれるビットが因子として割り付けられ、機能Ｂに関連するレジスタがレジスタＣ，Ｄ，Ｅの場合、それらレジスタＣ，Ｄ，Ｅに含まれるビットが因子として割り付けられる。
【００３４】
直交表の大きさ（サイズ）は、テストしたい項目（因子）の数と種類、テスト時間、費用などの関係から決定される。また、直交表の大きさ＝Σ（因子の水準＋１）＋１の式からも算出することが可能である。直交表は大きくなるほど、テストに要する工数が増えるだけでなく、最適値を導くまでの時間が長くなるが、テストの精度は向上する。これらの工数と精度を考慮した上で直交表の大きさが決定される。
【００３５】
図７は、直交表に割り付けるレジスタのビット位置を示す図である。図７に示すレジスタは２４ビット（０ビット目、１ビット目、２ビット目、・・・、２３ビット目）のレジスタである。直交表に割り付けるレジスタのビットは漸化式の差分数列型の算術数列Ａ．Ｐ(Arithmetic Progression)を用いて行う。すなわち、直交表作成部１３は算出数列ａｎ＝ａ＋（ｎ−１）ｄ によってレジスタのビットの位置を指定する。図７に示す例では、ａは０，１，２，３、ｎは１，２，３，４，５、ｄは４である。この場合、レジスタの２４ビットは、４ビットごとの単位に分けられる。すなわち、２４ビットは、「０，１，２，３」「４，５，６，７」「８，９，１０，１１」「１２，１３，１４，１５」「１６，１７，１８，１９」「２０，２１，２２，２３」に分けられる。４ビットの単位が所定単位ビットである。所定単位ビットは、ｄの値に応じて変更される。例えば、ｄが８の場合は、レジスタの２４ビットは、８ビットごとの単位、すなわち、「０，１，２，３，４，５，６，７」「８，９，１０，１１，１２，１３，１４，１５」「１６，１７，１８，１９，２０，２１，２２，２３」に分けられる。
【００３６】
図８は、直交表の例を示す図である。図８（ａ）は２水準Ｌ８の直交表であり、図８（ｂ）は２水準Ｌ１６の直交表である。このように直交表の大きさによって、各因子（各パラメータ）に割り当てられる値（水準）及びテストの実行回数は予め定められる。
【００３７】
次に、図４を参照して図３のステップＳ３の処理（第１直交表作成処理）の内容について説明する。図４に示すように、第１直交表作成処理（ステップＳ３）において、直交表作成部１３は、レジスタ抽出部１２で抽出されたレジスタ（機能・条件に関連するレジスタ）が範囲指定のあるレジスタか否か判定する（ステップＳ３Ａ）。ここで、指定範囲のないレジスタとは、イネーブルビットやアクティベートビットなどが設定されるレジスタである。イネーブルビットは、イネーブルのレジスタに固まっており、範囲指定はなく、このビットがたったら機能が動き出すというビットである。指定範囲のあるレジスタは、レジスタの各ビット（１６ビット、２４ビット、３２ビット、６４ビットのレジスタの各ビット）のうち、指定範囲のビットに値が設定されるレジスタである。直交表作成部１３は、範囲指定のあるレジスタでないと判定した場合（つまり、範囲指定のないレジスタであると判定した場合）（ステップＳ３ＡのＮＯ）、レジスタの該当ビット（イネーブルビットなど）を１因子に割り当てる（ステップＳ３Ｂ）。一方、直交表作成部１３は、範囲指定のあるレジスタであると判定した場合（ステップＳ３ＡのＹＥＳ）、レジスタの指定範囲内の所定単位ビットのうちの所定ビットを１因子に割り当てる（ステップＳ３Ｃ）。
【００３８】
図９は、直交表に割り当てるレジスタＡ，Ｂ，Ｃの例を示す図である。図９に示すレジスタＡ、レジスタＢ及びレジスタＣは、システムの機能・条件Ａに関連しているレジスタであるものとする。レジスタＡはイネーブルビットが設定されたレジスタ、すなわち指定範囲のないレジスタである。レジスタＡの「ＥＮ」がイネーブルビット(Enable bit)を示している。レジスタＢ及びレジスタＣは、指定範囲（０ビット目〜７ビット目）のあるレジスタである。レジスタＢ及びレジスタＣは、所定単位ビットを４ビットとしている。すなわち、レジスタＢ及びレジスタＣは、０ビット目から３ビット目の４ビットを所定単位ビットとし、４ビット目から７ビット目の４ビットを所定単位ビットとしている。レジスタＢ及びレジスタＣは、初期値として、Ａｌｌ０（すべてのビットの値が０）、Ａｌｌ１（すべてのビットの値が１）、所定単位ビットの値が１６進数の５ｈ（４ビットの値が２進数「０１０１」）、又は所定単位ビットの値が１６進数のＡｈ（４ビットの値が２進数の「１０１０」）となっている。
【００３９】
図９において、〇が付されているビットが直交表に割り付けられるビットである。また、×が付されているビットが直交表に割り付けられないビットである。レジスタＡの場合、０ビット目（イネーブルビット）が直交表に割り付けられる。レジスタＢの場合、３ビット目と７ビット目（所定単位ビットの所定ビット）が直交表に割り付けられる。レジスタＣの場合も、３ビット目と７ビット目（所定単位ビットの所定ビット）が直交表に割り付けられる。レジスタＢ，Ｃにおいて割り付けられるビットは、図７で説明した算術数列によって指定されたビットである。
【００４０】
図１０は、第１直交表とレジスタ展開の具体例を示す図である。図１０の左上図に示す直交表（第１直交表）は、条件Ａに関連するレジスタＡ，Ｂ，Ｃのビットが割り当てられた直交表である。直交表作成部１３は、レジスタＡの０ビット目（イネーブルビット）、レジスタＢの３ビット目（図１０のＢ０）と７ビット目（図１０のＢ１）、及びレジスタＣの３ビット目（図１０のＣ０）と７ビット目（図１０のＣ１）を直交表に割り当て、水準を２とした第１直交表を作成する。この第１直交表は、２水準Ｌ８の直交表であり、テストがＮｏ．０〜Ｎｏ．７まで実行される。
【００４１】
図３の説明に戻り、テスト実行部１４は、直交表作成部１３が作成した第１直交表の組み合わせ（図１０の第１直交表のＮｏ．０〜Ｎｏ．７）に対してテストを実行する（ステップＳ４）。そのテストの結果が特性値として出力される。パラメータ設計においては機能品質を合理的に表現する特性値が必要である。特性値出力判定は、図１０の右上図に示すように、二重丸が１００％の特性値であり、丸（〇）が９０％の特性値であり、三角（△）が８０％の特性値であり、四角（□）が５０％の特性値であり、四角（◇）が３０％の特性値であり、バツ（×）が０％の特性値である。上記の例では、特性値が大きいほど良い特性である。
【００４２】
次に、因子特定部１５は、テスト実行部１４のテスト結果（特性値出力判定）に基づいて、システムの動作に影響している因子を特定する（ステップＳ５）。図１０に示す例では、因子特定部１５は、Ｎｏ．５の特性値出力判定がシステムに影響している要因であると判定する。そして、因子特定部１５は、直交表のＮｏ．５におけるレジスタＢのレジスタ分割名Ｂ１（レジスタＢの７ビット目）の「１」を、図１０の下図におけるＢｉｔ区切り位置「３」に対応する直交表上の値（ｂｉｎ）に割り付け、図１０の下図におけるＢｉｔ区切り位置「２」「１」「０」に対応する直交表上の値（ｂｉｎ）に「０」を割り付ける。レジスタ分割名Ｂ１の直交表上の値（Ｈｅｘ）は「８」となる。因子特定部１５は、直交表のＮｏ．５におけるレジスタＢのレジスタ分割名Ｂ０（レジスタＢの３ビット目）の「０」を、図１０の下図におけるＢｉｔ区切り位置「３」に対応する直交表上の値（ｂｉｎ）に割り付け、図１０の下図におけるＢｉｔ区切り位置「２」「１」「０」に対応する直交表上の値（ｂｉｎ）に「０」を割り付ける。レジスタ分割名Ｂ０の直交表上の値（Ｈｅｘ）は「０」となる。因子特定部１５は、直交表のＮｏ．５におけるレジスタＣのレジスタ分割名Ｃ１（レジスタＣの７ビット目）の「１」を、図１０の下図におけるＢｉｔ区切り位置「３」に対応する直交表上の値（ｂｉｎ）に割り付け、図１０の下図におけるＢｉｔ区切り位置「２」「１」「０」に対応する直交表上の値（ｂｉｎ）に「０」を割り付ける。レジスタ分割名Ｃ１の直交表上の値（Ｈｅｘ）は「８」となる。因子特定部１５は、直交表のＮｏ．５におけるレジスタＣのレジスタ分割名Ｃ０（レジスタＣの３ビット目）の「０」を、図１０の下図におけるＢｉｔ区切り位置「３」に対応する直交表上の値（ｂｉｎ）に割り付け、図１０の下図におけるＢｉｔ区切り位置「２」「１」「０」に対応する直交表上の値（ｂｉｎ）に「０」を割り付ける。レジスタ分割名Ｃ０の直交表上の値（Ｈｅｘ）は「０」となる。
【００４３】
次に、直交表作成部１３は、因子特定部１５で特定された因子を含む所定単位ビット内のビットを１因子に割り当て、水準を２とした直交表（第２直交表）を作成する（ステップＳ６）。図５を参照して図３のステップＳ６の処理（第２直交表作成処理）の内容について説明する。
【００４４】
図５に示すように、第２直交表作成処理（ステップＳ６）において、直交表作成部１３は、因子特定部１５で特定された因子を含むレジスタが範囲指定のあるレジスタか否か判定する（ステップＳ６Ａ）。直交表作成部１３は、範囲指定のあるレジスタでないと判定した場合（つまり、範囲指定のないレジスタであると判定した場合）（ステップＳ６ＡのＮＯ）、レジスタの該当ビット（イネーブルビットなど）を１因子に割り当てる（ステップＳ６Ｂ）。一方、直交表作成部１３は、範囲指定のあるレジスタであると判定した場合（ステップＳ６ＡのＹＥＳ）、レジスタにおける影響している因子に含まれる所定単位ビット内のビットを１因子に割り当てる（ステップＳ６Ｃ）。
【００４５】
図１１は、第２直交表の具体例を示す図である。直交表作成部１３は、図１０の下図におけるレジスタ分割名Ｂ１のＢｉｔ区切り位置「２」「１」「０」のビット（レジスタＢの６ビット目、５ビット目、４ビット目）を直交表に割り当て、図１０の下図におけるレジスタ分割名Ｂ０のＢｉｔ区切り位置「２」「１」「０」のビット（レジスタＢの２ビット目、１ビット目、０ビット目）を直交表に割り当て、図１０の下図におけるレジスタ分割名Ｃ１のＢｉｔ区切り位置「２」「１」「０」のビット（レジスタＣの６ビット目、５ビット目、４ビット目）を直交表に割り当て、図１０の下図におけるレジスタ分割名Ｃ０のＢｉｔ区切り位置「２」「１」「０」のビット（レジスタＣの２ビット目、１ビット目、０ビット目）を直交表に割り当て、水準を２とした第２直交表を作成する。この第２直交表は、２水準Ｌ１６の直交表であり、テストがＮｏ．０〜Ｎｏ．１５まで実行される。なお、図１０の下図におけるレジスタ分割名Ｂ１のＢｉｔ区切り位置「３」のビット（レジスタＢの７ビット目）の値は「１」に固定し、図１０の下図におけるレジスタ分割名Ｂ０のＢｉｔ区切り位置「３」のビット（レジスタＢの３ビット目）の値は「０」に固定し、図１０の下図におけるレジスタ分割名Ｃ１のＢｉｔ区切り位置「３」のビット（レジスタＣの７ビット目）の値は「１」に固定し、図１０の下図におけるレジスタ分割名Ｃ０のＢｉｔ区切り位置「３」のビット（レジスタＣの３ビット目）の値は「０」に固定し、さらにレジスタＡの値を固定した条件で、テストを実行する。
【００４６】
テスト実行部１４は、直交表作成部１３が作成した第２直交表の組み合わせ（図１１の第２直交表のＮｏ．０〜Ｎｏ．１５）に対して再度テストを実行する（ステップＳ７）。そのテストの結果が特性値として出力される。
【００４７】
次に、因子特定部１５は、テスト実行部１４のテスト結果（特性値出力判定）に基づいて、システムの動作に影響している要因のビット（影響要因ビット）を特定する（ステップＳ８）。図１１に示す例では、因子特定部１５は、Ｎｏ．１４の特性値出力判定がシステムに影響している要因のビットであると判定する。
【００４８】
図１２は、レジスタ最適化結果の具体例を示す図である。因子特定部１５は、直交表のＮｏ．１４におけるレジスタＢのレジスタ分割名Ｂ１のＢｉｔ区切り位置「３」に対応する直交表上の値（ｂｉｎ）に「１」を割り付け、レジスタ分割名Ｂ１のＢｉｔ区切り位置「２」に対応する直交表上の値（ｂｉｎ）に「１」を割り付け、レジスタ分割名Ｂ１のＢｉｔ区切り位置「１」に対応する直交表上の値（ｂｉｎ）に「０」を割り付け、レジスタ分割名Ｂ１のＢｉｔ区切り位置「０」に対応する直交表上の値（ｂｉｎ）に「０」を割り付ける。レジスタ分割名Ｂ１の直交表上の値（Ｈｅｘ）は「Ｃ」となる。この値が最適値となる。
【００４９】
因子特定部１５は、直交表のＮｏ．１４におけるレジスタＢのレジスタ分割名Ｂ０のＢｉｔ区切り位置「３」に対応する直交表上の値（ｂｉｎ）に「０」を割り付け、レジスタ分割名Ｂ０のＢｉｔ区切り位置「２」に対応する直交表上の値（ｂｉｎ）に「１」を割り付け、レジスタ分割名Ｂ０のＢｉｔ区切り位置「１」に対応する直交表上の値（ｂｉｎ）に「０」を割り付け、レジスタ分割名Ｂ０のＢｉｔ区切り位置「０」に対応する直交表上の値（ｂｉｎ）に「１」を割り付ける。レジスタ分割名Ｂ０の直交表上の値（Ｈｅｘ）は「５」となる。この値が最適値となる。
【００５０】
因子特定部１５は、直交表のＮｏ．１４におけるレジスタＣのレジスタ分割名Ｃ１のＢｉｔ区切り位置「３」に対応する直交表上の値（ｂｉｎ）に「１」を割り付け、レジスタ分割名Ｃ１のＢｉｔ区切り位置「２」に対応する直交表上の値（ｂｉｎ）に「１」を割り付け、レジスタ分割名Ｃ１のＢｉｔ区切り位置「１」に対応する直交表上の値（ｂｉｎ）に「０」を割り付け、レジスタ分割名Ｃ１のＢｉｔ区切り位置「０」に対応する直交表上の値（ｂｉｎ）に「１」を割り付ける。レジスタ分割名Ｃ１の直交表上の値（Ｈｅｘ）は「Ｄ」となる。この値が最適値となる。
【００５１】
因子特定部１５は、直交表のＮｏ．１４におけるレジスタＣのレジスタ分割名Ｃ０のＢｉｔ区切り位置「３」に対応する直交表上の値（ｂｉｎ）に「０」を割り付け、レジスタ分割名Ｃ０のＢｉｔ区切り位置「２」に対応する直交表上の値（ｂｉｎ）に「０」を割り付け、レジスタ分割名Ｃ０のＢｉｔ区切り位置「１」に対応する直交表上の値（ｂｉｎ）に「０」を割り付け、レジスタ分割名Ｃ０のＢｉｔ区切り位置「０」に対応する直交表上の値（ｂｉｎ）に「１」を割り付ける。レジスタ分割名Ｃ０の直交表上の値（Ｈｅｘ）は「１」となる。この値が最適値となる。
【００５２】
図３の説明に戻り、設定部１６は、図１２に示したレジスタの最適値を設定（変更）する（ステップＳ９）。次に、判定部１７は、ステップＳ９で設定した最適値（設定値）が仕様書における規格値（規定値）の範囲内に入っているか否か判定する（ステップＳ１０）。判定部１７が設定値が規格値に入っていないと判定した場合は（ステップＳ１０のＮＯ）、ステップＳ３の処理に戻り、ステップＳ３〜Ｓ１０の処理を繰り返し実行する。一方、判定部１７が規格値が規格値に入っていると判定した場合は（ステップＳ１０のＹＥＳ）、所定の機能に関連したレジスタの最適化は終了したと判断して、その機能についての処理を終了する。なお、他の機能について最適化する場合は、ステップＳ１から実行する。
【００５３】
以上に説明したように、本実施形態では、テスト数を削減することができるとともに、より多くのレジスタ及びレジスタのビット数をテストすることができる。
【００５４】
以上、本発明の実施形態を説明したが、本発明の技術的範囲は、上記の実施形態に記載の範囲には限定されない。本発明の趣旨を逸脱しない範囲で、上記の実施形態に、多様な変更または改良を加えることが可能である。また、上記の実施形態で説明した要件の１つ以上は、省略されることがある。そのような変更または改良、省略した形態も本発明の技術的範囲に含まれる。また、上記した実施形態や変形例の構成を適宜組み合わせて適用することも可能である。
【００５５】
例えば、図１１に示した第２直交表では、Ｂ１の「２」「１」「０」、Ｂ０の「２」「１」「０」、Ｃ１の「２」「１」「０」、Ｃ０の「２」「１」「０」を割り当てていたが、Ｂ１の「３」「２」「１」「０」、Ｂ０の「３」「２」「１」「０」、Ｃ１の「３」「２」「１」「０」、Ｃ０の「３」「２」「１」「０」を割り当ててもよい。また、第２直交表には、レジスタＡのビットを割り当ててもよい。
【００５６】
また、最適化の対象となるレジスタの例として、１６ビット、２４ビット、３２ビット、６４ビットのレジスタとしていたが、これらのビットのレジスタに限定されず、例えば１２８ビット、２５６ビットなどのレジスタであってもよい。
【符号の説明】
【００５７】
１  レジスタ最適化装置
１１  機能特定部
１２  レジスタ抽出部
１３  直交表作成部（第１直交表作成部、第２直交表作成部）
１４  テスト実行部（第１テスト実行部、第２テスト実行部）
１５  因子特定部（第１因子特定部、第２因子特定部）
１６  設定部
１７  判定部
１００  システム
【図１】
2019096029.tif 000003
【図２】
2019096029.tif 000004
【図３】
2019096029.tif 000005
【図４】
2019096029.tif 000006
【図５】
2019096029.tif 000007
【図６】
2019096029.tif 000008
【図７】
2019096029.tif 000009
【図８】
2019096029.tif 000010
【図９】
2019096029.tif 000011
【図１０】
2019096029.tif 000012
【図１１】
2019096029.tif 000013
【図１２】
2019096029.tif 000014