Буферы 1-го и 2-го уровня

снижают эффект замедления работы системы. В процессе выполнения команд ЦП сохраняет время работы в области хранения называющейся регистрами. Т.к. регистры находятся внутри ЦП, доступ к их содержимому осуществляется очень быстро. К сожалению, во время выполнения команд большая их часть и данные располагаются в памяти, и процессор должен ожидать завершения двух медленных операций системной шины. Первая операция – запрашивает команду из памяти, а вторая передает команду из RAM в ЦП. Чтобы уменьшить количество медленных операций, выполняемых ЦП, разработчики поместили в процессор дорогостоящее и быстродействующее устройство памяти. Оно называется буфером или КЭШ-памятью ЦП. ЦП выполняет команды последовательно. При отсутствии КЭШ-памяти перед выполнением каждой команды ее следует загружать из памяти. Это длительный процесс. КЭШ-память позволяет предварительно загрузить множество команд из памяти единовременно.

Когда ЦП потребуется выполнить следующую команду её можно будет извлечь из КЭШ, что не требует взаимодействия с системной шиной. Когда дойдет очередь до команды , которой нет в КЭШ процессор извлечет е1 их КЭШ , но в то же время загрузит несколько команд из ОЗУ в КЭШ.

ФАКТ: Во время выполнения программ 80% времени затрачивается на выполнение 20% кода. Программисты называют этот феномен правилом 80/20

Остальны е 80 % команд не выполняются или редко используются. Это проще понять если проанализировать работу пользователя с большинством программ. Например, текстовый редактор. Обычно он используется для ввода текста. Прежде чем распечатать документ м проверить орфографию, а затем сохранить файл. Для выполнения этих опреаций использутся менее 20% ресурсов процессора. Обычно пользователь не меняет границ областей печати, не использует множество шрифтов, таблиц, рисунков и т.д.. Он просто набирает текст, проверяет и сохраняет его. Для дальнейшего повышения эффективности работы ЦП многие системы содержат буфер данных. Во многих ВС существует КЭШ память второго уровня L2 cach. Обычно это устройство находится вне CPU ИЛИ APU. Оно более скоростное чем ОЗУ и более дорогое чем ОЗУ но дешевле чем КЭМ первого уровня L1 cach. Как правило КЭШ второго уровня вдвое больше первого. Предположим что существует программа на 1 мегабайт. А CPU ИЛИ APU располагает буфером 256 килобайт, так как обычно используется 20% код. Эта программа вполне сможет поместиться в кэш.

Конвейерная организация операций для повышения производительности системы.

CPU ИЛИ APU с тактовой частотой 2 Ггц может выполнять 2*10в9 команд за 1 секунду. Чтобы ещё больше повысить производительность, в CPU ИЛИ APU применяется технология конвейерной обработки информации Pipelining . Она позволяет процессору одновременно обрабатывать несколько операций в течение каждого такта, что напоминает принцип конвейера.

Пример: рассмотрим простую программу :

A=B+C

D=E+F

G=H+I

Сначала ЦП выполняет операцию A=B+C. Чтобы реализовать это простое сложение ЦП выполняет следующие команды :

1)Загружает значение В

2)Загружает значение С

3)Слаживает значения

4)Сохраняет результат в А

Чтобы выполнить программу целиком, CPU ИЛИ APU необходимо выполнить следующие коды :

1)Загрузить В

2)Загрузить С

3)Сложить значения

4)Сохранить результат в А

5)Загрузить Е

6)Загрузить F

7)сложить

8)сохранить результат в D

И т.д

Преимущество конвейерной обработки состоит в том, что одновременно с, операцией сложения , например А+В, ЦП моментом извлекает значение С. Принимая во внимание простую реализацию конвейерной организации операций, которая позволяет ЦП одновременно выполнять некоторые действия и передавать данные по системе (если она не используется для выполнения какой-либо команды), в рассказанном выше программе некоторые коды могут накладываться друг на друга.

· Загрузка В

· Загрузка С

· +; Загрузка Е

· Сохранить результат в ~ А

· Загрузка F

· +; загрузка H

· Сохранение результата ~ D

· Загрузка I

· +;

· Сохранение результата ~ G

Скрытые механизмы конвейерной обработки в CPU ИЛИ APU могут быть довольно сложными. Однако это дает значение выигрывают в производительности вычислений. В статьях о конвейерной обработке в CPU ИЛИ APU встречается термин Прогнозирование ветвлений. Код программы предпочитает принятие решений. Например, если одно значение больше другого, программа выполняет определенный набор команд. В противном случае выполнение команды. Например, по программе необходимо извлечь значение температуры из ядерного реактора. Если она сост. 200 градусов, программа выводит сообщение о состоянии реактора, указывающее, что все в норме иначе реактор отключается if/else или включенная программа регулирует температуры. Чтобы реализовать преимущество конвейерной обработки информации, CPU ИЛИ APU пытается выполнить некоторые операции заранее. Когда в программе выполняется операция if/else, CPU ИЛИ APU пытается угадать, какое условие будет иметь место. Другими словами CPU ИЛИ APU делает предположение, какая часть оператора if/else будет выполнятся, чтобы ЦП мог обрабатывать соответственные операторы в конвейерном порядке. Если CPU ИЛИ APU верное предположение он может исп. Результаты параллельной обработки команд. В противном случае эти результаты отбрасываются.

Наши рекомендации

Число: 2080