1.2. Организация адресации

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

Adr[Frq/pD(…)] = {i1,i2,…,ip}(6)

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

Adr[Frq/pD(…)]→{adr0,adr1,…,adrM-1}(7)

где adrv — адрес на входе v-гo блока памяти; М — общее число блоков. Таким образом, рассматривая организацию адресации в параллельной памяти, необходимо остановиться на двух ас­пектах: определение внешнего адреса для параллельной памяти, являющегося адресом геометрического формата, и формирова­ние внутренних адресов, соответствующих расположению эле­ментов геометрического формата в реальной запоминающей среде с многоблочной структурой.

В первом случае нас интересует вопрос о допустимом множе­стве адресов для выбранного геометрического формата. На первый взгляд кажется, что оно определено выражением (6) так как при условии того или иного решения для краевых положений возможные адреса геометрического формат обусловливаются множеством координат (множеством точек) RpDN1X...XNp . Однако, следует учесть, что в реальной физической запоминающей среде могут существовать ограничения, порож­даемые размещением данных в многоблочной памяти. Эти огра­ничения описываются и проверяются, например с помощью таб­лиц размещения.

Обратимся к рис. 4, а, на котором показано размещение двухмерного массива А, и выберем в качестве варианта разме­щения таблицу на рис. 5, г. Рассматривается случай размеще­ния 64 элементов массива А в восьми блоках памяти. При ширине доступа L = 8 в R2D8X8 можно реализовать четыре плотных правильных геометрических формата, обеспечивающих покры­тие R2D8X8 .Это Fr(l X 8), Fr(8X 1), Fr(2 X4) и Fr(4X2) (рис. 6).

Рис. 6. Примеры плавающих (б, в) и полуплавающих (г, д) геометрических форматов на R2D8X8 при Т2D8X8 , заданной таблицей (а); недопустимое положение формата Fr(4 X 2) (е)

Из таблицы размещения видно, что для форматов Fr (1 X 8) и Fr(8 X 1) бесконфликтны любые положения по осям I1 и I2 соответственно, а если обеспечиваются циклические замыкания, то координаты положения формата произвольны по обеим осям.

Значит,

{Adr[Fr1/2D(8 X 1)]}= {Adr[Fr1/2D(1 X 8)]} = {i1,i2} для i1 = 0,1, …, 7 и i2 = 0,1,…,7 (8)

Выражение (8) определяет множество возможных адресов для геометрических форматов строки и столбца. Так как формат имеет точно определенную структуру, то пара координат (i1, i2). задавая положение одного элемента, определяет тем самым и положение всего формата. Какой из элементов формата будет выбран для привязки его положения, безразлично. Все же для определенности примем, что это всегда элемент с наименьшими координатами, т. е. для строки и столбца, изображенных на рис. 6,6,в:

Adr[Fr(l X 8)] = (3, 0), Adr[Fr(8 X 1)] = (0, 3).

Из выражения (8) видно, что для форматов строки и столбца массива А при выбранном размещении допускаются произвольные положения в R2d8X8 . Переходя к более общему случаю, выделим в RpDN1X...XNp класс форматов, которые при заданном размещении могут быть выбраны в произвольных по­ложениях, т. е. множество всех возможных адресов для этого класса форматов содержит N = N1 , N2 , ..., Np членов. Будем на­зывать такие форматы плавающими.

На рис. 6,г, д изображены форматы Fr(2 X 4) и Fr(4 X 2) в положениях, соответствующих адресам

Adr[Fr(2 X 4)] = (2, 0), Adr[Fr(4 X 2)] = (0, 2).

Как следует из таблицы размещения на рис. 6, а, они бесконфликтны. Также бесконфликтны и любые положения этих форматов, получаемые перемещениями из указанных на рисунке положений в пределах зон, отмеченных штриховкой. Несложно убедиться, что произвольные перемещения в пределах соответст­вующих зон возможны для Fr(2 X 4) в направлении оси I1 при значениях координаты i2 = 0, 4, в направлении оси I2 при значе­ниях координаты i1 = 0, 2, 4, 6. Для формата Fr(4 X 2) переме­щения по оси I2 возможны при i1 = 0, 4, а по оси I1 при i2 = 0, 2, 4, 6.

В то же время при i1 = 1, i2 = 1 (это положение показано на рис. 6, е) параллельная выборка формата Fr(2 X 4) невоз­можна, так как по два его элемента размещаются в нулевом и шестом блоках памяти. Анализ таблицы размещения позволяет выделить и еще ряд таких положений для Fr(2 X 4) и Fr(4 X 2). Значит, при размещении, соответствующем таблице на рис. 6,а, форматы Fr(2 Х 4) и Fr(4 Х 2) не являются пла­вающими.

Учитывая, что все же имеются опорные положения для рас­смотренных форматов, относительно которых они произвольно перемещаются по каждой из координат, будем называть их полуплавающими. Естественно, что подобные форматы существуют для определенных размещений и в более общем случае в RpDN1X..XNp. Они образуют класс полуплавающих форматов.

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

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

Интуитивно ясно, что распределение по адресам внутри бло­ков должно быть связано с выбранным законом размещения. Для разных размещений и геометрических форматов преобразо­вание (7) будет иметь разную степень сложности. Если обра­титься к примеру, представленному на рис. 4, то можно отме­тить, что алгоритм формирования адресов в блоках при выборе данных в формате строки очень прост. Все элементы произвольной строки расположены в блоках памяти 0, 1, ..., 7 по одина­ковым адресам, совпадающим с номером строки. Для этого слу­чая при Adr[Fr(l X 8)] = (i1 , i2) можно записать

adr0 = adr1 = …= adr7 (9)

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

adrm = (8-i2)+m(mod8) (10)

В отличие от случая (9) в адресном блоке, реализующем (10), должны выполняться арифметические операции по моду­лю 8. Понятно, что алгоритм вычисления адресов сильно влия­ет на сложность реализации адресного блока.

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

Ad:RpDN1X…XNp → {0,1,…,U-1} (11)

при котором каждому элементу р-мернои структуры еi1…..ip , определенному значениями своих координат i1 , i2 , ..., ip , ста­вится в соответствие индекс adr из промежутка [0, U—1]—адрес в блоке памяти. Значение адреса данных (adr) определяется с по­мощью функции

adr = Ad(i1, i2, … , ip) (12)

которую будем называть адресной.

С помощью выражений (11) и (12) описывается закон распределения адресов, который совместно с законом разме­щения (4), (5) устанавливает правило формирования таблицы распределения данных в многоблочной запоминаю­щей среде. Пример такой таблицы приведен на рис. 4,6.

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

Соседние файлы в папке 2.3. Процессорные матрицы