Lợi ích của A7 64 bit trong iPhone là gì?


21

Tôi đang cố gắng tìm hiểu tại sao đi đến bộ xử lý 64 bit lại là một vấn đề lớn như vậy trong iPhone. Tôi hiểu rằng sẽ có gấp đôi số thanh ghi để bộ xử lý có thể hoạt động với số lượng dữ liệu gấp đôi sẽ tăng hiệu suất.

Tuy nhiên, tôi không thấy nhiều điện thoại sẽ sớm có hơn 4GB bộ nhớ. Có vẻ như quá mức cần thiết và nó sẽ ảnh hưởng tiêu cực đến tuổi thọ pin.

Một vấn đề khác mà tôi thấy là hầu hết các biến bây giờ cần gấp đôi bộ nhớ. Điều này sẽ tạo ra các vấn đề trong môi trường di động với số lượng bộ nhớ nhỏ.

Tôi tin rằng những người ở Apple rất thông minh và họ có thể có lý do tuyệt vời để làm điều này, tôi chỉ đang cố gắng để hiểu họ.

CHỈNH SỬA

Không biết nhiều về GPU nhưng tôi được cho biết rằng với các thanh ghi 64 bit, 2 pixel có thể được tải vào mỗi thanh ghi và các thao tác có thể được thực hiện riêng lẻ trên chúng. Có một lợi thế đồ họa liên quan đến 64 bit?


2
Cũng như một lưu ý phụ - sức mạnh xử lý nhiều hơn có nghĩa là các lập trình viên có thể đủ khả năng để lười hơn trước đây (ít tối ưu hóa hơn), một lý do có thể là để khuyến khích các nhà phát triển ứng dụng.
Vlad Preda

3
@ Chris.Stover - Hôm nay không có lợi thế. Tất nhiên ngày mai một ứng dụng iOS sẽ có thể sử dụng nhiều bộ nhớ hơn một khi điện thoại có nhiều bộ nhớ hơn. Chỉ trong 5 năm, dung lượng bộ nhớ điện thoại đã tăng ít nhất 200%. Nếu xu hướng tiếp tục, chúng ta có thể thấy điện thoại 6GB-8GB trong một khoảng thời gian rất ngắn. Apple cũng mong muốn khi họ làm điều gì đó như thế này. Tất cả bắt nguồn từ thực tế ARM có khả năng sẽ chỉ cấp phép cho các thiết kế 64 bit trong tương lai. Nó thực sự đi vào thực tế là điện thoại bây giờ có nhiều đăng ký mà thực sự làm cho nó nhanh hơn. Đặc tả 64 bit ngày nay không quan trọng.
Ramhound

1
Nó không phải là hai lần, đó là những đơn đặt hàng lớn hơn. Bộ xử lý 32 bit chỉ có thể xử lý đỉnh 4 GB RAM. Bộ xử lý 64 bit có thể xử lý khoảng 18 Exabyte, cao hơn 3 bậc.
Kỹ sư thế giới

7
không giới hạn bộ nhớ 640k
Reactgular

1
Người ta nghi ngờ rằng Nexus 5 sẽ có 3 GB RAM và sẽ được ra mắt vào tháng tới. Tôi không nghĩ 4 GB + là xa như bạn nghĩ.
Brendon

Câu trả lời:


25

Nó chủ yếu chỉ ném một số lượng lớn ra khỏi đó bởi vì nó gây ấn tượng với công chúng. Số lượng lớn hơn rõ ràng là vượt trội, do đó, bất cứ điều gì với bộ xử lý 64 bit rõ ràng là tốt hơn so với một bộ xử lý 32 bit. CPU mới là đáng kể tốt hơn so với người tiền nhiệm của nó, nhưng, trong Apple thời trang, họ sẽ không cố gắng tiếp thị dựa trên thông số kỹ thuật - chúng chỉ sẽ nói với bạn rằng 64-bit A7mới hơn & tốt hơn so với 32 bit A-6 . Nhìn vào thông số kỹ thuật, tuy nhiên, bạn thấy:

  • Chip chip 28nm so với 32nm
  • Cải thiện bộ xử lý đồ họa tích hợp
  • Kiến trúc ARM v8 v. ARM v7 (thêm chức năng SIMD; nhảy từ 13 đến 31 thanh ghi mục đích chung)
  • Bộ nhớ chính On-die (tức là - nhanh hơn)

Ngoài ra, có một thực tế là họ có thể bắt đầu tung ra phần cứng 64 bit (tương thích ngược) ngay hôm nay, trước khi chúng tôi chạy lên 'tường 4GB'. Trong một vài năm, khi 64-bit trở nên cần thiết, tất cả phần cứng sẽ hỗ trợ nó & sẽ không có nhu cầu xử lý các kiến ​​trúc 32-bit cũ.


1
Tôi thực sự không thể tìm thấy nguồn cho thông tin trong các bài viết wiki. Các trang web khác đang báo cáo lõi kép ở tốc độ 1,5 GHz. Một trang wiki cho biết A7 là octa-core 1.7GHz. Xem phần sau: vi.wikipedia.org/wiki/Apple_(system_on_chip) pdadb.net/index.php?m=pdacomparer&id1=4962&id2=4829
Chris.Stover

2
@ Chris.Stover chỉ cho thấy rằng Apple không bán phần cứng trên thông số kỹ thuật - họ chỉ muốn thúc đẩy "Mới hơn & Tốt hơn!" với thế hệ tiếp theo thay vì cho bạn biết lý do tại sao phần cứng mới thực sự tốt hơn.
Sean McS Something

2
ARM v7 đã hỗ trợ các dòng địa chỉ 40 bit (RAM 1TB), mặc dù các ứng dụng trên kiến ​​trúc 32 bit đó chỉ có thể xử lý 4GB mỗi dòng. Arm v8 hiện hỗ trợ các ứng dụng 32 bit nên khả năng tương thích ngược không phải là vấn đề.
gbjbaanb

16

Không có "tường 4GB" trên ARMv7, vì nhiều lõi ARMv7 hỗ trợ LPAE (Tiện ích mở rộng địa chỉ vật lý lớn), là một khái niệm tương tự như PAE trên x86, ngoại trừ LPAE sử dụng địa chỉ 40 bit. Có nghĩa là ARMv7 được trang bị LPAE có thể giải quyết tới 1TB RAM .

Một điều quan trọng nữa là phải đề cập rằng các lõi ARMv8 sắp ra mắt, bao gồm cả A7, sẽ không sử dụng địa chỉ vật lý 64 bit . Nhiều khả năng A7 sẽ sử dụng địa chỉ vật lý 40 bit hoặc 44 bit. Sau này cho phép truy cập tối đa 16TB RAM.

Tất nhiên, với LPAE trên ARMv7 hoặc ở chế độ AArch32 trên ARMv8, các ứng dụng vẫn là 32 bit, vì vậy bản thân ứng dụng chỉ có thể truy cập 4GB mỗi lần. Nhưng tôi không nghĩ rằng nó sẽ sớm trở thành một vấn đề trên thiết bị di động.

Bạn lo lắng rằng các ứng dụng sẽ sử dụng nhiều bộ nhớ hơn (con trỏ 64 bit), nhưng đó sẽ không phải là trường hợp ứng dụng chạy ở chế độ 32 bit (AArch32).

Mặt khác, ARMv8 cung cấp các cải tiến kiến ​​trúc khác so với ARMv7, không liên quan đến AArch64.

TL, DR: 64-bitness của A7 là mánh lới quảng cáo tiếp thị. Ngay cả trên các hệ thống có RAM hơn 4GB, nó cũng không cung cấp lợi thế đáng kể so với LPAE cho các ứng dụng 32 bit. Và các ứng dụng 64 bit sẽ không xuất hiện sớm.

Cập nhật: Nó đã được xác nhận bởi giám đốc tiếp thị Qualcomm (hiện là cựu giám đốc điều hành, vì ông đã bị giáng chức vì những bình luận này ).

"Tôi biết có rất nhiều tiếng ồn bởi vì Apple đã [64-bit] trên chiếc A7 của họ", Anand Chandrasekher, phó chủ tịch cấp cao và giám đốc tiếp thị của Qualcomm, nói trong một cuộc phỏng vấn. "Tôi nghĩ rằng họ đang thực hiện một mánh lới quảng cáo tiếp thị. Không có lợi ích nào cho người tiêu dùng nhận được từ đó."

Một lợi ích của 64-bit là khả năng đánh địa chỉ bộ nhớ nhiều hơn, nhưng điều đó không liên quan trong điện thoại thông minh hoặc máy tính bảng ngày nay, Chandrasekher nói. IPhone 5s chỉ có 1GB DRAM.

"Chủ yếu là ... bạn cần nó cho khả năng đánh địa chỉ bộ nhớ trên 4GB. Đó là nó. Bạn không thực sự cần nó cho hiệu năng và các loại ứng dụng 64 bit được sử dụng trong hầu hết là các ứng dụng lớn, cấp máy chủ", cho biết Chandrasekher, người trước đây đã điều hành nhóm nền tảng di động của Intel. ( nguồn )


9

Chỉ tập trung vào A7việc ARMv8có một lợi ích rõ ràng. ARM đang khởi động lại tập lệnh và kiến ​​trúc của họ.

Khả năng tương thích ngược với ARMv7, phiên bản tiếp theo cũng tuyên bố

  • Tập lệnh mới (A64)
  • Sửa đổi xử lý ngoại lệ cho các trường hợp ngoại lệ ở trạng thái AArch64
  • Ít đăng ký và chế độ

Vì vậy, ARMv8những thách thức ARMv7về sự khác biệt về kiến ​​trúc, cung cấp giao diện sạch hơn cho các nhà phát triển hệ thống có thể sẽ loại bỏ các tính năng cũ dẫn đến một nền tảng tốt hơn. Điều đó có nghĩa là bạn nên mong đợi một hiệu suất / năng lượng tốt hơn thay vì tác động tiêu cực đến pin.

Xem thêm về ARM Architecture Preview .


+1. Gruber cũng có một mô tả hay về những lợi thế mà ARMv8 tại daredfireball.net/2013/09/the_iphone_5s_and_5c . (Cuộn xuống "Kiến trúc A7: ARMv8 và 64 bit.")
Josh Kelley

4

Ưu điểm lớn nhất so với 32 bit đối với bộ xử lý 64 bit là sự chuyển động của bộ nhớ chứ không phải kích thước của bộ nhớ. Mặc dù đúng là 32 bit có thể áp dụng giới hạn 4GB đối với truy cập trực tiếp. Có nhiều giải pháp phần cứng / phần mềm để vượt qua giới hạn đó.

Bộ xử lý 64 bit có thể chỉ cần đọc / ghi thêm dữ liệu trong một hoạt động của bộ xử lý. Nó cho phép mã lắp ráp thực hiện các hoạt động trên các khối 8 byte. Điều này có thể có một lợi thế hiệu suất lớn so với bộ xử lý 32 bit. Tính toán dấu phẩy động nhanh hơn trên 64 rồi 32 và khi CPU sử dụng các thanh ghi kép, nó có thể hoạt động trên các khối dữ liệu 128 bit.

Bộ xử lý 64 bit cũng có băng thông rộng hơn tới bộ nhớ vật lý. Nếu bạn có một máy ảnh ghi 1080p và muốn chỉnh sửa video đó. Thực hiện thao tác trên tệp video 1GB đơn giản sẽ nhanh hơn trên 64 bit.

Tất cả những điều trên là đúng ngay cả khi Ghz của bộ xử lý vẫn giữ nguyên.

Nếu 64-bit là tốt như vậy, tại sao không phải là 128 bit?

Càng nhiều bit bạn thêm vào đường ống của CPU, CPU càng phải di chuyển nhiều dữ liệu. CPU không thể thu hẹp băng thông xuống còn 16 hoặc 32. Vì vậy, điều này tạo ra một vấn đề cho các nhà phát triển phần mềm. Hầu hết các phần mềm (lịch, ghi chú của bạn, v.v.) không phụ thuộc vào nhiều dữ liệu và kết quả là 128 bit sẽ liên quan đến rất nhiều băng thông bị lãng phí. Điều này có thể bắt đầu cản trở hiệu suất và tuổi thọ pin. Vì vậy, các nhà sản xuất CPU phải tìm sự cân bằng giữa băng thông và yêu cầu phần mềm.

Tôi ngạc nhiên khi Apple phát hành bộ vi xử lý 64 mới sớm trong đời máy tính di động. Tôi nghĩ động lực thực sự của họ cho việc này là đồ họa 3D. Với bộ xử lý 64 bit, điện thoại có thể di chuyển nhiều dữ liệu đến GPU một cách nhanh chóng. Điều này sẽ cho phép các trò chơi 3D nhanh và đồ họa ấn tượng hơn. Bạn sẽ thực sự bắt đầu thấy những lợi thế của 64-bit trong 3D thời gian thực vì quá trình đó phụ thuộc rất lớn vào dữ liệu.


4
Các kiến ​​trúc CPU gần đây / hiện đại phức tạp hơn nhiều so với bạn mô tả ở đây. CPU di chuyển dữ liệu từ bộ nhớ trong các đơn vị được gọi cache linesqua các bus bộ nhớ có thể có 16 bit 32 bit hoặc có thể là 64 bit. Điều đó không cần thiết phù hợp với kích thước từ gốc của CPU arch. Bạn đúng rằng vấn đề lớn là di chuyển dữ liệu nhưng vấn đề đó thuộc về một số miền kiến ​​trúc / phần cứng khác. FP được thực hiện trên FPU thực sự khá nhanh và có thể hoạt động với các kích thước chính xác đơn hoặc đôi. Tương tự đối với giải mã video hoặc 3D thực sự, chúng có tất cả các phần cứng chuyên dụng riêng không nhất thiết phải là 64 bit.
auselen

4
Có một tài liệu tuyệt vời được gọi là what every programmer should know about memorymiễn phí dành cho nhà phát triển tò mò akkadia.org/drepper/cpumemory.pdf
auselen

2

Nó làm cho mọi thứ dễ dàng hơn khi xử lý số lượng lớn. Số lượng lớn là cực kỳ quan trọng trong mật mã (sau khi PRISM có một điện thoại di động an toàn đã trở nên rất quan trọng) và các ứng dụng khoa học.


1

Mặc dù bạn có thể không gặp vấn đề ngay bây giờ nếu bạn dính vào 32 bit, chắc chắn sẽ có vấn đề trong tương lai gần. Bài học rút ra từ thế giới máy tính để bàn là quá trình chuyển đổi sẽ là một quá trình dài và đau đớn. Vì vậy, bạn nên bắt đầu với nó sớm hơn sau đó.

Nó thậm chí còn đáng ngạc nhiên với tôi rằng điện thoại thông minh không có 64 bit từ lúc di chuyển.


Tôi đã thử nghiệm điều này bằng cách chuyển đổi ứng dụng hiện tại của tôi thành 32 bit. Tôi đã có một số cảnh báo nhưng không có lỗi. May mắn thay, apple đã có một bản sửa lỗi được đề xuất cho mọi cảnh báo nên tôi chỉ cần nhấp vào từng cảnh báo và nhấn enter để chấp nhận sửa lỗi. Mất khoảng 5 phút và tôi đã chạy và chạy trong 64 bit. Không đau đầu không có vấn đề ... cho đến nay
Chris.

0

Tôi không nghĩ rằng có rất nhiều lợi ích kỹ thuật. Đầu tiên tôi nghĩ nó có ý nghĩa hơn khi bạn xem xét iPad (nó có pin lớn hơn để nó có thể hỗ trợ nhiều ram hơn, mức tiêu thụ năng lượng cao hơn của bộ xử lý, v.v.). Thứ hai nhìn vào các thông báo khác đang diễn ra ngay bây giờ. AMD vừa tuyên bố sẽ vận chuyển bộ vi xử lý ARM 64 bit vào năm 2014. Về cơ bản, Apple giữ vị trí dẫn đầu thị trường trước những gì sắp xảy ra với máy tính bảng Android và Win8 cao cấp.


0

Trong ngắn hạn không có gì nhiều. Đó thực sự là một bước lùi trong một số cách. Có ba ưu điểm chính mà tôi biết.

  1. 64bit tốt hơn rất nhiều với số lượng lớn hơn, đó là một lợi ích cho tiền điện tử. Đó có thể là một sự kết hợp thú vị với máy quét vân tay trên điện thoại.
  2. Một lần nữa trong cùng một hướng, những cải tiến với 64 bit và số lượng lớn giúp hiển thị vật lý. Điều này rất hữu ích khi xem xét số lượng vật lý được sử dụng trong giao diện người dùng của iOS7. Điều này cũng có lợi cho các nhà phát triển trò chơi cũng như đặc biệt là trên một cái gì đó có bất động sản màn hình lớn hơn như iPad.
  3. Nó cũng thêm một số mức độ chứng minh điện thoại hiện tại trong tương lai bằng cách sử dụng này.

0

Điểm chuẩn.

Đối với một số triển khai có khả năng cả hai chế độ kiến ​​trúc 32 so với 64 bit với x86, MIPS và ARM ISAs, chế độ 64 bit được điểm chuẩn nhanh hơn trên một số ứng dụng quan trọng nhất định. Một lý do chính là ISA 64 bit mới hơn và do đó các kiến ​​trúc sư của ISA biết nhiều hơn về thống kê ứng dụng và cách tối ưu hóa cho tập hợp các hành vi ứng dụng đó khi xác định ISA. Và một bộ xử lý mới mà ISA cần phải là bằng chứng trong tương lai chống lại nhu cầu bộ nhớ ứng dụng đang phát triển theo tốc độ luật của Moore và đã tăng hơn một triệu lần trong khu vực thiết bị di động.

Do đó, ISA arm64 mới có khả năng điểm chuẩn nhanh hơn đối với bất kỳ mã bị hạn chế hiệu năng nào bạn có thể phát triển (mã này có trên mã của tôi), cũng như cho phép các con trỏ C câm giải quyết các không gian địa chỉ ảo rộng lớn có thể trở nên phổ biến trong một thập kỷ trở lên (đó là Thời gian ít hơn nhiều so với ARM ARM 32 bit ban đầu đã tồn tại).

Hiệu suất trên bộ ứng dụng cụ thể của bạn (biện pháp để xác nhận) là một lý do tuyệt vời để thích arm64.


-4

64 bit cho phép chia sẻ nhiều mã hơn với các bản dựng OSX trên máy tính để bàn (tất cả đều là 64 bit)


Nhưng hiện tại tất cả các ứng dụng ios phải duy trì khả năng tương thích 32 bit, do đó, bất kỳ mã chỉ 64 bit nào cũng phải được chuyển đổi thành 32 bit.
Bryan Chen

1
Nhưng dù sao chúng là kiến ​​trúc hoàn toàn khác nhau (x86-64 so với armv8). Không thu được gì từ đó (chương trình được viết hoàn toàn bằng C / C ++ / ObjC sẽ hoạt động trên bất kỳ số bit nào ngay cả khi đó không phải là một yêu cầu).
Jan Hudec
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.