Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
осрв.doc
Скачиваний:
20
Добавлен:
25.04.2019
Размер:
269.82 Кб
Скачать

Вопрос 8. Алгоритмы замены данных в кэш памяти. Специальные кэШи.

Алгоритмы замены данных в кэш памяти.

Если все строки кэш памяти содержат корректные данные, то для обеспечения кэширования новых областей памяти необходимо выбрать строку, которая будет перезаписана. Эта строка выходит из кэша и, если требуется, ее содержимое будет записано обратно в память. Существуют три алгоритма замены данных в кэше:

• вероятностный алгоритм: в качестве номера перезаписываемой строки используется случайное число;

• FIFO алгоритм: первая записанная строка будет первой перезаписана;

• LRU (LastRecentlyUsed) алгоритм: наименее используемая строка будет заменена новой.

Для повышения производительности процессора вводятся ряд специальных кэшей.

• TLB (TranslationLook-asideBuffers) - это кэш память, используемая MMU для хра нения результатов последних трансляций логического адреса в физический. Содержитпары: логическийадрес и соответствующийфизическийадрес.

• ВТС (BranchTargetCache) - это кэш память, используемая BU для хранения адреса предыдущего перехода и первой инструкции, выполненной после перехода. Имеет целью без задержки заполнить конвейер инструкцией, если переход уже ранее состоялся. ВТС может значительно повысить производительность процессора, учитывая время, которое он бы простаивал в ожидании заполнения конвейера после перехода.

Вопрос 9.Cisc и risc процессоры.

Основной временной характеристикой для процессора является время цикла, равное 1/F, где F - тактовая частота процессора. Время, затрачиваемое процессором на задачу, может быть вычислено по формуле С*Т*I, где С - число циклов на одну инструкцию, Т - время на один цикл, I - число инструкций на задачу.

Разработчики "классических" систем (которые теперь называют CISC (CompleteInstructionSetComputer)) стремились уменьшить фактор I. В процессорах реализовывались все более сложные инструкции, для выполнения которых внутри него самого запускались специальные процедуры (так называемый микрокод), загружаемые из ПЗУ внутри процессора. Этому пути способствовало то, что улучшения в технике производства полупроводников делали возможным реализацию все более сложных интегрированных цепей. Однако, на этом пути очень трудно уменьшить два других фактора: С поскольку инструкции сложные и требуют программного декодирования и Т в силу аппаратной сложности.

Концепция RISC (ReducedInstructionSetComputer) возникла из статистического анализа того, как программное обеспечение использует ресурсы процессора. Исследования системных ядер и объектных модулей, порожденных оптимизирующими компиляторами, показали подавляющее доминирование простейших инструкций даже в коде для CISC машин. Сложные инструкции используются редко, поскольку микрокод обычно не содержит в точности те процедуры, которые нужны для поддержки различных языков высокого уровня и сред исполнения программ. Поэтому разработчики RISC процессоров убрали реализованные в микрокоде процедуры и передали программному обеспечению низкоуровневое управление машиной. Это позволило заменить процессорный микрокод в ПЗУ на подпрограмму в более быстрой ОЗУ.

Разработчики RISC процессоров улучшили производительность за счет уменьшения двух факторов: С (за использования только простых инструкций) и Т (за счет упрощения процессора). Однако, изменения, внесенные для уменьшения числа циклов на инструкцию и времени на цикл, имеют тенденцию к увеличению числа инструкций на задачу. Этот момент был в центре внимания критиков RISC архитектуры. Однако, использование оптимизирующих компиляторов и других технических приемов, практически ликвидирует эту проблему.