ARMの3段パイプライン構造

リターンアドレスが特別である割り込み処理にリターンについて多くのコンパイルを参照してください、アクションのオリジナルラインの影響を考えます。そこで、我々は、ARMパイプラインの下で彼らの学習を統合することを決定しました。

ARM7プロセッサ3段パイプラインは0.9MIPS / MHzの命令処理速度を提供し、プロセッサの命令ストリームの速度を増加させます。

PS:

MIPS(百万命令当たり二)が示してどのように多くの毎秒100万命令。たとえば、0.9MIPS、それは毎秒90万指示を表しています。

MIPS / MHzのCPUは0.9MIPS / MHzで毎秒90万命令を実行し、1MHzの周波数でCPUの実行かどうかを示すよう、行うことができるどのように多くのMIPSのMHzの動作速度当たりで表しました。

20MHzの周波数でCPU場合は、毎秒1800万の指示を実行することができます。MIPS / MHzのは、十分にCPUの速度を反映することができます。

命令は三の段階で実行されるように、3段パイプラインは、3つのパイプラインステージを用いて、(PCはプログラムカウンタである)上に示します。

ロードメモリから命令をフェッチ⑴

⑵デコード命令が識別され実行されます

⑶実行命令を処理し、結果を登録する書き込み

以前、単一の51を学んだ後、それのプロセッサは、唯一の完全な命令を読み出して実行することができますので、比較的簡単なので、次の命令を実行します。このように、PCは常に「実行」コマンドを指摘しています。

命令処理は、上述した3つのステージに分けられるので、ARM7のためには、3段パイプラインであるからです。

したがって、次のように実際のプロセスがある場合:最初のARM命令が第2命令で実行された状態で復号化され、そして第3の命令は、メモリからフェッチされます。

したがって、ARM7パイプラインは、最初の4つの命令を取るときにのみ、最初の命令の実行が完了していません。

鮮やか下図の3段パイプライン処理機構を示します

以下は、キーワードです:いいえのどのような状態のプロセッサ、プログラムカウンタR15(PC)は、常に、「実行されている」または命令を「コーディング」されるのではなく命令に、命令を「フェッチしている」ポイント。

人々は、通常、基準点、すなわち、現在の第1命令として実行されているの習慣を命令します。

だから、PCは常に、第3の命令を指します

あるいは、PCは常に、現在実行中の命令アドレスに加えて2つの命令のアドレスを指します。

 

プロセッサは、ARM状態にあるときにPCは、命令アドレス+ 8つのバイトを、実行されるように、各命令は、4バイトです。

PC =実行バイト現在位置+ 8

プロセッサがThumb状態にあるときに、各命令であること、2バイト、PCが実行されているプラ​​ス命令アドレスの4バイトです。

PC =現在の位置+のプログラム実行の4つのバイト

問題の非常に良い説明の次の例。

 

[無地]  平面図 のコピーを
 
 
 
 
  1. 0x4000のADDPC、PC、#4、命令実行され、書き込みアドレス値PCのPC + 4 
  2. 0x4004 ...;命令がデコードされています 
  3. 0x4008 ...;フェッチされた命令され、PC = 0x4008 
  4. 0x400C ...; PC + 4 = 0x400C 

上記の説明は、パイプラインの唯一の完全な性能が満たされていることがさらに付記とき命令のクロックサイクル当たりの完全な実行(単一サイクル命令のみ)に命令。

プログラムのジャンプが発生した場合は、パイプラインがクリアされ、それはパイプラインが再び満たされる作るために、いくつかのクロックがかかります。したがって、可能性は、プログラムの効率を向上させることができます以下のジャンプ命令を使用します

;第2の復号(実行すべき命令を識別する); 3行う(処理1は、フェッチ(メモリからのロード命令):プログラムカウンタPCの代表三のパイプライン・ステージの使用は、そう命令は3つのフェーズに分割されています。命令レジスタに結果バックを書き込みます)。そしてR15(PC)は、常に、「実行されている」というコマンドよりも、コマンドを「フェッチしている」または「デコード」コマンドであること指します。PCが常に第3の命令を指すよう一般的に、人は習慣的に、現在の第1の命令と呼ばれ、「命令を基準点として実行されている」に同意しました。ARM状態は、各命令が4バイト長である場合、命令アドレス+ 8バイト、すなわちのアドレスにPCが常に指すように:PC = +8に現在のプログラムの実行。

    フェッチアドレスに今ポイントを実行し、PCを実行することは、その後の翻訳手段は、CPUの命令アドレスであることはPC-4(ARM状態を想定し、AであるながらARM命令は三行、フェッチされた変換手段であります命令4バイト)、命令のアドレスが実行され、CPUは、PC-8、アドレス及び命令アドレスは現在8の差によって実行されることによって指されるPCです。
    割り込みが突然発生した場合は、PCアドレスの保存です

    あなたが知っているので、返された場合、戻りPCは、その後、中間命令が実行されていないので、使用SUB PCのLR-IRQ#4がある場合もございます。

 

記事ソース:のhttp://blog.csdn.net/enlaihe/article/details/7598941

おすすめ

転載: www.cnblogs.com/slf-L/p/12038046.html