Опубликован: 04.08.2025 | Доступ: свободный | Студентов: 6 / 0 | Длительность: 01:52:00
Лекция 2:

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

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Аннотация: Тема занятия: История создания, краткая характеристика архитектуры вычислительного ядра и интерфейсов для проектирования систем на кристалле.

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:

  1. Раздельные фазы адреса и управления данными.
  2. Поддержка неупорядоченных передач данных с использованием стробов.
  3. Работа с пакетными транзакциями с выдачей только начального адреса.
  4. Отдельные каналы чтения и записи данных для обеспечения низкой стоимости прямого доступа к памяти (DMA).
  5. Поддержка нескольких одновременных адресов.
  6. Возможность завершения транзакций с нарушением порядка.
< Лекция 1 || Лекция 2: 12 || Лекция 3 >