/var/log/hdk.log コメント
2010/07/22 のコメント
2010/07/22 の日記を表示する
- 2010/07/23 23:47:05 すずき さん 『 奇数アドレスに 2バイト長の命令があると、ロードに 2 バスサイクルかかる(マニュアル 4.1)から、プリフェッチが間に合わないんじゃないか、と予想。 』
- 2010/07/24 09:39:29 hdk さん 『 CALL 先は偶数番地にしてるし、PUSH;DAA;POP;STOSB は全部 1 バイト命令なので関係ないかな。 』
- 2010/07/24 15:36:05 きらね さん 『 MPU 68000 は、奇数番地からの命令を実行させようとすると例外が発生して、実行できなかった。
』
- 2010/07/24 16:45:26 hdk さん 『 x86 は 8086 時代からの互換性の関係で、奇数番地も何も関係なく書けるようになっています。(486 以降は奇数番地へのアクセスで例外を起こす機能がありますが命令フェッチとは無関係。) 68000 は、最小命令サイズが 16 ビットなんですね... 』
- 2010/07/31 07:46:14 すずき さん 『 よく考えたらバイト数より、命令数を見る方が正しそう?
CALL 命令の後続で ALU(ジャンプ先アドレス演算)やメモリ(ジャンプ元アドレス待避)を使っているので CALL がストールして、その間にプリフェッチが進むので、8命令より多く読めてしまうとか? 』 - 2010/07/31 07:47:03 すずき さん 『 V30 のプリフェッチタイミングやらパイプラインやら計算資源の数なんて設計者しか知らないので推測に過ぎませんが…。 』
- 2010/07/31 22:42:24 hdk さん 『 命令数は 1 バイト命令で 20、2 バイト命令で 10、INC でも DAA でも結果は変わりませんでした。DAA は計算時間が長い命令なので、そこでプリフェッチしているのは間違いないんですが、その後の書き込み直前にフェッチしても 20 バイトにはならないはずですよね... 』
コメントを書く