[HN Gopher] Intel Explores Transition to 64-Bit-Only X86S Archit...
       ___________________________________________________________________
        
       Intel Explores Transition to 64-Bit-Only X86S Architecture
        
       Author : MR4D
       Score  : 112 points
       Date   : 2023-05-20 16:26 UTC (6 hours ago)
        
 (HTM) web link (www.tomshardware.com)
 (TXT) w3m dump (www.tomshardware.com)
        
       | vinyl7 wrote:
       | I wonder if Intel will still have to pay licensing fees to AMD
       | for x64 with this move?
        
         | manuelabeledo wrote:
         | They have a cross-licensing agreement.
        
           | EuropeOverlords wrote:
           | [flagged]
        
         | monocasa wrote:
         | Almost certainly. The underlying form of the IP cross licensed
         | is in patents on implementation of x86_64 cores. Those will
         | still be on the table for as long as the patent terms last.
        
       | dusted wrote:
       | _making a mental note that the 32 bit compatible era is coming to
       | an end and I should start thinking about stocking up on hardware_
        
       | londons_explore wrote:
       | I see no real benefit to this. The x86 compatibility doesn't get
       | in the way in any modern architecture - all the 16/32 bit mode
       | stuff is all 'emulated' with microcode, and there are no
       | dedicated 16 bit registers anymore...
       | 
       | Nor does it get in the way of software - as soon as you've
       | switched to 64 bit mode, you can ignore all legacy stuff.
       | 
       | Thats the right way to maintain legacy compatibility - make sure
       | it is all contained and doesn't get in anyone's way, and you can
       | leave it there forever.
        
         | rowanG077 wrote:
         | Why would Intel propose it if there are is no benefit?
        
           | chx wrote:
           | 1. The neutral answer: to decrease validation costs.
           | 
           | 2. The nefarious answer: maybe they found a way in their
           | agreements with AMD which would exclude this X86S somehow.
        
         | fwsgonzo wrote:
         | Can't help but agree. I especially don't like removing ring3
         | I/O port access. It was/is the fastest way to trap out of a VM
         | without SYSCALL or some other mechanism that I could measure.
         | 
         | Segmentation also has its uses, and it's a shame that they are
         | steadily removing it. Having a way to set up a 1:1 memory range
         | without even touching the page tables has always been faster
         | than messing with pages. Indeed, it's always been more
         | performance to either have a fully static page table or just
         | disable it completely and run in 32-bit mode. For certain
         | tasks, it's still the fastest.
         | 
         | But these are all niche uses. These days, who thinks about
         | anything other than Windows and Linux use cases?
         | 
         | To me though, AMD64 made most problems go away, and the
         | architecture is just fine. Perhaps they want to do away with
         | many of the now rarely used instructions?
        
         | wmf wrote:
         | The proposal is from Intel. How sure are we that we know better
         | than Intel?
        
           | moffkalast wrote:
           | We ask AMD what they think about it?
        
       | Animats wrote:
       | AMD got rid of much of the older baggage when they designed
       | 64-bit mode. There's a 32-bit segmented mode with call gates and
       | rings nobody uses. That was dropped for 64-bit mode, but it's
       | still there in 32 bit mode in shipping processors.
       | 
       | Intel has been burned in the past, though. The Pentium Pro
       | (1995), the first good superscalar microprocessor, was a 32-bit
       | machine that could also run 16-bit code. Intel thought 16-bit was
       | on the way out, so the 16-bit hardware was not fast.
       | Unfortunately for Intel, Microsoft Windows users were still
       | running too much 16-bit code. It ran Windows NT fine; Windows 95,
       | not so much. As a result, the Pentium Pro did not sell well.
       | Intel had to come out with the Pentium II (1997), which was
       | similar to the Pentium Pro but had better 16-bit performance.
        
         | Narishma wrote:
         | I may be remembering things wrong but I thought the reason the
         | Pentium Pro didn't sell very well was its price rather than its
         | performance.
        
         | kps wrote:
         | > _The Pentium Pro (1995), the first good superscalar
         | microprocessor_ ...
         | 
         | I thought the i960CA was good.
        
         | kjs3 wrote:
         | PPro ran Windows 95 fine, just not at a favorable
         | price/performance point. PPro sold fine for what it was: the
         | very high end, highest price of the Intel line.
        
       | linusg789 wrote:
       | Also see https://news.ycombinator.com/item?id=36006446
        
       | BulgarianIdiot wrote:
       | Absolutely. Piling on tech debt forever is like trying to eat
       | endlessly and never to go the toilet, pardon the analogy. Legacy
       | needs to be dealt with constantly and relentlessly. With a
       | suitable overlap window for transition (but we've had enough
       | x86-32 compatibility window already).
        
         | CoastalCoder wrote:
         | IMHO a similar point could be made about the C++ language spec,
         | sadly.
        
           | FpUser wrote:
           | Just don't use "legacy parts" and be happy. Backwards
           | compatibility is a great asset. Alternatively do something
           | like Google's Carbon. Seems like a great product. Just do not
           | call it C++. If it gets accepted by wider community you would
           | know you are on the right path.
        
             | [deleted]
        
             | CoastalCoder wrote:
             | > Just don't use "legacy parts" and be happy.
             | 
             | Maybe that works for some new codebases.
             | 
             | When you need to integrate with other code, you can't
             | necessarily understand the code semantics without knowing a
             | lot more of the spec.
             | 
             | Also, I challenge any normal programmer to remember all of
             | the "good" C++ rules regarding overload resolution in an
             | arbitrary context.
        
           | ilyt wrote:
           | Yup, it's absolutely true, navigating to the "good parts" is
           | a nightmare
        
           | BulgarianIdiot wrote:
           | Same point can be made about anything. Never breaking BC is
           | easier, and more comfortable, but in the end it's slow and
           | inevitable death.
           | 
           | If C++ would have cleaned up legacy, Rust wouldn't need to
           | exist for ex.
           | 
           | Java has long had a policy of never breaking BC, but few
           | years ago they started marking packages deprecated for
           | removal. They're very slow and systematic about it, as they
           | should be, but the point is, eventually those packages will
           | be removed. And that's good. It means Java has a future.
        
           | delta_p_delta_x wrote:
           | There are similar efforts to revamp C++ or replace it with
           | another language, too.
           | 
           | Rust is a famous example; there's also Carbon[1] and
           | cppfront[2].
           | 
           | Even so, this may be a controversial opinion, but with C++20,
           | it has become fairly straightforward to program relatively
           | safely and avoid some old footguns.
           | 
           | [1]: https://github.com/carbon-language/carbon-lang
           | 
           | [2]: https://github.com/hsutter/cppfront
        
             | FpUser wrote:
             | I use "modern C++" (a subset of it that suits my goals) and
             | do not really have any real problems during last 3 years.
             | My backend C++ application servers are running along just
             | fine.
        
         | pm215 wrote:
         | If I'm reading the pdf correctly it proposes dropping 32-bit
         | ring 0 (OS) but not 32-bit ring 3 (userspace), so most end-
         | users are unlikely to notice much change even if they do have
         | 32-bit legacy apps kicking around. I think 32-bit VMs would no
         | longer be supported, though.
        
         | FpUser wrote:
         | >"Legacy needs to be dealt with constantly and relentlessly"
         | 
         | To make your life easier? The customers may have totally
         | different opinion.
        
       | bigdict wrote:
       | Ha, literally thought about this 5 days ago.
       | 
       | https://news.ycombinator.com/item?id=35942727
        
         | EuropeOverlords wrote:
         | linux community had this thoughts 15 years ago
         | 
         | but these thoughts were rejected because " intel is using this,
         | so we can not remove it "
         | 
         | and intel reasoning for not removing it was : " linux is using
         | it, so we can not remove it ".
        
           | deaddodo wrote:
           | What does linux have to do with anything? They can use 64-bit
           | only mode any time they like, and plenty of Linux machines
           | for the last 4-5 years have been pure 64. It's mostly people
           | using commercial software (games, stuff like Skype) that have
           | to have multiarch, but less and less of those are 32-bit as
           | time passes.
           | 
           | Additionally, of the three main x86 OSes (Windows, macOS and
           | Linux); Linux' solution to dual-mode is easily the worst,
           | specifically so it _is_ easy to run it in pure 64 mode.
        
       | pyrolistical wrote:
       | Isn't this still makeup on a pig? They will still have a tiny
       | risc machine underneath
        
         | mepian wrote:
         | They don't have a "tiny risc machine" underneath, that's a
         | myth.
         | 
         | EDIT: https://qr.ae/pyvelA
        
           | pengaru wrote:
           | > They don't have a "tiny risc machine" underneath, that's a
           | myth.
           | 
           | https://stackoverflow.com/questions/5806589/why-does-
           | intel-h...
        
       | junon wrote:
       | Fabulous. Might actually make me like Intel again. The legacy
       | stuff is a nightmare, their segmented memory nonsense was also a
       | waste of development time and I'm glad to see them finally
       | acknowledge it.
       | 
       | I wonder how this will affect quirks such as A20, IRQ remapping,
       | etc. All oversights and mistakes made by Intel over the years -
       | none of which really _hurt_ development or performance these days
       | per se, but are definitely not _fun_ to work with either.
       | 
       | Something like this is the only thing that would save the x86
       | architecture before ARM inevitably took over.
        
         | Sesse__ wrote:
         | > I wonder how this will affect quirks such as A20
         | 
         | A20 was removed in Haswell (released pretty much exactly ten
         | years ago).
        
         | remexre wrote:
         | > Something like this is the only thing that would save the x86
         | architecture before ARM inevitably took over.
         | 
         | Eh, this feels like a rounding error in ISA desirability
         | compared to pointer authentication, or something like CHERI.
         | Sure, it'd be _nice_ to have the legacy stuff cleaned up, but
         | it's not costing much human effort to deal with compared to the
         | effort spent securing native code.
        
           | pohl wrote:
           | What might be their motivation for this, then?
        
             | luma wrote:
             | Save die space and thus reduce cost and power budgets.
             | Potentially simplify microarch and cache management. Maybe
             | reduce attack surface?
        
               | chx wrote:
               | Nah, the die space you save here is absolutely minuscule.
               | Intel saves on the validation of core designs -- forever.
        
             | JohnBooty wrote:
             | It might not make too much of a difference to software
             | developers targeting x86, but dumping legacy crap might
             | make _Intel 's_ job easier (and/or more profitable, because
             | they can reclaim some die space) when it comes to
             | implementing their future silicon.
        
               | leoc wrote:
               | A cynic might wonder if it would also help to renew the
               | Intel/AMD x86 patent moat now that the core x86-64
               | specification is over 20 years old. If the plan is
               | largely just to strip things out it might be hard to
               | shoehorn in patent claims, but I'm sure a way could be
               | found.
        
             | remexre wrote:
             | It'd make the chips easier to design, I guess. Maybe
             | motherboards and BIOSes too?
             | 
             | I could imagine a more user-noticeable effect in VM cold-
             | start times, perhaps, though I'd think physical hardware
             | boot times would still be dominated by other things (e.g.
             | actually loading the kernel into memory); the minimal
             | implementation of transitioning from real mode to long mode
             | is a few hundred instructions.
        
         | pwg wrote:
         | > I wonder how this will affect quirks such as A20, ... All
         | oversights and mistakes made by Intel over the years
         | 
         | Well, the A20 gate was actually IBM's creation, in order to
         | make the PC-AT system compatible with running real-mode DOS
         | programs.
         | 
         | Intel simply, later, incorporated it into the CPU because it
         | was already part of the PC architecture (and had been for
         | years) at that time.
         | 
         | Now, one could argue Intel had no business incorporating it
         | into the x86 ISA, but it wasn't ever their oversight, they were
         | just reacting to the reality of the systems in which the vast
         | majority of their CPU's were used.
        
         | bitwize wrote:
         | Segmented memory was not a "waste of development time" _at the
         | time_. It allowed the 8086 to be compatible as far as source
         | and machine-translated binaries with the 8080, while expanding
         | the address space considerably. It allowed considerable
         | advances while retaining some measure of backward
         | compatibility.., like x86-64 did.
        
         | Findecanor wrote:
         | > their segmented memory nonsense was also a waste of
         | development time and I'm glad to see them finally acknowledge
         | it.
         | 
         | People tend to remember mostly how difficult it was to program
         | with segmentation in 286's 16-bit mode and earlier. But in
         | 32-bit mode, user-space code didn't need to bother if the OS
         | didn't use it.
         | 
         | I've read several papers lately about schemes with compiler/OS
         | co-design for securing the return pointer on the stack,
         | function pointers and other sensitive variables from hacking
         | attacks. This problem was already mostly solved on x86-32 where
         | the stack can be in its own segment.
         | 
         | But to get achieve this in 64-bit mode (and on ARM and RISC-V),
         | researchers have resorted to various tricks such as randomising
         | addresses regularly [SafeHidden], switching access to the
         | (safe) stack on and off with Intel MPK, using the Intel shadow-
         | stack (in CET) for storing variables [CETIS], and even running
         | user code in privileged mode [Seimi], [InversOS](ARM) ...
         | 
         | Some of these these schemes are _tricks_ using the CPU in ways
         | it wasn 't intended, and therefore perhaps broken on future
         | CPUs. Several are only available on newer Intel processors with
         | certain extensions, and most have considerable run-time
         | overhead. Therefore, you will never see any like it in a
         | mainstream OS. But the x86-32's safe stack would have been, as
         | "Safe Stack" schemes relying on randomisation already got
         | widespread adoption.
         | 
         | [SafeHidden]
         | https://www.semanticscholar.org/paper/SafeHidden%3A-An-Effic...
         | 
         | [CETIS]
         | https://www.semanticscholar.org/paper/CETIS%3A-Retrofitting-...
         | 
         | [Seimi]
         | https://www.semanticscholar.org/paper/SEIMI%3A-Efficient-and...
         | 
         | [InversOS]
         | https://www.semanticscholar.org/paper/InversOS%3A-Efficient-...
        
         | zh3 wrote:
         | Even as a retro-grouch (with a bunch of 386 and 486 boxes, some
         | still in use), this makes sense. Not mentioned, but wondering
         | what sort of TPM/DRM bolt-ons will become mandatory as part of
         | this?
        
           | mepian wrote:
           | There are no TPM/DRM bolt-ons in the specification.
        
             | zh3 wrote:
             | Yet.
        
         | akira2501 wrote:
         | > All oversights and mistakes made by Intel over the years
         | 
         | Engineering is not about achieving perfection. It's about
         | organizing compromises to create a product that provides good
         | utility at a fair price. These were not oversights or mistakes
         | they were intentional design decisions.
         | 
         | Likewise.. you can see segmented memory as "nonsense" and a
         | "waste of development time" but Intel clearly didn't fail at
         | anything. They've been one of the largest and most successful
         | chip manufacturers for decades, because their products provided
         | real utility at affordable consumer prices and software
         | developers gladly put up with the technological choices to be a
         | part of that giant market.
        
           | fbdab103 wrote:
           | >They've been one of the largest and most successful chip
           | manufacturers for decades, because their products provided
           | real utility at affordable consumer prices...
           | 
           | Do not forget all of the anti-competitive AMD nonsense over
           | the years. Sabotaging AMD performance on benchmarking is my
           | stand-out, but there were also the payouts to Dell and others
           | to purchase exclusively Intel chips.
        
           | mistrial9 wrote:
           | anyone in the business side knows that Intel has succeeded
           | splendidly, at insider Defense deals, proprietary components
           | and market manipulation to crush rivals. Engineering is
           | always on display, but does not tell the full financial story
           | of Intel "greed is good" Corp.
        
           | buran77 wrote:
           | > They've been one of the largest and most successful chip
           | manufacturers for decades
           | 
           | Probably the 2 biggest reasons for this are that only 2
           | companies are allowed to "touch" x86, and that the second
           | company was easily undermined by nefarious business
           | practices. This resulted in a lot of things that were not
           | "oversights or mistakes" but rather for the longest time lax
           | approaches under a distinct lack of pressure.
           | 
           | It's hard to say how the x86 world would have looked like
           | today if someone like Nvidia had a license.
        
           | shrimp_emoji wrote:
           | Market capture via corner cutting excuses lazy engineering by
           | evil bloated monopolist. Got it.
           | 
           | (I'm still shocked how they've begun losing to AMD. Having
           | all of the money, dirty benchmarking tricks, and "let's just
           | hire all of the people" haven't worked out, incredibly.)
        
         | laserdancepony wrote:
         | The IA-32 ISA has been so successful _because_ of the no-
         | compromise downward compatibility, whether you _like_ that or
         | not.
         | 
         | See all the revolutionary ISAs from the 80s, 90s and 00s that
         | did away with all that legacy crap. Where are they now? I think
         | the only one still working is POWER.
        
           | fmajid wrote:
           | The ARM architecture was introduced in 1985 and the first
           | real shipping product, the Acorn Archimedes, in 1987.
        
             | deaddodo wrote:
             | ARM also is very backwards compatible, there have only been
             | two major breaks in compatibility. The ARM6 (which dropped
             | legacy memory addressing modes) and aarch64 (which made
             | certain extensions required + dropped support for old ARM7
             | and ARM9 modes).
        
               | kps wrote:
               | And the thumb stuff. You can buy 32-bit ARM chips that
               | have _zero_ binary instructions in common with any 32-bit
               | ARM before 1994.
        
               | deaddodo wrote:
               | Yeah, sorry; thumb was part of the ARM7/9 features I was
               | referring to. It also dropped the hardware Java support.
               | 
               | To be fair, both were always "optional" features; but
               | yes, there are thousands of devices that shipped with
               | them (one of the biggest being the GBA, with the majority
               | of games heavily relying on THUMB).
        
       | dtx1 wrote:
       | My biggest Issue would be Retro Gaming. Unless there is suitable
       | Emulation for 32Bit (on linux in my case) I'd be annoyed...
        
         | xanathar wrote:
         | Unless by that you also mean running old OSs (e.g. Windows
         | 95... but you probably can't run that already, in a world with
         | UEFI and no A20) then you're fine: they are removing ring-0
         | 32bit, but not ring-3 32bit.
        
         | EuropeOverlords wrote:
         | Why ?
        
           | dtx1 wrote:
           | Cause I like to play old games
        
         | mepian wrote:
         | QEMU [0] emulates many systems, including the 32-bit Intel
         | architecture. For retro gaming specifically I can recommend
         | PCem [1], which also emulates a wide range of sound and
         | graphics cards, from IBM MDA to 3dfx Voodoo 2.
         | 
         | [0] https://www.qemu.org/
         | 
         | [1] https://pcem-emulator.co.uk/
        
           | dtx1 wrote:
           | For REALLY old games PCEM works but for later games (think
           | generation half life 2+) it becomes very tedious to work with
           | VMs, especially when you have to do GPU Passthrough
        
             | mepian wrote:
             | Looks like 32-bit user mode (but not kernel mode) is not
             | getting removed, so these games should still work.
        
       | BooneJS wrote:
       | As long as their scalar and vector units still support packed
       | 8/16/32-bit data, this seems fine? Too bad there's no OS
       | telemetry on the number of legacy apps still in operation.
        
       | nickcw wrote:
       | I wonder what practical benefit this will have to the CPUs?
       | 
       | Presumably a few less transistors, but a small % I'd guess.
       | 
       | Will it make anything run faster? If so, what?
        
         | mepian wrote:
         | Verification would become significantly easier.
        
       | layer8 wrote:
       | If I read this correctly, 32-bit application code (ring 3) would
       | remain mostly unaffected.
        
         | EuropeOverlords wrote:
         | [flagged]
        
           | rowanG077 wrote:
           | Holy shit! Someone reiterated what they thought the article
           | said and you go nuclear. Do you think this is even a remotely
           | good way to comment?
        
             | Razengan wrote:
             | They woke up and chose violence.
        
           | ludocode wrote:
           | > Not even title of article says anything even remotely
           | suggesting it will go away.
           | 
           | As a matter of fact "64-Bit-Only" is in the title of the
           | article. That sure sounds like they are dropping 32-bit
           | support, does it not?
           | 
           | As the poster said, they are keeping 32-bit ring 3 support,
           | contrary to the title of the article.
        
       | 0zemp2c wrote:
       | cool but market forces are shoveling dirt on to the coffin of x86
       | no matter what, the window has closed
        
         | sgift wrote:
         | I've been hearing that for 20 years. Maybe this time it's true,
         | maybe not.
        
           | laserdancepony wrote:
           | Yes, Itanium will make the Pentium obsolete!
        
       | tempodox wrote:
       | Will they finally have consistent register names?
        
       | Iwan-Zotow wrote:
       | Will be there an i87 inside? With 80bits registers?
        
         | allenrb wrote:
         | It looks like they're keeping x87 support, which feels like a
         | missed opportunity. Does any modern compiler generate these
         | instructions?
         | 
         | Stripping out x87 and the associated 80 bit registers, weird
         | modes, etc would seem right in line with this effort. If
         | someone _really_ needs x87 support, trap those instructions and
         | emulate in kernel. Nothing with truly high performance
         | requirements will be using them. Intel could even provide the
         | code.
        
         | Veliladon wrote:
         | Yes. It'll still be there. The only difference will be that you
         | won't be able to do stuff that CR0 can control like disabling
         | the FPU for whatever reason.
        
           | monocasa wrote:
           | You'll still be able to do that too. X87 (and MMX using the
           | same register file) is still fully visible to 64 bit code.
        
       | EuropeOverlords wrote:
       | [flagged]
        
       | buran77 wrote:
       | > a 32-bit OS can only address 3.2 GB of RAM
       | 
       | Is that true though? 32bit Windows 2003 Enterprise or Datacenter
       | editions were perfectly capable of accessing 64GB or RAM [0].
       | Even so, that difference from the usual 4GB and 3.xGB was any
       | kind of memory usage for integrated GPU or virtual address space
       | mapping for different hardware.
       | 
       | [0] https://learn.microsoft.com/en-
       | us/windows/win32/memory/memor...
       | 
       | P.S. I think the "3.2" figure irked me more than the usual "32bit
       | OSes can't use more than 4GB". That's not a real limit and never
       | was. Even people with no IT knowledge would have noticed it
       | varies quite a bit anyway. I guess I expected a little more from
       | a tech reporter.
        
         | hydroreadsstuff wrote:
         | It's 4GB per address space / per process. In aggregate you can
         | use more.
        
           | [deleted]
        
           | 6510 wrote:
           | I vaguely remember some software that put the swap on a ram
           | drive.
        
         | pmalynin wrote:
         | Yea the 64 gig thing is from PAE I think.
        
       ___________________________________________________________________
       (page generated 2023-05-20 23:00 UTC)