СКИПОДы 2007 полная версия (1127795), страница 14
Текст из файла (страница 14)
Здесь не может быть универсальных ответов. Не существует никакой особойнеобходимости в том, чтобы все вычислительные системы имели одинаковый илиединственный размер страниц.Некоторые соображения, которые необходимо учитывать при выборе того или иногоразмера страницы, приведены ниже.·Чем меньше размер страницы, тем большее количество страниц и страничных кадровбудет в системе и тем больше будут таблицы страниц. Для систем, в которых таблицыстраниц занимают первичную память, это указывает на необходимость увеличенныхразмеров страниц. Такое неэффективное использование памяти из-за чрезмерно большихтаблиц называется табличной фрагментацией. Здесь мы отметим, что подобный аргумент внастоящее время не столь актуален, поскольку выпускается недорогая память оченьбольшой емкости.·При крупных размерах страниц в первичную память при подкачке попадают большиеобъемы информации, которая, вообще говоря, может и не понадобиться.
Это указывает нанеобходимость уменьшения размеров страниц.·Поскольку обмены данными с дисковой памятью занимают относительно многовремени, мы хотим свести к минимуму число обменов, которые будут производиться дляпрограммы во время ее выполнения. Это указывает, по-видимому, на необходимостьувеличения размеров страниц.·Программы, как правило, проявляют свойство локальности обращений, причемразмеры подобных локальных участков невелики. Таким образом, уменьшение размерастраницы должно способствовать тому, что у программы образуется более компактныйнабор страниц, т. е. страницы рабочего множества» размещаемые в реальной памяти, будутсодержать более интенсивно используемые объекты.·Поскольку блоки процедур и данных редко представляют целое число страниц, всистемах со страничной организацией наблюдается внутренняя фрагментация,иллюстрируемая рис.
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.