Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Широков Илья Андреевич

Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов
<
Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов
>

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

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Широков Илья Андреевич. Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов : диссертация ... кандидата физико-математических наук : 05.13.11 / Широков Илья Андреевич; [Место защиты: Науч.-исслед. ин-т системных исслед. РАН].- Москва, 2010.- 132 с.: ил. РГБ ОД, 61 10-1/394

Содержание к диссертации

Введение

1 Схема потокового программирования 13

1.1 Подход к проведению оценки производительности вычислительной системы 13

1.1.1 Оптимизация алгоритма 13

1.1.2 Производительность на уровне процессора 14

1.1.3 Производительность на уровне вычислительного узла 15

1.1.4 Производительность системы в целом 16-

1.2 Схема потокового программирования 16

1.2.1 Реализация для одного конвейеризованного вычислительного узла 16

1.2.2 Реализация для нескольких арифметических узлов 18

1.2.3 Реализация для нескольких вычислительных узлов при наличии разделяемого общего ресурса 19

1.2.4 Реализация для вычислительных узлов с косвенной адресацией памяти ..20

1.3 Выводы 27

2 Методы оценки производительности для задач обработки сигналов 29

2.1 Быстрое преобразование Фурье 29

2.1.1 Дискретное преобразование Фурье 29

2.1.2 Быстрое преобразование Фурье 30

2.1.3 Общая схема вычислений и хранения данных 30

2.1.4 «Бабочка Фурье» на сопроцессоре 32

2.1.5 Реализация БПФ на одном вычислительном узле 33

2.2 Оптимальное распределение процессов по вершинам гиперкуба 43

2.3 Оценки времени транспонирования матриц на СЭВМ-6 45

2.3.1 Общая схема алгоритма 46

2.3.2 База индукции 46

2.3.3 Шаг индукции 49

2.3.4 Основное соотношение 50

2.3.5 Некоторые замечания 50

2.3.6 Численные результаты 51

2.3.7 Оценки для малого количества ВУ 51

2.4 Задача обработки данных радара с синтезированной антенной решеткой (SAR) 52

2.4.1 Введение 52

2.4.2 Модельная задача 53

2.4.3 Реальная задача 56

2.5 Быстрое преобразование Фурье на макетном модуле с четырьмя процессорами ЦПОС-2 58

2.5.1 Быстрое Преобразование Фурье по основанию 4 58

2.5.2 Архитектура макетного модуля с четырьмя процессорами ЦПОС-2 61

2.5.3 Оценка производительности макетного модуля на потоке преобразований Фурье различного размера 66

2.6 Обзор современных методов фильтрации данных 76

2.6.1 Прямое вычисление фильтра 76

2.6.2 Фильтрация в области частот 77

2.6.3 Схема блочного использования FFT при вычислении фильтра 79

2.7 Выводы 83

3 Проектирование расширения обработки сигналов для универсального микропроцессора 85

3.1 Описание усовершенствований 85

3.1.1 Усовершенствование №1 85

3.1.2 Усовершенствование №2 85

3.1.3 Усовершенствование №3 86

3.1.4 Усовершенствование №4 86

3.2 Оценка производительности предлагаемых архитектур 87

3.2.1 Исходная архитектура 87

3.2.2 Усовершенствование №1 88

3.2.3 Усовершенствование №2 89

3.2.4 Усовершенствование №3 90

3.3 Другие альтернативы 91

3.4 Теоретические результаты 92

3.5 Архитектура DSP-расширения 93

3.5.1 Описание DSP команд 93

3.5.2 Режимы работы микропроцессора 95

3.5.3 Кэш 2-го уровня 96

3.5.4 Пиковая производительность микропроцессора 97

3.6 Оценка производительности: данные в памяти 98

3.7 Выводы 99

4 Методика использования программных эмуляторов для оценок производительности и верификации процессоров 100

4.1 Работа с долго выполняющимися программами 102

4.2 Портирование ОС Linux 103

4.3 Подключение виртуальной машины к локальной сети 104

4.4 Потактовая модель 104

4.5 Выводы 105

Заключение 106

Приложение

Введение к работе

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

Реальная производительность на сегодняшних универсальных вычислительных системах в разы отличается от номинальной пиковой производительности. Это происходит потому, что универсальные ЭВМ предназначены для решения широкого класса задач.

Однако добиться высокой эффективности проектируемой ЭВМ на определенном классе задач можно, если заранее оптимизировать конструкцию ЭВМ и параметры реализации вычислительных алгоритмов. Этот подход был-предложен академиком РАН В.Б. Бетелиным и получил название «встречная оптимизация»: оптимизация конструкции ЭВМ от подбора параметров микропроцессора до выбора архитектуры и параметров процессорного узла и ЭВМ в целом проводится с учетом алгоритмов, выбранных для решения данного класса задач, и, одновременно, параметры самих этих алгоритмов оптимизируются с учетом параметров конструкции ЭВМ.

Для того чтобы выбрать оптимальную архитектуру вычислительной системы для конкретной задачи разработчик должен иметь представление о том, как те или иные параметры влияют на производительность системы в целом. В настоящей работе описываются как теоретические методы оценки производительности, которые позволяют быстро оценить влияние различных параметров на производительность вычислительной системы, так и программные, которые позволяют верифицировать и скорректировать результаты теоретического анализа. Цель работы (исследования)

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

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

Методы исследования

Исследования имели как теоретическую, так и практическую направленность. Большая часть работы прошла в рамках программы № 15 фундаментальных исследований Президиума РАН "Разработка фундаментальных основ создания научной распределенной информационно-вычислительной среды на основе технологий GRID".

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

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

Направления:

• суперЭВМ, мультипроцессорные ЭВМ, вычислительные узлы;

• расширения универсальных процессоров; • сопроцессоры и спецпроцессоры.

Конкретные разработки:

• проекты СуперЭВМ-1 и СуперЭВМ-6; вычислительные узлы СЭВМ-1 и СЭВМ-6;

• проект вычислительного узла на базе 4-х ЦПОС-02;

• «сигнальное расширение» универсального процессора Комдив-64-СМП; модернизация арифметического сопроцессора СЭВМ-6; разработка SIMD-сопроцессора в составе спецпроцессора К128.

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

Научная новизна работы

Основные результаты работы являются новыми и заключаются в следующем.

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

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

• Показана применимость подхода «встречной оптимизации» к задачам трехмерного моделирования и обработки сигналов на процессорах и сопроцессорах СуперЭВМ с распределенной памятью. • В соответствии с подходом «встречной оптимизации» для данного класса задач, проведен анализ различных алгоритмов, решающих часто встречающуюся на практике задачу фильтрации данных.

Результаты работы, выносимые на защиту

Теоретически (для обеспечения оценки производительности), были выделены и сформулированы в общем виде два часто встречающихся рассуждения: схема потокового программирования и ее применение для оптимизации алгоритмов под конкретные архитектуры вычислительных систем и схема параллельного транспонирования матрицы и ее применение в задачах обработки сигналов.

Практически, доказана применимость подхода «встречной оптимизации» для задач трехмерного моделирования и обработки сигналов на процессорах, сопроцессорах СуперЭВМ с распределенной памятью; спроектированы и реализованы с участием автора или под руководством автора программные эмуляторы исследуемых микропроцессоров и сопроцессоров, а также эмулятор вычислительного узла СЭВМ-6. На начальном этапе разработки микропроцессора, сопроцессора или вычислительного узла эмуляторы использовались для проведения оптимизации архитектуры под конкретный класс; для проведения процесса «встречной оптимизации» архитектуры и используемых алгоритмов. На втором этапе, по завершении процесса «встречной оптимизации», архитектура фиксировалась, и проводился анализ выбранных алгоритмов решения данного класса задач. Результаты этого анализа подтверждались прямыми измерениями производительности алгоритмов, путем непосредственно исполнения алгоритмов на эмуляторе.

