ARM의 장점은 무엇입니까?


61

이 답변에 대한 의견에서 Kortuk은 ARM의 장점이 무엇인지 묻습니다 . 나는 먼저 내 대답에 몇 가지 주장을 추가했지만 질문 자체가 질문이 될만큼 흥미 롭기 때문에 더 많은 답변이 가능하다고 생각합니다.


1
귀하의 답변은 가장 건설적인 질문에 대해 건설적인 것처럼 보이지만 다른 사람들이 매우 의견이 많은 답변을 쓸 것이라고 걱정합니다. 우리는 사람들이 당신이 설정 한 막대를 방해하려고 시도합니다.
Kortuk

@Kortuk-더 나은 답변을 얻는 데 도움이된다고 생각되면 질문 문구 나 제목을 자유롭게 편집하십시오. (어쨌든 당신의 질문이었습니다)
stevenvh

5
이 질문은 종교 전쟁을 요구하고 있습니다. 사람들이 묻고 의견을 밝히지 않았다면 즉시 닫으려고 투표 할 것입니다. 믿음의 문제 일 때는 항상 옳고 다른 사람은 야만적 인 이방인이라는 것을 기억하십시오. 지하드가 시작하자 ...
Olin Lathrop

@olinLathrop, 그것이 내가보고있는 것입니다. 현재 우리는 울림없이 매우 높은 품질의 답변을 받고있는 것 같습니다. 나는 아마도 이것을 CW 장기로 만들고 구글 미끼와 팔에 관한 흥미로운 정보를 살게 할 것이다. 나는 일반적으로 이것을 완전히 닫았을 것이지만 @stevenvh는 큰 대답으로 그것을 열었고 품질의 색조를 설정 한 것 같습니다.
Kortuk

답변:


51

성능 이 장점입니다. 32 비트 프로세서이므로 거의 모든 8 비트 컨트롤러보다 성능이 DMIPS 수준입니다. 핵심은 또한 여러 세대의 읽기 최적화를 거쳤습니다.
이러한 최적화는 성능 수치 뿐만 아니라 전력 소비 에도 나타납니다. 가장 최근의 코어는 이전 세대에 비해 DMIPS / mW 비율이 두 배가되었습니다 ( 이 답변 참조 ).
ARM은 다른 마이크로 컨트롤러보다 많은 제조업체 에서 구입할 수 있으며 각 칩에는 다양한 온칩 주변 장치와 메모리 및 패키지 조합으로 선택할 수있는 다양한 버전이 있습니다. 적절한 사례 : NXP는 온칩 이더넷을 갖춘 35 개 이상의 컨트롤러를 제공합니다 .
ARM은저렴한 ; ARM은 아마도 1 달러의 장벽을 무너 뜨린 최초의 32 비트 컨트롤러 일 것입니다.

이러한 성능 , 광범위한 오퍼링저렴한 비용의 조합으로 ARM을 무시할 수 없습니다.

애널리스트 회사 Linley Group의 조사에 따르면 2005 년에 모든 휴대 전화의 약 98 %가 마더 보드에 적어도 하나의 ARM 설계 코어를 사용한다고합니다. ( 소스 )

휴대 전화 시장도 또 다른 효과가 있습니다. 휴대 전화는 공간이 매우 제한되어 있으며 작은 패키지가 필요합니다. NXP의 LPC1102 는 5mm 불과한 WLP-16 패키지로 제공 되는데, 이는 이전에는 적은 핀 수의 8 비트 마이크로 컨트롤러에서만 사용했던 스케일입니다.2


1
ARM이 확실히 첫 $ 32 비트 마이크로를 0.5 $ 가격대 (Cortex M0를 정량화)로 깨뜨릴 수밖에 없다
BarsMonster

@Barsmonster-쿨! 8 비트의 유일한 미래는 2mm x 3mm DFN이며
stevenvh

@ 자체-그리고 심지어는 아닐 수도 있습니다. 내 대답에서 LPC1102에 대한 추가 내용을 참조하십시오.
stevenvh

@stevenvh-여전히 전력 소비 이점이 있습니다. 12MHz 슬립 모드에서 LPC1102는 1mA를 사용합니다. 나쁘지는 않지만 [16 비트] msp430보다 약 1000 배 더 큽니다.
Imbrondir

1
@self-그 장점도 긁어 라. 일부 검색 후 Energy Micro에는 M3이 있으며 휴면 모드 + RTC는 0.6uA로 떨어질 수 있습니다.
Imbrondir

37

한 가지 언급되지 않은 점 : 1908 년에 PL Robertson 이라는 사람 이 새로운 개선 된 스크류 헤드와 드라이버를 발명 했습니다 . 그는 자신의 디자인에 나사와 드라이버를 제조하는 유일한 사람이되기를 원했습니다. 수십 년 후, 다른 사람의 이름 씨 헨리 F. 필립스 해낸 대안 설계 . Robertson과 달리 Phillips는 나사와 드라이버를 생산하는 것보다 그의 디자인을 라이센싱하는 데 더 관심이있었습니다.

마찬가지로 1970 년대에 소니Betamax 라는 기술을 개발했습니다 . JVC 는 VHS라고 불렀습니다. 소니는 VCR 제작에 관심이있었습니다. JVC는 라이센싱에 더 관심이있었습니다.

여기에 패턴이있는 것 같습니다. (참고 : 인텔은 80x86 기술에 라이센스를 부여 했지만, 수십 년 동안 내부 용 기술 개발에 더 집중 해 왔습니다.)


4
예. ARM 지적 재산에 대한 라이센싱 체계가 성공의 원인이라고 생각합니다.

10
ARM은 라이센스를 통해 상당한 유연성을 제공합니다. 몇 개의 코어에 IP 만 있으면 비용이 많이 들지 않습니다. 그러나 칩 디자이너가 완전히 최적화 한 커스텀 칩을 만들고 싶다면 비용이 많이 들지만 사용 가능한 옵션이다. 따라서 Apple과 같은 회사는 자신의 응용 프로그램에 최적화 된 자체 프로세서 제품군을 개발할 수 있습니다. 대부분의 회사는 크라운 보석의 상당 부분을 통제 범위 밖에서 내버려 두지 않을 것입니다.
Mike DeSimone

ARM은 Intel의 x86 라인과 경쟁하지 않는다는 점에 유의해야합니다 (실제로 새로운 Atom 프로세서가 실행되는 공간에서는 아님). 당신의 대답이 그것을 암시하고자한다면, 틀린 것입니다. 인텔의 Moorestown 및 Medfield 아키텍처는 ARM과 동일한 공간에서 경쟁합니다.
Mark

1
인텔의 80x86 제품군은 오늘날 ARM을 사용하는 응용 프로그램 유형에서 경쟁력을 갖기 시작한 지 오래되었지만 라이센스가 부여 된 8088, 8086, 80286 및 80386은 모두 임베디드 시스템에서 인기가있었습니다. 인텔에 대한 나의 의견은 주로 인텔이 ARM처럼 라이센스가 없다는 사실에도 불구하고 오늘날 인텔이 인기가 있다는 것을 인정하는 것이 었습니다.
supercat

@supercat : 인텔은 요즘 많은 소프트 IP 라이센스를 보유하고 있습니다. 또한 FPGA 설계를위한 설계 툴 및 SIP를 제공합니다 ( intel.com/content/www/us/en/fpga/ip-and-design-tools.html )
jbord39

