Sabtu, 27 Oktober 2012

Arsitektur Set Instruksi dan CPU

1.    Arsitektur Set Koputer
Operasi dari CPU ditentukan oleh instruksi-instruksi yangdilaksanakan atau dijalankannya. Instruksi ini sering disebutsebagai instruksi mesin (mechine instructions) atau instruksikomputer (computer instructions).

Defenisi :
Kumpulan dari instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction Set).

Jenis – Jenis 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 instruks yang dijalankan selesai .


Lokasi Set Instruksi :
Sourcedan 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 :
a)           Operation Repertoire: Berapa banyak dan operasi apa saja yang 
         disediakan, dan berapa sulit operasinya
b)      Data Types: tipe/jenis data yang dapat olah
c)      Instruction Format: panjangnya, banyaknya alamat, dsb.
d)     Register: Banyaknya register yang dapat digunakan
e)      Addressing: Mode pengalamatan untuk operand
  
Salah satu cara tradisional untuk menggambarkan arsitekturprosessor adalah dengan melihat jumlah alamat yangterkandung 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)

Contoh:
Instruksi untuk menghitung persamaan:
Y = (A – B) / (C + D * E

1.      CENTRAL PROCESSINGUNIT
STRUKTUR BUS
Sebuah bus biasanya terdiri atas beberapa saluran. Sebagai contoh bus data terdiri atas 8 saluran sehingga dalam satu waktu dapat mentransfer data 8 bit. Secara umum fungsi saluran bus dikatagorikan dalam tiga bagian, yaitu saluran data, saluran alamat dan saluran control. Saluran data(data bus) adalah lintasan bagi perpindahan data antar modul. Secara kolektif lintasan ini disebut bus data. Umumnya jumlah saluran terkait dengan panjang word, misalnya 8, 16, 32 saluran dengan tujuan agar mentransfer word dalam sekali waktu. Jumlah saluran dalam bus data dikatakan lebar bus, dengan satuan bit, misal lebar bus 16 bit.


KONEKSI BUS
Bus merupakan listasan yang menghubungkan dua atau lebih komponen komputer. Sifat penting dan merupakan syarat utama bus adalah media transmisi yang dapat di gunakan bersama oleh sejumlah perangkat yang terhubung Karena digunakan bersama,  iperlukan 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 menggunakan bus.


TIPE BUS
Berdasar jenis busnya, bus dibedakan menjadi bus yang khusus menyalurkan data tertentu, Misalnya paket data saja, atau alamat saja, jenis ini disebut dedicated bus. Namun apabila bus dilalukan informasi yang berbeda baik data, alamat maupun sinyal kontrol dengan metode mulipleks data maka bus ini disebut multiplexed bus. Keuntungan mulitiplexed bus adalah hanya memerlukan saluran sedikit sehingga dapat menghemat tempat, namun kerugiannya adalah kecepatan transfer data menurun dan diperlukan mekanisme yang komplek untuk mengurai data yang telah dimulitipleks. Saat ini yang umum, bus didedikasikan untuk tiga macam, yaitu bus data, bus alamat dan bus  kontrol.

ALU
ALU, singkatan dari Arithmetic And Logic Unit salah satu bagian dalam dari sebuah mikroprosesoryang berfungsi untuk melakukan operasi hitungan aritmatika dan logika. Contoh operasi aritmatika adalah operasi penjumlahan dan pengurangan, sedangkan contoh operasi logika adalah logika AND dan OR. tugas utama dari ALU (Arithmetic And Logic Unit)adalah melakukan semua perhitungan aritmatika atau matematika yang terjadi sesuai dengan instruksi program. ALU melakukan operasi aritmatika yang lainnya. Seperti pengurangan, pengurangan, dan pembagian dilakukan dengan dasar penjumlahan. Sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi aritmatika ini disebutadder. ALU melakukan operasi arithmatika dengan dasar pertambahan, sedang operasi arithmatika yang lainnya, seperti pengurangan, perkalian, dan pembagian dilakukan dengan dasar penjumlahan. sehingga sirkuit elektronik di ALU yang digunakan untuk melaksanakan operasi arithmatika ini disebutadder. Tugas lalin dari ALU adalah melakukan keputusan dari operasi logika sesuai dengan instruksi program. Operasi logika (logical operation) meliputi perbandingan dua buah elemen logika dengan menggunakan operator logika, yaitu:
a. sama dengan (=)
b. tidak sama dengan (<>)
c. kurang dari (<)
d. kurang atau sama dengan dari (<=)
e. lebih besar dari (>)
f. lebih besar atau sama dengan dari (>=)

CU ( CONTROL UNIT )
Tugas dari CU adalah sebagai berikut:
1.    Mengatur dan mengendalikan alat-alat input dan output.
2.    Mengambil instruksi-instruksi dari memori utama.
3.    Mengambil data dari memori utama kalau diperlukan oleh proses.
4.    Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja.
5.    Menyimpan hasil proses ke memori utama.

MACAM-MACAM CU
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 linehanya 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.


Multi-Cycle CU
Berbeda dengan unit kontrol yang single-cycle, unit kontrol yang multi-cycle lebih memiliki banyak fungsi. Denganmemperhatikan 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.

Register 
Register prosesor, dalam arsitektur komputer, adalah sejumlah kecil memori komputer yang bekerja dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi terhadap program-program komputer dengan menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu tertentu.
Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori: ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah paling kecil; dan harga tiap bitnya adalah paling tinggi. 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. Istilah register saat ini dapat merujuk kepada kumpulan register yang dapat diindeks secara langsung untuk melakukan input/output terhadap sebuah instruksi yang didefinisikan oleh set instruksi. untuk istilah ini, digunakanlah kata "Register Arsitektur". Sebagai contoh set instruksi Intel x86 mendefinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tapi CPU yang mengimplementasikan set instruksi x86 dapat mengandung lebih dari delapan register 32-bit.

JENIS REGISTER
Register terbagi menjadi beberapa kelas:
-     Register data, yang digunakan untuk menyimpan angka-angka dalam bilangan bulat (integer).
-     Register alamat, yang digunakan untuk menyimpan alamat-alamat memori dan juga untuk mengakses memori.
-     Register general purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara sekaligus.
-     Register floating-point, yang digunakan untuk menyimpan angka-angka bilangan titik mengambang (floating-point).
-     Register konstanta (constant register), yang digunakan untuk menyimpan angka-angka tetap yang hanya dapat dibaca (bersifat read-only), semacam phi, null, true, false dan lainnya.
-     Register vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh prosesor SIMD.
-     Register special purpose yang dapat digunakan untuk menyimpan data internal prosesor, seperti halnya instruction pointer, stack pointer, dan status register.
-     Register yang spesifik terhadap model mesin (machine-specific register), dalam beberapa arsitektur tertentu, digunakan untuk menyimpan data atau pengaturan yang berkaitan dengan prosesor itu sendiri. Karena arti dari setiap register langsung dimasukkan ke dalam desain prosesor tertentu saja, mungkin register jenis ini tidak menjadi standar antara generasi prosesor

 

Virtual Memory
Apa itu Virtual Memori? Mungkin sebagian dari pengguna Microsoft Windows sudah tidak asing lagi dengan istilah itu. Karena sering sekali windows memberi peringatan kepada user tentang “Memory is low”, ini terjadi karena komputer kekurangan memori untuk menjalankan sebuah program. Hal ini sering terjadi pada saat komputer ingin menjalankan program yang memerlukan sumber memori yang besar seperti Game, mungkin banyak gamer sering sekali terganggu dengan masalah seperti ini.
Sesuai dengan namanya “Virtual Memori” berarti :
  • Memori            : Ruang penyimpanan
  • Virtual              : Tiruan / tidak nyata.
Jadi Virtual Memori adalah sebuah sistem yang digunakan oleh sistem operasi untuk menggunakan sebagian dari Memori Sekunder yaitu Harddisk seolah-olah ia menggunakannya sebagai memori internal/utama (RAM) fisik yang terpasang di dalam sebuah sistem komputer. Sistem ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan page file. Proses pemakaian Virtual memori di windows umumnya dapat dilihat di Task manager.
Dalam sistem operasi berbasis Windows NT, terdapat sebuah komponen yang mengatur memori virtual yaitu Virtual Memory Manager (VMM) yang memiliki fungsi untuk dapat memetakan alamat-alamat virtual yang dimiliki oleh sebuah proses yang berjalan ke dalam page memori fisik di dalam komputer. Dengan cara ini maka setiap proses dapat memperoleh memori virtual yang cukup agar dapat berjalan dan tidak mengganggu memori yang sedang digunakan oleh proses lainnya. VMM menangani paging antara RAM dan page file agar setiap aplikasi 32-bit dapat mengakses memori hingga 4 Gigabyte, meskipun Windows hanya membatasinya pada kisaran 2 Gigabyte.
Jadi, untuk komputer yang mempunyai memori / RAM kecil ada baiknya memperbesar virtual memori agar tetap dapat menjalankan aplikasi yang membutuhkan memori yang besar terutama untuk game.

Chache Memory
Cache memory adalah memori yang sangat cepat yang dibangun dalam sebuah central processing unit komputer (CPU), atau ditempatkan dalam chip yang terpisah. Fungsi memori cache untuk menyimpan instruksi yang berulang kali diperlukan dan dapat diakses sangat cepat untuk menjalankan program, memperbaiki sistem secara keseluruhan. Keuntungan dari memori cache adalah bahwa CPU tidak harus menggunakan sistem bus motherboard untuk mentransfer data. Setiap kali data harus melewati bus sistem, kecepatan transfer data memperlambat kemampuan motherboard. CPU dapat memproses data lebih cepat dengan menghindari hambatan yang diciptakan oleh sistem bus.
Setelah sebagian besar program terbuka dan berjalan, mereka menggunakan sumber daya yang sangat sedikit. Ketika sumber daya ini disimpan dalam cache, program dapat beroperasi lebih cepat dan efisien. Cache dalam sistem komputer yang menjalankan CPU dengan cache kecil bisa memiliki benchmark yang lebih rendah. Cache yang dibangun ke dalam CPU itu sendiri disebut sebagai Level 1 (L1) cache. Cache yang berada dalam sebuah chip yang terpisah di sebelah CPU disebut Level 2 (L2) cache. Beberapa CPU memiliki keduanya, L1 cache dan L2 built-in dan menugaskan chip terpisah sebagai cache Level 3 (L3) cache.
Cache yang dibangun dalam CPU lebih cepat daripada cache yang terpisah. Namun, cache terpisah masih sekitar dua kali lebih cepat dari Random Access Memory (RAM). Cache lebih mahal daripada RAM tetapi motherboard dengan built-in cache sangat baik untuk memaksimalkan kinerja sistem.
Disk caching menerapkan prinsip yang sama pada hard disk cache memori yang juga berlaku untuk CPU. Data hard yang sering diakses disk disimpan dalam segmen terpisah RAM untuk menghindari harus mengambilnya dari hard disk berulang-ulang. Dalam hal ini, RAM lebih cepat daripada teknologi piringan CD yang digunakan dalam hard disk konvensional. Situasi ini akan berubah bagaimanapun, sebab hard disk hybrid sudah ada dimana-mana. Disk ini memiliki built-in flash memori cache. Akhirnya, hard drive akan 100% mirip flash drive, menghilangkan kebutuhan untuk RAM disk caching, sebagai flash memory yang lebih cepat dari RAM.

Referensi :