Классификация Дазгупты

Одним из последних исследований по классификации архитектур, по-видимому, является работа С. Дазгупты (S.Dasgupta), вышедшая в 1990 году [7]. Автор использовал позитивные идеи работы Скилликорна, которая была рассмотрена ранее в данном обзоре. Пытаясь расширить описательные возможности классификации, он разработал иерархическую систему для классификации архитектур. Изложим ее основные идеи.

Предлагаемая система построена на основе семи элементарных понятий - базовых элементов архитектуры.

Базовые элементы архитектуры:

  • iM - память с расслоением - память, из которой можно выбрать несколько единиц информации за один цикл памяти;

  • sM - простая память - память, из которой можно выбрать единицу информации за цикл памяти;

  • C - программируемая или непрограммируемая кэш-память. Буферные регистры, подобные регистрам CRAY-1, также описываются, как кэш-память;

  • sI - простой (неконвейерный) процессор для подготовки команды к исполнению;

  • pI - конвейерный процессор для подготовки команды к исполнению;

  • sX - простой процессор для исполнения команды;

  • pX - конвейерный процессор для исполнения команды.

Заметим, что функции процессора для подготовки команды к исполнению (I) эквивалентны тем, которые выполняет процессор команд (IP) по классификации Скилликорна, с дополнительной возможностью обращения к кэш-памяти. Аналогично, функции процессора для исполнения команд (X) совпадают с функциями процессора данных (DP) у Скилликорна, включая дополнительно работу с кэш-памятью.

Если архитектура содержит N элементов типа A, которые могут работать в системе параллельно и независимо (обозначим эту возможность AN), то AN будем называть сложным элементом типа A. Считается, что составляющие сложного элемента не имеют между собой физической связи. Например:

sM3 - три блока простой памяти, к которым можно обращаться параллельно и независимо;

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

Назовем кэш-процессором CP объединение C-элемента с I, X или другими CP.

Например,

C.sI, C.(C2.pI)2

Обозначение Ä1.A2" подразумевает последовательное соединение элемента A1 с элементом A2.

Например, процессор команд с кэш-памятью:


C.sI                   C --- sI


Назовем кэш-процессором с памятью MCP объединение M-элемента с I, X, CP или другими MCP.

Например,


iM.(C.sI2)k, sM.iM.C.pIn


Процессором для подготовки команд I" назовем MCP, который представляет собой законченную подсистему подготовки команды к исполнению.

Процессором для исполнения команд X" назовем MCP, который представляет собой законченную подсистему для выполнения команды.

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

Полным описанием архитектуры может служить одиночная или повторяющаяся последовательность, составленная из I" и X" процессоров.

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

Каждая формула служит описанием некоторой структуры. Введем два оператора, устанавливающих соответствие между формулой и структурой.

  1. Пусть R - формула. Тогда оператор Rep(R) описывает следующую структуру:

    Другими словами, если R = AN, то структура описывается оператором Rep(R).

  2. Пусть R = R1.R2. ... .Rn - формула, где Ri может быть базовым или сложным элементом, простым или сложным процессором. Обозначим head(R) = R1 - самую левую составляющую в формуле; tail(R) = Rn - самую правую составляющую в формуле.

Введем второй оператор Link. Пусть R1 и R2 - формулы. Тогда Link(R1, R2):

а) если tail(R1) и head(R2) - простые составляющие, то

б) если tail(R1) простая, а head(R2) - сложная составляющая вида Zn, то

в) если tail(R1) - сложная составляющая вида Wn, а head(R2) - простая, то

г) если tail(R1) - сложная составляющая вида Wn, а head(R2) - сложная составляющая вида Zm, то

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

На следующих рисунках приведены примеры описания широко известных архитектур.

ILLIAC IV

(sM64.sI)(sM.sX)64

CM2

(iM.C.pI)(sM.sX)64k

CRAY X-MP

(iMm.(C.pI)n)(iMm.(Cr.pXs)q)

Выпишем формулы еще для некоторых архитектур, которые также упоминались в нашем обзоре.

CRAY-1(iM.C.pI)(iM.C.pX)
AP-120B(sM.sI)(iM.sM.pX)
FPS-164(iM.C.sI)(iM.sM.pX)
TI ASC(iM.pI)(iM.pX)

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

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

Множество свойств, которые являются определяющими при отнесении объекта к какому-либо классу, назовем классификационными характеристиками (TC - taxonomic characters). В нашем случае введенные выше базовые элементы архитектуры определяют эти классификационные характеристики.

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

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

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

Итак, автор предлагает следующую иерархию категорий:

  1. Самый низкий уровень - категория КЭШ-процессора с памятью MCP (memory-cache processor).

    Классами этой категории являются всевозможные различные архитектуры. Соответствующую архитектуре формулу можно рассматривать как имя класса.

  2. Более высокий уровень - категория КЭШ-процессора (СP). Множество классов этой категории получается путем удаления из классов категории CP составляющих, описывающих память.

  3. Самый высокий уровень - категория процессора (P). Классы получают удалением кэш-составляющих из классов категории CP.

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

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

Две архитектуры принадлежат к одному классу в CP категории, если совпадают их описания процессоров и кэш-памяти. Если две архитектуры сходны только по описанию процессоров команд, то они попадают в один класс процессорной категории.

Приведем пример иерархического подхода к классификации архитектур на примере описания различных модификаций VAX 11:

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


© Лаборатория Параллельных информационных технологий НИВЦ МГУ
Rambler's Top100