(57)【要約】【課題】  スタックデータを保持するキャッシュメモリが搭載されるシステムのコストを削減する。【解決手段】  キャッシュメモリは、データが格納される第１データキャッシュ領域と、スタックデータが格納されるスタックキャッシュ領域とを含む第１ウエイと、データが格納される第２データキャッシュ領域を含む第２ウエイとを有している。スタックヒット判定回路は、アクセスされるスタックデータがスタックキャッシュ領域に保持されているときにスタックヒット信号をアサートする。マスク回路は、スタックヒット信号のアサート中に、第１データキャッシュ領域のアクセスを禁止してスタックキャッシュ領域をアクセスするために、アクセスアドレスの一部をマスクする。これにより、通常のデータとスタックデータとを１つのキャッシュメモリに保持できる。【選択図】    図１
2012027652.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサーによりアクセスされるメモリのデータ領域の一部と同じアドレスが割り当てられ、データが格納される第１データキャッシュ領域と、前記メモリのスタック領域の一部と同じアドレスが割り当てられ、スタックポインターが示す領域を含む連続する所定数のスタックデータが格納されるスタックキャッシュ領域とを含み、前記プロセッサーからのアクセスアドレスに応じてアクセスされる第１ウエイと、
前記メモリのデータ領域の一部と同じアドレスが割り当てられ、データが格納される第２データキャッシュ領域を含み、前記アクセスアドレスに応じてアクセスされる少なくとも１つの第２ウエイと、
前記アクセスアドレスが前記スタックキャッシュ領域に保持されているスタックデータに対応するアドレスを示すときにスタックヒット信号をアサートするスタックヒット判定回路と、
前記スタックヒット信号のネゲート中に、前記アクセスアドレスをマスクすることなく前記第１および第２ウエイに出力し、前記スタックヒット信号のアサート中に、前記第１データキャッシュ領域のアクセスを禁止してスタックキャッシュ領域をアクセスするために、前記アクセスアドレスの一部をマスクして前記第１および第２ウエイに出力するマスク回路と、
前記アクセスアドレスが前記第１または第２データキャッシュ領域に保持されているデータに対応するアドレスを示すときに、前記第１または第２データキャッシュ領域から読み出される対応するデータを選択して出力するデータ選択回路と、
前記スタックヒット信号のアサート中に前記スタックキャッシュ領域から出力されるスタックデータを選択し、前記スタックヒット信号のネゲート中に前記データ選択回路から出力されるデータを選択するスタックセレクターと
を備えていることを特徴とするキャッシュメモリ。
【請求項２】
前記第１ウエイは、２のｎ乗個（ｎは２以上の整数）のアドレスが順に割り当てられた２のｎ乗個の記憶領域を含み、
前記スタックキャッシュ領域は、前記第１ウエイの（２のｍ乗）分の１（ｍはｎより小さい正の整数）の領域が割り当てられ、２の（ｎ−ｍ）乗個のアドレスが順に割り当てられた２の（ｎ−ｍ）乗個の記憶領域を含み、
前記マスク回路は、前記スタックヒット信号のアサート中に、前記スタックキャッシュ領域にアクセスするために前記アクセスアドレスの上位側のｍビットをマスクすること
を特徴とする請求項１記載のキャッシュメモリ。
【請求項３】
前記スタックキャッシュ領域のアドレス空間のサイズを示すスタックサイズが書き換え可能に保持されるスタックサイズレジスターを備え、
前記スタックヒット判定回路は、前記スタックポインターの値を先頭として前記スタックサイズまでの範囲に前記アクセスアドレスが含まれるときに前記スタックヒット信号をアサートすること
を特徴とする請求項１または請求項２記載のキャッシュメモリ。
【請求項４】
アプリケーションプログラムの１回の実行に必要なサイクル数を、前記スタックサイズを変更しながら複数回モニタし、モニタ結果に基づいて、前記サイクル数が最小になる前記スタックサイズを前記スタックサイズレジスターに設定するサイズ制御回路を備えていること
を特徴とする請求項３記載のキャッシュメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリに関する。
【背景技術】
【０００２】
プロセッサーが実行するプログラムで扱うプログラムカウンターやパラメーター等を一時的にスタックデータとして待避するために、スタック領域が設けられる。そして、スタック領域のアクセス効率を向上するために、スタックデータを保持するためのキャッシュメモリが提案されている（例えば、特許文献１−２参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６３−１８２７５６号公報
【特許文献２】特開平７−８４８８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、この種のキャッシュメモリは、アドレスを更新しながらスタック領域に順に保持されるスタックデータのアクセス効率を向上するために形成されている。このため、ランダムにアクセスされる通常のデータを保持するキャッシュメモリの他に、スタックデータ用のキャッシュメモリが必要になり、システムのコストは増加する。
【課題を解決するための手段】
【０００５】
本発明の一形態では、キャッシュメモリは、プロセッサーによりアクセスされるメモリのデータ領域の一部と同じアドレスが割り当てられ、データが格納される第１データキャッシュ領域と、メモリのスタック領域の一部と同じアドレスが割り当てられ、スタックポインターが示す領域を含む連続する所定数のスタックデータが格納されるスタックキャッシュ領域とを含み、プロセッサーからのアクセスアドレスに応じてアクセスされる第１ウエイと、メモリのデータ領域の一部と同じアドレスが割り当てられ、データが格納される第２データキャッシュ領域を含み、アクセスアドレスに応じてアクセスされる少なくとも１つの第２ウエイと、アクセスアドレスがスタックキャッシュ領域に保持されているスタックデータに対応するアドレスを示すときにスタックヒット信号をアサートするスタックヒット判定回路と、スタックヒット信号のネゲート中に、アクセスアドレスをマスクすることなく第１および第２ウエイに出力し、スタックヒット信号のアサート中に、第１データキャッシュ領域のアクセスを禁止してスタックキャッシュ領域をアクセスするために、アクセスアドレスの一部をマスクして第１および第２ウエイに出力するマスク回路と、アクセスアドレスが第１または第２データキャッシュ領域に保持されているデータに対応するアドレスを示すときに、第１または第２データキャッシュ領域から読み出される対応するデータを選択して出力するデータ選択回路と、スタックヒット信号のアサート中にスタックキャッシュ領域から出力されるスタックデータを選択し、スタックヒット信号のネゲート中にデータ選択回路から出力されるデータを選択するスタックセレクターとを含んでいる。
【発明の効果】
【０００６】
第１ウエイの一部を利用してスタックデータを保持することにより、スタックデータ専用のキャッシュメモリを設ける必要がなくなり、キャッシュメモリが搭載されるシステムのコストを削減できる。
【図面の簡単な説明】
【０００７】
【図１】一実施形態におけるキャッシュメモリの例を示している。
【図２】図１に示したキャッシュメモリが搭載されるシステムの例を示している。
【図３】図１に示したキャッシュメモリのスタック動作の例を示している。
【図４】図１に示したキャッシュメモリのスタック動作の別の例を示している。
【図５】図１に示したキャッシュメモリの動作の例を示している。
【図６】別の実施形態におけるキャッシュメモリの例を示している。
【図７】図６に示したサイズ制御回路の動作の例を示している。
【発明を実施するための形態】
【０００８】
以下、実施形態を、図面を用いて説明する。
【０００９】
図１は、一実施形態におけるキャッシュメモリＣＭの例を示している。キャッシュメモリＣＭは、ＣＰＵ等のプロセッサーＰＲＯＣとともに半導体集積回路チップとして形成される。あるいは、キャッシュメモリＣＭは、チップ状のプロセッサーＰＲＯＣに接続される半導体集積回路チップとして形成される。キャッシュメモリＣＭは、プロセッサーＰＲＯＣによりランダムにアクセスされる通常のデータを一時的に保持するデータキャッシュおよびプロセッサーＰＲＯＣにより扱われるスタックデータを一時的に保持するスタックキャッシュとして使用される。すなわち、この実施形態のキャッシュメモリＣＭは、データキャッシュの機能とともにスタックキャッシュの機能を有している。
【００１０】
キャッシュメモリＣＭは、４つのウエイＷＡＹ（ＷＡＹ０−ＷＡＹ３）、アドレスレジスターＡＤＲＥＧ、スタックサイズレジスターＳＳＩＺＥＲ、スタックヒット判定回路ＳＨＪＤＧ、マスク回路ＭＡＳＫ、アドレスデコーダーＡＤＤＥＣ、比較回路ＣＭＰ（ＣＭＰ０−ＣＭＰ３）、ウエイセレクターＷＳＥＬおよびスタックセレクターＳＳＥＬを有している。すなわち、キャッシュメモリＣＭは、いわゆる４ウエイのセットアソシエティブ方式を採用している。
【００１１】
各ウエイＷＡＹ０−ＷＡＹ３は、同じアドレスサイズおよび同じ記憶容量を有している。各ウエイＷＡＹ０−ＷＡＹ３に割り当てられるアドレス空間は、２のｎ乗（ｎは２以上の整数）である。ウエイＷＡＹ０は、スタックキャッシュ領域ＳＴＣと、タグ領域ＴＡＧ０およびデータ領域ＤＡＴＡ０を有するデータキャッシュ領域ＤＴＣ０とを有している。この例では、スタックキャッシュ領域ＳＴＣとデータキャッシュ領域ＤＴＣ０は、互いに同じアドレスサイズを有しており、２の（ｎ−１）乗のアドレス空間をそれぞれ有している。例えば、スタックキャッシュ領域ＳＴＣには、サブルーチンコールされるときの戻りアドレスやレジスター値が保持される。データ領域ＤＡＴＡ０には、プロセッサーＰＲＯＣによりランダムにアクセスされる通常のデータが保持される。タグ領域ＴＡＧ０には、データ領域ＤＡＴＡ０に保持されているデータを読み出したメモリＭＥＭの上位アドレスが保持される。
【００１２】
ウエイＷＡＹ１は、タグ領域ＴＡＧ１およびデータ領域ＤＡＴＡ１を有するデータキャッシュ領域ＤＴＣ１を有している。ウエイＷＡＹ２は、タグ領域ＴＡＧ２およびデータ領域ＤＡＴＡ２を有するデータキャッシュ領域ＤＴＣ２を有している。ウエイＷＡＹ３は、タグ領域ＴＡＧ３およびデータ領域ＤＡＴＡ３を有するデータキャッシュ領域ＤＴＣ３を有している。タグ領域ＴＡＧ１−ＴＡＧ３の機能は、タグ領域ＴＡＧ０の機能と同じである。データ領域ＤＡＴＡ１−ＤＡＴＡ３の機能は、データ領域ＤＡＴＡ０の機能と同じである。
【００１３】
アドレスレジスターＡＤＲＥＧは、プロセッサーＰＲＯＣから出力されるアクセスアドレスＡＤＲＳの上位ビット群および下位ビット群をそれぞれ保持するタグ部ＴＡＧおよびインデックス部ＩＮＤＥＸを有している。例えば、アクセスアドレスＡＤＲＳは、プロセッサーＰＲＯＣ内のロードストアユニットＬＤ／ＳＴから供給される。
【００１４】
スタックサイズレジスターＳＳＩＺＥＲは、ウエイＷＡＹ０に割り当てられるスタックキャッシュ領域ＳＴＣの記憶容量を、スタックサイズＳＳＩＺＥとして保持する。スタックサイズＳＳＩＺＥは、スタックキャッシュ領域ＳＴＣに割り当てられるアドレス空間のサイズを示し、スタックキャッシュ領域ＳＴＣに保持される最大のデータ数を示す。スタックサイズレジスターＳＳＩＺＥＲは、書き換え可能なラッチ等で形成されてもよく、書き換えできない固定レジスターとして形成されてもよい。固定レジスターに設定される値は、キャッシュメモリＣＭを含む半導体集積回路の製造に使用される金属配線層のフォトマスクのパターンとして設定され、あるいは、キャッシュメモリＣＭを含む半導体集積回路上に形成されるヒューズ回路を用いて設定される。
【００１５】
スタックヒット判定回路ＳＨＪＤＧは、スタックポインターＳＰとスタックサイズＳＳＩＺＥを用いて、アクセスアドレスＡＤＲＳがスタックキャッシュ領域ＳＴＣに現在割り当てられているアドレス範囲に含まれているか否かを判定する。ここで、スタックポインターＳＰは、最新のスタック情報が格納されているアドレスを保持するために、プロセッサーＰＲＯＣ内に設けられている。また、アクセスアドレスＡＤＲＳは、読み出しアクセス時および書き込みアクセス時にプロセッサーＰＲＯＣから供給される。そして、スタックヒット判定回路ＳＨＪＤＧは、アクセスアドレスＡＤＲＳがスタックキャッシュ領域ＳＴＣに現在割り当てられているアドレスのいずれかを示すときにスタックヒット信号ＳＨＩＴをアサートする。スタックヒット判定回路ＳＨＪＤＧは、アクセスアドレスＡＤＲＳがスタックキャッシュ領域ＳＴＣに割り当てられているアドレスのいずれも示さないときにスタックヒット信号ＳＨＩＴをネゲートする。
【００１６】
マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴがネゲートされているときに、アドレスレジスターＡＤＲＥＧのインデックス部ＩＮＤＥＸの全ビットの値をマスクすることなくアドレスデコーダーＡＤＤＥＣに供給する。マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴがアサートされているときに、スタックサイズＳＳＩＺＥに応じてインデックス部ＩＮＤＥＸの上位ビットの少なくとも１ビットをマスクし、マスクしたインデックス部ＩＮＤＥＸの値をアドレスデコーダーＡＤＤＥＣに供給する。マスクされたビットは、論理０に設定される。マスク回路ＭＡＳＫによるマスク動作により、後述するように、スタックヒット信号ＳＨＩＴのアサート中に、データキャッシュ領域ＤＴＣ０のアクセスが禁止され、スタックキャッシュ領域ＳＴＣがアクセスされる。
【００１７】
スタックキャッシュ領域ＳＴＣがウエイＷＡＹ０の記憶容量の半分に割り当てられているとき、マスク回路ＭＡＳＫは、インデックス部ＩＮＤＥＸの最上位ビットをマスクする。スタックキャッシュ領域ＳＴＣがウエイＷＡＹ０の記憶容量の４分の１に割り当てられているとき、マスク回路ＭＡＳＫは、インデックス部ＩＮＤＥＸの最上位ビットから２ビットをマスクする。スタックキャッシュ領域ＳＴＣがウエイＷＡＹ０の記憶容量の８分の１に割り当てられているとき、マスク回路ＭＡＳＫは、インデックス部ＩＮＤＥＸの最上位ビットから３ビットをマスクする。
【００１８】
アドレスデコーダーＡＤＤＥＣは、マスク回路ＭＡＳＫから供給されるインデックス部ＩＮＤＥＸの値をデコードし、デコード信号を生成する。そして、各ウエイＷＡＹ０−ＷＡＹ３において、インデックス部ＩＮＤＥＸの値に対応するデコード信号が示す記憶領域がアクセスされ、ウエイＷＡＹ０−ＷＡＹ３にそれぞれキャッシュされているデータおよびタグＴＡＧ０−ＴＡＧ３が読み出される。なお、スタックキャッシュ領域ＳＴＣはタグ領域を持たない。このため、ウエイＷＡＹ０においてスタックキャッシュ領域ＳＴＣがアクセスされるとき、スタックデータとダミーのタグとが読み出される。例えば、ダミーのタグの値は、キャッシュメモリＣＭが搭載されるシステムのパワーオン時に、アドレスレジスターＡＤＲＥＧに保持可能なタグ部ＴＡＧの全ての値と異なる値に設定される。
【００１９】
比較回路ＣＭＰ０−ＣＭＰ３は、互いに同じ回路である。比較回路ＣＭＰ０は、アドレスレジスターＡＤＲＥＧに保持されているタグ部ＴＡＧの値が、ウエイＷＡＹ０から読み出されるタグＴＡＧ０と等しいときに、一致信号ＣＯＩＮ０をアサートする。比較回路ＣＭＰ１は、アドレスレジスターＡＤＲＥＧに保持されているタグ部ＴＡＧの値が、ウエイＷＡＹ１から読み出されるタグＴＡＧ１と等しいときに、一致信号ＣＯＩＮ１をアサートする。同様に、比較回路ＣＭＰ２は、タグ部ＴＡＧの値がウエイＷＡＹ２から読み出されるタグＴＡＧ２と等しいときに、一致信号ＣＯＩＮ２をアサートする。比較回路ＣＭＰ３は、タグ部ＴＡＧの値がウエイＷＡＹ３から読み出されるタグＴＡＧ３と等しいときに、一致信号ＣＯＩＮ３をアサートする。
【００２０】
ウエイセレクターＷＳＥＬは、アサートされた一致信号ＣＯＩＮ（ＣＯＩＮ０−ＣＯＩＮ３のいずれか）に対応するウエイＷＡＹ（ＷＡＹ０−ＷＡＹ３のいずれか）から読み出されるデータＤＡＴＡ（ＤＡＴＡ０−ＤＡＴＡ３のいずれか）を選択し、スタックセレクターＳＳＥＬに出力する。なお、ウエイＷＡＹ０のスタックキャッシュ領域ＳＴＣからデータが読み出されるとき、ダミーのタグはタグ部ＴＡＧの値と一致しないため、一致信号ＣＯＩＮ０はアサートされない。比較回路ＣＭＰ０−ＣＭＰ３およびウエイセレクターＷＳＥＬは、アクセスアクセスアドレスＡＤＲＳに含まれるタグ部ＴＡＧの値がウエイＷＡＹ０−ＷＡＹ３に保持されているタグＴＡＧ０−ＴＡＧ３のいずれかと一致するときに、対応するデータＤＴＡＴ０−ＤＡＴＡ３を選択して出力するデータ選択回路として動作する。
【００２１】
スタックセレクターＳＳＥＬは、スタックヒット信号ＳＨＩＴがネゲートされているとき、入力端子ＩＮ０で受けるウエイＷＡＹ０−ＷＡＹ３のいずれかからのデータ（キャッシュされたデータ）をデータＤＴとしてプロセッサーＰＲＯＣに出力する。スタックセレクターＳＳＥＬは、スタックヒット信号ＳＨＩＴがアサートされているとき、入力端子ＩＮ１で受けるウエイＷＡＹ０からのデータ（スタックデータ）をデータＤＴとしてプロセッサーＰＲＯＣに出力する。
【００２２】
なお、各ウエイＷＡＹ０−ＷＡＹ３にデータを書き込む動作は、一般的なキャッシュメモリと同様である。ウエイＷＡＹ０にスタックデータを書き込む動作では、インクリメントされたスタックポインターＳＰに対応するスタックキャッシュ領域ＳＴＣの記憶領域にスタックデータが巡回的に書き込まれる。スタックキャッシュ領域ＳＴＣのスタック動作については、図３および図４で説明する。
【００２３】
図２は、図１に示したキャッシュメモリＣＭが搭載されるシステムＳＹＳの例を示している。例えば、システムＳＹＳは、パーソナルコンピュータ等の情報処理システム、あるいは携帯電話やデジタル情報機器等の民生機器の少なくとも一部である。システムＳＹＳは、図１に示したキャッシュメモリＣＭ、プロセッサーＰＲＯＣと、プログラムメモリＰＭおよびメモリＭＥＭとを有している。メモリＭＥＭは、スタックデータを保持するスタック領域ＳＴＡを有している。特に限定されないが、プログラムメモリＰＭはＲＯＭやＲＡＭであり、メモリＭＥＭはＲＡＭである。メモリＭＥＭは、バスＢＵＳを介してキャッシュメモリＣＭに接続されている。
【００２４】
プロセッサーＰＲＯＣは、一般的なＣＰＵと同様に、プログラムカウンターＰＣ、フェッチユニットＦＥＴＣ、デコードユニットＤＥＣ、実行ユニットＥＸＥ、スタックポインターＳＰおよびロードストアユニットＬＤ／ＳＴを有している。フェッチユニットＦＥＴＣは、プログラムカウンターＰＣの値に基づいてプログラムメモリＰＭに格納されている命令コードを読み出す。デコードユニットＤＥＣは、読み出した命令コードをデコードする。実行ユニットＥＸＥは、デコードされた命令コードに応じて動作し、例えば、ロードストアユニットＬＤ／ＳＴの動作を制御する。
【００２５】
ロードストアユニットＬＤ／ＳＴは、命令コードがロード命令を含むときに、読み出しアクセス要求とともにアクセスアドレスＡＤＲＳを出力する。そして、ロードストアユニットＬＤ／ＳＴは、メモリＭＥＭまたはキャッシュメモリＣＭからデータＤＴを受ける。ロードストアユニットＬＤ／ＳＴは、命令コードがストア命令を含むときに、書き込みアクセス要求とともにアクセスアドレスＡＤＲＳおよび書き込みデータＤＴを出力する。
【００２６】
スタックポインターＳＰは、最新のスタックデータが保持されている記憶領域（例えば、メモリＭＥＭ）のアドレスを保持する。スタックポインターＳＰの値は、サブルーチンのコール命令、リターン命令や、プッシュ命令、プル命令が実行されるときに更新される。
【００２７】
図３は、図１に示したキャッシュメモリＣＭのスタック動作の例を示している。この例では、説明を簡単にするために、アクセスアドレスＡＤＲＳは６ビットとし、タグ部ＴＡＧおよびインデックス部ＩＮＤＥＸはそれぞれ３ビットとする。スタックキャッシュ領域ＳＴＣのアドレス空間は、２進数で”０００”から”０１１”までの４つ（２の２乗）とする。スタックキャッシュ領域ＳＴＣは、４つのデータを巡回的に記憶する。スタック領域ＳＴＡのアドレス空間は、２進数で”０１００００”から”０１０１１１”までの８つ（２の３乗）とする。
【００２８】
符号Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇは、スタックデータであり、この順でスタックキャッシュ領域ＳＴＣおよびメモリＭＥＭのスタック領域ＳＴＡにスタックされる。また、データ”Ａ”、”Ｂ”、”Ｃ”、”Ｄ”、”Ｅ”、”Ｆ”、”Ｇ”は、逆順でスタックキャッシュ領域ＳＴＣおよびメモリＭＥＭのスタック領域ＳＴＡからアンスタックされる。状態ＳＴ１から状態ＳＴ５への変化は、データのスタックを示す。状態ＳＴ５から状態ＳＴ１への変化は、データのアンスタックを示す。
【００２９】
スタック領域ＳＴＡに太枠で示した領域は、スタックキャッシュ領域ＳＴＣに対応するミラー領域である。換言すれば、各状態ＳＴ１−ＳＴ５において、スタックキャッシュ領域ＳＴＣに保持されているスタックデータは、順序は異なるが、太枠で示した領域に保持されるべきデータである。
【００３０】
図１に示したスタックヒット判定回路ＳＨＪＤＧは、太枠で示した範囲のアクセスアドレスＡＤＲＳを受けたとき、スタックヒット信号ＳＨＩＴをアサートする。スタック領域ＳＴＡの太枠内に網掛けで示した記憶領域は、スタックポインターＳＰが指し示す位置である。この例では、プロセッサーＰＲＯＣの動作によりスタック領域ＳＴＡに格納されるべきデータは、まずスタックキャッシュ領域ＳＴＣに格納される。このため、スタックキャッシュ領域ＳＴＣが満杯になるまでスタック領域ＳＴＡは空である（状態ＳＴ１、ＳＴ２）。
【００３１】
スタックデータ”Ｄ”がスタックされるとき、キャッシュメモリＣＭの状態は、ＳＴ１からＳＴ２に遷移する。スタックポインターＳＰは、”０１００１０”から”０１００１１”に増加される。プロセッサーＰＲＯＣは、スタックポインターＳＰと同じ値のアクセスアドレスＡＤＲＳを出力する。アクセスアドレスＡＤＲＳがスタックポインターＳＰと同じ値であるため、スタックヒット判定回路ＳＨＪＤＧは、スタックヒット信号ＳＨＩＴをアサートする。
【００３２】
実際には、スタックヒット判定回路ＳＨＪＤＧは、アクセスアドレスＡＤＲＳがスタックポインターＳＰを先頭とする４つのアドレス範囲（図３の太枠内）を示すときに、スタックヒット信号ＳＨＩＴをアサートする。スタック動作では、アクセスアドレスＡＤＲＳはスタックポインターＳＰと常に同じ値になるため、スタックヒット信号ＳＨＩＴは、毎回アサートされる。
【００３３】
マスク回路ＭＡＳＫは、アサートされたスタックヒット信号ＳＨＩＴに応答して、インデックス部ＩＮＤＥＸ（＝”０１１”）の最上位ビットをマスクして論理０に設定し、”０１１”をアドレスデコーダーＡＤＤＥＣに出力する。そして、スタックキャッシュ領域ＳＴＣの”０１１”番地にスタックデータ”Ｄ”が格納される。
【００３４】
次に、スタックデータ”Ｅ”がスタックされるとき、状態はＳＴ２からＳＴ３に遷移する。スタックポインターＳＰは、”０１００１１”から”０１０１００”に増加される。プロセッサーＰＲＯＣがスタックポインターＳＰと同じ値のアクセスアドレスＡＤＲＳを出力するため、スタックヒット判定回路ＳＨＪＤＧは、スタックヒット信号ＳＨＩＴをアサートする。マスク回路ＭＡＳＫによりインデックス部ＩＮＤＥＸ（＝”１００”）の最上位ビットがマスクされて論理０に設定され、”０００”がアドレスデコーダーＡＤＤＥＣに出力される。
【００３５】
このとき、スタックキャッシュ領域ＳＴＣの”０００”番地には、スタックデータ”Ａ”が格納されている。このため、まず、スタックキャッシュ領域ＳＴＣからスタックデータ”Ａ”が読み出される。この後、スタックキャッシュ領域ＳＴＣの”０００”番地にスタックデータ”Ｅ”が格納される。スタックデータ”Ａ”は、図２に示したバスＢＵＳの空きサイクルに、スタックポインターＳＰの値から４を引いた値のアドレス空間（＝”０１００００”）のスタック領域ＳＴＡに書き込まれる。すなわち、スタックキャッシュ領域ＳＴＣからあふれたスタックデータは、自動的にメモリＭＥＭにキャッシュアウトされる。
【００３６】
同様に、スタックデータ”Ｆ”がスタックされるとき（状態ＳＴ３から状態ＳＴ４への遷移）、スタックポインターＳＰの値の下位３ビットに相当するインデックス部ＩＮＤＥＸ（＝”１０１”）の最上位ビットがマスクされて論理０に設定され、”００１”がアドレスデコーダーＡＤＤＥＣに出力される。そして、スタックキャッシュ領域ＳＴＣの”００１”番地に格納されているスタックデータ”Ｂ”が読み出された後、スタックデータ”Ｆ”が格納される。追い出されたスタックデータ”Ｂ”は、スタックポインターＳＰの値から４を引いた値のアドレス空間（＝”０１０００１”）のスタック領域ＳＴＡに書き込まれる。スタックデータ”Ｇ”のスタック動作も同様に実施される。
【００３７】
一方、スタックデータ”Ｇ”がアンスタックされるとき、状態はＳＴ５からＳＴ４に遷移する。プロセッサーＰＲＯＣは、スタックポインターＳＰと同じ値（＝”０１０１１０”）のアクセスアドレスＡＤＲＳを出力する。スタックヒット判定回路ＳＨＪＤＧは、アクセスアドレスＡＤＲＳがスタックポインターＳＰを先頭とする４つのアドレス範囲（図３の太枠内）を示すため、スタックヒット信号ＳＨＩＴをアサートする。アンスタック動作においても、アクセスアドレスＡＤＲＳはスタックポインターＳＰと常に同じ値になるため、スタックヒット信号ＳＨＩＴは、毎回アサートされる。
【００３８】
マスク回路ＭＡＳＫは、アサートされたスタックヒット信号ＳＨＩＴに応答して、スタックポインターＳＰの値の下位３ビットに相当するインデックス部ＩＮＤＥＸ（＝”１１０”）の最上位ビットをマスクして論理０に設定し、”０１０”をアドレスデコーダーＡＤＤＥＣに出力する。そして、スタックキャッシュ領域ＳＴＣの”０１０”番地からスタックデータ”Ｇ”が読み出される。この後、スタックポインターＳＰは、”０１０１１０”から”０１０１０１”に減少される。
【００３９】
さらに、バスＢＵＳの空きサイクルに、スタックポインターＳＰの値から３を引いた値のアドレス空間（＝”０１００１０”）のスタック領域ＳＴＡからスタックデータ”Ｃ”が読み出される。読み出されたスタックデータ”Ｃ”は、スタックキャッシュ領域ＳＴＣの”０１０”番地に書き込まれる。すなわち、スタック領域ＳＴＡが縮小されるとき、新たにキャッシュ対象となるスタックデータは、自動的にメモリＭＥＭにキャッシュインされる。
【００４０】
同様に、スタックデータ”Ｆ”がアンスタックされるとき（状態ＳＴ４から状態ＳＴ３への遷移）、スタックポインターＳＰの値の下位３ビットに相当するインデックス部ＩＮＤＥＸ（＝”１０１”）の最上位ビットがマスクされ、”００１”がアドレスデコーダーＡＤＤＥＣに出力される。そして、スタックキャッシュ領域ＳＴＣの”００１”番地に格納されているスタックデータ”Ｆ”が読み出される。この後、スタックポインターＳＰは、”０１０１０１”から”０１０１００”に減少される。また、スタック領域ＳＴＡからスタックデータ”Ｂ”が読み出され、スタックデータ”Ｂ”は、スタックキャッシュ領域ＳＴＣの”００１”番地に書き込まれる。
【００４１】
図４は、図１に示したキャッシュメモリＣＭのスタック動作の別の例を示している。図３と同じ動作については、詳細な説明は省略する。図４においても、アクセスアドレスＡＤＲＳは６ビットとし、タグ部ＴＡＧおよびインデックス部ＩＮＤＥＸはそれぞれ３ビットとする。この例では、スタックデータは、スタックキャッシュ領域ＳＴＣに格納されるときに、メモリＭＥＭのスタック領域ＳＴＡにも格納される。その他の動作は、図３と同様である。スタック領域ＳＴＡへのスタックデータの書き込みは、図２に示したバスＢＵＳの空きサイクルに実施される。
【００４２】
図５は、図１に示したキャッシュメモリＣＭの動作の例を示している。この例では、説明を簡単にするために、図３と同様に、アクセスアドレスＡＤＲＳは６ビットとし、タグ部ＴＡＧおよびインデックス部ＩＮＤＥＸはそれぞれ３ビットとする。また、データは、ウエイＷＡＹ０、ＷＡＹ１に格納されているとする。スタックキャッシュ領域ＳＴＣのアドレス空間は、図３および図４と同様に、２進数で”０００”から”０１１”までとする。スタックキャッシュ領域ＳＴＣの状態は、図４の状態ＳＴ４と同じである。
【００４３】
ウエイＷＡＹ０における通常のデータを格納するためのデータキャッシュ領域ＤＴＣ０のアドレス空間は、２進数で”１００”から”１１１”までとする。ウエイＷＡＹ１における通常のデータを格納するためのデータキャッシュ領域ＤＴＣ１のアドレス空間は、２進数で”０００”から”１１１”までとする。データキャッシュ領域ＤＴＣ０−ＤＴＣ３に割り当てられたアドレスは、インデックス部ＩＮＤＥＸの値に対応する。データキャッシュ領域ＤＴＣ０、ＤＴＣ１に格納されている通常のデータは、アルファベットの小文字で示している。
【００４４】
メモリＭＥＭにおいてスタックキャッシュ領域ＳＴＣに示す太枠は、図３および図４と同様に、スタックキャッシュ領域ＳＴＣに対応するミラー領域である。スタック領域ＳＴＡの太枠内に網掛けで示した記憶領域は、図３および図４と同様に、スタックポインターＳＰが指し示す位置である。ウエイＷＡＹ０−ＷＡＹ３の空欄は、データが格納されていないことを示し、あるいは無効なデータが格納されていることを示す。メモリＭＥＭの空欄は、データが格納されていないことを示し、ウエイＷＡＹ０−ＷＡＹ３に格納されていないデータを保持していることを示す。
【００４５】
例えば、読み出しアクセスのアクセスアドレスＡＤＲＳが２進数で”００００００”を示すとき、図１に示したアドレスデコーダーＡＤＤＥＣは、下位３ビットで示されるインデックス部ＩＮＤＥＸの値（＝”０００”）をデコードする。そして、タグ情報が、ウエイＷＡＹ１−ＷＡＹ３の”０００”を示すタグ領域ＴＡＧ１−ＴＡＧ３から読み出される。ウエイＷＡＹ０からは無効なタグ情報が読み出される。アクセスアドレスＡＤＲＳの上位３ビットで示されるタグ部ＴＡＧの値（＝”０００”）は、読み出されたタグ情報と一致しないため、全ての比較回路ＣＭＰ０−ＣＭＰ３は、一致信号ＣＯＩＮ０−ＣＯＩＮ３をネゲートし、キャッシュミスになる。このため、メモリＭＥＭ（ＡＤＲＳ＝”００００００”）からデータが読み出される。
【００４６】
読み出しアクセスのアクセスアドレスＡＤＲＳが２進数で”０００１００”を示すとき、下位３ビットで示されるインデックス部ＩＮＤＥＸの値（＝”１００”）に対応してウエイＷＡＹのタグ領域ＴＡＧ１およびデータ領域ＤＡＴＡ１からタグ情報”０００”およびデータ”ｈ”がそれぞれ読み出される。読み出されたタグ情報は、アクセスアドレスＡＤＲＳの上位３ビットで示されるタグ部ＴＡＧの値（＝”０００”）と一致するため、キャッシュヒットになり、図１に示した比較回路ＣＭＰ１は一致信号ＣＯＩＮ１をアサートする。スタックヒット信号ＳＨＩＴはネゲートされているため、読み出されたデータ”ｈ”は、ウエイセレクターＷＳＥＬおよびスタックセレクターＳＳＥＬを介してデータＤＴとしてプロセッサーＰＲＯＣに出力される。
【００４７】
読み出しアクセスのアクセスアドレスＡＤＲＳが２進数で”０１００１０”を示すとき、アクセスアドレスＡＤＲＳの値は太枠で示した現在のスタック領域を示すため、図１に示したスタックヒット判定回路ＳＨＪＤＧはスタックヒット信号ＳＨＩＴをアサートする。マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴのアサートを受け、アクセスアドレスＡＤＲＳ中のインデックス部ＩＮＤＥＸの最上位ビットをマスクし、論理０に設定する。そして、最上位ビットがマスクされたインデックス部ＩＮＤＥＸの値（＝”０１０”）に対応するスタックキャッシュ領域ＳＴＣからスタックデータ”Ｃ”が読み出される。スタックヒット信号ＳＨＩＴがアサートされているため、読み出されたスタックデータ”Ｃ”は、スタックセレクターＳＳＥＬを介してデータＤＴとしてプロセッサーＰＲＯＣに出力される。
【００４８】
同様に、読み出しアクセスのアクセスアドレスＡＤＲＳが２進数で”０１０１００”を示すとき、アクセスアドレスＡＤＲＳの値は太枠で示した現在のスタック領域を示すため、スタックヒット信号ＳＨＩＴがアサートされる。スタックヒット信号ＳＨＩＴのアサートにより、アクセスアドレスＡＤＲＳ中のインデックス部ＩＮＤＥＸの最上位ビットがマスクされ、論理０に設定される。そして、最上位ビットがマスクされたインデックス部ＩＮＤＥＸの値（＝”０００”）に対応するスタックキャッシュ領域ＳＴＣからスタックデータ”Ｅ”が読み出され、データＤＴとしてプロセッサーＰＲＯＣに出力される。
【００４９】
一方、読み出しアクセスのアクセスアドレスＡＤＲＳが２進数で”０１００００”を示すとき、アクセスアドレスＡＤＲＳの値は太枠で示した現在のスタック領域の外側を示す。このため、図１に示したスタックヒット判定回路ＳＨＪＤＧはスタックヒット信号ＳＨＩＴをネゲートする。マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴのネゲートを受け、アクセスアドレスＡＤＲＳ中のインデックス部ＩＮＤＥＸの値（＝”０００”）をアドレスデコーダーＡＤＤＥＣに出力する。アドレスデコーダーＡＤＤＥＣは、インデックス部ＩＮＤＥＸの値をデコードする。そして、ウエイＷＡＹ１−ＷＡＹ３の”０００”を示すタグ領域ＴＡＧ１−ＴＡＧ３からタグ情報が読み出され、ウエイＷＡＹ０からは無効なタグ情報が読み出される。しかし、読み出されたタグ情報は、スタック領域ＳＴＡを示すタグ部ＴＡＧの値と異なるため、全ての比較回路ＣＭＰ０−ＣＭＰ３は、一致信号ＣＯＩＮ０−ＣＯＩＮ３をネゲートし、キャッシュミスになる。このため、メモリＭＥＭのスタック領域ＳＴＡ（ＡＤＲＳ＝”０１００００”）からスタックデータが読み出される。
【００５０】
なお、スタックキャッシュ領域ＳＴＣをウエイＷＡＹ０の上位側のアドレスに割り当ててもよい。すなわち、スタックキャッシュ領域ＳＴＣとデータキャッシュ領域ＤＴＣ０との配置を入れ替えてもよい。このとき、マスク回路ＭＡＳＫは、マスクしたビットを論理１に設定する。
【００５１】
以上、この実施形態では、スタックデータを保持するスタックキャッシュ領域ＳＴＣをデータキャッシュ領域ＤＴＣ０とともにウエイＷＡＹ０に設けることにより、スタックデータ専用のキャッシュメモリを通常のデータを保持するキャッシュメモリと別に設ける必要がなくなる。この結果、キャッシュメモリＣＭが搭載されるシステムＳＹＳのコストを削減できる。
【００５２】
スタックキャッシュ領域ＳＴＣは、ウエイＷＡＹ０の（２のｍ乗）分の１の領域が割り当てられる。スタックヒット判定回路ＳＨＪＤＧは、スタックキャッシュ領域ＳＴＣに保持されているスタックデータがアクセスされることを判定したときにスタックヒット信号ＳＨＩＴをアサートする。マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴのアサート中にアクセスアドレスＡＤＲＳの上位側のビットをマスクする。これにより、１つのウエイＷＡＹ０に通常のデータとスタックデータとが保持されるときにも、スタックキャッシュ領域ＳＴＣに保持されているスタックデータを確実にアクセスできる。この際、スタックキャッシュ領域ＳＴＣは、２の（ｎ−ｍ）乗個のアドレスが順に割り当てられているため、スタックデータをスタックキャッシュ領域ＳＴＣに巡回的に保持できる。換言すれば、複雑なアドレス変換等の処理をすることなく、簡易なマスク回路ＭＡＳＫを用いて、スタックキャッシュ領域ＳＴＣに容易にアクセスできる。この結果、通常のデータとスタックデータとを保持できるキャッシュメモリＣＭの制御回路の規模を小さくでき、キャッシュメモリＣＭのコストを削減できる。
【００５３】
スタックヒット判定回路ＳＨＪＤＧは、スタックポインターＳＰとスタックサイズＳＳＩＺＥとを用いて、アクセスアドレスＡＤＲＳによりアクセスされるスタックデータがスタックキャッシュ領域ＳＴＣに保持されていることを検出する。これにより、アドレスを示す複数のポインターを用いることなく、スタックキャッシュ領域ＳＴＣのヒット／ミスを容易に判定できる。
【００５４】
図６は、別の実施形態におけるキャッシュメモリＣＭの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、キャッシュメモリＣＭは、図１にサイズ制御回路ＳＣＮＴを追加している。キャッシュメモリＣＭのその他の構成は、スタックサイズＳＳＩＺＥの値に応じてスタックキャッシュ領域ＳＴＣのアドレス空間のサイズが変更されること、マスク回路ＭＡＳＫの動作がスタックサイズＳＳＩＺＥに応じて異なることを除き、図１と同じである。図６のキャッシュメモリＣＭは、図２に示したシステムＳＹＳに搭載される。
【００５５】
例えば、スタックキャッシュ領域ＳＴＣのアドレス空間のサイズは、ウエイＷＡＹ０のアドレスサイズの２分の１、４分の１、８分の１のいずれかに設定される。スタックキャッシュ領域ＳＴＣのアドレス空間のサイズの変更に伴い、データキャッシュ領域ＤＴＣ０のアドレス空間のサイズも変更される。具体的には、スタックキャッシュ領域ＳＴＣのサイズが４分の１から８分の１に減らされるとき、データキャッシュ領域ＤＴＣ０のサイズは、４分の３から８分の７に増やされる。スタックキャッシュ領域ＳＴＣのサイズが４分の１から２分の１に増やされるとき、データキャッシュ領域ＤＴＣ０のサイズは、４分の３から２分の１に減らされる。なお、スタックキャッシュ領域ＳＴＣのサイズは、ｍを正の整数とするときに、ウエイＷＡＹ０のサイズの（２のｍ乗）分の１に設定可能である。
【００５６】
サイズ制御回路ＳＣＮＴは、プロセッサーＰＲＯＣによりアプリケーションプログラムが実行されているときに、キャッシュ効率を分析し、分析結果に応じてサイズ変更信号ＳＣを出力する。サイズ制御回路ＳＣＮＴは、キャッシュ効率を分析するために、プロセッサーＰＲＯＣからサイクル数情報ＣＹＣＬを受ける。スタックサイズレジスターＳＳＩＺＥＲに保持されるスタックサイズＳＳＩＺＥは、サイズ変更信号ＳＣに応じて変更される。キャッシュ効率については、図７で説明する。
【００５７】
スタックキャッシュ領域ＳＴＣがウエイＷＡＹ０の下位側の２分の１に割り当てられているとき、マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴがアサート中にインデックス部ＩＮＤＥＸの最上位ビットをマスクし、マスクしたビット値を論理０に設定する。スタックキャッシュ領域ＳＴＣがウエイＷＡＹ０の下位側の４分の１に割り当てられているとき、マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴがアサート中にインデックス部ＩＮＤＥＸの上位の２ビットをマスクし、マスクしたビット値を論理０に設定する。スタックキャッシュ領域ＳＴＣがウエイＷＡＹ０の下位側の８分の１に割り当てられているとき、マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴがアサート中にインデックス部ＩＮＤＥＸの上位の３ビットをマスクし、マスクしたビット値を論理０に設定する。一般的には、スタックキャッシュ領域ＳＴＣがウエイＷＡＹ０の（２のｍ乗）分の１に割り当てられているとき、マスク回路ＭＡＳＫは、スタックヒット信号ＳＨＩＴがアサート中にインデックス部ＩＮＤＥＸの上位のｍビットをマスクする。
【００５８】
図７は、図６に示したサイズ制御回路ＳＣＮＴの動作の例を示している。図７の動作は、キャッシュメモリＣＭが搭載されるシステムＳＹＳのパワーオン時に実行され、あるいは、システムＳＹＳの動作中に所定の頻度で実行される。
【００５９】
まず、サイズ制御回路ＳＣＮＴは、ステップＳ１０においてスタックサイズレジスターＳＳＩＺＥＲに最小のスタックサイズＳＳＩＺＥを設定する。この実施形態では、最小のスタックサイズＳＳＩＺＥは、ウエイＷＡＹ０のサイズの８分の１である。
【００６０】
次に、サイズ制御回路ＳＣＮＴは、ステップＳ１２において、プロセッサーＰＲＯＣからのサイクル数情報ＣＹＣＬに基づいて、プロセッサーＰＲＯＣがアプリケーションプログラムを１回実行するために必要としたサイクル数（例えば、クロックサイクル数）を求める。例えば、サイクル数情報ＣＹＣＬは、繰り返して実行される特定のアプリケーションプログラムを実行するために必要としたクロックサイクル数を示す。
【００６１】
サイズ制御回路ＳＣＮＴは、ステップＳ１４において、スタックサイズレジスターＳＳＩＺＥＲに最大のスタックサイズＳＳＩＺＥが設定されているか否かを判定する。この実施形態では、スタックサイズＳＳＩＺＥの最大値は、ウエイＷＡＹ０のサイズの２分の１である。
【００６２】
スタックサイズＳＳＩＺＥが最大でないとき、サイズ制御回路ＳＣＮＴは、ステップＳ１６において、スタックサイズＳＳＩＺＥを増加させる。例えば、スタックサイズＳＳＩＺＥがウエイＷＡＹ０のサイズの８分の１のとき、スタックサイズＳＳＩＺＥは、ウエイＷＡＹ０のサイズの４分の１に変更される。スタックサイズＳＳＩＺＥがウエイＷＡＹ０のサイズの４分の１のとき、スタックサイズＳＳＩＺＥは、ウエイＷＡＹ０のサイズの２分の１に変更される。この後、サイズ制御回路ＳＣＮＴは、ステップＳ１２において、プロセッサーＰＲＯＣがアプリケーションプログラムを１回実行するために必要としたサイクル数を求める。
【００６３】
一方、スタックサイズＳＳＩＺＥが最大のとき、サイズ制御回路ＳＣＮＴは、ステップＳ１８において、キャッシュ効率を分析する。具体的には、サイクル数の最も少ないスタックサイズＳＳＩＺＥに設定されているときに、キャッシュ効率が最も高いと判断する。そして、サイズ制御回路ＳＣＮＴは、ステップＳ２０において、最もサイクル数の少ないスタックサイズＳＳＩＺＥを最適値としてスタックサイズレジスターＳＳＩＺＥＲに設定する。
【００６４】
なお、サイズ制御回路ＳＣＮＴは、ステップＳ１８において、スタックキャッシュ領域ＳＴＣのヒット率（スタックヒット率）およびデータキャッシュ領域ＤＴＣ０−ＤＴＣ３のヒット率（データヒット率）を用いて、キャッシュ効率を分析してもよい。具体的には、スタックヒット率とデータヒット率を乗じた値が最大になるように、スタックサイズＳＳＩＺＥを設定してもよい。
【００６５】
ここで、スタックヒット率は、スタックキャッシュ領域ＳＴＣのアクセス回数をサイクル数情報ＣＹＣＬが示すサイクル数で除することで求めることができる。スタックキャッシュ領域ＳＴＣのアクセス回数は、スタックヒット信号ＳＨＩＴのアサート数に対応する。データヒット率は、データキャッシュ領域ＤＴＣ０−ＤＴＣ３のアクセス回数をサイクル数情報ＣＹＣＬが示すサイクル数で除することで求めることができる。データキャッシュ領域ＤＴＣ０−ＤＴＣ３のアクセス回数は、一致信号ＣＯＩＮ０−ＣＯＩＮ３のアサート数に対応する。
【００６６】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、サイズ制御回路ＳＣＮＴにより、実行されるアプリケーションプログラムに応じて、スタックキャッシュ領域ＳＴＣおよびデータキャッシュ領域ＤＴＣ０のサイズを最適に設定できる。これにより、アプリケーションプログラムの１回の実行に必要なクロックサイクル数を少なくでき、システムＳＹＳの性能を向上できる。
【００６７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【００６８】
ＡＤＤＥＣ‥アドレスデコーダー；ＡＤＲＥＧ‥アドレスレジスター；ＡＤＲＳ‥アドレス；ＢＵＳ‥バス；ＣＭ‥キャッシュメモリ；ＣＭＰ‥比較回路；ＣＯＩＮ０−ＣＯＩＮ３‥一致信号；ＤＡＴＡ０−ＤＡＴＡ３‥データ領域；ＤＥＣ‥デコードユニット；ＤＴ‥データ；ＥＸＥ‥実行ユニット；ＦＥＴＣ‥フェッチユニット；ＩＮＤＥＸ‥インデックス部；ＬＤ／ＳＴ‥ロードストアユニット；ＭＡＳＫ‥マスク回路；ＭＥＭ‥メモリ；ＰＣ‥プログラムカウンター；ＰＭ‥プログラムメモリ；ＰＲＯＣ‥プロセッサー；ＳＣＮＴ‥サイズ制御回路；ＳＤＥＣ‥スタックデコーダー；ＳＨＩＴ‥スタックヒット信号；ＳＨＪＤＧ‥スタックヒット判定回路；ＳＰ‥スタックポインター；ＳＳＥＬ‥スタックセレクター；ＳＳＩＺＥ‥スタックサイズ；ＳＳＩＺＥＲ‥スタックサイズレジスター；ＳＴＡ‥スタック領域；ＳＴＣ‥スタックキャッシュ領域；ＴＡＧ‥タグ部；ＴＡＧ０−ＴＡＧ３‥タグ領域；ＷＡＹ‥ウエイ；ＷＳＥＬ‥ウエイセレクター
【図１】
2012027652.tif 000003
【図２】
2012027652.tif 000004
【図３】
2012027652.tif 000005
【図４】
2012027652.tif 000006
【図５】
2012027652.tif 000007
【図６】
2012027652.tif 000008
【図７】
2012027652.tif 000009