10 января 2006 года Стив Джобс представил первый MacBook Pro на выставке Macworld в Сан-Франциско. Это был первый ноутбук Apple на базе процессора Intel. В честь этого события в компании провели ребрендинг. Ранее ноутбуки Apple для профессионалов назывались PowerBook и работали на чипах PowerPC. Первый MacBook Pro был представлен только с экраном 15 дюймов. Базовая конфигурация стоила $1999 и оснащалась процессором Intel Core Duo 1,67 ГГц, 512 МБ ОЗУ DDR2 с частотой 667 МГц и жёстким диском на 80 ГБ. Запись презентации первого MacBook Pro 2006 года.

Процессоры
Изучаем мозги вычислительных устройств
Вот на чём я хочу электронную книгу. А не на этих ваших ведроидах. Ну да, какодемонов на ней не погоняешь — скорость рефреша не та, да ещё с учётом необходимой софтовой прокладки для эмуляции VGA на еинке…
Но, тем не менее.
Натуральный DOS, весь зоопарк ретро-софта (и современного софта от любителей ретро-программирования).
Один ватт потребления, плюс пятый «Нортон» легко позволяет отправлять в спячку камень при помощи кастомного скринсейвера.
VGA 640×480×16 достаточно для небольшого экрана (типа моей, и не только моей, любимой PB360+, хотя у этой пятидюймовки был, в общем-то, 800×600, но и 640×480 вполне ОК). В крайнем случае можно заморочиться с VBE, это даже не такой уж и адок на фоне эмуляции регистров VGA.
CF в качестве «харда». Да, толстый, но в ебук-то явно влезает без проблем.
Сугубо гиковская возможность распаять любые разъёмы соответствующей эпохи по желанию, превратив её в любой желаемый контроллер-с-экранчиком. Были бы на краю платы площадки оставлены. Хоть дисководный (стримеры, ага; ну или какой-нибудь девайс с шаговыми моторами, которые типично цепляются к ардуинкам).
А ещё можно «дайте две» и сделать раскладушку с двумя страничками, соединив их в локалку :) И к зоопарку древних пошаговых игр добавятся ещё те, в которые можно поиграть по COM-порту :) Да-да, локалка из двух ретро-ПК в кармане, а ещё она по совместительству книжка с двумя страничками (для 5" самое оно).
Насчёт стоковых устройств ввода — видимо, четыре клавиши ↑↓←→, пробел, Enter, Esc, тачпад и две кнопки мыши к нему. USB там есть — дома для конфигурирования можно воткнуть клавомышь. Раз VGA всё равно эмулировать — поверх него можно сделать вызываемую отдельной кнопкой экранную клавиатуру. Тут, однако, надо заметить, что «тачпад поверх экрана» не есть тачскрин: DOS-софт «таких словей не знает» и перемещение пальца по экрану приводит к перемещению стрелки курсора совсем в другом месте (кто под UTM SE играл, тот знает). То есть оно механически тачскрин, но по факту — тачпад поверх экрана. И да, это часто удобнее, чем «настоящий» тачскрин — палец не закрывает курсор %) Но если делать именно так, разместив тачпад прямо на экране — то как раз для экранной клавиатуры он сможет выступать в роли тачскрина, эмулятор VGA ведь мы сами пишем и он-то прекрасно понимает, с чем работает и где там расположены изображения кнопок (а заодно и пространство вывода деликатно ужмётся в два раза, чтобы экранная клавиатура не закрывала экран).
Насчёт нестоковых устройств ввода — порог вхождения в кастомизацию пека нулевой. Любой гик умеет в пека эпохи дос. Будут и клавиатуры Лапера, и кастомные «под любимую игру» на всю заднюю стенку, чтобы на ощупь 8 пальцами кнопки давить, и что угодно будет.
Но в первую очередь это читалка — искаропки фридос и в автоэкзеке прописан reader.exe. Ремонтопригодная, на базе неубиваемой SoC промышленного класса, по мере износа любая флэшка меняется, жрёт мало, размеры «жилетные», короче, та 360-я, которой всем нам так не хватает, но «на стероидах».
Вот так вот, хотел по-быстрому в два абзаца, а хватило бы на небольшую статью, если проиллюстрировать каждый тезис (а без иллюстраций небось опять вышло не сильно понятнее, чем тасманские дьяволы в мультиках изъясняются).
Короче, символов осталось меньше 1К, так что заканчиваю: если кто-то из релоцировавшихся задумывается о том, чтобы взять да выкатить на рынок что-нибудь типично-стартаперное, подумайте об этом. Сайт производителей жив, наверное, что-то для кого-то ещё клепают понемногу. Даже если по нормальной цене можно только партию в 100К заказать — 100К книжек не так уж и много. Главное, чтобы ценник в итоге вышел «как хорошая книжка» (не думайте, что это прямо так уж мало).
Записал видео (на английском языке) своей критики выдачи ИИ тула от Абишека Вармы из университета штата Иллинойс. Тул генерит SVA (SystemVerilog Assertions) для верификации (по простонародному - QA) цифровых аппаратных блоков систем на кристалле. Для повышения понятности, в начале видео рассказал основные идеи протокола AXI (Advanced eXtensible Interface): правила хендшейка valid/ready, конвейерность транзакций, внеочередной возврат данных по запросу чтения с тэгами.
Код, который я попросил Абишека скормить тулу для ревью.
Кратко что получилось:
Правила для проверок оно пишет некорректные. Например что если записать по адресу 100 число 123, то отныне и вовеки веков если прочитать с адреса 100, то там будет 123. Не задумывается, то после первой записи и до чтения может быть вторая, которая запишет число 456.
Далее, проверка для теста проверяет что после сброса (reset) данные на шине AXI будут равны X в виде data == 'x. Но это ерунда по двум причинам: Во-первых, данные могут быть после сброса какими угодно, хоть 0, хоть 123, так как они будуг игнорироваться если с ними не ходит бит valid=1, который кстати сбрасывается в 0. Во вторых, операция сравнения == 'x (неопределенным значением) дает в качестве результата 'x. Чтобы делать именно сравнение с 'x нужно использовать другую операцию ===, то это все равно не будет работать потому что (1). Это вообще невалидный тест.
Но это все цветочки - на это его можно натаскать. Более интересный вид тупости - ИИ конструирует проверку, что если сделаны запросы с тэгами 11, 3, 4, 7, то и данные будут возвращаться в таком же порядке - с тэгами 11, 3, 4, 7. Ему не приходит в голову задать себе вопрос - если бы это было так, зачем в AXI вообще были бы нужны тэги? Они ведь нужны чтобы идентифицировать данные которые приходят не в том порядке, скажем 4, 11, 3, 7.
Итд.
Представлен проект онлайн-браузера микрокода 8086. Каждая 21-битная микроинструкция декодируется в читаемые поля. Наведите курсор на любое поле, и вы увидите подсказку с объяснением его назначения. Все цели перехода кликабельны — микрокод 8086 использует удивительное количество косвенных переходов, вызовов и коротких ветвлений.

FFTW на Zynq: почему потребление почти не меняется?
В продолжение к прошлому посту FFTW vs Ne10 на ARM Cortex-A9 решил измерить насколько вырастет энергопотребление, если запустить бенчмарк FFTW на PS-части Zynq 7020 - получил около 0,27 Вт для всех длин FFT. Мощность считал по току с лабораторного источника питания.
По результата замеров построил графики производительности FFTW сразу в трёх метриках.

MFLOPS/время выполнения - показывает, насколько быстро выполняется бенчмарк при фиксированном железе и частоте;
MFLOPS/МГц - позволяет сравнивать, насколько хорошо алгоритм/библиотека использует каждый мегагерц CPU;
MFLOPS/Вт - показывает, сколько полезных операций вы получаете с одного ватта мощности.
Я ожидал увидеть зависимость потребления от длины FFT, но для расчета электропитания и теплового бюджета удобнее использовать константу 0,27 Вт. Но все же интересно, почему потребление стабильно держится на уровне 0,27 Вт независимо от размера FFT? Какие архитектурные особенности влияют на это сильнее всего? Делитесь своими мыслями в комментариях!
А в моём Telegram-канале DSP_labs вас ждут полные бенчмарки, скрипты и ещё больше примеров оптимизации DSP на embedded.
Короткий метр «ТЕХПРОЦЕСС» о производстве железа вышел на всех наших каналах
В этом получасовом фильме показываем то, чем гордимся и дорожим. Собственное производство полного цикла, где делаем компьютеры, серверы, ноутбуки, материнские платы и многое другое. Линии поверхностного монтажа, отдел технического контроля, сборочный цех.
А еще рассказываем о всех, ну или почти всех, наших технологических секретах.
Присоединяйтесь к экскурсии по заводу «Инферит» вместе с нашим главным технологом Кириллом Пушкиным — и увидьте весь процесс создания технологий своими глазами.
Вперед, смотреть ролик на YouTube, RUTUBE и VK Видео. И обязательно подпишитесь, чтобы не пропустить новые видео. Будем стараться делать интересно.
Волновая обработка информации

Современная вычислительная техника основана на бинарном переключении транзисторов. Это парадигма, которая доминирует уже более полувека. Но что, если мы сможем реализовать логические операции, используя не электронику, а саму форму пространства?
Обработка информации здесь реализуется через управление траекториями, интерференцией и фокусировкой волн внутри специально сконструированных геометрических поверхностях с переменой отрицательной кривизной различных видов и типов.
В этой архитектуре форма псевдоповерхности становится логическим оператором. Она определяет, как волна поведет себя в зависимости от входного возбуждения. Это полностью пассивная и многофункциональная логика.
Принцип работы
Вычисления происходят за счет принципов Геометрической Волновой Инженерии (ГВИ), где геометрия управляет волной без использования активных компонентов:
Программируемая траектория. Определённые типы псевдоповерхностей перестраивают волновой фронт согласно заданным условиям.
Логическое условие. При определенной комбинации входных волн возбуждается заданная зона (резонанс, прохождение, выброс) — это сигнал "логическая единица".
Логический ноль. Если условия не выполнены, волна гасится, рассеивается или блокируется другой волной (деструктивная интерференция) — это сигнал "логический ноль".
Результат вычисления выражается в выходной амплитуде, наличии сигнала или его пространственном положении.
Механизмы управления волнами
Ключевые механизмы, позволяющие геометрии выполнять роль вычислителя:
Фокусная чувствительность: Геометрия действует как условный оператор: "Если фазовые условия выполнены, то фокус возникает".
Угловая избирательность: Разные углы ввода волны активируют разные геодезические траектории на поверхности, реализуя переключение логических путей.
Интерференционные окна: Наложение волн в промежуточных зонах задает условия взаимодействия.
Закрытые/открытые геоканалы: Геометрия может динамически запирать или открывать траектории волн, реализуя переключение без активной электроники.
Преимущества волновой логики
Параллельная обработка – множество операций происходит одновременно в разных зонах, в отличие от имитации на многоядерных процессорах.
Нет потребления энергии на переключение. Волны, не соответствующие условиям, просто рассеиваются, а не тратят энергию на резисторы.
Естественное использование суперпозиции и интерференции как основ кодирования информации. Квантовый потенциал.
Низкая чувствительность к шуму, так как интерференционная логика устойчива за счет пространственного выделения сигнала.
Идеально подходит для работы в условиях радиации, высоких температур или агрессивной среды, где электроника неприменима.
Реализации и перспективы
Волновая логика открывает путь к нетрадиционным формам вычислений:
Геометрические Чипы с микроформами псевдофокальной архитектуры.
Метаповерхности со встроенными фазовыми каналами для работы в ТГц и ИК-диапазонах.
Акустические логические оболочки, встраиваемые в сам материал (например, для робототехники).
Читает ли кто-нибудь в современном мире диссертации или это считаетеся какой-то фигней чтобы поставить галочку? Вспомним что вся цифровая электроника, все айфоны, интернет-роутеры и ИИ-ускорители - построены на двух диссертациях: 1) магистерской диссертации Клода Шеннона, который в 1937 году повысил уровень абстракции проектировщиков с переключателей (на основе реле и ламп) до булевской логики и/или/не и 2) диссертации 1954 года Дэвида Хаффмана в MIT, который обобщил более ранние потуги и сформулировал модель Хоффмана для последовательностной логики: комбинационное облако вычисляет следующие значения элементов состояния (сейчас это в 99+% случаев D-триггеры), которые записываются по фронту тактового сигнала.
У истории были альтернативные ветки (например электроника могла бы строится на C-элементах Мюллера), но в нашей параллельной вселенной они не прижились.

