Записки CPU designer'a – Telegram
Записки CPU designer'a
2.93K subscribers
195 photos
2 videos
5 files
292 links
Всем привет. Меня зовут Николай.
Работаю RTL design инженером, амбассадором в RISC-V International.
В свободное время пишу о магии процессоростроения и цифровом дизайне.
Download Telegram
PERCIVAL - интересный open-source проект. RISC-V ядро с поддержкой Posit арифметики.
Статью на arxiv можно почитать - тут
О данном проекте я кратко упоминал во время RISC-V саммита, но тогда в проект еще не были добавлены исходники PAU (posit arithmetic unit). Причем исходники PAU - получены на генераторы арифметики с плавающей точки произвольной разрядности (смотри проект FloPoCo).

Погенерировать сумматоры, делители для плавающей точки онлайн и без регистрации - можно тут. На выходе получите .vhdl файл, который можете подцеплять в ваш проект (работает вроде бы только для некоторых семейств Xilinx, Altera/Intel)

p.s. сайт с online-генерацией решил упасть. Собрать FloPoCo на локальной машине можно вот по этому мануалу.
👍1
Intel будет лицензировать свои x86-ядра другим компаниям

Не так давно Intel вошла в совет директоров RISC-V International. Теперь Intel делает новый крутой поворот. Впервые в истории у Intel можно лицензировать IP x86 ядер для проектирования собственных СнК.

Условие только одно — клиенты не смогут выпускать чипы с блоками Intel на стороне, только заказывать их производство у самой Intel.

"We've made it such that either Arm or RISC-V cores would work in and also we've made it such that those connect seamlessly and cleanly to the Xeon by something called CXL. These buses are an open standard," Brennan added.

Интересно посмотреть на что способна x86 + RISC-V/ARM. Можно пофантазировать на условный Xeon в виде GP-CPU и кластер энергоэффективных RISC-V AI ядер🧐.

Кажется, что для задач кастомных аппаратных ускорителей модульная архитектура RISC-V прекрасно подходит.

Stay tuned
👍9
RISC-V в образовании

Коллеги из RISC-V International попросили поделиться с вами опросником о заинтересованности в подготовке, преподавании курсов на базе RISC-V. В любом из возможных направлений, будь то: Processor Design, Compilers, OS, Embedded System Design.

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

Сообщите, какая поддержка от RISC-V вам была бы полезна.

Для обратной связи с RISC-V International пройдите опрос в Google Forms
Хакатон SoC design challenge

Всем привет. Хочу поделиться с вами анонсом хакатона от Yardo & МИЭТ.

Подробности найдете тут

На этом хакатоне я буду в составе жюри на треке RTL проектирование. Если ты студент и есть желание посоревноваться за крутые призы и 100-баллов в зачет индивидуальных достижений при поступлении в магистратуру МИЭТ - welcome😎
🔥13👍5😢3
Стандарт Posit ратифицирован и опубликован

Рабочая группа стандарта Posit во главе с Джоном Густафсоном завершили работу над подготовкой документации для стандарта Posit.

Последние новости касательно Posit, документацию на стандарт, вы сможете найти - тут
🔥5👍3👏1
Хакатон в МИЭТ

С небольшим запозданием хочу поделиться с вами впечатлениями от прошедшего хакатона. Я с коллегами из МИЭТ и Yadro отвечал за проведение трека RTL-проектирование.

Участникам данного трека давался двустадийный процессор. Задача участников - увеличить максимальную рабочую частоту процессора, путем оптимизацией hdl-кода, а так же увеличить показатель coremark путем добавления нового функционала, исправления старого.

Процессор был изначально написан с так называемыми "bad practice" и давайте разберем основные проблемы, которые были заложены в процессоры:

1) Умножитель для расширения M был представлен как произведение двух 33 битных операндов (+1 бит на знак для обработки знакового и беззнакового умножения на одном модуле). Имплементировался дизайн под Artix-7. И из-за микроархитектуры блока DSP48E1 - получался каскадный умножитель, который увеличивал критический путь схемы. Один из способов исправить это - переписать дизайн на итерационный умножитель добавив стадий, либо переписать умножение как результат склейки результатов меньшей разрядности.

2) Регистровый файл представлялся не RAM памятью, а объявлен через genvar, как набор 32-х регистров, к каждому из которых были подведены контрольные сигналы управления и тактирования.

3) Была испорчена стадия fetch. Для того чтобы переписать корректно логику выдачи инструкций процессору участникам нужно было обработать логику stall/kill для конвейера процессора (см. waveform в комментариях)

По поводу моих субъективных впечатлений. Невероятно рад, что удалось провести такой крупный hw-хакатон. Первый день сильно омрачила ситуация с серверами МИЭТ, которые не справились с нагрузкой и задержали старт хакатона. Больше всего конечно впечатлили участники. Кто-то ринулся реализовать сразу 5-стадийный процессор, кто-то пытался сделать умный предсказатель переходов, кто-то оказался более прагматичен и приступил к поиску текущих проблем в процессоре. Царила атмосфера инженерного творчества, что как мне кажется, является самой важной частью хакатона. Рад был познакомиться лично с каждым участником и надеюсь, что нам (организаторам) удалось разжечь в студентах интерес к профессии RTL design engineer.


stay tuned😎

p.s. Отдельная благодарность команде МИЭТ за подготовку заданий и предоставление площадки для проведения Хакатона. И персонально хотелось бы сказать спасибо команде Силантьева Александра за прекрасную подготовку материалов и инструментария для трека RTL-проектирование
👍34🔥5🥰1
OpenSource SoC на базе RISC-V с eFGPA QuickLogic

Кажется это первое ядро с открытым исходным кодом, где имплементирована eFPGA.
Наличие eFPGA позволяет реализовать кастомные решения для ускорения вычислительных операций, проектирования кастомного интерфейса.

Для ускорения арифметических операция на борту eFPGA находятся два блока MAC. Которые могут быть синтезированы в один 32-битный вычислитель, два 16-битных или четыре 8-битных.

На борту eFPGA ≈ 6k LUT(5)s, 4k FFs. По емкости соответствуетco, например, ice40up.

Программируется eFPGA непосредственно через CPU по шине APB.

Построен СнК на базе cv32e40p. Классическое 4-стадийное in-order ядро. Поддерживаемые расширения - RV32IM[F]C


Документацию на проект можно найти - тут
Подробную статью о имплементации eFPGA в SoC можно найти - тут

p.s. спасибо Мише Коробкову, что поделился ссылкой на проект
👍16🔥2😁1
Образовательная_программа_МИЭТ_и_YADRO.pdf
515.5 KB
Совместная образовательная программа НИУ МИЭТ и YADRO

Хочу поделиться новостями о новых образовательных инициативах.

МИЭТ совместно с YADRO/Syntacore разработала дополнительную образовательную программу для студентов магистратуры.

Если вы ищете ВУЗ, чтобы получить актуальные навыки проектирования микропроцессорных ядер, узнать принципы построение СнК, изучить современные методики и инструментарий для верификации и проектирования топологии, то советую вам обратить внимание на данную образовательную программу.

Вы можете выбрать одно из трех направлений:

1) RTL-проектирование;
2) Верификация цифрового дизайна;
3) Топологическое проектирование;

Из плюсов данный программы хочу отметить, что часть лекций, семинаров, лабораторных работ будут проводить действующие инженеры из компаний Yadro/Syntacore. Это поможет вам получить наиболее актуальные и востребованные знания в полупроводниковой индустрии.


Все подробности - смотри в прикрепленном файле или спрашивай в комментариях к посту.

Вопросы по поступлению, подаче документов можно задать эксперту приёмной комиссии МИЭТ (Бобков Владислав Дмитриевич) или в приёмную дирекции Института МПСУ (+7(499)720-87-55, kaf_vt@mail.ru).
🔥20👍8
Премия Тьюринга

Хочу поделиться с вами сайтом Ассоциации вычислительной техники, где можно ознакомиться со списком лауреатов премии Тьюринга, а так же узнать, за какие именно достижения она была вручена.

Премия Тьюринга в мире Computer Science/Engineering имеет статус, аналогичный Нобелевской премии в академических науках.

В 2021-м году премию Тьюринга присудили Джеку Донгарра:

"За новаторский вклад в библиотеки численных методов, позволивший суперкомпьютерному программному обеспечению на протяжении четырёх десятилетий идти в ногу с экспоненциальным развитием оборудования".

Ознакомиться с научными публикациями лауреата 2021-го года можно на сайте ACM digital library.

А в 2017-м году премию получили Хэннеси и Паттерсон:

