Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЭВМ(Ответы).doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
8.77 Mб
Скачать
  1. Кэширование в процессорах старших поколений.

С труктура средств кэширования 32-разрядных процессоров Intel приведена на рис.5. Эта же схема, в общем, верна и для процессоров Р6. Первичный кэш инструкций тесно связан с блоком предварительной выборки, первичный кэш данных — с исполнительным блоком процессора. В процессоре 486 применяется единый первичный кэш(уровня L1). Вторичный кэш — общий, в Р6 он подключен к выделенной внутренней шине кэш-памяти. В процессорах 486 и Pentium вторичный кэш является внешним и подключается к системной шине процессора. В процессорах Ceteron 266 и 300 вторичный кэш отсутствует. Длина строки кэша: 32 байт в Р5+, 16 байт - в 486. Строки процессор заполняет всегда целиком пакетными циклами чтения (4 передачи на строку) из основной памяти, выровненными по 32-байтным границам (16-байтным в 486). Любой внутренний запрос процессора на обращение к памяти направляется во внутренний кэш. Если затребованная область памяти присутствует в строке внутреннего кэша, то он обслужит этот запрос. В случае промаха, запрос удовлетворяется сразу, как только затребованные данные считываются из ОЗУ — заполнение строки до конца может происходить параллельно с обработкой полученных данных. Выделение и замещение строк у процессоров до Р6 выполняется только для кэш-промахов при чтении, при промахах записи заполнение строк производится только в Р6. Кэширование доступно в любом режиме процессора (в SMM должны применяться меры предосторожности, учитывающие переход в иное адресное пространство памяти).

Буфер ассоциативной трансляции TLB хранит вхождения в каталог и таблицы страниц, к которым обращались в последнее время. В процессоре 486 для данных и инструкций применяется единый TLB, в старших процессорах эти буферы разделены. В Р6 большие страницы (2 Мбайт в режиме РАЕ и 4 Мбайт - в PSE) обслуживаются раздельными TLB. Буферы TLB нормально активны в защищенном режиме при разрешенной страничной трансляции. При запрещенной трансляции или в реальном режиме TLB сохраняет свое содержимое до явной или неявной его очистки.

Буферы записи связаны с исполнительным блоком процессора. Они позволяют на некоторое время откладывать фактическую запись во внешний кэш и основную память, уступая шину для других обменов, необходимых для исполнения следующих инструкций. Запись буферизуется во всех режимах процессора. Буферизация записи в порты ввода/вывода не производится.

Все механизмы кэширования в основном прозрачны для прикладных программ и после разрешения кэширования пропускают через себя потоки инструкций и данных без требования явного программного управления. Однако знание особенностей механизмов кэширования помогает в оптимизации кода. Так, например, можно определить оптимальные размеры одновременно обрабатываемых структур данных, при котором кэш не «буксует» (cache thrashing). Процессоры разных моделей имеют различные характеристики отдельных элементов кэша.

В проц. Р6 поддерживается протокол MESI. Он опр состояние строк в КЭШе.

М-состояние – строка присутствует в КЭШе и модифицирована, т.е. отличается от строки осн. памяти.

Е-состояние – строка присутствует в КЭШе, но не модифицирована

S-состояние – строка присутствует в КЭШе и также может присутствовать в КЭШе др. процессов. Копия в памяти действительна (для мультипроцессорных систем)

I-состояние – строка отсутствует в КЭШе, ее чтение приводит к генерации цикла заполнения строки.

В Р6 первичный кэш инструкций исп. протокол SI