アカウント名:
パスワード:
直接的には、それだけバイナリ互換が重要だったからなんだけれども386のアーキテクチャ設計が非常に優秀だったからってのがあるでしょう。
で、ARMがx86を殺すかどうかなんとも言えないと思うけどな。
386が優秀ではないとは言わないが、i686で採用した内部RISCによって延命できたと思うよ。別の見方をすると、CPUシリーズで異なるuOPを吸収しているのがx86じゃないかな。生物界でも、優秀な種が生き残っているというわけでもなく、柔軟性があったからという例は多い。
私はi386より68Kの方が優秀だったと思う。
> 私はi386より68Kの方が優秀だったと思う。i386比でなら68kは善戦していますが、最短命令が1ワード(2バイト)と言うのは、i386の最短命令長1バイトと比べてメモリ貧乏だった当時はコード密度の点で厳しかったです。また、i386は自力で仮想記憶をサポートしていますが、68kは68010に外部MMUを追加しなければ仮想記憶をサポートできなかったり、命令セットが32bit化けを最初から想定しているなど掲げた理想は高かったのに比べて実装が追いついていない面もありました。
アーキレベルの残念な点は・CLR命令でRMWバスサイクル発生させる( MOVEQ #0, DST で十分)・相対ジャンプのオフセットが何故バイト?奇数だとアドレスエラーになるのでワードで指定すれば倍の範囲にジャンプできた・直交性のあるアーキを標榜する割にデータレジスタとアドレスレジスタが別などなど、それほど良いプロセッサかどうかは疑問。
結局、i386と競ったというのが伝説の原因?
> ・相対ジャンプのオフセットが何故バイト?奇数だとアドレスエラーになるのでワードで指定すれば倍の範囲にジャンプできた
PC相対アドレッシングもバイト単位でしょ同じ加算器を使ってんのよ
> ・直交性のあるアーキを標榜する割にデータレジスタとアドレスレジスタが別
単一の大きなレジスタファイルは遅い、アドレッシングに4ビット必要になり命令のレジスタ指定フィールドが足りなくなる、分割するとバンド幅倍増->データとアドレス計算を並行に実行可能とちゃんと考慮した上での設計になっている
x86も同じくよく練られた設計だし、教条主義的でぼくのかんがえたさいきょうのマイコンみたいなところのある68kよりもx86のほうが美しいとさえ言えるね
> PC相対アドレッシングもバイト単位でしょ> 同じ加算器を使ってんのよ
LEAも同じ加算器使ってますよね
> 単一の大きなレジスタファイルは遅い、アドレッシングに4ビット必要になり命令のレジスタ指定フィールドが足りなくなる、分割するとバンド幅倍増->データとアドレス計算を並行に実行可能とちゃんと考慮した上での設計になっている
それこそLEAを駆使したり、この特徴を活かすのが高速化の肝でした。
> x86も同じくよく練られた設計だし、教条主義的でぼくのかんがえたさいきょうのマイコンみたいなところのある68kよりもx86のほうが美しいとさえ言えるね
全面的に同意見です。
同時代のZ8000あたりと比べてもx86は、いろいろな意味で現実的な選択の積み重ねで出来てると思います(レジスタごとに性格付けがあるのは意外とコード書きやすいし)。
286で完成しちゃって386以降はやや無理目な拡張という印象もあります32ビットセグメントでセグメントサイズが64KB単位になったのは、メモリマップドファイルがやりにくくなったなどの弊害があったし当初の予定では32ビットは432の担当とはいえ、ちょっとギチギチすぎたかな
16bitセレクタ・32bitオフセットですよね。メモリマップドファイルは妨げていなかったと思います(結局フラットモデルに落ちつくんですが)。
そうそう、セグメントレジスタをテンポラリレジスタに使っていたコードが激遅になった記憶があります。
386になってセグメントのリミット値が20ビットに拡張され、リミット値の単位を1バイトまたは4Kバイトに指定できるようになりました16MB越えのセグメントが必要であれば4KB単位にするしかないので、L4の人たちがぼやいていました
64KBというのは間違いですすみません
ここでいうメモリマップドファイルとはmmapのようにサイズを指定するものではなくて、ディスクリプタ経由で書き込むと勝手にファイル(セグメント)が伸びるようなものですなので厳密に1バイト単位でセグメントサイズが欲しいのですが
68020のPMMUにもそのために1バイトページがあったりしたんですがねえ…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家
そりゃあれですよ (スコア:2)
直接的には、それだけバイナリ互換が重要だったからなんだけれども
386のアーキテクチャ設計が非常に優秀だったからってのがあるでしょう。
で、ARMがx86を殺すかどうかなんとも言えないと思うけどな。
Re: (スコア:0)
386が優秀ではないとは言わないが、i686で採用した内部RISCによって延命できたと思うよ。
別の見方をすると、CPUシリーズで異なるuOPを吸収しているのがx86じゃないかな。
生物界でも、優秀な種が生き残っているというわけでもなく、柔軟性があったからという例は多い。
私はi386より68Kの方が優秀だったと思う。
Re: (スコア:2)
> 私はi386より68Kの方が優秀だったと思う。
i386比でなら68kは善戦していますが、最短命令が1ワード(2バイト)と言うのは、i386の最短命令長1バイトと比べてメモリ貧乏だった当時はコード密度の点で厳しかったです。
また、i386は自力で仮想記憶をサポートしていますが、68kは68010に外部MMUを追加しなければ仮想記憶をサポートできなかったり、命令セットが32bit化けを最初から想定しているなど掲げた理想は高かったのに比べて実装が追いついていない面もありました。
アーキレベルの残念な点は
・CLR命令でRMWバスサイクル発生させる( MOVEQ #0, DST で十分)
・相対ジャンプのオフセットが何故バイト?奇数だとアドレスエラーになるのでワードで指定すれば倍の範囲にジャンプできた
・直交性のあるアーキを標榜する割にデータレジスタとアドレスレジスタが別
などなど、それほど良いプロセッサかどうかは疑問。
結局、i386と競ったというのが伝説の原因?
Re: (スコア:0)
> ・相対ジャンプのオフセットが何故バイト?奇数だとアドレスエラーになるのでワードで指定すれば倍の範囲にジャンプできた
PC相対アドレッシングもバイト単位でしょ
同じ加算器を使ってんのよ
> ・直交性のあるアーキを標榜する割にデータレジスタとアドレスレジスタが別
単一の大きなレジスタファイルは遅い、アドレッシングに4ビット必要になり命令のレジスタ指定フィールドが足りなくなる、分割するとバンド幅倍増->データとアドレス計算を並行に実行可能
とちゃんと考慮した上での設計になっている
x86も同じくよく練られた設計だし、教条主義的でぼくのかんがえたさいきょうのマイコンみたいなところのある68kよりもx86のほうが美しいとさえ言えるね
Re: (スコア:2)
> PC相対アドレッシングもバイト単位でしょ
> 同じ加算器を使ってんのよ
LEAも同じ加算器使ってますよね
> 単一の大きなレジスタファイルは遅い、アドレッシングに4ビット必要になり命令のレジスタ指定フィールドが足りなくなる、分割するとバンド幅倍増->データとアドレス計算を並行に実行可能とちゃんと考慮した上での設計になっている
それこそLEAを駆使したり、この特徴を活かすのが高速化の肝でした。
> x86も同じくよく練られた設計だし、教条主義的でぼくのかんがえたさいきょうのマイコンみたいなところのある68kよりもx86のほうが美しいとさえ言えるね
全面的に同意見です。
同時代のZ8000あたりと比べてもx86は、いろいろな意味で現実的な選択の積み重ねで出来てると思います(レジスタごとに性格付けがあるのは意外とコード書きやすいし)。
Re: (スコア:0)
286で完成しちゃって386以降はやや無理目な拡張という印象もあります
32ビットセグメントでセグメントサイズが64KB単位になったのは、メモリマップドファイルがやりにくくなったなどの弊害があったし
当初の予定では32ビットは432の担当とはいえ、ちょっとギチギチすぎたかな
Re:そりゃあれですよ (スコア:2)
16bitセレクタ・32bitオフセットですよね。
メモリマップドファイルは妨げていなかったと思います(結局フラットモデルに落ちつくんですが)。
そうそう、セグメントレジスタをテンポラリレジスタに使っていたコードが激遅になった記憶があります。
Re: (スコア:0)
386になってセグメントのリミット値が20ビットに拡張され、リミット値の単位を1バイトまたは4Kバイトに指定できるようになりました
16MB越えのセグメントが必要であれば4KB単位にするしかないので、L4の人たちがぼやいていました
64KBというのは間違いです
すみません
Re:そりゃあれですよ (スコア:2)
Re: (スコア:0)
ここでいうメモリマップドファイルとはmmapのようにサイズを指定するものではなくて、
ディスクリプタ経由で書き込むと勝手にファイル(セグメント)が伸びるようなものです
なので厳密に1バイト単位でセグメントサイズが欲しいのですが
68020のPMMUにもそのために1バイトページがあったりしたんですがねえ…