"За новаторский систематический и измеримый подход к проектированию и проверке компьютерных архитектур, оказавший долговременное влияние всю отрасль микропроцессорной техники"

Лауреаты Хэннеси и Паттерсон хорошо знакомые читателям книги: Компьютерная архитектура. Количественный подход.
👍11
RISC-V Summit China

24-26 августа в Китае пройдет трёхдневный саммит. С темами докладов преимущественно китайского RISC-V коммьюнити можно ознакомиться расписании докладов.

Пока что не понятно будет ли live-трансляции с секцией q&a, но в любом случае все видео обещали выложить в открытый доступ.

Остается еще надеяться, что спикеры будут выступать на английском языке, либо подготовят субтитры.

Для себя выявил несколько must see докладов:

1) XiangShan: practice of open source high-performance RISC-V processor agile design.

OpenSource процессор XiangShan разработанный Китайской Академией наук на языке Chisel. На прошлогоднем саммите коллеги из КАН рассказывали о параллельной верификации при помощи Verilator.

2) Ventus: An Open Source Hardware Implementation of GPGPU Based on RISC-V Vector Extension

GPGPU + Vector Extension всегда звучит интересно.

С учетом того, что в этом году ратифицирована спецификация на RISC-V Vector, а GPU в RISC-V явление редкое, посмотреть результат работы коллег вдвойне любопытно.

btw, про Ventus слышу впервые. До этого на слуху был Vortex. Осталось разобраться связаны как-либо эти проекты или нет.

3) DuVisor: a User-level Hypervisor on RISC-V

В этом году RISC-V планирует ратифицировать 15 новых спецификаций. Одна из них Hypervisor. Сейчас многие и отчасти заслуженно ругают RISC-V из-за отсутствия поддержки гипервизора. Важно посмотреть в каком направлении сейчас идет работа и как различные компании взаимодействуют с текущей спецификацией.
👍13🔥5🐳2
Berkeley Out-of-Order RISC-V Processor, Vector, Chisel, Джим Кэллер

Всем привет. Наконец-то появилось свободное время и желание что-то написать в канал.

За месяц с лишним в мире RISC-V произошло много интересных релизов поэтому самое время о них рассказать.
🐌🐌🐌
Успели и SiFive выпустить чип на фабе Intel’a, вышел очередной первый в мире ноутбук на RISC-V чипе, обновились требования RISC-V Profiles, появилась обязательное требование поддержки минимального наборе инструкций половинной точности fp-арифметики Zvfhmin Proporsal в ветке Vector Extension.

Но обо всем по порядку.

Сегодня хочу написать про крутое пополнение в мире процессорных opensource IP. Компания Tenstorrent у которой CTO & President Джим Кэллер представила интересный проект: RISC-V Ocelot.
Что такое RISC-V Ocelot? В основе лежит ядро BOOM, одно из первых ядер с полноценной поддержкой Out-of-order. Ядро написано на языке Chisel, в университете Berkeley.
В качестве модернизации процессора, были обновлены существующие исходники BOOM и отдельным in-order конвейером реализован VPU. В проекте представлена краткая микроархитектурная документация. Обратите внимание, что часть векторных инструкций, а именно конфигурационные векторные инструкции, разработчики решили имплементировать на базе существующих скалярных блоков, а не переносить всю логику обработки векторных инструкций непосредственно в VPU pipeline.

Чем интересен этот проект?
• Почти полноценная реализация Vector Extension ( нет поддержки исключений для векторных инструкций, векторного деления, и.т.д., подробности тут)
• Проект написан на Chisel hardware construction language
• Проект собирается и тестируется при помощи Chipyard Framework (сейчас разбираюсь как собрать Ocelot для оценки HW utilization, запуска простых тестов)

p.s. если у кого есть опыт работы с Chipyard отпишитесь в комментариях🙃
👍17🤡2😱1💩1🍓1
Почти первый в мире ноутбук на базе RISC-V или первый в мире ноутбук на базе RISC-V с opensource ядром.

Сразу поговорим о чипе. Процессор Alibaba T-Head TH1520 с 4-мя ядрами Xuantie C910 с рабочей частотой до 2.5ГГц.
Для тех кто следит за новостями в экосистеме RISC-V уже не раз видел Xuantie C910 в новостях.

Были новости о том, что представлен одноплатный компьютер на базе ядра Xuantie C910. Тогда процессор работал с 2-мя ядрами Xuantie C910 с тактовой частотой до 1.2 ГГц и графическим ускорителем Vivante GC8000UL.

