From: Wolfgang Denk <wd@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC][Timer API] Revised Specification - Implementation details
Date: Fri, 27 May 2011 09:28:42 +0200 [thread overview]
Message-ID: <20110527072843.008BC1354FC@gemini.denx.de> (raw)
In-Reply-To: <4DDEFDBC.7050403@comcast.net>
Dear "J. William Campbell",
In message <4DDEFDBC.7050403@comcast.net> you wrote:
>
> I really STRONGLY disagree with this statement. If you actually needed
> 64 bit variables, fine use them. But as I have already shown, you do not
> need them in general. We are computing a 32 bit result. There is some
> entropy argument that says you shouldn't need 64 bits to do so. Another
> way to look at it is that converting the top 32 bit word and the bottom
> 32 bit word to ms separately can be easier than doing them both together
> at once. However, as we will see below, I do agree we need two 32 bit
> words to make this process go smoothly. I just don't agree that they
> should/will constitute a 64 bit binary word. See below.
And I disagree with this.
> Yes, that is the problem. I have come to the view that two 32 bit words
> are the best approach. Note that the lsb may actually not fill the full
> 32 bits. The top 32 bits are the rollover count and the bottom 32 bits
> are the current counter. If the counter is a full 32 bits, so much the
> better. Again, one could put them together inside the interrupt routine
> , but it is easier to check for a changed value if you don't do this.
It's even easier if you use a single 64 bit variable, because then you
can simply use ==.
> Otherwise, you have to check both words. It also makes the isr faster.
Drop any thoughts about "make FOO faster" for now, please. Especially
at this stage it is much more important to have a simple and clean
design. If split in two variables, even a simple read access will
turn into code like
do {
upper = timebase_upper;
lower = timebase_lower;
} while (upper != timebase_upper);
This is not exactly as simple as you claimed.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
You can only live once, but if you do it right, once is enough.
next prev parent reply other threads:[~2011-05-27 7:28 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-26 13:27 [U-Boot] [RFC][Timer API] Revised Specification - Implementation details Graeme Russ
2011-05-26 15:57 ` Simon Glass
2011-05-26 17:28 ` Wolfgang Denk
2011-05-26 22:44 ` Graeme Russ
2011-05-27 5:23 ` Simon Glass
2011-05-27 7:40 ` Wolfgang Denk
2011-05-27 14:46 ` Simon Glass
2011-05-26 16:56 ` J. William Campbell
2011-05-26 17:53 ` Wolfgang Denk
2011-05-26 18:52 ` J. William Campbell
2011-05-26 19:16 ` Wolfgang Denk
2011-05-26 19:54 ` J. William Campbell
2011-05-26 20:27 ` Wolfgang Denk
2011-05-26 20:39 ` J. William Campbell
2011-05-26 22:59 ` Graeme Russ
2011-05-26 23:28 ` Graeme Russ
2011-05-27 1:26 ` J. William Campbell
2011-05-27 1:51 ` Graeme Russ
2011-05-27 3:54 ` J. William Campbell
2011-05-27 4:33 ` Graeme Russ
2011-05-27 6:33 ` J. William Campbell
2011-05-27 6:54 ` Graeme Russ
2011-05-27 15:49 ` J. William Campbell
2011-05-28 0:32 ` Graeme Russ
2011-05-27 7:33 ` Wolfgang Denk
2011-05-27 14:16 ` J. William Campbell
2011-05-27 7:28 ` Wolfgang Denk [this message]
2011-05-27 14:04 ` J. William Campbell
2011-05-27 7:13 ` Wolfgang Denk
2011-05-27 7:35 ` Graeme Russ
2011-05-27 7:48 ` Wolfgang Denk
2011-05-27 7:57 ` Graeme Russ
2011-05-27 8:01 ` Graeme Russ
2011-05-27 11:27 ` Wolfgang Denk
2011-05-27 12:43 ` Graeme Russ
2011-05-27 13:07 ` Scott McNutt
2011-05-27 15:00 ` J. William Campbell
2011-05-27 15:13 ` Simon Glass
2011-05-27 17:11 ` J. William Campbell
2011-05-27 15:44 ` Scott McNutt
2011-05-27 15:59 ` J. William Campbell
2011-05-29 15:55 ` Wolfgang Denk
2011-05-29 19:12 ` Simon Glass
2011-05-30 10:57 ` Wolfgang Denk
2011-05-30 11:47 ` Graeme Russ
2011-05-30 12:31 ` Wolfgang Denk
2011-05-30 12:46 ` Graeme Russ
2011-05-30 18:57 ` Reinhard Meyer
2011-05-31 0:24 ` Graeme Russ
2011-05-31 4:07 ` Reinhard Meyer
2011-05-31 4:24 ` Graeme Russ
2011-05-31 4:36 ` Reinhard Meyer
2011-05-31 4:53 ` Graeme Russ
2011-05-31 5:56 ` Wolfgang Denk
2011-05-31 4:45 ` Simon Glass
2011-05-31 4:53 ` Reinhard Meyer
2011-05-31 5:03 ` Graeme Russ
2011-05-31 5:16 ` Reinhard Meyer
2011-05-31 6:03 ` Wolfgang Denk
2011-05-31 6:23 ` Graeme Russ
2011-05-31 5:18 ` Wolfgang Denk
2011-05-31 5:37 ` Reinhard Meyer
2011-05-31 6:10 ` Wolfgang Denk
2011-05-31 4:56 ` Simon Glass
2011-05-31 5:49 ` Wolfgang Denk
2011-05-31 6:28 ` Graeme Russ
2011-05-31 6:29 ` Graeme Russ
2011-06-15 13:17 ` Graeme Russ
2011-06-15 16:03 ` Simon Glass
2011-06-15 20:38 ` Graeme Russ
2011-06-15 21:58 ` Simon Glass
2011-06-15 23:09 ` Graeme Russ
2011-06-16 5:53 ` Simon Glass
2011-06-16 6:27 ` Graeme Russ
2011-06-16 13:58 ` Simon Glass
2011-05-27 11:26 ` Wolfgang Denk
2011-05-27 14:23 ` J. William Campbell
2011-05-28 5:53 ` Graeme Russ
2011-05-28 6:18 ` Reinhard Meyer
2011-05-28 8:59 ` Graeme Russ
2011-05-29 1:41 ` J. William Campbell
2011-05-26 17:49 ` Wolfgang Denk
2011-05-26 22:51 ` Graeme Russ
2011-05-27 7:17 ` Wolfgang Denk
2011-05-27 7:33 ` Graeme Russ
2011-05-27 7:45 ` Wolfgang Denk
2011-05-27 14:58 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110527072843.008BC1354FC@gemini.denx.de \
--to=wd@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox