JP2004310394A - Sdramアクセス制御装置 - Google Patents
Sdramアクセス制御装置 Download PDFInfo
- Publication number
- JP2004310394A JP2004310394A JP2003102399A JP2003102399A JP2004310394A JP 2004310394 A JP2004310394 A JP 2004310394A JP 2003102399 A JP2003102399 A JP 2003102399A JP 2003102399 A JP2003102399 A JP 2003102399A JP 2004310394 A JP2004310394 A JP 2004310394A
- Authority
- JP
- Japan
- Prior art keywords
- sdram
- command
- queue
- data bus
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】SDRAMに対する無駄なサイクルの発生を防止し、SDRAMの利用効率の向上できるSDRAMアクセス制御装置を提供する。
【解決手段】メモリアクセスリクエストを受け付けバンク別にSDRAMコマンドを生成するSDRAMコマンド生成手段2と、手段2からのコマンド実行要求を調停しSDRAMコマンドキューとデータバス使用キューの空き状況に応じて、該コマンド、データバス使用・方向フラグとライトアクセス時のライトデータを各キューに投入する調停・キューイング手段3と、該コマンドを投入された順番に逐次SDRAM8へ転送するSDRAMコマンドキュー手段4と、データバス使用・方向フラグとライトデータを保持し、投入された順番にライトアクセス時にはライトデータをSDRAM8へ送出し、リードアクセス時にはSDRAM8からリードデータを取り込むデータバス使用キュー手段5を備える。
【選択図】 図1
【解決手段】メモリアクセスリクエストを受け付けバンク別にSDRAMコマンドを生成するSDRAMコマンド生成手段2と、手段2からのコマンド実行要求を調停しSDRAMコマンドキューとデータバス使用キューの空き状況に応じて、該コマンド、データバス使用・方向フラグとライトアクセス時のライトデータを各キューに投入する調停・キューイング手段3と、該コマンドを投入された順番に逐次SDRAM8へ転送するSDRAMコマンドキュー手段4と、データバス使用・方向フラグとライトデータを保持し、投入された順番にライトアクセス時にはライトデータをSDRAM8へ送出し、リードアクセス時にはSDRAM8からリードデータを取り込むデータバス使用キュー手段5を備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、SDRAMデバイスに対してバンクインタリーブアクセスを実行できるSDRAMアクセス制御装置に関し、特に、メモリバス利用効率を向上できるSDRAMアクセス制御装置に関する。
【0002】
【従来の技術】
近年、コスト面と流通面から、パソコン用に大量に安価に流通しているSDRAMを民生用機器に採用することが多くなっている。SDRAMは、パソコンのCPUのキャッシュメモリとの転送効率を上げるために、同一ページ内の連続したアドレスへのバースト転送が可能に設計されている。これをASIC等で使用するためには、一連のSDRAM制御コマンドシーケンスをSDRAMに送出する制御装置が必要となる。
【0003】
このSDRAMへのアクセスを制御するSDRAMアクセス制御装置としては、例えば、下記の特許文献1や特許文献2に開示されたものが一般に知られている。この特許文献2に記載のSDRAMアクセス制御装置502は、図6に示すように、アービタ506とコマンド生成ブロック507とアドレス変換ブロック508とデータラッチブロック509から構成されており、ブロック504,505からのSDRAM8へのアクセスを制御している。
【0004】
ブロック504,505からのSDRAMアクセスリクエストがあるとアービタ506を通じてコマンド生成ブロック507でアクティブコマンド、プリチャージコマンド等のSDRAMコマンドを生成し、平行してアドレス変換ブロック508でロウアドレス、カラムアドレス、バンクアドレスを変換し、データラッチブロック509でリードデータ、ライトデータのラッチを行う。SDRAMの動作には、リードコマンド、ライトコマンドの前にアクティブコマンドとアクティブ動作時間分のウェイトサイクル、リードコマンドの後にはプリチャージコマンドとプリチャージ動作時間分のウェイトサイクル、ライトコマンドの後には、ライト処理のためのライトリカバリタイムの分のウェイトサイクルとプリチャージコマンドとプリチャージ動作時間分のウェイトサイクルが必要である。しかし、SDRAMはあるバンクにおいてコマンド実行中に別のバンクにおいてもコマンドの実行が可能である。ここで、アドレス変換ブロック508にて、アドレスのシフト演算を行い、連続するアクセスリクエストを別のバンクに割り振るようにする。これにより、あるバンクのプリチャージコマンド、アクティブコマンドの動作中に別のバンクのリードコマンド、ライトコマンド動作を行い、オーバヘッドなく連続してアクセスすることができる。
【0005】
【特許文献1】
特開平8−212170号公報
【特許文献2】
特開2000−315173号公報
【0006】
【発明が解決しようとする課題】
しかしながら、上記従来技術のSDRAMアクセス制御装置では、完全にランダムなメモリアドレスへメモリアクセスがリクエストされると、アドレス変換を行ったとしても、必ず交互のバンクへのアクセスが行われず、同一のバンクに対するアクセスが連続して発生することがあり得る。そうなると、図7に示すように、当該バンクへのプリチャージ動作とアクティブ動作が終了するまで次のアクセスを行うことができず、大きなオーバヘッドとなる。
【0007】
また、リクエストされるメモリアクセスがある程度規則性を持っていて、別バンクへの交互のアクセスが行われるとしても、当該リクエストの発生頻度によっては同一バンクに集中してアクセスが行われることになり、データバスの空いている無駄なサイクル、コマンドが実行可能であるのに実行できるコマンドのない無駄なサイクルが発生する。
【0008】
近年、SDRAMの価格低下によって、従来の汎用DRAMや高速SRAMをSDRAMで置き換えるケースが多くなっているが、これらの用途ではバースト転送時のバースト長が短く、アドレスの冗長度が高くなる。このような場合は、これらの無駄なサイクルが発生する傾向がより顕著になる。
【0009】
本発明は、上記問題点に鑑みてなされたもので、その目的は、SDRAMに対する無駄なサイクルの発生を防止し、SDRAMの各バンクの動作率とデータバスの利用効率を向上できるSDRAMアクセス制御装置を提供することにある。
【0010】
【課題を解決するための手段】
この目的を達成するための本発明に係るSDRAMアクセス制御装置は、アドレス空間が複数のバンクに分割されてなるSDRAMのアクセス制御を行うSDRAMアクセス制御装置において、前記複数のバンクに各別に対応し、独立して当該対応するバンクに対するメモリアクセスリクエストを受け付け、SDRAMコマンドを生成する複数のSDRAMコマンド生成手段と、前記複数のSDRAMコマンド生成手段からのSDRAMコマンド実行要求の競合を調停し、SDRAMコマンドキューとデータバス使用キューの空き状況に応じて、前記SDRAMコマンドを前記SDRAMコマンドキューに投入し、データバス使用・方向フラグとライトアクセス時のライトデータを前記データバス使用キューに投入する調停・キューイング手段と、前記調停・キューイング手段から投入された前記SDRAMコマンドを、前記SDRAMコマンドキューに保持し、投入された順番にクロックに同期して逐次前記SDRAMへ転送するSDRAMコマンドキュー手段と、前記調停・キューイング手段から投入された前記データバス使用・方向フラグと前記ライトデータを前記データバス使用キューに保持し、投入された順番に前記データバス使用・方向フラグに応じて、ライトアクセス時には前記ライトデータを前記クロックに同期して前記SDRAMへ送出し、リードアクセス時には前記SDRAMからリードデータを前記クロックに同期して取り込み保持するデータバス使用キュー手段と、を備えてなることを特徴とする。
【0011】
更に、本発明に係るSDRAMアクセス制御装置は、前記各SDRAMコマンド生成手段は、対応する前記バンクの状態を、直前に生成した前記SDRAMコマンドと前記SDRAM自体の状態遷移から算出して保持するステートレジスタと、前記バンクの状態がアクティブ状態のとき、選択されているページのロウアドレスを保持するロウアドレスレジスタを備え、また、前記バンクの状態が前記アクティブ状態において要求されたSDRAMアクセスリクエストのページが前記ロウアドレスレジスタに保持されているロウアドレスの属するページと同一のときは、プリチャージコマンドとアクティブコマンドの生成を抑止し、異なる場合にのみ前記プリチャージコマンドと前記アクティブコマンドを生成することを特徴とする。
【0012】
【発明の実施の形態】
本発明に係るSDRAMアクセス制御装置(以下、適宜「本発明装置」という。)の一実施の形態につき、図面に基づいて説明する。
【0013】
図1に示すように、本発明装置1は、複数のSDRAMコマンド生成部2(2a,2b,2c)と、調停・キューイング手段3と、SDRAMコマンドキュー手段4と、データバス使用キュー手段5を備えて構成されている。
【0014】
SDRAMコマンド生成部2は、本発明装置1の制御対象であるSDRAM8の複数のバンク(BANK0〜n)に対応してn個設けられており、SDRAM8にアクセスする上位ブロック(図示せず)から対応するバンクに対して要求されたSDRAM8に対するメモリアクセスリクエストを受け付け、当該リクエストに対応したSDRAMコマンド(アクティブコマンド、プリチャージコマンド、リードコマンド、ライトコマンド、リフレッシュコマンド等のSDRAM固有の制御コマンド)を生成する。
【0015】
また、各SDRAMコマンド生成部2は、各SDRAMコマンド生成部2が次に生成可能なSDRAMコマンドを求めるために参照するステートレジスタ6と、SDRAMコマンド生成部2に要求されたメモリアクセスリクエストが直前にアクセスしたページと同一ページに対するものかどうかを判定するために参照するロウアドレスレジスタ7を備えている。ステートレジスタ6は、SDRAMコマンド生成部2が直前に生成したSDRAMコマンドとSDRAM8自体の状態遷移から、SDRAM8の対応するバンク内の該当ページの現在の状態を求めて保持する。ロウアドレスレジスタ7は、対応するバンクの状態がアクティブ状態のとき、選択されているSDRAM8の該当ページのロウアドレスを保持する。
【0016】
更に、各SDRAMコマンド生成部2は、ステートレジスタ6のバンクの状態がアクティブ状態において要求されたSDRAMアクセスリクエストのページがロウアドレスレジスタ7に保持されているロウアドレスの属するページと同一のときは、プリチャージコマンドとアクティブコマンドの生成を抑止し、異なる場合にのみプリチャージコマンドとアクティブコマンドを生成するように構成されている。これにより無駄なコマンド生成が防止できる。
【0017】
調停・キューイング手段3は、SDRAMコマンド生成手段2から送出されたSDRAMコマンドによるSDRAMコマンド実行要求を受け付け、当該要求が競合する場合にこれらを調停し、コマンド実行順序(優先順)を決定する。また、SDRAMコマンドキュー手段4とデータバス使用キュー手段5が夫々保持するキュースロットの空き状況に応じて、当該コマンド実行順序に従い、受け付けたSDRAMコマンドをSDRAMコマンドキュー手段3に送出し、データバス使用・方向フラグとライトアクセス時のライトデータをデータバス使用キュー手段4に送出する。
【0018】
SDRAMコマンドキュー手段4は、調停・キューイング手段3から送出されたSDRAMコマンドを、SDRAMコマンドキューのスロットに一旦保持し、受け付けた順番にクロックに同期して逐次SDRAM8へ転送する。
【0019】
データバス使用キュー手段5は、調停・キューイング手段3から送出されたデータバス使用・方向フラグとライトデータを受け取りデータバス使用キューのスロットに一旦保持し、データバス使用・方向フラグの値に応じてデータバスの入出力制御を行う。具体的には、受け付けた順番に、ライトアクセス時にはライトデータをクロックに同期してSDRAM8へ送出し、リードアクセス時にはSDRAM8からリードデータをクロックに同期して取り込み保持し、上位ブロック(図示せず)に転送する。
【0020】
次に、本発明装置1の各手段2〜5の動作について説明する。
【0021】
上位ブロックから本発明装置1に対して要求されたメモリアクセスリクエストは、メモリアドレスのバンクフィールドの値をもとに分岐し、対応するバンクのSDRAMコマンド生成部2にメモリアドレスとともに格納される。また、当該メモリアクセスリクエストがライトアクセスの場合は、ライトデータも同時に対応するバンクのSDRAMコマンド生成部2に格納される。
【0022】
ここで、SDRAMコマンド生成部2は、ステートレジスタ6を参照して担当するSDRAM8のバンクの現在の状態から、次に生成可能なSDRAMコマンドを求め、調停・キューイング手段3にSDRAMコマンド要求を送出する。例えば、現在のSDRAM8の状態がプリチャージコマンド実行完了状態の時にリードやライトのメモリアクセスリクエストがあれば、アクティブコマンド要求を送出し、当該リクエストの対象ページと同一ページがアクティブ状態であれば即座にリードコマンドまたはライトコマンド要求を送出する。プリチャージコマンド実行状態やライトリカバリタイム等コマンドの実行が不可能なときは当該バンクの状態がコマンド実行可能となるまでコマンド要求を保持し調停・キューイング手段3には送出しない。
【0023】
次に、SDRAMコマンド生成部2から送出されたSDRAMコマンド要求は、調停・キューイング手段3においてSDRAMコマンドの実行順序が決定され、SDRAMコマンドキュー手段4のSDRAMコマンドキューに投入される。また、SDRAMデータバス9を使用するリードコマンドとライトコマンドでは、コマンドでバスが使用される期間を示すデータバス使用フラグとデータバスの向きを示すデータバス方向フラグがセットされる。
【0024】
上記の動作を図2、図3に基づき説明する。尚、本説明では、CASレイテンシが2、バースト長が4の場合を想定する。
【0025】
図2、図3に示すように、SDRAMコマンドキューは現在実行中のSDRAMコマンドと次のSDRAMコマンドを、またデータバス使用キューは現在実行中のコマンドによるデータバスの使用状態と、これから実行されるコマンドによるデータバス使用予定状態を示すフラグが保持されている。
【0026】
先ず、ライトコマンド要求が入力された場合、図2に示すように、ライトコマンドはコマンドから4クロック分バスを占有するため(バースト長が4)、データバス使用キューに連続する4クロック分の空きがあるかどうかを比較する。また、データバスの入出力の切替えに1クロックを要するので、次のサイクルでデータを出力させるため現在のデータバスの状態が入力になっていないかどうか(出力もしくは空き状態であるか)を比較する。この比較結果が一致したならば、ライトコマンドが実行可能として、SDRAMコマンドキューにライトコマンドを、データバス使用キューに連続する4サイクル分の出力フラグをセットする。比較結果が一致しない場合、以前のSDRAMコマンドによるデータバスの使用が続いているとして、新たなSDRAMコマンドを各キューに投入せずに次のクロックを待つ。
【0027】
図3に示すように、リードコマンド要求が入力された場合も、同様にコマンド実行からCASレイテンシ分の2クロック後から4クロック分の空きとその直前のデータバスの向きを比較して、空きがあればコマンドをSDRAMコマンドキューに投入する。また、プリチャージコマンド、アクティブコマンド、リフレッシュコマンドはデータバスを使用しないので、データバス使用キューのフラグの値によらずにSDRAMコマンドキューにセットする。尚、SDRAMコマンド生成部2はSDRAM8のバンクの数だけ用意されているので、複数のバンクからのSDRAMコマンド要求が競合して調停・キューイング手段3に入力された場合は、調停により決定されたコマンド実行順序(優先順)に従い処理される。SDRAMコマンドキューにセットされた値はクロックにより1段ずつ右シフトされ、逐次SDRAM8へ転送され、SDRAM8にて当該SDRAMコマンドが実行される。データバス使用キューにセットされた値もクロックにより1段ずつ右シフトされ、この値によりライトデータを出力する、或いは、SDRAM8からのリードデータをラッチしてリードデータとして上位ブロックに出力する。
【0028】
図4はこれらの一連の操作による動作例を示すタイミング図である。図4に示すように、バンク0とバンク1に、ほぼ同時に入力されたメモリアクセスリクエストにより、バンク0のSDRAMコマンド生成手段2、バンク1のSDRAMコマンド生成手段2で生成されたSDRAMコマンドが、調停・キューイング手段3を通じてキューイングされてSDRAM8に投入され、SDRAM8のバンク0、バンク1で並列に各動作が実行されている。
【0029】
図5はリードアクセスリクエストとライトアクセスリクエストが交錯する場合を例示するタイミング図である。図5に示すように、3番目に入力されたバンク2に対するライトアクセスリクエストは1番目のバンク0に対するライトアクセスリクエストによるライトコマンドのデータ出力の直後なので間を空けずに続けて実行できるが、2番目に入力されたバンク1に対するリードアクセスリクエストによるリードコマンドはCASレイテンシの期間の分とデータバスの入出力の切換の時間が必要なため、先に3番目のライトアクセスリクエストによるライトコマンドが実行される。これにより、3回のメモリアクセスリクエスト全体として無駄なサイクルが節約できる。よって、このようなリードアクセスリクエストとライトアクセスリクエストが交錯する場合でも、本発明装置を使用すれば、無駄となるデータバスの空き時間を最小にすることができる。
【0030】
【発明の効果】
以上説明したように、本発明に係るSDRAMアクセス制御装置によれば、バンク別にSDRAMコマンドを生成し、生成したSDRAMコマンド要求を調停・キューイングし、データバスのスケジューリングを行うことで、SDRAMの各バンクの動作率とデータバスの使用率を上昇させ、SDRAMアクセスの高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明に係るSDRAMアクセス制御装置の一実施の形態の構成を示すブロック図
【図2】本発明に係るSDRAMアクセス制御装置のライトコマンド要求時における調停・キューイング手段とSDRAMコマンドキュー、データバス使用キューの動作を説明する図
【図3】本発明に係るSDRAMアクセス制御装置のリードコマンド要求時における調停・キューイング手段とSDRAMコマンドキュー、データバス使用キューの動作を説明する図
【図4】本発明に係るSDRAMアクセス制御装置によるバンク毎のSDRAMコマンド生成とSDRAMへのコマンド投入、及び、SDRAMの各バンクの動作状態の時間軸上の推移を示すタイミング図
【図5】リードアクセスリクエストとライトアクセスリクエストが交錯する場合における、本発明に係るSDRAMアクセス制御装置によるバンク毎のSDRAMコマンド生成とSDRAMへのコマンド投入、及び、SDRAMの各バンクの動作状態の時間軸上の推移を示すタイミング図
【図6】従来のSDRAMアクセス制御装置の構成例を示すブロック図
【図7】従来のSDRAMアクセス制御装置の最悪条件時の動作を示すタイミング図
【符号の説明】
1 本発明によるSDRAMアクセス制御装置
2、2a、2b、2c SDRAMコマンド生成手段
3 調停・キューイング手段
4 SDRAMコマンドキュー手段
5 データバス使用キュー手段
6 ステートレジスタ
7 ロウアドレスレジスタ
8 SDRAM
9 データバス
503 従来のSDRAMメモリ制御装置
504,505 ブロック
506 アービタ
507 コマンド生成ブロック
508 アドレス変換ブロック
509 データラッチブロック
【発明の属する技術分野】
本発明は、SDRAMデバイスに対してバンクインタリーブアクセスを実行できるSDRAMアクセス制御装置に関し、特に、メモリバス利用効率を向上できるSDRAMアクセス制御装置に関する。
【0002】
【従来の技術】
近年、コスト面と流通面から、パソコン用に大量に安価に流通しているSDRAMを民生用機器に採用することが多くなっている。SDRAMは、パソコンのCPUのキャッシュメモリとの転送効率を上げるために、同一ページ内の連続したアドレスへのバースト転送が可能に設計されている。これをASIC等で使用するためには、一連のSDRAM制御コマンドシーケンスをSDRAMに送出する制御装置が必要となる。
【0003】
このSDRAMへのアクセスを制御するSDRAMアクセス制御装置としては、例えば、下記の特許文献1や特許文献2に開示されたものが一般に知られている。この特許文献2に記載のSDRAMアクセス制御装置502は、図6に示すように、アービタ506とコマンド生成ブロック507とアドレス変換ブロック508とデータラッチブロック509から構成されており、ブロック504,505からのSDRAM8へのアクセスを制御している。
【0004】
ブロック504,505からのSDRAMアクセスリクエストがあるとアービタ506を通じてコマンド生成ブロック507でアクティブコマンド、プリチャージコマンド等のSDRAMコマンドを生成し、平行してアドレス変換ブロック508でロウアドレス、カラムアドレス、バンクアドレスを変換し、データラッチブロック509でリードデータ、ライトデータのラッチを行う。SDRAMの動作には、リードコマンド、ライトコマンドの前にアクティブコマンドとアクティブ動作時間分のウェイトサイクル、リードコマンドの後にはプリチャージコマンドとプリチャージ動作時間分のウェイトサイクル、ライトコマンドの後には、ライト処理のためのライトリカバリタイムの分のウェイトサイクルとプリチャージコマンドとプリチャージ動作時間分のウェイトサイクルが必要である。しかし、SDRAMはあるバンクにおいてコマンド実行中に別のバンクにおいてもコマンドの実行が可能である。ここで、アドレス変換ブロック508にて、アドレスのシフト演算を行い、連続するアクセスリクエストを別のバンクに割り振るようにする。これにより、あるバンクのプリチャージコマンド、アクティブコマンドの動作中に別のバンクのリードコマンド、ライトコマンド動作を行い、オーバヘッドなく連続してアクセスすることができる。
【0005】
【特許文献1】
特開平8−212170号公報
【特許文献2】
特開2000−315173号公報
【0006】
【発明が解決しようとする課題】
しかしながら、上記従来技術のSDRAMアクセス制御装置では、完全にランダムなメモリアドレスへメモリアクセスがリクエストされると、アドレス変換を行ったとしても、必ず交互のバンクへのアクセスが行われず、同一のバンクに対するアクセスが連続して発生することがあり得る。そうなると、図7に示すように、当該バンクへのプリチャージ動作とアクティブ動作が終了するまで次のアクセスを行うことができず、大きなオーバヘッドとなる。
【0007】
また、リクエストされるメモリアクセスがある程度規則性を持っていて、別バンクへの交互のアクセスが行われるとしても、当該リクエストの発生頻度によっては同一バンクに集中してアクセスが行われることになり、データバスの空いている無駄なサイクル、コマンドが実行可能であるのに実行できるコマンドのない無駄なサイクルが発生する。
【0008】
近年、SDRAMの価格低下によって、従来の汎用DRAMや高速SRAMをSDRAMで置き換えるケースが多くなっているが、これらの用途ではバースト転送時のバースト長が短く、アドレスの冗長度が高くなる。このような場合は、これらの無駄なサイクルが発生する傾向がより顕著になる。
【0009】
本発明は、上記問題点に鑑みてなされたもので、その目的は、SDRAMに対する無駄なサイクルの発生を防止し、SDRAMの各バンクの動作率とデータバスの利用効率を向上できるSDRAMアクセス制御装置を提供することにある。
【0010】
【課題を解決するための手段】
この目的を達成するための本発明に係るSDRAMアクセス制御装置は、アドレス空間が複数のバンクに分割されてなるSDRAMのアクセス制御を行うSDRAMアクセス制御装置において、前記複数のバンクに各別に対応し、独立して当該対応するバンクに対するメモリアクセスリクエストを受け付け、SDRAMコマンドを生成する複数のSDRAMコマンド生成手段と、前記複数のSDRAMコマンド生成手段からのSDRAMコマンド実行要求の競合を調停し、SDRAMコマンドキューとデータバス使用キューの空き状況に応じて、前記SDRAMコマンドを前記SDRAMコマンドキューに投入し、データバス使用・方向フラグとライトアクセス時のライトデータを前記データバス使用キューに投入する調停・キューイング手段と、前記調停・キューイング手段から投入された前記SDRAMコマンドを、前記SDRAMコマンドキューに保持し、投入された順番にクロックに同期して逐次前記SDRAMへ転送するSDRAMコマンドキュー手段と、前記調停・キューイング手段から投入された前記データバス使用・方向フラグと前記ライトデータを前記データバス使用キューに保持し、投入された順番に前記データバス使用・方向フラグに応じて、ライトアクセス時には前記ライトデータを前記クロックに同期して前記SDRAMへ送出し、リードアクセス時には前記SDRAMからリードデータを前記クロックに同期して取り込み保持するデータバス使用キュー手段と、を備えてなることを特徴とする。
【0011】
更に、本発明に係るSDRAMアクセス制御装置は、前記各SDRAMコマンド生成手段は、対応する前記バンクの状態を、直前に生成した前記SDRAMコマンドと前記SDRAM自体の状態遷移から算出して保持するステートレジスタと、前記バンクの状態がアクティブ状態のとき、選択されているページのロウアドレスを保持するロウアドレスレジスタを備え、また、前記バンクの状態が前記アクティブ状態において要求されたSDRAMアクセスリクエストのページが前記ロウアドレスレジスタに保持されているロウアドレスの属するページと同一のときは、プリチャージコマンドとアクティブコマンドの生成を抑止し、異なる場合にのみ前記プリチャージコマンドと前記アクティブコマンドを生成することを特徴とする。
【0012】
【発明の実施の形態】
本発明に係るSDRAMアクセス制御装置(以下、適宜「本発明装置」という。)の一実施の形態につき、図面に基づいて説明する。
【0013】
図1に示すように、本発明装置1は、複数のSDRAMコマンド生成部2(2a,2b,2c)と、調停・キューイング手段3と、SDRAMコマンドキュー手段4と、データバス使用キュー手段5を備えて構成されている。
【0014】
SDRAMコマンド生成部2は、本発明装置1の制御対象であるSDRAM8の複数のバンク(BANK0〜n)に対応してn個設けられており、SDRAM8にアクセスする上位ブロック(図示せず)から対応するバンクに対して要求されたSDRAM8に対するメモリアクセスリクエストを受け付け、当該リクエストに対応したSDRAMコマンド(アクティブコマンド、プリチャージコマンド、リードコマンド、ライトコマンド、リフレッシュコマンド等のSDRAM固有の制御コマンド)を生成する。
【0015】
また、各SDRAMコマンド生成部2は、各SDRAMコマンド生成部2が次に生成可能なSDRAMコマンドを求めるために参照するステートレジスタ6と、SDRAMコマンド生成部2に要求されたメモリアクセスリクエストが直前にアクセスしたページと同一ページに対するものかどうかを判定するために参照するロウアドレスレジスタ7を備えている。ステートレジスタ6は、SDRAMコマンド生成部2が直前に生成したSDRAMコマンドとSDRAM8自体の状態遷移から、SDRAM8の対応するバンク内の該当ページの現在の状態を求めて保持する。ロウアドレスレジスタ7は、対応するバンクの状態がアクティブ状態のとき、選択されているSDRAM8の該当ページのロウアドレスを保持する。
【0016】
更に、各SDRAMコマンド生成部2は、ステートレジスタ6のバンクの状態がアクティブ状態において要求されたSDRAMアクセスリクエストのページがロウアドレスレジスタ7に保持されているロウアドレスの属するページと同一のときは、プリチャージコマンドとアクティブコマンドの生成を抑止し、異なる場合にのみプリチャージコマンドとアクティブコマンドを生成するように構成されている。これにより無駄なコマンド生成が防止できる。
【0017】
調停・キューイング手段3は、SDRAMコマンド生成手段2から送出されたSDRAMコマンドによるSDRAMコマンド実行要求を受け付け、当該要求が競合する場合にこれらを調停し、コマンド実行順序(優先順)を決定する。また、SDRAMコマンドキュー手段4とデータバス使用キュー手段5が夫々保持するキュースロットの空き状況に応じて、当該コマンド実行順序に従い、受け付けたSDRAMコマンドをSDRAMコマンドキュー手段3に送出し、データバス使用・方向フラグとライトアクセス時のライトデータをデータバス使用キュー手段4に送出する。
【0018】
SDRAMコマンドキュー手段4は、調停・キューイング手段3から送出されたSDRAMコマンドを、SDRAMコマンドキューのスロットに一旦保持し、受け付けた順番にクロックに同期して逐次SDRAM8へ転送する。
【0019】
データバス使用キュー手段5は、調停・キューイング手段3から送出されたデータバス使用・方向フラグとライトデータを受け取りデータバス使用キューのスロットに一旦保持し、データバス使用・方向フラグの値に応じてデータバスの入出力制御を行う。具体的には、受け付けた順番に、ライトアクセス時にはライトデータをクロックに同期してSDRAM8へ送出し、リードアクセス時にはSDRAM8からリードデータをクロックに同期して取り込み保持し、上位ブロック(図示せず)に転送する。
【0020】
次に、本発明装置1の各手段2〜5の動作について説明する。
【0021】
上位ブロックから本発明装置1に対して要求されたメモリアクセスリクエストは、メモリアドレスのバンクフィールドの値をもとに分岐し、対応するバンクのSDRAMコマンド生成部2にメモリアドレスとともに格納される。また、当該メモリアクセスリクエストがライトアクセスの場合は、ライトデータも同時に対応するバンクのSDRAMコマンド生成部2に格納される。
【0022】
ここで、SDRAMコマンド生成部2は、ステートレジスタ6を参照して担当するSDRAM8のバンクの現在の状態から、次に生成可能なSDRAMコマンドを求め、調停・キューイング手段3にSDRAMコマンド要求を送出する。例えば、現在のSDRAM8の状態がプリチャージコマンド実行完了状態の時にリードやライトのメモリアクセスリクエストがあれば、アクティブコマンド要求を送出し、当該リクエストの対象ページと同一ページがアクティブ状態であれば即座にリードコマンドまたはライトコマンド要求を送出する。プリチャージコマンド実行状態やライトリカバリタイム等コマンドの実行が不可能なときは当該バンクの状態がコマンド実行可能となるまでコマンド要求を保持し調停・キューイング手段3には送出しない。
【0023】
次に、SDRAMコマンド生成部2から送出されたSDRAMコマンド要求は、調停・キューイング手段3においてSDRAMコマンドの実行順序が決定され、SDRAMコマンドキュー手段4のSDRAMコマンドキューに投入される。また、SDRAMデータバス9を使用するリードコマンドとライトコマンドでは、コマンドでバスが使用される期間を示すデータバス使用フラグとデータバスの向きを示すデータバス方向フラグがセットされる。
【0024】
上記の動作を図2、図3に基づき説明する。尚、本説明では、CASレイテンシが2、バースト長が4の場合を想定する。
【0025】
図2、図3に示すように、SDRAMコマンドキューは現在実行中のSDRAMコマンドと次のSDRAMコマンドを、またデータバス使用キューは現在実行中のコマンドによるデータバスの使用状態と、これから実行されるコマンドによるデータバス使用予定状態を示すフラグが保持されている。
【0026】
先ず、ライトコマンド要求が入力された場合、図2に示すように、ライトコマンドはコマンドから4クロック分バスを占有するため(バースト長が4)、データバス使用キューに連続する4クロック分の空きがあるかどうかを比較する。また、データバスの入出力の切替えに1クロックを要するので、次のサイクルでデータを出力させるため現在のデータバスの状態が入力になっていないかどうか(出力もしくは空き状態であるか)を比較する。この比較結果が一致したならば、ライトコマンドが実行可能として、SDRAMコマンドキューにライトコマンドを、データバス使用キューに連続する4サイクル分の出力フラグをセットする。比較結果が一致しない場合、以前のSDRAMコマンドによるデータバスの使用が続いているとして、新たなSDRAMコマンドを各キューに投入せずに次のクロックを待つ。
【0027】
図3に示すように、リードコマンド要求が入力された場合も、同様にコマンド実行からCASレイテンシ分の2クロック後から4クロック分の空きとその直前のデータバスの向きを比較して、空きがあればコマンドをSDRAMコマンドキューに投入する。また、プリチャージコマンド、アクティブコマンド、リフレッシュコマンドはデータバスを使用しないので、データバス使用キューのフラグの値によらずにSDRAMコマンドキューにセットする。尚、SDRAMコマンド生成部2はSDRAM8のバンクの数だけ用意されているので、複数のバンクからのSDRAMコマンド要求が競合して調停・キューイング手段3に入力された場合は、調停により決定されたコマンド実行順序(優先順)に従い処理される。SDRAMコマンドキューにセットされた値はクロックにより1段ずつ右シフトされ、逐次SDRAM8へ転送され、SDRAM8にて当該SDRAMコマンドが実行される。データバス使用キューにセットされた値もクロックにより1段ずつ右シフトされ、この値によりライトデータを出力する、或いは、SDRAM8からのリードデータをラッチしてリードデータとして上位ブロックに出力する。
【0028】
図4はこれらの一連の操作による動作例を示すタイミング図である。図4に示すように、バンク0とバンク1に、ほぼ同時に入力されたメモリアクセスリクエストにより、バンク0のSDRAMコマンド生成手段2、バンク1のSDRAMコマンド生成手段2で生成されたSDRAMコマンドが、調停・キューイング手段3を通じてキューイングされてSDRAM8に投入され、SDRAM8のバンク0、バンク1で並列に各動作が実行されている。
【0029】
図5はリードアクセスリクエストとライトアクセスリクエストが交錯する場合を例示するタイミング図である。図5に示すように、3番目に入力されたバンク2に対するライトアクセスリクエストは1番目のバンク0に対するライトアクセスリクエストによるライトコマンドのデータ出力の直後なので間を空けずに続けて実行できるが、2番目に入力されたバンク1に対するリードアクセスリクエストによるリードコマンドはCASレイテンシの期間の分とデータバスの入出力の切換の時間が必要なため、先に3番目のライトアクセスリクエストによるライトコマンドが実行される。これにより、3回のメモリアクセスリクエスト全体として無駄なサイクルが節約できる。よって、このようなリードアクセスリクエストとライトアクセスリクエストが交錯する場合でも、本発明装置を使用すれば、無駄となるデータバスの空き時間を最小にすることができる。
【0030】
【発明の効果】
以上説明したように、本発明に係るSDRAMアクセス制御装置によれば、バンク別にSDRAMコマンドを生成し、生成したSDRAMコマンド要求を調停・キューイングし、データバスのスケジューリングを行うことで、SDRAMの各バンクの動作率とデータバスの使用率を上昇させ、SDRAMアクセスの高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明に係るSDRAMアクセス制御装置の一実施の形態の構成を示すブロック図
【図2】本発明に係るSDRAMアクセス制御装置のライトコマンド要求時における調停・キューイング手段とSDRAMコマンドキュー、データバス使用キューの動作を説明する図
【図3】本発明に係るSDRAMアクセス制御装置のリードコマンド要求時における調停・キューイング手段とSDRAMコマンドキュー、データバス使用キューの動作を説明する図
【図4】本発明に係るSDRAMアクセス制御装置によるバンク毎のSDRAMコマンド生成とSDRAMへのコマンド投入、及び、SDRAMの各バンクの動作状態の時間軸上の推移を示すタイミング図
【図5】リードアクセスリクエストとライトアクセスリクエストが交錯する場合における、本発明に係るSDRAMアクセス制御装置によるバンク毎のSDRAMコマンド生成とSDRAMへのコマンド投入、及び、SDRAMの各バンクの動作状態の時間軸上の推移を示すタイミング図
【図6】従来のSDRAMアクセス制御装置の構成例を示すブロック図
【図7】従来のSDRAMアクセス制御装置の最悪条件時の動作を示すタイミング図
【符号の説明】
1 本発明によるSDRAMアクセス制御装置
2、2a、2b、2c SDRAMコマンド生成手段
3 調停・キューイング手段
4 SDRAMコマンドキュー手段
5 データバス使用キュー手段
6 ステートレジスタ
7 ロウアドレスレジスタ
8 SDRAM
9 データバス
503 従来のSDRAMメモリ制御装置
504,505 ブロック
506 アービタ
507 コマンド生成ブロック
508 アドレス変換ブロック
509 データラッチブロック
Claims (3)
- アドレス空間が複数のバンクに分割されてなるSDRAM(シンクロナスダイナミックランダムアクセスメモリ)のアクセス制御を行うSDRAMアクセス制御装置において、
前記複数のバンクに各別に対応し、独立して当該対応するバンクに対するメモリアクセスリクエストを受け付け、SDRAMコマンドを生成する複数のSDRAMコマンド生成手段と、
前記複数のSDRAMコマンド生成手段からのSDRAMコマンド実行要求の競合を調停し、SDRAMコマンドキューとデータバス使用キューの空き状況に応じて、前記SDRAMコマンドを前記SDRAMコマンドキューに投入し、データバス使用・方向フラグとライトアクセス時のライトデータを前記データバス使用キューに投入する調停・キューイング手段と、
前記調停・キューイング手段から投入された前記SDRAMコマンドを、前記SDRAMコマンドキューに保持し、投入された順番にクロックに同期して逐次前記SDRAMへ転送するSDRAMコマンドキュー手段と、
前記調停・キューイング手段から投入された前記データバス使用・方向フラグと前記ライトデータを前記データバス使用キューに保持し、投入された順番に前記データバス使用・方向フラグに応じて、ライトアクセス時には前記ライトデータを前記クロックに同期して前記SDRAMへ送出し、リードアクセス時には前記SDRAMからリードデータを前記クロックに同期して取り込み保持するデータバス使用キュー手段と、を備えてなることを特徴とするSDRAMアクセス制御装置。 - 前記各SDRAMコマンド生成手段は、対応する前記バンクの状態を、直前に生成した前記SDRAMコマンドと前記SDRAM自体の状態遷移から算出して保持するステートレジスタと、前記バンクの状態がアクティブ状態のとき、選択されているページのロウアドレスを保持するロウアドレスレジスタを備えていることを特徴とする請求項1に記載のSDRAMアクセス制御装置。
- 前記各SDRAMコマンド生成手段は、前記バンクの状態が前記アクティブ状態において要求されたメモリアクセスリクエストのページが前記ロウアドレスレジスタに保持されているロウアドレスの属するページと同一のときは、プリチャージコマンドとアクティブコマンドの生成を抑止し、異なる場合にのみ前記プリチャージコマンドと前記アクティブコマンドを生成することを特徴とする請求項2に記載のSDRAMアクセス制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003102399A JP2004310394A (ja) | 2003-04-07 | 2003-04-07 | Sdramアクセス制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003102399A JP2004310394A (ja) | 2003-04-07 | 2003-04-07 | Sdramアクセス制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004310394A true JP2004310394A (ja) | 2004-11-04 |
Family
ID=33465840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003102399A Withdrawn JP2004310394A (ja) | 2003-04-07 | 2003-04-07 | Sdramアクセス制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004310394A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006252454A (ja) * | 2005-03-14 | 2006-09-21 | Sony Corp | メモリ制御方法及びメモリ制御回路及び同回路を有する半導体装置及び同回路を有する記憶装置 |
US7124263B2 (en) | 2003-07-09 | 2006-10-17 | Kabushiki Kaisha Toshiba | Memory controller, semiconductor integrated circuit, and method for controlling a memory |
JP2009515262A (ja) * | 2005-12-28 | 2009-04-09 | インテル・コーポレーション | 完全バッファリングされたdimm読み出しデータによる書き込み確認の代替 |
WO2010122607A1 (ja) * | 2009-04-24 | 2010-10-28 | 富士通株式会社 | 記憶制御装置及びその制御方法 |
US8095744B2 (en) | 2008-02-12 | 2012-01-10 | Panasonic Corporation | Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages |
JP2014508361A (ja) * | 2011-03-14 | 2014-04-03 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | メモリ・インターフェース |
JP2014092813A (ja) * | 2012-10-31 | 2014-05-19 | Canon Inc | メモリ制御装置、メモリ制御方法およびプログラム |
-
2003
- 2003-04-07 JP JP2003102399A patent/JP2004310394A/ja not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124263B2 (en) | 2003-07-09 | 2006-10-17 | Kabushiki Kaisha Toshiba | Memory controller, semiconductor integrated circuit, and method for controlling a memory |
JP2006252454A (ja) * | 2005-03-14 | 2006-09-21 | Sony Corp | メモリ制御方法及びメモリ制御回路及び同回路を有する半導体装置及び同回路を有する記憶装置 |
JP2009515262A (ja) * | 2005-12-28 | 2009-04-09 | インテル・コーポレーション | 完全バッファリングされたdimm読み出しデータによる書き込み確認の代替 |
US8095744B2 (en) | 2008-02-12 | 2012-01-10 | Panasonic Corporation | Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages |
WO2010122607A1 (ja) * | 2009-04-24 | 2010-10-28 | 富士通株式会社 | 記憶制御装置及びその制御方法 |
US8560784B2 (en) | 2009-04-24 | 2013-10-15 | Fujitsu Limited | Memory control device and method |
JP5382113B2 (ja) * | 2009-04-24 | 2014-01-08 | 富士通株式会社 | 記憶制御装置及びその制御方法 |
JP2014508361A (ja) * | 2011-03-14 | 2014-04-03 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | メモリ・インターフェース |
KR101527308B1 (ko) * | 2011-03-14 | 2015-06-09 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 메모리 인터페이스 |
US9411757B2 (en) | 2011-03-14 | 2016-08-09 | Hewlett Packard Enterprise Development Lp | Memory interface |
JP2014092813A (ja) * | 2012-10-31 | 2014-05-19 | Canon Inc | メモリ制御装置、メモリ制御方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5930439B2 (ja) | メッセージ・ベースのメモリ・アクセス装置およびそのアクセス方法 | |
US7707328B2 (en) | Memory access control circuit | |
US6272609B1 (en) | Pipelined memory controller | |
EP1345125B1 (en) | Dynamic random access memory system with bank conflict avoidance feature | |
CN107924375B (zh) | 用于高速存储器接口的命令仲裁 | |
US8095744B2 (en) | Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages | |
JP4786209B2 (ja) | メモリアクセス装置 | |
KR101622311B1 (ko) | 적응가능한 수의 오픈 로우들을 갖는 메모리 디바이스 | |
JP2002530742A (ja) | 外部デバイスへのアクセスを優先順序付けるための方法および装置 | |
KR20030053454A (ko) | Dram 기반의 랜덤 액세스 메모리 서브시스템에서 트리메모리 액세스에 대한 퍼포먼스를 향상시키기 위한다중-뱅크 스케쥴링 | |
JP2002530731A (ja) | 異常メモリアクセスまたは異なる時間のメモリアクセス実行の際のデータバス上のデータ衝突を検出するための方法および装置 | |
JP2008276391A (ja) | メモリアクセス制御装置 | |
CN116324744A (zh) | 具有多个命令子队列和对应的仲裁器的存储器控制器 | |
JP2023527981A (ja) | Dramのリフレッシュ管理 | |
JP2014035628A (ja) | 情報処理装置、メモリ制御装置およびその制御方法 | |
JP3444154B2 (ja) | メモリアクセス制御回路 | |
JP5911548B1 (ja) | 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム | |
JP2004310394A (ja) | Sdramアクセス制御装置 | |
JP3803196B2 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
US20090119429A1 (en) | Semiconductor integrated circuit | |
JP2004500608A (ja) | ユニバーサルリソースアクセスコントローラ | |
WO2010122607A1 (ja) | 記憶制御装置及びその制御方法 | |
JP4112813B2 (ja) | バスシステム及びそのコマンドの伝達方法 | |
US9627014B2 (en) | Multiple port shared memory | |
JP4633334B2 (ja) | 情報処理装置およびメモリアクセス調停方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041224 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060704 |