Apa itu mesin virtual?
- Mesin virtual (VM) adalah program yang bekerja seperti komputer. VM mensimulasikan CPU dan beberapa komponen perangkat keras sehingga dapat melakukan operasi aritmetika, membaca dan menulis ke memori, serta berinteraksi dengan perangkat I/O.
- VM dibuat untuk mereproduksi perilaku komputer tertentu atau untuk mempermudah pengembangan perangkat lunak.
- Java Virtual Machine (JVM) adalah contoh yang sukses, yang memungkinkan program Java, Kotlin, dan Clojure berjalan di berbagai perangkat.
Arsitektur LC-3
- LC-3 adalah arsitektur komputer untuk pendidikan yang menunjukkan konsep-konsep utama yang digunakan pada CPU modern.
- LC-3 memiliki 65.536 lokasi memori, dan setiap lokasi menyimpan nilai 16-bit.
- Terdapat 10 register, di antaranya 8 register serbaguna, 1 program counter (PC), dan 1 register condition flag (COND).
Set instruksi
- Instruksi adalah perintah yang mengarahkan CPU untuk menjalankan operasi dasar.
- LC-3 memiliki 16 opcode, dan setiap instruksi terdiri dari panjang 16-bit.
- Instruksi terdiri dari opcode dan parameter yang diperlukan untuk operasi tersebut.
Condition flag
- Register R_COND menyimpan condition flag yang menunjukkan tanda dari hasil perhitungan terbaru.
- LC-3 menggunakan 3 condition flag untuk menunjukkan tanda hasil perhitungan.
Eksekusi program
- Program memuat instruksi dari memori, menaikkan register PC, memeriksa opcode, lalu menjalankan instruksi.
- Instruksi dapat mengubah PC untuk mengendalikan alur eksekusi.
Implementasi instruksi
- Instruksi ADD menjumlahkan dua angka dan menyimpan hasilnya ke register.
- Instruksi LDI memuat nilai dari memori lalu menyimpannya ke register.
- Setiap instruksi diimplementasikan sesuai spesifikasi dan harus memperbarui flag.
Trap routine
- LC-3 menyediakan trap routine untuk menjalankan tugas umum seperti input keyboard dan output string.
- Setiap trap routine diidentifikasi dengan trap code dan dijalankan dengan instruksi TRAP.
- Trap routine ditulis dalam C, dan meningkatkan performa VM dengan memanfaatkan routine I/O milik OS.
1 komentar
Komentar Hacker News
Seorang pengguna pernah mengambil kelas pengantar ilmu komputer di community college, merancang set instruksi CPU sederhana, lalu menulis VM dan assembler untuk menjalankan program assembly. Proses ini membantunya memahami banyak hal tentang komputer
Ada pendapat bahwa setelah menonton seri CPU breadboard dari Ben Eater, seseorang jadi ingin merancang dan mengemulasikan CPU miliknya sendiri
Daftar buku yang direkomendasikan:
Ada pendapat bahwa arsitektur pendidikan seperti Brookshear Machine dan Little Computer berbeda dari sistem nyata, dan bisa memberi pemahaman yang terdistorsi kepada mahasiswa
Ada pendapat bahwa istilah "Virtual Machine" pada era modern umumnya merujuk pada lingkungan yang menggunakan fitur virtualisasi perangkat keras