Kamis, 25 Juni 2009

TUGAS 5 (KHUSUS D4 REGULER D4EA & D4EB)

Rancangan prosesor paralel merupakan pengembangan terakhir dari ilmu pengetahuan komputer yang didasari oleh kebutuhan menyelesaikan beberapa instruksi secara paralel dalam waktu yang bersamaan dengan mengurangi masalah ketergantungan data, prosedural, unit fungsional, output dan anti ketergantungan yang menyebabkan suatu instruksi terhenti atau harus menunggu instruksi lainnya selesai untuk dapat diproses. Operasi seperti ini hanya dapat dilakukan oleh komputer yang memiliki dua atau lebih unit prosesor (CPU) yang terhubung melalui beberapa jaringan koneksitas. Dalam beberapa kasus, kita dapat menganalogikan paralel komputer sebagai suatu Bank dimana teler merupakan prosesor paralel dan transaksi dengan konsumen sebagai task yang akan diproses. Berdasarkan struktur prosesor-nya, Flynn (Flynn 72) mengklasifikasikan komputer menjadi empat kelas yaitu : SISD (single instruction and single data), MISD (multiple instruction and single data), SIMD (single instruction and multiple data), dan MIMD (multiple instruction and multiple data). Dalam konteks paralel prosesor, SIMD dan MIMD merupakan kelas yang paling sesuai dan menarik untuk dibahas. Pada akhirnya MIMD adalah bentuk yang paling umum digunakan dalam komputer paralel namun demikian terdapat keuntungan dan keunggulan pada bentuk lainnya yang tidak ada pada MIMD.

Buatlah suatu PPT (ringkasan) dari materi Paralel Prosesor.
Tugas sudah diposting pada tanggal 10 Juli 2009.

Pustaka:

[1] Yudi Purnawan: Kinerja Sistem Prosesor Paralel

Rabu, 24 Juni 2009

TUGAS 5 (KHUSUS D4 LJ ELKA)

Rancangan prosesor paralel merupakan pengembangan terakhir dari ilmu pengetahuan komputer yang didasari oleh kebutuhan menyelesaikan beberapa instruksi secara paralel dalam waktu yang bersamaan dengan mengurangi masalah ketergantungan data, prosedural, unit fungsional, output dan anti ketergantungan yang menyebabkan suatu instruksi terhenti atau harus menunggu instruksi lainnya selesai untuk dapat diproses. Operasi seperti ini hanya dapat dilakukan oleh komputer yang memiliki dua atau lebih unit prosesor (CPU) yang terhubung melalui beberapa jaringan koneksitas. Dalam beberapa kasus, kita dapat menganalogikan paralel komputer sebagai suatu Bank dimana teler merupakan prosesor paralel dan transaksi dengan konsumen sebagai task yang akan diproses. Berdasarkan struktur prosesor-nya, Flynn (Flynn 72) mengklasifikasikan komputer menjadi empat kelas yaitu : SISD (single instruction and single data), MISD (multiple instruction and single data), SIMD (single instruction and multiple data), dan MIMD (multiple instruction and multiple data). Dalam konteks paralel prosesor, SIMD dan MIMD merupakan kelas yang paling sesuai dan menarik untuk dibahas. Pada akhirnya MIMD adalah bentuk yang paling umum digunakan dalam komputer paralel namun demikian terdapat keuntungan dan keunggulan pada bentuk lainnya yang tidak ada pada MIMD.

Buatlah suatu PPT (ringkasan) dari materi Paralel Prosesor.
Tugas sudah diposting pada tanggal 8 Juli 2009.

Pustaka:

[1] Yudi Purnawan: Kinerja Sistem Prosesor Paralel

Kamis, 18 Juni 2009

Operasi Unit Kontrol


Unit kontrol atau yang sering dikenal dengan control unit, akan menyimpan perintah sekarang yang dilakukan oleh komputer, memerintahkan ALU untuk melaksanaan dan mendapat kembali informasi (dari memori) yang diperlukan untuk melaksanakan perintah itu, dan memindahkan kembali hasil ke lokasi memori yang sesuai. Sekali yang terjadi, unit kontrol pergi ke perintah berikutnya (biasanya ditempatkan di slot berikutnya, kecuali kalau perintah itu adalah perintah lompatan yang memberitahukan kepada komputer bahwa perintah berikutnya ditempatkan di lokasi lain).

Bagian CPU yang menyebabkan fungsi komputer tercapai ini mengeluarkan sinyal-sinyal kontrol yang bersifat internal bagi CPU untuk memindahkan data antar Register agar ALU melakukan fungsinya untuk mengatur operasi-operasi internal lainnya. Register, yang merupakan bagian dari unit kontrol, adalah tempat penyimpan data sementara dalam CPU selama proses eksekusi. Apabila terjadi proses eksekusi, data dalam register dikirim ke ALU untuk diproses, hasil eksekusi nantinya diletakkan ke register kembali. Unit kontrol akan menghasilkan sinyal yang akan mengontrol operasi ALU dan pemindahan data ke dan dari ALU. Unit kontrol juga mengeluarkan sinyal kontrol eksternal bagi pertukaran data memori dan modul-modul I/O. [1]

Macam-macam Unit Kontrol

1. Unit Kontrol Single-Cycle

Proses di unit kontrol ini hanya terjadi dalam satu clock cycle artinya setiap instruksi (fetch, decode, execute) ada pada satu cycle; maka dari itu tidak memerlukan state. Dengan demikian fungsi boolean masing-masing control line hanya merupakan fungsi dari opcode saja. Clock cycle harus mempunyai panjang yang sama untuk setiap jenis instruksi.
Ada dua bagian pada unit kontrol ini, yaitu proses men-decode opcode untuk mengelompokkannya menjadi 4 macam instruksi (yaitu di gerbang AND), dan pemberian sinyal kontrol berdasarkan jenis instruksinya (yaitu gerbang OR). Keempat jenis instruksi adalah “R-format” (berhubungan dengan register), “lw” (membaca memori), “sw” (menulis ke memori), dan “beq” (branching).



Sinyal kontrol yang dihasilkan bergantung pada jenis instruksinya. Misalnya jika melibatkan memori ”R-format” atau ”lw” maka akan sinyal ”Regwrite” akan aktif. Hal lain jika melibatkan memori “lw” atau “sw” maka akan diberi sinyal kontrol ke ALU, yaitu “ALUSrc”.

Desain single-cycle ini lebih dapat bekerja dengan baik dan benar tetapi cycle ini tidak efisien.

2. Unit Kontrol Multi-Cycle

Gambar disamping menunjukkan diagram blok dari unit kontrol multi-cycle. Berbeda dengan unit kontrol yang single-cycle, unit kontrol yang multi-cycle lebih memiliki banyak fungsi.

Dengan memperhatikan state dan opcode, fungsi boolean dari masing-masing control line output dapat ditentukan. Masing-masingnya akan menjadi fungsi dari 10 buah input logic. Jadi akan terdapat banyak fungsi boolean, dan masing-masingnya tidak sederhana.



Pada cycle ini, sinyal kontrol tidak lagi ditentukan dengan melihat pada bit-bit instruksinya. Bit-bit opcode memberitahukan operasi apa yang selanjutnya akan di-execute CPU; bukan instruksi cycle selanjutnya. [1]



Pustaka:

[1] UNIT KONTROL
[2] Setia dkk: Operasi Unit Kontrol
[3] Wikipedia: Control Unit
[4] William Stallings: Control Unit Operation
[5] Control Unit and Microprogramming

TUGAS 3 (KHUSUS untuk D4LJ ELKA)

Buatlah karya tulis (editor) tentang Prosesor RISC, CISC dan Superscalar, selengkap mungkin, yang ditulis pada blog masing-masing, dan jangan lupa cantumkan sumbernya. tugas ditunggu hingga tanggal 24 Juni 2009. Isilah dulu pada komentar yang menyatakan bahwa karya tulis tersebut telah selesai diposting.

Rabu, 17 Juni 2009

Pipelining (Jawaban Tugas 2)

Untuk mendemonstrasikan metode ini maka dipilih suatu analogi proses binatu. Katakanlah terdapat empat beban cucian baju kotor yang harus dicuci, dikeringkan, dan dilipat. Pekerjaan pertama dicuci selama 30 menit, kering untuk 40 menit, dan kemudian mengambil 20 menit ke flip pakaian. Kemudian mengambil kekedua adalah memuat dan mencuci, kering, dan lipatan, dan ulangi untuk ketiga dan keempat beban. Misalkan pencucian dimulai pada jam 6 dan bekerja seefisien mungkin, maka akan melakukan proses binatu sampai tengah malam.

Binatu tanpa pemipaan:


Namun, pendekatan yang cerdas untuk masalah ini yaitu menempatkan kedua beban dari laundry kotor kedalam mesin cuci, setelah sudah bersih dan dapat dikeringkan dalam pengering. Kemudian, saat pertama beban dilipat, kedua memuat beban yang akan kering, dan yang ketiga beban dapat ditambahkan ke dalam pipa binatu. Menggunakan metode ini, mencuci akan diselesaikan pada jam 9:30.

Binatu dengan pemipaan:




Pemipaan RISC:
Pipa prosesor RISC beroperasi dengan beberapa cara yang sama, meskipun tahapan dalam pipa berbeda. Sementara prosesor yang berbeda memiliki jumlah langkah yang berbeda, yang pada dasarnya ada lima variasi, seperti yang digunakan dalam prosesor R3000 MIPS:

1. fetch instructions from memory (mengambil instruksi dari memori)
2. read registers and decode the instruction (membaca dan membaca sandi yang register instruksi)
3. execute the instruction or calculate an address (menjalankan instruksi atau menghitung alamat)
4. access an operand in data memory (mengakses operand data dalam memori)
5. write the result into a register (menulis hasilnya ke register) [1]

Pustaka:

[1] RISC Architecture: pipelining
[2] SUPERSCALAR AND VLIW PROCESSORS

TUGAS 3 (KHUSUS D4 REGULER D4EA & D4EB)

Buatlah karya tulis (editor) tentang Prosesor RISC, CISC dan Superscalar, selengkap mungkin, yang ditulis pada blog masing-masing, dan jangan lupa cantumkan sumbernya. tugas ditunggu hingga tanggal 24 Juni 2009. Isilah dulu pada komentar yang menyatakan bahwa karya tulis tersebut telah selesai diposting.

Prosesor Superscalar

Salah satu jenis dari arsitektur, dimana superscalar adalah sebuah uniprocessor yang dapat mengeksekusi dua atau lebih operasi scalar dalm bentuk paralel.

Merupakan salah satu rancangan untuk meningkatkan kecepatan CPU. Kebanyakan dari komputer saat ini menggunakan mekanisme superscalar ini. Standar pipeline yang digunakan adalah untuk pengolahan bilangan matematika integer (bilangan bulat, bilangan yang tidak memiliki pecahan), kebanyakan CPU juga memiliki kemampuan untuk pengolahan untuk data floating point (bilangan berkoma). Pipeline yang mengolah integer dapat juga digunakan untuk mengolah data bertipe floating point ini, namun untuk aplikasi tertentu, terutama untuk aplikasi keperluan ilmiah CPU yang memiliki kemampuan pengolahan floating point dapat meningkatkan kecepatan prosesnya secara dramatis.

Peristiwa menarik yang bisa dilakukan dengan metoda superscalar ini adalah dalam hal memperkirakan pencabangan instruksi (brach prediction) serta perkiraan eksekusi perintah (speculative execution). Peristiwa ini sangat menguntungkan buat program yang membutuhkan pencabangan dari kelompok intruksi yang dijalankankannya.

Program yang terdiri dari kelompok perintah bercabang ini sering digunakan dalam pemrograman. Contohnya dalam menentukan aktifitas yang dilakukan oleh suatu sistem berdasarkan umur seseorang yang sedang diolahnya, katakanlah jika umur yang bersangkutan lebih dari 18 tahun, maka akan diberlakukan instruksi yang berhubungan dengan umur tersebut, anggaplah seseorang tersebut dianggap telah dewasa, sedangkan untuk kondisi lainnya dianggap belum dewasa. Tentu perlakuannya akan dibedakan sesuai dengan sistem yang sedang dijalankan.

Lalu apa yang dilakukan oleh CPU untuk hal ini? Komputer akan membandingkan nilai umur data yang diperolehnya dengan 18 tahun sehingga komputer dapat menentukan langkah dan sikap yang harus diambilnya berdasarkan hasil perbandingan tersebut. Sikap yang diambil tentu akan diambil berdasarkan pencabangan yang ada.

Pada CPU yang mendukung perintah pencabangan ini, CPU membutuhkan lumayan banyak clock cycle, mengingat CPU menempatkan semuanya pada pipeline dan menemukan perintah berikutnya yang akan dieksekusinya. Sirkuit untuk branch prediction melakukan pekerjaan ini bekerja sama dengan pipeline, yang dilakukan sebelum proses di ALU dilaksanakan, dan memperkirakan hasil dari pencabangan tersebut.

Jika CPU berfikir bahwa branch akan menuju suatu cabang, biasanya berdasarkan pekerjaan sebelumnya, maka perintah berikutnya sudah dipersiapkan untuk dieksekusi berikut data-datanya, bahkan dengan adanya pipeline ini, bila tidak diperlukan suatu referensi dari instruksi terakhir, maka bisa dilaksanakan dengan segera, karena data dan instruksi yang dibutuhkan telah dipersiapkan sebelumnya..

Dalam hal speculative execution, artinya CPU akan menggunakan melakukan perhitungan pada pipeline yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai dengan logika instruksi tersebut.

Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan branch prediction dan speculative execution tentunya membutuhkan ekstra transistor yang tidak sedikit untuk hal tersebut.

Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor. Sedangkan pada mesin Pentium III, dengan teknologi superscalar dan superpipeline, mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500 memiliki sekitar 140 juta transistor. [1]

Superscalar CPU arsitektur menerapkan satu bentuk parallelism disebut instruksi level parallelism dalam satu prosesor. Ia lebih cepat sehingga memungkinkan CPU throughput selain akan dapat mungkin pada jam menilai. Prosesor superscalar melaksanakan lebih dari satu instruksi pada saat bersamaan jam siklus oleh dispatching beberapa petunjuk untuk berlebihan fungsional unit pada prosesor. Setiap unit fungsional tidak terpisah tapi inti CPU eksekusi sumberdaya dalam satu CPU seperti sebuah unit aritmetik logika, sedikit shifter, atau pengganda.

Sementara superscalar CPU biasanya juga pipelined, mereka dua teknik peningkatan kinerja. Hal ini secara teoritis mungkin untuk mempunyai non-pipelined superscalar CPU pipelined atau non-superscalar CPU.

Teknik superscalar yang secara tradisional diasosiasikan dengan mengidentifikasi beberapa karakteristik. Catatan ini akan diterapkan dalam waktu yang diberikan CPU inti.

* Instruksi yang dikeluarkan dari instruksi berurut streaming
* CPU hardware secara dinamis untuk memeriksa dependensi data antara petunjuk pada waktu berjalan (versus memeriksa perangkat lunak pada waktu kompilasi)
* Menerima instruksi beberapa jam per siklus [2]

Sejarah

Seymour Cray's CDC 6600 dari 1965 sering disebut sebagai pertama superscalar desain. Intel i960CA (1988) dan seri AMD 29000-29050 (1990) mikro yang komersial pertama chip tunggal superscalar mikro. CPU RISC seperti ini membawa konsep superscalar untuk mikro komputer RISC karena hasil desain yang sederhana inti, agar mudah instruksi dispatch dan keterlibatan beberapa unit fungsional (seperti ALUs) pada satu CPU dalam rancangan peraturan yang terpaksa waktu. Ini adalah alasan yang RISC desain yang lebih cepat dari CISC desain melalui ke dalam tahun 1980-an dan 1990-an.

Kecuali untuk digunakan dalam beberapa CPU-daya baterai perangkat, pada dasarnya semua tujuan-CPU umum dikembangkan sejak 1998 adalah superscalar. Diawali dengan "P6" (Pentium Pro dan Pentium II) pelaksanaan, Intel x86 arsitektur mikro yang telah menerapkan CISC pada set instruksi RISC superscalar mikro. Kompleks petunjuk yang diterjemahkan secara internal ke-RISC seperti "micro-ops" set instruksi RISC, prosesor yang memungkinkan untuk mengambil keuntungan dari performa yang lebih tinggi-prosesor yang melandasi tetap kompatibel dengan prosesor Intel sebelumnya. [3]

Pustaka:

[1] Superscalar
[2] Wikipedia: Superscalar
[3] Superscalar Processor