ฉันกำลังอ่าน "วิญญาณของเครื่องใหม่" ของเทรซี่คิดเดอร์ที่ทีมงาน Data Data ออกแบบเครื่องใหม่ (ชื่อรหัส "Eagle" ซึ่งต่อมาชื่อว่า MV / 8000) มันเป็นส่วนขยาย 32 บิตของสถาปัตยกรรมก่อนหน้า (Eclipse 16 บิต) หนึ่งในชุดรูปแบบที่หมุนเวียนได้ดูเหมือนว่าพวกเขาไม่ต้องการสร้างเครื่องด้วยโหมดบิตและประสบความสำเร็จในสิ่งนี้
อย่างไรก็ตามมันทำให้เข้าใจได้ว่าเทคนิคนี้ประสบความสำเร็จได้อย่างไรและมันก็ไม่ได้อธิบายว่าทำไมมันถึงดึงดูดใจในการสร้างเครื่องโดยไม่ต้องบิตโหมด หนังสือเล่มนี้ไม่ใช่หนังสือทางเทคนิคดังนั้นจึงอาจเป็นไปได้ว่ารายละเอียดถูกบิดเบือนอย่างใด อย่างไรก็ตามคุณได้รับความรู้สึกในการอ่านหนังสือเล่มนั้นว่าวิธีการแก้ปัญหา "โหมดบิต" นั้นเป็นเรื่องปกติ (และเป็นไปได้) ในเวลานั้น แต่ก็ถือว่าวิศวกรไม่น่าสนใจด้วยเหตุผลด้านความงาม หนังสือเล่มนี้ยังทำให้ดูเหมือนเป็นงานที่ยากอย่างมากในการสร้างการออกแบบโดยไม่ต้องบิตโหมดซึ่งบางทีมก็เอาชนะมันได้
ฉันพบคำอธิบายเกี่ยวกับความสำเร็จ:
http://people.cs.clemson.edu/~mark/330/kidder/no_mode_bit.txt
ดูเหมือนว่าโดยทั่วไปจะเกี่ยวกับการใช้พื้นที่ opcode ที่ไม่ได้ใช้ก่อนหน้านี้สำหรับคำแนะนำใหม่ ฉันต้องยอมรับว่าฉันผิดหวังเล็กน้อยว่ามันเป็น "แค่นั้น" นอกจากนี้ฉันคิดว่าสิ่งนี้ยังคงทิ้งคำถามไว้บ้าง
ประการแรกกระบวนการ 16 บิตอาศัยอยู่ในพื้นที่ที่อยู่แบบ 32 บิตอย่างไร เพราะฉันคิดว่านี่เป็นความท้าทายหลักในการสร้างส่วนขยาย 32 บิต "โดยไม่ต้องใช้โหมดบิต" การขยายชุดคำสั่งในทางกลับกันเป็นกิจการที่ค่อนข้างทั่วไป เนื่องจากไม่มีคำอธิบายว่าเกิดขึ้นได้อย่างไรสมมติว่ารหัส 16 บิตเข้าถึงหน่วยความจำอย่างที่เคยทำบางทีมันอาจจะเห็นหน่วยความจำเสมือน / ธนาคารที่ดูจากหน่วยความจำเสมือน อะไรแบบนั้น. แต่ฉันไม่รู้ว่ามันมีมากกว่านั้นหรือเปล่า ในกรณีนั้นเราสามารถโต้แย้งได้ว่าการเรียงลำดับเป็นโซลูชัน "mode bit" กระบวนการโหมด 16 บิตสามารถทำงานควบคู่ไปกับกระบวนการอื่น ๆ โดยอาศัยคุณสมบัติพิเศษที่เพิ่มเข้ากับซีพียู
ประการที่สองทำไมมันจึงเป็นที่ดึงดูดในการสร้างเครื่องโดยไม่ต้องบิตโหมด? สิทธิประโยชน์มากมายที่โน้มน้าวในหนังสือเล่มนี้คือลูกค้าต้องการใช้งานซอฟต์แวร์รุ่นเก่า แต่สิ่งนี้ดูเหมือนจะไม่พูดกับโหมดบิตเนื่องจากจุดประสงค์ทั้งหมดของการใช้โหมดบิตคือการใช้งานร่วมกันได้ย้อนหลัง เมื่อ AMD ขยาย x86 เป็น 64 บิตอย่างน้อยตามความเข้าใจของฉันในคำว่า "mode bit" สิ่งที่พวกเขาทำคือการเพิ่ม bit mode บิตพิเศษที่จะทำให้ CPU ในโหมด 64 บิต และอีกบิตที่จะทำให้กระบวนการดำเนินการใน "โหมดย่อย" ของโหมด 64 บิต (เพื่อเปิดใช้งานความเข้ากันได้กับแอปพลิเคชัน 32 บิต) สาระสำคัญของ submode คือ CPU แปลความหมายของคำสั่งตามคำแนะนำแบบเก่า 32 บิต แต่การเข้าถึงหน่วยความจำแบบ 32 บิตได้รับการแก้ไขโดยใช้รูปแบบตารางหน้าใหม่ (การติดตั้งโดยระบบปฏิบัติการ 64 บิต) และในที่สุด แมปกับพื้นที่ที่อยู่ทางกายภาพเต็มรูปแบบ นอกจากนี้รหัส 32 บิตสามารถจองได้โดยใช้รหัส 64 บิต เช่นเดียวกับโซลูชัน Data ทั่วไปยังอนุญาตให้โปรแกรม 32- บิตสามารถทำงานภายใต้โปรแกรม 64- บิต (16- บิตเทียบกับ 32- บิตในกรณี DG) ดังนั้นจากมุมมองของลูกค้าดูเหมือนจะไม่แตกต่างกันเลย ดังนั้นประโยชน์เพียงอย่างเดียวอาจเกิดขึ้นได้ในการนำไปใช้ทำให้การออกแบบง่ายขึ้น แต่หนังสือเล่มนี้ไม่ได้ทำให้ฟังดูเหมือนเป็นเรื่องที่กังวลเนื่องจากบิตของโหมดที่เห็นจะเป็นเรื่องปกติแม้ในเวลานั้น (และดูเหมือนว่าในภายหลัง ใช้เป็นกรณี x64 แสดงให้เห็น)
ฉันแน่ใจว่ามีบางสิ่งที่ฉันพลาดไปมันจะดีถ้ามีใครสามารถพูดคุยเพิ่มเติมเกี่ยวกับรายละเอียดทางเทคนิคและข้อดีของการออกแบบ "ไม่มีโหมดบิต" นี้