グダグダ喋ってたら時間が過ぎてしまった,,反省。
以下適当にメモなど。
概要
- 日時:'10/04/11 17:30~21:00
- 場所:短歌会館
- 参加者:3人
- 内容:6.4~6.5読み合わせ
6.4 データ・ハザードとフォワーディング
- 銀河ヒッチハイクガイドが載ってる!ひゃほーい!
- どういう条件の時にフォワーディングするのか?という話。
- フォワーディングってのは,演算結果をレジスタに書き込んで完了するよりも前に,次の命令でその値を使いたくて先行してそっちに演算結果を投げること。
- レジスタの指定方法がよく分からなくなってきた件。$ってなんだっけ?
- Rd,Rs,Rtって何?→命令のフィールドにそういうのがあったはず。
- ForwardA=10,ForwardB=10→フォワードする値って-20じゃないの?→10進数じゃなくて2進数だった!2bitの制御信号だ!これはひどい!
- もうそろそろパタヘネが名著じゃない気がしてきたよ。
- 制御信号ってマルチプレクサでゴリ押しするだけ?もうこれらってif文ガリガリ書くだけだよね?
6.5 データ・ハザードの制御:ストール
- 最初に成功しなかったら,成功の定義を変えよ。→出来上がった物が仕様です,とかw
- フォワーディングで救済できないのは,load命令が書き込むのと同じレジスタを,直後の命令が読み出そうとする時。
- これはもうNOPするしかない。NOPとはNo Operationの略で,load命令が完了するのを次の命令が何もせず待つこと。(何もしないことをする,ということ。)
- ここの節を読む限り,MIPSはハードウェアレベルでNOPするようになっている。仮にNOPという命令があるものとして,ソフトウェアレベル(コンパイラ)でNOPを強制挿入することも出来るんじゃね?メリット/デメリットとかあるのかな?→たぶんRISCの場合はハードウェアでやる方がいいんじゃね?知らんけど。

コメントする