КЛАССИФИКАЦИЯ ПРОЦЕССОРНЫХ АРХИТЕКТУР

Стрельцова Н.В.
ООО «Уральская архитектурная лаборатория»


Источник: Материалы доклада Стрельцова Н.В. на международной научной конференции “Суперкомпьютерные системы и их применение”, Минск, 26-28 октября 2004.


Введение

       В 1966 году была опубликована статья М. Флинна [1], в которой впервые была предложена классификация вычислительных систем. Успех ее был предопределен той уникальной простотой и интуитивной понятностью, используемых для классификации характеристик. В данный момент она наиболее известна и употребительна, несмотря на то, что целый ряд процессорных архитектур (потоковые и редукционные машины) не вписываются в данную классификацию.

       Любая система классификации систематизирует объекты одного типа. Очевидно, что вычислительная система и процессор – это разные объекты. Если проводить аналогию с живой природой, то вычислительная система – это колония муравьев, а процессор – это отдельный муравей, которые должны классифицироваться отдельно.

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

1. Основные понятия и определения

       Представим однопроцессорную фон-неймановскую вычислительную машину как структуру, состоящую из трех функционально законченных частей:

       Устройство управления (УУ) формирует поток команд, поступающий на исполнение.

       Исполнительное устройство (ИУ) – часть машины, исполняющая поток команд. Результатом исполнения является поток данных.

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

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

       Расширив нотацию, предложенную М. Флинном, данную модель архитектуры можно описать как SISD(SI). То есть архитектура с одиночным потоком команд и одиночным потоком данных, определяемым одиночным потоком команд.

Каждая команда потока описывает операцию, которую должно выполнить ИУ. Поступившая в ИУ и выполненная там, она порождает один элемент потока данных. Этим элементом может быть число, несколько чисел или какой-то код (набор признаков). Содержание элемента определяется командой. Он может быть записан в память, может быть передан обратно в ИУ, либо в УУ, либо в УУ и ИУ. Направление передачи потока данных определяется архитектурой. В первом случае – это фон-неймановская архитектура, отличающаяся императивным управлением и императивным исполнением. Во втором, который описывается как SISD(SI,SD), при императивном управлении неимперативное (внеочередное) исполнение команд. Третий случай – это потоковая машина, которая описывается как SI(SD)SD(SI). Четвертый случай объединяет последние два и описывается как SI(SD)SD(SI,SD).

       Распространим данный подход к классификации архитектур на общий случай и определим основные понятия.

       Архитектура процессора – это абстрактная структура, представленная в виде ориентированного графа, состоящего из множества вершин, образованных одним или множеством УУ и одним или множеством ИУ, а также множества дуг, образованных потоками команд, исходящими из УУ, и потоками данных, исходящими из ИУ, при этом:

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

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

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

       Одиночный поток команд – поток команд, формируемый одним УУ.

       Множественный поток команд – поток команд, образованный множеством одиночных потоков команд (множеством УУ).

Процессор имеет множество УУ, если он имеет более одного УУ, каждое из которых обеспечивает независимое от других УУ формирование потока команд.

       Одиночный поток данных – поток, полученный в результате выполнения потока команд, поступающего в одно ИУ.

       Множественный поток данных – поток данных, образованный множеством одиночных потоков данных (множеством ИУ).

Процессор имеет множество ИУ, если он имеет более одного ИУ, каждое из которых обеспечивает независимое от других ИУ исполнение поступающего потока команд.

       Очевидно, что множественность УУ и ИУ дает теоретическую возможность построения достаточно большого количества ориентированных графов, удовлетворяющих условию связности.

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

2. Архитектуры с хранимой программой

       Архитектуры с хранимой программой наиболее исследованная группа архитектур. Практически все реально используемые архитектуры входят в первые три класса. В классе MIMD в настоящее время известна только одна архитектура – синпьютер [2]. Качественное отличие этой архитектуры заключается в том, что она единственная среди известных архитектур обеспечивает возможность динамической программной декомпозиции множества процессорных элементов (ПЭ) на произвольные L подмножеств (1 ? L ? N), каждое из которых представляет собой либо независимо функционирующее логическое процессорное устройство (если подмножество включает один ПЭ), либо независимо функционирующую логическую VLIW-подобную машину (если подмножество включает несколько ПЭ).

Коммутационная среда и возможность одновременной и независимой работы нескольких VLIW-подобных машин (task-групп) обеспечивают эффективную реализацию в рамках одной архитектуры всех трёх видов параллелизма:

3. Архитектуры с хранимым алгоритмом

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

       Известна всего одна реализация – редукционная машина. Модель SI(SI)SD(SI,SD). Анализ архитектур этой группы, в первую очередь класса MIMD, показывает, что их реализация создает основу для решения целого ряда проблем, а именно:

4. Заключение

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

Литература

  1. Flynn M.J. Very High-Speed Computing Systems // Proceeding IEEE. - N 54. – 1966. - pp. 1901-1909.
  2. Streltsov N., Sparso J., Bokov S. and Kleberg S. A Novel MIMD Processor Targeting High Performance Low Power DSP Application // International Signal Processing Conference (GSPx-2003), Dallas, April, 2003.

Вернуться в раздел Библиотека