Товарищи студенты из проживающих в США! Кто хочет отправиться на летнюю практику и/или программу для выпускников вузов в техасском отделении Самсунга? Вы можете сходить на сайт и подать заявку напрямую (ссылка 1, ссылка 2). Альтернативно, я могу сделать для вас внутреннюю рекомендацию, так как я член команды разработки GPU в телефонах. Но так как я стараюсь рекомендовать компании только кандидатов, в качестве которых (по своим критериям) я уверен, я предлагаю всем желающим сделать одно из двух вещей:
Решить задачку под названием SystemVerilog Microarchitecture Challenge for AI No.2. Adding the Flow Control. , далее получить от меня разбор вашего решения, после чего решить еще три маленькие задачки в зуме передо мною, и у вас будет рекомендация.
Если вы живете в Области Сан-Францисского Залива или в Сакраменто, то сделать какой-нибудь проект на FPGA платах в рамках разработки open-source примеров для non-profit клуба Verilog Meetup (не аффилиированного с Самсунгом, это просто малочисленная тусовка, куда заходят люди из Теслы, Intel, Apple итд). Наш клуб будет на выставке самоделкиных Maker Faire в Valejo 26-28 сентября. Вы можете подойти ко мне на стенде и мы обсудим ваш проект.
После того, как вы сделаете или (1) или (2), я занесу ваше резюме во внутреннюю базу данных, вам придет письмо с предложением подать заявку, после чего, если ваше резюме выберут, вам нужно будет пройти весь официальный процесс рекрутинга.
Повышает ли моя рекомендация ваши шансы? Этого я не знаю. Как говорил Остап Бендер, полную гарантию вам может дать только страховой полис.
Пишите мне на yuri@panchul.com если вас интересует такое предложение.
Спасибо,
Юрий Панчул

FFTW vs Ne10 на ARM Cortex-A9: кому отдать БПФ в embedded?
Недавно в одном проекте по спектральному анализу ЛЧМ-сигналов на моей AD/DA плате я столкнулся с тем, что FFTW на Cortex-A9 в Zynq рисует задержку в сотни микросекунд — критично для реального времени. Решил проверить лёгкую библиотеку Ne10: оказалось, что на средних размерах БПФ (128–512) Ne10 даёт до +10% производительности (905 MFLOPS против 817 MFLOPS у FFTW) благодаря оптимизациям под NEON.

Однако Ne10 выигрывает не во всём: для очень малых (≤ 64) и произвольных больших размеров FFTW остаётся лидером за счёт агрессивного планирования, double-точности и возможности сохранять «wisdom»-планы. Выбор между ними зависит от сценария: если нужна быстрая интеграция и фиксированные степени двойки — Ne10, а для универсального решения с поддержкой любых N и многопоточности — FFTW.
Более подробное описание соберу в статью. А какой библиотекой пользуетесь вы и какие удивительные кейсы встречали? Делитесь в комментариях, а в моём Telegram-канале DSP_labs вас ждут полные бенчмарки, скрипты и ещё больше примеров оптимизации DSP на embedded.
Аркадный автомат на RISC-V: сбиваем астероиды с микроконтроллером MIK32 АМУР

Вадим Новиков решил реализовать игровую физику в условиях bare metal, используя свой предыдущий опыт на C++/SFML. В проекте использовалась плата Elbear Ace-Uno на базе микроконтроллера MIK32 АМУР, SPI OLED-дисплей SSD1306 разрешением 128×64 и джойстик HW-504 (KY-023), а также модули SPI (цифровой интерфейс передачи данных), аналого-цифровой преобразователь для калибровки и чтения положения джойстика и GPIO для вывода настройки и ввода состояния кнопки.
Код на C включал непрозрачные типы, которые позволяют реализовать подобие инкапсуляции из ООП. С ними можно объявить в заголовочном файле указатель на некую структуру, но не определять ее. А в единственной трансляции определить структуру и статические функции для взаимодействия с внутренними полями, которые недоступны извне. И поместить туда, соответственно, реализацию открытого интерфейса. Вместо использования регистров напрямую Вадим подключил библиотеку hardware abstraction layer (HAL), чтобы впоследствии было проще портировать проект на STM32 и другие микроконтроллеры.
Результатом работы стала Asteroids — реинкарнация классической игры эпохи аркадных автоматов. Корабль игрока непрерывно выпускает снаряды. После столкновений снаряда с астероидом исчезают оба объекта, при столкновении с кораблем — только астероид. Астероиды, вышедшие за нижнюю границу, возвращаются сверху экрана. Корабль же выйти за границы экрана не может.
Это лишь один из интереснейших проектов, реализованных студентами по итогам последнего потока курса YADRO по программированию микроконтроллеров на RISC-V. Интересно узнать о других проектах? Мы уже рассказали о них в статье.
Уже в четвертый раз встречаю следующий психотип. Человек окончил университет в Канаде, где в программе были в том числе лабы по FPGA. Прилетел в Калифорнию чтобы говорить и тусоваться с людьми. С вопросом: "какие есть проблемы в дизайне электроники чтобы решить их с помощью AI?"
Для меня из его реакций на некоторые мои утверждения ясно как божий день, что у него нет достаточного трейнинга в проектировании чтобы видеть эти проблемы самому. Поэтому я ему предложил всю ту же задачку на SystemVerilog (1, 2), которую я в этом году даю всем и в которой как в микрокосме представлены проблемы дизайна электроники, по крайней мере в микроархитектурной части и в контексте проекта в большой компании с использованием кода и тестового стенда других людей. Типа "решишь - поймешь в чем проблема".
Вместо того, чтобы по моим рекомендациям решить задачку и понять о чем я говорю - человек продолжает тусоваться и задавать людям вопросы на основе информации которую он услышал у других людей. Например спросил меня, хожу ли я на выставки DAC, где все говорят что тулы (средства проектирования) ограничивают сложность дизайнов. Я ответил что хожу на эту выставку с 1996 года, и тогда тоже все так говорили. Спросил у меня, слышал ли я о Chisel. Ответил "его используют только SiFive и Беркли. То что Chisel за 10 лет не проник в другие компании - означает что он ничего принципиально не решает". Итд.
Я не понимаю - что человек пытается достичь тусованием и такими вопросами? Какая часть фразы "пока вы сами не попробуете решать микроархитектурные задачи на верилоге, вы не будете понимать что вам говорят люди о проблемах такой разработки" - какая часть этой фразы ему непонятна?
Единственная гипотеза которая приходит мне в голову - человек пытается с помощью тусования найти технических людей, которых потом перепродать VC, то есть возглавить стартап и получить под них инвестии от венчурных капиталистов. Проблема с такой идеей: для технического человека ясно-понятно, что кроме тусования у этого джентльмена ничего значимого нет, то есть такой скрипач не нужен. С таким же успехом технический человек может сам пойти к VC.
Причем это еще лучше чем технический человек понимают сами VC - они сразу идентифицируют и стараются выкинуть из сделки такого рода бессмысленных посредников.
Но возможно я усложняю и человек тусованием просто решает какие-то психологические проблемы или это для него что-то типа путешествий которые любит молодежь.
AMD заботится о будущем, выпуская продукты для платформ из прошлого
Компания AMD выпустила процессор Ryzen 5 5500X3D с разъёмом AM4. Это теоретически позволяет установить его в системные платы 2017 года.
Зачем это пользователям — понятно. Они смогут оживить свои старые системы, используя в них современный процессор. Подозреваем, что клиентами будут не только и не столько игроки (AMD рассчитывает на Enthusiast Desktop — переводите, как хотите), как корпоративные пользователи и учёные, для которых возможность понять производительность процессора, сохранив старую систему, важнее использования более быстрой архитектуры Zen 4. Процессор Ryzen 5 5500X3D построен на предыдущей архитектуре Zen3, имеет 6 ядер с частотой от 3 ГГц и поддерживает память DDR4 и т.п. Обратим внимание, что данное ЦП не имеет встроенного видеоядра, так что придётся использовать прежнюю видеокарту.
Кто сможет использовать новый процессор? В первых новостях говорилось, что процессор можно будет использовать на системах с разъёмом АМ4. Но на сайте указаны чипсеты, поддерживающие процессор, — X570, X470, X370, B550, B450, B350, A520. Даже если у вас плата с таким чипсетом, скорее всего, использование процессора потребует обновление BIOS, так что в выигрыше окажутся владельцы продуктов, которые разработчики долго поддерживают. Кроме того, на сайте AMD указано, что процессор предназначен для Латиноамериканского сегмента, но, думаем, в России уже не привыкать использовать устройства со всего света.
Зачем это компании AMD? Компания взяла за практику продлять жизнь платформ ещё со времён 486 процессоров. Если на тот момент это была возможность не вкладываться в разработку новых платформ, то теперь это выглядит скорее как забота о пользователях. Компания так поступает во всех сегментах, например, в 2023 году AMD продлила жизненный цикл серверных процессоров EPYC Milan.
Конечно, может возникнуть впечатление, что таким образом AMD подрубает себе текущие продажи, но это маловероятно. В 2017 году доля процессоров этой компании на рынке составляла всего 13%. Вряд ли многие среди тех покупателей до сих пор имеют системы на АМ4 и откажутся от её обновления только из-за нового процессора. Зато AMD такими «недорогими» шагами борется за возвращение своей доли на рынке настольных ПК. В 2023 году она достигла 29,5%, но в следующем году упала до 24%. Видимо, усилия Пата Гелсингера и его последователей — сотрудничество с TSMC и переход на новые техпроцессы — наконец позволили стабилизировать спрос на Intel.
Что ж, всё пользователю на пользу.
Ближайшие события
Процессор на RISC-V есть в Google Pixel 6. А когда в ноутбуках появится?

