3 poin oleh GN⁺ 2024-12-28 | 1 komentar | Bagikan ke WhatsApp

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

 
GN⁺ 2024-12-28
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

    • Ia merasa seluruh tahapan komputasi bisa dipelajari dengan cara ini, mulai dari merancang CPU sungguhan untuk FPGA hingga menulis OS sederhana dan program
    • Jika tidak membutuhkan performa dan keamanan komputasi modern, proses seperti ini ternyata sangat sederhana
  • Ada pendapat bahwa setelah menonton seri CPU breadboard dari Ben Eater, seseorang jadi ingin merancang dan mengemulasikan CPU miliknya sendiri

    • Ia menyatakan keinginan untuk meluangkan waktu agar bisa benar-benar merancangnya
  • Daftar buku yang direkomendasikan:

    • "Virtual Machines: Versatile Platforms for Systems and Processes" by Smith and Nair - tampaknya merupakan buku gambaran umum topik yang komprehensif
    • "Virtual Machines" by Iain Craig - tampaknya merupakan buku praktik tentang bahasa dan VM
    • "Virtual Machine Design and Implementation in C/C++" by Bill Blunden - tampaknya merupakan buku implementasi praktis
    • Disebutkan bahwa akan membantu jika orang yang pernah membaca buku-buku ini menambahkan pendapatnya
  • Ada pendapat bahwa arsitektur pendidikan seperti Brookshear Machine dan Little Computer berbeda dari sistem nyata, dan bisa memberi pemahaman yang terdistorsi kepada mahasiswa

    • Disarankan bahwa orang yang ingin mempelajari cara kerja komputer sebaiknya mengambil mata kuliah sistem operasi
    • Jika menginginkan tutorial singkat, "Writing my own bootloader" direkomendasikan
    • Maksudnya bukan bahwa tutorial "Write your own VM" itu buruk, melainkan topik lain mungkin bisa lebih bermanfaat
  • Ada pendapat bahwa istilah "Virtual Machine" pada era modern umumnya merujuk pada lingkungan yang menggunakan fitur virtualisasi perangkat keras

    • Dengan menjelaskan perbedaan antara emulator dan VM, disebutkan bahwa di masa lalu istilah ini memang ambigu, tetapi sekarang sudah menjadi lebih jelas