Article View: de.sci.electronics
Article #50Re: RS485 mit 10 MBaud!?!
From: Ullrich von Bassewitz
Date: Sat, 23 Mar 1996 12:27
Date: Sat, 23 Mar 1996 12:27
53 lines
3064 bytes
3064 bytes
J Wunsch (j@uriah.heep.sax.de) wrote:
> Hmm. Heutige Prozessoren werden mit 100 MHz getaktet, und dabei
> arbeiten sie teilweise noch parallel. Das macht 300 Takte, damit
> sollte man grundsätzlich die Zeichen puffern können.
Das ist eine Fehlrechnung:
* Erstens weiss ich nicht, wie Du von 100MHz auf 300 Takte kommst. Der von
Dir zitierte FreeBSD Kernel ist mit gcc uebersetzt, der keine Pentium-
Optimierung kennt, d.h. der Code ist nicht so aufbereitet, dass die
beiden Pipes des Pentium vernuenftig genutzt werden.
* Zweitens wird bei einem Interrupt die komplette Pipeline erstmal
verworfen, auch bei Prozessoren mit Branch Target Buffer (Pentium), weil
es eben kein Branch ist.
* Drittens stoeren Interrupts die Lokalitaet des abgearbeiten Codes und Du
bekommst Probleme mit dem Nachschaufeln der Daten. D.h. massgeblich ist
hier nicht mehr der interne Prozessortakt, sondern es geht viel mehr in
Richtung des Bustaktes, und der liegt weit unterhalb des CPU Taktes.
* Viertens ist I/O bei den Intel Chips wegen der Pruefung der Permission
Map straeflich langsam. Beim 486 braucht ein Lesen oder Schreiben einer
I/O Adresse ca. 40(!) Taktzyklen. Wie's beim Pentium aussieht weiss ich
gerade nicht, wahrscheinlich aber nicht besser. Selbst wenn man Deine
300 Takte glaubt, lassen sich da nicht besonders viele I/O Zugriffe
unterbringen.
* Ausserdem willst Du ja womoeglich sowas wie ein Handshaking machen, auf
Puffer-Ueberlauf pruefen und aehnliches.
* Und letzten Endes soll Dein Programm ja auch noch was anderes machen,
als Interrupts abzuarbeiten (das ist aber mehr ein Problem der
Interrupt-Rate als der Reaktionszeit).
Kann natuerlich sein, dass das bei anderen Prozesorfamilien etwas besser
ist, glauben tue ich das aber erst wenn ich es sehe :-)
> Dein Denken widerspricht meinen Erfahrungen. Angegebene Werte waren
> nämlich *keine* Schätzungen, sondern die Werte, die mein
> altertümliches Notebook (fest eingebaute 16450) unter FreeBSD auf die
> Reihe bekommt. Wenn Du's nicht glaubst, kannste gern einen Ausflug
> nach Dresden machen. ;-)
Das war nicht nur mein Denken, das sind Erfahrungen :-)
Gruss
Uz
--
Ullrich von Bassewitz uz@ibb.schwaben.com
Technical Details
Message-ID:
<S6O0BX4H@wuschel.ibb.schwaben.com>Path:
arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mailReferences:
<4i1pvs$iua@delos.stuttgart.netsurf.de> <4ieuk3$kse@news00.btx.dtag.de> <4iksg8$sl4@uriah.heep.sax.de> <34K0BHYQ@wuschel.ibb.schwaben.com> <4irksg$cvt@uriah.heep.sax.de>Show Full Headers
Complete Article Headers
Newsgroups: de.sci.electronics,de.comp.lang.c Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mail From: uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz) Subject: Re: RS485 mit 10 MBaud!?! Date: 23 Mar 1996 12:27:44 GMT References: <4i1pvs$iua@delos.stuttgart.netsurf.de> <4ieuk3$kse@news00.btx.dtag.de> <4iksg8$sl4@uriah.heep.sax.de> <34K0BHYQ@wuschel.ibb.schwaben.com> <4irksg$cvt@uriah.heep.sax.de> Message-ID: <S6O0BX4H@wuschel.ibb.schwaben.com> Followup-To: de.sci.electronics,de.comp.lang.c Reply-To: uz@ibb.schwaben.com Organization: Ingenieurbuero von Bassewitz X-Newsreader: TIN [version 1.2 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit