Étape 3: Réflexions sur les Architectures
Vous entendrez les gens parler de comment certaines architectures sont mieux que d’autres. Je suppose que c’est vrai. Mais je vais prétendre qu’il est en grande partie non pertinente pour l’amateur de typique. Si vous souhaitez éviter les caprices architectes d’une famille particulière de microcontrôleurs, vous pouvez utiliser un langage de haut niveau. Si vous êtes prêt à programmer dans l’assembleur, vous êtes à un niveau d’intérêt où apprentissage et surmonter les bizarreries est parti de l’étoffe que vous devriez apprendre. En outre, nous parlons pas ici d’évaluant une nouvelle architecture que certaine compagnie propose. Toutes les puces j’ai mentionner dans ce instructable ont été assez longtemps qu’ils ont prouvé que leurs architectures sont assez bonnes pour de nombreuses applications réelles.
Voici quelques « architecturales », vous pouvez lire et des explications sur ce qu’ils signifient.
CDIC/RISC. Complexe Instruction Set Computer. Reduced Instruction Set Computer.
Dans l’ancien temps, les concepteurs de CPU devenaient intelligents et voulaient leur CPU pour prendre en charge de fonctionnalités de langage de haut niveau au niveau matériel, conduisant à des instructions de manipulation cobol-comme chaîne qui accepte des arguments dans des blocs de 8 registres. IIRC, c’était à Berkeley et IBM qui a remarqué que rédacteurs de compilateur ne savaient pas vraiment comment utiliser ces instructions compliquées un compilateur, la quantité de silicium biens immobiliers utilisés par ces instructions devenait grande et en fait, la mise en œuvre du matériel parfois n’était pas aussi rapide que de faire la même chose dans le logiciel de toute façon. Alors ils ont dit "Je parie que nous pouvons faire le CPU aller beaucoup plus vite si nous laissons ces instructions complexes et consacrer le silicium à des registres plus ou la mémoire cache ou quelque chose" et a ainsi inventé le processeur RISC. Aujourd'hui « RISC » est largement utilisé par les départements de marketing pour signifier « nous n’avons pas beaucoup d’instructions », même si le reste de l’architecture n’est pas tout à fait comme les chercheurs RISC originales avaient imaginé.
Architecture de Harvard.
Dans une architecture de Harvard, la mémoire de l’instruction et la mémoire sont séparés, contrôlée par des bus différents et parfois ont des tailles différentes. Pour les microcontrôleurs, les instructions sont généralement stockées dans la mémoire de « lecture seule », et les données sont en RAM ou registres. Un exemple est la
Microcontrôleur PIC, où les instructions sont de 12, 14 ou 16 bits de large flash, et les données sont en 8 bits
RAM de large.
Architecture de von Neuman.
Dans un von Neuman espace de mémoire part Architecture, les données et les instructions, alors vous pourriez faire des choses comme la compilation dynamique pour générer des instructions dans la mémoire RAM et puis les exécuter. Le TI MSP430 est un exemple d’une architecture de von Neuman.
Accumulateur basé
Dans une architecture « accumulateur basé », il y a généralement un registre « spécial » où se produit la plupart du calcul réel (mathématiques, logique, etc.). Quelques efforts doit être dépensée pour entrer des opérandes dans l’accumulateur et les résultats retour à où vous en avez besoin. Le contraire est un processeur avec des registres « généraliste », où un de plusieurs registres peut être utilisé pour math/etc.
Load/Store
Une architecture load/store signifie généralement que les opérandes pour opérations ALU doivent dans les registres, afin que vous ayez à les charger dans la mémoire au préalable et les stocker à l’époque où les opérations sont terminées. L’inverse permet généralement des opérations entre un registre ou
accumulateur et un emplacement de mémoire directement. Architectures RISC tendent à être load/store, puisque beaucoup ou les processeurs CISCness du CDCI apparaît dans l’application complexes « modes d’adressage » pour accéder à des opérandes de mémoire. Dans une architecture RISC, toute cette complexité ne doit être mis en œuvre dans la charge et stocker des instructions (voire pas du tout.)
Les registres
Memory Mapped i/o