Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

William Stallings Computer Organization and Architecture 6 th Edition Chapter 12 CPU Structure and Function.

Presentasi serupa


Presentasi berjudul: "William Stallings Computer Organization and Architecture 6 th Edition Chapter 12 CPU Structure and Function."— Transcript presentasi:

1 William Stallings Computer Organization and Architecture 6 th Edition Chapter 12 CPU Structure and Function

2 CPU Structure Untuk mengerti organisasi prosesor kita perhatikan apa yang harus dilakukan oleh CPU : —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

3 CPU With Systems Bus

4 CPU Internal Structure

5 Registers CPU must have some working space (temporary storage) : Called registers Number and function vary between processor designs One of the major design decisions Top level of memory hierarchy Register didalam prosesor dibagi dua peran: —User-visible register —Control and status register

6 User Visible Registers Register yang bisa direference melalui bahasa mesin Dapat dikelompokkan menjadi : —General Purpose register —Data registe —Address register —Condition Codes register

7 General Purpose Registers (1) Bisa digunakan sebagai operand untuk setiap instruksi ( true general purpose ) Hanya beberapa yang bisa digunakan sebagai opernad pada instruksi tertentu (restricted ) Pada beberapa kasus bisa digunakan untuk addressing function (register indirect, displacement) Bisa digunakan untuk menyimpan data atau address. —Data : Accumulator —Addressing : Segment

8 General Purpose Registers (2) Make them general purpose —Increase flexibility and programmer options —Increase instruction size & complexity Make them specialized —Smaller (faster) instructions —Less flexibility

9 How Many General Purpose Registers? Between Fewer = more memory references More does not reduce memory references

10 How big? Large enough to hold full address Large enough to hold full word possible to combine two data registers —C programming double int a; long int a;

11 Condition Code Registers Sets of individual bits —e.g. result of last operation was zero Can be read (implicitly) by programs —e.g. Jump if zero Can not (usually) be set by programs

12 Control & Status Registers Setiap prosesor memiliki organisasi register dan terminologi yang berbeda-beda. Ada 4 register yang umumnya digunakan untuk eksekusi instruksi: —Program Counter (PC) —Instruction Decoding Register (IR) —Memory Address Register (MAR) —Memory Buffer Register (MBR)

13 Program Status Word ( PSW ) A set of bits : contain condition code —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)

14 Other Registers May have registers pointing to: —Process control blocks (see O/S) —Interrupt Vectors (see O/S)

15 Example Register Organizations

16 Instruction Cycle Revisi Stallings Chapter 3 (sub bab 3.2) —Fetch —Execute —Interrupt

17 Indirect Cycle Instruksi bisa memerlukan beberapa kali memory access untuk fetch operands Diperlukan tambahan instruction subcycle

18 Instruction Cycle with Indirect

19 Instruction Cycle State Diagram

20 Data Flow (Instruction Fetch) Depends on CPU design In general: Fetch —PC contains address of next instruction —Address moved to MAR —Address placed on address bus —Control unit requests memory read —Result placed on data bus, copied to MBR, then to IR —Meanwhile PC incremented by 1

21 Data Flow (Data Fetch) IR is examined If indirect addressing, indirect cycle is performed —Right most N bits of MBR transferred to MAR —Control unit requests memory read —Result (address of operand) moved to MBR

22 Data Flow (Fetch Diagram)

23 Data Flow (Indirect Diagram)

24 Data Flow (Execute) May take many forms Depends on instruction being executed May include —Memory read/write —Input/Output —Register transfers —ALU operations

25 Data Flow (Interrupt) Simple Predictable Current PC saved to allow resumption after interrupt Contents of PC copied to MBR Special memory location (e.g. stack pointer) loaded to MAR MBR written to memory PC loaded with address of interrupt handling routine Next instruction (first of interrupt handler) can be fetched

26 Data Flow (Interrupt Diagram)

27 Prefetch Fetch accessing main memory Execution usually does not access main memory Can fetch next instruction during execution of current instruction Called instruction prefetch

28 Improved Performance But not doubled: —Fetch usually shorter than execution –Prefetch more than one instruction? —Any jump or branch means that prefetched instructions are not the required instructions Add more stages to improve performance

29 Pipelining  Meningkatkan kinerja komputer dapat dicapai dengan: o Memperbaiki teknologi rangkain electronic agar lebih cepat o Memperbaiki oragnaisasi nya : spt menambah jumlah register, cache memory dll. o Dari segi organisasi komputer juga disebut dengan Instruksi pipeline  Instruksi pipeline serupa dengan assembly line di suatu insdustri

30 Pipelining Instruksi yang paling sederhana dibagi menjadi 2 tingkat yaitu: —Fetch Instruction —Execute instruction Tingkat pertama mengambil instruksi dan menyimpan di buffer Jika tingkat kedua sdh free, tingkat satu memberikan instruksi ke tingkat kedua untuk dieksekusi, dan selama tingkat kedua mengeksekusi instruksi tingkat satu mengambil untuk instruksi berikutnya Disebut dengan Instruction prefetch atau fetch overlap

31 Pipelining Perhatikan gambar di slide berikut Waktu eksekusi umumnya lebih lama dari waktu Fetch, sehingga tingkat pertama (Fecth) menunggu untuk beberapa waktu. Conditional branch instruction akan membuat instruksi berikutnya yang akan diambil tidak jelas (belum tahu), Jadi tingkat Fetch harus menunggu sampai tingkat kedua selesai mengeksekusi instruksi. Untuk mengurangi waktu yang hilang solusi sbb: —Jika ada instruski conditional branch yang diberikan ke tingkat kedua, maka tingkat pertama langsung mengambil instruksi berikutnya —Jika tdk ada branch maka tdk ada waktu yang hilang —Jika ada branch maka instruksi yg sdh diambil dibuang (discarded) dan kemudian mengambil instruksi yang baru

32 Two Stage Instruction Pipeline

33 Pipelining Dengan pipeline dua tingkat diatas sudah dapat meningkatkan speed up Untuk menambah speedup lagi berarti instruksi di pecah-pecah lagi menjadi sbb: —Fetch instruction —Decode instruction —Calculate operands —Fetch operands —Execute instructions —Write result Overlap these operations

34 Timing of Pipeline

35 Dari gambar diatas terlihat bahwa : —Dengan 6 tingkat pipeline dapat mengurangi waktu eksekusi untuk 9 instruksi dari 54 time units menjadi 14 time units Jika ke-6 tingkat memerlukan durasi yang berbeda, maka yang lebih cepat harus menunggu. Masalah lain tentang conditional branch instruction. Perhatikan gbr dibawah, jika instruksi-3 branch ke instruksi-15.

36 Branch in a Pipeline

37 Six Stage Instruction Pipeline

38 Alternative Pipeline

39 Speedup Factors with Instruction Pipelining

40 Dealing with Branches Berbagai pendekatan untuk menangani Branch —Multiple Streams —Prefetch Branch Target —Loop buffer —Branch prediction —Delayed branching

41 Multiple Streams Kedua instruksi percabangan diambil dengan dua buah stream (Have two pipelines) Prefetch each branch into a separate pipeline Menggunakan pipeline yang sesuai Masalah dengan pendekatan ini : —Akan terjadi rebutan dan delay untuk akses register dan memori —Instruksi branch tambahan bisa masuk lagi sebelum instruksi branch utama diselesaikan, sehingga tdk mampu ditangani oleh sistem ini. Contoh mesin yg menggunakan pendekatan ini IBM 370/168 dan IBM 3033

42 Prefetch Branch Target Dilakukan pengambilan awal (prefetch) terhadap instruksi setelah percabangan dan target percabangan Digunakan oleh: IBM 360/91 Masalah: diperlukan buffer dan register untuk preftech

43 Loop Buffer Menggunakan Very fast memory Very good for small loops or jumps Used by CRAY-1

44 Branch Prediction

45 Branch Prediction (1) Berbagai teknik digunakan untuk memprediksi apakah suatu percabangan akan diambil al: —Predict never taken o Assume that jump will not happen o Always fetch next instruction o & VAX 11/780 o VAX will not prefetch after branch —Predict always taken o Assume that jump will happen o Always fetch target instruction o Berdasarkan studi lebih dari 50% branch dilaksanakan o 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.

46 Branch Prediction (2) —Predict by Opcode o Prosesor berasumsi jump akan dilaksanakan pada instruksi dengan opcode terterntu saja. o Can get up to 75% success —Taken/Not taken switch o Based on previous history o Good for loops

47 Branch Prediction (3) Branch History Table —Menyimpan history instruksi-instruksi branch yang baru saja dieksekusi

48 Branch Prediction Flowchart

49 Branch Prediction State Diagram

50 Dealing With Branches

51 Intel Pipelining Fetch —From cache or external memory —Put in one of two 16-byte prefetch buffers —Fill buffer with new data as soon as old data consumed —Average 5 instructions fetched per load —Independent of other stages to keep buffers full Decode stage 1 —Opcode & address-mode info —At most first 3 bytes of instruction —Can direct D2 stage to get rest of instruction Decode stage 2 —Expand opcode into control signals —Computation of complex address modes Execute —ALU operations, cache access, register update Writeback —Update registers & flags —Results sent to cache & bus interface write buffers

52 80486 Instruction Pipeline Examples

53 Pentium 4 Registers

54 EFLAGS Register

55 Control Registers

56 MMX Register Mapping MMX uses several 64 bit data types Use 3 bit register address fields —8 registers No MMX specific registers —Aliasing to lower 64 bits of existing floating point registers

57 Pentium Interrupt Processing Interrupts —Maskable —Nonmaskable Exceptions —Processor detected —Programmed Interrupt vector table —Each interrupt type assigned a number —Index to vector table —256 * 32 bit interrupt vectors 5 priority classes

58 PowerPC User Visible Registers

59 PowerPC Register Formats

60 MMX Register Mapping Diagram

61 SOAL Diketahui prosesor tanpa pipeline dengan 6 tahapan eksekusi instruksi masing-masing memerlukan waktu sbb: 50 ns, 50 ns, 60 ns, 60 ns, 50 ns, and 50 ns. Hitung : (a). Instruction latency (b). Total waktu untuk mengeksekusi 100 instruksi Jawab: (a) = 320 ns (b). 100*320 = ns

62 SOAL Menyambung soal diatas 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 = = 65 ns Instruction latency = 65 ns Time to execute 100 instructions = 65*6 + 65*99 = = 6825 ns

63 SOAL Dari kedua soal diatas hitung speed up nya Jawab: Average instruction time not pipelined = 320 ns Average instruction time pipelined = 65 ns Speedup = 320 / 65 = 4.92

64


Download ppt "William Stallings Computer Organization and Architecture 6 th Edition Chapter 12 CPU Structure and Function."

Presentasi serupa


Iklan oleh Google