- •7. Система памяти
- •7.1. Базовые концепции
- •7.2. Быстродействие, объем и стоимость
- •7.3.1. Функция отображения
- •7.3.2. Алгоритмы замещения
- •7.3.3. Примеры технологий отображения
- •7.3.4. Организация кэша в коммерческих процессорах
- •7.4. Производительность
- •7.4.1. Чередование операций
- •7.4.2. Частота попаданий и накладные расходы при промахах
- •7.4.3. Кэши на микросхеме процессора
- •7.4.4. Другие способы увеличения быстродействия
- •7.5. Виртуальная память
- •7.5.1. Преобразование адресов
- •7.6. Требования к управлению памятью
7.3.4. Организация кэша в коммерческих процессорах
Кэши процессора Pentium III
Pentium III был задуман как процессор с очень высокой производительностью. А поскольку производительность зависит от скорости доступа к командам и данным, он снабжен двухуровневым кэшем. Кэш-память первого уровня состоит из кэша команд объемом 16 Кбайт и такого же кэша данных. Кэш данных имеет четырехканальную множественно-ассоциативную организацию и для него может применяться как обратная, так и сквозная запись. Кэш команд имеет двухканальную множественно-ассоциативную организацию. Поскольку в ходе выполнения программы команды обычно не модифицируются, особая стратегия записи для кэша команд не нужна.
Кэш второго уровня имеет гораздо больший объем. В нем содержатся и команды и данные. Этот кэш соединен с остальной частью системы, как показано на рис. 7.12. Блок шинного интерфейса соединяет все три кэша, основную память и устройства ввода-вывода. Для взаимодействия между процессором и остальными устройствами предназначены две раздельные шины: быстрая шина кэша, соединяющая процессор с кэшем второго уровня, и более медленная системная шина, соединяющая процессор с основной памятью и устройствами ввода-вывода.
Кэш второго уровня может быть реализован вне микросхемы процессора, как в версии процессора Pentium III под названием Katmai. L2-кэш этого процессора имеет размер 512 Кбайт и реализован на основе памяти SRAM. Он имеет четырехканальную множественно-ассоциативную организацию, может использовать протоколы сквозной и обратной записи. Шина данного кэша имеет ширину 64 бита.
Усовершенствование технологий создания СБИС позволило интегрировать кэш второго уровня прямо в микросхему процессора. Такая структура характерна, в частности, для процессора Pentium III версии Coppermine. Его кэш L2 имеет размер 256 Кбайт и восьмиканальную множественно-ассоциативную организацию. Благодаря расположению на одной микросхеме с процессором этот кэш соединен с таковым 256-разрядной шиной.
Читатель наверняка задался вопросом: что же все-таки лучше — интегрировать кэш второго уровня в микросхему процессора или реализовать его вне таковой. Внешний кэш можно сделать большим, но зато он не может соединяться с процессором такой широкой шиной, как внутренний кэш, поскольку для этого потребуется слишком много выводов и увеличится потребление энергии выходными повторителями. Кроме того, внешние кэши имеют меньшую тактовую частоту. L2-Kэш процессора Katmai работает на вдвое меньшей тактовой частоте, чем процессор, тогда как Coppenmine — на полной тактовой частое процессора. Размещение L2-кэша на микросхеме процессора уменьшает время ожидания и увеличивает полосу пропускания за счет использования боле широкой шины, в результате чего значительно повышается производительность. Основным недостатком интегрированного кэша второго уровня является увеличение размеров микросхемы процессора, затрудняющее ее производство.
Рис. 5.24. Кэши и внешние соединения процессора Pentium III
Кэши процессора Pentium 4
У процессора Pentium 4 может быть до трех уровней кэш-памяти. Кэш-память первого уровня состоит из отдельных кэша команд и кэша данных. Кэш данных емкостью 8 Кбайт имеет четырехканальную множественно-ассоциативную организацию. Размер блока составляет 64 байта. Для записи данных в кэш применяется протокол сквозной записи. Целочисленные данные извлекаются из кэша за два такта. Микросхемы Pentium 4 могут работать на тактовых частотах свыше 1,3 ГГц, то есть для доступа к данным требуется менее 2 нс. В кэше команд содержатся не обычные машинные команды, а их декодированные версии (подробнее об этом рассказывается в разделе 7).
Кэш второго уровня емкостью 256 Кбайт имеет восьмиканальную множественно-ассоциативную организацию. Размер его блока составляет 128 байт. Для записи данных применяется протокол обратной записи. Время доступа составляет семь тактов.
Оба кэша, L1 и L2, реализованы на микросхеме процессора. Архитектура Pentium 4 позволяет добавить в микросхему и кэш L3, однако он используется только в процессорах для серверных систем.