Тогда возникает ещё два вопроса. Совместим ли доисторический хлам с ATA драйвером? Будет ли использоваться PIO48?
Нет, похоже максимальный размер блока для READ MULTIPLE - 16 секторов. Мой драйвер работал параллельно с виндовым, но всё равно не понимаю как.
Search found 1244 matches
- Sun May 24, 2015 10:49 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
- Sat May 23, 2015 9:17 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: Скорость работы с IDE дисками
Почитал разного, в том числе какую-то суровую документацию. Стала вырисовываться целостная картина. Sector count касается передачи данных между диском и внутренним буфером. Передача между буфером и оперативной памятью осуществляется по одному сектору с последующим ожиданием, поэтому команды READ SEC...
- Thu May 21, 2015 7:48 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: Скорость работы с IDE дисками
Да, interrupt storm, но судя по "Preempting/Preventing IRQs from firing", может не получится их уверенно отключить - сейчас вроде используется Regular Status port. Но их можно и обрабатывать. Что лучше?
- Wed May 20, 2015 11:39 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: Скорость работы с IDE дисками
Serge, может всё-таки по-подробней? Я когда свой драйвер писал, прерываниями не пользовался. И сейчас ничего не удалял, выходит они и раньше не обрабатывались.
- Wed May 20, 2015 10:58 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: Скорость работы с IDE дисками
Проблема в обратном: при обращении к младшим секторам всегда будет использоваться LBA28, что означает падение скорости в несколько раз по текущей причине.
А если да, то что тогда делать?
Мой hd_drv.inc? Совсем весело... Я же не использую DMA, откуда прерывания?Под Bochs не зависает
А если да, то что тогда делать?
- Wed May 20, 2015 6:19 pm
- Forum: Kernel
- Topic: Дока по подсистеме событий ядра.
- Replies: 8
- Views: 10301
Re: Дока по подсистеме событий ядра.
icetux, да, мы тоже часто задаёмся этим вопросом...
- Wed May 20, 2015 5:36 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: Скорость работы с IDE дисками
А там и не было проверки, LBA48 использовалось если адрес не влазил в 28 бит. А в LBA28 только один байт под количество, сильно замедлит младшие сектора. Сейчас зависает почти сразу же. Мне кажется, что в теме "KolibriOS freezes while accessing hdd" та же проблема - наверно никто не провер...
- Wed May 20, 2015 4:42 am
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: Скорость работы с IDE дисками
Ладно, начнём с PIO, раз уж он есть. Отключил DMA, старые вызовы fs работали нормально, новые вешали систему сразу после успешного копирования, то-есть несколько чтений, несколько записей, disk_synk, зависание. После перехода на FFFF секторов стало только хуже. Но возможно проблема не в драйвере, а ...
- Sun May 17, 2015 6:12 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: NTFS
Serge, выбора нет, сейчас летает как кирпич. Линейно по 4 кб смотреть наверно долго... А если бинарная проверка? Может такое быть, что буфер кажется непрерывным по началу и концу, но в середине кусок из другого места?
- Sun May 17, 2015 5:13 am
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: NTFS
В идеале нужно убирать вообще всё кэширование. До сих пор не понял, почему было лень сделать нормально, но не лень делать такой жуткий костыль. Буфер запросто может быть фрагментирован, если файл большой, а главное, при редактировании карты раздела. Все страницы по 4 кб? По 2 Мб нет? Нужно проверять...
- Sat May 16, 2015 6:01 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: NTFS
Serge , извиняюсь, забыл что при копировании происходит сначала чтение, а потом запись. Тогда у меня получается целых 2 Мб/с ! Почитал wasm, разобрался. Благодаря хитрожопому оформлению, посредине драйвера находится структура IDE_descriptor_table. read_dma/write_dma почему-то начинаются с конца - к...
- Sat May 16, 2015 2:35 am
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: NTFS
Ну с PIO всё ясно, а вот в DMA не разбираюсь... Буфер просто лежит в стеке. Мне нужен инструктаж.
- Fri May 15, 2015 11:04 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: NTFS
DMA :) по 16 секторов :D А тонкие у вас, однако, тролли :wink: Смешнее чем компресс для трупа :lol: PIO 4 даёт 16 мб/сек :) PIO 0 даёт 3 мб/сек :) А тут DMA на 1 мб/сек :lol: Это был бы позор ещё тогда, когда кто-то додумался сделать чтение по 1 сектору. Получается, что ntfs нужно откладывать до луч...
- Fri May 15, 2015 7:04 pm
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Re: NTFS
Почему? Там же 2 байта под количество; Worker procedures take max 16 sectors per time
- Fri May 15, 2015 12:02 am
- Forum: Drive subsystem
- Topic: Скорость работы с IDE дисками
- Replies: 146
- Views: 81582
Скорость работы с IDE дисками
А теперь про жуть. Общение с диском производится блоками по 16 секторов. Чтобы продолжить чтение/запись, диск должен сделать полный оборот. Диск делает 120 оборотов в секунду. Таким нехитрым способом скорость ограничена до 960 кб/сек. Не знаю, на каком жёстком диске был выбран такой оптимальный разм...