왜 안드로이드 폰에 컴퓨터보다 더 많은 코어가 있습니까?


80

랩톱에는 일반적으로 최대 4 개의 코어가 있으며 이중 코어가 더 일반적 일 수 있습니다. 최근에 쿼드 코어에서 듀얼 코어로 전환했으며 CPU를 많이 사용하는 작업에서도 쿼드 코어의 사용 사례 수가 제한되어 있음을 확인할 수 있습니다.

반면에 휴대 전화에서는 쿼드 코어, 헥사 코어 및 8 코어가 일반적인 것으로 보입니다. 왜? 어떤 작업을 활용할 수 있습니까?

big.LITTLE 이 답의 일부가 될 수 있음을 이해합니다 . 즉, 너무 많은 코어의 주요 이점은 모든 코어를 동시에 사용할 수있는 기능이 아니라 현재 워크로드에 적합한 전력 소비를 가진 코어를 사용한다는 것입니다. 그러나 예를 들어 Snapdragon 625에는 8 개의 Cortex-A53 코어가 있으며 big.LITTLE에는 해당되지 않습니다.

ARM 아키텍처는 와트 당 최적의 성능이 낮을 수 있습니다. 즉, 와트 당 최적의 성능을 발휘하도록 단일 코어를 조정하면 Intel보다 ARM의 성능이 저하됩니다. 따라서 성능을 제공하기 위해 더 많은 코어가 사용됩니다. 이것은 단지 가설 일뿐입니다.

그러나이 경우에도 휴대 전화에서 8 개의 코어와 같은 워크로드가 효율적으로 사용할 수있는 것을 알 수 없습니다. 랩톱에서는 프로젝트의 전체 (비 증분) 컴파일과 같은 것을 상상할 수 있습니다. 그러나 전화?

  • 게임은 성능이 고갈 될 수 있지만 일반적으로 CPU보다는 GPU 성능이 필요합니까?
  • 이론적으로 다중 코어는 설치 또는 업그레이드시 (즉,“앱 최적화 3/121”단계) Android Lollipop / Marshmallow AOT 컴파일 속도를 높일 수 있습니다. 그러나 이것이 여러 코어를 활용할 수 있는지 확실하지 않습니다. 내가 코드를 기억하는 한, 한 번에 하나의 앱 만 컴파일되고 있지만 컴파일 프로세스 자체에는 약간의 병렬성이있을 수 있습니다.
  • 또한 Android 7 이상은 컴파일 할 때 여러 코어를 활용할 수 있습니다. 그러나 유휴 및 충전시 컴파일이 이루어 지므로 이점이 다소 최소화 된 것으로 보입니다. 적어도 하루 밤 전화를 충전 할 때 – 그런 시나리오에서 30 분이나 2 시간이 걸리더라도 상관 없습니다.

내 대답에서 지적했듯이 거꾸로보고있는 것처럼 보입니다. 많은 코어 / 병렬 실행이 표준이며, 많은 코어를 가지고있는 이상이 아닌 휴대 전화가 아닙니다. PC CPU가 이상입니다.
motoDrizzt

4
귀하의 질문에 결함이 있습니다. PC에는 전화보다 더 많은 코어가있을 수 있습니다. intel.com/content/www/us/en/products/processors/core/x-series/… 수십 또는 수백 개의 코어를 가질 수있는 서버급 시스템에는 들어 가지 않습니다. (그리고 일부 슈퍼 컴퓨터는 수천 개의 코어 범위에 들어갑니다.)
JAB

3
@JAB 물론입니다.하지만 최대 코어 수에 대해서는 이야기하지 않고 일반적인 수에 대해서는 이야기하지 않습니다. 랩톱의 경우 쿼드 코어 이상이 일반적이지 않지만 Xeon에서는 예외가 있습니다. 휴대 전화의 경우 8 코어도 비교적 일반적으로 보입니다.
v6ak

