Обновить
Сначала показывать
Порог рейтинга
Уровень сложности

В Китай за embedded-мечтой: программируем микроконтроллеры в SHENZHEN I/O

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.3K

Доброе утро, Шэньчжэнь. На улице 19 градусов, плохое качество воздуха, высокая активность дронов, льет дождь и светит солнце. Все это я узнал от умной наружной камеры; мне же светят лишь холодные офисные лампы. Я мог бы торговать электроникой на рынке Хуачанбей неподалеку. Но у меня есть инженерное образование, мой воротничок белоснежен, и с сегодняшнего дня я работаю в Longteng Electronics.

Так начинается SHENZHEN I/O — головоломка, где нужно заниматься аппаратной разработкой и программированием микроконтроллеров. Выполнять разные ТЗ с помощью имеющихся компонентов и стремиться к экономии по всем возможным направлениям. У реального меня, автора этой статьи, инженерного образования нет. Я лишь окончил базовый онлайн-курс схемотехники и написал об этом три статьи. Поможет ли это здесь? Не уверен. Доедаю воображаемый баоцзы и открываю почту сотрудника.

Читать далее

Новости

У нас есть «плюсы» дома: о чем говорили на митапе YADRO × C++ Russia

Время на прочтение2 мин
Охват и читатели7.7K

С++20-корутины, миграция акторной системы и KvadraOS — все это было на митапе для разработчиков на «плюсах», который организовали YADRO и C++ Russia. Под катом собрали записи докладов и рассказали о новых проектах для инженеров: экскурсии по инженерному центру и проекту о работе с легаси-кодом.

Читать далее

Психологическая броня: как оставаться стрессоустойчивым, если сроки горят

Время на прочтение14 мин
Охват и читатели6.4K

Открываешь рабочий чат — там новые вводные. Заходишь в Jira — на тебя упала еще одна срочная таска. До релиза остается все меньше времени, а в текущей задаче ты пока даже не разобрался. В какой-то момент к рабочим вопросам добавляется другой: «Может, я просто не справляюсь?»

Меня зовут Анастасия Позднякова, раньше я работала тестировщиком, а теперь я agile team leader в команде разработки в YADRO. Тема стресса интересует меня с разных сторон: как он проявляется в работе команды, как на него реагирует каждый человек (спойлер: сильно по-разному) и со стороны физиологических процессов в организме. 

В этой статье разберем, что помогает сохранять способность действовать, когда тревожно, почему стратегия «еще немного потерплю» подводит и какие инструменты будет полезно встроить в обычный рабочий день.

Читать далее

Lossless Ethernet или жизнь без потерь: PFC, буферы и тонкая настройка

Время на прочтение23 мин
Охват и читатели7.8K

Привет, меня зовут Александр Шереметьев, я старший инженер по разработке ПО для коммутатора KORNFELD в YADRO. Мы привыкли, что Ethernet — среда с доставкой по мере возможности. Если возник затор, пакет дропается, а Transmission Control Protocol  потом разбирается сам. Но сегодня мы строим сети для AI-кластеров и распределенных систем хранения, где задержка в несколько миллисекунд на ретрансмит пакета — это катастрофа, которая просаживает производительность всей системы на 30–40%.

Сегодня мы разберем, как «прокачать» Ethernet до уровня Lossless, чтобы по надежности он не уступал Fibre Channel, но оставался гибким и быстрым. Мы залезем «под капот» коммутатора и посмотрим, как математически рассчитываются буферы и почему настройка одной лишь технологии PFC — это только верхушка айсберга.

Читать далее

«Железо» под давлением: как протестировать тысячи плат для базовых станций

Время на прочтение16 мин
Охват и читатели11K

Привет, Хабр. Меня зовут Алексей Зайцев, я системный архитектор в отделе проектирования телеком-платформ, а это шестая статья цикла про разработку базовых станций в YADRO. 

За последние пару лет наши платы BBU прошли стадии EVT (Engineering Validation Test), DVT (Design Validation Test), PVT (Production Validation Test) и наконец MP (Mass Production). К этому моменту мы выпустили уже несколько тысяч плат, а эксплуатация базовых станций YADRO сейчас охватывает 37 регионов России. Но этому результату предшествовал тяжелый и кропотливый этап — разработка собственных тестовых стендов, на которых мы могли бы проверить каждую плату и модуль. Почему не блок целиком?

Цифровой блок обработки базовой станции (BBU, Baseband Unit) поставляется операторам сотовой связи модулями, а не в виде единого полностью укомплектованного шасси. Функционально тестировать BBU как единое готовое устройство на заводе перед отгрузкой нецелесообразно — каждую плату мы проверяем автономно и независимо. Об этом сегодня и поговорим.

Читать далее

Куча дисков еще не T-RAID: как один компонент проходит через руки десятков тестировщиков

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели7.3K

Q, хабряне! На связи Максим Тучков, инженер по разработке ПО в YADRO. Сегодня я хочу вам рассказать о тестировании T-RAID — одного из центральных компонентов семейства СХД TATLIN. Пройдем путь от тестирования на виртуальных машинах с легковесным образом до комплексного системного тестирования на железном окружении. Вместе разберемся, сколько требуется QA-инженеров, чтобы уверенно сказать: «T-RAID работает как надо».

Мой опыт включает изолированное тестирование T-RAID и его проверку в составе комплексных релизов СХД TATLIN.UNIFIED. За моими плечами вклад в компонентное, интеграционное, системное тестирования, тестирование производительности и проверку сервисных процедур продукта. Из раза в раз новая область тестирования открывала для меня не столько новый принцип взаимодействия с T-RAID, сколько новые критерии приемки, инструменты и сценарии тестирования. Я проследил, как меняется тестирование T-RAID на каждом из уровней, и собрал свой опыт в этой статье.

Погодите, это реально?

Как ускорить обработку данных. Часть 1: распараллеливание цифровых схем по независимым операциям

Время на прочтение13 мин
Охват и читатели9K

Привет, Хабр! Меня зовут Кирилл Алексеев, я ведущий инженер в отделе интеграции систем на кристалле радиочастотного центра YADRO. Сегодня снова поговорим «за разработку под ПЛИС».

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

В этой статье разберем основные виды параллелизма цифровых схем, которые (естественно) сильно отличаются от видов распараллеливания программ. Как и в предыдущем моем тексте, виды параллелизма сравним на примере распараллеливания микроархитектуры КИХ-фильтра, реализованной с использованием MAC-операции. Я отвечу на вопрос, какой вид стоит использовать, когда ключевой критерий — пропускная способность схемы throughput,то есть определена скорость поступления и обработки данных.

Материал будет полезен тем, кто только начал работу с ПЛИС: сможете применить новые знания для реализации цифровых схем на практике. Опытные инженеры и архитекторы специализированных вычислительных устройств тоже смогут открыть для себя что-то новое и полезное. Для обсуждения приглашаю всех в комментарии. 

Читать далее

SystemRDL на примере PeakRDL: добиваемся консистентности регистров в RTL, верификации и документации

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9K

При разработке IP-блока инженеру приходится писать логику, превращающую входные данные в выходные. Желательно, чтобы этой логикой можно было еще и управлять в рантайме, поэтому в IP-блок добавляют контрольные и статусные регистры, которым нужно обеспечить подключение со стороны системного интерконнекта.

Теперь представим: архитектор описывает эти регистры в каком-нибудь markdown, инженер, глядя на них, пишет Verilog имплементацию, а разработчик драйвера вручную создает заголовочные файлы на C. Если повезет, все эти компоненты будут соответствовать друг другу. Но только один раз. Решить проблему соответствия способен язык SystemRDL.

Читать далее

Как мигрировать GitLab под рабочей нагрузкой из одного в десять Docker‑контейнеров

Уровень сложностиПростой
Время на прочтение29 мин
Охват и читатели9.1K

Привет! Меня зовут Илья, я занимаюсь автоматизацией разработки аппаратного обеспечения в YADRO. Эта статья будет посвящена масштабированию работающего в Docker контейнере под рабочей нагрузкой инстанса Gitlab. По мере роста команды производительности Gitlab, развернутого в одном Docker‑контейнере, становится мало. И масштабирование работающего под рабочей нагрузкой Gitlab, скажем, на десять контейнеров может стать нетривиальной задачей. Далее я на нашем примере расскажу, как это разумно организовать.

Читать далее

Скопируй и спаси: как устроена репликация в TATLIN.BACKUP

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.8K

Серьезное хранилище резервных копий не просто дедуплицирует данные и не теряет все при вылете одного диска — оно как минимум состоит из двух нод на случай, если одна сломается. Серьезное хранилище умеет делать снапшоты, чтобы злоумышленник не испортил всё, получив доступ к файловым шарам. У такого хранилища есть дедупликация на клиенте. А еще действительно серьезное хранилище умеет реплицировать данные на другую систему. Без всех этих опций индустрия просто не рассмотрит такое Purpose Built Backup Appliance как достойного кандидата занять вакантное место в стойке.

Под катом я расскажу о репликации в TATLIN.BACKUP: зачем нужно, как работает, какие особенности есть.

Читать далее

Эволюция сетевой подсистемы базовой станции: как мы пришли от программного маршрутизатора к аппаратному ускорению

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели11K

Привет, Хабр! Меня зовут Вадим Винник, я старший инженер-программист в YADRO. Наша компания развивает телеком-направление с 2022 года: за это время мы прошли путь от прототипирования на отладочных платах до серийного производства и эксплуатации нашего оборудования в коммерческих сетях. О разработке базовых станций — от первых идей до инженерных решений, работающих в реальной сети, — мы рассказываем в цикле статей. 

Сегодня обсудим сетевую подсистему: именно от нее зависит скорость передачи данных, стабильность соединения и емкость сети. Сначала наша сеть работала на стандартном Linux, но для огромного трафика это было накладно. Мы кое-что оптимизировали за счет DPDK, но и это был не предел. Следующим шагом стало использование аппаратного коммутатора, доступного на некоторых аппаратных платформах. Что из этого получилось — расскажу ниже.

Читать далее

Как QEMU исполняет чужой код: изучаем Tiny Code Generator изнутри

Уровень сложностиСредний
Время на прочтение40 мин
Охват и читатели15K

QEMU — это не просто виртуализация с KVM. Его главная cуперсила — способность запускать программы, скомпилированные для одной архитектуры, на совершенно другом процессоре. Безо всякой поддержки со стороны хоста. Например, запустить прошивку для ARM-микроконтроллера на x86-ноутбуке.

Как это работает? Под капотом QEMU скрывается JIT-компилятор под названием TCG (Tiny Code Generator). В этой статье мы разберем его устройство на практических примерах для RISC-V и посмотрим, как инструкции превращаются из одного машинного кода в другой, как формируются блоки трансляции, и зачем там нужны longjmp и цепочки блоков.

Читать далее

PCIe и DDR3 на ПЛИС Gowin: как мы заставили работать то, что не работало у производителя

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели15K

Привет, Хабр! Меня зовут Владимир Заикин. Под руководством Семёна Григорьева @rsdpisuy, я занимаюсь разработкой на ПЛИС в лаборатории YADRO в СПбГУ. Мой рассказ — о том, как мы реализовали общение по PCIe с ПЛИС на плате Sipeed Tang Mega 138K Pro с кристаллом GW5AST-138K от Gowin.

Устройство, реализованное на ПЛИС, должно было принимать данные по PCIe, сохранять их в DDR3 и обрабатывать пользовательской логикой. Чтобы реализовать такую функциональность, мы обратились к примеру взаимодействия с PCIe-контроллером от производителя платы, но тот оказался нерабочим. Пришлось разбираться самим. В итоге мы сделали рабочий стенд: Linux-драйвер, хост-программа на C и аппаратное описание на Verilog. Все это выложили в открытый доступ, чтобы поделиться своим опытом и помочь другим безболезненно разобраться с этой проблемой.

Читать далее

Ближайшие события

Архитектура цифровых устройств: разбираемся с процедурными и конвейерными вычислениями

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели12K

Привет! Меня зовут Кирилл Алексеев, я ведущий инженер в отделе интеграции систем на кристалле радиочастотного центра YADRO. В своей предыдущей статье я рассказывал, чем FPGA-разработка отличается от программирования: HDL-код описывает не последовательность инструкций, а цифровую схему. Вместо переменных — проводники, соединяющие выход одного аппаратно-реализуемого блока со входом другого, а все описанные модули (блоки) присутствуют на схеме независимо и работают параллельно. 

Дальше — интереснее. К реализации одной и той же цифровой схемы есть множество подходов и огромное количество вариантов последовательности обработки данных. Как это устроено, расскажу в статье. Разберем, что такое архитектура и микроархитектура блока, чем процедурная схема отличается от конвейерной. Сравним две различные микроархитектуры — процедурные реализации схемы цифрового КИХ-фильтра.

Статья будет полезна специалистам, которые только начинают работать с ПЛИС: сможете реализовать цифровую схему на практике. Опытных инженеров приглашаю в комментарии для обмена кейсами.

Читать далее

Protestware: как идейные злоумышленники атакуют ваш код — и как этого избежать

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели12K

Всем привет! Меня зовут Руслан, я инженер в отделе развития процессов безопасности в YADRO. В прошлой статье я рассказывал о рисках транзитивных зависимостей в open source: один неблагонадежный пакет во всей цепочке — и продуктовая сборка скомпрометирована. Таким пакетом может быть protestware — вид ПО или библиотек, в которые разработчики (мейнтейнеры) намеренно внедряют деструктивный, изменяющий логику работы или политизированный код. Он так же опасен, как уязвимости в зависимостях, компрометации репозиториев и атаки класса Dependency Confusion.

В отличие от «традиционного» вредоносного ПО, в основе protestware — не получение финансовой выгоды, а идеологическая мотивация: выражение социальных, политических или идеологических взглядов, привлечение внимания к каким‑либо событиям в мире, влияние на пользователей, связанных с определенными регионами, организациями или государствами и так далее. С точки зрения безопасности это такой же риск для цепочки поставок ПО, как и другие вредоносные компоненты. 

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

Читать далее

Борьба за каждую десятую секунды: как мы ускоряли цветокоррекцию на планшете

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели13K

Сделать фотографию ярче несложно. Сделать это естественно и быстро прямо на планшете — уже интереснее. Именно такую задачу мы решали для камеры KVADRA_T. Нужно было усилить цвета и контраст, не получить перенасыщенную картинку или артефакты и при этом обработать полноразмерный снимок достаточно быстро, чтобы пользователь практически не замечал задержки.

Привет, Хабр! Меня зовут Денис Смирнов, я старший инженер по разработке ПО искусственного интеллекта KVADRA AI в YADRO. В этой статье расскажу, как мы искали нейросеть для автоматической цветокоррекции на планшете KVADRA_T, почему выбрали MSLTNet и как довели ее до работы на реальном устройстве.

Читать далее

Встречаем RTX PRO 6000 BSE: достойная ли это альтернатива H100 NVL по производительности, качеству и цене

Время на прочтение10 мин
Охват и читатели12K

