Operasi dasar prosesor

Preview:

Citation preview

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

Recommended