Наконец, в соответствии с подходом «встречной оптимизации» оценки производительности не проводятся изолированно, а сочетаются с детализацией архитектуры. Для сопроцессора вещественной арифметики в проекте СЭВМ-6 результатами работы автора на втором этапа были:

• Выбор окончательной архитектуры сопроцессора вещественной арифметики;

• Создание эмулятора сопроцессора вещественной арифметики;

Для расширения универсального процессора Комдив- 64-СМП результатами работы автора на втором этапа были:

• Разработка архитектуры расширения обработки сигналов;

• Оценки производительности с подтверждением на эмуляторе для Быстрого Преобразования Фурье и модельных задач.

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

Для МП ЦПОС-02 автором был проведен анализ возможных вариантов архитектуры многопроцессорного вычислительного узла с целью его использования для задач обработки сигналов.

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

Практическая ценность

Автором выделена теоретическая конструкция «схемы Потокового Программирования», которая в настоящий момент активно используется в НИИСИ РАН при разработке новых процессоров.

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

Автором разработана программная модель расширения для обработки сигналов для универсального процессора Комдив-64-СМП.

В рамках проекта СуперЭВМ СЭВМ-6 автором проведена оптимизация архитектуры сопроцессора вещественной арифметики под практические задачи обработки сигналов, в том числе под реальную задачу обработки данных радара с синтезированной антенной решеткой (Synthetic Aperture Radar, SAR).

Апробация

Основные положения диссертационной работы докладывались и обсуждались на международном семинаре по компьютерной алгебре и информатике, МГУ, 2006г. и на семинарах НИИСИ РАН и механико-математического факультета МГУ.

Публикации

По теме диссертационной работы опубликовано 8 работ; из них 1 в изданиях по перечню ВАК. Структура и объем работы

Работа состоит из введения, четырех глав, заключения, приложения и списка литературы.

В первой главе описывается «схема потокового программирования» процессоров. Первоначально, схема потокового программирования была построена для программирования разрабатываемой в НРІИСИ РАН суперЭВМ с вычислительными узлами на основе сопроцессора вещественной арифметики - СЭВМ-6. В дальнейшем схема потокового программирования активно, использовалась при проектировании различных специализированных и универсальных микропроцессоров, разрабатываемых в НИИСИ РАН.

Вторая глава посвящена развитию методов оценки производительности на примере задач обработки сигналов.

Приводится анализ алгоритмов, возникающих при решении задач обработки сигналов. При помощи схемы потокового программирования проводится оптимизация алгоритмов под конкретные архитектуры процессоров, вычислительных модулей и СуперЭВМ.

В рамках оценки производительности проекта СуперЭВМ СЭВМ-6 выводится схема оптимального распределения процессоров по вершинам гиперкуба и вычисляется время транспонирования матриц.

В конце главы приводится анализ современных методов фильтрации данных - одного из самых важных классов задач обработки сигналов. 

Третья глава посвящена разработке расширения цифровой обработки сигналов для универсального 64-разрядного процессора КОМДИВ 64 - СМП. При помощи методов оценки производительности, описанных в предыдущей главе, удалось увеличить производительность микропроцессора на задачах обработки сигналов до 3 раз.

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

Автор выражает глубокую признательность научному руководителю А.Г.Кушниренко за постановку задач, их полезное обсуждение и внимание к работе. Автор также благодарит команду инженеров и математиков, совместно с которыми проходили работы по созданию сопроцессоров, процессоров, вычислительных модулей и СуперЭВМ в НИИСИ РАН. 

Реализация для вычислительных узлов с косвенной адресацией памяти

Схема ПП хорошо подходит для параллельных вычислений, когда имеется несколько одинаковых АУ, соответствующих модели, описанной выше, и когда необходимо выполнить одинаковые вычисления над разными данными. В таком случае все потоки, выполняемые на одном ВУ, одинаковы (как в предыдущем примере), и программы, выполняемые на различных ВУ, также одинаковы. Тем самым достигается хорошая сбалансированность вычислений: все ВУ начинают и заканчивают работать одновременно. В качестве примера можно указать реализацию на сопроцессоре вещественной арифметики ВУ СЭВМ-6 алгоритма быстрого преобразования Фурье ([2], п.1). В этой реализации различные пары сложитель-умножитель и различные потоки на одной паре просчитывают различные итерации внешнего цикла. 1.2.3 Реализация для нескольких вычислительных узлов при наличии разделяемого общего ресурса Пусть к ВУ с конвейером длины п конкурируют за общий ресурс, к которому можно обращаться каждый такт. Тогда, чтобы не возникало конфликтов между различными потоками на различных ВУ, схему 1Ш для нескольких ВУ, описанную в предыдущем разделе, необходимо подправить следующим образом. Во-первых, время использования общего ресурса делится между потоками: 1й ВУ обращается к общему ресурсу только на тактах с номерами nkl,...,nkl+n-l, 2й ВУ - на тактах с номерами nkl+n,...,nkl+2n-l, Зй ВУ - на тактах nkl+2n,...,nkl+3n-l и т.д. Во-вторых, так как на различных ВУ выполняются одинаковые программы, а время использования общего ресурса разделено указанным образом, то программы на различных ВУ запускаются не одновременно, а с задержкой в п тактов: 2й ВУ начинает работу через п тактов после 1 го, Зй - через п тактов после 2го и т.д. Наконец, программа для одного потока, команды которой затем будут повторены ПО П программа для программа для раз для разных потоков на одном ВУ, пишется таким образом, чтобы обращение к общему ресурсу происходило только в командах с номерами kl+І. Тогда после повторения каждой команды п раз для различных потоков ВУ будет обращаться к общему ресурсу только в отведенное ему время. Эта схема в случае п=2 и к=3 показана на рисунке 1.1. Показана программа для одного потока, программа для одного ВУ и потактовая диаграмма работы всех ВУ. Команды, имеющие возможность обращаться к общему ресурсу, выделены жирным шрифтом и курсивом. В качестве примера рассмотрим делитель сопроцессора вещественной арифметики ВУ СЭВМ-6 ([1], приложение 6).

Можно считать, что он является разделяемым между различными парами сложитель-умножитель общим ресурсом. В данном случае п=4 и к=4. Тогда программа для одного потока пишется так, чтобы команда деления встречалась только в командах с номерами 41+1. Вычисления на различных парах начинаются с задержкой в 4 такта. Использование схемы ПП возможно и в случае, если адресация памяти производится посредством регистров адреса и автоинкремента. Ниже мы покажем, какие изменения необходимо внести в схему ПП, чтобы иметь произвольный доступ к памяти в типичных ситуациях работы с памятью. Будем предполагать, что все потоки на одном ВУ выполняют одинаковые вычисления, как в предыдущем примере. В линейной (без циклов) программе доступ к памяти организуется достаточно простым образом,, так как адреса переменных, к которым необходимо обращаться, постоянны, а в наборе команд имеются спецкоманды, позволяющие записывать постоянные значения в регистры адреса.

Во-первых, одинаковые переменные разных потоков располагаются в памяти в соседних ячейках. Какая-либо переменная 1го потока располагается в ячейке с номером А, то соответствующая переменная 2го потока располагается в ячейке с номером А+1, Зго - с номером А+2 и т.д. (см. рисунок память 1.2). Во-вторых, автоинкременты адресов устанавливаются равными 1. В-третьих, перед каждой командой, которая обращается к какой-нибудь ячейке памяти (заметим, что следующие за ней п-1 команд тоже обращаются к памяти К следующим ячейкам), ставится спецкоманда установки регистра адреса на нужный адрес. Тогда эта команда (и следующие за ней п-1 команды, т.к. автоинкремент равен 1) будет обращаться к нужной ячейке памяти. Таким образом, на каждые п команд, обращающихся к памяти, имеем одну дополнительную спецкоманду, устанавливающую адрес.

Оптимальное распределение процессов по вершинам гиперкуба

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

Если суперЭВМ имеет топологию гиперкуба, эта задача имеет простое оптимальное решение, а именно, можно распределить процессы по узлам так, что смежные процессы попадут на смежные узлы гиперкуба.

Покажем, как вкладывается трехмерная решетка размером 2 x2gx2h в гиперкуб размерности (f+g + h). Будем исходить из естественной нумерации узлов гиперкуба, при которой каждый узел получает номер, бинарное представление которого является его координатами. Тогда нам просто нужно занумеровать вершины решетки таким образом, чтобы номера соседних вершин отличались в бинарном представлении только в одном бите.

Будем строить решение по индукции. Очевидно, что решетка 2х2х21, состоящая из двух вершин 0 и 1, одновременно является гиперкубом размерности 1 (см. рис. 2-5а).

Пусть теперь у нас есть решетка размерности 2f x2glx2hI, для которой такая нумерация уже построена. Теперь мы можем удвоить эту решетку вдоль любого направления, например Ох, зеркально отобразив ее относительно плоскости Oyz.

Узлам отраженной решетки припишем номера, равные номерам симметричных им узлов исходной решетки, так что вдоль границы двух решеток соседние узлы будут иметь одинаковые номера (на Рис. 2-5Ь показан двумерный случай).

Таким образом, каждому узлу объемлющей решетки 2fi+1x2glx2hl приписывается два числа: п - номер узла в подрешетке и т - номер подрешетки (О или 1). Чтобы получить номер узла в решетке, нужно просто приписать бит т впереди бинарного представления номера п (Рис. 2-5с). Пусть (mini) и (т иі) - номера двух соседних узлов. Очевидно, что в таком случае выполняется либо ті = Ш2 и номера щ и л? отличаются на 1 бит, либо, наоборот, nj = ri2 и номера ті и т? отличаются на 1 бит. В обоих случаях это означает, что номера (/«/«/) и (т?и?) отличаются на 1 бит, то есть являются номерами смежных узлов гиперкуба (на рис. 2.5с указаны и двоичные номера клеток).

Правильно выбирая направления отражения решетки, легко получить искомую решетку размерности 2fx28x2h, причем номера узлов будут состоять из (f+ g + К) бит, что соответствует гиперкубу с числом вершин r f+8+hw Заметим, что получающиеся таким образом решетки обладают свойством тора: номера узлов, находящихся друг напротив друга на противоположных гранях, тоже отличаются на 1 бит.

Это построение можно перенести на случай Аг-мерных решеток и торов: в этом случае мы будем зеркально отражать решетки последовательно вдоль к направлений.

Таким образом, топология гиперкуба позволяет легко реализовывать. наиболее часто встречающиеся в задачах структуры процессов: решетки и торы» произвольной размерности (с числом вершин вдоль каждой оси, равным степени 2).

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

Оценка производительности предлагаемых архитектур

Помимо усовершенствований 1-3 рассматривался целый ряд других альтернатив, однако в силу различных причин они были отвергнуты. Среди таких альтернатив необходимо упомянуть о команде выполнения комплексного умножения и команде выполнения всей «бабочки Фурье». К сожалению, данные усовершенствования либо не приводили к существенному увеличению производительности модуля, либо были технически сложны с точки зрения инженеров.

При добавлении возможности вычисления произведения двух комплексных чисел не происходит существенного повышения производительности, т.к. операция ± помещает результаты в соседние регистры. В результате мы не получаем выигрыша в скорости и все равно вынуждены сортировать данные перед началом обработки. Однако внедрение данного усовершенствования потребовало бы дополнительных вычислительных устройств в составе FPU.

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

По результатам теоретических оценок производительности была спроектирована архитектура расширения обработки сигналов. Для повышения производительности микропроцессора КОМДИВ 64 - СМП при решении задач цифровой обработки сигналов в архитектуру микропроцессора были внесены следующие дополнения: Добавлены специальные DSP команды; Добавлен режим работы, позволяющий выполнять 4 команды за такт; Добавлен накристальный кэш 2-го уровня.

Блок вещественной арифметики в универсальных процессорах поддерживает единичные вещественные операции (add, sub, mul, div) с данными одинарной (single) и двойной (double) точности. На начальном этапе разработки микропроцессор КОМДИВ 64-СМП поддерживал объединенные команды умножения с накоплением с данными одинарной (single) и двойной (double). После оптимизации процессора под DSP задачи в качестве DSP-расширения были добавлены два новых типа команд: стандартные MIPS64 команды работы с PS (paired single) данными . новые специальные команды.

Команды первого типа относятся к стандартному набору команд MIPS64, а по последней спецификации архитектуры [34] и к MIPS32. Они рассматриваются как команды вещественной арифметики сопроцессора 3.

Команды второго типа являются нестандартными для архитектуры MIPS64, но также относятся к командам вещественной арифметики сопроцессора 3. К этим командам относятся арифметические команды

Подключение виртуальной машины к локальной сети

Возможность подключения виртуальной машины к локальной позволяет установить любую операционную систему. Если в этой операционной системе реализован драйвер виртуального порта, а также драйвер SLIP или РРР и стек протоколов TCP/IP, то виртуальную машину можно будет связать с Linux-ПЭВМ по IP-протоколу и тем самым сделать ее видимой из локальной сети.

Более подробно схема выглядит следующим образом. Порт ввода-вывода позволяет связать виртуальную машину и Linux-ПЭВМ, на которой запущен сам эмулятор по протоколу SLIP, а, следовательно, и по IP-протоколу. Далее, используя Linux-ПЭВМ в качестве шлюза, можно связать виртуальную машину с любой машиной, находящейся в той же локальной сети, что и Linux-ПЭВМ.

Описанная выше локальная, сеть может использоваться для организации удаленного доступа сотрудников инженерной группы к единственной "эталонной" виртуальной машине для запуска тестов под управлением операционной системы.

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

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

Для обеспечения оценки производительности был сформулирован в общем виде подход к оценке производительности вычислительной системы. Введена схема потокового программирования, которая широко используется в НИИСИ РАН для разработки процессоров, процессорных модулей, ЭВМ и систем обработки сигналов. Описана ее реализация для различных типов вычислительных систем и ее применение в рамках подхода «встречной оптимизации»: структура алгоритма и архитектура вычислительной системы оптимизируются одновременно для достижения максимальной производительности.

Получены оценки производительности для проекта СуперЭВМ СЭВМ-6 и вычислительного модуля на основе 4-х процессоров ЦПОС-02. Для вычислительного модуля на процессорах ЦПОС-02 оценки производительности позволили выделить ключевые параметры, влияющие на производительность модуля. Для СуперЭВМ СЭВМ-6 эти оценки позволили оптимизировать архитектуру вычислительного узла и выбрать оптимальные параметры коммуникационной среды для- повышения эффективности СуперЭВМ. Для оценки производительности СуперЭВМ в целом приводится, схема распределения вычислительных узлов по вершинам гиперкуба и алгоритм транспонирования матриц с оценки времени транспонирования в зависимости от параметров СуперЭВМ. Разработан эмулятор вычислительного узла СЭВМ-6, который позволил верифицировать.теоретические результаты.

Автором разработана программная модель расширения обработки, сигналов для универсального 64-битного микропроцессора. Данное расширение позволило повысить производительность процессора на задачах обработки сигналов в 3 раза. Для верификации результатов теоретического анализа под руководством автора был создан программный эмулятор проектируемого процессора покомандного уровня. Для выбранного при разработке микропроцессора маршрута проектирования, использование эмулятора является основным инструментом отладки, тестирования и доводки процессора. Описаны требования и методика работы с программными инструментами, которые используются для оценок производительности и верификации специализированных и универсальных микропроцессоров. Под руководством автора или с участием автора был реализован ряд подобных инструментов для различных архитектур.

Похожие диссертации на Исследование и разработка методов оценки производительности проектируемых микропроцессоров, процессорных модулей, ЭВМ и систем обработки сигналов