JP5005350B2 - メモリコントローラ - Google Patents

メモリコントローラ Download PDF

Info

Publication number
JP5005350B2
JP5005350B2 JP2006543402A JP2006543402A JP5005350B2 JP 5005350 B2 JP5005350 B2 JP 5005350B2 JP 2006543402 A JP2006543402 A JP 2006543402A JP 2006543402 A JP2006543402 A JP 2006543402A JP 5005350 B2 JP5005350 B2 JP 5005350B2
Authority
JP
Japan
Prior art keywords
command
priority
channel
memory bank
commands
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.)
Expired - Fee Related
Application number
JP2006543402A
Other languages
English (en)
Other versions
JP2007514221A (ja
Inventor
ティム ニゲマイヤー
トーマス ブルネ
ロータル フライスマン
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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
Priority claimed from DE200410009428 external-priority patent/DE102004009428A1/de
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2007514221A publication Critical patent/JP2007514221A/ja
Application granted granted Critical
Publication of JP5005350B2 publication Critical patent/JP5005350B2/ja
Expired - Fee Related 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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Description

本発明は、外部DRAMを使用するICのためのメモリコントローラ、特に、コマンドスケジューラを有するメモリコントローラに関する。
ドイツにおける、あらかじめ映像が記録された記録媒体の売上げ統計によると、DVDの売上げが、去年初めてビデオカセットを上回っている。近い将来、DVDビデオ記録器が、アナログビデオ記録器に取って代わることが予想される。特に、現在急速に広まっているデジタルテレビ受信(DVB)が、デジタル記録の需要を呼び起こすことが予想される。この状況において、MPEG−4の様な、最新の圧縮方法を使用しても、平均して、2つのシネマフィルムのみしか書き込み可能なDVDに保存できないことが認識されている。高精細テレビ(HDTV)の進展に伴い、大容量の新しい光記録媒体の開発が推進されている。この種の光記録媒体の例として54ギガバイトの容量を持つブルーレイディスクがある。将来の光記録媒体用ドライブは、少なくともブルーレイディスク、DVD及びCDのフォーマットの記録再生をサポートすることが好ましい。このため、前記フォーマットを扱う光ドライブを制御するICが望まれている。DVB受信機といった、画像処理分野においても高性能なICが望まれている。
最終消費者向けデジタル機器のコスト削減のため、モノリシックICによる解決法(ワンチップソリューション)が、可能な限り使用されている。これは、システムの開発期間を短縮するため、専用ハードウェアに代えて、組み込みCPU及び/又はDSPが使用されていることを意味する。これらプロセッサからの命令及びデータを保存するため、そして、ビデオ又はドライブからのデータストリームをバッファリングするため、数メガバイトの大容量メモリが必要とされている。メモリコストを低く抑えるため、DRAM(ダイナミックRAM)が、通常、SRAM(スタテッィクRAM)の代わりに使用されている。好ましくは、SDRAM(同期DRAM)や、例えば、DDR−RAM(ダブルデータレートRAM)、ESDRAM(拡張SDRAM)、SLDRAM(同期リンクDRAM)、RDRAM(ランバスDRAM)といった他のDRAMが使用される。以下においては、DRAMは一般的な意味で、SDRAMは具体的な意味で使用する。しかしながら、本発明は、SDRAMに限定されない。
組み込みDRAMは比較的コストが高くなり、組み込みDRAMをサポートするICはあまりない。このため、外部DRAMが、通常、使用される。IC開発のコストを削減するため、特に、ICの物理サイズを小さくするために、使用するピン数は制限される。この制限のため、しばしば、DRAMへの外部データバスが、内部データバスより狭帯域になることがある。これは、ボトルネックの結果になる。加えて、DRAMは、多種のデータを保存するために使用される。つまり、CPU、DSP、リアルタイムデータにより共用される。これは、ボトルネックを悪化させる。
典型的なSDRAMモジュールは、4つの独立したメモリバンクを有している。各メモリバンクは、カラムで構成されるロウを含んでいる。特定のデータを指定するために、まず、適切なメモリバンクの適切なロウがアクティベート(“activate”)される。2から4クロックサイクル必要な、アクティベートに続き、データ転送が、読み出し又は書き込みコマンドと、所望のカラムアドレスを送信することにより開始される。オープン状態であるロウをディアクティベートし、次のアクティベートコマンドに対してメモリバンクを備えるために、データ転送後、メモリバンクは“プリチャージ”される。システムは次のクロックサイクルで送信されるアドレスを知っているため、“プリチャージ”とは、メモリアドレスがアクセスのために既に準備されていることを意味している。
通常、単一の読み出し又は書き込みコマンドを使用して、複数のデータの読み出し又は書き込みを行う、バースト転送が使用される。アクセスは、所定の位置(カラム)で開始され、プログラムされた位置まで続けられる。新しいバーストが開始されたとき、コマンドバスは空きとなり、他のメモリバンクのアクティベートや、プリチャージに使用される。
メモリバンクは、この様に、コマンドラインの共用はするが、相互に独立して制御される。よって、各クロックサイクルにて1つのコマンドのみが送信される。
ピン数と物理サイズを小さくするには、DRAMモジュールへの外部データバスのスループットを最大にする必要がある。上記SDRAMにて説明した、DRAMに対する問題は、ロウのアクティベートと、メモリバンクのプリチャージに複数のクロックサイクルが必要なことである。これは、データ転送間に数クロックサイクルの待ち時間が生じる結果となる。読み出し又は書き込みバースト長によって、この待ち時間は、データ転送に使用したクロックサイクルより大きなクロックサイクルになってしまう。図1(a)は、4クロックサイクルに渡る2つのバースト書込の例を示している。バースト書込間にデータ転送が行われない7クロックサイクルが存在している。待ち時間をなくすためには、バースト書込又は読出の進行中に、次のデータ転送の準備を行う必要がある。図1(b)は、同じく、4クロックサイクルに渡る2つのバースト書込の例を示している。待ち時間は、他のデータ転送の影に隠れている。
DRAMモジュールへのより広帯域なデータバスを使用することによる、或いは、外部データバスの負荷を削減するために組み込み型SRAMを使用することによるボトルネックの除去は、よく知られた方法である。両解決法は、比較的、実装コストが高くなる。
したがって、本発明は、低コストで実現可能であり、かつ、待ち時間を削減して高いデータスループットを実現するメモリコントローラを提供することを目的とする。
以下では単一DRAMモジュールを例にして本発明の説明を行う。しかし、同一データ及びコマンドバスに接続することで、複数のメモリモジュールに対しても適用可能である。この場合、チップイネーブル信号が、所定のモジュールを選択するために使用される。
1つ以上のDRAMモジュールを、各種のアプリケーションに使用するため、種々のプロセッサや、リアルタイムデータストリームのための記憶領域を物理的に分離することが必要である。これは、それぞれが、1つ以上の対応するDRAMメモリバンクを持つことを意味する。この条件は、共通して使用するメモリバンクに連続するアクセス操作が生じないようにするのであれば免除することができる。
本発明によると、ICと、少なくとも2つのメモリバンクを有し、該ICと少なくとも1つのチャネルで通信する外部DRAMとの通信方法であって、コマンドに静的に割り当てた優先度と、チャネルに動的に割り当てる優先度に基づき、メモリバンクコマンド送信の優先度を付与することを含んでいる。
本発明の利点は、DRAMメモリバンクの状態が、対応するステートマシンにより示されることにある。これは、総てのメモリバンクを他のメモリバンクと独立して制御することを可能にする。各アクセス操作において、ステートマシンは、転送種別(読み出し又は書き込み)、ロウ番号及びカラム番号を受信する。時間調整の特別な規則に基づき、コマンドをコマンドスケジューラに送信することで、メモリバンクを制御する。この場合、各チャネルは、対応するメモリバンクを制御するステートマシンに接続されている。もし、チャネルが複数のメモリバンクにアクセスする場合、ネットワークが設けられる。コマンドスケジューラは、同じメモリバンクが連続して複数回指定されないことを確実にする。1つのメモリバンクへの2つのアクセスの間、他のメモリバンクへのアクセスが常にもたらされる。しかしながら、メモリバンク内の同じロウに対してであれば、1つのメモリバンクへの2つの連続するアクセス操作は許可され、アクティベーション又はプリチャージによる待ち時間は生じない。優先度の割当ては、DRAMデータバスの最適な利用が達成されるように、新しいバーストの開始能力に基づき、待ちコマンドを並べ替える。これは、読み出し又は書き込みコマンドが、読み出し又は書き込みコマンドの前提条件であるアクティベーションコマンドに次いで、高い優先度を持つことを意味している。プリチャージコマンドは、現在の転送に対するものではないため、最も低い優先度が割り与えられる。プリチャージコマンドは、連続転送にのみ必要であり、よって、遅延さすことができる。もし、総てのバースト長が、4以上のクロックサイクルを持つならば、コマンドラインの負荷は、低い優先度のコマンドを、遅延なしに送信するのに十分小さい。待ちコマンドの順序を規定するため、コマンドを分析し、グループ化し、可能な限り早いデータ転送の開始のため、その能力に応じて並べ替える必要がある。
Figure 0005005350
本発明は、DRAMモジュールの帯域を、物理的な最大値付近まで高める。大きな負荷のとき、アクティベートとプリチャージによって遅延は隠れ、アクセスタイムは短くなる。本発明のメモリコントローラにより、あるチャネルでの低遅延でのアクセス操作と、他のチャネルでの高いデータスループットとを同時に達成することができる。
本発明の他の特徴によれば、少なくとも2つのメモリバンクを有し、少なくとも1つのチャネルでICと通信する外部DRAMを使用する、該ICのためのメモリコントローラであって、コマンドに静的に割り当てた優先度と、チャネルに動的に割り当てる優先度に基づき、メモリバンクコマンド送信の優先度を付与するコマンドスケジューラを含んでいる。
好ましくは、光記録媒体の記録再生装置は、本発明のメモリコントローラを有し、或いは、本発明のICと外部DRAM間の通信方法を使用する。
本発明のより良い理解のために、以下では図1から図5を用いて、本発明の詳細な説明を行う。この場合、同一の構成要素には同一の符号を付与する。本発明は、以下に示す実施形態に限定されない。本発明の特徴は、本発明の範囲から逸脱しない限りにおいて結合又は修正され得るものである。
図2は、本発明のメモリコントローラのブロック図であり、図2においては、3チャネル、つまり、CPUと接続するAMBAバス8と、リアルタイムデータストリームのための入力チャネル6及び出力チャネル7と、を持つシステムのSDRAMコントローラ1を例として使用している。SDRAMモジュール2の各メモリバンク21、22、23、24は、メモリバンク制御ユニット4内に、それぞれがメモリバンク21、22、23、24の状態を表し、待ち時間の監視と正確な状態遷移に責任を持つステートマシン41、42、43、44を有している。これらステートマシン41、42、43、44は、メモリバンク21、22、23、24のためのコマンドを、外部コマンドとデータバスの割当てを監視するコマンドスケジューラ3(コマンドバススケジューラ)に送信する。各クロックサイクルで、コマンドスケジューラ3は、DRAMモジュール2の優先順位により選択されたコマンドを出力する。ステートマシン41、42、43、44は、転送順位を3つのチャネル(入力6、AMBA8、出力7)から直接取得し、それらは、メモリバンクスケジューリングユニット5によって、アドレスと、適切なメモリバンク21、22、23、24の優先順位とに基づき転送されたものである。メモリバンクスケジューリングユニット5は、総てのチャネル6、7、8が、総てのメモリバンク21、22、23、24にアクセスできるようにネットワークを含んでいる。記憶媒体への読出アクセスの間、入力チャネル6は、ECC(誤り訂正符号)ユニット(図示せず)からデータを受取、出力チャネル7は、ATAPIブロック(図示せず)にデータを転送する。両チャネル6、7は、データフローの中断を防ぐためFIFO(図示せず)を有している。記録媒体への書込アクセスの間、入力チャネル6は、ATAPIブロックからデータを受信し、出力チャネル7は、それらをECCユニットに転送する。AMBA(Advanced Microcontroller Bus Architecture)チャネル8は、付加的にレジスタファイル34(図3)へのアクセスを許可されたAMBAスレーブを含んでいる。AMBAスレーブは、AMBAバスのブロックタイムを削減するために読出キャッシュと書込キャッシュ(図示せず)を含んでいる。4つのSDRAMメモリバンク21、22、23、24のそれぞれの内部状態は、別々のステートマシンで示されているので、ステートマシン41、42、43、44へのアクセスにおいては、上流のスケジューリングアルゴリズムよって扱われない3つのチャネル6、7、8による競合が生じるかもしれない。しかしながら、この競合状態をめったに生じなくさせることは可能である。このため、セクタデータのリアルタイムデータストリームは、DRAMアクセス操作に対して優先される。
図3は、コマンドスケジューラ3のより詳細なブロック図である。4つのメモリバンク21、22、23、24を管理するステートマシン41、42、43、44からのコマンドは、コマンド分析器31で分析される。この場合、5つの可能なコマンド、“アクティベート”、“読み出し”、“書き込み”、“プリチャージ”、“バースト終了”の少なくとも1つが存在するか否かが調べられる。存在する場合、最初に出現したものがスケジューラ32に送信される。このように、待ち状態のコマンドが存在するか否かのみが関係し、メモリバンク21、22、23、24や、現在関係しているチャネル6、7、8は重要ではない。
スケジューラ32は、スケジューラ32の特定の動作パラメータを有しているレジスタファイル34にアクセスする。スケジューラ32は、まず、グローバルコマンドの存在を検査する。DRAMの動作パラメータを含むモードレジスタをプログラムするコマンドが、グローバルリフレッシュ又はグローバルプリチャージのために存在するなら、それは直接実行される。メモリバンク制御ユニット4は、グローバルコマンドが、メモリバンク21、22、23、24がアイドル状態時のみに生じるようにしているため、更なる検査をここでは必要としない。
もし、送信されたグローバルコマンドがNOP(No Operation)であるなら、メモリバンクコマンドをDRAMモジュール2に送信することができる。メモリバンクコマンドは、静的に割り当てられたコマンドの優先度と、優先度割当ユニット33により動的に割り当てられるチャネル6、7、8の優先度に基づき送信される。この場合、コマンドの優先度が、チャネル6、7、8の優先度より高い。これは、まずコマンド種別が選択され、このコマンドの送信を望む複数のチャネル6、7、8が存在する場合、コマンド送信を許可されるチャネル6、7、8が選択されることを意味する。
コマンドのうち、バーストを終了するためのバースト終了コマンドは、最も高い優先度を持っている。新しいバーストを開始し、それらをできるだけ速く送信することがデータバスの適切な使用レベルの前提となる読み出し及び書き込みコマンドは、2番目に高い優先度を持っている。次に低い優先度は、ロウのオープンに使用されるアクティベートコマンドに付与されている。ロウのオープンは、バースト開始の前提であるので、アクティベートコマンドの優先度は、プリチャージコマンドより高く、プリチャージコマンドは、バースト終了後、待機中であるアクセスが無い場合に実行され、全体のパフォーマンスに影響を与えないため最も低い優先度となっている。
チャネル6、7、8への動的な優先度の割当ては、図4に示す有限ステートマシン、つまり、状態遷移図でのアルゴリズムに影響される。図示しているアルゴリズムは、AMBA−AHB(Advanced High−performance BUS)経由でのCPUのアクセス操作及び2つのチャネル(入力及び出力)でのリアルタイムデータストリームを制御する。状態は、優先順位を表示している。この場合、一番上にあるチャネルが最も高い優先度であり、一番下にあるチャネルが最も低い優先度である。状態遷移は、最終的にバースト読み出し又は書き込みを開始できるチャネルを表している。フラッシュコントローラのための付加的なチャネル、例えば、ファームウェアを送信するためのチャネル等は、他のチャネルとは競合しないので含めていない。
図示するように、3つのチャネル総てがアクティブのとき、入力→AMBA→出力→AMBAの列が常に観察される。もし、最も高い優先度のチャネルが、現在アクティブで無い、或いは、そのコマンドの優先度が低すぎることにより、コマンドを送信できないなら、コマンドを最終的に送信したチャネルは、次のクロックサイクルにおいて最も低い優先度を与えられる。同時に、もしAMBAチャネル8が現在のクロックサイクルにおいて最も高い優先度ではなく、別のチャネルが送信した場合、次のクロックサイクルにおいて最も高い優先度が割り当てられる。一旦、AMBAチャネル8が最も高い優先度を獲得した場合、AMBAチャネル8がコマンド送信するまで最も高い優先度を維持する。これは、ARMのための最低遅延を可能にする。図示している状態図において、AMBAチャネル8には、入力チャネル6や出力チャネル7経由のバースト後、常に最も高い優先度が割り当てられるので、CPUアクセス操作の短い遅延時間を保証している。更に、状態遷移は、データバスの公平な使用と、メモリバンク21、22、23、24への交互のアクセス操作を行う。アルゴリズムは、高優先度でのCPUアクセス操作のために設計され、リアルタイムデータストリームのデータスループットの低遅延が同時に保障される。データスループットは、DRAM2との入力チャネル6及び出力チャネル7経由でのデータ転送において、読み出し及び書き込みバースト長によって規定される。
コマンド送信を許可するチャネルの決定について、図5のフロー図を用いて以下に説明する。もし、メモリバンクのFSM(有限ステートマシン)がバーストを終了するとき、これは最も高い優先度を持つ。その結果、バースト終了(BST)が、開始(9)の後、分析(10)の間に見つけられたなら、進行中のバーストは中止される。これは2つの方法、第1の方法はバースト終了コマンドの単なる転送(12)により、第2の方法は新しいバースト(14)の開始により行われる。バースト終了の送信前に、検査(11)が、送信待ちの読み出し又は書き込みコマンドが存在するか否かを判定するために実行される。もし存在するなら、このコマンドが、バースト終了に代えて送信(14)される。分析の間、少なくとも1つの読み出し又は書き込みコマンドが存在するかが単に検査される。このため、読み出し又は書き込みコマンド送信(14)前に、動的にチャネルに割り当てられた優先度が、読み出し又は書き込みコマンドを持つ最も優先度の高いチャネルがどれであるかを検査するために使用される。このチャネルがコマンドの送信を許可される。チャネルの選択は、優先度割当に伝わり、このように、次のクロックサイクルでの新しい優先度状態に変化する。読み出し又は書き込みコマンドによるバースト終了コマンドの置換に対する唯一の制限は、バースト読み出しがバースト書き込みにより終了できないことであり、これは、メモリコントローラ1及びDRAMモジュール2が同時にデータバスを駆動できないことによる。しかしながら、DRAM出力のホールド時間は一定で、クロック周波数に依存しないので、より低いクロック周波数が使用されるとき、この制限を省略することができる。
もし、バースト終了コマンドが存在しない場合、読み出し又は書き込みコマンドの存在が検査(13)され、もしそれらが存在する場合、コマンドが割り当てられた優先度に基づき送信(14)される。もし、読み出し及び書き込みコマンドのどちらもが存在しない場合、アクティベートコマンドが検査(15)される。アクティベートコマンドが待ち状態である場合、それは送信(16)される。もし、アクティベートコマンドが存在しない場合、プリチャージコマンドが検査(17)される。存在する総てのプリチャージコマンドは送信(18)される。総てのチャネル6、7、8及び総てのメモリバンク21、22、23、24がコマンド送信を望んでいない場合、NOP(No Operation)が送信される。コマンドがDRAMモジュール2へ送信された場合、このコマンドを出力したメモリバンクのFSMは、信号により通知を受け、次のクロックサイクルにて新しい状態へと変化する。
DRAMモジュール2のセットアップ及びホールド時間を守るために、DRAMモジュール2はコマンド送信時、好ましくは、反転したシステムクロックで動作する。書き込みアクセス操作のためのコマンド及びデータは、半クロックサイクルと、入出力ドライバでの信号伝達時間と、回路ボード上の伝達時間を加算した遅延を持ち、DRAMモジュール2により受け取られる。
4クロックサイクルに渡る2つのバースト書込の2つの例を示す図である。 本発明によるメモリコントローラのブロック図である。 コマンドスケジューラのブロック図である。 優先度割当の状態遷移図である。 コマンドスケジューラのフロー図である。
符号の説明
1 SDRAMコントローラ
2 SDRAMモジュール
3 コマンドスケジューラ
4 メモリバンク制御ユニット
5 メモリバンクスケジューリングユニット
6 入力チャネル
7 出力チャネル
8 AMBAバス
21、22、23、24 メモリバンク
31 コマンド分析器
32 スケジューラ
33 優先度割当ユニット
34 レジスタファイル
41、42、43、44 ステートマシン

Claims (12)

  1. 集積回路(IC)および外部ランダムアクセスメモリ(RAM)の間の通信方法において、前記外部RAMは少なくとも1つのメモリバンクを有し、前記ICと前記外部RAMとの間の通信は2つ以上のチャネル経由で実行され、前記チャネルの少なくとも1つは専用入力チャネルおよび専用出力チャネルの1つであり、前記ICと前記外部RAMとの間のデータ交換は少なくとも2つのメモリバンクコマンドを必要とし、前記方法は、
    複数のチャネルを経由して、前記少なくとも2つのメモリバンクコマンドを受信するステップと、
    静的な優先度割り当てに基づいて、前記少なくとも2つの受信されたメモリバンクコマンドを優先順位付けするステップであって、少なくとも第1のタイプのメモリバンクコマンドは第1の静的な優先度を持ち、第2のタイプのメモリバンクコマンドは第2の静的な優先度を持つ、順位付けするステップと、
    前記チャネルに対する動的な優先度割り当てに基づいて、同じ静的優先度を有する前記少なくとも2つのコマンドをさらに優先順位付けするステップと
    を備えることを特徴とする方法。
  2. 静的な優先度割り当てに基づいて、前記少なくとも2つの受信されたメモリバンクコマンドを優先順位付けする前記ステップは、
    “バースト終了”コマンドに最も高い優先度を与えるステップと、“読み出し”または“書き込み”コマンドに2番目に高い優先度を与えるステップと、“アクティベート”コマンドに3番目に高い優先度を与えるステップと、“プリチャージ”コマンドに最も低い優先度を与えるステップ
    を含むことを特徴とする請求項1に記載の方法。
  3. 前記チャネルに対する動的な優先度割り当てに基づいて、同じ静的優先度を有する前記少なくとも2つのコマンドをさらに優先順位付けする前記ステップは、
    コマンドがそれを経由して送られたチャネルに、最も低い優先度を与えるステップ
    を含むことを特徴とする請求項1または2に記載の方法。
  4. 前記チャネルに対する動的な優先度割り当てに基づいて、同じ静的優先度を有する前記少なくとも2つのコマンドをさらに優先順位付けする前記ステップは、
    前記2つ以上のチャネルの1つがAMBAバスである場合に、前記動的な優先度割当ては、前記AMBAバスが現在のクロックサイクルで最高の優先度を持っておらず、および、コマンドが他のチャネルを経由して送られる場合は、前記AMBAバスが次のクロックサイクルにおいて最高の優先度を与えられることを含むこと
    を特徴とする請求項1乃至3のいずれかに記載の方法。
  5. 前記チャネルに対する動的な優先度割り当てに基づいて、同じ静的優先度を有する前記少なくとも2つのコマンドをさらに優先順位付けする前記ステップは、
    前記2つ以上のチャネルの1つがAMBAバスである場合に、前記動的な優先度割当ては、前記AMBAバスがコマンドを送ることができるときのみに前記AMBAバスが最高の優先度を失うことを含み得ること
    を特徴とする請求項1乃至4のいずれかに記載の方法。
  6. 前記チャネルを経由して、前記外部RAMにおいて物理的に分離したメモリ領域にアクセスするステップ
    をさらに備えることを特徴とする請求項1乃至5のいずれかに記載の方法。
  7. 前記チャネルを経由して、前記外部RAMにおいて共用して使用されるメモリ領域にアクセスするステップをさらに備え、
    共用して使用されるメモリ領域への連続するアクセス動作が生じないことが保証されることを特徴とする請求項1乃至5のいずれかに記載の方法。
  8. ネットワークによって、少なくとも1つのチャネルを経由して様々なメモリバンクへアクセスするステップ
    をさらに備えることを特徴とする請求項1乃至7のいずれかに記載の方法。
  9. 関連付けられたステートマシンによって、前記メモリバンクの状態を描くステップをさらに備えることを特徴とする請求項1乃至8のいずれかに記載の方法。
  10. 複数のRAMモジュールを使用するステップと、
    前記複数のRAMモジュールの各々が、所望の前記モジュールを選択するために、チップイネーブル信号を受信するステップと
    をさらに備えることを特徴とする請求項1乃至9のいずれかに記載の方法。
  11. 外部ランダムアクセスメモリ(RAM)を有する集積回路(IC)のためのメモリコントローラにおいて、前記外部RAMは少なくとも1つのメモリバンクを有し、前記ICと前記外部RAMとの間の通信は2つ以上のチャネル経由で実行され、前記チャネルの少なくとも1つは専用入力チャネルおよび専用出力チャネルの1つであり、前記ICと前記外部RAMとの間のデータ交換は少なくとも2つのメモリバンクコマンドを必要とし、前記メモリコントローラは、
    コマンドに対する静的な優先度割り当てに基づいて、複数のチャネルの前記少なくとも2つのメモリバンクコマンドの送信を優先順位付けするコマンドスケジューラであって、少なくとも第1のタイプのメモリバンクコマンドは第1の静的な優先度を持ち、第2のタイプのメモリバンクコマンドは第2の静的な優先度を持ち、前記チャネルに対する動的な優先度割り当てに基づいて、同じ静的優先度を有する前記少なくとも2つのコマンドがさらに優先順位付けされるコマンドスケジューラ
    を備えたことを特徴とするメモリコントローラ。
  12. 記憶媒体を読取りおよび/または記憶媒体へ書き込む装置であって、
    請求項1乃至10のいずれかに記載された方法を使用するメモリコントローラを備えたことを特徴とする装置。
JP2006543402A 2003-12-09 2004-11-15 メモリコントローラ Expired - Fee Related JP5005350B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
DE10357697 2003-12-09
DE10357697.5 2003-12-09
DE200410009428 DE102004009428A1 (de) 2004-02-24 2004-02-24 Speicher-Controller
DE102004009428.4 2004-02-24
PCT/EP2004/012940 WO2005059764A1 (en) 2003-12-09 2004-11-15 Memory controller

Publications (2)

Publication Number Publication Date
JP2007514221A JP2007514221A (ja) 2007-05-31
JP5005350B2 true JP5005350B2 (ja) 2012-08-22

Family

ID=34701981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006543402A Expired - Fee Related JP5005350B2 (ja) 2003-12-09 2004-11-15 メモリコントローラ

Country Status (7)

Country Link
US (1) US7873797B2 (ja)
EP (1) EP1692617B1 (ja)
JP (1) JP5005350B2 (ja)
KR (1) KR101198981B1 (ja)
CN (1) CN1882928B (ja)
DE (1) DE602004020504D1 (ja)
WO (1) WO2005059764A1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397013B1 (en) 2006-10-05 2013-03-12 Google Inc. Hybrid memory module
US20080028136A1 (en) * 2006-07-31 2008-01-31 Schakel Keith R Method and apparatus for refresh management of memory modules
US8386722B1 (en) 2008-06-23 2013-02-26 Google Inc. Stacked DIMM memory interface
KR101318116B1 (ko) * 2005-06-24 2013-11-14 구글 인코포레이티드 집적 메모리 코어 및 메모리 인터페이스 회로
US8111566B1 (en) 2007-11-16 2012-02-07 Google, Inc. Optimal channel design for memory devices for providing a high-speed memory interface
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8089795B2 (en) 2006-02-09 2012-01-03 Google Inc. Memory module with memory stack and interface with enhanced capabilities
US8081474B1 (en) 2007-12-18 2011-12-20 Google Inc. Embossed heat spreader
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US7609567B2 (en) 2005-06-24 2009-10-27 Metaram, Inc. System and method for simulating an aspect of a memory circuit
US8619452B2 (en) 2005-09-02 2013-12-31 Google Inc. Methods and apparatus of stacking DRAMs
US7386656B2 (en) 2006-07-31 2008-06-10 Metaram, Inc. Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit
US8796830B1 (en) 2006-09-01 2014-08-05 Google Inc. Stackable low-profile lead frame package
US8335894B1 (en) 2008-07-25 2012-12-18 Google Inc. Configurable memory system with interface circuit
US8055833B2 (en) 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US8077535B2 (en) 2006-07-31 2011-12-13 Google Inc. Memory refresh apparatus and method
US8327104B2 (en) 2006-07-31 2012-12-04 Google Inc. Adjusting the timing of signals associated with a memory system
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US8244971B2 (en) 2006-07-31 2012-08-14 Google Inc. Memory circuit system and method
US8041881B2 (en) 2006-07-31 2011-10-18 Google Inc. Memory device with emulated characteristics
US9507739B2 (en) 2005-06-24 2016-11-29 Google Inc. Configurable memory circuit system and method
US8090897B2 (en) * 2006-07-31 2012-01-03 Google Inc. System and method for simulating an aspect of a memory circuit
US9542352B2 (en) 2006-02-09 2017-01-10 Google Inc. System and method for reducing command scheduling constraints of memory circuits
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
US8359187B2 (en) 2005-06-24 2013-01-22 Google Inc. Simulating a different number of memory circuit devices
US8060774B2 (en) 2005-06-24 2011-11-15 Google Inc. Memory systems and memory modules
US8130560B1 (en) 2006-11-13 2012-03-06 Google Inc. Multi-rank partial width memory modules
US9632929B2 (en) 2006-02-09 2017-04-25 Google Inc. Translating an address associated with a command communicated between a system and memory circuits
US7724589B2 (en) 2006-07-31 2010-05-25 Google Inc. System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits
US8209479B2 (en) 2007-07-18 2012-06-26 Google Inc. Memory circuit system and method
US8080874B1 (en) 2007-09-14 2011-12-20 Google Inc. Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween
KR100951126B1 (ko) * 2008-02-18 2010-04-07 인하대학교 산학협력단 버스 중재 방법 및 장치
JP5233360B2 (ja) * 2008-03-27 2013-07-10 富士通株式会社 メモリ制御装置,メモリ制御装置の制御方法および情報処理装置
CN101587461B (zh) * 2008-05-20 2012-03-07 上海奇码数字信息有限公司 存储器访问调度装置、调度方法与存储器访问控制系统
WO2010065290A2 (en) * 2008-12-03 2010-06-10 Rambus Inc. Memory system with command filtering
JP5094822B2 (ja) 2008-12-04 2012-12-12 韓國電子通信研究院 多重プロセッサを含むメモリアクセス装置
EP2441007A1 (en) 2009-06-09 2012-04-18 Google, Inc. Programming of dimm termination resistance values
US8205021B2 (en) 2009-12-21 2012-06-19 Electronics And Telecommunications Research Institute Memory system and integrated management method for plurality of DMA channels
US9134919B2 (en) * 2012-03-29 2015-09-15 Samsung Electronics Co., Ltd. Memory device including priority information and method of operating the same
WO2014098839A1 (en) * 2012-12-19 2014-06-26 Hewlett-Packard Development Company Nvram path selection
US9811453B1 (en) * 2013-07-31 2017-11-07 Juniper Networks, Inc. Methods and apparatus for a scheduler for memory access
JP6072661B2 (ja) * 2013-09-30 2017-02-01 ルネサスエレクトロニクス株式会社 データ処理装置、マイクロコントローラ、及び半導体装置
US10409357B1 (en) * 2016-09-30 2019-09-10 Cadence Design Systems, Inc. Command-oriented low power control method of high-bandwidth-memory system

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US105901A (en) * 1870-08-02 Improved egg-holder
US33493A (en) * 1861-10-15 James reidy
US138687A (en) * 1873-05-06 Improvement in self-waiting tables
US61459A (en) * 1867-01-22 1867-01-22 peters
US4623986A (en) * 1984-02-23 1986-11-18 Texas Instruments Incorporated Memory access controller having cycle number register for storing the number of column address cycles in a multiple column address/single row address memory access cycle
FR2642195B1 (fr) * 1989-01-20 1991-04-26 Centre Nat Rech Scient Dispositif et procede d'arbitrage des requetes et de resolution des conflits lies a l'acces aux memoires a bancs independants pour les machines informatiques
US5418920A (en) * 1992-04-30 1995-05-23 Alcatel Network Systems, Inc. Refresh control method and system including request and refresh counters and priority arbitration circuitry
US5524235A (en) * 1994-10-14 1996-06-04 Compaq Computer Corporation System for arbitrating access to memory with dynamic priority assignment
US5630096A (en) * 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order
JPH10312333A (ja) 1997-05-13 1998-11-24 Seiko Epson Corp データ転送制御装置
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
GB9719047D0 (en) * 1997-09-08 1997-11-12 Sgs Thomson Microelectronics Arbitration system
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
JP4234829B2 (ja) * 1998-12-03 2009-03-04 パナソニック株式会社 メモリ制御装置
US6046952A (en) * 1998-12-04 2000-04-04 Advanced Micro Devices, Inc. Method and apparatus for optimizing memory performance with opportunistic refreshing
US6360305B1 (en) * 1998-12-04 2002-03-19 Advanced Micro Devices, Inc. Method and apparatus for optimizing memory performance with opportunistic pre-charging
US6295586B1 (en) * 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller
US6415366B1 (en) * 1999-06-02 2002-07-02 Alcatel Canada Inc. Method and apparatus for load distribution across memory banks with constrained access
EP1059589B1 (en) 1999-06-09 2005-03-30 Texas Instruments Incorporated Multi-channel DMA with scheduled ports
US6266734B1 (en) * 1999-07-29 2001-07-24 Micron Technology, Inc. Reducing memory latency by not performing bank conflict checks on idle banks
US6983350B1 (en) * 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
JP2001175530A (ja) * 1999-12-22 2001-06-29 Nec Ic Microcomput Syst Ltd メモリアクセス調停装置およびメモリアクセス調停方法
US6532509B1 (en) * 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
KR100716950B1 (ko) * 2000-08-11 2007-05-10 삼성전자주식회사 버스 시스템
US6725347B2 (en) 2001-01-16 2004-04-20 Sun Microsystems, Inc. Spin-wheel SDRAM access scheduler for high performance microprocessors
JP2002288037A (ja) * 2001-03-27 2002-10-04 Sony Corp メモリ制御装置及び方法
JP2002328837A (ja) 2001-04-27 2002-11-15 Fujitsu Ltd メモリ・コントローラ
US7093094B2 (en) 2001-08-09 2006-08-15 Mobilygen Corporation Random access memory controller with out of order execution
US6785793B2 (en) 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
CA2378777A1 (en) * 2002-03-25 2003-09-25 Catena Networks Canada Inc. Shared program memory with fetch and prefetch buffers
GB2396442B (en) * 2002-09-17 2006-03-01 Micron Technology Inc Host memory interface for a parallel processor

Also Published As

Publication number Publication date
US20070091696A1 (en) 2007-04-26
KR101198981B1 (ko) 2012-11-07
WO2005059764A1 (en) 2005-06-30
DE602004020504D1 (de) 2009-05-20
CN1882928B (zh) 2011-03-23
EP1692617A1 (en) 2006-08-23
KR20060127400A (ko) 2006-12-12
EP1692617B1 (en) 2009-04-08
US7873797B2 (en) 2011-01-18
JP2007514221A (ja) 2007-05-31
CN1882928A (zh) 2006-12-20

Similar Documents

Publication Publication Date Title
JP5005350B2 (ja) メモリコントローラ
US7222210B2 (en) System and method for memory hub-based expansion bus
RU2569104C2 (ru) УПРАВЛЕНИЕ СВЯЗНОЙ ИНФРАСТРУКТУРОЙ, СВЯЗАННОЕ С КАЧЕСТВОМ ОБСЛУЖИВАНИЯ (QoS)
US7216214B2 (en) System and method for re-ordering memory references for access to memory
JP4034268B2 (ja) 補助コマンドバスのための方法および装置
JP2007526559A (ja) パケットメモリを有するアービトレーションシステムとハブに基づくメモリシステムにおけるメモリ応答の方法
US9128633B2 (en) Semiconductor memory device and method of operating the semiconductor memory device
KR102106541B1 (ko) 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
US7484030B2 (en) Storage controller and methods for using the same
US7996601B2 (en) Apparatus and method of partially accessing dynamic random access memory
KR100676981B1 (ko) 데이터 처리 장치 및 방법과 컴퓨터 판독가능한 기록 매체
US8285932B2 (en) Mass storage system with improved usage of buffer capacity
US8301816B2 (en) Memory access controller, system, and method
KR20050075642A (ko) 효율적으로 버스를 사용하는 방법
US7613866B2 (en) Method for controlling access to a multibank memory
JP2011034214A (ja) メモリ制御装置
KR20050004157A (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛
CN117435535A (zh) 一种存储系统、主控芯片、数据存储方法及数据读取方法
EP1513072A2 (en) Method for multibank memory scheduling
KR20020096650A (ko) 영상 처리기의 메모리 액세스 중재 장치 및 방법
JPH07192462A (ja) 周辺記憶装置
JPH1185672A (ja) データ伝送装置
JPH0950349A (ja) データ記憶装置
JPH02197914A (ja) 情報ファイル制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071017

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100824

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100730

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100929

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100929

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101014

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110125

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20110131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110909

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120307

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: 20120511

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120523

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5005350

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees