Кіріспе

16/32 биттік микропроцессорлар отбасы, DSP микропроцессоры

Blackfin – Analog Devices компаниясы әзірлеген, өндірген және сатқан 16/32 биттік микропроцессорлар отбасы. Процессорлар 16 биттік көбейту-қосу операцияларын (MAC) орындайтын, бекітілген нүктелік цифрлық сигналды өңдеу (DSP) функционалдығын, микроконтроллермен бірге микросхемада біріктіреді. Ол операциялық жүйелерді іске қосумен қатар, H.264 бейнесін кодтау сияқты күрделі сандық есептерді бір уақытта орындай алатын бірыңғай, төмен қуатты процессор архитектурасы үшін жасалған.

Сәулет ерекшеліктері

Blackfin процессорлары Intel және Analog Devices компаниялары бірлесіп MSA (Micro Signal Architecture) ретінде әзірлеген SIMD архитектурасында 32 биттік RISC микроконтроллерлік бағдарламалау моделін пайдаланады. Архитектура 2000 жылдың желтоқсанында жарияланды және алғаш рет 2001 жылдың маусым айында Embedded Systems конференциясында көрсетілді. Ол ADI-дің бұрынғы SHARC архитектурасының және Intel-дің XScale архитектурасының элементтерін бір ядроға біріктіріп, сандық сигналды өңдеу (DSP) және микроконтроллерлік функционалдықты үйлестіреді. Blackfin/MSA және XScale/ARM немесе SHARC арасындағы негізгі архитектурада көптеген айырмашылықтар бар, бірақ бұл үйлесім дәстүрлі DSP немесе RISC архитектуралық шешімдерімен салыстырғанда өнімділікті, бағдарламалау мүмкіндігін және қуатты үнемдеуді жақсарту мақсатында жасалған. Blackfin архитектурасы әртүрлі CPU модельдерін қамтиды, олардың әрқайсысы нақты қолданыс салаларына бағытталған. 2014 жылы ұсынылған BF 7xx сериясы Blackfin+ архитектурасын құрайды, ол Blackfin архитектурасын жаңа процессорлық мүмкіндіктермен және командалармен кеңейтеді.

Негізгі ерекшеліктері

Қара қанаттың "негізгі" бөлігі деп есептелетін нәрсе контекстке байланысты. Кейбір қолданбалар үшін DSP мүмкіндіктері басты рөлде. Blackfin процессорларында екі 16 биттік аппараттық MAC, екі 40 биттік ALU және аккумулятор, 40 биттік шеңберлік ауыстырғыш және төрт 8 биттік бейне ALU бар; Blackfin+ процессорлары 32 биттік MAC және 72 биттік аккумулятормен толықтырылған. Бұл процессорға компилятордың немесе бағдарламашының оңтайландыру деңгейіне қарай, секундтық цикл ішінде үшке дейін нұсқауды орындауға мүмкіндік береді. Екі ішкі нөлдік шығынды цикл және төрт дөңгелек буферлік DAG (деректер мекенжай генераторлары) тиімді кодты, аз нұсқаулармен жазуға көмектеседі. Басқа қолданбалар RISC мүмкіндіктерін пайдаланады, оларға жадты қорғау, әртүрлі жұмыс режимдері (пайдаланушы, ядро), бір циклді операциялық кодтар, деректер және нұсқаулар кэштері, біт тестілеу, байт, сөз немесе бүтін санға қол жеткізу нұсқаулары және түрлі чиптегі перифериялық құрылғылар кіреді. ISA жоғары деңгейдегі көрнекілік үшін жасалған, бұл құрастырушы бағдарламалаушыға (немесе компиляторға) алгоритмді қолданыстағы аппараттық мүмкіндіктерге орай оңтайландыруға мүмкіндік береді. Стандартты Blackfin құрастыру тілі алгебралық синтаксиспен жазылған, көптеген басқа құрастыру тілдерінде қолданылатын префикс командаларының орнына.

Жады және DMA

