Monday, April 13, 2015

Makalah tentang Pengantar Arsitektur Komputer ( Arsitektur Set Instruksi )

BAB I
PENDAHULUAN

A. Latar Belakang
Makalah Pengantar Arsitektur Komputer ini disusun sebagai salah satu tugas awal yang diberikan kepada Mahasiswa oleh dosen mata kuliah Pengantar Arsitektur Komputer guna menjadi acuan untuk tugas-tugas berikutnya. Serta membantu mahasiswa agar memiliki dasar dari Arsitektur Komputer itu sendiri selama proses perkuliahan berlangsung dan meminimalir adanya remedial atau pengulangan materi ajar ini.

B. Rumusan masalah
Ada beberapa hal yang ingin dicapai dalam makalah ini, yaitu mengetahui dan memahami tentang arsitektur set instruksi dimana di dalamnya terdapat beberapa pokok pembahasan yakni mengenai Set Register, Jenis Instruksi, Teknik Pengalamatan, dan Desain Set Instruksi.

C. Tujuan
Selain sebagai tugas awal, nantinya semoga makalah ini dapat menjadi acuan dasar untuk proses pembelajaran di dalam kelas, dan bagi mahasiswa lain yang ingin melakukan suatu penelitian ataupun hanya sekedar menjadi referensi dalam penulisan makalah ini.

D. Manfaat
Semoga makalah fisika teknik ini dapat memberikan manfaat yang positif bagi setiap pembacanya, entah itu dalam hal penambahan pengetahuan ataupun yang lainnya. Tidak hanya bagi kalangan mahasiswa tapi juga kalangan masyarakat luas.

  BAB II
PEMBAHASAN
Arsitektur Set Instruksi
Set instruksi merupakan batasan dimana perancang komputer dan programmer komputer dapat melihat perangkat keras komputer dengan cara yang sama. Set instruksi adalah instruksi lengkap yang diapahami oleh CPU. Dengan demikian, pengujian set instruksi akan sama dengan menjelaskan CPU komputer itu sendiri. Setiap instruksi berisi empat informasi dasar, sebagai berikut :
1. Kode Operasi (Operation Code)
2. Acuan Operand Sumber (Source Operand References)
3. Acuan Hasil (Result Reference)
4. Acuan Instruksi Berikutnya (Next Instruction Reference)
Tipe-tipe instruksi
1. Pemrosesan Data (Data Processing)
2. Penyimpanan Data (Data Storage - Main Memory)
3. Pemindahan Data (Data Movement – I/O)
4. Kendali Aliran Program (Program Flow Control)
Sebuah set instruksi harus berfungsi secara lengkap. Ada lima kategori instruksi, yakni Operasi Aritmatika, Operasi Logic, Perpindahan Data, I/O, Operasi Kontrol. Set instruksi telah dirancang dengan mempertimbangkan kecenderungan sekarang untuk menggunakan secukupnya tetapi mampu mengerjakan banyak hal.

A. Set Register
Register adalah rangkaian logika yang digunakan untuk menyimpan data. Dengan kata lain, register adalah rangkaian yang tersusun dari satu atau beberapa flipflop yang digabungkan menjadi satu. Flipflop disebut juga sebagai register 1 bit. Jadi untuk menyimpan 4 bit data, register harus terdiri dari 4 buah flipflop. Untuk menyimpan data pada register, dapat dilakukan dengan dua cara :
1. Disimpan secara sejajar (Parallel In) :
Pada cara ini semua bagian register atau masing-masing flipflop diisi (dipicu) pada saat yang bersamaan.
2. Disimpan secara seri (Serial In) :
Pada cara ini, data dimasukkan bit demi bit mulai dari flip-flop yang paling ujung (dapat dari kiri atau dari kanan), dan digeser sampai semuanya terisi. Bila data digeser dari kanan kekiri disebut “Register geser kiri” (Shift Left Register), sebaliknya bila data digeser dari kiri kekanan disebut “Register geser kanan” (Shift Right Register). Register selain digunakan sebagai penyimpan data, juga sering digunakan sebagai Counter (lihat modul 2.2.6) dan operasi bilangan / ALU (lihat modul 3). Seperti pada penyimpanan data, untuk mengeluarkan data juga dapat dilakukan dengan dua cara :
1. Dikeluarkan secara sejajar (Parallel Out)
2. Dikeluarkan secara seri (Serial Out)

