BUS adalah jalur komunikasi yang dibagi pemakai suatu set kabel tunggal yang digunakan untuk menghubungkan berbagai subsistem. BUS Sistem adalah sebuah Bus yang menghubungkan komponen-komponen utama komputer (CPU, Memori ,I/O).
ORGANISASI BUS
1.Jalur Kontrol
- Berisi signal request dan sinyal acknowledgements
- Mengindikasikan tipe informasi pada jalur data.
2.Jalur Data
- Membawa informasi antara sumber dan tujuan data
dan alamat dan perintah-perintah kompleks
Suatu transaksi bus meliputi 2 komponen yaitu mengeluarkan perintah dan alamat – request (permintaan), memindahkan dat – action (tindakan). Master bus yang memulai transaksi bus dengan cara mengeluarkan perintah dan alamat. Sedangkan Slave adalah bus yang bereaksi terhadap alamat dengan cara mengirimkan data kepada master jika master meminta data, menerima data dari master jika master mengirim data.
BUS DATA merupakan saluran data memberikan lintasan bagi perindahan data antara dua modul sistem . Besar jalur bus data mempengaruhi kinerjanya, contoh : 8, 16, 32 dan 64 bit.
BUS ALAMAT mengidentifikasi sumber atau tujuan data pada bus data mengalamati port-port I/O. Contoh : jika CPU akan membaca word ( 8, 16 atau 32 bit) data dari memori maka CPU akan menaruh alamat word yang dimaksud pada saluran alamat
BUS KONTROL berguna untuk mengontrol akses ke saluran alamat dan penggunaan data dan saluran alamat. Mengendalikan dan mengatur timing informasi :
a. Sinyal read /write
b. Interrupt request
c. Sinyal clock
Jenis BUS :
1. Dedicated
Penggunaan alamat terpisah dan jalur data
Keuntungan : Throughtput yang tinggi, karena kemacetan lalulintas kecil
Kerugian : meningkatnya ukuran dan biaya system
2. Multiplexed
Penggunnan saluran yang sama untuk berbagai keperluan
Keuntungan : Memrlukan saluran yang lebih sedikit, uang menghemat ruang dan biaya
Kerugian : Diperlukan rangkaian yang lebih kompleks untuk setiap modul
Metode Arbitrasi menugaskan sebuah perangkat, CPU atau I/O sebagai master tersentralisasi (pengontrol bus atau arbitrer bertanggung jawab atas alokasi waktu pada BUS) dan terdistribusi (modul-modul bekerja sama untuk memakai BUS bersama-sama
Metode Arbitrasi menugaskan sebuah perangkat, CPU atau I/O bertindak sebagai master tersentralisasi (pengontrol bus atau arbitrer bertanggung jawab alokasi waktu pada BUS) dan terdistribusi (modul-modul bekerja sama untuk memakai BUS bersama-sama)
Lebar BUS
1. Address
- Lebar bus alamat mempengaruhi kapasitas.
- Semakin lebar bus alamat, semakin besar range lokasi yang dapat direferensi
2. Data
- Lebar bus data, mempengaruhi kinerja sistem
- Semakin lebar bus data, semakin besar bit yang dapat ditransfer pada suatu waktu
Jenis Transfer Data
1. Read
Slave menaruh data pada bus data begitu slave mengetahui alamat dan mengambil datanya
2. Write
Master menaruh data pada bus data begitu alamat stabil dan slave mempunyai kesempatan untuk mengetahui alamat
3. Read modify Write
Operasi Read yang diikuit operasi Write ke alamat yang sama dengan tujuan untuk melindungi sumber daya memori yang dapat dipakai bersama di dalam multiprogramming
4. Read after Write
Operasi yang tidak dapat dibagi yang berisi operasi Write diikuti operasi Read dari alamat yang sama
5. Blok
Sebuah siklus lamat diikuti oleh n siklus data
Contoh sistem BUS
a. Bus ISA (Industry Standard Architecture) adalah sebuah bus PC/AT (16 bit) yang beroperasi pada 8,33 MHz
b. BUS PCI (Peripheral Component Interconnect bus) merupakan bus yang beroperasi pada kecepatan 33 MHz
c. BUS Seri Universal yaitu sebuah bus standart yang disepakati bersama oleh tujuh perusahaan untuk digunakan pada peralatan berkecepatan rendah
Gambar:
Sumber: margono.staff.uns.ac.id/files/2009/06/sistem-bus.ppt
Selasa, 19 April 2011
ALU (Arithmetic and Logic Unit)
ALU seperti telah diketahui secara umum adalah bertugas untuk melaksanakan operasi aritmatika dan logika. Dalam melakukan operasi ini, ALU juga membutuhkan tempat untuk menyimpan hasil operasinya untuk sementara waktu. Piranti penyimpanan ini terdiri dari sekumpulan register flip-flop yang masing-masing terdiri dari satu atau lebih flip-flop. Panjang setiap register didefinisikan sebagai banyaknya informasi maksimum yang dapat disimpan oleh register tersebut. Dalam register biner, panjangnya register sama dengan banyaknya digit biner maksimum yang dapat disimpan dan dalam register BCD, panjangnya register sama dengan banyaknya digit decimal yang dapat disimpan dalam register tersebut.
Hampir semua computer, khususnya mikroprosesor, memiliki register yang disebut dengan akumulator yang merupakan register utama untuk operasi arithmetic dan Logic. Register ini menyimpan hasil setiap operasi arithmetic atau operasi logic dan rangkaian penggerbangannya ditempelkan pada register ini, sehingga operasi yang perlu, dapat dilakukan pada isinya dan pada register lain yang berkaitan.
Unit Aritmetika dan Logika merupakan bagian pengolah bilangan dari sebuah komputer. Di dalam operasi aritmetika ini sendiri terdiri dari berbagai macam operasi diantaranya adalah operasi penjumlahan, pengurangan, perkalian, dan pembagian. Mendesain ALU juga memiliki cara yang hampir sama dengan mendesain enkoder, dekoder, multiplexer, dan demultiplexer. Rangkaian utama yang digunakan untuk melakukan perhitungan ALU adalah Adder.
Adder
Rangkaian ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Karena Adder digunakan untuk memproses operasi aritmetika, maka Adder juga sering disebut rangkaian kombinasional aritmetika. ALU akan dijelaskan lebih detail pada bab 3. Ada 2 jenis Adder :
1. Rangkaian Adder yang hanya menjumlahkan dua bit disebut Half Adder.
Rangkaian half adder merupakan dasar penjumlahan bilangan biner yang masing-masing hanya terdiri dari satu bit, oleh karena itu dinamakan penjumlah tak lengkap.
1. Jika A=0 dan B=0 dijumlahkan, hasilnya S (Sum) = 0.
2. Jika A=0 dan B=1 dijumlahkan, hasilnya S (Sum) = 1.
3. Jika A=1 dan B=1 dijumlahkan, hasilnya S (Sum) = 0.
dengan nilai pindahan Cy(Carry Out) = 1. Dengan demikian, half adder memiliki 2 masukan (A dan B) dan dua keluaran (S dan Cy). Maka nilai logika dari Sum sama dengan nilai logika dari gerbang XOR, sedangkan nilai logika Cy sama dengan nilai dari gerbang logika AND.
2. Rangkaian Adder yang menjumlahkan tiga bit disebut Full Adder.
Full adder mengolah penjumlahan untuk 3 bit bilangan atau lebih (bit tidak terbatas), oleh karena itu dinamakan rangkaian penjumlah lengkap.
y dapat diserhanakan menjadi
Cy = AB + AC + BC
3. Rangkaian Adder yang menjumlahkan banyak bit disebut paralel Adder
Parallel Adder adalah rangkaian Full Adder yang disusun secara parallel dan berfungsi untuk menjumlah bilangan biner berapapun bitnya, tergantung jumlah Full Adder yang diparallelkan. Gambar berikut menunjukkan Parallel Adder yang terdiri dari 4 buah Full Adder yang tersusun parallel sehingga membentuk sebuah penjumlah 4 bit.
Penjumlahan
Komputer hanya dapat melakukan proses aritmetika menggunakan bilangan biner. Semua sistem bilangan harus diubah terlebih dahulu ke biner agar dapat diproses. Proses yang biasa dilakukan oleh komputer untuk menjumlahkan sistem bilangan desimal biasanya adalah menyandikan ke 8421BCD terlebih dahulu sebelum dijumlahkan. Sebelum mempelajari tentang penjumlahan pada 8421BCD, ada baiknya mengetahui cara menjumlahkan bilangan biner.
a. Penjumlahan Biner
Ada 4 kondisi yang terjadi pada penjumlahan biner yaitu apabila 0 + 0, 0 + 1, 1 + 0, dan 1 + 1. Jika yang terjadi adalah 1 + 1, kita tidak dapat menyatakan hasil jumlah dalam satu digit. Tetapi kita harus melakukan penyimpanan (Carry Out) kedalam kolom yang lebih tinggi. Ini berlaku untuk seluruh sistem bilangan. Sebagai contoh pada bilangan desimal 2 + 5 = 7 dengan carry out = 0, 9 + 9 = 8 dengan carry out = 1.
b. Penjumlahan 8421BCD
Sandi 8421BCD hanya menggunakan bilangan biner untuk 0 sampai 9, karena yang disandikan hanya 1 digit angka desimal. Dalam penjumlahan yang perlu diperhatikan adalah jika hasilnya lebih dari 9 sehingga akan dihasilkan auxillary carry (Carry dari bilangan keempat LSB) maupun carry dari MSB. Berikut adalah aturan penjumlahan sandi 8421BCD:
- Jika jumlah biner dan jumlah BCD sama, yaitu AC (Auxillary Carry) = 0 dan Carry = 0 maka tidak diperlukan aturan tambahan.
- Jika jumlah biner tidak sama dengan jumlah desimal maka memerlukan pengaturan tambahan :
Jika Auxillary Carry (AC) = 0 atau AC = 1 dan Carry (Cy) = 0 dimana hasil penjumlahan binernya lebih dari 9 desimal, maka perlu ditambahkan 6 pada nible rendah tersebut, dan tambahkan 1 pada nible yang lebih tinggi.
Pengurangan
Pengurangan pada dasarnya merupakan penjumlahan, yaitu penjumlahan dengan bilangan negatif.
500 – 255 = 245 (Pengurangan)
500-255 = 245 (Penjumlahan)
Komputer hanya bekerja pada bilangan “0” dan “1” dan tidak mengenal bilangan negatif. Untuk menunjukkan bilangan negatif, komputer menggunakan tanda modulus (Modulus Sign). Pada penjumlahan desimal tanda modulus yang digunakan adalah “0” untuk bilangan positif dan “9” untuk bilangan negatif. Untuk bilangan negatif, pada operasi penjumlahannya, harus dikomplemen. Komplemen yang digunakan pada bilangan desimal adalah komplemen10 dan komplemen9.
Pengurangan Bilangan Biner
Pada penjumlahan biner, komplemen yang digunakan adalah komplemen2 dan komplemen1. Untuk mendapatkan komplemen bilangan biner, cukup dengan membalik angkanya saja. Jika “0” dibalik menjadi “1”, dan jika “1” dibalik menjadi “0”. Komplemen2 mirip dengan komplemen10 pada bilangan desimal (Carry dihilangkan), sedangkan komplemen1 mirip dengan komplemen9 (Carry ditambahkan pada hasil akhir).
Perkalian
Perkalian antara bilangan biner adalah perkalian yang paling mudah diantara sistem bilangan lainnya. Perkalian desimal melibatkan lebih banyak hal daripada perkalian biner. Dalam perkalian biner, hasil perkalian adalah 0 atau bilangan itu sendiri. Sedangkan dalam perkalian desimal melibatkan tabel perkalian ditambah dengan pembawaan dan penambahan.
Perkalian dua digit desimal saja sudah melibatkan dua digit keluaran, misalnya 3 x 6 = 18. Dalam hal berikut, kita sebut hasil perkalian dua digit sebagai digit kiri dan digti kanan. Jadi hasil perkalian pada contoh tersebut 1 sebagai digit kiri dan 8 adalah digit kanan. Dan untuk 2 x 3 = 6 kia peroleh 0 untuk digit kiri dan 6 untuk digit kanan.
Untuk proses yang lebih cepat dapat dilakukan dengan membentuk hasil kali dengan memakai yang dikalikan dan digit terkanan dari pengali, selain itu dengan betul – betul membentuk hasil kali parsial kiri dan kanan yang diperoleh bila perkalian digit dengan bilangan, kemudian menjumlahkannya. Misalnya 6 x 7164 akan menghasilkan 2664 untuk perkalian digit kanan dan 4036 untuk digit kiri. Kemudian dijumlahkan.
Pembagian
Kebalikan dari perkalian, pembagian (Division) adalah suatu bentuk dari pengurangan yang dilakukan berulangulang. Dan proses ini juga dapat dilakukan pada rangkaian logika dengan cara pengurangan dan penggeseran ke kiri (menggunakan shiftleft register). Berikut adalah aturan dari pembagian: Kurangkan bilangan pembagi (Divisor) dari MSB bilangan yang akan dibagi (Dividend), lihat hasil pengurangan.
Bila hasilnya 1 atau positif :
Berarti hasil pembagian (Product) adalah 1. Setelah itu hasil pengurangan digeser kekiri satu bit, dan dimulai lagi pengurangan oleh bilangan pembagi (Divisor).
Bila hasilnya 0 atau negatif :
Berarti hasil pembagian (Product) adalah 0. Dalam hal ini sebelum digeser ke kiri harus ditambah dulu dengan bilangan pembagi (Divisor). Setelah digeser ke kiri satu bit, dimulai lagi proses pengurangan oleh bilangan pembagi. Pengurangan oleh bilangan pembagi dilakukan dengan penjumlahan komplemen2. Bila dalam penjumlahan tersebut terdapat pindahan (Carry), maka carry tersebut diabaikan.
Gambar ALU:
Dikutip dari:
www.unhas.ac.id/rhiza/arsip/.../modul_4_-_ALU.pdf
Hampir semua computer, khususnya mikroprosesor, memiliki register yang disebut dengan akumulator yang merupakan register utama untuk operasi arithmetic dan Logic. Register ini menyimpan hasil setiap operasi arithmetic atau operasi logic dan rangkaian penggerbangannya ditempelkan pada register ini, sehingga operasi yang perlu, dapat dilakukan pada isinya dan pada register lain yang berkaitan.
Unit Aritmetika dan Logika merupakan bagian pengolah bilangan dari sebuah komputer. Di dalam operasi aritmetika ini sendiri terdiri dari berbagai macam operasi diantaranya adalah operasi penjumlahan, pengurangan, perkalian, dan pembagian. Mendesain ALU juga memiliki cara yang hampir sama dengan mendesain enkoder, dekoder, multiplexer, dan demultiplexer. Rangkaian utama yang digunakan untuk melakukan perhitungan ALU adalah Adder.
Adder
Rangkaian ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Karena Adder digunakan untuk memproses operasi aritmetika, maka Adder juga sering disebut rangkaian kombinasional aritmetika. ALU akan dijelaskan lebih detail pada bab 3. Ada 2 jenis Adder :
1. Rangkaian Adder yang hanya menjumlahkan dua bit disebut Half Adder.
Rangkaian half adder merupakan dasar penjumlahan bilangan biner yang masing-masing hanya terdiri dari satu bit, oleh karena itu dinamakan penjumlah tak lengkap.
1. Jika A=0 dan B=0 dijumlahkan, hasilnya S (Sum) = 0.
2. Jika A=0 dan B=1 dijumlahkan, hasilnya S (Sum) = 1.
3. Jika A=1 dan B=1 dijumlahkan, hasilnya S (Sum) = 0.
dengan nilai pindahan Cy(Carry Out) = 1. Dengan demikian, half adder memiliki 2 masukan (A dan B) dan dua keluaran (S dan Cy). Maka nilai logika dari Sum sama dengan nilai logika dari gerbang XOR, sedangkan nilai logika Cy sama dengan nilai dari gerbang logika AND.
2. Rangkaian Adder yang menjumlahkan tiga bit disebut Full Adder.
Full adder mengolah penjumlahan untuk 3 bit bilangan atau lebih (bit tidak terbatas), oleh karena itu dinamakan rangkaian penjumlah lengkap.
y dapat diserhanakan menjadi
Cy = AB + AC + BC
3. Rangkaian Adder yang menjumlahkan banyak bit disebut paralel Adder
Parallel Adder adalah rangkaian Full Adder yang disusun secara parallel dan berfungsi untuk menjumlah bilangan biner berapapun bitnya, tergantung jumlah Full Adder yang diparallelkan. Gambar berikut menunjukkan Parallel Adder yang terdiri dari 4 buah Full Adder yang tersusun parallel sehingga membentuk sebuah penjumlah 4 bit.
Penjumlahan
Komputer hanya dapat melakukan proses aritmetika menggunakan bilangan biner. Semua sistem bilangan harus diubah terlebih dahulu ke biner agar dapat diproses. Proses yang biasa dilakukan oleh komputer untuk menjumlahkan sistem bilangan desimal biasanya adalah menyandikan ke 8421BCD terlebih dahulu sebelum dijumlahkan. Sebelum mempelajari tentang penjumlahan pada 8421BCD, ada baiknya mengetahui cara menjumlahkan bilangan biner.
a. Penjumlahan Biner
Ada 4 kondisi yang terjadi pada penjumlahan biner yaitu apabila 0 + 0, 0 + 1, 1 + 0, dan 1 + 1. Jika yang terjadi adalah 1 + 1, kita tidak dapat menyatakan hasil jumlah dalam satu digit. Tetapi kita harus melakukan penyimpanan (Carry Out) kedalam kolom yang lebih tinggi. Ini berlaku untuk seluruh sistem bilangan. Sebagai contoh pada bilangan desimal 2 + 5 = 7 dengan carry out = 0, 9 + 9 = 8 dengan carry out = 1.
b. Penjumlahan 8421BCD
Sandi 8421BCD hanya menggunakan bilangan biner untuk 0 sampai 9, karena yang disandikan hanya 1 digit angka desimal. Dalam penjumlahan yang perlu diperhatikan adalah jika hasilnya lebih dari 9 sehingga akan dihasilkan auxillary carry (Carry dari bilangan keempat LSB) maupun carry dari MSB. Berikut adalah aturan penjumlahan sandi 8421BCD:
- Jika jumlah biner dan jumlah BCD sama, yaitu AC (Auxillary Carry) = 0 dan Carry = 0 maka tidak diperlukan aturan tambahan.
- Jika jumlah biner tidak sama dengan jumlah desimal maka memerlukan pengaturan tambahan :
Jika Auxillary Carry (AC) = 0 atau AC = 1 dan Carry (Cy) = 0 dimana hasil penjumlahan binernya lebih dari 9 desimal, maka perlu ditambahkan 6 pada nible rendah tersebut, dan tambahkan 1 pada nible yang lebih tinggi.
Pengurangan
Pengurangan pada dasarnya merupakan penjumlahan, yaitu penjumlahan dengan bilangan negatif.
500 – 255 = 245 (Pengurangan)
500-255 = 245 (Penjumlahan)
Komputer hanya bekerja pada bilangan “0” dan “1” dan tidak mengenal bilangan negatif. Untuk menunjukkan bilangan negatif, komputer menggunakan tanda modulus (Modulus Sign). Pada penjumlahan desimal tanda modulus yang digunakan adalah “0” untuk bilangan positif dan “9” untuk bilangan negatif. Untuk bilangan negatif, pada operasi penjumlahannya, harus dikomplemen. Komplemen yang digunakan pada bilangan desimal adalah komplemen10 dan komplemen9.
Pengurangan Bilangan Biner
Pada penjumlahan biner, komplemen yang digunakan adalah komplemen2 dan komplemen1. Untuk mendapatkan komplemen bilangan biner, cukup dengan membalik angkanya saja. Jika “0” dibalik menjadi “1”, dan jika “1” dibalik menjadi “0”. Komplemen2 mirip dengan komplemen10 pada bilangan desimal (Carry dihilangkan), sedangkan komplemen1 mirip dengan komplemen9 (Carry ditambahkan pada hasil akhir).
Perkalian
Perkalian antara bilangan biner adalah perkalian yang paling mudah diantara sistem bilangan lainnya. Perkalian desimal melibatkan lebih banyak hal daripada perkalian biner. Dalam perkalian biner, hasil perkalian adalah 0 atau bilangan itu sendiri. Sedangkan dalam perkalian desimal melibatkan tabel perkalian ditambah dengan pembawaan dan penambahan.
Perkalian dua digit desimal saja sudah melibatkan dua digit keluaran, misalnya 3 x 6 = 18. Dalam hal berikut, kita sebut hasil perkalian dua digit sebagai digit kiri dan digti kanan. Jadi hasil perkalian pada contoh tersebut 1 sebagai digit kiri dan 8 adalah digit kanan. Dan untuk 2 x 3 = 6 kia peroleh 0 untuk digit kiri dan 6 untuk digit kanan.
Untuk proses yang lebih cepat dapat dilakukan dengan membentuk hasil kali dengan memakai yang dikalikan dan digit terkanan dari pengali, selain itu dengan betul – betul membentuk hasil kali parsial kiri dan kanan yang diperoleh bila perkalian digit dengan bilangan, kemudian menjumlahkannya. Misalnya 6 x 7164 akan menghasilkan 2664 untuk perkalian digit kanan dan 4036 untuk digit kiri. Kemudian dijumlahkan.
Pembagian
Kebalikan dari perkalian, pembagian (Division) adalah suatu bentuk dari pengurangan yang dilakukan berulangulang. Dan proses ini juga dapat dilakukan pada rangkaian logika dengan cara pengurangan dan penggeseran ke kiri (menggunakan shiftleft register). Berikut adalah aturan dari pembagian: Kurangkan bilangan pembagi (Divisor) dari MSB bilangan yang akan dibagi (Dividend), lihat hasil pengurangan.
Bila hasilnya 1 atau positif :
Berarti hasil pembagian (Product) adalah 1. Setelah itu hasil pengurangan digeser kekiri satu bit, dan dimulai lagi pengurangan oleh bilangan pembagi (Divisor).
Bila hasilnya 0 atau negatif :
Berarti hasil pembagian (Product) adalah 0. Dalam hal ini sebelum digeser ke kiri harus ditambah dulu dengan bilangan pembagi (Divisor). Setelah digeser ke kiri satu bit, dimulai lagi proses pengurangan oleh bilangan pembagi. Pengurangan oleh bilangan pembagi dilakukan dengan penjumlahan komplemen2. Bila dalam penjumlahan tersebut terdapat pindahan (Carry), maka carry tersebut diabaikan.
Gambar ALU:
Dikutip dari:
www.unhas.ac.id/rhiza/arsip/.../modul_4_-_ALU.pdf
Control Unit (CU)
CU (control unit) adalah alat yang berfungsi sebagai unit control langsung dan menyelaraskan operasi-operasi dalam komputer (semua perangkat yang terpasang di komputer, mulai dari input device sampai output device). Sedangkan ALU sendiri bertugas melakukan aritmatika, perbandingan, dan operasi-operasi logika terhadap pengolahan suatu data.
Dalam pengimplementasiannya, control unit dapat dibagi menjadi dua yaitu hardwired dan μprogrammed. Hardwired biasanya digunakan dalam arsitektur RISC, sedangkan untuk μprogrammed digunakan pada arsitektur CISC.
Pada hardwire implementation control unit sebagai combinational circuit yang dibuat berdasarkan control signal yang akan dikeluarkan. Jadi untuk setiap control signal memiliki rangkaian logika tertentu pada control unit yang dapat menghasilkan control signal yang dimaksud. Secara umum untuk metode ini digunakan PLA (programmable logic array) untuk merepresentasikan control signal.
Arti istilah Control Unit suatu pengontrolan disyaratkan berada di dalam sistem komputer untuk:
(1) memberitahukan kepada unit input data apa yang dimasukkan ke dalam primary storage dan kapan dimasukkannya.
(2) memberitahukan kepada unit primary storage dimana data itu harus ditempatkan.
(3) memberitahukan kepada unit arithmetic-logic operasi yang mana yang harus dilakukan, dimana data akan diperolehm dan di mana hasilnya akan ditempatkan.
(4) memberitahukan file mana yang boleh dipergunakan dan data apa yang dipergunakan.
(5) memberitahukan unit output yang mana yang akan ditulisi hasil akhir.
Cara Kerja Prosesor
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. 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.
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
a. Single-Cycle CU
Proses di CUl 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 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.
b. 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.
gambar:
Sumber:
http://www.total.or.id/info.php?kk=Control%20unit
http://students.ee.itb.ac.id/~stefanus/cu.html
http://www.wikipedia.org
http://blognapibelog.blogspot.com/2009/07/komponen-komponen-dari-unit-system.html
http://blog.math.uny.ac.id/linadwiarissetiani/2009/10/21/cara-kerja-processor
Dalam pengimplementasiannya, control unit dapat dibagi menjadi dua yaitu hardwired dan μprogrammed. Hardwired biasanya digunakan dalam arsitektur RISC, sedangkan untuk μprogrammed digunakan pada arsitektur CISC.
Pada hardwire implementation control unit sebagai combinational circuit yang dibuat berdasarkan control signal yang akan dikeluarkan. Jadi untuk setiap control signal memiliki rangkaian logika tertentu pada control unit yang dapat menghasilkan control signal yang dimaksud. Secara umum untuk metode ini digunakan PLA (programmable logic array) untuk merepresentasikan control signal.
Arti istilah Control Unit suatu pengontrolan disyaratkan berada di dalam sistem komputer untuk:
(1) memberitahukan kepada unit input data apa yang dimasukkan ke dalam primary storage dan kapan dimasukkannya.
(2) memberitahukan kepada unit primary storage dimana data itu harus ditempatkan.
(3) memberitahukan kepada unit arithmetic-logic operasi yang mana yang harus dilakukan, dimana data akan diperolehm dan di mana hasilnya akan ditempatkan.
(4) memberitahukan file mana yang boleh dipergunakan dan data apa yang dipergunakan.
(5) memberitahukan unit output yang mana yang akan ditulisi hasil akhir.
Cara Kerja Prosesor
Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage). Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register). Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. 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.
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
a. Single-Cycle CU
Proses di CUl 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 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.
b. 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.
gambar:
Sumber:
http://www.total.or.id/info.php?kk=Control%20unit
http://students.ee.itb.ac.id/~stefanus/cu.html
http://www.wikipedia.org
http://blognapibelog.blogspot.com/2009/07/komponen-komponen-dari-unit-system.html
http://blog.math.uny.ac.id/linadwiarissetiani/2009/10/21/cara-kerja-processor
ALU (Arithmetic and Logic Unit)
ALU seperti telah diketahui secara umum adalah bertugas untuk melaksanakan operasi aritmatika dan logika. Dalam melakukan operasi ini, ALU juga membutuhkan tempat untuk menyimpan hasil operasinya untuk sementara waktu. Piranti penyimpanan ini terdiri dari sekumpulan register flip-flop yang masing-masing terdiri dari satu atau lebih flip-flop. Panjang setiap register didefinisikan sebagai banyaknya informasi maksimum yang dapat disimpan oleh register tersebut. Dalam register biner, panjangnya register sama dengan banyaknya digit biner maksimum yang dapat disimpan dan dalam register BCD, panjangnya register sama dengan banyaknya digit decimal yang dapat disimpan dalam register tersebut.
Hampir semua computer, khususnya mikroprosesor, memiliki register yang disebut dengan akumulator yang merupakan register utama untuk operasi arithmetic dan Logic. Register ini menyimpan hasil setiap operasi arithmetic atau operasi logic dan rangkaian penggerbangannya ditempelkan pada register ini, sehingga operasi yang perlu, dapat dilakukan pada isinya dan pada register lain yang berkaitan.
Unit Aritmetika dan Logika merupakan bagian pengolah bilangan dari sebuah komputer. Di dalam operasi aritmetika ini sendiri terdiri dari berbagai macam operasi diantaranya adalah operasi penjumlahan, pengurangan, perkalian, dan pembagian. Mendesain ALU juga memiliki cara yang hampir sama dengan mendesain enkoder, dekoder, multiplexer, dan demultiplexer. Rangkaian utama yang digunakan untuk melakukan perhitungan ALU adalah Adder.
Adder
Rangkaian ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Karena Adder digunakan untuk memproses operasi aritmetika, maka Adder juga sering disebut rangkaian kombinasional aritmetika. ALU akan dijelaskan lebih detail pada bab 3. Ada 2 jenis Adder :
1. Rangkaian Adder yang hanya menjumlahkan dua bit disebut Half Adder.
Rangkaian half adder merupakan dasar penjumlahan bilangan biner yang masing-masing hanya terdiri dari satu bit, oleh karena itu dinamakan penjumlah tak lengkap.
1. Jika A=0 dan B=0 dijumlahkan, hasilnya S (Sum) = 0.
2. Jika A=0 dan B=1 dijumlahkan, hasilnya S (Sum) = 1.
3. Jika A=1 dan B=1 dijumlahkan, hasilnya S (Sum) = 0.
dengan nilai pindahan Cy(Carry Out) = 1. Dengan demikian, half adder memiliki 2 masukan (A dan B) dan dua keluaran (S dan Cy). Maka nilai logika dari Sum sama dengan nilai logika dari gerbang XOR, sedangkan nilai logika Cy sama dengan nilai dari gerbang logika AND.
2. Rangkaian Adder yang menjumlahkan tiga bit disebut Full Adder.
Full adder mengolah penjumlahan untuk 3 bit bilangan atau lebih (bit tidak terbatas), oleh karena itu dinamakan rangkaian penjumlah lengkap.
Cy = AB + AC + BC
3. Rangkaian Adder yang menjumlahkan banyak bit disebut paralel Adder
Parallel Adder adalah rangkaian Full Adder yang disusun secara parallel dan berfungsi untuk menjumlah bilangan biner berapapun bitnya, tergantung jumlah Full Adder yang diparallelkan. Gambar berikut menunjukkan Parallel Adder yang terdiri dari 4 buah Full Adder yang tersusun parallel sehingga membentuk sebuah penjumlah 4 bit.
Penjumlahan
Komputer hanya dapat melakukan proses aritmetika menggunakan bilangan biner. Semua sistem bilangan harus diubah terlebih dahulu ke biner agar dapat diproses. Proses yang biasa dilakukan oleh komputer untuk menjumlahkan sistem bilangan desimal biasanya adalah menyandikan ke 8421BCD terlebih dahulu sebelum dijumlahkan. Sebelum mempelajari tentang penjumlahan pada 8421BCD, ada baiknya mengetahui cara menjumlahkan bilangan biner.
a. Penjumlahan Biner
Ada 4 kondisi yang terjadi pada penjumlahan biner yaitu apabila 0 + 0, 0 + 1, 1 + 0, dan 1 + 1. Jika yang terjadi adalah 1 + 1, kita tidak dapat menyatakan hasil jumlah dalam satu digit. Tetapi kita harus melakukan penyimpanan (Carry Out) kedalam kolom yang lebih tinggi. Ini berlaku untuk seluruh sistem bilangan. Sebagai contoh pada bilangan desimal 2 + 5 = 7 dengan carry out = 0, 9 + 9 = 8 dengan carry out = 1.
b. Penjumlahan 8421BCD
Sandi 8421BCD hanya menggunakan bilangan biner untuk 0 sampai 9, karena yang disandikan hanya 1 digit angka desimal. Dalam penjumlahan yang perlu diperhatikan adalah jika hasilnya lebih dari 9 sehingga akan dihasilkan auxillary carry (Carry dari bilangan keempat LSB) maupun carry dari MSB. Berikut adalah aturan penjumlahan sandi 8421BCD:
- Jika jumlah biner dan jumlah BCD sama, yaitu AC (Auxillary Carry) = 0 dan Carry = 0 maka tidak diperlukan aturan tambahan.
- Jika jumlah biner tidak sama dengan jumlah desimal maka memerlukan pengaturan tambahan :
Jika Auxillary Carry (AC) = 0 atau AC = 1 dan Carry (Cy) = 0 dimana hasil penjumlahan binernya lebih dari 9 desimal, maka perlu ditambahkan 6 pada nible rendah tersebut, dan tambahkan 1 pada nible yang lebih tinggi.
Pengurangan
Pengurangan pada dasarnya merupakan penjumlahan, yaitu penjumlahan dengan bilangan negatif.
500 – 255 = 245 (Pengurangan)
500-255 = 245 (Penjumlahan)
Komputer hanya bekerja pada bilangan “0” dan “1” dan tidak mengenal bilangan negatif. Untuk menunjukkan bilangan negatif, komputer menggunakan tanda modulus (Modulus Sign). Pada penjumlahan desimal tanda modulus yang digunakan adalah “0” untuk bilangan positif dan “9” untuk bilangan negatif. Untuk bilangan negatif, pada operasi penjumlahannya, harus dikomplemen. Komplemen yang digunakan pada bilangan desimal adalah komplemen10 dan komplemen9.
Pengurangan Bilangan Biner
Pada penjumlahan biner, komplemen yang digunakan adalah komplemen2 dan komplemen1. Untuk mendapatkan komplemen bilangan biner, cukup dengan membalik angkanya saja. Jika “0” dibalik menjadi “1”, dan jika “1” dibalik menjadi “0”. Komplemen2 mirip dengan komplemen10 pada bilangan desimal (Carry dihilangkan), sedangkan komplemen1 mirip dengan komplemen9 (Carry ditambahkan pada hasil akhir).
Perkalian
Perkalian antara bilangan biner adalah perkalian yang paling mudah diantara sistem bilangan lainnya. Perkalian desimal melibatkan lebih banyak hal daripada perkalian biner. Dalam perkalian biner, hasil perkalian adalah 0 atau bilangan itu sendiri. Sedangkan dalam perkalian desimal melibatkan tabel perkalian ditambah dengan pembawaan dan penambahan.
Perkalian dua digit desimal saja sudah melibatkan dua digit keluaran, misalnya 3 x 6 = 18. Dalam hal berikut, kita sebut hasil perkalian dua digit sebagai digit kiri dan digti kanan. Jadi hasil perkalian pada contoh tersebut 1 sebagai digit kiri dan 8 adalah digit kanan. Dan untuk 2 x 3 = 6 kia peroleh 0 untuk digit kiri dan 6 untuk digit kanan.
Untuk proses yang lebih cepat dapat dilakukan dengan membentuk hasil kali dengan memakai yang dikalikan dan digit terkanan dari pengali, selain itu dengan betul – betul membentuk hasil kali parsial kiri dan kanan yang diperoleh bila perkalian digit dengan bilangan, kemudian menjumlahkannya. Misalnya 6 x 7164 akan menghasilkan 2664 untuk perkalian digit kanan dan 4036 untuk digit kiri. Kemudian dijumlahkan.
Pembagian
Kebalikan dari perkalian, pembagian (Division) adalah suatu bentuk dari pengurangan yang dilakukan berulangulang. Dan proses ini juga dapat dilakukan pada rangkaian logika dengan cara pengurangan dan penggeseran ke kiri (menggunakan shiftleft register). Berikut adalah aturan dari pembagian: Kurangkan bilangan pembagi (Divisor) dari MSB bilangan yang akan dibagi (Dividend), lihat hasil pengurangan.
Bila hasilnya 1 atau positif :
Berarti hasil pembagian (Product) adalah 1. Setelah itu hasil pengurangan digeser kekiri satu bit, dan dimulai lagi pengurangan oleh bilangan pembagi (Divisor).
Bila hasilnya 0 atau negatif :
Berarti hasil pembagian (Product) adalah 0. Dalam hal ini sebelum digeser ke kiri harus ditambah dulu dengan bilangan pembagi (Divisor). Setelah digeser ke kiri satu bit, dimulai lagi proses pengurangan oleh bilangan pembagi. Pengurangan oleh bilangan pembagi dilakukan dengan penjumlahan komplemen2. Bila dalam penjumlahan tersebut terdapat pindahan (Carry), maka carry tersebut diabaikan.
Langganan:
Postingan (Atom)