ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:17
Summary:
  • сожалению, иногда генеративные языковые модели могут создавать некорректные ответы, основанные на открытых источниках. Во избежание неправильного толкования, ответы на вопросы, связанные с чувствительными темами, временно ограничены. Благодарим за понимание.
0: Меня зовут Анастасия Черникова. Мы работаем в компании синтак, которая занимается не только по компанией синтак, занимается процессорными ядрами отечествен.
1: Производства. Я в компании синтак руковожу отделом компиляторов инструментов разработки. Анастасия работает в моей команде, и сегодня мы вам расскажем про опенсорс с самых его нижних фундаментальных основ.
2: И до тех программ, которые вы все замечательно знаете. Начну, пожалуй, я анастасии, я потом передам слово, как только дойду до соответствующих слайдов, давайте я попробую не загораживать вам презентацию. Мне тут сказали, что это вызывает проблем.
3: Итак, поехали, поднимите в зале что-нибудь слышал про открытую, расширяемую? Все слышали? Вау. Нет, половина, кстати, не слышала. Ладно, значит, я не зря заготовил. Я не зря заготовил 2 следующих.
4: Руки. Кто? Архитектуру? Риск файв.
5: Итак, поехали, поднимите руки. Кто в зале что-нибудь слышал про открытую расширяемую архитектуру? Риск, файв. Все слышали? Вау. Нет, половина, кстати, не слышала. Ладно, значит, я не зря заготовил. Я не зря заготовил 2 следующих.
6: Да, потому что где у нас начинается, собственно, опенсорс опенсорс у нас начинается в момент, когда мы делаем систему команд, когда мы делаем собственно архитектуру процессора, риск файв является свободной.
7: И что важно, открытой системой команд? Что это означает? Тут на прошлой докладе был вопрос, куда пропали деньги? Соответственно, представьте себе, что вы делаете процессор с системой команд? Арм, а вот что такое
8: Система команд. Все знают. Поднимите руки. Кто знает, что такое система команд. Вот это все знают прекрасно. Я тогда не буду уточнять. Вы делаете этот процессор, делаете, делаете. И вдруг арм берет и отзывает у вас лицензию. Как это случилось с 1 крупным российским разработчиком?
9: И все, вы больше не можете это делать, если, если system command контролируется вендором, это примерно как операционка, которая контролируется вендором. Открытая система команд это что-то вроде linux в mie.
10: Микропроцессоров, вернее, что-то вроде опенджиэль в мире микропроцессоров, потому что риск файв контролируется комитетом риск файв интернешнл, который был основан в 2015 году и сейчас насчитывает более 4000 компа.
11: Компании из более чем 70 стран, которые совместно определяют эту самую систему команд и в России действует российский альянс риск вайв, членом которого я являюсь риск вайф является не только свободной, но и открытой и расширяемой систем.
12: Command что означает расширяемое, расширяемая означает, что вы берете и выбираете базовый набор команд по своему вкусу после того, как вы выбрали базовый набор команд, вы дальше можете делать для него.
13: Любые расширения, например, в базовом наборе команд. У вас нет даже команд умножения. Если вы возьмёте только базовый набор команд, это будет что-то типа очень маленького микроконтроллера. Если вы хотите команды умножения, вы берете расшире
14: М, которое означает multiplication дивижн и добавляете его. И таким образом, каждый раз, когда вы производите какую-то железку в этой железке, вы знаете строку, соответствующую списку расширений, которые вы добавили.
15: Только стандартизованных расширений. Десятки, сотни по профилю собравшихся здесь, если вы хотите хорошую быструю криптографию поддержать в своём процессоре и сообщить об этом тем людям, которые
16: Соответственно, пишут софт, вы поддерживаете крипт крипто расширение, оно называется that can все стандартизованные расширения пользовательского уровня это z z. И дальше какие-то буквы, если вы хотите поддержать какое-то расширение, которое
17: Комитетом ещё не стандартизовано, например, гостовскую криптографию российскую. Она называется икс-ка гост начинается с буквы x. Вы добавляете её теперь вы можете в вашем процессоре, вы поддерживаете инструкции, которые софтвер может использовать для этой
18: Криптографии, и каждое решение, каждое стандартизованное расширение является открытым. То есть вы его можете читать кто угодно может им пользоваться. Это очень удобно. Если вы хотите, кстати, быструю криптографию, вы подключаете векторное расширение.
19: Включаете вектор крипто. Компания синтак производит целую линейку ядер. Как раз здесь можно увидеть разный список. К сожалению, у меня нет лазерной указки на этом кликере. В верху каждого квадратика разный
20: Список расширений от самого маленького ядра скр 1, которое вы можете увидеть, если, например, вы разберёте ваш газовый счётчик, который поддерживает только рв 32 i плюс, может быть м м опционально до довольно большого ядра скр 9.
21: Которая поддерживает довольно большую строчку расширений и умножений, компресс, инструкции, различные флотинг, поинты, атомики и даже векторные расширения. И это очень, очень интересно, что нашу
22: Source начинается с открытой системы команд, но дальше мы хотим сделать следующий шаг может ли быть такое, чтобы сам процессор само процессорное ядро было опенсорс и вот это очень интересно.
23: Вопрос осветить этот вопрос я предоставляю анастасии.
24: Большое, Константин.
25: Вопрос осветить этот вопрос. Я предоставляю анастасии большое, Константин.
26: Да, прежде чем мы углубимся в детали архитектуры, давайте подумаем в целом, возможно ли открыты процессорные ядра? Если посмотреть с 1 взгляда, то кажется чем-то из области фантастики, ведь процессоры создают крупные корпо.
27: Корпорации, которые охраняют их патентами, коммерческой тайной и так далее, но уже давно в мире по открытый исходный код стал стандартом. Так почему бы не применить этот принцип и к железу и как раз-таки об этом сегодня?
28: Не пойдёт речь, ведь, допустим, если у нас будет доступ к открытой архитектуре, это даёт нам большую гибкость. То есть мы можем проектировать, как-то изменять и применять ядра конкретно под наши цели. Что в целом делает
29: Водство их куда гораздо более эффективно, но начнём с проектирования и справа на слайде представлено то, как выглядит внутри скр. 1 поднимите руку те, кто понимает, что здесь изображено.
30: В целом.
31: Водство их куда гораздо более эффективно, но в целом начнём с проектирования и справа на слайде представлено то, как выглядит внутри скр. 1 поднимите руку те, кто понимает, что здесь изображено.
32: Что ж, нас не так много, поэтому я предлагаю начать с самого начала, и мы отдадим небольшую дань истории и для начала поговорим об однотактовый процессорах. В целом это очень простые процессоры, которые, исполняя
33: Всю инструкцию за 1 такт, от её загрузки до непосредственного исполнения. Безусловно, такие процессоры уже не производятся, они неэффективны из за их построения и непосредственно работы с инструкциями, но тем
34: Не менее на их примере хорошо понятно, как устроены процессоры изнутри и они широко распространяются для простых учебных. Если мы пойдём чуточку дальше, то идёт уже многотактный процесс.
35: В целом задач.
36: Не менее на их примере хорошо понятно, как в целом устроены процессоры изнутри и они широко распространяются для простых учебных задач. Если мы пойдём чуточку дальше, то идёт уже многотактный процесс.
37: Которые 1 инструкцию разбивают на много разных тактов и уже непосредственно исполняют. То есть это загрузка изначально нашей инструкции, её исполнение, работа с регистрами и так далее. И большой плюс многотак
38: Процессоров в том, что исполнение инструкции как раз-таки разбивается на эти маленькие небольшие такты, и они уже могут работать с 1 большой памятью, так как в разные такты к ней доступается и следующий уже уровень нашего проект.
39: Это мы переходим к конвейерному процессору, когда инструкции начинают исполняться. То есть 1 загружается в это время, другая уже декодируется, a3 находится на этапе исполнения и в данном случае
40: Параллельно инструкция.
41: Это мы переходим к конвейерному процессору, когда инструкции начинают исполняться параллельно, то есть 1 инструкция загружается в это время, другая уже декодируется, a3 находится на этапе исполнения и в данном случае
42: У нас идёт разбиение так, чтобы мы могли исполнять наши инструкции максимально эффективно. То есть идёт конвейерный конвейерный процесс, инструкции разбиваются, и за счёт этого мы получаем наибольшую производительность.
43: Как раз-таки такого вида процессоры используются сейчас повсеместно, и какое бы мы устройство не взяли, там именно процессор конвейерного типа. Вот пример из книжки дэвида исары хайс. Ссылка на неё представлена.
44: Внизу слайда можно потом будет из презентации перейти. И здесь видно, как на схеме конвейерного процессора именно идёт разделение на различные этапы, о которых мы сейчас в дальнейшем поговорим. Но удивительно то, что на данной, на данном изобра,
45: Есть небольшое отклонение и он работает некорректно. Вот это задача для тех, кто интересуется этой темой, разобраться, что же здесь не так. И в данной книжке данная ситуация подробно рассмотрена и можно там узнать ответ.
46: И сейчас мы поговорим о стадиях непосредственно конвейера. 1 этап это как раз-таки загрузка, инструкции, instruction Феч в данном происходит в данном процессе происходит как раз так.
47: Чтение из памяти, обновление нашего счётчика программ каунтера. Дальше идёт этап декодирования мы расшифровываем опкоды, различные, читаем регистры и проверяем те или иные зависимости наших инструкций, затем идёт этап выполнения.
48: Собственно, мы работаем с блоком аллу, то есть с арифметикой идёт расчет адресов и идёт какие-либо условия перехода. Мы их рассчитываем, понимаем, как же дальше будет идти наша инструкция внутри процессора ядра.
49: Дальше идёт блок памяти, то есть доступ операции, чтения и записи в память. Как раз-таки это 1 из самых долгих и длительных блоков. И последний этап это запись, запись в регистре, обработка результатов и уже непосредственно
50: Завершение нашего этапа обработки инструкции. И вот пример такого конвейерного процессора это как раз-таки ядро скр 1, которое разработано в компании синтак. Как уже Константин сказал, и данный код является открытым.
51: Также вы можете его скачать, загрузить, допустим, на фпг, посмотреть, как это работает сам скр. 1 базируется на 30 двухбитный архитектуре риск вайф и представляет собой ису рв 32 и или рв 32 е.
52: Также есть расширение м. Мультиплай дивайт и ц компресс собственно, используется он чаще всего в микроконтроллерах и каких-либо айот и также во многих учебных проектах, помимо этого в скр 1.
53: У нас может быть от 2 до 4 различных стадий конвейера. Большое преимущество данного ядра в том, что этапы конвейера, то есть количество стадий может быть конфигурировано под конкретное количество задач. И вот тоже интересная часть, которая
54: Мы в дальнейшем разберём подробнее это интерфейсы внутри драккар 1 используется интерфейс айчпи и arxi интерфейс и также есть поддержка тиси и интерфейс проливания плик.
55: И вот мы с вами говорили об интерфейсах, и это важная часть, в принципе, при проектировании любого ядра и разговорах о том, как и что создать с самого начала в целом интерфейс это система, с помощью которой
56: У нас может компоненты процессора взаимодействовать между собой, собственно, как указано на слайде, это как раз-таки у нас может быть взаимодействие непосредственно внутри ядра. То есть это, например, взаимодействие между блока аллу и регис.
57: Файлом, но также с помощью интерфейсов происходит взаимодействие снаружи, то есть, допустим, ядра с памятью или с остальной периферией и большой. Большое преимущество интерфейсов в том, что оно является модульным. То есть написав 1 раз
58: Раз такие интерфейсы мы можем какие-то блоки заменять, какие-то подставлять и переиспользовать. И также этот подход понятен многим разработчикам изнутри, но безусловно для разработки интерфейсов нам нужны какие-то методологии, то есть
59: Откуда мы возьмём информацию, как и что правильно писать, но об этом чуточку попозже да, а сейчас об интерфейсах акси и hb это, собственно 2 самых популярных интерфейса, которые есть и также внутри ядра могут быть различ.
60: Интерфейсы, с которыми можем конфигурировать их перед запуском. В данном случае мы ведём речь про ядро скр 1 конкретно, и там есть как раз-таки эти 2 интерфейса. То есть мы можем собрать как с 1 интерфейсом, так и с другим в зависимости от того,
61: Того, вы бы хотели решить?
62: Какие конкретные задачи? Оба интерфейса разработаны были в арм и аксе? Это интерфейс, который является более быстрым, более производительным, но при этом, конечно же, и более сложным. То есть он
63: Того, какие конкретные задачи вы бы хотели решить. Оба интерфейса разработаны были в арм и аксе. Это интерфейс, который является более быстрым, более производительным, но при этом, конечно же, и более сложным. То есть он
64: Упрощает решение многих задач и ускоряет работу, но при этом, допустим, верифицировать его и понять то, что все работает корректно, сложнее. Айчпи это более простой, более старый интерфейс, в котором более простой дизайн и, соответственно, проще верифика
65: В риск.
66: И вот пример использования ядер это ядра конкретно скр. 1 это микроконтроллер, амур данном случае как раз-таки используется ядро скр, 1 архитектура.
67: И вот пример использования ядер это ядра конкретно скр 1 это микроконтроллер, амур в данном случае как раз-таки используется ядро скр. 1 архитектура, риск.
68: 32 и. Ц. И. Hbk данный микроконтроллер часто используется для каких-то учебных проектов, айот, устройств и других различных задач, которые вы сейчас видите на слайде, и вот сейчас мы все время разговаривали.
69: Об 1 и том же ядре скр 1 no естественно их куда гораздо больше они выполняют большое количество различных и интересных задач и вот 1 из alternative это ядро айбекс, оно разработано компанией le.
70: Lo риск и также представлена на рынок в виде открытого кода и данный конвейер имеет всего 2 стадии архитектуру риск вай, 32 им. Циби.
71: Как основную и также интерфейс эйчби, как дополнительный type link, как основной используется, но основной приоритет создания данного ядра было для работы с устройствами, которые имеют
72: Именно батарейную систему питания, и тем самым они позволяют встраиваться в тот же самый умный дом. Удобнее. То есть, когда у нас какое-то устройство работает за счёт батареек, достаточно часто выбирают как раз-таки и бекс, но это
73: Достаточно простой простое ядро. Вот уже более интересный вариант. То есть у нас уже 6 стадий конвейера, инструкция распределяется куда интереснее и в принципе, работа его становится сложнее. У нас поддерживается уже 60 четырехбитная, то есть это
74: Архитектура.
75: Достаточно простой простое ядро. Вот уже более интересный вариант. То есть у нас уже 6 стадий конвейера, инструкция распределяется куда интереснее, и, в принципе, работа его становится сложнее. У нас поддерживается уже 60 четырехбитная архитектура. То есть это
76: Рв 64 gcc также используется интерфейс акси, который куда гораздо быстрее, чем тот же самый эйчби, который был в предыдущем варианте и уже поддерживаются юникс подобные системы, то есть мы можем запустить тот же самый линукс.
77: И в целом у нас есть развитая система кэшей, за счёт чего у нас программы будут работать просто напросто эффективнее. И вот мы уже обсудили 2 разных варианта ядра. Помимо скр 1, казалось бы, куда дальше, но есть куда дальше. И это пример такого ядра.
78: Представлен вариантом компании блэк пэррот, и они создали ядро на базе архитектуры рв 64 gcc, его большое преимущество заключается в том, что это уже ядра, которые могут работать группой в Большин.
79: Все устройствах у нас сейчас, естественно, стоит уже не 1 ядро, а несколько. То есть когда вы покупаете ноутбук, допустим, вы видите, сколько там уже ядер работает внутри. Поэтому это большое и, допустим, вот конкретно данное ядро, блэк перет умеет работать в компоновке из
80: Преимущество.
81: Все устройствах у нас сейчас, естественно, стоит уже не 1 ядро, а несколько. То есть, когда вы покупаете ноутбук, допустим, вы видите, сколько там уже ядер работает внутри. Поэтому это большое преимущество. И, допустим, вот конкретно данное ядро, блэк перет умеет работать в компоновке из
82: 4 штук на данный момент, но ведётся разработка и улучшение для того, чтобы было использовано больше ядер конкретно в 1 процессоре. И вот мы сейчас поговорили о различных ядрах, о том, как они устроены изнутри, но безусловно,
83: Перед тем, как делать непосредственную модель в железе, нам важно понять, что все корректно работает, что мы все классно спроектировали и действительно оно будет работать так, как мы этого хотим, и для этого нужно тестовое окружение для ядра или тест бенч.
84: Он также пишется вокруг нашего уже созданного кода архитектуры ядра и составляется из различных компонент. Там есть какая-то модель памяти, какие-то мониторы, которые следят в принципе за системой.
85: Из за того, как затем, как изменяются те или иные параметры, которые у нас в этой системе указаны. И важно также, когда мы проектируем какие-то тест бинчи, делать так, чтобы это было
86: Понятно. Помимо того, как окружающим нашим коллегам, которые вместе с ними мы пишем код, так, и в целом это было модульно, расширяемо. Допустим, мы поняли, что какую-то часть не протестировали до конца, то есть там работу с памятью или какой-то ещё блок, чтобы мы могли его просто легк.
87: Добавить, а не переписывать весь код заново. И как раз-таки для этого нам нужны различные методологии. Например, 1 из самых распространённых это методология виэм. Она создана как стандарт для верификации на систем верилок языке в целом.
88: Глобальная её схема сейчас представлена на слайде и работает оно так. У нас есть дут девайс андер тест, то есть устройство, которое мы пытаемся протестировать. Есть секвенсер, который нам берет откуда-то и помогает генерировать поток создан.
89: Тестов, он передаёт его на driver. Сам драйвер это поток уже этого теста преобразует в вид, который был бы понятен нашему тестирующему устройству, и передаёт его. И взамен уже в монитор у нас приходят результаты
90: Выполнение Тестов монитор в целом следит за входными выходными данными, проверяет, как это все работает, и скорборд уже сравнивает те данные, которые у нас были, то есть эталонные данные с теми, которые пришли в результате работе на дуте.
91: И таким образом, как раз-таки проверяется, насколько все корректно и правильно работает изнутри. И вот сейчас мы с вами обсудили о том, что необходимо тестировать наше оборудование, проверять, как оно работает. Но большой важный вопрос, откуда же нам в принципе, взять
92: Тесты Тестов должно быть много, они должны быть качественными, и как раз-таки об этом сейчас расскажет вам Константин.
93: Да, спасибо, Настя. Соответственно, рассказ Насти должен был создать у вас интригу, правда ведь? Смотрите, насколько сложная схемотехника. Даже если она опенсорсная, она сложная. Представьте себе сложность, например, задачи полной верификации для такого рода схемотехники сложно.
94: Интерфейсы. Представьте к чему может привести небольшой баг в интерфейсе акси, сколько вы будете его ловить и откуда-то нужно брать много Тестов. И 1 идея для Тестов это конечно взять какие-то
95: Существующие программы, например, взять и попробовать загрузить ядро linux благо если у вас не совсем микроконтроллер и линукс на нём загружается, то это хороший тест, линукс загрузился ну в принципе можно выдохнуть, да, но ну само ядро linux, конечно, тож.
96: Но для того, чтобы взять что-то существующее, вам нужно скомпилировать что-то существующее, и это приводит нас, собственно, к главной, главной, главной вещи, которой и я, и Настя занимаемся.
97: Открытый компиляторные уже мы повышаем уровень абстракции, компиляторные инфраструктуре vmm. Давайте попробуем сначала скомпилировать, а потом и сгенерировать тесты не уходя из мира опенсорс, мы с Настей работаем над выпусками.
98: Saint кордев тулкит это открытый набор инструментов, который свободно распространяется по ссылке в презентации да не волнуйтесь, в конце презентации будет QR-код, где её скачать.
99: Вы сможете в конце её скачать и пощёлкать по всем ссылкам пока просто запоминайте что они есть куда входят куча инструментов в том числе целых 2 тулчейна ли gcc, то есть летучей и gcc based тулчейн потому что.
100: И у того, и у другого есть свои преимущества. Главное преимущество лвм Бейс тулчейна это лицензия.
101: Дело в том, что gcc это слишком опенсорс в gcc вы просто не можете ничего сделать, не показав это всему миру, а иногда вы все-таки не хотите все показывать всему миру, кроме того, 2 главное преимущество элвм это модульность джисиси все-таки.
102: Гораздо менее модулен джиси не позволяет строить на своей основе удобные инструменты, но у gcc есть свои преимущества например, вместе с gcc поставляется довольно развитая глибси, которой сейчас просто нет альтернатив, и поэтому у нас предусмотрен.
103: На такое подключение 1 тулчейна к другому тулчейн сложными методами. Вот, например, вы можете взять компилятор кланк, скомпилировать с его помощью код, потом итоговый ассемблер сассемблер вать уже гнусным ассемблером.
104: И дальше использовать уже гнусный Линкер или наоборот вы можете сделать integrate тасс в Кланге, передать все это на гнусный Линкер все это довольно легко интегрируется, если у вас есть срут с gc тулчейном и вы можете его просто
105: Указать на компиляции исрут это такая специальная папка, которая рассматривается как корень для заголовочных файлов и для библиотек.
106: Кроме того, поскольку в нашем the мы можем что-то такое делать интересное, мы можем, например, делать в нём опции очень тонкой настройки для каждого ядра, которое поддерживает наш тулчейн. Что такое?
107: Опции тонкой настройки. Компилятор это очень сложная вещь. Там очень сложный, очень сложная логика и даже машинно независимые оптимизации. Например, тот же анро могут очень сильно влиять на качество кода в зависимости от архит.
108: Тектуры, потому что в 1 случае вам важен размер кода, и тогда вам лучше много не анроллд, а в другом случае, наоборот, размер кода вам не так важен, потому что вы знаете, что у вас большой инстракшн кэш и анролог м, можно до бесконечности, но я хотел
109: Остановиться на другом. Я хотел бы остановиться на том, что нам ещё сейчас в дальнейшем понадобится, а именно на модели планировщика. Вот смотрите, когда Настя вам сейчас рассказывала про этапы работы процессора, а вот же все они нала.
110: Когда вы пишите компилятор, вы берете те же этапы и раскладываете их по модели планировщика инструкций, который берет на вход те инструкции, которые ваш компилятор хочет.
111: Сгенерировать и раскладывает их Настя подробнее расскажет, как именно решается эта задача, раскладывает их так, чтобы минимизировать задержки в конвейере.
112: Удивительно, но у нас, кажется, технологии очень, очень плотно взаимодействуют друг с другом. Давайте посмотрим дальше.
113: Является не только компилятором, инфраструктурой. Элвим можно рассматривать как универсальный источник архитектурной информации, и сейчас мы его используем для того, чтобы решить задачу тестирования процесса.
114: Чтобы решить задачу системной верификации. Но почему ограничиваться только процессором? Давайте подумаем. А задачу системной верификации чего мы вообще в принципе хотели бы решить? Разве мы начинаем разработку с процессора?
115: Там вы сразу запускаете что-то на процессоре. Нет, сначала у нас есть целый ряд моделей и даже сам микропроцессор можно рассматривать как своего рода модель, и давайте посмотрим.
116: Давайте посмотрим на задачу генерации Тестов для разного уровня моделей функциональная модель, например, кему транзакционная модель.
117: Потактовая модель, например, геем файф или вцс логический дизайн, который вы можете прожить, прошить на фпга. Как выглядят тесты для любой из этих моделей. Вот, допустим, у вас есть рабочая функциональная модель вам
118: Нужно протестировать логический дизайн. Как вы это сделаете?
119: Очевидно, я надеюсь, это очевидно, что если у вас есть модель и вы хотите решить задачу её верификации, вам нужно проверить, что модель удовлетворяет той специфик.
120: Которые она моделирует. По большому счёту, задача верификации так и формулируется верификация это проверка соответствия спецификации. Теперь представим, что у вас есть рабочая функциональная модель, но вы сомневаетесь в своём логическом дизайне, что вы сделаете
121: Вы сгенерируете побольше Тестов и подадите их одновременно на модель андер тест и на golden модул. Чем бы не была модул андер тест, чем бы не была голден модул. Но откуда вы возьмёте эти инструкции? Эти инструкции вы возьмёте из.
122: Instruction. Секвенс, дженерейтор, инстракшн, секвенс, дженерейтор является частью экосистемы вм. В данном случае он пока не забстор, опять-таки уже доступен на гитхабе синтак. Этот
123: Генератор называется лвм сниппи. Я сейчас про него расскажу подробнее, что с помощью него можно тестировать. С помощью него можно тестировать все для тестирования чего вам нужен поток инструкций. Вы можете тестировать сайкла проксимед модели, вы можете тестировать функциональ.
124: Симуляторы, такие как spike, сейл или кему вы можете тестировать валгринд, инжектируя инструкции, которые бьют мимо памяти, вы можете тестировать гдб, инжектируя различные отладочные вещи или аннотируя дебаг информации и так далее.
125: Как выглядит, как выглядит генератор потока инструкций в простейшем, в простейшем случае, как выглядит наш сниппи. Кстати, по ссылке, опять-таки гитхаб. Где вы можете его посмотреть, скачать, прикинуть, насколько он может быть полезен для ваших задач, потому
126: Потому что мы бы хотели построить вокруг него большое опенсорсное комьюнити. Смотрите, у нас есть генератор. Генератор берет гистограмму с относительными весами инструкций. Все веса складываем, нормируем к единице, берём секции код.
127: Данных, куда это все разложить на выходе получаем последовательность инструкций, случайным образом сгенерированных
128: Вопрос вы наверняка скажете ну, в мире 1000000 таких генераторов. Зачем писать ещё 1? Все дело в том, что в снипе, являясь частью лвм, очень многие вещи, на которые в многих других генераторах
129: Которые действительно валяются по интернету, потрачены все усилия, он это все берет из открытой экосистемы лвм, он берет оттуда описание инструкций, он берет оттуда очень удобный, машиня промежуточное представление, в котором с этими инструкциями удобно оперировать.
130: И в итоге внутри этого генератора можно сосредоточиться на логике генерации, включая нетривиальные схемы памяти, поток управления и даже вызовы функций я пролистаю этот слайд, это примерно как его вызвать и как выглядят входные данные, он не очен.
131: Очень интересен. Сниппи уже используется для учебных проектов. И вот Настя вам рассказывала про методологию ювм к ювм, мы его пока не прикрутили. Но если вы, например, сами напишите раннер, который интегрирует несколько сниппетов за
132: Пускает их и сличает что-то, например, финальное состояние или трассы. То вот есть примеры позитивного использования этого генератора в опенсорсе и окей, у нас есть открытая инфраструктура лве, мы
133: Уже увидели, что мы можем с помощью неё компилировать. Мы можем, мы видели, что мы можем с помощью неё генерировать тесты. А что ещё? Мы с помощью неё можем такое чувство, что мы можем очень многое, но я сейчас передам микрофон.
134: Настя, чтобы она вам рассказала о некоторых удивительных и местами неожиданных вещах, которые мы можем, Настя, тебе слово.
135: Спасибо, Константин. Ну, собственно, в целом экосистема венам представляет огромный набор различных инструментов.
136: Настя, чтобы она вам рассказала о некоторых удивительных и местами неожиданных вещах, которые мы можем, Настя, тебе слово. Спасибо, Константин. Ну, собственно, в целом экосистема венам представляет огромный набор различных инструментов.
137: Ментов, которые помогают в достаточно разнообразных ситуациях. Но сегодня мы поговорим ещё об 1 и конкретно. Это инструмент для бичмарина. В целом. Задача для бенчмаркинга является очень важной, потому что она помогает выявить какие-то узкие места в системе.
138: Где что работает некорректно. И также она помогает внутри экосистемы ловим составлять некоторые её части. Ну вот в целом задача бичмарина состоит из различных аспектов. Например, часть из них это проверить то как, насколько корректно устройство рабо
139: Работает с памятью, как попадает там или не попадает информация в конкретные кэши, как идёт взаимодействие различных систем. И вот с этим, к сожалению, с этой частью инструмент, который мы будем обсуждать дальше, нам никак не поможе.
140: Но зато если у нас есть какой-то набор инструкций и нам интересно узнать, какое количество времени необходимо для исполнения 1 такой инструкции или пропускную способность каждой такой инструкции как раз-таки в этом нам сможет помочь.
141: Экзегезис лвм экзегезис это инструмент сравнительного анализа как раз-таки из экосистемы ли. То есть если вы собираете или скачиваете проект в он у вас будет уже как 1 из внутренних Тулов. Вот и этот
142: Сам этот инструмент в процессе своей работы генерирует эльф файл, который дальше либо самостоятельно, либо сам инструмент в собственном режиме может запустить на интересующем нас устройстве и получить на выходе те самые характеристики, то есть либо лейтен,
143: Количество тактов, которое необходимо для работы той или иной инструкции или пропускную способность ядра для конкретной инструкции. Поговорим немножко, как он работает изнутри, но так буквально в 2 словах. То есть у нас на вход в инструмент гези приходит инстру.
144: Инструкция или набор инструкций и дальше этот инструмент в процессе своей работы генерирует цикл, в котором повторяет интересующий нас паттерн большое количество раз. На примере на слайде это инструкция it, которая повторяется в цикле просто 100000 раз и дальше на вы.
145: Мы получаем эль файл, который вас либо в режиме своей работы, то есть под собой вызывает инструмент джит и запускает непосредственно на устройстве, на котором этот самый и запущен.
146: Наш сгенерированный файл и получает на выходе все необходимые характеристики, которые мы изначально запрашивали, либо есть более сложный путь, но он позволяет нам работать на других устройствах. То есть мы запускаем экзегезис на, допустим, нашем ноутбуке.
147: Собираем, получаем на выходе файл, бинарный файл и вместе с теином и враппером мы получаем уже готовую программу, которую можем запустить на каком-то другом девайсе и уже измерить какое количество
148: Тактов нужно для той или иной инструкции или их пропускную способность.
149: Секундочку, собственно, где и для чего это нужно? 1 из способов это применить. Это различные оптимизации внутри компилятора. 1 из них это критикал пасс кединг и как раз-таки она испол.
150: Вот.
151: Секундочку, вот собственно, где и для чего это нужно? 1 из способов это применить это различные оптимизации внутри компилятора. 1 из них это критикал пасс кединг и как раз-таки она испол,
152: Такое понятие, как критический путь для того, чтобы понять в 2 словах, как это работает, мы берём нашу программу и строим взвешенный, ориентированный граф в качестве вершин являются сами инструкции в качестве их весов.
153: Количество тактов, необходимое для исполнения каждой инструкции, а непосредственно связи между 2 вершинами, это их зависимость по оперантов. И вот критический путь на слайде. Он приведён красным цветом. Это путь, собственно, который исполняется дольше всего.
154: То есть он определяет время работы нашей программы и 1 из важных задач компилятора. Этот путь сократить, собственно, чтобы сократить время исполнения нашей финальной программы или другой вариант это использование внутри скиллинг модели.
155: О ней уже Константин сегодня упоминал, но вот на слайде представлена скеллинг, модель процессора робит, и наглядно видно то, что при делении тридцатидвухбитная нам на 1 инструкцию деления необходимо 34 такта.
156: Определение 64 битного 33 такта. Это в дальнейшем будет влиять на какие-то внутренние оптимизации, на то, как в принципе работает компилятор и собирает итоговую программу. И для этого как раз-таки нам может помочь этот инструмент, то есть он изна
157: Предполагался как правильное составление скедулинг модели внутри в. Но вот сейчас мы с вами разговаривали о многих таких низкоуровневых компонентах. В принципе, как работает железо, как выглядит между собой процессор процессора.
158: Какие они бывают дальше? Мы поговорим немножко о компиляторе и о том, что лежит рядом с компилятором. То есть это какие-то инструменты, которые нам помогают в принципе, разрабатывать нашу среду, но сейчас поговорим о остальном по и все, что о чем.
159: Там происходит выше, об этом подробнее расскажет Константин.
160: Итак, представим себе, что вы взяли открытое ядро, взяли для него открытые инструменты и загрузили на нём опенсорсную операционную систему, например, линукс, ну или.
161: Пока не загрузили. Например, вы делаете там сотовый телефон, ну, скажем, вместо армада.
162: Возникнут ли у вас какие-то проблемы, если вы пользуетесь архитектурой риск файв, потому что ещё раз вы в некотором смысле вы должны пользоваться архитектурой. Риск файв именно из за её открытого характера, потому что вы не хотите
163: Вендерлока, правильно? Точно так же, как вы, как бы, будучи сознательным человеком, должны пользоваться операционными системами с открытым исходным кодом и так далее. И вот удивительно, но главная проблема, риск файв кроется там же, где
164: Кроется его главное преимущество. Смотрите, сейчас Настя вам показывала 1 за другим разные опенсорсные ядра с разным набором расширений. Риск файв как бы провоцирует вас. Он говорит,
165: Вам сделайте своё расширение. Вам нужно что-то для безопасности. Сделайте своё расширение, опубликуйте его. Договоритесь с каким-нибудь китайским производителем. Пусть он вам выпустит процессор на базе риск файв.
166: Этим расширением или возьмите опенсорсное ядро и договоритесь с кем-нибудь, чтобы вам доделали это расширение в это ядро. И вот вы его выпустили, а потом к вам приходит ваш друг.
167: Который разрабатывает android.
168: И спрашивает скажите, а под какой набор расширений мне собирать, андроид?
169: Даже хуже к вам приходит ваш друг, который разрабатывает гипси.
170: И спрашивает а какой набор расширений мне писать в сборке галисии? И тут вам становится тяжело, вам становится плохо, это неожиданная проблема, которая присутствует именно в расширяемых системах команд.
171: Её практически нет в арм или в x 86, потому что когда кто-то приходит к разработчикам икс 86 и спрашивает подо что мне собирать Галип? Это вопрос типа в Советском союзе, а как?
172: Какая партия? Партия у нас в 76, знаете ли, 1, как эта проблема решается? Эти проблемы, они очень часто возникают в графических апи, например, потому что с какими расширениями?
173: Собирать программу на опенджиэль, но это такой же вопрос, да, и они решаются в графических апи с помощью профилей. И в риск файф они тоже решаются с помощью профилей. Когда я вам говорил, что в риск файф много расширений, я преумень.
174: Ситуацию в риск файф очень много расширений. И вот здесь, на этом слайде, приведены только обязательные расширения профиля рва 22 у 64 это примерно единый профиль для всех.
175: Мобильных устройств в стандарте 22 года.
176: И мы видим, что только обязательных расширений, без которых не заведётся и не поедет. Здесь 4 колонки и ещё 4 опциональных расширения. Например, кстати, зкн это та самая криптография, о которой я говорил.
177: А в это просто векторные расширения. То есть у вас могут быть векторные расширения и тогда ваш телефон будет работать гораздо быстрее. По крайней мере, он будет гораздо быстрее делать мем. Сипиай правильно? И вот риск файв плюс профили.
178: Как раз и делает риск файв до некоторой степени нормальной операционной системой. По крайней мере в этом в этот момент вам понятно, что вам писать в билдруте, да какую конфигурацию заводить для очередной риск файв железки, которую к вам привезли.
179: И в этом смысле линейка профилей совершенствуется со временем и со временем совершенствуется тот софт и список того софта, который возможен для риск файв и высокоуровневый софт.
180: Мы откатимся в 2010 год. Его практически не было. В 2010 году шло только проектирование системы команд и первые бэрметал. Прототипы появились только к 2017 году, но уже в 2021.
181: Году. А я, например, начал впервые серьёзно работать над риск файв уже в 2022 году. Ну, над компиляторами к риск файф уже в 2021 году появлялось 1 linux Кейпа железо. Появлялись
182: Первые компиляторы для искусственного интеллекта появлялись в большом количестве драйвера, сейчас в 2024 и так далее годах. Вот сейчас уже идёт 2025 риск.
183: Five развился до состояния, когда у нас существуют мобильные серверные решения, когда у нас активно развиваются векторные расширения, в том числе векторная криптография, сейчас, например, в llvm идёт.
184: Существенный рост коммитов в риск файв викторизацию, потому что в риск файв очень интересная скейл векторизация. Если кто-нибудь из вас не знает о том, как устроена скейл векторизация, я очень рекомендую ознакомиться.
185: Либо с арм све, либо с риска векторизацией и очень много процессоров. Собственно, это главный селлинг поинт риск вайв. И это главный селлинг поинт открытой архитектуры, потому что
186: Представьте себе, что вы что-то хотите, чтобы что-то добавили в арм.
187: Удачи. А если вы хотите, чтобы что-то добавили в риск файв, скорее всего какой-нибудь китаец уже добавил.
188: И вот это гигантское дайверсити, когда у вас открытый исходный код сопровождает вас от самого низа до самого финального, до самого финального опенсорс софт типа вот там хром.
189: Запустили. Это погружает вас в мир разработки открытого программного обеспечения и мир разработки открытого программного обеспечения и открытого аппаратного обеспечения. Это тот мир, в котором, когда вы работаете
190: Весь мир работает с вами, я очень призываю вас по QR-коду, можно скачать презентацию, покликать там по ссылкам по QR-коду, можно оставить отзыв для нас это тоже.
191: Важно, соответственно, а на этом у нас все, и мы с Настей готовы ответить на ваши вопросы. Всем спасибо.
192: Давай, да, можете называть номера слайдов. Можете просто задавать вопросы. Анастасия, спасибо большое за доклад. Очень было интересно послушать. У меня такие вопросы. Вот вы рассказывали про тестовый генератор инструкций. Я так понимаю, что это только генератор. То есть предполагается
193: Что это будет частью какого-то теста, правильно? Потому что, да, ну, генератор обычно входные данные генерирует, а для полноценного теста нужно, как минимум, там тестовый оракул, да, который будет проверять, что действительно поведение чего-то там правильно и так далее. Совершенно с вами согла.
194: Согласен. Речь идёт про инстракшн секвенс дженерейтор, и именно поэтому я показывал, что для него тут, к сожалению, очень медленно крутит, очень медленно крутит кликер. Но вот она. Стоп, вот что. Для него нужна обвязка.
195: И вот здесь все, что выделено синим, это то, что вы пишите сами, потому что я верю в узкоспециализированное программное обеспечение, сгенерировать хорошую последовательность инструкций.
196: Особенно если там должны встречаться бранчи, особенно если там должна встречаться память, и вы можете конфигурировать, в какие адреса она бьёт, в какие не бьёт. Особенно если там могут быть векторные инструкции и так далее. А снипи все это умеет. Это само по себе очень
197: Сложная задача. И мы старались сделать генератор так, чтобы он легко втыкался в любую обвязку. Например, я специально оставил слайд на вопросы. Генератор генерирует вам эльф с сниппетом, инструкцией. Ну, с последовательность.
198: Но кроме этого, он выплёвывает вам Линкер скрипт, потому что если у вас там была схема памяти, то эта память не должна поехать, когда вы линкуетесь. И то есть мы очень старались, чтобы он хорошо интегрировался, но
199: Да, все его пользователи пишут свой собственный тест раннер сами и включают его в свой собственный тестбенч, потому что это как раз то, что делают люди, занимающиеся верификацией.
200: Понятно. А, наверное, вот эти инструкции содержат какие-то циклы, да, проблему зацикливания вы как-то решали, да, это очень у меня есть доклад про сниппи, я призываю вас его нагуглить и послушать, я там это все рассказываю в деталях, но если кратко, у нас
201: Нас резервируется регистр под счётчик цикла. И когда, значит, цикл идёт, мы бронируем этот регистр, чтобы внутри цикла и внутри всего, что вызывается из этого цикла, этот регистр больше не использовался. Вот.
202: И в некоторых случаях из этого регистра мы разрешаем потом даже читать, а в некоторых случаях мы разрешаем его даже переиспользовать, если вы задали генератору место на стеке, куда мы можем эту штуку заспивать? У нас же
203: Компиляторная инфраструктура, компиляторы все это умеют, значит наш генератор умеет, причём почти
204: Это тоже бесплатно.
205: Понятно. Спасибо. Вот вы этот генератор инструкций используете же, наверное, для верификации именно своих процессоров или симуляторов процессор?
206: Компиляторная инфраструктура, компиляторы все это умеют. Значит, наш генератор это тоже умеет, причём почти бесплатно. Понятно. Спасибо. Вот вы этот генератор инструкций используете же, наверное, для верификации именно своих процессоров или симуляторов процессор.
207: Правильно. То есть только не только для проверки тулчейна, вот для тогда верификации процессора, как вы измеряете полноту тестирования и какой у вас тестовый оракул, собственно, для того, чтобы
208: Мы его для этого и написали, так?
209: Это.
210: Правильно, мы его для этого и написали так, то есть только не только для проверки тулчейна, вот для тогда верификации процессора, как вы измеряете полноту тестирования и какой у вас тестовый оракул, собственно, для того, чтобы это
211: Верификаторы делают, я не рассказал бы, даже если бы знал. Скорее всего, это секрет. Вот. Но я, к счастью, даже и не вдаюсь в такие детали. Ну и ладно, спасибо. Но у меня есть ещё 1 вопрос. Помните вот эту старую историю?
212: Когда в девяностых годах интел выпустил партию процессоров пентиум, там был баг в процессоре, связанный с инструкцией деления, вот и intl отзывал вот эту, ну, частично всю партию пентиум.
213: Да, это были колоссальные какие-то расходы на это, и после этого случая интел начала внедрять формальную верификацию при проектировании процессоров. Вопрос используете ли вы формальную верификацию при дизайне, при проектировании процессор?
214: Очень люблю формальную верификацию, но это очень большой вопрос. Очень, очень сложный. Я скажу кратко, в использовании формальной верификации есть Ровно 1 нюанс, который я тут подсвечивал.
215: В этом зале 2 доклада назад, когда тут рассказывал уважаемый докладчик про smt солвера, вы запускаете эту штуку, которая доказывает вам, что чего-то никогда не произойдёт, а потом вы не знаете, вот вы ждёте, например.
216: 30 часов контрол ц нажимать или подождать ещё часок. То есть вот она когда-нибудь закончится, а мы ограниченно используем формальную верификацию, например, формальную верификацию в некотором смысле.
217: В некоторых особенностях символьного исполнения через так называемую систему кли можно использовать для того, чтобы по модели подбирать оптимальные, интересные входные данные для верификации флотинг поит инструкций. Вот.
218: И тогда вы можете потом это загрузить в генератор, чтобы генератор каждый раз при каждой следующей инструкции выставлял ей данные из базы данных. У нас есть даже такой, даже такой коммит сейчас на ревью в снипе, который
219: Включает эту самую базу данных. Делали, кстати, шко, студенты из спбгу. Вот. И это очень интересное направление, понимаете? Но оно очень такое сложное. Формальная верификация маленького уз.
220: Это окей. Формальная верификация чего-либо большого. Это непредсказуемо тяжело, это нп хард.
221: Ну когда вы говорили про контрол ц, наверное вы имели ввиду что model checking, да и основная проблема модел чекинга в том, что происходит взрыв состояния, когда слишком много состояний надо смоделировать и эта модель может выполняться ну практически бесконечно долго. Есть ещё варианты с дедуктивной верификацией, когда в
222: Разрабатываете формальную модель, исполняемую и тестируете уже против неё и, соответственно, сравниваете вашу модель процессора, да, и формальную модель, которую вы сделали исполнимой с помощью дедуктивной верификации. Такие подходы у вас не используютс.
223: Ну, скажем так, я, я не участвовал, если они используются. Вот, но это очень интересная для меня тема. Я постоянно в неё копаю, потому что сниппи решает прямую задачу. То есть есть прямая задача, мы просто генерируем побольше.
224: И смотрим, что реально случилось. А есть обратная задача. Мы задаёмся ситуацией и доказываем, что она никогда не случится. Вот, вот генератор сниппи решает прямую задачу. Я очень хочу когда-нибудь написать что-нибудь, чтобы решало обратную и постоянно над этим
225: Думаю, но готового решения, конечно, пока у меня это верно, с этим я абсолютно согласен.
226: Нет, понятно. Больше.
227: Просто вы говорите, что формальная верификация это очень сложно. А с другой стороны, все мы знаем, что тестирование может показать присутствие багов, но не их отсутствие. Вот формальная верификация, она как бы гарантий даёт.
228: Думаю, но готового решения, конечно, пока у меня нет. Понятно. Просто вы говорите, что формальная верификация это очень сложно. А с другой стороны, все мы знаем, что тестирование может показать присутствие багов, но не их отсутствие. Вот формальная верификация, она как бы больше гарантий даёт. Это верно, с этим я абсолютно согласен.
229: Проблема в том, что там очень много стейтментов, может понадобиться очень долго ждать. Спасибо вам большое.
230: Там есть у того микрофон, может, по очереди? Да, здравствуйте. Вы в начале своего выступления сказали интересную мысль, что риск 5 это как линукс, да, в операционках оперсорс, вот эта мейнстрим вся история. И я хотел бы
231: Подсветить тут риски определённые, да, то, что вот с links идейшн произошёл неприятный инцидент, когда вот эта культура отмены определённая, да, российских разработчиков зацепила, убирали маинтейнеров, перестали принимать Пачи как минимум более менее легко да, мцст, наверное, неплохо стра.
232: От этой истории в компиляторные истории. Вот подскажите, пожалуйста, как у вас обстоит с этим дело? Какие риски вы здесь видите и что будет, если риск стрельнёт и вас отрежут от абстрима? Ну, в плане, вы не сможете, абстрим.
233: Ть стрельнул. Почему? Почему? Если
234: От этой истории в компиляторные истории. Вот подскажите, пожалуйста, как у вас обстоит с этим дело? Какие риски вы здесь видите и что будет, если риск стрельнёт и вас отрежут от абстрима? Ну, в плане, вы не сможете. Абстрим ть стрельнул. Почему? Почему, если
235: Стрельнул син такор исключили из риск файф альянса именно по политическим причинам, вот, и что и ничего не изменилось. Спецификацией то пользоваться никто не запретит. То есть у нас ограничены возможности влиять на международную спецификацию.
236: Но мы все ещё можем развивать эту спецификацию внутри российского альянса ну представьте, вот всех забанили в линуксе и все перешли на astro линукс, да ну условно, да, вот и все ещё можно развивать спецификацию внутри росси.
237: Alianza и главное, все ещё можно пользоваться всеми наработками, которые весь мир продолжает делать в риск файв. Мы не пришли в состояние
238: Ну, вы пришли в состояние форка, получается, и насколько дорого, да, вот это нет, форка, вы свои никакие дополнительные вещи мы делаем.
239: Alianza и главное, все ещё можно пользоваться всеми наработками, которые весь мир продолжает делать в риск. Файв. Ну вы пришли в состояние форка, получается и насколько дорого. Да, вот это нет, мы не пришли в состояние форка, вы свои никакие дополнительные вещи мы делаем
240: Свои расширения, но очень многие вендоры, которых нигде не забанили, тоже делают свои расширения. Каждый имеет право делать своё расширение просто в комитет его не отнести все. А как тогда синхронизируется?
241: История, что в элме, например, появились фичи для тех расширений, а для ваших не появятся. Ну, то есть вам нужно это же тянуть.
242: Все, а вот у нас есть синтак девелопмент тулкит, который я показывал на слайдах и который является как раз главной штукой.
243: История, что в элме, например, появились фичи для тех расширений, а для ваших не появятся. Ну то есть вам нужно это же тянуть все. А вот у нас есть синтак, девелопмент тулкит, который я показывал на слайдах и который является как раз главной штукой.
244: Который мы с Настей, мы с Настей работаем, в основном лем не появится, а вот здесь появится. И если у вас синтаколл, вы можете его скачать и использовать
245: Спасибо.
246: Добрый день. Спасибо большое за доклад. Мне вот повезло поработать с 1 из ваших ядер с стр. 1 в рамках исследований, и у меня будет, возможно, немножко наивный вопрос.
247: Насколько реально на уровне такого вот дизайна программного ядра проектировать безопасность этого ядра или внедрять какие-то проверки безопасности на уровне?
248: Верификации этого ядра.
249: Насти, ты не хочешь ответить?
250: Да, собственно, можно кликер. Я, да, отлистаю 1 из ядер, о которых шла речь, собственно, сейчас вот.
251: Верификации этого ядра, Насти, ты не хочешь ответить? Да, собственно, можно кликер. Я, да, отлистаю 1 из ядер, о которых шла речь. Собственно, сейчас вот.
252: Предыдущая. В целом, здесь достаточно, ну, есть открытые опенсорсные ядра, которые именно делают упор на безопасности из перечисленных, наверное, вот это вот самое безопасное, но это можно посмотреть. То есть
253: Есть и примеры, есть и большие примеры классные в открытом сообществе, и прям в документации прописано, что конкретно вот здесь вот упор там на безопасность от таких-то вещей. И, в общем, да, это реально, это
254: Есть, и это развивается.
255: Спасибо.
256: Давайте успеем ещё 2 и будем потихонечку переходить к следующей части.
257: Спасибо большое за доклад. У меня вопрос. По ответу на 1 из предыдущих вопросов. Была заявлена фраза, что используется клей как движок символьного анализа для поиска подходящих параметров и использования его в купе с, условно говоря, вместе вместо
258: Верификации формальной возникает закономерный вопрос каким образом происходит определение того, что кли имеет смысл выполнять на каком-то конкретном Куске кода, ну, на каких-то конкретных инструкциях, то есть каким образом происходит понимание того, что именно
259: Этот набор инструкций и есть смысл запустить на cli и он за адекватное время завершится, в каких случаях нет ну очень просто мы запускаем на весь эф экстенжен и весь д экстенжен, и мы используем не cli мы используем кли эф.
260: А, да, это доработки как раз спбгу ные. Вот у меня студент будет по этому поводу защищать диплом довольно скоро. Ну, собственно, вот сейчас летом, вот очень просто мы берём по 1 инструкции, дальше мы берём стандартную модель.
261: И по этой модели ищем.
262: А какие инструкции, если не секрет, все, все. Вот. Причём я могу анекдот рассказать на эту тему взял, значит, студент этот полный набор инструкций для фэда параметры искал 1 секунду для фма.
263: 1 секунду для fuse мультиплай эт полтора дня мы чуть на контрол ц не нажали.
264: Да, о том и речь. Спасибо большое.
265: 1 секунду для fuse мультиплай эт полтора дня мы чуть на контрол ц не нажали. Да, о том и речь. Спасибо большое.
266: Добрый вечер. Спасибо за доклад. У меня 2 вопроса имеется. 1 такой. Подходите ли вы в разработке своих ядер к защите от таких атак, как по питанию а channel анализис и, соответственно, felt инжекшен.
267: Гличи по клоку, по питанию.
268: Соответственно, это вопросы к физ дизайну, как я понимаю, потому что side инжекшен по питанию, это даже не логический дизайн, это вот как у вас между дорожками тепло распределяется, да?
269: Пониже, но есть же воздействие на сам.
270: Соответственно, это вопросы к физ дизайну, как я понимаю, потому что side инжекшен по питанию, это даже не логический дизайн, это вот как у вас между дорожками тепло распределяется, да, пониже, но есть же воздействие на сам
271: Конвейер, например, воздействие на сам конвейер, например, может производиться конвейер, да?
272: Ещё раз на some чего? На сам конвейер. Я ещё раз. Скорее всего, вы будете наблюдать это воздействие на уровне физ дизайна.
273: Конвейер, например, ещё раз воздействие на сам конвейер, например, может производиться на some чего конвейер, на сам конвейер, да я ещё раз. Скорее всего, вы будете наблюдать это воздействие на уровне физ дизайна.
274: Я туда не лазил, я начинаю с логического дизайна, вот логический дизайн, я более менее понимаю, вот эти все, когда там тепло шумит и из этого делают какие-то выводы, это для меня. Вот, если честно, вау, но я точно знаю, что в компании есть люди, которые в
275: Этом отлично разбираются. Этих людей много. Они просто не здесь и там нет. Почему они не здесь? Потому что там нет ничего опенсорсного. То есть опенсорс на логическом дизайне заканчивается там дальше, дальше начинаются какие-то такие
276: Мрачные тайны, но да, что-то есть кто-то думает, просто это не
277: Я. Угу. Понял. Спасибо. И 2 вопрос у вас в презентации фигурировала, да, и у многих уже на слуху у вас был коллапс с микроном, когда выпустили амур миг 32.
278: Мрачные тайны, но, да, что-то есть, кто-то думает, просто это не я. Угу. Понял. Спасибо. И 2 вопрос у вас в презентации фигурировала, да, и у многих уже на слуху у вас был коллапс с микроном, когда выпустили амур миг 32.
279: И такой вопрос скорее на будущее. Планируете ли вы заколлабить я там, с ними же, с миландром или ещё с кем-то из наших производителей ещё раз, но чуть глубже копнуть в историю айота и
280: Как известно, буква с в йоте отвечает за безопасность и там скорее обратить внимание на то, чтобы предусмотреть какие-то механизмы безопасности, связанные с обновлениями прошивки на аппаратном уровне.
281: То есть чтобы эту проблему не soft решал, а почему в зале никто не засмеялся отличная же шутка, что в iot буква s означает безопасность, её там нет.
282: Смотрите, насчёт коллабов, как я говорил, скр 1 является опенсорсным ядром, производитель может просто его скачать, ему не надо его даже у нас покупать, он его скачивает с гитхаба.
283: И делает, что хочет в данном случае да, сделали клёвый микроконтроллер амур. И, кстати, Настя не сказала, но микроконтроллер амур напечатан в России на заводе микрон.
284: Вот, вот этот, да? Вот, соответственно, могут ли сделать что-то ещё для интернета вещей с упором на безопасность? Да, конечно, могут, вы можете, ну, типа, ну,
285: Тут вопрос скорее не такой абстрактный могут ли или нет как бы возможности.
286: Вот, вот этот, да, вот, соответственно, могут ли сделать что-то ещё для интернета вещей с упором на безопасность? Да, конечно, могут. Вы можете, ну, типа, ну тут вопрос скорее не такой абстрактный. Могут ли или нет, как бы возможности
287: Присутствует всегда скорее чуть более про конкретику. Есть ли в планах что-то подобное?
288: Ну, скажем так, если бы у нас, даже если бы я даже знал про такие планы, я бы не имел права их разглашать публично, да, это была бы что-то вроде коммерческой.
289: Присутствует всегда скорее чуть более про конкретику. Есть ли в планах что-то подобное? Ну, скажем так, если бы у нас, даже если бы я даже знал про такие планы, я бы не имел права их разглашать публично, да, это была бы что-то вроде коммерческой.
290: Опять-таки, к счастью, я руковожу компилятором и pro планы продуктового развития, не знаю, вам нужно где-нибудь там, на стенде, может быть, найти кого-нибудь из наших маркетологов. Вот. Ну, к сожалению, здесь нет стенда синтак на какой-нибудь другой конференции, гд.
291: Есть stand.
292: Спасибо.
293: Благодарим всем за вопросы, Настя, Костя, пришло время выбирать того, кому достанется подарок от конференции. Книга от издательства Питер, какой из вопросов вам понрави.
294: Есть stand спасибо благодарим всем за вопросы, Настя Костя, пришло время выбирать того, кому достанется подарок от конференции книга от издательства Питер, какой из вопросов вам понрави.
295: Больше всего.
296: Я дам.
297: Давайте сделаем ребятам чуть проще. Друзья, которые задавали вопросы. Поднимите, пожалуйста, ваши руки.
298: Я дам, давайте сделаем ребятам чуть проще друзья, которые задавали вопросы. Поднимите, пожалуйста, ваши руки.
299: Настя, какой вопрос больше всего понравился?
300: У вас есть руки помощи? Я думаю, что вопрос про сниппи. Давайте на нём сегодня остановимся. Приходите к нам. Мы, наши помощники, вручат вам прекрасную книгу от издательства.
301: Настя, какой вопрос больше всего понравился? У вас есть руки помощи? Я думаю, что вопрос про сниппи. Давайте на нём сегодня остановимся. Приходите к нам, мы, наши помощники, вручат вам прекрасную книгу от издательства.
302: Питер, книг с кабанчиком мало не бывает. Давайте поаплодируем ребятам в 1 очередь. Спасибо большое за ваш интереснейший доклад. Это было невероятно. И на этом 1 день конференции подходит к концу всем.
303: Большое спасибо. Ждём вас завтра в онлайне и на площадке. Всем пока.