Veröffentlicht am Schreib einen Kommentar

Hardwarekenntnisse für Programmierer

Hardwarekenntnisse für Programmierer

Hardwarekenntnisse für Programmierer

Die Von-Neumann-Architektur ist ein Modell, welches das für die Programmierung notwendige Basisverständis über die Funktion eines Computers vermittelt.

Autorin: Ursula Deriu

Software und Hardware

Elektroingenieure befassen sich mit der Hardware von Computern, also mit den elektronischen Bauteilen und deren Funktionsweise.

Programmierer schreiben Software für Computer. Damit sind Programme gemeint, welche den Computer eine bestimmte Funktionalität ausführen lassen. Ein Programmierer braucht ein gewisses Grundverständnis für die Hardware. Dieses verschafft er sich mit einem Modell.

Modelle sind für den Programmierer Hilfsmittel, um die Hardware so zu verstehen, dass er Programme korrekt schreiben kann.

Von-Neumann-Architektur

Die Von-Neumann-Architektur ist  eines der frühesten Modelle und es ist immer gut geeignet, um als Anfänger der Programmierung den Einstieg in die Thematik zu finden. Wir betrachten die einfachste Darstellung der Von-Neumann-Architektur. Sie umfasst die folgenden Elemente:

Prozessor (CPU)

Der Prozessor (auch CPU, Central Processing Unit – Zentraleinheit) – ist die wichtigste Komponente eines Computers. Hier wird die eigentliche Rechenarbeit erledigt. Verarbeitet werden Folgen von Bits. Diese werden in Registern gehalten, das sind spezielle Bereiche, in welchen Rechenoperationen ausgeführt werden können.

Aus Sicht der Elektronik handelt es sich bei Bits um Schalterzustände. Aus Sicht der Programmierer können Bits die Werte 0 und 1 annehmen. Die CPU verarbeitet also eine Folge von 0- und 1-Werten. Dabei werden die Regeln der Bool‘schen Logik und der Arithmetik berücksichtigt.

Memory (RAM)

Das Memory (genauer RAM = Random Access Memory)– hier werden Zwischenergebnisse festgehalten, oder auch ganze Programme geladen, um sie schneller verarbeiten zu können. Wird der Rechner ausgeschaltet, dann geht der Inhalt des Memorys verloren. Erst beim Wiederhochfahren des Computers, erhält das Memory wieder Inhalte.

Von-Neumann-Architektur
Schematische Darstellung der Von-Neumann-Architektur

Input- und Output-Devices (I-O Devices)

Ein Computer ist nicht Selbstzweck sondern er verarbeitet Daten, welche er durch ein Eingabegerät erhält und gibt sie weiter an ein Ausgabegerät. Input- und Output-Geräte, also Ein- und Ausgabegeräte, sind sehr vielfältig, vom Touchscreen, über die Tastatur, eine Festplatte oder anderen Computern, ist nahezu alles denkbar.

Festplatte

Eine Festplatte, neu auch ein SSD (Solid State Drive) ist ein spezieller Datenspeicher erhält Daten dauerhaft, d.h. sie bleiben erhalten, auch wenn der Computer ausgeschaltet wird.

Bus

Ein Bus (Control-Bus, Address-Bus, Data-Bus) dient dazu, Kontroll-Information, Adressen und Daten zwischen der CPU dem Memory und den Input- und Output-Geräten zu transportieren.

Die von Neumann Architektur ist eine Referenzarchitektur. Seit ihrere Entwicklung wurde sie weiter verbessert und es kamen weitere Architekturen dazu.

Das Verständnis der von Neumann Architektur ist hilfreich, um Programmieren zu lernen.

Raspberry Pi als Beispiel einer realisierten Von-Neumann Architektur

Raspberry Pi ist der beliebte Einplatinen-Rechner – Single-Board Computer (SBC). Auch dieser implementiert im Wesentlichen die von Neumann Architektur. Wer einen SBC erwirbt, erhält diesen meist eine Platine ohne Gehäuse geliefert. Die Platine enthält die gedruckte Schaltung. CPU, RAM und I-O Devices werden auf der Platine montiert, die Busse werden als Schaltung gedruckt.

Komponenten Raspberry Pi 4
Die wichtigsten Elemente der Von-Neumann-Architektur werden auf der Platine montiert. Die Busse werden "gedruckt" und sind als feine Linien auf der grünen Platine erkennbar.

Das Raspberry Pi verfügt über mannigfaltige Input- und Output-Devices: USB, Ethernet, HDMI. Es gibt kaum eine Device, die man nicht anschließen kann – Tastatur, Maus, Monitor, Kamera und vieles mehr.

Auch die Netzwerk-Verbindungen sind möglich, via Festnetz (Ethernet) oder auch via WiFi.

Die Busse sind aufgedruckt, wer genau hinsieht, erkennt die feinen Linien auf der grünen Platine.

Aus Sicht der Programmierer ist jeder  Computer ist so aufgebaut – ob ganz klein, beispielsweise als Smart-Watch oder ganz groß, wie bei einem Server in einem Rechenzentrum. Und das schon seit den ersten Computern und daran hat sich nicht viel geändert. Elektro-Ingenieuresehen das anders: sie verbessern die einzelen Hardware-Komponenten und entwickeln neue I-O-Devices.

Welche Klammer bedeutet was? [] oder{} oder () oder gar (()) ?

Cheat Sheet für Python-Anfänger: Wichtigste Python-Datentypen

Die wichtigsten Built-in-Datentypen von Python auf einen Blick. Ein unverzichtbarer Spickzettel beim Durchstarten mit Python. Einfach herunterladen.

Mit Python Programmieren lernen
Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert