Инновации в конструктивных решениях устройств ПК на примере кэш-памяти
История развития персональных компьютеров. Появление кэш-памяти, ее устройство, расположение и принципы работы. Функционирование кэш-памяти. Аппаратная реализация центрального процессора. Кэш центрального процессора и его уровни. Ассоциативность кэша.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 29.03.2019 |
Размер файла | 20,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Инновации в конструктивных решениях устройств ПК на примере кэш-памяти
Паршин Г.К.
Балаковский инженерно-технологический институтНационального. исследовательскогоядерногоуниверситета "Московскогоинженернофизическогоинститута"
Балаково, Россия
Целью творческой работы «Инновации в конструктивных решениях устройств ПК на примере кэш-памяти» является проведение анализа развития устройства ПК.
Кэш -- это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа.[2]
Кэш-память имеет небольшой объем и размещается непосредственно на процессорном кристалле. Ее скорость работы гораздо выше, чем у динамической памяти (модули ОЗУ), но ниже, чем работают регистры общего назначения (РОН) центрального процессора. [3]
История кэш-памяти компьютер кэш процессор память
Строго говоря, до того, как кэш-память перебралась на персоналки, она уже несколько десятилетий успешно использовалась в суперкомпьютерах.
Впервые кэш-память объемом всего в 16 КБ появилась в ПК на базе процессора i80386. На сегодняшний день современные процессоры используют различные уровни кэша, от первого (самый быстрый кэш самого маленького объема - как правило, 128 КБ) до третьего (самый медленный кэш самого большого объема - до десятков МБ).
Сначала внешняя кэш-память процессора размещалась на отдельном чипе. Со временем, однако, это привело к тому, что шина, расположенная между кэшем и процессором, стала узким местом, замедляющим обмен данными. В современных микропроцессорах и первый, и второй уровни кэш-памяти находятся в самом ядре процессора. [1]
Долгое время в процессорах существовали всего два уровня кэша, но в CPU Intel Itanium впервые появилась кэш-память третьего уровня, общая для всех ядер процессора. Существуют и разработки процессоров с четырехуровневым кэшем.
Впервые кэш-память появилась на 386-х компьютерах и располагалась она на материнской плате. Материнские платы 386 DX имели кэш-память объемом от 64 до 256 Кб. 486-е процессоры уже имели кэш-память, расположенную на процессорном кристалле, но кэш-память на материнской плате была сохранена. Система кэш-памяти стала двухуровневой: память на кристалле стали называть кэшем первого уровня (L1), а на материнской плате - кэшем второго уровня (L2). Со временем кэш второго уровня "перебрался" на кристалл процессора. Первой это осуществила AMD на процессоре K6-III (L1 = 64 Kb, L2 = 256 Kb). [3]
Впервые слово «cache» в компьютерном контексте было использовано в 1967 году во время подготовки статьи для публикации в журнале «IBM Systems Journal». Статья касалась усовершенствования памяти в разрабатываемой модели 85 из серии IBM System/360. Редактор журнала Лайл Джонсон попросил придумать более описательный термин, нежели «высокоскоростной буфер», но из-за отсутствия идей сам предложил слово «cache». Статья была опубликована в начале 1968 года, авторы были премированы IBM, их работа получила распространение и впоследствии была улучшена, а слово «кэш» вскоре стало использоваться в компьютерной литературе как общепринятый термин. [2]
Функционирование кэш-памяти
Кэш состоит из набора записей. Каждая запись ассоциирована с элементом данных или блоком данных (небольшой части данных), которая является копией элемента данных в основной памяти. Каждая запись имеет идентификатор, часто называемый тегом, определяющий соответствие между элементами данных в кэше и их копиями в основной памяти. Когда клиент кэша (ЦПУ, веб-браузер, операционная система) обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного элемента данных, то используются элементы данных в кэше. Такой случай называется попаданием кэша.
Если в кэше не найдена запись, содержащая затребованный элемент данных, то он читается из основной памяти в кэш, и становится доступным для последующих обращений. Такой случай называется промахом кэша. Процент обращений к кэшу, когда в нём найден результат, называется уровнем попаданий, или коэффициентом попаданий в кэш. Например, веб-браузер проверяет локальный кэш на диске на наличие локальной копии веб-страницы, соответствующей запрошенному URL. В этом примере URL -- это идентификатор, а содержимое веб-страницы -- это элементы данных. Если кэш ограничен в объёме, то при промахе может быть принято решение отбросить некоторую запись для освобождения пространства. Для выбора отбрасываемой записи используются разные алгоритмы вытеснения.
При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи. В кэше с немедленной записью каждое изменение вызывает синхронное обновление данных в основной памяти. В кэше с отложенной записью (или обратной записью) обновление происходит в случае вытеснения элемента данных, периодически или по запросу клиента.
Для отслеживания модифицированных элементов данных записи кэша хранят признак модификации (изменённый или «грязный»). Промах в кэше с отложенной записью может потребовать два обращения к основной памяти: первое для записи заменяемых данных из кэша, второе для чтения необходимого элемента данных. В случае, если данные в основной памяти могут быть изменены независимо от кэша, то запись кэша может стать неактуальной. Протоколы взаимодействия между кэшами, которые сохраняют согласованность данных, называют протоколами когерентности кэша. [2]
Аппаратная реализация
Кэш центрального процессора
В связи с ростом частоты, на которой функционируют процессоры, и повышением производительности подсистемы оперативной памяти (ОЗУ), узким местом вычислительной системы стал интерфейс передачи данных. Кэш-память может давать значительный выигрыш в производительности в случае, когда тактовая частота ОЗУ значительно меньше тактовой частоты процессора.
Ряд моделей процессоров обладают собственным кэшем для минимизации времени доступа к оперативной памяти (ОЗУ), которая медленнее, чем регистры (эти регистры и буферы ввода-вывода могут считаться кэшем нулевого уровня). Тактовая частота для кэш-памяти обычно не намного меньше частоты ЦП.
В процессорах с поддержкой виртуальной адресации часто вводят небольшой быстродействующий буфер трансляций адресов (TLB). Его скорость важна, так как он опрашивается на каждом обращении в память. Проблема синхронизации между различными кэшами (как одного, так и множества процессоров) решается когерентностью кэша.
Существует три варианта обмена информацией между кэш-памятью различных уровней, или, как говорят, кэш-архитектуры: инклюзивная, эксклюзивная и неэксклюзивная. Эксклюзивная кэш-память предполагает уникальность информации, находящейся в различных уровнях кэша (предпочитает фирма AMD). В неэксклюзивной кэши могут вести себя как угодно. [2]
Кэш центрального процессора: уровни кэша.
Кэш центрального процессора разделён на несколько уровней. Максимальное количество кэшей -- четыре. В универсальном процессоре в настоящее время число уровней может достигать трёх. Кэш-память уровня N+1, как правило, больше по размеру и медленнее по скорости доступа и передаче данных, чем кэш-память уровня N.
Самым быстрым является кэш первого уровня -- L1 cache (level 1 cache). По сути, она является неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков. В современных процессорах обычно L1 разделен на два кэша -- кэш команд (инструкций) и кэш данных (Гарвардская архитектура). Большинство процессоров без L1 не могут функционировать. L1 работает на частоте процессора, и, в общем случае, обращение к нему может производиться каждый такт. Зачастую является возможным выполнять несколько операций чтения/записи одновременно.
Вторым по быстродействию является кэш второго уровня -- L2 cache, который обычно, как и L1, расположен на одном кристалле с процессором. В ранних версиях процессоров L2 реализован в виде отдельного набора микросхем памяти на материнской плате. Объём L2 от 128 кбайт до 1?12 Мбайт. В современных многоядерных процессорах кэш второго уровня, находясь на том же кристалле, является памятью раздельного пользования -- при общем объёме кэша в n Мбайт на каждое ядро приходится по n/c Мбайта, где c -- количество ядер процессора.
Кэш третьего уровня наименее быстродействующий, но он может быть очень большим -- более 24 Мбайт. L3 медленнее предыдущих кэшей, но всё равно значительно быстрее, чем оперативная память. В многопроцессорных системах находится в общем пользовании и предназначен для синхронизации данных различных L2.
Существует четвёртый уровень кэша, применение которого оправдано только для многопроцессорных высокопроизводительных серверов и мейнфреймов. Обычно он реализован отдельной микросхемой.
Кэш центрального процессора: Ассоциативность кэша
Одна из фундаментальных характеристик кэш-памяти -- уровень ассоциативности -- отображает её логическую сегментацию, которая вызвана тем, что последовательный перебор всех строк кэша в поисках необходимых данных потребовал бы десятков тактов и свёл бы на нет весь выигрыш от использования встроенной в ЦП памяти. Поэтому ячейки ОЗУ жёстко привязываются к строкам кэш-памяти (в каждой строке могут быть данные из фиксированного набора адресов), что значительно сокращает время поиска.
При одинаковом объёме кэша схема с большей ассоциативностью будет наименее быстрой, но наиболее эффективной (после четырёхпотоковой реализации прирост «удельной эффективности» на один поток растет мало). [2]
Кэширование внешних накопителей
Многие периферийные устройства хранения данных используют внутренний кэш для ускорения работы, в частности, жёсткие диски используют кэш-память от 1 до 64 Мбайт (модели с поддержкой NCQ/TCQ используют её для хранения и обработки запросов), устройства чтения CD/DVD/BD-дисков также кэшируют прочитанную информацию для ускорения повторного обращения.
Операционная система также использует часть оперативной памяти в качестве кэша дисковых операций (например, для внешних устройств, не обладающих собственной кэш-памятью, в том числе жёстких дисков, flash-памяти и гибких дисков). Часто для кэширования жёстких дисков предоставляется вся свободная (не выделенная процессам) оперативная память.
Применение кэширования внешних накопителей обусловлено следующими факторами:
скорость доступа процессора к оперативной памяти в сотни и более раз больше, чем к памяти внешних накопителей;
производительность дисковых устройств хранения (жесткие, гибкие, оптические диски) максимальна при чтении-записи нескольких последовательно расположенных блоков и значительно уменьшается при одиночных запросах в разные места диска, что связано с инерцией механического привода головки.
крайне неравномерная частота обращения к различным блокам памяти внешних накопителей:
использование части блоков несколькими процессами одновременно, по чтению и записи (например, в базах данных)
очень частое чтение части блоков (индексные файлы, каталоги в файловой системе)
очень частая запись части блоков (файлы логов, журналов, баз данных; метаданные файловой системы).
При чтении кэш позволяет прочитать блок один раз, затем хранить одну копию блока в оперативной памяти для всех процессов и выдавать содержимое блока «мгновенно» (по сравнению с запросом к диску). Существует техника «предзапроса» -- в фоновом режиме операционной системой считываются в кэш также несколько следующих блоков (после нужного).
При записи кэш позволяет сгруппировать короткие записи в более крупные, которые эффективнее обрабатываются накопителями, либо избежать записи промежуточных модификаций. При этом все промежуточные состояния блока видны процессам из оперативной памяти.
Кэширование внешних устройств хранения значительно увеличивает производительность системы за счёт оптимизации использования ввода-вывода. Преимуществом технологии является прозрачная (незаметная для программ) автоматическая оптимизация использования памяти-дисков при неизменности логики приложений, работающих с файлами.
Недостатком кэширования записи является промежуток времени между запросом на запись от программы и фактической записью блока на диск, а также изменение порядка выполнения записей, что может приводить к потерям информации или несогласованности структур при сбое питания или зависании системы. Данная проблема сглаживается принудительной периодической синхронизацией (записью изменённых строк кэша) и журналированием файловых систем. [2]
Программная реализация
Политика записи при кэшировании
При чтении данных кэш-память даёт однозначный выигрыш в производительности. При записи данных выигрыш можно получить только ценой снижения надёжности. Поэтому в различных приложениях может быть выбрана та или иная политика записи кэш-памяти.
Существуют две основные политики записи кэш-памяти -- сквозная запись (write-through) и отложенная запись (write-back):
Сквозная запись -- запись производится непосредственно в основную память (и дублируется в кэш), то есть запись не кэшируется.
Отложенная запись -- запись данных производится в кэш. Запись же в основную память производится позже (при вытеснении или по истечении времени), группируя в одной операции несколько операций записи в соседние ячейки. Технология обратной записи на некоторое время делает данные в основной памяти неактуальными, для самого ЦП эти неактуальности не заметны, но перед обращением к памяти другого ведущего системной шины (контроллера DMA, bus-master-устройства шины PCI) кэш должен быть записан в память принудительно. При использовании обратной записи в многопроцессорной системе кэши различных ЦП должны быть согласованы (или процессоры должны использовать одну кэш-память).
Политика записи при кэшировании
Алгоритм работы кэша с отложенной записью
Изначально все заголовки буферов помещаются в список свободных буферов. Если процесс намеревается прочитать или модифицировать блок, то он выполняет следующий алгоритм:
пытается найти в хеш-таблице заголовок буфера с заданным номером;
в случае, если полученный буфер занят, ждёт его освобождения;
в случае, если буфер не найден в хеш-таблице, берёт первый буфер из хвоста списка свободных;
в случае, если список свободных буферов пуст, то выполняется алгоритм вытеснения (см. ниже);
в случае, если полученный буфер помечен как «грязный», выполняет асинхронную запись содержимого буфера во внешнюю память.
удаляет буфер из хеш-таблицы, если он был помещён в неё;
помещает буфер в хеш-таблицу с новым номером.
Процесс читает данные в полученный буфер и освобождает его. В случае модификации процесс перед освобождением помечает буфер как «грязный». При освобождении буфер помещается в голову списка свободных буферов.
Таким образом:
если процесс прочитал некоторый блок в буфер, то велика вероятность, что другой процесс при чтении этого блока найдёт буфер в оперативной памяти;
запись данных во внешнюю память выполняется только тогда, когда не хватает «чистых» буферов, либо по запросу. [2]
Алгоритм вытеснения
Если список свободных буферов пуст, то выполняется алгоритм вытеснения буфера. Алгоритм вытеснения существенно влияет на производительность кэша. Существуют следующие алгоритмы:
L LRU (англ. Least Recently Used) -- вытесняется буфер, неиспользованный дольше всех;
MRU (англ. Most Recently Used) -- вытесняется последний использованный буфер;
LFU (англ.) (англ. Least Frequently Used) -- вытесняется буфер, использованный реже всех;
ARC (англ.) (англ. Adaptive Replacement Cache) -- алгоритм вытеснения, комбинирующий LRU и LFU, запатентованный IBM.
Применение того или иного алгоритма зависит от стратегии кэширования данных. LRU наиболее эффективен, если данные гарантированно будут повторно использованы в ближайшее время. MRU наиболее эффективен, если данные гарантированно не будут повторно использованы в ближайшее время. В случае, если приложение явно указывает стратегию кэширования для некоторого набора данных, то кэш будет функционировать наиболее эффективно.
Кэширование, выполняемое операционной системой
Кэш оперативной памяти состоит из следующих элементов:
набор страниц оперативной памяти, разделённых на буферы, равные по длине блоку данных соответствующего устройства внешней памяти;
набор заголовков буферов, описывающих состояние соответствующего буфера;
хеш-таблицы, содержащей соответствие номера блока заголовку;
списки свободных буферов. [2]
Кэширование интернет-страниц
В процессе передачи информации по сети может использоваться кэширование интернет-страниц -- процесс сохранения часто запрашиваемых документов на (промежуточных) прокси-серверах или машине пользователя, с целью предотвращения их постоянной загрузки с сервера-источника и уменьшения трафика. Таким образом, информация перемещается ближе к пользователю.
Управление кэшированием осуществляется при помощи HTTP-заголовков. Как вариант, кэширование веб-страниц может осуществляться с помощью CMS конкретного сайта для снижения нагрузки на сервер при большой посещаемости. Кэширование может производиться как в память, так и в файловый кэш. Недостаток кэширования заключается в том, что изменения, внесенные на одном браузере, могут не сразу отражаться в другом браузере, в котором данные берутся из кэш-памяти. [2]
Кэширование результатов работы
Многие программы записывают куда-либо промежуточные или вспомогательные результаты работы, чтобы не вычислять их каждый раз, когда они понадобятся. Это ускоряет работу, но требует дополнительной памяти (оперативной или дисковой). Примером такого кэширования является индексирование баз данных.
В этой работе мы познакомились с понятием кэш-памяти, ее назначении, истории появления. Узнали о том, как она влияет на производительность современного компьютера. Наличие кэш-памяти позволяет значительно оптимизировать работу процессора, уменьшить время его простоя, а, следовательно, и увеличить быстродействие всей системы. [1]
Список используемых источников
1. http://biosgid.ru/osnovy-ustrojstva-pk/kesh-pamyat-protsessora-cpu-cache.html#i-6
2. https://ru.wikipedia.org/wiki/%D0%9A%D1%8D%D1%88#.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F
3. http://on-line-teaching.com/IBM-computer/27_cash.html
Размещено на Allbest.ru
...Подобные документы
Распараллеливание операций, кэширование памяти и расширение системы команд как способы совершенствования архитектуры и роста производительности компьютеров. Внутренняя структура конвейера центрального процессора Pentium i486. Корпус и колодки ЦП Intel.
презентация [281,2 K], добавлен 27.08.2013Управление взаимодействием всех устройств ЭВМ. История создания и развития производства процессора. Структура центрального процессора. Регистры общего назначения. Обозначения популярных моделей процессоров Intel и AMD. Команды центрального процессора.
реферат [111,2 K], добавлен 25.02.2015Память персонального компьютера, основные понятия. Характеристика внутренней и внешней памяти компьютера. Логическое отображение и размещение. Классификация компьютерной памяти по назначению, по удаленности и доступности для центрального процессора.
контрольная работа [1,8 M], добавлен 27.11.2010Принципы программного управления компьютером. Модульная и функциональная организация, аппаратная реализация электронно-вычислительной машины. Назначение устройств ввода и вывода информации. Функции процессора; устройства внутренней и внешней памяти.
презентация [2,2 M], добавлен 27.11.2013Описание устройства и принципа работы составных элементов компьютера: системного блока, платы, центрального процессора, кеш-памяти, материнской платы BIOS и CMOS, запоминающего устройства RAM, компьютерной шины, логических контроллеров, аппаратных портов.
реферат [61,0 K], добавлен 10.01.2012Физическая организация памяти компьютера. Организация структуры обработки потока данных. Степень и уровни параллелизма. Оценка иерархической организации памяти. Динамическая перестройка структуры. Микросхемы запоминающих устройств. Кэш-память процессора.
лекция [2,4 M], добавлен 27.03.2015Внутренний кэш. Смешанная и разделенная кэш-память. Статическая и динамическая память. TLB как разновидность кэш-памяти. Организация кэш-памяти. Отображение секторов ОП в кэш-памяти. Иерархическая модель кэш-памяти. Ассоциативность кэш-памяти.
курсовая работа [229,1 K], добавлен 04.11.2006Тестирования центрального процессора и оперативной памяти компьютерных систем и серверов. Устройство функциональной диагностики коры головного мозга. Сравнительное тестирование производительности и стабильности процессоров в режиме "оверклокинга".
дипломная работа [4,8 M], добавлен 11.06.2012Архитектура персонального компьютера, функциональные и технические характеристики его устройств. Компоненты материнской платы, строение процессора, виды памяти. Принципы работы процессора и обращение к данным. Пути развития персонального компьютера.
курсовая работа [102,4 K], добавлен 11.02.2011История развития центрального процессора. Основные проблемы создания многоядерных процессоров. Проектирование микропроцессорной системы на базе процессора Intel 8080. Разработка принципиальной схемы и блок-схемы алгоритма работы микропроцессорной системы.
курсовая работа [467,6 K], добавлен 11.05.2014История появления и развития первых процессоров для компьютеров. Общая структура центрального процессора. Устройство блока интерфейса. Основные характеристики процессора. Кеш-память разных уровней. Разрядность и количество ядер. Частота и системная шина.
презентация [1,4 M], добавлен 11.04.2019Базовая система ввода-вывода информации. Базовые функции интерфейса и настройки оборудования. Основные понятия и функционирование BIOS. Сведения о системной BIOS компьютера. Затенение ROM-памяти. Самотестирование процессора, модулей оперативной памяти.
реферат [21,7 K], добавлен 12.12.2011Описание архитектуры внешних выводов кристалла процессора. Рассмотрение форматов данных для целых чисел со знаком и без знака. Выбор модели памяти и структуры регистровой памяти. Использование кэш прямого отображения. Арифметические и логические команды.
курсовая работа [890,5 K], добавлен 05.06.2015Разработка структурной схемы гипотетической ЭВМ, ее функциональной или принципиальной схемы и алгоритма работы конкретного блока, входящего в состав этой ЭВМ. Принципы работы и архитектура центрального процессора и памяти, система прерывания программ.
курсовая работа [4,1 M], добавлен 25.03.2012Объем двухпортовой памяти, расположенной на кристалле, для хранения программ и данных в процессорах ADSP-2106x. Метод двойного доступа к памяти. Кэш-команды и конфликты при обращении к данным по шине памяти. Пространство памяти многопроцессорной системы.
реферат [28,1 K], добавлен 13.11.2009Рассмотрение принципа работы процессора и его практической реализации с использованием языка описания аппаратуры Verilog. Проектирование системы команд процессора. Выбор размера массива постоянной памяти. Подключение счетчика инструкций и файла регистра.
курсовая работа [1,2 M], добавлен 26.05.2022Последовательность загрузки значений регистров базовых адресов и регистров прав доступа для системного режима. Методы и средства защиты памяти, преобразования логического адреса в физический, реализованных в УУП процессора. Режим работы процессора.
лабораторная работа [1,5 M], добавлен 23.07.2012Процессор как важная часть компьютера. Частота центрального процессора. Встроенный контроллер памяти. Основные технические характеристики мониторов. Технологический процесс изготовления процессора. Основные группы стандартов и рекомендаций на мониторы.
реферат [17,2 K], добавлен 01.04.2010Схема распределения памяти, соответствующая пользовательской трактовке распределения памяти. Перемещение с помощью таблицы сегментов. Аппаратная поддержка сегментного распределения памяти. Сегментно-страничная организация памяти с двухуровневой схемой.
лекция [1,5 M], добавлен 24.01.2014Архитектура многопроцессорных систем с общей шиной и с неоднородным доступом к памяти. Структура кэш памяти. Взаимодействие user space с kernel space. Средства синхронизации ядра Linux. Обход каталогов страниц. Инструментация кода средствами Clang.
дипломная работа [513,7 K], добавлен 14.11.2017