Data General MV / 8000 คุณธรรมของ“ No mode bit”


10

ฉันกำลังอ่าน "วิญญาณของเครื่องใหม่" ของเทรซี่คิดเดอร์ที่ทีมงาน 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 แสดงให้เห็น)

ฉันแน่ใจว่ามีบางสิ่งที่ฉันพลาดไปมันจะดีถ้ามีใครสามารถพูดคุยเพิ่มเติมเกี่ยวกับรายละเอียดทางเทคนิคและข้อดีของการออกแบบ "ไม่มีโหมดบิต" นี้


ในสมัยนั้น - วันที่ย้ายคำขนาดทั่วไปจาก 16 บิตเป็น 32 บิต - สถาปัตยกรรม 32 บิตใหม่ส่วนใหญ่มีชุดคำสั่งต่างกันโดยสิ้นเชิงจากบรรทัด mfr's16 บิตเดียวกันแม้ว่าพวกเขาจะสามารถดำเนินการได้ ชุดคำสั่ง 16 บิตพร้อม "โหมดบิต" นี้นำไปสู่การตลาดมีความไม่แน่นอนเป็นคนที่อัพเกรดโครงการไปยังเครื่อง 32 บิตใหม่มองไม่เห็นเหตุผลที่จะอยู่กับ mfr เดียวกัน - ตราบใดที่มันเป็นใหม่สถาปัตยกรรมทำไมไม่เลือกที่ดีที่สุดของใหม่เครื่องจากสิ่งที่ mfr การขาด "โหมดบิต" แนะนำการเปลี่ยน "เพิ่ม" ง่ายขึ้น: ดังนั้นอยู่กับ DG
davidbak

คำตอบ:


8

คำตอบคือ Ed deCastro ประธานการจัดการข้อมูลทั่วไปได้จัดตั้งทีมวิศวกรใน North Carolina เพื่อออกแบบ CPU รุ่นต่อไปโดยเฉพาะ เขามอบหมายงานการสนับสนุนและการปรับปรุงเพิ่มเติมให้กับเราทีมแมสซาชูเซตส์ เราเสนอสถาปัตยกรรมใหม่ที่สำคัญสามครั้งในแต่ละครั้งด้วยบิตโหมดที่สมเหตุสมผลมากและอธิบายว่าเป็นการปรับปรุงที่เพิ่มขึ้นเล็กน้อย ทุกครั้งที่เอ็ดเห็นผ่านการปลอมตัวของเราและปฏิเสธข้อเสนอโดยคาดว่าทีมนอร์ ธ แคโรไลนาจะประสบความสำเร็จ เอ็ดเชื่อว่าไม่ว่าเราจะพยายามปกปิดข้อเสนอของเราอย่างไรเขาก็จะรู้ว่ามันเป็นสถาปัตยกรรมยุคใหม่ถ้ามันมีโหมดบิต ดังนั้นเราต้องเสนอสถาปัตยกรรมรุ่นใหม่โดยไม่มีโหมดบิตแม้ว่าจะทำให้ประสิทธิภาพลดลงก็ตาม นั่นคือวิธีที่เราได้รับมันผ่าน Ed deCastro ดูวิญญาณของเครื่องจักรใหม่


สวัสดีคาร์ลขอบคุณสำหรับข้อมูลใช่มันเป็นความประทับใจของฉัน (จากการอ่านหนังสือ) ว่าการสนทนาในโหมดบิตนั้นเกี่ยวกับผลกระทบทางการเมืองเป็นอย่างมาก ดีพร้อมข้อมูลวงใน - ฟังดูเหมือน MV / 8000 เป็นโครงการที่น่าตื่นเต้นมากที่ได้เป็นส่วนหนึ่งของ
Morty

6

216

ด้วยโหมดบิตระบบปฏิบัติการ 16 บิตแบบเก่าจะต้องได้รับการแก้ไขเพื่อให้ทราบว่าโปรแกรมนั้นเป็นแบบ 16 บิตหรือ 32 บิตจากนั้นตั้งโหมดบิตอย่างเหมาะสมก่อนที่จะเปิดตัวโปรแกรม

ในทางปฏิบัติดูเหมือนว่า MV / 8000 มีโหมดบิต ที่อื่น ๆ บนหน้าเว็บของมาร์ค Smotherman ที่เคลมเขาได้โพสต์ทั่วไปข้อมูลECLIPSE MV / 8000 หลักการของการดำเนินงาน 1980 หากคุณดูในภาคผนวก E (เริ่มต้นที่หน้า 369) คุณจะเห็นว่า MV / 8000 มีกลไกตารางหน้าที่แตกต่างกันสองอย่าง เครื่องเฉพาะที่ MV / 8000 ใช้งานร่วมกันได้คือ C / 350 และ C / 350 มีหน่วยการจัดสรรและป้องกันหน่วยความจำ 16 บิตที่เฉพาะเจาะจงพร้อมวิธีการควบคุมหน่วยเฉพาะ สำหรับการดำเนินการแบบโลจิคัลถึง 32 บิตคุณต้องเปิดหน่วยการแปลที่อยู่แทน (อธิบายไว้ในบทที่ 3 โดยเริ่มต้นที่หน้า 31

ในทางปฏิบัติสิ่งที่หมายถึงคือเมื่อคุณดำเนินการคำสั่ง 16 บิตในโหมด 32 บิตจะมีการระบุว่าที่อยู่สูงแบบ 16 บิตของโลจิคัลแอดเดรสได้รับการตั้งค่าเป็น 0 นอกจากนี้ยังต้องมีข้อกำหนดบางประการเกี่ยวกับสิ่งที่เกิดขึ้น ที่อยู่ 16 บิตเมื่อคุณเรียกใช้คำสั่ง 32 บิตในโหมด 16 บิต แต่ฉันไม่สามารถค้นหาได้ในระหว่างที่ฉันอ่านคู่มือสั้น ๆ

ดังนั้นจึงเป็นคำถามที่น้อยลงหรือไม่ว่าบิตของโหมดนั้นดีหรือไม่ดี ยิ่งไปกว่านั้นไม่มีเหตุผลที่ดีที่จะใช้โหมดบิตเพื่อแยกความแตกต่างระหว่างคำสั่งแบบ 16 บิตและ 32 บิต คำสั่ง 16 บิตใช้โลจิคัลแอดเดรส 16 บิต (ด้วยการตั้งค่าสูง 16 บิตเป็น 0) และการลงทะเบียน 16 บิตและคำสั่ง 32- บิตใช้โลจิคัลแอดเดรสแอดเดรส 32 บิตและรีจิสเตอร์ 32 บิต ระบบปฏิบัติการเก่า "ใช้งานได้" บนเครื่องใหม่ แต่คุณสามารถลองใช้คำแนะนำใหม่ได้ด้วยการเรียกใช้โปรแกรมใหม่ภายใต้ระบบปฏิบัติการเก่า


สวัสดีตกลงสิ่งนี้ทำให้วัตถุประสงค์มีความชัดเจนมากขึ้น "ไม่มีโหมดบิต" ดังนั้นวัตถุประสงค์ก็คือเพื่อให้สามารถบูต 16 บิต o / s ดั้งเดิมได้ แต่ยังคงเปิดตัวโปรแกรม 32 บิตจากที่นั่น อย่างไรก็ตามอย่างที่คุณพูดมันเป็นไปไม่ได้ที่จะใช้พื้นที่ที่อยู่แบบลอจิคัลแบบ 32 บิตจากภายในโปรแกรมแบบ 32 บิตที่ทำงานในโหมดนั้น ในลักษณะที่คล้ายคลึงกับที่ Intel ทำกับการเปลี่ยนแบบ 16 บิตเป็น 32 บิต ที่นี่มันเป็นไปได้ที่จะดำเนินการคำสั่งแบบ 32 บิต (เข้าถึงส่วนที่สูงกว่าของรีจิสเตอร์) จากภายในโปรแกรม 16 บิต (เช่นการทำงานภายใต้ MS-DOS) แต่ในเวลาเดียวกันพวกเขามี ...
มอร์ตี้

... บิตของโหมดสำหรับการเข้าสู่โหมดการป้องกันแบบ "จริง" แบบ 32 บิต (ซึ่งยังอนุญาตการสลับหน้า) ข้อแตกต่างคือในโหมด 32 บิตการเข้ารหัสของคำสั่ง 32 บิตนั้นแตกต่างจากการเข้ารหัสของคำสั่ง 32 บิตในโหมด 16 บิต (เนื่องจาก "ค่าเริ่มต้น" นั้นแตกต่างกัน) แต่ความสามารถนั้นเหมือนกัน ในทางตรงกันข้ามกับการเปลี่ยน x86 เป็น 64 บิตการเข้ารหัสการเรียนการสอนก็เปลี่ยนไปอย่างสมบูรณ์ดังนั้นโปรแกรม 32 บิต (หรือโปรแกรม 16 บิต) ไม่สามารถใช้การลงทะเบียน 64- บิตเป็นต้นมันต้องมีการปรับปรุง o / s เรียกใช้กระบวนการในโหมด 64 บิต ("โหมดยาว")
Morty

อย่างไรก็ตามยังคงมีคำถามอย่างหนึ่งเกี่ยวกับข้อดีของการเน้นว่าการออกแบบ "ไม่มีโหมดบิต" ตั้งแต่แรกมีบิตโหมดและดูเหมือนว่าจะเป็นกรณีมุมมาก ("เรียกใช้ระบบปฏิบัติการเก่าและแอปพลิเคชันใหม่") ประโยชน์ที่ได้รับ - ลูกค้าส่วนใหญ่ไม่ต้องการใช้ระบบปฏิบัติการใหม่ซึ่งสามารถใช้ประโยชน์จากฮาร์ดแวร์ได้อย่างเต็มที่หรือไม่ คุณสมบัติที่สำคัญคือระบบปฏิบัติการรุ่นใหม่สามารถเรียกใช้แอพเก่าได้! แต่เป็นลิงก์ที่ฉันส่งกล่าวถึงมันเป็นไปไม่ได้เลยโปรแกรมจำเป็นต้องมีการเชื่อมโยงใหม่และแม้แต่การคอมไพล์ใหม่ (เนื่องจากการเปลี่ยนแปลงใน o / s) การแสดงผล CPU compat แง่มุมที่สงสัย!
Morty
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.