OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 10:04

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 59 ]  Přejít na stránku 1, 2, 3, 4  Další
Autor Zpráva
PříspěvekNapsal: 16.08.2013, 16:33 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Lanex píše:
Ahoj, rád bych se zeptal na časování ZX Spectra s DMA. Když DMA přenáší data, dočetl jsem se že by to mělo trvat 4 takty…. je to tak? A jak ho ovlivňuje ULA v případě kdy vykresluje videoram? Ovlivňuje ho stejně jako ovlivňuje CPU? A co dělá během té doby CPU? Stojí? Běží pomaleji? Běží normálně? Vybouchne? :) Díky moc


Z80-DMA ma viac rezimov casovania. Jeden z rezimov (najviac pouzivany kvoli kompatibilite) je casovanie presne navlas totozne s procesorom Z80-CPU. Takze elektronika okolo procesora (vsetky I/O porty, ULA, pripadne budice zbernice) vtedy nema sancu poznat ci s nou pracuje Z80-CPU, alebo Z80-DMA.

ULA ovplyvnuje (spomaluje) DMA prenosy presne tak isto ako akekolvek ine prenosy vykonavane pomocou procesora. Ked CPU alebo DMA nieco robi s videoramkou, a ULA zrovna chce z videoram citat, podrzi signal CLOCK v 1, precita co potebuje a potom zase dalej generuje CLOCK ako treba. Na +2A/+3 sa CPU a DMA zastavuju pomocou vstupu WAIT. Takze DMA je ulou spomalovane presne tak isto ako CPU.

Inak standartne casovanie sa vyuziva v BSDOSe pri load/save z diskety, a tak isto ho pouzivaju aj moje DMA dema Level 1 a 2.

Na ZX Spektre sa daju pouzit aj ine rezimy casovania - konkretne jeden zbernicovy cyklus co normalne trva tri takty, sa da skratit na dva takty. Je takto mozne preniest jeden bajt za 4T. Napriklad 2T nacitanie z pameti a 2T bude OUT na #FE - daju sa takto nakreslit zvysle pruzky v borderi siroke 1 atribut - vid moje DMA demo Level 3.

DMA sice umoznuje skratit jeden zbernicovy cyklus az na jeden jediny takt (takze kompletny prenos jedneho bajtu by trval 2T), ale na ZX Spektre je to nepouzitelne, pretoze dynamicke ramky maju multiplexovanu adresu a vyzaduju aspon dva takty (pre zapis oboch casti adresy). A tak isto tusim aj ULA ma nejake psychycke problemy s 1T casovanim, ale teraz nie som si isty. V kazdom pripade, pri pokuse o nastavenie 1T na cyklus to zamrzne a nepomoze ani tvrdy reset ZX Spektra :bang: Takze v podstate ako keby procesor vybuchol :lol:

Z80-CPU ma specialny vstup, vola sa BUSRQ. Ked DMA potrebuje nieco urobit, nastavi procesoru aktivny BUSRQ, procesor dokonci aktualny zbernicovy cyklus, zastavi sa a uvolni zbernicu (datovka, adresovka aj riadiace signaly su v tretom stave). Vtedy DMA urobi co potrebuje, potom vypne aktivny BUSRQ a tym sa procesor dozvie ze zbernica je uz volna a moze dalej pokracovat v praci.

Cize, ak chceme urobit LDIR pomocou DMA: NaOUTujeme do DMA vsetky potrebne parametre (odkial, kam, kolko, casovanie, prikaz na start prenosu), DMA potom posle proceoru signal BUSRQ, vykona prenos a po skonceni prenosu procesor bezi dalej. Pocas samotneho prenosu procesor stoji a nic nerobi. Takze z hladiska softweru, v podstate hned po dokonceni posielania parametrov do DMA je vsetko hotove :)

Pri nahravani z diskety to funguje trosku inak. Vtedy sa po naOUTovani parametrov do DMA nespusti hned prenos, ale procesor normalne pokracuje v cinnosti. Az FDC radic nacita z diskety bajt, ohlasi to DMAcku (signalom DRQ), DMA nasledne zastavi procesor, prenesie bajt z FDC radica do pameti, a po prenose bajtu zase procesor pokracuje v cinnosti. A takto postupne prenasa vsetky bajty daneho sektora. Takze citanie sektora z diskety takymto sposobom funguje (dalo by sa napisat) "na pozadi" a procesor si kludne moze popri tom robit svoje vlastne veci (napr. hrat AY hudbu z prerusenia:) ).


Nahoru
 Profil  
 
PříspěvekNapsal: 16.08.2013, 17:20 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Lanex píše:
Díky moc za info. Ještě dotaz: A v tom "kompatibilnějším režimu" popsaném na začátku trvá přenos 1 byte také 4 takty?
Nie, tam je casovanie presne podla Z80-CPU. A procesoru trva jeden zbernicovy cyklus 3T. Takze 3T nacitanie bajtu + 3T zapis bajtu = 6T celkovo trva prenos jedneho bajtu.


Nahoru
 Profil  
 
PříspěvekNapsal: 17.08.2013, 15:32 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Ja si s DMA jeden cas take hral a prisel jsem tehdy na par zadrhelu:

- jednak tusim jak pise BUSY, kdyz se nastavil prilis rychly rezim pristupu do ZX ram, tak ZX totalne vytuhlo a nepomohl ani reset. Bylo nutne vypnout a znovu zapnout cely pocitac.

- jako dalsi zajimavost je fakt, ze DMA se da schvalne nastavit spatne casovani (uz si nemapatuju presne o co slo) a po zahajeni DMA prenosu sice ZX nevytuhne, ale ULE se podela synchronizace, na TV se objevi cerna obrazovka a uprostred ZX obraz smrsknuty na vysku do nekolika malo mikroradku. Tedy zkouseno to mam na mem RGB monitoru COMMODORE 1084ST. Po ukonceni prenosu se obraz zase vratil do normalu. Behem tohoto "specialniho" efektu z monitoru vychazel podivny piskot a vypadalo to, ze to ULE nedela moc dobre...

A s tou rychlosti je to tak, ze mam odzkouseny rezim, kdy DMA posila v jedinem taktu CPU do border portu barvy. Konkretne jde o busyho DMA demo s textem v borderu. Tam cely efekt bezi v modu 2T cteni ZX ram + 2T zapis na port #FE. Ja jsem tam zamenil rychlost zapisu na port #FE na rychlost 1T ale kvuli dodrzeni casovani efektu jsem protahl cteni ZX ram na 3T. Dohromady opet 4T na prenos bajtu. A ono to funguje.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 17.08.2013, 17:15 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
VELESOFT píše:
A s tou rychlosti je to tak, ze mam odzkouseny rezim, kdy DMA posila v jedinem taktu CPU do border portu barvy. Konkretne jde o busyho DMA demo s textem v borderu. Tam cely efekt bezi v modu 2T cteni ZX ram + 2T zapis na port #FE. Ja jsem tam zamenil rychlost zapisu na port #FE na rychlost 1T ale kvuli dodrzeni casovani efektu jsem protahl cteni ZX ram na 3T. Dohromady opet 4T na prenos bajtu. A ono to funguje.

Je celkom mozne, ze casovanie 1T blbne iba pri praci s pametou kde je potrebne posielat adresu do dynamickych ramiek nadvakrat.

Btw. DMA umoznuje okrem nastavenia poctu taktov 1-4 na jeden zbernicovy cyklus este nastavit aj polovicnu sirku MEMRQ a IORQ. Mozno ze aj toto zblbo ulu.


Nahoru
 Profil  
 