32
  1. 모든 공급 업체의 ARM 용으로 개발할 동일한 하드웨어 / 소프트웨어. JLINK / ULINK와 일부 Keil IDE를 한 번 구매하면이를 사용하여 행성의 거의 모든 ARM을 개발, 에뮬레이션 및 디버깅 할 수 있습니다.

  2. 새로운 칩 공급 업체로 전환 할 때 새로운 아키텍처를 배울 필요가 없음 => 공급 업체 잠금 감소 => 더 많은 경쟁 => 더 낮은 가격

  3. 현대 기술 프로세스 (0.18um 이하)에서 ARM 코어는 매우 작기 때문에 8 비트 코어를 위해 희생해도 가격의 눈에 띄는 부분을 절약 할 수 없습니다. 따라서 표준 고성능이지만 저렴한 아키텍처를 사용해야하는 이유입니다.

  4. 성능-ARM에서만 32 * 32-> 64의 단일 클록 32 * 32-> 32 곱셈 및 하드웨어 지원 및 하위 1 달러 장치 (예 : 하위 STM32)에 대한 분할을 가질 수 있습니다.

  5. ARM은 욕심이 많지 않으며 라이센스에 대해 불합리한 요금을 부과하지 않으므로 제조업체는 저렴한 마이크로를 생산할 수 있습니다.


27

다음과 같은 이유로 중급 ARM 프로세서에 중점을두고 있습니다 .

  1. 완벽한 Linux 지원

    이것은 거의 무료로 장치 드라이버를 의미합니다. 충분한 USB 호스트 및 장치 코드를 수행했지만 더 이상 그렇게하고 싶지 않습니다. 또한 랜덤 프로세서 플랫폼에 TCP / IP를 추가하려고 시도하는 것에 너무 흥분하지는 않습니다 ( LwIP / uIP 가 그렇게 나쁘지는 않지만). 나는 Wi-Fi, 실제 블루투스 스택, 웹캠 등을 시도하지도 않았습니다. Linux를 사용하면 매우 광범위한 장치가 훨씬 쉽게 대화 할 수 있습니다.

    또한 합리적이고 쉬운 Linux 장치 드라이버 작성 방법에 놀랐습니다. 일부 Windows 장치 드라이버를 수행 한 후 Linux는 꿈입니다. (공평하게 말하면 Windows 드라이버 프레임 워크는 내가 한 이후로 많이 향상되었습니다.)

    소프트웨어 플랫폼도 훌륭합니다. SSL 암호화, 파일 시스템, 원격 관리, 손쉬운 응용 프로그램 업데이트 (복잡한 부트 로더 대신 파일 복사) 등의 작업이 필요하며 기존 유틸리티가 많이 있습니다.

    또한 폐쇄 형 소스 WinCE 플랫폼이 말하는 것보다 로열티가 없으며 귀하의 의지에 구애되는 것이 훨씬 쉽습니다 . (나는 정말 오픈 소스 이념 주의자라는 것이 아니라 나에게 매우 실용적인 추론이다.)

    실제 MMU 가있는 ARM 코어에 대해 이야기하고 있기 때문에 중급 및 고급 칩 용입니다 ( μClinux를 사용할 는 있지만 ).

  2. 전력 소비

    이것은 기본적으로 다른 사람들의 의견을 반복하지만, 나에게 큰 요인입니다. 현재 454MHz ARM 플랫폼은 최대 CPU에서 1/2 와트, 1 와트를 소비합니다. x86으로도 가까이 갈 수는 없습니다.

그것은 나의 추론과 거의 같습니다. 나는 곧 방정식이 변하는 것을 보지 못한다.


2
관련 : 다중 RTOS 옵션.
Steve S

대부분의 대답은 ARM과 마찬가지로 대부분의 CPU 아키텍처에도 적용됩니다. 이들 중 다수는 2)에도 적용됩니다. Linux에서 지원하는 아키텍처 목록은 LONG이며 ARM은 그 중 하나 일뿐입니다.
Mark

19

ARM은 다음과 같이 발전했습니다.

  1. 32 비트 명령어 아키텍처는 다른 많은 아키텍처보다 코드가 크지 만 빠르게 디코딩 할 수 있으며 경쟁 아키텍처보다 적은 명령으로 많은 작업을 수행 할 수 있습니다.
  2. 멋지고 강력한 (그러나 불행하게도 다소 부풀어 오른) ARM 명령어 세트와 덜 강력한 (그러나 훨씬 더 작은) 16 비트 "Thumb"명령어 세트간에 전환 할 수있는 이중 명령어 형식 아키텍처입니다. 모든 Thumb 명령어에는 해당하는 ARM 명령어가 있으므로 프로그래머가 두 개의 명령어 세트를 배울 필요가 약간 줄어 듭니다.
  3. Thumb2 아키텍처는 Thumb 명령어 세트에 2 워드 명령어를 추가하여 주로 승리 한 결과를 산출합니다. 일반적인 ARM 코드에는 ARM에서만 사용할 수있는 명령어와 Thumb에서 사용할 수있는 명령어가 혼합되어 있습니다. 어쨌든 32 비트로 표현되어야했다. Thumb2에서 이러한 코드는 일부 32 비트 명령어를 16 비트 명령어로 대체함으로써 공간 이점을 얻습니다.
  4. 내가 바라는 것보다 더 제한적이지만 다른 것보다 작고 저렴한 Thumb-only 아키텍처.

