x86 เหตุใดจึงควรละทิ้ง 32 บิตบนพีซี

ตั้งแต่ เอเอ็มดี เปิดตัวโปรเซสเซอร์ Opteron และ Athlon64 เป็นเวลาเกือบ 20 ปีแล้ว แต่การเปลี่ยนจาก 32 บิตเป็น 64 บิตใน x86 ยังไม่เสร็จสมบูรณ์โดยเฉพาะอย่างยิ่งเนื่องจากมีซอฟต์แวร์จำนวนมากที่ไม่ทำงานบน 64 บิต ถึงเวลาแล้วหรือยังที่จะทิ้ง 32 บิตบน x86 และบังคับให้เปลี่ยนและทำไม?

สำหรับหลาย ๆ คนการรักษาความเข้ากันได้แบบย้อนหลังกับ 32 บิตยังคงเป็นเรื่องเล็ก ๆ น้อย ๆ ที่ไม่ส่งผลกระทบต่อประสิทธิภาพของพีซีอย่างไรก็ตามการรักษาความเข้ากันได้ดังกล่าวยังหมายถึงการรักษาวิธีที่คำสั่ง 64 บิตแต่ละคำสั่งทำงานด้วยประสิทธิภาพเช่นเดียวกับ 32 บิตเมื่อแชร์เส้นทางข้อมูล

เหตุใดจึงควรละทิ้ง 32 บิต

ทั้งสอง อินเทล และ AMD สามารถพิจารณาปรับปรุงสถาปัตยกรรม 64 บิตซึ่งเข้ากันได้กับซอฟต์แวร์ทั้งหมด แต่มีประสิทธิภาพที่สูงขึ้นมากโดยทำการปรับปรุงวิธีการประมวลผลคำสั่ง x86 64 บิตแต่ละรายการภายใน

32-64 บิต

แต่สถาปัตยกรรม 64 บิตคืออะไร? สถาปัตยกรรม 32 บิตถือเป็นสถาปัตยกรรมใด ๆ ที่สามารถระบุที่อยู่และเข้าถึงได้ถึง 2 32 ไบต์ของ แรม หรืออะไรที่เหมือนกัน: RAM 4 GB ในขณะที่โปรเซสเซอร์ 64 บิตสามารถดูได้สูงสุด 2 64 ไบต์ของ RAM ดังนั้นจึงสามารถจัดการกับหน่วยความจำจำนวนมากได้โดยตรง

เราจะเห็นว่าความจุมาตรฐานของคอมพิวเตอร์ที่วางจำหน่ายนั้นมีขนาดเกิน 4 GB ขึ้นไปซึ่งหมายความว่าพวกเขาสามารถรันโปรแกรมเวอร์ชัน 64 บิตที่เพิ่มขึ้นได้ เนื่องจากอายุการใช้งานของคอมพิวเตอร์ไม่เกินห้าปีจึงจะมาถึงจุดที่พีซีแต่ละเครื่องในตลาดจะสามารถรันโปรแกรมเวอร์ชัน 64 บิตได้

พีซีGenérico x86

นั่นคือเหตุผลที่ความเป็นคู่ระหว่าง 32 บิตและ 64 บิตในแง่ของแอปพลิเคชันควรหายไปเมื่อถึงจุดหนึ่งเพื่อปล่อยให้แอปพลิเคชัน 32 บิตอยู่ในถังขยะของประวัติศาสตร์ตลอดไป

ต้นกำเนิดของ 32 บิตในซีพียู x86

ล็อก็อกซ์86

สถาปัตยกรรม x86 เดิมเป็นสถาปัตยกรรม 16 บิตที่เริ่มต้นด้วยซีรีส์ 8086/8088 ครั้งแรกที่ Intel ใช้สถาปัตยกรรมเวอร์ชัน 32 บิตคือใน 80386 Intel ได้ตัดสินใจออกแบบอย่างแยบยลเกี่ยวกับการลงทะเบียนของโปรเซสเซอร์: แทนที่จะสร้างการลงทะเบียนใหม่สำหรับโหมด 32 บิตพวกเขาขยาย 16 บิต ซึ่งเป็นสิ่งที่ AMD ทำซ้ำในภายหลังเมื่อพัฒนาส่วนขยาย 64 บิตของสถาปัตยกรรม

register x86 32 บิต

แนวคิดในการใช้การลงทะเบียนเวอร์ชันเพิ่มเติมแทนการลงทะเบียนใหม่เป็นวิธีที่ Intel ไม่จำเป็นต้องทำซ้ำเส้นทางข้อมูลของแต่ละคำสั่งในมือข้างหนึ่งและในทางกลับกันไม่ทำให้คำสั่งของชุดเดิมไม่เข้ากัน สิ่งนี้ทำให้มั่นใจได้ว่าโปรแกรมที่คอมไพล์ x16 86 บิตจะทำงานบนโปรเซสเซอร์รุ่นหลังได้

ตั้งแต่ 80386 ไปจนถึง Intel Pentium เส้นทางข้อมูลของแต่ละคำสั่งในระหว่างขั้นตอนการดึงข้อมูลและถอดรหัสจะเหมือนกัน แต่ Intel จาก Pentium Pro เป็นต้นไปตัดสินใจที่จะสร้างเส้นทางข้อมูลของคำสั่ง 32 บิตทั้งหมดใหม่เพื่อปรับการทำงานให้เหมาะสมกับความเสียหาย จาก 16 บิต

Pentium Pro ซึ่งเป็นสารตั้งต้นในประวัติศาสตร์ของการเปลี่ยนแปลง

เพนเทียม โปร

ใน Pentium Pro Intel ตัดสินใจที่จะต่ออายุรอบการเรียนการสอนทั้งหมดของชุดคำสั่ง 32 บิตทั้งหมดจาก Pentium Pro ซึ่งเป็นการปรับปรุงที่ฉันไม่ได้ใช้กับคำแนะนำ 16 บิตในลักษณะที่ 16 บิต โปรแกรมไปยัง MS-DOS หรือ Windows 3.1 ทำงานได้ไม่ดีไปกว่า Intel Pentium ดังนั้นเพื่อให้ได้รับประโยชน์สูงสุดจากโปรเซสเซอร์นั้นจำเป็นต้องใช้แอปพลิเคชัน 32 บิต

ในการเพิ่มคำสั่ง Pentium Pro MMX และกลายเป็น Pentium II ในเวลานั้นนักพัฒนาของทั้งแอปพลิเคชันและระบบปฏิบัติการมีความชัดเจนมากว่าถึงเวลาแล้วที่จะละทิ้ง 16 บิตครั้งแล้วครั้งเล่า ซึ่งจบลงด้วยการเปิดตัว Windows XP ในปี 2001 Windows ตัวแรกสำหรับเดสก์ท็อปที่มีฐาน NT ในเวลานั้นไม่มีใครคิดที่จะพัฒนาแอปพลิเคชัน 16 บิตอีกต่อไป

ในกรณีของการปฏิรูปประเภทเดียวกันที่มาจากมือของ Intel และ / หรือ AMD สามารถใช้เพื่อทำซ้ำเส้นทางข้อมูลของแต่ละคำสั่งได้ ผลที่ตามมาคือแอปพลิเคชัน 32 บิตจะไม่ทำงานเร็วเท่าแอปพลิเคชัน 64 บิต แต่ไม่มีเหตุผลที่จะอยู่ใน 32 บิตสำหรับทุกคนเนื่องจากข้อดีของการข้ามไปยัง 64 บิตแบบเต็มจะทำให้เกิด มากขึ้น

การละทิ้ง 32 บิตในพีซีเป็นกุญแจสำคัญในการกำหนดมาตรฐานของ SSD

Pila de SSD

ก่อนอื่นเราต้องเข้าใจว่าต่างจากฮาร์ดไดรฟ์หน่วยความจำ NAND Flash ที่ใช้ใน SSD สามารถระบุได้ราวกับว่าเป็นแรม ไม่ต้องสับสนกับความจริงที่ว่าเนื้อหาสามารถเข้าถึงได้โดยตรงเนื่องจากไฟล์ SSD อยู่ในลำดับชั้นต่ำกว่า แต่อินเทอร์เฟซ PCI Express ความเร็วสูงช่วยให้สามารถคัดลอกข้อมูลได้อย่างรวดเร็วและเกือบโปร่งใสไปยังส่วนหนึ่งของ RAM ที่จะใช้เป็นแคช

จนถึงขณะนี้เมื่อใช้ไฟล์ขนาดใหญ่ฮาร์ดดิสก์ก็ถูกใช้ซึ่งมีความเร็วในการเข้าถึงต่ำกว่ามากและมีเวลาแฝงมหาศาลนอกเหนือจากเวลาค้นหามหาศาล เมื่อเข้าถึงฮาร์ดดิสก์วิธีการเข้าถึงไม่ได้อยู่ในที่อยู่หน่วยความจำ RAM แต่ใช้หน่วยความจำเสมือนและกลไกการเข้าถึงที่ช้าและซับซ้อนกว่า

ในทางกลับกันดิสก์ SSD อนุญาตให้มีการกำหนดแอดเดรสโดยตรงจากโปรแกรมราวกับว่ามันเป็นส่วนหนึ่งของหน่วยความจำ RAM ซึ่งเป็นข้อดีของการมีแอดเดรสขนาดใหญ่ แต่สำหรับเรื่องนี้ควรพูดถึงตัวอย่างเฉพาะในระดับซอฟต์แวร์จะดีกว่า

สกรีนช็อต Sony Vegas

ข้อดีคือแอปพลิเคชัน x32 86 บิตไม่สามารถเข้าถึง RAM มากกว่า 4 GB ได้ทันทีแม้ว่าการกำหนดแอดเดรสจะมีเพียง 48 บิตเราจะพูดถึงหน่วยความจำ 256 TB ที่สามารถเข้าถึงได้โดยตรง ลองนึกภาพดูว่าคุณกำลังทำงานกับวิดีโอ 4K ในโปรแกรมด้วย โซนี่ เวกัสที่เจ้าแห่งนี้มีขนาดหลายสิบกิกะไบต์และจินตนาการว่าสามารถควบคุมไทม์ไลน์ได้อย่างง่ายดายในโลก

อีกตัวอย่างหนึ่งก็คือในฐานข้อมูลขนาดใหญ่ลองนึกภาพว่าคุณกำลังทำงานกับแอปพลิเคชันที่ต้องค้นหาฐานข้อมูลอย่างต่อเนื่องด้วยความเร็วสูงสุดโดยใช้ประโยชน์จากความเร็วมหาศาลที่หน่วยความจำ SSD อนุญาตในการกำหนดแอดเดรส ในความเป็นจริงมีความเป็นไปได้มากมายโดยเฉพาะอย่างยิ่งในแอปพลิเคชันที่ใช้ข้อมูลจำนวนมาก

ในระดับระบบปฏิบัติการและเพื่อให้เสร็จสิ้นต้องคำนึงถึงว่าแอปพลิเคชันจำนวนมากใช้ไลบรารีระบบการมีระบบปฏิบัติการทั้งหมดในที่อยู่ของโปรเซสเซอร์ช่วยเร่งการทำงานของแต่ละแอปพลิเคชันได้อย่างมาก