Ассоциативная память. Виртуальная память. Архитектурные средства поддержки виртуальной памяти. Троичная ассоциативная память

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

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

При записи (или считывании) слова в ЗМ инициирующая эту операцию команда должна указывать адрес (номер ячейки), по которому производится запись (считывание).

Типичная структура адресной памяти, содержит запоминающий массив из N-разрядных ячеек и его аппаратное обрамление, включающее в себя регистр адреса РгА , имеющий k (k » log N) разрядов, информационный регистр РгИ , блок адресной выборки БАВ , блок усилителей считывания БУС , блок разрядных усилителей-формирователей сигналов записи БУЗ и блок управления памятью БУП .

По коду адреса в РгА БАВ формирует в соответствующей ячейке памяти сигналы, позволяющие произвести в ячейке считывание или запись слова.

Цикл обращения к памяти инициируется поступлением в БУП извне сигнала Обращение . Общая часть цикла обращения включает в себя прием в РгА с шины адреса ША адреса обращения и прием в БУП и расшифровку управляющего сигнала Операция , указывающего вид запрашиваемой операции (считывание или запись).

Далее при считывании БАВ дешифрирует адрес, посылает сигналы считывания в заданную адресом ячейку ЗМ, при этом код записанного в ячейке слова считывается усилителями считывания БУС и передается в РгИ . Операция считывания завершается выдачей слова из РгИ на выходную информационную шину ШИВых .

При записи помимо выполнения указанной выше общей части цикла обращения производится прием записываемого слова с входной информационной шины ШИВх и РгИ . Затем в выбранную БАВ ячейку записывается слово из РгИ .

Блок управления БУП генерирует необходимые последовательности управляющих сигналов, инициирующих работу отдельных узлов памяти.

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


Типичная структура ассоциативной памяти представлена на рис. 4.3. Запоминающий массив содержит N (n+1)-разрядных ячеек. Для указания занятости ячейки используется служебный n-й разряд (0 - ячейка свободна, 1 - в ячейке записано слово).

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

Спонтанность равно характеризует ассоциативную память как в момент запоминания, то есть фиксации или ретенции, так и воспоминания, то есть репродукции.

Субъект всегда находится под влиянием многообразных впечатлений, причем зачастую эти впечатления возникают или исчезают независимо от его намерения. Однако обычно бесследно они все-таки не исчезают. Правда, в психике в качестве сознательных переживаний эти впечатления долго не остаются, но в самом субъекте вызывают определенные личностные изменения. И вот, на основе этих изменений, при возникновении надлежащих условий, когда, например, одно из этих впечатлений вновь начинает действовать на субъекта, этот последний реагирует в соответствии с происшедшими в нем изменениями, то есть в его сознании вновь возникают переживания, соответствующие этому изменению. Так происходит репродукция представлений, переживаемая субъектом в качестве продукта воздействия спонтанных впечатлений. Как видим, репродукция этих последних также происходит вне активного, намеренного вмешательства субъекта.

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

Протекание узнавания, как мы уже знаем, происходит следующим образом: восприятие N. всегда сопровождается чувством знакомости. Я узнал N., я его видел. Однако если к этому добавится еще какое-то представление, например, я видел N. там-то и там-то (образ места) или он был в такой-то шапке (образ шапки), то тогда мы имеем дело уже с ассоциативной памятью, то есть восприятие N. вызывает репродукцию представлений. В данном смысле различие между узнаванием и ассоциативной памятью состоит лишь в том, что в случае узнавания прошлое оживает в самом восприятии, не выходя за его пределы, тогда как в ассоциативной памяти это прошлое дается не в виде какого-либо прежнего восприятия, а появляется его образ, который дан повторно, но уже в виде представления. Ниже мы убедимся, что на более высокой ступени развития для репродукции представлений памяти раздражитель нужен далеко не всегда. Существует не только непроизвольное запоминание, но и произвольное припоминание.

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

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

При записи (или считывании) слова в ЗМ инициирующая эту операцию команда должна указывать адрес (номер ячейки), по которому производится запись (считывание).

Типичная структура адресной памяти, показанная на рис. 4.2, содержит запоминающий массив из N n-разрядных ячеек и его аппаратурное обрамление, включающее регистр адреса РгА, имеющий k {k > log 2 N) разрядов, информационный регистр РгИ, блок адресной выборки БАВ, блок усилителей считывания БУС, блок разрядных усилителей-формирователей сигналов за­писи БУЗ и блок управления памятью БУП.

Рис.4.2.Структура адресной памяти.

По коду адреса в РгА БАВ формирует в соответствующей ячейке памяти сигналы, позволяющие произвести в ячейке считывание или запись слова.

Цикл обращения к памяти инициируется поступлением в БУП извне сигнала Обращение. Общая часть цикла обраще­ния включает в себя прием в РгА с шины адреса ША адреса обращения и прием в БУП и расшифровку управляющего сиг­нала Операция, указывающего вид запрашиваемой операции (считывание или запись).

Далее при считывании БАВ дешифрирует адрес, посылает сигналы считывания в заданную адресом ячейку ЗМ, при этом код записанного в ячейке слова считывается усилителями считывания БУС и передается в РгИ. Затем в памяти с разру­шающим считыванием (при считывании все запоминающие элементы ячейки устанавливаются в нулевое состояние). про­изводится регенерация информации в ячейке путем записи в нее из РгИ считанного слова. Операция считывания завер­шается выдачей слова из РгИ на выходную информационную шину ШИВых.

При записи помимо выполнения указанной выше общей ча­сти цикла обращения производится прием записываемого сло­ва с входной информационной шины ШИВх в РгИ. Сама за­пись состоит из двух операций: очистки ячейки (сброса в 0) и собственно записи. Для этого БАВ сначала производит вы­борку и очистку ячейки, заданной адресом в РгА. Очистка вы­полняется сигналами считывания слова в ячейке, но при этом блокируются усилители считывания и из БУС в РгИ информа­ция не поступает. Затем в выбранную БАВ ячейку записывается слово из РгИ.

Блок управления БУП генерирует необходимые последова­тельности управляющих сигналов, инициирующих работу от­дельных узлов памяти. Цепи передачи управляющих сигналов показаны тонкими линиями на рис. 4.2.

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

Типичная структура ассоциативной памяти представлена на рис. 4.3. Запоминающий массив содержит N (п + 1) -разрядных ячеек. Для указания занятости ячейки используется служебный n-й разряд (0 - ячейка свободна, 1 - в ячейке записано слово).

По входной информационной шине ШИВх в регистр ассо­циативного признака РгАП в разряды 0-и-1 поступает п- разрядный ассоциативный запрос, а в регистр маски РгМ - код маски поиска, при этом п-й разряд РгМ устанавли­вается в 0. Ассоциативный поиск производится лишь для сово­купности разрядов РгАП, которым "соответствуют 1 в РгМ (незамаскированные разряды РгАП). Для слов, в которых цифры в разрядах совпали с незамаскированными разрядами РгАП, комбинационная схема КС устанавливает 1 в соответ­ствующие разряды регистра совпадения РгСв и 0 в остальные разряды. Таким образом, значение j-ro разряда в РгСв опреде­ляется выражением

РгСв (j) =

где РгАП [i], РгМ [i] и ЗМ - значения i-го разряда со­ответственно РгАП, РгМ и j-й ячейки ЗМ.

Комбинационная схема формирования результата ассоциа­тивного обращения ФС формирует из слова, образовавшегося в РгСв, сигналы  0 ,  1 ,  2 , соответствующие случаям отсутствия слов в ЗМ, удовлетворяющих ассоциативному признаку, нали­чию одного и более чем одного такого слова. Для этого ФС реализует следующие булевы функции:

 0 =

 1 = РгСв

 2 =  0  1

Формирование содержимого РгСв и сигналов  0 ,  1 ,  2 по содержимому РгАП, РгМ и ЗМ называется операцией контроля ассоциации. Эта операция является составной частью операций считывания и записи, хотя она имеет и самостоятельное значение.

При считывании сначала производится контроль ассоциа­ции по ассоциативному признаку в РгАП. Затем при  0 = 1 считывание отменяется из-за отсутствия искомой информации, при  1 = 1 считывается в РгИ найденное слово, при  2 = 1 в РгИ считывается слово из ячейки, имеющей наименьший номер среди ячеек, отмеченных 1 в РгСв. Из РгИ счи­танное слово выдается на ШИВых.

Рис. 4.3. Структура ассоциа­тивной памяти

