Download - ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

Transcript
Page 1: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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

Page 2: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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

Page 3: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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.

Page 4: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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.

Page 5: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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

Page 6: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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

Page 7: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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

Page 8: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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

Page 9: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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.

Page 10: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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

Page 11: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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

Page 12: ArsiteKTUR dan organisasi komputer - ocw.upj.ac.idocw.upj.ac.id/...TIF203-Arsitektur-dan-Organisasi-Komputer-Ch-12.pdf · 11/26/2014 1 arsitektur dan organisasi komputer prio handoko,

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