time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Using a frequency synthesizer replacement for motherboard oscillator

PK
Poul-Henning Kamp
Sat, Dec 1, 2012 8:35 AM

In message ECC7F999-673E-4F70-95EF-1D888761A991@rtty.us, Bob Camp writes:

It's most commonly done with things like a Soekris 45xx series board. You
don't need anything very exotic for the frequency conversion. The jitter in
the PC is way worse than what the external chips will be creating.

Actually that is not true anymore.  Modern CPU's are very finicky about
clock jitter because the PLL the frequency up to GHz range.  Some of the
clock-chips used now discipline a low-UHF range oscillator to the XTAL
to cope with this, but most just PLL the frequency up there.

The real question is - what is the "magic frequency" on the particular
mother board you are going to modify? Once upon a time they all were a pretty
predictable 14.xxx MHz. These days, who knows what's going in where

It's pretty much still 14.318 Mhz pretty universally.

--
Poul-Henning Kamp      | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG        | TCP/IP since RFC 956
FreeBSD committer      | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

-------- In message <ECC7F999-673E-4F70-95EF-1D888761A991@rtty.us>, Bob Camp writes: >It's most commonly done with things like a Soekris 45xx series board. You >don't need anything very exotic for the frequency conversion. The jitter in >the PC is way worse than what the external chips will be creating. Actually that is _not_ true anymore. Modern CPU's are very finicky about clock jitter because the PLL the frequency up to GHz range. Some of the clock-chips used now discipline a low-UHF range oscillator to the XTAL to cope with this, but most just PLL the frequency up there. >The real question is - what is the "magic frequency" on the particular >mother board you are going to modify? Once upon a time they all were a pretty >predictable 14.xxx MHz. These days, who knows what's going in where It's pretty much still 14.318 Mhz pretty universally. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.
MA
Mark Allwright
Sat, Dec 1, 2012 7:34 PM

You need to replace the clock that drives the CPU; in some designs this was
the 14.318 MHz oscillator that would be multiplied up to the required
frequency.  You could also replace the 14.318 MHz oscillator with a TCXO or
better; make your own simple OCXO around a 14.318 MHz oscillator or lock a
14.318 MHz oscillator to a high stability reference oscillator (Rb, GPSDO
etc.).  You would need to do some circuit surgery on the PC motherboard for
this type of stuff.

Some links:

http://www.moshier.net/#Rubid_pc Lock 14.318 MHz to Rb
http://www.wraith.sf.ca.us/ntp/#ocxo-osc Simple oven
http://www.techlib.com/electronics/ovenckts.htm More simple oven circuits
http://www.febo.com/pages/soekris/index.html John's note for the Soekris
and clock hacking

Regards.

Mark.

--

Mark Allwright, VE6NTP

-----Original Message-----
From: Sarah White
Sent: Friday, November 30, 2012 5:10 PM
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] Using a frequency synthesizer replacement for
motherboard oscillator

On 11/30/2012 6:30 PM, Eric Garner wrote:

the actual RTC on modern (Intel based) PC's is driven from a standard
32,768 Hz crystal attached to the PCH. some of them are in incredibly
small
packages now instead of the old tuning fork-in-a-can ones. peeling off the
load caps and crystal from the board would allow you plenty of spaces to
tack down a lead from an external synthesizer.

Yeah, the one on the (Soekis) example was pretty small. So far none of
of the replies have indicated that anyone on here has experience beyond
an embedded system.

Mostly I started this thread because there have been a few with people
discussing implementing NTP on embedded microcontrollers, arduino, etc.
and I was thinking of doing it from the other side (turning a nice-ish
server into a rock-solid timekeeper)

Thanks so far everyone. Really impressed that I already managed to get
4x replies so quickly :)


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

You need to replace the clock that drives the CPU; in some designs this was the 14.318 MHz oscillator that would be multiplied up to the required frequency. You could also replace the 14.318 MHz oscillator with a TCXO or better; make your own simple OCXO around a 14.318 MHz oscillator or lock a 14.318 MHz oscillator to a high stability reference oscillator (Rb, GPSDO etc.). You would need to do some circuit surgery on the PC motherboard for this type of stuff. Some links: <http://www.moshier.net/#Rubid_pc> Lock 14.318 MHz to Rb <http://www.wraith.sf.ca.us/ntp/#ocxo-osc> Simple oven <http://www.techlib.com/electronics/ovenckts.htm> More simple oven circuits <http://www.febo.com/pages/soekris/index.html> John's note for the Soekris and clock hacking Regards. Mark. -- Mark Allwright, VE6NTP -----Original Message----- From: Sarah White Sent: Friday, November 30, 2012 5:10 PM To: Discussion of precise time and frequency measurement Subject: Re: [time-nuts] Using a frequency synthesizer replacement for motherboard oscillator On 11/30/2012 6:30 PM, Eric Garner wrote: > the actual RTC on modern (Intel based) PC's is driven from a standard > 32,768 Hz crystal attached to the PCH. some of them are in incredibly > small > packages now instead of the old tuning fork-in-a-can ones. peeling off the > load caps and crystal from the board would allow you plenty of spaces to > tack down a lead from an external synthesizer. Yeah, the one on the (Soekis) example was pretty small. So far none of of the replies have indicated that anyone on here has experience beyond an embedded system. Mostly I started this thread because there have been a few with people discussing implementing NTP on embedded microcontrollers, arduino, etc. and I was thinking of doing it from the other side (turning a nice-ish server into a rock-solid timekeeper) Thanks so far everyone. Really impressed that I already managed to get 4x replies so quickly :) _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.
JW
Jonatan Walck
Sat, Dec 1, 2012 8:35 PM

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Eric, your experiences here is of great interest to me too, I've been
exploring external clocking of Ethernet controllers as of late but
have not dived into it yet.

I'm more interested in your how, but of course also in your why.

// jwalck

PS. Hey everyone, new to this list since two days joining after
attending my first PTTI. Working with time and frequency distribution
in Sweden and with time getting deeper into the field both on and off
work.

On 12/01/2012 01:15 AM, Eric Garner wrote:

I've never done it using to the RTC crystal, but I  do it quite
frequently in my Day Job to Ethernet controllers on those same pc
mother boards.

-Eric

On Fri, Nov 30, 2012 at 4:10 PM, Sarah White kuzetsa@gmail.com
wrote:

On 11/30/2012 6:30 PM, Eric Garner wrote:

the actual RTC on modern (Intel based) PC's is driven from a
standard 32,768 Hz crystal attached to the PCH. some of them
are in incredibly

small

packages now instead of the old tuning fork-in-a-can ones.
peeling off

the

load caps and crystal from the board would allow you plenty of
spaces to tack down a lead from an external synthesizer.

Yeah, the one on the (Soekis) example was pretty small. So far
none of of the replies have indicated that anyone on here has
experience beyond an embedded system.

Mostly I started this thread because there have been a few with
people discussing implementing NTP on embedded microcontrollers,
arduino, etc. and I was thinking of doing it from the other side
(turning a nice-ish server into a rock-solid timekeeper)

Thanks so far everyone. Really impressed that I already managed
to get 4x replies so quickly :)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQIcBAEBAgAGBQJQumoZAAoJEFwg9i9GDX+nF10P/jRTK9oCZrPz9e4++FoO9NvN
+THbxwsGpGq8c1OdDDo+1ewbzmRi9SehVPngzq0Lc6rfpEwYCIqnfiM9kWokhJDW
vgRwc4Re/ensYLDpGG+fMxqkKucpNS2UfsqND0xyCK4BGxDMqWbfwyukKGlKAGn+
oFoPX0+QGkgTq8tLs6HxhuSyi1Y1vc3reuZZpFDLqI+7OwwGlTFsTlSzcz2sF9/A
6TV1hcYLOnxwfNPKbSURqz5s2/3rCZf3KnlcTzxr3LLWNKJYcrW795WHpvMIYbC9
me+Oq+24EyJ69Io1ruClxMdi6vU9UC8bU8wy2J27ume4oD2E5JWPr4uY6xXlvYx6
ddkRb+p8K+NwyswNXNa3q+XFwAgsCImOusq9eOL7jc0J7M/NIrJj9GpCgn91/VGd
/ZUpH7nZA7I7Um3uMgXe6zsoKHToyzYu5CtfRkS8INPS/vWfo0X+Ysos1FlfFhQS
kFq306FgBpX5DRhD1e0uKSqMPuGM+Pv5uqB7DeuuY0qJS1H1RvCBatnvt1KAiVSA
vh0z2s3I3Z1FnZE0/LeDSXZS3lDPfT39CdDpKqiEN4P2ifBzJI78v/3IUSykSKor
aC6XHVI2eRbXjop59wcWT2gGt3a1u1uRCSv2MaQ0To8kb/+QMlxUqupqNToYHMFt
UsPHLL5m4bg5+l6669VR
=gybO
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Eric, your experiences here is of great interest to me too, I've been exploring external clocking of Ethernet controllers as of late but have not dived into it yet. I'm more interested in your how, but of course also in your why. // jwalck PS. Hey everyone, new to this list since two days joining after attending my first PTTI. Working with time and frequency distribution in Sweden and with time getting deeper into the field both on and off work. On 12/01/2012 01:15 AM, Eric Garner wrote: > I've never done it using to the RTC crystal, but I do it quite > frequently in my Day Job to Ethernet controllers on those same pc > mother boards. > > -Eric > > On Fri, Nov 30, 2012 at 4:10 PM, Sarah White <kuzetsa@gmail.com> > wrote: > >> On 11/30/2012 6:30 PM, Eric Garner wrote: >>> the actual RTC on modern (Intel based) PC's is driven from a >>> standard 32,768 Hz crystal attached to the PCH. some of them >>> are in incredibly >> small >>> packages now instead of the old tuning fork-in-a-can ones. >>> peeling off >> the >>> load caps and crystal from the board would allow you plenty of >>> spaces to tack down a lead from an external synthesizer. >> >> Yeah, the one on the (Soekis) example was pretty small. So far >> none of of the replies have indicated that anyone on here has >> experience beyond an embedded system. >> >> Mostly I started this thread because there have been a few with >> people discussing implementing NTP on embedded microcontrollers, >> arduino, etc. and I was thinking of doing it from the other side >> (turning a nice-ish server into a rock-solid timekeeper) >> >> Thanks so far everyone. Really impressed that I already managed >> to get 4x replies so quickly :) >> >> -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://www.enigmail.net/ iQIcBAEBAgAGBQJQumoZAAoJEFwg9i9GDX+nF10P/jRTK9oCZrPz9e4++FoO9NvN +THbxwsGpGq8c1OdDDo+1ewbzmRi9SehVPngzq0Lc6rfpEwYCIqnfiM9kWokhJDW vgRwc4Re/ensYLDpGG+fMxqkKucpNS2UfsqND0xyCK4BGxDMqWbfwyukKGlKAGn+ oFoPX0+QGkgTq8tLs6HxhuSyi1Y1vc3reuZZpFDLqI+7OwwGlTFsTlSzcz2sF9/A 6TV1hcYLOnxwfNPKbSURqz5s2/3rCZf3KnlcTzxr3LLWNKJYcrW795WHpvMIYbC9 me+Oq+24EyJ69Io1ruClxMdi6vU9UC8bU8wy2J27ume4oD2E5JWPr4uY6xXlvYx6 ddkRb+p8K+NwyswNXNa3q+XFwAgsCImOusq9eOL7jc0J7M/NIrJj9GpCgn91/VGd /ZUpH7nZA7I7Um3uMgXe6zsoKHToyzYu5CtfRkS8INPS/vWfo0X+Ysos1FlfFhQS kFq306FgBpX5DRhD1e0uKSqMPuGM+Pv5uqB7DeuuY0qJS1H1RvCBatnvt1KAiVSA vh0z2s3I3Z1FnZE0/LeDSXZS3lDPfT39CdDpKqiEN4P2ifBzJI78v/3IUSykSKor aC6XHVI2eRbXjop59wcWT2gGt3a1u1uRCSv2MaQ0To8kb/+QMlxUqupqNToYHMFt UsPHLL5m4bg5+l6669VR =gybO -----END PGP SIGNATURE-----
D
David
Sun, Dec 2, 2012 12:29 AM

