- •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
- •Отличие этого уровня от предыдущих:
Если в процессе проверки выяснится, что очередной элемент не принадлежит к цепочке, соответствующей требуемому хеш-адресу, то дальнейший поиск не нужен.
Для их определения предлагается использовать функцию хеширования, которая формирует виртуальный хеш-адрес, имеющий на несколько битов больше, чем нужно для обращения к ячейкам таблицы. Дополнительные стар-
шие биты служат идентификатором вычисленного адреса и хранятся в ячейке совместно с ключевым словом. Младшие разряды виртуального хеш-адреса образуют истинный адрес ячейки внутри таблицы.
Вначале сравнивается содержимое дополнительных разрядов (вместо ключевых слов). При большой длине ключевых слов указанная операция занимает значительно меньше времени, чем сравнение самих ключей. В итоге увеличивается среднее быстродействие, но ценой затрат на хранение дополнительных битов.
2.3.Структура и форматы таблиц хеширования
2.3.1.Непосредственная и косвенная адресация
Индексные ТХ
Таблицы хеширования, как правило, строятся исходя из максимальной
длины ЭД, размеры которых могут изменяться, в результате чего часть памяти будет использоваться непроизводительно. Кроме того, с увеличением длины записей возрастает трудоемкость (время) поиска. Если разместить ЭД в специально отведенной области памяти, а в основной ТХ хранить только указатели, содержащие адреса элементов в этой области и соответствующие идентификаторы, то при такой структуре в процессе поиска проверке подвергаются только ключевые слова (или их идентификаторы) и обращение к отдельной области памяти производится только после того, как будет найден требуемый элемент. Таким образом, допуская некоторые увеличения количества обращений к памяти (что неизбежно при использовании многоуровневой памяти), можно повысить эффективность поиска. Преимущество предлагаемой схемы состоит также в том, что при необходимости основную ТХ (которую в дальнейшем будем на-
43
зывать индексной ТХ) можно без особых затруднений поместить в другую область.
Индексные ТХ достаточно распространены, особенно в СУБД. Однако если они используются в качестве таблиц символов с короткими именами , то косвенная адресация описанного типа приводит лишь к увеличению количества вспомогательных операций.
Комбинированная адресация в ТХ (ступенчатое хеширование)
Рассмотренный выше принцип построения ТХ можно рассматривать как простейшую форму косвенной адресации. Ее можно сделать более эффективной, если в одной и той же таблице наряду с косвенной адресацией использовать и прямую (непосредственную) адресацию. Для задания режима адресации в каждой ячейке таблицы отводится специальный разряд, именуемый флажком связи.
Напомним, как аналогичный принцип реализуется в современных ЭВМ. На рис. 2.4 показана структура типовой машинной команды.
Можно было бы прямо в поле кода операции (КОП) указать, является ли содержимое адресного поля константой или адресом. Это может быть задано специальным признаком D/I (непосредственная или косвенная адресация).
|
|
D/I |
|
|
|
D/I |
|
а |
|
|
|
|
|
|
|
КОП1 |
0 |
Операнд |
б |
КОП2 |
0 |
Адр. (операнд) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D/I
в КОП3 0 Адр. (адр./операнд)
Рис. 2.4. Структура типовой машинной команды
Если D/I = 0, то в указанном поле записан непосредственный, или абсолютный, адрес ячейки, в которой находится искомый операнд.
Если D/I = 1, то истинный адрес извлекается из специальной таблицы либо из набора регистров, номер регистра или записи в таблице указывается в по-
ле адреса (это метод косвенной адресации).
44