Автор работы: Пользователь скрыл имя, 19 Сентября 2011 в 04:15, курсовая работа
Впервые слово «кэш» в компьютерном контексте было использовано в 1967 году во время подготовки статьи для публикации в журнале «IBM Systems Journal». Статья касалась усовершенствования памяти в разрабатываемой модели 85 из серии IBM System/360. Редактор журнала Лайл Джонсон попросил придумать более описательный термин, нежели «высокоскоростной буфер», но из-за отсутствия идей сам предложил слово «кэш». Статья была опубликована в начале 1968 года, авторы были премированы IBM, их работа получила распространение и впоследствии была улучшена, а слово «кэш» вскоре стало использоваться в компьютерной литературе как бщепринятый термин.
Введение……………………………………………………………………………………….1
Описание устройства. Принципы кэширования………………………………………...5
Основные режимы работы…………………………………………………………………9
Алгоритм и принцип действия…………………………………………………………...13
Недостатки работы устройства при кэшировании……………………………………15
Предложения по повышению эффективности доступа к данным…………………..16
Список используемой литературы………………………………………………………20
Строки кэш-памяти можно по отдельности объявить недостоверными, задавая операцию недостоверности кэш-памяти на шине процессора. При инициировании такой операции кэш-память сравнивает объявляемый недостоверным адрес с тэгами строк, находящихся в кэш-памяти, и сбрасывает бит достоверности при обнаружении соответствия (равенства). Предусмотрена также операция очистки кэш-памяти, которая превращает в недостоверное все содержимое кэш-памяти.
4. Недостатки работы устройства при кэшировании.
Недостатки рассмотрим на примере трех видов процессоров: Intel, AMD, IBM. Большинство недостатков процессора P-4 являются следствием нововведений, направленных на достижение высокой производительности — повышенной тактовой частоты и увеличенной длины конвейера, а также спекулятивного характера многих действий и оптимизации выполнения «типичных» операций в ущерб «нетипичным». Основными недостатками являются:
Архитектуре процессора K8 (AMD) имеется и ряд недостатков, часть из которых обусловлена базовыми ограничениями микроархитектуры:
В микроархитектуре PPC970 к основным ограничениям и недостаткам можно отнести:
5. Предложения по повышению эффективности доступа к данным.
В современных процессорах имеются различные средства, позволяющие повысить эффективность доступа к данным в памяти и снизить потери на ожидание их прихода, а также прочие задержки и затраты на организацию этого доступа. Наиболее важными из этих средств являются механизмы предвыборки из памяти. В каждом из рассматриваемых процессоров реализовано два таких механизма — программная предвыборка (software prefetch), и автоматическая аппаратная предвыборка (hardware prefetch).
Наличие машинных инструкций программной предвыборки позволяет организовать пересылку данных из оперативной памяти в кэши процессора заблаговременно, с таких расчётом, чтобы ко времени использования этих данных они уже оказались бы в кэшах. Особенность операции предвыборки состоит в том, что она лишь инициирует считывание данных из памяти, после чего считается завершённой. В отличие от обычной операции доступа к памяти, операция предвыборки не должна ожидать прихода данных в конкретный регистр, поэтому она не блокирует другие операции в буфере переупорядочения ROB и может быть отправлена в отставку немедленно. Использование же операции фиктивной загрузки данных в регистр (с целью ускорения их прихода в кэш) привело бы к такому блокированию — несмотря на то, что значение, считанное в регистр, не понадобилось бы никакой другой операции.
Существуют различные варианты инструкций предвыборки — считывание из памяти в L2-кэш, считывание из памяти или из L2-кэша в L1-кэш, считывание блока для его последующей модификации, либо для одноразового использования. В процессоре P-4 реализована предвыборка только в L2-кэш.
Автоматическая
аппаратная предвыборка представляет
собой механизм, который распознаёт
последовательные (или иные регулярные)
обращения в память и пытается
производить опережающую
Наиболее
совершенные механизмы
Ещё один механизм работы с памятью связан с особенностями загрузки и выгрузки в условиях внеочередного исполнения. В связи с тем, что операция может считаться корректно выполненной только к моменту ухода в отставку и не ранее, чем будет отставлены все предшествующие операции, физическая запись в кэши или в память не может быть произведена до этого момента. По этой причине все результаты выгрузки (записи) в память накапливаются в специальном буфере упорядочения обращений к памяти MOB (Memory Order Buffer). Физическая запись данных из этого буфера в кэш производится только в момент отставки соответствующей инструкции. Если операция загрузки (чтения) из памяти адресует элемент данных, который оказался в этом буфере, то он считывается непосредственно из буфера.
В условиях внеочередного исполнения может получиться, что операция загрузки окажется готовой к выполнению раньше, чем выполнится операция выгрузки, записывающая данные в память по тому же адресу. Также может оказаться, что адрес данных в какой-либо операции выгрузки ещё не вычислен, и есть риск, что рассматриваемая операция загрузки могла бы обратиться как раз к этим данным по этому адресу. Чтобы избежать проблем такого рода, в процессорах обычно реализуют консервативные схемы управления операциями обращения в память, с запретом на выполнение любых рискованных операций, которые могли бы привести к чтению некорректных данных. Однако такие консервативные схемы могут помешать внеочередному исполнению «безопасных» операций и привести к снижению производительности.
На
практике вероятность конфликтов по
адресам такого рода обычно невелика.
Поэтому при наличии в
Помимо механизма восстановления, в процессоре P8 имеется также дополнительный «предсказатель», назначение которого состоит в снижении вероятности исполнения рискованной операции загрузки из памяти. Если такой загрузке предшествует операция выгрузки с не вычисленным (на данный момент) адресом памяти, производится предсказание конфликта по адресам на основе информации о предыдущем поведении этой операции загрузки. Если предсказывается отсутствие конфликта, операция загрузки запускается на выполнение. Если в момент отставки этой инструкции выяснится, что предсказание было неверным, и произошёл конфликт по адресам с операцией выгрузки, то операция загрузки будет отменена вместе со всеми последующими операциями, и будет произведено её повторное выполнение. Описанный механизм получил название «устранение неоднозначностей в памяти» (Memory Disambiguation).
В заключение рассмотрим ещё один микроархитектурный механизм, который связан с вычислением адресов для обращений в память — работу с аппаратным стеком. Адрес вершины аппаратного стека хранится в регистре ESP. Изменение этого регистра может происходить как неявно, при помещении или удалении данных из стека (инструкции PUSH и POP) либо при входе или выходе в подпрограмму (инструкции CALL и RET), так и явно, в обычной целочисленной инструкции. Традиционно инструкции, использующие регистр ESP и неявно изменяющие его, преобразовывались декодером в два МОПа, один из которых производил содержательное действие, а другой — выполнял операцию сложения или вычитания для регистра ESP.
В
процессорах P-M, P-M2 и P8 введён специальный
механизм под названием «Dedicated Stack
Engine». Этот механизм отслеживает (на этапе
декодирования инструкций) текущее положение
вершины стека и заменяет в порождаемых
МОПах адресацию данных по «меняющемуся»
регистру ESP на сумму некоторого «постоянного»
базового адреса стека и отслеживаемого
смещения. Таким образом, отпадает необходимость
постоянно модифицировать регистр ESP —
теперь его нужно вычислять только в случае
явного использования в качестве операнда
или индекса. Благодаря этому исчезают
ненужные зависимости между операциями
по этому регистру, снижается число МОПов
в указанных инструкциях (с двух до одного),
повышается эффективность работы декодера
и увеличивается общая производительность
процессора.
Список используемой литературы.