Irq в секунду что это – IRQ и обслуживающий их контроллер прерываний

IRQ и обслуживающий их контроллер прерываний

Думаю, многие любознательные пользователи, наверняка не раз встречали такое сокращение, как IRQ. Его можно встретить, например, если вы любите заглядывать в программу «Менеджер устройств» в Windows. Если вы выберете любое устройство, к примеру, клавиатуру, выберете при помощи правой кнопки мыши пункт меню «Свойства», и в появившемся окне сделаете активной закладку «Ресурсы», то в списке ресурсов вы увидите надпись IRQ 01.

IRQ прерывания

Содержание статьи

Для чего нужны IRQ

Что же такое IRQ и для чего оно нужно?

Аббревиатура IRQ расшифровывается как Interrupt ReQuest (запрос на прерывание). Для того, чтобы понять, для чего оно нужно, следует вспомнить подробности организации работы персонального компьютера.

Кровеносной системой компьютера, по которой обмениваются информацией процессор и прочие устройства, является системная шина. Но как вообще процессор способен отличить запросы на обработку информации, поступающие по шине от различных устройств?

Для этого и существует система аппаратных прерываний (IRQ). Каждое прерывание имеет определенный номер (нумерация начинается с 0) и закреплено за определенным устройством. Так, за клавиатурой закреплено прерывание под номером 1, отсюда и обозначение IRQ 01.

При поступлении запроса от устройства компьютер прерывает (отсюда и появился сам термин «прерывание») обработку текущей информации и начинает обработку вновь поступившего. Если прерываний несколько, то они обрабатывается в порядке приоритетов, закрепленных за каждым из них. Как правило, чем меньше номер прерывания, тем больший приоритет для процессора имеет устройство, закрепленное за этим прерыванием, но это правило соблюдается далеко не всегда.

Обслуживает обработку IRQ специальный чип, который носит название контроллера прерываний. Как правило, эта микросхема является частью центрального процессора, а иногда выделяется в отдельный чип на материнской плате. Для обработки каждого прерывания в BIOS существует специальная микропрограмма, называемая обработчиком прерывания. Адреса всех обработчиков хранятся в так называемой таблице векторов прерываний.

Раньше, в первых компьютерах семейства XT была распространена 8-разрядная шина ISA, поэтому всего устройствам было доступно 8 прерываний. С появлением 16-разрядной шины ISA их количество увеличилось до 16.

Настройка  Interrupt ReQuest

Надо сказать, что прерывания, закрепленные за некоторыми устройствами, не является фиксированными и их можно изменить программно. Например, IRQ стандартно использующееся последовательным портом Com 2, может использовать и устанавливаемый в слот расширения модем. В современных компьютерах и операционных системах, поддерживающих стандарт PnP и работающих под управлением ОС Windows, значения IRQ для устройств, подключаемых в слоты шины, подбираются автоматически.

Но не все было так просто в прежние времена, когда пользователь должен был вручную устанавливать значение IRQ во многих программах, работавших под операционной системой DOS. Например, при установке в систему звуковой карты, пользователю требовалось выбрать свободное прерывание из очень небольшого числа доступных (как правило, это было IRQ 5) и указать это значение  в запускаемой программе, например, в какой-нибудь игре.

Во многих BIOS имеется возможность поменять стандартные значения IRQ в программе Setup. Обычно эта опция располагается в разделах IRQ Resources или PCI/PNP Configuration.

Установка для устройства значения IRQ, равного значению IRQ, уже занятого каким-либо устройством в большинстве случаев приводит к неработоспособности одного из этих устройств или сразу обоих, а иногда чревато и зависанием компьютера.

В более современной шине PCI система управления прерываниями была кардинально изменена, а возможности управления прерываниями были расширены. Благодаря технологии IRQ Sharing, а также технологии ACPI стало возможным размещение нескольких устройств на одном канале прерывания, а у внешних устройств, подключаемых в слоты PCI, появилась возможность автоматического распределения ресурсов между собой.

Кроме того, в современных компьютерах обычно используется расширенный программируемый контроллер прерываний (APIC, Advanced Programmable Interrupt Controller), поддерживающий 24 канала Interrupt ReQuest. Расширенный контроллер прерываний выполнен в виде двух микросхем, одна из которых расположена в самом процессоре, а другая на материнской плате. Этот контроллер прерываний впервые появился в системах на основе процессоров Pentium. Однако при этом была оставлена поддержка старой системы прерываний в целях совместимости. Очередным шагом в развитии принципов обработки прерываний является технология Message Signaled Interrupts, поддержка которой появилась в линейке ОС Windows, начиная с Windows Vista.

Не следует путать аппаратные прерывания IRQ c программными прерываниями BIOS, о которых речь пойдет в отдельной статье. Программные прерывания BIOS, как правило, используются для организации работы программного обеспечения с устройствами ввода-вывода и обозначаются при помощи сокращения INT. Многие из них аналогичны по своим функциям аппаратным IRQ, но имеют при этом другие номера.

Список номеров Interrupt ReQuest в стандартной схеме для 16-битной шины ISA:

  1. Системный таймер
  2. Клавиатура
  3. Дополнительный контроллер прерываний (для совместимости с 8-битной шиной)
  4. Порты Com 1 и 3
  5. Порты Com 2 и 4
  6. Свободно (в 8-битной шине — контроллер жесткого диска)
  7. Контроллер гибких дисков (FDD)
  8. Параллельный порт LPT
  9. Часы реального времени CMOS
  10. Совмещено с IRQ 2
  11. Свободно
  12. Свободно
  13. Порт мыши PS/2
  14. Сопроцессор (в настоящее время практически не используется)
  15. Первый контроллер IDE
  16. Второй контроллер IDE

Список дополнительных номеров IRQ, которые использует расширенный контроллер прерываний APIC:

  1. Контроллер USB
  2. Интегрированная звуковая подсистема (AC’97 или HDA)
  3. Контроллер USB
  4. Контроллер USB
  5. Встроенная сетевая карта
  6. Свободно
  7. Свободно
  8. Контроллер USB 2.0

Соответствие номеров IRQ и прерываний BIOS:

Таблица IRQ и INT

Таблица соотношения аппаратных IRQ и программных INT BIOS

Заключение

Итак, в этой статье вы смогли узнать, что означает сокращение IRQ, и что представляют собой аппаратные прерывания. Они являются встроенным механизмом распределения ресурсов компьютера и предназначены для организации доступа устройств к центральному процессору. Правильное распределение и настройка IRQ позволяет избежать конфликтов между устройствами и обеспечить стабильную работу системы.

Порекомендуйте Друзьям статью:

biosgid.ru

IRQ

IRQ

Михаил Тычков aka Hard

Доброго времени суток.

Давайте рассмотрим такую вот ситуевину: процессор обрабатывает какие-то данные, не важно какие. В этот момент у какого-нить устройства тоже появились данные для обработки. Че делать? Надо просить процессор, что бы тот соизволил обратить на просьбу внимание и решил бы, сейчас обрабатывать эти данные или потом. Так вот эта просьба и есть IRQ или прерывания (вообще-то существуют два типа прерываний: аппаратные (внешние) и программные (внутренние), но поскольку мой раздел называется «Железо и сети», то разговор я буду вести только об аппаратных прерываниях). Строго говоря IRQ – это каналы запросов прерывания, которые используются всевозможными девайсами для того, что бы сообщить процессору о том, что необходимо обработать определенный запрос. Физически, IRQ представляют собой отдельно проложенные линии (проводники) и соответствующие этим линиям контакты в интерфейсах. Все это находится, ессесно на материнской плате. Линии IRQ предназначены только для передачи запросов прерывания.

А ну-ка разберемся, как вся эта фигня с IRQ происходит. Итак, после получения запроса прерывания, камень сохраняет в стеке содержимое регистров. Затем он обращается к таблице векторов прерываний, где есть список адресов памяти программ, соответствующих определенным номерам прерываний. От номера прерывания зависит, какая программа будет запущена. В основном этими программами являются драйвера, относящиеся к устройствам, пославшим запрос (а уж драйвера туго знают свое дело и разберутся, что дальше делать). После всего этого, процедура обработки возвращает из стека то, с чем работал камень, а проще говоря, отдается управление системой той программе, что работала до запроса прерывания. И так постоянно. Сама таблица находится в оперативной памяти и состоит из 256 элементов по 4 байта и начинается с адреса 0000:0000. Занимает она 1024 Кбайт. Надеюсь, что Вы усвоили простую истину: если необходимо обработать хотя бы один новый байт от какого-либо устройства, необходимо сначала обработать IRQ этого устройства.

Что бы не было путаницы у IRQ есть иерархия или говоря другим языком – приоритеты. Чем меньше номер прерывания, тем выше приоритет и наоборот, чем больше номер прерывания, тем ниже приоритет. IRQ всего 16. Самый высокий приоритет у IRQ 0, а самый низкий у IRQ 15. Приведу таблицу иерархии:

IRQ

Стандартная функция

0

Системный таймер

1

Контроллер клавиатуры

2

Программируемый контроллер прерываний

3

Последовательный порт COM 2

4

Последовательный порт COM 1

5

Звуковая или сетевая карты или свободен

6

Стандартный контроллер гибких дисков

7

Параллельный порт LPT

8

CMOS и часы

9

Звуковая или сетевая карты или свободен

10

Свободен

11

USB или SCSI или свободен

12

PS/2 совместимый порт мыши

13

Сопроцессор

14

Основной контроллер IDE

15

Дополнительный контроллер IDE

А хотите посмотреть свои прерывания? Выберите «Пуск – Выполнить», наберите «msinfo32». В появившимся окне «Сведения о системе», слева, выберите вкладку «Ресурсы аппаратуры – Прерывания IRQ».

С прерываниями случаются и геморрои. Если произойдет генерация большого количества IRQ, то стек может переполниться и тогда…. тогда Вы потянитесь к кнопочке [Reset]. Ежели такая фигня будет происходить часто, то необходимо в файле Config.sys увеличить параметр Stacks. Кроме, этого двум различным устройствам PCI может быть назначено одно и то же прерывание. Теоретически такое не должно происходить, но вот на практике случается. В этом случае Вам придется самому назначить прерывание одному из заглючивших устройств. Как это сделать? Жмем [Win][Pause/Break]. Выскакивает окно «Свойства: Система». Выбираем вкладку «Устройства», ищем в списке то устройство, IRQ которого будем подправлять и жмем на него пару раз мышью. Выскочит окно его свойств, где выберем вкладку «Ресурсы» и снимем галку «Автоматическая настройка». Затем чуть ниже выбираем «Запрос на прерывания» и кликаем опять два раза мышью. Появится окно, где можно изменить номер IRQ. Ни фиг себе и сложно. Но… Назначать прерывания надо с умом. Сверьтесь с таблицей: какие IRQ для чего предназначены. Посмотрите у себя, какие свободны. Может так случится, что свободных прерываний у Вас и не будет. Думаете – все, жопа? Нет! Новых IRQ Вы конечно не добавите, но подумайте, все ли устройства Вам необходимы. Например, как часто Вы используете порты COM. Я ими последние года три не пользуюсь вообще. Ну и на фиг их из системы. Это можно сделать из BIOS. И вот Вам свободные IRQ. Короче, в решении подобной проблемы надо приложить голову и все у Вас получится. А всяких там кулых спецов хочу предупредить сразу — не пишите мне письма типа: «После твоей статьи клиенты пачками стали нести к нам в магазин компы с развороченными настройками!». Я не отвечаю за действия людей, у которых голова и руки растут из того же места, что и ноги. Когда-то я и сам в этом ни черта не смыслил, но ведь разобрался же. Причем мне никто ничего не объяснял. Дорогу осилит идущий!

Двигаемся дальше. Вообще, следует отметить, что каналы запросов прерывания относятся к системным ресурсам. Дам короткое но очень меткое определение: системными ресурсами называются коммуникационные каналы, адреса и сигналы, используемые узлами компьютера для обмена данными с помощью шин. Вот так вот просто и понятно. К системным ресурсам кроме IRQ относятся: адреса памяти, каналы прямого доступа к памяти и адреса портов ввода/вывода. Но об этом в других статьях. А на сегодня все. Удачи в Ваших начинаниях.

12.09.02

читать еще по теме

whatis.ru

Страдания по IRQ — FAQHard.RU

Страдания по IRQ

Начнем с понятия «прерывание».
Прерывание — это событие, которое говорит системе, что что-то произошло, и требует вмешательства.
Такими событиями могут быть: нажатая клавиша на клавиатуре, сигнал от модема, всевозможные ошибки (вроде деления на нуль) и тому подобное.

Как вы наверняка уже слышали, существуют аппаратные и программные прерывания.
Аппаратные (IRQ — Interrupt ReQuest) — те, которые инициируются железом, а программные — софтом, причем механизмы вызова аппаратного или программного прерывания немного различаются, хотя для процессора это в принципе одно и то же.

С программными прерываниями (INT — Interrupt) просто — программа вызывает запрос на прерывание (на языке ассемблера это INT xx, где xx — номер прерывания), после чего процессор сохраняет адрес возврата в программу и флаги состояния процессора, и переходит к обработчику прерывания.
Найти адрес программы-обработчика процессору очень просто (даже думать не приходится) — первый килобайт оперативной памяти содержит адреса этих программ.

Адрес обработчика нулевого прерывания (прерывания нумеруются с нуля) расположен в самом начале, сразу за ним — адрес обработчика первого прерывания, и так далее до 255-го прерывания.
Выход из обработчика прерывания производится программой-обработчиком, причем управление передается команде, следующей за процедурой вызова прерывания.

Аппаратные прерывания организуются немного сложнее — у каждой шины (PCI, ISA и т. д.) существуют определенные линии (читай — контакты), которые отвечают за прерывания, вызываемые устройствами.
Номера аппаратных прерываний не прямо соответствуют адресам программных, то есть аппаратному IRQ 0 соответствует INT 8, и так далее по таблице.

Зачем, спрашивается, нужны эти IRQ?
Во-первых — постоянно опрашивать все устройства на предмет «а не желаете ли Вы нам что-нибудь этакое передать?» просто непозволительно с точки зрения производительности.

Процессор просто утомится это делать — гораздо легче дать устройству какие-то права, и пусть оно командует.
Во-вторых, сам механизм позволяет программам и процессору абсолютно наплевательски относиться ко всем выступлениям со стороны устройств.

То есть программа даже не замечает, что, пока она работала, произошло 843 IRQ от жестких дисков, клавиатуры, таймера и прочего неотъемлемого барахла из мира внутренностей компьютера.
К тому же, очень важен тот факт, что устройство теоретически может быть обслужено именно в тот момент, когда оно готово что-то сделать или что-то сообщить системе.

Представьте себе, что на двух разных прерываниях «висят» два устройства — радар слежения за ракетами дальнего действия и чайник.
И вдруг они одновременно вызывают свои прерывания.
Что важнее для вас — чайник или сноп ракет, который может через минуту опуститься вам на голову?
То-то же!

Для разрешения таких ситуаций и существует система приоритетов, исходя из которых процессор выбирает, какое прерывание ему обслужить в первую очередь.

Вот список аппаратных прерываний, которые обычно используются в системе, которая не настроена каким-то особым образом:

• 0 (INT 08h) — системный таймер
• 1 (INT 09h) — контроллер клавиатуры
• 2 (INT 0Ah) — сопряжен с видеокартой на XT; на AT и выше используется для каскадирования второй микросхемы контроллера прерываний
• 3 (INT 0Bh) — стандартный для COM2/COM4
• 4 (INT 0Ch) — стандартный для COM1/COM3
• 5 (INT 0Dh) — обычно свободен, но на XT на этом IRQ находился контроллер жесткого диска
• 6 (INT 0Eh) — контроллер FDD
• 7 (INT 0Fh) — прерывание параллельного порта (LPT), однако многими LPT-контроллерами не используется
• 8 (INT 70h) — часы реального времени (RTC — Real Time Clock), прерывание вызывается 18,2 раза в секунду
• 9 (INT 71h) — эмуляция IRQ2 (для совместимости)
• 10 (INT 72h) — свободен
• 11 (INT 73h) — свободен
• 12 (INT 74h) — контроллер PS/2 мыши
• 13 (INT 75h) — математический сопроцессор
• 14 (INT 76h) — первый канал контроллера IDE HDD
• 15 (INT 77h) — второй канал контроллера IDE HDD

Что же это за звери — IRQ2 и IRQ9, которые связаны каким-то непонятным образом?
Дело в том, что на компьютерах XT (помните еще такие?) была всего одна микросхема, отвечающая за обработку аппаратных прерываний.
Возможности этой микросхемы были, мягко скажем, скудны — она могла обслуживать только аппаратные прерывания.

Но в нее был заложен потенциал — при каскадировании одного из прерываний на другую микросхему можно было подключить еще несколько таких наборов логики, и на компьютерах IBM AT таких микросхем было уже две, а аппаратных прерываний — 16.
Так как доступ ко второй микросхеме на аппаратном уровне осуществлялся через IRQ 2 первой (мост IRQ2-IRQ9), то использование в своих нуждах IRQ 2 или IRQ9 имело ряд особенностей.

Когда устройство, работающее на IRQ2, вызывало прерывание, новая логика AT аппаратно отправляла его на IRQ9, после чего BIOS, в свою очередь, перенаправлял сигнал на IRQ2 — чтобы программное обеспечение, рассчитанное на работу с IRQ2, имело возможность нормально работать с девайсом.

Именно поэтому в современных материнских платах, где вся логика работы с аппаратными прерываниями уже встроена в чипсет, для совместимости со старым программным и аппаратным обеспечением оставлен тандем IRQ2-IRQ9.
Сейчас можно совершенно спокойно использовать IRQ9 в своих целях.

Ну, хорошо, получили мы сигнал о том, что устройство нам что-то желает поведать, а дальше-то что?
Ведь нужно данные получить и как-то обработать.
Для этого организуется участок оперативной памяти, в котором устройство располагает данные для обработки, а драйвер, соответственно, ими оперирует.

Обычно эту область памяти называют адресами ввода-вывода.
Для того, чтобы не загружать каждый раз процессор передачей данных от устройства к памяти, используется DMA (Direct Memory Access — прямой доступ к памяти).

Передача данных ведется по так называемым каналам, которых всего семь:

• 0 — используется для регенерации памяти в некоторых системах
• 1 — свободен
• 2 — обслуживает контроллер FDD
• 3 — свободен (на XT — контроллер жесткого диска)
• 5 — свободен
• 6 — свободен
• 7 — свободен

Следует учитывать, что каналы 0-3 — восьмиразрядные, а каналы 5-7 — шестнадцатиразрядные.
Именно поэтому старый добрый SB 16 требовал два канала DMA — один (обычно первый) восьмибитный, а второй — шестнадцатибитный.

1 2 3

faqhard.ru

Страдания по IRQ — Ferra.ru

Как видно из таблицы, свободных прерываний практически не осталось. Свободными можно считать только IRQ 5 и 10, всё остальное занято. По логике, как раз их-то и надо использовать для видеокарты и аудиоплаты. Но устройств, требующих собственное прерывание и не описанных в этой таблице, может быть куда больше. В таблицу они не включены, так как являются опциями, то есть могут быть в системе, а могут и не быть. Например: сетевая карта, контроллер RAID или SCSI, ТВ-тюнер, SATA, IEEE1394 (FireWire) и так далее. То есть, может сложиться ситуация, когда на два свободных прерывания будет восемь устройств, требующих собственного прерывания.  Есть три способа решения этой проблемы. Каждый способ имеет свои плюсы и минусы.

Первый способ – это  полноценное использование систем ACPI и IRQ Sharing. Если системы ACPI, а соответственно и APIC, включены, то операционная система считает, что у неё 256 прерываний, при этом реальных прерываний как было 16, так и осталось. Оставшиеся 240 прерываний – это  виртуальные прерывания, которые являются клонами реальных. ACPI автоматически распределяет прерывания и не позволяет пользователю их менять. Если устройство соглашается работать в режиме кооперации с другим устройством, то есть все шансы, что ACPI посадит их на одну физическую линию.  Если не контролировать данную ситуацию, то на одном физическом прерывании могут оказаться практически все устройства, установленные в компьютере, даже если есть свободные прерывания. Это приведет к сильнейшему торможению всей системы и серьезным сбоям в работе.

Решение:
Плюс данного подхода в отсутствии потребности вмешательства со стороны пользователя. То есть, делать ничего не надо. Просто воткнуть в материнскую плату видеоадаптер, процессор, память и так далее, а затем поставить операционную систему, которая нормально поддерживает ACPI. А это Windows XP или Windows 2000. Всё. Компьютер заработает. Именно в таком виде продаются почти все компьютеры, собранные в России. Подход прост: если работает и тормозит – то  это не гарантийный случай, а проблема пользователя.

Второй способ заключается в отказе от использования ACPI и APIC, но с параллельным использованием IRQ Sharing. Отказ от систем ACPI и APIC означает , что операционная система знает о наличии у неё только 16 прерываний, а не 256, но система IRQ Sharing позволяет находиться на одном прерывании нескольким устройствам. При этом отслеживать картину прерываний уже можно, и выбирать соседей по своему усмотрению — тоже. То есть, если у вас есть сетевая плата и звуковая карта, и при этом нужны все порты ввода-вывода установленные в материнскую плату, то от IRQ Sharing уже никак не отделаться.

Решение:
Современные материнские платы обладают некоторыми особенностями, которые необходимо знать для корректного разведения линий прерываний по устройствам. Так, все встроенные в материнскую плату устройства чаще всего имеют жесткую привязку к слотам расширения PCI, а некоторые слоты жестко привязаны друг к  другу. К примеру, у вас есть встроенная в материнскую плату звуковая карта, при этом она автоматически кооперируется с устройством в третьем слоте PCI. Если вы вставите сетевую плату в третий слот, то встроенная звуковая карта и сетевая плата будут висеть на одном прерывании, чтобы вы ни делали. Решить этот конфликт можно, переставив сетевую карту в другой слот. Или другой пример: пятый и первый слот PCI привязаны друг к другу, и установив два устройства в эти слоты, вы автоматически вешаете их на одну линию прерывания. Опять же, это лечится переустановкой одного из  устройств в другой слот. К сожалению, современные материнские платы имеют столько встроенных устройств, что найти свободный слот PCI без запаралеленных устройств бывает невозможно. В этом случае всё зависит от устройства.

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

К первой группе можно отнести видеокарту и контроллеры жестких дисков. Эти устройства должны иметь выделенное прерывание и ни в коем случае не должны его делить с чем бы то ни было. То есть, на одном прерывании с видеокартой не должно находиться ни одного устройства, в противном случае страшные глюки и тормоза гарантированы. Ко второй группе можно отнести менее ресурсоемкие устройства, например аудиоплату, ТВ-тюнер, софтверный внутренний модем (WinModem) или сетевую карту. Эти устройства могут сосуществовать на одном прерывании с устройствами из групп, которые мы опишем ниже. Тем не менее, если есть возможность, устройства, относящиеся ко второй группе, тоже желательно разместить на отдельном прерывании, так как при серьезной нагрузке возможны различные сбои. Вторая группа — эта зона риска, так как абсолютно непонятно, какое устройство с каким может войти в конфликт при использовании уже задействованных ими прерываний. Стабильность в этом случае достигается методом проб и ошибок. Единственное, что можно сказать однозначно – на одном прерывании не стоит размещать два устройства второй группы, это приведет к сбоям в работе. Третья группа — это все порты ввода вывода, USB, COM-порты, возможно LPT, IEEE1394 (FireWire), аппаратные внутренние модемы и прочие устройства не сильно загружающие компьютер. Устройства из третьей группы могут присоединяться к устройствам из второй и к самим себе. То есть, на одном прерывании могут висеть все порты USB или же один порт USB висит вместе с аудиокартой или ТВ-тюнером. Также можно повесить контроллер FireWire вместе с USB или СOM портом. Ну а четвертая группа — это устройства, не требующие прерываний. Это довольно редкая группа, и тем не менее, она существует. Например, к этой группе относились ускорители трехмерной графики от 3dfx – Voodoo и Voodoo 2. Да, кстати, если вдруг вы видите что у вашей видеокарты или USB-портов прерывание отсутствует (буковки NA — то есть Not Available), то это не значит что у вас такая редкая, хорошая видеокарта. Это с большой долей вероятности значит, что у вашего компьютера проблемы, которые надо решать немедленно. У устройств, не требующих прерывания, в инструкции об этом написано большими буквами.

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

Пожалуй, второй способ — самый часто используемый. При некотором понимании вопроса можно создать практически безглючный компьютер, в котором все устройства, установленные в него, будут функционировать. Минусом второго способа является потеря функций ACPI и наивысшая из всех способов сложность. Для рядового пользователя достижение нормальных результатов может занять долгое время и вызовет сильный перегруз мозгов. Плюс к этому, компьютер больше не будет сам выключаться (его придется выключать кнопкой «Power») и не будет засыпать. Что же касается режима Hybernate, то он полностью сохранит свою функциональность.

Третий способ  — самый правильный, но требует жертв.

Суть способа в полном отказе от систем ACPI и IRQ Sharing. А устройства, которые лезут на одну линию IRQ нужно просто отключать. Must be only one!, как говорил товарищ из фильма «Горец».

Решение:
Для начала нужно отключить все порты, которые не используются. Не пользуетесь LPT – отключить. Не пользуетесь вторым COM-портом и дополнительными USB-каналами – та же судьба, отключить. Каждое устройство должно иметь отдельное прерывание и ни с кем не пересекаться. Это вопрос приоритетов и потребностей, потому что при использовании данного способа половина компьютера оказывается «в отключке», зато всё остальное работает как часы. Плюс этого способа в возможности использования устаревших операционных систем и сложных программ. Например, для установки WindowsNT 4.0 на достаточно сложную машину этот способ просто необходим. Также плюс такого подхода — максимальное быстродействие всей системы без проблем со стабильностью. Если есть возможность, желательно идти именно этим путем.

www.ferra.ru

Что такое IRQ? | KV.by

— Да вы, молодёжь, небось, IRQ от IDDQD не отличаете!

— Обижаете! Мы еще и IDKFA помним.

(по мотивам bash.org.ru)

Мы с вами на страницах «Компьютерных вестей» продолжаем знакомиться со значением различных аббревиатур, напрямую или косвенно относящихся к компьютерам и информационным технологиям.

IRQ расшифровывается как «interrupt request», что по-русски звучит как «запрос на прерывание». Так принято называть специальный сигнал, который сообщает процессору о необходимости прервать выполнение текущей программы, сохранить её состояние в стеке, и перейти к заранее заданному адресу памяти. Сам этот процесс называется прерыванием, и нередко саму аббревиатуру IRQ для краткости расшифровывают просто как «прерывание». Поддержка прерывания обеспечивается специальным контроллером прерываний, давно уже ставшим частью чипсета. В настоящее время, конечно, информация о том, что такое прерывания, имеет даже для ИТ-специалистов больше познавательный, нежели практический характер, однако некоторое время назад всё было совершенно иначе.

Нужно отметить, что выделяют два принципиально различных типа прерываний: аппаратные и программные. Аппаратные прерывания вызываются, как несложно догадаться по их названию, различными устройствами и связаны с событиями, которые произошли с этими самыми устройствами. Это, например, прерывания, вызванные нажатиями клавиш на клавиатуре, — такие прерывания называются внешними. Внутренние прерывания вызваны действиями самого центрального процессора (скажем, делением на ноль). Программные прерывания, напротив, связаны не с какими-то событиями в аппаратной части компьютера, а вызываются явно специальными инструкциями в программном обеспечении.

Каждое прерывание имеет собственный специфический номер, который определяет адрес перехода. После того, как вызванная прерыванием процедура отработает, процессор восстанавливает работавшую до вызова прерывания программу из стека, после чего её выполнение продолжается так, будто никакого прерывания и в помине не было.

Прерывания, ко всему прочему, делятся ещё на маскируемые и немаскируемые. Что это значит? Маскируемые прерывания — это такие, которые можно запретить (с помощью установки специально определённых для этого случая битов в маске прерывания — отсюда и их название), немаскируемые же обрабатываются в любом случае.

Вадим СТАНКЕВИЧ

www.kv.by

Прерывания от внешних устройств в системе x86. Часть 1. Эволюция контроллеров прерываний

В данной статье хотелось бы рассмотреть механизмы доставки прерываний от внешних устройств в системе x86 и попытаться ответить на вопросы:
  • что такое PIC и для чего он нужен?
  • что такое APIC и для чего он нужен? Для чего нужны LAPIC и I/O APIC?
  • в чём отличия APIC, xAPIC и x2APIC?
  • что такое MSI? В чём отличия MSI и MSI-X?
  • как с этим связаны таблицы $PIR, MPtable, ACPI?

Если на какой-то из этих вопросов вам интересно получить ответ или вы просто хотите ознакомиться с эволюцией контроллеров прерываний в системе x86, добро пожаловать под кат.

Введение


Все мы знаем, что такое прерывание. Для тех, кто нет, цитата из википедии:
Прерывание (англ. interrupt) — сигнал от программного или аппаратного обеспечения, сообщающий процессору о наступлении какого-либо события, требующего немедленного внимания. Прерывание извещает процессор о наступлении высокоприоритетного события, требующего прерывания текущего кода, выполняемого процессором. Процессор отвечает приостановкой своей текущей активности, сохраняя свое состояние и выполняя функцию, называемую обработчиком прерывания (или программой обработки прерывания), которая реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.

В зависимости от источника возникновения сигнала прерывания делятся на:

  • асинхронные, или внешние (аппаратные) — события, которые исходят от внешних аппаратных устройств (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ) — устройства сообщают, что они требуют внимания со стороны ОС;
  • синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции;
В данной статье хотелось бы обсудить внешние прерывания IRQ.

Зачем они нужны? Допустим мы хотим выполнить какое-либо действие со входным пакетом для сетевой карты, когда он придёт. Чтобы не спрашивать сетевую карту постоянно «есть ли у тебя новый пакет?» и не тратить на это ресурсы процессора, можно использовать прерывание IRQ. Линия прерываний устройства соединяется с линией INTR процессора, и при получении пакета сетевая карта «дергает» эту линию. Процессор понимает, что для него есть информация и читает пакет.

Но что делать если устройств много? На все внешние устройства ножек процессора не напасёшься.

Чтобы решить эту проблему, придумали микросхему — контроллер прерываний.

PIC


(вики/osdev)

Первой была микросхема Intel 8259 PIC. 8 входных линий (IRQ0-7), и одна выходная, соединяющая контроллер с линией INTR процессора. Когда возникает прерывание от какого-либо устройства, 8259 дёргает линию INTR, процессор понимает, что какое-то устройство сигнализирует о прерывании и опрашивает PIC, чтобы понять по какой именно ножке IRQx возникло прерывание. Появляется дополнительная задержка на данный опрос, но зато количество линий прерываний увеличивается до 8.

Однако 8 линий быстро оказалось мало, и чтобы увеличить их количество стали использовать 2 контроллера 8259 (master и slave) соединённых каскадно (Dual PIC).

IRQ с 0 по 7 обрабатываются первым Intel 8259 PIC (master), а IRQ с 8 по 15 вторым 8259 PIC (slave). О возникновении прерывания CPU сигнализирует только master. Если возникло прерывание на линиях 8-15, второй PIC (slave) сигнализирует о прерывании мастеру по линии IRQ 2, и тот уже в свою очередь сигнализирует CPU. Это каскадное прерывание отнимает одну из 16 линий, но в итоге даёт 15 доступных прерываний для устройств.

Схема утвердилась, и именно её имеют ввиду, когда говорят сейчас о PIC (Programm Interrupt Controller). Впоследствии контроллеры 8259 получили некоторые улучшения, и стали называться 8259A, а эта схема вошла в состав чипсета. Во времена когда основной шиной для подключения внешних устройств была шина ISA, такой системы в целом хватало. Надо было лишь следить, чтобы разные устройства не подключались на одну линию IRQ для избежания конфликтов, так как прерывания ISA не разделяемые.

Обычно раскладка прерываний под устройства была более менее стандартная

Пример (взят отсюда):
IRQ 0 — system timer
IRQ 1 — keyboard controller
IRQ 2 — cascade (прерывание от slave контроллера)
IRQ 3 — serial port COM2
IRQ 4 — serial port COM1
IRQ 5 — parallel port 2 and 3 or sound card
IRQ 6 — floppy controller
IRQ 7 — parallel port 1
IRQ 8 — RTC timer
IRQ 9 — ACPI
IRQ 10 — open/SCSI/NIC
IRQ 11 — open/SCSI/NIC
IRQ 12 — mouse controller
IRQ 13 — math co-processor
IRQ 14 — ATA channel 1
IRQ 15 — ATA channel 2

Конфигурация и работа с микросхемами 8259 осуществляется через I/O порты:


→Документацию на 8259A можно найти тут

На смену шине ISA пришла шина PCI. И количество устройств явно стало превосходить число 15, плюс в отличие от статической шины ISA в данном случае случае устройства могут добавляться в систему динамически. Но к счастью в данной шине прерывания могут быть разделяемыми (то есть к одной линии IRQ можно подсоединить несколько устройств). В итоге чтобы решить проблему нехватки линий IRQ, прерывания ото всех PCI устройств решили группировать в линии PIRQ (Programmable Interrupt Request).

Допустим у нас 4 линии прерываний свободно на PIC контроллере, а PCI устройств 20 штук. Мы объединяем прерывания по 5 устройств на линию PIRQx и подключаем линии PIRQx к контроллеру. При возникновении прерывания на линии PIRQx процессору придётся опросить все устройства подключённые к данной линии, чтобы понять от кого именно пришло прерывание, но в целом это решает задачу. Устройство осуществляющее связывание линий прерываний PCI в линии PIRQ часто называют PIR router.

В данном методе надо следить, чтобы линии PIRQx не подсоединялись к линиям IRQx на которых уже заведены прерывания ISA (так как это вызовет конфликты), и чтобы линии PIRQx были сбалансированы (ведь чем больше устройств мы подключили к одной линии PIRQ, тем больше устройств надо будет опрашивать процессору, чтобы понять, какое именно из этих устройств вызвало прерывание).

Замечание: на рисунке маппинг PCI device -> PIR изображён абстрактно, потому что на самом деле он несколько сложнее. В реальности каждый PCI device имеет 4 линии прерываний (INTA, INTB, INTC, INTD). У каждого PCI устройства (device) может быть до 8 функций (functions) и вот каждой функции соответствует уже одно прерывание INTx. Какую именно INTx будет дёргать каждая функция устройства определяется конфигурацией чипсета.

По сути функции это отдельные логические блоки. Например в одном PCI устройстве может быть функция Smbus controller, функция SATA controller, функция LPC bridge. Со стороны ОС каждая функция — это как отдельное устройство со своим конфигурационным пространством PCI Config.

Информацию о роутинге прерываний на PIC контроллере BIOS передавал ОС с помощью таблицы $PIR и с помощью заполнения регистров 3Ch (INT_LN Interrupt Line (R/W)) и 3Dh (INT_PN Interrupt Pin (RO)) конфигурационного пространства PCI для каждой функции. Спецификация о таблице $PIR раньше была на сайте Microsoft, но сейчас её там уже нет. Содержимое строк таблицы $PIR можно понять из PCI BIOS Specification [4.2.2. Get PCI Interrupt Routing Options] или почитать вот тут

APIC


(вики, osdev)

Предыдущий метод работал пока не появились многопроцессорные системы. Дело в том, что по своему устройству PIC может передавать прерывания только на один главный процессор. А хотелось бы, чтобы нагрузка на процессоры от обработки прерываний была сбалансированной. Решением данной задачи стал новый интерфейс APIC (Advanced PIC).

Для каждого процессора добавляется специальный контроллер LAPIC (Local APIC) и для маршрутизации прерываний от устройств добавляется контроллер I/O APIC. Все эти контроллеры объединяются в общую шину с названием APIC (новые системы сейчас уже соединяются по стандартной системной шине).

Когда прерывание от устройства приходит на вывод I/O APIC, контроллер направляет прерывание в LAPIC одного из процессоров. Наличие I/O APIC позволяет сбалансировано распределять прерывания от внешних устройств между процессорами.

Первой микросхемой APIC был 82489DX, это был отдельный чип, соединяющий в себе LAPIC и I/O APIC. Для создания системы из 2 процессоров нужно было 3 таких микросхемы. 2 функционировали бы как LAPIC и одна как I/O APIC. Позднее функциональность LAPIC была напрямую включена в процессоры, а функциональность I/O APIC была оформлена в чип 82093AA.

I/O APIC 82093AA содержала 24 входных вывода, а архитектура APIC могла поддерживать до 16 CPU. Для поддержки совместимости со старыми системами, прерывания 0~15 отвели под старые прерывания ISA. А прерывания от PCI устройств стали выводить на линии IRQ 16-23. Теперь можно было не задумываться о конфликтах прерываний от ISA и PCI устройств. Также благодаря увеличенному количеству свободных линий прерываний возможно стало также увеличить количество линий PIRQx.

Программирование I/O APIC и LAPIC осуществляется через MMIO. Регистры LAPIC расположены обычно по адресу 0xFEE00000, регистры I/O APIC по адресу 0xFEС00000. Хотя в принципе все эти адреса возможно переконфигурировать.

Как и в случае с PIC первоначально отдельные микросхемы позже вошли в состав чипсета.

В дальнейшем архитектура APIC получила модернизацию и новый вариант получил название xAPIC (x — extended). Сохранена обратная совместимость с предыдущим вариантом. Количество возможных CPU в системе увеличилось до 256.

Следующий виток развития архитектуры получил название x2APIC. Количество возможных CPU в системе увеличилось до 2^32. Контроллеры могут работать в режиме совместимости с xAPIC, а могут в новом режиме x2APIC, где программирование LAPIC осуществляется не через MMIO, а через MSR регистры (что гораздо быстрее). Cудя по этой ссылке для работы этого режима необходима поддержка IOMMU.

Следует заметить, что в системе может быть несколько контроллеров I/O APIC. Например один на 24 прерывания в южном мосту, другой на 32 в северном. В контексте I/O APIC прерывания часто обозначаются GSI (Global System Interrupt). Так вот в такой системе будут GSI 0-55.

Есть ли в CPU встроенный LAPIC и какой именно архитектуры можно понять по бит-флагам в CPUID.
Чтобы система могла обнаружить LAPIC и I/O APIC, BIOS должен представить информацию о них системе либо через таблицу MPtable (старый метод), либо через таблицу ACPI (таблицу MADT в данном случае). Помимо общей информации, и в MPtable и в ACPI (на этот раз в таблице DSDT) должна содержаться информация о роутинге прерываний, то есть информация о том, какое устройство сидит на какой линии прерываний (аналог таблицы $PIR).

О таблице MPTable можно почитать в официальной спецификации. Раньше спецификация была на сайте Intel, а сейчас её можно найти только в архиве. Спецификация ACPI сейчас расположена на сайте UEFI (текущая версия 6.2). Следует отметить, что с помощью ACPI можно указать роутинг прерываний и для систем без APIC (вместо использования таблицы $PIR).

MSI


(вики)

Предыдущий вариант с APIC хорош, но не лишён недостатков. Все эти линии прерываний от устройств усложняют схему, и увеличивают вероятности ошибок. На смену шины PCI пришёл PCI express, в котором линии прерываний решили просто-напросто убрать. Чтобы сохранить совместимость, сигналы о возникновении прерываний (INTx#) эмулируются отдельными видами сообщений. В этой схеме логическое сложение линий прерываний, которое раньше производилось физическим соединением проводов, легло на плечи PCI мостов. Однако поддержка legacy INTx прерываний — это лишь поддержка обратной совместимости с шиной PCI. На деле PCI express предложил новый метод доставки сообщений о прерываниях — MSI (Message Signaled Interrupts). В этом методе для сигнализации о прерывании устройство просто производит запись в MMIO область отведённую под LAPIC процессора.

Если раньше на одно PCI устройство (то есть на все его функции) выделялось всего 4 прерывания, то сейчас сейчас стало возможным адресовать до 32 прерываний.

В случае с MSI нет никакого sharing для линий, каждое прерывание соответствует своему устройству.

Прерывания MSI решают также ещё одну проблему. Допустим устройство проводит memory-write транзакцию, и хочет сообщить о её завершении через прерывание. Но write транзакция может быть задержана на шине в процессе передачи (о чём устройство никак не знает), и сигнал о прерывании придёт до процессора раньше. Таким образом CPU будет читать ещё невалидные данные. В случае если используется MSI, информация об MSI передаётся также как и данные, и раньше прийти просто не сможет.

Следует заметить, что прерывания MSI не могут работать без LAPIC, но использование MSI может заменить нам I/O APIC (упрощение дизайна).

В последствии данный метод получил расширение MSI-X. Теперь каждое устройство может иметь до 2048 прерываний. И стало возможным указывать индивидуально каждому прерыванию на каком процессоре оно должно выполняться. Это может быть очень полезно для высоконагруженных устройств, например сетевых карт.

Для поддержки MSI не требуется никаких дополнительных таблиц BIOS. Но устройство должно сообщить о поддержке MSI в одной из Capability в своём PCI Config, а драйвер устройства должен поддерживать работу с MSI.

Заключение


В данной статье мы рассмотрели эволюцию контроллеров прерываний, и получили общую теоретическую информацию о доставке прерываний от внешних устройств в x86 системе.

В следующей части мы посмотрим как на практике задействовать в Linux каждый из описанных контроллеров.

Ссылки:

habr.com

Высокий пинг в игре? Лезем в настройки сетевой карты. Часть 2

Почему высокий пинг в играхВ этой статье будут рассмотрены настройки сетевой платы, которые теоретически могут снизить высокий пинг в игре, победить лаги и как то повлиять на fps. Из первой части мы поняли, что динамичные многопользовательские онлайн игры используют протокол UDP, поэтому при ее настройке будем это учитывать. Обращаю внимание, что так сбить высокий пинг и убрать лаги получится, если у вас слабый компьютер и «хорошая» сетевуха или наоборот. Играясь с этими параметрами, нужно пробовать переложить нагрузку на то железо, которое у вас не испытывает проблем с производительностью. И итогом всей этой битвы и мучений, может быть станет выигрыш в несколько миллисекунд.

 

Почему пинг высокий и как его понизить?

В первой части (из серии статей) мы пробовали победить высокую сетевую задержку с помощью настройки MTU. В этой рассмотрим и узнаем, какие настройки сетевой платы пригодятся любителям игр.

Jumbo FrameJumbo Frame — Jumbo Packet — Большой кадр:
Использование этого параметра, наверно только гипотетически поможет снизить пинг в играх и наверно какая то выгода будет во время долгих массовых сражений и осад, когда в одну секунду генерируется очень приличное количество трафика. Дело в том, что использование больших кадров должно быть настроено у всех участников взаимодействия, как у клиента и сервера, так и транзитных узлов. Но за пределами вашего провайдера (да и у самого провайдера) mtu всегда примерно равен 1,5 кб плюс\минус десятки байтов. Если использовать его в локальных сетях (где можно точно проконтролировать эту настройку у всех), то там пинг зачастую и так достаточно низкий.
В чем плюс? Если использовать 9 кб у всех участников, вместо 1,5 кб, то для обсчета одного кадра потребуется в 6 раз реже задействовать процессор. Что должно лучше сказаться на прибавке фпс.
В чем минус? Если использовать его только на клиенте, при отсылке на остальных узлах пакет будет фрагментирован, в лучшем случаем на 6 частей, а при mtu <1500 может и на более. Которые в итоге будут переданы на каждый последующий узел, и где он должен попасть на сервер без потерь и корректно собран в один целый. В век высоких технологий, сбор и разбиение проходят быстро, но тем не менее, не всегда возможно предсказать насколько будет загружено оборудование обрабатывающее эти фрагменты. И эта фрагментация и загрузка транзитных узлов и может привести к росту пинга.
Значение: Выкл.

Checksum Offload — IPv4 Checksum Offload — Контрольная сумма разгрузки IPv4:
Если ваш адаптер имеет такую функцию, то включите ее. Это позволит освободить центральный процессор от расчета и проверки контрольных сумм для отправляемых и принимаемых пакетов. Что должно положительно сказаться на фпс в игре. Но бывают и обратные случаи, когда отключение это функции позволяет улучшить пинг и снизить лаги. Так что, попробуйте поиграться с этим параметром, при наличии лагом и скачущего пинга.
Значение: Вкл для Tx и Rx

Speed & Duplex — Link Speed/Duplex Mode — Скорость и дуплекс 
Тут нужно проверить, что у вас стоит 10\100\1 Гб дуплекс. При использовании режима полудуплекс, пинг становится выше.
Можете в этом убедиться, переключив режимы и пингануть любой сервер. 
Значение: Дуплексный режим

Flow Control — Управление потоком 
Данная настройка призвана решать проблему, когда входящий трафик приходит с такой скоростью, что создает угрозу переполнения буфера на сетевом оборудовании и тогда источнику отправляется команда, чтобы он выждал паузу и снова повторил отправку данных, через какой-то промежуток времени. Если же такой команды не послать, то из-за перегрузки часть данных просто потеряется, т.е. в игре это гарантированный лаг. Вроде бы хорошая и правильная и нужная функция, но только для тех кто скачивает большие объемы. В играх как правило трафик приходит не в таком интенсивном режиме. Если же кадр паузы будет послан, то одномоментно увеличится пинг. Т.е. если у вас в играх частые лаги и высокая сетевая задержка, попробуйте поиграться с этим параметром.
Значение: Выключить

Transmit Buffers — Буферы передачи / Receive Buffers — Буферы приема
Зачастую буфер приема имеет в настройках больший размер, так как трафика мы скачиваем больше, чем отдаем. Здесь главное придерживаться правила, что буфер приема минимум должен быть равен 100*mtu. Если mtu=1500 байт, то размер буфера должен быть не меньше 147 кб. Если будет меньше, то в массовых событиях в игре, с генерацией большого количества трафика, возможна потеря пакетов. Прямого влияние на пинг, данные настройки не оказывают. Скорее это касается лагов. Так что убедитесь, что данные параметры выставлены по умолчанию и не имеют слишком малого размера.
Для буфера передачи вполне подойдет заводское значение. Вряд ли на клиенте в игре можно на генерировать столько трафика, чтобы пакеты при этом не поместились в буфер.

TCP/UDP Checksum Offload IPv4/IPv6 — Контрольная сумма разгрузки TCP/UDP IPv4/IPv6
Чтобы узнать, дошел ли пакет до адресата целый и без ошибок, для проверки на другой стороне в него добавляют контрольную сумму, которая рассчитывается на основании данных пакета. Если у вас имеется данная функция в настройке, попробуйте ее включить для обоих типов трафика. Таким образом все вычисления будет проводить не процессор, а сетевой адаптер, что в итоге должно положительно сказаться на фпс в игре.
Значение: Rx & Tx Включить

Interrupt Moderation — Модерация прерывания
При получении одного пакета, сетевой адаптер вызывает прерывание. Когда идет интенсивный обмен трафиком такие прерывания создают нагрузку на процессор. И чтобы снизить ее, придумали накапливать события в течении какого-то времени и после этого вызывать прерывание (IRQ). Таким образом реже задействуя процессор. У такого способа есть свои плюсы, описанный ранее и так же можно сказать, что вся прелесть этой функции раскрывается для тех, кто много качает.
Из минусов, чтобы пакет был обработан, он ожидает, пока отработает таймер. Это то и добавляет пинга в игре.
Значение: Выключить
Receive Side ScalingReceive Side Scaling — RSS — Получение бокового масштабирования
Это интересный и нужный механизм для обладателей многоядерных процессоров. При включении его, пакеты делятся по потокам и каждый поток может обрабатывать отдельный процессор. Т.е. задействуются все ядра, что должно положительно сказаться на производительности в целом и на пинге в частности. Если эта функция выключена, весь трафик обрабатывается одним ядром.
Но все эти преимущества будут, если драйвер написан без ошибок. Иначе, бывают случаи, когда после включения начинаются проблемы и деградация производительности. Если вы впервые включаете его, внимательно понаблюдайте за сетью какое-то время.
Значение: Включить

Large Send Offload IPv4/IPv6 — Giant Send Offload — Разгрузка при большой отправке IPv4/IPv6
Фрагментацией пакетов данных при отправке будет заниматься сетевой адаптер, а не программное обеспечение. В идеале аппаратное фрагментирование проходит быстрее, меньше задействуется процессор, что в итоге для любителей игр должно положительно сказаться на пинге и фпс.
Есть еще настройка Large Send Offload v2, она выполняет ту же функцию, только для пакетов покрупнее. Иногда ее включение плохо влияет на производительность сети.
Значение: Включить

И в заключении коротко про пинг и представленные настройки

Некоторые параметры у разных производителей называются по-разному. Если вы у себя их не нашли, значит производитель не предусмотрел их настройку.
Вы должны понимать, что рекомендуемые здесь значения ориентированы на снижение пинга. Поэтому для любителей торрентов, данные параметры могут негативно сказаться на производительности и вызвать повышенную нагрузку на систему.
Все манипуляции с настройками сетевого адаптера обязательно проводите поэтапно. Не стоит все увиденое применять на практике сразу и одномоментно. На разных сетевых платах, эти настройки могут показать разное поведение.
Так же конечный результат зависит и от прямоты рук программистов, которые писали драйвера.
Надеюсь эта статья открыла что то новое для вас и помогла, хоть чуть-чуть, снизить высокий пинг в любимой игре.
Продолжение тут: третья и четвертая части

Подробности
Опубликовано: 01.09.2016 г.

soft-tuning.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *