pertemuan 8 unit pengolahan dasar

34
ORGANISASI KOMPUTER JUMIATI 092904035 PRODI PENDIDIKAN INFORMATIKA DAN KOMPUTER JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR 2011 UNIT PENGOLAHAN DASAR

Upload: jumiathyasiz

Post on 22-May-2015

1.196 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Pertemuan 8 unit pengolahan dasar

ORGAN

ISASI

KO

MPUTER

JUMIATI 092904035

PRODI PENDIDIKAN INFORMATIKA DAN KOMPUTERJURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIKUNIVERSITAS NEGERI MAKASSAR

2011

UNIT PENGOLAHAN DASAR

Page 2: Pertemuan 8 unit pengolahan dasar

PENDAHULUANUnit ini sering dise but Instruksi Set Prosesor (ISP), atau cukup prosesor. Kita menganalisa struktur internal-nya dan bagaimana unit tersebut melakukan tugas fetching, decoding, dan mengeksekusi instruksi program. Unit pengolahan biasa disebut sebagai central processing unit (CPU). Istilah "central" kurang sesuai lagi untuk saat ini karena banyak sistem komputer modern menyertakan beberapa unit pengolahan.Organisasi prosesor telah berkembang selama bertahun-tahun, dikarenakan oleh perkem bangan teknologi dan kebutuhan untuk menyediakan performa tinggi. Strategi umum dalam pengembangan prosesor performa-tinggi adalah dengan membuat sebanyak mungkin berbagai unit fungsional beroperasi secara paralel. Prosesor performa-tinggi memiliki organisasi pipe lined dimana eksekusi satu instruksi dimulai sebelum eksekusi instruksi sebelumnya selesai. Pada pendekatan lain, yang dikenal sebagai operasi superscalar, beberapa instruksi diambil dan dieksekusi pada saat yang sama.

Page 3: Pertemuan 8 unit pengolahan dasar

7. UNIT PENGOLAHAN DASAR

Page 4: Pertemuan 8 unit pengolahan dasar

mengambil satu instruksi pada satu waktu dan melakukan operasi yang ditetapkan. Instruksi diambil dari lokasi memori yang berurutan hing ga memasuki suatu instruksi branch atau jump. Prosesor mencatat alamat lokasi memori yang berisi instruksi selanjutnya yang akan diambil menggunakan program counter, PC. Setelah pengambilan suatu instruksi, isi PC di-update agar menunjuk ke instruksi selanjutnya dalam rangkaian tersebut. Instruksi branch dapat me-load nilai yang berbeda ke dalam PC.Register utama lain di dalam prosesor adalah instruction register, IR. Misalkan tiap in struksi terdiri dari 4 byte, dan menyimpan satu word memori.

7.1 Beberapa Konsep Mendasar

Page 5: Pertemuan 8 unit pengolahan dasar

Untuk mengeksekusi suatu in struksi, prosesor harus melakukan tiga langkah berikut:

1. Mengambil isi lokasi memori yang ditunjuk oleh PC. Isi lokasi ini diinterpretasikan sebagai instruksi yang akan dieksekusi. Karenanya, instruksi tersebut di-load ke dalam IR. Secara simbolis, langkah ini dapat ditulis sebagai berikut

IR +- [[PC]]2. Asumsikan bahwa memori tersebut byte addressable,

naikkan isi PC sebesar 4, se hingga, PC - [PC] +4

3. Lakukan aksi yang ditentukan oleh instruksi dalam IR. Apabila suatu instruksi memiliki lebih dari satu word, langkah 1 dan 2 harus diulang se banyak yang diperlukan untuk mengambil instruksi lengkap. Dua langkah ini biasanya disebut sebagai fase pengambilan (fetch phase); langkah 3 terdiri dari fase eksekusi (execution phase).

 

Page 6: Pertemuan 8 unit pengolahan dasar
Page 7: Pertemuan 8 unit pengolahan dasar

7.1.1 MENTRANSFER REGISTER

Eksekusi instruksi melibatkan rangkaian langkah dimana data ditransfer dari satu register ke lainnya. Untuk tiap register, dua sinyal kontrol digunakan untuk meletakkan isi register tersebut pada bus atau untuk me-load data pada bus ke register. Input dan output register Ri dihubungkan ke bus melalui switch yang masing-mas ing dikontrol oleh sinyal Ri,n dan Rio Pada saat Riin diset ke 1, data pada bus di-load ke dalam Ri. Seperti pada saat Riou, diset ke 1, isi register Ri diletakkan pada bus. Pada saat Rio,tsetara dengan 0, bus dapat digunakan untuk mentransfer data dari register lain

Page 8: Pertemuan 8 unit pengolahan dasar

Misalkan kita ingin mentransfer isi register R1 ke register R4. Hal ini dapat dicapai sebagai berikut:

Enable output register R1 dengan men-set R10 , ke 1. Tindakan ini menempatkan isi R1 pada bus prosesor.

Enable input register R4 dengan men-set R4.n ke 1. Tindakan ini me-load data dari bus prosesor ke register R4.

Page 9: Pertemuan 8 unit pengolahan dasar

7.1.2 MELAKUKAN OPERASI ARITMATIKA ATAU LOGIKA

ALU adalah sirkuit gabungan yang tidak memiliki penyimpanan internal. Sirkuit tersebut melakukan operasi aritmatika dan logika pada dua operand yang diterapkan ke input A dan B-nya. Pada Gambar 7.1 dan 7.2, salah satu operand adalah output dari multiplexer MUX dan operand lain diperoleh langsung dari bus. Hasil yang didapat dari ALU disimpan sementara dalam register Z. Oleh karena itu, suatu rangkaian operasi untuk menambahkan isi register R1 ke register R2 dan menyimpan hasilnya dalam register R3 adalah :

Rlout,Y.n R2out, SelectY, Add, Zin Z_..,,R3,.

Page 10: Pertemuan 8 unit pengolahan dasar
Page 11: Pertemuan 8 unit pengolahan dasar

7.1.3 MENGAMBIL SATU WORD DARI MEMORI

Untuk mengambil word informasi dari memori, prosesor harus menetapkan alamat lokasi memori tempat informasi ini disimpan dan me-request operasi Read. Hal ini diterapkan baik informasi yang akan diambil tersebut menyatakan instruksi dalam program atau operand yang ditetapkan oleh suatu instruksi. Prosesor mentransfer alamat yang diminta ke MAR, yang out put-nya dihubungkan ke jalur alamat bus memori. Pada saat yang sama, prosesor menggunakan jalur kontrol bus memori untuk mengindikasikan diperlukannya operasi Read. Pada saat data yang diminta diterima dari memori maka data tersebut disimpan dalam register MDR, dan dari register tersebut data dapat ditransfer ke register lain dalam prosesor.Selama operasi Read dan Write memori, timing operasi prosesor internal harus dikoor dinasikan terhadap respon perangkat yang dituju pada bus memori. Prosesor menyelesaikan satu transfer data internal dalam satu clock cycle. Sebaliknya, kecepatan operasi perangkat yang dituju, bervariasi sesuai dengan perangkat tersebut. Kita telah melihatnya pada Bab 5 bahwa prosesor modern menyertakan memori cache pada chip yang sama dengan prosesor. Biasanya, cache akan merespon request baca memori dalam satu clock cycle.

Page 12: Pertemuan 8 unit pengolahan dasar

7.1.4 MENYIMPAN WORD DALAM MEMORI

Menuliskan word ke dalam lokasi memori menggunakan prosedur yang serupa. Alamat yang dituju di-load ke dalam MAR. Kemudian, data yang akan ditulis di-load ke dalam MDR, dan dikeluarkan perintah Write. Karenanya, eksekusi instruksi Move R2,(R1) memerlukan rang kaian berikut:

Rlou,, MAR1n R2..,, MDRW Write MDRautE , WMFC

Sebagaimana dalam kasus operasi baca, sinyal kontrol Write menyebabkan hardware antar muka bus memori menyatakan perintah Write pada bus memori. Prosesor tetap berada pada langkah 3 hingga operasi memori diselesaikan dan respon MFC diterima.

 

Page 13: Pertemuan 8 unit pengolahan dasar

7.2 EKSEKUSI INSTRUKSI LENGKAP

Pada saat terjadi cache miss, request tersebut diteruskan ke memori utama, yang menimbulkan jeda beberapa clock cycle. Request baca atau tulis dapat juga digunakan untuk register dalam perangkat memory-mapped 1/O. I/O register tersebut tidak di-cache, sehingga aksesnya selalu memerlukan sejumlah clock cycle.Untuk mengakomodasi perbedaan waktu respon, prosesor menunggu hingga menerima indikasi bahwa operasi Read yang di-request telah selesai. Kita akan mengasumsikan bahwa sinyal kontrol yang disebut Memory-Function-Completed (MFC) digunakan untuk tujuan ini. Perangkat yang dituju menset sinyal ini ke 1 untuk mengindikasikan bahwa isi lokasi yang ditentukan telah dibaca dan tersedia pada jalur data bus memori.

Page 14: Pertemuan 8 unit pengolahan dasar

Tindakan yang diperlu kan untuk mengeksekusi instruksi ini adalah:

MAR F- [R1] Mulai operasi Read pada bus memori Tunggu respon MFC dari memori Load MDR dari bus memori 5. R2 <-

[MDR]

Page 15: Pertemuan 8 unit pengolahan dasar
Page 16: Pertemuan 8 unit pengolahan dasar

7.2.1 INSTRUKSI BRANCH

Instruksi branch menggantikan isi PC dengan alamat target branch. Alamat ini biasanya di peroleh dengan menambahkan offset X, yang terdapat dalam instruksi branch, terhadap nilai ter-update pada PC. Gambar 7.7 menunjukkan rangkaian kontrol yang menerapkan instruksi unconditional branch. Pengolahan mulai seperti biasanya dengan fase pengambilan. Fase ini berakhir bila instruksi tersebut di-load ke dalam IR pada langkah 3. Nilai offset diekstrak dari IR dengan sirkuit decoding instruksi, yang juga akan melakukan sign extension jika diminta. Karena nilai PC ter-update telah tersedia dalam register Y, offset X di-gate ke dalam bus pada langkah 4, dan dilakukan suatu operasi penambahan. Hasilnya, yang merupakan alamat target branch, di-load ke dalam PC pada langkah 5.

Page 17: Pertemuan 8 unit pengolahan dasar

NEXT

Offset X yang digunakan dalam instruksi branch biasanya merupakan perbedaan antara alamat target branch dan alamat yang berada tepat setelah instruksi branch. Misalnya, jika in struksi branch berada pada lokasi 2000 dan jika alamat target branch adalah 2050, nilai X harus 46. Alasan untuk hal ini dapat segera dipahami dari rangkaian kontrol pada Gambar 7.7. PC ditingkatkan selama fase pengambilan, sebelum mengetahui tipe instruksi yang sedang diek sekusi. Jadi pada saat alamat branch dihitung pada langkah 4, nilai PC yang digunakan adalah nilai ter-update, yang menunjuk ke instruksi setelah instruksi branch dalam memori.

Page 18: Pertemuan 8 unit pengolahan dasar

NEXTSekarang perhatikanlah suatu conditional branch. Dalam kasus ini, kita perlu memeriksa status kode kondisi (condition code) sebelum me-load nilai baru ke dalam PC. Misalnya, untuk instruksi Branch-on-negative (Branch < 0), langkah 4 pada Gambar 7.7 digantikan dengan Offset-field-of-IRout, Add, Zin,If N =0 then End. Jadi, jika N =0 maka prosesor kembali ke langkah 1 segera setelah langkah 4. Jika N =1, maka langkah 5 dilakukan untuk me-load nilai baru ke dalam PC, sehingga melakukan operasi branch.

Page 19: Pertemuan 8 unit pengolahan dasar

7.3 ORGANISASI BANYAK-BUS

Dalam tekonologi VLSI, cara yang paling efisien untuk menerapkan sejum lah register adalah dalam bentuk array sel memori yang serupa dengan yang digunakan dalam implementasi random-access memory (RAM) yang dideskripsikan pada Bab 5. Register file memiliki tiga port. Terdapat dua output, yang memungkinkan isi dua register berbeda diakses secara simultan dan menempatkan isinya pada bus A dan B. Port ketiga me mungkinkan data pada bus C di-load ke dalam register ketiga pada clock cycle yang sama.

Bus A dan B digunakan untuk mentransfer source operand ke input A dan B pada ALU, dimana operasi aritmatika atau logika dapat dilakukan. Hasilnya ditransfer ke destinasi melalui bus C. Jika diperlukan, maka ALU dapat melewatkan salah satu dari dua operand input unmodi fied-nya ke bus C. Kita akan memanggil sinyal kontrol ALU untuk operasi seperti R =A atau R =B.

   

Page 20: Pertemuan 8 unit pengolahan dasar
Page 21: Pertemuan 8 unit pengolahan dasar

7.4 KONTROL HARDWIRED

Untuk mengeksekusi instruksi, prosesor hares memiliki beberapa sarana untuk membangkitkan sinyal kontrol yang diperlukan dalam rangkaian yang tepat. Desainer komputer menggunakan berbagai variasi teknik untuk memecahkan persoalan ini. Pendekatan tersebut biasanya terma suk dalam salah satu dari dua kategori: kontrol hardwired (hardwired control) dan kontrol mi croprogrammed (microprogrammed control). Kita membahas tiap yeknik ini secara detil, mulai dengan kontrol hardwired dalam bagian ini.

Page 22: Pertemuan 8 unit pengolahan dasar

Sinyal kontrol yang diperlukan ditentukan oleh informasi berikut:

Isi counter langkah kontrol (control step counter)

Isi register instruksi Isi condition code flag Sinyal input eksternal, misalnya MFC

dan interrupt request

Page 23: Pertemuan 8 unit pengolahan dasar

NEXTHardware control dapat ditampilkan sebagai suatu mesin state yang berubah dari satu state ke state lain dalam tiap clock cycle, ter gantung pada isi register instruksi, kode kondisi, dan input eksternal. Mesin output state adalah sinyal kontrol. Rangkaian operasi yang dilakukan dengan mesin ini ditentukan dengan wiring elemen logika, karenanya bernama "hardwired." Kontroler yang menggunakan pendekatan ini dapat beroperasi pada kecepatan tinggi. Akan tetapi, kontroler tersebut memiliki sedikit fleksibilitas, dan kompleksitas set instruksi yang dapat diimplementasikannya terbatas.

Page 24: Pertemuan 8 unit pengolahan dasar

7.4.1 PROSESOR LENGKAP

Suatu prosesor lengkap dapat didesain menggunakan struktur yang ditunjukkan pada Gambar 7.14. Struktur ini memiliki unit instruksi yang mengambil instruksi dari cache instruksi atau dari memori utama pada saat instruksi yang diinginkan belum berada dalam cache. Struktur ini memiliki unit pengolahan terpisah untuk menangani data integer dan data floating-point. Tiap unit tersebut dapat diatur sebagaimana ditunjukkan pada Gambar 7.8. Cache data disisipkan diantara unit tersebut dan memori utama. Penggunaan cache terpisah untuk instruksi dan data merupakan praktek umum pada kebanyakan prosesor saat ini. Prosesor lain menggunakan cache tunggal yang menyimpan instruksi dan data. Prosesor dihubungkan ke bus sistem dan, karenanya, ke bagian lain komputer, dengan menggunakan antar muka bus. Sekalipun kita menampilkan hanya satu unit integer dan satu floating-point pada Gambar 7.14, suatu prosesor dapat menyertakan beberapa unit pada tiap tipe untuk meningkatkan po tensial operasi konkuren.

Page 25: Pertemuan 8 unit pengolahan dasar
Page 26: Pertemuan 8 unit pengolahan dasar

7.5 KONTROL MICROPROGRAMMED

Sekarang kita akan membahas skema alternatif, yang disebut kontrrol microprogrammed, dimana sinyal kontrol dibangkitkan oleh suatu program yang serupa dengan program bahasa mesin.Pertama, kita memperkenalkan beberapa istilah umum. Suatu control word (CW) adalah word yang bit individunya menyatakan berbagai sinyal kontrol. Tiap langkah kontrol dalam rangkaian kontrol suatu instruksi mendefinisikan kombinasi unik 1 dan 0 dalam CW CW yang berhubungan dengan 7 langkah pada Gambar 7.6. Kita telah mengasumsikan bahwa SelectY dinyatakan dengan Select =0 dan Select de ngan Select =1. Suatu rangkaian CW yang berhubungan dengan rangkaian kontrol instruksi mesin membentuk mikrorutin (microroutine) untuk instruksi tersebut, dan word kontrol individu dalam mikrorutin ini diseut sebagai mikroinstruksi (microinstruction).

Page 27: Pertemuan 8 unit pengolahan dasar

7.5.1 MIKROINSTRUKSI

Cara langsung untuk menyusun mikroin struksi adalah dengan menetapkan satu posisi bit untuk tiap sinyal control. Akan tetapi, skema ini memiliki satu kemunduran yang serius - menetapkan bit individu ke tiap sinyal kontrol menghasilkan mikroinstruksi yang panjang karena jumlah sinyal yang diperlukan biasanya besar. Lebih lagi, hanya beberapa bit yang diset ke I (untuk digunakan sebagai active gating) pada tiap mikroinstruksi, yang berarti ruang bit yang ada di gunakan dengan kurang baik. Perhatikan lagi prosesor sederhana pada Gambar 7.1, dan asum sikan bahwa prosesor tersebut hanya berisi empat general-purpose register, R0, R1, R2, dan R3. Beberapa koneksi dalam prosesor ini di- enable secara permanen, seperti output IR ke sirkuit decoding dan kedua input ke ALU. Koneksi ke berbagai register lainnya seluruhnya memerlu kan 20 sinyal gating. Sinyal kontrol tambahan yang tidak ditunjukkan pada gambar tersebut juga diperlukan, termasuk sinyal Read, Write, Select, WMFC, dan End. Akhirnya, kita harus menentukan fungsi yang akan dilakukan oleh ALU. Mari kita asumsikan bahwa disediakan 16 fungsi, termasuk Add, Subtract, AND, dan XOR. Fungsi tersebut tergantung pada ALU ter tentu yang digunakan dan tidak perlu memiliki hubungan satu-banding-satu dengan kode OP instruksi mesin. Secara total, diperlukan 42 sinyal kontrol.

Page 28: Pertemuan 8 unit pengolahan dasar

7.5.2 SEQUENCING MIKROPROGRAM

Beberapa kemampuan branching dalam micronrogram dapat dituniukkan melalui mikroinstruksi branch khusus yang menentukan alamat branch, serupa dengan cara branching yang dilakukan pada instruksi tingkat-mesin. Dengan pendekatan ini, penulisan mikroprogram cukup sederhana karena dapat menggu nakan teknik software standar. Akan tetapi, kelebihan ini dihadapkan dengan dua kekurangan utama. Dengan mikrorutin terpisah untuk tiap instruksi mesin mengakibatkan jumlah total mi kroinstruksi yang besar dan control store yang besar pula. Jika sebagian besar instruksi mesin melibatkan beberapa mode pengalamatan, maka terdapat banyak instruksi dan gabungan mode pengalamatan. Mikrorutin terpisah untuk tiap gabungan ini akan menghasilkan duplikasi ba gian-bagian umum.

Page 29: Pertemuan 8 unit pengolahan dasar

7.5.3 PENGALAMATAN WIDE-BRANCH

Gambar 7.20 menyertakan wide branch dalam mikroinstruksi pada lokasi 003. Decoder in struksi (instruction decoder), yang pada gambar tersebut disingkat InstDec, menghasilkan alamat awal mikrorutin yang menerapkan instruksi yang telah di-load ke dalam IR. Pada con toh kita, register IR berisi instruksi Add, yang diberi alamat mikroinstruksi 101 oleh decoder instruksi. Akan tetapi, alamat ini tidak dapat di-load ke dalam counter mikroprogram. Source operand instruksi Add dapat ditentukan dalam beberapa mode pengalamatan.

Page 30: Pertemuan 8 unit pengolahan dasar
Page 31: Pertemuan 8 unit pengolahan dasar
Page 32: Pertemuan 8 unit pengolahan dasar

7.5.4 MIKROINSTRUKSI DENGAN NEXT ADDRESS FIELD Mikroprogram memerlukan beberapa branch mikroinstruksi. Mikroinstruksi tersebut tidak menjalankan operasi yang berguna dalam jalur data; mikroinstruksi tersebut hanya diperlukan untuk menentukan alamat mikroinstruksi berikutnya. Jadi, mikroinstruksi tersebut mengurangi kecepatan operasi komputer. Situasi dapat menjadi lebih buruk pada saat menggunakan mikrorutin lain. Peningkatan dalam branch mikroinstruksi muncul terutama dari keterbatasan kemampuan untuk menetapkan alamat yang berurutan pada semua mikroinstruksi yang biasanya dieksekusi dalam rangkaian yang berurutan. Persoalan ini mendorong kita untuk mengevaluasi ulang teknik sequencing yang dibentuk dari µPC yang dapat ditingkatkan. Suatu alternatif yang kuat adalah dengan menyertakan field berikutnya yang akan diambil. Ini berarti, sebagai akibatnya, setiap mikroinstruksi menjadi branch mikroinstruksi, selain fungsi-fungsi lainnya. Fleksibilitas pendekatan ini merupakan hasil dari adanya bit tambahan untuk field alamat. Kerumitan penalti ini dapat diperkirakan sebagai berikut: Pada komputer biasa, dimungkinkan untuk mendesain mikroprogram lengkap yang lebih kecil dari 4K mikroinstruksi, mempergu nakan mungkin 50 hingga 80 bit per mikroinstruksi.

Page 33: Pertemuan 8 unit pengolahan dasar

7.5.6 EMULASI

Fungsi utama kontrol microprogrammed adalah menyediakan sarana untuk eksekusi instruksi mesin yang relatif murah, fleksibel, dan sederhana. Akan tetapi, juga menyediakan kemung kinan lain yang menarik. Fleksibilitasnya dalam menggunakan resource mesin memerlukan bermacam-macam kelas instruksi untuk diimplementasikan. Misalkan komputer dengan suatu set instruksi, maka dimungkinkan untuk mendefinisikan instruksi mesin tambahan dan mengimplementasikannya dengan mikrorutin tambahan.

Page 34: Pertemuan 8 unit pengolahan dasar