Minggu, 19 Oktober 2014

ALU AND CU

Sebelum membahas lebih detail mengenai  ALU dan CU, tentunya yang sangat berkaitan dengan keduanya adalah CPU. Central Processing Unit (CPU) adalah bagian dari komputer yang berupa perangkat keras (hardware) yang merupakan pusat kendali dari sistem komputer dan mengkoordinasi semua kegiatan yang ada. Agar semua terkoordinir dengan baik, harus ada interaksi antara peralatan satu dengan yang lain agar kegiatan berjalan dengan baik. Fungsi utama dari CPU yaitu melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti keyboard maupun mouse. CPU tentunya memiliki komponen-komponen yang menyusunnya. ALU dan CU merupakan komponen dari CPU.

ALU (Arithmetic Logic Unit)
Jika CPU diasumsikan sebagai otaknya komputer, maka ada suatu alat lain di dalam CPU tersebut yang kenal dengan nama Arithmetic Logical Unit (ALU), ALU inilah yang berfikir untuk menjalankan perintah yang diberikan kepada CPU tersebut. ALU adalah unit yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sendiri memiliki berbagai komponen elektronika didalamnya, yaitu berupa sekumpulan transistor yang dikenal dengan nama logic gate. Logic gate inilah yang berfungsi untuk melaksanakan operasi aritmatika dan operasi logika. Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri.
Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) 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 :
a. sama dengan (=)
b. tidak sama dengan (< >)
c. kurang dari (<)
d. kurang atau sama dengan dari (<=)
e. lebih besar dari (>)
f. lebih besar atau sama dengan dari (>=)
(sumber: Buku Pengenalan Komputer, Hal 154-155, karangan Prof.Dr.Jogiyanto H.M, M.B.A.,Akt.)
Fungsi-fungsi yang didefinisikan pada ALU adalah add (penjumlahan), addu (penjumlahan tidak bertanda), sub (pengurangan), subu (pengurangan tidak bertanda), and, or, xor, sll (shift left logical), srl (shift right logical), sra (shift right arithmetic), dan lain-lain.

CU (Control Unit)
Unit kontrol (bahasa Inggris: Control Unit – CU) adalah salah satu bagian dari CPU yang bertugas untuk memberikan arahan/kendali/ kontrol terhadap operasi yang dilakukan di bagian ALU (Arithmetic Logical Unit) di dalam CPU tersebut.  Tanggung jawab dari 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. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Output dari CU ini akan mengatur aktivitas dari bagian lainnya dari perangkat CPU tersebut.
Pada awal-awal desain komputer, CU diimplementasikan sebagai ad-hoc logic yang susah untuk didesain. Sekarang, CU diimplementasikan sebagai sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control store). Beberapa word dari microprogram dipilih oleh microsequencer dan bit yang datang dari word-word tersebut akan secara langsung mengontrol bagian-bagian berbeda dari perangkat tersebut, termasuk diantaranya adalah register, ALU, register instruksi, bus dan peralatan input dan output di luar chip. Pada komputer modern, setiap subsistem ini telah memiliki kontrolernya masing-masing, dengan CU sebagai pemantaunya (supervisor).
Tugas dari CU adalah sebagai berikut:
  1. Mengatur dan mengendalikan alat-alat input dan output.
  2. Mengambil instruksi-instruksi dari memori utama.
  3. Mengambil data dari memori utama kalau diperlukan oleh proses.
  4. Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja.
  5. Menyimpan hasil proses ke memori utama.
Macam-macam CU (Control Unit) :

Single-Cycle CU
Proses di CU ini hanya terjadi dalam satu clock cycle, artinya setiap instruksi ada pada satu cycle, maka dari itu tidak memerlukan state. Dengan demikian fungsi boolean masing-masing control linehanya 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.

Multi-Cycle CU
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 output control line 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 dijalankan CPU; bukan instruksi cycle selanjutnya.

sumber :

CPU

