Pages

Tuesday, May 25, 2021

Intelが生み出したさまざまなPC標準規格 Microsoftとの協力と対立 - ITmedia

mungkinbelum.blogspot.com

 IBM PC、PC/AT互換機からDOS/Vマシン、さらにはArmベースのWindows PC、M1 Mac、そしてラズパイまでがPCと呼ばれている昨今。その源流からたどっていく大原雄介さんによる解説連載の第7回。ビデオカードの台頭と、その性能を発揮するために投入された新規格「VL-Bus」の登場前夜までが前回。いよいよ、“Wintel”の出番である。


 VL-Busのように場当たり的に新規格を生み出しても、それが長く使えるものになるとは限らない。一応は業界規格として策定されたEISAについても広く使われたとはいえない。

 それは「とにかくすぐ使えるもの」を求め、「この先どうなるか」を考えなかった結果、といえなくもない。

 きちんと長期間にわたって使える規格は「PCというのは将来どうあるべきか」のビジョンを定め、それに沿って「そのためにはこうした規格が必要」という形で定めるべきだ。そこでビジョンが間違ってたりすると、どうしようもないものが出来上がったりする。

 1991年、Intelは社内にIAL(Intel Architecture Labs)と呼ばれる組織を立ち上げた。このIALのミッションは“Enable innovation in the industry”(業界でイノベーションを可能にする)というものだが、これだと抽象的すぎる。

 もう少しかみ砕いて説明すると、IALのミッションとは「マイクロプロセッサの市場セグメントを広く拡大する」ことである。

 つまり、現在利用しているユーザーではなく、今後Intelのプロセッサを利用するであろうユーザーのために、そうした新しいユーザーが必要とする「モノ」を可能にするための技術を開発する、というミッションを持っていた。

 IALには500人あまりのエンジニアが所属していたが、いわゆるマイクロプロセッサ専門のエンジニアはおらず、ほとんどはソフトウェアのエンジニアであった。このIALが(成功/失敗は問わず)手掛けたプロジェクトは多数あるのだが、The organization of platform leadership : An empirical investigation of Intel's management process aimed at fostering complementary innovation by third partiesに掲載のリストでいえば、

Project名 提供形態
PCI Interface / Standard
AGP Interface / Standard
USB Interface / Standard
IEEE 1394/FireWire Interface / Standard
H.323 Interface / Standard
TAPI Interface / Tool
Scalable Platforms Initiative Initiative
Conferencing and IP Telephony Initiative Initiative
Internet Media Initiative Initiative
Manageability Initiative Initiative
Broadband Initiative Initiative
Anywhere-in-the-Home Initiative Initiative
Easy-to-Use PC Initiative Initiative
Instantly-Available Initiative Initiative
Plug-and-Play Initiative Initiative
Information Management and Knowledge Exchange Initiative
Security Initiative Initiative
Home RF Technology / Standard
DVD Technology / Standard
CDSA(Common Data Security Architecture) Technology / Standard
Indeo Technology / Product
Intel ProShare Technology / Product

などが出てくる。

 Internetが広く使われる以前の時代の話なので、初期の情報は不明なのだが、1999年1月時点のIALのWebページを見てみると、さらに多くのTechnologyやらInitiativeやらが並んでいたりする。

 前回の最後で触れたPnPについても、Intelは比較的早い段階に、IAL内部でPlug-and-Play InitiativeのProjectを立ち上げており、これにMicrosoftが乗った形といっても間違いではないと思う。

 もっと正確に表現するならば、MicrosoftはWindows 95を見据えてPnPのインプリメントをいろいろと行っており、一方Intelは独自にPnPのインプリメントを行っており、両社がこれに関して共同で取り組みを行い、Initiative(イニシアティブ)という形で業界に仕様を示すことで対応を促そう、という試みだったわけだ。

 実はちょうど同じ1991年、MicrosoftもMSR(Microsoft Research)を立ち上げている。これは当時ネイサン・ミアボルド氏がビル・ゲイツ会長(当時)らに送った21ページのメモがきっかけである。

 MSRはどちらかといえばScience方向の研究を主眼とする組織ではあったが、やはり「将来のPCに必要とされる技術を開発して、それを製品開発部門に渡す」という意味ではIALと近い動き方をしていた。

 実際この後、IntelとMicrosoftはさまざまなシーンで協業する形で新しい規格やInitiativeを提供していくが、それは両者の背後にIALやMSRという、将来に向けた技術開発を行う組織があったから可能になった、という部分が大きい。

 もっともこう書くとまるで両社が蜜月関係にあったかのように見えるが、実際はいくつかの点で激しく争っていた。有名なところでは、1994年に大激論となったNSP(Native Signal Processing)がある。基本的なアイデアは「CPUでモデムとかサウンドなどの処理を行うために、DSP風の処理に便利な拡張機能を搭載する」というもので、最終的にこれはMMXとして1997年に発表された。1994年11月に発表されたNSPも、基本的なアイデアは全く同一である。

 では何が違うかというと、当時IntelとしてはOS非依存な形でNSPを利用できるようにしたいと考え(これはCPUメーカーとしては当然である)、そこでNSP用のデバイスドライバをRing 0(一番特権の高い動作モード。別名カーネルモード)で動作するVxDの形で提供予定だった。ところがMicrosoftはデバイスドライバの形式をVxDからWDMに移行しようとしている最中で、今さらVxDで提供されるのは許容できなかった。

 さらに許容できなかったのは、IntelはこのVxDをSPOSというRTOSベースで開発しようとしていたことだ。SPOSというRTOSは既に存在しない(開発元がTIに買収され、現在はTI-RTOSとして提供されている)が、当時多くのDSPがこのSPOSを利用しており、それもあってIntelもSPOSを使ってNSPのサポートを行う予定だった。

 つまり、これをサポートするとWindowsの中でSPOSが(しかもRing 0で)稼働するという、Microsoftとしては絶対に許容不可能な設計になっていたのである。

 かくしてIntelがNSPを発表すると、Microsoftは直ちに「WindowsでNSPはサポートしない」と表明するに至り、最終的にIntelはNSPの構想を撤回し、最終的に通常の命令拡張としてMMXを実装することになった。

 両社は他にもWindows NT 4.0のプラットフォーム対応やx86の64bit拡張対応などでしばしばぶつかっている。また、これらのProject全てで両社が協力し合ったわけでもない(例えばIndeoは当初こそVideo for Windowsの主要なCodecとして扱われたが、Microsoft自身はIndeoに協力はしておらず、単にCodecを利用する際のAPIを定めただけにすぎない)。

 いくつかのものはIntelが単独で進めたが、あまり成功したものはない。Home RFも尻切れトンボに終わったし、Broadband Initiativeもイマイチといった感が無くはない。それでも生き残ったものはある(例えばManageability InitiativeからvProが最終的に生み出された)し、この後にもいくつか発生したものがある。有名どころでいえばUEFIとかACPIなどだ。

 こうしたIALのさまざまな研究成果は、ここから急速にPCというものの形を変えていくことになる。ただそんな訳なので、ここからは複数の取り組みが同時多発的に発生している関係で、きれいな時系列順にはならないことをあらかじめお断りしておく。

 まず先月の続きのI/O Busの話。IALではPCI、USB、IEEE 1394という3種類のI/O Busのプロジェクトが同時に走っていた。ただこの3つ、お互いに明確にターゲットが異なっていた。

 PCIはISA、EISA、VL-Busの後継となる、PC内部の拡張カードなどに使われるI/O Bus規格であり、USBはキーボードやマウス、RS-232C、IEEE 1284(Centronics I/Fとも呼ばれていた)といった、比較的低速のPC外部の周辺機器の接続用。そしてIEEE 1394はSCSIの代替を狙ったもので、ストレージや高速な通信(例えばスキャナーなど)に利用されることをターゲットにしていた。この3つの規格に共通するのが、

  • PnP
  • Hot Plug/Unplug(マシンをいちいち電源オフにしなくても、動的に周辺機器の追加や削除を可能にすること)のサポート
  • Architecture Agnostic(特定のアーキテクチャに依存しない)

の3点である。

 PnPは前回説明した通りで、ユーザーがロードすべきドライバを設定しなくても、自動的にハードウェアを認識し、それに合わせてドライバをロードしてくれる仕組みのことだ。このPnPの搭載により、“Inbox Driver”(OSをロードした時に、標準で搭載されているドライバ。これを利用することで、OSのインストール後にすぐマシンを使うことができる)という概念が生まれた。もちろんOSをインストールした「後で」出てきた製品の中には、Inbox Driverでは対応できない場合もあるので、その場合は後追いでドライバの追加が必要になるのだが。

 次のHot Plug/Unplug、「USBやIEEE 1394はともかくPCIは?」と思う人もおられようが、実はPCIもHot Plug/Unplugを「PCIの規格上は」サポートしている。どんな用途かというと、実は高信頼性サーバ向けである。

 金融機関で利用されるサーバなどでは、稼働率を99.999……%とかまで高めることが期待されている。そこで内部構造を多重化し、あるモジュールが故障したら冗長モジュールに作業を切り替えて継続するといった形で、止まらないようにするわけだ。

 ただその場合、壊れたモジュールをそのまま放置するといずれ冗長モジュールが壊れたら止まってしまう。そこで「壊れた」というレポートを出して、サポートエンジニアがそのモジュールを新品に交換する。

 この際にいちいちシステムを落としていたら意味がないので、電源オンのままでモジュールを交換できるようになっている必要があり、これをPCIでもサポートしているというわけだ。

 もっともこれを実現するためには、PCIのコントローラーやOSなどもこのHot Plug/Unplugに対応している必要があり、そこまでのニーズが無い普通のPC向けではこれはサポートされていない(一部サーバ用マザーボードの中には、これに対応したチップセットを搭載していたものもあるが)。

 OSも同様で、Windows 9xとかWindows NT Workstationなどは当然これに未対応である。まあこうした金融機関向けサーバをWindows NT Workstationとかで構築することはあり得ないので、別に支障はないのだが。

 最後のArchitecture Agnostic。Intelは別にOSのベンダーではない訳で、Windows以外のOSでも広く利用されることを希望しており、また逆に言えばx86にロックインした規格(ISA、EISA、VL-Busはまさにx86をベースにした規格だった)であると広範に普及しないことになる。

 そこで、特定のCPUアーキテクチャに依存しない構造を取ることにした。この目的のため、IALはPCI/USBに関しては、初期の基本的なアーキテクチャのメドが立った段階で業界標準団体を立ち上げ、ここに仕様の策定を含む作業を移管した。

 PCIの場合はPCI-SIG(Peripheral Component Interconnect Special Interest Group)、USBはUSB-IF(USB Implementers Forum)がそれぞれ立ち上がっている。

 ちょっと毛色が違うのはIEEE 1394である。これはもともとApple Computer(現Apple)がFireWireとして提唱した規格である。

 当初はAppleとTIで開発していたが、途中から色気が出てきたのか、ソニーとパナソニックが加わり、さらにPhilips、LG Electronics、東芝、日立製作所、キヤノン、SGS Thomson、TIなどが加わってIEEEでWorking Groupを結成。最終的に1995年にIEEE 1394-1995として標準化が完了した。

 AppleがFireWireを製品として発表したのは1999年のMacworld Expo/San Franciscoでのことで、最初に規格が提唱されてからずいぶんかかった格好だ。

 ではIALはFireWireというかIEEE 1394をどうしたかというと、こちらは将来IntelベースのPCにFireWireが搭載される可能性や、その場合の実装について調査したとか、ドライバに関してPnPの実装方法を研究したとかいうレベルで、別に1394 Trade Association 1394TAで積極的に活動したという感じではなさそうである。

 実際、2000年くらいまではDevice Bay(Compaq、Intel、Microsoftが1997年に立ち上げた、拡張デバイス向け標準規格。2001年には事実上死に絶えた)向けにUSBとIEEE 1394を供給する(写真1)というアイデアを提唱していた(写真2、写真3)ものの、この後はIEEE 1394に見切りをつけてUSBの高速化に走っている。

photo 写真1:Device Bayの基本的なアイデア。ホストからはUSBとIEEE 1394、それと電源をデバイスに供給することで、さまざまなデバイスを交換しながら利用できるというアイデア。出典は“Technology White Paper:Introduction to Device Bay Interface Specification”
photo 写真2:COMDEX 1998のDevice Bayのブース展示より。COMPAQのDeskProに2台分のスロットが用意されている。マシンの上に置いてあるのがDevice Bay対応デバイス
photo 写真3:Device Bayの応用。4chのRS-232Cポートを利用できるようにするというもの。またHost側の外部USBポートとIEEE 1394ポートを使って、本体の外部にDevice Bayを置くことも可能というデモ

Adblock test (Why?)


からの記事と詳細 ( Intelが生み出したさまざまなPC標準規格 Microsoftとの協力と対立 - ITmedia )
https://ift.tt/3wCgz97

No comments:

Post a Comment