ПОД (пособие) (1184372), страница 15
Текст из файла (страница 15)
9.8. Сегмент длины s с равной вероятностью может иметь своюпоследнюю страницу почти полную или почти пустую, и, таким образом, в среднем потерииз-за внутренней фрагментации составляют половину страницы (при том ограничительномусловии, что страница не может содержать части более чем одного сегмента). Чем меньшеразмер страницы, тем меньше потери из-за внутренней фрагментации.Большинство приводящихся в литературе данных (De80), как теоретических, так иэмпирических, указывает на то, что необходимы страницы малых размеров.Ассоциативаня памятьОперативную память (ОП) можно представить в виде двумерной таблицы, строки которойхранят в двоичном коде команды и данные.
Обращения за содержимом строкипроизводится заданием номера (адреса) нужной строки. При записи, кроме адреса строкиуказывается регистр, содержимое которого следует записать в эту строку. Запись занимаетбольше времени, чем чтение. Пусть в памяти из трех строк хранятся номера телефонов.19240219448304443336167Для получения номера телефона второго абонента следует обратиться: load (2) и получитьв регистре ответа R = 9448304. Такой вид памяти, при котором необходимая информацияопределяется номером строки памяти, называется адресной.
Другой вид оперативнойпамяти – ассоциативной можно рассматривать также как двумерную таблицу, но у каждойстроки которой есть дополнительное поле, поле ключа. Например:КлючСодержимоеИванов1924021Петров9448304Сидоров 3336167После обращение к ассоциативной памяти с запросом : load (Петров) для данного примераполучим ответ: R = 9448304. Здесь задание координаты строки памяти производится не поадресу, а по ключу.
Но при состоянии ассоциативной памяти:КлючСодержимое119240212944830433336167можно получить номер телефона из второй строки запросом: load (2). Таким образом наассоциативной памяти можно моделировать работу адресной. Ассоциативная память имееточевидное преимущества перед адресной, однако, у нее есть большой недостаток - ееаппаратная реализация невозможна для памяти большого объема.ВОПРОС: Предложите схему реализации модели ассоциативной памяти при помощиадресной.Ответ: Область памяти делим ровно пополам. Первая половина заполняется ключами,вторая соответствующими ключам значениями.
Когда найден ключ, известен его адрес каксмещение относительно начала памяти. Тогда адрес содержимого по ключу – это смещение+ размер области ключей, то есть адрес ячейки из второй половины памяти, котораясоответствует ключу.Назначение и структура кэш-памяти.Cache - это способ совместного функционирования двух типов запоминающих устройств,отличающихся временем доступа и стоимостью хранения данных, который позволяетуменьшить среднее время доступа к данным и экономить более дорогуюбыстродействующую память за счет динамического копирования в "быстрое" ЗУ (Кэшпамять) наиболее часто используемой информации из "медленного" ЗУ.Кэш - очень быстрая память сравнительно небольшого объема (обычно на статическихмикросхемах SRAM), логически располагающаяся между ЦП и оперативной памятью.Кэш состоит из строк (блоков небольшого размера); каждая кэш-строка, кроме блокаинформации, содержит адрес начала блока в оперативной памяти и тэги (дополнительнаяинформация, которая используется для реализации алгоритма замещения данных в кэше иобычно включает признак модификации и признак действительности данных).При каждом обращении к основной памяти по физическому адресу просматриваетсясодержимое кэш-памяти с целью определения, не находятся ли там нужные данные.
Еслиданные обнаруживаются в кэш-памяти, то есть произошло кэш-попадание (cache-hit), онисчитываются из нее и результат передается источнику запроса.45Алгоритм поиска и алгоритм замещения данных в кэше непосредственно зависят от того,каким образом основная память отображается на кэш-память. Существует три основныхтипа организации кэш-памяти, которые определяются принципом размещения строк в кэше.Концепция кэш-памяти возникла раньше чем архитектура IBM/360, и сегодня кэш-памятьимеется практически в любом классе компьютеров, а в некоторых компьютерах - вомножественном числе.Все термины, которые были определены раньше могут быть использованы и для кэшпамяти, хотя слово "строка" (line) часто употребляется вместо слова "блок" (block).Кэш-строка представляет собой полный набор данных, которым обмениваются кэш иосновная память.
В кэш-строке адрес двойного слова для 32-битной шины данных задаетсяадресными битами А3-А2. Кэш-строка обычно является либо целиком действительной,либо целиком недействительной; она не может быть действительной частично. Если дажепроцессору нужно прочитать только один байт, то все равно все 16 байт соответствующейкэш-строки должны находиться в кэш-памяти SRAM; в противном случае происходит кэшпромах. Кэш-строка - это собственно кэш-память; кэш-директория используется только дляуправления ею. Кэш-строка обычно содержит большее число данных, чем можно передатьза один цикл шины. По этой причины в большинстве кэш-контроллеров реализованпакетный режим, при котором предварительное задание адресных последовательностейобеспечивает более быструю передачу данных через шину.
Это очень просто реализоватьдля заполнения кэш-строки и для обратной записи кэш-строк, поскольку в этих режимахвсегда используется непрерывная и последовательно расположенная информация.Полностью ассоциативная кэш-память.Если некоторая строка основной памяти может располагаться на любом месте кэш-памяти,то такой кэш называется полностью ассоциативным (fully associative). Для того чтобы вдальнейшем можно было найти нужные данные в кэше, они помещаются туда вместе сосвоим адресом, то есть тем адресом, который данные имеют в оперативной памяти. Прикаждом запросе к оперативной памяти выполняется поиск в кэше, причем критерием поискавыступает адрес оперативной памяти из запроса. Каждый тег одновременно сравнивается с46этим адресом (ассоциативный поиск - сравнение выполняется не последовательно с каждойзаписью кэша, а параллельно со всеми его записями, так как простой перебор приводит кнедопустимо большим временным затратам).
Если тег совпадает с адресом, тообеспечивается доступ к блоку памяти, связанному с этим тегом.Такая организация позволяет достичь максимально возможного процента попаданий,однако скорость поиска снизится весьма значительно.ДополнениеПамять, адресуемая по содержаниюПонятие ассоциативной памяти часто связывается с кэш-памятью. Она известна также какпамять, адресуемая по содержанию, или САМ. Название указывает на принцип ее работы.Обычно к данным в памяти обращаются при помощи адреса.
Однако в случаеассоциативной памяти для этого используется часть собственно данных, хранящихся впамяти САМ. Чтобы прочитать данные из САМ, туда посылается фрагмент этих данных.Если этот фрагмент совпадает с соответствующим фрагментом информации, которая тамхранится, САМ возвращает всю информацию, связанную с этим фрагментом, т.е., иначеговоря, она "дополняет" фрагмент. Поскольку фрагмент, направляемый в САМ, являетсятолько частью полного элемента данных, может случиться так, что у других элементовданных тоже окажутся совпадающие с ним фрагменты, которые будут поэтому тожевыданы в ответ на запрос.
Результат в этом случае будет неоднозначным; впрочем, прииспользовании ассоциаций это не удивительно - вы тоже связываете, например, слово"море" со многими вещами - с отпуском, пляжем, купанием, загаром и т.п. Если совпадениес содержащимися в памяти данными полностью отсутствует, САМ не выдаст никакойинформации. Так же происходит и в реальной жизни Ц осмысленная ассоциация с"вапроллд" является как минимум затруднительной.Ассоциативная адресация выполняется набор за набором, поэтому работают оба видаассоциаций.
Адресация набора, однако, выполняется явным образом посредством адресанабора А5-А11. Фрагмент информации для ассоциативной адресации задается адресом47дескриптора внутри набора. Этот адрес дескриптора сравнивается с адресами А12-31 изCPU. Если они совпадают, то кэш-контроллер присоединяет весь соответствующий элементкэш-памяти, т.е. всю кэш-строку, принадлежащую соответствующей магистрали набора,который имеет нужный адрес дескриптора. Подробнее об этом будет рассказано дальше.Кэш-память с прямым отображением.Если каждая строка основной памяти может быть отображена только в однуфиксированную строку кэш-памяти, то такая кэш-память называется кэшем с прямымотображением (direct mapped).
В каждый блок помещаются данные с определенными(непересекающимися) диапазонами адресов (группами диапазонов). Это наиболее простаяорганизация кэш-памяти, при которой для отображения адресов блоков основной памяти наадреса кэш-памяти просто используются младшие разряды адреса блока (выделяютсянесколько разрядов из адреса оперативной памяти и интерпретируются как номер строкикэш-памяти).(адрес блока кэш-памяти) = (адрес блока основной памяти) mod (число блоков в кэшпамяти)При этом все блоки основной памяти, имеющие одинаковые младшие разряды в своемадресе, попадают в один блок кэш-памяти.