![Page 1: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/1.jpg)
Thema 3
„von Neumann“ Architektur, CPU, Befehle
![Page 2: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/2.jpg)
zus. Literaturempfehlungen
/1/ John von Neumann: First draft of a report on the
EDVAC.
/2/ Meiling, Fülle: Mikroprozessoren und Mikrorechner.
Akademie-Verlang Berlin 1988. Kap. 2
/3/ Tanenbaum: Computerarchitektur.
Pearson Studium 2001.
![Page 3: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/3.jpg)
John von Neumann
geb. 28.12.1903 in
Budapest, Ungarn
gest. 8.2.1957 in
Washington DC, USA
![Page 4: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/4.jpg)
Rechnerarchitektur nach
„John von Neumann“
in der Arbeit vom 30.06.1945
“First draft of a report on the EDVAC”
wurden die Grundlagen gelegt:
5 wesentliche Bestandteile einer Rechenanlage:
Arithmetik-Einheit
Steuer-Einheit
Speicher-Einheit
Eingabe- und Ausgabekanäle
![Page 5: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/5.jpg)
Rechnerarchitektur nach
„John von Neumann“
Ausgabewerk
Rechenwerk
Steuerwerk
Eingabewerk Speicherwerk
Steuersignale Datensignale
![Page 6: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/6.jpg)
Eingabewerk DIN 44300
Ausgabewerk DIN 44300
Eine Funktionseinheit innerhalb eines digitalen
Rechensystems,
Mit der das System Daten
von außen her aufnimmt
nach außen hin abgibt
![Page 7: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/7.jpg)
Speicher(werk) DIN 44300
Eine Funktionseinheit innerhalb eines digitalen
Rechensystems,
die digitale Daten aufnimmt, aufbewahrt und abgibt.
![Page 8: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/8.jpg)
Speicher(werk) DIN 44300
Eine Funktionseinheit innerhalb eines digitalen
Rechensystems,
die digitale Daten aufnimmt, aufbewahrt und abgibt.
![Page 9: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/9.jpg)
Rechenwerk DIN44300
Eine Funktionseinheit innerhalb eines digitalen
Rechensystems, die Rechenoperationen ausführt.
- auch Vergleichen, Umformen,
Verschieben...
z.B. Addierschaltungen, Schieberegister,...
![Page 10: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/10.jpg)
Leitwerk (Steuerwerk)DIN44300
Eine Funktionseinheit innerhalb eines digitalen
Rechensystems,
die die Reihenfolge steuert in der die Befehle eines Programms
ausgeführt werden,
die diese Befehle entschlüsselt und dabei gegebenenfalls
modifiziert,
die die für die Ausführung erforderlichen digitalen Signale
abgibt.
![Page 11: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/11.jpg)
…
man unterscheidet:
Mikroprogramm-Leitwerk: CISC-Architektur
z.B. Z80, 68000, x86(bis 486), Mainframe
festverdrahtetes Leitwerk: RISC-Architektur
z.B SPARC, PowerPC, MIPS, ALPHA,
neuere x86 intern
![Page 12: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/12.jpg)
CPU
heute: Busstruktur...
Speicherwerk Rechenwerk
Steuerwerk
Befehle Daten Adressen
Ein- und Ausgabekanal
Datenbus Adressbus Steuerbus
}Sammelleitungen
![Page 13: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/13.jpg)
CPU, Prozessor (Desktop-Computer)
im Allgemeinen eine Einheit,
bestehend aus
Rechenwerk und
Steuerwerk
![Page 14: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/14.jpg)
‚reale‘ CPU Opteron (AMD64)
Copyright © by Digit-Life.com, amd.com
![Page 15: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/15.jpg)
Opteron Socket 940 Pinout ;-)
![Page 16: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/16.jpg)
CPU, Prozessor (Z80 Lerncomputer)
im Allgemeinen eine Einheit,
bestehend aus
Rechenwerk und
Steuerwerk
![Page 18: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/18.jpg)
Z80 CPU Pinout
A0..A15 Adressbus
D0..D7 Datenbus
Steuerbus: /M1
/MREQ
/IORQ
/RD
/WR
/RFSH
/HALT
/WAIT
/INT, /NMI
/RESET
/BUSRQ
/BUSAK
![Page 19: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/19.jpg)
Speicher (Desktop-Computer)
Gemeint ist der Arbeitsspeicher des Computers,
auch RAM genannt (Random Access Memory)
Größenordnung:
Desktop: 1-16GB
Server: …256 GB
![Page 20: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/20.jpg)
Ein-und Ausgabe (Desktop-Computer)
Display (mit Grafikkarte) Audio, Netzwerk, USB-Anschluss, Maus, Tastatur, … aber auch Festplatte, DVD-Laufwerk, Flash-Speicher,…
![Page 21: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/21.jpg)
Mini-Lerncomputer Raspberry Pi
![Page 22: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/22.jpg)
iPhone 3GS PCB
![Page 23: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/23.jpg)
Eigenschaften des vNR
Programme und Daten sind im Speicher in gleicher Weise
binär abgelegt.
die Bedeutung (Befehle, Daten, Adressen) ist nur aus dem Kontext
ersichtlich.
Programm- und Datenstrukturen sind für die Hardware nicht
erkennbar.
![Page 24: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/24.jpg)
...
Die Abarbeitung eines Befehls erfolgt in zwei
(bzw. drei) Phasen
Fetch-Phase:
Lesen eines Speicherwortes
Befehlszähler erhöhen
wenn weitere Operanden nötig, diese Worte lesen sowie
Befehlszähler erhöhen
Dekodieren des Befehls (Decode-Phase)
Execute-Phase
Ausführung der durch den Befehl vorgegebenen Operation,
evtl. schreiben eines Speicherwortes
![Page 25: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/25.jpg)
Modell-Rechner
00
01
02
03
04
05
06
07
08
09
0A
0B
...
CPU
IP
__
A
__
Register:
IP Instruction Pointer
A, B Register
IR Instruction Register
AR Address Register
Modellbefehle:
01 Laden vom Speicher in A
02 Schreiben von A in den Speicher
03 Kopieren A -> B
04 Addieren A = A + B
01
08
03
01
09
04
04
0A
04
03
IR AR
__ __
??
??
B
__
![Page 26: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/26.jpg)
Vorgänge auf dem Bus
CPU MEM I/O 00 … 01 … 02 … 03 … 04 … 05 … 06 … 07 … 08 … 09 … 0A … 0B … 0C … 0D … 0E … 0F …
Adressbus Datenbus Steuerbus
![Page 27: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/27.jpg)
*) ISA hier ‚Instruction Set Architecture‘
Maschinenprogrammierung, ISA*)
Codierung eines Programms ohne Nutzung einer
Höheren Programmiersprache
Nutzung der einzelnen CPU-Befehle
binäre Codierung notwendig
Vereinfachung: Assemblersprache
Anwendungen:
Spezialprogramme (Geschwindigkeit!)
eigentliche Geräteansteuerung (Treiber)
Betriebssystem-Kern
![Page 28: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/28.jpg)
Maschinen- bzw. Assemblercodierung Z80
Addition zweier Zahlen - Hexcode 1800 3A6418
1803 47
1804 3A6518
1807 80
1808 326618
1864 04
1865 03
1866 ?
Assembler-Code 1800 LD A,(SP1) 1803 LD B,A 1804 LD A,(SP2) 1807 ADD A,B 1808 LD (SP3),A ............. 1864 SP1 DB 04h 1865 SP2 DB 03h 1866 SP3 DB 00h
Demonstration
![Page 29: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/29.jpg)
Microprofessor MPF-1
Lerncomputer auf Z80
Basis
erstmals 1981 hergetellt
bis heute produziert
Demonstration
![Page 30: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/30.jpg)
Register
schnelle Zwischenspeicher in der CPU
ursprünglich war nur ein ‚Akkumulator‘ im Rechenwerk
vorgesehen
heute sehr viele allgemeine Register im Rechenwerk und auch
spezielle Register im Steuerwerk vorhanden
allgemeine Register haben meist (mindestens) eine Bitbreite
entsprechend der Architektur
Auf die Registerinhalte werden u.a.
arithmetischen Befehle (ADD, SUB, INC, DEC, …)
Logische Befehle (AND, OR, …)
Verschiebe- und Rotationsbefehle
angewendet.
![Page 31: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/31.jpg)
GP (general purpose) - Register zur Zwischenspeicherung von Daten u. Adressen
Bsp. AX (8086; EAX ab 80386), B (Z80), d3 (68000)
IP - Instruction Pointer (auch PC -- Programmcounter)
Flag - Register
Interne (für den Programmierer nicht zugänglich) z.B Adressregister, Befehlsregister
Programmstatuswort
Wichtige CPU-Register
![Page 32: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/32.jpg)
Flag Register
S - Sign flag Z - Zero flag H - Half Carry P/V – Parity (even) or Overflow N – Subtract C – Carry
speichert Zustandsinformationen der CPU
Z80
7 6 5 4 3 2 1 0
S Z - H – PV N C
IA32
![Page 33: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/33.jpg)
Befehle und Adressierungsarten
Befehle oder Instructions sind das, was die CPU kann!
Befehlsarten
arithmetische Befehle, logische Befehle, Sprungbefehle, Transferbefehle,
Kontrollbefehle
Klassifizierung
feste / variable Befehlslänge
feste / variable Operandenanzahl
![Page 34: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/34.jpg)
Operationscode- Adress-Teil
Befehlsaufbau:
Üblich: feste Länge für Op-Code (n Bit)
2n verschiedene Befehle
oder:
mit Adressteil - kurzer Op-Code
...ohne - langer Op-Code
oder:
Op-Code-Länge entsprechend Häufigkeit
![Page 35: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/35.jpg)
Beispiel Z80
Befehlslänge 1 Byte bis 4 Bytes
OC2
OC
OC
OC1
OC1
OC1
OC2
OC2
OC
OP
OP1 OP2
OP
OP1 OP2
3C INC A
3E05 LD A,5
2A3412 LD HL,(1234h)
DDF9 LD SP,IX
DD3401 INC (IX+1)
DD360105 LD (IX+1),5
![Page 36: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/36.jpg)
Beispiel: IA32, AMD64(EM64T)
sehr komplexer Befehlsaufbau
Befehlslänge 1 Byte bis 18 Bytes
Legacy Prefixes: Vorsätze zur Modifikation des Befehls (z.B. REP) REX Prefix: für AMD64/EM64T Opcode: Befehlscode ModR/M: Register und Adressmodi SIB: Scale/Index/Base Byte zur Befehlsmodifikation Displacement: Verschiebung bzgl. Adressierung Immediate: Direktwert
![Page 37: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/37.jpg)
Referenzstufen:
0: unmittelbare Adressierung
Wert des Operanden steht im Befehl
1: direkte Adressierung
Adresse des Operanden steht im Befehl
2: indirekte Adressierung
Adresse der Adresse des Operanden steht im Befehl
>2 wenig gebräuchlich
![Page 38: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/38.jpg)
Problem der v-N-Architektur
Manipulation einzelner Speicherworte;
je Befehl mehrere Speicherzugriffe
Von-Neumann-Flaschenhals
Lösungen:
CISC-Architektur
getrennte Befehls- und Datenspeicherung für einen
gleichzeitigen Zugriff (Harvard-Architektur)
viele Universalregister (SPARC)
Befehlspipelining
![Page 39: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/39.jpg)
Begriff “Semantische Lücke”
Semantik einer Programmiersprache:
Regeln und Konventionen, nach denen die Sprache
interpretiert wird
Semantik einer höheren PS (C++, Pascal,...) weicht ganz
erheblich von der des Maschinencodes ab
>>> Semantische Lücke
![Page 40: Technische Informatik - Rechnersysteme · ‚reale‘ CPU (Zilog Z80) Z80 CPU Pinout ... Maschinen- bzw. Assemblercodierung Z80](https://reader031.vdocuments.pub/reader031/viewer/2022020114/5b1542b67f8b9af15d8e4918/html5/thumbnails/40.jpg)
Beispiel von Hochsprachen
C++ Pascal Algol Fortran Assembler- sprache
Maschinen- code