Sabtu, 05 November 2016

CPU



CPU ( Central Processing Unit ) merupakan perangkat keras computer yang memiliki fungsi untuk menerima dan melaksanakan perintah dan data dari perangat lunak. CPU merupakan otak dari computer. Tanpa adanya CPU, maka computer tidak akan berfungsi sebagai mestinya. CPU memiliki fungsi untuk menjalankan program yang telah disimpan dalam memori utama, dengan cara mengambil intruksi kemudian menguji intruksi dan mengeksekusinya sesuai alur perintah.

Fungsi CPU :
  1. CPU akan mengatur dan mengendalikan alat-alat input output.
  2. CPU mampu mengambil intruksi-intruksi dari memori utama
  3. CPU akan mengambil data dari memori utama untuk di proses
  4. CPU akan mengirimkan intruksi ke ALU jika ada perhitungan aritmatika.
  5. CPU akan mengawasi kerja dari ALU .
  6. CPU akan menyimpan hasil proses ke memori utama.


* BUS Sistem
Sistem bus atau bus system 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.
Pengertian bus adalah bagian dari sistem komputer yang berfungsi untuk memindahkan data antar bagian- bagian d lam 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.

A.    Bus Sistem dapat dibedakan atas :
1.      Data Bus ( Saluran Data )
2.      Address Bus ( Saluran Alamat )
3.      Control Bus ( Saluran Kendali )
B.     Jenis-jenis Sistem BUS
Saluran bus dapat dipisahkan menjadi dua tipe umum, yaitu dedicated dan multiplexed. Suatu saluran bus dedicated secara permanen diberi sebuah fungsi atau subset fisik komponen- komponen komputer. Sebagai contoh dedikasi fungsi adalah penggunaan alamat dedicated terpisah dan saluran data yang merupakan suatu hal yang umum bagi bus. Namun, hal ini bukanlah hal yang penting. Misalnya, alamat dan informasi data dapat ditransmisikan melalui sejumlah saluran yang sama dengan mengggunakan saluran address valid control.
C.     Struktur sistem bus
·         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.
·         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
Contoh : mengakses port I/O, maka port I/O harus memiliki alamat hardwarenya.
·         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 mengintrol penggunaanya.
Berikut ini dalah fingsi-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 alamt hardware-nya.
Di sistem komputer berbasis mikroprosesor, terdapat 3 jalur yang menjadi tempat mengalirnya proses.
1.      Bus Data yang berfungsi mengalirkan data dari/ke mikroprosesor
2.      Bus Alamat/ Address yang berfungsi mengalamati suatu proses dari/ke memori atau I/O
3.      Bus Kontrol yang berfungsi mengatur intruksi yang terjadi dari/ ke mikroprosesor.
http://simuk-warrior.blogspot.co.id/2015/06/pengertian-bus-system-sistem-bus.html

* ALU
ALU atau yang biasa disebut dengan Arithmetic Logical Unit adalah suatu komponen dalam sistem komputer yang memiliki 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 dalamALU di simpan ke dalam memori 
ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing – masing memiliki spesifikasi dan tugas tersendiri. Fungsi-fungsi yang didefinisikan pada ALU adalah Add (penjumlahan), Addu (penjumlahan tidak bertanda), Sub (pengurangan), Subu(pengurangan tidak bertanda), and, or,xor, sll (shift left logical), srl (shift right logical), sra (shift right arithmetic), dan lain-lain. 
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. 
Fungsi ALU (Arithmetic Logical Unit)  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) dan melakukan keputusan dari operasi sesuai dengan instruksi program yaitu operasi logika (logical operation).  Sirkuit yang digunakan oleh ALU ini disebut dengana dder karena Adder  digunakan untuk memproses operasi aritmetika, maka Adder juga sering disebut rangkaian kombinasional aritmetika. Ada 3 jenis Adder yaitu:
  • Rangkaian Adder  yang hanya menjumlahkan dua bit disebut Half Adder. 
  • Rangkaian Adder  yang menjumlahkan tiga bit disebut Full Adder.
  • Rangkaian Adder yang menjumlahkan banyak bit disebut paralel Adder.
ALU akan bekerja setelah mendapat perintah dari Control Unit yang terletak pada processor. Control Unit akan memberi perintah sesuai dengan komando yang tertulis(terdapat) pada register. Jika isi register memberi perintah untuk melakukan proses penjumlahan, maka PC akan menyuruh ALU untuk melakukan proses penjumlahan. Selain perintah, register pun berisikan operand-operand. Setelah proses ALU selesai, hasil yang terbentuk adalah sebuah register yang berisi hasil atau suatu perintah lainnya. Selain register, ALU pun mengeluarkan suatu flag yang berfungsi untuk memberi tahu kepada kita tentang kondisi suatu processor seperti apakah processor mengalami overflow atau tidak.Perhitungan pada ALU adalah bentuk bilangan integer yang direpresentasikan dengan bilangan biner. Namun,
 untuk saat ini, ALU dapat mengerjakan bilangan floating point atau bilangan berkoma, tentu saja dipresentasikan dengan bentuk bilangan biner. ALU mendapatkan data (operand, operator, dan instruksi) yang akan disimpan dalam register. Kemudian data tersebut diolah dengan aturan dan sistem tertentu berdasarkan perintah control unit. Setelah proses ALU dikerjakan, output akan disimpan dalam register yang dapat berupa sebuah data atau sebuah instruksi. Selain itu, bentuk output yang dihasilkan oleh ALU berupa flag signal. Flag signal ini adalah penanda status dari sebuah CPU. 
Bilangan integer (bulat) tidak dikenal oleh komputer dengan basis 10. Agar komputer mengenal bilangan integer, maka para ahli komputer mengkonversi basis 10 menjadi basis 2. Seperti kita ketahui, bahwa bilangan berbasis 2 hanya terdiri atas 1 dan 0. Angka 1 dan 0 melambangkan bahwa 1 menyatakan adanya arus listrik dan 0 tidak ada arus listrik. Namun, untuk bilangan negatif, computer tidak mengenal simbol (-). Komputer hanya mengenal simbol 1 dan 0. Untuk mengenali bilangan negatif, maka digunakan suatu metode yang disebut dengan Sign Magnitude Representation. Metode ini menggunakan simbol 1 pada bagian paling kiri (most significant) bit. Jika terdapat angka 18 = (00010010)b, maka -18 adalah (10010010)b. Akan tetapi, penggunaan sign-magnitude memiliki 2 kelemahan. Yang pertama adalah terdaptnya -0 pada sign magnitude[0=(00000000)b; -0=(10000000)b]. Seperti kita ketahui, angka 0 tidak memiliki nilai negatif sehingga secara logika, sign-magnitude tidak dapat melakukan perhitungan aritmatika secara matematis.  
Yang kedua adalah, tidak adanya alat atau software satupun yang dapat mendeteksi suatu bit bernilai satu atau nol karena sangat sulit untuk membuat alat seperti itu. Oleh karena itu, penggunaan sign magnitude pada bilangan negatif tidak digunakan, akan tetapi diganti dengan metode 2′s complement. Metode 2′s complement adalah metode yang digunakan untuk merepresentasikan bilangan negatif pada komputer. 
Cara yang digunakan adalah dengan nilai terbesar dari biner dikurangin dengan nilai yang ingin dicari negatifnya. Contohnya ketika ingin mencari nilai -18, maka lakukan cara berikut:
1.   ubah angka 18 menjadi biner (00010010)b
2.   karena biner tersebut terdiri dari 8 bit, maka nilai maksimumnya adalah 11111111
3.   kurangkan nilai maksimum dengan biner 18 -> 11111111 – 00010010 = 11101101
4.   kemudian, dengan sentuhan terakhir, kita tambahkan satu -> 11101101 + 00000001
= 11101110
Dengan metode 2′s complement, kedua masalah pada sign magnitude dapat diselesaikan dan komputer dapat menjalankan. Namun, pada 2′s complement, nilai -128 pada biner 8 bit tidak ditemukan karena akan terjadi irelevansi.
* Control Unit
Kontrol unit adalah mesin yang terbatas untuk mengambil input IR, register status(register yang sebagian diisi oleh output status dari ALU), dan siklus utama. Aturannya di encodingkan pada logika acak, logika array yang dapat diprogram, dan ROM, serta beberapa output yang mengirim dari processor untuk setiap titik yang membutuhkan koordinasi dan arahan untuk unit kontrol. Sebagai contoh output yang diperlukan untuk bagian dari instruksi/path data. 
Control unit mempunyai fungsi yang bervariasi. Pada prosesor biasa, unit kontrol berfungsi untuk mengeksekusi instruksi x86 sebagai bagian asli dari unit control yang bertugas melakukan tugas untuk mengambil, decoding, mengelola pelaksanaan dan kemudian menyimpan hasilnya. Pada prosesor x86 dengan inti RISC, unit kontrol bekerja lebih signifikan untuk melakukan penjabaran instruksi x86 ke instruksi mikro, mengelola penjadwalan instuksi mikro antara berbagai unit pelaksana, membuat output dari unit-unit untuk memastikan mereka berakhir dimana mereka harus pergi 

http://haruman123.blogspot.co.id/2012/12/control-unit.html
 



* Register
Pengertian Register adalah sebagian kecil memori komputer yang dipakai untuk tempat penampungan  data dengan ketentuan bahwa data yang terdapat dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar kemampuan menampung register tersebut. Register tidak dapat dilepaskan dari mikroprosessor, sebab pada mikroprosessor terdapat register yang berfungsi untuk menyimpan sementara hasil dari tahapan operasi arithmetika dan logika pada mikroprosessor.
A.    Jenis-Jenis Register
1.      General Purpose Register
2.      Pointer
3.      Index Register
4.      Register Segment
5.      Flag Register

B.     Pointer Register
Pointer Register untuk menunjukkan alamat sebuah data di lokasi memori, dipakai saat operasi perpindahan data (dari/ke memori), operasi stack (PUSH/POP) dan penunjukkan alamat suatu instruksi. Berikut adalah macam-macam pointer register: SP (Stack Pointer) dan ESP, BP (Base Pointer) dan IP (Instruction Pointer).
o   Register SP (Stack Pointer, 16 bit)
Fungsi: Digunakan untuk operasi stack seperti menyimpan alamat return saat memanggil subroutine. SP merupakan register yang secara implisit digunakan oleh perintah PUSH dan POP yaitu menyimpan dan mengambil kembali dari stack.
o   Register BP (Base Pointer, 16 bit)
Fungsi: Sebagai penunjuk base dalam stack yang disediakan untuk penyimpanan data. BP juga digunakan si dengan bahasa pemrograman misalnya Assembler dan C.
o   Register IP (Instruction Pointer, 16 bit)
Fungsi: Register yang berpasangan dengan CS sebagai register utama untuk menunjukkan baris perintah program. Pada saat program dijalankan, IP akan langsung menunjuk pada awal program. Code Segment dan Instruction Pointer berfungsi sebagai program counter ditulis dengan format CS:IP. Secara umum, kode mesin diletakkan di Code Segment, semua data diletakkan di Data Segment, dan operasi PUSH dan POP dilakukan di Stack Segment.

C.     Index Register
Index Register sama dengan pointer register, sering digunakan untuk menunjukkan alamat sebuah data di lokasi memori pada operasi string. Macam-macam register Index adalah : SI (Source Index), DI (Destination Index).
o   Register SI dan DI (Source Index dan Destination index, 16 bit)
Fungsi: Menyimpan nilai-nilai offset dalam segment data memori pada saat bersangkutan.

D.    Segment Register
Segment register membentuk alamat memori untuk data. Pada operasi real mode suatu segment register akan berbeda dengan segment register pada operasi protected mode. Yang termasuk ke dalam segment register antara lain :
·         Code segment -> untuk menunjukkan alamt instruksi berikutnya, Mencatat segment dari kode program atau instruksi, register CS berpasangan dengan register IP (Instruction Pointer) dalam format CS:IP.
·         Data segment -> untuk menunjukkan alamat data pada transfer register, Menyimpan alamat dari segment dimana data terletak.
·         Extra segment -> register tambahan untuk operasi string, Menyimpan alamat segment tambahan, misalnya alamat display, alamat sistem operasi, dan sebagainya.
·         Stack segment -> dengan SP u/ menunjukkan stack dan memanggil suatu prosedur (CALL) dan mengarah ke program utama (RET), Menyimpan alamat segment memori yang dipergunakan sebagai stack.
·         FS dan GS register -> register tambahan u/ segmen memori yang besar.

E.     Flag Register
Flag Register berfungsi untuk menunjukkan status (keadaan) sesaat dari mikroprosessor. Bit-bit pada flag akan mengalami perubahan, tergantung proses yang baru saja berlangsung. Adapun kode bit yaitu sebagai berikut :
  • C (carry) -> 1=ada carry out 0= tdk ada carry out
  •  P (Parity) -> 1=paritas genap 0= paritas ganjil
  • A (auxxiliary carry) -> 1=ada carry 0=tdk ada carry
  •  Z (zero) -> 1=hasilnya nol 0=hasilnya bukan nol
  •  S (sign) -> 1=hasilnya negatif 0=hasilnya positif
  •  T (trap) -> bila diset 1 dimungkinkan melakukan debugging.
  •   I (interrupt) -> 1= pin INTR enable 0=pin INTR disable
  • D (direction) -> 1=cacahan turun 0=cacahan naik
  •  (Overflow) -> menunjukkan adanya kelebihan kapasitas atau tidak
  •  IOPL (input-output privalege level) -> untuk protected mode
  •  NT (nested task) -> indikasi dari penggabungan dengan operasi lain.
  •  RF (resume) -> untuk debugging
  • VF (Virtual mode) -> untuk operasi virtual pada protected mode
  • AC (alignment check) -> untuk data word dialamati ke memori