Sanal makine nedir?
- Sanal makine (VM), bilgisayar gibi çalışan bir programdır. CPU’yu ve bazı donanım bileşenlerini simüle ederek aritmetik işlemler gerçekleştirebilir, belleğe okuma ve yazma yapabilir ve G/Ç aygıtlarıyla etkileşime girebilir.
- VM, belirli bir bilgisayarın davranışını yeniden üretmek veya yazılım geliştirmeyi kolaylaştırmak için oluşturulur.
- Java Virtual Machine (JVM) başarılı bir örnektir; Java, Kotlin ve Clojure programlarının farklı cihazlarda çalışmasını sağlar.
LC-3 mimarisi
- LC-3, modern CPU’larda kullanılan temel kavramları gösteren eğitim amaçlı bir bilgisayar mimarisidir.
- LC-3, 65.536 bellek konumuna sahiptir ve her konum 16 bitlik bir değer depolar.
- 10 kayıt vardır; bunların 8’i genel amaçlı kayıt, 1’i program sayacı (PC) ve 1’i koşul bayrakları kaydıdır (COND).
Komut kümesi
- Komutlar, CPU’ya gerçekleştirmesi gereken temel işleri söyleyen talimatlardır.
- LC-3’te 16 opkod vardır ve her komut 16 bit uzunluğundadır.
- Komutlar, opkod ile işlem için gereken parametrelerden oluşur.
Koşul bayrakları
- R_COND kaydı, en son hesaplamanın işaretini gösteren koşul bayraklarını saklar.
- LC-3, hesaplama sonucunun işaretini göstermek için 3 koşul bayrağı kullanır.
Program yürütme
- Program, komutları bellekten yükler, PC kaydını artırır, opkodu kontrol eder ve komutu yürütür.
- Komutlar, PC’yi değiştirerek yürütme akışını kontrol edebilir.
Komutların uygulanması
- ADD komutu iki sayıyı toplar ve sonucu bir kayda yazar.
- LDI komutu bellekten bir değer yükler ve bunu bir kayda yazar.
- Her komut, teknik özelliklere göre uygulanır ve bayrakları güncellemelidir.
Trap rutinleri
- LC-3, klavye girdisi ve metin çıktısı gibi yaygın işlemleri gerçekleştirmek için trap rutinleri sağlar.
- Her trap rutini bir trap koduyla tanımlanır ve TRAP komutuyla çalıştırılır.
- Trap rutinleri C ile yazılır; işletim sisteminin G/Ç rutinlerinden yararlanarak VM’in performansını artırır.
1 yorum
Hacker News görüşleri
Bir kullanıcı, community college'da bilgisayar bilimine giriş dersi alırken basit bir CPU komut seti tasarlayıp, bir VM ve assembler yazarak assembly programlarını çalıştırma deneyimi yaşadığını söyledi. Bu sürecin bilgisayarlar hakkında pek çok şeyi anlamasını sağladığını belirtti
Ben Eater'ın breadboard CPU serisini izledikten sonra kendi CPU'sunu tasarlayıp emüle etmek istediğini söyleyen bir görüş vardı
Önerilen kitap listesi:
Brookshear Machine ve Little Computer gibi eğitim amaçlı mimarilerin gerçek sistemlerden farklı olduğu ve öğrencilere çarpıtılmış bir anlayış verebileceği yönünde bir görüş vardı
"Virtual Machine" teriminin günümüzde genellikle donanım sanallaştırma özelliklerini kullanan ortamları ifade etmek için kullanıldığı yönünde bir görüş vardı