Pages

Selasa, 19 April 2011

ALU, CU, dan SISTEM BUS


 
Arithmetic Logical Unit (ALU)



ALU merupakan unit penalaran secara logic. ALU ini adalah merupakan Sirkuit CPU berkecepatan tinggi yang bertugas menghitung dan membandingkan. Angka-angka dikirim dari memori ke ALU untuk dikalkulasi dan kemudian dikirim kembali ke memori.

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 sendiri merupakan suatu kesatuan alat yang terdiri dari berbagai komponen perangkat elektronika termasuk di dalamnya sekelompok transistor, yang dikenal dengan nama logic gate, dimana logic gate ini berfungsi untuk melaksanakan perintah dasar matematika dan operasi logika.

Kumpulan susunan dari logic gate inilah yang dapat melakukan perintah perhitungan matematika yang lebih komplit seperti perintah “add” untuk menambahkan bilangan, atau “devide” atau pembagian dari suatu bilangan. Selain perintah matematika yang lebih komplit, kumpulan dari logic gate ini juga mampu untuk melaksanakan perintah yang berhubungan dengan logika, seperti hasil perbandingan dua buah bilangan.

Instruksi yang dapat dilaksanakan oleh ALU disebut dengan instruction set. Perintah yang ada pada masing-masing CPU belum tentu sama, terutama CPU yang dibuat oleh pembuat yang berbeda, katakanlah misalnya perintah yang dilaksanakan oleh CPU buatan Intel belum tentu sama dengan CPU yang dibuat oleh Sun atau perusahaan pembuat mikroprosesor lainnya. Jika perintah yang dijalankan oleh suatu CPU dengan CPU lainnya adalah sama, maka pada level inilah suatu sistem dikatakan compatible.

Sehingga sebuah program atau perangkat lunak atau software yang dibuat berdasarkan perintah yang ada pada Intel tidak akan bisa dijalankan untuk semua jenis prosesor, kecuali untuk prosesor yang compatible dengannya.

Operasi aritmatika yaitu melakukan perhitungan matematika, terdiri dari : penambahan (addition), pengurangan(substraction), perkalian (multiplication), dan pembagian (division). Operasi logika yaitu : membandingkan suatu element informasi dengan yang lainnya, terdiri dari : >, <, >=, <=, =, <>.
Seperti halnya dalam bahasa yang digunakan oleh manusia, instruction set ini juga memiliki aturan bahasa yang bisa saja berbeda satu dengan lainnya. Bandingkanlah beda struktur bahasa Inggris dengan Indonesia, atau dengan bahasa lainnya, begitu juga dengan instruction set yang ada pada mesin, tergantung dimana lingkungan instruction set itu digunakan.



Control Unit (CU)





CU (control unit) berfungsi untuk mengontrol unit dalam komputer secara langsung serta menyelaraskan operasi-operasi didalamnya. Dalam pengimplementasiannya, control unit dapat dibagi menjadi dua yaitu hardwired dan μprogrammed.

Hardwired biasanya digunakan dalam arsitektur RISC, sedangkan μ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.

μprogrammed implementation tidak menggunakan combinational circuit namun menggunakan μ instruction yang disimpan pada control memory. Proses untuk menghasilkan control signal dimulai dengan sequencing logic yang memberi perintah READ kepada control memory. Kemudian dilanjutkan dengan pemindahan dari CAR (control address register) ke CBR (control buffer register) isi dari alamat yang ditunjukan oleh control memory. Setelah itu CBR mengeluarkan control signal yang dituju dan  alamat selanjutnya ke sequencing logic. Terakhir, sequencing logic akan memberikan alamat baru ke CAR berdasarkan informasi dari CBR dan ALU. Kelebihan dari μprogrammed adalah lebih mudah untuk mengimplementasikan dan mendesain control unit. Selain itu dibandingkan dengan hardwired jauh lebih murah. Implementasi dari decoder dan sequencing logic dari μprogrammed merupakan logika yang sederhana, kemudahan untuk melakukan testing dan menambahkan instruksi baru serta dengan desain yang fleksibel. Sedangkan kelebihan dari hardwire adalah kecepatannya yang tinggi karena logika control unit langsung dibentuk menjadi rangkaian.