a.  Parallel In - Parallel Out (PIPO)
Perhatikan gambar berikut :

Gambar II.1

Register PIPO, mempunyai jalur masukan dan keluaran sesuai dengan jumlah flip flop yang menyusunnya. Pada jenis ini data masuk dan keluar secara serentak.
b. Serial In – Serial Out (SISO)
Perhatikan Gambar berikut :
 Gambar II.2


Pada register SISO, jalur masuk data berjumlah satu dan jalur keluaran juga berjumlah satu. Pada jenis register ini data mengalami pergeseran, flip flop pertama menerima masukan dari input, sedangkan flip flop kedua menerima masukan dari flip flop pertama dan seterusnya.

c. Parallel In – Serial Out (PISO)
 Gambar II.3

Register PISO, mempunyai jalur masukan sejumlah flip flop yang menyusunnya, dan hanya mempunyai satu jalur keluaran. Data masuk kedalam register secara serentak dengan di kendalikan sinyal kontrol, sedangkan data keluar satu per satu (secara serial).

d. Serial In – Parallel Out (SIPO)


Gambar III. 4

Register SIPO, mempunyai satu saluran masukan saluran keluaran sejumlah flip flop yang menyusunnya. Data masuk satu per satu (secara serial) dan di keluarkan secara serentak. Pengeluaran data dikendalikan oleh sebuah sinyal kontrol. Selama sinyal kontrol tidak diberikan, data akan tetap tersimpan dalam register.

B. Jenis Instruksi
Jenis-Jenis Instruksi
a. Instruksi-instruksi Pemindahan Data
Ada dua alasan bahwa data tidak boleh disalin dari satu lokasi ke lokasi lainnya. Alasan pertama yang mendasar adalah : penentuan nilai-nilai variabel-variabel. Penentuan
A = B
diimplementasikan dengan menyalin nilai pada alamat memori B ke lokasi A karena pemrogram telah meminta untuk melakukan ini. Alasan kedua untuk menyalin data adalah mentahapkan data itu demi akses dan penggunaan yang efisien. Karena ada dua sumber yang mungkin untuk sebuah item data (memori atau register), dan ada dua tujuan yang mungkin untuk sebuah item data (memori atau register), maka ada empat macam bentuk penyalinan yang mungkin. Komputer-komputer yang lain memiliki satu instruksi untuk seluruh keempat kasus ini.  
b. Operasi-operasi Diadik
Operasi-operasi Diadik adalah operasi-operasi yang menggabungkan dua operand untuk memberikan suatu hasil. Kelompok operasi-operasi diadik yang lain mencakup instruksi-instruksi Boolean. Meskipun 16 fungsi Boolean dengan dua variabel ada beberapa, mesin memiliki instruksi-instruksi untuk seluruh 16 fungsi tersebut. 
c. Operasi-operasi Monadik
Operasi-operasi monadik memiliki satu operand dan menghasilkan satu hasil. Pada operasi monadik instruksi-instruksi untuk menggeser atau merotasikan isi-isi dari sebuah word atau byte yang sangat bermanfaat dan dilakukan dalam beberapa variasi.
d. Perbandingan-perbandingan dan Cabang-cabang Bersyarat
Metode umum untuk melakukan demikian adalah meyediakan instruksi-instruksi cabang bersyarat yang menguji kondisi dan cabang tertentu untuk suatu alamat memori tertentu jika kondisi tersebut terpenuhi.
e. Instruksi-instruksi Procedure call
Suatu prosedur adalah sekelompok instruksi-instruksi yang menjalankan tugas tertentu dan yang dapat dipanggil dari beberapa tempat dalam program. Suatu perkembangan kecil adalah meminta instruksi panggilan prosedur menyimpan alamat kembali dalam word pertama dari prosedur itu, dengan instruksi yang dapat dijalankan pertama ditempatkan di kata kedua. Kemudian prosedur itu dapat kembali dengan mencabangkan secara langsung ke kata pertama atau, jika hardware menempatkan opcode untuk cabang di kata pertama bersama dengan alamat kembali, dengan membuat cabang secara langsung ke kata tersebut. Prosedur itu bisa memanggil prosedur-prosedur lain, karena setiap prosedur memiliki ruang untuk satu alamat kembali.
f. Kontrol Loop
Semua skema mencakup sebuah pencacah yang dinaikkan ata diturunkan oleh konstanta tertnetu setiap kali melewati loop. Pencacah itu juga diuji setiap kali melewati loop. Jika suatu kondisi tertentu tidak berubah, loop tersebut akan berhenti.
g. Input/Output
Dibanding dengan kelompok instruksi-instruksi lain, instruksi-instruksi I/O memiliki begitu banyak variasi di antara mesin yang satu dengan yang lain. Ada tiga skema I/O yang kini telah digunakan dalam komputer-komputer pesonal. Ketiga skema itu adalah 
I/O terprogram dengan penundaan kesibukan
I/O yang digerakkan ulih interupsi
I/O DMA
h. Perbandingan Kumpulan-kumpulan Instruksi
Setiap mesin adalah cara mesin itu untuk digunakan untuk suatu tujuan yang baik. Dengan adanya kecanggihan teknologi dewasa ini, tidak seorang pun saat ini akan merancang mesain tidak teratur semacam itu dengan register-register yang begitu sedikit, yang seluruhnya berbeda.

C. Teknik Pengalamatan
  Teknik Pengalamatan
Untuk menyimpan data ke dalam memori komputer, tentu memori tersebut diberi identitas (yang disebut dengan alamat/ address) agar ketika data tersebut diperlukan kembali, komputer bisa mendapatkannya sesuai dengan data yang pernah diletakkan di sana. Teknik pengalamatan ini hampir sudah tidak diperlukan lagi oleh pemakai komputer saat ini karena hampir seluruh software yang beredar di pasaran tidak mengharuskan si pemakai menentukan di alamat mana datanya akan disimpan (semua sudah otomatis dilakukan oleh si software). Jadi, yang kita pelajari adalah bagaimana kira-kira si software tersebut melakukan teknik pengalamatannya, sehingga data yang sudah kita berikan dapat disimpan di alamat memori tertentu dan dapat diambil kembali dengan tepat.
Ada 3 teknik dasar untuk pengalamatan, yakni 1. Pemetaan langsung (direct mapping) yang terdiri dari dua cara yakni Pengalamatan Mutlak (absolute addressing) dan Pengalamatan relatif (relative addressing), 2. Pencarian Tabel (directory look-up), dan 3. Kalkulasi (calculating).
1. Teknik Pemetaan Langsung
a. Pengalamatan mutlak
Pandang, kita memiliki data teman-teman sekelas kita yang akan kita masukkan ke dalam memori (misal hard disk), data tersebut berjumlah 50 orang yang masing-masing terdiri atas atribut-atribut : NIM, NAMA, dan ALAMAT RUMAH.
Jika data tersebut kita masukkan dengan organisasi file sequential, maka jika kita mencari data NIM = ‘10105787’ yang namanya ‘ALI’ dan beralamat di ‘Jl. Margonda No. 100, Depok’, maka pencarian akan dilakukan mulai dari record pertama (data pertama yang dimasukkan), dan seterusnya menuju ke record terakhir sampai ketemu data yang dicari tersebut.
Untuk teknik pengalamatan ‘alamat mutlak’ ini, kita tidak terlalu mempermasalahkan kunci atribut karena kita diminta langsung menuliskan di mana alamat record yang akan kita masukkan. Jika kita menggunakan hard disk atau magnetic drum, ada dua cara dalam menentukan alamat memorinya, yaitu (1) cylinder addressing dan (2) sector addressing. Jika kita menggunakan cylinder addressing, maka kita harus menetapkan nomor-nomor dari silinder (cylinder), permukaan (surface), dan record, sedangkan bila kita menggunakan sector addressing, maka kita harus menetapkan nomor-nomor dari sektor (sector), lintasan (track), dan permukaan (surface). Teknik ini mudah dalam pemetaan (pemberian) alamat memorinya. Sulitnya pada pengambilan (retrieve) data kembali, jika data yang kita masukkan banyak, kita bisa lupa di mana alamat record tertentu, misalkan apakah kita ingat nomor record dari data NIM = ‘10105787’ yang namanya ‘ALI’ dan beralamat di ‘Jl. Margonda No. 100, Depok’ ?, apakah kita harus menghafal selamanya alamat-alamat tersebut ?. Pelajari keuntungan dan kerugian lainnya.
Teknik ini dapat dijuluki dengan device dependent (tergantung pada peralatan rekamnya), artinya, kita tidak dapat begitu saja meng-copy data berkas ini ke komputer lainnya, karena mungkin saja di komputer lainnya itu menggunakan alat rekam yang berbeda spesifikasinya.
Teknik ini juga dapat dijuluki dengan address space dependent (tergantung pada alamat-alamat yang masih kosong), artinya, kita tidak dapat begitu saja meng-copy data berkas ini ke komputer lainnya, karena mungkin saja di komputer lainnya itu alamat-alamat yang dibutuhkan sudah tidak tersedia lagi.
b. Pengalamatan Relatif
Teknik ini menjadikan atribut kunci sebagai alamat memorinya, jadi, data dari NIM dijadikan bertipe numeric(integer) dan dijadikan alamat dari record yang bersangkutan. Cara ini memang sangat efektif untuk menemukan kembali record yang sudah disimpan, tetapi sangat boros penggunaan memorinya. Tentu alamat memori mulai dari 1 hingga alamat ke sekian juta tidak digunakan karena nilai dari NIM tidak ada yang kecil. Pelajari keuntungan dan kerugian lainnya.Teknik ini termasuk dalam katagori address space dependent.
2. Teknik Pencarian Tabel
Teknik ini dilakukan dengan cara, mengambil seluruh kunci atribut dan alamat memori yang ada dan dimasukkan ke dalam tabel tersendiri. Jadi tabel itu (misal disebut dengan tabel INDEX) hanya berisi kunci atribut (misalkan NIM) yang telah disorting (diurut) dan alamat memorinya.
Jadi, sewaktu dilakukan pencarian data, tabel yang pertama dibaca adalah tabel INDEX itu, setelah ditemukan atribut kuncinya, maka data alamat yang ada di sana digunakan untuk meraih alamat record dari data (berkas/ file/ tabel) yang sebenarnya. Pencarian yang dilakukan di tabel INDEX akan lebih cepat dilakukan dengan teknik pencarian melalui binary search (dibagi dua-dua, ada di mata kuliah Struktur dan Organisasi Data 2 kelak) ketimbang dilakukan secara sequential.
Nilai key field (kunci atribut) bersifat address space independent (tidak terpengaruh terhadap perubahan organisasi file-nya), yang berubah hanyalah alamat yang ada di INDEX-nya.
3. Teknik Kalkulasi Alamat
Kalau pada teknik pencarian tabel kita harus menyediakan ruang memori untuk menyimpan tabel INDEX-nya, maka pada teknik ini tidak diperlukan hal itu. Yang dilakukan di sini adalah membuat hitungan sedemikian rupa sehingga dengan memasukkan kunci atribut record-nya, alamatnya sudah dapat diketahui. Tinggal masalahnya, bagaimana membuat hitungan dari kunci atribut itu sehingga hasilnya bisa efisien (dalam penggunaan memori) dan tidak berbenturan nilainya (menggunakan alamat yang sama).
Misal, untuk data si ALI di atas yang memiliki NIM = ‘10105787’, di mana akan kita letakkan ?. Bila yang kita lakukan adalah perhitungan : INT(VAL(NIM)/1000000) maka haslinya adalah 10, dengan demikian data si ALI akan disimpan di alamat 10. Tapi, apakah alamat 10 itu tidak akan digunakan oleh data lain dengan perhitungan yang sama ?, ternyata tidak. Untuk data si BADU yang NPMnya ’10105656’ juga di alamat tersebut, dan ternyata masih banyak juga yang ’rebutan’ untuk menempati alamat tersebut jika dilakukan dengan perhitungan seperti di atas.
Perhitungan (kalkulasi) terhadap nilai kunci atribut untuk mendapatkan nilai suatu alamat disebut dengan fungsi hash. Bisa juga fungsi hash digabungkan dengan teknik pencarian seperti tabel di atas, tetapi akan menjadi lebih lama pengerjaannya dibanding hanya dengan satu jenis saja (fungsi hash saja atau pencarian tabel saja).
 