При записи сначала оты­скивается свободная ячейка. Для этого выполняется опе­рация контроля ассоциации при РгАП= 111. ..10 и РгМ == 00... 01. При этом свободные ячейки отмечают­ся 1 в РгСв. Для записи вы­бирается свободная ячейка с наименьшим номером. В нее записывается слово, посту­пившее с ШИВх в РгИ.

Рис. 4.4. Стековая память

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

Отметим, что для ассоциативной памяти необходимы за­поминающие элементы, допускающие считывание без разруше­ния записанной в них информации. Это связано с тем, что при ассоциативном поиске считывание производится по всему ЗМ для всех незамаскированных разрядов и негде сохранять вре­менно разрушаемую считыванием информацию.

Стековая память, так же как и ассоциативная, является без­адресной. В стековой памяти (рис. 4.4) ячейки образуют одно­мерный массив, в котором соседние ячейки связаны друг с дру­гом разрядными цепями передачи слов. Запись нового слова производится в верхнюю ячейку (ячейку 0), при этом все ранее записанные слова (включая слово, находившееся в ячейке 0), сдвигаются вниз, в соседние ячейки с большими на 1 номера­ми. Считывание возможно только из верхней (нулевой) ячейки памяти, при этом, если производится считывание с удалением, все остальные слова в памяти сдвигаются вверх, в соседние ячейки с большими номерами. В этой памяти порядок считыва­ния слов соответствует правилу: последним поступил - первым обслуживается. В ряде устройств рассматриваемого типа пре­дусматривается также операция простого считывания слова из нулевой ячейки (без его удаления и сдвига слова в памяти). Иногда стековая память снабжается счетчиком стека СчСт, по­казывающим количество занесенных в память слов. Сигнал СчСт = 0 соответствует пустому, стеку, СчСт = N - 1 - заполненному стеку.

Часто стековую память организуют, используя адресную память. Широкое применение стековая память нахо­дит при обработке вложенных структур данных.

В последующих параграфах главы описываются различные типы ЗУ с адресной организацией. Ассоциативная память ис­пользуется в аппаратуре динамическо­го распределения ОП, а также для построения КЭШ-памяти.

Этот цикл статей описывает волновую модель мозга, серьезно отличающуюся от традиционных моделей. Настоятельно рекомендую тем, кто только присоединился, начинать чтение с .

В предыдущей части мы показали как может выглядеть распределенная память. Основная идея заключается в том, что общий волновой идентификатор может объединить нейроны, которые своей активностью формируют запоминаемую картину. Чтобы воспроизвести конкретное событие достаточно запустить по коре соответствующий идентификатор воспоминания. Его распространение восстановит ту же картину активности, что была на коре на момент фиксации этого воспоминания. Но главный вопрос - это как нам получить требуемый идентификатор? Ассоциативность памяти подразумевает, что по набору признаков мы можем отобрать события, в описании которых присутствовали эти признаки. То есть должен существовать нейронный механизм, который позволит по описанию в определенных признаках, получить идентификатор подходящего под эти признаки воспоминания.

Когда мы говорили о распространении нейронных волн, мы исходили из того, что нейрон хранит на внесинаптической мембране те волновые картины, участником которых он является. Встретив знакомую картину, нейрон своим спайком создает продолжение уникального узора. И тут важно, что нейрон не просто в состоянии узнать волновую картину, а то, что он сам – часть распространяющегося узора. Только будучи сам частью уникальной волны нейрон способен участвовать в ее распространении.

Чтобы не запутаться в последующих рассуждениях, еще раз повторим основные свойства волновой модели коры. Если отметить нейроны, относящиеся к одному волновому узору или – другими словами – идентификатору, то получится что-то вроде набора точек, изображенного на рисунке ниже.

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

Проходя через каждое место коры, волна будет «высвечивать» фрагмент своего уникального узора. Так, стартовав из области 1, волна, дойдя до области 2, создаст там свой предопределенный идентификатором уникальный узор (рисунок ниже).

По уникальности узора можно в каждом месте коры определить, какие идентификаторы составляют волну.

Если мы на спокойной коре в области 2 воспроизведем уже знакомый нам узор, то он также создаст волну, которая, распространившись до области 1, создаст там все тот же паттерн, характерный именно для этого идентификатора.

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

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

Говоря об ассоциативности понятий, мы показали, что запрос, построенный на волнах идентификаторов, возвращает набор идентификаторов понятий, ассоциативно связанных с понятиями, содержащимися в запросе.

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

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

