From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,cae92f92d6a1d4b1 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!feeder.news-service.com!xlned.com!feeder1.xlned.com!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: Ada.Execution_Time Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <4d05e737$0$6980$9b4e6d93@newsspool4.arcor-online.net> <1wmsukf0wglz3$.odnzonrpayly.dlg@40tude.net> <6n1c5myuf2uz$.10jl3ln7il3aq.dlg@40tude.net> <8n0mgnFv2sU1@mid.individual.net> <1n3o55xjdjr9t.1u33kb75y2jfl$.dlg@40tude.net> <8n1142Fto2U1@mid.individual.net> <1o5cbm4b1l20d$.19winbma6k5qw.dlg@40tude.net> <8n4mskF7mmU1@mid.individual.net> <8nm30fF7r9U1@mid.individual.net> <1akm5muxu9zni.mu91b7pubqw0$.dlg@40tude.net> <8nrg25FoucU1@mid.individual.net> <2k07hwmh6123.1pgx57welw9of$.dlg@40tude.net> <8nsa76Fj4rU1@mid.individual.net> <1j9i6trxinqtg$.renlw9wdtpsf.dlg@40tude.net> Date: Tue, 28 Dec 2010 16:08:57 +0100 Message-ID: <4kkxaiynm22p$.sld84rm8849d$.dlg@40tude.net> NNTP-Posting-Date: 28 Dec 2010 16:08:57 CET NNTP-Posting-Host: e45c02c9.newsspool2.arcor-online.net X-Trace: DXC=5gQ5IE0NDbAlU`@c^jLCbJA9EHlD;3YcB4Fo<]lROoRA8kF On Tue, 28 Dec 2010 14:14:57 +0000, Simon Wright wrote: > "Dmitry A. Kazakov" writes: > >> And conversely, the catastrophic accuracy of the VxWorks real-time >> clock service does not hinder its usability for real-time application. > > Catastrophic? > > The Radstone PPC7A cards (to take one example) have two facilities: (a) > the PowerPC decrementer, run off a crystal with some not-too-good quoted > accuracy (50 ppm, I think), and (b) a "real time clock". > > The RTC would be much better termed a time-of-day clock, since what it > provides is the date and time to 1 second precision. It also needs > battery backup, not easy to justify on naval systems (partly because it > adversely affects the shelf life of the boards, partly because navies > don't like noxious chemicals in their equipment). > > We never used the RTC. > > The decrementer is the facility used by VxWorks, and hence by GNAT under > VxWorks, to support time; both Ada.Calendar and Ada.Real_Time (we are > still at Ada 95 so I have no idea about Ada.Execution_Time). We run with > clock interrupts at 1 ms and (so far as we can tell from using bus > analysers) the interrupts behave perfectly reliably. Yes, this thing. In our case it was Pentium VxWorks 6.x. (The PPC we used prior to it had poor performance) The problem was that Ada.Real_Time.Clock had the accuracy of the clock interrupts, i.e. 1ms, which is by all accounts catastrophic for a 1.7GHz processor. You can switch some tasks forth and back between two clock changes. > For a higher-resolution view of time we've extended Ada.Calendar, using > the PowerPC's mftb (Move From Time Base) instruction to measure sub-tick > intervals (down to 40 ns). So did we in our case. VxWorks has means to access the Pentium high resolution counter. We took Ada.Real_Time and replaced the Clock function with one that used the counter multiplied by its frequency. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de