Вторая новость по порядку, но не по значимости пропустили все новостные агрегаторы. От Хабра до ToмасХардвар. Ядро от T-HEAD Xuantie C910 интересно тем, что более чем год назад HDL-исходники были представлены в открытом репозитории на github.

На сайте производителя описаны основные характеристики ядра. При этом T-head не называет свое ядро RISC-V ядром. Название ISA от производителя: XuanTieISA (compatible with RV64GC). Чем хорошо и плохо разделение RISC-V ISA описаний поговорим в отдельном посте.

Что тут бросается в глаза - GC (IMAFD, Zicsr, Zifencei, C)- то есть поддержки V-ext нет и все векторные операции вынесены в отдельные NPU ядра в составе T-Head TH1520. Поддержка FPU операций F/D расширения + поддержка half-precision. Memory Managment sv39, со стороны разработчиков ПО уже во всю внедряется/внедрилась поддержка sv57/sv48.

Безусловно видеть ноутбук с открытым ядром (не СнК, а именно ядром) - интересно и приятно. Можно покопаться в исходниках, изучить строение процессора. Но никакого представления о устройстве 4-го ядерного процессора все еще нет. Какие там стоят IP, есть ли там те самые закладки, что за загадочные NPU и какие у них характеристики, какая именно модель GPU PowerVR стоит и многие другие вопросы все еще открыты.

С академической точки зрения видеть коммерческий продукт и иметь возможность поработать с ядром high-performance промышленного класса - уникальная возможность. Раньше для этого был MIPS µAptiv в академическом пакете mipsFPGA, и SweRV EH1 в обновленном курсе RVFPGA.
👍122🔥2🤡2🍾1
RISC-V Summit 2022

Yo ho ho 🏠

Под конец 2022-го года подготовил для вас список must see докладов с прошедшего RISC-V Summit.

1) Список открывает известный каждому RISC-V энтузиасту - Olof Kindgren с докладом о самом маленьком bit-serial RISC-V CPU в мире. Прелесть этого сверхмалого ядра в том, что можно получить некий программируемый FSM. Типичный вариант применения: инициализация DDR контроллера, опрос датчиков/сенсоров в определенной последовательности, их перекалибровка, умный сторожевой таймер или контроллер питания. Более детально - смотрите в докладе Олофа

2) Сессия группы разработчиков J Extension. J расширение необходимо для аппаратной поддержки интерпретируемых или JIT compiled языков, например: C#, Go, Java, JavaScript, Python, Scala и многие-многие другие языки. Собственно отсюда и название расширения J - Just-In-Time compiler. О том как сделать RISC-V более дружелюбной и привлекательной платформой для данных языков смотрите в докладе.

3) Ocelot Open Source Vector Unit от Tenstorrent. Про данное IP я уже писал на канале, а теперь есть возможность более детально ознакомиться с микроархитектурой VPU от Tenstorrent и услышать комментарии разработчиков касательно их продукта. Отдельного внимание заслуживает слайд про Performance Results, где наглядно показывается прирост производительности при наличии поддержки V-ext. Остальное - смотри в докладе.

4) Нельзя не отметить одного из крупных игроков в EPI (European Processor Initiative) и в мире RISC-V HPC - Barcelona Supercomputing Centre. John Davis в первой половине презентации дискутирует о базовых инструментах экосистемы RISC-V для проектирования HPC программно-аппаратных комплексов, а во второй части вкратце рассказывает о проекте европейского импортозамещение в мире CPU. Про EPI будет отдельный пост, а пока можно просто ознакомиться с roadmap и успехами Европейского консорциума в разработке собственных чипов в докладе Джона.

5) И на последок доклад от компании Ventana о чипе Veyron V1, который по заявлению компании в тесте SPECint2017 [per socket] обгоняет Xeon IceLake 8380, EPYC Milan 7763, AWS G3 Neoverse V1.

Немного характеристик Veyron V1
* 3.6GHz
* 5nm process technology
* 16 cores per cluster
* High core count multi-cluster scalability up to 128 cores

Подробности смотри в докладе.

p.s. Всех-всех с наступающим, в новом году постараюсь выйти на режим 1 пост в неделю и не пропадать месяцами, но это не точно.

