JP2010287058A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2010287058A
JP2010287058A JP2009140437A JP2009140437A JP2010287058A JP 2010287058 A JP2010287058 A JP 2010287058A JP 2009140437 A JP2009140437 A JP 2009140437A JP 2009140437 A JP2009140437 A JP 2009140437A JP 2010287058 A JP2010287058 A JP 2010287058A
Authority
JP
Japan
Prior art keywords
memory
bus
access
transfer
memory 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.)
Pending
Application number
JP2009140437A
Other languages
English (en)
Inventor
Kohei Murayama
公平 村山
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009140437A priority Critical patent/JP2010287058A/ja
Publication of JP2010287058A publication Critical patent/JP2010287058A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】単一のバス転送を複数のメモリチャネルに分割発行するメモリシステムでメモリアクセス効率を向上させることを目的とする。
【解決手段】メモリ制御回路は、複数のメモリチャネルに対応した複数のメモリコマンド発行部を有し、各メモリコマンド発行部は、対応するメモリチャネルに対する複数のメモリアクセス要求を保持するバッファを有し、バスアービタは、バスマスタからのアドレス、転送サイズに従って複数のメモリチャネルよりアクセス対象となる物理メモリを識別する識別手段を有し、識別手段での識別の結果とバッファの前記メモリアクセス要求に係る空きエントリ数とに基づきバスマスタによるメモリアクセスの調停を行うことによって課題を解決する。
【選択図】図7

Description

本発明は、メモリシステムに関する。
組み込み系システムでは、CPUの他、特定の機能を実現する機能ブロック・処理モジュールを複数搭載しシステムに求められる機能を実現している。特に性能要求の高い機能ブロックに関してはハードワイヤードロジックで回路実装が成されることで、ソフトウエア処理では達成することが困難な高性能・高速処理を実現している。多くの機能ブロックではデータの授受を、外部主記憶デバイスを介して行い、また複雑な処理や多くのデータ参照を行う処理においては、主記憶を一時記憶・ワークメモリとして使用することで機能を実現している。多くの組み込み系システムでは、外部主記憶にDRAMデバイスを採用している。
近年デジタル機器において、高機能/高性能化が継続的に進展している。例えばデジタルカメラ等の映像入力機器やプリンタ等の画像出力機器において高解像度化が進展しており、その結果取り扱うデータ量が継続的に増加しており、単位時間内に多くのデータ量を取り扱うためのメモリアクセスの高速化が必須である。また、リアルタイム処理を必要とする動画像においても高精細化が進展しており、更なるメモリアクセスの高速化が今後も必須な状況である。
対して外部主記憶に使用されるDRAMデバイスにおいても、半導体プロセスの進化に伴い高帯域デバイスが供給されている。以下簡単にDRAMデバイスにおける高帯域化について述べる。DRAM等のメモリデバイスは半導体のプロセスが進化したとしても、メモリアクセスを受信しそのアクセスが完了するためのアクセス時間の改善は特性上困難である。従って通常DRAMデバイス内のクロック周波数は高速化せずに、半導体プロセスの進化により高速化可能なデータ転送レートを向上させることでデータ転送帯域を改善が行われている。高速化されないアクセス時間に対しては1回のアクセスに対して同時に複数のメモリセルに並列にアクセスを行うことによって高速化されたデータ転送帯域に追従している。これを一般的にDRAMのプリフェッチと言われている。SDRAMではプリフェッチの段数が1段即ち、一回のメモリアクセスに対して1組のメモリセルにアクセスする構成であったのに対し、DDR−SDRAMではプリフェッチの段数を2段としている。プリフェッチの段数を2段とすることで、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における最小アクセス単位は8Byte、DDR−SDRAMでは16Byte、DDR2−SDRAMでは32Byte、そしてDDR3−SDRAMでは64Byteとなる。ここで、外部記憶としてSDRAMを使用するバスマスタが最小アクセス単位に満たない転送を行う場合、SDRAMにアクセス発行単位毎でしかアクセスが発行できないためメモリデータバス上余分な転送が発生することになる。より具体的に以下図を用いて説明する。
図1は、複数のバスマスタを有した簡易的はメモリシステムの図である。CPU201、205、バスマスタA202、バスマスタB203は、システムバス204を介してメモリコントローラ100にアクセスを発行する。メモリコントローラ100は、バスマスタより受信したコマンドをDRAM101に対するアクセスコマンドに変換し、ある任意の幅を構成するDRAM群200に対してアクセスを発行する。本構成では各、DRAM101は、16ビット幅のデータ幅を有したDDR3−SDRAMとし、DRAM群200を構築することによりデータ幅が64ビット幅のメモリデバイスとしてアクセスされるものとする。従って、DRAM群200に対するアクセス単位は、8Byte幅の8段プリフェッチにより64Byteである。また、CPU201、205のキャッシュライン幅を32Byteと仮定する。CPU201、205ではキャッシュミスが発生するとキャッシュライン単位即ち32Byte単位でメモリアクセスを発行する。バスマスタA202及びバスマスタB203は、ハードワイヤードロジックとしバスマスタA202のアクセス単位は32Byte、バスマスタB203のアクセス単位は128Byteであると仮定する。また、システムバス204の1転送における最大転送サイズを128Byteと仮定する。ここでバスマスタB203がメモリアクセスを発行した場合を想定する。バスマスタB203の128Byte単位のアクセスは、システムバス204に対して発行され、メモリアクセスはメモリコントローラ100にてDRAM群200へのアクセスコマンドに変換される。DRAM群200はDDR3−SDRAMで構成されるため、8Byte転送を8ビート、即ち64Byteアクセス単位で発行される。
従って128Byte単位で発行されるバスマスタB203のメモリアクセスは64Byte転送として2回、DRAM群200に対して発行される。この際のメモリバス上の16ビート転送は全て有効な転送として発行される。次に、バスマスタであるCPU201、205、バスマスタA202がメモリアクセスを発行した場合を想定する。このとき、CPU201、205及びバスマスタA202から発行されるメモリアクセスは32Byteのメモリアクセスをシステムバス204に対して発行する。システムバス204を介してアクセスされたメモリアクセスはメモリコントローラ100においてDRAM群200へのアクセスコマンドへと変換される。しかし、DRAM群200はDDR3−SDRAMであるため、8Byte転送を8ビート、即ち64Byteアクセス分発行することになる。しかしながら、バスマスタであるCPU201、205及びバスマスタA202が必要とするデータサイズは32Byteであるため、余分な32Byte転送4ビート分の転送を発行することになる。CPU201、205或いはバスマスタA202が間欠無くメモリアクセスを発行した場合、メモリバス上は常に半分が余分な転送であるために高帯域のメモリデバイスであるDDR3−SDRAMを用いたとしてもデータ転送効率は50%まで下がってしまう。DDR3−SDRAMには4ビート転送で終了させるバーストチョップという機能を有しているが、同一ランクに対してはデータバスに空きがあったとしても8ビート分の転送時間を待って後続アクセスを発行しなければならない。
よって、後続アクセスが異ランクであるときのみしか転送効率が改善されない。仮に図1に示されたシステムのDRAM101デバイスがDDR2−SDRAMであった場合、DRAM群200に対するデータ転送単位が32Byte8Byte転送を8ビートである。よって、本課題は存在しないが、DRAMのプリフェッチ段数の増加に従い内部転送サイズに依存しメモリバス効率低下を招くという課題が顕在化する。バスマスタとなるモジュールの転送単位を変更することにより本課題を解決することはできる。しかし、プリフェッチ段数の変更に従い処理単位を変更することは容易ではない。また、矩形単位処理を行うモジュール等においてはある一定以上のメモリアクセス単位を実現することは困難であり現実的な解決策にはなり得ない。また、システムバスに関しても本例においては最大転送単位を128Byteと定義しているが、バスプロトコルに依存し最大転送単位が限定される場合もあり得る。
本課題に対して特許文献1によると、メモリ転送単位に満たない転送を複数結合して転送することによってメモリ使用効率を改善する手法が開示されているが、この場合、バスマスタA202の発行する転送の連続性や間隔に依存する。即ち連続したアドレス空間で転送が発行されなければ、結合による効果を得ることが出来ず、またバスマスタA202のバス転送間隔が空いてしまうとその分の待ち合わせに要する期間がレイテンシを低下させることとなり、効果が限定的にならざるを得ない。従ってバスの転送パターン・間隔によらず転送効率を向上が課題となる。
本課題に対しては図2に示す構成が解決手段として有効である。同様の構成が特許文献2にも開示されている。以下図2に示すメモリシステムの構成について説明する。図2に示すメモリシステムでは、DRAM群を2系統メモリコントローラに接続し、それぞれのDRAM群に対してメモリ空間を独立に割り当てる。メモリコントローラ100は、転送分割・振り分け部302にてバスマスタより受信したメモリアクセスをその受信したアドレスと転送長に基づき、アクセス対象のメモリ空間を判定し対応するメモリアクセス発行部303に転送を振り分ける。メモリアクセス発行部303では、DRAM101に対するアクセスコマンドへの変換を行い、メモリアクセスを完了する。図2に示される各DRAM群のデータ幅を32ビットと仮定すると図1に示される64ビット幅のDRAM群と同一のメモリバス幅を確保することとなる。より具体的な動作を以下に示す。
図1で示したメモリシステムと同様にCPU201、205とバスマスタA202の転送単位を32Byteとする。また、DRAM101に関してもDDR3−SDRAMを仮定すると、アクセス単位が8ビート分の32Byteである。CPU201、205からDRAM群300に対応するメモリ空間へのメモリアクセス、及びバスマスタA202からDRAM群301に対応するメモリ空間へのメモリアクセスが同時刻に発行された場合を考える。このときCPU201、205からのメモリアクセスは転送分割・振り分け部302によりDRAM群300に対するメモリアクセス発行部303により発行される。バスマスタA202のメモリアクセスは転送分割・振り分け部302によりDRAM群301に対するメモリアクセス発行部303により発行される。同時刻に発行された2つのメモリアクセスは2つもメモリアクセス発行部303にて並列に処理され発行される。またDRAM101に対するメモリアクセス単位とCPU201、205とバスマスタA202とのメモリアクセス単位が32Byteと同一であるため、DRAM101に対する8ビート転送を全て活用することが可能となる。また、2つのDRAM群に対して同時にメモリアクセスが発行されるため、64ビット幅分のメモリ帯域を活用することができる。従って、アドレスの振り分け状況に従い、2つのDRAM群に同時並列でアクセスを行うことによって64ビット幅におけるメモリ帯域を2つのDRAM群でまかなうことが可能となる。
次にバスマスタB203のメモリアクセスについて示す。バスマスタB203は先に示すとおり128Byte単位でアクセスを発行する。このときのDRAM群への転送方法はDRAMへのアドレス空間のマッピングに依存して変化する。図3では論理アドレスの0x0番地から0x0FFFFFFF番地の256MBの空間をDRAM群300に相当する空間にマッピングする。0x10000000番地から0x1FFFFFFF番地の256MBの空間をDRAM群301に相当する空間にマッピングした構成である。ここで、バスマスタB203からのメモリアクセスが0x0番地からの128Byteに転送される場合、DRAM群300に対してのみ転送が発行される。DRAM群300のビット幅が32ビット、転送単位が8ビートであるため、32Byte転送が4回発行されることとなる。この場合、連続空間に対するバスマスタB203のアクセスは図1の構成におけるアクセスに対して1/2の転送レートで2倍の転送期間を要することとなるため、バスマスタB203に対するメモリアクセス性能が半分でレイテンシが2倍要してしまうこととなる。従って、システムとして64ビット幅のメモリバス幅を擁したとしても、連続アクセスを発行する転送においては図3に示すメモリ空間の割り当てでは、バス幅分の転送レートの恩恵を得ることが出来なくなる。
次に図4に示すアドレス空間のマッピングを考える。ここでは論理アドレス空間をDRAMデバイスのアクセス単位である32Byte毎にDRAM群300とDRAM群301とを交互に物理アドレスとしてマッピングしたものである。このとき、バスマスタB203の転送分割・振り分け部302により、論理アドレス空間0x0番地からの32Byteと0x40番地からの32ByteがDRAM群300に対応するメモリアクセス発行部303に伝達される。また、論理アドレス空間0x20番地殻の32Byteと0x60番地からの32ByteがDRAM群301に対応するメモリアクセス発行部303に伝達され、メモリアクセスとして発行される。このとき、DRAM群300とDRAM群301とに対して同時並行にメモリアクセスが発行されるため、8ビート転送2回が2組並列に発行されることとなる。従って、64ビット幅の転送帯域を確保しつつ、32ビットデバイスを使いながらレイテンシの改善が可能となるため、バスマスタB203のメモリアクセス性能の低下無くアクセスを発行することができる。
このように、DRAMデバイスの高速化によるプリフェッチ段数の増加によって発生するメモリアクセス効率の低下に関しては、データバス幅を維持して小さなバス幅のメモリチャネルを並列に接続し、同時並列アクセス可能とすることで改善することができる。メモリチャネルのバス幅に関しては、メモリアクセスを行うバスマスタのアクセス単位に適合するように実装することで定義することもできる。本例では64ビット幅のメモリデータバス幅に対して、内部の転送単位の一番小さいサイズが32Byteであるシステムを想定している。このため32ビット幅のメモリチャネルを2系統搭載とした例を示している。もしバスマスタA202の転送単位が16Byteと仮定すると、16ビット幅のメモリチャネルを4系統と搭載することで同様にメモリの使用効率を改善することができる。
特開2006−268801号公報 特開2007−034740号公報
上記示すように、DRAMデバイスのアクセス単位増加に対し、バス幅の小さいメモリチャネルを複数搭載することによって、メモリバスの使用効率の低下を解決することができる。そのためには各メモリチャネルに対するメモリ制御を独立に実行することが不可避である。一般的に図2に示すメモリアクセス発行部303においては、コマンドを発行するための制御手段とコマンドを蓄えるコマンドバッファ等とが具備され、順次メモリアクセスを発行する。図2の例に示すようにCPU201、205、バスマスタA202がそれぞれ異なるメモリチャネルとしてマッピングされた領域にアクセスを発行される場合には、それぞれのメモリチャネルにおいて独立にページ管理が成されアクセスが発行されることとなる。従って複数具備されるメモリアクセス発行部303の処理は独立動作を行うことが必須の条件となっている。
図4に示したメモリ空間の割り当て時に、メモリアクセスを発行、各種メモリアクセスを発行した場合について以下に動作説明を行う。
CPU201及びバスマスタA202のメモリアクセスはそれぞれDRAM群300に対するアクセスとして割り当てられる。対してバスマスタB203のメモリアクセスはDRAM群300とDRAM群301にそれぞれ2回ずつの転送として割り当てられる。CPU205のメモリアクセスはDRAM群300に対するメモリアクセスとして割り当てられる。ここで転送順としてCPU201、バスマスタA202、バスマスタB203、CPU205の順に転送が許可された場合、DRAM群300に対し4回分のメモリ転送、DRAM群301に対しても4回分のメモリ転送が発行されることとなる。しかしながら、メモリアクセスの発行はDRAM群300へのメモリアクセスが先立ってメモリコントローラ100に発行されるため、DRAM群300に対してのメモリアクセスのみ発行される期間が先に生じる。更に、CPU205のメモリアクセスが最後にメモリコントローラ100に発行されることとなり、このようなアクセスはDRAM群301に対してのみ発行される期間が生じることとなる。上記転送では、DRAM群300とDRAM群301に対する転送が同時期に同数発生したにも関わらず、システムバス204上での調停結果シリアライズされた結果に依存する。しかし、独立動作しているメモリアクセス発行部303が同時に動作する期間が限定され結果としてメモリアクセス効率の向上が限定的にならざるを得ないという課題が存在している。
本発明はこのような問題点に鑑みなされたもので、単一のバス転送を複数のメモリチャネルに分割発行するメモリシステムでメモリアクセス効率を向上させることを目的とする。
そこで、本発明は、バスマスタと、メモリ制御回路と、バスマスタとメモリ制御回路との間を接続するバスと、バスアービタと、複数のメモリチャネルと、を有するメモリシステムであって、前記メモリ制御回路は、前記複数のメモリチャネルに対応した複数のメモリコマンド発行部を有し、各メモリコマンド発行部は、対応するメモリチャネルに対する複数のメモリアクセス要求を保持するバッファを有し、前記バスアービタは、バスマスタからのアドレス、転送サイズに従って複数のメモリチャネルよりアクセス対象となる物理メモリを識別する識別手段を有し、前記識別手段での識別の結果と前記バッファの前記メモリアクセス要求に係る空きエントリ数とに基づきバスマスタによるメモリアクセスの調停を行う。
本発明によれば、単一のバス転送を複数のメモリチャネルに分割発行するメモリシステムでメモリアクセス効率を向上させることができる。
従来のメモリシステムのシステム構成の図(その1)である。 従来のメモリシステムのシステム構成の図(その2)である。 図2に示すシステムにおける論理アドレス空間と物理アドレス空間との対応を示す図(その1)である。 図2に示すシステムにおける論理アドレス空間と物理アドレス空間との対応を示す図(その2)である。 メモリシステムのシステム構成の一例を示す図である。 論理アドレス空間と物理アドレス空間との対応の一例を示す図である。 バスアービタにおける調停に関する処理の一例を示すフローチャートである。 4組のDRAM群によりシステムを構成した場合のメモリシステムのシステム構成の一例を示す図である。
以下、本発明の実施形態について図面に基づいて説明する。
図5は、メモリシステムのシステム構成の一例を示す図である。図5のメモリシステムにおいて3つのバスマスタは任意のシステムバス106を介してメモリ制御回路の一例であるメモリコントローラ100に接続され、DRAM群102に接続される。システムバス106は、バスマスタからのメモリアクセスを、バスアービタ117で調停しメモリコントローラ100に転送する。本システムではデータ幅が16ビットのDDR3−SDRAM101を2組有したDRAM群が接続され、第一のDRAM群102−Aと第二のDRAM群102−Bとの2チャンネルのメモリインターフェースを具備している。第一のDRAM群102−Aと第二のDRAM群102−Bとのメモリ空間の割り当てを図6に示す。論理アドレス空間は各DRAM群のアクセス単位である32Byte毎に分割され、第一のDRAM群102−A及び第二のDRAM群102−Bに交互にマッピングされるものとする。例えば論理アドレス空間が0x100番地は第一のDRAM群102−Aの物理アドレス空間0x80番地に割り当てられ、論理アドレス空間が0x120番地は第二のDRAM群102−Bの物理アドレス空間0x80に割り当てられる。
バスマスタより発行されたメモリアクセスは、システムバス106を介してメモリコントローラ100に伝達される。メモリコントローラ100では、システムバスのインターフェースであるバスインターフェース部107においてバスアクセスとして取り込まれる。バスインターフェース部107では、アクセスアドレス、アクセスデータサイズに基づき上記メモリ空間の割り当てに基づき転送分割・振り分け部108において、適宜転送の分割と該当するDRAM群への振り分けとが行われる。転送分割・振り分け部108の処理フローを図7に示す。以下、転送分割・振り分け部108の作用の詳細を例示する。
任意のバスマスタより0x220番地に対する32Byteアクセスを受信すると、アドレス情報・アクセス長情報に基づき判定を行う。Align判定では32Byte Alignに乗った転送であり、且つ、32Byte以内の転送である。このため、アドレス判定を行い、第一のDRAM群に割り当てられた転送であるため第一のDRAM群に対応したメモリコマンド発行部109に対して第一のDRAM群に対し物理アドレス空間0x100より32Byteのメモリアクセス要求を転送する。対して0x1000番地に対して128Byteアクセスを受信すると、32Byte Alingの転送である。しかし、32Byteを超える転送であるためバスマスタからのメモリアクセスを分割し、第一のDRAM群102−A及び第二のDRAM群102−Bに振り分ける。このとき、転送は、第一のDRAM群102−Aにおける物理アドレス空間0x800番地からの64Byte転送として対応するメモリコマンド発行部109に対してメモリアクセス要求が転送される。論理アドレス空間0x1020番地からの32Byteと0x1060番地からの32Byteとの転送は第二のDRAM群102−Aにおける物理アドレス空間0x800番地からの64Byte転送として対応するメモリコマンド発行部109に対し転送される。本例では64Byte転送として2組のメモリコマンド発行部109に転送しているが、32Byte転送2回に分けて2組のメモリコマンド発行部109に転送してもよい。更に0x810番地からの16Byte転送に関しては、32Byte Alignにのっていない転送である。しかし、32Byte Alignを超えない転送である。よって、アドレス判定を行い第一のDRAM群102−Aに対するアクセスとして、第一のDRAM群102−Aに対する物理アドレス空間0x408番地からの16Byteアクセスとしてメモリコマンド発行部109に対して転送される。また、0x2018番地からの32Byte転送に関しては、32Byte Alignにのっていない転送であり、32Byte Alignを超える転送であるため、第一のDRAM群、第二のDRAM群にメモリアクセスが発行される。第一のDRAM群に対しては、0x100Cからの8Byteのメモリアクセスとして相当するメモリコマンド発行部109にメモリアクセス要求が転送される。第二のDRAM群に対しては、0x1000からの24Byteのメモリアクセスとして該当するメモリコマンド発行部109にメモリアクセス要求が発行される。
バスインターフェース部107を介して発行されるメモリアクセス要求は、各、メモリコマンド発行部109内に具備されるコマンド順序制御部110に転送される。コマンド順序制御部110では、複数のメモリアクセス要求を保持するコマンドバッファ111と発行するコマンド順序を制御し選択する順序制御回路115とにより構成される。コマンドバッファ111には、DRAM群102に発行するアドレス情報、アクセスサイズ情報及び読み出し・書き込み情報等が保持され、順序制御回路115にて、任意のコマンド発行順序の並べ替え処理が行われる。本実施形態では例示しないが、一般的に用いられるようにDRAMのページ遷移が少なくなる様順序制御を実行することもできる。
順序制御回路115にて並べ替えされたメモリアクセスの先頭のエントリはメモリアクセス制御コア部116にてDRAM群102に対するメモリアクセスプロトコルに変換されメモリアクセスが発行される。
以下、システムバス106上に実装されるバスアービタ117に関して記載する。バスアービタ117では、バスマスタより発行される複数のメモリアクセスを調停しメモリコントローラ100に対してメモリアクセスを転送する機能を有する。バスアービタ117では、複数のバスマスタからのメモリアクセスの転送要求を受信する機構と、複数の転送要求内より一つのバスマスタを選択し転送許可を発行する機構と、を有する。また、バスアービタ117では、メモリコントローラ100内の第一のDRAM群102−Aと第二のDRAM群102−Bとに対応する順序制御回路115内に実装されるコマンドバッファ111のステータス信号118を入力する機構を有する。ステータス信号118にはそれぞれのDRAM群に対応するコマンドバッファ111の空きエントリ数がステータスとして入力される。例えばコマンドバッファ111のエントリ数が4段あり、メモリアクセス制御コア部116に対し発行待ちとなっている有効エントリが3段存在している場合、空きエントリのステータスは1段として入力される。バスアービタ117は更に、受信したメモリアクセスのアクセスアドレスとアクセス長とより、アクセス対象のDRAM群を識別するアクセス領域識別手段119を有する。アクセス領域識別手段119は、バスマスタより発行されたメモリアクセスが、第一のDRAM群102−Aのみへのメモリアクセス、第二のDRAM群102−Bのみへのメモリアクセス又は第一、第二双方のDRAM群へのメモリアクセスであるかを識別する。例えば0x0番地より32Byte以内のメモリアクセスであれば、第一のDRAM群へのメモリアクセスと判定し、0x120番地より64Byteのメモリアクセスであれば第一、第二双方のDRAM群へのメモリアクセスと判定する。バスアービタ117は、バスマスタからのメモリアクセス要求、アクセス領域識別手段119での各メモリアクセスの判定結果、各DRAM群に対応する順序制御回路115より入力されるコマンドバッファ111のステータス信号118を使用する。つまり、アクセス領域識別手段119は、バスマスタからのアドレス、転送サイズに従って複数のメモリチャネルよりアクセス対象となる物理メモリを識別する。
そして、図7に示すフローチャートの処理に基づきメモリアクセスを調停し、バスマスタへの転送許可を発行する。バスアービタは図7に示すフローチャートの処理に従い発行されたメモリアクセス内で調停対象とするバスマスタを選択し、調停対象マスタリストを作成し、調停対象マスタリスト内で任意の調停手法によりバスマスタを選択する。調停手法としはラウンドロビンによるバスマスタ調停やバスマスタの優先度指定による調停手法等種々適用することができる。バスアービタは、1つ以上のバスマスタよりメモリアクセス要求が発行されたタイミングでメモリアクセスの調停を開始する(S70)。その際、単一のバスマスタのみがメモリアクセスを要求している場合(S70でNO)、本バスマスタのみを調停対象マスタリストに追加する(S73)。2つ以上のバスマスタがメモリアクセスを要求している場合(S70でYES)、バスアービタ117は各DRAM群に対応する順序制御回路115より入力されるコマンドバッファの各、ステータス信号118を比較する(S71、S74)。各、ステータス信号118の比較結果、第一のDRAM群の空きエントリ数と第二のDRAM群の空きエントリ数とが同数であった場合(S71でYES)、メモリアクセスを要求している全てのバスマスタを調停対象マスタリストに追加する(S72)。比較結果、第一のDRAM群102−Aに対応するステータス信号118が示す空きエントリ数の方が大きかった場合(S74でYES)、アクセス領域識別手段119の判定結果より、第一のDRAM群102−Aのみへのメモリアクセス発行マスタの有無を判定する(S75)。第一のDRAM群102−Aのみへのメモリアクセス発行マスタが存在する場合(S75でYES)、該当するバスマスタを調停対象マスタリストに追加する(S76)。第一のDRAM群102−Aのみへのメモリアクセス発行マスタが存在しない場合(S75でNO)、メモリアクセスを要求している全てのバスマスタを調停対象マスタリストに追加する(S77)。
比較結果、第二のDRAM群102−Bに対応するステータス信号118が示す空きエントリ数の方が大きかった場合(S74でNO)、アクセス領域識別手段119の判定結果より、第二のDRAM群102−Bのみへのメモリアクセス発行マスタの有無を判定する(S78)。第二のDRAM群102−Bのみへのメモリアクセス発行マスタが存在する場合(S78でYES)、該当するバスマスタを調停対象マスタリストに追加する(S79)。第二のDRAM群102−Bのみへのメモリアクセス発行マスタが存在しない場合(S78でNO)、メモリアクセスを要求している全てのバスマスタを調停対象マスタリストに追加する(S77)。上記のフローチャートに係る処理を通じ、最終的に調停対象マスタリストよりメモリアクセス許可を発行するバスマスタの調停を実行する(S80)。そして、調停の結果、選択されたバスマスタの転送を許可する(S81)。
以上の処理により、バスアービタ117は、バスマスタからのメモリアクセス要求受信時に、第一のDRAM群102−Aと第二のDRAM群102−Bとに対して発行待ち転送の少ないDRAM群に対するメモリアクセスを優先的に選択することを可能とする。各DRAM群に対するメモリアクセス転送数の偏りを解消するようメモリアクセスの調停を実施する。本実施形態では2組のDRAM群で構成されるメモリシステムについて示したが、DRAM群の数は種々変更できる。図8に4組のDRAM群で構成されるメモリシステムを例示する。
以上、本実施形態によれば、単一のバス転送を複数のメモリチャネルに分割発行するメモリシステムで、複数のメモリチャネルの並列動作期間を増加させ、メモリアクセス効率を向上させることができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
117 バスアービタ

Claims (2)

  1. バスマスタと、メモリ制御回路と、バスマスタとメモリ制御回路との間を接続するバスと、バスアービタと、複数のメモリチャネルと、を有するメモリシステムであって、
    前記メモリ制御回路は、前記複数のメモリチャネルに対応した複数のメモリコマンド発行部を有し、
    各メモリコマンド発行部は、対応するメモリチャネルに対する複数のメモリアクセス要求を保持するバッファを有し、
    前記バスアービタは、
    バスマスタからのアドレス、転送サイズに従って複数のメモリチャネルよりアクセス対象となる物理メモリを識別する識別手段を有し、
    前記識別手段での識別の結果と前記バッファの前記メモリアクセス要求に係る空きエントリ数とに基づきバスマスタによるメモリアクセスの調停を行う、メモリシステム。
  2. 前記複数のメモリチャネルは、それぞれDRAMにより構成される、請求項1記載のメモリシステム。
JP2009140437A 2009-06-11 2009-06-11 メモリシステム Pending JP2010287058A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009140437A JP2010287058A (ja) 2009-06-11 2009-06-11 メモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009140437A JP2010287058A (ja) 2009-06-11 2009-06-11 メモリシステム

Publications (1)

Publication Number Publication Date
JP2010287058A true JP2010287058A (ja) 2010-12-24

