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

Arsitektur Set Instruksi

Set Instruksi (bahasa Inggris: Instruction Set, atau Instruction Set Architecture (ISA)) didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).

ISA merupakan sebuah spesifikasi dari Pullman semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.

ELEMEN - ELEMEN DARI SET INSTRUKSI
a. Operation Code (opcode) : menentukan operasi yang akan dilaksanakan.
b. Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan.
c. Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan.
d. Next Instruction Reference : memberitahu CPU untuk mengambil instruksi berikutnya setelah instruksi yang dijalankan selesai.

FORMAT INSTRUKSI
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi.

Ilustrasi Format Instruksi Sederhana(Stallings, W. 1990, hal. 294)

JENIS - JENIS INSTRUKSI
1. Data Processing / Pengolahan Data : instruksi-instruksi aritmetika dan logika. Instruksi aritmetika memiliki kemampuan untuk mengolah data numerik, sedangkan instruksi logika beroperasi pada bit-bit word sebagai bit bukan sebagai bilangan. Operasi-operasi tersebut dilakukan terutama untuk data di register CPU.

2. Data Storage / Penyimpanan Data : instruksi-instruksi memori. Instruksi-instruksi memori diperlukan untuk memindah data yang terdapat di memori dan register.

3. Data Movement / Perpindahan Data : instruksi I/O. Instruksi-instruksi I/O diperlukan untuk memindahkan program dan data ke dalam memori dan mengembalikan hasil komputansi kepada pengguna.

4. Control / Kontrol : instruksi pemeriksaan dan percabangan. Instruksi-instruksi kontrol digunakan untuk memeriksa nilai data, status komputansi dan mencabangkan ke set instruksi lain.

TEKNIK PENGALAMATAN
Metode pengalamatan merupakan aspek dari set instruksi arsitektur disebagian unit pengolah pusat (CPU) desain yang didefinisikan dalam set instruksi arsitektur dan menentukan bagaimana bahasa mesin petunjuk dalam arsitektur untuk mengidentifikasi operan dari setiap instruksi. Sebuah mode pengalamatan menentukan bagaimana menghitung alamat memori yang efektif dari operand dengan menggunakan informasi yang diadakan di register dan / atau konstanta yang terkandung dalam instruksi mesin atau di tempat lain.

Jenis-jenis metode pengalamatan diantaranya :
1. Immediate Addressing Mode

2. Register Addressing Mode

3. Direct Addressing Mode

4. Indirect Addressing Mode

R0 atau R1 digunakan untuk menunjukkan Destination Address
MOV A,#30h   ; salin immediate data 30h ke Akumulator
MOV R0,#7Fh   ; salin immediate data 7Fh ke register R0
MOV @R0,A   ; salin the data in A ke alamat di R0

R0 atau R1 digunakan untuk menunjukkan Source Address
MOV R0,#7Fh   ; salin immediate data 7Fh ke register R0
MOV @R0,#30h  ; salin immediate data 30 ke alamat di R0
MOV A,@R0   ; salin isi dari alamat di R0 ke Akumulator

DESAIN SET INSTRUKSI
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya :
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi instruksi)
3. Kompatibilitas :
Source code compatibility
Object code compatibility

Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut :
a. Operation Repertoire, berapa banyak dan operasi apa saja yang disediakan dan berapa sulit operasinya.
b. Data Types, tipe / jenis data yang dapat diolah.
c. Instruction Format, panjangnya, banyaknya alamat, dsb.
d. Register, banyaknya register yang dapat digunakan.
e. Addressing, mode pengalamatan untuk operand.

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

Sumber