Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по архитектуре ЭВМ.doc
Скачиваний:
32
Добавлен:
02.05.2014
Размер:
440.83 Кб
Скачать

2.Эффективное ипользование цпу

Роль ЦПУ в работе ПК

Компьютерная программа представляет собой список команд выполняемых системой для решения определенных задач. Программа может быть и простой и сложной. В любом случае это лишь список команд, которые выполняет процессор. Каждый процессор распознает определенный набор команд. Он так и называется набор команд ЦПУ. В зависимости от сложности набора команд специалисты делят ЦПУ на категорииRISC-процессоров иCISC.RISC-Reducedinstructionset- сокращенный набор команд. В основномRISCпроцессоры реализуют простые команды, такие как загрузка, сохранение, сложение и т.д. Идея технологииRISCсостоит в разработке процессора, который способен очень быстро выполнять. простые команды. Т.к.RISC-команды просты для осуществления. одной операции, может потребоваться, чтобы процессор выполнил несколько команд.CISC-complexinstructionset- полный набор командCISCпроцессором может поддерживаться несколько сложных команд, реализация операций, которые потребовали бы выполнения большого количества кодаRISC-процессора. В зависимости от сложности команды, на ее выполнение может потребоваться несколько тактов,. Однако, поскольку сложные коды снижают количество операций которые должен выполнять процессор, быстродействиеCISCпроцессора обычно очень велико.RISCпроцессоры проще конструировать. ОднакоCISCпроцессоры реализуют более высокую эффективность вычислений для каждой команды. Возникает вопрос – какой тип процессора лучше? Ответ неоднозначен. В некоторых программах тестированияRISC-процессоры показывают более лучшие результаты по сравнению сCISC-процессорами. Однако в игровых, мультимедийных программах которые выполняют сложные операции с видеоизображением и графикой, результативностьCISCпроцессоров обычно выше. Хотя во многих маркетинговых исследованиях процессорыINTELPENTIUMрассматривают как построенные по технологииCISC, было бы точнее описать их гибридные и занимающее промежуточное положение между архитектурамиRISCиCISC.

Процесс программирования

Программа - это лишь список команд, выполняемых ЦПУ для решения определенной задачи. Функционирование компьютера с технической точки зрения основана на наличии или отсутствии электрических сигналов. Можно считать, что процессор состоит из миллионов небольших переключателей (электронных), которые могут находиться либо во включённом состоянии, либо в отключенном. Создатели первых компьютерных программ использовали переключатели, которые существовали вне больших ЭВМ. Например, чтобы сложить 2 и 5 программист устанавливал переключатели для выбора операции сложения, а так же переключатели обеспечивающие ввод значений 2 и 5. После выполнения операций компьютер выводил результат, зажигая лампочки возле выключателя. Переключатели большой ЭВМ могли находиться лишь в двух состояниях - включено и выключено. Для представления этих состояний программисты используют значения 1(включить) и 0 (выключить). Затем разработчики создали компьютер для программирования на котором не требовалось использовать переключатели. Для ввода использовалась перфолента или перфокарта. Данные и коды представлялись длинными последовательностями 0 и1 (двоичное представление). Например, чтобы сложить числа 2 и 5, программист вводил 110001001110000101111

  • 11000101 ввод 5

  • 11000010 ввод 2

  • 1111 сложение

Нетрудно предположить, что ввод команд в виде 0 и 1 приводил к ошибкам. Чтобы сократить количество ошибок, программисты стали использовать шестнадцатеричную систему использущую цифры от 0 до 9 и буквы от AдоF.

0 0000 0 Предыдущая

. 0001 1 запись

2 0010 2 С5

. 0011 3 С2

…………….. F

…………………………….

16 1111 F

Очевидно, что в такой записи проще обнаружить ошибки. Написание и отладка программы с использованием шестнадцатеричной нотации по-прежнему сложная задача. В результате программисты стали использовать мнемонический код ( ADD,LOAD).

LOAD2

LOAD5

ADD

Мнемонический код намного проще. Но следует учесть, что компилятор распознаёт только 0 и1, а не коды. После написания программы с использованием мнемокода (называемого языком ассемблер) необходимо выполнить специальную программу, которая преобразует мнемокод в последовательность 0 и 1. В настоящее время программа используют языки высокого уровня С++, Pascal. Язык программирования позволяет записать операторы, которые представляют собой код программы. Программисты помещают операторы в текстовый файл, который называется исходным файлом. Затем выполняется специальная программа называемая компилятор, которая и преобразует операторы в последовательность 0 и1. Компилятор сохраняет двоичный код в исполняемом файле типа .exe.

Системная шина. Взаимодействия модулей.

