同期型半導体記憶装置のアクセス制御装置
【課題】同じバンクの同じ行に対する連続アクセスが発生した場合の、SDRAMに対するアクセスに要するクロックサイクルを削減して、効率の良いメモリアクセスをなし得ること。
【解決手段】SDRAMアクセス制御部10は、連続アクセスモード時、同一行への最初のアクセス要求のときにSDRAM300の行活性化を行い、その後最終列検出信号16がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドをSDRAM300に出力し、最終列検出信号16がアサートされると、アクセスされていた行の非活性化を行う。
【解決手段】SDRAMアクセス制御部10は、連続アクセスモード時、同一行への最初のアクセス要求のときにSDRAM300の行活性化を行い、その後最終列検出信号16がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドをSDRAM300に出力し、最終列検出信号16がアサートされると、アクセスされていた行の非活性化を行う。
【発明の詳細な説明】
【0001】
【発明の属する技術分野】
この発明は、同期型半導体記憶装置(SDRAM)のアクセス制御装置に関するものである。
【0002】
【従来の技術】
近年のマイクロプロセッサの動作速度の向上に伴い、主記憶装置として用いられるダイナミックランダムアクセスメモリ等の高速アクセスを実現するために、クロック信号に同期して動作する同期型DRAM(シンクロナスDRAM:以下、SDRAMと称す)が用いられている。このような、SDRAMの内部動作の制御は、ロウ(行)系動作およびコラム(列)系動作に分割して制御される。
【0003】
また、SDRAMにおいては、一層の高速動作を可能とするために、メモリセルアレイを互いに独立動作が可能なバンクに分割したバンク構成が用いられている。
【0004】
図12は、従来のSDRAM制御モジュール(以下、SDRAMC)90を含むLSI3を示している。SDRAMC90はSDRAMアクセス制御部1を有しており、SDRAMアクセス制御部1は、入力されるSDRAMアクセス要求信号21およびアドレス信号22に基づきRAS,CAS,WE,CSなどのSDRAM制御信号23およびアドレス信号24(バンクアドレス、アドレス)を形成し、これらを所定のタイミングでSDRAM300に入力することで、SDRAM300に対しデータ信号25を書き込むと共に、SDRAM300からデータ信号25を読み出す。
【0005】
次に動作について説明する。SDRAMからの読み出し動作を例にとって説明する。SDRAMC90に他のモジュール(図示しない)からSDRAMアクセス要求信号21とアドレス信号22が入力されると、SDRAMアクセス制御部1はSDRAM300に対して行活性化コマンド、次いでリードコマンド、最後にバンク非活性化コマンド(プリチャージコマンド)を発行する。これらのコマンドは、RAS,CAS,WE,CSなどのSDRAM制御信号23の“H”,“L”の組み合わせで定義される。アドレス信号22はSDRAMアクセス制御部1でSDRAM300に適した形に加工されて(マルチプレクスされて)、行アドレス、列アドレスの順にアドレス信号線24を通してSDRAM300に与えられる。SDRAM300はリードコマンドが発行されてから、CASレイテンシ分の時間経過後、データバスにデータ信号25を出力する。SDRAM300から出力されたデータをLSI3内のモジュール(図示しない)が読み込む。
【0006】
図13を用いてさらに詳細に説明する。ここでは、SDRAM300の同じバンクの同じ行に2回のリードアクセスが行われるとする。SDRAM300のバースト転送時のバースト長は1で、このバースト長はSDRAMアクセスが行われる以前に設定されているものとする。
【0007】
クロックサイクル“1”でSDRAMアクセス要求信号21がアサートされる。これを受けてSDRAMアクセス制御部1はSDRAM行活性化コマンドACを発行する。次いで、クロックサイクル“3”でリードコマンドRDを発行する。ここでは、RAS−CASレイテンシに2クロックサイクル必要であるとする。したがって、行活性化コマンドACの発行からリードコマンドRDの発行まで2クロックサイクル必要であるから、行活性化コマンドACとリードコマンドRDの間にディセレクトコマンドDSを挿入している(クロックサイクル“2”)。
【0008】
最後に、指定されたバンクを非活性にするバンク非活性化コマンド(プリチャージコマンド)PRを発行する。ここでは行活性化コマンドACからバンク非活性化コマンドPRまで5クロックサイクル必要であるとする。このため非活性化コマンドPRの発行はクロックサイクル“6”となる。またここでは、CASレイテンシに2クロックサイクル必要であるとする。このため、リードコマンドRDを発行(クロックサイクル“3”)してから2クロック後にデータ信号25がデータバスに出力される(クロックサイクル“5”)。
【0009】
SDRAMアクセス要求信号21は、SDRAMのデータ出力の次のクロックサイクルでアサートされるものとする。よって、2回目のSDRAMアクセス要求信号21はクロックサイクル“6”でアサートされる。このSDRAMでは、バンク非活性化コマンドPRが発行されてから行活性化コマンドACが発行されるまで2クロックサイクル必要であるとする。従って、SDRAMアクセス要求信号21はクロックサイクル“6”でアサートされるが、SDRAM行活性化コマンドACが発行されるのはクロックサイクル“8”となる。この後1回目のアクセスと同様にして2回目のSDRAMアクセスが行われる。2回目のSDRAMリードデータはクロックサイクル“12”に出力される。この例では、1回目のSDRAMアクセス要求から2回目のアクセスのデータ出力まで12サイクルを要することになる。
【0010】
【発明が解決しようとする課題】
このように従来のSDRAMCでは、複数回連続でSDRAM300の同じバンクの同じ行に連続的にアクセスする場合でも、行活性化(AC)とバンク非活性化(PR)を、SDRAMアクセス要求信号21がアサートされる度に繰り返すようにしているので、多くのクロックサイクルを消費し、非効率的であるという問題点がある。
【0011】
この発明は上記に鑑みてなされたもので、同じバンクの同じ行に対する連続アクセスが発生した場合の、SDRAMに対するアクセスに要するクロックサイクルを削減して、効率の良いメモリアクセスをなし得る同期型半導体記憶装置のアクセス制御装置を得ることを目的とする。
【0012】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかる同期型半導体記憶装置のアクセス制御装置は、同一行の連続した列に対して連続的にアクセスする連続アクセスモードによるアクセスを、記憶領域が複数のバンクに分割された同期型半導体記憶装置に対して実行する同期型半導体記憶装置のアクセス制御装置において、前記連続アクセスモード時、前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出し、最終列検出信号を出力する最終列検出回路を各バンクに対応して各別に設けるとともに、前記アドレス信号に基づいて前記複数の最終列検出回路からの最終列検出信号を択一選択する選択回路と、前記連続アクセスモード時、同一行への最初のアクセス要求のときに同期型半導体記憶装置の行活性化を行い、その後前記選択回路から最終列検出信号がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドを前記同期型半導体記憶装置に出力し、前記選択回路からの最終列検出信号がアサートされると、前記アクセスされていた行の非活性化を行うアクセス制御部とを備えることを特徴とする。
【0013】
この発明によれば、連続アクセスモード時、同一行への最初のアクセス要求のときに同期型半導体記憶装置の行活性化を行い、その後最終列検出信号がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドを同期型半導体記憶装置に出力し、最終列検出信号がアサートされると、アクセスされていた行の非活性化を行うようにしており、これにより同期型半導体記憶装置に対するアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0014】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、上記の発明において、前記最終列検出回路は、前記同期型半導体記憶装置に入力されるアドレス信号に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出することを特徴とする。
【0015】
この発明によれば、同期型半導体記憶装置に入力されるアドレス信号に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出するようにしており、これにより、最終列アドレスへのアクセスであることを確実に検出することができる。
【0016】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、前記最終列検出回路は、アクセス要求の計数値と所定の設定値との比較に基づいて前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出することを特徴とする。
【0017】
この発明によれば、アクセス要求の計数値と所定の設定値との比較に基づいて前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出するようにしており、これによりアドレス信号を用いる場合に比べ、回路設計が容易となり、実際の回路を実現し易くなる。
【0018】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、アクセスモード信号が設定されるアクセスモードレジスタを各バンクに対応して各別に設け、前記選択回路は、前記アドレス信号に基づいて前記複数のアクセスモードレジスタからのアクセスモード信号を択一選択して前記アクセス制御部に入力し、前記アクセス制御部は前記選択回路からのアクセスモード信号に基づき今回のアクセスが連続アクセスモードであることを判断することを特徴とする。
【0019】
この発明によれば、アクセスモード信号が設定されるアクセスモードレジスタを各バンクに対応して各別に設けるようにしており、アクセス制御部はこれらのアクセスモードレジスタの設定情報から今回のアクセスが連続アクセスモードであることを確実に判定することができる。
【0020】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、前記アクセス制御部には、バスマスタからのアクセスモード信号が直接入力され、アクセス制御部は前記バスマスタからのアクセスモード信号に基づき今回のアクセスが連続アクセスモードであることを判断することを特徴とする。
【0021】
この発明によれば、バスマスタからのアクセスモード信号がアクセス制御部に入力されるようにしており、これによりアクセスモードを設定するレジスタ等のハードウェアを持たずに済み、回路を簡略化できる。さらに、あるバスマスタが連続SDRAMアクセスを行っている最中に、他のバスマスタが同じバンクに対するアクセスを行ったときも、自動的にバンク非活性化、および行活性化を行うことができ、自由度が高い応用設計を実現できる。
【0022】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、前記同期型半導体記憶装置へのアドレス信号の次アドレスを演算する次アドレス演算部と、前記最終列検出信号がアサートされた後の所定の期間以外は前記同期型半導体記憶装置へのアドレス信号を選択し、前記最終列検出信号がアサートされた後の所定の期間のときは前記次アドレス演算部からの次アドレスを選択するアドレス選択回路とを更に備え、前記アクセス制御部は、前記連続アクセスモード時、前記選択回路からの最終列検出信号がアサートされると、前記アクセスされていた行の非活性化を行い、その後直ちに、前記アドレス選択回路から入力される前記次アドレス演算部からの次アドレスが示す行の活性化を行うことを特徴とする。
【0023】
この発明によれば、連続アクセスモード時、最終列検出信号がアサートされると、アクセスされていた行の非活性化を行い、その後直ちに、アドレス選択回路から入力される次アドレス演算部からの次アドレスが示す行の活性化を行うようにしており、これにより次の行のアクセス要求までに時間があった場合、次の行のアクセスが発生したときには既にこの行の活性化を終えており、その後すぐにリードあるいはライトコマンドを発行することができる。従ってアクセスに要するクロックサイクルを低減することができる。
【0024】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる同期型半導体記憶装置のアクセス制御装置の好適な実施の形態を詳細に説明する。
【0025】
実施の形態1.
図1はこの発明の実施の形態1によるSDRAM制御モジュール(SDRAMC)100を含むLSI3およびSDRAM300を示している。SDRAM300は複数(i個の)のバンク(この場合、バンク0〜バンク3の4バンクであるとする)に分割されている。SDRAM制御モジュール(SDRAMC)100は、バンク毎に備えられた複数の(この場合4個)連続アクセス制御ユニット2a〜2dと、各連続アクセス制御ユニット2a〜2dからの出力信号のいずれかをバンクアドレス31によって選択する選択回路32と、SDRAMアクセス制御部10とを有している。
【0026】
図2に、アクセスするSDRAM300のアドレス構成の一例を示す。アドレスは、バンクアドレス、行アドレス、列アドレスを有しており、この場合バンクアドレスがA6、A7の2ビット、行アドレスがA8〜A22の15ビット、列アドレスがA23〜A31の9ビットであるとする。SDRAMアクセス制御部10には、このようなアドレス構成を持つアドレス信号22が入力される。このアドレス信号22のうちの10ビットのアドレス30(A22〜A31)が連続アクセス制御ユニット2a〜2dに入力される。この場合、連続アクセス制御ユニット2a〜2dには、9ビットではなく10ビットが入力されているが、その理由は後述する。また、選択回路32には、アドレス信号22のうちの2ビットのバンクアドレス31(A6、A7)が入力される。
【0027】
各連続アクセス制御ユニット2a〜2dは、SDRAM300の当該バンクへのアクセス方法を“連続アクセスモード”および“単発アクセスモード”の何れかに設定するアクセスモードレジスタ11と、当該バンクにおける行の最後の列を検出する最終列検出回路12とをそれぞれ備えている。
【0028】
各連続アクセス制御ユニット2a〜2dに設けられるアクセスモードレジスタ11は、設定された情報をバンクiアクセスモード信号13(i=1〜3)として、選択回路32に出力する。
【0029】
各連続アクセス制御ユニット2a〜2dに設けられる最終列検出回路12は、当該バンクにおける行の最後の列へのアクセスを検出した場合、その旨を示すバンクi最終列検出信号14を選択回路32に出力する。
【0030】
図3は、最終列検出回路12の内部構成を示すもので、最終列検出回路12は、SDRAMアドレスのうちどの部分が列アドレスであるのかを示す値(情報)を設定する列アドレス指示レジスタ40と、連続してSDRAMアクセスが発生するときのアドレスの進行方向(増加あるいは減少)を示す情報がセットされるアドレス進行方向設定レジスタ42と、アドレス進行方向設定レジスタ42および列アドレス指示レジスタ40のセット内容に基づき列アドレス30を監視して行の最終列へのアクセスを検出する列アドレス監視部41とを備えている。
【0031】
列アドレス指示レジスタ40は、この場合10ビットであり、SDRAMの列アドレス30が10ビット(A22〜A31)の範囲内である場合に対応することができる。図2に示したように、この場合、列アドレスは、A23〜A31の9ビットであるので、列アドレス指示レジスタ40には、最上位ビットのみを“0”にした“0111111111”が設定される。
【0032】
列アドレス監視部41は、アドレス進行方向設定レジスタ42に設定されているアドレス進行方向が“増加方向”を示す値である場合は、列アドレス指示レジスタ40に値“1”が設定されているビットに対応する列アドレス30のビット(この場合A23〜A31)がすべて“1”のとき、バンクi最終列検出信号14をアクティブにする。また、列アドレス監視部41は、アドレス進行方向設定レジスタ42に設定されているアドレス進行方向が“減少方向”を示す値である場合は、列アドレス指示レジスタ40に値“1”が設定されているビットに対応する列アドレス30のビットがすべて“0”のとき、バンクi最終列検出信号14をアクティブにする。
【0033】
選択回路32は、SDRAMバンクアドレス31にしたがって、4つの連続アクセス制御ユニット2a〜2dからの一組のバンクiアクセスモード信号13およびバンクi最終列検出信号14を選択し、選択した信号をSDRAMアクセスモード信号15および最終列検出信号16としてSDRAMアクセス制御部10に入力する。
【0034】
SDRAMアクセス制御部10は、SDRAMアクセス要求信号21の他に選択回路32から入力されるアクセスモード信号15および最終列検出信号16に基づいてRAS,CAS,WE,CSなどのSDRAM制御信号23を形成するとともに、入力されるバンクアドレス、行アドレスおよび列アドレスを含むアドレス信号22をSDRAM300に適した形に加工して(マルチプレクスされて)、行アドレス、列アドレスの順にアドレス信号24としてバンクアドレスとともにSDRAM300に入力する。これらの信号がSDRAM300に入力されることで、SDRAM300に対しデータ信号25を書き込むと共に、SDRAM300からデータ信号25を読み出す。
【0035】
次に動作について説明する。SDRAMからの読み出し動作を例にとって説明する。まず、各バンクの連続アクセス制御ユニット2a〜2dのアクセスモードレジスタ11に“連続アクセスモード”および“単発アクセスモード”のいずれでSDRAM300にアクセスを行うのかを示す情報を設定する。
【0036】
つぎに、SDRAMC100に図示しない他のモジュールからSDRAMアクセス要求信号21とアドレス信号22が入力される。この場合、アクセスはSDRAM300のバンク0へのアクセスであるとする。
【0037】
まず、バンク0に対応する連続アクセス制御ユニット2aのアクセスモードレジスタ11に“単発アクセスモード”を示す値が設定されている場合について説明する。
【0038】
この場合、選択回路32は、バンクアドレス31に基づいて、バンク0に対応する連続アクセス制御ユニット2aのアクセスモードレジスタ11に設定された“単発アクセスモード”を示すバンクiアクセスモード信号13を選択し、この選択した信号をSDRAMアクセスモード信号15としてSDRAMアクセス制御部10に出力する。
【0039】
SDRAMアクセス制御部10は、従来技術と同様にしてSDRAM300へのアクセスを行う。すなわち、SDRAM300に対して、行活性化コマンド、次いでリードコマンド、最後にバンク非活性化コマンド(プリチャージコマンド)を発行する。また、SDRAMアクセス制御部10は、アドレス信号22をSDRAM300に適した形に加工して(マルチプレクスして)、行アドレス、列アドレスの順にアドレス信号24としてSDRAM300に与える。SDRAM300では、リードコマンドが発行されてからCASレイテンシ分の時間経過後、データ信号25をデータバスに出力する。データバスに出力されたデータ信号25をLSI3内のモジュール(図示しない)が読み込む。
【0040】
次に、バンク0に対応する連続アクセス制御ユニット2aのSDRAMアクセスモードレジスタ11に“連続アクセスモード”を示す値が設定されている場合について説明する。
【0041】
この場合は、選択回路32は、バンクアドレス31に基づいて、バンク0に対応する連続アクセス制御ユニット2aのSDRAMアクセスモードレジスタ11に設定された“連続アクセスモード”を示すバンクiアクセスモード信号13を選択し、この選択した信号をSDRAMアクセスモード信号15としてSDRAMアクセス制御部10に出力する。
【0042】
SDRAMアクセス制御部10は、このSDRAMアクセスモード信号15によって“連続アクセスモード”であることを認知する。そして、SDRAMアクセス制御部10は、選択回路32から入力されている最終列検出信号16がアクティブではないときには、つぎのように動作する。
【0043】
SDRAMアクセス制御部10は、同一行に対する一回目のアクセスのときにだけ、SDRAM300のバンク0に対して行活性化コマンドを発行する。そして、この行活性化コマンドに続いてリードコマンドを発行する。このとき非活性化コマンドを発行せず、行を活性化状態に保って次のアクセスを待つ。次の同じ行の次の列に対するアクセスが発生したときは行が活性状態にあるため、新たに行活性化コマンドを発行せず、直接リードコマンドを発行する。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0044】
その後、アクセスが同じ行の最後の列に対するアクセスであるとき、バンク0に対応する連続アクセス制御ユニット2aの最終列検出回路12が、行の最後の列に対するアクセスであることを検出し、バンク0最終列検出信号14をアクティブにする。したがって、選択回路32からはアクティブになった最終列検出信号16がSDRAMアクセス制御部10に入力される。最終列検出信号16がアクティブになると、SDRAMアクセス制御部10は、バンク0のバンク非活性化すなわちプリチャージを実行する。このバンクの非活性化では、実際には、アドレス信号22で指定された行に対する非活性化が行われる。この後、バンク0へのアクセスが発生すると、SDRAMアクセス制御部10は、新たに行を活性化して同様の動作を繰り返す。
【0045】
次に、図4のタイムチャートを用いて連続アクセスモードの際の各処理のタイミングについてさらに詳細に説明する。SDRAMアクセス要求信号21が入力される度に、アドレス信号22は、図4に示すように、同一行アドレスで列アドレスが連続する連続アドレスa0、a1、…、anとして更新される。
【0046】
クロックサイクル“1”でSDRAMアクセス要求信号21がアサートされる。このクロックサイクル“1”において、SDRAMアクセス制御部10は、SDRAM300のバンク0の行活性化コマンドACを発行する。SDRAMアクセス制御部10は、次の、クロックサイクル“2”では、ディセレクトコマンドDSを発行する。
【0047】
次に、クロックサイクル“3”では、SDRAMアクセス制御部10はリードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後、データ信号25をデータバスに出力する(クロックサイクル“5”)。ここでは、CASレイテンシ時間を2クロックサイクルとしているので、リードコマンドRDを発行してから2クロック後にデータ信号25がデータバスに出力される。
【0048】
リードコマンドが発行されたクロックサイクル“3”において、最終列検出回路12は、SDRAMアドレスの列アドレス部分30をチェックして最終列でないことを確認するので、最終列検出信号16はネゲートのままである。最終列検出信号16がネゲートのままであるので、SDRAMアクセス制御部10は、クロックサイクル“4”“5”では、ディセレクトコマンドDSを発行して、バンク0を行活性化した状態のままに保つ。
【0049】
次に、SDRAMアクセス要求信号21がクロックサイクル“6”で入力されると、SDRAMアクセス制御部10は、この時点では最終列検出信号16がネゲートのままであるので、行活性化コマンドACを発行せず、直接リードコマンドRDを発行する。
【0050】
SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“8”で、データ信号25をデータバスに出力する。この例では、1回目のSDRAMアクセス要求信号から2回目のアクセスのデータ出力まで8クロックサイクルを要することになる。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0051】
さらに、アクセスが続けられてクロックサイクル“c”でSDRAMアクセス要求信号21が入力されたとする。このときのアクセスが行の最後の列に対するアクセスであったとすると、最終列検出回路12では、前述したようにして、今回のアクセスが行の最後の列に対するアクセスであることを検出し、バンク0最終列検出信号14をアクティブにする。したがって、選択回路32から出力される最終列検出信号16がアクティブとなる。SDRAMアクセス制御部10は、クロックサイクル“c”において、SDRAMアクセス要求信号21が入力されたときには、最終列検出信号16がアクティブであるので、クロックサイクル“c”でリードコマンドRDを出力するとともに、つぎのクロックサイクル“d”で、バンク0の非活性化コマンドPRを発行し、バンク0(実際には選択されている行)を非活性化状態にする。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“e”で、データ信号25をデータバスに出力する。
【0052】
このようにこの実施の形態1によれば、行アドレスが同一で列アドレスが連続する連続アクセスモードの場合、1回目のアクセスのときだけ行活性化を行ってリードコマンドを発行し、その後の行の最後の列に対するアクセスの前までは、リードコマンドを直接発行してバンク非活性化および行活性化を行わないようにしているので、SDRAMアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0053】
実施の形態2.
つぎに、図5および図6を用いてこの発明の実施の形態2について説明する。図5はこの発明の実施の形態2によるSDRAM制御モジュール(SDRAMC)100を含むLSI3およびSDRAM300を示している。この図5に示す実施の形態2のSDRAMC100においては、先の実施の形態1の構成に、アドレス保持部33、+1インクリメント動作を行う加算器34、アドレス選択回路36を追加するようにしている。
【0054】
アドレス保持部33は、SDRAMアドレス信号22を一時保持し、一時保持したSDRAMアドレス信号22を加算器34に出力する。加算器34は、アドレス保持部33から入力されるアドレス値を例えば+1することにより、列アドレスが連続する連続アクセスが行われるときの次アドレスを計算し、計算された次アドレス信号35をアドレス選択回路36に入力する。アドレス選択回路36は、SDRAMアクセス制御部10から入力されるアドレス選択制御信号38に基づいて、SDRAMアドレス信号22と加算器34から入力される次アドレス信号35のうちの何れかを選択する。
【0055】
SDRAMアクセス制御部10は、単発アクセスモードのとき、または連続アクセスモードのときであってかつ最終列アクセス以外のアクセスのときには、アドレス選択制御信号38を例えば“L”にし、連続アクセスモードのときであってかつ最終列アクセスのときには、アドレス選択制御信号38を“H”にする。アドレス選択回路36は、アドレス選択制御信号38が“L”のときには、SDRAMアドレス信号22を選択してSDRAMアクセス制御部10に入力し、アドレス選択回路36は、アドレス選択制御信号38が“H”のときには、加算器34から入力される次アドレス信号35を選択してSDRAMアクセス制御部10に入力するよう動作する。
【0056】
次に図6のタイムチャートを用いて実施の形態2の動作について説明する。前記同様、SDRAMからの読み出し動作を例にとって説明する。
【0057】
単発アクセスモードのときには、実施の形態1で説明した単発アクセスモードと同様に動作する。
【0058】
連続アクセスモードのときであってかつ最終列アクセス以外のアクセスのときには、アドレス選択回路36は、アドレス選択制御信号38にしたがってSDRAMアドレス信号22を選択するので、連続アクセス制御ユニット2a〜2d、選択回路32およびSDRAMアクセス制御部10は、先の実施の形態1で説明したのと同様に動作する(図6クロックサイクル“1”〜クロックサイクル“8”参照)。この期間中、次アドレス信号35は、SDRAMアクセス要求信号21が入力される度に、SDRAMアドレス信号22を+1した値に更新されるが、この期間中には、これらの次アドレス信号35は、アドレス選択回路36で選択されることがないので、使用されることはない。
【0059】
クロックサイクル“c”でSDRAMアクセス要求信号21が入力され、このときのアクセスが行の最後の列に対するアクセスであったとすると、最終列検出回路12では、前述したようにして、今回のアクセスが行の最後の列に対するアクセスであることを検出する。この結果、最終列検出信号16がアクティブになる。SDRAMアクセス制御部10は、クロックサイクル“c”において、SDRAMアクセス要求信号21が入力されたときには、最終列検出信号16がアクティブであるので、クロックサイクル“c”でリードコマンドRDを出力するとともに、つぎのクロックサイクル“d”で、バンク0の非活性化コマンドPRを発行し、バンク0を非活性化状態にする。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“e”で、データ信号25をデータバスに出力する。
【0060】
SDRAMアクセス制御部10は、最終列検出信号16が入力されたときには、バンク非活性化の次のクロックサイクル“e”で、アドレス選択制御信号38を“L”から“H”に切り換える。これにより、アドレス選択回路36は、クロックサイクル“e”で、次アドレス信号35がSDRAMアドレス信号37に出力されるように入力信号を切り換える。すなわち、SDRAMアクセス制御部10は、最終列検出信号16がアサートされた後の所定の期間以外はアドレス選択制御信号38を“L”とし、最終列検出信号16がアサートされた後の所定の期間のときはアドレス選択制御信号38を“H”として次アドレス信号35が選択されるようにしている。
【0061】
この時点での次アドレス信号35は、次行の最初のアドレス(図6ではan+1)となっている。SDRAMアクセス制御部10は、クロックサイクル“e”で、SDRAMアドレス信号37(次アドレス信号35が選択)で示されるSDRAM300の行の活性化を行う(行活性化コマンドAC)。アドレス信号37の行アドレス部分は、いままでアクセスを行っていたSDRAM300の行の次の行アドレスを示しているから、行活性化コマンドACによっていままでアクセスを行っていたSDRAM300の行の次の行の活性化が行なわれることになる。
【0062】
このように実施の形態2によれば、ある行の最終列アクセスが終了してその行の非活性化(PR)を行った後、直ぐに次の行の活性化を次の行のアクセス要求の前に予め行うようにしているので、次の行のアクセス要求までに時間があった場合、次の行のアクセスが発生したときには既にこの行の活性化を終えており、すぐにリードあるいはライトコマンドを発行することができ、これによりSDRAMアクセスに要するクロックサイクルを低減することができる。
【0063】
実施の形態3.
つぎに、図7および図8を用いてこの発明の実施の形態3について説明する。図7はこの発明の実施の形態3によるSDRAM制御モジュール(SDRAMC)100を含むLSI3およびSDRAM300を示している。この図7に示す実施の形態3のSDRAMC100においては、各連続アクセス制御ユニット4a〜4dにおいて、バンクi最終列検出信号14を発生するための回路構成として、SDRAMアクセス要求信号21をカウントするアクセス回数カウント部43による構成を採用することにより、実施の形態1のように、最終列の判定にアドレス信号22(正確には列アドレス30)を用いないようにしている。なお、以下の説明ではバースト長を「1」としている。
【0064】
図7において、SDRAMアクセス要求分配器20は、SDRAMバンクアドレス31に従ってSDRAMアクセス要求信号21を、バンク0アクセス要求信号41a〜バンク3アクセス要求信号41dとして連続アクセス制御ユニット4a〜4dへ分配する。すなわち、バンク0アクセス要求信号41a〜バンク3アクセス要求信号41dのうち、SDRAMバンクアドレス31で指定されたバンクに対応するバンクiアクセス要求信号がアクティブとなる。
【0065】
各連続アクセス制御ユニット4a〜4dは、前記同様、バンク0〜バンク3にそれぞれ対応しており、アクセスモードレジスタ11と、当該バンクにおける行の最後の列を検出する最終列検出回路12とをそれぞれ備えている。
【0066】
アクセスモードレジスタ11には、今回のアクセスが“連続アクセスモード”および“単発アクセスモード”の何れであるかを示す情報と、バースト長が設定される。
【0067】
最終列検出回路12は、SDRAM300へのアクセス回数をカウントするアクセス回数カウント部43と、SDRAM300へのアクセス回数が設定されるアクセス回数設定レジスタ44と、アクセス回数設定レジスタ44に設定されている値とアクセス回数カウント部43のカウント値を比較する比較器45とを備えている。
【0068】
アクセスモードレジスタ11からアクセス回数カウント部43に入力されるカウント制御信号46は、アクセスモードレジスタ11に設定される値が“連続アクセスモード”のときにアクティブ(オン)となる。アクセス回数カウント部43は、カウント制御信号46がオンのときにカウント動作を行うもので、バースト長が1のときには、SDRAMアクセス要求分配器20からバンク0アクセス要求信号41aが入力される毎に+1のカウント動作を実行する。なお、アクセス回数カウント部43は、バースト長が「n」のときには、アクセス要求信号が入力される度に、+nのカウント動作を実行する。バースト長は、アクセスモードレジスタ11に設定されているので、アクセス回数カウント部43はこの設定バースト長を参照して+nのカウント動作を決定する。
【0069】
アクセス回数設定レジスタ44には、アクセスするSDRAM300の1つの行の列数分の値が設定される。比較器45は、アクセス回数カウント部43の計数出力とアクセス回数設定レジスタ44の設定値を比較し、両者が一致したとき、バンク0最終列検出信号14をアクティブにする。
【0070】
次に動作について説明する。SDRAM300からの読み出し動作を例にとって説明する。まず、各連続アクセス制御ユニット4a〜4dのアクセスモードレジスタ11に“連続アクセスモード”および“単発アクセスモード”のいずれでSDRAM300にアクセスを行うのかを示す情報およびバースト長を設定する。この場合、バースト長は1であるとする。
【0071】
続いて、各連続アクセス制御ユニット4a〜4dのアクセス回数カウント部43をクリア(値“0”設定)するとともに、アクセス回数設定レジスタ44に所定の値を設定する。この例では、アクセス回数設定レジスタ44には、アクセスするSDRAM300の1つの行の列数分の値を設定するものとする。
【0072】
その後、SDRAMC100に図示しない他のモジュールからSDRAMアクセス要求信号21とアドレス信号22が入力される。この場合、アクセスはSDRAM300のバンク0へのアクセスであるとする。
【0073】
バンク0に対応する連続アクセス制御ユニット4aのアクセスモードレジスタ11に“単発アクセスモード”を示す値が設定されている場合は、先の実施の形態1で説明した単発アクセスモードのときと同様に動作する。すなわち、SDRAMアクセス制御部10には、連続アクセス制御ユニット4aのアクセスモードレジスタ11に設定された“単発アクセスモード”を示すバンクiアクセスモード信号13が選択回路32を介して入力されているので、バンク0に対して前述した単発アクセスモードによるSDRAM300へのアクセス制御を実行する。
【0074】
次に、バンク0に対応する連続アクセス制御ユニット4aのSDRAMアクセスモードレジスタ11に“連続アクセスモード”を示す値が設定されている場合について説明する。
【0075】
SDRAMアクセス制御部10は、前述と同様に、SDRAMアクセスモード信号15によって“連続アクセスモード”であることを認知する。そして、SDRAMアクセス制御部10は、選択回路32から入力されている最終列検出信号16がアクティブではないとき、すなわち連続アクセス制御ユニット4aの比較器45による比較結果が不一致であるときは、実施の形態1で説明したように、つぎのように動作する。
【0076】
SDRAMアクセス制御部10は、一回目のアクセスのときにだけ、SDRAM300のバンク0に対して行活性化コマンドを発行する。そして、この行活性化コマンドに続いてリードコマンドを発行する。このとき非活性化コマンドを発行せず、行を活性化状態に保って次のアクセスを待つ。次の同じ行の次の列に対するアクセスが発生したときは行が活性状態にあるため、新たに行活性化コマンドを発行せず、直接リードコマンドを発行する。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0077】
なお、この期間中、連続アクセス制御ユニット4aのアクセス回数カウント部43は、SDRAMアクセス要求分配器20からバンク0アクセス要求信号41aが入力される度に+1のカウント動作を実行している。
【0078】
その後、同じ行の最後の列に対するアクセスになったとする。このときには、連続アクセス制御ユニット4aのアクセス回数カウント部43のカウント値がアクセス回数設定レジスタ44の設定値に一致する。したがって、このときには、比較器45から出力されるバンク0最終列検出信号14がアクティブとなる。この結果、選択回路32から出力される最終列検出信号16がアクティブとなる。
【0079】
SDRAMアクセス制御部10は、最終列検出信号16がアクティブになると、バンク0のバンク非活性化すなわちプリチャージを実行する。この後、バンク0へのアクセスが発生すると、SDRAMアクセス制御部10は、新たに行を活性化して同様の動作を繰り返す。
【0080】
次に、図8のタイムチャートを用いて連続アクセスモードの際の各処理のタイミングについてさらに詳細に説明する。この場合は、1行の列数が512列であるとする。SDRAMアクセス要求信号21が入力される度に、アドレス信号22は、連続アドレスa0、a1、…、anとして更新される。
【0081】
クロックサイクル“1”でSDRAMアクセス要求信号21がアサートされる。このクロックサイクル“1”において、SDRAMアクセス制御部10は、SDRAM300のバンク0の行活性化コマンドACを発行する。SDRAMアクセス制御部10は、次の、クロックサイクル“2”では、ディセレクトコマンドDSを発行する。
【0082】
次に、クロックサイクル“3”では、SDRAMアクセス制御部10はリードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後、データ信号25をデータバスに出力する(クロックサイクル“5”)。
【0083】
リードコマンドRDを発行したクロックサイクル“3”においては、バンク0に対応する連続アクセス制御ユニット2aの比較器45の比較結果が一致しないので、バンク0最終列検出信号14、そして最終列検出信号16もアサートされない。これにより、SDRAMアクセス制御部10はクロックサイクル“4”“5”では、ディセレクトコマンドDSを発行して、バンク0を行活性化した状態のままに保つ。
【0084】
次に、SDRAMアクセス要求信号21がクロックサイクル“6”で入力されると、SDRAMアクセス制御部10は、この時点では最終列検出信号16がネゲートのままであるので、行活性化コマンドACを発行せず、直接リードコマンドRDを発行する。
【0085】
SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“8”で、データ信号25をデータバスに出力する。この例では、1回目のSDRAMアクセス要求信号21から2回目のアクセスのデータ出力まで8クロックサイクルを要することになる。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0086】
さらに、アクセスが続けられてクロックサイクル“c”でSDRAMアクセス要求信号21が入力されたとする。このときのアクセスが行の最後の列に対するアクセスであったとする。SDRAMアクセス制御部10は、クロックサイクル“c”でリードコマンドRDを出力する。
【0087】
SDRAMアクセス要求信号21が入力されたクロックサイクル“c”の次のクロックサイクル“d”で、バンク0に対応する連続アクセス制御ユニット4aの比較器45の比較結果が一致するため、このクロックサイクル“d”で、バンク0最終列検出信号14、そして最終列検出信号16がアサートされる。
【0088】
これによりSDRAMアクセス制御部10は、クロックサイクル“d”でバンク非活性化コマンドPRを発行して、バンク0を非活性化状態にする。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“e”で、データ信号25をデータバスに出力する。
【0089】
このようにこの実施の形態3によれば、実施の形態1と同様、行アドレスが同一で列アドレスが連続する連続アクセスモードの場合(途中に他のバンクのアクセスが入っても良い)、1回目のアクセスのときだけ行活性化を行ってリードコマンドを発行し、その後の行の最後の列に対するアクセスの前までは、リードコマンドを直接発行してバンク非活性化および行活性化を行わないようにしているので、SDRAMアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0090】
また、行の最終列の判定にアドレス信号を用いないので、実際の回路を実現しやすい。これは、アドレス信号配線は、実際の回路では長い距離引き回れて、遅延時間が大きいことが多く、動作周波数を高くする上で妨げになることがあるためである。
【0091】
また、この実施の形態3によれば、アクセス回数設定レジスタ44の設定値として、1行の列数を設定するのではなく、任意のアクセス回数を設定するようにすれば、行の最終列のときのみバンクを非活性化するのではなく、任意のアクセス回数分行活性化状態を保ちその後バンクを非活性化することができるので、設計の応用自由度が上がるという効果も有する。
【0092】
なお、上述した実施の形態3の構成に、実施の形態2で説明したアドレス保持部33、加算器34、アドレス選択回路36を追加し、実施の形態2で説明した動作を行わせるようにしてもよい。
【0093】
実施の形態4.
つぎに、図9〜図11を用いてこの発明の実施の形態4について説明する。図9はこの発明の実施の形態4によるSDRAM制御モジュール(SDRAMC)100を含むLSI3およびSDRAM300を示している。この図9に示す実施の形態4のSDRAMC100においては、先の実施の形態のように、各連続アクセス制御ユニット4a〜4dのアクセスモードレジスタ11に、今回のアクセスモードを(連続アクセスモードおよび単発アクセスモードの何れか)を設定するのではなく、バスマスタからのSDRAMアクセスモード信号50をSDRAMアクセス制御部10に直接入力するようにしている。
【0094】
ここで、バスマスタとは、SDRAMアクセスを伴うバストランザクションを発生するモジュール(CPU、DMAC(DMA転送コントローラ)、その他)のことである。
【0095】
SDRAMアクセスモード信号50は、複数のバスマスタより出力されたSDRAMアクセスモード信号のうち、SDRAM300に対するアクセス権を得たバスマスタのSDRAMアクセスモード信号が選択されたものである。また、このSDRAMアクセスモード信号50は、SDRAMアクセス要求信号21と同じクロックサイクルで入力されるものであり、SDRAMアクセス制御部10は、SDRAMアクセス要求信号21が入力されたときにSDRAMアクセス要求信号21がアサートされているときは、連続アクセスモードであると判断し、SDRAMアクセス要求信号21が入力されたときにSDRAMアクセス要求信号21がネゲートのときは、単発アクセスモードであると判定するものとする。
【0096】
図9に示すように、各連続アクセス制御ユニット5a〜5dは、当該バンクにおける行の最後の列を検出する最終列検出回路12を備えている。アクセスモードを設定するためのアクセスモードレジスタ11は存在しない。最終列検出回路12は、図3に示したように、列アドレス指示レジスタ40と、アドレス進行方向設定レジスタ42と、列アドレス監視部41とを備えており、前述と同様に動作する。最終列検出回路12からはバンクi最終列検出信号14が出力される。
【0097】
選択回路32は、SDRAMバンクアドレス31にしたがって、4つの連続アクセス制御ユニット5a〜5dからのバンクi最終列検出信号14を選択し、選択した信号を最終列検出信号16としてSDRAMアクセス制御部10に入力する。
【0098】
SDRAMアクセス制御部10は、SDRAMアクセス要求信号21とSDRAMアクセスモード信号50と選択回路32から入力される最終列検出信号16に基づいてRAS,CAS,WE,CSなどのSDRAM制御信号23を形成するとともに、入力されるバンクアドレス、行アドレスおよび列アドレスを含むアドレス信号22をSDRAM300に適した形に加工して(マルチプレクスされて)、行アドレス、列アドレスの順にアドレス信号24としてバンクアドレスとともにSDRAM300に入力する。
【0099】
次に動作について説明する。SDRAM300からの読み出し動作を例にとって説明する。いま、SDRAMアクセスモード信号50が“単発アクセスモード”を示す値を出力しているとする。この場合の動作は、実施の形態1において、バンク0のアクセスモードレジスタ11に“単発アクセスモード”を示す値が設定された場合と同じである。
【0100】
次に、“連続アクセスモード”のときの動作を説明する。バンク0が選択されているとする。
【0101】
SDRAMアクセスモード信号50が“連続アクセスモード”を示す値を出力しているときには、SDRAMアクセス制御部10は、このSDRAMアクセスモード信号50によって、“連続アクセスモード”であることを認知する。そして、SDRAMアクセス制御部10は、選択回路32から入力されている最終列検出信号16がアクティブではないときは、実施の形態1で説明したように、つぎのように動作する。
【0102】
SDRAMアクセス制御部10は、一回目のアクセスのときにだけ、SDRAM300のバンク0に対して行活性化コマンドを発行する。そして、この行活性化コマンドに続いてリードコマンドを発行する。このとき非活性化コマンドを発行せず、行を活性化状態に保って次のアクセスを待つ。次の同じ行の次の列に対するアクセスが発生したときは行が活性状態にあるため、新たに行活性化コマンドを発行せず、直接リードコマンドを発行する。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0103】
その後、同じ行の最後の列に対するアクセスになったとする。このときには選択回路32から出力される最終列検出信号16がアクティブとなる。SDRAMアクセス制御部10は、最終列検出信号16がアクティブになると、バンク0のバンク非活性化すなわちプリチャージを実行する。この後、バンク0へのアクセスが発生すると、SDRAMアクセス制御部10は、新たに行を活性化して同様の動作を繰り返す。
【0104】
次に、図10および図11のタイムチャートを用いて連続アクセスモードの際の各処理のタイミングについてさらに詳細に説明する。図10は連続アクセスモードのときの動作を、図11は単発アクセスモードのときの動作を示すものである。
【0105】
図10において、クロックサイクル“1”でSDRAMアクセス要求信号21がアサートされる。また、この同じクロックサイクルのときに、SDRAMアクセスモード信号50が“連続アクセスモード”を示す値“H”となる。このクロックサイクル“1”において、SDRAMアクセス制御部10は、SDRAM300のバンク0の行活性化コマンドACを発行する。SDRAMアクセス制御部10は、次の、クロックサイクル“2”では、ディセレクトコマンドDSを発行する。
【0106】
次に、クロックサイクル“3”では、SDRAMアクセス制御部10はリードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後、データ信号25をデータバスに出力する(クロックサイクル“5”)。
【0107】
最終列検出回路12は、リードコマンドRDを発行したクロックサイクル“3”で、SDRAMアドレス信号22の列アドレス部分30を判定するが、今回は最終列でないので、バンク0最終列検出信号14をアサートしない。したがって、選択回路32からの最終列検出信号16もアサートされない。
【0108】
SDRAMアクセス制御部10は、SDRAMアクセス要求信号の入力時(クロックサイクル“1”)に、SDRAMアクセスモード信号50が“連続アクセスモード”を示す値を出力していたことと、リードコマンドRDの発行時のクロックサイクル“3”に、最終列検出信号16がアサートされていないことに基づいて、つぎのクロックサイクル“4”“5”で、ディセレクトコマンドDSを発行してバンク0を行活性化した状態のままに保つ。
【0109】
次に、SDRAMアクセス要求信号21および“H”のSDRAMアクセスモード信号50がクロックサイクル“6”で入力されると、SDRAMアクセス制御部10は、この時点では最終列検出信号16がネゲートのままであるので、行活性化コマンドACを発行せず、直接リードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“8”で、データ信号25をデータバスに出力する。
【0110】
クロックサイクル“6”でSDRAMアクセス要求信号21がアサートされるのと同時に、SDRAMアクセスモード信号50が“連続アクセスモード”を示す値“H”を示しているため、SDRAMアクセス制御部10は、つぎのクロックサイクル“7”でディセレクトコマンドDSを発行してバンク0を行活性化した状態のままに保つ。この例では、1回目のSDRAMアクセス要求から2回目のアクセスのデータ出力まで8クロックサイクルを要することになる。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0111】
さらにアクセスを続けてクロックサイクル“c”でSDRAMアクセス要求信号21が発生したとする。このとき行の最後の列アクセスであったとすると、最終列検出回路12では、SDRAMアドレス信号22の列アドレス部分30を判定し、バンク0最終列検出信号14をアサートする。したがって、選択回路32からの最終列検出信号16もアサートされる。
【0112】
SDRAMアクセス制御部10は、クロックサイクル“c”で、SDRAMアクセス要求信号21がアサートされるのと同時に、SDRAMアクセスモード信号50が“連続アクセスモード”を示す値“H”を示していることと、最終列検出信号16が“H”になっていることに基づいて、つぎのクロックサイクル“d”でバンク非活性化コマンドPRを発行し、バンク0を非活性化状態にする。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“e”で、データ信号25をデータバスに出力する。
【0113】
一方、図11に示すように、SDRAMアクセス要求信号21がアサートされたクロックサイクルで(図11の場合はクロックサイクル“6”)、SDRAMアクセスモード信号50が“単発アクセスモード”を示す値“L”を出力している場合には、SDRAMアクセス制御部10は、現在活性化しているバンクを非活性化し(バンク非活性化コマンドPR)、つぎのクロックサイクル“7”で、アクセス要求のあった行の活性化(行活性化コマンドAC)を行う。さらに、RAS−CASレイテンシ後のクロックサイクル“9”において、リードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“a”で、データ信号25をデータバスに出力する。
【0114】
このようにこの実施の形態4によれば、実施の形態1と同様、行アドレスが同一で列アドレスが連続する連続アクセスモードの場合(途中に他のバンクのアクセスが入っても良い)、1回目のアクセスのときだけ行活性化を行ってリードコマンドを発行し、その後の行の最後の列に対するアクセスの前までは、リードコマンドを直接発行してバンク非活性化および行活性化を行わないようにしているので、SDRAMアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0115】
また、SDRAMアクセスモードを設定するレジスタ等のハードウェアを持たなくてよいので、回路を簡略化できる。さらに、あるバスマスタが連続SDRAMアクセスを行っている最中に、他のバスマスタが同じバンクに対するアクセスを行ったときも、自動的にバンク非活性化、および行活性化を行うことができ、自由度が高い応用設計を実現できる。
【0116】
なお、この実施の形態4において、最終列検出回路12の内部構成を実施の形態3のように、アクセス回数カウント部43、アクセス回数設定レジスタ44、および比較器45による構成に置換するようにしてもよい。さらに、この実施の形態4の構成に、実施の形態2で説明したアドレス保持部33、加算器34、アドレス選択回路36を追加し、実施の形態2で説明した動作を行わせるようにしてもよい。
【0117】
なお、上記の各実施の形態においては、SDRAMに対する読み出し動作について説明したが、ライトコマンドを使用する書き込み動作の際も同様の動作を行うことで、上記の同様の効果を得ることができる。
【0118】
【発明の効果】
以上説明したように、この発明によれば、連続アクセスモード時、同一行への最初のアクセス要求のときに同期型半導体記憶装置の行活性化を行い、その後最終列検出信号がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドを同期型半導体記憶装置に出力し、最終列検出信号がアサートされると、アクセスされていた行の非活性化を行うようにしているので、同期型半導体記憶装置に対するアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0119】
つぎの発明によれば、同期型半導体記憶装置に入力されるアドレス信号に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出するようにしているので、最終列アドレスへのアクセスであることを確実に検出することができる。
【0120】
つぎの発明によれば、アクセス要求の計数値と所定の設定値との比較に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出するようにしているので、アドレス信号を用いる場合に比べ、回路設計が容易となり、実際の回路を実現し易くなる。
【0121】
つぎの発明によれば、アクセスモード信号が設定されるアクセスモードレジスタを各バンクに対応して各別に設けるようにしているので、アクセス制御部はこれらのアクセスモードレジスタの設定情報から今回のアクセスが連続アクセスモードであることを確実に判定することができる。
【0122】
つぎの発明によれば、バスマスタからのアクセスモード信号がアクセス制御部に入力されるようにしているので、アクセスモードを設定するレジスタ等のハードウェアを持たずに済み、回路を簡略化できる。さらに、あるバスマスタが連続SDRAMアクセスを行っている最中に、他のバスマスタが同じバンクに対するアクセスを行ったときも、自動的にバンク非活性化、および行活性化を行うことができ、自由度が高い応用設計を実現できる。
【0123】
つぎの発明によれば、連続アクセスモード時、最終列検出信号がアサートされると、アクセスされていた行の非活性化を行い、その後直ちに、アドレス選択回路から入力される次アドレス演算部からの次アドレスが示す行の活性化を行うようにしているので、次の行のアクセス要求までに時間があった場合、次の行のアクセスが発生したときには既にこの行の活性化を終えており、その後すぐにリードあるいはライトコマンドを発行することができる。従ってアクセスに要するクロックサイクルを低減することができる。
【図面の簡単な説明】
【図1】この発明にかかる同期型半導体記憶装置のアクセス制御装置の実施の形態1の構成を示すブロック図である。
【図2】SDRAMのアドレス構成の一例を示す図である。
【図3】最終列検出回路の内部構成を示すブロック図である。
【図4】実施の形態1の同期型半導体記憶装置のアクセス制御装置の連続アクセスモード時の動作を説明するためのタイムチャートである。
【図5】この発明にかかる同期型半導体記憶装置のアクセス制御装置の実施の形態2の構成を示すブロック図である。
【図6】実施の形態2の同期型半導体記憶装置のアクセス制御装置の連続アクセスモード時の動作を説明するためのタイムチャートである。
【図7】この発明にかかる同期型半導体記憶装置のアクセス制御装置の実施の形態3の構成を示すブロック図である。
【図8】実施の形態3の同期型半導体記憶装置のアクセス制御装置の連続アクセスモード時の動作を説明するためのタイムチャートである。
【図9】この発明にかかる同期型半導体記憶装置のアクセス制御装置の実施の形態4の構成を示すブロック図である。
【図10】実施の形態4の同期型半導体記憶装置のアクセス制御装置の連続アクセスモード時の動作を説明するためのタイムチャートである。
【図11】実施の形態4の同期型半導体記憶装置のアクセス制御装置の単発アクセスモード時の動作を説明するためのタイムチャートである。
【図12】従来技術を示すブロック図である。
【図13】従来技術のSDRAMに対するアクセスを説明するためのタイムチャートである。
【符号の説明】
2a〜2d,4a〜4d,5a〜5d 連続アクセス制御ユニット、10 SDRAMアクセス制御部、11 アクセスモードレジスタ、12 最終列検出回路、20 アクセス要求分配器、32 選択回路、33 アドレス保持部、34 加算器、36 アドレス選択回路、40 列アドレス指示レジスタ、41 列アドレス監視部、42 アドレス進行方向設定レジスタ、43 アクセス回数カウント部、44 アクセス回数設定レジスタ、45 比較器。
【0001】
【発明の属する技術分野】
この発明は、同期型半導体記憶装置(SDRAM)のアクセス制御装置に関するものである。
【0002】
【従来の技術】
近年のマイクロプロセッサの動作速度の向上に伴い、主記憶装置として用いられるダイナミックランダムアクセスメモリ等の高速アクセスを実現するために、クロック信号に同期して動作する同期型DRAM(シンクロナスDRAM:以下、SDRAMと称す)が用いられている。このような、SDRAMの内部動作の制御は、ロウ(行)系動作およびコラム(列)系動作に分割して制御される。
【0003】
また、SDRAMにおいては、一層の高速動作を可能とするために、メモリセルアレイを互いに独立動作が可能なバンクに分割したバンク構成が用いられている。
【0004】
図12は、従来のSDRAM制御モジュール(以下、SDRAMC)90を含むLSI3を示している。SDRAMC90はSDRAMアクセス制御部1を有しており、SDRAMアクセス制御部1は、入力されるSDRAMアクセス要求信号21およびアドレス信号22に基づきRAS,CAS,WE,CSなどのSDRAM制御信号23およびアドレス信号24(バンクアドレス、アドレス)を形成し、これらを所定のタイミングでSDRAM300に入力することで、SDRAM300に対しデータ信号25を書き込むと共に、SDRAM300からデータ信号25を読み出す。
【0005】
次に動作について説明する。SDRAMからの読み出し動作を例にとって説明する。SDRAMC90に他のモジュール(図示しない)からSDRAMアクセス要求信号21とアドレス信号22が入力されると、SDRAMアクセス制御部1はSDRAM300に対して行活性化コマンド、次いでリードコマンド、最後にバンク非活性化コマンド(プリチャージコマンド)を発行する。これらのコマンドは、RAS,CAS,WE,CSなどのSDRAM制御信号23の“H”,“L”の組み合わせで定義される。アドレス信号22はSDRAMアクセス制御部1でSDRAM300に適した形に加工されて(マルチプレクスされて)、行アドレス、列アドレスの順にアドレス信号線24を通してSDRAM300に与えられる。SDRAM300はリードコマンドが発行されてから、CASレイテンシ分の時間経過後、データバスにデータ信号25を出力する。SDRAM300から出力されたデータをLSI3内のモジュール(図示しない)が読み込む。
【0006】
図13を用いてさらに詳細に説明する。ここでは、SDRAM300の同じバンクの同じ行に2回のリードアクセスが行われるとする。SDRAM300のバースト転送時のバースト長は1で、このバースト長はSDRAMアクセスが行われる以前に設定されているものとする。
【0007】
クロックサイクル“1”でSDRAMアクセス要求信号21がアサートされる。これを受けてSDRAMアクセス制御部1はSDRAM行活性化コマンドACを発行する。次いで、クロックサイクル“3”でリードコマンドRDを発行する。ここでは、RAS−CASレイテンシに2クロックサイクル必要であるとする。したがって、行活性化コマンドACの発行からリードコマンドRDの発行まで2クロックサイクル必要であるから、行活性化コマンドACとリードコマンドRDの間にディセレクトコマンドDSを挿入している(クロックサイクル“2”)。
【0008】
最後に、指定されたバンクを非活性にするバンク非活性化コマンド(プリチャージコマンド)PRを発行する。ここでは行活性化コマンドACからバンク非活性化コマンドPRまで5クロックサイクル必要であるとする。このため非活性化コマンドPRの発行はクロックサイクル“6”となる。またここでは、CASレイテンシに2クロックサイクル必要であるとする。このため、リードコマンドRDを発行(クロックサイクル“3”)してから2クロック後にデータ信号25がデータバスに出力される(クロックサイクル“5”)。
【0009】
SDRAMアクセス要求信号21は、SDRAMのデータ出力の次のクロックサイクルでアサートされるものとする。よって、2回目のSDRAMアクセス要求信号21はクロックサイクル“6”でアサートされる。このSDRAMでは、バンク非活性化コマンドPRが発行されてから行活性化コマンドACが発行されるまで2クロックサイクル必要であるとする。従って、SDRAMアクセス要求信号21はクロックサイクル“6”でアサートされるが、SDRAM行活性化コマンドACが発行されるのはクロックサイクル“8”となる。この後1回目のアクセスと同様にして2回目のSDRAMアクセスが行われる。2回目のSDRAMリードデータはクロックサイクル“12”に出力される。この例では、1回目のSDRAMアクセス要求から2回目のアクセスのデータ出力まで12サイクルを要することになる。
【0010】
【発明が解決しようとする課題】
このように従来のSDRAMCでは、複数回連続でSDRAM300の同じバンクの同じ行に連続的にアクセスする場合でも、行活性化(AC)とバンク非活性化(PR)を、SDRAMアクセス要求信号21がアサートされる度に繰り返すようにしているので、多くのクロックサイクルを消費し、非効率的であるという問題点がある。
【0011】
この発明は上記に鑑みてなされたもので、同じバンクの同じ行に対する連続アクセスが発生した場合の、SDRAMに対するアクセスに要するクロックサイクルを削減して、効率の良いメモリアクセスをなし得る同期型半導体記憶装置のアクセス制御装置を得ることを目的とする。
【0012】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかる同期型半導体記憶装置のアクセス制御装置は、同一行の連続した列に対して連続的にアクセスする連続アクセスモードによるアクセスを、記憶領域が複数のバンクに分割された同期型半導体記憶装置に対して実行する同期型半導体記憶装置のアクセス制御装置において、前記連続アクセスモード時、前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出し、最終列検出信号を出力する最終列検出回路を各バンクに対応して各別に設けるとともに、前記アドレス信号に基づいて前記複数の最終列検出回路からの最終列検出信号を択一選択する選択回路と、前記連続アクセスモード時、同一行への最初のアクセス要求のときに同期型半導体記憶装置の行活性化を行い、その後前記選択回路から最終列検出信号がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドを前記同期型半導体記憶装置に出力し、前記選択回路からの最終列検出信号がアサートされると、前記アクセスされていた行の非活性化を行うアクセス制御部とを備えることを特徴とする。
【0013】
この発明によれば、連続アクセスモード時、同一行への最初のアクセス要求のときに同期型半導体記憶装置の行活性化を行い、その後最終列検出信号がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドを同期型半導体記憶装置に出力し、最終列検出信号がアサートされると、アクセスされていた行の非活性化を行うようにしており、これにより同期型半導体記憶装置に対するアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0014】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、上記の発明において、前記最終列検出回路は、前記同期型半導体記憶装置に入力されるアドレス信号に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出することを特徴とする。
【0015】
この発明によれば、同期型半導体記憶装置に入力されるアドレス信号に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出するようにしており、これにより、最終列アドレスへのアクセスであることを確実に検出することができる。
【0016】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、前記最終列検出回路は、アクセス要求の計数値と所定の設定値との比較に基づいて前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出することを特徴とする。
【0017】
この発明によれば、アクセス要求の計数値と所定の設定値との比較に基づいて前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出するようにしており、これによりアドレス信号を用いる場合に比べ、回路設計が容易となり、実際の回路を実現し易くなる。
【0018】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、アクセスモード信号が設定されるアクセスモードレジスタを各バンクに対応して各別に設け、前記選択回路は、前記アドレス信号に基づいて前記複数のアクセスモードレジスタからのアクセスモード信号を択一選択して前記アクセス制御部に入力し、前記アクセス制御部は前記選択回路からのアクセスモード信号に基づき今回のアクセスが連続アクセスモードであることを判断することを特徴とする。
【0019】
この発明によれば、アクセスモード信号が設定されるアクセスモードレジスタを各バンクに対応して各別に設けるようにしており、アクセス制御部はこれらのアクセスモードレジスタの設定情報から今回のアクセスが連続アクセスモードであることを確実に判定することができる。
【0020】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、前記アクセス制御部には、バスマスタからのアクセスモード信号が直接入力され、アクセス制御部は前記バスマスタからのアクセスモード信号に基づき今回のアクセスが連続アクセスモードであることを判断することを特徴とする。
【0021】
この発明によれば、バスマスタからのアクセスモード信号がアクセス制御部に入力されるようにしており、これによりアクセスモードを設定するレジスタ等のハードウェアを持たずに済み、回路を簡略化できる。さらに、あるバスマスタが連続SDRAMアクセスを行っている最中に、他のバスマスタが同じバンクに対するアクセスを行ったときも、自動的にバンク非活性化、および行活性化を行うことができ、自由度が高い応用設計を実現できる。
【0022】
つぎの発明にかかる同期型半導体記憶装置のアクセス制御装置は、前記同期型半導体記憶装置へのアドレス信号の次アドレスを演算する次アドレス演算部と、前記最終列検出信号がアサートされた後の所定の期間以外は前記同期型半導体記憶装置へのアドレス信号を選択し、前記最終列検出信号がアサートされた後の所定の期間のときは前記次アドレス演算部からの次アドレスを選択するアドレス選択回路とを更に備え、前記アクセス制御部は、前記連続アクセスモード時、前記選択回路からの最終列検出信号がアサートされると、前記アクセスされていた行の非活性化を行い、その後直ちに、前記アドレス選択回路から入力される前記次アドレス演算部からの次アドレスが示す行の活性化を行うことを特徴とする。
【0023】
この発明によれば、連続アクセスモード時、最終列検出信号がアサートされると、アクセスされていた行の非活性化を行い、その後直ちに、アドレス選択回路から入力される次アドレス演算部からの次アドレスが示す行の活性化を行うようにしており、これにより次の行のアクセス要求までに時間があった場合、次の行のアクセスが発生したときには既にこの行の活性化を終えており、その後すぐにリードあるいはライトコマンドを発行することができる。従ってアクセスに要するクロックサイクルを低減することができる。
【0024】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる同期型半導体記憶装置のアクセス制御装置の好適な実施の形態を詳細に説明する。
【0025】
実施の形態1.
図1はこの発明の実施の形態1によるSDRAM制御モジュール(SDRAMC)100を含むLSI3およびSDRAM300を示している。SDRAM300は複数(i個の)のバンク(この場合、バンク0〜バンク3の4バンクであるとする)に分割されている。SDRAM制御モジュール(SDRAMC)100は、バンク毎に備えられた複数の(この場合4個)連続アクセス制御ユニット2a〜2dと、各連続アクセス制御ユニット2a〜2dからの出力信号のいずれかをバンクアドレス31によって選択する選択回路32と、SDRAMアクセス制御部10とを有している。
【0026】
図2に、アクセスするSDRAM300のアドレス構成の一例を示す。アドレスは、バンクアドレス、行アドレス、列アドレスを有しており、この場合バンクアドレスがA6、A7の2ビット、行アドレスがA8〜A22の15ビット、列アドレスがA23〜A31の9ビットであるとする。SDRAMアクセス制御部10には、このようなアドレス構成を持つアドレス信号22が入力される。このアドレス信号22のうちの10ビットのアドレス30(A22〜A31)が連続アクセス制御ユニット2a〜2dに入力される。この場合、連続アクセス制御ユニット2a〜2dには、9ビットではなく10ビットが入力されているが、その理由は後述する。また、選択回路32には、アドレス信号22のうちの2ビットのバンクアドレス31(A6、A7)が入力される。
【0027】
各連続アクセス制御ユニット2a〜2dは、SDRAM300の当該バンクへのアクセス方法を“連続アクセスモード”および“単発アクセスモード”の何れかに設定するアクセスモードレジスタ11と、当該バンクにおける行の最後の列を検出する最終列検出回路12とをそれぞれ備えている。
【0028】
各連続アクセス制御ユニット2a〜2dに設けられるアクセスモードレジスタ11は、設定された情報をバンクiアクセスモード信号13(i=1〜3)として、選択回路32に出力する。
【0029】
各連続アクセス制御ユニット2a〜2dに設けられる最終列検出回路12は、当該バンクにおける行の最後の列へのアクセスを検出した場合、その旨を示すバンクi最終列検出信号14を選択回路32に出力する。
【0030】
図3は、最終列検出回路12の内部構成を示すもので、最終列検出回路12は、SDRAMアドレスのうちどの部分が列アドレスであるのかを示す値(情報)を設定する列アドレス指示レジスタ40と、連続してSDRAMアクセスが発生するときのアドレスの進行方向(増加あるいは減少)を示す情報がセットされるアドレス進行方向設定レジスタ42と、アドレス進行方向設定レジスタ42および列アドレス指示レジスタ40のセット内容に基づき列アドレス30を監視して行の最終列へのアクセスを検出する列アドレス監視部41とを備えている。
【0031】
列アドレス指示レジスタ40は、この場合10ビットであり、SDRAMの列アドレス30が10ビット(A22〜A31)の範囲内である場合に対応することができる。図2に示したように、この場合、列アドレスは、A23〜A31の9ビットであるので、列アドレス指示レジスタ40には、最上位ビットのみを“0”にした“0111111111”が設定される。
【0032】
列アドレス監視部41は、アドレス進行方向設定レジスタ42に設定されているアドレス進行方向が“増加方向”を示す値である場合は、列アドレス指示レジスタ40に値“1”が設定されているビットに対応する列アドレス30のビット(この場合A23〜A31)がすべて“1”のとき、バンクi最終列検出信号14をアクティブにする。また、列アドレス監視部41は、アドレス進行方向設定レジスタ42に設定されているアドレス進行方向が“減少方向”を示す値である場合は、列アドレス指示レジスタ40に値“1”が設定されているビットに対応する列アドレス30のビットがすべて“0”のとき、バンクi最終列検出信号14をアクティブにする。
【0033】
選択回路32は、SDRAMバンクアドレス31にしたがって、4つの連続アクセス制御ユニット2a〜2dからの一組のバンクiアクセスモード信号13およびバンクi最終列検出信号14を選択し、選択した信号をSDRAMアクセスモード信号15および最終列検出信号16としてSDRAMアクセス制御部10に入力する。
【0034】
SDRAMアクセス制御部10は、SDRAMアクセス要求信号21の他に選択回路32から入力されるアクセスモード信号15および最終列検出信号16に基づいてRAS,CAS,WE,CSなどのSDRAM制御信号23を形成するとともに、入力されるバンクアドレス、行アドレスおよび列アドレスを含むアドレス信号22をSDRAM300に適した形に加工して(マルチプレクスされて)、行アドレス、列アドレスの順にアドレス信号24としてバンクアドレスとともにSDRAM300に入力する。これらの信号がSDRAM300に入力されることで、SDRAM300に対しデータ信号25を書き込むと共に、SDRAM300からデータ信号25を読み出す。
【0035】
次に動作について説明する。SDRAMからの読み出し動作を例にとって説明する。まず、各バンクの連続アクセス制御ユニット2a〜2dのアクセスモードレジスタ11に“連続アクセスモード”および“単発アクセスモード”のいずれでSDRAM300にアクセスを行うのかを示す情報を設定する。
【0036】
つぎに、SDRAMC100に図示しない他のモジュールからSDRAMアクセス要求信号21とアドレス信号22が入力される。この場合、アクセスはSDRAM300のバンク0へのアクセスであるとする。
【0037】
まず、バンク0に対応する連続アクセス制御ユニット2aのアクセスモードレジスタ11に“単発アクセスモード”を示す値が設定されている場合について説明する。
【0038】
この場合、選択回路32は、バンクアドレス31に基づいて、バンク0に対応する連続アクセス制御ユニット2aのアクセスモードレジスタ11に設定された“単発アクセスモード”を示すバンクiアクセスモード信号13を選択し、この選択した信号をSDRAMアクセスモード信号15としてSDRAMアクセス制御部10に出力する。
【0039】
SDRAMアクセス制御部10は、従来技術と同様にしてSDRAM300へのアクセスを行う。すなわち、SDRAM300に対して、行活性化コマンド、次いでリードコマンド、最後にバンク非活性化コマンド(プリチャージコマンド)を発行する。また、SDRAMアクセス制御部10は、アドレス信号22をSDRAM300に適した形に加工して(マルチプレクスして)、行アドレス、列アドレスの順にアドレス信号24としてSDRAM300に与える。SDRAM300では、リードコマンドが発行されてからCASレイテンシ分の時間経過後、データ信号25をデータバスに出力する。データバスに出力されたデータ信号25をLSI3内のモジュール(図示しない)が読み込む。
【0040】
次に、バンク0に対応する連続アクセス制御ユニット2aのSDRAMアクセスモードレジスタ11に“連続アクセスモード”を示す値が設定されている場合について説明する。
【0041】
この場合は、選択回路32は、バンクアドレス31に基づいて、バンク0に対応する連続アクセス制御ユニット2aのSDRAMアクセスモードレジスタ11に設定された“連続アクセスモード”を示すバンクiアクセスモード信号13を選択し、この選択した信号をSDRAMアクセスモード信号15としてSDRAMアクセス制御部10に出力する。
【0042】
SDRAMアクセス制御部10は、このSDRAMアクセスモード信号15によって“連続アクセスモード”であることを認知する。そして、SDRAMアクセス制御部10は、選択回路32から入力されている最終列検出信号16がアクティブではないときには、つぎのように動作する。
【0043】
SDRAMアクセス制御部10は、同一行に対する一回目のアクセスのときにだけ、SDRAM300のバンク0に対して行活性化コマンドを発行する。そして、この行活性化コマンドに続いてリードコマンドを発行する。このとき非活性化コマンドを発行せず、行を活性化状態に保って次のアクセスを待つ。次の同じ行の次の列に対するアクセスが発生したときは行が活性状態にあるため、新たに行活性化コマンドを発行せず、直接リードコマンドを発行する。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0044】
その後、アクセスが同じ行の最後の列に対するアクセスであるとき、バンク0に対応する連続アクセス制御ユニット2aの最終列検出回路12が、行の最後の列に対するアクセスであることを検出し、バンク0最終列検出信号14をアクティブにする。したがって、選択回路32からはアクティブになった最終列検出信号16がSDRAMアクセス制御部10に入力される。最終列検出信号16がアクティブになると、SDRAMアクセス制御部10は、バンク0のバンク非活性化すなわちプリチャージを実行する。このバンクの非活性化では、実際には、アドレス信号22で指定された行に対する非活性化が行われる。この後、バンク0へのアクセスが発生すると、SDRAMアクセス制御部10は、新たに行を活性化して同様の動作を繰り返す。
【0045】
次に、図4のタイムチャートを用いて連続アクセスモードの際の各処理のタイミングについてさらに詳細に説明する。SDRAMアクセス要求信号21が入力される度に、アドレス信号22は、図4に示すように、同一行アドレスで列アドレスが連続する連続アドレスa0、a1、…、anとして更新される。
【0046】
クロックサイクル“1”でSDRAMアクセス要求信号21がアサートされる。このクロックサイクル“1”において、SDRAMアクセス制御部10は、SDRAM300のバンク0の行活性化コマンドACを発行する。SDRAMアクセス制御部10は、次の、クロックサイクル“2”では、ディセレクトコマンドDSを発行する。
【0047】
次に、クロックサイクル“3”では、SDRAMアクセス制御部10はリードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後、データ信号25をデータバスに出力する(クロックサイクル“5”)。ここでは、CASレイテンシ時間を2クロックサイクルとしているので、リードコマンドRDを発行してから2クロック後にデータ信号25がデータバスに出力される。
【0048】
リードコマンドが発行されたクロックサイクル“3”において、最終列検出回路12は、SDRAMアドレスの列アドレス部分30をチェックして最終列でないことを確認するので、最終列検出信号16はネゲートのままである。最終列検出信号16がネゲートのままであるので、SDRAMアクセス制御部10は、クロックサイクル“4”“5”では、ディセレクトコマンドDSを発行して、バンク0を行活性化した状態のままに保つ。
【0049】
次に、SDRAMアクセス要求信号21がクロックサイクル“6”で入力されると、SDRAMアクセス制御部10は、この時点では最終列検出信号16がネゲートのままであるので、行活性化コマンドACを発行せず、直接リードコマンドRDを発行する。
【0050】
SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“8”で、データ信号25をデータバスに出力する。この例では、1回目のSDRAMアクセス要求信号から2回目のアクセスのデータ出力まで8クロックサイクルを要することになる。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0051】
さらに、アクセスが続けられてクロックサイクル“c”でSDRAMアクセス要求信号21が入力されたとする。このときのアクセスが行の最後の列に対するアクセスであったとすると、最終列検出回路12では、前述したようにして、今回のアクセスが行の最後の列に対するアクセスであることを検出し、バンク0最終列検出信号14をアクティブにする。したがって、選択回路32から出力される最終列検出信号16がアクティブとなる。SDRAMアクセス制御部10は、クロックサイクル“c”において、SDRAMアクセス要求信号21が入力されたときには、最終列検出信号16がアクティブであるので、クロックサイクル“c”でリードコマンドRDを出力するとともに、つぎのクロックサイクル“d”で、バンク0の非活性化コマンドPRを発行し、バンク0(実際には選択されている行)を非活性化状態にする。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“e”で、データ信号25をデータバスに出力する。
【0052】
このようにこの実施の形態1によれば、行アドレスが同一で列アドレスが連続する連続アクセスモードの場合、1回目のアクセスのときだけ行活性化を行ってリードコマンドを発行し、その後の行の最後の列に対するアクセスの前までは、リードコマンドを直接発行してバンク非活性化および行活性化を行わないようにしているので、SDRAMアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0053】
実施の形態2.
つぎに、図5および図6を用いてこの発明の実施の形態2について説明する。図5はこの発明の実施の形態2によるSDRAM制御モジュール(SDRAMC)100を含むLSI3およびSDRAM300を示している。この図5に示す実施の形態2のSDRAMC100においては、先の実施の形態1の構成に、アドレス保持部33、+1インクリメント動作を行う加算器34、アドレス選択回路36を追加するようにしている。
【0054】
アドレス保持部33は、SDRAMアドレス信号22を一時保持し、一時保持したSDRAMアドレス信号22を加算器34に出力する。加算器34は、アドレス保持部33から入力されるアドレス値を例えば+1することにより、列アドレスが連続する連続アクセスが行われるときの次アドレスを計算し、計算された次アドレス信号35をアドレス選択回路36に入力する。アドレス選択回路36は、SDRAMアクセス制御部10から入力されるアドレス選択制御信号38に基づいて、SDRAMアドレス信号22と加算器34から入力される次アドレス信号35のうちの何れかを選択する。
【0055】
SDRAMアクセス制御部10は、単発アクセスモードのとき、または連続アクセスモードのときであってかつ最終列アクセス以外のアクセスのときには、アドレス選択制御信号38を例えば“L”にし、連続アクセスモードのときであってかつ最終列アクセスのときには、アドレス選択制御信号38を“H”にする。アドレス選択回路36は、アドレス選択制御信号38が“L”のときには、SDRAMアドレス信号22を選択してSDRAMアクセス制御部10に入力し、アドレス選択回路36は、アドレス選択制御信号38が“H”のときには、加算器34から入力される次アドレス信号35を選択してSDRAMアクセス制御部10に入力するよう動作する。
【0056】
次に図6のタイムチャートを用いて実施の形態2の動作について説明する。前記同様、SDRAMからの読み出し動作を例にとって説明する。
【0057】
単発アクセスモードのときには、実施の形態1で説明した単発アクセスモードと同様に動作する。
【0058】
連続アクセスモードのときであってかつ最終列アクセス以外のアクセスのときには、アドレス選択回路36は、アドレス選択制御信号38にしたがってSDRAMアドレス信号22を選択するので、連続アクセス制御ユニット2a〜2d、選択回路32およびSDRAMアクセス制御部10は、先の実施の形態1で説明したのと同様に動作する(図6クロックサイクル“1”〜クロックサイクル“8”参照)。この期間中、次アドレス信号35は、SDRAMアクセス要求信号21が入力される度に、SDRAMアドレス信号22を+1した値に更新されるが、この期間中には、これらの次アドレス信号35は、アドレス選択回路36で選択されることがないので、使用されることはない。
【0059】
クロックサイクル“c”でSDRAMアクセス要求信号21が入力され、このときのアクセスが行の最後の列に対するアクセスであったとすると、最終列検出回路12では、前述したようにして、今回のアクセスが行の最後の列に対するアクセスであることを検出する。この結果、最終列検出信号16がアクティブになる。SDRAMアクセス制御部10は、クロックサイクル“c”において、SDRAMアクセス要求信号21が入力されたときには、最終列検出信号16がアクティブであるので、クロックサイクル“c”でリードコマンドRDを出力するとともに、つぎのクロックサイクル“d”で、バンク0の非活性化コマンドPRを発行し、バンク0を非活性化状態にする。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“e”で、データ信号25をデータバスに出力する。
【0060】
SDRAMアクセス制御部10は、最終列検出信号16が入力されたときには、バンク非活性化の次のクロックサイクル“e”で、アドレス選択制御信号38を“L”から“H”に切り換える。これにより、アドレス選択回路36は、クロックサイクル“e”で、次アドレス信号35がSDRAMアドレス信号37に出力されるように入力信号を切り換える。すなわち、SDRAMアクセス制御部10は、最終列検出信号16がアサートされた後の所定の期間以外はアドレス選択制御信号38を“L”とし、最終列検出信号16がアサートされた後の所定の期間のときはアドレス選択制御信号38を“H”として次アドレス信号35が選択されるようにしている。
【0061】
この時点での次アドレス信号35は、次行の最初のアドレス(図6ではan+1)となっている。SDRAMアクセス制御部10は、クロックサイクル“e”で、SDRAMアドレス信号37(次アドレス信号35が選択)で示されるSDRAM300の行の活性化を行う(行活性化コマンドAC)。アドレス信号37の行アドレス部分は、いままでアクセスを行っていたSDRAM300の行の次の行アドレスを示しているから、行活性化コマンドACによっていままでアクセスを行っていたSDRAM300の行の次の行の活性化が行なわれることになる。
【0062】
このように実施の形態2によれば、ある行の最終列アクセスが終了してその行の非活性化(PR)を行った後、直ぐに次の行の活性化を次の行のアクセス要求の前に予め行うようにしているので、次の行のアクセス要求までに時間があった場合、次の行のアクセスが発生したときには既にこの行の活性化を終えており、すぐにリードあるいはライトコマンドを発行することができ、これによりSDRAMアクセスに要するクロックサイクルを低減することができる。
【0063】
実施の形態3.
つぎに、図7および図8を用いてこの発明の実施の形態3について説明する。図7はこの発明の実施の形態3によるSDRAM制御モジュール(SDRAMC)100を含むLSI3およびSDRAM300を示している。この図7に示す実施の形態3のSDRAMC100においては、各連続アクセス制御ユニット4a〜4dにおいて、バンクi最終列検出信号14を発生するための回路構成として、SDRAMアクセス要求信号21をカウントするアクセス回数カウント部43による構成を採用することにより、実施の形態1のように、最終列の判定にアドレス信号22(正確には列アドレス30)を用いないようにしている。なお、以下の説明ではバースト長を「1」としている。
【0064】
図7において、SDRAMアクセス要求分配器20は、SDRAMバンクアドレス31に従ってSDRAMアクセス要求信号21を、バンク0アクセス要求信号41a〜バンク3アクセス要求信号41dとして連続アクセス制御ユニット4a〜4dへ分配する。すなわち、バンク0アクセス要求信号41a〜バンク3アクセス要求信号41dのうち、SDRAMバンクアドレス31で指定されたバンクに対応するバンクiアクセス要求信号がアクティブとなる。
【0065】
各連続アクセス制御ユニット4a〜4dは、前記同様、バンク0〜バンク3にそれぞれ対応しており、アクセスモードレジスタ11と、当該バンクにおける行の最後の列を検出する最終列検出回路12とをそれぞれ備えている。
【0066】
アクセスモードレジスタ11には、今回のアクセスが“連続アクセスモード”および“単発アクセスモード”の何れであるかを示す情報と、バースト長が設定される。
【0067】
最終列検出回路12は、SDRAM300へのアクセス回数をカウントするアクセス回数カウント部43と、SDRAM300へのアクセス回数が設定されるアクセス回数設定レジスタ44と、アクセス回数設定レジスタ44に設定されている値とアクセス回数カウント部43のカウント値を比較する比較器45とを備えている。
【0068】
アクセスモードレジスタ11からアクセス回数カウント部43に入力されるカウント制御信号46は、アクセスモードレジスタ11に設定される値が“連続アクセスモード”のときにアクティブ(オン)となる。アクセス回数カウント部43は、カウント制御信号46がオンのときにカウント動作を行うもので、バースト長が1のときには、SDRAMアクセス要求分配器20からバンク0アクセス要求信号41aが入力される毎に+1のカウント動作を実行する。なお、アクセス回数カウント部43は、バースト長が「n」のときには、アクセス要求信号が入力される度に、+nのカウント動作を実行する。バースト長は、アクセスモードレジスタ11に設定されているので、アクセス回数カウント部43はこの設定バースト長を参照して+nのカウント動作を決定する。
【0069】
アクセス回数設定レジスタ44には、アクセスするSDRAM300の1つの行の列数分の値が設定される。比較器45は、アクセス回数カウント部43の計数出力とアクセス回数設定レジスタ44の設定値を比較し、両者が一致したとき、バンク0最終列検出信号14をアクティブにする。
【0070】
次に動作について説明する。SDRAM300からの読み出し動作を例にとって説明する。まず、各連続アクセス制御ユニット4a〜4dのアクセスモードレジスタ11に“連続アクセスモード”および“単発アクセスモード”のいずれでSDRAM300にアクセスを行うのかを示す情報およびバースト長を設定する。この場合、バースト長は1であるとする。
【0071】
続いて、各連続アクセス制御ユニット4a〜4dのアクセス回数カウント部43をクリア(値“0”設定)するとともに、アクセス回数設定レジスタ44に所定の値を設定する。この例では、アクセス回数設定レジスタ44には、アクセスするSDRAM300の1つの行の列数分の値を設定するものとする。
【0072】
その後、SDRAMC100に図示しない他のモジュールからSDRAMアクセス要求信号21とアドレス信号22が入力される。この場合、アクセスはSDRAM300のバンク0へのアクセスであるとする。
【0073】
バンク0に対応する連続アクセス制御ユニット4aのアクセスモードレジスタ11に“単発アクセスモード”を示す値が設定されている場合は、先の実施の形態1で説明した単発アクセスモードのときと同様に動作する。すなわち、SDRAMアクセス制御部10には、連続アクセス制御ユニット4aのアクセスモードレジスタ11に設定された“単発アクセスモード”を示すバンクiアクセスモード信号13が選択回路32を介して入力されているので、バンク0に対して前述した単発アクセスモードによるSDRAM300へのアクセス制御を実行する。
【0074】
次に、バンク0に対応する連続アクセス制御ユニット4aのSDRAMアクセスモードレジスタ11に“連続アクセスモード”を示す値が設定されている場合について説明する。
【0075】
SDRAMアクセス制御部10は、前述と同様に、SDRAMアクセスモード信号15によって“連続アクセスモード”であることを認知する。そして、SDRAMアクセス制御部10は、選択回路32から入力されている最終列検出信号16がアクティブではないとき、すなわち連続アクセス制御ユニット4aの比較器45による比較結果が不一致であるときは、実施の形態1で説明したように、つぎのように動作する。
【0076】
SDRAMアクセス制御部10は、一回目のアクセスのときにだけ、SDRAM300のバンク0に対して行活性化コマンドを発行する。そして、この行活性化コマンドに続いてリードコマンドを発行する。このとき非活性化コマンドを発行せず、行を活性化状態に保って次のアクセスを待つ。次の同じ行の次の列に対するアクセスが発生したときは行が活性状態にあるため、新たに行活性化コマンドを発行せず、直接リードコマンドを発行する。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0077】
なお、この期間中、連続アクセス制御ユニット4aのアクセス回数カウント部43は、SDRAMアクセス要求分配器20からバンク0アクセス要求信号41aが入力される度に+1のカウント動作を実行している。
【0078】
その後、同じ行の最後の列に対するアクセスになったとする。このときには、連続アクセス制御ユニット4aのアクセス回数カウント部43のカウント値がアクセス回数設定レジスタ44の設定値に一致する。したがって、このときには、比較器45から出力されるバンク0最終列検出信号14がアクティブとなる。この結果、選択回路32から出力される最終列検出信号16がアクティブとなる。
【0079】
SDRAMアクセス制御部10は、最終列検出信号16がアクティブになると、バンク0のバンク非活性化すなわちプリチャージを実行する。この後、バンク0へのアクセスが発生すると、SDRAMアクセス制御部10は、新たに行を活性化して同様の動作を繰り返す。
【0080】
次に、図8のタイムチャートを用いて連続アクセスモードの際の各処理のタイミングについてさらに詳細に説明する。この場合は、1行の列数が512列であるとする。SDRAMアクセス要求信号21が入力される度に、アドレス信号22は、連続アドレスa0、a1、…、anとして更新される。
【0081】
クロックサイクル“1”でSDRAMアクセス要求信号21がアサートされる。このクロックサイクル“1”において、SDRAMアクセス制御部10は、SDRAM300のバンク0の行活性化コマンドACを発行する。SDRAMアクセス制御部10は、次の、クロックサイクル“2”では、ディセレクトコマンドDSを発行する。
【0082】
次に、クロックサイクル“3”では、SDRAMアクセス制御部10はリードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後、データ信号25をデータバスに出力する(クロックサイクル“5”)。
【0083】
リードコマンドRDを発行したクロックサイクル“3”においては、バンク0に対応する連続アクセス制御ユニット2aの比較器45の比較結果が一致しないので、バンク0最終列検出信号14、そして最終列検出信号16もアサートされない。これにより、SDRAMアクセス制御部10はクロックサイクル“4”“5”では、ディセレクトコマンドDSを発行して、バンク0を行活性化した状態のままに保つ。
【0084】
次に、SDRAMアクセス要求信号21がクロックサイクル“6”で入力されると、SDRAMアクセス制御部10は、この時点では最終列検出信号16がネゲートのままであるので、行活性化コマンドACを発行せず、直接リードコマンドRDを発行する。
【0085】
SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“8”で、データ信号25をデータバスに出力する。この例では、1回目のSDRAMアクセス要求信号21から2回目のアクセスのデータ出力まで8クロックサイクルを要することになる。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0086】
さらに、アクセスが続けられてクロックサイクル“c”でSDRAMアクセス要求信号21が入力されたとする。このときのアクセスが行の最後の列に対するアクセスであったとする。SDRAMアクセス制御部10は、クロックサイクル“c”でリードコマンドRDを出力する。
【0087】
SDRAMアクセス要求信号21が入力されたクロックサイクル“c”の次のクロックサイクル“d”で、バンク0に対応する連続アクセス制御ユニット4aの比較器45の比較結果が一致するため、このクロックサイクル“d”で、バンク0最終列検出信号14、そして最終列検出信号16がアサートされる。
【0088】
これによりSDRAMアクセス制御部10は、クロックサイクル“d”でバンク非活性化コマンドPRを発行して、バンク0を非活性化状態にする。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“e”で、データ信号25をデータバスに出力する。
【0089】
このようにこの実施の形態3によれば、実施の形態1と同様、行アドレスが同一で列アドレスが連続する連続アクセスモードの場合(途中に他のバンクのアクセスが入っても良い)、1回目のアクセスのときだけ行活性化を行ってリードコマンドを発行し、その後の行の最後の列に対するアクセスの前までは、リードコマンドを直接発行してバンク非活性化および行活性化を行わないようにしているので、SDRAMアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0090】
また、行の最終列の判定にアドレス信号を用いないので、実際の回路を実現しやすい。これは、アドレス信号配線は、実際の回路では長い距離引き回れて、遅延時間が大きいことが多く、動作周波数を高くする上で妨げになることがあるためである。
【0091】
また、この実施の形態3によれば、アクセス回数設定レジスタ44の設定値として、1行の列数を設定するのではなく、任意のアクセス回数を設定するようにすれば、行の最終列のときのみバンクを非活性化するのではなく、任意のアクセス回数分行活性化状態を保ちその後バンクを非活性化することができるので、設計の応用自由度が上がるという効果も有する。
【0092】
なお、上述した実施の形態3の構成に、実施の形態2で説明したアドレス保持部33、加算器34、アドレス選択回路36を追加し、実施の形態2で説明した動作を行わせるようにしてもよい。
【0093】
実施の形態4.
つぎに、図9〜図11を用いてこの発明の実施の形態4について説明する。図9はこの発明の実施の形態4によるSDRAM制御モジュール(SDRAMC)100を含むLSI3およびSDRAM300を示している。この図9に示す実施の形態4のSDRAMC100においては、先の実施の形態のように、各連続アクセス制御ユニット4a〜4dのアクセスモードレジスタ11に、今回のアクセスモードを(連続アクセスモードおよび単発アクセスモードの何れか)を設定するのではなく、バスマスタからのSDRAMアクセスモード信号50をSDRAMアクセス制御部10に直接入力するようにしている。
【0094】
ここで、バスマスタとは、SDRAMアクセスを伴うバストランザクションを発生するモジュール(CPU、DMAC(DMA転送コントローラ)、その他)のことである。
【0095】
SDRAMアクセスモード信号50は、複数のバスマスタより出力されたSDRAMアクセスモード信号のうち、SDRAM300に対するアクセス権を得たバスマスタのSDRAMアクセスモード信号が選択されたものである。また、このSDRAMアクセスモード信号50は、SDRAMアクセス要求信号21と同じクロックサイクルで入力されるものであり、SDRAMアクセス制御部10は、SDRAMアクセス要求信号21が入力されたときにSDRAMアクセス要求信号21がアサートされているときは、連続アクセスモードであると判断し、SDRAMアクセス要求信号21が入力されたときにSDRAMアクセス要求信号21がネゲートのときは、単発アクセスモードであると判定するものとする。
【0096】
図9に示すように、各連続アクセス制御ユニット5a〜5dは、当該バンクにおける行の最後の列を検出する最終列検出回路12を備えている。アクセスモードを設定するためのアクセスモードレジスタ11は存在しない。最終列検出回路12は、図3に示したように、列アドレス指示レジスタ40と、アドレス進行方向設定レジスタ42と、列アドレス監視部41とを備えており、前述と同様に動作する。最終列検出回路12からはバンクi最終列検出信号14が出力される。
【0097】
選択回路32は、SDRAMバンクアドレス31にしたがって、4つの連続アクセス制御ユニット5a〜5dからのバンクi最終列検出信号14を選択し、選択した信号を最終列検出信号16としてSDRAMアクセス制御部10に入力する。
【0098】
SDRAMアクセス制御部10は、SDRAMアクセス要求信号21とSDRAMアクセスモード信号50と選択回路32から入力される最終列検出信号16に基づいてRAS,CAS,WE,CSなどのSDRAM制御信号23を形成するとともに、入力されるバンクアドレス、行アドレスおよび列アドレスを含むアドレス信号22をSDRAM300に適した形に加工して(マルチプレクスされて)、行アドレス、列アドレスの順にアドレス信号24としてバンクアドレスとともにSDRAM300に入力する。
【0099】
次に動作について説明する。SDRAM300からの読み出し動作を例にとって説明する。いま、SDRAMアクセスモード信号50が“単発アクセスモード”を示す値を出力しているとする。この場合の動作は、実施の形態1において、バンク0のアクセスモードレジスタ11に“単発アクセスモード”を示す値が設定された場合と同じである。
【0100】
次に、“連続アクセスモード”のときの動作を説明する。バンク0が選択されているとする。
【0101】
SDRAMアクセスモード信号50が“連続アクセスモード”を示す値を出力しているときには、SDRAMアクセス制御部10は、このSDRAMアクセスモード信号50によって、“連続アクセスモード”であることを認知する。そして、SDRAMアクセス制御部10は、選択回路32から入力されている最終列検出信号16がアクティブではないときは、実施の形態1で説明したように、つぎのように動作する。
【0102】
SDRAMアクセス制御部10は、一回目のアクセスのときにだけ、SDRAM300のバンク0に対して行活性化コマンドを発行する。そして、この行活性化コマンドに続いてリードコマンドを発行する。このとき非活性化コマンドを発行せず、行を活性化状態に保って次のアクセスを待つ。次の同じ行の次の列に対するアクセスが発生したときは行が活性状態にあるため、新たに行活性化コマンドを発行せず、直接リードコマンドを発行する。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0103】
その後、同じ行の最後の列に対するアクセスになったとする。このときには選択回路32から出力される最終列検出信号16がアクティブとなる。SDRAMアクセス制御部10は、最終列検出信号16がアクティブになると、バンク0のバンク非活性化すなわちプリチャージを実行する。この後、バンク0へのアクセスが発生すると、SDRAMアクセス制御部10は、新たに行を活性化して同様の動作を繰り返す。
【0104】
次に、図10および図11のタイムチャートを用いて連続アクセスモードの際の各処理のタイミングについてさらに詳細に説明する。図10は連続アクセスモードのときの動作を、図11は単発アクセスモードのときの動作を示すものである。
【0105】
図10において、クロックサイクル“1”でSDRAMアクセス要求信号21がアサートされる。また、この同じクロックサイクルのときに、SDRAMアクセスモード信号50が“連続アクセスモード”を示す値“H”となる。このクロックサイクル“1”において、SDRAMアクセス制御部10は、SDRAM300のバンク0の行活性化コマンドACを発行する。SDRAMアクセス制御部10は、次の、クロックサイクル“2”では、ディセレクトコマンドDSを発行する。
【0106】
次に、クロックサイクル“3”では、SDRAMアクセス制御部10はリードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後、データ信号25をデータバスに出力する(クロックサイクル“5”)。
【0107】
最終列検出回路12は、リードコマンドRDを発行したクロックサイクル“3”で、SDRAMアドレス信号22の列アドレス部分30を判定するが、今回は最終列でないので、バンク0最終列検出信号14をアサートしない。したがって、選択回路32からの最終列検出信号16もアサートされない。
【0108】
SDRAMアクセス制御部10は、SDRAMアクセス要求信号の入力時(クロックサイクル“1”)に、SDRAMアクセスモード信号50が“連続アクセスモード”を示す値を出力していたことと、リードコマンドRDの発行時のクロックサイクル“3”に、最終列検出信号16がアサートされていないことに基づいて、つぎのクロックサイクル“4”“5”で、ディセレクトコマンドDSを発行してバンク0を行活性化した状態のままに保つ。
【0109】
次に、SDRAMアクセス要求信号21および“H”のSDRAMアクセスモード信号50がクロックサイクル“6”で入力されると、SDRAMアクセス制御部10は、この時点では最終列検出信号16がネゲートのままであるので、行活性化コマンドACを発行せず、直接リードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“8”で、データ信号25をデータバスに出力する。
【0110】
クロックサイクル“6”でSDRAMアクセス要求信号21がアサートされるのと同時に、SDRAMアクセスモード信号50が“連続アクセスモード”を示す値“H”を示しているため、SDRAMアクセス制御部10は、つぎのクロックサイクル“7”でディセレクトコマンドDSを発行してバンク0を行活性化した状態のままに保つ。この例では、1回目のSDRAMアクセス要求から2回目のアクセスのデータ出力まで8クロックサイクルを要することになる。アクセスが同じ行の最後の列になるまで、このような動作が繰り返される。
【0111】
さらにアクセスを続けてクロックサイクル“c”でSDRAMアクセス要求信号21が発生したとする。このとき行の最後の列アクセスであったとすると、最終列検出回路12では、SDRAMアドレス信号22の列アドレス部分30を判定し、バンク0最終列検出信号14をアサートする。したがって、選択回路32からの最終列検出信号16もアサートされる。
【0112】
SDRAMアクセス制御部10は、クロックサイクル“c”で、SDRAMアクセス要求信号21がアサートされるのと同時に、SDRAMアクセスモード信号50が“連続アクセスモード”を示す値“H”を示していることと、最終列検出信号16が“H”になっていることに基づいて、つぎのクロックサイクル“d”でバンク非活性化コマンドPRを発行し、バンク0を非活性化状態にする。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“e”で、データ信号25をデータバスに出力する。
【0113】
一方、図11に示すように、SDRAMアクセス要求信号21がアサートされたクロックサイクルで(図11の場合はクロックサイクル“6”)、SDRAMアクセスモード信号50が“単発アクセスモード”を示す値“L”を出力している場合には、SDRAMアクセス制御部10は、現在活性化しているバンクを非活性化し(バンク非活性化コマンドPR)、つぎのクロックサイクル“7”で、アクセス要求のあった行の活性化(行活性化コマンドAC)を行う。さらに、RAS−CASレイテンシ後のクロックサイクル“9”において、リードコマンドRDを発行する。SDRAM300は、CASレイテンシ時間経過後のクロックサイクル“a”で、データ信号25をデータバスに出力する。
【0114】
このようにこの実施の形態4によれば、実施の形態1と同様、行アドレスが同一で列アドレスが連続する連続アクセスモードの場合(途中に他のバンクのアクセスが入っても良い)、1回目のアクセスのときだけ行活性化を行ってリードコマンドを発行し、その後の行の最後の列に対するアクセスの前までは、リードコマンドを直接発行してバンク非活性化および行活性化を行わないようにしているので、SDRAMアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0115】
また、SDRAMアクセスモードを設定するレジスタ等のハードウェアを持たなくてよいので、回路を簡略化できる。さらに、あるバスマスタが連続SDRAMアクセスを行っている最中に、他のバスマスタが同じバンクに対するアクセスを行ったときも、自動的にバンク非活性化、および行活性化を行うことができ、自由度が高い応用設計を実現できる。
【0116】
なお、この実施の形態4において、最終列検出回路12の内部構成を実施の形態3のように、アクセス回数カウント部43、アクセス回数設定レジスタ44、および比較器45による構成に置換するようにしてもよい。さらに、この実施の形態4の構成に、実施の形態2で説明したアドレス保持部33、加算器34、アドレス選択回路36を追加し、実施の形態2で説明した動作を行わせるようにしてもよい。
【0117】
なお、上記の各実施の形態においては、SDRAMに対する読み出し動作について説明したが、ライトコマンドを使用する書き込み動作の際も同様の動作を行うことで、上記の同様の効果を得ることができる。
【0118】
【発明の効果】
以上説明したように、この発明によれば、連続アクセスモード時、同一行への最初のアクセス要求のときに同期型半導体記憶装置の行活性化を行い、その後最終列検出信号がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドを同期型半導体記憶装置に出力し、最終列検出信号がアサートされると、アクセスされていた行の非活性化を行うようにしているので、同期型半導体記憶装置に対するアクセスに要するクロックサイクルを少なくすることができ、効率の良いメモリアクセスをなし得るようになる。
【0119】
つぎの発明によれば、同期型半導体記憶装置に入力されるアドレス信号に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出するようにしているので、最終列アドレスへのアクセスであることを確実に検出することができる。
【0120】
つぎの発明によれば、アクセス要求の計数値と所定の設定値との比較に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出するようにしているので、アドレス信号を用いる場合に比べ、回路設計が容易となり、実際の回路を実現し易くなる。
【0121】
つぎの発明によれば、アクセスモード信号が設定されるアクセスモードレジスタを各バンクに対応して各別に設けるようにしているので、アクセス制御部はこれらのアクセスモードレジスタの設定情報から今回のアクセスが連続アクセスモードであることを確実に判定することができる。
【0122】
つぎの発明によれば、バスマスタからのアクセスモード信号がアクセス制御部に入力されるようにしているので、アクセスモードを設定するレジスタ等のハードウェアを持たずに済み、回路を簡略化できる。さらに、あるバスマスタが連続SDRAMアクセスを行っている最中に、他のバスマスタが同じバンクに対するアクセスを行ったときも、自動的にバンク非活性化、および行活性化を行うことができ、自由度が高い応用設計を実現できる。
【0123】
つぎの発明によれば、連続アクセスモード時、最終列検出信号がアサートされると、アクセスされていた行の非活性化を行い、その後直ちに、アドレス選択回路から入力される次アドレス演算部からの次アドレスが示す行の活性化を行うようにしているので、次の行のアクセス要求までに時間があった場合、次の行のアクセスが発生したときには既にこの行の活性化を終えており、その後すぐにリードあるいはライトコマンドを発行することができる。従ってアクセスに要するクロックサイクルを低減することができる。
【図面の簡単な説明】
【図1】この発明にかかる同期型半導体記憶装置のアクセス制御装置の実施の形態1の構成を示すブロック図である。
【図2】SDRAMのアドレス構成の一例を示す図である。
【図3】最終列検出回路の内部構成を示すブロック図である。
【図4】実施の形態1の同期型半導体記憶装置のアクセス制御装置の連続アクセスモード時の動作を説明するためのタイムチャートである。
【図5】この発明にかかる同期型半導体記憶装置のアクセス制御装置の実施の形態2の構成を示すブロック図である。
【図6】実施の形態2の同期型半導体記憶装置のアクセス制御装置の連続アクセスモード時の動作を説明するためのタイムチャートである。
【図7】この発明にかかる同期型半導体記憶装置のアクセス制御装置の実施の形態3の構成を示すブロック図である。
【図8】実施の形態3の同期型半導体記憶装置のアクセス制御装置の連続アクセスモード時の動作を説明するためのタイムチャートである。
【図9】この発明にかかる同期型半導体記憶装置のアクセス制御装置の実施の形態4の構成を示すブロック図である。
【図10】実施の形態4の同期型半導体記憶装置のアクセス制御装置の連続アクセスモード時の動作を説明するためのタイムチャートである。
【図11】実施の形態4の同期型半導体記憶装置のアクセス制御装置の単発アクセスモード時の動作を説明するためのタイムチャートである。
【図12】従来技術を示すブロック図である。
【図13】従来技術のSDRAMに対するアクセスを説明するためのタイムチャートである。
【符号の説明】
2a〜2d,4a〜4d,5a〜5d 連続アクセス制御ユニット、10 SDRAMアクセス制御部、11 アクセスモードレジスタ、12 最終列検出回路、20 アクセス要求分配器、32 選択回路、33 アドレス保持部、34 加算器、36 アドレス選択回路、40 列アドレス指示レジスタ、41 列アドレス監視部、42 アドレス進行方向設定レジスタ、43 アクセス回数カウント部、44 アクセス回数設定レジスタ、45 比較器。
【特許請求の範囲】
【請求項1】
同一行の連続した列に対して連続的にアクセスする連続アクセスモードによるアクセスを、記憶領域が複数のバンクに分割された同期型半導体記憶装置に対して実行する同期型半導体記憶装置のアクセス制御装置において、
前記連続アクセスモード時、前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出し、最終列検出信号を出力する最終列検出回路を各バンクに対応して各別に設けるとともに、
前記アドレス信号に基づいて前記複数の最終列検出回路からの最終列検出信号を択一選択する選択回路と、
前記連続アクセスモード時、同一行への最初のアクセス要求のときに同期型半導体記憶装置の行活性化を行い、その後前記選択回路から最終列検出信号がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドを前記同期型半導体記憶装置に出力し、前記選択回路からの最終列検出信号がアサートされると、前記アクセスされていた行の非活性化を行うアクセス制御部と、
を備えることを特徴とする同期型半導体記憶装置のアクセス制御装置。
【請求項2】
前記最終列検出回路は、前記同期型半導体記憶装置に入力されるアドレス信号に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出することを特徴とする請求項1に記載の同期型半導体記憶装置のアクセス制御装置。
【請求項3】
前記最終列検出回路は、アクセス要求の計数値と所定の設定値との比較に基づいて前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出することを特徴とする請求項1に記載の同期型半導体記憶装置のアクセス制御装置。
【請求項4】
アクセスモード信号が設定されるアクセスモードレジスタを各バンクに対応して各別に設け、
前記選択回路は、前記アドレス信号に基づいて前記複数のアクセスモードレジスタからのアクセスモード信号を択一選択して前記アクセス制御部に入力し、
前記アクセス制御部は前記選択回路からのアクセスモード信号に基づき今回のアクセスが連続アクセスモードであることを判断することを特徴とする請求項1〜3の何れか一つに記載の同期型半導体記憶装置のアクセス制御装置。
【請求項5】
前記アクセス制御部には、バスマスタからのアクセスモード信号が直接入力され、
アクセス制御部は前記バスマスタからのアクセスモード信号に基づき今回のアクセスが連続アクセスモードであることを判断することを特徴とする請求項1〜3の何れか一つに記載の同期型半導体記憶装置のアクセス制御装置。
【請求項6】
前記同期型半導体記憶装置へのアドレス信号の次アドレスを演算する次アドレス演算部と、
前記最終列検出信号がアサートされた後の所定の期間以外は前記同期型半導体記憶装置へのアドレス信号を選択し、前記最終列検出信号がアサートされた後の所定の期間のときは前記次アドレス演算部からの次アドレスを選択するアドレス選択回路と、
を更に備え、
前記アクセス制御部は、
前記連続アクセスモード時、前記選択回路からの最終列検出信号がアサートされると、前記アクセスされていた行の非活性化を行い、その後直ちに、前記アドレス選択回路から入力される前記次アドレス演算部からの次アドレスが示す行の活性化を行うことを特徴とする請求項1〜5の何れか一つに記載の同期型半導体記憶装置のアクセス制御装置。
【請求項1】
同一行の連続した列に対して連続的にアクセスする連続アクセスモードによるアクセスを、記憶領域が複数のバンクに分割された同期型半導体記憶装置に対して実行する同期型半導体記憶装置のアクセス制御装置において、
前記連続アクセスモード時、前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出し、最終列検出信号を出力する最終列検出回路を各バンクに対応して各別に設けるとともに、
前記アドレス信号に基づいて前記複数の最終列検出回路からの最終列検出信号を択一選択する選択回路と、
前記連続アクセスモード時、同一行への最初のアクセス要求のときに同期型半導体記憶装置の行活性化を行い、その後前記選択回路から最終列検出信号がアサートされるまでは、アクセス要求がある度に、アクセスされる行の非活性化を行うことなくリードコマンドまたはライトコマンドを前記同期型半導体記憶装置に出力し、前記選択回路からの最終列検出信号がアサートされると、前記アクセスされていた行の非活性化を行うアクセス制御部と、
を備えることを特徴とする同期型半導体記憶装置のアクセス制御装置。
【請求項2】
前記最終列検出回路は、前記同期型半導体記憶装置に入力されるアドレス信号に基づいて同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出することを特徴とする請求項1に記載の同期型半導体記憶装置のアクセス制御装置。
【請求項3】
前記最終列検出回路は、アクセス要求の計数値と所定の設定値との比較に基づいて前記同期型半導体記憶装置に対するアクセスが最終列アドレスへのアクセスであることを検出することを特徴とする請求項1に記載の同期型半導体記憶装置のアクセス制御装置。
【請求項4】
アクセスモード信号が設定されるアクセスモードレジスタを各バンクに対応して各別に設け、
前記選択回路は、前記アドレス信号に基づいて前記複数のアクセスモードレジスタからのアクセスモード信号を択一選択して前記アクセス制御部に入力し、
前記アクセス制御部は前記選択回路からのアクセスモード信号に基づき今回のアクセスが連続アクセスモードであることを判断することを特徴とする請求項1〜3の何れか一つに記載の同期型半導体記憶装置のアクセス制御装置。
【請求項5】
前記アクセス制御部には、バスマスタからのアクセスモード信号が直接入力され、
アクセス制御部は前記バスマスタからのアクセスモード信号に基づき今回のアクセスが連続アクセスモードであることを判断することを特徴とする請求項1〜3の何れか一つに記載の同期型半導体記憶装置のアクセス制御装置。
【請求項6】
前記同期型半導体記憶装置へのアドレス信号の次アドレスを演算する次アドレス演算部と、
前記最終列検出信号がアサートされた後の所定の期間以外は前記同期型半導体記憶装置へのアドレス信号を選択し、前記最終列検出信号がアサートされた後の所定の期間のときは前記次アドレス演算部からの次アドレスを選択するアドレス選択回路と、
を更に備え、
前記アクセス制御部は、
前記連続アクセスモード時、前記選択回路からの最終列検出信号がアサートされると、前記アクセスされていた行の非活性化を行い、その後直ちに、前記アドレス選択回路から入力される前記次アドレス演算部からの次アドレスが示す行の活性化を行うことを特徴とする請求項1〜5の何れか一つに記載の同期型半導体記憶装置のアクセス制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2004−13618(P2004−13618A)
【公開日】平成16年1月15日(2004.1.15)
【国際特許分類】
【出願番号】特願2002−167641(P2002−167641)
【出願日】平成14年6月7日(2002.6.7)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】
【公開日】平成16年1月15日(2004.1.15)
【国際特許分類】
【出願日】平成14年6月7日(2002.6.7)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】
[ Back to top ]