Tại sao điện thoại Android có nhiều lõi hơn máy tính?


80

Máy tính xách tay thường có nhiều nhất là bốn lõi, và lõi kép có lẽ phổ biến hơn. Gần đây tôi đã chuyển từ quadcore sang dualcore và tôi có thể xác nhận rằng có một số lượng hạn chế sử dụng cho quadcore, ngay cả với các tác vụ chuyên sâu của CPU.

Mặt khác, tại điện thoại di động, quadcores, hexacores và octacores dường như là phổ biến. Tại sao? Những nhiệm vụ có thể sử dụng chúng?

Tôi hiểu rằng big.LITTLE có thể là một phần của câu trả lời. Đó là, lợi ích chính của rất nhiều lõi không phải là khả năng sử dụng đồng thời tất cả chúng, mà là sử dụng lõi có mức tiêu thụ điện phù hợp với khối lượng công việc hiện tại. Tuy nhiên, ví dụ, Snapdragon 625 có tám lõi Cortex-A53, dường như không phải là trường hợp của big.LITTLE.

Có thể kiến ​​trúc ARM có điểm thấp hơn về hiệu suất tối ưu trên mỗi watt. Đó là, việc có một lõi đơn được điều chỉnh cho hiệu suất tối ưu trên mỗi watt dẫn đến hiệu suất trên ARM thấp hơn so với Intel. Vì vậy, nhiều lõi được sử dụng để cung cấp hiệu suất. Đây chỉ là một giả thuyết.

Nhưng ngay cả trong trường hợp này, tôi không thấy khối lượng công việc nào có thể sử dụng hiệu quả, giả sử, tám lõi trên điện thoại di động. Trên máy tính xách tay, tôi có thể tưởng tượng một số ít như tổng hợp đầy đủ (không tăng dần) của một dự án. Nhưng trên điện thoại?

  • Các trò chơi có thể đói hiệu năng, nhưng chúng thường yêu cầu hiệu năng GPU hơn là CPU, phải không?
  • Về mặt lý thuyết, nhiều lõi có thể tăng tốc độ biên dịch AOT của Android Lollipop / Marshmallow khi cài đặt hoặc khi nâng cấp (nghĩa là, các ứng dụng Tối ưu hóa giai đoạn 3/121). Tôi, tuy nhiên, không chắc chắn nếu điều này có thể sử dụng nhiều lõi. Theo như tôi nhớ mã, chỉ có một ứng dụng đang được biên dịch tại một thời điểm, nhưng có thể có một số sự song song trong chính quá trình biên dịch.
  • Ngoài ra Android 7+ có thể sử dụng nhiều lõi khi biên dịch. Nhưng vì nó được biên dịch khi không hoạt động và sạc, nên lợi ích có vẻ là khá nhỏ. Ít nhất là khi một người sạc điện thoại qua đêm - tôi thực sự không quan tâm nếu phải mất 30 phút hoặc hai giờ trong một kịch bản như vậy.

Như tôi đã chỉ ra trong câu trả lời của mình, hãy nhớ rằng bạn dường như đang nhìn mọi thứ lộn ngược. Nhiều thực thi lõi / song song là chuẩn mực, không phải điện thoại của bạn là một sự bất thường vì có nhiều lõi, đó là CPU PC vốn là một sự bất thường.
motoDrizzt

4
Câu hỏi của bạn là thiếu sót, PC có thể có nhiều lõi hơn điện thoại. intel.com/content/www/us/en/products/processors/core/x-series/... Và đó thậm chí còn không nhận được vào máy server-lớp, có thể có hàng chục hoặc thậm chí hàng trăm lõi. (Và một số siêu máy tính lọt vào phạm vi hàng ngàn lõi.)
JAB

3
@JAB Chắc chắn, nhưng tôi không nói về số lượng lõi tối đa, mà là về số lượng điển hình. Đối với máy tính xách tay, nhiều hơn bốn lõi là khá phổ biến, nhưng bạn có thể tìm thấy một số ngoại lệ, có thể với Xeon. Đối với điện thoại di động, thậm chí octacores dường như là tương đối phổ biến.
v6ak

4
"Gần đây tôi đã chuyển từ quadcore sang dualcore và tôi có thể xác nhận rằng có một số lượng hạn chế sử dụng cho quadcore, ngay cả với các tác vụ chuyên sâu của CPU." - Bạn có thể mở rộng và giải thích về cách bạn đi đến kết luận đó không?
Abdul

@Abdul Nó chủ yếu xuất phát từ những quan sát của tôi (xem tải hệ thống bằng cách sử dụng htop hoặc một công cụ tương tự) và một phần từ kết luận của tôi. Ngay cả một số taksk nơi tôi mong đợi song song hóa (ví dụ: kết xuất bằng OpenScad) là lõi đơn. Firefox (ESR) thường tiêu thụ tối đa một lõi. Biên soạn tăng dần - Tôi chưa đo được, nhưng theo trực giác, không có nhiều cơ hội để tìm các nhiệm vụ độc lập. (Biên dịch đầy đủ là một trường hợp khác.)
v6ak

Câu trả lời:


63

Như bạn đã lưu ý, các big.LITTLE chiến lược kết hợp (về mặt kỹ thuật, HMP , không đồng nhất Multi-Processing cụm) là lý do chính cho rất nhiều (và đôi khi áp đảo nhiều) lõi. Một thiết bị di động thường chạy trong nhiều tình huống, bao gồm cả tải nặng và tải nhẹ.

Một ví dụ cực kỳ đẳng cấp cho người tiêu dùng là Helio X20 của MediaTek, có 2 lõi A72 định hướng hiệu suất, 4 lõi A53 cân bằng, cộng với 4 lõi A35 tiết kiệm năng lượng. Điều đó rất linh hoạt trong các trường hợp sử dụng khác nhau. Tuy nhiên, tôi nghĩ 8 lõi 2 cụm thường là đủ.

Ngoài ra còn có một ví dụ giống như máy tính để bàn khác, dòng Snapdragon 800 của Qualcomm (S 800, S 801 và S 805). Chỉ có 4 lõi của cùng một kiến ​​trúc vi mô trong mỗi SoC, với 2 xung nhịp cao hơn và 2 xung nhịp thấp hơn. Qualcomm đã tạo ra các SoC này vì họ rất tin tưởng vào kiến ​​trúc vi mô của riêng họ (K Eo 400 và K Eo 450).

Đối với các trò chơi, ngay cả khi chúng dường như đòi hỏi hiệu năng GPU hơn là CPU, chúng vẫn gây ra gánh nặng cho CPU. GPU không thể hoạt động một mình mà không có thứ gì khác cung cấp dữ liệu cần xử lý và đó là một trong những công việc chính mà CPU đang làm trong khi bạn chơi game. Trong hầu hết các trường hợp chơi trò chơi, GPU chỉ hiển thị đồ họa, trong khi tất cả các công việc khác như tải dữ liệu, tài nguyên và tài sản và tính toán cơ học trong trò chơi như hệ thống, môi trường và vật lý đều được CPU thực hiện. Bạn sẽ không quan sát tốc độ khung hình cao hơn nếu bạn nâng cấp GPU của mình trong khi gắn bó với CPU cấp thấp.

Một lý do phụ là cách Android sử dụng tài nguyên CPU . Android khá nhiều làm cho môi trường ứng dụng của riêng họ. Nó không sử dụng gì ngoài mã (và API) từ Java, nhưng nó có máy ảo riêng có tên Dalvik, sau này được thay thế bằng ART (API cấp 21). APK có mã thực thi của chúng ở định dạng "trung tính", giống như .classcác tệp trong Java. Trước khi chạy, mã được biên dịch một lần nữa vào hướng dẫn gốc của máy [1] . Quá trình biên dịch là đa luồng và có thể sử dụng đa lõi để tăng hiệu năng.
Và khi một ứng dụng đang chạy, có một số quy trình và cơ chế khác (như Garbage Collector) chạy dọc hoặc song song với ứng dụng. Nhiều lõi hơn có thể cho phép các quy trình hỗ trợ chạy hiệu quả hơn, cũng như ứng dụng chính.
1. Nếu bạn sử dụng mã định danh loại tệp, bạn sẽ thấy rằng các tệp dex "được tối ưu hóa" có định dạng ELF, trong khi các tệp dex "trung tính" chỉ ở định dạng của riêng chúng.

