segunda-feira, 18 de julho de 2011

Resposta I - a família Microchip PIC

Embora baseado num processador - o CP1600 da General Instruments - de 1975, o primeiro PIC como o conhecemos hoje foi o PIC16C84, de 1993.

Bastante revolucionário na época, ele introduziu conceitos hoje comuns, como a arquitetura "Harvard", que apresenta barramentos de dados e programa separados, e o RISC.  A idéia original era um microcontrolador de baixo custo, fácil de programar e de alto desempenho.

Ao contrário do esperado, a família PIC de 8 bits (a primeira) não fez tanto sucesso na área industrial.  Porém seu baixo custo e facilidade de programação a tornaram a preferida dos "hobistas" de todo o mundo.

Atualmente os modelos PIC16 de controladores de 8 bits e instruções de 14 bits são os mais conhecidos, embora os PIC18, mais modernos e com instruções de 16 bits, tenham maior desempenho.

Talvez a maior limitação dos PIC16 - quem sabe a razão de seu sucesso menor do que o esperado - seja a "stack" não endereçável.  A "stack" desses modelos só é utilizada internamente, para controle de retorno de funções.  O programador não pode ler, escrever ou alterar a "stack" ou seu ponteiro.  Isso significa, na prática, que gerenciamento de tarefas preemptivo é impossível e, mais importante ainda, é extremamente difícil implementar código reentrante, já que não se pode alocar variáveis na "stack".

Os PIC18 resolveram esse problema - sua "stack" já é endereçável - mas quando foram lançados, em 2000, os PIC já eram conhecidos há quase uma década, tendo feito sua fama de "baixo custo, porém simples e limitados".  Além do que os PIC18 sempre foram muito caros, o que em nada ajudou sua popularização.

Posteriormente a Microchip introduziu as linhas de controladores de 16 bits (PIC24 e dsPIC, em 2004) e 32 bits (PIC32, em 2007), com muito alto desempenho.

PIC16 é uma família de microcontroladores RISC de 8 bits.  Conta com uma RAM bastante limitada (256 Bytes), e Flash de até 8kB.  Frequências de clock até 20 MHz geram ciclos de instrução de até 5 MHz.  A arquitetura RISC, se por um lado exige instruções muito simples, por outro reduz o número de ciclos por instrução a praticamente 1/1, apresentando um desempenho da ordem de 5 MIPS.

PIC18 tem como seus maiores diferenciais instruções mais complexas, de 16 bits, e "stack" endereçável.

Nenhum comentário:

Postar um comentário