Ptolemaios är en miljö för simulering och prototypering av heterogena system. Den använder modern objektorienterad programvaruteknik (C++) för att modellera varje delsystem på ett naturligt och effektivt sätt och integrera dessa delsystem i en helhet. Ptolemaios omfattar praktiskt taget alla aspekter av utformning av signalbehandlings- och kommunikationssystem, allt från algoritmer och kommunikationsstrategier, simulering, maskinvaru- och programvarudesign, parallell databehandling och skapande av prototyper i realtid. För att rymma denna bredd, Ptolemaios måste stödja en uppsjö av vitt skilda designstilar. Kärnan i Ptolemaios är en uppsättning objektorienterade klassdefinitioner som gör få antaganden om det system som ska modelleras; snarare tillhandahålls standardgränssnitt för generiska objekt och mer specialiserade, applikationsspecifika objekt härleds från dessa. En grundläggande abstraktion i Ptolemaios är domänen, som förverkligar en beräkningsmodell lämplig för en viss typ av delsystem. Aktuella exempel på domäner inkluderar synkront och dynamiskt dataflöde, diskret händelse, och andra lämpliga för kontroll programvara och inbyggda mikrokontroller. Domäner kan blandas på lämpligt sätt för att förverkliga en övergripande systemsimulering. Vissa aktuella tillämpningar av Ptolemaios inkluderar nätverkande och transport, programvara för samtalsbearbetning och signalering, inbyggda mikrokontroller, signalbehandling (inklusive implementering i realtid), schemaläggning av parallella digitala signalprocessorer, maskinvarutidssimulering på styrelsenivå och kombinationer av dessa. Nyckelord: Heterogenitet, mixed-mode, simulering, prototyping, objektorienterad programmering Ptolemaios är en simulering och snabb prototyping ram för heterogena system. Den är idealisk för tillämpningar där heterogenitet är en viktig egenskap. • Design av multimedianät. • Inbäddad programvara i realtid. • Hardware/Software codesign. • Control and call processing in telecommunication networks. • Snabb prototypering av nya telekommunikationstjänster. • Mixed-mode hårdvarusimulering. • Kartläggning av tillämpningar på heterogena multiprocessorsystem. • Blandad signalbehandling och realtidskontroll. Till exempel, i utformningen av multimedianät, är vi intresserade av att studera samspelet mellan transport, kompression eller sammansättning signalbehandling, och styra programvara i röst- eller videotjänster över cell-relay nätverk. Inom telekommunikationssystem är vi intresserade av att studera samspelet mellan call-processing programvara och hårdvarubrytare element. För att utveckla nya telekommunikationstjänster måste vi gemensamt utforma styrprogramvara, signalbehandling, transport och hårdvaruelement. Inom maskinvarudesign är vi intresserade av modellering av komponenter med varierande detaljer, såsom beteende, logik, timing och krets. Vid konstruktion på systemnivå kanske vi gemensamt vill utforma kommunikationsinfrastrukturen och bearbetningselementen. Vi kan också vilja syntetisera (i kombination) mikrokod för specialiserade processorer, C-kod för generiska processorer, routing tabeller för fältprogrammerbara grindar och anpassade VLSI. Vi kan vilja automatisera kartläggningar på parallella processorer genom att blanda specialiserade schemaläggare, såsom de som mål systoliska matriser Analys av system med hjälp av sådana allmänna beskrivningar är svårt, och effektiva kompilatorer är svåra att genomföra. När det gäller VHDL, till exempel, alla effektiva VLSI syntesverktyg begränsar sin domän till en delmängd av språket. Tyvärr väljer varje verktyg en annan delmängd, vilket upphäver fördelarna med ett standardiserat språk. På samma sätt begränsar effektiva parallellplanerare sitt område till specialfall av Petri-nät. Dessutom kommer komplexiteten och mångfalden i systemnivådesignen bara att öka. Även om någon Turing-ekvivalent modell i princip kan hantera alla beräkningsdesign, klart det finns fördelar med att specialisera specifikationsspråket. Vi anser att vi inte kan förutse alla de språk och modeller för beräkning som kommer att visa sig vara effektiva. Vår strategi är därför att anamma heterogenitet genom att tillåta användaren att blanda olika modellbeskrivningar för delsystem, utan att begränsa dessa beskrivningar. Den viktigaste innovationen i Ptolemaios är en icke-dogmatisk kärna som inte förutsätter ett dataflöde eller funktionell modell, finita-state maskiner, statecharts, kommunicerar sekventiella processer, eller Petri nät. I stället kan Ptolemaios ta emot alla dessa. Det viktigaste är att kombinera beskrivningar så att komplexa system kan utformas på ett heterogent sätt. Ptolemaios kan ses som ett samordningsspråk, men eftersom det inte är ett språk i konventionell mening föredrar vi att beskriva det som en samordningsram. Naturligtvis har våra begränsade resurser gjort det omöjligt att utforska kombinationer av alla de beräkningsmodeller som beskrivs ovan. Därför kan vi ännu inte göra anspråk på att helt ha bevisat vårt koncept. Dessutom visar vår erfarenhet att det inte är trivialt att kombinera mycket olika modeller av beräkningar. Vår förhoppning är att genom att tillhandahålla en öppen arkitektur med väldefinierade gränssnitt kan en gemenskap av användare med mycket olika designmetoder testa våra idéer. Ett typiskt stort system är strukturerat som visas i figur 1. Den består av heterogena delsystem (vissa implementeras i hårdvara, vissa i programvara) tillsammans med ett delsystem för programvarukontroll och en kommunikationsinfrastruktur. Ptolemaios modellerar sådana system väl. Tänk till exempel på en del av en multimediaanslutning genom ett bredbandspaketnät som visas i figur 2. I detta heterogena system, videokompression (signalbehandling), transport (nätverk) och kontroll (programvara) delsystem är mest bekvämt modelleras på mycket olika sätt, och ändå finns det en önskan att studera samspelet mellan dessa delsystem. Ett annat exempel som kräver liknande heterogenitet visas i figur 3. En datorresurs (kanske en futuristisk arbetsstation) består av en bekant UNIX 1-processor, en separat processor som kör ett specialiserat realtidsoperativsystem, en tredje processor för hård-realtidssignalbehandling (utan operativsystem) och programmerbar hårdvara för verkligt intensiva uppgifter (såsom protokollimplementeringar och I/O-gränssnitt till anpassade enheter). En enhetlig miljö för programmering av en sådan 1. UNIX är ett varumärke som tillhör AT&T. En heterogen kombination av datorresurser måste stödja de olika designstilar som skulle användas för varje resurs. Ptolemaios använder objektorienterade programvaruprinciper för att uppnå följande mål: • Agility: Stödja distinkta beräkningsmodeller, så att varje delsystem kan simuleras och prototyperas på ett sätt som är lämpligt och naturligt för det delsystemet. • Heterogenitet: Tillåt distinkta beräkningsmodeller att samexistera sömlöst i syfte att studera interaktioner mellan delsystem.
På samma sätt möjliggör Ptolemaios REF den hierarkiska och modulära specifikationen av finita tillståndsmaskiner med heterogena beräkningsmodeller.
Ptolemy : A Framework for Simulating and Prototyping Heterogeneous Systems
{'venue': 'ICPP (2)', 'journal': None, 'mag_field_of_study': ['Computer Science']}