Family

ID=43542707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009140437A Pending JP2010287058A (ja) 2009-06-11 2009-06-11 メモリシステム

Country Status (1)

Country Link
JP (1) JP2010287058A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016157490A (ja) * 2011-12-09 2016-09-01 クアルコム,インコーポレイテッド 複数のメモリ領域にわたる強順序付けされたデバイス、および排他的トランザクションの自動順序付け
US9575907B2 (en) 2011-12-13 2017-02-21 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
JP7534472B2 (ja) 2022-05-11 2024-08-14 地平▲線▼(上海)人工智能技▲術▼有限公司 記憶装置、方法、電子機器及び記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016157490A (ja) * 2011-12-09 2016-09-01 クアルコム,インコーポレイテッド 複数のメモリ領域にわたる強順序付けされたデバイス、および排他的トランザクションの自動順序付け
US9575907B2 (en) 2011-12-13 2017-02-21 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
JP7534472B2 (ja) 2022-05-11 2024-08-14 地平▲線▼(上海)人工智能技▲術▼有限公司 記憶装置、方法、電子機器及び記憶媒体

Similar Documents

Publication Publication Date Title
US8601192B2 (en) Arbitration device, arbitration system, arbitration method, semiconductor integrated circuit, and image processing device
KR100716950B1 (ko) 버스 시스템
US7543114B2 (en) System and controller with reduced bus utilization time
US20030088743A1 (en) Mobile wireless communication device architectures and methods therefor
US8019951B2 (en) Memory controller including multiple system bus interfaces
US20160062930A1 (en) Bus master, bus system, and bus control method
EP1730643A2 (en) Pvdm (packet voice data module) generic bus protocol
JP2013509655A (ja) 複数の仮想キューを含むアドレス変換ユニット
US20050253858A1 (en) Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams
CN105068951A (zh) 一种具有非等时传输结构的片上系统总线
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
JP6053384B2 (ja) 情報処理装置、メモリ制御装置およびその制御方法
US8838862B2 (en) Data transfer device, method of transferring data, and image forming apparatus
US11652761B2 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
US11119924B2 (en) Interface device including ports and a cache memory, and control method thereof
US7913013B2 (en) Semiconductor integrated circuit
JP2010287058A (ja) メモリシステム
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US20070043910A1 (en) Memory control apparatus executing prefetch instruction
JP2011013835A (ja) メモリシステム、メモリアクセス方法、及びプログラム
US9767054B2 (en) Data transfer control device and memory-containing device
TWI553483B (zh) 處理器及存取記憶體的方法
US20080270668A1 (en) Method to Hide or Reduce Access Latency of a Slow Peripheral in a Pipelined Direct Memory Access System
CN102184150A (zh) 高功能环形缓冲缓存系统及其控制方法
JP2003085125A (ja) メモリ制御器及びメモリ制御方法