Объединенный институт ядерных исследований
07.10.2024

О работе в большой науке

Инженер Научно-экспериментального отдела встречных пучков ЛЯП Александр Лапкин впервые познакомился с ОИЯИ в 2014 году, когда учился на четвертом курсе Саратовского государственного университета. Предложил работу его друг Петр Смолянский, который уехал в Дубну раньше. В ОИЯИ он начал работать в НЭОВП ЛЯП, под руководством Алексея Сергеевича Жемчугова и Георгия Александровича Шелкова. Бакалаврский диплом Александр писал уже в ОИЯИ, а позже поступил в магистратуру МФТИ.

На страницах газеты "Дубна: наука, содружество, прогресс" Александр рассказывает о своей работе, о такой сложной теме, как электроника для ядерной физики.

Первое впечатление от Дубны и ОИЯИ было шоком. Начало самостоятельной жизни, вдали от родных, первая работа. Причем работа в большой науке, с большими учеными. Первые задачи были сложнее учебных, но на фоне деятельности отдела терялись. Сначала это подавляло, но со временем набирается опыт, налаживается контакт с товарищами и втягиваешься в работу.

Я работаю в НЭОВП в группе Г. А. Шелкова. Мы разрабатываем мультиэнергетический рентгеновский томограф для медицины, геологии, археологии и других применений. Мультиэнергетическая томография отличается от обычной тем, что сохраняется не суммарное поглощение объектом излучения, но зависимость этого поглощения от энергии излучения. Зависимость показателя поглощения от энергии излучения разная для каждого элемента и имеет свои особенности. Зная эти зависимости, можно определить пространственное распределение различных элементов в объекте. Объектом может быть, например, мышь с введенными различными рентгеноконтрастными веществами или образец горных пород, в которых нужно определить содержание полезных ископаемых. Но для этого нужен детектор, который может не только определять интенсивность излучения в точке (пикселе), но и определять интенсивность излучения при данной энергии. Или, в частности, детектор вообще должен измерять энергию отдельного фотона. В качестве таких детекторов подходят полупроводниковые пиксельные детекторы.

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

FPGA (Field Programmable Gate Array), или как ее еще называют, ПЛИС (программируемая логическая интегральная схема) состоит из множества различных блоков, таких как блоки памяти, сумматоры, умножители, делители, стандартные блоки, блоки фазовой автоматической подстройки частоты ФАПЧ (PLL), высокоскоростные интерфейсы или даже процессор. Стандартные блоки, которых большинство в ПЛИС, определяются производителями и часто состоят из регистров, таблиц соответствия (Look-up table), мултиплексоров, сумматоров… Блоки ПЛИС связаны программируемыми соединениями. Такая архитектура позволяет ПЛИС исполнять любую определенную пользователем функцию, если для ее реализации хватит ресурсов, ПЛИС программируются с помощью специальных программ на языке HDL, а в последнее время на языке программирования высокого уровня (C++, Python).

Разработка и отладка таких устройств выполняется дольше, сложнее и дороже, чем обычное ПО, но дешевле, проще и быстрее, чем обычных микросхем. При этом ПЛИС работают быстрее процессоров, так как обработка данных идет не на уровне программы, а на уровне "железа". Процессор имеет постоянную архитектуру, которая выполняет универсальный набор простых операций - инструкции процессора. Последовательность данных операций и есть компьютерная программа. С другой стороны, архитектура ПЛИС может быть запрограммирована так, чтобы выполнять задачу наиболее оптимальным образом. Не способ выполнения задачи подстраивается под архитектуру, а архитектура под задачу. Таким образом, ПЛИС дает большие возможности для параллелизации и конвейеризации, то есть для одновременного выполнения задачи на разных этапах с разными порциями данных. Кроме того, они, в отличие от микросхем, могут перепрограммироваться. Благодаря таким характеристикам ПЛИС идеально подходят для разработки экспериментальных и мелкосерийных устройств по преобразованию данных с одного интерфейса (детектора) в другой (компьютера). Нашей группой за время работы было сделано и протестировано несколько систем считывания для пиксельных детекторов.

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

Одним из важных этапов обработки данных с пиксельных детекторов является кластеризация - процесс объединения пикселей от одного события. Полупроводниковый сенсор представляет собой обратно смещенный p-n-переход. При прохождении заряженной частицы через полупроводниковый сенсор или при поглощении им фотона возникает облако свободных носителей заряда, которое под действием электрического поля движется к электродам пикселей. Но так как одинаково заряженные носители движутся в одну сторону, облако носителей становится больше под действием диффузии и электромагнитных сил. Таким образом, от одного события или частицы срабатывают несколько пикселей. Для более точного определения координаты пролета или поглощения частицы нужно указать, какие пиксели относятся к одному событию. Кроме того, если детектор способен измерить энергию частицы по собранному в сенсоре заряду, то необходимо сложить заряд по всем пикселям одного события.

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

Работы по томографии в нашей группе ведутся с помощью нескольких установок, в том числе экспериментального томографа "Калан". Я принимаю участие в разработке программного обеспечения для управления и настройки томографа, в частности для управления рентгеновской трубкой. Также участвую в обработке данных и настройке детекторов семейства Timepix/Medipix и разработке алгоритма идентификации элементов. Мною было создано ПО для обработки данных с детектора Widepix и ПО для управления детектором Galapad.

Кроме этого, наша группа ведет работы с новыми полупроводниковыми детекторами. В частности, нами было разработано ПО для детектора Timepix 4. ПО и сам детектор были протестированы на тестовых пучках SPS и PS в ЦЕРН совместно с группой Straw tracker RD, которая разрабатывает строу-детектор для SPD. В данный момент проводится анализ данных.

Источник:  http://jinrmag.jinr.ru/2024/38/al38.htm