(57)【特許請求の範囲】
【請求項１】
所定のサイクルタイムで動作するプロセッサから、当該プロセッサのサイクルタイムよりも長いアクセスタイムで動作するメモリを順次アクセスするデータアクセス装置であって、
前記プロセッサが次のサイクルでアクセスするアドレス信号を生成する手段と、前記メモリのアクセスタイムを満足するように前記アドレス信号のパルス幅を延長して前記メモリに供給する手段と、前記アドレス信号に応じて前記メモリから出力されるデータを保持し、前記次のサイクルで前記プロセッサに供給する手段と、前記プロセッサが、前記メモリの連続するアドレスを所定回数アクセスする毎に１回のウェイトサイクルを挿入するよう制御する手段とを有することを特徴とするデータアクセス装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサから、メモリの連続するアドレスに記憶されている複数のデータを連続的にアクセスするデータアクセス装置に関するものである。
【０００２】
【従来の技術】
プロセッサ（以下、ＣＰＵという）からメモリのデータをアクセスするデータアクセス装置において、ＣＰＵのサイクルタイムに対しかりにメモリのアクセスタイムの余裕がなく、ＣＰＵが１クロック時間でメモリをアクセスすることができない場合には、必要な個数のウェイトサイクルを挿入することにより、メモリのデータを正しくアクセスすることができるようにしている。
【０００３】
しかし、ＣＰＵがメモリのデータをアクセスする毎にウェイトサイクルを挿入すると、そのパフォーマンスは著しく低下する。これに対して、従来より、例えばメモリの連続するアドレスに記憶されている複数のデータをＣＰＵが連続的にリードアクセスする場合に、ＣＰＵが次にアクセスするメモリアドレスを出力し、これに応じてメモリから出力されるデータをあらかじめラッチに保持しておくのが有効な手法であることが知られている。
【０００４】
以下、従来のデータアクセス装置の構成、動作およびその問題点について説明する。
図７は、従来のデータアクセス装置の一例の構成概念図である。同図に示すデータアクセス装置６２は、ＣＰＵ１２と、メモリ１４と、プリフェッチアドレス生成回路１６と、アドレスラッチ１８と、データラッチ２０と、Ａ＿Ｇ生成回路３２と、ＯＥ生成回路３４と、Ｄ＿Ｇ生成回路３６とを有する。
【０００５】
なお、以下の説明では、前述のように、ＣＰＵ１２のサイクルタイムに対し、メモリ１４のアクセスタイムの余裕がない場合に有効な、メモリ１４の連続するアドレスに格納されている複数のデータをＣＰＵ１２が連続的にリードする場合のデータアクセス装置６２の動作から説明する。
ここで、ＣＰＵ１２、プリフェッチアドレス生成回路１６、Ａ＿Ｇ生成回路３２、ＯＥ生成回路３４およびＤ＿Ｇ生成回路３６にはクロック信号ＣＬＫが入力されており、これらの回路はクロック信号ＣＬＫに同期して動作する。
【０００６】
図８の動作タイミングチャートに示すように、まず、クロック信号ＣＬＫの立ち上がりに同期して、ＣＰＵ１２のＡ＜１５：０＞端子からＣＰＵアドレス信号ＣＰＵ＿Ａ＜１５：０＞が出力され、プリフェッチアドレス生成回路１６に供給される。プリフェッチアドレス生成回路１６は、ＣＰＵアドレス信号ＣＰＵ＿Ａ＜１５：０＞をインクリメント（＋１）し、これをプリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞として出力する。
【０００７】
プリフェッチアドレス生成回路１６から出力されるプリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞は、アドレスラッチ１８のＤ端子に入力される。プリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞は、制御信号Ａ＿Ｇによってアドレスラッチ１８に保持され、そのＱ端子からは、アドレスラッチ１８に保持されたプリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞が、メモリアドレス信号ＬＰ＿Ａ＜１５：０＞として出力される。
【０００８】
ここで、Ａ＿Ｇ生成回路３２は、クロック信号ＣＬＫの立ち下りに同期して、プリフェッチアドレス生成回路１６から出力されるプリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞をアドレスラッチ１８に保持するためのタイミング信号となる制御信号Ａ＿Ｇ、図示例では、クロック信号ＣＬＫがローレベルの期間にハイレベルとなる制御信号Ａ＿Ｇを発生する。この制御信号Ａ＿Ｇは、前述のアドレスラッチ１８のＧ端子に入力される。
【０００９】
なお、アドレスラッチ１８は、Ｇ端子に入力される制御信号Ａ＿Ｇがハイレベルの間は、プリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞を通過させて、これをメモリアドレス信号ＬＰ＿Ａ＜１５：０＞として出力する。また、制御信号Ａ＿Ｇが立ち下る瞬間のプリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞を保持するとともに、制御信号Ａ＿Ｇがローレベルの間、これをメモリアドレス信号ＬＰ＿Ａ＜１５：０＞として出力する。
【００１０】
続いて、アドレスラッチ１８から出力されるメモリアドレス信号ＬＰ＿Ａ＜１５：０＞は、メモリ１４のＡ＜１５：０＞端子に入力される。メモリ１４のＤ＜７：０＞端子からは、例えばメモリアドレス信号ＬＰ＿Ａ＜１５：０＞の値が変化してから、または、制御信号ＯＥがハイレベルとなってから所定のアクセスタイムの後（図中左右矢印）、メモリアドレス信号ＬＰ＿Ａ＜１５：０＞に相当するアドレスに記憶されているメモリデータ信号ＭＤ＜７：０＞が出力される。
【００１１】
ここで、ＯＥ生成回路３４は、クロック信号ＣＬＫの立ち下りに同期して、メモリ１４からデータを読み出すためのタイミング信号となる制御信号ＯＥ、図示例では、クロック信号ＣＬＫがローレベルの期間にハイレベルとなる制御信号ＯＥを発生する。なお、制御信号ＯＥは、図示例では、ハイレベルの期間にメモリ１４からデータをリードするよう制御する信号である。この制御信号ＯＥは、前述のメモリ１４のＯＥ端子に入力される。
【００１２】
続いて、メモリ１４から出力されるメモリデータ信号ＭＤ＜７：０＞は、データラッチ２０のＤ端子に入力される。メモリデータ信号ＭＤ＜７：０＞は、制御信号Ｄ＿Ｇによってデータラッチ２０に保持され、そのＱ端子からは、データラッチ２０に保持されたデータ信号ＭＤ＜７：０＞が、ラッチデータ信号ＬＤ＜７：０＞として出力される。
【００１３】
ここで、Ｄ＿Ｇ生成回路３６は、クロック信号の立ち上がりに同期して、メモリ１４から読み出されるメモリデータ信号ＭＤ＜７：０＞をデータラッチ２０に保持するためのタイミング信号となる制御信号Ｄ＿Ｇ、図示例では、クロック信号ＣＬＫがハイレベルの期間にハイレベルとなる制御信号Ｄ＿Ｇを発生する。この制御信号Ｄ＿Ｇは、前述のデータラッチ２０のＧ端子に入力される。
【００１４】
なお、データラッチ２０も、アドレスラッチ１８の場合と同じく、Ｇ端子に入力される制御信号Ｄ＿Ｇがハイレベルの間は、メモリデータ信号ＭＤ＜７：０＞を通過させて、これをラッチデータ信号ＬＤ＜７：０＞として出力する。また、制御信号Ｄ＿Ｇが立ち下る瞬間のメモリデータ信号ＭＤ＜７：０＞を保持するとともに、制御信号Ｄ＿Ｇがローレベルの間、これをラッチデータ信号ＬＤ＜７：０＞として出力する。
【００１５】
そして、最後に、データラッチ２０から出力されるラッチデータ信号ＬＤ＜７：０＞はＣＰＵ１２のＤ＜７：０＞端子に入力され、次のサイクルのクロック信号ＣＬＫの立ち上がり（図中上矢印）に同期してＣＰＵにフェッチされる。以上のようにして、データアクセス装置６２では、ウェイトサイクルを挿入することなく、ＣＰＵ１２からメモリ１４の連続するアドレスに記憶されている複数のデータを連続的にリードすることができる。
【００１６】
しかし、データアクセス装置６２では、メモリ１４のアクセスタイムがさらに長くなり、ＣＰＵ１２のサイクルタイムよりも長くなると、図９の動作タイミングチャートに示すように、メモリ１４からメモリデータＭＤ＜７：０＞が出力されるのがさらに遅くなるため、制御信号Ｄ＿Ｇでデータラッチ２０に保持することができなくなる。この場合、メモリ１４をアクセスする毎にウェイトサイクルを挿入してリード動作を延長させる必要があり、ＣＰＵ１２のパフォーマンスが著しく低下するという問題があった。
【００１７】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点をかえりみて、プロセッサから、プロセッサのサイクルタイムよりも長いアクセスタイムで動作するメモリの連続するアドレスに記憶されている複数のデータを連続的に高速にアクセスすることができるデータアクセス装置を提供することにある。
【００１８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、所定のサイクルタイムで動作するプロセッサから、当該プロセッサのサイクルタイムよりも長いアクセスタイムで動作するメモリを順次アクセスするデータアクセス装置であって、
前記プロセッサが次のサイクルでアクセスするアドレス信号を生成する手段と、前記メモリのアクセスタイムを満足するように前記アドレス信号のパルス幅を延長して前記メモリに供給する手段と、前記アドレス信号に応じて前記メモリから出力されるデータを保持し、前記次のサイクルで前記プロセッサに供給する手段と、前記プロセッサが、前記メモリの連続するアドレスを所定回数アクセスする毎に１回のウェイトサイクルを挿入するよう制御する手段とを有することを特徴とするデータアクセス装置を提供するものである。
【００１９】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、本発明のデータアクセス装置を詳細に説明する。
【００２０】
図１は、本発明のデータアクセス装置の一実施例の構成概念図である。同図に示すデータアクセス装置１０は、プロセッサ（以下、ＣＰＵという）１２と、メモリ１４と、プリフェッチアドレス生成回路１６と、アドレスラッチ１８と、データラッチ２０と、ＮＡ＿Ｇ生成回路２２と、ＮＯＥ生成回路２４と、ＮＤ＿Ｇ生成回路２６と、ゼロ初期化機能付きインクリメンタ２８と、遅延逓倍器３０とを有する。
【００２１】
すなわち、本発明のデータアクセス装置１０は、図７に示す従来のデータアクセス装置と比較して、Ａ＿Ｇ生成回路３２、ＯＥ生成回路３４およびＤ＿Ｇ生成回路３６の代わりに、各々対応するＮＡ＿Ｇ生成回路２２、ＮＯＥ生成回路２４およびＮＤ＿Ｇ生成回路２６を用いている点と、さらにインクリメンタ２８および遅延逓倍器３０を有する点とが相違するだけであるから、同一の構成要件についての詳細な説明は省略する。
【００２２】
同図に示すように、クロック信号ＣＬＫは、ＣＰＵ１２、プリフェッチアドレス生成回路１６、ＮＡ＿Ｇ生成回路２２、ＮＯＥ生成回路２４、ＮＤ＿Ｇ生成回路２６および遅延逓倍器３０に入力されている。インクリメンタ２８からは、ウェイト信号ＷＡＩＴおよびインクリメント信号ＩＮＣ＜１：０＞が出力されており、ウェイト信号ＷＡＩＴは、ＣＰＵ１２、ＮＡ＿Ｇ生成回路２２、ＮＯＥ生成回路２４およびＮＤ＿Ｇ生成回路２６に、インクリメント信号ＩＮＣ＜１：０＞は、選択信号ＭＵＬ＜１：０＞として遅延逓倍器３０に各々入力されている。また、遅延逓倍器３０からは遅延信号ＤＬＹが出力され、ＮＡ＿Ｇ生成回路２２、ＮＯＥ生成回路２４およびＮＤ＿Ｇ生成回路２６に入力されている。
【００２３】
続いて、図２に、制御信号生成回路の一実施例の概念図を示す。
まず、同図（ａ）に示すＮＡ＿Ｇ生成回路２２は、Ａ＿Ｇ生成回路３２と、ＡＮＤゲート３８とを有する。Ａ＿Ｇ生成回路３２は、理解が容易となるように、本実施例では、例えば図７に示す従来のデータアクセス装置６２で使用されているものと同じ構成のものとする。なお、Ａ＿Ｇ生成回路３２の具体的な回路構成は限定されず、従来公知の構成のものはいずれも適用可能である。
【００２４】
ここで、Ａ＿Ｇ生成回路３２からは制御信号Ａ＿Ｇが出力され、ＡＮＤゲート３８の第１の入力端子に入力されている。ＡＮＤゲート３８の第２の入力端子にはウェイト信号ＷＡＩＴが入力され、その第３の反転入力端子には遅延信号ＤＬＹが入力され、ＡＮＤゲート３８からは、プリフェッチアドレス生成回路１６から出力されるプリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞をアドレスラッチ１８に保持するためのタイミング信号となる制御信号ＮＡ＿Ｇが出力されている。
【００２５】
また、同図（ｂ）に示すＮＯＥ生成回路２４は、ＯＥ生成回路３４と、ＡＮＤゲート４０とを有する。同じく、ＯＥ生成回路３４は従来公知の構成のものとする。ＯＥ生成回路３４からは制御信号ＯＥが出力され、ＡＮＤゲート４０の第１の入力端子に入力されている。ＡＮＤゲート４０の第２の入力端子にはウェイト信号ＷＡＩＴが入力され、その第３の反転入力端子には遅延信号ＤＬＹが入力され、ＡＮＤゲート４０からは、メモリ１４からデータを読み出すためのタイミング信号となる制御信号ＮＯＥが出力されている。
【００２６】
同図（ｃ）に示すＮＤ＿Ｇ生成回路２６は、Ｄ＿Ｇ生成回路３６と、ＮＡＮＤゲート４２とを有する。同じく、Ｄ＿Ｇ生成回路は従来公知の構成のものとする。Ｄ＿Ｇ生成回路３６からは制御信号Ｄ＿Ｇが出力され、ＮＡＮＤゲート４２の第１の反転入力端子に入力されている。ＮＡＮＤゲート４２の第２の入力端子にはウェイト信号ＷＡＩＴが入力され、その第３の反転入力端子には遅延信号ＤＬＹの反転信号が入力され、ＮＡＮＤゲート４２からは、メモリ１４から読み出されるメモリデータ信号ＭＤ＜７：０＞をデータラッチ２０に保持するためのタイミング信号となる制御信号ＮＤ＿Ｇが出力されている。
【００２７】
なお、本実施例では、Ａ＿Ｇ生成回路３２、ＯＥ生成回路３４およびＤ＿Ｇ生成回路３６の動作は、例えば図７に示すデータアクセス装置６２で使用されているものと同じであり、制御信号Ａ＿Ｇ，ＯＥおよびＤ＿Ｇの極性も同じであるとする。すなわち、いずれの制御信号Ａ＿Ｇ，ＯＥおよびＤ＿Ｇもアクティブ状態はハイレベルであり、例えば制御信号ＯＥは、メモリ１４からデータを読み出す場合にハイレベルになるものとする。
【００２８】
また、制御信号ＮＡ＿Ｇ，ＮＯＥおよびＮＤ＿Ｇと、制御信号Ａ＿Ｇ，ＯＥおよびＤ＿Ｇとの相違点は、後述するように、ウェイト信号ＷＡＩＴがアクティブ状態であるローレベルとなった場合に、非アクティブ状態であるローレベルとなる点と、同じく、遅延信号ＤＬＹがアクティブ状態であるハイレベルとなった場合に、非アクティブ状態であるローレベルとなる点である。なお、詳細については、以下の説明で明らかになるはずである。
【００２９】
続いて、図３に、インクリメンタの一実施例の概念図を示す。図示例のインクリメンタ２８は、＋１回路４４と、ＡＮＤゲート４６と、フリップフロップ４８と、コンパレータ５０とを有する。
【００３０】
ここで、＋１回路４４からの出力はＡＮＤゲート４６の一方の入力端子に入力され、ＡＮＤゲート４６の出力は、フリップフロップ４８のＤ＜２：０＞端子に入力されている。フリップフロップ４８のＣＬＫ反転端子には、ＯＥ生成回路３４によって生成される制御信号ＯＥが入力され、そのリセット反転端子にはリセット信号ＲＥＳＥＴが入力され、そのＱ＜２：０＞端子からは、インクリメント信号ＩＮＣ＜２：０＞が出力されている。
【００３１】
インクリメント信号ＩＮＣ＜２：０＞は＋１回路４４およびコンパレータ５０の一方の入力端子に入力される他、その一部がインクリメント信号ＩＮＣ＜１：０＞として出力されている。コンパレータ５０の他方の入力端子には定数‘４（２進数表示では１００：ｂｉｎと記す）’が入力され、その出力はＡＮＤゲート４６の他方の入力端子に入力されるとともに、ウェイト信号ＷＡＩＴとして出力されている。
【００３２】
ここで、ウェイト信号ＷＡＩＴは、ＣＰＵ１２がメモリ１４をアクセスする場合に、ウェイトサイクルを挿入するかどうかを制御するための信号であって、本実施例では、ウェイト信号ＷＡＩＴがアクティブ状態であるローレベルの時にウェイトサイクルが挿入されるものとする。
【００３３】
インクリメンタ２８では、まず、リセット信号ＲＥＳＥＴが一旦ローレベルとされてフリップフロップ４８がリセットされ、その出力であるインクリメント信号ＩＮＣ＜２：０＞の値は‘０００：ｂｉｎ’となる。
【００３４】
その後、インクリメント信号ＩＮＣ＜２：０＞は＋１回路４４によってインクリメントされ、ＡＮＤゲート４６を介してフリップフロップ４８に入力され、制御信号ＯＥの立ち下りでフリップフロップ４８に再び保持される。以後同様にして、制御信号ＯＥが立ち下る毎に、インクリメント信号ＩＮＣ＜２：０＞の値はインクリメントされる。なお、インクリメント信号ＩＮＣ＜１：０＞は、選択信号ＭＵＬ＜１：０＞として遅延逓倍器３０に入力される。
【００３５】
コンパレータ５０は、インクリメント信号ＩＮＣ＜２：０＞の値と定数‘１００：ｂｉｎ’とを比較し、一致を検出した場合にウェイト信号ＷＡＩＴとしてローレベルを出力する。ウェイト信号ＷＡＩＴはＡＮＤゲート４６を介してフリップフロップ４８のＤ＜２：０＞端子に入力され、その次の制御信号ＯＥの立ち下りでフリップフロップ４８が初期化され、インクリメント信号ＩＮＣ＜２：０＞の値は‘０００：ｂｉｎ’に戻る。以後、前述の動作が繰り返し行われる。
【００３６】
すなわち、インクリメンタ２８では、インクリメント信号ＩＮＣ＜２：０＞の値が、制御信号ＯＥの立ち下りに同期して、‘０００→００１→０１０→０１１→１００：ｂｉｎ’の順にインクリメントされる。そして、インクリメント信号ＩＮＣ＜２：０＞の値が‘１００：ｂｉｎ’になると、ウェイト信号ＷＡＩＴとしてアクティブ状態であるローレベルが出力され、インクリメント信号ＩＮＣ＜２：０＞の値は‘０００：ｂｉｎ’に初期化される。
【００３７】
続いて、図４に、遅延逓倍器の一実施例の概念図を示す。図示例の遅延逓倍器３０は、遅延回路（ディレイ）５２，５４，５６と、マルチプレクサ５８と、ＡＮＤゲート６０とを有する。なお、本実施例では、遅延回路５２，５４，５６の遅延時間は同じであるとする。
【００３８】
ここで、遅延回路５２にはクロック信号ＣＬＫが入力され、その出力は、次段の遅延回路５４に入力されるとともに、遅延信号ＤＬ１として、マルチプレクサ５８の０１端子に入力されている。同じく、遅延回路５４の出力は、次段の遅延回路５６に入力されるとともに、遅延信号ＤＬ２として、マルチプレクサ５８の１０端子に入力され、遅延回路５６の出力は、遅延信号ＤＬ３としてマルチプレクサ５８の１１端子に入力されている。
【００３９】
マルチプレクサ５８の００端子はローレベル（Ｌ）に固定され、その選択端子には、前述のインクリメンタ２８から出力されるインクリメント信号ＩＮＣ＜１：０＞が選択信号ＭＵＬ＜１：０＞として入力され、マルチプレクサ５８の出力信号ＤＬＸは、ＡＮＤゲート６０の一方の入力端子に入力されている。また、ＡＮＤゲート６０の他方の反転入力端子にはクロック信号ＣＬＫが入力され、ＡＮＤゲート６０からは遅延信号ＤＬＹが出力されている。
【００４０】
遅延逓倍器３０では、図５の動作タイミングチャートに示すように、遅延回路５２，５４，５６により、クロック信号ＣＬＫが各々所定の一定時間ずつ遅延され、遅延回路５２，５４，５６から、各々遅延信号ＤＬ１，ＤＬ２，ＤＬ３として出力される。マルチプレクサ５８からは、出力信号ＤＬＸとして、選択信号ＭＵＬ＜１：０＞の値に応じて、００端子、０１端子、１０端子または１１端子に入力される信号が選択的に出力される。
【００４１】
すなわち、図示例では、選択信号ＭＵＬ＜１：０＞の値が‘００：ｂｉｎ’の場合に、マルチプレクサ５８の００端子に入力されるローレベルが選択的に出力され、以下同じく、‘０１：ｂｉｎ’の場合には０１端子に入力される遅延信号ＤＬ１が、‘１０：ｂｉｎ’の場合には１０端子に入力される遅延信号ＤＬ２が、‘１１：ｂｉｎ’の場合には、１１端子に入力される遅延信号ＤＬ３が各々選択的に出力される。
【００４２】
そして、ＡＮＤゲート６０からは、遅延信号ＤＬＹとして、選択信号ＭＵＬ＜１：０＞の値が‘００：ｂｉｎ’の場合にローレベルが出力され、これ以外の場合には、選択信号ＭＵＬ＜１：０＞の値に応じて、前述のようにマルチプレクサ５８から選択的に出力される遅延信号ＤＬ１，ＤＬ２またはＤＬ３の遅延時間に相当するパルス幅のハイレベルのパルスがクロック信号ＣＬＫの立ち下りに同期して出力される。以後、前述の動作が繰り返し行われる。
【００４３】
なお、選択信号ＭＵＬ＜１：０＞は、前述のようにインクリメント信号ＩＮＣ＜１：０＞のことであるから、図５の動作タイミングチャートに示すように、インクリメント信号ＩＮＣ＜２：０＞の値が‘０００→００１→０１０→０１１→１００：ｂｉｎ’とインクリメントされた後、‘０００：ｂｉｎ’に初期化されるのに応じて、選択信号ＭＵＬ＜１：０＞の値は、‘００→０１→１０→１１→００：ｂｉｎ’の順に繰り返し変化する。
【００４４】
本発明のデータアクセス装置は、基本的に以上のような構成のものである。なお、上記図示例は、理解を容易とするために、ＣＰＵ１２が、メモリ１４の連続するアドレスに記憶されている複数のデータを高速にリードアクセスする場合の構成のみを示している。したがって、ＣＰＵ１２が、メモリ１４のデータをランダムにアクセスする場合には、アドレス信号、データ信号および制御信号をメモリ１４に直接接続する必要があるため、両者の切り替えが可能となるようにマルチプレクサを設ける必要がある。
【００４５】
次に、図６に示す動作タイミングチャートを参照しながら、本発明のデータアクセス装置の動作について説明する。
なお、以下の説明では、ＣＰＵ１２のサイクルタイムよりも、メモリ１４のアクセスタイムの方が長い場合に、メモリ１４の連続するアドレスに格納されている複数のデータをＣＰＵ１２が連続的にリードする場合のデータアクセス装置６２の動作について説明する。
【００４６】
図６の動作タイミングチャートに示すように、ＣＰＵ１２からは、値の連続するＣＰＵアドレス信号ＣＰＵ＿Ａ＜１５：０＞が順に出力される。ＣＰＵアドレス信号ＣＰＵ＿Ａ＜１５：０＞は、プリフェッチアドレス生成回路１６によってインクリメントされ、ＣＰＵ１２が次のサイクルでアクセスするＣＰＵアドレス信号ＣＰＵ＿Ａ＜１５：０＞の値に等しい値を持つプリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞として出力される。
【００４７】
インクリメント信号ＩＮＣ＜２：０＞の値は、制御信号ＯＥの立ち下り、すなわち、クロック信号ＣＬＫの立ち上がりに同期して、‘０→１→２→３→４（１０進数）’の順に１サイクル毎にインクリメントされ、その後、‘０’に初期化され、以後同じ動作を繰り返す。
【００４８】
まず、１サイクル目のように、インクリメント信号ＩＮＣ＜２：０＞すなわち選択信号ＭＵＬ＜１：０＞の値が‘０’の場合、ウェイト信号ＷＡＩＴはハイレベルとなり、遅延信号ＤＬＹはローレベルとなる。これに応じて、制御信号ＮＡ＿ＧおよびＮＯＥは、クロック信号ＣＬＫがローレベルの期間にハイレベルとなり、制御信号ＮＤ＿Ｇは、クロック信号ＣＬＫがハイレベルの期間にハイレベルとなる。
【００４９】
続いて、２サイクル目のように、インクリメント信号ＩＮＣ＜２：０＞の値が‘１’の場合、遅延信号ＤＬＹとして、クロック信号ＣＬＫの立ち下りに同期して、遅延回路５２の遅延時間に相当するパルス幅を有するハイレベルのパルスが出力される。これに応じて、制御信号ＮＡ＿ＧおよびＮＯＥの立ち上がり、および、制御信号ＮＤ＿Ｇの立ち下りのタイミングが、遅延回路５２の遅延時間に相当する時間遅延される。
【００５０】
同じく、３および４サイクル目でも、遅延信号ＤＬＹとして、クロック信号ＣＬＫの立ち下りに同期して、それぞれ遅延回路５２，５４および遅延回路５２，５４，５６の遅延時間に相当するハイレベルのパルスが出力され、これに応じて、制御信号ＮＡ＿ＧおよびＮＯＥの立ち上がり、および、制御信号ＮＤ＿Ｇの立ち下りのタイミングが、それぞれ遅延回路５２，５４および遅延回路５２，５４，５６の遅延時間に相当する時間遅延される。
【００５１】
プリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞は、制御信号ＮＡ＿Ｇによってアドレスラッチ１８に保持され、メモリアドレス信号ＬＰ＿Ａ＜１５：０＞として出力される。なお、図６の動作タイミングチャートを見れば明らかなように、各々のサイクルでのメモリアドレス信号ＬＰ＿Ａ＜１５：０＞は、ＣＰＵアドレス信号ＣＰＵ＿Ａ＜１５：０＞と比べて、メモリ１４のアクセスタイムを満足するように、遅延回路５２の遅延時間に相当する時間の分だけ長く保持される。
【００５２】
メモリ１４からは、メモリアドレス信号ＬＰ＿Ａ＜１５：０＞の値が変化してから、または、制御信号ＮＯＥがハイレベルとなってから所定のアクセスタイムの後（図中左右矢印）、メモリアドレス信号ＬＰ＿Ａ＜１５：０＞に相当するアドレスに記憶されているメモリデータ信号ＭＤ＜７：０＞が出力される。本実施例では、メモリデータ信号ＭＤ＜７：０＞は、これに対応するプリフェッチアドレス信号Ｐ＿Ａ＜１５：０＞が出力されている次のサイクルで出力される。
【００５３】
メモリデータ信号ＭＤ＜７：０＞は、制御信号ＮＤ＿Ｇによってデータラッチ２０に保持され、ラッチデータ信号ＬＤ＜７：０＞として出力される。そして、ラッチデータ信号ＬＤ＜７：０＞は、クロック信号ＣＬＫの立ち上がり（図中上矢印）に同期してＣＰＵにフェッチされる。以上のように、ＣＰＵ１２は、１〜４サイクル目までは、ウェイトサイクルを挿入することなく、メモリ１４の連続するアドレスに記憶されている複数のデータを連続的にリードする。
【００５４】
続いて、５サイクル目のように、インクリメント信号ＩＮＣ＜２：０＞の値が‘４’の場合、クロック信号ＣＬＫの立ち上がりに同期して、ウェイト信号ＷＡＩＴがアクティブ状態であるローレベルとなる。また、インクリメント信号ＩＮＣ＜１：０＞すなわち選択信号ＭＵＬ＜１：０＞の値は‘０’であるため、インクリメント信号ＩＮＣ＜２：０＞の値が‘０’の場合と同じように、遅延信号ＤＬＹはローレベルとなる。
【００５５】
ウェイト信号ＷＡＩＴがローレベルになると、制御信号ＮＡ＿ＧおよびＮＯＥは非アクティブ状態のローレベルとなり、制御信号ＮＤ＿Ｇも非アクティブ状態のハイレベルとなる。また、ＣＰＵ１２は、６サイクル目のクロック信号ＣＬＫの立ち上がりでウェイト信号ＷＡＩＴのローレベルをサンプリングし、６サイクル目のＣＰＵアドレス信号ＣＰＵ＿Ａ＜１５：０＞の値を５サイクル目と同じ値とする。すなわち、ウェイトサイクルが挿入される。そして、６サイクル目以降は、前述の動作が繰り返し行われる。
【００５６】
ここで、上記実施例では、メモリアドレスＬＰ＿Ａ＜１５：０＞のパルス幅を、メモリ１４のアクセスタイムを満足するように引き延ばして、ＣＰＵ１２から、メモリ１４の連続するアドレスを４回リードアクセスし、その後、パルス幅の引き延ばしが限界になると１回のウェイトサイクルを挿入する動作が繰り返し行われる。したがって、一連の動作では５種類の状態が存在するため、この５種類の状態を区別するために、インクリメント信号ＩＮＣとしては３ビットの情報量が必要である。
【００５７】
ウェイトサイクルでは、遅延信号ＤＬＹの状態に係わらず、制御信号ＮＡ＿Ｇ，ＮＯＥおよびＮＤ＿Ｇの状態が決定される。このため、本実施例では、ウェイトサイクルに、遅延信号ＤＬＹとして１回目のリードアクセスの場合と同じローレベルを出力している。したがって、本実施例では、４回のリードアクセスに相当する４種類の状態に応じて、ローレベル（Ｌ）または遅延信号ＤＬ１〜３の内の１つを選択的に出力する４入力のマルチプレクサ５８を使用することができ、選択信号ＭＵＬを３ビットから１ビット削減して２ビットとし、遅延逓倍器３０の回路規模を削減している。
【００５８】
これに対して、例えば５回のリードアクセスに対して１回のウェイトサイクルが必要な場合には、６種類の状態が存在する。この場合も、インクリメント信号ＩＮＣとしては同じ３ビットの情報量が必要である。また、ウェイトサイクルでの遅延信号ＤＬＹの状態は関係ないものの、３ビットの選択信号ＭＵＬを使用して、５回のリードアクセスに相当する５種類の状態の内の１つを選択的に出力する５入力のマルチプレクサを使用する必要がある。
【００５９】
何回リードアクセスをすると、ウェイトサイクルを挿入しなければならないかというのは、ＣＰＵ１２のサイクルタイムと、メモリ１４のアクセスタイムと、両者の時間差によって決定される。しかし、遅延回路５２，５４，５６の遅延時間を前述の時間差以上の範囲で適宜設定することによって、一連のリードアクセスの回数を４回、８回というように２n 回とすれば、前述のようにマルチプレクサ５８の回路規模を削減することができるという利点がある。
【００６０】
本発明のデータアクセス装置は、基本的に以上のようなものである。
なお、本発明は、上記実施例に限定されるものではない。例えば、アドレス信号やデータ信号のビット長、メモリサイズ等は何ら限定されないし、ウェイト信号や遅延信号、制御信号等の信号極性も適宜変更してもよい。また、インクリメンタや遅延逓倍器の具体的な回路構成も何ら限定されず、同じ機能を有する他の構成回路によって実現してもよい。
【００６１】
さらに、上記実施例では、ＣＰＵがメモリの連続するアドレスをリードアクセスする場合の一例を挙げて説明したが、ライトアクセスの場合も同じようにして実現可能であることは言うまでもないことである。また、本発明は、メモリを制御するための制御信号を適宜生成することにより、メモリとしてＳＲＡＭやＤＲＡＭ等の各種のＲＡＭに適用可能であるし、リードアクセス専用とすれば、各種のＲＯＭにも適用可能である。
【００６２】
以上、本発明のデータアクセス装置について詳細に説明したが、本発明は上記実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【００６３】
【発明の効果】
以上詳細に説明した様に、本発明のデータアクセス装置は、プロセッサが次のサイクルでアクセスするアドレス信号を生成し、メモリのアクセスタイムを満足するようにアドレス信号のパルス幅を延長してメモリに供給し、アドレス信号に応じてメモリから出力されるデータを保持して、次のサイクルでプロセッサに供給し、プロセッサが、メモリの連続するアドレスを所定回数アクセスする毎に１回のウェイトサイクルを挿入するよう制御するものである。
これにより、本発明のデータアクセス装置によれば、プロセッサから、プロセッサのサイクルタイムよりも長いアクセスタイムで動作するメモリに記憶されている複数のデータを連続的にアクセスする場合であっても、不要なウェイトサイクルが挿入される回数を激減させることができ、プロセッサの性能低下を抑えて高速にデータをアクセスすることができる。
【図面の簡単な説明】
【図１】  本発明のデータアクセス装置の一実施例の構成概念図である。
【図２】  （ａ），（ｂ）および（ｃ）は、制御信号生成回路の一実施例の概念図である。
【図３】  インクリメンタの一実施例の概念図である。
【図４】  遅延逓倍器の一実施例の概念図である。
【図５】  遅延逓倍器の動作を表す一実施例のタイミングチャートである。
【図６】  本発明のデータアクセス装置の動作を表す一実施例のタイミングチャートである。
【図７】  従来のデータアクセス装置の一例の構成概念図である。
【図８】  従来のデータアクセス装置の動作を表す一例のタイミングチャートである。
【図９】  従来のデータアクセス装置の動作を表す別の例のタイミングチャートである。
【符号の説明】
１０，６２  データアクセス装置
１２  プロセッサ
１４  メモリ
１６  プリフェッチアドレス生成回路
１８  アドレスラッチ
２０  データラッチ
２２  ＮＡ＿Ｇ生成回路
２４  ＮＯＥ生成回路
２６  ＮＤ＿Ｇ生成回路
２８  インクリメンタ
３０  遅延逓倍器
３２  Ａ＿Ｇ生成回路
３４  ＯＥ生成回路
３６  Ｄ＿Ｇ生成回路
３８，４０，４６，６０  ＡＮＤゲート
４２  ＮＡＮＤゲート
４４  ＋１回路
４８  フリップフロップ
５０  コンパレータ
５２，５４，５６  遅延回路
５８  マルチプレクサ
【図１】
0003825198.tif 000002
【図２】
0003825198.tif 000003
【図３】
0003825198.tif 000004
【図４】
0003825198.tif 000005
【図５】
0003825198.tif 000006
【図６】
0003825198.tif 000007
【図７】
0003825198.tif 000008
【図８】
0003825198.tif 000009
【図９】
0003825198.tif 000010