Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Nov 25, 2020 11:41 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 147 posts ]  Go to page Previous 1 2 3 4 510 Next
Author Message
PostPosted: Thu May 21, 2015 11:02 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Лучше всего обрабатывать прерывания. Создать событие на каждый контроллер и активировать в обработчике прерываний. В отдельном потоке ядра для обслуживания контроллеров выполнять основную работу.


Top
   
PostPosted: Sat May 23, 2015 9:17 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Почитал разного, в том числе какую-то суровую документацию. Стала вырисовываться целостная картина. Sector count касается передачи данных между диском и внутренним буфером. Передача между буфером и оперативной памятью осуществляется по одному сектору с последующим ожиданием, поэтому команды READ SECTORS после каждого сектора генерируют прерывания. В своём драйвере я использовал команду READ MULTIPLE EXT (29h), она выдаёт данные блоками. Перед ней нужно слать SET MULTIPLE MODE, но по умолчанию выставляется максимальный размер блока (видимо равный размеру внутреннего буфера). У меня SATA в режиме IDE, буфер 16 мб - потому и работало.
Чтобы сделать нормальную поддержку LBA28 (если она ещё кому-то нужна), надо будет сделать проверку так-же как и проверку DMA. Причём ATA поддерживает DMA с самого начала, тогда не совсем понял, в каких случаях будет использоваться PIO?


Top
   
PostPosted: Sun May 24, 2015 1:48 pm 
Offline
Just Flooding
User avatar

Joined: Thu Dec 11, 2014 1:31 am
Posts: 173
PIO будет использоваться для обратной совместимости с кучей доисторического хлама и для мат.плат не включающих поддержку DMA в силу своей допотопности, либо при объединении в soft-RAID, JBOD-RAID нового винта с допотопным т.е. никогда.


Top
   
PostPosted: Sun May 24, 2015 10:49 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Тогда возникает ещё два вопроса. Совместим ли доисторический хлам с ATA драйвером? Будет ли использоваться PIO48?

Нет, похоже максимальный размер блока для READ MULTIPLE - 16 секторов. Мой драйвер работал параллельно с виндовым, но всё равно не понимаю как.


Top
   
PostPosted: Mon May 25, 2015 5:36 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Что-то теория не сходится с практикой. PIO mode 4 обещает скорость до 16 МВ/с. Вроде всё сделал правильно, а скорость не изменилась. Использовал READ SECTORS EXT с отгрузкой по одному сектору. Может это у меня что-то? Сравните скорость копирования ntfs -> ntfs и другие расклады. (Меня интересует IDE, но можно проверить и USB hard drive, там разница должна быть огромной)


Top
   
PostPosted: Mon May 25, 2015 6:12 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Или вот READ MULTIPLE EXT с отгрузкой по 16 секторов. Скорость не изменилась, но индикатор жёсткого диска теперь почти не светится. В вашем караване точно больше нет верблюдов? Может маленькие? Или спрятались... верблюды ниндзя ?!


Top
   
PostPosted: Mon May 25, 2015 9:04 pm 
Offline
Just Flooding
User avatar

Joined: Thu Dec 11, 2014 1:31 am
Posts: 173
На всякий случай предупрежу, если на SATA НЖМД перемычка, лучше снять.
Тебя интересует IDE режим или IDE - устоявшееся название класса дисков, по названию их кабеля?
Для USB использовать эмуляцию SCSI или SATA диска?
Для штатного SATA могу предопределенно выставить конкретный режим от самых первых PIO до более-менее современных DMA режимов. Соответственно, в каких режимах потестировать?
Будет ли существенная разница от установки SATA в слот мастера или ведомого?


Top
   
PostPosted: Mon May 25, 2015 10:39 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Вижу будут проблемы. Нужно тестировать в живую, как я, а это наверно никто делать не будет. Я пока ещё себе ничего не запорол, но у меня и терять нечего. Изначально я думал, что проблемы со скоростью только на уровне файловой системы; в ntfs.inc эта проблема устранена. Потом оказалось, что тоже самое и в драйверах; работаю над IDE драйвером hd_drv.inc, пока только PIO32 и то не оправдывает ожиданий... совсем. Боюсь, что могут быть ещё проблемы... может со скоростью PCI, на ней же всё сидит. Интересует реальный механический диск в IDE режиме, остальное не важно. Ну и, если верить CleverMouse, в USB драйвере должно быть всё кошерно, то-есть ntfs уже сейчас должен летать. Тоже можно проверить, но опять таки нужен реальный диск, подключённый по USB.


Top
   
 Post subject:
PostPosted: Mon May 25, 2015 11:35 pm 
Online

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1163
Могу подключить реальный диск через USB-SATA/IDE переходник. Надо проверить скорость чтения/записи, верно? Утилитой fspeed можно это сделать?

_________________
я лишь учусь


Top
   
PostPosted: Tue May 26, 2015 2:30 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
Только не fspeed. Мне лень разбираться, но наверняка что-то сферическое в вакууме. Писал тот же Марио, мог что-то нахимичить с учётом особенностей своих драйверов. Берёшь часы, засекаешь время копирования файла. Погрешность раза в два не критична - на кону гораздо больше. Меня интересует конечный результат, теорией сыт по горло. И с данными осторожно, я ничего гарантировать не могу.


Top
   
PostPosted: Tue May 26, 2015 7:46 am 
Offline
Just Flooding
User avatar

Joined: Thu Dec 11, 2014 1:31 am
Posts: 173
Ограничение в USB 2.0 даст только скорость для разгона, но не для полета. :D
Тестировать надо в FAT, EXT, NTFS по отдельности, а копировать с RAM-диска и на него...


Top
   
PostPosted: Tue May 26, 2015 9:29 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
USB 2.0 High-speed 25—480 Мбит/с (видеоустройства, устройства хранения информации) - гораздо больше чем 2 МБ/с
Новые функции сейчас только в NTFS, остальное должно работать одинаково.


Top
   
PostPosted: Tue May 26, 2015 3:28 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1625
Время копирования файла зависит от того, как копировать. И от того, насколько фрагментированы файл-источник и файл-назначение. Копирование в KFar, например, не показатель.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Tue May 26, 2015 3:42 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1274
CleverMouse wrote:
kfar копирует блоками по 64K
Точно, kfar не пойдёт. К тому же, NTFS пока не умеет дописывать файлы.


Top
   
PostPosted: Wed May 27, 2015 1:12 am 
Offline
Just Flooding
User avatar

Joined: Thu Dec 11, 2014 1:31 am
Posts: 173
Pathoswithin wrote:
Тогда возникает ещё два вопроса. Совместим ли доисторический хлам с ATA драйвером? Будет ли...
Тот, который IDE-диск, вроде, да, а на счет 48 сейчас не вспомню, но такой драйвер точно должен уметь работать без LBA :mrgreen:


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 147 posts ]  Go to page Previous 1 2 3 4 510 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited