JP4838120B2 - 効率的なメモリ制御装置 - Google Patents

効率的なメモリ制御装置 Download PDF

Info

Publication number
JP4838120B2
JP4838120B2 JP2006517255A JP2006517255A JP4838120B2 JP 4838120 B2 JP4838120 B2 JP 4838120B2 JP 2006517255 A JP2006517255 A JP 2006517255A JP 2006517255 A JP2006517255 A JP 2006517255A JP 4838120 B2 JP4838120 B2 JP 4838120B2
Authority
JP
Japan
Prior art keywords
memory
sequencer
command
time code
state
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
JP2006517255A
Other languages
English (en)
Other versions
JP2007524146A (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.)
Raytheon Co
Original Assignee
Raytheon Co
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 US10/844,284 external-priority patent/US7370169B2/en
Application filed by Raytheon Co filed Critical Raytheon Co
Publication of JP2007524146A publication Critical patent/JP2007524146A/ja
Application granted granted Critical
Publication of JP4838120B2 publication Critical patent/JP4838120B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Programmable Controllers (AREA)

Description

本発明はメモリ装置に関し、特にメモリ制御装置に関する。
本出願は米国特許出願第60/484,025号明細書(発明の名称“CYCLE TIME IMPROVED ESDRAM/SDRAM CONTROLLER FOR FREQUENT CROSS-PAGE AND SEQUENTIAL ACCESS APPLICATION”、2003年6月30日)についての優先権を主張しており、この文献はここで参考文献とされている。本出願はまた米国特許出願第60/483,999号明細書(発明の名称“DATA LEVEL BASED ESDRAM/SDRAM MEMORY ARBITRATOR TO ENABLE SINGLE MEMORY FOR ALL VIDEO FUNCTIONS”、2003年6月30日)についても優先権を主張しており、この文献はここで参考文献とされている。
同期ダイナミックランダムアクセスメモリ(SDRAM)、強化されたSDRAM(ESDRAM)、バーチャルチャンネルメモリ(VCM)制御装置のようなメモリ制御装置は、パーソナルコンピュータ、宇宙および航空機搭載コンピュータシステム、戦略的赤外線センサシステム、無人航空機誘導システムを含んだ種々の需要のある応用で使用されている。このような応用はスペースに対する要求と、設計の複雑性と、価格を最小にしながらメモリアクセス速度を最大にする効率的なメモリ制御装置を要求している。
メモリ制御装置は読取および書込みコマンドシーケンスのようなコマンドシーケンスをメモリに対して出力する。通常、メモリへコマンドシーケンスを発生するとき、制御装置はその次のコマンドシーケンスを発生する前に、コマンドシーケンスの完了を待機する。しかしながら、コマンドシーケンスがサービスされているとき、メモリとの間のデータ流がないことがしばしばあり、結果としてメモリの帯域幅と効率を減少する不所望なデータギャップが生じる。
幾つかのメモリ制御装置はデータギャップを減少するためのパイプライン状態マシンを使用している。パイプライン状態マシンは2つのインターリーブしている状態マシンを使用し、これはデータ転送中に、限定されたメモリコマンド、アドレス、データ流のオーバーラップを可能にし、メモリ帯域幅の改善を行う。インターリーブしている状態マシンから出力されたメモリコマンドはデータギャップを減少するために所望の時間でメモリへ選択的に多重化される。残念ながら、現在利用可能なメモリ制御装置、特にESDRAMとSDRAM制御装置はメモリサイクルの時間が最適化されていない。したがってこれらの制御装置は典型的に、メモリコマンドとデータ流とのオーバーラップを最大にできず、データギャップを不所望に長くしてメモリの帯域幅と妥協している。
通常のメモリ制御装置、特に通常のESDRAMとSDRAM制御装置はしばしばメモリページ内で逐次的なデータアクセスを行うように設計されている。ランダムなクロスページアクセスを含む応用では、メモリの効率は典型的に付随するメモリ制御装置の複雑性によって変化する。したがって、複雑で高価なメモリ制御装置はしばしば効率的に頻繁なランダムクロスページのアクセスに適応することを必要とされる。
逐次的およびクロスページの両アクセス用として最適であり、必要なボードスペースと制御装置の複雑性を最小にする効率的なメモリ制御装置またはサイクル時間最適化装置が技術で必要とされている。さらに、最適化されていないメモリコマンドとデータ流のオーバーラップによって生じるデータギャップを効率的に最小にするメモリ制御装置が必要とされている。
この技術の要求は本発明の効率的なメモリ制御装置によって解決される。例示的な実施形態では、本発明の制御装置はESDRAMおよび/またはSDRAMと共に使用されるように構成されている。制御装置は1以上の入力コマンドシーケンスを1以上の対応する値に関連付けるための第1の機構を含んでいる。第2の機構は信号に応答して、1以上のコマンドシーケンスの1つをメモリへ選択的に順序付ける。第3の機構は1以上の値のそれぞれを第2の機構の状態と比較し、それに応答して信号を出力する。
さらに特別な実施形態では、1以上の対応する値は実行時間コード値である。第2の機構はシーケンサ時間コードとして状態を提供するシーケンサ状態マシンを含んでいる。第1の機構はシーケンサ時間コードにしたがって実行時間コード値を選択する。第3の機構はシーケンサ時間コードを、次に利用可能なコマンドシーケンスおよび実行時間コード対に関連された実行時間コードに対して比較し、それに応答して信号を提供する比較モジュールを含んでいる。比較モジュールはシーケンサ状態マシンを含んでいるシーケンサ内に組込まれている。
特別な実施形態では、第1の機構は命令復号器内に復号モジュールを含んでいる。この命令復号器はさらに次に利用可能なコマンドシーケンスと実行時間コード対とを提供する発生器を含んでいる。復号モジュールおよび比較モジュールは、シーケンサ状態マシンの状態が変化したときフィードバックとして、シーケンサ状態時間コードデータを受信する。命令復号器はさらに復号モジュールと通信するメモリ状態追跡モジュールを含んでいる。第1の機構は命令復号器を介して実行され、第2の機構および第3の機構はシーケンサを介して実行される。命令復号器とシーケンサはパイプラインとして構成されたマスター・スレーブ構造で接続され、シーケンサは命令復号器に対してスレーブとして動作する。
例示的な実施形態では、制御装置は、ESDRAM/SDRAMメモリ管理システムの一部であり、そのESDRAM/SDRAMメモリ管理システムはさらにシーケンサ状態マシンから制御入力を受信し、それに応答して選択的にデータをメモリへ提供またはメモリから受取るメモリデータアービトレータを含んでいる。コンピュータシステムは選択的に入力コマンドシーケンスを第1の機構に提供し、所定の応用の要求を満たすために必要なときに、選択的にメモリアービトレータへデータを提供し、および/またはメモリアービトレータからデータを受取る。
メモリ管理システムはさらにコンピュータシステムからコマンドを受信し、選択的に対応するコマンドを第1の機構に提供するコマンドアービトレータを含んでいる。このコマンドアービトレータは対応するコマンドが第1の機構に転送される前に対応するコマンドの優先順位を決定し、順序を定める優先順位符号化器を含んでいる。優先順位符号化器もコマンド開始信号をメモリ制御装置へ提供する。
本発明の1実施形態の新規な設計は第1および第3の機構により容易にされ、これらの機構は、最新の、および現在の入来メモリコマンド、ターゲットメモリの状態、サービスされているコマンドの完了の現在状態に対応するシーケンサの現在の状態にしたがって、入来するメモリコマンドが最適な時間にサービスされることを可能にする。計略的に実行時間コードを入来するメモリコマンドに割当て、シーケンサ状態情報をシーケンサから第3の機構へのフィードバックとして使用することによって、メモリコマンドは最適の時間に処理されることができる。この結果、コマンド、アドレス、およびデータ間のオーバーラップが最大にされるので、データバスのギャップは少なくなる。本発明の実施形態で開示しているように、双方向の可変タイミングハンドシェイクを有するマスター・スレーブ独立マシンアーキテクチャは理論的に最大のメモリ帯域幅と、制御装置の寸法および設計の複雑性の減少とを可能にする。
ここで本発明を特定の応用についての実施形態を参照して説明するが、本発明はそれに限定されるものと理解すべきではない。当業者は本発明の技術的範囲内に含まれる付加的な変形、応用、実施形態および本発明が非常に有効である付加的な分野を認識するであろう。
図1は本発明の1実施形態にしたがった効率的なメモリ制御装置12を使用するシステム10のブロック図である。明瞭にするために、増幅器、電源、フリップフロップ等の種々の部品は図面から省略されている。しかしながら当業者は所定の応用の要求を満たすためにいずれのコンポーネントおよび特徴が構成され、どのようにしてこれらを構成するかを知るであろう。
システム10はメモリ管理装置22およびメモリ制御装置12を介してメモリ16と通信するコンピュータシステム14を含んでいる。コンピュータシステム14は直接的にメモリ管理装置22と通信し、メモリ管理装置22はアドレス、メモリ開始、読取/書込みコマンドを含むメモリコマンドを制御装置12を介してメモリ16へ伝送する。メモリ管理装置22はメモリ制御装置12で動作するシーケンサ状態マシン32からの制御通報信号に応答して、データバス34を介してコンピュータシステム14とメモリ16との間で選択的にデータを伝送する。効率的なメモリ制御装置12はメモリサイクル時間最適化装置とも呼ばれている。本発明の目的に対しては、メモリ制御装置はメモリへまたはメモリから転送されるメモリコマンドおよび/またはデータの流れまたは動作を行う装置、ハードウェア、ソフトウェア、またはファームウェアシステムのような任意のシステムである。
制御装置12はシーケンサ20とのマスター・スレーブ構造による命令復号器18を含んでいる。本発明の説明の目的では、マスター・スレーブ関係はマスターモジュールと呼ばれる第1のモジュールと、スレーブモジュールと呼ばれる第2のモジュールとの関係であり、スレーブモジュールの動作はマスターモジュールからの入力に応じて制御されるか、その他の方法でそれにしたがっている。マスター・スレーブ関係を有する2つのモジュールはマスター・スレーブ構造で接続される。
命令復号器18はアドレス(Addr.)、コマンド開始、制御(R/W,Ctrl.)入力をメモリ管理装置22から受信する。命令復号器18は本発明の技術的範囲から逸脱せずに、データマスク(DQM)のような付加的な入力を受信できる。
シーケンサ20は選択的にアドレス(Addr.)、制御(R/W,Ctrl.)入力をメモリ16へ提供する。シーケンサ20を介してメモリ16に供給される制御入力は列選択(CS)、行選択(RS)、クロックエネーブル(CKE)、行アクセスストローブ(RAS)、および列アクセスストローブ(CAS)信号のような種々のサブレベルのインターフェース信号を含むことができる。
命令復号器18は復号モジュール24を含んでおり、それはメモリ状態追跡装置26から入力を受信し、出力を次のコマンドおよび時間コード発生器28へ提供し、これら両者は共に命令復号器18中に含まれている。復号モジュール24はまたデータおよび制御入力をメモリ管理装置22から受信し、シーケンサ状態入力をシーケンサ20から受信し、そのシーケンサ状態入力はロードコマンド(Ld Cmd)信号とも呼ばれるシーケンサ状態時間コードおよび新しいコマンドシーケンスエネーブル信号(Enable)を含んでいる。
シーケンサ20は、命令復号器18中の次のコマンドおよび時間コード発生器28から実行時間コード入力を受信し、エネーブル出力(Enable)をシーケンサ状態マシン32へ供給する比較器30を含んでいる。シーケンサ状態マシン32はコマンドシーケンスを含むコマンド信号を次のコマンドおよび時間コード発生器28から受信し、このコマンドシーケンスは初期シーケンサ開始コマンド(Seq.Start Command)コマンドを含んでいる。シーケンサ状態マシン32は制御出力をメモリ管理装置22へ与え、シーケンサ状態時間コードとして符号化されるシーケンサ状態情報を命令復号器18の復号モジュール24へ供給する。シーケンサ状態マシン32はまた、制御入力をメモリ22へ供給し、メモリ管理装置22を介してコンピュータシステム14からメモリ16へのデータ流を選択的に可能にする。
動作において、コンピュータプロセッサまたは他のシステムであることができるコンピュータシステム14上で動作するソフトウェア、ハードウェアまたはファームウェア(図示せず)はメモリ管理装置22とメモリ制御装置12を介して選択的にデータをメモリ装置16に記憶し、メモリ16から検索する。メモリ16へデータを記憶し、或いはメモリ16からデータを検索するコンピュータシステム14からのリクエストはメモリ管理装置22に転送される。メモリ管理装置22はそのリクエストを処理し、その後、アドレスおよび制御入力としてメモリ制御装置12中に含まれている命令復号器18の復号モジュール24へ選択的にそれらを転送する。
復号モジュール24は受信されたアドレスおよび制御情報をフォーマットし、その情報をサービスされるように特定のコマンドまたはコマンドシーケンスへ組込む。本発明の目的では、コマンドはシーケンサスタートコマンドのような単一のコマンドであってもよく、またはコマンドのシーケンスであってもよい。
復号モジュール24はメモリ状態追跡装置26からの入力、シーケンサ状態マシン32からのシーケンサ状態時間コード、および比較器30の出力からのエネーブル信号に基づいてメモリ16の現在の状態を決定する。好ましい実施形態では、メモリ状態追跡装置26はメモリの構成後、メモリ16の内部状態を追跡する。メモリ状態追跡装置26はメモリ16の最初の構造と、メモリ16の予測可能な性質に基づいてメモリ16の現在の状態を予測する。メモリ16からフィードバックされた物理的なメモリ状態信号は必要とされない。しかしながら、本発明の技術的範囲を逸脱せずに状態出力を提供するメモリを使用することができる。当業者は過剰な実験をせずにメモリ状態追跡装置26を容易に構成することができる。
比較器30から出力されたエネーブル信号はシーケンサ状態マシン32が新しいコマンドを受取るためにエネーブルされているか否かを示す。復号モジュール24は必要なときにメモリ管理装置22からの入力をフォーマットし、選択的にそれらを次のコマンドおよび時間コード発生器28へ提供する。
これらの入力に基づいて、次のコマンドおよび時間コード発生器28は実行時間コードを各検索されたコマンドシーケンスへ割当て、コマンドおよび実行時間コード対を生成する。実行時間コードは、コマンドが最良の時間に、最良の順序で順序付けられるようにシーケンサ状態時間コードを参照にして割当てられる。最適なコマンド順序の決定と、コマンドシーケンスへの実行時間コードの割当てについての正確な詳細はメモリおよび用途特定であり、所定の応用の必要性を満たすために当業者によって決定されることができる。
用途特定パラメータはクロック速度とデータフォーマットを含んでいる。クロック速度は利用可能なメモリ動作モードに影響する。データフォーマットもまた用途特定である。例えばパーソナルコンピュータ内のペンティアム(登録商標)の中央処理装置(CPU)は典型的に各メモリバーストの読取または書込み4ピースである。他のコンピュータ応用はメモリの帯域幅を最適化するためにバースト当り256読取/書込(対4)を有するフルページバーストを使用できる。さらに他の応用は頻繁なクロスバンクおよびクロスページメモリアクセス応用に対しては8のバーストを使用できる。
メモリの動作速度とデータフォーマットが規定されるとき、コマンド/データのオーバーラップの詳細はメモリに特定している。標準的なインターフェースタイミングはSDRAMに対して規定されるが、全てのモードが所定のメモリ装置によりサポートされるわけではない。例えば、列アクセスストローブ待ち時間(CL)=1モードは50MHzまでの幾つかの製造業者によりサポートされるが、多くは66MHzまではサポートされない。
クロック速度、データフォーマット、メモリが選択されるとき、最大のデータ帯域幅に対して最大のメモリコマンドおよびデータのオーバーラップを実現するために理想的なタイミングは製造業者のデータシートから決定されることができる。その後、メモリ制御装置の設計は理想的なタイミングが実現されることができるか否かを決定する。メモリ制御装置12の使用は理想的なメモリタイミングの実現を促進する。
種々のファクターが最適な時間コード割当てを容易にする。好ましくは、次のコマンドおよび時間コード発生器28は特に既存のコマンドが実行されているとき、入来する新しいコマンドをできる限りすぐに検索する。次のコマンドおよび時間コード発生器28はメモリ16によりサポートされたタイミング選択肢に基づいて、データの帯域幅を最大にするために最適のコマンド/データのオーバーラップタイミングを選択するように現在および次の(入来)コマンドを解析することが好ましい。
命令復号器18はある連続するコマンド間の時間変化関係に適合するためにシーケンサフィードバックを使用する。SDRAMとESDRAMのデータギャップを最小にするように最良のコマンド/データオーバーラップを得るために、次のコマンドの組合せが復号器18により受信されるときに応じて、あるコマンドの組合せがシーケンサ20の現在の状態に関して異なって処理される。メモリ制御装置12は類似の連続的なコマンドのセットで異なるコマンドシーケンスをメモリ16に発生することができる。シーケンサ20からメモリ16へ送られるコマンドシーケンスは全て新しいコマンド入力時間と現在のシーケンサ状態に基づいている。
以下の表は、読取コマンド(CMDのRD参照)が後続する書込みバースト(W0乃至W3)の最後のデータ(W3)におけるデータマスク(DQM)アクティビティ(DQM=H、即ち1またはハイ)を有する書込みコマンド(行CMD中のWRを参照)に応答してシーケンサ20によって発生されるNOP−RD(読取りが後続する動作なし)状態を示している。
Figure 0004838120
書込み動作のデータマスク(DQM)は遅延を有しない。読取動作では、データマスク(DQM)は2クロックサイクルだけデータ(DQ)をリードする(ZZとZZはデータ(D0乃至D3)が送信される前の2クロックサイクル遅延を表している)。第1の読取データがDQM=Hの2クロックサイクル内で生じたならば、書込みマスクは最後の書込みデータ(W3)と第1の読取データ(D0)をマスクアウトする。上記の表1では、読取コマンドは書込みサイクルの早い時期に生じる。結果として、シーケンサ20は動作なし(NOP)状態と、それに続く読取(RD)状態とを発生して、第1の読取データ(D0)がマスクされるのを阻止しなければならない。
以下の表2では、読取コマンド(RD)は書込みサイクルの後の時期に、復号/コマンド発生遅延後に生成する。読取コマンドが以下の表2に示されているように行われることを想定する。過剰なクロックサイクルが遅延によって挿入されるので、メモリ制御装置12は第1の読取データ(D0)がマスクされないことを保証するためにNOP−読取の組合せの代りに直接的に読取りコマンドを発生することができる。
Figure 0004838120
命令復号器18とシーケンサ20との間のマスター・スレーブ関係は効率的なコマンド実行シーケンスのパイプライン化を可能にする。シーケンサ状態マシン32からのシーケンサ状態のフィードバックは状態の先取りを強化する。
シーケンサ20は多くの制御装置がするようにコマンド毎にメモリページを開閉しない。次のコマンドおよび時間コード発生器28は新しいコマンドが現在のコマンドの処理の早期の段階に到着したならば、最良の新しいコマンドエントリタイミングのための時間コードを使用する。新しいコマンドが現在のコマンドサイクルの後期に到着したならば、割当てられた時間コードは新しいコマンドが可能な限りすぐに(事後の最良)実行されることを確実にする。
次のコマンドおよび時間コード発生器28は、特定のコマンドシーケンスをシーケンサ状態マシン32へ転送し始めるときを決定するために、復号モジュール24を介して受信される比較器30のシーケンサ状態時間コードと出力(Enable)を監視する。本発明の特定の実施形態では、次のコマンドおよび時間コード発生器28は、シーケンサ20の比較器30へ順序付けされる次のコマンドに対応する実行時間コードを転送する。比較器30は現在のシーケンサ状態時間コードを、順序付けされる次のコマンドの実行時間コードに対して比較する。
本発明の特定の実施形態では、シーケンサ状態時間コードが実行時間コードよりも大きいならば、比較器30はシーケンサ状態マシン32が次のコマンドおよび時間コード発生器28から次のコマンドシーケンスを受信することを可能にする。別の構造では、シーケンサ状態時間コードが実行時間コードよりも小さいならば、比較器30はシーケンサ状態マシン32が次のコマンドシーケンスを受信することを可能にする。以下、さらに十分に説明する別の代りの構造では、シーケンサ状態時間コードが実行時間コードよりも大きいか等しいならば、比較器30はシーケンサ状態マシン32が次のコマンドシーケンスを受信することを可能にする。
シーケンサ状態マシン32はその後、次のコマンドシーケンスのサービスを開始する。比較器30から出力された結果的なエネーブル信号は、コマンドの順序付けおよび/または実行時間コード割当てを容易にするための復号モジュール24を含んだ上流の電子装置へ転送される。
シーケンサ状態マシン32がコマンドシーケンスをサービスするとき、これはコマンドシーケンスに対応するアドレスおよび制御通報をメモリ16へ提供する。シーケンサ状態マシン32はまた制御信号をメモリ管理装置22へ供給し、シーケンサ状態マシン32によりサービスされているコマンドシーケンスによって必要とされるとき、メモリ管理装置22がコンピュータシステム14とメモリ16との間で選択的にデータを転送することを可能にする。
本発明のメモリ制御装置12の設計は、命令復号器18へのフィードバックとしてのシーケンサ状態時間コードの新規の使用により容易にされ、これはコマンドシーケンスに割当てられた実行時間コードにしたがって適切なコマンドシーケンスを選択するためにフィードバックを使用する。選択的にシーケンサ状態フィードバックを命令復号器18に与える結果として、先取り効果は命令復号器18とシーケンサ20が最適にコマンドを順序付けるために共に動作することを可能にする。
例えば、本発明の特別な実施形態では、シーケンサ状態時間コードは整数1乃至8のセットにより示される8つの可能な状態の1つを表すことができる。さらに、所定のコマンドシーケンスに割当てられる実行時間コードもまた整数1乃至8のセットにより示される8つの可能な状態の1つにより表されることができる。例示的な構造では、コマンドがサービスされておらず、命令復号器18がスケジュールするコマンドシーケンスをもたないときには、実行時間コードとシーケンサ状態時間コードは8の値を割当てられる。したがって、比較器30により決定されるとき、シーケンサ状態時間コードが実行時間コードよりも大きくないならば、シーケンサ状態マシン32はアクチブではない。この例では、新しいコマンドシーケンスが到着したとき、実行時間コードが5の値を割当てられることを想定している。
比較器30はその後、実行時間コード(5)がシーケンサ状態時間コード(8)よりも小さいことを決定し、それにしたがってシーケンサ状態マシン32を付勢する。シーケンサ状態マシン32はその後、これは次のコマンドおよび時間コード発生器28からの出力であるコマンドシーケンスをサービスする。コマンドシーケンスがシーケンサ状態マシン32にロードされるとき、シーケンサ状態マシン32はロードされたコマンドシーケンスに基づいてシーケンサ時間コードを変更する。コマンドシーケンスがサービスされているとき、シーケンサ状態マシン32はサービスされているコマンドシーケンスの進行にしたがってシーケンサ状態時間コードをインクリメントし続ける。しかしながら、8に到達したとき、シーケンサ状態時間コードは8に留まり、シーケンサ状態マシン32が所定のコマンドを完了したことを示す。
次のコマンドが命令復号器18に到着し、シーケンサ20およびメモリ状態追跡装置26からの入力に基づいて6の実行時間コードを割当てられることを想定する。現在サービスされているコマンドシーケンスは5のシーケンサ状態時間コードを生成すると想定する。シーケンサ状態時間コード(5)は6より大きくないので、次のコマンドシーケンスはサービスされない。シーケンサ状態時間コードが6を通過し、即ち7以上に到達するとき、次のコマンドシーケンスはサービスされる。次のコマンドシーケンスのサービスが開始されることを示す信号は比較器30からのエネーブル信号(Enable)出力を介して復号モジュール24へフィードバックされる。これは命令復号器18による実行時間コードの割当てを容易にする。エネーブル信号(Enable)はまた実行されているコマンドの反復的な実行を阻止するように実行時間コードを8にリセットする。コマンドおよび時間コード発生器28は新しいコマンドが到着したとき新しい実行時間コードを発生する。
代りに、命令復号器からシーケンサ20へのコマンド待機信号は、図4を参照して以下詳しく説明するように、新しいコマンドがシーケンサ20によりロードされるのを待機しているか否かを示す。次のコマンドおよび時間コード発生器28が新しいコマンドおよび時間コードを発生するとき、コマンド待機信号は1に設定され、コマンドがシーケンサ20によりサービスされるとき、リセットされる。
復号モジュール24は現在および次のメモリリクエスト(コマンドシーケンス)、シーケンサ状態変数、およびメモリ状態変数をコマンドおよび時間コード発生器28への適切な入力に変換する。コマンドおよび時間コード発生器28はその後、検索表(図示せず)の徹底的な検索によって、最良のシーケンサ開始コマンドと実行時間コードの組合せを全部で128の異なる組合せから選択する。シーケンサ20はその後、その固有の状態時間コードを比較器30によって実行時間コードと比較する。
命令復号器18はメモリリクエストがサービスされるとき、メモリ状態追跡装置26によって内部メモリ状態を追跡し、現在および以前のメモリサイクル、メモリ状態、およびシーケンサ状態に基づいて最良のコマンドおよび実行時間コードの組合せを計算する。シーケンサ20は実行時間コードに関連するコマンドを実行するときを決定するために実行時間コードをそれ自身の状態と比較する。
シーケンサ20が新しいコマンドを受取るとき、命令復号器18は次のメモリリクエストを自由にサービスする。新しいコマンドシーケンスがメモリ16に送信されるとき、シーケンサ20は以下詳しく説明するように、コマンド送信信号を命令復号器18またはメモリ管理装置22のようなアップストリームまたはダウンストリームの電子装置へ転送し、次のメモリリクエストに対するデータ開始および時間を示す。この実施形態では、シーケンサ状態マシン32はワンショットマシンである。
別の構成では、一定のアイドル状態で、命令復号器18とシーケンサ20の両者は最初に同一の時間コード1を有し、シーケンサ状態時間コードは1に到達するまで処理の進行と共に減少され、1に到達するとコードは1に留まる。この場合、比較器30はシーケンサ状態が実行時間コードよりも小さくなるとき次のコマンドシーケンスのサービスを選択的に可能にする。第1のコマンドシーケンスを受信するとき、シーケンサ状態時間コードは1であり、一方実行時間コードは順序付けされるコマンドの特性にしたがって、6のようなより高い値に設定される。実行時間コードの割当てに使用される方法の正確な詳細は用途特定であり、過剰に実験せずに当業者により決定されることができる。したがって、シーケンサ状態時間コードが実行時間コードよりも小さいので、コマンドシーケンスは直ちにサービスされる。コマンドが処理のためにシーケンサ20に送信された後、次のコマンドおよび時間コード発生器28に関連される実行時間コードは1にリセットされる。
したがって別の構成では、シーケンサ状態マシン32が現在のメモリリクエストを実行しているとき、その状態時間コードはそれがコマンドシーケンスにある場所を示すように変化(減少)される。シーケンサ20が現在のコマンドシーケンスでロードした後、命令復号器18は自由に新しいメモリリクエストを受取る。次のメモリリクエストが命令復号器18に到着したとき、新しい実行時間コードがコマンドシーケンスに割当てられる。シーケンサ状態時間コードが実行時間コードよりも大きいならば、新しいコマンドシーケンス、即ちメモリリクエストはまだ実行されることができない。シーケンサ20は新しいコマンドシーケンスを最適時にメモリ16に送信する前に、シーケンサ開始時間コードが実行時間コードよりも小さくなるまで、現在のコマンドシーケンスを継続する。したがってコンピュータシステム14とメモリ16との間で流れるデータのギャップは制御装置12による効率的なコマンドの順序付けにより最小にされる。
当業者は、値を割当て、その値を調節して、シーケンサ状態マシン32と他の機構の現在の状態を示し、シーケンサ状態のフィードバックに応答してエネーブル信号を発生する方法が本発明の技術的範囲を逸脱せずに使用されることができることを認識するであろう。さらに、システム10を実行するのに必要な種々のモジュールが、過剰に実験せずに当業者により構成されるか、またはそうでなければ本発明の考察の実行によって得られる。例えばデータアービトレータ、コマンドアービトレータ、および付随するメモリバスとコマンド発生器のようなメモリ管理装置22の実行に使用される種々のモジュールが容易に利用可能である。
この実施形態では、メモリ制御装置12はメモリ管理装置22により実行される付加的なメモリ制御機能と共に使用するのに適している。付加的なメモリ制御機能は種々のアドレスおよびコマンド発生器(図示せず)と通信するコマンドアービトレータモジュールを含むことができ、その出力は選択的に制御装置12へ多重化される。メモリ管理装置22の実行を容易にするために使用されることのできる例示的なデータアービトレータを以下詳しく説明し、これは同時出願の米国特許明細書(発明の名称“SYSTEM AND METHOD FOR SELECTIVELY AFFECTING DATA FLOW TO OR FROM A MEMORY DEVICE”)に記載されており、この文献は本発明の出願人に譲渡され、ここで参考文献とされている。
本発明の特定の実施形態では、メモリ16は同期ダイナミックランダムアクセスメモリ(SDRAM)または強化されたSDRAM(ESDRAM)であり、これを以下さらに詳しく説明する。特有のサイクル時間最適化装置12は特に2つの連続的なESDRAMまたはSDRAMメモリサイクル間のコマンド、アドレス、データのオーバーラップを最大にするのに適しており、それによってメモリの帯域幅を最適にする。
市販の制御装置の命令復号器と異なって、命令復号器18はシーケンサ20がフィードバックとして状態情報を提供するので、シーケンサ状態を決定するために特別なモジュールを組込むことを必要とされない。これはある通常の制御装置に関連する状態マシンの長いターンアラウンド時間または状態マシンのピンポン時間を除去し、それによって最適なコマンド/アドレスオーバーラップと、設計の複雑性の減少を容易にする。
発生器28による次のコマンドおよび実行時間コードの発生のシーケンサ状態フィードバックの使用は、メモリサイクル間の最良の可能なコマンド/アドレスのオーバーラップに対する状態先取り効果を与える。しかしながら、シーケンサ20から命令復号器18へのシーケンサ状態のフィードバックは本発明の技術的範囲から逸脱せずに省略されることができる。
本発明の種々の実施形態で使用される時間コード発生および関連するコマンド実行タイミング方式は制御装置の設計の複雑性を著しく減少させる。さらに、比較器30により実行される時間コード比較は、シーケンサ状態マシン32が時間コードの発生時とは無関係に、命令復号器18により命令されるとき最適時に、または可能な限り早く次のコマンドシーケンスを実行することを確実にする助けをする。さらに比較器30による時間コード比較は、現在のコマンドシーケンスがメモリ16に送信されている間に、命令復号器18に自由に次のメモリリクエストをサービスさせる。これはメモリ16が先のコマンドに関連するデータをバーストしながら行われる。したがって実質的に3つの全てのパイプライン化されたマシン18、20、16は十分に同時に使用され、それによってデータギャップを最小にし、メモリの利用を最大にする。本発明の実施形態にしたがって構成されたメモリ制御装置を使用するコンピュータシステムは所望のメモリ帯域幅を実現するために必要とするESDRAMおよび/またはSDRAM装置の数はより少数である。
図2は図1のメモリ制御装置12により制御される例示的なSDRAM16のより詳細な図である。SDRAMはN個の種々のメモリバンク50を含んでいる。第1のメモリバンク52およびN番目のメモリバンク54は例示の目的で示されている。各N個のメモリバンク50は図1のシーケンサ20からアドレス(Addr.)、読取/書込み(R/W)、および制御(Ctrl.)入力を受信する。特定のアドレスに対応するデータは、感知増幅器とも呼ばれる対応する能動バッファを介してメモリバンク50へ、およびメモリバンク50から選択的に転送され、これらの能動バッファは第1のメモリバンク52に対応する第1の能動バッファ60とN番目のメモリバンク54に対応するN番目の能動バッファ62により示されている。各能動バッファ60、62はそれらのバッファ60、62を通ってデータの選択的な移動を容易にするために読取/書込み(R/W)および/または図1のシーケンサ32からのその他の制御入力を含むことができる。バッファ60、62はそれぞれ図1のシーケンサ32からの制御シグナリングに応答して、必要なときに能動バッファ60、62の出力および/または入力間で選択的に切換えるマルチプレクサ64と通信する。
動作において、メモリバンク50のうち1つの休止メモリ領域に読取り、書込みを行うために、第1のメモリバンク52の行i56またはN番目のメモリバンクの行k58のようなデータの行を休止メモリ52、54から対応する能動バッファ60、62へ移動するための付勢コマンドが発生されなければならない。読取または書込みコマンドはその後、メモリバンク52、54との間でデータ転送を行うために能動バッファ60、62へ発生されることができる。
新しい行に書込むとき、能動バッファ60、62の内容をメモリバンク52、54へ書込む準備のために、メモリバンク52、54の新しい行を付勢する前に、プレチャージコマンドが図1のシーケンサ32から発生される。1つのメモリバンクが所定の時間にプレチャージされるか、または、全てのメモリバンクが同時にプレチャージされることができる。しかしながら、書込まれるメモリバンクだけがプレチャージされることが多い。各ESDRAMバッファ60、62は対応する休止RAM52、54の類似する、または異なるページからのデータを含むことができる。したがって複数のメモリページは同時に開かれ、それはページを探す時間を減少する。
異なるメモリの内部状態および異なる連続的なメモリリクエストに対しては、種々のメモリタイミング限定により、メモリサイクル間にデータギャップが生じ、これは最適なメモリ帯域幅を得るために最小にされなければならない。図1の制御装置12はこの機能を実行する。
メモリ制御装置12は特に多くのページを探す動作を含む応用で有効であり、その場合には通常の制御装置が多数の望ましくないデータギャップを発生する可能性が大きい。いわゆるクロスページ動作では、ページとも呼ばれる最初にメモリバンクの特定の行が能動バッファへロードされる。異なる行(ページ)をアクセスしてクロスページ動作を完了するために、ロードされたバッファの内容はメモリバンクへ返送されなければならず、その後、新しい行がバッファに書込まれなければならない。通常の制御装置はクロスページ動作を非効率的に処理することが多く、データバスに過剰なデータギャップを生じ、それによってメモリの帯域幅を減少させる。
当業者はESDRAMメモリおよび仮想チャンネルメモリ(VCM)のような他のタイプのメモリが本発明の技術的範囲を逸脱せずに本発明の目的で使用されることができることを認識するであろう。ESDRAM、SDRAM、VCMは広く使用されているメモリである。
図2のSDRAM16のようなSDRAMでは、各メモリバンク52、54は読取りまたは書込みされることのできる単一の能動バッファ60、62を有する。ESDRAM(図示せず)では、各メモリバンクは読取専用バッファと、それと分離された書込み専用バッファとを含んでいる能動領域を有している。各能動領域は対応する休止RAMの同一または異なるページからのデータを含むことができ、両者は同時にアクチブに維持されることができる。したがって、ESDRAMは特に本発明の種々の実施形態に開示されているメモリサイクル時間最適化装置12、12’では有効である。
仮想チャンネルSDRAM(VCSDRAMまたはVCM)メモリはそれぞれ多数のバッファにアクセスできるメモリバンクを有している。VCMはしばしば仮想チャンネルと呼ばれるプログラム可能なバッファを有する。仮想チャンネルは任意のメモリバンクに接続するようにプログラムされることができる。これは必要なときに異なる数のバッファが異なるバンクへ接続されることを可能にする。したがってメモリ帯域幅は強化される。VCMメモリを使用するシステムは本発明の実施形態では非常に有効である。
図3はさらに詳細にメモリ管理装置22’を示している図1のシステム10の別の実施形態10’のブロック図である。別のメモリ管理装置22’はコマンドアービトレータ70とデータアービトレータ72とを含んでおり、その両者はコンピュータシステム14と通信する。
コマンドアービトレータ70は優先順位符号器76から制御入力を受信するマルチプレクサ(MUX)74を含んでいる。優先順位符号器76はまたメモリ制御装置12’へコマンド開始入力を提供し、そこからコマンド送信入力を受信する。MUX74は種々の入力および出力メモリリクエストコマンドを受信し、それらはコンピュータシステム14から発生したがコマンドアービトレータ70で動作するモジュール(図示せず)により必要とされるようにフォーマットされている。優先順位符号器76はまた対応する入力および出力メモリリクエスト(コマンド)を受信し、それらを予め定められたアルゴリズムにしたがって優先順位を定める。メモリリクエストは優先順位の順に一度に一つづつメモリ制御装置12’へ送信され、それによって高い優先順位に関連するコマンドが最初にメモリ制御装置12’によりサービスされる。
優先順位符号器76は受信された各コマンドの優先順位にしたがって選択信号をMUX74へ発生する。例えば、優先順位符号器76により決定される最高の優先順位のコマンドはMUXエネーブル信号を発生し、この信号によって対応するコマンドがMUX74の出力に現れる。メモリ制御装置12’へ入力されるMUX74の出力は優先順位符号器76により決定される入力コマンドの中で最高の優先順位コマンドを表している。各コマンドはデータアドレス、読取/書込、データマスク情報のような情報を含むことができる。
それ故、優先順位符号器76は信号処理モジュール(コンピュータシステム)14からのメモリリクエストの優先順位を定め、適切なリクエストを選択し、コマンド開始信号をメモリ制御装置12’へ送信し、メモリ制御装置12’はメモリサイクルを最適化する。現在のコマンドの実行後、メモリ制御装置12’はコマンド送信信号を優先順位符号器76に発生し、別のメモリコマンドがメモリ制御装置12’により受信されることができることを承諾する。メモリ制御装置12’はまたデータアービトレータ72とメモリ16との間でデータバス34に沿ったデータ流を制御するために制御信号をデータアービトレータ72へ提供する。
データアービトレータ72はメモリ読取バッファ78およびメモリ書込みバッファ80を含み、これは読取/書込み制御入力をメモリ制御装置12’から受信する。メモリ読取バッファ78とメモリ書込みバッファ80とはそれぞれ入力/出力(I/O)スイッチ82とデータバス34を介して、それぞれデータをメモリ16から受信し、メモリ16へデータを提供する。I/Oスイッチ82はデータバス34に沿って読取動作と書込み動作との間の切換えを容易にするためにメモリ制御装置12’から制御入力を受信する。メモリ読取バッファ78はメモリ16から読取られているデータをコンピュータシステム14へ提供する。同様に、メモリ16へ書込まれるデータはコンピュータシステム14からメモリ書込みバッファ80によって受信される。読取および書込みデータのフォーマットに使用されるフォーマットモジュール(図示せず)のような種々の他のモジュールが本発明の技術的範囲を逸脱せずに使用されることができる。
本発明の実施形態では、メモリ制御装置12’はメモリ管理装置22’の一部として考慮される。MUX74と優先順位符号器76は本発明の技術的範囲を逸脱せずにメモリ制御装置12’の一部として組込まれることができる。さらに、メモリバッファ78、80は先に参照した米国特許明細書と、ここで参考により組込まれている対応する出願にしたがって先入れ先出し(FIFO)バッファとして構成されることができる。
図4は、図3のメモリ制御装置12’の別の実施形態12’のより詳細なブロック図である。図3および4を参照すると、メモリ制御装置12’はマスタースレーブ関係で配置されている別の命令復号器18’およびシーケンサ20’を含んでいる。別の復号モジュール24’はメモリ状態追跡装置26’と通信し、そのメモリ状態追跡装置26’は図3のメモリ16の種々のページの開/閉状態に関する情報88を維持する。復号モジュール24’はサービスされる次のコマンドに関連するマスク入力をメモリ管理装置22’から受信し、選択的に対応するデータマスク制御(DQM)入力をメモリ16に提供するデータマスク(DQM)発生器98を含んでいる。
サービスされる次のコマンドの読取/書込み信号(次のコマンド)は復号モジュール24’に入力され、その復号モジュール24’は次のコマンドが現在サービスされているコマンドによりクロスバンク状態を発生させるか否かを決定するためにバンク比較器90を使用する。復号モジュール24’は次のコマンド(新しいメモリリクエスト)がメモリ16中でクロスページ状態を生じるか否かを決定する行比較器92を含んでいる。クロスバンクおよび/またはクロスページ状態が明白であるならば、復号モジュール24’は更新信号をメモリ状態追跡装置26’に送信し、そのメモリ状態追跡装置26’はメモリ16の内部状態を追跡する。
メモリ状態追跡装置26’は更新信号、バンク情報、および行情報をアドレスバス(Addr.)から受信し、コマンドがシーケンサ状態マシン20’により実行されるとき(Cmd送信=1のとき)対応するバンク開/閉フラグ88を更新する。メモリ状態追跡装置26’からの出力信号は最後および新しいコマンドに対するバンク開/閉情報を提供する。この情報は予め定められた用途特定アルゴリズムにしたがって、最良のシーケンサ開始コマンドと実行時間コードとの決定を助けるために次のコマンドおよび時間コード発生器28’によって使用されることができる。
適切な信号は、クロスバンクまたはクロスページ状態が生じるか否かにかかわりなく復号モジュール24’から次のコマンドおよび時間コード発生器28’へ送信される。次のコマンドおよび時間コード発生器28’はその後、それに応答して適切な実行時間コードを次のコマンドに割当てる。
メモリ管理装置22’から受信され、次のコマンドに対応するメモリアドレス情報はメモリ状態追跡装置26’と復号モジュール24’とに供給される。復号モジュール24’はクロスバンクおよびクロスページ比較を容易にするためにアドレス情報を使用する。
図3の優先順位復号器76からのコマンド開始信号は次のコマンドおよび時間コード発生器28’およびコマンド待機発生器94に送信される。次のコマンドおよび時間コード発生器28’は対応するシーケンサ開始コマンドをシーケンサ状態マシン32’へ選択的に転送する。コマンド待機発生器94はコマンド待機信号をシーケンサ比較器30’へ転送し、シーケンサ状態マシン32’がコマンドをロードされたとき、ロードされたコマンド信号をシーケンサ比較器30’から受信する。シーケンサ状態マシン32’がコマンドをメモリに送信するとき、コマンド送信信号は復号モジュール24’へフィードバックされる。
現在のコマンドに関連する行および列アドレスもまたアドレスMUX96の入力へ転送され、このアドレスMUX96はシーケンサ状態マシン32’から制御入力を受信する。アドレスMUX96はシーケンサ状態マシン32’からの制御信号に応答して、バンク番号および行アドレス、またはバンク番号および列アドレスをメモリに選択的に出力する。
シーケンサ状態マシン32’はまた現在のメモリリクエスト(コマンド)に対応する列選択(CS)、行アクセスストローブ(RAS)、列アクセスストローブ(CAS)、R/W、クロックエッジ選択(CKE)、データマスク(DQM)信号のような種々の制御入力をメモリ16に提供する。データバスおよびメモリバッファ制御信号はシーケンサ20’から図3のデータアービトレータ72へフィードバックされる。コマンド送信信号もまた図3のコマンドアービトレータ70の優先順位符号器76へフィードバックされる。
本発明の別の実施形態では、メモリ制御装置12’はシーケンサ20’と命令復号器18’との間で双方向ハンドシェイクおよびフィードバックによるマスター・スレーブパイプラインマシンである。マスターは命令復号器18’であり、シーケンサ20’はスレーブモジュールである。入力アドレスはESDRAM/SDRAMアドレスの時間多元化要求に適応するために行および列アドレスに分割する。
命令復号器18’の出力は時間依存性である。命令復号器18’は現在およびその次のメモリリクエスト、シーケンサ状態変数、メモリ状態変数、データマスク状態を次のコマンドおよび時間コード発生器28’への適切な入力に変換する。当業者はデータマスク(DQM)発生器98の使用がシーケンサ設計の複雑度を減少できることを認識するであろう。
次のコマンドおよび時間コード発生器28’は図3のメモリ管理装置22’からのコマンド開始信号がエネーブルされるとき、検索表によって最良のシーケンサ開始コマンドおよび実行時間コードの組合せを選択する。コマンド待機発生器94は新しいコマンドがサービスされるために待機している場合には、シーケンス20’に通知するコマンド待機信号を選択的に発生する。メモリ状態追跡装置26’はESDRAM/SDRAMメモリ16の内部状態を追跡し、メモリ16の各バンクの開閉状態と、各バンク(図2)の開かれたページのアドレスを追跡する。メモリ状態追跡装置26’はメモリコマンドがシーケンサ20’により実行されるときに更新される。
シーケンサ比較器30’は、コマンド待機発生器94からのコマンド待機信号により示されるように、新しいコマンドが実行を待機しているとき、シーケンサ30’はシーケンサ状態時間コードを実行状態時間コードと比較する。本発明の別の実施形態では、シーケンサ状態時間コードが待機しているコマンドに関連する実行時間コード以上であるならば、シーケンサ状態コマンドは実行のためシーケンサ状態マシン32’へロードされる。
シーケンサ状態マシン32’はワンショット状態マシンである。アイドル状態においてシーケンサ状態時間コードは最大値に設定される。コマンドがシーケンサ状態マシン32’にロードされるとき、シーケンサ状態時間コードは最小値のような低い値でロードされ、コマンドの実行が完了したときに最大値まで増加しつづける。シーケンサ状態マシン32’はその後、アイドル状態に戻る。
定常のアイドル状態では、コマンド待機発生器94からのコマンド待機信号はディスエーブルされ、シーケンサ状態マシン32’は最大時間コードを示し、コマンドをサービスしていない。新しいメモリリクエストが命令復号器18’に到着するとき、シーケンサ比較器30’に入力されるコマンド待機信号はエネーブルされる。最大よりも小さい実行時間コードはその後、シーケンサ比較器30’によってシーケンサ状態時間コードに比較され、これは最初に最大値に設定される。したがって新しいコマンドはシーケンサ20’により直ちに実行される。シーケンサ状態マシン32’が現在のメモリリクエストを実行しているとき、新しいメモリリクエストが発生されるならば、時間コード比較特性は新しいコマンドが適切な実行時間まで実行されるのを待機することを確実にする。
図5は図1、3、4のメモリ制御装置12、12’を使用するように適合された方法100のフロー図である。図1および5を参照すると、最初のコマンド開始ステップ110において、命令復号器18はメモリリクエストが保留中であることを示すコマンド開始信号がエネーブルされているか否かを決定する。メモリリクエストが保留中であるとき、制御は受信ステップ102へ進む。
受信ステップ102では、メモリ制御装置12の命令復号器18は(コマンドシーケンスとも呼ぶ)メモリリクエスト、(シーケンサ状態時間コードを含む)シーケンサ状態変数、メモリ状態追跡装置26を介して維持されるメモリ状態変数を受信して選択的にフォーマットする。
結果的な選択的にフォーマットされた情報は後続するフォーマット化ステップ104で使用される。フォーマット化ステップ104では、結果的な情報は、次のコマンドおよび時間コード発生器28により使用され、実行時間コードをメモリリクエストに対応している受信されたコマンドシーケンスへ最適に割当てられる。結果的なコマンドシーケンスおよび実行時間コード対は、命令復号器18が次に処理される最適なコマンドシーケンスを決定することを可能にするために特別な優先順位符号器(図3の76を参照)を介して解析されることができる。その代りに、コマンドは一度に一つづつ命令復号器18により受信されて処理され、それによって与えられ受信されたコマンドシーケンスは実行時間コードを割当てられ、これはシーケンサ20によりサービスされるときに決定される。この場合、コマンドの優先順位の順序付けは命令復号器18が実行時間コードを割当てる前に、図3の優先順位符号器76などによって行われることができる。与えられたコマンドシーケンスが処理される時間はその割当てられる実行時間コードと現在のシーケンサ状態時間コードの関数である。
その後の比較ステップ106では、次に処理されるコマンドシーケンスの実行時間コードは、比較よりも大きいか等しいかのように、1以上の予め定められた比較基準に基づいてシーケンサ状態時間コードと比較される。比較結果が所望の基準を満たしているか、または所望の条件が満たされているならば、制御はサービスステップ108へ進む。満たしていないならば、制御は比較ステップ106に戻る。図5には示されていないが、方法100の動作中、シーケンサ20は所定のコマンドを処理するので、シーケンサ20の状態は連続してシーケンサ20により更新されることに注意すべきである。したがって、方法は静的なシーケンサ状態によって、ステップ106で無限のループに入らない。
サービスステップ108では、比較ステップ106で、1以上の所望の条件または基準を満たす実行時間コードに関連するコマンドシーケンスはシーケンサ20によりサービスされる。シーケンサ状態時間コードはサービス中に更新される。続いて、制御はコマンドチェックステップ112へ進み、ここでシーケンサ状態マシン(図4の32’参照)から出力されたコマンド送信信号はコマンドがシーケンサ20または20’によりメモリに送信されているか否かを決定するようにチェックされる。コマンドが送信されているならば、制御は最初のコマンド開始ステップ110へ戻る。送信されていないならば、制御はコマンド送信チェックステップ112へ戻る。方法100の動作中、図1のシーケンサ20の状態はシーケンサ20が与えられたコマンドを処理するとき、シーケンス20により連続的に更新されることに注意すべきである。したがって方法100は静的なシーケンサ状態のために、ステップ112で無限ループに入らない。
図6は本発明の1実施形態にしたがって構成されるSDRAM制御装置(図3の12および図4の12’参照)用の図3のSDRAMデータバス34上の最小のデータギャップを示しているタイミング図である。このタイミング図120は例示的なクロック信号122、コマンド開始信号124、シーケンサ開始コマンド信号126、実行時間コード値128、コマンド待機信号130、シーケンサ状態時間コード132、コマンド送信信号134、SDRAMコマンドシーケンス136、SDRAMアドレス138、SDRAMデータバスシーケンス144を含んでいる。データバスシーケンス144は図1、2、3のSDRAMデータバス34に沿って送信される。
タイミング図120は図4の制御装置12’と図3のシステム10’の動作を示している。図3、4、6を参照すると、ESDRAM/SDRAM16は列アクセスストローブ待ち時間(CL)=1およびバースト長(BL)=8で動作するように設定されている。全てのメモリリクエスト、即ちコマンドシーケンス136は読取(Rd)動作に関連されている。
タイミング図120により示されている例示的なシナリオは定常状態で開始し、ここで信号コマンド待機信号130は0(ディスエーブル)であり、シーケンサ状態132は11(最大)である。新しいコマンドが開始され、コマンド開始信号124は1に設定される。コマンド待機信号130はその後、エネーブルされ、新しい開始コマンド126(アクチブ(ACT))と実行時間コード(5)の組合せ(ACT、5)が次のクロックサイクルで発生される。
コマンド待機信号130がエネーブルされるとき、シーケンサ状態132は11であり、これは5である実行時間コード128よりも大きい。したがって、シーケンサ開始コマンド126(ACT)は次のクロックサイクルで図4のシーケンサ状態マシン32’へロードされ、新しいSDRAMコマンドシーケンス136(ACTバンク1(B1)、RdB1)は直ちに実行される。
コマンド待機信号130はさらにコマンドがシーケンサ20’へロードされるのを停止するために新しいSDRAMコマンドシーケンス136(ACT B1、RdB1)のロード時にディスエーブルされる。シーケンサ20’が図3のSDRAM16へのメモリ制御コマンドの送信を完了したとき、コマンド送信信号134は1クロックサイクルだけエネーブルにされ、それによって制御装置12’が別のメモリコマンドを受けることができることを通報する。
現在のSDRAMコマンド136(ACT B1、RdB1)が実行され、SDRAM16がデータバーストモードにある一方で、コマンド開始信号124により示される第2のメモリコマンドは図4の命令復号器18’によって受信される。次のコマンドおよび時間コード発生器28’は最適の実行時間コード128(7)をシーケンサ開始コマンド126(プレチャージ(PCh))へ割当て、図4のコマンド待機発生器94からのコマンド待機信号130がエネーブルにされる。新しい(第2の)シーケンサ開始コマンド126(PCh)はシーケンサ状態時間コード132が最適なコマンドのオーバーラップの7に到達するまで実行されない。第2のSDRAMコマンドシーケンス136(PCh B1、ACT B1、Rd B1)はシーケンサ状態時間コードが7に到達するときに実行される。コマンド送信信号34はコマンドの実行の完了後にエネーブルにされる。第2のSDRAMコマンドシーケンス136(PCh B1、ACT B1、Rd B1)は対応するSDRAMアドレス138(行B、列X)にオーバーラップし、対応するデータ(X1...X8)はその後、データバス34に沿って送信される。2クロックサイクルの最小のデータギャップ140は第1のコマンド136(Act B1、RdB1)による送信されるデータ(M1...M8)と、第2のコマンドシーケンス136(PCh B1、ACT B1、RdB1)による送信されるデータ(X1...X8)との間で生じる。
本発明の実施例では、第2のメモリコマンドシーケンス136(PCh B1、ACT B1、RdB1)はバンクB1の異なる行を読取ることを含んでおり、即ち行B(SDRAMアドレス138参照)の代りに行Aを読取ることを含んでいることに注意すべきである。これは読取後に同一のバンク(B1)のクロスページアクセス動作において読取ミスが続くことを表しており、ここでは異なる行(行B)は同じバンク(B1)から読取られる。これは最初にプレチャージ(PCh)動作を介して行A(ページA)を閉じ、その後付勢(ACT)動作を介して新しいページを開き、その後読取動作(Rd)によって新しいページ(ページB)から読取ることを必要とする。第2のコマンドシーケンス136(PCh B1、ACT B1、RdB1)に関連するクロスページアクセスに対する最適のデータギャップは2クロックサイクルである。通常の状態マシン制御装置またはパイプライン化された制御装置は以下で詳しく説明するように、それぞれこのようなクロスページ動作中にしばしば4または3クロックサイクルのデータギャップを生じる。
第3のメモリコマンドシーケンス136(PCh B2、ACT B2、RdB2)は第3のコマンド開始シーケンス126(PCh)が付勢され、5の最適な実行時間コードを割当てられた後に、コマンド待機信号130がエネーブルにされた後、シーケンサ状態時間コード132が実行時間コード(5)に等しいか大きくなった後に開始される。しかしながら、この例では、第3のシーケンサ開始コマンド126(PCh)および対応する実行時間コード割当て128(5)は1クロックサイクル後に到着する。コマンド待機信号130はシーケンサ開始時間コード132が5ではなく6であるときにエネーブルにされる。
シーケンサ12’は可能な限り速やかに第3のメモリコマンド136(PCh B2、ACT B2、RdB2)を実行するが、1クロックサイクル142のデータギャップはデータバースト間のデータバスシーケンス144に存在する。第3のメモリコマンドシーケンス136(PCh B2、ACT B2、RdB2)は第2のコマンドとは異なるバンク(B2)から読取られる。したがって、(PCh、5)のシーケンサ開始コマンド126と時間コード128の組合せが時間内、即ち1クロックサイクル早く到着したならば、データギャップ142は存在しない。
図4の次のコマンドおよび時間コード発生器28’はコマンドシーケンス136全体を発生してそれをシーケンサ状態マシン32’へ転送し、シーケンサ状態マシン32’はその後直列にコマンドを出力する。その代りに、次のコマンドおよび時間コード発生器28’は開始コマンド126を発生し、シーケンサ状態マシン32’は次のコマンド136を発生する。これはさらにコンパクトで簡単な設計を与える。
コマンドシーケンス136はまたメモリ制御バスとも呼ばれる。メモリ制御バス136はメモリアドレスバス138と共にコマンドシーケンスバスを形成する。したがって、第1のコマンドはACT B1行A、RdB1 Col Mとして考慮されることができる。
例示的なタイミング図120はメモリ制御装置12’の内部動作を示し、それは連続的なメモリサイクル間のデータギャップを最小にすることができる。
図7はそれぞれ通常の状態マシンメモリ制御装置およびパイプラインメモリ制御装置により示される並列データギャップ152、154、140に対する本発明の1実施形態12’により示される並列データギャップのタイミング図150である。データギャップ152、154、140は図6の第2のメモリコマンドシーケンス136(PCh B1、ACT B1、RdB1)に関連しており、これは同じバンク(B1)のクロスページアクセスシナリオ上に読取ミスが後続する読取を表している。
図3、4、6、7を参照すると、ESDRAM/SDRAM16はCL=1およびBL=8モードに設定され、全てのメモリリクエストは読取動作である。図6を参照して説明したように、データバスシーケンス144のデータギャップ140は2クロックサイクルだけである。
通常の状態マシンデータバス156は4クロックサイクルのデータギャップ152を示す。この過剰なデータギャップ152はメモリの帯域幅と性能を減少する。通常の状態マシンデータバス156に対応する状態158の例示的なシーケンスが示されている。
Eureka Techのパイプライン化された制御装置のデータバス160は(それらの仕様にしたがって)3クロックサイクルのデータギャップ154を示す。それ故、図4に説明されているメモリ制御装置12’は小さいデータギャップと高いメモリ帯域幅を生じる。
したがって本発明を特定の応用に対する特定の実施形態を参照してここで説明した。当業者は付加的な変形、応用、実施形態をその技術的範囲内で認識するであろう。
それ故、特許請求の範囲は本発明の技術的範囲内で任意のおよび全てのこのような応用、変形、実施形態をカバーすることを意図している。
本発明の1実施形態にしたがった効率的なメモリ制御装置を使用するシステムのブロック図。 図1のメモリ制御装置により制御される例示的なSDRAMのさらに詳細なブロック図。 さらに詳細にメモリ管理装置を示している図1のシステムの別の実施形態のブロック図。 図3のメモリ制御装置の別の実施形態のさらに詳細なブロック図。 図1、3、4のメモリ制御装置と共に使用するように適合された方法のフロー図。 本発明の1実施形態にしたがって構成されるSDRAM制御装置用のSDRAMデータバス上の最小のデータギャップを示しているタイミング図。 通常の状態マシンメモリ制御装置およびパイプラインとして構成されたメモリ制御装置により示される並列データギャップ対本発明の1実施形態により示される並列データギャップのタイミング図。

Claims (7)

  1. 1以上の入力コマンドシーケンスを処理する命令復号器と、
    1以上の入力コマンドシーケンスの1つをメモリへ選択的に順序付けるシーケンサ状態マシンであって、そのシーケンサ状態マシンにより処理されているコマンドシーケンスの状態に対応しているシーケンサ時間コードを出力するシーケンサ状態マシンと、
    前記シーケンサ時間コードを次に利用可能なコマンドシーケンスに関する実行時間コードと比較し、それに応答して次に利用可能なコマンドシーケンスのサービスが開始されることを示す信号をシーケンサ状態マシンに供給する比較装置とを具備し、
    前記シーケンサ状態マシンは処理さているコマンドシーケンスを順次メモリに出力するか否かを決定し、
    前記命令復号器と前記比較装置は前記シーケンサ状態マシンからフィードバクとしてシーケンサ状態の時間コードデータを受信するように構成されていることを特徴とするメモリ制御装置。
  2. 比較装置はシーケンサ状態マシンを含んでいるシーケンサ内に設けられている請求項1記載の制御装置。
  3. 命令復号器は、1以上の入力命令シーケンスを受取るための復号モジュールおよび次に利用可能なコマンドシーケンスおよび実行時間コード対を提供する発生器を具備している請求項1記載の制御装置。
  4. 命令復号器はさらに、メモリの現在の状態を予測するために復号モジュールと通信するメモリ状態追跡モジュールを含んでいる請求項1記載の制御装置。
  5. 命令復号器とシーケンサは、パイプラインとして構成されたマスター・スレーブ構造で接続され、そのシーケンサは命令復号器に対してスレーブとして動作する請求項2記載の制御装置。
  6. メモリは同期ダイナミックランダムアクセスメモリ(SDRAM)、強化されたSDRAM(ESDRAM)またはその変形である請求項5記載の制御装置。
  7. メモリ管理および制御用のコンピュータにおいて、
    メモリリクエストを生成するコンピュータシステムと、
    メモリ管理装置と、
    メモリ制御装置と、
    前記メモリ管理装置は、前記メモリリクエストに基づいて前記メモリと前記コンピュータシステムとの間のデータフローを選択的に制御し、前記メモリリクエストの優先順位を定め、優先順位を有するメモリリクエストを出力し、
    前記メモリ制御装置は、コマンドサービス動作の現在の状態と前記優先順位を有する各メモリリクエストに割当てられた実行コードとによて決定された時間に前記優先順位のメモリリクエストに対して選択的にサースを行い、
    前記メモリ制御装置は、命令復号器と、マスター・スレーブ構造のシーケンサとを具備しており、
    前記コマンドサービス動作の現在の状態は、前記シーケンサから前記命令復号器へのフィードバクとして与えられるシーケンサ状態時間コードにって表されており、
    前記命令復号器は前記実行コードを各優先順位のメモリリクエストに割当て、
    前記シーケンサは前記実行コードを前記シーケンサ状態時間コードと比較して前記優先順位を有するメモリリクエストが前記シーケンサによってサービスされるときを決定するように構成さているコンピュータ。
JP2006517255A 2003-06-30 2004-06-11 効率的なメモリ制御装置 Expired - Fee Related JP4838120B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US48402503P 2003-06-30 2003-06-30
US60/484,025 2003-06-30
US10/844,284 US7370169B2 (en) 2003-06-30 2004-05-12 Efficient memory controller
US10/844,284 2004-05-12
PCT/US2004/018872 WO2005006194A2 (en) 2003-06-30 2004-06-11 Efficient memory controller

Publications (2)

Publication Number Publication Date
JP2007524146A JP2007524146A (ja) 2007-08-23
JP4838120B2 true JP4838120B2 (ja) 2011-12-14

Family

ID=34068180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006517255A Expired - Fee Related JP4838120B2 (ja) 2003-06-30 2004-06-11 効率的なメモリ制御装置

Country Status (5)

Country Link
EP (1) EP1639479B1 (ja)
JP (1) JP4838120B2 (ja)
DE (1) DE602004016329D1 (ja)
IL (1) IL169631A (ja)
WO (1) WO2005006194A2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008035352A2 (en) * 2006-09-18 2008-03-27 Sandisk Il Ltd. A method and a storage device estimating a completion time for a storage operation
CN112911225B (zh) * 2021-01-19 2022-01-28 深圳科盾量子信息科技有限公司 基于量子加密的视频监控方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000029955A1 (en) * 1998-11-16 2000-05-25 Infineon Technologies Ag Universal resource access controller

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212611B1 (en) * 1998-11-03 2001-04-03 Intel Corporation Method and apparatus for providing a pipelined memory controller
US6532505B1 (en) * 1999-11-12 2003-03-11 Infineon Technologies Ag Universal resource access controller
US6216178B1 (en) * 1998-11-16 2001-04-10 Infineon Technologies Ag Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution
US6219769B1 (en) * 1998-12-09 2001-04-17 Advanced Micro Devices, Inc. Method and system for origin-sensitive memory control and access in data processing systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000029955A1 (en) * 1998-11-16 2000-05-25 Infineon Technologies Ag Universal resource access controller
JP2004500608A (ja) * 1998-11-16 2004-01-08 インフィネオン・テクノロジーズ・アーゲー ユニバーサルリソースアクセスコントローラ

Also Published As

Publication number Publication date
WO2005006194A2 (en) 2005-01-20
DE602004016329D1 (de) 2008-10-16
IL169631A0 (en) 2008-02-09
EP1639479A2 (en) 2006-03-29
EP1639479B1 (en) 2008-09-03
JP2007524146A (ja) 2007-08-23
IL169631A (en) 2010-12-30
WO2005006194A3 (en) 2005-04-07

Similar Documents

Publication Publication Date Title
US7149874B2 (en) Memory hub bypass circuit and method
US7467277B2 (en) Memory controller operating in a system with a variable system clock
US6081851A (en) Method and apparatus for programming a remote DMA engine residing on a first bus from a destination residing on a second bus
US7093094B2 (en) Random access memory controller with out of order execution
TW201234188A (en) Memory access device for memory sharing among multiple processors and access method for the same
JPH0332094B2 (ja)
US6654834B1 (en) Method and apparatus for data transfer employing closed loop of memory nodes
US7669028B2 (en) Optimizing data bandwidth across a variable asynchronous clock domain
US7370169B2 (en) Efficient memory controller
US20040068615A1 (en) Apparatus, method, and system for reducing latency of memory devices
US8412891B2 (en) Arbitrated access to memory shared by a processor and a data flow
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
JP4838120B2 (ja) 効率的なメモリ制御装置
US20090119429A1 (en) Semiconductor integrated circuit
KR101022473B1 (ko) 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
JP4440181B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
JP3111052B2 (ja) 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム
CN1337629A (zh) 总线系统及其指令传输方法
JPH1185673A (ja) 共有バスの制御方法とその装置
JP2003122626A (ja) 高性能グラフィックスコントローラ
JP2008198119A (ja) データ転送装置、データ転送システムおよびデータ転送方法
JP2000330866A (ja) メモリ制御方法およびメモリ制御システム
JP2016181052A (ja) データ転送装置、並びに、dmaコントローラを外部から制御する制御装置及びその制御方法
JPH1011356A (ja) メモリアクセスシステム
JPH07248979A (ja) データ処理装置の試験制御方法,及び回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110714

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

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

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

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4838120

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees