(57)【特許請求の範囲】
【請求項１】
ＴＬＢとキャッシュで構成されるキャッシュ機能を搭載した１チップＬＳＩであって、
キャッシュを構成するＴＡＧメモリモジュールとキャッシュデータメモリモジュールは前記ＴＡＧメモリモジュールの両側に分割して第１，第２のキャッシュデータメモリモジュールを配置し、
前記ＴＡＧメモリモジュールと前記第１，第２のキャッシュデータメモリモジュールを更に分割して前記ＴＬＢの両側に配置し、
バスエリアを介して前記ＴＬＢの入出力回路に、前記ＴＬＢの片側に配置されるＴＡＧメモリモジュールの入出力回路が向かい合うように配置した
半導体集積回路。
【請求項２】
ＴＬＢとキャッシュで構成されるキャッシュ機能を搭載した１チップＬＳＩであって、
アドレス変換データが格納されているＴＬＢ・ＴＡＧモジュールとトランスレーション・ルックアサイドデータが格納されているＴＬＢデータメモリモジュールとによって前記ＴＬＢを構成し、
キャッシュ・メモリ・インデックスデータが格納されているＴＡＧメモリモジュールとキャッシュデータが格納されているキャッシュデータメモリモジュールとでキャッシュを構成し、
前記ＴＡＧメモリモジュールを複数に分割し、前記キャッシュデータメモリモジュールを複数に分割し、
複数に分割されたＴＡＧメモリモジュールを、ＴＬＢ・ＴＡＧモジュールとＴＬＢデータメモリモジュールを中央にしてこのＴＬＢ・ＴＡＧモジュールとＴＬＢデータメモリモジュールの配列方向の両側に配置し、
複数に分割されたキャッシュデータメモリモジュールを、前記複数に分割されたＴＡＧメモリモジュールの両側に分割して配置した
半導体集積回路。
【請求項３】
ＴＬＢ・ＴＡＧモジュールとＴＬＢデータメモリモジュールの配列方向の両側に分割して配置されたキャッシュ群のうちの一方の入出力回路とＴＬＢの入出力回路とが向かい合うように配置した
請求項２記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路の中でもキャッシュ機能を搭載した１チップＬＳＩに関する。
【０００２】
【従来の技術】
３２ビットマイクロコンピュータを組み込んだ機器コントローラ用の１チップＬＳＩが、組込み応用向けとしてデジタル家電、ネットワーク家電向けとして開発されている。
以下の説明では、前記ＬＳＩのマイクロプロセッサにあたる部位を“マイコンコア”と称す。
【０００３】
ネットワーク家電応用分野においては、計算機処理用によるサービスを実現するためのプログラム規模の増大や、非公開プログラムモジュールなどの組み込み、プログラムモジュールのダウンロードによる組み込みなどによるプログラム環境の変化によって、メモリ保護の重要性が増している。
したがって、マイコンコアでは、メモリ保護機能の実現をサポートするため、以下に示すようなＴＬＢ（トランスレーション・ルックアサイド・バッファ）を用いたＭＭＵ（メモリ管理ユニット）を搭載している。ＭＭＵの実装では、回路の最適化によって、キャッシュアクセスとＴＬＢ検索動作の並列実行を１マシンサイクルで実現している。
【０００４】
先ず、キャッシュの基本動作を説明する。
図５はマイコンコアのキャッシュのバスを示している。命令アクセスとデータアクセスを並列処理するために命令キャッシュ１とデータキャッシュ２とに分けているが、キャッシュの動作は同じである。ここではデータキャッシュ２の場合を例に挙げて説明する。
【０００５】
メモリアクセスのためのアドレス信号の流れは次のようになる。
ＣＰＵコア３はバス・インターフェース（以下、ＢＣＩＦと称す）４を介してデータキャッシュ２にアクセスする。
読み出し時には、ＣＰＵコア３からの出力された仮想アドレスは、ＢＣＩＦ４を介し、データＴＬＢ５に入力される。
【０００６】
仮想アドレスに対応した物理アドレスがデータＴＬＢ５にあった場合には、データＴＬＢ５はその物理アドレス６ならびにヒット／ミス信号７としてヒット信号を出力する。ヒット信号が出力されない場合はミス信号を出力する。
データＴＬＢ５からヒット信号が出力された場合は、データキャッシュ２内のＴＡＧ（キャッシュ・メモリ・インデックス）とデータＴＬＢ５から出力された物理アドレスとの比較を行う。比較した結果が一致の場合、物理アドレスに対応するデータをデータバスに出力し、データとヒット信号はＢＣＩＦ４を介し、ＣＰＵコア３に入力される。データキャッシュ２からの出力は、データなら６４ビット、インストラクションなら３２ビットである。
【０００７】
書き込み時には、データキャッシュ２のヒット信号の出力まで動作は読み込み時と同じで、バスへのデータの出力の代わりにＣＰＵコア３から予めバスに出力されていたデータをデータキャッシュ２に書き込む。
もう少し詳しくキャッシュ動作を補足する。
図６はデータＴＬＢ５とデータキャッシュ２の構成を表わしている。
【０００８】
ＣＰＵコア３のアドレス生成部８からの出力された仮想アドレスは、ＢＣＩＦ４を介してデータＴＬＢ５に入力される。
仮想アドレスはＴＡＧ５ａでアドレスを比較し、仮想アドレスと対応した物理アドレスがあった場合には、物理アドレスの上位アドレスとヒット信号を出力する。ヒット信号が出力されない場合はミス信号を出力する。また、保護されているメモリに対応する場合は、例外判定信号を出力し、データキャッシュ２からデータを出力しない。
【０００９】
一方、下位アドレスは仮想アドレス・物理アドレスとも共通のため、同時に下位アドレスをデータキャッシュ２にも入力する。
データキャッシュ２はＴＡＧメモリモジュール９とキャッシュデータメモリモジュール１０を有しており、データキャッシュ２のＴＡＧメモリモジュール９に下位アドレスに対応するアドレスがある場合、下位アドレスに対応する物理アドレスの上位アドレスを出力する。
【００１０】
データＴＬＢ５のヒット信号があった場合、データキャッシュ２のＴＡＧメモリモジュール９とデータＴＬＢ５から出力された物理アドレスの上位アドレスとを２ａで比較を行う。
比較した結果が一致の場合、前記キャッシュデータメモリモジュール１０からアドレスに対応するデータをデータバスに出力し、ヒット信号をＣＰＵコア３に出力する。
【００１１】
データＴＬＢ５からヒット信号が出力されない場合、あるいはデータキャッシュ２からヒット信号が出力されない場合には、ミス信号をＣＰＵコア３に出力する。
データＴＬＢ５から例外判定が出た場合、データキャッシュ２からデータは出力されず、ＣＰＵコア３にて例外処理が実行される。
【００１２】
書き込み時は、データキャッシュ２のヒット信号の出力まで動作は読み込み時と同じで、ヒット信号が出力されると、データの出力の代わりに予めＣＰＵコア３からバスに出力されていたデータをデータキャッシュ２に書き込む。データＴＬＢ５から例外判定が出た場合、データキャッシュ２へデータは書き込まれず、ＣＰＵコア３にて例外処理が実行される。
【００１３】
この様にキャッシュ動作を高速化するため、データＴＬＢ５での仮想アドレスと物理アドレスの変換とキャッシュ・コントロールにおける一致検出の一部を同時に行っている。
これにより、１サイクル内でキャッシュ動作が可能となっている。特に演算を複数のサイクルで行う場合、メモリとの読み書きを必要とするが、キャッシュ・メモリを使うことでメインメモリとのアクセスを省くことができアクセスによる待ち時間を短縮できる。
【００１４】
図７はキャッシュの読み込み動作のアクセスタイミングであり、各ヒット信号がミスを出力すると、そのサイクルの動きはその時点で停止する。図８はキャッシュの書き込み動作（例外処理ＯＫ）のアクセスタイミングである。図９はキャッシュの書き込み動作（例外処理ＮＧ）のアクセスタイミングである。
「ＴＬＢのＴＡＧ比較」、「ＴＬＢのデータ読み出し」、「キャッシュのＴＡＧ比較」、「キャッシュのヒット信号出力」、「キャッシュのデータ出力」を累積した時間がキャッシュ動作の動作時間を決めている。
【００１５】
さらに高速化（１マシンサイクル＝１周期クロックの短縮）を行うためには、各段階を高速化する必要がある。
【００１６】
【発明が解決しようとする課題】
図１０は従来のチップレイアウトを示す。
データ側のみを例に挙げて説明するが、命令側も上記のように同じである。
ＴＬＢバス入力１１は、データＴＬＢ５のＴＬＢ・ＴＡＧ１２ａとそのＩ／Ｏ１２ｂからなるＴＬＢ・ＴＡＧモジュール１２と、前記ＢＣＩＦ４との間を接続している。ＴＬＢ・ＴＡＧ１２ａはアドレス変換データが格納されているメモリである。
【００１７】
データＴＬＢ５のＴＬＢデータメモリモジュール１４は、データＴＬＢ５のＴＬＢバッファ１４ａとそのＩ／Ｏ１４ｂから構成されている。データキャッシュ２の前記ＴＡＧメモリモジュール９は、キャッシュＴＡＧ９ａとそのＩ／Ｏ９ｂとで構成されている。キャッシュＴＡＧ９ａはキャッシュ・インデックスが格納されているメモリである。
【００１８】
ＴＬＢモジュール１４のＩ／Ｏ１４ｂとＴＡＧメモリモジュール９のＩ／Ｏ９ｂとの間は、ＴＬＢバス出力配線１３によって接続されている。
キャッシュデータメモリモジュール１０はキャッシュ・データが格納されているメモリで、キャッシュデータメモリ１０ａとＩ／Ｏ１０ｂとで構成されており、ＴＡＧメモリモジュール９のＩ／Ｏ９ｂからキャッシュデータメモリモジュール１０のＩ／Ｏ１０ｂには、ＴＡＧメモリモジュール９のヒット信号が入力されている。
【００１９】
キャッシュ・バス１５はＢＣＩＦ４を介しＣＰＵコア３と接続され、また図５に示すＢＣＵ（バスコントロールユニット）１６を介して外部バス１７と接続されている。
従来のチップレイアウトでは、データＴＬＢ５のモジュール１２，１４とデータキャッシュ２のモジュール９，１０を別々のモジュールとして設計し、モジュール間の配線を後に行うため、配線長は長くなる。
【００２０】
一般に遅延時間は 0.4・Ｒ・Ｃ（Ｒ：配線抵抗、Ｃ：配線容量）で表わされ、Ｒ，Ｃも配線が長くなると大きくなる。
ＴＬＢとキャッシュＴＡＧ間の信号伝達時間、つまり「ＴＬＢデータ読み出し」配線長とキャッシュＴＡＧとキャッシュデータメモリモジュール間の信号伝達時間、つまり「キャッシュＨＩＴ信号出力」配線長が高速化の障害となっている。
【００２１】
具体的には、ＴＬＢデータメモリモジュール１４の幅をＬ，ＴＡＧメモリモジュール９の幅を２Ｌ，キャッシュデータメモリモジュール１０の幅を４Ｌ，バスエリア１８の幅をＡとした場合の、ＴＬＢバス出力１３の配線長、つまりＴＬＢバスデータ読み出し配線長Ｔ１の最大長は、
Ｔ１ ＝ Ａ ＋ Ｌ ＋ Ａ ＋ Ａ ＋ Ｌ ＋ ２Ｌ ＋ Ａ
＝４Ａ＋４Ｌ
程度である。
【００２２】
本発明は配線長を従来よりも短縮して高速化処理を実現できるチップレイアウトの半導体集積回路を提供することを目的とする。
【００２３】
【課題を解決するための手段】
本発明の請求項１記載の半導体集積回路は、ＴＬＢとキャッシュで構成されるキャッシュ機能を搭載した１チップＬＳＩであって、キャッシュを構成するＴＡＧメモリモジュールとキャッシュデータメモリモジュールは前記ＴＡＧメモリモジュールの両側に分割して第１，第２のキャッシュデータメモリモジュールを配置し、前記ＴＡＧメモリモジュールと前記第１，第２のキャッシュデータメモリモジュールを更に分割して前記ＴＬＢの両側に配置し、バスエリアを介して前記ＴＬＢの入出力回路に、前記ＴＬＢの片側に配置されるＴＡＧメモリモジュールの入出力回路が向かい合うように配置したことを特徴とする。
【００２４】
請求項２記載の半導体集積回路は、ＴＬＢとキャッシュで構成されるキャッシュ機能を搭載した１チップＬＳＩであって、アドレス変換データが格納されているＴＬＢ・ＴＡＧモジュールとトランスレーション・ルックアサイドデータが格納されているＴＬＢデータメモリモジュールとによって前記ＴＬＢを構成し、キャッシュ・メモリ・インデックスデータが格納されているＴＡＧメモリモジュールとキャッシュデータが格納されているキャッシュデータメモリモジュールとでキャッシュを構成し、前記ＴＡＧメモリモジュールを複数に分割し、前記キャッシュデータメモリモジュールを複数に分割し、複数に分割されたＴＡＧメモリモジュールを、ＴＬＢ・ＴＡＧモジュールとＴＬＢデータメモリモジュールを中央にしてこのＴＬＢ・ＴＡＧモジュールとＴＬＢデータメモリモジュールの配列方向の両側に配置し、複数に分割されたキャッシュデータメモリモジュールを、前記複数に分割されたＴＡＧメモリモジュールの両側に分割して配置したことを特徴とする。
【００２５】
本発明の請求項３記載の半導体集積回路は、請求項２において、ＴＬＢ・ＴＡＧモジュールとＴＬＢデータメモリモジュールの配列方向の両側に分割して配置されたキャッシュ群のうちの一方の入出力回路とＴＬＢの入出力回路とが向かい合うように配置したことを特徴とする。
【００２６】
【発明の実施の形態】
以下、本発明の各実施の形態を図１〜図４に基づいて説明する。
なお、各実施の形態においてモジュールの配置を示す図１〜図３においては、実際のブロック間の距離は配線長の試算には無視できるほどに小さい。
（実施の形態１）
図１は（実施の形態１）を示し、図１０に示した従来のチップレイアウトが次のように変更して配線長の短縮が達成されている。ここではデータキャッシュ２の場合を例に挙げてチップレイアウトを説明する。
【００２７】
図１に示すチップレイアウトでは、データキャッシュ２を構成するＴＡＧメモリモジュール９とキャッシュデータメモリモジュール１０は、ＴＡＧメモリモジュール９の両側に分割して第１，第２のキャッシュデータメモリモジュール１０−１，１０−２が配置されている。
第１のキャッシュデータメモリモジュール１０−１は、第１のキャッシュデータメモリ１９ａとＩ／Ｏ１９ｂとで構成されている。第２のキャッシュデータメモリモジュール１０−２は、第２のキャッシュデータメモリ２０ａとＩ／Ｏ２０ｂとで構成されている。
【００２８】
バスエリア１８を介してデータＴＬＢ５の入出力回路１２ｂ，１４ｂと前記ＴＡＧメモリモジュール９の入出力回路９ｂと第１，第２のキャッシュデータメモリ１０−１，１０−２の入出力回路１９ｂ，２０ｂとが向かい合うように配置されている。
この場合、第１，第２のキャッシュデータメモリモジュール１０−１，１０−２は、図１０では幅が４Ｌであったものが幅が２Ｌに分割されている。バスエリア１８はＡ、ＴＡＧメモリモジュール９の寸法は図１０と同じく一辺がＬである。
【００２９】
このようなチップレイアウトにした場合のＴＬＢバス出力のＴＬＢバスデータ読み出し配線長Ｔ１の最大値は、例えば、ＴＬＢバッファ１４ａの右端から中央までの（１／２）Ｌと第１のキャッシュデータメモリ１９ａの中央から左端までのＬとバス幅Ａを足した（３／２）Ｌ＋Ａ程度となる。これは従来例を示す図１０におけるＴ１（最大値）＝４Ｌ＋４Ａに比べると短縮されている。
【００３０】
次に、キャッシュヒット信号出力の配線長Ｔ２を考察する。
キャッシュヒット信号は、ＴＡＧメモリモジュール９のＩ／Ｏ９ｂの両端から出力される。図１０に示す従来のチップレイアウトではＴ２（最大値）＝４Ｌとなっているのに対して、この（実施の形態１）を示す図１では、Ｔ４（最大値）＝２Ｌ程度になり、各々半分に短縮されている。
【００３１】
なお、命令アクセスとデータアクセスを並列処理するために命令キャッシュ１とデータキャッシュ２とのうちのデータキャッシュ２の場合を例に挙げてチップレイアウトを説明したが、命令キャッシュ１のチップレイアウトの場合も同じである。
（実施の形態２）
データキャッシュ２の記憶容量が増えて、（実施の形態１）における第１，第２のキャッシュデータメモリ１９ａ，２０ａのレイアウト寸法の高さｖが大きくなると信号伝達時間が問題となってくる。そこで（実施の形態２）を示す図２と図３では、第１，第２のキャッシュデータメモリモジュール１０−１，１０−２を（実施の形態１）の図１よりさらに２分割して、幅が２Ｌで高さがｖ／２の第１〜第４のキャッシュデータメモリモジュール１０−１，１０−２，１０−３，１０−４に分割し、データＴＬＢ５の片側に第１，第２のキャッシュデータメモリモジュール１０−１，１０−２を配置し、データＴＬＢ５のもう片側に第３，第４のキャッシュデータメモリモジュール１０−３，１０−４を配置している。さらにこの（実施の形態２）では、データＴＬＢ５を構成するＴＬＢ・ＴＡＧモジュール１２とＴＬＢデータメモリモジュール１４は、ＴＬＢデータメモリモジュール１４が幅２Ｌ，高さがＬ／２に形成され、ＴＬＢ・ＴＡＧモジュール１２が、幅２Ｌ，高さがＬ／２に形成された第１，第２のＴＬＢ・ＴＡＧモジュール１２−１，１２−２に分割されて、ＴＬＢデータメモリモジュール１４の両側に第１，第２のＴＬＢ・ＴＡＧモジュール１２−１，１２−２が配置されている。
【００３２】
図２では、第１のキャッシュＴＡＧ９−１へのＴＬＢデータ読み出し配線長Ｔ１（最大長）は、例えば、ＴＬＢデータメモリモジュール１４の右端から中央までのＬと第１のキャッシュＴＡＧ９−１の中央から左端までのＬとバス幅Ａを足したＴ１＝２Ｌ＋Ａの程度となり、図３では、第２のキャッシュＴＡＧ９−２へのＴＬＢデータ読み出し配線長Ｔ１（最大長）はＴ１＝（５／２）Ｌ＋２Ａの程度となる。キャッシュヒット信号出力配線長Ｔ２（最大長）は２Ｌと（実施の形態１）の図１と変わらない。
【００３３】
第２のキャッシュＴＡＧ９−２へのＴＬＢデータ読み出し配線長Ｔ１は（５／２）Ｌ＋２Ａの程度と（実施の形態１）の図１の場合よりも長くなるが、キャッシュデータの高さによるキャッシュデータ読み取り時間の方が支配的なら、図３の配置を選択することとなる。
（実施の形態３）
図４は（実施の形態２）におけるアドレス長３２ビット、データ長１２８ビット、ＴＬＢのエントリ３２、キャッシュのエントリ１２８の時のチップレイアウトの具体例である。なお、ここでエントリとは、入力されたデータと比較されるデータの登録数である。
【００３４】
従来のレイアウトでは第１，第２のＴＬＢ・ＴＡＧモジュール１２−１，１２−２の幅が約３００μｍ、ＴＬＢバッファ１４の幅は約２００μｍ、両者の高さが約３００μｍであったものが、このレイアウトによると、第１，第２のＴＬＢ・ＴＡＧモジュール１２−１，１２−２の幅が各々約３００μｍ、ＴＬＢバッファ１４の幅が約５００μｍ、両者の高さは約１５０μｍになる。
【００３５】
第１，第２のキャッシュＴＡＧ９−１，９−２の幅は約４００μｍ、高さは約７００μｍである。従来はキャッシュデータメモリの幅は約１６００μｍであるが、本発明では横方向に２分割しているため、第１〜第４のキャッシュデータメモリモジュール１０−１〜１０−４の幅は約８００μｍ、高さは約７００μｍである。バスエリアの幅は約１００μｍである。
【００３６】
そこで、ＴＬＢＴＡＧとＴＬＢＤＡＴＡブロックの高さ、幅をＬ、キャッシュＴＡＧの幅を２Ｌ、キャッシュＤＡＴＡの幅を４Ｌ、バスエリアの幅をＡ（実施例では３２本分の配線）と仮定している。
【００３７】
【発明の効果】
以上のように本発明によれば、ＴＬＢとキャッシュで構成されるキャッシュ機能を搭載した１チップＬＳＩであって、キャッシュを構成するキャッシュＴＡＧとキャッシュデータメモリは前記キャッシュＴＡＧの両側に分割して第１，第２のキャッシュデータメモリを配置し、バスエリアを介して前記データＴＬＢの入出力回路と前記キャッシュＴＡＧの入出力回路と第１，第２のキャッシュデータメモリの入出力回路とが向かい合うように配置したため、配線長を従来よりも短縮して高速化処理が可能な１チップＬＳＩを実現できるものである。
【図面の簡単な説明】
【図１】本発明の（実施の形態１）の１チップＬＳＩにおけるキャッシュ部分のチップレイアウト図
【図２】本発明の（実施の形態２）の１チップＬＳＩにおけるキャッシュ部分のチップレイアウト図
【図３】同実施の形態のキャッシュ部分のチップレイアウト図
【図４】本発明の（実施の形態３）の１チップＬＳＩにおけるキャッシュ部分のチップレイアウト図
【図５】従来の１チップＬＳＩにおけるキャッシュ関連バスの構成図
【図６】同従来例のキャッシュ部分の構成図
【図７】同従来例のキャッシュの読み出し系のアクセスタイミング図
【図８】同従来例のキャッシュの書き込み系の例外判定ＯＫの場合のアクセスタイミング図
【図９】同従来例のキャッシュの書き込み系の例外判定ＮＧの場合のアクセスタイミング図
【図１０】同従来例の１チップＬＳＩにおけるキャッシュ部分のチップレイアウト図
【符号の説明】
１    命令キャッシュ
２    データキャッシュ
３    ＣＰＵコア
４    ＢＣＩＦ（バス・インターフェース）
５    データＴＬＢ
８    アドレス生成部
９    ＴＡＧメモリモジュール
９−１，９−２    複数に分割されたＴＡＧメモリモジュール
９ｂ    ＴＡＧメモリモジュール９の入出力回路
１０    キャッシュデータメモリモジュール
１０−１〜１０−４    複数に分割されたキャッシュデータメモリモジュール
１２    ＴＬＢ・ＴＡＧモジュール
１２−１，１２−２    第１，第２のＴＬＢ・ＴＡＧモジュール
１４    ＴＬＢデータメモリモジュール
Ｔ１    ＴＬＢバスデータ読み出し配線長（ＴＬＢバス出力１３の配線長）
【図１】
0004330236.tif 000002
【図２】
0004330236.tif 000003
【図３】
0004330236.tif 000004
【図４】
0004330236.tif 000005
【図５】
0004330236.tif 000006
【図６】
0004330236.tif 000007
【図７】
0004330236.tif 000008
【図８】
0004330236.tif 000009
【図９】
0004330236.tif 000010
【図１０】
0004330236.tif 000011