Author Topic: using 32bit reg and memory move faster even in 16bit mode?  (Read 2783 times)

daydreamer

  • Member
  • *****
  • Posts: 1762
  • building nextdoor
using 32bit reg and memory move faster even in 16bit mode?
« on: January 11, 2020, 10:20:20 PM »
I read that 32bit cpu are optimised, to run 32bit instructions
In 32bit mode,so you should avoid run old 16bit code
Is it the same if you run 16bit mode with or without emulator
Code mov eax,mem. Mul ebx, div ebx, memory move with use 32bit chunks faster even if larger opcodes+ prefix?
SIMD fan and macro fan
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."

FORTRANS

  • Member
  • *****
  • Posts: 1110
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #1 on: January 12, 2020, 12:22:24 AM »
Hi,

   The original Pentium Pro processor was optimized
to run 32-bit code at some expense to running 16-bit
code.  This is when you compare it to the original
Pentium family of processors.  As the Pentium Pro
usually had a faster clock, it rarely ran 16-bit code
slower than a Pentium.  But its 32-bit performance
was so much better that it was a topic of discussion
at the time.

   Running 32-bit code in a 16-bit execution mode
seems to work okay, though I have only done so in
a few cases.  To know relative speeds of 16-bit and
32-bit code in a 16-bit mode, you would have to run
your own benchmarks to test your particular CPU or
emulator.  There are too many CPU generations since
the Pentium and Pentium Pro to make a blanket
statement about absolute performance.  It seems
logical that loading or storing 32-bit values using 32-bit
code would be faster than the equivalent 16-bit code.
But how much faster?  you would have to run a test.

Regards,

Steve N.

daydreamer

  • Member
  • *****
  • Posts: 1762
  • building nextdoor
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #2 on: January 12, 2020, 01:46:36 AM »
I think I try time big loops with different functions and change from old int's(16bit) to old long's(32bit) to see if there is any difference
but need to set a fixed freqency energy mode,to not get timings disturbed by turbo varying clock freqency
my old game programming book from PII's and PIII's time tell use 32bit for modern
could as well test modern built in fpu speed too

but it makes sense that AMD and Intel dont waste money/time to improve obsolete 16bit,that is even way too fast,for old retrogames anyway,dont know if they stopped improvement on 32bit in favour of 64bit mode only?

 
SIMD fan and macro fan
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."

jj2007

  • Member
  • *****
  • Posts: 11604
  • Assembler is fun ;-)
    • MasmBasic
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #3 on: January 12, 2020, 02:47:31 AM »
Back in the old days when I had a 32-bit OS I made several broad tests, and while I cannot find the results any more, it was pretty clear that 32-bit code runs a factor 6-7 faster than equivalent 16-bit executables. Which is btw one reason why I don't care about 64-bit code - it's sometimes 6-7% faster, but often even a bit slower than the 32-bit equivalent.

daydreamer

  • Member
  • *****
  • Posts: 1762
  • building nextdoor
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #4 on: January 12, 2020, 03:51:34 AM »
Back in the old days when I had a 32-bit OS I made several broad tests, and while I cannot find the results any more, it was pretty clear that 32-bit code runs a factor 6-7 faster than equivalent 16-bit executables. Which is btw one reason why I don't care about 64-bit code - it's sometimes 6-7% faster, but often even a bit slower than the 32-bit equivalent.
thanks
anyway real4's,real8's ,even real10's is worth testing too against 64bit integer,interesting to see if there is much or little speed advantage to switch from more versatile floating point on modern cpu vs 64bit integer,when huge numbers are needed

 
SIMD fan and macro fan
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."

tempuyax

  • Regular Member
  • *
  • Posts: 4
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #5 on: April 20, 2020, 04:59:53 PM »
Hi

As I know, a 16-bit system can only run on an ISA connection system. instead, 32 bits run on a modern system, PCI.
if all manufacturers or industrial ISA systems are no longer used in desktop or mobile computer machines, then reluctantly say goodbye with 16 BIT.

regards,

tempuyax

jj2007

  • Member
  • *****
  • Posts: 11604
  • Assembler is fun ;-)
    • MasmBasic
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #6 on: April 20, 2020, 07:16:25 PM »
Hi tempuyax,

Welcome to the Forum :thup:

In fact, 16-bit code is obsolete. You need a VM on a 64-bit OS to run it, or the MS-DOS player, mostly sufficient to test 16-bit code on 64-bit Windows.

For details, see this post.

felipe

  • Member
  • *****
  • Posts: 1367
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #7 on: May 13, 2020, 02:28:17 AM »
As I know, a 16-bit system can only run on an ISA connection system. instead, 32 bits run on a modern system, PCI.
if all manufacturers or industrial ISA systems are no longer used in desktop or mobile computer machines, then reluctantly say goodbye with 16 BIT.

Although it's true that in general 16 bit dos programs are obsolete, you still can run dos in a new machine (maybe you will get some incompatibilities while running some programs of course) because most pc hardware are still compatible with the old ibm pc. I still can run ms-dos in my intel-i5 and run all the programs written in assembly by me in the system or play some old games written by others in it (some are really fun  :toothy:), even if they use the old bios functionalities. All this stuff using ms-dos, not a virtual machine over windows. There is the freedos project, but i prefer a portable version (in usb) of ms-dos.  :icon_idea:

brianvs

  • Regular Member
  • *
  • Posts: 11
  • Longtime PharLap programmer, 32-bit since 1988
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #8 on: June 17, 2020, 11:28:32 PM »
I boot in Native 16-bit mode on my Intel I5 based computer on the SATA 512GByte drive, no problem running 16-bit code and PharLap DOS extenders. The latter can use up to 4GBytes of memory, and can use the VMMDRV that was offered under PharLap.

I use the FDISK that comes with FreeDOS to partition the drive as a single FAT-32 partition, and use FORMAT/s that comes with Win98 to make the C: drive bootable. I make the drive dual-boot DOS7.1 (win98) and XP. I'm using Panasonic CF-53 and CF-52 laptops, which offer native USB support for devices under the BIOS, which includes DOS. I use these to develop embedded code running on an ICOP VortexDX and now an ICOP VortexDX3. I also picked up an ICOP VortexMX that was a "thin stack" network node, but makes a great embedded processor. The ICOP Vortex line runs the PharLap extenders without problems. PharLap runs in 32-bit mode under DOS, gives access to PCI functions.

The CF-53 is "very compatible" with older software- the RS232 is capable of running the JDM device burners, I ended up writing my own driver for the JDM programmer for an Ampro PC104 computer, works with the CF-53.

The Panasonic Toughbooks use drive caddies, I just pop the caddy and put in a WIN10 disk/caddy when wanting to use it in 64-bit mode.
« Last Edit: June 18, 2020, 12:46:15 AM by brianvs »

brianvs

  • Regular Member
  • *
  • Posts: 11
  • Longtime PharLap programmer, 32-bit since 1988
Re: using 32bit reg and memory move faster even in 16bit mode?
« Reply #9 on: June 18, 2020, 02:20:40 AM »
Hi

As I know, a 16-bit system can only run on an ISA connection system. instead, 32 bits run on a modern system, PCI.
if all manufacturers or industrial ISA systems are no longer used in desktop or mobile computer machines, then reluctantly say goodbye with 16 BIT.

regards,

tempuyax

ISA is still used for embedded systems, the ICOP Vortex line offers ISA support.

https://www.icop.com.tw/categories/31

You can pick up some of the older "Thin Client" computers that can be repurposed as DOS machines,

Random Ebay Example:

https://www.ebay.com/itm/EBOX-3350MX-Thin-Client-DMP-Electronics-Vortex86MX-chip-1GHz/174080562171

I picked up a 3310MX-C85 used as a Thin Client for under $50, runs real-mode DOS and extended 32-bit PharLap code.
These boxes are cheap, and can be fun- especially if you want to learn interrupts and realtime control. I used HPUSBW to create a bootable SD card for the 3310MX, boots into WIN98 realmode DOS7.1.