Sabtu, 29 November 2014

Kuliah Organisasi Sistem Komputer : Central Processing Unit (CPU)



Sebuah komputer moderen/digital dengan program yang tersimpan di dalamnya merupakan sebuah systeyang memanipulasi dan memproses informasi menurut kumpulan instruksi yang diberikan. Sistem tersebut dirancang dari modul-modul hardware seperti :

1.   Register
2.   Elemen aritmatika dan logika
3.   Unit pengendali
4.   Unit memori
5.   Unit masukan/keluaran (I/O)
Komputer dapat dibagi menjadi 3 bagian utama, yaitu :

1.   Unit pengolahan pusa(CPU)
2.   Unit masukan/keluara (I/O)
3. Unit memori
Organisasi dasar dari sebuah komputer dapat ditunjukan pada blok diagaram pada gambar di bawah ini :
Konsep Bus

Bus adalah sekelompok kawat atau sebuah jalur fisik yang berfungsi menghubungkan register-register dengan unit-unit fungsional yang berhubungan dengan tiap-tiap modul. Informasi saling dipertukarkan di antara modul dengan melalui bus.


Di dalam diagram tersebut program disimpan dalam unit memori utama yang berhadapan dengan piranti I/O melalui CPU. CPU membaca dari atau menulis ke memori, dengan mengirimkan alamat word ke unit memori melalui bus address kemudian menerima atau mengirimkan data melalui bus data. Data dipertukarkan antara CPU dan Unit I/O juga dengan menggunakan bus data. Operasi disinkronisasikan oleh dua bus control dengan sinyal kendali yang dikirimkan oleh CPU dan sinyal acknowledgment serta sinyal interupsi yang diterima oleh CPU.
Di dalam CPU terdapat beberapa bagian diantaranya yaitu :

Unit kontrol

CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:
•Mengatur dan mengendalikan alat-alat input dan output.
•Mengambil instruksi-instruksi dari memori utama
•Mengambil data dari memori utama (jika diperlukan) untuk diproses.
•Mengirim  instruksi  ke  ALU  bila  ada  perhitungan  aritmatika  atau  perbandingan logika serta mengawasi kerja dari ALU.
•Menyimpan hasil proses ke memori utama.


ARITHMATIC LOGIC UNIT

unit   yang   bertuga untuk   melakuka operasi   aritmetika   da operasi logika berdasar  instruksi  yang  ditentukan.  ALU  sering  di  sebut  mesin bahasa  karena bagian  ini  ALU  terdiri  dari  dua bagian,  yaitu  unit
arithmetika  dan  unit  logika  boolean   yang  masing-masing  memiliki spesifikasi tugas  tersendiri.  Tugas  utama  dari  ALU  adalah  melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan

instruksi   program.   ALU   melakuka semua   operasi   aritmatika   dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.

Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan   instruksi   program.   Operasi   logika   meliputi   perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama
dengan  (=),  tidak  sama  dengan   ),  kurang  dari  (<),  kurang  atau  sama dengan
), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).

Fungsi Arithmetic Logic UniT
Melakukan suatu proses data yang berbentuk angka dan logika, seperti data matematika dan statistika
Melakukan  keputusadari  operasi  sesuai  dengan  instruksi  program  yaitu  operasi logika (logical operation).
Melakukan perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program
Membantu Control Unit saat melakukan perhitungan aritmatika (ADD, SUB) dan logika (AND, OR, XOR, SHL, SHR)

Gambar fungsi ALU dalam Stuktur Dasar Sistem Komputer

CONTROL LOGIC UNIT

Bagian dari komputer yang menggenerasi signal yang mengontrol operasi komputer. Tugas Control Unit adalah mengontrol sisklus Mesin Von Neumann :
1. Menjemput instruksi berikutnya yang akan dijalankan dari memori, menempatkannya dalam register instruksi (IR) dan  menambahkan (Increment) PC untuk  menunjukkan  atau  mengarahkan  ke  instruksi  beikutnya  yang  ada  dalam memori,

2. Mendekode dan menjalankan instruksi yang baru saja dijemput.

Unit kontrol menghasilkan signal kontrol yang mengatur komputer. Untuk komputer  yang  sangat  sederhana,unit  control  ini  bisa  mengirim  microorder,yakni signal individual yang dikirimkan melalui jalur kontrol dedicated,untuk mengontrol komponen dan peralatan individual.

Yang lebih umum dilakukan oleh unit control adalah menghasilkan set mikroorder secara serempak dari pada microorder individual.set mikrooder yang dihasilkan oleh unit kontrol pada sekali saat disebut microinstruction.

Operasi Mikro

Operasi Mikro untuk kendali logika ( Control Logic Unit yang tugasnya untuk mengatur seluruh aktifitas perangkat keras di dalam komputer dan juga untuk memindahkan data antar register.  Salah satu cara dalam melakukan operasi mikro tersebut dengan menggunakan bahasa transfer register / Register Transfer Language (RTL).RTL adalah sebuah bahasa yang digunakan untuk menjabarkan atau melaksanakan operasi mikro.

Untuk mengungkapkan bahasa RTL ini dapat digunakan notasi RTL yang merupakan aturan penulisan pemberian instruksi RTL. Contoh notasi tersebut antara lain :




Artinya isi register A1 dan A2 dijumlahkan dengan menggunakan sirkuit adder biner dan hasil jumlahnya ditransfer ke register A3.

Namum apabila dilakukan pengulangan penjumlahan akan menyebabkan overflow dan untuk menampung overflow tersebut digunakan register 1-bit yaitu V sebagai register overflow serta pelengkap A3.



CLU bertugas untuk :

1. Memberi suatu instruksi dari memori

2.  Memberi  kode  pada  instruksi  untuk  menentukan  operasi  mana  yang  akan dilaksanakan

3. Menentukan sumber dan tujuan data di dalam perpindahan data

4. Mengeksekusi operasi yang dilakukan

Setelah menginterpretasi kode biner suatu instruksi, CLU menghasilkan serangkaian perintah kendali, yang disebut sebagai instruksi mikro (microinstruction ) atau operasi mikro.

Instruksi  mikro  merupakan  operasi  primitif  tingkat  rendah  yang  bertindak secara langsung pada sirkuit logika suatu komputer dan mengatur fungsi-fungsi sebagai berikut :

1. Membuka/menutup suatu gerbang ( gate ) dari sebuah register ke sebuah bus

2. Mentransfer data sepanjang bus

3. Memberi inisial sinyal-sinyal kendali seperti READ, WRITE, SHIFT, CLEAR dan
SET

4. Mengirimkan sinyal-sinyal waktu

5. Menunggu sejumlah periode waktu tertentu

6. Menguji bit-bit tertentu dalam sebuah register




Perancangan CLU

Terdapat 2 pendekatan dalam perancangan CLU, yaitu :

1. Hardwired atau Random Logic

Sejumlah gerbang ( gate ), counter dan register saling dihubungkan untuk menghasilkan  sinyal-sinyal  kendaliSetiap  rancangan  memerlukan  sekelompok peranti logika dan hubungan yang berbeda-beda.

2. Microprogrammed Control

Dibentuk serangkaian instruksi mikro ( program mikro ) yang disimpan dalam sebuah memori kendali ( biasanya sebuah ROM ) dalam CLU. Waktu yang diperlukan dan sinyal  kendali yang dihasilkan didapat dengan menjalankan suatu program mikro

Microinstruction decoder menghasilkan dan mengeluarkan mikroorder yang di dasarkan    pada  mikrointruksi  dan  op  code  intruksi  yang  akan  di  jalankan  .yang terakhir  sequncer  menyinkronkan  aktivitas  dari  komponen  unit  kontrol.squencer adalah bagian inti (jantung) dari unit control.dia mempunyai dua mode operasi yang berbeda yaitu:

a.       Operasi biasa

Selama operasi biasa (ordinary operation ),squencer menghasilkan signal kontrol yang mengatur unit kontrol

b.      Start up mesin

Selama start up mesin ,unit kontrol memunculkan dan menandai berbagai macam register.




CPU Interconnections

adalah    sistem    koneksi    dan    bus    yang  menghubungkan    komponen    internal
CPU,yait ALU,   unit   kontrol   da register-register dan juga dengan bus-bus

eksternal  CPU  yanmenghubungkan    dengan    sistem    lainnya,  seperti    memori utama,  piranti  masukan/keluaran.

Register

Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi,  yang  digunakan  untuk  menyimpan  data  dan/atau  instruksi  yang  sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya, seperti "register 8-bit", "register 16-bit", "register 32-bit", atau "register 64-bit" dan lain-lain. Register ini dikategorikan menjadi dua, yaitu:

1.   register yang terlihat pemakai,
Register-register tipe ini terlihat oleh pemakai (pemrogram), pemrogram dapat memeriksa dan beberapa instruksi dapat digunakan untuk mengisi (memodifikasi) isi register     tipe     ini.     Register     tipe     ini     terdiri     dari     dua     jenis,     yaitu:
1. Data Register : Digunakan untuk menyimpan angka-angka dalam bilangan bulat
(integer)



2. Addres Register : Digunakan untuk menyimpan alamat-alamat memori dan juga untuk    mengakses memori.


2.   register untuk kendali status.
Beragam register tipe ini digunakan untuk mengendalikan operasi pemroses. Kebanyakan tidak terlihat oleh pemakai. Sebagiannya dapat diakses dengan instruksi mesin yang dieksekusi dalam mode kontrol atau kernel sistem operasi.

Register untuk kendali status antara lain:
- register untuk alamat dan buffer (address and buffer register)
- register untuk eksekusi intruksi (instruction execution register)
- register untuk informasi status (status information register)


SIC (SIMPLIFIED INSTRUCTIONAL COMPUTER)

Komputer yang didasarkan pada SIC ini merupakan komputer yang termasuk dalam perancangan arsitektur yang sangat sederhana dan komputer ini dipersembahkan oleh BECK (1985).

Struktur Mesin SIC terdiri dari :

1.   CPU
2.   Unit memori
3.   Minimal satu unit prinati I/O

Untuk CPU yang digunakan terdiri dari 13 register khusus, seperti yang ada pada table di bawah ini.

NO
REGISTER
UKURAN (bit)
NAMA
1
A
24
Accumulator
2
X
15
Register Index
3
L
15
Register Linkage
4
PC
15
Program Counter
5
IR
24
Instruction Register
6
MBR
24
Memori Buffer Register
7
MAR
15
Memori Address Register
8
SW
11
Status Word
9
C
2
Counter
10
INT
1
Interrupt Flag
11
F
1
Fetch Cycle Flag
12
E
1
Execute Cycle Flag
13
S
1
Start / Stop Flag

Format instruksi pada mesin SIC :


Keterangan :




OP = OPCODE 8 bit yang menerangkan operasi-mikro yang akan dijalankan

IX = flag indeks yang menunujukkan mode pengalamatan yang harus digunakan

AD = alamat untuk memori operand 15 bit

·    Pengalamatan langsung (direct addressing) yaitu operand disimpan di dalam M[AD]
·    Pengalamatan berindeks (index addressing) yaitu operand disimpan di dalam M[AD = (X)] dengan bit IX bernilai 1





Penggunaan register-register pada SIC

1.   Register A = register yang digunakan untuk proses perhitungan
2.   Register X = register yang digunakan untuk mode pengalamatan berindex
3.   Register PC = register  yang menyimpan alamat instruksi berikutnya
4.   Register L = register yang menyimpan alamat asal sebelum melakukan subroutines
5.   Register IR = register  yang menyimpan instruksi yang sedang dikerjakan
6.   Register MBR = register yang digunakan untuk proses masukan atau keluaran data dari memori
7.   Register MAR = register yang menyimpan alamat memori untuk proses pembacaan atau penulisan
8.   SW = register yang berisi informasi status relatif terhadap instruksi sebelumnya
9.   C = register yang membangkitkan signal waktu t0, t1, t2, t3
10. INT = register yang menentukan apakah signal interrupt telah diterima
11. F = register yang digunakan dalam prosessiklus fetch’
12. E = register khusus yang digunakan dalam proses “siklus eksekusi’
13. S = register yang akan mengaktifkan register C








Kumpulan Instruksi SIC


Ada 21 instruksi SIC yang digunakan, dimana pada instruksi ini m menunjukkan address memori dari operand dan (m) menunjukkan nilai yang disimpan pada address memori tersebut. Opcode instruksinya ditulis dalam notasi heksadesimal.

·    JSUB dan RSUB merupakan dua instruksi yang berhubungan dengan subrutin. JSUB menyimpan PC saat ini ke L dan kemudian melompat ke subrutin dengan menyimpan operand ke PC. RSUB kembali dari subrutin dengan melompat ke lokasi yang dinyatakan oleh L.
·    Instruksi TD digunakan untuk menguji piranti I/O sebelum berusaha untuk membaca dari atau menulis ke piranti tersebut.Hasil pengujian tersebut disimpan di dalam kode kondisi (condition code), field CC, pada SW. Panjang field ini 2 bit dan digunakan untuk mewakili salah satu dari tiga nilai <, =, >
Jika instruksi TD dijalankan, nilai field CC aka di-set menurut kode berikut :

< menunjukkan bahwa piranti telah siap
= menunjukan bahwa piranti sedang sibuk dan tidak dapat digunakan pada saat itu
> menunjukkan bahwa piranti tidak beroperasi


·   Instruksi COMP digunakan juga untuk men-set field CC. Nilai yang disimpan field CC setelah sebuah instruksi COMP setelah sebuah instruksi COMP menggambarkan hubungan antara A dan operand instruksi
·   Instruksi IRT digunakan oleh interrupt handler agar menyebabkan lompatan kembali ke tempat dimana CPU berada sebelum intrupsi terjadi.
Jika interupsi terjadi, CPU akan menyimpan PC saat ini ke dalam memori pada
address 0.

Untuk  kembali  dari  sebuah  interupsi  ,  isi  dari  alamat  memori  ini  harus  di-load kembali ke dalam PC.

· Instruksi-instruksi lainnya adalah operasi aritmatika dan logika, transfer dari pengendalian(jump), loading register, storing register atau membaca dan menulis ke piranti I/O.






Cara Kerja CPU


Saat  data  dan/ata 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  CounterSedangkadata 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   aka mengambi hasil pengolaha di   Accumulator untuk  ditampung  kembali  ke  Working-storage.  Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolaha dari   Working-storage untuk   ditampung   ke   Output-storage Lalu selanjutny dari Output-storage hasil pengolahan akan ditampilkan ke output-devices.


Fungsi CPU


CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika dan logika  terhadap  data  yang  diambil  dari  memori  atau     dari     informasi     yang dimasukka melalui   beberapa   perangka keras,   seperti   papa ketik,pemindai, tuas  kontrol,  maupun  tetikus.  CPU  dikontrol  menggunakasekumpulan  instruksi

perangkat  lunak  komputer.  Perangkat  lunak  tersebut  dapat  dijalankan  oleh  CPU dengan membacanya   dari   media   penyimpan,   seperti   cakra keras,   disket, cakram  padat,  maupun  pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (RAM),yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data- data pada RAM dengan menentukan alamat data yang dikehendaki. Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan RAM. Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder  instruksi yang sanggup menerjemahkan instruksi. Data  kemudian  berjalan  ke  unit  aritmatika  dan  logika (ALU)  yang  melakukan  kalkulasi  dan perbandingan.  Data  bisa  jadi  disimpan sementara  oleh  ALU  dalam  sebuah  lokasi  memori  yang disebut  dengan  register supaya  dapat  diambil  kembali  dengacepat  untuk  diolah.  ALU  dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini  terjadi,  sebuah  unit  dalam  CPU  yang  disebut denga penghitung   progra aka memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.



CPU BUILDING BLOCKS