CPU merupakan tempat pemroses instruksi-instruksi program, yang pada komputer mikro disebut dengan micro-processor (pemroses mikro). Pemroses ini berupa chip yang terdiri dari ribuan hingga jutaan IC. Dalam dunia dagang, pemroses ini diberi nama sesuai dengan keinginan pembuatnya dan umumnya ditambah dengan nomor seri, misalnya dikenal pemroses Intel 80486 DX2-400 (buatan Intel dengan seri 80486 DX2-400 yang dikenal dengan komputer 486 DX2), Intel Pentium 100 (dikenal dengan komputer Pentium I), Intel Pentium II-350, Intel Pentium III-450, Intel Celeron 333, AMD K-II, dan sebagainya. Masing-masing produk ini mempunyai kelebihan dan kekurangan masing-masing.
CPU terdiri dari dua bagian utama yaitu unit kendali (control unit) dan unit aritmatika dan logika (ALU). Disamping itu, CPU mempunyai beberapa alat penyimpan yang berukuran kecil yang disebut dengan register.

CU (Control Unit) / Unit Kendali
Unit ini bertugas mengatur dan mengendalikan semua peralatan yang ada pada sistem komputer. Unit kendali akan mengatur kapan alat input menerima data dan kapan data diolah serta kapan ditampilkan pada alat output. Unit ini juga mengartikan instruksi-instruksi dari program komputer, membawa data dari alat input ke memori utama, dan mengambil data dari memori utama untuk diolah. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:

Mengatur dan mengendalikan alat-alat input dan output.

• • • • • Mengambil instruksi-instruksi dari memori utama.

Mengambil data dari memori utama (jika diperlukan) untuk diproses.

Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.

Menyimpan hasil proses ke memori utama.

ALU (Arithmatic and Logic Unit)
Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) 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
Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan instruksi yang sedang diproses sementara data dan instruksi lainnya yang menunggu giliran untuk diproses masih disimpan di dalam memori utama. 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 dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
Program yang berisi kumpulan dari instruksi-instruksi dan data diletakkan di memori utama yang diibaratkan sebagai sebuah meja. Kita mengerjakan program tersebut dengan memproses satu per satu instruksi-instruksi yang ada di dalamnya, dimulai dari instruksi yang pertama dan berurutan hingga yang terakhir. Instruksi ini dibaca dan diingat (instruksi yang sedang diproses disimpan di register).
Misalnya instruksi berbunyi HITUNG C = A + B, maka kita membutuhkan data untuk nilai A dan B yang masih ada di meja (tersimpan di memori utama). Data ini dimaca dan masuk ingatan kita (data yang sedang diproses disimpan di register), yaitu misalnya A bernilai 2 dan B bernilai 3. Saat ini ingatan otak kita telah tersimpan suatu instruksi, nilai A, dan nilai B, sehingga nilai C dapat dihitung yaitu sebesar 5 (proses perhitungan ini dilakukan di ALU). Hasil dari perhitungan ini perlu dituliskan kembali ke meja (hasil pengolahan disimpan kembali ke memori utama). Setelah semua selesai, kemungkinan data, program, dan hasilnya disimpan secara permanen untuk keperluan di lain hari sehingga perlu disimpan di dalam lemari kabinet (penyimpanan sekunder).
Dengan demikian, ada tiga macam memori yang dipergunakan di dalam sistem komputer, yaitu:
1. Register, digunakan untuk menyimpan instruksi dan data yang sedang diproses.
2. Main memory, dipergunakan untuk menyimpan instruksi dan data yang akan diproses dan hasil pengolahan.
3. Secondary storage, dipergunakan untuk menyimpan program dan data secara permanen.

