1
3
4
Antag a' processorn ska exekvera instruk3onen ADD R1, R3. När instruk3onen är exekverad så a' processorn tagit innehållet i R1 och R3 och med hjälp av ALU:n är värdena adderade och resultatet är skrivet i R3. I det första kontrollsteget tas innehållet i PC och placeras i MAR. Det är för a' processorn vill hämta den instruk3on som finns på den plats som pekas ut av PC (det är så långt exekveringen har nå'). Kontrollsignalen READ (läs i minnet) ak3veras så a' minnet hämtar fram rä' data. När innehållet av PC är på den internabussen räknas PC upp e' steg för a' förbereda hämtning av nästa instruk3on. Så, ena ingången av ALU:n har värdet PC. Om Y nollställs, carry-in sä's, och ALU:n ställs på addi3on så har PC+1 beräknats och resultatet placeras i Z. Notera. I exemplet som används för a' illustrera principen om hur PC räknas upp kan man fak3skt läsa ut en hel del om processorn. För det första, om PC all3d räknas upp med 1 steg så är alla instruk3oner av samma längd, dvs fixed length. För det andra, om minnet är adresserat på byte nivå, dvs den minsta enhet man kan adressera är 1 byte (8-bitar), så kan det inte finnas mer än 2 8 (256) instruk3oner. 5
En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data. Överst 3ll vänster si'er ALU:n. ALU:n har två ingångar och en utgång. ALU:n har också e' anta kontrollingångar som används för a' bestämma vad processorn ska göra (addi3on, subtrak3on, etc). Nere 3ll höger finns kontrollenheten. Kontrollenheten tar e' antal insignaler och genererar e' antal utsignaler. Insignaler är statussignaler från ALU:n, delar av IR (där instruk3onen som ska exekveras lagras) och en klocksignal (som bestämmer has3gheten). Utsignaler är kontrollsignaler för a' styra processorn. Det är signaler som bestämmer vad som ska finns på den interna bussen. Om innehållet i programräknaren ska placeras i memory address register (MAR) så ska kontrollenheten se så a' PCout och MARin är öppna. Då kommer det som finns i PC a' fly'as 3ll MAR. E_ersom den här processorn bara har en intern buss som kopplar samman allt så kan bara en sak göras på den internabuss. Det blir naturligtvis en konflikt om kontrollenheten öppnar PCout och MBRout sam3digt (det är då flera som driver ledningarna i bussen). 6
7
8
9
10
11
12
14
MIPS pipeline - Fem steg: IF: Instruc3on fetch från minne ID: Instruc3on decode & register read EX: Execute opera3on eller beräkna adress MEM: Access memory operand WB: Write result back 3ll register 15
17
18
19
20
21
22
23
24
25
En något mer detaljerad bild av en processor. De tre delarna i processorn är: Nere 3ll vänster finns e' antal register som används för a' lagra data. Överst 3ll vänster si'er ALU:n. ALU:n har två ingångar och en utgång. ALU:n har också e' anta kontrollingångar som används för a' bestämma vad processorn ska göra (addi3on, subtrak3on, etc). Nere 3ll höger finns kontrollenheten. Kontrollenheten tar e' antal insignaler och genererar e' antal utsignaler. Insignaler är statussignaler från ALU:n, delar av IR (där instruk3onen som ska exekveras lagras) och en klocksignal (som bestämmer has3gheten). Utsignaler är kontrollsignaler för a' styra processorn. Det är signaler som bestämmer vad som ska finns på den interna bussen. Om innehållet i programräknaren ska placeras i memory address register (MAR) så ska kontrollenheten se så a' PCout och MARin är öppna. Då kommer det som finns i PC a' fly'as 3ll MAR. E_ersom den här processorn bara har en intern buss som kopplar samman allt så kan bara en sak göras på den internabuss. Det blir naturligtvis en konflikt om kontrollenheten öppnar PCout och MBRout sam3digt (det är då flera som driver ledningarna i bussen). 26
Antag a' processorn ska exekvera instruk3onen ADD R1, R3. När instruk3onen är exekverad så a' processorn tagit innehållet i R1 och R3 och med hjälp av ALU:n är värdena adderade och resultatet är skrivet i R3. I det första kontrollsteget tas innehållet i PC och placeras i MAR. Det är för a' processorn vill hämta den instruk3on som finns på den plats som pekas ut av PC (det är så långt exekveringen har nå'). Kontrollsignalen READ (läs i minnet) ak3veras så a' minnet hämtar fram rä' data. När innehållet av PC är på den internabussen räknas PC upp e' steg för a' förbereda hämtning av nästa instruk3on. Så, ena ingången av ALU:n har värdet PC. Om Y nollställs, carry-in sä's, och ALU:n ställs på addi3on så har PC+1 beräknats och resultatet placeras i Z. Notera. I exemplet som används för a' illustrera principen om hur PC räknas upp kan man fak3skt läsa ut en hel del om processorn. För det första, om PC all3d räknas upp med 1 steg så är alla instruk3oner av samma längd, dvs fixed length. För det andra, om minnet är adresserat på byte nivå, dvs den minsta enhet man kan adressera är 1 byte (8-bitar), så kan det inte finnas mer än 2 8 (256) instruk3oner. 27
32
41
43
44
45
46
48
49
52
53
54
55
56
57
58
59
60
61
62
63
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85