겸손한 PIC 마이크로 컨트롤러가 할 수없는 dsPIC의 기능은 무엇입니까?


10

아직 DSP 칩을 사용하지 않았습니다. 내가 아는 것은 일반적으로 클럭주기 내에서 계산을 매우 빠르게 수행 할 수 있고, 명령어 세트에 여러 누적 명령어가 있으며, DMA가있어 CPU가 데이터 이동에 귀중한 시간을 낭비하지 않아도된다는 것입니다. 주위에. 나는 그것에 더 많은 것이 있다고 생각하지만, 이것들은 몇 가지 기본 사항입니다.

Microchip에 DSP 칩 라인 인 dsPIC이 있음을 알 수 있습니다. DSP를 수행하기 위해 멀티 플라이어가 내장 된 PIC18 또는 PIC32 만 사용할 수 있습니까? dsPIC는 일반 PIC와 어떻게 다릅니 까?

나의 주요 질문은 이것입니다. 왜 우리는 DSP 칩이라는 별도의 구별이 필요하고 모든 마이크로 컨트롤러에 고정밀 부동 소수점 단위 계산 기능을 통합하지 않아야합니까? 분명히 우리가 지금 가지고있는 공정 기술로, 이것은 많은 공간을 차지하지 않아야합니다.

또한 일반 마이크로 컨트롤러가 아닌 프로젝트에서 DSP 칩을 사용해야한다는 것을 어떻게 알 수 있습니까?>


1
비슷한 질문에 대한 좋은 답변이 여기 있습니다 : electronics.stackexchange.com/questions/3067/…
David

답변:


3

일반적으로 "DSP ..."는 ' 제품을 출시 할 당시의 관련성이 높은 마력 및 / 또는 관련 하드웨어 '를 의미합니다.
일반화 된 프로세서는 오래된 전문 장치를 따라 잡는 경향이 있습니다.
DSPIC은 10 세 이상이며 Olin은 알고 있습니다.

[괄호 안의 항목은 일부 DSPIC 예와 관련이 있으며 철저하지는 않습니다.]

DSP 제품에서
배럴 시프터,
넓은 고속 파이프 라인 및 빠른 단일 사이클 실행 시간,
넓은 단일 사이클 명령,
DMA [6 또는 8 채널, 이중 포트 RAM 버퍼]와 같은 선형 메모리 주소 지정 범위와 같은 것들이 예상됩니다. [4 Mword 프로그램 , 64 kB 데이터] 전문가 산술 지향 기능
어쩌면 :
모터 제어,
여러 다른 통신 표준을위한 하드웨어 (CAN, IIC, UART, IIS, AC97, ...) 와 같은 전문 주변 장치 는 일반적인 통신 버퍼보다 ​​더 깊고 (4 바이트) 더 빠르고 일반적인 ADC보다 넓은 폭 [2 Msp, 10 또는 12 비트]

이 대부분은 DSPIC 제품군과 gp 프로세서 제품군에서 점점 더 많이 볼 수 있습니다.
극단적 인 경우 사용자 마이크로 코딩 등이 제공됩니다.


1
내가 올바로 기억한다면 1999 년 dsPIC 설계 노력에 대해 처음 들었고 2002 년 말 또는 2003 년 말 또는 2003 년 초에 생산 부품을 사용하여 첫 샘플을 발표했습니다. 실수로 30F6010으로 표시되었습니다. 그것은 최고 속도의 1/3에서 실행되었고 # 55 또는 다른 것으로 손으로 표시되었습니다.
Olin Lathrop

1
PIC 라인은 최대 200MHz 또는 260MHz까지 클럭 할 수 있으며 PIC 라인은 최대 4 ~ 20MHz 만 지원합니다. 10 배 이상 빠르다는 것은 확실히 고려해야 할 사항입니다.
Havenard

1
@Havenard-이것이 2014 Q & A임을 지적하면서 DSPIC의 대안으로 PIC32를 언급했습니다. 2007 PIC32MX의 Cmax (최대 클록 주파수)는 80MHz입니다. 2013 PIC32MZ의 Cmax는 252MHz입니다. || 불완전한 비교이기는하지만 유용한 여기 {위키 백과}.
Russell McMahon

11

