Если говорить о поддержке DMA конкретным устройством, то BIOS должна настроить биты 5/6 в регистрах состояния BMI. Если отдельно взятый бит сброшен, то для соответствующего устройства не следует использовать DMA, ну или прежде чем это делать, нужно выполнить тщательное тестирование качественных и скоростных характеристик DMA. Опечатка.
Спасибо за слоть подробный ответ, а зачем мне использовать Bus Master? Я его роль не очень понимаю... В принципе я пришел к тем же выводам по поводу портов, но решал уточнить.
drem1lin 1.7 DMA DMA- Прямой доступ к памяти. Скорость работы шины памяти гораздо выше чем других шин. Так вот чтобы не загружать процессор передачью данных используют контроллер DMA. PCI DMA и ISA DMA отличаются по реализации. Но суть одна передача данных занимается отдельный блок. Что позволяет распаралеллить задачи и тем самым повысить быстродействие. Происходит это следующим образом пока процессор считает свои данные и работает с кэшем. DMA контроллер начинает записывать данные из памяти в устройство или наоборот из устройства в память. Или из памяти в память. «Прямой доступ к памяти» означает что устройство само обращается к памяти минуя процессор. Т.е. процессор не участвует в передачи. Так вот 8237A это устаревший контроллер прямого доступа он расположен на ISA шине(LPC). Так вот шина ISA имеет частоту 8МГц и разрядность 16. Так вот больше 16мбайт/с ты не сможешь выжить. Да и шина адреса ограничены 24 линиями. 2^24=16 мбайт Поэтому нет смысла его использовать лучше перейти на Bus Master с UDMA. Там минимальная скорость от 16 мбайт/с, а максимальная 150 мбайт/с. Да и шина адреса доступна вся. А про PIO я молчу мало того что скорость маленькая так еще и процессор вынужден простаивать пока данные не считаются.
drem1lin Bus Master - мастер шины. Относится к PCI. Это способность устройств PCI захватывать шину PCI. Тем самым осуществлять прямой доступ к памяти. Применительно к контроллеру IDE это способность реализации DMA и одноименный интерфейс. При этом HDD настраивается на режим UDMA. Bus Master работает в связке с UDMA. UDMA описан в спецификации ATA/ATAPI. Кстати UDMA тоже выполняет захват шины, но уже IDE. Bus Master описан: 1. На wasm.ru есть небольшая статья, но без подробностей. 2. Programming Interface for Bus Master IDE Controller 3. PCI IDE Controller Specification 4. Любой datashet на северный мост от Intel. 5 глава и главы посещенные SATA/IDE контроллерам.