Windows XP - Справочник
Главная > Что такое NTFS > Жесткий диск HDD > Функция Bus Master

Функция Bus Master

Функция Bus Master (дословно Хозяин Шины, ранее по ГОСТ в нашей стране - задатчик на шине) введена в контроллеры EIDE с приходом процессоров Pentium. Что это такое? Классический способ приема данных от какого-либо устройства следующий - процессор выполняет команду чтения порта, считывает байт или слово данных в свой регистр, после чего переписывает этот байт или слово в память, затем повторяет эту процедуру до тех пор, пока вся необходимая информация не будет считана из устройства в память. Если бы процессору больше нечего было делать, то этот способ всех бы устраивал. Но с появлением многозадачных операционных систем стало слишком накладно использовать процессор для операций ввода/вывода. Поэтому контроллеры внешних устройств (EIDE в частности) стали оборудоваться как бы собственными процессорами ввода/вывода. С появлением шины PCI, первой реально многопользовательской шины в архитектуре IBM PC реализация этой идеи стала совсем простой.
Что происходит в этом случае? Процессор программирует контроллер EIDE на шине PCI, указывая ему, откуда он должен взять данные и куда в память их положить. После получения этих указаний контроллер захватывает управление шиной PCI, а драйвер Bus Master управляет шиной доступа к памяти и совместно с контроллером выполняет операции по считыванию данных с жесткого диска или CD-ROM непосредственно в память с помощью контроллера прямого доступа в память (DMA - Direct Memory Access). При таком способе обмена данных процессор свободен после выдачи команд контроллеру EIDE и может заниматься любыми другими делами. Надо только понимать, что процессор может в это время не получить доступ к шине PCI и основной памяти.
Функция Bus Master делает интерфейс EIDE SCSI-подобным (хотя это только подобие - современные контроллеры SCSI на шине PCI также могут работать в режиме Bus Master и, кроме этого, "интеллектуально" управлять своей периферией). Если доступ к диску выполняет только одна, запущенная в данный момент программа, то значительного выигрыша в производительности не будет. Но достаточно запустить несколько приложений, работающих с диском, как заметное повышение производительности будет очевидным. Это легко проверить, запустив одновременно, например, два Winbench 99 с тестом диска с Bus Master драйверами или без оных. В контроллерах IDE из наборов микросхем фирмы Intel, ранее называемых Triton, встроена функция Bus Master. Intel называет эти контроллеры PIIX (Pci Isa Ide aXcelerator). Пока Intel выпустил 4 таких контроллера 80371FB (PIIX), 82371SB (PIIX3), 82371AB и 82371EB (PIIX4). Предпоследний из них входит в набор Intel 430TX - это первый Intel контроллер IDE с поддержкой режима Ultra DMA/33. Сейчас, в основном, используется 82371AB&EB, включая и материнские платы на Pentium II/III. На платах с набором 80440BX применяется микросхема 82371EB, функционально ничем не отличающаяся от 82371AB, но допускающая обращение к ней со стороны процессора с частотой 100 MHz. В наборах i810, i810e, i820, i840 поддерживается стандарт UltraDMA/66, а в наборах i815E, i815EP и далее поддерживается UltraATA100.
Следует заметить, что Windows 95 OSR2 не совсем корректно работала с парой "UltraDMA жесткий диск - UltraDMA контроллер". Фирма Western Digital отмечает высокую вероятность ошибок при работе в этом случае и настоятельно рекомендует использовать драйвера Bus Master от Intel, поскольку в их работе ошибок нет. Сама Microsoft также подтверждает существование проблемы.
В Windows 98 драйвера IDE работают корректно. Intel прекратила разработку отдельных драйверов Bus Master для Windows 98 до выхода наборов i8xx. В Windows NT функция Bus Master может быть включена с как с помощью специальной программы , так и драйверов от Intel.