Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Mar 2010 06:52:40 +1100
From:      Peter Jeremy <peterjeremy@acm.org>
To:        Scott Long <scottl@samsco.org>
Cc:        freebsd-arch@FreeBSD.org
Subject:   Re: likely and unlikely
Message-ID:  <20100321195240.GD45042@server.vk2pj.dyndns.org>
In-Reply-To: <15D5A6D4-1594-4667-AE51-0E26950C81DA@samsco.org>
References:  <alpine.BSF.2.00.1003131346270.51476@fledge.watson.org> <20100318.161117.658811636873842325.imp@bsdimp.com> <DA31205F-41FA-4AC3-888E-2001210EE623@samsco.org> <20100318.165725.480410072667175878.imp@bsdimp.com> <15D5A6D4-1594-4667-AE51-0E26950C81DA@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--J4XPiPrVK1ev6Sgr
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2010-Mar-18 19:43:57 -0600, Scott Long <scottl@samsco.org> wrote:
>My understanding was that Atom wasn't super-scalar at all and has no
>branch prediction or out-of-order logic.  It's basically an 80486
>with a modern instruction set.

Not quite.  It only has in-order pipelines (though it does have a
some very limited instruction re-ordering capablities) but is
super-scalar (it can issue up to two instructions per cycle) and
does have branch prediction.

On the latter point, Intel states "branch predictors in Intel Atom
processors do not distinguish between different branch types.
Sometimes mixing different branch types can cause confusion in the
branch prediction hardware."  On my netbook, I'm seeing about 15%
misprediction whilst idle but this drops to ~3% when I start OOo.
Overall it looks like it's around 7%.

I suspect predict_true/predict_false is unlikely to help in most cases.

What would probably be more useful for Atom would be gcc scheduling
support.  This is available in gcc 4.3 (ie GPL3) but not in gcc 4.2.
I've had a look at dumping the gcc 4.3 Atom scheduler into my gcc 4.2
but the infrastructure has changed sufficiently that this would be a
non-trivial task.  (And since it would not be committable, I don't
think it's worth my time).  Likewise, implementing scheduling from
scratch in gcc 4.2 would be a non-trivial task.

--=20
Peter Jeremy

--J4XPiPrVK1ev6Sgr
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAkumeQgACgkQ/opHv/APuIdP0QCdHMNmba1vEvHN+duXYwV3aPdW
pa0AoJSBchL2+HyeEAtKwB1QJV0frby+
=NSmF
-----END PGP SIGNATURE-----

--J4XPiPrVK1ev6Sgr--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100321195240.GD45042>