Heterogén számítási rendszerek Bevezető Szerver architektúrák Kommunikációs interfészek Szántó Péter BME MIT, FPGA Laboratórium
HPC alkalmazások Computational Fluid Dynamics (CFD) Folyadék (gáz) áramlás szimuláció Időjárás előrejelzés Szeizmikus analízis Olaj/gáz kutatás Földrengés előrejelzés Kémiai informatika molekula fejlesztés Bioinformatika Gén kutatás, dokkolás Pénzügyi számítások Kockázat analízis
HPC példák: véráramlás szim. Az halálozási okok ~50%-a szívés érrendszeri betegségekre vezethető vissza a nyugati világban Az artériás betegségek kialakulása erősen korrelál a vér áramlási mintázatával Egy perc alatt a szív a teljes vérmennyiséget (~5 l) a teljes (~100.000 km) érhálózaton átpumpálja
HPC példák: időjárás előrejelzés Egyenletek: Newton 2. törvénye (3D) Termodinamikai egyenlet Kontinuitási egyenlet Ideális gáz egyenlete Horizontális felbontás Néhány 10 km Vertikális szintek Néhány 10 (OMSZ: 60) Pl. globális előrejelzés: 134.000 rácspont, 31 szint 24 millió ismeretlen és 24 millió egyenlet Időlépcső: 4 perc
HPC példák: virtual screening Molekula adatbázis: több millió molekula 1D (vagy 2D) leírója ( ujjlenyomat ) Cél: adatbázisok teljes összehasonlítása, kevéssé hasonló molekulák keresése Pl. Tanimoto távolság D c 1 S D a b c a, b a, b 1 limit
HPC példák: gén szekvenálás Humán genom: ~3 milliárd bázispár Next generation sequencing: ~100 bázispár hosszú darabok, 10-szeres lefedés ~300 millió szekvencia ( read ) Cél: a read illesztése egy referencia genom mintához Eltérések (akár kihagyások, beillesztések) megengedettek Szekvenálási hibák Genom eltérések
HPC TOP 8 Gép Magok Max. Tflops/s Linpack Tflops/s Power (kw) Sunway TaihuLight (Sunway SW26010 260C 1.45GHz), Kína Tianhe-2 (Xeon E5-2692 12C 2,2G + Xeon Phi 31S1P), Kína Piz Daint (Cray XC50, Xeon E5-2690v3 12C 2.6GHz, NVIDIA Tesla P100), Svájc Gyoukou (Xeon D-1571 16C 1.3GHz, PEZY-SC2 700Mhz), Japán Titan (Cray XK7 Opteron 6274 16C, 2,2G + NVIDIA K20x), USA Sequoia (IBM BlueGene PowerPC BQC 16C, 1,6G), USA Trinity (Cray XC40, Intel Xeon Phi 7250 68C 1.4GHz), USA Cori (Cray XC40, Intel Xeon Phi 7250 68C 1.4GHz), USA 10.649.600 125.435 93.014 15.371 3.120.000 54.902 33.862 17.808 361.760 25.326 19.590 2.272 19.860.000 28.192 19.135 1.350 560.640 27.112 17.590 8.209 1.572.864 20.132 17.173 7.890 979.968 43.902 14.137 3.844 622.336 27.880 14.014 3.939
HPC TOP 8: 1. & 2. Sunway TaihuLight Sunway SW26010 260C 1.45GHz CPU 10.649.600 mag 1,310 TB RAM 93.014 LP TFlop/s 15.37 MW Tianhe-2 Intel Xeon E5-2692 16.000 CPU+2xPhi 3.120.000 mag 1 TB RAM 54.902 TFlop/s 17 MW
HPC TOP 8: 3. & 4. Piz Daint Xeon E5-2690v3 12C 2.6GHz NVIDIA Tesla P100 GPU 361.760 mag 0,34 TB RAM 15.590 LP TFlop/s 2.27 MW Gyoukou Xeon D-1571 16C 1.3GHz PEZY-SC2 700Mhz 19.860.000 mag 0,575 TB RAM 19.135 TFlop/s 1.35 MW
HPC Green TOP 8 Gép Magok Max. Tflops/s Power Eff. (Gflops/W) Shoubu system B (Xeon D-1571 16C 1.3GHz, PEZY-SC2), Japán Suiren2 (Xeon D-1571 16C 1.3GHz, PEZY- SC2), Japán Sakura (Xeon E5-2618Lv3 8C 2.3GHz, PEZY-SC2), Japán DGX SaturnV Volta (Xeon E5-2698v4 20C 2.2GHz, NVIDIA Tesla V100), USA Gyoukou (Xeon D-1571 16C 1.3GHz, PEZY- SC2 700Mhz), Japán TSUBAME3.0 (Xeon E5-2680v4 14C 2.4GHz, NVIDIA Tesla P100), Japán AIST AI Cloud (Xeon E5-2630Lv4 10C 1.8GHz, NVIDIA Tesla P100), Japán RAIDEN GPU (Xeon E5-2698v4 20C 2.2GHz, NVIDIA Tesla P100), Japán 794.400 842 17 762.624 788 16,76 794.400 824 16,65 22.440 1.070 15,11 19.860.000 19.135 14,17 135.828 8.125 13,7 23.400 961 12,68 11.712 635 10,6
Sunway SW26010 Kína saját fejlesztésű HPC processzora MPE: Management Processing Engine 64-bit RISC, 256-bit vector, 32 kb L1, 256 kb L2 CPE: Computing Processing Element 8x8 64-bit RISC mag, 256-bit vector, 16 kb L1 Icache, 64 kb Scratch Pad memory
Pezy SC-2
Környékünk NIIF HPC cluster Budapest Budapest 2 Szeged Debrecen Debrecen 2 Debrecen Pécs Miskolc Típus CPU magok HP CP4000S L HP SL250s HP CP4000BL SGI ICE8400EX HP SL250s HP Apollo 8000 SGI UV 1000 SGI UV 2000 768 280 2400 1536 1344 1080 1152 352 / node Gyorsítók - Linpack (Rmax) 66 GB 63 GB 132 GB 47 GB 125 GB 125 GB 6 TB 1.4 TB 28 db Intel Xeon Phi 12 db Nvidia M2070-204 db Nvidia K20x 48 db Nvidia K40x 88 db Intel Xeon Phi - - 5 Tflops 27 Tflops 20 Tflops 18 Tlops 254 Tflops 106 Tflops 10 Tflops 8 Tflops
Párhuzamos architektúrák
Amdahl törvény Gyorsíthatunk, de.. B: Az algoritmus sorosan végrehajtandó része (0 1) n: a párhuzamosítható részek gyorsítási szorzója S n = B + 1 n 1 1 B Még ha az algoritmus 95%-a párhuzamosítható is.
Alapfogalmak Symmetric MultiProcessing Minden mag látja a teljes memóriát Minden mag teljes hozzáféréssel rendelkezik a memóriához Tipikusan max. ~32 mag Non-Uniform Memory Architecture (NUMA) Minden processzor saját memóriával rendelkezik, a processzoronkénti sávszélesség jóval nagyobb A memória elérés függ a processzor memória távolságtól ccnuma: cache coherent NUMA
Alapfogalmak Pipeline végrehajtás (IF-ID-EX-WB) instruction 1 2 3 4 5 6 7 IF RD IF EX RD IF WB EX RD IF WB EX RD IF WB EX RD IF WB EX RD IF WB EX RD WB EX WB cycle 1 2 3 4 5 6 7 8 9 10 Szuperskalár processzor Több utasítás fetch órajelenként (!= pipeline) instruction IF RD EX WB 1 IF RD EX WB IF RD EX WB 2 IF RD EX WB IF RD EX WB 3 IF RD EX WB cycle 1 2 3 4 5 6
Alapfogalmak In-order utasítás végrehajtás Az assembly utasítások a kódnak megfelelő sorrendben hajtódnak végre (fetch wait execute - write) Out-of-order (OoOE) utasítás végrehajtás A processzor átrendez(het)i az utasítások sorrendjét Fetch - dispatch (wait) execute queue write Elágazás becslés Statikus (pl. backward igen, forward nem) Dinamikus (pl. szaturációs számláló) Pl. 2 biten 0 3 között számoljuk, hogy hányszor ugrottunk Becslés: >= 2 esetén ugrás Több számláló, PC néhány bitje választja ki, hogy adott elágazáshoz melyik tartozik
Alapfogalmak SISD Single Instruction Single Data SIMD Single Instruction Multiple Data Intel MMX, SSEx, AMD 3DNow!, Intel AVX, Power AltiVec, ARM NEON MIMD Multiple Instruction Multiple Data Pl. GPU VLIW: Very Long Instruction Word Utasítás szintű párhuzamosítás fordítási időben
Alapfogalmak (MT) Többszálúság (multi-threading) Temporal MT: az egymást követő utasítások származhatnak más szálból Simultaneous MT: a processzor feldolgozó egységei ugyanazon órajelben más-más szállal foglalkoznak (szuperskalár) Multi-core: több, teljes processzor mag egy szilíciumon Architektúrák Intel HT: SMT, 2 szál IBM POWER5, POWER6: SMT, 2 szál IBM POWER7: SMT, 4 szál Sun Niagara: TMT, 8 szál
CPU Cache Miért kell? DRAM hozzáférés tulajdonságai Kis késleltetés Cache-ben: Tárolt memória cím (TAG) cache találat megállapítás Adat cache line írás Write-through: minden cache írás hatására frissül a RAMban az adat Write-back: adat kiírás a cache frissítése esetén Cache koherencia Több CPU mag, DMA képes HW (cache invalidálás)
Direct-Mapped Cache A memória minden egyes címe pontosan egy Cache blokkban lehet cache-elve Cache
Full-Associative Cache Bármelyik memória a Cache bármelyik blokkjában lehet cache-elve Cache
Set-Associative Cache N-way associative (N utas): a memória adott címe N cache-blokkban lehet cache-elve Cache Pl. Core i7: 8-way L1 & L2 cache; 16-way L3
Intel Xeon Broadwell architektúra Xeon-D-15xx: SoC, 4-16 mag, 1,3-2,4 GHz, 20-65W, $200-$1700 Xeon E3 v4/v5: 4 mag, 1,8-3,5 GHz, 1 utas, $400-$600 Xeon E5-16xx v4: 4-8 mag, 2,8-3,7 GHz, 1 utas, $300-$1700 Xeon E5-26xx v4: 4-22 mag, 1,9-3,5 GHz, 2 utas, $200-$4500 Xeon E5-46xx v4: 8-22 mag, 1,8-2,5 GHz, 4 utas, $1200-$7000 Xeon E7-48xx v4: 8-16 mag, 2 GHz, 4 utas, $1200-$3000 Xeon E7-88xx v4: 4-24 mag, 2-3,2 GHz, 8 utas, $3000-$9000 Skylake architektúra Xeon E3-12xx/15xx v5: 4 mag, 2-3,7 GHz, 1 utas, $200-$1200 Xeon W-21xx: 4-18 mag, HT, 2,3-3,7 GHz, 1 utas, $200-$2500 Xeon Bronze/Silver: 4-12 mag, HT, 1,7-2,6 GHz, 2 utas, $200-$1000 Xeon Gold: 4-22 mag, HT, 2-3,5 GHz, 4 utas, $1200-$5200 Xeon Platinum: 4-28 mag, HT, 2-3,6 GHz, 8 utas, $3000-$13000 Kaby Lake architektúra Xeon E3-12xx/15xx v6: 4 mag, 3-4 GHz, 1 utas, $200-$600
A múlt: Intel Xeon 5400/7400 Intel Core mikroarchitektúrájú processzorok 14 lépcsős pipeline ALU: 3 végrehajtóegység FPU: FMUL/FDIV + FADD SSE: 3x128 bit végrehajtóegység Xeon 5400, Socket 771 Max: FSB 1600 MHz, 4 mag, 3,4 GHz, $1500 256 kbyte L1, 2x6 mbyte L2 cache Xeon 7400, PGA604, 2mrd tr. Max: FSB 1066 MHz, 6 mag, 2,66 GHz, $2800 256 kbyte L1, 3x3 mbyte L2, 12 mbyte L3 cache
Xeon 7400 4 utas CPU CPU CPU CPU PGA604 foglalat DDR2-667 4x64 bit Max. 32 DIMM Max. 512 Gbyte PCIe 1.1 PCIe x4 PCIe x4 PCIe x4 PCIe x4 FSB FSB Intel 7300 MCH PCIe x4 PCIe x4 ESI FSB FSB Max. x8 SATA PCIe x8 PCI-X 133 MHz PATA USB ETH Intel ICH PCIe x4 PCI-X PCI
Front Side Bus (FSB) Igazi párhuzamos busz (~170 vezeték) Szétválasztott cím és adatbusz 36 bites címbusz 2 irányú, 64 bites adatbusz, strobe jelek 2 byte-onként Max. 5 egység (800 MHz) max. 2 egység (1066 MHz) quad data rate Minden kommunikáció az FSB-n keresztül! utasítások beolvasása a központi memóriából adatok beolvasása a memóriából, ill. kiírása a központi memóriába adatcsere a processzorok között periféria hozzáférések (a periféria buszától függetlenül)
FSB cím/control ciklus Cím/control: double data rate
Adat: quad data rate FSB adatciklus
XtremeData XD2000i LGA771 foglalatba illeszkedő FPGA alapú gyorsító Max. 1066 MHz FSB 3 Altera Stratix-III FPGA 1 FSB interfész 2 szabadon felhasználható 9,6 Gbyte/s busz kapcsolat 142k LE/FPGA 5,5 Mbit BRAM, 378 MUL 2x8 Mbyte QDRII SRAM 2x2,8 Gbyte/s
Nallatech FSB Accelerator PGA604 foglalatba illeszkedő FPGA alapú gyorsító Max. 1066 MHz FSB, stack-struktúra 1x FSB interfész modul, busz kapcsolat a többi modullal Felhasználói modulok 2x LX330T/SX240T/FX200T FPGA ~max 2 x 33000 LE 2x2 bank DDR-II SRAM Közvetlen FPGA-FPGA 1x LX330T/SX240T/FX200T FPGA ~max 33000 LE 4 bank DDR-II SRAM 20 GTP I/O
Intel Xeon 3000/5500 Intel Nehalem mikroarchitektúrájú 16 lépcsős pipeline, SMT ALU: 3 végrehajtóegység FPU: FMUL/FDIV + FADD SSE: 3x128 bit végrehajtóegység vezérlő a processzorban DDR3-1333 Xeon 5500, LGA1366 Max: 4 mag, 3,33 GHz, $1600 4x64k L1, 4x256k L2, 8 mbyte L3 cache
Xeon 5500 A processzorok QPI linken keresztül kapcsolódnak, gyakorlatilag megegyezik az Opteron struktúrával 19 25 Gbyte/s 2-utas SMT Integrált memória vezérlő DDR3-1333 3x64 bit 72 Gbyte/CPU PCIe 2.0, x16 PCIe 2.0 x16 PCIe 2.0 x4 PCIe 2.0 x4 SATA USB ETH CPU QPI QPI Intel IOH ESI Intel ICH QPI CPU PCIe x1 PCI
Xeon E7-8870 v3 Több-utas szerverekbe 18 mag/processzor SMT, 32 szál 4 csatornás DDR4 memóriavezérlő Max 1,5 TB memória CPU QPI CPU 32 PCIe lane QPI QPI QPI QPI 3 QPI interfész 45 MB L3 cache CPU QPI CPU QPI: 9,6 GT/s TDP: 140 W DMI Intel IOH
Xeon E5-2690 Intel Ivy Bridge mikroarchitektúra 14 lépcsős pipeline, SMT ALU: 3 végrehajtóegység FPU: FMUL/FDIV + FADD SSE: 3x128 bit végrehajtóegység AVX: 256 bites SIMD 25 MB cache 4 csatornás memóriavezérlő a processzorban DDR3-1866 40 PCIe lane 2 db 8 GHz QPI link
Intel QPI Hasonló a HyperTransport-hoz Egyirányú DDR adatvonalak (jelenleg 20 bit) Külön órajel A két irány adatszélessége eltérő lehet Nincs 8B/10B kódolás Max. 3,2 GHz órajel 25,6 Gbyte/s sávszélesség Csomag alapú 8 bit fejléc, 8 bit CRC, 64 bit adat Nallatech QPI gyorsító?
Xeon Skylake (31xx/41xx/51xx/61xx) QPI helyett UPI 2-4-8 utas konfigurációk (Bronze+Silver/Gold/Platinum)
Intel Xeon Phi (1.) Intel Many Integrated Core architektúra Sok, egyszerű x86 mag (P54C eredeti Pentium) Széles (512 bit) vektor feldolgozóegység
Intel Xeon Phi (2.) Vector ALU 16x512b RF Magok között belső ring bus
Xeon Phi 7120P PCIe kártya X16, 2.0 61 mag 30,5 MB cache 1,23 GHz (1,33 turbó) 512 bit GDDR5 memória interfész 352 GB/s sávszélesség 16 GB RAM
Xeon Phi - SW Programozás, API-k Intel matematikai könyvtár (Xeon Phi optimalizált) OpenMP pragmák, Intel ICC C fordító OpenCL
AMD Opteron AMD K10 mikroarchitektúra 12 lépcsős pipeline ALU: 3 végrehajtóegység SSE/FPU: 3 végrehajtóegység Integrált DDR2 memória vezérlő (800 MHz) AMD Opteron 23xx/837x (700m tr.) 4 mag; 3,1 GHz; $870/$2600 4x64k L1, 4x512k L2, 6M L3 cache AMD Opteron 24xx/84xx (900m tr.) 6 mag; 2,8 GHz; $1000/$2600 6x64k L1, 6x512k L2, 6M L3 cache
AMD Opteron A processzorok HyperTransport linken keresztül kapcsolódnak (a chipszethez is) x3xx: 1,1 GHz x4xx: 2,2 GHz vezérlő a processzorban 2x64 bit DDR2-800 >32 Gbyte/mag Chipset ATI, NVIDA, Broadcom PCIe 2.0 x16 PCIe 2.0 x16 PCIe 2.0 x16 CPU CPU HT HT SR5690 PCI USB HT HT HT HT CPU CPU SR5690 A-Link SP5100 PCIe 2.0 x16 PCIe 2.0 x16 SATA PATA
AMD Opteron 6000 AMD Magny-Cours Piledriver magok Magasabb IPC Jobb elágazásbecslés AVX utasításkészlet Max. 16 mag/cpu MCM (2x8 mag egy tokban) Max. 2,8 GHz (3,5 GHz turbó) frekvencia 4 csatornás 1866 MHz DDR3 memória interfész 16 MB cache
AMD Epyc A Zen architektúra (Ryzen CPU-k) szerver verziója 4 die multi-chip module 8-32 core, SMT; 8 DDR4 interfész 1 utas és 2 utas verziók Az egy tokban levő CPU-k, illetve a két utas tokok között Infinity Fabric kapcsolat 150 GB/s 8 csatornás DDR4 vezérlő tokonként 128 PCIe lane
Csomag-orientált pont-pont kapcsolat Egyirányú DDR adatvonalak 2, 4, 8, 16 vagy 32 bit 8 bitenként egy órajel és egy control vonal A két irány szélessége tetszőleges lehet Jelenleg 3.1 verzió HyperTransport Max. órajel frekvencia Max. link szélesség Sávszélesség (16 bit link, egy irányban) HT 1.1 800 MHz 32 3,2 GByte/s HT 2.0 1.4 GHz 32 5,6 Gbyte/s HT 3.0 3.2 GHz 32 12,8 Gbyte/s
HyperTransport HT csomag: 8-12 byte fejléc + 4-64 byte adat Megegyezik a fizikai rétegben és az átviteli rétegben 8B/10B kódolás opcionális (>HT 3.0) Szorosan csatolt periféria illesztést tesz lehetővé Kihasználtásg az átvitt adatméret (payload) függvényében
HT csomag (példa) Cmd: csomag típus SeqID: csomag csoportosítás, egy csoporton belül a csomagok sorrendje nem változik UnitID: eszköz azonosító (a másik fél a host bridge)
XtremeData XD2000F Socket-F foglalatba illeszkedő koprocesszor 400 MHz HT link! HT interfész FPGA Felhasználói FPGA Altera Stratix-II 180 180000 LE, 9 Mbit BRAM, 384 MUL18 4 bank QDRII SRAM 36 Mbyte 36 bit, 175 MHz
DRC Accelium Socket-F foglalatba illeszkedő koprocesszor 400 MHz HT link! FPGA Xilinx Virtex-5 LX330 330000 LE; 10,6 Mbit BRAM, 128 MUL 512 Mbyte RLDRAM 3,2 Gbyte/s 2x2 Gbyte DDR2 DRAM 6,4 Gbyte/s
x86 architektúrák sávszélesség HPC alkalmazás
Intel Itanium (1.) HP Intel közös fejlesztés 2001: Merced (~2 éves késés) ~VLIW utasítás, 2 mag 64 bites architektúra, órajelenként 6 utasítás FSB alapú architektúra, ~1,6 GHz max. órajel 2002: Itanium-2 2010: Itanium 9300 (~2 éves késés) 4 mag, 8 szál (SMT) 2 integrált memória vezérlő + SMI (Scalable Memory IF) Közös infrastruktúra a Nehalem-EX-szel QPI interfész, SMI 1,7 GHz órajel
Intel Itanium (2.) 2012: Itanium 9500 Új mikroarchitektúra 2x utasításfeldolgozás Max. 8 mag, 16 szál (SMT) 2 integrált memória vezérlő QPI interfész 32 nm, 1,7 2,5 GHz órajel 32 MB L3 cache
Chipkészlet: HP zx2 Itanium-2 (HP zx2) CPU CPU CPU CPU FSB sme mio sme PCIe x8 ioa ioa PCI-X 133 PCIe x8 ioa ioa PCI-X 133 PCI-X 266 ioa ioa PCI-X PCI-X 266 ioa ioa PCI-X
SGI Altix 4700 Itanium-2 alapú szerver család SGI NUMAlink-4 Elosztott osztott memória hozzáférés, kis késleltetés, jó skálázódás
SGI RC100 Altix 4700 rendszerbe illeszkedő, FPGA alapú gyorsító 2x Virtex-4 LX200 2x 5 csatorna QDR SRAM NUMAlink-4 kapcsolat TIO IC-n keresztül
IBM POWER6 POWER6 architektúra 2 CPU mag In-order, 2x SMT 2x ALU 2x FPU AltiVec vektor egység 5 GHz órajel 2x64k L1, 2x4M L2, 32M L3 (MCM) cache On-chip memória vezérlő (DDR2/DDR3)
IBM POWER7 POWER7 architektúra Out-of-order végrehajtás 4/6/8 CPU mag 3 4 GHz órajel 4x SMT magonként 2 ALU 4 FPU 1 AltiVec Magonként 32k L1, 256k L2 osztott 32M L3 2x DDR3 memória vezérlő Max. 32 utas kialakítás
IBM POWER8 POWER8 architektúra Out-of-order végrehajtás 4-12 CPU mag 2,5 5 GHz órajel 64K D, 32K L1 I-Cache 512K L2, 96MB edram L3 4x Off-chip memória vezérlő 128MB edram L4 DDR3, DDR4 max. 230 GB/s 8x SMT PCIe 3.0
SPECint/SPECfp SPECint 2006 & SPECfp 2006 eredmények (8 mag)
Bioinformatikai algoritmus Itanium Core2
Power8 vs. Haswell IBM által publikált számok, úgyhogy..
PCI PCI, PCI-X: igazi busz struktúra Multiplexált cím/adatvonal Half-duplex Multi-master, DMA 4 interrupt vonal Szabvány Adatszélesség Frekvencia Sávszélesség Mbyte/s PCI 32/64 bit 33 MHz 133/266 PCI 2.1 32/64 bit 66 MHz 266/528 PCI-X 1.0 64 bit 66/133 MHz 528/1056 PCI-X 2.0 64 bit 266/533 MHz 2112/4224
PCI Fontosabb jelek AD: cím/adatvonal C/BE#: parancs vagy byte engedélyezés FRAME#: aktív átvitel IRDY#: initiator (master) ready TRDY#: target ready Perifériák Target: nem kezdeményezhet buszciklust Bus master: lehet master a buszon A központi PCI vezérlő tipikusan NEM tartalmaz DMA vazérlőt!
PCI Parancsok (BUS CMD) Interrupt Ack Special Cycle I/O Read és Write Memory Read és Write Configuration Read és Write Dual Address Cycle (pl.: 64bit címzés)
PCI olvasási ciklus
PCI írási ciklus
PCI Express Soros, pont pont összeköttetés; helyreállított órajel Csomag alapú átvitel Szoftveresen kompatibilis a PCI-jal 1, 2, 4, 8 vagy 16 lane PCIe 1.1: 2,5 Gbit/s (8b/10b) 2 Gbit/s PCIe 2.0: 5 Gbit/s (8b/10b) 4 Gbit/s PCIe 3.0: 8 Gbit/s (128b/130b) 7,88 Gbit/s Kommunikáció Requester Completer PCIe 1.0 (Gbyte/s) PCIe 2.0 (Gbyte/s) x1 0,25 0,5 x4 1 2 x8 2 4 x16 4 8
PCIe architektúra Root Complex: központi vezérlő Kapcsolat a CPU-val és a memóriával Endpoint: periféria Completer Completer + Requester Nincs központi DMA vezérlő
PCIe Fizikai réteg: differenciális érpár Framing + CRC (2x64 bit) Átviteli réteg Fejléc: 3-4 DW Opcionális CRC: 1 DW Data payload: 128/256/512/1024/2048/4096 byte Root Complex & Endpoint támogatás kell!
PCIe Egy csomagban legfeljebb Data Payload-nyi adat Nagyobb méretű request-ek több csomagban
PCIe A PCIe késleltetése viszonylag nagy De újabb Request-ek elküldhetők a Completion megérkezése előtt
PCIe Egy Request-re adott Completion Egy csomagban Több csomagban a csomagok sorrendje címsorrendben Több, címfolytonos Request A Completion csomagok sorrendje NEM feltétlenül felel meg a címsorrendnek
Valós átviteli sebesség PCIe 1.1 és 2.0 buszon elérhető sebesség (Intel X58 chip, 256 byte Payload)
PCIe TLP Fejléc 1. DW (minden csomagban) Fmt 00 01 10 11 Type 0_0000 Memory Read Request 0_0000 Memory Write Request 00 0_1010 Completion, nincs adat 10 0_1010 Completion, adattal Length: 1 1024 DW (< Data Payload)
PCIe 32 bites Request TLP fejléc Requester ID: Bus number + Device Number + Function number Tag: Minden kintlévő, Completion-t igénylő üzenet egyedi azonosítója (kintlévő üzenetek száma < 32) BE: byte engedélyezés az első és utolsó DW-re Address: cím (DW cím)
PCIe 64 bites Request 3 helyett 4 DW a fejlécben
PCIe - Completion Completion TLP fejléc Tag: A Request-tel megygező Tag Byte Count: A Request-ből még hátralévő byte-ok száma
PCIe FPGA-val Külső PHY Soft-core MAC (minden FPGA) PCIe x1 PCIe PHY PCIe Core (soft) TLP Interface USER LOGIC FPGA Belső Gbit transmitter Soft-core MAC (pl. V2P, V4) PCIe x1/x4/x8 Gbit Trmit PCIe Core (soft) TLP Interface USER LOGIC FPGA Belső Gbit transmitter Hard-core MAC (pl. SP6, V5, V6) PCIe x1/x4/x8 Gbit Trmit PCIe Core (hard) TLP Interface USER LOGIC FPGA
FPGA megvalósítások FPGA x1 x4 x8 PCIe 2.0 hard IP Altera Arria II GX X X X X Altera Cyclone IV GX X X X Altera Startix IV GX X X X X X Altera Arria GX X X Altera Stratix II GX X X X Xilinx Spartan-6 X X Xilinx Virtex-II Pro X X X Xilinx Virtex-4 FX X X X Xilinx Virtex-5 X X X X Xilinx Virtex-5 FXT X X X X X Xilinx Virtex-6 X X X X X Lattice ECP2M X X Lattice ECP3 X X Lattice SCP X X X
PCIe FPGA interfész Gyakorlatilag Memory Read, Memory Write és Completion csomagok fogadása és generálása szükséges TLP interfész: 64 bites FIFO IF 1/4/8 lane: 62,5/125/250 MHz
PCIe Virtex5 - Transmit
PCIe Virtex5 - Receive
HT vs. PCIe - késleltetés HT: Opteron natív interfész (szorosan csatolt) HT: kevesebb járulékos információ ugyanannyi adathoz PCIe 8b/10b kódolás késleltetése
Elérhető sávszélesség
DINI Group DNBFC_S12_PCIe HPC alkalmazásokhoz fejlesztett olcsó megoldás 12 db Spartan-6 LX150 FGPA (~90000 LUT/FPGA) 256 Mbyte DDR3 SDRAM minden FPGA-hoz Virtex-6 FPGA a PCIe kapcsolathoz Az FPGA-k között 64 bites buszok
BME MIT ART1 Xilinx Virtex-5 SX240 FPGA 150000 LUT, 18Mbit BRAM, 1056 DSP egység 8-lane PCIe 1.1 csatlakozó 4 db, független DDR2 SODIMM foglalat DVI, Ethernet, SATA csatlakozó