Goto page Previous 1, 2, 3, 4, 5 Next
shg
Guest
Fri Aug 14, 2009 3:40 pm
On 14 Sie, 11:55, Sebastian Biały <h...@poczta.onet.pl> wrote:
Quote:
Ciekawostka: caly zakres niskiego IO powoduje jakies poważne opóźnienia.
Gdzie bym nie robił outb tam zawsze jest poczekalnia.
Teraz ciekawostka, kiedyś rzecz normalna. Opóźnienia się nawet na tym
robiło, zresztą dalej chyba są na tym jakieś pętle opóźniające w
linuksowym kernelu.
RoMan Mandziejewicz
Guest
Fri Aug 14, 2009 3:59 pm
Hello J,
Friday, August 14, 2009, 4:23:27 PM, you wrote:
Quote:
8MHz to bylo w najszybszych trybach, 8-bitowy out trwal wiele cykli.
Blizej 1us.
Co najmniej 1.5 us - po 0.5 us przed i po !STROBE a samo !STROBE też
minimum 0.5 us
Mowie o pojedynczym rozkazie out, nie calym protokole Centronicsa.
Z tego co pamiętam, to konstrukcja jest taka, że nawet bezpośrednie
pisanie do portu powoduje wygenerowanie sekwencji z zachowaniem
czasów.
--
Best regards,
RoMan mailto:roman@pik-net.pl
Spam:
http://www.allegro.pl/sklep/7416823_squadack
Waldemar Krzok
Guest
Fri Aug 14, 2009 4:05 pm
Sebastian Biały schrieb:
Quote:
Waldemar Krzok wrote:
Nie wiem jaki czip tam u ciebie biega i czy błąd nie leży po stronie
pomiaru. Drivery serii 74LS244 i podobne biegają całkiem dobrze i przy
10MHz.
O ile tam sa _te_ drivery

Przeciez to wszystko zalane plastikiem.
To, co opisywałem to port IBM-XT z początku lat 80tych ub. stulecia.
Myślisz, że jest gorzej?
Waldek
J.F.
Guest
Fri Aug 14, 2009 4:28 pm
On Fri, 14 Aug 2009 17:05:56 +0200, Waldemar Krzok wrote:
Quote:
Nie wiem jaki czip tam u ciebie biega i czy błąd nie leży po stronie
pomiaru. Drivery serii 74LS244 i podobne biegają całkiem dobrze i przy
10MHz.
O ile tam sa _te_ drivery

Przeciez to wszystko zalane plastikiem.
To, co opisywałem to port IBM-XT z początku lat 80tych ub. stulecia.
Myślisz, że jest gorzej?
Niemal na pewno nie ma juz tych driverow. Jest jakis chip, w
technologii cmos ..
J.
J.F.
Guest
Fri Aug 14, 2009 4:29 pm
On Fri, 14 Aug 2009 16:59:04 +0200, RoMan Mandziejewicz wrote:
Quote:
8MHz to bylo w najszybszych trybach, 8-bitowy out trwal wiele cykli.
Blizej 1us.
Co najmniej 1.5 us - po 0.5 us przed i po !STROBE a samo !STROBE też
minimum 0.5 us
Mowie o pojedynczym rozkazie out, nie calym protokole Centronicsa.
Z tego co pamiętam, to konstrukcja jest taka, że nawet bezpośrednie
pisanie do portu powoduje wygenerowanie sekwencji z zachowaniem
czasów.
Nie w podstawowym porcie - tam wszystko programowo.
A spowalniania sie procesor na samym rozkazie out.
J.
Sebastian BiaĹy
Guest
Fri Aug 14, 2009 4:49 pm
Waldemar Krzok wrote:
Quote:
To, co opisywałem to port IBM-XT z początku lat 80tych ub. stulecia.
Myślisz, że jest gorzej?
Na wyrzucanej niedawno 3-letniej płycie wszystkie druty sygnałowe LPT
wchodziły do dużego chipa. Opis w google nieznany. IMHO optymalizuja co
się da, przecież RS232 już dawno "zoptymalizowano" do +5/-5V. Czemu z
LPT ma byc inaczej? Robi się, zeby dzialalo na aby aby i już.
Mateusz Viste
Guest
Fri Aug 14, 2009 4:57 pm
On Friday 14 August 2009 16:30, Sebastian Biały wrote:
Quote:
Ok. Coś tam wymyślę. Jestem bardzo ciekaw, ale musze znaleźc troche
czasu i nerwów zeby zajmowac się znowu "systemami operacyjnymi" CP/M
yyy, znaczy ... MSDOS.
Oj dlaczego od razu MS do tego mieszać! :)
Dyskusja mnie na tyle zaciekawiła, że sam przeprowadziłem test.
W QuickBASIC'u napisałem następujący programik:
DIM x AS LONG
DIM StartTime AS DOUBLE
DIM EndTime AS DOUBLE
StartTime = TIMER
FOR x = 1 TO 2000000
OUT &H378, 1
OUT &H378, 0
NEXT x
EndTime = TIMER
PRINT "Przeprowadzono 2'000'000 cykli w czasie: "; EndTime - StartTime; "s"
PRINT "Szybkosc: "; 2000000 / (EndTime - StartTime) / 1000; "KHz"
Wynik jaki otrzymałem to 332KHz. Procesor Pentium III. Wynik jest niezależny
od tego, czy załaduję EMM386 czy nie (spodziewałem się spowolnienia z EMM386,
a tu nic...). :-)
Pozdrawiam,
Mateusz Viste
T.M.F.
Guest
Fri Aug 14, 2009 8:42 pm
Quote:
O ile tam sa _te_ drivery

Przeciez to wszystko zalane plastikiem.
To, co opisywałem to port IBM-XT z początku lat 80tych ub. stulecia.
Myślisz, że jest gorzej?
Na mojej starej plycie multiIO z AT byl driver LS573.
--
Inteligentny dom -
http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
JanuszK
Guest
Fri Aug 14, 2009 9:02 pm
Sebastian Biały wrote:
Quote:
Waldemar Krzok wrote:
Albo Ĺ?ciÄ?gnij sobie free-dos z sieci i przetestuj na real-mode w DOSie.
Jak znajdÄ? gdzieĹ? TurboC w wygodnej wersji to z ciekawoĹ?ci sprawdze.
Tutaj masz dr dosa i kupe narzędzi, wypal płytke i testuj

http://www.hirensbootcd.net/
--
-----
Pozdr
Janusz
Adam Dybkowski
Guest
Sat Aug 15, 2009 10:50 pm
J.F. pisze:
Quote:
Wszystjo wskazuje na to że to koniec przydatności LPT :/ Chyba jednak
poświęcę chwilkę i zrobie coś na USB.
Zalezy co chcesz osiagnac .. ale tak - koniec przydatnosci LPT, i
koniec LPT w ogole.
No wiesz, producenci płyt głównych od dawna wieszczą koniec LPT. I w
gruncie rzeczy mają rację - drukarek z takim portem się już nie robi, a
i programatorek AVRów na USB można zrobić samemu bardzo tanio (z USB
realizowanym programowo na ATtiny). Albo kupić nieco lepszy z FT232R i
AFAIR Atmegą 8.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Waldemar Krzok
Guest
Sun Aug 16, 2009 9:29 am
Verox wrote:
Quote:
On Thu, 13 Aug 2009 17:52:53 +0200, Waldemar Krzok napisał:
Sebastian Biały schrieb:
Witam.
Czy ktoś mógłby mi potwierdzić mój wynik? Macham sobie na zmiane D0:
01010101010101 ... w ciasnej pętli składającej się z outb na 0x378.
Wychodzi mi fmax=290kHz. Troche biednie. Macham na Linuxie, ale to chyba
nie ma za wiele do rzeczy. Mialem nadzieję na przynajmniej 1MHz. Ktoś
może wie czemu tak mizernie to wychodzi?
a to, że na Linuksie też musisz przejść przez port mapping. Jak chcesz
szybciej machać, to musisz napisać sterownik, który będzie machał
bezpośrednio nóżką. W zależności od rasy ustrojstwa (hardware portu)
możesz wyciągnąć nawet ponad 2MHz.
Ale on macha nóżką, przez outb(). Problemem jest tutaj scheduler.
Jasne że lepiej i bez niepotrzebnego czekania można to zrobić w
przestrzeni jądra.
dawno nie ogladalem zrodel Linuxa, ale w Unixie outb powodowalo exeption,
ktore bylo przechwytywane i dopiero w kernelu mapowane na "prawdziwe" outb.
Waldek
Verox
Guest
Sun Aug 16, 2009 9:40 am
On Thu, 13 Aug 2009 16:11:19 +0200, Sebastian Biały napisał:
Quote:
Witam.
Czy ktoś mógłby mi potwierdzić mój wynik? Macham sobie na zmiane D0:
01010101010101 ... w ciasnej pętli składającej się z outb na 0x378.
Wychodzi mi fmax=290kHz. Troche biednie. Macham na Linuxie, ale to chyba
nie ma za wiele do rzeczy. Mialem nadzieję na przynajmniej 1MHz. Ktoś
może wie czemu tak mizernie to wychodzi?
przestaw sheduler na real-time:
sched_fifo_min = sched_get_priority_min(SCHED_FIFO);
sched_fifo_max = sched_get_priority_max(SCHED_FIFO);
sched_parms.sched_priority = sched_fifo_max - 1; // Najwyzszy
mozliwy
if (0 != sched_setscheduler(getpid(), SCHED_FIFO, &sched_parms))
perror("cannot set realtime scheduling policy");
Powinno pomóc.
--
begin 755 signature.exe
[tomek <at> sikornik <dot> net] vy 73! de SP9UOB
Proud to be 100 percent microsoft free. op. Tomek
Verox
Guest
Sun Aug 16, 2009 9:40 am
On Thu, 13 Aug 2009 17:52:53 +0200, Waldemar Krzok napisał:
Quote:
Sebastian Biały schrieb:
Witam.
Czy ktoś mógłby mi potwierdzić mój wynik? Macham sobie na zmiane D0:
01010101010101 ... w ciasnej pętli składającej się z outb na 0x378.
Wychodzi mi fmax=290kHz. Troche biednie. Macham na Linuxie, ale to chyba
nie ma za wiele do rzeczy. Mialem nadzieję na przynajmniej 1MHz. Ktoś
może wie czemu tak mizernie to wychodzi?
a to, że na Linuksie też musisz przejść przez port mapping. Jak chcesz
szybciej machać, to musisz napisać sterownik, który będzie machał
bezpośrednio nóżką. W zależności od rasy ustrojstwa (hardware portu)
możesz wyciągnąć nawet ponad 2MHz.
Ale on macha nóżką, przez outb(). Problemem jest tutaj scheduler.
Jasne że lepiej i bez niepotrzebnego czekania można to zrobić w przestrzeni
jądra.
--
begin 755 signature.exe
[tomek <at> sikornik <dot> net] vy 73! de SP9UOB
Proud to be 100 percent microsoft free. op. Tomek
Mateusz Viste
Guest
Sun Aug 16, 2009 9:59 am
On Thursday 13 August 2009 18:59, Sebastian Biały wrote:
Quote:
Przyznaje bez bicia, że nie mam DOSa zeby to w tej chwili sprawdzić pod
nim. Moe rzeczywiście Linux sam z siebie ma spory narzut.
Chyba jednak nie ma :)
Patrz mój post <h3egl6-bov.ln1@mail.viste-family.net>.
Programik DOSowy (w trybie real mode) zdołał wygenerować na PIII 450 MHz
niewiele więcej - 332 KHz...
Pozdrawiam,
Mateusz Viste
Sebastian BiaĹy
Guest
Mon Aug 17, 2009 10:48 am
Sebastian Biały wrote:
Quote:
[ciach]
Podsumowanie uzyskanych predkości machania mojego LPT:
a) Linux - 290kHz
b) Windows - 291kHz
c) DOS - 297kHz
Wszystko wskazuje na to ze hardware haltuje CPU na określony czas przy
dostepie do tego portu.
Jeśli mapowanie portów coś tu miesza, to jest to te 6-7kHz różnicy,
czyli tyle co nic.
Moj ISA bridge to ATI SB600. Ku przestrodze
Goto page Previous 1, 2, 3, 4, 5 Next