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://74.125.153.132/search?q=cache:bBIGdjsFawwJ:margono.staff.uns.ac.id/files/2009/06/set-instruksi.ppt+set+arsitektur+instruksi&cd=8&hl=id&ct=clnk&gl=id (senin, 15 feb 2010, 11.08 WITA)
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
0 komentar:
Post a Comment