Minggu, 11 November 2012

Organisasi Komputer Dasar Dan Arsitektur

1.1       Karakteristik-Karakteristik Instruksi Mesin
Operasi CPU ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini dikenal sebagai instruksi mesin (machine instruction) atau instruksi komputer (computer instruction)

Elemen-elemen Instruksi Mesin
Agar dapat dieksekusi, setiap instruksi harus berisi informasi yang diperlukan oleh CPU Gambar 2.1. menjelaskan langkah-langkah yang terdapat dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin. Elemen-elemen tersebut adalah :

1.  Operation Code/Kode Operasi
Menspesifikasikan operasi yang akan dilakukan (misalnya; ADD, I/O). Operasi dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi atau opcode.

2. Source Operand Reference/Referensi Operand Sumber
Operasi dapat mencakup satu atau lebih operand sumber; dengan kata lain, operand merupakan input bagi operasi.

3. Result Operand Reference/Referensi Operand Hasil
Operasi dapat membuat hasil operasi.

  Instruksi  aritmetika (arithmetic instruction) memiliki kemampuan komputasi untuk             pengolahan data numerik. Sedangkan instruksi logika atau Boole (logic atau Boolean instruction) beroperasi terhadap bit-bit word sebagai bit, bukannya sebagai bilangan, sehingga instruksi-instruksi ini memiliki kemampuan untuk pengolahan data lain yang akan digunakan oleh pengguna. Operasi-operasi tersebut dilakukan terutama bagi        data yang terdapat pada register-register CPU. Dengan demikian, harus ada instruksi-instruksi memori (memory) untuk memindahkan data yang terdapat di memori dan register.

Berapa jumlah alamat maksimum yang akan diperlukan dalam sebuah instruksi? Sebenarnya, instruksi aritmetika dan logika memerlukan operand yang berjumlah banyak. Secara virtual seluruh operasi aritmetika dan logika merupakan uner/unary (satu operand) atau biner/binary (dua operand). Dengan demikian, kita akan memerlukan maksimum dua alamat untuk mereferensi operand. Hasil dari sebuah operasi harus disimpan, yang untuk itu akan memerlukan alamat ketiga. Terakhir, setelah selesainya sebuah instruksi, instruksi berikutnya harus diambil, dan alamatnya diperlukan juga. Kalimat di atas menyatakan bahwa masuk akal apabila instruksi perlu memiliki empat buah referensi alamat: dua buah operand, sebuah hasil operasi, dan sebuah alamat instruksi berikutnya.

Salah satu aspek yang menarik tentang rancangan komputer adalah rancangan set instruksi (instruction set design). Karena rancangan ini mempengaruhi banyak aspek sistem komputer, maka rancangan set instruksi sangat kompleks. Set instruksi menentukan banyak fungsi yang akan dilakukan oleh CPU dan karena itu memiliki efek yang sangat menentukan implementasi CPU.

Masalah rancangan fundamental yang paling penting meliputi :
1. Operation Repertoire/Repertoir Operasi
Berapa banyak dan operasi-operasi apa yang harus disediakan, dan sekompleks apakah operasi itu seharusnya.
2. Data Types/Jenis Data
Berbagai jenis data pada saat operasi dijalankan.
3. Instruction Format/Format Instruksi
Panjang instruksi (dalam bit), jumlah alamat, ukuran field, dsb.
4. Registers
Jumlah register CPU yang dapat direferensikan oleh instruksi, dan fungsinya.
5. Addressing/Pengalamatan
Mode untuk menspesifikasikan alamat suatu operand. Masalah-masalah ini saling berkaitan dan harus diperhatikan dalam merancang set instruksi.

. Sementara data tekstual merupakan data yang dirasakan paling nyaman bagi manusia, teks dalam bentuk karakter tidak mudah disimpan atau dikirimkan oleh sistem pengolahan data atau sistem komunikasi. Dengan demikian, sejumlah kode digunakan untuk merepresentasikan karakter dengan memakai rangkaian bit.
Saat ini, kode karakter yang paling umum dipakai di Amerika Serikat adalah kode ASCII (American Standard Code for Information Interchange) yang dibuat oleh American National Standard Institute (ANSI). Setiap karakter di dalam kode ini direpresentasikan dengan pola 7 bit yang unik; dengan demikian, terdapat representasi 128 buah karakter. Karakter ASCII hampir selalu dapat disimpan dan ditransmisikan dengan menggunakan 8 bit per karakter.

Operasi pemindahan kontrol yang paling umum yang terdapat pada set-set instruksi :
            •    Branch/Pencabangan
            •    Skip/Lewati
            •    Subroutine Call/Call Subrutin
1. Instruksi Pencabangan
Instruksi pencabangan, juga disebut instruksi jump, memiliki sebuah operand yang berisi alamat instruksi berikutnya yang akan dieksekusi.
2. Instruksi Skip
Bentuk instruksi pemindahan  kontrol lainnya adalah instruksi skip. Instruksi skip menyatakan bahwa sebuah instruksi dapat dilewati; jadi alamat yang diimplikasikan sama dengan alamat instruksi berikutnya ditambah satu panjang instruksi.
3. Instruksi Call Subrutin
Subrutin adalah program komputer yang merupakan bagian dari  program yang lebih besar. Sebuah subrutin dapat dipanggil dari sembarang lokasi di dalam program. Dengan kata lain, komputer diinstruksikan agar menuju ke subrutin dan mengeksekusinya dan kemudian kembali ke lokasi subrutin itu dipanggil. Dua alasan penting penggunaan subrutin adalah ekonomis dan modularitas.

Alokasi Bit
Bagi panjang instruksi tertentu, terdapat untung-rugi antara jumlah opcode dengan kemampuan pengalamatan. Opcode yang lebih banyak jelas akan menyebabkan bit yang lebih banyak pada field opcode. Bagi format instruksi dengan panjang tertentu, hal itu akan mengurangi jumlah bit yang dapat digunakan untuk pengalamatan.
Faktor-faktor yang saling berkaitan di bawah ini merupakan hal-hal penting dalam menentukan penggunaan bit-bit pengalamatan.
•    Jumlah Mode Pengalamatan
Kadang-kadang mode pengalamatan dapat diindikasikan secara implisit. Misalnya, opcode-opcode tertentu mungkin selalu merupakan pemanggilan untuk indexing. Pada kasus lainnya, mode pengalamatan harus dinyatakan secara eksplisit, sehingga akan dibutuhkan satu atau lebih bit mode.
•    Jumlah Operand
Kita telah mengetahui bahwa alamat yang jumlahnya sedikit dapat menyebabkan program menjadi panjang dan membosankan. Instruksi-instruksi yang banyak digunakan mesin saat ini menyediakan dua buah operand. Setiap alamat operand di dalam instruksi memerlukan indikator modenya sendiri, atau penggunaan indikator mode dapat dibatasi menjadi hanya sebuah field alamat.
•    Register vs. Memori
Sebuah mesin harus memiliki register sehingga data dapat dibawa ke CPU untuk diproses. Dengan menggunakan register user-visible tunggal (biasanya dikenal sebagai accumulator), sebuah alamat operand adalah implisit dan tidak membutuhkan bit instruksi. Bahkan pada register yang berjumlah banyak, hanya diperlukan jumlah bit yang sedikit untuk menspesifikasikan register. Semakin banyak register yang dapat digunakan untuk referensi operand, semakin sedikit bit yang diperlukan. Sejumlah studi telah menemukan bahwa diperlukan sejumlah 8 hingga 32 buah register user-visible.
•    Jumlah Set Register
Sejumlah mesin memiliki satu set general-purpose register, yang umumnya di dalamnya terdapat 8 atau 16 buah register. Register-register ini dapat digunakan untuk menyimpan data dan dapat juga dipakai untuk menyimpan alamat bagi displacement addressing.
•    Jangkauan Alamat
Untuk alamat-alamat yang mereferensi memori, jangkauan alamat yang dapat direferensikan sesuai dengan jumlah bit alamat. Karena hal ini mengakibatkan terjadinya keterbatasan yang mengganggu, maka direct addressing jarang digunakan. Dengan menggunakan displacement addressing, jangkauan ditentukan oleh panjang regiser alamat. Bahkan walaupun terdapat kekurangan di atas, pendekatan ini masih sukup sesuai untuk memungkinkan displacement yang agak besar dari alamat register, yang membutuhkan jumlah bit alamat yang relatif besar di dalam instruksi.
•    Granularitas Alamat
Untuk alamat-alamat yang mereferensi memori, faktor lain yang menentukan adalah granularitas pengalamatan. Pada sistem yang menggunakan word 16-bit atau 32-bit, suatu alamat dapat mereferensi word atau byte yang sesuai dengan keinginan perancang. Pengalamatan byte cocok untuk manipulasi karakter namun untuk memori yang berukuran tetap akan memerlukan bit alamat yang lebih banyak.

CPU

Fungsi utama unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU.

 ALU sering disebut “mesin bahasa” karena ALU terdiri dari dua bagian, yaitu unit aritmatika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder. Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (≠), kurang dari (<), kurang atau sama dengan (≤ ), lebih besar dari (>), dan lebih besar atau sama dengan (≥).

Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh .

Cara Kerja CPU
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di MAA (melalui Input-storage). Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika instruksi pengerjaan yang dilakukan adalah aritmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Akumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage. Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.

Fungsi CPU
CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya.CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti harddisk, disket, flashdisk, maupun CD drive. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (MAA), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada MAA dengan menentukan alamat data yang dikehendaki.

Percabangan instruksi
Pemrosesan instruksi dalam CPU dibagi atas dua tahap,yaitu:
1.  Instruction Fetch
Tahap ini  berisikan pemrosesan CPU di mana Control Unit mengambil data dan/atau instruksi dari memori utama ke register

2.  Instruction Execute
 CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction). Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.

http://id.wikipedia.org/wiki/Unit_Pemroses_Sentral
http://www.slideshare.net/pickpolos/elemen-dasar-system