Senin, 31 Oktober 2011

Arsitektur Set Instruksi


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).

Elemen-elemen 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



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 lintasan komunikasi yang menghubungkan dua atau lebih komponen komputer. Sifat penting dan merupakan syarat utama bus adalah media transmisi yang dapat digunakan bersama oleh sejumlah perangkat yang terhubung apadanya. 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. Dengan memperhatikan 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

Referensi :

Minggu, 09 Oktober 2011

ORGANISASI DAN ARSITEKTUR KOMPUTER


PENDAHULUAN

Organisasi dan Arsitektur Komputer mempelajari bagaimana struktur komputer dan fungsi masing-masing pembentuk struktur serta mengetahui berbagai arsitektur perancangan sistem komputer untuk mencapai kinerja yang tinggi .

Komputer adalah sebuah mesin hitung elektronik yang secara cepat menerima informasi masukan digital dan mengolah informasi tersebut menurut seperangkat instruksi yang tersimpan dalam komputer tersebut dan menghasilkan keluaran informasi yang dihasilkan setelah diolah.  Daftar perintah tersebut dinamakan program komputer dan unit penyimpanannya adalah memori komputer.

Organisasi Komputer adalah bagian yang terkait erat dengan unit–unit operasional dan interkoneksi antar komponen penyusun sistem komputer dalam merealisasikan aspek arsitekturalnya. Contoh aspek organisasional adalah teknologi hardware, perangkat antarmuka, teknologi memori, sistem memori, dan sinyal–sinyal kontrol. 

Arsitektur Komputer lebih cenderung pada kajian atribut–atribut sistem komputer yang terkait dengan seorang programmer. Contohnya, set instruksi, aritmetika yang digunakan, teknik pengalamatan, mekanisme I/O.

EVOLUSI ARSITEKTUR KOMPUTER




Generasi Pertama : Tabung Vakum (1945 – 1955) 

ENIAC
ENIAC (Electronic Numerical Integrator And Computer), pada tahun 1946 dirancang dan dibuat oleh John Mauchly dan John Presper Eckert di Universitas Pennsylvania merupakan komputer digital elektronik untuk kebutuhan umum pertama di dunia. ENIAC dibuat di  bawah lembaga Army’s Ballistics Research Laboratory  (BRL). Sebuah badan yang bertanggung jawab dalam pembuatan jarak dan tabel lintasan peluru kendali senjata baru. Sebelumnya tugas ini dilakukan oleh kurang lebih 200 personil dengan menggunakan kalkulator untuk menyelesaikan persamaan matematis peluru kendali yang memakan waktu lama. 

Tahun 1946 komputer dengan  stored-program concept  dipublikasikasikan, yang kemudian di kenal dengan Komputer IAS (Computer of Institute for Advanced Studies). Struktur komputer IAS ini terdiri :
  1. 1.   Memori Utama, untuk menyimpan data maupun instruksi.
  2. 2.   Arithmetic Logic Unit (ALU), untuk mengolah data binner.
  3. 3.   Control Unit, untuk melakukan interpretasi instruksi – instruksi di dalam memori sehingga adanya eksekusi instruksi tersebut.
  4. 4.   I/O, untuk berinteraksi dengan lingkungan luar.


Generasi Kedua : Transistor (1955 – 1965) 

Sejak pesatnya teknologi semikonduktor hingga menghasilkan komponen transistor membawa perubahan besar pada dunia komputer. Komputer era ini tidak lagi menggunakan tabung vakum yang memerlukan daya operasional besar, tabung – tabung itu  digantikan komponen kecil bernama transistor. Konsumsi daya listrik amat kecil dan bentuknyapun relatif kecil. 

Transistor ditemukan di Bell Labs pada tahun 1947 dan tahun 1950 telah meluncurkan revolusi elektronika modern.

Generasi Ketiga : Integrated Circuits (1965 – 1980) 


Pada tahun 1958 terjadi revolusi elektronika kembali, yaitu ditemukannya  integrated circuit  (IC) yang merupakan penggabungan komponen – komponen elektronika dalam suatu paket. Dengan ditemukan IC ini semakin mempercepat proses komputer, kapasitas memori makin besar dan bentuknya semakin kecil

Generasi Keempat : Very Large Scale Integration (1980 - ????) 


Era keempat perkembangan genarasi komputer ditandai adanya VLSI. Paket VLSI dapat menampung 10.000 komponen lebih per kepingnya dengan kecepatan operasi mencapai 100juta operasi per detiknya. Masa – masa ini diawali peluncuran mikroprosesor Intel seri 4004. Mikroprosesor 4004 dapat menambahkan dua bilangan 4 bit dan hanya dapat mengalikan dengan cara pengulangan penambahan.
Memang masih primitif, namun mikroprosesor ini tonggak perkembangan mikroprosesor – mikroprosesor canggih saat ini. Tidak ada ukuran pasti dalam melihat mikroprosesor, namun ukuran terbaik adalah lebar bus data : jumlah bit data yang dapat dikirim – diterima mikroprosesor. Ukuran lain adalah jumlah bit dalam register. 

Tahun 1972 diperkenalkan dengan mikroprosesor 8008 yang merupakan mikroprosesor 8 bit. Mikroprosesor ini lebih kompleks instruksinya tetapi lebih cepat prosesnya dari pendahulunya

Klasifikasi Arsitektur Komputer

Mesin Von Neumann

Kriteria mesin Von Neumann :
1.   Mempunyai subsistem hardware dasar yaitu sebuah CPU,  sebuah memori dan sebuah I/O system
2.    Merupakan stored-program computer
3.   Menjalankan instruksi secara berurutan
4.   Mempunyai jalur (path) bus antara memori dan CPU

Mesin Non-Von Neumann

Pada tahun 1966, Flyyn mengklasifikasikan arsitekturkomputer berdasarkan sifatnya yaitu :
1.   Jumlah prosesor
2.   Jumlah program yang dapat dijalankan
3.   Struktur memori

Menurut Flyyn ada 4 klasifikasi komputer :

1.   SISD (Single Instruction Stream, Single Data Stream)
2.   SIMD (Single Instruction Stream, Multiple Data Stream)
3.   MISD (Multiple Instruction Stream, Single Data Stream)
4.   MIMD (Multiple Instruction Stream, Multiple Data Strea

 

KUALITAS ARSITEKTUR KOMPUTER


Generalitas

Generalitas adalah ukuran besarnya jangkauan aplikasi yang bisa cocok dengan arsitektur.  dan computer yang terutama digunakan untuk aplikasi bisnis menggunakan aritmetik decimal. Sistem umum memberikan dua jenis aritmetik. Salah satu pembahasan utama oleh kalangan peneliti komputer selama tabun 1980-an adalah persoalan bagusnya generalitas.
Salah satu argumen komersial dalam menerapkan generalitas adalah bahwa, karena ia menyebabkan perancangan komputer menjadi sulit, malm perusahaan yang melakukan perancangan tersebut bisa mengurangi peniruan rancangan oleh perusahaanlain.

Daya Terap

Daya terap (applicability) adalah pemanfaatan arsitektur untuk penggunaan yang telah direncanakannya. Buku ini membahas komputer yang terutama dirancang untuk satu dari dua area aplikasi utama : (1) aplikaSi ihniah dan teknis dan (2) aplikasi komersil biasa.  Aplikasi ilmiah dan teknis adalah aplikasi yang biasanya untuk memecahkan persamaan kompleks dan untuk penggunaan aritmetik floating point ekstensif.

Efisiensi

Efisiensi adalah ukuran rata-ratajumlah hardware dalam komputer yang selalu sibuk selama penggunaannya biasa.  Arsitektur yang efisien memungkinkan (namun tidak memastikan) terjadinya implementasi yang efisien. Salah satu sifat arsitektur yang efisien adalah bahwa ia secara relative cenderung sederhana. Karena untuk merancang sistem yang kompleks secara benar begitu sulit, maka kebanyakan komputer mempunyai sebuah komputer inti (core computer) efisien yang sederhana, yaitu CU.

Kemudahan Penggunaan

Kemudahan penggunaan arsitektur adalah ukuran kesederhanan bagi programmer sistem untuk mengembangkan atau membuat software untuk arsitektur tersebut, misalnya sistem pengoperasiannya atau compilemya. Oleh karena itu, kemudahan penggunaan ini merupakan fungsi ISA dan berkaitan erat dengan generalitas.

Daya Tempa (malleability)

Dua ukuran yang terakhir daya tempa dan daya kembang umumnya berlaku untuk implementasi computer dalam satu rumpun. Daya terap arsitektur adalah ukuran kemudahan bagi perancang untuk mengimplementasikan komputer (yang mempunyai arsitektur itu) dalam jangkauan yang luas. Pada Apple Macintosh atau IBM PC AT, spesifIkasi arsitektumya jauh lebih lengkap, sehingga semua implementasi hampir sama.

Daya Kembang

Daya kembang (expandability) adalah ukuran kemudahan bagi perancang untuk meningkatkan kemampuan arsitektur, misalnya kemampuan ukuran memori maksimumnya atau kemampuan aritmetiknya. Dalam hal ini, daya kembang juga berkaitan dengan jumlah CPU yang dapat digunakan oleh system secara efektif. Barrier (penyangga) pada komputer yang mempunyai CPU lebih dari satu umumnya tidak jelas. Jika programmer sistem mendapatkan kesulitan untuk menyinkronkan CPU-CPU, rnisalnya, maka sinkronisasi ini secara efektif akan membatasi jumlah CPU yang dapat digunakan sistem.
FAKTOR YANG MEMPENGARUHI KEBERHASILAN ARSITEKTUR KOMPUTER

1.   Manfaat Arsitektural

 Ada empat ukuran pokok yang menentukan keberhasilan arsitektur, yaitu manfaat arsitekturalnya (architectural merit) :
·         Daya terap Sebaiknya, arsitektur ditujukan untuk aplikasi yang telah ditentukan.
·         Daya tempa. Bila arsitekturlebih mudah membangunsistem yang kecil, maka  ia akan lebih baile.
·         Daya kembang. Lebih besar daya kembang arsitektur dalam daya komputasi,     ukuran memori, kapasitasI/O, dan jumlah prosesor,maka ia kan lebih baile.
·         Kompatibilitas (daya serasi-pasang).

2.   Keterbukaan arsitektur

 Arsitektur dikatakan open (terbuka) bila perancangnya mempublikasikan spesifikasinya

3.   Keberadaan model pemrograman yang kompatibel don bisa dipahami.

Beberapa komputer yang berparalel tinggi begitu sulit untuk digunakan, sehingga ia hanya menjadi daya tarik bagi para analis untuk menemukan cara baru untuk menggunakannya.

4.   Kualitas implementasi awal.

Ada beberapa komputer yang nampaknya merupakan mesin yang baik, yang mempunyai software dan sifat operasional yang baik.

5.   Kinerja Sistem

Kinerja sistem sebagian ditentukan oleh kecepatan komputer. Untuk mengukur kinerja komputer, para arsitek menjalankan serangakian program yang standart, yang disebut benchmark,pada komputer. Benchmark ini memungkinkan arsitek untuk menentukan kecepatan relatif dari semua komputer yang menjalankan benchmark tersebut dan menentukan kecepatan absolute dari tiap komputer. Hasilnya bermanfaat bagi arsitek untuk melaporkan kinerja sistem dengan menggunakan berbagai performance metrics (metrik kinerja).

6.   Biaya Sistem

Bagian pokok dari biaya sistem computer adalah biaya peralatan logika dasarnya, yang sangat bervariasi dari peralatan satu dengan yang lainnya.  beberapa aplikasi dengan metrik tersebut diperlukan adalah :
·         Reliabilitas (keandalan) adalah sangat diperlukan oleh computer yang digunakan untuk mengontrol penerbangan, mengontrol kearnanan instalasi nuklir, atau kegiatan apa saja yang mempertaruhkan keselarnatan manusia.
·         Kemudahan perbaikan khususnya penting bagi komputer yang mempunyai jumlah komponen yang besar.


Struktur dasar computer dan organisasi computer

Diantaranya :
1.   Central Processing Unit (CPU): Mengontrol operasi komputer dan membentuk fungsi-fungsi pengolahan datanya. Seringkali CPU cukup disebut sebagai processor (prosesor) saja.
2.   Memori utama: Menyimpan data.
3.   I/O: Memindahkan data antara komputer dengan lingkungan luarnya.
4.   System Interconnection: Beberapa mekanisme komunikasi antara CPU, memori utama dan I/O.
Adapun komponen-komponen struktur utama dari CPU adalah sebagai berikut :
1.   Control Unit: Mengontrol operasi CPU dan pada gilirannya mengontrol komputer.
2.    Arithmetic and Logic Unit (ALU): Membentuk fungsi-fungsi pengolahan data  komputer.
3.   Register: Sebagai penyimpan internal bagi CPU.