- •1. АССОЦИАТИВНАЯ ПАМЯТЬ. ОПРЕДЕЛЕНИЯ И КОНЦЕПЦИИ
- •1.2. Определение и модель ассоциативной памяти
- •Непрямые (или косвенные) ассоциации
- •Отношение
- •1.3.4. Классические законы ассоциаций
- •Обобщая наблюдения над явлениями человеческой памяти, греческий философ Аристотель (384–322 гг. до н.э.) выдвинул ряд постулатов, впоследствии послуживших основой при построении классических законов ассоциаций [3].
- •2.1. Основные принципы хеширования
- •2.1.2. Функции хеширования
- •Перевод ключевых слов в числовую форму
- •Преобразование числовых значений в хеш-адреса
- •2.2.4. Методы ускорения процедур поиска
- •2.3. Структура и форматы таблиц хеширования
- •2.3.1. Непосредственная и косвенная адресация
- •2.3.2. Форматы таблиц хеширования
- •2.4.2. Списки и списочные структуры
- •2.4.5. Применение методов хеширования для поиска по соответствию
- •3.1.2. Логические основы организации АЗУ
- •Таблица 3.1
- •параллельного действия
- •3.2.2. Анализатор многократных совпадений
- •Приоритетные анализаторы последовательного типа
- •Структурная схема АЗУ с поиском, параллельным по словам и разрядам, приведена на рис. 3.8.
- •Построение АЗУ на базе ЗУ с линейной выборкой
- •Процедура записи в память разрядного столбца
- •Считывание разрядного столбца
- •3.6. АЗУ, параллельные по записям и последовательные по байтам
- •3.8. Схемотехническая база АЗУ
- •4. МЕСТО АССОЦИАТИВНОЙ ПАМЯТИ
- •4.2. Программируемая логика
- •4.2.2. Программирование логики при помощи ассоциативной памяти
- •функциональной памяти
- •4.2.4. Другие способы реализации программируемой логики
- •4.3. Применение АЗУ для выполнения различных
- •управляющих функций
- •5. АССОЦИАТИВНЫЕ ПРОЦЕССОРЫ
- •5.1. Основные тенденции развития ассоциативной памяти
- •5.3. Ассоциативные процессоры с высоким уровнем параллелизма
- •5.4.1. Базовая структура матричного процессора
- •Рассмотрим связи между ячейками МП.
- •5.4.3. Ассоциативный управляющий переключатель
- •5.4.4. Ассоциативный матричный процессор RADCAP
- •5.4.5. Ассоциативный групповой процессор PEPE
- •5.5.1. Вычислительная система STARAN
- •Отличие этого уровня от предыдущих:
При построении ТХ может быть использован многоуровневый вариант косвенной адресации. Функцию флажка D/I в этом случае выполняет флажок связи. Значение 0 этого флажка означает, что искомые данные хранятся в той же ячейке ТХ, если же флажок связи равен 1, то соответствующее информационное поле нужно рассматривать как хеш-связь, т.е. адрес второй таблицы, содержащей, как правило, значительно меньшее количество слов, но большей разрядности. Для хранения записей еще большего размера можно организовать еще одну (третью) таблицу, доступ к которой производится посредством второй хеш-связи и т. д .
Для обращения к данным, расположенным во внешних запоминающих устройствах, адреса должны содержать обычно не менее 20 разрядов. Нерационально размещать в ТХ указатели такой длины. Введение ступенчатого хеширования в этом случае решает проблему.
Метод ступенчатого хеширования успешно применяется при решении ряда банковских задач, в языках высокого уровня, для обработки списков.
2.3.2. Форматы таблиц хеширования
При выборе размера ячейки ТХ следует учитывать не только объем информации, которую предполагается в ней хранить, но и возможность использования укороченного идентификатора вместо ключевого слова (при хешировании методом деления) и сокращение требуемой памяти в случае применения комбинированной адресации, а также принятую в ЭВМ систему адресации, в соответствии с которой указанные ячейки должны занимать целое число байтов или машинных слов.
Содержимое ячейки ТХ включает обязательно:
–ключевое слово (или его идентификатор);
–соответствующие данные (или указатель этих данных).
При внутренней адресация дополнительно резервируется место для флажка «конец последовательности пробинга» или дополнительная ячейка в конце последовательности со специальным кодом. В состав ячейки ТХ могут также входить одноразрядные маркеры (флажок “занято”, флажок коллизии, флажок вычеркивания, флажок связи) или их комбинации (рис. 2.5).
ID |
T |
ДАННЫЕ |
|
|
ID |
Pi |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ID |
U |
T |
D |
ДАННЫЕ |
|
|
45 |
||
|
|
|
|
|
|
|
|
ID P0 P
Рис. 2.5. Типовые форматы ячеек таблиц хеширования
Обозначения на рис. 2.5:
ID – идентификатор ключевого слова; Pi – указатель области данных (индекс);
P0 – указатель области переполнения (или следующей записи в цепочке); T – терминальный символ;
U – флажок “занято”;
D – флажок вычеркивания; C – флажок коллизии;
L – флажок связи.
Cпособы индексации слов в ТХ
Пусть запись таблицы хеширования состоит из k слов, следовательно, их вычисленные адреса в оперативной памяти с произвольным доступом, в которой записи обычно занимают по k последовательно расположенных слов, должны быть кратны k (т.е. полученный с помощью некоторого алгоритма исходный хеш-адрес впоследствии умножается на k).
Например: |
|
|
|
(1, 1) |
(2, 1) |
(3, 1) |
… |
(1, 2) |
(2, 2) |
(3, 2) |
… |
(1, 3) |
(2, 3) |
(3, 3) |
… |
(1, 4) |
(2, 4) |
(3, 4) |
… |
k = 4 – это количество слов в записи. |
|||
Представим таблицу в виде k секций: |
|||
(1, 1) |
(1, 2) |
(1, 3) |
(1, 4) |
(2, 1) |
(2, 2) |
(2, 3) |
(2, 4) |
(3, 1) |
(3, 2) |
(3, 3) |
(3, 4) |
46
(4, 1) (4, 2) (4, 3) (4, 4)
. . . .
. . . .
. . . .
Хеш-адрес может рассматриваться в этом случае как индекс любого элемента записи, распределенной по k секциям, благодаря чему требуется меньше вычислений, что особенно важно при использовании хеш-таблицы в качестве таблицы символов.
2.3.3. Буферизация таблиц хеширования. Клеточная организация
Если ТХ имеет большой размер, то ее фрагмент, в котором находится ЭД с вычисленным адресом, помещается в буферную область быстродействующей основной памяти (БП), а остальная часть обычно хранится во внешнем запоминающем устройстве (ВЗУ). При обработке коллизий с использованием процедуры линейного пробинга значительная часть резервных ячеек (а иногда и все) также попадает в БП. Обмен данными между основной памятью (ОП) и ВЗУ производится страницами типового для каждого вида ВЗУ размера.
Если адресные смещения в процедуре пробинга вычислять циклически, по модулю, равному размеру страницы, вероятность попадания всех резервных ячеек на одну и ту же страницу можно повысить.
Использование буферизации повышает среднюю скорость выборки информации, однако не позволяет получать равномерное распределение занятых адресов.
Метод построения хеш-таблиц, названный клеточной организацией, основан на объединении в группу, называемую клеткой, нескольких последовательно расположенных ячеек памяти, которым присваивается общий для всех ячеек хеш-адрес. Клетка делится на фиксированное количество частей, в каждой из которых размещается по одному конфликтующему элементу. Резервные ячейки отыскиваются в клетке до тех пор, пока все части такой клетки не будут заняты. При заполнении клетки целиком берется вторая клетка, и цепочка резервных ячеек продолжает формироваться уже в ней (рис. 2.6).
Позиция
ID Данные ID Данные ID Данные |
ID Данные |
|
47 |
ID Данные |
Конец |
Размещение в клетках записей переменной длины
Клеточная организация применяется в основном при использовании для хранения данных внешних запоминающих устройств, но в клетках могут помещаться и записи достаточно большого размера и переменной длины, непосредственно друг за другом, без разбиения на части, лишь как-то отделяясь друг от друга – например при помощи специальных кодов.
В [3] дан анализ различных вопросов, связанных со сравнительной оценкой некоторых рассмотренных ранее методов и алгоритмов хеширования,
вчастности:
–среднего числа обращений к памяти для различных процедур пробинга (линейного, случайного, квадратичного и др.), используемых в рамках метода внутренней адресации;
–среднего числа обращений при применении отдельной области переполнения;
–влияния упорядочивания записей в резервных ячейках;
–влияния размера клетки на количество обращений;
–влияния функции хеширования на продолжительность операции поиска и др.
2.4. Виды ассоциативного поиска 2.4.1. Многоключевой поиск
В отличие от таблиц символов, в которых обычно существует взаимно однозначное соответствие между ключевым словом и связанным с
ним значением, в разного рода справочниках, списках заказчиков и других до-
48