Blackfin байт адресті, жазық жад картасын қолданады. Ішкі L1 жады, ішкі L2 жады, сыртқы жад және барлық жадқа бейімделген басқару тіркегіштері осы 32 биттік адрес кеңістігінде орналасқан. Сондықтан бағдарламалау тұрғысынан қарағанда, Blackfin фон Нейман архитектурасына ие. Құрылғының негізгі сағаттық жылдамдығымен жұмыс істейтін L1 ішкі SRAM жады Гарвард архитектурасына негізделген. Нұсқаулық жады мен дерек жады тәуелсіз және арнайы жад шиналары арқылы ядромен және L1 жадымен байланысады, бұл ядро мен L1 жады арасындағы жоғары тұрақты деректер жылдамдығын қамтамасыз етеді. Нұсқаулар мен деректердің L1 SRAM бөліктерін жеке кэш ретінде конфигурациялауға болады. Blackfin процессорларының кейбіреулерінде 64КБ-тан 256КБ-қа дейін L2 жады бар. Бұл жад негізгі сағаттық жылдамдықтан баяу жұмыс істейді. Код пен деректерді L2-де араластыруға болады. Blackfin процессорлары SDRAM, DDR SDRAM, NOR flash, NAND flash және SRAM сияқты әртүрлі сыртқы жадтарды қолдайды. Кейбір Blackfin процессорлары ATAPI және SD/SDIO сияқты жаппай сақтау интерфейстерін де қамтиды. Олар сыртқы жад кеңістігінде жүздеген мегабайт жадыны қолдай алады. Ядромен және жад жүйесімен байланысты DMA қозғалтқышы бар, ол кез келген шеткі құрылғылар мен негізгі (немесе сыртқы) жад арасында жұмыс істей алады. Процессорлар әдетте әрбір шеткі құрылғы үшін арналған DMA арнасына ие, бұл оны пайдалана алатын қосымшалар үшін жоғары өнімділікті қамтамасыз етеді, мысалы, нақты уақыт стандартты ажыратымдылықтағы (D1) бейне кодтау және декодтау.

Микробақылаушының ерекшеліктері

Blackfin архитектурасында микропроцессорлар мен микроконтроллерлерде кездесетін стандартты CPU, жад және I/O бар. Бұл мүмкіндіктер операциялық жүйелерді іске қосуға мүмкіндік береді. Барлық Blackfin процессорларында Memory Protection Unit (MPU) бар. MPU бүкіл жад кеңістігінде қорғау және кэштеу стратегияларын қамтамасыз етеді. MPU Blackfin-ге операциялық жүйелерді, RTOS-терді және ThreadX, μC/OS II немесе NOMMU Linux сияқты ядроларды қолдауға мүмкіндік береді. Blackfin құжаттамасында MPU Memory Management Unit (MMU) деп аталғанымен, Blackfin MPU дәстүрлі MMU сияқты адрес аудармасын қамтамасыз етпейді, сондықтан ол виртуалды жадыны немесе процеске арналған жеке жад адресін қолдамайды. Осы себепті Blackfin қазіргі уақытта виртуалды жадты қажет ететін операциялық жүйелерді, мысалы WinCE немесе QNX қолдамайды. Blackfin үш жұмыс режимін қолдайды: қадағалаушы, пайдаланушы және эмуляция. Қадағалаушы режимінде барлық процессор ресурстарына жұмыс істеп тұрған процесс қол жеткізе алады. Алайда, пайдаланушы режимінде жүйелік ресурстар мен жад аймақтары MPU көмегімен қорғалуы мүмкін. Заманауи операциялық жүйеде немесе RTOS-та ядро әдетте қадағалаушы режимінде, ал жіптер/процестер пайдаланушы режимінде жұмыс істейді. Егер жіп құлап кетсе немесе қорғалған ресурсқа (жад, перифериялық құрылғылар және т.б.) қол жеткізуге тырысса, қателік туындайды және ядро бұл жіпті/процесті тоқтатуға мүмкіндік алады. ADI-дің Blackfin-ді OS жоқ ортада пайдалану туралы ресми ұсынымы – барлық бағдарламалық қамтамасыздама қадағалаушы кеңістігінде жұмыс істеуі үшін жалпы мақсаттағы кодқа ең төменгі приоритеттік үзіліс беру. Blackfin 16, 32 және 64 биттік нұсқаулардан тұратын, RISC-қа ұқсас өзгермелі ұзындықтағы нұсқаулар жиынтығын қолданады. Көбінесе қолданылатын басқару нұсқаулары 16 биттік опкодтар ретінде кодталса, күрделі DSP және математикалық есептеулерді қажет ететін функциялар 32 және 64 биттік опкодтар ретінде кодталады. Бұл өзгермелі ұзындықтағы опкодты кодтау заманауи микропроцессор архитектураларымен код тығыздығы бойынша үйлесімді болу үшін жасалған.

