ノート:Intel 80386

ページのコンテンツが他言語でサポートされていません。

製品名は忘れましたが、i486DX同様に、数値演算コプロセッサを内蔵した製品があったと思います。また、これを従来のマザーで使用できるようにするi387のダミーのような基板も同時期に発売されていた筈。--T-ohara 15:54 2004年6月11日 (UTC)

SXが出た際にDXが付いただけでなく、80が取れてそれぞれi386DX、i386SXになった気がするんですが、記憶が曖昧なのでノートに書いておきます。どなたか確認いただけませんか?--Monpetit 2006年3月4日 (土) 14:29 (UTC)[返信]

IntelのWebサイトによると、Intel 386が正式名称のようです。 発表当初は確かに80386と呼ばれていましたが、インテルの呼称に合わせてIntel 386またはi386とした方が良いのではないでしょうか。 --YOKOYAMA Tetsuya 2008年6月7日 (土) 12:23 (UTC)[返信]

概要で述べる他CPUについて[編集]

編集要約欄での会話は推奨されないですし、長くなりそうですのでこちらに書きます。

  • まず、「高速な80286として」と表現してしまうと、当時の主な(DOS)用途では286相当の16ビットプロテクトモードを利用するかのような誤解を与えてしまうとのことでした。
  • しかし「高速な8086として」としてしまうと、今度は逆に8086の機能しか利用していないかのような誤解を招きます。実際には286/V30の普及とともに186で追加された命令がDOS用途で使われるようになっています。

「16ビットプロテクトモード」も「186命令」も、どちらもCPUの機能という点では同じであり、どちらかをおろそかに表現するのはよくないと思います。

特に日本で主流だったPC-9800シリーズではV30/286以降の機種でグラフィック周りの仕様などのアーキテクチャが確定しており、結果としてグラフィックを使うソフトの多くがVM以降対応としてV30/286以降を前提に作られるようになりました。このような状況の中で386機が8086機と同じ機能だけ使われたかのような表現には、やはり不自然を感じずにはいられません。

  • しかし「高速な8086/80186として」とするのも、80186自体はPC用途ではあまり使われなかったプロセッサであるため意味がないとのことでした。実際には186命令は286とV30で普及したものですから、それもそうですよね。
  • では「(80286と同様に)高速な8086/V30として」にしてはどうでしょうか? これもあくまで妥協案ですが。

この場合はV30固有の命令の存在など、286/386との非互換性が問題になるかもしれません。しかし186命令や後のプロテクトモードがよく使われたのと違って、V30固有の命令は当時からほとんど使われなかったそうですので、「386が高速なV30用途」と言っても、実際問題として「286が(事実上)高速なV30用途」だったことと合わせたような表現になりますので、あまり違和感はなくなると思いますが、どうでしょうか?--Gwano会話2013年7月16日 (火) 16:15 (UTC)[返信]

「(80286と同様に)高速な8086/V30として」で悪くないと思います。
186命令はそれなりに便利に使われましたが、286のプロテクトモードを使ったものというと、OS/2とかWindowsの2と3の一部のスタンダードモードとか、それがプラットフォームとして広く普及したか、というとだいぶ「?」が付きます。多くの主力アプリがWindowsに本格的に移行したのは95以降でしたから。
「PC-9800シリーズではV30/286以降の機種でグラフィック周りの仕様などのアーキテクチャが確定しており、結果としてグラフィックを使うソフトの多くがVM以降対応としてV30/286以降を前提に作られるようになりました」細かいことを言いますと、98の世代についての記述には「VM/UV以降」と「VX/UX以降」があり、それぞれV30と286が相当します。が、グラフィック関係では、VXでEGCが搭載されたもののEPSON機が追随しなかった(できなかった?)こともあり、EGCを使うソフトはかなり後まで出なかった。そして「VX/UX以降」という表示はその多くの場合、速度のみを基準にそうしていた、など、たぶん切りがないですし、この記事で98に拘る必要はないように思います。
--MetaNest会話2013年7月17日 (水) 12:07 (UTC)[返信]
まずは本題につきまして、ご理解いただきありがとうございます。PC-98のグラフィック事情につきましては記事本文で触れるつもりではありませんでした。ちょっと補足しますと、上で286/V30と併記した理由は、単に(ハイレゾのみの機種を含めれば)発売日が286機のほうが先で、V30機のほうが後発だったための配慮です。なお186についてもWikipedia内の記事では発売日まで確認できませんでしたが、少なくとも286と同じ年ではあるようですね。そのためか、書籍によってはPUSHA/POPAなど(の186命令)は286以降で使える命令であると説明されています。つまり(今で言う)186命令は本来、286命令の一種なのであり、機能的には「286からプロテクトモード関連の機能を除いたもの」とも受け取れると思います。もちろん186/V30はハードウエア的に8086に近いものであることは了解しておりますが、市場的にはV30は最初から286SXとでも言いますか、Celeronのような役割だったのではないかと思います。--Gwano会話2013年7月19日 (金) 12:46 (UTC)[返信]

MSRに関する典拠の補足[編集]

確かに内容の希少性からして出典が必要であるべきケースと思われますので、出典を記述しなかったのは失礼いたしました。とりあえず英語版のen:x86 instruction listingsでは、RDMSR/WRMSRの対象にIBM386SLCが含まれていることについて「Frank van Gilluwe, "The Undocumented PC, second edition", 1997, ISBN 0-201-47950-8, page 55」という出典が示されています。

Undocumentedであるためかウェブ上には情報が少ないのですが、例えばAssembler For dummies(PCの参考図書で知られるen:For Dummiesシリーズの名前を冠していますが、関連は不明)においてRDMSRの対象CPUが「Pentium (tm), IBM 386SLC,486SLC,486SLC2」となっているなど、多少はヒットするようです。ただ外国語が多く、出典として使えそうなサイトかどうかはよく分かりません。

裏付けとしてはとりあえずフリーソフトのソース類で確認できると思います。例えばベクターの作者ページにあるIBM486SLC2のキャッシュ設定[1]では、明言されていませんが0fh,30hはWRMSR、0fh,32hはRDMSRのオペコードですので、ECXでアドレスを指定してEDX:EAXでデータを読み書きするという使われ方からしてもRDMSR/WRMSRそのものであることは明白です。

またTOPBENCHというベンチマークのドキュメント[2]によれは、IBM 386SLC/486SLC(2)/486BL3(Blue Lightning)の同定方法はRDMSRを含むので、これら以外のCPUでは無効オペコードや一般保護例外となることから、リアルモードでないとこれらのCPUは検出できないようなことが書かれています(通例CPUIDが使えれば回避できるはずです)。

英語版の出典からしてUndocumentedとなっているためIBM自身がそれをMSRと呼んでいるかどうかは分かりませんが、Intelのニーモニックで言えばMSRそのものですから、IBM386SLCシリーズにおけるMSRの存在はけっして疑わしいものではありません。一方で情報が少なくウェブ上の典拠が弱いことや、Undocumentedの情報であることからして、特筆性に疑問をお持ちなのであれば必ずしも否定はできませんが。--Gwano会話2023年6月12日 (月) 07:42 (UTC)[返信]

「Frank van Gilluwe, "The Undocumented PC, second edition"」の下記の原文の62, 63ページを見ると
RDMSR, WRMSRは Some 386+ となっていることからIntelの386でもRDMSR, WRMSRを持っているものがあり
IBM386SLCがRDMSR, WRMSRを発明したわけではない、という状況になります。
そのため、Intel 386の非公開命令としてRDMSR, WRMSRを記載したうえでIBM386SLCもこれらの命令を
もっていた、であればよいと思います。
https://archive.org/details/The_Undocumented_PC_Second_Edition_Frankvan_Gilluwe/page/61/mode/2up--HQA02330会話2023年6月12日 (月) 10:56 (UTC)[返信]
なるほどです。特にIBMが発明したように言ったつもりは無かったのですが、それだけを書けば確かにそう受け取られかねませんでしたね。もともとIBM386SLCは386SLがベースだそうですから(もしかしたら386SLの付加機能にMSRが使われていたのかもしれませんし)、少なくともIBMは正式に386のライセンスを持っていたとのことなので、MSRの仕様をIntelから得てIBM386SLCの独自キャッシュ設定に応用したと考えたほうが確かに自然ですね。そうでないCx486SLC/DLCがMSRを使わない(I/Oポートで独自キャッシュを設定している様子である)こととも整合が取れますし。--Gwano会話2023年6月14日 (水) 08:44 (UTC)[返信]
再度、"The Undocumented PC, second edition"を見たところ、Frank van Gilluwe氏はIBM 386SLC/486SLC系以外のIntelブランドの386/486でRDMSR, WRMSRを対応した製品を見つけられていない状況でした。そのためIntelは IBM 386SLC/486SLCをMSRのPentiumへの導入の前のプリテストにしたのかもしれません。--HQA02330会話2023年6月14日 (水) 11:05 (UTC)[返信]

IBM386SLC2?[編集]

ところで調べていて気付いたんですが、IBM386SLC2って実在するんでしょうか? 英語版には記載が無いようです。検索するとIBM PS/2 Ultimedia Model M57 2BAという機種名らしきものがヒットしますが、逆にこの機種名で検索するとIBM486SLC2となっています。IBM386SLC2はウィキペディアの引用サイトを除くとヒットが極めて少なく、たいていは IBM 386SLC → IBM 486SLC → IBM 486SLC2 のような説明になっています。IBM 386SLC2はIBM 486SLC2の誤用か別名である可能性は無いのでしょうか? はっきりしないようであれば念のため伏せておいた方が良いような気がします。--Gwano会話2023年6月12日 (月) 07:42 (UTC)[返信]

明日で一か月となりますが、それまでにご意見も無いようでしたら、とりあえず伏せた状態にして様子を見たいと思います。--Gwano会話2023年7月11日 (火) 07:20 (UTC)[返信]