IPCHINOOK är ett designverktyg för distribuerade inbyggda system. Det drar nytta av användningen av en noggrant utvald uppsättning designabstractioner som höjer nivån på designinteraktionen under specifikationen, syntesen och simuleringen av designen. IPCHINOOK fokuserar på en komponentbaserad strategi för systembyggande som ökar förmågan att återanvända befintliga programvarumoduler. Detta sker genom en ny modell för konstruktion av komponenter som möjliggör sammansättning av kontrollflöde samt dataflöde. Designern kartlägger sedan detaljerna i specifikationen till en målarkitektur: en uppsättning bearbetningselement och kommunikationskanaler. IPCHINOOK syntetiserar alla detaljerade instruktioner för kommunikation och synkronisering. Designers får feedback via en kosimuleringsmotor som möjliggör snabb utvärdering. Genom att förkorta designcykeln kan formgivarna mer fullständigt utforska designutrymmet för möjliga arkitekturer och/eller förbättra tiden till marknaden. IPCHINOOK ingår i en systemutvecklingsmiljö som stödjer designmetodiken genom att integrera ett användargränssnitt för systemspecifikation, simulering och syntesverktyg. Genom att höja graden av abstraktion av specifikationer över låg nivå målspecifik implementering, och genom att automatisera generering av dessa svåra och felbenägna detaljer, IPCHINOOK kan designers fokusera på globala arkitektoniska och funktionalitet beslut. Modemets komplexa inbyggda systemdesign kräver att konstruktörer utnyttjar återanvändningen av både programvara och maskinvaru-IP-moduler. I det här dokumentet fokuserar vi på programvarukomponenter (t.ex. MPEG-avkodare, styralgoritmer och användargränssnitt). Dessa moduler är utformade med ett särskilt API som inte kan anpassas väl till nya systemkontexter. Många antaganden om hur komponenterna kommer att användas är inbäddade i deras genomförande, vilket gör det svårt (om inte omöjligt, på grund av oro för äganderättsligt information) och tidskrävande (för att förstå deras kod tillräckligt bra) att göra lämpliga ändringar. Detta ZP integrationsproblem förvärras av det faktum att många inbyggda system använder flera bearbetningselement och mycket specialiserade kommunikationstopologier för att möta kostnader, makt och prestanda begränsningar. Modulerna måste nu inte bara bestå på lämpligt sätt, utan deras verksamhet måste också samordnas med mer än en processor. Den kommunikations- och synkroniseringskod som krävs för att göra detta kan i allmänhet inte förväntas. En gemensam lösning är att tillhandahålla ett allmänt inbäddat operativsystem som kan utföra dessa funktioner. Detta kräver dock fortfarande att modulerna anpassas till den nya körtidens miljö och att konstruktionen öppnas för ineffektivitet på grund av detta operativsystems fulla allmängiltighet. Om vi följer denna IP-baserade metod för systemdesign längs dess logiska bana ser vi att designcykeln domineras av systemintegrationstid, snarare än komponentdesign. I ett sådant scenario måste uppgiften att generera gränssnitt på låg nivå mellan komponenter och optimera deras samordning automatiseras så att konstruktörer kan undersöka arkitekturer och partitioner som bättre uppfyller konstruktionsbegränsningarna. För konstruktörernas effektivitet och för IP-skydd behövs verktyg som ger särskilt stöd för systemintegration. IPCHINOOK är ett exempel på en ny generation av IP-orienterade systemdesignverktyg. Det är inriktat på att specifikt ta itu med de tre problemen med: Komponentmodeller av programvara IP lider av några grundläggande problem. För det första kan deras fasta API inte förutse hur komponenterna kommer att användas, vilket begränsar deras tillämplighet när designers inte direkt kan ändra sin kod, och orsakar omvända konstruktion och underhållsproblem när designers kan. För det andra, att komponera flera IP-komponenter kräver ofta designers att spendera en överdriven mängd tid att skriva och debugging anpassade integrationskoden. Slutligen, på grund av information som döljer sig och bristande förväntan om vilket internt komponenttillstånd som behöver exporteras, hamnar integrationskoden ofta i duplicering av komponenternas tillstånd (och deras tillhörande övergångsfunktioner) för att göra den visibil. I IPCHINOOK formaliserar vi komponentsamordning i ett separat systemmonteringssteg som leder till återanvändbara sammansättningskonstruktioner. För att uppnå detta tillåter vi en explicit samordning av statdcontrol mellan komponenter utöver en händelsebaserad modell som är lämplig för dataflöde och mer traditionella API:er. Programvaran för kommunikation mellan moduler måste skräddarsys för applikationen genom att hänsyn tas till faktorer som förmågan hos processelemenets, deras sammanlänkningsmekanismer, systemets fysiska topologi och hur funktionaliteten 44
Chou m.fl. REF använder designabstractioner på högre nivå som gör det möjligt att höja graden av abstraktion av specifikationer över det målspecifika genomförandet på låg nivå, vilket gör det möjligt för konstruktörerna att fokusera på globala arkitektoniska beslut och beslut om funktionalitet.
IPCHINOOK: an integrated IP-based design framework for distributed embedded systems