ประโยชน์ของ 64 บิต A7 ใน iPhone คืออะไร


21

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

อย่างไรก็ตามฉันไม่เห็นโทรศัพท์จำนวนมากที่จะใช้หน่วยความจำมากกว่า 4GB ในเวลาอันรวดเร็ว ดูเหมือนว่า overkill และจะส่งผลเสียต่อแบตเตอรี่

อีกปัญหาที่ฉันเห็นคือตอนนี้ตัวแปรส่วนใหญ่ต้องการหน่วยความจำมากเป็นสองเท่า สิ่งนี้จะสร้างปัญหาในสภาพแวดล้อมอุปกรณ์พกพาที่มีหน่วยความจำน้อย

ฉันเชื่อว่าคนที่ Apple ฉลาดและพวกเขาอาจมีเหตุผลที่ดีในการทำเช่นนี้ฉันแค่พยายามที่จะเข้าใจพวกเขา

แก้ไข

ไม่ค่อยรู้เกี่ยวกับ GPU มากนัก แต่มีคนบอกฉันว่าด้วย 64 บิตเรจิสเตอร์ 2 พิกเซลสามารถโหลดลงในแต่ละรีจิสเตอร์ได้ มีข้อได้เปรียบด้านกราฟิกที่เกี่ยวข้องกับ 64 บิตหรือไม่


2
เช่นเดียวกับบันทึกด้านข้าง - กำลังการประมวลผลที่มากขึ้นหมายความว่าโปรแกรมเมอร์สามารถที่จะเกียจคร้านกว่าเดิม (การปรับให้เหมาะสมน้อยลง) เหตุผลอาจเป็นการสนับสนุนให้นักพัฒนาแอป
Vlad Preda

3
@ Chris.Stover - วันนี้ไม่มีข้อได้เปรียบ แน่นอนว่าพรุ่งนี้แอปพลิเคชั่น iOS จะสามารถใช้หน่วยความจำได้มากขึ้นเมื่อโทรศัพท์มีหน่วยความจำมากขึ้น ในเวลาเพียง 5 ปีความจุหน่วยความจำโทรศัพท์เพิ่มขึ้นอย่างน้อย 200% หากแนวโน้มยังคงดำเนินต่อไปเราจะเห็นโทรศัพท์ 6GB-8GB ในระยะเวลาอันสั้น Apple ก็ตั้งตาคอยที่จะทำเช่นนี้ ทุกอย่างมาถึงความจริงที่ว่า ARM มีแนวโน้มที่จะได้รับใบอนุญาตการออกแบบ 64 บิตเท่านั้นในอนาคต จริง ๆ แล้วมันลงมากับความจริงที่ว่าตอนนี้โทรศัพท์มีการลงทะเบียนมากขึ้นซึ่งทำให้เร็วขึ้น สเปค 64- บิตไม่สำคัญในวันนี้
Ramhound

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

7
ไม่ จำกัด หน่วยความจำ 640k อีกต่อไป
ซ้ำ

1
เป็นที่น่าสงสัยว่า Nexus 5 จะมี RAM 3 GB และจะเปิดตัวในเดือนหน้า ฉันไม่คิดว่า 4 GB + อยู่ไกลเท่าที่คุณคิด
Brendon

คำตอบ:


25

ส่วนใหญ่เป็นเพียงการขว้างจำนวนมากออกมาเพราะมันสร้างความประทับใจให้กับมวลชน ตัวเลขที่ใหญ่กว่านั้นชัดเจนกว่าดังนั้นทุกอย่างที่มีตัวประมวลผล 64 บิตจะดีกว่าอย่างชัดเจนกับตัวประมวลผลแบบ 32 บิต CPU ใหม่ดีกว่ารุ่นก่อนอย่างมาก แต่ใน Apple fashion พวกเขาจะไม่ลองทำการตลาดตามข้อมูลจำเพาะทางเทคนิคพวกเขาจะบอกคุณว่าA7 64- บิตนั้นใหม่กว่า & ดีกว่า32- บิต A-6 อย่างไรก็ตามเมื่อดูรายละเอียดทางเทคนิคคุณจะเห็น:

  • 28nm กับ 32nm chipworks
  • ปรับปรุงตัวประมวลผลกราฟิกแบบรวม
  • สถาปัตยกรรม ARM v8และ ARM v7 (เพิ่มฟังก์ชัน SIMD กระโดดจากการลงทะเบียนวัตถุประสงค์ทั่วไป 13 ถึง 31)
  • หน่วยความจำหลักแบบ On-die (เช่น - เร็วกว่า)

นอกเหนือจากนั้นมีความจริงที่ว่าพวกเขาสามารถเริ่มเปิดตัว (เข้ากันได้ย้อนหลัง) ฮาร์ดแวร์ 64 บิตวันนี้ก่อนที่เราจะวิ่งไปหา 'กำแพง 4GB' ในไม่กี่ปีที่ผ่านมาเมื่อ 64- บิตกลายเป็นสิ่งจำเป็นฮาร์ดแวร์ทั้งหมดจะสนับสนุนและไม่จำเป็นต้องจัดการกับสถาปัตยกรรม 32 บิตแบบดั้งเดิม


1
ฉันหาแหล่งข้อมูลในบทความ wiki ไม่ได้จริงๆ ไซต์อื่น ๆ กำลังรายงาน dual core ที่ 1.5GHz หน้าหนึ่งของ wiki กล่าวว่า A7 คือ 1.7GHz octa-core ดูต่อไปนี้: en.wikipedia.org/wiki/Apple_(system_on_chip) pdadb.net/index.php?m=pdacomparer&id1=4962&id2=4829
Chris.Stover

2
@ Chris.Stover ไปเพื่อแสดงให้เห็นว่า Apple ไม่ได้ขายฮาร์ดแวร์ในรายละเอียดทางเทคนิคพวกเขาเพียงต้องการผลักดัน "Newer & Better!" กับรุ่นต่อไปแทนที่จะบอกคุณว่าทำไมฮาร์ดแวร์ใหม่ถึงดีกว่า
Sean McSomething

2
ARM v7 รองรับบรรทัดที่อยู่ 40 บิต (RAM 1TB) แล้วแม้ว่าแอปในสถาปัตยกรรม 32 บิตนั้นสามารถระบุที่อยู่ได้ 4GB เท่านั้น ปัจจุบัน Arm v8 รองรับแอพ 32 บิตเพื่อให้ใช้งานร่วมกันได้ไม่เป็นปัญหา
gbjbaanb

16

ไม่มี "4GB wall"บน ARMv7 เนื่องจาก ARMv7 cores จำนวนมากสนับสนุน LPAE (ส่วนขยายที่อยู่ทางกายภาพขนาดใหญ่) ซึ่งเป็นแนวคิดที่คล้ายกับ PAE บน x86 ยกเว้น LPAE ใช้การกำหนดแอดเดรสแบบ 40 บิต ความหมายที่LPAE ติดตั้ง ARMv7 สามารถอยู่ได้ถึง 1TB ของแรม

นอกจากนี้ยังเป็นสิ่งสำคัญที่จะพูดถึงว่าแกน ARMv8 ที่จะเกิดขึ้นรวมทั้งA7, จะไม่ใช้ทางกายภาพ 64 บิต ส่วนใหญ่มีแนวโน้มที่ A7 จะใช้ที่อยู่ทางกายภาพ 40- บิตหรือ 44- บิต ต่อมาให้การเข้าถึง RAM สูงสุด 16TB

แน่นอนว่าด้วย LPAE บน ARMv7 หรือในโหมด AArch32 บน ARMv8 แอปพลิเคชันยังคงเป็น 32 บิตดังนั้นแอปพลิเคชันเองสามารถเข้าถึง 4GB ได้ในแต่ละครั้ง แต่ฉันไม่คิดว่ามันจะเป็นปัญหาสำหรับอุปกรณ์มือถือในเร็ว ๆ นี้

คุณกังวลว่าแอพจะใช้หน่วยความจำมากขึ้น (ตัวชี้แบบ 64 บิต) แต่นั่นไม่ใช่กรณีที่แอพทำงานในโหมด 32 บิต (AArch32)

ในทางตรงกันข้าม ARMv8 ให้การปรับปรุงสถาปัตยกรรมอื่น ๆ มากกว่า ARMv7 ซึ่งไม่เกี่ยวข้องกับ AArch64

TL, DR: 64-bitness ของ A7 คือกลไกการตลาด แม้แต่ในระบบที่มี RAM 4GB มากกว่าก็ไม่ได้ให้ประโยชน์ที่เหนือกว่า LPAE สำหรับแอพ 32 บิต และแอป 64 บิตจะไม่มาเร็ว ๆ นี้

อัปเดต: ได้รับการยืนยันจากผู้บริหารการตลาดของ Qualcomm (ปัจจุบันคืออดีตผู้บริหารในขณะที่เขาถูกลดระดับความคิดเห็นเหล่านี้ )

Anand Chandrasekher รองประธานอาวุโสและประธานเจ้าหน้าที่ฝ่ายการตลาดของ Qualcomm กล่าวว่า“ ฉันรู้ว่ามีเสียงดังมากเพราะ Apple ทำ [64 บิต] ใน A7 ของพวกเขา” "ฉันคิดว่าพวกเขากำลังทำกลไกการตลาดไม่มีประโยชน์ที่ผู้บริโภคจะได้รับจากสิ่งนั้น"

ประโยชน์ของ 64 บิตคือความสามารถในการระบุตำแหน่งหน่วยความจำได้มากกว่า แต่ไม่เกี่ยวข้องกับสมาร์ทโฟนหรือแท็บเล็ตในปัจจุบัน Chandrasekher กล่าว iPhone 5s มี DRAM เพียง 1GB

"ส่วนใหญ่ ... คุณต้องการหน่วยความจำที่อยู่นอกเหนือจาก 4GB นั่นคือคุณไม่ต้องการประสิทธิภาพและประเภทแอปพลิเคชันที่ใช้ 64- บิตในแอปพลิเคชันส่วนใหญ่เป็นเซิร์ฟเวอร์ขนาดใหญ่" กล่าว Chandrasekher ซึ่งก่อนหน้านี้บริหารกลุ่มแพลตฟอร์มมือถือของ Intel (ที่มา )


9

มุ่งเน้น แต่เพียงผู้เดียวในการA7เป็นอยู่ARMv8มีสิ่งหนึ่งที่เห็นได้ชัดกำไร ARM กำลังรีบูตชุดคำสั่งและสถาปัตยกรรมของพวกเขา

เป็น compability ย้อนกลับกับARMv7รุ่นต่อไปนอกจากนี้ยังมีการเรียกร้อง

  • ชุดคำสั่งใหม่ (A64)
  • แก้ไขข้อยกเว้นการจัดการสำหรับข้อยกเว้นในสถานะ AArch64
  • ลดจำนวนการลงทะเบียนและโหมด

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับARM สถาปัตยกรรมดูตัวอย่าง


+1 Gruber นอกจากนี้ยังมีคำอธิบายที่ดีของข้อได้เปรียบที่ ARMv8 ที่daringfireball.net/2013/09/the_iphone_5s_and_5c (เลื่อนลงไปที่ "A7: ARMv8 และสถาปัตยกรรม 64 บิต")
Josh Kelley

4

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

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

โปรเซสเซอร์ 64 บิตยังมีแบนด์วิดท์ที่กว้างขึ้นไปยังหน่วยความจำกายภาพ หากคุณมีกล้องที่บันทึก 1080p และต้องการแก้ไขวิดีโอนั้น การดำเนินการกับไฟล์วิดีโอ 1GB จะทำได้เร็วกว่าในแบบ 64 บิต

ทั้งหมดข้างต้นเป็นจริงแม้ว่า Ghz ของโปรเซสเซอร์จะยังคงเหมือนเดิม

ถ้า 64- บิตนั้นดีทำไมถึงไม่ใช่ 128 บิต?

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

ฉันประหลาดใจที่ Apple เปิดตัวโปรเซสเซอร์ 64 ใหม่เร็ว ๆ นี้ในชีวิตของคอมพิวเตอร์มือถือ ฉันคิดว่าแรงจูงใจที่แท้จริงของพวกเขาสำหรับเรื่องนี้คือกราฟิก 3 มิติ ด้วยโปรเซสเซอร์ 64 บิตโทรศัพท์สามารถย้ายข้อมูลไปยัง GPU ได้อย่างรวดเร็ว สิ่งนี้จะช่วยให้เกม 3 มิติที่รวดเร็วและกราฟิกที่น่าประทับใจมากขึ้น คุณจะเริ่มเห็นข้อดีของ 64 บิตในแบบเรียลไทม์ 3 มิติเนื่องจากกระบวนการนั้นขึ้นอยู่กับข้อมูลเป็นอย่างมาก


4
สถาปัตยกรรม CPU ล่าสุด / ทันสมัยมีความซับซ้อนกว่าที่คุณอธิบายที่นี่ CPU ย้ายข้อมูลจากหน่วยความจำในหน่วยที่เรียกcache linesผ่านบัสหน่วยความจำซึ่งอาจมี 16- บิต 32- บิตหรือ 64- บิต ไม่จำเป็นต้องตรงกับขนาดคำดั้งเดิมของ CPU arch คุณพูดถูกว่าปัญหาใหญ่คือการย้ายข้อมูล แต่ปัญหานั้นเป็นของโดเมนฮาร์ดแวร์ / สถาปัตยกรรมอื่น ๆ FP นั้นใช้ FPU ซึ่งค่อนข้างเร็วและสามารถทำงานกับขนาดความแม่นยำเดียวหรือสองเท่า เช่นเดียวกับการถอดรหัสวิดีโอหรือ 3D จริง ๆ แล้วพวกเขามี hardwares เฉพาะของตัวเองซึ่งไม่จำเป็นต้องเป็น 64 บิต
auselen

4
มีเอกสารที่ยอดเยี่ยมที่เรียกว่าwhat every programmer should know about memoryฟรีสำหรับนักพัฒนาอยากรู้อยากเห็นakkadia.org/drepper/cpumemory.pdf
auselen

2

มันทำให้สิ่งต่าง ๆ ง่ายขึ้นเมื่อจัดการกับคนจำนวนมาก จำนวนมากมีความสำคัญอย่างยิ่งในการเข้ารหัส (หลังจาก PRISM มีโทรศัพท์มือถือที่ปลอดภัยกลายเป็นสิ่งสำคัญมาก) และการประยุกต์ใช้ทางวิทยาศาสตร์


1

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

มันน่าแปลกใจสำหรับฉันที่สมาร์ทโฟนนั้นไม่ได้ไป 64 บิต


ฉันทดสอบสิ่งนี้ด้วยการแปลงแอปปัจจุบันของฉันเป็น 32 บิต ฉันมีคำเตือนจำนวนหนึ่ง แต่ไม่มีข้อผิดพลาด โชคดีที่แอปเปิ้ลมีการแก้ไขที่แนะนำสำหรับทุกคำเตือนดังนั้นฉันแค่คลิกแต่ละคำเตือนและกด Enter เพื่อยอมรับการแก้ไข ใช้เวลาประมาณ 5 นาทีและฉันก็ขึ้นและทำงานใน 64 บิต ไม่ปวดหัวไม่มีปัญหา ... จนถึงตอนนี้
Chris.Stover

0

ฉันไม่คิดว่ามีประโยชน์ทางเทคนิคมากมาย ครั้งแรกฉันคิดว่ามันสมเหตุสมผลกว่าเมื่อคุณพิจารณา iPad (มีแบตเตอรี่ที่ใหญ่กว่าดังนั้นจึงสามารถรองรับหน่วยความจำได้มากขึ้นใช้พลังงานโดยโปรเซสเซอร์สูงขึ้น ฯลฯ ) ดูที่การประกาศอื่น ๆ ที่เกิดขึ้นในขณะนี้ เอเอ็มดีเพิ่งประกาศว่าจะจัดส่งโปรเซสเซอร์ 64 บิต ARM ในปี 2014 นี้โดยทั่วไปแล้วแอปเปิ้ลยังคงรักษาความเป็นผู้นำตลาดในการเผชิญกับสิ่งที่กำลังจะมาถึงแท็บเล็ต Android และ Win8 ระดับไฮเอนด์


0

ในระยะสั้นไม่มีอะไรมากสวย จริง ๆ แล้วมันเป็นขั้นตอนกลับมาในไม่กี่วิธี มีสามข้อได้เปรียบหลักที่ฉันรู้

  1. 64 บิตนั้นดีกว่ามากด้วยตัวเลขที่มากขึ้นซึ่งเป็นประโยชน์ต่อการเข้ารหัสลับ ซึ่งอาจเป็นสิ่งที่น่าสนใจเมื่อรวมกับเครื่องสแกนลายนิ้วมือบนโทรศัพท์
  2. อีกครั้งในหลอดเลือดดำเดียวกันการปรับปรุงด้วย 64 บิตและจำนวนมากช่วยในการเรนเดอร์ฟิสิกส์ ซึ่งมีประโยชน์เมื่อพิจารณาจำนวนฟิสิกส์ที่ใช้ใน UI ของ iOS7 สิ่งนี้ยังเป็นประโยชน์ต่อนักพัฒนาเกมเช่นกันโดยเฉพาะอย่างยิ่งกับอสังหาริมทรัพย์ที่มีหน้าจอใหญ่เช่น iPad
  3. นอกจากนี้ยังเป็นการเพิ่มระดับของการพิสูจน์โทรศัพท์ปัจจุบันในอนาคตโดยใช้สิ่งนี้

0

มาตรฐาน

สำหรับการใช้งานบางอย่างที่มีความสามารถในโหมดสถาปัตยกรรมทั้ง 32 เทียบกับ 64 บิตด้วย x86, MIPS และ ARM ISAs, โหมด 64 บิตสร้างเกณฑ์มาตรฐานได้เร็วขึ้นในแอพพลิเคชั่นที่สำคัญบางอย่าง เหตุผลสำคัญอย่างหนึ่งคือ ISA 64 บิตนั้นใหม่กว่าและสถาปนิก ISA จึงรู้เพิ่มเติมเกี่ยวกับสถิติแอปพลิเคชันและวิธีการปรับให้เหมาะสมกับพฤติกรรมของแอปพลิเคชันชุดนั้นเมื่อกำหนด ISA และโปรเซสเซอร์ใหม่ ISA จะต้องมีการพิสูจน์ในอนาคตต่อความต้องการหน่วยความจำของแอปพลิเคชันที่เติบโตตามกฎของมัวร์และเติบโตขึ้นกว่าล้านเท่าในพื้นที่อุปกรณ์พกพา

ดังนั้น ARM64 ISA ใหม่จะเป็นเกณฑ์มาตรฐานได้เร็วขึ้นในโค้ดที่ จำกัด ประสิทธิภาพที่คุณอาจพัฒนา (มีอยู่ในโค้ดของฉัน) เช่นเดียวกับการอนุญาตให้พอยน์เตอร์ C ตัวชี้ไปยังแอดเดรสพื้นที่เสมือนที่กว้างใหญ่น่าจะกลายเป็นเรื่องธรรมดา ใช้เวลาน้อยกว่า ARM ISA แบบ 32 บิตเดิมอยู่แล้ว)

ประสิทธิภาพในชุดแอปพลิเคชั่นของคุณโดยเฉพาะ (การวัดเพื่อยืนยัน) เป็นเหตุผลที่ยอดเยี่ยมในการเลือกอาร์ม 64


-4

64 บิตช่วยให้สามารถแชร์รหัสได้มากขึ้นด้วยการสร้างเดสก์ท็อปของ OSX (ซึ่งเป็น 64 บิตทั้งหมด)


แต่ปัจจุบันแอป iOS ทั้งหมดต้องรักษาความเข้ากันได้ 32- บิตดังนั้นรหัส 64 บิตใด ๆ จะต้องแปลงเป็น 32- บิตต่อไป
ไบรอันเฉิน

1
แต่มันเป็นสถาปัตยกรรมที่แตกต่างอย่างสิ้นเชิง (x86-64 เทียบกับ armv8) ผลกำไรเป็นศูนย์จากที่นั้น (โปรแกรมที่เขียนเป็นลายลักษณ์อักษรใน C / C ++ / ObjC จะทำงานกับจำนวนบิตใด ๆ แม้ว่าจะไม่ใช่ข้อกำหนด)
Jan Hudec
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.