Stay tuned🔔
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🎉8🔥2🤩21🤡1
Всех с наступившим🍴
Сегодня будем разбираться с импортозамещением в Евросоюзе🇪🇺

Пост вышел большой, поэтому опубликую его в telegraph. С миллионом ссылок, красивыми картинками с архитектурой процессора - все как вы любите.

Формат не самый популярный для моего канала. Так я писал в далеком 2021-м в посте про кэши.
Кстати, это первый пост на канале🥹

Так что приглашаю всех в комментарии рассказать, как вам такой формат оформления материала и что вы думаете про European Processor Initiative 🧐

#лонгрид
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤩6🔥2
Google хочет сделать RISC-V "tier-1" архитектурой для Android. 📱

На прошедшем RISC-V Summit 2022 с докладом выступал Lars Bergstrom, Android's director of engineering в Google, где анонсировал планы компании по поддержке RISC-V архитектуры для операционной системы Android.

Почему же тренд на отказ от ARM мы видим от одного из крупнейших игроков на hi-tech рынке?

Давайте вспомним последние новости, связанные с компанией ARM.

1) ARM открывшая китайское подразделение не смогла организовать эффективное управление своим дочерним подразделением. В итоге - утечка лицензируемых IP, патентов.

"Считается, что китайцы получили в своё распоряжение всё, вплоть до архитектуры Cortex-A77 (разработка 2019 года). Новейшие наборы инструкций Armv9 и весь пакет новых процессоров, интерфейсов и ядер после начала конфликта в Китай передавать не стали."

2) Ужесточение лицензирования IP и суд с Qualcomm и Nuvia
TLDR: Qualcomm поглотила компанию Nuvia и решила воспользоваться лицензиями ARM, поглощенной компании.
Но в удивительном и прекрасном полупроводниковом бизнесе (и не только) цена на лицензию устанавливается в том числе от того, что за компания запрашивает лицензию.
Видимо, ARM решила, что Qualcomm пытаются считерить с лицензионным соглашением, выдав лицензию Nuvia за свою, а Qualcomm в свою очередь, считает. что имеет права не только на интеллектуальную собственность купленной компании, но и на лицензии. Кто прав тут - скоро увидим в суде 🍿

3) ARM запрещает использование в одном чипе ARM IP и сторонних модулей.
"Британская компания решила ужесточить также свою политику в отношении разработчиков чипов вроде Qualcomm: они лишатся возможности использовать в однокристальных платформах с Arm-процессорами сторонние компоненты, если Arm предлагает их аналоги в качестве лицензируемого продукта."

Новость резко негативная. Запрет на использование сторонних ip — это удар не только по потребителю лицензии ARM, а также на производителей 3rd party IP.

4) Попытки softbank продать ARM и отказ NVIDIA от сделки.
Следить за этой сделкой было интересно. Одно из условий сделки было расширение штата сотрудников ARM и помню, как же активно в linked in стучались hr'ы ARM'а в личку. Затем в один момент список предлагаемых вакансий значительно сократился, как раз на фоне новостей о блокировке сделки со стороны антимонопольной службы.
По итогу ARM остался британским и перехода в США всех ведущих разработчиков процессорных IP не произошел, но осадочек остался.
И сам факт решение продажи такого бизнеса как ARM вызывает вопросы у клиентов. Если бы NVIDIA все-таки смогла купить ARM, где гарантии, что она не изменила бы текущие лицензионные условия или, например не начала бы отказывать в выдаче лицензии своим прямым конкурентам? И когда такой прецедент был сформирован - компании, которые планируют выпуск продукта на годы вперед, не хотят работать с таким нестабильным партнером.

Программно-аппаратная экосистема RISC-V растет на глазах, не так давно Intel вошел в состав совета директоров RISC-V International, а теперь и Google заявляет о своих планах по работе с данной архитектурой.

Закончу пост фразой Калисты Редмнод🎰: "RISC-V неизбежен" 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥7🤩2🤡1
MIPS выпустилa первый RISC-V процессор

У компании MIPS действительно непростая и интересная история.

В нулевых сделав ставку на чипы для сетевых роутеров и отказавшись от рынка мобильных устройств компания MIPS уступила в гонке ARM и начала терять лидерство на рынке RISC процессоров.

Достаточно необычный заголовок, не находите?
“MIPS выпустил RISC-V процессор” 😑

