分解せずにSurfaceの中身を見る
Windows RTには、ハードウェア情報を表示する「msinfo32」(システム情報)が搭載されている。これを使って、Surfaceのハードウェア詳細を見てみることにしよう。msinfo32には、I/Oの割り当てを表示する機能がある。これをみるとメモリーに割り当てられているI/Oは、4GBのメモリー空間のうち2~3GBの範囲になっている。32bitのメモリー空間は、16進数で表現すると「0x00000000~0xFFFFFFFF」となる。これを1GB単位で分けると、以下のようになる。I/Oはこのうち、2番目の「0x4000000~0x7FFFFFFF」に集中している。
- 0x00000000-0x3FFFFFFF:最初の1GB分
- 0x40000000-0x7FFFFFFF
- 0x80000000-0xBFFFFFFF
- 0xC0000000-0xFFFFFFFF:最後の1GB分
ARMプロセッサーはI/Oアドレス空間を持たないため、msinfo32「I/O」の項目には何も表示されない。x86/x64のシステムでは、PS/2キーボードなどのデバイスがI/Oアドレス空間に割り当てられている。
ARMプロセッサーでは、各種デバイスがUSB経由ではなく、組み込みデバイス用のインターフェースである「I2C」や「GPIO」などで接続されているという点も、大きな違いだ。I2Cは「Inter-Integrated Circuit」の略で、「I2C」とも表記する。読み方は「アイ・スクエア・シー」である。
I2Cは2本の信号線を使って、データをシリアル転送するインターフェース規格で、基板上でのデバイス間接続に使われる。信号線が少ないほど、基板上のパターンを減らせて設計コストが削減できる、というのが特徴だ。各I2Cデバイスはアドレスを持っており、ホスト側はアドレスを指定して、デバイスと通信する。長く使われた仕様で随時拡張されてきたため、伝送速度は100kbpsから3.4Mbpsまでと幅がある。また、接続可能なデバイス(アドレス空間の大きさ)も、7bitから10bitと幅がある。
GPIOは「General Purpose I/O」の略で、簡単に言えば1bitのデジタル信号線で、入力/出力などを決めて固定的に利用する信号線だ。例えばLEDのオンオフを制御したり、キーやスイッチの状態を入力するなどの場合に使われる。I2Cよりも単純で、ほとんど機能部分を持たない回路(LEDの点灯回路など)を制御するような使い方をする。
PCの内蔵USBデバイスは、USBインターフェース自体が比較的大きな回路になってしまうので、消費電力も小さくない。本来外部のケーブルで接続する規格であるため、信号電圧も大きい。I2CやGPIOはデバイス側がUSBに比べて単純なので、消費電力も少ない利点がある。
マイクロソフトはWindows 8でARMプロセッサーに対応するために、OS側でI2CやGPIOなどに対応した。最近ではインテルのAtomプロセッサーも携帯電話向けに出荷されるため、I2CやGPIOを装備している。WindowsがARMに対応したことで、I2Cなどがサポートされるとなると、今後のPCの設計にも、ある程度影響が出ることになるだろう。特に高速性が必要ないデバイスなどは、PCでもI2CやGPIOでの接続が主流となるかもしれない。
この連載の記事
-
第34回
PC
Windows 8の狙いは、UIの変化よりもAPIの変化が本質 -
第33回
PC
Windows 8が動作しなくなった? 新しくなった修復機能 -
第32回
PC
Windows 8でIMEに求められる新しい要素とはなにか? -
第31回
PC
Windows 8の無線LANをコマンドラインで細かく制御 -
第30回
PC
Windows 8をマウスで使いやすくするレジストリの小技 -
第29回
PC
周辺機器・アプリがWindows 8/RTで動くか確認する方法 -
第28回
PC
Windows 8のキーボードショートカットを全公開 -
第27回
PC
Windows 8が使いにくい? マウスを変えると印象も変わる -
第26回
PC
実はNFCに対応しているWindows 8 ただしアプリは不足 -
第25回
PC
実は扱いがまったく異なるWindows 8でのタッチパネル - この連載の一覧へ