Input untuk control unit yaitu IR, flags, clock, dan control bus signal. Flags dan control bus signal memiliki representasi secara langsung dan signifikan terhadap operasi bila dibandingkan dengan IR dan clock. Untuk IR sendiri, control unit akan menggunakan operation code yang terdapat di dalam IR. Setiap operation code menandakan setiap proses yang berbeda. Proses ini  dapat disederhanakan dengan digunakannnya decoder, decoder memiliki n input dan 2n output yang akan merepresentasikan opcode. Jadi input dari IR akan diterjemahkan oleh decoder sebelum menjadi input ke control unit. Clock digunakan untuk mengukur urasi dai micro operation, untuk mengantisipasi propagasi sinyal yang dikirimkan melalui data paths dan rangkaian prosesor maka periode dari setiap clock seharusnya cukup besar. Untuk mengatasinya digunakan counter yang dapat memberikan clock input bagi control singnal yang berbeda, namun pada akhir instruction cycle, control unit harus mengembalikan ke counter untuk menginisialisasikan periode awal.



Macam-macam Control Unit

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.

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.


Tugas dari CU adalah sebagai berikut:
  • Mengatur dan mengendalikan alat-alat masukan (input) dan keluaran (output).
  • Mengambil instruksi-instruksi dari memori utama.
  • Mengambil data dari memori utama kalau diperlukan oleh proses.
  • Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan
    logika serta mengawasi kerja.
  • Menyimpan hasil proses ke memori utama. 

Proses tiga langkah karakteristik unit control:
  • Menentukan elemen dasar prosesor
  • Menjelaskan operasi mikro yang akan dilakukan prosesor
  • Menentukan fungsi-fungsi yang harus dilakukan unit control agar menyebabkan pembentukan operasi mikro 

Masukan-masukan unit control:

Clock / pewaktu
Pewaktu adalah cara unit control dalam menjaga waktunya. Unit control menyebabkan sebuah operasi mikro (atau sejumlah operasi mikro yang bersamaan) dibentuk bagi setiap pulsa waktu. Pulsa ini dikenal sebagai waktu siklus prosesor.

Register instruksi
Opcode instruksi saat itu digunakan untuk menentukan operasi mikro mana yang akan dilakukan selama siklus eksekusi.

Flag
Flag ini diperlukan oleh unit control untuk menentukan status prosesor dan hasil operasi ALU sebelumnya.

Sinyal control untuk mengontrol bus
Bagian bus control bus system memberikan sinyal-sinyal ke unit control, seperti sinyal-sinyal interupsi dan acknowledgement.

Keluaran-keluaran unit control
  • Sinyal control didalam prosesor: terdiri dari dua macam: sinyal-sinyal yang menyebabkan data dipindahkan dari register yang satu keregister yang lainnya, dan sinyal-sinyal yang dapat mengaktifasi fungsi-fungsi ALU tertentu.
·     



Sistem BUS

Bus merupakan lintasan komunikasi yang menghubungkan dua atau lebih perangkat. Bus merupakan media transmisi yang dapat digunakan bersama. Sejumlah perangkat yang terhubung ke bus, dan suatu signal yang ditransmisikan oleh salah satu perangkat ini dapat diterima oleh salah satu perangkat yang terhubung ke bus. Bila dua buah perangkat melakukan transmisi dalam waktu yang bersamaa, maka signal-signalnya akan bertumpang tindih dan menjadi rusak.

Umumnya sebuah bus terdiri dari sejumlah lintasan komunikasi atau saluran. Masing-masing saluran dapat mentransimisikan signal yang menunjukkan biner 1 dan biner 0. Serangkaian digit biner dapat ditransmisikan melalui saluran tunggal. Dengan mengumpulkannya beberapa saluran dari sebuah bus dapat digunakan mentransmisikan digit biner secara bersamaan (secara paralel). Misalnya sebuah satuan data 8 bit dapat ditransmisikan melalui bus 8 saluran.

