JP2011013835A - メモリシステム、メモリアクセス方法、及びプログラム - Google Patents
メモリシステム、メモリアクセス方法、及びプログラム Download PDFInfo
- Publication number
- JP2011013835A JP2011013835A JP2009156036A JP2009156036A JP2011013835A JP 2011013835 A JP2011013835 A JP 2011013835A JP 2009156036 A JP2009156036 A JP 2009156036A JP 2009156036 A JP2009156036 A JP 2009156036A JP 2011013835 A JP2011013835 A JP 2011013835A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- transfer
- memory access
- buffer
- issued
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
Abstract
【課題】複数のメモリチャネルに対して分割転送されるメモリアクセス要求が独立処理されることによって、転送完了時に順序制御処理等により余分なバッファや複雑回路実装が必要となる。
【解決手段】複数のメモリコマンド発行部にて、分割されたメモリアクセス要求に対する発行タイミングの調整を行い、論理アドレスの小さい順にメモリコマンドを発行する。
【選択図】図1
【解決手段】複数のメモリコマンド発行部にて、分割されたメモリアクセス要求に対する発行タイミングの調整を行い、論理アドレスの小さい順にメモリコマンドを発行する。
【選択図】図1
Description
本発明はメモリシステム等に関し、メモリアクセス手法に関わるものである。
組み込み系システムは、CPUの他、特定の機能を実現する機能ブロックを複数搭載しシステムに求められる機能を実現している。特に、性能要求が高い機能ブロックに関してはハードワイヤードロジックで回路実装が成されることで、ソフトウェア処理では達成することが困難な高性能・高速処理を実現している。多くの機能ブロックではデータの授受は外部主記憶デバイスを介して行い、複雑な処理や多くのデータ参照を行う処理においては、主記憶を一時記憶・ワークメモリとして使用することで機能を実現している。多くの組み込み系システムは、外部主記憶にDRAMデバイスを採用している。
近年、デジタル機器において、高機能/高性能化が継続的に進展している。例えばデジタルカメラ等の映像入力機器やプリンタ等の画像出力機器においては高解像度化が進展している。その結果、取り扱うデータ量が継続的に増加しており、単位時間内に多くのデータ量を取り扱うためのメモリアクセスの高速化が必須である。また、リアルタイム処理を必要とする動画像においても高精細化が進展しており、更なるメモリアクセスの高速化が今後も必須な状況である。
対して外部主記憶に使用されるDRAMデバイスにおいても、半導体プロセスの進化に伴い高帯域デバイスが供給されている。DRAM等のメモリデバイスは、半導体プロセスが進化したとしても、メモリアクセスを受信しそのアクセスが完了するためのアクセス時間の改善は特性上困難である。したがって、通常、DRAMデバイス内のクロック周波数は高速化せずに、半導体プロセスの進化により高速化可能なデータ転送レートを向上させることでデータ転送帯域を改善が行われている。
高速化されないアクセス時間に対しては1回のアクセスで同時に複数のメモリセルに並列にアクセスを行うことによって高速化されたデータ転送帯域に追従している。これは、一般的にDRAMのプリフェッチと言われている。SDRAMではプリフェッチの段数が1段、すなわち一回のメモリアクセスで1組のメモリセルにアクセスする構成であったのに対し、DDR−SDRAMではプリフェッチの段数を2段としている。プリフェッチの段数を2段とすることで、DDR−SDRAMでは2倍のデータ転送レートで受信しDRAM内部のクロック周波数を維持したまま2組のメモリセルにアクセスすることで高帯域アクセスを実現している。DDR2−SDRAMではプリフェッチの段数を4段とし、DDR3−SDRAMではプリフェッチの段数を8段としている。これによって更なる高帯域を実現するメモリデバイスを供給している。
しかし、プリフェッチの段数を増やすことで高帯域のメモリアクセスを可能にすると同時に1回のDRAMデバイスに対するアクセス単位が大きくなるという影響が生じている。通常、SDRAMデバイスに対するアクセスにおいてはバースト転送により、メモリに対する読み書きを実現することが一般的である。SDRAMでは一番小さい転送単位が1ビート転送であるのに対し、DDR−SDRAMでは2ビート転送、DDR2−SDRAMでは4ビート転送、DDR3−SDRAMでは8ビート転送が最小転送単位となる。具体的な例を示すと、外部記憶として64ビットのデータ幅でSDRAMを使用する場合、SDRAMにおける最小アクセス単位は8バイト(Byte)となる。また、DDR−SDRAMでは16バイト、DDR2−SDRAMでは32バイト、DDR3−SDRAMでは64バイトとなる。外部記憶としてSDRAMを使用するバスマスタが最小アクセス単位に満たない転送を行う場合には、SDRAMにアクセス発行単位毎でしかアクセスが発行できないためメモリデータバス上に余分な転送が発生することになる。
単一のバス転送を複数のメモリチャネルに分割して発行するメモリシステムにおいて、各メモリチャネルのメモリアクセス発行の独立動作を行うことに起因してバス転送制御が複雑になる。また、データ順序確保のためのバッファ回路を必要とする。
本発明では、単一のバス転送を複数のメモリチャネルに分割して発行するメモリシステムにて、単純な構成で且つ簡易な方法で分割されたメモリアクセスの発行時間制御を行うことを目的とする。
本発明では、単一のバス転送を複数のメモリチャネルに分割して発行するメモリシステムにて、単純な構成で且つ簡易な方法で分割されたメモリアクセスの発行時間制御を行うことを目的とする。
本発明は前記課題を解決するために、バスマスタとメモリ制御回路と複数のメモリチャネルとを有し、論理アドレス空間を分割して前記複数のメモリチャネルの物理アドレス空間として割り当てるメモリシステムであって、前記メモリ制御回路は、前記バスマスタからのメモリアクセス要求をアドレスと転送サイズとに従って前記複数のメモリチャネルのメモリアクセス要求に分割して振り分ける分割・振り分け手段と、前記複数のメモリチャネルに対応した複数のメモリコマンド発行手段とを有し、前記メモリコマンド発行手段は、対応するメモリチャネルに対するメモリアクセス要求を格納するバッファと、前記分割・振り分け手段により前記複数のメモリチャネルに分割されたメモリアクセス要求を判別する判別手段と、前記判別手段により分割されたメモリアクセス要求であると判別されたメモリアクセスの発行タイミングを調整する調整手段とを有することを特徴とするメモリシステム等、を提供する。
本発明によると、単一のバスマスタからのメモリアクセスが独立制御される複数のメモリチャネルに分割して転送される場合においても、論理アドレスの小さい順に発行制御を行うことが可能となる。よって、バスインターフェース部分での転送の退避や順序入れ替え等が不要となり、簡易な回路でバス転送制御を行うことが可能となる。
以下、本発明の実施形態を図面に基づいて説明する。
<第一の実施形態>
本発明の第一の実施形態について、図1に示すメモリシステムを用いて説明する。
図1に示すメモリシステムにおいて、3つのバスマスタ103、104、105は、任意のシステムバス106を介してメモリ制御回路(メモリコントローラ)100に接続される。また、メモリ制御回路100は、DRAM群102に接続される。本実施形態では、DRAM群102の各々はデータ幅が16ビットのDDR3−SDRAM101を2組有し、第一のDRAM群102−Aと第二のDRAM群102−Bとの2つのメモリチャネルのメモリインターフェースを具備している。第一のDRAM群102−A及び第二のDRAM群102−Bのメモリ空間の割り当てを図2に示す。論理アドレス空間は、各DRAM群102のアクセス単位毎(本実施形態では、32バイトとする)に分割され、第一のDRAM群102−A及び第二のDRAM群102−Bに交互にマッピングされるものとする。例えば論理アドレス空間における0x100番地は第一のDRAM群102−Aの物理アドレス空間における0x80番地に割り当てられる。また、例えば論理アドレス空間における0x120番地は第二のDRAM群102−Bの物理アドレス空間における0x80番地に割り当てられる。
本発明の第一の実施形態について、図1に示すメモリシステムを用いて説明する。
図1に示すメモリシステムにおいて、3つのバスマスタ103、104、105は、任意のシステムバス106を介してメモリ制御回路(メモリコントローラ)100に接続される。また、メモリ制御回路100は、DRAM群102に接続される。本実施形態では、DRAM群102の各々はデータ幅が16ビットのDDR3−SDRAM101を2組有し、第一のDRAM群102−Aと第二のDRAM群102−Bとの2つのメモリチャネルのメモリインターフェースを具備している。第一のDRAM群102−A及び第二のDRAM群102−Bのメモリ空間の割り当てを図2に示す。論理アドレス空間は、各DRAM群102のアクセス単位毎(本実施形態では、32バイトとする)に分割され、第一のDRAM群102−A及び第二のDRAM群102−Bに交互にマッピングされるものとする。例えば論理アドレス空間における0x100番地は第一のDRAM群102−Aの物理アドレス空間における0x80番地に割り当てられる。また、例えば論理アドレス空間における0x120番地は第二のDRAM群102−Bの物理アドレス空間における0x80番地に割り当てられる。
バスマスタより所定の発行タイミングで発行されたメモリアクセスは、システムバス106を介してメモリ制御回路100に伝達され、メモリ制御回路100のバスインターフェース部107においてバスアクセスとして取り込まれる。バスインターフェース部107は、メモリ制御回路100におけるシステムバスのインターフェースである。バスインターフェース部107は、アドレス(アクセスアドレス)、転送サイズ(アクセスデータサイズ)に基づきメモリ空間の割り当てに従って転送分割・振り分け部108により適宜転送の分割及びDRAM群102への振り分けを行う。
転送分割・振り分け部108の動作の詳細を例示する。図3は、転送分割・振り分け部108の処理フロー図である。
任意のバスマスタからのメモリアクセスを受信すると、転送分割・振り分け部108は、アドレス情報及びアクセス長情報を判別する。転送分割・振り分け部108は、まずメモリアクセスが32バイトアライン(Byte Align)にのった転送であるか否かを判別し(S301)、32バイトアラインにのった転送であれば、さらに32バイト以内の転送であるか否かを判別する(S302)。一方、32バイトアラインにのった転送でなければ、32バイトアラインを超える転送であるか否かを判別する(S303)。
任意のバスマスタからのメモリアクセスを受信すると、転送分割・振り分け部108は、アドレス情報及びアクセス長情報を判別する。転送分割・振り分け部108は、まずメモリアクセスが32バイトアライン(Byte Align)にのった転送であるか否かを判別し(S301)、32バイトアラインにのった転送であれば、さらに32バイト以内の転送であるか否かを判別する(S302)。一方、32バイトアラインにのった転送でなければ、32バイトアラインを超える転送であるか否かを判別する(S303)。
例えば、論理アドレス0x200番地に対する32バイトアクセスを受信すると、32バイトアラインにのった転送であり、且つ32バイト以内の転送であるため、転送分割・振り分け部108はアドレス判定を行う(S304)。論理アドレス0x200番地に対するアクセスは、第一のDRAM群102−Aに割り当てられた転送である。そこで、転送分割・振り分け部108は、第一のDRAM群102−Aに対応したメモリコマンド発行部109に対して物理アドレス0x100番地より32バイトのメモリアクセス要求を転送する(S305)。一方、第二のDRAM群102−Bに割り当てられた論理アドレスに対するアクセスであれば、転送分割・振り分け部108は、第二のDRAM群102−Bに対応したメモリコマンド発行部109に対してメモリアクセス要求を転送する(S306)。
また、論理アドレス0x1000番地に対する128バイトアクセスを受信すると、32バイトアラインの転送であるが32バイトを超える転送であるため、転送分割・振り分け部108はメモリアクセスを分割する(S307)。すなわち、バスマスタからのメモリアクセスを、第一のDRAM群102−A及び第二のDRAM群102−Bに振り分ける。このとき、論理アドレス0x1000番地からの32バイト分と論理アドレス0x1040番地からの32バイト分の転送は、第一のDRAM群102−Aに対応するメモリコマンド発行部109に対して転送される。また、論理アドレス0x1020番地からの32バイト分と論理アドレス0x1060番地からの32バイト分の転送は、第二のDRAM群102−Bに対応するメモリコマンド発行部109に対して転送される。本実施形態では、64バイト転送として2組のメモリコマンド発行部109に転送しているが、32バイト転送を2回に分けて2組のメモリコマンド発行部109に転送しても構わない。
論理アドレス0x810番地からの16バイトアクセスを受信すると、32バイトアラインにのっていないが32バイトアラインを超えない転送であるため、転送分割・振り分け部108はアドレス判定を行う(S304)。本例では、転送分割・振り分け部108は、第一のDRAM群102−Aに対応したメモリコマンド発行部109に対して物理アドレス0x410番地からの16バイトアクセスとして転送する。また、論理アドレス0x2018番地からの32バイトアクセスを受信すると、32バイトアラインにのっておらず32バイトアラインを超える転送であるため、転送分割・振り分け部108はメモリアクセスを分割する(S307)。このとき、転送分割・振り分け部108は、第一のDRAM群102−Aに対応したメモリコマンド発行部109に対して物理アドレス0x1018番地からの8バイトアクセスとして転送する。また、転送分割・振り分け部108は、第二のDRAM群102−Bに対応したメモリコマンド発行部109に対して物理アドレス0x1000番地からの24バイトアクセスとして転送する。
バスインターフェース部107を介して発行されるメモリアクセス要求は、各メモリコマンド発行部109内に具備されるコマンド順序制御部110に転送される。コマンド順序制御部110は、複数のメモリアクセス要求を保持するコマンドバッファ111と、発行するコマンド順序を制御し選択する順序制御回路115と、コマンドステータス検出部114とを有する。コマンドバッファ111には、対応するDRAM群に対して発行するアドレス情報、アクセスサイズ情報、及び読み出し・書き込み情報等が保持されている。また、バスインターフェース部107においてバスマスタからの転送の分割がなされたか否かを保持する分割フラグ情報113をコマンドと対で有している。分割フラグ情報113は、第一のDRAM群102−A及び第二のDRAM群102−Bの双方に転送を分割して発行する場合に、転送分割・振り分け部108よりメモリアクセス要求と対でコマンド順序制御部110に通知されて保持される。コマンドバッファ111に保持されたコマンド情報と分割フラグ情報113は逐次他方のDRAM群内のコマンドステータス検出部114に伝達される。コマンドステータス検出部114は、他方のDRAM群に対応するコマンドバッファ111に保持されたコマンド情報と分割フラグ情報113を受ける。そして、コマンドステータス検出部114は、自身のコマンドバッファ111内に保持された情報を参照し、入力された各コマンドバッファ111のエントリに対して発行可能フラグ情報112を算出し送出する。
図4は、コマンドステータス検出部114における発行可能フラグの判定フローを示す図である。入力された各コマンドバッファ111のエントリに対して、分割フラグに‘1’が立っていない場合(S401のN)には、発行可能フラグとして発行可能であることを示す‘1’を送出する(S403)。また、分割フラグに‘1’が立っていて、バッファ内に分割該当転送がない場合(S401のY、S402のN)には、発行可能フラグとして発行可能であることを示す‘1’を送出する(S403)。一方、分割フラグに‘1’が立っていて、バッファ内に分割該当転送がある場合(S401のY、S402のY)には、発行可能フラグとして発行できないことを示す‘0’を送出する(S404)。分割されたメモリアクセスに該当する転送の判定では、コマンドバッファ111のエントリに対して分割された転送で、且つ論理アドレスとして先にアクセスされるべき転送がコマンドバッファ111内に保持されているかの判定を行う。第一のDRAM群102−Aに対応付けられたコマンドステータス検出部114における判定と第二のDRAM群102−Bに対応付けられたコマンドステータス検出部114における判定では方法が異なる。
第一のDRAM群102−Aに対応するコマンドステータス検出部114では、自身のコマンドバッファ111を参照し同一の32バイト領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定し、それ以外に関して発行可能と判定する。具体例を示すと、入力されたコマンドバッファのエントリが0x100であった場合に、自身のコマンドバッファ111内に分割フラグに‘1’がセットされ、アドレスが0x100〜0x11Fの範囲内である転送が存在すれば発行不可能と判定する。すなわち、論理アドレス0x220に対する第二のDRAM群102−Bに対して分割された転送である論理アドレス0x200〜0x21Fまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが0x104等32バイトアラインにのっていない場合には、自身のコマンドバッファ111のエントリ如何によらず発行可能と判定する。
第二のDRAM群102−Bに対応するコマンドステータス検出部114では、自身のコマンドバッファ111を参照し入力されたアドレスに対して32バイト小さいアドレス領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定する。それ以外に関しては発行可能と判定する。具体例を示すと、入力されたコマンドバッファのエントリが0x100であった場合に、自身のコマンドバッファ111内に分割フラグに‘1’がセットされ、アドレスが0x0E0〜0x0FFの範囲内である転送が存在した場合に発行不可能と判定する。すなわち、論理アドレス0x200に対する第一のDRAM群102−Aに対して分割された転送である論理アドレス0x1E0〜0x1FFまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが0x104等32バイトアラインにのっていない場合には、自身のコマンドバッファ111のエントリ如何によらず発行可能と判定する。
他方のコマンドステータス検出部114からの各コマンドバッファ111のエントリに対する発行可能フラグ情報112は、コマンドバッファ111と分割フラグ情報113と対で保持される。順序制御回路115は、コマンドバッファ111内に保持されるメモリアクセス要求を選択し、メモリコマンド制御コア部116に対して送出する。順序制御回路115においては、メモリコマンド制御コア部116にコマンド送出可能なタイミング、各コマンドバッファ111のエントリに対応する発行可能フラグを参照する。順序制御回路115は、発行可能フラグに‘1’がセットされているエントリを選択し、メモリコマンド制御コア部116に送出する。順序制御回路115におけるメモリアクセス要求の選択は、発行可能フラグに‘1’がセットされていないコマンドバッファ111のエントリから選択することを除いて任意である。本実施形態では発行可能フラグがセットされているエントリのうち、一番先頭にあるものを選択するものとする。本実施形態では例示しないが、一般的に用いられるようにDRAMのページ遷移が少なくなるよう順序制御を実行することも可能であることは言うまでもない。
以下、本実施形態における動作について説明する。なお、DRAM群102−A、102−Bにおける物理アドレス空間の論理アドレス空間へのマッピングは、前述した通り図2に示されるようにマッピングが行われているものとする。すなわち、論理アドレス空間を32バイト毎に分割し、32バイト毎に交互に第一のDRAM群102−Aの物理アドレス空間と第二のDRAM群102−Bの物理アドレス空間とに割り当てられる。ここでは、バスマスタ103、104、105より以下の(1)、(2)、(3)、(4)、(5)の順にメモリアクセスが発行された場合の動作を例示する。
(1)第一のバスマスタ103より論理アドレス0x0番地からの64バイトアクセス
(2)第二のバスマスタ104より論理アドレス0x200番地からの32バイトアクセス
(3)第二のバスマスタ104より論理アドレス0x400番地からの32バイトアクセス
(4)第三のバスマスタ105より論理アドレス0x1000番地からの128バイトアクセス
(5)第二のバスマスタ104より論理アドレス0x420番地からの32バイトアクセス
(1)第一のバスマスタ103より論理アドレス0x0番地からの64バイトアクセス
(2)第二のバスマスタ104より論理アドレス0x200番地からの32バイトアクセス
(3)第二のバスマスタ104より論理アドレス0x400番地からの32バイトアクセス
(4)第三のバスマスタ105より論理アドレス0x1000番地からの128バイトアクセス
(5)第二のバスマスタ104より論理アドレス0x420番地からの32バイトアクセス
各バスマスタから前述の転送が発行された後のある時間におけるコマンドバッファの状態を図5(A)に示す。図5において、左側に図示した第一のバッファ900は第一のDRAM群102−Aに対応したメモリアクセス用に設けられたバッファである。また、右側に図示した第二のバッファ901は第二のDRAM群102−Bに対応したメモリアクセス用に設けられたバッファである。バッファ内には、バッファエントリの有効フラグ情報902、発行要求された物理アドレス情報903が保持されている。また、要求転送サイズ情報904、リードアクセスかライトアクセスかを示す要求転送種別情報905、発行可能フラグ情報906、及び分割フラグ情報907が保持されている。なお、図5には記載していないが、転送マスタ情報や転送優先度情報等を保持しても構わない。また、本実施形態においては、要求転送種別情報905が示す値は動作に影響を与えないものとして、任意の値として明記していないが、後述の第二の実施形態の説明にて要求転送種別情報905を用いた動作について記載する。
図5(A)に示すように、第一のバッファ900と第二のバッファ901の1番目のエントリには、第一のバスマスタ103より発行された論理アドレス0x0番地に対するメモリアクセスが分割され保持されている。本エントリは分割転送であるため、それぞれ分割フラグ(907)が1にセットされている。図4に示したフローと前述した該当転送判定に従い、第一のバッファ900の1番目のエントリの発行可能フラグ(906)には1がセットされる。第二のバッファ901における1番目のエントリの発行可能フラグ(906)には発行不可として0が設定されている。第一のバッファ900の2番目、3番目のエントリには、第二のバスマスタ104より発行された論理アドレス0x200番地、0x400番地へのメモリアクセスが保持されている。このとき、両転送は分割されていないため、分割フラグ(907)には0がセットされ、発行可能フラグ(906)には1がセットされる。第三のバスマスタ105より発行された論理アドレス0x1000番地へのメモリアクセスは、第一のバッファ900の4番目のエントリと第二のバッファ901の2番目のエントリに分割され保持される。また、分割フラグ(907)にはそれぞれ1がセットされている。また、図4に示したフローと前述した該当転送判定に従い、第一のバッファ900の4番目のエントリの発行可能フラグ(906)には1がセットされる。第二のバッファ901における2番目のエントリの発行可能フラグ(906)には発行不可として0が設定されている。更に、第二のバスマスタ104より発行された論理アドレス0x420へのアクセスは第二のバッファ901の3番目のエントリに保持される。分割フラグ(907)には0がセットされ、発行可能フラグ(906)には1がセットされる。
ここで、第一のバッファ900に対しては1番目のエントリが発行可能フラグに1がセットされているため、対応するメモリコマンド制御コア部116に転送が伝達される。第二のバッファ901においては、1番目、2番目のエントリに対して発行可能フラグが0と発行不可を示している。よって、発行可能を示しているなかで一番若いエントリである3番目のエントリのメモリアクセスが対応するメモリコマンド制御コア部116に伝達される。それぞれのメモリアクセス要求は、各メモリコマンド制御コア部116にて独立に処理され並列にメモリアクセスが発行される。前記処理が成された後の各バッファの状態を図5(B)に示す。バッファ状態の変化に従い、図4に示したフローと前述した該当転送判定が実行される。ここでは第二のバッファ901の1番目のエントリの対となるメモリアクセスが先に発行されるため本転送が発行可能と判定され、発行可能フラグが図5(B)内に網掛けで示すように1にセットされる。したがって、第一のバッファ901及び第二のバッファ902ともに、図5(B)における1番目のエントリの転送が、メモリコマンド制御コア部116に発行され、メモリアクセスが実行される。
ここで、第一のバスマスタ103より論理アドレス0x60番地からの64バイトアクセスが発行されると、図5(C)に示すように各バッファの状態が更新される。第一のバッファ900の3番目のエントリに第一のDRAM群102−Aにおける物理アドレス0x40番地へのアクセスが追加される。また、第二のバッファ901の2番目のエントリに第二のDRAM群102−Bにおける物理アドレス0x20番地へのアクセスが追加される。ここで、第一のバッファ900に追加されたエントリに対しては、図4に示したフローと前述した該当転送判定に従い発行不可として発行可能フラグ(906)には0がセットされる。一方、第二のバッファ901に追加されたエントリに対しては、発行可能であるため、発行可能フラグ(906)には1がセットされる。この状態において、第一のバッファ900においては1番目のエントリが、第二のバッファ901においては追加された2番目のエントリがそれぞれメモリコマンド制御コア部116に伝達される。更に、第二のDRAM群102−Bにおける物理アドレス0x800番地に対する転送は、図6(A)、(B)に示すバッファ内の状態を経て発行されることとなる。なお、図6(A)に示す状態では、第一のDRAM群102−Aに対してはメモリアクセスが発行されるが、第二のDRAM群102−Bに対しては発行可能なメモリコマンドが存在しないためにメモリアクセスが発行されない。
前記動作として示したように、分割されたメモリアクセスに対してアドレス順を維持しメモリ転送発行制御が常に可能となる。
前記動作として示したように、分割されたメモリアクセスに対してアドレス順を維持しメモリ転送発行制御が常に可能となる。
<第二の実施形態>
次に、本発明の第二の実施形態について説明する。
第二の実施形態として、メモリアクセスがリードアクセスであるかライトアクセスであるかの要求転送種別に基づき発行順序を制御する構成について説明する。本実施形態における構成は第一の実施形態で示した図1の構成と同様であるが、コマンドステータス検出部の作用を変更することで実現される。
次に、本発明の第二の実施形態について説明する。
第二の実施形態として、メモリアクセスがリードアクセスであるかライトアクセスであるかの要求転送種別に基づき発行順序を制御する構成について説明する。本実施形態における構成は第一の実施形態で示した図1の構成と同様であるが、コマンドステータス検出部の作用を変更することで実現される。
図7は、本実施形態でのコマンドステータス検出部114における発行可能フラグの判定フローを示す図である。入力された各コマンドバッファ111のエントリに対して、ライト(Write)転送である場合(S701のN)には、常に、発行可能フラグとして発行可能であることを示す‘1’を送出する(S704)。一方、リード(Read)転送である場合(S701のN)には、以下の判定を行う。分割フラグに‘1’が立っていない場合(S702のN)には、発行可能フラグとして発行可能であることを示す‘1’を送出する(S704)。また、分割フラグに‘1’が立っていて、バッファ内に分割該当転送がない場合(S702のY、S703のN)には、発行可能フラグとして発行可能であることを示す‘1’を送出する(S704)。一方、分割フラグに‘1’が立っていて、バッファ内に分割該当転送がある場合(S702のY、S703のY)には、発行可能フラグとして発行できないことを示す‘0’を送出する(S705)。分割該当転送の判定では、入力されたコマンドバッファエントリに対して分割された転送で、且つ論理アドレスとして先にアクセスされるべき転送が自身のコマンドバッファ111内に保持されているかの判定を行う。第一のDRAM群102−Aに対応付けられたコマンドステータス検出部114における判定と第二のDRAM群102−Bに対応付けられたコマンドステータス検出部114における判定では方法が異なる。
第一のDRAM群102−Aに対応するコマンドステータス検出部114は、分割フラグが立った状態で入力されたコマンドバッファ111のエントリに示されるアドレスに対して32バイトアラインにのっている転送かを判定する。32バイトアラインにのった転送であった場合には、自身のコマンドバッファ111を参照し同一の32バイト領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定し、それ以外に関して発行可能と判定する。例えば入力されたコマンドバッファのエントリが読み出し転送であり0x100であった場合に、自身のコマンドバッファ111内に分割フラグに‘1’がセットされ、アドレスが0x100〜0x11Fの範囲内である転送が存在すれば発行不可能と判定する。すなわち、論理アドレス0x220に対する第二のDRAM群102−Bに対して分割された転送である論理アドレス0x200〜0x21Fまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが0x104等32バイトアラインにのっていない場合には、自身のコマンドバッファ111のエントリ如何によらず発行可能と判定する。
第二のDRAM群102−Bに対応するコマンドステータス検出部114は、読み出し転送であって分割フラグが立った状態で入力されたコマンドバッファのエントリに示されるアドレスに対して32バイトアラインにのっている転送かを判定する。32バイトアラインにのった転送であった場合、自身のコマンドバッファ111を参照し入力されたアドレスに対して32バイト小さいアドレス領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定する。それ以外に関しては発行可能と判定する。例えば入力されたコマンドバッファのエントリが0x100であった場合に、自身のコマンドバッファ111内に分割フラグに‘1’がセットされ、アドレスが0x0E0〜0x0FFの範囲内である転送が存在した場合に発行不可能と判定する。すなわち、論理アドレス0x200に対する第一のDRAM群102−Aに対して分割された転送である論理アドレス0x1E0〜0x1FFまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが0x104等32バイトアラインにのっていない場合には、自身のコマンドバッファ111のエントリ如何によらず発行可能と判定する。
また入力されたコマンドバッファのエントリがライト転送であった場合には、分割の有無・アドレスによらず発行可能として判定する。
また入力されたコマンドバッファのエントリがライト転送であった場合には、分割の有無・アドレスによらず発行可能として判定する。
以下、本実施形態における動作について説明する。なお、DRAM群102−A、102−Bにおける物理アドレス空間の論理アドレス空間へのマッピングは、前述した図2に示されるようにマッピングが行われているものとする。すなわち、論理アドレス空間を32バイト毎に分割し、32バイト毎に交互に第一のDRAM群102−Aの物理アドレス空間と第二のDRAM群102−Bの物理アドレス空間とに割り当てられる。ここでは、前述した第一の実施形態における例示と同様に、バスマスタ103、104、105より(1)、(2)、(3)、(4)、(5)の順にメモリアクセスが発行された場合の動作を例示する。なお、(1)、(2)のメモリアクセスがリードアクセスであり、(3)、(4)、(5)のメモリアクセスがライトアクセスとする。
各バスマスタから前記転送が発行された後のある時間におけるコマンドバッファの状態を図8(A)に示す。図8において、左側に図示した第一のバッファ900は第一のDRAM群102−Aに対応したメモリアクセス用に設けられたバッファである。また、右側に図示した第二のバッファ901は第二のDRAM群102−Bに対応したメモリアクセス用に設けられたバッファである。バッファ内には、バッファエントリの有効フラグ情報902、発行要求された物理アドレス情報903、要求転送サイズ情報904、要求転送種別情報905、発行可能フラグ情報906、及び分割フラグ情報907が保持されている。
図8(A)に示すように、第一のバッファ900と第二のバッファ901の1番目のエントリには、第一のバスマスタ103より発行された論理アドレス0x0番地に対するリードアクセスが分割され保持されている。本エントリは分割転送であるため、それぞれ分割フラグ(907)が1にセットされている。図7に示したフローと前述した該当転送判定に従い、第一のバッファ900の1番目のエントリの発行可能フラグ(906)には1がセットされ、第二のバッファ901における1番目のエントリの発行可能フラグ(906)には発行不可として0が設定されている。第一のバッファ900の2番目、3番目のエントリには、第二のバスマスタ104より発行された論理アドレス0x200番地へのリードアクセス、0x400番地へのライトアクセスが保持されている。このとき、両転送は分割されていないため、分割フラグ(907)には0がセットされ、発行可能フラグ(906)には1がセットされる。第三のバスマスタ105より発行された論理アドレス0x1000番地へのライトアクセスは、第一のバッファ900の4番目のエントリと第二のバッファ901の2番目のエントリに分割保持され、分割フラグ(907)にはそれぞれ1がセットされている。また、ライト転送であるため発行可能フラグ(906)には1がセットされている。図7に示したフローと前述した該当転送判定に従い、書き込み転送であるために第一のバッファ900の4番目のエントリ及び第二のバッファ901における2番目のエントリの発行可能フラグ(906)には発行可能として1が設定されている。更に、第二のバスマスタ104より発行された論理アドレス0x420番地へのライトアクセスは、第二のバッファ901の3番目のエントリに保持され、分割フラグ(907)には0がセットされ、発行可能フラグ(906)には1がセットされる。
ここで、第一のバッファ900に対しては1番目のエントリが発行可能フラグに1がセットされているため、対応するメモリコマンド制御コア部116に転送が伝達される。第二のバッファ901においては、1番目のエントリに対して発行可能フラグが0と発行不可を示しているため、発行可能を示しているなかで一番若いエントリである2番目のエントリのメモリアクセスが対応するメモリコマンド制御コア部116に伝達される。それぞれのメモリアクセス要求は、各メモリコマンド制御コア部116にて独立に処理され並列にメモリアクセスが発行される。前記処理が成された後の各バッファの状態を図8(B)に示す。バッファ状態の変化に従い、図7に示したフローと前述した該当転送判定が実行される。ここでは第二のバッファ901の1番目のエントリの対となるメモリアクセスが先に発行されるため本転送が発行可能と判定され、発行可能フラグが図8(B)内に網掛けで示すように1にセットされる。したがって、第一のバッファ901及び第二のバッファ902ともに、図8(B)における1番目のエントリの転送が、メモリコマンド制御コア部116に発行され、メモリアクセスが実行される。
前記第二の実施形態の動作として示したように、ライト完了応答が必要な転送に関しては分割如何によらずメモリアクセス転送のタイミング調整を行わない。タイミング調整が必要な分割されたリードアクセスに対してアドレス順を維持しメモリ転送発行制御が常に可能となる。
<第三の実施形態>
次に、本発明の第三の実施形態について説明する。
第三の実施形態として、図9に示すメモリシステムを用いて説明する。
図9に示すメモリシステムにおいて、3つのバスマスタ103、104、105は、任意のシステムバス106を介してメモリ制御回路100に接続される。また、メモリ制御回路100は、DRAM群1700に接続される。本実施形態では、DRAM群1700の各々はデータ幅が16ビットのDDR3−SDRAM101を1組有する。また、本実施形態では、第一のDRAM群1700−Aと第二のDRAM群1700−Bと第三のDRAM群1700−Cと第四のDRAM群1700−Dとの4つのメモリチャネルのメモリインターフェースを具備している。第一のDRAM群1700−Aと第二のDRAM群1700−Bと第三のDRAM群1700−Cと第四のDRAM群1700−Dとのメモリ空間の割り当てを図10に示す。論理アドレス空間は、各DRAM群1700のアクセス単位毎(本実施形態では、16バイトとする)に分割されるものとする。さらに論理アドレス空間における分割された空間が、第一のDRAM群1700−A、第二のDRAM群1700−B、第三のDRAM群1700−C、及び第四のDRAM群1700−Dが交互にマッピングされるものとする。例えば論理アドレス空間における0x100番地は第一のDRAM群1700−Aの物理アドレス空間における0x40番地に割り当てられる。また、例えば論理アドレス空間における0x110番地は第二のDRAM群1700−Bの物理アドレス空間における0x40番地に割り当てられる。また、例えば論理アドレス空間における0x120番地は第三のDRAM群1700−Cの物理アドレス空間における0x40番地に割り当てられ、論理アドレス空間における0x130番地は第四の物理アドレス空間における0x40番地に割り当てられる。
次に、本発明の第三の実施形態について説明する。
第三の実施形態として、図9に示すメモリシステムを用いて説明する。
図9に示すメモリシステムにおいて、3つのバスマスタ103、104、105は、任意のシステムバス106を介してメモリ制御回路100に接続される。また、メモリ制御回路100は、DRAM群1700に接続される。本実施形態では、DRAM群1700の各々はデータ幅が16ビットのDDR3−SDRAM101を1組有する。また、本実施形態では、第一のDRAM群1700−Aと第二のDRAM群1700−Bと第三のDRAM群1700−Cと第四のDRAM群1700−Dとの4つのメモリチャネルのメモリインターフェースを具備している。第一のDRAM群1700−Aと第二のDRAM群1700−Bと第三のDRAM群1700−Cと第四のDRAM群1700−Dとのメモリ空間の割り当てを図10に示す。論理アドレス空間は、各DRAM群1700のアクセス単位毎(本実施形態では、16バイトとする)に分割されるものとする。さらに論理アドレス空間における分割された空間が、第一のDRAM群1700−A、第二のDRAM群1700−B、第三のDRAM群1700−C、及び第四のDRAM群1700−Dが交互にマッピングされるものとする。例えば論理アドレス空間における0x100番地は第一のDRAM群1700−Aの物理アドレス空間における0x40番地に割り当てられる。また、例えば論理アドレス空間における0x110番地は第二のDRAM群1700−Bの物理アドレス空間における0x40番地に割り当てられる。また、例えば論理アドレス空間における0x120番地は第三のDRAM群1700−Cの物理アドレス空間における0x40番地に割り当てられ、論理アドレス空間における0x130番地は第四の物理アドレス空間における0x40番地に割り当てられる。
第三の実施形態においては、第一の実施形態/第二の実施形態に対して、バスインターフェース部107内に含まれる転送分割・振り分け部108の作用及びコマンドステータス検出部114の作用が異なる以外は各構成要素の動作は同一である。以下、前述した実施形態との作用が異なる箇所を中心に説明する。
メモリ制御回路100では、バスマスタより発行されたメモリアクセスがバスインターフェース部107においてバスアクセスとして取り込まれる。バスインターフェース部107では、アドレス(アクセスアドレス)、転送サイズ(アクセスデータサイズ)に基づき前述したメモリ空間の割り当てに従って転送分割・振り分け部108により適宜転送の分割と該当するDRAM群への振り分けが行われる。転送分割・振り分け部108の処理フローを図11に示す。転送分割・振り分け部108は、バスマスタからの転送に対して、転送の開始アドレスのバイトアライン及び転送サイズを判定し、単一のDRAM群に対するアクセスか否かの判定を行う(S1101,S1102、S1103)。その結果、単一のDRAM群に対するアクセスであった場合には、転送分割・振り分け部108は、アドレスより第一のDRAM群から第四のDRAM群のいずれの転送であるかを判定する(S1104、S1105、S1106)。そして、転送分割・振り分け部108は、判定に従い、対応するメモリコマンド発行部109に対してメモリアクセス要求を転送する(S1107、S1108、S1109、S1110)。一方、複数のDRAM群に対するアクセスである場合には、転送分割・振り分け部108は、どのDRAM群に相当する転送であるかを判定し、対応する複数のメモリコマンド発行部109に対してメモリアクセス要求を転送する(S1111)。
例えば、論理アドレス0x0番地からの32バイトアクセスについては、第一のDRAM群1700−Aと第二のDRAM群1700−Bにそれぞれ対応したメモリコマンド発行部109に対してメモリアクセス要求を転送する。このとき、DRAM群1700−A、1700−Bの各々の物理アドレス0x0番地からの16バイト転送としてメモリアクセス要求を分割し転送する。また、論理アドレス0x40番地からの64バイトアクセスについては、対応するメモリコマンド発行部109に対して、それぞれ物理アドレス0x10からの16バイト転送としてメモリアクセス要求を分割転送する。このようにバスマスタからメモリアクセス要求される論理アドレスに応じて、対応するDRAM群の発行されるべき物理アドレスを算出し、必要に応じて分割し複数のメモリコマンド発行部にてメモリアクセスが実行される。
バスインターフェース部107により、分割・振り分けられたメモリアクセス要求は、各メモリコマンド発行部109内のコマンド順序制御部110に転送され、コマンドバッファ111内に格納される。また、前述した第一、第二の実施形態に示した動作と同様に、対となるコマンドステータス検出部114により各エントリの発行可能フラグが更新される。本実施形態においては、4組のDRAM群1700間にてコマンドステータス情報の検出が以下のように行われる。第二のDRAM群1700−Bに対応するコマンドバッファ111の情報は、第一のDRAM群1700−A内のコマンドステータス検出部114により各エントリの発行可能状態が更新される。すなわち、第二のDRAM群1700−Bに対応するコマンドバッファ111内のエントリに係るコマンド発行可否判定は、第一のDRAM群1700−Aに対応するコマンドバッファ111内のエントリを参照することにより行われる。第三のDRAM群1700−Cに対応するコマンドバッファ111の情報は、第二のDRAM群1700−B内のコマンドステータス検出部114により各エントリの発行可能状態が更新される。すなわち、第三のDRAM群1700−Cに対応するコマンドバッファ111内のエントリに係るコマンド発行可否判定は、第二のDRAM群1700−Bに対応するコマンドバッファ111内エントリを参照することにより行われる。同様に、第四のDRAM群1700−Dに対応するコマンドバッファ111の情報は、第三のDRAM群1700−C内のコマンドステータス検出部114により各エントリの発行可能状態が更新される。また、第一のDRAM群1700−Aに対応するコマンドバッファ111の情報は、第四のDRAM群1700−D内のコマンドステータス検出部114により各エントリの発行可能状態が更新される。
以下、各コマンドステータス検出部114における動作について説明する。
各コマンドステータス検出部114の動作フローは、前述した図4や図7に示したフローと同様であるが、バッファ内の該当転送有り判定方法が若干異なる。該当転送有り判定では、入力されたコマンドバッファのエントリに対して分割された転送で、且つ論理アドレスとして先にアクセスされるべき転送が自身のコマンドバッファ111内に保持されているかの判定を行う。
各コマンドステータス検出部114の動作フローは、前述した図4や図7に示したフローと同様であるが、バッファ内の該当転送有り判定方法が若干異なる。該当転送有り判定では、入力されたコマンドバッファのエントリに対して分割された転送で、且つ論理アドレスとして先にアクセスされるべき転送が自身のコマンドバッファ111内に保持されているかの判定を行う。
コマンドステータス検出部114においては、分割フラグが立った状態で入力されたコマンドバッファ111のエントリに示されるアドレスに対して16バイトアラインにのっている転送かを判定する。16バイトアラインにのった転送であった場合には、自身のコマンドバッファ111を参照し同一の16バイト領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定し、それ以外に関しては発行可能と判定する。具体例を示すと、入力されたコマンドバッファのエントリが0x100であった場合に、自身のコマンドバッファ111内に分割フラグに‘1’がセットされ、アドレスが0x100〜0x10Fの範囲内である転送が存在すれば発行不可能と判定する。第二のDRAM群1700−Bに対するアクセスである論理アドレス0x210に対し、分割された転送である論理アドレス0x200〜0x20Fまでのエントリの有無を第一のDRAM群1700−A内のコマンドバッファ111の状態より確認する。また入力されたコマンドバッファのエントリが0x104等16バイトアラインにのっていない場合には、自身のコマンドバッファ111のエントリ如何によらず発行可能と判定する。
なお、第一のDRAM群1700−Aに対応するコマンドステータス検出部114は、入力されたコマンドバッファのエントリに示されるアドレスに対して16バイトアラインにのっている転送かを判定する。16バイトアラインにのった転送であった場合、自身のコマンドバッファ111を参照し入力されたアドレスに対して16バイト小さいアドレス領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定する。それ以外に関して発行可能と判定する。具体例を示すと、入力されたコマンドバッファのエントリが0x100であった場合に、自身のコマンドバッファ111内に分割フラグに‘1’がセットされ、アドレスが0x0F0〜0x0FFの範囲内である転送が存在した場合に発行不可能と判定する。すなわち、論理アドレス0x400に対する第一のDRAM群1700−Aに対して分割された転送である論理アドレス0x3F0〜0x3FFまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが0x104等16バイトアラインにのっていない場合には、自身のコマンドバッファ111のエントリ如何によらず発行可能と判定する。
その他、コマンド順序制御部110における各コマンド発行のタイミング等については、前述した第一、第二の実施形態と同様の動作である。
第三の実施形態によると、論理アドレス空間に対して4組のDRAM群に分割、転送が行われる場合においても順序制御、タイミング制御の作用により論理アドレス空間順のメモリアクセス発行が可能である。
第三の実施形態によると、論理アドレス空間に対して4組のDRAM群に分割、転送が行われる場合においても順序制御、タイミング制御の作用により論理アドレス空間順のメモリアクセス発行が可能である。
なお、本明細書においては、発明の実施形態として2組のDRAM群及び4組のDRAM群により論理アドレス空間を分割した場合について示しているが、分割方法が2組、4組に限定されるものではなく、他の分割方法でも適用できることは言うまでもない。また、アドレス空間の割り当てに関してもDRAM群のアクセス単位で分割した構成を一例として示しているがそれに限定されるものではない。第一のDRAM群の物理アドレスを64バイト単位、第二のDRAM群の物理アドレスを32バイト単位として割り当てるよう転送分割・振り分け部108を変更することも可能であり、メモリシステムの要求や帯域割り当てに基づき種々適用できるものである。
(本発明の他の実施形態)
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置又はシステム内のコンピュータ(CPU又はMPU)に対し、前記実施形態の機能を実現するためのソフトウェアのプログラムを供給する。そして、そのシステム又は装置のコンピュータに格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、前記ソフトウェアのプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体は本発明を構成する。また、そのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は本発明を構成する。かかるプログラムを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、供給されたプログラムがコンピュータにて稼働しているオペレーティングシステム又は他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムがコンピュータに係る機能拡張ボードや機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボード等に備わるCPU等が実際の処理の一部又は全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置又はシステム内のコンピュータ(CPU又はMPU)に対し、前記実施形態の機能を実現するためのソフトウェアのプログラムを供給する。そして、そのシステム又は装置のコンピュータに格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、前記ソフトウェアのプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体は本発明を構成する。また、そのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は本発明を構成する。かかるプログラムを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、供給されたプログラムがコンピュータにて稼働しているオペレーティングシステム又は他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムがコンピュータに係る機能拡張ボードや機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボード等に備わるCPU等が実際の処理の一部又は全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100…メモリ制御回路 101…DRAMデバイス 102、1700…DRAM群 103、104、105…バスマスタ 106…システムバス 107…バスインターフェース部 108…転送分割・振り分け部 109…メモリコマンド発行部 110…コマンド順序制御部
Claims (9)
- バスマスタとメモリ制御回路と複数のメモリチャネルとを有し、論理アドレス空間を分割して前記複数のメモリチャネルの物理アドレス空間として割り当てるメモリシステムであって、
前記メモリ制御回路は、前記バスマスタからのメモリアクセス要求をアドレスと転送サイズとに従って前記複数のメモリチャネルのメモリアクセス要求に分割して振り分ける分割・振り分け手段と、前記複数のメモリチャネルに対応した複数のメモリコマンド発行手段とを有し、
前記メモリコマンド発行手段は、対応するメモリチャネルに対するメモリアクセス要求を格納するバッファと、前記分割・振り分け手段により前記複数のメモリチャネルに分割されたメモリアクセス要求を判別する判別手段と、前記判別手段により分割されたメモリアクセス要求であると判別されたメモリアクセスの発行タイミングを調整する調整手段とを有することを特徴とするメモリシステム。 - 各メモリチャネルにおけるアクセス単位毎に論理アドレス空間を分割し、前記分割に従い前記複数のメモリチャネルの物理アドレス空間を交互に割り当てることを特徴とする請求項1記載のメモリシステム。
- 前記調整手段は、分割されたメモリアクセス要求を論理アドレスが小さい順に発行するよう調整することを特徴とする請求項1又は2記載のメモリシステム。
- 前記調整手段は、分割されたメモリアクセス要求を前記複数のメモリチャネルに対してメモリアクセスとして発行するよう調整することを特徴とする請求項1〜3の何れか1項に記載のメモリシステム。
- 前記調整手段は、発行タイミングに基づき発行できないメモリアクセス要求の前に、発行可能なメモリアクセス要求を先に発行する順序制御手段を有することを特徴とする請求項3記載のメモリシステム。
- 前記順序制御手段は、メモリアクセス要求がリードアクセスかライトアクセスかの種別に従い順序制御方法を変更することを特徴とする請求項5記載のメモリシステム。
- 前記順序制御手段は、メモリアクセス要求がライトアクセスである場合には発行タイミングの調整を行わないことを特徴とする請求項5記載のメモリシステム。
- バスマスタとメモリ制御回路と複数のメモリチャネルとを有し、論理アドレス空間を分割して前記複数のメモリチャネルの物理アドレス空間として割り当てるメモリシステムにおけるメモリアクセス方法であって、
前記複数のメモリチャネルに対応して前記メモリ制御回路が有する複数のメモリコマンド発行部が、前記バスマスタからのメモリアクセス要求をアドレスと転送サイズとに従って前記複数のメモリチャネルのメモリアクセス要求に分割して振り分けるステップと、
対応するメモリチャネルに対するメモリアクセス要求をバッファに格納するステップと
前記複数のメモリチャネルに分割されたメモリアクセス要求を判別するステップと、
分割されたメモリアクセス要求であると判別されたメモリアクセスの発行タイミングを調整するステップとを有することを特徴とするメモリアクセス方法。 - 請求項8記載のメモリアクセス方法の各ステップをコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009156036A JP2011013835A (ja) | 2009-06-30 | 2009-06-30 | メモリシステム、メモリアクセス方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009156036A JP2011013835A (ja) | 2009-06-30 | 2009-06-30 | メモリシステム、メモリアクセス方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011013835A true JP2011013835A (ja) | 2011-01-20 |
Family
ID=43592673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009156036A Pending JP2011013835A (ja) | 2009-06-30 | 2009-06-30 | メモリシステム、メモリアクセス方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011013835A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012178039A (ja) * | 2011-02-25 | 2012-09-13 | Toshiba Corp | マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法 |
JP2013137713A (ja) * | 2011-12-28 | 2013-07-11 | Toshiba Corp | メモリコントローラ、メモリシステムおよびメモリ書込み方法 |
US9811460B2 (en) | 2014-02-03 | 2017-11-07 | Samsung Electronics Co., Ltd. | System including multi channel memory and operating method for the same |
JP2021507414A (ja) * | 2017-12-21 | 2021-02-22 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 連動メモリデバイスに対するメモリ要求のスケジューリング |
US10970075B2 (en) | 2018-06-13 | 2021-04-06 | Fujitsu Limited | Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus |
-
2009
- 2009-06-30 JP JP2009156036A patent/JP2011013835A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012178039A (ja) * | 2011-02-25 | 2012-09-13 | Toshiba Corp | マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法 |
JP2013137713A (ja) * | 2011-12-28 | 2013-07-11 | Toshiba Corp | メモリコントローラ、メモリシステムおよびメモリ書込み方法 |
US9811460B2 (en) | 2014-02-03 | 2017-11-07 | Samsung Electronics Co., Ltd. | System including multi channel memory and operating method for the same |
JP2021507414A (ja) * | 2017-12-21 | 2021-02-22 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 連動メモリデバイスに対するメモリ要求のスケジューリング |
JP7384806B2 (ja) | 2017-12-21 | 2023-11-21 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 連動メモリデバイスに対するメモリ要求のスケジューリング |
US10970075B2 (en) | 2018-06-13 | 2021-04-06 | Fujitsu Limited | Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7287101B2 (en) | Direct memory access using memory descriptor list | |
US8195845B2 (en) | Memory system having high data transfer efficiency and host controller | |
US20050262323A1 (en) | System and method for improving performance in computer memory systems supporting multiple memory access latencies | |
US10795837B2 (en) | Allocation of memory buffers in computing system with multiple memory channels | |
JP5365336B2 (ja) | メモリ制御装置およびメモリ制御方法 | |
JP6053384B2 (ja) | 情報処理装置、メモリ制御装置およびその制御方法 | |
US10268416B2 (en) | Method and systems of controlling memory-to-memory copy operations | |
US10430113B2 (en) | Memory control circuit and memory control method | |
CN101836194B (zh) | 控制数据信道的优化解决方案 | |
CN111984559B (zh) | 用于数据传送的系统及存储器装置 | |
JP2011013835A (ja) | メモリシステム、メモリアクセス方法、及びプログラム | |
JP2014228915A (ja) | データ処理装置 | |
CN108139989B (zh) | 配备有存储器中的处理和窄访问端口的计算机设备 | |
JP2018205859A (ja) | メモリコントローラとその制御方法 | |
US10019358B2 (en) | Bank address remapping to load balance memory traffic among banks of memory | |
US9904622B2 (en) | Control method for non-volatile memory and associated computer system | |
KR20080047907A (ko) | 다이내믹 랜덤 액세스 메모리의 부분 액세스 장치 및 방법 | |
JP6477228B2 (ja) | 情報処理装置、メモリ制御装置、および情報処理装置の制御方法 | |
CN117083601A (zh) | 自适应存储器访问管理 | |
JP5204777B2 (ja) | メモリ装置及びその制御方法 | |
US20170235688A1 (en) | Access control method, bus system, and semiconductor device | |
US20070121398A1 (en) | Memory controller capable of handling precharge-to-precharge restrictions | |
CN107025190B (zh) | 系统及其操作方法 | |
JP2010287058A (ja) | メモリシステム | |
WO2016185878A1 (ja) | メモリ制御回路およびメモリ制御方法 |