【手続補正書】
【提出日】平成18年7月13日(2006.7.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スタック及びレジスタベース命令を実行するためのシステムであって、
レジスタベース命令を実行するための実行論理回路と、
該実行論理回路と関連したレジスタファイルと、
実行論理回路と協働してスタックベース命令を処理するためのハードウェアアクセラレータと、を備え、ハードウェアアクセラレータは、スタックベース命令の処理の結果として変数が更新されたときにレジスタファイルにおけるスタックベース命令と関連した変数を変更されたものとしてマークして、変更されたものとしてマークされた変数の、メモリへの選択的な書込みを可能とすることを特徴とするシステム。
【請求項２】
スタック及びレジスタベース命令を実行するためのＣＰＵであって、
レジスタベース命令を実行するための実行論理回路と、
実行論理回路と関連したレジスタファイルと、
実行論理回路と協働してスタックベース命令を処理するためのハードウェアアクセラレータと、を備え、ハードウェアアクセラレータは、“ＪＳＲ”または“ＪＳＲ＿Ｗ”バイトコードに続く直接のブランチオフセットを符号拡張することによってかつそれを現在のバイトコード命令の仮想機械プログラムカウンタ（ＰＣ）に追加することによって“ＪＳＲ”または“ＪＳＲ＿Ｗ”バイトコードに起因する新たな仮想機械プログラムカウンタ（ＰＣ）を発生し、リターン仮想機械プログラムカウンタを計算し、そして該リターン仮想機械プログラムカウンタ（ＰＣ）をオペランドスタック上へ押し出すことを特徴とするＣＰＵ。
【請求項３】
スタック及びレジスタベース命令を実行するための中央処理装置（ＣＰＵ）であって、
レジスタベース命令を実行するための実行論理回路と、
実行論理回路と関連したレジスタファイルと、
実行論理回路と協働してスタックベース命令を処理するためのハードウェアアクセラレータと、を備え、ハードウェアアクセラレータは、仮想機械ＳｉＰｕｓｈ及びＢｉＰｕｓｈバイトコードのための符号拡張を行い、そして該符号拡張されたデータを、スタックベース命令に基づいて構成されているレジスタベース命令の直接のフィールドに付加することを特徴とする中央処理装置。
【請求項４】
スタック及びレジスタベース命令を実行するための中央処理装置（ＣＰＵ）であって、
レジスタベース命令を実行するための実行論理回路と、
実行論理回路と関連したレジスタファイルと、
実行論理回路と協働してスタックベース命令を処理するためのハードウェアアクセラレータと、を備え、ハードウェアアクセラレータは、仮想機械ＳｉＰｕｓｈ及びＢｉＰｕｓｈバイトコードのための符号拡張を行い、そして該符号拡張されたデータを、実行論理回路によって読取られるように利用可能とすることを特徴とする中央処理装置。
【請求項５】
ハードウェアアクセラレータ及び実行論理回路は、ＣＰＵ内にあることを特徴とする請求項１に記載のシステム。
【請求項６】
ハードウェアアクセラレータは、実行論理回路内での実行のためにスタックベース命令をレジスタベース命令に変換することにより実行論理回路と協働してスタックベース命令を処理することを特徴とする請求項１に記載のシステム。
【請求項７】
ハードウェアアクセラレータ及び実行論理回路は、ＣＰＵ内にあることを特徴とする請求項２に記載のＣＰＵ。
【請求項８】
ハードウェアアクセラレータは、実行論理回路内での実行のためにスタックベース命令をレジスタベース命令に変換することにより実行論理回路と協働してスタックベース命令を処理することを特徴とする請求項２に記載のＣＰＵ。
【請求項９】
ハードウェアアクセラレータは、実行論理回路内での実行のためにスタックベース命令をレジスタベース命令に変換することにより実行論理回路と協働してスタックベース命令を処理することを特徴とする請求項３に記載のＣＰＵ。
【請求項１０】
ハードウェアアクセラレータは、実行論理回路内での実行のためにスタックベース命令をレジスタベース命令に変換することにより実行論理回路と協働してスタックベース命令を処理することを特徴とする請求項４に記載のＣＰＵ。
【請求項１１】
スタック及びレジスタベース命令を実行するための中央処理装置（ＣＰＵ）であって、
レジスタベース命令を実行するための実行論理回路と、
該実行論理回路と関連したレジスタファイルと、
実行論理回路と協働してスタックベース命令を処理するためのハードウェアアクセラレータと、を備え、ハードウェアアクセラレータは、
レジスタファイルにスタックベース命令のためのオペランドスタックを維持し、それにより、レジスタファイル内のオペランドスタックは、レジスタファイルとメモリとの間でオペランドスタックにおけるオペランドを移動させるためのオーバーフロー／アンダーフロー機構と共にリングバッファを限定し、そしてレジスタファイルにスタックベース命令を処理するために必要とされる変数をロードし、
“ＧＯＴＯ”または“ＧＯＴＯ＿Ｗ”バイトコードに続く直接のブランチオフセットを符号拡張することによりかつそれを現在のバイトコード命令の仮想機械プログラムカウンタに追加することにより“ＧＯＴＯ”または“ＧＯＴＯ＿Ｗ”バイトコードに起因する新たな仮想機械プログラムカウンタを生成し、
“ＪＳＲ”または“ＪＳＲ＿Ｗ”バイトコードに続く直接のブランチオフセットを符号拡張することによりかつそれを現在のバイトコード命令の仮想機械プログラムカウンタ（ＰＣ）に追加することによりジャンプサブルーチン（ＪＳＲ）または“ＪＳＲ＿Ｗ”バイトコードに起因する新たな仮想機械プログラムカウンタを生成し、リターン仮想機械プログラムカウンタを計算し、そしてリターン仮想機械プログラムカウンタをオペランドスタックに押し出し、
仮想機械ＳｉＰｕｓｈ及びＢｉＰｕｓｈバイトコードのための符号拡張を行い、かつ該符号拡張されたデータを、スタックベース命令に基づいて構成されているレジスタベース命令の直接のフィールドに付加し、
仮想機械ＳｉＰｕｓｈ及びＢｉＰｕｓｈバイトコードのための符号拡張を行い、かつ該符号拡張されたデータを、実行論理回路によって読取られるように利用可能とし、そして
選択されたスタックベース命令について例外を生成する
ことを特徴とする中央処理装置。
【請求項１２】
例外は、レジスタベース命令を用いて処理される請求項１１に記載のＣＰＵ。
【請求項１３】
ハードウェアアクセラレータは、実行論理回路内での実行のためにスタックベース命令をレジスタベース命令に変換することにより実行論理回路と協働してスタックベース命令を処理することを特徴とする請求項１１に記載のＣＰＵ。
【請求項１４】
レジスタベース命令に対応する入力を受信して処理するための実行論理回路と、
実行論理回路によって処理されることができる出力を生成するようにスタックベース命令を処理するためのハードウェアアクセラレータと、
リングバッファとしてレジスタ内に維持される、スタックベース命令のためのオペランドスタックと、
レジスタベース命令と関連したデータをも記憶するレジスタファイルとメモリとの間でオペランドスタック内のオペランドを移動させるためのオーバーフロー／アンダーフロー機構と、
メモリからスタックベース命令を受信するバイトコードバッファと、
バイトコードバッファから受信された命令をデコードするためにバイトコードバッファに結合された命令デコードユニットと、
メモリからバイトコードバッファにスタックベース命令をロードするのを制御するために、命令デコードユニットによって使用されるバイトコードの数の表示を受信するバイトコードバッファ制御要素と、
を備えたことを特徴とする中央処理装置（ＣＰＵ）。
【請求項１５】
命令デコードユニットは、レジスタファイル内に記憶された変数のための表示を生成することを特徴とする請求項１４に記載のＣＰＵ。
【請求項１６】
命令デコードユニットに結合されてそこからの出力を受信するマイクロコードユニットをさらに備えたことを特徴とする請求項１４に記載のＣＰＵ。
【請求項１７】
ハードウェアアクセラレータは、選択されたスタックベース命令について例外を生成することを特徴とする請求項１４に記載のＣＰＵ。
【請求項１８】
命令デコードユニットは、バイトコードバッファから受信された多数の命令を並列にデコードすることを特徴とする請求項１４に記載のＣＰＵ。
【請求項１９】
命令デコードユニットは、マイクロコードユニットのための開始アドレスを生成することを特徴とする請求項１６に記載のＣＰＵ。
【請求項２０】
開始アドレスまたはマイクロコードのためのインクリメントされた開始アドレスを選択するための機構をさらに備えたことを特徴とする請求項１９に記載のＣＰＵ。
【請求項２１】
スタックベース命令及びレジスタベース命令のための共通命令キャッシュをさらに備えたことを特徴とする請求項１４に記載のＣＰＵ。
【請求項２２】
命令デコードユニットは、多数のデコーダを備えたことを特徴とする請求項１６に記載のＣＰＵ。
【請求項２３】
マイクロコードユニットは、命令デコードユニットにマイクロコードユニットのための新たな開始アドレスを生成させるためのスタック更新表示を生成することを特徴とする請求項１９に記載のＣＰＵ。
【請求項２４】
レジスタベース命令に対応する入力を受信して処理するための実行論理回路と、
実行論理回路によって処理されることができる出力を生成するようにスタックベース命令を処理するためのハードウェアアクセラレータと、
リングバッファとしてレジスタ内に維持される、スタックベース命令のためのオペランドスタックと、
レジスタベース命令と関連したデータをも記憶するレジスタファイルとメモリとの間でオペランドスタック内のオペランドを移動させるためのオーバーフロー／アンダーフロー機構と、
メモリからスタックベース命令を受信するバイトコードバッファと、
バイトコードバッファから受信された多数の命令をデコードするバイトコードバッファに結合された命令デコードユニットと、
を備えたことを特徴とする中央処理装置（ＣＰＵ）。
【請求項２５】
命令デコードユニットは、レジスタファイル内に記憶された変数のための表示を生成することを特徴とする請求項２４に記載のＣＰＵ。
【請求項２６】
命令デコードユニットは、多数のデコーダを備えたことを特徴とする請求項２４に記載のＣＰＵ。
【請求項２７】
ハードウェアアクセラレータは、選択されたスタックベース命令について例外を生成することを特徴とする請求項２４に記載のＣＰＵ。
【請求項２８】
命令デコードユニットに結合されてそこからの出力を受信するマイクロコードユニットをさらに備えたことを特徴とする請求項２４に記載のＣＰＵ。
【請求項２９】
命令デコードユニットは、マイクロコードユニットのための開始アドレスを生成することを特徴とする請求項２４に記載のＣＰＵ。
【請求項３０】
開始アドレスまたはマイクロコードユニットのためのインクリメントされたアドレスを選択するための機構をさらに備えたことを特徴とする請求項２９に記載のＣＰＵ。
【請求項３１】
マイクロコードユニットは、命令デコードユニットにマイクロコードユニットのための新たな開始アドレスを生成させるためのスタック更新表示を生成することを特徴とする請求項３０に記載のＣＰＵ。
【請求項３２】
レジスタベース命令に対応する入力を受信して処理するための実行論理回路と、
実行論理回路によって処理されることができる出力を生成するようにスタックベース命令を処理するためのハードウェアアクセラレータと、
リングバッファとしてレジスタ内に維持される、スタックベース命令のためのオペランドスタックと、
レジスタベース命令と関連したデータをも記憶するレジスタファイルとメモリとの間でオペランドスタック内のオペランドを移動させるためのオーバーフロー／アンダーフロー機構と、
メモリからスタックベース命令を受信するバイトコードバッファと、
バイトコードバッファから受信された命令をデコードするためにかつ如何に多くのバイトが処理されたかに関する表示を提供するためにバイトコードバッファに結合された命令デコードユニットと、
処理されたバイトの数の表示によってインクリメントされる、スタックベース命令及びレジスタベース命令のための共通プログラムカウンタと、
を備えたことを特徴とする中央処理装置（ＣＰＵ）。
【請求項３３】
スタックベース命令及びレジスタベース命令のための共通命令キャッシュをさらに備えたことを特徴とする請求項３２に記載のＣＰＵ。
【請求項３４】
命令デコードユニットは、レジスタファイル内に記憶された変数のための表示を生成することを特徴とする請求項３２に記載のＣＰＵ。
【請求項３５】
命令デコードユニットに結合されてそこからの出力を受信するマイクロコードユニットをさらに備えたことを特徴とする請求項３２に記載のＣＰＵ。
【請求項３６】
ハードウェアアクセラレータは、選択されたスタックベース命令について例外を生成することを特徴とする請求項３２に記載のＣＰＵ。
【請求項３７】
例外は、レジスタベース命令を用いて処理されることを特徴とする請求項３６に記載のＣＰＵ。
【請求項３８】
命令デコードユニットは、バイトコードバッファから受信された多数の命令を並列にデコードすることを特徴とする請求項３２に記載のＣＰＵ。
【請求項３９】
命令デコードユニットは、マイクロコードユニットのための開始アドレスを生成することを特徴とする請求項３５に記載のＣＰＵ。
【請求項４０】
開始アドレスまたはマイクロコードユニットのためのインクリメントされた開始アドレスを選択するための機構をさらに備えたことを特徴とする請求項３９に記載のＣＰＵ。
【請求項４１】
命令デコードユニットは、多数のデコーダを備えたことを特徴とする請求項３８に記載のＣＰＵ。
【請求項４２】
マイクロコードユニットは、命令デコードユニットにマイクロコードユニットのための新たな開始アドレスを生成させるためのスタック更新表示を生成することを特徴とする請求項３９に記載のＣＰＵ。
【請求項４３】
中央処理装置（ＣＰＵ）のための方法であって、
レジスタベース命令に対しては、レジスタベース命令を処理することができる実行論理回路においてレジスタベース命令を処理し、
スタックベース命令に対しては、実行論理回路が処理することができる入力へのハードウェアアクセラレータにおいてスタックベース命令を処理し、ここに、ハードウェアアクセラレータは、スタックベース命令の処理の結果として変数が更新されたときにレジスタファイルにおけるスタックベース命令と関連した変数を変更されたものとしてマークして、変更されたものとしてマークされた変数の、メモリへの選択的な書込みを可能とすることを特徴とする方法。
【請求項４４】
スタックベース命令を処理することは、命令デコードユニットにおいて多数のスタックベース命令を並列にデコードすることを含むことを特徴とする請求項４３に記載の方法。
【請求項４５】
スタックベース命令を処理することは、スタックベース命令についての例外を発生することを含むことを特徴とする請求項４３に記載の方法。
【請求項４６】
スタックベース命令を処理することは、命令デコードユニットにおけるマイクロコードユニットのための開始アドレスを発生することを含むことを特徴とする請求項４４に記載の方法。
【請求項４７】
スタックベース命令を処理することは、開始アドレスまたはマイクロコードユニットのためのインクリメントされた開始アドレスを選択することを含むことを特徴とする請求項４６に記載の方法。
【請求項４８】
さらに、共通命令キャッシュにスタックベース命令及びレジスタベース命令を記憶することを含むことを特徴とする請求項４３に記載の方法。
【請求項４９】
スタックベース命令を処理することは、レジスタファイルに記憶された変数のための表示を生成することを含むことを特徴とする請求項４３に記載の方法。
【請求項５０】
中央処理装置（ＣＰＵ）のための方法であって、
レジスタベース命令に対しては、レジスタベース命令を処理することができる実行論理回路においてレジスタベース命令を処理し、
スタックベース命令に対しては、実行論理回路が処理することができる入力へのハードウェアアクセラレータにおいてスタックベース命令を処理し、ここに、ハードウェアアクセラレータは、“ＪＳＲ”または“ＪＳＲ＿Ｗ”バイトコードに続く直接のブランチオフセットを符号拡張することによってかつそれを現在のバイトコード命令の仮想機械プログラムカウンタ（ＰＣ）に追加することによって“ＪＳＲ”または“ＪＳＲ＿Ｗ”バイトコードに起因する新たな仮想機械プログラムカウンタ（ＰＣ）を発生し、リターン仮想機械プログラムカウンタ（ＰＣ）を計算し、そして該リターン仮想機械プログラムカウンタをオペランドスタック上へ押し出すことを特徴とする方法。
【請求項５１】
スタックベース命令を処理することは、命令デコードユニットにおける多数のスタックベース命令を並列にデコードすることを含むことを特徴とする請求項５０に記載の方法。
【請求項５２】
スタックベース命令を処理することは、選択されたスタックベース命令についての例外を発生することを含むことを特徴とする請求項５０に記載の方法。
【請求項５３】
スタックベース命令を処理することは、命令デコードユニットにおけるマイクロコードユニットのための開始アドレスを発生することを含むことを特徴とする請求項５１に記載の方法。
【請求項５４】
スタックベース命令を処理することは、開始アドレスまたはマイクロコードユニットのためのインクリメントされた開始アドレスを選択することを含むことを特徴とする請求項５３に記載の方法。
【請求項５５】
さらに、共通命令キャッシュにスタックベース命令及びレジスタベース命令を記憶することを含むことを特徴とする請求項５０に記載の方法。
【請求項５６】
スタックベース命令を処理することは、レジスタファイルに記憶された変数のための表示を生成することを含むことを特徴とする請求項５０に記載の方法。
【請求項５７】
中央処理装置（ＣＰＵ）のための方法であって、
レジスタベース命令に対しては、レジスタベース命令を処理することができる実行論理回路においてレジスタベース命令を処理し、
スタックベース命令に対しては、実行論理回路が処理することができる入力へのハードウェアアクセラレータにおいてスタックベース命令を処理し、ここに、ハードウェアアクセラレータは、仮想機械ＳｉＰｕｓｈ及びＢｉＰｕｓｈバイトコードのための符号拡張を行い、そして該符号拡張されたデータを、スタックベース命令に基づいて構成されているレジスタベース命令の直接のフィールドに付加することを特徴とする方法。
【請求項５８】
スタックベース命令を処理することは、命令デコードユニットにおける多数のスタックベース命令を並列にデコードすることを含むことを特徴とする請求項５７に記載の方法。
【請求項５９】
スタックベース命令を処理することは、選択されたスタックベース命令についての例外を発生することを含むことを特徴とする請求項５７に記載の方法。
【請求項６０】
スタックベース命令を処理することは、命令デコードユニットにおけるマイクロコードユニットのための開始アドレスを発生することを含むことを特徴とする請求項５８に記載の方法。
【請求項６１】
スタックベース命令を処理することは、開始アドレスまたはマイクロコードユニットのためのインクリメントされた開始アドレスを選択することを含むことを特徴とする請求項６０に記載の方法。
【請求項６２】
さらに、共通命令キャッシュにスタックベース命令及びレジスタベース命令を記憶することを含むことを特徴とする請求項５７に記載の方法。
【請求項６３】
スタックベース命令を処理することは、レジスタファイルに記憶された変数のための表示を生成することを含むことを特徴とする請求項５７に記載の方法。
【請求項６４】
中央処理装置（ＣＰＵ）のための方法であって、
レジスタベース命令に対しては、レジスタベース命令を処理することができる実行論理回路においてレジスタベース命令を処理し、
スタックベース命令に対しては、実行論理回路が処理することができる入力へのハードウェアアクセラレータにおいてスタックベース命令を処理し、ここに、ハードウェアアクセラレータは、仮想機械ＳｉＰｕｓｈ及びＢｉＰｕｓｈバイトコードのための符号拡張を行い、そして該符号拡張されたデータを、実行論理回路によって読取られるように利用可能とすることを特徴とする方法。
【請求項６５】
スタックベース命令を処理することは、命令デコードユニットにおける多数のスタックベース命令を並列にデコードすることを含むことを特徴とする請求項６４に記載の方法。
【請求項６６】
スタックベース命令を処理することは、選択されたスタックベース命令についての例外を発生することを含むことを特徴とする請求項６４に記載の方法。
【請求項６７】
スタックベース命令を処理することは、命令デコードユニットにおけるマイクロコードユニットのための開始アドレスを発生することを含むことを特徴とする請求項６５に記載の方法。
【請求項６８】
スタックベース命令を処理することは、開始アドレスまたはマイクロコードユニットのためのインクリメントされた開始アドレスを選択することを含むことを特徴とする請求項６７に記載の方法。
【請求項６９】
さらに、共通命令キャッシュにスタックベース命令及びレジスタベース命令を記憶することを含むことを特徴とする請求項６４に記載の方法。
【請求項７０】
スタックベース命令を処理することは、レジスタファイルに記憶された変数のための表示を生成することを含むことを特徴とする請求項６４に記載の方法。
【請求項７１】
レジスタファイルは、レジスタベース命令のためのデータ、並びにリングバッファとしてのスタックベース命令のためのオペランドスタックを記憶するために用いられる請求項１に記載のシステム。
【請求項７２】
レジスタファイルは、レジスタベース命令のためのデータ、並びにリングバッファとしてのスタックベース命令のためのオペランドスタックを記憶するために用いられる請求項２、３及び４のいずれかに記載のＣＰＵ。