次のページ 前のページ 目次へ

4. シリアルポートは時代遅れなのか?

4.1 はじめに

結論から言うと時代遅れですが…。シリアルポートはいくらか時代遅れで すが現在でも必要ですし、特に Linux では必要です。シリアルポートには欠 点がたくさんありますが、新しい PC のほとんどにシリアルポートが付いてい ます。Linux がサポートしている通常電話回線用のモデムは、シリアルポート 経由で動くものだけです。

シリアルポートは、コンピュータ間や外部ケーブルを通じた伝送でデータを渡 さなければなりません。よって、シリアルポートは 2 つのインタフェースを 持ち、どちらのインタフェースも低速です。まずは外部ケーブルを通じた外界 とのインタフェースを考えてみましょう。

4.2 低速で距離も短い EIA-232 ケーブル

従来の EIA-232 シリアルポートは、どうしても低速で、距離にも厳しい制 限がありました。広告ではよく「高速」と謳われますが、実際に「高速」に動 作するのは、PC のすぐ隣にモデムがあるような非常に距離が短い場合だけで す。またネットワークカードと比べると、この「高速」というのも低速に過ぎ ません。シリアルケーブルは全て共通の接地線を使う配線を用いているので、 ハードウェアを追加しない限り(高速な伝送で必要となる)ツイストペア技術を 使うことができません。シリアルポート用の最新技術も存在しますが、これら は EIA-232 のような PC の標準ではありません。 EIA-232 の後継をご覧ください。 一部のマルチポートシリアルカードはこれらをサポートしています。

1962 年に作られた RS-232 規格がツイストペア技術を使っていないことはあ る意味悲劇です。これを使っていれば 100 倍高速に動作できたはずなのです から。ツイストペアは電話線には 19 世紀の末期から使われてきました。 1888 年(110 年以上も前)の「ケーブル会議(Cable Conference)」は、ツイス トペアの(電話システムへの)支持とその利点を報告しています。ですが、 「ケーブル会議」での合意は、80 年以上も後の RS-232 では生かされません でした。RS-232 は元々、端末をその隣に置いた低速モデムと接続するために 設計されたので、高速・長距離の伝送に関する必要性は理解されなかったよう です。

4.3 コンピュータへのインタフェースの非効率さ

コンピュータを使って通信するには、どんな I/O デバイスであってもコン ピュータが読み書きできるアドレスが必要です。この目的のために多くの I/O デバイス(シリアルポート等)は I/O アドレスと呼ばれる特殊なアドレスを持っ ています(I/O ポートと呼ばれることもあります)。これは実際には、あるアド レスの範囲であり、一番低位のアドレスがベースアドレスになります。単に 「アドレス」と言われた(書かれた)場合は、実際は大抵「ベースアドレス」を 指しています。

一部の I/O デバイスは I/O アドレスを使う代わりに、直接メインメモリの読 み書きを行います。これを用いると大きな帯域を利用できます。というのも、 昔ながらのシリアル I/O システムでは同時に 1 バイトし か転送できないからです。その方法の一つは共有メモリ I/O と呼ばれるもの です(共有メモリは普通、I/O デバイスと同じカード上にあります)。他の方法 としては ISA バスの DMA(direct memory access, 直接メモリアクセス)や、 PCI バスでの DMA と同様の仕組み(速度はずっと速い)である 「バスマスタリング」があります。これらの方法は、シリアルポートの方式よ りもずっと高速です。したがって、(14 バイトごとの)割り込み駆動インタフェー スを持ち、バス自体が 4(または 8)バイトをまとめて処理できるのに 1 バイ トずつしか送信できない昔ながらのシリアルポートは、超高速の I/O には向 いていません。


次のページ 前のページ 目次へ