Blackfin 프로세서 : 아키텍처, 기능 및 애플리케이션

문제를 제거하기 위해 도구를 사용해보십시오





Blackfin 프로세서는 Analog Devices 및 Intel을 통해 MSA(Micro Signal Architecture)로 설계, 개발 및 판매되었습니다. 이 프로세서의 아키텍처는 2000년 12월에 발표되었으며 ESC( 임베디드 시스템 이 Blackfin 프로세서는 주로 현재 임베디드 오디오, 비디오 및 통신 애플리케이션의 전력 제약 및 계산 요구 사항에 도달하도록 설계되었습니다. 이 문서에서는 블랙핀 프로세서 – 아키텍처 및 해당 응용 프로그램.


블랙핀 프로세서란?

Blackfin 프로세서는 16 또는 32비트 마이크로프로세서 여기에는 16비트 MAC(곱하기-누적)을 통해 제공되는 고정 소수점 DSP 기능이 내장되어 있습니다. 이것들 프로세서 실시간 H.264 비디오 인코딩과 같은 어려운 수치 작업을 동시에 처리하면서 OS를 실행할 수 있는 결합된 저전력 프로세서 아키텍처용으로 주로 설계되었습니다.



이 프로세서는 범용 마이크로컨트롤러에서 찾을 수 있는 특성을 쉽게 사용하여 32비트 RISC 및 이중 16비트 MAC 신호 처리 기능을 결합합니다. 따라서 이 처리 속성 조합을 통해 Blackfin 프로세서는 제어 처리 및 신호 처리 애플리케이션 모두에서 유사하게 잘 달성할 수 있습니다. 이 기능은 하드웨어 및 소프트웨어 설계의 구현 작업을 크게 단순화합니다.

  블랙핀 프로세서
블랙핀 프로세서

블랙핀 특징:

  • 이 프로세서는 단일 명령어 세트 아키텍처를 포함하며 단순히 제품군을 능가하는 처리 성능을 포함합니다. 디지털 신호 프로세서 또는 더 나은 비용, 전력 및 메모리 효율성을 제공하는 DSP.
  • 이 16비트 또는 32비트 아키텍처 프로세서는 곧 출시될 임베디드 애플리케이션을 지원합니다.
    단일 코어 내에서 멀티미디어, 신호 및 제어 처리.
  • 개발자의 생산성을 높여줍니다.
  • 전력 소비 또는 신호 처리를 위한 동적 전력 관리 전반에 걸쳐 조정 가능한 성능을 제공합니다.
  • 여러 도구 체인과 운영 체제에서 간단히 지원되는 다양한 디자인에 매우 빠르게 채택됩니다.
  • 핵심 성능과 결합된 강력한 소프트웨어의 개발 환경 때문에 최소한의 최적화가 필요합니다.
  • Blackfin 프로세서는 업계 최고의 개발 도구를 지원합니다.
  • 이 프로세서의 성능과 경쟁 DSP 전력의 절반으로 고급 사양과 새로운 애플리케이션이 가능합니다.

블랙핀 프로세서 아키텍처

Blackfin 프로세서는 마이크로 컨트롤러 장치의 기능과 디지털 신호 처리 유연성을 허용하여 단일 프로세서 내에서. 따라서 이 프로세서에는 가변 길이와 같은 일부 기능을 포함하는 SIMD(단일 명령 다중 데이터) 프로세서가 포함되어 있습니다. 위험 명령, 감시 타이머, 온칩 PLL, 메모리 관리 장치, 실시간 클록, 100Mbps의 직렬 포트, UART 컨트롤러 & SPI 포트.



MMU는 여러 가지를 지원합니다. DMA 주변 장치와 FLASH, SDRAM 및 SRAM 메모리 하위 시스템 간에 데이터를 전송하는 채널. 또한 데이터 캐시 및 구성 가능한 온칩 명령을 지원합니다. Blackfin 프로세서는 8, 16 및 32비트 산술 연산을 지원하는 단순한 하드웨어입니다.

Blackfin 아키텍처는 주로 마이크로 신호의 아키텍처를 기반으로 하며 ADI(Analog Devices)와 Intel이 공동으로 개발했으며 32비트 RISC 명령어 세트와 듀얼 16비트 곱셈 누산이 있는 8비트 비디오 명령어 세트를 포함합니다. (MAC) 단위.

  PCBWay   블랙핀 프로세서 아키텍처
블랙핀 프로세서 아키텍처

아날로그 장치는 Blackfin의 명령어 세트 아키텍처를 통해 DSP와 MCU 요구 사항 간의 균형을 달성할 수 있습니다. 일반적으로 Blackfin 프로세서는 강력한 VisualDSP++ 소프트웨어 개발 도구와 결합되지만 이제는 C 또는 C++를 사용하여 이전보다 매우 쉽게 매우 효율적인 코드를 생성할 수 있습니다. 실시간 요구 사항의 경우 운영 체제 지원이 중요하므로 Blackfin은 아니오를 지원합니다. 운영 체제 및 메모리 보호. Blackfin 프로세서는 BF533, BF535 및 BF537과 같은 단일 코어와 BF561 모델과 같은 듀얼 코어로 제공됩니다.

Blackfin 프로세서 아키텍처에는 PPI(Parallel Peripheral Interface), SPORTS(Serial Ports), SPI(Serial Peripheral Interface), UART(Universal Asynchronous Receiver Transmitter), 범용 타이머, RTC(Real-Time 클록), 워치독 타이머, 범용 I/O(프로그래밍 가능 플래그), CAN(Controller Area Network) 인터페이스 , 이더넷 MAC, 주변 장치 DMA -12, 핸드셰이크 DMA를 포함한 메모리 대 메모리 DMA -2, TWI(2선 인터페이스) 컨트롤러, 디버그 또는 JTAG 32개의 인터페이스 및 이벤트 핸들러 방해하다 입력. 아키텍처의 이러한 모든 주변 장치는 서로 다른 고대역폭 버스를 통해 코어에 간단히 연결됩니다. 따라서 이러한 주변 장치 중 일부에 대한 설명은 다음과 같습니다.

PPI 또는 병렬 주변 장치 인터페이스

Blackfin 프로세서는 Parallel Peripheral Interface라고도 하는 PPI를 제공합니다. 이 인터페이스는 병렬 아날로그-디지털 및 디지털-아날로그 컨버터, 비디오 엔코더, 디코더 및 기타 범용 주변 장치에 직접 연결됩니다.

이 인터페이스에는 전용 입력 CLK 핀, 3개의 프레임 동기화 핀 및 16개의 데이터 핀이 포함됩니다. 여기서 입력 CLK 핀은 단순히 시스템 CLK 속도의 절반에 해당하는 병렬 데이터 속도를 지원합니다. 세 가지 다른 ITU-R 656 모드는 활성 비디오, 수직 블랭킹 및 전체 필드만 지원합니다.

PPI의 범용 모드는 다양한 전송 및 데이터 캡처 응용 프로그램에 적합하도록 제공됩니다. 따라서 이러한 모드는 내부적으로 생성된 프레임 동기를 통한 데이터 수신, 내부적으로 생성된 프레임 동기를 통한 데이터 전송, 외부에서 생성된 프레임 동기를 통한 데이터 전송 및 외부에서 생성된 프레임 동기를 통해 수신된 데이터의 주요 범주로 구분됩니다.

스포츠

Blackfin 프로세서에는 직렬 및 다중 프로세서 통신에 사용되는 2개의 이중 채널 동기식 직렬 포트 SPORT0 및 SPORT1이 포함되어 있습니다. 따라서 이들은 고속 및 동기식 직렬 포트입니다. I²S , TDM 및 연결을 위한 다양한 구성 가능한 프레이밍 모드 DAC , ADC, FPGA 및 기타 프로세서.

SPI 또는 직렬 주변 장치 인터페이스 포트

Blackfin 프로세서에는 프로세서가 다양한 SPI 호환 장치와 대화할 수 있도록 하는 SPI 포트가 포함되어 있습니다. 이 인터페이스는 단순히 3개의 핀을 사용하여 데이터, 데이터 핀-2 및 1개의 CLK 핀을 전송합니다. SPI 포트의 선택 입력 및 출력 핀은 단순히 마스터 및 슬레이브 모드와 다중 마스터 환경을 모두 지원하는 전이중 SSI(동기 직렬 인터페이스)를 제공합니다. 이 SPI 포트 및 클록 위상 또는 극성의 전송 속도는 프로그래밍 가능합니다. 이 포트에는 데이터 스트림 전송/수신을 지원하는 통합 DMA 컨트롤러가 있습니다.

타이머

Blackfin 프로세서에는 9개의 프로그래밍 가능한 타이머 장치가 있습니다. 이러한 타이머는 프로세서의 클록 또는 외부 신호 카운트에 대한 동기화를 위한 주기적인 이벤트를 제공하기 위해 프로세서 코어에 대한 인터럽트를 생성합니다.

UART

UART라는 용어는 '범용 비동기 수신기 송신기' 포트를 나타냅니다. Blackfin 프로세서는 2개의 반이중 UART 포트를 제공하며 이는 PC 표준 UART에 완벽하게 적합합니다. 이러한 포트는 단순히 다른 호스트 또는 주변 장치에 기본 UART 인터페이스를 제공하여 DMA 지원, 반이중, 비동기식 직렬 데이터 전송을 제공합니다.

UART 포트는 5~8 데이터 비트와 1 또는 2 정지 비트를 포함하며 프로그래밍된 I/O 및 DMA와 같은 2가지 작동 모드를 지원합니다. 첫 번째 모드에서 프로세서는 I/O 매핑된 레지스터 읽기/쓰기를 통해 데이터를 전송하거나 수신하며, 데이터가 전송 및 수신 모두에서 두 번 버퍼링됩니다. 두 번째 모드에서 DMA 컨트롤러는 데이터를 송수신하고 데이터를 메모리로 전송하는 데 필요한 인터럽트 수를 줄입니다.

RTC 또는 실시간 시계

블랙핀 프로세서의 실시간 클록은 스톱워치, 현재 시간 및 알람과 같은 다양한 기능을 제공합니다. 따라서 실시간 클록은 Blackfin 프로세서 외부의 32.768kHz 크리스털로 기록됩니다. 프로세서 내부의 RTC에는 전원 공급 장치 핀이 있어 Blackfin 프로세서의 나머지 부분이 저전력 상태가 되더라도 전원 공급 및 클럭 상태를 유지할 수 있습니다. 실시간 클록은 프로그래밍 가능한 여러 인터럽트 옵션을 제공합니다. 32.768kHz 입력 CLK 주파수는 Prescaler를 통해 1Hz 신호로 분리됩니다. 다른 장치와 마찬가지로 실시간 클록은 딥 슬립 모드/슬립 모드에서 Blackfin 프로세서를 깨울 수 있습니다.

감시 타이머

Blackfin 프로세서에는 소프트웨어 감시 기능을 실행하는 데 사용되는 32비트 감시 타이머가 있습니다. 따라서 프로그래머는 적절한 인터럽트를 허용하는 타이머의 카운트 값을 초기화한 다음 타이머를 허용합니다. 그 후 소프트웨어는 프로그래밍된 값에서 '0'까지 카운트하기 전에 카운터를 다시 로드해야 합니다.

GPIO 또는 범용 I/O

GPIO는 입력, 출력 또는 둘 다로 사용되는 디지털 신호 핀이며 소프트웨어를 통해 제어됩니다. Blackfin 프로세서에는 GPIO(범용 I/O) 핀, 포트 G, 포트 H 및 포트 F에 각각 연결된 PORTFIO, PORTHIO 및 PORTGIO와 같은 3개의 개별 GPIO 모듈에서 양방향 48개가 포함됩니다. 모든 범용 포트 핀은 GPIO DCR, GPIO CSR, GPIO IMR 및 GPIO ISR과 같은 상태, 포트 제어 및 인터럽트 레지스터 조작을 통해 개별적으로 제어됩니다.

이더넷 MAC

Blackfin 프로세서의 이더넷 MAC 주변 장치는 MII(Media Independent Interface)와 Blackfin의 주변 장치 하위 시스템 간에 10~100Mb/s를 제공합니다. MAC은 단순히 전이중 및 반이중 모드 모두에서 작동합니다. 미디어 액세스 컨트롤러는 프로세서의 CLKIN 핀에서 내부적으로 클럭됩니다.

메모리

Blackfin 프로세서 아키텍처의 메모리는 장치 구현에서 레벨 1 및 레벨 2 메모리 블록을 모두 제공합니다. 데이터 및 명령 메모리와 같은 L1의 메모리는 프로세서 코어에 직접 연결되어 전체 시스템 CLK 속도로 실행되며 중요한 시간 알고리즘 세그먼트에 대해 최대 시스템 성능을 제공합니다. SRAM 메모리와 같은 L2 메모리는 크기가 커서 성능이 약간 떨어지지만 오프칩 메모리에 비해 여전히 빠릅니다.

L1 메모리의 구조는 마이크로컨트롤러에서 프로그램을 제공하면서 신호 처리에 필요한 성능을 제공하도록 구현됩니다. 이는 단순히 메모리 L1을 SRAM, 캐시 또는 둘의 조합으로 배열하도록 허용함으로써 달성됩니다.

캐시 및 SRAM 프로그래밍 모델을 지원함으로써 시스템 설계자는 낮은 대기 시간 및 높은 대역폭이 필요한 중요한 실시간 신호 처리 데이터 세트를 SRAM에 할당하는 동시에 캐시 메모리 내에 실시간 제어 또는 OS 작업을 저장합니다.

부팅 모드

Blackfin 프로세서에는 재설정 후 자동으로 로드되는 내부 L1 명령 메모리를 위한 6개의 메커니즘이 포함되어 있습니다. 따라서 다양한 부팅 모드에는 주로 다음이 포함됩니다. 8비트 및 16비트 외부 플래시 메모리, 직렬 SPI 메모리에서 부팅 모드. SPI 호스트 장치, UART, 직렬 TWI 메모리, TWI 호스트 및 16비트 외부 메모리에서 수행하며 부팅 시리즈를 우회합니다. 처음 6개의 부팅 모드 각각에 대해 먼저 외부 메모리 장치에서 10바이트 헤더를 읽습니다. 따라서 헤더는 아니오를 나타냅니다. 전송할 바이트 수 및 메모리 대상 주소. 부트 시리즈를 통해 여러 메모리 블록을 로드할 수 있습니다. 모든 블록이 단순히 로드되면 프로그램 실행은 L1 명령어 SRAM의 처음부터 시작됩니다.

주소 지정 모드

블랙핀 프로세서의 어드레싱 모드는 개별 액세스 메모리와 어드레싱이 위치를 지정하는 방법을 간단히 결정합니다. Blackfin 프로세서에서 사용되는 주소 지정 모드는 간접 주소 지정, 자동 증가/감소, 사후 수정, 즉시 오프셋으로 인덱싱, 순환 버퍼 및 비트 반전입니다.

간접 주소 지정

이 모드에서 명령어 내의 주소 필드에는 효율적인 피연산자의 주소가 있는 곳마다 메모리 또는 레지스터의 위치가 포함됩니다. 이 주소 지정은 레지스터 간접 및 메모리 간접과 같은 두 가지 범주로 분류됩니다.

예를 들어 로드 R1, @300

위의 명령에서 유효 주소는 단순히 메모리 위치 300에 저장됩니다.

자동 증가/감소 주소 지정

자동 증분 주소 지정은 진입 권한 이후 포인터와 인덱스 레지스터를 간단히 업데이트합니다. 증가량은 주로 단어 크기의 크기에 따라 다릅니다. 32비트 워드 액세스는 '4'로 포인터 업데이트 내에서 발생할 수 있습니다. 16비트 워드 액세스는 포인터를 '2'로 업데이트하고 8비트 워드 액세스는 포인터를 '1'로 업데이트합니다. 8비트 및 16비트 모두의 읽기 작업은 내용을 대상 레지스터로 0 확장/부호 확장을 나타낼 수 있습니다. 포인터 레지스터는 주로 8, 16 및 32비트 액세스에 사용되는 반면 인덱스 레지스터는 16 및 32비트 액세스에만 사용됩니다.

예: R0 = W [ P1++ ] (Z) ;

위의 명령어에서 16비트 워드는 포인터 레지스터 'P1'을 통해 지정된 주소에서 32비트 대상 레지스터로 로드됩니다. 그 후 포인터는 2로 증가하고 워드는 '0' 확장되어 32비트 대상 레지스터를 채웁니다.

마찬가지로 자동 감소는 항목 오른쪽 뒤의 주소를 감소시키는 방식으로 작동합니다.

예: R0 = [ I2– ] ;

위의 명령어에서 32비트 값이 대상 레지스터로 로드되고 인덱스 레지스터를 4로 줄입니다.

수정 후 주소 지정

이러한 유형의 주소 지정은 단순히 효율적인 주소와 같은 인덱스/포인터 레지스터 내의 값을 사용합니다. 이후 레지스터 내용으로 수정한다. 인덱스 레지스터는 수정된 레지스터로 간단하게 변경되는 반면 포인터 레지스터는 다른 포인터 레지스터로 변경됩니다. 대상 레지스터와 마찬가지로 사후 수정 유형 주소 지정은 포인터 레지스터를 지원하지 않습니다.

예: R3 = [ P1++P2 ] ;

위의 명령어에서 32비트 값은 'R3' 레지스터에 로드되고 'P1' 레지스터가 가리키는 메모리 위치 내에서 찾습니다. 그 후 'P2' 레지스터 내의 값이 P1 레지스터 내의 값에 더해집니다.

즉시 오프셋으로 인덱싱됨

색인화된 주소 지정은 단순히 프로그램이 데이터 테이블에서 값을 가져오도록 허용합니다. 포인터 레지스터는 즉시 필드에 의해 변경된 후 유효 주소로 사용됩니다. 따라서 포인터 레지스터 값은 업데이트되지 않습니다.

예를 들어 P1 = 0x13이면 [P1 + 0x11]은 모든 액세스와 관련된 [0x24]와 ​​효율적으로 동일합니다.

비트 역방향 주소 지정

일부 알고리즘의 경우, 프로그램은 특히 FFT(고속 푸리에 변환) 계산의 경우 순차적 순서로 결과를 얻기 위해 비트 반전 캐리 주소 지정이 필요합니다. 이러한 알고리즘의 요구 사항을 충족하기 위해 데이터 주소 생성기의 비트 반전 주소 지정 기능을 통해 반복적으로 데이터 계열을 세분화하고 이 데이터를 비트 반전 순서로 저장할 수 있습니다.

순환 버퍼 주소 지정

Blackfin 프로세서는 인덱스 레지스터를 사전 정의된 주소 범위만큼 단순히 증가시킨 다음 해당 범위를 반복하도록 인덱스 레지스터를 자동으로 재설정하는 선택적인 순환 주소 지정과 같은 기능을 제공합니다. 따라서 이 기능은 매번 단순히 주소 인덱스 포인터를 제거함으로써 입/출력 루프의 성능을 향상시킵니다.

순환 버퍼 주소 지정은 고정된 크기의 데이터 블록 문자열을 반복적으로 로드하거나 저장할 때 매우 유용합니다. 순환 버퍼의 내용은 다음 조건을 충족해야 합니다.

  • 순환 버퍼 최대 길이는 크기가 231 미만인 부호 없는 숫자여야 합니다.
  • 수정자의 크기는 원형 버퍼의 길이보다 작아야 합니다.
  • 포인터 'I'의 첫 번째 위치는 길이 'L'과 기수 'B'로 정의되는 순환 버퍼에 있어야 합니다.

위의 조건 중 하나라도 충족되지 않으면 프로세서의 동작이 지정되지 않습니다.

Blackfin 프로세서 등록 파일

Blackfin 프로세서에는 다음과 같은 3개의 최종 레지스터 파일이 포함되어 있습니다. 데이터 레지스터 파일, 포인터 레지스터 파일 및 DAG 레지스터.

  • 데이터 레지스터 파일은 연산 단위에 사용되는 데이터 버스를 사용하여 피연산자를 수집하고 연산 결과를 저장합니다.
  • 포인터 레지스터 파일에는 주소 지정 작업에 사용되는 포인터가 포함되어 있습니다.
  • DAG 레지스터는 DSP 작업에 사용되는 제로 오버헤드 순환 버퍼를 관리합니다.

Blackfin 프로세서는 최고 수준의 전원 관리 및 성능을 제공합니다. 이들은 전압 및 작동 주파수를 모두 변경할 수 있는 저전압 및 저전력 설계 방법론으로 설계되어 전체 전력 사용률을 크게 줄입니다. 따라서 단순히 작동 주파수를 변경하는 것과 비교하여 전력 사용이 크게 감소할 수 있습니다. 따라서 이것은 단순히 편리한 가전 제품의 배터리 수명을 연장합니다.

Blackfin 프로세서는 DDR-SDRAM, SDRAM, NAND 플래시, SRAM 및 NOR 플래시와 같은 다양한 외부 메모리를 지원합니다. 일부 Blackfin 프로세서는 SD/SDIO 및 ATAPI와 같은 대용량 저장 인터페이스도 포함합니다. 또한 외부 메모리 공간 내에서 100MB의 메모리를 지원할 수 있습니다.

장점

그만큼 블랙핀 프로세서의 장점 다음을 포함하십시오.

  • Blackfin 프로세서는 시스템 설계자에게 기본적인 이점을 제공합니다.
  • Blackfin 프로세서는 다중 형식의 오디오, 비디오, 음성 및 이미지 처리, 실시간 보안, 제어 처리 및 다중 모드 기저대역 패킷 처리와 같은 컨버전스 애플리케이션을 위한 소프트웨어 유연성과 확장성을 제공합니다.
  • 효율적인 제어 처리 용량 및 고성능 신호 처리는 다양한 새로운 시장 및 응용 프로그램을 허용합니다.
  • DPM(Dynamic Power Management)을 통해 시스템 설계자는 특히 최종 시스템의 요구 사항에 맞게 장치의 전력 소비를 수정할 수 있습니다.
  • 이러한 프로세서는 개발 시간과 비용을 크게 줄여줍니다.

애플리케이션

그만큼 Blackfin 프로세서의 애플리케이션 다음을 포함하십시오.

  • Blackfin 프로세서는 다음과 같은 많은 애플리케이션에 이상적입니다. ADAS(자동차 첨단 운전자 지원 시스템) , 감시 또는 보안 시스템 및 산업용 머신 비전.
  • Blackfin 애플리케이션에는 서보 모터 제어 시스템, 자동차 전자 장치, 모니터링 시스템 및 멀티미디어 소비자 장치가 포함됩니다.
  • 이러한 프로세서는 단순히 마이크로컨트롤러 및 신호 처리 기능을 수행합니다.
  • 이들은 오디오, 프로세스 제어, 자동차, 테스트, 측정 등에 사용됩니다.
  • Blackfin 프로세서는 광대역 무선, 모바일 통신 및 오디오 또는 비디오 지원 인터넷 기기와 같은 신호 처리 애플리케이션에 사용됩니다.
  • Blackfin은 네트워크 및 스트리밍 미디어, 디지털 홈 엔터테인먼트, 자동차 텔레매틱스, 인포테인먼트, 모바일 TV, 디지털 라디오 등과 같은 융합 애플리케이션에 사용됩니다.
  • Blackfin 프로세서는 멀티 포맷 음성, 오디오, 비디오, 멀티 모드 베이스밴드, 이미지 처리, 패킷 처리, 실시간 보안 및 제어 처리가 중요한 모든 응용 프로그램에서 사용되는 전력 효율성 및 최고의 성능을 갖춘 임베디드 프로세서입니다.

따라서 이것은 Blackfin 프로세서 개요 – 아키텍처, 장점 및 응용 프로그램. 이 프로세서는 신호 처리 및 마이크로컨트롤러 기능을 수행합니다. 프로세서란 무엇입니까?