4
"최근에 쿼드 코어에서 듀얼 코어로 전환했으며 CPU를 많이 사용하는 작업에서도 쿼드 코어에 대한 사용 사례 수가 제한되어 있음을 확인할 수 있습니다." -그 결론에 도달 한 방법을 확장하고 구체화 할 수 있습니까?
Abdul

@Abdul 그것은 주로 내 관찰 (htop 또는 비슷한 도구를 사용하여 시스템로드 확인) 및 부분적으로 내 결론에서 비롯됩니다. 병렬화 (예 : OpenScad를 사용한 렌더링)가 필요한 타스크조차도 단일 코어입니다. Firefox (ESR)는 일반적으로 최대 하나의 코어를 사용합니다. 증분 컴파일 – 나는 그것을 측정하지는 않았지만 직관적으로 독립적 인 작업을 찾을 수있는 기회는 많지 않습니다. (전체 컴파일은 다른 경우입니다.)
v6ak

답변:


63

이미 언급했듯이, big.LITTLE의 조합 전략 (기술적, HMP는 , 이기종 멀티 프로세싱 클러스터는) 많은 (그리고 때로는 압도적으로 많은) 코어의 주요 이유입니다. 모바일 장치는 종종 여러 가지 시나리오 (고부하 및 경부 하 포함)로 실행됩니다.

소비자 수준의 극단적 인 예로는 MediaTek의 Helio X20이 있는데, 여기에는 2 개의 성능 지향 A72 코어, 4 개의 균형 잡힌 A53 코어 및 4 개의 에너지 효율적인 A35 코어가 있습니다. 다양한 사용 사례에서 매우 유연합니다. 그러나 8 코어 2 클러스터로 충분 하다고 생각 합니다.

또 다른 데스크탑과 같은 예인 Qualcomm의 Snapdragon 800 시리즈 (S 800, S 801 및 S 805)도 있습니다. 각 SoC에는 동일한 마이크로 아키텍처의 코어가 4 개만 있으며 2 개 더 높고 2 개 더 낮습니다. Qualcomm은 이러한 자체 SoC를 자체 마이크로 아키텍처 (Krait 400 및 Krait 450)에 매우 확신했기 때문에 작성했습니다.

게임의 경우 CPU가 아닌 GPU 성능이 필요한 것처럼 보이더라도 여전히 CPU에 많은 부하를가합니다. GPU는 처리 할 데이터를 제공하지 않으면 단독으로 작동 할 수 없으며 이는 게임을하는 동안 CPU가 수행하는 주요 작업 중 하나입니다. 대부분의 게임의 경우 GPU는 그래픽 만 렌더링하는 반면 데이터, 리소스 및 자산로드, 시스템, 환경 및 물리와 같은 게임 내 메커니즘 계산과 같은 다른 모든 작업은 CPU에서 수행합니다. 로우 엔드 CPU를 고수하면서 GPU를 업그레이드하면 더 높은 프레임 속도를 볼 수 없습니다.

두 번째 이유는 안드로이드가 CPU 리소스를 활용하는 방법 입니다. 안드로이드는 자신 만의 애플리케이션 환경을 만듭니다. Java의 코드 (및 API) 만 사용하지만 Dalvik이라는 자체 가상 머신이 있으며 나중에 ART (API 레벨 21)로 대체되었습니다. APK는 실행 파일이 "중립"형식으로 .class되어 있으며 Java 파일 과 매우 유사 합니다. 코드가 실행되기 전에 기계의 기본 명령어로 코드가 한 번 더 컴파일됩니다 [1] . 컴파일 프로세스는 멀티 스레드이며 성능 향상을 위해 멀티 코어를 활용할 수 있습니다.
그리고 앱이 실행될 때 앱과 함께 또는 앱과 병렬로 실행되는 여러 다른 프로세스와 메커니즘 (가비지 콜렉터와 같은)이 있습니다. 코어가 많을수록 지원 프로세스와 메인 앱을보다 효율적으로 실행할 수 있습니다.
1. 파일 형식 식별자를 사용하는 경우 "최적화 된"덱스 파일은 ELF 형식이고 "중립"덱스 파일은 고유 한 형식입니다.

또 다른 적은 이유는 ARM 코어가 Intel x86 칩만큼 빠르게 작동 할 수 없기 때문입니다 . 인텔 x86 마이크로 아키텍처는 인텔 8086 칩이 설계되기 시작한 1976 년으로 거슬러 올라갈 수 있습니다 . 이는 x86이 오랜 기간 동안 개발되었음을 의미합니다. 현대적인 단일 고급 ARM Cortex-A73 코어는 Intel Clarkdale 코어만큼 강력하며 Core i5-660 을 예로 들어 설명합니다 (GeekBench, 단일 코어). x86은 CISC 마이크로 아키텍처이고 ARM은 RISC 이기 때문 입니다.마이크로 아키텍처. 두 개 정도의 활성 앱만으로 게으른 전화기는 원하지 않습니다. 더 많은 코어가 압력을 완화하는 데 도움이됩니다. 그렇기 때문에 듀얼 코어 SoC는 스마트 시계에서만 비교적 인기가 있습니다. 스마트 워치에서 성능이 필요한 사람은 누구입니까?

흥미롭게도, 더 많은 코어는 동일한 부하에서 단일 코어보다 전력이 적습니다 . CPU 주파수와 전력 소비 사이의 관계는 선형 이상이므로 주파수의 두 배는 항상 두 배 이상 또는 심지어 3 배 또는 4 배 많은 전력을 요구하는 반면 캐시와 같은 다른 리소스 제한으로 인해 두 배 미만의 성능을 제공합니다. ). 따라서 4 개의 코어가 동일한 부하에서 단일 코어를 쉽게 이길 수있어 더 나은 성능을 제공하고 동시에 더 적은 전력을 요구합니다.

추가 자료 :


1
리눅스 커널이 원래 수년 전 슈퍼 컴퓨터에 중점을두고 좋은 멀티 코어 지원을 해왔 던 곳을 읽거나 본 것을 기억하며, 이러한 노력은 "미래에"(현재) "스마트 폰"에 유용합니다. 사고 "
Marc.2377 2016 년

3
이 답변은 실제로 수락되었지만 질문에 실제로 답변하지는 않습니다. 이 답변은 "왜 전화에 추가 코어를 원할까요?" 이것은 당면한 문제가 아닙니다. PC와 전화의 차이점을 설명하지는 않습니다. 전화기가 더 많은 코어를 원할 수있는 이유는 데스크탑 컴퓨터, 특히 게임에 대한 요점에도 적용됩니다.
Aaron

8
1976 년 x86 CPU에 대한 주장은 다소 오해의 소지가 있습니다. ARM 코어는 7 년 후인 1983 년 Acorn RISC Machine 프로젝트로 거슬러 올라갈 수 있으며, 새로운 방식이 유리하다는 점에서 Acorn은 x86 및 유사한 CPU 설계 개발에있어 잘못된 점을 몇 가지 배웠고 팔.
user1937198

2
또한 RISC와 CISC는 관련이 없으며 인텔 CPU는 내부적으로 RISCish 코어를 실행합니다 (uops). 실제 차이는 주문 실행 대 주문 또는 주문입니다.
user1937198

5
x86 문제는 매우 잘못되었습니다. 그것들은 슈퍼 스칼라 칩이며, 기본 구현은 대부분의 ARM 칩에서 사용되는 고전적인 RISC 파이프 라인만큼 좋은 곳은 아닙니다. 수퍼 스칼라 디자인과 코어를 연결하는 것은 고장난 실행과 캐시 계층으로 인해 매우 어렵다는 점도 주목할 가치가 있습니다. 아무도 그들이 무엇을 잃어 버렸는지 알지 못했기 때문에 실제로 그것을 요구하지 않았습니다. 일부 인텔의 새로운 반복이 높은 코어 수 칩에 있지 않다는 것을 알면 브로드 웰에 있기 때문에 공간에서 동기화 항목을 버렸기 때문입니다.
Alec Teal