Медиа өңдеу ерекшеліктері

Blackfin нұсқаулар жиынтығында бейне және кескін қысу және ашу алгоритмдерінде кеңінен қолданылатын пикселдік өңдеу операцияларын жылдамдатуға арналған медиа өңдеуге қатысты кеңейтімдер бар.

Даму құралдары

ADI өзінің бағдарламалық қамтамасыз етуді әзірлеу құралдар жиынтығын ұсынады. Алғашқы VisualDSP++ IDE әлі де қолдау көрсетіледі (оның соңғы нұсқасы 5.1.2 жылы шыққан), бірақ қызмет көрсету мерзімі аяқталуға жақын және жаңа BF6xx және BF7xx процессорларына қолдау қосылмаған. Жаңа құралдар жиынтығы – CrossCore Embedded Studio, ол барлық Blackfin және Blackfin+ процессорларын қолдайды, ішкі жағынан бірдей компилятор мен құралдардың жаңартылған нұсқаларын пайдаланады, бірақ Eclipse CDT негізіндегі интерфейспен жабдықталған. Екі құралдың да тегін нұсқасы жоқ; VisualDSP++ үшін бір пайдаланушыға арналған лицензия құны 3500 АҚШ доллары, ал CrossCore Embedded Studio үшін – 995 АҚШ доллары. Басқа нұсқаларға Green Hills Software-дің MULTI IDE және Blackfin процессорлар отбасы үшін GNU GCC құралдар жиынтығы кіреді. Алайда, VisualDSP++ сияқты, олар да жаңа BF6xx және BF7xx процессорларын қолдау үшін жаңартылмаған. Сонымен қатар, олардың ешқайсысы барлық BF5xx процессорларын толық қолдамайды. Green Hills MULTI BF50x, BF51x, кейбір BF52x, BF547 және BF59x процессорларын қолдамайды. GCC BF50x, BF566 және BF59x процессорларын қолдамайды, ал BF561 процессорларын толыққанды қолдау көрсетілмеген. Blackfin сонымен қатар National Instruments-тің LabVIEW Embedded модулімен де қолдалады, ол VisualDSP++ қажет етеді.

Қолдауы бар операциялық жүйелер, RTOS және ядролар

Blackfin процессорларында бірнеше коммерциялық және ашық кодты операциялық жүйелер жұмыс істейді. +OS/RTOS/Kernels on BlackfinTitle Лицензия Түсініктемелер ThreadX Nucleus μC/OS II INTEGRITY RTEMS RTXC Quadros VDK ADI-нің нақты уақыт ядросы. VisualDSP++ жүйесімен бірге келеді. NET Micro Framework Microsoft-тың жеке тұрақты нұсқасы. AxiomFount-тан интеграцияланған нұсқасы. Blackfin бұрын μClinux және кейін NOMMU мүмкіндігімен Linux жүйесін қолдаған, бірақ кеңінен қолданылмағандықтан және оны қолдаушы болмағандықтан, 2018 жылдың 1 сәуірінде Linux қолдауы тоқтатылды; 4.16 нұсқасы Blackfin қолдауын қамтитын соңғы нұсқа болды.