В 2024 году в продаже появились устройства с поддержкой векторного расширения RVV 1.0. RISE опубликовала гайд по оптимизации на RISC-V, провела адаптацию программных компонентов, запустила бонусную кампанию для разработчиков, портирующих на RISC-V. Canonical заявила, что с версии 25.10 ОС Ubuntu будут собирать под профиль RVA23. А Samsung продемонстрировала телевизор на RISC-V с Tizen.
Сейчас для RISC-V прорабатывают множество новых исследовательских идей и дальнейших расширений. Например, расширение формата команд до 48 и 64 бит, что в некоторых случаях поможет повысить эффективность архитектуры. За счет поддержки новых размеров констант, immediate-операндов и других нововведений в перспективе можно будет уменьшить размер кода. Развивается безопасность векторных расширений, а также расширенное профилирование для анализа сложных приложений, стеков и ПО.
Текущие наработки войдут в профиль RVA30, который, по всей видимости, станет следующим в развитии стандарта. На пути к этому большому обновлению увидит свет ABI для AOSP, а также платформы, определяющие дополнительные требования — например, в серверных сценариях.
Если выяснится, что в RVA23 не хватает каких-нибудь важных обязательных расширений, то придется выпускать новый major-профиль с ними раньше, чем хотелось бы. По пути к нему увидят свет и minor-профили: они содержат только опциональные расширения и не создают проблем с совместимостью.
На пятом митапе Российского Альянса RISC-V и YADRO эксперты в сфере RISC-V — Сергей Якушкин, Роман Хатько и Антон Афанасьев — обсудили успехи и перспективы RISC-V на рынке мобильных устройств в середине 2025 года.
15 лет назад я думал что образование в области компьютерной архитектуры поломано только в России, а на Западе с этим все хорошо. Что значит "поломано"? Студент может поговорить про суперскалярные процессоры и многоядерные кластеры, но не может ничего спроектировать.
Но потом я поинтервьировал кучу западных студентов, и обнаружил что такое явление есть даже в вузе X с хорошими учебниками и стоимостью образования $90 тысяч в год.
Просишь студента написать модуль на верилоге на десять строк строк с простой (хотя и не из учебника) функциональностью, и он начинает извиваться, как уж на сковородке: пишет какие-то временные переменные, пытаясь затянуть интервью чтобы вышло время и/или по моему выражению лица пробует угадать идет ли он в правильную сторону или пишет ерунду.
И я выдвинул теорию, что им профессор дает готовый код процессоров посимулировать и посинтезировать, а сами они на верилоге ничего не пишут. То есть у меня в голове образовалась модель такого студента, своего рода теоретический Бозон Хиггса, который умозрительно представили задолго до обнаружения.
И вот сегодня я такой Бозон Хиггса засек на LinkedIn. Выпускник этого самого вуза X написал пост, как он изучал учебник Хеннесси-Паттерсона. Он показал фото листка бумаги, испещренного заметками и диаграммами. Он просто сидел, читал по частям учебник и делал такие заметки.
Проблема с такого рода обучением заключается не только в том, что у студента может образоваться каша в голове - например он может путать обычный кэш с кэшем трансляций адресов в TLB. Он может также понять некоторые вещи наоборот и протащить такое понимание до конца, так как у него нет практики, которая бы отсекла такую ошибку сразу. Ну и то что он 90% информации забудет по пути - это тоже данность.
Ну я короче написал ему, что нужно каждую концепцию подтверждать для себя упражнением. Выучил статический конвейер CPU - написал процессорик с несколькими инструкциями на несколько сот строк. Выучил кэш - написал модуль на несколько сот строк. Предсказатель перехода итд. И ради бога, без чатгпт - с ним это не выучится.
А также брать процессоры с открытым кодом, запускать их в симуляции и смотреть как в нем инструкции ходят по конвейеру.
Для Бозона Хиггса эта идея была в новинку. А между тем такой же подход нужно делать и с курсами по компиляторам, и ядрам OS.
Хотя зачем я все это говорю. Сейчас грянет LLM и наша цивилизация исчезнет.
Генерация последовательностей случайных чисел с помощью DRAM — возможно ли это? Проверим с помощью RISC-V