Опять ненадолго обратимся к строению реальных нейронов. Тело нейрона – сома – имеет ограниченную площадь и не может обеспечить места для всех синаптических контактов. Большая часть синапсов приходится на разветвленную структуру, называемую дендритом или дендритным деревом (рисунок ниже). Количество синапсов, располагающихся на дендрите, в 10-20 раз превышает количество синапсов на соме.


Формы дендритных деревьев (Greg Stuart, ‎Nelson Spruston, ‎Michael Häusser)

Было обнаружено, что нейрон ведет себя по-разному в зависимости от того, приходят ли сигналы на синапсы на одну или на разные дендритные ветки (Shepherd G.M., Brayton R.K., Miller J.P., Segev I., Rinzel J., Rall W., 1985). Одновременный приход импульсов на синапсы одной ветки вызывает значительно более сильный ответ нейрона, чем сигнал, распределенный по разным веткам.

На основе наблюдений такого рода родилась гипотеза о том, что дендритные ветки могут играть роль детекторов совпадений (Softky, 1994). Ее суть в том, что сигналам, рождающимся в удаленных ветках дендритного дерева, для генерации спайка нейрона необходимо, чтобы были активны сегменты дендритного дерева, лежащие по дороге сигнала к соме.

Такой эффект был показан для пирамидальных нейронов (Jarsky T., Alex Roxin A., Kath W.L., Spruston N., 2005), но можно полагать, что что-то подобное свойственно и нейронам других типов.


Фазы распространения сигнала в апикальных и наклонных сегментах пирамидального нейрона гиппокампа. Сигнал возникает в апикальном пучке (красная точка) и распространяется до коллатерали Шаффера (зеленая точка). Сигнал в более близком к соме месте дендрита не позволяет далекому сигналу угаснуть и способствует возникновению спайка (Jarsky T., Alex Roxin A., Kath W.L., Spruston N., 2005)

Распространение импульса по дендриту сопровождается его значительным затуханием. По идее, влияние удаленных (дистальных) синапсов должно быть значительно меньше, чем влияние близких (проксимальных). Однако были показаны механизмы, выравнивающие вклад таких синапсов, что вылилось в концепцию «демократии синапсов» (Clifton C. Rumsey, L. F. Abbott, 2006). Выравнивание вклада синапсов вдоль ветки дендрита позволяет рассматривать ветки как самостоятельные логические элементы, сигналы которых каким-то образом далее обрабатываются нейроном. Это означает, что теоретически, меняя конфигурацию дендрита и реакцию сомы, можно получить нейроны с различными логическими свойствами.

Например, в популярной концепции «иерархической темпоральной памяти» Джеффа Хокинса применяются нейроны, использующие автономные элементы, работающие в режиме «или» (рисунок ниже).


Модель нейрона с набором дендритных логических автономных элементов в сопоставлении с пирамидальным нейроном (Хокинс, 2011)

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

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

Зададим нейроны первого типа такими, чтобы они распространяли волну информационного идентификатора. Нейроны же второго типа заставим распространять исключительно волны идентификаторов гиппокампа (рисунок ниже).


Распространение двух независимых волн на нейронах с разным типом медиатора

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

Синапсы Вне синапсов Аксон
Тип 1 A A
Тип 2 B B
Нейромедиаторные характеристики нейронов. Чувствительность рецепторов и выброс аксона

При таком задании медиаторов и рецепторов волны на двух слоях никак не будут влиять друг на друга.

Теперь усложним нейроны второго типа, сделаем их дендритные деревья состоящими из двух типов веток, отличающихся внесинаптическими медиаторами. При моделировании однородные ветки можно объединить и в результате оставить два дендритных сегмента, работающих по принципу «или» (таблица ниже).

Сегмент Синапсы Вне синапсов Аксон
Тип 1 A A
Тип 2 1 B B
2 A
Нейромедиаторные характеристики нейронов. Чувствительность рецепторов и выброс аксона. Нейроны второго типа имеют два дендритных сегмента с рецепторами, чувствительными к медиаторам разного типа

Предположим, что пока шло обучение нейронов тому, как распространять волны идентификаторов, у нейронов второго типа был заблокирован второй сегмент, чувствительный к «чужому» медиатору. Вся информация, необходимая для формирования волн, у нейронов второго типа будет откладываться на внесинаптической памяти первого сегмента.

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

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

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