Originally the IBM PC design used an 8253 or 8254 PIT, programmable
interval timer, located at ports 40h to 43h with Timer 0 clocked at
1.193182 MHz (1/3rd of 3.579545 MHz or 1/12th of 14.318 MHz) and set
to divide by 65536 which generated about an 18.2 Hz interrupt rate on
IRQ 0.  Timer 1 generated the since deprecated DRAM refresh clock and
Timer 2 goes to the PC speaker.

Some of the early IBM PC non-compatible hardware implemented a fixed
divisor for Timer 0 which caused problems for software expecting to be
able to reprogram the divider.

I do not know how they generate the 1.193182 MHz PIT clock now.  Early
on they just used an additional oscillator, usually 14.318 MHz, which
was separate from the CPU clock.  I lost interest and started doing
all of my precision timer functions in external hardware when Intel's
SMM, system management mode, started adding unacceptable jitter to
interrupt service routines.

Now of course a variety of higher precision timers are included.
Either the 1.193182 MHz based PIT via interrupt 0 or the 32.768 kHz
based RTC via interrupt 8 can be used to calibrate the CPU timers when
the CPU clock is unknown.

There was a hoax at about the time that the 12 MHz 286 microprocessors
became available where a couple of guys were wiring a small capacitor
across the 32.768 kHz clock crystal causing the RTC to run slow which
caused the CPU clock speed measured via software to appear many times
higher.  Conveniently the wall clock time as measured by the now
slowed RTC showed the same thing.  I remember an interview the guys
gave where they declined to describe their improvements to the 286 but
said the process amounted to collecting groups of instructions and
ramming them through as fast as possible and that it might be feasible
with a 386 as well.

On Sat, 1 Dec 2012 12:34:43 -0700, "Mark Allwright"
mark.allwright@shaw.ca wrote:

You need to replace the clock that drives the CPU; in some designs this was
the 14.318 MHz oscillator that would be multiplied up to the required
frequency.  You could also replace the 14.318 MHz oscillator with a TCXO or
better; make your own simple OCXO around a 14.318 MHz oscillator or lock a
14.318 MHz oscillator to a high stability reference oscillator (Rb, GPSDO
etc.).  You would need to do some circuit surgery on the PC motherboard for
this type of stuff.

Some links:

http://www.moshier.net/#Rubid_pc Lock 14.318 MHz to Rb
http://www.wraith.sf.ca.us/ntp/#ocxo-osc Simple oven
http://www.techlib.com/electronics/ovenckts.htm More simple oven circuits
http://www.febo.com/pages/soekris/index.html John's note for the Soekris
and clock hacking

Regards.

Mark.

