Обнаружение устройств использующие одинаковые номера прерываний

Если просмотреть настройки IRQ с помощью утилиты “Информация о системе” можно заметить, что несколько устройств используют один и тот же номер прерывания, что казалось бы нарушает принципы обслуживания устройств. В действительности подключаемые к шине PCI устройства довольно часто осуществляют совместное использование прерываний. Когда 2 и более устройств используют одно и тоже прерывание , система выстраивает коды обработчика в цепочку. Сначала попытка ответить первому, затем второму и т.д. Обработчик прерываний (набор команд выполняемых ПК в случае прерывания) анализирует состояние различных портов чтобы определить условие когда прерывание сгенерировало обслуживающее устройство. ОС продолжает последовательно выполнять обработчики, пока один из них не сможет обслуживать прерывания. Даже если устройство поддерживает совместное использование прерываний нужно попытаться присвоить ему неиспользуемый номер прерывания, чтобы упростить процесс и повысить быстродействие системы. Т.к. идентификация устройства, вызвавшего прерывание занимает некоторое время, последовательный перебор прерываний снижает быстродействие системы.

 

Эффективное ипользование ЦПУ

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

Компьютерная программа представляет собой список команд выполняемых системой для решения определенных задач. Программа может быть и простой и сложной. В любом случае это лишь список команд, которые выполняет процессор. Каждый процессор распознает определенный набор команд. Он так и называется набор команд ЦПУ. В зависимости от сложности набора команд специалисты делят ЦПУ на категории RISC-процессоров и CISC. RISC- Reduced instruction set- сокращенный набор команд. В основном RISC процессоры реализуют простые команды, такие как загрузка, сохранение, сложение и т.д. Идея технологии RISC состоит в разработке процессора, который способен очень быстро выполнять. простые команды. Т.к. RISC-команды просты для осуществления. одной операции, может потребоваться, чтобы процессор выполнил несколько команд. CISC-complex instruction set- полный набор команд CISC процессором может поддерживаться несколько сложных команд, реализация операций, которые потребовали бы выполнения большого количества кода RISC-процессора. В зависимости от сложности команды, на ее выполнение может потребоваться несколько тактов,. Однако, поскольку сложные коды снижают количество операций которые должен выполнять процессор, быстродействие CISC процессора обычно очень велико. RISC процессоры проще конструировать. Однако CISC процессоры реализуют более высокую эффективность вычислений для каждой команды. Возникает вопрос – какой тип процессора лучше? Ответ неоднозначен. В некоторых программах тестирования RISC-процессоры показывают более лучшие результаты по сравнению с CISC-процессорами. Однако в игровых, мультимедийных программах которые выполняют сложные операции с видеоизображением и графикой, результативность CISC процессоров обычно выше. Хотя во многих маркетинговых исследованиях процессоры INTEL PENTIUM рассматривают как построенные по технологии 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).

LOAD 2

LOAD 5

ADD

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

 

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

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

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

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

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

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

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

Буферы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. Многие годы после выпуска первых ПК пользователи приобретают и устанавливают на системную плату специальные МС называемые математический сопроцессор. Предполагается что ЦПУ выполняет стандартные операции а математический сопроцессор – сложные арифметические операции. Сейчас машинный сопроцессор встаивается в ЦП.

 

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

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

 

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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. Современные ОС, WIN 2000 после окончания самотестирования и запуска процесса загрузки ОС можно вовсе не использовать процедуры BIOS. Операции по взаимодействию с видеосистемой, HMD осуществляемые ранее средствами BIOS, сегодня выполняются средствами ОС. В итоге, меры, принимавшиеся ранее для повышения производительности системы по загрузке BIOS в теневое ОЗУ, более не эффективны. В настоящее время BIOS ограничиваться следующими функциями: запуск начальной загрузки; предоставление доступа к CMOS памяти; управление питанием; поддержка автоконфигурируемых устройств.