(57)【要約】      （修正有）【課題】シミュレータを実現するための方法、装置、デバイス及び媒体を提供する。【解決手段】シミュレータを実現するための方法２００は、シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込むステップ２０２と、第１シミュレーションモジュールによる第１データの処理によって生成された第２データを、一括保存ファイルに書き込むステップ２０４と、一括保存ファイルから、シミュレータにおける、第２シミュレーションモジュールに使用される第２データを読み込むステップ２０６と、第２シミュレーションモジュールによる第２データの処理によって生成された第３データを、一括保存ファイルに書き込むステップ２０８と、を実行する。【選択図】図２
2020184301.tif 000002
【特許請求の範囲】
【請求項１】
シミュレータを実現するための方法であって、
シミュレータにおけるシミュレーションモジュールの入力データと出力データを一括的に保存するための一括保存ファイルから、前記シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込むステップであって、第１シミュレーションモジュールは、チップの第１機能をシミュレートするように配置されたステップと、
前記第１シミュレーションモジュールによる前記第１データの処理によって生成された第２データを、前記一括保存ファイルに書き込むステップと、
前記一括保存ファイルから、前記シミュレータにおける第２シミュレーションモジュールに使用される前記第２データを読み込むステップであって、前記第２シミュレーションモジュールは、前記チップの第２機能をシミュレートするように配置され、且つ、前記第１シミュレーションモジュールの後に実行されるように配置されたステップと、
前記第２シミュレーションモジュールによる前記第２データの処理によって生成された第３データを、前記一括保存ファイルに書き込むステップと、を含む方法。
【請求項２】
前記チップは、計算タスクの加速を実行するための人工知能（ＡＩ）チップであり、前記第１シミュレーションモジュールと前記第２シミュレーションモジュールのそれぞれは、データ再編モジュール、行列計算モジュール、アクティブ計算モジュール及びダイレクトメモリアクセス（ＤＭＡ）モジュールのうちの何れか一項であり、
前記シミュレータを用いて前記人工知能チップの設計の実行可能性を検証するステップをさらに含む、請求項１に記載の方法。
【請求項３】
制御フロープロファイルにおいて、前記シミュレータ内における、少なくとも前記第１シミュレーションモジュールと前記第２シミュレーションモジュールを含む複数のモジュールの実行順序を設定するステップと、
前記制御フロープロファイルに設定された実行順序に基づいて、前記複数のシミュレーションモジュールを順次実行するステップと、をさらに含む請求項１に記載の方法。
【請求項４】
前記制御フロープロファイルの前記実行順序を変更するステップと、
変更後の実行順序に基づいて、前記シミュレータ内の複数のシミュレーションモジュールの処理プロセスを調整するステップと、をさらに含む請求項３に記載の方法。
【請求項５】
前記制御フロープロファイルにおける前記実行順序を変更するステップは、
前記シミュレータにおいて一つ又は複数のシミュレーションモジュールが再配置されたことに応答して、前記制御フロープロファイルにおける前記実行順序を変更するステップを含み、
前記再配置は、シミュレーションモジュールの添加、削除、並び替えのうちの少なくとも一項を含む、請求項４に記載の方法。
【請求項６】
前記制御フロープロファイルにおいて、前記一括保存ファイルに対する前記シミュレータの各シミュレーションモジュールのデータ読み書き権限を設定するステップをさらに含む、請求項３に記載の方法。
【請求項７】
第２データを前記一括保存ファイルに書き込むステップは、
前記第１シミュレーションモジュールから、前記第２データを、前記第２シミュレーションモジュールに直接にドッキングすることなく、前記一括保存ファイルに伝達するステップと、
前記一括保存ファイルにおいて、前記第２データの種類、位置及び大きさを記録するステップと、を含む請求項１に記載の方法。
【請求項８】
前記一括保存ファイルから、前記シミュレータにおける第３シミュレーションモジュールに使用される前記第３データを読み込むステップであって、前記第３シミュレーションモジュールは、前記チップの第３機能をシミュレートするように配置されたステップのと、
前記第３シミュレーションモジュールによる前記第３データの処理によって生成された第４データを、前記一括保存ファイルに書き込むステップと、を含む請求項１に記載の方法。
【請求項９】
シミュレータを実現するための装置であって、
シミュレータにおけるシミュレーションモジュールの入力データと出力データを一括的に保存するための一括保存ファイルから、前記シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込むように配置されている第１読込モジュールであって、前記第１シミュレーションモジュールはチップの第１機能をシミュレートするように配置された第１読込モジュールと、
前記第１シミュレーションモジュールによる前記第１データの処理によって生成された第２データを、前記一括保存ファイルに書き込むように配置されている第１書込モジュールと、
前記一括保存ファイルから、前記シミュレータにおける第２シミュレーションモジュールに使用される前記第２データを読み込むように配置されている第２読込モジュールであって、前記第２シミュレーションモジュールは、前記チップの第２機能をシミュレートするように配置され、且つ、前記第１シミュレーションモジュールの後に実行されるように配置された第２読込モジュールと、
前記第２シミュレーションモジュールによる前記第２データの処理によって生成された第３データを、前記一括保存ファイルに書き込むように配置されている第２書込モジュールと、を含む装置。
【請求項１０】
前記チップは、計算タスクの加速を実行するための人工知能（ＡＩ）チップであり、前記第１シミュレーションモジュールと前記第２シミュレーションモジュールのそれぞれは、データ再編モジュール、行列計算モジュール、アクティブ計算モジュール及びダイレクトメモリアクセス（ＤＭＡ）モジュールのうちの何れか一項であり、
前記シミュレータを用いて前記人工知能チップの設計の実行可能性を検証するように配置されている検証モジュールをさらに含む、請求項９に記載の装置。
【請求項１１】
制御フロープロファイルにおいて、前記シミュレータにおける、少なくとも前記第１シミュレーションモジュールと前記第２シミュレーションモジュールを含む複数のモジュールの実行順序を設定するように配置されている設定モジュールと、
前記制御フロープロファイルに設定された実行順序に基づいて、前記複数のシミュレーションモジュールを順次実行するように配置されている実行モジュールと、をさらに含む請求項９に記載の装置。
【請求項１２】
前記制御フロープロファイルにおける前記実行順序を変更するように配置されている変更モジュールと、
変更後の実行順序に基づいて、前記シミュレータ内の複数のシミュレーションモジュールの処理プロセスを調整するように配置されている調整モジュールと、をさらに含む請求項１１に記載の装置。
【請求項１３】
前記変更モジュールは、前記シミュレータにおいて一つ又は複数のシミュレーションモジュールが再配置されたことに応答して、前記制御フロープロファイルにおける前記実行順序を変更する第２変更モジュールを含み、
前記再配置は、シミュレーションモジュールの添加、削除、並び替えのうちの少なくとも一項を含む、請求項１２に記載の装置。
【請求項１４】
前記制御フロープロファイルにおいて、前記一括保存ファイルに対する前記シミュレータの各シミュレーションモジュールのデータ読み書き権限を設定するように配置されている第２設定モジュールをさらに含む、請求項１１に記載の装置。
【請求項１５】
前記第１書込モジュールは、
前記第１シミュレーションモジュールから、前記第２データを、前記第２シミュレーションモジュールに直接にドッキングすることなく、前記一括保存ファイルに伝達するように配置されている伝達モジュールと、
前記一括保存ファイルにおいて、前記第２データの種類、位置及び大きさを記録するように配置されている記録モジュールと、を含む請求項９に記載の装置。
【請求項１６】
前記一括保存ファイルから、前記シミュレータにおける第３シミュレーションモジュールの前記第３データを読み込むように配置されている第３読込モジュールであって、第３シミュレーションモジュールは、前記チップの第３機能をシミュレートするように配置された第３読込モジュールと、
前記第３シミュレーションモジュールによる前記第３データの処理によって生成された第４データを、前記一括保存ファイルに書き込むように配置されている第３書込モジュールと、をさらに含む請求項９に記載の装置。
【請求項１７】
一つ又は複数のプロセッサと、
前記一つ又は複数のプロセッサにより実行されることで請求項１〜８のいずれか一項に記載の方法を実現する一つ又は複数のプログラムを記憶する記憶装置と、
を含む電子デバイス。
【請求項１８】
プロセッサにより実行されると、請求項１〜８のいずれか一項に記載の方法を実現するコンピュータプログラムを記憶する、コンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施例は、全体的にシミュレータ開発の分野に係り、具体的に、シミュレータを実現するための方法、装置、デバイス及びコンピュータ読取可能な記憶媒体にさらに係る。
【背景技術】
【０００２】
シミュレータは、通常、ソフトウェアを利用して開発されたシミュレーションプログラムであり、いくつかの特定のハードウェアプラットフォームをシミュレートすることができる。一般的なシミュレータとしては、例えば、コンピュータシミュレータ、運転シミュレータ、飛行シミュレータなどが挙げられる。チップとは、集積回路を含むシリコンウエハハードウェアであり、チップの開発中に、通常は、その対応する機能シミュレータを事前または同期に開発する必要がある。機能シミュレータは、主にチップのハードウェア設計の妥当性を検証し、ハードウェアの設計案の実行可能性を探るために用いられるとともに、開発者とテスト技術者のために、チップの開発、テスト及び検証のスピードを速めるソフトウェアプラットフォームを提供することができる。
【０００３】
シミュレータの開発という目標を達成するために、シミュレータとチップとの挙動及び能力をできるだけ一致させることが求められる。特に機能シミュレータは、通常、実行結果も機能もチップと全く同じであることが求められる。一般的に、正確なデータがなければ、チップの検証とテストを実施できず、絶対的な参考作用を果たすことはできない。しかし、機能の完全で且つ正確な機能シミュレータを達成するには、機能シミュレータとチップハードウエアとの間の校正を繰り返さなければならず、そして、シミュレータ自体のテストを繰り返すことが必要となり、多くの労力および時間がかかる。また、機能シミュレータは、設計者と開発者の便宜を図って、チップ設計案の探求に助力することが求められる。
【発明の概要】
【０００４】
本開示の実施例によれば、シミュレータを実現するための方法、装置、電子デバイス及びコンピュータ読取可能な記憶媒体を提供する。
【０００５】
本開示の第１方面において、シミュレータを実現するための方法であって、シミュレータにおけるシミュレーションモジュールの入力データと出力データを一括的に保存するための一括保存ファイルから、前記シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込むステップであって、第１シミュレーションモジュールは、チップの第１機能をシミュレートするように配置されたステップと、前記第１シミュレーションモジュールによる前記第１データの処理によって生成された第２データを、前記一括保存ファイルに書き込むステップと、前記一括保存ファイルから、前記シミュレータにおける第２シミュレーションモジュールに使用される前記第２データを読み込むステップであって、前記第２シミュレーションモジュールは、前記チップの第２機能をシミュレートするように配置され、且つ、前記第１シミュレーションモジュールの後に実行されるように配置されたステップと、前記第２シミュレーションモジュールによる前記第２データの処理によって生成された第３データを、前記一括保存ファイルに書き込むステップと、を含む方法を提供する。
【０００６】
本開示の第２方面において、シミュレータを実現するための装置であって、
シミュレータにおけるシミュレーションモジュールの入力データと出力データを一括的に保存するための一括保存ファイルから、前記シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込むように配置されている第１読込モジュールであって、前記第１シミュレーションモジュールはチップの第１機能をシミュレートするように配置された第１読込モジュールと、前記第１シミュレーションモジュールによる前記第１データの処理によって生成された第２データを、前記一括保存ファイルに書き込むように配置されている第１書込モジュールと、前記一括保存ファイルから、前記シミュレータにおける第２シミュレーションモジュールに使用される前記第２データを読み込むように配置されている第２読込モジュールであって、前記第２シミュレーションモジュールは、前記チップの第２機能をシミュレートするように配置され、且つ、前記第１シミュレーションモジュールの後に実行されるように配置された第２読込モジュールと、前記第２シミュレーションモジュールによる前記第２データの処理によって生成された第３データを、前記一括保存ファイルに書き込むように配置されている第２書込モジュールと、を含む装置を提供する。
【０００７】
本開示の第３方面において、一つ又は複数のプロセッサと、一つ又は複数のプログラムを記憶する記憶装置と、を含む電子デバイスを提供する。一つ又は複数のプログラムは、一つ又は複数のプロセッサにより実行されることで、電子デバイスが本開示の実施例による方法やプロセスを実現する。
【０００８】
本開示の第４方面において、プロセッサにより実行される場合に、本開示の実施例による方法やプロセスを実現するコンピュータプログラムを記憶するコンピュータ読取可能な記憶媒体を提供する。
【０００９】
本開示の発明の概要に記載の内容は、本開示の実施例の肝心な特徴や重要な特徴を限定することを目指しているものではなく、本開示の範囲を制限するためにも使用されないことを、理解すべきである。本開示の他の特徴は、以下の説明によって理解しやすくなる。
【図面の簡単な説明】
【００１０】
本開示の各実施例の上記特徴と他の特徴、長所及び方面について、図面と合わせるとともに、以下の詳細な説明を参照することによりもっと明らかになる。図面において、同じ又は類似する参照符号は、同じ又は類似する素子を示す。
【図１】従来の機能シミュレータのアーキテクチャの模式図を示す。
【図２】本開示の実施例によるシミュレータを実現するための方法のフローチャートを示す。
【図３】本開示の実施例によるチップをシミュレートするための機能シミュレータのアーキテクチャ模式図を示す。
【図４】本開示の実施例によるチップをシミュレートするための他の機能シミュレータのアーキテクチャの模式図を示す。
【図５】本開示の実施例による機能シミュレータ内のシミュレーションモジュールの実行順序を調整するための模式図を示す。
【図６】本開示の実施例による機能シミュレータへのシミュレーションモジュールの削除及び追加の模式図を示す。
【図７】本開示の実施例によるシミュレータを実現するための装置のブロック図を示す。
【図８】本開示のいくつかの実施例を実施可能な電子デバイスの模式的なブロック図を示す。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本開示の実施例をより詳細に説明する。図面には、本開示のいくつかの実施例が示されているが、本開示は、様々な形態によって実現されることができ、ここで説明した実施例に限定されると解釈されるべきではなく、逆に、これらの実施例を提供することは、本開示をより徹底的かつ完全に理解するためであることを、理解すべきである。本開示の図面及び実施例は、本開示の保護範囲を制限するためのものではなく、例示的な役割のためにのみ使用される。
【００１２】
本開示の実施例の記載において、用語「含む」及び類似する用語は、開放的な「含む」、即ち、「含むが、限定されない」と理解されるべきである。用語「基づく」は、「少なくとも基づく」と理解されるべきである。用語「一つの実施例」又は「該実施例」は、「少なくとも一つの実施例」と理解されるべきである。用語「いくつかの実施例」は、「少なくともいくつかの実施例」と理解されるべきである。以下には、他の明確的な定義と暗黙的な定義も含まれる可能性がある。
【００１３】
図１には、従来の機能シミュレータのアーキテクチャの模式図１００が示されている。図１に示すように、機能シミュレータ１０１は、複数のシミュレーションモジュール１１０、１２０、１３０、１４０、及び１５０を含み、これらのシミュレーションモジュールは、ハードウェアチップのある機能をそれぞれに実現することができる。機能シミュレータ１０１は、受け付けた入力１０５に基づいて、各シミュレーションモジュールの処理によって、対応する出力１５５を得ることができる。通常は、これらのシミュレーションモジュール間のデータ流れの順序が一定であるので、各シミュレータモジュールでは、それとインタラクトする前後のシミュレーションモジュールを定義する。例えば、シミュレーションモジュール１２０では、入力データをシミュレーションモジュール１１０から受信し、シミュレーションモジュール１１０にドッキングすることを定義するとともに、シミュレーションモジュール１２０では、出力データをシミュレーションモジュール１３０に伝達し、シミュレーションモジュール１３０にもドッキングすることを定義する必要がある。これにより、各シミュレーションモジュールでは、それにドッキングする入力データモジュールと出力データモジュールを定義する必要があるが、あるシミュレーションモジュールの入力データモジュール及び／又は出力データモジュールを調整する必要がある場合に、このモジュールで再定義する必要がある。
【００１４】
このため、従来のシミュレータの開発中に、通常は、チップハードウェアの具体的な設計に従って定義して開発する。例えば、チップは、どのような機能モジュールを有すると、対応する機能シミュレータにも相応的なシミュレーションモジュールを有する。機能シミュレータの内部の各シミュレーションモジュールは、ソフトウェアプログラムのインターフェースを介して、緊密に接続されており、また、各シミュレーションモジュールのデータ流れの順序はほとんど一定であり、各シミュレーションモジュール間は、いずれもインターフェースを介して接続され、データをインタラクトする。しかしながら、このような緊密な結合設計は、シミュレーションモジュールを追加、削除、及び／又は並び替えるたびに、多くのシミュレーションモジュールを変更する必要があることで、機能シミュレータの開発の柔軟性が低く、調整が煩雑で、開発効率が低くなる。従って、既存の技術では、ハードウェアチップをシミュレートするためのチップシミュレータの開発効率が低く、拡張性が低いという問題がある。
【００１５】
そのため、本開示の実施例は、チップシミュレータに適用するモジュール化高速開発案を提案する。本開示の実施例のチップシミュレータによると、各シミュレーションモジュールは、一括保存ファイルにデータをドッキングする一方、各モジュール間にデータをドッキングすることはない。これは、シミュレーションモジュールの任意の組み合わせと実行順序の調整に役立つ。これにより、チップシミュレータの開発効率を向上し、チップシミュレータの拡張性を向上することができる。
【００１６】
また、発明者は、普通のチップと比べて、人口知能（ＡＩ）チップのビジネスサポートの変化が速くて、インタフェースの変更が柔軟であることを発見した。これに対して、インタフェースの変更は通常、関連するシミュレーションモジュールとデータ処理プロセスの変更に触れる。なお、ディープラーニング  アルゴリズムの変化は速く、分岐も多く、異なる処理シーンでは異なる機能モジュールと特定のデータパスが必要である。このため、ＡＩチップにとって、機能シミュレータのモジュール化が一層必要であり、且つ、柔軟な設計と開発という目標を達成する必要がある。従って、ＡＩチップのシミュレータに対して、さらに、階層、モジュール別にノード結合の設計を行う必要があり、新しい変更と設計要求を迅速にサポートすることができる。以下、図２〜８を参照して、本開示のいくつかの実施例の実現を説明する。
【００１７】
図２には、本開示の実施例によるシミュレータを実現するための方法２００のフローチャートが示されている。図２の方法２００の説明を便利にするために、図３の本開示の実施例によるチップをシミュレートするための機能シミュレータのアーキテクチャを参照しながら説明する。
【００１８】
ボックス２０２において、シミュレータにおける各シミュレーションモジュールの入力データと出力データを一括的に保存するための一括保存ファイルから、前記シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込む。ここで、第１シミュレーションモジュールは、チップの第１機能をシミュレートするためのものである。例えば、図３には、本開示の実施例によるチップをシミュレートするための機能シミュレータ３０１のアーキテクチャの模式図３００が示されている。矢印３１１に示すように、例えば行列計算のようなチップのある機能をミュレーション可能であるシミュレーションモジュール３１０は、データ３３１を一括保存ファイル３３０から読み込む。本開示の実施例では、一括保存ファイル３３０は、各シミュレーションモジュールの入出力データを一括的に保存することができ、各シミュレーションモジュールのために一括的なデータ・ドッキングインタフェースを提供することにより、各シミュレーションモジュール間の直接なデータのドッキングが回避される。いくつかの実施例では、データ３３１は、機能シミュレータ３０１の外部からの入力であってもよい。代替のものとして、データ３３１は、機能シミュレータ３０１内の他のシミュレーションモジュール（図示せず）が発生した出力結果であってもよい。
【００１９】
ボックス２０４において、第１シミュレーションモジュールによる第１データの処理によって生成された第２データを、一括保存ファイルに書き込む。例えば、図３を参照すると、矢印３１２に示すように、シミュレーションモジュール３１０は、データ３３１に対し処理（例えば、行列計算）を行って、データ３３２を生成し、一括保存ファイル３３０に送信する。
【００２０】
ボックス２０６において、一括保存ファイルから、シミュレータにおける、第２シミュレーションモジュールに使用される第２データを読み込む。ここで、第２シミュレーションモジュールは、チップの第２機能をシミュレートするためのものであって、第１シミュレーションモジュールの後に実行される。例えば、図３を参照すると、矢印３１３に示すように、アクティブ計算のようなチップのある機能をミュレーション可能であるシミュレーションモジュール３２０は、データ３３２を一括保存ファイル３３０から読み込む。シミュレーションモジュール３２０は、シミュレーションモジュール３１０の後に実行されるように事前に配置されていので、シミュレーションモジュール３２０が読み込んだ入力データ３３２は、シミュレーションモジュール３１０の出力結果（即ち、出力データ）である。また、第１シミュレーションモジュールと第２シミュレーションモジュールは、ハードウェアチップの様々の機能をそれぞれにシミュレートすることができることを、理解すべきである。
【００２１】
ボックス２０８において、第２シミュレーションモジュールによる第２データの処理によって生成された第３データを、一括保存ファイルに書き込む。例えば、図３を参照すると、矢印３１４に示すように、シミュレーションモジュール３２０は、データ３３２に対し（アクティブ計算のような）処理を行って、データ３３３を生成し、一括保存ファイル３３０に送信する。
【００２２】
従って、本開示の実施例の方法２００によると、チップシミュレータ内の各シミュレーションモジュールは、いずれも一括保存ファイルにドッキングするが、各モジュール間にデータは直接にインタラクトされることはない。このように、チップシミュレータ内の各モジュールは、いずれもどのように一括保存ファイルとドッキングするかしか考慮しないので、後のモジュールの任意の組み合わせとモジュール実行順序の調整に役立つ。これにより、チップシミュレータの開発効率及び拡張性を向上させる。
【００２３】
また、本開示による実施例において、シミュレーションモジュール３１０は、データ３３１に対する計算を完了した後に、計算結果を、次のモジュールに直接に伝達することではなく、一括保存ファイル３３０に伝達する。いくつかの実施例において、データ３３２を一括保存ファイル３３０に書き込む場合に、記録データ３３２の種類、位置や大きさ等の情報を一括保存ファイル３３０に記録することができる。
【００２４】
本開示の実施例において、機能シミュレータの各シミュレーションモジュールは、いずれもデータに対して、データの再編、データの計算及びデータの搬送等を含む処理能力を有する。シミュレーションモジュール毎にデータを処理した後に、結果を一括保存ファイルに書き込み、データの種類、データの位置、データの大きさ等の情報を明記する。他のシミュレーションモジュールがデータを読み込む必要がある場合に、保存ファイルからデータを一括的に読み込み、一括保存ファイルのデータ設定情報に基づいて解析し、データを自分の機能モジュールに取得して操作し、計算結果を再度一括保存ファイルに書き返すとともに、データの種類、データの位置、データの大きさ等の情報を明記する。このように、各シミュレーションモジュール間に、いずれかのプログラムのドッキングもない。
【００２５】
上記のように、各シミュレーションモジュールは、他のシミュレーションモジュールはと独立して、一括保存ファイルに対するデータの解決と読み込みにのみ関心を持つことができる。シミュレーションモジュールは、関心するデータを一括保存ファイルから読み込んで、次に計算と処理を行い、その後、結果を一括保存ファイルに書き返し、後続のミュレーションに再利用される。各シミュレーションモジュールの開発とテストは、インタフェースとして一つの一括保存ファイルがあり、自分のモジュール内部のプログラムの開発とデバッグに注目すればよく、後続は任意のシミュレーションモジュールと論理的順序の調整及び協力を行うことができる。
【００２６】
本発明の発明者は、現在のＡＩチップの設計が、通常の汎用チップと少し違っていることを認識した。ＡＩチップは、汎用な計算処理のために設計されるものではなく、実際のアルゴリズムとソフトウェアアプリケーションにより近い。従って、ＡＩチップは、実際のビジネスシーンに対して、具体的なアルゴリズムの加速、アプリケーションのスピードアップのような問題を解決する必要がある。ＡＩチップの設計と要求は、実際の業務の発展、市場の需要に伴ってこそ、アプリケーションにサービスする目的を達成することができる。ソフトウェアアルゴリズムの絶え間ない変化と反復の過程において、ボトムＡＩチップを必要として、迅速な設計と検証方法を作り、評価と設計を行う。この場合に、ＡＩチップの機能シミュレータにより実現されることが多き。これは、ハードウェア開発のサイクルが長く、ソフトウェア機能シミュレータによる迅速な開発と方案の実現可能性、及び設計案の正確性の検証を必要するためである。これは、ソフトウェア機能シミュレータも迅速かつ柔軟に実現し、実際のビジネスシーンをサポートしなければならないことを要求した。
【００２７】
本開示の実施例の方法によると、各シミュレーションモジュールの計算順序は、任意的に組み合わせることができるので、ＡＩチップの設計シミュレーションの要求によりよくマッチすることができる。ＡＩアルゴリズムの変化と反復が速く、また、アルゴリズム中の各シミュレーションモジュールの順序と計算関係も柔軟に変化することができる。本開示の実施例は、トップアプリケーションの変化を満たすように、各機能シミュレータのシミュレーションモジュールを任意的に配置し、機能シミュレータの実行順序を調整することができる。この過程中に、本開示の実施例による機能モジュールは、ほとんど変更する必要がなく、開発とデバッグの作業量を著しく減少し、ＡＩチップを助けて設計の実行可能性を迅速に検証することができる。
【００２８】
いくつかの実施例において、本開示の実施例がシミュレートしたチップは、計算タスクの加速を実行するためのＡＩチップであってもよく、ＡＩチップは、例えば、データ再編モジュール、行列計算モジュール、アクティブ計算モジュール及びダイレクトメモリアクセス（ＤＭＡ）モジュール等のような各種の計算モジュールを含んでもよい。このように、本開示の実施例の機能シミュレータを使用してＡＩチップ設計の実行可能性を検証して、ＡＩチップ設計の検証要求を効果的に解決することができる。
【００２９】
図４には、本開示の実施例によるチップをシミュレートするための他の機能シミュレータ４０１のアーキテクチャの模式図４００が示されている。機能シミュレータ４０１は、複数のシミュレーションモジュール４１０、４２０、４３０、４４０及び４５０と、制御フロープロファイル４６０と、一括保存ファイル４７０を含み、その中、各シミュレーションモジュールは、チップ（例えば、ＡＩチップ）のある機能をシミュレートするためのものである。
【００３０】
図４を参照すると、制御フロープロファイル４６０は、シミュレータにおける複数のシミュレーションモジュール間の実行順序、例えば、実行順序４６５を設定するためのものである。前記実行順序４６５では、機能シミュレータ４０１の起動後に、先ず、シミュレーションモジュール４１０を実行し、次にシミュレーションモジュール４２０を実行し、次にシミュレーションモジュール４３０を実行し、次にシミュレーションモジュール４４０を実行し、次にシミュレーションモジュール４５０を実行する、という機能シミュレータ４０１内の各シミュレーションモジュールのプロセスの実行を指示する。つまり、機能シミュレータ４０１は、制御フロープロファイル４６０に設定されている実行順序に基づいて、複数のシミュレーションモジュールを順次実行する。一括保存ファイル４７０は、各シミュレーションモジュールの入出力データを一括的に保存することができ、各シミュレーションモジュールのために一括的なデータ・ドッキング  インタフェースを提供することにより、各シミュレーションモジュール間のデータのドッキングが回避される。従って、各シミュレーションモジュールの実行中に、全ての計算プロセスを完了するまで、データを一括保存ファイル４７０から読み込んで、処理結果を一括保存ファイル４７０に一括的に書き込む。
【００３１】
図４を参照し続けると、機能シミュレータは、外部からの入力４０５を受信して、一括保存ファイル４７０に入力記憶又はキャッシュする。次に、シミュレーションモジュール４１０は、実行順序４６５に従って、先ずデータを一括保存ファイル４７０から読み込み、処理が完了した後に一括保存ファイル４７０に相応的な結果を書き込む。シミュレーションモジュール４２０は、一括保存ファイル４７０からデータを読み込んで実行結果を書き込み、シミュレーションモジュール４３０は、一括保存ファイル４７０からデータを読み込んで実行結果を書き込み、シミュレーションモジュール４４０は、一括保存ファイル４７０からデータを読み込んで実行結果を書き込み、シミュレーションモジュール４５０は、一括保存ファイル４７０からデータを読み込んで実行結果を書き込む、ように順次実行する。全てのシミュレーションモジュールは、処理を完了した後に、出力４５５として、最終のデータを一括保存ファイル４７０から外部に出力する。
【００３２】
図５には、本開示の実施例によるシミュレーションモジュールの実行順序を調整するための模式図５００が示されている。例えば、制御フロープロファイルの実行順序を変更し、変更後の実行順序に基づいてシミュレータにおける複数のシミュレーションモジュールの処理プロセスを調整することができる。図５に示すように、新しい設計をテストして、シミュレーションモジュール４３０とシミュレーションモジュール４４０の実行順序を交換する必要がある場合に、制御フロープロファイルにおいて実行順序４６５を変更するだけでよい。次に、機能シミュレータ４０１は、動作時に変更後の実行順序４６５に従って変更後の処理プロセスを実行する。従って、本開示の実施例によると、機能シミュレータ４０１における各シミュレーションモジュールの実行順序を調整する必要がある場合に、シミュレーションモジュール自体のコード又はインタフェース接続を変更する必要がなく、制御フロープロファイル４６０により設定することで、機能シミュレータ４０１におけるモジュールの実行順序を任意に変更することができ、チップシミュレータの開発効率を著しく向上させる。
【００３３】
代替のもの又は付加のものとして、機能シミュレータ中にシミュレーションモジュールを削除及び／又は追加する場合に、制御フロープロファイルに実行順序を変更することができる。図６には、本開示の実施例による機能シミュレータにアナログモジュールを削除したり、アナログモジュールを追加するための模式図６００が示されている。図６に示すように、図４、図５と比べて、機能シミュレータ４０１には、シミュレーションモジュール４３０、４４０、４５０が削除されるとともに、新しいシミュレーションモジュール５３０、５４０（例えば、新しいシミュレーション機能を有する新しいシミュレーションモジュール）を追加した。相応的に、制御フロープロファイル４６０中の実行順序４６５が変更される。そして、機能シミュレータ４０１は、変更後の実行順序４６５に従って処理プロセスのシミュレーションを実行する。つまり、先ず、シミュレーションモジュール４１０を実行し、次にシミュレーションモジュール４２０を実行し、次にシミュレーションモジュール５３０を実行し、次にシミュレーションモジュール５４０を実行する。
【００３４】
本開示の実施例によると、機能シミュレータの各シミュレーションモジュールの開発者は、自体の内部モジュールの開発とデバッグにのみ注目すればよく、各シミュレーションモジュールは、他のシミュレーションモジュールと独立することができ、開発者は、一括保存ファイルのデータに対する解析と読み込みにのみ関心を持つだけでよい。各シミュレーションモジュールは、一括保存ファイルから所要のデータを読み込んで、計算、処理して、結果を一括保存ファイルに書き返すことにより、後の他のシミュレーションモジュールのために使用される。これに対して、機能シミュレータのアーキテクチャ設計者は、シミュレータ全体の枠組みを任意に構築し、計算パスとデータ処理の流れを調整することができる。つまり、各シミュレーションモジュールのプログラムコードを変更する必要がない場合に、アーキテクチャ設計者は、各シミュレーションモジュールを任意に組み合わせることができ、例えば、追加、置換、又は削除等にして様々な方法及び組み合わせを試みる。このように、機能シミュレータの開発とデバッグの作業量を効果的に低減し、チップ全体（例えば、ＡＩチップなど）の設計と検証を加速させることができる。
【００３５】
いくつかの実施例では、さらに、制御フロープロファイルにおいて、一括保存ファイルに対するシミュレータ内の各シミュレーションモジュールのデータ読み書き権限を設定することができる。このように、各シミュレーションモジュールは、他のデータを読み取ることができず、一部のデータだけを読み取ることができることで、シミュレータの安全性と信頼性を確保する。
【００３６】
従って、本開示の実施例の方法によると、各アナログモジュールの実行順序は任意の組み合わせることができ、ＡＩチップの設計探索により良くマッチすることができる。ＡＩアルゴリズムの変化と反復が速く、また、アルゴリズム中の各シミュレーションモジュールの順序と計算関係も柔軟に変化することができる。このため、トップアプリケーションの変化を満たすように、各機能シミュレータのモジュールを任意的に配置し、機能シミュレータの実行順序を調整することができる。この過程中に、本開示の実施例の機能モジュールは、開発とデバッグの作業量を著しく減少し、ＡＩチップを助けて設計の実行可能性を迅速に検証することができる。
【００３７】
図７には、本開示の実施例によるシミュレータを実現するための装置７００のブロック図が示されている。図７に示すように、装置７００は、第１読込モジュール７１０、第１書込モジュール７２０、第２読込モジュール７３０及び第２書込モジュール７４０を含む。第１読込モジュール７１０は、シミュレータにおけるシミュレーションモジュールの入力データと出力データを一括的に保存するための一括保存ファイルから、シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込むように配置されている。第１シミュレーションモジュールは、チップの第１機能をシミュレートするためのものである。第１書込モジュール７２０は、第１シミュレーションモジュールによる前記第１データの処理によって生成された第２データを、一括保存ファイルに書き込むように配置されている。第２読込モジュール７３０は、一括保存ファイルから、シミュレータにおける第２シミュレーションモジュールの第２データを読み込むように配置されている。第２シミュレーションモジュールは、チップの第２機能をシミュレートするためのであって、第１シミュレーションモジュールの後に実行される。第２書込モジュール７４０は、第２シミュレーションモジュールによる第２データの処理によって生成された第３データを、一括保存ファイルに書き込むように配置されている。
【００３８】
いくつかの実施例において、チップは、計算タスクの加速を実行するための人工知能（ＡＩ）チップであり、第１シミュレーションモジュールと第２シミュレーションモジュールのそれぞれは、データ再編モジュール、行列計算モジュール、アクティブ計算モジュール及びダイレクトメモリアクセス（ＤＭＡ）モジュールのうちの何れか一項であり、装置７００は、シミュレータを用いて人工知能チップの設計の実行可能性を検証するように配置されている検証モジュールをさらに含む。
【００３９】
いくつかの実施例において、装置７００は、制御フロープロファイルにおいて、シミュレータにおける、少なくとも第１シミュレーションモジュールと第２シミュレーションモジュールを含む複数のモジュールの実行順序を設定するように配置されている設定モジュールと、制御フロープロファイルに設定された実行順序に基づいて、複数のシミュレーションモジュールを順次実行するように配置されている実行モジュールと、をさらに含む。
【００４０】
いくつかの実施例において、装置７００は、制御フロープロファイルにおける実行順序を変更するように配置されている変更モジュールと、変更後の実行順序に基づいて、シミュレータ内の複数のシミュレーションモジュールの処理プロセスを調整するように配置されている調整モジュールと、をさらに含む。
【００４１】
いくつかの実施例において、変更モジュールは、シミュレータにおいて一つ又は複数のシミュレーションモジュールを再配置することに応答して、制御フロープロファイルにおける実行順序を変更する第２変更モジュールを含み、前記再配置は、シミュレーションモジュールの添加、削除、並び替えのうちの少なくとも一項を含む。
【００４２】
いくつかの実施例において、装置７００は、制御フロープロファイルにおいて、一括保存ファイルに対するシミュレータ内の各シミュレーションモジュールのデータ読み書き権限を設定するように配置されている第２設定モジュールをさらに含む。
【００４３】
いくつかの実施例において、第１書込モジュール７１０は、第１シミュレーションモジュールから第２シミュレーションモジュールに第２データを直接にドッキングすることなく、第１シミュレーションモジュールから前記一括保存ファイルに第２データを伝達するように配置されている伝達モジュールと、一括保存ファイルにおいて、第２データの種類、位置及び大きさを記録するように配置されている記録モジュールと、を含む。
【００４４】
いくつかの実施例において、装置７００は、一括保存ファイルから、前記シミュレータにおける、チップの第３機能をシミュレートするための第３シミュレーションモジュールに使用される第３データを読み込むように配置されている第３読込モジュールと、第３シミュレーションモジュールによる第３データの処理によって生成された第４データを、一括保存ファイルに書き込むように配置されている第３書込モジュールと、をさらに含む。
【００４５】
図７に示される第１書込モジュール７１０、第１書込モジュール７２０、第２読込モジュール７３０及び第２書込モジュール７４０は、一つ又は複数の電子デバイスに含まれてもよいことを、理解すべきである。また、図７に示されるモジュールは、本開示の実施例を参照した方法やプロセスにおけるステップや動作を実行可能であることを、理解すべきである。従って、本開示の実施例は、チップシミュレータを開発する過程中に、各シミュレーションモジュールは、一括保存ファイルにデータをドッキングする一方、各モジュール間にデータをドッキングすることはない。これは、シミュレーションモジュールの任意の組み合わせと実行順序の調整に役立つ。これにより、チップシミュレータの開発効率を向上することができる。
【００４６】
図８には、本開示の実施例を実施可能なデバイス８００の模式的なブロック図が示されている。デバイス８００は、本開示に説明されたシミュレータを実現するための装置７００又は電子デバイス８００に用いられることができる。図面に示すように、デバイス８００は、中央処理ユニット（ＣＰＵ）８０１を含み、読み出し専用メモリ（ＲＯＭ）８０２に記憶されているコンピュータプログラム又は記憶ユニット８０８からランダムアクセスメモリ（ＲＡＭ）８０３に取り込まれたコンピュータプログラムにより各種の適宜な動作及び処理を実行することができる。ＲＡＭ８０３においては、デバイス８００の操作に必要な各種のプログラム及びデータが記憶されている。ＣＰＵ８０１と、ＲＯＭ８０２と、ＲＡＭ８０３とは、バス８０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース８０５もバス８０４に接続されている。
【００４７】
キーボード、マウスなどを含む入力ユニット８０６と、例えば様々な液晶ディスプレイ及びスピーカーなどの出力ユニット８０７と、例えば磁气ディスク、ディスク等の記憶ユニット８０８と、例えばインターネットカード、モデム、無線通信トランシーバ等の通信ユニット８０９とのような、デバイス８００の複数の部材は、Ｉ／Ｏインターフェース８０５に接続されている。通信ユニット８０９は、デバイス８００がインタネットのようなコンピュータ・ネットワーク及び／又は各種の電信ネットワークを経由して情報・データを他のデバイスと交換することを許可する。
【００４８】
処理ユニット８０１は、例えば方法２００のような、上記に記載された各方法やプロセスを実行する。例えば、いくつかの実施例において、方法は、例えば記憶ユニット８０８等の機械読込可能な媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現することができる。いくつかの実施例において、コンピュータプログラムの一部または全部は、ＲＯＭ８０２および／または通信ユニット８０９を介してデバイス８００にロードおよび／またはインストールされることができる。コンピュータプログラムがＲＡＭ８０３にロードされ、ＣＰＵ８０１によって実行される場合に、上記に記載された方法の一つまたは複数の動作やステップを実行することができる。代替のものとして、他の実施例において、ＣＰＵ８０１は、他の任意の適切な方法（例えば、ファームウェアを介して）によって、方法を実行するように構成されてもよい。
【００４９】
本明細書に記載された上記の機能は、少なくとも部分的に一つ又は複数のハードウェア論理部材によって実行されてもよい。例えば、使用可能なモデルタイプのハードウェア論理部材は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途用標準品（ＡＳＳＰ）、オンチップシステム（ＳＯＣ）、プログラム可能論理デバイス（ＣＰＬＤ）等を含むが、それに限定されない。
【００５０】
本開示の方法を実施するためのプログラムコードは、１つまたは複数のプログラミング言語の任意の組合せを用いて作成することができる。これらのプログラムコードは、汎用のコンピュータ、専用のコンピュータ又は他のプログラム可能データ処理装置のプロセッサまたはコントローラに提供されることで、プログラムコードは、プロセッサまたはコントローラによって実行される場合に、フローチャートおよび／またはブロック図に規定された機能／動作が実行される。プログラムコードは完全に機器上で実行され、部分的に機器上で実行され、独立的なソフトウェアパッケージとして機器上で実行され且つ部分的にリモート機器上で実行され、またはリモート機器やサーバ上で完全に実行されることができる。
【００５１】
本開示の明細書では、機械可読媒体は、コマンド実行システム、装置またはデバイスの使用またはコマンド実行システム、装置またはデバイスと関連して使用されるプログラムを包含または記憶することができる有形の媒体であってもよい。機器可読媒体は、機器可読信号媒体や機器可読記憶媒体であってもよい。機器可読媒体は、電気、磁気、光、電磁気、赤外線、又は半導体システム、装置又はデバイス、あるいは任意の上記の組み合わせであってもよいが、これに限定されない。機器可読記憶媒体のより具体的な例示として、１つ又は複数の導線に基づく電気的な接続、携帯型のコンピュータディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、光ケーブル、携帯型のコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記の任意の適切な組み合わせを含むが、これらに限定されない。
【００５２】
特定の順序で各動作やステップを説明したが、このような動作やステップは、示された特定の順序又は順次実行されるように要求されるか、あるいは、図示された全ての動作やステップが所望の結果を得るために実行されるべきであることが、理解されるべきである。一定の環境では，マルチタスクと並列処理が有利である可能性がある。同様に、上記の説明にはいくつかの具体的な実現の詳細が含まれているが、これらは本開示の範囲に対する制限として解釈されてはならない。個別の実施例のコンテキストで説明されたいくつかの特徴は、単一のインプリメンテーションにおいても組み合わせて実現されることができる。反対に、単一のインプリメンテーションのコンテキストで説明された様々な特徴は、単独で、または任意の適切なサブグループで、複数のインプリメンテーションにおいて実現されることができる。
【００５３】
本開示の実施例は、構造的特徴および／または方法的論理動作に特定の言語を用いて説明されているが、添付した特許請求の範囲に規定された主題は、上記の特定の特徴または動作に限定されないことを理解すべきである。反対に、上記に記載された特定の特徴および動作は、特許請求の範囲を実現するための例示的な形態にすぎない。
【図１】
2020184301.tif 000003
【図２】
2020184301.tif 000004
【図３】
2020184301.tif 000005
【図４】
2020184301.tif 000006
【図５】
2020184301.tif 000007
【図６】
2020184301.tif 000008
【図７】
2020184301.tif 000009
【図８】
2020184301.tif 000010
【手続補正書】
【提出日】令和2年5月11日(2020.5.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
シミュレータを実現するための方法であって、
シミュレータにおけるシミュレーションモジュールの入力データと出力データを一括的に保存するための一括保存ファイルから、前記シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込むステップであって、第１シミュレーションモジュールは、チップの第１機能をシミュレートするように配置されたステップと、
前記第１シミュレーションモジュールによる前記第１データの処理によって生成された第２データを、前記一括保存ファイルに書き込むステップと、
前記一括保存ファイルから、前記シミュレータにおける第２シミュレーションモジュールに使用される前記第２データを読み込むステップであって、前記第２シミュレーションモジュールは、前記チップの第２機能をシミュレートするように配置され、且つ、前記第１シミュレーションモジュールの後に実行されるように配置されたステップと、
前記第２シミュレーションモジュールによる前記第２データの処理によって生成された第３データを、前記一括保存ファイルに書き込むステップと、を含む方法。
【請求項２】
前記チップは、計算タスクの加速を実行するための人工知能（ＡＩ）チップであり、前記第１シミュレーションモジュールと前記第２シミュレーションモジュールのそれぞれは、データ再編モジュール、行列計算モジュール、アクティブ計算モジュール及びダイレクトメモリアクセス（ＤＭＡ）モジュールのうちの何れか一項であり、
前記シミュレータを用いて前記人工知能チップの設計の実行可能性を検証するステップをさらに含む、請求項１に記載の方法。
【請求項３】
制御フロープロファイルにおいて、前記シミュレータ内における、少なくとも前記第１シミュレーションモジュールと前記第２シミュレーションモジュールを含む複数のモジュールの実行順序を設定するステップと、
前記制御フロープロファイルに設定された実行順序に基づいて、前記複数のシミュレーションモジュールを順次実行するステップと、をさらに含む請求項１に記載の方法。
【請求項４】
前記制御フロープロファイルの前記実行順序を変更するステップと、
変更後の実行順序に基づいて、前記シミュレータ内の複数のシミュレーションモジュールの処理プロセスを調整するステップと、をさらに含む請求項３に記載の方法。
【請求項５】
前記制御フロープロファイルにおける前記実行順序を変更するステップは、
前記シミュレータにおいて一つ又は複数のシミュレーションモジュールが再配置されたことに応答して、前記制御フロープロファイルにおける前記実行順序を変更するステップを含み、
前記再配置は、シミュレーションモジュールの添加、削除、並び替えのうちの少なくとも一項を含む、請求項４に記載の方法。
【請求項６】
前記制御フロープロファイルにおいて、前記一括保存ファイルに対する前記シミュレータの各シミュレーションモジュールのデータ読み書き権限を設定するステップをさらに含む、請求項３に記載の方法。
【請求項７】
第２データを前記一括保存ファイルに書き込むステップは、
前記第１シミュレーションモジュールから、前記第２データを、前記第２シミュレーションモジュールに直接にドッキングすることなく、前記一括保存ファイルに伝達するステップと、
前記一括保存ファイルにおいて、前記第２データの種類、位置及び大きさを記録するステップと、を含む請求項１に記載の方法。
【請求項８】
前記一括保存ファイルから、前記シミュレータにおける第３シミュレーションモジュールに使用される前記第３データを読み込むステップであって、前記第３シミュレーションモジュールは、前記チップの第３機能をシミュレートするように配置されたステップのと、
前記第３シミュレーションモジュールによる前記第３データの処理によって生成された第４データを、前記一括保存ファイルに書き込むステップと、を含む請求項１に記載の方法。
【請求項９】
シミュレータを実現するための装置であって、
シミュレータにおけるシミュレーションモジュールの入力データと出力データを一括的に保存するための一括保存ファイルから、前記シミュレータにおける第１シミュレーションモジュールに使用される第１データを読み込むように配置されている第１読込モジュールであって、前記第１シミュレーションモジュールはチップの第１機能をシミュレートするように配置された第１読込モジュールと、
前記第１シミュレーションモジュールによる前記第１データの処理によって生成された第２データを、前記一括保存ファイルに書き込むように配置されている第１書込モジュールと、
前記一括保存ファイルから、前記シミュレータにおける第２シミュレーションモジュールに使用される前記第２データを読み込むように配置されている第２読込モジュールであって、前記第２シミュレーションモジュールは、前記チップの第２機能をシミュレートするように配置され、且つ、前記第１シミュレーションモジュールの後に実行されるように配置された第２読込モジュールと、
前記第２シミュレーションモジュールによる前記第２データの処理によって生成された第３データを、前記一括保存ファイルに書き込むように配置されている第２書込モジュールと、を含む装置。
【請求項１０】
前記チップは、計算タスクの加速を実行するための人工知能（ＡＩ）チップであり、前記第１シミュレーションモジュールと前記第２シミュレーションモジュールのそれぞれは、データ再編モジュール、行列計算モジュール、アクティブ計算モジュール及びダイレクトメモリアクセス（ＤＭＡ）モジュールのうちの何れか一項であり、
前記シミュレータを用いて前記人工知能チップの設計の実行可能性を検証するように配置されている検証モジュールをさらに含む、請求項９に記載の装置。
【請求項１１】
制御フロープロファイルにおいて、前記シミュレータにおける、少なくとも前記第１シミュレーションモジュールと前記第２シミュレーションモジュールを含む複数のモジュールの実行順序を設定するように配置されている設定モジュールと、
前記制御フロープロファイルに設定された実行順序に基づいて、前記複数のシミュレーションモジュールを順次実行するように配置されている実行モジュールと、をさらに含む請求項９に記載の装置。
【請求項１２】
前記制御フロープロファイルにおける前記実行順序を変更するように配置されている変更モジュールと、
変更後の実行順序に基づいて、前記シミュレータ内の複数のシミュレーションモジュールの処理プロセスを調整するように配置されている調整モジュールと、をさらに含む請求項１１に記載の装置。
【請求項１３】
前記変更モジュールは、前記シミュレータにおいて一つ又は複数のシミュレーションモジュールが再配置されたことに応答して、前記制御フロープロファイルにおける前記実行順序を変更する第２変更モジュールを含み、
前記再配置は、シミュレーションモジュールの添加、削除、並び替えのうちの少なくとも一項を含む、請求項１２に記載の装置。
【請求項１４】
前記制御フロープロファイルにおいて、前記一括保存ファイルに対する前記シミュレータの各シミュレーションモジュールのデータ読み書き権限を設定するように配置されている第２設定モジュールをさらに含む、請求項１１に記載の装置。
【請求項１５】
前記第１書込モジュールは、
前記第１シミュレーションモジュールから、前記第２データを、前記第２シミュレーションモジュールに直接にドッキングすることなく、前記一括保存ファイルに伝達するように配置されている伝達モジュールと、
前記一括保存ファイルにおいて、前記第２データの種類、位置及び大きさを記録するように配置されている記録モジュールと、を含む請求項９に記載の装置。
【請求項１６】
前記一括保存ファイルから、前記シミュレータにおける第３シミュレーションモジュールの前記第３データを読み込むように配置されている第３読込モジュールであって、第３シミュレーションモジュールは、前記チップの第３機能をシミュレートするように配置された第３読込モジュールと、
前記第３シミュレーションモジュールによる前記第３データの処理によって生成された第４データを、前記一括保存ファイルに書き込むように配置されている第３書込モジュールと、をさらに含む請求項９に記載の装置。
【請求項１７】
一つ又は複数のプロセッサと、
前記一つ又は複数のプロセッサにより実行されることで請求項１〜８のいずれか一項に記載の方法を実現する一つ又は複数のプログラムを記憶する記憶装置と、
を含む電子デバイス。
【請求項１８】
プロセッサにより実行されると、請求項１〜８のいずれか一項に記載の方法を実現するコンピュータプログラムを記憶する、コンピュータ読取可能な記憶媒体。
【請求項１９】
プロセッサにより実行されると、請求項１〜８のいずれか一項に記載の方法を実現するコンピュータプログラム。
【外国語明細書】
2020184301000001.pdf