Теперь когда архитектура MIPS скорее мертва, чем жива, а компания MIPS уже не являются частью Imagination Technology или Wave Computing, то самое время вернуться к истокам - самостоятельному проектированию процессорных IP. Подробнее о нелегком пути компании MIPS можно прочитать тут.

Чем мне запомнилась компания MIPS до перехода на RISC-V ISA?

1) Самый известный MIPS процессор — это конечно же R3000.

Чип R3000 компания Sony использовала в своей легендарной PlayStation. Затем этот процессор был модифицирован для применения в космических спутниках. Почему бы не использовать тот процессор, который долго и настойчиво тестировали миллион геймеров Sony во всем мире играя в различные игры?

2) MIPS успел неплохо закрепиться и на Российском рынке. На базе MIPS ISA выпущены такие процессоры, как: комдив-64, Байкал-Т1, ELISE от Элвис и многие другие.

3) Мне MIPS больше всего запомнился во времена бакалавриата, когда нам презентовали курс MIPSfpga и была возможность поработать с реальным промышленным ядром microAptiv.
Сейчас актуальная версия данного курса - это RVfpga о которой я писал на канале ранее.

После долгого вступления самое время ознакомиться с новым семейством eVocore.
MIPS представляют в какой-то степени классические OoO и in-order ядра, но со своей старой фишкой — MIPS Multi-Threading. Нашел один из старых документов о MIPS MT. Насколько он актуален в текущем контексте не знаю, но ознакомиться можно.
eVocore P8700 - Out-of-Order, а eVocore I8500 - in-order ядро с набором команд RV64GHC.
В 2023м году презентовать ядро и без возможности интеграции векторного сопроцессора?🧐
Думаю, это первый вопрос, который возникает после прочтения списка поддерживаемых расширений. Выглядит немного странно с первого взгляда, но когда начинаешься копаться в особенностях hardware multi-threading, то понимаешь, что дублирование векторного регистрового флага для каждого треда непозволительно дорогая затея.

Что действительно выглядит странно — это отсутствие поддержки Bitmanip расширения, которое значительно повышает производительность процессорного ядра при достаточно простой имплементации.

Резюмируя все вышесказанное: компания MIPS, как и обещала переключилась на разработку RISC-V процессоров. Используя опыт разработки микропроцессоров на базе ISA MIPS, старые, но проверенные микроархитектурные решения и огромную коллекцию патентов, представили новое семейство RISC-V cpu ip. Среди фишек и конкурентных преимуществ можно отметить технологию multi-threading.

Надеюсь, что с переходом на новую ISA черная полоса компании сменится на белую и мы увидим новые решения от компании MIPS.

p.s. а получается они просто переписали декодер у старых P/I-class процессоров и выдали за новые RISC-V CPU IP?🤪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔53🔥3🤯1
RISC-V в космосе🚀

Не так давно SiFive в новостном релизе сообщила, что для HPSC (High-Performance Spaceflight Computer) NASA выбрала чип на базе архитектуры RISC-V.

В этой заметке поговорим о ядре производства шведской компании Gaisler, который является основой бортового вычислителя космического сателлита TRISAT-R, разработанного в рамках совместного проекта Европейского космического агентства, компании CAES, Skylabs и Мариборского университета.

Компания GAISLER, хорошо знакома всем по семейству процессоров LEON, на базе SPARC архитектуры. Gaisler еще в далеком 2005 году выкладывала некоторые свои ядра в open-source. Про опыт интеграции ядер LEON в коммерческие проекты можете прочитать в статье на design-reuse.
Все свои ядра GAISLER разрабатывают исключительно на VHDL, что является визитной карточкой любых aero-space проектов. А как вы хотели? Без строгой типизации в космосе никуда 🛰

TRISAT-R CubeSat - это научно-образовательная миссия для составления карты ионизирующего излучения на средней околоземной орбите. Отследить текущее положение сателлита в космосе и ознакомиться с состоянием батареи можно на этом сайте.

Одноплатный бортовой компьютер NANOhpm-obc построен на базе процессорного ядра отказоустойчивого 32-bit NOEL-V CPU IP.
Бортовой компьютер (на рисунке) так же имеет 2 ГБ DD3 памяти с ECC-protected, энергонезависимая NVM flash EDAC-protected для хранения телеметрических данных, логов и.т.д.

Почему же RISC-V? Компания GAISLER почти 20 лет уже работала с ядрами на базе архитектуры SPARC и успешно реализовывала свои продукты в проектах с повышенными требованиями по отказоустойчивости. GAISLER объясняет свой переход на RISC-V так:

▫️под SPARC не разрабатывается новое программное обеспечение;
▫️для SPARC фактически остановилась разработка и поддержка компилятора;
▫️несколько лет назад такие крупные заказчики, как Fijutsu и Oracle прекратили поддержку SPARC;

NOEL-V с поддержкой signle-precision FPU блока реализован не в виде ASIC, а в качестве soft-ip на базе FPGA Microchip PolarFire. Почему FPGA, a не ASIC? Думаю, ответ в том, что в проекте используется только 1 сателлит, для которого выпускать 1 ASIC коммерчески невыгодно.

Ознакомиться с open-source решениями от Gaisler можно на сайте компании.
Какие продукты представляет компания GRLIP IP узнать из мануала на 2000 страниц🤌

Почему я считаю, что RISC-V отлично подходит для aero-space задач:

1) сохранение постоянства нахождения старшего бита для инструкций форматов R, I, S, B, U, J, что уменьшает необходимое количество аппаратных ресурсов для извлечения знакового бита.

2) Тут немного спорный аргумент, но почему бы не обсудить его в комментариях?🤓

Наличие расширения E, которое сокращает размер целочисленного регистрового файла с 32 регистров до 16. Как мы можем это использовать? Почему бы для отказоустойчивого ядра не дублировать регистровый файл, чтобы иметь возможность детектировать сбой аппаратуры, сравнивая рег.файлы?
По энергозатратам, не учитывая логику мультиплексирования сигналов получаем почти тоже самое энергопотребление. А как известно в load/store архитектурах регистровый файл можно назвать самым горячим с точки зрения энергопотребления и самым дорогим с точки зрения иерархии памяти.

Например если сателлит/искусственный спутник земли питается от солнечной панели, то данное решение, как мне кажется, смотрится неплохо. Порезав производительность ядра мы можем инвестировать освобожденный ресурс в другую контрольную логику для сбора телеметрии, например.
Безусловно это очень небольшой выигрыш в энергопотреблении, но возможно это применимо для задач малогабаритных спутников.

3) Постоянное развитие программной экосистемы, что упрощает выход на рынок программно-аппаратного комплекса на базе RISC-V CPU IP.

p.s. давно хотел поработать с Gaisler в проекте по разработке NOEL-V, но VHDL непреодолимая ноша для меня, особенно после SystemVerilog. Интересно с текущим верификационными инструментами есть ли компании, которые проектируют ядра для применения в космосе, но не на VHDL? Судя по тому, что я видел на linkedin ситуация никак не изменилась🧐
👍16🔥51🐳1
Всем привет 👋
Решил немного разбавить лонгриды ссылками на интересные, по мнению автора канала, ресурсы.

Сегодня хочу поделиться с вами блогом Николаса Бруни.

Николас один из авторов книги Handbook of floating-point arithmetic и наверное каждый, кто проектировал FPU блоки слышал о Николасе.

Блог Николас ведет с 2016-го года, но я рекомендую ознакомиться с его серией постов о Векторном расширении для RISC-V.
В своих постах Николас дает комментарии и объяснения сложно и неоднозначно описанной векторной спецификации.

Например, из этого поста можно узнать, как собрать компилятор для запуска программ с векторными инструкциями.
А в этой заметке разбираются базовые определения и термины, присущие векторной risc-v спецификации - mask, tail, vector length, vlmax.
Если векторная спецификация не так интересна и вам хотелось бы больше узнать о скалярных расширениях, то в этой заметке можете ознакомиться с разбором Compressed extension.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥5🐳4
Войти в АйТи разработку аппаратного обеспечения⌨️

Если есть желание изучить основы проектирования, верификации аппаратуры, то сейчас самое подходящее время для этого.

На этой неделе начинается весенний семестр Школы Синтеза.
В субботу 28.01.2021, в 12.00 по московскому времени пройдет первое занятие весеннего семестра [ссылка на трансляцию].
Тема занятия: "FIFO - теория и дизайн"

Записи прошедших занятий можно найти в соответствующем разделе на сайте Истового инженера.

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

В прошлом году с коллегами подготовили занятие для Школы Синтеза по работе кэша с RISC-V процессором.
Запись лекции, ссылка с исходниками на git.
А если ищешь набор материалов по теме RISC-V, у меня и такое тоже есть 😏

