Подробная история архитектуры RISC-V: технические аспекты и путь к глобальному стандарту. Открытая революция в архитектуре процессоров — от истоков до базовых принципов
Зачем нужен RISC-V?
Современный ландшафт процессорных архитектур долгое время был поделен между несколькими доминирующими игроками, такими как x86 (Intel, AMD) и ARM. Эти проприетарные архитектуры, хотя и обеспечивают высокую производительность и зрелые экосистемы, сопряжены с существенными ограничениями. Компании, желающие использовать их, сталкиваются с высокими лицензионными сборами, жесткими условиями использования и зависимостью от конкретных поставщиков, что ограничивает свободу проектирования и замедляет инновации. Получение контракта на использование проприетарных архитектур могло занимать до двух лет, что было губительно для стартапов.
На этом фоне в 2010 году возникла идея создания универсального языка для чипов — набора инструкций, который мог бы использоваться всеми производителями чипов и не принадлежал бы никому. Так появилась архитектура RISC-V (произносится как «риск-файв»), открытый, безлицензионный стандарт, призванный демократизировать проектирование микросхем.
Важно отметить, что ключевая инновация RISC-V заключалась не только в его технических достоинствах, но и в бизнес-модели, основанной на открытости. Именно эта открытость устранила лицензионные сборы и значительно сократила бюрократические проволочки, позволяя стартапам и крупным компаниям внедрять и внедрять инновации с помощью ISA всего за несколько дней, а не лет, как в случае с проприетарными альтернативами. Гибкость и скорость выхода на рынок оказались более убедительными факторами, чем чисто технические преимущества, для многих первых пользователей.
Истоки и философия: рождение открытого стандарта
История RISC-V началась в 2010 году в Лаборатории параллельных вычислений (Par Lab) Калифорнийского университета в Беркли. Проект был возглавлен профессором Крсте Асановичем и аспирантами Эндрю Уотерманом и Юнсупом Ли, под наставничеством Дэвида Паттерсона, одного из пионеров в области архитектуры RISC. Название RISC-V было выбрано не случайно: оно означает «пятую основную архитектуру набора инструкций RISC», разработанную в Беркли, продолжая наследие RISC-I, RISC-II, SOAR и SPUR.
Изначальные цели команды были четко определены: архитектура должна быть легко реализуемой небольшой университетской командой, эффективной и легко расширяемой. Особое внимание уделялось открытости, чтобы делиться наработками с коллегами через лицензию Berkeley Software Distribution. Целью было вернуть академическое сообщество компьютерной архитектуры к реальным аппаратным проектам на уровне RTL (Register-Transfer Level), отойдя от моделей на C, которые могли не работать в реальном мире.
Академическое происхождение RISC-V способствовало формированию уникальной экосистемы. Изначально это был инструмент для занятий и исследований, но его открытый характер позволил другим ведущим учреждениям, таким как Массачусетский технологический институт (MIT) и Швейцарская высшая техническая школа Цюриха (ETH Zurich), быстро адаптировать его для преподавания и исследований. Это создало поток талантливых специалистов, знакомых с RISC-V. Такая академическая поддержка, в сочетании с влиятельной статьей Асановича и Паттерсона «Наборы инструкций должны быть свободными: аргументы в пользу RISC-V», напрямую привела к раннему коммерческому интересу и внедрению. Например, Rumble Technologies переключила свой проект с MIPS на RISC-V всего за три недели, а NVIDIA начала заменять свои проприетарные ядра Falcon на RISC-V для внутренних функций GPU. Этот синергетический эффект между академическими исследованиями и промышленным внедрением значительно ускорил развитие RISC-V.
По мере роста интереса к RISC-V стало ясно, что проект перерос академические рамки. В 2015 году был сделан решающий шаг: основана организация RISC-V Foundation для продвижения открытости, нейтралитета и предотвращения фрагментации, а также для придания ISA статуса юридического лица. В ноябре 2019 года организация переехала в Швейцарию и была переименована в RISC-V International, подчеркивая свою нейтральную и независимую позицию как глобального открытого стандарта.
Стратегическое решение о создании RISC-V International в Швейцарии подчеркивает геополитическое значение открытой архитектуры набора инструкций. Этот шаг был частично продиктован стремлением сохранить нейтралитет и избежать торговых ограничений, особенно тех, которые были введены США в отношении китайских технологических компаний. Таким образом, RISC-V позиционируется как платформа для достижения технологического суверенитета, позволяя странам и компаниям разрабатывать собственные чипы без зависимости от проприетарных архитектур, контролируемых конкретными геополитическими образованиями. Это способствует формированию более диверсифицированного глобального ландшафта полупроводниковой промышленности.
Базовые технические принципы RISC-V: простота и модульность
В основе RISC-V лежит набор фундаментальных технических принципов, которые отличают его от многих других архитектур.
Архитектура Load-Store: RISC-V является архитектурой типа «load-store». Это означает, что только инструкции загрузки (load) и сохранения (store) могут обращаться к памяти. Все остальные операции, такие как арифметические и логические, выполняются исключительно с данными, находящимися в регистрах центрального процессора. Этот подход значительно упрощает набор инструкций и, как следствие, дизайн конвейера выполнения команд.
Форматы инструкций: Основные инструкции RISC-V имеют фиксированную 32-битную длину. Кроме того, существует расширение C (Compressed Instructions), которое предоставляет 16-битные сжатые инструкции для часто используемых операций, что улучшает плотность кода и энергоэффективность, подобно набору инструкций Thumb в архитектуре ARM. Фиксированная длина инструкций является краеугольным камнем дизайна RISC-V. Она упрощает логику декодирования инструкций в процессоре, что, в свою очередь, облегчает эффективное конвейерирование и параллельное выполнение команд. Эта архитектурная элегантность напрямую приводит к таким преимуществам, как снижение энергопотребления и уменьшение площади кристалла, что делает RISC-V идеальным для сред с ограниченными ресурсами.
Регистровый файл: RISC-V определяет 32 целочисленных регистра общего назначения (GPRs), обозначаемых от x0 до x31. Регистр x0 аппаратно привязан к значению нуля, и попытки записи в него игнорируются. При наличии расширений для операций с плавающей запятой (F и D) также доступны 32 отдельных регистра для чисел с плавающей запятой.
Режимы адресации и порядок байтов (endianness): Инструкции загрузки и сохранения используют базовый регистр и 12-битное знаковое смещение. Это позволяет адресовать память в диапазоне от -2048 до +2047 байт относительно адреса в базовом регистре. RISC-V обычно использует младший порядок байтов (little-endian), но может быть настроен на старший порядок байтов (big-endian), в отличие от x86, который строго придерживается little-endian.
Концепция модульности: Базовый целочисленный набор инструкций (RV32I для 32-битных систем и RV64I для 64-битных) является минимальным, но полным набором инструкций, необходимых для общего назначения. Он включает арифметические, логические операции, управление потоком выполнения и доступ к памяти. Этот базовый набор является фиксированным и стабильным, что обеспечивает прочную основу для разработчиков компиляторов и операционных систем.
Модульный дизайн RISC-V, начинающийся с минимального базового набора инструкций, является глубоким техническим преимуществом. Он позволяет разработчикам выбирать только необходимые расширения набора инструкций и даже создавать собственные инструкции, точно адаптируя процессор для конкретных приложений, таких как устройства Интернета вещей (IoT), ускорители искусственного интеллекта (AI) или автомобильные системы. Эта возможность проектирования «под конкретную задачу» обеспечивает превосходную производительность, энергоэффективность и экономичность для целевых рабочих нагрузок, уровень оптимизации, часто недостижимый с помощью монолитных, проприетарных архитектур.
Ниже представлена таблица, суммирующая ключевые принципы дизайна RISC-V:
Принцип дизайна |
Описание |
Значение для RISC-V |
Простота | Минимальный базовый набор инструкций, фиксированная длина инструкций, архитектура load-store. | Упрощает реализацию, декодирование и конвейеризацию, снижает энергопотребление и площадь кристалла. |
Модульность | Базовый ISA с опциональными стандартными и кастомными расширениями. | Позволяет создавать специализированные процессоры для конкретных задач, обеспечивая оптимальную производительность и эффективность. |
Открытость | Безлицензионный, не требующий роялти стандарт, управляемый сообществом. | Снижает затраты на разработку, устраняет зависимость от поставщиков, способствует глобальной коллаборации и инновациям. |
Расширяемость | Выделенное пространство для новых инструкций и специализированных вариантов. | Обеспечивает адаптацию к будущим технологиям и доменным оптимизациям (например, для ИИ/ML). |
Эффективность | Дизайн, ориентированный на выполнение одной инструкции за такт, меньшее количество транзисторов. | Приводит к высокой производительности на ватт и снижению затрат на производство. |
Академическая направленность | Изначально разработан как инструмент для исследований и обучения. | Способствует созданию кадрового резерва и постоянному потоку инноваций из университетской среды. |
- Комментарии