Графический ускоритель NVIDIA RTX PRO 6000 Blackwell Server Edition в сравнении с более распространенными H100 интересен прежде всего аппаратной поддержкой NVFP4 — четырехбитного формата весов с двухуровневым масштабированием, представленного в 2025 году. Как переход моделей на NVFP4-квантизацию влияет на производительность? Что и при каких профилях нагрузки с учетом этого перехода окажется предпочтительней — ускоритель нового семейства Blackwell или старый знакомый H100?

Меня зовут Алексей, я инженер по разработке ПО искусственного интеллекта в YADRO. В ходе статьи я получу подробные ответы на эти вопросы, а помогут в этом YADRO G4208P G3 — производительные серверы для задач ИИ, машинного обучения и глубокой аналитики. В один такой сервер я установлю четыре RTX PRO 6000, в другой — восемь H100 NVL. Оценивать буду на моделях различного размера и архитектуры: Qwen3.6-27B (dense), Qwen3.6-35B-A3B (MoE) в форматах FP8 и NVFP4, а также DeepSeek-V4-Flash в форматах Mixed FP4 и NVFP4. Использую vLLM в сценариях offline и server — vLLM 0.23.0 для Qwen, vLLM 0.26 для DeepSeek-V4-Flash — а также Docker-image на основе nvidia/cuda:13.2.0-cudnndevel-ubuntu22.04.

Читать далее

Любишь, чтобы сервер работал, — люби и BMC: кто и как решает проблемы на стыке железа и прошивки

Время на прочтение8 мин
Охват и читатели10K

Стабильность современного сервера зависит от BMC (Baseboard Management Controller): он управляет аппаратной платформой, следит за ее состоянием и решает множество других задач. Поэтому разбираться с проблемами BMC непросто, но именно здесь инженер получает возможность глубоко погрузиться в продукт: не только вырасти в системном программировании и железе, но и научиться воспроизводить проблемы, смотреть на продукт интегративно и ясно излагать мысли, понимая каким образом наши конечные заказчики эксплуатируют системы в своей инфраструктуре.  

Меня зовут Павел Гуделёв, я руковожу центром компетенций L3 в YADRO. С моим коллегой Александром Старцевым на примерах покажем, как мы решаем задачи, связанные с BIOS/BMC, в нашем подразделении. Будьте готовы — впереди несколько инженерных детективов. В конце статьи я перечислю навыки нужные для этой работы, поделюсь вакансией и расскажу, как подготовиться к собеседованию.

Превратим железо в рабочий сервер →

Когда Chisel уже недостаточно: создаем свой фреймворк аппаратного тестирования на Verilator

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели11K

Привет! В этой статье я разберу, почему возможностей Chiseltest может не хватать для сложного аппаратного тестирования и как мы пришли к собственному фреймворку на базе Verilator и C++. Поговорим об архитектуре тестового окружения, BFM-агентах, автогенерации обвязки и интеграции с RTL и программными моделями. А заодно обсудим, какие задачи с таким подходом решаются лучше, чем с Chisel, и где все-таки остаются ограничения.

Читать далее

Какие этапы разработки и тестирования проходит радиомодуль в YADRO

Время на прочтение20 мин
Охват и читатели15K

Привет! Меня зовут Владимир, я работаю в радиочастотном центре YADRO, а это — четвертая статья цикла про разработку базовых станций. 

Если вы читали предыдущие статьи моих коллег, то уже знаете, что наша базовая станция состоит из блока цифровой обработки (BBU, Baseband Unit) и радиомодулей (RU, Radio Unit). Если блок BBU может быть универсальным для разных частотных диапазонов, то радиомодули поддерживают работу только в определенных полосах спектра. Соответственно, чтобы закрыть потребности своей радиосети, каждому оператору нужна линейка радиомодулей различных частотных диапазонов. 

Всю линейку радиомодулей, а их больше 10 видов, мы разрабатываем в нашем радиочастотном центре — от концепции до постановки оборудования на серийное производство. Об этом и расскажу сегодня на примере радиомодуля YADRO BTS8112 (диапазон 1800 МГц).

Читать далее
1
23 ...