Jumat, 23 Desember 2016

Prosesor Paralel

Pemrosesan paralel (parallel processing) adalah penggunaaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.

Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Komputasi paralel membutuhkan:
1. algoritma
2. bahasa pemrograman
3. compiler
    
Sebagaian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software. Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Yang terdiri dari empat kelompok komputer. Keempat kelompok komputer tersebut adalah :

Komputer SISD (Single Instruction stream-Single Data stream)
Komputer SSID
(http://thedestination-vaibhav.blogspot.co.id/2010/05/parallel-processing-sisdsimdmimdmisd.html)

Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanya overlapping dalam eksekusi setiap bagian instruksi (pipelining). Pada umumnya komputer SISD berupa komputer yang terdiri atas satu buah pemroses (single processor). Namun komputer SISD juga mungkin memiliki lebih dari satu unit fungsional (modul memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut berada dalam kendali sebuah unit pengendali. 

Komputer SIMD (Single Instruction stream-Multiple Data stream)
Komputer SIMD
(http://thedestination-vaibhav.blogspot.co.id/2010/05/parallel-processing-sisdsimdmimdmisd.html)

Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang berbeda yang berasal dari aliran data yang berbeda pula.

Komputer MISD (Multiple Instruction stream-Single Data stream)
Komputer MISD
(http://thedestination-vaibhav.blogspot.co.id/2010/05/parallel-processing-sisdsimdmimdmisd.html)

Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian.

Komputer MIMD (Multiple Instruction stream-Multiple Data stream)
Komputer MIMD
(http://thedestination-vaibhav.blogspot.co.id/2010/05/parallel-processing-sisdsimdmimdmisd.html)
Pada sistem komputer MIMD murni terdapat interaksi di antara pemrosesan. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses rendah.


Pipelining & Risc (Reduce Instructor Set Computer)

RISC
Pada tahun 1980, John Cocke di IBM menghasilkan minikomputer eksperimental, yaitu IBM 801 dengan prosesor komersial pertama yang menggunakan RISC. Pada tahun itu juga, Kelompok Barkeley yang dipimpin David Patterson mulai meneliti rancangan RISC dengan menghasilkan RISC-1 dan RISC-2.
Kata “reduced” berarti pengurangan pada set instruksi. RISC merupakan rancangan arsitektur CPU yang mengembil dasar filosofi bahwa prosesor dibuat dengan arsitektur yang tidak rumit dengan membatasi jumlah instruksi hanya pada instruksi dasar yang diperlukan saja. Dengan kata lain RISC adalah arsitektur komputer dengan kumpulan perintah (instruksi) yang sederhana, tetapi dalam kesederhanaan tersebut didapatkan kecepatan operasi setiap siklus instruksinya. Kebanyakan pada proses RISC , instruksi operasi dasar aritmatik hanya penjumlahan dan pengurangan, untuk perkalian dan pembagian sudah dianggap operasi ang kompleks. RISC menyederhanakan rumusan perintah sehingga lebih efisien dalam penyusunan kompiler yang pada akhirnya dapat memaksimumkan kinerja program yang ditulis dalam bahasa tingkat tinggi.

(1)
Perbedaan antara RISC dan CISC

Ciri-ciri karakteristik RISC :
a. Instruksi berukuran tunggal.
b. Ukuran yang umum adalah 4 byte.
c. Jumlah mode pengalamatan data yang sedikit, biasanya kurang dari lima buah.
d. Tidak terdapat pengalamatan tak langsung.
e. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika.

Ada tiga buah elemen yang menentukan karakter arsitektur RISC, yaitu:
·       Penggunaan register dalam jumlah yang besar. Hal ini dimaksudkan untuk mengoptimalkan pereferensian operand.
·    Diperlukan perhatian bagi perancangan pipeline instruksi. Karena tingginya proporsi instruksi pencabangan bersyarat dan prosedur call, pipeline instruksi yang bersifat langsung dan ringkas akan menjadi tidak efisien.
·       Terdapat set instruksi yang disederhanakan (dikurangi).

Waktu eksekusi dapat dirumuskan dengan:
Waktu eksekusi = N x S x T

Dengan:
N adalah jumlah perintah
S adalah jumlah rata-rata langkah per perintah,
T adalah waktu yang diperlukan untuk melaksanakan satu langkah 
• Kecepatan eksekusi dapat ditingkatkan dengan menurunkan nilai dari ketiga variabel di atas.
• Arsitektur CISC berusaha menurunkan nilai N (jumlah perintah), sedangkan 
• Arsitektur RISC berusaha menurunkan nilai S dan T.
• Proses pipeline dapat digunakan untuk membuat nilai efektif S mendekati 1 (satu) artinya komputer menyelesaikan satu perintah dalam satu siklus waktu CPU. 
• Nilai T dapat diturunkan dengan merancang perintah yang sederhana.

Pipelining RISC
Pipelining yaitu suatu cara yang digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam tahap berbeda yang jalankan secara kontinu pada unit pemrosesan. Dengan cara ini, maka unit pemrosesan selalu bekerja.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer, seperti pada instruksi yang dijalankan oleh microprocessor.

Pengenalan Pipeline
Prosesor Pipeline yang berputar adalah prosesor baru untuk arsitektur superscalar komputasi. Ini didasarkan pada cara yang mudah dan pipeline yang biasa, struktur yang dapat mendukung beberapa ALU untuk lebih efisien dalam pengiriman dari bagian beberapa instruksi. Daftar nilai arus yang berputar di sekitar pipa, dibuat oleh dependensi data lokal. Selama operasi normal, kontrol sirkuit tidak berada pada jalur yang kritis dan kinerja hanya dibatasi oleh data harga. Operasi mengalir dengan interval waktu sendiri. Ide utama dari Pipeline Prosesor yang berputar adalah circular uni-arah mengalir dari memori register oleh pusat waktu logika dan proses secara parallel dari operasi ALU.
Struktur lain yang menggunakan penyelesaian deteksi atau selain penundaan yang tepat dari pengaturan waktu pusat tetapi karena masalah waktu yang Syncronization, Pipelines memaksakan sebuah penurunan kinerja. Misalnya counterflow pipeline prosesor yang dirancang sekitar dua arah, pipa membawa petunjuk dan argumen dalam satu arah dan hasil yang lainnya b ini dapat menyebabkan Syncronization masalah antara prosesor.
Pipeline yang berputar menghindari masalah yang hanya melewati data dalam satu arah. Pada prinsipnya, prosesor dari register terus beredar di sekitar cincin yang berhubungan dengan berbagai fungsi ALU, akses memori dan sebagainya .ada tiap tahap, nilai-nilai yang memeriksa dan disampaikan, kemungkinan setelah perubahan, tidak signifikan dengan pengeluaran tambahan untuk sinkronisasi. Dispatched adalah instruksi dari pusat ke fungsi unit yang memungkinkan beberapa masalah instruksi .

Tahapan pipeline :
1. Mengambil instruksi dan membuffferkannya
2. Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut.
3. Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya .

Instuksi pipeline:
Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :
Instruksi 1: ADD  AX, AX
Instruksi 2: ADD EX, CX

Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID). Pada menerjemahkan instruksi  1 tersebut, komponen IF tidak bekerja. Adanya teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan instruksi 1 (EX), instruksi 2 diterjemahkan (ID).

 Keuntungan pipelining:
1. Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi dalam kebanyakan kasus(lebih cepat selesai).
2. Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit. Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat sirkuit & combinational yang lebih kompleks.
3. Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.

Kerugian pipeline:
1. Pipelined prosesor menjalankan beberapa instruksi pada satu waktu. Jika ada beberapa cabang yang mengalami penundaan cabang (penundaan memproses data) dan akibatnya proses yang dilakukan cenderung lebih lama.
2. Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined setara. Hal ini disebabkan oleh fakta bahwa intruksi ekstra harus ditambahkan ke jalur data dari prosesor pipeline.
3. Kinerja prosesor di pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
4. Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar.
5. Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
6. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.


Arsitektur Family Komputer IBM PC

IBM PC adalah sebutan untuk keluarga komputer pribadi buatan IBM. IBM PC diperkenalkan pada 12 Agustus 1981, dan "dipensiunkan" pada tanggal 2 April 1987. Sejak diluncurkan oleh IBM, IBM PC memiliki beberapa keluarga, yakni:
·    IBM 4860 PCjr
·    IBM 5140 Convertible Personal Computer (laptop)
·    IBM 5150 Personal Computer (PC yang asli)
·    IBM 5155 Portable PC (sebenarnya merupakan PC XT yang portabel)
·    IBM 5160 Personal Computer/eXtended Technology
·    IBM 5162 Personal Computer/eXtended Technology Model 286
·    IBM 5170 Personal Computer/Advanced Technology

Komputer dari IBM

Konfigurasi Mikrokomputer Dasar
Chipset adalah set dari chip yang mendukung kompatibel yang mengimplementasikan berbagai fungsi tertentu seperti pengontrol interupt, pengontrol bus dan timer. Chip khusus yang di sebut koprosesor yang beroperasi bersama dengan CPU guna meningkatkan fungsionalitasnya.

Komponen IBM PC
·    Sistem Kontrol BUS: Pengontrol BUS, Buffer Data, dan Latches Alamat
·    Sistem Kontrol Interrupt: Pengontrol Interrupt
·    Sistem Kontrol RAM dan ROM: Chip RAM dan ROM, Decoder Alamat, dan Buffer
·    Sistem Kontrol DMA: Pengontrol DMA
·    Timer: Timer Interval Programmable
·    Sistem Kontrol I/O: Interface Paralel Programmable

Unit Input/Output

SISTEM BUS
Sistem bus dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur –jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus. 

Sistem pada Bus

JENIS-JENIS SISTEM BUS
a. Data bus (Saluran Data)
Saluran data memberikan lintasan bagi perpindahan data antara dua modul sistem. Saluran ini secara kolektif disebut bus data. Umunya bus data terdiri dari 8, 16, 32 saluran.

b. Address Bus (Saluran Alamat) 
1. Saluran alamat digunakan untuk menandakan sumber atau tujuan data pada bus data. Misalnya, bila CPU akan membaca sebuah word dat adari memroi, maka CPU akan menaruh alamt word yang dimaksud pada saluran alamat.
2. Digunakan untuk mengirinkan alamat word pada memori yang akan diakses CPU.
3. Digunakan untuk saluran alamat perangkat modul komputer saat CPU mengakses suatu modul.
4. Semua peralatan yang terhubung dengan sistem komputer, agar dapat diakses harus memiliki alamat.

c. Control Bus (Saluran Control)
Saluran kontrol digunakan untuk mengontrol akses ke saluran alamat dan penggunaan data. Karena data dan saluran alamat dipakai bersama oleh seluruh komponen, maka harus ada alat unruk mengontrol penggunaanya. Berikut ini adalah fungsi-fungsi yang terdapat pada control bus (saluran control):
1. Digunkan untuk menspesifikasi sumber dan tujuan data pada bus data.
2. Digunakan untuk mengirim alamat word pada memori yang akan diakses CPU.
3. Digunakan untuk saluran almat perangkat modul komputer saat CPU mengakses suatu modul.
4. Semua peralatan yang terhubung dengan sistem komputer, agak dapat diakses harus memiliki alamat. Contoh : mengakses port I/O, maka port I/O harus memiliki alamat hardware-nya.

I/O Interface
I/O interface adalah peralatan yang dimana informasi dapat masuk dan keluar dari perangkat seperti komputer. Dalam istilah komputasi, input output adalah komunikasi antara system pengolahan informasi dan dunia luar. Input adalah sinyal atau data yang diterima oleh system dan output adalah sinyal atau data yang dikirim dari itu. Contoh alat input yaitu keyboard, mouse, scanner, joystick, dan lain-lain. Dan contoh dari alat output adalah monitor, printer, proyektor, dan speaker.

Spesifikasi-spesifikasi interface harus memiliki :
1. Mekanik, yaitu bentuk fisik dari port, jumlah pin dan lain-lain.
2. Tegangan Listrik, yaitu karateristik dari tegangan listrik yang diperlukan untuk pengenal data.
3. Fungsi, yaitu signal-signal yang diguna atau fungsi pin-pin yang ada. Fungsi-fungsi tersebut dapat dibagi menjadi 4 bagian, yaitu :
·    Data
·    Pengontrol
·    Penguat
·    Penetral (ground).
4. Prosedur, yaitu prosedur atau langkah-langkah penggunaan signal untuk komunikasi data yang berlaku.

Port input-output pada Komputer

Metode Pengaksesan I/O
Pengaksesan I/O terdiri dari dua cara yaitu :
1. Memory mapped I/O
Dimana piranti I/O dihubungkan sebagai lokasi memory virtual dimana port I/O tergantung pada memori utama. Karakteristik memory mapped I/O antara lain :
• Port I/O dihubungkan ke bus alamat
• Piranti input sebagai bagian memory yang memberikan data ke bus data. Piranti output ssebagai bagian memori yang memiliki data tersimpan di dalamnya.

2. I/O mapped I/O
Piranti I/O dihubungkan sebagai lokasi terpisah dengan lokasi memori, dimana port I/O tidak tergantung pada memori utama. Karakteristik I/O mapped I/O adalah:
• Port I/O tidak tergantung memori utama
• Transfer informasi dilakukan di bawah kendali sinyal control yang menggunakan instruksi INPUT dan OUTPUT
• Operasi I/O tergantung sinyal kendali dari CPU
• Intruksi I/O mengaktifkan baris kendali read/write pada port I/O, sedangkan instruksi memori akan mengaktifkan baris kendali read/write pada memori
• Ruang memory dan ruang alamat I/O menyatu, sehingga dapat memiliki alamat yang sama.

Selasa, 01 November 2016

CPU (Central Processing Unit)

SISTEM BUS
Sistem bus dalam arsitektur komputer merujuk pada bus yang digunakan oleh sistem komputer untuk menghubungkan semua komponennya dalam menjalankan tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir dalam komputer. Jalur –jalur ini digunakan untuk komunikasi dan dapat dibuat antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus. 

Gambar Sistem Bus

BUS
Pengertian bus adalah bagian dari sistem komputer yang berfungsi untuk memindahkan data antar bagian- bagian dalam sistem komputer. Data dipindahkan dari piranti masukan ke CPU, CPU ke memori, atau dari memori ke piranti keluaran. Bus meruppakan jalur komunikasi yang dibagi pemakai suatu set kabel tunggal yang digunakan untuk menghubungkan berbagai subsistem. Sistem bus adalah sebuah bus yang menghubungkan komponen-komponen utama komputer (CPU, Memori, I/O). Sistem bus adalah penghubung bagi keseluruhan komponen komputer dalam menjalankan tugasnya.
Bus pada CPU dapat dibedakan atas :
1. Data Bus ( Saluran Data )
2. Address Bus ( Saluran Alamat )
3. Control Bus ( Saluran Kendali )

JENIS-JENIS SISTEM BUS
a. Data bus (Saluran Data)
Saluran data memberikan lintasan bagi perpindahan data antara dua modul sistem. Saluran ini secara kolektif disebut bus data. Umunya bus data terdiri dari 8, 16, 32 saluran.

b. Address Bus (Saluran Alamat) 
1. Saluran alamat digunakan untuk menandakan sumber atau tujuan data pada bus data. Misalnya , bila CPU akan membaca sebuah word dat adari memroi, maka CPU akan menaruh alamt word yang dimaksud pada saluran alamat.
2. Digunakan untuk mengirinkan alamat word pada memori yang akan diakses CPU.
3. Digunakan untuk saluran alamat perangkat modul komputer saat CPU mengakses suatu modul.
4. Semua peralatan yang terhubung dengan sistem komputer, agar dapat diakses harus memiliki alamat.

c. Control Bus (Saluran Control)
Saluran kontrol digunakan untuk mengontrol akses ke saluran alamat dan penggunaan data. Karena data dan saluran alamat dipakai bersama oleh seluruh komponen, maka harus ada alat unruk mengontrol penggunaanya. Berikut ini adalah fungsi-fungsi yang terdapat pada control bus (saluran control):
1. Digunkan untuk menspesifikasi sumber dan tujuan data pada bus data.
2. Digunakan untuk mengirim alamat word pada memori yang akan diakses CPU.
3. Digunakan untuk saluran almat perangkat modul komputer saat CPU mengakses suatu modul.
4. Semua peralatan yang terhubung dengan sistem komputer, agak dapat diakses harus memiliki alamat. Contoh : mengakses port I/O, maka port I/O harus memiliki alamat hardware-nya.

ARITHMATICAL LOGICAL UNIT (ALU)
Arithmatic Logical Unit (ALU), adalah salah satu bagian/komponen dalam sistem di dalam sistem komputer yang berfungsi melakukan operasi/perhitungan aritmatika dan logika (Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. ALU bekerja besama-sama memori, di mana hasil dari perhitungan di dalam ALU di simpan ke dalam memori.


Perhitungan dalam ALU menggunakan kode biner, yang merepresentasikan instruksi yang akan dieksekusi (opcode) dan data yang diolah (operand). ALU biasanya menggunakan sistem bilangan biner two’s complement. ALU mendapat data dari register. Kemudian data tersebut diproses dan hasilnya akan disimpan dalam register tersendiri yaitu ALU output register, sebelum disimpan dalam memori.

Pada saat sekarang ini sebuah chip/IC dapat mempunyai beberapa ALU sekaligus yang memungkinkan untuk melakukan kalkulasi secara paralel. Salah satu chip ALU yang sederhana (terdiri dari 1 buah ALU) adalah IC 74LS382/HC382ALU (TTL). IC ini terdiri dari 20 kaki dan beroperasi dengan 4×2 pin data input (pinA dan pinB) dengan 4 pin keluaran (pinF).

Arithmatic Logical Unit (ALU), fungsi unit ini adalah untuk melakukan suatu proses data yang berbentuk angka dan logika, seperti data matematika dan statistika. ALU terdiri dari register-register untuk menyimpan informasi. Tugas utama dari ALU adalah melakukan perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. Rangkaian pada ALU (Arithmetic and Logic Unit) yang digunakan untuk menjumlahkan bilangan dinamakan dengan Adder. Adder digunakan untuk memproses operasi aritmetika, Adder juga disebut rangkaian kombinasional aritmatika.
Ada 3 jenis adder:
1) Rangkaian Adder dengan menjumlahkan dua bit disebut Half Adder.
2) Rangkaian Adder dengan menjumlahkan tiga bit disebut Full Adder.
3) Rangkain Adder dengan menjumlahkan banyak bit disebut Paralel Adder


CU (Control Unit)
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. 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 di antaranya adalah register, ALU, register instruksi, bus dan peralatan input/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 :
1. 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.

2. 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.

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. Setiap register dapat menyimpan satu bilangan hingga mencapai jumlah maksimum tertentu tergantung pada ukurannya. Register-register dapat dibaca dan ditulis dengan kecepatan tinggi karena berada pada CPU.

FUNGSI REGISTER
User Visibel Register :
Register CPU yang dapat digunakan oleh pemrogram, dengan menggunakan set intsruksi memungkinkan satu buah register atau lebih untuk dispesifikasian sebagai operand atau alamat operand.
Register CPU yang dapat digunakan oleh pemrogram, dengan menggunakan set intsruksi memungkinkan satu buah register atau lebih untuk dispesifikasian sebagai operand atau alamat operand.

a. General Purpose Register
- Digunakan untuk mode pengalamatan dan data. 
- Akumulator ( aritmatika, Shift, Rotate)  
- Base Register (Rotate,Shift, aritmatika)
- Counter Register ( Looping) 
- Data Register (menyimpan alamat I/O device)

b. Register Alamat
- Digunakan untuk mode pengalamatan
- Segment Register (Code Segment, Data Segment, Stack Segment, Extra Segment)
- Register Index (Stack Index, Data Index)
- Stack Pointer

c. Register Data
Digunakan untuk menampung data

d. Register Kode Status Kondisi (Flag)
Kode yang menggambarkan hasil operasi sebelumnya


Control dan Status Register:
Register ini digunakan oleh unit control untuk mengontrol operasi cpu dan oleh program system operasi untuk mengontrol eksekusi program.

Control Register


a. Program Counter (PC)
Berisi alamat instruksi yang akan diambil
b. Instruction Register (IR)
Berisi alamat instruksi terakhir
c. Memory Address Register (MAR)
Berisi alamat penyimpanan dalam memori
d. Memori Buffer Register (MBR)
Berisi data yang dibaca dari memori