15

그 이유는 복잡 할만큼 간단합니다.

짧은 대답은 "휴대 전화 시장은 인텔이 주도한 적이없고 주도하지 않기 때문"입니다.

긴 대답은 여기에서 다시 시작하기에는 너무 길지만, 기본 개념은 Intel이 수년간 CPU 시장을 지배하기 위해 지불하고 부패 (그리고 벌금을 부과)하는 시점까지 PC 시장을 지배했다는 것입니다. PC 제조업체를위한 최초이자 유일한 선택입니다.

시장을 완전히 통제함으로써 인텔은 CPU 가격을 인플레이션하면서 사용자가 원하는 기능과 처리 능력을 인위적으로 결정할 수 있었으며 약간의 인텔 이력을 분석하면 기본 강점은 기본적으로 CPU 주파수의 증가로 인해 실제로는 똑똑하거나 혁신적인 일을 시도하지 않았습니다. "더 많은 코어가 필요하지 않지만 100MHz 더 빠르게 실행되는이 육즙이 많은 새로운 CPU가 있습니다"라고 말할 수 있기 때문에 필요하지 않았습니다. 동시에 서버가 항상 필요 했기 때문에 서버 시장에서 멀티 코어 CPU를 엄청나게 높은 가격으로 판매 할 수 있습니다사용하는 서버를 실현하려는 현재 추세가 있다는 점까지 많은 병렬 전력을 ... 무엇을 추측합니까? 저렴한 전화 CPU 수백 개가 병렬로 작동합니다)

이것은 병렬 프로그래밍의 중요성을 따라 잡지 못한 개발자 커뮤니티에 반영되어 대부분의 사람들이 시간에 두 개 이상의 스레드를 사용하여 귀찮게하지 않았습니다. 기술적 인 방식으로 소프트웨어가 한 번에 둘 이상의 작업을 수행하도록합니다. 그건 그렇고, 고객 기반의 99 %가 최대 2 개의 코어를 가질 때 의미가 있습니다. 슬프게도, 이것은 병렬 알고리즘이 실제로 구현하기가 어렵고 작은 문제 부분에만 적용된다는 전설로 이어졌습니다.

그 대신 모바일 시장은 인텔의 성공을 본 적이 없다. 실제로 인텔이 일반적인 X86 아키텍처와 다른 것을 시도하는 대부분의 시간에 발생하므로 실제로는 반대입니다. 따라서 시장의 영향과 통제력이 부족한 반면, 다른 CPU 생산자들은 PC 시장 이외의 시대에 평범한 방향 인 병렬 컴퓨팅으로 나아갔습니다.


12
당신은 올바른 질문에 대답 하고 있습니까?
iBug

7
@iBug이 답변은 수락 된 답변보다 OP의 질문에 더 적합합니다. 정답은 정답에 대답하지 않는 것입니다.
Aaron

6
"인공 CPU 가격을 인위적으로 부 풀리십시오"-> 인텔이 인공적으로 가격을 부풀렸다면 경쟁 업체가 비슷한 가격의 하드웨어를 사용하는 이유 와 인텔 하드웨어와 비교했을 때 ARM 기반 컴퓨터가 왜 그렇게 빨라지 는가? 이 인텔 증오가 말도 안됩니다. CPU를 만드는 것은 어렵다 . 모바일 장치에서 ARM을 인기있게 만든 것은 인텔 이전에 생각했던 큰 아이디어였습니다.
T. Sar

6
인텔은 PC 칩 시장을 통제하지 않으며 오랫동안 사용하지 않았습니다. 그리고 칩 설계자가 더 빠른 클럭에서 더 많은 코어로 전환 한 이유는 더 빠른 클럭이 몇 가지 근본적인 물리적 한계에 도달했기 때문입니다. 더 많은 코어는 해결하기가 훨씬 어려운 문제이므로 성능을 향상시키는 가장 비용 효율적인 방법이 될 때까지 연기했습니다.
Kevin Krumwiede

