Designer | Analog Devices |
---|---|
Биты | 32-битные |
Представлено | 2000; 20 лет назад (2000 г.) |
Дизайн | RISC |
Тип | Регистр-Регистр |
Кодирование | Переменная (16- или 32-битное универсальное, или 64-битная параллельная выдача 1 × 32-разрядной инструкции + 2 × 16-разрядных инструкций) |
Ветвление | Код условия |
Порядок байтов | Маленький |
Регистры | |
Общего назначения | 8 32-битных регистров данных (с адресацией 16 16-битных полурегистров), 2 40-битных накопителя, 6 32-битных адресных регистров, указатель стека, указатель кадра |
ADI Blackfin Логотип | |
Общая информация | |
---|---|
Запущен | 2008 |
Снято с производства | Настоящее время |
Продается | Analog Devices |
Разработано | Analog Devices |
Обычный производитель (-ы) |
Blackfin - это семейство 16- / 32-битных микропроцессоров, разработанных, производимых и продаваемых Analog Devices. Процессоры имеют встроенную функцию цифрового процессора сигналов с фиксированной точкой (DSP), обеспечиваемую 16-битным умножением – накоплением (MAC), сопровождаемыми на кристалле микроконтроллер. Он был разработан для унифицированной архитектуры процессора с низким энергопотреблением, которая может запускать операционные системы и одновременно обрабатывать сложные числовые задачи, такие как в реальном времени H. 264 кодирование видео.
Процессоры Blackfin используют модель программирования 32-битной RISC микроконтроллера на архитектуре SIMD, которая была совместно разработана Intel и Analog Devices, как MSA (Micro Signal Architecture).
Архитектура была анонсирована в декабре 2000 г. и впервые продемонстрирована на конференции по встроенным системам в июне 2001 г.
Она включает в себя аспекты более старой архитектуры ADI SHARC и архитектуры Intel Архитектура XScale в едином ядре, сочетающая цифровую обработку сигналов (DSP) и функциональность микроконтроллера. Есть много различий в базовой архитектуре между Blackfin / MSA и XScale / ARM или SHARC, но комбинация была разработана для повышения производительности, программируемости и энергопотребления по сравнению с традиционными архитектурами DSP или RISC.
Архитектура Blackfin включает в себя различные модели процессоров, каждая из которых предназначена для определенных приложений. Серия BF-7xx, представленная в 2014 году, включает архитектуру Blackfin +, которая расширяет архитектуру Blackfin за счет некоторых новых функций процессора и инструкций.
То, что считается «ядром» Blackfin, зависит от контекста. Для некоторых приложений функции DSP являются центральными. Blackfin имеет два 16-битных аппаратных MAC, два 40-битных ALU и аккумуляторов, 40-битный барботер и четыре 8-битные видео ALU; Процессоры Blackfin + добавляют 32-битный MAC и 72-битный аккумулятор. Это позволяет процессору выполнять до трех инструкций за такт, в зависимости от уровня оптимизации, выполняемой компилятором или программистом. Два вложенных цикла с нулевыми издержками и четыре кольцевых буфера DAG (генераторы адресов данных) предназначены для помощи в написании эффективного кода, требующего меньшего количества инструкций . Другие приложения используют функции RISC, которые включают в себя защиту памяти, различные режимы работы (пользователь, ядро), однократные коды операций, кеши данных и инструкций, а также инструкции для битового теста, байта, словарный или целочисленный доступ и различные периферийные устройства на кристалле.
ISA разработан для высокого уровня выразительности, позволяя программисту ассемблера (или компилятору ) оптимизировать алгоритм для оборудования присутствуют особенности. Стандартный язык ассемблера Blackfin написан с использованием алгебраического синтаксиса: вместо префиксных команд, используемых во многих других языках ассемблера.
Другие языки ассемблера | Ассемблер Blackfin |
---|---|
ld R0, 8 [P0] | R0 = [P0 + 8] |
добавить R0, R1, R2 | R0 = R1 + R2 |
push R7 | [SP--] = R7 |
Blackfin использует байтовую адресацию, плоскую карту памяти. Внутренняя память L1, внутренняя память L2, внешняя память и все отображенные в памяти регистры управления находятся в этом 32-битном адресном пространстве, так что с точки зрения программирования Blackfin имеет фон Неймана. архитектура.
Внутренняя память L1 SRAM, которая работает с тактовой частотой ядра устройства, основана на архитектуре Гарварда. Память инструкций и память данных независимы и подключаются к ядру через выделенные шины памяти, предназначенные для более устойчивой скорости передачи между ядром и памятью 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 содержит обычные ЦП, память и ввод-вывод, которые есть в микропроцессорах или микроконтроллерах. Эти функции включают операционные системы.
Все процессоры Blackfin содержат блок защиты памяти (MPU). MPU обеспечивает защиту и стратегии кэширования во всем пространстве памяти. MPU позволяет Blackfin поддерживать операционные системы, ОСРВ и такие ядра, как ThreadX, μC / OS-II или NOMMU Linux. Хотя MPU упоминается как блок управления памятью (MMU) в документации Blackfin, MPU Blackfin не обеспечивает преобразование адресов, как традиционный MMU, поэтому он не поддерживает виртуальная память или отдельные адреса памяти для каждого процесса. Вот почему Blackfin в настоящее время не может поддерживать операционные системы, требующие виртуальной памяти, такие как WinCE или QNX.
Blackfin поддерживает три режима выполнения : супервизор, пользователь и эмуляция. В режиме супервизора все ресурсы процессора доступны из запущенного процесса. Однако в пользовательском режиме системные ресурсы и области памяти можно защитить (с помощью MPU). В современной операционной системе или ОСРВ ядро обычно работает в режиме супервизора, а потоки / процессы - в пользовательском режиме. Если поток аварийно завершает работу или пытается получить доступ к защищенному ресурсу (памяти, периферийному устройству и т. Д.), Будет выброшено исключение , и тогда ядро сможет завершить нарушающий поток / процесс. Официальное руководство от ADI по использованию Blackfin в средах, отличных от ОС, состоит в том, чтобы зарезервировать прерывание с самым низким приоритетом для кода общего назначения, чтобы все программное обеспечение работало в пространстве супервизора.
Blackfin использует набор команд переменной длины RISC, состоящий из 16-, 32- и 64-битных инструкций. Обычно используемые команды управления кодируются как 16-битные коды операций, в то время как сложные DSP и математически ресурсоемкие функции кодируются как 32- и 64-битные коды операций. Это кодирование кода операции переменной длины разработано для плотности кода эквивалентности современной микропроцессорной архитектуре.
Набор команд Blackfin содержит расширения обработки мультимедиа, помогающие ускорить операции обработки пикселей, обычно используемые в сжатии видео и сжатии изображений и алгоритмы декомпрессии.
Процессоры Blackfin содержат набор периферийных устройств для подключения, в зависимости от конкретного процессора:
Все регистры управления периферийными устройствами отображены в памяти в нормальном адресном пространстве.
ADI предоставляет собственные инструменты разработки программного обеспечения наборов инструментов. Исходная среда VisualDSP ++ IDE все еще поддерживается (ее последний выпуск был 5.1.2 в октябре 2014 года; 6 лет назад (2014-10)), но приближается к концу жизненный цикл и не была добавлена поддержка для нового Процессоры BF6xx и BF7xx. Более новый набор инструментов - CrossCore Embedded Studio, который поддерживает все процессоры Blackfin и Blackfin + с использованием обновленных версий одного и того же компилятора и внутренних инструментов, но с пользовательским интерфейсом на основе Eclipse CDT. Бесплатная версия любого инструмента недоступна; однопользовательская лицензия для VisualDSP ++ стоит 3500 долларов США, а CrossCore Embedded Studio - 995 долларов США.
Другие варианты включают MULTI IDE от Green Hills Software и набор инструментов GNU GCC для семейства процессоров Blackfin. Однако, как и VisualDSP ++, они не были обновлены для поддержки новых процессоров BF6xx и BF7xx. Более того, ни один из них не поддерживает все процессоры BF5xx. Green Hills MULTI не поддерживает BF50x, BF51x, некоторые BF52x, BF547 и BF59x. GCC не поддерживает BF50x, BF566 и BF59x, а также не полностью поддерживает BF561.
Blackfin также поддерживается встроенным модулем National Instruments 'LabVIEW, для которого требуется VisualDSP ++.
Несколько коммерческих операционных систем и операционных систем с открытым исходным кодом поддерживают работу на Blackfin.
Название | Лицензия | Комментарии |
---|---|---|
ThreadX | Собственный | |
Nucleus | Собственный | |
микроконтроллер / ОС -II | Собственная | |
ЦЕЛОСТНОСТЬ | Собственная | |
RTEMS | Стандартная общественная лицензия GNU | |
RTXC Quadros | Собственная | |
VDK | Собственная | ядро реального времени ADI. Поставляется с VisualDSP ++. |
.NET Micro Framework | Лицензия Apache 2.0 | Автономная версия от Microsoft. Интегрированная версия от AxiomFount. |
Blackfin ранее поддерживался μClinux, а затем Linux с функцией NOMMU, но поскольку он никогда не широко использовался и больше не имел сопровождающего, поддержка была удалена из Linux 1 апреля 2018 г.; 4.16 был последним выпуском, который включал поддержку Blackfin.