PříspěvekNapsal: 17.08.2013, 22:28 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1611
Has thanked: 31 times
Been thanked: 357 times
Busy píše:
Btw. DMA umoznuje okrem nastavenia poctu taktov 1-4 na jeden zbernicovy cyklus este nastavit aj polovicnu sirku MEMRQ a IORQ. Mozno ze aj toto zblbo ulu.


Ano, myslim, ze to bylo pricinou. Ale slo jen o jednu jedinou kombinaci rychlosti prenosu a delek signalu.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
PříspěvekNapsal: 20.08.2013, 09:03 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 457
Bydliště: Kladno
Has thanked: 46 times
Been thanked: 118 times
tak to vypadá že jsem se dozvěděl vše co jsem potřeboval. Díky ;-)

_________________
>>eLeMeNt, MB03+, Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 09.11.2020, 16:47 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 05.09.2013, 14:08
Příspěvky: 1067
Bydliště: Smolenice
Has thanked: 130 times
Been thanked: 473 times
css píše:
Dá se nějak rozumně dnes na ZX využít DMA? Resp. má podporu v nějakých šikovných programech? Má smysl ho implementovat na novou desku? Koukal jsem k Velesoftovi, existuje 5 her a 5 dem, co ho používají. Tak nevím, mám tu sice hromádku DMAček, chtěl bych s tím vyzkoušet trochu blbnutí, ale má to smysl pro nějakou reálnou a rozumnou činnost?
A pokud ano, který způsob adresování použít, který je na ZX standard?

DMA je v praxi využívané v MB-02+ a MB03 Ultimate. Primárne je používané na prenos dát z portu do pamäte a opačne (floppy, IDE). Vďaka DMA dokáže MB-02+ plnohodnotne využívať HD diskety. Ak existuje nejaký štandard na ZX, tak práve tento.

_________________
To err is human, but to really foul things up requires a computer.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 09.11.2020, 16:51 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
DMA (Direct Memory Access) obecne sluzi k rychlemu prenosu dat odniekial niekam. Ako zdroj a ciel prenosu moze byt bud pamet, alebo IO porty. Normalna Z80 ked robi blokove prenosy (ldir, otir...) tak pred kazdym bajtom znovu nacitava operacny kod instrukcie. DMA cip toto nerobi, preto vie prenasat data ovela rychlejsie.

Take DMA sa da velmi dobre vyuzit vsade tam, kde samotny CPU nestiha kopirovat data dostatocne rychlo. Alebo vsade tam, kde chceme aby sa data kopirovali rychlejsie, nez by to slo pomocou CPU.

Typicke vyuzitie DMA bola praca s HD disketami na MB02. Pri citani / zapise dat na HD disketu je datovy tok 2x rychlejsi nez pri DD disketach, preto bolo pre ulohu kopirovat data pouzite DMA. Samotne CPU tym padom nemusi robit ziadne casovo kriticke cinnosti, a moze sa asychronne venovat comukolvek inemu, napriklad prehravat AY hudby z prerusenia pocas prace s disketou :)

Dalsim typickym pouzitim DMA su multicolory. Vdaka rychlemu DMA prenosu sa stiha kazdy pixelovy riadok preniest vsetkych 32 atributov, to znamena ze na ZX Spektre je tym padom mozne mat "absolutny" multicolor - atributy velke 8x1 pixel po celej ploche PAPERu. Podobnym sposobom je mozne tiez kreslit do BORDERu v najvyssom moznom rozliseni ake ULA principialne umoznuje - jeden bod je velky 8x1 pixelov. Priklady takychto vyuziti mozno najst na Velesoftovej stranke.

Kazdy pristup do pameti pri Z80-CPU trva obecne 3T. DMA vie tento cas nastavovat v rozsahu 1T az 4T (plati pre U858D, Z80-DMA nepodporuje 1T)). Na ZX Spektre ale casovanie 1T pri praci s pametou nefunguje dobre, preto prakticky vyuzitelne je az od 2T. Cize 2T citanie a nasledny 2T zapis, to je prenos jedneho bajtu za 4T, cize pomocou DMA sa da kopirovat pamet rychlostou cca 875 kB/s. Pre porovnanie, klasicky LDIR robi iba 166 kB/s. Dlhsie casy pristupov 3T a 4T su z dovodu kompatiblity s CPU a pre pripad pouzitia pomalsich pameti ci periferii.

