Stránka 2 z 3

Napsal: 13 bře 2021, 14:36
od tomasjedno
Osmdesat píše:Když jsem uzemnil ještě ERROR, už to nefungovalo.
Jestli mluvíš o pinu 15 na DB25 konektoru, tak ten je aktivní v 0.

Napsal: 13 bře 2021, 16:49
od Osmdesat
Mluvím. No to jsem nevěděl, v dokumentaci není psáno, že je invertovaný.

Ještě otázka - jak rozchodím ECP režim? I když je v biosu nastavený režim ECP a ve windows ovladač ECP portu, když zapisuju na port data, stejně to jde přes CPU (CPU jede na 100 %).

Napsal: 13 bře 2021, 19:35
od tomasjedno
No jestli sypeš do toho portu nějaký velký objem, tak pokud to jede přes DMA, tak po tu dobu stejně procesor nemůže dělat nic užitečného. Wokňousy to asi vyhodnotí jako 100% vytížení, ne?

Napsal: 13 bře 2021, 19:38
od rnbw
Cez DMA to moze ist len v ECP mode.

Napsal: 13 bře 2021, 19:43
od lesana87
Proč by při DMA nemohl procesor nic dělat? Od toho přece je DMA, aby mohl procesor něco dělat a nemusel se starat o přenos dat mezi periferií a pamětí.

Napsal: 13 bře 2021, 19:51
od jardafiala

Napsal: 13 bře 2021, 20:19
od tomasjedno
lesana87 píše:Proč by při DMA nemohl procesor nic dělat? Od toho přece je DMA, aby mohl procesor něco dělat a nemusel se starat o přenos dat mezi periferií a pamětí.
Já bych to formuloval spíš tak, že DMA je od toho, aby přenos mohl probíhat rychle, nebržděn procesorem.
Aby mohl procesor dělat něco užitečného, tak si musí občas šáhnout do paměti. Což během souvislého přenosu velkého bloku dat jaksi nemůže, ne?

Napsal: 13 bře 2021, 20:25
od lesana87
Dneska mají procesory megabajty cache a ten přenos určitě nepoběží burstem na frekvenci sběrnice, to by ta tiskárna a hlavně kabel k ní nedaly. Kdysi se psalo, že ECP umožňuje rychlosti až 1MB/s, jak rychle běhají dnešní sběrnice?

Napsal: 13 bře 2021, 20:35
od tomasjedno
Na dnešních mašinách se LPT porty moc nevyskytují.
No ale to už jsme u toho, že víme kulové o tom, na jaké mašině to běží a co s tím 80 vyvádí.

Napsal: 13 bře 2021, 20:38
od lesana87
Čtyřjádrový Xeon nebo P4.

Napsal: 13 bře 2021, 21:32
od Osmdesat
Trochu se mi to pod Win 7 na Xeonu podařilo rozhýbat - souborovým zápisem bajt za 8 us.
Taky jsem zkoušel bitbanging pomocí ovladače inpout32.dll - zápis bajtů na vv bránu LPT portu ve smyčce. Tam je to zajímavější - v případě xeonu bajt za 2 us, u P4 bajt za 5 us.
Zátěž CPU je podobná jak v případě souborového zápisu, tak bitbangingu.

Zajímavé je, že když nainstaluju ve windows na LPT port obecnou textovou tiskárnu, souborový zápis pak proběhne asynchronně - data si ode mé aplikace při zápisu do souboru LPT1 asi načte printspooler, příkaz zápisu do souboru se vrátí prakticky okamžitě, ale zápis na port pokračuje dál.

ECP režim bude podle mě vyšší dívčí - vyžaduje na straně zařízení speciální handshake a asi speciální příkazy ve Win api. ECP zatím tedy nechám stranou, spokojím se s SPP režimem.

Napsal: 13 bře 2021, 21:37
od rnbw
Rychlost prenosu pri PIO je obmedzena frekvenciou ISA, resp. LPC zberniice.

Napsal: 13 bře 2021, 21:43
od lesana87
A co EPP režim? Ten je celkem jednoduchej, to se jen zapisuje na jinou adresu LPT portu, navenek se ty zápisy chovají jako sběrnicové cykly se signálama RD/WR. Dá se to ven hrnout instrukcema pro řetězcovej přenos na port (OUTSB/OUTSW/OUTSD).

Napsal: 13 bře 2021, 21:44
od Osmdesat
Já už vyšší rychlost ani nepotřebuji. Kdybych byl v dosu, si myslím, že by se dalo dosáhnout ještě vyšších rychlostí, protože bych měl přímý přístup k HW. Takhle mi to ale v podstatě stačí.
Ale EPP režim bych si mohl možná zkusit. Tam se používá DMA?

Napsal: 13 bře 2021, 21:53
od lesana87
Ne, to je PIO.