• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Intel Updates 64-Bit Only "X86S" Instruction Set Architecture Specification to Version 1.2

Joined
Jan 3, 2021
Messages
3,586 (2.48/day)
Location
Slovenia
Processor i5-6600K
Motherboard Asus Z170A
Cooling some cheap Cooler Master Hyper 103 or similar
Memory 16GB DDR4-2400
Video Card(s) IGP
Storage Samsung 850 EVO 250GB
Display(s) 2x Oldell 24" 1920x1200
Case Bitfenix Nova white windowless non-mesh
Audio Device(s) E-mu 1212m PCI
Power Supply Seasonic G-360
Mouse Logitech Marble trackball, never had a mouse
Keyboard Key Tronic KT2000, no Win key because 1994
Software Oldwin
I didn't use Microsoft Windows Vista and Windows 8.x OSs at all but I know that 16-bit software support is Not available in Windows 7, Windows 10 and Windows 11 OSs.
16-bit programs run in 32-bit Windows, at least in 7.
Edit: they run in 32-bit Windows 10 too. Apparently you need to enable NTVDM.
 
Last edited:

tfp

Joined
Jun 14, 2023
Messages
89 (0.16/day)
In one hand x86 is "so crappy and power intensive" because it has all this old ISA that must be support but isn't used often so it should be cleaned up.
In the other hand "OMG how will I run my 20+ year old DOS games that need 16bit support and COBOL programs?!?!?. They both need the latest HOTNESS"

If AMD came up with this I think there would be less complaints, or maybe just complaints by different people.
 
Joined
Jan 2, 2019
Messages
146 (0.07/day)
16-bit programs run in 32-bit Windows, at least in 7.
Edit: they run in 32-bit Windows 10 too. Apparently you need to enable NTVDM.

Corrected my initial post and explicitly specified that 16-bit software support disabled by Microsoft on 64-bit versions of Windows ( possibly around 2007 year ).

16-bit programs run in 32-bit Windows, at least in 7.
Edit: they run in 32-bit Windows 10 too. Apparently you need to enable NTVDM.

>>...Apparently you need to enable NTVDM...

No.

16-bit software support is disabled on 64-bit WIndows completely.

Corrected my initial post and explicitly specified that 16-bit software support disabled by Microsoft on 64-bit versions of Windows ( possibly around 2007 year ).



>>...Apparently you need to enable NTVDM...

No.

16-bit software support is disabled on 64-bit WIndows completely.

Here is a link to look at for more details:

 
Joined
Mar 16, 2017
Messages
245 (0.09/day)
Location
behind you
Processor Threadripper 1950X
Motherboard ASRock X399 Professional Gaming
Cooling IceGiant ProSiphon Elite
Memory 48GB DDR4 2934MHz
Video Card(s) MSI GTX 1080
Storage 4TB Crucial P3 Plus NVMe, 1TB Samsung 980 NVMe, 1TB Inland NVMe, 2TB Western Digital HDD
Display(s) 2x 4K60
Power Supply Cooler Master Silent Pro M (1000W)
Mouse Corsair Ironclaw Wireless
Keyboard Corsair K70 MK.2
VR HMD HTC Vive Pro
Software Windows 10, QubesOS
That also has nothing to do with the ISA, but rather software (again) and bus limitations. I'm not sure if it's possible to do P2P transfers with Sata, but with NVMes you can use PCIe P2P (and not only NVMes) without going through RAM at all. It works in exact the same way in both ARM and x86.
AHCI (aka SATA) and later generation ATA (aka IDE) use PCI busmastering DMA which I believe allows device to device transfers, it's just a good idea to buffer to RAM. Ancient ISA DMA couldn't but that was cursed by an angry god and you often didn't want to use it anyway. D2D works fine on NVMe's provided they have DRAM caches because they're buffering with their on board RAM more effectively than the CPU ever could with system RAM.
>>...The x86 architecture's strength has long been its extensive legacy support,
>>...allowing older software to run on modern hardware.

I didn't use Microsoft Windows Vista and Windows 8.x 64-bit OSs at all but I know that 16-bit software support is Not available in Windows 7, Windows 10 and Windows 11 64-bit OSs.

For example, this is an error message if you try to execute a legacy 16-bit Turbo C++ compiler version 3.0 on Windows 7 64-bit :
...
This version of C:\WorkLib\TC30\Bin\TCC.EXE is not compatible with the version of Windows you're running.
Check your computer's system information to see whether you need a x86 (32-bit) or x64 (64-bit) version of
the program, and then contact the software publisher.

...

So, in reality Microsoft disabled 16-bit software support on 64-bit OSs a long time ago ( possibly around 2007 year ).
This was really decided by AMD not Microsoft. The long and short of it (you could read for hours about this and related stuff) is that a 32-bit x86 processor running in 32-bit Protected Mode (as in a 32-bit OS) can be easily switched into a 16-bit Virtual 8086 Mode to run a 16-bit program. However when AMD introduced x64 (as 64-bit "Long Mode"), while they gave a similar Compatability Mode for running 32-bit programs to switch to, they did not allow you to switch to Virtual 8086 Mode from Long Mode (I remembered things incorrectly earlier). I don't know why AMD decided to do this, especially since you can switch to v8086 from Protected Mode, but for whatever reason they decided you can't go from 64-bit to 16-bit.
 
Joined
Oct 24, 2022
Messages
234 (0.30/day)
This has nothing to do with unifying CPU and GPU memory nor would that be a very good idea. CPU memory prefers lower latency while GPU memory prefers high bandwidth. It's not a hard rule (consoles do it) but it gives best performance overall. What's more GPU memory moves data so fast that connectors ruin data integrity so there's no way to make it upgradable or replaceable without soldering. This is starting to become a problem for CPU memory too and is why laptops with soldered RAM tend to have higher RAM speeds than when they're on SODIMMs.

As for copying HDDs, buffering to RAM is pretty much required even today. When one device has data, the other often isn't immediately able to receive it. This is especially true with HDDs due to files being in different places and split up into different fragments on disk. I don't know if this is still true but it used to be faster to read and write data near the edge of a disk than the center because the tracks near the edge are moving faster.

Another keyboard engineer... :rolleyes:
 
Joined
Mar 16, 2017
Messages
245 (0.09/day)
Location
behind you
Processor Threadripper 1950X
Motherboard ASRock X399 Professional Gaming
Cooling IceGiant ProSiphon Elite
Memory 48GB DDR4 2934MHz
Video Card(s) MSI GTX 1080
Storage 4TB Crucial P3 Plus NVMe, 1TB Samsung 980 NVMe, 1TB Inland NVMe, 2TB Western Digital HDD
Display(s) 2x 4K60
Power Supply Cooler Master Silent Pro M (1000W)
Mouse Corsair Ironclaw Wireless
Keyboard Corsair K70 MK.2
VR HMD HTC Vive Pro
Software Windows 10, QubesOS
Another keyboard engineer... :rolleyes:
Probably should have replied to my most recent comment if you wanted to give me that title. I like low level stuff.
 
Joined
Jan 3, 2021
Messages
3,586 (2.48/day)
Location
Slovenia
Processor i5-6600K
Motherboard Asus Z170A
Cooling some cheap Cooler Master Hyper 103 or similar
Memory 16GB DDR4-2400
Video Card(s) IGP
Storage Samsung 850 EVO 250GB
Display(s) 2x Oldell 24" 1920x1200
Case Bitfenix Nova white windowless non-mesh
Audio Device(s) E-mu 1212m PCI
Power Supply Seasonic G-360
Mouse Logitech Marble trackball, never had a mouse
Keyboard Key Tronic KT2000, no Win key because 1994
Software Oldwin
Corrected my initial post and explicitly specified that 16-bit software support disabled by Microsoft on 64-bit versions of Windows ( possibly around 2007 year ).
16-bit software support is disabled on 64-bit WIndows completely.
It's not about disabling, it's just that MS never made the appropriate NTVDM. NTVDM is a compatibility layer, or some sort of VM ... I may use wrong terms, my understanding is not very good here. But it's not an emulator.

Not even 64-bit XP and Server 2003 had the ability to run 16-bit programs:

But, just as a proof of concept, some hacker put the right pieces together in the right order and it worked. Here's the NTVDMx64 project, with a lengthy explanation.

they did not allow you to switch to Virtual 8086 Mode from Long Mode
Maybe it's possible as a two-step transition in a VM inside another VM (NTVDM inside WOW64). That's how I understand the operation of the NTVDMx64.
 
Top