JP3825198B2 - Data access device - Google Patents

Data access device Download PDF

Info

Publication number
JP3825198B2
JP3825198B2 JP09158499A JP9158499A JP3825198B2 JP 3825198 B2 JP3825198 B2 JP 3825198B2 JP 09158499 A JP09158499 A JP 09158499A JP 9158499 A JP9158499 A JP 9158499A JP 3825198 B2 JP3825198 B2 JP 3825198B2
Authority
JP
Japan
Prior art keywords
signal
memory
data
generation circuit
delay
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 - Lifetime
Application number
JP09158499A
Other languages
Japanese (ja)
Other versions
JP2000284959A (en
Inventor
護 角田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP09158499A priority Critical patent/JP3825198B2/en
Publication of JP2000284959A publication Critical patent/JP2000284959A/en
Application granted granted Critical
Publication of JP3825198B2 publication Critical patent/JP3825198B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、プロセッサから、メモリの連続するアドレスに記憶されている複数のデータを連続的にアクセスするデータアクセス装置に関するものである。
【0002】
【従来の技術】
プロセッサ(以下、CPUという)からメモリのデータをアクセスするデータアクセス装置において、CPUのサイクルタイムに対しかりにメモリのアクセスタイムの余裕がなく、CPUが1クロック時間でメモリをアクセスすることができない場合には、必要な個数のウェイトサイクルを挿入することにより、メモリのデータを正しくアクセスすることができるようにしている。
【0003】
しかし、CPUがメモリのデータをアクセスする毎にウェイトサイクルを挿入すると、そのパフォーマンスは著しく低下する。これに対して、従来より、例えばメモリの連続するアドレスに記憶されている複数のデータをCPUが連続的にリードアクセスする場合に、CPUが次にアクセスするメモリアドレスを出力し、これに応じてメモリから出力されるデータをあらかじめラッチに保持しておくのが有効な手法であることが知られている。
【0004】
以下、従来のデータアクセス装置の構成、動作およびその問題点について説明する。
図7は、従来のデータアクセス装置の一例の構成概念図である。同図に示すデータアクセス装置62は、CPU12と、メモリ14と、プリフェッチアドレス生成回路16と、アドレスラッチ18と、データラッチ20と、A_G生成回路32と、OE生成回路34と、D_G生成回路36とを有する。
【0005】
なお、以下の説明では、前述のように、CPU12のサイクルタイムに対し、メモリ14のアクセスタイムの余裕がない場合に有効な、メモリ14の連続するアドレスに格納されている複数のデータをCPU12が連続的にリードする場合のデータアクセス装置62の動作から説明する。
ここで、CPU12、プリフェッチアドレス生成回路16、A_G生成回路32、OE生成回路34およびD_G生成回路36にはクロック信号CLKが入力されており、これらの回路はクロック信号CLKに同期して動作する。
【0006】
図8の動作タイミングチャートに示すように、まず、クロック信号CLKの立ち上がりに同期して、CPU12のA<15:0>端子からCPUアドレス信号CPU_A<15:0>が出力され、プリフェッチアドレス生成回路16に供給される。プリフェッチアドレス生成回路16は、CPUアドレス信号CPU_A<15:0>をインクリメント(+1)し、これをプリフェッチアドレス信号P_A<15:0>として出力する。
【0007】
プリフェッチアドレス生成回路16から出力されるプリフェッチアドレス信号P_A<15:0>は、アドレスラッチ18のD端子に入力される。プリフェッチアドレス信号P_A<15:0>は、制御信号A_Gによってアドレスラッチ18に保持され、そのQ端子からは、アドレスラッチ18に保持されたプリフェッチアドレス信号P_A<15:0>が、メモリアドレス信号LP_A<15:0>として出力される。
【0008】
ここで、A_G生成回路32は、クロック信号CLKの立ち下りに同期して、プリフェッチアドレス生成回路16から出力されるプリフェッチアドレス信号P_A<15:0>をアドレスラッチ18に保持するためのタイミング信号となる制御信号A_G、図示例では、クロック信号CLKがローレベルの期間にハイレベルとなる制御信号A_Gを発生する。この制御信号A_Gは、前述のアドレスラッチ18のG端子に入力される。
【0009】
なお、アドレスラッチ18は、G端子に入力される制御信号A_Gがハイレベルの間は、プリフェッチアドレス信号P_A<15:0>を通過させて、これをメモリアドレス信号LP_A<15:0>として出力する。また、制御信号A_Gが立ち下る瞬間のプリフェッチアドレス信号P_A<15:0>を保持するとともに、制御信号A_Gがローレベルの間、これをメモリアドレス信号LP_A<15:0>として出力する。
【0010】
続いて、アドレスラッチ18から出力されるメモリアドレス信号LP_A<15:0>は、メモリ14のA<15:0>端子に入力される。メモリ14のD<7:0>端子からは、例えばメモリアドレス信号LP_A<15:0>の値が変化してから、または、制御信号OEがハイレベルとなってから所定のアクセスタイムの後(図中左右矢印)、メモリアドレス信号LP_A<15:0>に相当するアドレスに記憶されているメモリデータ信号MD<7:0>が出力される。
【0011】
ここで、OE生成回路34は、クロック信号CLKの立ち下りに同期して、メモリ14からデータを読み出すためのタイミング信号となる制御信号OE、図示例では、クロック信号CLKがローレベルの期間にハイレベルとなる制御信号OEを発生する。なお、制御信号OEは、図示例では、ハイレベルの期間にメモリ14からデータをリードするよう制御する信号である。この制御信号OEは、前述のメモリ14のOE端子に入力される。
【0012】
続いて、メモリ14から出力されるメモリデータ信号MD<7:0>は、データラッチ20のD端子に入力される。メモリデータ信号MD<7:0>は、制御信号D_Gによってデータラッチ20に保持され、そのQ端子からは、データラッチ20に保持されたデータ信号MD<7:0>が、ラッチデータ信号LD<7:0>として出力される。
【0013】
ここで、D_G生成回路36は、クロック信号の立ち上がりに同期して、メモリ14から読み出されるメモリデータ信号MD<7:0>をデータラッチ20に保持するためのタイミング信号となる制御信号D_G、図示例では、クロック信号CLKがハイレベルの期間にハイレベルとなる制御信号D_Gを発生する。この制御信号D_Gは、前述のデータラッチ20のG端子に入力される。
【0014】
なお、データラッチ20も、アドレスラッチ18の場合と同じく、G端子に入力される制御信号D_Gがハイレベルの間は、メモリデータ信号MD<7:0>を通過させて、これをラッチデータ信号LD<7:0>として出力する。また、制御信号D_Gが立ち下る瞬間のメモリデータ信号MD<7:0>を保持するとともに、制御信号D_Gがローレベルの間、これをラッチデータ信号LD<7:0>として出力する。
【0015】
そして、最後に、データラッチ20から出力されるラッチデータ信号LD<7:0>はCPU12のD<7:0>端子に入力され、次のサイクルのクロック信号CLKの立ち上がり(図中上矢印)に同期してCPUにフェッチされる。以上のようにして、データアクセス装置62では、ウェイトサイクルを挿入することなく、CPU12からメモリ14の連続するアドレスに記憶されている複数のデータを連続的にリードすることができる。
【0016】
しかし、データアクセス装置62では、メモリ14のアクセスタイムがさらに長くなり、CPU12のサイクルタイムよりも長くなると、図9の動作タイミングチャートに示すように、メモリ14からメモリデータMD<7:0>が出力されるのがさらに遅くなるため、制御信号D_Gでデータラッチ20に保持することができなくなる。この場合、メモリ14をアクセスする毎にウェイトサイクルを挿入してリード動作を延長させる必要があり、CPU12のパフォーマンスが著しく低下するという問題があった。
【0017】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点をかえりみて、プロセッサから、プロセッサのサイクルタイムよりも長いアクセスタイムで動作するメモリの連続するアドレスに記憶されている複数のデータを連続的に高速にアクセスすることができるデータアクセス装置を提供することにある。
【0018】
【課題を解決するための手段】
上記目的を達成するために、本発明は、所定のサイクルタイムで動作するプロセッサから、当該プロセッサのサイクルタイムよりも長いアクセスタイムで動作するメモリを順次アクセスするデータアクセス装置であって、
前記プロセッサが次のサイクルでアクセスするアドレス信号を生成する手段と、前記メモリのアクセスタイムを満足するように前記アドレス信号のパルス幅を延長して前記メモリに供給する手段と、前記アドレス信号に応じて前記メモリから出力されるデータを保持し、前記次のサイクルで前記プロセッサに供給する手段と、前記プロセッサが、前記メモリの連続するアドレスを所定回数アクセスする毎に1回のウェイトサイクルを挿入するよう制御する手段とを有することを特徴とするデータアクセス装置を提供するものである。
【0019】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、本発明のデータアクセス装置を詳細に説明する。
【0020】
図1は、本発明のデータアクセス装置の一実施例の構成概念図である。同図に示すデータアクセス装置10は、プロセッサ(以下、CPUという)12と、メモリ14と、プリフェッチアドレス生成回路16と、アドレスラッチ18と、データラッチ20と、NA_G生成回路22と、NOE生成回路24と、ND_G生成回路26と、ゼロ初期化機能付きインクリメンタ28と、遅延逓倍器30とを有する。
【0021】
すなわち、本発明のデータアクセス装置10は、図7に示す従来のデータアクセス装置と比較して、A_G生成回路32、OE生成回路34およびD_G生成回路36の代わりに、各々対応するNA_G生成回路22、NOE生成回路24およびND_G生成回路26を用いている点と、さらにインクリメンタ28および遅延逓倍器30を有する点とが相違するだけであるから、同一の構成要件についての詳細な説明は省略する。
【0022】
同図に示すように、クロック信号CLKは、CPU12、プリフェッチアドレス生成回路16、NA_G生成回路22、NOE生成回路24、ND_G生成回路26および遅延逓倍器30に入力されている。インクリメンタ28からは、ウェイト信号WAITおよびインクリメント信号INC<1:0>が出力されており、ウェイト信号WAITは、CPU12、NA_G生成回路22、NOE生成回路24およびND_G生成回路26に、インクリメント信号INC<1:0>は、選択信号MUL<1:0>として遅延逓倍器30に各々入力されている。また、遅延逓倍器30からは遅延信号DLYが出力され、NA_G生成回路22、NOE生成回路24およびND_G生成回路26に入力されている。
【0023】
続いて、図2に、制御信号生成回路の一実施例の概念図を示す。
まず、同図(a)に示すNA_G生成回路22は、A_G生成回路32と、ANDゲート38とを有する。A_G生成回路32は、理解が容易となるように、本実施例では、例えば図7に示す従来のデータアクセス装置62で使用されているものと同じ構成のものとする。なお、A_G生成回路32の具体的な回路構成は限定されず、従来公知の構成のものはいずれも適用可能である。
【0024】
ここで、A_G生成回路32からは制御信号A_Gが出力され、ANDゲート38の第1の入力端子に入力されている。ANDゲート38の第2の入力端子にはウェイト信号WAITが入力され、その第3の反転入力端子には遅延信号DLYが入力され、ANDゲート38からは、プリフェッチアドレス生成回路16から出力されるプリフェッチアドレス信号P_A<15:0>をアドレスラッチ18に保持するためのタイミング信号となる制御信号NA_Gが出力されている。
【0025】
また、同図(b)に示すNOE生成回路24は、OE生成回路34と、ANDゲート40とを有する。同じく、OE生成回路34は従来公知の構成のものとする。OE生成回路34からは制御信号OEが出力され、ANDゲート40の第1の入力端子に入力されている。ANDゲート40の第2の入力端子にはウェイト信号WAITが入力され、その第3の反転入力端子には遅延信号DLYが入力され、ANDゲート40からは、メモリ14からデータを読み出すためのタイミング信号となる制御信号NOEが出力されている。
【0026】
同図(c)に示すND_G生成回路26は、D_G生成回路36と、NANDゲート42とを有する。同じく、D_G生成回路は従来公知の構成のものとする。D_G生成回路36からは制御信号D_Gが出力され、NANDゲート42の第1の反転入力端子に入力されている。NANDゲート42の第2の入力端子にはウェイト信号WAITが入力され、その第3の反転入力端子には遅延信号DLYの反転信号が入力され、NANDゲート42からは、メモリ14から読み出されるメモリデータ信号MD<7:0>をデータラッチ20に保持するためのタイミング信号となる制御信号ND_Gが出力されている。
【0027】
なお、本実施例では、A_G生成回路32、OE生成回路34およびD_G生成回路36の動作は、例えば図7に示すデータアクセス装置62で使用されているものと同じであり、制御信号A_G,OEおよびD_Gの極性も同じであるとする。すなわち、いずれの制御信号A_G,OEおよびD_Gもアクティブ状態はハイレベルであり、例えば制御信号OEは、メモリ14からデータを読み出す場合にハイレベルになるものとする。
【0028】
また、制御信号NA_G,NOEおよびND_Gと、制御信号A_G,OEおよびD_Gとの相違点は、後述するように、ウェイト信号WAITがアクティブ状態であるローレベルとなった場合に、非アクティブ状態であるローレベルとなる点と、同じく、遅延信号DLYがアクティブ状態であるハイレベルとなった場合に、非アクティブ状態であるローレベルとなる点である。なお、詳細については、以下の説明で明らかになるはずである。
【0029】
続いて、図3に、インクリメンタの一実施例の概念図を示す。図示例のインクリメンタ28は、+1回路44と、ANDゲート46と、フリップフロップ48と、コンパレータ50とを有する。
【0030】
ここで、+1回路44からの出力はANDゲート46の一方の入力端子に入力され、ANDゲート46の出力は、フリップフロップ48のD<2:0>端子に入力されている。フリップフロップ48のCLK反転端子には、OE生成回路34によって生成される制御信号OEが入力され、そのリセット反転端子にはリセット信号RESETが入力され、そのQ<2:0>端子からは、インクリメント信号INC<2:0>が出力されている。
【0031】
インクリメント信号INC<2:0>は+1回路44およびコンパレータ50の一方の入力端子に入力される他、その一部がインクリメント信号INC<1:0>として出力されている。コンパレータ50の他方の入力端子には定数‘4(2進数表示では100:binと記す)’が入力され、その出力はANDゲート46の他方の入力端子に入力されるとともに、ウェイト信号WAITとして出力されている。
【0032】
ここで、ウェイト信号WAITは、CPU12がメモリ14をアクセスする場合に、ウェイトサイクルを挿入するかどうかを制御するための信号であって、本実施例では、ウェイト信号WAITがアクティブ状態であるローレベルの時にウェイトサイクルが挿入されるものとする。
【0033】
インクリメンタ28では、まず、リセット信号RESETが一旦ローレベルとされてフリップフロップ48がリセットされ、その出力であるインクリメント信号INC<2:0>の値は‘000:bin’となる。
【0034】
その後、インクリメント信号INC<2:0>は+1回路44によってインクリメントされ、ANDゲート46を介してフリップフロップ48に入力され、制御信号OEの立ち下りでフリップフロップ48に再び保持される。以後同様にして、制御信号OEが立ち下る毎に、インクリメント信号INC<2:0>の値はインクリメントされる。なお、インクリメント信号INC<1:0>は、選択信号MUL<1:0>として遅延逓倍器30に入力される。
【0035】
コンパレータ50は、インクリメント信号INC<2:0>の値と定数‘100:bin’とを比較し、一致を検出した場合にウェイト信号WAITとしてローレベルを出力する。ウェイト信号WAITはANDゲート46を介してフリップフロップ48のD<2:0>端子に入力され、その次の制御信号OEの立ち下りでフリップフロップ48が初期化され、インクリメント信号INC<2:0>の値は‘000:bin’に戻る。以後、前述の動作が繰り返し行われる。
【0036】
すなわち、インクリメンタ28では、インクリメント信号INC<2:0>の値が、制御信号OEの立ち下りに同期して、‘000→001→010→011→100:bin’の順にインクリメントされる。そして、インクリメント信号INC<2:0>の値が‘100:bin’になると、ウェイト信号WAITとしてアクティブ状態であるローレベルが出力され、インクリメント信号INC<2:0>の値は‘000:bin’に初期化される。
【0037】
続いて、図4に、遅延逓倍器の一実施例の概念図を示す。図示例の遅延逓倍器30は、遅延回路(ディレイ)52,54,56と、マルチプレクサ58と、ANDゲート60とを有する。なお、本実施例では、遅延回路52,54,56の遅延時間は同じであるとする。
【0038】
ここで、遅延回路52にはクロック信号CLKが入力され、その出力は、次段の遅延回路54に入力されるとともに、遅延信号DL1として、マルチプレクサ58の01端子に入力されている。同じく、遅延回路54の出力は、次段の遅延回路56に入力されるとともに、遅延信号DL2として、マルチプレクサ58の10端子に入力され、遅延回路56の出力は、遅延信号DL3としてマルチプレクサ58の11端子に入力されている。
【0039】
マルチプレクサ58の00端子はローレベル(L)に固定され、その選択端子には、前述のインクリメンタ28から出力されるインクリメント信号INC<1:0>が選択信号MUL<1:0>として入力され、マルチプレクサ58の出力信号DLXは、ANDゲート60の一方の入力端子に入力されている。また、ANDゲート60の他方の反転入力端子にはクロック信号CLKが入力され、ANDゲート60からは遅延信号DLYが出力されている。
【0040】
遅延逓倍器30では、図5の動作タイミングチャートに示すように、遅延回路52,54,56により、クロック信号CLKが各々所定の一定時間ずつ遅延され、遅延回路52,54,56から、各々遅延信号DL1,DL2,DL3として出力される。マルチプレクサ58からは、出力信号DLXとして、選択信号MUL<1:0>の値に応じて、00端子、01端子、10端子または11端子に入力される信号が選択的に出力される。
【0041】
すなわち、図示例では、選択信号MUL<1:0>の値が‘00:bin’の場合に、マルチプレクサ58の00端子に入力されるローレベルが選択的に出力され、以下同じく、‘01:bin’の場合には01端子に入力される遅延信号DL1が、‘10:bin’の場合には10端子に入力される遅延信号DL2が、‘11:bin’の場合には、11端子に入力される遅延信号DL3が各々選択的に出力される。
【0042】
そして、ANDゲート60からは、遅延信号DLYとして、選択信号MUL<1:0>の値が‘00:bin’の場合にローレベルが出力され、これ以外の場合には、選択信号MUL<1:0>の値に応じて、前述のようにマルチプレクサ58から選択的に出力される遅延信号DL1,DL2またはDL3の遅延時間に相当するパルス幅のハイレベルのパルスがクロック信号CLKの立ち下りに同期して出力される。以後、前述の動作が繰り返し行われる。
【0043】
なお、選択信号MUL<1:0>は、前述のようにインクリメント信号INC<1:0>のことであるから、図5の動作タイミングチャートに示すように、インクリメント信号INC<2:0>の値が‘000→001→010→011→100:bin’とインクリメントされた後、‘000:bin’に初期化されるのに応じて、選択信号MUL<1:0>の値は、‘00→01→10→11→00:bin’の順に繰り返し変化する。
【0044】
本発明のデータアクセス装置は、基本的に以上のような構成のものである。なお、上記図示例は、理解を容易とするために、CPU12が、メモリ14の連続するアドレスに記憶されている複数のデータを高速にリードアクセスする場合の構成のみを示している。したがって、CPU12が、メモリ14のデータをランダムにアクセスする場合には、アドレス信号、データ信号および制御信号をメモリ14に直接接続する必要があるため、両者の切り替えが可能となるようにマルチプレクサを設ける必要がある。
【0045】
次に、図6に示す動作タイミングチャートを参照しながら、本発明のデータアクセス装置の動作について説明する。
なお、以下の説明では、CPU12のサイクルタイムよりも、メモリ14のアクセスタイムの方が長い場合に、メモリ14の連続するアドレスに格納されている複数のデータをCPU12が連続的にリードする場合のデータアクセス装置62の動作について説明する。
【0046】
図6の動作タイミングチャートに示すように、CPU12からは、値の連続するCPUアドレス信号CPU_A<15:0>が順に出力される。CPUアドレス信号CPU_A<15:0>は、プリフェッチアドレス生成回路16によってインクリメントされ、CPU12が次のサイクルでアクセスするCPUアドレス信号CPU_A<15:0>の値に等しい値を持つプリフェッチアドレス信号P_A<15:0>として出力される。
【0047】
インクリメント信号INC<2:0>の値は、制御信号OEの立ち下り、すなわち、クロック信号CLKの立ち上がりに同期して、‘0→1→2→3→4(10進数)’の順に1サイクル毎にインクリメントされ、その後、‘0’に初期化され、以後同じ動作を繰り返す。
【0048】
まず、1サイクル目のように、インクリメント信号INC<2:0>すなわち選択信号MUL<1:0>の値が‘0’の場合、ウェイト信号WAITはハイレベルとなり、遅延信号DLYはローレベルとなる。これに応じて、制御信号NA_GおよびNOEは、クロック信号CLKがローレベルの期間にハイレベルとなり、制御信号ND_Gは、クロック信号CLKがハイレベルの期間にハイレベルとなる。
【0049】
続いて、2サイクル目のように、インクリメント信号INC<2:0>の値が‘1’の場合、遅延信号DLYとして、クロック信号CLKの立ち下りに同期して、遅延回路52の遅延時間に相当するパルス幅を有するハイレベルのパルスが出力される。これに応じて、制御信号NA_GおよびNOEの立ち上がり、および、制御信号ND_Gの立ち下りのタイミングが、遅延回路52の遅延時間に相当する時間遅延される。
【0050】
同じく、3および4サイクル目でも、遅延信号DLYとして、クロック信号CLKの立ち下りに同期して、それぞれ遅延回路52,54および遅延回路52,54,56の遅延時間に相当するハイレベルのパルスが出力され、これに応じて、制御信号NA_GおよびNOEの立ち上がり、および、制御信号ND_Gの立ち下りのタイミングが、それぞれ遅延回路52,54および遅延回路52,54,56の遅延時間に相当する時間遅延される。
【0051】
プリフェッチアドレス信号P_A<15:0>は、制御信号NA_Gによってアドレスラッチ18に保持され、メモリアドレス信号LP_A<15:0>として出力される。なお、図6の動作タイミングチャートを見れば明らかなように、各々のサイクルでのメモリアドレス信号LP_A<15:0>は、CPUアドレス信号CPU_A<15:0>と比べて、メモリ14のアクセスタイムを満足するように、遅延回路52の遅延時間に相当する時間の分だけ長く保持される。
【0052】
メモリ14からは、メモリアドレス信号LP_A<15:0>の値が変化してから、または、制御信号NOEがハイレベルとなってから所定のアクセスタイムの後(図中左右矢印)、メモリアドレス信号LP_A<15:0>に相当するアドレスに記憶されているメモリデータ信号MD<7:0>が出力される。本実施例では、メモリデータ信号MD<7:0>は、これに対応するプリフェッチアドレス信号P_A<15:0>が出力されている次のサイクルで出力される。
【0053】
メモリデータ信号MD<7:0>は、制御信号ND_Gによってデータラッチ20に保持され、ラッチデータ信号LD<7:0>として出力される。そして、ラッチデータ信号LD<7:0>は、クロック信号CLKの立ち上がり(図中上矢印)に同期してCPUにフェッチされる。以上のように、CPU12は、1〜4サイクル目までは、ウェイトサイクルを挿入することなく、メモリ14の連続するアドレスに記憶されている複数のデータを連続的にリードする。
【0054】
続いて、5サイクル目のように、インクリメント信号INC<2:0>の値が‘4’の場合、クロック信号CLKの立ち上がりに同期して、ウェイト信号WAITがアクティブ状態であるローレベルとなる。また、インクリメント信号INC<1:0>すなわち選択信号MUL<1:0>の値は‘0’であるため、インクリメント信号INC<2:0>の値が‘0’の場合と同じように、遅延信号DLYはローレベルとなる。
【0055】
ウェイト信号WAITがローレベルになると、制御信号NA_GおよびNOEは非アクティブ状態のローレベルとなり、制御信号ND_Gも非アクティブ状態のハイレベルとなる。また、CPU12は、6サイクル目のクロック信号CLKの立ち上がりでウェイト信号WAITのローレベルをサンプリングし、6サイクル目のCPUアドレス信号CPU_A<15:0>の値を5サイクル目と同じ値とする。すなわち、ウェイトサイクルが挿入される。そして、6サイクル目以降は、前述の動作が繰り返し行われる。
【0056】
ここで、上記実施例では、メモリアドレスLP_A<15:0>のパルス幅を、メモリ14のアクセスタイムを満足するように引き延ばして、CPU12から、メモリ14の連続するアドレスを4回リードアクセスし、その後、パルス幅の引き延ばしが限界になると1回のウェイトサイクルを挿入する動作が繰り返し行われる。したがって、一連の動作では5種類の状態が存在するため、この5種類の状態を区別するために、インクリメント信号INCとしては3ビットの情報量が必要である。
【0057】
ウェイトサイクルでは、遅延信号DLYの状態に係わらず、制御信号NA_G,NOEおよびND_Gの状態が決定される。このため、本実施例では、ウェイトサイクルに、遅延信号DLYとして1回目のリードアクセスの場合と同じローレベルを出力している。したがって、本実施例では、4回のリードアクセスに相当する4種類の状態に応じて、ローレベル(L)または遅延信号DL1〜3の内の1つを選択的に出力する4入力のマルチプレクサ58を使用することができ、選択信号MULを3ビットから1ビット削減して2ビットとし、遅延逓倍器30の回路規模を削減している。
【0058】
これに対して、例えば5回のリードアクセスに対して1回のウェイトサイクルが必要な場合には、6種類の状態が存在する。この場合も、インクリメント信号INCとしては同じ3ビットの情報量が必要である。また、ウェイトサイクルでの遅延信号DLYの状態は関係ないものの、3ビットの選択信号MULを使用して、5回のリードアクセスに相当する5種類の状態の内の1つを選択的に出力する5入力のマルチプレクサを使用する必要がある。
【0059】
何回リードアクセスをすると、ウェイトサイクルを挿入しなければならないかというのは、CPU12のサイクルタイムと、メモリ14のアクセスタイムと、両者の時間差によって決定される。しかし、遅延回路52,54,56の遅延時間を前述の時間差以上の範囲で適宜設定することによって、一連のリードアクセスの回数を4回、8回というように2n 回とすれば、前述のようにマルチプレクサ58の回路規模を削減することができるという利点がある。
【0060】
本発明のデータアクセス装置は、基本的に以上のようなものである。
なお、本発明は、上記実施例に限定されるものではない。例えば、アドレス信号やデータ信号のビット長、メモリサイズ等は何ら限定されないし、ウェイト信号や遅延信号、制御信号等の信号極性も適宜変更してもよい。また、インクリメンタや遅延逓倍器の具体的な回路構成も何ら限定されず、同じ機能を有する他の構成回路によって実現してもよい。
【0061】
さらに、上記実施例では、CPUがメモリの連続するアドレスをリードアクセスする場合の一例を挙げて説明したが、ライトアクセスの場合も同じようにして実現可能であることは言うまでもないことである。また、本発明は、メモリを制御するための制御信号を適宜生成することにより、メモリとしてSRAMやDRAM等の各種のRAMに適用可能であるし、リードアクセス専用とすれば、各種のROMにも適用可能である。
【0062】
以上、本発明のデータアクセス装置について詳細に説明したが、本発明は上記実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【0063】
【発明の効果】
以上詳細に説明した様に、本発明のデータアクセス装置は、プロセッサが次のサイクルでアクセスするアドレス信号を生成し、メモリのアクセスタイムを満足するようにアドレス信号のパルス幅を延長してメモリに供給し、アドレス信号に応じてメモリから出力されるデータを保持して、次のサイクルでプロセッサに供給し、プロセッサが、メモリの連続するアドレスを所定回数アクセスする毎に1回のウェイトサイクルを挿入するよう制御するものである。
これにより、本発明のデータアクセス装置によれば、プロセッサから、プロセッサのサイクルタイムよりも長いアクセスタイムで動作するメモリに記憶されている複数のデータを連続的にアクセスする場合であっても、不要なウェイトサイクルが挿入される回数を激減させることができ、プロセッサの性能低下を抑えて高速にデータをアクセスすることができる。
【図面の簡単な説明】
【図1】 本発明のデータアクセス装置の一実施例の構成概念図である。
【図2】 (a),(b)および(c)は、制御信号生成回路の一実施例の概念図である。
【図3】 インクリメンタの一実施例の概念図である。
【図4】 遅延逓倍器の一実施例の概念図である。
【図5】 遅延逓倍器の動作を表す一実施例のタイミングチャートである。
【図6】 本発明のデータアクセス装置の動作を表す一実施例のタイミングチャートである。
【図7】 従来のデータアクセス装置の一例の構成概念図である。
【図8】 従来のデータアクセス装置の動作を表す一例のタイミングチャートである。
【図9】 従来のデータアクセス装置の動作を表す別の例のタイミングチャートである。
【符号の説明】
10,62 データアクセス装置
12 プロセッサ
14 メモリ
16 プリフェッチアドレス生成回路
18 アドレスラッチ
20 データラッチ
22 NA_G生成回路
24 NOE生成回路
26 ND_G生成回路
28 インクリメンタ
30 遅延逓倍器
32 A_G生成回路
34 OE生成回路
36 D_G生成回路
38,40,46,60 ANDゲート
42 NANDゲート
44 +1回路
48 フリップフロップ
50 コンパレータ
52,54,56 遅延回路
58 マルチプレクサ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data access device for continuously accessing a plurality of data stored at consecutive addresses in a memory from a processor.
[0002]
[Prior art]
In a data access device that accesses memory data from a processor (hereinafter referred to as a CPU), the CPU cannot access the memory in one clock time because there is not enough memory access time relative to the CPU cycle time. In this case, memory data can be correctly accessed by inserting a necessary number of wait cycles.
[0003]
However, if a wait cycle is inserted every time the CPU accesses memory data, the performance is significantly degraded. On the other hand, conventionally, when the CPU continuously accesses a plurality of data stored in consecutive addresses of the memory, for example, the memory address to be accessed next by the CPU is output. It is known that it is an effective technique to hold data output from the memory in a latch in advance.
[0004]
The configuration, operation, and problems of the conventional data access device will be described below.
FIG. 7 is a conceptual diagram of an example of a conventional data access device. The data access device 62 shown in the figure includes a CPU 12, a memory 14, a prefetch address generation circuit 16, an address latch 18, a data latch 20, an A_G generation circuit 32, an OE generation circuit 34, and a D_G generation circuit 36. And have.
[0005]
In the following description, as described above, the CPU 12 stores a plurality of data stored at consecutive addresses in the memory 14 that are effective when the access time of the memory 14 is not sufficient with respect to the cycle time of the CPU 12. The operation of the data access device 62 when reading continuously will be described.
Here, the clock signal CLK is input to the CPU 12, the prefetch address generation circuit 16, the A_G generation circuit 32, the OE generation circuit 34, and the D_G generation circuit 36, and these circuits operate in synchronization with the clock signal CLK.
[0006]
As shown in the operation timing chart of FIG. 8, first, the CPU address signal CPU_A <15: 0> is output from the A <15: 0> terminal of the CPU 12 in synchronization with the rising edge of the clock signal CLK, and the prefetch address generation circuit 16 is supplied. The prefetch address generation circuit 16 increments (+1) the CPU address signal CPU_A <15: 0> and outputs it as a prefetch address signal P_A <15: 0>.
[0007]
The prefetch address signal P_A <15: 0> output from the prefetch address generation circuit 16 is input to the D terminal of the address latch 18. The prefetch address signal P_A <15: 0> is held in the address latch 18 by the control signal A_G, and the prefetch address signal P_A <15: 0> held in the address latch 18 is supplied from the Q terminal to the memory address signal LP_A. It is output as <15: 0>.
[0008]
Here, the A_G generation circuit 32 is a timing signal for holding the prefetch address signal P_A <15: 0> output from the prefetch address generation circuit 16 in the address latch 18 in synchronization with the falling edge of the clock signal CLK. The control signal A_G is generated, and in the illustrated example, the control signal A_G that is at a high level is generated during a period when the clock signal CLK is at a low level. The control signal A_G is input to the G terminal of the address latch 18 described above.
[0009]
The address latch 18 passes the prefetch address signal P_A <15: 0> while the control signal A_G input to the G terminal is at a high level, and outputs it as the memory address signal LP_A <15: 0>. To do. Further, the prefetch address signal P_A <15: 0> at the moment when the control signal A_G falls is held, and is output as the memory address signal LP_A <15: 0> while the control signal A_G is at the low level.
[0010]
Subsequently, the memory address signal LP_A <15: 0> output from the address latch 18 is input to the A <15: 0> terminal of the memory 14. From the D <7: 0> terminal of the memory 14, for example, after the value of the memory address signal LP_A <15: 0> changes or after a predetermined access time after the control signal OE becomes high level ( The memory data signal MD <7: 0> stored at the address corresponding to the memory address signal LP_A <15: 0> is output.
[0011]
Here, the OE generation circuit 34 is synchronized with the falling edge of the clock signal CLK, and becomes a control signal OE serving as a timing signal for reading data from the memory 14. In the illustrated example, the OE generation circuit 34 is high during the period when the clock signal CLK is at a low level. A control signal OE to be level is generated. In the illustrated example, the control signal OE is a signal that controls to read data from the memory 14 during a high level period. This control signal OE is input to the OE terminal of the memory 14 described above.
[0012]
Subsequently, the memory data signal MD <7: 0> output from the memory 14 is input to the D terminal of the data latch 20. The memory data signal MD <7: 0> is held in the data latch 20 by the control signal D_G, and from the Q terminal, the data signal MD <7: 0> held in the data latch 20 becomes the latch data signal LD <. 7: 0>.
[0013]
Here, the D_G generation circuit 36 controls the control signal D_G, which is a timing signal for holding the memory data signal MD <7: 0> read from the memory 14 in the data latch 20 in synchronization with the rising edge of the clock signal. In the illustrated example, a control signal D_G that is high during a period when the clock signal CLK is high is generated. The control signal D_G is input to the G terminal of the data latch 20 described above.
[0014]
As in the case of the address latch 18, the data latch 20 also passes the memory data signal MD <7: 0> while the control signal D_G input to the G terminal is at a high level, and passes it to the latch data signal. Output as LD <7: 0>. Further, the memory data signal MD <7: 0> at the moment when the control signal D_G falls is held, and this is output as the latch data signal LD <7: 0> while the control signal D_G is at the low level.
[0015]
Finally, the latch data signal LD <7: 0> output from the data latch 20 is input to the D <7: 0> terminal of the CPU 12, and the rising edge of the clock signal CLK in the next cycle (upward arrow in the figure). Is fetched by the CPU synchronously. As described above, the data access device 62 can continuously read a plurality of data stored at consecutive addresses in the memory 14 from the CPU 12 without inserting a wait cycle.
[0016]
However, in the data access device 62, when the access time of the memory 14 becomes longer and becomes longer than the cycle time of the CPU 12, the memory data MD <7: 0> is transferred from the memory 14 as shown in the operation timing chart of FIG. Since the output is further delayed, it cannot be held in the data latch 20 with the control signal D_G. In this case, each time the memory 14 is accessed, it is necessary to insert a wait cycle to extend the read operation, resulting in a problem that the performance of the CPU 12 is remarkably lowered.
[0017]
[Problems to be solved by the invention]
The object of the present invention is to look back at the problems based on the above prior art, and from a processor, a plurality of data stored at consecutive addresses in a memory that operates with an access time longer than the cycle time of the processor is continuously high-speed. It is an object of the present invention to provide a data access device that can access the network.
[0018]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides a data access device that sequentially accesses a memory that operates at an access time longer than the cycle time of the processor from a processor that operates at a predetermined cycle time,
Means for generating an address signal to be accessed by the processor in the next cycle; means for extending the pulse width of the address signal so as to satisfy the access time of the memory; Means for holding the data output from the memory and supplying the data to the processor in the next cycle, and inserting one wait cycle each time the processor accesses a continuous address of the memory a predetermined number of times. And a data access device characterized by having a control means.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a data access apparatus according to the present invention will be described in detail with reference to the preferred embodiments shown in the accompanying drawings.
[0020]
FIG. 1 is a conceptual diagram of a configuration of an embodiment of a data access apparatus according to the present invention. A data access device 10 shown in FIG. 1 includes a processor (hereinafter referred to as a CPU) 12, a memory 14, a prefetch address generation circuit 16, an address latch 18, a data latch 20, a NA_G generation circuit 22, and a NOE generation circuit. 24, an ND_G generation circuit 26, an incrementer 28 with a zero initialization function, and a delay multiplier 30.
[0021]
That is, the data access device 10 according to the present invention is different from the conventional data access device shown in FIG. The difference between the use of the NOE generation circuit 24 and the ND_G generation circuit 26 and the point having the incrementer 28 and the delay multiplier 30 is the only difference, and a detailed description of the same components is omitted. .
[0022]
As shown in the figure, the clock signal CLK is input to the CPU 12, the prefetch address generation circuit 16, the NA_G generation circuit 22, the NOE generation circuit 24, the ND_G generation circuit 26, and the delay multiplier 30. The incrementer 28 outputs a wait signal WAIT and an increment signal INC <1: 0>. The wait signal WAIT is sent to the CPU 12, the NA_G generation circuit 22, the NOE generation circuit 24, and the ND_G generation circuit 26. <1: 0> is input to the delay multiplier 30 as the selection signal MUL <1: 0>, respectively. Further, a delay signal DLY is output from the delay multiplier 30 and is input to the NA_G generation circuit 22, the NOE generation circuit 24, and the ND_G generation circuit 26.
[0023]
Next, FIG. 2 shows a conceptual diagram of an embodiment of the control signal generation circuit.
First, the NA_G generation circuit 22 shown in FIG. 1A includes an A_G generation circuit 32 and an AND gate 38. In this embodiment, the A_G generation circuit 32 has the same configuration as that used in the conventional data access device 62 shown in FIG. 7, for example. The specific circuit configuration of the A_G generation circuit 32 is not limited, and any conventionally known configuration is applicable.
[0024]
Here, the control signal A_G is output from the A_G generation circuit 32 and is input to the first input terminal of the AND gate 38. The wait signal WAIT is input to the second input terminal of the AND gate 38, the delay signal DLY is input to the third inverted input terminal, and the prefetch output from the prefetch address generation circuit 16 is output from the AND gate 38. A control signal NA_G serving as a timing signal for holding the address signal P_A <15: 0> in the address latch 18 is output.
[0025]
Further, the NOE generation circuit 24 shown in FIG. 5B includes an OE generation circuit 34 and an AND gate 40. Similarly, the OE generation circuit 34 has a conventionally known configuration. A control signal OE is output from the OE generation circuit 34 and is input to the first input terminal of the AND gate 40. A wait signal WAIT is input to the second input terminal of the AND gate 40, a delay signal DLY is input to the third inverted input terminal, and a timing signal for reading data from the memory 14 from the AND gate 40. A control signal NOE is output.
[0026]
The ND_G generation circuit 26 shown in FIG. 5C includes a D_G generation circuit 36 and a NAND gate 42. Similarly, the D_G generation circuit has a conventionally known configuration. A control signal D_G is output from the D_G generation circuit 36 and input to the first inverting input terminal of the NAND gate 42. The wait signal WAIT is input to the second input terminal of the NAND gate 42, the inverted signal of the delay signal DLY is input to the third inverted input terminal, and the memory data read from the memory 14 is read from the NAND gate 42. A control signal ND_G serving as a timing signal for holding the signal MD <7: 0> in the data latch 20 is output.
[0027]
In this embodiment, the operations of the A_G generation circuit 32, the OE generation circuit 34, and the D_G generation circuit 36 are the same as those used in the data access device 62 shown in FIG. 7, for example, and control signals A_G, OE And D_G have the same polarity. That is, all the control signals A_G, OE, and D_G are in an active state at a high level. For example, the control signal OE is at a high level when data is read from the memory 14.
[0028]
Further, the difference between the control signals NA_G, NOE and ND_G and the control signals A_G, OE and D_G is an inactive state when the wait signal WAIT becomes a low level which is an active state, as will be described later. Similarly, when the delay signal DLY becomes an active high level, the low level becomes an inactive low level. Details should be apparent from the following description.
[0029]
Next, FIG. 3 shows a conceptual diagram of an embodiment of an incrementer. The incrementer 28 in the illustrated example includes a +1 circuit 44, an AND gate 46, a flip-flop 48, and a comparator 50.
[0030]
Here, the output from the +1 circuit 44 is input to one input terminal of the AND gate 46, and the output of the AND gate 46 is input to the D <2: 0> terminal of the flip-flop 48. The control signal OE generated by the OE generation circuit 34 is input to the CLK inversion terminal of the flip-flop 48, the reset signal RESET is input to the reset inversion terminal, and the Q <2: 0> terminal increments the signal. Signals INC <2: 0> are output.
[0031]
The increment signal INC <2: 0> is input to one input terminal of the +1 circuit 44 and the comparator 50, and a part thereof is output as the increment signal INC <1: 0>. The other input terminal of the comparator 50 is input with a constant “4” (indicated by 100: bin in binary notation), and its output is input to the other input terminal of the AND gate 46 and output as a wait signal WAIT. Has been.
[0032]
Here, the wait signal WAIT is a signal for controlling whether or not a wait cycle is inserted when the CPU 12 accesses the memory 14. In this embodiment, the wait signal WAIT is a low level at which the wait signal WAIT is in an active state. In this case, a wait cycle is inserted.
[0033]
In the incrementer 28, first, the reset signal RESET is once set to the low level, the flip-flop 48 is reset, and the value of the increment signal INC <2: 0> that is the output becomes '000: bin'.
[0034]
Thereafter, the increment signal INC <2: 0> is incremented by the +1 circuit 44 and input to the flip-flop 48 via the AND gate 46, and is held again in the flip-flop 48 at the fall of the control signal OE. Thereafter, similarly, every time the control signal OE falls, the value of the increment signal INC <2: 0> is incremented. The increment signal INC <1: 0> is input to the delay multiplier 30 as the selection signal MUL <1: 0>.
[0035]
The comparator 50 compares the value of the increment signal INC <2: 0> with the constant “100: bin”, and outputs a low level as the wait signal WAIT when a match is detected. The wait signal WAIT is input to the D <2: 0> terminal of the flip-flop 48 via the AND gate 46, and the flip-flop 48 is initialized at the falling edge of the next control signal OE, and the increment signal INC <2: 0. The value of> returns to “000: bin”. Thereafter, the above operation is repeated.
[0036]
That is, in the incrementer 28, the value of the increment signal INC <2: 0> is incremented in the order of “000 → 001 → 010 → 011 → 100: bin” in synchronization with the falling edge of the control signal OE. When the value of the increment signal INC <2: 0> becomes “100: bin”, the low level in the active state is output as the wait signal WAIT, and the value of the increment signal INC <2: 0> is “000: bin”. Initialized to '.
[0037]
Next, FIG. 4 shows a conceptual diagram of an embodiment of the delay multiplier. The delay multiplier 30 in the illustrated example includes delay circuits (delays) 52, 54, 56, a multiplexer 58, and an AND gate 60. In this embodiment, it is assumed that the delay times of the delay circuits 52, 54 and 56 are the same.
[0038]
Here, the clock signal CLK is input to the delay circuit 52, and the output thereof is input to the delay circuit 54 in the next stage and also input to the 01 terminal of the multiplexer 58 as the delay signal DL1. Similarly, the output of the delay circuit 54 is input to the delay circuit 56 of the next stage, and is input to the 10 terminal of the multiplexer 58 as the delay signal DL2, and the output of the delay circuit 56 is input to the 11 of the multiplexer 58 as the delay signal DL3. Input to the terminal.
[0039]
The 00 terminal of the multiplexer 58 is fixed to the low level (L), and the increment signal INC <1: 0> output from the incrementer 28 is input to the selection terminal as the selection signal MUL <1: 0>. The output signal DLX of the multiplexer 58 is input to one input terminal of the AND gate 60. The clock signal CLK is input to the other inverting input terminal of the AND gate 60, and the delay signal DLY is output from the AND gate 60.
[0040]
In the delay multiplier 30, as shown in the operation timing chart of FIG. 5, the clock signals CLK are respectively delayed by predetermined time by the delay circuits 52, 54 and 56, and the delay circuits 52, 54 and 56 respectively It is output as signals DL1, DL2 and DL3. From the multiplexer 58, a signal input to the 00 terminal, 01 terminal, 10 terminal, or 11 terminal is selectively output as the output signal DLX according to the value of the selection signal MUL <1: 0>.
[0041]
That is, in the illustrated example, when the value of the selection signal MUL <1: 0> is “00: bin”, the low level input to the 00 terminal of the multiplexer 58 is selectively output. The delay signal DL1 input to the 01 terminal in the case of “bin”, the delay signal DL2 input to the 10 terminal in the case of “10: bin”, and the 11 terminal in the case of “11: bin”. Each input delay signal DL3 is selectively output.
[0042]
The AND gate 60 outputs a low level as the delay signal DLY when the value of the selection signal MUL <1: 0> is “00: bin”, otherwise, the selection signal MUL <1. : A high-level pulse having a pulse width corresponding to the delay time of the delay signal DL1, DL2 or DL3 selectively output from the multiplexer 58 in accordance with the value of 0> as described above at the falling edge of the clock signal CLK. Output synchronously. Thereafter, the above operation is repeated.
[0043]
Since the selection signal MUL <1: 0> is the increment signal INC <1: 0> as described above, the increment signal INC <2: 0> is changed as shown in the operation timing chart of FIG. After the value is incremented from “000 → 001 → 010 → 011 → 100: bin” and then initialized to “000: bin”, the value of the selection signal MUL <1: 0> is “00”. → 01 → 10 → 11 → 00: It changes repeatedly in the order of bin ′.
[0044]
The data access apparatus of the present invention basically has the above configuration. Note that the illustrated example shows only a configuration in which the CPU 12 performs high-speed read access to a plurality of data stored in consecutive addresses of the memory 14 for easy understanding. Therefore, when the CPU 12 randomly accesses the data in the memory 14, it is necessary to directly connect the address signal, the data signal, and the control signal to the memory 14. Therefore, a multiplexer is provided so that the two can be switched. There is a need.
[0045]
Next, the operation of the data access apparatus of the present invention will be described with reference to the operation timing chart shown in FIG.
In the following description, when the access time of the memory 14 is longer than the cycle time of the CPU 12, the CPU 12 continuously reads a plurality of data stored at consecutive addresses in the memory 14. The operation of the data access device 62 will be described.
[0046]
As shown in the operation timing chart of FIG. 6, the CPU 12 sequentially outputs CPU address signals CPU_A <15: 0> having consecutive values. The CPU address signal CPU_A <15: 0> is incremented by the prefetch address generation circuit 16, and the prefetch address signal P_A <15 having a value equal to the value of the CPU address signal CPU_A <15: 0> that the CPU 12 accesses in the next cycle. : 0> is output.
[0047]
The value of the increment signal INC <2: 0> is one cycle in the order of “0 → 1 → 2 → 3 → 4 (decimal number)” in synchronization with the falling edge of the control signal OE, that is, the rising edge of the clock signal CLK. It is incremented every time, then initialized to '0', and thereafter the same operation is repeated.
[0048]
First, as in the first cycle, when the value of the increment signal INC <2: 0>, that is, the selection signal MUL <1: 0> is “0”, the wait signal WAIT is at the high level and the delay signal DLY is at the low level. Become. In response to this, the control signals NA_G and NOE become high level when the clock signal CLK is low level, and the control signal ND_G becomes high level when the clock signal CLK is high level.
[0049]
Subsequently, as in the second cycle, when the value of the increment signal INC <2: 0> is “1”, as the delay signal DLY, the delay time of the delay circuit 52 is synchronized with the falling edge of the clock signal CLK. A high level pulse having a corresponding pulse width is output. In response to this, the rising timings of the control signals NA_G and NOE and the falling timing of the control signal ND_G are delayed by a time corresponding to the delay time of the delay circuit 52.
[0050]
Similarly, in the third and fourth cycles, as the delay signal DLY, high level pulses corresponding to the delay times of the delay circuits 52 and 54 and the delay circuits 52, 54, and 56 are respectively synchronized with the falling edge of the clock signal CLK. In response to this, the rise timing of the control signals NA_G and NOE and the fall timing of the control signal ND_G are time delays corresponding to the delay times of the delay circuits 52 and 54 and the delay circuits 52, 54 and 56, respectively. Is done.
[0051]
The prefetch address signal P_A <15: 0> is held in the address latch 18 by the control signal NA_G and is output as the memory address signal LP_A <15: 0>. As is clear from the operation timing chart of FIG. 6, the memory address signal LP_A <15: 0> in each cycle is compared with the CPU address signal CPU_A <15: 0> in the access time of the memory 14. Is held longer by the time corresponding to the delay time of the delay circuit 52.
[0052]
From the memory 14, the memory address signal LP_A <15: 0> changes, or after a predetermined access time after the control signal NOE becomes high level (left and right arrows in the figure), the memory address signal A memory data signal MD <7: 0> stored at an address corresponding to LP_A <15: 0> is output. In this embodiment, the memory data signal MD <7: 0> is output in the next cycle in which the prefetch address signal P_A <15: 0> corresponding thereto is output.
[0053]
The memory data signal MD <7: 0> is held in the data latch 20 by the control signal ND_G, and is output as the latch data signal LD <7: 0>. The latch data signal LD <7: 0> is fetched by the CPU in synchronization with the rising edge of the clock signal CLK (upward arrow in the figure). As described above, the CPU 12 continuously reads a plurality of data stored at consecutive addresses in the memory 14 without inserting wait cycles until the first to fourth cycles.
[0054]
Subsequently, as in the fifth cycle, when the value of the increment signal INC <2: 0> is “4”, the wait signal WAIT becomes the low level in the active state in synchronization with the rising edge of the clock signal CLK. Further, since the value of the increment signal INC <1: 0>, that is, the selection signal MUL <1: 0> is “0”, the value of the increment signal INC <2: 0> is “0”. The delay signal DLY becomes low level.
[0055]
When the wait signal WAIT becomes low level, the control signals NA_G and NOE become inactive low level, and the control signal ND_G also becomes inactive high level. The CPU 12 samples the low level of the wait signal WAIT at the rising edge of the clock signal CLK in the sixth cycle, and sets the value of the CPU address signal CPU_A <15: 0> in the sixth cycle to the same value as in the fifth cycle. That is, a wait cycle is inserted. Then, after the sixth cycle, the above-described operation is repeated.
[0056]
Here, in the above-described embodiment, the pulse width of the memory address LP_A <15: 0> is extended so as to satisfy the access time of the memory 14, and the CPU 12 performs read access to four consecutive addresses of the memory 14, Thereafter, when the extension of the pulse width reaches the limit, the operation of inserting one wait cycle is repeated. Therefore, since there are five types of states in a series of operations, the amount of information of 3 bits is required as the increment signal INC in order to distinguish these five types of states.
[0057]
In the wait cycle, the states of the control signals NA_G, NOE, and ND_G are determined regardless of the state of the delay signal DLY. For this reason, in this embodiment, the same low level as in the case of the first read access is output as the delay signal DLY in the wait cycle. Therefore, in the present embodiment, a four-input multiplexer 58 that selectively outputs one of the low level (L) or the delay signals DL1 to DL3 according to four types of states corresponding to four read accesses. The selection signal MUL is reduced from 3 bits to 1 bit to 2 bits, and the circuit scale of the delay multiplier 30 is reduced.
[0058]
On the other hand, for example, when one wait cycle is required for five read accesses, there are six types of states. Also in this case, the same 3-bit information amount is required as the increment signal INC. Further, although the state of the delay signal DLY in the wait cycle is not related, one of five states corresponding to five read accesses is selectively output using the 3-bit selection signal MUL. It is necessary to use a 5-input multiplexer.
[0059]
The number of read accesses to which a wait cycle must be inserted is determined by the CPU 12 cycle time, the memory 14 access time, and the time difference between the two. However, by appropriately setting the delay times of the delay circuits 52, 54, and 56 within a range equal to or larger than the above-described time difference, the number of series of read accesses is 2 such as 4 times and 8 times. n In this case, there is an advantage that the circuit scale of the multiplexer 58 can be reduced as described above.
[0060]
The data access apparatus of the present invention is basically as described above.
In addition, this invention is not limited to the said Example. For example, the bit length of the address signal and the data signal, the memory size, etc. are not limited at all, and the signal polarities of the wait signal, delay signal, control signal, etc. may be changed as appropriate. Further, the specific circuit configuration of the incrementer and the delay multiplier is not limited at all, and may be realized by another configuration circuit having the same function.
[0061]
Furthermore, in the above-described embodiment, an example in which the CPU performs read access to consecutive addresses in the memory has been described, but it goes without saying that the same can be realized in the case of write access. Further, the present invention can be applied to various RAMs such as SRAM and DRAM as a memory by appropriately generating control signals for controlling the memory, and can be applied to various ROMs if dedicated to read access. Applicable.
[0062]
Although the data access device of the present invention has been described in detail above, the present invention is not limited to the above-described embodiments, and various modifications and changes may be made without departing from the spirit of the present invention. is there.
[0063]
【The invention's effect】
As described above in detail, the data access device according to the present invention generates an address signal that the processor accesses in the next cycle, and extends the pulse width of the address signal to satisfy the memory access time. Supply and hold the data output from the memory in response to the address signal, and supply it to the processor in the next cycle, and insert one wait cycle each time the processor accesses the consecutive addresses of the memory a predetermined number of times It controls to do.
As a result, according to the data access device of the present invention, it is unnecessary even when a plurality of data stored in a memory that operates with an access time longer than the cycle time of the processor is continuously accessed from the processor. The number of insertions of wait cycles can be drastically reduced, and data can be accessed at high speed while suppressing a decrease in processor performance.
[Brief description of the drawings]
FIG. 1 is a configuration conceptual diagram of an embodiment of a data access apparatus of the present invention.
FIGS. 2A, 2B, and 2C are conceptual diagrams of an embodiment of a control signal generation circuit.
FIG. 3 is a conceptual diagram of an embodiment of an incrementer.
FIG. 4 is a conceptual diagram of an embodiment of a delay multiplier.
FIG. 5 is a timing chart of an embodiment illustrating the operation of the delay multiplier.
FIG. 6 is a timing chart of an embodiment showing the operation of the data access apparatus of the present invention.
FIG. 7 is a conceptual diagram of an example of a conventional data access device.
FIG. 8 is an example timing chart showing the operation of a conventional data access apparatus.
FIG. 9 is another example timing chart showing the operation of the conventional data access apparatus.
[Explanation of symbols]
10,62 data access device
12 processor
14 memory
16 Prefetch address generation circuit
18 Address latch
20 Data latch
22 NA_G generation circuit
24 NOE generation circuit
26 ND_G generation circuit
28 Incrementa
30 delay multiplier
32 A_G generation circuit
34 OE generation circuit
36 D_G generation circuit
38, 40, 46, 60 AND gate
42 NAND gate
44 +1 circuit
48 flip-flops
50 Comparator
52, 54, 56 delay circuit
58 multiplexer

Claims (1)

所定のサイクルタイムで動作するプロセッサから、当該プロセッサのサイクルタイムよりも長いアクセスタイムで動作するメモリを順次アクセスするデータアクセス装置であって、
前記プロセッサが次のサイクルでアクセスするアドレス信号を生成する手段と、前記メモリのアクセスタイムを満足するように前記アドレス信号のパルス幅を延長して前記メモリに供給する手段と、前記アドレス信号に応じて前記メモリから出力されるデータを保持し、前記次のサイクルで前記プロセッサに供給する手段と、前記プロセッサが、前記メモリの連続するアドレスを所定回数アクセスする毎に1回のウェイトサイクルを挿入するよう制御する手段とを有することを特徴とするデータアクセス装置。
A data access device that sequentially accesses a memory that operates with an access time longer than the cycle time of the processor from a processor that operates with a predetermined cycle time,
Means for generating an address signal to be accessed by the processor in the next cycle; means for extending the pulse width of the address signal so as to satisfy the access time of the memory; Means for holding the data output from the memory and supplying the data to the processor in the next cycle, and inserting one wait cycle each time the processor accesses a continuous address of the memory a predetermined number of times. And a data access device characterized by comprising:
JP09158499A 1999-03-31 1999-03-31 Data access device Expired - Lifetime JP3825198B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP09158499A JP3825198B2 (en) 1999-03-31 1999-03-31 Data access device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09158499A JP3825198B2 (en) 1999-03-31 1999-03-31 Data access device

Publications (2)

Publication Number Publication Date
JP2000284959A JP2000284959A (en) 2000-10-13
JP3825198B2 true JP3825198B2 (en) 2006-09-20

Family

ID=14030609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09158499A Expired - Lifetime JP3825198B2 (en) 1999-03-31 1999-03-31 Data access device

Country Status (1)

Country Link
JP (1) JP3825198B2 (en)

Also Published As

Publication number Publication date
JP2000284959A (en) 2000-10-13

Similar Documents

Publication Publication Date Title
US6178133B1 (en) Method and system for accessing rows in multiple memory banks within an integrated circuit
US6381684B1 (en) Quad data rate RAM
US6603706B1 (en) Method and apparatus for synchronization of read data in a read data synchronization circuit
KR950012019B1 (en) Data output buffer of semiconductor memory device
JP5017708B2 (en) Method for fetching data from double data rate dynamic random access memory and method for providing data strobe signal
US5926838A (en) Interface for high speed memory
US7215584B2 (en) Method and/or apparatus for training DQS strobe gating
US20020147898A1 (en) Memory controller with support for memory modules comprised of non-homogeneous data width RAM devices
US7394721B1 (en) Method and apparatus for data synchronization to local clock on memory reads
US7227812B2 (en) Write address synchronization useful for a DDR prefetch SDRAM
US20050180249A1 (en) Memory array and method with simultaneous read/write capability
JPH0772877B2 (en) Data processing device for dynamically setting timing of dynamic memory system
US6889335B2 (en) Memory controller receiver circuitry with tri-state noise immunity
KR20070108331A (en) A semiconductor memory
JP4456687B2 (en) Random access memory and method of writing to and reading from the memory
WO2006050983A1 (en) Memory access using multiple sets of address/data lines
US20040268016A1 (en) Synchronous memory device having advanced data align circuit
US5835970A (en) Burst address generator having two modes of operation employing a linear/nonlinear counter using decoded addresses
US6166970A (en) Priority determining apparatus using the least significant bit and CAS latency signal in DDR SDRAM device
US6950350B1 (en) Configurable pipe delay with window overlap for DDR receive data
EP0337385B1 (en) Cache memory controller associated with a microprocessor
US5426772A (en) Single PAL circuit generating system clock and control signals to minimize skew
US7099989B2 (en) System and technique to reduce cycle time by performing column redundancy checks during a delay to accommodate variations in timing of a data strobe signal
JP3825198B2 (en) Data access device
KR0154741B1 (en) Dual-port memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051226

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: 20060627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060629

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090707

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130707

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term