2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

秋葉原のショップ店員の「相性が悪いです。」で納得するな!

秋葉原の店員が口癖のように言う「相性」という言葉。俺は、凄く耳につく。俺は「店員のやつら、客を何も知らないと思って馬鹿にしてるなぁ~」とまで思う(-.-;)。こんなこと思うの俺だけだろうか? おーい、「相性」で片づけるなよぉ~。
ところで、「パソコンに周辺機器を取り付けたがうまく動作しない」というケースは非常に多い。パワーユーザなら、自分が経験しただけでなく周囲からよく質問を受けているに違いない。もちろん、この原因の大半はユーザの接続ミスや設定の誤りなど、原因さえ特定できればすぐに解決できる問題であるにちがいない。しかし、メーカのユーザサポート窓口へ問い合わせたり、インターネットで事例を調べたりしても、どうしても解決できない問題もある(俺自身も最近解決できない問題が多くなってきた)。
このようなとき、ユーザの多くは原因を特定できないまま「A社のPCとB社の周辺機器の組み合わせは相性が悪いのだから仕方がない」とあきらめてしまう。メーカ側も問題の原因を解明するのではなく、「相性が悪いんですね!」とか言って簡単に片付けてしまおうとする。ユーザが自分だけでは対処できない現象に遭遇したときメーカに頼るのはごく当然のことだ。ところが、そのメーカのサポート担当者が「相性」で逃げてしまうのではユーザは救われない。そもそも、ハードウェア同士の組み合わせにはたして「相性」なんて言葉ががあるのだろうか?どこかに本当の原因が隠されているはずである(俺は昔からそう思っていた)。昔から、秋葉原のショップの店員も「ああ、これは相性が悪いんです!」と簡単に答える。便利な言葉である。
しかし、俺は元々はハード屋なので、その応対にすごくむかつくのである。相性って、本当に何だか解って使ってる人は少ないはずである(爆)!これから話す内容は、少々デバイスの時代は古いが相性問題の論点は同じであるので参考にして欲しい。


1. メーカは原因追求に消極的でショップ店員はお客に「相性が悪い」で納得させる

俺には、どうしても「相性」なんて言葉、本来存在しないと思っている。人間同士には、「相性」なんて言葉有ったとしても、感情も気持ちもない機器に「相性」なんて有るはずがない。有ったとしたら人間がわざと作ってる物に違いない。
もともと「相性問題」とは、ある特定のPCと周辺機器を組み合わせたときにうまく動作しないことを指していた。
しかし最近は、この言葉を原因がわからない曖昧な問題に対して使うことが増えている。特に、メーカが問題の原因を追求せずに「相性」として簡単に片づけてしまうように思う。
ほとんどのPCメーカや周辺機器メーカーは、問題が生じたハードウェアの組み合わせによる動作確認表みたいな物を公開していない。仮に不具合のある組み合わせの一覧表を公開していても、その原因を明らかにしているメーカーはほとんど無に等しい。というより無いといった方が良いだろう(-.-;)。
ユーザが得られる情報は、メーカーのWebサイトに公開された動作確認リストとFAQぐらいであろう。つまり、ほとんどのメーカーは相性問題の原因追求とその情報を公開することに対して消極的なのである。特にPCメーカーは、「PCと周辺機器のどちらが悪いかを切り分けたら、周辺機器側の問題は機器ベンダに任せる」なんて言うふざけたことが一般的な対応で、自ら進んで原因を調査するという姿勢は感じられない。
その反面、 周辺機器メーカは、PCメーカーよりは多少積極的に原因追及を行っている。相性と言われる問題が起こるのはマザーボードにメモリや拡張ボードなどの周辺機器を新たに増設した時に発生しやすい。そのためほとんどのユーザはその周辺機器の製造メーカーに真っ先に問い合わせるからである(危機管理とでも言うか)。
しかし、これも俺としては気に入らないのだが、対応は原因を満足に調査せずに代金を返金することがある。


2. ハードウェアの相性問題

ハードウェアの相性問題はどうだろう。少なくとも各分野の大手ベンダ製品との自社製品の互換性は確保できているようだ。SCSI機器の場合を考えると、あるSCSIボードが事実上業界標準で有るとすると、ハードディスクやCD-ROMなどのディスクメーカはそのSCSIボードとの互換性だけは確保せねばと・・・・。PCメーカも周辺機器メーカと同様に、業界標準の周辺機器が動かないような問題が起きた場合はまずいといわんばかりに対策を立てている。
このようにそのデバイスの分野でのまがりなりにもデファクトスタンダードとなっている製品が動作しない場合は、ほとんどのメーカーがドライバソフトやBIOS及びファームウェアなどをアップデートすることで何とか相性問題をなくそうと日々努力しているようだ。しかし、ある特定の相性問題に対応するためにBIOSなどのプログラムを変更してしまうとこれまでまともに動作していたハードウェアが動かなくなる危険性もある。まあ、プログラムにはありがちなことだが。例えばあるグラフィックボード会社では、相性問題があると確認されている他社のマザーボードを自社製グラフィックスボードでも利用できるようにダンパ用抵抗などをグラフィックスボードに付け加える付加サービスを行っている。しかし、付加サービスを施したボードについては従来は相性問題がなかったマザーボードとの組み合わせを保証していない。つまり、ボードに抵抗を追加したことにより今まで無かった他のマザーボードとの間に新たな相性問題を起こす可能性ががあるからだ。つまり、ここまでは面倒見切れないと言うことであろう。まあ、気持ちは分からないでもない。


3. 問題発見は非常に難しい

メーカの努力も、その多くは「その筋の業界標準の製品と組み合わせでうまく動作しなかったら場合は、ちゃんと動くように直す」というその場しのぎの対策に過ぎない。設計し直しと言うことになると大変なことになるからである。
このため、相性問題はパソコンを構成する部品のいたる所で起こるのが普通である(図1)。確かに、PC/AT互換機が登場し始めたころは元になるIBMのPC/ATに合わせておけばよかった。規格書や仕様書はIBMが発行したTechnology Reference Computer ATというマニュアルしかない。だが、これだけで互換機や周辺機器を製造することは事実上不可能だった。このため、相性問題を減らすには業界標準製品と組み合わせるテストを繰り返すしか問題に対する対策方法がなかったという事実もある。しかし、現在ではパソコンを構成するハードウェアの大部分に関しては業界団体や規格化団体が細部まで仕様や規格を決めている(表1)。しかし、それでも相性問題が起こるのはなぜか?一つ考えられることは、ハードウェアに付いているドライバソフトやBIOS及びファームウェアなどのプログラムのバグである。これは明らかにそのプログラムを開発したメーカ側に責任があると考える。ところが、周辺機器の増設などでトラブルが起こった原因のほとんどはユーザ側のミスにあることも事実なのだ。

■ 周辺機器の増設時に起こるトラブルの原因

1) ユーザ側の要因によるトラブル
① ユーザの設定ミス

2) メーカ側の要因によるトラブル
① デバイスドライバのバグ
② BIOS&ファームウェアのバグ

3) 両者以外
① 規格及び仕様の間違い・誤記
② 伝送信号のレベルの問題

各メーカとも不具合や誤動作に対する問い合わせは、100%近くユーザの設定ミスと言い切っている。したがって、結果的にメーカのサポート窓口に問い合わせてもユーザの設定ミスではないかと真っ先に疑われることになる。パワーユーザなら、そのような対応に腹立たしく思ったこともあるのではないだろうか。非常に見つけにくいバグをメーカーに認めさせるのは容易ではないと思う。

図1 「相性問題」が起こる部分とその原因(マザーボードを参考に)

1) SCSI(PCIバスにマウント)
① PCIバスにささるSCSIカードバス
 ● 負荷容量から来る信号の鈍り
 ● 各メーカー専用コマンド
 ● ASPIマネージャの構成ファイルの不整合
 ● SCAM
② SCSIカード自体の問題
 ● SCSIカードのBIOSとシステムBIOSとのコンフリクト

2) 拡張スロットにはまるビデオカード
 ● IRQの割り当て
 ● VideoBIOSとシステムBIOSとのコンフリクト
 ● インターフェースケーブルとディスプレイの組み合わせ

3) CPU
 ● システムBIOSの対応
 ● CoreVoltageのSetting

4) PCI/AGP拡張スロット
 ● リソースのコンフリクト
 ● PCIのバージョンの違い

5) メモリ
 ● キャパシタンス(負荷容量)やインピーダンスの反射による信号の変形
 ● CAS Latency(CL2、CL3)の違い

コラム )CAS Latencyとは、DRAMにはRAS信号とCAS信号があり、CAS信号が実際に出力されてからデータが読み書きされるまでの時間をCL2とかCL3とか言って規定している。

 メモリを増設する場合は、CAS Latencyを合わせるのが一般的である(上記コラム参照)。
 ● PC66とかPC100とかPC133の違い
 基準周波数。

6) IDE
 ● システムBIOSの対応(大容量HDD)
 ● 転送モードの違い

規格又は仕様策定又は規格した団体
AGPIntel
IDE(ATA)ANSI
ISAIBM
PC66,PC100SDRAMIntel
PCI2.1PCI Special Interest Group
PCカードJEIDA, PCMCIA
SCSIANSI, STA
SIMM, DIMMJEDEC
USBCompaq, IBM, Intel, Microsoft
システムBIOSOADG
表1 PC/AT互換機を構成するハードウェア部品とその標準仕様

4. 規格や仕様にも曖昧なところがある

問題が起こる原因に規格や仕様の曖昧なところによる場合がある。つまり、仕様や規格自体があいまいで製品化の際に各メーカ間で互換性が取れなくなってしまうことだ。
仕様を定める業界団体に参加しているメンバーのほとんどは仕様を決めることだけを専門にしている人々である。このため実際の製品化で問題となる細部の仕様については、あまり真剣に受け取ってもらえない(何だかこれも本来おかしいことだと思うが(;-_-;))。つまり、このような仕様の曖昧さで問題になるのがPCカードである。以前はPCカードの種類や使用するリソースなどの情報をどのように記録しておくかが決まっていなかった。このため、PCカードをPCのスロットへ差し込んでも認識しないような問題が頻繁に発生していた。今ではこの問題はすでに解決されているが、しかし32ビット幅でデータ転送が可能なCardBusのバスマスタ転送がうまく動作しないという新たな問題が発生している。この原因はバスマスタ転送時の信号のやり取りに関する規定が曖昧なことであった。


5. 問題の原因に仕様の各値のクリアランス(幅)問題がある

規格や仕様が定めるさまざまな値にはクリアランスがある。例えばSCSI-1で定めているSCSIケーブルのインピーダンスは90Ω以上、ちょっと古いがPC100SDRAMで定めたメモリモジュールのインピーダンスは60~80Ωといったところだ。ところがこのように規定値にクリアランスがあることが伝送信号の乱れを発生させ、さらには相性問題を起こすこともある。規格にクリアランスを持たせること自体が問題と言えば問題かもしれないが、すべての製品を同じ規定値で作ることは事実上不可能なのである。値を厳密に決めてしまうと、まったく接続できないという事態に陥ることになる。さらにSCSIやメモリモジュールでは、誤動作の原因を特定することが非常に難しい。仕様通りの製品を組み合わせても動かないことがあるからだ。


6. ロジック信号を観測すると相性が解る

ドライバソフトやアプリケーションのバグならば問題部分さえわかれば比較的簡単に問題が改善できる。
しかし、先ほど述べたようにPCメーカや周辺機器メーカに問い合わせても「相性」としか言われない現象があることは確かなのだ。ご存じの人も多いだろうが、コンピュータが処理し解釈する「1」と「0」のディジタルデータの実体は直流電圧値のレベルで表す信号である。コンピュータユーザの多くは、こうしたハード側の信号は当然の如く考える必要はない。しかし、実はここに「相性問題」を解くカギがある。問題の多くは,デバイス間でやり取りされる伝送信号を観測することで原因を突き止められる。


7. 高速化が問題の根底にある

メモリに関係する問題は非常に多い。「メモリチェック中にエラーが出る」「正しい容量が認識されない」「PCの使用中に突然メモリエラーが起こる」といった具合である。もちろん、そのほとんどはユーザのミスが原因による事が多い。マザーボードのBIOSの設定を誤ったり、マザーボードが対応できないメモリモジュールを装着したりすることがあるからだ(両者共に俺は良くやってしまうことだが(-.-;))。しかし、解決の非常に困難なハードウェアの「相性問題」はメモリ自体にも存在する。それは、メモリにおける相性問題の多くはSCSIと同様に反射やなまりなど伝送信号の波形が乱れることによって起こる事が多い。しかし、メモリの場合の特徴はPC100SDRAMなどの標準仕様に準拠したメモリモジュールとマザーボードを組み合わせても起きる点である。メモリバスの周波数は、33MHzから66MHzはたまた100MHz(今は133MHzもすでにある)と高速化してきた。例えば100MHzの場合は10nsの間隔でデータをやり取りする。これだけ周期が短くなると、ほんの少しの波形の乱れでもエラーにつながってしまう。デジタルデータ的に考えるとバースト的にデータ誤りが発生してしまう(ビットではなくバイト列的にデータ誤りが発生する)。したがって、メモリの相性問題は高速化の代償と言えるかもしれない。

メモリの高速化は今後も続くだろう。すでに、PC133(133MHz動作のSDRAM仕様)などの製品化が始まっている。動作周波数が高くなればなるほど信号波形は乱れやすくなり、誤動作の危険性が大きくなる。その意味ではメモリで相性問題が起こるのは宿命とも言える。また、RUMBusDRAMなど将来のメモリの仕様はますます規定が厳しくなっていく。この傾向が続けばメーカの自由度が狭まり同じ仕様の製品はどのメーカが作ってもほとんど同じ設計になってしまなんてことも有るかも知れない。


8. 相性問題は製品が仕様通りでも発生する

反射(通常のパルス波と反射波がミックスされて結果的に波形が乱れる)はメモリモジュールとコネクタ、マザーボードのインピーダンスがそれぞれ異なることで起こる。
PC100の仕様では、これらのインピーダンスや部品間の配線長の詳細及び信号の遅延時間などが決まっている(以下参照)。しかし仕様には幅があり、各インピーダンスは60~80Ωである。このため仕様通りのメモリモジュールとマザーボードを組み合わせても信号の反射は起こる。例えば、メモリモジュールのインピーダンスが60Ω、コネクタが80Ω、マザーボードが60Ωの場合、伝送信号の一部は必ず反射する。60Ωのモジュールから80Ωのコネクタに信号が流れると、理論上信号の振幅の約14%が反射する。「うまく動作しなかったメモリ・モジュールをスロットの位置を変えて装着したら動くようになった」というこどがよくあるが、これはインピーダンスがスロット毎に変わるためである。たとえインピーダンスの不整合が原因で相性問題が起きてもメモリモジュールやマザーボードのどちらか一方の設計が悪いと決めつけることができない。しかし実際には、ユーザがメモリモジュールを増設したときに起こることが多いため、ユーザはそのメモリモジュールメーカに対応を求めてしまう。そこで代表的なメモリモジュールメーカーは、メモリモジュールのインピーダンスを70Ωにすることを目標に開発している。仕様の幅の一方に片寄るよりは真ん中の方が相性問題が少ないと考えるためである。

■ PC100に対応するための回路設計の主な規定

1) チップセットからメモリスロット間
① 配線の長さ:3inch
② インピーダンス:60~80Ω

2) メモリスロット
① 配線長:0.25~0.6inch
② インピーダンス:60~80Ω

3) メモリモジュール
① インピーダンス:60~80Ω
② 信号遅延:1feet毎に1.6ns~2ns(外部層)
         1feet毎に2ns~2.2ns(内部層)


9. スレッショルドレベルや波形のなまりに対する規定はない(負荷容量)

波形のなまりに関してだが、PC100には明確な規定がない。波形のなまりは回路のインダクタンス、キャパシタンスなどの組み合わせで決まるが、PC100の仕様だけではインダクタンスやキャパシンタンスを一意に求めることはできない。それどころか、インダクタンスやキャパシンタンスを規定しても、その値を設計段階で考慮することは難しくなっている。メモリモジュールの配線では、インダクタンスやキャパシタンスの値を理論的に算出しにくいビアホール(多層基板で異なる層の間の短絡穴)を使うからである。そのため、波形のなまりはメモリモジュールやマザーボードの設計によってかなり異なってくる。モジュールメーカの場合、コンピュータを使ったシミュレーションでインダクタンスやキャパシタンスを計算しながら回路を設計する。そして試作品を作ってオシロスコープなどで測定する。この二つの作業を繰り返して、できるだけ波形のなまりが起こりにくいメモリモジュールを製品化している。なるべくビアホールの数を滅らすことでコンピュータシミュレーションの精度を上げてなまりの少ないモジュールを設計しているらしい。


10. 電源が原因でメモリが動作しない

内蔵用のハードディスクやCDR及びPCIボードなどを増設した時に問題が起きることがある。PCを起動する時は、マザーボードやハードディスクなど多数のデバイスヘ同時に電源供給が始まる。特にハードディスクやCD-ROMなどはモータを所定の回転速度まで加速するために通常より多くの電流を必要とする。しかし、これにより電圧降下を起こすことがある。メモリモジュールに供給する電圧が低下するとメモリチップが正しい振幅の信号を返せなくなる。この結果、搭載メモリ容量を認識できなかったり運が悪いとフリーズしたりする。


11. 見かけはハードの相性みたいだが実はソフト上の問題だったりする

PCIバスとそれに対応の各種ボードの間では伝送する信号の波形などハードウェア上の原因で「相性問題」が起こることは最近ほとんどなくなった。すでにPCIは仕様が詳細に決まっており、最初の仕様が決められてから5年以上もの間大幅な変更がなかったため、不具合のある製品は淘汰されてしまったと言うわけだ。しかしPCIに関する「相性問題」は少なからず、まだ存在している。その多くはハードウェアではなくソフトウェアが原因で発生する問題だがその現象だけを見るとハードウェアの相性が如く見える。

PCIの相性問題の多くは、PCIボードが必要とするパソコン本体のメモリや割り込み(IRQ)などのシステムリソースが他のデバイスと競合するために起こる。本来ならシステムBIOSやOSがPlug and Play機能によって、他のデバイスと競合しないよう自動的にPCIデバイスにシステムリソースを割り振る。しかし、実際にはリソースを割り振る機能がうまく働かなかったりして、デバイスが認識されないなどの問題が起こる。なかでも多いのが、BIOSをPC本体の主記憶へコピーする領域が他の拡張ボードなどが利用する領域と競合するケースである。

さらにBIOSをコピーするメモリアドレスは、各BIOSROMを主記憶へコピーする順番によって違ってくる。通常、パソコンを起動すると最初にシステムBIOSがコピーされ次にビデオBIOS、そしてSCSI BIOSなどの拡張ボードが備えたBIOSがコピーされる。BIOSを備えたPCIボードを複数枚装着している場合は、PCIスロットのスロット番号が小さい方から順にBIOSをコピーする。だから、まれにBIOSを特定の領域へコピーする必要があるボードは、他のボードよりも先に主記憶へのコピーを済ませるようにした方がよい。スロット番号はマザーボードのマニュアルやマザーボード自体に記載されているのが普通だ。しかしメーカ製PCに関してマザーボード単体のマニュアルはほとんどの場合付属されていない。PCIボードの相性問題では「ボードを差し込むスロットを変えてみたら旨く動くようになった」という事例が良く見られるが、そのほとんどはこのような理由に起因している。なお最近では、SCSIボード以外にもBIOS ROMを備えたPCIボードが増えているので注意が必要である。LANからのアクセス要求によってパソコン本体を起動させるWakeUpLAN機能を備えたLANボードなどである。


12. IRQがバッティングする

主記憶のほかに割込(IRQ)がバッティング(競合)する場合もある。PCIバスには一つのIRQを複数のデバイスで共有するIRQルーティング機能を備えている。したがって、通常はPCIデバイスがIRQで競合することはない。しかし、Windows9xを使っている環境ではリアルモードドライバとプロテクトモードドライバは同じIRQを共有できない。通常Windows9xではプロテクトモードのドライバだけを使うので問題になることはほとんど無いがビデオキャプチャなどマルチメディア系デバイスの中にはリアルモードドライバとまれに併用するものがある。これらのボードを利用する場合は、他のデバイスとIRQを共有しないように設定しておく事が大切である。PC本体のBIOS設定でIRQを共有できないデバイスを装着するスロットに対して、手動でIRQを割り当てればよい。ただし95年以前のマザーボードの中にはPCIスロットに対してIRQを個別に割り当てられないものもあるので注意が必要。このほかPCI仕様のバージョンの違いによる相性問題は数は少ないが存在する事は確か。最新版のPCIはRevision2.1だが95年前半までに製品化されたパソコンはRevision2.0対応のマザーボードを搭載している。2.0と2.1では、バスマスタ転送のモード設定がビミョーに異なるため2.0対応のマザーボードと2.1対応のPCIボードを組み合わせると、ボードは認識できてもデータ転送時にエラーを起こし最悪はシステムがフリーズする。


このように、俗に「相性」と言われてることは実は製品の設計時点で決まるその製品の性能と言っても過言ではない。しかし、メーカが違う多品種・多様なデバイスが有る以上、相性問題は無くならない。ただ言えることは相性という言葉を非常に難しい理論は別にしても、ユーザ一人一人がちゃんと理解しておくべきではないだろうか。少なくても俺はそう思っている。

以上

コメント