RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Апрель 2024
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930     

Календарь Календарь

Последние темы
» Вити больше нет!
автор bug19 Пн Фев 20 2023, 19:54

» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47

» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05

» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03

» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02

» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52

» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36

» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37

» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33

» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00

» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58

» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17

» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07

» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08

» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09

» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02

» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47

» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11

» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33

» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38

» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12

» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01

» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22

» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08

» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08

Самые активные пользователи за месяц
Нет пользователей

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


Изучаем soft-процессорное ядро MicroBlaze

Перейти вниз

Изучаем soft-процессорное ядро MicroBlaze Empty Изучаем soft-процессорное ядро MicroBlaze

Сообщение  Viktor2312 Вс Дек 14 2014, 10:52

1
MicroBlaze — soft-процессорное ядро, разработанное компанией Xilinx для использования в микросхемах ПЛИС серии FPGA. MicroBlaze реализуется с помощью стандартной логики и блоков памяти ПЛИС.

MicroBlaze имеет универсальные средства связи с периферией, обеспечивающее возможность применять его в разнообразных встроенных приложениях. Для доступа к внутренней памяти ПЛИС (BRAM), MicroBlaze использует специальную шину LMB, что снижает нагрузку на другие шины. Подключение сопроцессора возможно средствами специального соединения, подобного FIFO — FSL (Fast Simplex Link). Интерфейс с сопроцессором может помочь ускорить работу алгоритмов с большим количеством вычислений, передав часть вычислений в созданный разработчиком (например, написанный на VHDL) аппаратный блок.

Для конфигурирования доступны различные параметры MicroBlaze: могут быть отдельно специфицированы размер кэш, длина конвейера (3 или 5-уровневый), встроенная периферия, блок управления памятью, шинные интерфейсы и так далее (всего более 70 параметров). Например, для оптимизиации по количеству занимаемых ресурсов ПЛИС можно использовать MicroBlaze с 3-уровневым конвейером, пожертвовав высоким значением тактовой частоты ради высвобождения дополнительных ресурсов; для оптимизации по скорости — MicroBlaze с 5-уровневым конвейером, что позволяет работать при тактовой частоте до 235 МГц (для FPGA семейства Virtex-5 FX). Кроме того, ключевые команды процессора, которые редко используются, но при этом их дорого воспроизводить «в железе», могут быть выборочно добавлены или удалены (то есть блоки умножения, деления, операций с плавающей точкой и тому подобные). Этот набор настроек дает разработчику возможность чётче определить грань между аппаратной и программной частью в проекте.

Без блока управления памятью на MicroBlaze может работать операционная система с упрощенной защитой и виртуальной памятью, например μClinux или FreeRTOS. С блоком управления памятью возможна работа операционных систем, требующих аппаратной поддержки страничной организации памяти и защиты (таких как ядро Linux), хотя производительность MicroBlaze значительно ниже, чем у таких аппаратных микропроцессорных ядер, встроенных в FPGA, как PowerPC-405 в Virtex-4.

С точки зрения архитектуры, MicroBlaze очень похож на процессор с основанной на RISC DLX-архитектурой, описанной в книге Д.Паттерсона (David Patterson) и Дж. Хеннеси(John L. Hennessy). За исключением отдельных случаев MicroBlaze может выполнять по одной инструкции за такт, сохраняя такую производительность практически в любых условиях.

Xilinx EDK (Embedded Development Kit) — пакет программ для разработки встроенных систем на основе MicroBlaze (и PowerPC) для ПЛИС фирмы Xilinx. Основанный на Eclipse IDE, EDK состоит из двух независимых сред разработки — XPS и SDK.

Разработчик использует XPS (Xilinx Platform Studio) для создания и конфигурирования аппаратной спецификации встроенной системы (процессорное ядро, управление памятью, интерфейсы ввода-вывода и проч.). По ней XPS генерирует синтезируемое описание на уровне регистровых передач (RTL — register transfer level, на языке VHDL или Verilog), и создает набор скриптов для автоматического создания битового описания (из RTL в bitsream-файл). Для ядра MicroBlaze EDK генерирует зашифрованное описание (не читаемое человеком), но исходники на VHDL могут быть приобретены у Xilinx.

SDK служит для создания программной части системы. Как и GNU toolchain, SDK позволяет писать, компилировать и отлаживать программы на C/C++. Имеется специальный симулятор — ISS (Instruction Set Simulator), благодаря которому можно либо тестировать программу в режиме симуляции, либо используя подходящую плату с установленным FPGA, на реальной системе.

Пользователи XPS становятся обладателями «пожизненной» лицензии на MicroBlaze, без необходимости внесения периодических лицензионных платежей.

Альтернативный компилятор и инструмент разработки для MicroBlaze был представлен компанией Altium, но он тоже требует установки EDK и получения лицензии.


