Rabu, 12 November 2014

CPU ( CU, ALU DAN BUS )

Central Processing Unit (CPU) merupakan komponen terpenting di dalam suatu sistem komputer. CPU adalah komponen pengolah data berdasarkan instruksi – instruksi yang diberikan kepadanya. CPU terdiri dari dua bagian utama yaitu unit kendali (control unit) dan unit aritmatika dan logika (ALU). 
Untuk dapat menjalankan fungsinya dengan baik, maka CPU tersusun oleh komponen – komponen. Komponen – komponen tersebut antara lain Control Unit (CU), Arithmetic and Logic Unit (ALU), Registers dan CPU Interconnections. CU dan ALU merupakan fungsi operasionalnya, yaitu CU sebagai pengontrol kerja komputer dan ALU sebagai pusat pengolah data. Sedangkan jalur penghubung antar alat dalam komputer disebut BUS.

Didalam kesempatan ini, saya akan menuliskan sedikit tentang CU, ALU dan BUS. Selamat membaca....

1.     Control Unit (CU)
Control Unit (CU) merupakan 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.
CPU mempunyai beberapa tugas, yaitu sebagai berikut :
·         Mengatur dan mengendalikan alat-alat input dan 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.
CU ada 2 macam, yaitu Single-Cycle CU dan Multi-Cycle CU. Berikut penjelasan dari keduanya :
            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.

2.     Arithmetic Logic Unit (ALU)
Arithmatic and Logic Unit (ALU), adalah salah satu bagian/komponen dalam sistem di dalam sistem komputer berfungsi melakukan operasi/perhitungan aritmatika dan logika (seperti penjumlahan, pengurangan dan beberapa logika lain), AlU bekerja besama-sama memori. Dimana 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).

3.     Sistem BUS
BUS merupakan lintasan komunikasi yang menghubungkan dua atau lebih komponen komputer. Sifat penting yang sekaligus sebagai syarat utama BUS adalah sebagai media transmisi yang dapat digunakan oleh sejumlah perangkat yang terbungkus padanya. Karena digunakan bersama, diperlukan aturan main agar tidak terjadi tabrakan data atau kerusakan data yang ditransmisikan. Walaupun digunakan bersama, namun dalam satu waktu hanya ada sebuah perangkat yang dapat menggunkan BUS.
BUS mempunyai beberapa saluran, tetapi secara umum, fungsi BUS dikategorikan menjadi 3 bagian, yaitu saluran data, saluran alamat dan saluran kontrol. Saluran data (data bus) merupakan lintasan bagi perpindahan data antar modul. Umunya jumlah saluran terkait dengan panjang word, misalnya 8,16,32 saluran dengan tujuan agar mentransfer word dalam sekalu waktu. Jumlah saluran dikatakan lebar bus dengan lebar bus dengan satuan bit.
Saluran alamat (address bus) digunakan untuk menspesifikasi sumber dan tujuan data pada bus data. Saluran ini digunakan untuk mengirim alamat word pada memori yang akan diakses CPU. Dan juga digunakan untuk saluran alamt perangkat modul komputer saat CPU mengakses suatu modul. Agar semua peralatan yang terhubung dengan sistem komputer dapat diakses harus memiliki alamat, misal mengakses port I/O maka port I/O harus memiliki alamat hardwarenya.
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. Saluran kontrol meliputi :
   Ø  MemoryWrite              : memerintahkan data pada bus akan dituliskan kedalam lokasi alamat
   Ø  MemoryRead               : memerintahkan data dari lokasi alamat ditempatkab pada bus data
   Ø  I/OWrite                       : memerintahkan data pada bus dikirim ke lokasi port I/O
   Ø  I/ORead                        : meemrintahkan data dari port I/O ditempatkan pada bus data
   Ø  Transfer ACK              : menunjukkan data telah diterima dari bus atau data telah ditempatkan                                                    pada bus
   Ø  BusRequest                  : menunjukkan modul yang melakukan request telah diberi hak                                                                 mengontrol bus
   Ø  InterruptRequest          : menandakan adanya penangguhan interupsi dari modul.
   Ø  Interrupt ACK              : menunjukkan penangguhan interupsi telah diketahui CPU
   Ø  Clock                           : kontrol untuk sinkronisasi operasi antar modul
   Ø  Reset                            : digunakan untuk menginisialisasi seluruh modul.

Sumber :
http://www.scribd.com/ …/Bab-7-Sistem-Bus-Organisasi-Komputer

Arsitektur Set Instruksi

SET INSTRUKSI
Set instruksi (instruction set) adalah sekumpulan lengkap instruksi yang dapat di mengerti oleh sebuah CPU, set instruksi sering juga disebut sebagai bahasa mesin (machine code), karna aslinya juga berbentuk biner kemudian dimengerti sebagai bahasa assembly, untuk konsumsi manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti oleh manusia.
Sebuah instruksi terdiri dari sebuah opcode, biasanya bersama dengan beberapa informasi tambahan seperti darimana asal operand-operand dan kemana hasil-hasil akan ditempatkan. Subyek umum untuk menspesifikasikan di mana operand-operand berada (yaitu, alamat-alamatnya) disebut pengalamatan
Pada beberapa mesin, semua instruksi memiliki panjang yang sama, pada mesin-mesin yang lain mungkin terdapat banyak panjang berbeda. Instruksi-instruksi mungkin lebih pendek dari, memiliki panjang yang sama seperti, atau lebih panjang dari panjang word. Membuat semua instruksi memiliki panjang yang sama lebih muda dilakukan dan membuat pengkodean lebih mudah tetapi sering memboroskan ruang, karena semua instruksi dengan demikian harus sama panjang seperti instruksi yang paling panjang.

Di dalam sebuah instruksi terdapat beberapa elemen-elemen instruksi:
1.      Operation code (op code)
2.      Source operand reference
3.      Result operand reference
4.      Xext instruction preference

Format Instruksi (Biner) :
Misal instruksi dengan 2 alamat operand : ADD A,B A dan B adalah suatu alamat register.
Beberapa simbolik instruksi:
ADD               : Add (jumlahkan)
SUB                : Subtract (Kurangkan)
MPY/MUL     : Multiply (Kalikan)
DIV                 : Divide (Bagi)
LOAD             : Load data dari register/memory
STOR              : Simpan data ke register/memory
MOVE             : pindahkan data dari satu tempat ke tempat lain
SHR                : shift kanan data
SHL                : shift kiri data .dan lain-lain

Cakupan Jenis Instruksi :
Data processing               : Aritmetik (ADD, SUB, dsb); Logic (AND, OR, NOT,    SHR, dsb);       konversi  data
Data storage (memory)   : Transfer data (STOR, LOAD, MOVE, dsb)
Data movement                : Input dan Output ke modul I/O
Program flow control    : JUMP, HALT, dsb.

Bentuk Instruksi:

v  Format Instruksi 3 Alamat
Mempunyai bentuk umum seperti : [OPCODE][AH],[AO1],[AO2]. Terdiri dari satu alamt hasil, dan dua alamat operand, misal SUB Y,A,B Yang mempunyai arti dalam bentuk algoritmik : Y := A – B dan arti dalam bentuk penjelasan : kurangkan isi reg a dengan isi reg B, kemudian simpan hasilnya di reg Y. bentuk bentuk pada format ini tidak umum digunakan di dalam computer, tetapi tidak dimungkinkan ada pengunaanya, dalam peongoprasianya banyak register sekaligus dan program lebih pendek.

Contoh:
A, B, C, D, E, T, Y adalah register
Program           : Y = (A – B) / ( C + D × E)
SUB Y, A, B              Y := A – B
MPY T, D, E               T := D × E
ADD T, T, C               T := T + C
DIV Y, Y, T               Y:= Y / T
Memerlukan 4 operasi

v  Format Instruksi 2 Alamat
Mempunyai bentuk umum : [OPCODE][AH],[AO]. Terdiri dari satu alamat hasil merangkap operand, satu alamat operand, missal : SUB Y,B yang mempunyai arti dalam algoritmik : Y:= Y – B dan arti dalam bentuk penjelasan : kurangkan isi reg Y dengan isi reg B, kemudian simpan hasillnya di reg Y. bentuk bentuk format ini masih digunakan di computer sekarang, untuk mengoprasikan lebih sedikit register, tapi panjang program tidak bertambah terlalu banyak.

Contoh :
A, B, C, D, E, T, Y adalah register
Program: Y = (A – B) / ( C + D × E)
MOVE Y, A               Y := A
SUB Y, B                   Y := Y – B
MOVE T, D                T := D
MPY T, E                    T := T × E
ADD T, C                   T := T + C
DIV Y, T                    Y:= Y / T
Memerlukan 6 operasi

v  Format Instruksi 1 Alamat
Mempunyai bentuk umum : [OPCODE][AO]. Terdiri dari satu alamat operand, hasil disimpan di accumulator, missal : SUB B yang mempunyai arti dalam algoritmik : AC:= AC – B dan arti dalam bentuk penjelasan : kurangkan isi Acc dengan isi reg B, kemudian simpan hasillnya di reg Acc. bentuk bentuk format ini masih digunakan di computer jaman dahulu, untuk mengoprasikan di perlukan satu  register, tapi panjang program semakin bertambah.

Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
LOAD D                     AC := D
MPY E                        AC := AC × E
ADD C                       AC := AC + C
STOR Y                      Y := AC
LOAD A                     AC := A
SUB B                        AC := AC – B
DIV Y                                     AC := AC / Y
STOR Y                      Y := AC
Memerlukan 8 operasi

v  Format Instruksi 0 Alamat
Mempunyai bentuk umum : [OPCODE]. Terdiri dari semua alamat operand implicit, disimpan dalam bentuk stack. Operasi yang biasanya membutuhkan 2 operand, akan mengambil isi stack paling atas dan dibawahnya missal : SUB yang mempunyai arti dalam algoritmik : S[top]:=S[top-1]-S[top] dan arti dalam bentuk penjelasan : kurangkan isi stack no2 dari atas dengan isi stack paling atas, kemudian simpan hasilnya di stack paling atas, untuk mengoprasikan ada beberapa instruksi khusus stack PUSH dan POP.

Contoh :
A, B, C, D, E, Y adalah register
Program: Y = (A – B) / ( C + D × E)
PUSH A                      S[top] := A
PUSH B                      S[top] := B
SUB                            S[top] := A – B
PUSH C                      S[top] := C
PUSH D                      S[top] := D
PUSH E                      S[top] := E
MPY                           S[top] := D × E
ADD                           S[top] := C + S[top]
DIV                             S[top] := (A – B) /S[top]
POP Y                         Out := S[top]
Memerlukan 10 operasi

Set instruksi pada CISC :
Berikut ini merupakan karakteristik set instruksi yang digunakan pada beberapa computer yang memiliki arsitektur CISC

Perbandingan Set Instruksi
Beberapa computer CISC (Complex Instruction Set Computer) menggunakan cara implist dalam menentukan mode addressing pada setiap set instruksinya. Penentuan mode addressing dengan cara implicit memiliki arti bahwa pada set instruksi tidak di ada bagian yang menyatakan tipe dari mode addressing yang digunakan, deklarasi dari mode addressing itu berada menyatu dengan opcode. Lain hal nya dengan cara imsplisit, cara eksplisit sengaja menyediakan tempat pada set instruksi untuk mendeklarasikan tipe mode addressing. Pada cara eksplisit deklarasi opcode dan mode addressing berada terpisah.
Data pada tempat deklarasi mode addressing diperoleh dari logaritma basis dua jumlah mode addressing. Jika deklarasi mode addressing dilakukan secara implicit akan menghemat tempat dalam set instruksi paling tidak satu bit untuk IBM 3090 dan 6 bit untuk MC68040. Perubahan satu bit pada set instruksi akan memberikan jangkauan alamat memori lebih luas mengingat range memori dinyatakan oleh bilangan berpangkat dua.

ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)
·         Operation Code (opcode) : menentukan operasi yang akan dilaksanakan
·         Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan
·         Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan
·         Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai. Source dan result operands dapat berupa salah satu diantara tiga jenis berikut ini:

1.      Main or Virtual Memory
2.      CPU Register
3.      I/O Device

DESAIN SET INSTRUKSI
Desain set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya adalah:
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:
1.     Operation Repertoire                 :  Berapa banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya
2.    Data Types                           : Tipe/jenis data yang dapat olah Instruction Format: panjangnya, banyaknya alamat, dsb.
3.   Register                         : Banyaknya register yang dapat digunakan 4.Addressing: Mode pengalamatan untuk operand

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

OPCODE OPERAND REFERENCE OPERAND REFERENCE JENIS-JENIS OPERAND
·         Addresses (akan dibahas pada addressing modes)
·         Numbers : – Integer or fixed point – Floating point – Decimal (BCD)
·         Characters : – ASCII – EBCDIC
·         Logical Data : Bila data berbentuk binary: 0 dan 1

JENIS INSTRUKSI
·         Data processing: Arithmetic dan Logic Instructions
·         Data storage: Memory instructions
·         Data Movement: I/O instructions
·         Control: Test and branch instructions

TRANSFER DATA
·         Menetapkan lokasi operand sumber dan operand tujuan.
·         Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
·         Menetapkan panjang data yang dipindahkan.
·         Menetapkan mode pengalamatan.
·         Tindakan CPU untuk melakukan transfer data adalah :

A.     Memindahkan data dari satu lokasi ke lokasi lain.
B.     Apabila memori dilibatkan :
1.      Menetapkan alamat memori.
2.      Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
3.      Mengawali pembacaan / penulisan memori

Operasi set instruksi untuk transfer data :
* MOVE : memindahkan word atau blok dari sumber ke tujuan
* STORE : memindahkan word dari prosesor ke memori.
* LOAD : memindahkan word dari memori ke prosesor.
* EXCHANGE : menukar isi sumber ke tujuan.
* CLEAR / RESET : memindahkan word 0 ke tujuan.
* SET : memindahkan word 1 ke tujuan.
* PUSH : memindahkan word dari sumber ke bagian paling atas stack.
* POP : memindahkan word dari bagian paling atas sumber

ARITHMETIC
Tindakan CPU untuk melakukan operasi arithmetic :
1.      Transfer data sebelum atau sesudah.
2.      Melakukan fungsi dalam ALU.
3.      Menset kode-kode kondisi dan flag.

Operasi set instruksi untuk arithmetic :
1. ADD : penjumlahan
2. SUBTRACT : pengurangan
3. MULTIPLY : perkalian
4. DIVIDE : pembagian
5. ABSOLUTE
6. NEGATIVE
7. DECREMENT
8. INCREMENT
Nomor 5 sampai 8 merupakan instruksi operand tunggal. LOGICAL

Tindakan CPU sama dengan arithmetic :
Operasi set instruksi untuk operasi logical :
1. AND, OR, NOT, EXOR
2. COMPARE : melakukan perbandingan logika.
3. TEST : menguji kondisi tertentu.
4. SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit.
5. ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.

CONVERSI
Tindakan CPU sama dengan arithmetic dan logical.
·         Instruksi yang mengubah format instruksi yang beroperasi terhadap format data.
·         Misalnya pengubahan bilangan desimal menjadi bilangan biner.
·         Operasi set instruksi untuk conversi :

1.      TRANSLATE              : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan tabel korespodensi.
2.      CONVERT                  : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.

INPUT / OUPUT
Tindakan CPU untuk melakukan INPUT /OUTPUT :
1. Apabila memory mapped I/O maka menentukan alamat memory mapped.
2. Mengawali perintah ke modul I/O

Operasi set instruksi Input / Ouput :
1. INPUT         : memindahkan data dari pernagkat I/O tertentu ke tujuan
2. OUTPUT     : memindahkan data dari sumber tertentu ke perangkat I/O
3. START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
4. TEST I/O     : memindahkan informasi dari sistem I/O ke tujuan TRANSFER CONTROL

Tindakan CPU untuk transfer control : Mengupdate program counter untuk subrutin , call / return.
Operasi set instruksi untuk transfer control :
1. JUMP (cabang)                    : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
2. JUMP BERSYARAT                       : menguji persyaratan tertentu dan memuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
3. JUMP SUBRUTIN               : melompat ke alamat tertentu.
4. RETURN                             : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
5. EXECUTE                           : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi
6. SKIP                                    : menambah PC sehingga melompati instruksi berikutnya.
7. SKIP BERSYARAT                         : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
8. HALT                                  : menghentikan eksekusi program.
9. WAIT (HOLD)                    : melanjutkan eksekusi pada saat persyaratan dipenuhi
10. NO OPERATION              : tidak ada operasi yang dilakukan.

CONTROL SYSTEM
Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem operasi. * Contoh : membaca atau mengubah register kontrol.

JUMLAH ALAMAT (NUMBER OF ADDRESSES)
Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya.

Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi :
1. Empat Alamat ( dua operand, satu hasil, satu untuk alamat instruksi berikutnya)
2. Tiga Alamat (dua operand, satu hasil)
3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand)
4. Satu Alamat (menggunakan accumulator untuk menyimpan operand dan hasilnya)

Macam-macam instruksi menurut jumlah operasi yang dispesifikasikan :
1. O – Address Instruction
2. 1 – Addreess Instruction.
3. N – Address Instruction
4. M + N – Address Instruction

Macam-macam instruksi menurut sifat akses terhadap memori atau register
1. Memori To Register Instruction
2. Memori To Memori Instruction
3. Register To Register Instruction
ADDRESSING MODES
Jenis-jenis addressing modes (Teknik Pengalamatan) yang paling umum :
ü  Immediate
ü  Direct
ü  Indirect
ü  Register
ü  Register Indirect
ü  Displacement
ü  Stack

Sumber :