Зі збільшенням кількості компаній, зацікавлених у пристроях на основі RISC-V ISA, а також дедалі більшою кількістю ядер, прискорювачів та компонентів інфраструктури, доступних як комерційно, так і у формі відкритого коду, кінцеві користувачі стикаються з дедалі складнішою проблемою: гарантуючи, що вони роблять найкращий вибір.
Кожен користувач, імовірно, матиме набір потреб і проблем, які майже дорівнюють гнучкості пропозицій RISC-V, виходячи далеко за рамки традиційних показників PPA на питання безпеки та безпеки або питання якості. Це може включати адаптивність забезпечення верифікації, що дозволяє архітектурне розширення та необхідну перевірку разом з ним.
Традиційно було розгорнуто три рівні прототипування — віртуальні прототипи, емуляція та прототипи FPGA, включаючи гібриди між ними. Потім кожна платформа використовується для різних цілей, включаючи перевірку програмного забезпечення, перевірку архітектури, функціональну перевірку апаратного забезпечення, аналіз продуктивності тощо.
У той час як екосистеми проектування та програмного забезпечення для RISC-V стають усталеними, екосистеми конфігурації та перевірки відстають і потребують створення нових технологій. Саме гнучкість RISC-V створює величезні проблеми для верифікації, крім того, що вимагається для перевірки фіксованих процесорів. Це також робить спільну розробку апаратного та програмного забезпечення не тільки можливою, але й необхідною.
Спільний розвиток
У минулому обиралося апаратне забезпечення, а потім розроблялося програмне забезпечення для його роботи. У RISC-V апаратне забезпечення часто керується програмним забезпеченням. «Перше, що вам потрібно вибрати, це те, які стандартні опції RISC-V ви хочете», — каже Саймон Девідманн, засновник і генеральний директор Програмне забезпечення Imperas. «Набір функцій RISC-V зараз містить 200 або 300 варіантів. Як дізнатися, чи виграє ваш алгоритм від модуля чисел з плаваючою комою або SIMD, апаратних множників чи навіть векторної системи? Ви повинні розробити апаратні можливості, які вам знадобляться і які ви можете собі дозволити, для типу програми або роботи, яку ви хочете виконувати цим процесором. Це саме по собі стає певним викликом».
Для такого роду компромісів потрібні прототипи. «Якщо метою розробника є оцінка продуктивності та відповідності меті, тоді віртуальний прототип є єдиним життєздатним вибором», — каже Стів Родді, директор з маркетингу компанії Квадрик. «Створення прототипів апаратного забезпечення займає в 10-50 разів більше часу, ніж створення моделі SystemC підсистеми або цілої SoC. Віртуальний прототип SystemC, як правило, працює досить швидко, щоб відповісти на питання щодо продуктивності, наприклад, скільки кадрів за секунду пропускної здатності я можу отримати з цим ядром процесора або яка максимальна та середня вимога до пропускної здатності функції X у межах прийнятної точності».
Досягти потрібної точності може бути важко. «Вся справа в точності та вашій здатності дуже швидко обертати модель», — каже Френк Ширмайстер, віце-президент із рішень і розвитку бізнесу Артеріс ІП. «Правильна точність визначається будь-якими вимогами вашого запитання, і їх створення не є тривіальним. Якщо ви є постачальником ASIP, ви зможете створити їх з будь-якого шаблону, який у вас є. Залежно від питання вам може знадобитися конвеєрна точність, вам може знадобитися точність пам’яті, це не обов’язково має бути повністю точним, але коли у вас задіяний відділ САПР, вони надто бояться відповісти на неправильне запитання».
Але точність – це компроміс швидкості. «Хоча деякі віртуальні прототипи є циклічними, вони часто працюють надто повільно, щоб забезпечити необхідну пропускну здатність програмного забезпечення», — каже Девідманн з Imperas. «Найпродуктивніші віртуальні прототипи не є двигунами продуктивності, оскільки вони не моделюють процесорні конвеєри. Вони розглядають це з точки зору програмного забезпечення, де ви можете скомпілювати його та запустити на апаратному забезпеченні, і ви можете побачити приблизну продуктивність, подивившись на кількість інструкцій або приблизні оцінки часу. Цього має бути достатньо, щоб прийняти таке архітектурне рішення».
Часто потрібно кілька прототипів. «Зазвичай ми створюємо прототипи з двох причин, — говорить Венкі Нараянан, старший директор із розробки програмного забезпечення та систем у підрозділі FPGA компанії Microchip Technology. «Одним є перевірка архітектури, щоб переконатися, що ми відповідаємо всім показникам продуктивності та вимогам, а також функціональна перевірка. Інша причина полягає в розробці вбудованого програмного забезпечення та прошивки. Ми використовуємо різні рівні методів прототипування, з яких найпоширенішим є використання наших власних FPGA для розробки платформи емуляції як для архітектурної, так і для функціональної перевірки. Ми також використовуємо такі архітектурні моделі, як QEMU, для створення віртуальних платформ як для перевірки продуктивності, так і для розробки вбудованого програмного забезпечення».
Кількість можливостей зростає. «Сьогодні компанії створюють прототипи за допомогою RISC-V багатьма способами, — каже Марк Гімельштейн, технічний директор RISC-V International. «Вони варіюються від одноплатних комп’ютерів на рівні виробника до корпоративних плат із підтримкою LINUX. Емуляційні середовища (наприклад, QEMU) дозволяють розробникам розвивати програмне забезпечення до того, як їх апаратне забезпечення буде завершено, і всюди є готові частини від вбудованих SoC (від компаній, таких як Espressif і Telink), до FPGA (від компаній, таких як Microsemi), до майбутня плата Horse Creek від Intel і SiFive».
Це повертається до компромісу між продуктивністю та точністю. «Фізичні прототипи вимагають набагато більше зусиль при проектуванні, оскільки ви підключаєте та синтезуєте справжній RTL, але вони забезпечують набагато більшу точність і пропускну здатність», — каже Родді з Quadric. «Фізичний прототип у системі FPGA, незалежно від того, чи він власний, чи від великих компаній EDA, потребує зусиль, щоб створити його. Але він може працювати на порядок швидше, ніж модель SystemC, і на кілька порядків швидше, ніж повне моделювання на рівні воріт. Команди проектувальників зазвичай переходять від моделей на основі C під час процесу вибору IP до фізичних моделей як для перевірки фактичного дизайну після вибору IP, так і як платформи розробки системного програмного забезпечення».
Коли ви дізнаєтеся, який набір функцій вам потрібен в апаратному забезпеченні, ви можете перевірити, чи хтось уже створив рішення, яке відповідає більшості ваших потреб. «Швидше за все, серед усіх постачальників знайдеться комерційне рішення, яке матиме саме те, що ви шукаєте», — говорить Девідманн. «Але з RISC-V вам не потрібно приймати це рішення як є. Значною частиною цінності RISC-V є свобода змінювати його, модифікувати та додавати різні речі, які ви хочете».
Вибір реалізації
Існує багато способів реалізації набору функцій, таких як кількість етапів конвеєра або спекулятивні функції виконання. Кожен матиме інший компроміс між потужністю, продуктивністю та площею. «Версія ISA, будь то RISC-V, Arm, Xtensa від Cadence, ARC від Synopsys, насправді не впливає на цілі та компроміси моделювання та прототипування», — каже Родді. «Системний архітектор повинен відповісти на питання про цілі розробки SoC незалежно від марки процесора. На технічному рівні переможець RISC-V дійсно займає стабільну позицію на ринку щодо підтримки інструментів моделювання та аналізу продуктивності. Є багато конкуруючих постачальників ядра, кожен із різними реалізаціями та функціями процесора. Як основний системний процесор, він не має довговічності Arm, і тому менше гравців екосистеми в світі EDA мають широко підтверджену готову до використання підтримку моделювання для готових ядер RISC-V з різноманітності постачальників RISC-V. Як конфігуроване та модифіковане ядро, світ RISC-V відстає за рівнем автоматизації набору інструкцій, на створення якого Tensilica витратила 25 років. Таким чином, RISC-V має менше підтримки моделювання як готовий будівельний блок і менше автоматизації для використання як платформи для експериментів із набором інструкцій».
Але це лише один аспект реалізації, який необхідно оцінити. Яка його якість? Якщо ви хочете змінити його, як ви перевіряєте його повторно?
Ефективність оцінити найпростіше. «Це нічим не відрізняється від звернення до будь-якого традиційного постачальника процесорів», — каже Девідманн. «Вони скажуть вам, що це ядро дає стільки Dhrystones на ват, вони дадуть вам типові аналітичні дані процесора, які свідчать про те, наскільки швидко ця мікроархітектура працює. У них є всі ці дані, і будь-хто, хто ліцензує ядро процесора, буде знайомий з цими даними, поговорить з ними та отримає цю інформацію. Ймовірно, вони матимуть багато варіантів для вибору у своїй таблиці даних, і вони скажуть: «Якщо ви ввімкнете цю опцію, ви отримаєте те чи те». Ви можете подивитися на це в технічному паспорті, на веб-сайтах постачальників».
На цьому рівні вам, ймовірно, потрібна точність циклу. «Я бачу, що більшість людей завантажують його в емулятор і пропускають через нього достатньо даних, щоб прийняти обґрунтоване рішення», — каже Ширмейстер. «Я не бачу переходу до віртуальних прототипів найближчим часом. Деякі компанії говорять про прототипи FPGA, де у вас є власне одноплатне рішення. Залежно від питання, на яке вам потрібно відповісти, ви можете вирішити налаштувати його, згенерувати, а потім закачати в FPGA, щоб запускати більше даних через нього, з відповідними програмними процедурами поверх нього. У галузі є достатньо швидкі шляхи входу в емулятори та створення прототипів, щоб зробити це можливим. Основна проблема полягає в тому, що ви хочете прийняти це рішення на основі максимально точних даних, але ви можете не мати таких точних даних у той час, коли ви захочете прийняти це рішення».
Багато з цих прототипів мають включати не лише процесор. «Віртуальні платформи забезпечують можливість інтеграції з іншими зовнішніми фізичними апаратними функціями, такими як пам’ять і датчики, що працюють у реальному середовищі», — говорить Нараянан з Microchip. «Гібридні системи можуть об’єднувати віртуальні платформи з фізичними прототипами для інших зовнішніх функцій. Емуляція FPGA та створення прототипів допомагають знаходити помилки, пов’язані з синхронізацією, наприклад умови змагань, оскільки це більш точний цикл і зовнішні функції працюють зі швидкістю».
перевірка
Оскільки протягом тривалого часу розробка процесора була власною, не існує загальнодоступної екосистеми перевірки для створення процесора, а функції RISC-V вимагають набагато більш гнучкого рішення перевірки, ніж коли-небудь існувало в минулому. Створення цього тільки починає відбуватися.
«Існують такі галузеві показники, як Dhrystones або CoreMark, тож люди можуть порівнювати ефективність», — каже Девідманн. «Але як можна порівняти якість перевірки? Потрібні рівні умови гри, щоб кожен постачальник міг сказати: «Ось як ми це робимо». Нам потрібні певні показники якості для перевірки».
Ось де може допомогти рух відкритого коду. «Якщо ви подивитеся на екосистему RISC-V, у вас є велика кількість дуже досвідчених розробників процесорів», — говорить Ширмайстер. «Є дві крайності. По-перше, я отримую ядро від постачальника, і якщо воно не працює, у вас проблеми з ним. З іншого боку, я маю повну свободу і роблю все сам. Рівновага розвивається десь посередині між цими двома крайнощами. Ви отримуєте щось, де ваш постачальник надає певну перевірку, а потім розширення є вашою особистою відповідальністю».
І тут на допомогу приходять показники. «Сумісність з ISA — це лише перша сходинка на сходах, сповнених складнощів, на які піднялися лише деякі компанії, — каже Дейв Келф, генеральний директор Breker Verification Systems. «Створення прототипів може бути єдиним способом повністю забезпечити надійну роботу процесора, але використання реальних робочих навантажень для керування цими прототипами дряпає поверхню реального покриття процесорів. Це суперечить конкурентним зусиллям відкритої ISA, що сприяє прискореному розвитку та виходу на ринок».
Але що це за показники? «У групі якості OpenHW ми намагаємося визначити, якими мають бути ці показники», — каже Девідманн. «Це включає такі речі, як функціональне покриття, тому що це не просто прості інструкції. Для високоякісного процесора потрібно набагато більше. Ви повинні мати методологію перевірки, де є впевненість, що ваші порівняння з еталонним матеріалом охоплюють усе. Функціональне охоплення лише показує, що ви отримали тест, але це має поєднуватися з методологією, яка порівнює з певною формою відомого довідника. Ми збираємося додавати технологію ін’єкції помилок, щоб можна було з’ясувати, чи дійсно ваш тестовий стенд виявляє проблеми».
Рис. 1: Визначення архітектури рішення верифікації RISC-V. Джерело: Imperas
Для цього знадобиться набір інструментів. «У міру розвитку екосистеми RISC-V комерційні впровадження починають підтримувати певні сегменти ринку», — говорить Ашіш Дарбарі, засновник і генеральний директор Axiomise. «Ми бачимо підтримку для ринків, таких як автомобільний, які вимагають відповідності функціональної безпеки. Ми бачимо підтримку IoT, що вимагає безпеки. Постачальники RISC-V інвестують у передові методи перевірки, включаючи створення віртуальних прототипів для архітектурного моделювання та продуктивності. Тепер доступні інструменти для завчасного впровадження формальних методів для усунення помилок на ранніх стадіях процесу проектування та уникнення вставлення помилок, оскільки дизайнери намагаються виявити кутові помилки за допомогою моделювання на інтерфейсі процесор-пам’ять».
Одним із необхідних інструментів є можливість генерувати тестові випадки на основі списку функцій або набору можливостей. «Ключовим є автоматизоване створення тестового вмісту для створення прототипів, які своєчасно враховують складність перевірки», — каже Келф з Breker. «Ці механізми генерації зараз починають з’являтися на ринку».
Висновок
Екосистема настільки хороша, наскільки її найслабший компонент, і для RISC-V це інструментальний ланцюжок EDA. Причини цього подвійні. По-перше, донедавна не існувало комерційного ринку інструментів перевірки процесорів. Хоча вони існували в минулому, усі вони або зникли, або були розпущені у спадкових компаніях процесорів. По-друге, гнучкість RISC-V ISA створює новий підхід до оптимізації системного рівня, який вимагає нового набору інструментів. Потрібен час, щоб зрозуміти цю можливість і з’явились комерційні інструменти, які належним чином її використовують.
споріднений
Мінімальний RISC-V
Чи є місце для ще меншої версії процесора RISC-V, яка могла б замінити 8-розрядні мікроконтролери?
RISC-V просувається в мейнстрім
Процесорні ядра з відкритим кодом починають з’являтися в гетерогенних системах на процесорі та пакетах.
Ефективне трасування в RISC-V
Як працювати з новим стандартом налагодження RISC-V.
Наскільки безпечні мікросхеми RISC-V?
Відкритий код сам по собі не гарантує безпеки. Все ще зводиться до основ дизайну.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://semiengineering.com/selecting-the-right-risc-v-core/
- 1
- 10
- a
- здатність
- Здатний
- МЕНЮ
- вище
- прискорений
- прискорювачі
- Прийняти
- прийнятний
- рахунки
- точність
- точний
- насправді
- адреса
- Прийняття
- просунутий
- після
- проти
- алгоритм
- ВСІ
- вже
- кількість
- аналіз
- Аналітичний
- та
- та інфраструктури
- відповідь
- з'являтися
- додаток
- підхід
- відповідний
- Дуга
- архітектурний
- архітектура
- ПЛОЩА
- ARM
- зовнішній вигляд
- оцінюється
- Автоматизований
- Автоматизація
- автомобільний
- доступний
- середній
- назад
- ширина смуги
- заснований
- основний
- оскільки
- стає
- становлення
- перед тим
- початок
- буття
- користь
- КРАЩЕ
- між
- За
- Великий
- Біт
- Блокувати
- рада
- марка
- приносити
- широко
- Помилка
- помилки
- будувати
- Створюємо
- побудований
- бізнес
- розвиток бізнесу
- CAD
- можливості
- здатний
- Залучайте
- Генеральний директор
- певний
- виклик
- проблеми
- шанси
- зміна
- Чіпси
- вибір
- вибір
- Вибирати
- Піднявся
- CMO
- Заставу
- Приходити
- комерційний
- комерційно
- загальний
- Компанії
- порівняти
- сумісність
- конкурують
- конкурентоспроможний
- повний
- складності
- дотримання
- компонент
- Компоненти
- комп'ютери
- Турбота
- Умови
- довіра
- конфігурація
- З'єднувальний
- міркування
- зміст
- Core
- може
- з'єднаний
- охоплення
- покриття
- центральний процесор
- створений
- створює
- створення
- створення
- Струмок
- CTO
- В даний час
- дані
- Дейв
- рішення
- визначаючи
- доставляти
- запити
- відділ
- Залежно
- розгорнути
- дизайн
- процес проектування
- Дизайнери
- розвивати
- розвиненою
- розробників
- розвивається
- розробка
- прилади
- різний
- важкий
- Директор
- Ні
- Не знаю
- вниз
- управляти
- керований
- водіння
- під час
- кожен
- Рано
- Найпростіший
- екосистема
- екосистеми
- зусилля
- зусилля
- або
- вбудований
- дозволяє
- двигун
- Машинобудування
- Двигуни
- досить
- забезпечувати
- забезпечення
- підприємство
- Весь
- запис
- Навколишнє середовище
- середовищах
- Так само
- Рівновага
- встановлений
- Оцінки
- оцінювати
- Навіть
- НІКОЛИ
- все
- виконання
- досвідчений
- розширення
- розширення
- Розширення
- зовнішній
- екстремальний
- Особа
- знайомий
- мода
- ШВИДКО
- швидше
- особливість
- риси
- кілька
- поле
- Фіга
- знайти
- виявлення
- Перший
- відповідати
- фіксованою
- Гнучкість
- гнучкий
- форма
- формальний
- засновник
- Засновник і генеральний директор
- FPGA
- Freedom
- від
- Повний
- повністю
- функція
- функціональний
- Функції
- Основи
- в цілому
- породжувати
- породжує
- покоління
- отримати
- отримання
- Давати
- дає
- Go
- Цілі
- буде
- добре
- великий
- Group
- Зростання
- гарантувати
- траплятися
- апаратні засоби
- допомога
- допомагає
- високоякісний
- домашній
- Кінь
- Як
- HTTPS
- величезний
- Impact
- здійснювати
- реалізація
- in
- включати
- includes
- У тому числі
- зростаючий
- все більше і більше
- промисловість
- інформація
- Інфраструктура
- інструкції
- інтегрувати
- Intel
- зацікавлений
- інтерфейс
- Міжнародне покриття
- інвестування
- залучений
- КАТО
- IP
- питання
- IT
- сам
- робота
- ключ
- Дитина
- Знати
- відомий
- сходи
- великий
- Legacy
- рівень
- рівні
- використання
- ліцензування
- Ймовірно
- Linux
- список
- Довго
- багато часу
- довговічність
- подивитися
- шукати
- made
- головний
- зробити
- виробник
- РОБОТИ
- багато
- позначити
- ринок
- ринки
- дозріває
- макс-ширина
- Зустрічатися
- пам'ять
- Методологія
- методика
- Метрика
- мінімальний
- модель
- моделювання
- Моделі
- змінювати
- більше
- найбільш
- руху
- переміщення
- необхідно
- Необхідність
- потреби
- Нові
- номер
- численний
- мета
- Шанси
- Пропозиції
- ONE
- відкрити
- з відкритим вихідним кодом
- операційний
- операція
- Можливість
- оптимізація
- варіант
- Опції
- порядок
- замовлень
- Інше
- власний
- пакети
- частина
- частини
- Минуле
- Peak
- Люди
- продуктивність
- фізичний
- трубопровід
- Стрижень
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- гравці
- ігри
- точка
- Точка зору
- положення
- можливостей
- це можливо
- влада
- президент
- ймовірно
- Проблема
- проблеми
- процес
- процесор
- процесори
- прогрес
- правильно
- прототип
- Прототипи
- макетування
- забезпечувати
- за умови
- Постачальник
- громадськість
- насос
- накачування
- мета
- цілей
- якість
- питання
- питань
- Гонки
- діапазон
- Готовий
- реальний
- Реальний світ
- причина
- розумний
- Причини
- нещодавно
- Незалежно
- надійний
- замінювати
- вимагати
- вимагається
- вимога
- Вимога
- Вимагається
- відповідальність
- Кімната
- прогін
- біг
- Безпека
- Безпека та охорона
- другий
- безпечний
- безпеку
- сегменти
- обраний
- вибирає
- вибір
- старший
- датчиків
- комплект
- кілька
- Повинен
- Показувати
- Шоу
- значний
- Саймон
- простий
- моделювання
- один
- Повільно
- менше
- So
- Софтвер
- розробка програмного забезпечення
- рішення
- Рішення
- деякі
- Хтось
- що в сім'ї щось
- десь
- Скоро
- Source
- швидкість
- відпрацьований
- Спін
- стабільний
- етапи
- standard
- Починаючи
- Стів
- Як і раніше
- боротьба
- такі
- набір
- підтримка
- поверхню
- система
- Systems
- Приймати
- приймає
- балаканина
- говорити
- команди
- технічний
- методи
- Технологія
- шаблон
- тест
- Команда
- їх
- отже
- річ
- речі
- три
- через
- пропускна здатність
- час
- трудомісткий
- times
- синхронізація
- до
- сьогодні
- разом
- занадто
- інструменти
- топ
- Усього:
- простежувати
- традиційний
- ПЕРЕГЛЯД
- типовий
- типово
- зрозуміла
- блок
- Майбутні
- використання
- користувач
- користувачі
- підтверджено
- перевірка достовірності
- значення
- різноманітність
- продавець
- постачальники
- перевірка
- версія
- viable
- Віцепрезидент
- вид
- Віртуальний
- віртуальні платформи
- бажаючий
- способи
- веб-сайти
- Що
- Що таке
- Чи
- який
- в той час як
- волі
- в
- Work
- тренування
- світ
- б
- Неправильно
- X
- років
- вашу
- зефірнет