Внутри компьютера электрические сигналы, обеспечивают взаимодействие устройств между собой, передаются через группы проводников называемых шинами. Например, одна шина позволяет ЦПУ взаимодействовать с платами расширения, а вторая обеспечивать связь с видеокартой. Основная шина , называется системной, соединяет ЦПУ с остальными элементами набора МС, такими как BIOS. Системную шину называют иногда фронтальной шиной (frontsidebus) , чтобы координировать сигналы передаваемые по её проводникам, системная шина действует с фиксированной частотой тактов. Например, ЦПУ помещает на шину данные, которые необходимо сохранить в памяти. Данные (элементы сигнала) сохраняются на шине определенное время, в данном случае достаточно долго, чтобы контроллер памяти смог принять и поместить их вRAM. По мере увеличения быстродействия процессоров скорость системной шине увеличивается. На каждом такте процессор выполняет одну операцию. К сожалению если команда требуется выполнение операции с памятью, ЦП должен приостановить работу и ожидать завершения операции передачи данных по системной шине. Это существенно снижает быстродействие ПК. Более медленная системная шина тормозит работу ЦП. Т.о. она является узким местом производительности ПК.

Вопрос: Почему системная шина не работает на частоте процессора или с его скоростью?

Этому препятствует несколько факторов.

  1. В ЦПУ достижимы тактовые частоты в несколько ГГц, т.к.сигнал в ЦПУ передаётся на очень малых расстояниях. Они проходят только по внутренним шинам МС.

И сохраняются в течение малого времени. Путь от ЦПУ к RAMнамного длиннее, они сохраняются на шине дальше.

2. Тактовая частота системной шины должна быть ниже ЦП потому, что остальные элементы набора МС также как модули RAMпросто не могут достигать такого показателя. Этого не допускает технология их изготовления.

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

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

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

Остальны е 80 % команд не выполняются или редко используются. Это проще понять если проанализировать работу пользователя с большинством программ. Например, текстовый редактор. Обычно он используется для ввода текста. Прежде чем распечатать документ м проверить орфографию, а затем сохранить файл. Для выполнения этих опреаций использутся менее 20% ресурсов процессора. Обычно пользователь не меняет границ областей печати, не использует множество шрифтов, таблиц, рисунков и т.д.. Он просто набирает текст, проверяет и сохраняет его. Для дальнейшего повышения эффективности работы ЦП многие системы содержат буфер данных. Во многих ПК существует КЭШ память второго уровня L2cach. Обычно это устройство находится вне ЦПУ. Оно более скоростное чем ОЗУ и более дорогое чем ОЗУ но дешевле чем КЭМ первого уровняL1cach. Как правило КЭШ второго уровня вдвое больше первого. Предположим что существует программа на 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(singleinstructionmultipledata) – с одним потоком команд и многими потоками данных. Многие сложные задачи такие как мультимедийные приложения или игры требуют чтобы ЦП повторно выполнял одну и туже команду при изменении данных в широком диапазоне.

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

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

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

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

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

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

Понятие многопоточности.

Конвейер обрабатывать позволяет ЦПУ выполнение команд в течение одного такта. Для дальнейшего повышения быстроты разработчики аппаратуры и программных средств создали технологию многопоточности. Программисты часто называют последовательность выполненных команд потоком. Например, для текста процессора один поток медленно осуществляет печать, другой – проверку орфографии. Многопоточность основана на том что , что ЦПУ для выполнения команды часто не перебирается время занимаемое целым тактом. В таких случаях ЦП доложен иметь возможность быстро переключать на другой поток выполнять и обрабатывать его команды в течении доступного промежутка времени. Эта технология позволила специалистам компании INTELвысить быстродействие системы на 30% по результатам тестирования. К сожалению для поддержания многопоточности необходима модернизация приложений. Кроме того ОС должна поддерживать эту технологию. Работы по повышению быстродействия на основе многопоточности- самые перспективные.

Отображение информации о загруженности ЦП

Программа – диспетчер задач.

Способы повышения быстродействия за счет повышения тактовой частоты и системной шины. Предположим, что за счет повышения тактовой частоты можно добиться повышения производительности системы на 15%. Однако если в среднем ЦП загружен на 20% повышение быстродействия составит 3% (20% от 15%). Это ставит под сомнение целесообразность затрат времени и усилий на такой «разгон». Для определения процессорного времени, потребляемого каждым активным приложением с момента запуска, можно воспользоваться таблицей Диспетчера Задач «Процессы». Когда процессор не выполняет задач, он занимается специальным пустым (idle- не выполняющим операции) приложением. Обычно выводимая утилитой таблица показывает, что пустое приложение занимает большую часть процессорного времени. Совет: перегрев является наиболее вероятной причиной сбоев, связанных с разгоном ЦП. Прежде чем покупать новый вентилятор и радиатор , можно попытаться воспользоваться программными средствами для охлаждения ЦПУ. (посетитеweb-сайтwww.amn.ruи загрузите утилитуAmnrefrigerator. Она останавливает работу процессора , когда он не используется, что позволяет снизить тепловыделение.

Определение типа ЦПУ.

Прежде чем манипулировать с производительностью системы, нужно знать характеристики типа ЦПУ, установленного в системе. Это можно узнать через «Свойства системы» (щелчок правой кнопки мыши на ярлыке «Мой компьютер») или через SETUP.

Определение тактовой частоты системной шины.

Так как тактовая частота системной шины всегда меньше, чем у ЦПУ , то шина является узким местом производительности системы. Иногда, что бы повысить производительность ПК увеличивают частоту системной шины. Прежде чем это сделать, необходимо узнать текущее значение тактовой частоты системной шины. Некоторые версии программы SETUPпозволяют узнать тактовую частоту системной шины. В этом случае можно повысить тактовую частоту. Кроме того, если есть описание системной платы можно определить джампер, который задает тактовую частоту системной шины.

Включение кэш-памяти (встроенной ) ЦП.

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

Замена процессора более скоростной моделью.

В зависимости от используемого в системе ЦПУ и набора микросхем можно улучшить ее характеристики путем замены процессора. ЦПУ представляет собой микросхему, которая вставляется в гнездо материнской платы. Конфигурация гнезда зависит от чипсета и материнской платы. ЦПУ взаимодействует с модулями RAM,BIOSи остальным набором микросхем чипсета посредством системной шины. Количество проводников системной шины зависит от типа ЦПУ. Гнездо соединяет ЦП с системной шиной, блоком питания и т.д. в определенных условиях замена ЦПУ оправдана. Во-первых – вентилятор; во- вторых- увеличение размера кэш- памяти, что скорее всего больше всего повлияет на повышение производительности ПК , чем повышение тактовой частоты. Проблема (неэффективность) замены ЦПУ может состоять в том, что увеличивается несоответствие тактовой частоты ЦПУ и тактовой частоты системной шины, а также возможно и остальных микросхем чипсета. К сожалению в этом случае единственным решением является замена материнской платы. Зависимость набора микросхем, например, не позволяет заменитьPentium3 наPentium4 (у них просто различные гнезда). Некоторые сторонние производители предлагают устройства, которые можно вставлять в гнезда расширения или в некоторых случаях в гнездо ЦПУ, что даёт возможность использовать новый ЦП в системе, гнездо ЦПУ которой несовместимо с ним. Обычно такие решения приводят к дополнительным расходам ресурсов, что сказывается на быстродействии и по прежнему сохраняется дисбаланс в системе между тактовыми частотами ЦПУ , системной шины и набора микросхем. В результате снижения стоимости системных плат их замена становится более доступной.

BIOS

Как известно без ЦП ПК не сможет работать. BIOS– базовая система ввода/выводаBIOS

осуществлять нескольких важных решений направленных на поддержку операций ПК. Первые команды, которые выполняет ЦП при каждом запуске системы, содержатся в BIOS. Эти команды инициируются и управляютсяPOST(power-on-self-test) самотестированием при включении ПК. Кроме того в памятиBIOSсодержится программаSETUP. Она служит для конфигурации важных параметров в системе. НаконецBIOSпредоставляет набор базовых службI/O. На основе этого набора ОС м. взаимодействовать с внешними устройствами(мышь и т. д.).

Ключевые функции BIOS:

- запуск системы;

- установка пар-ров;

- CMOSслужбыI/O(осн.).

BIOSсодержит как коды, выполняемые ЦП, так и коды, которые программы(например ОС) используют для взаимодействия с другими устройствами. Эти коды помещаются в одну или несколько МС, устанавливаемых на системной плате. В современных системахBIOSоснована на технологииFLASHпамяти – это одна МС. Её содержимое можно обновить с помощью специальных программ. Существующие версииBIOSне способны поддерживать принципиально новые устройства, то и дело выпускаемые изготовителями аппаратных средств. Тем не менее проблему часто удаётся решить путём загрузки обновленной версииBIOS. Для повышения производительности системыBIOSне подходит. Поэтому для реализации некоторых задач, выполняемых ранееBIOS, ОС имеют собственный код. Концептуально ОС основана наBIOS. Прежние ОС, такие какMS-DOS, интенсивно исполняли процедурыBIOSдля осуществления операцииI/O. Современные ОС,WIN2000 после окончания самотестирования и запуска процесса загрузки ОС можно вовсе не использовать процедурыBIOS. Операции по взаимодействию с видеосистемой,HMDосуществляемые ранее средствамиBIOS, сегодня выполняются средствами ОС. В итоге, меры, принимавшиеся ранее для повышения производительности системы по загрузкеBIOSв теневое ОЗУ, более не эффективны. В настоящее времяBIOSограничиваться следующими функциями: запуск начальной загрузки; предоставление доступа кCMOSпамяти; управление питанием; поддержка автоконфигурируемых устройств.

Соседние файлы в предмете Архитектура вычислительных систем