7654-1 (Виды и принципы работы кэш-памяти)

2016-07-31СтудИзба

Описание файла

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

Онлайн просмотр документа "7654-1"

Текст из документа "7654-1"

Виды и принципы работы кэш-памяти

Реферат по предмету: Информатика и Вычислительная Техника выполнил студент группы 4381С Гаффарова Р.З.

Камский Государственный Политехнический Институт

Кафедра ЭОУП

г. Набережные Челны

2003 г.

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

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

1. Общие понятие о кэшировании и кэш-памяти

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

Естественно, что такой «тормоз» в виде одного из необходимых элементов компьютера не устраивал его создателей. Тем более, что в больших компьютерах уже давно существовало понятие кэш-памяти (cashe-memory), более быстрой, чем ОЗУ, но меньшей емкости. Было решено перенести ее архитектуру с БЭВМ на обычные персональные компьютеры.

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

Естественно, что весь объем ОЗУ скопировать в кэш нет возможности – такой объем кэш-памяти по цене сравнивается со стоимостью компьютера, а смысла уменьшать объем ОЗУ тоже нет. Было решено реализовать алгоритм работы процессора, кэш-памяти и ОЗУ аппаратно, чтобы не тратить ресурсы процессора.

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

Начиная с 386-х процессоров кэш-память устанавливалась на большинство материнских плат. Все это позволяло повышать производительность систем не в разы, а на порядки. Но с выходом 486 процессора кэш-память была разделена: появился кэш, реализованный непосредственно на кристалле процессора (в 486DX). Несмотря на малый его объем – 1 Кб – это уже был скачек в производительности и очень большой: ведь кэш, расположенный на кристалле процессора работает на частоте процессора, что в несколько раз превышает скорость работы кэш-памяти, установленной на материнской плате.

Начиная с 486 процессоров кэш-память испытывает подобное разделение на кэш 1-го уровня – установленный на кристалле (или в одном корпусе) процессора и работающий с ним на одной частоте, и кэш 2-го уровня, установленный на материнской плате, работающий быстрее обычной ОЗУ, но медленнее КЭШа первого уровня.

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

аппаратное кэширование жестких дисков (кэш-память устанавливается непосредственно на жестком диске либо на специальном контроллере);

программное кэширование CD-ROM, а также прочих устройств хранения информации (программно – при помощи операционной системы, аппаратно – на самом устройстве либо на контроллере).

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

Но все-таки наиболее популярной является кэш-память первого уровня (процессорная) и второго (установленная на материнской плате).

2. Внутренний кэш процессора

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

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

Строки в кэш-памяти выделяются только при чтении, политика записи первых процессоров 486 – только Write Through (сквозная запись) – полностью программно-прозрачная. Более поздние модификации 486-го и все старшие процессоры позволяют переключаться на политику Write Back (обратная запись).

Работу кэша рассмотрим на примере четырехканального наборно-ассоциативного кэша процессора 486. Кэш является несекторированным – каждый бит достоверности (Valid bit) относится к целой строке, так что стока не может являться “частично достоверной”.

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

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

В случае промаха (Cache Miss) запрос на запись направляется только на внешнюю шину, а запрос на чтение обслуживается сложнее. Если этот зарос относится к кэшируемой области памяти, выполняется цикл заполнения целой строки кэша – все 16 байт (32 для Pentium) читаются из оперативной памяти и помещаются в одну из строк кэша, обслуживающего данный адрес. Если затребованные данные не укладываются в одной строке, заполняется и соседняя. Заполнение строки процессор старается выполнить самым быстрым способом – пакетным циклом с 32-битными передачами (64-битными для Pentium и старше).

Внутренний запрос процессора на данные удовлетворяется сразу, как только затребованные данные считываются из ОЗУ – заполнение строки до конца может происходить параллельно с обработкой полученных данных. Если в наборе, который обслуживает данный адрес памяти, имеется свободная строка (с нулевым битом достоверности), заполнена будет она и для нее установится бит достоверности. Если свободных строк в наборе нет, будет замещена строка, к которой дольше всех не было обращений. Выбор строки для замещения выполняется на основе анализа бит LRU (Least Recently Used) по алгоритму “псевдо-LRU”. Эти биты (по три на каждый из наборов) модифицируются при каждом обращении к строке данного набора (кэш-попадании или замещении).

Таким образом, выделение и замещение строк выполнятся только кэш-промахов чтения, при промахах записи заполнение строк не производится. Если затребованная область памяти присутствует в строке внутреннего кэша, то он обслужит этот запрос. Управлять кэшированием можно только на этапе заполнения строк; кроме того, существует возможность их аннулирования – объявления недостоверными и очистка всей кэш-памяти.

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

Аннулирование строк выполняется внешними схемами – оно необходимо в системах, у которых в оперативную память запись может производить не только один процессор, а и другие контроллеры шины – процессор или периферийные контроллеры. В этом случае требуются специальные средства для поддержания согласованности данных во всех ступенях памяти – в первичной и вторичной кэш-памяти и динамического ОЗУ. Если внешний (по отношению к рассматриваемому процессору) контроллер выполняет запись в память, процессору должен быть подан сигнал AHOLD. По этому сигналу процессор немедленно отдает управление шиной адреса A[31:4], на которой внешним контроллером устанавливается адрес памяти, сопровождаемый стробом EADS#. Если адресованная память присутствует в первичном кэше, процессор аннулирует строку – сбрасывает бит достоверности этой строки (она освобождается). Аннулирование строки процессор выполняет в любом состоянии.

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

3. Внешний кэш процессора

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

Внешняя кэш-память состоит из памяти данных, построенная на микросхемах SRAM, и контроллера кэша. В кэш-памяти хранится информация, копируемая из основной оперативной памяти. Каждый раз при обращении микропроцессора к памяти контроллер кэш-памяти проверяет наличие данных в кэше. Если эти данные в кэше есть (“попадание”), то микропроцессор получает данные из кэша. Если этих данных нет (“промах”), выполняется обычный цикл обращения к оперативной памяти DRAM.

Основным фактором, определяющим вероятность попадания, является емкость кэш-памяти. Как правило, при объеме кэша в 2 Кбайта вероятность попадания составляет от 50 до 60%. Поскольку размер кэш-памяти на современных компьютерах превышает 256 Кбайт, то вероятность попадания будет выше 90% (для компьютеров с объемом памяти ~ 256 Мбайт.)

Для реализации кэш-памяти в настоящее время разработаны эффективные однокристальные контроллеры. Наиболее широкое распространение получили контроллеры i82385 фирмы Intel и A38152 фирмы Asustec Microsystems.

Контроллер i82385 поддерживает 32 Кбайта кэш-памяти, и может работать в двух конфигурациях:

кэш-память с прямым отображением;

двухканальная модульно-ассоциативная кэш-память.

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

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

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

Контроллер A38152 фирмы Asustec имеет аппаратные и программные средства, обеспечивающие связанность информации: логика слежения за шиной, которая обеспечивает ликвидацию копий блоков в кэш-памяти, задание области адресов, не отображаемой в кэш-память.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5057
Авторов
на СтудИзбе
456
Средний доход
с одного платного файла
Обучение Подробнее