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-title="Rechnerarchitektur">
|
||||
<toc-element topic="Historie.md"/>
|
||||
<toc-element topic="Prozessorkonzepte.md">
|
||||
<toc-element topic="MU0Rechner.md"/>
|
||||
</toc-element>
|
||||
</toc-element>
|
||||
</instance-profile>
|
@ -1,54 +1,89 @@
|
||||
# Topic title
|
||||
# Historie
|
||||
|
||||
```timeline
|
||||
[line-3, body-4, active-color-background-modifier-error-hover]
|
||||
```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
|
||||
|
||||
+ 1100 v.Chr
|
||||
+ [[Abakus]]
|
||||
+
|
||||
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
|
||||
|
||||
+ 60 n.Chr
|
||||
+ [[Die ersten Automaten]]
|
||||
+
|
||||
zeitDerUhrmacher --> astronomischeUhr
|
||||
astronomischeUhr: 1354
|
||||
note left of astronomischeUhr
|
||||
Astronomische Uhr
|
||||
_
|
||||
end note
|
||||
|
||||
+ 12 - 14 Jahrhundert
|
||||
+ [[Die Zeit der Uhrmacher]]
|
||||
+
|
||||
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
|
||||
|
||||
+ 17 Jahrhundert
|
||||
+ [[Napierstäbchen]], [[Mechanische Rechenmaschine]],
|
||||
+
|
||||
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
|
||||
|
||||
+ 18 Jahrhundert
|
||||
+ [[Die ersten Lochkartenautomation]]
|
||||
+
|
||||
asd
|
||||
+ 19 Jahrhundert
|
||||
+ [[Charles Babbage|Differenzengine & Analytical Engine]], [[Vorlesungen_RA.pdf#page=49|Ada Lovelace]], [[Parallelisierung]]
|
||||
+
|
||||
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
|
||||
|
||||
+ 1927 - 1940
|
||||
+ (Elektro-)mechanische Rechenmaschinen
|
||||
+
|
||||
jaquard --> lochkartenSteuerungMusik
|
||||
lochkartenSteuerungMusik: Ende 17. Jhd
|
||||
note left of lochkartenSteuerungMusik
|
||||
Drehorgeln, Orchestrion
|
||||
(stellt ganzen Orchester dar)
|
||||
Konnte noch nicht speichern
|
||||
_
|
||||
end note
|
||||
|
||||
+ 1940 -1955
|
||||
+ Elektronenröhren, Relais, Steckfelder, [[Zuse Z3]], [[ENIAC]], [[EDSAC]], [[EDVAC]]
|
||||
+
|
||||
lochkartenSteuerungMusik --> ersteRechenmaschine
|
||||
|
||||
+ 1955 - 1965
|
||||
+ [[Transistoren]], [[Stapelverarbeitung]], [[Mainframes]], [[Minicomputer]]
|
||||
+
|
||||
|
||||
+ 1965 - 1980
|
||||
+ Integrierte Schaltungen, Dialogbetrieb
|
||||
+
|
||||
|
||||
+ 1980 - 2000
|
||||
+ Hochintegrierte Schaltungen, [[Mikrocomputer|PCs/Workstations]]
|
||||
+
|
||||
|
||||
+ 2000
|
||||
+ Verteilte Systeme, Mobile Systeme
|
||||
+
|
||||
|
||||
```
|
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)
|