Ada banyak register yang terdapat pada CPU dan masing-masing sesuai dengan fungsinya. Di bawah ini akan diberikan penjelasan secara garis besar dari masing-masing register:
1. Instruction Register (IR) digunakan untuk menyimpan instruksi yang sedang diproses.
2. Program Counter (PC) adalah register yang digunakan untuk menyimpan alamat lokasi dari memori utama yang berisi instruksi yang sedang diproses. Selama pemrosesan instruksi oleh CPU, isi dari PC diubah menjadi alamat dari memori utama yang berisi instruksi berikutnya yang mendapat giliran akan diproses, sehingga bila pemrosesan sebuah instruksi selesai maka jejak instruksi selanjutnya di memori utama dapat dengan mudah didapatkan.
3. General purpose register, yaitu register yang mempunyai kegunaan umum yang berhubungan dengan data yang sedang diproses. Sebagai contoh, register jenis ini yang digunakan untuk menampung data yang sedang diolah disebut dengan operand register, sedang untuk menampung hasil pengolahan disebut accumulator.
4. Memory data register (MDR) digunakan untuk menampung data atau instruksi hasil pengiriman dari memori utama ke CPU atau menampung data yang akan direkam ke memori utama dari hasil pengolahan oleh CPU.
5. Memory address register (MAR) digunakan untuk menampung alamat data atau instruksi pada memori utama yang akan diambil atau yang akan diletakkan.
Sebagai tambahan dari register, beberapa CPU menggunakan suatu cache memory yang mempunyai kecepatan sangat tinggi dengan tujuan agar kerja dari CPU lebih efisien dan mengurangi waktu yang terbuang. Tanpa cache memory, CPU akan menunggu sampai data atau instruksi diterima dari memori utama, atau menunggu hasil pengolahan selesai dikirim ke memori utama baru proses selanjutnya bisa dilakukan. Padahal proses dari memori utama lebih lambat dibanding kecepatan register sehingga akan banyak waktu terbuang. Dengan adanya cache memory, sejumlah blok informasi pada memori utama dipindahkan ke cache memory dan selanjutnya CPU akan selalu berhubungan dengan cache memory.

Array Processor
Bila sejumlah besar dari perhitungan harus dilakukan, maka untuk mempercepat proses biasanya dipergunakan unit tambahan yang disebut dengan array processor atau co-processor. Unit ini terpisah dari unit lainnya yang dapat ditambahkan pada pemroses utamanya. Dengan perkembangan teknologi sekarang, unit pemroses tambahan ini sudah tidak diperlukan lagi karena pemroses mikro yang ada sudah mampu menangani perhitungan dengan kemampuan dan kecepatan yang sangat tinggi. Teknologi pemroses tambahan ini diperlukan untuk komputer-komputer mikro lama, misalnya yang masih menggunakan pemroses utama seri 8088 hingga 80486.

MEMORI
CPU hanya dapat menyimpan data dan instruksi di register yang berukuran kecil sehingga tidak dapat menyimpan semua informasi yang dibutuhkan untuk keseluruhan proses program. Untuk mengatasi hal ini, maka CPU harus dilengkapi dengan alat penyimpan yang berkapasitas lebih besar yaitu memori utama. Unit ini dapat dibayangkan sebagai sekumpulan kotak-kotak yang masing-masing dapat menyimpan sepenggal informasi baik berupa data maupun instruksi. Tiap-tiap lokasi dari kotak ditunjukkan oleh suatu alamat (address), yaitu berupa nomor yang menunjukkan lokasi tertentu dari kotak memori.
Ukuran memori ditunjukkan oleh satuan byte, misalnya 1 Mb, 4 Mb, 8 Mb, atau bahkan adayang sampai 256 Mb. Pada umumnya 1 byte memori terdiri dari 8 – 32 bit (binary digit), yaitu banyaknya digit biner (0 atau 1) yang mampu disimpan dalam satu kotak memori.

Random Access Memory (RAM)
Semua data dan program yang dimasukkan melalui alat input akan disimpan terlebih dahulu di memori utama, khususnya RAM, yang dapat diakses secara acak (dapat diisi/ditulis, diambil, atau dihapus isinya) oleh pemrogram. Struktur RAM terbagi menjadi empat bagian utama, yaitu:
1. Input storage, digunakan untuk menampung input yang dimasukkan melalui alat input.
2. Program storage, digunakan untuk menyimpan semua instruksi-instruksi program yang akan diakses.
3. Working storage, digunakan untuk menyimpan data yang akan diolah dan hasil pengolahan.
4. Output storage, digunakan untuk menampung hasil akhir dari pengolahan data yang akan ditampilkan ke alat output.
Input yang dimasukkan melalui alat input akan ditampung terlebih dahulu di input storage. Bila input tersebut berupa program maka akan dipindahkan ke program storage, dan bila berbentuk data
maka akan dipindahkan ke working storage. Hasil dari pengolahan juga ditampung terlebih dahulu di working storage dan bila akan ditampilkan ke alat output maka hasil tersebut dipindahkan ke output storage.


sumber : http://gerypata21.wordpress.com/cpu-central-prossecing-unit/