#68 Article 3646 Posted at 1994/05/05 01:40:11 by MSP-Iris (MAP4370) [DX4]
Subject: Re:*5 4倍速ではないぞ、DX4 /3633 ... /3622 /3621
>仮想86モードは、IN/OUTがやたら遅いと聞きましたが、決してネイティブだから「速い」
>なんて事はないわけですね。
こういう話は具体的に数字をあげましょう。
8086 286 386 486
IN accum,immed8 10 5 RM :12,VM :26 RM :14,VM :27
PM1: 6,PM2:26 PM1: 9,PM2:29
accum,DX 8 5 RM :13,VM :27 RM :14,VM :27
PM1: 7,PM2:27 PM1: 8,PM2:28
OUT immed8,accum 10 3 RM :10,VM :24 RM :16,VM :29
PM1: 4,PM2:24 PM1:11,PM2:31
DX,accum 8 3 RM :11,VM :25 RM :16,VM :29
PM1: 5,PM2:25 PM1:10,PM2:30
(RM:リアル、VM:バーチャ86、PM1:プロテクト(CPL<=IOPL)、PM2:プロテクト(CPL>IOPL))
他に486の方が286より消費クロックが多い命令は、シフト/ローテート reg,1
とか、6回以内の REP MOVSB/W 、多くの MUL reg8 と一部の MUL reg16 、全ての DIV
reg8/16 、こんなところが有名です。
あと、キャッシュ・ミス・ペナルティとか、1クロック命令を大量に連続で実行
するとプリフェッチ使い切っちゃうとか、486はいろいろと難しいです。
>ハードメーカがコンパイラメーカと結託して、高速に実行するコードの情報を用いて
>「我が社のコンパイラの方が速いコードを吐き出します!」なんて宣伝文句も
それまで3クロック消費だったNOPが、486のBステップから1クロックに
なったのは、MASMがお馬鹿なNOPを大量に吐き出すからだという噂もありま
すが。真偽のほどは知りません。(^^ゞ
>お返事どうもありがとうございました。
いえいえ、これからいろんなボードに顔をだそうと思っていたので、まさに「渡
りに船」でした。
MAP4370 MSP-Iris