set instruksi

11
STUKTUR DAN FUNGSI PROSESOR 1. ORGANISASI DAN FUNGSI PROSESOR 1. Organisasi prosesor Central Processing Unit (CPU) atau biasa disebut Prcessor merupakan komponen terpenting dalam komputer Yaitu komponen pengolah data berdasarkan instruksi yang diberikan kepadanya Organisasi Processor terdiri dari : a. ALU (Arithmatic and Logical Unit) : bertugas untuk melakukan komputasi atau pengolahan data aktual dan membentuk fungsi – fungsi pengolahan data komputer. ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya. Seperti istilahnya ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi tugas tersendiri. b. CU(Control Unit) : Bertugas mengontrol operasi CPU( perpindahan data dan instruksi ke / dari CPU dan juga mengontrol operasi ALU) dan secara keselurahan mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi – fungsi operasinya. Termasuk dalam tanggung jawab unit kontrol adalah mengambil instruksi – instruksi dari memori utama dan

Upload: muhammad-syaifudin

Post on 05-Jan-2016

214 views

Category:

Documents


1 download

DESCRIPTION

menjelaskan tentang bagaimana set instruksi didalam komputer bekerja

TRANSCRIPT

Page 1: Set Instruksi

STUKTUR DAN FUNGSI PROSESOR1. ORGANISASI DAN FUNGSI PROSESOR

1. Organisasi prosesorCentral Processing Unit (CPU) atau biasa disebut Prcessor merupakan komponen

terpenting dalam komputer Yaitu komponen pengolah data berdasarkan instruksi yang diberikan kepadanya

Organisasi Processor terdiri dari :a. ALU (Arithmatic and Logical Unit) :

bertugas untuk melakukan komputasi atau pengolahan data aktual dan membentuk fungsi – fungsi pengolahan data komputer.

ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi – instruksi bahasa mesin yang diberikan padanya. Seperti istilahnya

ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi tugas tersendiri.

b. CU(Control Unit) :Bertugas mengontrol operasi CPU( perpindahan data dan instruksi ke / dari

CPU dan juga mengontrol operasi ALU) dan secara keselurahan mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi – fungsi operasinya.

Termasuk dalam tanggung jawab unit kontrol adalah mengambil instruksi – instruksi dari memori utama dan menentukan jenis instruksi tersebut.

c. Register (memory internal CPU)Merupakan Media penyimpan internal CPU yang digunakan saat proses

pengolahan data.Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data

saat diolah ataupun data untuk pengolahan selanjutnya.d. CPU Interconections

Sistem koneksi dan bus yang menghubungkan komponen internal dan bus – bus eksternal CPU Komponen internal CPU yaitu ALU, unit kontrol dan register – register.

Page 2: Set Instruksi

Komponen eksternal CPU :sistem lainnya, seperti memori utama, piranti masukan/keluaran

2. Fungsi CPUFungsi CPU yaitu Menjalankan program – program yang disimpan dalam memori

utama dengan cara mengambil instruksi – instruksi, menguji instruksi tersebut dan mengeksekusinya satu persatu sesuai alur perintah.

Pandangan paling sederhana proses eksekusi program adalah dengan mengambil pengolahan instruksi yang terdiri dari dua langkah, yaitu : operasi pembacaan instruksi (fetch) dan operasi pelaksanaan instruksi (execute)

Dibawah ini merupakan beberapa aksi yang dilakukan oleh CPU:1. CPU – Memori, perpindahan data dari CPU ke memori dan sebaliknya.2. CPU –I/O, perpindahan data dari CPU ke modul I/O dan sebaliknya.3. Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap

data.4. Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya

instruksi pengubahan urusan eksekusi.

2. ORGANISASI REGISTERRegister Merupakan Media penyimpan internal CPU yang digunakan saat proses

pengolahan data.Register adalah komponen dalam computer yang dibangun dari flip-flop dan gerbang.

Register biasanya diukur berdasarkan banyaknya bit (binarydigit) yang dapat disimpan. Misalnya, register geser 8 bit, adalah register yang dapat menyimpan 8 bit data dan berfungsi untuk menggeser.

Dalam prosesor ada satu set register yang berfungsi sebagai tingkat memori atas memori utama dan cache dalam hirarki / register tersebut dalam prosesor melakukan dua peran

1. User Visible register : register yang isinya dapat diketahui oleh pemrogram, register ini juga dapat meminimalkan referensi ke main memory

2. Control and Status register : register yang digunakan olehCU, kontrol operasiCPU dan oleh sistem operasi untuk kontrol eksekusi program.

Perhatikan tidak ada pemisahan bersih dari register ke dalam dua kategori . Pada beberapa mesin program counter adalah pengguna terlihat saat pada orang lain itu tidak.

a. User-visible RegisterUser-visible Register adalah register yang dapat direferensikan dengan menggu-

nakan bahasa mesin yang dieksekusi CPUUser-visible terdiri dari :

1. General Purpose Register

Digunakan untuk mode pengalamatan dan data.

Page 3: Set Instruksi

Akumulator ( aritmatika, Shift, Rotate) Base Register (Rotate,Shift, aritmatika) Counter Register ( Looping) Data Register (menyimpan alamat I/O device).

2. Register Alamat Digunakan untuk mode pengalamatan Segment Register (Code Segment, Data Segment, Stack Segment, Extra

Segment) Register Index (Stack Index, Data Index) Stack Pointer

3. Register Data Digunakan untuk menampung data

5. Register Kode Status Kondisi (Flag) Kode yang menggambarkan hasil operasi sebelumnya

b. Control and RegisterControl and register adalah register-register yang digunakan oleh unit

kontrol untuk mengontrol operasi CPU dan oleh program sistem operasi untuk mengntrol eksekusi program. Terdapat empat register yang penting adalah :

1. Program Counter (PC) Berisi alamat instruksi yang akan diambil

2. Instruction Register (IR) Berisi alamat instruksi terakhir

3. Memory Address Register (MAR) Berisi alamat penyimpanan dalam memorid.

4. Memori Buffer Register (MBR) Berisi data yang dibaca dari memori atau yang diyliskan ke memori

Berdasarkan data yang dikelolanya, register dapat dibedakan menjadi:1. Register data, yang digunakan untuk menyimpan bilangan integer2. Register alamat yang menyimpan alamat yang digunakan untuk mengakses memory3. Register tujuan umum yang dapat menyimpan data maupun alamat 4. Register floating point yang menyimpan bilangan floating point5. Register konstanta yang menyimpan nilai yang hanya dapat dibaca6. Register vector yang menyimpan data untuk melakukan pemrosesan vector7. Register tujuan khusus menyimpan kondisi progam (program state) temasuk

didalamnya pencacah program, penunujuk tumpukan (stack pointer) dan register status8. Register yang berhubungan dengan pengaksesan memory seperti register penahan

(buffer register), register data, register alamatPada level register terdapat komponen-komponen untuk masing-masing jenis rangkaian sbb:

Tipe Komponen FungsiKombinasi Gerbang Word

Multiplexer Operasi BooleanPertean data

Page 4: Set Instruksi

Decoder & Enkoder

Array yang dapat diprogram Elemen Aritmatika (penjumlahan , ALU)

Pemeriksaan kode dan konversiFungsi umumOperasi numerik

Sekuensial Register parallelRegister geser

Pencacah

Penyimpanan informasiPenyimpanan informasi, komversi serial-paralellControl/penghasil sinyal pewaktu

3. DAUR INSTRUKSISiklus-siklus Fetch dan Eksekusi

Pada awal setiap siklus instruksi, CPU membaca instruksi dari memori. Pada CPU yang umum, suatu register yang disebut program counter (PC) dipakai untuk mengawasi instruksi yang akan dibca selanjutnya.

Intruksi yang dibaca akan dimuatkan ke dalam sebuah register di dalam CPU yang dikenal sebagai instruction register (IR). CPU menginterpretasikan intruksi dam melakukan aksi yang diperlukan. Secara umum, aksi-aksi ini dapat dibagi menjadi empat kategori:

CPU-Memori: data dapat dipindahkan dari CPU ke memori atau dari memori ke CPU. CPU-I/O: Data dapat kea tau dunia luar denga pemindahan antara CPU dan modul I/O. Pengolahan data: CPU dapat membentuk sejumlah operasi aritmetik atau logic ter-

hadap data. Control: Sebuah instruksi dapat menguabah urutan eksekusi (misalnya, insruksi lompat

IAS, Tabel 2.1). Misalnya, CPU dapat membaca instruksi dari lokasi 149, yang menen-tukan bahwa instruksi berikutnya dibaca dari lokasi 182. CPU akan mengingat hal ini dengan menyetel program counter ke 182. Jadi, pada siklus fetch berikutnya, instruksi akan dibaca dari lokasi 182, bukannya 150.

CPU terdiri dari akumulator (AC) untuk menyimpan data secara sementara. Baik data dan instruksi panjangnya 16 bit. Format instruksi, menandakan bahwa akan terdapat sejumlah 24 = 16 op code yang berlainan dan sejumlah 212 = 4096 (4K) word memori yang dapat diamati secara langsung.

Diperlukan tiga buah instruksi, yang dapat dijelaskan sebagai tiga siklus fetch dan tiga eksekusi :

1. Program counter (PC) berisi 300 alamat instruksi pertama. Alamat ini dimuatkan ke dalam instruction register (IR). Perlu dicatat bahwa proses ini akan melibatkan penggu-naan memory address register (MAR) dan memory buffer register (MBR). Untuk mu-dahnya, register-register intermediate-nya di abaikan.

Page 5: Set Instruksi

2. 4 bit pertama di dalam IR mengindikasikan bahwa akumulator (AC) akan dimuatkan. 12 bit sisanya menentukan alamat, yaitu 940.

3. PC dinaikkan nilainya, dan instruksi berikutnya akan diambil.4. Isi AC yang lama dan isi lokasi 941 ditambahkan, dan hasilnya disimpan di dalam AC.5. PC dinaikkan nilainya, dan instruksi berikutnya akan diambil.6. Isi PC akan disimpan pada lokasi 941.

Instruksi PDP-11 yang diungkapkan secara simbolik sebagai ADD B, A menyimpan jumlah isi lokasi memori B dan A ke dalam lokasi memori A. Terjadi suatu siklus instruksi tunggal dengan langkah-langkah sebagai berikut.

1. Mengambil (fetch) instruksi ADD,2. Membaca isi lokasi memori A ke dalam CPU.3. Membaca isi lokasi memori B ke dalam CPU. Agar isi A tidak hilang, CPI harus memiliki

sedikitnya dua buah register untuk menyimpan nilai-nilai memori.4. Menambahkan kedua nilai itu.5. Menuliskan hasilnya dari CPU Kke lokasi memori A.

Jadi, siklus eksekusi untuk instruksi tertentu dapat melibatkan lebih dari sebuah ref-erensi ke memori, juga, disamping referensi memori, suatu instruksi dapat menentukan su-atu operasi I/O. Untuk sembarang siklus instruksi yang diketahui, sebagian keadaan dapat null dan lainnya dapat lebih dari sekali. Keadaan teersebut adalah :

Instruction Address Calculation (aic): Menenetukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya, hal ini melibatkan penambahan bilangan tetap ke alamat in-struksi sebelumnya.

Instruction Fetch (if): Membaca instruksi dari lokasi memorinya ke dalam CPU. Instruction Operation Decoding (oac): Bila operasi melibatkan referensi ke operand di-

dalam memori atau dapat diperoleh melalui I/O, maka tentukan alamat operand. Operand Fetch (of): Ambil operand dari memori dan baca operand itu dari I/O. Data Operation (do): Bentuk operasi yang ditunjukkan di dalam instruksi. Operand Store (os): Tuliskan hasilnya ke dalam memori atau keluarkan ke I/O.

Untuk sebagian mesin, instruksi tunggal dapat menentukan operasi yang akan di bentuk pada suatu vector (array dimensi satu) bilangan-bilangan atau suatu string (array di-mensi satu) karakter-karakter.

Interrupts

Interrupts disediakan terutama sebagai cara untuk meningkatkan efisiensi pengola-han, karena sebagian besar perangkat eksternal jauh lebih lambat dibandingkan prosesor. Dengan adanya interrupts, prosesor dapat diperintahkan untuk mengeksekusi instruksi-in-struksi lainnya pada saat operasi-operasi I/O sedang dilaksanakan. Program I/O terdiri dari tiga bagian :

Page 6: Set Instruksi

Rangkaian instruksi disiapkan untuk operasi I/O, yang meliputi penyalinan data yang akan di out-put ke dalam buffer khusus.

Perintah I/O. Rangkaian instruksi, untuk menyelesaikan operasi yang meliputi penyetelan suatu flag

yang menandakan berhasil atau gagalnya operasi.

Interrupts dan Siklus Instruksi

Interrupts adalah sebuah interupsi terhadap rangkaian eksekusi normal. Jadi pro-gram pengguna tidak harus berisi kode khusus untuk mengakomodasi interrupt. Pada siklus interrupt, prosesor memeriksa apakah telah terjadi interrupt, yang diindikasikan oleh adanya signal interrupt. Maka apabila interrupt ditangguhkan, prosesor melakukan hal-hal dibawah ini:

1. Prosesor menangguhkan eksekusi program yang sedang di eksekusi dan menyimpan konteksnya.

2. Prosesor menyetel program counter ke alamat awal routine interrupt handler (program untuk melayani perangkat I/O).

4. PIPELINE INSTRUKSIPipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara

bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinou pada unit pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja.

Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam system kom-puter. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang ren-dah, 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 micropro-cessor yang menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, in-struksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.

Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah ar-sitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggu-nakan arsitektur pipeline dengan microprocessor yang menerapkan teknik ini.Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai se-lesai, 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.

Page 7: Set Instruksi

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.Teknik pipeline ini menyebabkan ada sejumlah hal yang harus diperhatikan sehingga ketika diterapkan dapat berjalan dengan baik. Tiga kesulitan yang sering dihadapi ketika menggu-nakan teknik pipeline ini adalah :

Terjadinya penggunaan resource yang bersamaan, Ketergantungan ter-hadap data, Pengaturan Jump ke suatu lokasi memori.

Karena beberapa instruksi diproses secara bersamaan ada kemungkinan in-struksi 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.

Intruksi pipeline Tahapan pipeline1. Mengambil instruksi dan membuffferkannya2. Ketika tahapn kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan

tersebut3. Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama meman-

faatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan in-struksi berikutnya .

Masalah-masalah pada Pipeline

Dengan adanya persyaratan bahwa setiap instuksi yang berdekatan harus tidak sal-ing bergantung, maka ada kemungkinan terjadinya situasi dimana pipeline gagal dilak-sanakan (instuksi berikutnya tidak bisa dilaksanakan). Situasi ini disebut Hazards. Hazards mengurangi performansi dari CPU dimana percepatan ideal tidak dapat dicapai.

Ada 3 kelompok Hazards :

1. Structural Hazards muncul dari konflik resource sistem yaitu ketika hardware tidak da-pat mensuport semua kemungkinan kombinasi pelaksanaan instruksi.

2. Data Hazards muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.

3. Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh : branch).

Page 8: Set Instruksi

Adanya Hazards menyebabkan pipeline terhambat (stalled). Tidak ada instruksi baru yang dijemput sampai hambatan itu selesai. Ini berarti instruksi-instruksi selanjutnya akan ditunda pula penjemputannya.

Keuntungan dari Pipelining:

1. Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.

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 vs combinational yang lebih kompleks sirkuit.

Kekurangan Pipelining:

1. Non-pipelined prosesor hanya menjalankan satu instruksi pada satu waktu. Hal ini un-tuk mencegah penundaan cabang (yang berlaku, setiap cabang tertunda) dan masalah dengan serial instruksi dieksekusi secara bersamaan. Akibatnya desain lebih sederhana dan lebih murah untuk diproduksi.

2. Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined setara. Hal ini disebabkan oleh fakta bahwa sandal jepit ekstra harus ditam-bahkan ke jalur data dari prosesor pipelined.

3. Non-pipelined prosesor akan memiliki instruksi yang stabil bandwidth. Kinerja prosesor yang pipelined jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di an-tara program yang berbeda.