6
ARM은 라이센스를 가진 독립 칩 제조업체를 나사로 조이기 때문에 IMO는 그다지 가치가없는 악한 인텔 회사에 대한 열망입니다.
Dmitry Grigoryev 2016 년

9

하나는 매우 실용적이고 다른 하나는 역사적입니다.

실제적인 이유는 전화기에서 혼합 아키텍처를 사용하기 때문입니다. 전력 소비는 전화에 중요하며 전화는 성능이 거의 필요없는 모드에서 많은 시간을 소비합니다. 성능이 거의 필요하지 않을 때는 최소한의 전력 소비를 위해 일부 코어를 최적화하고, 필요할 때 최대 성능을 제공하도록 일부 코어를 최적화하는 것이 좋습니다.

다른 이유는 대체로 역사적입니다. 2005 년까지 데스크톱 CPU는 모두 단일 코어였습니다. 데스크톱 CPU 성능을 향상시키는 것은 거의 초당 가능한 많은 명령을 실행할 수있는 코어를 만드는 데 거의 독점적으로 이루어졌습니다. 오늘날에도 많은 데스크톱 소프트웨어는 여러 코어를 최대한 활용할 수 없으므로 코어가 20 % 더 느린 8 코어 CPU보다 4 코어 CPU를 선호합니다.

단일 코어에서 최대한 많은 성능을 얻으려면 엄청난 양의 CPU 공간이 필요합니다. 그렇지 않으면 더 많은 코어를 제공하는 데 사용할 수있는 부동산입니다. 그렇기 때문에 인텔의 최신 Kaby Lake CPU는 최대 4 코어에서 구매하고 각 코어는 이전 코어보다 빠르기 때문에 사람들이이를 구매합니다. 대부분의 경우 코어 수가 더 많은 CPU에서도 업그레이드됩니다.

시간이 지남에 따라 더 많은 코어를 지원하도록 훨씬 더 많은 데스크탑 소프트웨어가 완전히 최적화 될 것으로 예상됩니다. 그런 상황에서 엔지니어링 트레이드 오프는 데스크탑의 더 빠른 코어보다 더 많은 코어를 선호하기 시작합니다. 코어는 거의 확실히 빨라지지만 각 코어의 속도가 20 % 느리더라도 4 코어 CPU보다 8 코어 CPU를 선호하는 사람들을 보게 될 것입니다. 칩 디자이너들은 시장을 따를 것이다.


5

휴대 전화가 짧은 버스트로 계산 능력을 제공 할 수 있어야하고 (특정 앱은 빠를 필요가 있음) 과열을 피하는 것이 중요합니다 (노트북은 랩탑이나 PC보다 열 분산이 훨씬 더 어렵습니다). 이를 위해 건축가는 작업량이 적을 때 단일 코어를 사용하도록 전화를 설계하고 필요할 때 성능을 향상시키기 위해 추가 코어를 제공합니다. 휴대 전화가 더 큰 코어를 사용하지 않으면 작업량이 상당히 적은 경우에도 과열이 문제가됩니다.

출처 : 대학원 수준의 컴퓨터 아키텍처 과정.


사실, 짧은 버스트에서 계산 능력 ( 에너지가 의미하는 경우)을 제공하는 능력 은 데스크탑에도 중요합니다. 이것이 인텔 칩에 터보 부스트가있는 이유입니다.
Dmitry Grigoryev 2016 년

그렇습니다. 전산 능력은 제가 의미 한 바입니다. 실제로 특정 시점에 전화 및 데스크톱을 포함하여 작업량이 급격히 증가 할 것으로 예상되는 모든 장치는이를 처리 할 수 ​​있어야합니다. 주요 차이점은 열 분산입니다.
Tara Eicher 2016 년

나는 당신이 말한 것에 동의합니다. 파열 된 워크로드는 전화에만 국한되지 않는다고 지적하고 싶었습니다.
Dmitry Grigoryev

