Que signifie "N-Bit"?
Désolé si ce premier paragraphe est un peu trop bas, mais il est proposé dans l'espoir qu'il puisse aider les futurs lecteurs: un nombre, représenté par N chiffres dans la base M, ne peut être aussi grand que MN. Par exemple, avec 9 chiffres décimaux (base 10), vous ne pouvez écrire que des nombres jusqu'à 10 ^ 9 ou zéro à 999 999 999. Avec 8 chiffres binaires (base 2) (un "chiffre binaire" est un "bit"), vous pouvez stocker 2 ^ 8 = 256 chiffres.
Un microcontrôleur ou processeur est appelé «N-bit» car les contrôleurs et les processeurs ont une largeur de données fondamentale. Chaque registre peut être N bits, chaque instruction peut être N bits, le bus de données peut être N bits, la mémoire peut être adressée avec N bits. Surtout au niveau inférieur, il existe des exceptions à cette règle: par exemple, un contrôleur 8 bits peut avoir un bus mémoire 12 bits, mais comme vous pouvez le deviner, il est difficile de travailler avec lorsque vos registres ne contiennent que 8 bits. Cependant, tous les processeurs ont une largeur de type de données natif fondamental. Considérez le code suivant:
uint32_t x,y,z; // Declare 3 32-bit variables
z=x + y; // Add two of them to store in the third
Si vous ne pouvez ajouter que des nombres à 8 bits, comment effectueriez-vous cette opération? Vous devez diviser chaque variable en 4 nombres de 8 bits, effectuer les ajouts et les transporter individuellement, puis les fusionner pour obtenir le résultat. Cela prendrait au moins 16 instructions! Cependant, sur un processeur 32 bits, c'est une seule instruction aussi simple que mul r0, r1, r2
. Comme vous pouvez le voir dans cet exemple simple, des largeurs de bits de processeur plus importantes peuvent traiter plus de données plus rapidement.
Notes historiques
La tendance à travers l'histoire est passée de plus petites largeurs de bits à des plus grandes. Au début des années 1970, Intel a sorti le 4004, le premier contrôleur monopuce. C'était un processeur 4 bits. Parce que les transistors étaient grands et énergivores, et parce que la conception était révolutionnaire et compliquée, c'était tout ce qui pouvait être pressé sur la puce. Peu de temps après, ils ont sorti le 8008, un processeur 8 bits. Il y a peu de processeurs 4 bits encore utilisés, mais il y a beaucoup de contrôleurs 8 bits, le PIC et l'AVR sont des exemples contemporains encore couramment utilisés. Plus de processeurs 8 bits ont été fabriqués que tout autre type! Ce sont toujours les contrôleurs les plus populaires pour les tâches petites, simples et économiques. La prochaine transition évidente a été vers les contrôleurs 16 bits, mais ceux-ci n'ont pas eu la portée de leurs frères 8 bits ou 32 bits. Au lieu, il y a eu un saut aux processeurs 32 bits, comme ceux conçus par ARM et conçus dans les processeurs PC d'il y a quelques années. Il n'y a pas eu de microcontrôleurs 64 bits importants à ma connaissance, bien qu'ils soient désormais bien en vue sur les PC.
8 bits contre 32 bits
De loin, les types les plus populaires sont les processeurs 8 bits et 32 bits. Les processeurs 32 bits deviennent de plus en plus populaires. Chaque année, un magazine spécialisé publie un article intitulé "Is 8-bit dead?" Les processeurs 32 bits deviennent de plus en plus populaires, plus puissants et moins chers, ne laissant que trois raisons de choisir un processeur 8 bits:
- Inertie - Si vous avez du code et de l'expérience avec un processeur 8 bits, vous pouvez ne pas obtenir un retour sur investissement suffisant en convertissant tout en une architecture 32 bits.
- Faible puissance - Chaque transistor d'un contrôleur dissipe la puissance, et bien que la taille ne soit plus un problème, les processeurs 32 bits ont plus de transistors et dissipent donc plus de courant dans leur état bloqué. Ce n'est un problème que dans les conceptions extrêmes à pile bouton.
- Faible coût - Si vous n'avez besoin que de quelques dizaines d'instructions d'assemblage et de 2 broches d'E / S, même un processeur 8 bits est probablement exagéré. À l'extrémité inférieure, les contrôleurs 8 bits les moins chers sont inférieurs à 0,40 $ en vrac, mais les processeurs 32 bits les moins chers sont toujours à 0,80 $ environ, mais sont beaucoup plus puissants que les alternatives 8 bits. Si vous essayez de construire un jouet avec une seule LED clignotante pour le prochain million de Happy Meals, c'est une baisse de prix convaincante, sinon cela ne fait pas vraiment de différence.
Les processeurs 32 bits deviennent de plus en plus omniprésents, mais il y a peu de signes que le processeur 8 bits disparaisse comme les processeurs antiques 4 bits pour ces trois raisons.
Arduino comme exemple
Considérez une application comme l' Arduino .
L'Arduino utilise un contrôleur Atmel, un ATmega32 8 bits . L'ATmega fonctionne à 20 MHz, dispose de 4 000 RAM, de communications SPI, I2C et UART, de quelques interruptions matérielles et de 8 ADC 10 bits. Cette puce coûte 3,90 $ en quantités de 100.
Une puce 32 bits similaire pourrait être une autre partie d'Atmel, un AT-SAM3 32 bits utilisant le noyau ARM Cortex-M3 partagé. Cette puce fonctionne à 64 MHz (3 fois plus vite, mais n'oubliez pas que l'ATmega prend 16 instructions pour effectuer un seul ajout 32 bits). Il a 16k de RAM, 4 fois plus que l'ATmega. Il dispose de périphériques I²C, MMC, SPI, SSC, UART et même USB. Il dispose de DMA (accès direct à la mémoire, le rend également plus rapide et plus efficace), d'un ensemble d'interruptions flexible et puissant, de 10 ADC 12 bits et de 2 DAC. Il surclasse simplement l'ATmega dans toutes les catégories. J'ai essayé de trouver un contrôleur 32 bits qui avait un ensemble de fonctionnalités comparable, et c'était le mieux que je pouvais faire. Combien coûte cette puce? C'est 2,34 $ en quantités de 100: vous obtenez plus de performances pour moins d'argent. Cela devrait être une décision facile.
Et votre exemple?
Pour votre exemple de situation ici ,
Le nombre de voitures entrant et sortant d'un parking doit être compté et le nombre affiché sur un écran LCD. Un maximum de dix voitures sont autorisées dans le parking.
vous avez des calculs très simples avec de petits nombres et un affichage simple sur un écran LCD (ou vraiment, un grand panneau composé de chiffres éclairés par LED à 7 segments serait plus visible et moins cher). Un contrôleur 8 bits est probablement parfaitement adapté à cette tâche. Cependant, si vous avez vraiment ne voulez un écran LCD? Le contrôleur 8 bits aura du mal à piloter même un écran VGA basse résolution, tandis que vous pouvez facilement obtenir des cartes de développement pour les contrôleurs 32 bits dotés de sorties HDMI. Que faire si vous souhaitez l'afficher sur un écran pour l'instant, mais que vous souhaitez ensuite le connecter à un câble Ethernet sur le réseau local de votre entreprise et afficher les résultats sur l'ordinateur du superviseur au bureau du parc? Vous pouvez facilement obtenir des contrôleurs 32 bits avec des bus de communication Ethernet intégrés, vous ne pouvez pas le faire avec un contrôleur 8 bits.Xport , mais qui contient un processeur 32 bits.
Pour les projets ponctuels, je recommanderais à chaque fois un contrôleur 32 bits. Votre temps est tout simplement plus précieux que la différence de prix entre les contrôleurs 8 et 32 bits.
En ce qui concerne les processeurs 7 bits que vous avez mentionnés, il n'y a probablement jamais eu et il n'y aura jamais de telles machines. D'un point de vue architectural, il est plus judicieux d'utiliser des largeurs de bits qui sont des puissances de 2.