- •Оглавление
- •Введение (новый весь раздел)
- •Архитектуры, характеристики, классификация эвм
- •Однопроцессорные архитектуры эвм
- •Конвейерная обработка команд из раздела 3.5
- •Cуперскалярная обработка из раздела 1.1.1 с дополнением
- •Архитектура sisd
- •Vliw-архитектура
- •Simd-архитектура
- •Многоядерные структуры процессора и многопотоковая обработка команд
- •Технические и эксплуатационные характеристики эвм
- •Классификация эвм
- •Классификация эвм по назначению
- •Классификация эвм по функциональным возможностям
- •Функциональная и структурная организация эвм
- •Обобщенная структура эвм и пути её развития
- •Типы данных
- •Структура и форматы команд эвм
- •Способы адресации информации в эвм
- •2.4.1. Абсолютные способы формирования исполнительного адреса
- •2.4.2. Относительные способы формирования исполнительных адресов ячеек памяти
- •Примеры форматов команд и способов адресации
- •Форматы команд и способы адресации в интеловских процессорах
- •Форматы команд и способы адресации в risc-процессорах
- •Особенности системы команд ia-64
- •Раздел 2.6 перенесен из раздела 3.6 предыдущего пособия
- •Принципы организации системы прерывания программ
- •ФункциональнаЯ и структурнаЯ организация центрального процессора эвм
- •НИзменен номер азначение и структура центрального процессора
- •Назначение, классификация и организация цуу
- •Регистровые структуры процессоров amd64 (Intel64)
- •Регистровые структуры процессоров ia-64
- •Структурная организация современных универсальных микропроцессоров
- •Стратегия развития процессоров Intel
- •Особенности многоядерной процессорной микроархитектуры Intel Core
- •Микроархитектура Intel Nehalem
- •Семейство процессоров Intel Westmere
- •Микроархитектура amd к10
- •Современное состояние и перспективы развития микропроцессоров для Unix-серверов
- •Микропроцессоры семейства Ultra sparc
- •Микропроцессор ibm power 7
- •Микропроцессор Intel Itanium 9300 (Tukwila)
- •Микропроцессор Intel Nehalem ex
- •Принципы организации подсистемы памяти эвм и вс
- •Иерархическая структура памяти эвм
- •Организация стека регистров
- •Способы организации кэш-памяти
- •Типовая структура кэш-памяти
- •Способы размещения данных в кэш-памяти
- •Методы обновления строк основной памяти и кэша
- •Методы замещения строк кэш-памяти
- •МУбран абзац ногоуровневая организация кэша
- •Принципы организации оперативной памяти
- •Общие положения
- •Методы повышения пропускной способности оп
- •М Изменён номер етоды управления памятью
- •ОИзменен номер рганизация виртуальной памяти
- •Методы ускорения процессов обмена между оп и взу
- •ОрганизациЯ системНого интерфейса и вВода-вывода информации
- •Общая характеристика и классификация интерфейсов
- •Способы организации передачи данных
- •Системная организация компьютеров на базе современных чипсетов
- •Системная организация на базе чипсетов компании Intel
- •Системная организация на базе чипсета amd
- •Многопроцессорные и многомашинные вычислительные системы
- •Архитектуры вычислительных систем
- •Сильносвязанные многопроцессорные системы
- •Слабосвязанные многопроцессорные системы
- •Список литературы
- •Организация эвм и систем
Методы замещения строк кэш-памяти
Способ определения строки, удаляемой из кэш-памяти, называется стратегией замещения. Для замещения строк кэш-памяти существует несколько методов:
замещение строки, к которой наиболее длительное время не было обращения (метод LRU);
первая загруженная в кэш-память строка замещается первой (метод FIFO);
произвольное замещение.
Реализация этих методов упрощается в указанной последовательности, но наибольшим эффектом обладает метод замещения наиболее давнего по использованию объекта (строки).
Для реализации этого метода необходимо манипулировать строками, которые являются объектами замещения, с помощью LRU-стека. При каждой загрузке в этот стек помещается строка, в результате чего при замене используется строка, хранящаяся в наиболее глубокой позиции стека, и эта строка удаляется из стека. При доступе к строке, которая уже содержится в LRU-стеке, эта строка удаляется из стека и заново загружается в него. Стек типа LRU устроен таким образом, что, чем дольше к строке не было доступа, тем в более глубокой позиции она располагается. Реализация стека типа LRU, позволяющего с высокой скоростью выполнять такую операцию, усложняется по мере увеличения числа строк.
МУбран абзац ногоуровневая организация кэша
Предельно достижимая ёмкость кэш-памяти ограничена не только её ценой, но и электромагнитной интерференцией, налагающей жёсткие ограничения на максимально возможное количество адресных линий, а значит – на непосредственно адресуемый объём памяти. В принципе, можно прибегнуть к мультиплексированию выводов или последовательной передаче адресов, но это неизбежно снизит производительность и увеличит время доступа к ячейке кэш-памяти. С другой стороны, двухпортовая статическая память действительно очень дорогая, а однопортовая не в состоянии обеспечить параллельную обработку нескольких ячеек, что приводит к досадным задержкам. Естественный выход состоит в создании многоуровневой кэш-иерархии (см. рис. 4.7).
Большинство современных компьютеров имеют два или три уровня кэш-памяти. Первый, наиболее «близкий» к ядру процессора (L1), обычно реализуется на быстрой двухпортовой синхронной статической памяти, работающей на полной частоте ядра. Объём L1-кэша весьма невелик, составляет 64 КВ или 128 КВ и разделяется пополам на два кэша данных и команд для каждого ядра процессора. Латентность кэша L1 измеряется 3-мя, 4-мя тактами. На втором уровне расположен кэш L2. Он реализуется на однопортовой конвейерной статической памяти и зачастую работает на пониженной тактовой частоте. Поскольку однопортовая память значительно дешевле, объём L2-кэша достигает нескольких мегабайт в двухъядерных структурах процессоров, когда он является общим для двух ядер (Intel Core 2 Duo), или несколько сотен килобайт (256 КВ или 512 КВ), когда в многоядерном процессоре каждое ядро имеет свой L2-кэш (см. рис. 4.7). Этот кэш хранит как команды, так и данные. Латентность L2 для процессоров Intel Nehalem 3,2 ГГц составляет 11 тактов, для Penryn 3,2 ГГц – 18 тактов.
Рис. 4.7. Трехуровневая структура кэш-памяти многоядерного процессора
На третьем уровне находится L3-кэш, который объединяет ядра между собой и является разделяемым. В результате, L2-кэш выступает в качестве буфера при обращениях процессорных ядер в разделяемую кэш-память, имеющую достаточно солидный объём (2 МВ – AMD K10, 8 МВ – Intel Nehalem). Латентность L3-кэша исчисляется 52-мя, 54-мя тактами.
При построении многоуровневой кэш-памяти используют включающую (inclusive) или исключающую (exclusive) технологии. Кэш верхнего уровня, построенный по inclusive-технологии, всегда дублирует содержимое кэша нижнего уровня. Если построить инклюзивный L3-кэш, то он будет дублировать данные, хранящиеся в кэшах первого и второго уровней, что снижает эффективную ёмкость всей кэш-подсистемы. С другой стороны, инклюзивный разделяемый L3-кэш способен обеспечить в многоядерных процессорах более высокую скорость работы подсистемы памяти. Это связано с тем, что, если ядро попытается получить доступ к данным, и они отсутствуют в кэше L3, то нет необходимости искать эти данные в собственных кэшах других ядер – там их нет. А благодаря тому, что каждая строка L3-кэша снабжена дополнительными флагами, указывающими владельцев (ядра) этих данных, не вызывает затруднений и процедура обратного изменения содержимого строки кэша. Так, если какое-то ядро модифицирует данные в L3-кэше, изначально принадлежащие другому (или другим) ядрам, то в этом случае обновляется содержимое L1 и L2-кэшей и этих ядер. Эта технология весьма эффективна для обеспечения когерентности персональных кэшей каждого ядра, поскольку она уменьшает потребность в обмене информацией между ядрами. По такой технологии организована кэш-память процессоров Intel Nehalem.
Кэш – подсистема, построенная по exclusive-технологии, никогда не хранит избыточных копий данных и потому эффективная ёмкость подсистемы определяется суммой ёмкостей кэш-памятей всех уровней. Кэш первого уровня никогда не уничтожает строки при нехватке места. Даже если они не были модифицированы, данные в обязательном порядке вытесняются в кэш второго уровня, помещаясь на то место, где находилась только что переданная кэшу L1 строка. Т. е. кэши L1 и L2 как бы обмениваются друг с другом своими строками, а потому кэш-память используется весьма эффективно. По такой технологии организована кэш-память процессоров AMD K10.