Giriş:
Modern işlemci mimarilerinde güvenlik, izolasyon ve kaynak yönetimi her zamankinden daha kritik bir hale geldi. Özellikle aynı donanım üzerinde birden fazla işletim sistemini güvenli bir şekilde koşturmak, uç cihazlardan devasa sunuculara kadar (özellikle sunucularda yaşanabilen komşu işlem verilerinin çalınması olayları) her alanda bir standart. Peki, bu süreci yöneten Hypervisor tam olarak ne işe yarar ve RISC-V mimarisi “Hypervisor (H) Uzantısı” ile donanım seviyesinde bu işi nasıl çözer?
Gelin, sanallaştırmanın temellerinden başlayıp, işin donanım tarafındaki (RTL seviyesine kadar inen) gereksinimlerine birlikte göz atalım.
Hypervisor Ne İşe Yarar?
En basit tabirle Hypervisor (veya Virtual Machine Monitor - VMM), fiziksel donanım kaynaklarını (CPU, bellek, çevre birimleri) soyutlayarak birden fazla bağımsız işletim sisteminin (Misafir OS / Guest OS) aynı yonga üzerinde eşzamanlı çalışmasını sağlayan bir yazılım katmanıdır.
Bunun sağladığı en büyük avantaj izolasyondur. Misafir işletim sistemlerinden birinde meydana gelen bir çökme, kernel sorunu veya bir güvenlik zafiyeti (örneğin zararlı bir bellek erişimi), diğer işletim sistemlerini veya ana sistemi (Host) etkileyemez. Bu durum, özellikle güvenlik odaklı işlemci tasarımlarında mimari düzeyde hayati bir bariyer oluşturur.
Donanım Desteği Olmadan Sanallaştırma: “Trap-and-Emulate”
Peki, donanımımızda özel bir sanallaştırma desteği (H-Extension gibi) yoksa bir Hypervisor nasıl çalışır? Burada devreye yazılımsal taklit (Trap-and-Emulate) yöntemi girer.
Normal şartlarda bir işletim sistemi, donanıma doğrudan eriştiğini sanır ve “ayrıcalıklı” (privileged) buyruklar çalıştırmak ister (örneğin page table değiştirmek veya bir interrupt’ı yönetmek gibi). Ancak donanım desteği olmayan bir sanallaştırma senaryosunda şu adımlar yaşanır:
-
Trap (Yakalama): Misafir OS, yetkisi olmayan ayrıcalıklı bir işlem yapmaya kalktığında, donanım bir hata (exception/trap) üretir ve kontrolü zorunlu olarak en üst yetkideki OS’a geçirir.
-
Emulate (Taklit Etme): Main OS araya girer, Misafir OS’in ne yapmaya çalıştığını anlar, bu işlemi yazılımsal olarak taklit eder (sanki gerçekten o donanıma erişilmiş gibi Misafir OS’in durum kaydedicilerini günceller).
-
Resume (Devam Etme): Kontrol tekrar Misafir OS’e geri verilir.
Sorun nedir? Bu işlem inanılmaz derecede maliyetlidir. Her ayrıcalıklı buyrukta bağlam değişimi (context switch) yapmak ve yazılımda register durumlarını hesaplamak, sistem performansını ciddi şekilde baltalar.
RISC-V H-Extension: Gerçeklemek İçin Donanım Tarafında Neler Gerekiyor?
İşte donanım destekli sanallaştırma bu devasa “Trap-and-Emulate” yükünü ortadan kaldırmak için vardır. RISC-V H-Extension, işlemcinin mimarisine yeni yetenekler ekleyerek sanallaştırmayı doğrudan donanım (hardware) üzerinden akıcı hale getirir.
Bir çip tasarımında (ASIC veya FPGA üzerinde) H-Extension’ı desteklemek için donanıma şu temel blokların ve özelliklerin eklenmesi gerekir:
1. Yeni Ayrıcalık Seviyeleri (Privilege Modes)
Standart M (Machine), S (Supervisor) ve U (User) modlarına ek olarak mimariye yeni durumlar eklenir:
-
HS-Mode (Hypervisor-Extended Supervisor): Hypervisor’ın çalıştığı, gerçek donanıma hükmeden moddur.
-
VS-Mode (Virtual Supervisor): Misafir işletim sisteminin çalıştığı moddur. Kendini S-Mode’da sanır ancak donanım arka planda onun yetkilerini kısıtlar.
-
VU-Mode (Virtual User): Misafir OS üzerindeki kullanıcı uygulamalarının çalıştığı moddur.
2. İki Aşamalı Adres Dönüştürme (Two-Stage MMU)
Donanım tasarımcıları için H-Extension’ın en maliyetli ve karmaşık bloğu burasıdır. Bellek Yönetim Biriminin (MMU) yapısı baştan aşağı değişir.
-
Aşama 1 (VS-Stage): Misafir OS, Sanal Adresi (VA), Misafir Fiziksel Adresine (GPA) çevirir.
-
Aşama 2 (G-Stage): Arka planda donanım, bu GPA’yı alıp doğrudan Gerçek Host Fiziksel Adresine (HPA) çevirir.
Bu iki aşamanın donanım tarafından (TLB’ler ve donanımsal page-table walker’lar ile) yapılması, yazılımın araya girmesini engeller ve bellek erişim hızını muazzam ölçüde artırır.
3. Control and Status Registers
Hypervisor’ın Misafir OS’in durumunu sürekli takip etmemesi için, donanıma VS-CSR (Virtual Supervisor CSR) adı verilen kopyalar eklenir. Misafir OS örneğin sstatus yazmacına (register) yazmaya çalıştığında, donanım bir “trap” üretmek yerine bu veriyi şeffaf bir şekilde vsstatus yazmacına yönlendirir. Böylece yazılımsal taklite gerek kalmaz.
4. Kesme (Interrupt) ve İstisna (Exception) Delegasyonu
Normalde tüm donanım kesmeleri en üst yetkiliye (M-Mode veya HS-Mode) gider. Donanıma eklenen yetki devri mekanizmaları (hedeleg, hideleg gibi CSR’ler) sayesinde, örneğin Misafir OS’in ürettiği bir sayfa hatası (page fault) doğrudan VS-Mode’a yönlendirilir. Hypervisor üzerinde çalıştırılmak zorunda kalınmaz.
Özetle
Yazılımla yapılan sanallaştırma bir çevirmen aracılığıyla konuşmaya benzer; yavaştır ve sürekli araya birinin girmesini gerektirir. RISC-V Hypervisor uzantısı ise işlemcinin donanımına doğrudan ikinci bir dil öğretmek gibidir. Özellikle gömülü sistemlerde, otomotivde ve veri merkezlerinde kaynakları güvenle izole etmek için RTL seviyesinde bu modüllerin kusursuz bir şekilde tasarlanması şarttır.