Так что если захотели попробовать себя в роли RTL инженера, то бегом изучать инструкцию по установке необходимых инструментов проектирования [САПР Quartus] .

Чатик с Q&A по занятиям в Школе Синтеза можете найти тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🐳5🔥4👨‍💻3🤓21🍌1
Сегодня начинаем новую рубрику - best practice, по мнению автора канала конечно же☺️

На повестке дня: Set membership (inside) operator

Открыл для себя новый оператор в SystemVerilog для задач в синтезируемом подмножестве языка.

SystemVerilog привнес интересные нововведения в языке, которые должны были упростить жизнь RTL-инженерам. Например interface или modport, но EDA тулы до сих пор не могут выдать стабильные результаты синтеза SystemVerilog кода, при использовании новых фич языка.
Спасибо хотя бы за enum и package. Теперь наследовать параметры, и описывать fsm стало на порядок проще и удобнее.

Что же делает оператор inside?
Оператор возвращает 1'b1 если сравниваемое выражение [слева от ключевого слова inside] совпадает с любым из выражений в наборе {}, в остальных случаях 1'b0 (синтаксис смотри на скриншоте).

Как и где применять?
▫️построение зависимостей внутри FSM
▫️поиск битовой подстроки в битовом векторе:
always_comb begin
flag = data_in inside {8'b??0011??};
end // true if the middle bits of data match 4'b0011
▫️поиск элемента в массиве хранимых регистров
always_comb begin
prime_val = data_in inside {data_set_array};
end // true if data matches a value inside the data_set_array array
▫️пример из моего текущего проекта - при помощи inside определяю тип команды для FMA блока: FMADD,FMSUB,FNMADD, и.т.д - в зависимости от команды понимаю нужно ли мне изменять знак одного из операндов или нет. Очень удобная замена ==, | операторов получилась.

NOTE
Протестировал оператор в Synopsys 2022.1, Vivado 2020.1, Siemens Oasys-RTL 2022.1.R1, Cadence Genus 21.1. Все эти тулы поддерживают стандарт SystemVerilog-2012 (IEEE Standard 1800-2012), не уверен что тулы, которые поддерживают стандарты 2009-го или 2005-го года корректно работают с inside

#bestpractice
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥10🐳3🤓1🆒1
Продолжаем новую рубрику - best practice, по мнению автора канала👍

Сегодня поговорим о способах описания процедурных блоков always_ff. Конструкция проста и понятна: фронт, список чувствительности, опиши сигналы, с которыми хочешь работать.
В always_ff, мы можем указать свойство для сигналов сброса и разрешения - синхронный/асинхронный сигнал, фронт срабатывания.
Как правило, при разработке на языках Verilog/SystemVerilog, хорошим тоном считается под каждый триггер описывать отдельный блок always, за исключением сигналов со схожим назначением, например op_a, op_b можно описать в одном always блоке.

По итогу описание блока always, в среднем, занимает 3-7 строчек. А может как-то можно сократить бездумное написание одних и тех же ключевых слов, описания одних и тех же условий?🛑
Так же подумали сотрудники ETH Zurich и Болонского университета.
У pulpino есть прекрасный Common Cells Repository, где собраны различные типовые блоки. Делители clock'a, clock domain crossing, FIFO, и много другое.
Интересует нас Common register defines for RTL designs aka как описать always_ff с синхронным сбросом и асинхронным сигналом загрузки в одну строку.
Список всех дефайнов смотри в комментариях на git'e.
Почему мне нравится такой подход описания процедурных блоков:
1) единое оформление для описания триггеров — повышение читабельности кода и упрощение рефакторинга
2) соблюдение правила: 1 сигнал, 1 процедурный блок always_ff
3) пример, как можно элегантно описывать многостадийные конвейеры через genvar
4) неявно, но соблюдаешь следующее правило — внутри тела дефайна описываешь вход в FF, выход и не запихиваешь в процедурный блок сложные комбинационные выражение, а описываешь их в других местах, например через assign или always_comb. Такой подход к описанию мне кажется максимально верным. Все как в учебниках, "облачко" комбинационной логики, триггер.
Не уверен, что такой подход нужно использовать всегда и везде, но при построении сложных вычислителей, показалось удобным и наглядным.

Что думаете о таком подходе?🧐
#bestpractice
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤯4🐳2🌚1🍌1