Научная статья на тему 'ОБРАБОТКА ЗАПРОСОВ К БАЗЕ ДАННЫХ ПОСРЕДСТВОМ АССОЦИАТИВНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ'

ОБРАБОТКА ЗАПРОСОВ К БАЗЕ ДАННЫХ ПОСРЕДСТВОМ АССОЦИАТИВНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
42
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ / АССОЦИАТИВНОСТЬ / БАЗЫ ДАННЫХ / АДРЕСНЫЕ ОБРАЩЕНИЯ / ЭФФЕКТИВНОСТЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Брехов Олег Михайлович, Тин Мо Аунг

Рассматривается проблема обработки запросов к базам данных (БД) посредством ассоциативной вычислительной системы (АВС). Эта проблема, как идея, была сформулирована Кохоненом Т., т.к. использование АВС может, в принципе, значительно увеличить скорость обработки запросов. В связи с необходимостью обработки запросов в БД большого объёма и совершенствованием элементной базы вычислительных систем, что является магистральным направлением развития БД бортовых и наземных комплексов авиационно-космических объектов, существует интерес к решению этой проблемы. При этом, дополнительное увеличение скорости обработки запросов может быть достигнуто за счет упорядоченной обработки элементарных запросов, образующих запрос к БД. Уменьшение времени обработки запроса возможно при одновременном (параллельном) выполнении операции сравнения на основе ассоциативной памяти (АП). Дополнительное уменьшение времени обработки запроса можно получить, используя расслоение оперативной памяти при чтении необходимых данных в ассоциативную память. Исходя из указанных соображений, в работе определена задача определения структуры ВС для обработки упорядоченных запросов на основе АП, т.е. ассоциативной вычислительной системы (АВС). Возможны два основных метода выполнения запроса: с развитием в глубину (последовательная обработка столбцов таблицы) и с развитием в ширину (последовательная обработка строк таблицы), а также комбинированный метод с развитием в глубину и ширину. В работе на основе реализации метода с развитием в глубину предложена архитектура АВС для выполнения упорядоченных запросов, разработан алгоритм обработки упорядоченных запросов на АВС, выполнена оценка эффективности обработки упорядоченных запросов на АВС.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Брехов Олег Михайлович, Тин Мо Аунг

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ОБРАБОТКА ЗАПРОСОВ К БАЗЕ ДАННЫХ ПОСРЕДСТВОМ АССОЦИАТИВНОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ»

www.mai.ru/science/trudy/

Труды МАИ. Выпуск №84

УДК 004.25, 004.27

Обработка запросов к базе данных посредством ассоциативной

вычислительной системы

Брехов О.М.*, Тин Мо Аунг**

Московский авиационный институт (национальный исследовательский университет), МАИ, Волоколамское шоссе, 4, Москва, A-80, ГСП-3, 125993, Россия

*e-mail: obrekhov@mail.ru **e-mail: tinmoeaung1985@gmail.com

Аннотация

В работе рассматривается проблема обработки запросов к базам данных (БД) посредством ассоциативной вычислительной системы (АВС). Эта проблема, как идея, была сформулирована Кохоненом Т., т.к. использование АВС может, в принципе, значительно увеличить скорость обработки запросов.

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

Уменьшение времени обработки запроса возможно при одновременном (параллельном) выполнении операции сравнения на основе ассоциативной памяти (АП).

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

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

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

Ключевые слова: вычислительной системы, ассоциативность, базы данных, адресные обращения, эффективность.

1. Введение

Ассоциативная память сегодня нашла широкое применение в вычислительных системах (ВС), в частности, при реализации кэш-памяти.

Ассоциативная память привлекла внимание исследователей и при разработке ВС нетрадиционных архитектур [1], в частности, ассоциативных вычислительных машин [2], машин, управляемых потоком данных [3]. В данной работе рассматривается проблема обработки запросов к базам данных (БД) посредством ассоциативной вычислительной системы (АВС). Эта проблема, как идея, была сформулирована Кохоненом Т. [2], т.к. использование АВС может, в принципе, значительно увеличить скорость обработки запросов.

В связи с необходимостью обработки запросов в БД большого объёма и совершенствованием элементной базы вычислительных систем, что является магистральным направлением развития БД бортовых и наземных комплексов авиационно-космических объектов, существует интерес к решению этой проблемы [4, 5]. При этом, дополнительное увеличение скорости обработки запросов может быть достигнуто за счет упорядоченной обработки элементарных запросов, образующих запросы [6]. 2. Постановка задачи

Рассмотрим задачу обработки запросов к БД в простейшей постановке. Пусть имеется одна таблица БД из п строк и т столбцов. Для любой строки таблицы в нулевом столбце таблицы определено имя субъекта, в последующих с 1 по т - 1 столбцов определены данные атрибутов субъекта. Пусть запрос к образован посредством т - 1 конъюнкций элементарных запросов Э

1 ,т — 1, , т.е. запрос 3 = V™! 1Э 3 ¿.

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

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

запроса при упорядоченной обработки элементарных запросов может быть оценено на основе скорректированного выражения [6]: т = П (( Тч т ; 1 + Т ср I х) + ( Тч т 12 + Т ср 12 + Т 3 п I х) Р< 1 +

+ ( Т ч Т I 3 + Т ср * 3 + Т 3 п < 2) Р Р I 2 + ( Тч т ц + Т ср < 4 + Т 3 п * 3) Р ,Р 2 Р 3 + • • • + (1)

+ ( Т ч т I т _ г + Т ср I т _ ! + Т 3 п ¿ш _ 2 ) Р 1Р 2 • • • Р т _ 2 + Т 3 п 1 т _ 1 Р 1Р 2 • • • Р т - 1) — П (( Тчт I 1 + Тср I 1) + И 2 1 ( Тчт ¿7- + Т ср ¿7- + Т 3 п ¿70 П У_ 1 Р I + Т3 п ¿т_ 1 П 1 1р I X

где параметры Тчт|^. , Тср ^ и Т3п ¿.- соответственно, времена чтения, сравнения и записи данных и Р| - частота успеха, соответствующие номеру ¿у — г о столбца

каждой из « строк, при этом номера столбцов (элементарных запросов) обрабатываются последовательно в порядке I 15 I 2 , ... , ¿т _ 1 , который определен для неупорядоченных табличных данных выполнением соотношений [6]:

т ■ т ■ т ■

< < . . . < 1т _ 1 . (2)

1 Р1г 1 ^¿2 1 Р1т-1

Уменьшение времени обработки запроса может быть достигнуто за счет одновременного (параллельного) выполнения операции сравнения, что может быть реализовано на основе ассоциативной памяти (АП)

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

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

Для простоты рассуждений, положим, что каждая клетка i-го столбца, i = О , —— — 1 , занимает в памяти ОП одну ячейку, начиная с базовой ячейки под номером В. Исходя из этого, ячейки имен строк имеют последовательные номера В, В + m, В + 2m, ... В + (n-1)m, а номера ячеек таблицы в ОП могут быть представлены в виде таблицы 1.

Таблица 1. Расположение таблицы в ОП

Номер столбца таблицы

Номер строки таблицы 0 1 2 m-1

1 В В + 1 В + 2 В + m -1

2 В + m В + m + 1 В + m + 2 В + 2m -1

i В + im В + im + 1 В + im + 2 В + (i+1) m -1

n В + (n-1) m В + (n - 1) m + 1 В + (n - 1) m + 2 В + nm -1

Базовая структура АВС содержит расслоенную ОП и ассоциативную матрицу (АМ), см.рис.1

Рис . 1. Базовая структрура АВС

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

На начальном этапе в г - ячеек Я ¿, I = 1 , г, АМ поступает подмассив данных из первых г - строк ¡1 - го столбца таблицы в соответствии с начальным адресом В, содержащемся в базовом регистре адреса, РБ, этого подмассива. В регистр элементарного запроса (РЭЗ) записывается ¡гый элементарный запрос Зi1. Триггеры

- ответчики сбрасываются в нуль. После выполнения операции сравнения содержимого ячеек с содержимым РЭЗ ряд триггеров - ответчиков переходит в состояние 1. Номера единичных триггеров сохраняются в регистре РНТ. Эти номера являются относительными адресами подмассива, которые должны участвовать при сравнении следующих элементарных запросов с соответствующими данными.

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

4. Метод «развитие в глубину» 4.1. Введение в метод

Здесь первый элементарный запрос с номером столбца ¡1 выполняется для всех п строк таблицы. Для этого потребуется провести п/ч операций чтения и сравнения, при этом с целью возможности продолжения выполнения второго элементарного запроса необходимо сохранить начальные адреса и относительные адреса (номера единичных триггеров - ответчиков) для каждого из п/ч шагов (для простоты рассуждений полагаем, что отношение п/ч делится нацело).

Для хранения массива начальных адресов, массива относительных адресов и массива длины относительного адреса (определяемой числом единичных триггеров -ответчиков) введем, соответственно регистры адреса начала подмассива, РАН (й), массив регистров РНТ(й) и массив регистров РЧТ(й), й — 1 , г, а так же коммутатор 1,

КР1, коммутатор 2, КР2, регистры адреса памяти, РАП(^), d = 1, г, и регистры относительного адреса памяти, РАОП^, d = 1 , г, см. рис. 2.

Рис . 2 . Структура ABC метод «развитие в глубину»

4.2. Алгоритм функционирования АВС при обработке первого элементарного запроса

п.1. Сформировать в соответствии с выполнением соотношений (2) вектор порядка обработки столбцов таблицы ¡1^2,....,1т-1 в регистре порядка обработки элементарных запросов - РПО

п.2. Записать в базовый регистр адреса, РБ, адрес таблицы В

РБ := В

пЗ^ Положить порядковый номер элементарного запроса ] :— 1

пА Записать в регистр элементарного запроса, РЭЗ, из регистра РПО значение элементарного запроса, соответствующего ^ - му элементарному запросу

п^ Положить начальный номер подмассива

й :— 1

пА Образовать в регистре РБА адрес начала подмассива ^ - го столбца РАН(й) := (РБ) + ¡1 + (й - 1) гт

п^ Запись адреса подмассива ¡1 - го столбца в регистр памяти РАП РАП(й) := РБА(й)

пАЧтение подмассива длиной г ячеек из ОП в АМ

Сброс всех триггеров-ответчиков, ТО, в нулевое состояние

тЩ Сравнить содержимое регистра элементарного запроса, РЭЗ, с содержимым ячеек АМ

пЛ1 Записать в регистр номеров триггеров-ответчиков, РНТ(й), номера ТО, имеющих единичное значение

пЛ2^ Записать в регистр числа единичных триггеров-ответчиков, РЧТ (й), число, равное числу единичных ТО

П.13. Увеличить значение номера подмассива

d := d + 1

п.14. Если число подмассивов, образующих массив столбцов таблицы d <n/r + 1, то переход на п.6, иначе следующий п.15.

4.3. Алгоритм функционирования АВС при обработке последующих элементарных запросов

4.3.1. Комментарий 1

После перехода к п.15 первый элементарный запрос 3ii обработан для всех строк первого il-го столбца. При этом регистры адреса начала подмассива, РАН (d), d = 1 , г /г, содержат n/r начальных адресов ij-го столбца данных, а именно: (РАН (1)) = В + i1, ..., (РАН(2)) = В + rm + ii, ..., (РАН (n/r)) = В + (n-r)m + il, а регистры номеров единичных триггеров-ответчиков, PHT(d), d = 1 , г / г, содержат указание на номер строки подмассивов, которые удовлетворили первому элементарному запросу 3il, а регистры числа триггеров, P4T(d), d = 1 , г /г, содержат число, равное количеству строк.

Для обсуждения последующих пунктов алгоритма здесь в комментарии, для конкретности, но, не умаляя общности, положим, что число строк n = 16 и число ячеек АМ r = 16.

Пусть после обработки первого элементарного запроса 3il, регистр РНТ(1) содержит 5 единичных ТО: 4,5,7,8,10, остальные ТО содержат нулевые значения,

поэтому (РЧТ(1))=5. Будем также считать, что (РНТ(2)) = 4,9,13,16; (РЧТ(2)) = 4; (РНТ((3)) = 1,2,3,5,6,7,10,11,16; (РЧТ(3)) = 9; (РНТ(4)) = 1,5,6,8,9,10,13; (РЧТ(4)) = 7; (РНТ(5)) = 4,5,7,9; (РЧТ(5)) = 4; (РНТ(6)) = 2,4,9,10,11,13; (РЧТ(6)) = 6.

При обработке второго элементарного запроса Зi2, в соответствии с начальным адресом столбца данных В + 12, и смещением адреса 4т, 5т, 7т, 8т, и 10т из ОП будет считана информация в пять первых ячеек ассоциативной матрицы: Я(1) - Я(5). Пусть при выполнении операции сравнения 5-ти ячеек АМ со значением соответствующим элементарному запросу Зi2 единичные значения получили ТО с номерами 1,2 и 4 в силу совпадения с ячейками 1, 2 и 4. В соответствии с содержимым (РЧТ(1)) = 5 образуем двоичный вектор ДВ (1) длиной 5 двоичных разрядов: (11010), см. табл. 2.

Таблица 2. Образование двоичного вектора ДВ (1)

Номера ТО 1 2 3 4 5

Номера ТО со значением 1 1 2 4

Двоичный вектор ВВ(1) 1 1 0 1 0

Полученный двоичный вектор ВВ(1) дает возможность скорректировать информацию в регистрах РНТ(1) и РЧТ(1), см. табл.3, посредством аннулирования тех номеров ТО, для которых значение разрядов ЭВ(1) равны 0.

Таблица 3. Коррекция регистров РНТ(1) и РЧТ(1)

РНТ (1) 4 5 7 8 10

ОВ(1) 1 1 0 1 0

Операция «если 4 5 8

(БВ(1)) = 1, то

значение РНТ (1)»

В результате получили новые значения регистров: (РНТ(1))=4,5,8 и (РЧТ(1))=3.

Производительность АВС может быть увеличена, если при обработке второго и последующих элементарных запросов использовать все г (16) ячеек АМ.

Для этого в нашем случае на первом этапе обработки второго элементарного запроса Зi2 информация копируется в АМ из ОП:

из первого подмассива в соответствии с начальным адресом (В + ¡2 + 1) и смещением адреса 4т, 5т, 7т, 8 и 10т в ячейки Я1- Я5;

из второго подмассива в соответствии с начальным адресом (В + ¡2 + 1+ гт) и смещением адреса 4т, 9т, 13т и 15т в ячейки Я6+Я9;

из третьего подмассива в соответствии с начальным адресом (В + i2 + 1+ 2тт) и смещением адреса 1т, 2т, 3т, 5т, 6т, 7т, и 10т в ячейки Я10+Я16.

Отметим, что третий подмассив считан из ОП в АМ не полностью, для указания этого положим значения параметров F2 = 1, D2 = 1.

Будем считать, что информация i2 столбца в 4, 5 и 8 строках первого подмассива, в 4,13 и 16 строках второго подмассива, в 2, 3, 5, 6 и 10 строках третьего подмассива совпадают со значением элементарного запроса 3i2.

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

Таблица 4. Значения триггеров-ответчиков и двоичных векторов на первом этапе

N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ТО

DB 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1

DB(1) DB(2) DB*(3)

В соответствии с полученными двоичными векторами необходимо скорректировать содержимое регистров РНТ(1)-РНТ(3) и РЧТ(1)-РЧТ(3). Так как параметры Б2 — 1, Э2 = 1, то двоичный вектор ЭБ*(3) является усеченным - он содержит 7-мь разрядов. Увеличим число его разрядов в соответствии со значением регистра числа единичных триггеров-ответчиков РЧТ(3) до 9 разрядов посредством добавления справа 2-ух единичных разрядов,см. табл. 5^

Таблица 5. Коррекция регистров РНТ(1) - РНТ(3) и РЧТ(1) - РЧТ(3)

РНТ(1) РНТ(2) РНТ(3)

4 5 7 8 10 4 9 13 16 1 2 3 5 6 7 10 11 16

1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1

DB(1) DB(2) DB(3)

Новые значения регистров имеют вид: (РНТ(1)) = 4,5,8; (РЧТ(1)) = 3; (РНТ(2)) = 4,13,16; (РЧТ(2)) = 3; (РНТ(3)) = 2,3,5,6,10,11,16; (РЧТ(3)) = 7.

Значение параметра F2 = 1 указывает на необходимость использования информации из последнего (третьего) подмассива на втором этапе. что отмечается посредством задания значений параметров F1 и D1: F1 = 1, D1 = D2 = 1.

На втором этапе формирования следующего массива в АМ загружается информация:

в соответствии со значениями F 1=1 и Д1=2 из двух последних строк третьего подмассива ОП, используя начальный адрес третьего подмассива (В + i2 + 1 + 2rm) и смещения адресов 11m и 16m, в ячейки Я1, Я2 АМ;

из четвертого подмассива ОП в соответствии с начальным адресом (В + i2 + 1 + 3rm) и смещениями адресов 1m, 5m , 6m, 8m, 9m, 10m, и 13m в ячейки Я3-Я9 АМ;

из пятого подмассива ОП в соответствии с начальным адресом (В + i2 + 1 + 4rm) и смещениями адресов 4m, 5m, 7m, и 9m в ячейки Я10 - Я13 АМ.

Так как теперь в АМ остались свободными 3 ячейки, то из шестого подмассива ОП будет загружена информация только из трех строк, в соответствии с

начальным адресом (В + ¡2 + 1 + 5гт) и смещениями адресов 2т, 4т и 9т в ячейки Я14-Я16 АМ.

При этом, так как длина шестого подмассива больше трех (РЧТ(5)) — 6), то флаг Б2 получает значение 1 и параметр Д2 получает значение, равное числу загруженных строк шестого подмассива, т.е. Д2 — 3, Б2 — 1.

Будем считать, что информация ¡2 - го столбца в 11 строке третьего подмассива, в 1, 6, 9, 10, и 13 строках четвертого подмассива, 4,5 и 7 строках пятого подмассива и в 3 строке шестого подмассива совпадают со значением соответствующим Э3i2.

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

Таблица 6. Значения триггеров-ответчиков и двоичных векторов

на втором этапе

№ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

ТО

ДВ 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1

ДВ* (3) ДВ(4) ДВ(5) ДВ*(6)

При этом, т.к. Б 1=1 и Д1=2, то двоичный вектор ЭБ*(3) является усеченным слева на пять разрядов ((РЧТ(3))-(Д1) — 7-2 — 5), которые заполняются 5-ью левыми единицами.

Аналогично, т.к. Б2—1 и Д2=3, то двоичный вектор ДВ*(6) является усеченным справа на три разряда ((РЧТ(6)) - (Д2) — 6-3 — 3), которые заполняются 3-мя правыми единицами.

В соответствии с полученными двоичными векторами необходимо скорректировать содержимое регистров РНТ(3) - РНТ(6) и РЧТ(3) - РЧТ(6), см. таблицу 7, и значения флагов.

Таблица 7. Коррекция регистров РНТ(3) - РНТ(6) и РЧТ(3) - РЧТ(6)

РНТ (3) РНТ (4) РНТ (5) РНТ (6)

2 3 5 6 10 11 16 1 5 6 8 9 10 13 4 5 7 9 2 4 9 10 11 13

1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1

ДВ (3) ДВ (4) ДВ (5) ДВ (6)

(РЧТ(3)) = 7 (РЧТ(4))—7 (РЧТ(5))—4 (РЧТ(6))—6

Скорректированные значения регистров и флагов имеют вид:

(РНТ (3)) — 2,3,5,6,10,11; (РЧТ(3)) — 6,

(РНТ (4)) —1,6,9,10,13; (РЧТ(4)) — 5,

(РНТ(5)) — 4,5,7; (РЧТ(5)) — 3,

(РНТ(6)) — 9,10,11, 13; ((РЧТ(6)) — 4,

Б1=1, Д1 = Д2, т.е. Д1 = 3,

Б2—0.

Заметим, что если строки последнего подмассива помещаются в АМ целиком, не оставляя свободных ячеек АМ , то F1:=0. Далее, процесс обработки запросов продолжается.

4.3.2. Этап 1

п.15. Положить порядковый номер элементарного запроса

j = 2

п.16. Записать в регистр элементарного запроса, РЭЗ, значение элементарного запроса, соответствующего ij - му элементарному запросу

п.17. Положить F 1=0

п.18. Положить номер начального подмассива при загрузке ячеек АМ

V = 1

п.19. Сформировать значение длины первого подмассива w при загрузке ячеек АМ: РЧТ (v), если F1=0

w = {

РЧТ (v) - D1, если F1=1 п.20. Если w + (РЧТ (d)) = 0, то п.55, иначе п.21

4.3.3. Комментарий 2.

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

4.3.4. Этап 2

п.21. Проверка условия 1 (невозможность полного заполнения АМ) Если w + X ^=Т7 (РЧТ (d)) < r при t < n/r+1, то п.22, иначе п.26 п.22. Верхняя граница s загружаемых подмассивов s : = n/r

п.23. Промежуточный номер начального подмассива следующего этапа загрузки ячеек АМ

v1 := s + 1

п.24. F 2 := 0

п.25. Идти к п.36

п.26. Условие 2. (последний целиком загружаемый подмассив обеспечивает полное заполнение АМ), при этом определяем значение t из условия выполнения соотношения:

Если (w + X ьа=v (РЧТ (d)) < r) А (w + X ^ (РЧТ (d)) = r), то п.27, иначе п.31 п.27. Верхняя граница s загружаемых подмассивов

s := t +1

п.28. Параметр переполнения F2 := 0

п.29. Промежуточный номер начального подмассива следующего этапа загрузки ячеек АМ равняется следующему номеру по отношению к номеру последнего подмассива текущего этапа загрузки ячеек АМ

v1 := s + 1

п.30. Идти к п.36

п.31. Условие 3. (последний загружаемый подмассив обеспечивает полное заполнение АМ, но не может быть помещен в АМ целиком), при этом определяем значение t из условия выполнения соотношения:

Если (w + X £=* (РЧТ (d)) < r) А (w + X £t* (РЧТ (d)) > r), то п.32, иначе п.36 п.32. Верхняя граница s загружаемых подмассивов

s = t +1 п.33. Параметр переполнения F2 :=1

п.34. Число строк переполнения подмассива D2 := r - (w + X £=* (РЧТ (d))

п.35. Номер начального подмассива следующего этапа загрузки ячеек АМ равняется номеру последнему подмассива текущего этапа загрузки ячеек АМ

VI := s

4.3.5. Комментарий 3

Заполнить адресный массив ОП базовыми адресами и смещениями, при этом адреса ячеек ОП образуются как исполнительные адреса ИА := (РАП(й)) + т * (номера ТО, содержащиеся в РАОП(й)).

4.3.6. Этап 3

п.36. Для любого й — Щ, если (РЧТ(й)) > 0, то РАП(йТ) :— (РАН(й)) + далее п.37

п.37. Для любого й — уПл^!, если (РЧТ(й)) > 0, то РАОП(й) :— (РНТ(й)), далее п.38

п.38. Если (РЧТ(v) > 0) Л Б 1=1, то РАОП(v) := правые (РЧТ» - Б1) номера ТО из регистра РНТ^), далее п.39

п.39. Если (РЧТ(v) > 0) Л (F1=0), то РАОП» := РНТ(v), далее п.40

п.40. Если (РЧТ(s) > 0 л (F2=1), то РАОП(s) :— левые (РЧВД - Б2) номера ТО из регистра РНТ^), далее п.41

п.41. Если (РЧТ(s) > 0 л (Б2—0), то РАОП(s) :— РНВД.

п.42. Чтение содержимого ячеек ОП в ячейки АМ

п.43. Установить триггера - ответчики в состояние 0

п.44. Сравнить содержимое ячеек АМ с содержимым регистра РЭЗ

п.45. Образовать последовательно двоичные векторы:

ДВ(у), длиной (РЧТ(у), если Б1 = 0, или длиной (РЧТ(у)) - Д1, если F1=1, ДВ(й), й = гт+ХТ^Г, длиной РЧТ(й);

ДВ(^), длиной (РЧТ(^)), если F2 = 0; или (РЧТ(й)- Д2), если F2 = 1.

4.3.7. Комментарий 4

Двоичные векторы ДВ(у) и ДВ(^) должны быть скорректированы, если Б 1=1 и F2=1

4.3.8. Этап 4

п.46. Если F1 = 1, то разряды двоичных векторов ДВ(у) должны быть распространены влево на (РЧТ(у)-Д1) разрядов с единичными значениями так, что бы длина ДБ(у) сравнялась со значением (РЧТ(у)).

п.47. Если F2 = 1, то разряды двоичных векторов ДБ(^) должны быть распространены вправо на (РЧТ(^) - Д2) разрядов с единичными значениями так, что бы длина ДБ(^) сравнялась со значением (РЧТ(^)).

4.3.9. Комментарий 5

Коррекция содержимого регистров РНТ(ё) и РЧТ^).

4.3.10. Этап 5

п.48. РНТ(й) := РНТ(й) Л ДВ(й), й = ++.

п.49. РНТ(й) := содержимое (РНТ(й)) без удаленных номеров ТО

п.50. Получить С(й) = X I ДВ(й), где ДВ(й) есть 1-ый разряд двоичного вектора ДБ(й), й = ++.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

п.51. РЧТ(d) := С(ё), й — Ту.

п.52. Если F2=1, то присвоить F1 :— 1, Д1 := Д2, иначе п.52 п.53. Если F2=0, то F1 :— 0 п.54. V := VI

п.54. Если V < п/г +1, идти к п.19, иначе п.55

п.55. Увеличить порядковый номер элементарного запроса

7 : = 7 + 1

56. Если7 < т +1, идти к п.16, иначе п.57

4.3.11. Комментарий 6

Формирование адресного массива ОП новой таблицы

4.3.12. Этап 6

п.57. Для любого й — ТТ , если (РЧТ(й)) >0, то РАП(й) := РАН(й), РАОП(й) :— РНТ(й)

5. Оценка эффективности метода

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

ТАВ с — (п/г) (( тЧ1, х + тср * + Е1 (Тчт ч + тср ¿. + т3 Пф пР г + Т3 п, ПТ=1 1Р ,),

(3)

Имея ввиду, что число r ячеек АП, как и число к регистров РНА, РНТ и РЧТ,

является фиксированным в АВС, осуществимость метода выполнения

упорядоченных запросов с развитием в глубину достигается при условии n/r < к+1.

Поэтому при условии к < n/r, требуется использовать комбинированный метод

выполнения упорядоченных запросов с развитием в глубину и ширину.

6. Выводы

6.1. Предложена архитектура АВС для выполнения упорядоченных элементарных запросов.

6.2. Разработан алгоритм обработки упорядоченных элементарных запросов на АВС.

6.3. Выполнена оценка эффективности обработки запросов на АВС.

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

Библиографический список

1. Кохонен Т. Ассоциативные запоминающие устройства. - М.: Мир, 1982. - 384 с.

2. Бурцев B.C. Система массового параллелизма с автоматическим распределением аппаратных средств суперЭВМ в процессе решения задачи. Юбилейный сборник трудов институтов Отделения информатики, вычислительной техники и автоматизации РАН, Москва, 1993, Т. II, стр. 5-27.

3. Брехов О.М., Морару В.А. Аналитическое моделирование ЭВМ, управляемой потоком данных // Автоматика и телемеханика. 1993. № 12. С. 165-178.

4. J. G. D. da Silva, I. Watson, A. C. D. de Figueiredo. Associative Memory and Database Machines — A Brief Survey and a Design Proposal Using Hardware Hashing NATO ASI SeriesVolume 24, 1986, pp 547-555.

5. Rony Zarom, Kenneth Ross, Kenneth Yip. Using associative memory to perform database operations US20040172400 A1. US 10/483,409, 2004

6. Брехов О.М. Аналитическая оценка оптимальной обработки запросов // Успехи современной радиоэлектроники. 2012. Т.12. № 7. C. 37-45.

i Надоели баннеры? Вы всегда можете отключить рекламу.