Статьи.

Гурин Е. И. «Построение систем на кристалле с подчинённым микропроцессорным ядром MicroBlaze на ПЛИС фирмы Xilinx» // Компоненты и технологии. 2007. № 9
Скачать


Последний раз редактировалось: Viktor2312 (Вс Янв 17 2016, 17:30), всего редактировалось 3 раз(а)

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Изучаем soft-процессорное ядро MicroBlaze Empty Re: Изучаем soft-процессорное ядро MicroBlaze

Сообщение  Viktor2312 Вс Дек 14 2014, 11:44

2
MicroBlaze - семейство тридцатидвухразрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx.


В качестве основы для проектирования "систем на кристалле" более высокого уровня и быстродействия фирма Xilinx предлагает семейство тридцатидвухразрядных микропроцессорных ядер MicroBlaze.

В отличие от свободно распространяемого семейства микропроцессорных ядер PicoBlaze, MicroBlaze является составной частью пакета Embedded Development Kit (EDK), предлагаемого фирмой Xilinx в качестве основного инструмента разработки и отладки встраиваемых микропроцессорных систем на основе ПЛИС серий FPGA. Элементы семейства MicroBlaze представляют собой встраиваемые микропроцессорные ядра с RISC-архитектурой, которые предназначены для применения в системах, выполняемых соответственно на основе ПЛИС серий Spartan-II, Spartan-IIE, Spartan-3, Virtex, Virtex-E, Virtex-II, Virtex-II Pro.

Данные на 2003 год. Возможны изменения на данный момент.

Основные характеристики микропроцессорного ядра MicroBlaze

Особенностями микропроцессорного ядра MicroBlaze являются:

   * гибкая архитектура с раздельными шинами данных и команд, которые соответствуют спецификации OPB (On-chip Peripheral Bus) фирмы IBM;
   * 32-разрядная шина данных;
   * 32-разрядная шина команд;
   * прямой доступ к ресурсам блочной памяти ПЛИС Block SelectRAM, реализуемый через шину LMB (Local Memory Bus);
   * возможность организации памяти данных микропроцессорной системы на основе ресурсов внутренней блочной памяти ПЛИС Block SelectRAM или внешних запоминающих устройств различного типа;
   * диапазон адресного пространства оперативной памяти ядра позволяет использовать в составе проектируемой микропроцессорной системы память данных объемом от 0 до 4 Гбайт;
   * возможность использования кэш-памяти с целью повышения производительности разрабатываемой микропроцессорной системы;
   * 32-разрядное арифметическо-логическое устройство (АЛУ), реализующее логические функции, операции сложения, вычитания, умножения, деления и сдвига;
   * блок регистров общего назначения, включающий 32 32-разрядных регистра;
   * 32-разрядная шина адресов;
   * система команд, поддерживающая 106 32-разрядных инструкций;
   * возможность реализации ППЗУ микропрограмм как на основе внутренней блочной памяти ПЛИС, так и на базе внешней памяти, расположенной вне кристалла;
   * диапазон адресного пространства программной памяти ядра позволяет использовать в составе разрабатываемой микропроцессорной системы ППЗУ микропрограмм объемом от 512 до 4 Гбайт;
   * применение трехступенчатого конвейера микрокоманд, обеспечивающее высокую производительность проектируемой системы;
   * поддержка прямого, косвенного и непосредственного режимов адресации;
   * поддержка 8 входных и 8 выходных интерфейсов, соответствующих спецификации FSL (Fast Simplex Link);
   * применение аппаратных умножителей для реализации соответствующих операций АЛУ (в кристаллах, обладающих данным типом ресурсов,например, в ПЛИС семейств Virtex-II или Spartan-3);
   * включение в состав микропроцессорного ядра специальной логики, обеспечивающей возможность аппаратной отладки разрабатываемых программ непосредственно в кристалле через порт JTAG-интерфейса;
   * наличие входа сброса (инициализации), позволяющего перевести микропроцессор в начальное состояние;
   * полная совместимость компонентов ядра со средствами разработки проектов и программирования ПЛИС ISE (Integrated Synthesis Environment) фирмы Xilinx: Base ISE, Foundation ISE и Alliance ISE;
   * возможность моделирования ядра в составе разрабатываемых проектов с помощью системы ModelSim XE;
   * оптимизированная структура микропроцессорного ядра, учитывающая особенности используемых ПЛИС, позволяет минимизировать объем ресурсов кристалла, требуемых для его реализации, что делает возможным размещение в этом же кристалле периферийных модулей проектируемой системы, включая интерфейсы ввода-вывода (в ПЛИС семейства Spartan-3 ядро MicroBlaze занимает 525 секций (slices) и два модуля блочной памяти, что составляет 68% от полного объема логических ресурсов кристалла XC3S50, 27% — кристалла XC3S200 и 15% от логической емкости ПЛИС XC3S400);
   * расширенные интерфейсные возможности микропроцессорного ядра, обеспечивающие оптимальное его сопряжение с периферийными модулями, реализуемыми как на основе свободных логических ресурсов кристалла, так и в виде внешних устройств;
   * наличие дополнительных компонентов периферийных модулей микропроцессорной системы, включенных в комплект пакета программных средств разработки EDK в виде IP-ядер, которые позволяют значительно ускорить и упростить процесс разработки «систем на кристалле»;
   * высокая производительность, достигающая 125 D-MIPS (в зависимости от типа используемого кристалла);
   * интегрированная система разработки и отладки аппаратной части и программных средств встраиваемых микропроцессорных систем, реализуемых на основе кристаллов семейств FPGA фирмы Xilinx, EDK;
   * возможность разработки микропроцессорных программ с применением языков высокого уровня С/С++.


