Статья опубликована в рамках: CLIX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 05 марта 2026 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
РАЗРАБОТКА ОБУЧАЮЩЕГО ПРОГРАММНОГО ЭМУЛЯТОРА МУЛЬТИПОТОКОВОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ
DEVELOPMENT OF A TRAINING SOFTWARE EMULATOR FOR A MULTITHREADED COMPUTING SYSTEM
Martynov Pavel Andreevich
student, Department of Electronic Computing Machines, Vyatka State University,
Russia, Kirov
Krutikov Alexander Konstantinovich
scientific supervisor, senior lecturer, Vyatka State University,
Russia, Kirov
АННОТАЦИЯ
В данной статье рассказывается о необходимости обучения студентов IT направлений высших учебных заведений основным моделям управления вычислениями. Рассматриваются механизмы для управления последовательность выполнения команд, принципы работы мультипотоковой вычислительной системы и разработка эмулятора для использования в рамках процесса обучения.
ABSTRACT
This article discusses the need for IT students in higher education institutions to learn basic computing management models. The mechanisms for controlling the sequence of command execution, the principles of operation of a multithreaded computing system, and the development of an emulator for use in the learning process are considered.
Ключевые слова: программный эмулятор, мультипотоковая вычислительная система, вычисления, потоковый граф.
Keywords: software emulator, multithreaded computing system, computing, dataflow graph.
В современном мире существует огромное множество различных вычислительных систем: суперкомпьютеры, ГРИД-системы, персональные компьютеры, мобильные устройства и прочее. Принципом работы подавляющего большинства из них является последовательное выполнение команд. Однако по мере роста требований к производительности, данный подход сталкивается с ограничениями, что делает его недостаточно эффективным для задач, требующих глубокого параллелизма.
Под вычислительной системой понимается совокупность аппаратных и программных средств, функционирующих как единое целое для решения определенных задач. Одним из ключевых аспектов вычислительных систем является механизм управления последовательностью вычислений. Выделяют три основных подхода: традиционный, управляемый данными (потоковый) и управляемый по запросу (редукционный). Традиционных подход заключается в том, что команда выполняется после того, как предшествующая ей команда закончила свое выполнение и для этого используется программный счетчик. Потоковый метод предполагает, что команда начинает свое выполнение после того, как все ее операнды станут доступными. При редукционном методе команда выполняется при запросе ее результата работы от другой команды.
Мультипотоковая модель в отличие от обычной потоковой обрабатывает не одну команду, а целую последовательность из нескольких команд, называемую потоком (нитью), а команды внутри нити обрабатываются уже традиционным методом с использованием счетчика команд. Для описания вычислений в мультипотоковой системе используется ориентированный граф, он же потоковый граф. Каждая вершина обозначает отдельную нить команд, а ребра – данные результата выполнения нити команд, необходимые для начала выполнения следующей нити. Пример графа для вычисления полинома приведен на рисунке 1.

Рисунок 1. Потоковый граф
В мультипотоковой вычислительной системе программа хранится в виде двух таблиц: таблицы дескрипторов и таблицы команд. Таблица дескрипторов содержит информацию о адресе первой команды нити, о количестве не готовых операндов, сами операнды, адрес куда будет записан результат и флаг завершенности. Данные в таблице представлены в шестнадцатиразрядном виде. Первый бит в адресе записи результата описывает в какой операнд дескриптора будет записан результат (0 – первый операнд, 1 - второй).
Таблица 1.
Пример таблицы дескрипторов для полинома 3x2+2xy+5y
|
№ |
Адрес первой команды |
Количество не готовых операндов |
Операнд 1 |
Операнд 2 |
Адрес записи результата |
Флаг завершенности |
|
1 |
00 |
0 |
X |
0 |
05 |
0 |
|
2 |
05 |
0 |
X |
Y |
04 |
0 |
|
3 |
0B |
0 |
0 |
Y |
84 |
0 |
|
4 |
0F |
2 |
0 |
0 |
85 |
0 |
|
5 |
13 |
2 |
0 |
0 |
00 |
0 |
Когда в вершину поступаю данные они заносятся в поле операнда и при этом уменьшается счетчик не готовых операндов. Когда счетчик достигнет нуля, система возьмет адрес первой команды данного дескриптора и по нему обратится к таблице команд и начнет их выполнение. Выполнение будет продолжаться до тех пор, пока не будет выполнена команда SEND. После ее выполнения по адресу для записи результата в дескрипторе будет записан результат выполнения данной нити и у текущего дескриптора будет обновлен флаг окончания.
Таблица команд содержит в себе 3 основных колонки: мнемонический код, необходимый для определения что именно нужно выполнить, и два оператора. Так как некоторые команды используют только один операнд, на месте неиспользуемого в примере ставится прочерк.
Таблица 2.
Пример таблицы команд для полинома 3x2+2xy+5y
|
№ |
Мнемонический код |
Операнд 1 |
Операнд 2 |
|---|---|---|---|
|
0 |
MOV |
01 |
X |
|
1 |
MUL |
01 |
01 |
|
2 |
MVI |
3 |
- |
|
3 |
MUL |
00 |
01 |
|
4 |
SEND |
00 |
- |
|
5 |
MOV |
01 |
Y |
|
6 |
MOV |
02 |
X |
|
7 |
MVI |
2 |
- |
|
8 |
MUL |
00 |
01 |
|
9 |
MUL |
00 |
02 |
|
A |
SEND |
00 |
- |
|
B |
MOV |
01 |
Y |
|
C |
MVI |
5 |
- |
|
D |
MUL |
00 |
01 |
|
E |
SEND |
00 |
- |
|
F |
MOV |
00 |
00 |
|
10 |
MOV |
01 |
01 |
|
11 |
SUM |
00 |
01 |
|
12 |
SEND |
00 |
- |
|
13 |
MOV |
00 |
00 |
|
14 |
MOV |
01 |
01 |
|
15 |
SUM |
00 |
01 |
|
16 |
SEND |
00 |
- |
Мультипотоковая вычислительная система содержит в себе отдельные процессорные элементы. Для программного эмулятора проектируется процессорный элемент, структура которого представлена на рисунке 2. Память ПЭ состоит из 2 разделов: памяти дескрипторов и памяти команд, где в каждом разделе хранятся соответствующие объекты.

