From owner-freebsd-arch@FreeBSD.ORG Sun Mar 21 19:52:55 2010 Return-Path: Delivered-To: freebsd-arch@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 85DAA106564A for ; Sun, 21 Mar 2010 19:52:55 +0000 (UTC) (envelope-from peterjeremy@acm.org) Received: from mail34.syd.optusnet.com.au (mail34.syd.optusnet.com.au [211.29.133.218]) by mx1.freebsd.org (Postfix) with ESMTP id 121C68FC0A for ; Sun, 21 Mar 2010 19:52:54 +0000 (UTC) Received: from server.vk2pj.dyndns.org (c122-106-253-149.belrs3.nsw.optusnet.com.au [122.106.253.149]) by mail34.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id o2LJqfsa013770 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 22 Mar 2010 06:52:52 +1100 X-Bogosity: Ham, spamicity=0.000000 Received: from server.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by server.vk2pj.dyndns.org (8.14.3/8.14.3) with ESMTP id o2LJqefc041158; Mon, 22 Mar 2010 06:52:40 +1100 (EST) (envelope-from peter@server.vk2pj.dyndns.org) Received: (from peter@localhost) by server.vk2pj.dyndns.org (8.14.3/8.14.3/Submit) id o2LJqehP041157; Mon, 22 Mar 2010 06:52:40 +1100 (EST) (envelope-from peter) Date: Mon, 22 Mar 2010 06:52:40 +1100 From: Peter Jeremy To: Scott Long Message-ID: <20100321195240.GD45042@server.vk2pj.dyndns.org> References: <20100318.161117.658811636873842325.imp@bsdimp.com> <20100318.165725.480410072667175878.imp@bsdimp.com> <15D5A6D4-1594-4667-AE51-0E26950C81DA@samsco.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="J4XPiPrVK1ev6Sgr" Content-Disposition: inline In-Reply-To: <15D5A6D4-1594-4667-AE51-0E26950C81DA@samsco.org> X-PGP-Key: http://members.optusnet.com.au/peterjeremy/pubkey.asc User-Agent: Mutt/1.5.20 (2009-06-14) X-CMAE-Score: 0 X-CMAE-Analysis: v=1.1 cv=DbJUOfM3lOzWBa8hRFFTIG5vmyMkKjbvT8Z585enDlE= c=1 sm=1 a=-o65W9qwAAAA:8 a=_H2LwnzFedx3IeB9fvgA:9 a=o7dPn8cotQ2W6MfXNmUA:7 a=0wTo5USnZ28Vc58ojebj1-v6jhYA:4 a=CjuIK1q_8ugA:10 a=HRJsq0TPXRMA:10 a=SCxxJzy2hwNx5BCsgHAA:9 a=58VVNLhxG5tGEyKuDwiTqIxm7TcA:4 a=y9B6laZwkeQwSvSRL7oYmA==:117 Cc: freebsd-arch@FreeBSD.org Subject: Re: likely and unlikely X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Mar 2010 19:52:55 -0000 --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 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--