11/26/2014
1
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 penulisan data ke memory atau I/O Module
11/26/2014
2
12.1 Processor Organization (cont…)
5 Arsitektur dan Organisasi Komputer
The
CP
U w
ith
th
e S
yst
em
Bu
s
12.1 Processor Organization (cont…)
6 Arsitektur dan Organisasi Komputer
Inte
rna
l Str
uc
ture
of
the
CP
U
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
4. Condition Codes Register
11/26/2014
3
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.
• Tidak dapat diset oleh program.
11/26/2014
4
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 • Setiap kali indirect address dilakukan, maka
dibutuhkan tambahan akses ke memori.
11/26/2014
5
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)
Fetc
h D
iara
m
12.3 Instruction Cycle (cont…)
20 Arsitektur dan Organisasi Komputer
Ind
ire
ct
Dia
ram
11/26/2014
6
12.3 Instruction Cycle (cont…)
21 Arsitektur dan Organisasi Komputer
Inte
rru
pt
Dia
ram
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
Pipelining instruction stage
11/26/2014
7
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:
1 instruksi x 6 stage x 1ms = 6 unit waktu
9 instruksi x 6 stage x 1ms = 54 unit waktu
Non-
pipeline operation
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
Pipeline operation
11/26/2014
8
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
• Pada saat ini prosesor belum mengetahui instruksi apa yang akan di-fetch hingga instruksi dieksekusi
11/26/2014
9
33 Arsitektur dan Organisasi Komputer
An Alternative Pipeline Depiction
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
• Instruksi branch tambahan bisa masuk lagi sebelum instruksi branch utama diselesaikan, sehingga tidak mampu ditangani oleh sistem.
11/26/2014
10
12.4 Pipelining (cont…)
37 Arsitektur dan Organisasi Komputer
Loop Buffer • Menggunakan
very 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
yang baru saja dieksekusi
11/26/2014
11
41 Arsitektur dan Organisasi Komputer
Branch Prediction Flowchart
42 Arsitektur dan Organisasi Komputer
Branch Prediction State Diagram
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) + overhead 60 + 5 = 65 ns
Instruction latency = 65 ns
Time to execute 100 instructions = 65x6 + 65x99 = 390 + 6.435
= 6.825 ns
12.4 Pipelining (cont…) – Contoh Soal
11/26/2014
12
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 -
PART 3: THE CENTRAL PROCESSING UNIT
CHAPTER 12: PROCESSING STRUCTURE AND FUNCTION