ARSITEKTUR DAN
ORGANISASI KOMPUTER
PRIO HANDOKO, S.KOM., M.T.I.
PART 3:
THE CENTRAL
PROCESSING UNIT
CHAPTER 12
: PROCESSOR
STRUCTURE AND FUNCTION
Kompetensi Dasar
Arsitektur dan Organisasi Komputer 3
CHAPTER 12:
PROCESSOR
STRUCTURE AND FUNCTION
Mahasiswa memiliki pengetahuan mengenai fungsi dan struktur CPU
Agenda
• Processor Organization
• Register Organization
• Instruction Cycle
• Instruction Pipelining
12.1 Processor Organization
4 Arsitektur dan Organisasi Komputer
• Fetch instructions: Prosesor membaca sebuah
instruksi dari memori (register, cache, main memory)
• Interpret instructions: Instruksi di decode untuk
menentukan action yang diperlukan
• Fetch data: Pengeksekusian sebuah instruksi bisa
memerlukan pembacaan data dari memori atau I/O module
• Process data: Pengeksekusian sebuah instruksi
(operasi ALU)
• Write data: Hasil eksekusi bisa memerlukan
12.1 Processor Organization (cont…)
5 Arsitektur dan Organisasi Komputer
Th
12.1 Processor Organization (cont…)
6 Arsitektur dan Organisasi Komputer
In
12.2 Register Organization
7 Arsitektur dan Organisasi Komputer Register dalam prosesor memiliki 2 peran:
1. User-visible register
Register yang dapat direferensi menggunakan bahasa mesin/rakitan/assembler (machine language)
2. Control and Status Register:
Register yang digunakan oleh control unit untuk mengendalikan operasi pengolahan prosesor
12.2 Register Organization (cont…)
8 Arsitektur dan Organisasi Komputer
User-visible Register
Dikelompokkan menjadi: 1. General Purpose Register 2. Data Register
3. Address Register
12.2 Register Organization (cont…)
9 Arsitektur dan Organisasi Komputer
1. General Purpose Register
• Bisa digunakan sebagai operand untuk setiap instruksi (true general purpose)
• Hanya beberapa yang bisa digunakan sebagai operand pada instruksi tertentu (restricted)
• Pada beberapa kasus bisa digunakan untuk
addressing function (register indirect, displacement)
12.2 Register Organization (cont…)
10 Arsitektur dan Organisasi Komputer
• Bisa digunakan untuk menyimpan data atau
address.
• Data: Accumulator
• Addressing: Segment • Make them general purpose
• Fleksibilitas tinggi dan keleluasan pemrograman
• Instruksi lebih panjang (lebih rumit) • Make them specialized
• Instruksi lebih pendek (kinerja lebih baik)
• Kurang fleksibel
12.2 Register Organization (cont…)
11 Arsitektur dan Organisasi Komputer
2. Data Register
• Jumlah register sekitar 8 – 23
• Banyaknya register berpengaruh pada rancangan set instruksi
• Lebih banyak register, maka semakin banyak juga bit operand-nya
• Semakin sedikit register, maka memori utama akan lebih sering direferensi
12.2 Register Organization (cont…)
12 Arsitektur dan Organisasi Komputer
4. Condition Codes Register
• Register yang menampung condition codes
(flags).
• Condition codes berupa bit yang yang diset oleh perangkat keras prosesor sebagai hasil dari suatu operasi.
• Dapat dibaca oleh program.
12.2 Register Organization (cont…)
13 Arsitektur dan Organisasi Komputer
Control and Status Register
• Terdapat 4 register yang umumnya digunakan untuk eksekusi instruksi:
1. Program Counter (PC) 2. Instruction Register (IR)
3. Memory Address Register (MAR) 4. Memory Buffer Register (MBR)
12.2 Register Organization (cont…)
14 Arsitektur dan Organisasi Komputer
• Status register: register yang menampung condition code pengolahan yang disebut dengan program status word (PSW), terdiri dari:
• Sign (hasil akhir dari operasi ALU)
• Zero (diset jika hasil akhir operasi ALU = 0)
• Carry • Equal • Overflow
• Interrupt enable/disable
• Supervisor (supervisor atau user mode)
12.3 Instruction Cycle
15 Arsitektur dan Organisasi Komputer
• Terdiri dari 3 tahapan:
1. Fetch 2. Execute 3. Interrupt
• Terdapat 1 tambahan tahapan siklus instruksi yang dikenal dengan nama indirect cycle
12.3 Instruction Cycle (cont…)
16 Arsitektur dan Organisasi Komputer
Indirect Cycle
• Eksekusi instruksi mungkin membutuhkan lebih dari satu operand,
• Setiap kali operand dibutuhkan, maka hal ini akan membutuhkan akses ke memori,
• Setiap kali melakukan akses ke memori, maka indirect address dilakukan, dan
12.3 Instruction Cycle (cont…)
17 Arsitektur dan Organisasi Komputer
The instruction cycle (with) indirect cycle
12.3 Instruction Cycle (cont…)
18 Arsitektur dan Organisasi Komputer
The instruction cycle (with) indirect cycle
12.3 Instruction Cycle (cont…)
19 Arsitektur dan Organisasi Komputer
Data Flow (instruction Fetch)
Fe
tc
h
D
ia
ra
m
12.3 Instruction Cycle (cont…)
20 Arsitektur dan Organisasi Komputer
In
d
ir
e
c
t
D
ia
ra
12.3 Instruction Cycle (cont…)
21 Arsitektur dan Organisasi Komputer
In
te
rr
up
t
D
ia
ra
m
12.3 Instruction Cycle (cont…)
22 Arsitektur dan Organisasi Komputer
Instruction Prefetch
• Pengambilan instruksi selanjutnya ketika prosesor tengah melakukan eksekusi intruksi
• Mengapa hal ini dapat dilakukan? Karena, ketika prosesor melakukan
eksekusi, prosesor tidak mengakses memori
12.4 Pipelining
23 Arsitektur dan Organisasi Komputer
• Instruksi pipeline serupa dengan
penggunaan assembly line pada pabrik-pabrik perakitan
• Contoh assembly line?
• Pipeline, input baru diterima di salah satu ujung sebelum input yang diterima sebelumnya muncul sebagai output diujung lainnya.
12.4 Pipelining (cont…)
24 Arsitektur dan Organisasi Komputer
Common instruction stage
12.4 Pipelining (cont…)
25 Arsitektur dan Organisasi Komputer
• Waktu eksekusi pada umumnya lebih lama dari waktu fetch, sehingga tahapan fetch menunggu untuk beberapa waktu untuk mengosongkan
buffer.
• Conditional branch instruction akan membuat instruksi berikutnya yang akan diambil tidak jelas, jadi tahapan fetch harus menunggu sampai alamat instruksi dari tahapan eksekusi .
• Tahapan eksekusi harus menunggu ketika instruksi selanjutnya tengah di-fetch
12.4 Pipelining (cont…)
26 Arsitektur dan Organisasi Komputer
• Hal ini akan meningkatkan kecepatan (speed up) pengolahan
• Speed up dapat ditingkatkan dengan menambahkan lagi beberapa tahapan (stage):
• Fetch instruction (FI)
• Decode instruction (DI)
• Calculate operands (CO)
• Fetch operands (FO)
• Execute instructions (EI)
• Write operand (WO)
12.4 Pipelining (cont…)
27 Arsitektur dan Organisasi Komputer
• Berapakah waktu yang dibutuhkan untuk menyelesaikan 9 instruksi pengolahan, jika setiap instruksi, diselesaikan dalam 6 stage dan setiap stage berdurasi 1 unit waktu?
Jawab:
12.4 Pipelining (cont…)
28 Arsitektur dan Organisasi Komputer
• Berapakah waktu yang dibutuhkan untuk menyelesaikan 9 instruksi pengolahan, jika setiap instruksi, diselesaikan dalam 6 stage dan setiap stage berdurasi 1 unit waktu?
Jawab:
14 unit waktu
29 Arsitektur dan Organisasi Komputer
Timing Diagram for Instruction Pipeline Operation
12.4 Pipelining (cont…)
30 Arsitektur dan Organisasi Komputer
• Faktor penghambat pipelining:
1. Jika ke-6 stage memerlukan durasi yang berbeda, maka yang lebih cepat harus menunggu.
2. Adanya conditional branch instruction.
31 Arsitektur dan Organisasi Komputer
The Effect of a Conditional Branch on Instruction Pipeline Operation
32 Arsitektur dan Organisasi Komputer
Six-Stage CPU Instruction Pipeline
• Pengecekan ada atau tidaknya conditional branch selalu dilakukan setelah stage CO dilakukan
33 Arsitektur dan Organisasi Komputer
12.4 Pipelining (cont…)
34 Arsitektur dan Organisasi Komputer
Dealing with Branches
• Berbagai pendekatan untuk menangani Branch
• Multiple Streams
• Prefetch Branch Target
• Loop buffer
• Branch prediction
• Delayed branching
12.4 Pipelining (cont…)
35 Arsitektur dan Organisasi Komputer
Multiple Streams
• Kedua instruksi percabangan (branch)
diambil dengan dua buah stream
• Prefetch setiap branch kedalam pipeline yang terpisah
• Menggunakan pipeline yang sesuai
12.4 Pipelining (cont…)
36 Arsitektur dan Organisasi Komputer
• Masalah dengan pendekatan ini:
• Akan terjadi perebutan dan delay untuk akses register dan memori
12.4 Pipelining (cont…)
37 Arsitektur dan Organisasi Komputer
Loop Buffer
• Menggunakanvery fast memory
• Very good for small loops or jumps
12.4 Pipelining (cont…)
38 Arsitektur dan Organisasi Komputer
Branch Prediction
12.4 Pipelining (cont…)
39 Arsitektur dan Organisasi Komputer
• Berbagai teknik digunakan untuk memprediksi apakah suatu branch akan diambil antara lain:
• Predict never taken • Assume that jump will not happen
• Always fetch next instruction • Predict always taken
• Assume that jump will happen
• Always fetch target instruction
• Berdasarkan studi lebih dari 50% branch dilaksanakan
• As soon as the branch is decoded and the target address is computed, we assume the branch to be taken and begin fetching and executing at the target address.
12.4 Pipelining (cont…)
40 Arsitektur dan Organisasi Komputer
• Predict by Opcode
• Prosesor berasumsi jump akan dilaksanakan pada instruksi dengan opcode terterntu saja.
• Can get up to 75% success • Taken/Not taken switch • Based on previous history
• Good for loops
• Branch History Table
• Menyimpan history instruksi-instruksi branch
41
Arsitektur dan Organisasi Komputer Arsitektur dan Organisasi Komputer 42
43 Arsitektur dan Organisasi Komputer Diketahui prosesor tanpa pipeline dengan 6 tahapan eksekusi instruksi masing-masing memerlukan waktu sebagai berikut: 50 ns, 50 ns, 60 ns, 60 ns, 50 ns, dan 50 ns.
Hitung:
a) Instruction latency
b) Total waktu untuk mengeksekusi 100 instruksi
Jawab:
a) (50+50+60+60+50+50) ns = 320 ns b) 100 instruksi * 320 ns = 32.000 ns
12.4 Pipelining (cont
…) –
Contoh Soal
44 Arsitektur dan Organisasi Komputer Menyambung soal di atas, jika prosesor
menggunakan pipeline dimana memerlukan waktu tambahan (overhead) untuk pindah dari satu stage
ke stage yang lainnya. Hitung waktu yang diperlukan untuk menjalankan 100 instruksi!
Jawab:
The length of pipelined stage = MAX(lengths of unpipelined stages) + overhead60 + 5 = 65 ns
Instruction latency = 65 ns
Time to execute 100 instructions = 65x6 + 65x99 = 390 + 6.435 = 6.825 ns
45 Arsitektur dan Organisasi Komputer Dari kedua soal diatas hitung speed up-nya!
Jawab:
Average instruction time not pipelined= 320 ns
Average instruction time pipelined= 65 ns
Speedup = 320 ns/ 65 ns = 4.92 ns
12.4 Pipelining (cont
…) –
Contoh Soal
46 Arsitektur dan Organisasi Komputer
Bagaimana dengan pipelining
pada operasi aritmatika?
12.4 Pipelining (cont
…) –
Contoh Soal
- THANK YOU -