System Verilog Assertion и синтаксический сахар, разбираемся
Наткнулся на интересное сообщение от Юрия Панчула в чате Школы Синтеза.
Обсуждается вопрос, как лучше описывать задержку для проверки выражение в следующем такте: через
Небольшой ликбез для энтузиастов, которые еще не сталкивались с ассёршинами.
SystemVerilog Assertions (SVA) используются для проверки соответствия поведения цифровой схемы заданным требованиям и свойствам. Это позволяет выявлять ошибки в проектировании на ранних этапах верификации и ускоряет процесс разработки.
Например, мы знаем, что в одном такте не может произойти N взаимоисключающих событий, такое условие мы можем описать при помощи SVA, объединяя сигналы оператором конкатенации и используя функцию
Вернемся к нашему синтаксическому сахару😋
Основные доводы для замены
1) для описания SVA достаточно
2) инженер может перепутать операторы
3) поговаривают, что в ARM в кодстайл гайде запрещается использовать😁
"At multiple DAC conferences many years ago (~2004 and ~2005), my colleague, Alan Hunter of
ARM shared that ARM engineers were not allowed to use |=> instead they were required to use
|-> ##1"
Подробнее ознакомиться с сабжем можно в статье Каммингса [линк на pdf], раздел 9. А обсудить описание SVA или почему опять инженерам нечем заняться кроме придумывание очередного гайдлайна всегда можно в комментариях 💬
#bestpractice
|=>
или |->
##1
В рамках данной рубрики мы уже обсуждали подходы для описания процедурных блоков always
(ссылаясь на утекшие код-стайл гайдлайны от Intel), оператор inside
, а теперь добрались до SVA.Наткнулся на интересное сообщение от Юрия Панчула в чате Школы Синтеза.
Обсуждается вопрос, как лучше описывать задержку для проверки выражение в следующем такте: через
|=>
, что является синтаксическим аналогом неблокирующего присваивания, или через оператор |-> ##N
(привет задержкам в синтезируемом коде). Небольшой ликбез для энтузиастов, которые еще не сталкивались с ассёршинами.
SystemVerilog Assertions (SVA) используются для проверки соответствия поведения цифровой схемы заданным требованиям и свойствам. Это позволяет выявлять ошибки в проектировании на ранних этапах верификации и ускоряет процесс разработки.
Например, мы знаем, что в одном такте не может произойти N взаимоисключающих событий, такое условие мы можем описать при помощи SVA, объединяя сигналы оператором конкатенации и используя функцию
$onehot
. Смотри пример для csr блока в дизайне scr1. Вернемся к нашему синтаксическому сахару
Основные доводы для замены
|=>
на |->
##1
из статьи Каммингса:1) для описания SVA достаточно
|->
, а оператор |=>
избыточная надстройка, заменяемая |->
##1
;2) инженер может перепутать операторы
|->
и |=>
, а при явном описании величины задержи ##1, ##N, ##0
выстрелить в ногу становится сложнее;3) поговаривают, что в ARM в кодстайл гайде запрещается использовать
|=>
Доверяем ли мы инженерам ARM'а в этом вопросе? "At multiple DAC conferences many years ago (~2004 and ~2005), my colleague, Alan Hunter of
ARM shared that ARM engineers were not allowed to use |=> instead they were required to use
|-> ##1"
Подробнее ознакомиться с сабжем можно в статье Каммингса [линк на pdf], раздел 9. А обсудить описание SVA или почему опять инженерам нечем заняться кроме придумывание очередного гайдлайна всегда можно в комментариях 💬
#bestpractice
Please open Telegram to view this post
VIEW IN TELEGRAM
Хакатон SoC design challenge 2023
Всем привет 👋🏻
В прошлом году прошел первый в России хардверный хакатон [заметка на сайте RISC-V].
Прошел год и пришло время анонсировать второй хакатон SoC Design Challenge.
На хакатоне, помимо прошлогодних треков: Функциональная верификация, Топологическое проектирование, RTL проектирование появилось направление RTL проектирование PRO. Это новый трек для инженеров в области аппаратной разработки, которые уже имеют опыт проектирования процессоров.
Подробнее о том какие были задания в прошлом году на треках топология и верификация можно прочитать в заметках на хабре. Про трек RTL проектирование можете прочитать мою заметку на канале.
Что нового в этом году❔
Задачи по трекам остались в той же направленности но были прокачаны по функционалу. В частности потому что теперь хакатон рассчитан на 3 дня с пятницы по воскресенье.
На RTL треке вместо двух стадийного процессора дается 5 стадийный процессор с архитектурой RV32IM, что дает больше путей по его оптимизации и улучшению не зацикливаясь на задачи банального увеличения стадий вычислительного ядра. Так же задача увеличения стадий вычислительного ядра усложняет верификацию ядра. Теперь участники работают над IP-сore максимально приближенным к индустриальным решениям микроконтроллерного класса.
Верификация. Заменен проверяемый дизайн для большего функционального покрытия и вариаций проверяемых ситуаций. Так же идея осталась в написании констрейнов для готового testbench.
Топология. Улучшены дизайны которые необходимо разработать и провести их моделирование и экстракцию.
FAQ
1) Ого! Крутотенюшка. Как подать заявку на участие?🧐
На страничке SoC design challenge найдете ответы на все вопросы по регистрации и участию.
2) До какого числа открыта регистрация? 📅
Сроки подачи заявки на участие - до 7 апреля включительно.
GLHF 😎
Всем привет 👋🏻
В прошлом году прошел первый в России хардверный хакатон [заметка на сайте RISC-V].
Прошел год и пришло время анонсировать второй хакатон SoC Design Challenge.
На хакатоне, помимо прошлогодних треков: Функциональная верификация, Топологическое проектирование, RTL проектирование появилось направление RTL проектирование PRO. Это новый трек для инженеров в области аппаратной разработки, которые уже имеют опыт проектирования процессоров.
Подробнее о том какие были задания в прошлом году на треках топология и верификация можно прочитать в заметках на хабре. Про трек RTL проектирование можете прочитать мою заметку на канале.
Что нового в этом году
Задачи по трекам остались в той же направленности но были прокачаны по функционалу. В частности потому что теперь хакатон рассчитан на 3 дня с пятницы по воскресенье.
На RTL треке вместо двух стадийного процессора дается 5 стадийный процессор с архитектурой RV32IM, что дает больше путей по его оптимизации и улучшению не зацикливаясь на задачи банального увеличения стадий вычислительного ядра. Так же задача увеличения стадий вычислительного ядра усложняет верификацию ядра. Теперь участники работают над IP-сore максимально приближенным к индустриальным решениям микроконтроллерного класса.
Верификация. Заменен проверяемый дизайн для большего функционального покрытия и вариаций проверяемых ситуаций. Так же идея осталась в написании констрейнов для готового testbench.
Топология. Улучшены дизайны которые необходимо разработать и провести их моделирование и экстракцию.
FAQ
1) Ого! Крутотенюшка. Как подать заявку на участие?
На страничке SoC design challenge найдете ответы на все вопросы по регистрации и участию.
2) До какого числа открыта регистрация? 📅
Сроки подачи заявки на участие - до 7 апреля включительно.
GLHF 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
После стольких лет? 🧙♂️
Всем привет 👋🏻
Microchip обновила страничку с информацией о микроконтроллере ATmega328P добавив метку NRFND.
Теперь по рекомендации Microchip в 2023-м лучше не использовать 8-битные контроллеры в новых разработках, но Arduino евангелисты с вами не согласятся 🤡 [автор канала двумя руками за DIY колхоз на арудинках/малинках, речь идет про коммерческие продукты сегодняшнего дня].
В тему о размышлениях о месте 8-битных контроллеров в продукции 2023-го года, softcore IP и конечно же RISC-V, рекомендую посмотреть доклад Olof'a с RISC-V Summit.
И не забудьте про заглянуть в поисках интересных дизайнов на efabless, например вот вам RISCDUINO на базе SCR1.
Всем привет 👋🏻
Microchip обновила страничку с информацией о микроконтроллере ATmega328P добавив метку NRFND.
Теперь по рекомендации Microchip в 2023-м лучше не использовать 8-битные контроллеры в новых разработках, но Arduino евангелисты с вами не согласятся 🤡 [автор канала двумя руками за DIY колхоз на арудинках/малинках, речь идет про коммерческие продукты сегодняшнего дня].
В тему о размышлениях о месте 8-битных контроллеров в продукции 2023-го года, softcore IP и конечно же RISC-V, рекомендую посмотреть доклад Olof'a с RISC-V Summit.
И не забудьте про заглянуть в поисках интересных дизайнов на efabless, например вот вам RISCDUINO на базе SCR1.
Conference on Next Generation Arithmetic (CoNGA)
Всем, привет. В этом месяце актив на канале совсем упал, поэтому попробую исправить ситуацию ссылками на интересные и важные события этого месяца, по мнению автора канала конечно же😎
Речь в этом посте пойдет о прошедшей конференции CoNGA.
Конференция CoNGA (англ. Conference on Next Generation Arithmetic) - это научно-техническая конференция, на которой обсуждаются последние достижения в области разработки новых арифметических систем и алгоритмов для решения сложных математических задач.
Ознакомиться с слайдами докладов вы можете по этой ссылке.
Must see доклад - это Keynote: Posit arithmetic in the European Processor Initiative. Тут круто расписано про компании, которые вовлечены в EPI*, из каких блоков состоит европейский ускоритель и какое место Posit в EPI.
*Подробный разбор EPI я проводил в этом посте.
Остальные доклады, представленные на CoNGA относятся непосредственно к имплементациям аппаратных блоков или программных библиотек для поддержки стандарта Posit.
Всем, привет. В этом месяце актив на канале совсем упал, поэтому попробую исправить ситуацию ссылками на интересные и важные события этого месяца, по мнению автора канала конечно же😎
Речь в этом посте пойдет о прошедшей конференции CoNGA.
Конференция CoNGA (англ. Conference on Next Generation Arithmetic) - это научно-техническая конференция, на которой обсуждаются последние достижения в области разработки новых арифметических систем и алгоритмов для решения сложных математических задач.
Ознакомиться с слайдами докладов вы можете по этой ссылке.
Must see доклад - это Keynote: Posit arithmetic in the European Processor Initiative. Тут круто расписано про компании, которые вовлечены в EPI*, из каких блоков состоит европейский ускоритель и какое место Posit в EPI.
*Подробный разбор EPI я проводил в этом посте.
Остальные доклады, представленные на CoNGA относятся непосредственно к имплементациям аппаратных блоков или программных библиотек для поддержки стандарта Posit.
Forwarded from Грустный Киберпанк
Читаю интервью Бориса Арташесовича Бабаяна от 2017 года. Ничего ж не меняется :)
SAPEON X220 AI accelerator chip
Сегодня поговорим о ускорителе инрференса нейронных сетей от SAPEON.
Раньше я не встречал ускорителей, которые работают только с целочисленной арифметикой. На выбор int4/8/16 и никаких тебе флотов-754, брейнфлоатов и тем более позитов.
Что из себя представляет SAPEON X220? Наша любимая числодробилка с внушительными тэрраопсными вычислительными показателями -
Для сравнения у NVIDIA A2 -
1)при этом нвидия отлично работает с флотами
2) *With sparsity - 72 TOPS достигается при наличии большого количества нулей в наборе данных
Выше нашел только у VERSAL от AMD/Xilinx,
с показателем 145 TOPS (INT8).
Стоимость продукта для сравнения с конкурентами пока не известна, ждем апдейтов на сайте производителя.
Вопрос к читателям🤓 канала. Насколько распространен подход инференса нейросетей используя только целочисленную арифметику? Я от темы ML/AI далек и буду рад любым ссылкам и ответам в комментариях 😅
Сегодня поговорим о ускорителе инрференса нейронных сетей от SAPEON.
Раньше я не встречал ускорителей, которые работают только с целочисленной арифметикой. На выбор int4/8/16 и никаких тебе флотов-754, брейнфлоатов и тем более позитов.
Что из себя представляет SAPEON X220? Наша любимая числодробилка с внушительными тэрраопсными вычислительными показателями -
Сomputation Capability
(INT8)
87
TOPSBoost 100 TOPS
(данные взял из этой презентации)Для сравнения у NVIDIA A2 -
Peak INT8 Tensor Core 36 TOPS | 72 TOPS
*1)при этом нвидия отлично работает с флотами
2) *With sparsity - 72 TOPS достигается при наличии большого количества нулей в наборе данных
Выше нашел только у VERSAL от AMD/Xilinx,
с показателем 145 TOPS (INT8).
Стоимость продукта для сравнения с конкурентами пока не известна, ждем апдейтов на сайте производителя.
Вопрос к читателям
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет. Пришел к вам за фидбеком. Думаю добавить немного образовательного контента на канал и хочется понять, что именно вам может быть интересно. У меня на канале, как уже и матерые RTL разрабы, так и стажеры, студенты и люди не связанные с разработкой hardware.
Сейчас в планах есть несколько направлений в которых хочется поработать с каналом и хочется разобраться насколько вам интересные/неинтересны следующие темы.
1) Пройти избранные, с точки зрения автора канала конечно же, лабы из курса RVfpga и подготовить лонгрид с разбором и дополнительными разъяснениями лабораторной работы. Например, приглянулась 17-я лаба Superscalar Execution. Столько раз рекламировал этот бесплатный курс, следующий шаг начать его проходить на канале😎
2) За время работы, учебы, преподавания скопилась коллекция вопросов и задачек по HDL, компьютерным архитектурам, цифровому синтезу. Вижу примерно такой вариант, я прикладываю скриншот с кодом на языке Verilog/SV и ваша задача найти и написать, что с ним не так с синтаксической точки зрения или с точки зрения синтеза, а может с точки зрения логики работы блока. Либо разбираем академические задачки/вопросы с курса по компьютерным архитектурам, что-то из серии:
Количество инструкций, извлекаемых за один такт тактирования - определяется архитектурой или микроархитектурой процессора?
3) Сейчас в работе начал активно применять cocotb. Не скажу, что cocotb прекрасен для всех задач верификации, но в контексте компьютерной арифметики, когда у тебя поток входных данных и выход, который нужно сравнивать с некоторой золотой моделью в этой области cocotb + python просто изумительны.
На python легко нагенерить необходимые данные, а cocotb позволяет накидать простенький юнит_тест, не спотыкаясь об синтаксис SV. Стильно, модно, молодежно. Собственно думаю почему бы нам не написать очередной матричный умножитель/ FMA для условного int4 и не верифицировать его при помощи cocotb?
Для дискуссии, обменом мнений и предложений велком в комментарии и не забудь пройти опрос под этим сообщением🙃
Сейчас в планах есть несколько направлений в которых хочется поработать с каналом и хочется разобраться насколько вам интересные/неинтересны следующие темы.
1) Пройти избранные, с точки зрения автора канала конечно же, лабы из курса RVfpga и подготовить лонгрид с разбором и дополнительными разъяснениями лабораторной работы. Например, приглянулась 17-я лаба Superscalar Execution. Столько раз рекламировал этот бесплатный курс, следующий шаг начать его проходить на канале
2) За время работы, учебы, преподавания скопилась коллекция вопросов и задачек по HDL, компьютерным архитектурам, цифровому синтезу. Вижу примерно такой вариант, я прикладываю скриншот с кодом на языке Verilog/SV и ваша задача найти и написать, что с ним не так с синтаксической точки зрения или с точки зрения синтеза, а может с точки зрения логики работы блока. Либо разбираем академические задачки/вопросы с курса по компьютерным архитектурам, что-то из серии:
Количество инструкций, извлекаемых за один такт тактирования - определяется архитектурой или микроархитектурой процессора?
3) Сейчас в работе начал активно применять cocotb. Не скажу, что cocotb прекрасен для всех задач верификации, но в контексте компьютерной арифметики, когда у тебя поток входных данных и выход, который нужно сравнивать с некоторой золотой моделью в этой области cocotb + python просто изумительны.
На python легко нагенерить необходимые данные, а cocotb позволяет накидать простенький юнит_тест, не спотыкаясь об синтаксис SV. Стильно, модно, молодежно. Собственно думаю почему бы нам не написать очередной матричный умножитель/ FMA для условного int4 и не верифицировать его при помощи cocotb?
Для дискуссии, обменом мнений и предложений велком в комментарии и не забудь пройти опрос под этим сообщением🙃
Please open Telegram to view this post
VIEW IN TELEGRAM
Radiona ULX4M
Всем привет👋
Готовится к выпуску новая отладочная плата от Radiona - ULX4M.
Предыдущая разработка компании ULX3S нашла большой отклик среди адептов open source hardware. Фишка ULX3S - это FPGA от Lattice ECP5, с которой умеют работать большинство открытых маршрутов проектирования HDL to bitstream, а так же внушительная периферия: GPDI, SDRAM, ESP32 (wifi + bluetooth).
Примеры проектов, реализованных на ULX3S можно найти тут.
А что там у новинки? Разработчики платы решили перейти к формату Expansion Boards & Accessories, когда у нас есть несущая плата с FPGA + DDR памятью, а ля System on Module от trenz-electronic и плата с необходимой периферией, куда подключается наш SoM. Соответственно платы расширения могут меняться в зависимости от задачи. Для видеопреоцессинга одна плата, для DIY проектов какие-либо шилды по размерам совместимые с малинкой или orangepi.
Подробнее с фишками платы и различиях в версиях LS/LD можно ознакомиться на странице проекта.
За ходом разработки можно следить на гитхаб. Да-да гитхаб для разработки печатных плат git тоже активно используется😎
p.s. Всем спасибо кто прошел опрос, лаба по RVfpga и задачки по HDL уже в работе 👨💻
Всем привет
Готовится к выпуску новая отладочная плата от Radiona - ULX4M.
Предыдущая разработка компании ULX3S нашла большой отклик среди адептов open source hardware. Фишка ULX3S - это FPGA от Lattice ECP5, с которой умеют работать большинство открытых маршрутов проектирования HDL to bitstream, а так же внушительная периферия: GPDI, SDRAM, ESP32 (wifi + bluetooth).
Примеры проектов, реализованных на ULX3S можно найти тут.
А что там у новинки? Разработчики платы решили перейти к формату Expansion Boards & Accessories, когда у нас есть несущая плата с FPGA + DDR памятью, а ля System on Module от trenz-electronic и плата с необходимой периферией, куда подключается наш SoM. Соответственно платы расширения могут меняться в зависимости от задачи. Для видеопреоцессинга одна плата, для DIY проектов какие-либо шилды по размерам совместимые с малинкой или orangepi.
Подробнее с фишками платы и различиях в версиях LS/LD можно ознакомиться на странице проекта.
За ходом разработки можно следить на гитхаб. Да-да гитхаб для разработки печатных плат git тоже активно используется😎
p.s. Всем спасибо кто прошел опрос, лаба по RVfpga и задачки по HDL уже в работе 👨💻
Please open Telegram to view this post
VIEW IN TELEGRAM
Zfa Standard Extension for Additional Floating-Point Instruction
3-го мая 2023-го года на public review выкатили новое RISC-V расширение.
Основная фишка - это добавление Load-Immediate, а именно мгновенная загрузка в fp регистр, а не выгрузка из памяти или move из целочисленного регистрового файла, что в некоторых задачах будет ускорять передачу операндов на вычислительный юнит.
Откуда же брать эти константы? Как и где хранить знак, экспоненту, мантиссу? Предлагается хранить 32 значения, т.к. immediate поле кодируются 5 битами. Таблицу (массив хранимых значений) предлагается заполнить константными значениями, которые являются наиболее часто используемыми в наборе мат. библиотек, например: Min positive normal, inf, ±1.0, 0.5 и.т.д.
Конкретно, эти значения имеют не более двух значащих битов мантиссы, отличные от нуля. Такой подход был выбран для упрощения реализации таблицы. Чтобы хранить не все поле мантиссы [а это 52 бита для dp, 112 бит для qp], а только, например, старшие три бита, которые представляются различными комбинациями 1 и 0.
Для подробностей смотри раздел 25.1
Второе нововведение стандарта - это дополнение для операций минимума и максимума, видимо для того, чтобы поддерживать одновременно 2008 и 2019 стандарт 754-го, когда изменилась обработка функций max/min.
Стандарт IEEE 754-2008 определяет функции minNum и maxNum, которые возвращают минимальное и максимальное значение из двух входных данных соответственно. Эти функции не возвращают NaN, если один из входных параметров является NaN, а другой - не NaN.
Zfa вводит команды fminm.s и fmaxm.s, которые выполняют точно такую же операцию, как fmin.s и fmax.s, за исключением того, что если любой операнд является NaN, то возвращается каноническое NaN. Это означает, что если один операнд является числом, а другой - NaN, то возвращается каноническое NaN.
Рассуждения о различиях max/min в стандартах 2008/2019 и NaN-prop можно найти тут и тут.
3-го мая 2023-го года на public review выкатили новое RISC-V расширение.
Основная фишка - это добавление Load-Immediate, а именно мгновенная загрузка в fp регистр, а не выгрузка из памяти или move из целочисленного регистрового файла, что в некоторых задачах будет ускорять передачу операндов на вычислительный юнит.
Откуда же брать эти константы? Как и где хранить знак, экспоненту, мантиссу? Предлагается хранить 32 значения, т.к. immediate поле кодируются 5 битами. Таблицу (массив хранимых значений) предлагается заполнить константными значениями, которые являются наиболее часто используемыми в наборе мат. библиотек, например: Min positive normal, inf, ±1.0, 0.5 и.т.д.
Конкретно, эти значения имеют не более двух значащих битов мантиссы, отличные от нуля. Такой подход был выбран для упрощения реализации таблицы. Чтобы хранить не все поле мантиссы [а это 52 бита для dp, 112 бит для qp], а только, например, старшие три бита, которые представляются различными комбинациями 1 и 0.
Для подробностей смотри раздел 25.1
Второе нововведение стандарта - это дополнение для операций минимума и максимума, видимо для того, чтобы поддерживать одновременно 2008 и 2019 стандарт 754-го, когда изменилась обработка функций max/min.
Стандарт IEEE 754-2008 определяет функции minNum и maxNum, которые возвращают минимальное и максимальное значение из двух входных данных соответственно. Эти функции не возвращают NaN, если один из входных параметров является NaN, а другой - не NaN.
Zfa вводит команды fminm.s и fmaxm.s, которые выполняют точно такую же операцию, как fmin.s и fmax.s, за исключением того, что если любой операнд является NaN, то возвращается каноническое NaN. Это означает, что если один операнд является числом, а другой - NaN, то возвращается каноническое NaN.
Рассуждения о различиях max/min в стандартах 2008/2019 и NaN-prop можно найти тут и тут.
После стольких лет?
Xilinx в недавнем релизе Vivado добавили поддержку линта.
Чем это принципиально отличается от подсветки ошибок и ворнингов, которые были раньше не расскажу. Кому интереснее покопаться подробнее - качайте последний релиз Vivado 2023.
Из приятных фич можно вейвить ворнинги, которые вам не важны в текущем проекте.
Линтер на лету ошибки не ловит, а при каждом изменении исходником нужно его перезапускать отдельно, как синтез или RTL analysis.
В релизе про Lint ничего не упоминается, а найти хоть какую-то информацию можно в нашем любимом UG895.
А если в поисках дешевого и строгого и сердитого линта, то не забывайте про Verilator.
Вот небольшой пост про настройку линтера Verilator.
Xilinx в недавнем релизе Vivado добавили поддержку линта.
Чем это принципиально отличается от подсветки ошибок и ворнингов, которые были раньше не расскажу. Кому интереснее покопаться подробнее - качайте последний релиз Vivado 2023.
Из приятных фич можно вейвить ворнинги, которые вам не важны в текущем проекте.
Линтер на лету ошибки не ловит, а при каждом изменении исходником нужно его перезапускать отдельно, как синтез или RTL analysis.
В релизе про Lint ничего не упоминается, а найти хоть какую-то информацию можно в нашем любимом UG895.
А если в поисках дешевого и строгого и сердитого линта, то не забывайте про Verilator.
Вот небольшой пост про настройку линтера Verilator.
Capability Hardware Enhanced RISC Instructions (CHERI) и RISC-V ядро от Miscosoft
Сегодня поговорим о CHERI и как Microsoft допиливал CHERI-IOT к softcore от ibex
Примерный перевод с сайта университета Кембриджа о том что же такое CHERI.
Capability Hardware Enhanced RISC Instructions (CHERI) - это архитектурная концепция и набор инструкций (да-да это ISA над ISA), разработанных для повышения безопасности и изоляции в компьютерных системах.
CHERI расширяет классическую RISC-архитектуру, добавляя в нее - специальные указатели, которые предоставляют дополнительную информацию о правах доступа к памяти.
Этот подход позволяет строго контролировать доступ к памяти и предотвращать ошибки, связанные с выходом за пределы выделенной области памяти или несанкционированным доступом к данным.
Основная задача исследовательского проекта - это повышение безопасности операционных систем, браузеров и других программных приложений, и может использоваться для создания защищенных окружений для исполнения кода с низким уровнем привилегий.
Microsoft для проекта cheriot-ibex имплементировала поддержку 30 (да-да спешите видеть как инженеры Microsoft пишут на Verilog!) инструкций из спецификации CheriIoT ISA.
Ознакомиться со спецификацией на Cheri IoT можно тут. Там же приведен список инструкций, необходимый для имплементации подмножества Cheri☺️
Сегодня поговорим о CHERI и как Microsoft допиливал CHERI-IOT к softcore от ibex
Примерный перевод с сайта университета Кембриджа о том что же такое CHERI.
Capability Hardware Enhanced RISC Instructions (CHERI) - это архитектурная концепция и набор инструкций (да-да это ISA над ISA), разработанных для повышения безопасности и изоляции в компьютерных системах.
CHERI расширяет классическую RISC-архитектуру, добавляя в нее - специальные указатели, которые предоставляют дополнительную информацию о правах доступа к памяти.
Этот подход позволяет строго контролировать доступ к памяти и предотвращать ошибки, связанные с выходом за пределы выделенной области памяти или несанкционированным доступом к данным.
Основная задача исследовательского проекта - это повышение безопасности операционных систем, браузеров и других программных приложений, и может использоваться для создания защищенных окружений для исполнения кода с низким уровнем привилегий.
Microsoft для проекта cheriot-ibex имплементировала поддержку 30 (да-да спешите видеть как инженеры Microsoft пишут на Verilog!) инструкций из спецификации CheriIoT ISA.
Ознакомиться со спецификацией на Cheri IoT можно тут. Там же приведен список инструкций, необходимый для имплементации подмножества Cheri
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - lowRISC/ibex: Ibex is a small 32 bit RISC-V CPU core, previously known as zero-riscy.
Ibex is a small 32 bit RISC-V CPU core, previously known as zero-riscy. - lowRISC/ibex
RISC-V Vector красиво и наглядно
Для тех кто устал читать векторную RISC-V спеку в надежде разобраться, чем vl отличается от VLEN и как верно задать SEW/LMUL под вашу задачу на просторах интернета нашел очень крутую презентацию от BSC в рамках проекта EPI.
Кроме разбора и иллюстрации основных терминов в спецификации RISC-V Vector так же сможете найти описание проделанной работы компиляторной команды для поддержи RVV LLVM, а так же сможете поработать с представленным в докладе компилятором на Compiler Explore.
Для тех кто устал читать векторную RISC-V спеку в надежде разобраться, чем vl отличается от VLEN и как верно задать SEW/LMUL под вашу задачу на просторах интернета нашел очень крутую презентацию от BSC в рамках проекта EPI.
Кроме разбора и иллюстрации основных терминов в спецификации RISC-V Vector так же сможете найти описание проделанной работы компиляторной команды для поддержи RVV LLVM, а так же сможете поработать с представленным в докладе компилятором на Compiler Explore.
Ядро с открытым исходным кодом от OpenPOWERFoundation (OPF)
Думали тут только про RISC-V? Наткнулся на интересный проект от OpenPower.
OpenPOWER - это инициатива, разработанная компанией IBM, направленная на создание открытой архитектуры компьютерных систем на основе процессоров POWER.
Документацию на OpenPOWER можно найти в соответствующем разделе сайта организации (Power ISA™ Version 3.1, документ на 1500+ страниц 0_о)
Пару слов от открытым soft-core IP от OPF.
Проект A2O оказался дружелюбным к opensource тулам - компилируется при помощи verilator, yosys, iveriolog.
Удивляет в проекте богатая документация, например на A2O подготовлен User Manual на 790 страниц.
Так что если есть желание изучить проект подробнее - go ahead.
Для компиляции проекта подготовлены сборочные скрипты, которые можно найти в репозитории, но в качестве таргет FPGA указана ADM-PCIE-9V3 Virtex UltraScale Plus. Так что чтобы засинтезировать проект под данную FPGA нужна соответствующая лицензия Vivado, но как уже упоминалось выше — можно обойтись симуляцией и сборкой при помощи opensource тулчейна. Например инструкции для сборки Litex с Verilator или тестовая симуляция через Cocotb + icarus.
Резюмируя - огромный, хорошо документированный проект, с поддержкой как индустриальных, так и открытых инструментов синтеза/симуляции. Простор для изучения и инженерного творчества огромный.
А как воспользоваться проектом - решайте сами.
И еще пару новостей о OpenPower Foundation (OPF).
1) В первом Efabless Open MPW Shuttle был проект Microwatt (ссылка на ядро ) от IBM. Ядро написано на языке VHDL.
2) Yadro, ранее обладавшая эксклюзивным доступом к разработке процессоров на RISC-архитектуре Power от IBM, приняла решение о выходе из консорциума OpenPower Foundation (OPF).
Думали тут только про RISC-V? Наткнулся на интересный проект от OpenPower.
OpenPOWER - это инициатива, разработанная компанией IBM, направленная на создание открытой архитектуры компьютерных систем на основе процессоров POWER.
Документацию на OpenPOWER можно найти в соответствующем разделе сайта организации (Power ISA™ Version 3.1, документ на 1500+ страниц 0_о)
Пару слов от открытым soft-core IP от OPF.
Проект A2O оказался дружелюбным к opensource тулам - компилируется при помощи verilator, yosys, iveriolog.
Удивляет в проекте богатая документация, например на A2O подготовлен User Manual на 790 страниц.
Так что если есть желание изучить проект подробнее - go ahead.
Для компиляции проекта подготовлены сборочные скрипты, которые можно найти в репозитории, но в качестве таргет FPGA указана ADM-PCIE-9V3 Virtex UltraScale Plus. Так что чтобы засинтезировать проект под данную FPGA нужна соответствующая лицензия Vivado, но как уже упоминалось выше — можно обойтись симуляцией и сборкой при помощи opensource тулчейна. Например инструкции для сборки Litex с Verilator или тестовая симуляция через Cocotb + icarus.
Резюмируя - огромный, хорошо документированный проект, с поддержкой как индустриальных, так и открытых инструментов синтеза/симуляции. Простор для изучения и инженерного творчества огромный.
А как воспользоваться проектом - решайте сами.
И еще пару новостей о OpenPower Foundation (OPF).
1) В первом Efabless Open MPW Shuttle был проект Microwatt (ссылка на ядро ) от IBM. Ядро написано на языке VHDL.
2) Yadro, ранее обладавшая эксклюзивным доступом к разработке процессоров на RISC-архитектуре Power от IBM, приняла решение о выходе из консорциума OpenPower Foundation (OPF).
RISC-V Hackathon, и знакомство с Vyoma's UpTickPro tool
Анонс хакатона за день до закрытия регистрации, все как положено😅
Задача на Хакатоне - отловить баги при помощи программного обеспечения Vyoma's UpTickPro tool .
Информации о том что за ядро, какой набор команд на сайте не представлено. Все подробности расскажут 15-го июля на вводном вебинаре о "design verification challenge"
Если есть время и желания, то советую поучаствовать. Интересный опыт, знакомство с новыми инструментами, а если еще и займете призовые места - крутая ачивка для резюме😎
Дедлайн регистрации до 14го июля 17:00 по Москве (7.00 AM PST). Участие в хакатоне бесплатное для всех.
Анонс хакатона за день до закрытия регистрации, все как положено😅
Задача на Хакатоне - отловить баги при помощи программного обеспечения Vyoma's UpTickPro tool .
Информации о том что за ядро, какой набор команд на сайте не представлено. Все подробности расскажут 15-го июля на вводном вебинаре о "design verification challenge"
Если есть время и желания, то советую поучаствовать. Интересный опыт, знакомство с новыми инструментами, а если еще и займете призовые места - крутая ачивка для резюме
Дедлайн регистрации до 14го июля 17:00 по Москве (7.00 AM PST). Участие в хакатоне бесплатное для всех.
Please open Telegram to view this post
VIEW IN TELEGRAM
BeagleV - еще одна отладочная плата с Xuantie C910 на борту
Инженеры из BeagleBoard представили новинку BeagleV.
Отладочная плата оснащена SoC Alibaba T-Head TH1520, использующим архитектуру RISC-V, с четырьмя ядрами RISC-V Xuantie C910 (RV64GCV [с поддержкой векторного расширения v0.7]), а также аудио DSP Xuantie C906, энергоэффективным ядром Xuantie E902, графическим процессором Imagination 3D с производительностью 50 GFLOPS и NPU с производительностью 4 TOPS.
Подробнее про C910 смотри в предыдущих постах на канале: про открытые ядра от t-head и пост про отладочные платы на базе risc-v.
Разработчики из BeagleBoard придерживаются принципов open-source и найти исходники дизайна отладочной платы можно на gitlab'e компании.
Со спекой на плату можно ознакомиться на сайте beagle board.
Из странного USB 3.0 Micro-B как разъем для подключения платы к ПК. Гуру схемотехники и стандарта USB подскажите в комментариях почему вместо type-c ставится такой монструозный разъем?
Видео с анбоксингом платы можете посмотреть тут. Рекомендованная цена новинки ~150$
Что там по аналогам, с чем сравнить? На ум приходит компания StarFive с их платами VisionFive и VisionFive 2. Платы от StarFive по цене/фишкам кажутся интереснее, но Бигль подкупает своим открытым дизайном и исходниками.
Инженеры из BeagleBoard представили новинку BeagleV.
Отладочная плата оснащена SoC Alibaba T-Head TH1520, использующим архитектуру RISC-V, с четырьмя ядрами RISC-V Xuantie C910 (RV64GCV [с поддержкой векторного расширения v0.7]), а также аудио DSP Xuantie C906, энергоэффективным ядром Xuantie E902, графическим процессором Imagination 3D с производительностью 50 GFLOPS и NPU с производительностью 4 TOPS.
Подробнее про C910 смотри в предыдущих постах на канале: про открытые ядра от t-head и пост про отладочные платы на базе risc-v.
Разработчики из BeagleBoard придерживаются принципов open-source и найти исходники дизайна отладочной платы можно на gitlab'e компании.
Со спекой на плату можно ознакомиться на сайте beagle board.
Из странного USB 3.0 Micro-B как разъем для подключения платы к ПК. Гуру схемотехники и стандарта USB подскажите в комментариях почему вместо type-c ставится такой монструозный разъем?
Видео с анбоксингом платы можете посмотреть тут. Рекомендованная цена новинки ~150$
Что там по аналогам, с чем сравнить? На ум приходит компания StarFive с их платами VisionFive и VisionFive 2. Платы от StarFive по цене/фишкам кажутся интереснее, но Бигль подкупает своим открытым дизайном и исходниками.
Modern System-on-Chip Design on Arm
ARM выпустили занимательную книгу o проектировании Систем на Кристалле. Прочитать еще не успел, полистал по диагонали, ознакомился с оглавлением - выглядит достойно. Кратко освещаются важные аспекты дизайна и верификации современных Систем на Кристалле - AMBA 5 CHI, Credit-based Flow Control, Snooping, протоколы когерентности кэшей.
Расписаны они не сверхподробно, после прочтения вы с нуля MESI протокол не напишите, но поймете зачем и почему это нужно, куда копать дальше.
К книге можно относиться как к сборнику по ликбезу составных компонентов SoC. Если какая-то тема зацепила, то вперед гуглить, искать лекции, статьи на arxiv/ieeexplore.
Спасибо Владимиру Ефимову из чата Школы синтеза что поделился новостью о выходе книги.
В телеграм-канале, посвященном литературе о микроконтроллерах, вы сможете найти ссылку на скачивание книги, либо можете скачать книгу с сайта ARM.
ARM выпустили занимательную книгу o проектировании Систем на Кристалле. Прочитать еще не успел, полистал по диагонали, ознакомился с оглавлением - выглядит достойно. Кратко освещаются важные аспекты дизайна и верификации современных Систем на Кристалле - AMBA 5 CHI, Credit-based Flow Control, Snooping, протоколы когерентности кэшей.
Расписаны они не сверхподробно, после прочтения вы с нуля MESI протокол не напишите, но поймете зачем и почему это нужно, куда копать дальше.
К книге можно относиться как к сборнику по ликбезу составных компонентов SoC. Если какая-то тема зацепила, то вперед гуглить, искать лекции, статьи на arxiv/ieeexplore.
Спасибо Владимиру Ефимову из чата Школы синтеза что поделился новостью о выходе книги.
В телеграм-канале, посвященном литературе о микроконтроллерах, вы сможете найти ссылку на скачивание книги, либо можете скачать книгу с сайта ARM.
Консорциум по разработке RISC-V процессоров
Не так давно я писал о том, что Google делает ставку на архитектуру RISC-V и упоминал о лицензионном конфликте Qualcomm & Nuvia против ARM.
Лицензионные войны, несостоявшаяся покупка Nvidi'ей компании ARM заставила кастомеров ARM задуматься о сложившейся зависимости от разработчика процессорных IP.
В результате последних новостей последовала реакция от крупных игроков в полупроводниковой индустрии — Robert Bosch GmbH, Infineon Technologies AG, Nordic Semiconductor, NXP® Semiconductors и Qualcomm Technologies, Inc. — объединились для совместных инвестиций в консорциум, нацеленный на содействие распространению технологии RISC-V на мировом уровне путем разработки аппаратного обеспечения нового поколения.
Новая компания, созданная в Германии будет нацелена на ускорение коммерциализации будущих продуктов на основе открытой архитектуры RISC-V. Основной приоритет будет сфокусирован на автомобильной промышленности. Германия уже не в первый раз показывает заинтересованность в технологии RISC-V. Например, компания BMW уже участвовала в EPI.
Все более известные участники индустрии переводят RND на архитектуру RISC-V. Этот тренд продолжает набирать обороты и привлекает все больше внимания и интереса.
Stay tuned 😎
Не так давно я писал о том, что Google делает ставку на архитектуру RISC-V и упоминал о лицензионном конфликте Qualcomm & Nuvia против ARM.
Лицензионные войны, несостоявшаяся покупка Nvidi'ей компании ARM заставила кастомеров ARM задуматься о сложившейся зависимости от разработчика процессорных IP.
В результате последних новостей последовала реакция от крупных игроков в полупроводниковой индустрии — Robert Bosch GmbH, Infineon Technologies AG, Nordic Semiconductor, NXP® Semiconductors и Qualcomm Technologies, Inc. — объединились для совместных инвестиций в консорциум, нацеленный на содействие распространению технологии RISC-V на мировом уровне путем разработки аппаратного обеспечения нового поколения.
Новая компания, созданная в Германии будет нацелена на ускорение коммерциализации будущих продуктов на основе открытой архитектуры RISC-V. Основной приоритет будет сфокусирован на автомобильной промышленности. Германия уже не в первый раз показывает заинтересованность в технологии RISC-V. Например, компания BMW уже участвовала в EPI.
Все более известные участники индустрии переводят RND на архитектуру RISC-V. Этот тренд продолжает набирать обороты и привлекает все больше внимания и интереса.
Stay tuned 😎
Новое расширение для x86 от Intel Advanced Performance Extensions (APX)
"В последнее время в микропроцессорах компаний Intel и AMD широко используются идеи, свойственные RISC-архитектуре, так что многие различия
между CISC и RISC постепенно стираются" Организация ЭВМ и систем.
Intel представила новое расширение APX.
Изменение, которое первым делом бросается в глаза - это удвоение регистров общего назначения (GPRs) с 16 до 32. Это позволяет компилятору сохранять больше значений в регистрах, в результате чего код, скомпилированный для APX, содержит на 10% меньше операций загрузки и более чем на 20% меньше операций сохранения, чем тот же код, скомпилированный для базового уровня Intel® 64. [количественные метрики взяты с сайта Intel].
За счет чего достигается повышение производительности? Сокращается количество операций типа регистр-память, что является отличительной особенностью CISC машин Доступ к данным через паттерн регистр-регистр не только быстрее, но также требует значительно меньше динамической энергии по сравнению с сложными операциями загрузки и сохранения данных через всю иерархию памяти.
Возникает вопрос, тогда почему Intel только в 2023 году решил довести количество регистров общего назначения до 32, когда в RISC этот подход используется не один десяток лет?
Давайте посмотрим на график [см.картинку] разрыва производительности памяти/процессора. В начале 80-х, в золотое время CISC, не было такого разрыва между производительностью памяти/процессора как в наши дни и подход для загрузки/сохранения операндов источников, операндов результата по типу память-память, память-регистр была абсолютно нормальной и типичной практикой.
Яркий пример того времени CISC машина VAX-11 с 12 регистрами общего назначения.
Но технологии не стояли на месте, и такой подход стал вызывать простои процессора из-за долгого обращения к памяти.
Ошибочные представление о развитии технологий у CPU архитекторов порой приводят к необходимости закрывать проблемы производительности специализированными Perfomance Extensions.⌨️
"В последнее время в микропроцессорах компаний Intel и AMD широко используются идеи, свойственные RISC-архитектуре, так что многие различия
между CISC и RISC постепенно стираются" Организация ЭВМ и систем.
Intel представила новое расширение APX.
Изменение, которое первым делом бросается в глаза - это удвоение регистров общего назначения (GPRs) с 16 до 32. Это позволяет компилятору сохранять больше значений в регистрах, в результате чего код, скомпилированный для APX, содержит на 10% меньше операций загрузки и более чем на 20% меньше операций сохранения, чем тот же код, скомпилированный для базового уровня Intel® 64. [количественные метрики взяты с сайта Intel].
За счет чего достигается повышение производительности? Сокращается количество операций типа регистр-память, что является отличительной особенностью CISC машин Доступ к данным через паттерн регистр-регистр не только быстрее, но также требует значительно меньше динамической энергии по сравнению с сложными операциями загрузки и сохранения данных через всю иерархию памяти.
Возникает вопрос, тогда почему Intel только в 2023 году решил довести количество регистров общего назначения до 32, когда в RISC этот подход используется не один десяток лет?
Давайте посмотрим на график [см.картинку] разрыва производительности памяти/процессора. В начале 80-х, в золотое время CISC, не было такого разрыва между производительностью памяти/процессора как в наши дни и подход для загрузки/сохранения операндов источников, операндов результата по типу память-память, память-регистр была абсолютно нормальной и типичной практикой.
Яркий пример того времени CISC машина VAX-11 с 12 регистрами общего назначения.
Но технологии не стояли на месте, и такой подход стал вызывать простои процессора из-за долгого обращения к памяти.
Ошибочные представление о развитии технологий у CPU архитекторов порой приводят к необходимости закрывать проблемы производительности специализированными Perfomance Extensions.
Please open Telegram to view this post
VIEW IN TELEGRAM
OpenSource + OpenSource. Новая отладочная плата на базе CV32E40P от OpenHW
Отладочная плата от компании с названием OpenHW Group не могла быть представлена иначе.
Этот тот случай, когда в открытом доступе буквально все - схематик и pcb файлы на печатную плату, ядро с открытым исходным кодом CV32E40P, открытый SDK на базе Eclipse
Процессор изготовлен по техпроцессу 22FDX на GlobalFoundries. На этом же заводе изготавливались процессоры в рамках первой фазы проекта EPI.
CV32E40P разработан силами ETH Zurich в сотрудничестве с университетом Bologna. Интеграцией конечного процессора и backend дизайном занимались QuickLogic и CMC Microsystems.
C документацией на процессор CORE-V-MCU можно ознакомиться тут. Из интересных особенностей - это интеграция eFPGA от QuickLogic. Как указано в новости - для ускорения AI/ machine learning (ML) задач . В ускорение AI/ML задач на eFPGA верится с трудом так что скорее можно расценивать eFPGA как приятное дополнение к остальной системе.
Так же из фишек — на плате установлен Espressif с поддержкой AWS IoT ExpressLink.
Цена на предзаказ $199.00 без учетов доставки. Условия и способ доставки смотри на сайте краудфандинговой компании
Отладочная плата от компании с названием OpenHW Group не могла быть представлена иначе.
Этот тот случай, когда в открытом доступе буквально все - схематик и pcb файлы на печатную плату, ядро с открытым исходным кодом CV32E40P, открытый SDK на базе Eclipse
Процессор изготовлен по техпроцессу 22FDX на GlobalFoundries. На этом же заводе изготавливались процессоры в рамках первой фазы проекта EPI.
CV32E40P разработан силами ETH Zurich в сотрудничестве с университетом Bologna. Интеграцией конечного процессора и backend дизайном занимались QuickLogic и CMC Microsystems.
C документацией на процессор CORE-V-MCU можно ознакомиться тут. Из интересных особенностей - это интеграция eFPGA от QuickLogic. Как указано в новости - для ускорения AI/ machine learning (ML) задач . В ускорение AI/ML задач на eFPGA верится с трудом так что скорее можно расценивать eFPGA как приятное дополнение к остальной системе.
Так же из фишек — на плате установлен Espressif с поддержкой AWS IoT ExpressLink.
Цена на предзаказ $199.00 без учетов доставки. Условия и способ доставки смотри на сайте краудфандинговой компании