JP5471437B2 - 半導体集積回路装置およびキャッシュメモリ制御方法 - Google Patents

半導体集積回路装置およびキャッシュメモリ制御方法 Download PDF

Info

Publication number
JP5471437B2
JP5471437B2 JP2009297462A JP2009297462A JP5471437B2 JP 5471437 B2 JP5471437 B2 JP 5471437B2 JP 2009297462 A JP2009297462 A JP 2009297462A JP 2009297462 A JP2009297462 A JP 2009297462A JP 5471437 B2 JP5471437 B2 JP 5471437B2
Authority
JP
Japan
Prior art keywords
address
processing unit
cache memory
semiconductor integrated
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009297462A
Other languages
English (en)
Other versions
JP2011138294A (ja
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2009297462A priority Critical patent/JP5471437B2/ja
Priority to US12/965,573 priority patent/US8868832B2/en
Publication of JP2011138294A publication Critical patent/JP2011138294A/ja
Application granted granted Critical
Publication of JP5471437B2 publication Critical patent/JP5471437B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、半導体集積回路装置およびキャッシュメモリ制御方法に関する。
近年、デジタル機器の複雑化に伴って、搭載されるシステムLSI(Large Scale Integration)も高速化および高性能化が要求されている。特に、システムLSIに内蔵されるCPU(Central Processing Unit)は、高速に動作させることが強く求められている。
従来、CPU(処理ユニット)を高速動作させる一般的な手法としては、例えば、CPUの動作を規定するパイプラインの段数を増やすといった抜本的な対策を講じる場合が多い。
このような場合でも、例えば、CPUのランダムロジックとCPU自身が持つキャッシュメモリ(例えば、一次キャッシュメモリ)間のアクセスタイミングは、スループット向上のためにキャッシュメモリからのデータリードがゼロウェイトであることが望まれる。
さらに、CPUのランダムロジック(内部論理回路)が高速になればなるほど、キャッシュメモリ(例えば、SRAM:Static Random Access Memory)のリードアクセスタイムもより高速なものが必要になってくる。
ところで、従来、CPUからメモリに対するアクセス速度を向上させることができるメモリアクセス技術および情報処理技術、並びに、キャッシュメモリ(SRAM)からの高速データ読み出しが可能な回路等としては、様々なものが提案されている。
特開平10−333980号公報 特開平01−276336号公報
上述したように、CPU(処理ユニット)は、例えば、パイプライン段数を増やすことで大幅に動作速度を向上させることはできるが、キャッシュメモリ(SRAM)は、論理回路の改善等を行っても高速化することはできない。
すなわち、キャッシュメモリを高速化するには、例えば、そのキャッシュメモリに使用するSRAM自身を高速化しなければならず、現実問題としては、困難な状況にある。
さらに、近年、例えば、SRAMのキャッシュメモリを内蔵するCPUの動作速度(動作クロック)は、そのSRAMのデータリードアクセスタイムとCPUのランダムロジック間のパスのタイミングに支配されるようにもなってきている。
図1は半導体集積回路装置の一例を示すブロック図であり、また、図2は図1の半導体集積回路装置の動作を説明するためのタイミング図である。なお、図1および図2を参照して説明する半導体集積回路装置は、キャッシュメモリからのデータリードがゼロウェイトのものを示している。
図1において、参照符号100は処理ユニット(CPU),101はランダムロジック,102は内部フリップフロップ,そして,200はキャッシュメモリ(SRAM)を示している。
なお、キャッシュメモリ200は、例えば、システムLSI等の半導体集積回路装置に設けられるキャッシュメモリに限定されるものではなく、CPU100自体に内蔵される一次或いは二次キャッシュメモリであってもよい。
図2に示されるように、キャッシュメモリ200からのデータリードがゼロウェイトの場合でも、クロックCLKの1周期におけるSRAMのアクセスタイムATrが大きく、次段のフリップフロップ102までのセットアップマージンSMfが小さくなる。
そのため、図1に示す半導体集積回路装置は、クロックCLKの周波数を上げることができず、例えば、そのCPUを内蔵するシステムLSI、或いは、そのシステムLSIを搭載するデジタル機器の高速化および高性能化の要求を満たすことが困難になっていた。
図3は半導体集積回路装置の他の例を示すブロック図であり、また、図4は図3の半導体集積回路装置の動作を説明するためのタイミング図である。なお、図3および図4を参照して説明する半導体集積回路装置は、キャッシュメモリ200とCPU100との間にフリップフロップ300を設けたものである。
図3に示す半導体集積回路装置において、キャッシュメモリ200とCPU100のランダムロジック101間のパスは、挿入したフリップフロップ300により一度区切られることになり、CPU100の動作速度の高速化が期待できる。
すなわち、図4に示されるように、フリップフロップ300により、次段のフリップフロップ102までのセットアップマージンSMfを大きく取ることができるようになっている。
しかしながら、図3に示す半導体集積回路装置において、CPU100がキャッシュメモリ200からゼロウェイトでリードデータの取得を期待しているのに対して、リードデータは、フリップフロップ300により1サイクル遅れて到着する。
そのため、例えば、2サイクルのクロックCLKから1サイクルのCPUクロックclkを生成するCPUクロック制御回路301を設け、CPU100をクロックCLKの半分の周波数で動作させる必要があり、結果としてCPU100の処理性能が低下する。
具体的に、例えば、CPU100により、キャッシュメモリ200から連続した8個の読み出しが発生した場合、1個のデータを取得する度にクロックCLKが2サイクル必要になるめ、8/(8×2)=50%になる。すなわち、CPU100の性能が50%低下することになる。
一実施形態の半導体集積回路装置は、処理ユニットと、該処理ユニットがアクセスするキャッシュメモリと、アドレス予測回路と、アクセス開始検出回路と、クロック制御回路と、遅延回路と、を有する。
前記アドレス予測回路は、前記処理ユニットが前記キャッシュメモリにアクセスするアドレスを予測し、前記アクセス開始検出回路は、前記処理ユニットが前記キャッシュメモリへのアクセスを開始したことを検出してアクセス開始信号を生成する。
前記クロック制御回路は、クロックおよび前記アクセス開始信号を受け取って前記処理ユニットに対する処理クロックを制御し、前記遅延回路は、前記キャッシュメモリからのリードデータを遅延して前記処理ユニットに供給する。
開示の半導体集積回路装置およびキャッシュメモリ制御方法は、処理ユニットの性能劣化を抑えつつ動作周波数を高速化することができるという効果を奏する。
半導体集積回路装置の一例を示すブロック図である。 図1の半導体集積回路装置の動作を説明するためのタイミング図である。 半導体集積回路装置の他の例を示すブロック図である。 図3の半導体集積回路装置の動作を説明するためのタイミング図である。 半導体集積回路装置の第1実施例を示すブロック図である。 図5の半導体集積回路装置の動作を説明するためのタイミング図である。 図5の半導体集積回路装置におけるアドレス予測回路の一例を示す図である。 図5の半導体集積回路装置におけるアクセス開始検出回路の一例を示す図である。 図5の半導体集積回路装置におけるクロック制御回路の一例を示す図である。 半導体集積回路装置の第2実施例を示すブロック図である。 図10の半導体集積回路装置の動作を説明するためのタイミング図である。 図10の半導体集積回路装置におけるアドレス予測回路の一例を示す図である。 図10の半導体集積回路装置におけるアドレス比較回路の一例を示す図である。 図10の半導体集積回路装置におけるクロック制御回路の一例を示す図である。
以下、添付図面を参照して、半導体集積回路装置およびキャッシュメモリ制御方法の実施例を詳述する。
図5は半導体集積回路装置の第1実施例を示すブロック図であり、また、図6は図5の半導体集積回路装置の動作を説明するためのタイミング図である。
図5において、参照符号100は処理ユニット(CPU),101はランダムロジック,102は内部フリップフロップ,そして,200はキャッシュメモリ(SRAM)を示している。
さらに、参照符号400はCPU高速化システム,401はアドレス予測回路,402はアクセス開始検出回路,403はクロック制御回路,404はセレクタ,そして,405は遅延回路(遅延用フリップフロップ)を示している。
なお、キャッシュメモリ200は、例えば、システムLSI等の半導体集積回路装置に設けられるキャッシュメモリに限定されるものではなく、CPU100自体に内蔵される一次或いは二次キャッシュメモリであってもよい。
図5に示されるように、CPU100は、キャッシュメモリ200にアクセスするためのポート(キャッシュアドレスおよびキャッシュデータ用端子)を有する。なお、実際には、その他に、キャッシュメモリ200に対するチップセレクト,ライトイネーブルおよびライトデータ等のポートも有しているが、ここでは省略する。
CPU高速化システム400は、アドレス予測回路401,アクセス開始検出回路402,クロック制御回路403,セレクタ404,および,遅延用フリップフロップ405を有する。なお、CPU高速化システム400の名称は、例えば、図1の半導体集積回路装置との差異を明確化するために、便宜的に付したものである。
図5および図6に示されるように、CPU100からキャッシュメモリ200に対して最初のリードアクセスが発生すると、そのリードアドレス(キャッシュアドレスA0)は、アドレス予測回路401およびセレクタ404に供給される。
なお、CPU100からアクセス開始検出回路402に対しては、最初のリードアクセスの発生を通知するために、例えば、キャッシュメモリ200に対するチップセレクト信号CSが供給されている。
そして、アクセス開始検出回路402は、CPU100からの最初のリードアクセスが発生したことを検出してアクセス開始信号ASSを出力(アサート)する。
アドレス予測回路401は、CPU100からのキャッシュアドレスA0に基づいて、次の(2回目の)CPU100からのリードアドレスA1を予測して生成する。
この予測リードアドレスA1は、セレクタ400に供給され、同様に、3回目以降の予測リードアドレスA2,A3,…も、アドレス予測回路401により生成され、セレクタ400に供給される。
なお、後述するように、アドレス予測回路401には、アクセス開始信号ASSも供給され、また、予測アドレスは、例えば、CPU100の仕様に応じた所定の加算値が順次加算されて生成されるようになっている。
セレクタ404は、アクセス開始検出回路402からのアクセス開始信号ASSがアサートされると、CPU100からのリードアドレス(A0)を選択する。
また、セレクタ404は、アクセス開始検出回路402からのアクセス開始信号がアサートされていない場合、すなわち、2回目以降のリードアドレスによる転送時には、アドレス予測回路401で生成された予測リードドレス(A1,A2,A3,…)を選択する。
さらに、セレクタ404によって選択されたリードアドレスは、キャッシュメモリ200のアドレス用端子に供給される。
そして、所定のリードアクセスタイムの後、キャッシュメモリ200のリードデータ用端子からリードデータが出力され、遅延用フリップフロップ405の入力に供給される。
この遅延用フリップフロップ405のクロック端子には、後述するクロック制御回路403の出力信号(CPUクロック)clkが供給され、リードデータを、例えば、CPUクロックclkの立ち上がりエッジで取り込んで、次の立ち上がりエッジで出力する。
この遅延用フリップフロップ405から出力された信号(遅延されたリードデータ)は、CPU100のキャッシュデータ用端子に供給され、例えば、内部のランダムロジック101を介して内部フリップフロップ102の入力端子に供給される。
これにより、例えば、CPUクロックclkの立ち上がりエッジで出力されたリードデータには、内部フリップフロップ102に供給されるまでに時間的な余裕が含まれることになる。
具体的に、CPU100からの最初のリードアクセスが発生すると、アクセス開始信号ASSにより、セレクタ404はキャッシュアドレスA0を選択し、また、クロック制御回路403はCPUクロックclkの供給を1サイクルだけ停止する。
これにより、遅延用フリップフロップ405を介したリードデータがCPU100にとって1サイクル遅れて到着することによる弊害を回避することが可能になる。
すなわち、図6に示されるように、CPU100からの最初のリードアクセスのアドレスA0に対応したデータD0を、内部フリップフロップ102までのセットアップマージンSMfを満たして提供することができる。
さらに、2回目以降のアクセスに対して、セレクタ404はアドレス予測回路401により生成されたアドレスA1,A2,A3,…を選択するため、キャッシュメモリ200からのリードデータD1,D2,D3,…はクロックCLKに同期して出力される。
これは、図6に示されるように、2回目以降のアクセスに対して、クロック制御回路403は、CPUクロックclkをクロックCLKと同じタイミング(周波数)となるように制御するためである。
これにより、CPU100からの2回目以降のアクセスは,クロックCLKと同じ周波数のCPUクロックclkで動作させることができ、CPU100の性能劣化を抑えつつ動作周波数を高速化することが可能になる。
本第1実施例の半導体集積回路装置によれば、CPU100からの最初のアクセスのみ1サイクルのペナルティを持つだけで、CPU100の性能劣化を抑えることができる。
具体的に、例えば、CPU100によりキャッシュメモリ200から連続した8個の読み出しが発生した場合を考えると、8+1=9サイクルかかるだけであり、8/9=89[%]となり、11%の性能劣化に留めることができることになる。
さらに、CPU100とキャッシュメモリ200間のリードデータのパスは、遅延用フリップフロップ405で区切られているため、CPUの動作周波数をさらに上げることが可能になる。
図7は図5の半導体集積回路装置におけるアドレス予測回路の一例を示す図であり、また、図8は図5の半導体集積回路装置におけるアクセス開始検出回路の一例を示す図である。さらに、図9は図5の半導体集積回路装置におけるクロック制御回路の一例を示す図である。
まず、図7に示されるように、アドレス予測回路401は、セレクタ411,加算回路412およびフリップフロップ413を有する。
セレクタ411は、CPU100からのキャッシュアドレスとフリップフロップ413の出力である予測アドレスを受け取り、アクセス開始検出回路402で生成されたアクセス開始信号ASSに従って選択する。
すなわち、セレクタ411は、CPU100からの最初のリードアクセスが発生してアクセス開始検出回路402からのアクセス開始信号ASSが出力されると(図6では、高レベル『H』になると)、キャッシュアドレスを選択して加算回路412に供給する。
さらに、セレクタ411は、CPU100からの2回目以降のリードアクセスに対しては、アクセス開始信号ASSが低レベル『L』になるため、予測アドレスを選択して加算回路412に供給する。
加算回路412は、セレクタ411で選択されたアドレスに対して、例えば、CPU100の仕様に応じた所定値(定数)を加算してフリップフロップ413の入力端子に供給する。
フリップフロップ413は、その入力端子に供給されたアドレスを、例えば、クロックCLKの立ち上がりエッジで取り込み、その出力端子から予測アドレスとして出力する。
また、図8に示されるように、アクセス開始検出回路402は、フリップフロップ421,インバータ422およびANDゲート423を有する。
フリップフロップ421は、例えば、キャッシュメモリ200へのチップセレクト信号CSをその入力端子で受け取り、クロックCLKの立ち上がりエッジで取り込む。
フリップフロップ421の出力信号は、チップセレクト信号CSをインバータ422で反転した信号と共にANDゲート423に供給され、それらの論理積を取った信号がアクセス開始信号ASSとしてANDゲート423から出力される。
具体的に、例えば、チップセレクト信号CSはローイネーブル信号であり、CPU100からキャッシュメモリ200に対する最初のアクセスを検出して高レベル『H』となるアクセス開始信号ASSを生成する。
さらに、図9に示されるように、クロック制御回路403は、インバータ431,ANDゲート432およびフリップフロップ433を有する。
フリップフロップ433は、クロックCLKの立ち上がりエッジでアクセス開始信号ASSをインバータ431で反転した信号を取り込み、フリップフロップ433の出力とクロックCLKの論理積を取った信号がCPUクロックclkとしてANDゲート432から出力される。
すなわち、図6に示されるように、CPUクロックclkは、キャッシュメモリ200に対する最初のアクセスを検出して出力されるアクセス開始信号ASSが高レベル『H』になった次のサイクルは低レベル『L』のままで、クロックCLKの2倍の周期の信号になる。
そして、CPUクロックclkは、キャッシュメモリ200に対する2回目以降のアクセスに対しては、クロックCLKと同じ周期の信号になる。
なお、図7に示すアドレス予測回路401、図8に示すアクセス開始検出回路402および図9に示すクロック制御回路403は、単なる例であり、様々に変形することができるのはもちろんである。
図10は半導体集積回路装置の第2実施例を示すブロック図であり、また、図11は図10の半導体集積回路装置の動作を説明するためのタイミング図である。
図10と前述した図5との比較から明らかなように、本第2実施例の半導体集積回路装置は、図5に示す第1実施例の半導体集積回路装置に対して、さらに、アドレス比較回路406を設けたものに相当する。
すなわち、第1実施例の半導体集積回路装置において、アドレス予測回路401は、常に、CPU100のキャッシュアドレスを正確に予測できるものではない。
そこで、アドレス予測回路が予測を失敗したとき、すなわち、アドレス予測回路が生成した予測アドレスが、CPUがキャッシュメモリにアクセスするアドレスとは相違するとき、それに対処するようにしたものが本第2実施例である。
図10に示されるように、CPU高速化システム400’は、アドレス予測回路401’,アクセス開始検出回路402,クロック制御回路403’,セレクタ404,遅延用フリップフロップ405,および,アドレス比較回路406を有する。なお、CPU高速化システム400’の名称は、便宜的に付したものなのは前述した通りである。
まず、図11に示されるように、CPU100がキャッシュメモリ200にアクセスするキャッシュアドレスがA0→A5→A6→A7に変化する場合を考える。
このとき、アドレス予測回路401’は、CPU100からのキャッシュアドレスの最初の値A0から、2回目および3回目のアドレスをA1およびA2と予測する。すなわち、アドレス予測回路401’による予測アドレスは、A0→A1→A2へと変化する。
図10に示されるように、アドレス比較回路406は、CPU100からのキャッシュアドレスとアドレス予測回路401’で生成された予測アドレスとを比較し、両者のアドレス値が異なればアドレス予測失敗信号AEFSを出力する。
上記のケースでは、アドレス予測回路401’が、キャッシュアドレスA5,A6とは異なるアドレスA1,A2を生成したために、アドレス比較回路406からアドレス予測失敗信号AEFSがアサートされることになる。
このアドレス予測失敗信号AEFSは、図11に示されるように、例えば、クロックCLKの2サイクルの期間だけアサートされる(高レベル『H』になる)。
クロック制御回路403’は、アドレス予測失敗信号AEFSを受けて、CPU100へのCPUクロックclkをクロックCLKの2サイクルの期間だけ停止する。
このCPUクロックclkの停止により、CPU100が受け取るキャッシュアドレスA0に対応するデータD0(遅延用フリップフロップ405の出力信号)もクロックCLKの3サイクルの期間だけ保持される。
これは、アドレス予測回路401’によるアドレス予測の失敗がCPU100に影響を及ぼさないようにするためである。
アドレス予測失敗信号AEFSのアサートとCPUクロックclkの停止の間、キャッシュメモリ200へのリードアドレスは、A0→A1→A2の後、図12を参照して後述するように、アドレス予測回路401’によりA5になる。
ここで、キャッシュメモリ200のクロックCLKは、アドレス予測失敗信号AEFSがアサートされていても供給され続けており、キャッシュメモリ200から出力されたリードデータもA0,A1,A2に対応したデータD0,D1,D2が出力される。
これらのリードデータD0,D1,D2は、遅延用フリップフロップ405に供給されるが、この遅延用フリップフロップ405はCPUクロックclkで動作するようになっている。
すなわち、遅延用フリップフロップ405は、アドレス予測失敗信号AEFSがアサートされている間は最初に取りこんだデータD0のみをCPU100に供給し、データD1およびD2はCPU100に供給しないようになっている。
アドレス予測回路401’のアドレス予測の失敗により、次のメモリアドレスとしてCPU100からのキャッシュアドレスA5がCPU高速化システム400’に取り込まれる。
すなわち、後述するように、アドレス予測回路401’は、アドレス予測失敗信号AEFSのアサートによりCPU100からのキャッシュアドレスA5を予測アドレスとして出力する。
そして、アドレス比較回路406で比較されるアドレスが一致すると、アドレス予測失敗信号AEFSはネゲート(解除)される。
このアドレス予測失敗信号AEFSの解除により、CPUクロックclkの停止もCPUクロック制御回路403’によって解除され、CPU100はリードアドレスA5の次のアドレスとしてA6をキャッシュアドレスとして駆動する。
なお、アドレス予測回路401’は、既に取り込んだアドレスA5から、予測アドレスA6,A7を生成してメモリアクセスを行う。
図12は図10の半導体集積回路装置におけるアドレス予測回路の一例を示す図であり、また、図13は図10の半導体集積回路装置におけるアドレス比較回路の一例を示す図である。さらに、図14は図10の半導体集積回路装置におけるクロック制御回路の一例を示す図である。
まず、図12に示されるように、アドレス予測回路401’は、セレクタ411’,加算回路412’およびフリップフロップ413を有する。
セレクタ411’は、CPU100からのキャッシュアドレスとフリップフロップ413の出力である予測アドレスを受け取り、アクセス開始検出回路402で生成されたアクセス開始信号ASSおよびアドレス予測失敗信号AEFSに従って選択する。
すなわち、セレクタ411’は、前述した第1実施例のセレクタ411と同様に、アクセス開始信号ASSがアサート(高レベル『H』)されると、CPU100からのキャッシュアドレスを選択して加算回路412’に供給する。
また、セレクタ411’は、CPU100からの2回目以降のリードアクセスに対しては、アクセス開始信号ASSが低レベル『L』になるため、予測アドレスを選択して加算回路412に供給する。
さらに、セレクタ411’は、アドレス予測失敗信号AEFSがアサート(高レベル『H』)されると、CPU100からのキャッシュアドレスを選択して加算回路412’に供給する。
ここで、アドレス予測失敗信号AEFSは、加算回路412’にも供給され、アドレス予測失敗信号AEFSがアサートされると、セレクタ411’からの入力アドレスをそのまま出力する。
なお、アドレス予測失敗信号AEFSがアサートされていないと、加算回路412’は、入力アドレスに対してCPU100の仕様に応じた定数を加算してフリップフロップ413の入力端子に供給するのは、第1実施例の加算回路412と同様である。なお、フリップフロップ413も第1実施例と同様であり、その説明は省略する。
これにより、図11に示されるように、アドレス予測が失敗してアドレス比較回路406からアドレス予測失敗信号AEFSがアサートされると、CPU100からのキャッシュアドレス(A5)が予測アドレスとして出力されることになる。
次に、図13に示されるように、アドレス比較回路406は、フリップフロップ461および比較器462を有する。
フリップフロップ461は、アドレス予測回路401’からの予測アドレスをクロックCLKの立ち上がりエッジで取り込む。比較回路462は、フリップフロップ461の出力信号(予測アドレス)とCPU100からのキャッシュアドレスを比較し、両者のアドレス値が異なればアドレス予測失敗信号AEFSを出力する。
そして、図14に示されるように、クロック制御回路403’は、インバータ431,435,3入力ANDゲート432’およびフリップフロップ433,434を有する。
フリップフロップ434は、クロックCLKの立ち上がりエッジでアドレス予測失敗信号AEFSを取り込む。
3入力ANDゲート432’は、フリップフロップ434の出力信号をインバータ435で反転した信号と、アクセス開始信号ASSをインバータ431で反転した後クロックの立ち上がりエッジで取り込むフリップフロップ433の出力と、クロックCLKを受け取り、それらの論理積を取ってCPUクロックclkを生成する。
これにより、図11に示されるように、CPUクロックclkは、第1実施例と同様に、アクセス開始信号ASSが高レベル『H』になった次のサイクル期間は低レベル『L』のままで、クロックCLKの2倍の周期の信号になる。
さらに、CPUクロックclkは、アドレス予測失敗信号AEFSを受けて、CLKの2サイクルの期間だけ停止することになる。
以上において、アドレス予測回路が予測を失敗すると動作遅延が生じることになるが、例えば、キャシュメモリに保持されるデータは、連続した所定の容量を有するデータであるため、アドレス予測が失敗しても、それによる動作遅延の影響は、実用上殆どない。
なお、アクセス開始検出回路402,セレクタ404および遅延用フリップフロップ405は、第1実施例と同様でありその説明は省略する。また、図12に示すアドレス予測回路401’、図13に示すアドレス比較回路406および図14に示すクロック制御回路403’は、単なる例であり、様々に変形することができるのはいうまでもない。
100 処理ユニット(CPU)
101 ランダムロジック
102 内部フリップフロップ
200 キャッシュメモリ
300 フリップフロップ
301 CPUクロック制御回路
400,400’ CPU高速化システム
401,401’ アドレス予測回路
402 アクセス開始検出回路
403,403’ クロック制御回路
404 セレクタ
405 遅延回路(遅延用フリップフロップ)
406 アドレス比較回路
AEFS アドレス予測失敗信号
ASS アクセス開始信号
CLK クロック
clk 処理クロック(CPUクロック)

Claims (10)

  1. 処理ユニットと、
    該処理ユニットがアクセスするキャッシュメモリと、
    前記処理ユニットが前記キャッシュメモリにアクセスするアドレスを予測するアドレス予測回路と、
    前記処理ユニットが前記キャッシュメモリへのアクセスを開始したことを検出してアクセス開始信号を生成するアクセス開始検出回路と、
    クロックおよび前記アクセス開始信号を受け取って前記処理ユニットに対する処理クロックを制御するクロック制御回路と、
    前記キャッシュメモリからのリードデータを遅延して前記処理ユニットに供給する遅延回路と、を有することを特徴とする半導体集積回路装置。
  2. 請求項1に記載の半導体集積回路装置おいて、さらに、
    前記処理ユニットから前記キャッシュメモリに対する最初のアクセスは、前記処理ユニットからのアドレスを前記キャッシュメモリに入力すると共に、前記処理ユニットから前記キャッシュメモリに対する2回目以降のアクセスは、前記アドレス予測回路で生成した予測アドレスを前記キャッシュメモリに入力するセレクタを有することを特徴とする半導体集積回路装置。
  3. 請求項1または2に記載の半導体集積回路装置おいて、さらに、
    前記処理ユニットからのアドレスと、前記アドレス予測回路で生成された予測アドレスを前記遅延回路で遅延したアドレスとを比較して、前記アドレス予測回路の予測が失敗したことを示すアドレス予測失敗信号を生成するアドレス比較回路を有することを特徴とする半導体集積回路装置。
  4. 請求項3に記載の半導体集積回路装置おいて、
    前記クロック制御回路は、前記アドレス予測失敗信号を受け取って前記処理クロックを停止し、前記処理ユニットからのアドレスを前記キャッシュメモリに入力することを特徴とする半導体集積回路装置。
  5. 請求項3または4に記載の半導体集積回路装置おいて、
    前記クロック制御回路は、前記アドレス予測失敗信号を1クロックサイクル遅延させた信号、前記アクセス開始信号、および、前記クロックの論理積を取って前記処理クロックを制御することを特徴とする半導体集積回路装置。
  6. 請求項1〜5のいずれか1項に記載の半導体集積回路装置おいて、
    前記アドレス予測回路は、前記処理ユニットの仕様に応じて加算値の設定が可能な加算器を有することを特徴とする半導体集積回路装置。
  7. 請求項1〜6のいずれか1項に記載の半導体集積回路装置おいて、
    前記アクセス開始検出回路は、前記処理ユニットから出力される前記キャッシュメモリのチップセレクト信号と、該チップセレクト信号を遅延した信号との論理積を取って前記アクセス開始信号を生成することを特徴とする半導体集積回路装置。
  8. 請求項7に記載の半導体集積回路装置おいて、
    前記クロック制御回路は、前記アクセス開始信号の反転論理の信号をフリップフロップを介したのち前記クロックとの論理積を取って前記処理ユニットに対するクロックを生成することを特徴とする半導体集積回路装置。
  9. 請求項1〜8のいずれか1項に記載の半導体集積回路装置おいて、
    前記遅延回路は、遅延用フリップフロップを有し、
    前記処理ユニットは、内部フリップフロップを有し、
    前記遅延用フリップフロップにより前記キャッシュメモリからのリードデータを1クロックサイクルだけ遅延して前記処理ユニットに供給することで前記内部フリップフロップまでのセットアップマージンを稼ぎ、該内部フリップフロップのセットアップ時間を満たす範囲で前記処理ユニットの動作周波数を高めることを特徴とする半導体集積回路装置。
  10. 処理ユニット、および、該処理ユニットがアクセスするキャッシュメモリを有する半導体集積回路装置におけるキャッシュメモリ制御方法であって、
    前記処理ユニット前記キャッシュメモリにアクセスするアドレスを予測し、
    前記処理ユニット前記キャッシュメモリへのアクセスを開始したことを検出してアクセス開始信号を生成し、
    クロックおよび前記アクセス開始信号を受け取って前記処理ユニットに対する処理クロックを制御し、
    前記キャッシュメモリからのリードデータを遅延して前記処理ユニットに供給することを特徴とするキャッシュメモリ制御方法。
JP2009297462A 2009-12-28 2009-12-28 半導体集積回路装置およびキャッシュメモリ制御方法 Expired - Fee Related JP5471437B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009297462A JP5471437B2 (ja) 2009-12-28 2009-12-28 半導体集積回路装置およびキャッシュメモリ制御方法
US12/965,573 US8868832B2 (en) 2009-12-28 2010-12-10 Memory control device and cache memory controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009297462A JP5471437B2 (ja) 2009-12-28 2009-12-28 半導体集積回路装置およびキャッシュメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2011138294A JP2011138294A (ja) 2011-07-14
JP5471437B2 true JP5471437B2 (ja) 2014-04-16

Family

ID=44188837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009297462A Expired - Fee Related JP5471437B2 (ja) 2009-12-28 2009-12-28 半導体集積回路装置およびキャッシュメモリ制御方法

Country Status (2)

Country Link
US (1) US8868832B2 (ja)
JP (1) JP5471437B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5772492B2 (ja) * 2011-10-21 2015-09-02 富士通株式会社 演算処理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01276336A (ja) 1988-04-28 1989-11-06 Nec Ibaraki Ltd データ読出回路
JP3254019B2 (ja) * 1992-11-30 2002-02-04 富士通株式会社 データ先読み制御装置
JPH10333980A (ja) 1997-05-28 1998-12-18 Hitachi Ltd メモリアクセス方法および情報処理装置
US6360310B1 (en) * 2000-02-03 2002-03-19 Nec Electronics, Inc. Apparatus and method for instruction cache access

Also Published As

Publication number Publication date
US20110161549A1 (en) 2011-06-30
JP2011138294A (ja) 2011-07-14
US8868832B2 (en) 2014-10-21

Similar Documents

Publication Publication Date Title
JP2006191567A (ja) オンチップデータ伝送制御装置及びその制御方法
JP2006190441A (ja) 同期式半導体装置用のレイテンシ制御装置及びレイテンシ制御方法
US8493108B2 (en) Synchronizer with high reliability
US6078202A (en) Semiconductor device having portions that operate at different frequencies, and method of designing the device
US8065486B2 (en) Cache memory control circuit and processor
US7408394B2 (en) Measure control delay and method having latching circuit integral with delay circuit
JP4426468B2 (ja) メモリエミュレーションモジュールを用いて高速でテストできるエンベデッドmcu、及びそのテスト方法
JP5471437B2 (ja) 半導体集積回路装置およびキャッシュメモリ制御方法
JP2005518042A (ja) クロックの異なるバス間におけるデータ転送
US7492661B2 (en) Command generating circuit and semiconductor memory device having the same
US7461305B1 (en) System and method for detecting and preventing race condition in circuits
US8904221B2 (en) Arbitration circuitry for asynchronous memory accesses
JP2000091506A (ja) 半導体集積回路
US20090116299A1 (en) Semiconductor memory device and method for operating the same
US6981166B2 (en) Method, apparatus, and computer program product for pacing clocked operations
JP6303509B2 (ja) 回路検証方法、及び回路検証プログラム
JP5439964B2 (ja) 遅延比較回路、遅延比較方法、遅延回路および半導体集積回路
US6577692B1 (en) Clock forwarding circuit with automatic clock delay detection and initial parameter setting features
US7010072B2 (en) Aligned clock forwarding scheme
JP2008102797A (ja) 半導体装置、半導体集積回路装置、及び許容位相差測定回路
JP2005293622A (ja) 集積回路、及びホールドタイムエラーの余裕度の検査方法
US20060107147A1 (en) Semiconductor device with timing correction circuit
JP3978222B2 (ja) 半導体集積回路の設計方法
KR940005771B1 (ko) 셋업시간을 단축시킨 어드레스발생회로
JP4620492B2 (ja) バスインターフェイス回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140120

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees