(57)【要約】【課題】  本発明は、改良された形態の、単純化された縮小命令セット・コンピューター（ＲＩＳＣ）マイクロプロセッサーに関する。特に、スタック構造をとるマイクロプロセッサーに関する。【解決手段】  本発明のある態様では、マイクロプロセッサーシステムはマイクロプロセッシングユニットと入出力プロセッサー（ＩＯＰ）とを含んでいる。大域メモリーユニットは中央処理装置及びＩＯＰと連結されている。ある手段が、中央処理装置及びＩＯＰの大域メモリーユニットへのアクセスを裁定する。ある形態では大域メモリーユニットは複数の大域レジスタを含んでいる。【選択図】          図１
2006024233.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッシングユニットと、インプット−アウトプットプロセッサ（ＩＯＰ）、前記中央処理ユニット及び前記ＩＯＰがそこを介してシステムバスに選択的に接続されるメモリインターフェースユニットと、所定のインターバルで前記システムバスにへの前記ＩＯＰのアクセスを許容する手段とを備えたことを特徴とするマイクロプロセッサシステム。
【請求項２】
前記メモリインターフェースユニットが、前記システムバスがアクセスできる有効タイムスロットを設定する手段とを備えており、前記有効タイムスロットが前記所定のインターバルで前記ＩＯＰによる前記システムバスへのアクセスの間のものとして設定されていることを特徴とする請求項１に記載のマイクロプロセッサシステム。
【請求項３】
前記メモリインターフェースユニットが前記システムバスに関係する一つ以上のバスサイクルに必要なバスアクセス時間を計算し、前記ひとつ以上のバスサイクルの実行のための前記アクセスタイムに等しいかこれより長い前記有効タイムスロットの一つを割り当てる手段とを備えたことを特徴とする請求項１に記載のマイクロプロセッサシステム。
【請求項４】
前記１つ以上のバスサイクルがメモリサイクルであることを特徴とする請求項３に記載のマイクロプロセッサシステム。
【請求項５】
前記計算手段の計算が、前記バスアクセスタイムを修正してインプット−アウトプットサイクルのための十分な時間を与えることを特徴とする請求項４に記載のマイクロプロセッサシステム。
【請求項６】
スタックキャッシュに接続されたアリスメティックロジックユニットが含まれるマイクロプロセシングニットを有するマイクロプロセッサシステムであって、
前記アリスメティックロジックユニット及びスタックキャッシュに接続され、前記スタックキャッシュの少なくとも１つのセルに１つの値が含まれているかどうか及びスタックキャッシュの少なくとも１つの他のセルがエンプティであるかどうかを判断することによってスタックキャッシュリソースの有効性を判断する手段と、
前記スタックキャッシュの有効性を判断する手段に接続され、前記スタックキャッシュリソースの有効性に基づき前記アリスメティックロジックユニットによる命令実行を選択的に禁止する手段とを備えたことを特徴とするマイクロプロセッサシステム。
【請求項７】
前記アリスメティックロジックユニットが、前記スタックキャッシュの個々のセルのみを一般的にプッシュし、ポップする命令を実行するための手段を有しており、前記スタックキャッシュリソースの有効性が前記命令のそれぞれの実行を開始する前に判断されていることを特徴とする請求項６に記載のマイクロプロセッサシステム。
【請求項８】
スタックキャッシュに接続されたアリスメティックロジックユニットが含まれるマイクロプロセシングユニットを有し、前記スタックキャッシュが少なくともシステムメモリの第１の部分に割りつけられた、マイクロプロセッサシステムであって、
前記マイクロプロセシングユニット及び前記スタックキャッシュに接続され、前記スタックキャッシュのスタックポインタが前記システムメモリの前記第１の部分の境界領域内のアドレスを仮定しているときに、スタックマネージメントトラップを実行する手段を備えており、前記第１スタックマネージメントトラップが前記システムメモリの少なくとも１つの他の部分の有効性を判断するようになっており、
さらに、前記スタックポインタが前記スタックマネージメントトラップを実行する前記手段に接続され、前記境界領域内に含まれない前記システムの第１の部分の定義済の領域内のアドレスを仮定した後前記スタックマネージメントトラップの他の実行を阻止する手段とを備えたことを特徴とするマイクロプロセッサシステム。
【請求項９】
マイクロプロセシングユニットと該マイクロプロセシングユニットをシステムランダムアクセスメモリ（ＲＡＭ）に接続するメモリインターフェースユニットとを備え、前記マイクロプロセッサシステムは、前記システムＲＡＭを使用する仮想システムメモリを定義するために前記マイクロプロセシングユニットによって与えられた論理列アドレスを前記システムＲＡＭの物理的列アドレスに変換する手段を備えていることを特徴とするマイクロプロセッサシステム。
【請求項１０】
さらに、前記メモリインターフェースユニットに接続され、前記システムＲＡＭにアクセスする手段を備え、各列アドレスストローブ（ＲＡＳ）サイクルがＲＡＳプレチャージインターバルを有しており、前記論理列アドレスが前記ＲＡＳプレチャージインターバルの間に前記システムＲＡＭの前記物理アドレスに変換されることを特徴とする前記請求項９に記載のマイクロプロセッサシステム。
【請求項１１】
メモリアドレスとして解釈されるべき値を含む少なくとも１つのストレージロケーションを含むレジスタユニットと、
前記レジスタユニットに接続されたメモリインターフェースユニットと、
前記メモリインターフェースユニットに接続されたメモリバスと、
前記メモリバスによって前記メモリインターフェースユニットに接続されたシステムメモリとを備え、
前記メモリインターフェースユニットが前記メモリアドレスを使用する前記システムメモリに対するメモリバストランザクションののち、増加後の前記メモリアドレスが２nの偶数倍（ｎは正の整数）である値を有するときに、前記メモリアドレスを増加させ、境界検出信号を発生するトランスファロジックを備えたことを特徴とするマイクロプロセッサシステム。
【請求項１２】
さらに、前記メモリインターフェースユニットに接続されたマイクロプロセシングユニットを備え、前記マイクロプロセシングユニットは、前記境界検出信号が前記メモリインターフェースユニットにより発生された後前記マイクロプロセシングユニットをインタラプトする手段とを備えていることを特徴とする請求項１１に記載のマイクロプロセッサシステム。
【請求項１３】
さらに、前記メモリバストランザクションが生じるように要求するための前記メモリインターフェースユニットへの入力としてトランスファリクエスト信号を発生する、前記メモリインターフェースユニットに接続された手段を備えたことを特徴とする請求項１１に記載のマイクロプロセッサシステム。
【請求項１４】
さらに、前記メモリインターフェースユニットに接続されたＩＯＰを有し、前記トランスファリクエスト信号を発生する手段が、命令を実行する手段であり、前記命令の１つが前記トランスファリクエスト信号を活性化するようになっていることを特徴とする請求項１３に記載のマイクロプロセッサシステム。
【請求項１５】
前記メモリアドレスの増加及びその結果としての前記境界検出信号が事象のカウントに使用されることを特徴とする請求項１１に記載のマイクロプロセッサシステム。
【請求項１６】
さらに、前記境界検出信号が発生した後、さらなるトランスファを阻止するように前記トランスファロジックを不能にするために前記メモリインターフェースユニットに接続された手段を備えたことを特徴とする請求項１１に記載のマイクロプロセッサシステム。
【請求項１７】
さらに、前記メモリバスに接続されたインプット−アウトプットデバイスを備え、前記メモリアドレスが前記システムメモリをアドレスするのに使用される第１のアドレスビットのグルーピングと前記インプット−アウトプットデバイスをアドレスするに使用される第２のアドレスビットのグルーピングを備えていることを特徴とする請求項１１に記載のマイクロプロセッサシステム。
【請求項１８】
中央処理ユニットと前記中央処理ユニットに接続されたビットインプットレジスタとを備え、前記ビットインプットレジスタが少なくとも一つのビットラインからロジカルイップットを受け取るようになったマイクロプロセッサシステムにおいて、
前記少なくとも１つのビットラインに接続され、そのロジックレベルを判断するために前記少なくとも１つのビットラインを最初にサンプリングするラッチ手段と、
前記ラッチ手段に接続され、前記少なくとも一つのビットラインにアサインされたレジスタに前記ロジックレベルをストアするゼロパーシステンスコントロールユニットとを有し、
前記ゼロパーシステンスコントロールユニットが前記中央処理ユニットによって定義済の信号を具備するまで、前記ロジックレベルが前記レジスタにストアされた状態になっていることを特徴とするマイクロプロセッサシステム。
【請求項１９】
さらに、前記ゼロパーシステンスコントローラに接続されたダイレクトメモリアクセスコントローラ（ＤＭＡＣ）を備え、前記ＤＭＡＣは前記定義済の信号を発生させる手段を備えていることを特徴とする請求項１８に記載のマイクロプロセッサシステム。
【請求項２０】
マイクロプロセシングユニット、ＩＯＰ、及び前記中央処理ユニット及びＩＯＰを前記システムバスに選択的に接続するメモリインターフェースユニットとを備え、前記ＩＯＰが前記メモリインターフェースユニットにシステムアドレス情報を与えるプログラムカウンタ手段を備えていることを特徴とするマイクロプロセッサシステム。
【請求項２１】
さらに、前記ＩＯＰ及びシステムバスに接続され、所定のインターバルで前記システムバスへの前記ＩＯＰのアクセスを許容する手段を備えていることを特徴とする請求項２０に記載のマイクロプロセッサシステム。
【請求項２２】
前記ＩＯＰが前記システムバスに接続され、前記システムバスから受け取ったデータをラッチするラッチ手段を備えていることを特徴とする請求項２０に記載のマイクロプロセッサシステム。
【請求項２３】
前記ＩＯＰが前記プログラムカウンタ手段によって制御されるマルチプレクサ、命令ラッチ、及びデコード／実行モジュールとを備え、前記マルチプレクサが前記命令ラッチ及び前記デコード／実行モジュールとの間に接続されていることを特徴とする請求項２０に記載のマイクロプロセッサシステム。
【請求項２４】
スタックキャッシュを有するマイクロプロセシングユニットを備えたマイクロプロセッサシステムにおいて、フローチングポイントマスマティカル命令を可能にするシステムが、
前記スタックキャッシュのセル内の値によりフローチングポイントオペレーションを実行するアリスメティックロジックユニット手段と、
前記アリスメティックロジックユニット手段に接続され、前記フローチングポイントオペレーションの選択された実行に応答してフローチングポイントイクセプションを発生する手段と、
前記アリスメティックロジックユニット手段及び、前記フローチングポイントイクセプションを発生する手段に接続され、前記フローチングポイントイクセプションに応答して、前記マイクロプロセシングユニットが定義済のフローチングポイントルーチンを実行できるようにするモードレジスタ手段とを備えたことを特徴とするマイクロプロセッサシステム。
【請求項２５】
前記フローチングポイントオペレーションを実行する手段が、前記スタックキャッシュに接続され、テストイックスポーネント、イクストラクトイクスポーネント、アッドイクスポーネント、及び回復イクスポーネント命令を備えていることを特徴とする請求項２４に記載のシステム。
【請求項２６】
スタックキャッシュを有するマイクロプロセシングユニットを備えたマイクロプロセッサシステムにおいて、ブレイクポイント命令を実行する方法が、
前記ブレイクポイント命令のメモリアドレスを前記スタックキャッシュに押し込むステップと、
ブレイクポイントサービスルーチンを実行するステップとを備えていることを特徴とする方法。
【請求項２７】
システムメモリと１つ以上のインターナルレジスタを有するマイクロプロセシングユニットとを備えたマイクロプロセッサシステムであって、
前記システムメモリが前記マイクロプロセシングユニットと通信するための第１アドレススペースを割り当てられているものにおいて、
前記マイクロプロセシングユニット内にデータを伝送する方法が、
前記一つ以上のインターナルレジスタを前記第１アドレススペースとは異なる第２アドレススペースに割り当て、
前記第２アドレススペース内のアドレスによって識別される前記１つ以上のインターナルレジスタの部分に及びこれらからのデータを伝送するステップとを備えたことを特徴とする方法。
【請求項２８】
スタックキャッシュを有するマイクロプロセシングユニットを含むマイクロプロセッサシステムにおいて、
アドレスアリスメティックのための方法が、
前記スタックキャッシュの第１のセルの第１のアドレス値をストアし、
前記スタックキャッシュの第２のセルに第２のアドレス値をストアし、
前記第１アドレス値を前記第２アドレス値に加算して、前記スタックキャッシュの前記第１セル内に結果としての合計値をストアするステップとを備えたことを特徴とする方法。
【請求項２９】
スタックキャッシュを有するマイクロプロセシングユニットを備えたマイクロプロセッサシステムにおいて、
コピーバイトオペレーションを実行する方法が、 セル内にストアされた複数のデータバイトのうちの少なくともの１つの意味のあるものを読み取り、
前記複数のデータバイトの少なくとも他の１つを前記少なくとも１つの意味を有するデータバイトで置換するステップとを備えたことを特徴とする方法。
【請求項３０】
スタックキャッシュとキャリーレジスタとを有するマイクロプロセシングユニットを備えたマイクロプロセッサシステムにおいてテストバイトオペレーションを遂行する方法が、
前記スタックキャッシュのセル内にストアされた複数のバイトのそれぞれを読み取り、
任意の前記バイトがゼロ値であるとき、前記キャリーレジスタに第１論理値をストアし、
別途前記キャリーレジスタに第２論理値をストアすることを特徴とする方法。
【請求項３１】
システムメモリ、前記システムメモリに接続され、前記システムメモリに接続されたスタックキャッシュ及び前記スタックキャッシュに接続されたプログラムカウンタを有するマイクロプロセシングユニットとを備えたマイクロプロセッサシステムにおいて、
単一のステッププロセシングシステムが、
前記スタックキャッシュ及び前記プログラムカウンタに接続され、前記スタックキャッシュの第１セルからの第１メモリアドレスを前記プログラムカウンタにロードする手段と、
前記プログラムカウンタに接続され、前記第１メモリアドレスに対応するロケーションにおいて、前記マイクロプロセッサシステムの前記システムメモリにストアされた第１命令を実行する手段と、
この間に第２メモリアドレスが前記第１セルにロードされる単一ステップトラップルーチンを実行する手段とを備え、
前記第１命令につづく第２命令が、前記第２メモリアドレスに対応する前記システムメモリのロケーションにストアされるようになっていることを特徴とするシステム。
【請求項３２】
システムメモリ、及びスタックキャッシュを有する前記システムメモリに接続されるマイクロプロセシングユニットとを有するマイクロプロセッサシステムにおいて、
スタックキャッシュマネージングシステムが、
前記スタックキャッシュ内に現に含まれるセルの数を判断する手段と、
前記セルの数を判断する前記手段に接続され、スタックキャッシュの定義済の深さと前記セルの数との比較を実行する手段と、
前記比較の実行手段に接続され、前記比較に基づき現在のスタック深さの指示を与える手段とを備えたことを特徴とするシステム。
【請求項３３】
システムメモリと、スタックキャッシュを有する前記システムメモリに接続されたマイクロプロセシングユニットとを備えたマイクロプロセッサシステムにおいて、
スタックキャッシュマネージングシステムが、
前記スタックキャッシュに接続され、前記スタックキャッシュ内に現に含まれるセルの数を判断するスタック深さ手段と、
前記スタック深さ手段に接続され、前記スタック深さの指示を与える手段とを備えたことを特徴とするシステム。
【請求項３４】
システムメモリと、スタックキャッシュを有するマイクロプロセシングユニットを有するマイクロプロセッサシステムにおいて、
スタックキャッシュマネージングシステムが、
前記スタックキャッシュに接続され、前記スタックキャッシュ内の現存する数のセルを判断する手段と、
前記セルの現在の数を判断する手段に接続され、前記セルの現存の数とスタック深さとを比較することによって前記スタックキャッシュに付加することかできるセルの数を計算する手段と、
前記スタックキャッシュ及び前記スタックキャッシュに付加することができるセルの数を計算する手段に接続され、前記スタックキャッシュに付加することができる前記セルの数に等しい前記セルの数を前記スタックキャッシュ内の前記現存のセルに付加する手段とを備えたことを特徴とするシステム。
【請求項３５】
さらに、前記スタックキャッシュに接続され、前記スタックキャッシュ内の前記セルの付加的な数を前記スタックキャッシュの前記現有のセルの数から除外する手段と、前記システムメモリから前記スタックキャッシュに新しいセルの前記付加的な数をロードする手段とを備えたことを特徴とする請求項３４に記載のシステム。
【請求項３６】
アリスメティックロジックユニットと該アリスメティックロジックユニットに接続されたプッシューダウンスタックとを有するマイクロプロセシングユニットを備えており、
前記アリスメティックロジックユニットはビットをシフトするビットシフト手段を有しており、
該ビットシフト手段は１つ以上の部分シフトでビットのカウントをシフトするようになっており、前記カウントが各部分シフトでシフトされた数だけ減少し、前記シフトが、前記カウントがビット倍数より大きい間、ビット倍数だけ実行され、前記倍数がその後減少し、かつその後前記カウントがゼロになるまで前記カウントのシフト及び減少が反復されるようになっていることを特徴とするマイクロプロセッサ。
【請求項３７】
前記倍数が最初は８であり、前記倍数は前記カウントが８より小さくなったとき１に減少することを特徴とする請求項３６に記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願に対するクロス・リファレンス
本発明は、現米国特許５，４４０，７４９即ち、１９８９年８月３日出願の米国出願番号０７／３８９，３３４、及び上記出願の１９９５年６月７日に出願された以下の分割出願即ち、出願番号０８／４８０，４６２、０８／４８０，９１１、０８／４８０，０１５、０８／４８５，０３１、０８／４８４，９１８、０８／４８４，２３０、０８／４８４，９２０、０８／４８０，２０６、０８／４８４，９３５、０８／４８２，１８５、０８／４８０，９０１、０８／４８６，４５４において開示及び／又は請求された発明の改良をするためのものであり、１９９５年１０月６日出願の米国仮特許出願番号６０／００５，４０８に基づいている。
【０００２】
本発明は、改良された形態の、単純化された縮小命令セット・コンピューター（ＲＩＳＣ）マイクロプロセッサーに関する。特に、スタック構造をとるマイクロプロセッサーに関する。
【背景技術】
【０００３】
上記関連出願に記載されているマイクロプロセッサーの発明は、全て、ここに参考資料として包含されている共通の開示に基づいているものであるから、改良は、そのマイクロプロセッサーにおいて、その性能と生産性を上げるために行われている。以下の記述では、これらの改良を、そのマイクロプロセッサーの現在好適とされている実施例を背景に開示する。
【発明の開示】
【課題を解決するための手段】
【０００４】
本発明のある態様では、マイクロプロセッサーシステムはマイクロプロセッシングユニットと入出力プロセッサー（ＩＯＰ）とを含んでいる。大域メモリーユニットは中央処理装置及びＩＯＰと連結されている。ある手段が、中央処理装置及びＩＯＰの大域メモリーユニットへのアクセスを裁定する。ある形態では大域メモリーユニットは複数の大域レジスタを含んでいる。
【０００５】
本発明の別の態様では、マイクロプロセッサーシステムはマイクロプロセッシングユニットと入出力プロセッサー（ＩＯＰ）とを含んでいる。メモリーインタフェースユニットが、中央処理装置及びＩＯＰをシステムバスに選択的に連結する。ある手段が、ＩＯＰがシステムバスに決められた間隔でアクセスするのを許可する。
【０００６】
本発明の又別の態様では、マイクロプロセッサーシステムは、スタックキャッシュと連結された算術論理演算装置を含むマイクロプロセッシングユニットを有している。ある手段が、算術論理演算装置及びスタックキャッシュと連結され、スタックキャッシュの少なくとも１個のセルに値が含まれているかそして少なくとも他の１個のセルが空であるかを確認することによってスタックキャッシュ資源の可用性を決定する。ある手段が、スタックキャッシュ資源の可用性を決定する手段と連結され、スタックキャッシュ資源の可用性に基づいて算術論理演算装置による命令の実行を選択的に禁止する。
【０００７】
本発明の更に又別の態様では、マイクロプロセッサーシステムは、スタックキャッシュと連結された算術論理演算装置を含むマイクロプロセッシングユニットを有している。スタックキャッシュはシステムメモリーの少なくとも第１の部分に割り当てられている。ある手段が、マイクロプロセッシングユニット及びスタックキャッシュと連結され、スタックキャッシュのスタックポインタがシステムメモリーの第１の部分の境界領域内にアドレスを仮定するとスタック管理トラップを実行する。スタック管理トラップはシステムメモリーの少なくとも１個の他の部分の可用性を決定する。ある手段が、スタック管理トラップ実行の手段と連結され、スタックポインタがアドレスを境界領域内には含まれないシステムの第１の部分の定義済みの領域内に仮定するまでは、スタック管理トラップの他の実行を妨げる。
【０００８】
本発明の又更に別の態様では、マイクロプロセッサーシステムは、マイクロプロセッシングユニットとマイクロプロセッシングユニットをシステムのランダムアクセスメモリー（ＲＡＭ）に連結するメモリーインタフェースユニットとを有している。マイクロプロセッサーシステムは、メモリーインタフェースユニットと連結されて、システムＲＡＭを使って仮想システムメモリーを定義できるように、マイクロプロセッシングユニットにより供給された論理行アドレスをシステムＲＡＭの物理行アドレスに変換するための方法を含んでいる。
【０００９】
本発明の又更に別の態様では、マイクロプロセッサーシステムは、レジスタユニットを含んでいる。レジスタユニットはメモリーアドレスとして翻訳されるべき値を含む少なくとも１個の記憶位置を有している。メモリーインタフェースユニットはレジスタユニットと連結される。メモリーバスはメモリーインタフェースユニットと連結される。システムメモリーはメモリーバスによってメモリーインタフェースユニットと連結される。メモリーインタフェースユニットは、メモリーアドレスを増加させ、そして、メモリーアドレスを使用してのシステムメモリーに対するメモリーバス処理の後、増加後のメモリーアドレスが、ｎを負でない整数として、２nの偶数倍である値を持つときに境界検出信号を作り出す転送論理を含んでいる。
【００１０】
本発明の又更に別の態様では、マイクロプロセッサーシステムは、中央処理装置とその中央処理装置と連結されたビット入力レジスタとを含んでいる。ビット入力レジスタは少なくとも１個のビットラインで論理入力を受け取る。ビット入力レジスタは少なくとも１個のビットラインと連結されたラッチを有しており、これは最初に少なくとも１個のビットラインをその論理レベルを決めるためにサンプリングする。ゼロ持続制御ユニットが、少なくとも１個のビットラインに割り当てられたレジスタにおける論理レベルを記憶するためラッチに接続される。
【００１１】
論理レベルは、中央処理装置によって定義済みの信号がゼロ持続制御ユニットに供給されるまでは、レジスタの中に記憶され続ける。
【００１２】
本発明のもう一つの態様では、マイクロプロセッサーシステムは、マイクロプロセッシングユニットと、入出力プロセッサー（ＩＯＰ）と、前記マイクロプロセッシングユニットと前記ＩＯＰとをシステムバスに選択的に接続するメモリーインタフェースユニットとから成り、そのＩＯＰはシステムアドレス情報を前記メモリーインタフェースユニットに提供するためのプログラムカウンター手段を含んでいる。
【００１３】
本発明の更なる態様では、マイクロプロセッサーシステムは、スタックキャッシュを持ったマイクロプロセッシングユニットを含んでいる。浮動小数点数学命令に影響を及ぼすシステムは、スタックキャッシュのセル内の値に従って浮動小数点演算を行うための算術論理ユニット手段を含んでいる。ある手段が、算術論理ユニット手段と連結されて、選択された浮動小数点演算の一つの性能に応じて浮動小数点例外を作り出す。モードレジスタ手段は、算術論理ユニット手段及び浮動小数点例外発生手段と連結されて、マイクロプロセッシングユニットが浮動小数点例外に応じて、定義済みの浮動小数点ルーチンを実行できるようにする。
【００１４】
本発明の更にもう一つの態様では、マイクロプロセッサーシステムは、スタックキャッシュを持ったマイクロプロセッシングユニットを含んでいる。区切り点命令を実行する方法は、区切り点命令のメモリーアドレスをスタックキャッシュにプッシュする段階と、区切り点サービスルーチンを実行する段階とから成っている。
【００１５】
本発明の又更なる態様では、マイクロプロセッサーシステムは、システムメモリーと、１つか又はそれ以上の内部レジスタを持ったマイクロプロセッシングユニットとを含んでいる。システムメモリーはマイクロプロセッシングユニットとの交信のため第１のアドレス空間を割り当てられる。マイクロプロセッシングユニット内でデータを転送する方法は、１つか又はそれ以上の内部レジスタに第１のアドレス空間とは異なる第２のアドレス空間を割り当てる段階と、第２のアドレス空間内でアドレスによって識別された１つか又はそれ以上の内部レジスタの部分へそしてその部分からデータを転送する段階とから成る。
【００１６】
本発明の又更にもう一つの態様では、マイクロプロセッサーシステムは、スタックキャッシュを持ったマイクロプロセッシングユニットを含んでいる。アドレス演算の方法は、第１のアドレス値をスタックキャッシュの第１のセルに記憶する段階と、第２のアドレス値をスタックキャッシュの第２のセルに記憶する段階と、第１のアドレス値を第２のアドレス値に加え、結果合計値をスタックキャッシュの第１のセルに記憶する段階とから成る。
【００１７】
本発明の又更なる態様では、マイクロプロセッサーシステムは、スタックキャッシュを持ったマイクロプロセッシングユニットを含んでいる。コピーバイト動作を行うための方法は、セルに記憶されている複数のデータバイトの最下位のものを読む段階と、複数のデータバイトの少なくとも他の一つを前記の最下位のデータバイトに置き換える段階とから成る。
【００１８】
本発明の又更にもう一つの態様では、マイクロプロセッサーシステムは、スタックキャッシュとキャリィレジスタを持ったマイクロプロセッシングユニットを含んでいる。テストバイト動作を行うための方法は、スタックキャッシュのセル内に記憶されている複数のバイトの各々を読む段階と、バイトの何れもがゼロ値であるときはキャリィレジスタに第１の論理値を記憶し、そうでないときはキャリィレジスタに第２の論理値を記憶する段階とから成る。
【００１９】
本発明の又更にもう一つの態様では、マイクロプロセッサーシステムは、システムメモリーと、そのシステムメモリーに連結されたマイクロプロセッシングユニットとを含んでいる。スタックキャッシュはシステムメモリーと連結され、プログラムカウンターがスタックキャッシュと連結されている。シングルステッププロセッシングシステムは、スタックキャッシュ及びプログラムカウンターと連結されて、第１のメモリーアドレスをスタックキャッシュの第１のセルからプログラムカウンターへロードする一つの手段を含んでいる。ある手段は、マイクロプロセッサーシステムのシステムメモリーの第１のメモリーアドレスに対応する位置に記憶されている第１の命令を実行するため、プログラムカウンターに連結される。ある手段はシングルステップトラップルーチンを実行し、その間に第２メモリーアドレスが第１セルにロードされ、第１の命令に続く第２の命令がシステムメモリー内の第２のメモリーアドレスに対応する位置に記憶される。
【００２０】
本発明のもう一つの態様では、マイクロプロセッサーシステムは、システムメモリーと、スタックキャッシュを持ったそのシステムメモリーに連結されたマイクロプロセッシングユニットとを含んでいる。スタックキャッシュ管理システムは、スタックキャッシュと連結され、スタックキャッシュ内に現在含まれているセルの数を決定するための方法を含んでいる。ある手段は、セルの数を決定するための前記手段と連結されて、セルの数をスタックキャッシュの定義済みの深さと比較する。ある手段は、比較を実行するための前記手段と連結され、その比較に基づいて現在のスタック深さの表示を提供する。
【００２１】
本発明の更なる態様では、マイクロプロセッサーシステムは、システムメモリーと、スタックキャッシュを持ったそのシステムメモリーに連結されたマイクロプロセッシングユニットとを含んでいる。スタックキャッシュ管理システムは、前記スタックキャッシュと連結され、前記スタックキャッシュ内に現在含まれているセルの数を決定するためのスタック深さ手段を含んでいる。ある手段は、スタック深さ手段と連結されて、スタック深さの表示を提供する。
【００２２】
本発明のもう一つの態様では、マイクロプロセッサーシステムは、システムメモリーと、スタックキャッシュを持ったマイクロプロセッシングユニットを含んでいる。スタックキャッシュ管理システムは、スタックキャッシュと連結され、スタックキャッシュ内の現在のセルの数を決定するための手段を含んでいる。ある手段は、現在のセルの数を決定するための手段と連結されて、現在のセルの数を最大スタック深さと比較して、スタックキャッシュに追加できるセルの数を計算する。ある手段は、スタックキャッシュ内の現在のセルの数にスタックキャッシュに追加できるセルの数と等しいセルの数を追加するために、スタックキャッシュ及びスタックキャッシュに追加できるセルの数を計算するための手段と連結される。
【００２３】
本発明の更にもう一つの態様では、マイクロプロセッサーシステムは、算術論理ユニットを持ったマイクロプロセッシングユニットと、その算術論理ユニットに連結された後入れ先出しスタックとを含んでいる。算術論理ユニットはビットを桁送りするためのビットシフティング手段を含んでいる。ビットシフティング手段は、ビットのカウントを１つ又はそれ以上の部分シフトでシフトし、各部分シフトでシフトされたビットの数だけカウントを減じる。シフティングは複数のビットで、カウントがその複数のビットより大きい間、行われる。その複数のビットの数はそれから少なくなり、シフティングとカウントの減少はカウントがゼロになるまで繰り返す。
【発明を実施するための最良の形態】
【００２４】
特定の実施例の説明
シュボムマイクロプロセッサー１００（図１）は高度に集積された３２ビットのＲＩＳＣプロセッサーで、広範囲な埋込型アプリケーションに対し安いシステムコストで高い性能を提供する。内部１００ＭＨｚでプロセッサーは１００ＭＩＰＳのピーク性能を発揮する。３２ビットのレジスタ１０２、１０４及びデータ経路１０６は３２ビットのアドレスとデータタイプを完全にサポートする。プロセッサー１００は４ギガバイトまでの物理メモリーをアドレス指定し、外部マッピングロジックを使って仮想メモリーをサポートする。
【００２５】
従来の高性能マイクロプロセッサーは、大きなレジスタセット付きのレジスタベースのものであり、パイプライン型か超スカラーかである。これら複雑な構造は多重オペランド命令、多重実行ユニット、或いは非常に長い実行パイプラインにより高価なシリコンを消費する。これらの特性は全て各命令の最速可能実行速度を低くし、シリコンサイズを大きくし、その結果チップのコストを高くする。
【００２６】
シュボムＣＰＵ１００の構造哲学は、単純化と使用の効率化である。ゼロオペランド設計は大多数のオペランドビットと、それが必要とする復号時間と命令空間とを不要にする。命令は８ビットに縮小され、命令の帯域幅は十分に増やされプログラムのサイズは低減された。パイプラインや超スカラーによる実行を利用していないことにより制御が単純化した結果、従来の命令キャッシュ無しに、単一クロック内で、そして各クロックサイクル毎に、命令を発行し終了するための実行の速度が上がっている。チップを確実に低コストにするため、データキャッシュととそのコストも又、レジスタキャッシュの効率化を優先し削除された。
【００２７】
シュボムＣＰＵ１００は、高速及び低速メモリーのいかなる所望の混成をも許容しながら、２０ｎｓから８１０ｎｓまでのプログラム可能なバス構成４グループまでを処理する。最少システムコストは削減され、システム設計者が必要に応じて、システムコストと性能を引き替えることができるようにしている。
【００２８】
多くのオンチップシステム機能と「非接着」バスインタフェースを組み込むことによって、サポートチップが削減され、更にシステムコストを低減している。
【００２９】
ＣＰＵ１００はＭＰＵ１０８、入出力プロセッサー１１０、ＤＭＡ制御装置１１２、割り込み制御装置１１４、ビット入力１１６，ビット出力１１８、プログラム可能メモリーインタフェース１２０を含んでいる。３２ビット幅又は８ビット幅のメモリー及び装置で作動する。最少のシステムは、シュボムＣＰＵ、８ビット幅ＥＰＲＯＭ、オシレーター、それにオプションで１個のｘ８又は２個のｘ１６メモリー、の合計４又は５個の稼働構成要素で構成される。ただの１３７，５００のトランジスターを含む小さなダイが、高性能低コストＣＰＵを作り、高水準の集積が高性能低コストシステムを作る。
【００３０】
特徴
マイクロプロセッシングユニット（ＭＰＵ）１０８（図２）
ゼロオペランド、双スタック１２２及び１２４構造
１０ｎｓ命令サイクル
５２汎用３２ビットレジスタ
１６大域データレジスタ（ｇ０−ｇ１５）１０４
１６局所レジスタ（ｒ０−ｒ１５）は復帰スタックキャッシュ１２４として２倍になる
ｒ０は指標レジスタ１２８で前減分、後増分
自動局所レジスタスタック１２４スピルそしてリフィル
１８オペランドスタックキャッシュレジスタ（ｓ０−ｓ１７）１２２
ｓ０はアドレスレジスタ１３０
自動オペランドスタックスピルそしてリフィル
指標レジスタ（ｘ）１３２で前減分、後増分
カウントレジスタ（ｃｔ）１３４
スタックページングトラップ
キャッシュ管理命令
ＭＰＵ１０８はＤＭＡ１１２及びＩＯＰ１１０と大域レジスタ１０４経由で通信する
ハードウェア単精度及び倍精度ＩＥＥＥ浮動小数点サポート
高速乗算
高速ビットシフター
ハードウェア単一ステップ及び区切り点
仮想メモリーサポート
通知書き込み
パワーオンリセットフラグ
命令空間セーブ８ビットオプコード
直接記憶アクセス制御装置（ＤＭＡＣ）（図１１）
８個の優先化されたＤＭＡチャネル
固定又は循環式ＤＭＡ優先順位
バイト、４バイト、又はセルＤＭＡ装置
単一又は背中合わせＤＭＡリクエスト
２００ＭＢ／秒までの転送速度
チャネル毎にプログラム可能なタイミング
転送境界／カウント達成での割り込みＭＰＵ
転送境界／カウント達成での終了ＤＭＡ
チャネルは事象カウンターとして構成可能
ＤＭＡ１１２はＭＰＵ１０８及びＩＯＰ１１０と大域レジスタ１０４経由で通信する
入出力プロセッサー（ＩＯＰ）
ＭＰＵ１０８とは独立に命令の流れを実行
確定的実行
実行タイミング、同期データ転送、ビット出力操作に使用される
ＤＲＡＭリフレッシュ
８個の転送チャネル
バイト、４バイト、又はセル装置転送
チャネル毎にプログラム可能なタイミング
転送境界／カウント達成での割り込みＭＰＵ
出力ビットをセット／リセット
ＭＰＵ割り込みをセット
インプットビットでテストと分岐
ループ命令
転送アドレス、方向、境界での割り込みをロード
ＩＯＰ１１０はＤＭＡ１１２及びＭＰＵ１０８と大域レジスタ１０４又はメモリーを経由して通信する
チャネルはタイマとして構成可能
命令空間セーブ８ビットオプコード
入出力１１６及び１１８／割込
８入力１１６ビット
ビットはゼロ保持として構成できる
レジスタ及びビットのアドレス指定可能
８出力１１８ビット
レジスタ及びビットのアドレス指定可能
入出力ビットピンで使用可能、又はバスで多重化
８個の優先化され方向付けられた割込
プログラム可能メモリーインタフェース（ＭＩＦ）１２０
１／４外部クロックへのプログラム可能バスインタフェースタイミング
４つの独立構成可能メモリーグループ
３２ビットと８ビット装置の全組み合わせ
ＥＰＲＯＭ、ＳＲＡＭ、ＤＲＡＭ、ＶＲＡＭの全組み合わせ
殆ど全てのＤＲＡＭサイズ／構成
各ＤＲＡＭグループへの高速ページモードアクセス
グループ毎に１メモリーバンク非接着サポート
１６メモリーバンクまでデコーディングするメモリーバンク当たり１．２５ゲート（メモリーグループ当たり４）
仮想メモリーサポート
ＤＲＡＭリフレッシュサポート
ＤＲＡＭサポートにはＤＳＦ、ＯＥ（バー）、ＷＥ（バー）、ＲＡＳ（バー）制御前Ｃａｓ（バー）を含む
【００３１】
図１に示す信号を以下の表１に示す。
【００３２】
2006024233.tif 000003
2006024233.tif 000004
【００３３】
注：  Ｉ:入力オンリーピン
Ｏ:出力オンリーピン
Ｉ／Ｏ:双方向ピン
Ａ():非同期入力
Ｓ(sym):同期入力はセットアップと合致し、記号に関し要件を保持せねばならない。
Ｉ(Ｈ):リセットで高値
Ｉ(Ｌ):リセットで低値
Ｉ(Ｚ):リセットで高インピーダンス
【００３４】
ナショナルセミコンダクター・タイプＶＪＧ／ＶＪＵ１００ピン・プラスチック・クアッド・フラット・パッケージに実装されたとき、シングルチップマイクロプロセッサー１００からピンアウトする信号を以下の表２に示す。
【００３５】
2006024233.tif 000005
【００３６】
目的
以下の資料にシュボムマイクロプロセッサー１００の構造、ハードウェアインタフェース、プログラミングを述べる。本プロセッサーは高ＭＰＵ性能、低システムコストを必要とする埋込型アプリケーションに的を絞ったものである。レーザープリンター、グラフィクスアクセレレーター、点火制御装置、ネットワークルーター、パーソナルディジタル用具、セットトップケーブル制御装置、ビデオゲームその他多くのアプリケーションがこれに当たる。本資料は、ＭＰＵ１０８及びＩＯＰ１１０両方のプログラミングをはじめ、機能的容量、電気的特性及び定格値、実装規定を含めた、シュボムＣＰＵ１００を使用する製品を設計するに必要な情報を提供する。
【００３７】
概要
シュボムマイクロプロセッサー１００は高集積３２ビットＲＩＳＣプロセッサーであり、１００ＭＨｚ内部クロック周波数で１００ＭＩＰＳのピーク性能を発揮する。ＣＰＵ１００は特に、ＭＰＵ性能とシステムコストが選択決定可能な要素となる埋込型アプリケーションに使用するために設計されている。
【００３８】
シュボムＣＰＵの命令セットはハードワイヤ式で、殆どの命令が、パイプラインや超スカラー構造を使うことなく、単一サイクルで実行できる。「フロースルー」設計のため、前の命令が終了する前に次の命令を開始でき、性能が向上している。
【００３９】
シュボムＭＰＵ１０８（図２参照）は、１６個の大域データレジスタ１０４、１個の指標レジスタ１３２、１個のカウントレジスタ１３４、１個の１６深度アドレス指定可能レジスタ／復帰スタック１２４、１個の１８深度オペランドスタック１２２を始めとする５２の汎用目的レジスタから成っている。両スタックはトップエレメントに指標レジスタ１２８又は１３０を含んでおり、チップでキャッシュされ、必要な場合は自動的に外部メモリーにスピルし、リフィルされる。スタックはレジスタベースの構造で、典型的なデータの移動を最小化し、呼び出し、パラメータパス、変数割付の間のメモリーアクセスをも最小化する。更に、このＭＰＵは１個のモード／ステータス・レジスタ１３６と、入出力、制御、構成、ステータスのための４１個の局所アドレス指定レジスタとから成っている。
【００４０】
主要な特徴
２重プロセッサー構造：ＣＰＵ１００は、高性能、ゼロオペランド、２重スタック構造のマイクロプロセッシングユニット（ＭＰＵ）１０８と、データを転送し、事象をカウントし、時間を計測し、他のタイミング依存機能を実行するための命令を実行する入出力プロセッサー（ＩＯＰ）の両方を含んでいる。
ゼロオペランド構造：多くのＲＩＳＣは貴重な命令空間を、しばしば１命令当たり１５ビット以上を、各命令当たり３つの可能なオペランドを規定するのに費やしている。ゼロオペランド（スタック）構造はこれらのオペランドビットを削除し、命令を大幅に、典型的には１／４に短縮し、高い命令実行帯域幅と小さなプログラムサイズとを実現している。スタックも又レジスタセーブを最小化し、プロシジャ内及びプロシジャを超えてロードし、これにより短い命令シーケンスと、高速の実行コードを実現する。
高速、単純な命令：従来のＲＩＳＣプロセッサーと比較して命令はデコードし実行するのにより単純であり、シュボムＭＰＵ１００及びＩＯＰ１１０は単一クロックサイクル内で命令を発行し終了する。両者ともピークの実行能力が１００ＭＩＰＳである。
４命令バッファ：８ビットのオプコードを使用しているので、ＣＰＵ１００は各命令をフェッチ又はプリフェッチする際に、４個までの命令をメモリーから受け取る。これらの命令はメモリーから再読み出しすること無しに繰り返すことができる。これによって、直接ＤＲＡＭに接続する場合、キャッシュを消費することなく高性能が維持できる。
局所及び大域レジスタ：局所及び大域レジスタはデータメモリーへのアクセス回数を最小化する。局所レジスタスタック１２４は自動的に１６個までのレジスタをキャッシュし、オペランドスタック１２２は１８までのレジスタをキャッシュする。スタックすると、割り当てられたデータ空間はプロシジャ呼び出しに応じて効率的にネスト、アンネストする。１６個の大域レジスタ１０４は共用データに記憶装置を提供する。
通知書き込み：メモリーへのデータ書き込みからプロセッサーを切り離し、書き込みが通知された後、プロセッサーが命令実行を継続できるようにする。
プログラム可能メモリー／バス・インタフェース：価格感度の高いシステムでより低いコストのメモリーとシステムとが利用できるようにする。本インタフェースは、ＤＲＡＭ装置４グループまででの高速ページモードを始めとする、多くの形式のＥＰＲＯＭ／ＳＲＡＭ／ＤＲＡＭ／ＶＲＡＭを直接サポートする。ＲＡＳサイクルＯＥ（バー）及びＷＥ（バー）、ＲＡＳ前ＣＡＳ、ＤＳＦ信号のオンチップサポートにより外部ハードウェアを追加することなくＶＲＡＭが使える。プログラム可能なバスタイミングとドライバ能力により、設計者は各プロジェクトに対し時間、性能予算の要求に応じ、システム設計に挑戦的に取り組む広範な解を得たことになる。
クロック乗数：内部的に外部クロックを２倍、４倍化する。オンチップＰＬＬ回路により典型的な厳密なオシレーター仕様が不要となり、低価格のオシレーターが利用できるようになる。
完全に静的な設計：完全に静的な設計なので、ＤＣから定格速度までのクロックを実行できる。クロック速度が低くなると電力消費を大幅に削減できる。
ハードウェア・デバッギングサポート：区切り点及びシングルステップ能力の両方ともデバッギングプログラムを援助する。
仮想メモリー：外部マッピングＳＲＡＭ及びサポートロジックの仕様を通してサポートされている。
浮動小数点サポート：特別の命令が効率のよい単精度及び倍精度のＩＥＥＥ浮動小数点演算を実行する。
割込制御装置：８つまでの優先化されたレベルを８つの２Ｘクロックサイクルの速さの割込応答でサポートする。
８ビット入力１１６及び８ビット出力１１８：ＭＰＵ及びＩＯＰアプリケーション使用に対し、外部ハードウェアの必要性を減じながら、入出力ビットが利用できる。
【００４１】
中央処理装置
シュボムＣＰＵ１００の構造哲学は、単純化と使用の効率化であり、問題を適切に解き、存在する資源の最善の活用を計る最も単純な解を実行する。ハードウェアにおいては、これは使用するトランジスターの数を減らし、それによってＣＰＵが低コストになることと同じである。
【００４２】
初期のＲＩＳＣプロセッサーはＣＩＳＣプロセッサーに比べてトランジスターの数を減じコストを低減し性能を改善した。今日、トランジスター間の相互接続が多くのＣＰＵのシリコンの量を決めている。シュボムＭＰＵの構造哲学は、トランジスターをより少なくすることに加えて、レジスタベースのＭＰＵと比べ相互接続を最小化するという結論に達している。
【００４３】
資源：シュボムＣＰＵ１００（図１）は１０個の主要機能ユニットを含んでいる。それは、マイクロプロセッシングユニット（ＭＰＵ）１０８、入出力プロセッサー（ＩＯＰ）１１０、大域レジスタ１０４、直接記憶アクセス制御装置（ＤＭＡＣ）１１２、割込制御装置（ＩＮＴＣ）１１４、オンチップ資源１０２、ビット入力１１６、ビット出力１１８、プログラム可能メモリインタフェース（ＭＩＦ）１２０、クロック１４０である。一面では、シュボムＣＰＵはこれらのユニットの中及び間で資源の共用化を行うことによりシリコンサイズを小さくし、能力を獲得している。例えば以下のようにである。
【００４４】
大域レジスタ１０４は、ＭＰＵ１０８、ＩＯＰ１１０、ＭＩＦ１２０の中の転送ロジック１４２によって共用されている。この大域レジスタ１０４は、ＭＰＵ１０８ではデータ記憶とＤＭＡＣ１１２及びＩＯＰ１１０との制御通信とに用いられ、ＩＯＰ１１０では転送情報、ループカウント、ディレーカウントに用いられ、ＤＭＡＣ１１２では転送情報に用いられている。更に、転送情報はＭＩＦ１２０の中の転送ロジックで用いられ、ＩＯＰ１１０とＤＭＡＣ１１２によって共用されている。
【００４５】
ＭＩＦ１２０はシステムバスへのアクセスのために、ＭＰＵ１０８、ＩＯＰ１１０、ＤＭＡＣ１１２、ビット出力１１８、ビット入力１１６によって共用されている。バストランザクションの要求は、ＩＯＰ１１０の確定的実行を一時的に保証するため、ＭＩＦ１２０によって仲裁、優先化される。
【００４６】
ＤＭＡＣ１１２転送終了ロジックは、終了動作を要領よく行うため、特別の終了条件及びＭＰＵ１０８との密接な連結を用いることによって、十分に削減されている。
【００４７】
ＩＮＴＣ１１４は、ＭＰＵ１０８への割込要求のため、ビット入力１１６、ＩＯＰ１１０、ＤＭＡＣ１１２（ＭＩＦ１２０転送ロジック１４２経由で）によって共用されている。
【００４８】
ビット出力１１８は、オンチップ資源レジスタ１０２を通しシステムで利用できるようになる。ビット出力１１８は、プログラム化された出力のため、ＭＰＵ１０８とＩＯＰ１１０によって共用化され、ビットアドレス指定可能である。
【００４９】
複雑なＩＯＰ１１０プログラム、多くの割込源、多くの入力ビット、多くの出力ビット、全ての利用できるチャネル、ＭＰＵ１０８の最大計算能力を必要とする最高度使用ケースでは資源の不足が生じるかもしれないが、そのようなことは常時あるわけではない。機能ユニット間での資源の共用はトランジスタ数、パッケージピン数、その結果としてシリコンサイズとコストを大幅に減らし、ＣＰＵの容量と柔軟性を増やす。利用できる資源の中から選択する能力のおかげで、他のＣＰＵの固定資源セットと比較して、シュボムＣＰＵ１００はより広範なアプリケーションへ使用できる。
【００５０】
クロック速度
ＣＰＵのクロック速度はその性能を予言するものではない。例えば、パワーＰＣ６０４はＤＥＣアルファ２１０６４Ａの半分の速度で走るが、‘９５ベンチマーク性能では略同等の仕様を達成している。この点では、シュボムＣＰＵ１００はパワーＰＣよりももっとＤＥＣアルファに近い。しかし、シュボムＣＰＵ１００はこれらのＣＰＵのどれとも可成り異なる設計哲学に基づいている。
【００５１】
大部分のプロセッサーは歴史的にシステムの設計者に対し、ＣＰＵ実行速度、メモリー帯域幅、入出力帯域幅の三角形のバランスを取るように強要してきた。しかし、システムのクロック速度が上がるにつれて、バスの速度も、キャッシュメモリーの速度も上がり、システムインタフェースのコストも上がってきた。そして又、ＣＰＵのコストも上がり、このバランスを維持するために数千のトランジスタが追加された。
【００５２】
シュボムＣＰＵ１００は、低システムコストを維持しながら、システム設計者に望みの性能レベルを選択させるものである。これは先の三角形を幾らか傾かせるであろうが、コストは三角形バランス方程式の一部にはない。シュボムＣＰＵのプログラム可能なメモリインタフェースは広範囲なメモリー速度の使用を可能とし、システムが必要に応じ低速或いは高速のメモリーを使えるようにした。低速メモリーがシステムの性能を低下させるのは明らかだが、シュボムＣＰＵの高速内部クロック速度によって、内部演算は素早く完了する。このように多重サイクルの乗算及び除算命令は、単一サイクルの乗算ユニットのようにシリコンを消費することなく、速やかに実行される。単一サイクル乗算ユニットと競合する部分のクロック速度の８倍までで、乗除性能における差は消え、一方アプリケーションの残りの部分はこれに対応して高速で実行する。ある場合には、多数のトランジスターをそのように機能させるため専用化すれば高性能が得られるかもしれないが、シリコンのコストが増え、コストの増加はシュボムＣＰＵ１００のこのバージョンの設計目標には合致しない。
【００５３】
マイクロプロセッサーユニット
ＭＰＵ１０８（図２）は、幾つかの互いに相関するやり方での基本設計を通して、シュボムＣＰＵの単純化と使用の効率化の構造哲学を支えている。
【００５４】
大部分のＲＩＳＣプロセッサーが高いクロック速度で実行するために、パイプライン及び超スカラー実行を用いているのに対して、シュボムＭＰＵ１０８はどちらも使っていない。単純な構造にすることによって、シュボムＭＰＵは大部分の命令を単一クロックサイクル内で発行、終了する。そこには詰め込むべきパイプラインも、プログラムの流れの中で変更の間にフラッシュすべき何物もない。時にはもっと多くの命令が、シュボムＭＰＵコードで同じプロシジャを実施するように要求されているが、このＭＰＵは同等のシリコンサイズ及び技術の他のプロセッサーよりも高いクロック周波数で作動し、同等の性能を十分に低減したコストで実現する。
【００５５】
マイクロプロセッサーの性能は、しばしば、メモリーから命令をいかに早く供給され得るかで制限される。ＭＰＵ１０８は、８ビット命令を使い４つまでの命令（１命令グループ）を各メモリーアクセス毎に得ることができるようにして、このボトルネックを少なくしている。各命令は、典型的には、実行するのに一つの２Ｘクロックサイクルを取り、それ故、命令グループを実行するのには４つの２Ｘクロックサイクルを必要とする。メモリーアクセスは４つの２Ｘクロックサイクルを取ることができるので次の命令グループが終了する。これにより、命令キャッシュにコストを掛け複雑化すること無しに、最大命令実行帯域幅でプロセッサーに命令を供給できるようになる。
【００５６】
ゼロオペランド（スタック）構造は８ビット命令を可能にする。このスタック構造は、命令毎にソースと行き先のオペランドを指定する必要性を取り除く。オペランド仕様に対する命令の度毎にオプコードビットを使うことがないことによって、機能演算の帯域幅が大幅に、４倍にまで広がる。典型的ＲＩＳＣＭＰＵ命令帯域幅の倍を例示するシュボムＭＰＵ命令シーケンスの例を図３に示す。シュボムＭＰＵ上の命令シーケンスは命令ビットの半分を必要とし、命令バンド幅が増加した結果からキャッシュされていない性能の利益が生まれる。
【００５７】
2006024233.tif 000006
【００５８】
スタックＭＰＵはこのようにレジスタベースＭＰＵよりも単純であり、シュボムＭＰＵ１０８は２つのハードウェアスタック１２２及び１２４即ち、オペランドスタック１２２と局所レジスタスタック１２４を持つ利点を有する。単純化は広く行き渡り、スタックが実行中に使用されるという効率的なやり方で反映されている。
【００５９】
ＡＬＵ１５０は本来一つの入力ソース、オペランドスタック１２２のトップ１３０、からのデータを処理する。ＡＬＵ１５０は又、分岐アドレス計算にも使われる。データ伝送はこのように非常に削減され単純化されている。中間結果は典型的には無制限の深さに「スタックアップ」し、特別のレジスタ割付と管理を要求するよりはむしろ、必要に応じ直接利用される。スタック１２２と１２４は独立してキャッシュされ、自動的にスピルしリフィルし、他のＲＩＳＣプロセッサーで典型的なスタック操作のためのソフトウェアオーバヘッドは取り除かれている。機能パラメータはオペランドスタック１２２にパスされ直接消費されてオフされ、大部分のスタックフレーム管理の必要性は取り除かれている。追加の局所記憶装置が必要な場合、局所レジスタスタック１２４は、ファンクションを超えて効率よくネスト、アンネストするレジスタを供給する。スタックなので、スタックレジスタ空間は実際に記憶されているデータに割り付けられるだけで、固定サイズレジスタウィンドウズを使う構造とは違って、レジスタがスピル、リフィルされるときに記憶装置の活用とバスの帯域幅は最大となる。スタック速度コンテクストは、レジスタが使用前に明確にセーブされる必要が無く、必要に応じ追加のスタック空間が割り付けられるので、割込サービスのように切り替わる。このように、スタックは要求されない限り明確にアドレス指定可能なレジスタの数を減らし、データ位置指定と移動を減じることにより高速で実行する。スタックの記憶装置は本来局所的なものであるので、大域レジスタ１０４は要求された際に非局所レジスタ資源を供給する。
【００６０】
８ビットオプコードは多量の結合データを収めるには小さすぎる。即時値と分岐オフセットのためには追加のバイトが必要である。しかし、可変長命令は通常デコーディングを複雑にし、連結データのアクセスパスを複雑化し長くする。問題を単純化するため、グループ内でのバイトリテラルオプコードの位置に関わらず、命令グループの最右端のバイトからだけバイトリテラルデータが取られる。同様に、分岐オフセットはオプコード位置に関わらず、全てのビットが分岐オプコードの右に取られる。３２ビットリテラルデータに対して、データはその次のメモリーセルから取られる。これらの設計選択の結果、必要なデータが内部データバスでの配置に対して確実に常に右側に位置合わせされるようになり、相互接続を減らし、単純化し、実行速度を早くする。
【００６１】
大部分の命令は単一のクロックサイクルでデコードされ実行されるので、データ演算に使用される同じＡＬＵ１５０も又利用可能で、分岐アドレス計算に使用される。これにより、通常、分岐オフセット計算に必要とされるＡＬＵ全体が削減される。
【００６２】
ＭＰＵ１０８はクロック速度が速いので、単一サイクルの乗積算ユニットのためにチップ領域を消費するというよりはむしろ、通常の多重サイクルの乗除算の実行時間を短縮する。効率的に定数を乗ずるため、高速乗算命令は特定された数のビットだけを乗ずることになる。
【００６３】
カウントされたビットシフト演算は、バレルシフタのためにチップ領域を消費するというよりはむしろ、バイトによる第１のシフトに、そしてビットで必要なサイクルを最小化するのに「高性能」である。シフト演算はセル２つ（６４ビット）シフトすることもでき、ビット循環命令を合成しやすくしている。
【００６４】
浮動小数点数学は有用で時には必要であるが、埋込型アプリケーションでは頻繁に使われるわけではない。ＭＰＵの命令は、浮動小数点ユニットのためにチップ領域を消費するというよりはむしろ、単精度及び倍精度の両方において、基本的ＩＥＥＥ浮動小数点数学演算の最も時間を消費する態様を効率的に実行するために供給される。この演算は必要なサイクルを低減するために「高性能」シフタを使用する。
【００６５】
バイトの読みとり及び書き込み動作は使用可能ではあるが、バイト値に対しスキャンするとき、個々のバイトを通しての循環は遅い。このタイプの動作は、セル内の全てのバイトで一時に作動する命令によってもっと効率化することができる。
【００６６】
アドレス空間
ＭＰＵ１０８は全てのプログラムとデータ操作に対し、線形４ギガバイトアドレス空間を完全にサポートしている。入出力装置はそれをメモリーアドレスにマッピングすることによって選択されている。規定により、もっとも上のアドレスビットが、外部ハードウェアでデコードされた入出力装置アドレスを選定する。この規定は、２ギガバイトを超えるスパースアドレス空間を持った２ギガバイトの連続する線形プログラム及びデータの空間を作り出す。これは又、入出力装置と入出力チャネル転送のためのメモリーアドレスの同時アドレス指定ができるようにしている。以下のメモリー及び装置アドレス指定を参照されたい。
【００６７】
幾つかの演算命令はアドレスが４バイト（セル）境界に整列するのを期待している。このアドレスはセル整列していると称される。アドレスの上位３０ビットだけがデータを置くために使用され、最下位の２アドレスビットは無視される。セル内では、高順位のバイトは低バイトアドレスに置かれる。次に低い順位のバイトは次に高いアドレスにあり、以下それに準ずる。例えば、値０ｘ１２３４５６７８はメモリーのバイトアドレスでは低アドレスから高アドレスへ１２ ３４ ５６ ７８のように存在する。
【００６８】
レジスタとスタック
レジスタセットは、５２個の汎用レジスタ１２２、１２４、１０４、１３２、１３４（図３）、モード／ステータスレジスタ１３６と、入出力、コンフィギュレーション、ステータスに使用される４１個の局所アドレスマップされたオンチップ資源レジスタ１０２（図２０）とを含んでいる。
【００６９】
オペランドスタック１２２は１８個のレジスタｓ０−ｓ１７を含んでおり、後入れ先出しスタックとして作動し、上位３個のレジスタ（ｓ０−ｓ２）に直接アドレスする。これらのレジスタと残りのレジスタ（ｓ３−ｓ１７）は共にスタックキャッシュとして作動する。算術、論理、データ移動動作は、中間結果処理と同じく、オペランドスタック上で実行される。スタックフレームを構築したり、必然的に他のレジスタ及びフレームの間でデータを移動すること無しに、パラメータはプロシジャにパスされ、結果はスタック上のプロシジャから帰ってくる。真のスタックなので、レジスタは、使用可能な記憶装置を有効に活用ため、必要なときだけ割り付けられる。
【００７０】
局所レジスタ１２４は１６個のレジスタｒ０−ｒ１５を含んでおり、最初の１５個のレジスタ（ｒ０−ｒ１４）への直接アドレスを備えた後入れ先出しスタックとして作動する。これらのレジスタと残りのレジスタ（ｒ１５）は共にスタックキャッシュとして作動する。スタックなので、これらはサブルーチン復帰アドレスを保持し自動的に局所レジスタのデータをネストするのに使われる。
【００７１】
キャッシュされたスタック１２２と１２４は共に自動的にメモリーにスピルしメモリーからリフィルされ、任意の深さを持つことができる。更に、ｓ０とｒ０とはメモリーアクセスに使用できる。以下のスタックとスタックキャッシュを参照されたい。
【００７２】
スタックキャッシュされたオペランドと局所レジスタを使えば、コンテクストをセーブし復元するために必要なオーバヘッドを削除することによって（大域レジスタだけが使用できるプロセッサーと比べ）、性能を改善できる。このことによって、非常に効率的な割込とサブルーチン処理ができるようになる。
【００７３】
スタックに加えて、１６個の大域レジスタ１０４と、３個の他のレジスタがある。大域レジスタ（ｇ０−ｇ１５）は、ＭＰＵ乗除算命令（ｇ０）とＩＯＰ１１０用のオペランド記憶装置として、データ記憶に使用される。これらのレジスタは共用されているので、ＭＰＵ１０８及びＩＯＰ１１０はこれらのレジスタを通して通信することもできる。残っているのは、モード及びステータスビットを含むモードレジスタ１３６と、指標レジスタ（ｓ０とｒ０に加えて）であるｘレジスタ１３２と、ループカウンタであり且つ浮動小数点演算にも参加するｃｔレジスタ１３４とである。
【００７４】
プログラミングモデル
アメリカ国家規格フォース（ＡＮＳフォース）又は、逆ポーランド記法（ＲＰＮ）として知られている接尾辞表記法を使用するヒューレットパッカード計算機をよく知っている人にとっては、シュボムＭＰＵのプログラミングはいろんな面で非常に取り付きやすいだろう。
【００７５】
ＭＰＵアーキテクチュアは、命令形式内で規定されるオペランドの数によりクラス分けできる。代表的な１６ビット及び３２ビットのＣＩＳＣ及びＲＩＳＣのＭＰＵは通常２又は３オペランドのアーキテクチュアであるが、より小さなマイクロプロセッサーは１オペランドのアーキテクチュアである。各命令において、２又は３オペランドのアーキテクチュアは１つのソースと宛先か、２つのソースと１つの宛先を規定するが、１オペランドのアーキテクチュアは１つのソースだけを規定し、暗黙の宛先、大抵はアキュムレータを有している。アーキテクチュアは又通常純ではない。例えば、１オペランドのアーキテクチュアは、レジスタ間のデータ移動のためソースと宛先両方を規定する２オペランドの命令をしばしば持っている。
【００７６】
シュボムＭＰＵ１００はゼロオペランドアーキテクチュアでスタックコンピューターとして知られている。オペランドのソースと宛先はオペランドスタックのトップにあると仮定されており、これは又アキュムレータでもある。図３ａを参照されたい。加算のような演算の場合、オペランドスタック１２２のトップから両方のソースオペランドを使い、それらを１５２に示してあるように加え、結果をオペランドスタック１２２のトップに帰し、こうしてオペランドスタック深さにおいて１つの正味削減効果を出す。
【００７７】
大抵のＡＬＵ１５０の演算は同様の挙動を示し、２つのソースオペランドを使い、１つの結果オペランドをオペランドスタックへ戻す。幾つかのＡＬＵの演算では、１つのソースオペランドを使い、１つの結果オペランドをオペランドスタックへ戻す。あるＡＬＵ及び他の演算でも非スタックレジスタを必要とし、ある限られた演算ではオペランドスタックを全く使わないものもある。
【００７８】
非ＡＬＵ演算も又同様である。ロード（メモリー読み出し）ではオペランドスタック上か指定されたレジスタか何れかにあるアドレスを使用する。記憶（メモリー書き込み）ではオペランドスタック上かレジスタか何れかにあるアドレスを使用し、オペランドスタックからのデータを使用する。データ移動動作ではデータをレジスタからオペランドスタックにプッシュするか、又はデータをスタックからレジスタへポップする。
【００７９】
一旦データがオペランドスタック上に来れば、そこのあるデータを必要とするいかなる命令にも利用できる。例えば加算の結果は次の命令で要求されるまでは無制限にスタック上に置いておける。前記表３を参照されたい。命令は又、要求されたときに前の結果にアクセスできるように、データをオペランドスタックのトップの幾つかのセルに再順序づけするのにも利用できる。スタックエレメントを後で再順序づけするのを最小化或いは省略するために、データをオペランドスタックから取り除いたり、局所又は大域レジスタに置くこともできる。データをオペランドスタックからポップし、それを局所レジスタスタックにプッシュして再スタックすることもできる。
【００８０】
計算は、最も深くネストされた計算を第１に実行し、中間結果をオペランドスタック上に置き、次に中間結果を計算アンネストとして組み合わせることによって、通常最も効率的に実行することができる。計算のネスティングが複雑であるか、又は中間結果を、他のデータがオペランドスタックに追加された後、しばらく後で使用する必要があるような場合、中間結果をオペランドスタックから取り除き大域又は局所レジスタに記憶させることもできる。
【００８１】
大域レジスタは直接使用され、データを無制限に維持する。局所レジスタは局所レジスタスタックキャッシュ内のレジスタであり、スタックとして、最初に割り付けられねばならない。割付は、データをオペランドスタックからポップし、それを局所レジスタスタックに一度に１セルだけプッシュすることによって行うことができる。これは、一度に、初期化されていないスタックレジスタの１ブロックを割り付けすることによって行うこともでき、初期化されていないレジスタはそれからデータをどの様な順序ででもレジスタに、一度に１セルだけ、ポップすることによって初期化される。割り付けられた局所レジスタは、データをオペランドスタックにプッシュし、それを、一度に１セルだけ、局所レジスタスタック外にポップし、不必要なデータをオペランドスタックから捨てることによって割付解除することができる。替わりに、割り付けられた局所レジスタは、最初にレジスタから必要とされるデータを全てセーブし、次に、一度に、レジスタのブロックを割付解除することによって、割付解除することもできる。選択する方法は、必要なレジスタの数、オペランドスタック上のデータが必要な順序通りであるか否か、によって決まる。
【００８２】
スタック１２２及び１２４の双方にあるレジスタは、スタックのトップに関係して参照され、それゆえ有効範囲は局所的である。例えば、ｒ０においてアクセスできたものは、１つのセルが局所レジスタスタック１２４にプッシュされた後では、ｒ１としてアクセスでき、新しくプッシュされた値はｒ０としてアクセスできる。
【００８３】
パラメータは、オペランドスタック１２２にあるサブルーチンへパスされ、そこから戻される。この方法で無制限な数のパラメータをパスし、戻すことができる。無制限な数の局所レジスタ割付を行うこともできる。パラメータ及び割り付けられた局所レジスタは、サブルーチンとプログラム基本ブロックを超えて、このように便利にネストアンネストする。
【００８４】
サブルーチンの復帰アドレスは局所レジスタ１２４上にプッシュされ、サブルーチンへの入口にｒ０として指定され、前のｒ０はｒ１として、以下順次繰り上がって、アクセスできる。データがスタック上にプッシュされ、利用できるレジスタの空間が一杯になると、必要に応じレジスタはメモリーにスピルする。同様に、データがスタックから取り除かれレジスタ空間が空になると、必要に応じレジスタがメモリーからリフィルされる。このように、プログラムの見方からすれば、スタックレジスタは常に利用できることになる。
【００８５】
命令セット概観
表４はＭＰＵ命令をリストにしたものであり、後出の表３４、３７はニモニックとオプコードをリストにしたものである。全ての命令が、中間データを必要とするものを除き、８ビットで構成されている。このため、各命令フェッチ毎に４命令（１命令グループ）までを得ることができ、３２ビット命令を持った典型的ＲＩＳＣ機に比べメモリー帯域幅要件を低減できる。この特性によって、メモリーからの追加の命令フェッチ無しに１つの命令グループ上でループできるようになり（ミクロループ）、更に効率を上げる。命令形式を図６に示す。
【００８６】
2006024233.tif 000007
【００８７】
ＡＬＵ演算
殆ど全てのＡＬＵ演算はオペランドスタック１２２のトップ、ｓ０，必要ならｓ１、で行われる。幾つかのオペランドは、ｇ９，ｃｔ１３４又はｐｃも使う。
【００８８】
唯一のＡＬＵステータスビット、キャリィ、だけが維持されモード１３６で記憶される。他にＡＬＳステータスビットはないので、他の条件演算は全てｓ０を浮動でテストすることによって実行される。ｓ０のゼロ／非ゼロ状態を反転するためにｅｑｚが用いられる。大部分の算術演算はｓ０のビット３１から作り出された結果からのキャリィを修正したものである。ｐｃ関係データの参照を行うにはａｄｄ ｐｃが利用できる。ａｄｄはキャリィを変更することなくアドレス算術を行うのに役に立つ。他の演算は演算の結果の一部としてキャリィを修正している。
【００８９】
ｓ０及びｓ１は共にダブルセルシフトに使用でき、ｓ０は６４ビット値のより上位のセルを含みｓ１はより下位のセルを含む。シングルセルシフト、ダブルセルシフト両方とも、ビットをキャリィとｓ０のビット３１の間で転送する。ダブルセルシフトで構成されるシングルセル回転を表現するコードを以下に示す。
【００９０】
全てのＡＬＵ命令オプコードはエンコードされたフィールドを持っていない８ビット値としてフォーマットされる。
【００９１】
2006024233.tif 000008
【００９２】
2006024233.tif 000009
【００９３】
2006024233.tif 000010
【００９４】
分岐、スキップ、ループ（表７）
ｂｒ、ｂｚ、ｃａｌｌ、ｄｂｒ命令は各々可変長である。オプコードの最下位からの３ビット及びオプコード右側の現在の命令グループ内の全てのビットは相対分岐オフセットに使用される。図６参照。分岐宛先アドレスは、オフセットの範囲と宛先で実行されることになる命令の数を最大化するために、セル整列されている。オフセットは３、１１、１９又は２７ビット長さであり、現在の命令グループ内でのオプコードの位置に依る。宛先のアドレスは、分岐オプコードを含むセルの始まりのアドレスからオフセットしている。オフセットは各々＋１２／−１６、＋４０９２／−４０９６、＋１０４８５７２／−１０４８５７６、及び＋２６８４３５４５２／−２６８４３５４５６バイトの範囲を持っている。オフセットのサイズが、分岐が宛先に届くだけ十分でない場合、分岐は、もっとオフセットビットが使用でき或いはｂｒ[]又はｃａｌｌ[]が使える命令グループに移されなければならない。
【００９５】
ｂｒ[]及びｃａｌｌ[]でレジスタ間接分岐が利用できる。これらはｓ０からの絶対バイトアドレスを使用する。算出ｐｃ相対分岐が要求された際にはａｄｄ ｐｃ命令が使用できる。
【００９６】
ｍｌｏｏｐ 命令はマイクロループと呼ばれる。指定されれば、条件がテストされ、ｃｔが減少する。終了条件が合わなければ、現在の命令グループの始めで実行が継続する。マイクロループは、メモリーから命令を再フェッチすることなく短い命令シーケンスを再実行するのに使われる。表１０参照。
【００９７】
ｂｚによってゼロで分岐する以外に、他の条件分岐がｓｋｉｐ によって行われる。これらは、現在の命令グループの実行を終了し、次の命令グループの始めで実行を継続する。これらは付加的な制御の流れ動作を作り出すために、ｂｒ、ｃａｌｌ、ｄｂｒ、ｒｅｔ（或いは他の命令）と組み合わせることができる。
【００９８】
2006024233.tif 000011
【００９９】
リテラル（表８）
オプコード帯域幅を最大化するために、３つのサイズのリテラルを使うことができる。４ビット（ニブル）リテラル用の、−７から＋８の範囲を持ったデータはオプコードの４つの最下位ビットでエンコードされ、数は、＋８としてデコートされる２進値１０００により、２の補数値としてエンコードされる。８ビット（バイト）リテラル用の、０から２５５の範囲を持ったデータは、命令グループ内でのオプコードの位置に関わらず命令グループの最も右のバイトに置かれる。３２ビット（長、又はセル）リテラル用のデータは、命令の流れの中で命令グループに続くセルに置かれる。同じ命令グループ内の多重プッシュ１命令は命令グループに直接続く連続したセルにアクセスする。図６参照。
【０１００】
2006024233.tif 000012
【０１０１】
ロードと記憶（表９）
ｒ０及びｘはレジスタ間接アドレス指定及び、事前減分４又は事後増分４でレジスタ間接アドレス指定をサポートする。これらのモードによって、メモリー参照動作が効率的に行えるようになる。コード表示メモリーの移動とフィルの動作を表１０に示す。
【０１０２】
レジスタ間接アドレス指定はｓ０のアドレスでも行うことができる。他のアドレス指定モードはａｄｄａを使って実行することができる。表１１に複雑なメモリー参照動作用のコードを示す。
【０１０３】
上記例に示したメモリーアクセスは、セル整列で、メモリーアドレスの２つの最下位ビットを無視している。メモリーはバイトアドレスにおいてｌｄ、ｂ[]でも読むことができ、バイトアドレスにおいてｘ及びｒｅｐｌｂを使って書くこともできる。バイト動作を参照のこと。
【０１０４】
ＭＰＵは１レベル通知書き込みを含んでいる。これによって、ＭＰＵは通知書き込みが行われている間も実行し続けることができ、実行時間を十分に減らすことができる。メモリーの一貫性は、通知書き込みにＭＰＵバスリクエストを超えて優先バスアクセスを与えることにより維持され、このようにして書き込みが無限に遅らされることはない。表１０のコード例において、ループ実行オーバヘッドは通知書き込みを使う場合ゼロである。通知書き込みはｍｓｐｗｅをセットすることにより使用可能になる。
【０１０５】
全てのロードと記憶の命令オプコードはエンコードされたフィールドを持っていない８ビット値としてフォーマットされる。
【０１０６】
2006024233.tif 000013
【０１０７】
2006024233.tif 000014
【０１０８】
2006024233.tif 000015
【０１０９】
データ移動（表１２）
レジスタのデータは、最初にレジスタをオペランドスタックにプッシュし、次にそれを宛先レジスタにポップすることによって移動される。メモリーデータは同様にして移動される。上記ロードと記憶参照のこと。
【０１１０】
ｇｉ及びｒｉにアクセスするデータ移動命令用のオプコードは、４つの最下位ビットにエンコードされたレジスタ番号の付いた８ビット値である。他のデータ移動命令オプコードは全て、エンコードされたフィールドを持っていない８ビット値としてフォーマットされる。
【０１１１】
2006024233.tif 000016
【０１１２】
スタックデータ管理（表１３）
オペランドスタックデータはスタックのトップから使われ、処理時に通常消費される。これは、スタックデータを複写、廃棄、再順序づけするための命令の使用を要求できる。データは、一時的に経路外に置くため、或いはスタックアクセス順序を反転するため、或いは直接アクセスのために局所レジスタにおくため、局所レジスタスタックに移動させることもできる。表１０のコード例を参照。
【０１１３】
２、３個より以上のスタックデータ管理命令が、与えられたオペランドスタックセルにアクセスすることを要求される場合、通常、データを局所又は大域レジスタに置くことによって性能改善が図れる。しかし、大域レジスタと局所レジスタの供給は限られており、ある点ではメモリーにスピルする。データは、そうするのが効率的な間だけ、オペランドスタック上に維持されるべきである。一般的に、プログラムがｓ２より深いオペランドスタックにあるデータに頻繁にアクセスすることを要求する場合、そのデータ又は他のもっとアクセスしやすいデータを直接アドレス指定可能なレジスタに置き、アクセスを単純化すべきである。
【０１１４】
局所レジスタスタックを利用するためには、データをオペランドスタックからポップし局所レジスタスタック上にプッシュするか、局所レジスタスタックからポップしてオペランドスタック上にプッシュすることもできる。このメカニズムは、結果オペランドスタックオーダーが受け入れられるときには、あと２，３のセルを移動させるのに便利である。もっと多くのデータを移動させる場合、或いはオペランドスタック上のデータ順序が要求通りでない場合、ｌｆｒａｍｅを使って必要な局所レジスタを割付、割付解除でき、そうすればレジスタは直接書き込み呼び出しできるようになる。ｌｆｒａｍｅを使えば、スタックをバストランザクションの連続シーケンスとしてスピルすることによって、必要とされる局所レジスタスタック空間を使用可能にでき、こうすれば、ＤＲＡＭに書き込む際に必要とされるＲＡＳサイクルの数を最小化することになる。
【０１１５】
ｓｆｒａｍｅ命令はｌｆｒａｍｅと同様に挙動し、基本的にはオペランドスタックから数多くのセルを廃棄するのに使用される。
【０１１６】
全てのスタックデータ管理命令オプコードはエンコードされたフィールドを持っていない８ビット値としてフォーマットされる。
【０１１７】
2006024233.tif 000017
【０１１８】
スタックキャッシュ管理（表１４）
初期化及び可能性があるとすれば関連するトラップを経由してのオーバーフローとアンダーフローのモニタリング以外では、スタックキャッシュはアクティブな管理を必要としない。キャッシュを効率的に処理するために幾つかの命令が設けられていて、コンテクストの切替、ステータスのチェック、スピルとリフィルのスケジューリングを行う。
ｄｅｐｔｈ命令を使ってスタックキャッシュのＳＲＡＭ部内のセルの数を決めることができる。この値を使って、現在キャッシュにある値を廃棄し、＿ｃａｃｈｅでキャッシュ深さを復元し、或いは全オンチップ及び外部スタック深さを計算することができる。
ｃａｃｈｅ命令は、データがキャッシュの中にあること、或いはデータのための空間がキャッシュの中にあることの何れかを保証するのに使用でき、スピルとリフィルは優先時間に起こることになる。このことにより、キャッシングプロセスをより以上に制御できるようになり、プログラム実行プロセスの間、より高次の決定ができるようになる。この方法でスタックのスピルとリフィルをスケジューリングすれば、スタックメモリーアクセスのため必要となるＲＡＳサイクルを最小化することによって性能を改善することもできる。
ｆｒａｍｅ命令は、スタックのＳＲＡＭ部のトップで初期化されていないレジスタ空間のブロックを割り付け、或いは最早不必要になった際にはそのようなレジスタのブロックを廃棄するのに使うことができる。 ｆｒａｍｅ命令は ｃａｃｈｅ命令同様に、スタックメモリーアクセスのため必要となるＲＡＳサイクルを最小化することによって性能を改善するため、グループスタックのスピルとリフィルをするのに使うことができる。
【０１１９】
これ以上のことについては、スタック及びスタックキャッシングを参照されたい。
【０１２０】
全てのスタックキャッシュ管理命令オプコードは、エンコードされたフィールドを持っていない８ビット値としてフォーマットされる。
【０１２１】
2006024233.tif 000018
【０１２２】
バイト演算（表１５）
表１６に示すコードを使って、バイトはアドレス指定してメモリーから直接読み出すことができ、アドレス指定してメモリーに書き込むことができる。
【０１２３】
2006024233.tif 000019
【０１２４】
2006024233.tif 000020
【０１２５】
セル内でバイトを処理するのに命令が使用できる。バイトはセルを超えて複写でき、セル内のバイトはゼロのテストが行え、セルは１バイト左又は右へシフトできる。指定されたバイトのスキャニング、空のバイトのスキャニング、セルサイズユニットでの空終了ストリングの移動を示すコード例を、表１７−１９に示す。
【０１２６】
全てのバイト演算命令オプコードはエンコードされたフィールドを持っていない８ビット値としてフォーマットされる。
【０１２７】
2006024233.tif 000021
【０１２８】
2006024233.tif 000022
【０１２９】
2006024233.tif 000023
【０１３０】
浮動小数点数学（表２０）
上述した命令は、基本数学関数（＋、−、＊、／）のための効率的な単精度及び倍精度ＩＥＥＥ浮動小数点ソフトウェアを実施するために、及び浮動小数点ライブラリルーチンの開発の援助のために使用される。これらの命令は主として、普通にプログラムされている場合には実行時が長くなる標準化、標準化解除、指数演算、丸め、及び例外の数及び状態の検出を遂行する。「浮動小数点数学支援」を参照されたい。
【０１３１】
全ての浮動小数点数学命令演算コードは、エンコードされたフィールドを持たない８ビット値としてフォーマットされる。
【０１３２】
2006024233.tif 000024
【０１３３】
デバッギング機能（表２１）
これらの各命令は、例外を信号し、プログラムのデバッギングを助けるためにアプリケーションにより供給された実行・監視プログラムをトラップする。「デバッギング支援」を参照されたい。
【０１３４】
両デバッギング命令演算コードは、エンコードされたフィールドを持たない８ビット値としてフォーマットされる。
【０１３５】
2006024233.tif 000025
【０１３６】
オンチップ資源（表２２）
これらの命令によって、オンチップ周辺装置、状態レジスタ、及び構成レジスタへアクセスすることができる。全てのレジスタへは、ldo[]及び sto[]命令を用いてアクセスすることができる。最初の６つのレジスタは各々８ビットを含み、これらは ldo.i[]及び sto.i[]を用いてアドレス可能なビットでもある。「オンチップ資源レジスタ」を参照されたい。
【０１３７】
全てのオンチップ資源命令演算コードは、エンコードされたフィールドを持たない８ビット値としてフォーマットされる。
【０１３８】
2006024233.tif 000026
【０１３９】
雑（表２３）
割込み禁止及び割込み可能化命令は、単なるシステム制御命令である。これらは、割込みをより効率的にするために与えられる。他のシステム制御機能は、モード内の、またはオンチップ資源レジスタ内のビットをセットまたはクリアすることによって遂行される。分割命令は 32 ビット値を、それぞれが元の値の 16 ビットを含む２つのセルに分離する。
【０１４０】
全ての雑命令演算コードは、エンコードされたフィールドを持たない８ビット値としてフォーマットされる。
【０１４１】
スタック及びスタックキャッシュ
スタックキャッシュは、プログラムされた、または例外文脈切換え（呼出しサブルーチン実行及びトラップまたは割込みサービシングのような）中のレジスタの割当て及び保存に必要なオーバヘッドを最小にすることによって、スタックレジスタ資源の使用を最適化する。
【０１４２】
ローカルレジスタスタック１２４（図３）は、普通の後入れ先出し待ち行列として挙動するようにアドレスされるオンチップＳＲＡＭアレイからなっている。ローカルレジスタｒ0 −ｒ15はスタックの現在のトップに対して内部的にアドレスされる。レジスタｒ0 −ｒ14は個々にアドレス可能であり、常に次々に割当てられ、満たされる。もしキャッシュ内にないあるレジスタがアクセスされれば、次のデータセットを確保するために、より低い順序の全てのレジスタが読み込まれよう。
【０１４３】
オペランドスタック１２２は同じように構成されているが、ＡＬＵに入力を供給するために、ＳＲＡＭスタックキャッシュアレイの前に２つのレジスタが追加されている。これらのレジスタはｓ0 及びｓ1 で示され、ＳＲＡＭアレイはｓ2 −ｓ17で示されている。レジスタｓ0 、ｓ1 、及びｓｗだけは個々にアドレス可能であるが、それ以外は、オペランドスタックはローカルレジスタスタックに似た挙動をする。ＳＲＡＭアレイｓ2 −ｓ17は「空」になることができる（以下に説明する）が、ｓ0 及びｓ1 は常にデータを含むものと考えられる。
【０１４４】
スタックキャッシュは、暗示スタックメモリ演算を発生させることが要求される前に、常に現演算を実行して完了させることができるように設計されている。どの命令も（スタック管理命令を除く）、何れかのスタックから１つより多くのセルを明示的にプッシュしたり、または明示的にポップしたりしない。従って、実行を完了できるようにするために、スタックキャッシュ論理は、命令実行の前に、常に各スタックキャッシュ内の１つまたはそれ以上のセルが一杯であり、１つまたはそれ以上のセルが空であるようにする（後述するように、電源投入直後を除く）。もし、ある命令を実行した後に、それが何れのスタックの場合でもなければ、対応するスタックキャッシュは自動的にメモリへあふれ出るか、またはメモリから再充填されて、次の命令を実行できるようになる前にこの状態に到達する。同様に、スタックキャッシュ深さを明示的に変化させる命令、 cache 、 frame 、pop sa、及び pop la が実行されて完了し、次いで上述した状態が存在するようにされる。
【０１４５】
以上のようにある命令の実行によってｒ15及びｓ17を満たすことはできるが、それらは次の命令が実行される前にあふれ出る。同様に、ｒ0 及びｓ2 はある命令の実行によって空にすることはできるが、それらは次の命令が実行される前に充填される。
【０１４６】
スタックは任意の深さであることができる。スタックがあふれ出ると、データはスタックポインタ内のアドレスに書き込まれ、次いでスタックポインタが４だけデクレメントされる（ポストデクレメンテッド・スタックポインタ）。反対にスッタックが再充填されると、ポインタは４つだけインクリメントされ、次いでデータがメモリから読み出される（プレインクリメンテッド・スタックポインタ）。オペランドスタックのためのスタックポインタは sa であり、ローカルレジスタスタックのためのスタックポインタは la である。
【０１４７】
スタックは動的に割当てられるメモリ領域であるから、メモリ領域がオーバフローまたはアンダーフローしないようにある量の計画または管理が必要である。代替として、スタックメモリは、スタック・ページ例外を使用して動的に割当てまたは監視することができる。
【０１４８】
スタック・ページ例外
スタック・ページ例外は、何れかのスタックキャッシュメモリが何れかの 1024 バイトメモリページの境界付近にアクセスすると発生し、オーバフロー及びアンダーフロー保護、及びスタックメモリ管理を可能にする。ページ境界領域のマージン付近のスタック・ページ例外を防ぐために、一旦境界領域がアクセスされて対応するスタック・ページ例外が信号されると、スタックポインタは別のスタック・ページ例外が信号される前にそのスタックページの中央領域へ移動しなければならない。図５を参照されたい。
【０１４９】
スタック・ページ例外は、現スタックページの縁に到達した時にスタックメモリページを再割当てするか、または再位置付けすることを可能にすることによってスタックメモリを管理可能にする。スタックページの境界領域は、 cache または frame 命令でさえも実行して完了させることを可能ならしめ、対応するスタックキャッシュをメモリに対して空にすることができる各ページの端から探知された 32 のセルである。スタック・ページ例外を使用するには、所与の時点に２ＫＢだけのアドレス可能なメモリ、即ち現スタックページ及び最も新しく侵害された境界付近のページを各スタックに割振ることが必要である。
【０１５０】
各スタックは、スタックページオーバフロー及びスタックページアンダーフロー例外を支援する。これらの例外状態は、命令実行モードを実行する間の対応するスタックあふれ出し、または再充填がローカルスタックオーバフロー、ローカルスタックアンダーフロー、オペランドスタックオーバフロー、及びオペランドスタックアンダーフローを信号しているビット、及び対応するトラップ可能化ビットを含んでいる時に、アクセスされるメモリアドレスに対して試験される。
【０１５１】
スタックページ例外は、全てのトラップの最高優先順位を有している。これは、スタックページ境界がその実行中に侵されないように、スタックトラップハンドラコードのスタック効果を注意深く考えることが重要であることを暗示している。
【０１５２】
2006024233.tif 000027
【０１５３】
スタック初期化（表２４）
ＣＰＵがリセットした後に、両ＭＰＵスタックは残余の対応スタックポインタがロードされるまで初期化されていないものと見做すべきであり、これはＭＰＵによって遂行される第１の動作の１つであるべきである。
【０１５４】
リセット後、スタックは異常に空である。即ち、ｒ0 及びｓ2 は割当てられておらず、対応するスタックへの最初のプッシュ動作で、またはそのスタックポインタ初期化時に割当てられる。しかしながら、プッシュされたセルをポップすると、スタックは空にされて再び充填することが必要になる。従って、最初にプッシュされたセルがそのスタック上に残されるべきであるか、またはそのスタックが更に使用される前に対応するスタックポインタを初期化すべきである。
【０１５５】
スタック深さ
各スタック上のセルの合計数は、メモリへあふれ出たセルの数と、オンチップキャッシュ内のセルの数とを加算することによって容易に決定できる。表２５を参照されたい。
【０１５６】
2006024233.tif 000028
2006024233.tif 000029
【０１５７】
スタックフラッシュ及び回復
文脈切換えを遂行する時、スタックキャッシュに新しい文脈を再ロードできるようにするために、スタックキャッシュ内のデータをメモリへあふれ出させる必要がある。常にオンチップに維持されているスタックキャッシュの部分ｒ0 及びｓ0 −ｓ2 をスタックキャッシュのあふれ可能な領域へ押しやり、それらをメモリへ書き込むことができるように注意を払わなければならない。キャッシュをフララッシュし、回復するためのコード例を、それぞれ表２６及び２７に示す。
【０１５８】
2006024233.tif 000030
2006024233.tif 000031
【０１５９】
2006024233.tif 000032
【０１６０】
2006024233.tif 000033
2006024233.tif 000034
【０１６１】
例外及びトラッピング
例外処理は精密であり、低メモリ内の実行可能コードベクトルにトラッピングすることによって管理される。各３２ビットベクトル位置は、４命令までを含むことができる。これにより、これらの４命令内の、またはより長いトラップルーチンへの分岐によって、トラップにサービスすることができる。トラップは、適切な処理を行うために優先順位付けされ、入れ子にされる( nested )。トラップ名及び実行可能なベクトル位置が図４に示されている。
【０１６２】
例外は、例外を生じさせるための定義された状態が存在する場合に信号されると言われる。もしトラップが可能にされれば、トラップが処理される。トラップはトラップ論理によって処理され、呼出しサブルーチンに関連する実行可能なコードベクトルをアドレスさせる。多重トラップが同時に発生する場合には、最低優先順位のトラップが先ず処理されるが、実行可能なコードベクトルが実行される前に次に高い優先順位のトラップが処理される等々、最高優先順位のトラップが処理されるまで続く。次いで、最高優先順位のトラップの実行可能なコードベクトルが実行される。各トラップハンドラが retを実行する度に、入れ子にされた実行可能なベクトルの復帰アドレスがアンネスト( unnest )し、優先順位付けられたトラップ実行を発生する。
【０１６３】
トラップ処理及びネスティング中は、ある命令が命令グループの１つをバイトで実行し始めるまで、割込みは不能にされる。割込みは、ＩＮＴＣレジスタ内にそれらの要求状態が維持されているので、トラップを用いて入れ子にする必要はない。
【０１６４】
表２９は各トラップの優先順位をリストしたものである。処理されたデータ、または実行された命令によって明示的に発生することができるトラップは、表３０にリストされている。システムの現在の状態によって、表３０と同時に発生することができるトラップは表２８にリストされている。
【０１６５】
2006024233.tif 000035
2006024233.tif 000036
【０１６６】
2006024233.tif 000037
2006024233.tif 000038
【０１６７】
浮動小数点数学支援
ＭＰＵは単精度（ 32 ビット）及び倍精度（ 64 ビット）ＩＥＥＥ浮動小数点数学ソフトウェアを支援する。浮動小数点ユニット及びそれが要求するシリコン領域ではなく、ＭＰＵは、基本浮動小数点数学演算をプログラムする時に要求される時間を消費する殆どの演算を遂行する命令を含んでいる。コアとなる加算、減算、乗算、除算機能を与えるために、存在整数数学演算が使用される。更に、トップの１つまたは２つの（精度に依存する）スタックセルへの３ビット拡張を使用して丸めを援助し、所要の精度及び例外信号動作を与える。
【０１６８】
データフォーマット
単精度及び倍精度ＩＥＥＥフォーマットはＭＰＵの透視( perspective )から支援されるが、一時に 32 ビット値しか操作されない（ダブルシフティングを除く）。図６ａを参照されたい。ＭＰＵ命令は図示された標準化データフォーマットを直接的に支援する。関係付けられた標準化解除フォーマットは testexpによって検出され、ソフトウェアで完全に支援可能である。
【０１６９】
状態及び制御ビット
モードレジスタ１３６は、浮動小数点精度、丸めモード、例外信号、及びトラップ可能化をセットする 13 ビットを含んでいる。図７を参照されたい。
【０１７０】
2006024233.tif 000039
【０１７１】
ＧＲＳ拡張ビット
ＩＥＥＥ標準によって要求される精度を維持するために、ＩＥＥＥフォーマット数内に保持されるよりも多くのシグニフィカンド( significand )ビットが必要である。これらの特別ビットは、シグニフィカンドの右からシフトしたビットを保持するために使用される。これらは、付加的な精度を維持し、処理中に精度が失われたか否かを決定し、そして丸めを行うべきか否かを決定するために使用される。３ビットはモードで現れるので、これらを保存し、回復し、そして操作することができる。個々には、これらのビットはガードビット、丸めビット、及びスティッキービットと名付けられている。幾つかの命令がこれらのビットを操作、または変更する。表３１を参照されたい。
【０１７２】
denorm及び normrがビットをＧＲＳ拡張内にシフトさせる時、ビットの出所は常にシグニフィカンドの最下位ビットである。単精度モードでは、ＧＲＳ拡張ビットはｓ0 から取出され、倍精度モードではビットはｓ1 から取出される。普通の右シフトの場合、ＧＲＳ拡張ビットは常に、シフトの最下位ビット（即ち、もし単シフトならばｓ0 、もし倍シフトならばｓ1 ）から到来する。命令 normlはビットをＧＲＳ拡張からシフトさせるだけの命令であり、ビットは単精度モードではｓ0 内に、倍精度モードではｓ1 内にシフトする。普通の左シフトは常に０をシフトさせ、ＧＲＳ拡張ビットに影響は与えない。
【０１７３】
2006024233.tif 000040
2006024233.tif 000041
【０１７４】
丸め
ＧＲＳ拡張は、小数点結果を発生させながら、３つの特別精度ビットを維持する。これらのビットは、宛て先フォーマットに適合させるために、結果をどのように丸めるかを決定するのに使用される。もし誰かがビットを、あたかもそれらが２進小数点の右にあるものと見れば、ガードビットは半分の位置値を有し、丸めビットは 1/4の位置値を有し、そしてスティッキービットは 1/8の位置値を有している。fp round modeによって選択された丸め操作は、ＧＲＳ拡張ビット及び ct の符号ビットを使用してどのように丸めを行うべきかを決定する。もしガードビットが０であれば、ＧＲＳ拡張の値は半分未満である。もしガードビットが１であれば、ＧＲＳ拡張の値は半分またはそれ以上である。ＧＲＳ拡張ビットは宛て先フォーマットの一部ではないから、操作が完了した時にはそれらは破棄される。この情報は、命令 rndの動作のための基礎である。
【０１７５】
rnd による殆どの丸め調整は、「何もしない」か、または「ｓ0 をインクリメントさせる」ことを含む。これが切上げなのか、または切捨てなのかは ct 内の loating-int結果の符号に依存する。もしＧＲＳ拡張ビットが０でなければ「何もしない」は、もし結果が正ならば「切捨て」の効果を有し、もし結果が負ならば「切上げ」の効果を有している。同様に、「結果をインクリメントする」は、もし結果が正ならば「切上げ」の効果を有し、もし結果が負ならば「切捨て」の効果を有している。もしＧＲＳ拡張ビットが０であれば、結果は正しかったのであり、丸めを必要としない。表３２を参照されたい。
【０１７６】
実際には、シグニフィカンド（または倍精度シグニフィカンドの低位セル）はｓ0 内にあり、符号及び指数は ct 内にあり、もし遂行された rndからｓ0 のビット 31 がインクリメントされればキャリーがセットされ、そうでなければキャリーはクリアされる。これにより、キャリーは倍精度シグニフィカンドの上位セル内に伝播できるようになる。
【０１７７】
例外
処理をスピードアップするために、浮動小数点命令によって検出された例外状態は例外信号ビットをモードで、及びもし可能化されていれば、トラップをセットする。以下のトラップが支援される。
＊  指数                testexp  から信号される
＊  アンダーフロー      norml、addexp、subexp  から信号される
＊  オーバフロー        normr、addexp、subexp  から信号される
＊  標準化              denorm、norml、normr  から信号される
＊  丸め済み            rnd  から信号される。
【０１７８】
例外は、命令が完了した時に優先順位付けされ、同時に発生する他の何れかのシステム例外またはトラップと共に処理される。「例外及びトラッピング」を参照されたい。
＊  指数トラップ：特別例指数を検出する。もし試験された指数が全て０であるか、全て１であれば、キャリーがセットされ、例外が信号される。キャリーをセットすることによって、トラップを処理せずに結果を試験することができる。
＊  アンダーフロートラップ：計算またはシフト中のデクレメントによって小さくなり過ぎた指数を検出する。
＊  オーバフロートラップ：計算またはシフト中のインクリメントによって大きくなり過ぎた指数を検出する。
【０１７９】
2006024233.tif 000042
2006024233.tif 000043
【０１８０】
＊  例外標準化：ＧＲＳ拡張へのシフトによって失われたビットを検出する。例外状態は命令実行の終わりに試験され、もしＧＲＳ拡張内の何れかのビットがセットされていれば信号される。この時点で試験することによって、後刻浮動小数点命令によって試験させ、信号させるためにＧＲＳ拡張をセットするのに使用される正常の右シフトが可能になる。
＊  丸められた例外：丸めによるｓ0 のビット０の変化を検出する。
【０１８１】
ハードウェアデバッギング支援
ＭＰＵ  １００は、中断点命令 bkpt 、及びシングルステップ命令 step の両方を含んでいる。命令 bkpt は、中断点トラップを実行して bkpt 演算コードのアドレスをトラップハンドラへ供給する。これにより、プロセッサは中断点までその全速で実行することが可能になり、中断点以降はプログラム制御された手法で実行する。 step は、供給されたアドレスにおいて命令を実行し、次いでシングルステップトラップを実行する。シングルステップトラップは命令毎の実行を効率的に監視する。
【０１８２】
中断点
命令 bkpt は、復帰アドレスが bkpt 演算コードのアドレスであることを除いて、アドレス０×134 への呼出しサブルーチンと類似の動作を遂行する。命令 push.1 に起因して、呼出しサブルーチンのアドレスは常にその復帰アドレスからは決定することができないので、この挙動が必要なのである。
【０１８３】
一般に、 bkpt はデバッギングについての関心点におけるアプリケーション内の命令を一時的に置換するために使用される。 bkpt のためのトラップハンドラは、典型的には、元の命令を回復し、ユーザに対して情報を表示し、そしてコマンドを待機する。もしくは、トラップハンドラは、終了状態（この特定の中断点のレジスタ値または実行数のような）を調べ、この状態に合致するまでアプリケーションの実行を継続することによって、条件付き中断点を実現することができる。 bkpt が step に優る点は、アプリケーションが中断点間を全速で実行することである。
【０１８４】
シングルステップ
命令 step は、一時に１つの命令をアプリケーションプログラムに実行させるために使用される。これは、復帰アドレスにおける１つの命令の実行の後にアドレス０×138 が発生することを除いて、サブルーチンからの復帰に極めて似た動作である。トラップからの復帰アドレスは、次の命令のアドレスである。stepのためのトラップハンドラは、典型的には、ユーザに対して情報を表示し、コマンドを待機する。または代わりに、トラップハンドラは、終了状態（この特定の位置のレジスタ値または実行数のような）を調べ、この状態に合致するまでアプリケーションの実行を継続することができる。
【０１８５】
stepは、他の例外トラップと同様に処理され、優先順位付けされる。これは、全てのトラップが step トラップの前に実行することを意味している。その結果は、 step が他のトラップハンドラのプログラムコードを通して直接シングルステップできないことである。命令 step は、通常はオペレーティングシステムレベルより下であると考えられているので、スタックページトラップのようなオペレーティングシステム機能はその介入なしに実行しなければならない。
【０１８６】
より高い優先順位のトラップハンドラは、ソフトウェアにおいてそれらに再優先順位付けすることによって、シングルステップさせることができる。対応する実行可能なトラップベクトルからのより高い優先順位のトラップハンドラを直接実行するのではなく、ベクトルは復帰スタック上の復帰アドレスを再配列するコードへ分岐してトラップハンドラの結果的な実行シーケンスを変化させる。種々の準備（ハウスキーピング）タスクも遂行しなければならず、種々のハンドラはスタックメモリ領域境界が再優先順位付けされたハンドラによって侵されないようにしなければならない。
【０１８７】
仮想メモリ支援
ＭＰＵ  １００は、論理メモリアドレスを物理メモリアドレスに翻訳する外部マッピング論理の使用を通して仮想メモリを支援する。ＭＰＵ  ＲＡＳメモリサイクル中にＣＰＵから供給される論理行アドレスは、外部ＳＲＡＭによって物理行アドレス及びメモリページ故障ビットに翻訳される。メモリページ故障ビットはメモリサイクル中にサンプルされ、メモリ内の翻訳されたページが有効か、無効かを決定する。ＤＲＡＭメモリサイクルの通常のＲＡＳプリチェンジ部分には、メモリのサイクル時間オーバヘッドを要せずに論理ページを物理ページにマップするための充分な時間が存在する。
【０１８８】
無効メモリページ指示は、メモリ故障例外を信号させ、もし可能化されていればトラップに故障状態へのサービスを実行させる。通知された書き込み故障はトラップルーチン内で完了し、他の型の故障動作はトラップルーチンから復帰させてそれらを再実行することによって完了する。故障が読み出し動作からなのか、または書き込み動作からなのかは mflt write によって指示される。故障アドレス及びデータ（もし書き込みであれば）は mfltaddr 及び mfltdta内に格納される。メモリ故障トラップは mflt trap enによって可能化される。表３４のコード例を参照されたい。
【０１８９】
2006024233.tif 000044
2006024233.tif 000045
【０１９０】
2006024233.tif 000046
2006024233.tif 000047
【０１９１】
ビデオＲＡＭ支援
ビデオＲＡＭ（ＶＲＡＭ）は、ＤＲＡＭアレイへの直列アクセスを提供する第２のポートを有するＤＲＡＭである。これによって、ＤＲＡＭアレイへの通常のＭＰＵアクセスを行いながら、ビデオデータをメモリから直列にクロックアウトして表示させることができる。ＤＲＡＭアレイのアクセス競争を防ぐために、ＭＰＵは周期的に読み出し転送要求を発行して選択されたＤＲＡＭの行を直列転送バッファへコピーする。読み出し転送同期問題を排除するために、多くのＶＲＡＭは分割転送バッファを有しており、それらによってＭＰＵの読み出し転送動作のタイミングの柔軟性を大きくすることを可能にしている。ＭＰＵは、時間ＲＡＳバーが立ち下がっている間のＶＲＡＭのＯＥバー、ＷＥバー、及びＤＳＦ（デバイス特別機能）の状態についてコマンドをエンコードすることによって、ＶＲＡＭに命令して読み出し転送、または分割読み出し転送を遂行させる。これらの動作は、ｖｒａｍを書き込み、所望のＶＲＡＭメモリアドレスに適切な読み出しまたは書き込みを遂行することによってエンコードされる。
【０１９２】
若干のＶＲＡＭは、ライン充填、ブロック充填、及び bit-blts のようなより進歩した動作を有しており、これらはＷＥバー、ＯＥバー、ＤＳＦ、ＲＡＳバー、及びＣＡＳバーの他の組合せと共にエンコードされている。動作及びコマンドの基本セットは製造者の間では共通であるが、より進歩した機能のためのコマンドは変化する。ＭＰＵは、考え得るエンコーディングの 32 の全ての組合せを支援する。
【０１９３】
モードレジスタ
モードは、ＭＰＵの状態及び実行オプションを指示するいろいろなビットを含んでいる。前述したものを除いて、全てのビットは書き込み可能である。レジスタを図７に示す。
【０１９４】
mflt write
メモリ故障が信号された後に、メモリ書き込みによって故障が発生したことを指示する。
guard bit
浮動小数点数を丸めるのを援助するのに使用されるｓ0 （もしfp precision がセットされていれば、ｓ1 ）の最下位ビットの下の３ビット拡張の最上位ビット。
round bit
浮動小数点数を丸めるのを援助するのに使用されるｓ0 （もし fp precision がセットされていれば、ｓ1 ）の最下位ビットの下の３ビット拡張の中央ビット。
sticky bit
浮動小数点数を丸めるのを援助するのに使用されるｓ0 （もし fp precision がセットされていれば、ｓ1 ）の最下位ビットの下の３ビット拡張の最下位ビット。ビットの直接シフトまたは書き込みに起因してセットされると、このビットは、たとえそれを通して０ビットが右シフトしても、それが明示的にクリアされるか、または０が書き込まれるまでセットされ続ける。
mflt trap en
もしセットされていれば、メモリ故障トラップを可能化する。
mflt exc sig
もしセットされていれば、メモリ故障が検出される。
ls boundary
スタックのあふれ、または再充填の結果としてls ovf exc sig 、またはls unf exc sig がセットされれば、セットされる。スタックのあふれ、または再充填の結果として la 内のアドレスが 1024 バイトメモリページの中央領域に入れられると、クリアされる。ローカルレジスタスタックトラップ論理によって使用され、ローカルレジスタスタックが 1024 バイトメモリページ境界付近で繰り返しあふれ、及び再充填を行う場合に、不要なスタックオーバフロー、及びアンダーフローを防ぐ。書き込みは不能である。
ls unf trap en
もしセットされていれば、ローカルレジスタスタックアンダーフロー例外が信号された後に、ローカルレジスタスタックアンダーフロートラップが発生することを可能にする。
ls unf exc sig
もしローカルレジスタスタック再充填が発生し、ls boundaryがクリアされ、そしてアクセスされたメモリアドレスが 1024 バイトメモリページの最後の 32 のセル内にあれば、セットされる。
ls ovf trap en
もしセットされていれば、ローカルレジスタスタックオーバフロー例外が信号された後に、ローカルレジスタスタックオーバフロートラップが発生することを可能にする。
ls ovf exc sig
もしローカルレジスタスタックあふれが発生し、ls boundaryがクリアされ、そしてアクセスされたメモリアドレスが 1024 バイトメモリページの最初の 32 のセル内にあれば、セットされる。
os boundary
スタックのあふれ、または再充填の結果としてos ovf exc sig 、または os unf exc sig がセットされれば、セットされる。スタックのあふれ、または再充填の結果として sa 内のアドレスが 1024 バイトメモリページの中央領域に入れられると、クリアされる。オペランドスタックトラップ論理によって使用され、オペランドスタックが 1024 バイトメモリページ境界付近で繰り返しあふれ、及び再充填を行う場合に、不要なスタックオーバフロー、及びアンダーフローを防ぐ。書き込みは不能である。
os unf trap en
もしセットされていれば、オペランドスタックアンダーフロー例外が信号された後に、オペランドスタックアンダーフロートラップが発生することを可能にする。
os unf exc en
もしオペランドスタック再充填が発生し、os boundaryがクリアされ、そしてアクセスされたメモリアドレスが 1024 バイトメモリページの最後の 32 のセル内にあれば、セットされる。
os ovf trap en
もしセットされていれば、オペランドスタックオーバフロー例外が信号された後に、オペランドスタックオーバフロートラップが発生することを可能にする。
os ovf exc sig
もしオペランドスタックあふれが発生し、os boundaryがクリアされ、そしてアクセスされたメモリアドレスが 1024 バイトメモリページの最初の 32 のセル内にあれば、セットされる。
carry
アキュムレータからのキャリービットを含んでいる。キャリーを保存し、回復するために保存及び回復モードを使用することができる。
power fail
電源投入中にセットされ、電源障害が発生したことを指示する。モードへの何等かの書き込みによってクリアされる。それ以外は書き込み不能である。
interrupt en
もしセットされていれば、割込みがグローバルに可能にされる。命令 ei によってセットされ、 di によってクリアされる。
fp rnd exc sig
もしセットされていれば、 rndの先行実行がｓ0 （もしfp precision がセットされていれば、ｓ1 ）の最下位ビットに変化をもたらしている。
fp rnd trap sig
もしセットされていれば、浮動小数点丸め例外が信号された後に、浮動小数点丸めトラップが発生することを可能にする。
fp nrm exc sig
もしセットされていれば、denorm、norml 、または normrの先行実行の後に、ガードビット、丸めビット、及びスティッキービットの１つまたはそれ以上がセットされる。
fp nrm trap en
もしセットされていれば、浮動小数点標準化例外が信号された後に、浮動小数点標準化トラップが発生することを可能にする。
fp ovf exc sig
もしセットされていれば、normr 、addexp、または subexp の先行実行が指数フィールドを全て１に、またはそれを越えて増加させている。
fp ovf trap en
もしセットされていれば、浮動小数点オーバフロー例外が信号された後に、浮動小数点オーバフロートラップが発生することを可能にする。
fp unf exc sig
もしセットされていれば、norml 、addexp、または subexp の先行実行が指数フィールドを全て０に、またはそれを越えて減少させている。
fp unf trap en
もしセットされていれば、浮動小数点アンダーフロー例外が信号された後に、浮動小数点アンダーフロートラップが発生することを可能にする。
fp exp exc sig
もしセットされていれば、testexp の先行実行が、全て１または全て０を含む指数フィールドを検出している。
fp exp trap en
もしセットされていれば、浮動小数点指数例外が信号された後に、浮動小数点指数トラップが発生することを可能にする。
fp round mode
ＭＰＵ命令 rndによって遂行される丸めの型を含んでいる。
fp precision
もしクリアされていれば浮動小数点命令はＩＥＥＥ単精度（ 32 ビット）フォーマットのスタック値を操作する。もしセットされていれば浮動小数点命令はＩＥＥＥ倍精度（ 64 ビット）フォーマットのスタック値を操作する。
【０１９５】
ＭＰＵリセット
リセットの後にＩＯＰ  １１０は、ＭＰＵが実行を開始する前にアドレス０×80000004において実行を開始する。ＩＯＰは、ＭＰＵがバスにアクセスして実行を開始できるようになる前に、遅延を実行するようにプログラムされていなければならない。一旦ＩＯＰが遅延を実行すると、ＭＰＵはアドレス０×80000008において実行を開始する。種々の起動構成の詳細に関しては、後に「プロセッサ起動」で詳述する。
【０１９６】
割込み
ＣＰＵ  １００は 24 の割込み資源から異なる８つまでの割込みレベルを支援する優先順位付けされたオンチップ割込みコントローラ１１４を含んでいる。割込みは、Ｉ／Ｏチャネル転送から、ＩＯＰからビット入力を通して受けることができるか、または ioin へ書き込むことによってソフトウェア内へ押しやることができる。割込み及びそれらのサービシングの完全な詳細に関しては、後述する「割込みコントローラ」を参照されたい。
【０１９７】
ビット入力
ＣＰＵ  １００は、ＩＮＴＣ  １１４及びＤＭＡＣ  １１２と（これらのサービスの要求により）共用される８つの汎用ビット入力１１６を含んでいる。これらのビットはＩＮバー[ 7:0 ]から取出されるか、または、もしそのように構成されていれば、バス上のＡＤ[ 7:0 ]からサンプルされる。バスからサンプルすることによって、ＣＰＵのためにより小さい、高価ではないパッケージの使用が可能になる。またそれは、分離したビット入力バスを経路指定するのではなく、ＡＤバスの再使用を通してＰＷＢ領域の要求を減少させることもできる。
【０１９８】
ビット出力
ＣＰＵ  １００は、ＭＰＵ  １０８またはＩＯＰ  １１０によって書き込むことができる８つの汎用ビット出力１１８を含んでいる。これらのビットはＯＵＴバー[ 7:0 ]上の出力であり、ＲＡＳバーが不活動の間ＡＤ[ 7:0 ]上で使用可能でもある。バスからビットを取出すことによって、ＣＰＵのためにより小さい、高価ではないパッケージの使用が可能になる。またそれは、分離したビット出力バスを経路指定するのではなく、ＡＤバスの再使用を通してＰＷＢ領域の要求を減少させることもできる。後述する「ビット出力」を参照されたい。
【０１９９】
オンチップ資源
ＣＰＵ  １００の非ＭＰＵハードウェア機能は、一般的にそれら自身のアドレス空間に位置している１組の 41 レジスタ１０２を通してＭＰＵ  １０８によってアクセスされる。分離したアドレス空間を使用すると実施が簡易化され、演算コードが保存され、そして正常なメモリアドレス空間と周辺装置との混乱が防がれる。まとめて「オンチップ資源」として知られているこれらのレジスタ１０２によって、ビット入力、ビット出力、ＩＮＴＣ、ＤＭＡＣ、ＭＩＦ、システム構成、及びＩＯＰの若干の機能へのアクセスが可能になる。これらのレジスタ及びそれらの機能は、このマニュアルを通して参照されており、後述する「オンチップ資源レジスタ」に詳述されている。
【０２００】
命令参照
スタックをベースとするＭＰＵアーキテクチャのように、ShBoom ＭＰＵ命令は米国規格協会（ＡＮＳＩ）標準フォース( Forth )のようなスタックをベースとするプログラミング言語に類似するドキュメンテーション要求を有している。驚くには当たらないが、多くの米国標準規格（ＡＮＳ）フォースコア動作は、ShBoom ＭＰＵ上の命令である。その結果、言語ドキュメンテーションのために使用されるＡＮＳフォーススタック表記法が、ShBoom ＭＰＵ命令を記述するのに有用である。ShBoom ＭＰＵに適用される基本表記法は、
( input operands--output operands )
( L : input operands--output operands )
ここに、「 -- 」は命令の実行を指示する。「入力オペランド」及び「出力オペランド」は、オペランドスタック上の値（省略時）か、またはローカルレジスタスタック上の値（“Ｌ”を前置）のリストである。これらは、常に同一ではないが、命令ニーモニック内に表すことができる出所及び宛て先オペランドに類似している。スタックレジスタのトップ（ｓ0 またはｒ0 ）内に保持されている値は常にオペランドリストの右にあり、より高い順のレジスタ内に保持されている値は左（例えば、ｓ2 、ｓ1 、ｓ0 ）に現れる。オペランドリスト内の唯一のアイテムは、その命令に関連するものである。他の値はスタックのこれらの下に存在することができる。全ての入力オペランドは、スタックからポップされ、動作が遂行され、そして出力オペランドがスタック上にプッシュされるものと考えられる。例えば、記号式
ｎ1  ｎ2  --  ｎ3
は２つの入力オペランドｎ1 及びｎ2 と、出力オペランドｎ3 とを表している。命令 addの場合、ｎ1 （ｓ1 から取出された）がｎ2 （ｓ0 から取出された）に加算され、結果はｎ3 である（ｓ0 内に残される）。もし何れかのダイヤグラムの左の値の名前が右の値の名前と同一であれば、その値は要求されたのではあるが不変である。名前はオペランドの型を表している。同一の型の異なる、または変化したオペランドを指示するために、数値サフィックスが付加される。値は、バイト、整数、浮動小数点数、アドレス、または単一の 32 ビットセル内に配置することができる他の何等かの型の値であることができる。
【０２０１】
addr             アドレス
byte             文字またはバイト（上側 24 ビット０）
r               実数（浮動小数点数）
flag            真／偽フラグ（非０＝真）
n                整数または 32 任意ビット
other  text      整数または 32 任意ビット
ＡＮＳフォースは、他のオペランド型及び１スタックセルより多くを占有するオペランド（ここでは、これらは使用されない）を定義している。
【０２０２】
典型的には、全てのスタック動作は表記法によって記述され、テキスト内に明示的に記述されることはないことに注目されたい。もし複数の考え得る成果が存在すれば、それらの成果オプションは分離したライン上にあり、個々の場合として考えるべきである。もし他の領域またはメモリ変数が変更されれば、その効果はテキスト内にドキュメントされる。
【０２０３】
スタックダイヤグラムライン上には、キャリーに対する効果（もしあれば）、並びに右マージン内の演算コード及び実行時間が指示されている。ｍを伴うタイミングは、指定された所要メモリサイクルの数を指示している。メモリサイクルのタイミングは、プログラムされたサイクル時間と、ＲＡＳまたはＣＡＳサイクルの何れが発生しているのかとに依存する。
【０２０４】
ニーモニックスタックコードに関しては付録Ａを参照されたい。
【０２０５】
2006024233.tif 000048
【０２０６】
2006024233.tif 000049
【０２０７】
入出力プロセッサ
入出力プロセッサ（ＩＯＰ）１１０（図８）は、データをデバイスとメモリとの間で転送し、ダイナミックメモリをリフレッシュし、時間を測定し、ビット入力及びビット出力を操作し、そしてシステムタイミング機能を遂行するために命令を実行する専用処理ユニットである。通常、ＩＯＰプログラムは時間的決定性( temporally deterministic )であるように書かれている。効率的な時間的決定性の手法で実行する条件付き実行経路を含むプログラムを書くことは困難、または不可能であり得るから、ＩＯＰは計算的な、及び最小意思決定の能力を含んでいない。ＩＯＰプログラムは、計算または意思決定を遂行するためにＭＰＵ  １０８への割込みを使用して、比較的簡単であるように企図されている。
【０２０８】
時間的決定性を実行させるようにするために、ＩＯＰはバスアクセス上で絶対優先権を行使する。バスタイミングは常に決定性でなければならず、ShBoomＣＰＵ １００上では待機状態は使用不能でさえある。時間決定論は、ＩＯＰ実行、及び時間定めされたＩＯＰイベントの間のバスクロックサイクルを計数することによって達成される。ＩＯＰ １１０が遅延を実行していない限りバスアクセスは許可され、それによって指定された時間中にＭＰＵ及びＤＭＡ要求はバスにアクセスすることが可能になる。従って、メモリアクセスが必要な時には、ＩＯＰは精密にプログラムされた瞬間に、単にバスを捕らえて所要動作を遂行するだけである。
【０２０９】
ＭＩＦ  １２０は、ＩＯＰ  １１０がバスを要求した時に、バスが使用可能であることを保証する。ＭＰＵ  １０８及びＤＭＡＣ  １１２はＭＩＦ  １２０からバスを要求し、ＭＴＦ  １２０はこれらの要求を優先順位付けして、ＩＯＰ  １１０が遅延を実行している間にバスを許可する。ＭＩＦ  １２０は、ＩＯＰ  １１０が次にバスを要求する前に、どのようなトランザクションも完了させることを保証する。
【０２１０】
データを転送する時、ＩＯＰ １１０は転送すべきどのデータも変更しない。ＩＯＰ  １１０は、プログラムされた時間にバストランザクションを発生させるだけである。非同期Ｉ／Ｏチャネル転送を優先順位付けして遂行するＤＭＡＣ  １１２とは対比的に、ＩＯＰ  １１０は時間同期Ｉ／Ｏチャネル転送を遂行する。どのようにそれらが開始されるか以外は、２つの型の転送は同一である。
【０２１１】
使用
ＩＯＰプログラムは、拡大的な量の外部論理と、単にシステム設計とを排除するために使用することができる。更に、タイミングに依存するシステム及びアプリケーション動作のためにＩＯＰ  １１０を使用することにより、ＭＰＵプログラムに課せられるタイミング制約を排除または大幅に軽減できることが多い。
【０２１２】
例えば、約 150バイトのＩＯＰプログラムが、ビデオディスプレイのためのデータ転送及びタイミングを供給する。プログラムは垂直及び水平同期を発生し、データをＤＲＡＭからビデオシフトレジスタまたはパレットへ転送する。更に、ＩＯＰは柔軟性を与える。メモリの種々の領域からのビデオデータは、隣接するフレームバッファを作成するためにそれらのデータを移動させる必要なく、表示することができる。新しいデータ領域が指定されると、ＩＯＰ  １１０が次のビデオフレームのために実行するプログラムを変化させるために、ＩＯＰ命令はＭＰＵ  １０８によって書き直される。これが実行されている間も、命令を実行しデータを処理するためにＭＰＵは未だにバスにアクセスしており、ＤＭＡＣ  １１２はデータを転送するために未だにバスにアクセスしている。
【０２１３】
他の多くのアプリケーションが可能である。ＩＯＰ  １１０は、指定された時間に、データを移動させることを要求するアプリケーション、または発生する他のイベントのために最良に使用される。例えば、
＊  ＣＤ品質のステレオサウンドを演奏するために、ディジタル化された 16 ビットのデータ値を１対のＤＡＣへ送る、
＊  後刻ＭＰＵに処理させるために、指定された時間間隔で入力データからのデータをサンプルする、
＊  ＬＣＤディスプレイ上に画像を表示させるために、ディスプレイ及び制御信号を送る、
＊  知的ＳＣＳＩコントローラのために、同期データブロックを転送する、
＊  ウェーブテーブル( wave-table )シンセサイザのために、多数チャネルのデータをＤＡＣへ送る、
＊  直列及びＸウィンドウビデオ端末、またはＰＣビデオアクセラレータのために、ビデオ及びＩ／Ｏを制御する、
＊  プロセス制御環境において時間定めされたイベントを制御する、
＊  自動車エンジンのために、点火及び燃料を制御する、または
＊  ＰＣマルチメディア基板を作成するために、上述した幾つかのアプリケーションを組合せる、
ことが挙げられる。
【０２１４】
ＩＯＰ  １１０は、バスへのアクセス（時間的決定性実行のために）を指図するように、しかしＭＰＵ  １０８のスレーブであるように設計されている。ＩＯＰは状態を
＊  ＩＯＰがアクセスしたデバイス上の状態変化、
＊  ある値をグローバルレジスタへロード、
＊  ビット出力をセット、または
＊  ビット入力を消費、
することによってＭＰＵへ連絡することができる。
【０２１５】
ＭＰＵ  １０８は、
＊  ＩＯＰ命令をメモリ内に再書き込み、
＊  ＩＯＰが使用しているグローバルレジスタを変更、
＊  ビット入力をクリア、または
＊  ＩＯＰをリセット、
することによってＴＯＰ １１０を制御することができる。
【０２１６】
イベントによる制御は、持続的な一定のレートで発生させる必要はない。１０Ｐは、イベントレートを、１回であろうが、多数回であろうが、一貫して制御しなければならないようなアプリケーションに適切である。前者の例として、１０Ｐはオーディオデータをメモリから取出してそれをＤＡＣへ送り、オーディオクリップが持続する間連続的なレートでサウンドを演奏することができる。後者の例として、ＩＯＰ １１０はＭＰＵによって自動車エンジンの回転を同期させることができる。ＩＯＰ １１０が燃料噴射と点火とを時間定めし、ＭＰＵがエンジンの動作を監視して同期を定常的に変化させる（グローバルレジスタを変化させるか、またはＩＯＰプログラムを書き直すことによって）。
【０２１７】
資源
ＩＯＰは、図８に示すように命令デコード及び実行プロセス、及び他のＣＰＵ資源への経路の制御からなる。ＩＯＰ  １１０及び関連レジスタは次のものを含んでいる。
＊  ビット入力レジスタ ioin ：ビット入力は、ＤＭＡまたは割込み要求、または汎用ビット入力として構成されている。図２１を参照されたい。
＊  割込みペンディングレジスタ ioip ：どの割込みが認識されたかを指示するが、優先順位付けされてサービスされるのを待機する。図２２を参照されたい。
＊  ビット出力レジスタ ioout：ＭＰＵまたはＩＯＰの何れかによって最後に書かれたビット。図２４を参照されたい。
＊  ＩＯＰリセットレジスタ iopreset ：何等かの値を書き込むと、ＩＯＰはＩＯＰソフトウェアリセットアドレスにおいて実行を開始する。図４６を参照されたい。
＊  グローバルレジスタｇ1 乃至ｇ7 ：遅延によって使用される値を含む。
＊  グローバルレジスタｇ8 乃至ｇ15：ループカウントまたはＩ／Ｏチャネル転送明細を含む。転送明細は、デバイス及びメモリ転送アドレス、及び制御ビットからなる。図１２を参照されたい。
【０２１８】
レジスタ使用（図９）
ＩＯＰ  １１０はグローバルレジスタｇ1 乃至ｇ15５をＭＰＵ  １０８と共用し、それらをループカウント、遅延初期化カウント、及び情報転送に使用する。ループカウント及び遅延カウントは 32 ビットである。ビット 31 −2 の転送アドレスは、典型的にはセルをアドレスするが、Ｉ／Ｏチャネル構成に依存してバイトもアドレスすることができる。ビット１は、転送がメモリ書き込みであるのか、またはメモリ読み出しであるのかを決定し、ビット０は 1024 バイトメモリページ境界クロッシングへの割込みを可能にする（後述する「割込み」参照）。図１２を参照されたい。
【０２１９】
ＭＰＵは何時でも、ＩＯＰによって使用されるどのレジスタをも読み出し、または書き込むことができる。もしＭＰＵとＩＯＰとの間にレジスタアクセス競争が存在すれば、ＩＰＯアクセスが完了するまでＭＰＵは遠去けられる。
【０２２０】
2006024233.tif 000050
【０２２１】
命令セット
表３８は、ＩＯＰ命令をリストし、表４０及び表４１はニーモニック及び演算コードをリストしている。命令実行の詳細は、後述する「命令参照」において説明する。
【０２２２】
命令フォーマット
全ての命令は、 32 ビット即値データを必要とする ld 、及びページ相対宛て先アドレスを必要とする飛越しを除いて、８ビットからなる。８ビット命令を使用することによって、各命令取出しで４命令（命令グループと呼ぶ）を入手することができ、従って、典型的な 32 ビットプロセッサに比してメモリ帯域幅要求を減少させることができる。この特徴によれば、付加的な命令取出しを行うことなく命令グループ上をループすることができ（マイクロループ）、効率が更に向上する。命令フォーマットを図１０に示す。
【０２２３】
飛越し
命令 jump は可変長である。 jump 演算コードは命令グループ内のどの位置にも発生することができる。演算コード内の４つの最下位ビット及びその演算コードの右の現命令グループ内の全てのビットは、ページ相対宛て先アドレスのために使用される。図１０を参照されたい。これらの宛て先アドレスは、宛て先アドレスビットの範囲、及び宛て先において実行される命令の数を最大にするようにセル整列されている。ページ相対宛て先アドレスは、現命令グループ内の演算コードの位置に依存して４、12、20、または 28 ビット長である。これらのビットは、次のＩＯＰｐｃ内の同一セルアドレスビットを置換するために使用される。次のＩＯＰｐｃは現命令グループに続くセルアドレスであり、現命令グループ内の jump に先行する各 ld 命令毎にインクリメントされている。宛て先アドレスビットは、命令内のビットの数に依存して、現 64 バイトメモリページ内、現４Ｋメモリページ内、現１ＭＢメモリページ、または現 256ＭＢメモリページ内のどの位置にも達することができる。もし宛て先アドレスビットが飛越しして宛て先に到達するのに充分な範囲でなければ、 jump はより多くの宛て先アドレスビットが使用可能な命令グループへ移動しなければならない。
【０２２４】
リテラル
命令 ld は、 40 ビットを必要とする。８ビットが現命令グループ内の演算コードのためのものであり、現命令グループに続く 32 ビットがリテラルデータのためのものである。 ld 演算コードは、命令グループ内のどこにでも発生することができる。命令グループ内の第１の ld のためのデータはメモリ内の命令グループの直後に続き、その後の ld のための各データは連続する位置を占める。演算コード内の４つの最下位ビットは、そのデータの宛て先であるグローバルレジスタの数を含んでいる。グローバルレジスタ０（ｇ0 ）は許容されない。
【０２２５】
その他
他の全ての命令は８ビットを要求する。殆どは、レジスタまたは演算コードの３つまたは４つの最下位ビット内にエンコードされたビット数を有している。「命令参照」を参照されたい。
【０２２６】
実行タイミング
実行クロックサイクルの計数は、ＩＯＰをプログラムするためのキーである。各命令は、「命令参照」に記述してあるように実行時間を必要とする。一般的に言えば命令は、実行するための２×クロックサイクル＋何等かの遅延または明示または暗示バストランザクションのための時間を必要とする。バストランザクション時間は、後述する「プログラマブルメモリインタフェース」、及び後述する「バス動作」に記載されているようにプログラムされる。
【０２２７】
更に、命令グループの実行の間の命令取出しを考慮しなければならない。１０Ｐには命令先取りは存在しないので、タイミング計算は簡易化される。命令グループ内の命令の実行が完了すると、命令取出しが開始される。これには、バス要求のための２×クロックサイクル＋バストランザクション（スロットチェックを含む）のための時間を必要とする。
【０２２８】
時間的決定性実行を保証するために、遅延まはたリフレッシュの実行の後に各メモリグループへ最初のＩＯＰアクセスが行われると、たとえそれを要求していなくてもＲＡＳサイクルになる。ＲＡＳサイクルは、他の理由によっても発生する。表４９を参照されたい。従って、関係する主タイミングは、アクセスされたメモリアドレス（ＲＡＳまたはＣＡＳの何れのサイクルが暗示的に要求されていようと）、及びメモリグループへの最後のアクセス以降遅延またはリフレッシュが実行されているか、否かである。典型的なリフレッシュルーチンのコード例を表３９に示す。
【０２２９】
2006024233.tif 000051
【０２３０】
アドレス空間、メモリおよびデバイスアドレッシング
ＩＯＰ１１０は、ＭＰＵ１０８として同じ３２ビットのアドレス空間を用いるが、それ自身のプログラムカウンター１５４を有し、独立して、同時に実行する。ｘｆｅｒの実行中にアドレスされるＩ／Ｏデバイスは同じアドレス空間内にある。ｘｆｅｒバストランザクションは、それらがどのように初期化されるかに対してを除いてＩ／Ｏチャネルバストランザクションと同じである。以下のダイレクトメモリアクセス制御装置を参照されたい。
【０２３１】
割り込み
ＩＯＰ１１０は、ｉｎｔを実行することによって８つのＭＰＵ割り込みの何れかを要求することができる。このＩＯＰは、ｘｆｅｒの実行中に１０２４バイトのメモリページの最後のロケーションにアクセスすることによってＭＰＵ割り込みを要求することもできる。ｘｆｅｒの転送割り込みとＩ／Ｏチャネルの転送割り込みは同一である。更なる情報のために以下のダイレクトメモリアクセス制御装置を参照されたい。ＭＰＵ１０８は、ＩＯＰ１１０が次に遅れを実行するときに割り込み要求に応答することができる。
【０２３２】
バストランザクション
ＩＯＰ１１０の命令フェッチバストランザクションは、ＭＰＵ１０８のメモリ読み取りバストランザクションと同じである。ｘｆｅｒバストランザクションは、それらが如何に初期化されるかを除いてＤＭＡバストランザクションと同じである。以下のバスオペレーションを参照されたい。
【０２３３】
ビット入力及びビット出力
ｉｏｉｎにおけるバス入力は、ｔｓｋｉｐｚを有するＩＯＰ１１０によってアクセスされる。この命令は、入力ビットをテストし、それを消費し、且つ命令群の残りを連続的にスキップする。これは、ＤＭＡＣ１１２とともに利用可能である簡単な非同期の伝送よりポーリングデバイス転送や複雑なデバイスの転送シーケンスを考慮する。以下のビット入力を参照されたい。ｉｓｋｉｐｚは、条件実行を行うので、もし、確定的実行が期待されるなら、ｉｓｋｉｐｚを含むプログラムコードを指定するときに、注意をしなければならない。
【０２３４】
ｉｏｏｕｔにおけるビット出力は、ｏｕｔｔとｏｕｔｆを伴うＩＯＰ１１０によって個々にセットされるか、或いはクリアされることができる。それらは、外部イベントを作動し、同期パルスを発生する等のために用いることができる。
【０２３５】
ＩＯＰハードウェア及びソフトウェアのリセット
ハードウェハのリセット後、ＩＯＰ１１０は、ＭＰＵ１０８が実行を開始するまえに、アドレスｏｘ８００００００４の実行を始める。その後、ＩＯＰはＤＲＡＭを初期化するために必要とされるＲＡＳサイクルを行い、ＭＰＵがシステムを構成することができるように遅れを実行する前に、ＤＲＡＭのリフレッシュを維持するためにプログラムループを始めることができる。
【０２３６】
一旦ＭＰＵ１０８がシステムを構成すると、ＩＯＰ１１０は、一般的に、そのアプリケーションプログラムコードの実行を開始するように要求される。Ａ３１はセットされ、他のハイアドレスビットがゼロであるので、通常、ＩＯＰのパワーオンリセットアドレスは、ブートメモリデバイスを選択する。Ａ３１をクリアし、従って非ブートメモリにおいて実行を開始するために、ソフトウェアリセットは、ＭＰＵによって発行されなければならない。テーブル３９を参照。ソフトウェアリセットはＡ３１をクリアする唯一の方法である。このソフトウェアリセットは、また他の例に用いられることもでき、ＩＯＰが新しいプログラムの実行を開始するようにする。以下のプロセッサのスタートアップを参照されたい。
【０２３７】
命令リファレンス
以下のテキストは、ＩＯＰ命令の各々の記述を含む。機能的な記述に加えて、実行するのに必要な操作コード(opcode)と２Ｘ−クロックサイクルの数は右のマージンにある。
【０２３８】
ニーモニックコード(mnemonic code)のためのアペンディックスＢを参照されたい。
【０２３９】
2006024233.tif 000052
【０２４０】
2006024233.tif 000053
【０２４１】
ダイレクトメモリアクセス制御装置
ダイレクトメモリアクセス制御装置（ＤＭＡＣ）１１２（図１１）は、Ｉ／Ｏ装置がＭＰＵの介入のないシステムメモリへ、及びメモリからデータを転送するようにする。ＤＭＡＣは、８つの別々のソースから優先化された８つのＩ／Ｏチャネルをサポートする。ダイレクトメモリアクセス（ＤＭＡ）要求は、ｉｏｉｎを介してビット入力から受け取る。ＤＭＡおよびＭＰＵバス要求の優先度は、高い優先要求が低い優先要求を阻止するように固定されるか、あるいは満足されない高い優先要求が低い優先要求を阻止するのを妨げるように働くかの何れかである。
【０２４２】
ＤＭＡは、セル幅およびバイト幅のメモリの両方にあるセル幅およびバイト幅のデバイスのためにサポートされる。各Ｉ／Ｏチャネルはデバイスおよびバスタイミング要件の型式に関してそれぞれ構成されることができる。バイト幅のデバイスは、１バイトのバイト転送或いは４バイトのバイト伝送デバイスの何れかとして構成されることができる。Ｉ／Ｏチャネルバストランザクションのために要求される転送は、フライバイ(flybys)であるか、バッファされる。テーブル５２を参照されたい。ＤＭＡＣおよびＩＯＰｘｆｅｒ転送は、それらが如何に初期化されるかを除いて同じである。ＤＭＡＣ転送は、非同期要求から生じ、一方ｘｆｅｒ転送はそれらのプログラムされた時間に生じる。
【０２４３】
資源
ＤＭＡＣは、幾つかのレジスタと関連する制御ロジックからなる。レジスタのビットゼロに相当するＤＭＡ要求ゼロは、高い優先度を有する。レジスタのビットセブンに相当するＤＭＡ要求セブンは、低い優先度を有する。ＤＭＡＣと関連レジスタは：
・ビット入力レジスタ、ｉｏｉｎ：ＤＭＡとして構成されたビット入力又は割り込み要求、又は一般のビット入力。図２１を参照。
・割り込み可能なレジスタ、ｉｏｉｅ：どのｉｏｉｎビットが割り込み要求として認識されるべきかを示す。図２５を参照。
・ＤＭＡ可能レジスタ、ｉｏｄｍａｅ：どのｉｏｉｎビットがＤＭＡ要求として認識去れるべきかを示す。もし、ＤＭＡがｉｏｉｎビット上でイネーブルされるなら、そのビット上のｉｏｉｎによる割り込み可能は無視される。ズ２６を参照。
・ＤＭＡイネーブル終了レジスタ、ｉｏｄｍａｅｘ：どのｉｏｄｍａｅビットがクリアされるかを示し、１０２４バイトのメモリページがそのチャネル上に生じることを含むＤＭＡ伝送に続く。図４４を参照。
・全体のレジスタｇ８−ｇ１５：Ｉ／Ｏチャネル転送スペシフィケーションを含む。転送スペシフィケーションはデバイスおよびメモリ転送アドレスおよび制御ビットから成る。図１２を参照。
・固定ＤＭＡ優先ビット、ｆｄｍａｐ、レジスタにおけるその他のＢ、ｍｉｓｃｂ：もし、高い優先要求が満たされることができないなら（即ち、利用可能なバストランザクションスロットは小さすぎる）、低い優先バス要求がバスヘアクセスするために競合するのを避けたり、或いはそれを可能にする。図２９参照。
【０２４４】
ＤＭＡ要求
ｉｏｉｎビットは、対応するｉｏｄｍａｅビットがセットされ、対応するｉｏｉｅビットがクリアであるとき（ｉｏｄｍａｅがセットされると、ｉｏｉｅは無視されるけれども）、ＤＭＡ要求資源として構成される。一旦ゼロがｉｏｉｎに達すると、それはＤＭＡＩ／Ｏチャネル転移を要求するために利用可能である。ｉｏｄｍａｅビットをクリアすることによってＩ／Ｏチャネル上のＤＭＡ動作を個々にディスエーブルすることは、ｉｏｉｎにおける対応するゼロビットがＤＭＡ要求として認識されるのを防ぐが、しかしｉｏｉｎにおける対応するビットのゼローパーシステンスに影響をあたえない。
【０２４５】
優先度を与えること
ＤＭＡ要求は他の未決のＤＭＡ要求と共に優先度が与えられ、そして、もし、要求が高い優先度を有しているか、回転する優先シーケンス（以下参照）における次の要求であるなら、その対応するＩ／Ｏチャネルはバスを要求するために次の要求である。ＤＭＡ要求の優先度を与えることは１つの２Ｘ−クロックサイクルを完成するように要求する。Ｉ／Ｏチャネルバス要求が行われると、ＭＩＦ１２０は、現在のバストランザクションまで待つ。それは、利用可能なバススロットが要求されたＩ／Ｏチャネルバストランザクションに対して充分大きいかどうかを決定するために、ｉｏｐｄｅｌａｙをチェックする。もし、バススロットが充分大きいなら、バスはＩ／Ｏチャネルに許可され、バストランザクションが開始する。
【０２４６】
ＩＯＰは、ｉｏｐｄｅｌａｙがゼロに減少すると、バスを常に占有する。そうでなければ、ＤＭＡＩ／Ｏチャネルバス要求とＭＰＵ１０８バス要求は、バスに対して高い優先度を有するＤＭＡＩ／Ｏチャネルバス要求と競合する。
【０２４７】
もし、ｆｄｍａｐがセットされ、バススロットが小さすぎるなら、ＤＭＡＩ／Ｏチャネルはバスを獲得しない。小さくなった利用可能なバススロットに適合する高い優先度のＤＭＡＩ／Ｏチャネル要求はが行われるまで、バストランザクションは、ＩＯＰがバスを占有するまで生じない。ＩＯＰ１１０が次に遅れを実行すると、最も高い優先度ＤＭＡ要求、或いはＤＭＡ要求がないならＭＰＵ１０８がバス要求プロセスを繰り返す。
【０２４８】
もし、ｆｄｍａｐがクリアで、バススロットが小さすぎるなら、ＤＭＡＩ／Ｏチャネルはバスを獲得しない。次の低い優先バス要求は、最も低い優先度の要求としてＭＰＵ１０８と共にバスを要求するようにされる。プロセスは、バスが許可されるか、ＩＯＰ１１０がバスを占有するまで、繰り返す。ＩＯＰ１１０は次に遅れを実行するとき、最も高い優先度のＤＭＡ要求、或いはもしＤＭＡ要求がなければＭＰＵ１０８がバス要求プロセスを繰り返す。
【０２４９】
メモリ及びデバイスアドレッシング
Ｉ／Ｏチャネル伝送のために用いられたアドレスは、Ｔ／Ｏデバイスアドレスおよびメモリアドレスの両方を含む。規約によって、最上位のアドレスビット（Ａ３１がセットされたとき）は、Ｉ／Ｏデバイスアドレスを選択し、一方最下位のアドレスビットは伝送のためのメモリソース／行き先を選択する。マルチサイクル転送動作（例えば、バイトデバイスとセルメモリ間を転送すること）は、Ａ３１がＩ／Ｏデバイスのアドレスデコードの一部であると仮定し、バストランザクション中に必要とされるＩ／Ｏデバイスを選択したり、選択しなかったりするために、Ａ３１をパス／クリアする。以下のＩ／Ｏアドレッシング及びＩ／Ｏチャネル転送を参照されたい。
【０２５０】
１０２４バイトメモリページの境界は、Ｉ／Ｏチャネル転送に対して特別な意味を有している。各Ｉ／Ｏチャネルバストランザクションが完了すると、全体のレジスタにおけるメモリアドレスのビット１５−２が増加される。新しいアドレスは、１０２４バイトメモリページの最後のロケーションが転送された（ビット９−２がいまゼロであることを検出することによって）か否かを決定するために評価される。１０２４バイトメモリページの最後のロケーションが丁度転送されたとき、ＭＰＵ割り込みは要求され得るか、ＤＭＡはディスエーブルされることができる。以下の割り込みおよびＤＭＡＩ／Ｏチャネル転送の終了を参照されたい。
【０２５１】
割り込み
Ｉ／Ｏチャネル転送が１０２４バイトメモリページの最後のロケーションをアクセスした後、ＭＰＵ１０８は、要求されることができる。要求された割り込みは、Ｉ／Ｏチャネル数と同じであり、そしてもし、割り込みがそのチャネル上でイネーブルされるなら、生じる。（即ちもし、対応する全体のレジスタのビットゼロがセットされるなら）。以下の図１２および割り込みコントローラーを参照されたい。これによって、例えば、ＭＰＵは、転送が完了したこを知らされる（転送メモリ領域の最後を１０２４バイトのメモリページに関連することによって）か、あるいは長い転送中にＭＰＵに進行を知らせる。
【０２５２】
サービスされるべき割り込みに対して、ＭＰＵ１０８は、ＩＳＲを実行するために充分な時間バスを得なければならない。もし、ＩＯＰ１１０はディレイを実行しないか、連続的なＤＭＡ転送が生じるなら、ＭＰＵはバスを得ることができない。
【０２５３】
バストランザクション型
Ｉ／Ｏデバイスで実行されるバストランザクションの型は、含まれるメモリグループがセル幅かバイト幅であるかに依存し、またデバイスが１バイトのバイト転送、４バイトのバイト転送或いは１セルのセル転送デバイスであるかに依存する。以下のＩ／Ｏチャネル転送を参照されたい。
【０２５４】
デバイスアクセスタイミング
Ｉ／Ｏチャネル転送中にアクセルされたＩ／Ｏデバイスは、プログラムされたバスサイクルの終わりによって転送を完了しなければならない。待ち状態は利用できない。Ｉ／Ｏデバイスは、一般にメモリより長いアクセス時間を有しているので、Ｉ／Ｏチャネルバスサイクル中にアクセルされたメモリグループに対してプログラムされたバスタイミングはｍｇＸｅｂｔにおける対応する値に対してｉｏＸｅｂｔを置き換えることによって変更される。ｉｏＸｅｂｔは、Ｉ／Ｏデバイスに対して、および転送に含まれるあらゆるメモリグループに対して適切でなければならない。以下のプログラム可能なメモリインターフェースを参照されたい。
【０２５５】
最大のバンド幅の転送
ｉｏｉｎに対する外部の入力ソースがＩＮバー〔７：０〕であるとき、最大のバンド幅，バックツーバックＤＭＡ転送が可能である。これを達成するために、ＤＭＡバストランザクションの終わりに、内部回路は、ＩＮバー〔７：０〕上で直接ＤＭＡ要求ビットをチェックするあめに、入力サンプリング回路をバイパスする；もし、信号がローで、高い優先度の要求が未解決であれば、他のＤＭＡバス要求は、通常のサンプリングと優先度を与えるディレイなく直ちに生じる。これは、外部のＤＭＡハードウェアが、ビットがこの時に有効であることを保証する。図７６，７８、ページ１９２を参照されたい。もし、残りのバススロットが充分大きいならば、ＤＭＡバス要求は許可され、転送は直ちに開始する。バックツーバックＤＭＡバストランザクションを終了するために、ＤＭＡ要求入力は、現在のバストランザクションの終わり前にハイにならなければならないか、対応するＤＭＡイネーブルビットはクリアされなければならない。以下、終了するＤＭＡＩ／Ｏチャネル転送を参照されたい。最大の可能な転送速度は２つの２Ｘ−クロックサイクル毎に４バイトである。例えば、５０−ＭＨｚ  １Ｘクロックで、最大の転送速度は２００ＭＢ／秒である。
【０２５６】
終了ＤＭＡＩ／Ｏチャネル転送
ＤＭＡＩ／ＯチャネルバストランザクションはＩ／Ｏチャネル上に生じ、一方ＤＭＡはイネーブルされたままであり、ＤＭＡ要求が受信される。特定された数のトランザクションにＤＭＡ転送を制限するために；
・必要とされる最後のデータ転送が１０２４バイトメモリページにおける最後の位置を用いて生じるように、ＤＭＡ転送アドレスをプログラムする、及び
・対応するｉｏｄｍａｅｘビットをセットする。
上記のトランザクションが完了すると、ｉｏｄｍａｅにおけるＤＭＡイネーブルビットはクリアされる。もし、転送割り込みが対応するＩ／Ｏチャネルのための全体のレジスタにおいてイネーブルされるなら、対応するＭＰＵ割り込みも要求されるであろう。
【０２５７】
もし、１０２４バイトより多くが転送されるべきであるなら、対応する全体のレジスタにおけるＩ／Ｏチャネルに対して転送割り込みを可能にする。次から最後までの１０２４バイトページのための全体のレジスタをチェックするために、割り込みサービスルーチンをプログラムし、またその時、対応するｉｏｄｍａｅｘビットをセットする。クリアされた最後の位置が転送されると、ｉｏｄｍａｅにおける対応するビットは、そのチャネル上のＤＭＡをディスエーブルして、クリアされる。これは、バスがＤＭＡ転送中にＩＳＲを実行するために、ＭＰＵに利用可能であることを留意されたい。
【０２５８】
他の能力
ＤＭＡ１１２はイベントをカウントするために、また与えられた数に達したときにＭＰＵ１０８を中断するために用いられることもできる。これを行うために、イベントは通常のＤＭＡメモリ読み取り要求を生成するように設計され、生じた転送サイクルは対応する全体のレジスタにおいて“アドレス”を増加する。この“アドレス”はイベントカウンターになる。ＭＰＵは、如何に多くのイベントが生じたかを決めるために何時でもレジスタを試験することもできる。与えられた数の後、ＭＰＵを中断するために、ビット９−２内の負のカウント値に対して全体のレジスタをプログラムし、ページ境界の割り込みを可能にする。ＭＰＵ１０８は、カウンターがゼロに達すると、中断される。
【０２５９】
割り込み制御装置（ＩＮＴＣ）１１４（図１３）は、多重の外部或いは内部の要求が整理された、優先化された方法で、ＭＰＵのアテンションを得るようにすることができる。ＩＮＴＣは２４のソースから８つの優先化された割り込み要求まで支持する。割り込みは、ｉｏｉｎを介したビット入力から、Ｉ／Ｏチャネル転送から、或いはＩＯＰ割り込み命令ｉｎｔから受信される。
【０２６０】
資源
ＩＮＴＣ１１４は幾つかのレジスタと関連する制御ロジックからなる。レジスタのビットゼロに対応する割り込みゼロは最も高い優先度を有し；レジスタのビットセブンに対応する割り込みセブンは最も低い優先度を有している。ＩＮＴＣ１１４および関連レジスタは：
・ビット入力レジスタ１１６，ｉｏｉｎ：ＤＭＡまたは割り込み要求、あるいは一般のビット入力として構成されるビット入力。図２１参照。
・割り込み可能レジスタ１５８，ｉｏｉｅ：どのｉｏｉｎビットが割り込み要求として認識されるかを示す。図２５参照。
・割り込み未決レジスタ，ｉｏｉｐ：どの割り込みが認識されたか、しかし優先化され、サービスされるために待機しているかを示す。図２２参照。
・サービスレジスタの下での割り込み，ｉｏｉｕｓ：どの割り込みが現在サービスされているかを示す。図２３参照。
・全体のレジスタｇ８−ｇ１５：Ｉ／Ｏチャネル転送スペシフィケーションを含む。転送スペシフィケーションは、デバイスおよびメモリ転送アドレスおよび制御ビットからなる。ビットゼロは対応するチャネル上のＩ／Ｏチャネル転送中に割り込みを可能にする。図１２参照。
・ＤＭＡイネーブルレジスタ，ｉｏｄｍａｅ：どのｉｏｉｎビットがＤＭＡ要求として認識されるべきかを示す。もし、ＤＭＡがｉｏｉｎビット上でイネーブルされるなら、そのビット上のｉｏｉｅによって割り込み可能は無視される。図２６参照。
【０２６１】
2006024233.tif 000054
【０２６２】
動作
各割り込み要求は３つのソースによって共有される。要求は、ｉｏｉｎにおけるゼロビットから（一般には外部の入力ローから）、Ｉ／Ｏチャネル転送割り込みから、あるいはＩＯＰ命令ｉｎｔから来ることができる。割り込み要求ゼロはｉｏｉｎビットゼロ、Ｉ／Ｏチャネルゼロ（ｇ８を用いて）、或いはｉｎｔ０から来る；割り込み要求１はｉｏｉｎビット１、Ｉ／Ｏチャネル１（ｇ９を用いて）、或いはｉｎｔ１から来る；他の割り込み要求は同様に割り当てられる。テーブル４２を参照。アプリケーションの用法は一般に割り込み要求に対して１つのソースのみを指定するが、これは必要ではない。
【０２６３】
外部メモリに位置されている割り込みサービスルーチン（ＩＳＲ）の実行可能コードベクトルは８つの割り込み要求の各々と関連する。図４参照。与えられた割り込み要求に対する単一のＩＳＲ実行可能なコードベクトルはその割り込みに関する全ての要求に対して用いられる。それは、実行可能なコード、代表的にはＩＳＲへの分岐を含むようにプログラムされる。１つより多いソースが可能のとき、現在のソースは、ｉｏｉｎ、ｉｏｉｅ、ｉｏｄｍａｅおよび全体のレジスタにおける関連ビットを調べることによって決定されてもよい。
【０２６４】
割り込み要求サービス
何れかのソースから割り込み要求が起きると、ｉｏｉｐにおける対応ビットがセットされ、割り込み要求は未決割り込みとなる。未決割り込みは、各２Ｘ−Ｋクロックサイクルに優先順位が与えられる。モードにおける割り込み ｅｎビットは現在の全体の割り込み可能状態を保つ。それはＭＰＵイネーブル割り込み命令でセットされ，ｅｉ；ディスエーブルの割り込み命令でクリアされ、ｄｉ；或いはモードを変更することによって変えられる。全体的にディエーブルしている割り込みによって、全ての割り込み要求はｉｏｉｐに達するようにするが、ｉｏｉｐにおける未決割り込みがサービスされるのを防止する。
【０２６５】
割り込みが可能にされると、割り込みはグループにおける最初の命令の実行直前に、命令グループ間でＭＰＵによって認識される。これによって、短い、アトミックの、割り込むことができない命令シーケンスが割り込み状態をセーブし、リストアし、且つマニュピレートしなければないことなく容易に書き込まれることを可能にする。スタックアーキテクチャは、割り込みサービスルーチンが明白にセーブされるようにレジスタを必要とすることなく実行されるようにし、スタックキャッシュは、追加のレジスタ資源を利用できるようにするとき、必要とされるメモリアクセスを最小にする。
【０２６６】
もし、割り込みが全体にイネーブルされ、最も高い優先度のｉｏｉｐビットが最も高い優先度のｉｏｉｕｓビットより高い優先度を有しているなら、最も高い優先度のｉｏｉｐビットはクリアされ、対応するｉｏｉｕｓビットはセットされ、そしてＭＰＵは命令グループにおける最初の命令の次の実行直前に割り込まれる。これは、割り込みサービスをネストし、未決の割り込みはサービスの下で現在の割り込みとなる。ｉｏｉｐビットは割り込みサービスのために考慮さず、一方、割り込みは全体的にデスエーブルされるか、或いはどのｉｏｉｐビットも最も高い優先度のｉｏｉｕｓビットより高い優先度を有しない。
【０２６７】
ソフトウェアがｉｏｉｕｓを変更しないなら、サービスの下で現在の割り込みは、現在セットされている最も高い優先度のｉｏｉｕｓビットによって表現される。ｒｅｔｉはＩＳＲの最後に用いられて、セットされている最も高い優先度のｉｏｉｕｓビットをクリアし、割り込まれたプログラムに戻す。もし、割り込まれたプログラムが低い優先度の割り込みサービスルーチンであったらな、これは割り込みサービスを効率的にネストしない。
【０２６８】
外部割り込み
ｉｏｉｎビットは、もし、対応するｉｏｉｅビットがセットされ、対応するｉｏｄｍａｅビットがクリアされているなら、割り込み要求ソースとして構成される。一旦ゼロがｉｏｉｎに達すると、割り込みを要求するように利用可能である。割り込み要求は、対応するｉｏｉｎビットをチェックすることによって、あるいは対応するｉｏｉｐビットをセットすることによって、ソフトウェアで強制される。そのｉｏｉｅビットをクリアすることによって割り込み要求を個々にディスエーブルすることは、ｉｏｉｎにおける対応するゼロビットが割り込み要求として認識されるのを防止するが、他のソースからの対応する割り込み要求に影響しない。
【０２６９】
割り込み要求が処理される間、そのＩＳＲはｒｅｔｉを実行することによって終了するまで、対応するｉｏｉｎビットはゼロを持続せず、外部入力ｐｉｎのサンプルレベルに従う。特に、与えられた割り込み要求に対して、そのｉｏｉｎビットがゼロを持続しない。この効果は、非割り込みビット上でゼロを持続しない挙動をディスエーブルするために用いられることができる。
【０２７０】
波形に対して、図７５と図７６を参照されたい。
【０２７１】
Ｉ／Ｏチャネル転送割り込み
もし、ｉｏｉｎビットがＤＭＡ要求として構成されるか、あるいはそのＩ／Ｏチャネルがｘｆｅｒによって使用されるなら、対応する全体のレジスタにビットゼロを備えた、１０２４バイトメモリページにおいて最後の位置を含くむ伝送がセット（即ち、転送割り込みが可能にされる）された後に、割り込み要求が生じる。その要求は、セットされている対応するｉｏｉｐビットによって生じ、対応するｉｏｉｅビットをクリアすることによってディスエーブルされない。
【０２７２】
上記のダイレクトメモリアクセス制御装置、および入力−出力プロセッサを参照されたい。
【０２７３】
ＩＯＰｉｎｔ割り込み
ＩＯＰはｉｎｔを実行することによって８つの利用できる割り込みのいずれかを直接要求することもできる。その要求は、セットされている対応するｉｏｉｐビットによって生じ、対応するｉｏｉｅビットをクリアすることによってディスエーブルされない。ＭＰＵは、ＩＯＰが次にｄｅｌａｙを実行するとき、割り込み要求に応答することができるであろう。
【０２７４】
ＩＳＲ処理
割り込み要求がＭＰＵによって認識されると、対応するＩＳＲの実行可能なコードベクトルへの呼出しが行われ、割り込みは、命令グループのバイト１において開始する命令が実行されるまで、阻止される。高い優先度の割り込みによって割り込まれることなく割り込みサービスをするために：
・ＩＳＲ実行可能なコードベクトルは４バイトの分岐を一般的に含み、且つ
・割り込みサービスルーチンの第１の命令グループは割り込みを全体的にディスエーブルする。テーブル４３におけるコード例を参照されたい。
【０２７５】
もし、割り込みがＩＳＲの処理中に全体的にイネーブルされたままにされるなら、高い優先度の割り込みが現在のＩＳＲの処理中にＭＰＵに割り込むことができる。
【０２７６】
これにより、より速いサービス要件を有するデバイスが、多くの優先レベルにあるしばしば起きる割り込みが生じているときでも、迅速にサービスされることができる。ｅｉ，ｄｉ，或いはｐｏｐモードの実行と効果を生じる全体の割り込み可能状態にある変更間に１つの２Ｘクロックサイクルの遅れがあることに留意されたい。次の命令グループのバイトゼロの前に、全体の割り込み可能状態の変更が効果を生じることを保証するために、状態変更命令は、現在の命令グループにおける最後の命令であってはならない。
【０２７７】
もし、全体の割り込み状態はＩＳＲによって変更されるべきであるなら、前の全体の割り込み可能状態は、プッシュモード(push mode)でセーブされ、ＩＳＲ内のポップモード(pop mode)で再蓄積されるべきである。通常、ポップモード、ｒｅｔｉシーケンスはＩＳＲの終わりにある同じ命令グループに置かれ、ｒｅｔｉが実行され、局部のレジスタスタックは、他の割り込みがサービスされる前にネストしないことを保証する。ＩＳＲからのリターンアドレスは、常に命令グループのバイトゼロである（この方法のために、割り込みは認識される）ので、他の割り込みは、ｒｅｔｉの実行後に直ちにサービスされることができる。テーブル４３のコード例を参照されたい。
【０２７８】
2006024233.tif 000055
【０２７９】
上述のように、ＩＳＲ実行可能ベクトルを処理するために、インタラプトリクエストが、同様に、全トラップの実行中にブロックされる。これによって、ソフトウエアは、例えば、ローカル・レジスタ・スタックオーバフロー例外のサービスの間のインタラプトによってローカル・レジスタ・スタック上に更にデータがプッシュされるのを阻止する。並行トラップ及びインタラプトリクエストを分解するとき、インタラプトは最低位のプライオリティを有する。
【０２８０】
ビット入力
８個の外部ビット入力が、ビット入力レジスタ１１６ioin（図１４）において使用可能になっている。それらは、インタラプトリクエストとして、ＤＭＡリクエストとして、ＩＯＰインストラクションtskipzとして、及び、ＭＰＵによる一般使用のビット入力として使用できるように共有される。それらは、pkgio の状態によって定められる２つのソースの１つから外部的にサンプリングされる。
【０２８１】
リソース
ビット入力は幾つかのレジスタと、パッケージピンと、関連の入力サンプリング回路とから成る。これらのリソースは、以下のものを含んでいる。
・  ビット入力レジスタ１１６，ioin：ＤＭＡ又はインタラプトリクエストとして構成されたビット入力、又は汎用のビット入力。図２１参照。
・  インタラプトイネーブルレジスタ，ioie：ioinビットがインタラプトリクエストとして認識されるべきものであることを示す。図２５参照。
・  インタラプトペンディングレジスタ，ioip：インタラプトが、認識され終えたが、プライオリティ付けされるべきものとして、又はサービスされるべきものとして待機中にあることを示す。図２２参照。
・  インタラプトアンダーサービスレジスタ，ioius ：インタラプトが現在サービス中であることを示す。図２３参照。
・  ＤＭＡイネーブルレジスタ，iodmae：ioinビットが、対応するＩ／ＯチャンネルのためのＤＭＡリクエストとして認識されるべきものであることを示す。ＤＭＡがioinビット上でイネーブルであると、そのビット上のioieによるインタラプトイネーブルが無視される。図２６参照。
・  パッケージＩ／Ｏピンビット，pkgio ：レジスタミスレーニアス（種々のレジスタ）Ｂ，miscb ：ビット入力が、専用の入力ＩＮ〔７：０〕からサンプリングされるか、又は、ＡＤ〔７：０〕からマルチプレクスされるかを選択する。図２９参照。
【０２８２】
入力ソース及びサンプリング
pkgio がクリアされると、ビット入力は、ＲＡＳバーがローでＣＡＳバーがハイである間に、ＡＤ〔７：０〕からサンプリングされる。外部ハードウエアは、ＡＤ〔７：０〕にそのビット入力を置いて、適当な時にそれらを除去する。ビット入力のためのＡＤ〔７：０〕の使用は、ＩＮバー〔７：０〕の使用に比較すると、ＰＷＢエリア及びコストを減少することができる。ＡＤ〔７：０〕は、以下のときの入力についてサンプリングされる。
・  ＣＡＳバーがハイである間であって、ＲＡＳバーがローに遷移した後の４個の２Ｘ−クロックサイクルのとき、
・  ＣＡＳバーがハイのままになっているときであって、４個の２Ｘ−クロックサイクル毎に、
・  最後のサンプリングから少なくとも４個の２Ｘ−クロックサイクルが経過した場合のＣＡＳバーがローに遷移した直後、及び
・  ＣＡＳバーがまだハイにある場合の、ＣＡＳバーがハイに遷移した後の４個の２Ｘ−クロックサイクルのとき、である。
【０２８３】
これは、以下のことを確保する。
・  サンプリング前にバス上にデータを置くための外部ハードウエアの時間、
・  ＣＡＳバーがハイである間に連続サンプリング、及び
・  最後のサンプリングから４個の２Ｘ−クロックサイクルが経過した場合の各ＣＡＳバーバスサイクル毎に、少なくとも１つのサンプリングを行うこと。
【０２８４】
所与の状態におけるサンプリングを確保するために、入力ビットは、指定のサンプリング時間において有効でなければならず、最悪の場合のサンプリングインターンバル（上述したように、プログラムしたバスのタイミングと活動に依存する）の間ローのままに維持されねばならない。波形については、図７９、８１及び原文１９６ページを参照されたい。
【０２８５】
pkgio がセットされると、ビット入力は、４個の２Ｘ−クロックサイクル毎にＩＮバー〔７：０〕からサンプリングされる。所与の状態におけるサンプリングを確保するために、入力ビットは、４個の２Ｘ−クロックサイクルを少し越える間、有効でなければならない。波形については図７８、８０及び原文１９４ページを参照されたい。
【０２８６】
全ての非同期的にサンプリングされた信号は、準安定状態に影響を受け易い。ビット入力のサンプリングによる準安定状態の可能性を減少させるため、サンプリングされた信号は４個の２Ｘ−クロックサイクルの間保持されて、有効な論理レベルに、それがioinに有用になりＣＰＵ内での使用が可能になる前に、分解する。ioinに達するようにＡＤ〔７：０〕から取られたビット入力についての最悪の場合のサンプリングの遅延は、バスサイクル時間に依存する。そのioinに達するようにＩＮバー〔７：０〕からのビット入力についての最悪の場合のサンプリングの遅延は、８個の２Ｘ−クロックサイクルである。そのサンプリングの遅延によって、ビット入力コンシューマは、特定の期間についての外部信号変化を検出しない。
【０２８７】
ioinに達するビット入力は、通常、ゼロ持続性がある。すなわち、ioinビットがゼロになると、それは、ビットが“消費”及び解法されあるいはＭＰＵによって１が書き込まれるまで、後続のサンプリングのときのビットの状態にかかわらず、ゼロのままに維持される。ゼロ持続性ビットは、エッジ感知性及びレベル感知性入力の両方の利点を有し、エッジ感知性入力のノイズ感受性及び非共有性を無くする。ＤＭＡリクエストがサービスされておりioinインタラプトがサービスされている間の一定の状態の下では、ioinビットはゼロ持続性がない。後述のＤＭＡ使用法及びインタラプト使用法の各項を参照されたい。ＩＮＴＣの効果は、ビット上のゼロ持続性をディスエーブルするのに使用できる。後述の汎用ビットの項を参照されたい。
【０２８８】
ＤＭＡの使用法
ioinビットは、その対応のiodmaeビットがセットされるとき、ＤＭＡリクエストソースとして構成される。ＤＭＡバスの遷移が開始した後、ioinビットは消費される。
【０２８９】
ioinの外部入力ソースがＩＮバー〔７：０〕であるとき、最大バンド幅のバックツーバックＤＭＡ転送が可能になる。これを達成するために、内部回路が、サンプリング及びゼロ持続回路をバイパスして、通常のサンプリング及びプライオリティ付けの遅延を伴うことなく、ＩＮバー〔７：０〕のＤＭＡリクエストビットをＤＭＡバストランザクションの終わりでチェックする。上述の最大バンド幅転送の項を参照されたい。
【０２９０】
インタラプトの使用法
ioinビットは、対応のioieビットがセットされ且つ対応のiodmaeビットがクリアされているとき、インタラプトリクエストソースとして構成される。インタラプトリクエストが処理されている間において、そのＩＳＲがretiを実行することによって終了するまで、対応のioinビットは、ゼロ持続性でなくなり、外部入力のサンプリングされたレベルに従う。特に、所与のインタラプトリクエストについて、そのioieビットがセットれてそのioipビット又はioius ビットがセットされている間、そのioinビットはゼロ持続性はない。この効果は、非インタラプトビット（後述）上のゼロ持続特性をディスエーブルするのに使用され得る。
【０２９１】
2006024233.tif 000056
【０２９２】
汎用ビット
ioinビットが、インタラプトリクエストのために構成されているのでもなく、ＤＭＡリクエストのために構成されているのでもない場合、それはゼロ持続性の汎用のioinビットである。それとは別に、ＩＮＴＣの効果を使用することによって、汎用ioinビットは、ゼロ持続性を持つように構成され得る。このように構成された任意のビットは、下位側のプライオリティのインタラプトをブロックしないように、最低位のプライオリティのioinビットとなるべきである。それらは、それらのioie及びioius ビットをセットすることによて構成される。ioius ビットは、ioinビットがゼロを持続するのを阻止し、プライオリティ付けされるのを阻止し、インタラプトリクエストを生じるのを阻止する。表４４のコードの例を参照されたい。
【０２９３】
ＩＯＰ使用法
ioinビットは、tskipzへの入力として使用され得る。このインストラクションは、そのビットを、読み出し、テストし、消費する。このioinビットは、ＩＯＰ１１０によって書き込むことはできない。汎用ioinビットは、代表的には、tskipzのために使用されるが、使用法においてハードウエア上の制限はない。
【０２９４】
ＭＰＵ使用法
ioin内のビットは、ＭＰＵ１０８によって、ldo[ioin]及びsto[ioin]を用いてグループとして読み出されたり書き込まれたりし、あるいは、Ido.i[ioXin-i]及びsto.i[ioXin-i]を用いて、個々に読み出されたり書き込まれたりする。ioinへゼロビットを書き込むことは、サンプリングの遅延がないことを除いて、あたかも外部ビット入力が１サンプリングサイクルの間にローに遷移したのと同じ効果を有する。これによって、ソフトウエアは、外部入力又はＤＭＡリクエストのようなイベントをシミュレートすることができる。ioinへ１のビットを書き込むことは、ビットがゼロ持続性であるときの外部入力からのデータと違って、ゼロの持続を解除して、現在のサンプルを受入れる。書き込まれたデータは、書き込みの完了の直後から使用可能となる。ＭＰＵは、ioinの指示とは無関係に且つビットの状態の影響もなく、いつでもioinを読み出すことができる。ＭＰＵは、読み出しの間、ioinビットの状態を消費しない。表４５のコードの例を参照されたい。
【０２９５】
2006024233.tif 000057
【０２９６】
ゼロ持続性ビット上の“リアルタイム”外部ビット入力読み出しを行うため、複数の１のビットが、ioinの読み出しの前にioin内の関係するビットへ書き込まれねばならない。これによって、どんな持続性のゼロも解除され、最も最近に分解したサンプルがラッチされ、その値が読み出される。ゼロ持続性として構成されないビットは、上記の書き込みを必要とはしない。任意の値の読み出しは、２つの最悪の場合のサンプリングの遅延と同じくらいに古いことを注意されたい。外部入力上での現在の値を読み出すことは、ioinに達するための値のための２つの最悪の場合のサンプリング遅延を待つことを必要とする。表４６のコードの例を参照されたい。
【０２９７】
ビット出力
８個の汎用ビット出力は、ＭＰＵ又はＩＯＰのいずれかによって、ハイ又はローにセットされ得る。これらのビットは、ビット出力レジスタ１１８（図１５参照）において使用可能である。
【０２９８】
リソース
ビット出力は、レジスタと、パッケージピンと、関連の回路とから成る。これらのリソースは以下のものを含んでいる。
・  ビット出力レジスタ，ioout ：ＭＰＵ又はＩＯＰのいずれかによって最後に書き込まれたビットである。図２４参照。
・  出力，ＯＵＴ〔７：０〕：専用の出力ピン。
・  アドレスデータバス，ＡＤ〔７：０〕：ＲＡＳバーがハイのときこれらのピン上のマルチプレクスされたビット出力。
・  出力ピンドライバカレントビット，outdrv，ドライバカレントレジスタ中，ドライバ：ＯＵＴ〔７：０〕のドライブ能力をセットする。図４５参照。
【０２９９】
使用法
それらのビットは、ＭＰＵによって、ldo[ioout]及びsto[ioout]を用いてグループとして読み出されたり書き込まれたりし、あるいは、ldo.i[ioxout-i]及びsto.i[ioXout-i]を用いて、個々に読み出されたり書き込まれたりする。
【０３００】
そのビット出力は、ＩＯＰによって、outt及びoutfを用いて個々に書き込まれる。ビット出力はＩＯＰによって読み出されることはできない。
【０３０１】
書き込まれるとき、新しい値は、書き込みの完了の直後から使用可能となる。ＭＰＵとＩＯＰの両方が同じ２Ｘ−クロックサイクルの間に同じビットを書き込む場合、書き込まれた任意の１ビットが優勢となることに注意されたい。
【０３０２】
ビットは、ＯＵＴ〔７：０〕では常に使用可能であり、ＲＡＳバーがハイのときにはＡＤ〔７：０〕上で使用可能になる。ＡＤ〔７：０〕からサンプリングされると、外部ハードウエアはＲＡＳがローに下がるとビットをラッチするように要求される。これらのビットは、（定義によって）ＲＡＳバーサイクルが生じるときアップデートされるだけであることに注意されたい。出力cna のためにＡＤ〔７：０〕を使用することは、ＯＵＴ〔７：０〕を使用することに比較して、ＰＷＡエリア及びコストを減少する。波形について図７４を参照されたい。
【０３０３】
ＯＵＴ〔７：０〕のドライブ能力はドライバにおけるプログラムされ得る。
【０３０４】
プログラマブルメモリインタフェース
プログラマブルメモリインタフェース（ＭＩＦ）１２０によって、ＣＰＵバスインタフェースのタイミングと振る舞いが、最少の外部ロジックによって周辺デバイスのニーズに適するようにされ、従って、性能を維持しながらシステムコストを減少させる。いろいろなメモリデバイスが、ＥＰＲＯＭ、ＳＲＡＭ、ＤＲＡＭ、ＶＲＡＭ、及びいろいろなＩ／Ｏデバイスを含めて、支持される。バス上の全てのオペレーションはＭＩＦ１２０によって指示される。バスインタフェースの殆どの特徴は、アドレスセットアップ及びホールドタイムと、データセットアップ及びホールドタイムと、出力バッファイネーブル及びディスエーブルタイムと、書き込みイネーブル活性タイムと、メモリサイクルタイムと、ＤＲＡＭタイプデバイスアドレスマルチプレクス動作と、及び、ＤＲＡＭタイプＲＡＳサイクルが生じたときを含めて、プログラム可能である。追加の仕様が、データセットアップ及びホールタイムと、出力バッファイネーブル及びディスエーブルタイムと、デバイスの転送タイプ（１バイト、４バイト、又は１セル）とを含めて、Ｉ／Ｏデバイスにとって使用可能である。
【０３０５】
リソース
ＭＩＦは、幾つかのレジスタとパッケージピンと関連の制御ロジックとから成る。これらのリソースには、以下のものが含まれる。
・  ＶＲＡＭコントロールビットレジスタ，vram：特別なオペレーションを開始するために、ＯＥバー、ＬＷＥバー、ＣＡＳes、ＲＡＳes、及びＤＳＦを制御する。図２７参照。
・  ミスレーニアス（種々のレジスタ）Ａレジスタ，misca ：リフレッシュ及びＲＡＳサイクルの生成を制御すること。図２８参照。
・  ミスレーニアス（種々のレジスタ）Ｂレジスタ，miscb ：各メモリグループのデータ幅（セル幅又はバイト幅）を選択すること、及び、メモリバンク選択アーキテクチャ。図２９参照。
・  メモリシステムグループ選択マスクレジスタ，msgsm ：アドレスビットがデコードされてメモリデバイスのグループを選択することを示す。図３２参照。
・  メモリグループデバイスサイズレジスタ，mgds：各メモリグループのためのメモリデバイスのサイズと構成を示す。図３３参照。
・  ミスレーニアスＣレジスタ，miscc ：ＲＡＳサイクルの生成とＳＲＡＭメモリグループのためのバンク選択アドレスビットの位置とを制御。図３４参照。
・  メモリグループＸ拡張バスタイミングレジスタ，mgＸebt ：対応するメモリグループのメモリデバイスのために、より長いデータセットアップ及びホールドタイムと出力バッファイネーブル及びディスエーブルタイムとを生成する、メモリサイクル拡張又は伸長値を示す。図３５参照。
・  メモリグループＸＣＡＳバスタイミングレジスタ，mgXcasbt：１バスサイクルのＣＡＳ部分について、非拡張及び非伸長アドレス及びデータストローブ活性タイムを示す。図３６参照。
・  メモリグループＸＲＡＳバスタイミングレジスタ，mgXrasbt：ＲＡＳサイクルを生成するように、１バスサイクルのＣＡＳ部分にプリペンドされる、ＲＡＳプリチャージ及びアドレスホールドタイムを示す。図３７参照。
・  Ｉ／Ｏチャンネル伸長バスタイミンクルジスタ，ioXebt：対応するＩ／Ｏチャンネル上のＩ／Ｏデバイスのために、より長いデータセットアップ及びホールドタイムと出力バッファイネーブル及びディスエーブルタイムとを生成する、メモリサイクル拡張又は伸長値を示す。図３８参照。
・  メモリシステムリフレッシュアドレス，mrsa：次のＤＲＡＭリフレッシュサイクルの間に使用されるべき行アドレスを示す。図３９参照。
・  Ｉ／Ｏデバイス転送タイプＡレジスタ，iodtta：Ｉ／Ｏチャンネル０，１，２，３の各々の転送のタイプを示す。図４１参照。
・  Ｉ／Ｏデバイス転送タイプＢレジスタ，iodttb：Ｉ／Ｏチャンネル４，５，６，７の各々の転送のタイプを示す。図４２参照。
・  ドライバカレントレジスタ，driver：種々の出力ドライバの相対的なドライブカレントを示す。図４５参照。
【０３０６】
メモリシステムアーキテクチャ
ＭＴＦ１２０は、種々のメモリと周辺デバイスへの直接接続を支持している。主要な要件は、デバイスのアクセスタイムは決定論的であることであり、待機状態は、ＩＯＰ１１０のために非決定論的なタイミングを生成するので、使用可能でないことである。ＭＩＦ１２０は、マルチプレクス化されたアドレスデバイス（ＤＲＡＭ、ＶＲＡＭ等）について１２８ＭＢまでのサイズ、及び、デマルチプレクスされたアドレスデバイス（ＳＲＡＭ、ＥＰＲＯＭ等）について１ＭＢまでのサイズのワイドなレンジを支持する。ＤＲＡＭタイプデバイスへのファーストページモードアクセス及びＲＡＳのみリフレッシュが支持されている。ＳＲＡＭタイプデバイスは、ＲＡＳアドレスビットがなく且つ多数のＣＡＳアドレスビットがあるＤＲＡＭとしてＭＩＦに現れる。図３３参照。
【０３０７】
アドレスビットは、パッケージピンカウントを減少するように、ＡＳＤ〔３１：９〕上でＣＰＵからマルチプレクスされる。ＤＲＡＭタイプデバイスは、行アドレス（上部アドレスビット）及び列アドレス（下部アドレスビット）として参照される２つのピースにおける全メモリアドレスを収集する。それらに関連するバスサイクルは、行アドレスストローブ（ＲＡＳ）サイクル及び列アドレスストローブ（ＣＡＳ）サイクルとして参照される。メモリの故障の例外とリフレッシュとＲＡＳ前ＣＡＳ・ＶＲＡＭサイクルの場合には、ＲＡＳサイクルは、ＲＡＳバーの活動期間内に包含されて、ＣＡＳサイクルを含んでいる。従って、ＲＡＳサイクルはＣＡＳサイクルより長くない。ＲＡＳサイクルはＳＲＡＭタイプデバイスのオペレーションのためには要求されないけれど、ＲＡＳサイクルは、後述する幾つかの理由によって生じ得る。
【０３０８】
Ｉ／ＯデバイスはＭＰＵによるアクセスのためのメモリと同様にアドレスされるけれど、Ｉ／Ｏチャンネルの転送は、Ｉ／Ｏデバイスとメモリロケーションを同時にアドレス操作することを要求する。これは、使用可能な３２アドレスビットを、メモリをアドレスする低位アドレスビットとＩ／Ｏデバイスをアドレスする高位アドレスビットとの、２つのエリアに分割することによって達成される。この分割のロケーションは、インストールされているアドレス可能なメモリ及びＩ／Ｏデバイスの量についての適用の要件に依存する。そのエリアは、必要ならば、Ｉ／Ｏデバイスがデータをメモリの対応エリアとともに転送だけできるという副作用をオーバラップすることができる。これらの高位アドレスビットは後述する。
【０３０９】
メモリグループ
ＭＩＦ１２０は、最も最近のＲＡＳアドレスビットの各々と独特の構成を維持しながら、４つのメモリグループまで動作させる。２つまでのアドレスビットがデコードされて、現在のグループを決定する。この機能のためのアドレスビットは、メモリシステムグループ選択マスクレジスタ，msgsm の中にセットされる。各メモリグループは、デバイスの幅、バスタイミング、及びデバイスサイズ（如何にアドレスビットがＡＤ〔３１：９〕上にマルチプレクスされるかを特定する）について、プログラムされる。グループ選択マスクの下部のアドレスビットは、代表的には、メモリデバイス又はＩ／Ｏデバイスの一部をアドレスするのに使用されて、グループ選択マスクの上部のビットは、代表的には、Ｉ／Ｏデバイスをアトレスするのに使用される。
【０３１０】
メモリバンク
各メモリグループは、バスインタフェースモードに依存するように選択された１又はそれ以上のメモリバンクを持つことができる。１つのメモリグループの全メモリバンクは、そのグループの構成と最も最近のＲＡＳアドレスとを共有している。２つのアドレスビットが、現在のメモリバンクを決定するために、デコードされる。
【０３１１】
単一メモリバンク（ＳＭＢ）モード(mmb＝０)において、 msgsmが、グループ選択ビットを同じビットになるようにセットする。これによって、１グループにつき１つのバンクにおける４つまでのグループが、計４つのバンク、すなわち、グループ０、バンク０：グループ１、バンク１：グループ２、バンク２：及びグループ３、バンク３となるのを可能にする。ＭＧＳｘバー／ＲＡＳｘバーは、メモリデバイスへ直接接続するための信号を送る。図１７参照。
【０３１２】
マルチメモリバンク（ＭＭＢ）モード(mmb＝１)において、 msgsmがバンク選択ビットをオーバラップするかどうかに依存して、１つ、２つ、又は４つのバンクが各グループにおいて選択され得る。これによって、組み合せられた全グループのための１６個のバンクまでが許容され、それ以上のバンクが、追加のバンク選択ビットを外部ロジックによって定義することによって、デコードされ得る。現在のメモリバンクを選択するアドレスビットは、(mgXdsが0-0x0eの値となる)ＤＲＡＭデバイスのための行アドレスビットの直ぐ上部に配置されるか、あるいは、(mgXdsがＯx Ｏf の値となる)システム中の全ＳＲＡＭデバイスのためのmssbs ビットによって特定される。グループ選択されたビットは、（ＭＧＳｘバー信号を出力する）ＭＧＳｘバー／ＲＡＳｘバーを決定し、バンク選択ビットは、所与のバスサイクルにおいて活性化するＣＡＳｘバーを決定する。図２０参照。４つのＭＧＳｘバー信号を４つのＣＡＳｘバーによってゲートすることは、１６個までのメモリバンク選択を生成する。図１８参照。
【０３１３】
２つのモードのハイブリッドは、ＭＭＢモードを選択し且つmsgsm ビットをバンクビットをオーバラップするように配置することによって、プログラムされ得る。これによって、ＣＡＳｘストローブがメモリデバイスに直接接続され得るよりもＳＲＡＭタイプデバイスについてより高速のチップ選択としてＭＧＳｘを使用することが可能になり、グループあたりたった１個のＮＯＲゲートがそのグループのためのＲＡＳを生成するのに必要となるだけである。
【０３１４】
デバイスの要件のプログラミング
各メモリグループは、デバイス幅、デバイスサイズ及びバスタイミングの独特の構成を用いてプログラムされ得る。ＣＰＵがリセットした後、システムが、可能な最低のバスタイミングを用いて、バイト幅モードで動作し、メモリグループゼロ、普通、外部ＰＲＯＭから実行する。後述のプロセッサのスタートアップの項を参照されたい。通常、ＰＲＯＭ内のプログラムコードは、最初に、メモリグループのための適正な構成、Ｉ／Ｏデバイス、及び他のシステムの要件を決定するためのコードを実行する。
【０３１５】
デバイスサイズ
メモリデバイスサイズは、mgdsの１６個の設定値の１つにプログラムされる。最も現在において使用可能な及び間もなく使用可能なＤＲＡＭタイプデバイスサイズが、ＳＲＡＭタイプのオプションとともに、選択される。デバイスサイズ及び幅の選択は、ＡＤ［３１：９］のアドレスビットの配置を決定する。表４７及び表４８を参照されたい。
【０３１６】
ＤＲＡＭについては、ＲＡＳ及びＣＡＳサイクルの両方の間において、高位アドレスの幾つか又は全部が、ＲＡＳ及びＣＡＳアドレスビットのために使用されるＡＤ上のＡＤにある。これらの高位のアドレスビットは、例えば、Ｉ／Ｏデバイスを選択するように外部ハードウエアにデコードする等のような、アプリケーションによって使用され得る。高速ＣＡＳサイクルを持つ高性能システムには、ＲＡＳサイクルが、しばしば、Ｉ／Ｏアドレスデコードのために要求される。しかしながら、外部デコードハードウエアが十分に高速であれば、ＣＡＳサイクルＩ／Ｏが可能になる。
【０３１７】
ＳＲＡＭについては、ＣＡＳサイクルとともにできるだけ多くのメモリをアドレスできるように、ＣＡＳアドレスタイムの間に現れる高位のアドレスビットは３１だけである。Ｉ／Ｏデバイスは、ソフトウエア内でデバイスアドレスビットを下位ビットへトランスレートすることによって（これらのトランスレートされたビットが所望のＳＲＡＭメモリアドレス動作を邪魔しないものとする）、まだなお、ＣＡＳサイクル上で選択され得る。デバイスアドレスビットは、Ｉ／Ｏアドレス動作のために外部でデコードされるＡＤ上にＳＲＡＭアクセス中に現れるそれらのアドレスビットにトランスレートされねばならない。
【０３１８】
デバイスの幅
メモリデバイスの幅は、８ビット（１バイト）又は３２ビット（１セル）のいずれかであり、miscb のmgＸdsを用いてプログラムされる。
【０３１９】
表４７に示されるように、セル幅のメモリグループは、メモリグループをアドレスするためのＡ１及びＡ０を使用しない。セル幅のデバイスへの全てのアクセスは、セル配列にされ、全セルを転送する。メモリデバイスアドレスラインは、ＡＤ［ｘ：１１］（ｘはデバイスサイズによって決定される）上のＣＰＵに取付けられている。
【０３２０】
バイト幅メモリグループへのアクセスは、また、セル配列され、セル内の全４バイトを、最上位から最下位（すなわち、０、１、２、３）へ、転送する。唯一の例外は、１バイトのバイト転送デバイスを用いた、Ｉ／Ｏチャンネル転送についてであり、その場合には、１つの任意にアドレスされたバイトだけが転送される。後述のバスオペレーションを参照されたい。
【０３２１】
表４８に示すように、バイト幅メモリデバイスは、Ａ１及びＡ０の使用を要求する。ＤＲＡＭにとって、ＲＡＳ及びＣＡＳメモリデバイスアドレスビットは、同じＡＤ上になければならないので、Ａ３１を除いてアドレスラインは、内部において左へ２ビット回転される。これによって、ＤＲＡＭへの接続のためにＡＤ１１上にＡ０が適正に配置される。しかしながら、このことは、また、Ｉ／Ｏアドレスデコードに用いる高位アドレスビットが、セル幅メモリグループとは違うバイト幅メモリグループのためのＡＤ上に現れることを意味する。Ｉ／Ｏデバイスアドレスデコードハードウエアが固定のＡＤに配線されているので、１つのデバイスにアクセスするのに使用したアドレスビットは、セル幅メモリデバイスを用いてデータを転送するときとは違って、バイト幅メモリデバイスを用いてデータを転送するときとは異なる。
【０３２２】
2006024233.tif 000058
【０３２３】
2006024233.tif 000059
【０３２４】
プログラマブル・タイミング
各メモリグループに対するＲＡＳとＣＡＳのサイクルのタイミングは、各Ｉ／Ｏチャンネルのデータ・セットアップとホールドタイムと同様に、プログラムできる。パラメータに応じて、タイミング・グラニュラリティ（timing granularity）は２Ｘ−クロックサイクルもしくは４Ｘ−クロックサイクルのいずれかである。ある場合にはタイミングは、イベントを一つの４Ｘ−クロックサイクルだけ進めるのに利用できるモディファイアーを有して２Ｘ−クロックサイクルで決められる。
【０３２５】
タイミング仕様は３つのピースに分けられる。すなわち、ＲＡＳプリフイックス、基本ＣＡＳサイクル、そしてＣＡＳ延長／拡張タイミングである。すべてのＣＡＳサイクルは、基本的なＣＡＳサイクルタイミングと適当なＣＡＳ延長／拡張タイミングである。この組み合わせはメモリサイクルのＣＡＳ部分として参照される。すべてのＲＡＳサイクルは、ＲＡＳプレフイックス＋ＣＡＳ部分から成る。複数バスサイクルのバスでのトランザクション(transaction)は、間合いを詰めて繋がっているＲＡＳプレフイックスとＣＡＳ部分の所要の連続である。読み取りサイクルもしくは書き込みサイクルだけが個別に分離して実施される。読み取りー修正書き込みサイクルは実施されない。
【０３２６】
ＲＡＳプレフイックス・タイミング
メモリグループのためのこのタイミングは対応mgXrabstにおけるフイールドをプログラムすることによって決められる。ＲＡＳサイクルのＲＡＳプレフイックスは進み２Ｘクロックサイクル、ＲＡＳプリチャージ(mgbtras)として参照されるＲＡＳの不活性部、そしてＲＡＳアドレス・ホールドタイム（mgbtrhld）とから成る。ＲＡＳサイクル期間の計算のためmgbtrastはmgbtras とmgbtrhld+1との集計を含まなければならない。この時間中ＤＲＡＭＲＡＳアドレスビット、ハイ・アドレスビットそしてビット出力がＡＤ上にある。図３７参照。
【０３２７】
ＣＡＳ部のタイミング
メモリグループのためのこのタイミングはmgXcabstとmgXebtとにおけるフイールドをプログラムすることによって決められる。そのサイクルのＣＡＳバー部はＣＡＳプリチャージ(mgbtcas)として参照されるＣＡＳ不活性部のタイミングから始まる。次はＣＡＳアドレス・ホールドタイム／データタイムの開始(mgbtdob)であり、そのときＤＯＢバーと、多分ＯＥバーもしくはＬＷＥバーがアクチブとなる。そのとき、ＣＡＳバー、ＤＯＢバーそしてＯＥバー（もしメモリー読みなら）もしくはＬＷＥバー（もしメモリー書き込みなら）のどちらかが再び不活性もしくはインアクチブになる（mgbtcast）。長いデータセットアップとバッファー時間に対処するためにＣＡＳサイクルをＤＯＢバーの立ち下がりで拡張できる(mgebtdobe)。長いデータホールドと出力バッファー・ディスエーブル時間とに対処するためにＤＯＢバーのインアクチブ(mgebtcase)に続いてＣＡＳストローブを拡張できる。ＣＡＳサイクルの始め（もしＲＡＳサイクルであればＲＡＳバーの立ち上がり前に）、もしくはＣＡＳバーの立ち下がり（mgbtewea）のどちらかでＥＷＥバーをアクチブにするようにメモリ書き込みサイクルをプログラムできる。同様に、ＤＯＢバーの立ち下がり＋拡張、もしくはＤＯＢバーの立ち下がり＋拡張もしくはＤＯＢバーの立ち下がり＋拡張＋一つの４Ｘクロックサイクル（mgbtlwea）のどれかでアクチブとなるようにＬＷＥバーをプログラムできる。ＥＷＥバーはＤＲＡＭタイプデバイスを受け入れるのが普通である。更に、インアクティブになるＤＯＢバーはＥＷＥバー／ＬＷＥバーもしくはＯＥバーをトラックし、これらの何れもが延長されていないＣＡＳ時間よりも一つの４Ｘクロックサイクル時間だけ先にインアクティブにされることができ、mgbtcastが mgebtsum に加えられ、後者はmgebtdobe と mgebtcaseの集計を含んでいなければならない。図３６と図３５を参照。
【０３２８】
ＭＰＵバス・トランザクションもしくはＩＯＰ命令・フェッチのバス・トランザクションが起きるとき、メモリグループのためのバスサイクルタイミングは上に説明したように、mgXebtにおける値を使う。Ｉ／Ｏチャンネルのバス・トランザクションが起きるとき、適当なＩ／ＯチャンネルのためのioXebtにおける値をmgXebt値の代わりとする。これらのioXebtの値は、Ｉ／Ｏデバイスと同様、その転送において含まれることになるかもしれないメモリーグループを受け入れるようにプログラムされなければならない。
【０３２９】
ＤＲＡＭリフレッシ
メモリの内容を保持するためメモリデバイス内の各行にＤＲＡＭが周期的にアクセスしなければならない。ＩＯＰ命令リフレッシュにより供給されるＲＡＳオンリーリフレッシュモードを含む、幾つかのリフレッシュモードを大抵のＤＲＡＭデバイスが支持している。システム内の大抵の限定ＤＲＡＭに対して十分に短いインターバルでリフレッシを実施できるようＩＯＰをプログラムできなければならない。リフレッシ・サイクル内のタイミングはmsrtg により指示されるメモリーグループのＲＡＳサイクルタイミングを利用し、それはシステム内の最も遅いＤＲＡＭのリフレッシュサイクルに対して十分長くなければならない。各メモリグループに対するリフレッシュは個別にイネーブルされたり、ディスエーブルされる。図２８参照。
【０３３０】
msraは各リフレッシュサイクル中使用されるデータを含んでいる。リフレッシュ・サイクルが完了した後リフレッシュはmsrra 内の１４ビットの行アドレスをインクレメントする。msra３１とmsrha におけるアドレスビットは通常零であるが、その零値がリフレッシュ・サイクル中他のシステムのハードウエアと干渉するのであれば書き込むことができる。
【０３３１】
ビデオＲＡＭ支持
特殊なＶＲＡＭ動作モードはvramの使用により支持される。図２７と表３５とを参照。多くのＶＲＡＭモードがＲＡＳサイクルを使ってＶＲＡＭデバイスに動作状態を設定する。こうして、予期されないＲＡＳサイクルが望ましくない結果を生じる。
【０３３２】
リフレッシュ・サイクルは予期されないＲＡＳサイクルの一つのソースである。これらは適当なmgXrd ビットをセットすることによりＶＲＡＭを含むグループでディスエーブルされることができる。図２８参照。
【０３３３】
ハイアドレス・ビットにおける変化が予期されないＲＡＳサイクルの第２のソースである。これらはmsevhacrをセットすることによりメモリグループmsvgrpで生じないようにできる。ハイアドレス・ビットはＩ／Ｏデバイスのアドレスとして使用されるのが典型であり、そしてもしmshacdがクリアであって、これらのビットが変化するときＲＡＳサイクルを必要とする。ＶＲＡＭグループのアクセス直前のＩ／Ｏチャンネル転送がそのような発生例である。ＲＡＳサイクルは適正なシステム作動に必要であるかもしれないが、msevhacrを設定することによりＲＡＳサイクルをＶＲＡＭグループが受けないようにできる。サイクルのＲＡＳプリチャージ部がＶＲＡＭグループのＭＧＳｘ／ＲＡＳｘではなくＲＡＳとＲＡＳバーで生じる。もし一つより多いメモリグループをＶＲＡＭに使用すると、この保護は有効ではなくなることに注意されたい。図３４参照。
【０３３４】
システムの必要条件のプログラミング
ＲＡＳサイクル発生
ＡＤに新しい行アドレスを持ち込むのにＲＡＳサイクルをＤＲＡＭ型デバイスでは本来必要とする。ＩＯＰの一時的に決定した実行を保証するのに、もしくはあるイベントの後正しい作動を保証するのに、ある場合にはＲＡＳサイクルは必要である。ＭＩＦはこれらの場合を自動的に取り扱う。例えば、Ｉ／Ｏアドレスをデコードするための付加的な時間を供給するようＲＡＳサイクルが発生するようにもできる。ＲＡＳサイクルはＣＡＳサイクルよりも長いのが普通であるので、それらの使用を最小とするのが望ましい。ＲＡＳサイクルの様々なソースを表４９に挙げる。
【０３３５】
2006024233.tif 000060
【０３３６】
現在と以前のアドレスを比較してＲＡＳサイクルが必要か、否かを決めるとき、ＭＩＦは以下のルールを使う。
【０３３７】
・現在のＤＲＡＭＲＡＳアドレスビットを、現在のメモリーグループ上で最近のＲＡＳサイクルからのＤＲＡＭＲＡＳアドレスビットと比較する。もしビットが異なっていると、ＲＡＳサイクルが発生する。
【０３３８】
●中間アドレスビットは比較されない（図１６参照）。中間アドレスビットは、ＤＲＡＭに対して、ＲＡＳアドレスビットより上でmsgsm を含み、msgsm まで、ＳＲＡＭに対して、Ａ２２からmsgsm を含み、msgsm までである。もしもmsgsm が零であると、いずれの場合も中間アドレスはない。もしmsgsm がＡ３１を含んでいると、Ａ３１はハイアドレスビットの部分となり、そして任意に比較される。
【０３３９】
●現在のハイアドレスビットは、以下に述べるコンフィギュレーションのオプションによって、最近のＲＡＳサイクルからのそれらと比較される。ハイアドレスビットのロケーションはmsgsm により変わる。図３２参照。
【０３４０】
３つのハイアドレスビットのコンフィギュレーションのオプションを使ってハイアドレスビットの比較により生ぜしめられるＲＡＳサイクルの発生を最小にできる。
【０３４１】
●Ｉ／Ｏデバイスのアドレスに対してハイアドレスビットを使うのが典型であり、それらが変化すると、ＲＡＳサイクルは外部のハードウエアによるそれらの適正なデコーディングに必要とされる。メモリシステムをハイアドレスビット比較不能にセットすることによりＲＡＳサイクル決定からハイアドレスビットを排除できる（mshacd）。図２８参照。
【０３４２】
●４バイト転送デバイスとセルメモリとの間で、もしくは１セルーセル転送デバイスとバイトメモリとの間でのバスのトランザクション中Ａ３１はパスされる（グローバル・レジスタ、通常セットから取られる）か、もしくは（ＭＩＦにより）クリアーされて、必要とされるときＩ／Ｏデバイスを選択もしくは外す。この目的のための外部でのデコーディングＡ３１は全アドレスデコードよりも迅速に行われることができ、それでこの別個のオプションが利用できる。Ａ３１はハイアドレスビット比較に含まれるか、もしくは除外されることができる（msexa31hac）。図３４参照。
【０３４３】
●Ｉ／ＯデバイスのアドレスをデコードするがＡ３１における変化をデコードしないようにするのにＲＡＳサイクルを必要とするシステムにおいて（mshacdクリア、そしてmsexa31hacセット）、もしシステムが大量のメモリとＩ／Ｏデバイスとを含んでいれば、メモリアドレスビットとＩ／Ｏアドレッシング・ビットとが重なりあうこが必要かもしれない。これがＲＡＳサイクルの発生を阻止する。重なりあったアドレスビットのあるものはＲＡＳ（中間アドレスビット）を生じないからであり、もしくはＲＡＳ（ＤＲＡＭＲＡＳアドレスビット）を必要としないからであり、もしくはＲＡＳ（ＤＲＡＭＲＡＳアドレスビット）を、例えそれらが最後のシステムのＲＡＳサイクルから変化していても必要しないからである。この場合ＲＡＳを強制して、Ｉ／ＯデバイスアドレスがＡ３１をセットすることにより（msras31dクリア）デコードされることを確実にする。このオプションもＲＡＳサイクルを強制することが望ましい時以外ならいつでも使える。
【０３４４】
ドライバー電流
総てのパッケージ出力ドライバーの駆動能力はプログラムできる。図４５参照。
【０３４５】
メモリー欠陥
仮想メモリページ欠陥検知はmfltイネーブル イン・モードを介して可能化される。pkgmflt の状態に応じて、メモリ欠陥入力はＡＤ８もしくはＭＦＬＴバーのどちらかからくることができる。図３４参照。
【０３４６】
Ｉ／Ｏチャンネルプログラミング
前に説明したように、ノーマルなメモリグループバスタイミングはＩ／Ｏチャンネルバストランザクション中、対応するioXebtの値をその取り込まれたメモリグループに対するmgXebtの値の代わりに使うことにより変えられる。このことにより各Ｉ／Ｏチャンネルはデバイスの必要条件を満たすようプログラムされる。データ転送が起きるかもしれないメモリグループと同様、Ｉ／Ｏデバイスに対してioXebtの値は十分でなければならない。図３８参照。
【０３４７】
タイミングに加えて、各Ｉ／Ｏチャンネル上の転送の型はindttaもしくは iodttb で決められている。転送はバイト巾デバイスに対してトランザクション毎に１バイトもしくは４バイトのどちらかでよく、またはセル巾デバイスに対してトランザクション毎に１セルである。４バイトーバイト転送デバイスは、１バイトーバイト転送デバイスよりバスを争う必要が少ないかもしれない。またセル巾メモリでは、４バイトーバイト転送はセル・整理され、そしてデータをメモリセルに詰め、他方１バイトーバイト転送がメモリセル毎にただ一つのバイトを置いていく。バス動作は以下を参照。
【０３４８】
他のＩ／Ｏチャンネル転送オプチオンについては、上の、直接メモリアクセスコントローラを参照。
【０３４９】
オン・チップリゾースレジスタ
オン・チップリゾースレジスタ１０２（図２０）はＭＰＵ１０８，ＩＯＰ１１０，ＤＭＡＣ１１２，ＩＮＴＣ１１４，ＭＩＦ１２０，ビット入力１１６そしてビット出力１１８を含むＣＰＵ１００上の様々な機能ユニットの部分を備えている。これらのレジスタは、レジスタレベルで１do〔〕とsto 〔〕を使用し、もしくはビットレベルで１do.i〔〕と sto.i〔〕を（ビットアドレスを有するレジスタに対して）使用してそれら自身のアドレススペース内のＭＰＵからアドレスされる。他のプロセッサ上でこの形式のリゾースはメモリーマップされているか、オプコード・マップされているかのどちらかである。別のアドレスを使うことによりスペースは整理され、そしてコードは保存される。注意書がしていない、すべてのレジスタは読み取りと、書き込みができる。「リザーブされた零」と記した区域はプログラマブルビットを含んでおらず、そして常に零に戻る。「リザーブされた」と記された区域は使用されていないプログラマブルビットを含んでいる。両区域は将来ファンクショナルなプログラマブルビットを含むことになるかもしれない。
【０３５０】
最初の６つのレジスタはレジスタでアドレスできることに加えて、ビットでアドレスできる。このことによりＭＰＵは、ＩＯＰ，ＤＭＡＣもしくはＩＮＴＣロジックにより同時に変えられるかもしれない他のビットを害することなく個々のビットを修正できる。
【０３５１】
進行中にバスサイクルのタイミングもしくはバスのコンフィギュレーションに影響するレジスタの値を変えるとき無効のバスサイクルを回避するためバスの動作を阻止する。バスの動作は以下のことを確実にすることにより阻止できる。
●ＤＭＡリクエストに応じない。
●ＩＯＰがバスを捉えない（iopdelayが零になる）。
●書き込みが送られない。
●プリフェッチが生じない。
【０３５２】
このことは普通問題ではないのは、関心のあるＤＭＡもしくはＩＯＰの動作が起こったとき丁度パワーアップした後に大抵の変化が生じるからである。書き込みが送られた後でのＭＰＵメモリアクセス（例えば、命令フェッチ）を確実にすることにより送られた書き込みは確実とされる。
【０３５３】
ビット入力レジスタioin（図２１は、pkgio.joinの値に応じてＩＮバー〔７：０〕もしくはＡＤ〔７：０〕からのサンプルしたデータを含んでいる）はビット入力のすべての消費者に対する入力のソースである。ビットは０が継続しており、ioinで一旦ビットが０になると、それはＩＯＰ，ＤＭＡＣもしくはＩＮＴＣにより消耗されるまで、もしくは１にＭＰＵにより書き込まれるまで０のままである。ある条件ではビットは０のままでいられなくなる。上のビット入力参照。
【０３５４】
ビットは個別に読まれ、セットされ、そしてクリヤーされてＭＰＵと他のＣＰＵロジックとの間のレース状態を阻止することができる。
【０３５５】
割り込みベンディングレジスタioip（図２２）はサービスを受けるのを待っている割り込み請求を含んでいる。優先順位に従って（０が最高、７が最低）割り込みが認められる。Ｉ／Ｏチャンネル転送からの、もしくはint からの割り込み要請は対応するペンデイングビットがセットされることにより生じる。ビットがセットされる、もしくはクリヤーされると割り込み要請が提示され、もしくは撤回される。ioipビットと対応ioieビットがセットされるとき、対応するioinビットでは０は継続しない。上の割り込み制御参照。
【０３５６】
ビットは個別に読み取られ、セットされ、そしてクリアーされてＭＰＵとＩＮＴＣロジックとの間でのレース状態を防ぐ。
【０３５７】
インターラプト・アンダーサービス・レジスタioius （図２３）は現在の割り込みサービスと優先順位の高いリクエストに応えるため一時的に保留されているものとを含んでいる。割り込みリクエストのためＩＳＲ実行可能のコードベクトルが実行されるとき、その割り込みリクエストのioius ビットがセットされ、そしてその対応ioius ビットがクリアされる。ＩＳＲがretiを実行するとき、優先順位の高いインターラプト・アンダーサービスビットをクリアする。これらのビットを使って割り込みが優先順位の高いＩＳＲに割り込まないようにする。ioius ビットと対応するioieビットとがセットされるとき、対応するioinビットの零は永続性はない。割り込みコントローラ参照。
【０３５８】
ビットは個別に読まれ、セットされ、そしてクリアされることができて、ＭＰＵとＩＮＴＣロジックとの間でのレース状態を防ぐ。
【０３５９】
ビット出力レジスタioout （図２４）はＭＰＵとＩＯＰビット・出力動作からのビットを含んでいる。書き込み直後にＯＵＴ〔７：０〕に、そしてＲＡＳバーがインアクチブである間ＡＤ〔７：０〕でビットが現れる。ビット出力参照。
【０３６０】
ビットは個別に読まれ、セットされ、そしてクリアされることができて、ＭＰＵとＩＮＴＣロジックとの間でのレース状態を防ぐ。
【０３６１】
インターラプト・イネーブルレジスタはioie図２５に示されている。もし対応するiodmaeビットがセットされていないと、対応する零ビットioinに、ioin内の対応零ビットにリクエストさせてその対応する割り込みサービスを要求させる。イネーブルされた割り込みリクエストが認識されると、その対応ioipビットがセットされ、そしてもはやその対応ioinビットの零は永続性はない。上の割り込みコントローラ参照。
【０３６２】
ビットは個別に読まれ、セットされ、そしてクリアされることができる。このレジスタのためのビットのアドレッサービリティはそのアドレス・スペースにおけるそれの位置のアーティファクト（artifact）であり、そしてこのレジスタにレース状態が存在できることを意味しているものではない。
【０３６３】
図２６はＤＭＡイネーブルレジスタiodmaeを示している。ioinにおける対応零ビットにその対応するＩ／ＯチャンネルのためＤＭＡＩ／Ｏチャンネル転送を要求させる。イネーブルされたＤＭＡリクエストが認識されると、ioinにおける対応零ビットがセットされる。もしその対応iodmaex がセットされると、そのiodmaeビットはクリアされ（そのチャンネルからの別のＤＭＡリクエストを不能化させ）、そのときそのチャンネル上のＩ／Ｏチャンネル転送は１０２４バイトメモリーページ内の最後のロケーションにアクセスする。上のダイレクト・メモリアクセスコントローラ参照。iodmaeビットがセットされるときその対応ioieビットは無視される。
【０３６４】
図２７はＶＲＡＭコントロールビットレジスタvramを示す。これらのビットはＯＥバー、ＬＷＥバー、ＣＡＳ、そしてＣＡＳバーの立ち下がり時間におけるＤＳＦを制御する。それらはＶＲＡＭ上の様々なモードを活性化するための組み合わせにおいて使用されることができる。
【０３６５】
次のＭＰＵメモリサイクル中メモリストローブを制御する前にvramからのビットは、隠されたレジスタを通る。この隠されたレジスタ内のmsvgrpのため蓄えられたビットは、どのメモリグループが現在のＶＲＡＭメモリグループか、どれのストローブがその隠されたレジスタ内のデータにより影響されるかを決定する。ＶＲＡＭメモリーグループへのＭＰＵアクセスが生じるまでは、その隠されたレジスタはいったんそれへvramからデータが転送されると、ロックされ、その隠されたレジスタ内のデータを消耗する。
【０３６６】
vramへのsto[]が生じ、そしてその隠されたレジスタが現在ロックされていないときvramからのデータは、もし（いずれかのメモリグループへの）ポストされた書き込みが待っていない、もしくはプロセス中ではない、またはそのポストされた書き込みの終わりで、別のポストされた書き込みが待っている、もしくはプロセス中であると、直ちにその隠されたレジスタに転送される。vramへのsto 〔〕が生じ、そしてその隠されたレジスタが既にロックされているとき、vram内のデータは、ＶＲＡＭメモリーグループへの次のアクセスが生じる後まで転送される（そして置き換えられる）ことはない。ＶＲＡＭメモリーグループへの次のアクセスがその隠されたレジスタ内のデータを使用し、そしてそのメモリーアクセスが完全であるとき、vram内のデータはその隠されたレジスタへ転送される。
【０３６７】
ＭＰＵメモリアクセスだけがvramもしくはその隠されたレジスタに影響する。その隠されたレジスタへvramを転送した直後にvramにおけるdsfvras,casbvras,wevras,そしてoevrasがクリアされる。ＶＲＡＭメモリーグループへのアクセス後別のＣＡＳもしくはＲＡＳサイクルが、レジスタを書き換えることなくＶＲＡＭメモリーグループに生じ、そして現在の（クリアされた）vramデータを使用する。vramへの書き込みが、その要求されたＲＡＳもしくはＣＡＳタイプのＶＲＡＭメモリーグループへの一つ、もしくはそれ以上のアクセスと対にされると、上に説明した内部作動はプログラムに対して透明である。ＲＡＳプリチャージは適正なＶＲＡＭ作動の期間中少なくとも３つの２×クロックサイクルでなければならない。上に説明し、そして後でも説明するビデオＲＡＭサポート参照。
【０３６８】
msgrp
msgrp はこのレジスタにより制御されるＶＲＡＭを含むメモリーグループを説明する。ＩＯＰとＭＰＵ命令はＶＲＡＭのため使用されたメモリーグループから送られるべきではない。ＶＲＡＭ作動は、意図されたＶＲＡＭトランザクションではなく命令フェッチ・バス・トランザクションで生じ勝ちであるからである。
dsfvcas
dsfvcas はＶＲＡＭメモリーグループ上のメモリーサイクルの次のＣＡＳ部分の開始でＤＳＦへ加えられた状態を含んでいる。ビットは永続し、そして隠されたレジスタへ転送された後でそのビットは自動的にクリアされない。ＶＲＡＭメモリーグループにアクセスしないときはＤＳＦはローである。
dsfvras
dsfvras はＶＲＡＭメモリーグループ上で次のＲＡＳサイクル中ＲＡＳバーが立ち上がった後２つの２×クロックサイクルしてＤＳＦへ加えられた状態を含んでいる。行アドレス・ホールドタイムの終わりでＤＳＦはdsfvcas の状態へ変わる。隠されたレジスタへ転送された後自動的にビットはクリアされる。
casbvras
これがセットの場合、VRAMメモリーグループ上での次のRAS サイクル中、全てのCAS 信号は、RAS バーが上昇後の２つの２Ｘクロックサイクル中は活性であり、通常の期間満了時間では不活性になる。OEバー、EWE バー及びLWE バーは、行アドレスホールド時間が満了した時不活性になる。メモリーグループmsvgrpへの次のアクセスは内部ロジックによってRAS サイクルである様にされる。
【０３６９】
全ての読出し及び書込みストローブは、バスサイクル中の通常の活性時間を通して不活性であり、メモリーとのデータI/O は発生できないことに留意。
【０３７０】
このサイクルを引き起こすのに使用されるST又はLDと関係するデータは、失われ、且つ未定義となる。casbvrasビットは、隠しレジスタに転送された後自動的にクリアーされる。
【０３７１】
wavras
これがセットの場合、VRAMメモリーグループ上での次のRAS サイクル中に、RAS が上昇後の２つの２Ｘクロックサイクル中、LWE は低く、行アドレスホールド時間の満了時に、高い。他方、VRAMメモリーグループでの次のRAS サイクル中に行アドレスホールド時間が満了する迄、LWE バーは高い。何れの場合も、サイクルLWE バーのCAS 部分中において、LWE バーは通常通り振る舞い、そして転送されたデータは達成された機能の一部である。ビットは、隠しレジスタに転送された後、自動的にクリアーされる。
oevras
これがセットの場合、VRAMメモリーグループ上での次のRAS サイクル中にRASが上昇した後の２つの２Ｘクロックサイクル中、OEバーは低く、行アドレスホールド時間の満了時に高い。他方、VRAMメモリーグループ上の次のRAS サイクル中の行アドレスホールド時間が満了する迄、OEバーは高い。何れの場合も、そのサイクルのCAS バー部分中OEバーは通常通り振る舞い、転送されたデータは達成された機能の一部である。ビットは、隠しレジスタに転送された後に自動的にクリアーされる。
【０３７２】
雑多Ａレジスタmisca(Miscellaneous A Register misca)が図２８に示されている。
【０３７３】
mgXrd
これは、リフレッシュが実行される時に対応するメモリーグループ上でリフレッシュサイクルが発生することを、（これがクリアーの場合）許容し、（これがセットの場合）禁止する。幾つかのメモリーグループ上でのリフリッシュを許容することは、非所望であるか又は適当ではない場合がある。例えば、リフレッシュの第１の副作用は、メモリー装置内にラッチされた現在の行アドレスが 変更されることである。このことは、RAS サイクルが強い動作モード及びアドレスをセットする時は、VRAM装置では望ましくない場合がある。別のリフレッシュの副作用は、動作メモリーの行を再選択するために、メモリーグループへの次のメモリーサイクルがRAS サイクルであることが必要とされることにある。このことは、SRAMで通常は所望されないが、その理由は、レフリッシュが必要とされないからである。リフレッシュ及びRAS サイクルは低速実行のみであり、そうでないと、予測可能なタイミングを予測不可能にする。
msras31d
これがセットの場合、A31 が１の時にnon-RAS サイクルを可能にする。これがクリアーの場合、A31 が１の時に、１バスサイクルトランザクション及び４バスサイクルバイトトランザクションの第１のサクイルの両方でRAS サイクルを生じさせる。I/O 装置アドレッシングビットがグループ、バンク又はDRAM RASにオーバラップする大メモリーシステムにおいては、このオプションは、オプションの無い場合に生じ得えない時に、RAS サイクルを強制する。その理由は、これら種々のビットがRAS 比較ロジックから排除されるか、I /O装置アドレスビットと不注意に一致し得る場合があるためである。RAS サイクルが、I/O デコード及び選択のための充分な時間を可能とする様に設計で要求される場合がある。
mshacd
もしこれがクリアーの場合、高アドレスビットを最新のRAS サイクルのものと比較して、RAS サイクルが生じるかを決めることを可能にする。これがセットの場合、この比較を不可能にする。これらのビットは、外部デコーディングロジックを要求するI/O アドレスとして通常使用されるが、このロジックは、このデコーディング用のRAS サイクルで利用可能な追加の時間を必要とする場合がある。しかしながら、高速ロジックを用いると、CAS サイクル内で利用可能な時間内でI/O アドレスをデコードすることがしばしば可能となり、I/O アクセスが速められる。A31 を、msexa31hacをセットすることによって高速アドレスビット比較から除外することが出来る。
msrtg
これは、メモリーグループの数を含み、このメモリーグループのRAS サイクルタイミングは、リフレッシュによって発生されたリフリッシュサイクルのために使用すべきである。特定されたメモリーグループは、最も制限的（最も遅い）リフレッシュタイミングを有するグループである必要がある。
【０３７４】
雑多Ｂレジスタmiscb(Miscellaneous B Register miscb)が図２９に示されている。
【０３７５】
mmb
これがクリアーの場合、全メモリーグループに対する単一メモリーバンク(SMB)を選択する。RASxバー信号は対応するパッケードピン上に現われる。バンク選択ビットは、msgsm ビットに対応する。４つ迄のメモリーバング（即ち、メモリグループ毎に一つのメモリーバンク）が、直接接続され且つアクセスされる。図１７参照。
【０３７６】
これがセットの場合、全メモリーグループに対する多重メモリーバンク(MMB)モードを選択する。MGSxバー信号は対応するパッケージピン上に現われる。バンク選択ビットは、DRAM RASビットの直ぐ上に位置されているかは、又はmssbs 位置内のSRAM用のものである。１６迄のメモリーバンク（即ち、メモリーグループ毎に４つのバンク）は、バンク毎に1.25の２つの入力ゲードと接続することが出来る。ゲート毎の追加の入力及び追加のデコーディングを伴って、任意に大きい数のメモリーバンクを容易に接続することが出来る。図２０参照。
【０３７７】
fdmap
DMA 要求はバスに対して競合する。最高優先順位要求がアクセスの第１番のチャンスを得る。iopdelayが最高優先順位要求によるバスアクセスを可能とするのに充分大きい場合、バスが装置に対して許可される。
【０３７８】
fdmap がセットで、且つiopdelayが最高優先権DMA 要求に対して小さ過ぎる場合、DMA 要求がバスを得ることはない。縮み(shrinking)可能バススロットに適合するより高い優先順位DMA 要求が発生しない場合、IOP がバスを占有する迄バストランザクションは発生しない。IOP が次に遅延を実行する時、最高優先順位DMA 要求--又はDMA 要求がない場合はMPU が--バス要求処理を繰り返す。
【０３７９】
fdmap がクリアーであり且つiopdelayが最高優先順位DMA 要求に対して小さ過ぎる場合、要求はバスを得ない。次のより低い優先順位のバス要求は、MPU が最低の優先順位要求を有して、次にバスを要求することが許可される。この処理は、バスが許可されるか又はIOP がバスを占有する迄繰り返される。IOP が次に遅延を実行する時、最高優先順位DMA 要求--又はDMA 要求が存在しない場合はMPU --がバス要求プロセスを繰り返す。
【０３８０】
pkgio
これがセットの場合、ioinへの入力がINバー〔７：０〕から取られる。これがクリアーの場合、RAS バーが低であり且つCAS が高である時に、ADバー〔７、０〕から取られる。上述のビット入力を見よ。
oed
これがセットの場合、バスサイクル中にOEバーが活性になるのを不可能にする。これがクリアーの場合、OEバーが通常に振る舞う。CPU リセット上で、OEバー信号は利用不能状態となり、従来通り接続されているメモリーが応答することが阻止される。このことは、I/O 空間内の装置からのブーティング(booting)を可能とする。以下のプロセッサスタートアップを見よ。
mgXbw
これがクリアーの場合、対応するメモリーグループはセル幅であり、バスサイクル毎に32ビット読出し及び書込みが行われる。これがセットの場合、対応するメモリーグループはバイト幅であり、４バスサイクルの１つのバストランザクションで、サイクル毎に１バイトで書込み及び読出しが行われる。
【０３８１】
メモリーフォールトアドレスレジスタ(Memory Fault Address Register)は図３０に示される。メモリーページフォールト（不在）例外が、メモリー読出し又は書込み中に発生する場合、mfltaddrは例外を発生したアドレスを含む。mfltaddr及びmfltdataの内容は、フォールトの後のmfltaddrの第１の読出し迄、ラッチされる。mfltaddrを読み出した後、mfltaddr及びmfltdata内のデータは最早有効ではない。
【０３８２】
メモリーフォールトデータレジスタ(Memory Fault Data Registor)が図３１に示される。メモリーページフォールト例外はメモリー書込み中に発生する。mfltdataはmfltaddrに記憶されるデータを含む。mfltdata及びmfltdataの内容は、フオールトの後のmfltaddrの第１の読出し迄、ラッチされる。
【０３８３】
メモリーシステムグループ選択マスクレジスタ(Memory System Group-Select Mask Register)は図３２に示される。これは、A16 及びA31 間のメモリーグループ選択ビットの位置を決める０、１、又は２つの隣接ビットを含む。
【０３８４】
何等のビットもセットされていない時、全てのメモリーアクセスがメモリーグループ０で発生する。メモリーシステム高アドレスビットは、DRAMに対してはメモリーグループゼロDRAM RASアドレスより上で、SRAMに対しては、A21 より上でアドレスビットで発生する。
【０３８５】
１ビットがセットされる時、これは、メモリーグループゼロとメモリーグループ１との間でアクセスを選択するアドレスビットを決定する。メモリーシステム高アドレスビットは、選択されたビットよりも高いアドレスビットで発生するが、常にA31 を含む。
【０３８６】
２つの隣接ビットがセットされる場合、それらは、アクセスされる４つのメモリーグールプの一つを選択するために、デコードされる。メモリーシステム高アトレスビットは、選択されたビットよりも高いアドレスビット内で発生するが、常にA31 を含む。
【０３８７】
メモリーグループ装置サイズレジスタ(Memory Group Device Size Register)が図３３に示されている。これは、各メモリーグループ毎に、DRAMアドレスビット構成、又はSRAMを選択する４ビットコードを含む。このコードは、RAS 又はCAS アドレッシング中にどのビットが使用さるかを、そして(DFRAM行アドレス変化のために)RAS サイクルが必要とされるかを決めるためにどのビットが比較されるかを決める。表４７及び表４８を見よ。
【０３８８】
雑多Ｃレジスタ(Miscellaneous Register)が図３６に示される。
【０３８９】
pkgmflt
これがセットの場合は、メモリーフォールト入力が、MFLTバーから選択される。これがクリアーの場合、メモリーフォールト入力は、RAS バーが下降する時にAD8 からサンプルされる。図７０を見よ。
mspwe
これがセットの場合、１レベルMPU 遅れ書込みバッファを使用可能とし、メモリーへの書き込みが発生した後に、MPU が実行を続けることを可能にする。遅れ書き込みは、後続のMPU 読出しに対して優先して、メモリーコヒーレンシーを維持する。これがクリアーの場合、MPU は、実行の継続以前に、書込みが完了することを待機する必要がある。
msexa31hac
これがセットの場合、A31 は高アドレスビット比較には含まれない。これがクリアーの場合、A31 が高アドレスビット比較内に含まれる。他の情報に付いてはmshacdを見よ。高アドレスビットが、I/O アドレスとして通常使用され、デコーディングのためのRAS サイクルで利用可能な追加の時間を必要とする場合がある外部デコーディングロジックを必要とする。幾つかのバストランザクションは隣接するバスサイクルを含む。このバスサイクルの高アドレスビットはA31 の状態のみだけ異なり、従ってこのビット内の変化のみのためにRAS サイクルを要求する。しかしながら、幾つかのシステム設計では、CAS サイクル内で利用可能な時間でA31 の変化をデコードすることが出来、従って、I/O アクセスが速くされる。
mssbs
多重メモリバンクモードのみに対して、これらのビットは、A14 （バイトモードグループに対するA12 ）から、SRAM装置を含むメモリーグループ内のバンクを選択するのに使用される２つのアドレスビット迄のオフセットを含む。典型的には、使用されるSRAM 装置のアドレスビットの直ぐ上にビットを置く様に設定する。
【０３９０】
メモリーグループ０−３延長バスタイミングレジスタが図３５に示されている。これらの値は、メモリーシステムにおける伝搬、ターンオン、ターンオフ、及び他の遅延を補償する。これらは、各メモリーグループ毎に別々に特定される。I/O チャンネルバストランザクションが発生する時、I/O チャンネル延長ioXebtは対応する値と置き換えられる。I/O チャンネル延長は、I/O チャンネルが転送することの出来る如何なるグールプに対しても充分でなければならない。
mgebtsum
mgebtcase 及び mgebtdobeの和を含む様にプログラムされる。この値はスロットチェック中のみに、バスサイクルに必要とされる全時間を計算するために使用される。
mgebtdobe
これは、特定の時間迄DOB バーのCAS サイクルを延長する。このパラメータは、メモリーグループ遅延、装置アクセス、及び他の操作要求を補償するために使用される。バスサイクルがメモリー読出しサイクルである場合、OEバーが延長される。バスサイクルがメモリー書込みサイクルである場合、EWE バーは延長され、且つLWE バーの下降が特定の時間遅延される。
mgebtcase
これは、延長されたCAS 時間の後特定の量だけCAS サイクルを延長する。DOB バー、OEバー、EWE バー、LWE バーは延長されずに上昇する。このパラメータは、データホールド時間を可能するか、又は装置がそれらの出力ドライバーを利用不可能とすることを可能にするために利用される。
【０３９１】
mgbtewe又はmgbteoe と組み合わせて使用される場合、ホールド又は使用不能時間は、４Ｘクロックサイクルの最大の倍数に設定される。
【０３９２】
メモリーグループ0-3 CAS バスタイミングレジスタ(Memory Group 0-3 CAS Bus Timing Registers)は図３６に示されている。これらレジスタはCAS のみサイクル及びRAS サイクルのCAS 部分に対する基本タイミングを定めている。タイミングは各メモリーグループ毎に別々に特定される。CAS バーに属する値は、CAS，CASO バー，CAS1バー，CAS2バー及びCAS3バーに好適に与えられる。基本CAS サイクルタイミングはmgXebt及びioXebt値によって引き出される。
【０３９３】
mgbtcas
これは、CAS サイクルプリチャージ時間、メモリーサイクルのCAS 時間部分の開始からCAS バーが低下する迄の時間を特定する。
mgbtdob
これは、バス上のアドレス時間（列アドレスホールド）の終了及びデータ時間の開始を、メモリーサイクルのCAS 部分の開始に関して、特定する。これは、CPU が書込みデータをバス上のに設置するか、又はバスから読出しデータの受け取りを開始する時間である。
mgbtcast
これは、全が拡張されていないことを特定し、CAS サイクル、DOB バー、OEバー、EWE バー及びLWE バーの拡張されていない時間は、mgbteoe 又はmgbtewe によって修正されない場合、この時刻に上昇する。この値は、バスサイクルに対して要求される全時間を計算するために、スロットチェック中に、使用される。
mgbtewea
高速SRAMを有するシステムにおいて、各サイクルの開始でのEWE バーの降下が、適当な書き込み可能状態を得るために必要とされる。他の装置は、書込み可能が降下する以前に、それらのアドレスが有効であることを要求する。これらの場合、CAS バー低いが要求される。
mgbtlwea
これは、DOB バー降下の後ゼロ又は１つの４Ｘクロックサイクルの遅延、プラスLWE 降下に対する延長を特定する。延長はmgebtdobe 又はioebtdobe の値を適当なものとして参照する。システム及び装置の遅延に対する調節を可能にする。例えば、DRAMは、その書込み可能な降下時にデータが有効であることを期待する。小さいシステムにおいては、DOB バープラス４Ｘクロックサイクル（ゼロの延長を有する）が適当である場合がある。重い負荷が課せられた（又はバッファーされた）LWE バーを有するシステムにおいて、DOB バーが最も高速のメモリサイクルにとって適当である場合がある。より大きな遅延が必要とされる場合、延長値が設定される場合がある。延長タイミングにおいて４Ｘクロックサイクル一つ分の分解能を可能とする。
mgbteoe
これがセットの場合、OEバーは、延長されないCAS サイクルの終了以前の１つの４Ｘクロックサイクルで上昇する。これがクリアーの場合、OEバーは、延長されないCAS サイクルの終了と共に上昇する。１つの４Ｘクロックサイクルは、幾つかの装置にとって充分な出力ドライバー使用不可能時間である。もし、充分でない場合は、出力ドライバー使用不可能時間は、mgebtcase 及びmgbteoe を組み合わせることによって４Ｘクロックサイクルを最大に増加することで、作り出すことが出来る。
mgbtewe
これがセットの場合、EWE バー及びLWE バーは拡張されていないCAS サイクルの終了以前の１つの４Ｘクロックサイクルを上昇する。これがクリアーの場合、EWE バー及びLWE バーは拡張されていないCAS サイクルの終了と共に上昇する。１つの４Ｘクロックサイクルは幾つかの装置に対して充分なホールド時間である。もし充分で無ければ、ホールド時間は、mgebtcase 及びmgbtewe を組み合わせることによって４Ｘクロックサイクルを最大に増加することで、作り出すことが出来る。
【０３９４】
図３７は、メモリーグループ０−３RAS バスタイミングレジスタ(Memory Group 0-3 RAS Bus Timing Registers)を示している。これらレジスタはRAS メモリーサイクルのRAS プリフィクス部分a に対するタイミングを決めている。タイミングは各メモリーグループに対して別々に特定去れている。この値は、使用されるメモリ装置に対して要求されるものに選択される。RAS に属するタンミング値は、RAS、RAS0バー、RAS1バー、RAS2バー及びRAS3バーに好適に与えられる。
【０３９５】
mgbtrast
mgbtras 及びmghtrhldの和プラス１を含む様にプログラムされる。この時間の終了時に、メモリサイクルのCAS 部分が始まる。この値は、バスサイクルに対して要求される全時間を計算するためのスロットチェック中のみに使用される。
mbgtras
これは、RAS プリーチャージ時間を特定する。時間RAS バーは、RAS サイクルの開始で高い。この時間はmgbterasで短くすることが出来る。
mghtrhld
これは、サイクルのCAS タイミング部分の直前の、RAS サイクルのローアドレスホールド時間を特定する。時間はmgbterasで長くすることが出来る。この時間の直後に、適当ならば、CAS アドレスがバス上に設置される。
mgbteras
これがセットの場合、RAS プリチャージ時間(mgbtrasによって特定される)を減少し、１つの４Ｘクロックサイクルだけ(mgbtrhld によって特定される)行アドレスホールド時間を延長する。
【０３９６】
図３８はI/O チャンネル０−７延長バスタイミングレジスタ(I/O Channel 0-7 Extended Bus Timing Resisters)を示す。
【０３９７】
これらの値は、メモリー及びI/O システムにおける信号伝搬、ターンオン、ターンオフ、装置及び他の遅延を補償する。これらは、I/O チャンネル転送中に、メモリーグループ値、mgXebtと置き換えられ、従って、I/O 装置、及びI/O 装置が転送を行う如何なるメモリーグループに対しても充分である必要がある。
【０３９８】
ioebtsum
ioebtcase 及びioebtdobe の和を含む様にプログラムされる。この値は、バスサイクルに必要とされる全時間を計算するためのスロットチェック期間のみで使用される。
ioebtdone
これは、DOB バーでCAS サイクルを特定の時間だけ延長する。このパラメータは、メモリーグループバッファー遅延、装置アクセス時間、及び他の操作要求を補償するのに使用される。バスサイクルがメモリー読出しサイクルである場合、OEバーは延長される。バスサイクルa がメモリー書込みサイクルである場合、EWE バーが拡張され、特定の時間遅延される場合LWE バーが降下する。
ioebtcase
これは、延長されていないCAS 時間の後の特定された量だけCAS サイクルを延長する。DOB バー、OEバー、EWE バー及びLWE バーは延長されないで上昇する。
このパラメータはデータホールド時間を許容するか、又は装置がそれらの出力ドライバーを使用不可能にすることを許容するために使用される。mgbtewe 又はmgbteoe と組み合わせて使用される時、ホールド又は使用不可能時間は４Ｘクロックサイクルの最大の整数倍で設定される。
【０３９９】
図３９はメモリーシステムリフレッシュアドレス(Memory System Refresh Addres)を示す。これは、メモリーシステムリフレッシュ対して使用される次のアドレスを含む。この値は、リフレッシュが実行される時特定のピンに設置される。
そして、msrra は１だけ増大される。リフレッシュサイクルに対する時間タイミングはmstrg によって設定される。リフレッシュされるこれらのメモリーグループはmgXrd によって設定される。
【０４００】
図４０はIOP 遅延カウントレジスタ(IOP Delay Count Register) を示す。これは、IOP がバスを占有する迄、２Ｘクロックサイクルの数を含む。このカウンターは２Ｘクロックサイクル毎に一度減少される。カウンターは、例えは、IOP がバスを占有する以前に時間クリティカルタスクが完了することが出来るかを決めるため、又は２Ｘクロックの整数倍の時間を測定するために使用することが出来る。
【０４０１】
図４１はI/O 装置転送形態Ａレジスタ(I/O Device Transfer Types A Register)を示している。図４２はI/O 装置転送形態Ｂレジスタ(I/O Device Transfer Types B Register)を示している。これらのレジスタは、対応するI/O チャンネルに取り付けられた装置に対する３つの転送形態の一つを特定する。
・  ４バイトバイト転送形態：４バイトのデータを、一度に１バイト、単一のバストランザクションで装置とメモリー間で転送する。このトランザクションは、装置にアクセスする４つのバスサイクルと、メモリーがセル幅の場合メモリーにアクセスするための一つの追加のビジーサイクルから成る。全初期転送アドレスは、境界を呼び出すべきである。
・  １バイトバイト転送形態：単一のバストランザクションで装置とメモリーとの間で１バイトのデータを転送する。このトランザクションは、単一のバスサイクルから成る。セル幅メモリへの転送は、アドレスされたセルのバイトゼロに対してであり、残りの２４ビットは未定義である。バイト幅メモリーへの転送は特定のバイトに対してである。
・  １セルセル転送形態：単一のバストランザクションで１セルのデータを装置とメモリーとの間で転送する。トランザクションは、装置にアクセスするための１バスサイクルと、メモリーがバイト幅である場合にメモリーにアクセルための４つの追加のビジーサイクルから成る。全ての初期転送はセル境界に対するものである。
【０４０２】
図４３は保存されたレジスターアドレス(Reserved Register Address)を示す。これらのアドレスは保存される。
【０４０３】
図４４はDMA 使用可能期間満了レジスタ(DMA Enable Expiration Register)を示す。このレジスタはDMA I/O チャンネル転送が、１０２４バイトメモリーページ内の最後の位置に成された後、iodmae内の対応するDMA 使用可能ビットをクリアーにする。これは対応するI/O チャンネル上のDMA が、所定の数のバイトを転送した後、使用不可能になることを許容する。上述のダイレクトメモリアクセスコントローラを見よ。
【０４０４】
図４５はドライバー電流レジスタ(Driver Current Resiter )を示す。このレジスタは、パッケージの種々の信号出力を駆動するのに利用可能な電流の相対値をプログラミングすることを可能にする。プログラムされたドライバー電流は種々の効果を有する。
・  選択された電流の量は、所与の負荷への信号の上昇及び下降時間を決める。
この上昇及び下降時間、PWB ワイヤー長、PWB 構造は、信号が送信ラインとして扱われることが必要とされるか、及び信号の終結が要求されるか否かを決める。
・  より大きなドライバー電流はdi/dt で増加する。従って、パッケージ及びシステム電気ノイズを増大する。ドライバー電流が変化しない時は（同じ負荷がチャージされ、ただより遅いか、速いかであるので）全電流消費が変化しないが、di/dt が減少する時は、より少ないノイズしか発生しない。出力ドライバープリドライバー電流が減少すると、パッケージ及びシステムノイズが減少し、従って、製品の電磁気的な要請の承認を容易にする。
【０４０５】
プログラマブルドライバーは、システム設計者が、システム設計の複雑性、システムコスト、及びシステム性能の間で兼ね合いを図ることを可能にする。
【０４０６】
出力ドライバーはプリドライバーと出力ドライバーとから成る。出力ドライバーの各部分の電流供給能力は、別々にプログラム出来る。各フィールドの低ビットは、信号をセットするために、プリドライバーにおいて全又は半ドライブ能力を選択する。より上方の１つ又は２つのビットは１／３、２／３、又は全ドライブ能力を選択する。
【０４０７】
プリドライバーは、コア論理電力によって供給される。それらの動作によって発生されるノイズは、不適当な電力供給又は切断をもたらし、システム内のCPU の性能に影響を及ぼすことがある。この様なシステムにおいては、プリドライバー電流を低下することにより、システム設計の欠点を補償することが可能である。
【０４０８】
ドライバーは、２つの別の電力バス上にある。ADに対するものと、制御信号及び全ての他の出力ピンに対するものである。結果として、パッケージの内部において、ADドライバースイッチングによって引き起こされた電気ノイズは制御信号の質を劣化することを防止する。しかしながら、この分離はパッケージ外部の電力ピン間でノイズが結合することは防止しない。システムの負荷に依存して、出力ドライバーはCPU によって消費される電力を50％乃至９５％を占めている。従って、潜在的に大きいノイズ源である。
【０４０９】
図４６はIOP リセットレジスタ(IOP Reset Register)を示している。何らかの値を書込むことは、現在のメモリーサイクルの終了時に、IOP に、そのソフトウエアーリセット実行可能なコードベクトル（位置0x00000010）で実行を開始させる。これは、ハードウエアリセットの後IOP PCのビット31をクリアーし、IOP を新たな手順の実行に向けるのに使用されるメカニズムである。レジスタの値は、IOP リセットプロセスの間は-1である（即ち、この時から、IOP がソフトウエアーリセット実行可能なコードベクトルの実行を開始する迄にiopresetが書き込まれる。）。他の場合は、その値は０である。
【０４１０】
表５０はオンチップレジスタクロス参照に対するビットフィールドを示している。
【０４１１】
2006024233.tif 000061
【０４１２】
バスオペレーション
ＭＩＦ１２０は、システムバスへのアクセスのためのすべてのソースからのリクエストを取り扱う。リクエストは、ＩＯＰ１１０、ＤＭＡＣ１１２およびＭＰＵ１０８から、それぞれ到来して優先順位付けされる。このようなオーダーにより、ＩＯＰは常に予想可能なメモリタイミングを有し、ＤＭＡはバスアベイラビリティを有し（何故ならば、ＭＰＵはバスをサチュレートしうるからである）、ＭＰＵに対してメモリコヒーレンシーが維持されるようにすることができる。
【０４１３】
オペレーション
ＭＩＦ１２０は、暫定的確定ＩＯＰ実行を保証するために必要とされるときには、直ぐにＩＯＰ１１０へのバスを常に許可しなければならない。こうするために、ＩＯＰは、それが遅延を実行しているとき以外は、バスへの排他的アクセスを有する。ＤＭＡまたはＭＰＵバスリクエストがなされるとき、ＭＩＦは、バストランザクションのタイプを決定し、必要とされる推測時間を計算し（テーブル５１参照）、ＩＯＰがバスを捕らえるまでの時間量であるＩＯＰ遅延とこの推測時間を比較する。この利用しうるバス時間は、スロットと称される。もし、ＩＯＰ遅延が零である場合には、ＩＯＰは、現在、バスを有している。もし、ＩＯＰ遅延がバストランザクションに対して計算された値よりも大きい場合には、バスは、リクエスタに対して許可される。そうでない場合には、バスは、満足されうるバスリクエストが発生するまで、または、ＩＯＰがバスを捕らえるまで、アイドル状態のままである。このスロットチェックは、完了するまでに、１つの２Ｘ−クロックサイクルを要する。バスリクエストがスロットチェックを通過したときには、バストランザクションが、次の２Ｘ−クロックサイクルにて開始される。
【０４１４】
スロットチェック計算は、推測である。何故ならば、Ｉ／Ｏチャンネルバストランザクションに対しては、そのトランザクション中にioXebtおよびmgXebt時間のミックスが使用されうるとしても、ioXebtがその計算のすべての部分について使用されるからである。この簡単化された計算の効果は、リクエストされるスロットが実際に求められバス時間よりも大きくなるということである。実際のバストランザクションが完了するとき、バスは、直ぐに使用できるようになる。
【０４１５】
ＭＰＵ内において、到来するバスリクエストは、最も高い順位から最も低い順位へすなわち、ポステッドライト、インストラクションプレフェッチ、ローカルレジスタスタックスピルまたはリフィル、オペランドスタックスピルまたはリフィル、1d、stおよびインストラクションフェッチの順に優先順位を付けられる。
【０４１６】
ＣＰＵからのアドレスラインは、パッケージピンカウントを減少させＤＲＡＭへのインターフェイスを容易とするために多重化される。ＤＲＡＭは、２つのピース、すなわち、上方アドレスビットまたは行アドレスおよび下方アドレスビットまたは列アドレスへ分けられたアドレスを有する。このアドレスの２つのピースは、ＤＲＡＭにおいて、２つの対応するクロック信号、すなわち、ＲＡＳバーおよびＣＡＳバーでクロックされる。ＡＤ［３１：０］は、また、ＲＡＳおよびＣＡＳ時間中にＤＲＡＭ行および列アドレスよりも高い順位のアドレスビットを出力し、また、ＤＯＢバーがアクティブである間各バスサイクルの最後の部分中データ入力または出力を出力する。ビット出力およびビット入力は、ＡＤ［７：０］にても利用しうる。
【０４１７】
Ｉ／Ｏアドレッシング
msgsm より上のアドレスビットのすべては、ハイアドレスビットと称される。これらのビットは、典型的には、外部デコーディングハードウエアを有するＩ／Ｏ装置をアドレスするのに使用される。これらは、ＲＡＳサイクルに含まれ、または、より速いＩ／Ｏサイクルに対して排除されるようにコンフィギュレーションされ、外部デコーディングハードウエアのリクワイアメントにマッチするようにコンフィギュレーションされうる。利用しうるコンフィギュレーションオプションについては、前述のシステムリクワイアメントプログラミングを参照のこと。
【０４１８】
バストランザクションタイプ
ＣＰＵは、セルワイドおよびバイトワイドメモリ、セルワイドおよびバイトワイドデバイス、およびシングルまたはマルチバスサイクルトランザクションをサポートする。これらの種々な組合せが可能である。これらは、０個の、１つのまたは２つのＲＡＳサイクルを含みうるバストランザクションを完了するのに１つの、４つのまたは５つのバスサイクルを必要とする。すべてのバスサイクルの基本的な構造は同じである。プログラムされたシステムコンフィギュレーションおよび現在のシステム状態によって、バスサイクルのＲＡＳプレフィックスおよびＣＡＳパートが組み合わされて、正しいアドレス発生およびメモリデバイスオペレーションを与える。テーブル５３は、所与のバストランザクション内にありうるＲＡＳおよびＣＡＳサイクルの種々な組合せを列挙している。
【０４１９】
ＭＰＵおよびＩＯＰ（non-xfer）メモリサイクル ＭＰＵおよびＩＯＰは、セルワイドまたはバイトワイドメモリに記憶されたプログラムを読み取り実行することができる。ＭＰＵは、また、セルワイドおよびバイトワイドメモリからデータを読み出したり、セルワイドおよびバイトワイドメモリへデータを書き込みしたりすることもできる。セルワイドまたはバイトワイドメモリへのすべてのアクセスは、セル全体に関わる。したがって、セルワイドメモリへのアクセスは、１つのバスサイクルを必要とし、バイトワイドメモリへのアクセスは、４つのバスサイクルを必要とする。
【０４２０】
ＭＰＵからのセルメモリ書込み
ＭＰＵ／ＩＯＰへのセルメモリ読出し
テーブル５３および参照フィギュアは、これらのバストランザクションに関する詳細を与える。これらのトランザクションは、１つのバスサイクルを必要とする。
【０４２１】
ＭＰＵからのバイトメモリ書込み
ＭＰＵ／ＩＯＰへのバイトメモリ読出し
テーブル５３および参照フィギュアは、これらのバストランザクションに関する詳細を与える。これらのトランザクションは、４つのバスサイクルを必要とする。バイトアドレスビットＡ１およびＡ０は、アクセスされるセルの最上位バイトから最下位バイトまでアドレスするために０から３までインクレメントされる。
【０４２２】
Ｉ／Ｏチャンネル転送
デバイス転送タイプおよびメモリデバイス幅に依存して、テーブル５２に示されるように、Ｉ／Ｏ装置およびメモリの間で種々なバスサイクル組合せが起こる。トランザクションのためのこれらの開始アドレスは、関係するＩ／Ｏチャンネルに対応するグローバルレジスタ（ｇ８は、Ｉ／Ｏチャンネル０に対応し、・・・・・、ｇ１５は、Ｉ／Ｏチャンネル７に対応する）から来る。メモリに対する転送の方向は、同じレジスタのビット１によって示される。図１２を参照のこと。トランザクションのためのデバイス転送タイプは、iodttaまたはiodttbにおける対応するフィールドから来る。バストランザクションは、テーブル５５に挙げられたサイクルおよびストローブで進められる。
【０４２３】
４−バイトのバイト転送デバイスからのセルメモリ書込み
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、５つのバスサイクルを必要とする。データは、最初の４つのバスサイクル中にデバイスから収集されＭＩＦに記憶され、そして、５番目のバスサイクル中にＭＩＦによってメモリへ書き込まれる。最初の４つのバスサイクル中にデバイスから収集されメモリへ書き込まれるデータは、５番目のバスサイクル中に置換される。Ａ３１は、５番目のバスサイクル中にＭＩＦとのコンテンションを阻止するために、Ｉ／Ｏ装置をデセレクトするためにクリアされる。バイトアドレスビットＡ１およびＡ０は、データがそのデバイスから転送されている間に、アクセスされるセルの最上位バイトから最下位バイトまでアドレスするために０から３までインクレメントされる。
【０４２４】
テーブル５２
４−バイトのバイト転送デバイスへのセルメモリ読出し
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、５つのバスサイクルを必要とする。データは、最初のバスサイクル中にメモリから収集されてＭＩＦに記憶され、そして、最後の４つのバスサイクル中にＭＩＦによってそのデバイスへ書き込まれる。ＯＥは、デバイスが書き込まれている間メモリおよびＭＩＦの間のバスコンテンションを阻止するために、最後の４つのバスサイクル中に抑制される。Ａ３１は、最初のバスサイクル中にメモリとのコンテンションを阻止するために、Ｉ／Ｏ装置をデセレクトするためにクリアされる。バイトアドレスビットＡ１およびＡ０は、データがそのデバイスへ転送されている間に、アクセスされるセルの最上位バイトから最下位バイトまでアドレスするために０から３までインクレメントされる。
【０４２５】
４−バイトのバイト転送デバイスからのバイトメモリ書込み
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、４つのバスサクルを必要とする。バイトアドレスビットＡ１およびＡ０は、デバイスおよびメモリの両方に関するアクセスされるセルの最上位バイトから最下位バイトまでアドレスするために、０から３までインクレメントされる。データは、ＭＩＦを介在することなく、デバイスからメモリへ直接にバスにて転送される。
【０４２６】
４−バイトのバイト転送デバイスへのバイトメモリ読出し
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。トランザクションは、４つのバスサイクルを必要とする。バイトアドレスビットＡ１およびＡ０は、デバイスおよびメモリの両者に関してアクセスされるセルの最上位バイトから最下位バイトまでアドレスするために０から３までインクレメントされる。データは、ＭＩＦを介在することなく、メモリからデバイスへ直接にバスにて転送される。
【０４２７】
１−バイトのバイト転送デバイスからのセルメモリ書込み
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、１つのバスサイクルを必要とする。データは、典型的には、ＡＤ［７：０］にてデバイスによって供給され、メモリの対応するビットへ書き込まれる。ＡＤ［３１：８］は、また、メモリへ書き込まれ、もし、外部デバイスによってドライブされない場合には、そのアドレスビットをホールドする。
【０４２８】
１−バイトのバイト転送デバイスへのセルメモリ読出し
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与える。このトランザクションは、１つのバスサイクルを必要とする。データは、典型的には、メモリの対応するビットから来るＡＤ［７：０］からデバイスによって取り出される。他のメモリビットは、メモリによってドライブされるが、典型的にはそのデバイスによって使用されない。
【０４２９】
１−バイトのバイト転送デバイスからのバイトメモリ書込み
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、１つのバスサイクルを必要とする。グローバルレジスタにおけるアドレスは、通常、セルにアドレスする。何故ならば、最下位の２つのビットは、アドレッシングには使用できないからである。しかしながら、このトランザクションのために、グローバルレジスタにおけるアドレスは、変更バイトアドレスである。すなわち、アドレスは、ＡＤに接続されたバイトワイドメモリに対して正しく位置するように左へ２ビットだけシフトされる（ソフトウエアにおけるプレシフト）。アドレスは、ＡＤに達するまでは、再度シフトされない。Ａ３１は、そのままである。Ａ３０およびＡ２９は、使用できないようになり、グループビットは、供給されるアドレスにおけるプレシフトにより、それらの通常の位置の右へ２ビットの位置にある。このトランザクションにより、バストランザクション当り１バイトずつ、バイトの転送が行われ、バイトワイドメモリへパックされる。
【０４３０】
１−バイトのバイト転送デバイスへのバイトメモリ読出し
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、１つのバスサイクルを与える。グローバルレジスタにおけるアドレスは、通常、セルにアドレスする。何故ならば、最下位の２つのビットは、アドレッシングには使用できないからである。しかしながら、このトランザクションの場合には、グローバルレジスタにおけるアドレスは、変更バイトアドレスである。すなわち、アドレスは、ＡＤへ接続されたバイトワイドに対して正しい位置となるように左へ２ビットだけシフトされる（ソフトウエアにおけるプレシフト）。そのアドレスは、ＡＤに達するまでは再度シフトされない。Ａ３１は、そのままであり、Ａ３０およびＡ２９は、使用できなくなり、グループビットは、供給されるアドレスにおけるプレシフトによりそれらの通常の位置の右へ２ビットの位置にある。このトランザクションにより、トランザクション当り１バイトずつ、バイトの転送が行われ、バイトワイドメモリからデバイスへアンパックされる。
【０４３１】
１−セルのセル転送デバイスからのセルメモリ書込み
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。トランザクションは、１つのバスサイクルを必要とする。
【０４３２】
１−セルのセル転送デバイスへのセルメモリ読出し
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、１つのバスサイクルを必要とする。
【０４３３】
１−セルのセル転送デバイスからのバイトメモリ書込み
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、５つのバスサイクルを必要とする。データは、最初のバスサイクル中にダバイスから収集され、ＭＩＦに記憶され、最後の４つのバスサイクル中にＭＩＦによってメモリへ書き込まれる。最初のバスサイクル中にデバイスから収集されている間にメモリに書き込まれるデータは、２番目のサイクル中に置換される。Ａ３１は、最後の４つのバスサイクル中にＭＩＦとのコンテンションを阻止するために、Ｉ／Ｏ装置をデセレクトするようにクリアされる。バイトアドレスビットＡ１およびＡ０は、データがＭＩＦからメモリへと転送されている間にアクセスされるセルの最上位バイトから最下位バイトまでアドレスするために０から３までインクレメントされる。
【０４３４】
１−セルのセル転送デバイスへのバイトメモリ読出し
テーブル５３および参照フィギュアは、このバストランザクションに関する詳細を与えている。このトランザクションは、５つのバスサイクルを必要とする。データは、最初の４つのバスサイクル中にメモリから収集され、ＭＩＦに記憶される。ＯＥバーは、デバイスが書き込まれている間メモリとＭＩＦとの間のバスコンテンションを阻止するために５番目のバスサイクル中に抑制される。Ａ３１は、最初の４つのバスサイクル中にメモリとのコンテンションを阻止するために、Ｉ／Ｏ装置をデセレクトするようにクリアされる。バイトアドレスビットＡ１およびＡ０は、データがメモリからＭＩＦへ転送されている間アクセスセルの最上位バイトから最下位バイトまでアドレスするために０から３までインクレメントされる。
【０４３５】
バスリセット
外部ハードウエアリセットは、パワーフェイルインモード以外、パワーオンコンフィギュレーションへ全ＣＰＵを初期化する。リセットがアクティブ（外部またはパワーオンセルフリセット）である間、ＡＤは、高インピーダンス状態へ行き、ＯＵＴ［７：０］は、ハイとなり、ＲＡＳは、アクティブとなり、その他の全ての出力は、インアクティブとなる。波形については図６６を参照のこと。
【０４３６】
ビデオＲＡＭサポート
ＶＲＡＭは、主として、ビデオディスプレイにピクセルを表示するのに必要とされるシステムメモリバンド幅を減少させることによって、グラフィックオペレーションの速度を増大させる。ＶＲＡＭコマンドは、ビデオディスプレイに対してクロックアウトされるようにデータの全行をＤＲＡＭアレーから内部シリアルアクセスメモリへ転送するのに使用される。ＶＲＡＭは、また、グラフィックオペレーションを高めるために他のコマンドをサポートする。ＶＲＡＭオペレーションは、ｖｒａｍ書込みおよび所望のＶＲＡＭメモリアドレスへの適当な読出しまたは書込みによりエンコードされる。ＶＲＡＭバスサイクルのための基本的タイミングは、メモリグループにおける同様のバストランザクションと同じである。図２７を参照のこと。リフレッシュおよびＲＡＳサイクルは、また、ＶＲＡＭオペレーションに影響を及ぼしうる。前述のビデオＲＡＭサポートを参照のこと。種々なｖｒａｍオプションの効果を表す波形は、図７２に示されている。
【０４３７】
仮想メモリページ故障入力
ＭＩＦは、ＲＡＳサイクルでの故障検出をインテグレートすることにより、ＭＰＵメモリアクセスによって引き起こされるメモリページ故障を検出する。したがって、マップされるページサイズは、ＣＡＳページのサイズである。メモリシステムＲＡＳページアドレスは、外部ＳＲＡＭの使用によるＲＡＳプレチャージ中に論理ページアドレスから物理ページアドレスへとマップされる。ＳＲＡＭから供給されるメモリ故障信号は、ＲＡＳバーフォール中にサンプルされ、もし、ローであるならば、メモリページ故障が生じたことを示す。図４６ａを参照のこと。メモリ故障信号は、ＭＦＬＴバーまたはＡＤ８から入力される。後述の交互メモリ故障入力を参照のこと。
【０４３８】
メモリ故障が検出されるとき、バストランザクションは、バスサイクルのＣＡＳバーのパート中に実際にはアクティブとならない信号なしに完了する。それから、メモリ故障例外がＭＰＵへ合図され、ＭＰＵは、故障状態をサービスするためにトラップを実行する。波形については、図７０を参照のこと。
【０４３９】
交互入力および出力
ビット入力、ビト出力、メモリ故障入力およびリセット入力は、専用ピンを使用するのでなく、ＡＤにて多重化される。この特徴は、ＰＷＢにてルーティングされるトラックの数を減少させる（ＰＷＢサイズおよびコストを減少させる）ために使用され、ShBoom ＣＰＵがより小さいパッケージにて供給されうるようにする。
【０４４０】
交互ビット入力
ビット入力は、ＲＡＳバーがローであり且つＣＡＳバーがハイである間ＩＮバー［７：０］またはＡＤ［７：０］からサンプルされうる。ソースは、pkgio によって決定される。前述の図２９およびビット入力を参照のこと。
【０４４１】
交互ビット出力
ビット出力は、ＲＡＳバーがハイである間、ＯＵＴ［７：０］およびＡＤ［７：０］の両方に現れる。それらが両方の位置に現れるので、選択ビットは必要とされない。前述のビット出力を参照のこと。
【０４４２】
交互メモリ故障入力
メモリ故障信号は、ＲＡＳバーフォール中にＭＦＬＴバーまたはＡＤ８からサンプルされうる。ソースは、pkgmflt によって決定される。図３４を参照のこと。
【０４４３】
交互リセット入力
外部ハードウエアリセットは、ＲＥＳＥＴバーまたはＡＤ８から取られ、決定は、パワーオンでなされる。パワーオンおよびリセットシーケンスは、後述のプロセッサスタートアップに詳述されている。
【０４４４】
プロセッサスタートアップ
パワーオンリセット
ＣＰＵは、パワーアップをセルフリセットする（後述のリセットプロセスを参照のこと）。ＣＰＵは、供給電圧がほぼ３Ｖに達するまでは、外部ハードウエアリセットに関係なく、内部リセットをアクティブに保持し且つプロセッサがランニングされないようにする内部回路を含む。供給電圧が３Ｖに達するとき、ＲＥＳＥＴバーがサンプルされ、アクティブであるならば、ＣＰＵのための外部リセットのソースとして使用される。さもなければ、外部リセットは、ＡＤ８にて多重化される。この決定は、パワーが再度サイクルされるまで、適用される。もし、リセットのうちの１つがアクティブであるならば、ＣＰＵは、そのリセットが継続前にインアクティブとなるまで、待つ。もし、どのリセットソースもアクティブでないならば、プロセッサは、直ぐにリセットシーケンスを開始する。したがって、ＣＬＫでのクロック入力は、その時間までは安定でなければならない。
【０４４５】
もし、パワー供給が３Ｖから通常の供給電圧まで上昇したときにシステムがランニングすることができ、システムが外部リセットを必要としないならば、ＲＥＳＥＴバーは、接続されてはならず、ＡＤ８は、リセットソースとしてドライブされてはならい。さもなければ、外部リセットは、リセットが論理ハイへ上昇しＣＰＵがランニングされうるようになる前に適切にパワーアップするために、クロック、パワーおよびその他のシステム構成要素に対して十分長い間ローに保持されねばならない。
【０４４６】
パワーオンリセットプロセス中、モードビットパワーフェイルがセットされ、パワーが以前に故障していたことを示す。そのビットは、書込みモードによってクリアされる。
【０４４７】
ブートメモリ
ＣＰＵは、ＯＥバーアクチベートまたはブートオンリーメモリデバイスとしてコンフィギュレーションされたバイトワイドメモリからのブーティングをサポートする。ブートオンリーメモリコンフィギュレーションは、主として、典型的には遅いブートＥＰＲＯＭが、厳しい状態で使用されるローアドレスメモリページを行わないようにするために使用される。ブートオンリーメモリは、ＯＥまたはメモリバンクまたはグループ特定（ＲＡＳｘまたはＣＡＳｘ）信号を使用せずに、バス上にデータを置くようにシステムにワイヤドされている点で、ＯＥバーアクチベートメモリとは異なる。ＯＥＤは、初期的には、ＣＰＵリセット中にセットされ、ブートアッププロセス中にＯＥバーをディスエーブルして記述のオペレーションを行えるようにする。ブートオンリーメモリ選択信号は、外部的に、０×８００．．．を含む最上アドレスビットからデコードされる。使用される最上アドレスビットの数は、システムのＩ／Ｏ装置アドレスデコーディングリクワイヤメントに依存している。最下アドレスビットは、それらが通常のメモリに対するように、個々のバイトおよびセルをアドレスするように接続される。したがって、ブートオンリーメモリデバイスは、どのメモリグループがアクセスされているかに関係なく、選択される。
【０４４８】
リセットプロセス
リセットが行われるとき、ＣＰＵは、オンチップＲＡＭを初期化されないままとし、リセットシーケンスを助ける意図的に配置されたビット以外、ほとんどのレジスタを零へクリアする。特に、ＣＰＵは、最もコンサバティブなシステムコンフィギュレーションへリセットする。テーブル５４を参照のこと。モードビットパワーフェイルは、パワーオンリセットプロセスによってのみセットされ、リセットがパワー故障またはリセットアクティブによって起こされたかを決定するためにチェックされる。
【０４４９】
リセット後の最初のバストランザクションは、ＳＭＢモードにおいてＯＥバーのディスエーブル状態で、アドレス０×８０００００００から始まるメモリグループゼロ、メモリバンクゼロにおけるバイトワイドメモリからの４つのバイトのセル読出しである。このアドレスは、Ｉ／Ｏ装置アドレス０×８００．．．およびメモリデバイスアドレス０×．．．Ｎからなる。ＯＥバーはディスエーブルされるので、ＯＥバーアクチベートメモリは応答せず、したがって、ブートオンリーメモリが応答しうる。
【０４５０】
ＣＰＵは、アドレス０×８０００００００から戻されるバイトをテストする。もし、そのバイトが０×ａ５であるならば、ブートオンリーメモリは、応答しており、ＯＥバーがディスエーブル状態で実行が継続する。さもなければ、ブートオンリーメモリは応答していなかったのであり、ＣＰＵは、ブーティングがＯＥバーアクチベートメモリから生じているとする。それから、ＣＰＵは、ＯＥＤをクリアし、このメモリがその後のバスサイクルにて応答するようにＯＥバーをアクチベートする。
【０４５１】
ブートストラッププログラム
ブートオンリーまたはＯＥバーアクチベートメモリの場合、バスアクセスは、バイトワイドメモリデバイスからのＡＭＢモードにて継続する。２番目のバストランザクションは、０×８００００００８でのＩＯＰのためのハードウエアリセットアドレスに対するものである。これは、典型的には、小さなリフレッシュ／遅延ループへのジャンプを含む。遅延により、バスを使用できるようになり、ＭＰＵがそのリセットアドレス０×８００００００８で実行を開始するようにする。
【０４５２】
もし、システムがＭＭＢモードにワイヤドされているならば、ブーティングは、ブートオンリーメモリからより簡単に行われる。ＯＥバーアクチベートメモリからのブーティングも可能であるが、メモリグループゼロがアクセスされるときに、メモリグループ１、２および３のバンクゼロが選択されないようにするため外部ゲーティングが必要とされる。
【０４５３】
次に、ＭＰＵは、実行を開始し、典型的には、システムブートストラップルーチンへブランチするようにプログラムされている。ＭＰＵブートストラップは、次のようにプログラムされる。
●システムハードウエアのために必要とされるコンフィギュレーションレジスタをセット
●ＩＯＰのためのソフトウエアリセットベクトルをセット
●ブートデバイスからメモリ（もし、必要とされるならば）へ初期ＭＰＵおよびＩＯＰアプリケーションプログラムをコピー。
●ＭＰＵのためのアプリケーションプログラムへブランチ
●ＩＯＰプログラム実行を開始するようにソフトウエアにてＩＯＰをリセット。
ここで、システムスタートアップは完了する。
【０４５４】
次のページは、いくつかのスタートアップコンフィギュレーションを記述する。実際のコードについては、後述する実例ShBoom ＣＰＵシステムを参照のこと。後述されるコンフィギュレーションは、次のようである。
●バイトワイドブートオンリーメモリからのブートおよびセルワイドＲ／Ｗメモリへのアプリケーションプログラムのコピー。
●セルワイドブートオンリーメモリからのブートおよびセルワイドＲ／ＶＶメモリへのアプリケーションプログラムのコピー。
●バイトワイドメモリからのブートおよびラン
●セルワイドメモリからのブートおよびランバイトワイドブートオンリーメモリからのブートおよびセルワイドＲＡ／Ｖメモリへのアプリケーションコードのコピー。
【０４５５】
このプロセスは、ブートオンリーメモリが前述したようにアクチベートさせられるようにするために、外部デコーディングハードウエアを必要とする。
【０４５６】
ブートオンリーメモリが存在することを示すために、メモリは、位置０に０×ａ５を有していなければならない。このシグネーチャーバイトは、ブートオンリーメモリからのブートプロセスを継続するためにスタートアップ時に検出されねばならない。
【０４５７】
ブートプログラム実行シーケンスは、次のように構成される。
１．ＩＯＰは、システムＲＡＭを初期化するために、各メモリグループの８つのＲＡＳサイクルを実行するコードへのパワーオンリセット位置からのジャンプを実行する（リフレッシュサイクルを行なうことにより）。それから、ＩＯＰは、ＤＲＡＭのためのリフレッシュおよびＭＰＵの実行を許す遅延を含むマイクロループに入る。マイクロループは、リフレッシュおよび遅延を繰り返し、ＩＯＰがコンフィギュレーション遅延中にさらに別の命令のためにバスへアクセスする必要をなくし、ＭＰＵバスアクセスにより、さらに別のリフレッシュサイクルが必要とされる前にシステムのコンフィギュレーションを開始することができるようにする。リフレッシュサイクルは、システムがＤＲＡＭを含まない場合には、必要とされない。
２．ＭＰＵは、システムをコンフィギュレーションするためにそのリセット位置からプログラムコードへのbrを実行する。brは、メモリグループ３にアドレスするビットを含む。これにより、後に、メモリグループ０、１および２がシステムタイミングリクワイヤメントのためにプログラムされている間、メモリグループ３のためのコンフィギュレーションがブートオンリーデバイスアクセスタイミングのために使用される。メモリグループ１または２は、ここに記述する仕方でグループ３の代わりに使用されうるのであるが、説明を簡単とするために、メモリグループ３のみについて説明する。
【０４５８】
ＭＰＵコンフィギュレーションプログラムコードは、現在のメモリグループおよびグローバルメモリシステムのコンフィギュレーションがバスサイクル中に変更されないように、命令プレフェッチをホールドオフするように構成される。
３．miscb をプログラミングするとき、必要ならば、mmb をセットする。ＭＭＢのためにワイヤドされたシステムにおいては、これにより、ＲＡＳタイプサイクルがすべてのメモリグループにて適切に行われるようにされる。
４．システムが最終的にそれらを有しないとしても、４つのメモリグループを定めるためにmsgsm をセットする。次の命令のフェッチ中に、ブートオンリーメモリは、再び、選択される。しかしながら、ステップ２にてbrによってＰＣに配置されたメモリグループ３のためのアドレスビットにより、メモリグループ３のためのコンフィギュレーションが使用されるようにさせられる。
５．ブートオンリーメモリへのアクセスを最適化するためにメモリグループ３のタイミングをプログラムする。それから、システムコンフィギュレーションの残りのものをプログラムする。このプロセス中に、ＩＯＰは、典型的には、リフレッシュサイクルの３つまたはその程度のセットを実行する。リフレッシュサイクル中に適切なコンフィギュレーションレジスタをＭＰＵが変えることは可能であるが、ブートオンリーメモリのために典型的に使用されるＥＰＲＯＭのバスサイクルは長いので、あまりあり得ないことである。さらにまた、最悪の結果は、単ーリフレッシュサイクルのタイミングが不適当となることであが、これは、実際にはあまり起こらないであろう。何故ならば、ＤＲＡＭにはまだ保護されるべきデータがないからである。
もし、メモリグループ３がアプリケーションによって使用される場合には、それは、ロードされたアプリケーションコードから後でコンフィギュレーションされる必要がある。
６．ブートオンリーメモリから最終ブートコード（もし、あるならば）およびアプリケーションプログラムを読み出し、ＲＡＮメモリの適当な位置にそれらを書き込む。全アプリケーションプログラムは、ブートオンリーメモリがランニングしているメモリグループ３のためのパートがあるならば、そのパートを除いて、Ｒ／Ｗ ＲＡＭへロードされうる。
７．Ｏ£Ｏをクリアしアプリケーションプログラムへブランチするプログラミングを含む単一命令グループをレイアウトする。br［］を使用して、Ａ３１をクリアし、ブートオンリーメモリがブランチ行き先でアクチベートされないようにする。
８．ここで、アプリケーションプログラムが実行されている。必要ならば、メモリグループ３をコンフィギュレーションする。もし、ブートオンリーメモリからのメモリグループ３のローディングが必要ならば、最初にプレフェッチが完了するように２つの命令グループの間にコードを配列し、ＯＥＤをセットし、それから、アプリケーションをメモリグループ３へ転送するためにマイクロループを実行し、マイクロループが完了するときにＯＥＤをリイネーブルさせる。
９．そのアプリケーションプログラムの実行を開始するためにソフトウエアにおいてＩＯＰをリセットする。ＩＯＰのソフトウエアリセットにより、それは、Ｏ×１Ｏで実行を開始させられ、結果として、ＩＯＰ ＰＣからＡ３１をクリアし、ブートオンリーメモリがもはや選択されないようになる。
【０４５９】
ブートプロセスは完了する。
【０４６０】
セルワイドブートオンリーメモリからブートし、アプリケーションプログラムをセルワイドＲ／Ｗメモリへコピーする。
【０４６１】
このプロセスは、ブートオンリーメモリが前述したようにアクチベートさせられるようにするために外部デコーディングハードウエアを必要とする。
【０４６２】
ＣＰＵは、常に、初期的には、バイトワイドメモリからブートする。何故ならば、これは、リセットコンフィギュレーションであるからである。ＣＰＵは、現在のメモリグループのためのコンフィギュレーションがセルワイドであるようにプログラムされるまでは、各アドレスのローバイトからの命令を実行する。この点までは、ブートデバイスデータの上方２４ビットは使用されない。ブートプロセスは、miscb を書き込むときに、ステップ３を除いて、バイトワイドブートオンリーメモリからのブーティングと同じであり、メモリグループ０および３がセルワイドであるようにセットする。sto to mcbを有する命令グループにおいて、次の命令グループへbrを置く。これは、プレフェッチをホールドオフし、次の命令フェッチがセルワイドであるようにする。ここで注意すべきことは、ブートオンリーメモリは、brの前の命令がバイトワイドとして表され、br後の命令がセルワイドとして表されるように、注意してプログラムされねばならないということである。
【０４６３】
バイトワイドメモリからのブートおよびラン
このプロセスは、ＭＧＳＯバー／ＲＡＳＯバー／ＣＡＳＯバーによってアクチベートされるためにブート／ランメモリデバイスを必要とする。
【０４６４】
ＯＥバーアクチベートメモリが存在することを示すために、メモリは、ＯＥバーがアサートされないとき、位置０でのＯ×ａ５で応答してはならない。このシグネーチャーバイトの無いことは、スタートアップで検出され、ＯＥバーがブートプロセスを続ける必要があることを示す。ＯＥＤは、ＣＰＵリセット中にセットされ、ブートアッププロセス中にＯＥＤをディスエーブルし、シグネーチャーバイトＯ×ａ５が検出されないときにクリアされ、ＯＥバーをリイネーブルする。次のようにブートプログラム実行シーケンスを構成する。
１．ＩＯＰは、システムＤＲＡＭを初期化するために、各メモリグループについて８つのＲＡＳサイクルを行なうコードへのパワーオンリセット位置からのＪＵＭＰを実行する（リフレッシュサイクルを行なうことにより）。それから、それは、ＤＲＡＭのためのリフレッシュおよびＭＰＵの実行を可能とすると遅延を含むマイクロループに入る。マイクロループは、リフレッシュおよび遅延を繰り返し、さらにリフレッシュサイクルが必要とされる前にシステムのコンフィギュレーションを開始するようにＭＰＵバスアクセスを許すコンフィギュレーション遅延中にさらに別の命令のためにＩＯＰがバスにアクセスする必要を無くしている。リフレッシュサイクルは、システムがＤＲＡＭを含まないならば、必要とされない。
２．ＭＰＵは、システムをコンフィギュレーションするためそのリセット位置からプログラムコードまでbrを実行する。
【０４６５】
ＭＰＵコンフィギュレーションプログラムコードは、現在のメモリグループおよびグローバルメモリシステムのコンフィギュレーションがバスサイクル中に変えられないように、命令プレフェッチをホールドオフするように構成される。
３．miscb をプログラミングするとき、必要ならば、mmb をセットする。ＭＭＢモードのためにワイヤドされたシステムにおいては、これにより、すべてのメモリグループについて適切にＲＡＳタイプサイクルが行われるようにされる。
４．メモリへのアクセスを最適化するために、メモリグループ１のタイミングをプログラムする。それから、システムコンフィギュレーションの残りのものをプログラムする。このプロセス中に、ＩＯＰは、典型的には、リフレッシュサイクルの３つまたはその程度のセットを実行する。ＭＰＵは、リフレッシュサイクル中に適切なコンフィギュレーションレジスタを変えることは可能であるが、これは、ＥＰＲＯＭのバスサイクル時間が長いために起こり難いことである。さらにまた、最悪の結果は、単一リフレッシュについてタイミングが不適当となることであるが、これも実際には起こりにくいことである。何故ならば、まだＤＲＡＭには保護されるデータがないからである。
５．そのアプリケーションプログラムの実行を開始するためにソフトウエアにてＩＯＰをリセットする。ＩＯＰのソフトウエアリセットにより、それは、０×１０での実行を開始させられ、結果として、ＩＯＰ ＰＣからＡ３１をクリアし、ブートオンリーメモリはもはや選択されないようになる。
６．アプリケーションプログラムの実行を開始する。
【０４６６】
ブートプロセスは完了する。
【０４６７】
セルワイド／メモリからのブートおよびラン
このプロセスは、ＭＧＳＯバー／ＲＡＳＯバー／ＣＡＳＯバーによってアクチベートされるためにブート／ランメモリデバイスを必要とする。Ａ３１は、ブート／ランメモリを選択するときに、使用されない。ＣＰＵは、現在のメモリグループのためのコンフィギュレーションがセルワイドであるようにプログラムされるまでは、各アドレスのローバイトからの命令を実行する。この点までは、ブートデバイスデータの上方２４ビットは、使用されない。ブートプロセスは、miscb を書き込むときに、ステップ３を除いて、バイトワイドメモリからのブーティングおよびランニングと同じであり、メモリグループ０がセルワイドであるようにセットする。sto to miscbを有する命令グループにおいて、brを次の命令グループへ置く。これは、プレフェッチをホールドオフし、次の命令フェッチがセルワイドであるようにする。ここで、注意すべきことは、br前の命令がバイトワイドとして表され、br後の命令がセルワイドとして表されるように、注意してプログラムされなければならないということである。
【０４６８】
スタック初期化
ＣＰＵがＭＰＵの両方をリセットした後は、スタックは、対応するスタックポインタがロードされるまでは、初期化されていないとされる。そして、これは、ＭＰＵによって行われる最初のオペレーションのうちの１つである。
【０４６９】
リセット後、オペランドスタックは、異常に空である。すなわち、s2は、アロケートされておらず、最初のプッシュオペレーション時にアロケートされる。しかしながら、このアイテムをポッピングすることにより、スタックは空とさせられ、リフィルを必要とする。したがって、最初にプッシュされたアイテムは、スタックに残されるか、または、saは、オペランドスタックがさらに使用される前に初期化されるべきである。
【０４７０】
2006024233.tif 000062
【０４７１】
１．iodttaまたはiodttbに特定されたデバイスタイプ参照。
２．データは、デバイスとメモリとの間で転送される。
３．データは、転送のパート中にＭＩＦに記憶される。
４．サイクルの全シーケンスは、自動バストランザクションである。
【０４７２】
2006024233.tif 000063
【０４７３】
注：
１．iodttaまたはiodttbにおけるＩ／Ｏチャンネル転送タイプ
２．ＩＯＰはメモリに書き込みしない。
３．どのバスサイクルにてＲＡＳまたはＣＡＳサイクルが可能かを指示する。ＲＡＳサイクルの存在は、システム状態に依存している。Ｒ1またはＣ1は、バスサイクルがioXebtタイミング値を使用することを示す。ＲMまたはＣMは、バスサイクルがmgXcbtタイミング値を使用することを示す。
４．サイクル中のアクティブストローブ（w は、ＥＭＥバー／ＬＷＥバーであり、または、ＯＥバーであり、または、アクティブストローブではない。
５．Ａ３１は、セットされるとき、Ｉ／Ｏ装置を選択し、クリアのときＩ／Ｏ装置をデセレクトする（ａ＝プログラム供給値、０＝強制ゼロ）
６．データは、最初の４つのサイクル中にデバイスから収集されＭＩＦに記憶され、５番目のサイクル中にＭＩＦによってメモリへ書き込まれる。最初の４つのサイクル中に書き込まれたデータは、５番目のサイクル中に置換される。
７．データは、最初のサイクル中にメモリからＭＩＦへ収集され、最後の４つのサイクル中にＭＩＦによってデバイスへ書き込まれる。ＯＥバーは、メモリがバスをドライブしないようにするために、最後の４つのサイクル中に抑制される。
８．データは、最初のサイクル中にデバイスから収集され、ＭＩＦに記憶され、最後の４つのサイクル中にＭＩＦによってメモリへ書き込まれる。最初のサイクル中に書き込まれたデータは、２番目のサイクル中に置換される。
９．データは、最初の４つのサイクル中にメモリからＭＩＦへ収集され、最後のサイクル中にＭＩＦによってデバイスへ書き込まれる。ＯＥバーは、メモリがバスをドライブしないようにするために、５番目のサイクル中に抑制される。
【０４７４】
2006024233.tif 000064
【０４７５】
ＣＰＵリセット状態は、次のようなコンフィギュレーションを発生する。
スタックは初期化されていない
すべての割込み、トラップ、故障、ＤＭＡｓおよびＤＭＡエクスパイアレイションディスエーブル
ＶＲＡＭメモリグループは、メモリグループ３に対してセット、ＶＲＡＭオプションはセットされていない
ＲＡＳサイクルを引き起こすハイアドレスビット比較に含まれるＶＲＡＭメモリグループ
リフレッシュは、メモリグループ０タイミングを使用するすべてのグループについてイネーブルされる、ゼロで開始するリフレッシュアドレスビット
ポステッドライトディスエーブル
Ａ３１＝１のときＲＡＳサイクルを起こす
ハイアドレスビット変更のときＲＡＳサイクルを起こす
ハイアドレスビット比較に含まれるＡ３１
１つのメモリグループを有するメモリグループ（ＳＭＢ）モード当りの単一メモリバンク
入力ビットは、バスから取られる
メモリ故障は、ＡＤＳから取られる
ＯＥバーはディスエーブルされる
すべてのメモリグループはバイトワイドである
すべてのメモリサイズはＳＲＡＭに対してセット
メモリバスサイクルは最大長さに対してセット、実際のＣＡＳサイクル長は、８つの４Ｘ−クロックサイクルのＣＡＳプレチャージでの５１個の２Ｘ−クロックサイクルにセット（xxebtsmum レジスタは、実際に必要とされるようも長いスロットをリクエストする最大にセット）。８つの４Ｘ−クロックサイクルのＣＡＳアドレスホールドタイム。ＣＡＳバーフォールでのＥＷＥバーフォール。１５の２Ｘ−クロックサイクルのＬＷＥバーフォールに対するメモリ書込みデータスタートアップタイム。３９の２Ｘ−クロックサイクルのＥＷＥバーおよびＬＷＥバーライズに対するメモリ書込みデータセットアップタイム。３９の２Ｘ−クロックサイクルのＯＥバーアクティブタイム。４の２Ｘ−クロックサイクルに対するデータホールドタイム／バッファディスエーブルタイム。１６の２Ｘ−クロックサイクルのＲＡＳプレチャージ。２Ｘ−クロックサイクルのＲＡＳアドレスホールドタイム。
【０４７６】
すべてのＩ／Ｏチャンネルタイミングは、最大長さに対してセット（前述のメモリと同じバスサイタル）
リボルビィングＤＭＡ優先順位
デバイス転送タイプのすべては、４バイトのバイト転送デバイスに対してセット
実例としてのシーブーム（ＳｈＢｏｏｍ）ＣＰＵシステム
【０４７７】
実例としてのシステム １
メモリー・グループ０における８ビット巾のＥＰＲＯＭと、２５６Ｋの８ビット巾のＤＲＡＭとを有する最小システムを図６８に示す。メモリー・グループ０とメモリー・グループ１とは使用しているデバイスに適当なタイミングで形成されるべきであり、そして使用しているデバイスに適当にmglds は０×０２に、そしてmglds は０×０２（２５６Ｋ ＤＲＡＭ）にセットされている。他の仕方としては、ディフォルト(default)システムが適当である。このシステムはＥＰＲＯＭから直接ブート（ｂｏｏｔ）でき、そして作動できる。もしくは、ＥＰＲＯＭはＤＲＡＭよりも遅いのが普通であるので、迅速なコード実行のためＥＰＲＯＭをＤＲＡＭにコピーできる。
【０４７８】
実例としてのシステム ２
メモリー・グループ０における３２ビット巾のＤＲＡＭと、ブート・オンリ・メモリーデバイスとしての８ビット巾のＥＰＲＯＭと、Ｉ／Ｏアドレス・デコーダとを有する最小システムを図６９に示す。Ｉ／Ｏアドレス・デコーディングは７４ＨＣ１３７，ラッチ付き３−８デコーダにより実行される。Ａ３１がセットされると、このデコーダは４つのデバイス・セレクトに接続されて供給し、そしてＡ３１がクリヤーであると別の４つのデバイス・セレクトに接続されて供給する。４つのセレクトのセットはＲＡＳプリチャージ中ラッチされ、そしてＣＡＳバーアクチブの間はイネーブルされる。それらは、３２ビット巾メモリー・グループが含まれているときＡ３０とＡ２９とからデコードされ、そして８ビット巾メモリー・グループが含まれているときＡ２８とＡ２７とからデコードされる。Ａ３１がセットされ、そしてその他のデコードされたアドレスビットがクリヤーであるときそのデバイス・セレクトを使用してブート・オンリ・メモリーデバイスとしてＥＰＲＯＭを選択する。
【０４７９】
ＥＰＲＯＭはロケーション０で０×ａ５でプログラムされなければならない。メモリー・グループ０は使用しているデバイスに適当なタイミングで構成されるべきであり、mg0bw は０（セル巾）に、そしてmg0ds は０×０２（２５６Ｋ ＤＲＡＭ）にセットされる。ＲＡＳを使用してＩ／Ｏアドレスをラッチするので、msras31dとmshacdと、msexa31hacはそれらのクリヤーなディフォルト・コンフィギュレーションに残っている。
【０４８０】
実例としてのシステム ３
メモリー・グループ０における３２ビット巾のＳＲＡＭと、メモリー・グループ１における１ＭＢの３２ビット巾のＤＲＡＭと、ブート・オンリ・メモリーデバイスとしての８ビット巾のＥＰＲＯＭと、Ｉ／Ｏアドレス・デコーダとを有するシステムを図７０に示す。ＳＲＡＭのためのＣＡＳアドレスのアドレスラッチングは２つの７４ＡＣＴ８４１透明ラッチにより行われる。ＤＲＡＭとＥＰＲＯＭのアドレス入力は対応するＡＤへ接続できるけれども、そのようにはせずＤＲＡＭとＥＰＲＯＭのアドレス入力もラッチの出力へ接続する。ラッチされたＣＡＳアドレスビットを使って、７４ＦＣＴ１３８Ａ，３−ｉデコーダによりＩ／Ｏアドレス・デコーディングを行う。このデコーダは、Ａ３１がセットされるとき、８つのデバイス・セレクトに接続されて供給する。これらのセレクトはＣＡＳバーがアクチブな間可能化される。それらは、ＤＲＡＭメモリ・グループが含まれているときＡ３０とＡ２９とからデコードされ、そしてＳＲＡＭメモリ・グループが含まれているときＡ２０とＡ２１とからデコードされる。ＥＰＲＯＭが８ビット巾であるので、それらのセレクトはデコードされ、クリヤーなアドレスビットを使ってブート・オンリ・メモリーデバイスとしてＥＰＲＯＭを選択する。
【０４８１】
０×ａ５をロケーション０に置いてＥＰＲＯＭをプログラムしなければならない。mg0bw とmg1bw とを０（セル巾）にセットし、mg0ds を０×０ｆ（ＳＲＡＭ）にセットし、そしてmg1ds を０×０２（２５６Ｋ ＤＲＡＭ）にセットし、使用されているデバイスに適当なタイミングでメモリーグループを構成しなければならない。Ｉ／ＯアドレスをラッチするのにＲＡＳを使わないので、Ｉ／Ｏに含まれるＲＡＳサイクルの数を減少するようmsras31d，mashacd そしてmsexa31hacをセットできる。
【０４８２】
電気的な特性
電力と接地
平均電力要請が少ないとシーブームＣＰＵをＣＭＯＳに装備する。しかし、ＣＰＵのクロック周波数能が高いと、出力の負荷によっては１１アンペアにもなる大きなスイッチング電流を必要とするようになる。こうして、すべてのＶccとＶssとは十分な電力分布のためにはＰＷＢ（プリンテッド・ワイヤー・ボード）内の面に接続されるべきである。
【０４８３】
ｃＶccとｃＶssとが要求するスイッチング電流の特性は内部クロックと出力ドライバーの前置ドライバーによって決められる。内部クロックは、クロック遷移毎に５ＧＨｚの周波数成分で約５００ｍＡを必要とする。出力ドライバーの前置ドライバーは、出力の遷移毎に１ＧＨｚの周波数成分を有する３Ａもの電流を必要とする。パッケージ・ダイアグラムはｃＶccとｃＶssのどちらが内部クロック・ドライバーに近いかを示す。
【０４８４】
ctrVccと ctr1Vssとにより必要とされるスイッチング電流は供給される出力ドライバーと外部に取り付けた負荷とによって特徴づけられる。１６本のピンが一時に切り換わるのと１００ｐＦの平均負荷という最悪の場合を考える。その場合これらのドライバーは出力の遷移毎に３００ＭＨｚの周波数成分を持つ２．６７Ａを必要とする。スイッチング電流要請は外部負荷の減少に実質的に比例して減少する。
【０４８５】
ad Vccと adVssが必要とするスイッチング電力は供給される出力ドライバーと外部取付け負荷とによって特徴づけられる。３２本のピンが一時に切り換わるのと１００ｐＦの平均負荷という最悪の場合を考える。その場合これらのドライバーは出力の遷移毎に３００ＭＨｚの周波数成分を有する５．３３Ａを必要とする。スイッチング電流要請は外部負荷の減少に実質的に比例して減少する。
【０４８６】
パワー・デカップリング
上に説明したようなスイッチング特性であるので、ＣＰＵにおけるパワー・デカップリングを必要とするのが典型である。ＥＳＲの低い表面装着キャパシタが好ましい。一般的に、小型で、値の小さいキャパシタの周波数特性の方が大型で、値の大きいキャパシタの周波数特性よりも良く（すなわち、直列インダクタンスは少なく、自己共振周波数は高くなる）、小さいのから大きいキャパシタ値を寄せ集めて使うのが好ましい。最小値のキャパシタとＰＷＢパワー・プレーンにおけるローカル・チャージ（典型的には約１００pF／in2）がスイッチング信号の初期の最高周波数成分の電流要請に応えて供給し、他方最大キャパシタは低い周波数成分を供給する。適当なデカップリングもＥＭＣの問題を小さくする。
【０４８７】
デカップリング・キャパシタが必要とする電荷供給はＣ＝Ｉ／（ｆΔＶ）から計算できる。ここで、Ｉは必要とされる電流、ｆは周波数、ΔＶは許容電圧降下であって、典型的には０．１Ｖである。cVccと cVssとは内部クロックに対して１００ｐＦを必要とし、そして出力ドライバーの前置ドライバーに対して０．０３μＦを必要とし、他方ctr1Vccと ctr1Vssとはad Vccと adVssと一緒になって０．２４μＦを必要とする。これらの要請は、以下のようにしてほぼ満たされる：
４つの１００ｐＦＮＰＯキャパシタもしくは同容量の小型キャパシタを一つづつcVccとcVssのセットの各々にできるだけ近づけてシーブームＣＰＵパッケージとＰＷＢの同じ側に、適当に装着し、
４つの４７００ｐＦ×７ＲキャパシタをシーブームＣＰＵパッケージとは反対のＰＷＢの側に適当に装着し、
４つの４７００ｐＦ×７ＲキャパシタをシーブームＣＰＵパッケージとは反対のＰＷＢの側に、上に述べたように装着し、そして
６つの０．０４７μＦ×７Ｒキャパシタをctr1Vccと ctr1Vssの周りに、そしてad Vccと adVssの中に、これらのピンへできるだけ近づけて分散させて、装着する。
【０４８８】
上記は本質的に最悪の場合の要件を表している。もし平均出力ドライバーの負荷が１００ｐＦではなく５０ｐＦであると、６つの０．０４７μＦ×７Ｒキャパシタを３つないし４つに減らすことができる。これに代わる他の技術的に等価な仕方でもよい。
【０４８９】
シーブームＣＰＵパッケージと同じＰＷＢの側にキャパシタを取り付けることにより長さ約２５ミルの接続トレースにでき、他方反対のＰＷＢの面にキャパシタを取り付けると長さ約１００ミルを越えるトレースを必要とする。上記のスイッチング周波数ではトレースの長さの差がデカップリング効果にかなりの差異をつくりだす。パッケージとキャパシタパワーと接地接続とを、同じ理由で、できれば、ＶＩＰ（via-in-pad）でつくるべきである。
【０４９０】
推奨する接続
総ての出力ドライバーはメモリシステムの重い容量性負荷を直接駆動するように分担させられていて、バッファリング・ロジックに関連の外部要素と進行遅延を最小とする。しかしながら、負荷が増すと消費電力も増すことになり、そしてシーブームＣＰＵの作動温度が作動限界を越えないことを保証する手段を講じなければならなくなる。重いＣＰＵバス負荷を有するシステムはヒート・シンクもしくは強制換気を必要とすることがある。出力ドライバー電流を小さくすることは全消費電力を小さくすることにはならない。電力消費は出力負荷によって変わり、信号変遷エッジ・レートによって変わらないからである。
【０４９１】
システムのコストを低減するため総ての入力の内部回路はもし入力が使われなければ、安定した入力電圧を与える。こうして、使用されていない入力はプル・アップを必要としない。
【０４９２】
ＲＥＳＥＴバーはcVccに対し約１０Ｋオームのプル・アップを含んでおり、そしてＲＥＳＥＴバーはＣＭＯＳシュミット・トリガである。
【０４９３】
ＭＦＬＴバーはcVccに対し約２０Ｋオームのプル・アップを含んでいる。
【０４９４】
ＩＮ〔７：００〕はそれぞれcVccに対しＴＢＤＫオームのプル・アップを含んでいる。
【０４９５】
ＡＤはそれぞれ、cVccとcVssに対し約５Ｋオームのインピーダンスを持つリピータを有している。これらは最後のバス状態を、ピンがその他の仕方で駆動されていないとき、維持する。
【０４９６】
クロック
シーブームＣＰＵはプロセッサの周波数の半分の外部ＣＭＯＳ発振器を必要とする。この発振器は内部で倍になって（２×クロック・サイクル）、ＭＰＵとＩＯＰとを作動し、そして再び倍になって微粒のプログラマブルなバスタイミング（４×クロック・サイクル）を与える。
【０４９７】
経済的な発振器は６０／４０だけの保証されたデューティ・サイクルを有しているのが典型である。クロックサイクルのどうにか半分がＣＰＵが作動していると見られるクロック周期において現れるのが普通である。こうして、１００−ＭＨｚＣＰＵは６０／４０発振器で８０ＭＨｚへ制限されるであろう。８０ＭＨｚ、２×−クロックではその４０％クロック周期は１０ｎｓとなるからである。１００−ＭＨｚの速度を得るには遥に高価な発振器を必要とする。システムのコストを低減し、そしてシステムの性能を高めるにはＣＰＵの内部に位相ロック・ループ回路を使って発振器入力を５０／５０デューティ・サイクルでロックして安定させる。
【０４９８】
選択された２×−クロック周波数は用途とシステムのハードウエアの要請によって変わる。ＩＯＰが適当なタイミングをつくれるよう、もしくはＭＩＦがバスタイミングを最適化するようクロック周波数を選定する。例えば、もしもシステムが３５ｎｓバスサイクルを必要とするのであれば、２×−クロックサイクルの４倍の長さのサイクル（４０ｎｓ）で１００ＭＨｚで作動するよりも２×−クロックサイクルの３倍の長さのサイクル（３５．７ｎｓ）で８４ＭＨｚで作動する方が有効である。
【０４９９】
2006024233.tif 000065
【０５００】
2006024233.tif 000066
【０５０１】
2006024233.tif 000067
【０５０２】
2006024233.tif 000068
【０５０３】
2006024233.tif 000069
2006024233.tif 000070
2006024233.tif 000071
【０５０４】
2006024233.tif 000072
【０５０５】
2006024233.tif 000073
【０５０６】
2006024233.tif 000074
【０５０７】
2006024233.tif 000075
【０５０８】
2006024233.tif 000076
【０５０９】
2006024233.tif 000077
【０５１０】
2006024233.tif 000078
【０５１１】
2006024233.tif 000079
【０５１２】
2006024233.tif 000080
【０５１３】
2006024233.tif 000081
【０５１４】
付録Ｃのブートコードを参照のこと。
【０５１５】
ここに組み込まれていない発明の範囲についての、本発明のこの実施形態の更なる詳細は、「ShBoomTMマイクロプロセッサ」（Poway CA 92064，1995，Patriot Scientific Corporation）から入手可能である。この明細書に示した全ての出版物及び特許出願は、各個々の出版物又は特許出願がリファレンスとして組み入れられるように特に示されているように、同じ範囲がリファレンスとしてここに組み入れられる。
【０５１６】
本発明は十分に記載されているが、添付した特許請求の範囲の精神又は範囲を逸脱せずに多くの変形及び修正をすることができることは当業者にとって明らかであろう。
【図面の簡単な説明】
【０５１７】
【図１】本発明によるマイクロプロセッサー中央処理装置（ＣＰＵ）のブロック線図である。
【図２】図１に示すマイクロプロセッサーＣＰＵのマイクロプロセッシングユニット（ＭＰＵ）部のブロック線図である。
【図３】図２に示すＭＰＵ部のレジスタの図解的表示である。
【図３ａ】図３に示すレジスタの幾つかを使った加算演算の図解的表示である。
【図４】図１に示すＣＰＵのためのメモリーマップの図解的表示である。
【図５】図１に示すＣＰＵのためのメモリーにおけるスタック例外領域の図解的表示である。
【図６】図２のＭＰＵのための命令形式の図解的表示である。
【図６ａ】図２のＭＰＵで使われる浮動小数点数形式の図解的表示である。
【図７】図５に示すモードレジスタのより詳細な図解的表示である。
【図８】図１に示す入出力プロセッサー（ＩＯＰ）のブロック線図である。
【図９】図８のＩＯＰにおけるレジスタ使用の図解的表示である。
【図１０】図８のＩＯＰのための命令形式の図解的表示である。
【図１１】図１に示す直接記憶アクセス制御装置（ＤＭＡＣ）のブロック線図である。
【図１２】図１のマイクロプロセッサーで利用される入出力（Ｉ／Ｏ）チャネル転送データ形式の図解的表示である。
【図１３】図１に示す割り込み制御装置（ＩＮＴＣ）のブロック線図である。
【図１４】図８に示すビット入力レジスタioinのためのビット入力のブロック線図である。
【図１５】図８に示すビット出力レジスタiooutのためのビット出力のブロック線図である。
【図１６】図１のマイクロプロセッサーによるメモリーアクセスに使われるグループ選択及びバンク選択ビットの図解的表示である。
【図１７】図１のマイクロプロセッサーを用いるシングルメモリーバンクシステムのブロック線図である。
【図１８】図１のマイクロプロセッサーを用いるマルチメモリーバンクシステムのブロック線図である。
【図１９】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図２０】図１に示すオンチップ資源レジスタの図解的表示である。
【図２１】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図２２】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図２３】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図２４】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図２５】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図２６】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図２７】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図２８】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図２９】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３０】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３１】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３２】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３３】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３４】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３５】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３６】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３７】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３８】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図３９】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４０】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４１】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４２】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４３】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４４】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４５】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４６】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４６ａ】図２０に示すオンチップ資源レジスタと予約されたレジスタアドレスのより詳細な図解的表示である。
【図４７】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図４８】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図４９】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５０】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５１】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５２】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５３】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５４】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５５】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５６】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５７】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５８】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図５９】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図６０】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図６１】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図６２】図１７−１８のシステムを使うメモリーアクセスのための信号タイミング線図のセットである。
【図６３】図１のマイクロプロセッサーを包含するシステムのブロック線図である。
【図６４】図１のマイクロプロセッサーを包含するシステムのブロック線図である。
【図６５】図１のマイクロプロセッサーを包含するシステムのブロック線図である。
【図６６】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図６７】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図６８】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図６９】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図７０】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図７１】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図７２】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図７３】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図７４】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図７５】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図７６】図１のマイクロプロセッサーの動作を理解するのに役立つ信号タイミング線図のセットである。
【図１】
2006024233.tif 000082
【図２】
2006024233.tif 000083
【図３】
2006024233.tif 000084
【図３ａ】
2006024233.tif 000085
【図４】
2006024233.tif 000086
【図５】
2006024233.tif 000087
【図６】
2006024233.tif 000088
【図６ａ】
2006024233.tif 000089
【図７】
2006024233.tif 000090
【図８】
2006024233.tif 000091
【図９】
2006024233.tif 000092
【図１０】
2006024233.tif 000093
【図１１】
2006024233.tif 000094
【図１２】
2006024233.tif 000095
【図１３】
2006024233.tif 000096
【図１４】
2006024233.tif 000097
【図１５】
2006024233.tif 000098
【図１６】
2006024233.tif 000099
【図１７】
2006024233.tif 000100
【図１８】
2006024233.tif 000101
【図１９】
2006024233.tif 000102
【図２０】
2006024233.tif 000103
【図２１】
2006024233.tif 000104
【図２２】
2006024233.tif 000105
【図２３】
2006024233.tif 000106
【図２４】
2006024233.tif 000107
【図２５】
2006024233.tif 000108
【図２６】
2006024233.tif 000109
【図２７】
2006024233.tif 000110
【図２８】
2006024233.tif 000111
【図２９】
2006024233.tif 000112
【図３０】
2006024233.tif 000113
【図３１】
2006024233.tif 000114
【図３２】
2006024233.tif 000115
【図３３】
2006024233.tif 000116
【図３４】
2006024233.tif 000117
【図３５】
2006024233.tif 000118
【図３６】
2006024233.tif 000119
【図３７】
2006024233.tif 000120
【図３８】
2006024233.tif 000121
【図３９】
2006024233.tif 000122
【図４０】
2006024233.tif 000123
【図４１】
2006024233.tif 000124
【図４２】
2006024233.tif 000125
【図４３】
2006024233.tif 000126
【図４４】
2006024233.tif 000127
【図４５】
2006024233.tif 000128
【図４６】
2006024233.tif 000129
【図４６ａ】
2006024233.tif 000130
【図４７】
2006024233.tif 000131
【図４８】
2006024233.tif 000132
【図４９】
2006024233.tif 000133
【図５０】
2006024233.tif 000134
【図５１】
2006024233.tif 000135
【図５２】
2006024233.tif 000136
【図５３】
2006024233.tif 000137
【図５４】
2006024233.tif 000138
【図５５】
2006024233.tif 000139
【図５６】
2006024233.tif 000140
【図５７】
2006024233.tif 000141
【図５８】
2006024233.tif 000142
【図５９】
2006024233.tif 000143
【図６０】
2006024233.tif 000144
【図６１】
2006024233.tif 000145
【図６２】
2006024233.tif 000146
【図６３】
2006024233.tif 000147
【図６４】
2006024233.tif 000148
【図６５】
2006024233.tif 000149
【図６６】
2006024233.tif 000150
【図６７】
2006024233.tif 000151
【図６８】
2006024233.tif 000152
【図６９】
2006024233.tif 000153
【図７０】
2006024233.tif 000154
【図７１】
2006024233.tif 000155
【図７２】
2006024233.tif 000156
【図７３】
2006024233.tif 000157
【図７４】
2006024233.tif 000158
【図７５】
2006024233.tif 000159
【図７６】
2006024233.tif 000160