뛰어난 하드웨어 옵션을 제공하는 콤팩트한 크기의 강력하고 효율적이며 경제성이 뛰어난 ARM 기반 기판

DigiKey 북미 편집자 제공

귀하의 핵심 역량은 무엇인가요? 자주 접하지 않는 이 질문은 처음에는 기초적인 질문 같기도 하지만, 그 답에 따라 시장에서 설계의 성패가 달라질 수 있습니다. 칩은 집적화 및 상품화되어 가고 칩의 기반이 되는 아키텍처는 점점 표준화되고 있으므로 하드웨어에서 실행되는 차별화된 소프트웨어에 리소스를 집중하는 대신 기판 및 관련 하드웨어를 직접 설계하는 데 소중한 개발 비용, 시간 및 인원을 투입하는 것은 더 이상 합리적이지 않습니다(예전에는 합리적이었음).

ARM® 기반 시스템 구현에 표준화하기로 한 경우 Raspberry PI Foundation의 다양한 기판 옵션은 특히 생산량이 그다지 많지 않을 때 자체 하드웨어 개발에 대한 매력적인 대안을 제공합니다. 이에 대한 전 세계에서 적극적으로 채택되고 다양한 소싱 옵션과 결합되면서 가용성과 경제성이 강화되었습니다. 여러 CPU 코드 세대에 기반을 둔 기판 변형이 제공되며, 또한 다양한 크기와 무게, 전력 소비 사양, 클록 속도, 연결성, 메모리 및 기타 주변 장치 할당을 갖추고 있습니다. 기판의 표준화된 HAT(Hardware Attached on Top) 커넥터 및 소프트웨어 프로토콜은 디버깅 및 기타 개발 지원은 물론 추가적인 주변 장치 확장 지원을 제공합니다. 또한 시스템 선적량의 점진적 증가가 하드웨어를 직접 제작하는 것이 더 경제임을 의미하는 경우 기판의 오픈 소스 사양 덕분에 이러한 전환을 더 손쉽게 수행할 수 있습니다.

네 가지 Raspberry Pi 기판 옵션에 대한 요약이 표에 나와 있으며 이 자료의 나머지 부분에서 각 옵션에 대해 자세히 설명합니다. 프로세서 성능 및 기타 기능이 가장 기본적인 선택 조건이기 때문에 이 자료에서는 벤치마크 코드 샘플 및 기타 평가 지침을 함께 제시합니다.

Raspberry Pi 모델 A+ Raspberry Pi 모델 B+* Raspberry Pi 2 모델 B Raspberry Pi 3 모델 B
SoC Broadcom BCM2835 Broadcom BCM2836 Broadcom BCM2837
CPU 700MHz(32비트) 단일 코어 ARM1176JZF-S 900MHz(32비트) 쿼드 코어 ARM Coretex-A7 1.2GHz 64비트 쿼드 코어 ARM Cortex-A53
시스템 메모리
(GPU 프레임 버퍼와 공유)
256MBytes 512MBytes 1GByte
USB 포트 2개 1(BMC2835) 4(별도의 멀티 포트 허브 IC)
통합 네트워킹 없음 통합 USB 어댑터를 통한 10/100Mbps 유선 이더넷 10/100Mbps 이더넷, 802.11n Wi-Fi, Bluetooth 4.1
전력 정격 200mA(1W) 600 mA(3W) 800 mA(4W)
크기 2.56in x 2.22in 3.37in x 2.224in
무게 0.8oz 1.6oz

* 단종 품목

표 1: 네 가지 Raspberry Pi 옵션 비교(다양한 옵션 중 일부만 제시)

위의 네 기판 모두에 공통된 기능은 다음과 같습니다.

  • 15핀 MIPI CSI 카메라 인터페이스 커넥터를 통한 비디오 입력
  • 두 가지 비디오 출력 옵션: 디지털 HDMI(1.3과 1.4) 및 아날로그 복합 비디오(3.5mm TRRS 잭)
  • I2S 디지털 오디오 입력
  • 세 가지 오디오 출력 옵션: 디지털 HDMI, I2S 및 아날로그(3.5mm TRS 잭)
  • MicroSDHC 슬롯을 통한 비휘발성 스토리지
  • 17 GPIO 핀, HAT ID 버스
  • 마이크로 USB 케이블 또는 직렬 케이블(GPIO 전력 커넥터 선택 사항 포함)을 통한 콘솔 인터페이스

