Архитектура и производительность серверных ЦП
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: индивидуальные рефераты, скачать контрольную
| Добавил(а) на сайт: Felicitata.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
Размер строки и тега кэш-памяти
Немаловажная характеристика кэш-памяти — размер строки. Как правило, на одну строку полагается одна запись адреса (так называемый тег), которая указывает, какому адресу в оперативной памяти соответствует данная линия. Очевидно, что нумерация отдельных байтов нецелесообразна, поскольку в этом случае объем служебной информации в кэше в несколько раз превысит объем самих данных. Поэтому один тег обычно полагается на одну строку, размер которой обычно 32 или 64 байта (реально существующий максимум 1024 байта), и эквивалентен четырем (иногда восьми) разрядностям системной шины данных. Кроме того, каждая строка кэш-памяти сопровождается некоторой информацией для обеспечения отказоустойчивости: одним или несколькими битами контроля четности (parity) или восемью и более байтами обнаружения и коррекции ошибок (ЕСС, Error Checking and Correcting), хотя в массовых решениях часто не используют ни того, ни другого.
Размер тега кэш-памяти зависит от трех основных факторов: объема кэш-памяти, максимального кэшируемого объема оперативной памяти, а также ассоциативности кэш-памяти. Математически этот размер рассчитывается по формуле
Smg — размер одного тега кэш-памяти, в битах; Smem — максимальный кэшируемый объем оперативной памяти, в байтах; Scache — объем кэш-памяти, в байтах; А — ассоциативность кэш-памяти, в каналах.
Отсюда следует, что для системы с 1-Гбайт оперативной памятью и 1-Мбайт кэш-памятью с двухканальной ассоциативностью потребуется 11 бит для каждого тега. Примечательно, что собственно размер строки кэш-памяти никак не влияет на размер тега, но обратно пропорционально влияет на количество тегов. Следует понимать, что размер строки кэш-памяти не имеет смысла делать меньше разрядности системной шины данных, но многократное увеличение размера приведет к чрезмерному засорению кэш-памяти ненужной информацией и излишней нагрузке на системную шину и шину памяти. Кроме того, максимально кэшируемый объем кэш-памяти не обязан соответствовать максимально возможному устанавливаемому объему оперативной памяти в системе. Если возникнет ситуация, когда оперативной памяти окажется больше, чем может быть кэшировано, то в кэш-памяти будет присутствовать информация только из нижнего сегмента оперативной памяти. Именно такой была ситуация с платформой Socket7/Super7. Наборы микросхем для этой платформы позволяли использовать большие объемы оперативной памяти (от 256 Мбайт до 1 Гбайт), в то время как кэшируемый объем часто был ограничен первыми 64 Мбайт (речь идет о B-cache, находящемся на системной плате) по причине использования дешевых 8-бит микросхем теговой SRAM (2 бита из которых резервировалось под указатели действительности и измененности строки). Это приводило к ощутимому падению производительности.
Какая информация содержится в тегах кэш-памяти? Это информация об адресах, но как можно точно отобразить расположение строки кэш-памяти на всем пространстве кэшируемого объема оперативной памяти, используя столь незначительное количество адресных битов? Это понятие является фундаментальным в понимании принципов функционирования кэш-памяти.
Рассмотрим предыдущий пример, с 11-бит тегами. Учитывая логическое сегментирование благодаря двухканальной ассоциативности, можно рассматривать данную кэш-память как состоящую из двух независимых сегментов по 512 Кбайт каждый. Представим оперативную память как состоящую из «страниц» по 512 Кбайт каждая — их будет соответственно 2048 штук. Далее, log2 (2048) - 11 (основание логарифма равно 2, так как возможны только два логических состояния каждого бита). Это означает, что фактически тег — не номер отдельной строки кэш-памяти, а номер «страницы» памяти, на которую отображается та или иная строка. Другими словами, в пределах «страницы» сохраняется прямое соответствие ее «строк» с соответствующими строками кэш-памяти, т. е. п-я строка кэш-памяти соответствует п-й «строке» данной «страницы» оперативной памяти.
Рассмотрим механизм работы кэш-памяти разных видов ассоциативности. Допустим, имеется абстрактная модель с восемью строками кэш-памяти и 64 эквивалентными строками оперативной памяти. Требуется поместить в кэш строку 9 оперативной памяти (заметим, что все строки нумеруются от нуля и по возрастающей). В модели с прямым отображением эта строка может занять только одно место: 9 mod 8 = 1 (вычисление остатка от деления нацело), т. е. место строки 1. Если взять модель с двухканалыюй ассоциативностью, то эта строка может занять одно из двух мест: 9 mod 4=1, т. е. строку 1 любого канала (сегмента). Полноассоциативная модель предоставляет свободу для размещения, и данная строка может занять место любой из восьми имеющихся. Другими словами, фактически имеется 8 каналов, каждый из которых состоит из 1 строки.
Ни одна из вышеуказанных моделей не позволит, разумеется, поместить в кэш больше строк, чем он физически в состоянии разместить, они лишь предлагают различные варианты, различающиеся балансом эффективности использования кэша и скорости доступа к нему.
Типы подключения кэш-памяти
Количество портов чтения-записи кэш-памяти — показатель того, сколько одновременных операций чтения-записи может быть обработано. Хотя жестких требований и нет, определенное соответствие набору функциональных устройств ЦП должно прослеживаться, так как отсутствие свободного порта во время исполнения команды приведет к вынужденному простою.
Существует два основных способа подключения кэш-памяти к ЦП для чтения: сквозной и побочный (Look-Through и Look-Aside). Суть первого в том, что при необходимости данные сначала запрашиваются у контроллера кэш-памяти самого высокого уровня, который проверяет состояние подключенных тегов и возвращает либо нужную информацию, либо отрицательный ответ, и в этом случае запрос перенаправляется в более низкий уровень иерархии кэш-памяти или в оперативную память. При реализации второго способа чтения запрос одновременно направляется как кэш-контроллеру самого высокого уровня, так и остальным кэш-контроллерам и контроллеру оперативной памяти. Недостаток первого способа очевиден: при отсутствии информации в кэше высокого уровня приходится повторять запрос, и время простоя ЦП увеличивается. Недостаток второго подхода — высокая избыточность операций и, как следствие, «засорение» внутренних шин ЦП и системной шины ненужной информацией. Логично предположить, что если для кэшей L1 оптимальна сквозная схема, то для T-cache или B-cache побочная схема может оказаться более выгодной. Для S-cache выбор неоднозначен.
Различают также локальный и удаленный кэш. Локальным называют кэш, находящийся либо в ядре ЦП, либо на той же кремниевой подложке или в корпусе ЦП, удаленным — размещенный на системной плате. Соответственно локальным кэшем управляет контроллер в ядре ЦП, а удаленным — НМС системной платы. Локальный кэш с точки зрения быстродействия предпочтительнее, так как интерфейс к удаленному кэшу обычно мультиплексируется с системной шиной. С одной стороны, когда другой ЦП захватывает общую системную шину или какой-либо периферийный контроллер обращается к памяти напрямую, удаленный кэш может оказаться временно недоступным. С другой — такой кэш легче использовать в многопроцессорных системах.
Существуют два распространенных способа записи в кэш: сквозной (Write-Through) и обратной (Write-Back) записи. В первом случае информация одновременно сохраняется как в текущий, так и в более низкий уровень иерархии кэш-памяти (или прямо в оперативную память при отсутствии такового). Во втором — данные сохраняются только в текущем уровне кэш-памяти, при этом возникает ситуация, когда информация в кэше и оперативной памяти различается, причем последняя становится устаревшей. Для того чтобы при сбросе кэша информация не была необратимо потеряна, к каждой строке кэша добавляется «грязный» бит (dirty bit, иначе известный как modified). Он нужен для обозначения того, соответствует ли информация в кэше информации в оперативной памяти, и следует ли ее записать в память при сбросе кэша.
Также следует упомянуть способ резервирования записи (write allocation). При записи данных в оперативную память часто возникает ситуация, когда записываемые данные могут скоро понадобиться, и тогда их придется довольно долго подгружать. Резервирование записи позволяет частично решить эту проблему: данные записываются не в оперативную память, а в кэш. Строка кэша, вместо которой записываются данные, полностью выгружается в оперативную память. Так как вновь записанных данных обычно недостаточно для формирования полной строки кэша, из оперативной памяти запрашивается недостающая информация. Когда она получена, новая строка записывается, и тег обновляется. Определенных преимуществ или недостатков такой подход не имеет — иногда это может дать незначительный прирост производительности, но также и привести к засорению кэша ненужной информацией.
TLB как разновидность кэш-памяти
Почти все современные ЦП обладают TLB (Translation Look-aside Buffers, вспомогательные буфера преобразования). Своим существованием они обязаны тому факту, что ЦП в работе используют преимущественно виртуальные адреса оперативной памяти, в то время как контроллеры оперативной и кэш-памяти работают преимущественно с реальными адресами. Для того чтобы не вычислять при каждом обращении к памяти реальный адрес из виртуального, в ЦП присутствуют таблицы соответствия виртуальных адресов страниц памяти реальным. Как правило, их объем невелик (от единиц до сотен записей), но этого вполне достаточно, поскольку часто запрашиваемые данные или команды обычно хорошо локализуются в пределах страницы памяти размером 4 или 8 Кбайт.
Что же происходит, если запрашиваемого реального адреса какой-либо страницы не находится в TLB? A-box ЦП отрабатывает специальный вызов (exception trap), на который ОС должна адекватно отреагировать, т. е. произвести поиск нужной страницы в своих таблицах подсистемы виртуальной памяти. Если в процессе поиска окажется, что указанная страница находится в файле или разделе подкачки, то она должна незамедлительно быть оттуда считана в оперативную память. В итоге А-box ЦП получит реальный адрес нужной страницы памяти и процесс пойдет своим путем.
Стоит также заметить, что единой схемы адресации записей кэш-памяти не существует. Поэтому в зависимости от иерархического расположения и целевого назначения данной структуры кэш памяти, а также идей построения определенного ЦП может использоваться выборочно как реальная, так и виртуальная адресация записей, или даже гибридная схема (реальное тегирование с виртуальной индексацией), что предполагает и соответствующую организацию структуры TLB.
Многопроцессорность
Причины появления многопроцессорных систем
В настоящее время предельная производительность системы определяется мощностью ЦП и подсистемы памяти (контроллера памяти, который может быть встроен как в набор микросхем, так и непосредственно в процессор). Поэтому наиболее эффективное масштабирование по производительности обеспечивают именно многопроцессорные системы. Хотя кластерные решения, объединяющие несколько вычислительных узлов, как правило, при пересчете на один ЦП оказываются дешевле, но из-за накладных расходов на организацию их взаимодействия удельная производительность многопроцессорных машин все же заметно выше. Кроме того, использование многопроцессорных серверов позволяет минимизировать дублирование вспомогательных подсистем вычислительной машины — контроллеров ввода-вывода, дисковых массивов и т. п.
Нельзя не отметить и конструктивные преимущества многопроцессорных серверов: они обеспечивают максимальную удельную производительность при пересчете не только на один ЦП, но и на единицу объема, что в серверных платформах весьма важно.
Благодаря указанным преимуществам многопроцессорные платформы пользуются популярностью практически во всех сегментах серверного рынка. Двух- и четырехпроцессорные серверы младшего и среднего уровня имеют хорошее соотношение цена/производительность, и с точки зрения организации охлаждения они ненамного сложнее однопроцессорных. Решения с восемью и более процессорами имеют более сложную архитектуру, но и позволяют добиться максимальной производительности и надежности.
Топологии многопроцессорных систем
Типы многопроцессорных систем различаются прежде всего подходом к организации системной шины, связывающей, как и в однопроцессорных системах, ЦП и НМС. В настоящее время наиболее распространены три варианта архитектуры многопроцессорных систем:
общая шина (shared bus);
звездообразная топология (star topology), или топология «точка—точка» (point-to-point topology);
коммутируемая топология (switch-based topology). Наиболее простая — топология общей шины.
Как следует из названия, все ЦП в системе подключаются последовательно к общей системной шине и соответственно вынуждены делить между собой ее полосу пропускания. Этим определяются как преимущества, так и недостатки этой архитектуры. Одновременно с экономией на количестве проводников и общей стоимости разработки возникает проблема пропускной способности системной шины, который столь существенен, что при большом количестве ЦП (начиная с восьми) такая топология просто неприменима, так как задержки при обращении к памяти слишком велики из-за очереди на обращение к шине. Компенсацией недостаточной пропускной способности системной шины может служить добавление значительных локальных объемов кэш-памяти к каждому ЦП. Общая шина наиболее оправданна в системах с двумя процессорами. В четырехпроцессорных системах объемы кэш-памяти каждого ЦП приходится увеличивать в 2-4 раза, что приводит к существенному росту стоимости конечной системы.
В звездообразной топологии каждый ЦП располагает выделенной системной шиной, а поэтому отсутствует необходимость в разделении доступа. Системные шины всех ЦП подключаются непосредственно к набору микросхем. Хотя такая архитектура и позволяет минимизировать зависимость производительности ЦП от пропускной способности системной шины, но налагает очень высокие требования на НМС и системную плату в целом, усложняя их проектирование и увеличивая стоимость производства. Тем не менее и этот подход не позволяет подключить большое количество ЦП — звездообразная топология применяется, как правило, в системах с двумя или четырьмя процессорами.
Рекомендуем скачать другие рефераты по теме: предмет культурологии, рефератов.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата