อุปกรณ์ PostPC ต้องเปลี่ยนพีซีซึ่งมีการกล่าวไว้เมื่อไม่กี่ปีก่อน ในตอนท้าย? เรากำลังทำงานกับอุปกรณ์ที่พูดภาษาต่างกันและในบางกรณีก็บังคับให้เราสลับไปมาระหว่างอุปกรณ์ต่างๆตลอดเวลา แต่ด้วยการมาถึงในอนาคตของ ARM- พีซีที่ใช้เราสงสัยว่าเราจะเห็นโปรเซสเซอร์ผสมกับ x86 หรือไม่
ในอีกด้านหนึ่งเรามีพีซีที่มีโปรแกรมรวบรวมสำหรับชุดรีจิสเตอร์ x86 และคำแนะนำในทางกลับกันเรามีอุปกรณ์ PostPC ที่เรียกว่าแอปพลิเคชันที่พูดใน ARM แต่ในช่วงไม่กี่ครั้งที่ผ่านมาผู้ออกแบบโปรเซสเซอร์สำหรับระบบ PostPC ได้แสดงให้เห็นว่าพวกเขาต้องการที่จะข้ามไปยังพีซีไม่ใช่เพื่อ x86 แต่จะมีพีซีที่ใช้ ARM
สิ่งนี้จบลงด้วยการทำให้มีตลาดที่แตกต่างกันสองตลาดแต่ละแห่งพูดภาษาของตนและแอปพลิเคชันจำนวนไม่สิ้นสุดซึ่งเข้ากันไม่ได้กับระบบอื่น สถานการณ์ในอุดมคติ? การมีพีซีที่มีความสามารถในการรันโปรแกรมและระบบทั้งสองด้านสำหรับทั้ง ARM และ x86
แต่เป็นไปได้หรือไม่? เราจะพยายามอธิบายปัญหาที่สถาปนิกต้องเผชิญเมื่อออกแบบทั้งระบบไฮบริดและ SoC แบบไฮบริดรวมถึงเหตุผลว่าทำไม อินเทล และ เอเอ็มดี ยังไม่ได้เปิดตัวโปรเซสเซอร์แบบผสม
AMD และ Intel ไม่สนใจ CPU ผสมระหว่าง ARM และ x86
ปัญหาแรกคือใบอนุญาต x86 ได้รับอนุญาตจาก Intel และ AMD เท่านั้นดังนั้นทั้งสอง บริษัท นี้จึงเป็น บริษัท เดียวที่สามารถสร้าง ซีพียู เข้ากันได้กับไบนารี x86 ดังนั้นก่อนอื่นเราต้องคิดสักนิดว่าจะเกิดอะไรขึ้นถ้า บริษัท เหล่านี้สร้าง CPU ที่สามารถรันโปรแกรมที่ออกแบบมาสำหรับ ARM ได้
เราต้องจำไว้ว่ามันจะเป็นไปไม่ได้ที่จะเรียกใช้สภาพแวดล้อมบน x86 และบน ARM ในเวลาเดียวกันดังนั้นนักพัฒนาส่วนใหญ่ที่รู้ว่าพีซีที่มี x86 สามารถเรียกใช้รหัส ARM จะไม่รบกวนโค้ดทีละน้อย x86 จะล้าสมัยและ ARM จะเพิ่มขึ้นตามเปอร์เซ็นต์การใช้งาน
โลกที่ผู้คนไม่ใช้โปรแกรม x86 เป็นโลกที่ไม่คุ้มค่าสำหรับ Intel และ AMD ดังนั้นโปรเซสเซอร์ในส่วนของพวกเขาที่สามารถทำงานได้ทั้งสองสภาพแวดล้อมจึงไม่เหมาะอย่างยิ่ง
การปรับใช้ x86 และ ARM บนระบบเดียว
เรามีตัวอย่างนี้หรือไม่? ใช่เรามีที่อยู่ในบ้านหลายสิบล้านที่เรียกว่า เพลย์สเต 4 ซึ่งเป็นคอนโซลที่มีโปรเซสเซอร์หลักคือ AMD SoC ที่ใช้ x86 แต่มีโปรเซสเซอร์ตัวที่สองพร้อมโปรเซสเซอร์ ARM โปรเซสเซอร์นี้จะเปิดใช้งานเมื่อคอนโซลอยู่ในโหมดสแตนด์บายรันระบบปฏิบัติการแบบขนานและมีของตัวเอง แรม หน่วยความจำ
แนวคิดที่ง่ายที่สุดในการรวมโลกทั้งสองคือการสร้างคอมพิวเตอร์ที่เปิดใช้งาน SoC หนึ่งหรืออีกระบบหนึ่งขึ้นอยู่กับระดับการบริโภคที่จำเป็นตลอดเวลาระบบจะเปิดใช้งานไม่ทางใดก็ทางหนึ่ง แต่หมายความว่ามีสองระบบอยู่ใน คอมพิวเตอร์เครื่องเดียวกันและออกแบบระบบจำหน่ายไฟฟ้าทั้งหมดสำหรับทั้งสองระบบซึ่งไม่ใช่งานที่น่ากลัว
ปัญหาอื่น ๆ จะมาจากการใช้อุปกรณ์ I / O ของระบบซึ่งทั้งหมดควรมีให้สำหรับโปรเซสเซอร์ของ ISA ทั้งสองดังนั้นฮาร์ดแวร์ที่เข้าถึงอุปกรณ์ต่อพ่วงจะซ้ำกันหรือสร้างองค์ประกอบทั่วไป ซึ่งขัดแย้งกับวิธีการต่างๆที่โปรเซสเซอร์แต่ละประเภทพูดคุยกับพวกเขา
สอง ISA ทำงานพร้อมกันบน SoC เดียวเป็นไปได้หรือไม่?
หากมีบางอย่างที่แสดงลักษณะของ SoC ไม่ใช่แค่ส่วนประกอบทั้งหมดที่อยู่บนชิปเดียวกันเท่านั้น แต่ยังใช้การเข้าถึงหน่วยความจำเดียวกันทั้งหมด แต่จะเกิดอะไรขึ้นเมื่อโปรเซสเซอร์สองตัวไม่เข้าใจภาษาเดียวกัน นั่นไม่ใช่ปัญหาเนื่องจาก SoC มีใน GPU ซึ่งเป็นวิธีที่แตกต่างไปจาก CPU เพื่ออ่านไบนารีสิ่งที่จำเป็นคือการทำเครื่องหมายในหน่วยความจำที่ระบุว่าส่วนใดเป็นของ ARM และส่วนใดสำหรับ x86
ฟังดูง่ายใช่ไหม ไม่เหตุผลก็คือ x86 คือ Little Endian ซึ่งหมายความว่ามันผ่านหน่วยความจำจากที่อยู่หน่วยความจำต่ำสุดไปยังสูงสุด ARM คือ Bi-Endian ดังนั้นโปรแกรมสามารถเริ่มต้นที่ปลายทั้งสองข้างและขึ้นหรือลงขึ้นอยู่กับกรณี . ตามหลักการแล้วการเชื่อมโยงจุดสิ้นสุดกับแต่ละ ISA นั้นเป็นเรื่องง่าย แต่มีระบบปฏิบัติการสำหรับ ARM ที่ทำงานใน Little Endian
ปัญหาอื่น ๆ คือความจริงที่ว่า RAM ได้รับการออกแบบมาเพื่อให้บริการโปรเซสเซอร์ในเวลาเดียวกันดังนั้นหากเรามีโปรเซสเซอร์สองตัวที่เข้าถึงในเวลาเดียวกันตัวหนึ่งจะมีข้อโต้แย้งในการเข้าถึงหน่วยความจำดังนั้นแอปพลิเคชันที่ออกแบบมาสำหรับทั้งสอง ISA ไม่ทำงานด้วยความสะดวกแบบเดียวกันไม่ต้องพูดถึงว่าทรัพยากรที่ใช้ร่วมกันระหว่างทั้งสองภายใน SoC ก็จะทำได้
ดังนั้น. มันเป็นอย่างไร GPU สามารถแบ่งปันพื้นที่กับ CPU ได้อย่างราบรื่น? สำหรับข้อเท็จจริงง่ายๆที่ว่า GPU แม้ว่าจะจัดการข้อมูลและรันโปรแกรม แต่ไม่ได้ออกแบบมาเพื่อเรียกใช้ระบบปฏิบัติการและการมีอยู่ของระบบปฏิบัติการจิตเภทที่สมบูรณ์ซึ่งสามารถเข้าใจได้ด้วยสถาปัตยกรรมสองแบบในเวลาเดียวกันนั้นเป็นไปไม่ได้ โดยที่แต่ละคนมีวิธีการระบุหน่วยความจำและการเข้าถึงอุปกรณ์ต่อพ่วงของตัวเอง