Does CPU virtualization feature have anything to do with PCSX2?
#1
I remember I read somewhere that PCSX2 creates some sorta PlayStation 2 virtual machine. Does virtualization feature like Intel VT-x and AMD-V have anything to do with PCSX2, and maybe other console emulators?

[Image: 091213_0923_EnableHyper5.png]
Reply

Sponsored links

#2
I dunno specific technicalities, but i imagine this is no big deal, but adress translation. It's like a thread number label with a memory translator. Some irrelevant stuff. Say...

Thread 12 is emulating a playstation cpu in a 32-bit app, using 32-bit memory adresses consuming the wow64 virutal memory range of 0x00000000 - 0x00200000. At the same time thread 17 is emulating a playstation 2 cpu in another 32-bit app, using 32-bit memory adresses too and consuming the wow64 virtual memory range of 0x00000000 - 0x02000000. There it's colliding 2 megabyte at 0x00000000 forward. This is where the virtualization kicks in. The virtual memory adresses are always remapped. In this scenario or generally this could be anywhere. I have no clue if this translation is even absolute to get to an effectively physical memory adress.

My assumption it is physical at that point, it'd be for example: memory of thread 12 could start at 64-bit hardware adress 0x0000000002000000 and the memory of thread 17 0x0000000080000000. Or somewhere else. Matter of virtualization is remapping the virtual memory ranges.
Reply
#3
VT-x and AMD-V have no effect on PCSX2. they are for creating a compartmentalised x86 environment, we make our own virtual machine
[Image: ref-sig-anim.gif]

Reply
#4
as refraction said, those techs aren't in use with pcsx2. They're designed to allow virtualization hosts, like esx (aka vmware) and hyper-v to access the processor directly. It's there to make running a tier 1 hypervisor more efficient
amd tr 1950x                                                 amd ryzen 5 2500u
asrock x399 taichi                                         amd vega 8 
XFX Radeon rx570                                       16gb ddr 4 2400 ram
32gb gskill ddr4-3200                                   1tb nvme ssd
Debian Bullseye                                           480gb sata ssd
Custom loop water cooled                           HP envy x360
nzxt 340 case
Reply
#5
Note: MMU job is to convert the logical address space (the one used by an application) to a physical address space (AKA the RAM).

Without the extension, you have
* the hardware MMU for the host
* a software emulated MMU for the guest

The idea of some extensions is to allow the guest to use the hardware MMU. Basically it add an indirection level on the HW unit to select either guest or host address space.

Currently PCSX2 uses a software emulated MMU. In theory, those extensions would allow to replace it with a faster version. The questions that remains are "do you really need an MMU ? What is the expected gain ? Will users install a kernel driver that give full access to their PC ?"
Reply
#6
Kernal access to programs from the internet.... yeaaaaaaa where do I sign up?

Actually my emulation PC has no useful or important data on it so I wouldn't really care, but I can see why it could be an issue for some.

Wouldn't this also cause possible compatibility issues across OS versions depending on how it could be implemented? Or would the possibility of that be less then say switching from VC 2015 to VC 2017?
Reply
#7
Ofc, every time you have a new OS, you need to update your driver (in particular in the Linux world).
Reply




Users browsing this thread: 1 Guest(s)