... | ... | @@ -15,15 +15,15 @@ Verilog で書いてみないことにはわからないことも多々あるの |
|
|
## プロセッサの構成
|
|
|
|
|
|
実装する際には、なにかひとつ、参考にするブロック図を持っていた方がいいです。下の図は、ブロック図の一例です。
|
|
|
教科書、インターネット上にも同様のものはありますから、それを参考にしても大丈夫です。自分で一から書いてみるのもよいでしょう。
|
|
|
教科書、インターネット上にも同様のものはありますから、それを参考にすることも可能です。自分で一から書いてみるのもよいでしょう。ただし、命令セットによっては、プロセッサに必要とされるものが異なりますから、十分に注意してください。
|
|
|
|
|
|
![RISC-V_Block](uploads/e65c729f18d6dd35f8647ea70719609e/RISC-V_Block.png)
|
|
|
|
|
|
上の図では、動作を大きく五つに分割しています。詳細な動作は授業で習ったかと思いますので省略します。わからない場合、教科書を参照してください。
|
|
|
上の図では、動作を大きく五つに分割しています。詳細な動作は授業で習ったかと思いますので省略します。
|
|
|
また、上の図では各種制御線(例えば、ALU 機能はどれを使うのかの指定など)は省略されています。
|
|
|
|
|
|
1. Fetch Instruction (F): 命令メモリにアクセスし、命令語をとってくる部分です。
|
|
|
2. Register Read(R): 命令語で指定された、必要なレジスタに書き込まれている値を取り出す部分です。それと並行して即値の解読や次の Execution ステージ用の制御線を作ることが多いので、Decode (D) ステージと呼ばれることも多いです。
|
|
|
2. Register Read (R): 命令語で指定された、必要なレジスタに書き込まれている値を取り出す部分です。それと並行して即値の解読や次の Execution ステージ用の制御線を作ることが多いので、Decode (D) ステージと呼ばれることも多いです。
|
|
|
3. Execution (X): 各種計算を行う部分です。
|
|
|
4. Memory Access (M): (必要であれば)データメモリへアクセスし、データを読み込んだり書き込んだりする部分です。
|
|
|
5. Write Back (W): 得られた結果をレジスタに書き戻す部分です。
|
... | ... | |