Кіріспе

Қайта конфигурацияланатын есептеу – бұл бағдарламалық құралдың икемділігін аппараттық құралдың жоғары өнімділігімен үйлестіретін компьютерлік архитектура, ол өрісте бағдарламаланатын қақпалық тізбектер (FPGA) сияқты икемді аппараттық платформалармен өңдеуді жүзеге асырады. Кәдімгі микропроцессорларды қолданумен салыстырғандағы басты ерекшелік – FPGA арқылы қосымша есептеу блоктарын қосу мүмкіндігі. Ал, арнайы аппараттық құралдардан, яғни қолданбаға арналған интегралды схемалардан (ASIC) өзгешелігі – аппараттық құралды жұмыс істеп тұрғанда қайта конфигурацияланатын тізбекке жаңа схеманы "жүктеу" арқылы бейімдеу мүмкіндігі, соның нәтижесінде жаңа есептеу блоктарын қолданыстағы жүйеге жаңа чиптерді орнату қажеттілігінсіз қамтамасыз ету.

Тарих

Қайта конфигурацияланатын есептеулер туралы түсінік 1960 жылдан бері қалыптасқан, осыған дейін Джеральд Эстриннің мақаласында стандартты процессордан және "қайта конфигурацияланатын" аппараттық құралдар массивінен тұратын компьютер концепциясы ұсынылған. Басты процессор қайта конфигурацияланатын аппараттық құралдардың жұмысын басқарады. Ал соңғысы бейне өңдеу немесе үлгіні тану сияқты нақты міндетті арнайы аппараттық құралдай жылдам орындау үшін бейімделеді. Міндет орындалғаннан кейін, аппараттық құрал басқа міндетті орындау үшін қайта конфигурацияланады. Бұл бағдарламалық жасақтаманың икемділігі мен аппараттық жасақтаманың жылдамдығын біріктіретін гибридтік компьютерлік құрылымға әкелді. 1980 және 1990 жылдары осы зерттеу саласында қайта құруға болатын көптеген архитектуралар индустрия мен академияда әзірленді, мысалы: Copacobana, Matrix, GARP, Elixent, NGEN, Polyp, MereGen, PACT XPP, Silicon Hive, Montium, Pleiades, Morphosys және PiCoGA. Мұндай жобалар кремний технологиясының үздіксіз дамуының арқасында мүмкін болды, бұл күрделі жобаларды бір чипте жүзеге асыруға мүмкіндік берді. Осы өте параллель қайта конфигурацияланатын компьютерлердің кейбіреулері негізінен молекулалық эволюция, нейрондық немесе бейне өңдеу сияқты арнайы салалар үшін құрылды. Әлемдегі алғашқы коммерциялық қайта конфигурацияланатын компьютер Algotronix CHS2X4 1991 жылы аяқталды. Ол коммерциялық сәттілікке жете алмады, бірақ Xilinx (Field Programmable Gate Array, FPGA) компаниясы технологияны сатып алып, Algotronix қызметкерлерін жұмысқа алды, сондықтан перспективалы болды. Кейінгі машиналар MereGen көмегімен генетикалық кодтың кеңістіктегі спонтанды өзін-өзі ұйымдастыруы сияқты ғылыми принциптерді алғаш рет көрсетуге мүмкіндік берді.

Хартенштейннің Xputer

Компьютерлік ғалым Райнер Хартенштейн қайта конфигурацияланатын есептеуді анти-машина ретінде сипаттайды, ол, оның пікірінше, дәстүрлі фон Нейман машинасынан түбегейлі парадигмалық өзгерісті білдіреді. Хартенштейн мұны Қайта конфигурацияланатын есептеу парадоксы деп атайды, себебі бағдарламалық жасақтамадан конфигурацияға (бағдарламалық жасақтамадан FPGA-ға) көшу нәтижесінде жылдамдық төрт ретке дейін артуы, сондай-ақ электр энергиясын тұтыну төрт ретке дейін азаюы мүмкін – әйтсе де, FPGA-ның технологиялық параметрлері Гордон Мур қисығынан шамамен төрт ретке қалып қойған, ал такталық жиілігі микропроцессорлардың жиілігінен едәуір төмен. Бұл парадокстың бір бөлігі фон Нейман синдромымен түсіндіріледі.

Жоғары өнімділіктегі есептеу

Жоғары өнімділіктегі қайта конфигурацияланатын есептеу (HPRC) – қайта конфигурацияланатын есептеуге негізделген үдеткіштерді, мысалы, далалық бағдарламаланатын қақпа массивімен (FPGA) CPU немесе көп ядролы процессорларды біріктіретін компьютерлік архитектура. FPGA-дағы логиканың көбеюі FPGA-ға іріктемелі және күрделі алгоритмдерді бағдарламалауға мүмкіндік берді. Мұндай FPGA-ны заманауи CPU-ға жоғары жылдамдықты шина, мысалы PCI Express арқылы қосу, конфигурацияланатын логикаға перифериялық құрылғы емес, копроцессор ретінде жұмыс істеуге мүмкіндік берді. Бұл қайта конфигурацияланатын есептеуді жоғары өнімділіктегі есептеу саласына енгізді. Сонымен қатар, FPGA-да алгоритмді көшіру немесе бірнеше FPGA-ны пайдалану, бірнеше есептеу құрылғылары әртүрлі деректерде бір уақытта жұмыс істей алатын қайта конфигурацияланатын SIMD жүйелерін жасауға мүмкіндік берді, бұл жоғары параллель есептеу болып табылады. Бұл гетерогенді жүйелер техникасы есептеу зерттеулерінде, әсіресе суперкомпьютерлерде қолданылады. 2008 жылғы мақалада жылдамдық факторы 4 реттен астам, ал энергия үнемдеу факторы 4 ретке дейін жоғарылағаны туралы хабарланды. Кейбір суперкомпьютер фирмалары үдеткіштер ретінде FPGA-ны қамтитын гетерогенді өңдеу блоктарын ұсынады. Бір зерттеу саласы – мұндай гетерогенді жүйелер үшін алынған екі парадигмалы бағдарламалау құралының өнімділігі. АҚШ Ұлттық ғылым қорында жоғары өнімді қайта конфигурацияланатын есептеу орталығы (CHREC) бар. 2011 жылдың сәуір айында Еуропада төртінші Көп ядролы және қайта конфигурацияланатын суперкомпьютерлік конференция өтті. Коммерциялық жоғары өнімді қайта конфигурацияланатын есептеу жүйелері IBM-нің FPGA-ны IBM Power микропроцессорларымен интеграциялау туралы хабарлауымен пайда бола бастады.

Компьютерлік эмуляция

Қолжетімді FPGA тақталарының пайда болуымен студенттер мен хоббистердің жобалары көне компьютерлерді қайта жасауға немесе жаңа архитектураларды іске асыруға ұмтылады. Мұндай жобалар қайта конфигурацияланатын аппараттық құралдармен (FPGA) салынды, ал кейбір құрылғылар бір қайта конфигурацияланатын аппараттық құралды (C One) пайдаланып, бірнеше көне компьютерді эмуляциялауға мүмкіндік береді.

Копакобана

Толыққанды FPGA негізіндегі компьютер – COPACOBANA, Cost Optimized Codebreaker and Analyzer және оның ізбасары RIVYERA. Германиядағы Бохум және Киль университеттерінің COPACOBANA жобасынан туындаған SciEngines GmbH компаниясы толыққанды FPGA негізіндегі компьютерлерді әзірлеуді жалғастыруда.

Митрионика

Mitrionics компаниясы FPGA негізіндегі компьютерлерде компиляцияланып, орындалатын, бір тапсырма тілінде жазылған бағдарламалық құралды іске асыратын SDK әзірледі. Mitrion C бағдарламалық тілі және Mitrion процессоры бағдарламалық құралды жасаушыларға графикалық өңдеу бірліктері ("GPU"), жасушалық процессорлар, параллельді өңдеу бірліктері ("PPU"), көп ядролы CPU және дәстүрлі бір ядролы CPU кластерлері сияқты басқа есептеу технологияларымен салыстырылатын FPGA негізіндегі компьютерлерде бағдарламалар жазуға және орындауға мүмкіндік береді. (қызметін тоқтатты)

Ұлттық құралдар

National Instruments компаниясы CompactRIO деп аталатын гибридті енбектік есептеу жүйесін жасады. Ол қайта конфигурацияланатын шассиден тұрады, онда пайдаланушы бағдарламалай алатын FPGA, ыстық ауыстырылатын I/O модульдері, детерминистік байланыс және өңдеуге арналған нақты уақыт контроллері, сондай-ақ жылдам RT және FPGA бағдарламалау үшін графикалық LabVIEW бағдарламалық қамтамасы бар.

Ксилинкс

Xilinx FPGA құрылғыларын ішінара қайта конфигурациялаудың екі түрін әзірледі: модульдік және айырмашылыққа негізделген. Модульдік ішінара қайта конфигурациялау жобаның бөлек модульдік бөлімдерін қайта конфигурациялауға мүмкіндік береді, ал дизайнға шағын өзгеріс енгізілген кезде айырмашылыққа негізделген ішінара қайта конфигурациялау қолданылуы мүмкін.

Ақпараттық мәлімет

Intel компаниясы Stratix V сияқты 28 нм құрылғыларында және Arria 10 сияқты 20 нм құрылғыларында өзінің FPGA құрылғыларының ішінара қайта конфигурациялауын қолдайды. Arria 10 үшін Intel FPGA ішінара қайта конфигурациялау процесі Quartus Prime Pro бағдарламалық жасақтамасындағы иерархиялық жобалау әдістемесіне негізделген, онда пайдаланушылар FPGA-ның физикалық бөлімдерін құрастырады, оларды жұмыс істеу кезінде қайта конфигурациялауға болады, ал жобаның қалған бөлігі өз жұмысын жалғастыра береді. Quartus Prime Pro бағдарламалық жасақтамасы иерархиялық ішінара қайта конфигурациялауды және ішінара қайта конфигурациялауды модельдеуді де қолдайды.

Жүйелерді жіктеу

Жаңа дамып келе жатқан сала ретінде, қайта конфигурацияланатын архитектуралардың жіктелуі әлі де әзірленуде және жаңа архитектуралар жасалатын сайын нақтылануда; қазірге дейін бірыңғай таксономия ұсынылмаған. Дегенмен, осы жүйелерді жіктеу үшін бірнеше жиі кездесетін параметрлерді пайдалануға болады.

Ұсақ-түйектілік

Қайта конфигурацияланатын логиканың түйіршіктілігі – карталау құралдарымен мекенделген ең кіші функционалдық бірліктің (конфигурацияланатын логикалық блок, CLB) мөлшері ретінде анықталады. Жоғары түйіршіктілік, сондай-ақ ұсақ түйіршіктілік деп те аталатын, алгоритмдерді аппараттық құрылымға енгізуде көбінесе үлкен икемділікті білдіреді. Дегенмен, бұл есептеу үшін қажет маршрутизацияның көбейтілуіне байланысты қуатты тұтынудың, ауданының және кешігу уақытының артуымен байланысты. Ұсақ түйіршікті архитектуралар бит деңгейіндегі манипуляциялармен жұмыс істейді; ал ірі түйіршікті өңдеу элементтері (қайта конфигурацияланатын деректер жолы бірлігі, rDPU) стандартты деректер жолы қолданбалары үшін жақсырақ оңтайландырылған. Ірі түйіршікті архитектуралардың бір кемшілігі – егер олар өз түйіршіктілігі ұсынатыннан кішірек есептеулерді орындау қажет болса, пайдалану тиімділігі мен өнімділіктің төмендеуі, мысалы, төрт биттік функционалдық бірлікке бір бит қосу үш битті босқа жұмсауға әкеледі. Бұл мәселені ірі түйіршікті массивті (қайта конфигурацияланатын деректер жолы массиві, rDPA) және FPGA-ны бір чипте орналастыру арқылы шешуге болады. Ірі түйіршікті архитектуралар (rDPA) сөз енінің деректер жолын (rDPU) қажет ететін алгоритмдерді жүзеге асыруға арналған. Олардың функционалдық блоктары үлкен есептеулерге оңтайландырылғандықтан және әдетте сөз енінің арифметикалық-логикалық құрылғыларын (ALU) қамтитындықтан, олар осы есептеулерді өзара байланыстырылған кіші функционалдық бірліктер жиынтығынан гөрі жылдамырақ және қуатты тиімдірек орындайды; бұл себебі байланыстыру сымдары қысқа болады, нәтижесінде сымдық сыйымдылық азаяды, соның салдарынан жылдам және қуатты үнемдейтін дизайн құрылады. Үлкен есептеу блоктарының болуының ықтимал кемшілігі – операндтардың мөлшері алгоритмге сәйкес келмесе, ресурстарды тиімсіз пайдалану мүмкін. Көбінесе қолданылатын қосымшалардың түрі алдын ала белгілі болады, бұл логикалық, жад және маршрутизация ресурстарын құрылғының өнімділігін арттыру үшін бейімдеуге мүмкіндік береді, сонымен бірге болашақта бейімделу үшін белгілі бір деңгейде икемділікті сақтайды. Мұның мысалы – доменге арналған массивтер, олар өз икемділігін төмендету арқылы жалпы ұсақ түйіршікті FPGA-ларына қарағанда қуатты тұтыну, аудан және өткізу қабілеті тұрғысынан жақсырақ өнімділікке қол жеткізуге бағытталған.

Қайта конфигурациялау жылдамдығы

Бұл қайта конфигурацияланатын жүйелерді орнату кезінде, орындалу фазалары арасында немесе орындалу барысында конфигурациялауға болады. Типтік қайта конфигурацияланатын жүйеде құрылғыны орнату кезінде бағдарламалау үшін бит ағыны қолданылады. Өте ұсақ түйірлі жүйелердің өзіндік ерекшелігіне сәйкес, көптеген элементтерді қарастыру және бағдарламалау қажет болғандықтан, олар ірі түйірлі архитектураларға қарағанда көбірек конфигурациялау уақытын қажет етеді. Сондықтан, ірі түйірлі архитектуралар энергияны аз жұмсау мүмкіндігіне ие, себебі аз көлемдегі ақпарат жіберіледі және қолданылады. Интуитивті түрде, қайта конфигурациялау жылдамдығы төмен болған сайын, энергия тұтыну азаяды, өйткені қайта конфигурациялауға байланысты энергия шығындары ұзақ мерзімге бөлінеді. Жарым-жартылай қайта конфигурациялау құрылғының бір бөлігін қайта бағдарламалауға мүмкіндік береді, ал қалған бөлігі активті есептеулерді орындауды жалғастырады. Бөлшек қайта конфигурациялау кішірек қайта конфигурацияланатын бит ағындарын қамтамасыз етеді, соның салдарынан бит ағынындағы артық ақпаратты жіберуге кететін энергияны үнемдейді. Бит ағынын қысуға болады, бірақ қысқартылған бит ағындарынан үнемделген энергия деректерді қысуға жұмсалатын есептеулермен теңестірілмеуі үшін сақты талдау жүргізу қажет.

Қосқыш қосылысы

Көбінесе қайта конфигурацияланатын массив хост-процессорға қосылған өңдеуді үдеткіш ретінде қолданылады. Бұл байланыс деңгейі қайта конфигурацияланатын логиканы пайдаланғандағы деректерді беру түрін, жауап уақытын, қуатты, өнімділікті және қосымша шығындарды анықтайды. Ең қарапайым дизайндардың кейбіреулері қайта конфигурацияланатын массив үшін копроцессор тәрізді жұмыс істеуін қамтамасыз ету үшін перифериялық шинаны пайдаланады. Дегенмен, кейбір жағдайларда қайта конфигурацияланатын элемент процессорға жақын орналасқан, тіпті процессордың деректер жолына енгізіліп, оның регистрлерін пайдаланады. Хост-процессордың міндеті – басқару функцияларын орындау, логиканы конфигурациялау, деректерді жоспарлау және сыртқы интерфейспен байланыстыру.

Маршруттау/аралас байланыс

Қайта конфигурацияланатын құрылғылардың икемділігі негізінен олардың маршруттандыру өзарабайланысынан туындайды. FPGA өндірушілері Xilinx және Altera тарапынан танымал болған өзарабайланыстың бір түрі – аралдық стильдегі орналасу, онда блоктар тік және көлденең маршруттармен массив түрінде орналастырылады. Маршруттандыру жеткіліксіз болса, икемділік пен ресурстарды тиімді пайдалану нашарлап, нәтижесінде өнімділік шектеулі болуы мүмкін. Егер өзарабайланыс тым көп болса, қажеттіден артық транзисторлар қолданылып, кремний алаңының көлемі артады, сымдардың ұзындығы ұзарады және қуатты тұтыну жоғарылайды.

Операциялық жүйелер алдындағы қиындықтар

Қайта конфигурацияланатын есептеудің маңызды міндеттерінің бірі – жоғары деңгейдегі жобалау өнімділігін қамтамасыз ету және негізгі ұғымдармен таныс емес пайдаланушылар үшін қайта конфигурацияланатын есептеу жүйелерін қолдануды жеңілдету. Мұны істеудің бір жолы – стандарттау және абстракциялауды ұсыну, бұл әдетте операциялық жүйемен қолдалады және іске асырылады. Операциялық жүйенің басты міндеттерінің бірі – аппараттық құралды жасырып, бағдарламаларға (және олардың бағдарламашыларына) жұмыс үшін ыңғайлы, таза, әдемі және үйлесімді абстракцияларды ұсыну. Басқаша айтқанда, операциялық жүйенің екі негізгі міндеті – абстракция және ресурстарды басқару. Абстракция – күрделі және әртүрлі (аппараттық) тапсырмаларды анықталған және ортақ тәсілмен басқарудың қуатты механизмі. Операциялық жүйенің ең қарапайым абстракцияларының бірі – процесс. Процесс – іске қосылған қолданба, ол операциялық жүйе ұсынатын түсінік бойынша, негізгі виртуалды аппараттық құралда дербес жұмыс істеп жатқандай сезінеді. Бұл жіптер (threads) тұжырымдамасымен жеңілдетілуі мүмкін, бұл виртуалды аппараттық құралда тапсырмалардың деңгейінде параллелизмді пайдалануға мүмкіндік береді. Әртүрлі процестер мен жіптердің жұмысын үйлестіру үшін операциялық жүйе байланыс және синхрондау әдістерін қамтамасыз етуі керек. Абстракциядан басқа, негізгі аппараттық компоненттердің ресурстарын басқару қажет, себебі операциялық жүйе процестер мен жіптерге ұсынатын виртуалды компьютерлер қолданыстағы физикалық ресурстарды (процессорлар, жад және құрылғылар) кеңістікте және уақыт бойынша бөлісуі керек.