2

첫째, Java 가상 머신은 역사적으로 일반적인 데스크탑 소프트웨어보다 멀티 코어 이상의 이점을 얻을 수 있습니다. Java로 단일 스레드 앱을 작성하더라도 대부분의 가비지 수집기 코드가 앱과 함께 실행되므로 멀티 코어에서 더 빨리 실행됩니다.

둘째, 휴대폰의 백그라운드에서 자동 업데이트, 광고 다운로드, 바이러스 백신 소프트웨어, GSM 모듈 관리 등 많은 일이 일어나고 있습니다. 랩톱에서 이러한 모든 작업은 하나의 코어를 거의 사용하지 않지만 ARM 코어는 반응이 약한 시스템을 원할 경우 백그라운드 작업에 전념하는 사람들을 두 명 이상 가질 수 있습니다.

마지막으로 마케팅이 있습니다. 8 코어의 혜택을 누릴 수 있는지 평가할 수있는 사용자는 많지 않지만 8 코어 스마트 폰은 2 코어 또는 4 코어 스마트 폰보다 비싸게 들립니다.


2
"ARM 코어는 훨씬 덜 강력합니다"라는 문구를 계속 봅니다. 정확히 무엇을 의미합니까? 그들은 클럭 속도가 낮습니까?
Abdul

2
@ 초당 작업 수가 줄어 듭니다. x86 칩은 한 번에 여러 작업을 실행할 수 있으므로 동일한 클럭 속도에서도 ARM보다 성능이 뛰어납니다. 이 비교를 확인하십시오 . 상단 ARM 칩 (GT-I9100)은 상단 x86 칩 (i7-2920XM)보다 약 10 배 느립니다.
Dmitry Grigoryev

"초당 작업 수"는 FLOPS와 동의어입니까?
Abdul

@Abdul 반드시 그런 것은 아닙니다. 실제로 게임 및 물리 시뮬레이션 외에도 부동 소수점은 그다지 사용되지 않습니다. 또한 많은 ARM 칩이 정밀도를 억제하여 적절한 FLOPS를 달성하므로 실제 측정 값도 아닙니다.
Dmitry Grigoryev

Android 앱은 Java 가상 머신에서 실행되지 않습니다. 그들은 Dalvik VM에서 실행
phuclv

1

지금까지의 답변은 안드로이드 폰의 엄청나게 많은 수의 CPU 코어로 이어지는 문제의 일부 측면을 설명합니다. 다시 읽어보십시오. 안드로이드 폰. 아이폰은 오랫동안 몇 코어에 머물러 있었고 여전히 안드로이드 플래그쉽보다 훨씬 매끄 럽습니다.

안드로이드 설계자들은 자바 프로그래밍을 선택하고 결과적으로 JVM을 애플리케이션의 런타임으로 선택하기로 결정할 때 큰 도박을했습니다. Java는 설계 원칙으로 인해 성능을 희생하여 실행하기 전에 각 CPU 아키텍처에 대한 코드를 컴파일하고 빌드해야하는 문제를 해결합니다. Java는 일반적으로 JVM이라고하는 무겁고 부피가 큰 가상 머신을 도입합니다. JVM은 실제로 소프트웨어 레벨에서 CPU를 에뮬레이션하여 각 장치에 대해 개별적으로 코드를 컴파일 할 필요가 없습니다. JVM을 실행하는 장치에 관계없이 동일한 속성을 갖는 가상 CPU라고 생각하면 JVM에 대해 코드를 한 번만 컴파일하면 모든 장치에서 실행될 수 있습니다. 이를 통해 제조업체는 응용 프로그램 호환성에 대해 걱정할 필요없이 원하는 하드웨어를 던질 수 있습니다.

JVM 자체는 단지 사양 일 뿐이며이 사양을 준수하는 한 사람들은 자신의 JVM을 자유롭게 개발할 수 있습니다. 원래 안드로이드 JVM은 Dalvik이라고 불렀습니다. 오늘날 Google은이를 ART로 대체했습니다.

이제 JVM의 문제점은 무엇입니까? 그것은 많은 컴퓨팅 리소스를 소비하는 무거운 소프트웨어입니다. 또한 가비지 콜렉션과 같은 Java 언어의 다른 특성과 JVM의 자원 소비는 하드웨어 성능이 적당한 장치에 비해 너무 많아집니다. 장치에서 열려있는 각 응용 프로그램 및 시스템 서비스는 그 자체가 ART JVM의 인스턴스이며 이제는이를 관리하는 데 실제로는 유능한 하드웨어가 필요하다고 결론을 내릴 수 있습니다. 사용자 인터페이스를 그려야 할 때 상황이 더욱 악화됩니다.

각 응용 프로그램은 여러 스레드에서 실행됩니다. 각 CPU 코어는 한 번에 하나의 스레드 만 실행할 수 있습니다. 각 앱에는 사용자 인터페이스와 관련된 작업을 수행하는 하나의 기본 스레드가 있습니다. 파일 액세스, 네트워크 등을 수행하기 위해 응용 프로그램 당 더 많은 스레드가있을 수 있습니다. 일반적으로 CPU 코어보다 많은 응용 프로그램 (및 시스템 서비스)이 열려 있으며 결과적으로 CPU 코어보다 훨씬 많은 스레드가 있습니다. 따라서 각 코어는 서로 다른 스레드를 지속적으로 처리하고 각 스레드를 조금씩 수행하고 다음 단계로 전환해야합니다. 이 전환은 CPU에 많은 시간이 걸리고 응용 프로그램이 본질적으로 JVM 인 경우이 작업이 훨씬 더 철저 해집니다.

이 설명을 바탕으로 안드로이드가 원활하게 실행하기 위해 강력한 하드웨어가 필요하다고 추론 할 수 있습니다. 초기 세대의 Android 기기는 지연, 충돌 및 기타 불행한 것들로 유명했습니다. 그러나 수년에 걸쳐 이러한 문제는 대부분 강력한 하드웨어에 의존하여 해결되었습니다.

반면, iOS 애플리케이션은 기본 머신 코드로 컴파일되므로 가상화가 필요하지 않습니다. 사용 된 언어와 운영 체제도 더 효율적이므로 일부 장치는 과잉 칩셋 없이도 이러한 장치를 원활하게 유지할 수 있습니다.


이것은 왜 휴대 전화가 데스크톱보다 훨씬 강력한 지에 대한 좋은 설명입니다. 아니면 그렇지 않습니까?
maaartinus

“이것은 제조업체가 어플리케이션 호환성에 대해 걱정할 필요없이 하드웨어를 던질 수있게 해줍니다.”– 좋은 지적이지만 이것이 원래 카메라 용 시스템의 의도인지는 확실하지 않습니다.
v6ak

"파일 액세스, 네트워크 등을 수행하기 위해 응용 프로그램 당 더 많은 스레드가있을 수 있습니다."-I / O 바운드이며 CPU를 많이 소비하지 않습니다. CPU가 I / O 장치보다 훨씬 빠르기 때문에 I / O는 하나의 스레드만으로 처리되기도합니다.
v6ak

“초창기의 Android 기기는 지연, 충돌 및 기타 불행한 것들로 유명했습니다.”– 나는 그러한 전화기 (Xperia Mini Pro)에서 Marshmallow를 실행하는 것을 기억합니다. CPU보다 느릴 다른 이유가 많이 있다고 생각합니다. RAM이 적은 RAM에서 실행하면 MTD와 같은 저속 플래시 장치 (일부 작업의 경우 microSD 카드보다 훨씬 느림)가 있었으며 구형 Android의 경우 효율성이 떨어지는 "JVM"(기술적으로 JVM이 아님)이있었습니다. 물론 더 나은 CPU도 도움이되지만 그러한 결론과는 거리가 멀습니다.
v6ak

또한 UI 스레드에서 I / O (또는 다른 긴 작업)를 수행하는 것과 같은 프로그래밍 스타일은 CPU 성능에 관계없이 앱을 지연시킬 수 있습니다. AFAIK,이 스타일은 초기 Android 앱에서 매우 일반적입니다. 이러한 앱은 최신 휴대 전화에서도 지연 될 수 있습니다. 그것들은 아마도 게으르지 않을 것이지만, 그것은 더 빠른 CPU 나 더 많은 코어보다 더 빠른 플래시 메모리 때문입니다.
v6ak

0

위의 모든 것을 다시 시작하면 PC와 전화의 사용 사례가 상당히 다르다고 말할 수 있습니다. 단일 또는 두 개의 앱에서 사용되는 대부분의 PC (물론 많은 탭이있는 브라우저는 많은 CPU 코어가 필요하며 i-3에서도 지연 될 수 있음), 멀티 태스킹에 사용되는 전화. 최소한 네트워크 연결, UI 그리기, 시스템 트리거, 알림. PC에서 작업 관리자를 열면 많은 프로세스가 있지만 오래된 Core 2 duo에서도 CPU 성능의 몇 % 미만을 사용합니다. 4 코어는 꽤 저렴합니다 (MTK 65x2는 OEM 시작시 1 달러였습니다). 코어 당 성능이 마지막으로 부족한 경우에도 위험 대비 CISC입니다. 우리가 볼 수 있듯이 에너지 효율적! = 강력 합니다 . 멀티 코어는 심각한 단일 트레드로드와 멀티 태스킹 경험이 없기 때문에 모바일에 적합합니다 (그러나 우리는 iPhone이 소프트웨어로 인해 코어와 RAM이 더 적게 필요하다는 것을 알 수 있습니다)이 비디오 또는 다른 사람처럼 )


이 중 상당수는 종종 랩톱에서도 수행됩니다. 그리고 멀티 태스킹이 CPU를 요구할 필요는 없습니다. 제조 비용의 차이로 인해 약간의 차이가 생길 수 있으며 저사양 CPU의 코어 수가 줄어들 수 있지만 모든 i7에 코어가 4 개 이상있는 것은 아닙니다. 나는 제조 비용이 그 CPU 가격의 극히 일부에 불과하다고 생각합니다.
v6ak

@ v6ak, 문제는 x86 코어가 더 크고 복잡하다는 것입니다. intell (또는 amd)의 CPU는 최고 모델이 될만큼 충분하지 않습니다. 실제로, 대부분은 일부 부품이 차단되어 주니어 i7 또는 펜티엄이됩니다. ARM 코어는 까다로워 보이지 않으므로 매년 많은 모델이 도착하지는 않습니다. 여전히 진정한 옥타 코어는 Samsung Exynos Octa 7xxx , MTK Helio X10 , Latest (X30)조차도 거의 제안하지 않았습니다 (4) .Middle (4) .BIG (2), 우리는 10 코어 프로세서, 저렴한 마케팅이라는 광고를 할 수 있습니다 그 일을합니다.
Flippy

-1

나는 큰 구성을 위해 4 또는 8 이상의 주요 추진 요인 중 하나는 현재 마케팅 일뿐이라고 생각합니다.

높은 코어 수의 큰 문제 중 하나는 메모리 크기를 고려할 때입니다. 일반적으로 데스크톱 응용 프로그램에서 여러 코어의 활용도를 향상 시키려면 단일 스레드 응용 프로그램에서 구조를 복제하고 훨씬 더 많은 메모리를 사용해야합니다.

RAM이 매우 비싸기 때문에 (특히 2017/2018 RAM 위기 상황에서) 발생하지 않습니다. 마케팅은 높은 숫자를 원하지만 제어는 구성 요소 가격을 낮추려고합니다. 코어 당 1 기가 바이트 미만의 RAM 미만의 균형을 보면 손상이 실패한 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.