Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: CXLIX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 12 мая 2025 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Кротов О.А. РАЗРАБОТКА БЛОКА ЭМУЛЯТОРА UMA-СИСТЕМЫ ДЛЯ ОБРАБОТКИ АССЕМБЛЕРНОГО КОДА И ВИЗУАЛИЗАЦИИ ЕГО ВЫПОЛНЕНИЯ // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. CXLIX междунар. студ. науч.-практ. конф. № 5(147). URL: https://sibac.info/archive/technic/5(147).pdf (дата обращения: 31.05.2025)
Проголосовать за статью
Конференция завершена
Эта статья набрала 9 голосов
Дипломы участников
Диплом Интернет-голосования

РАЗРАБОТКА БЛОКА ЭМУЛЯТОРА UMA-СИСТЕМЫ ДЛЯ ОБРАБОТКИ АССЕМБЛЕРНОГО КОДА И ВИЗУАЛИЗАЦИИ ЕГО ВЫПОЛНЕНИЯ

Кротов Олег Андреевич

студент, кафедра электронных вычислительных машин, Вятский государственный университет,

РФ, г. Киров

Крутиков Александр Константинович

научный руководитель,

старший преподаватель, Вятский государственный университет,

РФ, г. Киров

DEVELOPMENT OF A UMA SYSTEM EMULATOR BLOCK FOR PROCESSING ASSEMBLY CODE AND VISUALIZING ITS EXECUTION

 

Oleg Krotov

student, Department of Electronic Computing Machines, Vyatka State University,

Russia, Kirov

Alexander Krutikov

scientific supervisor, senior lecturer, Vyatka State University,

Russia, Kirov

 

АННОТАЦИЯ

В данной работе представлена разработка блока программного эмулятора UMA-системы (Uniform Memory Access) для обработки ассемблерного кода и дальнейшей пошаговой визуализацией выполнения этого кода, синхронизацией процессорных элементов и демонстрацией обработки данных на нескольких процессорных элементах. Анализируется эффективность разработанной системы обработки кода, производится сравнение с уже существующими системами эмуляции многопоточных систем со встроенными визуализаторами. Результаты разработки подтверждают эффективность симуляции UMA-среды для образовательных целей и подготовки специалистов в области системного программирования и архитектуры ЭВМ.

ABSTRACT

This paper presents the development of a block of a software emulator of the UMA (Uniform Memory Access) system for processing assembler code and subsequent step-by-step visualization of the execution of this code, synchronization of processor elements and demonstration of data processing on several processor elements. The efficiency of the developed code processing system is analyzed, a comparison is made with existing systems of emulation of multi-threaded systems with built-in visualizers. The results of the development confirm the efficiency of the UMA environment simulation for educational purposes and training of specialists in the field of system programming and computer architecture.

 

Ключевые слова: UMA-система, эмулятор, многопоточность, синхронизация, ассемблер, архитектура ЭВМ.

Keywords: UMA system, emulator, multithreading, synchronization, assembly, computer architecture.

 

С развитием вычислительных технологий и увеличением числа ядер в современных процессорах всё более важной становится задача понимания принципов функционирования многопроцессорных архитектур. Одним из базовых понятий в этой области является организация доступа к памяти. Существуют различные подходы, такие как NUMA (Non-Uniform Memory Access) и ccNUMA (cache-coherent NUMA), которые активно используются в современных высокопроизводительных системах. Однако они обладают высокой степенью сложности, что затрудняет их изучение на ранних этапах обучения.

В этой связи архитектура UMA (Uniform Memory Access) – еще одна более простая архитектура, представляет собой удобную точку входа для изучения основ параллельных вычислений. Её ключевая особенность — равномерный доступ всех процессоров к общей памяти — позволяет упростить логику взаимодействия процессов, убрать из рассмотрения сложные аспекты когерентности кэшей, различий в задержках доступа и локализации данных. Именно поэтому UMA-системы довольно часто используются в учебных моделях, лабораторных стендах и эмуляторах, направленных на формирование фундаментального понимания параллелизма и синхронного взаимодействия между процессами.

Изучение архитектуры UMA позволяет учащимся сосредоточиться на ключевых принципах работы многопроцессорных систем:

  • организации совместного доступа к памяти,
  • взаимодействия процессов через разделяемые ресурсы,
  • синхронизации потоков,
  • обработки гонок данных и критических секций.

Такая модель даёт интуитивное представление о том, как несколько процессоров могут обращаться к одной и той же памяти, взаимодействовать друг с другом через неё и влиять на поведение программы в условиях параллельного выполнения. В дальнейшем это знание легко масштабируется на более сложные архитектуры, где добавляются уровни кэширования, NUMA-домены и особенности когерентности. Если сформулировать основные причины выбора реализации такой системы в образовательных целях, то получится следующее:

  • Простота и наглядность: Устраняет необходимость моделировать

сложную структуру кэшей, локальных узлов и алгоритмов когерентности.

  • Прямолинейность поведения: Все процессы обращаются к одной и той же памяти, с одинаковыми задержками и последствиями. Также все процессорные элементы, на которых выполняется ассемблерный код будут синхронизироваться через общую память для доступа к общей памяти, что облегчит отладку и анализ.
  • Универсальность как обучающего инструмента: Эмулятор может использоваться в лабораторных работах, для демонстрации принципов работы многопроцессорных систем, то есть пытаться ответить на вопрос: Как правильно распределить задачу на несколько процессорных элементов для более быстрой, а самое главное, правильно работы кода.
  • Гибкость в расширении: На базе базовой UMA-модели можно в будущем построить эмуляции более сложных систем (NUMA, SMP, кэш-архитектуры).

Для начала была поставлена задача разработать программный блок, эмулирующий поведение многопроцессорной UMA-системы. Особенностью которой является то, что система работает с кодом, написанным на языке ассемблера. Это позволяет максимально точно и наглядно моделировать поведение процессоров на низком уровне, отслеживая действия вплоть до отдельных инструкций и операций чтения/записи в память, то есть цель эмулятора — предоставить учебную среду, в которой можно:

  • запускать параллельные программы на нескольких "виртуальных" процессорах
  • контролировать изменения в процессе выполнения кода на процессорных элементах в ключевых местах, таких как АЛУ, РОН и ПМК
  • отслеживать процесс синхронизации процессорных элементов с использованием общей шины для доступа к общей памяти
  • отрабатывать базовые принципы синхронизации и параллелизма
  • проводить отладку и анализ поведения многопоточных программ

Таким образом, всю систему визуально можно разделить на две части: правая часть – поля для ввода пользователем ассемблерного кода, а также необходимые кнопки для выполнения этого кода (например: «Шаг», «Сброс»), левая часть – визуальное представление архитектуры UMA - системы, то есть на ней изображены процессорные элементы, шины и банк памяти, в процессе работы на которых будет изменяться и отображаться все информация о принципе работы кода пользователя. Для большего понимания концепта приложения следует обратиться к рисунку №1.

 

Рисунок 1. Прототип интерфейса эмулятора UMA – системы

 

То есть для правильной работы эмулятора UMA – системы должен выполняться конкретный алгоритм:

  1. Ввод ассемблерного кода – пользователь вводит код на языке Ассемблера.
  2. Парсинг кода - Лексический анализатор разбивает текст на токены (инструкции, регистры, метки, значения). Синтаксический анализатор строит внутреннее представление программы.
  3. Проверка кода на ошибки – в случае обнаружения ошибки пользователь будет уведомлен об этом.
  4. Исполнение кода - Происходит поэтапное исполнение инструкций выбранным пользователем процессорным элементом.
  5. Отображение результатов и графические изменения - отображаются изменения значений в процессорных элементах, шинах и общей памяти. Также происходит выделение цветом полей, в которых произошли изменения для удобства и большего понимания работы пользователем.

 

Рисунок 2. Алгоритм работы разработанного приложения

 

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

 

Список литературы:

  1. Сафонов М. Н. Основы многопоточного программирования и синхронизации [Электронный ресурс]: учебное пособие / М.Н. Сафонов. – Москва: Лаборатория знаний, 2020. - 152 с.: ил., схем., табл. - Библиогр.: с. 150-152.
  2. Семенов И. В., Козлов А. П. Основы параллельного программирования [Электронный ресурс]: учебное пособие / И.В. Семенов, А.П. Козлов. – Санкт-Петербург: ТехноПресс, 2019. - 198 с.: ил., табл. - Библиогр.: с. 195-197.
  3. Орлов С.А., Цилькер Б.Я. Организация ЭВМ и систем 2-е издание [Электронный ресурс]: учебное пособие / Орлов С.А., Цилькер Б.Я. – Санкт-Петербург: Питер, 2011. - 688 с.: ил.,
  4. Научно-технический журнал "Автоматика и программная инженерия" [электронный ресурс]. URL: http://jurnal.nips.ru/
  5. Научно-теоретический журнал "Автоматика и вычислительная техника" [электронный ресурс]. URL: http://www.edi.lv/lv/zur1_05/krievu-valoda/
  6. Учебное видео с YouTube по WinForms [электронный ресурс]. URL:https://www.youtube.com/watch?v=gp2rA0rgq_0&list=PL0lO_mIqDDFWOMqSKFaLypANf1W7-o87q
Проголосовать за статью
Конференция завершена
Эта статья набрала 9 голосов
Дипломы участников
Диплом Интернет-голосования

Оставить комментарий