G1-ATA Devices - Версия для печати +- DC-SWAT Forum (http://www.dc-swat.ru/forum) +-- Форум: Sega Dreamcast (/forum-2.html) +--- Форум: Hardware (/forum-9.html) +--- Тема: G1-ATA Devices (/thread-2111.html) |
RE: G1-ATA Devices - SWAT - 19.03.2014 09:02 (18.03.2014 23:23)megavolt85 писал(а):cybdyn писал(а):или идея копировать диск с привода на винт? (18.03.2014 23:23)megavolt85 писал(а):SWAT писал(а):В идеале надо ядро копировать на раздел с Ext2 (у этой файловой системы больше возможностей), а образы с играми на FAT32. Я говорю с расчетом того, что так быть не должно и я это постараюсь исправить. (18.03.2014 23:23)megavolt85 писал(а): сделал speedtest на чтение, G1ATA это нечто. SD (fat32 Kingston 16GB Class10) 3.22 Mbit/s , IDE1 (ext2) 17.42 Mbit/s , IDE (fat32) 18.25 Mbit/s Очень мало. SD должна выдавать не меньше 4.5 Mbit/s. У тебя на ПК при записи на эту SD какая скорость? Есть другие? IDE выдал тоже не фонтан, хотя для PIO Mode 0, где максимальная 26 Mbit/s, в принципе не плохо. В KOS как оказалось не настраиваются тайминги для шины и она похоже работает на минимальной скорости. Я сейчас в DS попробую выставить тайминги для PIO Mode 3 после сканирования устройств, посмотрим что будет. RE: G1-ATA Devices - cybdyn - 19.03.2014 10:31 попробовать ДМА? также читать не по одному сектору , как вариант сразу 4 (2048 байт)? RE: G1-ATA Devices - SWAT - 19.03.2014 12:59 (19.03.2014 10:31)cybdyn писал(а): попробовать ДМА? DMA еще реализовать надо, его пока нету. Каждая программа читает столько, сколько ей нужно, а не по одному или по 4 сектора. При копировании к примеру, буфер подбирается размером от 512 байт до 16 Кбайт, в зависимости от размера файла. При тестировании скорости, буфер имеет размер 16 Кбайт. Загрузчики образов, считывают все, что их попросила игра за раз, если образ конечно чистый ISO. В остальных случаях зависит от формата. В общем в драйвере G1-ATA нет никакой завязки на количество секторов, кроме как при режиме LBA 28, в котором максимальное количество одновременно запрашиваемых секторов может быть 256. А это 128 Кбайт, что более чем достаточно для одной пачки в любом случае. P.S. Обновил ядро и бутлоадер, попробуй потестировать скорость сейчас и загрузится с бутлоадера. RE: G1-ATA Devices - megavolt85 - 19.03.2014 14:16 SWAT, скорость ide до 10 мегабит упала , бутлоадер с ide систему не запускает комп на sd пишет 12 мегабайт в секунду RE: G1-ATA Devices - cybdyn - 19.03.2014 15:03 увидел в сырцах, есть такое 256 точно. но вот кстати вычитывание не совсем оптимально. - можно после появления drq прочитать h/l и считать больше чем 256 слов. - во вторых если и так ясно что минимально привод.драйв выдаёт 256 (на всякслучай поставить проверку ) то можно быстрее считвать если например вместо for(j = 0; j < 256; ++j) { *buf++ = IN16(G1_ATA_DATA); } n = 4; // 8, 16 ... for(j = 0; j < 256; j += n ) { buf[0] = IN16(G1_ATA_DATA); buf[1] = IN16(G1_ATA_DATA); buf[2] = IN16(G1_ATA_DATA); buf[3] = IN16(G1_ATA_DATA); buf += n; } по старому на одно чтeние идёт проверка и увеличения указателя, а так на эту группу. в асме ещё быстрее, но может компиль итак оптимайзит по ДМА можно глянуть как они B cdrom.c работают, и винту просто другую команду послать чтение-с-ДМА. следить только за дма а не DRQ. RE: G1-ATA Devices - SWAT - 19.03.2014 15:28 (19.03.2014 14:16)megavolt85 писал(а): SWAT, скорость ide до 10 мегабит упала , бутлоадер с ide систему не запускает О как... Блин я без девайса так запарюсь отладкой заниматься Вернул обратно. А бутлоадер с sd грузит? (19.03.2014 15:03)cybdyn писал(а): увидел в сырцах, есть такое 256 точно. Оптимизацией loop'ов заморачиваться уже давно не стоит, компилятор умеет это делать. Не понял каким образом чтение H/L поможет увеличить размер сектора (256 слов = 512 байт = 1 сектор), ты что-то путаешь. Или есть твик по чтению сразу нескольких секторов, без ожидания после каждого из них drq? RE: G1-ATA Devices - megavolt85 - 19.03.2014 15:31 SWAT писал(а):А бутлоадер с sd грузит?Нет на разделе с ext2 директории определяются как файлы RE: G1-ATA Devices - cybdyn - 19.03.2014 16:13 ну по идее в когда заполняешь АТА реги перед засылкой команды, там указывается сколько секторов, адрес и по идее размер H/L сколько винт должен предоставить за один DRQ, по идее это 16-битное число, в гдроме это H/L правда это я по аналогии с гд-приводом, и PC ATAPI приводы тоже так действуют. не уверен про PIO в АТА винтах. может в PIO ATA както по другому. т.к в пакетных (ATAPI) там же параметры вписываются через рег данных, соответвенно H/L свободны и обозначают !ожидаемое! число байт за DRQ, но что реально готово к чтению после DRQ смотрим в H/L. SWAT, я тоже потестировать хотел бы))), но пока в СПб, на след мог бы тоже потестировать, даже на осциле могу показать какая скорость... RE: G1-ATA Devices - SWAT - 20.03.2014 06:20 (19.03.2014 15:31)megavolt85 писал(а): на разделе с ext2 директории определяются как файлы Как проверял? Что показывает "ls -l"? (19.03.2014 16:13)cybdyn писал(а): SWAT, я тоже потестировать хотел бы))), но пока в СПб, на след мог бы тоже потестировать, даже на осциле могу показать какая скорость... Ну создавай аккаунт на Dropbox если у тебя его нету и говори мне логин. RE: G1-ATA Devices - cybdyn - 20.03.2014 07:39 это обязательно? если пока просто на мэйл скинуть? мне только ds или образ диска, я так понимаю? или нужно компилить? RE: G1-ATA Devices - cybdyn - 20.03.2014 07:51 см. Личку RE: G1-ATA Devices - SWAT - 20.03.2014 08:08 (20.03.2014 07:39)cybdyn писал(а): или нужно компилить? Ничего не нужно, возьмешь просто папку build. RE: G1-ATA Devices - megavolt85 - 20.03.2014 14:24 D$: ls -l DS_PROCESS: Reading /ide1 4096 bytes . 4096 bytes .. 708608000 bytes evil.iso 4096 bytes DS 452200 bytes boot.bin 650868736 bytes Spawn.iso Total: 6 files, 0 dirs На свежей сборке выполняю speedtest /ide/test получаю Can't write to file RE: G1-ATA Devices - SWAT - 20.03.2014 14:58 (20.03.2014 14:24)megavolt85 писал(а): D$: ls -l Понятно почему файлменеджер думает что это файл, из за размера. Я переделал определение файл/директория, теперь и в ext2 должно быть ок. Can't write to file - Раньше была бешеная скорость, потому что не было проверки на ошибку записи, теперь она есть, поэтому и сообщение такое. Писать не хочет ни на Ext2 ни на FAT? Я обновил немного FAT, кое что в самой библиотеке, кое что в реализации для ядра, надеюсь даст немного прироста в скорости. Так же сделал speedtest более честным, вместо блокировки треда с видео, а вообще его убираю на время. Вроде нашел косяк с монтированием других разделов FAT, исправил, попробуй. RE: G1-ATA Devices - megavolt85 - 20.03.2014 15:16 На разделе с ext2 директории стали открываться, speedtest на разделе с fat32 создаёт файл но не может в него записать, на разделе с ext2 файл не создаётся Если fat32 раздел второй, то теперь он стал монтироваться и открываться. Писать отказывается, независимо от файловой системы и устройства RE: G1-ATA Devices - SWAT - 20.03.2014 15:39 (20.03.2014 15:16)megavolt85 писал(а): На разделе с ext2 директории стали открываться, speedtest на разделе с fat32 создаёт файл но не может в него записать, на разделе с ext2 файл не создаётся Что же с записью то не так, явно проблема не в файловых системах... А speedtest на чтение не пробовал? Монтируются другие разделы FAT? Сегодня надеюсь добраться до дрима, посмотрю что у меня хотя бы с SD творится. RE: G1-ATA Devices - megavolt85 - 20.03.2014 16:12 speedtest на чтение показывает от 24 до 28 мегабит. Другие разделы с fat32 монтируются SWAT писал(а):Что же с записью то не так, явно проблема не в файловых системах... может cybdyn внесёт ясность, я думаю его логи помогут понять в чем проблема RE: G1-ATA Devices - SWAT - 20.03.2014 18:55 Отлично, 24-28 Mbit/s - вот это теперь можно смело назвать пределом PIO Mode 0. Значит с файловыми системами все в норме, теперь можно переключится на другое. Дело тут не только в G1-ATA, на SD тоже записи же нету Так что сомневаюсь что cybdyn даст инфу по этому поводу. К слову вот мои тесты SD: SDHC 4GB Transcend class 6: Код: Test: read Не заработали: microSDHC 8GB Transcend class 6 (в RC1 работала и была на 20 Kbytes/s быстрее 4GB карты) microSDHC 32GB Samsung class 10 Что-то не нравится мне KOS'овский драйвер... RE: G1-ATA Devices - megavolt85 - 20.03.2014 19:43 с записью бы разобраться, я б продолжил GD-Rip писать RE: G1-ATA Devices - cybdyn - 20.03.2014 21:20 могу попробовать. вообщемто я пока просто смотрел как код написан, я хоть там смотрю? http://sourceforge.net/p/cadcdev/kallistios/ci/4701ba49c8bb62a3fbd2be5655d8e6312112414a/tree/kernel/arch/dreamcast/hardware/g1ata.c#l380 |