What is Instruction set Architecture:
A computer's Instruction Set Architecture (ISA) determines how software controls the CPU. The ISA specifies what the processor can do and how it does it. Users can only interact with hardware through ISA. It's a programmer's manual because assembly language, compiler, and application programmers can see it. The ISA defines supported data formats, registers, how hardware maintains main memory, important features (such as virtual memory), microprocessor instructions, and input/output model. The ISA can be expanded by adding instructions, capabilities, and larger address and data values.
Instruction set level virtualization:
Instruction set virtualization is a way to emulate the instruction set of one processor on another processor. It is a type of processor virtualization. As a virtualization layer, it lets the instruction set architectures of different processors run on or be emulated by other processors.
At the ISA level, virtualization emulates a specified ISA with the hosts. ISA emulation may run MIPS programs on an x86 host. With this approach, legacy binary code written for various processors can operate on any new hardware host computer. Emulating ISAs on any system creates virtual ISAs.
Basic emulation is code interpretation. A program interprets source instructions one by one. One source instruction may need tens or hundreds of native target instructions. It's slow. Dynamic binary translation improves performance. This method converts dynamic source blocks to target instructions. To improve translation performance, basic blocks can be extended to program traces or superblocks. Emulating instructions needs binary translation and optimization. A V-ISA compiler needs a processor-specific software translation layer.
some highlights are as follows:
· Virtualization based on ISA is commonly done in software, which emulates the ISA and interprets and converts guest ISA to native (or host) ISA.
· To simulate a device, it emulates hardware-specific IN/OUT instructions and provides a certain amount of device abstractions.
· QEMU is common ISA-based virtualization.
· It can run different operating systems and is mostly used for software debugging and education.
· Because of its inefficiency in managing exceptions and translating instructions, ISA-based virtualization has poor performance when compared to other types of virtualization systems.
Conclusion:
The idea of virtualization can be used not just for parts of a system like disks, but also for the whole machine. Developers add a software layer to a real machine to support the architecture they want to use for a virtual machine. By doing this, a VM can get around real machine limitations like incompatibility and lack of hardware resources.
Sources:
https://www.sciencedirect.com/topics/computer-science/instruction-set-architecture
https://www.hitechnectar.com/blogs/virtualization-implementation-levels/#InstructionSetArchitectureLevel
https://www.arm.com/glossary/isa
https://www.techopedia.com/definition/30880/instruction-set-virtualization#:~:text=Instruction set virtualization is a,delivered as a virtualization layer.
https://www.brainkart.com/article/Levels-of-Virtualization-Implementation_11329/