OPERASI DASAR PROSESOR
Nadia Printa Tearani (A11.2010.05214)
Nur Aji Eka Kharisma (A11.2010.05418)
Derry Prima (A11.2010.05711)
Operasi Dasar Prosesor
Operasi-operasi Dasar:Mengambil (fetching) Data dari
MemoriMenyimpan (storing) Data ke
MemoriPertukaran Data Antar-RegisterOperasi Aritmatika & Logika di
Datapath
Mengambil Data dari MemoriInstruksi:
LD R2,(R1) ; R2 M[R1]
Langkah-langkah:1. MAR R12. Read3. Tunggu sinyal MFC
// MFC = Memory Function Completed// Pada saat MFC aktif:// MDR M[MAR]
4. R2 MDR
Y
Z
MDR
MAR
PC
TEMP
R2
R1
IR
InstructionDecoder
ALUCarry-in
Add
Sub
XOR
Address lines
Data lines
Read MFC
Menyimpan Data ke Memori
Instruksi:ST (R1),R2 ; M[R1] R2
Langkah-langkah:1. MAR R12. MDR R2, Write3. Tunggu sinyal MFC
// MFC = Memory Function Completed// Pada saat MFC aktif:// M[MAR] MDR
Y
Z
MDR
MAR
PC
TEMP
R2
R1
IR
InstructionDecoder
ALUCarry-in
Add
Sub
XOR
Address lines
Data lines
Write MFC
Pertukaran Data Antar-RegisterInstruksi:
MOV R4,R1 ; R4 R1
Langkah-langkah:1. Enable output of R1
// setting R1out to 1
2. Enable input of R4 // setting R4in to 1R4
R1
X
X
X
X
R1in
R1out
R4in
R4out
Operasi Aritmatika dan LogikaInstruksi:
ADD R1,R2 ; R1 R1 + R2
Langkah-langkah:1. R1out, Yin
2. R2out, Add, Zin
3. Zout, R1in
Y
Z
Ri
ALU
A B
X
X
X
X
X
X
Riin
Riout
Yin
Yout
Zin
Zout
Add
Operasi (A&L): Bagian dari Pertukaran DataKomponen-komponen Datapath:
Register: tempat penyimpanan data ALU: tempat pemrosesan aritmatika & logika Bus: penghubung antar-register & antara register-ALU
Eksekusi Instruksi merupakan kombinasi pertukaran data antara:
Register Bus Register Register Bus ALU Register Bus Memori
Pertukaran data dilakukan dengan cara mengaktifkan gerbang-gerbang register dengan menggunakan sinyal-sinyal kendali (PCout, PCin, dst.)
Selain itu, juga ada sinyal-sinyal kendali yang berhubungan dengan komponen-komponen lain (Memori: Read, Write; ALU: Add, Sub, Set Carry-in, dst.)
Komponen-komponen Datapath:
Register: tempat penyimpanan dataALU: tempat pemrosesan aritmatika & logikaBus: penghubung antar-register & antara register-ALUEksekusi Instruksi merupakan kombinasi pertukaran data antara:Register Bus RegisterRegister Bus ALURegister Bus MemoriPertukaran data dilakukan dengan cara mengaktifkan gerbang-gerbang register dengan menggunakan sinyal-sinyal kendaliSelain itu, juga ada sinyal-sinyal kendali yang berhubungan dengan komponen-komponen lain
Tahapan Eksekusi InstruksiInstruksi:
Add R1,(R3) ; R1 R1 + M[R3]
Langkah-langkah:1. Fetch instruksi
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
2. Fetch operand #1 (isi lokasi memori yg ditunjuk oleh R3)4. R3out, MARin, Read
5. R1out, Yin, WMFC
3. Lakukan operasi penjumlahan6. MDRout, Add, Zin
4. Simpan hasil penjumlahan di R17. Zout, R1in, End
1. Fetch instruksi
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC3. MDRout, IRin
Y
Z
MDR
MAR
PC
TEMP
R3
R1
IR
InstructionDecoder
ALUCarry-in
Add
Address lines
Data lines
Control lines
00000000
1
PC+1
2. Fetch operand #1
Y
Z
MDR
MAR
PC=PC+1
TEMP
R3
R1
IR
InstructionDecoder
ALU
Address lines
Data lines
4. R3out, MARin, Read5. R1out, Yin, WMFC
3. Lakukan operasi penjumlahan
Y=R1
Z
MDR=M[R3]
MAR
PC=PC+1
TEMP
R3
R1
IR
InstructionDecoder
ALU
Address lines
Data lines
Carry-in
Add
Zin
6. MDRout, Add, Zin
4. Simpan hasil penjumlahan
Address lines
Data lines
Y=R1
Z=R1+M[R3]
MDR=M[R3]
MAR
PC=PC+1
TEMP
R3
R1
IR
InstructionDecoder
ALU
7. Zout, R1in, End
Tahapan Eksekusi “Branching”Unconditional (JMP Loop)
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. PCout, Yin
5. Offset-field-of-IRout, Add, Zin // PC PC + Offset
6. Zout, PCin, End
Conditional (contoh: BRNeg Loop)7. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
8. Zout, PCin, WMFC
9. MDRout, IRin
4. PCout, Yin , If N=0 then End // take the branch?
5. Offset-field-of-IRout, Add, Zin // PC PC + Offset
6. Zout, PCin, End
LD Rd,X
Tahapan Eksekusi Instruksi: LD Rd,XInstruksi:
LD R16,X ; R16 M[X]
Langkah-langkah:1. Fetch instruksi
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
2. Fetch operand dari lokasi memori yang ditunjuk oleh X4. Xout, MARin, Read
5. WMFC
3. Lakukan operasi ALU4. Simpan hasil penjumlahan di R16
6. MDRout, R16in, End
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. Xout, MARin, Read
5. WMFC6. MDRout, R16in, End
Tahapan Eksekusi Instruksi: LD Rd,X
Y
Z
MDR
MAR
PC
TEMP
R16
X
IR
InstructionDecoder
ALUSet
Carry-in
Add
Address lines
Data lines
Control lines
00000000
1
PC+1
PCout
Read
MARin
Zin
Clear Y
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. Xout, MARin, Read
5. WMFC6. MDRout, R16in, End
Tahapan Eksekusi Instruksi: LD Rd,X
Y
Z = PC+1
MDR
MAR
PC
TEMP
R16
X
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
Zout
WMFC
PCin
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. Xout, MARin, Read
5. WMFC6. MDRout, R16in, End
Tahapan Eksekusi Instruksi: LD Rd,X
Y
Z
MDR
MAR
PC+1
TEMP
R16
X
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
MDRout
IRin
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. Xout, MARin, Read
5. WMFC6. MDRout, R16in, End
Tahapan Eksekusi Instruksi: LD Rd,X
Y
Z
MDR
MAR
PC+1
TEMP
R16
X
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
Read
MARin
Xout
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. Xout, MARin, Read
5. WMFC6. MDRout, R16in, End
Tahapan Eksekusi Instruksi: LD Rd,X
Y
Z
MDR
MAR
PC+1
TEMP
R16
X
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
WMFC
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. Xout, MARin, Read
5. WMFC6. MDRout, R16in, End
Tahapan Eksekusi Instruksi: LD Rd,X
Y
Z
MDR
MAR
PC+1
TEMP
R16
X
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
MDRout
R16in
ADD Rd,Rs
Tahapan Eksekusi Instruksi: ADD Rd, RsInstruksi:
ADD R16,R17 ; R16 R16 + R17
Langkah-langkah:1. Fetch instruksi
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
2. Fetch operand ke-1 (R16)4. R16out, Yin
3. Fetch operand ke-2 (R17) dan Lakukan operasi ALU5. R17out, Add, Zin
4. Simpan hasil penjumlahan di R166. Zout, R16in, End
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. R16out, Yin
5. R17out, Add, Zin
6. Zout, R16in, End
Tahapan Eksekusi Instruksi: ADD Rd, Rs
Y
Z
MDR
MAR
PC
TEMP
R16
R17
IR
InstructionDecoder
ALUSet
Carry-in
Add
Address lines
Data lines
Control lines
00000000
1
PC+1
PCout
Read
MARin
Zin
Clear Y
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. R16out, Yin
5. R17out, Add, Zin
6. Zout, R16in, End
Tahapan Eksekusi Instruksi: ADD Rd, Rs
Y
Z = PC+1
MDR
MAR
PC
TEMP
R16
R17
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
Zout
WMFC
PCin
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. R16out, Yin
5. R17out, Add, Zin
6. Zout, R16in, End
Tahapan Eksekusi Instruksi: ADD Rd, Rs
Y
Z
MDR
MAR
PC+1
TEMP
R16
R17
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
MDRout
IRin
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. R16out, Yin
5. R17out, Add, Zin
6. Zout, R16in, End
Tahapan Eksekusi Instruksi: ADD Rd, Rs
Y
Z
MDR
MAR
PC+1
TEMP
R16
R17
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
Yin
R16out
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. R16out, Yin
5. R17out, Add, Zin
6. Zout, R16in, End
Tahapan Eksekusi Instruksi: ADD Rd, Rs
Y=R16
Z
MDR
MAR
PC+1
TEMP
R16
R17
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
Zin
R17out
Add
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC
3. MDRout, IRin
4. R16out, Yin
5. R17out, Add, Zin
6. Zout, R16in, End
Tahapan Eksekusi Instruksi: ADD Rd,
Rs
Y=R16
Z=R16+R17
MDR
MAR
PC+1
TEMP
R16
R17
IR
InstructionDecoder
ALU
Address lines
Data lines
Control lines
R16out
Zout
Peningkatan Kinerja Prosesor
Multiple-bus: salah satu
cara peningkatan
kinerja
MDR
MAR
PC
TEMP
RegisterFile
IR
InstructionDecoder
AL
U
A B C
Datalines
Addresslines
Memory Bus
Add R1,R2,R3 ;R1R2+R3
Bandingkan dengan
Organisasi Single-bus
Add R1,R2,R3 ;R1R2+R3
Y
Z
MDR
MAR
PC
TEMP
R3
R1
IR
InstructionDecoder
ALU
R2