Архитектура микропроцессорного ядра MicroBlaze

Структура микропроцессорного ядра MicroBlaze построена по принципу Гарвардской архитектуры, в основе которой лежит концепция использования раздельных шин данных и команд. Организация магистралей микропроцессора в соответствии с этой концепцией обеспечивает достижение высоких скоростей выполнения операций. Обобщенная структура микропроцессорного ядра MicroBlaze представлена на рис. 1.

Изучаем soft-процессорное ядро MicroBlaze 0_ed391_8b7b1e7b_orig
Рис. 1. Архитектура микропроцессорного ядра MicroBlaze.

Основными элементами архитектуры микропроцессорного ядра MicroBlaze являются:

   * 32-разрядное АЛУ;
   * блок регистров общего назначения;
   * регистр состояния (статуса);
   * программный счетчик (счетчик команд);
   * буфер команд (конвейерный регистр);
   * блок декодирования команд;
   * контроллер интерфейса шины команд;
   * контроллер интерфейса шины данных;
   * отладочная логика;
   * кэш-память команд;
   * кэш-память данных;
   * схема управления прерываниями.


Последние четыре элемента из перечисленных выше явно не показаны на рис. 1. Отладочная логика и кэш-память команд и данных не являются обязательными элементами архитектуры микропроцессорного ядра MicroBlaze. Необходимость их присутствия определяется разработчиком в соответствии с конфигурацией проектируемой системы.

Блок АЛУ выполняет логические и арифметические операции над 32-разрядными операндами. В качестве операндов может использоваться содержимое любого из 32 регистров общего назначения, а также 16- или 32-разрядные константы, указанные непосредственно в тексте команде. Результат выполнения операции заносится в один из регистров общего назначения, номер которого задается в качестве соответствующего параметра выполняемой инструкции. В кристаллах семейств Virtex-II и Spartan-3 для выполнения инструкций умножения используются блоки аппаратных умножителей, что позволяет значительно сократить время выполнения указанных операций.

Регистр статуса (Machine Status Register, MSR) содержит значения флагов (признаков), формируемых блоком АЛУ при выполнении арифметических и логических инструкций, а также операций ввода-вывода и прерываний. Этот регистр содержит 32 разряда, назначение которых подробно рассматривается в следующем разделе.

Блок регистров общего назначения содержит 32 регистра, обозначаемых по порядку R0 — R31, длина каждого из которых составляет 32 разряда. При использовании этих регистров в разрабатываемой программе следует придерживаться соглашений, установленных интерфейсом Application Binary Interface (ABI), который определяет правила создания приложений на языке ассемблера для микропроцессорного ядра MicroBlaze. Компилятор программ, написанных на языке высокого уровня С/С++, при их трансляции автоматически выполняет требования, предусмотренные ABI. Согласно классификации, принятой в ABI, все регистры общего назначения условно разделяются на три группы:


   * регистры, предназначенные для хранения временных (промежуточных) данных, которые не сохраняются при вызове функций (подпрограмм);
   * регистры, содержимое которых восстанавливается после вызова функций (подпрограмм) в состояние, предшествующее обращению к функции (подпрограмме);
   * выделенные регистры, предназначенные для хранения строго определенных данных.

