Já ouvi falar de microcontroladores de 8 bits e microcontroladores de 16 bits. Eu até ouvi falar de microcontroladores de 7 bits e microcontroladores de 1 bit .
Quais são os atributos gerais desses grupos? Como escolho qual tipo usar para um projeto?
microcontroller
architecture
Jacob Harding
fonte
fonte
Respostas:
Existem também microcontroladores de 4 e 32 bits. Microprocessadores de 64 bits são usados em PCs.
O número refere-se à largura do registro . Os registros estão no coração do microcontrolador. Muitas operações usam registradores, para mover dados ou executar operações aritmicas ou lógicas. Essas operações ocorrem na ULA , na Unidade Aritmética e Lógica.
Algumas operações usam apenas 1 argumento, como limpar um registro ou incrementá-lo. Muitos, no entanto, aceitam 2 argumentos, e isso leva à representação típica de calças de cabeça para baixo de uma ULA. e são os argumentos e a ALU produzirá um resultado base na operação atual. Uma operação de dois argumentos pode ser "adicione 15 ao registro R5 e armazene o resultado no endereço de memória 0x12AA". Isso requer que haja um roteamento entre a constante "15" (que vem da memória do programa), o arquivo de registro e a memória de dados. Esse roteamento ocorre através de um banco de dadosUMA B C . Há um banco de dados interno conectando os registradores, a RAM interna e a ALU, e para microprocessadores e alguns microcontroladores, um banco de dados externo que se conecta à RAM externa. Com algumas exceções, o banco de dados tem a mesma largura que os registradores e a ULA, e juntos eles determinam que tipo de microcontrolador é. (Uma exceção foi o 8088, que possui internamente um barramento de 16 bits, mas externamente apenas 8 bits.)
Os controladores de 4 bits possuem registradores de 4 bits, que podem representar apenas 16 valores diferentes, de 0 a 0xF hexadecimal. Isso não é muito, mas é suficiente trabalhar com os dígitos de um relógio digital, e é um domínio em que eles são usados.
Os controladores de 8 bits são o cavalo de batalha da indústria há algumas décadas. Em 8 bits, você pode armazenar um número entre 0 e 255. Esses números também podem representar letras e outros caracteres. Então você pode trabalhar com texto. Às vezes, 2 registros podem ser combinados em um registro de 16 bits, o que permite números de até 65535. Em muitos controladores, porém, é necessário processar grandes números em software. Nesse caso, até números de 32 bits são possíveis.
A maioria dos controladores de 8 bits possui um contador de programa de 16 bits. Isso significa que ele pode endereçar no máximo 64kBytes de memória. Para muitos aplicativos incorporados basta, alguns precisam apenas de alguns kBytes.
Um monitor de estacionamento, por exemplo, onde é necessário manter a contagem do número de carros e exibi-lo em um LCD, é algo que você normalmente faria com um controlador de 8 bits. :-)
16 bits é o próximo passo. Por alguma razão, eles nunca tiveram o sucesso de 8 ou 32 bits. Lembro que a série Motorola HC12 era proibitivamente cara e não podia competir com controladores de 32 bits.
32 bits é a palavra do dia. Com um contador de programa de 32 bits, você pode endereçar 4GByte. O ARM é um popular controlador de 32 bits. Existem dezenas de fabricantes que oferecem ARMs de todos os tamanhos. São controladores poderosos, com muitas funções a bordo, como USB ou drivers completos para monitores LCD.
Os ARMs geralmente exigem pacotes grandes, para acomodar uma matriz grande com muito Flash, ou porque as diferentes funções exigem muitos pinos de E / S. Mas este pacote ilustra as possibilidades que o ARM oferece.
Este é um braço de 16 pinos em um pacote de apenas 2,17 mm x 2,32 mm.
fonte
A resposta simples: um microcontrolador N-Bit possui um caminho de dados e ALU que pode processar dados em blocos N-Bit.
Resposta longa: a resposta curta está correta 95% do tempo. A resposta longa fica confusa. Algumas CPU / MPUs têm partes que são principalmente N-Bits, mas algumas são M-Bits. Por exemplo, pode ser uma CPU de 8 bits com um multiplicador inteiro que funciona em dados de 16 bits. A série de CPUs Intel (8088 até o atual i7) costumava combinar vários registros de 8 e 16 bits para obter 16 ou 32 bits. Em seguida, o pessoal de marketing obtém esses números e decide usá-los em seus itens de marketing e você acaba com MPUs de 8 bits chamados 16 bits, etc.
Fica ainda mais estranho do que isso. Algumas pessoas de marketing promovem o tamanho das instruções da MPU. Os PICs do Microchip são um bom exemplo disso. Se você não for cuidadoso, poderá confundir isso com o número de bits no caminho dos dados.
fonte
O que significa "N-Bit"?
Desculpe se este primeiro parágrafo é um pouco baixo demais, mas é oferecido na esperança de ajudar futuros leitores: Um número, representado por N dígitos na base M, só pode ser tão grande quantoMN . Por exemplo, com 9 dígitos decimais (base 10), você pode escrever apenas números de até 10 ^ 9 ou zero a 999.999.999. Com 8 dígitos binários (base 2) (um "dígito binário" é um 'bit'), você pode armazenar 2 ^ 8 = 256 números.
Um microcontrolador ou processador é chamado de 'N-bit' porque controladores e processadores têm uma largura de dados fundamental. Cada registro pode ser N bits, cada instrução pode ser N bits, o barramento de dados pode ser N bits, a memória pode ser endereçada com N bits. Especialmente no nível mais baixo, há exceções a esta regra: por exemplo, um controlador de 8 bits pode ter um barramento de memória de 12 bits, mas como você pode imaginar, é difícil trabalhar com isso quando seus registros contêm apenas 8 bits. No entanto, todos os processadores têm uma largura de tipo de dados nativa fundamental. Considere o seguinte código:
Se você puder adicionar apenas números de 8 bits, como você executaria essa operação? Você precisaria dividir cada variável em 4 números de 8 bits, fazer as adições e os carregamentos individualmente e depois mesclá-los para obter o resultado. Isso levaria pelo menos 16 instruções! No entanto, em um processador de 32 bits, é uma única instrução tão simples quanto
mul r0, r1, r2
. Como você pode ver neste exemplo simples, larguras de bits de processador maiores podem lidar com mais dados mais rapidamente.Notas históricas
A tendência ao longo da história foi de larguras de bits menores para maiores. No início dos anos 1970, a Intel lançou o 4004, o primeiro controlador de chip único. Era um processador de 4 bits. Como os transistores eram grandes e consumiam muita energia, e porque o design era revolucionário e complicado, era tudo o que podia ser espremido no chip. Pouco tempo depois, eles lançaram o 8008, um processador de 8 bits. Ainda existem poucos processadores de 4 bits em uso, mas existem muitos controladores de 8 bits, o PIC e o AVR são exemplos contemporâneos ainda em uso comum. Mais processadores de 8 bits foram fabricados do que qualquer outro tipo! Eles ainda são os controladores mais populares para tarefas pequenas, simples e sensíveis a custos. A próxima transição óbvia foi para controladores de 16 bits, mas estes não tiveram o alcance de seus irmãos de 8 ou 32 bits. Em vez de, houve um salto para os processadores de 32 bits, como os projetados pela ARM e projetados para as CPUs dos PCs de alguns anos atrás. Não tenho microcontroladores de 64 bits significativos, mas agora eles são proeminentes nos PCs.
8 bits vs. 32 bits
De longe, os tipos mais populares são os processadores de 8 e 32 bits. Os processadores de 32 bits estão se tornando cada vez mais populares. Todo ano, mais ou menos, alguma revista especializada publica um artigo com o título "8-bit dead?" Os processadores de 32 bits estão se tornando mais populares, mais poderosos e mais baratos, deixando apenas três razões para escolher um processador de 8 bits:
Os processadores de 32 bits estão se tornando cada vez mais onipresentes, mas há poucos sinais de que o processador de 8 bits desapareça como os antigos processadores de 4 bits por esses três motivos.
Arduino como exemplo
Considere um aplicativo como o Arduino .
O Arduino usa um controlador Atmel, um ATmega32 de 8 bits . O ATmega é executado em 20 MHz, possui 4k de RAM, possui comunicações SPI, I2C e UART, algumas interrupções de hardware e 8 ADCs de 10 bits. Esse chip custa US $ 3,90 em quantidades de 100.
Um chip de 32 bits semelhante poderia ser outra parte do Atmel, um AT-SAM3 de 32 bits usando o núcleo compartilhado do ARM Cortex-M3. Esse chip roda a 64 MHz (3x mais rápido, mas lembre-se de que o ATmega precisa de 16 instruções para fazer uma única adição de 32 bits). Possui 16k de RAM, 4 vezes mais que o ATmega. Possui periféricos I²C, MMC, SPI, SSC, UART e até USB. Possui DMA (acesso direto à memória, também o torna mais rápido e eficiente), um conjunto de interrupções poderoso e flexível, 10 ADCs de 12 bits e 2 DACs. Simplesmente supera o ATmega em todas as categorias. Tentei encontrar um controlador de 32 bits com um conjunto de recursos comparáveis e isso foi o melhor que pude fazer. Quanto custa esse chip? São US $ 2,34 em quantidades de 100: você obtém mais desempenho por menos dinheiro. Deve ser uma decisão fácil.
E o seu exemplo?
Para o seu exemplo de situação aqui ,
você tem uma matemática muito simples com números pequenos e uma exibição simples em um LCD (ou, na verdade, uma placa grande feita de números iluminados por LED de 7 segmentos seria mais visível e mais barata). Um controlador de 8 bits provavelmente é perfeitamente adequado para esta tarefa. No entanto, se você realmente não quer um LCD? O controlador de 8 bits se esforça para controlar até mesmo um monitor VGA de baixa resolução, enquanto você pode facilmente obter placas de desenvolvimento para controladores de 32 bits com saídas HDMI. E se você quiser exibi-lo em uma tela por enquanto, mas depois quiser conectá-lo a um cabo Ethernet na LAN da sua empresa e exibir os resultados no computador do supervisor no escritório do parque? Você pode facilmente obter controladores de 32 bits com barramentos de comunicação Ethernet integrados; não é possível fazer isso com um controlador de 8 bits.Xport , mas que contém um processador de 32 bits dentro dele.
Para projetos pontuais, eu recomendaria um controlador de 32 bits sempre. Seu tempo é simplesmente mais valioso do que a diferença de preço entre controladores de 8 e 32 bits.
Com relação aos processadores de 7 bits que você mencionou, provavelmente nunca houve e nunca haverá tais máquinas. Do ponto de vista arquitetônico, é mais sensato usar larguras de bits com potências de 2.
fonte
O tamanho do bit de uma CPU está relacionado a algumas características que geralmente caminham juntas:
Para alguns processadores, todas essas quantidades têm o mesmo valor. Para outros, eles podem ter valores diferentes. O Z80, embora inclua alguns registros de 16 bits, usa registradores de 8 bits para a maior parte de seu conjunto de instruções e requer ciclos extras para quase todas as instruções que operam em quantidades de 16 bits (a única exceção é EX DE, HL); é uma CPU de 8 bits. Algo como o 68008, no entanto, não pode ser muito bem descrito usando apenas um
N
: ele possui um conjunto de instruções que pode operar principalmente em quantidades de 32 bits e pode IIRC mover dados entre registradores 32 bits por vez, mas sua ALU primária é apenas 16 bits e seu barramento de memória é de apenas 8 bits. Dependendo do que se está medindo, ele pode ser considerado como uma CPU de 32 bits, 16 bits ou 8 bits.fonte