Frage:
Mikrocontroller / CPU-Designbuch?
kalaracey
2011-04-24 21:05:04 UTC
view on stackexchange narkive permalink

Ich suche nach einem Einführungsbuch zum Design von CPU / Mikrocontroller / Mikroprozessor. Irgendwelche Ideen? ARM oder x86 sind beide großartig. Ich habe ein großartiges Assembler-Sprachbuch, aber ich suche etwas mehr auf technischer Ebene. Oder vielleicht sind sie gleich? Vielleicht existiert es nicht, oder vielleicht muss ich meine Frage verfeinern, aber alles würde helfen. Vielen Dank.

BEARBEITEN: von Superuser migriert

BEARBEITEN: Ich komme aus einem grundlegenden Programmierhintergrund, suche aber etwas auf elektrotechnischer Ebene.

Suchen Sie ein Buch zum Entwerfen von CPUs oder zum Verwenden von CPUs?
Microchip [(Link)] (http://www.microchip.com/) ist ein Unternehmen, das integrierte Schaltkreise verkauft. Ein Mikrocontroller [(Link)] (http://en.wikipedia.org/wiki/Microcontroller) 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 "Mikrocontroller" verwenden wollten, aber Sie können die Änderung jederzeit rückgängig machen, wenn Sie mehr über das Unternehmen erfahren möchten (obwohl ich mir vorstelle, dass Sie dort einen Job benötigen, um Details über das Unternehmen zu erfahren Prozessoren ...)
Vielen Dank reemrevnivek - Mikrocontroller-Architektur ist definitiv das gleiche Thema
Sechs antworten:
#1
+8
Tim
2011-05-06 01:44:03 UTC
view on stackexchange narkive permalink

Ich würde vorschlagen, einen modernen Computer nach ersten Prinzipien zu bauen. Wie der Titel schon sagt, wird ein Computer von den grundlegenden Logikgattern an aufgebaut. Schauen Sie sich die Bewertungen auf Amazon hier an.

Die Website des Autors enthält tatsächlich eine Menge Informationen, sodass Sie selbst entscheiden können, ob es Ihren Anforderungen entspricht.

#2
+6
old_timer
2011-04-25 22:06:46 UTC
view on stackexchange narkive permalink

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 bei der Frage machen. Ich würde mit etwas Einfacherem als ARM und x86 beginnen und x86 insgesamt vermeiden.

Wenn Sie ein Assembler-Buch haben, müssen Sie Programmierer sein oder über Programmierkenntnisse verfügen. Ich weiß nicht, ob Ihre Frage eher von der Programmierseite oder vom digitalen Design stammt.

Wenn Sie von der Programmierseite kommen, würde ich zunächst Assembler für den msp430 und Arm oder Daumen lernen (spielen Sie noch nicht mit x86, es ist keine gute Architektur), vielleicht PIC (älter) pic, weder das dspic noch das pic32). Schreiben Sie dann einen Disassembler und / oder einen Befehlssatzsimulator. Wenn es sich nur um einen Dissassembler handelt, wählen Sie einen Befehlssatz mit nicht variabler Wortlänge wie ARM oder Daumen (ja, wenn Sie darüber nachdenken, können Sie diesen Verzweigungsbefehl verarbeiten) oder PIC. Schreiben Sie schließlich einen Befehlssatzsimulator, der mindestens ausreicht, um eine Handvoll Befehle und einen Zweig zu implementieren, und lassen Sie eine Schleife sehen, wie er ausgeführt wird. Dann lernen Sie Zustandsautomaten kennen und schreiben den Simulator mit Zustandsautomaten neu. Ich habe einen Befehlssatzsimulator, der nicht unbedingt vollständig auf einer Zustandsmaschine basiert, aber Ihnen möglicherweise das Gefühl dafür gibt, wovon ich spreche. Suche nach Thumbulator bei Github. Mein Benutzername ist dort dwelch67.

Wenn Sie sich dem aus Sicht eines Elektrotechnikers nähern, sollten Sie sich Opencores ansehen. Die Lesbarkeit und andere Merkmale 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 zum Teil, weil es beim Verilog-Parsing so starr ist und zweitens es super einfach ist, die C / C ++ - und HDL-Grenze zu überschreiten, um Software zu schreiben, um mit der zu simulierenden Hardware und anderen wiederverwendbaren Dingen zu kommunizieren. Es gibt eine winzige namens mcpu oder so ähnlich, auf die das Ganze auf einer Seite Papier passt, wenn sie gedruckt wird. Sie müssen sich wirklich darum kümmern, wie man ein Programm mit nur ein oder zwei realen Operationen schreibt (ich denke, es hat nur eine NOR). Wenn Sie Elektrotechniker sind und einen Crashkurs in Digital benötigen, sind die Transistoren immer gesättigt, im Grunde werden sie als elektrisch gesteuerte Schalter verwendet. Nehmen Sie ein Paar davon mit einigen Kabeln 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 sollten sich mit Zustandsautomaten vertraut machen, wenn Sie dies noch nicht wissen.

Im Allgemeinen müssen Sie die grundlegende Logik UND, ODER, NICHT usw. verstehen. Erfahren Sie mehr über Zustandsautomaten, die entweder mit Software oder Hardware einwandfrei funktionieren ist das Konzept das gleiche. Zurücksetzen und Takten sind tatsächlich Teil des Lernens der Zustandsmaschine. Das Starten und Denken der Zustandsmaschine in Bezug auf jeden Durchlauf durch die Logik / den Code ist ein Taktzyklus in der CPU, und Sie geben bei jedem Durchgang Zustandsvariablen an, um anzugeben, was zu tun ist während dieses Taktzyklus, was ist der aktuelle Zustand und basierend auf dem aktuellen Zustand und gibt ein, was der nächste Zustand sein wird usw.

Beeindruckend. danke - ich schätze alle Infos. Ich komme definitiv aus dem Programmierbereich, aber ich interessierte mich für die elektrotechnische Perspektive. Ich hatte gehört, dass x86 nicht das beste ist und dass es vor einiger Zeit "hätte ersetzt werden sollen".
#3
+4
Andy
2011-04-24 22:14:17 UTC
view on stackexchange narkive permalink

In der Lehrbuchdomäne ist Computerorganisation und -design einer der Klassiker. Ich bin mir jedoch nicht sicher, wie gut es für das Selbststudium funktioniert.

Ich habe dieses Buch in einem Kurs verwendet, in dem es das erste Mal war, dass der Professor unterrichtete (also war es anfangs ziemlich rau).Trotzdem fand ich das Buch äußerst hilfreich und ungewöhnlich verständlich.
#4
+2
stevenvh
2011-04-24 22:11:58 UTC
view on stackexchange narkive permalink

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

#5
+1
Wouter van Ooijen
2011-06-29 02:59:04 UTC
view on stackexchange narkive permalink

Für die ARM-Architektur habe ich das Furber-Buch (ARM System-on-Chip-Architektur) unterstützt, aber es passt möglicherweise nicht zur Einführung. (Wir haben es als Referenz in der ARM-Assemblyklasse verwendet, für die es weniger geeignet ist.) Für die allgemeine Computerarchitektur liebe ich die Hennessey / Patterson-Bücher. Auch nicht gerade 'einführend' :)

#6
+1
rrazd
2011-07-02 02:22:07 UTC
view on stackexchange narkive permalink

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



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...