[Tech] Ampliació del nucli de RISC-V amb les extensions de virtualització

La virtualització, com a terme, va aparèixer en els anys 60 i, en el seu moment, es va utilitzar per referir-se a el concepte de dividir els recursos d'un mainframe entre diferents aplicacions. En l'actualitat, es refereix a la creació d'una màquina virtual, un programari que emula un ordinador real amb el seu propi sistema operatiu.

Aquestes màquines virtuals ofereixen nombrosos avantatges com la facilitat de desplegament en diferents configuracions de maquinari, i la possibilitat que una sola màquina (física) executi moltes màquines virtuals. Tots els serveis en el núvol (p.ex. Amazon Web Services, Microsoft Azure, Google Cloud) utilitzen àmpliament la virtualització [1,2].

No obstant això, la virtualització en si mateixa pot ser bastant lenta si es gestiona completament mitjançant programari. En conseqüència, la majoria de les CPU comercials ofereixen suport de maquinari per accelerar la virtualització. Això es fa mitjançant la implementació d'un hipervisor a nivell de maquinari (també conegut com bare metal hypervisor). Un hipervisor permet que un sistema informàtic executi múltiples màquines virtuals convidades dins d'un sistema amfitrió.

En DRAC, hem implementat l'extensió H (Hypervisor) tal com s'especifica a la Fundació RISC-V [3]. La figura següent descriu les principals addicions a la línia base de RISC-V ISA (és a dir, sense les extensions de l'hipervisor). El nucli bàsic de RISC-V només té tres modes d'execució (màquina, supervisor i usuari), mentre que l'extensió de l'hipervisor afegeix una manera de supervisor (mode HS) i dues maneres de virtualització (supervisor virtualitzat i usuari virtualitzat).

 

principals addicions a la línia base de RISC-V ISA

 

L'objectiu de l'extensió de l'hipervisor és millorar el rendiment de la virtualització, principalment reduint el nombre d'interrupcions i excepcions que ha de gestionar el sistema operatiu amfitrió. L'enfocament adoptat consisteix a virtualitzar la manera de supervisor (manera S), substituint la manera de supervisor existent per una manera de supervisor estès pel hipervisor (mode HS) i afegint el mode d'usuari virtual (mode VU) i la manera de supervisor virtual (mode VS). A més, s'afegeix una segona etapa a el mecanisme de traducció d'adreces, Virtualitzant la memòria i els dispositius d'E/S mapejats en memòria per al SO hoste.

===

Aquest treball ha estat finançat pel Fons de Desenvolupament Regional de la Unió Europea en el marc de el Programa Operatiu FEDER de Catalunya 2014-2020 amb una subvenció de l'50% de el cost total elegible sota el projecte DRAC amb número 001-P-001.723

[1] Mahesh Chand, “Top 10 Cloud Service Providers In 2021”, https://www.c-sharpcorner.com/article/top-10-cloud-service-providers/

[2] Infopulse, “What is the Role of Virtualization in Cloud-based Services?, https://www.infopulse.com/blog/what-is-the-role-of-virtualization-in-cloud-based-services/

[3] Andrew Waterman, Krste Asanovic (editors), “The RISC-V Instruction Set Manual Volume II: Privileged Architecture”, Document Version 20190608-Priv-MSU-Ratified, https://github.com/riscv/riscv-isa-manual/releases/download/Ratified-IMFDQC-and-Priv-v1.11/riscv-privileged-20190608.pdf