Raspberry Pi ("1")

본 자료에서 설명하는 모델 A+(그림 1)는 오리지널 모델 B의 비용 절감형(일부 기능 제외됨)이었던 모델 A의 크기와 비용을 줄인 후속 모델입니다. 모델 A+의 크기(2.56in x 2.22in(65mm x 56.5mm))는 본 자료에 나오는 네 가지 기판 대안이 모두 지원하는 HAT(Hardware Attached on Top) 애드온 확장 카드의 크기와 일치합니다. 이 특별한 기판 변형은 네 기판 중 SDRAM(256MBytes)이 가장 적고 USB 커넥터가 하나만 제공되며 네트워킹 지원이 통합되어 있지 않습니다(둘 모두 USB 또는 HAT 기반 주변 장치를 통해 확장 가능).

여기에서 다루는 다른 Raspberry Pi "1" 옵션은 모델 B+입니다(이 모델은 현재 단종되었지만 사용 가능한 다른 모델과의 비교를 위해 다룸). 시스템 기판 실장 면적은 3.37in x 2.224in(85.6mm x 56.5mm)이며, 모델 A+보다 큽니다(다음으로 다룰 Raspberry Pi 2 및 Raspberry Pi 3 제품과 동일). 실장 면적이 넓어지면서 시스템 메모리의 양은 512Mbytes로 두 배, USB 포트는 4배이며 10/100Mbps 유선 이더넷 지원이 내장되었습니다.

데카 코어 CPU 기반 스마트폰이 나오는 시대에 700MHz 단일 코어 ARM11 CPU가 부족해 보일 수도 있지만, 이 동일한 CPU가 Apple iPhone® 및 iPhone 3G의 강력한 성능을 담당했음을 기억하십시오. 중간 정도의 성능이 필요하다면 Broadcom BCM2835로 충분한데다 이로 인해 얻어지는 모델 A+ 기판 옵션의 낮은 전력 소비량은 특히 큰 장점이 됩니다.

오리지널 Raspberry Pi 설계는 700MHz 단일 코어 ARM11 CPU가 통합된 Broadcom의 BCM2835 SoC를 기반으로 합니다.

오리지널 Raspberry Pi 설계는 700MHz 단일 코어 ARM11 CPU가 통합된 Broadcom의 BCM2835 SoC를 기반으로 합니다.

그림 1: 오리지널 Raspberry Pi 설계는 700MHz 단일 코어 ARM11 CPU가 통합된 Broadcom의 BCM2835 SoC를 기반으로 합니다. 두 가지의 기판 폼 팩터 (및 기능 세트) 옵션으로 제공되는데 하나는 더 작은 모델 A+(위쪽)이며 다른 하나는 더 큰 모델 B+(아래쪽)입니다. (이미지 제공: Seeed Technology)

Raspberry Pi 2

Raspberry Pi 모델 A+와 모델 B+가 출시된 다음 해에 공개된 Raspberry Pi 2 모델 B는 선행 제품 중 더 큰 제품의 크기를 유지하면서 혁신적 기능 세트라는 관점에서 볼 때 두 가지 핵심 측면에서 주목할 만 합니다. 첫 번째는 시스템 메모리의 양이 1GByte로 모델 B+에 비해 두 배입니다(모델 A+ SDRAM 할당량의 네 배). 두 번째는(더욱 중요한 특징) Broadcom의 BCM2835에서 BCM2836으로 바뀌면서 200MHz CPU 클록 속도 향상이 이뤄졌고 단일 코어 ARM11에서 쿼드 코어 ARM Cortex®-A7로 바뀌었다는 점입니다.

GPU는 동일하게 유지되기 때문에 Raspberry Pi 2가 더 높은 그래픽 및 비디오 프레임 비율을 구동하지는 않습니다(과거처럼 CPU의 처리 성능 부족이 병목 지점이 되었던 경우는 제외). 하지만 처리 "성능"의 측면에서 볼 때 이번의 CPU 업그레이드는 애플리케이션 런타임 속도의 큰 향상을 의미할 수 있습니다. 그 이유는 잠시 후 간략하게 설명합니다. 또한 앞서 언급한 바와 같이 현재 64비트의 후속 제품이 엔트리 레벨 스마트폰에서 점점 더 많이 사용되고 있지만 쿼드 코어 32비트 CPU 가격이 저렴해지지는 않습니다. 무엇보다 ARM Cortex-A7의 800MHz 듀얼 코어 구현은 iPhone 4S에서도 사용되었습니다.

Raspberry Pi 2 모델 B에서는 900MHz 쿼드 코어 ARM Cortex-A7 CPU가 포함된 Broadcom BCM2836 프로세서를 사용합니다.

그림 2: Raspberry Pi 2 모델 B는 이전 제품인 Raspberry Pi 모델 B+의 크기를 그대로 유지하면서 응용 프로세서는 900MHz 쿼드 코어 ARM Cortex-A7 CPU가 포함된 Broadcom BCM2836으로 업그레이드되었습니다. (이미지 제공: Seeed Technology)

Raspberry Pi 3

Raspberry Pi 2의 후속 제품으로 1년 뒤에 출시된 Raspberry Pi 3 모델 B에서는 Broadcom의 응용 프로세서가 BCM2836에서 BCM2837로 바뀌면서 32비트 CPU인 900MHz 쿼드 코어 ARM Cortex-A7에서 64비트 기능을 갖춘 1.2GHz 쿼드 코어 ARM Cortex-A53으로 업그레이드되었습니다. BCM2837 내부 GPU 코어인 Broadcom의 VideoCore IV는 기능이 변경되지 않았지만 클록 속도는 3D 그래픽 처리의 경우 300MHz, 비디오 처리의 경우 400MHz로 높아졌습니다. 이러한 성능 향상으로 H.264(MPEG-4 AVC) 하이 프로파일 콘텐츠의 1080p 60Hz 인코딩 및 디코딩이 가능합니다. 높아진 GPU의 중요성 그리고 이 SoC 및 기판 세대의 클록 속도 향상에 대해서는 잠시 후 간략하게 다룹니다.

Raspberry Pi 3에서는 이전 제품의 폼 팩터 호환성이 확장되었지만 SoC가 더 업그레이드되었습니다.

그림 3: Raspberry Pi 3에서는 이전 제품의 폼 팩터 호환성이 확장되었지만 SoC가 Broadcom의 1.2GHz(및 64비트) 쿼드 코어 ARM Cortex-A53 기반 BCM2837로 업그레이드되었습니다. (이미지 제공: Seeed Technology)

또한 Raspberry Pi 3 모델 B에서는 내장된 연결 기술 옵션이 크게 향상되었습니다. 10/100Mbps 유선 이더넷이 제공되며, 이번에는 2.4GHz 전용 802.11n Wi-Fi 및 Bluetooth 4.x 기능으로 보완됩니다(둘 다 이전 세대 기판에서는 추가적인 주변 장치가 있어야 지원 가능했음).

어떤 프로세서가 가장 좋은가요?

본 자료의 이전 섹션에서 강조했듯이 CPU 클록 속도, 코어 수, 기능 세트는 오리지널 Raspberry Pi, "2" 및 "3" 세대 간의 주요 차이점입니다. Raspberry Pi 모델 A+와 모델 B+ 내의 ARM11은 제한된 비순차 명령어 완료 지원을 포함한 비교적 단순한 순차 8단계 파이프라인 설계이며 ARMv6 명령어 집합을 실행합니다. 최대 700MHz에서 실행되지만 800MHz 오버 클로킹에 성공하는 사용자가 많으며, 이 특별한 코어 구현에는 아키텍처의 선택적 부동 소수점 유닛(FPU)도 포함됩니다.

Raspberry Pi 2 모델 B에 채용된 ARM11의 후속 제품인 ARM Cortex-A9 역시 기본적으로 32비트 아키텍처입니다. BMC3286은 BMC8285와 마찬가지로 오버 클로킹 시 안정적인 경우가 많으며 900MHz에서 1.1GHz까지 오버 클로킹됩니다. ARM Cortex-A9 아키텍처는 ARM11에서 크게 발전했으며 비순차, 예측 이슈, 수퍼스칼라 8단계 파이프라인을 제공합니다. ARM Cortex-A9에서는 후속 제품 ARMv7-A 명령어 집합을 실행합니다. BMC3286의 코어 구현에는 선택적 부동 소수점(ARM11의 버전보다 향상) 및 "NEON" SIMD 코프로세서도 포함됩니다. 물론 BMC3285에는 프로세서 코어가 하나지만 BMC3286에는 네 개의 프로세서 코어가 포함됩니다.

마지막으로 Raspberry Pi 3 모델 B에는 쿼드 코어 ARM Cortex-A53가 사용됩니다. 이 역시 2웨이 수퍼스칼라 실행 파이프라인을 갖춘 8단계 파이프라인 프로세서이지만 이제는 최신 세대 ARMv8-A 명령어 집합을 지원하는 완전한 64비트 구현입니다. NEON SIMD 및 부동 소수점 코프로세서(둘 모두 ARM Cortex-A9의 구현보다 향상됨)를 사용할 수 있습니다. 또한 BMC3286은 최대 1.1GHz까지만 실행되며 사양에서 벗어난 오버 클록 구성에서만 실행되지만, BMC3287은 1.2GHz 작동이 보장되며 일부 사용자의 경우 1.4GHz까지 안정적으로 오버 클록된다고 보고했습니다.

어떤 프로세서 옵션을 선택해야 할까요? 이 질문에 대한 답은 응용 제품에 따라 달라지므로 경우마다 다릅니다. 우선 미래의 소프트웨어 혁신에 대비해 성능 여유를 두려고 하는 경우에는 너무 느린 CPU의 선택은 피해야 합니다. 반면에 필요 이상의 프로세서를 선택하는 것도 낭비입니다. CPU 선택은 가격은 물론 전력 소비에도 영향을 미친다는 점을 고려해야 합니다. Raspberry Pi 기판을 선택할 때 CPU가 유일한 기준이 아닙니다. 메모리 요구 사항, 네트워크 연결 옵션 및 기타 특성도 고려해야 합니다.

또한 소프트웨어가 대부분 시간을 유휴 루프에서 입력을 대기하는 데 보내는 경우라면 더 높은 클록 속도가 큰 의미가 없을 수 있습니다. 수퍼스칼라 및 비순차 지원과 같은 고급 아키텍처 기능 역시 소프트웨어의 명령어 대 명령어의 종속성이 낮은 경우에만 더 높은 IPC(클록당 명령어 수)에 기여한다는 점도 염두에 둬야 합니다. 마찬가지로 스레드 독립성의 부족은 단순한 단일 코어에 비해 멀티 코어 CPU가 가지는 처리량 장점 정도에만 영향을 미치며, 특정 애플리케이션의 경우 64비트 명령어 집합이 가지는 이론적 장점이 크게 적용되지 않을 수 있습니다. 특히, 높은 메모리 실장면적 요구량은 그 이유 중 하나입니다. 이와 반대로 ARMv8 명령어 집합의 AArch32 개선은 ARM Cortex-A53이 32비트 코드만 실행하는 경우라도 성능을 높여줄 가능성이 큽니다.

그래픽 증가

다른 온칩 처리 기회로 인해 SoC의 선택이 더욱 복잡해집니다. 개념적으로는 그래픽 프로세서(또는 이 경우에는 그래픽 코어)를 픽셀 처리 작업뿐만 아니라 다양한 디지털 처리 및 기타 작업을 위한 병행 처리 "엔진"으로 간주할 수 있습니다. GPGPU(범용 그래픽 처리 장치)라고 하는 기술이 인기를 끌고 있지만 하드웨어를 제대로 활용하려면 소프트웨어 지원이 필요합니다.

하지만 여기서 다루는 Broadcom SoC의 세 가지 세대 모두에 채택된 VideoCore® IV GPU는(최소한 현재는) 프로그래밍 언어의 공개 표준 세트인 OpenCL과 Khronos Group에서 관리하는 이기종 병렬 프로그래밍용 API를 지원하지 않습니다(Raspberry Pi 2 및 3의 기존 OpenCL 지원은 현재 CPU의 여러 리소스를 이용하는 것으로 제한됨). 하지만 Broadcom에서는 2014년 10월에 VideoCore IV 전체 사양(PDF)을 오픈 소스 형태로 공개할 때 GPU를 범용으로 액세스 및 이용하는 대안적 수단을 제공했습니다.

예를 들어 Raspberry Pi의 열렬한 팬인 Pete Warden(Google Research 엔지니어이자 나중에 Google에 인수된 Jetpac의 설립자 겸 CTO)은 자신의 이전 회사에서 만든 Deep Belief 딥 러닝 SDK와 VideoCore IV의 QPU(SIMD 쿼드 처리 장치)용 어셈블러/디스어셈블러를 함께 사용하여 개체 인식 작업을 크게 가속화하는 방법을 찾아냈습니다(https://petewarden.com/2014/08/07/how-to-optimize-raspberry-pi-code-using-its-gpu/). 또한 오픈 소스 커뮤니티에서는 동일한 QPU를 사용하여 FFT 처리 성능을 강화하는 방법도 찾아냈습니다. 이외에도 Github 호스트 오픈 소스 코드 예제를 포함한 여러 프로젝트 사례도 있습니다. 다음과 같은 키워드 검색을 사용하는 것을 권장합니다.

  • "Raspberry Pi GPGPU"
  • "Broadcom VideoCore IV GPGPU"
  • "Raspberry Pi OpenCL"
  • "Broadcom VideoCore IV OpenCL"

카메라 및 결론

최근 필자의 글과 Pete Warden의 예증에서 알 수 있듯이 딥 러닝의 패턴 인식 기능은 다양한 이미지 분석 응용 분야에 적용할 수 있습니다. 하지만 이러한 이미지를 어떻게 기판에 입력할까요? 널리 사용되는 한 가지 방법은 OmniVision Technologies의 OV05647 5 Mpixel CMOS 이미지 센서를 기반으로 한 MIPI CSI 기반 Raspberry Pi 카메라 모듈(그림4)입니다. 딥 러닝이 여러분의 분야가 아니라고 하더라도 Raspberry Pi 기판은 특히 OpenCV 오픈 소스 컴퓨터 비전 라이브러리 커뮤니티의 열렬한 수용을 고려할 때 컴퓨터 비전 응용 분야에 아주 적합한 옵션이라는 점을 기억하십시오.

Raspberry Pi 카메라 모듈은 MIPI SPI 인터페이스에 통합됩니다.

그림 4: Raspberry Pi 카메라 모듈은 여기서 다루는 모든 Raspberry Pi 시스템 기판에 기본 채용된 MIPI SPI 인터페이스에 통합되며, 이 모듈이 제공하는 5Mpixel의 해상도는 여러 컴퓨터 비전 작업에 충분합니다.

더 일반적으로 볼 때 오픈 소스 채용 및 통합에는 아주 많은 소프트웨어 옵션을 사용할 수 있습니다. Wikipedia의 항목 목록이 좋은 출발점이 됩니다. 마찬가지로 소프트웨어 시뮬레이션이 Broadcom SoC 세대(Raspberry Pi 기판 세대) 선택 시 활용 가능한 초기 정보를 제공할 수도 있지만, 기판의 가격이 저렴하기 때문에 각각 하나씩 구입하여 실제 평가를 수행해볼 수도 있습니다. 특히 Raspberry Pi 모델 B+, Raspberry Pi 2 모델 B 및 Raspberry Pi 3 모델 B는 폼 팩터가 호환되므로 하드웨어 교체 및 소프트웨어 평가가 매우 쉽습니다.

결국, 가장 중요한 것은 즐거워야 한다는 점을 잊지 마십시오. Raspberry Pi 커뮤니티의 크기, 다양성 및 활력 때문에 정보의 양이 너무 많다고 느낄 수도 있지만 조금만 조사해보면 자신의 설계를 더 빠르고, 더 강력하고, 더 경제적으로 출시하는 데 도움이 될 귀중한 정보를 금방 찾아낼 수 있을 것입니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

게시자 정보

DigiKey 북미 편집자