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
Так как целью разработки практикума является разработка узлов подключения компонентов и интерфейсов для обеспечения подключения готовой периферии или цифровых устройств собственной разработки к вычислительному ядру, то наибольший интерес представляют архитектуры и возможности внешних интерфейсов ядра.
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:
Шина AXI широко используется в различных устройствах, таких как процессоры, контроллеры памяти и другие компоненты систем на кристалле.
Шина APB (Advanced Peripheral Bus) разработана для доступа к низкоскоростному управлению, например, для взаимодействия с регистрами в периферии системы. Эта шина имеет фазы адреса и данных, но с упрощённым списком сигналов. APB широко применяется в различных устройствах, таких как смартфоны, планшеты и другие портативные гаджеты.
Шина AHB (Advanced High-performance Bus) предназначена для объединения быстродействующих, высокопроизводительных модулей, работающих на высоких тактовых частотах. AHB позволяет соединить ядро микропроцессора с внутренними и внешними модулями памяти, контроллерами ПДП, быстродействующими сетевыми контроллерами. Фактически шина AHB является коммутатором, связывающим несколько устройств (master-slave или ведущее-ведомое) попарно друг с другом в различные моменты времени. В каждый момент времени к шине имеет доступ только одно ведущее устройство. Спецификация шины предусматривает возможность предварительного (до синтеза) конфигурирования ширины шины данных, чтобы обеспечить оптимальную для данной реализации полосу пропускания интерфейса.
AXI Stream - это популярный интерфейс для организации сложного высокоскоростного взаимодействия между модулями. Принципиальная особенность интерфейса состоит в том, что в нём отсутствует адресная фаза. Данные передаются в одном направлении - от инициатора к получателю. Синхронизация потока конечной длительности обеспечивается с помощью специальных выделенных сигналов готовности и подтверждения валидности. Наполнение (интерпретация) содержимого потока определяется предварительными соглашениями по его использованию. Как примеры - пакет данных для передачи по локальной сети, кадр видеокамеры и т.п.
Интерфейс Wishbone - это широко распространенный, открытый и стандартизированный протокол, специально разработанный для использования в СнК и ПЛИС. Он служит в качестве универсальной коммуникационной структуры, обеспечивающей эффективный и стандартизированный обмен данными между различными компонентами в рамках одной интегральной схемы.
Выбор интерфейса 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
При необходимости может быть использован другой отладочный комплект, удовлетворяющий следующим требованиям:
Вопросы подраздела можно использовать для дополнительной подготовки к занятиям или в качестве тем сообщений (в форме докладов или рефератов) для обучающихся.
Также в практической части возможно проведение тестирования на владение языками разработки (см. документ "Входящий тест.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
Так как целью разработки практикума является разработка узлов подключения компонентов и интерфейсов для обеспечения подключения готовой периферии или цифровых устройств собственной разработки к вычислительному ядру, то наибольший интерес представляют архитектуры и возможности внешних интерфейсов ядра.
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:
Шина AXI широко используется в различных устройствах, таких как процессоры, контроллеры памяти и другие компоненты систем на кристалле.
Шина APB (Advanced Peripheral Bus) разработана для доступа к низкоскоростному управлению, например, для взаимодействия с регистрами в периферии системы. Эта шина имеет фазы адреса и данных, но с упрощённым списком сигналов. APB широко применяется в различных устройствах, таких как смартфоны, планшеты и другие портативные гаджеты.
Шина AHB (Advanced High-performance Bus) предназначена для объединения быстродействующих, высокопроизводительных модулей, работающих на высоких тактовых частотах. AHB позволяет соединить ядро микропроцессора с внутренними и внешними модулями памяти, контроллерами ПДП, быстродействующими сетевыми контроллерами. Фактически шина AHB является коммутатором, связывающим несколько устройств (master-slave или ведущее-ведомое) попарно друг с другом в различные моменты времени. В каждый момент времени к шине имеет доступ только одно ведущее устройство. Спецификация шины предусматривает возможность предварительного (до синтеза) конфигурирования ширины шины данных, чтобы обеспечить оптимальную для данной реализации полосу пропускания интерфейса.
AXI Stream - это популярный интерфейс для организации сложного высокоскоростного взаимодействия между модулями. Принципиальная особенность интерфейса состоит в том, что в нём отсутствует адресная фаза. Данные передаются в одном направлении - от инициатора к получателю. Синхронизация потока конечной длительности обеспечивается с помощью специальных выделенных сигналов готовности и подтверждения валидности. Наполнение (интерпретация) содержимого потока определяется предварительными соглашениями по его использованию. Как примеры - пакет данных для передачи по локальной сети, кадр видеокамеры и т.п.
Интерфейс Wishbone - это широко распространенный, открытый и стандартизированный протокол, специально разработанный для использования в СнК и ПЛИС. Он служит в качестве универсальной коммуникационной структуры, обеспечивающей эффективный и стандартизированный обмен данными между различными компонентами в рамках одной интегральной схемы.
Выбор интерфейса 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
При необходимости может быть использован другой отладочный комплект, удовлетворяющий следующим требованиям:
Вопросы подраздела можно использовать для дополнительной подготовки к занятиям или в качестве тем сообщений (в форме докладов или рефератов) для обучающихся.
Также в практической части возможно проведение тестирования на владение языками разработки (см. документ "Входящий тест.docx")
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.