【手続補正書】
【提出日】平成16年10月20日(2004.10.20)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令アドレスに従って命令コードを記憶すると共に、オペランドを記憶するメモリと、
複数の命令をシーケンスにより処理する複数の段を有する命令実行パイプラインと
を備えたマイクロプロセッサにおいて、前記複数の段は、
フェッチ・アドレスにより前記メモリをアドレス指定して命令コードを読み出し、前記命令のパイプラインに供給するフェッチ・ユニットと、
複数の命令を実行する少なくとも一つの実行ユニットと、
前記実行ユニットからの結果を行き先書き込みアドレスにより前記メモリに書き込む第１のロード／記憶ユニットと、
前記フェッチ・ユニット及び前記第１のロード／記憶ユニットに接続された自己変更コード検出回路と
を備え、前記自己修飾コード検出回路は、
最低フェッチ・アドレス値を記憶する最小ラッチと、
最高フェッチ・アドレス値を記憶する最大ラッチと
前記行き先書き込みアドレスを前記最小ラッチ及び前記最大ラッチの内容と比較し、かつ前記行き先書き込みアドレスが前記最低フェッチ・アドレス値より大きい又は等しい、及び前記最高フェッチ・アドレス値より小さい又は等しいことに応答して、フラッシュ信号を前記命令実行パイプラインに対して発生する第１の書き込み比較器と、
前記フェッチ・アドレスを前記最小ラッチの内容と比較する第１の更新比較器と、
前記フェッチ・アドレスを前記最大ラッチの前記内容と比較する第２の更新比較器と、
前記第１及び第２の比較器に接続され、前記フェッチ・アドレスは前記最小ラッチに記憶されている前記最低フェッチ・アドレス値より小さいことを前記第１の更新比較器が判断したことに応答して、前記フェッチ・アドレスを記憶するように前記最小ラッチを制御し、かつ前記フェッチ・アドレスは前記最大ラッチに記憶されている前記最高フェッチ・アドレス値より大きいことを前記第２の更新比較器が判断したことに応答して、前記フェッチ・アドレスを記憶するように前記最大ラッチを制御する制御回路と
を備えたマイクロプロセッサ。
【請求項２】
前記制御回路は、更に、パイプライン・フラッシュに応答して、ハイ・メモリ・アドレス限界を記憶するように前記最小ラッチと、ロー・メモリ・アドレス限界を記憶するように最大ラッチとの両方を制御するためのものである請求項１に記載のマイクロプロセッサ。
【請求項３】
前記メモリは、
前記フェッチ・ユニットからのフェッチ・アドレスに対応する位置に命令コードを記憶する命令メモリと、
オペランドを記憶するデータ・メモリとを備えた請求項１に記載のマイクロプロセッサ。
【請求項４】
前記第１の書き込み比較器は、前記フェッチ・ユニットと前記第１のロード／ストア・ユニットとに接続され、かつ、
前記行き先書き込みアドレスを前記最小ラッチの内容と比較する第１の窓比較器と、
前記行き先書き込みアドレスを前記最大ラッチの内容と比較する第２の窓比較器と、
前記第１の窓比較器が、前記行き先書き込みアドレスは前記最低フェッチ・アドレス値より大きい又は等しいと判断したことと、前記第２の窓比較器が、前記行き先書き込みアドレスは前記最高フェッチ・アドレス値より小さい又は等しいと判断したこととの組合わせに応答して、前記フラッシュ信号を発生する比較器制御回路と、
前記フェッチ・アドレスを前記行き先書き込みアドレスと比較し、かつ前記フェッチ・アドレスが前記行き先書き込みアドレスと一致することに応答して、現在の競合信号を発生する第１の等価比較器と、
未だ完了していない前記第１のロード／ストア・ユニットによる書き込み動作のために第１の保留行き先アドレスを記憶する第１の保留書き込みアドレス・ラッチと、
前記フェッチ・アドレスを前記第１の保留行き先アドレスと比較し、かつ前記フェッチ・アドレスが前記保留行き先書き込みアドレスと一致することに応答して、第１の保留競合信号を発生する第２の等価比較器と、
前記第１及び第２の等価比較器に接続され、前記現在の競合信号か又は前記第１の保留競合信号に応答して、フラッシュ信号を発生する例外制御回路とを備えた請求項１に記載のマイクロプロセッサ。
【請求項５】
更に、
前記実行ユニットからの結果を行き先書き込みアドレスにおける前記メモリに書き込む第２のロード／ストア・ユニットと、
前記フェッチ・ユニットと前記第２のロード／ストア・ユニットとに接続された第２の書き込み比較器と
を備え、
前記行き先書き込みアドレスを前記最小ラッチの内容と比較する第１の窓比較器と、
前記行き先書き込みアドレスを前記最大ラッチの内容と比較する第２の窓比較器と、
前記第１の窓比較器が、前記行き先書き込みアドレスは前記最低フェッチ・アドレス値以上と判断したことと、前記第２の窓比較器が、前記行き先書き込みアドレスは前記最高フェッチ・アドレス値以下と判断したこととの組合わせに応答して、前記フラッシュ信号を発生する比較器制御回路と、
前記フェッチ・アドレスを前記行き先書き込みアドレスと比較し、かつ前記フェッチ・アドレスが前記行き先書き込みアドレスと一致することに応答して、前記現在競合信号を発生する第１の等価比較器と、
未だ完了していない前記第１のロード／ストア・ユニットによる書き込み動作のために第１の保留行き先書き込みアドレスを記憶する第１の保留書き込みアドレス・ラッチと、
前記フェッチ・アドレスを前記第１の保留行き先書き込みアドレスと比較し、かつ前記フェッチ・アドレスが前記保留行き先書き込みアドレスと一致することに応答して、第１の保留競合信号を発生する第２の等価比較器と、
前記第１及び第２の等価比較器に接続され、前記現在の競合信号か又は前記第１の保留競合信号に応答して、フラッシュ信号を発生する例外制御回路と
を備えた請求項４に記載のマイクロプロセッサ。
【請求項６】
更に、
前記第１及び第２の書き込み比較器に接続された共有書き込み比較器と、
前記第１及び第２の書き込み比較器からの保留行き先書き込みアドレスを選択する選択回路と、
前記選択された保留行き先書き込みアドレスを記憶する第２の保留書き込みアドレス・ラッチと、
前記フェッチ・アドレスを前記記憶し選択した保留行き先書き込みアドレスと比較し、かつ前記フェッチ・アドレスが前記記憶し選択した保留行き先書き込みアドレスと一致することに応答して、第２の保留競合信号を発生する共有等価比較器と、
前記第３の等価比較器に接続され、前記第２の保留競合信号を受け取ることに応答して、フラッシュ信号を発生する共有制御回路と
を備えた請求項５に記載のマイクロプロセッサ。
【請求項７】
更に、
一方側を前記命令実行パイプラインと前記メモリとに接続され、かつ前記他方側を外部バスに接続されたバス・インターフェイスと、
前記外部バスに接続された外部サブシステムと
を備えた請求項４に記載のマイクロプロセッサ。
【請求項８】
自己変更コードの競合を検出するようにマイクロプロセッサを動作させる方法において、
命令を実行するステップと、
前記実行するステップの結果をメモリに書き込む書き込みアドレスを発生するステップと、
前記書き込みアドレスを最小フェッチ・アドレス及び最大フェッチ・アドレスと比較するステップであって、前記最小フェッチ・アドレスがパイプライン・フラッシュ以後に受け取った複数の命令のための最低フェッチ・アドレスに対応し、かつ前記最大フェッチ・アドレスが前記パイプライン・フラッシュ以後に受け取った複数の命令のための最高フェッチ・アドレスに対応している前記比較するステップと、
前記比較するステップに応答して、前記書き込みアドレスが共に前記最小フェッチ・アドレス以上、及び前記最高フェッチ・アドレス以下であることを判定するステップと、
現在のフェッチ・アドレスを発生して前記マイクロプロセッサが実行する命令コードをフェッチするステップと、
前記現在のフェッチ・アドレスを前記最小フェッチ・アドレスと比較するステップと、
前記フェッチ・アドレスが前記最小フェッチ・アドレスより小さいことに応答して、前記最小フェッチ・アドレスを前記現在のフェッチ・アドレスに等しく設定するステップと、
前記現在のフェッチ・アドレスを前記最大フェッチ・アドレスと比較するステップと、
前記フェッチ・アドレスが前記最大フェッチ・アドレスより大きいことに応答して、前記最大フェッチ・アドレスを前記現在のフェッチ・アドレスに等しく設定するステップと
を備えた前記方法。
【請求項９】
前記パイプライン・フラッシュを開始させるステップは、
例外信号を発生させるステップと、
前記例外信号に応答して、前記パイプラインをフラッシュさせるステップと
を含む請求項８に記載の方法。
【請求項１０】
更に、
現在のフェッチ・アドレスを発生して前記マイクロプロセッサが実行する命令コードをフェッチさせるステップと、
前記現在のフェッチ・アドレスを前記書き込みアドレスと比較するステップと、
前記比較ステップに応答して、前記現在のフェッチ・アドレスが前記書き込みアドレスと一致するということを判定し、パイプライン・フラッシュを開始させるステップと
を備えた請求項８に記載の方法。
【請求項１１】
未だ完了してない書き込み動作の行き先メモリアドレスに対応する少なくとも一つの保留書き込みアドレスを記憶するステップと、
前記現在のフェッチ・アドレスを前記少なくとも一つの保留書き込みアドレスのそれぞれと比較するステップと、
前記比較するステップに応答して、前記現在のフェッチ・アドレスが少なくとも一つの保留書き込みアドレスと一致するということを判定し、パイプライン・フラッシュを開始させるステップと
を備えた請求項１０に記載の方法。
【請求項１２】
前記パイプライン・フラッシュを開始させるステップは、
前記保留書き込みアドレスに対応する前記書き込み動作を完了させるステップと、
次いで前記現在のフェッチ・アドレスに対応するメモリ位置から命令コードをフェッチし、前記マイクロプロセッサにより実行させるステップと
を備えた請求項１１に記載の方法。
【請求項１３】
更に、
前記比較するステップの前に第２の命令の実行を開始するステップを備え、かつ前記開始するステップは、更に、
前記フェッチ・ステップの前に、前記第２の命令の実行を完了させるステップを備えた請求項１２に記載の方法。