Uudelleenkonfiguroitava tietojenkäsittely - Reconfigurable computing
Uudelleenkonfiguroitava tietojenkäsittely on tietokonearkkitehtuuri, jossa ohjelmiston joustavuus yhdistyy laitteiston korkeaan suorituskykyyn käsittelemällä erittäin joustavia nopeita laskentatekniikoita, kuten kenttäohjelmoitavia porttijärjestelmiä (FPGA). Suurin ero tavallisten mikroprosessorien käyttöön verrattuna on kyky tehdä olennaisia muutoksia itse tietoväylään ohjausvirran lisäksi. Toisaalta tärkein ero mukautetusta laitteistosta eli sovelluskohtaisista integroiduista piireistä (ASIC) on mahdollisuus sovittaa laitteisto ajon aikana "lataamalla" uusi piiri uudelleenkonfiguroitavaan kankaaseen.
Historia
Uudelleenkonfiguroitavan tietojenkäsittelyn käsite on ollut olemassa 1960 -luvulta lähtien, jolloin Gerald Estrinin paperissa ehdotettiin konseptia tietokoneesta, joka koostuu vakioprosessorista ja joukosta "uudelleenkonfiguroitavia" laitteistoja. Pääprosessori hallitsisi uudelleenkonfiguroitavan laitteiston käyttäytymistä. Jälkimmäinen räätälöidään sitten suorittamaan tietty tehtävä, kuten kuvankäsittely tai kuvion sovitus , niin nopeasti kuin oma laitteisto. Kun tehtävä oli tehty, laitteisto voidaan säätää tekemään jotain muuta tehtävää. Tämä johti hybriditietokonerakenteeseen, jossa ohjelmiston joustavuus yhdistettiin laitteiston nopeuteen.
1980- ja 1990 -luvuilla tällä tutkimusalueella tapahtui renessanssi, ja teollisuudessa ja yliopistoissa kehitettiin monia uudelleenkonfiguroitavia arkkitehtuureja, kuten: Copacobana, Matrix, GARP, Elixent, NGEN, Polyp, MereGen, PACT XPP, Silicon Hive, Montium, Pleiades, Morphosys ja PiCoGA. Tällaiset mallit olivat mahdollisia, koska piitekniikka kehittyi jatkuvasti, mikä mahdollisti monimutkaisten mallien toteuttamisen yhdellä sirulla. Jotkut näistä massiivisesti rinnakkaisista uudelleenkonfiguroitavista tietokoneista on rakennettu ensisijaisesti erityisille alialueille, kuten molekyylien evoluutiolle, hermo- tai kuvankäsittelylle. Maailman ensimmäinen kaupallinen uudelleenkonfiguroitava tietokone, Algotronix CHS2X4, valmistui vuonna 1991. Se ei ollut kaupallinen menestys, mutta oli riittävän lupaava, että Xilinx ( Field-Programmable Gate Array , FPGA: n keksijä ) osti tekniikan ja palkkasi Algotronixin henkilökunnan . Myöhemmät koneet mahdollistivat ensimmäiset tieteellisten periaatteiden demonstraatiot, kuten geneettisen koodauksen spontaanin spatiaalisen itseorganisaation MereGenillä.
Teorioita
Tredennickin luokitus
| Varhaiset historialliset tietokoneet: | |
| Ohjelmointilähde | |
|---|---|
| Resurssit korjattu | ei mitään |
| Algoritmit korjattu | ei mitään |
| von Neumannin tietokone: | |
| Ohjelmointilähde | |
| Resurssit korjattu | ei mitään |
| Algoritmit vaihtelevat | Ohjelmisto (ohjevirrat) |
| Uudelleenkonfiguroitavat tietokonejärjestelmät: | |
| Ohjelmointilähde | |
| Resurssit muuttuja | Configware (kokoonpano) |
| Algoritmit vaihtelevat | Flowware (datavirrat) |
Uudelleenkonfiguroitavan tietokonelaitteiston paradigman perusmalli, tietovirtapohjainen anti-kone on hyvin havainnollistettu eroilla muihin aiemmin käyttöön otettuihin koneparadigmoihin , kuten Nick Tredennickin seuraava laskentamallien luokittelumalli osoittaa (katso "Taulukko"). 1: Nick Tredennickin paradigmien luokittelujärjestelmä ").
Hartensteinin Xputer
Tietojenkäsittelytieteilijä Reiner Hartenstein kuvaa uudelleenkonfiguroitavaa tietojenkäsittelyä anti-koneena , joka hänen mukaansa edustaa perustavanlaatuista paradigman muutosta pois tavanomaisemmasta von Neumannin koneesta . Hartenstein kutsuu sitä uudelleenkonfiguroitavaksi tietojenkäsittelyparadoksiksi, jonka mukaan ohjelmisto-konfigurointiohjelmisto (ohjelmisto- FPGA ) -siirto johtaa raportoituihin jopa yli neljän suuruusluokan nopeustekijöihin sekä sähkönkulutuksen pienenemiseen jopa lähes neljä suuruusluokkaa - vaikka FPGA: iden tekniset parametrit ovat Gordon Mooren käyrän takana noin neljä suuruusluokkaa ja kellotaajuus on huomattavasti pienempi kuin mikroprosessoreilla. Tämä paradoksi selittyy osittain Von Neumannin oireyhtymällä .
Tehokas tietojenkäsittely
High-Performance muunneltavia Computing (HPRC) on tietokone arkkitehtuuri yhdistetään uudelleenkonfiguroitava tietojenkäsittely-pohjainen kiihdyttimiä, kuten FPGA suorittimien kanssa, tai usean ytimen prosessorit .
FPGA: n logiikan lisääntyminen on mahdollistanut suurempien ja monimutkaisempien algoritmien ohjelmoinnin FPGA: han. Tällaisen FPGA: n liittäminen nykyaikaiseen suorittimeen nopean väylän kautta, kuten PCI Express , on mahdollistanut konfiguroitavan logiikan toimia enemmän rinnakkaisprosessorina kuin oheislaitteena . Tämä on tuonut uudelleenkonfiguroitavan tietojenkäsittelyn korkean suorituskyvyn tietojenkäsittelyalaan .
Lisäksi algoritmin replikointi FPGA: lla tai useiden FPGA: iden käyttö on mahdollistanut uudelleenkonfiguroitavien SIMD -järjestelmien tuottamisen, jossa useat laskentalaitteet voivat samanaikaisesti toimia eri datalla, mikä on erittäin rinnakkaislaskentaa .
Tätä heterogeenistä järjestelmätekniikkaa käytetään laskennallisessa tutkimuksessa ja erityisesti supertietokoneissa . Vuonna 2008 julkaistu paperi raportoi yli 4 suuruusluokan nopeustekijöistä ja jopa 4 suuruusluokkaa energiansäästötekijöistä. Jotkut supertietokoneyritykset tarjoavat heterogeenisiä käsittelylohkoja, mukaan lukien FPGA: t kiihdyttiminä. Yksi tutkimusalue on kaksiparadigmainen ohjelmointityökalun virran tuottavuus, joka saadaan tällaisille heterogeenisille järjestelmille.
Yhdysvaltain kansallisella tiedesäätiöllä on keskus korkean suorituskyvyn uudelleenkonfiguroitavaan tietojenkäsittelyyn (CHREC). Huhtikuussa 2011 järjestettiin neljäs Euroopassa monisydäminen ja uudelleenkonfiguroitava supertietokonferenssi.
Kaupallisia korkean suorituskyvyn uudelleenkonfiguroitavia tietokonejärjestelmiä on alkanut ilmestyä, kun IBM ilmoittaa integroivansa FPGA: t POWER- prosessoriinsa.
Osittainen uudelleenmääritys
Osittainen uudelleen kokoonpano on prosessi, jossa muutetaan osan muunneltavia laitteisto piiri , kun taas toinen osa säilyttää entinen kokoonpano. Kenttäohjelmoitavia porttijärjestelmiä käytetään usein osittaisen uudelleenkonfiguroinnin tukena.
Elektroniset laitteistot , kuten ohjelmistot , voidaan suunnitella modulaarisesti luomalla alikomponentteja ja sitten korkeamman tason komponentteja niiden ilmentämiseksi. Monissa tapauksissa on hyödyllistä vaihtaa yksi tai useampi näistä alikomponenteista FPGA: n ollessa vielä toiminnassa.
Normaalisti FPGA: n uudelleenkonfigurointi vaatii sen pitämistä nollassa, kun ulkoinen ohjain lataa mallin siihen. Osittainen uudelleenkonfigurointi mahdollistaa suunnittelun kriittisten osien toiminnan edelleen, kun ohjain joko FPGA: ssa tai sen ulkopuolella lataa osittaisen rakenteen uudelleenkonfiguroitavaan moduuliin. Osittaista uudelleenkonfigurointia voidaan käyttää myös tilan säästämiseen useille malleille tallentamalla vain osittaiset mallit, jotka vaihtelevat mallien välillä.
Yleinen esimerkki siitä, milloin osittainen uudelleenkonfigurointi olisi hyödyllinen, on viestintälaite. Jos laite ohjaa useita yhteyksiä, joista osa vaatii salausta , olisi hyödyllistä pystyä lataamaan erilaisia salausytimiä ilman, että koko ohjain putoaa.
Osittaista uudelleenkonfigurointia ei tueta kaikissa FPGA -laitteissa. Tarvitaan erityinen ohjelmistovirta, jossa painotetaan modulaarista suunnittelua. Tyypillisesti suunnittelumoduulit rakennetaan FPGA: n sisällä hyvin määriteltyjä rajoja pitkin, mikä edellyttää, että malli on erityisesti yhdistetty sisäiseen laitteistoon.
Suunnittelun toiminnallisuuden perusteella osittainen uudelleenkonfigurointi voidaan jakaa kahteen ryhmään:
- dynaaminen osittainen uudelleenkonfigurointi , joka tunnetaan myös nimellä aktiivinen osittainen uudelleenkonfigurointi - sallii laitteen osan vaihtamisen, kun muu FPGA on vielä käynnissä;
- staattinen osittainen uudelleenkonfigurointi - laite ei ole aktiivinen uudelleenkonfiguroinnin aikana. Kun osittaiset tiedot lähetetään FPGA -järjestelmään, muu laite pysäytetään (sammutustilassa) ja tuodaan esiin määrityksen valmistuttua.
Nykyiset järjestelmät
Tietokoneemulointi
Edullisten FPGA -levyjen myötä opiskelijoiden ja harrastajien hankkeet pyrkivät luomaan uudelleen vanhoja tietokoneita tai toteuttamaan uusia arkkitehtuureja. Tällaiset projektit on rakennettu uudelleenkonfiguroitavalla laitteistolla (FPGA), ja jotkut laitteet tukevat useiden vintage-tietokoneiden emulointia yhdellä uudelleenkonfiguroitavalla laitteistolla ( C-One ).
COPACOBANA
Täysin FPGA-pohjainen tietokone on COPACOBANA, Cost Optimized Codebreaker and Analyzer ja sen seuraaja RIVYERA. Spin-off-yritys SciEngines GmbH COPACOBANA-hankkeesta Bochumin ja Kielin yliopistoissa Saksassa jatkaa täysin FPGA-pohjaisten tietokoneiden kehittämistä.
Mitrioniikka
Mitrionics on kehittänyt SDK: n, joka mahdollistaa ohjelmiston kääntämisen yhdellä kielellä ja suoritetaan FPGA-pohjaisilla tietokoneilla. Mitrion-C-ohjelmistokieli ja Mitrion-prosessori mahdollistavat ohjelmistokehittäjien kirjoittaa ja suorittaa sovelluksia FPGA-pohjaisilla tietokoneilla samalla tavalla kuin muilla laskentatekniikoilla, kuten graafisilla käsittelyyksiköillä (GPU), solupohjaisilla prosessoreilla ja rinnakkaisprosessoinnilla yksiköt (”PPU: t”), moniydinsuorittimet ja perinteiset yhden ytimen suorittimet. (pois toiminnasta)
Kansalliset välineet
National Instruments on kehittänyt sulautetun hybridijärjestelmän nimeltä CompactRIO . Se koostuu uudelleen konfiguroitavasta kotelosta, jossa on käyttäjän ohjelmoitava FPGA, vaihdettavat I/O-moduulit, reaaliaikainen ohjain deterministiseen kommunikaatioon ja käsittelyyn sekä graafinen LabVIEW-ohjelmisto nopeaan RT- ja FPGA-ohjelmointiin.
Xilinx
Xilinx on kehittänyt kaksi FPGA-laitteiden osittaisen uudelleenkonfigurointityyliä: moduulipohjaisen ja eroihin perustuvan . Moduulipohjainen osittainen uudelleenkonfigurointi sallii rakenteen erillisten modulaaristen osien määrittämisen uudelleen, kun taas eroihin perustuvaa osittaista uudelleenkonfigurointia voidaan käyttää, kun rakenteeseen tehdään pieni muutos.
Intel
Intel tukee FPGA -laitteidensa osittaista uudelleenkonfigurointia 28 nm: n laitteille, kuten Stratix V, ja 20 nm: n Arria 10 -laitteille. Intel FPGA Arria 10: n osittainen uudelleenkonfigurointi perustuu Quartus Prime Pro -ohjelmiston hierarkkiseen suunnittelumenetelmään, jossa käyttäjät luovat FPGA: n fyysisiä osioita, jotka voidaan konfiguroida uudelleen ajon aikana, kun loput suunnittelusta jatkavat toimintaa. Quartus Prime Pro -ohjelmisto tukee myös hierarkkista osittaista uudelleenkonfigurointia ja osittaisen uudelleenkonfiguroinnin simulointia.
Järjestelmien luokittelu
Uudistuvana alalla uudelleenkonfiguroitavien arkkitehtuurien luokituksia kehitetään edelleen ja tarkennetaan uusien arkkitehtuurien kehittämisen yhteydessä. yhdistävää taksonomiaa ei ole toistaiseksi ehdotettu. Näitä järjestelmiä voidaan kuitenkin luokitella useilla toistuvilla parametreilla.
Rakeisuus
Uudelleenkonfiguroitavan logiikan rakeisuus määritellään pienimmän toiminnallisen yksikön (konfiguroitava logiikkalohko, CLB) kooksi, jota kartoitusvälineet käsittelevät. Korkea rakeisuus, jota voidaan myös kutsua hienorakeiseksi, edellyttää usein suurempaa joustavuutta algoritmien käyttöönotossa laitteistossa. Tähän liittyy kuitenkin rangaistus lisääntyneestä tehosta, pinta -alasta ja viiveestä johtuen laskennasta vaadittavasta suuremmasta reititysmäärästä. Hienorakeiset arkkitehtuurit toimivat bittitason manipulointitasolla; kun taas karkeat rakeistetut käsittelyelementit (uudelleenkonfiguroitava datapath -yksikkö, rDPU) on optimoitu paremmin vakiotietosovelluksiin. Yksi karkean rakeisen arkkitehtuurin haitoista on, että ne menettävät osan käytöstä ja suorituskyvystä, jos niiden on suoritettava pienempiä laskelmia kuin niiden rakeisuus tarjoaa, esimerkiksi yhden bitin lisäys neljän bitin leveään toiminnalliseen yksikköön tuhlaa kolme bittiä . Tämä ongelma voidaan ratkaista käyttämällä karkeaa viljaryhmää ( uudelleenkonfiguroitava datapath array , rDPA) ja FPGA samassa sirussa.
Karkeat rakeiset arkkitehtuurit ( rDPA ) on tarkoitettu toteutettavaksi algoritmeille, jotka tarvitsevat sananleveyttä datapolkuja (rDPU). Koska niiden toiminnalliset lohkot on optimoitu suurille laskutoimituksille ja sisältävät tyypillisesti sanan leveitä aritmeettisia logiikkayksiköitä (ALU), ne suorittavat nämä laskelmat nopeammin ja tehokkaammin kuin joukko toisiinsa yhdistettyjä pienempiä toiminnallisia yksiköitä; tämä johtuu siitä, että liitäntäjohdot ovat lyhyempiä, mikä johtaa vähemmän johtimien kapasitanssiin ja siten nopeampiin ja pienempiin tehomalleihin. Mahdollinen ei -toivottu seuraus suuremmista laskentalohkoista on se, että jos operandien koko ei ehkä vastaa algoritmia, tuloksena voi olla resurssien tehoton käyttö. Usein suoritettavat sovellustyypit tunnetaan etukäteen, jolloin logiikka-, muisti- ja reititysresurssit voidaan räätälöidä parantamaan laitteen suorituskykyä samalla kun ne tarjoavat tietyn joustavuuden tulevaa sopeutumista varten. Esimerkkejä tästä ovat verkkotunnuskohtaiset taulukot, joiden tarkoituksena on saavuttaa parempi suorituskyky tehon, alueen ja suorituskyvyn suhteen kuin niiden yleisemmät hienorakeisemmat FPGA -serkut vähentämällä niiden joustavuutta.
Uudelleenkonfiguroinnin nopeus
Näiden uudelleenkonfiguroitavien järjestelmien kokoonpano voi tapahtua käyttöönottoajankohtana, suoritusvaiheiden välillä tai suorituksen aikana. Tyypillisessä uudelleenkonfiguroitavassa järjestelmässä käytetään bittivirtaa laitteen ohjelmoimiseksi käyttöönottoajankohtana. Hienorakeiset järjestelmät vaativat luonteensa vuoksi enemmän kokoonpanoaikaa kuin karkeammat rakeiset arkkitehtuurit, koska lisää elementtejä on käsiteltävä ja ohjelmoitava. Siksi karkeammat arkkitehtuurit hyötyvät mahdollisista pienemmistä energiantarpeista, koska vähemmän tietoa siirretään ja hyödynnetään. Intuitiivisesti, mitä hitaampi uudelleenkonfiguroinnin nopeus, sitä pienempi energiankulutus, koska uudelleenkonfiguroinnin energiakustannukset poistetaan pidemmän ajan kuluessa. Osittaisen uudelleenkonfiguroinnin tavoitteena on mahdollistaa osan laitteen uudelleenohjelmointi, kun toinen osa suorittaa edelleen aktiivista laskentaa. Osittainen uudelleenkonfigurointi mahdollistaa pienemmät uudelleenkonfiguroitavat bittivirrat, jolloin ei tuhlata energiaa redundanttisten tietojen lähettämiseen bittivirrassa. Bittivirran pakkaaminen on mahdollista, mutta huolellinen analyysi on suoritettava sen varmistamiseksi, että pienempien bittivirtojen avulla säästetty energia ei ole suurempaa kuin tietojen purkamiseen tarvittava laskenta.
Isäntäkytkentä
Usein uudelleenkonfiguroitavaa matriisia käytetään prosessorin kiihdyttimenä, joka on liitetty isäntäprosessoriin. Liitännän taso määrittää tiedonsiirron tyypin, viiveen, tehon, suoritustehon ja yleiskustannukset, kun käytetään uudelleenkonfiguroitavaa logiikkaa. Jotkut intuitiivisimmista malleista käyttävät oheisväylää tarjotakseen rinnakkaisprosessorin kaltaisen järjestelyn uudelleenkonfiguroitavalle ryhmälle. On kuitenkin ollut myös toteutuksia, joissa uudelleenkonfiguroitava kangas on paljon lähempänä prosessoria, jotkut jopa toteutetaan datapolulle prosessorirekisterien avulla. Isäntäprosessorin tehtävänä on suorittaa ohjaustoiminnot, määrittää logiikka, ajoittaa tiedot ja tarjota ulkoinen liitäntä.
Reititys/yhdistäminen
Uudelleenkonfiguroitavien laitteiden joustavuus johtuu pääasiassa niiden reititysyhteydestä. Yksi FPGA -toimittajien, Xilinxin ja Alteran, suosittu yhdistämistyyli on saartotyylinen asettelu, jossa lohkot on järjestetty taulukkoon pystysuoralla ja vaakasuoralla reitityksellä. Asettelu, jonka reititys on riittämätön, voi kärsiä heikosta joustavuudesta ja resurssien käytöstä, mikä heikentää suorituskykyä. Jos liitäntöjä on liikaa, tämä vaatii enemmän transistoreita kuin tarvitaan ja siten enemmän piipinta -alaa, pidempiä johtoja ja enemmän virrankulutusta.
Haasteet käyttöjärjestelmille
Yksi uudelleenkonfiguroitavan tietojenkäsittelyn tärkeimmistä haasteista on mahdollistaa suurempi suunnittelun tuottavuus ja tarjota helpompi tapa käyttää uudelleenkonfiguroitavia tietokonejärjestelmiä käyttäjille, jotka eivät tunne taustalla olevia käsitteitä. Yksi tapa tehdä tämä on tarjota standardointi ja abstraktio, joita yleensä tukee ja valvoo käyttöjärjestelmä.
Yksi käyttöjärjestelmän tärkeimmistä tehtävistä on piilottaa laitteisto ja esittää ohjelmat (ja niiden ohjelmoijat) mukavilla, puhtailla, tyylikkäillä ja johdonmukaisilla abstraktioilla. Toisin sanoen käyttöjärjestelmän kaksi päätehtävää ovat abstraktio ja resurssienhallinta .
Abstraktio on tehokas mekanismi monimutkaisten ja erilaisten (laitteisto) tehtävien hoitamiseksi hyvin määritellyllä ja yleisellä tavalla. Yksi yksinkertaisimmista käyttöjärjestelmän abstraktioista on prosessi. Prosessi on käynnissä oleva sovellus, jolla on (käyttöjärjestelmän tarjoama) käsitys, että se toimii yksinään taustalla olevassa virtuaalilaitteistossa. Tätä voidaan lieventää säikeiden käsitteellä, jolloin eri tehtävät voidaan suorittaa samanaikaisesti tällä virtuaalilaitteistolla tehtävien tason rinnakkaisuuden hyödyntämiseksi. Jotta eri prosessit ja säikeet voisivat koordinoida työnsä, käyttöjärjestelmän on tarjottava viestintä- ja synkronointimenetelmät.
Abstraktion lisäksi taustalla olevien laitteistokomponenttien resurssienhallinta on välttämätöntä, koska käyttöjärjestelmän prosessien ja säikeiden toimittamien virtuaalitietokoneiden on jaettava käytettävissä olevat fyysiset resurssit (prosessorit, muisti ja laitteet) alueellisesti ja tilapäisesti.
Katso myös
Viitteet
Lue lisää
- Cardoso, Joãon kansanedustaja; Hübner, Michael (toim.), Uudelleenkonfiguroitava tietojenkäsittely: FPGA: sta laitteiston/ohjelmiston koodisuunnitteluun , Springer, 2011.
- Hauck ja A. DeHon, Uudelleenkonfiguroitava tietojenkäsittely: Theory and Practice of FPGA-Based Computing , Morgan Kaufmann , 2008.
- J. Henkel, S. Parameswaran (toimittajat): sulautettujen prosessorien suunnittelu. Pienen tehon näkökulma; Springer Verlag, maaliskuu 2007
- J. Teich (toimittaja) et ai .: Uudelleenkonfiguroitavat tietokonejärjestelmät. Lehden erityisnumero - IT -tekniikka , Oldenbourg Verlag, München. Voi. 49 (2007), numero 3
- TJ Todman, GA Constantinides, SJE Wilton, O. Mencer, W. Luk ja PYK Cheung, "Reconfigurable Computing: Architecture and Design Methods", IEEE Proceedings: Computer & Digital Techniques, Voi. 152, nro 2, maaliskuu 2005, s. 193–208.
- A. Zomaya (toimittaja): Handbook of Nature-Inspired and Innovative Computing: Integrating Classical Models with Emerging Technologies; Springer Verlag, 2006
- JM Arnold ja DA Buell, "VHDL -ohjelmointi Splash 2: ssa", julkaisussa More FPGAs, Will Moore ja Wayne Luk, toimittajat, Abingdon EE & CS Books, Oxford, England, 1994, s. 182–191. (Proceedings, International Workshop on Field-Programmable Logic, Oxford, 1993.)
- JM Arnold, DA Buell, D. Hoang, DV Pryor, N. Shirazi, MR Thistle, "Splash 2 ja sen sovellukset", Proceedings, International Conference on Computer Design, Cambridge, 1993, s. 482–486.
- DA Buell ja Kenneth L. Pocek, "Custom computing machines: An Introduction", The Journal of Supercomputing , v. 9, 1995, s. 219–230.
Ulkoiset linkit
- Luentoja uudelleenkonfiguroitavasta laskennasta Brownin yliopistossa
- Johdatus dynaamiseen osittaiseen uudelleenmääritykseen
- ReCoBus-Builder-projekti monimutkaisten uudelleenkonfiguroitavien järjestelmien helppoon käyttöönottoon
- DRESD (Dynamic Reconfigurability in Embedded System Design) -tutkimushanke