Một lý do khác là các lõi ARM không thể hoạt động nhanh như chip Intel x86 . Kiến trúc vi mô Intel x86 có thể có từ năm 1976, khi chip Intel 8086 bắt đầu được thiết kế, điều đó có nghĩa là x86 đã phát triển trong một thời gian dài. Một lõi ARM Cortex-A73 cao cấp hiện đại duy nhất chỉ mạnh bằng lõi Intel Clarkdale, lấy Core i5-660 làm ví dụ (GeekBench, lõi đơn). Điều này là do x86 là một kiến trúc vi mô CISC trong khi ARM là RISCkiến trúc vi mô. Bạn chắc chắn không muốn một chiếc điện thoại trở nên lag khi chỉ có hai ứng dụng hoạt động. Nhiều lõi hơn sẽ giúp giảm áp lực. Đó là lý do tại sao các SoC lõi kép tương đối phổ biến chỉ trên đồng hồ thông minh. Ai cần hiệu suất trên một chiếc đồng hồ thông minh?

Thật thú vị, nhiều lõi hơn sẽ dẫn đến ít năng lượng hơn so với một lõi đơn ở cùng tải . Mối quan hệ giữa tần số CPU và mức tiêu thụ năng lượng nhiều hơn tuyến tính, do đó, tần số gấp đôi sẽ luôn dẫn đến yêu cầu nhiều hơn gấp đôi, thậm chí gấp 3 hoặc 4 lần năng lượng, trong khi cung cấp hiệu suất thấp hơn hai lần (do các hạn chế tài nguyên khác như bộ đệm ). Vì vậy, 4 lõi có thể dễ dàng đánh bại một lõi đơn ở cùng tải, cung cấp hiệu năng tốt hơn và đồng thời đòi hỏi ít năng lượng hơn.

Đọc thêm:


1
Tôi nhớ đã đọc hoặc xem ở đâu đó rằng hạt nhân Linux ban đầu hoạt động với sự hỗ trợ đa lõi tốt, tập trung vào siêu máy tính, từ nhiều năm trước, và những nỗ lực này đã tỏ ra hữu ích "trong tương lai" (hiện tại) cho điện thoại thông minh, giống như một loại " tai nạn "
Marc.2377

3
Câu trả lời này dường như không thực sự trả lời câu hỏi, mặc dù được chấp nhận. Câu trả lời này dường như đang trả lời "Tại sao tôi có thể muốn có thêm lõi trong điện thoại của mình?" đó không phải là câu hỏi trong tầm tay Nó không giải thích sự khác biệt giữa PC và Điện thoại. Những điểm được đưa ra về lý do tại sao một điện thoại có thể muốn có nhiều lõi hơn cũng áp dụng cho máy tính để bàn, đặc biệt là những điểm về chơi game.
Aaron

8
Yêu cầu năm 1976 trên CPU x86 có phần sai lệch. Các lõi ARM có thể được bắt nguồn từ dự án Acorn RISC Machine năm 1983, chỉ 7 năm sau, và theo một số cách mới hơn là một lợi thế, Acorn đã học được một số điều sai với sự phát triển của các thiết kế CPU x86 và tương tự và kết hợp nó vào CÁNH TAY.
dùng1937198

2
Ngoài ra RISC vs CISC không liên quan gì đến nó, CPU Intel chạy lõi RISCish bên trong (uops). Sự khác biệt thực sự là ra hoặc đặt hàng so với thực hiện theo thứ tự.
dùng1937198

5
Điều x86 khá ... sai. Chúng là các chip siêu khối, việc triển khai cơ bản sẽ không làm được gì tốt như đường ống RISC cổ điển được sử dụng trong hầu hết các chip ARM. Cũng đáng lưu ý rằng việc liên kết các lõi với các thiết kế siêu vô hướng RẤT khó khăn do thực hiện không theo thứ tự và phân cấp bộ đệm. Không ai biết họ đang thiếu gì nên thực sự không có nhu cầu về nó. Nếu bạn nhận thấy một số lần lặp mới hơn của Intels không có trong các chip có số lượng lõi cao - chúng nằm trên Broadwell, thì điều này là do chúng đã loại bỏ nội dung đồng bộ hóa - ngoài không gian.
Alec Teal

15

Lý do là đơn giản như nhiều phức tạp.

