update
BIN
Writerside/images/image_20.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Writerside/images/image_21.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Writerside/images/image_22.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
Writerside/images/image_23.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Writerside/images/image_24.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
Writerside/images/image_25.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
Writerside/images/image_26.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
Writerside/images/image_27.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
Writerside/images/image_28.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
Writerside/images/image_29.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
Writerside/images/image_30.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
Writerside/images/image_31.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
Writerside/images/image_32.png
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
Writerside/images/image_33.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Writerside/images/image_34.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
Writerside/images/image_35.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
Writerside/images/image_36.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
Writerside/images/image_37.png
Normal file
After Width: | Height: | Size: 49 KiB |
@ -13,5 +13,8 @@
|
|||||||
</toc-element>
|
</toc-element>
|
||||||
<toc-element toc-title="Rechnerarchitektur">
|
<toc-element toc-title="Rechnerarchitektur">
|
||||||
<toc-element topic="Historie.md"/>
|
<toc-element topic="Historie.md"/>
|
||||||
|
<toc-element topic="Prozessorkonzepte.md">
|
||||||
|
<toc-element topic="MU0Rechner.md"/>
|
||||||
|
</toc-element>
|
||||||
</toc-element>
|
</toc-element>
|
||||||
</instance-profile>
|
</instance-profile>
|
@ -1,54 +1,89 @@
|
|||||||
# Topic title
|
# Historie
|
||||||
|
|
||||||
```timeline
|
|
||||||
[line-3, body-4, active-color-background-modifier-error-hover]
|
|
||||||
|
|
||||||
+ 1100 v.Chr
|
|
||||||
+ [[Abakus]]
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 60 n.Chr
|
|
||||||
+ [[Die ersten Automaten]]
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 12 - 14 Jahrhundert
|
|
||||||
+ [[Die Zeit der Uhrmacher]]
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 17 Jahrhundert
|
|
||||||
+ [[Napierstäbchen]], [[Mechanische Rechenmaschine]],
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 18 Jahrhundert
|
|
||||||
+ [[Die ersten Lochkartenautomation]]
|
|
||||||
+
|
|
||||||
asd
|
|
||||||
+ 19 Jahrhundert
|
|
||||||
+ [[Charles Babbage|Differenzengine & Analytical Engine]], [[Vorlesungen_RA.pdf#page=49|Ada Lovelace]], [[Parallelisierung]]
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 1927 - 1940
|
|
||||||
+ (Elektro-)mechanische Rechenmaschinen
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 1940 -1955
|
|
||||||
+ Elektronenröhren, Relais, Steckfelder, [[Zuse Z3]], [[ENIAC]], [[EDSAC]], [[EDVAC]]
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 1955 - 1965
|
|
||||||
+ [[Transistoren]], [[Stapelverarbeitung]], [[Mainframes]], [[Minicomputer]]
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 1965 - 1980
|
|
||||||
+ Integrierte Schaltungen, Dialogbetrieb
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 1980 - 2000
|
|
||||||
+ Hochintegrierte Schaltungen, [[Mikrocomputer|PCs/Workstations]]
|
|
||||||
+
|
|
||||||
|
|
||||||
+ 2000
|
|
||||||
+ Verteilte Systeme, Mobile Systeme
|
|
||||||
+
|
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
stateDiagram
|
||||||
|
[*]--> ersteAutomaten
|
||||||
|
ersteAutomaten: 60 n Chr.
|
||||||
|
note right of ersteAutomaten
|
||||||
|
Alexandriner Heron entwickelte
|
||||||
|
viele Automaten z.B.
|
||||||
|
automatische Türen mit Hebeln
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
|
||||||
|
ersteAutomaten --> zeitDerUhrmacher
|
||||||
|
zeitDerUhrmacher: 1348-1364
|
||||||
|
note left of zeitDerUhrmacher
|
||||||
|
Giovanni de Dondi baute 1348-1364 die
|
||||||
|
erste Astronomische Uhr
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
note left of zeitDerUhrmacher
|
||||||
|
Eingabe: Takt
|
||||||
|
Ausgabe: Zeiger
|
||||||
|
Zahnräder: innerer Zustand
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
|
||||||
|
zeitDerUhrmacher --> astronomischeUhr
|
||||||
|
astronomischeUhr: 1354
|
||||||
|
note left of astronomischeUhr
|
||||||
|
Astronomische Uhr
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
|
||||||
|
astronomischeUhr --> lochkartenWebstuhl
|
||||||
|
lochkartenWebstuhl: 1725-1728
|
||||||
|
note right of lochkartenWebstuhl
|
||||||
|
Basile Bouchon 1725 und Jean
|
||||||
|
Babtiste Falcon 1728 erfanden
|
||||||
|
eine Apparatur die über
|
||||||
|
Lochkarten gesteuert wurde
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
|
||||||
|
lochkartenWebstuhl --> jaquesDesVaucanson
|
||||||
|
jaquesDesVaucanson: 1745
|
||||||
|
note left of jaquesDesVaucanson
|
||||||
|
Der mechanische Webstuhl wurde
|
||||||
|
durch Jacques de Vaucanson, einem
|
||||||
|
Erfinder um 1745 weiterentwickelt,
|
||||||
|
konnte sich aber immer noch nicht
|
||||||
|
durchsetzen
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
note left of jaquesDesVaucanson
|
||||||
|
Vaucanson entwickelte auch andere
|
||||||
|
Automaten, so die berühmte Ente
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
|
||||||
|
jaquesDesVaucanson --> jaquard
|
||||||
|
jaquard: Der Jaquard Webstuhl
|
||||||
|
note right of jaquard
|
||||||
|
erste frei programmierbare
|
||||||
|
Maschine, die in großer Menge
|
||||||
|
gefertigt wurde
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
note right of jaquard
|
||||||
|
Der Lochkartenstreifen ist der
|
||||||
|
erste Datenträger, der
|
||||||
|
austauschbare Programme trägt
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
|
||||||
|
jaquard --> lochkartenSteuerungMusik
|
||||||
|
lochkartenSteuerungMusik: Ende 17. Jhd
|
||||||
|
note left of lochkartenSteuerungMusik
|
||||||
|
Drehorgeln, Orchestrion
|
||||||
|
(stellt ganzen Orchester dar)
|
||||||
|
Konnte noch nicht speichern
|
||||||
|
_
|
||||||
|
end note
|
||||||
|
|
||||||
|
lochkartenSteuerungMusik --> ersteRechenmaschine
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
177
Writerside/topics/RA/MU0Rechner.md
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
# MU0-Rechner
|
||||||
|
## Historie
|
||||||
|
- **SSEM** _Small Scale Experimental Machine_ erste erfolgreiche Implementierung des Von-Neumann-Rechners
|
||||||
|
- 1948 erstmals Programm aus dem Speicher ausgeführt
|
||||||
|
|
||||||
|
## Elemente
|
||||||
|

|
||||||
|
- **[Steuerwerk](MU0Rechner.md#steuerwerk)**
|
||||||
|
- _Control_ - Takt, Steuerlogik
|
||||||
|
- _IR - Instruction Register_ - speichert den aktuellen Befehlscode
|
||||||
|
- _PC - Programm Counter_ - speichert die aktuelle Programmadresse
|
||||||
|
- **Rechenwerk**
|
||||||
|
- _[ALU](MU0Rechner.md#alu) - Arithmetic Logic Unit_ - kann rechnen
|
||||||
|
- _ACC - Akkumulator_ - Ergebnis Register für Rechnungen
|
||||||
|
- **[Speicherwerk](MU0Rechner.md#speicher)**
|
||||||
|
- _Memory_ - speichert Programme und Daten
|
||||||
|
- **Bus** - verbindet alle Elemente
|
||||||
|
|
||||||
|
### Steuerwerk
|
||||||
|
- Steuert Elemente mithilfe von Steuersignalen
|
||||||
|
- Besteht aus
|
||||||
|
- Ablaufsteuerung / Steuerlogik
|
||||||
|
- Dekodierer
|
||||||
|
- Befehlsregister IR
|
||||||
|
- Befehls-Zähler PC
|
||||||
|
- **Endlicher Automat, der gemäß der Steuerlogik Steuersignale schaltet**
|
||||||
|
- führt für jeden Befehl ein Mikroprogramm aus Mikroschritten aus
|
||||||
|
|
||||||
|
### Register
|
||||||
|

|
||||||
|
- Zwischenspeicher
|
||||||
|
- Register-Größe: 1 Wort (16 Bit)
|
||||||
|
- Arbeitsmodus Lesen / Schreiben
|
||||||
|
- _output enable_ liegt an → Daten ausgeben (schreiben)
|
||||||
|
- _input enable_ liegt an → Daten einlesen
|
||||||
|
- Ausgeben und Lesen erfolgt jeweils beim Flankenwechsel
|
||||||
|
- Ausgeben erfolgt einen halben Takt früher als das Lesen, sodass ein Register in einem Zyklus schreiben und lesen kann
|
||||||
|
- 
|
||||||
|
|
||||||
|
### Speicher
|
||||||
|
- Stelle im Speicher wird über eine Adresse angesprochen
|
||||||
|
- Adresse wird vom Adressbus gelesen
|
||||||
|
- Daten werden vom Datenbus gelesen bzw. geschrieben
|
||||||
|
- 
|
||||||
|
|
||||||
|
### Datenpfade
|
||||||
|
- je nach Steuerungscode lesen / schreiben
|
||||||
|
- geschriebene Daten liegen an Datenpfad an
|
||||||
|
- immer nur 1 Element schreiben
|
||||||
|
- 
|
||||||
|
|
||||||
|
### ALU
|
||||||
|
- über Steuercode wird Funktion ausgewählt
|
||||||
|
- Eingang A, B führt aus
|
||||||
|
- mögliche Funktionen:
|
||||||
|
- A+Β
|
||||||
|
- A-B
|
||||||
|
- A*Β
|
||||||
|
- Konjunktion (logisches UND, bitweise)
|
||||||
|
- Disjunktion (logisches ODER, bitweise)
|
||||||
|
- Vergleich von A und B (bitweise)
|
||||||
|
- ...
|
||||||
|
|
||||||
|
## Beispiel für einen Befehlsablauf
|
||||||
|

|
||||||
|
|
||||||
|
## Der Rechenzyklus
|
||||||
|
### Fetch
|
||||||
|

|
||||||
|
1. Wert des Programmcounters auf den Adressbus legen
|
||||||
|
2. Programmcode aus dem Speicher in das Instructionregister lesen
|
||||||
|
3. ALU erhöht gleichzeitig Wert des PC und speichert diesen wieder zurück
|
||||||
|
|
||||||
|
### Decode/Execute/Write für Rechenoperationen
|
||||||
|

|
||||||
|
1. Adresse des Operanden aus dem Befehl dekodieren (1)
|
||||||
|
2. Wert des angesprochenen Speicherworts an einen Eingang des ALU schalten (2)
|
||||||
|
3. zweiter Eingang der ALU erhält seine Information vom Akkumulator (2)
|
||||||
|
4. Rechenoperation wird aus dem Befehl dekodiert und and der ALU über Steuercode gewählt (1)
|
||||||
|
5. Ergebnis der Rechnung wird wieder im Akkumulator gespeichert (3)
|
||||||
|
|
||||||
|
## Taktsynchronität
|
||||||
|
- Register sind Zwischenspeicher und arbeiten getaktet
|
||||||
|
- Daten liegen taktsynchron am Bus an
|
||||||
|
- ALU und Speicher sind nicht taktsynchron
|
||||||
|
- folgen Steuercodes und dem Inhalt auf dem Bus
|
||||||
|
|
||||||
|
## Umsetzung MU0-Struktur in Hardware
|
||||||
|
- Architektur muss in Gattern und getaktet umsetzbar sein
|
||||||
|
- Prinzip des minimalen Hardwareaufwands
|
||||||
|
|
||||||
|
- Festlegung der Wortbreite: 16 Bit
|
||||||
|
- [Datenpfad-Modell](MU0Rechner.md#datenpfad-modell)
|
||||||
|
- Steuerung der Elemente durch Steuercodes
|
||||||
|
- Befehle (Instruction Set)
|
||||||
|
- Kodierung der Befehle
|
||||||
|
- Steuerlogik
|
||||||
|
|
||||||
|
### Datenpfad-Modell
|
||||||
|

|
||||||
|
- bisheriges Bild lässt sich nicht 1:1 umsetzen
|
||||||
|
- ALU hat nur zwei Eingänge
|
||||||
|
- Getrennte Datenpfade für jeden ALU-Eingang
|
||||||
|
- Kontrolle der PFade für Daten und Adressen durch [Multiplexer](MU0Rechner.md#multiplexer)
|
||||||
|
|
||||||
|
#### Multiplexer
|
||||||
|

|
||||||
|
- Schalter, der durch Anlegen eines Steuersignals das ausgewählte Eingangssignal auf den Ausgang legt
|
||||||
|
|
||||||
|
#### Befehlsgruppen
|
||||||
|
- Multiplexer B steht auf 1 bei allen _Datenverarbeitungs-Befehlen_ und auf 0 bei allen _Sprung-Befehlen_
|
||||||
|
- Multiplexer A wird nur für _Fetchzyklus_ auf 0 gestellt
|
||||||
|
- ansonsten wird S (unterer Teil von IR) immer als Adresse interpretiert
|
||||||
|
- Bei _Sprung-Befehlen erfolgt kein Datenzugriff, S (IR) wird direkt nach PC verschoben
|
||||||
|
|
||||||
|
## Kennwerte
|
||||||
|
- Wortbreite des Prozessors: 16 Bit
|
||||||
|
- Registergröße
|
||||||
|
- Busbreite
|
||||||
|
- Eingänge/Ausgänge ALU
|
||||||
|
- Instruktionen immer 2 Takte lang
|
||||||
|
- Fetch + Instruction (= Execute): 2 Takte
|
||||||
|
- Schreiben + Lesen + Schreiben + Lesen: 4 Taktflanken
|
||||||
|
|
||||||
|
## Elemente und Steuercodes
|
||||||
|

|
||||||
|
|
||||||
|
## Speicher des MU0
|
||||||
|
- Steuersignale des Datenbus:
|
||||||
|
- MemRQ (Memory Request)
|
||||||
|
- Speicherbaustein wird angesprochen
|
||||||
|
- RnW(Read / not Write)
|
||||||
|
- gibt an, ob (von oder in) den Speicher geschrieben wird
|
||||||
|
- _Lesen bei High, Schreiben bei Low_
|
||||||
|
|
||||||
|
## Instruction Set des MU0-Rechners (Befehlssatz)
|
||||||
|

|
||||||
|
- Prozessor kennt keine Befehle
|
||||||
|
- zum **Laden und Speichern** von Werten
|
||||||
|
- zur **Berechnung**
|
||||||
|
- zur **Ablaufkontrolle**
|
||||||
|
|
||||||
|
- Die Instruktionen setzen sich zusammen aus
|
||||||
|
- einem 4 Bit Operation Code
|
||||||
|
- einer 12 Bit Adresse
|
||||||
|
→ 16 Befehle möglich
|
||||||
|
|
||||||
|
## MU0-Steuerlogik (_Kontroll-Logik_)
|
||||||
|

|
||||||
|
|
||||||
|
### Fetchen
|
||||||
|

|
||||||
|
|
||||||
|
### ADD S
|
||||||
|

|
||||||
|
|
||||||
|
## Ein erstes MU0-Programm
|
||||||
|

|
||||||
|
|
||||||
|
## Fazit
|
||||||
|
- Elemente der von-Neumann-Architektur
|
||||||
|
- Steuerwerk, Rechenwerk, Speicherwerk, I/O
|
||||||
|
- Speicherprogrammiert
|
||||||
|
- Programme (& Daten) liegen im Speicher
|
||||||
|
- Architektur muss in Gattern umsetzbar sein
|
||||||
|
- Datenpfad & Steuertabelle
|
||||||
|
- Von-Neumann-Zyklus: Fetch-Decode-Execute-Write
|
||||||
|
- Steuerlogik wird über Opcodes (Befehle) abgefragt und generiert Steuercodes
|
||||||
|
|
||||||
|
- MU0 ist ein Modellrechner zum Lernen
|
||||||
|
- 16-Bit Wortbreite, binär
|
||||||
|
- Register: PC, IR, ACC
|
||||||
|
- Befehlssatz (Instruction Set)
|
||||||
|
- 4-Bit OpCode erlaubt 16 Befehle, 8 sind implementiert
|
||||||
|
- Takt
|
||||||
|
- Immer 2 Zyklen pro Mikroprogramm
|
||||||
|
|
28
Writerside/topics/RA/Prozessorkonzepte.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Prozessorkonzepte
|
||||||
|
|
||||||
|
## Was sollte ein Rechner können
|
||||||
|
- Rechnen
|
||||||
|
- **`+` `-` `*` `/`**
|
||||||
|
- **Datenbewegung** (kopieren)
|
||||||
|
- **Strukturierte Lösung eines Problems**
|
||||||
|
- Abfolge von Rechenoperationen
|
||||||
|
- Verwendung von Daten, indirekte Adressierung, Pointer
|
||||||
|
- Schleifen, Sprünge
|
||||||
|
- Unterprogramme (Strukturen)
|
||||||
|
- **Spezielle Befehle** (z.B. Interrupts zur Anbindung von Peripherie)
|
||||||
|
- **Performance**
|
||||||
|
- Optimierung der Datenzugriffe (schneller)
|
||||||
|
- mehr Daten
|
||||||
|
- spezielle Algorithmen z.B. Graphik, Audio-Codecs, ...
|
||||||
|
- **Energieeffizienz**
|
||||||
|
|
||||||
|
## Von-Neumann-Rechner (Speicherprogrammierter Rechner)
|
||||||
|
Veröffentlicht 1945
|
||||||
|

|
||||||
|
- _Arithmetic Logic Unit_ - Rechenwerk
|
||||||
|
- _Control Unit_ - Steuerwerk
|
||||||
|
- _Memory_ - Speicherwerk
|
||||||
|
- _Input/Output_ - Ein-/Ausgabewerk
|
||||||
|
|
||||||
|
## MU0 - MU7
|
||||||
|
### [MU0 - Rechner: Basiskonzept](MU0Rechner.md)
|