К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 85
Текст из файла (страница 85)
Микросхемы РепФпп 4 могут работать на тактовых частотах свыше 1,3 ГГц, то есть для доступа к данным требуется менее 2 нс. В каше команд содержатся не обычные машинные команды, а их декодированные версии (подробнее об этом рассказывается в главе 11). 364 Глава 5. Система памяти Кэш второго уровня емкостью 258 Кбайт имеет восьмнканальную множественно-ассоциативную организацию. Размер его блока составляет 128 байт.
Для записи данных применяется протокол обратной записи. Время доступа составляет семь тактов. Оба нэша, 7 1 и Е2, реализованы на микросхеме процессора. Архитектура Реп11пш 4 позволяет добавить в микросхему и кэш ЕЭ, однако он используется только в процессорах для серверных систем. 5.6. Производительность Важнейшими факторами коммерческого успеха компьютера любой марки являются его производительность и стоимость.
Цель создателей любой системы, конечно же, состоит в достижении наивысшей производительности при минимальной цене. Как правило, усилия конструкторов направлены на то, чтобы увеличить производительность системы, не повышая ее цену. Мерой оценки результата является соотношение цены и производительности. В данном разделе речь пойдет о производительности памяти и средствах ее повышения. Производительность компьютерной системы зависит от того, насколько быстро команды программы могут извлекаться из памяти в процессор и насколько быстро они могут выполняться. Факторы, от которых зависит скорость выполнения команд, обсуждаются в главах 7 и 8; там же приводятся и дополнительные схемы, применяемые для ускорения этого процесса.
А сейчас мы хотим сконцентрировать ваше внимание на подсистеме памяти. Иерархия памяти, описанная в разделе 5.4, разработана исходя из оптимального соотношения цены и производительности. Суть иерархической организации памяти состоит в том, что процессор должен иметь возможность обращаться к памяти большого объема за минимальное время. Каждому уровню иерархии отводится очень важная роль.
При этом особенно важны скорость и эффективность пересылки данных между различными уровнями. Хорошо, если обмен данными с наиболее быстрыми устройствами выполняется на скорости этих устройств. Если обмен производится между быстрым и медленным устройствами, достичь высокой скорости невозможно, но в случае параллельного доступа к более медленным устройствам к ней вполне можно приблизиться. Эффективным способом реализации параллельного доступа является чередование операций. 5.6.1.
Чередование операций Если основная память компьютера состоит из набора физически раздельных модулей с собственными буферными регистрами адреса (АВК) и данных (ПВК), возможен одновременный доступ к более чем одному модулю. Таким образом можно повысить общую скорость пересылки слов в основную память и из нее. Для определения среднего количества модулей, которые могут быть заняты в процессе вычисления, важно знать, как между ними распределены адреса. Существует два метода распределения адресов между модулями. Согласно первому из 5.6. Производительность 365 них, генерируемые процессором адреса декодируются так, как показано на рис. 5.25, а. Старшие е бит определяют один их п модулей, а младшие лт бит— конкретное слово этого модуля. При обращении к последовательным адресам, как, скажем, в том случае, когда блок данных пересылается в кэш, в операции участвует только один модуль, В то же самое время устройства, поддерживающие прямой доступ к гтамяти (ПДП), могут обращаться к информации из других модулей памяти.
-й бит- — гл бит— оввай памяти .~ — — гл бит — ю-.~-)г бит-~ й памяти Рис. 5.2Э. Адресация многомодульной системы памяти: последовательные слова располагаются в одном модуле (а), в последовательных модулях (б) Второй и более эффективный способ адресации модулей продемонстрирован на рис, 5.25, б. Он называется чередованием адресов памяти. Согласно этому методу, младшие е бит адреса памяти выбирают модуль, а старшие тл бит — конкретное слово данного модуля. При таком способе адресации последовательные адреса указывают на разные модули.
Любой компонент системы, генерирующий запросы на 366 Глава 5, Система памяти доступ к последовательным адресам памяти, может поддерживать одновременную активность нескольких модулей. Благодаря этому ускоряется доступ к блоку данных и эффективнее используется вся система памяти. Чередование адресов памяти возможно лишь при условии, что количество модулей равно 2"; иначе в адресном пространстве памяти будут пробелы. Пример 6.1 Чередование адресов оказывает существенное влияние на быстродействие памяти.
Проанализируем время, уходящее на пересылку блока данных из основной памяти в кэш в случае промаха чтения. Предположим, что у нас имеется кэш с блоками размером восемь слов, как в примере из раздела 5.5. После неудачной операции чтения блок, содержащий требуемое слово, должен быть скопирован из основной памяти в кэш. Кроме того, сделаем предположение, что аппаратное обеспечение имеет следующие характеристики. На пересылку адреса в основную память уходит один такт. Паиять состоит из относительно медленных микросхем 1ЖАМ, так что на доступ к первому слову уходит 8 тактов, а на доступ к каждому последующему — по 4 такта.
(В разделе 5.2.3 рассказывалось, что при чтении последовательных элементов данных из одной строки ячеек адрес этой строки декодируется только один раз. После этого поочередно задаются адреса последовательных столбцов массива, и на доступ к соответствующим словам требуется вполовину меньше времени.) Кроме того, один такт необходим для отправки слова в кэш. В случае использования одного модуля памяти время загрузки блока в кэш вычисляется так; 1 ~- 8 + (7 х 4) + 1 - 38 (тактов) Теперь предположим, что память состоит из четырех модулей с чередующимися адресами (рис. 5.25, б). Когда начальный адрес блока достигает памяти, все четыре модуля начинают процедуру доступа к нужным данным с использованием старших битов адреса.
После 8 тактов в регистре РВК каждого модуля оказывается одно слово данных. Эти слова по очереди пересылаются в кэш в течение последующих четырех тактов. В течение этого времени в каждом модуле выполняется обращение к следутощему слову. Полученные слова, опять-таки, пересылаются в кзш в течение четырех тактов. Таким образом, общее время, необходимое на загрузку блока данных из памяти с чередованием адресов, составляет: 1 + 8 + 4 + 4 — 17 (тактов) Получается, что чередование более чем вдвое сокращает время пересылки блока. В разделе 5.2А было сказано, что в микросхемах 3ПВАМ технология чередования используется для ускорения доступа к последовательным словам данных.
Память в большинстве микросхем ЯЖАМ разделена на два или четыре банка массивов ячеек с чередованием адресов. Это позволяет ускорить передачу блока данных в основную память и из нее. 5.6. Производительность 367 6.6.2. Частота попаданий и накладные расходы при промахах Отличным показателем эффективности конкретной реализации иерархии памяти является частота попаданий при доступе к информации на разных уровнях иерархии, Напомним, что попаданием называется успешное обращение к данным в кэше. Отношение количества попаданий к общему количеству попыток доступа называется частотой попаданий, а отношение количества промахов к общему количеству попыток доступа — частотой промахов. В идеале вся иерархия памяти должна представляться процессору единым запоминающим устройством, время доступа к которому равно времени доступа к кэш-памяти на микросхеме процессора, а размер равен размеру магнитного диска. Степень приближения к этому идеалу зависит от частоты попаданий на разных уровнях иерархии памяти.
В случае высокопроизводительных компьютеров частота попаданий должна превышать 0,9. Производительность системы очень зависит от того, какие действия выполняются в случае промаха. Дополнительное время, уходящее на копирование необходимой информации в кэш, называется накладными расходами при промахах. Эти накладные расходы выливаются в простой процессора, поскольку он не может функционировать без команды или обрабатываемых ею данных. В общем случае накладные расходы — это время, необходимое для пересылки блока данных от самого медленного устройства в иерархии данных к самому быстрому.
При использовании эффективных механизмов пересылки данных между различными устройствами общее время задержки значительно сокращается. Одним из таких механизмов является чередование адресов памяти, о котором говорилось в предыдущем разделе. Пример 5.2 Теперь давайте рассмотрим влияние каша на общую производительность компьютера. Предположим, частота попаданий равна и, накладные расходы при промахе (то есть время доступа к информации в основной памяти) составляет М(нс), а время доступа к информации в каше — С (нс). Среднее время доступа, каким оно представляется процессору, таково (параметры системы те же, что в примере 5.1): г, - йс+ (1 — Ь)м Если у компьютера вообще нет каша, то при наличии быстрого процессора и типичной ПАЛМ на каждое обращение к памяти для чтения данных уходит 10 тактов.
Предположим, что в компьютере имеется кэш с блоками по 8 слов и основная память с чередованием адресов. Тогда, как следует из раздела 5.6.1, на загрузку блока в кэш необходимо 17 тактов. Предположим, что 30 Ж команд в типичной программе выполняют чтение или запись данных. Это означает, что на каждые 100 выполненных команд приходится 130 обращений к памяти.
Предположим, что частота попаданий в кэш составляет 0,95 для команд и 0,9 для данных, а также что накладные расходы при промахах операций чтения и записи одинаковы. Тогда 368 Глава 5. Система памяти приблизительная оценка повышения производительности в результате использо- вания кэша будет такой: Время без хаша 130 х 10 Время с язшем 100(0,95 х1+ 0 05х17) + 30(0,9х 1+ 01х 17) Получается, что при наличии кэша компьютер работает впятеро быстрее. Интересно посмотреть, насколько эффективен этот кэш по сравнению с так называемым идеальным кэшем, частота попаданий которого равна 100 % (при наличии такого каша любое обращение к памяти выполняется за 1 такт). Вот приблизительная оценка относительной производительности двух указанных кэшей: 100(0,95 х 1+ 0,05 х 17) + 30(0,9 х 1+ 0,1 х 17) 130 Это означает, что реальный кэш создает для процессора такую среду, где он, процессор, эффективно работает с большой основной памятью на основе РВАМ, которая представляется ему лишь в два раза медленнее, чем кэш, В данном примере мы для упрощения приняли, что для доступа к кэшу на микросхеме процессора и к основной памяти через системную шину применяется одна и та же тактовая частота.