
1.1. Параллельная запоминающая среда
Ключевой проблемой проектирования параллельной памяти является выбор правила размещения элементов данных по модулям памяти. На этом основывается бесконфликтность параллельной выборки данных. Проблема бесконфликтности связана с необходимостью одновременной выборки всех элементов данных, составляющих параллельную структуру (геометрический формат).
Рассмотрим содержание задачи о размещении, представляя, что запоминаемая структура данных — двухмерный массив N X N и N = 2n, п — целое. Ранее мы определили модель соответствующей информационной среды — двухмерную решетку, получили оценки для числа геометрических форматов, которые реализуются на такой решетке при определенных значениях N и L — ширины доступа, выраженной числом элементов данных, параллельно выбираемых в структуре геометрического формата. Теперь остановимся на вопросе реализации такой среды.
Речь идет о том, что каждой точке решетки (с точкой мы связывали элемент данных) надо поставить в соответствие область в виртуальной 2D-запоминающей среде, в которой хранится соответствующий элемент данных. Очевидно, что в реальных устройствах с учетом многоблочной внутренней структуры запоминающей среды параллельной памяти такая область должна быть выделена в конкретном блоке и по точно определенному адресу (адресам). Если параллельно выбираемая совокупность данных содержит L элементов, то (исходя из того, что из блока за цикл обращения можно получить только один элемент данных) в запоминающей среде параллельной памяти следует иметь не менее М блоков памяти и М больше либо равно L. Параллельная выборка любой совокупности (геометрического формата) возможна в параллельной запоминающей среде с многоблочной структурой, когда все L элементов формата находятся в разных блоках запоминающей среды. Поясним это на простом примере.
Пусть массив А = {aij} имеет размер 8X8, размещается в параллельной запоминающей среде, состоящей из 8 блоков. При этом допускается параллельная выборка совокупности из 8 элементов данных, т. е. N = L = М = 23. Для рассматриваемого примера достаточно ограничиться емкостью блока U = 8, полагая, что каждый адресуемый участок блока хранит один элемент данных. Распределим элементы аij в блоках памяти так, как это показано на рис. 4,б.
Множество бесконфликтных совокупностей данных образуется из всех возможных сочетаний элементов, размещенных в разных блоках (0, 1, ..., 7). Учитывая, что понятие геометрический формат имеет пространственную геометрическую интерпретацию, будем и далее ее использовать, анализируя такие совокупности элементов данных, как строки, столбцы, прямоугольные фрагменты и др. Понятно, что выбор различных сочетаний связан с формированием адресов для каждого блока, но мы пока не будем касаться указанной проблемы, сосредоточившись на топологической бесконфликтности. Для этого удобнее перейти к таблице размещения, изображенной на рис. 4 в.
Определение 1. Таблицей размещения TpDN1X... XNp будем называть р-мерную таблицу, топологически связанную с р-мерной пространственной точечной решеткой RpDN1X...ХNp так, что каждому узлу решетки соответствует клетка таблицы, причем заданный в клетке идентификатор указывает блок памяти, в котором размещается элемент данных, принадлежащий данному узлу информационной структуры.
Так как на рис. 4 информационная структура представляется как R2D8X8, то соответствующая таблица размещения имеет вид T2D8X8 (рис. 4, в). Для идентификации блоков памяти в данном случае используются их номера (0, 1, ..., 7). Следовательно, цифра 3 в клетке, стоящей на пересечении третьего столбца и второй строки таблицы размещения, указывает, что элемент а23 размещается в блоке памяти с номером 3. Таблица размещения является формой описания размещения элементов данных по блокам памяти, которая наглядно отражает допустимость (бесконфликтность) геометрических форматов. Дадим определение понятия «бесконфликтный геометрический формат».
Определение 2. Геометрический формат является бесконфликтным тогда и только тогда, когда при его отображении на таблицу размещения в нем не существует повторяющихся идентификаторов (номеров) во всех предусмотренных положениях формата.
На основании этого определения мы можем утверждать, что для размещения, заданного таблицей на рис. 4, в, допустимы параллельные обращения к строкам и всем диагоналям массива А. В то же время не допустимы обращения к столбцам и любым невырожденным прямоугольным фрагментам, так как в соответствующих геометрических форматах встречаются повторяющиеся номера, что указывает на размещение определенных элементов данных в одном блоке. Значит, доступ к ним может быть только последовательным.
Формирование набора требуемых форм параллельного доступа (геометрических форматов) связано, следовательно, с выбором таблицы размещения, удовлетворяющей требованиям бесконфликтности геометрических форматов. На рис. 5 приведены четыре варианта таблиц размещения для R2D8X8 Они совпадают с таблицей на рис. 4,в порядком первой строки. Все остальные строки в этих таблицах получены применением различных преобразований порядка элементов первой строки.
Рис. 4. Иллюстрация
к задаче размещения:
а
—
А
= {аij}—
двухмерный
массив данных;
б
—
вариант распределения элементов
массива А
по
блокам памяти 0 ...
7;
в
—
таблица размещения,
соответствующая варианту распределения
а
A = { aij }
а00 а01 а02 а03 а04 а05 а06 а07 а10 а11 а12 а13 а14 а15 а16 а17 а20 а21 а22 а23 а24 а25 а26 а27 а30 а31 а32 а33 а34 а35 а36 а37 а40 а41 а42 а43 а44 а45 а46 а47 а50 а51 а52 а53 а54 а55 а56 а57 а60 а61 а62 а63 а64 а65 а66 а67 а70 а71 а72 а73 а74 а75 а76 а77
в
T2D8X8
а00 а01 а02 а03 а04 а05 а06 а07 а10 а11 а12 а13 а14 а15 а16 а17 а20 а21 а22 а23 а24 а25 а26 а27 а30 а31 а32 а33 а34 а35 а36 а37 а40 а41 а42 а43 а44 а45 а46 а47 а50 а51 а52 а53 а54 а55 а56 а57 а60 а61 а62 а63 а64 а65 а66 а67 а70 а71 а72 а73 а74 а75 а76 а77
В каждой таблице можно определить набор бесконфликтных геометрических форматов. Все эти наборы будут разные. Например если форматы Fr(l X 8) и Fr(8 X 1) реализуются для всех размещений на рис. 5, то форматы Fr(2 X 4) и Fr(4 X 2) —только для размещения на рис. 5, г.
а
б
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 0
1 0 3 2 5 4 7 6 2 3 4 5 6 7 0 1
2 3 0 1 6 7 4 5 3 4 5 6 7 0 1 2
3 2 1 0 7 6 5 4 4 5 6 7 0 1 2 3
4 5 6 7 0 1 2 3 5 6 7 0 1 2 3 4
5 4 7 6 1 0 3 2 6 7 0 1 2 3 4 5
6 7 4 5 2 3 0 1 7 0 1 2 3 4 5 6
7 6 5 4 3 2 1 0 в
г
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 1 2 3 0 5 6 7 4
4 5 6 7 0 1 2 3 2 3 0 1 6 7 4 5
2 3 0 1 6 7 4 5 3 0 1 2 7 4 5 6
6 7 4 5 2 3 0 1 4 5 6 7 0 1 2 3
1 0 3 2 5 4 7 6 5 6 7 4 1 2 3 0
5 4 7 6 1 0 3 2 6 7 4 5 2 3 0 1
3 2 1 0 7 6 5 4 7 4 5 6 3 0 1 2
7 6 5 4 3 2 1 0
Рис. 5. Варианты таблиц размещения Т2D 8Х8
Таблица размещения является формой описания способа отображения информационной структуры на реальную физическую запоминающую среду. Рассматривается отображение
A1:RpDN1X…XNp → {0,1,…,M-1}(4)
при котором каждому элементу р-мерной структуры еi , ..., ip определенному значением координат i1 i2, ..., ip, ставится в соответствие индекс m из промежутка [0, М— 1] —номер блока памяти,
т. е.
m = A1(i1,i2,…,ip)(5)
Функцию А1 (i 1, i2, ..., ip ) будем называть функцией размещения. С помощью выражений (4) и (5) описывается закон размещения, они же определяют правило формирования TpD.
Проблема выбора размещения одна из ключевых при создании параллельного запоминающего устройства. Существует множество отображений (4) и соответствующих им функций (5), и необходимо решать проблему выбора, исходя из требований, определяемых в первую очередь формами параллельного доступа.
Возвращаясь к примеру на рис. 4, обратим внимание на связь между таблицей размещения и таблицей распределения памяти (рис. 4,б). Легко заметить, что никакое изменение порядка элементов в столбцах таблицы распределения памяти не влияет на вид таблицы размещения, хотя, конечно, изменяется общее распределение элементов массива А в запоминающей среде. В этом проявляется зависимость между распределением элементов данных не по блокам памяти, а по адресам внутри блоков. Не изменяя условий бесконфликтного параллельного доступа (они определяются законом размещения), распределение элементов данных по адресам оказывает влияние на реализацию адресного блока параллельной памяти.