Specifications of Bus
| Name | Version | Voltage(s) | Encode | Channel(s) /way | Efficiency /Freq. | Frequency (Baud rate) | n- duplex | Estimated Latency(1B) | note |
|---|---|---|---|---|---|---|---|---|---|
| SDRAM | SDR | 3.3V | 64 | 1 | 66/100/133MHz | Half | 8 | Single Data Rate | |
| DDR SDRAM | DDR1 | 2.5V | 64 | 2 | 100-200MHz | Half | 16 | Double Data Rate‡ | |
| DDR2 | 1.8V | 100-266MHz | |||||||
| DDR3 | 1.5V | ||||||||
| DDR4 | 1.2V | 200-400MHz | Rambus' patent P2P protocol† | ||||||
| SD Card | Default | 3.3V | 1 | 12.5MB/s | Half | ? | SanDisk | ||
| High Speed | 25MB/s | ? | |||||||
| Ultra High Speed 1 | 1.8V | 104MB/s | ? | ||||||
| Ultra High Speed 2 | 0.4V | 156MB/s | Full | ? | Suspicious of EMI | ||||
| PCI | 1.0 | 5V | 32 | 1 | 33MHz | Half | 4 | ||
| 2.0 | 3.3V | 33/66MHz | |||||||
| PCI-X | 2.1 | 3.3V | 64 | 1 | 66/133MHz | Half | 8 | ||
| PCI Express | 1.1 | 0.8V | NRZ 8b/10b | 1 | 0.8 | 2.5GT/s | Full | 10 | T=Transaction |
| 2.0 | 5GT/s | ||||||||
| 3.0 | NRZ 128b/130b | 0.985 | 8GT/s | 130 | |||||
| 4.0 | 16GT/s | ||||||||
| 5.0 | 32GT/s | ||||||||
| 6.0 | 0.4V,0.13V, -0.13V,-0.4V | PAM-4 ECC 1b/1b | 2 | 32GHz | 2048 | FLIT=256B FEC by CRC | |||
| 7.0 | 64GHz | ||||||||
| Serial ATA | 1.0a | 1.5V | 8b/10b | 1 | 0.8 | 1.5GHz | Half | 10 | Tx and Rx pins are assigned but are not twisted so Half-duplex |
| 2.0 | 1.0V | 3GHz | introduced NCQ | ||||||
| 3.0 | 0.5V | 6GHz | Backward compat. | ||||||
| USB | 1.0 | 3.3V | NRZI | 1 | 1 | 750kbit/s | Half | 8 | Low Speed |
| 1.1 | 6Mbit/s | Full Speed | |||||||
| 2.0 | 240Mbit/s | High Speed | |||||||
| 3Gen1 | 0.8V | 8b/10b | 0.8 | 5GT/s | Full | 10 | Super Speed | ||
| 3Gen2 | 128b/132b | 0.97 | 10GT/s | 132 | Super Speed+ | ||||
| USB4 v.1 | 64b/66b | 1 | 5.4Gbit/s | 66 | Tunneling ESS, DP(1 port), PCIe(Optional) | ||||
| 2 | |||||||||
| USB4 v.2 | +0.4V, 0, -0.4V | 128b/128t PAM3 RS-FEC | 1 | 1 | 10GT/s | 128 | |||
| 2 | |||||||||
| 3 | Tx:3 Rx:1 | Side Band(SBU1 and SBU2) are used to control flow | |||||||
| Lightning | 2.0 | 3.3V | scrambled | 1 or 2 | <1 | 240Mbit/s | Half | 8 | Apple's patent |
| 3Gen1 | 0.8V | 1 | <0.8 | 5GT/s | Full | 10 | |||
| FireWire iLink | IEEE1394.a | +0.5V,-0.5V | Data/Strobe encode(NRZ+NRZ XOR clock) | 1 | 1 | 100Mbit/s 200Mbit/s 400Mbit/s | Half | 8 | 4pin/6pin |
| FireWire | IEEE1394.b | +0.5V,-0.5V | 8b/10b | 1 | 800Mbit/s | Full | 10 | 9pin | |
| Thunderbolt | 3 | 0.8V | 64b/66b | 4 | 0.97 | 5.4Gbit/s | bi- direct ional | 66 | Tunneling DP(2 ports), PCIe (Type-C connector) |
| 4 | Tunneling ESS, PCIe3 x4 compared to th3(PCIe3 x2) | ||||||||
| 5 | 128b/128t PAM3 RS-FEC | 2 | 1 | 10GT/s | Full | 128 | PCIe4 x4 | ||
| 3 | Tx:3 Rx:1 | Side Band(SBU1 and SBU2) are used to control flow | |||||||
| Ethernet | 10BaseT | +2.5V,-2.5V | Phase Encoding | 1 | 0.5 | 20MHz | Full | 8 | Manchester Encoding |
| 100BaseTX | +1V,0,-1V | 4b/5b MLT-3 | 0.8 | 125MHz | 10 | 100Mbit/sec | |||
| 1000BaseT | +1V,+0.5V,0, -0.5V,-1V | 4D-PAM5 | 4 | 2 | Half | 64 | needs flow control | ||
| Wireless LAN | IEEE802.11b | OFDM | multiple | carrier=2.4GHz | Half | variable | Usable band is limited by the laws of the country. | ||
| Bluetooth | 1.0 | GFSK | 1 | 1 | band=1MHz carrier=2.4GHz | Half | 8 | Basic Rate* | |
| 2.0 | π/4-DQPSK | 2 | 16 | Enhanced Data Rate* | |||||
| 3.0 | 8-DPSK | 3 | 24 | Enhanced Data Rate3* |
‡ DDR is Phase-coded thus trivial; same in SDR. † Data Bus can be reduced to min. 16bit(Single-chip).
* Every Bluetooth node is Frequency-Hopping and driven by Time-Division.
Estimated Latency is significant when small amount of data was sent. Large number of latency results in faster burst mode.
For network system(includes IEEE1394(the window for each device to Isochronous Transfer is not defined),
Thunderbolt(no master), LAN(STP) and Bluetooth(piconet&scatternet)) can not determine an arbitrator
because they are not weighted-graph. For Bluetooth, only 1-way broadcast such as LE is possible.
For Wireless LAN(=obviously broadcast), only UDP is possible. Each device to send signal must wait for their window, Only isochronous transfer and interrupt transfer are allowed(deterministic).→Damb Hub(Repeater)
PCIeのトポロジーはスター型だが、論理的にバス型として扱われる。よって、各エンドポイントが同時に発火することはない。つまり、PCIeはバス型の制約を受けるので、同時の入出力はない。これはDMAが嘘であることを示唆している。多重ロックはない。パケットのやり取りができればよい。FireWireとThunderboltにも同じことが言える。なお、FireWireとThunderboltは、片方のポートからの入力を他方のポートに(自デバイス宛のパケットを除いて)出力するよう規定されているので、実質的にバス型である。
スター型とバス型のトポロジーの変換はかなり疑わしい(STPと同じ問題が起こるだろう)。多次元配列を一次元配列にパッキングできるのかという問題に相当する。答えは不可能。スター型で問題なく運用するにはUSB1.1のようにダムハブ(Broadcast)するしかない。多段のNATは動作しないから。
USB1.1とUSB2.0の間にTTが置かれるが、その速度差からブロードキャストできないであろう。二つの速度が共存する場合、遅い方に合わせるのが普通である。なぜなら、二つの速度の窓関数の連立方程式を常に解き続けなければならないから不可能である。要は決め打ちでないとできない。
1Gbitのメモリチップをリフレッシュすることを仮定しよう。メモリチップが100MHzで駆動しているなら、メモリアクセスがない条件で全ビットのリフレッシュに10secかかる。必要なのは数十ミリ秒程度なので不可。ここ数十年でメモリチップの速度は大して向上していない(メモリモジュールの話ではない)。100MHzのメモリチップ速度として、10msecで全ビットをリフレッシュするなら、現実的には1Mbitチップが妥当な線だ。ランク{(内部の)チップの数}を増やして対応するしかない。そして、これはアクセスが一切ないという最善の条件だから、応用としては逆に考えよう。つまり、リフレッシュが最優先で、リフレッシュがその行列に対応するまで、メモリアクセスが待たされる(窓関数)。と考えれば、問題は解決する。この条件でもバーストモードは可能である。ただし、その遅延は不定(10nsec~10msec)である。メモリ容量が大きければ遅延も大きくなる。
デュアルチャネル動作で128bit幅として、1Mbit×128=16MB程度のDRAMが限界である(クアッドチャネルなら2倍の32MB)。
メモリを増やすにはどうすればよいのか?ヒントはマイクロソフトが十年以上前に出している。Ready-Boostである。USBフラッシュメモリを刺すだけで高速化できるのが売りである。USBメモリの容量はメインメモリの2倍程度がおすすめらしい。なぜならReady-Boostの正体はファイルマップドI/Oだから。USBメモリの容量とほぼ同じファイル(恐らく隠しファイル)を用意し、そのファイルへのI/Oをメインメモリにマップするのである。一次記憶と二次記憶という用語がある。一次記憶はDRAM、二次記憶はHDD/SSD/フラッシュメモリである、とされている。が、一次記憶はそもそも使われていないと考えよう。つまり、二次記憶上のファイル(あるいは二次記憶上のブロック単位の領域)の全部あるいは一部をメインメモリとして使っているのである{正確には二次記憶の一部を仮想記憶のアドレスにマップする(MMUの仕事です)}。つまり、DRAMはただのリミッターのようなものであり石である、というか、DRAMは要らない、クズだ。なんでマイクロソフトがDRAMメーカーに儲けさせているのかわからない。RamDiskは全く意味がない。DOSから何も変わっていない。DiskベースのI/Oが全てである。
SSD/フラッシュメモリはSLC/MLC/TLC/QLC(それぞれ2値4値8値16値)とあるが、データとして取りうる値に少なくとも2値足さなければならない(2値→4値,4値→6値,8値→10値,16値→18値)。なぜなら、書き込める状態(データなし)と削除済み(トリム前)の二つの状態を考慮しなければならないから。その2値分はコントローラチップの不揮発性RAMにセクター単位で記録されているのだろう。その2値の統計を取ればウェアレベリングにも使えるだろう。
誰もドライバーなど書けないし、デバイスも作れない。すべてはフィルタードライバーとモックアップの組み合わせである。お茶を濁している。