На основе DRAM мы создали модель одноканального источника шума, который возвращает один случайный бит за один условный такт. Память разбита на два региона, которые не пересекаются. Первый отвечает за инициализацию одноканального сигнатурного анализатора (ОСА), который инициализирует второй подобный анализатор. Затем мы сможем взять другой регион памяти и заново инициализировать первый ОСА, что абсолютно случайным образом изменит выход второго ОСА. Такая схема позволит не перезагружать память после каждой генерации числовой последовательности — ведь в реальных проектах это, как правило, невозможно.
Далее мы направляем данные из DRAM PUF в два подмодуля — постобработки, а также тестирования, анализа и оценки качества данных. Первый частично запускается на «железе», второй — на собранных данных на машине хоста.
Для постобработки мы протестировали шесть комбинаций. Последняя нам кажется наиболее перспективной:
сырые данные,
чистый корректор фон Неймана,
одноканальный сигнатурный анализатор,
чистый корректор фон Неймана + одноканальный сигнатурный анализатор,
одноканальный сигнатурный анализатор + чистый корректор фон Неймана,
многоканальный сигнатурный анализатор (МСА).
Зимняя школа RISC-V дала начало множеству интересных проектов. В отдельной статье мы рассказали об одном из них, где команда из БГУИР проверила гипотезу о наличии PUF в динамической памяти и создала модель одноканального источника шума. А затем реализовала постобработку и тестирование, измерила производительность генератора и оптимизировала код.
О, сколько нам открытий чудных... готовит школа по RISC-V

Сегодня устройства на базе «молодой» архитектуры RISC-V, представленной в 2010 году, имеют ограничения по документации. Каждая инструкция в процессоре обладает двумя характеристиками исполнения, латентностью и пропускной способностью, которые зависят от реализации процессорного ядра. Латентность определяет время выполнения одной инструкции, а пропускная способность — количество инструкций, выполняемых за определенное время. Эти данные помогают разработчикам оптимизировать код и повысить эффективность выполнения алгоритмов процессором. Обычно характеристики предоставляются производителями ядер, но в настоящее время для актуальных ядер их не найти.
Существуют стандартные инструменты для измерения латентности и пропускной способности, например llvm-exegesis. Однако из-за быстрого развития архитектуры RISC-V не все инструкции включены в эти инструменты. В рамках образовательного проекта предлагалось изучить принципы создания микробенчмарков для таких задач и измерить новые реализации недавнего векторного расширения для RISC-V (RVV) на примере плат LicheePi 4A.
Изначально мы не знали, как вычислить латентность, но знали, что на современных архитектурах скалярное сложение должно выполняться за один такт. Поэтому решили найти такой метод, который на скалярном сложении покажет латентность в один такт.
Самый простой вариант измерения времени в тактах — вызвать инструкцию rdcycle, которая возвращает количество тактов, пройденных с определенного времени, выполнить инструкцию, которую мы хотим исследовать, и снова вызвать rdcycle. Мы сделали так и получили время выполнения скалярного сложения в десятки тактов...
Так начинается лишь один из 18 интересных проектов, которые подготовили студенты в рамках Зимней школы RISC-V. О том, что это за школа и что еще разработали ее участники, читайте в нашем блоге.
Собеседование инженера: взгляд со стороны нанимающих специалистов

