直感的には、パラレルデータ伝送はシリアルデータ伝送よりも速いはずです。パラレルでは、同時に多数のビットを転送していますが、シリアルでは、一度に1ビットを転送しています。
それでは、SATAインターフェイスがPATAより高速、PCI-eデバイスがPCIより高速、シリアルポートがパラレルより高速になっている理由は何でしょうか。
このように定式化することはできません。
シリアル伝送は、同じ信号周波数を考慮すると、パラレル伝送より遅いです。 パラレル転送では1サイクルあたり1ワード(1バイト= 8ビットなど)を転送できますが、シリアル転送では1分の1(1ビットなど)しか転送できません。
最近のデバイスがシリアル伝送を使用する理由は次のとおりです。
設計上、トランスミッタからのすべての信号が同時にレシーバに到達する必要があるため、無制限にパラレル伝送の信号周波数を上げることはできません。signal transit timeがすべての信号線で等しいことを保証することはできないので、これは高周波数では保証できません(メインボード上の異なるパスについて考えてください)。周波数が高いほど、小さな違いがより重要になります。それ故、受信機は全ての信号線が安定するまで待たなければならない - 明らかに、待機は転送速度を低下させる。
( この記事 から)もう1つの良い点は、パラレルシグナルラインでクロストークを考慮する必要があるということです。周波数が高いほど、クロストークが顕著になり、それと共にWordの破損確率が高まり、それを再送信する必要が生じます。1
そのため、シリアル転送で1サイクルあたりの転送データ量が少なくても、はるかに高い周波数に移動するとネット転送速度が速くなります。
1 これはまた、 UDMA-Cables (転送速度を上げたパラレルATA)がピンの2倍のワイヤ数を持っていた理由も説明しています。クロストークを減らすために、2本おきにアースされています。
問題は同期です。
並行して送信する場合、その瞬間のウィンドウのサイズが小さくなるにつれて速くなるので、すべてのラインを同時に測定する必要があります。あなたが時間切れになる前に他の人が終わっている間。
シリアルで送信することで、すべてのラインが安定するのを心配する必要はもうありません。1ラインだけです。また、同じ速度で10本の線を追加するよりも、1本の線を10倍早く安定させる方が費用効率が高くなります。
PCI Expressのようなものは両方の長所を最大限に利用します、彼らはシリアル接続のパラレルセットをします(あなたのマザーボードの16xポートは16のシリアル接続を持っています)。こうすることで、相手方のコントローラが正しい順序で入ってくるデータの「パケット」を並べ替えることができる限り、各行を他の行と完全に同期させる必要はありません。
PCI-Express用のStuff Worksページ は、シリアルのPCI ExpressがPCIまたはPCI-Xのパラレルよりも高速になる可能性があることについて非常に詳しく説明しています。
TL; DRバージョン:非常に高い周波数に達すると、1回の接続で8回の接続が2倍速くなるのが簡単です。
パラレルは本質的には低速ではありませんが、シリアル通信では起こらない問題を引き起こします。
しかし、最も高速なリンクの多くはまだパラレルです。コンピュータのフロントサイドバスは通常、高度にパラレルであり、通常はコンピュータ内の最も高速なインターリンクの1つです。光ファイバ接続は、単一のファイバを介して複数の波長を伝送することによって、高度に平行にすることもできます。これは高価であり、それゆえ典型的ではありません。ギガビットイーサネットの最も一般的な形式は、実際には単線で250Mビットイーサネットの4つのパラレルチャネルです。
並列処理によってもたらされる最も顕著な課題は「クロストーク」です。信号電流が開始または停止すると、その隣のワイヤに瞬間的に小さな電流が流れます。信号が速くなればなるほど、これがより頻繁に起こり、それをフィルタリングすることがより困難になります。 Parallel IDEは、リボンケーブルのワイヤ数を2倍にし、1本おきにアースに接続することによって、この問題を最小限に抑えようとしました。しかし、その解決策はあなたをこれまでのところしか導きません。長いケーブル、折り目とループ、および他のリボンケーブルへの近さのすべてが、これを非常に高速の信号に対する信頼できない解決策にしています。
しかし、信号線が1本しかない場合は、ハードウェアで可能な限り高速に切り替えることができます。それはまた、ある信号が他の信号より速く伝わるという微妙な同期問題を解決します。
2本のワイヤは常に理論的には1本の2倍の速さですが、追加する各信号線は微妙に複雑になるため、避けたほうが良い場合があります。
シリアルデータ転送はパラレルより速くありません。それはより便利であり、それで開発は機器ユニット間の高速外部シリアルインターフェースを作ることになった。 50本以上の導体を持つリボンケーブルを扱う人はいません。
回路基板上のチップ間では、2本のワイヤしか必要としないI2Cのようなシリアルプロトコルは、多数のパラレルトレースを配線するよりもはるかに簡単に対処できます。
しかし、並列処理を使用して帯域幅を大幅に増やすために、コンピュータの内部にたくさんの例があります。たとえば、ワードはメモリから一度に1ビットずつ読み取られません。そして実際には、キャッシュは大きなブロックで補充されます。ラスタ表示は、もう1つの例です。複数のメモリバンクへの並列アクセスで、ピクセルを高速に、並列に取得します。メモリバンド幅は、並列処理に大きく依存します。
「世界最速の市販10ビット高速DAC」としてテクトロニクスが推奨しているこのDACデバイス は、データを取り込むために並列処理を多用しています。これは320ラインでDACに入力され、マスター12GHzクロックの異なる分周によって駆動される2段階のマルチプレクシングによって10に削減されます。世界最速の10ビットDACが単一のシリアル入力ラインを使って作られることができるならば、それはおそらくそうでしょう。
パラレルは、バス/ケーブルおよびオンチップ伝送に同様の電気技術を使用できるほど論理ゲートが遅い場合に速度を上げるための明らかな方法でした。既にトランジスタの許容範囲内でワイヤを切り替えている場合、スケーリングする唯一の方法はより多くのワイヤを使用することです。
時間が経つにつれて、ムーアの法則は電磁的制約を上回り、ケーブル、またはオンボードバスでの伝送もオンチップ速度と比較してボトルネックになりました。速度の不均衡であるOTOHにより、末端での高度な処理がチャネルをより効果的に使用できるようになります。
伝搬遅延が数クロックのオーダーに近づくと、反射などのアナログ効果について心配し始める=>途中でインピーダンスが一致する必要があり(特にコネクタには扱いにくい)、マルチポイントバスよりもポイントツーポイントのワイヤを好む。そのため、SCSIにはターミネーションが必要であり、USBには単純なスプリッターの代わりにハブが必要です。
より高速では、ワイヤに沿って任意の瞬間に複数のビットが飛行します=>パイプラインプロトコルを使用する必要があります(これがIntelのFSBプロトコルが恐ろしく複雑になった理由です。PCIeのようなパケット化プロトコルは反応だったと思いますこの複雑さに)。
もう1つの効果は、信号フローの方向を切り替えるためのマルチサイクルペナルティです。そのため、方向ごとに専用ワイヤを使用するFirewireとSATAおよびPCIeは、USB 2.0を上回りました。
誘導ノイズ、別名クロストークは、周波数とともに上昇します。速度における最大の進歩は、クロストークを劇的に削減する差動信号方式の採用によるものでした(数学的には、不平衡電荷の場はR ^ 2になりますが、双極子の場はR ^ 3になります)。
これが「シリアルがパラレルより速い」印象を引き起こした原因だと思います-ジャンプが大きすぎて、1つまたは2つの差動ペアになり、LPTまたはIDEケーブル。また、ケーブルに信号ペアが1つしかないことによるクロストークの勝利もありましたが、それはわずかです。
ワイヤ伝搬遅延が変化し(ワイヤ長が90ºターン、コネクタなどで一致しにくいため、および他の導体からの寄生効果のため)、同期が問題になりました。
解決策は、すべての受信機で調整可能な遅延を設定し、起動時および/またはデータ自体から継続的に調整することでした。 0または1のストリークを回避するためにデータをエンコードすると、小さなオーバーヘッドが発生しますが、電気的な利点があり(DCドリフトを回避し、スペクトルを制御します)、最も重要なのは、クロックワイヤを完全にドロップできることです(これは、 40の信号の上に大きな問題がありますが、シリアルケーブルが2つまたは3つではなく1つまたは2つのペアを持つのは大きな問題です。
areボトルネックで並列処理を行うことに注意してください。今日のBGAチップには数百または数千のピンがあり、PCBにはさらに多くの層があります。これを古い40ピンマイクロコントローラーと2層PCBと比較してください...
上記の技術のほとんどは、両方パラレルおよびシリアル伝送に不可欠になりました。ワイヤーが長くなればなるほど、より少ないワイヤーでより高いレートをプッシュすることが魅力的になります。