(57)【要約】      （修正有）【課題】ＳＲＡＭのマルチ読み取り／マルチ書き込みを実現し、ＳＲＡＭ回路を再設計する必要なくＳＲＡＭのマルチ読み取り／マルチ書き込み操作を低コストで実現し、アクセスデバイスのアクセス効率を向上する技術を提供する。【解決手段】方法は、スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するステップと、アクセス要求がデータに対する書き込み要求であることに応答して、データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップと、アクセス要求がデータに対する読み取り要求であることに応答して、複数のスタティックランダムアクセスメモリからデータの所定サイズの複数の部分をインターリーブして読み取るステップと、を含む。【選択図】図３
2020087499.tif 000002
【特許請求の範囲】
【請求項１】
スタティックランダムアクセスメモリにアクセスするための方法であって、
スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するステップと、
前記アクセス要求が前記データに対する書き込み要求であることに応答して、前記データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップと、
前記アクセス要求が前記データに対する読み取り要求であることに応答して、前記複数のスタティックランダムアクセスメモリから前記データの所定サイズの複数の部分をインターリーブして読み取るステップと、を含むことを特徴とする、スタティックランダムアクセスメモリにアクセスするための方法。
【請求項２】
前記複数の部分の前記所定サイズは、前記複数のスタティックランダムアクセスメモリの容量に基づいて決定されることを特徴とする、請求項１に記載のスタティックランダムアクセスメモリにアクセスするための方法。
【請求項３】
受信された前記アクセス要求は、第１のアクセスデバイスからの、前記データを書き込む第１の要求であり、前記第１の要求に対応する前記データは、第１のデータであり、
前記方法は、
第２のアクセスデバイスからの、第２のデータを前記複数のスタティックランダムアクセスメモリに書き込む第２の要求を受信するステップと、
前記第１のデータの前記複数の部分をインターリーブして書き込むことと並行する方式で、前記第２のデータの複数の部分を前記複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップと、をさらに含むことを特徴とする、請求項１に記載のスタティックランダムアクセスメモリにアクセスするための方法。
【請求項４】
前記第２のデータの複数の部分を前記複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップは、
一つの書き込みサイクル内に前記第１のデータの前記複数の部分における第１の部分が書き込まれる第１のオブジェクトと、前記第２のデータの前記複数の部分における第２の部分が書き込まれる第２のオブジェクトとを決定するステップであって、前記第１のオブジェクトと前記第２のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであるステップと、
前記第１のオブジェクトと前記第２のオブジェクトとが異なることに応答して、前記第１の部分と前記第２の部分を前記第１のオブジェクトと前記第２のオブジェクトに並行して書き込むステップと、
前記第１のオブジェクトと前記第２のオブジェクトとが同じであることに応答して、前記第１の部分と前記第２の部分の一つを前記第１のオブジェクトに書き込むステップと、を含むことを特徴とする、請求項３に記載のスタティックランダムアクセスメモリにアクセスするための方法。
【請求項５】
前記第１の部分と前記第２の部分の一つを前記第１のオブジェクトに書き込むステップは、
前記第１のアクセスデバイスと前記第２のアクセスデバイスの優先度を決定するステップと、
前記第２のアクセスデバイスの優先度が前記第１のアクセスデバイスの優先度より高いことに応答して、前記第２の部分を前記第１のオブジェクトに書き込み、前記第１の部分の前記第１のオブジェクトへの書き込みを次の書き込みサイクルまで遅延するステップと、を含むことを特徴とする、請求項４に記載のスタティックランダムアクセスメモリにアクセスするための方法。
【請求項６】
受信された前記アクセス要求は、第１のアクセスデバイスからの、前記データを読み取る第１の要求であり、前記第１の要求に対応する前記データは、第１のデータであり、前記方法は、
第２のアクセスデバイスからの、前記複数のスタティックランダムアクセスメモリから第２のデータを読み取る第２の要求を受信するステップと、
前記第１のデータの前記複数の部分をインターリーブして読み取ることと並行する方式で、前記複数のスタティックランダムアクセスメモリから前記第２のデータの複数の部分をインターリーブして読み取るステップと、をさらに含むことを特徴とする、請求項１に記載のスタティックランダムアクセスメモリにアクセスするための方法。
【請求項７】
前記複数のスタティックランダムアクセスメモリから前記第２のデータの複数の部分をインターリーブして読み取るステップは、
一つの読み取りサイクル内に前記第１のデータの前記複数の部分における第１の部分が読み取られる第１のオブジェクトと、前記第２のデータの前記複数の部分における第２の部分が読み取られる第２のオブジェクトとを決定するステップであって、前記第１のオブジェクトと前記第２のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであるステップと、
前記第１のオブジェクトと前記第２のオブジェクトとが異なることに応答して、前記第１のオブジェクトと前記第２のオブジェクトから前記第１の部分と前記第２の部分を並行して読み取るステップと、
前記第１のオブジェクトと前記第２のオブジェクトとが同じであることに応答して、前記第１のオブジェクトから前記第１の部分と前記第２の部分の一つを読み取るステップと、を含むことを特徴とする、請求項６に記載のスタティックランダムアクセスメモリにアクセスするための方法。
【請求項８】
前記第１のオブジェクトから前記第１の部分と前記第２の部分の一つを読み取るステップは、
前記第１のアクセスデバイスと前記第２のアクセスデバイスの優先度を決定するステップと、
前記第２のアクセスデバイスの優先度が前記第１のアクセスデバイスの優先度より高いことに応答して、前記第１のオブジェクトから前記第２の部分を読み取り、前記第１のオブジェクトから前記第１の部分を読み取ることを次の読み取りサイクルまで遅延するステップと、を含むことを特徴とする、請求項７に記載のスタティックランダムアクセスメモリにアクセスするための方法。
【請求項９】
前記第１のオブジェクトを決定することは、
前記第１の要求から前記第１のデータにアクセスするための宛先アドレスを決定するステップと、
前記宛先アドレスと所定のアドレスマッピング関係とに基づいて、前記第１のデータの前記第１の部分に対応する目標アドレスを決定するステップと、
前記目標アドレスのうちの少なくとも一部に基づいて、前記第１の部分に対応するスタティックランダムアクセスメモリを決定するステップと、を含むことを特徴とする、請求項４又は７に記載のスタティックランダムアクセスメモリにアクセスするための方法。
【請求項１０】
スタティックランダムアクセスメモリにアクセスするための装置であって、
スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するように構成される受信モジュールと、
前記アクセス要求が前記データに対する書き込み要求であることに応答して、前記データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込み、前記アクセス要求が前記データに対する読み取り要求であることに応答して、前記複数のスタティックランダムアクセスメモリから前記データの所定サイズの複数の部分をインターリーブして読み取るように構成されるアクセスモジュールと、を含むことを特徴とする、スタティックランダムアクセスメモリにアクセスするための装置。
【請求項１１】
前記複数の部分の前記所定サイズは、前記複数のスタティックランダムアクセスメモリの容量に基づいて決定されることを特徴とする、請求項１０に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【請求項１２】
受信された前記アクセス要求は、第１のアクセスデバイスからの、前記データを書き込む第１の要求であり、前記第１の要求に対応する前記データは、第１のデータであり、
前記受信モジュールは、
第２のアクセスデバイスからの、第２のデータを前記複数のスタティックランダムアクセスメモリに書き込む第２の要求を受信するように構成される受信ユニットを含み、
前記アクセスモジュールは、
前記第１のデータの前記複数の部分をインターリーブして書き込むことと並行する方式で、前記第２のデータの複数の部分を前記複数のスタティックランダムアクセスメモリにインターリーブして書き込むように構成される第１の書き込みユニットを含むことを特徴とする、請求項１０に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【請求項１３】
一つの書き込みサイクル内に前記第１のデータの前記複数の部分における第１の部分が書き込まれる第１のオブジェクトと、前記第２のデータの前記複数の部分における第２の部分が書き込まれる第２のオブジェクトとを決定するように構成される決定モジュールをさらに含み、前記第１のオブジェクトと前記第２のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであり、
前記アクセスモジュールは、
前記第１のオブジェクトと前記第２のオブジェクトとが異なることに応答して、前記第１の部分と前記第２の部分を前記第１のオブジェクトと前記第２のオブジェクトに並行して書き込み、前記第１のオブジェクトと前記第２のオブジェクトとが同じであることに応答して、前記第１の部分と前記第２の部分の一つを前記第１のオブジェクトに書き込むように構成される第２の書き込みユニットをさらに含むことを特徴とする、請求項１２に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【請求項１４】
前記決定モジュールは、前記第１のアクセスデバイスと前記第２のアクセスデバイスの優先度を決定するように構成される優先度決定ユニットを含み、
前記アクセスモジュールは、
前記第２のアクセスデバイスの優先度が前記第１のアクセスデバイスの優先度より高いことに応答して、前記第２の部分を前記第１のオブジェクトに書き込み、前記第１の部分の前記第１のオブジェクトへの書き込みを次の書き込みサイクルまで遅延するように構成される第３の書き込みユニットを含むことを特徴とする、請求項１３に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【請求項１５】
受信された前記アクセス要求は、第１のアクセスデバイスからの、前記データを読み取る第１の要求であり、前記第１の要求に対応する前記データは、第１のデータであり、
前記受信モジュールは、第２のアクセスデバイスからの、前記複数のスタティックランダムアクセスメモリから第２のデータを読み取る第２の要求を受信するように構成される受信ユニットを含み、
前記アクセスモジュールは、前記第１のデータの前記複数の部分をインターリーブして読み取ることと並行する方式で、前記複数のスタティックランダムアクセスメモリから前記第２のデータの複数の部分をインターリーブして読み取るように構成される第１の読み取りユニットを含むことを特徴とする、請求項１０に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【請求項１６】
一つの読み取りサイクル内に前記第１のデータの前記複数の部分における第１の部分が読み取られる第１のオブジェクトと、前記第２のデータの前記複数の部分における第２の部分が読み取られる第２のオブジェクトとを決定するように構成される決定モジュールをさらに含み、前記第１のオブジェクトと前記第２のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであり、
前記アクセスモジュールは、
前記第１のオブジェクトと前記第２のオブジェクトとが異なることに応答して、前記第１のオブジェクトと前記第２のオブジェクトから前記第１の部分と前記第２の部分を並行して読み取り、前記第１のオブジェクトと前記第２のオブジェクトとが同じであることに応答して、前記第１のオブジェクトから前記第１の部分と前記第２の部分の一つを読み取るように構成される第２の読み取りユニットを含むことを特徴とする、請求項１５に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【請求項１７】
前記決定モジュールは、前記第１のアクセスデバイスと前記第２のアクセスデバイスの優先度を決定するように構成される優先度決定ユニットをさらに含み、
前記アクセスモジュールは、前記第２のアクセスデバイスの優先度が前記第１のアクセスデバイスの優先度より高いことに応答して、前記第１のオブジェクトから前記第２の部分を読み取り、前記第１のオブジェクトから前記第１の部分を読み取ることを次の読み取りサイクルまで遅延するように構成される第３の読み取りユニットを含むことを特徴とする、請求項１６に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【請求項１８】
前記決定モジュールは、メモリ決定ユニットを含み、
前記メモリ決定ユニットは、
前記第１の要求から前記第１のデータにアクセスするための宛先アドレスを決定し、
前記宛先アドレスと所定のアドレスマッピング関係とに基づいて、前記第１のデータの前記第１の部分に対応する目標アドレスを決定し、
前記目標アドレスのうちの少なくとも一部に基づいて、前記第１の部分に対応するスタティックランダムアクセスメモリを決定するように構成されることを特徴とする、請求項１３又は１６に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【請求項１９】
電子機器であって、
一つの又は複数のプロセッサと、
一つ又は複数のプログラムを記憶するための記憶装置と、を含み、
前記一つ又は複数のプログラムが前記一つの又は複数のプロセッサによって実行される場合、前記一つ又は複数のプロセッサが、請求項１から９のいずれかに記載の方法を実現することを特徴とする、電子機器。
【請求項２０】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
前記プログラムがプロセッサによって実行される場合に、請求項１から９のいずれかに記載の方法が実現されることを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、集積回路の分野に関し、より具体的には、スタティックランダムアクセスメモリ（ＳＲＡＭ）にアクセスするための方法、装置、機器及びコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
集積回路装置は、既に日常の作業と生活の様々な態様で広く応用されている。集積回路装置は、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）と、システムオンチップ（ＳＯＣ）と、特定用途向け集積回路（ＡＳＩＣ）デバイスなどを含む。ＦＰＧＡ、ＳＯＣ、ＡＳＩＣ回路チップ設計では、ＳＲＡＭが大量に使用されており、計算に必要なデータ、又はキャッシュ計算の結果を保存する。一般的には、一つのＳＲＡＭ記憶領域は、計算ユニットなどの複数の独立したアクセスデバイスによってアクセスすることができる。ただし、ＳＲＡＭには一つの読み書きポートしか存在しない。この場合、異なるアクセスデバイスがＳＲＡＭの読み書き中に、競合（即ち衝突）が出現する可能性がある。調停により、通常、一つのアクセスデバイスのみが当該ＳＲＡＭにアクセスすることができ、他の計算ユニットは待たなければならない。
【０００３】
ＳＲＡＭの単一読み取り／単一書き込みの問題を解決するために、業界では既に様々な解決策を提供してきた。ただし、これらの解決策は、通常、すべての回路レベルでＳＲＡＭを再設計する必要があり、内部構造は、通常の単一読み取り／単一書き込みの単一ポートＳＲＡＭよりも複雑であり、アドレス制御などのロジックを倍に増加する必要がある。また、回路面積の態様では、ポートの増加とともに面積も倍に増加し、その内部構造が複雑であるため、ＳＲＡＭの動作周波数が低下する。したがって、既存のマルチ読み取り／マルチ書き込みするためのＳＲＡＭは、コストが高く、作業効率が低い。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示の例示的な実施例によれば、ＳＲＡＭにアクセスするための方案を提供する。
【課題を解決するための手段】
【０００５】
本開示の第１の態様では、スタティックランダムアクセスメモリにアクセスするための方法を提供する。当該方法は、スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するステップと、アクセス要求がデータに対する書き込み要求であることに応答して、データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップと、アクセス要求がデータに対する読み取り要求であることに応答して、複数のスタティックランダムアクセスメモリからデータの所定サイズの複数の部分をインターリーブして読み取るステップと、を含む。
【０００６】
本開示の第２の態様では、スタティックランダムアクセスメモリにアクセスするための装置を提供する。当該装置は、受信モジュールとアクセスモジュールとを含む。受信モジュールは、スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するように構成される。アクセスモジュールは、アクセス要求がデータに対する書き込み要求であることに応答して、データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込み、アクセス要求がデータに対する読み取り要求であることに応答して、複数のスタティックランダムアクセスメモリからデータの所定サイズの複数の部分をインターリーブして読み取るように構成される。
【０００７】
本開示の第３の態様では、電子機器を提供する。当該電子機器は、一つの又は複数のプロセッサと、一つ又は複数のプログラムを記憶するための記憶装置と、を含み、前記一つ又は複数のプログラムが前記一つの又は複数のプロセッサにより実行される場合には、前記一つ又は複数のプロセッサが、本開示の第１の態様の方法を実現する。
【０００８】
本開示の第４の態様では、コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体を提供し、当該プログラムがプロセッサによって実行される場合には、本開示の第１の態様の方法が実現される。
【０００９】
なお、発明内容部分に説明する内容は、本開示の実施例の肝心又は重要な特徴を制限することを意図しておらず、本開示の範囲を制限することを意図していない。本開示の他の特徴は、以下の説明により容易に理解され得る。
【図面の簡単な説明】
【００１０】
本発明の上述及び／又は付加的な特徴と利点は、下記の添付図面を参照した実施形態に対する説明により、明らかになり、容易に理解される。図面では、同じ又は類似の図面ラベルは、同じ又は類似の要素を示す。
【図１】本開示の実施例が実施可能の例示的な環境の概略図を示す。
【図２】本開示の一実施例に係るダブル読み取り／ダブル書き込みのＳＲＡＭの概略ブロック図を示す。
【図３】本開示の一実施例に係るＳＲＡＭにアクセスするための方法のフローチャートを示す。
【図４】本開示の一実施例に係るＳＲＡＭにアクセスするための方法の具体的なフローチャートを示す。
【図５】本開示の一実施例に係るＳＲＡＭにアクセスするための装置のブロック図を示す。
【図６】本開示の実施例を実施可能なコンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【００１１】
以下に、図面を参照しながら本開示の実施例をさらに詳しく説明する。図面には、本開示の一部の実施例を示したが、本開示は、種々な形式により実現することができ、ここで説明した実施例に限定されると理解してはならない。逆に、本開示を明らかで完全に理解するために、これらの実施例を提供する。なお、本開示の図面及び実施例は、例示的な作用を奏し、本開示の保護範囲を限定するものと理解してはならない。
【００１２】
本開示の実施例の説明において、「含む」の用語及びその類似の用語は、開放的に含まれることをいい、即ち「含むがこれらに限定されない」ことを指す。なお、「基づく」は「少なくとも部分に基づく」をいう。なお、「一実施例」又は「当該実施例」は「少なくとも一つの実施例」をいう。「第１」、「第２」等は、異なる又は同一の対象を指す。以下、その他の明確及び暗黙的な定義がある場合もある。
【００１３】
一般的には、電子機器は、設計のニーズによって一定容量のＳＲＡＭを含むことができる。例えば、電子機器は、２５６ＫＢのＳＲＡＭを含むことができる。従来の方案では、単一の２５６ＫＢのＳＲＡＭを使用して実現することができる。
【００１４】
上記のように、従来の方案では、ＳＲＡＭは、通常、単一ポートＳＲＡＭであり、単一読み取り／単一書き込み操作のみを実現することができる。マルチポートＳＲＡＭであっても、回路レベルから別に設計する必要があり、作業効率も低下する。
【００１５】
本開示の実施例によれば、複数のＳＲＡＭの組み合わせを使用してマルチ読み取り／マルチ書き込みを実現することができるＳＲＡＭ方案を提供するので、ＳＲＡＭ自体を回路レベルから再設計する必要がない。また、本開示の実施例に係るＳＲＡＭ方案は、ＳＲＡＭの読み書き効率を向上させることができる。
【００１６】
例えば、２５６ＫＢのＳＲＡＭを必要とする電子機器にとっては、二つの１２８ＫＢのＳＲＡＭを提供することでニーズを満たすことができ、又は四つの６４ＫＢのＳＲＡＭを提供することでニーズを満たすこともでき、又は一つの１２８ＫＢと二つの６４ＫＢのＳＲＡＭを提供することでニーズを満たすこともできる。複数のＳＲＡＭを使用することによって、アクセスデバイスのアクセス効率を向上させることができる。以下、これについて具体的に説明する。
【００１７】
以下、図面を参照して本開示の実施例を具体的に説明する。図１は、本開示の実施例が実施可能の例示的な環境１００の概略図を示す。例示的な環境１００は、複数のアクセスデバイスがマルチアービタなどの電子機器を介して、複数のＳＲＡＭにアクセスするために用いられ、ＳＲＡＭに対してマルチ読み取り／マルチ書き込み操作の実行を実現することを示している。アクセスデバイスは、例えば、中央処理装置、デジタル信号プロセッサなどの機器であってもよい。マルチアービタは一例にすぎず、他の電子デバイス又は回路を使用して当該電子機器を実現することができることも理解されたい。
【００１８】
複数のアクセスデバイス１０２、１０４・・・・・・１０６のうちの少なくとも一つのアクセスデバイスは、一つのアクセスサイクル内でマルチアービタ１１２にデータアクセス要求を発行することができる。本発明では、アクセスとは、読み取り又は書き込みを指す。例えば、アクセスデバイスは、マルチアービタ１１２を介してＳＲＡＭにデータを書き込み、ＳＲＡＭからデータを読み取ることが可能な機器を指し、アクセスサイクルは、ＳＲＡＭへの読み取りサイクル又は書き込みサイクルを指し、データアクセス要求は、ＳＲＡＭにデータを書き込む要求と、ＳＲＡＭからデータを読み取る要求とを指す。
【００１９】
一つのアクセスサイクル内に、一つのアクセス要求のみがある場合、マルチアービタ１１２は、アクセス要求に基づいて複数のＳＲＡＭからデータを読み取るか、又は複数のＳＲＡＭにデータを書き込む。一つのアクセスサイクル内に、複数のアクセス要求がある場合、マルチアービタ１１２は、複数のアクセス要求に基づいてアクセスオブジェクトを決定する。
【００２０】
アクセスオブジェクトが競合（即ち衝突）しない場合、当該アクセスサイクル内に複数のＳＲＡＭを並行してアクセスすることができる。例えば、一つのアクセスサイクル内において、アクセスデバイス１０２がＳＲＡＭ１２２に対して読み取りを行うとともに、アクセスデバイス１０４がＳＲＡＭ１２４に対して書き込みを行う場合、マルチアービタ１１２は、ＳＲＡＭ１２２に対して読み取り操作を実行するとともに、ＳＲＡＭ１２４に対して書き込み操作を実行する。
【００２１】
アクセスオブジェクトが競合する場合、当該アクセスサイクル内の優先度に基づいてＳＲＡＭにアクセスすることができる。例えば、一つのアクセスサイクル内において、アクセスデバイス１０２と１０４とがＳＲＡＭ１２２に対して読み取りを行う場合、マルチアービタ１１２は、予め決定された優先度に基づいてＳＲＡＭ１２２に対して読み取り操作を実行する。例えば、アクセスデバイス１０２の優先度がより高い場合、マルチアービタ１１２は、アクセスデバイス１０２が読み取ろうとするデータを読み取り、アクセスデバイス１０４が読み取ろうとするデータを遅延して読み取る。次のアクセスサイクル内では、機器１０２が読み取ろうとするデータがＳＲＡＭ１２４に位置する。この場合、当該アクセスサイクル内において、ＳＲＡＭ１２２と１２４とが並行して読み取ることができる。
【００２２】
以下、図２を参照してさらに詳細に説明する。図２は、本開示の一実施例に係るダブル読み取り／ダブル書き込みのＳＲＡＭ装置の概略ブロック図を示す。ＳＲＡＭ装置は、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４とを含む。第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４との容量は同じであり、例えば、いずれも５１２個のメモリユニットを有する。第１のＳＲＡＭ１２２におけるメモリユニットは、偶数番号で表され、第２のＳＲＡＭ１２４におけるメモリユニットは、奇数番号で表される。
【００２３】
本発明者は、研究によって、データが通常、連続的の方式でＳＲＡＭに記憶されることを発見した。したがって、二つのＳＲＡＭ１２２と１２４の使用によりインターリーブして単一のＳＲＡＭを構成することにより、アクセスデバイスがＳＲＡＭ１２２と１２４とをインターリーブしてアクセスすることができ、複数のアクセスデバイスの場合にＳＲＡＭ１２２と１２４を並行してアクセスする確率を増加させ、アクセス効率を向上させる。
【００２４】
例えば、第１のデータは、第１のＳＲＡＭ１２２のメモリユニット０、第２のＳＲＡＭ１２４のメモリユニット１、第１のＳＲＡＭ１２２のメモリユニット２、第２のＳＲＡＭ１２４のメモリユニット３・・・・・・第２のＳＲＡＭ１２４のメモリユニット９に順次記憶することができる。第２のデータは、第１のＳＲＡＭ１２２のメモリユニット４１０、第２のＳＲＡＭ１２４のメモリユニット４１１、第１のＳＲＡＭ１２２のメモリユニット４１２、第２のＳＲＡＭ１２４のメモリユニット４１３・・・・・・第２のＳＲＡＭ１２４のメモリユニット４１９に順次記憶することができる。
【００２５】
例えば、第１のアクセスデバイス１０２が第１のデータをメモリユニット０〜９に書き込み、第２のアクセスデバイス１０２が第２のデータをメモリユニット４１０〜４１９に書き込む必要がある場合、第１のアクセス（書き込み）サイクルにおいて、第１のデータの第１の部分が第１のＳＲＡＭ１２２のメモリユニット０に書き込まれ、且つ第２のデータの第１の部分が第１のＳＲＡＭ１２２のメモリユニット４１０に書き込まれる必要があるため、アクセス競合が存在する。なぜなら、第１のＳＲＡＭ１２２は、単一のポートしか有していないため、一つのアクセス要求のみに応答することができるからである。
【００２６】
この場合、マルチアービタ１１２は、優先度によって調停することができる。例えば、第１のアクセスデバイス１０２の優先度は、第２のアクセスデバイス１０４の優先度より高い。したがって、マルチアービタは、第１のデータの第１の部分をメモリユニット０に書き込み、第２のデータの第１の部分の書き込みを次のアクセスサイクルに遅延させる。
【００２７】
次のアクセスサイクル内において、マルチアービタ１１２は、第１のアクセスデバイス１０２からの第１のデータの第２の部分が第２のＳＲＡＭ１２４のメモリユニット１に書き込まれ、且つ第２のアクセスデバイス１０４からの第２のデータの第１の部分が第１のＳＲＡＭ１２２のメモリユニット４１０に書き込まれることを決定する。この場合、アクセス競合が存在しない。したがって、マルチアービタ１１２は、第１のＳＲＡＭ１２２のメモリユニット４１０と第２のＳＲＡＭ１２４のメモリユニット１に対する並行した書き込みを実行する。
【００２８】
次のアクセスサイクル内に、マルチアービタ１１２は、メモリユニット４１１とメモリユニット２に対する並行した書き込みを実行する。このように類推して、第１のデータと第２のデータとを書き終えるまで、いずれもデータの競合が発生しない。
【００２９】
第１のアクセスサイクル内に、二つのアクセスデバイスの競合が発生する場合以外では、その後、すべてのサイクル内にいずれもアクセス競合がないことが分かる。第１のアクセスデバイス１０２がＳＲＡＭを読み書く効率は、１００％であり、第２のアクセスデバイス１０４がＳＲＡＭを読み書く効率は、１０／１１＝９１％である。対照的に、従来の単一のＳＲＡＭを採用してＳＲＡＭ装置を構成する場合、各計算ユニットの効率は、５０％にしかならない。要約すると、Ｍ個の計算ユニットは、ほとんど互いに干渉することなくＳＲＡＭを同時にアクセスすることができ、ＭとＮとの間には制限関係がない。すなわち、Ｍは、Ｎより小さくても、等しくても、大きくてもよい。通常、Ｎの数が増加すると、競合の確率を低下することができる。
【００３０】
上記の例では、マルチアービタ１１２は、アクセスデバイスからのアクセス要求に基づいて宛先アドレスを決定する。次いで、マルチアービタ１１２は、宛先アドレスと所定のアドレスマッピング関係とに基づいて第１のデータの各部分に対応する目標アドレスを決定する。例えば、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４とを含むＳＲＡＭ装置の記憶深さは、１０２４である。したがって、目標アドレスは、１０ビットで表す必要がある。例えば、メモリユニット０の目標アドレスは、００００００００００であり、メモリユニット１の目標アドレスは、０００００００００１である。
【００３１】
上記の例では、最後の一つのビットを使用してアクセスされるＳＲＡＭを決定している。例えば、最後のビットが０である場合、第１のＳＲＡＭ１２２にアクセスする。最後のビットが１である場合、第２のＳＲＡＭ１２４にアクセスする。実際には、アドレスの任意の二つのビットで調停することができる。
【００３２】
例えば、四つのＳＲＡＭを使用して一つのＳＲＡＭ装置を構成する場合、目標アドレスの０番目と４番目を使用して調停することができる。｛ａｄｄｒｅｓｓ［４］、ａｄｄｒｅｓｓ［０］｝は、目標アドレスの４番目と０番目を抽出して、一つの２ビットの２進数に結合することを表す。マルチアービタ１１２の調停ロジックは、｛ａｄｄｒｅｓｓ［４］、ａｄｄｒｅｓｓ［０］｝がバイナリ００に等しい場合、第１のＳＲＡＭにアクセスし、｛ａｄｄｒｅｓｓ［４］、ａｄｄｒｅｓｓ［０］｝がバイナリ０１に等しい場合、第２のＳＲＡＭにアクセスし、｛ａｄｄｒｅｓｓ［４］、ａｄｄｒｅｓｓ［０］｝がバイナリ１０に等しい場合、第３のＳＲＡＭにアクセスし、｛ａｄｄｒｅｓｓ［４］、ａｄｄｒｅｓｓ［０］｝がバイナリ１１に等しい場合、第４のＳＲＡＭにアクセスすることを表すことができる。本開示の範囲はこの点で限定されない。異なるアプリケーションに対してアドレスの異なるビット位置の一つ又は複数のビットを選択することによって調停することができる。
【００３３】
図２は、二つのＳＲＡＭを示しているが、本開示の範囲はこの点で限定されない。例えば、より多くのＳＲＡＭの使用によりインターリーブして記憶されるＳＲＡＭ装置を構成することができる。例えば、三つのＳＲＡＭの使用によりインターリーブして記憶されるＳＲＡＭ装置を構成する場合、データは、三つのＳＲＡＭに順次インターリーブして書き込むことができる。いくつかの実施例では、ＳＲＡＭ装置の組み合わせ方式は、動的に構成することもできる。例えば、新しいＳＲＡＭを追加したり、一つのＳＲＡＭを除去した後、インターリーブ方式は、それに応じて動的に調整することができる。
【００３４】
また、図２の例では、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４の容量とが同じだが、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４の容量が異なってもよい。例えば、第１のＳＲＡＭ１２２が５１２個のメモリユニットを有し、第２のＳＲＡＭ１２４が１０２４個のメモリユニットを有するとすることができる。この場合、第１のＳＲＡＭ１２２の一つのメモリユニットにアクセスし、その後、第２のＳＲＡＭ１２４の二つのメモリユニットにアクセスし、その後、第１のＳＲＡＭ１２２の一つのメモリユニットにさらにアクセスし、その後、第２のＳＲＡＭ１２４の二つのメモリユニットにさらにアクセスする方式によって、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４をインターリーブしてアクセスすることができる。言い換えれば、複数のＳＲＡＭに書き込まれる複数の部分の所定サイズは、複数のＳＲＡＭの容量に基づいて決定することができる。
【００３５】
図２の例では、第１のアクセスデバイス１０２がより高い優先度を有しているが、本開示の範囲はこれらに限定されない。他のいくつかの例では、第２のアクセスデバイス１０４は、固定されたより高い優先度を有することができ、あるいは第１のアクセスデバイス１０２と第２のアクセスデバイス１０４は、交互に優先権を有することができる。例えば、第１の競合が発生した場合には、第１のアクセスデバイス１０２がより高い優先度を有する。第２の競合が発生した場合には、第２のアクセスデバイス１０４がより高い優先度を有し、このように類推する。また、いくつかの場合では、重み付けられた交互優先度モードを有することもできる。例えば、優先度の順次は、第１のアクセスデバイス１０２、第２のアクセスデバイス１０４、第２のアクセスデバイス１０４、第１のアクセスデバイス１０２、第２のアクセスデバイス１０４、第２のアクセスデバイス１０４・・・・・・であってもよく、このように類推する。
【００３６】
様々の優先度モードが説明されているが、本開示はこれらに限定されないと理解すべきである。優先度モードは動的に調整することができる。例えば、固定された優先度モードから交互優先度モードや重み付けられた交互優先度モードに調整することができる。
【００３７】
図２の例では、単一ポートで読み書きされるＳＲＡＭを使用して説明しているが、本開示はこれらに限定されない。例えば、ＳＲＡＭは、単一ポートＳＲＡＭ、擬似デュアルポートＳＲＡＭ、デュアルポートＳＲＡＭ、マルチポートＳＲＡＭ、又はその組み合わせであってもよい。また、図２の例ではデータを書き込む方式で説明しているが、本開示の範囲はこれらに限定されない。図２の例では、アクセス操作は、データを読み取る操作であってもよい。例えば、図２の例では、第１のアクセスデバイス１０２と第２のアクセスデバイス１０４は、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４からデータをインターリーブして読み取ることができる。別の例では、第１のアクセスデバイス１０２は、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４にデータをインターリーブして書き込むことができ、第２のアクセスデバイス１０４は、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４からデータをインターリーブして読み取ることができる。
【００３８】
図３は、本開示の一実施例に係るＳＲＡＭにアクセスするための方法３００のフローチャートを示す。例えば、方法３００は、図１に示すような環境でマルチアービタ１１２によって実行することができる。方法３００は、さらに、図示しない付加的なステップを含むことができ、及び／又は図示されたステップを省略することができることを理解されたい。本開示の範囲はこの点で限定されない。
【００３９】
ステップ３０２において、スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信する。例えば、マルチアービタ１１２は、第１のアクセスデバイス１０２からの第１のアクセス要求を受信することができる。当該第１のアクセス要求は、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４にデータを書き込むインターリーブ書き込み要求であってもよく、又は第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４からデータをインターリーブして読み取る要求であってもよい。別の例では、マルチアービタ１１２は、第１のアクセスデバイス１０２からの第１のアクセス要求と第２のアクセスデバイス１０４からの第２のアクセス要求を受信することができる。上記の例と同様、第１のアクセス要求は、データを読み取る要求又はデータを書き込む要求であってもよく、第２のアクセス要求は、データを読み取る要求又はデータを書き込む要求であってもよい。
【００４０】
ステップ３０３において、アクセス要求がデータを書き込む要求であるか、それともデータを読み取る要求であるかを判断する。
【００４１】
ステップ３０４において、アクセス要求がデータに対する書き込み要求であることに応答して、データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込む。例えば、マルチアービタ１１２は、第１のアクセスデバイス１０２からの、データに対する書き込み要求に応答して、第１のデータの第１の部分を第１のＳＲＡＭ１２２に書き込み、第１のデータの第２の部分を第２のＳＲＡＭ１２４に書き込み、第１のデータの第３の部分を第１のＳＲＡＭ１２２に書き込み、第１のデータの第４の部分を第２のＳＲＡＭ１２４に書き込むことができる。このように類推して、第１のデータがすべて書き終わるまで続く。
【００４２】
ステップ３０６において、アクセス要求がデータに対する読み取り要求であることに応答して、複数のスタティックランダムアクセスメモリからデータの所定サイズの複数の部分をインターリーブして読み取る。例えば、マルチアービタ１１２は、第１のアクセスデバイス１０２からの、データに対する読み取り要求に応答して、第１のＳＲＡＭ１２２から第１のデータの第１の部分を読み取り、第２のＳＲＡＭ１２４から第１のデータの第２の部分を読み取り、第１のＳＲＡＭ１２２から第１のデータの第３の部分を読み取り、第２のＳＲＡＭ１２４から第１のデータの第４の部分を読み取ることができる。このように類推して、第１のデータがすべて読み取られるまで続く。
【００４３】
第１のデータの各部分は、１ビット、２ビットなどの所定のサイズを有することができる。第１のデータの各部分は同じであってもよいし、異なってもよい。例えば、第１の部分は１ビットであり、第２の部分は２ビットであり、第３の部分は１ビットであり、第４の部分は２ビットである等と類推することができる。
【００４４】
図４は、本開示の一実施例に係るＳＲＡＭにアクセスするための方法４００の具体的なフローチャートを示す。例えば、方法４００は、図１に示すような環境で実行することができる。方法４００は、さらに、図示しない付加的なステップを含むことができ、及び／又は図示されたステップを省略することができることを理解されたい。本開示の範囲はこの点で限定されない。
【００４５】
ステップ４０２において、マルチアービタ１１２は、第１のＳＲＡＭにアクセスするための第１の要求と、第２のＳＲＡＭにアクセスするための第２の要求とを受信する。例えば、第１の要求は、第１のアクセスデバイスからの、第１のデータを読み取る又は第１のデータを書き込むための要求であってもよく、第２の要求は、第２のアクセスデバイスからの、第２のデータを読み取る又は第２のデータを書き込むための要求であってもよい。
【００４６】
ステップ４０４において、マルチアービタ１１２は、第１のアクセスデータの宛先アドレスと第２のアクセスデータの宛先アドレスとを決定する。当該宛先アドレスは、データのロジックアドレスであってもよく、例えば要求に含まれるロジックアドレスであってもよい。
【００４７】
ステップ４０６において、マルチアービタ１１２は、当該宛先アドレスと所定のアドレスマッピング関係とに基づいて当該アクセスサイクル内の書き込もうとするデータ部分の目標アドレスを決定することができる。例えば、マルチアービタ１１２は、データのロジックアドレスとマッピング関係とに基づいて、第１のデータの第１の部分の目標アドレスと、第２のデータの第１の部分の目標アドレスとを決定することができる。例えば、第１のデータの第１の部分の目標アドレスは「００００００００００」であり、第２のデータの第１の部分の目標アドレスは「００００１００１１０」である決定することができる。
【００４８】
ステップ４０８において、マルチアービタ１１２が目標アドレスに基づいて当該アクセスサイクル内にアクセスしようとするＳＲＡＭを決定することができる。例えば、マルチアービタ１１２は、最後の一つのビットのデータを使用して「００００００００００」と「００００１００１１０」に基づいて、第１のデータの第１の部分と第２の部分がいずれも第１のＳＲＡＭ１２２にアクセスすることを決定する。
【００４９】
ステップ４１０において、マルチアービタ１１２は、フレームワーク４０８によって決定されたアクセスオブジェクトに基づいて、アクセスしようとするＳＲＡＭが同じであるか否かを判断する。
【００５０】
ステップ４１６において、アクセスしようとするオブジェクトに競合が存在しない場合、マルチアービタ１１２は、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４を並行してアクセスする。例えば、当該アクセスサイクル内に、第１のデータの第１の部分を第１のＳＲＡＭ１２２に書き込み、第２のＳＲＡＭ１２４から第２のデータの第１の部分を読み取る。次のアクセスサイクル内に、第１のデータの第２の部分を第２のＳＲＡＭ１２４に書き込み、第１のＳＲＡＭ１２２から第２のデータの第２の部分を読み取る。このように類推して、第１のデータをすべて書き込み、第２のデータをすべて読み取るまで続く。
【００５１】
ステップ４１２において、アクセスしようとするオブジェクトに競合が存在する場合、マルチアービタ１１２は、各アクセスデバイスの現在の優先度を決定する。例えば、マルチアービタ１１２は、固定優先度、交互優先度、又は重み付けられた優先度ポリシーのうちの一つに基づいて、現在のアクセスサイクル内に第１のアクセスデバイス１０２の優先度がより高いと決定する。
【００５２】
ステップ４１４において、マルチアービタ１１２は、ステップ２１２によって決定された優先度に基づいて、対応するＳＲＡＭにアクセスする。例えば、当該アクセスサイクルに、第１のアクセスデバイス１０２からの第１のデータの第１の部分を第１のＳＲＡＭ１２２に書き込み、第２のアクセスデバイス１０２の第１のＳＲＡＭ１２２からデータを読み取る操作を次のアクセスサイクルまで遅延する。
【００５３】
次のアクセスサイクル内において、マルチアービタ１１２は、ステップ４０６、４０８、４１０の操作を繰り返す。この場合、ステップ４１０で決定されるアクセスしようとするＳＲＡＭが異なるため、方法４００はステップ４１６に進む。マルチアービタ１１２は、第１のＳＲＡＭ１２２と第２のＳＲＡＭ１２４に並行してアクセスする。例えば、当該アクセスサイクル内において、第１のデータの第１の部分を第１のＳＲＡＭ１２２に書き込み、第２のＳＲＡＭ１２４から第２のデータの第１の部分を読み取る。次のアクセスサイクル内において、第１のデータの第２の部分を第２のＳＲＡＭ１２４に書き込み、第１のＳＲＡＭ１２２から第２のデータの第２の部分を読み取る。このように類推して、第１のデータをすべて書き込み、第２のデータをすべて読み取るまで続く。
【００５４】
上記の説明から分かるように、本開示の実施例は、複数のＳＲＡＭを用いて単一の「仮想的な」ＳＲＡＭ装置を構築し、複数のＳＲＡＭを交互にアクセスする。このような方式により、本開示の実施例は、マルチ読み取り／マルチ書き込み機能を有するＳＲＡＭ装置を低コストで構築することができるので、ＳＲＡＭに対して回路の再設計する必要がなく、複数のアクセスデバイスの場合にＳＲＡＭ装置に対するアクセス効率を大幅に向上させることができる。
【００５５】
本開示の実施例は、上記の方法又はプロセスを実現するための対応する装置をさらに提供する。図５は、本開示の実施例に係るスタティックランダムアクセスメモリにアクセスするための装置５００の概略ブロック図を示す。当該装置５００は、例えば、図１の環境で実施することができる。図５に示すように、装置５００は、受信モジュール５０２と、アクセスモジュール５０４と、決定モジュール５０６とを含むことができる。
【００５６】
いくつかの実施例では、受信モジュール５０２は、スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するように構成される。アクセスモジュール５０４アクセス要求がデータに対する書き込み要求であることに応答して、データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込み、アクセス要求がデータに対する読み取り要求であることに応答して、複数のスタティックランダムアクセスメモリからデータの所定サイズの複数の部分をインターリーブして読み取るように構成される。
【００５７】
いくつかの実施例では、複数の部分の所定サイズは、複数のスタティックランダムアクセスメモリの容量に基づいて決定される。
【００５８】
いくつかの実施例では、受信されたアクセス要求は、第１のアクセスデバイスからの、データを書き込む第１の要求であり、第１の要求に対応するデータは、第１のデータである。受信モジュール５０２は、受信ユニットを含む。受信ユニットは、第２のアクセスデバイスからの、第２のデータを複数のスタティックランダムアクセスメモリに書き込む第２の要求を受信するように構成される。アクセスモジュール５０４は、第１の書き込みユニットを含む。第１の書き込みユニットは、第１のデータの複数の部分をインターリーブして書き込むことと並行する方式で、第２のデータの複数の部分を複数のスタティックランダムアクセスメモリにインターリーブして書き込むように構成される。
【００５９】
いくつかの実施例では、装置５００は、決定モジュール５０６をさらに含む。決定モジュール５０６は、一つの書き込みサイクル内に第１のデータの複数の部分における第１の部分が書き込まれる第１のオブジェクトと、第２のデータの複数の部分における第２の部分が書き込まれる第２のオブジェクトとを決定するように構成され、第１のオブジェクトと第２のオブジェクトは、それぞれ複数のスタティックランダムアクセスメモリの一つである。アクセスモジュール５０４は、第２の書き込みユニットを含む。第２の書き込みユニットは、第１のオブジェクトと第２のオブジェクトとが異なることに応答して、第１の部分と第２の部分を第１のオブジェクトと第２のオブジェクトに並行して書き込み、第１のオブジェクトと第２のオブジェクトとが同じであることに応答して、第１の部分と第２の部分の一つを第１のオブジェクトに書き込むように構成される。
【００６０】
いくつかの実施例では、決定モジュール５０６は、優先度決定ユニットを含む。当該優先度決定ユニットは、第１のアクセスデバイスと第２のアクセスデバイスの優先度を決定するように構成される。アクセスモジュール５０４は、第３の書き込みユニットを含む。第３の書き込みユニットは、第２のアクセスデバイスの優先度が第１のアクセスデバイスの優先度より高いことに応答して、第２の部分を第１のオブジェクトに書き込み、第１の部分の第１のオブジェクトへの書き込みを、次の書き込みサイクルまで遅延するように構成される。
【００６１】
いくつかの実施例では、受信されたアクセス要求は、第１のアクセスデバイスからの、データを読み取る第１の要求であり、第１の要求に対応するデータは、第１のデータである。受信モジュール５０２は、受信ユニットを含む。当該受信ユニットは、第２のアクセスデバイスからの、複数のスタティックランダムアクセスメモリから第２のデータを読み取る第２の要求を受信するように構成される。アクセスモジュール５０４は、第１の読み取りユニットを含む。当該第１の読み取りユニットは、第１のデータの複数の部分をインターリーブして読み取ることと並行する方式で、複数のスタティックランダムアクセスメモリから第２のデータの複数の部分をインターリーブして読み取るように構成される。
【００６２】
いくつかの実施例では、装置５００は、決定モジュール５０６をさらに含む。決定モジュール５０６は、一つの読み取りサイクル内に第１のデータの複数の部分における第１の部分が読み取られる第１のオブジェクトと、第２のデータの複数の部分における第２の部分が読み取られる第２のオブジェクトとを決定するように構成され、第１のオブジェクトと第２のオブジェクトは、それぞれ複数のスタティックランダムアクセスメモリの一つである。アクセスモジュール５０４は、第２の読み取りユニットを含む。当該第２の読み取りユニットは、第１のオブジェクトと第２のオブジェクトとが異なることに応答して、第１のオブジェクトと第２のオブジェクトから第１の部分と第２の部分を並行して読み取り、第１のオブジェクトと第２のオブジェクトとが同じであることに応答して、第１のオブジェクトから第１の部分と第２の部分の一つを読み取るように構成される。
【００６３】
いくつかの実施例では、決定モジュール５０６は、優先度決定ユニットを含む。当該優先度決定ユニットは、第１のアクセスデバイスと第２のアクセスデバイスの優先度を決定するように構成される。アクセスモジュール５０４は、第３の読み取りユニットを含む。当該第３の読み取りユニットは、第２のアクセスデバイスの優先度が第１のアクセスデバイスの優先度より高いことに応答して、第１のオブジェクトから第２の部分を読み取り、第１のオブジェクトから第１の部分を読み取ることを、次の読み取りサイクルに遅延するように構成される。
【００６４】
いくつかの実施例では、決定モジュール５０６は、メモリ決定ユニットを含む。当該メモリ決定ユニットは、第１の要求から第１のデータにアクセスするための宛先アドレスを決定し、宛先アドレスと所定のアドレスマッピング関係とに基づいて、第１のデータの第１の部分に対応する目標アドレスを決定し、目標アドレスのうちの少なくとも一部に基づいて、第１の部分に対応するスタティックランダムアクセスメモリを決定するように構成される。
【００６５】
図５に示すこれらのユニットは、ハードウェアモジュール、ソフトウェアモジュール、ファームウェアモジュール、又はその任意の組み合わせとして部分的又は全体的に実現することができる。特に、いくつかの実施例では、上記に説明したフロー、方法、又はプロセスは、記憶システム又は記憶システムに対応するホスト又は記憶システムから独立した他のコンピューティングデバイスにおけるハードウェアにより実現することができる。
【００６６】
図６は、本開示の実施例を実現できるための例示的な機器６００を示す概略ブロック図である。機器６００は、図１に記載のようなトレーニングデータ拡張装置１１０及び／又はモデルトレーニング装置１４０を実現するためのものであってもよい。図に示すように、コンピュータシステム６００は、ＲＯＭ６０２に記憶されているコンピュータプログラム命令、又は記憶ユニット６０８からＲＡＭ６０３にローディングされたコンピュータプログラム命令に基づいて、各種の適切な動作と処理を実行できる中央処理装置（ＣＰＵ）５０１を含む。ＲＡＭ６０３には、システム６００の操作に必要な各種のプログラムとデータがさらに記憶されている。ＣＰＵ６０１と、ＲＯＭ６０２と、ＲＡＭ６０３とは、バス６０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース６０５もバス６０４に接続される。
【００６７】
機器６００におけるの複数の部材はＩ／Ｏインターフェース６０５に接続され、前記複数の部材は、例えばキーボード、マウス等の入力ユニット６０６と、例えば種々なディスプレイ、スピーカ等の出力ユニット６０７と、例えば磁気ディスク、光ディスク等の記憶ユニット６０８と、例えばネットワークカード、モデム、無線通信送受信機等の通信ユニット６０９と、を含む。通信ユニット６０９は、機器６００が例えばインターネットのようなコンピュータネット及び／又は種々なキャリアネットワークによりその他の機器に情報／データを交換することを許可する。
【００６８】
処理ユニット６０１は、上述の各方法及び処理、例えば方法４００を実行する。例えば、一部の実施例では、方法４００は、コンピュータソフトウエアプログラムとして実現されることができ、機器読取可能な媒体、例えば記憶ユニット６０８に有形的に含まれる。一部の実施例では、コンピュータプログラムの一部又は全ては、ＲＯＭ６０２及び／又は通信ユニット６０９を経て、機器６００にロード及び／又はインストールされる。コンピュータプログラムがＲＡＭ６０３にロードされＣＰＵ  １１０１によって実行される場合に、上述の方法４００の一つ又は複数のステップに実行される。或いは、その他の実施例では、ＣＰＵ６０１は、その他の任意の適当な方式（例えば、ファームウェアを経る）により方法４００を実行されるように構成される。
【００６９】
本開示で、上記した機能は、少なくとも部分的に一つ又は複数のハードウェア論理装置によって実行することができる。例えば、非限定的に、使用可能なハードウェア論理装置としては、プログラム可能なゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け標準品（ＡＳＳＰ）、システムオンチップ（ＳＯＣ）、複雑プログラム可能論理装置（ＣＰＬＤ）等が挙げられる。
【００７０】
本開示の方法を実施するためのプログラムコードは、一つ又は複数のプログラミング言語の任意の組み合わせにより記述することができる。これらのプログラムコードは、汎用コンピュータ、専門コンピュータ又はその他のプログラミングデータ処理装置のプロセッサ又は制御器に提供し、プログラムコードがプロセッサ又は制御器によって実行される場合に、フローチャート及び／又はブロック図に規定の機能／操作を実施させることができる。プログラムコードは、完全に機器で実行されてもよいし、部分に機器で実行されてもよく、独立のパッケージとして部分に機器で実行されるとともに、部分にリモート機器で実行されてもよく、又は完全にリモート機器又はサーバで実行されてもよい。
【００７１】
本開示の説明において、機器読取可能な媒体は、有形な媒体であってもよく、命令実行システム、装置又は機器の使用、又は命令実行システム、装置又は機器との併用に提供されるプログラムを含み、又は記憶する。機器読取可能な媒体は、機器読取可能な信号媒体又は機器読取可能な記憶媒体であってもよい。機器読取可能な媒体は、電子、磁気、光学、電磁、赤外線、若しくは半導体のシステム、装置、若しくは機器、又は前述の任意の適切な組み合わせを含むことができるがこれらに限定されない。機器読取可能な記憶媒体のさらなる具体例として、１つ若しくは複数のワイヤーを有する電気的接続、携帯型フロッピー（登録商標）ディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ又はフラッシュメモリ）、光ファイバー、携帯型コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、又は前述の任意の組み合わせを含む。
【００７２】
更に、特定の順序で各操作を説明したが、このような操作を、示される特定の順序又は順位で実行することが求められ、又は図示した操作の全てを実行して所望の結果を取得することが求められる。一定の環境において、複数の任務と並列処理が有利である可能性がある。同様に、以上の説明には、若干の具体的な実現詳細を含むが、本開示の範囲を限定するものと理解されてはならない。単独の実施例の前後に説明したある特徴は、一つの実現に組み合わせて実現することができる。逆に、一つの実現の前後に説明した種々な特徴は、単独又は任意の適合したサブ組み合わせとして複数の実現に実現することができる。
【００７３】
構造特徴及び／又は方法論理動作を特定した言語により、本対象を説明したが、特許請求の範囲に限定される対象は、上記した特定の特徴又は動作に限らない。逆に、上記した特定特徴と動作は、特許請求の範囲の例を実現するためのものに過ぎない。
【図１】
2020087499.tif 000003
【図２】
2020087499.tif 000004
【図３】
2020087499.tif 000005
【図４】
2020087499.tif 000006
【図５】
2020087499.tif 000007
【図６】
2020087499.tif 000008