Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 May 2018 08:26:43 +0100
From:      David Chisnall <theraven@FreeBSD.org>
To:        Maxim Sobolev <sobomax@freebsd.org>
Cc:        Mark Linimon <linimon@lonesome.com>, Matthew Macy <mat.macy@gmail.com>, Andrew Gallatin <gallatin@cs.duke.edu>, Pedro Giffuni <pfg@freebsd.org>, Cy Schubert <Cy.Schubert@cschubert.com>, Brooks Davis <brooks@freebsd.org>, Eugene Grosbein <eugen@grosbein.net>, Stefan Esser <se@freebsd.org>, "rgrimes@freebsd.org" <rgrimes@freebsd.org>, Gleb Smirnoff <glebius@freebsd.org>, Sean Bruno <sbruno@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>
Subject:   Re: Deorbiting i386
Message-ID:  <05C5BD86-70D0-4B02-AC29-36E68B3602AE@FreeBSD.org>
In-Reply-To: <CAH7qZfsbGheNqnwNmkP5jYiE=FXzc65yZSBoX_mM%2BuNce9rhyQ@mail.gmail.com>
References:  <201805232218.w4NMIxMA067892@slippy.cwsent.com> <e4311612-d1c4-b118-187b-7086945a312d@FreeBSD.org> <18a87d6d-14af-ef9d-80ff-403039e36692@cs.duke.edu> <CAPrugNomum%2BDO7M3GET3y0DrFse7jy1PmSUwnXGU5Sm6DXRrVg@mail.gmail.com> <20180525003949.GA710@lonesome.com> <CAH7qZfsbGheNqnwNmkP5jYiE=FXzc65yZSBoX_mM%2BuNce9rhyQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 25 May 2018, at 05:27, Maxim Sobolev <sobomax@freebsd.org> wrote:
>=20
> The idea looks very inmature and short-sighted to me. i386 is here to =
stay not as a server/desktop platform but as an embedded/low power/low =
cost platform for at least 5-10 years to come. There are plenty of =
applications in the world that don't need > 3gb of memory space and have =
no use for extra bits (and extra silicon) to function.

This argument seems very odd to me.  If you are targeting the embedded =
space, it is far easier to build a low-power chip that targets the =
x86-64 ISA than the x86-32 ISA.  You can move all of the 80-bit floating =
point stuff into microcode.  You can put anything using =
pair-of-32-bit-register 64-bit operations into slow microcode.  You can =
skimp on store forwarding for stack addresses.  You actually need fewer =
rename registers (one of the biggest consumers of power), because x86-64 =
code needs to do less register juggling to fit in the architectural =
register space.  All of these things are big consumers of power and area =
and are far less necessary when running code compiled for x86-64.  You =
can also do tricks like the one that Intel did on the early Atoms, where =
the SSE ALUs are actually only 64 bits wide and the 128-bit ops are =
cracked into pairs of 64-bit micro-ops.

As to =E2=80=98not needing more than 3GB of memory space=E2=80=99, =
that=E2=80=99s what the x32 ABI is for.  This lets you get all of the =
advantages of the x86-64 ISA (of which there are very many, in =
comparison to x86-32), without needing 64-bit pointers.  You get the =
instruction density of x86-64 combined with the data density of x86-32.  =
This is what Intel and Centaur have been pushing in the embedded space =
for several years.

You do pay a slight hardware cost from supporting a 48-bit virtual =
address space, though with superpages that=E2=80=99s negligible and the =
hardware targeted at these applications often doesn=E2=80=99t support =
more than a 32-bit virtual address space. =20

And this completely ignores the fact that Intel has almost no presence =
in the low-end embedded space.  AArch32 is vastly more important there =
and if we dropped x86-32 and shifted that effort to AArch32 then I think =
we=E2=80=99d see a lot more adoption.

David=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?05C5BD86-70D0-4B02-AC29-36E68B3602AE>