Abstract Dynamic reconfiguration of FPGAs har nyligen blivit livsduglig med införandet av enheter som tillåter partiell omkonfigurering med hög hastighet, t.ex. Xilinx XC6200-serien [ 141. Dynamisk omkonfigurering utförs vanligtvis av ett programvarusystem som bestämmer när man ska programmera om en del av FPGA och med vad. Den enklaste typen av run-time programvara väljer helt enkelt en förkompilerad krets och överför programmeringsdata direkt till FPGA. Vid institutionen för datavetenskap vid University of Glasgow har Reconfigurable Architecture Group (RAGE) ett antal projekt som undersöker tillämpningar av dynamisk omkonfigurering. Dessa tillämpningar har visat på behovet av ett mer komplext körtidssystem. I stället för att utveckla olika run-time system för varje applikation, vilket är vanligt, har vi tagit fram en uppsättning gemensamma krav från flera applikationer. Detta har legat till grund för utformningen av ett föreslaget kärn-, run-time-system, som kan stödja alla dessa tillämpningar. Det finns många paralleller som kan dras mellan denna design och konventionella operativsystem design-som de tekniker som används för att hantera konventionella resurser, såsom minne och CPU, är också tillämpliga på förvaltningen av FPGAs. Nästa avsnitt beskriver tre tillämpningar av dynamisk omkonfigurering och deras krav, och utgår från dessa en uppsättning grundläggande krav. Vi följer detta med en översikt över det föreslagna systemet och mer detaljerade diskussioner om r6les för de identifierade systemkomponenterna. Vi avslutar med en diskussion om hur vårt system kan stödja andra tillämpningar inom området. Case Studies FPGAPS projektet syftar till att utnyttja den dynamiska omkonfigurerbarheten av FPGAs för att påskynda PostScript@ rendering.  En samling fördirigerade och placerade kretsar finns i värdsystemets huvudminne, redo för snabb nedladdning på FPGA över en PCI-buss. FPGA är inhyst på brädet som visas i figur 1. Vid fördefinierade intervall under PostScript60-återgivningen skickas data- och operationskoder som parametrar till det virtuella maskinvarukörningssystemet. Systemet byter sedan en lämplig krets till P G A och även preioads kretsinmatningsregister med värden som överförs från applikationen. Eftersom resultaten genereras av kretsen avbryts programmet så att den kan hämta relevanta data från någon känd minnesplats. Endast en arbetskrets finns på chippet när som helst. Till skillnad från andra liknande omkonfigurerbara system. vårt föreslagna system syftar till att ta bort sådana gemensamma driftstödsoperationer i stället för att hårdkoda dem i applikationen. För att underlätta minneskartläggningen mellan FPGA, RAGE-systemet och FPGA/PS-applikationen kan kretsarna organiseras på följande sätt: 1. Vissa kretsar hålls statiska på P G A och fungerar som ingångs- och utgångsportar för den dynamiska kretsen. Till exempel behöver en cirkel rendering krets (x, y ) koordinater för centrum och en radie värde. Dessa statiska inmatningsregister skulle återanvändas när nästa konverteringskrets byts in. Denna policy minskar antalet celler som ska konfigureras, men gör kretsplacering mindre flexibel. 2. Utgångspunkten är följande: Ingångs- och utgångsportarna för kretsrepresentationen är knutna till själva arbetskretsen, och kretsen byts ut mot en förutbestämd plats på FPGA. 3. Vad är det som händer? Kretsarna kan placeras var som helst (inom kända gränser) och RAGE-systemet organiserar kartläggningen av kretsregister till värdminnet på ett transparent sätt. För ansökan finns dessa register på en välkänd adress. Kretsar som inte behöver någon körtid plats och rutt kan representeras mycket enkelt, som adressdata par som bildar P G A programmeringsinformation. Det finns inget behov av att ha en intern representation av själva FPGA, eftersom ingen plats och rutt behöver äga rum. Om det emellertid krävs mer komplexa byten (fall 2 och 3 ovan) krävs viss körtid och rutt. En fullständig representation av alla muxes och konfigurationsminne på chipet upprätthålls av körtidssystemet. Den interna representationen av kretsar måste också vara rikare, omfattande kunskap om hamnar, hierarkiska kretsblock, etc. Kretsbytaren har tillgång till ett bibliotek av kretsar och skickar programmeringsdata till enhetsdrivrutinen. När en krets byts ut är det viktigt att systemets beteende är förutsägbart. Kretsbytesmekanismen bör antingen isolera den statiska kretsen på chipet, eller vara medveten om att falska resultat kan produceras medan byte pågår.
Burns m.fl. gjorde en av de första ansträngningarna i skapandet av ett operativsystem (OS) bebodd i en delvis omkonfigurerbar enhet REF, där de, baserat på tre olika applikationer, extraherade en uppsättning gemensamma krav, och utformade ett körtidssystem för att hantera den dynamiska omkonfigurering av FPGA.
A dynamic reconfiguration run-time system
{'venue': 'Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186)', 'journal': 'Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186)', 'mag_field_of_study': ['Computer Science']}