Интересно бывает послушать, над какими проектами работал человек. Но эта часть биографии частенько оказывается приукрашена и в позиционировании кандидата не помогает. В резюме может быть 30 лет опыта с описанием задач, спрашиваешь по ним, а ответа нет. Потому что человек, например, все 30 лет копипастил одно и то же, не вдаваясь в суть. Вообще, обсуждение опыта снижает эффективность собеседований, делает их… расхлябанными, что ли.
Частая ситуация на собеседовании — недостаточно глубокое погружение в интерфейс, с которым у кандидата был опыт работы. Например, указан опыт работы с протоколом USB. На собеседовании после нескольких вопросов по архитектуре протокола оказывается, что кандидат просто вставлял готовый IP без понимания принципов его работы. Но в резюме это заявлено как полноценный опыт работы с протоколом.
Когда смотришь, где человек работал, это не значит, что он там таки работал и надо трепещать перед громкими именами или регалиями. Важно не где ты работал, а что и как ты делал. Иначе будет как в старом советском анекдоте: один хвалится, что у него тетя в исполкоме работает, а в конце все узнают, что работает она там уборщицей и ничего не решает...
Семеро специалистов YADRO по направлениям схемотехники, верификации, RTL-дизайна, FPGA и аппаратной разработки рассказали, как подготовиться к собеседованию инженера, как настроиться на диалог с компанией и получить дополнительные очки в свою пользу.
Прикончил, наконец, свою компиляцию документации DEC на разные машины PDP-11/LSI-11 и родил сие описание архитектуры, включающее все команды, кроме предназначенных для диагностики и тому подобных вещей. Сама DEC подобный документ, кажется, выпустить так и не удосужилась.
Интересно, до какой скорости можно разогнать 6502-е ядро с современными технологиями?
Допустим, у нас есть чиплет «6502 + 64К SRAM», выполненный в максимально быстром исполнении, вплоть до экзотики типа арсенида галлия (ядро проектировали не дураки и уложились в три с половиной тысячи транзисторов, что тогда было немало для кремния, а сейчас — для арсенида галлия тоже, насколько я знаю, очень до фига).
…и есть несколько кремниевых чиплетов с умножителем, DRAM и прочей веселухой. Или даже один кремниевый чиплет с этим всем, плюс с бутлоадером, который прогружает наши 64К с некоего SPI и после этого снимает с 6502-го ресет.
Собираем их в микросборку, цепляем к портам 6502-го, которые замаплены в ключевые адреса его крошечной памяти.
Команды 6502-го выполняются фиксированное время, причём довольно небольшое (в тактах. А арсенид галлия этих тактов нам даёт не просто много, а очень много). Пульнул той же DDR указание, занимается своими делами, через некоторое время прочитал от неё ответ. Мы с точностью до команды знаем, когда за ним лезть в порт.
Фактически мы получаем, что у нас в SRAM крутится микрокод. Но мы имеем к нему полный доступ и можем напихать туда команд типа «логарифм по основанию ква с половинкой кря и ограничением результата от гага до муму», смотря какие мы там нейросети, графоний или обработку звука мы там делаем.
Ну то есть в камментах я такое уже высказывал, но тут мне именно сама архитектура больно шибко зашла. Там даже система команд просто кричит — «сделайте на мне движок микрокода!!!»
Вопрос, правда, в количестве транзисторов в GaAs. SRAM шибко большая, но там за единицу времени переключается только одна ячейка, а остальные спят сном праведника. А вот три с половиной тысячи ключей самого 6502-го могут выдать огоньку, превышающего возможности технологии. Тут я не шибко великий технолог по чипам, увы.
Вклад авторов
Armmaster 1683.4alizar 1548.8Seleditor 1542.8skovalev 1411.0RiddleRider 1322.2YuriPanchul 1187.2saul 1144.6Data_center_MIRAN 1129.3ereinion 1000.0amartology 976.0