К первой группе относятся регистры с номерами R3 — R12. Регистры R3 и R4 предназначены для записи возвращаемых значений вызываемой функции, которые передаются в вызывающую программу (функцию). Регистры R5 — R12 используются для передачи параметров между подпрограммами. Вторую группу образуют регистры с номерами R19 — R31. Информация, которая хранится в этих регистрах, при вызове функций (подпрограмм) записывается в стек. После выполнения функции (подпрограммы) данные, помещенные в стек перед ее вызовом, перезаписываются из стека в соответствующие регистры. В третью группу входят регистры с номерами R0 — R2 и R13 — R18. Регистр с идентификатором R0 всегда содержит нулевое значение. Любые попытки записи иных данных в этот регистр игнорируются, поэтому всегда из него можно считать нулевое значение. В регистр R1 записывается значение указателя стека. Поэтому его содержимое обновляется при вызове функций (подпрограмм) и возврате из них. Регистр R14 предназначен для хранения адреса возврата при вызове процедуры обслуживания прерывания. Регистр R15 используется для записи адреса возврата при обращении к подпрограмме. В регистр R16 заносится значение адреса возврата при обработке системных прерываний отладчика, вызванных непредвиденной ситуацией. Регистр R17 предназначен для записи адреса возврата из процедуры обработки исключений. Регистр R18 используется для хранения временных (промежуточных) данных при выполнении ассемблерных операций.

Схема управления прерываниями формирует комбинацию внутренних сигналов, необходимых для выполнения процедуры обработки прерываний. Микропроцессорное ядро MicroBlaze изначально содержит единственную цепь сигнала прерывания. Для расширения системы прерываний следует использовать дополнительную логику, которая реализуется на основе свободных ресурсов кристалла.

Контроллеры интерфейсов шин данных и команд предназначены для организации взаимодействия микропроцессорного ядра и других компонентов проектируемой системы, включая программную и оперативную память, через соответствующие магистрали.

Буферный (конвейерный) регистр команд используется для организации конвейерной обработки инструкций, которая позволяет повысить производительность микропроцессорного ядра за счет параллельного выполнения нескольких команд. Принцип конвейерной обработки основан на расщеплении процесса обработки команды на несколько фаз и совмещении во времени выполнения различных фаз некоторой последовательности инструкций. В микропроцессорном ядре MicroBlaze процесс обработки команды разбит на три фазы:


   * выборка инструкции из программной памяти;
   * декодирование команды;
   * исполнение инструкции.

Каждая из перечисленных фаз выполняется в течение одного машинного цикла. При этом выигрыш в производительности ядра достигается за счет одновременного выполнения (на протяжении одного машинного цикла) соответствующих фаз трех инструкций, которые последовательно выбираются из программной памяти. В течение одного машинного цикла производится выборка новой команды, декодирование предыдущей инструкции и исполнение команды, которая предшествовала двум перечисленным инструкциям (рис. 2).

Изучаем soft-процессорное ядро MicroBlaze 0_ed392_6b03a325_orig
Рис. 2. Конвейерная обработка команд в микропроцессорном ядре MicroBlaze.

Очевидно, что применение конвейерной обработки команд дает положительный эффект только при последовательной выборке инструкций из программной памяти. При выполнении команды передачи управления в программе две последующие инструкции, которые находятся в стадии выборки и дешифрации, становятся неактуальны и далее не выполняются. Для повторного заполнения конвейера новой последовательностью команд после передачи управления требуется три машинных цикла. Чтобы сократить временные потери, вызванные необходимостью перезагрузки конвейера после выполнения инструкций, управляющих последовательностью выполнения операций в программе, используется следующий метод. При исполнении команд передачи управления производится сброс только той инструкции в конвейере, которая находится в стадии выборки. Команда, находящаяся в фазе декодирования, продолжает выполняться. Таким образом, фактическая передача управления происходит только после завершения исполнения декодируемой инструкции. Для практического применения этого метода предусмотрены специальные варианты команд, управляющих последовательностью выполнения операций в программе. В конце мнемонического идентификатора таких команд присутствует символ D (Delay), указывающий на то, что исполнение этих команд осуществляется с дополнительной задержкой.

Блок декодирования команд на основании данных, поступающих с выходов программной памяти (а точнее, с выходов конвейерного регистра), формирует совокупность управляющих сигналов, необходимых для выполнения соответствующей операции, которые подаются на все блоки микропроцессорного ядра. Управление последовательностью выполнения команд в составе программы осуществляется с помощью программного счетчика. Сигналы на его выходах образуют адрес выборки следующей команды. Эти сигналы передаются на адресные входы программной памяти. Режим работы программного счетчика (счет или загрузка) определяется типом текущей выполняемой инструкции и состоянием сигналов на входах управления микропроцессорного ядра.

В основном режиме, при отсутствии прерываний, остановов и команд управления последовательностью выполнения программы, содержимое программного счетчика автоматически увеличивается на единицу при исполнении текущей операции. Таким образом реализуется последовательная выборка и выполнение команд программы.

В процессе выполнения команд управления ходом программы в программный счетчик производится загрузка значения, соответствующего адресу, по которому осуществляется передача управления в программе. После исполнения команды перехода программный счетчик продолжает работу в инкрементном режиме, но, уже начиная с нового значения, которое было записано при ее выполнении.

