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>