Originally the IBM PC design used an 8253 or 8254 PIT, programmable interval timer, located at ports 40h to 43h with Timer 0 clocked at 1.193182 MHz (1/3rd of 3.579545 MHz or 1/12th of 14.318 MHz) and set to divide by 65536 which generated about an 18.2 Hz interrupt rate on IRQ 0. Timer 1 generated the since deprecated DRAM refresh clock and Timer 2 goes to the PC speaker. Some of the early IBM PC non-compatible hardware implemented a fixed divisor for Timer 0 which caused problems for software expecting to be able to reprogram the divider. I do not know how they generate the 1.193182 MHz PIT clock now. Early on they just used an additional oscillator, usually 14.318 MHz, which was separate from the CPU clock. I lost interest and started doing all of my precision timer functions in external hardware when Intel's SMM, system management mode, started adding unacceptable jitter to interrupt service routines. Now of course a variety of higher precision timers are included. Either the 1.193182 MHz based PIT via interrupt 0 or the 32.768 kHz based RTC via interrupt 8 can be used to calibrate the CPU timers when the CPU clock is unknown. There was a hoax at about the time that the 12 MHz 286 microprocessors became available where a couple of guys were wiring a small capacitor across the 32.768 kHz clock crystal causing the RTC to run slow which caused the CPU clock speed measured via software to appear many times higher. Conveniently the wall clock time as measured by the now slowed RTC showed the same thing. I remember an interview the guys gave where they declined to describe their improvements to the 286 but said the process amounted to collecting groups of instructions and ramming them through as fast as possible and that it might be feasible with a 386 as well. On Sat, 1 Dec 2012 12:34:43 -0700, "Mark Allwright" <mark.allwright@shaw.ca> wrote: >You need to replace the clock that drives the CPU; in some designs this was >the 14.318 MHz oscillator that would be multiplied up to the required >frequency. You could also replace the 14.318 MHz oscillator with a TCXO or >better; make your own simple OCXO around a 14.318 MHz oscillator or lock a >14.318 MHz oscillator to a high stability reference oscillator (Rb, GPSDO >etc.). You would need to do some circuit surgery on the PC motherboard for >this type of stuff. > >Some links: > ><http://www.moshier.net/#Rubid_pc> Lock 14.318 MHz to Rb ><http://www.wraith.sf.ca.us/ntp/#ocxo-osc> Simple oven ><http://www.techlib.com/electronics/ovenckts.htm> More simple oven circuits ><http://www.febo.com/pages/soekris/index.html> John's note for the Soekris >and clock hacking > >Regards. > >Mark.
MD
Magnus Danielson
Sun, Dec 2, 2012 12:53 AM

On 12/02/2012 01:29 AM, David wrote:

Originally the IBM PC design used an 8253 or 8254 PIT, programmable
interval timer, located at ports 40h to 43h with Timer 0 clocked at
1.193182 MHz (1/3rd of 3.579545 MHz or 1/12th of 14.318 MHz) and set
to divide by 65536 which generated about an 18.2 Hz interrupt rate on
IRQ 0.  Timer 1 generated the since deprecated DRAM refresh clock and
Timer 2 goes to the PC speaker.

In a modern world, look for things like HPET and TSC:

http://en.wikipedia.org/wiki/High_Precision_Event_Timer
http://en.wikipedia.org/wiki/Time_Stamp_Counter

You want to get a better reference clock to these timers.

Cheers,
Magnus

On 12/02/2012 01:29 AM, David wrote: > Originally the IBM PC design used an 8253 or 8254 PIT, programmable > interval timer, located at ports 40h to 43h with Timer 0 clocked at > 1.193182 MHz (1/3rd of 3.579545 MHz or 1/12th of 14.318 MHz) and set > to divide by 65536 which generated about an 18.2 Hz interrupt rate on > IRQ 0. Timer 1 generated the since deprecated DRAM refresh clock and > Timer 2 goes to the PC speaker. In a modern world, look for things like HPET and TSC: http://en.wikipedia.org/wiki/High_Precision_Event_Timer http://en.wikipedia.org/wiki/Time_Stamp_Counter You want to get a better reference clock to these timers. Cheers, Magnus
D
David
Sun, Dec 2, 2012 1:06 AM

On Sun, 02 Dec 2012 01:53:07 +0100, Magnus Danielson
magnus@rubidium.dyndns.org wrote:

On 12/02/2012 01:29 AM, David wrote:

Originally the IBM PC design used an 8253 or 8254 PIT, programmable
interval timer, located at ports 40h to 43h with Timer 0 clocked at
1.193182 MHz (1/3rd of 3.579545 MHz or 1/12th of 14.318 MHz) and set
to divide by 65536 which generated about an 18.2 Hz interrupt rate on
IRQ 0.  Timer 1 generated the since deprecated DRAM refresh clock and
Timer 2 goes to the PC speaker.

In a modern world, look for things like HPET and TSC:

http://en.wikipedia.org/wiki/High_Precision_Event_Timer
http://en.wikipedia.org/wiki/Time_Stamp_Counter

You want to get a better reference clock to these timers.

Cheers,
Magnus

I only mention and do not go into detail about the higher precision
timers later in my post because by the time they were available,
Intel's system management mode was adding so much jitter than I lost
interest in using PC hardware in applications where they otherwise
might have been useful.  To be fair, not all motherboards and BIOSes
had this problem but it was not worth weeding out the poorly
performing ones.

One of my favorite tricks back when the ISA bus was still available
was to use a custom expansion board I built and an oscilloscope to
measure the interrupt latency.

On Sun, 02 Dec 2012 01:53:07 +0100, Magnus Danielson <magnus@rubidium.dyndns.org> wrote: >On 12/02/2012 01:29 AM, David wrote: >> Originally the IBM PC design used an 8253 or 8254 PIT, programmable >> interval timer, located at ports 40h to 43h with Timer 0 clocked at >> 1.193182 MHz (1/3rd of 3.579545 MHz or 1/12th of 14.318 MHz) and set >> to divide by 65536 which generated about an 18.2 Hz interrupt rate on >> IRQ 0. Timer 1 generated the since deprecated DRAM refresh clock and >> Timer 2 goes to the PC speaker. > >In a modern world, look for things like HPET and TSC: > >http://en.wikipedia.org/wiki/High_Precision_Event_Timer >http://en.wikipedia.org/wiki/Time_Stamp_Counter > >You want to get a better reference clock to these timers. > >Cheers, >Magnus I only mention and do not go into detail about the higher precision timers later in my post because by the time they were available, Intel's system management mode was adding so much jitter than I lost interest in using PC hardware in applications where they otherwise might have been useful. To be fair, not all motherboards and BIOSes had this problem but it was not worth weeding out the poorly performing ones. One of my favorite tricks back when the ISA bus was still available was to use a custom expansion board I built and an oscilloscope to measure the interrupt latency.
EH
Erich Heine
Sun, Dec 2, 2012 7:54 PM

Jonathan,

My research group has had some good experiences using products from Endace (
http://www.endace.com/) for network timing measurement at the ethernet
level. I don't have a pointer immediately to the work, but if there is
interest can ask tomorrow at work. The gist of it though was to understand
precise timing characteristics of network switches for better simulation.
Examining the time "in switch" for various packets at the microsecond level
was needed to understand various delay curves for different network loads,
with an ultimate goal of proper statistical modeling reflecting reality as
close as possible.

I personally have also used endace products to measure packet timings for
research, but I didn't need so much precision for that work - however I can
say they have a good API and decent tech support for interacting with their
cards and products.

HTH.

Regards,
Erich

On Sat, Dec 1, 2012 at 2:35 PM, Jonatan Walck jwalck@netnod.se wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Eric, your experiences here is of great interest to me too, I've been
exploring external clocking of Ethernet controllers as of late but
have not dived into it yet.

I'm more interested in your how, but of course also in your why.

// jwalck

PS. Hey everyone, new to this list since two days joining after
attending my first PTTI. Working with time and frequency distribution
in Sweden and with time getting deeper into the field both on and off
work.

On 12/01/2012 01:15 AM, Eric Garner wrote:

I've never done it using to the RTC crystal, but I  do it quite
frequently in my Day Job to Ethernet controllers on those same pc
mother boards.

-Eric

On Fri, Nov 30, 2012 at 4:10 PM, Sarah White kuzetsa@gmail.com
wrote:

On 11/30/2012 6:30 PM, Eric Garner wrote:

the actual RTC on modern (Intel based) PC's is driven from a
standard 32,768 Hz crystal attached to the PCH. some of them
are in incredibly

small

packages now instead of the old tuning fork-in-a-can ones.
peeling off

the

load caps and crystal from the board would allow you plenty of
spaces to tack down a lead from an external synthesizer.

Yeah, the one on the (Soekis) example was pretty small. So far
none of of the replies have indicated that anyone on here has
experience beyond an embedded system.

Mostly I started this thread because there have been a few with
people discussing implementing NTP on embedded microcontrollers,
arduino, etc. and I was thinking of doing it from the other side
(turning a nice-ish server into a rock-solid timekeeper)

Thanks so far everyone. Really impressed that I already managed
to get 4x replies so quickly :)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQIcBAEBAgAGBQJQumoZAAoJEFwg9i9GDX+nF10P/jRTK9oCZrPz9e4++FoO9NvN
+THbxwsGpGq8c1OdDDo+1ewbzmRi9SehVPngzq0Lc6rfpEwYCIqnfiM9kWokhJDW
vgRwc4Re/ensYLDpGG+fMxqkKucpNS2UfsqND0xyCK4BGxDMqWbfwyukKGlKAGn+
oFoPX0+QGkgTq8tLs6HxhuSyi1Y1vc3reuZZpFDLqI+7OwwGlTFsTlSzcz2sF9/A
6TV1hcYLOnxwfNPKbSURqz5s2/3rCZf3KnlcTzxr3LLWNKJYcrW795WHpvMIYbC9
me+Oq+24EyJ69Io1ruClxMdi6vU9UC8bU8wy2J27ume4oD2E5JWPr4uY6xXlvYx6
ddkRb+p8K+NwyswNXNa3q+XFwAgsCImOusq9eOL7jc0J7M/NIrJj9GpCgn91/VGd
/ZUpH7nZA7I7Um3uMgXe6zsoKHToyzYu5CtfRkS8INPS/vWfo0X+Ysos1FlfFhQS
kFq306FgBpX5DRhD1e0uKSqMPuGM+Pv5uqB7DeuuY0qJS1H1RvCBatnvt1KAiVSA
vh0z2s3I3Z1FnZE0/LeDSXZS3lDPfT39CdDpKqiEN4P2ifBzJI78v/3IUSykSKor
aC6XHVI2eRbXjop59wcWT2gGt3a1u1uRCSv2MaQ0To8kb/+QMlxUqupqNToYHMFt
UsPHLL5m4bg5+l6669VR
=gybO
-----END PGP SIGNATURE-----


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Jonathan, My research group has had some good experiences using products from Endace ( http://www.endace.com/) for network timing measurement at the ethernet level. I don't have a pointer immediately to the work, but if there is interest can ask tomorrow at work. The gist of it though was to understand precise timing characteristics of network switches for better simulation. Examining the time "in switch" for various packets at the microsecond level was needed to understand various delay curves for different network loads, with an ultimate goal of proper statistical modeling reflecting reality as close as possible. I personally have also used endace products to measure packet timings for research, but I didn't need so much precision for that work - however I can say they have a good API and decent tech support for interacting with their cards and products. HTH. Regards, Erich On Sat, Dec 1, 2012 at 2:35 PM, Jonatan Walck <jwalck@netnod.se> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Eric, your experiences here is of great interest to me too, I've been > exploring external clocking of Ethernet controllers as of late but > have not dived into it yet. > > I'm more interested in your how, but of course also in your why. > > // jwalck > > PS. Hey everyone, new to this list since two days joining after > attending my first PTTI. Working with time and frequency distribution > in Sweden and with time getting deeper into the field both on and off > work. > > On 12/01/2012 01:15 AM, Eric Garner wrote: > > I've never done it using to the RTC crystal, but I do it quite > > frequently in my Day Job to Ethernet controllers on those same pc > > mother boards. > > > > -Eric > > > > On Fri, Nov 30, 2012 at 4:10 PM, Sarah White <kuzetsa@gmail.com> > > wrote: > > > >> On 11/30/2012 6:30 PM, Eric Garner wrote: > >>> the actual RTC on modern (Intel based) PC's is driven from a > >>> standard 32,768 Hz crystal attached to the PCH. some of them > >>> are in incredibly > >> small > >>> packages now instead of the old tuning fork-in-a-can ones. > >>> peeling off > >> the > >>> load caps and crystal from the board would allow you plenty of > >>> spaces to tack down a lead from an external synthesizer. > >> > >> Yeah, the one on the (Soekis) example was pretty small. So far > >> none of of the replies have indicated that anyone on here has > >> experience beyond an embedded system. > >> > >> Mostly I started this thread because there have been a few with > >> people discussing implementing NTP on embedded microcontrollers, > >> arduino, etc. and I was thinking of doing it from the other side > >> (turning a nice-ish server into a rock-solid timekeeper) > >> > >> Thanks so far everyone. Really impressed that I already managed > >> to get 4x replies so quickly :) > >> > >> > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.12 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://www.enigmail.net/ > > iQIcBAEBAgAGBQJQumoZAAoJEFwg9i9GDX+nF10P/jRTK9oCZrPz9e4++FoO9NvN > +THbxwsGpGq8c1OdDDo+1ewbzmRi9SehVPngzq0Lc6rfpEwYCIqnfiM9kWokhJDW > vgRwc4Re/ensYLDpGG+fMxqkKucpNS2UfsqND0xyCK4BGxDMqWbfwyukKGlKAGn+ > oFoPX0+QGkgTq8tLs6HxhuSyi1Y1vc3reuZZpFDLqI+7OwwGlTFsTlSzcz2sF9/A > 6TV1hcYLOnxwfNPKbSURqz5s2/3rCZf3KnlcTzxr3LLWNKJYcrW795WHpvMIYbC9 > me+Oq+24EyJ69Io1ruClxMdi6vU9UC8bU8wy2J27ume4oD2E5JWPr4uY6xXlvYx6 > ddkRb+p8K+NwyswNXNa3q+XFwAgsCImOusq9eOL7jc0J7M/NIrJj9GpCgn91/VGd > /ZUpH7nZA7I7Um3uMgXe6zsoKHToyzYu5CtfRkS8INPS/vWfo0X+Ysos1FlfFhQS > kFq306FgBpX5DRhD1e0uKSqMPuGM+Pv5uqB7DeuuY0qJS1H1RvCBatnvt1KAiVSA > vh0z2s3I3Z1FnZE0/LeDSXZS3lDPfT39CdDpKqiEN4P2ifBzJI78v/3IUSykSKor > aC6XHVI2eRbXjop59wcWT2gGt3a1u1uRCSv2MaQ0To8kb/+QMlxUqupqNToYHMFt > UsPHLL5m4bg5+l6669VR > =gybO > -----END PGP SIGNATURE----- > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. >
MD
Magnus Danielson
Sun, Dec 2, 2012 9:16 PM

Erich,

On 12/02/2012 08:54 PM, Erich Heine wrote:

Jonathan,

My research group has had some good experiences using products from Endace (
http://www.endace.com/) for network timing measurement at the ethernet
level. I don't have a pointer immediately to the work, but if there is
interest can ask tomorrow at work. The gist of it though was to understand
precise timing characteristics of network switches for better simulation.
Examining the time "in switch" for various packets at the microsecond level
was needed to understand various delay curves for different network loads,
with an ultimate goal of proper statistical modeling reflecting reality as
close as possible.

This is a bold challenge, it's a difficult task (clear speak: there is a
reason for this to be a research field, industry never really got it
under control).

I personally have also used endace products to measure packet timings for
research, but I didn't need so much precision for that work - however I can
say they have a good API and decent tech support for interacting with their
cards and products.

Is there native support with Linux kernels?
It would be very nice to have the support using SO_TIMESTAMP and friends.

Cheers,
Magnus

Erich, On 12/02/2012 08:54 PM, Erich Heine wrote: > Jonathan, > > My research group has had some good experiences using products from Endace ( > http://www.endace.com/) for network timing measurement at the ethernet > level. I don't have a pointer immediately to the work, but if there is > interest can ask tomorrow at work. The gist of it though was to understand > precise timing characteristics of network switches for better simulation. > Examining the time "in switch" for various packets at the microsecond level > was needed to understand various delay curves for different network loads, > with an ultimate goal of proper statistical modeling reflecting reality as > close as possible. This is a bold challenge, it's a difficult task (clear speak: there is a reason for this to be a research field, industry never *really* got it under control). > I personally have also used endace products to measure packet timings for > research, but I didn't need so much precision for that work - however I can > say they have a good API and decent tech support for interacting with their > cards and products. Is there native support with Linux kernels? It would be very nice to have the support using SO_TIMESTAMP and friends. Cheers, Magnus
EH
Erich Heine
Mon, Dec 3, 2012 3:43 PM

On Sun, Dec 2, 2012 at 3:16 PM, Magnus Danielson <magnus@rubidium.dyndns.org

wrote:

Erich,

On 12/02/2012 08:54 PM, Erich Heine wrote:

Jonathan,

My research group has had some good experiences using products from
Endace (
http://www.endace.com/) for network timing measurement at the ethernet
level. I don't have a pointer immediately to the work, but if there is
interest can ask tomorrow at work. The gist of it though was to understand
precise timing characteristics of network switches for better simulation.
Examining the time "in switch" for various packets at the microsecond
level
was needed to understand various delay curves for different network loads,
with an ultimate goal of proper statistical modeling reflecting reality as
close as possible.

This is a bold challenge, it's a difficult task (clear speak: there is a
reason for this to be a research field, industry never really got it
under control).

It is a challenge. I'll have to re evaluate my understanding of the timing
characteristics of the card in light of my new and growing knowledge on
timing. However, this is what I understand now:

I'm sure the timing isn't perfect, but we mitigated some of the potential
clock issues by doing many runs of tests. Further a single endace DAG card
has 2 or 4 network ports on it, so timing can be measured across a network
to the same card with the same reference clock which helps simplify error
source.  (The card has a feature which allows time stamping packets on the
card from that reference clock). Also there is a mechanism by which the
endace cards can be connected directly to each other to synchronize their
clocks to each other, so packet timings across cards can well measured.

I wasn't very involved in the details of the project I'm describing, so I
can't speak to how well any one of those functionalities of the cards
performed, nor how much error we saw or tolerated, I'll ask those folks
later today (as I happen to have a meeting with them about other stuff
anyway :))

One thing I can speak to though, is that in simulation of the type they are
doing - the general granularity of the simulation results are on the order
of 10^-3, so understanding the switches at 10^-6 isn't used directly in the
simulation, but rather to build probability distribution functions that
capture the behavior of the switches well enough to see cumulative results
comparable to observed networking conditions (e.g. the result of N switches
handling serializing events under certain loads will get packet trains like
$X and other loads like $Y and so on). One thing the PI on that project
mentioned was the shape of those functions being correct is the highest
priority. I understand this to mean that the errors "average out" (not an
actual mean, but through some statistics I don't understand all the way yet
they stop being significant compared to other issues).

Perhaps I'll need to point those researchers at this list to find out ways
to better get the timings they want :)

