TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler...

71
ARSITEKTUR KOMPUTER “Struktur dan Fungsi CPU” Di Susun Oleh : RINI ANDINI 1129040148 PTIK 02 JURUSAN PENDIDIKAN TEKNIK ELEKTRO

Transcript of TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler...

Page 1: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

ARSITEKTUR KOMPUTER“Struktur dan Fungsi CPU”

Di Susun Oleh :

RINI ANDINI1129040148

PTIK 02

JURUSAN PENDIDIKAN TEKNIK ELEKTROPROGRAM STUDI PTIK

UNIVERSITAS NEGERI MAKASSAR2014

Page 2: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

BAB 12

STRUKTUR DAN FUNGSI CPU

A. Organisasi Prosesor

Untuk memahami organisasi CPU, kita perhatikan syarat-syarat yang terdapat pada

CPU, hal-hal yang harus dilakukan :

Mengambil instruksi : CPU membaca instruksi dari memori.

Interupsi instruksi : instruksi dikodekan untuk menentukan tindakan apa yang

diperlukan.

Mengambil Data : eksekusi suatu instruksi dapat memerlukan pembacaan data dari

memori atau modul I/O.

Mengolah Data : eksekusi suatu eksekusi dapat memerlukan penulisan data ke

memori atau modul I/O

Untuk melakukan hal ini, harus jelas bahwa CPU diperlukan untuk menyimpan

beberapa data untuk sementara. CPU harus mengingat lokasi instruksi terakhir sehingga CPU

dapat mengetahui di mana mendapatkan instruksi selanjutnya. CPU diperlukan untuk

menyimpan instruksi dan data untuk sementara selagi suatu instruksi sedang dieksekusi.

Dengan kata lain, CPU memerlukan sebuah memori internal kecil.

Gambar 12.1 CPU dengan Bus sistem

2Struktur dan Fungsi CPU

Page 3: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Gambar 12.1 merupakan pandangan sederhana tentang CPU, mengindikasikan koneksi

yang lain dari sistem via bus sistem. Sebuah antar-muka yang serupa akan diperlukan untuk

sembarang struktur interkoneksi yang diuraikan pada Bab 3. Pembaca akan mengingat bahwa

komponen utama CPU adalah unit logika dan aritmatika (Arithmetic and Logic Unit - ALU)

dan unit kendali (Control Unit - CU). ALU melakukan perhitungan aktual atau pengolahan

data. Unit kontrol mengontrol pergerakan data dan instruksi ke dalam CPU dan ke luar CPU

dan mengontrol operasi ALU. Sebagai tambahan, gambar menunjukkan memori internal

minimal, terdiri dari set lokasi penyimpanan, disebut register.

Gambar 12.2 merupakan gambaran CPU secara lebih terperinci. Diindikasikan lintasan

transfer data dan kontrol logika, mencakup elemen internal yang ditandai bus CPU. Elemen

ini diperlukan untuk memindahkan data antara berbagai register dan ALU, karena ALU

sesungguhnya beroperasi hanya pada data di dalam memori CPU internal. Gambar tersebut

juga menunjukkan elemen-elemen dasar umum dari ALU. Perlu dicatat persamaan antara

struktur internal komputer secara keseluruhan dan struktur internal CPU. Pada kedua kasus,

terdapat koleksi elemen-elemen utama yang kecil (komputer:CPU, I/O, memori;CPU: unit

kontrol, ALU, register) yang dihubungkan oleh lintasan data.

Gambar 12.2 Struktur Internal CPU

3Struktur dan Fungsi CPU

Page 4: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

B. Organisasi Register

Sistem computer menggunakan hirarki memori.

Pada tingkatan yang di atas , memori yang lebih cepat,lebih kecil dan lebih mahal (per

bit).

Di dalam CPU terdapat sekumpulan register yang tingkatan memorinya berada di atas

hirarki memori utama dan chace.

Fungsi register pada CPU :

1. User-Viesible Registers

Register ini memungkinkan pemograman bahasa mesin dan bahasa assembler

meminimalkan referensi main memori dengan cara mengoptimasi penggunaan

register. Register yang dapat di referensikan dengan menggunakan bahasa mesin

yang di eksekusi CPU. Kategorinya :

general purpouse

data

alamat

kode-kode kondisi

General purpose register dapat digunakan untuk berbagai funsi oleh

pemrogram dan berisi operan-operan sembarang op-code, dimana pada kasus-kasus

tertentu general purpouse register dapat digunakan untuk funsi-fungsi

pengalamatan misalnya register indirect,displacement . Pada kasus lainnya terdapat

partial atau batasan yang jelas antara register data dengan register alamat

Register data hanya dipakai menampung data dan tidak digunakan untuk

kalkulasi dan alamat operand , sedangkan register alamat menyerupai general

purpouse register atau register-register tersebut dapat digunakan untuk mode

pengalamatan tertentu.

Contohnya :

Segmen register

Segmen register menyimpan alamat berbasis segmen dan mungkin terdapat

register-register misalnya satu register untuk proses saat itu

Index register

Untuk alamat yang terindeks dan mungkin autoindexed

4Struktur dan Fungsi CPU

Page 5: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Stack Pointer

Apabila terdapat pengamatan stack yang user visible maka biasanya stack

berada didalam memori dan terdapat register dedicated yang menunjuk ke

bagian atas stack dan memungkinkan pengalaman implicit yaitu push,popdan

istruksi stack lainnya yang tidak perlu stack eksplisit.

2. Control and status register

Register ini digunakan oleh unit control untuk mengontrol operasi CPU dan

oleh program system operasi untuk mengontrol eksekusi program. Bermacam-

macam register CPU yang digunakan untuk mengontrol operasi CPU. Register

yang penting bagi eksekusi instruksi

Program counter (PC) atau pencacah program yang berisi alamat instruksi

yang akan diambil

Inctrusion register (IR) berisi instruksi yang diambil terakhir

Memori address Register (MAR) berisi alamat sebuah lokasi didalam memori

Memori buffer register ( MBR) berisih sebuah word data yang dituliskan

kedalam memori atau word yang terakhir dibaca

Program status word adalah semua rancangan CPU mencakup sebuah register

atau sekumpulan register yang berisi informasi status, berisi kode kondisi dan

informasi lainnya.

Seperti yang telah kita bahas pada Bab 4, sistem komputer menggunakan hierarki

memori. Pada tingkat hierarki yang lebih tinggi, memori lebih cepat, lebih kecil, dan lebih

mahal (per bit). Di dalam CPU, terdapat set daftar yuang berfungsi sebagai tingkatan memori

di atas memori utama dan cache pada hierarki. Register pada CPU membentuk dua peran:

Register terlihat oleh pengguna : ini memungkinkan pemrogram bahasa mesin

atau bahasa asembli untuk memperkecil acuan memori dengan pengoptimalan

penggunaan register

Register kontrol dan status : ini digunakan oleh unit kontrol untuk mengontrol

operasi CPU dan program sistem operasi mengontrol eksekusi program.

Tidak ada satupun separasi register yang bersih ke dalam dua kategori ini. Sebagai

contoh, pada beberapa mesin pencacah program adalah terlihat oleh pengguna (misalnya,

Pentium), tetapi pada umumnya tidak (misalnya, PowerPC). Karena tujuan pembahasan

berikutnya, bagaimanapun, kita akan menggunakan kategori ini.

5Struktur dan Fungsi CPU

Page 6: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Register Terlihat oleh Pengguna

Suatu register terlihat oleh pengguna merupakan salah satu yang dapat diacu dengan

menggunakan bahasa mesin yang mengeksekusi CPU. Kita dapat menandainya di dalam

kategori berikut:

Tujuan umum

Data

Alamat

Kode kondisi

Register bertujuan umum oleh pemrogram dapat ditugaskan untuk berbagai macam

fungsi. Kadang-kadang penggunanya di dalam set instruksi merupakan orthogonal ke operasi

tersebut. Yaitu, sembarang regsiter bertujuan umum dapat terdiri dari operand untuk setiap

opcode. Hal ini memberikan penggunaan register bertujuan umum yang benar.

Bagaimanapun, sering ada pembatasan. Sebagai contoh, mungkin terdapat register yuang

didedikasikan untuk titik-mengambang dan operasi stack.

Dalam beberapa hal, register bertujuan umum dapat digunakan untuk fungsi

pengalamatan (misalnya, register tidak langsung, penggantian). Pada kasus lain, terdapat

sparasi parsial atau separasi bersih antara register data dan register alamat. Register data

hanya dapat digunakan untuk menampung data dan tidak dapat digunakan dalam kalkulasi

alamat operand. Register alamat dapat berdiri sendiri menjadi bertujuan umum, atau dapat

diabdikan bagi mode pengalamatan tertentu. Contohnya meliputi yang berikut:

Pointer segmen: Pada mesin dengan pengalamatan tersegmen (lihat Subbab

8.3), register segmen menampung alamat basis segmen. Mungkin ada berbagai

register: sebagai contoh, satu untuk sistem operasi dan satu untuk proses akhir.

Register indeks: Ini digunakan untuk pengalamatan terindeks indexed dan

mungkin adalah terindeks otomatis.

Pointer stack: Jika terdapat pengalamatan stack terlihat oleh pengguna, maka

stack secara umum berada dalam memori dan terdapat register terdedikasi

yang mengarah ke puncak stack. Hal ini memungkinkan pengalamatan

tersembunyi; yaitu, push, pop, dan instruksi stack lain yang tidak perlu terdiri

dari operand stack eksplisit.

Terdapat beberapa masalah rancangan perlu diperhatikan di sini. Salah satu masalah

penting adalah apakah perlu menggunakan register bertujuan umum seluruhnya atau hanya

untuk keperluan khusus saja. Kita telah membahas masalah ini pada bab sebelumnya, karena

6Struktur dan Fungsi CPU

Page 7: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

masalah ini mempengaruhi rancangan set instruksi. Dengan penggunaan register-register

khusus, hal ini umumnya dapat berupa implisit tentang jenis register yang mana akan diacu

oleh spesifier operand tertentu. Spesifier operand hanya perlu mengidentifikasi salah satu set

register khusus tidak perlu mengidentifikasi seluruh register, karena akan dapat menghemat

bit. Pada sisi lain, spesialisasi ini membahas fleksibilitas pemrogram.

Masalah rancangan lainnya adalah jumlah register yang tersedia, baik register bertujuan

umum maupun register data ditambah register alamat. Seperti halnya di atas, masalah ini

mempengaruhi rancangan set instruksi karena register yang lebih banyak akan memerlukan

bit operand spesifier yang lebih banyak pula. Seperti yang telah dibahas sebelumnya, register

yang berukuran antara 8 dan 32 dapat dikatakan optimum [LUND77]. Register yang

jumlahnya lebih sedikit mengakibatkan acuan memori secara berarti (misalnya, lihat

[WILL90]). Namun, suatu pendekatan baru, yang mendapatkan keuntungannya dengan

menggunakan ratusan register, telah terbukti pada beberapa sistem RISC dan akan dibahas

pada Bab 13.

Akhirnya, ada masalah panjang register. Register yang harus menampung alamat jelas

sedikitnya harus cukup panjang untuk menampung alamat yang paling besar. Register data

harus biasa menampung nilai-nilai kebanyakan jenis data. Beberapa mesin memungkinkan

dua register berdekatan untuk digunakan sebagai mesin untuk menampung nilai-nilai dengan

panjang ganda.

Suatu kategori register akhir, yang secara parsial sedikit kelihatan oleh pemakai, kode

kondisi penampung (juga dikenal sebagai flag). Kode kondisi adalah set bit oleh hardware

CPU sebagai hasil operasi. Sebagai contoh, suatu operasi aritmatika dapat menghasilkan hasil

positif, negatif, nol, atau overflow. Sebagai tambahan terhadap hasilnya sendiri yang

disimpan dalam register atau memori, kode kondisi juga di-set. Kode sesudah itu diuji

sebagai bagian dari operasi cabang bersyarat.

Bit kode kondisi dikumpulkan ke dalam satu register atau lebih. Pada umumnya,

mereka membentuk bagian register kontrol. Umumnya, instruksi mesin memungkinkan bit ini

dibaca oleh acuan implisit, tetapi pemrogram tidak bisa mengubahnya.

Dalam beberapa mesin, panggilan subrutin akan mengakibatkan penyimpanan otomatis

semua register terlihat leh pengguna, untuk dikembalikan ke kondisi semula. CPU melakukan

penyimpanan dan pengembalian sebagai bagian dari eksekusi instruksi panggilan dan

instruksi kembalian. Hal ini memungkinkan masing-masing subrutin untuk menggunakan

register terlihat oleh pengguna secara independen. Pada mesin yang lain, merupakan

7Struktur dan Fungsi CPU

Page 8: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

tanggung jawab pemrogram untuk menyimpan isi register utama yang relevan terlihat oleh

pengguna ke panggilan subrutin, termasuk instruksi untuk tujuan ini pada proggram.

Register Kontrol dan Status

Terdapat berbagai macam register CPU yang dilakukan untuk mengontrol operasi CPU.

Kebanyakan CPU, pada kebanyakan mesin, tidak terlihat oleh pengguna. Sebagian register

dapat terdeteksi oleh instruksi mesin dieksekusi di dalam mode kontrol atau mode sistem

operasi.

Tentu saja, mesin yang berbeda akan mempunyai organisasi register yang berbeda dan

penggunaan istilah yang berbeda. Kita mendaftarnya di sini suatu daftar lengkap jenis

register, dengan suatu uraian ringkas.

Empat register penting untuk eksekusi instruksi:

Pencacah Program (Program counter-PC): Terisi alamat instruksi yang diambil

Register instruksi (Instruction register-IR): Terisi instruksi yang paling akhir

diambil

Register alamat memori (Memory address register-MAR): Terdiri alamat lokasi

dalam memori

Register buffer memori (Memory buffer register-MBR): Terdiri word data yang

perlu ditulis ke memori atau word yang paling akhir dibaca.

Secara umum, CPU meng-update PC setelah instruksi diambil sedemikian sehingga PC

selalu menunjuk kepada instruksi berikutnya untuk dieksekusi. Sebuah instruksi cabang atau

skip juga akan memodifikasi isi dari PC. Instruksi yang diambil terisi ke dalam IR, di mana

spesifier opcode dan operand dianalisis. Data ditukar dengan memori dengan menggunakan

MAR dan MBR. Pada sistem bus terorganissasi, MAR menghubungkan bus alamat secara

langsung, dan MBR menghubungkan bus data secara langsung. Regsiter terlihat oleh

pengguna, pada gilirannya, menukar data dengan MBR.

Empat register yang baru saja disebutkan digunakan untuk pemindahan data antara CPU

dan memori. Di dalam CPU, data harus diperkenalkan kepada ALU untuk dioalah. ALU

dapat mempunyai akses langsung ke MBR dan register terlihat oleh pengguna. Sebagai

alternatif, mungkin terdapat register pem-buffer-an tambahan pada batas ALU; register ini

bertindak sebagai register input dan output untuk ALU dan pertukaran data dengan MBR dan

register terlihat oleh pengguna.

Semua rancangan CPU meliputi sebuah register atau sekelompok register, sering

dikenal sebgai word status program (Program Status Word-PSW), yang terdiri dari informasi

8Struktur dan Fungsi CPU

Page 9: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

status. PSW secara umum terdiri dari kode kondisi ditambah informasi status lainnya. Bidang

umum atau flag meliputi hal-hal berikut:

Tanda: Terdiri bit tanda hasil dari operasi aritmatika terakhir

Nol: Di-set ketika hasilnya sama dengan 0

Pembawa: Di-set jika sebuah operasi menghasilkan suatu pembawa (penambahan) ke

dalam atau meminjam (pengurangan) ke luar dari bit order tinggi. Digunakan untuk

operasi aritmatika multiword

Sama: Di-set jika hasil perbandingan logis adalah persamaan

Overflow: Digunakan untuk mengindikasikan overflow aritmatika

Interupsi enable/disable: Digunakan untuk interupsi enable atau disable

Supervisor: Mengindikasikan apakah CPU melakukan pengeksekusian dalam mode

supervisor atau pengguna. Instruksi khusus tertentu hanya dapat dieksekusi dalam

mode supervisor, dan area memori tertentu hanya dapat diakses dalam mode

supervisor.

Sejumlah daftar lain berhubungan dengan status dan kontrol dapat ditemukan di dalam

rancangan CPU tertentu. Sebagai tambahan terhadap PSW, mungkin terdapat pointer bagi

blok memori yang terdiri dari informasi status tambahan (misalnya, blok-blok kontrol

proses). Pada mesin yang menggunakan interupsi tervektor, suatu register vektor interupsi

dapat diberikan. Jika suatu stack digunakan untuk mengimplementasikan fungsi tertentu

(misalnya, panggilan subrutin), maka pointer stack sistem diperlukan. Suatu pointer tabel

halaman digunakan dengan sistem memori virtual. Pada akhirnya, regsiter dapat digunakan

dalam kontrol operasi I/O.

Sejumlah faktor mempengaruhi rancangan kontrol dan status organisasi register.

Sebuah masalah penting adalah dukungan sistem operasi. Jenis informasi kontrol tertentu

merupakan kegunaan sistem operasi yang spesifik. Jika perancang CPU mempunyai

pemahaman fungsional dari sistem operasi digunakan, maka organisasi register dapat

dikhususkan kepada sistem operasi sampai taraf tertentu.

Keputusan rancangan penting lainnya merupakan alokasi informasi antara register dan

memori. Adalah umum untuk mempunyai dedikasi dahulu (paling rendah) sedikit ratusan

atau ribuan word memori untuk tujuan kontrol. Perancang harus memutuskan berapa banyak

informasi kontrol harus berada di dalam register dan berapa banyak berada di dalam memori.

Kerugian yang umum adalah biaya versus kecepatan.

Contoh Organisasi Regiter Mikroprosesor

9Struktur dan Fungsi CPU

Page 10: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Untuk menguji dan membandingkan organisasi register adalah instruksi dari sistem

yang dapat diperbandingkan. Pada bagian ini, kita memperhatikan dua mikroprosesor 16-bit

yang dirancang pada waktu yang sama; Motorola MC68000 [STRI79] dan Intel 8086

[MORS78]. Gambar 12.3a dan b menunjukkan setiap organisasi register; register semata-

mata internal, seperti register alamat memori (MAR), tidak ditunjukkan.

Gambar 12.3 Contoh Organisasi Register Mikro Prosesor

Partisi MC68000 register 32-bit ke dalam

10Struktur dan Fungsi CPU

Page 11: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

11Struktur dan Fungsi CPU

Page 12: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

12Struktur dan Fungsi CPU

Page 13: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

13Struktur dan Fungsi CPU

Page 14: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

14Struktur dan Fungsi CPU

Page 15: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

C. Siklus Instruksi

Pada sub bab 3.2, diuraikan siklus instruksi CPU. Untuk mengingat, siklus instruksi meliputi

subsiklus yang berikut :

Mengambil : Baca instruksi berikutnya dari memori kedalam CPU

Eksekusi : Menginterpretasikan opcode dan membentuk operasi yang ditandai

Interupsi : Jika interupsi dimungkinkan dan suatu interupsi telah terjadi,

menyimpan status proses tertentu dan melayani interupsi.

Kita kini dalam posisi untuk merinci sedikit banyak pada siklus instruksi. Pertama, kita

harus memperkenalkan salah satu subsiklus tambahan, dikenal sebagai siklus tidak langsung.

a. Siklus Tidak Langsung

Kita telah melihat, pada bab 11 bahwa eksekusi instruksi dapat melibatkan

satu operand atau lebih dalam memori, yang masing-masing memerlukan akses

memori. Lebih lanjut, jika pengalamatan tidak langsung digunakan, maka diperlukan

akses memori tambahan.

15Struktur dan Fungsi CPU

Page 16: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Kita dapat berpikir tentang pengambilan alamat tidak langsung sebagai satu

lagi subsiklus instruksi. Hasilnya ditunjukkan pada gambar 12.4. Pipeline utama

aktivitas terdiri dari mengambil instruksi bertukar-tukar dan aktivitas eksekusi

instruksi. Setelah instruksi diambil, instruksi diuji untuk menentukan bila sembarang

pengalamatan tidak langsung dilibatkan. Jika demikian, operan yang diperlukan di

ambil dengan menggunakan pengalamatan tidak langsung. Eksekusi berikut, sebuah

interupsi dapat diproses sebelum pengambilan instruksi berikutnya.

Cara lain untuk memandang proses ini di tunjukkan pada gambar 12.5, yang

merupakan versi yang ditinjau kembali terhadap gambar 3.12. Hal ini

mengilustrasikan dengan tepat sifat siklus instruksi. Sekali suatu instruksi diambil,

spesifier operand-nya harus dikenali. Masing-masing operand input pada memori

kemudian diambil, dan proses ini mungkin memerlukan pengalamatan tidak langsung.

Operand berbasis register tidak perlu diambil. Sekali opcode dieksekusi, proses

serupa dapat diperlukan untuk menyimpan hasilnya di dalam memori utama.

b. Aliran Data

Urutan peristiwa yang tepat selama siklus instruksi tergantung pada rancangan

CPU. Kita dapat, bagaimanapun, mengindikasikan pada garis besarnya apa yang

harus terjadi. Mari kita asumsikan bahwa CPU yang memberikan register alamat

memori (RUSAKKAN), suatu register penyangga memori(MBR) register alamat

memori(Memory Address Register-MAR), pencacah program(program counter-PC)

dan register instruksi (instuction register-IR).

Sepanjang siklus pengambilan, instruksi dibaca dari memori.. Gambar 12.6

menunjukkan aliran data selama siklus ini. PC terdiri dari alamat instruksi berikutnya

untuk diambil. Alamat ini dipindah ke MAR dan menempatkannya pada bus alamat.

Unit kontrol meminta pembacaan memori, dan hasilnya ditempatkan pada bus data

dan disalin ke dalam MBR dan kemudian di pindah ke IR. Sementara itu, PC

ditambahklan dengan 1, yang berkenaan dengan persiapan untuk pengambilan

berikutnya.

Sekali siklus pengambilan selesai, unit kontrol menguji isi IR untuk

menentukan jika IR terdiri dari spesifier operand dengan menggunakan pengalamatan

tidak langsung. Jika demekian, dibentuk siklus tidak langsung. Seperti ditunjukkan

pada gambar 12.7, mertupakan siklus sederhana. N bit MBR paling kanan, yang

16Struktur dan Fungsi CPU

Page 17: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

terdiri dari acuan alamat, ditransfer ke MBR. Kemudian unit kontrol meminta

pembacaan memori, untuk mendapatkan alamat yang diinginkan dari operand ke

MBR.

Siklus pengambilan dan siklus tidak langsung adalah sederhana dan dapat

diramalkan. Siklus eksekusi mempunyai banyak bentuk, bentuknya tergantung pada

berbagai macam instruksi mesin di dalam IR. Siklus ini dapat melibatkan pemindahan

data antar register, baca atau tulis dari memori atau I/O dan atau pernyataan dari

ALU.

Seperti siklus pengambilan dan siklus tidak langsung, siklus interupsi adalah

sederhana dan dapat diramalkan (Gambar 12.8). Isi terakhir PC harus disimpan

sehingga CPU dapat melakukan aktivitas normal setelah interupsi. Jadi, isi PC di

transfer ke MBR untuk di tulis ke dalam memori. Lokasi memori khusus yang

tersedia untuk tujuan ini terisi ke dalam MAR unit kontrol. Hal itu dapat, sebagai

contoh, menjadi pointer stack. PC terisi dengan alamat rutin interupsi. Sebagai

hasilnya, siklus instruksi berikutnya akan di mulai dengan pengambilan instruksi yang

sesuai.

12.4 Pipelining Instruksia. Strategi Pipelining

1. Pengertian Pipeline

Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara

bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit

pemrosesan. Dengan cara ini, maka unit pemrosesan selalu bekerja.

Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistemkomputer.

Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah,

seperti pada instruksi yang dijaankan oleh microprocessor.

Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan

sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam

microprocessor yang menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses,

maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi,

17Struktur dan Fungsi CPU

Page 18: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada

sejumlah tahapan yang akan dilewati oleh sebuah instruksi.

Dengan penerapan pipeline ini pada microprocessor akan didapatkan peningkatan

dalam unjuk kerja microprocessor. Hal ini terjadi karena beberapa instruksi dapat dilakukan

secara parallel dalam waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan

peningkatan sebesar X kali dibandingkan dengan microprocessor yang tidak menggunakan

pipeline, apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah X tahap.

Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi

tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan

yang tepat agar proses tetap berjalan dengan benar. Sedangkan ketergantungan terhadap data,

bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang

sebelumnya. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk

melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter,

sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya

mungkin tidak mengharapkan terjadinya perubahan program counter.

Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah

arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak

menggunakan arsitektur pipeline dengan microprocessor yang menerapkan teknik ini. Pada

microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai,

baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessoryang

menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang

berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses

secara bersamaan ini, ada dalam tahap proses yang berbeda.

Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi. Misalnya sebuah

microprocessor menyelesaikan sebuah instruksi dalam 4 langkah. Ketika instruksi pertama

masuk ke langkah 2, maka instruksi berikutnya diambil untuk diproses pada langkah 1

instruksi tersebut. Begitu seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi

kedua masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.

2. Kenapa komputer menggunakan teknik Pipelining??

18Struktur dan Fungsi CPU

Page 19: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Drive for computing speed never ends.

Improvements from architecture or organization point of view are limited

Clock speed enhancement is done, but more improvement should be sought from

instruction execution perspective, instead of hardware design

Flyn’s Taxonomy : SISD (Single Instruction Single stream of Data), SIMD (Single

Instruction Multiple stream of data) or MIMD – Parallel

Parallel Processor : may be a solution

Use two processors (or more, instead of one) in a computer system

How do it runs the code ? (program)

Suppose, we have a problem :

C = (A2+ B2)

3. Intruksi pipeline

Tahapan pipeline

Mengambil instruksi dan membuffferkannya

Ketika tahapn kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan

tersebut

Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama

memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan

membuffferkan instruksi berikutnya .

Instuksi pipeline:

Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka

dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :

Instruksi 1: ADD  AX, AX

Instruksi 2: ADD EX, CX

Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi

tersebut(ID). Pada menerjemahkan instruksi  1 tersebut, komponen IF tidak bekerja. Adanya

teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan

19Struktur dan Fungsi CPU

Page 20: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

instruksi 1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2

diterjemahkan (ID).

Contoh pengerjaan instruksi tanpa pipeline

t = 1 2 3 4 5 6 7 8 9 10

ADD AX,AX IF DE IF DE EX

ADD BX,CX IF DE IF DE EX

Disini instruksi baru akan dijemput jika instruksi sebelumnya telah selesai dilaksanakan.

Contoh

pengerjaan instruksi dengan pipeline

Disini instruksi baru akan dipanggil setelah tahap IF menganggur (t2).

Dengan adanya pipeline dua instruksi selesai dilaksanakan pada detik keenam (sedangkan

pada kasus tanpa pipeline baru selesai pada detik kesepuluh). Dengan demikian telah terjadi

percepatan sebanyak 1,67x dari 10T menjadi hanya 6T. Sedangkan untuk pengerjaan 3 buah

instruksi terjadi percepatan sebanyak 2, 14 dari 15T menjadi hanya 7T.

Untuk kasus pipeline sendiri, 2 instruksi dapat dikerjakan dalam 6T(CPI = 3) dan instruksi

dapat dikerjakan dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat dikerjakan dalam  8T

(CPI =2). Ini berarti utnuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI = 1,04).

Pada kondisi  ideal CPI akan harga 1.

4. Permasalahan di (dalam) Instruksi Pipelining

VARIASI WAKTU:

20Struktur dan Fungsi CPU

t = 1 2 3 4 5 6 7 8 9 10

ADD AX,AX IF DE IF DE EX

ADD BX,CX IF DE IF DE EX

ADD DX,DX IF DE IF DE EX

Page 21: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Tidak semua tahap memakan waktu yang sama. Ini berarti untuk mendapatkan kecepatan

dalam intruksi pipelining sangat ditentukan oleh tahap yang paling lambat. Masalah ini

sangat akut dalam memproses instruksi, sejak instruksi yang berbeda memiliki persyaratan

operand waktu proses yang berbeda. Selain itu, diperlukan mekanisme sinkronisasi untuk

memastikan bahwa data lewat dari stage ke stage hanya ketika kedua stage siap.

DATA BERBAHAYA (DATA HAZARDS):

Ketika beberapa instruksi di eksekusi secara parsial, masalah timbul jika mereka referensi

data yang sama. Kita harus memastikan bahwa instruksi selanjutnya tidak berusaha untuk

mengakses data lebih cepat dari instruksi sebelumnya, jika ini terjadi akan menyebabkan

hasil yang salah. Sebagai contoh, instruksi N +1 tidak harus diperbolehkan untuk mengambil

sebuah operand yang belum disimpan oleh instruksi N.

PERCABANGAN (BRANCH):

untuk mengambil  instruksi berikutnya, kita harus tahu mana saja yang dibutuhkan, Jika

instruksi ini adalah cabang bersyarat (conditional branch) instruksi berikutnya mungkin tidak

diketahui sampai saat diproses.

JEDA(INTERUPTSI):

interupsi membuat instruksi extra yang tidak terencana untuk masuk kedalam aliran intruksi.

jeda(Interrupt) harus berperan antar instruksi. yaitu, ketika satu instruksi telah selesai dan

berikutnya belum dimulai. Dengan pipelining, instruksi berikutnya biasanya dimulai sebelum

yang sekarang telah selesai.

Semua masalah ini harus diselesaikan dalam konteks kebutuhan kita untuk mendaatkan

kinerja dengan kecepatan tinggi. Jika kita tidak dapat mencapai kecepatan yang cukup,

pipelining mungkin tidak sepadan.

5. Beberapa Solusi

Strategi pemecahan masalah diatas adalah sebagai berikut :

VARIASI PEMILIHAN WAKTU  (TIMING VARIATIONS)

21Struktur dan Fungsi CPU

Page 22: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Untuk memaksimalkan kecepatan, untuk menyeragam,  tahap pertama yang harus dilakukan

adalah mekanisme waktu yang diperlukan. Sebuah metode sinkron dapat digunakan,jika

tahapan telah dianggap lengkap dari  sejumlah tertentu siklus waktu. Namun, teknik

asynchronous secara umum lebih efisien. Bit atau garis sinyal dilewatkan maju ke tahap

berikutnya menunjukkan data sudah valid. Sebuah sinyal juga harus lulus kembali dari tahap

berikutnya ketika data telah diterima.

Dalam semua kasus harus ada sebuah penyangga antar tahap untuk menyimpan data, kadang-

kadang penyangga ini diperluas ke memori yang dapat menyimpan beberapa item data.

Setiap tahap harus berhati-hati untuk tidak menerima input data sampai berlaku, dan tidak

untuk menghasilkan data output sampai ada ruang dalam penyangga (buffer).

DATA BERBAHAYA (DATA HAZARDS)

Untuk melindungi dari data yang berbahaya, perlu untuk menyadari setiap tahap yang

digunakan oleh tahap  pipelining yang lebih jauh . Jenis penggunaan juga harus diketahui, 

dua pembacaan yang terurut tidak boleh bertentangan dan tidak boleh menyebabkan

perlambatan pada pipeline. Namun  akan  ada kemungkinan konflik jika terjadi penulisan.

Pipeline biasanya dilengkapi dengan small associative check memory yang dapat menyimpan

alamat dan jenis operasi (read atau write) untuk setiap instruksi yang ada di pipeline. Konsep

“alamat(address)t” harus diperluas untuk mengidentifikasi register. Setiap instruksi hanya

dapat mempengaruhi sejumlah kecil dari operand,  tapi efek yang tidak langsung addressing

tidak boleh diabaikan.

Ketika instruksi bersiap memasuki pipa, alamat operan telah disimpan.Jika ada konflik,

instruksi (dan yang di belakangnya) harus menunggu. Ketika ada konflik, instruksi memasuki

pipa dan alamat operan disimpan dalam memori cek. Ketika instruksi selesai, alamat ini akan

dihapus. memori harus bisa untuk menangani proses pencarian berkecepatan tinggi

yangdiperlukan.

PERCABANGAN (BRANCHING)

Masalah dalam percabangan adalah pipelining diperlambat oleh instruksi karena kita tidak

tahu cabang  yang mana yang harus kita ikuti. Dengan tidak adanya bantuan spesial dalam

22Struktur dan Fungsi CPU

Page 23: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

masalah ini, perlu menunda pemrosesan instruksi  selanjutnya sampai tujuan percabangan

diselesaikan. Karena cabang sangat sering, penundaan ini bersifat tidak dapat diterima.

Salah satu solusi yang banyak digunakan, terutama di RISC, adalah menunda percabangan.

Dalam metode ini, rangkaian instruksi ini dirangkai sedemikian rupa, sehingga setelah

suatuinstruksi, instruksi berikutnya bisa selalu di ekskusi, dan kemudian cabang di hapus.

Dengan begitu tiap-tiap cabang harus diikuti oleh satu instruksi yang secara logika

mendahuluinya dan diharapkan untuk dieksekusi dalam semua kasus. Hal ini akan

memberikan ruang bernafas (istirahat) bagi pipeline. Jika perlu, instruksi ini bisa merupakan

suatu no-op, tapi, seringnya penggunaan no-op akan merusak fungsi kecepatan.

Penggunaan teknik ini memerlukan metode pengkodean yang membingungkan bagi

progammer, tetapi tidak terlalu sulit bagi generator kode compiler.

Kebanyakan teknik lain menggunakan ekskusi spekulatif, di mana instruksi yang diproses

yang tidak dikenal dengan pasti, dianggap sebagai benar. Hal ini harus dihindari, harus

dibuang dan tidak di simpan.

Solusi yang biasa digunakan adalah dengan mengikuti cabang yang jelas, yaitu instruksi

sekuensial berikutnya, berhati-hati untuk tidak melakukan tindakan yang tidak bisa dirubah.

Operan mungkin diambil dan di proses, tetapi tidak akan ada hasil sampai cabang di

terjemahkan. Jika pilihan itu salah, dapat di tinggalkan dan cabang alternatif dapat di proses.

Metode ini bekerja dengan cukup baik jika cabang  jelas dan benar. Ketika coding

menggunakan pipelined CPU, perawatan harus dilakukan untuk kode cabang (terutama

transfer error) sehingga jalur luruslah yang biasanya diambil. Tentu saja, bercabang yang

tidak di perlukan harus dihindari.

Kemungkinan lain adalah untuk menyusun kembali program sehingga cabang ada lebih

sedikit, misalnya dengan tidak mengikuti jenis loop tertentu. Ini dapat dilakukan dengan

mengoptimalkan kompiler atau, dalam beberapa kasus, dengan perangkat keras itu sendiri.

Sebuah strategi yang pada umumya di gunakan oleh banyak arsitektur saat ini beberapa jenis

prediksi cabang. Hal ini mungkin berdasarkan informasi yang diberikan oleh kompilator atau

pada statistik yang dikumpulkan oleh perangkat keras. Tujuaannya adalah membuat perkiraan

23Struktur dan Fungsi CPU

Page 24: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

terbaik apakah cabang tertentu akan diambil atau tidak, dan menggunakan perkiraan ini untuk

melanjutkan pipelining.

Solusi yang membutuhkan harga yang lebih,  kadang-kadang digunakan untuk memisahkan

pipeline dan memulai memproses kedua cabang. Gagasan ini mendapat perhatian baru dalam

beberapa prosesor terbaru.

6. Keuntungan dan Kerugian

Pipelining tidak membantu dalam semua kasus. Ada beberapa kemungkinan kerugian. Pipa

instruksi dikatakan sepenuhnya pipelined jika dapat menerima instruksi baru setiap clock

cycle. Sebuah pipa yang tidak sepenuhnya pipelined telah menunggu siklus yang menunda

kemajuan pipa.

Keuntungan dari Pipelining:

1. Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi dalam

kebanyakan kasus( lebih cepat selesai).

2. Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih

cepat dengan menambahkan lebih banyak sirkuit. Jika pipelining digunakan sebagai

pengganti, hal itu dapat menghemat sirkuit & combinational yang lebih kompleks.

3. Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan

secara bersamaan dalam satu waktu.

Kekurangan Pipelining:

1. Pipelined prosesor menjalankan beberapa instruksi pada satu waktu. Jika ada

beberapa cabang yang mengalami penundaan cabang (penundaan memproses data)

dan akibatnya proses yang dilakukan cenderung lebih lama.

2. Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada dalam

pipelined setara. Hal ini disebabkan oleh fakta bahwa intruksi ekstra harus

ditambahkan ke jalur data dari prosesor pipeline.

3. Kinerja prosesor di pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi

lebih luas di antara program yang berbeda.

24Struktur dan Fungsi CPU

Page 25: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

4. Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi

tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya

pengaturan yang tepat agar proses tetap berjalan dengan benar.

5. Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang

berurutan memerlukan data dari instruksi yang sebelumnya.

6. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk

melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter,

sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang

berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.

.

7. Kesulitan dalam Pipeline

Untuk menerapkan prinsip multi-stage atau mulai saat ini kita namakan pipelining di

prosesor, diperlukan organisasi prosesor khusus. Pada dasarnya, prosesor dipartisi menjadi

sejumlah unit-unit kecil dengan fungsi spesifik. Setiap unit berperan untuk  menyelesaikan

sebagian dari  instruksi-intruksi berikut :

Instruction fetch, decode, operand address calculation, operand fetch, execute dan store

result.

Dalam proses di atas terkadang sering terjadi kendala/conflict seperti:

Terjadinya pause (Pi), karena adanya data conflict dalam program tersebut

Terjadinya data error dikarenakan banyaknya proses yang dilakukan bersamaan

Terjadinya pengambilan data secara bersamaan, sehingga salah satu proses tertunda

Terjadinya penumpukan data di salah satu intruksi sehingga ada beberapa proses yg di

tunda

Dengan terjadinya conflict tadi, speed-up yang diperoleh menjadi lebih kecil (lambat)

dibandingkan dengan tanpa conclict.

b. Kinerja Pipeline

25Struktur dan Fungsi CPU

Page 26: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Pada bagian ini,kita mengembangkan beberapa ukuran kinerja pipeline sederhana dan

peningkatan kecepatan relatifnya.Waktu yang diperlukan untuk melanjutkan set intruksi satu

langkah melalui pipeline,setiap kolom pada gambar merepresentasikan satu waktu

siklus.waktu siklus dapat ditentukan sebagai

Dimana

Secara umum,waktu tunda d ekuivalen dengan pulsa pewaktu dan total waktu yang

diperlukan Tk untuk mengeksekusi semua instruksi n adalah

26Struktur dan Fungsi CPU

Penundaan langkah maksimum(menunda langkah yang mengalami penundaan paling besar)

Jumlah langkah-langkah di dalam pipeline instruksi

Waktu tunda lanch,diperlukan untuk meneruskan sinyal dan data dari satu langkah ke langkah yang

Page 27: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

GAMBAR 1 : CARA LAIN PENGGAMBARAN PIPELINE

Total siklus k diperlukan untuk menyelesaikan eksekusi instruksi pertama,dan issanya

instruksi n-1 memerlukan siklus .instruksi kesembilan melengkapi pada siklus

waktu 14:

14= [6+(9-1)]

Faktor meningkatnya kecepatan untuk pipeline instruksi yang diperbandingkan

dengan eksekusi tanpa pipeline digambarkan sebagai:

Gambar 2 berikut merencanakan factor akselerasi sebagai fungsi dari jumlah instruksi

yang dieksekusi tanpa percabangan.seperti yang diharapkan,pada batas (n->∞), kita

mempunyai akselerasi k-fold.gambar 2 menunjukkan factor akselerasi sebagai fungsi

sejumlah langkah pada pipeline instruksi. Dalam hal ini,factor akselerasi mendekati jumlah

instruksi yang dapat digiring ke dalam pipeline tanpa percabangan.Jadi,semakin besar jumlah

langkah-langkah pipeline,semakin besar pula potensi untuk akselerasi .bagaimanapun,sebagai

persoalan praktis,keuntungan potensial dari langkah-langkah pipeline tambahan

diperhitungkan yang memerlukan pengosongan pipeline.

27Struktur dan Fungsi CPU

Page 28: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

GAMBAR 2: FAKTOR AKSELERAS DENGAN PIPELINING INSTRUKSI

c. Berhadapan dengan cabangSalah satu masalah utama dalam perancangan pipeline instruksi adalah meyakinkan aliran

stasioner instruksi ke langkah-langkah awal pipeline.Hambatan utama,seperti yang telah kita

lihat,adalah instruksi percabangan bersyarat.Sampai instruksi benar-benardieksekusi,adalah

mustahil untuk menentukan apakah percabangan akan diambil atau tidak.

Berbagai pendekatan telah diambil untuk berhadapan dengan percabangan bersyarat:

*Berbagai macam arus (Multiple streams)

*Target percabangan prefetch (Prefetch branch target)

*Buffer pengulangan (Loop buffer)

28Struktur dan Fungsi CPU

Page 29: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

*Prediksi percabangan (Branch prediction)

*Percabangan tertunda (Delayed branch)

1. Multiple Streams

Kedua instruksi percabangan diambil dengan dua buah stream.

Kelemahan :

Adanya persaingan dalam mengakses register dan memori untuk dimasukkan

dalam pipeline.

Bila dalam percabangan terdapat percabangan percabangan lagi, tidak mampu

ditangani oleh dua stream.

Walaupun terdapat kelemahan tapi terbukti meningkatkan kinerja kinerja

pipelining.

Teknik Teknik ini ini diterapkan diterapkan pada pada IBM 370/168 IBM

370/168 dan dan IBM 3033 IBM 3033

.2. Prefetch branch target

Apabila pencabangan bersyarat telah diketahui prosesnya :

Dilakukan pengambilan awal (prefetch) terhadap instruksi setelah pencabangan dan

target pencabangan.

Diterapkan pada IBM 360/91.

Masalah :

Diperlukan buffer dan register untuk prefetch

3. Loop buffer

Apabila terdapat pencabangan maka perangkat keras memeriksa apakah target

pencabangan telah ada dalam buffer, bila telah ada maka instruksi berikutnya diambil dari

buffer. Perbedaan dengan prefetch adalah pada loop buffer akan membuffer instruksi ke

depan dalam jumlah yang banyak, sehingga bila target tidak berjauhan lokasinya maka

secara secara otomatis telah terbuffer. Terkesan teknik ini seperti cache memori, namun

terdapat perbedaan karena loop buffer masih mempertahankan urutan instruksi yang

diambilnya

4. Branch prediction

Penganalisaan sejarah instruksi. Kenapa ?

29Struktur dan Fungsi CPU

Page 30: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Instruksi komputer seringkali terjadi berulang.

Sehingga :

Teknik prediksi ini juga diterapkan dalam pengambilan instruksi pada cache memori.

Diperlukan algoritma khusus untuk melakukan prediksi tersebut.

Patokan memprediksi target pencabangan

Penganalisaan eksekusi – eksekusi yang telah terjadi dan aspek lokalitas.

Aspek lokalitas memori adalah kecenderungan penyimpanan instruksi yang

berhubungan dalam tempat yang berdekatan

5. Delayed branch

Eksekusi pada tahapan yang melibatkan pencabangan akan akan dilakukan penundaan

proses beberapa saat sampai didapatkan hasil pencabangan. Namun tahapan pipelining

lainnya dapat berjalan seiring penundaan tersebut. Teknik penundaan ini menggunakan

instruksi NOOP.

d. Pipelining Intel 80486Implementasi 80486 pipeline lima langkah :

Pengambilan : Instruksi diambil dri cache atau dari memori eksternal dan

ditempatkan ke salah satu dari dua buffer prefetch 16-byte. Tujuan langkah

pengambilan aadalah untuk mengisi buffer prefetch dengan data yang baru secepat

data yang lama telah dikonsumsi oleh pendecode instruksi. Karena panjang

instruksi variabel (dari satu sampai 11 byte tidak menghitung awalan), status

prefetcher relative dengan langkah-langkah pipeline yang bervariasi dari instruksi

ke instruksi. Pada rata-rata sekitar lima instruksi diambil dengan setiap isi 16-byte

30Struktur dan Fungsi CPU

Page 31: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

[CRAW90]. Langkah pengambilan beroperasi secara independen dari langkah-

langkah lain untuj menjaga buffer prefetch penuh.

Memecahkan kode langkah 1 : Semua opcode dan informasi mode pengalamatan

dikodekan pada langkah D1. Informasi yang ditemukan, seperti halnya informasi

panjang instruksi, tercakup paling banyak 3 byte pertama dari instruksi itu.

Karenanya 3 byte diberikan ke langkah D1 dari buffer prefetch. Pendekode D1

kemudian dapat mengarahkan langkah D2 untuk menangkap sisa instruksi (data

penggantian dan data segera), yang tidak dilibatkan dalam pemecahan kode D1.

Memecahkan kode langkah 2 : langkah D2 memperluas setiap opcode ke dalam

sinyal control untuk ALU. Langkah D2 juga megontrol perhitungan mode

pengalamatan yang lebih kompleks.

Eksekusi : langkah ini meliputi operasi ALU, akses cache dan update register.

Tulis : Langkah ini, jika diperlukan, meng-update register dan flag status yang

dimodifikasi sepanjang langkah eksekusi yang terdahulu. Jika instruksi terakhir

meng-update memori, nilai yang dihitung dikirim ke cache dank e antar muka bus

buffer tulis pada waktu yang sama.

Dengan menggunakan dua langkah memecahkan kode, pipeline dapat mendukung

throughput dengan satu instruksi per siklus pewaktu. Instruksi-instruksi kompleks dan

percabangan bersyarat dapat melambatka n kelajuan ini.

31Struktur dan Fungsi CPU

Page 32: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Gambar 12.19 Contoh Pipeline instruksi 80486

Pipelining intel 80486DX Intel adalah anggota pertama dari keluarga 486 (yang

memiliki banyak anggota lebih dari 386 keluarga itu). Ini memberikan peningkatan yang

sangat signifikan dalam kekuasaan atas prosesor 80386DX, pada kenyataannya, jauh lebih

secara proporsional daripada 386 lakukan selama 286. Sebuah prosesor 486DX memberikan

performa sekitar 100 sampai 150% lebih dari sebuah 386DX dari kecepatan clock yang sama.

Para 80.486 membawa GUI untuk arus utama pada PC, itu adalah prosesor minimum yang

kebanyakan orang anggap "berguna" untuk menjalankan sistem operasi seperti Microsoft

Windows.

Menariknya, 486 tidak menyediakan perbaikan kinerjanya dengan pelebaran salah satu bus,

seperti yang telah kasus dalam dua generasi sebelumnya: itu masih merupakan prosesor 32-

bit dengan 32-bit data dan bus alamat, sama seperti 386DX tersebut. Namun, secara internal,

486 menggabungkan beberapa perbaikan yang signifikan selama 386:

Instruksi Cepat keseluruhan waktu eksekusi: Inti chip dapat mengeksekusi

instruksi dalam waktu kurang dari prosesor sebelumnya.

Pipa Child: pipa eksekusi meningkat sebesar satu langkah.

Cache Primer: Prosesor 486 adalah yang pertama untuk menggabungkan tingkat

1 cache pada chip, untuk mengurangi jumlah akses yang diperlukan ke memori.

Point Unit Terpadu Mengambang: chip ini mencakup Coprocessor matematika

terpadu (tidak pada versi SX namun). Selain itu, Coprocessor memberikan

kinerja yang jauh lebih dari 80.387 opsional digunakan dengan 386 keripik,

sebagian karena terintegrasi ke dalam chip.

Burst Mode: The 486 memperkenalkan penggunaan burst mode untuk

mengurangi waktu menunggu di akses memori.

Manajemen Power: SL manajemen daya perangkat tambahan sebagai pilihan

(bukan chip SL khusus seperti yang terjadi untuk 386SL).

Arsitektur Dukungan Peningkatan: Secara umum, 486 motherboard lebih efisien

daripada 386 orang, dan mulai menggunakan cache sekunder juga. Hal ini

meningkatkan kinerja prosesor secara signifikan.

32Struktur dan Fungsi CPU

Page 33: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Menariknya, Coprocessor 80487SX yang dimaksudkan untuk digunakan dengan versi

SX dari 80486, pada kenyataannya merupakan prosesor full-blown 80486DX. Ini adalah

bagian dari bagaimana Intel terstruktur jalur upgrade keempat generasi keluarga. Lihat

deskripsi 80486SX untuk rincian lebih lanjut tentang ini. AMD dan Cyrix tidak menghasilkan

klon dari 80486 prosesor asli Intel, tapi mereka bukan pemain besar di pasar klon 486 hingga

semakin tinggi kecepatan DX2 dan DX4 prosesor. 486DX ini dianggap usang, meskipun chip

masih memiliki kekuatan yang cukup baik untuk melakukan berbagai tugas ringan, seperti

pengolah kata dan beberapa permainan yang lebih tua, dan akses Internet cahaya. Para

486DX-50, yang berjalan pada sistem bus 50 MHz, memberikan performa sebanding dengan

486DX2-66 dengan berbagai cara, karena yang terakhir hanya menggunakan sistem bus 33

MHz. Para 486DX-50 tidak digunakan dalam sistem hampir sebanyak kecepatan prosesor

lainnya. Seharusnya tidak bingung dengan 486DX2-50, yang berjalan pada kecepatan clock

prosesor yang sama tetapi jam-dua kali lipat dibandingkan dengan sistem bus (yang berjalan

pada 25 MHz).

E. Prosesor Pentium

1. Organisasi Register

Organisasi register meliputi jenis register yang berikut (tabel 12.1):

Umum: terdapat delapan register bertujuan umum 32 bit. Ini bias digunakan untuk

semua jenis instruksi Pentium; register tersebut dapat juga menampung operand untuk

kalkulasi alamat. Sebagai tambahan, beberapa dari register ini juga memberikan

tujuan khusus. Sebagai contoh, perintah string menggunakan isi register ECX, ESI,

dan EDI sebagai operand tanpa keharusan untuk mengacu register ini secara eksplisit

dalam instruksi. Sebagai hasilnya, sejumlah perintah dapat dikodekan dengan singkat.

Segmen: enam register bersegmen 16 bit terdiri dari selector segmen, yang

mengindeks ke dalam tabel bersegmen. Register segmen kode mengacu segmen yang

terdiri dari instruksi yang sedang dieksekusi. Register segmen stack mengacu segmen

yang terdiri dari stack terlihat oleh pengguna. Register bersegmen yang meninggalkan

enable pengguna (DS,ES,FS,GS) mengacu sampai ke tempat segmen data terpisah

pada waktu yang sama.

Flag: register EFLAG terdiri dari kode kondisi dan berbagai bit mode.

Pointer Instruksi: terdiri dari alamat instruksi tertentu.

33Struktur dan Fungsi CPU

Page 34: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Terdapat juga register yang diberikan secara spesifik bagi unit titik-mengambang:

Numerik: setiap register menampung sejumlah titik mengambang 80 bit dengan

ketetapan luas. Terdapat 8 register yang berfungsi sebagai stack, dengan operasi push

dan pop yang tersedia pada set instruksi.

Kontrol: register control 16 bit terdiri dari bit yang mengontrol pengoperasian unit

titik mengambang, termasuk jenis control pembulatan; ketepatan tunggal, ganda, atau

luas; dan bit yang enable atau disable multiple kondisi-kondisi perkecualian.

Status: register status 16 bit terdiri dari bit yang mencerminkan status tertentu dari

unit titik mengambang, termasuk pointer 3 bit ke puncak stack; kode kondisi

melaporkan hasil operasi terakhir; dan flag perkecualian.

Word tag: register 16 bit ini terdiri dari tag 2 bit untuk setiap register numeric titik

mengambang, yang mengindekasikan sifat isi register yang bersesuaian. Empat nilai-

nilai yang mengkin valid adalah nol, khusus (NaN, ketidak terbatas, denormalisasi)

dan kosong. Tag ini memungkinkan program untuk memeriksa isi dari register

numeric tanpa melakukan pengkodean yang kompleks data actual dalam register

tersebut. Sebagai contoh, ketika tombol konteks dibuat, prosesor tidak perlu

menyimpan setiap register titik mengambang yang kosong.

Register EFLAG

Register EFLAG (gambar 12.20) mengindikasikan kondisi prosesor dan membantu

mengontrol operasinya. Termasuk enam kode kondisi yang didefiinisikan (pembawa,

paritas, pelengkap, nol, tanda, overflow), yang melaporkan hasil operasi integer. Sebagai

tambahan, terdapat beberapa bit dalam register yang dapat diacu sebagai bit control:

34Struktur dan Fungsi CPU

Page 35: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Flag Jebakan (Trap flag-TF): ketika di-set, menyebabkan interupsi setelah

eksekusi setiap instruksi. Ini digunakan untuk debugging.

Flag enable interupsi (Interupt enable flag-IF): ketika di-set, prosesor akan

mengenali interupsi eksternal.

Flag arah (Direction flag-DF): menentukan apakah pengolahan string

menaikkan atau menurunkan instruksi register separuh 16 bit S1 dan D1 (untuk

operasi 16 bit) atau register 32 bit ESI dan EDI (untuk operasi 32 bit).

Flag khusus I/O: ketika di-set, menyebabkan prosesor menghasilkan

perkecualian pada semua akses ke perangkat I/O selama opersi mode proteksi.

Flag mulai lagi: memungkinkan pemrograman untuk disable debug perkecualian

sehingga instruksi dapat dimulai kembali setelah debug perkecualian hingga batas

tertentu tanpa menyebabkan debug perkecualian yang lain.

Cek kelurusan: mengaktifkan jika word atau doubleword dialamatkan pada batas

nonword atau nondoubleword.

Flag identifikasi: jika bit ini dapat diset dan dibersihkan, maka prosesor ini

mendukung instruksi CPUID instruksi. Instruksi ini memberikan informasi

tentang vendor, jenis, dan model.

Sebagai tambahan, terdapat 4 bit yang berhubungan dengan mode pengoperasian.

Flag tugas tersarang mengindikasikan bahwa tugas tertentu tersarang didalam tugas

lainnya pada operasi mode terproteksi. Bit mode virtual memungkinkan pemrogram

untuk enable atau disable mode virtual 8086, yang menentukan apakah prosesor

35Struktur dan Fungsi CPU

Page 36: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

berjalann sebagai mesin 8086. Flag interupsi virtual dan flag penungguan interupsi

virtual digunakan pada lingkungan multitasking.

Register Kontrol

Pentium menggunakan empat register control 32 bit untuk mengontrol berbagai aspek

operasi prosesor. Register CR0 terdiri dari flag control system, yang mengontrol mode-mode

atau mengindikasikan keadaan bahwa aplikasi secara umum ke prosesor daripada ke eksekusi

tugas individu. Flag adalah sebagai berikut:

Enable Proteksi: mode proteksi operasi enable atau disable.

Monitor Coprosesor: menarik perhatian hanya ketika menjalankan program dari

mesin sebelum Pentium; ini berhubungan dengan kehadiran coprosesor aritmetika.

Emulasi: di-set ketika prosesor tidak mempunyai unit titik mengambang, dan

menyebabkan interupsi ketika dibuat untuk mengeksekusi instruksi titik

mengambang.

Tugas yang di switch: mengindikasikan bahwa prosesor mempunyai tugas yang di

switch.

Jenis Ekstensi: tidak digunakan pada Pentium; digunakan untuk mengindikasikan

dukungan instruksi coprosesor matematik pada mesin sebelumnya.

Kesalahan numeris: memungkinkan mekanisme baku pelaporan kesalahan titik

mengambang pada saluran bus eksternal.

Proteksi Tulis: ketika bit ini kosong, halaman read only tingkat pengguna dapat

ditulis dengan proses supervisor. Fitur ini bermanfaat untuk mendukung pembuatan

proses dalam beberapa system operasi.

Alignment mask: enable/disable cek perataan.

Tidak tulis melalui: memilih mode operasi cache data. Ketika bit ini di-set, cache

data dilarang melakukan operasi melalui penulisan cache.

Cache disable: enable/disable mekanisme pengisian cache internal.

Pemberian nomor halaman: enable/disable pemberian nomor halaman.

Ketika pemberian nomor halaman dimungkinkan, register CR2 dan CR3 valid.

Register CR2 menampung alamat linear 32 bit halaman terakhir yang diakses sebelum

interupsi halaman kesalahan. Bit 20 paling kiri dari CR3 menampung 20 lebih bit signifikan

dari alamat dasar direktori halaman; perlu diingat alamat terdiri dari nol. Dua bit dari CR3

digunakan untuk mengemudikan pin-pin yang mengontrol operasi cache eksternal. Page-level

36Struktur dan Fungsi CPU

Page 37: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

cache disable enable atau disable cache eksternal, page-level writes transparent mengontrol

bit melalui penulisan cache eksternal.

Sembilan bit control tambahan didefinisikan dalam CR4:

Virtual-8086 mode extention: memungkinkan mendukung untuk interupsi virtual

dalam mode virtual-8086.

Protected-mode virtual interrupts: memungkinkan mendukung untuk flag interupsi

virtual dalam mode yang terproteksi.

Time stamp disable: men-disable instruksi read time stamp counter, yang digunakan

untuk tujuan debugging.

Ekstens; Debugging: enable breakpoint I/O; hal ini mengijinkan prosesor untuk

menginterupsi pada pembacaan dan penulisan I/O.

Perluasan ukuran halaman: memungkinkan penggunaan halaman 4Mbyte ketika di-

set pada halaman Pentium atau 2 Mbyte ketika di-set pada Pentium pro dan Pentium.

Perluasan alamat fisik: memungkinkan saluran alamat A35 melalui A32 kapan saja

mode pengalamatan baru khusus, dikontrol oleh PSE, dimungkinkan untuk arsitektur

Pentium pro dan Pentium berikutnya.

37Struktur dan Fungsi CPU

Page 38: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Enable cek mesin: memungkinkan interupsi memeriksa mesin, yang terjadi ketika

kesalahan paritas dan terjadi ketika kesalahan paritas data terjadi selama siklus bus

baca atau ketika siklus bus tidak berhasil diselesaikan.

Enable menyeluruh halaman: memungkinkan penggunaan halaman menyeluruh.

Ketika PGE=1 dan tombol tugas dilakukan, semua masukan TLB di-flush dengan

pengecualian yang ditandai menyeluruhnya.

Enable pencacah kinerja: memungkinkan eksekusi instruksi RDPMC pada

sembarang tingkatan khusus. Dua pencacah kinerja digunakan untuk mengukur

jangka waktu jenis peristiwa spesifik dan banyaknya kejadian dari jenis peristiwa

spesifik.

Register MMX

Mengingat bahwa kemampuan PENTIUM MMX dapat menggunakan beberapa jenis

data 64 bit. Instruksi MMX dapat menggunakan bidang alamat register 3 bit, sehingga di

dukung delapan register MMX. Kenyataannya, prosesor tidak meliputi register MMX yang

spesifik. Melainkan prosesor menggunakan teknik alias. Register titik mengambang yang ada

digunakan untuk nilai-nilai penyimpan MMX. Secara rinci, 64 bit order rendah (mantisa)

setiap register titik mengambang digunakan untuk membentuk DELAPAN register MMX.

Sehingga, arsitetur Pentium yang ada dengan mudah diperluas untuk mendukung kemampuan

MMX. Beberapa karakter penting MMX yang menggunakan register ini adalah sebagai

berikut:

Mengingat bahwa register titik mengambang diperlakukan sebagai stack untuk

operasi titik mengambang. Karena operasi MMX, register yang sama ini dapat diakses

secara langsung.

Pertama kali instruksi MMX dieksekusi setelah terdapat sembarang operasi titik

mengambang, tag word FP ditandai valid. Hal ini mencerminkan perubahan dari

operasi stack ke pengalamatan register langsung.

Instruksi EMMS menetapkan bit dari tag word FP untuk mengindikasikan bahwa

semua register adalah kosong. Adalah penting bahwa pemrograman menyisipkan

instruksi ini pada ujung blok kode MMX sehingga fungsi operasi titik mengambang

berikut berjalan dengan baik.

Ketika suatu nilai ditulis keregister MMX, bit [79:64] yang bersesuaian dengan

register FP (bit tanda dan bit eksponen) diset kesemua orang. Hal ini mengeset nilai

38Struktur dan Fungsi CPU

Page 39: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

dalam register FP ke NAN (bukan bilangan) atau ketidakterbatasan ketika dipandang

sebagai nilai titik mengambang. Hal ini memastikan bahwa nilai data MMX tidak

akan terlihat seperti nilai titik mengambbang yang valid.

Pengolahan Interupsi

Pengolahan interupsi didalam prosesor merupakan fasilitas yang diberikan untuk

mendukung sistem operasi. System tersebut mengizinkan program aplikasi ditahan, supaya

berbagai kondisi-kondiisi interupsi dapat dilayani dan kemudian setelah itu dilanjutkan.

Interupsi dan Perkecualian

Dua kelas peristiwa menyababkan Pentium menghentikan eksekusi instruksi terakhir

dan merespons kejadian: interupsi dan perkecualian. Pada kedua kasus, prosesor menyimpan

isi dari proses terakhir dan memindahkannya ke suatu rutin yang telah dikenal untuk

melayani kondisi. Sebuah interupsi dihasilkan oleh sinyal hardware, dan dapat terjadi secara

acak sepanjang waktu eksekusi program. Sebuah perkecualian diturunkan dari software dan

ini diprovok oleh eksekusi instruksi. Terdapat dua sumber interupsi dan dua sumber

perkecualian:

1. Interrupsi

Maskable Interrupts: diterima pada pin INTR prosesor. Prosesor tidak mengenali

interupsi askable kecuali jika flag enable interupsi di set.

Nonmaskable Interrupts: diterima pada pin NMI prosesor. Pengenalan interupsi

seperti itu tidak bias dicegah.

39Struktur dan Fungsi CPU

Page 40: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

2. Perkecualian

Perkecualian Terdeteksi Prosesor: dihasilkan ketika prosesor menghadapi suatu

kesalahan ketika mencoba mengeksekusi instruksi.

Perkecualian Terprogram: ini adalah instruksi yang menghasilkan perkecualian.

Tabel Vektor Interupsi

Pengolahan interupsi pada Pentium menggunakan tabel vektor interupsi. Setiap jenis

interupsi ditugaskan sebagai bilangan, dan bilangan ini digunakan untuk mengindeks ke

dalam tabel vektor interupsi. Tabel ini terdiri dari 256 vektor interupsi 32 bit yang merupakan

alamat (segmen dan offset) dari layanan rutin interupsi untuk bilangan interupsi tersebut.

Tabel 12.2 menunjukkan penjelasan bilangan-bilangan pada vektor interupsi tabel;

masukan yang berbayangan merepresentasikan interupsi, ketika masukan tidak berbayanagan

berarti perkecualian. Interupsi hardware NMI adalah jenis 2. Interupsi hardware INTR adalah

bilangan yang berada disekitar 32 sampai 255; ketika interupsi INTR dihasilkan, interupsi

INTR harus berada pada bus dengan bilangan vektor interupsi untuk interupsi ini. Bilangan

vektor sisanya digunakan sebagai perkecualian jika lebih banyak dari satu perkecualian atau

interupsinya menunggu, layanan prosesornya pada pesanan yang dapat diprediksi. Lokasi

bilangan vektor dengan tabel tidak mencerminkan prioritas. Sebagai gantinya, prioritas antar

perkecualian dan interupsi diorganisasikan dalam lima kelas. Pada urutan prioritas menurun,

yaitu:

Kelas 1: terjebak pada instruksi sebelumnya (bilangan vektor 1)

Kelas 2: interupsi eksternal (2,32-255)

Kelas 3: kesalahan dari pengambilan instruksi berikutnya (3,14)

Kelas 4: kesalahan dari memecahkan kode instruksi berikutnya (6,7)

Kelas 5: kesalahan pada pengeksekusian instruksi (0,4,5,8,10-14,16,17)

Penanganan Interupsi

Sama halnya dengan perpindahan eksekusi yang menggunakan instruksi CALL,

perpindahan ke rutin penanganan interupsi menggunakan stack system untuk menyimpan

status prosesor. Ketika interupsi terjadi dan dikenal oleh prosesor, rangkaian berikut akan

berlangsung:

40Struktur dan Fungsi CPU

Page 41: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

1. Jika perpindahan melibatkan perubahan tingkatan khusus, maka register segmen

stack tertentu dan register pointer stack yang diperluas tertentu register dipush ke

stack.

2. Nilai tergantung register EFLAG dipush ke stack.

3. Baik flag interupsi maupun flag jebakan dikosongkan. Hal ini mendisable

interupsi INTR dan jebakan atau fitur langkah tunggal.

4. Pointer segmen kode dan pointer instruksi di push ke stack.

5. Jika interupsi menyertai kode kesalahan, maka kode kesalahan di push ke stack.

6. Muatan vektor interupsi diambil dan di isi kedalamm register CS dan IP atau EIP.

Eksekusi berlanjut dari rutin layanan interupsi.

Untuk kembali dari interupsi, rutin layanan interupsi mengeksekusi instruksi IRET.

Hal ini menyebabkan semua nilai-nilai yang tersimpan pada stack dikembalikan; eksekusi

melanjutkan dari point interupsi.

F. Prosesor Powerpc

Organisasi Register

Gambar register terlihat oleh pengguna PowerPC menggambarkan register terlihat

oleh pengguna untuk PowerPC. Termasuk unit titik tetap.

Umum : terdapat tigapuluh dua register bertujuan umum 64-bit. Ini dapat digunakan

untuk mengisi, menyimpan, dan memanipulasi operand data dan juga dapat digunakan

untuk pengalamatan tidak langsung register. Register 0 diperlakukan sedikit banyak

secara berbeda. Untuk operasi load dan store beberapa instruksi tambahan, register 0

diperlakukan sebagai yang mempunyai nilai tetap nol dengan mengabaikan muatan

nyatanya.

Register perkecualian (Exception register-XER) : meliputi 3 bit yang melaporkan

perkecualian dalam operasi aritmatika integer. Register ini juga meliputi bidang

penghitung byte yang digunakan sebagai operand untuk beberapa perintah string.

Tabel Perkecualian Pentium dan Vektor Interupsi

Nama Vektor Penjelasan

0 Kesalahan pembagian; overflow pembagian atau pembagian oleh nol

1Perkecualaian Debug; meliputi berbagai kesalahan dan jebakan yang

dihubungkan dengan debugging

2 Interupsi pin NMI; sinyal pada pin NMI

41Struktur dan Fungsi CPU

Page 42: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

3Breakpoint; disebabkan oleh instruksi INT 3, yang merupakan

instruksi 1-byte yang bermanfaat untuk debugging

4Overflow terdeteksi INTO; terjadi ketika prosesor mengeksekusi

INTO dengan flag OF yang

5

Melebihi set cakupan BOUND; instruksi BOUND membandingkan

sebuah register dengan batasan-batasan yang tersimpan dalam memori

dan menghasilkan suatu interupsi jika muatan register di luar batas

6 Opcode tidak terdefinisi

7Perangkat tidak tersedia; berusaha untuk menggunakan instruksi ESC

atau WAIT gagal dalam kaitannya dengan ketiadaan

8‘Double fault’ perangkat eksternal; dua interupsi terjadi sepanjang

instruksi yang sama dan tidak bisa ditangani secara berturutan

9 Dipesan

10

Tugas tidak valid menyatakan segmen; segmen menguraikan suatu

tugas yang diminta tidak diinisialisasikan atau segmen yang tidak valid

tidak disajikan

11 Segmen yang diperlukan tidak tersajikan

12Kesalahan stack; batas dari segmen stack yang terlewati atau segmen

stack tidak memberikan proteksi umum

13Pelanggaran proteksi yang tidak menyebabkan perkecualian yang lain

(misalnya, penulisan ke segmen read-only)

14 Kesalahan halaman

15 Dipesan

16Kesalahan titik mengambang; Dihasilkan oleh suatu cek perataan

instruksi aritmatika

17

Titik mengambang; mengakses ke word tersimpan pada alamat bit

ganjil atau doubleword tersimpan pada alamat yang tidak satu pun

berbagai macam cek mesin 4; model spesifik

18 Dipesan

32-255 Vektor interupsi pengguna; diberikan ketika sinyal INTR diaktifkan

Tidak berbayangan : perkecualian

Berbayangan : interupsi

Tabel Bit Status Titik Mengambang dan Register Kontrol PowerPC

Bit Definisi

0 Ringkasan perkecualian. Di-set jika sembarang perkecualian terjadi:

42Struktur dan Fungsi CPU

Page 43: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

sisanya di-set sampai di-reset oleh software

1Ringkasan perkecualian yang enabled. Di-set jika setiap perkecualian

enabled telah terjadi

2Ringkasan perkecualian operasi tidak valid. Di-set jika perkecualian

operasi tidak valid telah terjadi

3Perkecualian overflow. Nilai hasilnya melebihi apa yang dapat

direpresentasikan

4 Perkecualian underflow. Hasilnya terlalu kecil untuk dinormalisasikan

5Perkecualian pembagi nol. Pembagi nol dan dividennya adalah

nonzero terbatas

6Perkecualian tidak tepat. Hasilnya dibulatkan berbeda dari hasil antara

atau sebuah overflow terjadi dengan disabled perkecualian overflow

7:12

Perkecualaian operasi tidak valid. 7: pemberian sinyal NaN: 8; (∞ -

∞); 9(∞ + ∞); 10(0 + 0); 11(∞ - 0) 12; perbandingan yang

menyertakan NaN

13 Pecahan yang dibulatkan. Pembulatan hasil pertambahan pecahan

14Pecahan tidak tepat. Hasilnya dibulatkan mengubah pecahan atau

overflow terjadi dengan disabled perkeualian overflow

15:19

Flag hasil. Kode lima bit menspesifikasikan kurang dari, lebih dari,

sama dengan, tidak diperintah, NaN, ±∞, ± normalisasi, ±

denormalisasi, ±0

20 Dipesan

21:23

Perkecualian operasi tidak valid. 21: permintaan software, 22: akar

kuadrat bilangan negatif: 23: konversi bilangan bulat menyertakan

sejumlah besar bilangan, tidak terhingga, atau NaN

24 Enable perkecualian operasi tidak valid

25 Enable perkecualian overflow

26 Enable perkecualian underflow

27 Enable perkecualian pembagi nol

28 Enable perkecualian tidak tepat

29 Mode Non-IEEE

30:31Kontrol pembulatan. Kode dua bit menspesifikasikan ke yang paling

dekat, ke arah 0, ke arah

Tidak berbayangan : bit status

Berbayangan : bit kontrol

43Struktur dan Fungsi CPU

Page 44: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Unit titik mengambang terdiri dari register terlihat oleh pengguna tambahan :

Umum : Terdapat tigapuluh dua register bertujuan umum 64-bit, digunakan untuk semua

operasi titik mengambang.

Register status dan control titikj mengambang (floting-point status and control register-

FPSCR) : Register 32-bit ini terdiri dari bit yang mengontrol pengoperasian unit titik

mengambang dan bit yang merekam status sebagai hasil dari opersai titik mengambang.

Tabel Interpretasi Bit dalm Register Kondisi

Posisi

Bit

CR0 (Instruksi

integer dengan

Rc = 1)

CR1 (Instruksi

titik

mengambang

dengan Rc = 1)

CRi (Titik tetap

perbandingkan

instruksi)

CRi (Titik

mengambang

perbandingka

n instruksi)

i Hasil < 0 Ringkasan

perkecualian

op1 < op22 op1 < op2

i + 1 Hasil > 0 Ringkasan

perkecualian

enable

op1 > op2 op1 > op2

i + 2 Hasil = 0 Ringkasan

perkecualaian

operasi tidak valid

op1 = op2 op1 = op2

i + 3 Overflow

ringkasan

Perkecualian

overflow

Overflow

ringkasan

Tidak

diperintah

(satu operand

adalah NaN)

Unit pengolahan percabangan terdiri dari register terlihat oleh pengguna ini :

Register kondisi : Terdiri dari delapan bidang kode kondisi 4-bit.

Register penghubung (Link) : Register penghubung dapat digunakan pada instruksi

percabangan bersyarat untuk pengalamatan tidak langsung alamat target. Register ini juga

digunakan untuk perilaku call/return. Jika LK bit pada instruksi percabangan bersyarat di-

set, maka alamat mengikuti instruksi percabangan yang ditempatkan pada register

penghubung, register dapat digunakan untuk hasil selanjutnya.

Perhitungan : Register penghitungan dapat digunakan untuk mengontrol pengulangan

iterasi; register penghitungan diturunkan setiap waktu yang diuji pada instruksi

44Struktur dan Fungsi CPU

Page 45: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

percabangan bersyarat. Penggunaan lain register ini adalah pengalamatan tidak langsung

dari alamat target pada instruksi percabangan.

Bidang register kondisi mempunyai sejumlah kegunaan. Pertama 4 bit (CR0) di-set

untuk semua instruksi aritmatika integer di man bit Rc di-set. Bidang mengindikasikan

apakah hasil operasi berupa bilangan positif, negatif, atau nol. Bit yang keempat merupakan

salinan ringkasan bit dari XER. Bidang berikutnya (CR1) di-set untuk semua instruksi

aritmatika titik mengambang di mana bit Rc di-set. Dalam hal ini, 4 bit dibuat sam dengan

empat bit yang pertama dari FSPCR. Akhirnya, delapan bidang kondisi (CR0 sampai CR7)

dapat digunakan dengan membandingkan instruksi; pada setiap kasus, identitas bidang

dispesifikasikan pada instruksi dirinya sendiri. Untuk perbandingan instruksi baik titik tetap

maupun titik mengambang, pertama 3 bit merancang rekaman bidang kondisi apakah operand

pertama kurang dari, lebih besar dari, atau sama dengan operand kedua. Bit keempat

merupakan bit overflow ringkasan untuk membandingkan titik tetap, dan indikator yang tidak

diperintah untuk membandingkan titik mengambang.

Pengolahan Interupsi

Sebagaimana dengan prosesor yang lain, PowerPC meliputi fasilitas yang

memungkinkan prosesor untuk menginterupsi eksekusi program terakhir untuk berhubungan

dengan kondisi perkecualian.

Jenis Interupsi

Interupsi pada PiwerPc digolongkan sebagai penyebab beberapa kondisi sistem atau

peristiwa dan yang disebabkan oleh eksekusi suatu instruksi. Tabel interupsi PowerPC

mendaftar interupsi yang dikenali oleh PowerPC.

Kebanyakan interupsi yang didaftar pada tabel mudah dipahami. Beberapa menjamin

komentar lebih lanjut. Interupsi reset sistem terjadi pada daya dan ketika tombol reset pada

unit sistem ditekan, dan hal itu menyebabkan sistem melakukan booting ulang. Interupsi cek

mesin berhadapan dengan keganjilan tertentu, seperti kesalahan paritas cache dan acuan ke

lokasi memori non-eksisten, dan dapat menyebabkan sistem untuk masuk apa yang dikenal

sebagai status checkstop; status ini menghentikan eksekusi prosesor dan membekukan isi

register sampai booting ulang. Titik mengambang membantu memungkinkan prosesor untuk

memelihara rutin perangkat lunak untuk menyelesaikan operasi yang tidak bisa ditangani

45Struktur dan Fungsi CPU

Page 46: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

secara langsung oleh unit titik mengambang, seperti menyertakan bilangan-bilangan

didenormalisasi atau opcode titik mengambang yang tidak bisa diterapkan.

Register Status Mesin

Hal pokok untuk intrupsi suatu program adalah kemampuan untuk memulihkan status

prosesor pada waktu intrupsi. Hal ini meliputi tidak hanya berbagai register tetapi juga

berbagai kondisi-kondisi control yang berhubungan dengan eksekusi. Kondisi-kondisi ini

terkandung dalam MSR. Lagipula, beberapa bit register ini memerlukan keterangan lebih

lanjut.

Ketika bit mode khusus (bit 49) di-set, prosesor beroperasi pada tingkatan khusus

pengguna. Hanya subset instruksi yang di-set tersedia. Ketika bit dikosongkan, prosesor

beroperasi pada tingkatan khusus supervisor. Hal ini memungkinkan semua instruksi dan

memberikan akses ke register system tertentu (seperti MSR) tidak dapat diakses dari

tingkatan khusus pengguna.

Nila-nilai dua bit perkecualian titik mengambang (bit 52 dan 55) mendefinisikan jenis

interupsi bahwa unit titik mengambang dapat menghasilkan. Interpretasinya adalah sebagai

berikut :

FE0 FE1 Interupsi yang akan dikenali

0 0 Tidak ada

0 1 Tidak dapat dipulihkan tidak tepat

1 0 Dapat dipulihkan tidak tepat

1 1 Tepat

Ketika bit pelacak langkah tunggal (bit 53) di-set, percabangan prosesor ke jejak

penangan interupsi setelah penyelesaian yang berhasil dari setiap instruksi. Ketika

percabangan melacak bit (bit 54) di-set, percabangan prosesor ke percabangan melacak

penangan interupsi setelah penyelesaian yang berhasil dari setiap instruksi percabangan, ya

atau tidaknya percabangan telah diambil.

Penerjemahan alamat instruksi (bit 58) dan penerjemahan alamat data (bit59)

menentukan apakah pengalamatan riil digunakan atau apakah unit manajemen memori

melakukan penerjemahan alamat.

Penanganan Interupsi

46Struktur dan Fungsi CPU

Page 47: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

Ketika ssebuah interupsi terjadi dan dikenali oleh prosesor, urutan kejadian berikut

mengambil-alih :

1. Prosesor menempatkan alamat intruksi dieksekusi berikutnya dalam register save/restore

0 (save/restore register 0-SRR0). Yaitu alamat instruksi eksekusi terakhir jika intrupsi

disebabkan oleh kegagalan usaha untuk mengeksekusi instruksi tersebut; selain itu,

adalah alamat instruksi berikutnya dieksekusi setelah instruksi terakhir.

Poin Masukan Jenis Interupsi Penjelasan

00000h Dipesan

00100h Reset sistem Pernyataan prosesor mereset keras atau lunak

suatu sinyal input oleh logika eksternal

00200h Cek mesin Pernyataan TEA# ke prossesor ketika

pernyataan itu enable untuk mengenali cek

mesin

00300h Penyimpanan data Contoh : kesalahan halaman data; mengakses

pelanggaran yang benar pada load/store

00400h Penyimpanan instruksi Keslahan halaman kode; instruksi yangn dicoba

diambil dari segmen I/O; akses pelanggaran

yang benar

00500h Eksternal Pernyataan interupsi sinyal input eksternal

prosesor oleh logika eksternal ketika pengenalan

interupsi eksternal enabled

00600h Perataan Usaha gagal untuk akses memori berkaitan

dengan operand yang tidak dapat diratakan

00700h Program Interupsi titik mengambang; pengguna mencoba

mengeksekusi instruksi yang dikhususkan;

instruksi jebakan dieksekusi dengan kondisi

yang dispeifikasikan; instruksi ilegal

00800h Titik mengambang yang tidak tersedia Berusaha mengeksekusi instruksi titik

mengambang dengan unit titik mengambang

disabled

00900h Pengurang Kejenuhan register pengurang ketika pengenalan

interupsi eksternal enabled

00A00h Dipesan

00B00h Dipesan

00C00h Panggilan sistem Eksekusi instruksi panggilan sistem

00D00h Jejak Dipesan melacak interupsi satu langkah atau

percabangan

00E00h Bantuan titik mengambang Berusaha mengeksekusi operasi titik

47Struktur dan Fungsi CPU

Page 48: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

mengambang yang kompleks secara relatif

jarang (misalnya, operasi pada bilangan yang

dinormalisasikan)

00E00-00FFFh Dipesan

01000h-02FFFh Dipesan (tergantung implementasi

tertentu)

Tidak berbayangan : Interupsi disebabkan oleh eksekusi instruksi

Berbayangan : Interupsi tidak disebabkan oleh eksekusi instruksi

2. Prosesor menyalin informasi status mesin dari MSR ke register save/restore1

(Save/restore Register 1-SSR1). Bit yang digambarkan sebagai tidak berbayangan dalam

tabel register status mesin PowerPC disalin. Bit SSR1 sisanya terisi dengan informasi

jenis interupsi spesifik.

3. MSR di-set nilai spesifik terdefinisikan hardware sebagai jenis intrupsi. Untuk semua

jenis interupsi, penerjemahan alamat dipadamkan dan interupsi eksternal disabled.

4. Prosesor kemudian mengontrol transfer ke penangan interupsi yang sesuai. Alamat

pengangan interupsi disimpan dalam tabel interupsi. Alamat dasar tabel itu ditentukan

oleh bit 57 dari MSR.

Untuk kembali dari interupsi, interupsi melayani instruksi rfi (return from interrupt).

Hal ini menyebabkan nilai-nilai bit tersimpan dalam SSr1 untuk dikembalikan ke MSR.

Eksekusi dilakukan pada lokasi yang tersimpan dalam SRR0.

Tabel Register Status Mesin PowerPC

Bit Definisi

0 Prosesor berada dalam mode 32 bit/64 bit

1:44 Dipesan

45 Enabled/disabled manajemen daya

46 Implementasi independen

47 Mendefinisikan apakah penangan interupsi berjalan dalam mode big-endian atau little-endian

48 Enabled/disabled interupsi eksternal

49 Keadaan dikhususkan/tidak dikhususkan

50 Ketersediaan/ketersediaan unit titik mengambang

51 Enabled/disabled interupsi cek mesin

52 Perkecualaian titik mengambang mode 0

53 Enabled/disabled jejak satu langkah

54 Enabled/disabled jejak percabangan

55 Perkecualian titik mengambang mode 1

48Struktur dan Fungsi CPU

Page 49: TCP/IP dan Adress · Web viewRegister ini memungkinkan pemograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register.

56 Dipesan

57 Bagian paling signifikan alamat perkecualian adalah 000h/FFFh

58 On/off penerjemahan alamat instruksi

59 On/off penerjemahan alamat data

60:61 Dipesan

62 Interupsi dapat diperbaiki/tidak dapat diperbaiki

63 Prosesor berada dalam mode big-endian/little-endian

Berbayangan : tersalin ke SSR1

Tidak berbayangan : tidak tersalin ke SSR1

49Struktur dan Fungsi CPU