2017-02-11 11 views
-1

Processor registerInstruction registerのCPUの違いは何ですか?それぞれは何のために使用された? はプロセッサレジスタの命令レジスタ部分ですか?プロセッサレジスタと命令レジスタの違いは何ですか?

+1

これらの2つのレジスタについてはまったく混乱していますか?なぜ違いはありませんか?何がないと思いますか? – Downvoter

+0

問題ありません。あなたの質問に関しては、「指示書」によって[this](https://en.wikipedia.org/wiki/Instruction_register)を意味しますか?特定の質問で使用している用語にハイパーリンクを付けて、皆さんがあなたが話していることを知っていることを確認するといいでしょう。 – Downvoter

+0

ええ、まさにその1、確かにこれはこのトピックの私の最初の日なので、私はそれらの用語がよく認識されていると思った。 – Maysara

答えて

0

あなたの質問にそのようなリンクを使用するのは嫌になります。この場合、リンクは適切な説明を提供します。

ARMプロセッサ(複数の場合があります)を勉強している場合は、すでにプロセッサレジスタを理解しています。それらの別の名前は汎用レジスタです。彼らはプログラム内の変数に非常によく似たこの高いレベルの考え方にあります。 ARMではこれらはr0、r1、r2、r3などとなるでしょう

命令レジスタはもっとコンセプトです。命令が生きる場所はちょうど1つではありません。それを除いて。どのようにCPUを動作させる必要がありますか?それは、メモリ、フラッシュまたはラムから命令をフェッチしなければならない、またはそれらをそれらに任せることができる。次に、ロジックはそれらのビットを検査し、どの命令であるのかを判断し、そこから何をするべきかを判断する必要があります。

ARMv5のARMアーキテクチャリファレンスマニュアル、または基本的に見つかった最も古いものから始めることをお勧めします。その古いものは、始動のためのより良いものであり、あとで来るすべての保護および他の機能があまりにも複雑ではなく、ナットおよびボルトをカバーする。

だから親指の命令を追加することができます。

add r1,r2,r3 

私はそれを組み立てた後、私は

Disassembly of section .text: 

00000000 <.text>: 
    0: 18d1  adds r1, r2, r3 

そして、私はトップ7ビットは3つのレジスタを記述した3ビットの0b0001100その後、三つのグループであることが予想まさにであるARMのARMを見を得る分解、2つの入力オペランドがデスティネーションであり、必ずしもその順序ではない。

これでプロセッサはどのように役立ちますか?まず、メモリから命令を取得しなければならないので、それらのビット0x18D1を得るために何らかの種類の読み出し(フェッチは単なる読み出しです)をメモリから行います。次に、それらのビットをデコードする必要があります。まあ、それらのビットをデコードしている間に、クロックサイクルの期間より長くこれらのビットを格納する必要があります。それは一般にレジスタにラッチされることを意味します。まあ汎用レジスタはどこに行くのかわからない、この命令を格納する必要があるプロセッサのどこかにある。そして、それを命令レジスタと呼んでいたいなら、そうしてください。プロセッサに一時的に格納されている間に、これらのビットをデコードすることができます。ロジックによっては上位7ビットが認識され、「だれでも3つのレジスタが追加されます」というメッセージが表示され、プロセッサは2つの入力レジスタを取得する必要があります。汎用またはウィキペディアの用語を使用する、プロセッサレジスタ。これらはまた、aluにフィードしたり、加算回路にフィードする他のレジスタにラッチされるかもしれません。あるいは、その必要がなくても、設計に依存します。加算が行われ、結果はデスティネーションレジスタ、別のプロセッサレジスタに移動する必要があります。さらに別のレジスタ、プロセッサ状態レジスタ(総称して)またはPSR、またはARM用語CPSRに進むフラグとともに、

パイプラインでは複雑になりますが、パイプラインはドキュメンタリーで見た組立ラインだけではなく、おそらく最初の知識を持っています。パイプラインはあなたのwikipediaページを命令レジスタのラインで使用しています。プログラミング用語を使用して配列を作成することができます。命令はフェッチされ、パイプ内の最初のステージに当たって、アセンブリラインのように各ステージで異なるタスクが発生します。ある時点で命令をデコードし、ある時点でオペランドが要求され、表示されます。出力はフラグと共にどこかに行く必要があります。この追加がパイプを通って理想的にはそのすぐ後ろを移動する間は、もう1つの追加があります。組立ラインの赤い車のように、白と緑がそれぞれ同じステップを踏んで、車輪をドアなどに置いてください。

+0

あなたの最初の段落について:私はOPにリンクを追加するようアドバイスしました。もしそれがどうにかしていけば、それは私のせいです。私はなぜそうなるのか分かりません。とにかく、最初の文章ではそれは悪いと言い、2番目の文ではそれが良いと言います。私はあなたがここで何を意味するのか本当に知りません。 – Downvoter

+0

私はあなたにそれを尋ねた。外部リンクの問題は、変更または離脱であるため、SOサーバーには存在せず、質問または回答に関連する場合、スレッド全体がその値を失います。私は、リンクなしでこの質問を理解しようとすることの難しさを理解していると同時に、あなたはこれをあまりにも曖昧にして、まったく閉じたかもしれません。私たちはリンクがなければ問題を理解できませんでしたが、リンクはそれらの用語を説明するのに十分な仕事をしています。私の答えにもかかわらず、私はまだその質問を知らないのです。 –

+0

皆さんありがとう、本当に私はこのすばらしい会話からたくさんのことを学びました:) @old_timer HOW AMAZING U R!本当にあなたの答えは私をたくさん助けます – Maysara

関連する問題