Anda di halaman 1dari 33

09

Organisasi
&
Arsitektur Komputer
By : Sendi Novianto
Review - 08
▹ Jelaskan cara kerja dari mesin von neuman
▹ Jelaskan alur data yang melewati system bus
▹ Apa yang anda ketahui tentang register set
Sumber
Pembahasan - 09
1. Datapath

2. Siklus Eksekusi Program

3. Operasi dasar Prosesor

4. Tahapan Eksekusi Instruksi

5. Siklus Instruksi
1.
Datapath
Datapath

Computer
Processor Memory Devices
(active) (passive) 1
-

Control Input 1

(“brain”) (where
programs,
data
Datapath live when
(“brawn”) Output
running)
Datapath
Organisasi Prosesor (single bus)

1
-
2
2.
Siklus Eksekusi Program
Siklus Eksekusi Program
▹ CPU mem-fetch instruksi berikutnya dari memori
▹ CPU men-decode instruksi
▹ Berdasarkan instruksi, CPU mengeluarkan sinyal
kendali untuk mem-fetch operand lainnya jika
diperlukan dan kemudian akan melaksanakan 2
salah satu tindakan berikut ini : -
■ Melakukan operasi aritmatika atau logika 1
■ Menyimpan sebuah hasil ke dalam memori
■ Membaca sebuah hasil dari atau menuliskan hasil
ke piranti I/O
▹ CPU kembali ke langkah pertama dan
melanjutkan proses hingga program
diberhentikan
Siklus Eksekusi Program
1. IR  M[PC] // Fetch instruksi

2. PC  PC + d // Tunjuk ke lokasi instruksi berikutnya


2
-
3. Eksekusi instruksi 2
Siklus Eksekusi Program
Eksekusi instruksi yang ukurannya tetap
do {
1. IR  M[PC] // Fetch instruksi
2. PC  PC + d // Tunjuk ke lokasi instruksi berikutnya
3. Eksekusi instruksi
} while (!stop)
2
-
3
Eksekusi instruksi yang ukurannya bervariasi
do {
do { // Fetch instruksi
IR  M[PC]
PC  PC + d
} while (!end-of-instruction)
Eksekusi instruksi
} while (!stop)
3.
Operasi Dasar Prosesor
Operasi Dasar Prosesor
▹ Operasi-operasi Dasar:
■ Mengambil (fetching) Data dari Memori
■ Menyimpan (storing) Data ke Memori
■ Pertukaran Data Antar-Register
■ Operasi Aritmatika & Logika di Datapath
3
-
1
▹ Waktu Eksekusi
Gate Delay
⬝ Waktu yang dibutuhkan output suatu gerbang logika
berubah sesuai kondisi inputnya
Register’s Delay
⬝ Waktu yang dibutuhkan isi register berubah sesuai
inputnya
Mengambil Data dari Memori Read MFC

Instruksi: PC
Instruction
Decoder
LD R2,(R1) ; Address
lines
MAR IR
R2  M[R1] Data
lines
MDR R1 3
-
Langkah-langkah: Y 2
R2
1. MAR  R1 Add
2. Read Sub
ALU
3. Tunggu sinyal MFC XOR
Carry-in
// MFC = Memory Function Completed
// Pada saat MFC aktif: Z TEMP
// MDR  M[MAR]
4. R2  MDR
Menyimpan Data ke Memori
Write MFC

Instruksi: PC
Instruction
Decoder
ST (R1),R2 ; Address
lines
M[R1]  R2 MAR IR

Data
lines
MDR R1 3
-
Langkah-langkah: Y 3

1. MAR  R1 R2
Add
2. MDR  R2, Write Sub
ALU
3. Tunggu sinyal MFC XOR
// MFC = Memory Function Completed Carry-in

// Pada saat MFC aktif: Z TEMP


// M[MAR]  MDR
Pertukaran Data Antar-Register
Komponen-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: 3


■ Register  Bus  Register -
■ Register  Bus  ALU 4
■ 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.)
Pertukaran Data Antar-Register
R1in

X
Instruksi:
R1 MOV R4,R1 ;
X
R4  R1
R1out
3
-
R4in
Langkah-langkah: 5
X 1. Enable output of R1
R4 // setting R1out to 1
X 2. Enable input of R4
R4out // setting R4in to 1
Operasi Aritmatika dan Logika
Riin
X Instruksi:
Ri
X
ADD R1,R2 ;
Riout
Yin
R1  R1 + R2
X
3
Y
-
X Langkah-langkah: 6
Yout
1. R1out, Yin
A B 2. R2out, Add, Zin
ALU 3. Zout, R1in
Add X Zin

Z
X
Zout
Waktu Eksekusi
R2out, Add, Zin
Riin
X Turn-on time for 3-state driver
Ri
X
Riout Transmission time
Yin
X
3
Y
-
X Propagation delay through 7
Yout ALU

A B
ALU
Setup time
Add X Zin
Hold time
Z
X
Zout
4.
Tahapan Eksekusi Instruksi
Langkah-Langkah
Eksekusi Instruksi Register Set
Instruksi:
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 4
-
3. MDRout, IRin 1

2. Fetch operand #1 (isi lokasi memori yg ditunjuk oleh R3)


4. R3out, MARin, Read
5. R1out, Yin, WMFC
3. Lakukan operasi penjumlahan
6. MDRout, Add, Zin
4. Simpan hasil penjumlahan di R1
7. Zout, R1in, End
1. Fetch instruksi
1. PCout, MARin, Read, Clear Y, Set carry-in to ALU, Add, Zin
2. Zout, PCin, WMFC Control
lines
3. MDRout, IRin
Instruction
PC
Decoder
Address
lines
MAR IR

Data
lines
4
MDR R1 -
2
Y
0000000
0
R3
Add

1
ALU
Carry-in
PC+1
Z TEMP
2. Fetch operand #1
4. R3out, MARin, Read
5. R1out, Yin, WMFC

Instruction
PC=PC+1
Decoder
Address
lines
MAR IR

Data
lines
MDR R1
4
-
3
Y

R3

ALU

Z TEMP
3. Lakukan operasi penjumlahan
6. MDRout, Add, Zin

Instruction
PC=PC+1
Decoder
Address
lines
MAR IR

Data
lines
MDR=M[R3] R1
4
-
4
Y=R1

R3
Add

ALU
Carry-in

Zin Z TEMP
4. Simpan hasil penjumlahan
7. Zout, R1in, End

Instruction
PC=PC+1
Decoder
Address
lines
MAR IR

Data
lines
MDR=M[R3] R1
4
-
5
Y=R1

R3

ALU

Z=R1+M[R3] TEMP

Instruksi:
Add R1,(R3) ; R1  R1 + M[R3]
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
4
5. Offset-field-of-IRout, Add, Zin // PC  PC + Offset -
6
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
5.
Siklus Instruksi
Siklus Instruksi

5
-
1
Siklus Instruksi
Siklus Fetch - Eksekusi
· Pada setiap siklus instruksi, CPU awalnya akan membaca instruksi
dari memori.

· Terdapat registers dalam CPU yang berfungsi mengawasi dan


menghitung instruksi selanjutnya, yang disebut Program Counter 5
(PC). -
2

· PC akan menambah satu hitungannya setiap kali CPU membaca


instruksi.
· Instruksi-instruksi yang dibaca akan dibuat dalam register instruksi
(IR).
· Instruksi-instruksi ini dalam bentuk kode-kode binner yang dapat
direpresentasikan oleh CPU kemudian dilakukan aksi yang
diperlukan.
Siklus Instruksi
Aksi CPU
· CPU - Memori, perpindahan data dari CPU ke memori dan
sebaliknya.

· CPU - I/O, perpindahan data dari CPU ke modul I/O dan


sebaliknya. 5
-
3
· Pengolahan Data, CPU membentuk sejumlah operasi aritmatika
dan logika terhadap data.

· Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja.


Misalnya instruksi pengubahan urusan eksekusi.
Siklus Instruksi
Siklus Eksekusi
· Instruction Address Calculation (IAC), yaitu mengkalkulasi atau
menentukan alamat instruksi berikutnya yang akan dieksekusi.
Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi
sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit padahal
memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat
sebelumnya.
· Instruction Fetch (IF), yaitu membaca atau mengambil instruksi dari
5
lokasi memorinya ke CPU. -
· Instruction Operation Decoding (IOD), yaitu menganalisa instruksi 4
untuk menentukan jenis operasi yang akan dibentuk dan operand
yang akan digunakan.
· Operand Address Calculation (OAC), yaitu menentukan alamat
operand, hal ini dilakukan apabila melibatkan referensi operand pada
memori.
· Operand Fetch (OF), yaitu mengambil operand dari memori atau
dari modul I/O.
· Data Operation (DO), yaitu membentuk operasi yang diperintahkan
dalam instruksi.
· Operand Store (OS), yaitu menyimpan hasil eksekusi ke dalam
memori.
Siklus Instruksi

5
-
5
THANKS!
Any questions?
You can find me at:
UDINUS Building H Room H.2.4
Sendi.novianto@dsn.dinus.ac.id

Anda mungkin juga menyukai