Specifications of Bus

NameVersionVoltage(s)EncodeChannel(s)
/way
Efficiency
/Freq.
Frequency
(Baud rate)
n-
duplex
Estimated
Latency(1B)
note
SDRAMSDR3.3V64166/100/133MHzHalf8Single Data Rate
DDR
SDRAM
DDR12.5V642100-200MHzHalf16Double Data Rate‡
DDR21.8V100-266MHz
DDR31.5V
DDR41.2V200-400MHzRambus' patent P2P protocol†
SD CardDefault3.3V112.5MB/sHalf?SanDisk
High Speed25MB/s?
Ultra High
Speed 1
1.8V104MB/s?
Ultra High
Speed 2
0.4V156MB/sFull?Suspicious of EMI
PCI1.05V32133MHzHalf4
2.03.3V33/66MHz
PCI-X2.13.3V64166/133MHzHalf8
PCI
Express
1.10.8VNRZ
8b/10b
10.82.5GT/sFull10T=Transaction
2.05GT/s
3.0NRZ
128b/130b
0.9858GT/s130
4.016GT/s
5.032GT/s
6.00.4V,0.13V,
-0.13V,-0.4V
PAM-4 ECC
1b/1b
232GHz2048FLIT=256B
FEC by CRC
7.064GHz
Serial ATA1.0a1.5V8b/10b10.81.5GHzHalf10Tx and Rx pins are assigned but are not twisted so Half-duplex
2.01.0V3GHzintroduced NCQ
3.00.5V6GHzBackward compat.
USB1.03.3VNRZI11750kbit/sHalf8Low Speed
1.16Mbit/sFull Speed
2.0240Mbit/sHigh Speed
3Gen10.8V8b/10b0.85GT/sFull10Super Speed
3Gen2128b/132b0.9710GT/s132Super Speed+
USB4 v.164b/66b15.4Gbit/s66Tunneling ESS, DP(1 port), PCIe(Optional)
2
USB4 v.2+0.4V,
0,
-0.4V
128b/128t
PAM3 RS-FEC
1110GT/s128
2
3Tx:3 Rx:1Side Band(SBU1 and SBU2) are used to control flow
Lightning2.03.3Vscrambled1 or 2<1240Mbit/sHalf8Apple's patent
3Gen10.8V1<0.85GT/sFull10
FireWire
iLink
IEEE1394.a+0.5V,-0.5VData/Strobe
encode(NRZ+NRZ XOR clock)
11100Mbit/s
200Mbit/s
400Mbit/s
Half84pin/6pin
FireWireIEEE1394.b+0.5V,-0.5V8b/10b1800Mbit/sFull109pin
Thunderbolt30.8V64b/66b40.975.4Gbit/sbi-
direct
ional
66Tunneling DP(2 ports),
PCIe (Type-C connector)
4Tunneling ESS, PCIe3 x4 compared to th3(PCIe3 x2)
5128b/128t
PAM3 RS-FEC
2110GT/sFull128PCIe4 x4
3Tx:3
Rx:1
Side Band(SBU1 and SBU2) are used to control flow
Ethernet10BaseT+2.5V,-2.5VPhase Encoding10.520MHzFull8Manchester Encoding
100BaseTX+1V,0,-1V4b/5b MLT-30.8125MHz10100Mbit/sec
1000BaseT+1V,+0.5V,0,
-0.5V,-1V
4D-PAM542Half64needs flow control
Wireless
LAN
IEEE802.11bOFDMmultiplecarrier=2.4GHzHalfvariableUsable band is limited by the laws of the country.
Bluetooth1.0GFSK11band=1MHz
carrier=2.4GHz
Half8Basic Rate*
2.0π/4-DQPSK216Enhanced Data Rate*
3.08-DPSK324Enhanced 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値の統計を取ればウェアレベリングにも使えるだろう。

誰もドライバーなど書けないし、デバイスも作れない。すべてはフィルタードライバーとモックアップの組み合わせである。お茶を濁している。