(57)【要約】【課題】複数の異なるバンクに連続アクセスをしてもアクセスの遅延による誤動作を防止するメモリ制御回路を提供する。【解決手段】複数のバンクを有するメモリに対するアクセスを制御する制御回路、を備えたメモリ制御回路において、前記複数のバンクのアドレスを選択的に指定するための第１信号と、前記複数のバンクを選択的に活性化するための第２信号に基づいて、前記メモリに対するアクセス方法を判定するアクセス判定回路、を備え、前記アクセス判定回路は、前記第１信号が前記複数のバンクを指定し、前記第２信号が当該複数のバンクを連続して活性化させることを示す場合の判定結果に基づいて、当該複数のバンクの活性化が切り替わる際に当該複数のバンクをともに非活性化とする期間を設けるべく、前記制御回路を制御する。【選択図】      図１
2005228142.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクを有するメモリに対するアクセスを制御する制御回路、を備えたメモリ制御回路において、
前記複数のバンクのアドレスを選択的に指定するための第１信号と、前記複数のバンクを選択的に活性化するための第２信号に基づいて、前記メモリに対するアクセス方法を判定するアクセス判定回路、を備え、
前記アクセス判定回路は、
前記第１信号が前記複数のバンクを指定し、前記第２信号が当該複数のバンクを連続して活性化させることを示す場合の判定結果に基づいて、当該複数のバンクの活性化が切り替わる際に当該複数のバンクをともに非活性化とする期間を設けるべく、前記制御回路を制御する、ことを特徴とするメモリ制御回路。
【請求項２】
前記制御回路は、
前記複数のバンクをそれぞれ予められた期間活性化させるものであり、
前記複数のバンクの活性化を切り替える場合、所定の前記バンクが予め定められた期間活性化した直後に、当該バンクおよび次に活性化すべき前記バンクをともに非活性化とする期間を設け、当該期間の経過後、前記次に活性化すべきバンクを非活性化から予め定められた期間活性化させること、を特徴とする請求項１に記載のメモリ制御回路。
【請求項３】
前記複数のバンクをともに非活性化とする期間を設定するための、前記複数のバンクに対応する複数の設定回路を備え、
前記制御回路は、前記複数の設定回路の設定値に基づいて、前記複数のバンクの活性化に際し、前記複数のバンクをともに非活性化とする期間を設けることを特徴とする請求項１または２に記載のメモリ制御回路。
【請求項４】
前記複数のバンクをともに非活性化とする期間は、前記メモリ制御回路を動作させるためのシステムクロックの少なくとも１クロック期間である、ことを特徴とする請求項１乃至３の何れかに記載のメモリ制御回路。
【請求項５】
複数のバンクを有するメモリに対するアクセスを制御する制御回路、を備えたメモリ制御回路において、
前記複数のバンクに対するアドレスの指定から活性化までの期間を設定する設定回路を備え、
前記設定回路に対して前記複数のバンクに対するアドレスの指定と活性化を同時とすることを示す値が設定されているとき、
前記アクセス判定回路は、当該複数のバンクの活性化が切り替わる際に当該複数のバンクをともに非活性化とする期間を設けるべく、前記制御回路を制御する、ことを特徴とするメモリ制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ制御回路に関する。
【背景技術】
【０００２】
メモリには、複数のブロック（バンク）に分割されてデータの書き込み読み出しのためのアクセスが行われるものがある。前記メモリに対するアクセスは、後述するメモリ制御回路によって実行される。  
上記のメモリ制御回路は、ＣＰＵからの指示に従って、メモリを構成する複数のバンクの何れかを選択するとともに、選択されたバンク内における所定アドレスを指定してデータの書き込みまたは読み出しを行うこととなる（例えば、特許文献１参照）。
【０００３】
図５に、従来のメモリ制御回路による読み出し状態の変化のタイミングを説明するためのタイムチャートを示す。この図は、各アドレスに記憶されるビット数が１６ビットからなるメモリ（１６ｂｉｔ×１メモリ、以下、１６ビットメモリとする）にメモリ制御回路がアクセスをして読み出しを行う例である。つまり、１つのバンクに対してアクセスする場合のタイムチャートである。メモリとして、例えばＳＲＡＭを使用することができる。
【０００４】
メモリ制御回路は、アドレスバス、データバスを介してＣＰＵと接続されていて、メモリ制御回路内においてＣＰＵからの指示に従いＶａｌｉｄ、ステート信号の各信号を発生する。Ｖａｌｉｄはメモリにアクセスすることを示す信号であり、ステート信号はメモリ内における各種状態を設定するための信号である。
【０００５】
また、メモリ制御回路は、接続されたメモリに対してアドレス信号ＡＤＤＲ、チップセレクト信号ｎＣＳ、リード信号ｎＲＤ、ローバイトセレクト信号ｎＬＢ、ｎＨＢ／ｎＷＲＨ信号を出力する端子、およびＤＡＴＡ信号を入出力する端子を備えている。一方、接続された１６ビットメモリは、メモリ制御回路の出力に対応して、アドレス信号ＡＤＤＲ、チップセレクト信号ｎＣＳ、リード信号ｎＲＤ、ローバイトセレクト信号ｎＬＢ、ｎＨＢ信号を入力する端子、およびＤＡＴＡ信号を入出力する端子を備えている。以上の各信号はＣＰＵにて、メモリ制御回路を動作するために設定されるシステムクロックＣＬＫに同期して変化する。
【０００６】
まず、メモリ制御回路内においての信号について説明する。  
アドレスバスは、ＣＰＵとメモリ制御回路間でのメモリのアドレスの転送経路であり、読み出しまたは書き込みを行うメモリのアドレスがＣＰＵから指定される。  
データバスは、ＣＰＵとメモリ制御回路間での指定されたメモリの読み出しや書き込みデータの転送経路となる。
【０００７】
ステート信号は、メモリ制御回路内におけるメモリへのアクセスの状態を示す信号である。このメモリアクセスの状態を示す信号として、ＴＡＣＳ、ＴＣＯＳ、ＴＡＣＣ、ＴＣＯＨがある。  
ＴＡＣＳは、メモリのアドレスを指定するが、メモリを活性化しない状態を示す信号である。  
ＴＣＯＳは、メモリを活性化するが、書き込み又は読み出しを行わない状態を示す信号である。  
ＴＡＣＣは、書き込み又は読み出しを実行する状態を示す信号である。  
ＴＣＯＨは、書き込み又は読み出しの終了後にメモリを非活性化しない状態を示す信号である。
【０００８】
なお、ＩＤＬＥはメモリにアクセスしていない状態を示す信号である。  
通常メモリアクセスの状態は、ステート信号がＩＤＬＥ→ＴＡＣＳ→ＴＣＯＳ→ＴＡＣＣ→ＴＣＯＨ→ＩＤＬＥの順で変化することにより、このステート信号に応じた状態を経て変化する。メモリ制御回路は、このステート信号の長さやタイミングを制御することができる。
【０００９】
Ｖａｌｉｄは、“ＨＩＧＨ”となることで活性化し、メモリに対してアクセスを行うことを示す信号である。このＶａｌｉｄは“ＨＩＧＨ”となってから、ステート信号ＴＡＣＳ、ＴＣＯＳ、ＴＡＣＣ、ＴＣＯＨが順次変化する期間と同一のクロック期間経過後に“ＬＯＷ”となる。
【００１０】
次に、メモリ制御回路からメモリに出力される信号について説明する。  
アドレス信号ＡＤＤＲは、アドレスバスによって指定されたメモリのアドレスを、メモリ制御回路がメモリに対して指定するための信号である。したがってアドレス信号ＡＤＤＲにはアドレスバスと同じアドレスが指定される。このメモリのアドレスの指定開始となるのは、メモリ制御回路がＩＤＬＥの状態から他の状態へと変化するタイミングである。また、メモリ制御回路が、このアドレスを指定する期間は、ステート信号ＴＡＣＳ、ＴＣＯＳ、ＴＡＣＣ、ＴＣＯＨが順次変化する期間と同一のクロック期間である。
【００１１】
チップセレクト信号ｎＣＳは、メモリのバンクを選択する信号であり、このチップセレクト信号ｎＣＳが“ＬＯＷ”となると選択したバンクが活性化する。このチップセレクト信号ｎＣＳが“ＬＯＷ”となる期間（『予め定められた期間』）は、メモリ制御回路のステート信号ＴＣＯＳ、ＴＡＣＣ、ＴＣＯＨが順次変化する期間と同一のクロック期間である。この期間経過後チップセレクト信号ｎＣＳは“ＨＩＧＨ”となり、当該バンクは非活性化する。
【００１２】
リード信号ｎＲＤは、メモリ制御回路がアクセスしたメモリから出たデータの読み出しを行うための信号であり、“ＬＯＷ”となることで活性化する。リード信号ｎＲＤが“ＬＯＷ”となる期間は、ステート信号がＴＡＣＣの期間と同一のクロック期間であり、この期間経過後“ＨＩＧＨ”となる。
【００１３】
ＤＡＴＡ信号は、メモリに対する書き込みデータ又は読み出しデータをメモリ制御回路とメモリ間で転送するための信号である。メモリに記憶されたデータは、ステート信号がＴＡＣＣから他の信号に切り替わるタイミングで読み出される。
【００１４】
ローバイトセレクト信号ｎＬＢは、メモリの下位側のビット（バイト）を選択することを示す信号であり“ＬＯＷ”になると活性化する。例えば１６ビットメモリを使用した場合、ｎＬＢが“ＬＯＷ”になると下位８ビット（１バイト）が選択される。このローバイトセレクト信号ｎＬＢが“ＬＯＷ”となる期間は、アクセスを行うメモリが１６ビットメモリであり、かつチップセレクト信号ｎＣＳが“ＬＯＷ”となる期間である。なおアクセスを行うメモリが８ビットの場合にはｎＬＢ信号は“ＨＩＧＨ”となる。
【００１５】
ｎＨＢ／ｎＷＲＨは、端子がｎＨＢとｎＷＲＨとで兼用され、接続されるメモリの種類によって切り替えられる。  
ハイバイトセレクト信号ｎＨＢは、メモリの上位側、例えば１６ビットの内上位８ビット（１バイト）を選択する信号であり、アクセスするメモリが１６ビットメモリの時のみ活性化する信号である。  
ライトハイバイト信号ｎＷＲＨは、メモリに書き込みを行う信号でありデータバスの上位側が有効であることを示す信号である。
【００１６】
メモリへのアクセスが、例えば１６ビットメモリから、アクセスを行うメモリが各アドレスに記憶されるビット数が８ビットからなるメモリを２つ備えたメモリ（８ｂｉｔ×２メモリ、以下、８ビットメモリとする）に切り替わる時には、端子がｎＨＢからｎＷＲＨに切り替わる。図５ではアクセスするメモリが１６ビットなので、この時端子はｎＨＢとして機能している。
【００１７】
なお、読み出しの動作において、ｎＨＢ／ｎＷＲＨは、１６ビットメモリにアクセスする場合チップセレクト信号ｎＣＳが“ＬＯＷ”となる期間で“ＬＯＷ”となり、８ビットメモリにアクセスする場合は“ＨＩＧＨ”となる。
【００１８】
次に、図５のタイムチャートについて説明する。＜内部信号＞はメモリ制御回路内の信号を示し、＜端子＞はメモリ制御回路からメモリに出力される信号を示している。
【００１９】
まず、＜内部信号＞について説明する。  
アドレスバスにｔ０からｔ１の期間ＣＰＵからアクセスを行うメモリのアドレスＡ０が指定される。  
同時に、ｔ０でＶａｌｉｄが“ＨＩＧＨ”となり、それに応じてｔ１でステート信号がＩＤＬＥからＴＡＣＳへ変化する。  
Ｖａｌｉｄはステート信号がＩＤＬＥ以外の期間と同クロック周期経過後、すなわちｔ４で“ＬＯＷ”になる。
【００２０】
ステート信号は、ＩＤＬＥ→ＴＡＣＳ→ＴＣＯＳ→ＴＡＣＣ→ＴＣＯＨ→ＩＤＬＥの順に変化する。まずｔ１でＴＡＣＳに変化し、ｔ２でＴＣＯＳ、ｔ３でＴＡＣＣ、ｔ４でＴＣＯＨ、となる。また、ステート信号は、ｔ４でＶａｌｉｄが“ＬＯＷ”となることによりｔ５でＩＤＬＥに変化する。
【００２１】
次に、＜端子＞の信号について説明する。これらの信号はすべて、ステート信号に基づいて変化する。  
まず、ステート信号がＴＡＣＳに変化するｔ１でアドレス信号ＡＤＤＲに、ＣＰＵからアドレスバスに指定されたアドレスＡ０が指定される。  
そして、ステート信号がＴＣＯＳに変化するｔ２でチップセレクト信号が“ＬＯＷ”になる。  
同時にアクセスするメモリが１６ビットメモリなのでｎＬＢが“ＬＯＷ”となり、ｎＨＢ／ｎＷＲＨも“ＬＯＷ”となる。  
次に、ステート信号がＴＡＣＣに変化するｔ３で、リード信号ｎＲＤが“ＬＯＷ”となる。  
ステート信号がＴＡＣＣからＴＣＯＨに変化するｔ４でリード信号ｎＲＤが“ＨＩＧＨ”となり、アドレスＡ０に記憶されていたデータＤ０がＤＡＴＡ信号に読み出される。  
なお、読み出されたデータＤ０は、＜内部信号＞のデータバスに出力される。  
そして、ステート信号がＩＤＬＥに変化するｔ５で、チップセレクト信号ｎＣＳが“ＨＩＧＨ”となり、アドレス信号ＡＤＤＲのアドレスＡ０の指定が終了する。
【００２２】
このように、メモリ制御回路ではメモリの読み出しまたは書き込みに対する状態に対するステート信号ＴＡＣＳ、ＴＣＯＳ、ＴＡＣＣ、ＴＣＯＨが設定されていて、読み出しまたは書き込みを行う期間のｔａｃｃに対して、アドレスのセットアップやバンク選択のセットアップのための期間ｔａｃｓ、ｔｃｏｓ、ｔｃｏｈを設けている。
【００２３】
本実施の形態では、１クロック期間を１とするとｔａｃｓ＝ｔｃｏｓ＝ｔｃｏｈ＝１、ｔａｃｃ＝３であり、この期間に応じてステート信号が変化する。書き込み又は読み出しを行う期間であるｔａｃｃは０以外の値であるが、ｔａｃｓ、ｔｃｏｓ、ｔｃｏｈは、高速にアクセスを行う場合には０に設定することが可能となっている。
【特許文献１】特開平１１−３２８０９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
図６は、従来のメモリ制御回路による問題を説明するためのタイムチャートである。  
この例では、メモリ制御回路がアクセスするメモリとして１６ビットメモリ（以下バンク０とする）と８ビットメモリ（以下バンク１とする）との２つのバンクが接続されている。  
メモリ制御回路は読み出しおよび書き込みの指示をＣＰＵからアドレスバス、データバスを介して受け、Ｖａｌｉｄ、ステート信号の各信号を生成する。  
また、メモリ制御回路は、接続された複数のメモリに対してアドレス信号ＡＤＤＲ、バンク０へのチップセレクト信号ｎＣＳ０、バンク１へのチップセレクト信号ｎＣＳ１、リード信号ｎＲＤ、ローバイトセレクト信号ｎＬＢ、ｎＨＢ／ｎＷＲＨ信号を出力する端子および、ＤＡＴＡ信号を入出力する端子を備えている。  
１６ビットメモリであるバンク０は、メモリ制御回路の出力に対応して、アドレス信号ＡＤＤＲ、チップセレクト信号ｎＣＳ０、リード信号ｎＲＤ、ローバイトセレクト信号ｎＬＢ、ｎＨＢ信号を入力する端子および、ＤＡＴＡ信号を入出力する端子を備えている。
【００２５】
一方、８ビットメモリであるバンク１は、メモリ制御回路の出力に対応して、アドレス信号ＡＤＤＲ、チップセレクト信号ｎＣＳ１、リード信号ｎＲＤ、ｎＷＲＨ信号を入力する端子および、ＤＡＴＡ信号を入出力する端子を備えている。  
以上の各信号はＣＰＵにて、メモリ制御回路を動作するために設定されるシステムクロックＣＬＫに同期して変化する。
【００２６】
次に、図６のタイムチャートについて説明する。  
この図６の場合では、高速アクセスを行うためバンク０、バンク１ともにステート信号に応じてｔａｃｓ＝ｔｃｏｓ＝ｔｃｏｈ＝０と設定している。なおバンク０に対するｔａｃｓ、ｔｃｏｓ、ｔａｃｃ、ｔｃｏｈをそれぞれｔａｃｓ０、ｔｃｏｓ０、ｔａｃｃ０、ｔｃｏｈ０とし、バンク１に対するｔａｃｓ、ｔｃｏｓ、ｔａｃｃ、ｔｃｏｈをそれぞれｔａｃｓ１、ｔｃｏｓ１、ｔａｃｃ１、ｔｃｏｈ１とする。またバンク０に対するＶａｌｉｄ、ステート信号をそれぞれ、Ｖａｌｉｄ０、ステート０信号とし、バンク１に対するＶａｌｉｄ、ステート信号をそれぞれ、Ｖａｌｉｄ１、ステート１信号とする。
【００２７】
まず、＜内部信号＞について説明する。  
アドレスバスにＣＰＵから、ｔ０からｔ１の期間バンク０のアドレスＡ０が指定され、続いてｔ１からｔ３の期間バンク１のアドレスＡ１が指定される。  
バンク０のアドレスＡ０の指定によってｔ０でＶａｌｉｄ０が“ＨＩＧＨ”となる。  
Ｖａｌｉｄ０はステート０信号がＩＤＬＥ以外の期間と同一のクロック周期経過後、すなわちｔ２で“ＬＯＷ”になる。  
そして、Ｖａｌｉｄ０が“ＨＩＧＨ”であることによって、ｔ１でステート０信号がＩＤＬＥからＴＡＣＣに変化する。この例の場合ｔａｃｓ０＝ｔｃｏｓ０＝ｔｃｏｈ０＝０なのでステート０信号はＩＤＬＥ→ＴＡＣＣ→ＩＤＬＥの順で変化する。  
また、ステート０信号は、ｔ２でＶａｌｉｄ０が“ＬＯＷ”となるのに応じて、ｔ３でＴＡＣＣからＩＤＬＥに変化する。
【００２８】
一方、ｔ２では、Ｖａｌｉｄ０が“ＬＯＷ”となるのと同時に、アドレスバスのアドレスＡ１の指定に応じたＶａｌｉｄ１が“ＨＩＧＨ”となる。  
Ｖａｌｉｄ１はステート１信号がＩＤＬＥ以外の期間と同一のクロック周期経過後、すなわちｔ４で“ＬＯＷ”になる。  
そして、Ｖａｌｉｄ１が“ＨＩＧＨ”であることによって、ｔ３でステート１信号がＩＤＬＥからＴＡＣＣに変化する。この例の場合ｔａｃｓ１＝ｔｃｏｓ１＝ｔｃｏｈ１＝０なのでステート１信号はＩＤＬＥ→ＴＡＣＣ→ＩＤＬＥの順で変化する。  
また、ステート１信号は、ｔ４でＶａｌｉｄ１が“ＬＯＷ”となることによって、ｔ５でＴＡＣＣからＩＤＬＥに変化する
次に、＜端子＞の信号について説明する。これらの信号はすべて、ステート信号に基づいて変化する。  
まず、ステート０信号がＴＡＣＣに変化するｔ１でアドレス信号ＡＤＤＲに、ＣＰＵからアドレスバスに指定されたアドレスＡ０が指定される。  
同時にバンク０のチップセレクト信号ｎＣＳ０、リード信号ｎＲＤ、ローバイトセレクト信号ｎＬＢ、ｎＨＢ／ｎＷＲＨ信号が“ＬＯＷ”になり、バンク０の読み出しのアクセスが開始する。  
そして、ステート０信号がＴＡＣＣからＩＤＬＥに変化し、ステート１信号がＩＤＬＥからＴＡＣＣに変化するｔ３では、アドレス信号ＡＤＤＲの指定がバンク０のアドレスＡ０からバンク１のアドレスＡ１に切り替わる。また、バンク０のチップセレクト信号ｎＣＳ０が“ＨＩＧＨ”となり、バンク１のチップセレクト信号ｎＣＳ１が“ＬＯＷ”となる。  
この場合、バンク０とバンク１の連続読み出しとなるのでリード信号ｎＲＤは、ｔ３で“ＬＯＷ”のままである。
【００２９】
また、アクセスを行うメモリが１６ビットメモリから８ビットメモリになるので、ローバイトセレクト信号ｎＬＢ、ｎＨＢ／ｎＷＲＨ信号はｔ３で“ＨＩＧＨ”となる。  
アドレスＡ０に記憶されていたデータＤ０はＤＡＴＡ信号に読み出される。  
なお、読み出されたデータＤ０は、＜内部信号＞のデータバスに出力される。  
同時に、ｔ３ではステート１信号の変化によってチップセレクト信号ｎＣＳ１が“ＬＯＷ”になり、バンク１の読み出しのアクセスが開始する。  
ステート１信号がＴＡＣＣからＩＤＬＥに変化するｔ５でリード信号ｎＲＤ、チップセレクト信号ｎＣＳ１が“ＨＩＧＨ”になり、アドレス信号ＡＤＤＲによるアドレスＡ１の指定が終了する。  
アドレスＡ１に記憶されていたデータＤ１はＤＡＴＡ信号に読み出される。なお、読み出されたデータＤ１は、＜内部信号＞のデータバスに出力される。
【００３０】
この図６のタイムチャートのように高速アクセスを行うためステート信号のＴＡＣＳ、ＴＣＯＳ、ＴＣＯＨをパスした場合、Ｖａｌｉｄ０とＶａｌｉｄ１の“ＨＩＧＨ”の期間の切り替わりがｔ２において連続となり、アドレス信号ＡＤＤＲのＡ０からＡ１への指定の切り替えも連続となる。また、この場合、チップセレクト信号ｎＣＳ０の“ＬＯＷ”から“ＨＩＧＨ”への変化と、チップセレクト信号ｎＣＳ１の“ＨＩＧＨ”から“ＬＯＷ”への変化とは、同じタイミングのｔ３となる。
【００３１】
ｎＨＢ／ｎＷＲＨの端子は、バンク１の８ビットのメモリへの切り替わりに応じてｎＨＢからｎＷＲＨに切り替えられ、ｎＨＢ／ｎＷＲＨの信号は、バンク１に書き込みが行われないように“ＬＯＷ”から“ＨＩＧＨ”に変化する。このｎＨＢ／ｎＷＲＨの“ＨＩＧＨ”への立ち上がりのタイミングが、回路の遅延などで図６に示す点線のように遅れた場合、チップセレクト信号ｎＣＳ１とｎＷＲＨ信号とリード信号ｎＲＤがすべて“ＬＯＷ”となる期間が生じる。よってバンク１の書き込みと読み出しが不定となり誤動作を起こす恐れがある。
【００３２】
このように、従来のメモリ制御回路では、異なるバンクに連続してアクセスを行う場合に、アクセスの遅延による誤動作の恐れがあるという問題があった。
【００３３】
本発明は、複数の異なるバンクに連続アクセスをしてもアクセスの遅延による誤動作を防止するメモリ制御回路を提供することを目的とする。
【課題を解決するための手段】
【００３４】
本発明に係る主たる発明は、複数のバンクを有するメモリに対するアクセスを制御する制御回路、を備えたメモリ制御回路において、前記複数のバンクのアドレスを選択的に指定するための第１信号と、前記複数のバンクを選択的に活性化するための第２信号に基づいて、前記メモリに対するアクセス方法を判定するアクセス判定回路、を備え、前記アクセス判定回路は、前記第１信号が前記複数のバンクを指定し、前記第２信号が当該複数のバンクを連続して活性化させることを示す場合の判定結果に基づいて、当該複数のバンクの活性化が切り替わる際に当該複数のバンクをともに非活性化とする期間を設けるべく、前記制御回路を制御する、ことを特徴とする。
【００３５】
本発明の他の特徴については、添付図面及び本明細書の記載により明らかとなる。
【発明の効果】
【００３６】
本発明によれば複数の異なるバンクに連続アクセスをしてもアクセスの遅延による誤動作を防止することができる。
【発明を実施するための最良の形態】
【００３７】
＝＝＝メモリ制御回路の構成＝＝＝
図１は、本発明の実施の形態に係るメモリ制御回路を説明するためのブロック図である。なお、図１に示すメモリ制御回路は集積回路であることとする。
【００３８】
また、以後の説明では集積回路の内部を内部とし、集積回路の外部を外部と呼ぶことにする。  
集積回路１００は、ＣＰＵ２００とメモリ制御回路３００とを備えている。また本実施の形態では、メモリ制御回路３００はＣＰＵ２００からの指示に基づきメモリ４００とメモリ５００に対してアクセスを行い読み出しまたは書き込みを行う。  
ここで、メモリ４００（以下バンク０とする）には、例えば１６ビットメモリが接続され、また、メモリ５００（以下バンク１とする）には、例えば８ビットメモリが接続される。これらのメモリは例えばＳＲＡＭを使用することができる。  
ＣＰＵ２００は、メモリ４００、５００に対してデータの書き込み又は読み出しを行うための信号を内部バスに出力する。
【００３９】
メモリ制御回路３００は、内部バスから、バンクのアドレスを選択的に指定するためのアドレスバス、データ転送を行うためのデータバスを接続している。  
またメモリ制御回路３００は、内部バスから、メモリにアクセスすることを示すセレクト信号、内部バスが活性か否かを示す状態信号、メモリ制御回路３００を動作させるためのシステムクロックＣＬＫを入力している。  
そして、メモリ制御回路３００は、ＣＰＵ２００からの指示に基づき、外部に接続されたメモリ４００、５００に対し、アドレス信号ＡＤＤＲ、ＤＡＴＡ信号、バンク０に対するチップセレクト信号ｎＣＳ０、バンク１に対するチップセレクト信号ｎＣＳ１、ローバイトセレクト信号ｎＬＢ、リード信号ｎＲＤ、およびｎＷＲ／ｎＷＲＬ、ｎＨＢ／ｎＷＲＨの信号を入出力し、書き込み又は読み出しのアクセスを行う。
【００４０】
なお、ｎＷＲ／ｎＷＲＬは、端子がｎＷＲとｎＷＲＬとで兼用されていて、接続されるメモリの種類によって切り替えられる。ライト信号ｎＷＲは、書き込みを行うための信号であり、ライトローバイト信号ｎＷＲＬは、書き込みを行う信号でありデータバスの下位側が有効であることを示す信号である。ｎＷＲ／ｎＷＲＬの端子はアクセスを行うメモリが１６ビットメモリの時はｎＷＲに、アクセスを行うメモリが８ビットメモリの時はｎＷＲＬに切り替えられる。
【００４１】
メモリ４００（バンク０）は、メモリ制御回路３００の出力に対応して、アドレス信号ＡＤＤＲ、チップセレクト信号ｎＣＳ０、リード信号ｎＲＤ、ローバイトセレクト信号ｎＬＢ、ｎＨＢ信号、ｎＷＲ信号を入力する端子および、ＤＡＴＡ信号を入出力する端子を備えている。
【００４２】
一方、メモリ５００（バンク１）は、メモリ制御回路３００の出力に対応して、アドレス信号ＡＤＤＲ、チップセレクト信号ｎＣＳ１、リード信号ｎＲＤ、ｎＷＲＨ信号、ｎＷＲＬ信号を入力する端子および、ＤＡＴＡ信号を入出力する端子を備えている。
【００４３】
また、メモリ制御回路３００は、レジスタアクセス回路１０、レジスタ（『設定回路』）２０、２１、状態制御回路（『制御回路』）３０、３１、外部インターフェイス回路４０、メモリアクセス検出回路５０、アクセス判定回路６０を備えている。以上の回路は、すべて内部バスから入力されるクロックＣＬＫに同期して動作を行う。
【００４４】
レジスタアクセス回路１０は、内部バスから入力した信号の内、レジスタにアクセスする信号を判別し、対応するレジスタ群２０または２１に出力する。  
レジスタ群２０は、レジスタ７０、７１、７２、７３、７４、７５の各レジスタを有している。  
レジスタ７１は、アクセスを行うメモリのアドレスの指定からメモリが活性化するまでの期間ｔａｃｓに相当する値が設定されるものである。  
レジスタ７２は、メモリの活性化から読み出し開始までの期間ｔｃｏｓに相当する値が設定されるものである。  
レジスタ７３は、メモリの書き込み又は読み出しを実行する期間ｔａｃｃに相当する値が設定されるものである。  
レジスタ７４は、書き込み又は読み出し終了からメモリが非活性になるまでの期間ｔｃｏｈに相当する値が設定されるものである。  
レジスタ７５は、外部に接続されたメモリの種類により端子の設定を切り替えるための値が設定されるものである。例えば、アクセスを行うメモリが８ビットか１６ビットかを示すＣＰＵ２００からの入力によって、ｎＨＢ／ｎＷＲＨの端子はｎＨＢまたはｎＷＲＨに切り替えられる。  
レジスタ７０は、異なる複数のバンクで連続したアクセスが行われるときに追加される期間（『複数のバンクをともに非活性化とする期間』）に相当する値が設定されるものある。  
これらの各レジスタ７０乃至７５の値は、ＣＰＵ２００によって設定される。
【００４５】
なお、レジスタ群２１はレジスタ群２０と同様に構成されている。メモリ制御回路３００は、バンク数と同数のレジスタ群２０、２１を備えている。
【００４６】
状態制御回路３０は、レジスタ群２０で設定された値と、メモリアクセス検出回路５０から出力されるＶａｌｉｄと、アクセス判定回路６０の出力とに基づいて、メモリへのアクセス状態を示す信号ＩＤＬＥ、ＴＡＣＳ、ＴＣＯＳ、ＴＡＣＣ、ＴＣＯＨの出力の制御を行う。  
この制御を行うため、状態制御回路３０は、レジスタ群２０のレジスタ７１、７２、７３、７４の値をそれぞれダウンカウントするＡＣＳカウンタ、ＣＯＳカウンタ、ＡＣＣカウンタ、ＣＯＨカウンタを備えている。そして、状態制御回路３０は、各レジスタ７０乃至７５に設定された値からクロックＣＬＫに同期してダウンカウントし、レジスタ値が「０」となるまでの期間をそれぞれＴＡＣＳ、ＴＣＯＳ、ＴＡＣＣ、ＴＣＯＨの状態とする信号を出力する。この信号によって外部インターフェイス回路４０から出力される信号の状態が制御される。  
なお、状態制御回路３１は、状態制御回路３０と同様に構成されている。本実施の形態ではレジスタ群２０、２１に対応して状態制御回路３０、３１を設けているが、状態制御回路３０、３１は１つでもよい。例えば、状態制御回路３０に、レジスタ群２０、２１からそれぞれの値が入力され適宜切り替えるようになっていてもよい。
【００４７】
メモリアクセス検出回路５０は、内部バスから外部のメモリにアクセスすることを検出する回路であり、内部バスからメモリをアクセスすることを示すセレクト信号を入力し、外部のメモリにアクセスすることを示すＶａｌｉｄ（『第２信号』）を出力する。
【００４８】
アクセス判定回路６０は、アドレスバスと、Ｖａｌｉｄと、内部バスがアクティブか否かを示す状態信号とに基づいて、外部のメモリへのアクセス方法を判定しその結果を状態制御回路３０に出力する。  
例えばアドレスバスが複数のバンクのアドレスを指定し、それに対応するバンクのＶａｌｉｄが連続で“ＨＩＧＨ”となるとき、ＡＣＳカウンタはｔａｃｓ、ｔａｒｅａに相当する値の加算値をダウンカウントする。
【００４９】
外部インターフェイス回路４０は、アドレスバス、データバスの転送内容、レジスタ７５の設定値、状態制御回路３０の出力に応じて、メモリに対する入力、出力のタイミングが制御された、アドレス信号ＡＤＤＲ、ＤＡＴＡ信号、チップセレクト信号ｎＣＳ０、ｎＣＳ１、ローバイトセレクト信号ｎＬＢ、リード信号ｎＲＤ、ｎＷＲ／ｎＷＲＬ信号、ｎＨＢ／ｎＷＲＨ信号を出力するものである。
【００５０】
例えば、チップセレクト信号ｎＣＳは、状態制御回路３０がＩＤＬＥ又はＴＡＣＳの信号を出力するときに“ＨＩＧＨ”となり、それ以外の場合には“ＬＯＷ”となる。また、リード信号ｎＲＤは、状態制御回路３０がＩＤＬＥ、ＴＡＣＳ、ＴＣＯＳ、ＴＣＯＨの信号を出力するとき“ＨＩＧＨ”となり、ＴＡＣＣの信号を出力するとき“ＬＯＷ”となる。また、ｎＷＲ／ｎＷＲＬ、ｎＨＢ／ｎＷＲＨは、アクセスするメモリが１６ビットか８ビットかを示すレジスタ群２０内のレジスタ７５によってそれぞれ切り替えられる。
【００５１】
＝＝＝状態制御回路３０の出力変化＝＝＝
図２は、本発明の実施の形態に係るメモリ制御回路３００内の状態制御回路３０の状態変化を説明するための図である。状態制御回路３０は、外部のメモリ４００、５００にアクセスを行っていないときにはＶａｌｉｄが“ＬＯＷ”であり、メモリをＩＤＬＥの状態とするステート信号を出力している。ステート信号は、このＩＤＬＥから、通常前述のようにＴＡＣＳ→ＴＣＯＳ→ＴＡＣＣ→ＴＣＯＨの順で変化する。
【００５２】
この図２において、メモリアクセス検出回路５０からＶａｌｉｄが“ＬＯＷ”すなわちメモリをアクセスしないことを示す信号が入力された場合には、状態制御回路３０の出力がＴＡＣＳ、ＴＣＯＳ、ＴＡＣＣ、ＴＣＯＨのいずれのステート信号であっても、状態制御回路３０の出力はＩＤＬＥのステート信号に変化する。以後、Ｖａｌｉｄが“ＨＩＧＨ”であることを前提に説明する。
【００５３】
また、図２における各カウンタ＝１とは、クロックＣＬＫの１周期のダウンカウントを行うことを示している。ダウンカウントはクロックＣＬＫの整数倍の定倍ＣＬＫでこととする。例えばｔａｃｓの場合レジスタ７１にクロックＣＬＫの１周期に相当するレジスタ値が設定され、そのレジスタに対応するカウンタでダウンカウントを行う。そしてレジスタ値が「０」になったタイミングで次の状態に変化する。
【００５４】
レジスタ７１、レジスタ７２、レジスタ７４が０の場合には、ダウンカウントを行わず、次の状態へと変化する。  
なお、前述したように書き込み又は読み出しを行う期間のレジスタ７３は０以外が設定され、ＴＡＣＣがパスすることはない。
【００５５】
《同バンクあるいは連続でないメモリアクセス時》
まず、ステート信号がＩＤＬＥである状態で、Ｖａｌｉｄが“ＨＩＧＨ”となることでＣＰＵにより指定されるメモリにアクセスを開始する。状態制御回路３０は、ｔａｃｓ≠０の場合にはステート信号としてＴＡＣＳを出力する。ｔａｃｓ＝０かつｔｃｏｓ≠０の場合にはＴＣＯＳを出力する。また、ｔａｃｓ＝０かつｔｃｏｓ＝０の場合にはＴＡＣＣと出力する。
【００５６】
ステート信号がＴＡＣＳに変化すると、状態制御回路３０内の、この状態に対応したＡＣＳカウンタにレジスタ７１の値が取り込まれ、カウントが行われる。ＡＣＳカウンタにてクロックＣＬＫの１周期のダウンカウントが終了すると、状態制御回路３０は、ｔｃｏｓ≠０の場合はステート信号としてＴＣＯＳを出力し、ｔｃｏｓ＝０の場合は、ＴＡＣＣを出力する。
【００５７】
ステート信号がＴＣＯＳに変化すると、状態制御回路３０内の、この状態に対応したＣＯＳカウンタにレジスタ７２の値が取り込まれ、カウントが行われる。ＣＯＳカウンタにてクロックＣＬＫの１周期のダウンカウントが終了すると、状態制御回路３０は、ＴＡＣＣを出力する。
【００５８】
ステート信号がＴＡＣＣに変化すると、状態制御回路３０内の、この状態に対応したＡＣＣカウンタにレジスタ７３の値が取り込まれ、カウントが行われる。ＡＣＣカウンタにてクロックＣＬＫの１周期のダウンカウントが終了すると状態制御回路３０は、ｔｃｏｈ≠０の場合はステート信号としてＴＣＯＨを出力し、ｔｃｏｓ＝０の場合は、Ｖａｌｉｄが“ＬＯＷ”となりＩＤＬＥを出力する。
【００５９】
ステート信号がＴＣＯＨに変化すると、制御回路３０内の、この状態に対応したＣＯＨカウンタにレジスタ７４の値が取り込まれ、カウントが行われる。ＣＯＨカウンタにてクロックＣＬＫの１周期のダウンカウントが終了すると、Ｖａｌｉｄが“ＬＯＷ”となり状態制御回路３０はステート信号としてＩＤＬＥを出力する。
【００６０】
《異なるバンクに連続アクセス時》
本発明の状態制御回路３０は、図２に示すように、異なるバンクに対して連続してアクセスをする場合、ステート信号がＩＤＬＥからＴＡＣＳへ変化する設定としてレジスタ７０とレジスタ７１の加算値をＡＣＳカウンタに取り込むようにアクセス判定回路６０によって制御される。このレジスタ７０とレジスタ７１の加算値ｔａｃｓ＋ｔａｒｅａは、ＣＰＵ２００によって、０でない値が設定される。例えばクロックＣＬＫの１クロック期間以上の値が設定される。よってｔａｃｓ＝０として設定されていても、ＴＡＣＳの状態をパスすることがなくなる。以下通常と同様に変化を行う。  
なお、ｔａｒｅａの追加は、ｔａｃｓの値に関係なく、異なるバンクに対して連続してアクセスをする場合に行うので、ｔａｃｓ＋ｔａｒｅａとなる場合のｔａｃｓの値は０でなくてもよい。
【００６１】
＝＝＝メモリ制御回路の動作＝＝＝
図３は、図１における本発明の実施の形態に係るメモリ制御回路３００の動作を説明するためのタイムチャートである。この図３は、メモリ４００（バンク０）のアドレスＡ０から、メモリ５００（バンク１）のアドレスＡ１に連続してアクセスを行う場合の一例を示している。
【００６２】
なお、バンク０にはレジスタ群２０、バンク１にはレジスタ群２１が対応しているものとする。また、高速アクセスのため、レジスタ群２０にはｔａｃｓ０＝ｔｃｏｓ０＝ｔｃｏｈ０＝０、ｔａｃｃ０＝３、ｔａｒｅａ０＝１が設定され、レジスタ群２１にはｔａｃｓ１＝ｔｃｏｓ１＝ｔｃｏｈ１＝０、ｔａｃｃ１＝３、ｔａｒｅａ１＝０が設定されている。
【００６３】
各バンクへのアクセスにつき、バンク０に対するＶａｌｉｄとステート信号をそれぞれＶａｌｉｄ０、ステート０信号とし、バンク１に対するＶａｌｉｄとステート信号をそれぞれＶａｌｉｄ１、ステート１信号とする。
【００６４】
まず、＜内部信号＞について説明する。  
ＣＰＵからアドレスバスに、ｔ０からｔ１の期間にバンク０のアドレスＡ０が指定され、続いてｔ１からｔ３の期間にバンク１のアドレスＡ１が指定される。  
バンク０のアドレスＡ０の指定によってｔ０でＶａｌｉｄ０が“ＨＩＧＨ”になる。  
Ｖａｌｉｄ０はステート０信号がＩＤＬＥ以外の期間と同一のクロック周期経過後すなわちｔ２で“ＬＯＷ”になる。  
そして、Ｖａｌｉｄ０が“ＨＩＧＨ”であることによって、ｔ１でステート０信号がＩＤＬＥからＴＡＣＣに変化する。この例の場合ｔａｃｓ０＝ｔｃｏｓ０＝ｔｃｏｈ０＝０なのでステート０信号はＩＤＬＥ→ＴＡＣＣ→ＩＤＬＥの順で変化する。  
また、ステート０信号は、ｔ２でＶａｌｉｄ０が“ＬＯＷ”となることによって、ｔ３でＴＡＣＣからＩＤＬＥに変化する。
【００６５】
一方、ｔ２では、Ｖａｌｉｄ０が“ＬＯＷ”に変化するのと同時に、アドレスバスにおけるアドレスＡ１の指定に応じたＶａｌｉｄ１が“ＨＩＧＨ”となる。  
Ｖａｌｉｄ１はステート１信号がＩＤＬＥ以外の期間と同一のクロック周期経過後すなわちｔ５で“ＬＯＷ”になる。  
そして、Ｖａｌｉｄ１が“ＨＩＧＨ”であることによって、ｔ３でステート１信号がＩＤＬＥから変化する。この場合異なるバンクへの連続アクセスとなるので、ステート１信号がＴＡＣＳである期間としてｔａｃｓ１＋ｔａｒｅａ０が設定される。ステート１信号はＩＤＬＥ→ＴＡＣＳ→ＴＡＣＣ→ＩＤＬＥの順で変化する。
【００６６】
図３に示すようにステート１信号は、ｔ３でＩＤＬＥからＴＡＣＳに変化し、ｔ４でＴＡＣＣに変化する。そしてステート１信号は、ｔ５でＶａｌｉｄ１が“ＬＯＷ”に変化するのに応じてｔ６でＴＡＣＣからＩＤＬＥに変化する
なお、内部バスが活性か否かを示す状態信号はアドレスバスにＣＰＵからの指示がある期間はアクティブを示している。この場合、ＣＰＵがアドレスＡ０とアドレスＡ１を連続して指定しているので、状態信号はこの期間連続してアクティブを示している。
【００６７】
次に、＜端子＞の信号について説明する。これらの信号はすべて、ステート信号に基づいて変化する。  
まず、ステート０信号がＴＡＣＣに変化するｔ１でアドレス信号ＡＤＤＲに、ＣＰＵからアドレスバスに指定されたアドレスＡ０が指定される。  
同時にバンク０のチップセレクト信号ｎＣＳ０、リード信号ｎＲＤ、ローバイトセレクト信号ｎＬＢ、ｎＨＢ／ｎＷＲＨ信号が“ＬＯＷ”になり、バンク０の読み出しのアクセスが開始する。
【００６８】
そして、ステート０信号がＴＡＣＣからＩＤＬＥに変化し、ステート１信号がＩＤＬＥからＴＡＣＳに変化するｔ３では、アドレス信号ＡＤＤＲの指定がバンク０のアドレスＡ０からバンク１のアドレスＡ１に切り替わる。また、バンク０のチップセレクト信号ｎＣＳ０が“ＨＩＧＨ”となる。ステート１信号がＴＡＣＳの状態なので、バンク１のチップセレクト信号ｎＣＳ１は“ＨＩＧＨ”のままであり、リード信号ｎＲＤ“ＨＩＧＨ”となる。  
また、アクセスを行うメモリが１６ビットメモリから８ビットメモリになるので、ローバイトセレクト信号ｎＬＢ、ｎＨＢ／ｎＷＲＨ信号はｔ３で“ＨＩＧＨ”になる。  
アドレスＡ０に記憶されていたデータＤ０はＤＡＴＡ信号に読み出される。  
なお、読み出されたデータ信号Ｄ０は、＜内部信号＞のデータバスに出力される。
【００６９】
次に、ステート１信号がＴＡＣＳからＴＡＣＣに変化するｔ４で、チップセレクト信号ｎＣＳ１が“ＬＯＷ”となり、バンク１の読み出しのアクセスが開始する。  
そして、ステート１信号がＴＡＣＣからＩＤＬＥに変化するｔ６でリード信号ｎＲＤ、チップセレクト信号ｎＣＳ１が“ＨＩＧＨ”となり、アドレス信号ＡＤＤＲによるアドレスＡ１の指定が終了する。  
アドレスＡ１に記憶されていたデータＤ１はＤＡＴＡ信号に読み出される。  
なお、読み出されたデータＤ１は、＜内部信号＞のデータバスに出力される。
【００７０】
このように、異なるバンクへの連続アクセスの場合ステート信号のＴＡＣＳの設定としてｔａｒｅａを追加することにより、チップセレクト信号ｎＣＳ０、ｎＣＳ１をともに“ＨＩＧＨ”とする期間を設定することができ、ｎＨＢ／ｎＷＲＨ信号が“ＨＩＧＨ”となるタイミングの遅れによる誤動作を防止することができる。
【００７１】
＝＝＝その他の実施の形態＝＝＝
図４は、本発明のその他の実施の形態に係るメモリ制御回路３００の動作を説明するためのタイムチャートである。
【００７２】
このタイムチャートは、例えばＣＰＵ２００内部にデータを一時的に保存しておくキャッシュメモリ（不図示）およびキャッシュ専用のバス（不図示）を備えていて、メモリ制御回路３００がキャッシュメモリとアクセスすることによって内部バスがＩＤＬＥとなる期間を含む場合の一例を示している。このように、ＣＰＵ内部にキャッシュメモリを備え、キャッシュメモリに繰り返し使われる特定のデータを記憶しておくと、アクセス時間を大幅に短縮することができる。
【００７３】
この図４では、アドレスバスのＡ０とＡ１の指定が連続でなくｔ１からｔ２においてアドレスバスにＣＰＵからのアドレスを指定する信号が無いという点で前述の実施の形態と異なっている。状態信号もアドレスバスに対応して、ｔ１からｔ２において内部バスに信号が無いバスＩＤＬＥとなっている。
【００７４】
しかしバンク０のＶａｌｉｄ０の“ＨＩＧＨ”から“ＬＯＷ”の変化と、バンク１のＶａｌｉｄ１の“ＬＯＷ”から“ＨＩＧＨ”への変化のタイミングは共にｔ２であり、外部のメモリに対しては、異なるバンクへの連続アクセスとなる。
【００７５】
このように内部バスにおいてアドレス指定の間にＩＤＬＥ状態が存在しても、レジスタ群２０、２１の設定値によって、Ｖａｌｉｄ０の立ち下がりとＶａｌｉｄ１の立ち上がりのタイミングが同時となり、アドレス信号ＡＤＤＲの指定のＡ０からＡ１への切り替えが連続となることがある。  
よって、この場合も、外部のメモリに対して、異なるバンクへの連続アクセスとなるのでメモリ制御回路３００は、ＴＡＣＳの期間の設定としてｔａｃｓ１にｔａｒｅａ０を追加する。
【００７６】
以上説明したように、異なるバンクに連続でアクセスをする場合にステート信号がＴＡＣＳである期間としてｔａｃｓにｔａｒｅａを加算した値を設定することにより、チップセレクト信号ｎＣＳ０、ｎＣＳ１をともに“ＨＩＧＨ”とする期間を設けることができる。この期間では両バンクとも“ＨＩＧＨ”であるので、信号の遅延、例えばｎＨＢ／ｎＷＲＨ信号が“ＬＯＷ”から“ＨＩＧＨ”になるタイミングの遅れによる誤動作を防止することができる
なお、本実施の形態ではｔａｃｓ＝０の場合について説明したが、ｔａｃｓが０でない場合にも、異なるバンクに連続してアクセスする場合、ステート信号がＴＡＣＳである期間としてｔａｃｓにｔａｒｅａを加算した値を設定することにより、信号の遅延による誤動作を防止することができる
また、ｔａｃｓが０の場合、すなわち高速アクセスによってアドレスの指定期間とバンクの活性化の期間が同時となる場合には、異なるバンクの活性化の切り替わり時に、バンクの活性化の切り替わりが同時となり誤動作が生じやすいので、ｔａｃｓ＝０の場合にｔａｒｅａを加算するようにしてもよい。この場合、高速アクセス時の誤動作を防止することができる。  
このｔａｒｅａの値の設定をするレジスタを、アクセスを行うバンクに対応して設けることにより、各バンクに対応してｔａｒｅａを追加することができる。
【００７７】
また、ステート信号がＴＡＣＳである期間としてｔａｃｓにｔａｒｅａを加算した値はシステムクロックＣＬＫの少なくとも１クロック期間とすることにより、バンク０とバンク１の活性化の期間の切り替わりが連続となることがなくなるので、誤動作を防止することができる。
【００７８】
なお本発明では、内部信号にバスＩＤＬＥの期間が存在しても、メモリへのアクセスが連続となる時には、連続アクセスとみなしＴＡＣＳの状態の期間を追加することで誤動作を防止することができる。
【００７９】
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。  
例えば、メモリ４００、５００は、図１の構成でなくてもよい。またＳＲＡＭ以外のメモリ、例えばＦｌａｓｈメモリなどを使用してもよい。
【図面の簡単な説明】
【００８０】
【図１】本発明の形態に係るメモリ制御回路を説明するためのブロック図である。
【図２】本発明の形態に係るメモリ制御回路内の制御回路の状態変化を説明するための図である。
【図３】本発明の形態に係るメモリ制御回路の動作を説明するためのタイムチャートである。
【図４】本発明のその他の実施の形態に係るメモリ制御回路の動作を説明するためのタイムチャートである。
【図５】従来のメモリ制御回路の動作を説明するためのタイムチャートである。
【図６】従来のメモリ制御回路の問題点を説明するためのタイムチャートである。
【符号の説明】
【００８１】
１０  レジスタアクセス回路  
２０、２１  レジスタ  
３０、３１  状態制御回路
４０  外部インターフェイス回路  
５０  メモリアクセス検出回路  
６０  アクセス判定回路  
１００  集積回路  
２００  ＣＰＵ  
３００  メモリ制御回路  
４００、５００  メモリ
【図１】
2005228142.tif 000003
【図２】
2005228142.tif 000004
【図３】
2005228142.tif 000005
【図４】
2005228142.tif 000006
【図５】
2005228142.tif 000007
【図６】
2005228142.tif 000008