ARM 아키텍처를 사용하면 다소 복잡한 작업을 다른 칩보다 훨씬 빠르게 수행 할 수 있습니다. 예를 들어 (ARM7-TDMI 사용) :

  ldrh r0, [r10, # ADDR_BUS_OFS]; 대상 시스템 주소 버스 읽기 (13 비트)
  ldrb r1, [r9, r0, lsr # 8]; 처리기 테이블에서 주소를 조회하려면 상위 비트를 사용하십시오.
  pc, r9, r1 lsl # 2 추가; 적절한 처리기로 이동

각 핸들러는 바이트로 저장되어 테이블 시작에서 1/4의 주소 변위를 제공합니다. 결과적으로 일단 주소 버스의 내용이 페치되면 32 바이트 점프 테이블을 사용하여 검색된 상위 5 비트를 기반으로 핸들러로 점프하는 데 6주기 (2 개의 명령) 만 소요됩니다.

해당 THUMB 코드는 다음과 같습니다.

; r6 / r7이 필요하지 않다고 가정하면 r9 / r10에서 다시 할당됩니다.
  ldrh r0, [r7, # ADDR_BUS_OFS]
  mov r1, r0
  lsr r1, r1, # 8; THUMB에서는 소스와 대상이 동일해야합니다.
  ldrb r1, [r6, r1]
  lsl r1, r1, # 1; 대상 주소가 전체 단어로 정렬 된 경우 shift-left-two를 사용할 수 있습니다.
  pc, r1 추가

명령어가 원본보다 절반에 불과하지만 가져 오기 후에 6주기가 아닌 9주기가 걸리기 때문에 코드 밀도 측면에서 좋습니다. ARM이 버스를 처리 할 수 ​​있는지 여부에 관계없이 감시중인 버스가 자체 속도로 실행되는 응용 프로그램에서 더 빠른 ARM 명령어는 큰 장점입니다.

또한 Thumb2는 Thumb과 이진 호환 가능하므로 이전 도구를 쉽게 사용할 수 있지만 원래 ARM뿐만 아니라 수행 할 수없는 것도 있습니다. 예를 들어 ARM에서는 두 비트 당 약 3 개의 명령어를 사용하여 4 개의 레지스터에 보유 된 8x8 비트 맵을 "회전"할 수 있습니다.

  movs r0, r4, ls11 # 25; LSB의 최상위 비트를 C에 넣고 다음 비트를 N에 넣습니다.
  오크 r6, # 0x00000001
  오르 미 r6, # 0x00000100

Thumb2에서는 명시적인 조건부 명령어를 추가해야합니다.

  movs r0, r4, ls11 # 25; LSB의 최상위 비트를 C에 넣고 다음 비트를 N에 넣습니다.
  itcs
  오크 r6, # 0x00000001
  이 트미
  오르 미 r6, # 0x00000100

ARM에 비해 시간 및 공간 효율성이 33 % 감소했습니다. 아마도 Thumb 코드가 ARM보다 효율성이 떨어지는 최악의 경우에 관한 것일 수도 있습니다. 심지어 끔찍한 것도 아닙니다.

ARM과 비교하여 Thumb2의 또 다른 단점은 ARM 코드에서 모든 명령어는 전체 단어 경계에서 시작하여 정적 분석을 용이하게합니다. Thumb2에서 명령어는 임의로 반 단어 경계에서 시작하여 전체 단어 경계에 걸쳐있을 수 있습니다. 따라서 정적 분석이 훨씬 어려울 수 있습니다.


14

비트는 역사, 도토리 사용자 정의 CPU를 원했다 (예를 들어, 메모리 컨트롤 등 내장과 함께) (8 비트 6502 그들이 무엇을 할 수 있는지 제한했다) 1980 년대에 새로운 컴퓨터. 그들은 인텔과 대화했지만 인텔은 그들에게 CPU 라이센스를 부여하지 않았다.

따라서 Acorn은 매우 간단한 RISC CPU를 설계했지만 CPU 제조업체가 아니기 때문에 누구에게나 라이센스를 기꺼이 라이센스 할 수있었습니다. (CPU가 매우 단순하고 디자이너가 Cambridge University에있는 동안 많은 연구 CPU를 만들었 기 때문에 CPU가 처음으로 작동했다고 생각합니다.)

수년에 걸쳐 CPU 설계는 고객 칩 설계에 더 쉽고 포함하기 쉬워졌습니다.

칩 제조업체는 경쟁 업체가 아니기 때문에 Acorn의 안전한 라이센스를 느꼈습니다. 또한 Acorn이 캠브리지에있는 것처럼 (실제로!) 라이센스를 얻기 위해 경쟁 업체의 고향을 방문한다고 생각한 사람은 아무도 없습니다 . (Acorn을 방문 할 수 있도록 캠브리지로의“사실 발견”여행의 기회는 언제라도 옵션 목록의 단락에 영향을 미칩니다.…

임베디드 시스템을위한 Acorn Risc Machine CPU를 포함한 많은 디자인은 전력 사용량이 중요했습니다. Acorn Risc Machine CPU를위한 저렴하고 좋은 개발 도구도 만들어졌습니다.

휴대 전화에 CPU가 내장 된 맞춤형 칩이 필요할 때 Acorn은 ARM으로 이름이 바뀌었고 나머지는 역사입니다. (아마도 다른 CPU가 대부분 미국에 의해 제어되었지만 유럽에서는 먼저 모바일이 정상화되었습니다)

(이 중 어느 것이 IBM의 알려지지 않은 작은 팀과 함께 Microsoft와 Dos를 상기시켜 주는가?)

ARM이 당시 많은 작업에서 최고의 CPU 중 하나 였지만 여전히 최고의 CPU 디자인만으로는 충분하지 않습니다.


Acorn RISC Machine은 실제로 Advanced RISC Machine으로 이름이 바뀌 었습니다 (ARM을 철자). 또한 Acorn의 ARM CPU 분기 만 독립적으로 고급 RISC 머신이라고합니다. 도토리는 RISC-OS의 개발을 계속했으며 나는 후자도 그것을 알고 있다고 생각합니다.
jippie

13

기술적 인 문제 외에는 ARM에 대한 기술적이지 않은 이유가 많이 있습니다. 그러나 빠른 대답은 다음과 같습니다. 인텔 (또는 x86)이 아닙니다.

CPU R & D 달러가 현재 어디에 투자되는지 살펴보면 기본적으로 ARM과 Intel의 두 가지 캠프에 속합니다. (저는 작은 MCU를 무시하고 있으며 Intel과 AMD를 함께 사용하고 있습니다.) PowerPC, MIPS, SPARC 및 기타 대형 CPU에는 돈이 거의 없습니다. ARM과 Intel만이 여전히 유효합니다.

Intel 및 기타 x86 CPU를 사용하면 엄청난 양의 레거시 수하물을 얻을 수 있습니다. 예를 들어 칩셋, BIOS 및 기타 사항이 필요합니다. CPU가 초 고효율 인 경우에도 다른 장치는 시스템의 무게를 줄이고 더 큰 전력, 더 많은 전력을 필요로하며 더 비싸게 만드는 경향이 있습니다. 인텔 CPU로 PCB를 개발하는 것만으로도 큰 문제이며 BIOS 공급 업체 등과 협상해야합니다. 설상가상으로 칩셋, BIOS, 비디오 칩 등의 많은 공급 업체는 원하지 않습니다. 1 년에 백만대 이상 판매하지 않는 소규모 사람들과 사업을하기 위해

ARM을 사용하면 수하물이 없습니다. 마이크로 컨트롤러 라인부터 멀티 코어 몬스터에 이르기까지 많은 칩 소스가 있습니다. 중고차 판매원에게가는 것과 비슷하게 BIOS 라이센싱을 처리 할 필요가 없습니다. 그리고 제조업 자와 벤더는 일반적으로 당신에게 친절합니다.


2
작은 MCU를 무시하지 마십시오. ARM은 Cortex-M 시리즈를 통해 그 시장에서 큰 부분을 차지하고 있습니다. 비 ARM 32 비트 컨트롤러 사용에 대해 요즘 두 번 생각합니다.
Mike DeSimone

예, @Mike에 동의합니다. ARM은 현재 서버처럼 인텔을 지배하는 고전력 시장으로 확장하려고 시도하고 있습니다. 그들은 중거리 마이크로 컨트롤러 및 저역 마이크로 프로세서로 알려져있다
Kortuk

인텔은 요즘 더 많은 IP 라이센스를 보유하고있다 (Altera 인수와 함께). 예를 들어 intel.com/content/www/us/en/fpga/ip-and-design-tools.html 을 참조 하십시오 .
jbord39

12

ARM7 / ARM9MIPS IV 를 비교 하면 이미 언급 된 라이센싱 문제 이외의 이점은 거의 없습니다. MIPS 명령 세트의 내부 및 내부 버스는 특정 유형의 설계에 비해 성능이 우수합니다 (비용 당 성능). 많은 Wi-Fi 라우터가 ARM 코어 대신 MIPS 코어를 사용하는 이유입니다.

ARM 코어는 주로 핸드 헬드 장치에 적용되었으므로 ASIC은 더 많은 전력 제어 기능을 추가 한 반면 MIPS는 더 낮은 전력보다는주기 당 성능에 더 중점을 둡니다. Intel x86에 비해 RISC 의 이점은 다른 논의입니다.


1
Microchip의 PIC 32 라인은 MIPS 코어를 사용합니다. 따라서 MIPS는 작고 저렴하며 자체 포함 된 저전력 패키지로도 제공됩니다. 또한 MPLAB을 사용할 수 있으며 이는 ARM에서 수행 할 수없는 작업입니다.
Olin Lathrop

ASIC 디자이너로부터 들었던 다른 의견은 ARM AHB 및 APB가 작동하기 어렵다는 것입니다 (별도의 라이센싱 또는 설계 문제로 인해). MIPS 버스는 다소 쉽습니다. 의미 : 핵심은 한 가지입니다. 코어 외부의 주변 장치도 고려해야합니다.
Jonathan Cline

-8

실제 장점은 없습니다. 연결된 DSP 및 GSM 과 같은 다른 컨트롤러 가 인기를 끌고 있습니다.


3
다른 답변은 동의하지 않는 것 같습니다.
Kortuk

1
-1 지구상의 모든 것에는 장단점이 있습니다!
RHaguiuda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.