Bus terdiri dari 3:

Bus Data
Saluran yang memberikan lintasan bagi perpindahan data antara dua modul system. Umumnya bus data terdiri dari 8, 16, 32 saluran, jumlah saluran dikaitkan dengan lebar bus data. Karena pada suatu saat tertentu masing-masing saluran hanya dapat membawa 1 bit, maka jumlah saluran menentukan jumlah bit yang dapat diindahkan pada suatu saat. Lebar bus data merupakan factor penting dalam menentukan kinerja system secara keseluruahan. Bila bus data lebarnya 8 bit, dan setiap instruksi panjangnya 16 bit, maka CPU harus 2 kali mengakses modul memori dalam setiap siklus instruksinya.

Bus Alamat
Digunakan untuk menandakan sumber atau tujuan data pada bus data, misalnya CPU akan membaca sebuah word (8, 16, 32 bit) data dari memori, maka CPU akan menaruh alamat word yang dimaksud pada saluran alamat. Lebar bus alamat menentukan kapasitas memori maksimum sitem. Selain itu umumnya saluran alamt juga digunakan untuk mengalamati port-port I/O.

Bus Kontrol
Digunakan untuk mengontrol akses ke saluran alamat, penggunaan data dan saluran alamat. Karena data dan saluran alamat digunakan bersama oleh seluruh komponen, maka harus ada alat untuk mengontrol penggunaannya. Signal-signal kontrol melakukan transmisi baik perintah mauun informasi pewaktuan diantra modul-modul system. Signal-signal pewaktuan menunjukkan validitas data dan informasi alamat.

Umumnya saluran kontrol meliputi :
Memory Write : menyebabkan data pada bus akan dituliskan ke dalam lokasi alamat. Memory Read : menyebabkan data dari lokasi alamat ditempatkan pada bus I/O Write : menyebabkan data pada bus di output kan ke port I/O yang beralamat. I/O Read : menyebabkan data dari port I/O yang beralamat ditempatkan pada bus. Transfer ACK : menunjukkan bahwa data telah diterima dari bus atau telah ditempatkan di bus. Interrupt Request : menandakan bahwa sebuah interrupt ditangguhkan. Interrupt ACK : memberitahukan bahwa interrupt yang ditangguhkan telah diketahui. Clock : digunakan untuk mensinkronkan operasi-operasi. Reset : menginisialisasi seluruh modul 

Jenis Data
 
Memori
Memori umumnya terdiri atas N word memori dengan panjang yang sama. Masing–masing word diberi alamat numerik yang unik (0, 1, 2, …N-1). Word dapat dibaca maupun ditulis pada memori dengan kontrol Read dan Write. Lokasi bagi operasi dispesifikasikan oleh sebuah alamat.

Modul I/O
Operasi modul I/O adalah pertukaran data dari dan ke dalam komputer. Berdasakan pandangan internal, modul I/O dipandang sebagai sebuah memori dengan operasi pembacaan dan penulisan. Seperti telah dijelaskan pada bab 6 bahwa modul I/O dapat mengontrol lebih dari sebuah perangkat peripheral. Modul I/O juga dapat mengirimkan sinyal interrupt.

CPU
CPU berfungsi sebagai pusat pengolahan dan eksekusi data berdasarkan routine–routine program yang diberikan padanya. CPU mengendalikan seluruh sistem komputer sehingga sebagai konsekuensinya memiliki koneksi ke seluruh modul yang menjadi bagian sistem komputer.


                                Gambar 1. Modul Komputer 

Dari jenis pertukaran data yang diperlukan modul–modul komputer, maka struktur interkoneksi harus mendukung perpindahan data.
  • Memori ke CPU : CPU melakukan pembacaan data maupun instruksi dari memori.
  • CPU ke Memori : CPU melakukan penyimpanan atau penulisan data ke memori.
  • I/O ke CPU : CPU membaca data dari peripheral melalui modul I/O.
  • CPU ke I/O : CPU mengirimkan data ke perangkat peripheral melalui modul I/O.
  • I/O ke Memori atau dari Memori : digunakan pada sistem DMA
