• Поиск и размещение информации в ассоциативной памяти. Виртуальная память. Архитектурные средства поддержки виртуальной памяти. Схема полностью ассоциативной КЭШ-памяти

    Материал из Википедии - свободной энциклопедии

    Ассоциативная память (АП) или (АЗУ) является особым видом машинной памяти, используемой в приложениях очень быстрого поиска. Известна также как память, адресуемая по содержимому , ассоциативное запоминающее устройство , контентно-адресуемая память или ассоциативный массив , хотя последний термин чаще используется в программировании для обозначения структуры данных. (Hannum и др., 2004)

    Аппаратный ассоциативный массив

    В отличие от обычной машинной памяти (памяти произвольного доступа, или RAM), в которой пользователь задает адрес памяти и ОЗУ возвращает слово данных, хранящееся по этому адресу, АП разработана таким образом, чтобы пользователь задавал слово данных, и АП ищет его во всей памяти, чтобы выяснить, хранится ли оно где-нибудь в нем. Если слово данных найдено, АП возвращает список одного или более адресов хранения, где слово было найдено (и в некоторых архитектурах, также возвращает само слово данных, или другие связанные части данных). Таким образом, АП - аппаратная реализация того, что в терминах программирования назвали бы ассоциативным массивом.

    Промышленные стандарты адресуемой содержанием памяти

    Определение основного интерфейса для АП и других Сетевых Элементов Поиска (Network Search Elements, NSE) было специфицировано в Соглашении о возможности взаимодействий (Interoperability Agreement), названном Интерфейс предысторий (Look-Aside Interface) (LA-1 и LA-1B ), который был разработан Форумом Сетевой Обработки, который позже был объединен с Оптическим Межсетевым Форумом (Optical Internetworking Forum, OIF). Многочисленные устройства были произведены компаниями Integrated Device Technology, Cypress Semiconductor, IBM, Netlogic Micro Systems и другими по этим соглашениям LA. 11 декабря 2007, OIF издал соглашение об интерфейсе последовательной предыстории (Serial Lookaside, SLA ).

    Реализация на полупроводниках

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

    Альтернативные реализации

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

    Троичная ассоциативная память

    Двоичная АП - простейший тип ассоциативной памяти, который использует слова поиска данных, состоявшие полностью из единиц и нулей. В троичной АП (Ternary Content Addressable Memory, TCAM ) добавляется третье значение для сравнения «X» или «не важно», для одного или более битов в сохраненном слове данных, добавляя дополнительную гибкость поиску.

    Например, в троичной АП могло бы быть сохранено слово «10XX0», которое выдаст совпадение на любое из четырех слов поиска «10000», «10010», «10100», или «10110». Добавление гибкости к поиску приходит за счет увеличения сложности памяти, поскольку внутренние ячейки теперь должны кодировать три возможных состояния вместо двух. Это дополнительное состояние обычно осуществляется добавлением бита маски «важности» («важно»/«не важно») к каждой ячейке памяти.

    Голографическая ассоциативная память обеспечивает математическую модель для интегрированного ассоциативного воспоминания бита «не важно», используя комплекснозначное представление. [ ] предположительно www.mit.edu/~9.54/fall14/Classes/class07/Plate.pdf and www.mit.edu/~9.54/fall14/Classes/class07/Plate.pdf

    Примеры приложений

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

    Троичные АП часто используются в тех сетевых маршрутизаторах, в которых у каждого адреса есть две части: (1) адрес сети, который может измениться в размере в зависимости от конфигурации подсети, и (2) адрес хоста, который занимает оставшиеся биты. У каждой подсети есть маска сети, которая определяет, какие биты - адрес сети и какие биты - адрес хоста. Маршрутизация делается путём сверки с таблицей маршрутизации, которую поддерживает маршрутизатор (router). В ней содержатся все известные адреса сети назначения, связанная с ними маска сети и информация, необходимая пакетам, маршрутизируемым по этому назначению. Маршрутизатор, реализованный без АП, сравнивает адрес назначения пакета, который будет разбит, с каждым входом в таблице маршрутизации, выполняя при этом логическое И с маской сети и сравнивая результаты с адресом сети. Если они равны, соответствующая информация направления используется, чтобы отправить пакет. Использование троичной АП для таблицы маршрутизации делает процесс поиска очень эффективным. Адреса хранятся с использованием бита «не важно» в части адреса хоста, таким образом поиск адреса назначения в АП немедленно извлекает правильный вход в таблице маршрутизации; обе операции - применения маски и сравнения - выполняются аппаратно средствами АП.

    Другие приложения АП включают

    • Диспетчеры кэша центрального процессора и ассоциативные буфера трансляции (TLB)

    Библиография

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

    На английском языке

    • Anargyros Krikelis, Charles C. Weems (editors) (1997) Associative Processing and Processors , IEEE Computer Science Press. ISBN 0-8186-7661-2
    • Pagiamtis, K. & Sheikholeslami, A. (2006, March). IEEE J. of Solid-State Circuits , 41(3), 712–727.
    • . U.S. Patent 6,823,434.

    Напишите отзыв о статье "Ассоциативная память"

    Примечания

    Ссылки

    • Ассоциативное запоминающее устройство - статья из Большой советской энциклопедии .

    На английском:

    См. также

    • Процессор в памяти , Processor-in-memory (PIM), или Вычисляющее ОЗУ или Computational RAM, C-RAM, также, «Вычисления в памяти»
    • Вычисления с памятью , концепция и реализация в виде разновидности ПЛИС

    Отрывок, характеризующий Ассоциативная память

    – У графини просите, а я не распоряжаюсь.
    – Ежели затруднительно, пожалуйста, не надо, – сказал Берг. – Мне для Верушки только очень бы хотелось.
    – Ах, убирайтесь вы все к черту, к черту, к черту и к черту!.. – закричал старый граф. – Голова кругом идет. – И он вышел из комнаты.
    Графиня заплакала.
    – Да, да, маменька, очень тяжелые времена! – сказал Берг.
    Наташа вышла вместе с отцом и, как будто с трудом соображая что то, сначала пошла за ним, а потом побежала вниз.
    На крыльце стоял Петя, занимавшийся вооружением людей, которые ехали из Москвы. На дворе все так же стояли заложенные подводы. Две из них были развязаны, и на одну из них влезал офицер, поддерживаемый денщиком.
    – Ты знаешь за что? – спросил Петя Наташу (Наташа поняла, что Петя разумел: за что поссорились отец с матерью). Она не отвечала.
    – За то, что папенька хотел отдать все подводы под ранепых, – сказал Петя. – Мне Васильич сказал. По моему…
    – По моему, – вдруг закричала почти Наташа, обращая свое озлобленное лицо к Пете, – по моему, это такая гадость, такая мерзость, такая… я не знаю! Разве мы немцы какие нибудь?.. – Горло ее задрожало от судорожных рыданий, и она, боясь ослабеть и выпустить даром заряд своей злобы, повернулась и стремительно бросилась по лестнице. Берг сидел подле графини и родственно почтительно утешал ее. Граф с трубкой в руках ходил по комнате, когда Наташа, с изуродованным злобой лицом, как буря ворвалась в комнату и быстрыми шагами подошла к матери.
    – Это гадость! Это мерзость! – закричала она. – Это не может быть, чтобы вы приказали.
    Берг и графиня недоумевающе и испуганно смотрели на нее. Граф остановился у окна, прислушиваясь.
    – Маменька, это нельзя; посмотрите, что на дворе! – закричала она. – Они остаются!..
    – Что с тобой? Кто они? Что тебе надо?
    – Раненые, вот кто! Это нельзя, маменька; это ни на что не похоже… Нет, маменька, голубушка, это не то, простите, пожалуйста, голубушка… Маменька, ну что нам то, что мы увезем, вы посмотрите только, что на дворе… Маменька!.. Это не может быть!..
    Граф стоял у окна и, не поворачивая лица, слушал слова Наташи. Вдруг он засопел носом и приблизил свое лицо к окну.
    Графиня взглянула на дочь, увидала ее пристыженное за мать лицо, увидала ее волнение, поняла, отчего муж теперь не оглядывался на нее, и с растерянным видом оглянулась вокруг себя.
    – Ах, да делайте, как хотите! Разве я мешаю кому нибудь! – сказала она, еще не вдруг сдаваясь.
    – Маменька, голубушка, простите меня!
    Но графиня оттолкнула дочь и подошла к графу.
    – Mon cher, ты распорядись, как надо… Я ведь не знаю этого, – сказала она, виновато опуская глаза.
    – Яйца… яйца курицу учат… – сквозь счастливые слезы проговорил граф и обнял жену, которая рада была скрыть на его груди свое пристыженное лицо.
    – Папенька, маменька! Можно распорядиться? Можно?.. – спрашивала Наташа. – Мы все таки возьмем все самое нужное… – говорила Наташа.
    Граф утвердительно кивнул ей головой, и Наташа тем быстрым бегом, которым она бегивала в горелки, побежала по зале в переднюю и по лестнице на двор.
    Люди собрались около Наташи и до тех пор не могли поверить тому странному приказанию, которое она передавала, пока сам граф именем своей жены не подтвердил приказания о том, чтобы отдавать все подводы под раненых, а сундуки сносить в кладовые. Поняв приказание, люди с радостью и хлопотливостью принялись за новое дело. Прислуге теперь это не только не казалось странным, но, напротив, казалось, что это не могло быть иначе, точно так же, как за четверть часа перед этим никому не только не казалось странным, что оставляют раненых, а берут вещи, но казалось, что не могло быть иначе.
    Все домашние, как бы выплачивая за то, что они раньше не взялись за это, принялись с хлопотливостью за новое дело размещения раненых. Раненые повыползли из своих комнат и с радостными бледными лицами окружили подводы. В соседних домах тоже разнесся слух, что есть подводы, и на двор к Ростовым стали приходить раненые из других домов. Многие из раненых просили не снимать вещей и только посадить их сверху. Но раз начавшееся дело свалки вещей уже не могло остановиться. Было все равно, оставлять все или половину. На дворе лежали неубранные сундуки с посудой, с бронзой, с картинами, зеркалами, которые так старательно укладывали в прошлую ночь, и всё искали и находили возможность сложить то и то и отдать еще и еще подводы.
    – Четверых еще можно взять, – говорил управляющий, – я свою повозку отдаю, а то куда же их?
    – Да отдайте мою гардеробную, – говорила графиня. – Дуняша со мной сядет в карету.
    Отдали еще и гардеробную повозку и отправили ее за ранеными через два дома. Все домашние и прислуга были весело оживлены. Наташа находилась в восторженно счастливом оживлении, которого она давно не испытывала.
    – Куда же его привязать? – говорили люди, прилаживая сундук к узкой запятке кареты, – надо хоть одну подводу оставить.
    – Да с чем он? – спрашивала Наташа.
    – С книгами графскими.
    – Оставьте. Васильич уберет. Это не нужно.
    В бричке все было полно людей; сомневались о том, куда сядет Петр Ильич.
    – Он на козлы. Ведь ты на козлы, Петя? – кричала Наташа.
    Соня не переставая хлопотала тоже; но цель хлопот ее была противоположна цели Наташи. Она убирала те вещи, которые должны были остаться; записывала их, по желанию графини, и старалась захватить с собой как можно больше.

    Во втором часу заложенные и уложенные четыре экипажа Ростовых стояли у подъезда. Подводы с ранеными одна за другой съезжали со двора.
    Коляска, в которой везли князя Андрея, проезжая мимо крыльца, обратила на себя внимание Сони, устраивавшей вместе с девушкой сиденья для графини в ее огромной высокой карете, стоявшей у подъезда.
    – Это чья же коляска? – спросила Соня, высунувшись в окно кареты.
    – А вы разве не знали, барышня? – отвечала горничная. – Князь раненый: он у нас ночевал и тоже с нами едут.
    – Да кто это? Как фамилия?
    – Самый наш жених бывший, князь Болконский! – вздыхая, отвечала горничная. – Говорят, при смерти.
    Соня выскочила из кареты и побежала к графине. Графиня, уже одетая по дорожному, в шали и шляпе, усталая, ходила по гостиной, ожидая домашних, с тем чтобы посидеть с закрытыми дверями и помолиться перед отъездом. Наташи не было в комнате.
    – Maman, – сказала Соня, – князь Андрей здесь, раненый, при смерти. Он едет с нами.
    Графиня испуганно открыла глаза и, схватив за руку Соню, оглянулась.
    – Наташа? – проговорила она.
    И для Сони и для графини известие это имело в первую минуту только одно значение. Они знали свою Наташу, и ужас о том, что будет с нею при этом известии, заглушал для них всякое сочувствие к человеку, которого они обе любили.
    – Наташа не знает еще; но он едет с нами, – сказала Соня.
    – Ты говоришь, при смерти?
    Соня кивнула головой.
    Графиня обняла Соню и заплакала.
    «Пути господни неисповедимы!» – думала она, чувствуя, что во всем, что делалось теперь, начинала выступать скрывавшаяся прежде от взгляда людей всемогущая рука.
    – Ну, мама, все готово. О чем вы?.. – спросила с оживленным лицом Наташа, вбегая в комнату.
    – Ни о чем, – сказала графиня. – Готово, так поедем. – И графиня нагнулась к своему ридикюлю, чтобы скрыть расстроенное лицо. Соня обняла Наташу и поцеловала ее.
    Наташа вопросительно взглянула на нее.
    – Что ты? Что такое случилось?
    – Ничего… Нет…
    – Очень дурное для меня?.. Что такое? – спрашивала чуткая Наташа.

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

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

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

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

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

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

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

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

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

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


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

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

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

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

    Типичная структура адресной памяти, показанная на рис. 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 - заполненному стеку.

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

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

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

    Принцип работы АЗУ поясняет схема, представленная на рис. 3.8.Запоминающий массив, как и в адресных ЗУ, разделен на m -разрядные ячейки, число которых n . Как правило, в состав АЗУ входят:

    · запоминающий массив (ЗМ);

    · регистр ассоциативных признаков (РгАП);

    · регистр маски (РгМ);

    · регистр индикаторов адреса со схемами сравнения на входе.

    В АЗУ могут быть и другие элементы, наличие и функции которых определяются способом использования АЗУ.

    Рис. 3.8. Ассоциативное запоминающее устройство

    Выборка информации из АЗУ происходит следующим образом. В регистр ассоциативных признаков из устройства управления передается образец для поиска - код признака искомой информации (иногда его называют компарандом ). Код может иметь произвольное число разрядов – от 1 до m . Если код признаков используется полностью, то он без изменения поступает на схему сравнения, если же необходимо использовать только часть кода, тогда ненужные разряды маскируются с помощью регистра маски. Перед началом поиска информации в АЗУ все разряды регистра индикаторов адреса устанавливаются в состояние 1 .После этого производится опрос первого разряда всех ячеек запоминающего массива, и содержимое сравнивается с первым разрядом регистра ассоциативных признаков. Если содержимое первого разряда i -й ячейки не совпадает с содержимым первого разряда РгАП, то соответствующий этой ячейке разряд регистра индикаторов адреса Т i сбрасывается в состояние 0 , если совпадает – разряд Т i остается 1 . Затем эта операция повторяется со вторым, третьим и последующими разрядами до тех пор, пока не будет произведено сравнение со всеми разрядами РгАП. После поразрядного опроса и сравнения в состоянии 1 останутся те разряды регистра индикаторов адреса, которые соответствуют ячейкам, содержащим информацию, совпадающую с записанной в регистре ассоциативных признаков. Эта информация может быть считана в той последовательности, которая определяется устройством управления.



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

    Запись новой информации в ЗМ производится без указания номера ячейки. Обычно один из разрядов каждой ячейки используется для указания ее занятости, т.е. если ячейка свободна для записи, то в этом разряде записан 0 , а если занята, – 1 . Тогда при записи в АЗУ новой информации устанавливается признак 0 в соответствующем разряде регистра ассоциативных признаков, и определяются все ячейки ЗМ, которые свободны для записи. В одну из них устройство управления помещает новую информацию.

    Нередко АЗУ строятся таким образом, что кроме ассоциативной допускается и прямая адресация данных, что представляет определенные удобства при работе.

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

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

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

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

    Кэш-память

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

    Новый вид памяти получил название кэш-память (от англ. cache – «тайник, убежище»), поскольку такая память скрыта, «невидима» для ЦП, который не может непосредственно обратиться к ней. В свою очередь, программист может вообще не знать о существовании кэш-памяти. В серийных ЭВМ кэш-память впервые была применена в системах модели 85 семейства IBMS/360. Сегодня кэш-память наличествует в любом классе ЭВМ, причем зачастую имеет многоуровневую структуру.

    Все термины, которые были определены раньше, могут быть использованы и для кэш-памяти, хотя слово «строка » (line ) часто употребляется вместо слова «блок » (block ).

    Как правило, кэш-память строится на основе сверхбыстродействующих и дорогостоящих ОЗУ статического типа, при этом ее быстродействие в 5-10 раз превышает быстродействие ОП, а объем – в 500-1000 раз меньше. Заметим, что увеличению объема кэш-памяти по отношению к емкости ОП препятствует не только и не столько высокая стоимость статических ОЗУ. Дело в том, что при увеличении емкости кэш-памяти возрастает сложность схем управления, что, в свою очередь, ведет к падению быстродействия. Многочисленные исследования показали, что указанное соотношение объемов кэш-памяти и ОП является оптимальным и будет сохраняться в процессе развития ЭВМ при увеличении быстродействия обоих видов памяти.

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

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

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

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

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

    Стратегии размещения

    Существуетследующие способы размещения данных в кэш-памяти:

    · прямое распределение;

    · полностью ассоциативное распределение;

    · частично (множественно) ассоциативное распределение.

    Допустим, разрядность шины адреса n , тогда емкость ОП V ОП = 2 n слов. Без ограничения общности определим размер кэш-строки в 256 слов, таким образом, вся ОП будет поделена на 2 n-8 блоков. В адресе ОП старшие n-8 битов будут определять адрес блока, а младший байт – адрес слова в блоке. Пусть емкость кэш-памяти V кэш в 1024 раза меньше емкости ОП, т.е. V кэш = 2 n-10 слов или 2 n-18 блоков (кэш-строк).

    Прямое распределение

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

    (адрес кэш-строки) = (адрес блока ОП) mod (число блоков в кэш-памяти)

    В нашем примере адрес кэш-строки c будут составлять младшие n-18 бит адреса блока ОП (см. рис. 3.9). Преобразование адреса блока ОП в адрес кэш-строки осуществляется путем выборки этих младших n-18 бит. По этому адресу кэш-строки может быть помещен любой из 1024 блоков ОП, имеющих одинаковые n-18 младших бит. Между собой эти блоки будут различаться старшими 10-ю битами t , называемыми тегом . Для того, чтобы определить, какой именно блок ОП хранится в данное время в кэш-памяти, используется еще одна память – так называемая память тегов(теговая память) . Теговая память адресуется пословно, причем каждое слово имеет размер, равный размеру тега. Емкость памяти тегов – это произведение размера тега на общее число кэш-строк, для нашего примера составляет 10·2 n-18 бит. Адресом памяти тегов является адрес кэш-строки с . В отличие от памяти тегов, память, в которой хранятся блоки, помещенные в кэш, называется памятью данных . Память данных адресуется пословно, ее адрес образуется из адреса кэш-строки и адреса слова внутри блока (кэш-строки).

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

    Рис. 3.10. Организация кэш-памяти с прямым распределением

    При доступе к A -му адресу ОП (рис. 3.10) младшие n-18 бит адреса блока (поле c ), где содержится этот адрес, используются в качестве адреса кэш-строки. По адресу кэш-строки из теговой памяти считывается тег (поле t ). Параллельно этому осуществляется доступ к памяти данных с помощью n-10 младших бит адреса A (поля c и w ). Если считанный тег и старшие 10 бит адреса A совпадают, то это означает, что блок, содержащий адрес A , существует в памяти данных, и в слове, к которому осуществляется доступ, хранится копия A -го адреса ОП.

    Если тег отличается от старших 10 бит адреса A , то из основной памяти считывается блок, содержащий адрес A , а из кэш-памяти удаляется кэш-строка, чей адрес определяется полем c (младшими n-18 битами) адреса считываемого блока. На место удаленной кэш-строки помещается считанный из ОП блок, при этом обновляется соответствующий тег в памяти тегов.

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

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

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

    1) поиск максимального или минимального числа в ЗУ;

    2) поиск слов, заключенных в определенные границы;

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

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

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

    По входной ШД в регистр ассоциативного признака RGП поступает n-разрядный признак, а в регистр маски RGМ – код маски поиска. При этом n-ый разряд регистра RGМ устанавливается в 0. Ассоциативный поиск производится лишь по тем разрядам признака, которым соответствует «1» в регистре маски, то есть по так называемым незамаскированным разрядам RGМ. Таким образом, задавая код маски М, можно произвольно выбирать те разряды признака, по которым ведется поиск.

    Для слов из ЗМ, в которых все цифры совпали с незамаскированными разрядами RGП, комбинированная схема КС 1 устанавливает «1» в соответствующие разряды регистра совпадения RGC. Таким образом, если произошло совпадение цифры j-го слова с незамаскируемыми разрядами признака, то в j-ом разряде регистра RGC будет записана «1», в противном случае «0». Запись «1» в j-ом разряде RGC означает, что j-ое слово соответствует признаку, т.е. является тем словом, которое собственно и ищется в ЗМ.

    В регистр маски записывается слово, разрешающее запрос по всем или только некоторым разрядам ассоциативного признака, применение маски позволяет сократить или расширить область поиска.

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

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

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

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

    Таким образом, определяются те ячейки ЗМ, у которых в n-ом разряде записан «0», что означает незанятость ячейки. В свободную ячейку с наименьшим номером записывается слово из регистра информации RGI.

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

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

    Стековая организация памяти

    Если запись и чтение производится через один и тот же регистр, то такое устройство называется стековой памятью, работающей по принципу "первым вошел - последним вышел" (FILO-First Input, Last Output).

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

    Стековая память получила широкое распространение. Для ее реализации в ОЗУ посредством программ операционной системы выделяется часть памяти под стек. На практике часто стековую память организуют, используя обычную адресную память.

    Рассмотрим организацию стековой памяти, как памяти, образованной из связанных между собой ячеек памяти, в которых информация при записи в стек нового слова смещается вниз (Рис.2). Обмен информацией осуществляется только через верхнюю ячейку памяти. При считывании слов из стека, слово может удаляться из стековой памяти или сдвигаться по кольцу, в зависимости от организации стека. Режим чтения – последним вошел, первым вышел - называют LIFO (Last In First Out).


    Рис.2.Организация стековой памяти.

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