CPU (CENTRAL PROCESSING UNIT)

CPU (Central Processing Unit) adalah otak atau sumber dari komputer yang mengatur dan memproses seluruh kerja komputer. CPU ini berbentuk IC yang diberi nama sesuai dengan tipenya, misalnya 8088 untuk PC XT dan 80286 untuk PC AT,Pentium IV dan sebagainya. Karena CPU ini berada pada suatu board (papan) yang disebut motherboard dan terletk dalam kotak (casing), sekarang ini orang jadi cenderung menyebut kotak berisi catu daya, disk drive dan motherboard sebagai CPU/ kotak CPU. Di dalam kotak CPU biasanya terdapat 2 buah disket drive yang diberi nama disket drive A dan disket drive B. selain disket drive ada juga yang mempunyai hard disk dan CD ROM.

CPU terdiri dari :

   Bagian CU (Control Unit)
Control Unit yang mampu mengatur jalannya program. Komponen ini sudah pasti terdapat dalam semua CPU. 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.

Tugas dari control unit 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.

   Bagian ALU (Arithmetic Logic Unit)
Aritmetic Logic Unit yang bertugas untuk melakukan operasi aritmetika dan 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 melakukan 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, dan lebih besar atau sama dengan.

 Register-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. Secara analogi,register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika

   ADDER

Switch elektronik pada proses penambahan di ALU
Jenis operasi ADDER:
            - Half Adder
            - Full Adder


    FUNGSI UTAMA CPU :

1. Fetch Instruction (Mengambil Instruksi)
            CPU harus membaca instruksi dari memori
2. Interpret Instruction (Menterjemahkan Instruksi)
            Instruksi harus diinstruksikan untuk menentukan aksi apa yang perlu diambil
3. Fetch Data (Mengambil Data)
            Eksekusi suatu instruksi memerlukan pembacaan dari memori atau modul I/O
4. Process Data (Mengolah Data)
            Eksekusi suatu instruksi memerlukan operasi aritmatika atau logika terhadap data
5. Write Data (Menulis Data)
            Hasil eksekusi memerlukan penulisan data ke memori atau modul I/O


REGISTER PADA CPU

Memiliki 2 fungsi :
1. 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 Data
¨  General purpose register
¨  Special purpose register
Register Alamat
¨  Register indeks (index register)
¨  Register penunjuk segmen (segment pointer register)
¨  Register penunjuk stack (stack pointer register)
¨  Register penanda (flag register)

2. Control dan Status Register
            Register yang digunakan oleh unit kontrol untuk mengintrol operasi CPU dan oleh program sistem operasi untuk mengontrol eksekusi program
Register untuk alamat dan buffer
¨  Memory Address Register (MAR)
¨  Memory Buffer Register (MBR)
¨  I/O AR (I/O Address Register)
¨  I/O BR (I/O Buffer Register)
Register untuk eksekusi instruksi
¨  Program Counter (PC)
¨  Instruction Register (IR)
Register untuk informasi status
            Register ini berisi informasi status. Dapat berupa satu register atau kumpulan register. Register atau kumpulan register ini disebut PSW (Program Status Word).
1.    Program Counter (PC)
§  Berisi alamat instruksi yang akan diambil
2. Instruction Register (IR)
§  Berisi alamat instruksi terakhir
3. Memory Address Register (MAR)
§  Berisi alamat penyimpanan dalam memori
4. Memori Buffer Register (MBR)
§  Berisi data yang dibaca dari memori atau yang diyliskan ke memori

Aktivitas CPU :

Fetch Instruction/mengambil instruksi
                        CPU harus membaca instruksi dari memory
 Fetch Data/Mengambil Data
              Eksekusi suatu instruksi mungkin memerlukan pembacaan data dari memory atau modul I/O
 Process Data/Mengolah Data
                Eksekusi suatu instruksi mungkin memerlukan suatu operasi aritmatika atau logika terhadap data
 Write Data/Menulis Data
                        Hasil eksekusi mungkin memerlukan
                        penulisan data ke memory


SIKLUS INSTRUKSI         

  • Pengolahan yang dilakukan CPU untuk mengeksekusi sebuah instruksi