Sampai saat ini terjadi perkembangan struktur interkoneksi, namun yang banyak digunakan saat ini adalah sistem bus.
Sistem bus
  1. Digunakan secara tunggal
  2. Digunakan secara jamak,
Hal ini Tergantung karakteristik sistemnya

Interkoneksi Bus – Struktur Bus
Sebuah bus biasanya terdiri atas beberapa saluran. Sebagai contoh bus data terdiri atas 8 saluran sehingga dalam satu waktu dapat mentransfer data 8 bit. Secara umum fungsi saluran bus dikatagorikan dalam tiga bagian, yaitu :
  • Saluran data
  • Saluran alamat
  • Saluran kontrol

                              Gambar 2. Pola Interkoneksi 

Saluran Data
Lintasan bagi perpindahan data antar modul. Secara kolektif lintasan ini disebut bus data. Umumnya jumlah saluran terkait dengan panjang word, misalnya 8, 16, 32 saluran.
Tujuan : agar mentransfer word dalam sekali waktu.
Jumlah saluran dalam bus data dikatakan lebar bus, dengan satuan bit, misal lebar bus 16 bit

Saluran Alamat (Address Bus)
  • Digunakan untuk menspesifikasi sumber dan tujuan data pada bus data.
  • Digunakan untuk mengirim alamat word pada memori yang akan diakses CPU.
  • Digunakan untuk saluran alamat perangkat modul komputer saat CPU mengakses suatu modul.
  • Semua peralatan yang terhubung dengan sistem komputer, agar dapat diakses harus memiliki alamat.
Contoh : mengakses port I/O, maka port I/O harus memiliki alamat hardware-nya

Saluran kontrol (Control Bus)
Digunakan untuk mengontrol bus data, bus alamat dan seluruh modul yang ada.
Karena bus data dan bus alamat digunakan oleh semua komponen maka diperlukan suatu mekanisme kerja yang dikontrol melalui bus kontrol ini.
Sinyal – sinyal kontrol terdiri atas
  • Sinyal pewaktuan adalah Sinyal pewaktuan menandakan validitas data dan alamat
  • Sinyal–sinyal perintah adalah Sinyal perintah berfungsi membentuk suatu operasi
Prinsip Operasi Bus
  1. Meminta penggunaan bus.
  2. Apabila telah disetujui, modul akan memindahkan data yang diinginkan ke modul yang dituju
Hierarki Multiple Bus
Bila terlalu banyak modul atau perangkat dihubungkan pada bus maka akan terjadi penurunan kinerja
Faktor – faktor :
  1. Semakin besar delay propagasi untuk mengkoordinasikan penggunaan bus.
  2. Antrian penggunaan bus semakin panjang.
  3. Dimungkinkan habisnya kapasitas transfer bus sehingga memperlambat data.

                Gambar 3. Arsitektur bus jamak tradisional 

Arsitektur bus jamak
Prosesor, cache memori dan memori utama terletak pada bus tersendiri pada level tertinggi karena modul – modul tersebut memiliki karakteristik pertukaran data yang tinggi.
Pada arsitektur berkinerja tinggi, modul – modul I/O diklasifikasikan menjadi dua,
  • Memerlukan transfer data berkecepatan tinggi
  • Memerlukan transfer data berkecepatan rendah.
Modul dengan transfer data berkecepatan tinggi disambungkan dengan bus berkecepatan tinggi pula,
Modul yang tidak memerlukan transfer data cepat disambungkan pada bus ekspansi


                     Gambar 4. Arsitektur bus jamak kinerja tinggi 

Keuntungan hierarki bus jamak kinerja tinggi
  1. Bus berkecepatan tinggi lebih terintegrasi dengan prosesor.
  2. Perubahan pada arsitektur prosesor tidak begitu mempengaruhi kinerja bus

Sumber
          http://mangantar.wordpress.com/2011/02/09/cpu-central-prosessor-unit/