Видно, что такое запоминание крайне расточительно. Мы запоминаем каждый образ на всех активных нейронах второго типа. Хотя для воспроизведения идентификатора нам нужен всего лишь малый локальный участок, способный запустить волну. Чтобы исправить ситуацию, будем запоминать информационную волну не на всех активных нейронах второго типа, а только на тех, которые попадают в области с высокой вызванной активностью нейронов первого типа. То есть вспомним, что информация дуалистична. Она одновременно и идентификаторная волна, и активность паттернов вызванной активности. Волна даст нам узор для запоминания, а паттерны укажут места для этого.

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

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

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

Сегмент Синапсы Вне синапсов Аксон
Тип 1 1 A A
2 B
Тип 2 1 B B
2 A
Нейромедиаторные характеристики нейронов. Чувствительность рецепторов и выброс аксона. Двусвязная конфигурация

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

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

В ассоциативной памяти элементы выбираются не по адресу, а по содержимому. Поясним последнее понятие более подробно. Для памяти с адресной организацией было введено понятие минимальной адресуемой единицы (МАЕ) как порции данных, имеющей индивидуальный адрес. Введем аналогичное понятие для ассоциативной памяти , и будем эту минимальную единицу хранения в ассоциативной памяти называть строкой ассоциативной памяти (СтрАП). Каждая СтрАП содержит два поля: поле тега (англ. tag - ярлык, этикетка, признак) и поле данных. Запрос на чтение к ассоциативной памяти словами можно выразить следующим образом: выбрать строку (строки), у которой (у которых) тег равен заданному значению.

Особо отметим, что при таком запросе возможен один из трех результатов:

  1. имеется в точности одна строка с заданным тегом;
  2. имеется несколько строк с заданным тегом;
  3. нет ни одной строки с заданным тегом.

Поиск записи по признаку - это действие, типичное для обращений к базам данных, и поиск в базе зачастую чвляется ассоциативным поиском. Для выполнения такого поиска следует просмотреть все записи и сравнить заданный тег с тегом каждой записи. Это можно сделать и при использовании для хранения записей обычной адресуемой памяти (и понятно, что это потребует достаточно много времени - пропорционально количеству хранимых записей!). Об ассоциативной памяти говорят тогда, когда ассоциативная выборка данных из памяти поддержана аппаратно. При записи в ассоциативную память элемент данных помещается в СтрАП вместе с присущим этому элементу тегом. Для этого можно использовать любую свободную СтрАП. Рассмотрим разновидности структурной организации КЭШ-памяти или способы отображения оперативной памяти на КЭШ .

Полностью ассоциативный КЭШ

Схема полностью ассоциативного КЭШа представлена на рисунке (см. рисунок ниже).

Опишем алгоритм работы системы с КЭШ-памятью. В начале работы КЭШ-память пуста. При выполнении первой же команды во время выборки ее код, а также еще несколько соседних байтов программного кода, - будут перенесены (медленно) в одну из строк КЭШа, и одновременно старшая часть адреса будет записана в соответствующий тег. Так происходит заполнение КЭШ-строки.

Если следующие выборки возможны из этого участка, они будут сделаны уже из КЭШа (быстро) - "КЭШ-попадание". Если же окажется, что нужного элемента в КЭШе нет, - "КЭШ-промахом". В этом случае обращение происходит к ОЗУ (медленно), и при этом одновременно заполняется очередная КЭШ-строка.

Схема полностью ассоциативной КЭШ-памяти

Обращение к КЭШу происходит следующим образом. После формирования исполнительного адреса его старшие биты, образующие тег, аппаратно (быстро) и одновременно сравниваются с тегами всех КЭШ-строк. При этом возможны только две ситуации из трех, перечисленных ранее: либо все сравнения дадут отрицательный результат (КЭШ-промах), либо положительный результат сравнения будет зафиксирован в точности для одной строки (КЭШ-попадание).

При считывании, если зафиксировано КЭШ-попадание, младшие разряды адреса определяют позицию в КЭШ-строке, начиная с которой следует выбирать байты, а тип операции определяет количество байтов. Очевидно, что если длина элемента данных превышает один байт, то возможны ситуации, когда этот элемент (частями) расположен в двух (или более) разных КЭШ-строках, тогда время на выборку такого элемента увеличится. Противодействовать этому можно, выравнивая операнды и команды по границам КЭШ-строк, что и учитывают при разработке оптимизирующих трансляторов или при ручной оптимизации кода.

Если произошел КЭШ-промах, а в КЭШе нет свободных строк, необходимо заменить одну строку КЭШа на другую строку.

Основная цель стратегии замещения - удерживать в КЭШ-памяти строки, к которым наиболее вероятны обращения в ближайшем будущем, и заменять строки, доступ к которым произойдет в более отдаленном времени или вообще не случится. Очевидно, что оптимальным будет алгоритм, который замещает ту строку, обращение к которой в будущем произойдет позже, чем к любой другой строке-КЭШ.

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

Среди множества возможных алгоритмов замещения наиболее распространенными являются четыре, рассматриваемые в порядке уменьшения их относительной эффективности. Любой из них может быть применен в полностью ассоциативном КЭШ.

Наиболее эффективным является алгоритм замещения на основе наиболее давнего использования (LRU - Least Recently Used ), при котором замещается та строка КЭШ-памяти, к которой дольше всего не было обращения. Проводившиеся исследования показали, что алгоритм LRU, который "смотрит" назад, работает достаточно хорошо в сравнении с оптимальным алгоритмом, "смотрящим" вперед.

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

Второй способ реализуется с помощью очереди, куда в порядке заполнения строк КЭШ-памяти заносятся ссылки на эти строки. При каждом обращении к строке ссылка на нее перемещается в конец очереди. В итоге первой в очереди каждый раз оказывается ссылка на строку, к которой дольше всего не было обращений. Именно эта строка прежде всего и заменяется.

Другой возможный алгоритм замещения - алгоритм, работающий по принципу "первый вошел, первый вышел" (FIFO - First In First Out ). Здесь заменяется строка, дольше всего находившаяся в КЭШ-памяти. Алгоритм легко реализуется с помощью рассмотренной ранее очереди, с той лишь разницей, что после обращения к строке положение соответствующей ссылки в очереди не меняется.

Еще один алгоритм - замена наименее часто использовавшейся строки (LFU - Least Frequently Used). Заменяется та строка в КЭШ-памяти, к которой было меньше всего обращений. Принцип можно воплотить на практике, связав каждую строку со счетчиком обращений, к содержимому которого после каждого обращения добавляется единица. Главным претендентом на замещение является строка, счетчик которой содержит наименьшее число.

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

Кроме тега и байтов данных в КЭШ-строке могут содержаться дополнительные служебные поля, среди которых в первую очередь следует отметить бит достоверности V (от valid - действительный имеющий силу) и бит модификации M (от modify - изменять, модифицировать). При заполнении очередной КЭШ-строки V устанавливается в состояние "достоверно", а M - в состояние "не модифицировано". В случае, если в ходе выполнения программы содержимое данной строки было изменено, переключается бит M, сигнализируя о том, что при замене данной строки ее содержимое следует переписать в ОЗУ. Если по каким-либо причинам произошло изменение копии элемента данной строки, хранимого в другом месте (например в ОЗУ), переключается бит V. При обращении к такой строке будет зафиксирован КЭШ-промах (несмотря на то, что тег совпадает), и обращение произойдет к основному ОЗУ. Кроме того, служебное поле может содержать биты, поддерживающие алгоритм LRU.

Оценка объема оборудования

Типовой объем КЭШ-памяти в современной системе - 8…1024 кбайт, а длина КЭШ-строки 4…32 байт. Дальнейшая оценка делается для значений объема КЭШа 256 кбайт и длины строки 32 байт, что характерно для систем с процессорами Pentium и PentiumPro. Длина тега при этом равна 27 бит, а количество строк в КЭШе составит 256К/ 32=8192. Именно столько цифровых компараторов 27 битных кодов потребуется для реализации вышеописанной структуры.

Приблизительная оценка затрат оборудования для построения цифрового компаратора дает значение 10 транз/бит, а общее количество транзисторов только в блоке компараторов будет равно:

10*27*8192 = 2 211 840,

что приблизительно в полтора раза меньше общего количества транзисторов на кристалле Pentium. Таким образом, ясно, что описанная структура полностью ассоциативной КЭШ-памяти () реализуема только при малом количестве строк в КЭШе, т.е. при малом объеме КЭШа (практически не более 32…64 строк). КЭШ большего объема строят по другой структуре.