(58)【調査した分野】(Int.Cl.,DB名)
受信された前記アクセス要求は、第1のアクセスデバイスからの、前記データを書き込む第1の要求であり、前記第1の要求に対応する前記データは、第1のデータであり、
前記方法は、
第2のアクセスデバイスからの、第2のデータを前記複数のスタティックランダムアクセスメモリに書き込む第2の要求を受信するステップと、
前記第1のデータの前記複数の部分をインターリーブして書き込むことと並行する方式で、前記第2のデータの複数の部分を前記複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップと、をさらに含むことを特徴とする、請求項1に記載のスタティックランダムアクセスメモリにアクセスするための方法。
受信された前記アクセス要求は、第1のアクセスデバイスからの、前記データを読み取る第1の要求であり、前記第1の要求に対応する前記データは、第1のデータであり、前記方法は、
第2のアクセスデバイスからの、前記複数のスタティックランダムアクセスメモリから第2のデータを読み取る第2の要求を受信するステップと、
前記第1のデータの前記複数の部分をインターリーブして読み取ることと並行する方式で、前記複数のスタティックランダムアクセスメモリから前記第2のデータの複数の部分をインターリーブして読み取るステップと、をさらに含むことを特徴とする、請求項1に記載のスタティックランダムアクセスメモリにアクセスするための方法。
受信された前記アクセス要求は、第1のアクセスデバイスからの、前記データを書き込む第1の要求であり、前記第1の要求に対応する前記データは、第1のデータであり、
前記受信モジュールは、
第2のアクセスデバイスからの、第2のデータを前記複数のスタティックランダムアクセスメモリに書き込む第2の要求を受信するように構成される受信ユニットを含み、
前記アクセスモジュールは、
前記第1のデータの前記複数の部分をインターリーブして書き込むことと並行する方式で、前記第2のデータの複数の部分を前記複数のスタティックランダムアクセスメモリにインターリーブして書き込むように構成される第1の書き込みユニットを含むことを特徴とする、請求項9に記載のスタティックランダムアクセスメモリにアクセスするための装置。
一つの書き込みサイクル内に前記第1のデータの前記複数の部分における第1の部分が書き込まれる第1のオブジェクトと、前記第2のデータの前記複数の部分における第2の部分が書き込まれる第2のオブジェクトとを決定するように構成される決定モジュールをさらに含み、前記第1のオブジェクトと前記第2のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであり、
前記アクセスモジュールは、
前記第1のオブジェクトと前記第2のオブジェクトとが異なることに応答して、前記第1の部分と前記第2の部分を前記第1のオブジェクトと前記第2のオブジェクトに並行して書き込み、前記第1のオブジェクトと前記第2のオブジェクトとが同じであることに応答して、前記第1の部分と前記第2の部分の一つを前記第1のオブジェクトに書き込むように構成される第2の書き込みユニットをさらに含むことを特徴とする、請求項10に記載のスタティックランダムアクセスメモリにアクセスするための装置。
受信された前記アクセス要求は、第1のアクセスデバイスからの、前記データを読み取る第1の要求であり、前記第1の要求に対応する前記データは、第1のデータであり、
前記受信モジュールは、第2のアクセスデバイスからの、前記複数のスタティックランダムアクセスメモリから第2のデータを読み取る第2の要求を受信するように構成される受信ユニットを含み、
前記アクセスモジュールは、前記第1のデータの前記複数の部分をインターリーブして読み取ることと並行する方式で、前記複数のスタティックランダムアクセスメモリから前記第2のデータの複数の部分をインターリーブして読み取るように構成される第1の読み取りユニットを含むことを特徴とする、請求項9に記載のスタティックランダムアクセスメモリにアクセスするための装置。
一つの読み取りサイクル内に前記第1のデータの前記複数の部分における第1の部分が読み取られる第1のオブジェクトと、前記第2のデータの前記複数の部分における第2の部分が読み取られる第2のオブジェクトとを決定するように構成される決定モジュールをさらに含み、前記第1のオブジェクトと前記第2のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであり、
前記アクセスモジュールは、
前記第1のオブジェクトと前記第2のオブジェクトとが異なることに応答して、前記第1のオブジェクトと前記第2のオブジェクトから前記第1の部分と前記第2の部分を並行して読み取り、前記第1のオブジェクトと前記第2のオブジェクトとが同じであることに応答して、前記第1のオブジェクトから前記第1の部分と前記第2の部分の一つを読み取るように構成される第2の読み取りユニットを含むことを特徴とする、請求項13に記載のスタティックランダムアクセスメモリにアクセスするための装置。
【発明を実施するための形態】
【0011】
以下に、図面を参照しながら本開示の実施例をさらに詳しく説明する。図面には、本開示の一部の実施例を示したが、本開示は、種々な形式により実現することができ、ここで説明した実施例に限定されると理解してはならない。逆に、本開示を明らかで完全に理解するために、これらの実施例を提供する。なお、本開示の図面及び実施例は、例示的な作用を奏し、本開示の保護範囲を限定するものと理解してはならない。
【0012】
本開示の実施例の説明において、「含む」の用語及びその類似の用語は、開放的に含まれることをいい、即ち「含むがこれらに限定されない」ことを指す。なお、「基づく」は「少なくとも部分に基づく」をいう。なお、「一実施例」又は「当該実施例」は「少なくとも一つの実施例」をいう。「第1」、「第2」等は、異なる又は同一の対象を指す。以下、その他の明確及び暗黙的な定義がある場合もある。
【0013】
一般的には、電子機器は、設計のニーズによって一定容量のSRAMを含むことができる。例えば、電子機器は、256KBのSRAMを含むことができる。従来の方案では、単一の256KBのSRAMを使用して実現することができる。
【0014】
上記のように、従来の方案では、SRAMは、通常、単一ポートSRAMであり、単一読み取り/単一書き込み操作のみを実現することができる。マルチポートSRAMであっても、回路レベルから別に設計する必要があり、作業効率も低下する。
【0015】
本開示の実施例によれば、複数のSRAMの組み合わせを使用してマルチ読み取り/マルチ書き込みを実現することができるSRAM方案を提供するので、SRAM自体を回路レベルから再設計する必要がない。また、本開示の実施例に係るSRAM方案は、SRAMの読み書き効率を向上させることができる。
【0016】
例えば、256KBのSRAMを必要とする電子機器にとっては、二つの128KBのSRAMを提供することでニーズを満たすことができ、又は四つの64KBのSRAMを提供することでニーズを満たすこともでき、又は一つの128KBと二つの64KBのSRAMを提供することでニーズを満たすこともできる。複数のSRAMを使用することによって、アクセスデバイスのアクセス効率を向上させることができる。以下、これについて具体的に説明する。
【0017】
以下、図面を参照して本開示の実施例を具体的に説明する。
図1は、本開示の実施例が実施可能の例示的な環境100の概略図を示す。例示的な環境100は、複数のアクセスデバイスがマルチアービタなどの電子機器を介して、複数のSRAMにアクセスするために用いられ、SRAMに対してマルチ読み取り/マルチ書き込み操作の実行を実現することを示している。アクセスデバイスは、例えば、中央処理装置、デジタル信号プロセッサなどの機器であってもよい。マルチアービタは一例にすぎず、他の電子デバイス又は回路を使用して当該電子機器を実現することができることも理解されたい。
【0018】
複数のアクセスデバイス102、104・・・・・・106のうちの少なくとも一つのアクセスデバイスは、一つのアクセスサイクル内でマルチアービタ112にデータアクセス要求を発行することができる。本発明では、アクセスとは、読み取り又は書き込みを指す。例えば、アクセスデバイスは、マルチアービタ112を介してSRAMにデータを書き込み、SRAMからデータを読み取ることが可能な機器を指し、アクセスサイクルは、SRAMへの読み取りサイクル又は書き込みサイクルを指し、データアクセス要求は、SRAMにデータを書き込む要求と、SRAMからデータを読み取る要求とを指す。
【0019】
一つのアクセスサイクル内に、一つのアクセス要求のみがある場合、マルチアービタ112は、アクセス要求に基づいて複数のSRAMからデータを読み取るか、又は複数のSRAMにデータを書き込む。一つのアクセスサイクル内に、複数のアクセス要求がある場合、マルチアービタ112は、複数のアクセス要求に基づいてアクセスオブジェクトを決定する。
【0020】
アクセスオブジェクトが競合(即ち衝突)しない場合、当該アクセスサイクル内に複数のSRAMを並行してアクセスすることができる。例えば、一つのアクセスサイクル内において、アクセスデバイス102がSRAM122に対して読み取りを行うとともに、アクセスデバイス104がSRAM124に対して書き込みを行う場合、マルチアービタ112は、SRAM122に対して読み取り操作を実行するとともに、SRAM124に対して書き込み操作を実行する。
【0021】
アクセスオブジェクトが競合する場合、当該アクセスサイクル内の優先度に基づいてSRAMにアクセスすることができる。例えば、一つのアクセスサイクル内において、アクセスデバイス102と104とがSRAM122に対して読み取りを行う場合、マルチアービタ112は、予め決定された優先度に基づいてSRAM122に対して読み取り操作を実行する。例えば、アクセスデバイス102の優先度がより高い場合、マルチアービタ112は、アクセスデバイス102が読み取ろうとするデータを読み取り、アクセスデバイス104が読み取ろうとするデータを遅延して読み取る。次のアクセスサイクル内では、機器102が読み取ろうとするデータがSRAM124に位置する。この場合、当該アクセスサイクル内において、SRAM122と124とが並行して読み取ることができる。
【0022】
以下、
図2を参照してさらに詳細に説明する。
図2は、本開示の一実施例に係るダブル読み取り/ダブル書き込みのSRAM装置の概略ブロック図を示す。SRAM装置は、第1のSRAM122と第2のSRAM124とを含む。第1のSRAM122と第2のSRAM124との容量は同じであり、例えば、いずれも512個のメモリユニットを有する。第1のSRAM122におけるメモリユニットは、偶数番号で表され、第2のSRAM124におけるメモリユニットは、奇数番号で表される。
【0023】
本発明者は、研究によって、データが通常、連続的の方式でSRAMに記憶されることを発見した。したがって、二つのSRAM122と124の使用によりインターリーブして単一のSRAMを構成することにより、アクセスデバイスがSRAM122と124とをインターリーブしてアクセスすることができ、複数のアクセスデバイスの場合にSRAM122と124を並行してアクセスする確率を増加させ、アクセス効率を向上させる。
【0024】
例えば、第1のデータは、第1のSRAM122のメモリユニット0、第2のSRAM124のメモリユニット1、第1のSRAM122のメモリユニット2、第2のSRAM124のメモリユニット3・・・・・・第2のSRAM124のメモリユニット9に順次記憶することができる。第2のデータは、第1のSRAM122のメモリユニット410、第2のSRAM124のメモリユニット411、第1のSRAM122のメモリユニット412、第2のSRAM124のメモリユニット413・・・・・・第2のSRAM124のメモリユニット419に順次記憶することができる。
【0025】
例えば、第1のアクセスデバイス102が第1のデータをメモリユニット0〜9に書き込み、第2のアクセスデバイス102が第2のデータをメモリユニット410〜419に書き込む必要がある場合、第1のアクセス(書き込み)サイクルにおいて、第1のデータの第1の部分が第1のSRAM122のメモリユニット0に書き込まれ、且つ第2のデータの第1の部分が第1のSRAM122のメモリユニット410に書き込まれる必要があるため、アクセス競合が存在する。なぜなら、第1のSRAM122は、単一のポートしか有していないため、一つのアクセス要求のみに応答することができるからである。
【0026】
この場合、マルチアービタ112は、優先度によって調停することができる。例えば、第1のアクセスデバイス102の優先度は、第2のアクセスデバイス104の優先度より高い。したがって、マルチアービタは、第1のデータの第1の部分をメモリユニット0に書き込み、第2のデータの第1の部分の書き込みを次のアクセスサイクルに遅延させる。
【0027】
次のアクセスサイクル内において、マルチアービタ112は、第1のアクセスデバイス102からの第1のデータの第2の部分が第2のSRAM124のメモリユニット1に書き込まれ、且つ第2のアクセスデバイス104からの第2のデータの第1の部分が第1のSRAM122のメモリユニット410に書き込まれることを決定する。この場合、アクセス競合が存在しない。したがって、マルチアービタ112は、第1のSRAM122のメモリユニット410と第2のSRAM124のメモリユニット1に対する並行した書き込みを実行する。
【0028】
次のアクセスサイクル内に、マルチアービタ112は、メモリユニット411とメモリユニット2に対する並行した書き込みを実行する。このように類推して、第1のデータと第2のデータとを書き終えるまで、いずれもデータの競合が発生しない。
【0029】
第1のアクセスサイクル内に、二つのアクセスデバイスの競合が発生する場合以外では、その後、すべてのサイクル内にいずれもアクセス競合がないことが分かる。第1のアクセスデバイス102がSRAMを読み書く効率は、100%であり、第2のアクセスデバイス104がSRAMを読み書く効率は、10/11=91%である。対照的に、従来の単一のSRAMを採用してSRAM装置を構成する場合、各計算ユニットの効率は、50%にしかならない。要約すると、M個の計算ユニットは、ほとんど互いに干渉することなくSRAMを同時にアクセスすることができ、MとNとの間には制限関係がない。すなわち、Mは、Nより小さくても、等しくても、大きくてもよい。通常、Nの数が増加すると、競合の確率を低下することができる。
【0030】
上記の例では、マルチアービタ112は、アクセスデバイスからのアクセス要求に基づいて宛先アドレスを決定する。次いで、マルチアービタ112は、宛先アドレスと所定のアドレスマッピング関係とに基づいて第1のデータの各部分に対応する目標アドレスを決定する。例えば、第1のSRAM122と第2のSRAM124とを含むSRAM装置の記憶深さは、1024である。したがって、目標アドレスは、10ビットで表す必要がある。例えば、メモリユニット0の目標アドレスは、0000000000であり、メモリユニット1の目標アドレスは、0000000001である。
【0031】
上記の例では、最後の一つのビットを使用してアクセスされるSRAMを決定している。例えば、最後のビットが0である場合、第1のSRAM122にアクセスする。最後のビットが1である場合、第2のSRAM124にアクセスする。実際には、アドレスの任意の二つのビットで調停することができる。
【0032】
例えば、四つのSRAMを使用して一つのSRAM装置を構成する場合、目標アドレスの0番目と4番目を使用して調停することができる。{address[4]、address[0]}は、目標アドレスの4番目と0番目を抽出して、一つの2ビットの2進数に結合することを表す。マルチアービタ112の調停ロジックは、{address[4]、address[0]}がバイナリ00に等しい場合、第1のSRAMにアクセスし、{address[4]、address[0]}がバイナリ01に等しい場合、第2のSRAMにアクセスし、{address[4]、address[0]}がバイナリ10に等しい場合、第3のSRAMにアクセスし、{address[4]、address[0]}がバイナリ11に等しい場合、第4のSRAMにアクセスすることを表すことができる。本開示の範囲はこの点で限定されない。異なるアプリケーションに対してアドレスの異なるビット位置の一つ又は複数のビットを選択することによって調停することができる。
【0033】
図2は、二つのSRAMを示しているが、本開示の範囲はこの点で限定されない。例えば、より多くのSRAMの使用によりインターリーブして記憶されるSRAM装置を構成することができる。例えば、三つのSRAMの使用によりインターリーブして記憶されるSRAM装置を構成する場合、データは、三つのSRAMに順次インターリーブして書き込むことができる。いくつかの実施例では、SRAM装置の組み合わせ方式は、動的に構成することもできる。例えば、新しいSRAMを追加したり、一つのSRAMを除去した後、インターリーブ方式は、それに応じて動的に調整することができる。
【0034】
また、
図2の例では、第1のSRAM122と第2のSRAM124の容量とが同じだが、第1のSRAM122と第2のSRAM124の容量が異なってもよい。例えば、第1のSRAM122が512個のメモリユニットを有し、第2のSRAM124が1024個のメモリユニットを有するとすることができる。この場合、第1のSRAM122の一つのメモリユニットにアクセスし、その後、第2のSRAM124の二つのメモリユニットにアクセスし、その後、第1のSRAM122の一つのメモリユニットにさらにアクセスし、その後、第2のSRAM124の二つのメモリユニットにさらにアクセスする方式によって、第1のSRAM122と第2のSRAM124をインターリーブしてアクセスすることができる。言い換えれば、複数のSRAMに書き込まれる複数の部分の所定サイズは、複数のSRAMの容量に基づいて決定することができる。
【0035】
図2の例では、第1のアクセスデバイス102がより高い優先度を有しているが、本開示の範囲はこれらに限定されない。他のいくつかの例では、第2のアクセスデバイス104は、固定されたより高い優先度を有することができ、あるいは第1のアクセスデバイス102と第2のアクセスデバイス104は、交互に優先権を有することができる。例えば、第1の競合が発生した場合には、第1のアクセスデバイス102がより高い優先度を有する。第2の競合が発生した場合には、第2のアクセスデバイス104がより高い優先度を有し、このように類推する。また、いくつかの場合では、重み付けられた交互優先度モードを有することもできる。例えば、優先度の順次は、第1のアクセスデバイス102、第2のアクセスデバイス104、第2のアクセスデバイス104、第1のアクセスデバイス102、第2のアクセスデバイス104、第2のアクセスデバイス104・・・・・・であってもよく、このように類推する。
【0036】
様々の優先度モードが説明されているが、本開示はこれらに限定されないと理解すべきである。優先度モードは動的に調整することができる。例えば、固定された優先度モードから交互優先度モードや重み付けられた交互優先度モードに調整することができる。
【0037】
図2の例では、単一ポートで読み書きされるSRAMを使用して説明しているが、本開示はこれらに限定されない。例えば、SRAMは、単一ポートSRAM、擬似デュアルポートSRAM、デュアルポートSRAM、マルチポートSRAM、又はその組み合わせであってもよい。また、
図2の例ではデータを書き込む方式で説明しているが、本開示の範囲はこれらに限定されない。
図2の例では、アクセス操作は、データを読み取る操作であってもよい。例えば、
図2の例では、第1のアクセスデバイス102と第2のアクセスデバイス104は、第1のSRAM122と第2のSRAM124からデータをインターリーブして読み取ることができる。別の例では、第1のアクセスデバイス102は、第1のSRAM122と第2のSRAM124にデータをインターリーブして書き込むことができ、第2のアクセスデバイス104は、第1のSRAM122と第2のSRAM124からデータをインターリーブして読み取ることができる。
【0038】
図3は、本開示の一実施例に係るSRAMにアクセスするための方法300のフローチャートを示す。例えば、方法300は、
図1に示すような環境でマルチアービタ112によって実行することができる。方法300は、さらに、図示しない付加的なステップを含むことができ、及び/又は図示されたステップを省略することができることを理解されたい。本開示の範囲はこの点で限定されない。
【0039】
ステップ302において、スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信する。例えば、マルチアービタ112は、第1のアクセスデバイス102からの第1のアクセス要求を受信することができる。当該第1のアクセス要求は、第1のSRAM122と第2のSRAM124にデータを書き込むインターリーブ書き込み要求であってもよく、又は第1のSRAM122と第2のSRAM124からデータをインターリーブして読み取る要求であってもよい。別の例では、マルチアービタ112は、第1のアクセスデバイス102からの第1のアクセス要求と第2のアクセスデバイス104からの第2のアクセス要求を受信することができる。上記の例と同様、第1のアクセス要求は、データを読み取る要求又はデータを書き込む要求であってもよく、第2のアクセス要求は、データを読み取る要求又はデータを書き込む要求であってもよい。
【0040】
ステップ303において、アクセス要求がデータを書き込む要求であるか、それともデータを読み取る要求であるかを判断する。
【0041】
ステップ304において、アクセス要求がデータに対する書き込み要求であることに応答して、データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込む。例えば、マルチアービタ112は、第1のアクセスデバイス102からの、データに対する書き込み要求に応答して、第1のデータの第1の部分を第1のSRAM122に書き込み、第1のデータの第2の部分を第2のSRAM124に書き込み、第1のデータの第3の部分を第1のSRAM122に書き込み、第1のデータの第4の部分を第2のSRAM124に書き込むことができる。このように類推して、第1のデータがすべて書き終わるまで続く。
【0042】
ステップ306において、アクセス要求がデータに対する読み取り要求であることに応答して、複数のスタティックランダムアクセスメモリからデータの所定サイズの複数の部分をインターリーブして読み取る。例えば、マルチアービタ112は、第1のアクセスデバイス102からの、データに対する読み取り要求に応答して、第1のSRAM122から第1のデータの第1の部分を読み取り、第2のSRAM124から第1のデータの第2の部分を読み取り、第1のSRAM122から第1のデータの第3の部分を読み取り、第2のSRAM124から第1のデータの第4の部分を読み取ることができる。このように類推して、第1のデータがすべて読み取られるまで続く。
【0043】
第1のデータの各部分は、1ビット、2ビットなどの所定のサイズを有することができる。第1のデータの各部分は同じであってもよいし、異なってもよい。例えば、第1の部分は1ビットであり、第2の部分は2ビットであり、第3の部分は1ビットであり、第4の部分は2ビットである等と類推することができる。
【0044】
図4は、本開示の一実施例に係るSRAMにアクセスするための方法400の具体的なフローチャートを示す。例えば、方法400は、
図1に示すような環境で実行することができる。方法400は、さらに、図示しない付加的なステップを含むことができ、及び/又は図示されたステップを省略することができることを理解されたい。本開示の範囲はこの点で限定されない。
【0045】
ステップ402において、マルチアービタ112は、第1のSRAMにアクセスするための第1の要求と、第2のSRAMにアクセスするための第2の要求とを受信する。例えば、第1の要求は、第1のアクセスデバイスからの、第1のデータを読み取る又は第1のデータを書き込むための要求であってもよく、第2の要求は、第2のアクセスデバイスからの、第2のデータを読み取る又は第2のデータを書き込むための要求であってもよい。
【0046】
ステップ404において、マルチアービタ112は、第1のアクセスデータの宛先アドレスと第2のアクセスデータの宛先アドレスとを決定する。当該宛先アドレスは、データのロジックアドレスであってもよく、例えば要求に含まれるロジックアドレスであってもよい。
【0047】
ステップ406において、マルチアービタ112は、当該宛先アドレスと所定のアドレスマッピング関係とに基づいて当該アクセスサイクル内の書き込もうとするデータ部分の目標アドレスを決定することができる。例えば、マルチアービタ112は、データのロジックアドレスとマッピング関係とに基づいて、第1のデータの第1の部分の目標アドレスと、第2のデータの第1の部分の目標アドレスとを決定することができる。例えば、第1のデータの第1の部分の目標アドレスは「0000000000」であり、第2のデータの第1の部分の目標アドレスは「0000100110」である決定することができる。
【0048】
ステップ408において、マルチアービタ112が目標アドレスに基づいて当該アクセスサイクル内にアクセスしようとするSRAMを決定することができる。例えば、マルチアービタ112は、最後の一つのビットのデータを使用して「0000000000」と「0000100110」に基づいて、第1のデータの第1の部分と第2の部分がいずれも第1のSRAM122にアクセスすることを決定する。
【0049】
ステップ410において、マルチアービタ112は、フレームワーク408によって決定されたアクセスオブジェクトに基づいて、アクセスしようとするSRAMが同じであるか否かを判断する。
【0050】
ステップ416において、アクセスしようとするオブジェクトに競合が存在しない場合、マルチアービタ112は、第1のSRAM122と第2のSRAM124を並行してアクセスする。例えば、当該アクセスサイクル内に、第1のデータの第1の部分を第1のSRAM122に書き込み、第2のSRAM124から第2のデータの第1の部分を読み取る。次のアクセスサイクル内に、第1のデータの第2の部分を第2のSRAM124に書き込み、第1のSRAM122から第2のデータの第2の部分を読み取る。このように類推して、第1のデータをすべて書き込み、第2のデータをすべて読み取るまで続く。
【0051】
ステップ412において、アクセスしようとするオブジェクトに競合が存在する場合、マルチアービタ112は、各アクセスデバイスの現在の優先度を決定する。例えば、マルチアービタ112は、固定優先度、交互優先度、又は重み付けられた優先度ポリシーのうちの一つに基づいて、現在のアクセスサイクル内に第1のアクセスデバイス102の優先度がより高いと決定する。
【0052】
ステップ414において、マルチアービタ112は、ステップ212によって決定された優先度に基づいて、対応するSRAMにアクセスする。例えば、当該アクセスサイクルに、第1のアクセスデバイス102からの第1のデータの第1の部分を第1のSRAM122に書き込み、第2のアクセスデバイス102の第1のSRAM122からデータを読み取る操作を次のアクセスサイクルまで遅延する。
【0053】
次のアクセスサイクル内において、マルチアービタ112は、ステップ406、408、410の操作を繰り返す。この場合、ステップ410で決定されるアクセスしようとするSRAMが異なるため、方法400はステップ416に進む。マルチアービタ112は、第1のSRAM122と第2のSRAM124に並行してアクセスする。例えば、当該アクセスサイクル内において、第1のデータの第1の部分を第1のSRAM122に書き込み、第2のSRAM124から第2のデータの第1の部分を読み取る。次のアクセスサイクル内において、第1のデータの第2の部分を第2のSRAM124に書き込み、第1のSRAM122から第2のデータの第2の部分を読み取る。このように類推して、第1のデータをすべて書き込み、第2のデータをすべて読み取るまで続く。
【0054】
上記の説明から分かるように、本開示の実施例は、複数のSRAMを用いて単一の「仮想的な」SRAM装置を構築し、複数のSRAMを交互にアクセスする。このような方式により、本開示の実施例は、マルチ読み取り/マルチ書き込み機能を有するSRAM装置を低コストで構築することができるので、SRAMに対して回路の再設計する必要がなく、複数のアクセスデバイスの場合にSRAM装置に対するアクセス効率を大幅に向上させることができる。
【0055】
本開示の実施例は、上記の方法又はプロセスを実現するための対応する装置をさらに提供する。
図5は、本開示の実施例に係るスタティックランダムアクセスメモリにアクセスするための装置500の概略ブロック図を示す。当該装置500は、例えば、
図1の環境で実施することができる。
図5に示すように、装置500は、受信モジュール502と、アクセスモジュール504と、決定モジュール506とを含むことができる。
【0056】
いくつかの実施例では、受信モジュール502は、スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するように構成される。アクセスモジュール504アクセス要求がデータに対する書き込み要求であることに応答して、データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込み、アクセス要求がデータに対する読み取り要求であることに応答して、複数のスタティックランダムアクセスメモリからデータの所定サイズの複数の部分をインターリーブして読み取るように構成される。
【0057】
いくつかの実施例では、複数の部分の所定サイズは、複数のスタティックランダムアクセスメモリの容量に基づいて決定される。
【0058】
いくつかの実施例では、受信されたアクセス要求は、第1のアクセスデバイスからの、データを書き込む第1の要求であり、第1の要求に対応するデータは、第1のデータである。受信モジュール502は、受信ユニットを含む。受信ユニットは、第2のアクセスデバイスからの、第2のデータを複数のスタティックランダムアクセスメモリに書き込む第2の要求を受信するように構成される。アクセスモジュール504は、第1の書き込みユニットを含む。第1の書き込みユニットは、第1のデータの複数の部分をインターリーブして書き込むことと並行する方式で、第2のデータの複数の部分を複数のスタティックランダムアクセスメモリにインターリーブして書き込むように構成される。
【0059】
いくつかの実施例では、装置500は、決定モジュール506をさらに含む。決定モジュール506は、一つの書き込みサイクル内に第1のデータの複数の部分における第1の部分が書き込まれる第1のオブジェクトと、第2のデータの複数の部分における第2の部分が書き込まれる第2のオブジェクトとを決定するように構成され、第1のオブジェクトと第2のオブジェクトは、それぞれ複数のスタティックランダムアクセスメモリの一つである。アクセスモジュール504は、第2の書き込みユニットを含む。第2の書き込みユニットは、第1のオブジェクトと第2のオブジェクトとが異なることに応答して、第1の部分と第2の部分を第1のオブジェクトと第2のオブジェクトに並行して書き込み、第1のオブジェクトと第2のオブジェクトとが同じであることに応答して、第1の部分と第2の部分の一つを第1のオブジェクトに書き込むように構成される。
【0060】
いくつかの実施例では、決定モジュール506は、優先度決定ユニットを含む。当該優先度決定ユニットは、第1のアクセスデバイスと第2のアクセスデバイスの優先度を決定するように構成される。アクセスモジュール504は、第3の書き込みユニットを含む。第3の書き込みユニットは、第2のアクセスデバイスの優先度が第1のアクセスデバイスの優先度より高いことに応答して、第2の部分を第1のオブジェクトに書き込み、第1の部分の第1のオブジェクトへの書き込みを、次の書き込みサイクルまで遅延するように構成される。
【0061】
いくつかの実施例では、受信されたアクセス要求は、第1のアクセスデバイスからの、データを読み取る第1の要求であり、第1の要求に対応するデータは、第1のデータである。受信モジュール502は、受信ユニットを含む。当該受信ユニットは、第2のアクセスデバイスからの、複数のスタティックランダムアクセスメモリから第2のデータを読み取る第2の要求を受信するように構成される。アクセスモジュール504は、第1の読み取りユニットを含む。当該第1の読み取りユニットは、第1のデータの複数の部分をインターリーブして読み取ることと並行する方式で、複数のスタティックランダムアクセスメモリから第2のデータの複数の部分をインターリーブして読み取るように構成される。
【0062】
いくつかの実施例では、装置500は、決定モジュール506をさらに含む。決定モジュール506は、一つの読み取りサイクル内に第1のデータの複数の部分における第1の部分が読み取られる第1のオブジェクトと、第2のデータの複数の部分における第2の部分が読み取られる第2のオブジェクトとを決定するように構成され、第1のオブジェクトと第2のオブジェクトは、それぞれ複数のスタティックランダムアクセスメモリの一つである。アクセスモジュール504は、第2の読み取りユニットを含む。当該第2の読み取りユニットは、第1のオブジェクトと第2のオブジェクトとが異なることに応答して、第1のオブジェクトと第2のオブジェクトから第1の部分と第2の部分を並行して読み取り、第1のオブジェクトと第2のオブジェクトとが同じであることに応答して、第1のオブジェクトから第1の部分と第2の部分の一つを読み取るように構成される。
【0063】
いくつかの実施例では、決定モジュール506は、優先度決定ユニットを含む。当該優先度決定ユニットは、第1のアクセスデバイスと第2のアクセスデバイスの優先度を決定するように構成される。アクセスモジュール504は、第3の読み取りユニットを含む。当該第3の読み取りユニットは、第2のアクセスデバイスの優先度が第1のアクセスデバイスの優先度より高いことに応答して、第1のオブジェクトから第2の部分を読み取り、第1のオブジェクトから第1の部分を読み取ることを、次の読み取りサイクルに遅延するように構成される。
【0064】
いくつかの実施例では、決定モジュール506は、メモリ決定ユニットを含む。当該メモリ決定ユニットは、第1の要求から第1のデータにアクセスするための宛先アドレスを決定し、宛先アドレスと所定のアドレスマッピング関係とに基づいて、第1のデータの第1の部分に対応する目標アドレスを決定し、目標アドレスのうちの少なくとも一部に基づいて、第1の部分に対応するスタティックランダムアクセスメモリを決定するように構成される。
【0065】
図5に示すこれらのユニットは、ハードウェアモジュール、ソフトウェアモジュール、ファームウェアモジュール、又はその任意の組み合わせとして部分的又は全体的に実現することができる。特に、いくつかの実施例では、上記に説明したフロー、方法、又はプロセスは、記憶システム又は記憶システムに対応するホスト又は記憶システムから独立した他のコンピューティングデバイスにおけるハードウェアにより実現することができる。
【0066】
図6は、本開示の実施例を実現できるための例示的な機器600を示す概略ブロック図である。機器600は、
図1に記載のようなトレーニングデータ拡張装置110及び/又はモデルトレーニング装置140を実現するためのものであってもよい。図に示すように、コンピュータシステム600は、ROM602に記憶されているコンピュータプログラム命令、又は記憶ユニット608からRAM603にローディングされたコンピュータプログラム命令に基づいて、各種の適切な動作と処理を実行できる中央処理装置(CPU)501を含む。RAM603には、システム600の操作に必要な各種のプログラムとデータがさらに記憶されている。CPU601と、ROM602と、RAM603とは、バス604を介して互いに接続されている。入力/出力(I/O)インターフェース605もバス604に接続される。
【0067】
機器600におけるの複数の部材はI/Oインターフェース605に接続され、前記複数の部材は、例えばキーボード、マウス等の入力ユニット606と、例えば種々なディスプレイ、スピーカ等の出力ユニット607と、例えば磁気ディスク、光ディスク等の記憶ユニット608と、例えばネットワークカード、モデム、無線通信送受信機等の通信ユニット609と、を含む。通信ユニット609は、機器600が例えばインターネットのようなコンピュータネット及び/又は種々なキャリアネットワークによりその他の機器に情報/データを交換することを許可する。
【0068】
処理ユニット601は、上述の各方法及び処理、例えば方法400を実行する。例えば、一部の実施例では、方法400は、コンピュータソフトウエアプログラムとして実現されることができ、機器読取可能な媒体、例えば記憶ユニット608に有形的に含まれる。一部の実施例では、コンピュータプログラムの一部又は全ては、ROM602及び/又は通信ユニット609を経て、機器600にロード及び/又はインストールされる。コンピュータプログラムがRAM603にロードされCPU 1101によって実行される場合に、上述の方法400の一つ又は複数のステップに実行される。或いは、その他の実施例では、CPU601は、その他の任意の適当な方式(例えば、ファームウェアを経る)により方法400を実行されるように構成される。
【0069】
本開示で、上記した機能は、少なくとも部分的に一つ又は複数のハードウェア論理装置によって実行することができる。例えば、非限定的に、使用可能なハードウェア論理装置としては、プログラム可能なゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準品(ASSP)、システムオンチップ(SOC)、複雑プログラム可能論理装置(CPLD)等が挙げられる。
【0070】
本開示の方法を実施するためのプログラムコードは、一つ又は複数のプログラミング言語の任意の組み合わせにより記述することができる。これらのプログラムコードは、汎用コンピュータ、専門コンピュータ又はその他のプログラミングデータ処理装置のプロセッサ又は制御器に提供し、プログラムコードがプロセッサ又は制御器によって実行される場合に、フローチャート及び/又はブロック図に規定の機能/操作を実施させることができる。プログラムコードは、完全に機器で実行されてもよいし、部分に機器で実行されてもよく、独立のパッケージとして部分に機器で実行されるとともに、部分にリモート機器で実行されてもよく、又は完全にリモート機器又はサーバで実行されてもよい。
【0071】
本開示の説明において、機器読取可能な媒体は、有形な媒体であってもよく、命令実行システム、装置又は機器の使用、又は命令実行システム、装置又は機器との併用に提供されるプログラムを含み、又は記憶する。機器読取可能な媒体は、機器読取可能な信号媒体又は機器読取可能な記憶媒体であってもよい。機器読取可能な媒体は、電子、磁気、光学、電磁、赤外線、若しくは半導体のシステム、装置、若しくは機器、又は前述の任意の適切な組み合わせを含むことができるがこれらに限定されない。機器読取可能な記憶媒体のさらなる具体例として、1つ若しくは複数のワイヤーを有する電気的接続、携帯型フロッピー(登録商標)ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能ROM(EPROM又はフラッシュメモリ)、光ファイバー、携帯型コンパクトディスク読み取り専用メモリ(CD−ROM)、光学記憶装置、磁気記憶装置、又は前述の任意の組み合わせを含む。
【0072】
更に、特定の順序で各操作を説明したが、このような操作を、示される特定の順序又は順位で実行することが求められ、又は図示した操作の全てを実行して所望の結果を取得することが求められる。一定の環境において、複数の任務と並列処理が有利である可能性がある。同様に、以上の説明には、若干の具体的な実現詳細を含むが、本開示の範囲を限定するものと理解されてはならない。単独の実施例の前後に説明したある特徴は、一つの実現に組み合わせて実現することができる。逆に、一つの実現の前後に説明した種々な特徴は、単独又は任意の適合したサブ組み合わせとして複数の実現に実現することができる。
【0073】
構造特徴及び/又は方法論理動作を特定した言語により、本対象を説明したが、特許請求の範囲に限定される対象は、上記した特定の特徴又は動作に限らない。逆に、上記した特定特徴と動作は、特許請求の範囲の例を実現するためのものに過ぎない。