Mikrocontroller / CPU-Designbuch? [abgeschlossen]

Ich suche ein Buch zur Einführung in das Design von CPUs/Mikrocontrollern/Mikroprozessoren. Irgendwelche Ideen? ARM oder x86 sind beide großartig. Ich habe ein großartiges Assembler-Sprachbuch, aber ich suche nach etwas mehr auf technischer Ebene. Oder sind sie vielleicht gleich? Vielleicht existiert es nicht, oder vielleicht muss ich meine Frage verfeinern, aber alles würde helfen. Vielen Dank.

Suchen Sie ein Buch über den Entwurf von CPUs oder über die Verwendung von CPUs?
Microchip (Link) ist ein Unternehmen, das integrierte Schaltkreise verkauft. Ein Mikrocontroller (Link) ist eine Art Mikroprozessor, der Peripheriegeräte wie flüchtigen und/oder nichtflüchtigen Speicher, Allzweck-E/A und andere Hardware-Peripheriegeräte hinzufügt. Ich habe Ihre Frage bearbeitet, weil ich glaube, dass Sie beabsichtigten, "Mikrocontroller" zu verwenden, aber Sie können die Änderung gerne rückgängig machen, wenn Sie mehr über das Unternehmen erfahren möchten (obwohl ich mir vorstelle, dass Sie dort einen Job brauchen, um Details über dessen Unternehmen zu erfahren Prozessoren...)
Danke reemrevnivek - Mikrocontroller-Architektur ist definitiv zum gleichen Thema

Antworten (6)

Ich arbeite gerade an so etwas, bin aber noch nicht bereit, etwas davon zu veröffentlichen. (zumindest nicht öffentlich)

Ich denke, Sie müssen Ihre Frage jedoch bearbeiten / verfeinern. Einen allgemeinen Stich auf die Frage nehmen. Ich würde mit etwas Einfacherem als ARM und x86 beginnen und x86 insgesamt vermeiden.

Ein Assembler-Buch zu haben bedeutet, dass Sie ein Programmierer sind oder einige Programmierkenntnisse haben. Ich weiß nicht, ob Ihre Frage eher von der Programmierseite oder der Seite des digitalen Designs stammt.

Wenn Sie von der Programmiererseite kommen, würde ich damit beginnen, Assembler für msp430 und Arm oder Daumen zu lernen (spielen Sie sich noch nicht mit x86 herum, es ist keine gute Architektur), vielleicht PIC (älteres Bild, nicht das dspic noch das Bild32). Schreiben Sie dann einen Disassembler und/oder einen Befehlssatzsimulator. Wenn es sich nur um einen Disassembler handelt, wählen Sie einen Befehlssatz mit nicht variabler Wortlänge wie ARM oder Daumen (ja, wenn Sie darüber nachdenken, können Sie mit diesem Verzweigungsbefehl umgehen) oder PIC. Schreiben Sie schließlich einen Befehlssatzsimulator, zumindest genug davon, um eine Handvoll Befehle und eine Verzweigung zu implementieren, und lassen Sie ihn in einer Schleife ausführen. Studieren Sie dann Zustandsautomaten und schreiben Sie den Simulator mit Zustandsautomaten neu. Ich habe einen Befehlssatzsimulator, der nicht unbedingt vollständig auf Zustandsmaschinen basiert, aber Ihnen vielleicht ein Gefühl dafür gibt, wovon ich spreche. suche auf github nach thumbulator. Mein Benutzername ist dort dwelch67.

Wenn Sie dies aus der Perspektive eines Elektroingenieurs angehen, sollten Sie sich Opencores ansehen. Die Lesbarkeit und andere Funktionen des HDL mögen schwierig sein, aber es ist da draußen, um konsumiert zu werden. verilator und icarus verilog sind gute Verilog-Simulatoren. Ich mag Verilator teilweise mehr, weil es so starr mit dem Verilog-Parsing ist und zweitens ist es super einfach, die C/C++- und HDL-Grenze zu überschreiten, um Software zu schreiben, die mit der simulierten Hardware kommuniziert, und andere wiederverwendbare Dinge. Es gibt eine winzige namens mcpu oder so ähnlich, auf die das Ganze gedruckt etwa auf eine Seite passt. Sie müssen sich wirklich überlegen, wie man ein Programm mit nur einer oder zwei echten Operationen schreibt (ich glaube, es hat nur ein NOR). Wenn Sie Elektrotechniker sind und einen Crashkurs in Digital brauchen, sind die Transistoren immer gesättigt, im Wesentlichen werden sie als elektrisch gesteuerte Schalter verwendet. Nehmen Sie ein Paar davon mit etwas Verdrahtung und anderen Komponenten und Sie können UND- und ODER-Gatter herstellen, einen invertierenden Transistor hinzufügen und ein NICHT-Gatter erstellen, das NAND und NOR zulässt. Sie werden etwas über Zustandsmaschinen lernen wollen, wenn Sie es noch nicht wissen.

Im Allgemeinen müssen Sie die grundlegende Logik UND, ODER, NICHT usw. verstehen. Lernen Sie Zustandsmaschinen kennen, die entweder mit Software oder Hardware gut funktionieren, das Konzept ist dasselbe. Zurücksetzen und Takten sind eigentlich Teil des Lernens der Zustandsmaschine. Das Starten der Zustandsmaschine und das Denken in Bezug auf jeden Durchgang durch die Logik / den Code ist ein Taktzyklus in der CPU, und Ihre Zustandsvariablen werden bei jedem Durchgang verwendet, um anzuzeigen, was zu tun ist während dieses Taktzyklus, was ist der aktuelle Zustand, und basierend auf dem aktuellen Zustand und den Eingaben, was der nächste Zustand sein wird, usw.

Wow. danke - ich schätze alle infos. Ich komme definitiv aus dem Programmierer-Hintergrund, aber ich interessierte mich für die Elektrotechnik-Perspektive. Ich hatte gehört, dass x86 nicht das Beste sei und dass es vor einiger Zeit hätte ersetzt werden "sollten".

Ich würde vorschlagen, einen modernen Computer von Grund auf zu bauen . Wie der Titel schon sagt, durchläuft es den Prozess des Baus eines Computers von den grundlegenden Logikgattern aufwärts. Sehen Sie sich hier die Bewertungen auf Amazon an .

Die Website des Autors enthält tatsächlich ziemlich viele Informationen, sodass Sie selbst entscheiden können, ob es so aussieht, als würde es Ihren Anforderungen entsprechen.

Im Lehrbuchbereich ist Computerorganisation und -design einer der Klassiker. Ich bin mir nicht sicher, wie gut es für das Selbststudium funktioniert.

Ich habe dieses Buch in einem Kurs verwendet, in dem der Prof zum ersten Mal unterrichtete (also war es zunächst ein ziemlich grober Unterricht). Trotzdem fand ich das Buch äußerst hilfreich und ungewöhnlich verständlich.

Für ARM würde ich die ARM System-on-Chip-Architektur empfehlen .

Für die ARM-Architektur empfehle ich das Furber-Buch (ARM System-on-Chip-Architektur), aber es passt möglicherweise nicht zu "Einführung". (Wir haben es als Referenz in der ARM-Assembler-Klasse verwendet, für die es weniger geeignet ist). Für allgemeine Computerarchitektur liebe ich die Bücher von Hennessey / Patterson. Auch nicht gerade "Einführung" :)

Versuchen Sie Computerorganisation von Carl Hamacher. Wir haben es in unserer Universität verwendet, um digitale Computer und Mikroprozessorsysteme zu studieren