JP3939858B2 - 同期型dramのアクセス方法、インタフェース回路、及び、半導体集積回路装置 - Google Patents
同期型dramのアクセス方法、インタフェース回路、及び、半導体集積回路装置 Download PDFInfo
- Publication number
- JP3939858B2 JP3939858B2 JP15768498A JP15768498A JP3939858B2 JP 3939858 B2 JP3939858 B2 JP 3939858B2 JP 15768498 A JP15768498 A JP 15768498A JP 15768498 A JP15768498 A JP 15768498A JP 3939858 B2 JP3939858 B2 JP 3939858B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- bank
- signal
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Dram (AREA)
Description
【発明の属する技術分野】
本発明は同期型DRAMのアクセス方法、インタフェース回路、及び、半導体集積回路装置に関するものである。
【0002】
近年、半導体集積回路装置としてのマイクロコンピュータ等のシステムは、処理が複雑になると共に高速処理が要求されている。このようなシステムでは、大容量で高速アクセスが可能な同期型半導体記憶装置(シンクロナスダイナミックRAM:Synchronous Dynamic RAM) (以下、SDRAMという)が用いられるようになってきている。そして、このSDRAMのデータの読み出し速度を更に早くすることが必要となっている。
【0003】
【従来の技術】
図23は、従来の半導体集積回路装置としてのマイクロプロセッサ(以下、単にプロセッサという)の概略ブロック回路図を示す。
【0004】
プロセッサ11は、CPU12、クロック生成回路13、内部メモリ14、周辺回路としてのタイマ回路15、SDRAMインタフェース(SDRAMI/F)(以下、単にインタフェースという)16を備え、それらは内部バス17を介して相互に接続されている。
【0005】
クロック生成回路13は、CPU12の動作のためのシステムクロック信号SCKを生成する。CPU12は、システムクロック信号SCKに基づいて動作する。その動作において、CPU12は、内部バス17を介して各回路13〜16をアクセスする。
【0006】
インタフェース16には、SDRAM18が接続されている。インタフェース16は、システムクロック信号SCKをSDRAM18に出力する。
SDRAM18は、2つのバンク(bank0,bank1)を含む。各バンクB0,B1は、それぞれ所定のメモリ構成(図23では256ワード×8ビット)を有する。
【0007】
CPU12は、SDRAM18をアクセスするための命令と、その命令においてSDRAM18をアクセスするためのアドレス(リードアドレス又はライトアドレス)をインタフェース16に出力する。インタフェース16は、SDRAM18に対して、CPU12の命令に対応するコマンドをSDRAM18に対して発行する機能と、アクセスアドレスをSDRAM18のインタフェース回路に対応させて出力する機能を有する。
【0008】
アクセスアドレスには、ローアドレス、コラムアドレス、バンクアドレスを含む。SDRAM18は、バンクアドレスに基づいて2つのバンクのうちの一方を選択する。そして、SDRAM18は、選択したバンクに対して、ローアドレスとコラムアドレスに基づいて、コマンドに応答してデータの読み出し/書き込み動作を行う。
【0009】
又、SDRAM18は、バースト転送モードに対応して構成されている。バースト転送モードは、同一ローアドレスの連続したコラムアドレスから複数のデータを読み出すモードである。指定したコラムアドレスに対して読み出されるデータの数をバースト長という。
【0010】
CPU12は、SDRAM18に対して読み出しを開始するコラムアドレスを指定する。SDRAM18は図示しないコラムアドレスカウンタを含み、該カウンタのカウント値に基づいて、指定されたコラムアドレスからバースト長分のデータをシステムクロック信号SCKの1クロック毎に出力する。これにより、連続したコラムアドレスから複数のデータを読み出す読み出し期間を短くする。
【0011】
ところで、SDRAM18は、1つのバンクから次のバンクをアクセスする、所謂バンクが遷移するときに、アクティブコマンドを必要とする。バンク構成のSDRAM18は、アクセスされていないバンクをアイドル状態にする。アイドル状態のバンクは、アクティブ状態のバンクに比べて消費電力が少ないため、SDRAM18全体の消費電力の低減に有効となる。そのため、インタフェース16は、アクセスに先立って、SDRAM18にアクティブコマンドを発行する。SDRAM18は、アクティブコマンドに応答してバンクをアクティブにする。
【0012】
図21は、インタフェース16の一部ブロック回路図であり、アクティブコマンドを発行するための回路構成を示す。
インタフェース16の第1バンクアドレスラッチ(第1バンクラッチ)21には、内部バス17を介してアドレス信号の所定位置のビットがバンクアドレスとして入力される。第1バンクラッチ21は、内部バス17を介してCPU12から入力されるリード信号RD,ライト信号WDに基づいてバンクアドレスBAをラッチし、そのラッチ信号を第2バンクアドレスラッチ(第2バンクラッチ)22とアドレス比較器23に出力する。
【0013】
第2バンクラッチ22は、第1バンクラッチ21の出力信号をラッチし、そのラッチ信号をアドレス比較器23に出力する。この第2バンクラッチ22は、第1バンクラッチ21にラッチされたバンクアドレスよりも1つ前のバンクアドレスをラッチしている。従って、アドレス比較器23には、2つのバンクアドレスが入力される。
【0014】
アドレス比較器23は、リード信号RD,ライト信号WDに応答して2つのバンクアドレスを比較し、その比較結果をOR回路24に出力する。OR回路24には、SDRAM18がアイドル状態にあるときにリード命令が入力されたことを示す信号IRDが入力される。OR回路24は、その信号IRDと比較結果を論理和演算した結果をコマンド生成部25に出力する。
【0015】
コマンド生成部25は、OR回路24の出力信号に基づいてアクティブコマンドを生成し、図23のSDRAM18に対してアクティブコマンドを発行する。その後、コマンド生成部25は、SDRAM18に対して、リード信号RDに基づいてリードコマンドを、ライト信号WRに基づいてライトコマンドを発行する。
【0016】
SDRAM18は、アクティブコマンドに応答してその時に入力されるアドレス信号をローアドレスとしてラッチする。SDRAM18は、リードコマンドに応答してその時に入力されるアドレス信号をコラムアドレスとしてラッチし、そのコラムアドレスと先にラッチしたローアドレスに基づいて選択されるデータを読み出し、そのデータをインタフェース16に出力する。インタフェース16はSDRAM18から入力されるデータをCPU12に出力する。
【0017】
図22は、インタフェース16の読み出し動作におけるタイミング図を示す。読み出し動作が開始(時刻t0)されると、インタフェース16は、CPU12から入力されるリード信号RD及びリードアドレス[3C]に応答してHレベルのウエイト信号WAITを出力する。尚、括弧[]は、リードアドレス、コラムアドレス、読み出したデータのアドレスを、構成部材の符号と区別するために用いてある。そして、括弧内の数値は、16進数である。また、インタフェース16が発行するリード・ライトコマンドを、CPU12から出力されるリード・ライト信号と区別するために括弧を用いている。
【0018】
次にクロック信号CLKが立ち上がる(1クロック経過)と、インタフェース16は、SDRAM18にバンク[0]をアクティブにするためのアクティブコマンド[ACT]及びバンクアドレス[0]を出力する。SDRAM18は、アクティブコマンド[ACT]に応答してバンク[0]をアクティブにする。
【0019】
次に、インタフェース16は、所定クロック(図22では3クロック)経過後(時刻t4)、SDRAM18にリードコマンド[RD]とコラムアドレス[3C]を出力する。そして、インタフェース16は、SDRAM18の読み出し時間に対応する時間経過後、Lレベルのウエイト信号WAITを出力する。
【0020】
SDRAM18は、コラムアドレス[3C]のデータを読み出し、その読み出したリードデータ[3C]を出力する。時刻t8において、CPU12は、リードデータ[3C]を入力すると、次のデータを読み出すべくリード信号RDとコラムアドレス[3D]を出力する。SDRAM18は、バーストモードにてデータを順次読み出している。即ち、SDRAM18は、リードデータ[3C]に続いてリードデータ[3D]〜[3F]をクロック信号CLKに同期して順次出力するため、次クロック(時刻t9)において次のコラムアドレスに対するリードデータ[3D]が読み出されている。従って、CPU12は、リード信号RD、リードアクセス[3D]を出力した次のクロック(時刻t9)においてリードデータ[3D]を入力する。
【0021】
同様に、CPU12は、時刻t9においてリードアドレス3Eを出力し、時刻t10においてリードデータ[3E]を入力する。更に、CPU12は、時刻t10においてリードアドレス[3F]を出力し、時刻t11においてリードデータ3Fを入力する。
【0022】
次に、CPU12は、時刻t11において、アドレスに従ってリードアドレス40を出力する。リードアドレス[40]は、バンク1内のアドレスである。従って、インタフェース16は、リードアドレス[40]に基づいてバンク[0]からバンク[1]にバンクが遷移したと判定する。そのため、インタフェース16は、Hレベルのウエイト信号WAITを出力する。そして、時刻T12において、インタフェース16は、バンク1に対するアクティブコマンド[ACT]をSDRAM18に出力する。SDRAM18は、アクティブコマンド[ACT]に応答してバンク1をアクティブにする。
【0023】
インタフェース16は、時刻t15において、リードコマンド[RD]とコラムアドレス[40]をSDRAM18に出力する。そして、インタフェース16は、SDRAM18の読み出し時間に対応する時間経過後、Lレベルのウエイト信号WAITを出力する。
【0024】
SDRAM18は、コラムアドレス[40]のデータを読み出し、その読み出したリードデータ[40]を出力する。時刻t19において、CPU12は、リードデータ40を入力する即ち、CPU12は、インタフェース16がSDRAM18にアクティブコマンド[ACT]を発行して所定期間(6クロック=tRCD+CL)た後、データを読み出すことができる。
【0025】
尚、次のリードアドレスが同一バンク内の場合、インタフェース16はアクティブコマンド[ACT]を発行しない。そのため、CPU12は、インタフェース16がSDRAM18にリードコマンド[RD]及びコラムアドレスを出力後、CASレイテンシCL経過後にデータを読み出すことができる。
【0026】
【発明が解決しようとする課題】
ところで、上記のように構成されたインタフェース16は、CPU12から出力されるリードアドレスがどのバンクをアクセスするものかを判断し、バンクが遷移した場合にアクティブコマンドを発行するようにしている。そのため、SDRAM18をアドレスに従って連続的にアクセスする場合、上記のアクティブコマンドの発行が連続アクセスのアクセス時間に対するオーバーヘッドとなる。
【0027】
即ち、このRAS−CASディレイ時間tRCDは連続読み出し動作に対するオーバーヘッドとなる。このオーバーヘッドは、バンクをまたいで複数のデータを読み出すのに要する時間を長くする。このことは、読み出し速度を早くする妨げとなっていた。
【0028】
本発明は上記問題点を解決するために成されたものであって、その目的はオーバーヘッドを少なくしてアクセスの高速化を図ることができる同期型DRAMのアクセス方法、インタフェース回路、及び、半導体集積回路装置を提供することにある。
【0029】
【課題を解決するための手段】
上記目的を達成するため、請求項1に記載の発明は、アクセスアドレス信号に基づいて複数のバンクを備えた同期型DRAMをアクセスする同期型DRAMのアクセス方法において、前記同期型DRAMの各バンクの最終コラムアドレス又は前記最終コラムアドレス近辺のアドレスを比較アドレスとしてレジスタに記憶し、前記アクセスアドレス信号に含まれるコラムアドレスと前記比較アドレスとを比較し、該比較結果に基づいて、前記コラムアドレスが前記比較アドレスと一致する場合に、当該コラムアドレスにてアクセスするバンクの次のバンクに対するアクティブコマンドを発行するようにした。
【0030】
請求項2に記載の発明は、請求項1に記載の同期型DRAMのアクセス方法において、前記アクセスアドレスが連続しているか否かを検出し、該検出結果に基づいて前記同期型DRAMを連続してアクセスした回数をカウントし、該カウント結果に基づいて前記同期型DRAMが所定回数以上連続してアクセスした連続アクセスを確認した後、前記コラムアドレスが前記比較アドレスと一致した場合に次のバンクに対するアクティブコマンドを発行するようにした。
【0033】
請求項3に記載の発明は、アクセスアドレス信号に基づいて複数のバンクを備えた同期型DRAMをアクセスする同期型DRAMのアクセス方法において、アクセスに対応して入力される第1命令と該第1命令よりも一つ前の命令である第2命令とを記憶すると共に、前記第1命令及び第2命令におけるアドレス信号を第1アドレス及び第2アドレスとして記憶し、選択信号に基づいて前記第1命令又は前記第2命令を選択命令として出力し、前記選択信号に基づいて前記第1アドレス又は前記第2アドレスを選択アドレスとして出力し、前記選択アドレスのバンクアドレス及びローアドレスと前記第1アドレス及び第2アドレスのバンクアドレス及びローアドレスを比較し、前記第1命令及び第2命令がリード命令又はライト命令か否かを比較し、前記選択アドレスに対して前記第2アドレスのローアドレス又はバンクアドレスが一致せず、前記第1アドレスのローアドレス及びバンクアドレスが一致する場合に、前記第1命令に対するコマンドを前記第2命令に対するコマンドよりも先に同期型DRAMに出力するようにし、前記同期型DRAMが動作するためのクロック信号の供給/停止を前記同期型DRAMの動作状態に基づいて制御するようにした。
【0039】
請求項4に記載の発明は、アクセスアドレス信号に基づいて複数のバンクを備えた同期型DRAMをアクセスするインタフェース回路において、前記同期型DRAMの各バンクの最終コラムアドレス又は最終コラムアドレス近辺のアドレスが比較アドレスとして記憶されたレジスタと、前記アクセスアドレス信号に含まれるコラムアドレスと前記レジスタに記憶された比較アドレスを比較するコラムアドレス比較回路と、前記コラムアドレス比較回路の比較結果に基づいて、入力されるコラムアドレスが比較アドレスと一致する場合に、当該コラムアドレスにてアクセスするバンクの次のバンクに対するアクティブコマンドを発行するコマンド生成部とを備えた。
【0040】
請求項5に記載の発明は、請求項4に記載のインタフェース回路において、前記アクセスアドレス信号が入力され、該アクセスアドレスが連続しているか否かを検出するアドレス連続検出回路と、前記アドレス連続検出回路の検出結果に基づいて前記同期型DRAMを連続してアクセスした回数をカウントする連続アクセスカウンタとを備え、前記コマンド生成部は、前記連続アクセスカウンタのカウント結果に基づいて前記同期型DRAMが所定回数以上連続してアクセスした連続アクセスを確認した後、前記コラムアドレス比較回路の比較結果に基づいて次のバンクに対するアクティブコマンドを発行するようにした。
【0043】
請求項6に記載の発明は、アクセスアドレス信号に基づいて複数のバンクを備えた同期型DRAMをアクセスするインタフェース回路において、アクセスに対応して入力される命令を第1命令として記憶する第1命令バッファと、前記第1命令バッファの出力信号を前記第1命令よりも一つ前の命令である第2命令として記憶する第2命令バッファと、前記第1命令及び第2命令におけるアドレス信号をそれぞれ第1アドレス及び第2アドレスとして記憶する第1アドレスバッファ及び第2アドレスバッファと、選択信号に基づいて前記第1命令バッファの出力信号又は前記第2命令バッファの出力信号を選択命令として出力する第1セレクタと、前記選択信号に基づいて前記第1アドレスバッファの出力信号又は前記第2アドレスバッファの出力信号を選択アドレスとして出力する第2セレクタと、前記第1アドレスバッファ及び第2アドレスバッファの出力信号と前記選択アドレスが入力され、前記選択アドレスのバンクアドレス及びローアドレスと前記第1アドレス及び第2アドレスのバンクアドレス及びローアドレスを比較し、該比較結果に基づいて第1判定信号を出力するアドレス比較器と、前記第1命令及び第2命令がリード命令又はライト命令か否かを比較し、該比較結果に基づいて第2判定信号を出力する命令比較器と、前記選択アドレスに対して前記第2アドレスのローアドレス又はバンクアドレスが一致せず、前記第1アドレスのローアドレス及びバンクアドレスが一致する場合に、前記第1命令を前記第2命令よりも先に出力するべく選択信号を出力する選択信号生成回路と、前記同期型DRAMが動作するためのクロック信号の供給/停止を前記同期型DRAMの動作状態に基づいて制御するクロック制御回路とを備えた。
【0048】
請求項1に記載の発明によれば、バンクの最終コラムアドレス又は最終コラムアドレス近辺のアドレスを比較アドレスとして記憶しておき、アクセスアドレス信号に含まれるコラムアドレスが比較アドレスと一致する場合に次のバンクに対するアクティブコマンドを発行するようにしたため、その分アクセスに対するオーバーヘッドが少なくなる。
請求項2に記載の発明によれば、アクセスアドレスが連続している回数をカウントし、該カウント結果に基づいて同期型DRAMが所定回数以上連続してアクセスした連続アクセスを確認した場合、次のバンクも連続してアクセスされる可能性が高いため、コラムアドレスが比較アドレスと一致した場合に次のバンクに対するアクティブコマンドを発行するようにしたため、その分アクセスに対するオーバーヘッドが少なくなる。
【0052】
請求項3に記載の発明によれば、選択アドレスに対して第2アドレスのローアドレス又はバンクアドレスが一致せず、第1アドレスのローアドレス及びバンクアドレスが一致する場合に、第1命令に対するコマンドを第2命令に対するコマンドよりも先に同期型DRAMに出力するようにしたため、第2命令に対するアクティブコマンドの発行を省略でき、その分オーバーヘッドが少なくなる。また、同期型DRAMが動作するためのクロック信号の供給/停止を同期型DRAMの動作状態に基づいて制御するようにしたため、クロックを供給するための回路部分だけ全体の消費電力が少なくなる。
【0056】
請求項4に記載の発明によれば、バンクの最終コラムアドレス又は最終コラムアドレス近辺のアドレスを比較アドレスとして記憶しておき、アクセスアドレス信号に含まれるコラムアドレスが比較アドレスと一致する場合に次のバンクに対するアクティブコマンドを発行するようにしたため、その分アクセスに対するオーバーヘッドが少なくなる。
【0057】
請求項5に記載の発明によれば、アクセスアドレスが連続している回数をカウントし、該カウント結果に基づいて同期型DRAMが所定回数以上連続してアクセスした連続アクセスを確認した場合、次のバンクも連続してアクセスされる可能性が高いため、コラムアドレスが比較アドレスと一致した場合に次のバンクに対するアクティブコマンドを発行するようにしたため、その分アクセスに対するオーバーヘッドが少なくなる。
【0061】
請求項6に記載の発明によれば、選択アドレスに対して第2アドレスのローアドレス又はバンクアドレスが一致せず、第1アドレスのローアドレス及びバンクアドレスが一致する場合に、第1命令に対するコマンドを第2命令に対するコマンドよりも先に同期型DRAMに出力するようにしたため、第2命令に対するアクティブコマンドの発行を省略でき、その分オーバーヘッドが少なくなる。また、同期型DRAMが動作するためのクロック信号の供給/停止を同期型DRAMの動作状態に基づいて制御するようにしたため、クロックを供給するための回路部分だけ全体の消費電力が少なくなる。
【0064】
【発明の実施の形態】
(第一実施形態)
以下、本発明を具体化した第一実施形態を図1〜図4に従って説明する。尚、説明の便宜上、従来と同様の構成については同一の符号を付してその説明を一部省略する。
【0065】
図1は、半導体集積回路装置としてのマイクロプロセッサ(以下、単にプロセッサという)の概略ブロック回路図を示す。
プロセッサ31は、CPU12、クロック生成回路13、内部メモリ14、周辺回路としてのタイマ回路15、SDRAMインタフェース(I/F)(以下、単にインタフェースという)32を備え、それらは内部バス17を介して相互に接続されている。
【0066】
クロック生成回路13は、CPU12の動作のためのクロック信号CLKを生成し、出力する。CPU12は、クロック信号CLKに基づいて動作する。その動作において、CPU12は、内部バス17を介して各回路13〜15,32をアクセスする。
【0067】
インタフェース32には、SDRAM18が接続されている。インタフェース32は、クロック信号CLKをSDRAM18に出力する。
SDRAM18は、2つのバンク(bank0,bank1)、周辺回路18aを含む。各バンクは、それぞれ所定のメモリ構成(図23では256ワード×8ビット)を有する。各バンクは、それぞれ4つのローアドレスを有し、各ローアドレスに対して64のコラムアドレスを有する。
【0068】
CPU12は、SDRAM18をアクセスするための命令をインタフェース32に出力する。インタフェース32は、SDRAM18に命令に対応するコマンドを発行する機能を有する。
【0069】
SDRAM18の周辺回路18aは、コマンドに応答して、バンクセレクト、セレクトしたバンクからローアドレス,コラムアドレスに基づくデータの読み出し/書き込み動作,リフレッシュ動作を行う。
【0070】
図2は、アドレス信号の構成を示す。CPU12は、SDRAM18のメモリ構成に対応して、図2に示すように、9ビットのアドレス信号をインタフェース32に出力する。アドレス信号について詳述すれば、アドレス信号は、SDRAM18の構成に従って9ビットの信号A8〜A0にて構成される。アドレス信号の上位2ビット(ビット8,7であり信号A8,A7)は、ローアドレスRAである。アドレス信号ADのビット6(信号A6)は、バンクアドレスBAである。アドレス信号ADの下位6ビット(ビット5〜0であり信号A5〜A0)はコラムアドレスCAである。
【0071】
図3は、インタフェース32の一部ブロック回路図を示す。
インタフェース32は、第1,第2バンクアドレスラッチ(以下、第1,第2バンクラッチという)21,22、バンクアドレス比較回路(以下、バンク比較回路という)23、OR回路33、コマンド生成部37、コラムアドレスラッチ(以下、コラムラッチという)34、コラムアドレス比較回路(以下、コラム比較回路という)35、アドレス設定レジスタ(以下、アドレスレジスタという)36を含む。
【0072】
第1バンクラッチ21には、内部バスを介して図1のCPU12からアドレス信号ADのビット6であるバンクアドレスBAが入力される。第1バンクラッチ21は、内部バスを介してCPU12から入力されるリード信号RD,ライト信号WDに基づいてバンクアドレスBAをラッチし、そのラッチ信号を第2バンクラッチ22とバンク比較回路23に出力する。
【0073】
第2バンクラッチ22は、第1バンクラッチ21の出力信号をラッチし、そのラッチ信号をバンク比較回路23に出力する。この第2バンクラッチ22は、第1バンクラッチ21にラッチされたバンクアドレスよりも1つ前のバンクアドレスをラッチしている。従って、バンク比較回路23には、2つのバンクアドレスが入力される。バンク比較回路23は、リード信号RD,ライト信号WDに応答して2つのバンクアドレスを比較し、その比較結果をOR回路33に出力する。
【0074】
コラムラッチ34には、内部バスを介して図1のCPU12からアドレス信号のビット5〜0(コラムアドレス)が入力される。コラムラッチ34は、内部バスを介してCPU12から入力されるリード信号RD(ライト信号WR)に基づいてコラムアドレスをラッチし、そのラッチしたコラムアドレスをコラム比較回路35に出力する。
【0075】
コラム比較回路35にはアドレスレジスタ36から出力される信号が入力される。アドレスレジスタ36は、バンクの遷移を検出するための比較アドレスが格納されている。
【0076】
この比較アドレスは、バースト転送モードにおいてインタフェース32からSDRAM18に出力する各コラムの最終アドレス又は最終アドレス近辺のアドレスに対応している。
【0077】
各コラムの最終アドレスは、本実施形態はコラムアドレスが6ビットで構成されていることから[111111B]([3FH])となる。尚、周知ではあるが、[B]はその値が2進数であることを示し、[H]はその値が16進数であることを示す。
【0078】
従って、連続アクセスにおいて、インタフェース32は、バースト長[4]に基づいてSDRAM18に対して[00H],[04H]・・・[38H],[3CH]を出力する。この[3CH]が最終コラムアドレスとなる。そのため、CPU12は、アドレスレジスタ36に最終コラムアドレスとして[3CH]を格納する。以下、アドレスを単に括弧をつけて[3C]と表示する。また、アドレス[3C]から読み出したデータをデータ[3C]として示すこととする。
【0079】
尚、バースト長を[1]又は[2]に設定した場合、最終コラムアドレスを[3CH]としてもよい。また、バースト長を[8]に設定した場合、最終コラムアドレスを[38H]又は[3CH]としてもよい。CPU12は、バースト長に対応してこれらの値をアドレスレジスタ36に格納する。
【0080】
コラム比較回路35は、アドレスレジスタ36の比較アドレスと、コラムラッチ34にラッチされたその時々のコラムアドレスと比較する。コラム比較回路35は、比較アドレスとコラムアドレスが一致した場合、トリガ信号BTGをOR回路33に出力する。
【0081】
OR回路33には、SDRAM18がアイドル状態にあるときにリード命令が入力されたことを示す信号IRDが入力される。OR回路33は、その信号IRD、比較結果、トリガ信号を論理和演算した結果をコマンド生成部37に出力する。
【0082】
コマンド生成部37は、OR回路33の出力信号に基づいてアクティブコマンドを生成し、図23のSDRAM18に対してアクティブコマンドを発行する。そして、コマンド生成部37は、リード信号RDに基づいてリードコマンドを、ライト信号WRに基づいてライトコマンドを発行する。
【0083】
コマンド生成部37は、リード信号RDに対してSDRAM18のデータ読み出しが遅れる場合にCPU12を待機させるためのウエイト信号WAITを出力する機能を有する。
【0084】
次に、上記のように構成された の作用を図4に従って説明する。
図4は、インタフェース32の読み出し動作におけるタイミング図を示す。
読み出し動作が開始(時刻t0)されると、インタフェース32は、CPU12から入力されるリード信号RD及びリードアドレス[3C]に応答してHレベルのウエイト信号WAITを出力する。次にクロック信号CLKが立ち上がる(1クロック経過)と、インタフェース32は、SDRAM18にバンク0をアクティブにするためのアクティブコマンド[ACT]及びバンクアドレス0を出力する。SDRAM18は、アクティブコマンド[ACT]に応答してバンク0をアクティブにする。
【0085】
次に、インタフェース32は、所定クロック(図4では3クロック)経過後(時刻t4)、SDRAM18にリードコマンド[RD]とコラムアドレス[3C]を出力する。
【0086】
この時、コラムアドレス[3C]とアドレスレジスタ36に記憶した比較アドレスが一致する。そのため、アドレス比較回路35は、Hレベルのバンクトリガ信号BTGを出力する。
【0087】
コマンド生成部37は、Hレベルのバンクトリガ信号に基づいて、時刻t5においてアクティブコマンド[ACT]とバンクアドレス[1]をSDRAM18に出力する。SDRAM18は、アクティブコマンド[ACT]に応答し、バンクアドレス[1]のバンク1をアクティブにする。
【0088】
インタフェース32は、SDRAM18の読み出し時間に対応する時間経過後、Lレベルのウエイト信号WAITを出力する。SDRAM18は、コラムアドレス[3C]のデータを読み出し、その読み出したリードデータ[3C]を出力する。
【0089】
時刻t8において、CPU12は、リードデータ[3C]を入力すると、次のデータを読み出すべくリード信号RDとコラムアドレス[3D]を出力する。SDRAM18は、バーストモードにてデータを順次読み出している。即ち、SDRAM18は、リードデータ[3C]に続いてリードデータ[3D]〜[3F]をクロック信号CLKに同期して順次出力するため、次クロック(時刻t9)において次のコラムアドレスに対するリードデータ[3D]が読み出されている。従って、CPU12は、リード信号RD、リードアクセス[3D]を出力した次のクロック(時刻t9)においてリードデータ[3D]を入力する。
【0090】
同様に、CPU12は、時刻t9においてリードアドレス[3E]を出力し、時刻t10においてリードデータ[3E]を入力する。更に、CPU12は、時刻t10においてリードアドレス[3F]を出力し、時刻t11においてリードデータ[3F]を入力する。
【0091】
次に、CPU12は、時刻t11において、アドレスに従ってリードアドレス[40]を出力する。リードアドレス[40]は、バンク1内のアドレスである。しかしながら、SDRAM18は、バンク1を既にアクティブ状態にしている。従って、インタフェース32は、時刻t12においてリードコマンド[RD]とコラムアドレス[40]をSDRAM18に出力する。そして、インタフェース32は、SDRAM18の読み出し時間に対応する時間経過後、Lレベルのウエイト信号WAITを出力する。
【0092】
SDRAM18は、コラムアドレス[40]のデータを読み出し、その読み出したリードデータ[40]を出力する。時刻t16において、CPU12は、リードデータ[40]を入力する即ち、CPU12は、インタフェース32がSDRAM18にリードコマンド[RD]を発行して所定期間(3クロック=CL)経過した後、データを読み出すことができる。
【0093】
即ち、本実施形態のインタフェース32は、従来のインタフェース16に比べて3クロック(=RAS−CASディレイ時間tRCD)だけ早く次バンクのデータを読み出すことができる。このことは、読み出し動作におけるオーバーヘッドを少なくする。
【0094】
この時間は、同一バンク内の別のコラムを選択した場合と同じ時間である。従って、本実施形態では、バンクが遷移する場合においても、同一バンク内の別のコラムを選択する場合と同じ時間である。
【0095】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)バースト長に対応して各バンクの最終コラムアドレスよりも前のアドレスを比較アドレスとして設定する。そして、アクセスアドレス信号に含まれるコラムアドレスが比較アドレスと一致する場合に次のバンクに対するアクティブコマンドを発行するようにした。その結果、アクセスに対するオーバーヘッドが少なくなるので、SDRAM18に対するアクセスを高速にすることができる。
【0096】
尚、上記実施形態は、以下の態様で実施してもよい。
○上記実施形態では、比較アドレスをバースト長に対応して設定したが、その他の値に基づいて設定しても良い。例えば、オーバヘッド・タイムに基づいて設定する。SDRAM18に格納されたデータをアドレスに従ってシーケンシャルにアクセスする連続アクセスにおいて、バンクが遷移する時にアクティブコマンドが発行される。このアクティブコマンドを発行した後、RAS−CASディレイ時間tRCDとCASレイテンシCL経過後にデータが出力される。このディレイ時間tRCDとCASレイテンシCLが複数のバンクを跨る連続アクセスにおけるオーバヘッド・タイムとなる。そして、本実施形態では、ディレイ時間tRCDに対応し、その時間だけ最終コラムアドレスよりも前にバンク遷移判定を行うように設定する。このように設定することにより、現在アクセスしているバンクの比較アドレスに対応したデータを読み出した場合、次バンクは既にアクティブ状態にある。そのため、直ちにリードコマンドを発行することができる。これにより、バンクアクティブに要する時間だけバンクが遷移した時の読み出し間隔の時間を短縮することができる。これにより、インタフェース32は、データを読み出す全体の時間を短くすることができる。
【0097】
○上記第一実施形態において、図5に示すように、インタフェース32aを構成することもできる。インタフェース32aは、バッファメモリ(FIFO)38を含む。このFIFO38は、SDRAM18から読み出したデータを順次記憶する。更に、FIFO38は、記憶したデータを記憶した順番で内部バス17に出力する。これにより、コマンド生成部37は、図6に示すように、時刻t8においてリードコマンド[RD]の発行が可能となる。従って、そのリードコマンド[RD]の発行とコラムアドレス[40]の出力した時から所定時間(CASレイテンシCL)時間経過後にデータ[40]が読み出される。このデータ[40]の読み出す時刻は、データ[3F]を読み出した時刻のクロック後となる。即ち、FIFO38を備えることで、バンクが遷移しても、異なるバンクのデータを1クロック間隔で読み出すことができる。このことは、上記第一実施形態におけるCASレイテンシCLの時間分だけ読み出しを早くすることができる。これにより、上記第一実施形態に比べて更に読み出し動作におけるオーバーヘッドを少なくすることができる。
【0098】
(第二実施形態)
以下、本発明を具体化した第二実施形態を図7〜図9に従って説明する。
尚、説明の便宜上、第一実施形態と同様の構成については同一の符号を付してその説明を一部省略する。
【0099】
図7は、本実施形態のSDRAMインタフェース(以下、単にインタフェースという)41の一部ブロック回路図を示す。
インタフェース41は、第1,第2バンクアドレスラッチ(以下、第1,第2バンクラッチという)21,22、バンクアドレス比較回路(以下、バンク比較回路という)23、OR回路23、コマンド生成部37、コラムアドレスラッチ(以下、コラムラッチという)34、コラムアドレス比較回路(以下、コラム比較回路という)35、アドレス設定レジスタ(以下、アドレスレジスタという)36、第1,第2ローアドレスラッチ(以下、第1,第2ローラッチという)42,43、ローアドレス比較回路(以下、ロー比較回路という)44、OR回路45、加算器46、アドレス連続検出回路47、連続アクセスカウンタ48、比較器49、AND回路50を含む。
【0100】
第1ローラッチ42には、内部バス17を介して図1のCPU12からアドレス信号ADのビット6であるローアドレスRAが入力される。第1ローラッチ42は、内部バス17を介してCPU12から入力されるリード信号RD,ライト信号WDに基づいてローアドレスRAをラッチし、そのラッチ信号を第2ローラッチ43とロー比較回路44に出力する。
【0101】
第2ローラッチ43は、第1ローラッチ42の出力信号をラッチし、そのラッチ信号をロー比較回路44に出力する。この第2ローラッチ43は、第1ローラッチ42にラッチされたローアドレスよりも1つ前のローアドレスをラッチしている。従って、ロー比較回路44には、連続する2つのローアドレスが入力される。
【0102】
ロー比較回路44は、リード信号RD,ライト信号WDに応答して2つのローアドレスを比較し、その比較結果をOR回路45に出力する。即ち、ローアドレス比較器44は、連続する2つのローアドレスを比較し、一致している場合にはHレベルの判定信号S1を、一致していない場合にはLレベルの判定信号S1を出力する。尚、ローアドレス比較回路44は、判定信号S1のレベルを反転して出力する構成としてもよい。
【0103】
コラムラッチ34には、内部バス17を介して図1のCPU12からアドレス信号のビット5〜0(コラムアドレス)が入力される。コラムラッチ34は、内部バス17を介してCPU12から入力されるリード信号RD(ライト信号WR)に基づいてコラムアドレスをラッチし、そのラッチしたコラムアドレスをコラム比較回路35に出力する。
【0104】
コラム比較回路35にはアドレスレジスタ36から出力される信号が入力される。アドレスレジスタ36は、バンクの遷移を検出するための比較アドレスが格納されている。
【0105】
この比較アドレスは、バースト転送モードにおいてインタフェース41からSDRAM18に出力する各コラムの最終アドレス又は最終アドレス近辺のアドレスに対応している。
【0106】
各コラムの最終アドレスは、本実施形態はコラムアドレスが6ビットで構成されていることから[111111B]([3FH])となる。尚、周知ではあるが、[B]はその値が2進数であることを示し、[H]はその値が16進数であることを示す。
【0107】
従って、連続アクセスにおいて、インタフェース41は、バースト長[4]に基づいてSDRAM18に対して[00H],[04H]・・・[38H],[3CH]を出力する。この[3CH]が最終コラムアドレスとなる。そのため、CPU12は、アドレスレジスタ36に最終コラムアドレスとして[3CH]を格納する。以下、アドレスを単に括弧をつけて[3C]と表示する。また、アドレス[3C]から読み出したデータをデータ[3C]として示すこととする。
【0108】
尚、バースト長を[2]に設定した場合、最終コラムアドレスは[3EH]となる。また、バースト長を[8]に設定した場合、最終コラムアドレスは[38H]となる。CPU12は、バースト長に対応してこれらの値をアドレスレジスタ36に格納する。
【0109】
コラム比較回路35は、アドレスレジスタ36の比較アドレスと、コラムラッチ34にラッチされたその時々のコラムアドレスと比較する。コラム比較回路35は、比較アドレスとコラムアドレスが一致した場合、トリガ信号BTGをAND回路50に出力する。
【0110】
コラムラッチ34は、ラッチ信号を加算器46とアドレス連続検出回路(以下、単に検出回路という)47に出力する。
加算器46は、リード信号RD/ライト信号WRが入力される。加算器46は、前記コラムラッチ34から入力されるコラムアドレスをラッチする機能を有する。加算器46は、リード信号RD/ライト信号WRが入力されると、ラッチしたコラムアドレスに[1]を加算し、その加算結果を検出回路47に出力する。その後、加算器46は、コラムラッチ34から入力されるコラムアドレスをラッチする。
【0111】
検出回路47は、入力信号に基づいて、連続したアドレスに対するアクセスがあるか否かを検出する。検出回路47は、加算器46の出力信号とコラムラッチ34の出力信号を比較する。加算器46は、1つ前にコラムラッチ34から出力されるコラムアドレスに[1]加算した結果を出力信号として出力する。
【0112】
従って、アクセスアドレスが連続している場合、加算器46から出力されるアドレスとコラムラッチ34から出力されるコラムアドレスは一致する。これにより、検出回路47は、加算器46の出力信号とコラムラッチ34の出力信号が一致しているか否かを検出し、その検出結果を連続アクセスカウンタ(以下、単にカウンタという)48とOR回路45に出力する。
【0113】
OR回路45には、前記バンク比較回路23の出力信号とロー比較回路44の出力信号が入力される。OR回路45は、各回路23,44,47の出力信号を論理和演算し、その演算結果をカウンタ48に出力する。
【0114】
カウンタ48は、検出回路47の出力信号に基づいて、アクセスアドレスが連続している場合に、OR回路45の出力信号に基づいてカウント値をカウントアップする。カウンタ48は、検出回路47の出力信号に基づいて、アクセスアドレスが連続していない場合、カウント値をクリアする。カウンタ48はカウント値を比較器49に出力する。
【0115】
比較器49は、レジスタ49aを含む。レジスタ49aには、予め連続判定データが格納されている。連続判定データは、いくつのコラムアドレスが連続してアクセスされたかを判定するためのデータであり、予め図1のCPU12により設定される。
【0116】
比較器49は、カウンタ48の出力信号(カウント値)とレジスタ49aに格納された連続判定データを比較しする。そして、比較器49は、カウンタ48の出力信号(カウント値)と連続判定データが一致する場合に、Hレベルの判定信号S1をAND回路50に出力する。
【0117】
尚、レジスタ49aに記憶した連続判定データをカウンタ48にカウントの初期値としてロードする構成してもよい。カウンタ48は、ロードされた連続判定データをカウント値にセットし、そのカウント値から前記検出回路47の出力信号とOR回路の出力信号に基づいてダウンカウントする。そして、カウンタ48は、カウント値が所定値(例えば0)になったときにHレベルの判定信号S1をAND回路50に出力する構成としても良い。また、カウンタ48は、ロードされた連続判定データをカウント値にセットし、そのカウント値からアップカウントする。そして、カウンタ48は、カウント値が所定値又はオーバーしたときにHレベルの判定信号S1をAND回路50に出力する構成としてもよい。
【0118】
AND回路50には、前記コラム比較回路35の出力信号が入力される。AND回路50は、比較器49から出力される判定信号S1とコラム比較回路35の出力信号を論理積演算し、その演算結果をOR回路33に出力する。
【0119】
OR回路33は、バンク比較回路23の出力信号、AND回路50の出力信号、SDRAM18がアイドル状態にあるときにリード命令が入力されたことを示す信号IRDが入力される。OR回路33は、それらの信号を論理和演算し、演算結果をコマンド生成部37に出力する。
【0120】
コマンド生成部37は、OR回路33の出力信号に基づいてアクティブコマンドを生成し、図23のSDRAM18に対してアクティブコマンドを発行する機能を有する。そして、コマンド生成部37は、リード信号RDに基づいてリードコマンドを、ライト信号WRに基づいてライトコマンドを発行する機能を有する。また、コマンド生成部37は、各コマンドに対して図1のCPU12を待機させる必要がある場合に、その待機期間だけHレベルのウエイト信号WAITを内部バス17に出力する機能を有する。
【0121】
次に、上記のように構成されたインタフェース41の作用を、図8のタイミング図を用いて説明する。
今、時刻t1において、SDRAM18からコラムアドレス[3A]に記憶されたデータDT(以下、アドレスに対応してデータ[3A]という)が読み出されている。そして、コラムアドレス[2C](図8の左端)からコラムアドレス[3A]までアクセスが連続している。この時、図48のカウンタ48は、検出回路47の検出結果に基づいてカウント値[E]を出力している。
【0122】
次に、時刻t2において、図1のCPU12は、次のアドレスのデータを読み出すべくリード信号RD及びアクセスアドレス[3B]をインタフェース41に出力する。インタフェース41は、リードコマンド[RD]及びアクセスアドレス[3B]をSDRAM18に出力する。SDRAM18は、リードコマンド[RD]及びアクセスアドレス[3B]に応答してデータ[3B]を出力する。
【0123】
この時、インタフェース41のコラムラッチ34は、アクセスアドレスのビット5〜0をコラムアドレス[3B]としてラッチし、ラッチしたアドレスを加算器46と検出回路47に出力する。加算器46は、先にラッチしたコラムアドレス[3A]に[1]加算した加算結果を検出回路47に出力する。この時、加算器46から出力されるアドレス[3B]と、コラムラッチ34から出力されるコラムアドレス[3B]が一致する。そのため、カウンタ48は、検出回路47から出力される信号に基づいてカウントアップし、カウント値[F]を比較器49に出力する。
【0124】
比較器49のレジスタ49aには、予め図1のCPU12から値[F]の連続判定データが記憶されている。従って、比較器49は、カウンタ48から出力されるカウント値[F]とレジスタ49aに記憶された連続判定データが一致するため、Hレベルの判定信号S1を出力する。これにより、インタフェース41は、連続アクセスを確認する。
【0125】
次に、時刻t3において、図1のCPU12は、次のアドレスのデータを読み出すべくリード信号RD及びアクセスアドレス[3C]をインタフェース41に出力する。インタフェース41は、リードコマンド[RD]及びアクセスアドレス[3C]をSDRAM18に出力する。
【0126】
この時、インタフェース41のコラム比較回路は、コラムラッチ34から出力されるコラムアドレス[3C]がアドレスレジスタ36に記憶された比較アドレスと一致するため、Hレベルのトリガ信号BTGをAND回路に出力する。AND回路には、Hレベルの判定信号S1が入力されている。これにより、AND回路は、Hレベルの信号を出力する。
【0127】
コマンド生成部37には、AND回路の出力信号がOR回路を介して入力される。コマンド生成部37は、AND回路の出力信号に応答して時刻t4において次バンク[1]に対するアクティブコマンド[ACT]を発行する。これにより、インタフェース41は、バンク[0]の最終コラムアドレス[3F]が入力されるよりも前に次のバンク[1]に対するアクティブコマンド[ACT]を発行する。
【0128】
即ち、インタフェース41は、連続アクセスを確認した後、バンク[0]の比較アドレスに対応して次のバンク[1]に対するアクティブコマンド[ACT]を発行する。
【0129】
SDRAM18は、アクティブコマンド[ACT]に応答してRAS−CASディレイ時間tRCD経過後にバンク[1]に対するアクセスを可能とする。このバンク[1]がアクセス可能となるタイミングは、バンク[0]の最終コラムアドレスに対するデータが読み出されるよりも前である。即ち、時刻t5において、データ[3F]が読み出されたとき、SDRAM18のバンク[1]はアクティブ状態にある。そのため、インタフェース41は、時刻t6において、リードコマンド[RD]及びコラムアドレス[40]をSDRAM18に発行する事ができる。即ち、インタフェース41は、バンク[0]からバンク[1]にバンクが遷移するときにも、RAS−CASディレイ時間tRCDの間待つことなくリードコマンド[RD]を発行することができる。このことは、連続アクセスにおけるオーバーヘッドを少なくする。
【0130】
尚、インタフェース41に図5のFIFO38を備えて実施してもよい。図9は、インタフェース41に図5のFIFO38を備えた場合のタイミング図を示す。
【0131】
この場合、インタフェース41は、時刻t1において上記と同様に、連続アクセスを確認した後、バンク[0]の比較アドレスに対応して次のバンク[1]に対するアクティブコマンド[ACT]を発行する。そして、インタフェース41は、FIFO38によりデータの読み出しを待つことなく、時刻t2において、SDRAM18に対して、リードコマンド[RD]及びコラムアドレス[40]を発行する。このことは、データ[3F]に続いてデータ[40]の読み出しを可能とし、CASレイテンシCLの時間待ちを省略することができる。
【0132】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)アクセスアドレスが連続している回数をカウントし、該カウント結果に基づいてSDRAM18が所定回数以上連続してアクセスした連続アクセスを確認した場合、次のバンクも連続してアクセスされる可能性が高いため、コラムアドレスが比較アドレスと一致した場合に次のバンクに対するアクティブコマンドを発行するようにした。その結果、SDRAM18に対するアクセスにおけるオーバーヘッドが少なくなるため、その分アクセスを高速に行うことができる。
【0133】
(2)連続アクセスを判定するために予め記憶された判定データをカウントの初期値とし、該初期値からアクセスアドレスが連続している場合にカウントするようにしたため、アクセスの連続性を容易に確認できると共に、アクセスアドレスの連続数を容易に変更することができる。
【0134】
(第三実施形態)
以下、本発明を具体化した第三実施形態を図10〜図15に従って説明する。図10は、本実施形態のSDRAMインタフェース(以下、単にインタフェースという)51のブロック回路図を示す。インタフェース51は、図1のインタフェース32に代えて用いられる。尚、本実施形態のインタフェース51は、2ビットの命令と24ビットのアドレス信号に対応して構成されている。
【0135】
インタフェース51は、第1,第2命令バッファ52,53、第1,第2アドレスバッファ54,55、第1,第2セレクタ56,57、コマンド生成部58、アドレスマルチプレクサ59、バンク及びローアドレス比較器60、命令比較器61、選択信号生成回路62を含む。命令比較器61は、ライト比較器61a、リード比較器61bを含む。選択信号生成回路62は、インバータ回路63〜65、OR回路66、及び、AND回路67,68を含む。
【0136】
第1,第2命令バッファ52,53は、2ビットの命令に対応した2個のフリップフロップを含む。第1,第2命令バッファ52,53は、クロック信号CLKの立ち上がりエッジに基づいて入力信号をラッチし、ラッチ結果を出力する。
【0137】
第1命令バッファ52には、図1のCPU12が出力する2ビットの命令COMが入力される。第2命令バッファ53には、第1命令バッファ52の出力信号が入力される。第1命令バッファ52は、その時の命令をラッチし、第2命令バッファ53は、第1命令バッファ52にラッチされた命令よりも1つ前の命令をラッチする。以降、第1命令バッファ52がラッチした命令を第1命令COM1、第2命令バッファ53がラッチした命令を第2命令COM2とする。
【0138】
第1,第2アドレスバッファ54,55は、24ビットのアドレスに対応した24個のフリップフロップを含む。第1,第2アドレスバッファ54,55は、クロック信号CLKの立ち上がりエッジに基づいて入力信号をラッチし、ラッチ結果を出力する。
【0139】
第1アドレスバッファ54には、図1のCPU12が出力する24ビットのアドレスADが入力される。第2アドレスバッファ55には、第1アドレスバッファ54の出力信号が入力される。第1アドレスバッファ54は、その時のアドレスをラッチし、第2アドレスバッファ55は、第1アドレスバッファ54にラッチされたアドレスよりも1つ前のアドレスをラッチする。以降、第1アドレスバッファ54がラッチしたアドレスを第1アドレスAD1、第2アドレスバッファ55がラッチしたアドレスを第2アドレスAD2とする。
【0140】
第1セレクタ56には、第1,第2命令バッファ52,53の出力信号、即ち第1,第2命令COM1,COM2と、選択信号SELが入力される。第1セレクタ56は、選択信号SELに応答して第1,第2命令COM1,COM2のうちの何れか一方を選択し、その選択した命令を選択命令CMDとしてコマンド生成部58(コマンド・ステートマシン)に出力する。
【0141】
コマンド生成部58には、アドレスヒット情報が入力される。アドレスヒット情報は、選択命令CMDに対するバンク判定信号、ロー判定信号を含む。コマンド生成部58は、選択命令CMDとアドレスヒット情報に基づいて、制御信号RASバー、CASバー、WEバーの組み合わせによるコマンドの発行、アドレス選択信号ASEL、及び第1バッファイネーブル信号BEN1を出力する。
【0142】
コマンド生成部58は、インタフェース51の動作状態に応じて前記第1バッファイネーブル信号BEN1を出力する機能を有する。コマンド生成部58は、要求の処理中ではなく、新たな要求の受付が可能な状態にある時にHレベル([1])の第1バッファイネーブル信号BEN1を出力する。
【0143】
第2セレクタ57には、第1,第2アドレスバッファ54,55の出力信号、即ち第1,第2アドレスAD1,AD2と、選択信号SELが入力される。第2セレクタ57は、選択信号SELに応答して第1,第2アドレスAD1,DA2のうちの何れか一方を選択し、その選択したアドレスを選択アドレスADRとしてアドレスマルチプレクサ59に出力する。
【0144】
アドレスマルチプレクサ59には、アドレス選択信号ASELが入力される。アドレスマルチプレクサ59は、アドレス選択信号ASELに基づいて、24ビットの選択アドレスADRを12ビットのアドレス信号A0〜A11に時分割(マルチプレクス)して出力する。
【0145】
バンク及びローアドレス比較器(以下、単にアドレス比較器という)60には、前記第1,第2アドレスAD1,AD2と、選択アドレスADRが入力される。アドレス比較器60は、選択アドレスADRをラッチした値と第1,第2アドレスAD1,AD2を比較し、その比較結果に基づいてアドレスヒット情報を出力する。
【0146】
選択アドレスADRは、第2アドレスバッファ55にラッチされた第2アドレスAD2が対応する命令より1つ前の命令に対応して第2セレクタ57から出力されるアドレスである。
【0147】
例えば、第1命令COM1に対応したアドレスが第1アドレスバッファ54に第1アドレスAD1としてラッチされている。この場合、第2アドレスバッファ55は第2命令COM2に対応するアドレスを第2アドレスAD2としてラッチしいる。そして、選択アドレスADRは、選択信号SELに応答して第1,第2アドレスのうちの一方が選択される。従って、アドレス比較器60は、連続する3つの命令に対するアドレスを比較し、その比較結果に基づいてアドレスビット情報を出力する。
【0148】
アドレス(選択アドレスADR、第1,第2アドレスAD1,AD2)は、ローアドレス、バンクアドレス、コラムアドレスを含む。例えば、ローアドレスは11ビットの信号、バンクアドレスは1ビットの信号、コラムアドレスは10ビットの信号にて構成される。アドレスヒット情報は、第1,第2バンク判定信号S11,S12、第1,第2ロー判定信号S13,S14にて構成される。
【0149】
アドレス比較器60は、選択アドレスADRをラッチした値のバンクアドレス,ローアドレスと、第1,第2アドレスAD1,AD2のバンクアドレス,ローアドレスをそれぞれ比較結果する。
【0150】
アドレス比較器60は、保持しているアドレスのバンクアドレスと第1アドレスAD1のバンクアドレスが一致(バンクヒット)する場合、Hレベルの第1バンク判定信号S11を出力する。アドレス比較器60は、保持しているアドレスのローアドレスと第1アドレスAD1のローアドレスが一致(ローヒット)する場合、Hレベルの第1ロー判定信号S13を出力する。
【0151】
アドレス比較器60は、保持しているアドレスのバンクアドレスと第2アドレスAD2のバンクアドレスが一致(バンクヒット)する場合、Hレベルの第2バンク判定信号S12を出力する。アドレス比較器60は、選択アドレスADRのローアドレスと第2アドレスAD2のローアドレスが一致(ローヒット)する場合、Hレベルの第2ロー判定信号S14を出力する。
【0152】
第1インバータ回路63は、第2バンク判定信号S12を反転し、その反転信号をOR回路66に出力する。第2インバータ回路64は、第2ロー判定信号S14を反転し、その反転信号をOR回路66に出力する。OR回路66は、第1,第2インバータ回路63,64の出力信号を論理和演算し、その演算結果を第2判定信号S15として第1AND回路67に出力する。
【0153】
詳述すれば、前記アドレス比較器60は、第2アドレスAD2がバンクヒットした場合にHレベルの第2バンク判定信号S12を出力し、第2アドレスAD2のバンクアドレスが保持しているアドレスのバンクアドレスと一致しないバンクミスの場合にLレベルの第2バンク判定信号S12を出力する。また、アドレス比較器60は、第2アドレスAD2がローヒットした場合にHレベルの第2ロー判定信号S14を出力し、第2アドレスAD2のローアドレスが保持しているアドレスのローアドレスと一致しないローミスの場合にLレベルの第2ロー判定信号S14を出力する。
【0154】
従って、OR回路66は、2つの入力信号のうちの少なくとも一方がHレベル、即ち、第2アドレスAD2がバンクミス又はローミスした場合にHレベルの判定信号S15を第1AND回路67に出力する。
【0155】
第1AND回路67の入力端子には、ライト比較器61aとリード比較器61bが接続されている。
ライト比較器61aには、前記第2命令COM2、即ち第2命令バッファ53の出力信号が入力される。ライト比較器61aは、第2命令COM2がライト命令か否かを判断する。リード比較器61bは、判断結果に基づいて、第2命令COM2がライト命令の場合にHレベルのライト判定信号S16を第1AND回路67に出力する。
【0156】
リード比較器61bには、前記第1命令COM1、即ち第1命令バッファ52の出力信号が入力される。リード比較器61bは、第1命令COM1がリード命令か否かを判断する。リード比較器61bは、判断結果に基づいて、第1命令COM1がリード命令の場合にHレベルのリード判定信号S17を第1AND回路67に出力する。
【0157】
第1AND回路67は、第1バンク判定信号S11、第1ロー判定信号S13、第2判定信号S15、ライト判定信号S16、リード判定信号S17を論理積演算し、その演算結果を選択信号SELとして出力する。
【0158】
詳述すれば、Hレベルの第1バンク判定信号S11は、第1アドレスAD1がバンクヒットした場合を示す。Hレベルの第1ロー判定信号S13は、第1アドレスAD1がローヒットした場合を示す。Hレベルの第2判定信号S15は、第2アドレスAD2がバンクミス又はローミスした場合を示す。Hレベルのライト判定信号S16は、第1命令COM1がライト命令であることを示す。更に、Hレベルのリード判定信号S17は、第2命令COM2がリード命令であることを示す。
【0159】
従って、第1AND回路67は、第1アドレスAD1がバンクヒット且つローヒット、第2アドレスAD2がバンクミス又はローミス、第1命令COM1がライト命令、且つ、第2命令COM2がリード命令の時にHレベルの選択信号SELを出力する。換言すれば、図1のCPU12がリード命令に続いてライト命令を出力し、リード命令に対応するアドレスがバンクミス又はローミスであってライト命令に対応するアドレスがバンクヒット及びローヒットした場合に、第1AND回路67はHレベルの選択信号SELを出力する。
【0160】
選択信号SELは、第3インバータ回路65により反転され、その反転選択信号SELが第2AND回路68に入力される。第2AND回路68には、前記第1バッファイネーブル信号BEN1が入力される。第2AND回路68は、反転選択信号SELと第1バッファイネーブル信号BEN1を論理積演算し、その演算結果を第2バッファイネーブル信号BEN2として第2命令バッファ53、第2アドレスバッファ55に出力する。
【0161】
図11は、アドレス比較器60の回路図を示す。
アドレス比較器60は、バンクアドレス比較器60aとローアドレス比較器60bを含む。
【0162】
バンクアドレス比較器60aは、フリップフロップ回路(以下、FF回路という)71、否定排他的論理和回路(以下、ENOR回路という)72,73を含む。
【0163】
FF回路71には、選択アドレスADRに含まれる1ビットのバンクアドレスBAが入力される。FF回路71は、1ビットのバンクアドレスをラッチ可能に構成される。FF回路71は、イネーブル信号BEN1及びクロック信号CLKに基づいてバンクアドレスBAをラッチし、そのラッチ信号をENOR回路72,73に出力する。
【0164】
第1ENOR回路72には、FF回路71の出力信号と、第1アドレスAD1に含まれる1ビットの第1バンクアドレスBA1が入力される。第1ENOR回路72は、出力信号と第1バンクアドレスBA1を排他的否定論理和演算し、その演算結果を反転した信号を第1バンク判定信号S11として出力する。
【0165】
前記FF回路71の出力信号は、選択アドレスADRを保持したアドレスに含まれるバンクアドレスBAである。従って、第1ENOR回路72は、第1バンクアドレスBA1と、保持しているバンクアドレスが一致する場合にHレベルの第1バンク判定信号S11を、一致しない場合にLレベルの第1バンク判定信号S11を出力する。
【0166】
第2ENOR回路73には、FF回路71の出力信号と、第2アドレスAD2に含まれる1ビットの第2バンクアドレスBA2が入力される。第2ENOR回路73は、出力信号と第2バンクアドレスBA2を排他的否定論理和演算し、その演算結果を反転した信号を第2バンク判定信号S12として出力する。
【0167】
前記FF回路71の出力信号は、選択アドレスADRを保持したアドレスに含まれるバンクアドレスBAである。従って、第2ENOR回路73は、第2バンクアドレスBA2と、保持しているバンクアドレスが一致する場合にHレベルの第2バンク判定信号S12を、一致しない場合にLレベルの第2バンク判定信号S12を出力する。
【0168】
ローアドレス比較器60bは、フリップフロップ回路(以下、FF回路という)74、排他的否定論理和回路(以下、ENOR回路という)75a〜75n,76a〜76n、AND回路77,78を含む。
【0169】
FF回路74には、選択アドレスADRに含まれる11ビットのローアドレスRAが入力される。FF回路74は、11
ビットのローアドレスRAをラッチ可能に構成される。FF回路74は、クロック信号CLKの立ち上がりエッジに基づいてローアドレスRAをラッチし、ラッチ結果を第1,第2ENOR回路75a〜75n,76a〜76nに出力する。
【0170】
第1,第2ENOR回路75a〜75n,76a〜76nは、ローアドレスRAのビット数に対応した数だけそれぞれ備えられる。各第1ENOR回路75a〜75nには、FF回路74の出力信号が1ビットずつ入力される。各第1ENOR回路75a〜75nには、第1アドレスAD1に含まれる11ビットの第1ローアドレスRA1がそれぞれ1ビットずつ入力される。第1ENOR回路75a〜75nは、出力信号と第1ローアドレスRA1を排他的否定論理和演算し、その演算結果を第1AND回路77に出力する。第1AND回路77は、各ENOR回路75a〜75nの出力信号を論理積演算し、その結果を第1ロー判定信号S13として出力する。
【0171】
前記FF回路74の出力信号は、選択アドレスADRを保持したアドレスに含まれるローアドレスRAである。従って、第1AND回路77は、第1ローアドレスRA1と保持しているローアドレスが一致する場合にHレベルの第1ロー判定信号S13を、一致しない場合にLレベルの第1ロー判定信号S13を出力する。
【0172】
各第2ENOR回路76a〜76nには、FF回路74から出力される11ビットの出力信号がそれぞれ1ビットずつ入力される。各第1ENOR回路76a〜76nには、第2アドレスAD2に含まれる11ビットの第2ローアドレスRA2がそれぞれ1ビットずつ入力される。第2ENOR回路76a〜76nは、出力信号と第2ローアドレスRA1を排他的否定論理和演算し、その演算結果を第2AND回路78に出力する。第2AND回路78は、各ENOR回路76a〜76nの出力信号を論理積演算し、その結果を第2ロー判定信号S14として出力する。
【0173】
前記FF回路74の出力信号は、選択アドレスADRを保持したアドレスに含まれるローアドレスRAである。従って、第2AND回路77は、保持しているローアドレスとローアドレスRAが一致する場合にHレベルの第2ロー判定信号S14を、一致しない場合にLレベルの第2ロー判定信号S14を出力する。
【0174】
図12は、ライト比較器61aの回路図を示す。ライト比較器61aは、インバータ回路79、NOR回路80を含む。インバータ回路79には、第2命令COM2のビット1が入力される。インバータ回路79は、ビット1の状態を反転し、その結果をNOR回路80に出力する。
【0175】
NOR回路80は、インバータ回路79の出力信号と第2命令COM2のビット0を否定論理和演算し、その演算結果をリード判定信号S17として出力する。従って、ライト比較器61aは、[10](2進数)の第2命令COM2に応答してHレベルのライト判定信号S16を出力する。
【0176】
図13は、リード比較器61bの回路図を示す。リード比較器61bは、NOR回路81を含む。NOR回路81には、第1命令COM1のビット1,0が入力される。NOR回路81は、ビット1,0を否定論理和演算し、その演算結果をリード判定信号S17として出力する。従って、リード比較器61bは、[00](2進数)の第1命令COM1に応答してHレベルのリード判定信号S17を出力する。
【0177】
図14に示すように、アドレスマルチプレクサ59には、前記選択アドレスADRと、全バンクプリチャージPALL、片バンクプリチャージPRE、モードレジスタセットMRSが入力される。アドレスマルチプレクサ59は、アドレス選択信号ASELに基づいて前記選択アドレスADRの上位12ビット、選択アドレスADRの下位12ビット、全バンクプリチャージPALL、片バンクプリチャージPRE、モードレジスタセットMRSの内の1つを選択し、その選択結果をアドレス信号A11〜A0として図1のSDRAM18に出力する。
【0178】
SDRAM18は、全バンクプリチャージPALLに応答して全てのバンクのプリチャージを行う。プリチャージは、ビットラインを再書き込みし、内部ローアドレスラインをリセットする。SDRAM18は、片バンクプリチャージPREに応答し、該プリチャージPREにて指定されるバンクのプリチャージを行う。SDRAM18は、モードレジスタセットMRSに応答し、前記バースト長BL、CASレイテンシCLをセットする。
【0179】
次に、上記のように構成されたインタフェース51の作用を図15に従って詳述する。
今、図1のCPU12は、SDRAM18のバンク[0]に対するアクセスを行っている。次に、CPU12は、プログラムデータに従って、本実施形態のインタフェース51に対してバンク[1]に対する書き込み動作、バンク[0]に対する読み出し動作を行う。即ち、CPU12は、バンク[1]に対するライト命令を出力し、次にバンク[0]に対するリード命令をインタフェース51に出力する。また、リード命令に対するローアドレスは、現在アクセスしているバンク[0]のローアドレスと同一である。
【0180】
インタフェース51の第2命令バッファ53は、先に出力されたライト命令を第2命令COM2としてラッチする。第2アドレスバッファ55は、ライト命令を行うバンク[0]のバンクアドレスを含むアドレスを第2アドレスAD2としてラッチする。
【0181】
第1命令バッファ52は、ライト命令の次に出力されたリード命令を第1命令COM1としてラッチする。第1アドレスバッファ54は、リード命令を行うバンク[1]のバンクアドレスを含むアドレスを第1アドレスAD1としてラッチする。
【0182】
アドレス比較器60は、保持しているアドレスのバンクアドレス,ローアドレスが、第1アドレスAD1のバンクアドレスBA1,ローアドレスRA1とそれぞれ一致するため、Hレベルの第1バンク判定信号S11,第1ロー判定信号S13を出力する。また、アドレス比較器60は、保持しているアドレスのバンクアドレスBAと第2アドレスのバンクアドレスBA2が一致しないので、Lレベルの第2バンク判定信号S12を出力する。この第1バンク判定信号S12に基づいて、OR回路66は、Hレベルの判定信号S15を出力する。
【0183】
ライト比較器61aは、第2命令バッファ53にラッチされた第2命令COM2がライト命令であるため、Hレベルのライト判定信号S16を出力する。リード比較器61bは、第1命令バッファ52にラッチされた第1命令COM1がリード命令であるため、Hレベルのリード判定信号S17を出力する。第1AND回路67は、Hレベルの各判定信号S11,S12,S15,S16,S17に基づいてHレベルの選択信号SELを第1,第2セレクタ56,57に出力する。
【0184】
第1セレクタ56は、Hレベルの選択信号SELに基づいて、第1命令バッファ52から出力される第1命令COM1を選択コマンドCMDとしてコマンド生成部58に出力する。その後、第1セレクタ56は、第2命令バッファ53にラッチされたライト命令をコマンド生成部58に選択命令CMDとして出力する。
【0185】
従って、コマンド生成部58には、第2命令バッファ53にラッチされたライト命令よりも先に、そのライト命令よりも後に図1のCPU12から出力されたリード命令が入力される。その後、コマンド生成部58には、第2命令バッファ53にラッチされたライト命令が入力される。
【0186】
第2セレクタ57は、Hレベルの選択信号SELに基づいて、第1アドレスバッファ54から出力される第1アドレスAD1を選択アドレスADRとしてアドレスマルチプレクサ59に出力する。アドレスマルチプレクサ59は、コマンド生成部58から入力されるアドレス選択信号ASELに基づいて、選択アドレスADRを時分割したアドレス信号A11〜A0を図1のSDRAM18に出力する。
【0187】
これにより、インタフェース51は、第1,第2命令バッファ52,53と第1,第2アドレスバッファ54,55にラッチされた命令,アドレスが所定の条件に適合した場合に、命令及びアドレスの順番を入れ替えてコマンドを発行する。
【0188】
即ち、図15(a)に示すように、時刻t1において、コマンド生成部58は、選択コマンドCMD及び選択アドレスADRに基づいて、リードコマンド[RD]及びバンクアドレス[0]をSDRAM18に発行する。次に、コマンド生成部58は、時刻t2においてバンク[1]に対するアクティブコマンド[ACT]を発行し、時刻t3においてプリチャージコマンド[PRE]を発行する。そして、時刻t4において、コマンド生成部58は、ライトコマンド[WR]を発行する。
【0189】
ところで、図21に示す従来のインタフェース17では、CPU12から入力される順番でコマンドを発行する。即ち、インタフェース17は、先ずバンク[1]に対するライトコマンド[WR]をSDRAM18に発行し、次にバンク[0]に対するリードコマンド[RD]を発行する。
【0190】
これらのコマンドは、バンクが異なるため、コマンドに先だってアクティブコマンド[ACT]、プリチャージコマンド[PRE]を発行する必要がある。即ち、図15(b)に示すように、インタフェース17は、時刻t1においてバンク[1]に対するアクティブコマンド[ACT]を発行した後、ライトコマンド[WR]を発行する。次に、インタフェース17は、バンク[0]に対してアクティブコマンド[ACT],プリチャージコマンド[PRE],リードコマンド[RD]を発行する。
【0191】
この場合、従来のインタフェース17は、時刻t1におけるアクティブコマンド[ACT]の発行からRAS−CASディレイ時間tRCD経過した後でなければライトコマンド[WR],リードコマンド[RD]を発行することができない。そして、リードコマンド[RD]に対して読み出すデータ[DT]の確定は、リードコマンド[RD]を発行してからCASレイテンシCL経過した後である。
【0192】
これに対し、本実施形態では、時刻t1においてバンク[0]に対するリードコマンド[RD]を発行している。この場合、バンクの遷移がないため、インタフェース51はアクティブコマンド[ACT]を発行しない。そして、インタフェース51は、リードコマンド[RD]を発行した後、バンク[1]に対するアクティブコマンド[ACT],プリチャージコマンド[PRE],ライトコマンド[WR]を発行する。そして、リードコマンド[RD]に対するデータ[DT]の読み出しは、ライトコマンド[WR]を発行するまでに終了する。
【0193】
これにより、リードコマンド[RD]及びライトコマンド[WR]に要する時間は、従来のインタフェース17に比べて短くなる。このことは、SDRAM18に対するアクセスにおけるオーバーヘッドを従来に比べて少なくする。
【0194】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)アドレス比較器60にて保持しているアドレスに対して第2アドレスAD2のローアドレス又はバンクアドレスが一致せず、第1アドレスAD1のローアドレス及びバンクアドレスが一致する場合に、第1命令COM1に対するリードコマンド[RD]を第2命令COM2に対するライトコマンド[WR]よりも先にSDRAM18に出力するようにした。その結果、第2命令COM2に対するアクティブコマンド[ACT]の発行を省略でき、その分オーバーヘッドが少なくなる。これにより、SDRAM18に対するアクセスを高速に行うことができる。
【0195】
尚、上記実施形態は、以下の態様で実施してもよい。
○本実施形態では、ライト命令に続くリード命令に対して、リードコマンド[RD]とライトコマンド「WR」を発行する順序を入れ替えてSDRAM18に対するアクセスにおけるオーバーヘッドを少なくするようにしたが、その他のコマンドの発行順序を入れ替えて行うようにしてもよい。例えば、バンク切り替えを伴うSDRAMアクセス時に、発行順序を入れ替えて図16(a)に示すように、アクティブコマンド[ACT],プリチャージコマンド[PRE],リードコマンド[RD](又はライトコマンド[WR])を発行する。この場合、リードコマンド[RD]の次のクロックサイクルでコマンド(例えばリードコマンド[RD],アクティブコマンド[ACT])を発行することができる。
【0196】
これに対し、従来の方法によるインタフェースは、図16(c)に示すように、プリチャージコマンド[PRE],アクティブコマンド[ACT],リードコマンド[RD]を順番に発行する。この場合、アクティブコマンド[ACT]を発行するまでに1クロックサイクル必要である。そして、リードコマンド[RD]の発行は、アクティブコマンド[ACT]を発行してからRAS−CAS遅延時間tRCD経過した後である。そのため、従来の方法では、図16(a)に示す方法に比べて1クロックサイクル分だけ次のコマンド発行が遅れることになる。
【0197】
また、図16(b)に示すように、リードコマンド[RD]をプリチャージコマンド[PRE]よりも先に発行する方法では、そのプリチャージコマンド[PRE]を発行する分だけ、従来よりも1クロックサイクル分遅れる、即ち、本実施形態に比べて2クロックサイクル分遅れる。これらにより、上記の図16(a)に示す方法が、最もサイクル数が少なくなるため、SDRAMに対するオーバーヘッドを少なくすることができる。
【0198】
(第四実施形態)
以下、本発明を具体化した第四実施形態を図17〜図19に従って説明する。尚、説明の便宜上、上記各実施形態と同様の構成については同一の符号を付してその説明を一部省略する。
【0199】
図17は、図1のマイクロプロセッサ31を構成するクロック生成回路13の一部回路図であり、SDRAM18へ供給するクロック信号を制御するクロック制御回路91の回路図を示す。
【0200】
クロック制御回路91は、インバータ回路92,93、AND回路94を含む。インバータ回路92,93には、図1のSDRAMインタフェース(以下、SDRAMI/Fと略す)32のクロック制御部から出力される状態信号S21,S22がそれぞれ入力される。インバータ回路92,93は、状態信号S21,S22をそれぞれ反転し、その反転信号をAND回路94に出力する。尚、インバータ回路92,93には、図7のSDRAMI/F41,図10のSDRAMI/F51のクロック制御部から出力される状態信号が入力されることとしてもよい。
【0201】
SDRAMI/F32のクロック制御部は、その時々の状態に応じたレベルの状態信号S21,S22を出力する機能を有する。その機能を説明すれば、SDRAMI/F32のクロック制御部は、アイドル状態にある時にHレベルの状態信号S21を出力する。SDRAMI/F32のクロック制御部は、パワーダウン状態にある時にHレベルの状態信号S22を出力する。
【0202】
AND回路94には、インバータ回路92,93の出力信号と共に、クロック信号CLKが入力される。AND回路94は、インバータ回路92,93の出力信号が共にHレベル、即ち、Lレベルの状態信号S21,S22に応答してクロック信号CLKをクロック信号CK1としてSDRAM18に出力する。AND回路94は、インバータ回路92,93の出力信号のうちの少なくとも一方がLレベル、即ち、状態信号S21,S22のうちの少なくとも一方がHレベルの時にクロック信号CK1の出力を停止する。
【0203】
上記したように、SDRAMI/F32のクロック制御部は、アイドル状態にあるときにHレベルの状態信号S21を出力する。また、SDRAMI/F32のクロック制御部は、パワーダウン状態にある時にHレベルの状態信号S22を出力する。
【0204】
従って、クロック制御回路91は、SDRAM18がアイドル状態又はパワーダウン状態にある時にクロック信号CK1の出力を停止する。すると、クロック信号CK1をSDRAM18に供給するための回路部分(プロセッサ31に含まれる回路部分)は動作を停止する。このことは、マイクロプロセッサ31の消費電力を少なくする。
【0205】
図18は、図1のSDRAMI/F32のクロック制御部の状態遷移図を示す。SDRAMI/F32のクロック制御部は、リセットされると、アイドル状態IDLEとなる。この状態において、SDRAMI/F32のクロック制御部は、Hレベルの状態信号S21を出力する。
【0206】
SDRAMI/F32のクロック制御部は、アイドル状態IDLEにある時にリード/ライト要求がある(インタフェースからリードコマンド[RD]/ライトコマンド[WR]が入力される)と、アイドル状態IDLEからビジー状態BUSYへ遷移する。そして、SDRAMI/F32のクロック制御部は、リード/ライト動作を終了すると、ビジー状態BUSYからアイドル状態IDLEへ遷移する。
【0207】
SDRAMI/F32のクロック制御部は、アイドル状態IDLEにある時にリフレッシュ要求(リフレッシュコマンド[PRE],セルフリフレッシュ等)があると、リフレッシュ状態REFLESHへ遷移する。SDRAMI/F32のクロック制御部は、リフレッシュを終了すると、アイドル状態IDLEへ遷移する。
【0208】
SDRAMI/F32のクロック制御部は、アイドル状態IDLEにある時にパワーダウン要求(パワーダウン信号等)があると、パワーダウン状態POWERDOWNへ遷移する。SDRAMI/F32のクロック制御部は、この状態においてHレベルの状態信号S22を出力する。SDRAMI/F32のクロック制御部は、パワーダウン終了によりアイドル状態IDLEへ遷移する。
【0209】
次に、上記のように構成されたクロック制御回路の作用を図19に従って説明する。
今、時刻t1において、図1のCPU12からSDRAM18に対してリード信号RD/ライト信号WRの出力がなくなると、インタフェース32(又は32a,41,51)は、SDRAM18に対するコマンドの出力を停止する。これにより、SDRAMI/F32のクロック制御部は、アイドル状態IDLEへ遷移し、そのアイドル状態においてHレベルの状態信号S21を出力する。図17のクロック制御回路91は、Hレベルの状態信号S21に応答してクロック信号CK1の出力を停止する。
【0210】
次に、時刻t2において、図1のCPU12は、SDRAM18をアクセスするべくリード信号RDを出力する。インタフェース32は、リード信号RDに基づいて、1クロックサイクル後(時刻t3)にリードコマンド[RD]を発行する。SDRAMI/F32のクロック制御部は、リードコマンド[RD]に応答してアイドル状態IDLEからビジー状態BUSYへ遷移する。SDRAMI/F32のクロック制御部は、Lレベルの状態信号S21を出力する。図17のクロック制御回路91は、Lレベルの状態信号S21に基づいてクロック信号CK1の供給を再開する。SDRAM18は、供給されるクロック信号CK1に基づいて、所定クロックサイクル経過後にリードコマンド[RD]とともに入力されるコラムアドレス[40]のデータ[40]を出力する。
【0211】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)SDRAM18が動作するためのクロック信号CK1の供給/停止をSDRAM18の動作状態に基づいて制御するようにした。その結果、クロック信号CK1を供給するための回路部分の動作を停止し、その分だけプロセッサ全体の消費電力を少なくすることができる。
【0212】
尚、上記実施形態は、以下の態様で実施してもよい。
○尚、本実施形態のクロック制御回路91に代えて、図20に示すクロック制御回路101を用いてマイクロプロセッサを構成してもよい。クロック制御回路101は、NOR回路102、NAND回路103、AND回路104を含む。
【0213】
NOR回路102には、状態信号S21,S22が入力される。NOR回路102は、状態信号S21,S22に基づいて、状態信号S21,S22のうちの少なくとも一方がHレベルのときにLレベルの信号をNAND回路103に出力する。
【0214】
NAND回路103には、レジスタ105に記憶されたクロック停止許可データに基づく信号が入力される。NAND回路103は、NOR回路102,レジスタ105から入力される信号に基づいて出力信号をAND回路104に出力する。NAND回路103は、NOR回路102の出力信号とレジスタ105の出力信号のうちの少なくとも一方がLレベルのときにHレベルの出力信号をAND回路104に出力する。
【0215】
AND回路104には、クロック信号CLKが入力される。AND回路104は、NAND回路103の出力信号に基づいて、その信号がHレベルの時にクロック信号CLKをクロック信号CK1としてSDRAM18に出力する。
【0216】
従って、クロック制御回路101は、状態信号S21,S22、レジスタ105に記憶された許可データに基づいて、クロック信号CLKをクロック信号CK1としてSDRAM18に対する供給/停止を制御する。
【0217】
クロック制御回路101は、許可データに基づいてクロック信号の停止が許可された時に、状態信号S21,S22に基づいてクロック信号CK1の供給/停止を行う。クロック制御回路101は、許可データに基づいてクロック信号の停止が許可されていないときに、クロック信号CK1を供給する。
【0218】
このことは、クロック信号CK1をSDRAM18以外に使用している場合に有効となる。即ち、クロック制御回路91は、SDRAMI/F32のクロック制御部がアイドル状態IDLE又はパワーダウン状態POWERDOWNにある時にクロック信号CK1の供給を停止する。これにより、プロセッサの消費電力は少なくなるが、このクロック信号CK1を使用した回路は、動作しなくなるため、それにより不具合を生じる場合がある。しかし、クロック制御回路101を用いることにより、SDRAMI/F32のクロック制御部がアイドル状態又はパワーダウン状態にあるときにもクロック信号CK1を供給する事ができるため、そのクロック信号CK1を使用した回路は安定動作を行うことができる。
【0219】
○上記各実施形態では、半導体集積回路装置としてのマイクロプロセッサの外部にSDRAM18を接続した場合について説明したが、SDRAM18を内蔵したマイクロプロセッサに具体化して実施してもよい。
【0220】
【発明の効果】
以上詳述したように、請求項1〜3に記載の発明によれば、同期型DRAMに対するアクセスにおけるオーバーヘッドを少なくしてアクセス速度の高速化を図ることが可能なアクセス方法を提供することができる。
【0221】
とくに、請求項3に記載の発明によれば、同期型DRAMが動作するためのクロック信号を供給するための回路部分だけ全体の消費電力を少なくすることができる。
【0222】
また、請求項4〜6に記載の発明によれば、同期型DRAMに対するアクセスにおけるオーバーヘッドを少なくしてアクセス速度の高速化を図ることが可能なインタフェース回路を提供することができる。
【0223】
とくに、請求項6に記載の発明によれば、同期型DRAMが動作するためのクロック信号を供給するための回路部分だけ全体の消費電力を少なくすることができる。
【図面の簡単な説明】
【図1】 半導体集積回路装置のブロック回路図。
【図2】 SDRAMに対するアドレス設定を示す説明図。
【図3】 第一実施形態のSDRAMインタフェースのブロック回路図。
【図4】 SDRAMインタフェースの動作を示すタイミング図。
【図5】 別のSDRAMインタフェースのブロック回路図。
【図6】 別のSDRAMインタフェースの動作を示すタイミング図。
【図7】 第二実施形態のSDRAMインタフェースのブロック回路図。
【図8】 SDRAMインタフェースの動作を示すタイミング図。
【図9】 FIFOを備えた場合の動作を示すタイミング図。
【図10】 第三実施形態のSDRAMインタフェースのブロック回路図。
【図11】 アドレス比較器の回路図。
【図12】 ライト比較器の回路図。
【図13】 リード比較器の回路図。
【図14】 アドレスマルチプレクサのブロック回路図。
【図15】 (a) は本実施形態のインタフェースのタイミング図、(b) は従来の方法のタイミング図。
【図16】 (a) は本実施形態の別のタイミング図、(b) は素朴な方法のタイミング図、(c) は従来の方法のタイミング図。
【図17】 第四実施形態のクロック制御回路の回路図。
【図18】 SDRAMの状態遷移図。
【図19】 クロック制御回路の動作を説明するためのタイミング図。
【図20】 別のクロック制御回路の回路図。
【図21】 従来のSDRAMインタフェースのブロック回路図。
【図22】 従来のSDRAMインタフェースのタイミング図。
【図23】 従来の半導体集積回路装置のブロック回路図。
【符号の説明】
18 同期型DRAMとしてのSDRAM
31 半導体集積回路装置としてのマイクロプロセッサ
32,32a,41,51 インタフェース回路
35 コラムアドレス比較回路
36 アドレス設定レジスタ
37 コマンド生成部
ACT アクティブコマンド
RD/WR 制御信号としてのリード信号/ライト信号
Claims (6)
- アクセスアドレス信号に基づいて複数のバンクを備えた同期型DRAMをアクセスする同期型DRAMのアクセス方法において、
前記同期型DRAMの各バンクの最終コラムアドレス又は前記最終コラムアドレス近辺のアドレスを比較アドレスとしてレジスタに記憶し、前記アクセスアドレス信号に含まれるコラムアドレスと前記比較アドレスとを比較し、該比較結果に基づいて、前記コラムアドレスが前記比較アドレスと一致する場合に、当該コラムアドレスにてアクセスするバンクの次のバンクに対するアクティブコマンドを発行するようにした同期型DRAMのアクセス方法。 - 請求項1に記載の同期型DRAMのアクセス方法において、
前記アクセスアドレスが連続しているか否かを検出し、該検出結果に基づいて前記同期型DRAMを連続してアクセスした回数をカウントし、該カウント結果に基づいて前記同期型DRAMが所定回数以上連続してアクセスした連続アクセスを確認した後、前記コラムアドレスが前記比較アドレスと一致した場合に次のバンクに対するアクティブコマンドを発行するようにした同期型DRAMのアクセス方法。 - アクセスアドレス信号に基づいて複数のバンクを備えた同期型DRAMをアクセスする同期型DRAMのアクセス方法において、
アクセスに対応して入力される第1命令と該第1命令よりも一つ前の命令である第2命令とを記憶すると共に、前記第1命令及び第2命令におけるアドレス信号を第1アドレス及び第2アドレスとして記憶し、選択信号に基づいて前記第1命令又は前記第2命令を選択命令として出力し、前記選択信号に基づいて前記第1アドレス又は前記第2アドレスを選択アドレスとして出力し、前記選択アドレスのバンクアドレス及びローアドレスと前記第1アドレス及び第2アドレスのバンクアドレス及びローアドレスを比較し、前記第1命令及び第2命令がリード命令又はライト命令か否かを比較し、
前記選択アドレスに対して前記第2アドレスのローアドレス又はバンクアドレスが一致せず、前記第1アドレスのローアドレス及びバンクアドレスが一致する場合に、前記第1命令に対するコマンドを前記第2命令に対するコマンドよりも先に同期型DRAMに出力するようにし、
前記同期型DRAMが動作するためのクロック信号の供給/停止を前記同期型DRAMの動作状態に基づいて制御するようにした同期型DRAMのアクセス方法。 - アクセスアドレス信号に基づいて複数のバンクを備えた同期型DRAMをアクセスするインタフェース回路において、
前記同期型DRAMの各バンクの最終コラムアドレス又は最終コラムアドレス近辺のアドレスが比較アドレスとして記憶されたレジスタと、
前記アクセスアドレス信号に含まれるコラムアドレスと前記レジスタに記憶された比較アドレスを比較するコラムアドレス比較回路と、
前記コラムアドレス比較回路の比較結果に基づいて、入力されるコラムアドレスが比較アドレスと一致する場合に、当該コラムアドレスにてアクセスするバンクの次のバンクに対するアクティブコマンドを発行するコマンド生成部とを備えたインタフェース回路。 - 請求項4に記載のインタフェース回路において、
前記アクセスアドレス信号が入力され、該アクセスアドレスが連続しているか否かを検出するアドレス連続検出回路と、
前記アドレス連続検出回路の検出結果に基づいて前記同期型DRAMを連続してアクセスした回数をカウントする連続アクセスカウンタとを備え、
前記コマンド生成部は、前記連続アクセスカウンタのカウント結果に基づいて前記同期型DRAMが所定回数以上連続してアクセスした連続アクセスを確認した後、前記コラムアドレス比較回路の比較結果に基づいて次のバンクに対するアクティブコマンドを発行するようにしたインタフェース回路。 - アクセスアドレス信号に基づいて複数のバンクを備えた同期型DRAMをアクセスするインタフェース回路において、
アクセスに対応して入力される命令を第1命令として記憶する第1命令バッファと、
前記第1命令バッファの出力信号を前記第1命令よりも一つ前の命令である第2命令として記憶する第2命令バッファと、
前記第1命令及び第2命令におけるアドレス信号をそれぞれ第1アドレス及び第2アドレスとして記憶する第1アドレスバッファ及び第2アドレスバッファと、
選択信号に基づいて前記第1命令バッファの出力信号又は前記第2命令バッファの出力信号を選択命令として出力する第1セレクタと、
前記選択信号に基づいて前記第1アドレスバッファの出力信号又は前記第2アドレスバッファの出力信号を選択アドレスとして出力する第2セレクタと、
前記第1アドレスバッファ及び第2アドレスバッファの出力信号と前記選択アドレスが入力され、前記選択アドレスのバンクアドレス及びローアドレスと前記第1アドレス及び第2アドレスのバンクアドレス及びローアドレスを比較し、該比較結果に基づいて第1判定信号を出力するアドレス比較器と、
前記第1命令及び第2命令がリード命令又はライト命令か否かを比較し、該比較結果に基づいて第2判定信号を出力する命令比較器と、
前記選択アドレスに対して前記第2アドレスのローアドレス又はバンクアドレスが一致せず、前記第1アドレスのローアドレス及びバンクアドレスが一致する場合に、前記第1命令を前記第2命令よりも先に出力するべく選択信号を出力する選択信号生成回路と、
前記同期型DRAMが動作するためのクロック信号の供給/停止を前記同期型DRAMの動作状態に基づいて制御するクロック制御回路とを備えたインタフェース回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15768498A JP3939858B2 (ja) | 1998-06-05 | 1998-06-05 | 同期型dramのアクセス方法、インタフェース回路、及び、半導体集積回路装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15768498A JP3939858B2 (ja) | 1998-06-05 | 1998-06-05 | 同期型dramのアクセス方法、インタフェース回路、及び、半導体集積回路装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11353874A JPH11353874A (ja) | 1999-12-24 |
JP3939858B2 true JP3939858B2 (ja) | 2007-07-04 |
Family
ID=15655137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15768498A Expired - Fee Related JP3939858B2 (ja) | 1998-06-05 | 1998-06-05 | 同期型dramのアクセス方法、インタフェース回路、及び、半導体集積回路装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3939858B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10196008B4 (de) * | 2000-03-30 | 2007-07-12 | Micron Technology, Inc. | Synchroner Nulllatenz Zero Bus Turnaround Flashspeicher |
JP6418983B2 (ja) * | 2015-03-05 | 2018-11-07 | キヤノン株式会社 | メモリのアクセス制御装置、その制御方法、および、プログラム |
CN106710624B (zh) * | 2017-01-06 | 2024-04-09 | 西安紫光国芯半导体有限公司 | 一种dram锤压侦测电路及方法 |
WO2020155074A1 (zh) * | 2019-01-31 | 2020-08-06 | 华为技术有限公司 | 一种处理装置、方法及相关设备 |
-
1998
- 1998-06-05 JP JP15768498A patent/JP3939858B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11353874A (ja) | 1999-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5889714A (en) | Adaptive precharge management for synchronous DRAM | |
JP4249412B2 (ja) | 半導体記憶装置 | |
US6356987B1 (en) | Microprocessing device having programmable wait states | |
KR100233973B1 (ko) | 동기형 반도체 기억 장치 | |
JP4786209B2 (ja) | メモリアクセス装置 | |
KR19990022468A (ko) | 동기식 다이나믹 랜덤 액세스 메모리의 자동 활성화 | |
JP2000137983A (ja) | 半導体記憶装置 | |
KR0142795B1 (ko) | 디램 리프레쉬 회로 | |
US6466492B2 (en) | Synchronous semiconductor memory device and method for controlling mask data input circuit | |
US6484244B1 (en) | Method and system for storing and processing multiple memory commands | |
JPH11328007A (ja) | 連続ペ―ジ・モ―ドを有するメモリ・コントロ―ラおよびその方法 | |
JP3939858B2 (ja) | 同期型dramのアクセス方法、インタフェース回路、及び、半導体集積回路装置 | |
US6769051B2 (en) | Memory controller and memory control method for controlling an external memory device to be accessible even in an addressing mode that is not supported thereby | |
JP4266436B2 (ja) | 半導体記憶装置 | |
JP4188640B2 (ja) | 半導体記憶装置、半導体記憶装置の制御方法及び半導体記憶装置の試験方法 | |
JP4108237B2 (ja) | メモリ制御装置 | |
KR100710644B1 (ko) | 에스디램 컨트롤러 | |
JP7373034B1 (ja) | 擬似スタティックランダムアクセスメモリ | |
JP7507289B2 (ja) | 疑似スタティックランダムアクセスメモリ | |
JP2003151273A (ja) | 記憶装置、記憶装置の内部制御方法、システム、及びシステムにおける記憶手段の制御方法 | |
JP2002207541A (ja) | マイクロコンピュータ及びデータ処理装置 | |
JP2004280947A (ja) | 半導体記憶装置 | |
JP2007115087A (ja) | 半導体装置 | |
JPH10283255A (ja) | Dramアクセス制御装置およびdramアクセス制御方法 | |
JPH11306760A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040317 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040317 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050830 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070109 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070110 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070309 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070329 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100406 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120406 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140406 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |