Adam Klobukowski napisał/a:Realnie, ST wyciąga coś koło 1.2MB z DMA. Coś kiedyś (chyba) ppera pisał o możliwej prostej modyfikacji do podbicia tego nieco, było to w konteście playera filmów na ST.
W sumie to maksymalna prędkość jest taka jaką oferuje urządzenie końcowe, aktualnie jest to 1,2MB/s dla CosmosEx, a kiedyś 300kB/s z Megafile czy Satandiskiem :)
Pamiętam że w latach '90 była fama że DMA jest taktowane zegarem 10MHz, co dawałoby właśnie transfer na poziomie 1,25MB/s.
Technikalia są jednak takie że DMA taktowane jest zegarem systemowym 8MHz, ładuje/zapisuje dane z pamięci do swoich buforów FIFO z prędkością 4MB/s (konkretnie to 2MHz słowami 16bit), a na zewnątrz sygnały ACSI 'migają' 250ns (4MB/s).
PPera w kontekście filmów pisał o modyfikacji ale portu Cartridge: https://atari.8bitchip.info/movpst.php
Na swoim już nieistniejącym forum robił testy ACSI, podawał timing. Tutaj jest info o ACSI i 2MB/s https://atari.8bitchip.info/astide.php
Adam Klobukowski napisał/a:Cyprian napisał/a:MagiC wspiera 'Background DMA' ale MiNT chyba też?
MiNT wspiera 'w teorii'. Jest od tego API, ale do niczego nie przypięte, więc nic tego nie używa.
ok, nie wiedziałem tego. Do tej pory myślałem że program który ładuje dane z dysku do pamięci nie blokuje innych działających aplikacji.
Adam Klobukowski napisał/a:Cyprian napisał/a:W zwykłym TOS też da się 'odzyskać' moc procesora w trakcie odczytu z dyskietki/HDD ACSI, bo procesor większość czasu spędza w pętli czekając na zakończenie transferu DMA. Wystarczy swój proces uruchamiać na przerwaniach.
No tak, ale mieszanie z przerwaniami i równoczesne IO to proszenie się o kłopoty. Różne drivery hdd różnie z tym działają.
Z tego co wiem to nie ma nic złego w używaniu przerwań podczas IO. Znane mi systemy operacyjne na duże Atari używają przerwań podczas IO - VBL oraz TimerC, ze znanego mi oprogramowania są to też różne playery modów, YM czy midi, programy D2D (chociażby Cubase Audio).