I'm trying to understand the differences between VMID (Virtual Machine Identifier) and ASID (Address Space Identifier) in the context of virtualization and operating systems.
Refer the (ARM Documentation) ; "EL0/EL1 translations can also be tagged with a Virtual Machine Identifier (VMID). VMIDs allow translations from different VMs to coexist in the cache. This is similar to the way in which ASIDs work for translations from different applications. In practice, this means that some translations will be tagged with both a VMID and an ASID, and that both must match for the TLB entry to be used."
While both seem to be used for identification purposes, I'm unclear on their specific roles and how they relate to each other. Could someone please provide a detailed explanation of the differences between VMID and ASID, including their purposes, usage scenarios, and scopes? Should I use ACID to tag different VMs instead of VMID? Additionally, any insights into how they impact system performance and security would be greatly appreciated. Thank you!