블랙핀

Blackfin
블랙핀
디자이너아날로그 디바이스
비트32비트
소개했다2000년, 22년(2000년)
설계.RISC
유형등록-등록
부호화변수 (16비트 또는 32비트 범용 또는 64비트 병렬 문제 (1 × 32비트 명령 + 2 × 16비트 명령)
분기조건코드
엔디안니스작은
레지스터
범용8 × 32 비트 데이터 레지스터(16 × 16 비트 하프 슬롯으로 주소 지정 가능), 2 × 40 비트 어큐뮬레이터, 6 × 32 비트 주소 레지스터, 스택 포인터, 프레임 포인터
블랙핀
Blackfin-processor-logo.png
ADI Blackfin 로고
일반 정보
개시.2008
단종현재의.
마케팅 담당자아날로그 디바이스
설계자아날로그 디바이스
공통 제조원

Blackfin아날로그 디바이스에서 개발, 제조 및 판매하는 16/32비트 마이크로프로세서 제품군입니다.프로세서에는 16비트 Multiple-Acumulates(MAC; 멀티플 어큐뮬레이트)에 의해 제공되는 내장 고정점 디지털 신호 프로세서(DSP) 기능이 있으며 마이크로 [1]컨트롤러에 의해 온칩이 제공됩니다.실시간 H.264 비디오 인코딩 [2][3]등 복잡한 수치 작업을 동시에 처리하면서 운영 체제를 실행할 수 있는 통합 저전력 프로세서 아키텍처를 위해 설계되었습니다.

아키텍처 상세

블랙핀 프로세서는 인텔과 아날로그 디바이스공동 개발한 SIMD 아키텍처 상의 32비트 RISC 마이크로컨트롤러 프로그래밍 모델을 MSA(Micro Signal Architecture)로 사용합니다.

이 아키텍처는 2000년 12월에 발표되었으며 2001년 6월에 열린 임베디드 시스템 회의에서 처음 시연되었습니다.

ADI의 오래된 SHARC 아키텍처와 인텔의 XScale 아키텍처의 측면을 단일 코어로 통합하고 디지털 신호 처리(DSP)와 마이크로 컨트롤러 기능을 결합합니다.Blackfin/MSA와 XScale/ARM 또는 SHARC의 코어 아키텍처에는 많은 차이가 있지만, 이 조합은 기존의 DSP 또는 RISC 아키텍처 설계보다 성능, 프로그래밍 가능성 및 소비 전력을 향상시키도록 설계되었습니다.

Blackfin 아키텍처는 각각 [4]특정 애플리케이션을 대상으로 하는 다양한 CPU 모델을 포함합니다.2014년에 도입된 BF-7xx 시리즈는 Blackfin+ 아키텍처로 구성되어 있으며, Blackfin 아키텍처에 새로운 프로세서 기능과 명령을 추가했습니다.

아키텍처 기능

주요 기능

애질런트 오실로스코프에 장착된 Blackfin BF526

Blackfin "core"로 간주되는 것은 문맥적으로 의존합니다.애플리케이션에 따라서는 DSP 기능이 중심이 됩니다.Blackfin은 2개의 16비트 하드웨어 MAC, 2개의 40비트 ALU와 어큐뮬레이터, 1개의 40비트 배럴 시프터 및 4개의 8비트 비디오 ALU를 갖추고 있습니다.Blackfin+ 프로세서는 32비트 MAC와 72비트 어큐뮬레이터를 추가합니다.이를 통해 프로세서는 컴파일러 또는 프로그래머가 실행하는 최적화 수준에 따라 클럭 사이클당 최대 3개의 명령을 실행할 수 있습니다.2개의 네스트된 제로 오버헤드루프와 4개의 순환 버퍼 DAG(데이터 주소 생성기)는 명령을 적게 필요로 하는 효율적인 코드 쓰기에 도움이 되도록 설계되었습니다.다른 애플리케이션에서는 메모리 보호, 다양한 동작 모드(사용자, 커널), 싱글 사이클 opcode, 데이터 캐시 및 명령 캐시, 비트테스트, 바이트, 워드 또는 정수 액세스 및 다양한 온칩 주변기기 등의 RISC 기능을 사용합니다.

ISA는 높은 수준의 표현성을 제공하도록 설계되어 어셈블리 프로그래머(또는 컴파일러)가 존재하는 하드웨어 기능에 대한 알고리즘을 최적화할 수 있도록 합니다.표준 Blackfin 어셈블리 언어는 다른 많은 어셈블리 언어에서 사용되는 접두사 명령 대신 대수적 구문을 사용하여 작성됩니다.

기타 어셈블리 언어블랙핀 어셈블리 언어
ld R0, 8[P0]R0 = [P0 + 8]
add R0, R1, R2R0 = R1 + R2
push R7[SP--] = R7

메모리 및 DMA

Blackfin은 바이트 주소 지정이 가능한 플랫 메모리 맵을 사용합니다.내부 L1 메모리, 내부 L2 메모리, 외부 메모리 및 모든 메모리 매핑 제어 레지스터가 이 32비트 주소 공간에 상주하기 때문에 프로그래밍 관점에서 Blackfin은 Von Neumann 아키텍처를 가집니다.

디바이스의 코어 클럭 속도로 동작하는 L1 내장 SRAM 메모리는 Harvard 아키텍처를 기반으로 합니다.명령 메모리와 데이터 메모리는 독립적이며 전용 메모리 버스를 통해 코어에 연결됩니다.코어와 L1 메모리 간의 지속 데이터 레이트가 높아지도록 설계되었습니다.

명령 및 데이터 L1 SRAM의 일부는 선택적으로 캐시로 구성할 수 있습니다.

일부 Blackfin 프로세서는 64KB에서 256KB 사이의 L2 메모리를 갖추고 있습니다.이 메모리는 코어 클럭 속도보다 느리게 동작합니다.L2에서는 코드와 데이터를 혼재시킬 수 있습니다.

블랙핀 프로세서는 SDRAM, DDR-SDRAM, NOR 플래시, 낸드 플래시, SRAM다양한 외장 메모리를 지원합니다.일부 Blackfin 프로세서에는 ATAPISD/SDIO 등의 대용량 스토리지 인터페이스도 포함되어 있습니다.외부 메모리 공간에서 수백 MB의 메모리를 지원할 수 있습니다.

코어 및 메모리시스템과 조합된 DMA 엔진은 주변기기와 메인(또는 외부) 메모리 사이에서 동작할 수 있습니다.프로세서에는 일반적으로 각 주변기기에 전용 DMA 채널이 있으며 실시간 표준 화질(D1) 비디오 인코딩 및 디코딩 등 이를 사용할 수 있는 어플리케이션의 throughput이 향상되도록 설계되었습니다.

마이크로컨트롤러

Blackfin의 아키텍처는 마이크로프로세서나 마이크로컨트롤러에서 볼 수 있는 일반적인 CPU, 메모리 및 I/O를 포함합니다.이러한 기능에 의해, operating system이 유효하게 됩니다.

모든 Blackfin 프로세서에는 Memory Protection Unit(MPU; 메모리 보호 유닛)이 탑재되어 있습니다.MPU는 메모리 공간 전체에 걸쳐 보호 및 캐싱 전략을 제공합니다.MPU를 통해 Blackfin은 ThreadX, μC/OS-II 또는 NOMMU Linux와 같은 운영 체제, RTOS 및 커널을 지원할 수 있습니다.MPU는 Blackfin 문서에서는 Memory Management Unit(MMU; 메모리 관리 유닛)이라고 불리지만 Blackfin MPU는 기존 MMU와 같은 주소 변환을 제공하지 않기 때문에 가상 메모리 또는 프로세스별 메모리주소를 지원하지 않습니다.따라서 Blackfin은 현재 WinCEQNX와 같은 가상 메모리가 필요한 운영 체제를 지원할 수 없습니다.

Blackfin은 슈퍼바이저, 사용자 및 에뮬레이션의 3가지 런타임모드를 지원합니다.슈퍼바이저 모드에서는 실행 중인 프로세스에서 모든 프로세서리소스에 액세스할 수 있습니다.단, 사용자 모드에서는 MPU를 사용하여 시스템리소스와 메모리 영역을 보호할 수 있습니다.최신 운영체제 또는 RTOS에서는 일반적으로 커널은 슈퍼바이저 모드로 실행되고 스레드/프로세스는 사용자 모드로 실행됩니다.스레드가 크래시하거나 보호된 자원(메모리, 주변기기 등)에 액세스하려고 하면 예외가 발생하며 커널은 문제의 스레드/프로세스를 셧다운할 수 있습니다.비 OS 환경에서 Blackfin을 사용하는 방법에 대한 ADI의 공식 지침은 모든 소프트웨어가 슈퍼바이저 공간에서 실행되도록 범용 코드에 가장 우선순위가 낮은 인터럽트를 예약하는 것입니다.

Blackfin은 16비트, 32비트 및 64비트 명령으로 구성된 가변 길이 RISC와 유사한 명령 세트를 사용합니다.일반적으로 사용되는 제어 명령은 16비트 opcode로 인코딩되며 복잡한 DSP 및 수학 집약 함수는 32비트 및 64비트 opcode로 인코딩됩니다.이 가변 길이의 opcode 부호화는 최신 마이크로프로세서 아키텍처와 동등한 코드 밀도를 제공하도록 설계되었습니다.

미디어 처리 기능

Blackfin 명령 세트에는 비디오 압축이미지 압축 및 압축 해제 알고리즘에서 일반적으로 사용되는 픽셀 처리 작업을 가속화하는 데 도움이 되는 미디어 처리 확장 기능이 포함되어 있습니다.

주변기기

Blackfin 프로세서에는 특정 프로세서에 따라 다음과 같은 접속 주변기기가 배열되어 있습니다.

  • ATAPI
  • CAN: 일부 자동차 및 산업용 전자제품에 사용되는 광역 저속 시리얼 버스
  • 메모리 투 메모리 DMA 및 주변기기 DMA를 지원하는 DMA
  • MII RMII를 사용하는 EMAC(이더넷 미디어 액세스컨트롤러)
  • 외장 메모리: EBIU(External Bus Interface Unit)에는 SDRAM, 모바일 SDRAM, DDR1, DDR2, 또는 LPDDR용 컨트롤러와 SRAM, ROM, 플래시 EPROM 및 메모리 맵 I/O 디바이스용 비동기 메모리 컨트롤러를 포함할 수 있습니다.
  • GPIO(레벨 트리거 인터럽트 및 에지 트리거 인터럽트 포함)
  • I²C, TWI(Two-Wire Interface): 저속 공유 시리얼 버스
  • MXVR: MOST 네트워크 인터페이스 컨트롤러
  • 낸드 플래시
  • PPI: LCD, 비디오 인코더(비디오 DAC), 비디오 디코더(비디오 ADC), CMOS 센서, CCD 및 범용 병렬 고속 디바이스 접속에 사용할 수 있는 병렬 입출력 포트.PPI는 최대 75MHz까지 실행할 수 있으며 8~16비트 폭으로 설정할 수 있습니다.
  • PWM 및 타이머/카운터
  • 실시간 클럭
  • SD/SDIO
  • SPI: 일부 고속 임베디드 전자제품 애플리케이션에서 사용되는 고속 시리얼 버스
  • SPORT: ADC, DAC, 기타 프로세서, FPGA 등에 접속하기 위해 TDM, I²S 및 기타 구성 가능한 다수의 프레임 모드를 지원할 수 있는 동기식 고속 시리얼 포트.
  • UART: RS232 디바이스(PC, 모뎀, PC 주변기기 등), MIDI 디바이스, IRDA 디바이스와 양방향 통신 가능
  • USB 2.0 OTG (이동 중)
  • 워치독 타이머

모든 주변기기 제어 레지스터는 일반 주소 공간에서 메모리 매핑됩니다.

개발 도구

Blackfin BF537 EZ-Kit-Lite 평가 플랫폼

ADI는 자체 소프트웨어 개발 툴체인을 제공합니다.원래의 VisualDSP++ IDE는 아직 서포트되고 있습니다(최종 릴리스는 2014년 10월 5.1.2, 7년 전(2014-10년)). 그러나 수명이 다 되어가고 있으며 새로운 BF6xx 및 BF7x 프로세서에 대한 지원은 추가되지 않았습니다.새로운 툴 체인은 CrossCore Embedded Studio입니다.CrossCore Embedded Studio는 업그레이드된 버전의 동일한 컴파일러와 툴을 사용하는 모든 Blackfin 및 Blackfin+ 프로세서를 내부적으로 지원하지만 Eclipse CDT 기반의 UI를 사용합니다.두 툴의 무료 버전은 없습니다.VisualDSP+++ 및 CrossCore Studio의 싱글 사용자 라이선스는 3500달러입니다..

기타 옵션으로는 Green Hills Software의 MULTI IDE와 Blackfin 프로세서 패밀리용 GNU GCC 툴체인이 있습니다.그러나 VisualDSP++와 마찬가지로 이러한 프로세서는 새로운 BF6xx 및 BF7xx 프로세서를 지원하도록 업데이트되지 않았습니다.게다가 어느 쪽도 모든 BF5xx 프로세서를 서포트하고 있지 않습니다.Green Hills MULTI는 BF50x, BF51x, 일부 BF52x, BF547 및 BF59x를 지원하지 않습니다.GCC는 BF50x, BF566 및 BF59x를 지원하지 않으며 BF561을 완전히 지원하지 않습니다.

또한 Blackfin은 National Instruments의 LabVIEW Embedded Module에서 지원되며, 여기에는 VisualDSP++가 필요합니다.

지원되는 운영 체제, RTOS 및 커널

여러 상용 및 오픈 소스 운영 체제가 Blackfin에서 실행할 수 있도록 지원합니다.

OS/RTOS/Kernels on Blackfin
제목 면허증. 평.
스레드X[5] 독자 사양
독자 사양
μC/OS-II[6] 독자 사양
무결성[7] 독자 사양
RTEMS BSD-2 조항 및 허용
RTXC 쿼드로스 독자 사양
VDK 독자 사양 ADI의 실시간 커널입니다.VisualDSP++와 함께 출고됩니다.
.NET 마이크로 프레임워크 Apache 라이센스 2.0 Microsoft의 스탠드아론 버전.Axiom의 통합 버전샘.

블랙핀은 이전에 μClinux에 의해 지원되었고 이후 Linux에 의해 NOMMU 기능이 지원되었지만 널리 사용되지 않았고 더 이상 [8][9]유지보수가 없기 때문에 2018년 4월 1일에 Linux에서 지원이 제거되었습니다. 4.16이 블랙핀 [10][11][12]지원을 포함하는 마지막 릴리스였습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Archived copy". Archived from the original on April 17, 2011. Retrieved April 9, 2011.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  2. ^ "H.264 BP/MP Encoder". Analog Devices. Retrieved 2014-09-03.
  3. ^ "H.264 BP/MP Decoder Library". Analog Devices. Retrieved 2014-09-03.
  4. ^ "Blackfin Processors Analog Devices". Analog.com. Retrieved 2016-06-24.
  5. ^ "Real-Time Operating Systems for Embedded Development, Real Time System By Express Logic". Rtos.com. Archived from the original on 2016-05-23. Retrieved 2016-06-24.
  6. ^ "Real-Time Kernels". Micrium.com. Retrieved 2016-06-24.
  7. ^ "INTEGRITY Real-time Operating System". Ghs.com. Retrieved 2016-06-24.
  8. ^ [1] MAINARS: arch/blackfin/ 및 그 gubbins를 고아로 표시합니다.
  9. ^ [2] RE: MAINARS: arch/blackfin/ 및 그 gubbins를 고아로 표시
  10. ^ [3] arch: 사용되지 않는 아키텍처 포트 제거
  11. ^ Simon Sharwood (2018-04-03). "Linux 4.16 arrives, erases eight CPUs". theregister.co.uk. Retrieved 2018-04-03.
  12. ^ Arnd Bergmann (2018-04-03). "[GIT PULL] arch: remove obsolete architecture ports". LKML. Retrieved 2018-04-04.

외부 링크