Sammanfattning Vi upplever för närvarande en explosionsartad ökning av användningen av handhållna mobila enheter, såsom mobiltelefoner, personliga digitala assistenter (PDA), digitalkameras, globala positioneringssystem och så vidare. Framsteg inom teknik gör det möjligt för bärbara datorer att utrustas med trådlösa gränssnitt, vilket möjliggör nätverkskommunikation även när de är i rörelse. allmänt förekommande datorer [16] ) kommer att spela en viktig roll för att driva tekniken under det kommande årtiondet. I detta paradigm kommer den grundläggande persondatorn och kommunikationsapparaten att vara en integrerad, batteridriven enhet, tillräckligt liten för att bära med sig hela tiden. Denna enhet kommer att användas som en ersättning för många objekt som den moderna människan bär runt på. Den kommer att innehålla olika funktioner som en personsökare, mobiltelefon, bärbar dator, dagbok, digitalkamera, videospel, miniräknare och fjärrkontroll. Ett important problem kommer att vara användargränssnittet: interaktionen med sin ägare. För att aktivera detta, enheten kommer att stödja multimedia uppgifter som taligenkänning, video och ljud. Medan dagens bärbara datorer och personliga digitala assistenter (PDA) är själv inneslutna, är morgondagens nätverksanslutna mobila datorer en del av en större datorinfrastruktur. Dessutom kräver konsumenterna av dessa apparater allt mer sofistikerade funktioner, vilket i sin tur kräver enorma mängder extra resurser. De tekniska utmaningarna för att etablera detta paradigm för personlig mobil databehandling är icke-triviala. I synnerhet dessa enheter har begränsade batteriresurser, måste hantera olika datatyper, och måste fungera i miljöer som är osäkra, oplanerade och visar olika egenskaper över tid [6]. Traditionellt (inbyggda) system som har krävande tillämpningar - de som drivs av portabilitet, prestanda eller kostnad - kräver utveckling av en eller flera anpassade processorer eller applikationsspecifika integrerade kretsar (ASIC) för att uppfylla konstruktionsmålen. Men utvecklingen av ASIC är dyr i tid, arbetskraft och pengar. I en värld som nu löper på "Internettid", där produktlivscyklerna är nere i månader, och personaliseringstrender splittrar marknader, är denna tröghet inte längre acceptabel. Befintliga designmetoder och ett annat sätt att lösa problemen har varit att använda allmänna processorer, dvs. försöker lösa alla typer av program som kör en mycket hög hastighet processor. En stor nackdel med att använda dessa anordningar för allmänna ändamål är att de är extremt ineffektiva när det gäller att utnyttja sina resurser. För att matcha den nödvändiga beräkningen med arkitekturen tillämpar vi i CHAMELEON-projektet ett alternativt tillvägagångssätt för att uppfylla kraven i framtida handhållna system med låg effekt. Vi föreslår en heterogen omkonfigureringsarkitektur i kombination med ett QoS-drivet operativsystem, där granulariteten för omkonfigurering väljs i enlighet med modellen för den uppgift som ska utföras. I CHAMELEON projektet [15] tillämpar vi omkonfigurering på flera nivåer av granularitet. Huvudfilosofin är att dataverksamheten ska ske på den plats där den är mest energieffektiv och där den minimerar den kommunikation som krävs. Partitionering är ett viktigt arkitektoniskt beslut, som dikterar var applikationer kan köras, där data kan lagras, komplexiteten i mobilen och kostnaden för kommunikationstjänster. Vårt tillvägagångssätt bygger på en dynamik (dvs. vid körtid) matchning av arkitekturen och programmet. Att dela upp ett program mellan olika hårdvaruplattformar är allmänt känt som hårdvara/programvara samdesign. I vår strategi undersöker vi om det är möjligt och användbart att göra denna partitionering i körtid, anpassa sig till den nuvarande miljön för den mobila enheten. Idag är valet av mobila enheter till stor del begränsat till enkla trådlösa telefoner å ena sidan, till komplexa och skrymmande bärbara datorer med trådlös kommunikationsförmåga å andra sidan. Även om dessa enheter tjänar sina syften är de varken de mest integrerade eller de mest allmänna: deras funktionalitet är ofta begränsad, de kan fungera bara en kort tid, och de är oförmögna att fullt ut utnyttja de framväxande integrerade trådlösa nätverken. Även om nuvarande enheter har förmågan att kommunicera och bearbeta data, är de och i stort sett i första hand antingen databehandlingsenheter eller kommunikationsenheter. Att helt enkelt krympa processutrustningen och kommunikationsutrustningen och förpacka dem tillsammans minskar inte de arkitektoniska flaskhalsarna hos integrerade mobila multimediaenheter [12]. Den verkliga utmaningen är att designa en enhet där d ata-bearbetning och kommunikation har lika stor betydelse. Multimediafunktionalitet är en drivkraft för många forskningsutmaningar. Till exempel på grund av storleksbegränsningarna på en bärbar dator måste användargränssnittet vara litet. Bristen på område på en mobil enhet kan få oss att byta knappar till förmån för att erkänna användarens avsikt från analoga inmatningsenheter som handstil, gest och röst. Talgenerering och igenkänning verkar vara ett idealiskt användargränssnitt eftersom de inte kräver någon yta och tillåter handsfree och ögonfri drift. Allmänt talinmatning och talutmatning ställer dock stora krav på lagring och bearbetning på en mobil enhet. Annan forskning undersöker användningen av huvudmonterade virtual reality displayer. Trenden inom mobila systemarkitekturer har varit att krympa en vanlig skrivbordsdator till ett paket som bekvämt kan bäras. Inte ens PDA har kommit långt från den allmänna modellen, varken arkitektoniskt eller i fråga om användningsmodell. Både bärbar dator och persondator använder i allmänhet samma standardoperativsystem som Windows (CE) eller Unix, samma program, använder samma kommunikationsprotokoll och använder samma maskinvaruarkitektur. Den enda skillnaden är att bärbara datorer är mindre, har ett batteri, ett trådlöst gränssnitt och ofta använder lågeffektkomponenter. Även om batteritekniken ständigt förbättras och processorer och displayer snabbt förbättras i fråga om strömförbrukning, är batteriets livslängd och batterivikt frågor som kommer att ha en tydlig inverkan på hur handhållna datorer kan användas. Energiförbrukningen blir den begränsande faktorn för den mängd funktionalitet som kan placeras i dessa anordningar. En mer omfattande och kontinuerlig användning av nättjänster kommer bara att förvärra detta problem eftersom kommunikation förbrukar relativt mycket energi. En annan viktig utmaning med mobil databehandling är att många miljöattribut varierar dynamiskt. Mobila enheter möter många olika typer av variationer i sin miljö. Därför måste de kunna verka i miljöer som kan förändras drastiskt på kort sikt samt på lång sikt i tillgängliga resurser och tillgängliga tjänster. Enbart algoritmiska anpassningar är inte tillräckliga, utan snarare en helt ny uppsättning protokoll och/eller algoritmer kan krävas. Till exempel kan mobila användare stöta på en helt annan trådlös kommunikationsinfrastruktur när de går från sitt kontor till 0-7695-0990-8/01/$10.00 (C) 2001 IEEE gatan. En möjlig lösning är att ha en mobil enhet med en omkonfigurerbar arkitektur så att den kan anpassa sin drift till den aktuella miljön och driftsförhållanden. Anpassningsförmåga och programmerbarhet bör vara viktiga krav i utformningen av en mobil dators arkitektur. Vi går in i en era där varje mikrochip kommer att ha miljarder transistorer. Ett sätt att utnyttja denna möjlighet skulle vara att fortsätta att utveckla våra chip arkitekturer och tekniker som bara mer av samma: bygga mikroprocessorer som helt enkelt är mer komplicerade versioner av det slag som byggs idag. Att helt enkelt krympa dataterminalen och radiomodem, fästa dem via en buss och förpacka dem tillsammans minskar dock inte de arkitektoniska flaskhalsarna. Den verkliga designutmaningen är att konstruera ett integrerat mobilt system där databehandling och kommunikation har lika stor betydelse och är utformade med varandra i åtanke. Att bara integrera nuvarande PC eller PDA-arkitektur med ett kommunikationsdelsystem är inte lösningen. En av de största nackdelarna med att bara packa de två är att den energiineffektiva processorn, med dess tunga operativsystem och delade buss, blir inte bara kontrollcentrum, utan också centrum för dataflödet i systemet och en huvudorsak till energiförbrukningen. En annan nackdel är att högt optimerade ASIC är oflexibla, har en relativt lång utvecklingstid och endast kan tillämpas optimalt i ett begränsat antal tillämpningar. Det är uppenbart att det finns ett behov av att se över systemarkitekturen för en bärbar dator om vi vill ha en maskin som kan användas bekvämt i en trådlös miljö. En systemnivå integration av mobilens arkitektur, operativsystem och applikationer krävs. Systemet bör ge en lösning med en lämplig energieffektiv balans mellan flexibilitet och effektivitet genom användning av en hybridblandning av allmänna ändamål och tillämpningsspecifika metoder [6]. Ett systemomfattande tillvägagångssätt som täcker hela spektrumet mellan fysiskt skikt och tillämpningar c a ger betydande energibesparingar [6]. En viktig utmaning för mobil databehandling är att många miljöattribut varierar dynamiskt. Mobila enheter fungerar i en dynamiskt föränderlig miljö och måste kunna anpassa sig till den nya miljön. Till exempel måste en mobil dator hantera oförutsedda nätavbrott eller kunna byta till ett annat nätverk, utan att ändra applikationen. Den bör därför ha flexibilitet att hantera en rad olika multimediatjänster och -standarder (som olika videodekompressionssystem och säkerhetsmekanismer) och anpassningsförmåga för att anpassa sig till den nomadiska miljön, den säkerhetsnivå som krävs och de tillgängliga resurserna. Mobila enheter måste kunna fungera i miljöer som kan förändras drastiskt på kort sikt samt på lång sikt i tillgängliga resurser och tillgängliga tjänster. Vissa kortsiktiga variationer kan hanteras med adaptiva kommunikationsprotokoll som varierar deras parametrar beroende på det aktuella tillståndet. Andra, mer långsiktiga variationer kräver i allmänhet en mycket större grad av anpassning. De kan behöva ett annat luftgränssnitt, andra nätverksprotokoll och så vidare. En programvaruradio som möjliggör flexibel och programmerbar transceiverdrift förväntas vara en nyckelteknik för trådlös kommunikation. Omkonfigurerbara system har potential att fungera effektivt i dessa dynamiska miljöer. Omkonfigurerbarhet har också en annan mer ekonomisk motivation: det kommer att vara viktigt att ha ett snabbt spår från gnistrande idéer till den slutliga designen. Om designprocessen tar för lång tid kommer avkastningen på investeringen att bli mindre. Det skulle också vara önskvärt att en trådlös terminal har arkitektonisk omkonfigurerbarhet så att nedladdning av nya funktioner från nätverksservrar kan ändra dess kapacitet. Sådan omkonfigurerbarhet skulle också hjälpa i fält uppgradering som nya kommunikationsprotokoll eller standarder är utplacerade, och i genomförandet av buggfixar [12]. Sammanfattningsvis är de viktigaste frågorna i utformningen av bärbara multimediasystem att hitta en bra balans mellan flexibilitet och hög processkraft på ena sidan, och område och energieffektivitet i genomförandet på den andra sidan. Spektrumet av lösningar 2.1. I allmänhet finns det en hel rad möjliga lösningar på ett visst problem. I en direkt hårdvaruimplementering, löser man problem genom att kartlägga en algoritm direkt in i hårdvaran. Det vill säga, den resulterande hårdvaran speglar lösningen direkt. Vi kallar detta för fasta resurser och fasta algoritmer. Med en processor har vi ett sätt att implementera nästan alla algoritmer med hjälp av en fast uppsättning resurser. Processorn tillhandahåller fasta resurser i form av intermodala lastenheter, flyttalenheter etc. Processorn löser problem genom att tillhandahålla 0-7695-0990-8/01/$10.00 (C) 2001 IEEE begränsade, fasta hårdvaruresurser och genom att dela dessa resurser över tid. Dessutom kan samma hårdvara stödja flera problem. Processorn är en lösning med fasta resurser och dynamiska algoritmer. Dessa två problemlösningsmekanismer har konkurrerat med varandra. Det finns en kompromiss mellan processorns flexibilitet och effektiviteten i den direkta hårdvaruimplementeringen. Om programmet kräver den ultimata prestanda och effektivitet, är en direkt hårdvarulösning att föredra. Men om problemet är för dyrt att lösa med en direkt hårdvara metod, en processor-baserad lösning anges. Mellan dessa två ytterligheter finns en stor värld av dynamisk logik. Med dynamisk logik kan ingenjören välja både resurser och algoritm. Både resurserna och algoritmerna kan variera över tid för att lösa problemet. Dynamiska resurser och dynamiska algoritmer. Dynamisk logik kan vara effektiv eftersom lämpliga resurser för problemet kan väljas för att exakt matcha algoritmen när som helst. Figur 1 visar tre olika tillvägagångssätt i spektrumet av tillämpningar och maskinvaruimplementeringar, och illustrerar avvägningen mellan effektivitet och flexibilitet. Approaches En trend inom datorarkitektur är att fokusera på flexibilitet med hög prestanda processorer för allmänna ändamål eftersom detta är det område där en halvledarleverantör kan förbättra sin status. Därför är arkitekturen av en allmän-purpose processor mest studerade, och optimeringar för processorprestanda är det huvudsakliga målet. I allmänhet processorer är det möjligt att kartlägga en stor uppsättning program på hårdvaran helt enkelt genom att skriva rätt programvara för det. Medan processorer för allmänna ändamål och konventionella systemarkitekturer kan programmeras för att utföra praktiskt taget alla beräkningsuppgifter, måste de betala för denna flexibilitet med en hög energiförbrukning och betydande omkostnader för att hämta, avkoda och utföra en ström av instruktioner på komplexa allmänna datavägar. Energi overhead i att göra arkitektur programmerbar oftast dominerar energiavledning av den avsedda beräkningen [11]. Målet med tillämpningsspecifika moduler är att optimera systemets totala kostnadsprestanda och inte enbart prestanda. Tillämpningsspecifika lösningar är det effektivaste sättet att minska energiförbrukningen och har visat sig leda till enorma energibesparingar. Utföra komplexa multimedia-data bearbetningsfunktioner i dedikerad hårdvara som är optimerad för energieffektiv drift minskar energi-per-operation med flera storleksordningar i förhållande till programvara. Nackdelen med dedikerad hårdvara är dock bristen på flexibilitet och programmerbarhet, deras funktionalitet är begränsad till hårdvarans kapacitet. De tekniska utmaningarna i designen av anpassade ASICs är vanligtvis betydligt mindre än konstruktionen av allmänna-purpose kretsar. Detta innebär att högpresterande anpassade marker kan utformas och Av diskussionen ovan, är det uppenbart att varken allmänna processorer, eller ASICs kommer att kunna uppfylla kraven på effekt och effektivitet för framtida mobila enheter. En hybridlösning med tillämpningsdomänspecifika moduler skulle kunna erbjuda tillräcklig flexibilitet för att kunna genomföra en fördefinierad uppsättning av (vanligtvis) liknande tillämpningar, samtidigt som kostnaderna i fråga om område, energiförbrukning och designtid hålls på en acceptabel låg nivå [1]. Modulerna är optimerade för en specifik applikationsdomän. En systemdesigner kan använda den allmänna processorn för delar av algoritmer för vilka den är väl lämpad, och skapa en applikationsdomänspecifik modul för andra uppgifter. Oanvända delar av systemet måste stängas av när det inte behövs. En ASIC-lösning är för stel och en processorlösning är för ineffektiv. I själva verket vill vi göra maskinen passar algoritmen i stället för att göra algoritmen passar maskinen. Detta är området för omkonfigurerbara datorsystem. Omkonfigurerbara datorsystem kombinerar programmerbar hårdvara med programmerbara processorer för att dra nytta av hård- och mjukvarans styrkor. Den tidigaste konfigurerbara datamaskinen föreslogs, utformades och implementerades av professor Gerald Estrin vid UCLA i början av 1960-talet [4]. Estrin föreslog "Fixed plus variabel struktur dator", där vissa fasta hårdvara var tillägnad en oflexibel abstraktion av en programmerbar processor och en flexibel komponent implementerad digital logik. Idag är de vanligaste enheterna som används för omkonfigurerbara datorer fältprogrammerbara Gate Arrays (FPGA). FPGAs presenterar abstraktionen av grindmatriser, vilket gör det möjligt för utvecklare att manipulera flipflops, små mängder minne, och logiska grindar.  I personliga mobila enheter måste systemet uppfylla de motstridiga kraven på att beräkna intensiva algoritmer, kommunikationsintensiva applikationer och lång batteritid. I allmänhet försöker en designer designa ett system för att vara optimalt för en viss applikation och miljö. Designern måste välja en viss algoritm, design eller välja en befintlig arkitektur som kan användas för det, och bestämma olika parametrar såsom matningsspänning och klockfrekvens. Energieffektivitet i mobila system är dock inte bara ett engångsproblem som måste lösas under konstruktionsfasen. I ett mobilt system utvidgar krafthanteringen begreppet hårdvara/programvara samdesign, eftersom vi måste möta en mycket dynamisk applikations- och kommunikationsmiljö. Detta flerdimensionella designutrymme erbjuder ett stort utbud av möjliga kompromisser. Anpassningsförmåga och flexibilitet är två återkommande punkter när vi nämner energieffektivitet och prestanda på mobila multimediadatorer. Detta leder till ett centralt problem med optimering av energipolitiken, vilket måste vara den centrala frågan i alla energiledningssystem. Politiken är den algoritm som bestämmer vilka åtgärder som ska vidtas för att minimera energiförbrukningen. Traditionella krafthanteringssystem bestämmer endast hur och när systemresurser ska aktiveras eller stängas av för att minimera energiförbrukningen, beroende på användningsmönster och prestandabegränsningar. I den traditionella designen måste konstruktören välja en av alternativa lösningar, antingen hårdvara eller programvara, för alla delar av systemet i de tidiga faserna av designen. Energieffektivitet i mobila system är dock inte bara ett engångsproblem som måste lösas under konstruktionsfasen. När systemet är i drift krävs frekventa anpassningar av systemet för att få ett energieffektivt system som kan uppfylla de QoS-krav som ställs. Att hitta en energiförvaltningspolitik som minimerar energiförbrukningen utan att kompromissa med prestanda som går utöver godtagbara nivåer är redan ett komplicerat problem. Om resurserna också är flexibla och kan anpassa sin funktionalitet blir problemet ännu större. Mobil systemfunktionalitet och partitionering I ett omkonfigurerbart mobilsystem kan funktioner dynamiskt migreras mellan funktionella moduler så att en effektiv konfiguration erhålls. Funktionalitet kan partitioneras inuti ett mobilt system mellan ett program som körs på den allmänna processorn, dedikerade hårdvarukomponenter (som en kompressor eller felkorrigeringsenhet), och fältprogrammerbara hårdvaruenheter (som FPGA). Den nätverksanslutna driften av ett mobilt system öppnar ytterligare möjligheter till nedbrytning för att öka energieffektiviteten. En möjlighet är att avlasta beräkning dynamiskt från det mobila systemet, där spara batterienergi är på en premium, till fjärr energirika servrar i nätets trådbundna ryggrad. I huvudsak är energi som används i kommunikation handlas för beräkning. När vi till exempel tänker på överföringen av en bild över ett trådlöst nätverk finns det en avvägning mellan bildkompression, felkontroll, kommunikation och energiförbrukning. Delning av funktioner är ett viktigt arkitektoniskt beslut som anger var applikationer kan köras, var data kan lagras, terminalens komplexitet och kostnaden för kommunikationstjänsten. Den viktigaste konsekvensen för denna arkitektur är att den run-time-hårdvaran och programvarumiljön på den mobila datorn och i nätverket bör kunna stödja en sådan anpassningsförmåga och förse programutvecklare med lämpliga gränssnitt för att styra den. Programvaruteknik som proxies och mobila agenter, och hårdvaruteknik som adaptiv och omkonfigurerbar databehandling kommer sannolikt att vara de viktigaste möjliggörarna. För multimediatillämpningar är det särskilt möjligt att avsevärt minska energiförbrukningen, eftersom beräkningskomplexet är stort och beräkningen av dessa är regelbunden och rumsligt lokal. Kommunikationen mellan modulerna är också betydande. Att förbättra energieffektiviteten genom att utnyttja referensorterna och använda effektiva tillämpningsspecifika moduler har därför en betydande inverkan på ett mobilt system. Termen omkonfigurerbarhet har en stark koppling till programmerbarhet. Programmerbarheten har sitt ursprung i 0-7695-0990-8/01/$10.00 (C) 2001 IEEE från konceptet "lagrade program" som används i datorvärlden. Ett program är vanligtvis en uppsättning instruktioner som dynamiskt modifierar beteendet hos statiskt anslutna moduler såsom minnen, register och datapatter. Detta har gradvis utvidgats till att även omfatta dynamisk omkonfigurering av sammankopplade nät och logisk funktionalitet. Numera är omkonfigurerbara system ofta konstruerade från (arrayer av) fältprogrammerbara enheter (FPGAs). Dessa kan ge order av magnitud i prestandaförbättringar för specifika beräkningskärnor över traditionella datorer genom att tillhandahålla programmerbarhet (omkonfigurerbarhet) på grindnivå. Detta kan dock ske till priset av en ökning av arealen, ökad energiförbrukning och mindre lätthet i programplaneringen. Det är tveksamt om man ska hänvisa till den dynamiska laddningen av en maskinvarukonfiguration som programmering eller omkonfigurering. Skillnaden är verkligen lite subtil. Naturligtvis, även i dynamisk logik kommer det att finnas statisk hårdvara som inte kommer att förändras med tiden. Omkonfigurering kan ses som ett extra lager av abstraktion mellan programmering och hårdvara. I programmeringen används fasta instruktioner för att lösa ett problem. Dessa instruktioners egenskaper och betydelse bestäms av enhetens mikroprogramminne. "Instruktionssetet" för den omkonfigurerbara enheten ändras för att uppfylla algoritmens krav. På något sätt finns det en likhet med dynamisk mikroprogrammering, där instruktionsuppsättningen av datorn ändras genom att ladda ner mikrokod, snarare än att köra en enda instruktionsuppsättning för alla algoritmer. Omkonfigurerbarhet kan faktiskt tillämpas på många lager i ett system, och på flera nivåer av granularitet, där var och en har sin egen föredragna och optimala applikationsdomän [13]. I CHAMELEON-projektet använder vi termen omkonfigurerbarhet för att beteckna alla möjliga ändringar för att lösa ett problem på olika nivåer av systemarkitekturen. Så vi utvidgar den traditionella uppfattningen om omkonfigurering från att bara vara lagret mellan programmering och hårdvara, till faktiskt en vertikal parameter som involverar många lager i systemet. Som sagt, i ett mobilt multimediasystem kan många kompromisser göras när det gäller den funktionalitet som krävs för en viss mekanism, dess faktiska genomförande och värden för de parametrar som krävs. I en arkitektur med omkonfigurerbara moduler och dataströmmar kan funktioner dynamiskt migreras mellan funktionella moduler så att en effektiv konfiguration erhålls. När vi till exempel tänker på överföringen av en bild över ett trådlöst nätverk finns det en avvägning mellan bildkompression, felkontroll, kommunikation och energiförbrukning. Funktionalitet kan delas upp mellan ett program r unning på den allmänna processorn, dedikerade hårdvarukomponenter (som en kompressor eller felkorrigeringsenhet), och fältprogrammerbara hårdvaruenheter (som FPGA). Naturligtvis kommer den faktiska avvägningen att bero på systemets särdrag, arten av de uppgifter som skickas och så vidare. Huvudfilosofin är att dataverksamheten ska ske på den plats där den är mest energieffektiv och där den minimerar den kommunikation som krävs. Detta kan uppnås genom att matcha beräkningsmässig och arkitektonisk granularitet. I systemet har vi en hierarkisk granularitet där vi skiljer flera kornstorlekar av operationer. Dessa nivåer illustreras i figur 2, och kommer att diskuteras mer i detalj i avsnitt 5. På grindnivå har vi den redan nämnda omkonfigurerbara logiken som FPGA är ett typiskt exempel på. Andra alternativ för omkonfigurering är på den omkonfigurerbara datapathen, där modulerna har olika funktioner som multiplikation och addition (fältprogrammerbar funktion Array (FPFA) som kommer att införas i Avsnitt 5 är ett typiskt exempel på detta); vid det omkonfigurerbara dataflödet där strömmar av 0-7695-0990-8/01/$10.00 (C) 2001 IEEE-data är dynamiskt konfigurerade mellan olika programdomänspecifika moduler; och på en hög nivå kan vi identifiera omkonfigurering i partitionen av belastningen mellan mobilen och en extern server. För att kunna hantera denna omkonfigurerbarhet på flera nivåer behövs en modell för att beskriva funktionaliteten och egenskaperna hos de olika processerna, och även samspelet mellan dem. Det omkonfigurerbara system vi föreställer oss består av en heterogen dynamisk omkonfigurerbar arkitektur som spänner över många nivåer av systemet. För att hantera den hierarkiska granulariteten används en systemmodell där tjänstekvalitet (QoS) och energiförbrukning spelar en avgörande roll. Denna modell används för att dynamiskt dela upp uppgifter i en applikation så att en energieffektiv konfiguration etableras. En viktig fråga för forskningen är att hantera systemets flexibilitet. En kompromiss måste göras var och när man ska köra vilken (del av) algoritmen. Därför behövs en hierarkisk modell på hög nivå – QoS-baserad – för att förutsäga modulers beteende i fråga om energiförbrukning, prestanda, kostnader etc., när man kör en viss uppsättning tillämpningar. Förutom att beskriva modulernas funktionalitet och anpassningsförmåga (t.ex. Effekterna på energiförbrukningen när bildkompressorn ändrar sin bildhastighet, upplösning eller till och med sin komprimeringsmekanism) Denna modell omfattar också samspelet mellan dessa moduler. En sådan modell krävs för att förutse de övergripande konsekvenserna för systemet när en applikation eller funktionell modul anpassar sin QoS, som i mobila system, applikationer vanligtvis måste anpassa sig dynamiskt till de förändrade driftförhållandena. Med hjälp av denna modell kan den inneboende kompromissen mellan exempelvis prestanda, kommunikation och energiförbrukning utvärderas och en lämplig anpassning av hela systemet kan göras. Tillämpningar som användare kör på en mobil behöver flera funktionella resurser i systemet, såsom processor, minne, trådlöst nätverksgränssnitt och komprimering/dekompression logik. I vår arkitektur utgår vi från att sådana moduler är programmerbara och kan anpassas till applikationernas krav och till miljöns tillstånd, t.ex. tillgänglig bandbredd, bitfelfrekvens, tillgänglig energi, etc. I allmänhet dessa moduler är inte oberoende och val för inställningen av en modul kan påverka andra moduler. Till exempel: när video måste överföras kan den komprimeras, vilket minskar den bandbredd som krävs på det trådlösa nätverket. Men mer komprimering kräver inte bara mer processorkraft, det behöver också bättre felkontroll. Alla dessa funktionella moduler har ofta motsägelsefulla effekter på de resurser som behövs, och en kompromiss måste göras för att hitta en optimal lösning. Inte bara parametrarna kan ändras eftersom det också kan vara lönsamt att migrera komplett funktion från en modul till en annan, eventuellt även till en annan maskin. En komplicerande faktor är att den dynamiska naturen hos en mobil miljö också kräver en arkitektur som gör det möjligt att anpassa sig till snabbt föränderliga förhållanden. Hårdvaran och programvaruarkitekturen bör kunna stödja sådan anpassningsförmåga och bör minimera energiförbrukningen genom att bestämma i körtid, saker som: • Algoritm -den mest lämpliga algoritm(er) för att utföra den eller de begärda tjänsterna. • Partitionering - en lämplig partitionering av algoritmerna över de olika heterogena parallella bearbetningsenheter, som kan omfatta basstationer, CPUer, FPGAs och dedikerad hårdvara. • Parametrar - de mest optimala parametrarna för utförande av algoritmer. • Power state - lämplig energistatus läge för de olika hårdvarukomponenter. Dessa beslut är relaterade till varandra och påverkas starkt av miljön, systemets nuvarande status och de givna begränsningarna, såsom minimiprestanda, tidsfrister i realtid och minimikvalitet för tjänster (QoS). För att fatta dessa beslut måste man göra en avvägning mellan kostnader för beräkning, kommunikation och initiering (både tid och energi) för att dynamiskt anpassa systemets status till nya omständigheter på bästa sätt. Flera hierarkiska nivåer kommer att användas för att dölja komplexitet och uppnå lokala justerbara system när det är möjligt. En flexibel kommunikationsmekanism krävs för att alltid erbjuda samma kommunikationsgränssnitt oberoende av en specifik bearbetningsenhet, så allokering av algoritmer till olika bearbetningsenheter kan enkelt göras. På alla abstraktionsnivåer byggs moderna datorsystem i form av komponenter och kommunikation (eller åtminstone synkronisering) mellan komponenter. Kommunicerande system innebär 0-7695-0990-8/01/$10.00 (C) 2001 IEEE
I REF följs ett ganska empiriskt sätt, som tilldelar bit-nivå delar av en ansökan till FPGA.
Energy management for dynamically reconfigurable heterogeneous mobile systems
{'venue': 'Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001', 'journal': 'Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001', 'mag_field_of_study': ['Computer Science', 'Physics']}