Sabtu, 21 Oktober 2017

CPU

CPU
CPU atau Central Processing Unit adalah jantung dan otak pada sebuah komputer. CPU mengatur semua aktifitas dan jalannya semua program serta menafsirkan dan mengeksekusi setiap instruksi-instruksi mesin, mengontrol pengiriman data dari atau ke memori utama dan CPU mendeteksi juga setiap kesalahan/error yang terjadi.
Sebuah CPU memiliki beberapa komponen yaitu:
·         ALU (Arithmetic and Logic Unit)
Unit ini yang melakukan aritmatika sederhana seperti operasi penjumlahan,pengurangan. operasi logis seperti logika AND dan OR, serta melakukan pemrosesan data komputer. Perhitungan didalam ALU menggunakan kode biner yang merepresentasikan instruksi yang akan dieksekusi dan data yang diolah.
Tugas lain dari ALU adalah  melakukan semua operasi logika sesuai dengan program instruksi. Perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (≠) kurang atau sama dengan (≤), lebih besar dari (>), dan lebih besar atau sama dengan (≥)
·         CU (Control Unit)
Unit yang mengelola berbagai komponen komputer, serta memberikan arahan/kontrol terhadap operasi yang dilakukan ALU didalam CPU. CU diterapkan sebagai ad-hoc yang sulit untuk didesain. Sekarang CU diterapkan sebagai sebuah program kecil (micro program) yang disimpan dalam tempat penyimpanan kontrol (control store).
Tugas CU adalah mengambil setiap instruksi-instruksi dari memori utama, mengatur serta mengendalikan alat I/O, mengirim instruksi ke ALU apabila ada perhitungan aritmatika atau logika lalu menyimpan hasil proses ke memori utama.
·         Register
Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi. Digunakan untuk menyimpan data dan instruksi yang sedang diproses, sementara data dan instruksi yang lain, menunggu giliran untuk diproses masih disimpan didalam memori utama.
Berikut fungsi Register:
1.      User Visible Register
Register pada CPU yang menggunakan set instruksi, dapat memungkinkan satu buah register atau lebih untuk dispesifikasikan sebagai operand atau alamat operand.Register ini juga memungkinkan pemrograman bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register Adapun beberapa register-register didalamnya:
a.       General Purpose Register
Register yang digunakan untuk mode pengalamatan (addressing) dan data. Didalamnya terdapat akumulator dan base register untuk operasi aritmatika, counter register untuk proses Looping dan data register untuk menyimpan alamat peralatan I/O
b.      Register Alamat
Register yang digunakan untuk mode pengalamatan saja. Didalamnya terdapat segment register, register index, dan stack pointer
c.       Register Data
Digunakan untuk menampung data
d.      Register Kode Status Kondisi (Flag)
Register kode yang menggambarkan hasil operasi sebelumnya
2.      Control dan Status Register
Register yang digunakan oleh CU untuk mengontrol tiap operasi CPU dan oleh program sistem operasi (OS) untuk mengontrol eksekusi program. Didalamnya terdapat beberapa register yaitu:
a.       Program Counter (PC): Berisikan Alamat instruksi yang akan diambil
b.      Instruction Register (IR): Berisikan Alamat instruksi terakhir
c.       Memory Address Register (MAR): Berisikan Alamat penyimpanan dalam memori
d.      Memory Buffer Register (MBR): Berisi data yang dibaca dari memori atau dituliskan ke memori
Memori
Memori adalah istilah yang merujuk pada penyimpanan data sementara maupun tetap pada komputer. Memori berfungsi sebagai tempat penyimpan sistem aplikasi, sistem pengendalian, dan data yang sedang beroperasi. Semakin besar kapasitas dari memori, maka akan meningkatkan kemampuan pada komputer. Memori biasa diukur dengan satuan KB,MB, GB sampai TB. Adapun beberapa jenis-jenis memori yang terdapat didalam komputer yaitu:
·         Main Memory
Main memory atau memori utama adalah media penyimpanan dalam bentuk array yang disusun word atau byte, kapasitas daya simpannya dapat mencapai jutaan susunan. Data yang disimpan pada main memory bersifat volatile, artinya data yang disimpan bersifat sementara dan hanya dipertahankan oleh sumber listrik.
·         Random Access Memory (RAM)
RAM merupakan bagian memori yang bisa digunakan oleh para pemakai untuk menyimpan program dan data. RAM biasa digunakan untuk menjalankan/mengakses program-program yang ada didalam komputer. Semakin besar kapasitas dari RAM, maka proses dari program akan semakin cepat dan tidak menimbulkan lagging. RAM juga bersifat volatile artinya semua proses dari program yang berjalan pada komputer, akan segera hilang secara permanen.
·         Read Only Memory (ROM)
ROM adalah sebuah perangkat pada komputer berupa chip memori semikonduktor yang isinya hanya bisa dibaca saja, tidak seperti RAM yang berperan dalam jalannya proses program. ROM ini bersifat permanen, artinya setiap program atau data yang disimpan dan sudah tersimpan tidak mudah hilang,tidak berubah apabila tidak ada aliran listrik
·         CMOS (Complementary Metal Oxide Semiconductor)
Merupakan perangkat keras kecil komputer berupa baterai yang ditanamkan di dalam motherboard untuk memberi daya pada saat komputer dalam keadaan mati atau tanpa aliran listrik. CMOS berfungsi sebagai RAM berukuran kecil yaitu hanya 64 byte untuk menyimpan settingan dari BIOS atau Basic Input Output System sehingga seluruh pengaturan boot, tanggal dan waktu, pembacaan hardware atau input output akan tetap tersimpan.
·         Virtual Memory

Virtual Memory merupakan memori sementara yang digunakan komputer untuk menjalankan berbagai program aplikasi ataupun menyimpan data yang membutuhkan memory yang lebih besar dari memory yang telah tersedia. Virtual memori biasa disebut Virtual RAM yang pada dasarnya digunakan untuk mengalokasikan cache sistem yang penuh di RAM utama.



Sumber: 
https://gapra.files.wordpress.com/2009/01/main-memorygapra.pdf
http://users.encs.concordia.ca/~aagarwal/coen311/notes/CPU.pdf
http://www.pengertianku.net/2014/10/pengertian-rom-dan-fungsinya-beserta-cara-kerjanya.html
http://orkomp.blogspot.co.id/2012/06/register.html
https://dicahideto.wordpress.com/2010/12/09/register-processor/

Minggu, 15 Oktober 2017

Arsitektur Set Instruksi


            Set Instruksi adalah kumpulan dari beberapa instruksi-instruksi yang berbeda, dan dapat dijalankan oleh CPU sebagai pemroses instruksi. Instruksi ini sering disebut dengan instruksi mesin (machine instructions) atau instruksi computer. Arsitektur dari set instruksi ini mencakup jenis data yang didukung, jenis instruksi apa yang dipakai, jenis register, mode atau teknik pengalamatan, arsitektur memori penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).
Elemen-elemen dari Set Instruksi
a.       Opcode (Operation Code) : Digunakan untuk menentukan operasi yang akan dilaksanakan
b.      Source Operand Reference : merupakan masukan 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.

Jenis-jenis Instruksi
a.      Pengolahan Data (Data Processing)
Meliputi instruksi-instruksi aritmatika dan logika. Instruksi aritmatika digunakan untuk mengolah data berupa angka (numeric), sedangkan instruksi logika beroperasi pada bit-bit word sebagai bit bukan sebagai bilangan. Instruksi-instruksi tersebut dilakukan terutama untuk data deregister CPU.
b.      Penyimpanan Data (Data Storage)
Instruksi memori beroperasi didalam penyimpanan data. Instruksi ini dibutuhkan untuk memindahkan data yang terdapat dimemori dan register.
c.       Perpindahan Data (Data Movement)
Instruksi I/O beroperasi pada perpindahan data karena instruksi-instruksi I/O diperlukan untuk memindahkan dan mengembalikan program dan data hasil komputasi kepada pengguna
d.      Kontrol (Control)
Berisi instruksi pemeriksaan dan percabangan. Intruksi-instruksi ini digunakan untuk memeriksa nilai data, status komputasi dan mencabangkan ke set instruksi lain.

Teknik Pengalamatan
Sebuah teknik pengalamatan menentukan bagaimana menghitung alamat memori yang efektif dari operand atau nilai yang akan diproses dengan menggunakan informasi yang diadakan di register dan atau konstanta yang terkandung dalam instruksi mesin.
Jenis-jenis metode teknik pengalamatan antara lain:
1.      Pengalamatan Langsung (Direct Addressing)
Dalam metode pengalamatan ini, data akan disalin pada register dan suatu alamat efektif. Nilai yang akan dipakai diambil langsung dalam alamat memori lain. Metode ini cukup cepat karena disimpan dalam RAM internal.
           Keuntungan:
·       Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus
·         Metode ini banyak digunakan pada komputer lama dan komputer kecil
·         Field alamat berisi efektif address sebuah operand
Kekurangan:
·   Ukuran bilangan dibatasi oleh ukuran field alamat. Karena panjang field alamat biasanya lebih kecil dibandingkan dengan bilangan.

2.      Pengalamatan Segera (Immediate Addressing)
Metode ini sangat umum dipakai karena tidak diperlukan pengambilan nilai dari alamat lain untuk disimpan karena data/nilai langsung diproses kedalam register tujuan
           Keuntungan:
·      Menghemat siklus instruksi sehingga proses akan lebih cepat
·     Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
Kekurangan:
·     Pembatasan nilai bilangan oleh ukuran field alamat

3.      Pengalamatan Tidak Langsung (Indirect Addressing)
Metode pengalamatan ini sangat berguna karena, dapat memberikan keleluasaan dalam mengalamati suatu harga. Metode indirect addressing selalu merujuk pada RAM internal dan tidak pernah merujuk pada SFR.
            Keuntungan:
·    Field alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi
Kekurangan:
·     Diperlukan referensi memori ganda dalam satu fetch atau data yang diambil sehingga memperlambat proses operasi.

Desain Set Instruksi
Desain set instruksi merupakan masalah yang sangat kompleks dan melibatkan banyak aspek,diantaranya adalah:
1.      Kelengkapan set instruksi
2.      Kompatibilitas:
-         Source code compatibility
     Artinya sebuah program dapat berjalan dalam komputer (atau sistem operasi), secara independen dari kompatibilitas kode biner dan Source code dibutuhkan untuk kemudahan pembawaan
-         Object code compatibility
     Suatu kode yang dihasilkan oleh suatu proses kompilasi yang bisa bermacam-macam bentuknya tergantung pada target yang diinginkan
3.      Ortogonalitas (sifat independensi instruksi)
4.      Operation Repertoire, Berapa banyak operasi dan apa saja yang disediakan dan tingkat kesulitan operasinya.
5.      Data Types, tipe atau jenis data yang dapat diolah
6.      Register, banyaknya register yang dapat digunakan
7.      Instruction Format, panjangnya, banyaknya alamat.
8.      Addressing, mode pengalamatan untuk operand



Sumber:
https://www.slideshare.net/rikahariany/arsitektur-set-instruksi-dan-cpu
https://www.yumpu.com/id/document/view/17603099/arsitektur-set-instruksi
http://amrixse7en.blogspot.co.id/2015/01/pengertian-tentang-immediate-addressing.html