ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 666
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ, КЛАССИФИКАЦИЯ ЭВМ
3. ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ
4. ПРИНЦИПЫ ОРГАНИЗАЦИИ ПОДСИСТЕМЫ ПАМЯТИ ЭВМ И ВС
ОРГАНИЗАЦИЯ СИСТЕМНОГО ИНТЕРФЕЙСА И ВВОДА/ВЫВОДА ИНФОРМАЦИИ
МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
тельной передаче адресов, но это неизбежно снизит производительность и увеличит время доступа к ячейке кэш-памяти. С другой стороны, двухпортовая статическая память действительно очень дорогая, а одно- портовая не в состоянии обеспечить параллельную обработку несколь- ких ячеек, что приводит к досадным задержкам. Естественный выход состоит в создании многоуровневой кэш-иерархии (рис. 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 тактов.
Оперативная память
На третьем уровне находится L3 кэш, который объединяет ядра между собой и является разделяемым. В результате L2 кэш выступает в качестве буфера при обращениях процессорных ядер в разделяемую кэш-память, имеющую достаточно солидный объём (2 Мб – AMD K10, 8 Мб – Intel Nehalem). Латентность L3 кэша исчисляется 52-мя, 54-мя тактами.
Кэш-контроллер второго уровня
Кэш-контроллер второго уровня
Кэш-память: 1-port SRAM, средний объём, пониженная ча-
стота
Кэш-память: 1-port SRAM, средний объём, пониженная ча-
стота
Кэш-контроллер третьего уровня
Кэш-память: 1-port SRAM, большой объём,
пониженная частота
…
Кэш-контроллер первого уровня
Ядро процессора
Ядро процессора
Кэш-контроллер первого уровня
Кэш-память: 2-port SRAM, малый объём, полная частота
Кэш-память: 2-port SRAM, малый объём, полная частота
…
…
Рис. 4.7. Трехуровневая структура кэш-памяти многоядерного процессора
При построении многоуровневой кэш-памяти используют вклю- чающую (inclusive) или исключающую (exclusive) технологии. Кэш верхнего уровня, построенный по inclusive-технологии, всегда дубли- рует содержимое кэша нижнего уровня. Если построить инклюзивный L3 кэш, то он будет дублировать данные, хранящиеся в кэшах первого
и второго уровней, что снижает эффективную ёмкость всей кэш- подсистемы. С другой стороны, инклюзивный разделяемый L3 кэш спо- собен обеспечить в многоядерных процессорах более высокую скорость работы подсистемы памяти. Это связано с тем, что если ядро попытает- ся получить доступ к данным и они отсутствуют в кэше L3, то нет необ- ходимости искать эти данные в собственных кэшах других ядер – там их нет. А благодаря тому, что каждая строка L3 кэша снабжена допол- нительными флагами, указывающими владельцев (ядра) этих данных, не вызывает затруднений и процедура обратного изменения содержимо- го строки кэша. Так, если какое-то ядро модифицирует данные в L3 кэше, изначально принадлежащие другому (или другим) ядру, то в этом случае обновляется содержимое L1 и L2 кэшей и этих ядер. Эта технология весьма эффективна для обеспечения когерентности персо- нальных кэшей каждого ядра, поскольку она уменьшает потребность в обмене информацией между ядрами. По такой технологии организо- вана кэш-память процессоров Intel Nehalem.
Кэш – подсистема, построенная по exclusive-технологии, никогда не хранит избыточных копий данных и потому эффективная ёмкость подсистемы определяется суммой ёмкостей кэш-памятей всех уровней. Кэш первого уровня никогда не уничтожает строки при нехватке места. Даже если они не были модифицированы, данные в обязательном по- рядке вытесняются в кэш второго уровня, помещаясь на то место, где находилась только что переданная кэшу L1 строка, т.е. кэши L1 и L2 как бы обмениваются друг с другом своими строками, а потому кэш-память используется весьма эффективно. По такой технологии организована кэш-память процессоров AMD K10.
Оперативная (основная) память представляет собой следующий уровень иерархии памяти. Оперативная память удовлетворяет запросы кэш-памяти и устройств ввода/вывода. Она является местом назначения для ввода и источником для вывода. Для оценки производительности
(быстродействия) основной памяти используются следующие парамет- ры: время доступа, длительность цикла памяти, латентность и про- пускная способность.
Как было сказано выше, время доступа – это время, проходящее с момента обращения к памяти до момента считывания данных. Данная величина приблизительно одинакова для всех типов динамической па- мяти и составляет примерно 50 нс. Время доступа актуально при слу- чайном доступе к памяти, т.е. когда последовательно считываемые ячейки памяти принадлежат различным строкам матрицы памяти.
Если говорить о блочной передаче, то более показательной харак- теристикой является время цикла, т.е. время между двумя последова- тельными обращениями к ячейкам памяти. Первый цикл обращения всегда равен времени доступа, т.е. около 50 нс. Но при последующих циклах обращения в пределах одной страницы (строки матрицы) время существенно меньше и составляет 10 или 7,5 нс. Любая динамическая память характеризуется циклами доступа, записываемыми в виде цепо- чек типа 5–1–1–1 или 5–2–2–2 и т.д. Такая цепочка определяет количе- ство тактов, необходимых для чтения первых четырех элементов (байт, слово, двойное слово) данных в страничном режиме доступа. Первая цифра в таком обозначении определяет время доступа, т.е. количество тактов, прошедших от начала обращения к банку памяти до появления данных на шине. Соответственно, при работе в страничном режиме сле- дующие данные появятся на шине уже через меньшее количество так-
тов. Например, при цепочке 5–1–1–1 последующие данные появляются без задержек, т.е. с каждым тактовым импульсом.
Латентность памяти определяется некоторым набором значений временных задержек, происходящих в модуле памяти с момента прихо- да команды чтения (записи) до ее выполнения. Эти значения задержек принято называть таймингами. При описании памяти принято исполь- зовать четыре тайминга – tCL, tRCD, tRP, tRAS (иногда дополнительно указывается и Command rate), причем записываются они обычно в этой же последовательности в виде 4–4–4–12 (1Т), где цифры указывают ко- личество затраченных тактов синхронизации (в данном случае цифро- вые значения взяты произвольно).
Перед тем как расшифровать аббревиатуры указанных таймингов, несколько слов о принципах организации и работы оперативной памяти. Ядро памяти организовано в виде двумерной матрицы. Для получения доступа к той или иной ячейке необходимо указать адреса соответству- ющей строки и столбца. Для ввода адреса строки используется строби- рующий сигнал RAS, а для адреса столбца – стробирующий сигнал
CAS. Порядок обращения к памяти начинается с установки регистров управления, после чего вырабатывается сигнал выбора нужного банка памяти и по прошествии (задержки) Command rate осуществляется ввод адреса строки и подача стробирующего сигнала RAS (обычно эта за- держка составляет один или два такта). С приходом положительного фронта тактового импульса открывается доступ к нужной строке, а ад- рес строки помещается в адресный буфер строки, где он может удержи- ваться столько времени, сколько нужно. Через промежуток времени, называемый RAS to CAS delay (tRCD), т.е. задержка подачи сигнала CAS относительно сигнала RAS, подается стробирующий импульс CAS, под действием которого происходит выборка адреса столбца и открыва- ется доступ к нужному столбцу матрицы памяти. Затем, через время CAS latency (tCL), на шине данных появляется первое слово, которое может быть считано процессором. После завершения работы со всеми
Большинство современных компьютеров имеют два или три уровня кэш-памяти. Первый, наиболее «близкий» к ядру процессора (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 тактов.
Оперативная память
На третьем уровне находится L3 кэш, который объединяет ядра между собой и является разделяемым. В результате L2 кэш выступает в качестве буфера при обращениях процессорных ядер в разделяемую кэш-память, имеющую достаточно солидный объём (2 Мб – AMD K10, 8 Мб – Intel Nehalem). Латентность L3 кэша исчисляется 52-мя, 54-мя тактами.
Кэш-контроллер второго уровня
Кэш-контроллер второго уровня
Кэш-память: 1-port SRAM, средний объём, пониженная ча-
стота
Кэш-память: 1-port SRAM, средний объём, пониженная ча-
стота
Кэш-контроллер третьего уровня
Кэш-память: 1-port SRAM, большой объём,
пониженная частота
…
Кэш-контроллер первого уровня
Ядро процессора
Ядро процессора
Кэш-контроллер первого уровня
Кэш-память: 2-port SRAM, малый объём, полная частота
Кэш-память: 2-port SRAM, малый объём, полная частота
…
…
Рис. 4.7. Трехуровневая структура кэш-памяти многоядерного процессора
При построении многоуровневой кэш-памяти используют вклю- чающую (inclusive) или исключающую (exclusive) технологии. Кэш верхнего уровня, построенный по inclusive-технологии, всегда дубли- рует содержимое кэша нижнего уровня. Если построить инклюзивный L3 кэш, то он будет дублировать данные, хранящиеся в кэшах первого
и второго уровней, что снижает эффективную ёмкость всей кэш- подсистемы. С другой стороны, инклюзивный разделяемый L3 кэш спо- собен обеспечить в многоядерных процессорах более высокую скорость работы подсистемы памяти. Это связано с тем, что если ядро попытает- ся получить доступ к данным и они отсутствуют в кэше L3, то нет необ- ходимости искать эти данные в собственных кэшах других ядер – там их нет. А благодаря тому, что каждая строка L3 кэша снабжена допол- нительными флагами, указывающими владельцев (ядра) этих данных, не вызывает затруднений и процедура обратного изменения содержимо- го строки кэша. Так, если какое-то ядро модифицирует данные в L3 кэше, изначально принадлежащие другому (или другим) ядру, то в этом случае обновляется содержимое L1 и L2 кэшей и этих ядер. Эта технология весьма эффективна для обеспечения когерентности персо- нальных кэшей каждого ядра, поскольку она уменьшает потребность в обмене информацией между ядрами. По такой технологии организо- вана кэш-память процессоров Intel Nehalem.
Кэш – подсистема, построенная по exclusive-технологии, никогда не хранит избыточных копий данных и потому эффективная ёмкость подсистемы определяется суммой ёмкостей кэш-памятей всех уровней. Кэш первого уровня никогда не уничтожает строки при нехватке места. Даже если они не были модифицированы, данные в обязательном по- рядке вытесняются в кэш второго уровня, помещаясь на то место, где находилась только что переданная кэшу L1 строка, т.е. кэши L1 и L2 как бы обмениваются друг с другом своими строками, а потому кэш-память используется весьма эффективно. По такой технологии организована кэш-память процессоров AMD K10.
- 1 ... 62 63 64 65 66 67 68 69 ... 76
Принципы организации оперативной памяти
-
Общие положения
Оперативная (основная) память представляет собой следующий уровень иерархии памяти. Оперативная память удовлетворяет запросы кэш-памяти и устройств ввода/вывода. Она является местом назначения для ввода и источником для вывода. Для оценки производительности
(быстродействия) основной памяти используются следующие парамет- ры: время доступа, длительность цикла памяти, латентность и про- пускная способность.
Как было сказано выше, время доступа – это время, проходящее с момента обращения к памяти до момента считывания данных. Данная величина приблизительно одинакова для всех типов динамической па- мяти и составляет примерно 50 нс. Время доступа актуально при слу- чайном доступе к памяти, т.е. когда последовательно считываемые ячейки памяти принадлежат различным строкам матрицы памяти.
Если говорить о блочной передаче, то более показательной харак- теристикой является время цикла, т.е. время между двумя последова- тельными обращениями к ячейкам памяти. Первый цикл обращения всегда равен времени доступа, т.е. около 50 нс. Но при последующих циклах обращения в пределах одной страницы (строки матрицы) время существенно меньше и составляет 10 или 7,5 нс. Любая динамическая память характеризуется циклами доступа, записываемыми в виде цепо- чек типа 5–1–1–1 или 5–2–2–2 и т.д. Такая цепочка определяет количе- ство тактов, необходимых для чтения первых четырех элементов (байт, слово, двойное слово) данных в страничном режиме доступа. Первая цифра в таком обозначении определяет время доступа, т.е. количество тактов, прошедших от начала обращения к банку памяти до появления данных на шине. Соответственно, при работе в страничном режиме сле- дующие данные появятся на шине уже через меньшее количество так-
тов. Например, при цепочке 5–1–1–1 последующие данные появляются без задержек, т.е. с каждым тактовым импульсом.
Латентность памяти определяется некоторым набором значений временных задержек, происходящих в модуле памяти с момента прихо- да команды чтения (записи) до ее выполнения. Эти значения задержек принято называть таймингами. При описании памяти принято исполь- зовать четыре тайминга – tCL, tRCD, tRP, tRAS (иногда дополнительно указывается и Command rate), причем записываются они обычно в этой же последовательности в виде 4–4–4–12 (1Т), где цифры указывают ко- личество затраченных тактов синхронизации (в данном случае цифро- вые значения взяты произвольно).
Перед тем как расшифровать аббревиатуры указанных таймингов, несколько слов о принципах организации и работы оперативной памяти. Ядро памяти организовано в виде двумерной матрицы. Для получения доступа к той или иной ячейке необходимо указать адреса соответству- ющей строки и столбца. Для ввода адреса строки используется строби- рующий сигнал RAS, а для адреса столбца – стробирующий сигнал
CAS. Порядок обращения к памяти начинается с установки регистров управления, после чего вырабатывается сигнал выбора нужного банка памяти и по прошествии (задержки) Command rate осуществляется ввод адреса строки и подача стробирующего сигнала RAS (обычно эта за- держка составляет один или два такта). С приходом положительного фронта тактового импульса открывается доступ к нужной строке, а ад- рес строки помещается в адресный буфер строки, где он может удержи- ваться столько времени, сколько нужно. Через промежуток времени, называемый RAS to CAS delay (tRCD), т.е. задержка подачи сигнала CAS относительно сигнала RAS, подается стробирующий импульс CAS, под действием которого происходит выборка адреса столбца и открыва- ется доступ к нужному столбцу матрицы памяти. Затем, через время CAS latency (tCL), на шине данных появляется первое слово, которое может быть считано процессором. После завершения работы со всеми