π ΠΡΠ°ΡΠΊΠΎ
PCIe (Peripheral Component Interconnect Express) β Π²ΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΠ½Π° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΊ CPU ΠΈ RAM, ΠΏΡΠΈΡΠ΅Π΄ΡΠ°Ρ Π½Π° ΡΠΌΠ΅Π½Ρ PCI ΠΈ AGP.
π§ ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
PCIe ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡΠΊΠ°-ΡΠΎΡΠΊΠ° (point-to-point) ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΉ ΡΠΈΠ½Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ PCIe Device ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ Root Complex ΡΠ΅ΡΠ΅Π· Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ (lanes), ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ β ΡΡΠΎ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊΠ°Π½Π°Π» (1 Π±ΠΈΡ Π½Π° ΠΏΡΠΎΠ²ΠΎΠ΄).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ:
- ΠΠΎΠ»Π½Π°Ρ Π΄ΡΠΏΠ»Π΅ΠΊΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ
- ΠΠ°ΠΊΠ΅ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» (TLP + DLLP)
- ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ°: Root Complex β Switch β Endpoints
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° DMA, ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, hot-plug, peer-to-peer
βοΈ ΠΠ΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
---|---|
GPU | ΠΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ |
NVMe SSD | ΠΠΈΠ·ΠΊΠΈΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, Π²ΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ |
NIC | 10G/40G/100G ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΊΠ°ΡΡΡ |
FPGA | ΠΡΡΠΎΠΊΠΎΡΠΊΠΎΡΠΎΡΡΠ½ΠΎΠΉ ΠΎΠ±ΠΌΠ΅Π½ Ρ Ρ ΠΎΡΡΠΎΠΌ |
Capture Cards | ΠΠΈΠ΄Π΅ΠΎ-Π²Π²ΠΎΠ΄ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ |
π» ΠΡΠΈΠΌΠ΅Ρ (Π½Π° ΡΡΠΎΠ²Π½Π΅ Linux)
lspci | grep -i nvme
# ΠΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ PCIe-ΡΡΡΡΠΎΠΉΡΡΠ²Π° NVMe
π§© ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΡΡΠΎΠ²Π½ΠΈ PCIe
Π£ΡΠΎΠ²Π΅Π½Ρ | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ |
---|---|
Physical Layer | ΠΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ (Π»ΠΈΠ½ΠΈΠΈ) |
Data Link Layer | ΠΠ°Π΄ΡΠΆΠ½ΠΎΡΡΡ: ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ |
Transaction Layer | Π€ΠΎΡΠΌΠ°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ |
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π»ΠΈΠ½ΠΈΠΉ:
-
x1
,x2
,x4
,x8
,x16
,x32
β ΡΠΈΡΠ»ΠΎ laneβΠΎΠ² (Π΄ΠΎ 32 Π² PCIe 6.0) -
ΠΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ = (ΡΠΊΠΎΡΠΎΡΡΡ Γ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΠΈΠ½ΠΈΠΉ Γ 2)
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠΊΠΎΡΠΎΡΡΠ΅ΠΉ:
ΠΠ΅ΡΡΠΈΡ | ΠΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ (Π½Π° ΠΎΠ΄Π½Ρ Π»ΠΈΠ½ΠΈΡ) |
---|---|
PCIe 3.0 | 1 GB/s (Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎ) |
PCIe 4.0 | 2 GB/s |
PCIe 5.0 | 4 GB/s |
PCIe 6.0 | 8 GB/s |
π Π‘Ρ Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ
[CPU] ββ [Root Complex] ββ [Switch] ββ [Device #1]
β
[Device #2]
β ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°
-
ΠΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ
-
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ, ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» β ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅
-
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° DMA, Π³ΠΎΡΡΡΠ΅ΠΉ Π·Π°ΠΌΠ΅Π½Ρ, peer-to-peer
β ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
-
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ Π²Π΅ΡΡΠΈΠΈ (3.0, 4.0, 5.0β¦) Π½Π° ΠΏΠ»Π°ΡΠ΅ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅
-
ΠΠΎΠ²ΡΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠΏΠΈΡΠ°Π½ΠΈΡ
-
ΠΠ°Π΄Π΅ΡΠΆΠΊΠΈ Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