1
Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan arkitektur), hårdvara osynlig Assembly- och maskinprogram: svåra a> porta 3ll annan arkitektur, hårdvara synlig Olika processorer har olika instruk3onsuppsä>ningar. Men med många gemensamma egenskaper. Tidiga datorer hade väldigt enkla instruk3onsuppsä>ningar. De>a förenklade implementa3onen. När man bestämmer instruk3onsuppsä>ningen tas hänsyn 3ll hur komplext det blir och hur hårdvaran blir. I kursboken används instruk3onsuppsä>ning för MIPS Exempel på arkitekturer: Intel x86, IBM system/370, SUN Sparc Exempel på organisa3on: x86: Intel och AMD kan implementera en arkitektur på olika sä> (men, exekverbara program kan fly>as) 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan arkitektur), hårdvara osynlig Assembly- och maskinprogram: svåra a> porta 3ll annan arkitektur, hårdvara synlig Olika processorer har olika instruk3onsuppsä>ningar. Men med många gemensamma egenskaper. Tidiga datorer hade väldigt enkla instruk3onsuppsä>ningar. De>a förenklade implementa3onen. När man bestämmer instruk3onsuppsä>ningen tas hänsyn 3ll hur komplext det blir och hur hårdvaran blir. I kursboken används instruk3onsuppsä>ning för MIPS Exempel på arkitekturer: Intel x86, IBM system/370, SUN Sparc Exempel på organisa3on: x86: Intel och AMD kan implementera en arkitektur på olika sä> (men, exekverbara program kan fly>as) 35
E> exempel på de steg som måste uwöras för a> exekvera en instruk3on. Instruk3onen finns i minnet. Programräknaren (PC) håller koll på exekveringen och talar om på vilken plats nästa instruk3on ska hämtas. Processorn hämtar därför det som finns på den adress som PC innehåller. Processorn läser in den data som finns på adressplatsen och placerar bitarna i instruk3onsregisteret (IR). IR är e> register som innehåller den instruk3on som just nu exekveras. Bitarna i IR kollas av för a> ta reda på vad det är för instruk3on (avkodning). I det här fallet är den en fly> av data från en viss plats i minnet 3ll e> register. Processorn läser därför i minnet igen. De bitar som läses in är data och lagras i e> register. I de>a fall register 3. 36
37
38
39
Aritme3ska och logiska funk3oner uwörs av ALU. ALU:n får via kontrollenheten (instruk3onen) reda på vilken opera3on (OP) som ska uwöras. Exempel på opera3oner som uwörs av ALU:n är Add, sub, mul, div, and, or, xor En ALU tar som indata: IN1, IN2 och eventuella status signaler (t ex carry in) Och en ALU genererar: UT och eventuellt status signaler (t ex carry out) Bandbredd/has3ghet i ALU:n bestäms av hur stora tal som kan hanteras på in och utgångar. Om 8-bitar används kan t ex heltal mellan 0-255 adderas. Fler bitar kräver större bandbredd mellan processor och register. Beroende på vilken typ av processor, så ser ALU:n olika ut. Exempel på olika typer av processorer är: Central processing unit (CPU) fokuserar på a> lösa alla uppgiber Digital signaling processor (DSP) fokuserar på a> lösa signalbehandlings problem Graphics Processing Unit (GPU) fokuserar på grafik Fly>als Processor Unit (FPU) fokuserar på fly>al 40
41
42
43
44
45
46
47
48
49
53
54
55
56
57
Här ser vi vilka kontrollsignaler som är ak3va i det femte kontrollsteget. 58
59
60
61
62
63
64
65
66
67
68
SUN Sparc: 32 general purpose register synliga för en användare där 8 register är globala och 24 ingår i e> fönster (window) Registren i e> fönster delas upp som: 8 register för utdata, 8 register för local, och 8 register för indata Man kan ha 2 3ll 32 fönster, dvs 40 3ll 520 register Vid 2 fönster: 8 register globla, 24 (in/locala/ut) för fönster 1, 16 (in/locala) för fönster 2 (men, in och ut för fönster 1 och 2 delas). 69
71
För a> hantera I/O, t ex tangentbord (input) och skärm (output) kan man använda minnesmappad I/O eller isolerad I/O. I minnesmappad I/O ses I/O-enheter som en del av minnet. Fördelen är a> samma instruk3oner användas för minnes läsning/skrivning. När man vill göra en I/O opera3on, läser/skriver man 3ll den del av minnet där I/O-enheten si>er. Nackdelen är a> man tar bort en del av adressrymden ebersom alla adressledningar inte kan användas 3ll minnet utan vissa används för I/O enheter. I isolerad I/O används speciella instruk3oner för I/O. Då kan man använda hela adressrymden 3ll minne, men man måste ha fler instruk3oner, som kan påverka komplexiteten av processorn. 73
LOAD R1, 7 ladda register R1 med det som finns på adressplats 7. Adressplats 7 framstår som en plats i minnet, men det är minnesceller som håller koll på vilken eller vilka tangenter som är netryckta. I exemplet är tangent 3 nedtryckt och det är i det här fallet implementerat så a> då lagras värdet 00100000 på adressplats 7. STORE R1, 6 tar innehållet i register R1 och placerar värdet på adressplats 6. Värdet i register R1 är eber a> LOAD R1, 7 exekverats lika med 00100000. De>a värde placeras nu på minnesplats 6 i minnet. Minnesplats 6 är konstruerat så a> en nolla släcker lysdioder i e> sju-segment display medan en e>a tänder en viss lysdiod i sju-segment displayen. 74
75
76
77
78
79
80
81
82