Takze pokial ta bavia multicolory, kreslenie do borderu, rychle 50 FPS animacie (DMA dokaze skopirovat celu obrazovku za cca polovicu frejmu), alebo proste len potrebujes velmi rychlo nieco niekam lopatovat, tak DMA je pre teba to prave orechove :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 10.11.2020, 10:31 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
css píše:
Jj tak nějak se mi potvrdilo, co jsem si myslel :) Obecnou teorii, k čemu DMA slouží znám, ale zajímalo mě praktické použití na ZX, zda existuje něco, nějaké super softy, kde by se využilo.

Jasne, ale toto zial nie je problem samotneho DMA. Obecne moc rozsirene nie je, v podstate az MB01 v roku 1992 ho priniesla do sveta ZX Spektra. Ma ho malo ludi (prakticky iba majitelia MB02/03/DataGear, takze ani softu sa na to moc nepise. Ak by bolo rozisrene v takej hojnej miere ako napr. 8255 ci AY, tak by nan bolo aj podstate viac softu - aplikacii, hier a hlavne dem (tam sa s nim daju robit velkolepe efekty).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 10.11.2020, 11:45 
Offline
Pan Štábní

Registrován: 11.11.2013, 10:29
Příspěvky: 1198
Has thanked: 359 times
Been thanked: 304 times
css píše:
Busy: Njn je to tak. Ještě dotaz, ty máš doopravdy prakticky vyzkoušené, že UA858D umí oproti Z80A-DMA nějaké režimy přenosu navíc? Skutečně je to tak? A nevíš, zda jsou někde i zdokumentované, neboli zda tady soudruzi v NDR provedli skutečné vylepšení své kopie proti originálu? A nebo je to jen nedokonalost z procesu kopírování a nelze se spoléhat, že to bude fungovat vždy, u všech Ux858D ze všech sérií?
To by také znamenalo, jestli to dobře chápu, že každý soft odladěný na originále Z80-DMA bude fungovat na U858, ale obráceně to platit nemusí?

To by me taky docela zajimalo. Kdysi jsem psal nejake rutiny pro modul DMA na Sharpa a mel jsem s tim casovanim nejake problemy. Uz presne nevim, pouzival jsem to pro kopirovani RAM<>RAM i IO<>RAM. Pokud by to bylo ruznou funkcionalitou origo cipu a NDR, tak by mozna vysvetlovalo. Ale uz presne nevim, co jsem tam mel za io. Informace jsem prave cerpal ze ZX. V jednom Sharpikovi mam DMA modul stale vlozeny ;-) tak by mozna chtelo ho 'probudit', co?

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 10.11.2020, 14:15 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
css píše:
Busy: Njn je to tak. Ještě dotaz, ty máš doopravdy prakticky vyzkoušené, že UA858D umí oproti Z80A-DMA nějaké režimy přenosu navíc? Skutečně je to tak? A nevíš, zda jsou někde i zdokumentované, neboli zda tady soudruzi v NDR provedli skutečné vylepšení své kopie proti originálu?
Ano, soudruzi z NDR to nielen "hlupo" skopirovali, ale este pri tom aj opravili drobne chybicky v povodnom navrhu Z80-DMA.

Uz si presne nepametam co vsetko tam to bolo, ale napriklad kvoli jednej chybe v originalnom Z80-DMA je nutne prenos port-pamet urcitym smerom programovat naopak, t.j. ze sa naprogramuje najprv opacny smer prenosu a potom sa prehodi zdroj s cielom. Dalsia vec je, ze cas citania/zapisu urcuju dva bity, co dava styri kombinacie: 1T,2T,3T,4T. Moznost 1T nie je u Z80-DMA podporovana, predpokladam ze to tiez bude nejaka chyba v navrhu Z80-DMA. Soudruzi z NDR aj toto opravili a UA858D uz oficialne podporuje aj prenos 1T, ktory by na ZX Spektre (ak si dobre pametam) mal fungovat aspon pre pracu s portami (kde nie je treba dalsi takt na multiplexovanie adresy pre dynamicke ramky).

V kazdom pripade ale plati, ze to, co vyuziva iba dokumentovane veci a spravne funguje na originalnom Z80-DMA, bude tiez zarucene fungovat aj na UA858D. Ale pokial clovek napise a odladi program na UA858D, tak to na originalnom Z80-DMA fungovat nemusi (ak sa zrovna trafi do veci, ktore na UA858D uz funguju korektne - vlastna skusenost).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 10.11.2020, 23:46 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
azorasoft píše:
Opravdu je to tak, ze zatimco pracuje DMA procesor muze asynchronne neco delat? Ja nekde cetl, ze CPU preda rizeni DMA a ceka az DMA ukonci operaci.


Je to jak pises. Pri aktivaci DMA, DMA pozada CPU o uvolneni sbernice a kdyz mu CPU preda sbernici, tak muze DMA prenaset data. Proto soucasne nemuze CPU nic dalsiho delat. Snad jedine dokoncit operaci v M5 cyklu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 11.11.2020, 09:20 
Offline
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 898
Has thanked: 51 times
Been thanked: 230 times
azorasoft píše:
Opravdu je to tak, ze zatimco pracuje DMA procesor muze asynchronne neco delat?

Čiste teoreticky áno, ale prakticky to pravdepodobne nikde nepoužili. Ale nesmel by DMA obvod požiadať o zbernicu priamo procesor signálom BUSRQ, lebo vtedy procesor zastane. A musel by mať procesor k dispozícii oddelenú pamäť, s ktorou by mohol bežať počas tohto stavu, zatiaľ čo DMA by ládovalo do druhej pamäte. A neviem si predstaviť situáciu, v ktorej by to bolo prínosné.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 11.11.2020, 11:43 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
hynek píše:
Martin1 píše:
A neviem si predstaviť situáciu, v ktorej by to bolo prínosné.
Bezne se to pouziva - a rekl bych, ze "vsude" ;) Ale nevim, jak to je relevantni take u ZX Spectra...
Pokud se budeme bavit o rychlem presunu dat v pameti z mista na misto, tak je nejspis cilem cas prenosu zkrati na nezbytne minimum.
Kdyz ale DMA pouzijeme pro efektivni prenos dat z/do perferie, tak tam to smysl dava. Prenos dat vetsinou nejakou chvili trva, ale pro presun dalsiho bytu se nepouzije preruseni a pomaly kod, ale vyhrazeny kanal DMA, ktery to obslouzi velice rychle. Jinak v CPU bezi normalni kod, ktery je jen "cas od casu" na chvilicku preruseny transakci na sbernici.
Ano, je to presne tak.

Pokial chcem DMA-ckom nahradzat jednorazove blokove prenosy (LDIR, INIR, OTIR...) potom to funguje tak, ze CPU nastavi do DMA, co sa ma robit. Nasledne na to DMA poziada CPU o zbernicu (signal /BUSRQ = bus request), CPU sa od zbernice odpoji a signalom /BUSACK (bus acknowledge) da DMAcku vediet, ze zbernica je volna. DMA si zbernicu prevezme, rychlo skopiruje co ma, a hned podom zbernicu vrati CPU-cku. V praxi to potom vyzera tak, ze pocas samotneho prenosu dat DMAckom CPU stoji a nasledujuci program zacne vykonavat az po skonceni prenosu.

Niekedy ale nechceme len rychlo skopirovat blok dat, ale nejaka periferia si potrebuje data brat/davat postupne, po bajtoch. Typicky priklad je seriovy prenos dat - tam nemozeme naraz cely blok dat nakopirovat do serioveho portu, ale musime sledovat co sa uz odvysielal bajt a az potom mozeme do neho poslat dalsi bajt. Typicke riesenie je ze CPU v slucke nacitava a vyhodnocuje nejaky priznak, a ked je priznak splneny, naOUTuje do seriveho portu dalsi bajt na odvysielanie. Dalsi mozny sposob ako prenasat bajty pomocou CPU je prerusenie - seriovy port dava najavo prerusenim ze uz je mozne preniest dalsi bajt. Vyhodou je ze CPU nemusi neustale v slucke testovat priznak a moze sa popri tom venovat akejkolvek inej cinosti.

V pripade pouzitia DMA pre taketo ucely to funguje presne ako pri vyssie spominanom prenose dat pomocou prerusenia. Prerusenie zo serioveho portu nie je pripojene na CPU, ale na DMA, a DMA je naprogramovane tak, aby pri tomto "preruseni" vzdy prenieslo prave jeden bajt. A rovnako ako vo vyssie spomenutom priklade, aj tu sa moze CPU zatial venovat akejkolvek inej cinnosti. Akonahle periferia nahodi signal, ze je pripravena na dalsi prenos bajtu, DMA poziada CPU o zbernicu, CPU sa od zbernice odpoji, DMA prevezme kontrolu nad zbernicou, prenesie bajt, a zbernicu vrati CPUcku, ktore moze dalej pokracovat vo svojej cinnosti.

Presne tento sposob prenosu dat po bajtoch je pouzity aj v MB02 pri praci s HD disketami. Vtedy idu bajty rychlostou 50 kB/s (co zodpoveda rychlosti serioveho portu cca 500 kbps) a pri tejto rychlosti by CPU uz nemuselo stihat sledovat v slucke ci je pripraveny dalsi bajt a ak ano, tak ho preniest. Prave preto je prenos dat robeny pomocou DMA. CPU si robi svoju (akukolvek) robotu, a ked je mozne preniest dalsi bajt, DMA si pozicia zbernicu a bajt prenesie. Z programatorskeho hladiska to potom vyzera tak, ze kazdych cca 20 us (co zodpoveda spomenutym 50 kB/s) sa prave vykonavana instrukcia iba predlzi o zopar taktov co v praxi sposobi mierne spomalenie beziaceho programu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Je k něčemu DMA?
PříspěvekNapsal: 11.11.2020, 11:55 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3025
Has thanked: 2191 times
Been thanked: 894 times
DMA používá taky jeden hodně populární supermoderní software. 8-)

V souboru /SYS/CONFIG/ESXDOS.CFG si můžete nastavit DMA=1

O účinnosti a rychlostních testech a porovnáních ve verzích esxDOSu pro základních 48K, s vypnutým a zapnutým čipem, však nevím.

Spíše se to projeví u pár set KB či několika MB, např. u mbéčka, viz viewtopic.php?f=39&t=8770&start=60#p105730

Verze 1 - převedená z TAPky na SD kartu (fajly s +3DOSovou hlavičkou), DMA v esxDOSu vypnuté (v CONFIG.SYS zapsáno DMA=0) - délka nahrávání 7:50s
Verze 2 - TAP optimalizovaná verze (speciální loader, vyžití DMA při kopírování do paměti mbéčka, headerless 32KB bloky dat nahrávaných samplů) - délka nahrávání 3:53s
Verze 3 - přímo spustitelná z esxDosu (fajly s +3DOSovou hlavičkou), délka nahrávání 15MB dema 1:27s!!!

_________________
// na co myslím, když sedím u oldkompů: celý příběh


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 59 ]  Přejít na stránku 1, 2, 3, 4  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 8 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz