Skip to main content

Vícejádrové standardy pro kódování

Sdružení Multicore vytváří specifikace pro programovací model, který snižuje složitost při psaní softwaru pro vícejádrové čipy používané v smartphonech, tabletách a dalších vestavěných systémech.

Sdružení vytváří soudržnou sadu základních API (aplikační programovací rozhraní) pro standardizaci komunikace, sdílení zdrojů a virtualizace zahrnující jádra na stejných nebo různých čipy, uvedl prezident skupiny Markus Levy.

Výrobci čipů přidávají procesory, senzory a urychlovače k ​​čipům jako energeticky účinný způsob zvýšení výkonu aplikací v zařízeních. Ale vícenásobné čipy také vytvořily výzvu pro programátory, kteří musí psát aplikace, které se měří na více jádrech a správně synchronizovat, aby zajistily, že výpočty jsou prováděny v určitém pořadí, aby se dosáhl správného výstupu.

API s nízkou úrovní poskytují konzistentní multicore programovací model, z něhož mohou být aplikace přizpůsobeny pro běh přes čipové architektury, operační systémy a specializovaný hardware, řekl Levy. Multicore Association dokončila MCAPI (multicore communication API) a MRAPI (multicore resource management API) pro komunikaci a správu zdrojů, a má pracovní skupiny pro vytváření nových nástrojů a API souvisejících s virtualizací.

"Existuje mnoho příjemců zřízení těchto API, ale hlavním cílem pro všechny strany je vytvořit přenositelnost, "řekl Levy. Konzistentní programovací program usnadňuje opětovné použití aplikace v různých vícejádrových platformách. Před uvedenými rozhraními API většina návrhů používala proprietární mechanismy, které postrádají přenositelnost, říká Levy.

Inteligentní telefon může být navržen s více jádry procesorů s různými operačními systémy, přičemž každé jádro poskytuje různé funkce, řekl Colin Walls, Mentor Graphics, což činí operační systém Nucleus v reálném čase, který dodává každý rok přibližně 400 milionů mobilních telefonů. MCAPI poskytuje přímý prostředek pro komunikaci se softwarem na obou jádrech, řekl Walls.

V některých zařízeních by mohlo jedno jádro spustit OS, jako je Android nebo Linux, spravovat většinu uživatelského rozhraní, provádět uživatelské aplikace, správa souborů a dat a komunikace. Druhé jádro může být poněkud neviditelné pro uživatele a řídit činnosti telefonu na nízké úrovni, jako je vytváření a udržování mobilní sítě a zpracování hovorů.

"Pomocí MCAPI kód ​​embedded aplikací nemusí vědět který je přenosný mezi operačními systémy a čipovými architekturami, "říká Walls.

MCAPI umožňuje programátorům povolit aplikace pro multicore jednou a opětovně použít stejný kód pro více produktů v produktové řadě a pro novou generaci což znamená zvýšení produktivity inženýrství, řekl Sven Brehmer, generální ředitel společnosti PolyCore Software, který poskytuje vývojové nástroje a runtime software pro multicore a multichip komunikaci.

MCAPI se používá nejčastěji v telekomunikačních a datacom infrastrukturách av multimediálních zařízeních, uvedl Brehmer . Další oblasti zájmu zahrnují zdravotnické prostředky, vysoce výkonné výpočetní a vojenské a letecké vybavení, jako je radar.

API umožňuje vytváření domén pro konkrétní implementace, jako je komunikace mezi jádry na daném čipu nebo přes specifické oblasti v topologie čipu. "Jeden aspekt infrastruktury MCAPI zahrnuje specifikaci sítě komunikačních uzlů, kde uzel může být proces, vlákno, instance nějakého objektu, operační systém, hardwarový akcelerátor nebo procesorové jádro, "řekl Levy.

MCAPI je navržena tak, aby spolupracovala s MRAPI, což je API pro schopnosti správy prostředků na úrovni aplikací, které koordinují správu napájení a virtualizaci na vícejádrových čipy. Čipy obsahují funkce a funkce, které se dynamicky mění, a na některých vícejádrových čipách je pro jediný operační systém těžké sledovat a kontrolovat všechny zdroje, říká Levy. MRAPI poskytuje podporu na nízké úrovni pro oznamování událostí na úrovni systému, jako jsou stavy úspory energie, selhání zařízení a repartitioning hypervisorů.

Například zařízení se systémem Linux se symetrickým vícenásobným zpracováním nepodporují zařízení pro oznamování aplikací, nebo zdroje se změnily, řekl Levy. MRAPI poskytuje programátorům implementační mechanismy pro správu sdílení zdrojů a reakci na změny dostupnosti zdrojů.

"Využitím MRAPI mohou vývojáři systému psát přenosné aplikační programy, které se budou měřit v současných i budoucích generacích vícejádrových procesorů a architektury, které využívají aplikační, middleware, procesory a systémové vývojáře, "uvedl Levy.

Tato normalizace umožní dodavatelům čipů a poskytovatelům nástrojů třetích stran převzít řízení zdrojů, takže programátoři se mohou soustředit na aplikace na vysoké úrovni, řekl Levy .

Organizace vyvíjí také API pro uživatele integrovaných virtualizačních produktů, které by umožnily interoperabilitu aplikací a middlewaru v různých virtualizačních prostředích. Ale větší důraz je kladen na vývoj standardizovaných nástrojů, které využívají API. Někteří podporovatelé nových API, jako například Mentor, Intel, Freescale a Texas Instruments, vyvinuli vlastní nástroje pro ladění a sledování, říká Levy.

"Čistým výsledkem pro dodavatele nástrojů je to, "Jeden dodavatel nemůže nabídnout vše, co zákazníci potřebují, a přesto zákazníci musí být schopni rozvíjet a pochopit tento rozmanitý systém," říká Levy.

Existují další multicore jako OpenMP a OpenCL, ale všechny jsou navrženy tak, aby byly spíše "synergické" než konkurenční, uvedl Brehmer společnosti Polycore. API OpenMP API je navrženo pro psaní strojově paralelních aplikací, zatímco OpenCL je programovací rámec pro paralelní plnění úkolů napříč vícejádrovými procesory včetně procesorů a grafických procesorů.

Členové Multicore Association zahrnují také IBM, Samsung a Advanced Micro Devices.