Siklus Instruksi meliputi :
1. Fetch Cycle (Siklus mengambil)
  • Mengambil instruksi yang akan dieksekusi
2. Execute Cycle (Siklus Eksekusi)
  • Melakukan operasi yang ditentukan oleh opcode instruksi
3. Interrupt Cycle (Siklus Instruksi)
  • Apabila interrupt diaktifkan dan interrupt telah terjadi, simpan status proses saat itu dan layani interrup

Penanda (Flag) pada PSW :

Sign : Flag ini mencatat tanda yang dihasilkan operasi yang sebelumnya dijalankan
Sign : Flag ini mencatat tanda yang dihasilkan operasi yang sebelumnya dijalankan
Zero : Flag ini mencatat apakah operasi sebelumnya menghasilkan nilai nol.
Carry : kondisi dimana operasi penjumlahan atau perkalian menghasilkan hitungan yang tidak dapat ditampung register.
Equal : Flag ini mencatat apakah operasi menghasilkan kondisi sama dengan.
Overflow : Flag ini mencatat apakah kondisi menghasilkan overlow.
Interupt enable/disable : Flag ini mencatat apakah interupt sedang dapat diaktifkan atau tidak.
Supervisor : Pada mode supervisor maka seluruh interupt dapat dilaksanakan.

Set Instruksi



Set Intruksi : Karakteristik dan Fungsi
Set Instruksi didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara, 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).

Set Instruksi
  • Set Instruksi :
  • Kumpulan instruksi lengkap yang dimengerti oleh CPU
  • Kode mesin, Biner, dan Kode Assembly

-Untuk dapat dieksekusi CPU, suatu instruksi harus berisi elemen informasi yang diperlukan CPU secara lengkap dan jelas.
-Elemen – elemennya:
  • Operation code (Op code)
menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner.
Contoh : Kerjakan
  • Source Operand reference
operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi.
Contoh : Dengan data ini
  • Result Operand reference
Merupakan hasil atau keluaran operasi.
Contoh : Simpan hasilnya kesini
  • Next Instruction Reference
elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan dieksekus
Contoh : Setelah selesai, kerjakan ini ...

OPERASI-OPERASI SET INSTRUKSI

a.     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 bgian paling atas sumber
b.    Operasi set instruksi untuk arithmetic :
• ADD : penjumlahan
• SUBTRACT : pengurangan
• MULTIPLY : perkalian
• DIVIDE : pembagian
• ABSOLUTE
• NEGATIVE
• DECREMENT
• INCREMENT
Urutan 5 sampai 8 merupakan instruksi operand tunggal
c.     Operasi set instruksi untuk operasi logical :
• AND, OR, NOT, EXOR
• COMPARE : melakukan perbandingan logika.
• 3TEST : menguji kondisi tertentu.
• SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit.
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
d.    Operasi set instruksi untuk conversi :
• TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan tabel korespodensi.
• CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
e.    Operasi set instruksi Input / Ouput :
• INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
• OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
• START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
• TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
f.      Operasi set instruksi untuk transfer control :
• JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
• JUMP BERSYARAT : menguji persyaratan tertentu dan memuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
• JUMP SUBRUTIN : melompat ke alamat tertentu.
• RETURN : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
• EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi.
• SKIP : menambah PC sehingga melompati instruksi berikutnya.
• SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan.
• HALT : menghentikan eksekusi program.
• WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
• NO OPERATION : tidak ada operasi yang dilakukan.
g.    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
Jenis Instruksi

  • Data processing
  • Data storage (main memory)
  • Data movement (I/O)
  • Program flow control

Jumlah Addres (a)
  • 3 addres
    • Operand 1, Operand 2, Result
    • Contoh: ADD A,B,C
    • a = b + c;
    • Jarang digunakan dan perlu word yang panjang.
  • 2 addres
    • Salah satu sebagai operand dan result
    • Contoh: ADD A,B
    • a = a + b
    • Instruksi lebih pendek
    • Diperlukan kerja ekstra
      • Temporary storage untuk menyimpan beberapa hasil operasi

Jumlah Addres (b)
  • 1 addres
    • Addres kedua Implicit 
    • Biasanya register (accumulator)
    • 0 (zero) addres
    • semua addres implicit
    • menggunakan stack
    • Contoh:
push a
push b
Add
pop c
  • Berarti: c = a + b

Addres Banyak dan Sedikit
  • Addres banyak
    • Instruksi semakin kompleks
    • perlu register banyak
    • Program lebih pendek
    • Lebih cepat ?
    • Addres sedikit
    • Instruksi lebih sederhana
    • Eksekusi lebih cepat

Pertimbangan Perancangan
  • Operation
    • Berapa banyak operand? Apa saja operasi yang dikerjakan? Seberapa komplekx?
  • Jenis data
  • Format instruksi
    • Panjang opcode
    • Jumlah addres
  • Register
    • Jumlah  register yang tersedia dlm CPU
    • Operasi apa yg dpt dikerjakan oleh masing-masing registers?
  • Addressing modes (…)
  • RISC v CISC

Jenis Operand
  • Addres
  • Number
    • Integer/floating point
  • Character
    • ASCII etc.
  • Logical Data
    • Bits or flags
    • (Apa ada bedanya antara number dengan character?)

Tipe Data Pentium
  • 8 bit Byte
  • 16 bit word
  • 32 bit double word
  • 64 bit quad word
  • Addressing menggunakan  8 bit unit
  • 32 bit double word dibaca pada addres yg habis dibagi dg 4

Tipe Data Spesifik
  • General – sembarang isi biner
  • Integer - single binary value
  • Ordinal - unsigned integer
  • Unpacked BCD - One digit per byte
  • Packed BCD - 2 BCD digits per byte
  • Near Pointer - 32 bit offset within segment
  • Bit field
  • Byte String
  • Floating Point

Jenis Operasi
  • Data Transfer
  • Arithmetic
  • Logical
  • Conversion
  • I/O
  • System Control
  • Transfer of Control

Data Transfer
  • Menentukan :
    • Source
    • Destination
    • Jumlah data
    • Beda instruksi untuk setiap data movement yang beda.
    • pada IBM 370
    • Atau satu instruction dengan addres yg beda.
    • pada VAX

Arithmetic
  • Add, Subtract, Multiply, Divide
  • Signed Integer
  • Floating point ?
  • Termasuk operasi:
    • Increment (a++)
    • Decrement (a--)
    • Negate (-a)

Logical dan Konversi
  • Logika :
  • Bitwise operations
  • AND, OR, NOT
  • Konversi
  • Contoh: Biner ke Decimal

Input Output
  • Tersedia instruksi khusus.
  • Atau digunakan instruksi  data movement (memory mapped).
  • Atau dikerjakan oleh controller (DMA).

System Control dan Transfer of Control
  • System Control :
  • Privileged instructions
  • CPU harus berada pada state tertentu
    • Ring 0 pada 80386+ Kernel mode
  • Digunakan oleh operating systems
  • Transfer of Control :
  • Branch , contoh: branch to x if result is zero
  • Skip, contoh: increment and skip if zero
    • ISZ Register1
    • Branch xxxx
    • ADD A
  • Subroutine call
    • interrupt call

Byte Order
  • Bagaiamana urutan bilangan yang lebih dari 1 byte disimpan/dibaca, contoh (dalam  hex).
  • Bilangan 12345678 dapat disimpan pada lokasi 4x8 bit.
  • Contoh :
Address                        Value (1)                     Value(2)
184                                 12                                78
185                                 34                                56
186                                 56                                34
186                                 78                                12
  • top down atau  bottom up?

Penamaan Byte Order
  • Problem ordering dinamakan Endian
  • LSB pada posisi paling kiri (pada addres terkecil)
  • Dinamakan  big-endian
  • LSB pada posisi paling kanan (pada addres terbesar)
  • Dinamakan little-endian

Standard
  • Pentium (80x86), VAX adalah  little-endian
  • IBM 370, Motorola 680x0 (Mac), dan  RISC yang lain, adalah   big-endian
  • Internet menggunakan big-endian
    • Membuat program untuk Internet pada PC lebih susah.
    • WinSock menyediakan htoi (Host to Internet) dan  itoh (Internet to Host) untuk keperluan konversi

Sumber :
-          Power Point By Serdiwansyah N. A.