Câu trả lời ngắn gọn là "bởi vì thị trường điện thoại di động chưa bao giờ và không được điều khiển bởi Intel".

Câu trả lời dài là quá lâu để tiếp tục ở đây, nhưng khái niệm cơ bản là Intel đã thống trị thị trường PC trong nhiều năm bằng mọi cách có thể, đến mức phải trả tiền và làm hỏng (và bị phạt vì điều này) để CPU của anh ta trở thành sự lựa chọn đầu tiên và duy nhất cho các nhà sản xuất PC.

Việc kiểm soát toàn bộ thị trường đã cho phép Intel tăng giá CPU trong khi quyết định một cách giả tạo những tính năng và công suất xử lý mà người dùng nên có, và nếu bạn phân tích một chút lịch sử Intel, bạn sẽ nhận thấy rằng sức mạnh chính của nó về cơ bản là sự gia tăng tần số CPU, do đó, nó hầu như không bao giờ cố gắng làm điều gì đó thực sự thông minh hoặc sáng tạo; và nó không cần nó, bởi vì nó chỉ có thể nói với mọi người "bạn không cần nhiều lõi hơn, nhưng tôi có CPU mới ngon ngọt này chạy nhanh hơn 100 MHz". Đồng thời, nó có thể bán CPU đa lõi trên thị trường máy chủ với giá cao vô lý (vì máy chủ luôn cần thiếthàng tấn công suất song song, đến mức có một xu hướng hiện tại là cố gắng nhận ra các máy chủ sử dụng ... đoán xem? Hàng trăm CPU điện thoại giá rẻ của bạn hoạt động song song)

Đến lượt nó, điều này đã phản ánh vào cộng đồng các nhà phát triển chưa bao giờ bắt kịp tầm quan trọng của lập trình song song, do đó, nhiều người nếu không phải hầu hết trong số họ không bao giờ bận tâm sử dụng nhiều hơn một luồng - để thể hiện nó trong một luồng không cách kỹ thuật, có phần mềm của họ làm nhiều hơn một nhiệm vụ tại một thời điểm. Nhân tiện, điều này có ý nghĩa khi 99% cơ sở khách hàng của bạn có tối đa hai lõi. Đáng buồn thay, điều này đã dẫn đến truyền thuyết rằng các thuật toán song song thực sự khó thực hiện và chỉ áp dụng cho một tập hợp nhỏ các vấn đề.

Thay vào đó, cuối cùng, thị trường di động chưa bao giờ thấy Intel thành công; hoàn toàn ngược lại, thực tế, vì hầu hết thời gian Intel cố gắng làm điều gì đó khác với kiến ​​trúc X86 thông thường. Vì vậy, thiếu là ảnh hưởng và kiểm soát thị trường, các nhà sản xuất CPU khác đã đi theo hướng đã trở thành sự bình thường cho các lứa tuổi bên ngoài thị trường PC: điện toán song song.


12
Bạn có chắc là bạn đang trả lời đúng câu hỏi ?
iBug

7
@iBug Câu trả lời này áp dụng cho câu hỏi của OP tốt hơn câu trả lời được chấp nhận. Câu trả lời được chấp nhận là câu trả lời không đúng.
Aaron

6
"Tăng giá CPU một cách giả tạo" -> Nếu Intel tăng giá một cách giả tạo, tại sao đối thủ cạnh tranh của họ lại sử dụng phần cứng có giá tương tự và tại sao máy tính chạy ARM lại khó khăn như vậy khi so sánh với phần cứng của Intel? Sự ghét bỏ này là vô lý. Làm CPU rất khó . Điều khiến ARM trở nên phổ biến trong các thiết bị di động là ý tưởng big.LITTLE, thứ mà họ đã nghĩ ra trước Intel.
T. Sar

6
Intel không kiểm soát thị trường chip PC và đã không hoạt động trong nhiều năm. Và lý do các nhà thiết kế chip chuyển từ đồng hồ nhanh hơn sang nhiều lõi hơn là vì đồng hồ nhanh hơn đã gặp phải một số hạn chế vật lý cơ bản. Nhiều lõi hơn là một vấn đề khó giải quyết hơn nhiều, vì vậy họ đã giải quyết nó cho đến khi đó là cách hiệu quả nhất về chi phí để tiếp tục tăng hiệu suất.
Kevin Krumwiede