I personally have also used endace products to measure packet timings for

research, but I didn't need so much precision for that work - however I
can
say they have a good API and decent tech support for interacting with
their
cards and products.

Is there native support with Linux kernels?
It would be very nice to have the support using SO_TIMESTAMP and friends.

It's been a couple of years since I got deep on this, so I don't remember
details. I do know all the work we've done with the cards was on Linux, and
it worked nicely - I had no issues that were OS related. One thing about
the paradigm for the DAG cards is they are not in the standard networking
stack. They expose themselves from the kernel in a different way via an API
(which Endace provides the source for). To do IP networking with them, you
need to provided your own network stack in userland - however this is out
of the scope of the companies goal. They are really about providing high
speed layer2 access. I believe their primary use cases are research like we
did, and extremely low-latency communications between machines in clusters
(targeting high frequency traders and the like).

Cheers,
Magnus

_____________**
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/**
mailman/listinfo/time-nutshttps://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

On Sun, Dec 2, 2012 at 3:16 PM, Magnus Danielson <magnus@rubidium.dyndns.org > wrote: > Erich, > > > On 12/02/2012 08:54 PM, Erich Heine wrote: > >> Jonathan, >> >> My research group has had some good experiences using products from >> Endace ( >> http://www.endace.com/) for network timing measurement at the ethernet >> level. I don't have a pointer immediately to the work, but if there is >> interest can ask tomorrow at work. The gist of it though was to understand >> precise timing characteristics of network switches for better simulation. >> Examining the time "in switch" for various packets at the microsecond >> level >> was needed to understand various delay curves for different network loads, >> with an ultimate goal of proper statistical modeling reflecting reality as >> close as possible. >> > > This is a bold challenge, it's a difficult task (clear speak: there is a > reason for this to be a research field, industry never *really* got it > under control). > > It is a challenge. I'll have to re evaluate my understanding of the timing characteristics of the card in light of my new and growing knowledge on timing. However, this is what I understand now: I'm sure the timing isn't perfect, but we mitigated some of the potential clock issues by doing many runs of tests. Further a single endace DAG card has 2 or 4 network ports on it, so timing can be measured across a network to the same card with the same reference clock which helps simplify error source. (The card has a feature which allows time stamping packets on the card from that reference clock). Also there is a mechanism by which the endace cards can be connected directly to each other to synchronize their clocks to each other, so packet timings across cards can well measured. I wasn't very involved in the details of the project I'm describing, so I can't speak to how well any one of those functionalities of the cards performed, nor how much error we saw or tolerated, I'll ask those folks later today (as I happen to have a meeting with them about other stuff anyway :)) One thing I can speak to though, is that in simulation of the type they are doing - the general granularity of the simulation results are on the order of 10^-3, so understanding the switches at 10^-6 isn't used directly in the simulation, but rather to build probability distribution functions that capture the behavior of the switches well enough to see cumulative results comparable to observed networking conditions (e.g. the result of N switches handling serializing events under certain loads will get packet trains like $X and other loads like $Y and so on). One thing the PI on that project mentioned was the shape of those functions being correct is the highest priority. I understand this to mean that the errors "average out" (not an actual mean, but through some statistics I don't understand all the way yet they stop being significant compared to other issues). Perhaps I'll need to point those researchers at this list to find out ways to better get the timings they want :) > I personally have also used endace products to measure packet timings for >> research, but I didn't need so much precision for that work - however I >> can >> say they have a good API and decent tech support for interacting with >> their >> cards and products. >> > > Is there native support with Linux kernels? > It would be very nice to have the support using SO_TIMESTAMP and friends. > > It's been a couple of years since I got deep on this, so I don't remember details. I do know all the work we've done with the cards was on Linux, and it worked nicely - I had no issues that were OS related. One thing about the paradigm for the DAG cards is they are not in the standard networking stack. They expose themselves from the kernel in a different way via an API (which Endace provides the source for). To do IP networking with them, you need to provided your own network stack in userland - however this is out of the scope of the companies goal. They are really about providing high speed layer2 access. I believe their primary use cases are research like we did, and extremely low-latency communications between machines in clusters (targeting high frequency traders and the like). > Cheers, > Magnus > > > ______________________________**_________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/** > mailman/listinfo/time-nuts<https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts> > and follow the instructions there. >
EG
Eric Garner
Mon, Dec 3, 2012 6:44 PM

I'm an applications engineer for a company that makes Ethernet controllers
and PHYs. Some of our customers use crystals (more often oscillators) that
they selected based on price rather than performance. when i'm debugging a
customer issue replacing the clock source with a synthesizer is a good
troubleshooting aid. I's also useful when trying to prove that a low
quality clock source (or clock distribution network) in a link partner is
producing a poor (usually jittery) output that makes it hard for our parts
to achieve link.

On Fri, Nov 30, 2012 at 5:06 PM, Jim Welch welch20@comcast.net wrote:

OK, I'll bite.  Why?

Jim

I've never done it using to the RTC crystal, but I  do it quite

frequently in my Day Job to >>>Ethernet controllers on those same pc mother
boards.

-Eric

On Fri, Nov 30, 2012 at 4:10 PM, Sarah White kuzetsa@gmail.com wrote:

On 11/30/2012 6:30 PM, Eric Garner wrote:

the actual RTC on modern (Intel based) PC's is driven from a
standard
32,768 Hz crystal attached to the PCH. some of them are in
incredibly

small

packages now instead of the old tuning fork-in-a-can ones. peeling
off

the

load caps and crystal from the board would allow you plenty of
spaces to tack down a lead from an external synthesizer.

Yeah, the one on the (Soekis) example was pretty small. So far none of
of the replies have indicated that anyone on here has experience
beyond an embedded system.

Mostly I started this thread because there have been a few with people
discussing implementing NTP on embedded microcontrollers, arduino, etc.
and I was thinking of doing it from the other side (turning a nice-ish
server into a rock-solid timekeeper)

Thanks so far everyone. Really impressed that I already managed to get
4x replies so quickly :)


time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

--
--Eric


Eric Garner


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.


time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

--
--Eric


Eric Garner

I'm an applications engineer for a company that makes Ethernet controllers and PHYs. Some of our customers use crystals (more often oscillators) that they selected based on price rather than performance. when i'm debugging a customer issue replacing the clock source with a synthesizer is a good troubleshooting aid. I's also useful when trying to prove that a low quality clock source (or clock distribution network) in a link partner is producing a poor (usually jittery) output that makes it hard for our parts to achieve link. On Fri, Nov 30, 2012 at 5:06 PM, Jim Welch <welch20@comcast.net> wrote: > OK, I'll bite. Why? > > Jim > > >>>I've never done it using to the RTC crystal, but I do it quite > frequently in my Day Job to >>>Ethernet controllers on those same pc mother > boards. > >>> > >>>-Eric > > On Fri, Nov 30, 2012 at 4:10 PM, Sarah White <kuzetsa@gmail.com> wrote: > > > On 11/30/2012 6:30 PM, Eric Garner wrote: > > > the actual RTC on modern (Intel based) PC's is driven from a > > > standard > > > 32,768 Hz crystal attached to the PCH. some of them are in > > > incredibly > > small > > > packages now instead of the old tuning fork-in-a-can ones. peeling > > > off > > the > > > load caps and crystal from the board would allow you plenty of > > > spaces to tack down a lead from an external synthesizer. > > > > Yeah, the one on the (Soekis) example was pretty small. So far none of > > of the replies have indicated that anyone on here has experience > > beyond an embedded system. > > > > Mostly I started this thread because there have been a few with people > > discussing implementing NTP on embedded microcontrollers, arduino, etc. > > and I was thinking of doing it from the other side (turning a nice-ish > > server into a rock-solid timekeeper) > > > > Thanks so far everyone. Really impressed that I already managed to get > > 4x replies so quickly :) > > > > > > > > _______________________________________________ > > time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to > > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > > and follow the instructions there. > > > > > > -- > --Eric > _________________________________________ > Eric Garner > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. > -- --Eric _________________________________________ Eric Garner