JP2010146252A - Ddrメモリコントローラ - Google Patents
Ddrメモリコントローラ Download PDFInfo
- Publication number
- JP2010146252A JP2010146252A JP2008322163A JP2008322163A JP2010146252A JP 2010146252 A JP2010146252 A JP 2010146252A JP 2008322163 A JP2008322163 A JP 2008322163A JP 2008322163 A JP2008322163 A JP 2008322163A JP 2010146252 A JP2010146252 A JP 2010146252A
- Authority
- JP
- Japan
- Prior art keywords
- bank
- command
- write
- read
- clock
- 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
- Dram (AREA)
Abstract
【課題】単純な回路構成によって複数のDDRコマンド列間におけるDDRコマンド同士が競合するのを回避する。
【解決手段】個別に動作することができる複数のバンクで構成されるDDRメモリとバンク共通バスで接続されたDDRメモリコントローラにおいて、バンク対応のライトリクエストまたはリードリクエストを逐次に受けると、動作モードに応じて一連のDDRコマンド列Activeコマンド-Write(Read)コマンド-Prechargeコマンドを逐次に発行し、その際に該DDRコマンド同士がバンク共通バス上で競合しないように、Activeコマンド,Write(Read)コマンド,Prechargeコマンドの発行タイミングを調整してパイプライン処理する。
【選択図】図1
【解決手段】個別に動作することができる複数のバンクで構成されるDDRメモリとバンク共通バスで接続されたDDRメモリコントローラにおいて、バンク対応のライトリクエストまたはリードリクエストを逐次に受けると、動作モードに応じて一連のDDRコマンド列Activeコマンド-Write(Read)コマンド-Prechargeコマンドを逐次に発行し、その際に該DDRコマンド同士がバンク共通バス上で競合しないように、Activeコマンド,Write(Read)コマンド,Prechargeコマンドの発行タイミングを調整してパイプライン処理する。
【選択図】図1
Description
本発明はDDR(Double Data Rate)メモリコントローラ、特に、DDRメモリコントローラとDDRメモリデバイスを接続するバンク共通バスにおけるDDRコマンドの競合回避に関する。
クロックの立ち上がりエッジと立下りエッジでデータを入出力することにより、従来のSDR(Single Data Rate)メモリの2倍のデータ転送レートを可能にしたDDRメモリが知られている(例えば、非特許文献1)。DDRメモリでは、RAS信号に当たるアクティブコマンドActiveを入力した後、CAS信号に当たるリードコマンドReadまたはライトコマンドWriteを入力して動作を実行する。そして、現在のライト(リード)動作が終了すると、同一バンク内の別のRASアドレスを活性化するためにプリチャージコマンドPrechrgeを入力する。
DDRメモリにおいは厳格なタイミング規格が製品毎に設けられている。即ち、デバイスがライトコマンドWriteまたはリードコマンドReadを受け取るにはアクティブコマンドActive入力から時間tRCDの経過を要し、プリチャージコマンドPrechargeはアクティブコマンドActive入力から時間tRAS経過後に入力する必要がある。また、プリチャージコマンドPrecharge入力から時間tRP経過後に次のアクティブコマンドActiveの入力が可能となる。アクティブコマンドActive入力からから次のアクティブコマンドActive入力までに満足すべき間隔は時間tRCである。更に、ライトデータが正しくメモリセルに書き込まれることを保証するためには、プリチャージコマンドPrecharge入力以前に時間tWRの間隔を要し、あるバンクのアクティブコマンドActiveと別個のバンクに対するアクティブコマンドActiveと間隔は時間tRRD以上にすべきことが定められている。
DDRメモリは個別にライト(リード)動作が可能な4バンク構成であり、異なるバンクに跨るライト(リード)動作においては、通常、データ転送能力を高めるためにパイプライン処理が採用される。パイプライン処理では、アドレス入力からデータ出力までの動作をいくつかのブロックに分割して、各バンクにおける異なるブロックの動作を並列に実行する。
また、特許公報上では、DDR仕様の複数のSRAMチップをアドレス空間を拡張する目的で配置した場合、選択されずNOP(Non Operation)状態のSRAMチップの出力をハイインピーダンス状態にすることにより、NOP状態のSRAMチップからのエコークロックを阻止してデータの競合をなくするとした「半導体装置」が開示されている(例えば、特許文献1参照)。
更に、Posted CAS技術を採用した場合に、Additive Latencyをモードレジストにセッティングすると、アクセスバンク毎にAdditive Latencyを変更するには事前にモードレジストのセッティングコマンドを実施する必要があるという煩わしさを防止するため、DDRメモリコントローラでアクティブコマンドActiveを実行する度にAdditive Latencyを変更することとした技術も開示されている(例えば、特許文献2参照)。
ユーザーズマニュアル「DDR SRAMの使い方」[平成20年12月6日検索]インターネット<URL:http://www.elpida.com/pdfs/J0234E50.pdf>
特開2002-215454(第3頁−第4頁、図1)
特開2007-215454(第5,6,13頁、図7)
しかしながら、上述した非特許文献1に記載の従来技術では、パイプライン処理については、アドレス入力からデータ出力までの動作をいくつかのブロックに分割して、各バンクにおける異なるブロックの動作を並列に実行する、という一般的な記述のみでこれ以上は明らかにされていない。
また、特許文献1に記載の従来技術では、SRAMチップ間のデータの競合を回避してメモリ空間の拡張するものであって、メモリの動作のスピードアップを図ったものではない。
また、特許文献2に記載の従来技術では、Posted CAS技術を採用した場合の改良案を開示しているが、Posted CAS技術自体が既に複雑な制御を必要とするのに、動的にAdditive Latencyを変更するので、更に複雑化したDDRメモリの制御となるという問題点がある。
思うに、一般的なDDRメモリコントローラは、メモリ・アクセスするバンク数に応じた複数のバンク制御部を持つ。各バンク制御部は、1つのバンクに対するコマンド生成を担当する。DDRインタフェースにコマンドを発行する際、クロック毎に1つのコマンドのみが発行できる仕様であり、複数のバンク制御部が生成したコマンド同士が同一タイミングで競合しないようにするためには、1つのバンク制御部の一連のコマンド列Active-Write(Read)-Prechargeの発行が完了してから、次のバンク制御部のコマンド発行を行うか、データ転送性能を高めるためには、複数のバンク制御部が同時動作し、各バンク制御部が生成したコマンド同士が同一クロックで競合しないようにタイミングをずらしてコマンド発行を行う必要があろう。そして、コマンド同士が同一クロックで競合しないようにタイミング調整するには、競合したコマンド同士を優先順位回路で先発・後発を処理する。競合するコマンドの数が多くなれば、優先順位回路のアルゴリズムは複雑になり、その判定処理のためスループットが大きくなってしまう。
そこで、本発明の目的は、単純な回路構成によって、バンク間のデータの競合を回避しつつ、DDRメモリ動作のスピードアップを図ったDDRメモリコントローラを提供することにある。
本発明のDDRメモリコントローラは、個別に動作することができる複数のバンクで構成されるDDRメモリとバンク共通バスで接続されたDDRメモリコントローラにおいて、バンク対応のライトリクエストまたはリードリクエストを逐次に受けると、動作モードに応じて一連のDDRコマンド列Activeコマンド-Write(Read)コマンド-Prechargeコマンドを逐次に発行し、その際に該DDRコマンド同士がバンク共通バス上で競合しないように、Activeコマンド,Write(Read)コマンド,Prechargeコマンドの発行タイミングを調整してパイプライン処理することを特徴とする。
より具体的には、本発明のDDRメモリコントローラは、個別に動作することができる複数のバンクで構成されるDDRメモリとバンク共通バスで接続され、DDRタイミング規格保持回路と、リクエスト制御回路と、バンクと1対1対応のバンク制御部と、バンク管理部を有する。
DDRタイミング規格保持回路は、バンクに対するDDRコマンドを発行するためのタイミング規格情報を予め保持している。また、アクセス単位のバースト長が予め設定される。リクエスト制御回路は、外部からアドレス信号とライトリクエストまたはリードリクエストを入力して、アドレス信号をデコードした結果により、バンク制御部のいずれか一つに対し、アドレス信号とライトアクセスまたはリードアクセスの起動信号を通知する。
各バンク制御部は、起動信号を受けると、タイミング規格情報による条件を満たし、かつ動作モードに応じて一連のDDRコマンド列Activeコマンド-Write(Read)コマンド-Prechargeコマンドを発行し、その際に該DDRコマンド同士が前記バンク共通バス上で競合しないように、Activeコマンド,Write(Read)コマンド,Prechargeコマンドの発行タイミングを調整してパイプライン処理すると共に、動作状態を示す状態遷移情報を出力する。
バンク管理部は、全てのバンク制御部からのActiveコマンド,Write(Read)コマンド,Prechargeコマンドを論理ORしてバンク共通バスへ出力し、またアドレス信号とライトリクエストまたはリードリクエストと全てのバンク制御部からの状態遷移情報により、外部とリクエスト制御回路と全てのバンク制御部を制御するための信号を出力する。
動作モードは、例えば、アクセスバースト長,間欠と連続アクセスの別,同一バンクアクセスと異バンクアクセスの切替り,ライトアクセスとリードアクセスの切替りおよびこれら組み合わせにより定められる。
動作状態は、例えば、当所のアイドル状態であるCLOSEステートと、ライトリクエストまたはリードリクエストの入力があるとCLOSEステートから遷移し、ActiveコマンドからWriteコマンドまたはReadコマンドまでの経過時間tRCDのクロック長だけ留まるACTステートと、ACTステートから遷移し、アクセスバースト長2,4,8に対応して1,2,4クロック長の時間だけ留まるが、同一バンクの連続アクセスに応じて繰り返してこの状態を維持するOPENステートと、OPENステートから遷移し、滞留時間が前記コマンドの競合を回避するように調整されるDELAYステートと、DELAYステートから遷移し、Prechargeコマンドから次のActiveコマンドの入力が可能となるまでの経過時間tRPのクロック長から1クロック長を減じた時間だけ滞留した後にCLOSEステートへ遷移するスPREステートを有する。
ACTステート,OPENステート,PREステートの各1クロック目で、それぞれActiveコマンド,Write(Read)コマンド,Prechargeコマンドが発行される。
OPENステートは、例えば、その滞留時間がアクセスバースト長2,4,8に対応して1,2,4クロック長とされ、また同一バンクの連続アクセスに応じて繰り返される。
DELAYステートは、例えば、同一バンクへの連続アクセスであれば、ライトリカバリ時間tWRに1クロック長を加えた時間、異なるバンクへの連続アクセスあれば、前記ACTステートからカウントし、10クロック幅、または前記ActiveコマンドからPrechargeコマンド入力までに満足すべき経過時間tRASと同じクロック幅のどちらか大きい方のクロック幅だけ滞留する。
バンク制御部は、リクエスト制御回路から起動信号が入力すると、バンク管理部による制御の下に、当該バンク制御部と他のバンク制御部が発行するDDRコマンドが競合しないように、動作モードでタイミング規格情報を加工したタイミング情報を出力する入れ子タイミング調整回路と、タイミング情報により動作状態を遷移し、この状態遷移に連動して、遷移の1クロック目で生成した一連のDDRコマンドと状態遷移情報をバンク管理部へ出力するコマンド生成部を有する。
バンク管理部は、論理ORを行なうOR回路と、状態遷移情報により次のアクセス要求を受け付けるためのタイミングを調整し、ライトリクエストまたはリードリクエストが受け付けられたことを通知するACK信号を外部へ出力するACK出力タイミング回路と、バンクアドレス切替検出回路と、リード・ライト切替検出回路を有する。
バンクアドレス切替検出回路は、アドレス信号によりバンクアドレスの切替りを検出するとアクティブ信号を全ての入れ子タイミング調整回路へ出力する。また、リード・ライト切替検出回路は、ライトリクエストまたはリードリクエストと全てのバンク制御部からの状態遷移情報により、本DDRメモリコントローラの状態がライトアクセスとリードアクセスと停止中のいずれであるかを示す識別情報を全てのバンク制御部へ出力し、また識別情報が停止中であることを示すときにバンク制御部へ起動信号を抑止するためのディセーブル信号をリクエスト制御回路へ出力する。
本発明は、一連のDDRコマンド列を生成する逐次処理のステート間隔をタイミング規格情報に基づき、動作モードに応じて、また他のコマンド生成部の動作状態により、DDRコマンド列の間のDDRコマンドが同一クロックで競合せず入れ子状態になるように調整して生成する構成としたため、複数のバンクに対して発行したコマンド同士が同一クロックで競合するのを防ぐために従来のような複雑な優先順位回路を要せず構成を単純化できるという第1の効果を得ることができる。
また、DDRメモリへ発行するコマンドが優先順位回路を経由しないため、アクセス要求からコマンド発行までのスループットがDDRメモリの各バンクに対して一定かつ最短になるという第2の効果も得ることができる。
次に、本発明の実施の形態について図面を参照しながら詳細に説明する。以下、アクティブコマンドActiveをActiveコマンド、ライトコマンドWriteをWriteコマンド、リードコマンドReadをReadコマンド、プリチャージコマンドPrechargeをPrechargeコマンドと記す。
[構成の説明]
図1は、本発明の一実施形態としてのDDRメモリコントローラの全体構成を端子コントローラ4およびDDRメモリ5と共に示すブロック図である。先ず、全体構成と構成要素について説明する。DDRメモリ5は、DDR(Double Data Rate)仕様のSRAMであって、アドレス領域を異にする4つのバンクから成り、各バンクは、基本的には一連のコマンド列Active-Write(Read)-Prechargeにより個別にライト(リード)動作することができる。
図1は、本発明の一実施形態としてのDDRメモリコントローラの全体構成を端子コントローラ4およびDDRメモリ5と共に示すブロック図である。先ず、全体構成と構成要素について説明する。DDRメモリ5は、DDR(Double Data Rate)仕様のSRAMであって、アドレス領域を異にする4つのバンクから成り、各バンクは、基本的には一連のコマンド列Active-Write(Read)-Prechargeにより個別にライト(リード)動作することができる。
図1において、DDRメモリコントローラは、ローカル側インタフェース(図示省略)から、DDRメモリ5をアクセスするためのアドレス信号L1と、ライトアクセスを要求するライトリクエストL2と、リードアクセスを要求するリードリクエストL3とを入力して、DDRコマンド3aを生成し、バンク共通バス(以下、バスと記す)で接続された端子コントローラ4へ出力する。動作モードによっては、バス上ではアクセス対応に生成されたDDRコマンド3aが競合することがあり、その場合にはDDRコマンド3aについてタイミングの調整が必要とされる。
端子コントローラ4は、DDRメモリコントローラから入力したDDRコマンド3aをDDRインタフェースの物理的な伝播遅延を満たすように調整しDDRコマンド4aとしてDDRメモリ5へ出力する。DDRメモリ5は、このDDRコマンド4aによりライトまたはリード動作を行なう。なお、アクセスのバースト長を指定するインタフェースは明示していないが、ローカル側インタフェースからDDRメモリコントローラへ設定される。
DDRメモリコントローラは、DDRタイミング規格保持回路10,リクエスト制御回路1,DDRメモリ5のバンクと1対1対応の4つのバンク制御部20〜23、およびバンク制御部20〜23を管理するバンク管理部3とで構成されている。
DDRタイミング規格保持回路10は、DDRメモリ5の1つのバンクまたは複数のバンクに対するDDRインタフェースのDDRコマンドをバンク制御部20〜23が発行するためのタイミング規格情報1eとアクセス単位のバースト長を予め保持し、バンク制御部20〜23へ出力している。DDRコマンドを構成するActiveコマンド,WriteコマンドまたはReadコマンド,Prechargeコマンドは、少なくともこれらの各時間以上の間隔を保って発行されることが要求される。
タイミング規格情報1eは、ActiveコマンドからWriteコマンドまたはReadコマンドまでの経過時間tRCD,ActiveコマンドからPrechargeコマンドまでの経過時間tRAS,Prechargeコマンドから次のActiveコマンドの入力が可能となるまでの経過時間tRP,Activeコマンドからから次のActiveコマンド入力までに満足すべき経過時間tRC,ライトデータが正しくメモリセルに書き込まれることを保証するためのPrechargeコマンド前の時間tWR,バンク間に跨るActiveコマンドの間隔tRRD,ライトアクセスからリードアクセスへ移るときにtWRのスタート時点からReadコマンド発行までの間隔tWTRおよびRead-Write間隔等を含む。
リクエスト制御回路1は、ローカル側インタフェースから、アドレス信号L1とライトリクエストL2またはリードリクエストL3を入力する。そして、アドレス信号L1をデコードした結果により、バンク制御部20〜23の内のいずれか一つに対し、アドレス信号およびライトアクセスまたはリードアクセスの起動信号1a〜1dを通知する。起動信号1aは、ライトリクエストL2またはリードリクエストL3の入力があり、かつ、リード・ライト切替え検出回路304から起動信号1aを抑止するためのディセーブル信号3dが無効であるときに出力される。
バンク制御部20,21,22,23は、同構成であって、DDRメモリ5のそれぞれバンク0,1,2,3に対するDDRコマンドを生成する。バンク制御部20〜23が自由にDDRコマンドを生成すると、バンク管理部3はそれらを纏めてDDRインタフェースであるバスを介して端子コントローラ4へ出力するので、DDRコマンドの競合が発生する。そこで、DDRタイミング規格保持回路10からのタイミング規格情報1eとバースト長を基にして、バンク管理部3による管理の下に、バンク制御部20〜23において、如何なる動作モードであっても競合しないように調整されたDDRコマンドを生成する。以下、バンク制御部自体について説明するときはバンク制御部20で代表することとする。
バンク制御部20は、図2に示すように、CLOSE,ACT,OPEN,DELAYおよびPREという5つの状態を採り、各状態をこの順序に遷移する。当初はアイドル状態のCLOSEステートにあり、起動信号1aの入力があるとACTステートへ遷移する。ActiveコマンドからWriteコマンドまたはReadコマンドまでの経過時間tRCDが3クロック長である場合、ACTステートの時間は3クロック長、Activeコマンドの入力が可能となるまでの経過時間tRPが3クロック長である場合、PREステートの時間は2クロック長である。OPENステートの時間は、バースト長2,4,8に対応して1,2,4クロック長となるが、同一バンクへの連続アクセスに応じて繰り返される。この繰返しの中で、後で詳述する例外処理が行われることがある。DELAYステートの時間は、DDRコマンドの競合を回避するように調整される。例えば、同一バンクへのアクセスでライトリカバリ時間tWRのクロック長が2クロック長であれば3クロック長、異なるバンクへの連続アクセスで、ActiveコマンドからPrechargeコマンド入力までに満足すべき経過時間tRASが10クロック幅以下であれば、バースト長2,4,8に応じて、6,5,3クロック幅とされる。以下、ACTステート等は単にACT等と記す。
バンク制御部20は、入れ子タイミング調整回路201とコマンド生成部202で構成されている。入れ子タイミング調整回路201は、DDRメモリの1つのバンクまたは複数のバンク間に対するDDRインタフェースのタイミング規格情報1eをDDRタイミング規格保持回路10から入力し、バンクの切替り検出に伴うアクティブ信号3bと、ライトアクセス中またはリードアクセス中または停止中の別と、ライトアクセスとリードアクセスの切替りを示す識別信号3cをバンク管理部3から入力している。
また、入れ子タイミング調整回路201にはDDRタイミング規格保持回路10からバースト長が設定される。動作モードは、このアクセスバースト長と、間欠と連続アクセスの別,同一バンクアクセスと異バンクアクセスの切替り,ライトアクセスとリードアクセスの切替りおよびこれら組み合わせにより定められる。例えば、2バースト長の同一バンクへの間欠ライトアクセス、2バースト長の異なるバンク(0→1→2→3)への連続ライトアクセス、4バースト長の同一バンクへの連続ライトアクセス、2バイト長の同一バンク(0)への連続ライトアクセス→異なるバンク(2)へのライトアクセス→同一バンク(3)への連続ライトアクセス、2バースト長の異なるバンク(0→1→2→3)への交互のライトアクセスとリードアクセスといったものである。
入れ子タイミング調整回路201は、リクエスト制御回路1から起動信号1aが入力すると、アクティブ信号3bおよび識別信号3cの情報により決定した動作モードにおいて、タイミング規格情報1eを加工したタイミング情報をコマンド生成部202へ出力する。このタイミング情報は、バンク制御部20とバンク制御部21〜23が発行するDDRコマンドが競合しないように考慮した値で、特に、上述のACTの開始時刻とDELAY時間に留意して調整される。
コマンド生成部202は、タイミング情報により図2に示したように状態を遷移し、この状態遷移に連動して、遷移の1クロック目でバンク0に対する一連のDDRコマンド2aを生成してバンク管理部3へ出力する。また、状態遷移情報2eをバンク制御部3へ出力する。
バンク管理部3は、リクエスト制御回路1と同様にローカル側インタフェースからアドレス信号とライトリクエスト信号L2またはリードリクエスト信号L3を入力し、バンク制御部20〜23からDDRコマンド2a〜2dと状態遷移情報2e〜2hを入力する。そして、ACK信号L4をローカル側インタフェースへ、DDRコマンド3aを端子コントローラ4へ、アクティブ信号3bおよび識別信号2cをバンク制御部20〜23へ、ディセーブル信号3dをリクエスト制御回路1へそれぞれ出力する。
バンク管理部3は、ACK出力タイミング回路301とOR回路302とバンクアドレス切替検出回路303とリード・ライト切替検出回路304で構成されている。OR回路302はコマンド生成部202,212,222,232からのDDRコマンド2a〜2dを論理ORし、その結果3aを端子コントローラ4へ出力する。
ACK出力タイミング回路301は、コマンド生成部203,213,223,233からの状態遷移情報2e〜2hを入力し、起動中のバンク制御部のステートの進行状態から、次のアクセス要求を受け付けるためのタイミングを調整し、ライトリクエストL2またはリードリクエストL3が受け付けられたことを通知するACK信号L4をローカル側インタフェースに出力する。
バンクアドレス切替検出回路303は、アドレス信号L1によりアクセス要求のアドレスと次回のアクセス要求のアドレス値を比較してバンクアドレスの切り替わり時にアクティブ信号3bを生成して入れ子タイミング調整回路201,211,221,231の全てへ同時に出力する。
リード・ライト切替検出回路304は、ライトリクエストL2またはリードリクエストL3とバンク制御部20〜23の状態遷移情報2e〜2hにより識別信号3cを生成して入れ子タイミング調整回路201,211,221,231の全てへ同時に出力する。識別信号は本DDRメモリコントローラの状態がライトアクセスとリードアクセスと停止中のいずれであるかと、ライトアクセスとリードアクセスの切替りを示す。更に、リード・ライト切替検出回路304が停止中であることを示すとき、リクエスト制御回路1がバンク制御部20〜23へ出力する起動信号1a〜1dを抑止するためのディセーブル信号3dを出力する。
[動作の説明]
次に、以上のように構成された本DDRメモリコントローラの動作につき、場合に分けて図3〜9に示すタイミングチャートを参照しながら説明する。場合分けは、バースト長、間欠アクセスか連続アクセスか、同一バンクアクセスと異バンクアクセスの切替りがあるか、ライトアクセスとリードアクセスの切替りがあるかにより行なっている。またDDRタイミング規格保持回路10に設定されるタイミング規格は、図3〜9の全てのケースにおいて、tRCDは3クロック幅、tRASは7ロック幅、tRCは10クロック幅、tRPは3クロック幅、tWRは2クロック幅、tRRDは2クロック幅、tWTRは1クロック幅、ReadコマンドとWriteコマンドの間隔は4クロック幅とする。なお、図3〜9では、用紙サイズの都合上、21クロック目以降の表示を省略している。
次に、以上のように構成された本DDRメモリコントローラの動作につき、場合に分けて図3〜9に示すタイミングチャートを参照しながら説明する。場合分けは、バースト長、間欠アクセスか連続アクセスか、同一バンクアクセスと異バンクアクセスの切替りがあるか、ライトアクセスとリードアクセスの切替りがあるかにより行なっている。またDDRタイミング規格保持回路10に設定されるタイミング規格は、図3〜9の全てのケースにおいて、tRCDは3クロック幅、tRASは7ロック幅、tRCは10クロック幅、tRPは3クロック幅、tWRは2クロック幅、tRRDは2クロック幅、tWTRは1クロック幅、ReadコマンドとWriteコマンドの間隔は4クロック幅とする。なお、図3〜9では、用紙サイズの都合上、21クロック目以降の表示を省略している。
各タイムチャートにおいて、信号CLK_1Xは、本DDRメモリコントローラのシステムクロックを示し、端子コントローラ4とDDRメモリ5の間のデータラインDQの倍速クロック信号CLK_2Xの半分の速度である。DDRメモリコントローラのローカル側インタフェースと端子コントローラ4までのインタフェースは全てCLK_1Xで動作する。なお、データラインの倍速クロックCLK_2Xは、図示省略するが、ライトアクセスおよびリードアクセスの間隔を決定する。
また、ローカル側インタフェースからDDRメモリ5へ伝わる各信号のデータ名称の記載において、バンク0に関連するデータは’-b0’、バンク1に関連するデータは’-b1’、バンク2に関連するデータは’-b2’、バンク3に関連するデータは’-b3’とする。また、データ名称やタイミング規格のパラメータ名の後ろに付く’[]’内の数字はクロック幅を示す。図3〜8で説明するライトアクセスに対して、同一条件のリードアクセスがあり得るが、DDRメモリコントローラが発行するコマンドのタイミングはWRITEをREADに読み換えれば内容が同一になるため、リードアクセスについては省略する。
なお、最初は詳細に説明するが、それ以降は先に説明した部分と重複する部分や類推が容易な部分については省略し、特徴的な部分についての説明のみに留めることとする。DDRタイミング規格保持回路10とDDRメモリ5には、同じタイミング規格情報およびバースト長が予め設定される。
(1)2バースト長の同一バンクへの間欠ライトアクセス(図3)
図3は、ローカル側インタフェースの要求によりバンク0へ2バースト長のライトアクセスを間欠で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。バースト長を指定するインタフェースは図1に明示していないが、ローカル側インタフェースによりDDRタイミング規格保持回路10に初期設定されている。また、DDRメモリ5も2バースト・モードに初期設定されているものとする。このケースでは、バンクの切替りもライトアクセスとリードアクセスの切替りもないため、タイミング調整は行なわれず、DELAYのクロック幅はtWRに1クロックを足した3クロックとなる。
図3は、ローカル側インタフェースの要求によりバンク0へ2バースト長のライトアクセスを間欠で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。バースト長を指定するインタフェースは図1に明示していないが、ローカル側インタフェースによりDDRタイミング規格保持回路10に初期設定されている。また、DDRメモリ5も2バースト・モードに初期設定されているものとする。このケースでは、バンクの切替りもライトアクセスとリードアクセスの切替りもないため、タイミング調整は行なわれず、DELAYのクロック幅はtWRに1クロックを足した3クロックとなる。
CLK_1Xの2クロック目でライトリクエストL2が1にアサートされると、本DDRメモリコントローラのアクセス処理が起動し、バンク管理部3のリード・ライト切替検出回路304にはライトアクセス中であることを表す’WRITE’が記録される。この時、同時にライトアクセス対象のアドレス’ADD-b0’も入力する。リクエスト制御回路1は、アドレス’ADD-b0’をデコードしバンク0に対するアクセスと判定してバンク制御回路20のコマンド生成部202へアクセス情報’DAT-b0’(図示省略)を通知する。
コマンド生成部202は、一連のコマンド列を生成する逐次処理を起動する。この逐次処理には5つのステートACT、OPEN、DELAY、PRE、CLOSEがあり、図2に示したように、CLOSE→ACT→OPEN→DELAY→PREの順にステートが遷移する。DELAYは、CLOSEは停止中のステートである。ACT、OPEN、PREの各ステートの前縁により1クロック幅のDDRコマンドが生成され、ACTステートがActiveコマンド’ACT-b0’、OPENステートがWriteコマンド’WRITE-b0’、PREステートがPrechargeコマンド’PRE-b0’に対応する。
このことから、ACT、OPEN、DELAY、PREの各ステートの時間幅を増減させることによりDDRコマンドの間隔を調整することができるが、ここでは、ACTとPREは固定値、OPENはバースト長により定めるとし、DELAYのみで調整することとしている。なお、リードアクセス処理の動作では、Writeコマンドに代わってReadコマンドとなる。OPENで生成されるコマンドがWriteコマンドであるかReadコマンドであるかは、OPENが発生したタイミングにおいてリード・ライト切替検出回路304が出力する識別信号がライトアクセスとリードアクセスのいずれを示すかにより決定される。
各ステートの時間幅は、入れ子タイミング調整回路201からのタイミング情報により決定される。図3の例では、ActiveコマンドとWrite(Read)コマンド間隔の規格tRCDが3クロック幅’tRCD[3]’であることをDDRタイミング規格保持回路10が通知しているため、ACTステートが3クロック幅’ACT[3]’とされる。コマンド生成回路202における逐次処理のこれらの情報は状態遷移情報2eとしてバンク管理部3のACK出力タイミング回路301に通知され、ACK出力タイミング回路301はACTステートが終了する1クロック前、即ち、CLK_1Xの5クロック目でACKを1クロック間1にアサートする。ACK信号L4を1にアサートしたCLK_1Xの1クロック後にOPENが開始される。
ローカル側インタフェースは、ACK信号L4の1アサートを検出しCLK_1Xの6クロック目でライトREQを0にディアサートしてライトリクエストL2を止める。その結果、コマンド生成回路202はバンク0へのライトアクセスを終了させるため、OPENを1クロック幅’OPEN[1]’で終了しDELAYへ移る。また、バンク管理部3のリード・ライト切替検出回路304にはリクエスト停止中であることを示す’IDLE’であることが記録される。
入れ子タイミング調整回路201は、リード・ライト切替検出回路304から’IDLE’を識別情報3cにより入力するため、バンク0以外のコマンドとの競合を回避するためのタイミング調整は行わない。即ち、DDRタイミング規格保持回路10が、ActiveコマンドとPrechrgeコマンド間隔の規格tRASが7クロック幅’tRAS[7]’で、かつWriteデータの最後のバーストデータとPrechrgeコマンド間隔の規格tWRが2クロック幅’tWR[2]’であることを通知しており、これがそのままタイミング情報としてコマンド生成部202へ通知される。コマンド生成部202は、ACTステートの前縁からPREの前縁まで10クロック幅になるようにDELAYを3クロック幅’DELAY[3]’に調整する。
次に、CLK_1Xの7クロック目でライトリクエストL2が再び1にアサートされるが、バンク管理部3のリード・ライト切替検出回路304は、コマンド生成部202,212,222,232の全てがCLOSEとなるCLK_1Xの12クロック目まで’IDLE’を保持する。また、その時リード・ライト切替検出回路304は、リクエスト制御回路1がバンク制御部20〜23へ出力する起動信号1a〜1dを抑止するためのディセーブル信号3dを1にアサートし、CLK_1Xの12クロック目までライトリクエストL2に対するアクセスを起動しない。
コマンド生成回路202は、PrechrgeコマンドとActiveコマンド間隔の規格tRPが3クロック幅’tRP[3]’で、かつ同じバンクに対するActiveコマンドとActiveコマンド間隔の規格’tRC’が10クロック幅’tRC[10]’になるようにDELAYのクロック幅を調整して12クロック目でCLOSEにする。
抑止されていたライトリクエストL2に対する起動信号は13クロック目で有効となり、バンク管理部3のリード・ライト切替検出回路304にライトアクセス中であることを示す’WRITE’であることが13クロック目で記録され、以後の動作は最初のライトアクセス処理と同様になる。コマンド生成部202からバンク0の一連のコマンド列が出力され、OR回路302を介して端子コントローラ4へ出力される。OR-DDRコマンド3aを見ると、各DDRコマンドは極力詰め込まれられているが競合がないことが分かる。端子コントローラ4とDDRメモリ5の間のデータラインDQではWriteコマンドの1クロック後2バースト(1クロック幅)のデータが転送される。
(2)異なるバンク(バンク0→1→2→3)の連続アクセス(図4〜図6)
図4〜図6は、ローカル側インタフェースの要求によりバンク0→バンク1→バンク2→バンク3→バンク0・・・・の順でライトアクセスを連続で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。
図4〜図6は、ローカル側インタフェースの要求によりバンク0→バンク1→バンク2→バンク3→バンク0・・・・の順でライトアクセスを連続で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。
(2.1)2バースト長の場合(図4)
ローカル側インタフェースの設定によりバースト長2を初期設定し、またDDRメモリも2バースト・モードに初期設定される。このケースでは、バンクの切替りがあり2バースト・モードのため、ACTから10クロック幅カウントすると、DELAYのクロック幅は6クロックとなる。
ローカル側インタフェースの設定によりバースト長2を初期設定し、またDDRメモリも2バースト・モードに初期設定される。このケースでは、バンクの切替りがあり2バースト・モードのため、ACTから10クロック幅カウントすると、DELAYのクロック幅は6クロックとなる。
ローカル側インタフェースは、CLK_1Xの5クロック目でACK信号L4の1アサートを検出すると、ライトリクエストL2を1にアサートしたまま、6クロック目でアドレス’ADD-b1’を入力する。この結果、再びライトアクセス処理が起動し、リード・ライト切替検出回路304には’WRITE’が記録される。バンク管理部3内部のバンクアドレス切替検出回路303は6クロック目でアドレス’ADD-b0’とアドレス’ADD-b1’を比較して、アクセスするバンクが切り替わったことを検出し、アクティブ信号3bを1クロック間だけ1にアサートする。
アクティブ信号3bは入れ子タイミング回路201,211,221,231の全てに同時に入力するが、逐次処理が行われているコマンド生成回路202に対してのみ、入れ子タイミング回路201がバンク0へのライトアクセスを終了させる通知を行う。その結果、コマンド生成回路202のOPENは1クロック幅’OPEN[1]’で終了しDELAYへ移る。また、6クロック目では、同時にリクエスト制御回路1が、アドレス’ADD-b1’をデコードしバンク1に対するアクセスと判定してバンク制御回路21のコマンド生成部212へアクセス情報’DAT-b1’を通知する。そして、次にコマンド生成部212は、一連のコマンド列を生成する逐次処理を起動する。
この後のバンク制御部21はバンク制御部20と同じ動作をするが、バンク制御部20とバンク制御部21とで異なるバンクに対するコマンドがパイプラインで生成されることになる。ここで、DDRタイミング規格保持回路10はtRASが7クロック幅’tRAS[7]’であることを通知しているが、バンク0に対応する入れ子タイミング調整回路201はバンク0以外のコマンドとの競合を回避するべく10クロック幅’tRAS[10]’を通知している。このため、コマンド生成部202はtRASに対して10クロック幅を選択する。
その時、ACTが3クロック幅’ACT[3]’、OPENステートが1クロック幅’OPEN[1]に決定しているため、入れ子タイミング調整回路201は、ACTの前縁からPREの前縁まで10クロック幅になるように、DELAYを6クロック幅’DELAY[6]’に調整する。また、Activeコマンドと別のバンクに対するActiveコマンド間隔の規格tRRDのクロック幅もタイミング情報を元に4クロック幅’tRRD[4]’とされる。
その後、4クロック間隔でACK信号L4を1にアサートし、異なるバンクに対するアドレスを入力していくと、コマンド生成部202,212,222,232からバンク0,1,2,3の一連のコマンド列が出力される。OR回路302は、これらのコマンド列を論理ORするのでコマンドが競合することなく、端子コントローラ4へ出力される。この時、コマンド生成部202,212,222,232のステートACT、OPEN、DELAY、PREのクロック幅は同じとなる。端子コントローラ4とDDRメモリ5の間のデータラインDQではWriteコマンドの1クロック後2バースト(1クロック幅)のデータが転送される。
(2.2)4バースト長の場合(図5)
ローカル側インタフェースの設定によりバースト長4を指定し、またDDRメモリも4バースト・モードに初期設定される。このケースでは、バンクの切替りがあり4バースト・モードのため、ACTから10クロック幅カウントすると、DELAYのクロック幅は5クロックとなる。
ローカル側インタフェースの設定によりバースト長4を指定し、またDDRメモリも4バースト・モードに初期設定される。このケースでは、バンクの切替りがあり4バースト・モードのため、ACTから10クロック幅カウントすると、DELAYのクロック幅は5クロックとなる。
ローカル側インタフェースのライトリクエストL2、アドレスL1、ACK信号L4のタイミングは図3と全く同じである。また、入れ子タイミング調整回路201は、OPEN時間とDELAY時間と除いて、2バースト長のライトアクセスと同じタイミング情報を通知する。OPENが2クロック幅’OPEN[2]’になるように調整されるのは、4バーストのクロック幅(CLK_2Xで4クロック幅)にOPENの幅を合わせるからである。この結果、PREの前縁のタイミングは2バースト長のライトアクセスと同じなのでDELAYは1クロック幅短い5クロック幅’OPEN[5]’となる。
OR回路302から端子コントローラ4へ出力されるコマンド3aのタイミングも2バースト長のライトアクセス時と同じになる。端子コントローラ4とDDRメモリ間のデータラインDQではWriteコマンドの1クロック後に4バースト(2クロック幅)のデータが転送される。
(2.3)8バースト長の場合(図6)
ローカル側インタフェースの設定によりバースト長8を指定し、またDDRメモリも8バースト・モードに初期設定される。このケースでは、バンクの切替りがあり8バースト・モードのため、ACTから10クロック幅カウントすると、DELAYのクロック幅は5クロックとなる。DELAY時間は3クロックとなる。
ローカル側インタフェースの設定によりバースト長8を指定し、またDDRメモリも8バースト・モードに初期設定される。このケースでは、バンクの切替りがあり8バースト・モードのため、ACTから10クロック幅カウントすると、DELAYのクロック幅は5クロックとなる。DELAY時間は3クロックとなる。
OPENは4クロック幅’OPEN[4]’になるように調整される。それは、8バーストのクロック幅(CLK_2Xで8クロック幅)にOPENの幅を合わせるからである。その結果、PREの前縁のタイミングは2バースト長のライトアクセス時と同じなのでDELAYは3クロック幅短い3クロック幅’OPEN[3]’となる。
端子コントローラ4とDDRメモリ間のデータラインDQではWriteコマンドの1クロック後に8バースト(4クロック幅)のデータが転送される。この時、端子コントローラ4とDDRメモリ間のデータラインは隙間無くバースト転送が連続することになる。
(3)同一バンク(バンク0)の連続アクセス
このケースでは、同一バンクへの連続アクセスであるため、DELAYのクロック幅はtWRに1クロックを足した3クロックとなる。
このケースでは、同一バンクへの連続アクセスであるため、DELAYのクロック幅はtWRに1クロックを足した3クロックとなる。
(3.1)2バースト長の場合(図7)
図7は、ローカル側インタフェースの要求によりバンク0のみで2バースト長のライトアクセスを5連続で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。この動作例では、5連続で起動信号1aが出力されるので、ACT→OPEN→OPEN→OPEN→OPEN→OPEN→DELAY→PREの順にステートが遷移する。
図7は、ローカル側インタフェースの要求によりバンク0のみで2バースト長のライトアクセスを5連続で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。この動作例では、5連続で起動信号1aが出力されるので、ACT→OPEN→OPEN→OPEN→OPEN→OPEN→DELAY→PREの順にステートが遷移する。
ローカル側インタフェースは、最初のアドレス’ADD-b0’を出力した後、5クロック目でACK信号L4の1アサートを検出し6クロック目で次のアドレス’ADD-b0’を出力する。この時、ライトリクエストL2は1にアサートされたままなので、再びライトアクセス処理が起動し、リード・ライト切替検出回路304にはライトアクセス中’WRITE’であることが記録される。また、アドレスL1により再びバンク0のアドレス’ADD-b0’が入力する。
ここで、バンク管理部3内部のバンクアドレス切替検出回路303は6クロック目でアドレス’ADD-b0’とアドレス’ADD-b0’を比較するが、アクセスするバンクの切り替わりを検出できないので、アクティブ信号3bは0のままである。その結果、コマンド生成回路202は、ライトリクエストL2が1にアサートされたままで、かつ信号3bが0なので、同じバンクへのライトアクセスが連続すると判断し、6クロック目の1クロック幅のOPEN’OPEN[1]’の後、7クロック目でもOPENに移る。
また、ACK出力タイミング回路301は、同じバンクへのライトアクセスまたはリードアクセスが連続する時は、OPENが終了する1クロック前、即ち6クロック目でACK信号L4を1クロック間1にアサートする。すると、ローカル側インタフェースは、6クロック目でACK信号L4の1アサートを検出し7クロック目で次のリクエストを行う。
これ以降、9クロック目までアドレス信号L1からバンク0、即ち同じバンクに対するアドレスを入力していくと、1クロック間隔でACK信号L4を1にアサートし、コマンド生成部202から1クロック間隔で連続するバンク0へのWriteコマンド2aがOR回路302を介して端子コントローラ4へ出力される。
端子コントローラ4とDDRメモリ5の間のデータラインDQではWriteコマンドの1クロック後に2バースト(1クロック幅)のデータが転送され、Writeコマンドが1クロック間隔で出力されるため、端子コントローラ4とDDRメモリ5の間のデータラインは隙間無くバースト転送が連続する。10クロック目はライトリクエストL2が0にディアサートされて、ライトアクセスが一時的に間欠になる動作は、図3に示した間欠動作と内容が類似するため説明を省略する。
(3.2)4バースト長の場合
この場合の図示は省略するが、ACT→OPEN→OPEN→OPEN→DELAY→PREの順にステートが遷移する。
この場合の図示は省略するが、ACT→OPEN→OPEN→OPEN→DELAY→PREの順にステートが遷移する。
OPENは2クロック幅’OPEN[2]’になるように調整される。その結果、最初のリクエストに対してACK出力タイミング回路301が5クロック目でACK信号L4に1クロック間1をアサートした後、2クロック幅のOPENに対応して、OPENが終了する1クロック前、即ち2クロック間隔でACK信号L4を1にアサートし、Writeコマンドも2クロック間隔で連続する。
その一連のコマンド列はOR回路302から端子コントローラ4へ出力される。端子コントローラ4とDDRメモリ5の間のデータラインDQではWriteコマンドの1クロック後に4バーストのデータ(2クロック幅)が転送され、Writeコマンドが2クロック間隔で出力されるため、端子コントローラ4とDDRメモリ5の間のデータラインは隙間無くバースト転送が連続する。10クロック目はライトリクエストL2が0にディアサートされてライトアクセスが一時的に間欠になる動作は、図3に示した間欠動作と内容が類似するため説明を省略する。
(3.3)8バースト長の場合
この場合の図示は省略するが、ACT→OPEN→OPEN→DELAY→PREの順にステートが遷移する。
この場合の図示は省略するが、ACT→OPEN→OPEN→DELAY→PREの順にステートが遷移する。
OPENは4クロック幅’OPEN[4]’になるように調整される。その結果、最初のリクエストに対してACK出力タイミング回路301が5クロック目でACK信号L4を1クロック間だけ1にアサートした後、4クロック幅のOPENに対応して、OPENが終了する1クロック前、即ち4クロック間隔でACK信号L4を1にアサートし、Writeコマンドも4クロック間隔で連続する。
その一連のコマンド列はOR回路302から端子コントローラ4へ出力される。端子コントローラ4とDDRメモリ5の間のデータラインDQではWriteコマンドの1クロック後に8バーストのデータ(4クロック幅)が転送され、Writeコマンドが4クロック間隔で出力されるため、端子コントローラ4とDDRメモリ5の間のデータラインは隙間無くバースト転送が連続する。
(4)同一バンクの連続ライトアクセスから異なるバンクのライトアクセス更に異なるバンクの連続ライトアクセス
(4.1)2バースト長の場合(図8)
図8は、ローカル側インタフェースの要求により同一バンク(バンク0)のみでライトアクセスを5連続で実行した後、異なるバンク(バンク2)のライトアクセスを1回実行し、更に異なる同一バンク(バンク3)のみでライトアクセスを連続で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。
(4.1)2バースト長の場合(図8)
図8は、ローカル側インタフェースの要求により同一バンク(バンク0)のみでライトアクセスを5連続で実行した後、異なるバンク(バンク2)のライトアクセスを1回実行し、更に異なる同一バンク(バンク3)のみでライトアクセスを連続で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。
このケースでは、全てのアクセスが2バースト長であるが、バンクの切替りが2回あるため、切替り前のアクセスに対するDELAY時間は図4と同じ理由から6クロック、最後のアクセスに対するDELAY時間は図7と同じ理由から3クロックに調整される。図8に示すDDRタイミングは第1回目のアクセスに対するものである。
2〜9クロックまでの動作は、同一バンク(バンク0)のみで2バースト長のライトアクセスの5連続実行であり、図7における2〜9クロックまでの動作と同一となる。バンク管理部3のバンクアドレス切替検出回路303は6クロック目から9クロック目まで前後のアドレスとアドレスを比較するが、いずれも’ADD-b0’であってアクセスするバンクの切り替わりを検出できないので、アクティブ信号3bは0のままである。
次に、10クロック目は、異なるバンク(バンク2)のライトアクセスとなり、バンクアドレス切替検出回路303は10クロック目でアドレス’ADD-b0’とアドレス’ADD-b2’を比較して、アクセスするバンクが切り替わったことを検出するので、アクティブ信号3bを1クロック間だけ1にアサートして通知する。リンク管理部3のACK出力タイミング回路301はACK信号L4を0にディアサートする。アクティブ信号3bは入れ子タイミング回路201、211、221、231の全てに同時に入力するが、逐次処理が行われているコマンド生成回路202に対応する入れ子タイミング回路201のみがバンク0へのライトアクセスを終了させる通知を行う。その結果、コマンド生成回路202のOPENは11クロック目で終了しDELAYへ移る。
また、10クロック目では同時にリクエスト制御回路1が、アドレス’ADD-b2’をデコードしバンク2に対するアクセスと判定して、ライトリクエスト信号1bによりバンク制御回路21のコマンド生成部222へアクセス情報’DAT-b2’(図示省略)を通知する。そして、コマンド生成部222は、一連のコマンド列を生成する逐次処理を起動する。この結果、バンク制御部20とバンク制御部22とで異なるバンクに対するコマンドがパイプラインで生成され、その動作は図4に示した10から13クロック目までの動作と同一となる。
バンク0に対応する入れ子タイミング調整回路201はバンク0以外のコマンドとの競合を回避するため、2回目のアクセスに対しては、10クロック幅’tRAS[10]’を通知し、図4の説明と同じ理由からコマンド生成部202はDELAYを6クロック幅’DELAY[6]’に調整する(図示省略)。14クロック目以降の動作は再び同一バンク(バンク3)のみで2バースト長のライトアクセスの連続実行である。18クロック目以降でアドレス’ADD-b3’とアドレス’ADD-b3’を比較するが、アクセスするバンクの切り替わりを検出できないので、アクティブ信号3bは0のままである。
この時、バンク3に対応する入れ子タイミング調整回路231は18クロック目で異なるバンクから同一バンクのみの連続アクセスになる動作を検出しコマンド生成部232へ通知する。この通知はバンク3以外のコマンドとの競合を回避するためのもので、コマンド生成部232は18クロック目のOPENの後に、19クロック目からDELAYに移り、DELAYを3クロック幅’DELAY[3]’に調整する。
このDELAYに移る動作が図7および本図の6クロック目におけるOPENの後に後続の4つのOPENを直結させる動作と異なる例外処理(図2参照)となる。これは、図7および本図の6〜9クロック目におけるのと同様に、18クロック目のOPENに後続のOPENを直結させると、コマンドの競合が起きるからである。
ACK出力タイミング回路301は、ライトアクセスの連続実行であるにも拘らず、上記のDELAYが終了する1クロック前、即ち21クロック目までACK信号L4をディゼーブルとしてアドレスL1の入力を差し止め、21クロック目でACK信号L4を1にアサートする。22クロック目以降は、OPENの後にDELAYに移ることは無く、同一バンク(バンク3)のみで2バースト長のライトアクセスの連続実行の動作(図7)と同一となる。
(4.2)4バースト長の場合
ローカル側インタフェースの要求により同一バンク(バンク0)のみでライトアクセスを3連続で実行した後、異なるバンク(バンク2)のライトアクセスを1回実行し、更に異なる同一バンク(バンク3)のみでライトアクセスを連続で実行する場合について簡単に説明する。
ローカル側インタフェースの要求により同一バンク(バンク0)のみでライトアクセスを3連続で実行した後、異なるバンク(バンク2)のライトアクセスを1回実行し、更に異なる同一バンク(バンク3)のみでライトアクセスを連続で実行する場合について簡単に説明する。
この場合の図示は省略するが、バンク0ではACT→OPEN→OPEN→OPEN→DELAY→PREの順に、バンク2ではACT→OPEN→DELAY→PREの順に、バンク3ではACT→OPEN→OPEN〜→DELAY→PREの順に、それぞれのステートが遷移する。このケースでは、全てのアクセスが4バースト長であるが、バンクの切替りが2回あるため、切替り前のアクセスに対するDELAY時間は図5と同じ理由から5クロック、最後のアクセスに対するDELAY時間は図7と同じ理由から3クロックに調整される。
バンク制御部20とバンク制御部22とで異なるバンクに対するコマンドがパイプラインで生成され、その動作は図5の10から19クロック目までのバンク制御部21とバンク制御部22とバンク制御部23の動作と同一となる。また、このケースにおいても、(4.1)で説明したのと同様に例外処理(図2参照)が行われる。
(4.3)8バースト長の場合
ローカル側インタフェースの要求により同一バンク(バンク0)のみでライトアクセスを2連続で実行した後、異なるバンク(バンク2)のライトアクセスを1回実行し、更に異なる同一バンク(バンク3)のみでライトアクセスを連続で実行する場合について簡単に説明する。
ローカル側インタフェースの要求により同一バンク(バンク0)のみでライトアクセスを2連続で実行した後、異なるバンク(バンク2)のライトアクセスを1回実行し、更に異なる同一バンク(バンク3)のみでライトアクセスを連続で実行する場合について簡単に説明する。
この場合の図示は省略するが、バンク0ではACT→OPEN→OPEN→DELAY→PREの順に、バンク2ではACT→OPEN→DELAY→PREの順に、バンク3ではACT→OPEN→OPEN〜→DELAY→PREの順に、それぞれのステートが遷移する。このケースでは、全てのアクセスが8バースト長であるが、バンクの切替りが2回あるため、切替り前のアクセスに対するDELAY時間は図6と同じ理由から、最後のアクセスに対するDELAY時間は図7と同じ理由から3クロックに調整される。
バンク制御部20とバンク制御部22とバンク制御部2とで異なるバンクに対するコマンドがパイプラインで生成され、その動作は図6の10から19クロック目までのバンク制御部21とバンク制御部22とバンク制御部23の動作と同一となる。
(5)異なるバンク間での交互のライトアクセスとリードアクセス
ローカル側インタフェースの要求によりバンク0ライト→バンク1リード→バンク2ライト→バンク3リード→バンク0ライト・・・・の順でライトアクセスとリードアクセスを交互に連続で実行する場合について説明する。
ローカル側インタフェースの要求によりバンク0ライト→バンク1リード→バンク2ライト→バンク3リード→バンク0ライト・・・・の順でライトアクセスとリードアクセスを交互に連続で実行する場合について説明する。
(5.1)2バースト長の場合(図9)
図9は、2バースト長のライトアクセスと2バースト長のリードアクセスを交互に連続で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。このケースでは、バンクの切替りとライトアクセスとードアクセスの切替りとが同時に起こるが、本発明はライトアクセスとリードアクセスの切替りによって影響を受けないことは前述のとおりである。従って、このケースは(2.1)異なるバンク(バンク0→1→2→3)の2バースト長連続ライトアクセスの場合(図4)と略同じである。
図9は、2バースト長のライトアクセスと2バースト長のリードアクセスを交互に連続で実行する本DDRメモリコントローラの動作を示すタイミングチャートである。このケースでは、バンクの切替りとライトアクセスとードアクセスの切替りとが同時に起こるが、本発明はライトアクセスとリードアクセスの切替りによって影響を受けないことは前述のとおりである。従って、このケースは(2.1)異なるバンク(バンク0→1→2→3)の2バースト長連続ライトアクセスの場合(図4)と略同じである。
実際、図9を図2と対比しても、DDRコマンド2a〜2dおよび状態遷移情報2e〜2hに違いはない。唯一の違いは、リードデータr0,r1はライトデータw0,w1より1クロック分だけ遅れて出力されるということである。なお、ライトアクセスからリードアクセスへ移る時、リードデータの終わりからWriteコマンド間隔の規格tWTRのクロック幅の調整が加わり、2クロック幅’tWTR[2]’に調整する。また、リードアクセスからライトアクセスへ移る時、ReadコマンドとWriteコマンド間隔のクロック幅の調整が加わり、4クロック幅’Read-Write間隔[4]’に調整する。しかし、これらの調整は、これ以外の調整の結果に埋没する。
(5.2)4バースト長の場合
この場合の図示は省略するが、(5.1)2バースト長の場合(図9)の場合と同じ理由により、(2.2)異なるバンク(バンク0→1→2→3)の4バースト長連続ライトアクセスの場合(図5)と略同じである。
この場合の図示は省略するが、(5.1)2バースト長の場合(図9)の場合と同じ理由により、(2.2)異なるバンク(バンク0→1→2→3)の4バースト長連続ライトアクセスの場合(図5)と略同じである。
なお、ライトアクセスからリードアクセスへ移る時、リードデータの終わりからWriteコマンド間隔の規格tWTRのクロック幅の調整が加わり、2クロック幅’tWTR[1]’に調整する。また、リードアクセスからライトアクセスへ移る時、ReadコマンドとWriteコマンド間隔のクロック幅の調整が加わり、4クロック幅’Read-Write間隔[4]’に調整する。しかし、これらの調整は、これ以外の調整の結果に埋没する。
(5.3)8バースト長の場合
2クロック目から始まる最初のライトアクセス処理では、コマンド生成回路202の動作は、(2.3)異なるバンク(バンク0→1→2→3)の8バースト長連続ライトアクセス場合(図6)と略同じである。このケースでは、図9の最下段に示す、データバスDQ上におけるライトデータとリードデータの競合が発生し、Write-To-Read間隔tWTRおよびRead-Write間隔が満たすべきタイミング情報として加わってくる。
2クロック目から始まる最初のライトアクセス処理では、コマンド生成回路202の動作は、(2.3)異なるバンク(バンク0→1→2→3)の8バースト長連続ライトアクセス場合(図6)と略同じである。このケースでは、図9の最下段に示す、データバスDQ上におけるライトデータとリードデータの競合が発生し、Write-To-Read間隔tWTRおよびRead-Write間隔が満たすべきタイミング情報として加わってくる。
6クロック目で切り替わったバンク1のリードアクセス処理では、リードリクエストL3が間欠なく連続で1にアサートされたままで、リード・ライト切替検出回路304がライトアクセスからリードアクセスに切り替わったことを検出すると、バンク1以外のコマンドとの競合を回避するため、入れ子タイミング調整回路211がACTの後にDELAYに移るように通知する。これは、Write-To-Read間隔tWTR[3]を満たすための措置である。
コマンド生成部212はACTステート’ACT[3]’の後、10クロック目からDELAYに移り、4クロック幅のDELAY’DELAY[4]’調整する。このDELAYに移る動作が、ACTの後にOPENに移る動作と異なる例外処理となる。ACK出力タイミング回路301はそのDELAYが終了する1クロック前、即ち、13クロック目でACK信号L4を1クロックの間だけ1にアサートする。ACK信号L4を1にアサートした1クロック後にOPENが開始される。14クロック目でコマンド生成部212はOPENに移り、その後の動作は図6における10クロック目以降の動作と同じである。
また、14クロック目で切り替わったバンク2のライトアクセス処理では、ライトリクエストL2が間欠なく連続で1にアサートされたままで、リード・ライト切替検出回路304がリードアクセスからライトアクセスに切り替わったことを検出すると、バンク2以外のコマンドとの競合を回避するため、入れ子タイミング調整回路221がACTの後にDELAYに移るように通知する。これは、Read-Write間隔[4]を満たすための措置である。
コマンド生成部222はACTステート’ACT[3]’の後、18クロック目からDELAYに移り、4クロック幅のDELAY’DELAY[4]’調整する。このDELAYに移る動作が、ACTの後にOPENに移る動作と異なる例外処理となる。ACK出力タイミング回路301はそのDELAYが終了する1クロック前、即ち、21クロック目でACK信号L4を1クロックの間だけ1にアサートする(図示省略)。ACK信号L4を1にアサートした1クロック後にOPENが開始される。22クロック目でコマンド生成部212はOPENに移り(図示省略)、その後の動作は図6における14クロック目以降の動作と同じである。
以上、(1)〜(5)に代表的な動作モードについて説明してきたが、この他、同一バンクのみでライトアクセスとリードアクセスが交互に連続で実行する本DDRメモリコントローラの動作等については説明を省略する。しかし、その詳細は、ここまでの説明から容易に類推可能であろう。
また、以上に説明した実施例では、DDRメモリコマンドのタイミング規格情報は、その一設定値を使用しているが、別の設定値を使用しても差し支えない。
本発明は、以上に詳述したように、一連のDDRコマンド列を生成する逐次処理のステート間隔をタイミング規格情報に基づき、動作モードに応じて各バンクに対するコマンドが同一クロックで競合せず入れ子状態になるように調整してコマンドを生成する。この結果、単純な回路構成によって、複数のDDRコマンド列間におけるDDRコマンド同士が同一クロックで競合するのを回避することができる。
また、DDRコマンドが優先順位回路を経由しないため、アクセス要求からコマンド発行までのスループットがDDRメモリの各バンクに対して一定かつ最短になり、効率的なデータ転送が行えるようになる。
本発明の利用分野として、DDRメモリの全てのバンクを均一にデータ転送して使用する画像データ記録用装置のメモリコントローラが挙げられる。
1 リクエスト制御回路
3 バンク管理部
4 端子コントローラ
5 DDRメモリ
10 DDRタイミング規格保持回路
20〜23 バンク制御部
201,211,221,231 入れ子タイミング調整回路
202,212,221,232 コマンド生成部
301 ACK出力タイミング回路
302 OR回路
303 バンクアドレス切替検出回路
304 リードライト切替検出回路
3 バンク管理部
4 端子コントローラ
5 DDRメモリ
10 DDRタイミング規格保持回路
20〜23 バンク制御部
201,211,221,231 入れ子タイミング調整回路
202,212,221,232 コマンド生成部
301 ACK出力タイミング回路
302 OR回路
303 バンクアドレス切替検出回路
304 リードライト切替検出回路
Claims (8)
- 個別に動作することができる複数のバンクで構成されるDDRメモリとバンク共通バスで接続されたDDRメモリコントローラにおいて、
前記バンク対応のライトリクエストまたはリードリクエストを逐次に受けると、動作モードに応じて一連のDDRコマンド列Activeコマンド-Write(Read)コマンド-Prechargeコマンドを逐次に発行し、その際に該DDRコマンド同士が前記バンク共通バス上で競合しないように、前記Activeコマンド,Write(Read)コマンド,Prechargeコマンドの発行タイミングを調整してパイプライン処理することを特徴とするDDRメモリコントローラ。 - 個別に動作することができる複数のバンクで構成されるDDRメモリとバンク共通バスで接続され、前記バンクと1対1対応のバンク制御部を設けたDDRメモリコントローラにおいて、
前記バンクに対するDDRコマンドを発行するためのタイミング規格情報を予め保持しているDDRタイミング規格保持回路と、
外部からアドレス信号とライトリクエストまたはリードリクエストを入力して、アドレス信号をデコードした結果により、前記バンク制御部のいずれか一つに対し、アドレス信号とライトアクセスまたはリードアクセスの起動信号を通知するリクエスト制御回路と、
前記起動信号を受けると、前記タイミング規格情報による条件を満たし、かつ動作モードに応じて一連のDDRコマンド列Activeコマンド-Write(Read)コマンド-Prechargeコマンドを発行し、その際に該DDRコマンド同士が前記バンク共通バス上で競合しないように、前記Activeコマンド,Write(Read)コマンド,Prechargeコマンドの発行タイミングを調整してパイプライン処理すると共に、動作状態を示す状態遷移情報を出力する前記バンク制御部と、
全ての前記バンク制御部からのActiveコマンド,Write(Read)コマンド,Prechargeコマンドを論理ORして前記バンク共通バスへ出力し、また前記アドレス信号と前記ライトリクエストまたはリードリクエストと全ての前記バンク制御部からの前記状態遷移情報により、前記外部と前記リクエスト制御回路と全ての前記バンク制御部を制御するための信号を出力するバンク管理部を有することを特徴とするDDRメモリコントローラ。 - 前記動作モードは、アクセスバースト長,間欠アクセスと連続アクセスの別,同一バンクアクセスと異バンクアクセスの切替り,ライトアクセスとリードアクセスの切替りおよびこれら組み合わせにより定められることを特徴とする請求項1〜2に記載のDDRメモリコントローラ。
- 前記動作状態は、
当初のアイドル状態であるCLOSEステートと、
前記ライトリクエストまたはリードリクエストの入力があると前記CLOSEステートから遷移し、前記Activeコマンドから前記Writeコマンドまたは前記Readコマンドまでの経過時間tRCDのクロック長だけ留まるACTステートと、
前記ACTステートから遷移し、アクセスバースト長2,4,8に対応して1,2,4クロック長の時間だけ留まるが、同一バンクの連続アクセスに応じて繰り返してこの状態を維持するOPENステートと、
前記OPENステートから遷移し、滞留時間が前記コマンドの競合を回避するように調整されるDELAYステートと、
前記DELAYステートから遷移し、前記Prechargeコマンドから次のActiveコマンドの入力が可能となるまでの経過時間tRPのクロック長から1クロック長を減じた時間だけ滞留した後に前記CLOSEステートへ遷移するPREステートを有し、
前記ACTステート,前記OPENステート,前記PREステートの各1クロック目で、それぞれ前記Activeコマンド,Write(Read)コマンド,Prechargeコマンドが発行されることを特徴とする請求項2〜3に記載のDDRメモリコントローラ。 - 前記OPENステートは、その滞留時間が前記アクセスバースト長2,4,8に対応して1,2,4の固定クロック長とされ、また同一バンクの連続アクセスに応じて繰り返されることを特徴とする請求項4に記載のDDRメモリコントローラ。
- 前記DELAYステートは、同一バンクへの連続アクセスであれば、ライトリカバリ時間tWRに1クロック幅を加えた時間、異なるバンクへの連続アクセスあれば、前記ACTステートからカウントし、10クロック幅、または前記ActiveコマンドからPrechargeコマンド入力までに満足すべき経過時間tRASと同じクロック幅のどちらか大きい方のクロック幅だけ滞留することを特徴とする請求項4〜5に記載のDDRメモリコントローラ。
- 前記バンク制御部は、
前記リクエスト制御回路から起動信号が入力すると、前記バンク管理部による制御の下に、当該バンク制御部と他のバンク制御部が発行するDDRコマンドが競合しないように、前記動作モードでタイミング規格情報を加工したタイミング情報を出力する入れ子タイミング調整回路と、
前記タイミング情報により前記動作状態を遷移し、この状態遷移に連動して、遷移の1クロック目で生成した一連のDDRコマンドと前記状態遷移情報をバンク管理部へ出力するコマンド生成部を有することを特徴とする請求項2〜6に記載のDDRメモリコントローラ。 - 前記バンク管理部は、
前記論理ORを行なうOR回路と、
前記状態遷移情報により次のアクセス要求を受け付けるためのタイミングを調整し、前記ライトリクエストまたはリードリクエストが受け付けられたことを通知するACK信号を前記外部へ出力するACK出力タイミング回路と、
前記アドレス信号によりバンクアドレスの切替りを検出するとアクティブ信号を全ての前記入れ子タイミング調整回路へ出力するバンクアドレス切替検出回路と、
前記ライトリクエストまたはリードリクエストと全ての前記バンク制御部からの前記状態遷移情報により、本DDRメモリコントローラの状態がライトアクセスとリードアクセスと停止中のいずれであるかを示す識別情報を全ての前記バンク制御部へ出力し、また前記識別情報が停止中であることを示すときに前記起動信号を抑止するためのディセーブル信号を前記バンク制御部へ出力するリード・ライト切替検出回路を有することを特徴とする請求項2〜7に記載のDDRメモリコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008322163A JP2010146252A (ja) | 2008-12-18 | 2008-12-18 | Ddrメモリコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008322163A JP2010146252A (ja) | 2008-12-18 | 2008-12-18 | Ddrメモリコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010146252A true JP2010146252A (ja) | 2010-07-01 |
Family
ID=42566637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008322163A Pending JP2010146252A (ja) | 2008-12-18 | 2008-12-18 | Ddrメモリコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010146252A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101412072B1 (ko) | 2011-08-08 | 2014-06-26 | 삼성전자주식회사 | 히든 타이밍 파라미터들을 관리하는 메모리 장치 |
US9177626B2 (en) | 2013-08-27 | 2015-11-03 | Naoki Shimizu | Semiconductor memory device |
JP2015198852A (ja) * | 2014-04-10 | 2015-11-12 | 株式会社オリンピア | 遊技機 |
CN109508307A (zh) * | 2017-09-14 | 2019-03-22 | 三星电子株式会社 | 高带宽存储系统 |
CN109582615A (zh) * | 2018-11-27 | 2019-04-05 | 浙江双成电气有限公司 | 一种ddr3控制系统 |
US11023136B2 (en) | 2018-09-19 | 2021-06-01 | Toshiba Memory Corporation | Storage device and control method |
CN114265797A (zh) * | 2021-12-01 | 2022-04-01 | 杭州海康存储科技有限公司 | 存储访问控制装置、硬盘设备及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215454A (ja) * | 2001-01-18 | 2002-08-02 | Toshiba Corp | 半導体装置 |
JP2006059046A (ja) * | 2004-08-19 | 2006-03-02 | Nec Computertechno Ltd | メモリの制御方式およびメモリ制御回路 |
-
2008
- 2008-12-18 JP JP2008322163A patent/JP2010146252A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215454A (ja) * | 2001-01-18 | 2002-08-02 | Toshiba Corp | 半導体装置 |
JP2006059046A (ja) * | 2004-08-19 | 2006-03-02 | Nec Computertechno Ltd | メモリの制御方式およびメモリ制御回路 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101412072B1 (ko) | 2011-08-08 | 2014-06-26 | 삼성전자주식회사 | 히든 타이밍 파라미터들을 관리하는 메모리 장치 |
US9177626B2 (en) | 2013-08-27 | 2015-11-03 | Naoki Shimizu | Semiconductor memory device |
US9460767B2 (en) | 2013-08-27 | 2016-10-04 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
JP2015198852A (ja) * | 2014-04-10 | 2015-11-12 | 株式会社オリンピア | 遊技機 |
CN109508307A (zh) * | 2017-09-14 | 2019-03-22 | 三星电子株式会社 | 高带宽存储系统 |
CN109508307B (zh) * | 2017-09-14 | 2024-01-05 | 三星电子株式会社 | 高带宽存储系统 |
US11893239B2 (en) | 2017-09-14 | 2024-02-06 | Samsung Electronics Co., Ltd. | Quasi-synchronous protocol for large bandwidth memory systems |
US11023136B2 (en) | 2018-09-19 | 2021-06-01 | Toshiba Memory Corporation | Storage device and control method |
CN109582615A (zh) * | 2018-11-27 | 2019-04-05 | 浙江双成电气有限公司 | 一种ddr3控制系统 |
CN109582615B (zh) * | 2018-11-27 | 2022-04-12 | 浙江双成电气有限公司 | 一种ddr3控制系统 |
CN114265797A (zh) * | 2021-12-01 | 2022-04-01 | 杭州海康存储科技有限公司 | 存储访问控制装置、硬盘设备及方法 |
CN114265797B (zh) * | 2021-12-01 | 2024-02-27 | 杭州海康存储科技有限公司 | 存储访问控制装置、硬盘设备及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5909701A (en) | Interface for high speed memory | |
JP2010146252A (ja) | Ddrメモリコントローラ | |
US6661721B2 (en) | Systems and methods for executing precharge commands using posted precharge in integrated circuit memory devices with memory banks each including local precharge control circuits | |
JPH11176164A (ja) | 半導体メモリ装置のデータマスキング方法とその回路、及び該回路を有する半導体メモリ装置 | |
JP2004524641A (ja) | リードデータ用のシステムレイテンシーレベライゼーション | |
EP2808801B1 (en) | Multiple data rate memory with read timing information | |
TWI655632B (zh) | 偽靜態隨機存取記憶體及其刷新的方法 | |
WO2016185879A1 (ja) | メモリ制御回路およびメモリ制御方法 | |
TW200522065A (en) | Semiconductor memory device for reducing address access time | |
JP4275033B2 (ja) | 半導体記憶装置とテスト回路及び方法 | |
JP2011146043A (ja) | 半導体装置、その装置を備える半導体システム、及びそのシステムの動作方法。 | |
JP3922487B2 (ja) | メモリ制御装置および方法 | |
JP4307894B2 (ja) | 同期式半導体メモリ装置のカラムデコーダ・イネーブルタイミングの制御方法及びその装置 | |
US7791963B2 (en) | Semiconductor memory device and operation method thereof | |
US7180822B2 (en) | Semiconductor memory device without decreasing performance thereof even if refresh operation or word line changing operation occur during burst operation | |
KR20120004699A (ko) | 반도체 메모리 장치 및 그 동작 방법 | |
US6948046B2 (en) | Access controller that efficiently accesses synchronous semiconductor memory device | |
US6859848B2 (en) | Circuit for controlling sequential access to SDRAM | |
JP4234126B2 (ja) | メモリ、メモリ・アクセス制御方法 | |
JP2002288117A (ja) | 同期型メモリに対するフライバイ転送を可能にするdma制御システム | |
JP2011034214A (ja) | メモリ制御装置 | |
JP4855908B2 (ja) | レイテンシーカウンター及び関連方法 | |
JP4225223B2 (ja) | メモリ制御装置および方法 | |
JP2012063874A (ja) | チップセレクト信号を切り替えるセレクタ、ストレージ装置、及び電子機器 | |
WO2016185878A1 (ja) | メモリ制御回路およびメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120628 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121017 |