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

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

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

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

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

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

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

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

A=B+C

D=E+F

G=H+I

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

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

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

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

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

Чтобы выполнить программу целиком, ЦПУ необходимо выполнить следующие коды:

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

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

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

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

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

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

7)сложить

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

И т.д

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

· Загрузка В

· Загрузка С

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

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

· Загрузка F

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

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

· Загрузка I

· +;

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

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

Операции с одним потоком команд и многими потоками данных.

В статьях с ЦП встречается термин SIMD (single instruction multiple data) – с одним потоком команд и многими потоками данных. Многие сложные задачи такие как мультимедийные приложения или игры требуют чтобы ЦП повторно выполнял одну и туже команду при изменении данных в широком диапазоне.

Например, при обслуживании мультимедийных приложений ЦП может копировать данные представляющие видео изображения из RAM в память видеокарты. Раньше для перемещения данных процессор должен был выполнить циклический обход каждой ячейки памяти, однако совпадение CPU может реализовать команду (единственную –single instruction или st в абривиатуре SIMD), которая позволяет перемещать все видео данные (множественные данные – Multyple data или MD в абривиатуре SIMD) за один раз. За счет объединений нескольких сотен тысяч команд CPU в одной CPU повышает производительность системы. Процессор Pentium 4 реализует более сотни SIMD команд.

Повышение производительности CPU – накопительный процесс. Разработчики CPU достигли этой цели за счет использования кэш-памяти, конвейерной обработки SIMD команд.

ИСПОЛЬЗОВАНИЕ НЕСКОЛЬКИХ ЦП ДЛЯ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ СИСТЕМЫ

Общеизвестно, что ОС WINDOWS и LINUX позволяют выполнять несколько программ одновременно. На самом деле ОС лишь создает иллюзию одновременности, так как ЦП в каждый момент времени может выполнять лишь одну команду. Многие годы разработчики ПК и программ дискуссировали по поводу целесообразности встраивания в ПК нескольких процессоров для пользователей, которые одновременно запускают несколько программ. Обычно утверждают, что наличие не скольких процессоров увеличит быстродействие системы, однако следует иметь в виду, что большинство пользователей задействуют не более 20% вычислительной мощности ЦП. ЦП обычно не является узким местом производительности системы. Многопроцессорной называется система, которая содержит 2 и более CPU. Сейчас многие рекламируют высокопроизводительные серверы, которые поддерживают 2 и более CPU. Обычно такие серверы хорошо приспособлены для операций с базами данных, сетью или WEB. Стоимость многопроцессорных систем велика из-за сложности электронных схем (например для 2 ЦП на аппаратном уровне координировать совместное использование шин, памяти и устройств). Кроме того, не все ОС поддерживают многопроцессорную структуру архитектуры. Поскольку ПК становятся все более доступными по цене, стоит рассмотреть вопрос о возможности приобретения двух ПК вместо одного сервера. Между ПК можно распределить рабочую нагрузку. Кроме того сбой одного ПК не выведет из строя всю систему

РОЛЬ МАТЕМАТИЧЕСКОГО СОПРОЦЕССОРА

Как нам известно ПК хорошо приспособлен для выполнения сложных арифметических операций. Сложные арифметические операции с плавающей запятой, занимают намного больше времени чем стандартные команды LOAD и MOVE. Многие годы после выпуска первых ПК пользователи приобретают и устанавливают на системную плату специальные МС называемые математический сопроцессор. Предполагается что ЦПУ выполняет стандартные операции а математический сопроцессор – сложные арифметические операции. Сейчас машинный сопроцессор встаивается в ЦП.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: