หลังจากศึกษา Java มาระยะหนึ่งแล้ว ฉันเชื่อว่าทุกคนสามารถเข้าใจถึงความสำคัญของ jvm ได้ แต่คุณอาจไม่ค่อยมีความรู้เกี่ยวกับระบบการสอนในนั้นมากนัก แท้จริงแล้วมันเป็นเครื่องมือในการเรียกคำสั่ง สำหรับการแนะนำเนื้อหาที่เฉพาะเจาะจง เราจะแสดงให้คุณดูด้านล่างและแบ่งปันกับคุณเกี่ยวกับการลงทะเบียน jvm มาร่วมศึกษาในวันนี้ด้วยกันเถอะ
1. คำอธิบายระบบคำสั่ง
ระบบคำสั่ง JVM คล้ายกับระบบคำสั่งคอมพิวเตอร์อื่นๆ มาก ในเวลาเดียวกัน คำสั่ง Java ยังประกอบด้วยสองส่วน: opcode และตัวถูกดำเนินการ opcode เป็นเลขฐานสอง 8 บิต ตามด้วยตัวถูกดำเนินการซึ่งกำหนดความยาวตามต้องการ รหัสการดำเนินการใช้เพื่อระบุลักษณะของการดำเนินการคำสั่ง (ในที่นี้เราจะอธิบายในรูปแบบของสัญลักษณ์แอสเซมบลี) ตัวอย่างเช่น iload หมายถึงการโหลดจำนวนเต็มจากหน่วยความจำ anewarray หมายถึงการจัดสรรพื้นที่สำหรับอาร์เรย์ใหม่ และ iand หมายถึง "AND" ของจำนวนเต็มสองตัว ret แสดงถึงการควบคุมกระบวนการที่ส่งคืนจากการเรียกไปยังเมธอด เมื่อความยาวเกิน 8 บิต ตัวถูกดำเนินการจะถูกแบ่งออกเป็นหลายไบต์สำหรับการจัดเก็บ สำหรับสถานการณ์นี้ JVM ใช้วิธีการเข้ารหัส "bigendian" กล่าวคือ บิตสูงจะอยู่ในไบต์ต่ำ สถานการณ์นี้เหมือนกับวิธีการเข้ารหัสที่ใช้โดย Motorola และ RISCCPU แต่แตกต่างจากวิธีการเข้ารหัส "littleendian" ที่ใช้โดย Intel กล่าวคือ บิตที่มีลำดับต่ำจะเก็บไบต์ที่มีลำดับต่ำ
ระบบคำสั่ง Java ได้รับการออกแบบมาเพื่อการนำภาษา Java ไปใช้ โดยมีคำแนะนำสำหรับการเรียกเมธอดและการตรวจสอบระบบที่มีลำดับความสำคัญหลายระดับ ความยาวของ opcodes 8 บิตใน JVM ทำให้ JVM มีคำสั่งสูงสุด 256 คำสั่ง และตอนนี้มีการใช้คำสั่งมากกว่า 160 คำสั่ง
2. การลงทะเบียนที่ใช้กันทั่วไป
CPU ทั้งหมดมีชุดรีจิสเตอร์ที่เก็บสถานะระบบและข้อมูลที่โปรเซสเซอร์ต้องการ เมื่อเครื่องเสมือนกำหนดการลงทะเบียนเพิ่มเติม สามารถรับข้อมูลเพิ่มเติมได้โดยไม่ต้องเข้าถึงสแต็กหรือหน่วยความจำ ซึ่งจะช่วยปรับปรุงความเร็วในการทำงาน อย่างไรก็ตาม หากจำนวนการลงทะเบียนในเครื่องเสมือนเกินจำนวน CPU จริง เวลาประมวลผลจำนวนมากจะถูกใช้จำลองการลงทะเบียนด้วยหน่วยความจำทั่วไปเมื่อใช้เครื่องเสมือน ซึ่งจะลดประสิทธิภาพของเครื่องเสมือนจริง ๆ . สำหรับสิ่งนี้ JVM จะตั้งค่ารีจิสเตอร์ที่ใช้บ่อยที่สุดเพียง 4 รายการเท่านั้น พวกเขาคือ:
(1) ตัวนับโปรแกรมพีซี
(2) ตัวชี้ด้านบนของตัวถูกดำเนินการ optop
(3) ตัวชี้สภาพแวดล้อมการดำเนินการเฟรมปัจจุบัน
(4) vars ชี้ไปที่ตัวชี้ไปยังตัวแปรท้องถิ่นตัวแรกในสภาพแวดล้อมการดำเนินการปัจจุบัน
รีจิสเตอร์ทั้งหมดเป็น 32 บิต pc ใช้สำหรับบันทึกการทำงานของโปรแกรม optop, frame และ vars ใช้เพื่อบันทึกตัวชี้ไปยังพื้นที่สแต็ก Java
ข้างต้นเป็นการแนะนำระบบคำสั่ง JVM ของ Java บทความนี้เน้นประเด็นความรู้ทางทฤษฎีเป็นหลัก หลังจากเรียนรู้แล้ว คุณสามารถบันทึกเอกสารเพื่ออำนวยความสะดวกใน การทบทวน ความรู้ในอนาคต