Portál AbcLinuxu, 5. května 2025 23:14
Rodina jednodeskových počítačů (SBC) BeagleBoard se rozrostla o BeagleBoard-X15. Maloobchodní cena tohoto výkonného jednodeskového počítače s procesorem Sitara AM572x od Texas Instruments (TI), 2GB DDR3 RAM, 4GB 8-bit eMMC, 2× Gigabit Ethernet, 3× USB 3.0 a eSATA je 239 dolarů.
Tiskni
Sdílej:
Presne, ta cena to proste zabiji.
Přitom odpověď na read packet je asynchronně odesílaná jako další samostatný paket. Celá zpráv je na x86 několikrát přebalovaná, sériové DMI, chipset, pak se teprve balí na PCIe, a i samotná zpráva na PCIe je balena do třech vrstev, fyzická vrstva s hlavičkou na synchronizaci a kódováním 8 na 10 nebo 128 na 130 s řídicími symboly. Pak vrstva linková s LCRC, pak vlastní data, která mohou být chráněná ještě dalším CRC. Více Wikipedie nebo nástin z přednášky našeho předmětu okolo slide na straně 54.
https://cw.fel.cvut.cz/wiki/_media/courses/a0b36apo/lectures/05/a0b36apo_prednaska05_io_01.pdfTechnologie je to krásná, ale je to spíš síť, která není moc plánovaná na to, že CPU nepřerušitelně čeká přímo na odpověď, hypertherading ho snad využije alespoň pro jiné vlákno. Pokud CPU jen připraví deskriptory a odstartuje zpracování na kartě, a ta si z hlavní paměti data dotahuje a ideálně při vetší zátěži negeneruje ani IRQ (NAPI - New network polled API), tak je to z hlediska propustnosti ideální. I když i tak zase budou latence a brzdění karty latencí PCIe. Ale pokud tahá data po velkých blocích, tak je to OK.
Naopak takový CoreNet z T4240 slibuje 1.6 Tbps propustnost při propojování periferií. To je (s odpočtem overheadu) 1000x více než PCIe 1x. Přitom je možné pro clustery CPU a i periferií nakonfigurovat koherentní přístup k datům => při předávání bufferů mezi CPU a periferiemi není potřeba používat speciální instrukce pro synchronizaci/invalidaci cache. To na většině jiných ARM čipů potřeba je, na x86 ne ale tato agregovaná propustnost je opravdu děsivá a paralelně musí probíhat desítky a možná stovky přenosů. PCIe linky jsou po celou dobu i třeba dlouhého přenosu pro všechny další blokované - sice je to point to point, ale třeba přes DMI jde nakonec vše co jde směrem k periferiím. AXI jsem moc nestudoval, ale stejně jako AMBA a další je to v podstatě popis nějakého interface v HDL pro iniciátory a příjemce přístupů a mezitím je propojovací matice.
I jen takový jednoduchý Cortex-M4 LPC od NXP používá matici s dostatečným počtem propojů, že při správném rozdělení bufferů do bloků paměti může naráz CPU číst instrukci z Flash, data ze SRAM, USB přenášet za další oblasti SRAM a třeba ETHERNET z třetí a vzájemně se neblokují. Nastavení pinů je možné přes registry set a clear, CPU nabízí atomické bitové operace atd. Tedy i CPU za pár stovek nejvýkonnější PC při jednoduchých operacích čtení, zpracování a nastavení pinů předčí.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.