Основы проектирования СнК на базе ядра RISC-V

История создания и краткая характеристика архитектуры RISC-V

Разбить на страницы
Показывать лекцию целиком

C:\Education\ИНТУИТ\Курсы\РИСК\Практикум\01\01.xmlRISC-V - это открытая модульная архитектура процессора и набор команд, разработанные в 2010 году. Она представляет собой сравнительно новый подход по сравнению с другими архитектурами.

Проект RISC-V возник в лабораториях Калифорнийского университета в Беркли. Его основа - концепция RISC (Reduced Instruction Set Computing), подобная ARM. Однако RISC-V отличается от своих предшественников тем, что предназначен для широкого спектра компьютерных задач, а не только для образовательных целей.

Над проектом работала команда учёных и инженеров, но основными движущими силами были два выдающихся исследователя - Дэвид Паттерсон и Крсте Асанович.

Дэвид Паттерсон - американский учёный, профессор информатики Калифорнийского университета в Беркли и лауреат премии Тьюринга. Он стоял у истоков создания архитектуры RISC ещё в 1980-х годах. Паттерсон ввёл термин RISC и сыграл ключевую роль в развитии идей, ставших основой для RISC-V.

Крсте Асанович - учёный-инженер, доктор компьютерных наук из Беркли и сооснователь SiFive, компании, разрабатывающей коммерческие процессоры RISC-V и IP-блоки для них. Он был одним из ключевых архитекторов проекта RISC-V. Вместе со своими студентами в лаборатории Асанович разработал первые спецификации RISC-V и активно продвигал идею открытой архитектуры.

Дополнительно стоит отметить Карло Секвина, который был соруководителем проекта RISC-I.

В процессе разработки RISC-V инженеры стремились создать такую инновационную архитектуру, которая была бы открыта для свободного использования и модификации.

Проводя исследования, специалисты заметили, что компиляторы высокоуровневых языков на самом деле используют довольно небольшой набор ключевых инструкций, а остальные (зачастую более сложные) реализуются намного реже. Секвин и Паттерсон вывели термин "Restricted (reduced) instruction set computer" (RISC) - "Компьютер с сокращенным набором команд". В первых архитектурах RISC большинство инструкций для упрощения декодирования имели одинаковую длину и похожую структуру, арифметические операции работали только с регистрами, а работа с памятью шла через отдельные команды загрузки (load) и сохранения (store). Эти свойства позволили лучше сбалансировать этапы конвейеризации, сделав конвейеры в RISC значительно более эффективными и позволив поднять тактовую частоту.

История создания начинается с первой версии архитектуры Berkeley RISC (1980-1984). Она была разработана в Беркли под руководством Дэвида Паттерсона. В результате был создан экспериментальный процессор RISC-I (44 420 транзисторов) с упрощённым набором команд (32 инструкции), который продемонстрировал эффективность концепции RISC по сравнению с традиционными архитектурами CISC. Через некоторое время появился RISC-II (40 760 транзисторов) - улучшенная версия процессора RISC-I с расширенным набором команд (39) и примерно втрое более высокой производительностью по сравнению с RISC-I.

В 2015 году был основан некоммерческий фонд RISC-V с целью создания открытого сообщества разработчиков программного и аппаратного обеспечения на основе RISC-V.

В настоящее время полная спецификация RISC-V доступна для всех желающих. Эта архитектура не ограничена лицензиями, патентами и другими требованиями.

Базовый набор инструкций RISC-V, также известный как ISA, минимальный набор команд, поддерживаемый всеми процессорами на базе RISC-V, можно дополнить стандартными или пользовательскими расширениями. Это позволяет создавать специализированные процессоры для конкретных задач без потери совместимости с другими процессорами.

Архитектура RISC-V состоит из небольшого набора обязательных команд (набор инструкций I - Integer) и нескольких стандартных дополнительных опций.

Базовый набор поддерживает все основные операции: арифметические/битовые регистровые вычисления, управление памятью, ввод-вывод и синхронизацию многозадачности. Разработчики могут добавлять или удалять функциональные блоки/модули для обработки графики, работы с базами данных или искусственным интеллектом, исключая всё лишнее. Они могут создавать их с нуля, использовать открытые бесплатные решения или лицензировать проприетарные решения других компаний.

Полученное решение имеет и недостатки, среди которых можно выделить два наиболее важных.

Открытость и расширяемость системы команд представляют значительные преимущества. Более того, если эта система команд хорошо продумана, лишена рудиментов и избыточности, ориентирована на решение современных задач, таких как векторные, матричные и нейронные вычисления, это повышает эффективность работы. Однако следует отметить, что система команд микропроцессора обеспечивает не более 5 % от общей производительности. Основная часть эффективности современных микропроцессоров от AMD и Intel определяется микроархитектурой - многоуровневыми схемами из вентилей и триггеров, которые реализуют систему команд в виде суперскалярных конвейеров, высокопроизводительных кэшей, интерконнектов и так далее. Важно отметить, что большинство микроархитектурных решений являются проприетарными, защищёнными авторскими правами, соглашениями о неразглашении информации (NDA) и часто являются коммерческой тайной, недоступной для передачи другим лицам.

В RISC-V наблюдается активное развитие расширений, которых становится всё больше. Если создать микропроцессор, поддерживающий хотя бы половину этих расширений, количество поддерживаемых инструкций превысит показатели процессора Intel со всеми его устаревшими функциями. Кроме того, заложенная в RISC-V возможность настройки приводит к появлению микропроцессоров с системами команд, имеющими "вариации на тему". Это снижает уровень универсальности и совместимости. Существует риск, что вместо единой системы команд скоро возникнет несколько десятков частично или полностью несовместимых версий RISC-V.

Архитектура ядра

Для выполнения Практикума рекомендуется воспользоваться 32- разрядным ядром RISC-V от Синтакор (http://syntacore.ru/). Аппаратурное решение представляет собой реализацию процессора архитектуры RISC-V микроконтроллерного класса для встроенных применений.

Ядро SCR1 предназначено для работы в составе систем на кристалле (СнК), реализованных непосредственно в кремнии или в программируемых логических интегральных схемах (ПЛИС), и может применяться в одноядерных и многоядерных конфигурациях.

Ядро SCR1 является сложным функциональным СФ-блоком (Soft IP), передаваемым потребителю в виде описания на высокоуровневом языке описания аппаратуры SystemVerilog для дальнейшего использования в программах автоматизированного синтеза логических схем с привязкой к конкретной технологии ASIC или ПЛИС.

IP блок SCR1 реализует собой 32-х разрядный процессор архитектуры RISC-V микроконтроллерного класса, предназначенный для использования в составе различных встраиваемых и других систем, и обеспечивает выполнение арифметических и логических операций с целочисленными операндами и поддерживает 16- и 32-битные инструкции и 32/16/8-битные операнды.

Основные функциональные характеристики ядра SCR1:

  • Гарвардская архитектура (раздельные шины команд и данных);
  • Конфигурируемая архитектура с набором команд: RV32IMСE

  • базовый набор с целочисленными операциями, 32-битный (RV32I);
  • команды операций целочисленное умножения и деления (М расширение);
  • команды компактного формата для увеличения плотности кода (16-битовые, С расширение);
  • опциональная поддержка базового набора с целочисленными операциями для встраиваемых систем (RV32E);
  • Один машинный уровень (режим M-mode) привилегированности исполнения команд;
  • Многоуровневый конвейер с последовательным исполнением команд;
  • опциональная поддержка памяти быстрого доступа (ТСМ, Tightly- Coupled Memory) до 64 Кб;
  • Поддержка работы в режиме без механизмов трансляции адресов и защиты доступа в память;
  • Интегрированный программируемый контроллер прерываний (IPIC) с поддержкой до 32-х источников прерываний;
  • Поддержка генерации периодических прерываний от часов реального времени (Real Time Clock) с настраиваемым коэффициентом деления.
  • Встроенный контроллер отладки с поддержкой аппаратных точек останова, совместимый со стандартом IEЕЕ 1149.1-2001 (JTAG);
  • Конфигурируемый внешний интерфейс, совместимый с шиной AXI (Advanced extensible Interface) или АНВ (Advanced High-performance Bus).
  • Так как целью разработки практикума является разработка узлов подключения компонентов и интерфейсов для обеспечения подключения готовой периферии или цифровых устройств собственной разработки к вычислительному ядру, то наибольший интерес представляют архитектуры и возможности внешних интерфейсов ядра.

    Архитектуры интерфейсов к процессорным ядрам

    C момента появления концепции построения микросхем "Система на кристалле" появилось множество спецификаций на внутренние стыки функциональных блоков, реализуемых в таких микросхемах. В большинстве случаев эти стыки представлены синхронными системными шинами (интерфейсами), такими как: AMBA APB, AHB, AXI, Wishbone, Avalon.

    Эти интерфейсные решения не входят в состав ядра, но успешно реализованы в виде отдельных IP блоков, которые можно подключать к ядру, сконфигурировав соответствующим образом. К примеру, в состав тестового проекта входят IP-блоки интерфейсов AHB и APB.

    AMBA (Advanced Microcontroller Bus Architecture) - это архитектура шин, разработанная фирмой ARM для организации взаимодействия компонентов устройств, построенных на базе процессорных ядер. В настоящее время архитектура AMBA - стандартный для решений СнК набор встроенных шин, обеспечивающий эффективное модульное проектирование систем. Первая версия шины AMBA состояла из высокоскоростной системной шины ASB и шины для подключения периферийных устройств APB. Со временем в состав шин архитектуры AMBA добавились высокоскоростная магистральная шина AHB, AXI с вариациями AXI-Lite AXI-Stream, ATB.

    Интерфейс AXI (Advanced eXtensible Interface) - это протокол межсоединений, используемый в высокопроизводительных системах для связи между компонентами. Она поддерживает высокую частоту работы и подходит для широкого спектра компонентов, включая контроллеры памяти с высокой задержкой доступа к начальному адресу. Шина AXI состоит из двух основных частей: адресного канала и канала данных. Адресный канал используется для передачи адреса транзакции, а канал данных - для передачи самих данных.

    Основные характеристики шины AXI:

  • Раздельные фазы адреса и управления данными.
  • Поддержка неупорядоченных передач данных с использованием стробов.
  • Работа с пакетными транзакциями с выдачей только начального адреса.
  • Отдельные каналы чтения и записи данных для обеспечения низкой стоимости прямого доступа к памяти (DMA).
  • Поддержка нескольких одновременных адресов.
  • Возможность завершения транзакций с нарушением порядка.
  • Шина AXI широко используется в различных устройствах, таких как процессоры, контроллеры памяти и другие компоненты систем на кристалле.

    Шина APB (Advanced Peripheral Bus) разработана для доступа к низкоскоростному управлению, например, для взаимодействия с регистрами в периферии системы. Эта шина имеет фазы адреса и данных, но с упрощённым списком сигналов. APB широко применяется в различных устройствах, таких как смартфоны, планшеты и другие портативные гаджеты.

    Шина AHB (Advanced High-performance Bus) предназначена для объединения быстродействующих, высокопроизводительных модулей, работающих на высоких тактовых частотах. AHB позволяет соединить ядро микропроцессора с внутренними и внешними модулями памяти, контроллерами ПДП, быстродействующими сетевыми контроллерами. Фактически шина AHB является коммутатором, связывающим несколько устройств (master-slave или ведущее-ведомое) попарно друг с другом в различные моменты времени. В каждый момент времени к шине имеет доступ только одно ведущее устройство. Спецификация шины предусматривает возможность предварительного (до синтеза) конфигурирования ширины шины данных, чтобы обеспечить оптимальную для данной реализации полосу пропускания интерфейса.

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

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

    Выбор интерфейса Wishbone для разработки IP-ядер - решение с рядом ключевых преимуществ:

  • Открытость и стандартизация: Wishbone - это открытый и широко распространенный стандарт для связи на кристалле. Это означает, что он пользуется поддержкой большого сообщества разработчиков и существующих IP-ядер, что способствует созданию легкодоступного пула ресурсов и уменьшает необходимость изобретать колесо.
  • Простота и эффективность: философия разработки Wishbone ставит во главу угла простоту и эффективность. Протокол относительно прост в реализации и понимании, что сводит к минимуму усилия разработчиков, необходимые для его интеграции в проекты.
  • Взаимозаменяемость: благодаря принятию протокола Wishbone IP ядра становятся совместимыми с другими устройствами и системами, совместимыми с Wishbone. Это способствует функциональной совместимости и упрощает интеграцию различных компонентов в рамках более крупного проекта.
  • Универсальность и гибкость: Wishbone поддерживает широкий диапазон ширины данных и тактовых частот, обеспечивая гибкость при разработке IP-ядер для различных периферийных устройств и требований приложений. Его модульная структура также позволяет настраивать и адаптировать его к конкретным потребностям.
  • Растущая экосистема: Сообщество Wishbone неуклонно растет, что приводит к постоянному расширению экосистемы доступных IP-ядер, инструментов и ресурсов поддержки.
  • Таким образом, простейший алгоритм выбора интерфейса для подключения к ядру RISC V может выглядеть следующим образом. Если нужно быстрое и гибкое по параметрам решение, то следует остановить выбор на интерфейсе Wishbone (при этом в состав проекта потребуется включить мост от Avalon или AXI, выбрав его из свободно доступных решений или реализовав самостоятельно. Для решения с невысокой интенсивностью обмена данными (как по частоте работы, так и по объёму данных передач) идеальным выбором видится применение APB. В случае разработки решений с высокой интенсивностью обмена пакетами данных могут подойти варианты интерфейсов AXI и AHB. Для блоков, предусматривающих обработку данных потоком, удобно использовать интерфейс AXI-Stream.

    Обзор средств макетирования: состав тренировочных плат, параметры и особенности ПЛИС

    Для демонстрации примера используется отладочный комплект Cyclone V GX FPGA Starter Kit (рисунок 1.1).

    (рис 1.1) Отладочный комплект Cyclone V GX FPGA Starter Kit

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

  • Наличие на борту комплекта ПЛИС класса Cyclone V GX. Тип 5CGXFC5C6F27C7N или выше;
  • Наличие микросхемы памяти типа LPDDR2 SDRAM объемом не менее 512 Мбит;
  • Наличие свободных контактов ввода вывода, пригодных для использования в проекте;
  • Возможность подключения интерфейса RS-232;
  • Наличие на плате комплекта средств индикации - светодиоды или 7-сегментные индикаторы;
  • Наличие органов управления - тактовые кнопки или DIP переключатели.
  • Вопросы для самостоятельной работы

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

  • Расширения ядра RISC-V.
  • История развития и перспективы AMBA.
  • Обобщенные требования к отладочным комплектам для запуска ядра RISC-V.
  • Также в практической части возможно проведение тестирования на владение языками разработки (см. документ "Входящий тест.docx")

    Страницы:

    C:\Education\ИНТУИТ\Курсы\РИСК\Практикум\01\01.xmlRISC-V - это открытая модульная архитектура процессора и набор команд, разработанные в 2010 году. Она представляет собой сравнительно новый подход по сравнению с другими архитектурами.

    Проект RISC-V возник в лабораториях Калифорнийского университета в Беркли. Его основа - концепция RISC (Reduced Instruction Set Computing), подобная ARM. Однако RISC-V отличается от своих предшественников тем, что предназначен для широкого спектра компьютерных задач, а не только для образовательных целей.

    Над проектом работала команда учёных и инженеров, но основными движущими силами были два выдающихся исследователя - Дэвид Паттерсон и Крсте Асанович.

    Дэвид Паттерсон - американский учёный, профессор информатики Калифорнийского университета в Беркли и лауреат премии Тьюринга. Он стоял у истоков создания архитектуры RISC ещё в 1980-х годах. Паттерсон ввёл термин RISC и сыграл ключевую роль в развитии идей, ставших основой для RISC-V.

    Крсте Асанович - учёный-инженер, доктор компьютерных наук из Беркли и сооснователь SiFive, компании, разрабатывающей коммерческие процессоры RISC-V и IP-блоки для них. Он был одним из ключевых архитекторов проекта RISC-V. Вместе со своими студентами в лаборатории Асанович разработал первые спецификации RISC-V и активно продвигал идею открытой архитектуры.

    Дополнительно стоит отметить Карло Секвина, который был соруководителем проекта RISC-I.

    В процессе разработки RISC-V инженеры стремились создать такую инновационную архитектуру, которая была бы открыта для свободного использования и модификации.

    Проводя исследования, специалисты заметили, что компиляторы высокоуровневых языков на самом деле используют довольно небольшой набор ключевых инструкций, а остальные (зачастую более сложные) реализуются намного реже. Секвин и Паттерсон вывели термин "Restricted (reduced) instruction set computer" (RISC) - "Компьютер с сокращенным набором команд". В первых архитектурах RISC большинство инструкций для упрощения декодирования имели одинаковую длину и похожую структуру, арифметические операции работали только с регистрами, а работа с памятью шла через отдельные команды загрузки (load) и сохранения (store). Эти свойства позволили лучше сбалансировать этапы конвейеризации, сделав конвейеры в RISC значительно более эффективными и позволив поднять тактовую частоту.

    История создания начинается с первой версии архитектуры Berkeley RISC (1980-1984). Она была разработана в Беркли под руководством Дэвида Паттерсона. В результате был создан экспериментальный процессор RISC-I (44 420 транзисторов) с упрощённым набором команд (32 инструкции), который продемонстрировал эффективность концепции RISC по сравнению с традиционными архитектурами CISC. Через некоторое время появился RISC-II (40 760 транзисторов) - улучшенная версия процессора RISC-I с расширенным набором команд (39) и примерно втрое более высокой производительностью по сравнению с RISC-I.

    В 2015 году был основан некоммерческий фонд RISC-V с целью создания открытого сообщества разработчиков программного и аппаратного обеспечения на основе RISC-V.

    В настоящее время полная спецификация RISC-V доступна для всех желающих. Эта архитектура не ограничена лицензиями, патентами и другими требованиями.

    Базовый набор инструкций RISC-V, также известный как ISA, минимальный набор команд, поддерживаемый всеми процессорами на базе RISC-V, можно дополнить стандартными или пользовательскими расширениями. Это позволяет создавать специализированные процессоры для конкретных задач без потери совместимости с другими процессорами.

    Архитектура RISC-V состоит из небольшого набора обязательных команд (набор инструкций I - Integer) и нескольких стандартных дополнительных опций.

    Базовый набор поддерживает все основные операции: арифметические/битовые регистровые вычисления, управление памятью, ввод-вывод и синхронизацию многозадачности. Разработчики могут добавлять или удалять функциональные блоки/модули для обработки графики, работы с базами данных или искусственным интеллектом, исключая всё лишнее. Они могут создавать их с нуля, использовать открытые бесплатные решения или лицензировать проприетарные решения других компаний.

    Полученное решение имеет и недостатки, среди которых можно выделить два наиболее важных.

    Открытость и расширяемость системы команд представляют значительные преимущества. Более того, если эта система команд хорошо продумана, лишена рудиментов и избыточности, ориентирована на решение современных задач, таких как векторные, матричные и нейронные вычисления, это повышает эффективность работы. Однако следует отметить, что система команд микропроцессора обеспечивает не более 5 % от общей производительности. Основная часть эффективности современных микропроцессоров от AMD и Intel определяется микроархитектурой - многоуровневыми схемами из вентилей и триггеров, которые реализуют систему команд в виде суперскалярных конвейеров, высокопроизводительных кэшей, интерконнектов и так далее. Важно отметить, что большинство микроархитектурных решений являются проприетарными, защищёнными авторскими правами, соглашениями о неразглашении информации (NDA) и часто являются коммерческой тайной, недоступной для передачи другим лицам.

    В RISC-V наблюдается активное развитие расширений, которых становится всё больше. Если создать микропроцессор, поддерживающий хотя бы половину этих расширений, количество поддерживаемых инструкций превысит показатели процессора Intel со всеми его устаревшими функциями. Кроме того, заложенная в RISC-V возможность настройки приводит к появлению микропроцессоров с системами команд, имеющими "вариации на тему". Это снижает уровень универсальности и совместимости. Существует риск, что вместо единой системы команд скоро возникнет несколько десятков частично или полностью несовместимых версий RISC-V.

    Архитектура ядра

    Для выполнения Практикума рекомендуется воспользоваться 32- разрядным ядром RISC-V от Синтакор (http://syntacore.ru/). Аппаратурное решение представляет собой реализацию процессора архитектуры RISC-V микроконтроллерного класса для встроенных применений.

    Ядро SCR1 предназначено для работы в составе систем на кристалле (СнК), реализованных непосредственно в кремнии или в программируемых логических интегральных схемах (ПЛИС), и может применяться в одноядерных и многоядерных конфигурациях.

    Ядро SCR1 является сложным функциональным СФ-блоком (Soft IP), передаваемым потребителю в виде описания на высокоуровневом языке описания аппаратуры SystemVerilog для дальнейшего использования в программах автоматизированного синтеза логических схем с привязкой к конкретной технологии ASIC или ПЛИС.

    IP блок SCR1 реализует собой 32-х разрядный процессор архитектуры RISC-V микроконтроллерного класса, предназначенный для использования в составе различных встраиваемых и других систем, и обеспечивает выполнение арифметических и логических операций с целочисленными операндами и поддерживает 16- и 32-битные инструкции и 32/16/8-битные операнды.

    Основные функциональные характеристики ядра SCR1:

  • Гарвардская архитектура (раздельные шины команд и данных);
  • Конфигурируемая архитектура с набором команд: RV32IMСE

  • базовый набор с целочисленными операциями, 32-битный (RV32I);
  • команды операций целочисленное умножения и деления (М расширение);
  • команды компактного формата для увеличения плотности кода (16-битовые, С расширение);
  • опциональная поддержка базового набора с целочисленными операциями для встраиваемых систем (RV32E);
  • Один машинный уровень (режим M-mode) привилегированности исполнения команд;
  • Многоуровневый конвейер с последовательным исполнением команд;
  • опциональная поддержка памяти быстрого доступа (ТСМ, Tightly- Coupled Memory) до 64 Кб;
  • Поддержка работы в режиме без механизмов трансляции адресов и защиты доступа в память;
  • Интегрированный программируемый контроллер прерываний (IPIC) с поддержкой до 32-х источников прерываний;
  • Поддержка генерации периодических прерываний от часов реального времени (Real Time Clock) с настраиваемым коэффициентом деления.
  • Встроенный контроллер отладки с поддержкой аппаратных точек останова, совместимый со стандартом IEЕЕ 1149.1-2001 (JTAG);
  • Конфигурируемый внешний интерфейс, совместимый с шиной AXI (Advanced extensible Interface) или АНВ (Advanced High-performance Bus).
  • Так как целью разработки практикума является разработка узлов подключения компонентов и интерфейсов для обеспечения подключения готовой периферии или цифровых устройств собственной разработки к вычислительному ядру, то наибольший интерес представляют архитектуры и возможности внешних интерфейсов ядра.

    Архитектуры интерфейсов к процессорным ядрам

    C момента появления концепции построения микросхем "Система на кристалле" появилось множество спецификаций на внутренние стыки функциональных блоков, реализуемых в таких микросхемах. В большинстве случаев эти стыки представлены синхронными системными шинами (интерфейсами), такими как: AMBA APB, AHB, AXI, Wishbone, Avalon.

    Эти интерфейсные решения не входят в состав ядра, но успешно реализованы в виде отдельных IP блоков, которые можно подключать к ядру, сконфигурировав соответствующим образом. К примеру, в состав тестового проекта входят IP-блоки интерфейсов AHB и APB.

    AMBA (Advanced Microcontroller Bus Architecture) - это архитектура шин, разработанная фирмой ARM для организации взаимодействия компонентов устройств, построенных на базе процессорных ядер. В настоящее время архитектура AMBA - стандартный для решений СнК набор встроенных шин, обеспечивающий эффективное модульное проектирование систем. Первая версия шины AMBA состояла из высокоскоростной системной шины ASB и шины для подключения периферийных устройств APB. Со временем в состав шин архитектуры AMBA добавились высокоскоростная магистральная шина AHB, AXI с вариациями AXI-Lite AXI-Stream, ATB.

    Интерфейс AXI (Advanced eXtensible Interface) - это протокол межсоединений, используемый в высокопроизводительных системах для связи между компонентами. Она поддерживает высокую частоту работы и подходит для широкого спектра компонентов, включая контроллеры памяти с высокой задержкой доступа к начальному адресу. Шина AXI состоит из двух основных частей: адресного канала и канала данных. Адресный канал используется для передачи адреса транзакции, а канал данных - для передачи самих данных.

    Основные характеристики шины AXI:

  • Раздельные фазы адреса и управления данными.
  • Поддержка неупорядоченных передач данных с использованием стробов.
  • Работа с пакетными транзакциями с выдачей только начального адреса.
  • Отдельные каналы чтения и записи данных для обеспечения низкой стоимости прямого доступа к памяти (DMA).
  • Поддержка нескольких одновременных адресов.
  • Возможность завершения транзакций с нарушением порядка.
  • Шина AXI широко используется в различных устройствах, таких как процессоры, контроллеры памяти и другие компоненты систем на кристалле.

    Шина APB (Advanced Peripheral Bus) разработана для доступа к низкоскоростному управлению, например, для взаимодействия с регистрами в периферии системы. Эта шина имеет фазы адреса и данных, но с упрощённым списком сигналов. APB широко применяется в различных устройствах, таких как смартфоны, планшеты и другие портативные гаджеты.

    Шина AHB (Advanced High-performance Bus) предназначена для объединения быстродействующих, высокопроизводительных модулей, работающих на высоких тактовых частотах. AHB позволяет соединить ядро микропроцессора с внутренними и внешними модулями памяти, контроллерами ПДП, быстродействующими сетевыми контроллерами. Фактически шина AHB является коммутатором, связывающим несколько устройств (master-slave или ведущее-ведомое) попарно друг с другом в различные моменты времени. В каждый момент времени к шине имеет доступ только одно ведущее устройство. Спецификация шины предусматривает возможность предварительного (до синтеза) конфигурирования ширины шины данных, чтобы обеспечить оптимальную для данной реализации полосу пропускания интерфейса.

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

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

    Выбор интерфейса Wishbone для разработки IP-ядер - решение с рядом ключевых преимуществ:

  • Открытость и стандартизация: Wishbone - это открытый и широко распространенный стандарт для связи на кристалле. Это означает, что он пользуется поддержкой большого сообщества разработчиков и существующих IP-ядер, что способствует созданию легкодоступного пула ресурсов и уменьшает необходимость изобретать колесо.
  • Простота и эффективность: философия разработки Wishbone ставит во главу угла простоту и эффективность. Протокол относительно прост в реализации и понимании, что сводит к минимуму усилия разработчиков, необходимые для его интеграции в проекты.
  • Взаимозаменяемость: благодаря принятию протокола Wishbone IP ядра становятся совместимыми с другими устройствами и системами, совместимыми с Wishbone. Это способствует функциональной совместимости и упрощает интеграцию различных компонентов в рамках более крупного проекта.
  • Универсальность и гибкость: Wishbone поддерживает широкий диапазон ширины данных и тактовых частот, обеспечивая гибкость при разработке IP-ядер для различных периферийных устройств и требований приложений. Его модульная структура также позволяет настраивать и адаптировать его к конкретным потребностям.
  • Растущая экосистема: Сообщество Wishbone неуклонно растет, что приводит к постоянному расширению экосистемы доступных IP-ядер, инструментов и ресурсов поддержки.
  • Таким образом, простейший алгоритм выбора интерфейса для подключения к ядру RISC V может выглядеть следующим образом. Если нужно быстрое и гибкое по параметрам решение, то следует остановить выбор на интерфейсе Wishbone (при этом в состав проекта потребуется включить мост от Avalon или AXI, выбрав его из свободно доступных решений или реализовав самостоятельно. Для решения с невысокой интенсивностью обмена данными (как по частоте работы, так и по объёму данных передач) идеальным выбором видится применение APB. В случае разработки решений с высокой интенсивностью обмена пакетами данных могут подойти варианты интерфейсов AXI и AHB. Для блоков, предусматривающих обработку данных потоком, удобно использовать интерфейс AXI-Stream.

    Обзор средств макетирования: состав тренировочных плат, параметры и особенности ПЛИС

    Для демонстрации примера используется отладочный комплект Cyclone V GX FPGA Starter Kit (рисунок 1.1).

    (рис 1.1) Отладочный комплект Cyclone V GX FPGA Starter Kit

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

  • Наличие на борту комплекта ПЛИС класса Cyclone V GX. Тип 5CGXFC5C6F27C7N или выше;
  • Наличие микросхемы памяти типа LPDDR2 SDRAM объемом не менее 512 Мбит;
  • Наличие свободных контактов ввода вывода, пригодных для использования в проекте;
  • Возможность подключения интерфейса RS-232;
  • Наличие на плате комплекта средств индикации - светодиоды или 7-сегментные индикаторы;
  • Наличие органов управления - тактовые кнопки или DIP переключатели.
  • Вопросы для самостоятельной работы

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

  • Расширения ядра RISC-V.
  • История развития и перспективы AMBA.
  • Обобщенные требования к отладочным комплектам для запуска ядра RISC-V.
  • Также в практической части возможно проведение тестирования на владение языками разработки (см. документ "Входящий тест.docx")

    Вернуться к учебному плану