PIC 16 및 18 제품군과 같이 이전 아키텍처 PIC에 비해 dsPIC의 장점 중 일부는 다음과 같습니다.

  1. 8에 적용된 16 비트 폭의 데이터 경로 및 ALU

  2. 더 많은 데이터 메모리를 직접 처리 할 수있는 기능 (다양한 아키텍처의 최신 버전에서이를 다양한 방식으로 확장) 기본 PIC 16은 128 바이트를 직접 주소 지정할 수 있으며 512는 뱅킹을 사용합니다. 최신 PIC 16F1xxx는 더 많은 데이터 메모리를 처리 할 수 ​​있도록 뱅킹을 확장했습니다. PIC 18 아키텍처는 4k 바이트로 제한됩니다. dsPIC 아키텍처는 64k 바이트 또는 32k 16 비트 워드를 직접 처리 할 수 ​​있지만 기본 아키텍처에서는 RAM의 절반 만 RAM에 사용할 수 있습니다. 이후 모델 중 일부의 은행 제도가이를 확장했습니다.

  3. 더 빠릅니다. 원래 30F는 30 개의 MIP에서 실행될 수 있으며, 현재 40 개의 MIP 부품이 표준입니다. 새로운 E 시리즈는 최대 70 개의 MIP를 실행할 수 있지만, 이전의 느린 모델보다 대기 중일 수 있습니다. 그들은 여전히 ​​평균적으로 훨씬 더 빠릅니다.

  4. DSP 기능. DSP 엔진에는 2 개의 40 비트 누산기와 명령주기 당 하나의 MAC에서 어레이에 대해 일련의 MAC 작업을 수행하는 일반적인 하드웨어가 있습니다 (Dave Tweed의 답변 참조). MAC 및 관련 명령어는 실제 다중 누적과 배열 인덱싱 및 루프 종료를 겹칩니다.

  5. 8 비트 PIC 아키텍처의 단일 8 비트 W 레지스터 대신 15 개의 소프트웨어 사용 가능한 16 비트 "작업 레지스터"

  6. 배럴 시프터.

  7. 단일 사이클 16x16-> 32 비트 곱하기.

  8. 하드웨어 분할. 32 div 16-> 16 비트 작동에는 18 사이클이 걸립니다.

  9. 많은 3 오퍼랜드 명령. 예를 들어, 두 개의 작업 레지스터의 내용을 추가하고 결과를 단일 주기로 세 번째에 넣을 수 있습니다. 이것은 대부분의 수학, 논리 및 시프트 연산에 적용됩니다.

  10. 전반적으로보다 규칙적이고 대칭적인 명령어 세트.

  11. 벡터 인터럽트. PIC 16에는 단일 인터럽트 벡터가 있고 PIC 18에는 2 개의 인터럽트 벡터가 있습니다. 16 비트 파트 (PIC 24, dsPIC 30 및 33)에서 각 인터럽트 소스에는 고유 한 벡터가 있습니다. 서비스 중단을 파악하는 데 시간을 소비 할 필요가 없기 때문에 인터럽트 루틴의 대기 시간이 줄어 듭니다.

    또한 소프트웨어 아키텍처를 개선 할 수 있습니다. 특정 주변 장치에 대한 인터럽트 루틴은 하나의 전역 인터럽트 루틴을 갖지 않고 해당 주변 장치를 처리하는 다른 코드와 동일한 모듈에있을 수 있습니다.

  12. 더 넓은 아키텍처에서 비롯된 다양한 장점.


8

일반적으로 범용 CPU와 비교할 때 DSP의 주요 특징은 DSP가 결과를 계산하지 않는 명령에 낭비되는 CPU 사이클이 거의없는 경우 특정 신호 처리 작업을 실행할 수 있다는 것입니다.

많은 주요 DSP 알고리즘에서 가장 기본적인 작업 중 하나는 MAC (multiply-accumulate) 연산으로 매트릭스 도트 및 크로스 제품, FIR 및 IIR 필터 및 FFT에 사용되는 기본 단계입니다. DSP는 일반적으로 레지스터 및 / 또는 메모리 구성 및 루프 오버 헤드 나 데이터 이동시 시간 낭비없이 행에서 고유 한 데이터 쌍에 대해 최소 64 개의 MAC 작업을 수행 할 수있는 데이터 경로를 갖습니다. 범용 CPU에는 일반적으로 레지스터와 메모리간에 데이터를 이동하는 추가 명령을 사용하지 않고이를 수행하기에 충분한 레지스터가 없습니다.


1
MAC 운영에 중점을 둔 +1 이것들은 의심의 여지없이 대부분의 DSP 작업의 핵심입니다.
매트 영
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.