(57)【要約】【課題】電子機器における性能最適化システムの提供。【解決手段】電子機器における性能最適化システムであって、  (i) 観測対象となる電子機器デバイスを備えた観測対象システムと、  (ii) 複数の条件から一つの数値の最大値又は最小値を見つけるアルゴリズムを持つ最適化ソフトウエアと、前記電子機器デバイスからの複数の観測結果から一つの数値を算出する性能指標値化ソフトウエアと、前記電子機器デバイスの電子回路を制御するソフトウエアとを搭載するコンピュータと、  (iii) 前記観測されたデータを前記コンピュータに送るデータ取得回路と、  を備える前記システム。【選択図】図１
2016099680.tif 000002
【特許請求の範囲】
【請求項１】
電子機器における性能最適化システムであって、
(i) 観測対象となる電子機器デバイスを備えた観測対象システムと、
(ii) 複数の条件から一つの数値の最大値又は最小値を見つけるアルゴリズムを有する最適化ソフトウエアと、前記電子機器デバイスからの複数の観測結果から一つの数値を算出する性能指標値化ソフトウエアと、前記電子機器デバイスの電子回路を制御するソフトウエアとを搭載するコンピュータと、
(iii) 前記観測されたデータを前記コンピュータに送るデータ取得回路と、
を備える前記システム。
【請求項２】
前記データ取得回路が前記観測対象システムに組み込まれた、請求項１に記載のシステム。
【請求項３】
性能指標値は、ある処理の単位時間あたりのデータ転送量であるトラフィック及びある処理が始まり終わるまでに要する時間であるレイテンシー、並びにアクセスタイムを用いて性能指標値化ソフトウエアによって算出される、請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に使用されるICやソフトウェアの各設定や動作の組み合わせによる電子処理の性能を自動で設定及び解析を行い、性能が最善となる各設定及び動作の組み合わせを決定するシステムに関するものである。
【背景技術】
【０００２】
一般的に電子機器の性能は、複数のハードウェアやソフトウェアの設計者が経験上最適になると思われるいくつかの設定及び動作の組み合わせの中から、いくつかを選択し、簡易な机上計算や評価で決められる。その結果、一部の組み合わせのみの試行しかなされず、最適な構成が選択されたことが分からないだけでなく、場合によっては、要求仕様を満たさない時は仕様を変更するか、あるいは高速なICを選択するなどで対応するため、製品の魅力を削ぐことになったり、製品のコストアップという問題がある。
【０００３】
また、SOCやASSP、CPUなど大規模で複雑なICの場合は、設計及び検証が高度になり、かつ、量も膨大なため、さらには全体を詳細に把握できる人が現実的にはいないこともあって、半導体の性能アップと共に必要以上に製品の性能アップに頼っている。
しかし、半導体先端プロセスが非常に高額になり、また、消費電力の増大、それに伴う熱に耐えるパッケージのコスト等も高額となり、それを回収できる量や価格を維持可能な製品の販売が難しくなっていることより、性能を向上するために、設計や検証を大きく変える転換期に来ている。
【０００４】
SOCやASSP、CPUなど大規模で複雑なICの場合は、設計や検証レベルが高度になったこと、全て（ハードウェア及びソフトウェア）の開発が完了する工程でようやく正確に把握出来るものであり性能まで手を付ける余裕がなかったこと、さらには、容易に半導体の性能アップで対応することが出来たことから、機能の問題（バグ）をなくすようにするためのツールやメソッド等はあまり開発されていなかった。一部のツールやメソッドについて、設計者や検証担当者が独自に開発を手掛けているケースもあるが、自分以外の担当箇所の開発内容を理解するために膨大な時間と努力を要し、また、理解したとしても、自分の頭の中で考案するに止まる場面、簡易な自作の計算プログラムを使用する場面など、最適な動作やアーキテクチャ等を検討するには膨大な手間と時間がかかり開発期間に間に合わないという現状の問題がある。
ところで、半導体デバイスの検証を行うために、内部バスの検証モジュールを有する半導体デバイスを提供することが提案されている（特許文献１）。この半導体デバイスは、チップの内部状態をリアルタイムでモニタリング及び解析することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2012-181603号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、SOCやASSP、CPUなど大規模で複雑なICの性能を半導体の性能によらずに、低価格の半導体と短納期で実現する性能検証システム及び最適解や構成を見いだすシステム、すなわち、電子処理の性能を自動で設定及び解析を行い、性能が最善となる各設定や動作の組み合わせを決定するシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明者は、上記課題を解決するため鋭意研究を行った結果、複数の条件から一つの数値の最大値を見つけるアルゴリズムを持つ最適化ソフトウエアと、前記電子機器デバイスからの複数の観測結果から一つの数値を算出する性能指標値化ソフトウエアを用いることで、上記課題を解決し得ることを見出し、本発明を完成するに至った。
すなわち、本発明は、以下の通りである。
【０００８】
（１）電子機器における性能最適化システムであって、
(i) 観測対象となる電子機器デバイスを備えた観測対象システムと、
(ii) 複数の条件から一つの数値の最大値又は最小値を見つけるアルゴリズムを有する最適化ソフトウエアと、前記電子機器デバイスからの複数の観測結果から一つの数値を算出する性能指標値化ソフトウエアと、前記電子機器デバイスの電子回路を制御するソフトウエアとを搭載するコンピュータと、
(iii) 前記観測されたデータを前記コンピュータに送るデータ取得回路と、
を備える前記システム。
（２）前記データ取得回路が前記観測対象システムに組み込まれた、（１）に記載のシステム。
（３）性能指標値は、ある処理の単位時間あたりのデータ転送量であるトラフィック及びある処理が始まり終わるまでに要する時間であるレイテンシー、並びにアクセスタイムを用いて性能指標値化ソフトウエアによって算出される、（１）に記載のシステム。
【発明の効果】
【０００９】
本発明のシステムにより、観測対象システムの性能を数値化し、最適なパラメーターを得ることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明のシステムを示すブロック図である。
【図２】性能指標値化ソフトウエアの処理例を示す図である。
【図３】観測対象システム及びデータ取得回路を示すブロック図である。
【図４】データ取得回路における処理例を示す図である。
【図５】データ取得回路における処理例を示す図である。
【図６】データ取得回路における処理例を示す図である。
【図７】データ取得回路における処理例を示す図である。
【図８】モニタデータのフレーム構成を示す図である。
【図９】PCとの通信方法を示す図である。
【図１０】最適化データを取得するための本発明のシステムの構成例を示す図である。
【発明を実施するための形態】
【００１１】
本発明は、電子機器のシステムの性能最適化に関し、集積回路（IC）、例えばSOC(System-on-a-Chip)、ASSP、CPUなどのシステムの機能の性能の評価及び最適化に関する。例えば、本発明は、Socとなったシステム、またはSocを含むシステム全体の機能の性能の評価と最適化に関する。
具体的には、本発明は、(i) 観測対象となる電子機器デバイスを備えた観測対象システムと、 (ii) 複数の条件から一つの数値の最大値を見つけるアルゴリズムを有する最適化ソフトウエアと、前記電子機器デバイスからの複数の観測結果から一つの数値を算出する性能指標値化ソフトウエアと、前記電子機器デバイスの電子回路を制御するソフトウエアとを搭載するコンピュータと、 (iii) 前記観測されたデータを前記コンピュータに送るデータ取得回路とを備えるシステムであり、複数の条件からアルゴリズムに従ってパラメータ設定を変更し、観測対象システムの動作プログラム実行によって得られるデータから算出される性能指標値を最適化ソフトウエアにフィードバックすることによって解決する。
但し、本発明において、前記データ取得回路は、プライオリティレジスタの設定を変更するようなハードウェアの条件や設定値を変更して調整して最適化のループを構成する条件を変更する回路も含まれる。
【００１２】
電子機器は、半導体のプロセスの微細化に伴い、一つのチップに統合されている。それにより、構成される回路と動作させるファームウエアは、順序の組み合わせ及び設定するパラメータが多くなり複雑化することで、内部動作の処理時間に関する見積もりや検証が困難になってきた。一般的にシステム性能の最適化は、一部の数値化された情報から設計者の経験によって探す作業として行われるため、システム全体の性能を数値化して評価することができなかった。さらに、性能の最適化は人の経験に基づいた手動の作業によるため膨大な時間を必要としていた。
本発明では、システム全体の性能、又はシステム全体の中から必要とされる一部の性能を数値化し、その数値が最高となる条件を自動的に発見する手法を提供するものである。
【００１３】
図1は、本発明のシステム10を示す図であり、観測対象システム900と、データ取得回路500と、コンピュータ400とを備える。
コンピュータ400には、観測対象システム(Soc)900のハードウエアパラメータ、並びに、動作させるソフトウエアの順序及び内容の組み合わせによる複数の条件から、一つの数値の最大値又は最小値を見つけるアルゴリズムを有する最適化ソフトウエア100と、複数の観測データから一つの性能指標値を算出する性能指標値化ソフトウエア200とを備える。データ取得回路500は、観測対象システム900からデータを取得し、コンピュータ400に取得データを送る。また、コンピュータ400には、データ取得回路500を制御するソフトウエアも組み込まれている。
【００１４】
従来の最適化アルゴリズムを持つアプリケーションは、ハードウエアと組み合わせて動作させることはなく、本発明では、最適化アルゴリズムを形成する動作のループの中にハードウエアの動作が含まれることを特徴とする。
最適化ソフトウエア100は、数理計画法として線形計画法、二次計画、非線形計画法などを処理するソフトウエアである。本発明においては、使用するアルゴリズムは限定されるものではないが、多くのケースで収束性が高い点で逐次近似最適化手法（具体的にはSimulated Annealing 法）を採用することが好ましい。
性能指標値化ソフトウエア200は、図２に示すperformance scoreboardに該当する。
性能指標値化ソフトウエア200の説明をする前に、指標値を決定の仕方を説明する。
【００１５】
本発明のシステムにける性能は、レイテンシー及びアクセスタイム、並びにトラフィックで定義される。
レイテンシー及びアクセスタイムは、ある処理が始まってから終わるまでに要する時間であり、トラフィックは、ある処理の単位時間あたりのデータ転送量である。
【００１６】
以下の例では、4つのBUSのポートの優先を、上記の定義にあてDMAの処理とする。
port0のDMA転送Read時間：最長maxRdTimes[0]、平均avgRdTimes[0], 最短minRdTimes[0]
port1のDMA転送Read時間：最長maxRdTimes[1]、平均avgRdTimes[1], 最短minRdTimes[1]
port2のDMA転送Read時間：最長maxRdTimes[2]、平均avgRdTimes[2], 最短minRdTimes[2]
port3のDMA転送Read時間：最長maxRdTimes[3]、平均avgRdTimes[3], 最短minRdTimes[3]
port0のDMA転送Read時間：最長max maxRdValids [0]、平均avgRdValids [0], 最短minRdValids [0]
port1のDMA転送Read時間：最長max maxRdValids [1]、平均avgRdValids [1], 最短minRdValids [1]
port2のDMA転送Read時間：最長max maxRdValids [2]、平均avgRdValids [2], 最短minRdValids [2]
port3のDMA転送Read時間：最長max maxRdValids [3]、平均avgRdValids [3], 最短minRdValids [3]
【００１７】
図３は、観測対象システム900及びデータ取得回路500を示すブロック図である。
図３において、観測対象システム900は、CPU（観測対象システム内のプロセッサ）、I.C.（接続回路）、M.P.M.C.（メモリーコントローラ）、Priority register、LED、DDR/SDRAM（メモリ）、DMA（ダイレクトメモリアクセス）、BRAM（ICに内蔵されるSRAM）を構成する。観測対象システム900はpriorty registerを持ち、priorty register は、port0からport3に該当するHP0からHP3のデータ転送の優先順位を決める。このレジスタは、0から16まで数値を持ち、他のportより数値が大きいときは、優先になるような回路となっている。
【００１８】
図３において、データ取得回路500は、B.M.U、B.M.U. controller & I/F、Dual port Memory及びUSB controllorによって構成される。
B.M.Uは、BUS measurement Unitの略であり、B.M.Uは、BUS上の制御線を観測、カウントする機能を有する。
B.M.U controllorは、B.M.Uで取得したデータをフレームデータフォーマットに乗せてUSB controllorに送る。また、B.M.Uが動作に必要な設定とdual port memoryにパラメータを読み書きする役割を持つ。
Dual port Memoryは、リード/ライトする端子を2組持っているメモリである。
USB controllorは、USBの転送を制御する回路である。
【００１９】
性能を決める数式例は、Total scoreが小さい値を性能が高いと定義した場合、以下の通り定義される。最適化は、複数の条件下でのレイテンシー及びトラフィックの集合で、個々の要素についてどれが一番望ましい値かを指標として順位をつける。その最適又は順位付けの判断の手法を以下に示す。
Time score = PriL0・maxRdTimes[0] + PriL1・maxRdTimes[1] +  PriL2・maxRdTimes[2] +  PriL3・maxRdTimes[3]
(PriL0から3は、それぞれの処理時間優先係数を表し、数字が大きいほど優先。)
【００２０】
Traff score = 理想の最大転送量 - (PriT0・maxRdValids [0] + PriT1・maxRdValids [1] +PriT2・maxRdValids [2] + PriT3・maxRdValids [3] )
(PriT0から3は、それぞれのトラフィック優先係数を表し、数字が大きいほど優先。)
Total score = Time score + Traff score
【００２１】
ここで、port0とport2のDMA処理時間を優先とし、係数を1.0、他を0.0とする。転送量については、優先順位に加えないとすると、
Time score =  maxRdTimes[0] + axRdTimes[2] 
となる。
Total score =Time scoreで取得した結果が最小となるように、priority registerの値を、最適化アルゴリズムが動作する。
【００２２】
具体的には、以下のデータを取得するケース1とケース2がある。
図４は、データ取得回路における処理例を示す図である（ケース１）。図４は、観測対象システム900内にあるAXI BUS Write ChannelからBUSの信号を図4のタイムチャート3番の部分の時間を測定していることを示す図である。図4のタイムチャート以外の表示は、コンピュータへ転送されたデータを表示していることを示す。 図４において、Latency（3番）は、簡略化された情報として取得される。回路構成が小さいメリットがある。
【００２３】
図５〜７は、データ取得回路における処理例を示す図である（ケース２）。
AXI BUS Write Channel 測定情報
B.M.U controller のフレームデータフォーマット
PCへのデータのフォーマットは以下の様に定義する。
1, コントローラには最大64個のB.M.Uを搭載する仕様とし、一つのB.M.Uから出力されるデータは、32bit x 16wordのデータとする。
2 ,出力されるデータは(32bit x 16word) x 64 アタッチメント の 32bit x 1024 word が観測データとなる。
3,モニタデータは一つのフレームによって構成される。
1フレームは、4160byteとなる。
【００２４】
フレーム構成は、図８の通り。
また、B.M.U controller には、設定レジスタを持つ。
レジスタ実施例
reg0 ・ リセット
reg1 ・ 単位時間を決めるレジスタ。-- ここに設定された時間B.M.Uで計測を行い数値を取得する。
reg2 ・ 測定開始、終了
【００２５】
USB controllerとして、EZ-USB FX2LPTM （サイプレス社）を使用することができる。
USB controllerを使用しなくても、PCとの通信を行うことができる（図９）。
【００２６】
シーケンス
1, リセット
リセットは、この場合はハードウェア（VARON）の初期化する信号である。
【００２７】
2,  PCからpriority registerを設定する（図３）。
設定方法は、PC（400）からVARONのチップに内蔵しているハードウェア（500）の部分により、データ取得回路500を制御するソフトウエアを利用して、900内にあるpriority 
registerに設定値をライトする。
【００２８】
3,  DUTのアプリケーションが起動し、最適化データを取得する（図１０）。
測定対象からデータを取得する。測定したい箇所のレイテンシやアクセスタイムやトラフィックを最適化する。この最適化するデータを最適化データという。
【００２９】
4,  あらかじめ定められたGoalまで最適化する。
測定するデータにより最適化の定義を変える。例えば、前記のようにレイテンシやアクセスタイムのときは最小値、トラフィックのときは最大値というように変える。レイテンシなど、測定値もソフトウェアの処理時間（CPUの動作時間）やバス、メモリなど複数の要因の合計で求められるケースも多く、それが上記のバスの例でパラメータがバスを使用する場合の調停で、どこからの信号を優先順位の上にするかが重要な条件となる場合、それを考慮して実際には何が望ましいかを決める必要がある。これらを加味して計算し、最大値もしくは最小値を決めるという処理を、前記数式を利用して決定する。
【産業上の利用可能性】
【００３０】
本発明のシステムは、電子機器における性能を最適化するために利用できる。
【符号の説明】
【００３１】
10：最適化システム
100：最適化ソフトウエア
200：性能指標値化ソフトウエア
400：コンピュータ
500：データ取得回路
900：観測対象システム
【図１】
2016099680.tif 000003
【図２】
2016099680.tif 000004
【図３】
2016099680.tif 000005
【図４】
2016099680.tif 000006
【図５】
2016099680.tif 000007
【図６】
2016099680.tif 000008
【図７】
2016099680.tif 000009
【図８】
2016099680.tif 000010
【図９】
2016099680.tif 000011
【図１０】
2016099680.tif 000012