При появлении активного уровня сигнала на входе прерывания микропроцессорного ядра процесс выполнения текущей команды принудительно прекращается, а в программный счетчик загружается адрес вектора соответствующей процедуры обработки (0x00000010). Перед этим значение адреса инструкции, которая выполнялась в момент поступления запроса прерывания, сохраняется в регистре общего назначения R14. Для запрета будущих прерываний, запросы которых могут поступить во время выполнения процедуры обслуживания, флаг Interrupt Enable (IE) Flag регистра статуса сбрасывается в состояние низкого логического уровня. После завершения процесса обработки прерывания происходит автоматическое восстановление значения адреса невыполненной команды в программном счетчике. При этом флаг IE устанавливается в состояние высокого логического уровня, разрешающее обработку прерываний.

Если при выполнении микропроцессорной программы генерируется исключение, то процесс исполнения текущей инструкции прерывается. Адрес этой невыполненной команды записывается в регистр общего назначения R17, а в программный счетчик загружается адрес вектора процедуры обработки исключения (0x00000008). По этому адресу расположена инструкция передачи управления соответствующей подпрограмме, которая должна выполняться при возникновении события, вызывающего исключение.

В начальный момент времени функционирования микропроцессорного ядра, а также при подаче внешнего сигнала сброса выходы программного счетчика устанавливаются в нулевое состояние (низкого логического уровня). Таким образом, в этих случаях управление передается команде программы, расположенной по адресу 0x00000000.

Отладочный модуль реализуется на основе логики периферийного сканирования кристаллов FPGA. При включении этого модуля в состав микропроцессорного ядра обеспечивается возможность отладки разрабатываемых приложений в кристалле через порт JTAG, используя соответствующие программные средства EDK. В процессе отладки можно установить требуемое число контрольных точек, выполнять отлаживаемую программу в пошаговом режиме, считывать данные и производить запись в память и все регистры, включая регистр состояния и программный счетчик.

Для повышения производительности проектируемой системы в ряде случаев в состав микропроцессорного ядра MicroBlaze может быть включена быстродействующая кэш-память команд и данных. Размер этой памяти может составлять 2, 4, 8, 16, 32 и 64 Кбайт.

Архитектура микропроцессорного ядра MicroBlaze предоставляет возможность выбора одного из трех вариантов реализации программной памяти, в которой хранится последовательность выполняемых команд. Первый вариант предполагает организацию памяти программ в виде запоминающего устройства, реализуемого на основе ресурсов блочной памяти кристалла Block SelectRAM.

Основным недостатком этого варианта является ограниченный объем программной памяти, который определяется физическими ресурсами блочной памяти ПЛИС. Второй вариант заключается в применении внешнего (по отношению к кристаллу FPGA) ППЗУ для хранения программ. В этом случае объем программной памяти может достигать максимально допустимого значения (4 Гбайта) при включении соответствующего числа микросхем ППЗУ. Для третьего варианта организации программной памяти характерно совместное использование внутренней блочной памяти ПЛИС и внешнего ППЗУ.

При этом используются различные шины команд для каждого типа программной памяти. Более подробно различные варианты конфигурации ППЗУ программ будут рассмотрены при описании шинных интерфейсов микропроцессорного ядра MicroBlaze.


Последний раз редактировалось: Viktor2312 (Вс Дек 14 2014, 14:59), всего редактировалось 1 раз(а)

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Изучаем soft-процессорное ядро MicroBlaze Empty Re: Изучаем soft-процессорное ядро MicroBlaze

Сообщение  Viktor2312 Вс Дек 14 2014, 14:55

3
Структура регистра статуса MSR микропроцессорного ядра MicroBlaze.

Из 32 разрядов регистра статуса 24 бита (с 1-го по 24-й) в текущей версии ядра MicroBlaze не используются. Эти разряды регистра состояния зарезервированы для дополнительных флагов, которые могут появиться в последующих версиях ядра. Здесь и далее используется нумерация разрядов регистра, начинающаяся с нуля. Таким образом, последний разряд регистра имеет порядковый номер 31.

Нулевой разряд регистра состояния, обозначаемый как Carry Copy Flag (CC), представляет собой копию флага переноса или займа Carry Flag. Копирование значения флага переноса или займа Carry Flag в нулевой разряд MSR производится автоматически при чтении регистра статуса.

В 25 разряд регистра состояния записывается значение флага Dvision by Zero Flag (DBZ). Этот флаг переключается в установленное состояние (состояние высокого логического уровня) в случае, если при выполнении операции происходит деление на нуль. При отсутствии признака деления на нуль флаг DBZ находится в состоянии низкого логического уровня.

