Upload
adalwolf-strick
View
107
Download
0
Embed Size (px)
Citation preview
FachhochschuleDortmundUniversity of Applied Sciences
1Einf. in die WI 1 - DV-Infrastruktur WS03/04
CPU, Programmausführung
CPU Adresse Adressierungseinheit (AU) Busschnittstelle (BU) Daten, Instruktionen
Ausführungseinheit Prefetch-Queue (EU) ALU
Steuer- Register einheit Befehlseinheit (IU) (CU)
Speicher
IO
Bussysteme
Die Register sind sichtbar für den Programmierer!
Einf. in die WI 1 - DV-Infrastruktur WS03/04 2
FachhochschuleDortmundUniversity of Applied Sciences
CPU, Programmausführung
Ausführungseinheit:Gesteuert durch die in der Befehlseinheit stehenden Maschineninstruktion werden Daten verarbeitet. Die Daten sind entweder in den Registern vorhanden oder werden aus dem Speicher bzw. der IO geholt.Daneben gibt es Transportinstruktionen, die Daten aus dem Speicher in Register holen oder aus Registern abspeichern (bzw. IO).
Einf. in die WI 1 - DV-Infrastruktur WS03/04 3
FachhochschuleDortmundUniversity of Applied Sciences
CPU, Programmausführung
Die Adressiereinheit sorgt dafür, dass die richtigen Adressen an die Speichersteu-erung gegeben werden.Die Busschnittstelle sorgt für die Kommuni-kation mit der „Außenwelt“ der CPU.Sie enthält die „Prefetch-Queue“. Dort werden Instruktionen auf Vorrat gelesen, während parallel die Verarbeitung von CPU-Daten läuft.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 4
FachhochschuleDortmundUniversity of Applied Sciences
CPU
Befehlszyklus der CPU:while (TRUE) {
Hole nächste Instruktion (Adresse im IP);
Führe Instruktion aus;if (Interrupt) Führe
Interruptmechanismus aus;}
Einf. in die WI 1 - DV-Infrastruktur WS03/04 5
FachhochschuleDortmundUniversity of Applied Sciences
Register
Die allgemeinen Register sind Felder der CPU zur momentanen Speicherung von Daten und Adressen. Die Instruktionen erwarten Operanden in den Registern, meist wird das Ergebnis einer Instruktion in einem Register gespeichert. Mit der mov-Instruktion werden Daten an die richtige Stelle kopiert.
mov-Instruktion: kopieren zwischen Registern, vom Register zum Speicher, vom Speicher zum Registermov ist die am häufigsten vorkommende Instruktion im Programmtext
Einf. in die WI 1 - DV-Infrastruktur WS03/04 6
FachhochschuleDortmundUniversity of Applied Sciences
Vom Programm zur Machineninstruktion
Ein kleines Beispielprogramm in C++int a, b, c;int main (void) {
a=2;b=8;c=a+b;if (c>=0) c=-3*c;else c=2*c;return 0;
}
Einf. in die WI 1 - DV-Infrastruktur WS03/04 7
FachhochschuleDortmundUniversity of Applied Sciences
Vom Programm zur Machineninstruktion
a, b und c sind Datenfelder für ganze Zahlen.Die Instruktionen beziehen sich über Adressen auf diese Felder.Formulierung in
C++ MaschinennaheSprache
a=2; mov a,2;
b=8; mov b,8
c=a+b; mov eax,a add eax,b mov c,eax
add: ein Operand mussin einem Register stehen.Ergebnis im Register.
Einfache Transport-instruktionen
Bedeutung: mov nach, von
Einf. in die WI 1 - DV-Infrastruktur WS03/04 8
FachhochschuleDortmundUniversity of Applied Sciences
Vom Programm zur Machineninstruktion
if (c>=0) c=-3*c;else c=2*c;
cmp c,0 Vergleiche c mit 0 jl 1 Springe nach 1: wenn kleiner mov eax,-3 ein Operand bei imul muss imul eax,c im Register stehen, Ergebnis mov c,eax im Register jmp 2 Springe nach 2: 1: shl c,1 Verschiebe c um eine Stelle 2: nach links (entspr. mal 2)
Einf. in die WI 1 - DV-Infrastruktur WS03/04 9
FachhochschuleDortmundUniversity of Applied Sciences
IO-Instruktionen
Neben der mov-Instruktion, die für den Datenaustausch zw. Registern und Speicher zuständig ist, gibt es die Instruktionen•in reg,ioport und•out ioport,reg ,die Daten zwischen den Registern und den Steuereinheiten von IO-Geräten bewegen (z.B. Tastatur, Bildschirm, Festplatte).
Einf. in die WI 1 - DV-Infrastruktur WS03/04 10
FachhochschuleDortmundUniversity of Applied Sciences
Reg. 32Bit
Reg. 16Bit
Reg. 8Bit
Bezeichung Verwendunszweck
EAX AX AH,AL Akkumulator Multiplikation/Division, I/O, schnelles Verschieben
EBX BX BH,BL Base-Register Zeiger auf Basisadresse im Datensegment ECX CX CH,CL Count-Register Zählwerte für Wiederholen, Verschieben,
Rotieren EDX DX DH,DL Datenregister Multiplikation/Division, I/O
Die Register und ihre Verwendung
Register müssen bei der Assemblerprogrammierung berücksichtigt werden.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 11
FachhochschuleDortmundUniversity of Applied Sciences
EBP BP Base-Pointer Zeiger auf Basisadresse im Stacksegment ESI SI Source-Index Stringbearbeitung (Quelle), Indexzeiger EDI DI Destination-
Index Stringbearbeitung (Ziel), Indexzeiger
ESP SP Stack-Pointer Stackzeiger CS Codesegment Segment der Instruktionen DS Datensegment Segment der Daten SS Stacksegment Segment des Stack ES Extrasegment frei verwendbares Segment, Zielsegment für
Strings FS Extrasegment frei verwendbares Segment GS Extrasegment frei verwendbares Segment EIP IP Instruction-
Pointer Befehlzähler, Offset der Instruktionen
EFLAG FLAG Flags Indikatoren für Prozessorstatus und Operationsergebnisse
Reg. 32Bit
Reg. 16Bit
Reg. 8Bit
Bezeichung Verwendunszweck
Fortsetzung der Registeraufzählung
Einf. in die WI 1 - DV-Infrastruktur WS03/04 12
FachhochschuleDortmundUniversity of Applied Sciences
Einschub: Hexadezimal
Mit den Dualzahlen kann man wegen der vielen Stellen schlecht umgehen. Daher werden Dualzahlen meist als Hexadezimal-zahlen dargestellt, das sind
Zahlen zur Basis 16. Die Ziffern dieser Zahlen sind 0,1,2,3,4,5,6,7,8,9,A,B,C,D.
Die Hexadezimalzahl 3C5Aist 3*163+12*162+5*161+10*160=15450
Zuordn. Dez. A 10 B 11 C 12 D 13 E 14 F 15
Einf. in die WI 1 - DV-Infrastruktur WS03/04 13
FachhochschuleDortmundUniversity of Applied Sciences
Einschub: Hexadezimal
Dual <--> HexadezimalMan bildet bei dual von rechts 4er Päckchen. Der Dualwert wird als Hexaziffer dargestellt.
0110 1111 1010 0011 dual 6 F A 3 hexa
Einf. in die WI 1 - DV-Infrastruktur WS03/04 14
FachhochschuleDortmundUniversity of Applied Sciences
int a; int b; int c; a=2; 00000003 mov dword ptr ds:[0041BC6Ch],2 b=8; 0000000d mov dword ptr ds:[0041BC60h],8 c=a+b; 00000017 mov eax,dword ptr ds:[0041BC6Ch] 0000001c add eax,dword ptr ds:[0041BC60h] 00000022 mov dword ptr ds:[0041BC64h],eax
Maschinensprache, gesehen im Debug-ModusMicrosoft Visual Studio C++
mov a,2
mov b,8
mov eax,a
add eax,b
mov c,eax
Einf. in die WI 1 - DV-Infrastruktur WS03/04 15
FachhochschuleDortmundUniversity of Applied Sciences c=a+b; 00000017 mov eax,dword ptr ds:[0041BC6Ch] 0000001c add eax,dword ptr ds:[0041BC60h] 00000022 mov dword ptr ds:[0041BC64h],eax if (c>=0) 00000027 cmp dword ptr ds:[0041BC64h],0 0000002e jl 0000003F c=-3*c; 00000030 imul eax,dword ptr ds:[0041BC64h],0FFFFFFFDh 00000037 mov dword ptr ds:[0041BC64h],eax else 0000003c nop 0000003d jmp 00000045 c=2*c; 0000003f shl dword ptr ds:[0041BC64h],1 00000045
..noch Maschinensprachemov eax,a add eax,b mov c,eax
compare c,0 jump less Adr. 3F
imul eax,-3 mov c,eax
Einf. in die WI 1 - DV-Infrastruktur WS03/04 16
FachhochschuleDortmundUniversity of Applied Sciences
0x0041BC54 00000000 00000000 00000000 00000008 ffffffe2 0x0041BC68 00000000 00000002 00000000 00000000 00000000
“Byte-Sicht” Ganze Zahlen sind im Big Endian Verfahren abgespeichert. 0x0041BC52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 0x0041BC64 e2 ff ff ff 00 00 00 00 02 00 00 00 00 00 00 00 00 00
Daten a b c
mov eax,a
add eax,b
mov c,eax
c = a+b;
Codierung der Instruktionen c=a+b; 00000017 mov eax,dword ptr ds:[0041BC6Ch] a1 6c bc 41 00 => Op-Code a1 dann Adresse 0000001c add eax,dword ptr ds:[0041BC60h] 03 05 60 bc 41 00 => Op-Code 03 05 dann Adresse 00000022 mov dword ptr ds:[0041BC64h],eax a3 64 bc 41 00 => Op-code a3 dann Adresse Die Adressen sind im „Big Endian”-Verfahren abgespeichert.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 17
FachhochschuleDortmundUniversity of Applied Sciences
Zahlenspielereien
Ganze Zahlen Ganze Zahlen werden im Rechner in einer bestimmten Länge abgespeichert. Meist ist die Zahl der Bitstellen ein vielfaches von 8. zB: 8 Bit, 16 Bit, 32 Bit, 64 Bit, ... Mit der Zahl der Bit-Stellen liegt auch die maximale Zahl der Werte fest, die abgespeichert werden können. zB 8 Bit : 256 Werte, 16 Bit: 65536 Werte (auch mit 64k benannt).
Zur Erinnerung: Zahl der Werte N<= 2n
n = Zahl der Bitstellen
Einf. in die WI 1 - DV-Infrastruktur WS03/04 18
FachhochschuleDortmundUniversity of Applied Sciences
Codierung der Daten
Ganze Zahlen ohne Vorzeichen
am Beispiel 8 Bit
Dualdarstellung mit den Wertigkeiten27 26 25 24 23 22 21 20
Beispiel:0 1 1 0 1 1 0 00*128+1*64+1*32+0*16+1*8+1*4+0*2+0*1 = 108
Einf. in die WI 1 - DV-Infrastruktur WS03/04 19
FachhochschuleDortmundUniversity of Applied Sciences
Ganze Zahlen
Zahlenstrahl
00000000 00000001 00000010 ............... 11111111Was passiert, wenn auf die größte Zahl 11111111 eine 1 addiert wird?Die neue Zahl ist mit 8 bit nicht mehr darstellbar: 1 00000000In der Rechnertechnologie gibt es diese neunte Stelle nicht, das Ergebnis ist 00000000, d.h. die kleinste Zahl.
Daher gibt es keinen Zahlenstrahl, sondern eine ringförmige Anordnung.Übrigens wird die abgeschnittene 1 als Überlauf zur weiteren Verwendung anderswo abgespeichert. (Carry-Bit oder -Flag)
Einf. in die WI 1 - DV-Infrastruktur WS03/04 20
FachhochschuleDortmundUniversity of Applied Sciences
Codierung der Daten
Dualzahlen 0 ... 255 255 0
Punkt A Punkt B 128 127
A
B
Wird der Punkt A durchlaufen, wird Carry gesetzt, das Ergebnis ist mathematisch falsch.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 21
FachhochschuleDortmundUniversity of Applied Sciences
Umwandlung Dezimal-Dual
Umwandlungen Dezimal in Dual: Fortgesetzte Division durch 2, die Reste
ergeben von rechts nach links die Dualziffern. zB 5: 5 / 2 = 2 Rest 1 2/ 2 = 1 Rest 0 1/ 2 = 0 Rest 1 Der Dualwert ist 1 0 1.
Dual in Dezimal: Fortgesetzte Division durch 10, die Reste ergeben von rechts nach links die Dezimalziffern.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 22
FachhochschuleDortmundUniversity of Applied Sciences
Codierung der Daten
Ganze Zahlen mit Vorzeichen Problem: Man muss zusätzlich die negativen Zahlen auf dem Zahlenring unterbringen. Dabei wird folgende Anordnung gewählt (Komplementdarstellung der negativen Zahlen). Dualzahlen -128 ... +127 -1 0
Punkt A Punkt B -128 127
Die Komplementdarstellung erhält man durch Umwandlung 1 in 0 und 0 in 1, danach wird eine 1 addiert.
Wird der Punkt B durch-laufen, wird die Vorzei-chenstelle überschrieben:
Overflow wird gesetzt, das Ergebnis ist mathe-matisch falsch.
Bei diesen (negativen)Werten ist dasBit ganz linksgleich 1.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 23
FachhochschuleDortmundUniversity of Applied Sciences
Codierung der Zeichen
Zeichen werden intern mit 8 oder 16 Bit dargestellt. Die Zuordnung Zeichen Zahl geschieht über Tabellen. ASCII-Tabelle: Tabelle aus den „Kindertagen“ des Datenaustausches. 7 Bit-Werte, später auf 8 Bit erweitert. EBCD-Tabelle: Tabelle aus dem Großrechnerbereich (IBM).
Was sind Zeichen?•Buchstaben•Ziffern•Sonderzeichen
Einf. in die WI 1 - DV-Infrastruktur WS03/04 24
FachhochschuleDortmundUniversity of Applied Sciences
Codierung der Zeichen
Heute: Codeseiten in der 8-Bit Form. Eine Codeseite enthält 256 Werte. Die unteren 128 Werte haben eine Standardzuordnung, die sich im wesentlichen an ASCII orientiert. Die oberen 128 Werte enthalten länderspezifische Zeichen. Bekannte Seiten: 437 und 850 Die Codeseiten sind ein Hemmnis im Datenaustausch. Häufig Fehlinterpretation. Ernstes Problem bei Dateinamen bzw. Dokumentennamen. Unicode: 16 Bit Tabelle Die dadurch gegebenen 64k Werte können die Zeichen fast aller vorhandenen Codeseiten übernehmen. zB Unicode ist die interne Darstellung für Zeichen ab Windows NT.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 25
FachhochschuleDortmundUniversity of Applied Sciences
Gleitkommazahlen (reelle Zahlen)
Die Gleitkommaarithmetik wird in einem extra Prozessor (Bezeichnung Coprozessor) ausgeführt, der früher separat war, heute jedoch im Prozessor integriert ist.
Trifft die CPU auf eine Gleitkomminstrution, so aktiviert sie den Coprozessor. Dieser führt die Instruktion parallel aus.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 26
FachhochschuleDortmundUniversity of Applied Sciences
Gleitkommazahlen (reelle Zahlen)
Dualdarstellung von Gleitkommazahlen Wertigkeit der Stellen: 2N 2N-1 .... 21 20 2-1 2-2 ..... 2-M Wertigkeit der Nachkommastellen: 0.5 0.25 0.125 0.0625 ....
Einf. in die WI 1 - DV-Infrastruktur WS03/04 27
FachhochschuleDortmundUniversity of Applied Sciences
Gleitkommazahlen (reelle Zahlen)
Umwandlung einer Dezimalzahl in eine Dualzahl Ganzer Anteil wie bei den ganzen Zahlen. Nachkommaanteil: Fortgesetzte Multiplikation mit 2. Die ganzzahligen Anteile nach der Multiplikation ergeben von links nach rechts die Nachkommastellen. zB 0.45 0.45 * 2 = 0.9 0.9 * 2 = 1.8 0.8 * 2 = 1.6 0.6 * 2 = 1.2 0.2 * 2 = 0.4 ...... Es ergibt sich damit: 0. 0 1 1 1 0 ...
Einf. in die WI 1 - DV-Infrastruktur WS03/04 28
FachhochschuleDortmundUniversity of Applied Sciences
Gleitkommazahlen (reelle Zahlen)
Normalisierte Darstellung üblich.
Typ double z.B.
+/- 1.001110100001...100 * 211100011001
Vorzeichen
52 Bit Mantisse 11 Bit Exponent
Einf. in die WI 1 - DV-Infrastruktur WS03/04 29
FachhochschuleDortmundUniversity of Applied Sciences
Gleitkommazahlen (reelle Zahlen)
Darstellungsdetails einer 64-Bit Darstellung (Typ double) Vorzeichenbit 11-Bit Exponent mit 0x3FF addiert 52-Bit Mantisse
Der Wert 0x3FF wird als „Bias“ bezeichnet, er löst das Problem der negativen Exponenten. Der Exponentendarstellung ist mit Bias immer positiv. Sonderfall Die Zahl 0x0000000000000000 stellt eine 0 in Gleitpunktdarstellung dar.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 30
FachhochschuleDortmundUniversity of Applied Sciences
Gleitkommazahlen (reelle Zahlen)
Beispiel Zahl 12.0 Dual 1100 Normalisiert 1.100 * 23 Vorzeichen + (Die 1 vor dem Komma wird nicht dargestellt. Sie ist immer implizit enthalten.) 0 3+0x3FF=0x402 0x8000000000000 „kompakte“ Darstellung in Hex: 40280000 00000000 Insgesamt 16 Hexaziffern, die linken drei Ziffern stellen Vorzeichen und Exponent dar, die restlichen 13 Ziffern die Mantisse.
0xZahl : Hexazahl!
Einf. in die WI 1 - DV-Infrastruktur WS03/04 31
FachhochschuleDortmundUniversity of Applied Sciences
CPU Technik
Eine CPU arbeitet getaktet.
CPU
Taktgeber, Quarz
Messgröße für den Takt: 1 Hertz: 1 Takt pro Sekunde, Taktdauer: 1 sec 1000 Hertz = 1 kHz, Taktdauer 1/1000 sec=1 msec 1000000 Hertz = 1 MHz, Taktdauer 1sec 1000 MHz = 1 GHz, Taktdauer 1nsec Der Takt synchronisiert die Verarbeitungsschritte der CPU. z.B. Pentium ADD-Instruktion mit Operanden in Registern: 1 Takt ADD-Instruktion, 1 Operand im Speicher: 2 Takte IMUL-Instruktion, Operanden in Registern: 10 Takte
Einf. in die WI 1 - DV-Infrastruktur WS03/04 32
FachhochschuleDortmundUniversity of Applied Sciences
CPU Technik
Taktfrequenz im ersten PCCPU 8088: 4,5 MHzheutige TaktfrequenzenPentium III zwischen 500 und 1400 MHzPentium 4 zwischen 1,5 GHz und 3,2 GHzCeleron zwischen 1,2 GHz und 2,7 GHzAthlon zwischen 1,4 GHz und 3,2 GHz
Einf. in die WI 1 - DV-Infrastruktur WS03/04 33
FachhochschuleDortmundUniversity of Applied Sciences
CPU Technik
Klassen von CPU‘s•CISC Complex Instruction Set Computer --Die CPU hat viele und komplexe Instruktionen. (Intel, AMD)•RISC Reduced Instruction Set Computer -- Die CPU hat wenige einfache Instruktionen. (Apple, IBM: PowerPC; SUN)•Unterschied: Die Machinenprogramme bei RISC sind länger, da komplexe Instruktionen durch die einfachen Instruktionen nachgebildet werden müssen. Vorteil von RISC: Ausführung der Instruktionen einfacher und schneller.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 34
FachhochschuleDortmundUniversity of Applied Sciences
Speicher
CPU Technik
CPU
BUS-Systeme
IO
L1 L2
Die CPU hat den schnellsten Takt, die anderen Systeme sind langsamer. Systeme, die mit unterschiedlicher Geschwindigkeit arbeiten aber nicht ständig voll ausgelastet sind, werden über einen Puffer miteinander verbunden. Dann kann auf Vorrat produziert werden, der bei Bedarf dann abgebaut werden kann. CPU: Es werden zwei Pufferspeicher vorgesehen, die wesentlich schneller sind als die außen liegenden Speicher.
Level 1 (L1) getrennt für Daten und Instruktionen, zur schnellen Versorgung der Register und der Instruktionsregister.
Level 2 (L2) als Vorstufe für L1. L2 ist wesentlich größer als L1 und auch langsamer.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 35
FachhochschuleDortmundUniversity of Applied Sciences
CPU Technik
BUS: Verbindung zwischen Bausteinen
Der Front Side Bus ist die Ver-bindung der CPU zu den BUS-Systemen, seine Geschwindig-keit ist eine Kenngröße der CPU, gemessen in MHz (max. Taktfrequenz des Bus).Die MHz-Angabe muss aber nicht die tatsächliche Daten-rate festlegen.
Einf. in die WI 1 - DV-Infrastruktur WS03/04 36
FachhochschuleDortmundUniversity of Applied Sciences
Celeron 1700
Taktfrequenz (MHz): 1700Bauart: Sockel 478CPU-Kern: WILLAMETTEFSB in (MHz): 400Level 1 Cache: 8kBLevel 2 Cache: 128kBBefehlssätze: MMX, SSE2, Advanced Transfer Cache (ATC), Hyper Pipelined, NetBurst, Rapid Execution EngineCore Spannung: 1.75V Preis ca. 70€
Versorgungsspannung
Realisierungsversion
Einf. in die WI 1 - DV-Infrastruktur WS03/04 37
FachhochschuleDortmundUniversity of Applied Sciences
Pentium 4 3000
Taktfrequenz (MHz): 3000Bauart: Sockel 478CPU-Kern: NORTHWOODFSB in (MHz): 800Level 1 Cache: 8kBLevel 2 Cache: 512kBBefehlssätze: MMX, SSE2, Advanced Transfer Cache (ATC), Hyper Pipelined, NetBurst, Rapid Execution Engine HyperthreadingCore Spannung: 1.5V
Preis ca. 430€
Einf. in die WI 1 - DV-Infrastruktur WS03/04 38
FachhochschuleDortmundUniversity of Applied Sciences
Athlon XP 3200+
Taktfrequenz (MHz): 2200Bauart: Sockel ACPU-Kern: BARTONFSB in (MHz): 400Level 1 Cache: 128kBLevel 2 Cache: 512kBBefehlssätze: MMX, ISSE, 3D Now! ProfessionalCore Spannung: 1.65V
Preis ca. 360€