Рисунок 2. Структура процессорного элемента мультипотоковой вычислительной системы
Диаграмма потоков данных (DFD) предназначена для наглядного отображения логики движения информации в системе и взаимодействия между процессами, хранилищами данных и внешними сущностями. Диаграмма потоков данных показывает более детально внутреннюю структуру приложения и показывает основные этапы обработки информации. DFD диаграмма показана на рисунке 3.

Рисунок 3. Диаграмма потоков данных
Процесс «Формирование модели графа» подразумевает под собой составление списка команд и дескрипторов на основе алгоритма решения, составленного студентом. Список команд и список дескрипторов записываются в соответствующие им таблицы. Далее процесс «Выбор готового узла» получает счетчики узлов и адреса начала команд из таблицы с дескрипторами и передает процессу «Выполнение команд» адреса начала участка команд. Данный процесс в свою очередь получает из таблицы с командами необходимые ему команды, выполняет их, записывая данные в регистры, и в конце записывает результат в результирующий дескриптор в таблице дескрипторов. Это продолжается до тех пор, пока не будет готов итоговый результат вычисления, который передается на следующий этап. Процесс «Формирование отчета» получает в себя итоговый результат работы эмулятора, и пользователь на основе него составляет отчет о проделанной работе и передает его преподавателю для оценки.
Таким образом диаграмма потоков данных демонстрирует последовательность действий при работе студента на данном эмуляторе и основные данные, используемые при этом.
Разработанная программа имеет 3 основных вкладки: для вычислений, визуализации процессорных элементов и справочной информации. На странице с вычислениями пользователь может составлять программу заполняя таблицы дескрипторов или интерактивно взаимодействуя с графом (рисунок 4), и отслеживать состояние ПЭ при ее выполнении.

Рисунок 4. Макет страницы для вычислений
На странице для справочной информации (рисунок 5) пользователь может выбрать интересующий его раздел и получить информацию, которая может быть полезна при работе с данной системой.

Рисунок 5. Макет страницы со справочной информацией
На странице для визуализации ПЭ (рисунок 6) пользователь может конфигурировать систему, а также просматривать состояние и содержимое основных составляющих процессорных элементов в реальном времени.

Рисунок 6. Макет страницы визуализации ПЭ
В настоящее время, программная реализация уже частично выполнена и ведется тестирование, а также оцениваются возможности добавления в будущем большего функционала.
Список литературы:
- Орлов С. А., Цилькер Б. Я. Организация ЭВМ и систем: Учебник для вузов. 2-е изд. — СПб.: Питер, 2011 — 688 с.
- Основы архитектуры вычислительных систем [электронный ресурс] — Режим доступа. — URL: https://studfile.net/preview/7103303 (дата обращения 14.01.2026)
- Организация ЭВМ: лабораторный практикум на компьютерах: учеб. пособие – 4-е изд., перераб. и доп. / Д. А. Страбыкин. – Киров: ВятГУ, 2020. – 186 с.
дипломов

