Кэширование данных

Автор работы: Пользователь скрыл имя, 19 Сентября 2011 в 04:15, курсовая работа

Описание работы

Впервые слово «кэш» в компьютерном контексте было использовано в 1967 году во время подготовки статьи для публикации в журнале «IBM Systems Journal». Статья касалась усовершенствования памяти в разрабатываемой модели 85 из серии IBM System/360. Редактор журнала Лайл Джонсон попросил придумать более описательный термин, нежели «высокоскоростной буфер», но из-за отсутствия идей сам предложил слово «кэш». Статья была опубликована в начале 1968 года, авторы были премированы IBM, их работа получила распространение и впоследствии была улучшена, а слово «кэш» вскоре стало использоваться в компьютерной литературе как бщепринятый термин.

Содержание работы

Введение……………………………………………………………………………………….1

Описание устройства. Принципы кэширования………………………………………...5

Основные режимы работы…………………………………………………………………9

Алгоритм и принцип действия…………………………………………………………...13

Недостатки работы устройства при кэшировании……………………………………15
Предложения по повышению эффективности доступа к данным…………………..16
Список используемой литературы………………………………………………………20

Файлы: 1 файл

Кэширование_данных.doc

— 430.00 Кб (Скачать файл)
 

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

     4. Недостатки работы устройства при кэшировании.

     Недостатки  рассмотрим на примере трех видов  процессоров: Intel, AMD, IBM. Большинство недостатков процессора P-4 являются следствием нововведений, направленных на достижение высокой производительности — повышенной тактовой частоты и увеличенной длины конвейера, а также спекулятивного характера многих действий и оптимизации выполнения «типичных» операций в ущерб «нетипичным». Основными недостатками являются:

  • острая проблема алиасинга при выборке данных из L1-кэша и, как следствие, значительные потери на реплей (в первоначальном процессоре P-4);
  • половинная частота запуска скалярных операций SSE;
  • неэффективная реализация некоторых операций сдвига (всех сдвигов в процессоре P-4, сдвигов вправо и циклических в 64-битном режиме в процессоре P-4E);
  • высокая латентность инструкций, работающих с флагом переноса CF (ADC, SBB);
  • большая длина конвейера непредсказанного перехода;
  • недостаточная эффективность Т-кэша для плохо структурированных кодов;
  • малый размер L1-кэша и высокая латентность доступа к L2-кэшу.

   Архитектуре процессора K8 (AMD) имеется и ряд недостатков, часть из которых обусловлена базовыми ограничениями микроархитектуры:

  • статическое разбиение потока МОПов на группы по 3 элемента с привязкой очередей и функциональных устройств ALU/AGU к позициям этих элементов;
  • слабая система предсказания переходов, использующая устаревшие алгоритмы;
  • недостаточно совершенная аппаратная предвыборка из памяти;
  • отсутствие механизмов переупорядочения обращений к памяти;
  • взаимно эксклюзивная организация кэшей, ограничивающая скорость выборки из L2-кэша и увеличивающая время доступа;
  • недостаточная ассоциативность L1-кэшей, снижающая их эффективность.

   В микроархитектуре PPC970 к основным ограничениям и недостаткам можно отнести:

  • статическое разбиение потока МОПов на группы по 4-5 элементов с привязкой очередей и функциональных устройств к позициям этих элементов;
  • наличие множества ограничительных условий, снижающих число МОПов в формируемой группе (на выходе из декодера);
  • недостаточно эффективная реализация L1-кэшей, имеющих низкий уровень ассоциативности и слишком большой размер блока;
  • завышенное время выполнения предсказанного перехода (3 такта против 2 тактов у других процессоров);
  • высокая латентность выполнения целочисленных операций (2 такта) и операций с плавающей точкой (6 тактов);
  • недостаточная пропускная способность памяти из-за ограниченной скорости шины.
 
 

     5. Предложения по  повышению эффективности доступа к данным.

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

     Наличие машинных инструкций программной предвыборки  позволяет организовать пересылку данных из оперативной памяти в кэши процессора заблаговременно, с таких расчётом, чтобы ко времени использования этих данных они уже оказались бы в кэшах. Особенность операции предвыборки состоит в том, что она лишь инициирует считывание данных из памяти, после чего считается завершённой. В отличие от обычной операции доступа к памяти, операция предвыборки не должна ожидать прихода данных в конкретный регистр, поэтому она не блокирует другие операции в буфере переупорядочения ROB и может быть отправлена в отставку немедленно. Использование же операции фиктивной загрузки данных в регистр (с целью ускорения их прихода в кэш) привело бы к такому блокированию — несмотря на то, что значение, считанное в регистр, не понадобилось бы никакой другой операции.

     Существуют  различные варианты инструкций предвыборки  — считывание из памяти в L2-кэш, считывание из памяти или из L2-кэша в L1-кэш, считывание блока для его последующей  модификации, либо для одноразового использования. В процессоре P-4 реализована предвыборка только в L2-кэш.

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

     Наиболее  совершенные механизмы программной  и аппаратной предвыборки реализованы  в новом процессоре P8 (Intel Core).

     Ещё один механизм работы с памятью связан с особенностями загрузки и выгрузки в условиях внеочередного исполнения. В связи с тем, что операция может считаться корректно выполненной только к моменту ухода в отставку и не ранее, чем будет отставлены все предшествующие операции, физическая запись в кэши или в память не может быть произведена до этого момента. По этой причине все результаты выгрузки (записи) в память накапливаются в специальном буфере упорядочения обращений к памяти MOB (Memory Order Buffer). Физическая запись данных из этого буфера в кэш производится только в момент отставки соответствующей инструкции. Если операция загрузки (чтения) из памяти адресует элемент данных, который оказался в этом буфере, то он считывается непосредственно из буфера.

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

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

     Помимо  механизма восстановления, в процессоре P8 имеется также дополнительный «предсказатель», назначение которого состоит в снижении вероятности исполнения рискованной операции загрузки из памяти. Если такой загрузке предшествует операция выгрузки с не вычисленным (на данный момент) адресом памяти, производится предсказание конфликта по адресам на основе информации о предыдущем поведении этой операции загрузки. Если предсказывается отсутствие конфликта, операция загрузки запускается на выполнение. Если в момент отставки этой инструкции выяснится, что предсказание было неверным, и произошёл конфликт по адресам с операцией выгрузки, то операция загрузки будет отменена вместе со всеми последующими операциями, и будет произведено её повторное выполнение. Описанный механизм получил название «устранение неоднозначностей в памяти» (Memory Disambiguation).

     В заключение рассмотрим ещё один микроархитектурный механизм, который связан с вычислением адресов для обращений в память — работу с аппаратным стеком. Адрес вершины аппаратного стека хранится в регистре ESP. Изменение этого регистра может происходить как неявно, при помещении или удалении данных из стека (инструкции PUSH и POP) либо при входе или выходе в подпрограмму (инструкции CALL и RET), так и явно, в обычной целочисленной инструкции. Традиционно инструкции, использующие регистр ESP и неявно изменяющие его, преобразовывались декодером в два МОПа, один из которых производил содержательное действие, а другой — выполнял операцию сложения или вычитания для регистра ESP.

     В процессорах P-M, P-M2 и P8 введён специальный  механизм под названием «Dedicated Stack Engine». Этот механизм отслеживает (на этапе декодирования инструкций) текущее положение вершины стека и заменяет в порождаемых МОПах адресацию данных по «меняющемуся» регистру ESP на сумму некоторого «постоянного» базового адреса стека и отслеживаемого смещения. Таким образом, отпадает необходимость постоянно модифицировать регистр ESP — теперь его нужно вычислять только в случае явного использования в качестве операнда или индекса. Благодаря этому исчезают ненужные зависимости между операциями по этому регистру, снижается число МОПов в указанных инструкциях (с двух до одного), повышается эффективность работы декодера и увеличивается общая производительность процессора. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Список  используемой литературы.

  1. Гук М., Аппаратные средства IBM PC, Энциклопедия – СПб: ПитерКом, 1999. – 816с.: ил.
  1. Э.Танненбаум,Современные  операционные системы, СПб: Питер, 2002. - 1024 с.
  1. Григорьев В.А., Микропроцессор i486. Архитектура и программирование (в 4-х книгах). Книга 2. Внутрення архитектура М., Гранал, 1993. - с. 382, ил. 54.
  1. Марголис  А., Поиск и устранение неисправностей в персональных компьютерах. – К.: «Диалектика», 1994. – 368с., ил.
  1. Конспект  лекций.
  1. Петровский  И.И., Прибыльский А.В., Логические ИС КР1533, КР1554. Справочник. Часть 2. «Бином», 1993.
  1. Шульгин О.А. и др., Справочник по цифровым логическим микросхемам, Часть 1 и 2, М.: ИДДК, 1998.

Информация о работе Кэширование данных