JP2020087499A - スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体 - Google Patents

スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体 Download PDF

Info

Publication number
JP2020087499A
JP2020087499A JP2019197271A JP2019197271A JP2020087499A JP 2020087499 A JP2020087499 A JP 2020087499A JP 2019197271 A JP2019197271 A JP 2019197271A JP 2019197271 A JP2019197271 A JP 2019197271A JP 2020087499 A JP2020087499 A JP 2020087499A
Authority
JP
Japan
Prior art keywords
data
static random
random access
request
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019197271A
Other languages
English (en)
Other versions
JP6880149B2 (ja
Inventor
シャオヂャン ゴン,
Xiaozhang Gong
シャオヂャン ゴン,
ジン ワン,
Jing Wang
ジン ワン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2020087499A publication Critical patent/JP2020087499A/ja
Application granted granted Critical
Publication of JP6880149B2 publication Critical patent/JP6880149B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System (AREA)

Abstract

【課題】SRAMのマルチ読み取り/マルチ書き込みを実現し、SRAM回路を再設計する必要なくSRAMのマルチ読み取り/マルチ書き込み操作を低コストで実現し、アクセスデバイスのアクセス効率を向上する技術を提供する。【解決手段】方法は、スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するステップと、アクセス要求がデータに対する書き込み要求であることに応答して、データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップと、アクセス要求がデータに対する読み取り要求であることに応答して、複数のスタティックランダムアクセスメモリからデータの所定サイズの複数の部分をインターリーブして読み取るステップと、を含む。【選択図】図3

Description

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

Claims (20)

  1. スタティックランダムアクセスメモリにアクセスするための方法であって、
    スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するステップと、
    前記アクセス要求が前記データに対する書き込み要求であることに応答して、前記データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップと、
    前記アクセス要求が前記データに対する読み取り要求であることに応答して、前記複数のスタティックランダムアクセスメモリから前記データの所定サイズの複数の部分をインターリーブして読み取るステップと、を含むことを特徴とする、スタティックランダムアクセスメモリにアクセスするための方法。
  2. 前記複数の部分の前記所定サイズは、前記複数のスタティックランダムアクセスメモリの容量に基づいて決定されることを特徴とする、請求項1に記載のスタティックランダムアクセスメモリにアクセスするための方法。
  3. 受信された前記アクセス要求は、第1のアクセスデバイスからの、前記データを書き込む第1の要求であり、前記第1の要求に対応する前記データは、第1のデータであり、
    前記方法は、
    第2のアクセスデバイスからの、第2のデータを前記複数のスタティックランダムアクセスメモリに書き込む第2の要求を受信するステップと、
    前記第1のデータの前記複数の部分をインターリーブして書き込むことと並行する方式で、前記第2のデータの複数の部分を前記複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップと、をさらに含むことを特徴とする、請求項1に記載のスタティックランダムアクセスメモリにアクセスするための方法。
  4. 前記第2のデータの複数の部分を前記複数のスタティックランダムアクセスメモリにインターリーブして書き込むステップは、
    一つの書き込みサイクル内に前記第1のデータの前記複数の部分における第1の部分が書き込まれる第1のオブジェクトと、前記第2のデータの前記複数の部分における第2の部分が書き込まれる第2のオブジェクトとを決定するステップであって、前記第1のオブジェクトと前記第2のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであるステップと、
    前記第1のオブジェクトと前記第2のオブジェクトとが異なることに応答して、前記第1の部分と前記第2の部分を前記第1のオブジェクトと前記第2のオブジェクトに並行して書き込むステップと、
    前記第1のオブジェクトと前記第2のオブジェクトとが同じであることに応答して、前記第1の部分と前記第2の部分の一つを前記第1のオブジェクトに書き込むステップと、を含むことを特徴とする、請求項3に記載のスタティックランダムアクセスメモリにアクセスするための方法。
  5. 前記第1の部分と前記第2の部分の一つを前記第1のオブジェクトに書き込むステップは、
    前記第1のアクセスデバイスと前記第2のアクセスデバイスの優先度を決定するステップと、
    前記第2のアクセスデバイスの優先度が前記第1のアクセスデバイスの優先度より高いことに応答して、前記第2の部分を前記第1のオブジェクトに書き込み、前記第1の部分の前記第1のオブジェクトへの書き込みを次の書き込みサイクルまで遅延するステップと、を含むことを特徴とする、請求項4に記載のスタティックランダムアクセスメモリにアクセスするための方法。
  6. 受信された前記アクセス要求は、第1のアクセスデバイスからの、前記データを読み取る第1の要求であり、前記第1の要求に対応する前記データは、第1のデータであり、前記方法は、
    第2のアクセスデバイスからの、前記複数のスタティックランダムアクセスメモリから第2のデータを読み取る第2の要求を受信するステップと、
    前記第1のデータの前記複数の部分をインターリーブして読み取ることと並行する方式で、前記複数のスタティックランダムアクセスメモリから前記第2のデータの複数の部分をインターリーブして読み取るステップと、をさらに含むことを特徴とする、請求項1に記載のスタティックランダムアクセスメモリにアクセスするための方法。
  7. 前記複数のスタティックランダムアクセスメモリから前記第2のデータの複数の部分をインターリーブして読み取るステップは、
    一つの読み取りサイクル内に前記第1のデータの前記複数の部分における第1の部分が読み取られる第1のオブジェクトと、前記第2のデータの前記複数の部分における第2の部分が読み取られる第2のオブジェクトとを決定するステップであって、前記第1のオブジェクトと前記第2のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであるステップと、
    前記第1のオブジェクトと前記第2のオブジェクトとが異なることに応答して、前記第1のオブジェクトと前記第2のオブジェクトから前記第1の部分と前記第2の部分を並行して読み取るステップと、
    前記第1のオブジェクトと前記第2のオブジェクトとが同じであることに応答して、前記第1のオブジェクトから前記第1の部分と前記第2の部分の一つを読み取るステップと、を含むことを特徴とする、請求項6に記載のスタティックランダムアクセスメモリにアクセスするための方法。
  8. 前記第1のオブジェクトから前記第1の部分と前記第2の部分の一つを読み取るステップは、
    前記第1のアクセスデバイスと前記第2のアクセスデバイスの優先度を決定するステップと、
    前記第2のアクセスデバイスの優先度が前記第1のアクセスデバイスの優先度より高いことに応答して、前記第1のオブジェクトから前記第2の部分を読み取り、前記第1のオブジェクトから前記第1の部分を読み取ることを次の読み取りサイクルまで遅延するステップと、を含むことを特徴とする、請求項7に記載のスタティックランダムアクセスメモリにアクセスするための方法。
  9. 前記第1のオブジェクトを決定することは、
    前記第1の要求から前記第1のデータにアクセスするための宛先アドレスを決定するステップと、
    前記宛先アドレスと所定のアドレスマッピング関係とに基づいて、前記第1のデータの前記第1の部分に対応する目標アドレスを決定するステップと、
    前記目標アドレスのうちの少なくとも一部に基づいて、前記第1の部分に対応するスタティックランダムアクセスメモリを決定するステップと、を含むことを特徴とする、請求項4又は7に記載のスタティックランダムアクセスメモリにアクセスするための方法。
  10. スタティックランダムアクセスメモリにアクセスするための装置であって、
    スタティックランダムアクセスメモリに関連されたデータに対するアクセス要求を受信するように構成される受信モジュールと、
    前記アクセス要求が前記データに対する書き込み要求であることに応答して、前記データの所定サイズの複数の部分を異なる複数のスタティックランダムアクセスメモリにインターリーブして書き込み、前記アクセス要求が前記データに対する読み取り要求であることに応答して、前記複数のスタティックランダムアクセスメモリから前記データの所定サイズの複数の部分をインターリーブして読み取るように構成されるアクセスモジュールと、を含むことを特徴とする、スタティックランダムアクセスメモリにアクセスするための装置。
  11. 前記複数の部分の前記所定サイズは、前記複数のスタティックランダムアクセスメモリの容量に基づいて決定されることを特徴とする、請求項10に記載のスタティックランダムアクセスメモリにアクセスするための装置。
  12. 受信された前記アクセス要求は、第1のアクセスデバイスからの、前記データを書き込む第1の要求であり、前記第1の要求に対応する前記データは、第1のデータであり、
    前記受信モジュールは、
    第2のアクセスデバイスからの、第2のデータを前記複数のスタティックランダムアクセスメモリに書き込む第2の要求を受信するように構成される受信ユニットを含み、
    前記アクセスモジュールは、
    前記第1のデータの前記複数の部分をインターリーブして書き込むことと並行する方式で、前記第2のデータの複数の部分を前記複数のスタティックランダムアクセスメモリにインターリーブして書き込むように構成される第1の書き込みユニットを含むことを特徴とする、請求項10に記載のスタティックランダムアクセスメモリにアクセスするための装置。
  13. 一つの書き込みサイクル内に前記第1のデータの前記複数の部分における第1の部分が書き込まれる第1のオブジェクトと、前記第2のデータの前記複数の部分における第2の部分が書き込まれる第2のオブジェクトとを決定するように構成される決定モジュールをさらに含み、前記第1のオブジェクトと前記第2のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであり、
    前記アクセスモジュールは、
    前記第1のオブジェクトと前記第2のオブジェクトとが異なることに応答して、前記第1の部分と前記第2の部分を前記第1のオブジェクトと前記第2のオブジェクトに並行して書き込み、前記第1のオブジェクトと前記第2のオブジェクトとが同じであることに応答して、前記第1の部分と前記第2の部分の一つを前記第1のオブジェクトに書き込むように構成される第2の書き込みユニットをさらに含むことを特徴とする、請求項12に記載のスタティックランダムアクセスメモリにアクセスするための装置。
  14. 前記決定モジュールは、前記第1のアクセスデバイスと前記第2のアクセスデバイスの優先度を決定するように構成される優先度決定ユニットを含み、
    前記アクセスモジュールは、
    前記第2のアクセスデバイスの優先度が前記第1のアクセスデバイスの優先度より高いことに応答して、前記第2の部分を前記第1のオブジェクトに書き込み、前記第1の部分の前記第1のオブジェクトへの書き込みを次の書き込みサイクルまで遅延するように構成される第3の書き込みユニットを含むことを特徴とする、請求項13に記載のスタティックランダムアクセスメモリにアクセスするための装置。
  15. 受信された前記アクセス要求は、第1のアクセスデバイスからの、前記データを読み取る第1の要求であり、前記第1の要求に対応する前記データは、第1のデータであり、
    前記受信モジュールは、第2のアクセスデバイスからの、前記複数のスタティックランダムアクセスメモリから第2のデータを読み取る第2の要求を受信するように構成される受信ユニットを含み、
    前記アクセスモジュールは、前記第1のデータの前記複数の部分をインターリーブして読み取ることと並行する方式で、前記複数のスタティックランダムアクセスメモリから前記第2のデータの複数の部分をインターリーブして読み取るように構成される第1の読み取りユニットを含むことを特徴とする、請求項10に記載のスタティックランダムアクセスメモリにアクセスするための装置。
  16. 一つの読み取りサイクル内に前記第1のデータの前記複数の部分における第1の部分が読み取られる第1のオブジェクトと、前記第2のデータの前記複数の部分における第2の部分が読み取られる第2のオブジェクトとを決定するように構成される決定モジュールをさらに含み、前記第1のオブジェクトと前記第2のオブジェクトは、それぞれ前記複数のスタティックランダムアクセスメモリの一つであり、
    前記アクセスモジュールは、
    前記第1のオブジェクトと前記第2のオブジェクトとが異なることに応答して、前記第1のオブジェクトと前記第2のオブジェクトから前記第1の部分と前記第2の部分を並行して読み取り、前記第1のオブジェクトと前記第2のオブジェクトとが同じであることに応答して、前記第1のオブジェクトから前記第1の部分と前記第2の部分の一つを読み取るように構成される第2の読み取りユニットを含むことを特徴とする、請求項15に記載のスタティックランダムアクセスメモリにアクセスするための装置。
  17. 前記決定モジュールは、前記第1のアクセスデバイスと前記第2のアクセスデバイスの優先度を決定するように構成される優先度決定ユニットをさらに含み、
    前記アクセスモジュールは、前記第2のアクセスデバイスの優先度が前記第1のアクセスデバイスの優先度より高いことに応答して、前記第1のオブジェクトから前記第2の部分を読み取り、前記第1のオブジェクトから前記第1の部分を読み取ることを次の読み取りサイクルまで遅延するように構成される第3の読み取りユニットを含むことを特徴とする、請求項16に記載のスタティックランダムアクセスメモリにアクセスするための装置。
  18. 前記決定モジュールは、メモリ決定ユニットを含み、
    前記メモリ決定ユニットは、
    前記第1の要求から前記第1のデータにアクセスするための宛先アドレスを決定し、
    前記宛先アドレスと所定のアドレスマッピング関係とに基づいて、前記第1のデータの前記第1の部分に対応する目標アドレスを決定し、
    前記目標アドレスのうちの少なくとも一部に基づいて、前記第1の部分に対応するスタティックランダムアクセスメモリを決定するように構成されることを特徴とする、請求項13又は16に記載のスタティックランダムアクセスメモリにアクセスするための装置。
  19. 電子機器であって、
    一つの又は複数のプロセッサと、
    一つ又は複数のプログラムを記憶するための記憶装置と、を含み、
    前記一つ又は複数のプログラムが前記一つの又は複数のプロセッサによって実行される場合、前記一つ又は複数のプロセッサが、請求項1から9のいずれかに記載の方法を実現することを特徴とする、電子機器。
  20. コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
    前記プログラムがプロセッサによって実行される場合に、請求項1から9のいずれかに記載の方法が実現されることを特徴とする、コンピュータ読み取り可能な記憶媒体。
JP2019197271A 2018-11-21 2019-10-30 スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体 Active JP6880149B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811393074.0A CN111209232B (zh) 2018-11-21 2018-11-21 访问静态随机存取存储器的方法、装置、设备和存储介质
CN201811393074.0 2018-11-21

Publications (2)

Publication Number Publication Date
JP2020087499A true JP2020087499A (ja) 2020-06-04
JP6880149B2 JP6880149B2 (ja) 2021-06-02

Family

ID=68618055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019197271A Active JP6880149B2 (ja) 2018-11-21 2019-10-30 スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体

Country Status (5)

Country Link
US (1) US11093388B2 (ja)
EP (1) EP3657337B1 (ja)
JP (1) JP6880149B2 (ja)
KR (1) KR102332375B1 (ja)
CN (1) CN111209232B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11295206B2 (en) * 2020-02-07 2022-04-05 Google Llc Interleaving memory requests to accelerate memory accesses
CN112306420B (zh) * 2020-11-13 2023-01-17 山东云海国创云计算装备产业创新中心有限公司 一种基于存储池的数据读写方法、装置、设备及存储介质
CN113051194B (zh) * 2021-03-02 2023-06-09 长沙景嘉微电子股份有限公司 缓冲存储器、gpu、处理系统及缓存访问方法
CN113515474A (zh) * 2021-07-30 2021-10-19 上海阵量智能科技有限公司 数据处理装置、方法、计算机设备和存储介质
TW202411847A (zh) * 2022-09-13 2024-03-16 創鑫智慧股份有限公司 記憶體查找裝置及方法
CN116069265B (zh) * 2023-03-22 2024-03-19 中昊芯英(杭州)科技有限公司 一种储存器和数据处理方法、装置及存储介质
CN117174139B (zh) * 2023-08-25 2024-06-18 合芯科技(苏州)有限公司 一种信号生成电路及存储器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2277181B (en) * 1991-12-23 1995-12-13 Intel Corp Interleaved cache for multiple accesses per clock in a microprocessor
JPH05197619A (ja) 1992-01-22 1993-08-06 Nec Corp マルチcpu用メモリ制御回路
JPH10269167A (ja) 1997-03-28 1998-10-09 Chokosoku Network Computer Gijutsu Kenkyusho:Kk メモリ・アクセス方式
US6195726B1 (en) * 1999-03-24 2001-02-27 Hewlett-Packard Company Method and apparatus for performing patterned read and write operations
JP5532671B2 (ja) * 2009-05-08 2014-06-25 ソニー株式会社 データ記憶システムおよびデータ記憶方法、実行装置および制御方法、並びに制御装置および制御方法
US20130114332A1 (en) * 2011-11-03 2013-05-09 Arm Limited Reducing read disturbs and write fails in a data storage cell
US9224452B2 (en) * 2013-01-17 2015-12-29 Qualcomm Incorporated Heterogeneous memory systems, and related methods and computer-readable media for supporting heterogeneous memory access requests in processor-based systems
JP6146128B2 (ja) * 2013-05-20 2017-06-14 ヤマハ株式会社 データ処理装置
US9396116B2 (en) 2013-11-26 2016-07-19 Globalfoundries Inc. Write and read collision avoidance in single port memory devices
US9405480B2 (en) * 2014-01-13 2016-08-02 Seagate Technology Llc Interleaving codewords over multiple flash planes
KR20160120004A (ko) * 2015-04-07 2016-10-17 삼성전자주식회사 시스템 온-칩 및 이를 포함하는 전자 기기
US9697118B1 (en) * 2015-12-09 2017-07-04 Nxp Usa, Inc. Memory controller with interleaving and arbitration scheme
CN107562657B (zh) * 2016-07-01 2020-02-07 北京忆芯科技有限公司 全交织sram控制器

Also Published As

Publication number Publication date
KR102332375B1 (ko) 2021-11-29
CN111209232A (zh) 2020-05-29
JP6880149B2 (ja) 2021-06-02
KR20200060248A (ko) 2020-05-29
EP3657337B1 (en) 2022-08-31
EP3657337A1 (en) 2020-05-27
US11093388B2 (en) 2021-08-17
CN111209232B (zh) 2022-04-22
US20200159658A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
JP2020087499A (ja) スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体
US10678479B1 (en) Registers for restricted memory
US7418572B2 (en) Pretranslating input/output buffers in environments with multiple page sizes
JP4926963B2 (ja) 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法
JP4866646B2 (ja) メモリーに送るコマンドの選択方法、メモリーコントローラー、コンピュータシステム
US20180039424A1 (en) Method for accessing extended memory, device, and system
US9158683B2 (en) Multiport memory emulation using single-port memory devices
US20200409664A1 (en) Transpose operations using processing element array
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
EP4276640A1 (en) Storage device and method, electronic device, and storage medium
US7114054B2 (en) Systems and methods for increasing transaction entries in a hardware queue
EP3872629B1 (en) Method and apparatus for executing instructions, device, and computer readable storage medium
US8127110B2 (en) Method, system, and medium for providing interprocessor data communication
CN112039745B (zh) Can总线通讯控制系统及通信系统
CN108959105B (zh) 一种实现地址映射的方法及装置
CN112559403B (zh) 一种处理器及其中的中断控制器
US20060218313A1 (en) DMA circuit and computer system
US11354130B1 (en) Efficient race-condition detection
US10997277B1 (en) Multinomial distribution on an integrated circuit
WO2021093249A1 (zh) 外部设备访问计算机内存的方法
US20170075571A1 (en) Memory device and control method thereof
CN113297111B (zh) 人工智能芯片及其操作方法
US11704211B1 (en) Error avoidance in memory device
US11620120B1 (en) Configuration of secondary processors
US10990408B1 (en) Place and route aware data pipelining

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210430

R150 Certificate of patent or registration of utility model

Ref document number: 6880149

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250