6
Đây không chỉ là một lời ca ngợi về tập đoàn Intel độc ác, mà IMO không xứng đáng vì ARM sản xuất chip độc lập cũng có giấy phép.
Dmitry Grigoryev

9

Có hai yếu tố đang diễn ra, một yếu tố rất thực tế và lịch sử khác.

Lý do thực tế là việc sử dụng các kiến ​​trúc hỗn hợp trong điện thoại. Tiêu thụ điện năng là rất quan trọng đối với điện thoại và điện thoại dành nhiều thời gian ở các chế độ mà chúng đòi hỏi rất ít hiệu năng. Thật hợp lý khi có một số lõi được tối ưu hóa để tiêu thụ năng lượng tối thiểu khi cần ít hiệu suất trong khi có một số lõi được tối ưu hóa để cung cấp hiệu suất tối đa khi cần.

Lý do khác phần lớn là lịch sử. Cho đến năm 2005 hoặc lâu hơn, CPU máy tính để bàn đều là các lõi đơn. Cải thiện hiệu suất CPU của máy tính để bàn hầu như chỉ tạo ra một lõi có thể thực thi càng nhiều lệnh mỗi giây càng tốt. Ngay cả ngày nay, rất nhiều phần mềm máy tính để bàn không thể tận dụng tối đa nhiều lõi mà nhiều người thích CPU có 4 lõi hơn CPU 8 lõi với lõi chậm hơn 20%.

Để có được hiệu năng càng cao từ một lõi càng tốt đòi hỏi số lượng lớn bất động sản CPU. Đây là bất động sản có thể được sử dụng để cung cấp nhiều lõi hơn. Đây là lý do tại sao CPU Kaby Lake mới nhất của Intel đạt tối đa 4 lõi và mọi người mua chúng vì mỗi lõi nhanh hơn lõi của người tiền nhiệm. Đối với nhiều người, chúng là một bản nâng cấp ngay cả từ CPU có số lượng lõi cao hơn.

Theo thời gian, hy vọng sẽ thấy nhiều phần mềm máy tính để bàn được tối ưu hóa hoàn toàn để hỗ trợ nhiều lõi hơn. Khi điều đó xảy ra, sự đánh đổi kỹ thuật sẽ bắt đầu ưu tiên nhiều lõi hơn các lõi nhanh hơn trên máy tính để bàn. Mặc dù các lõi gần như chắc chắn vẫn sẽ nhanh hơn, nhưng bạn sẽ bắt đầu thấy mọi người thích CPU 8 lõi hơn CPU 4 lõi ngay cả khi mỗi lõi chậm hơn 20%. Các nhà thiết kế chip sẽ theo dõi thị trường.


5

Điều quan trọng đối với một chiếc điện thoại là có thể cung cấp năng lượng tính toán trong các đợt ngắn (chúng tôi cần một số ứng dụng nhất định phải nhanh) nhưng cũng để tránh quá nóng (tản nhiệt khó khăn hơn cho điện thoại so với máy tính xách tay hoặc PC). Để thực hiện điều này, các kiến ​​trúc sư thiết kế điện thoại sử dụng một lõi đơn khi khối lượng công việc nhẹ và cung cấp thêm lõi để tăng hiệu suất khi cần thiết. Nếu điện thoại sử dụng ít lõi lớn hơn, quá nóng sẽ trở thành vấn đề ngay cả khi khối lượng công việc khá nhẹ.

Nguồn: Một khóa học kiến ​​trúc máy tính cấp độ sau đại học.


Sự thật được nói, khả năng cung cấp sức mạnh tính toán (nếu đó là ý nghĩa của năng lượng ) trong các đợt ngắn là rất quan trọng đối với máy tính để bàn. Đó là lý do tại sao họ có TurboBoost trên chip Intel.
Dmitry Grigoryev

Vâng, sức mạnh tính toán là những gì tôi muốn nói. Đúng, tất cả các thiết bị có thể có khối lượng công việc bùng nổ tại một số thời điểm (bao gồm cả điện thoại và máy tính để bàn) cần phải có khả năng xử lý nó. Sự khác biệt chính là tản nhiệt.
Tara Erich

Tôi đồng ý với những gì bạn nói, chỉ muốn chỉ ra rằng khối lượng công việc bùng nổ không dành riêng cho điện thoại.
Dmitry Grigoryev

2

Đầu tiên, máy ảo Java trong lịch sử có thể hưởng lợi từ đa lõi nhiều hơn phần mềm máy tính để bàn thông thường. Ngay cả khi bạn viết một ứng dụng một luồng trong Java, nó sẽ chạy nhanh hơn trên đa lõi vì hầu hết các mã trình thu gom rác sẽ chạy cùng với ứng dụng của bạn.

Thứ hai, rất nhiều thứ đang diễn ra trong nền trên điện thoại của bạn: cập nhật tự động, tải xuống quảng cáo, phần mềm chống vi-rút, quản lý mô-đun GSM, v.v. Trên máy tính xách tay, tất cả các tác vụ này sẽ hầu như không làm cho một lõi bận rộn, nhưng lõi ARM thì ít mạnh hơn nhiều, vì vậy bạn có thể muốn có ít nhất một vài trong số đó dành riêng cho các tác vụ nền nếu bạn muốn có một hệ thống đáp ứng.

Cuối cùng, có tiếp thị. Không có nhiều người dùng có khả năng đánh giá liệu họ sẽ được hưởng lợi từ 8 lõi, nhưng một điện thoại thông minh 8 lõi chắc chắn có giá đắt hơn 2 hoặc 4 lõi.


2
Tôi liên tục thấy các tuyên bố dọc theo dòng "lõi ARM kém mạnh mẽ hơn nhiều" - điều đó chính xác có nghĩa là gì? Họ có ít tốc độ đồng hồ?
Abdul

2
@Abdul hoạt động ít hơn mỗi giây. Các chip x86 có thể thực hiện một số hoạt động cùng một lúc, vì vậy chúng vượt trội so với ARM ngay cả với cùng tốc độ xung nhịp. Kiểm tra so sánh này : chip ARM hàng đầu (GT-I9100) chậm hơn khoảng 10 lần so với chip x86 hàng đầu (i7-2920XM).
Dmitry Grigoryev

"Hoạt động trên giây" có đồng nghĩa với FLOPS không?
Abdul

@Abdul Không nhất thiết. Trong thực tế, ngoài các trò chơi và mô phỏng vật lý, dấu phẩy động không được sử dụng nhiều. Ngoài ra, nhiều chip ARM đạt được FLOPS tốt bằng cách làm tê liệt độ chính xác, do đó, đây cũng không phải là phép đo thực sự.
Dmitry Grigoryev

Các ứng dụng Android không chạy trên máy ảo Java. Họ chạy trên Dalvik VM
phuclv

1

Các câu trả lời cho đến nay giải thích một số khía cạnh của vấn đề dẫn đến số lượng lõi CPU quá nhiều trên điện thoại Android. Đọc lại lần nữa; Điện thoại Android. IPhone đã quản lý để bị mắc kẹt chỉ một vài lõi trong nhiều năm và vẫn hoạt động mượt mà hơn bất kỳ flagship Android nào.

Các nhà thiết kế của Android đã tạo ra một canh bạc lớn khi quyết định chọn lập trình Java và do đó, JVM là thời gian chạy của các ứng dụng. Java, do các nguyên tắc thiết kế của nó giải quyết vấn đề cần phải biên dịch và xây dựng mã cho từng kiến ​​trúc CPU trước khi có thể chạy trên nó bằng cách hy sinh hiệu năng. Java giới thiệu một máy ảo nặng và cồng kềnh thường được gọi là JVM. JVM thực sự mô phỏng CPU ở mức phần mềm để tránh phải biên dịch mã riêng cho từng thiết bị. Hãy nghĩ về JVM như một CPU ảo có các thuộc tính giống nhau bất kể thiết bị nào chạy nó để mã chỉ cần được biên dịch một lần cho JVM và sau đó có thể chạy trên mọi thiết bị. Điều này cho phép các nhà sản xuất ném bất kỳ phần cứng nào họ muốn trước khi cần phải lo lắng về khả năng tương thích ứng dụng.

Bản thân JVM chỉ là một đặc tả và mọi người có thể tự do phát triển JVM của riêng mình miễn là nó tuân thủ thông số kỹ thuật này. JVM gốc của Android được gọi là Dalvik. Ngày nay Google đã thay thế điều đó bằng ART.

Bây giờ vấn đề với JVM là gì? Nó là một phần mềm nặng, tiêu tốn rất nhiều tài nguyên máy tính. Thêm vào đó một số thuộc tính khác của ngôn ngữ Java như Bộ sưu tập rác và mức tiêu thụ tài nguyên của JVM đơn giản là trở nên quá nhiều cho một thiết bị có sức mạnh phần cứng khiêm tốn. Mỗi ứng dụng và dịch vụ hệ thống mở trên thiết bị của bạn là một phiên bản của ART JVM và đến bây giờ bạn có thể kết luận rằng việc quản lý tất cả chúng đòi hỏi một số phần cứng thực sự có khả năng. Điều sẽ còn tồi tệ hơn khi có nhu cầu vẽ giao diện người dùng.

Mỗi ứng dụng chạy trên một số Chủ đề. Mỗi lõi CPU chỉ có thể chạy một luồng mỗi lần. Mỗi ứng dụng có một luồng chính mà trên đó nó thực hiện các công việc liên quan đến giao diện người dùng. Có thể có nhiều luồng hơn cho mỗi ứng dụng để thực hiện truy cập tệp, mạng, v.v. Nhìn chung có nhiều ứng dụng (và dịch vụ hệ thống) mở hơn so với lõi CPU và kết quả là thường có nhiều luồng hơn so với lõi CPU. Vì vậy, mỗi lõi phải chuyển đổi giữa việc xử lý các luồng khác nhau liên tục, thực hiện từng bước một và tiếp theo. Việc chuyển đổi này mất rất nhiều thời gian cho CPU và trong trường hợp các ứng dụng chủ yếu là JVM, thì nhiệm vụ này càng trở nên mệt mỏi hơn.

Dựa trên lời giải thích này, người ta có thể suy luận rằng Android cần phần cứng mạnh mẽ để chạy trơn tru. Các thế hệ đầu tiên của thiết bị Android đã nổi tiếng vì bị lag, hỏng và nhiều điều không may khác. Nhưng trong những năm qua, những vấn đề này hầu hết đã được giải quyết bằng cách dựa vào phần cứng mạnh mẽ.

Mặt khác, ứng dụng iOS được biên dịch thành mã máy gốc và do đó không cần ảo hóa. Ngôn ngữ được sử dụng và hệ điều hành cũng hiệu quả hơn và do đó cho phép các thiết bị này hoạt động trơn tru mà không cần một số chipset quá mức.


Đây là một lời giải thích tốt đẹp tại sao điện thoại di động mạnh hơn nhiều so với máy tính để bàn. Hay không phải họ?
maaartinus

Phần mềm này cho phép các nhà sản xuất ném bất kỳ phần cứng nào họ muốn trước khi cần lo lắng về khả năng tương thích ứng dụng. Phần mềm - điểm tốt, nhưng tôi không chắc liệu đây có phải là ý định cho một hệ thống dành cho máy ảnh hay không.
v6ak

Có thể có nhiều luồng hơn cho mỗi ứng dụng để thực hiện truy cập tệp, mạng, v.v. - Những ứng dụng này khá ràng buộc I / O, không tiêu tốn nhiều CPU. Đôi khi, I / O được xử lý chỉ bằng một luồng, vì CPU nhanh hơn nhiều so với các thiết bị I / O.
v6ak

Thế hệ đầu tiên của các thiết bị Android nổi tiếng vì bị lag, hỏng và nhiều điều không may khác. Tôi nhớ tôi đã chạy Marshmallow trên điện thoại như vậy (Xperia Mini Pro) và tôi nghĩ rằng có nhiều lý do khác để chậm hơn CPU. Chúng chạy trên RAM thấp có các thiết bị flash chậm hơn như MTD (chậm hơn nhiều so với thẻ nhớ microSD đối với một số thao tác), các Android cũ hơn có JVM cứng kém hiệu quả (về mặt kỹ thuật không phải là JVM). Chắc chắn, CPU tốt hơn cũng có ích, nhưng tôi sẽ không thể kết luận như vậy.
v6ak

Ngoài ra, kiểu lập trình như thực hiện I / O (hoặc các hoạt động dài khác) trong luồng UI có thể khiến ứng dụng bị lag bất kể hiệu năng của CPU. AFAIK, phong cách này khá phổ biến trong các ứng dụng Android đầu tiên. Các ứng dụng như vậy có thể bị lag ngay cả với điện thoại hiện đại. Chúng có thể sẽ ít bị lag hơn, nhưng đó là do bộ nhớ flash nhanh hơn CPU nhanh hơn hoặc nhiều lõi hơn.
v6ak

0

Tiếp tục tất cả những điều trên, tôi có thể nói rằng các trường hợp sử dụng PC và điện thoại khá khác nhau. PC hầu hết được sử dụng trong một hoặc một vài ứng dụng (tất nhiên trình duyệt có nhiều tab yêu cầu nhiều lõi cpu, có thể bị lag ngay cả trên i-3 hàng đầu), điện thoại được sử dụng cho đa nhiệm. Ít nhất là kết nối mạng, vẽ UI, kích hoạt hệ thống, thông báo. Nếu bạn mở trình quản lý tác vụ trên PC thì cũng có nhiều quy trình, nhưng chúng sử dụng ít hơn vài% năng lượng cpu ngay cả trên bộ đôi Core 2 cũ. 4 lõi là khá rẻ (MTK 65x2 có giá 1 đô la khi bắt đầu cho OEM) Nó cũng RỦI RO so với CISC khi thiếu hiệu năng trên mỗi lõi lần cuối. Năng lượng hiệu quả! = Mạnh mẽ, như chúng ta có thể thấy ở đây . Đa lõi là hoàn hảo cho thiết bị di động, vì không có tải trọng đơn nặng và trải nghiệm đa tác vụ (nhưng chúng ta có thể thấy rằng iPhone cần ít lõi và RAM hơn nhờ phần mềm tốtnhư trong video này hoặc những người khác )


Nhiều trong số này thường được thực hiện trên máy tính xách tay, quá. Và đa nhiệm không cần phải có CPU. Sự khác biệt về chi phí sản xuất có thể gây ra một số khác biệt và có thể là lý do khiến số lượng CPU ít hơn, nhưng tôi nghi ngờ rằng chi phí sản xuất là lý do duy nhất tại sao không phải tất cả các i7 đều có ít nhất bốn lõi. Tôi tin rằng chi phí sản xuất chỉ là một phần rất nhỏ trong giá của những CPU đó.
v6ak

@ v6ak, vấn đề là lõi x86 lớn hơn và phức tạp hơn, CPU từ intell (hoặc amd) không đủ tốt để trở thành model hàng đầu. Trên thực tế, hầu hết trong số họ đã bị chặn một số phần và trở thành đàn em i7 hoặc Pentium. Các lõi ARM có vẻ ít phức tạp hơn nên không có nhiều model xuất hiện mỗi năm. Vẫn là lõi octa đúng là Samsung Exynos Octa 7xxx , MTK Helio X10 , Mới nhất (X30) thậm chí còn đề xuất rất ít (4) .Middle (4) .BIG (2), chúng tôi có thể quảng cáo rằng đó là bộ xử lý 10 lõi, tiếp thị giá rẻ nó làm điều đó.
Flippy

-1

Tôi nghĩ rằng một trong những yếu tố thúc đẩy chính vượt quá 4 hoặc 8 (đối với cấu hình lớn: nhỏ) chỉ là tiếp thị vào lúc này.

Một vấn đề lớn của số lượng lõi cao là khi bạn xem xét kích thước của bộ nhớ. Thông thường trong các ứng dụng máy tính để bàn khi bạn muốn cải thiện việc sử dụng nhiều lõi, bạn cần sao chép cấu trúc và sử dụng nhiều bộ nhớ hơn trong một ứng dụng luồng đơn.

Điều này không xảy ra vì RAM rất đắt (đặc biệt là trong tình huống khủng hoảng RAM 2017/2018). Tiếp thị muốn số lượng cao nhưng kiểm soát muốn cắt giảm giá thành phần. Nếu bạn thấy số dư ít hơn 1 Gigabyte RAM cho mỗi lõi thì bạn sẽ thấy sự thỏa hiệp thất bại.

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.