D. 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:
1. Operation Repertoire: Berapa banyak dan operasi apa saja yang   disediakan, dan berapa sulit operasinya
2. Data Types: tipe/jenis data yang dapat olah Instruction Format: panjangnya, banyaknya alamat, dsb.
3. Register: Banyaknya register yang dapat digunakan
4.Addressing: Mode pengalamatan untuk operand

a. Format Instruksi
Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).


 
b. Jenis Instruksi
1.      Data processing: Arithmetic dan  Logic Instructions
2.      Data storage: Memory instructions
3.      Data Movement: I/O instructions
4.      Control: Test and branch instructions
c. Transfer Data
1. Menetapkan lokasi operand sumber dan operand tujuan.
2. Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
3. Menetapkan panjang data yang dipindahkan.
4. Menetapkan mode pengalamatan.
5. Tindakan CPU untuk melakukan transfer data adalah :
a. Memindahkan data dari satu lokasi ke lokasi lain.
b. Apabila memori dilibatkan :
Menetapkan alamat memori.
Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
Mengawali pembacaan / penulisan memori
6. 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 bagian paling atas sumber

 BAB III
PENUTUP
Kesimpulan
Set Instruksi atau Instruction Set Architecture (ISA) didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, 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). ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.
ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400.
TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya.Ketika mendesain mikroarsitektur, para desainer menggunakan Register Transfer Language (RTL) untuk mendefinisikan operasi dari setiap instruksi yang terdapat dalam ISA.
Sebuah ISA juga dapat diemulasikan dalam bentuk perangkat lunak oleh sebuah interpreter. Karena terjadi translasi tambahan yang dibutuhkan untuk melakukan emulasi, hal ini memang menjadikannya lebih lambat jika dibandingkan dengan menjalankan program secara langsung di atas perangkat keras yang mengimplementasikan ISA tersebut. Akhir-akhir ini, banyak vendor ISA atau mikroarsitektur yang baru membuat perangkat lunak emulator yang dapat digunakan oleh para pengembang perangkat lunak sebelum implementasi dalam bentuk perangkat keras dirilis oleh vendor.

  DAFTAR PUSTAKA
http://id.wikipedia.org/wiki/Set_instruksi (senin, 15 feb 2010, 11.10 WITA)
Tanenbaum, Andrew S. Organisasi Komputer Terstruktur. Penerbit : Salemba Teknika, Jakarta. 2001.
Willa, Lukas. Teknik Digital, Mikroprosesor dan Mikrokomputer. Penerbit : Informatika, Bandung. 2007

Tag : Pengantar Arsitektur Komputer, Arsitektur Set Instruktion
Reaksi:

0 komentar:

Post a Comment