JP3825198B2 - Data access device - Google Patents
Data access device Download PDFInfo
- 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
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
[0005]
In the following description, as described above, the
Here, the clock signal CLK is input to the
[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
[0007]
The prefetch address signal P_A <15: 0> output from the prefetch
[0008]
Here, the
[0009]
The
[0010]
Subsequently, the memory address signal LP_A <15: 0> output from the
[0011]
Here, the
[0012]
Subsequently, the memory data signal MD <7: 0> output from the
[0013]
Here, the
[0014]
As in the case of the
[0015]
Finally, the latch data signal LD <7: 0> output from the
[0016]
However, in the
[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
[0021]
That is, the
[0022]
As shown in the figure, the clock signal CLK is input to the
[0023]
Next, FIG. 2 shows a conceptual diagram of an embodiment of the control signal generation circuit.
First, the
[0024]
Here, the control signal A_G is output from the
[0025]
Further, the
[0026]
The
[0027]
In this embodiment, the operations of the
[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
[0030]
Here, the output from the +1
[0031]
The increment signal INC <2: 0> is input to one input terminal of the +1
[0032]
Here, the wait signal WAIT is a signal for controlling whether or not a wait cycle is inserted when the
[0033]
In the
[0034]
Thereafter, the increment signal INC <2: 0> is incremented by the +1
[0035]
The
[0036]
That is, in the
[0037]
Next, FIG. 4 shows a conceptual diagram of an embodiment of the delay multiplier. The
[0038]
Here, the clock signal CLK is input to the
[0039]
The 00 terminal of the
[0040]
In the
[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
[0042]
The AND
[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
[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
[0046]
As shown in the operation timing chart of FIG. 6, the
[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
[0050]
Similarly, in the third and fourth cycles, as the delay signal DLY, high level pulses corresponding to the delay times of the
[0051]
The prefetch address signal P_A <15: 0> is held in the
[0052]
From the
[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
[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
[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
[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-
[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
[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:
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) |
-
1999
- 1999-03-31 JP JP09158499A patent/JP3825198B2/en not_active Expired - Lifetime
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 |