26 разряд регистра статуса содержит значение флага Instruction Cache Enable Flag (ICE), который указывает на возможность использования кэш-памяти команд. Если этот флаг находится в установленном состоянии, то разрешается использование кэш-памяти команд. Сброшенное состояние флага ICE указывает на запрет использования кэш-памяти команд.

27 разряд MSR предназначен для записи состояния флага FSL Error Flag (FSL), сигнализирующего о наличии и отсутствии ошибок интерфейса FSL. Данный флаг переключается в состояние высокого логического уровня при обнаружении ошибки интерфейса FSL. При отсутствии ошибок флаг FSL находится в сброшенном состоянии.

В 28 разряде регистра статуса содержится значения флага Break in Progress Flag (BIP), который информирует об останове в процессе выполнения программы. Процесс выполнения программы может быть временно приостановлен как программным, так и аппаратным способом. В первом случае останов осуществляется внутри программы с помощью соответствующих инструкций (brk и brki). Во втором случае приостановка процесса выполнения программы инициируется извне сигналами, которые поступают со входа Ext_Brk или Ext_NM_Brk. Когда микропроцессорное ядро переходит в режим останова, флаг BIP устанавливается в состояние высокого логического уровня. В противном случае этот флаг находится в сброшенном состоянии.

В 29 разряд записывается состояние флага переноса-займа Carry Flag (C). Этот флаг устанавливается в состояние высокого логического уровня в том случае, если в результате операции сложения происходит перенос или заем при выполнении вычитания. При отсутствии переноса (или займа) из самого старшего разряда значение флага C соответствует состоянию низкого логического уровня.

30 разряд регистра статуса содержит значение флага Interrupt Enable Flag (IE), который информирует о режиме обработки прерываний. Если этот флаг находится в установленном состоянии, то обработка прерываний разрешена. Сброшенное состояние флага IE соответствует режиму запрета прерываний.

В 31 разряд регистра состояния заносится значение флага Buslock Enable Flag (BE), который сигнализирует о возможности включения режима Buslock шины данных OPB. Значение низкого логического уровня этого флага указывает на запрет указанного режима шины данных OPB. Установленное состояние флага BE соответствует разрешающему значению.

Шинные интерфейсы микропроцессорного ядра MicroBlaze.

Каждая из шин микропроцессорного ядра MicroBlaze (шина данных и шина команд) фактически разделяется на две независимые магистрали:

   * глобальную шину, соответствующую спецификации OPB;
   * локальную шину, соответствующую спецификации LMB.

В микропроцессорной системе, разрабатываемой на основе ядра MicroBlaze, шины данных и команд могут быть реализованы как в полном составе, так и в виде только локальной LMB или только глобальной магистрали OPB. На рис. 3 показаны шесть возможных вариантов конфигурации шинных интерфейсов микропроцессорного ядра MicroBlaze.

Изучаем soft-процессорное ядро MicroBlaze 0_ed3ca_e774d019_orig
Рис. 3. Варианты конфигурации шинных интерфейсов микропроцессорного ядра MicroBlaze

Здесь и далее используется следующая система обозначений: DOPB — шина данных, соответствующая спецификации OPB; DLMB — локальная шина данных, соответствующая спецификации LMB; IOPB — шина команд, соответствующая спецификации OPB; ILMB — локальная шина команд, соответствующая спецификации LMB.

Конфигурация 1 соответствует варианту реализации шин данных и команд в полном составе (IOPB+ILMB+DOPB+DLMB). На рис. 4 показана типовая схема подключения стандартных периферийных модулей и памяти, соответствующая этой конфигурации. Глобальная шина команд, соответствующая спецификации OPB, используется для подключения внешней программной памяти через соответствующий контроллер. Локальная шина команд, соответствующая спецификации LMB, обеспечивает быстрый доступ к памяти программ, реализуемой на основе блочной памяти кристалла. Внешняя память данных и периферийные модули (реализуемые как внутри, так и вне ПЛИС) подключаются к глобальной шине данных DOPB. Локальная шина данных DLMB выполняет функции сопряжения микропроцессорного ядра MicroBlaze и оперативной памяти, реализуемой на базе блочной памяти кристалла.

Изучаем soft-процессорное ядро MicroBlaze 0_ed3cb_3bf7dfae_orig
Рис. 4. Вариант 1 конфигурации микропроцессорной системы, проектируемой на основе ядра MicroBlaze.

Данную конфигурацию целесообразно использовать в случае, когда необходим большой объем программной и оперативной памяти, превосходящей ресурсы блочной памяти ПЛИС. При этом для хранения критических сегментов программного кода и данных используется блочная память кристалла.

Изучаем soft-процессорное ядро MicroBlaze 0_ed3cc_a2242f05_orig
Рис. 5. Вариант 2 конфигурации микропроцессорной системы, проектируемой на основе ядра MicroBlaze.

Конфигурация 2 (IOPB+DOPB+DLMB) оличается от предыдущей отсутствием локальной шины команд ILMB (рис. 5).

При этом программная память полностью выполняется в виде внешнего ППЗУ, взаимодействие с которым осуществляется по глобальной шине команд IOPB через соответствующий контроллер. Сопряжение оперативной памяти и периферийных модулей с микропроцессорным ядром выполняется по той же схеме, что и в конфигурации 1. Конфигурация 2 применяется при больших объемах программного кода и данных, выходящих за пределы ресурсов блочной памяти кристалла FPGA, и реализации памяти программ вне ПЛИС. При использовании данной конфигурации разработчик может задействовать максимальный объем блочной памяти кристалла для организации оперативной памяти с высокой скоростью доступа по шине DLMB.

В конфигурации 3 (ILMB+DOPB+DLMB) по сравнению с конфигурацией 1 исключена глобальная шина команд IOPB (рис. 6).

Изучаем soft-процессорное ядро MicroBlaze 0_ed3cd_10c78ba1_orig
Рис. 6. Вариант 3 конфигурации микропроцессорной системы, проектируемой на основе ядра MicroBlaze.

ППЗУ программ в этом случае в полном объеме реализуется на основе блочной памяти ПЛИС. Взаимодействие микропроцессорного ядра MicroBlaze с оперативной памятью и периферийными модулями осуществляется так же, как и в конфигурациях, рассмотренных выше. Конфигурация 3 эффективна при небольшом объеме программного кода, для хранения которого достаточно ресурсов внутренней блочной памяти кристалла. При этом достигается высокая скорость выборки команд программы за счет использования локальной шины команд ILMB.

В отличие от конфигурации 1 в конфигурации 4 (IOPB+ILMB+DOPB) отсутствует локальная шина данных DLMB (рис. 7). Шина команд и программная память организованы так же, как и в конфигурации 1. Внешняя оперативная память и периферийные модули подключаются к глобальной шине данных DOPB. Для отладки программного кода может применяться дополнительный контроллер BRAM Memory Controller, обеспечивающий доступ к внутренней блочной памяти через глобальную шину данных DOPB. Данная конфигурация используется в тех случаях, когда объем разрабатываемой программы и данных превосходит емкость внутренней блочной памяти кристалла. Критические фрагменты программного кода записываются во внутреннее ППЗУ, реализуемое на основе блочной памяти ПЛИС.

Изучаем soft-процессорное ядро MicroBlaze 0_ed3ce_861eaf7b_orig
Рис. 7. Вариант 4 конфигурации микропроцессорной системы, проектируемой на основе ядра MicroBlaze.

В конфигурации 5 (IOPB+DOPB) шины данных и команд представлены только глобальными магистралями, соответствующими спецификации OPB (рис. 8 ). Для хранения кода программ и данных используется внешняя память. Сопряжение памяти данных и периферийных модулей с микропроцессорным ядром осуществляется теми же способами, что и в конфигурации 1. Конфигурации 5 применяется, как правило, при больших объемах программного кода и данных, которые не содержат критических секций.

Изучаем soft-процессорное ядро MicroBlaze 0_ed3cf_6ca14fbb_orig
Рис. 8. Вариант 5 конфигурации микропроцессорной системы, проектируемой на основе ядра MicroBlaze.

Наиболее компактной является конфигурация 6 (ILMB+DOPB), в которой задействованы только локальная шина команд ILMB и глобальная шина данных DOPB (рис. 9). Программная память в данной конфигурации формируется на базе блочной памяти кристалла FPGA, доступ к которой производится по быстрой локальной шине ILMB, что обеспечивает минимальное время выборки команд. Конфигурацию 6 целесообразно использовать при небольшом объеме программного кода, не превосходящем емкости блочной памяти ПЛИС.

Изучаем soft-процессорное ядро MicroBlaze 0_ed3d0_a4b048a6_orig
Рис. 9. Вариант 6 конфигурации микропроцессорной системы, проектируемой на основе ядра MicroBlaze.


Периферийные компоненты для микропроцессорного ядра MicroBlaze.

Пакет программных средств разработки встраиваемых микропроцессорных систем EDK помимо ядра MicroBlaze содержит набор компонентов периферийных модулей, которые представлены в форме IP-ядер (Intellectual Property). При проектировании «систем на кристалле» на основе микропроцессорного ядра MicroBlaze, разработчик может использовать следующие IP-модули:

   * таймер-счетчик;
   * сторожевой таймер;
   * универсальный асинхронный приемник-передатчик UART;
   * контроллер прерываний Interrupt Controller;
   * контроллер стандартного интерфейса ввода-вывода;
   * контроллер интерфейса памяти SDRAM;
   * контроллер интерфейса памяти DDR SDRAM;
   * контроллер интерфейса памяти Flash Memory;
   * контроллер интерфейса блочной памяти BlockRAM;
   * контроллер интерфейса Serial Peripheral Interface, соответствующего спецификации фирмы Motorola;
   * универсальный асинхронный приемник-передатчик UART, использующий для коммуникации JTAG-порт.

Все перечисленные выше IP-модули включены в состав EDK в полнофункциональном варианте. Кроме того, в комплект EDK входят ознакомительные версии (которые могут использоваться только на протяжении некоторого ограниченного периода времени) следующих IP-ядер:

   * универсальные асинхронные приемники-передатчики UART, совместимые со стандартами UART 16550 и UART 16450 фирмы National Semiconductor;
   * контроллер сетевого интерфейса Ethernet 1Gb (1Gb Ethernet Controller);
   * контроллеры сетевого интерфейса Ethernet Media Access Controller (EMAC) и EMAC Lite 10/100 Mbps, соответствующие спецификации IEEE Std. 802.3 Media Independent Interface;
   * контроллер интерфейса High Level Data Link Control.

IP-модули, представленные в виде ознакомительных версий, поставляются отдельно, как самостоятельные продукты. С полным списком IP-ядер, предлагаемых фирмой Xilinx для проектирования микропроцессорных систем на основе ПЛИС различных семейств, можно ознакомиться на сайте www.xilinx.com.

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Изучаем soft-процессорное ядро MicroBlaze Empty Re: Изучаем soft-процессорное ядро MicroBlaze

Сообщение  Viktor2312 Пт Апр 15 2016, 16:00

4
Статьи для прочтения:

1). Micro Blaze - семейство 32-разрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx. // Компоненты и технологии. 2003. №9.
Скачать

2). Система команд микропроцессорного ядра Micro Blaze. Часть 1. // Компоненты и технологии. 2004. №1.
Скачать

3). Система команд микропроцессорного ядра Micro Blaze. Часть 2. // Компоненты и технологии. 2004. №2.
Скачать

4). Система команд микропроцессорного ядра Micro Blaze. Часть 3. // Компоненты и технологии. 2004. №3.
Скачать

5). Embedded Development Kit - система проектирования встраиваемых микропроцессорных систем на основе ПЛИС серий FPGA фирмы Xilinx. // Компоненты и технологии. 2004. №4.
Скачать

6). Организация памяти микропроцессорного ядра Micro Blaze. // Компоненты и технологии. 2004. №5.
Скачать

7). Создание проекта микропроцессорной системы на основе ядра Micro Blaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx. // Компоненты и технологии. 2004. №6.
Скачать

8 ). Формирование спецификации аппаратной платформы микропроцессорной системы на основе ядра Micro Blaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx. Часть 1. // Компоненты и технологии. 2004. №7.
Скачать

9).Формирование спецификации аппаратной платформы микропроцессорной системы на основе ядра Micro Blaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx. Часть 2. // Компоненты и технологии. 2004. №8.
Скачать

10). Реализация аппаратной платформы микропроцессорной системы, проектируемой на основе ядра Micro Blaze, в ПЛИС семейств FPGA фирмы Xilinx. // Компоненты и технологии. 2004. №9.
Скачать

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Изучаем soft-процессорное ядро MicroBlaze Empty Re: Изучаем soft-процессорное ядро MicroBlaze

Сообщение  Viktor2312 Ср Июн 22 2016, 15:20

5
*

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Изучаем soft-процессорное ядро MicroBlaze Empty Re: Изучаем soft-процессорное ядро MicroBlaze

Сообщение  Viktor2312 Ср Июн 22 2016, 15:21

6
MicroBlaze - семейство 32-разрядных микропроцессорных ядер, предназначенных для проектирования встраиваемых систем на основе ПЛИС серий FPGA фирмы Xilinx.


____Микропроцессорные ядра MicroBlaze являются составной частью пакета Embedded Development Kit (EDK), предлагаемого фирмой Xilinx в качестве основного инструмента разработки и отладки встраиваемых микропроцессорных систем на основе микросхем ПЛИС серий FPGA. Элементы семейства MicroBlaze представляют собой встраиваемые ядра с архитектурой RISC (Reduced Instruction Set Computer)



Основные характеристики микропроцессорных ядер семейства MicroBlaze.


____Отличительными особенностями микропроцессорных ядер семейства MicroBlaze являются:

  • гибкая архитектура с раздельными шинами данных и команд, которые соответствуют спецификации
    OPB V2.0 (On-chip Peripheral Bus) фирмы IBM;

  • 32-разрядная шина данных;

  • 32-разрядная шина команд;

Viktor2312
RIP

Сообщения : 15492
Дата регистрации : 2012-08-10
Возраст : 45
Откуда : Пятигорск

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения