O que o dsPIC pode fazer que o humilde microcontrolador PIC não pode fazer?

10

Ainda não usei um chip DSP. Tudo o que sei é que sua arquitetura é tal que eles podem realizar cálculos com bastante rapidez, geralmente dentro de um ciclo de clock, possuem instruções de acumulação múltipla em seu conjunto de instruções e possuem DMAs para que a CPU não precise perder tempo precioso movendo dados por aí. Acho que há mais, mas esses são alguns pontos básicos.

Eu posso ver que o Microchip tem dsPIC, que é sua linha de chips DSP. Não podemos simplesmente usar um PIC18 ou PIC32 que também possui multiplicadores integrados para fazer o DSP também? Qual a diferença entre o dsPIC e o PIC normal?

Minha principal pergunta é: por que precisamos ter algo separado e distinto chamado chip DSP e não integrar capacidade de cálculo de unidade de ponto flutuante de alta precisão em todos os microcontroladores? Certamente, com as tecnologias de processo que temos agora, isso não deve ocupar muito espaço.

Além disso, como sei que preciso usar um chip DSP no meu projeto em vez de um microcontrolador normal>

quantum231
fonte
11
Há boas respostas para a pergunta semelhante aqui: electronics.stackexchange.com/questions/3067/…
David

Respostas:

3

Geralmente "DSP ..." significa 'potência mais relevante e / ou hardware mais relevante no momento em que o produto foi lançado .'
Os processadores generalizados tendem a alcançar os dispositivos especializados da olde.
DSPIC tem mais de 10 anos - Olin saberá.

[Os itens entre parênteses se referem a alguns exemplos de DSPIC - não exaustivos].

Nos produtos DSP, espere alguma mistura de:
espere coisas como deslocadores de barril,
oleodutos largos e rápidos, tempos de execução rápidos de ciclo
único, instruções amplas de ciclo único,
DMA [6 ou 8 canais, buffers de RAM de porta dupla] grandes faixas de endereçamento de memória linear [programa 4 Mword , 64 kB data] recursos especializados em aritmética especializada
Talvez:
periféricos especializados, como controle de motor,
hardware para diversos padrões de comunicação [CAN, IIC, UART, IIS, AC97, ...] mais profundos do que o padrão buffers de comunicação [4 bytes] mais rapidamente e / ou ADCs mais amplos do que o habitual [2 Msps, 10 ou 12 bits]

Você encontrará a maioria deles na família DSPIC - e cada vez mais nas famílias de processadores gp.
Em casos extremos, você obtém microcodificação do usuário e muito mais.

Russell McMahon
fonte
11
Se bem me lembro, ouvi pela primeira vez sobre o esforço de design do dsPIC em 1999, as primeiras amostras foram fornecidas no início de 2002 com peças de produção no final de 2002 ou no início de 2003. Ainda em algum lugar ainda tenho um 30F2010 trançado à mão em um pacote DIP de cerâmica de 28 pinos que acidentalmente foi rotulado como um 30F6010. Só rodava a 1/3 da eventual velocidade máxima e estava marcado como sendo o número 55 ou algo assim.
Olin Lathrop
11
Eles também podem ter clock de até 200 ou 260 MHz, enquanto a linha PIC suporta apenas até 4 a 20 MHz. Ser 10 ou mais vezes mais rápido é definitivamente um ponto a considerar.
Havenard
11
@Havenard - Observando que este é um P&R de 2014: Ele mencionou o PIC32 como uma possível alternativa ao DSPIC. O PIC32MX de 2007 possui Cmax (frequência máxima do relógio) de 80 MHz. O PIC32MZ 2013 tem Cmax de 252 MHz. || Útil, embora incompleta, comparação aqui {Wikipedia}.
Russell McMahon
11

Algumas das vantagens de um dsPIC sobre PICs de arquitetura anterior, como as famílias PIC 16 e 18:

  1. Caminhos de dados de 16 bits e ALU, em oposição a 8.

  2. Capacidade de endereçar diretamente (versões posteriores de ambas as arquiteturas estenderam isso de várias maneiras arrogantes) mais memória de dados. Um PIC 16 básico pode endereçar 128 bytes diretamente, 512 com serviços bancários. O PIC 16F1xxx mais recente ampliou o sistema bancário para permitir o endereçamento de mais memória de dados. A arquitetura PIC 18 é limitada a 4k bytes. A arquitetura dsPIC pode endereçar 64k bytes ou 32k palavras de 16 bits diretamente, embora por vários motivos, apenas metade disso esteja disponível para RAM na arquitetura básica. Um esquema bancário em alguns dos modelos posteriores estendeu isso.

  3. Mais rápido. O 30F original poderia ser executado em 30 MIPs, com 40 partes de MIPs a norma agora. A nova série E pode rodar até 70 MIPs, embora haja mais motivos para esperar mais do que os modelos mais lentos anteriores. Eles ainda são significativamente mais rápidos, em média.

  4. Capacidade DSP. O mecanismo DSP possui dois acumuladores de 40 bits e o hardware usual para executar uma sequência de operações MAC nas matrizes, um MAC por ciclo de instruções (consulte a resposta de Dave Tweed). O MAC e as instruções relacionadas se sobrepõem à indexação da matriz e à finalização do loop com a acumulação-multiplicação real.

  5. 15 "registradores de trabalho" de 16 bits, utilizáveis ​​por software, em vez do único registro W de 8 bits das arquiteturas PIC de 8 bits.

  6. Deslocador de tambor.

  7. Ciclo único 16x16 -> 32 bits multiplicado.

  8. Divisão de hardware. Uma operação de 32 div 16 -> 16 bits leva 18 ciclos.

  9. Muitas instruções de 3 operandos. Por exemplo, você pode adicionar o conteúdo de dois registros de trabalho e colocar o resultado em um terceiro, tudo em um único ciclo. Isso se aplica à maioria das operações matemáticas, lógicas e de turnos.

  10. Conjunto geral de instruções mais regular e simétrica.

  11. Interrupções vetoriais. O PIC 16 tem um único vetor de interrupção e o PIC 18 tem dois. Nas partes de 16 bits (PIC 24, dsPIC 30 e 33), cada fonte de interrupção possui seu próprio vetor. Isso reduz a latência na rotina de interrupção, porque não é necessário gastar ciclos para descobrir qual interrupção deve ocorrer no serviço.

    Isso também permite uma melhor arquitetura de software. A rotina de interrupção para um periférico específico pode estar no mesmo módulo que o outro código que manipula esse periférico, em vez de precisar ter uma rotina de interrupção global.

  12. Várias outras vantagens que caem da arquitetura mais ampla.

Olin Lathrop
fonte
8

Geralmente, o principal recurso de distinção de um DSP quando comparado a uma CPU de uso geral é que o DSP pode executar determinadas operações de processamento de sinal com poucos, se houver, ciclos de CPU desperdiçados em instruções que não computam resultados.

Uma das operações mais básicas em muitos dos principais algoritmos DSP é a operação MAC (multiply-acumulate), que é a etapa fundamental usada em produtos matriciais e cruzados, filtros FIR e IIR e FFTs. Um DSP normalmente terá uma organização de registro e / ou memória e um caminho de dados que permite realizar pelo menos 64 operações MAC em pares de dados exclusivos em uma linha sem que nenhum relógio seja desperdiçado na sobrecarga do loop ou na movimentação de dados. Geralmente, as CPUs de uso geral não têm registros suficientes para fazer isso sem usar instruções adicionais para mover dados entre registros e memória.

Dave Tweed
fonte
11
+1 para ênfase nas operações MAC. Estes são, sem dúvida, o núcleo da maioria das operações DSP.
Matt Young