arsitektur komputer

Upload: andi1993

Post on 30-Oct-2015

60 views

Category:

Documents


0 download

DESCRIPTION

arsikom

TRANSCRIPT

  • ARSITEKTUR KOMPUTERM. FURQONUDDIN (H1C011018)AZIS JUANDI (H1C011049)MUH. MILKY YUDHA P. (H1C011053)M. LUKMAN WAHYUDI (H1C011060)MARLITA DWI Y. (H1C011061)Set Instruksi : Karakteristik & Fungsi

  • KARAKTERISTIK-KARAKTERISTIK INSTRUKSI MESINKumpulan fungsi yang dapat dieksekusi oleh CPU disebut set Instruksi (Instruction Set).

    Agar dapat dieksekusi, setiap instruksi harus berisi informasi yang diperlukan oleh CPU.

  • Elemen-elemen Instruksi MesinOperation Code ( opcode)Source Operand Reference Result Operand ReferenceNext Instruction Reference

  • Sumber dan hasil operand dapat berada di salah satu dari ketiga daerah dibawah ini:

    Main Memory (atau Virtual Memory)CPU RegisterI/O Device

  • Representasi InstruksiInstruksi direpresentasikan oleh sekumpulan bit.Instruksi dibagi menjadi beberapa field.Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format). 4 bit 6 bit 6 bit

    16 bit

    Op CodeReferensi OperandReferensi Operand

  • Jenis-Jenis InstruksiPengolahan DataPenyimpanan Data (Memori Utama)Perpindahan DataKontrol

  • Jumlah AlamatInstruksi aritmetika dan logika memerlukan operand yang berjumlah banyak.Jumlah alamat per instruksi ditentukan rancangan dasarnya.Lebih banyak alamatLebih sedikit alamat

  • Number of Addresses3 AddressesSetiap instruksi menspesifikasikan dua lokasi operand dan sebuah lokasi hasil operasi2 AddressesDengan memakai instruksi dua alamat, dan pada operasi biner, sebuah alamat harus melakukan tugas ganda untuk hasil dan operand-nya

  • Number of Addresses1 AddressesInstruksi satu alamat lebih sederhana. 0 AddressesOperasi tanpa alamat (alamat nol). Dapat diterapkan bagi organisasi memori khusus, yang disebut stack. Instruksi alamat nol akan mereferensi dua buah elemen stack.

  • Rancangan Set InstruksiSet instruksi Menentukan banyak fungsi yang dilakukan CPU.Rancangan fundamental dalam set instruksi:Repertoir operasiJenis dataFormat instruksiRegisterPengalamatan

  • Pengertian OperandInstruksi mesin untuk mengoperasikan dataKategori data umum yang sangat penting adalah :Alamat BilanganKarakterData Logika

  • Numerik/BilanganPerbedaan dengan bilangan matematika dengan bilangan komputer adalah bilangan komputer sangat terbatas.Perbedaan tersebut disebabkan oleh :Keterbatasan bilangan yang dapat direpresentasikan pada mesin.pemrograman dihadapkan dengan konsekuensi pembulatan (rounding), overflow/kelebihan penghitungan, dan underflow/kekurangan penghitungan.

  • Tiga jenis data numerik yang terdapat pada komputer :Integer (Bilangan Bulat) atau Fixed PointFloating Point atau Bilangan yang sangat besar/sangat kecilDecimal (Desimal)

    Untuk aplikasi dengan keperluan I/O dan komputasi yang relatif kecil, maka akan lebih cocok untuk menyimpan dan melakukan operasi bilangan dalam bentukk desimal.

  • Setiap digit desimal direpresentasikan dengan sebuah kode 4 bit. Jadi, 0=0000(2), 1=0000(2),..., 8=1000(2), 9=1001(2)Kode ini tidak efisien krn hanya dapat memanfaatkan 10 nilai dari 16 buah nilai 4 bit yang dapat digunakan. Namun dapat menghindari overhead konversi (konversi berlebihan).

  • KarakterKode karakter yang paling umum dipakai di Amerika Serikat adalah kode ASCII (American Standard Code for Information Interchange).Setiap karakter di dalam kode ini direpresentasikan dengan pola 7 bit yang unik, dengan demikian terdapat representasi 128 buah karakter.Karakter ASCII hampir selalu dapat disimpan dan ditransmisikan dengan menggunakan 8 bit/karakter.

  • Data LogikaSetiap word/unit lain yg dapat dialamati diperlakukan sebagai satu satuan data.Satuan data berguna untuk mempertimbangakan satuan n-bit sebagai berisi n butir (item) data 1-bit, yang mana masing-masing memiliki nilai 0 atau 1. Ini disebut sebagai Data Logika.

  • Jenis-jenis Data PentiumPentium dapat mengoperasikan jenis data yang panjanganya :8 bit (byte)3. 32 bit (doubleword)16 bit (word)4. 64 bit (quadword)Byte, word, doubleword, dan quardword dikenal sebagai jenis data umum.Jenis floating point berkaitan dengan jenis yang digunakan oleh satuan floating point dan dioperasikan pada instruksi instruksi floating point. Seperti gambar 9.4

  • Jenis-jenis Data Pentium

    Jenis DataUraianUmum

    IntegerOrdinalUnpacked Binary Coded Decimal (BCD)Packed BCDNear Pointer

    Bit Field

    Byte StringLokasi-lokasi byte, word (16 bit) doubleword (32 bit), dan quardword (64 bit) dengan isi sembarang bilangan binerNilai biner bertanda yang terdapat dalam byte,word,atau doublewordInteger tak bertanda yang terdapat dalam byte,word,atau doublewordRepresentasi digit BCD pada range 0 hingga 9, dengan 1 digit dalam masing-masing byte-nyaRepresentasi packed byte 2 buah digit BCD, nilainya berada pada range 0 sampai 9Alamat efektif 32-bit yang merepresentasikan offset dalam segment. Digunakan untuk seluruh pointer dalam memori dan tidak bersegmen dan untuk referensi dalam sebuah segmen pada memori yang bersegmenSejumlah bit yang berdekatan yang posisi setiap bit-nya dianggap sebagai unit yang independen. Sebuah bit string dapat berawal pada sembarang posisi dari sembarang byte dan dapat berisi sampai dengan 232-1 bit.Sejumlah byte, word, atau doubleword yang bredekatan yang berisi mulai 0 sampai dengan 232-1 byte.

  • Keuntungan Data Logika dibandingkan Cara Pandang Bit:

    Penyimpanan data dalam memori dapat lebih efisien.Terdapat suatu kebiasaan tertentu pada saat kita akan memanipulasi bit-bit butir data.

  • Jenis-jenis operasiTrasfer dataAritmetikaLogikaKonversiI/OKontrol systemTransfer kontrol

  • Transfer DataInstruksi transfer data:Menetapkan lokasi operand sumber dan tujuan.Menetapkan panjang data yang dipindah.Menetapkan mode pengalamatan setiap operand.

  • AritmetikaOperasi aritmetika dasar:PenambahanPenguranganPerkalianPembagian

  • Instruksi operand tunggal:AbsoluteNegateIncrementDecrement

  • LogikaMerupakan operasi komplemenDigunakan untuk memanipulasi bit suatu word.Contoh: AND, OR, NOT, dll

  • KonversiInstruksi konversi instruksi yang mengubah format atau instruksi yang beroperasi terhadap data.Misal: biner desimal.

  • Input/OutputFungsi melakukan komunikasi.Instruksinya spesifikDilakukan dengan instruksi perpindahan data (pemetaan memori)

  • Kontrol SistemInstruksi kontrol sistem hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu Contoh : sebuah instruksi untuk membaca atau mengubah kunci proteksi penyimpanan seperti yang digunakan pada sistem memori S/370

  • Pemindahan KontrolPercabangan / BranchLewati / skipSubroutine Call / Call Subrutin

  • Percabangan / Branch Disebut instruksi jumpMemiliki sebuah operand yang berisi alamat berikutnya yang akan dieksekusiDibagi 2 : percabangan bersyarat dan tidak bersyarat

  • Instruksi SkipMencakup alamat yang diimplikasikan.Menyatakan bahwa sebuah instruksi dapat dilewati.Tidak memerlukan field alamat tujuan.

  • Instruksi Call SubrutinSubrutin adalah sebuah program komputer yang merupakan bagian dari program yang lebih besar.Dapat dipanggil dari sembarang lokasi di dalam komputer.Subrutin memungkinkan potongan kode yang sama digunakan berkali-kali.Tugas pemrograman yg besar dapat dipecah menjadi bagian yg lebih kecil.

  • Mekanisme SubrutinInstruksi pemanggilan bercabang dari suatu lokasi ke subrutin.Instruksi kembali, mengembalikan subrutin ke tempat subrutin dipanggil.Kedua instruksi tersebut merupakan instruksi-instruksi percabangan.

  • Hal-hal yg perlu diperhatikan mengenai Subrutin :Dapat dipanggil dari lebih satu lokasi.Subrutin dapat muncul dalam sebuah subrutin.Setiap pemanggilan diikuti dengan sebuah pernyataan RETURN.

  • Jenis Jenis Operasi PentiumDimaksudkan untuk menyediakan sarana bagi penulis kompiler agar dapat menerjemahkan bahasa mesin program-program bahasa tinggi secara optimal

  • Operasi operasi set intruksi yang umumPerpindahan DataInstruksiUraianMovememindahkan word dari sumber ke tujuan.Storememindahkan word dari prosesor ke memoriLoadmemindahkan word dari memori ke prosesorExchangemenukar isi sumber dengan tujuanClearmemindahkan word 0 ke tujuanSetmemindahkan word 1 ke tujuanPushmemindahkan word dari sumber ke bagian paling atas stackPopmemindahkan word dari bagian paling atas stack ke tujuan

  • AritmatikaInstruksiUraianAddmenghitung penjumlahan dua buah operandSubstractmenghitung pengurangan dua buah operandMultiplymenghitung perkalian dua buah operandDividemenghitung kuosien dua buah operandAbsolutemengganti operand dengan nilai absolutnyaNegatemengganti tanda operandIncrementmenambah 1 ke operandDeecrementmengurangi 1 ke operand

  • LogikaInstruksiUraianAndmelakukan operasi ANDORmelakukan operasi ORNOTmelakukan operasi NOTExclusive ORmelakukan operasi XORTestmenguji kondisi tertentuComparemelakukan perbandingan logika dua operand atau lebihShiftOperand menggeser ke kiri (kanan), menyebabkan konstanta pada ujung bitRotateOperand menggeser ke kiri (kanan), dengan ujung yang terjalin

  • Perpindahan KontrolInstruksiUraianJumpperpindahan tidak bersyarat, memuatkan PC dengan alamat-alamat tertentuJump bersyaratmemuatkan PC dengan alamat tertentu atau tidak melakukan apa-apa, tergantung pada persyaratanJump ke Subrutinmenempatkan informasi kontrol program saat itu dilokasi yang ditentukan, melompat ke alamat tertentuReturnMengganti isi PC dan register lainnya yang berasal dari lokasi tertentuExecutemengambil operand dari lokasi tertentu dan mengeksekusinya sebaga instruksi, tidak memodifikasi PCSkipmenambah PC sehingga melompati instruksi berikutnyaSkip Bersyaratmelompat atau tidak melakukan apa-apa, tergantung pada persyratanHaltmenghentikan eksekusi programWaitsama dengan Halt, tetapi juga menguji persyaratan tertentu secara berulang, dan melanjutkan eksekusi saat persyaratan dipenuhiNot operationtidak ada operasi program, tetapi eksekusi program dilanjutkan

  • Operasi Pada Power PcBerorientasi PencabanganInstruksiUraianb Pencabangan tidak bersyaratbl Bercabang kealamat sasaran dan menaruh alamat efektif instruksi yang berada setelah pencabangan kedalam link registerbc Pencabangan bersyarat pada Count Register dan/atau pada bit dalam Condition Register.sc System Call untuk membangkitkan layanan sistem operasitrap Membandingkan dua buah operand dan membangkitkan system trap handler bila persyaratan tertentu dipenuhi.

  • Load/StoreInstruksiUraianlwzu Memuatkan word dan nol kesebelah kiri; mengupdate register sumber.ld Memuatkan dobleword.lmw Memuatkan word ganda; memuatkan word berurutan ke register yang berdekatan dari register sasaran melalui General Purpose Register 31.Lswxmemuatkan suatu untaian byte kedalam register yang dimulai dengan register sasaran; empat byte per-register; diambil semua dari register 31 hingga register 0.

  • Arimatika IntegerInstruksiUraianadd Menjumlahkan isi dari dua buah integer dan menyimpannya dalam register ketigasubf Mengurangkan isi dua buah register dan menyimpannya dalam register ketiga.mullw Mengalikan isi dua buah register orde rendah 32-bit dan menyimpan hasil perkaliannya dalam register 64-bit ketiga.divd Membagi isi dua buah register 64-bit dan menyimpan kuosiennya dalam register ketiga.

  • Floating PointInstruksiUraianlfs Memuatkan bilangan floating point 32-bit dari memori, mengubahnya kedalam format 64 bit, dan menyimpannya dalam register floating point.fadd Menjumlahkan dua buah register floating point dan menyimpannya dalam register ketiga.fmadd Mengalikan isi dua buah register, menambahkan isi register ketiga, dan menyimpan hasilnya dalam regiater keempat.fcmpu Membandingkan dua buah operand floating point dan menyetel bit-bit kondisi.

  • Manajemen CacheInstruksiUraiandcbf Membersihkan (flush) blok data cache; melakukan lookup dalam cache yang terdapat pada alamat sasaran tertentu dan melakukan operasi pembersihan.icbi Menginvalidasikan instruksi blok cache

  • Operasi PentiumData MovementInstruksi UraianMovmemindahkan operand antara register dengan register atau register dengan memoriPushmemasukkan operand ke stackPushamemasukkan seluruh register ke stackMovsxmemindahkan byte, work, dword, sign extendedLeamemuatkan alamat efektif, memungkinkan offset operand sumber, bukan nilainya operand yang ditujuXlatTranslasi table lookupIn, Outoperand input, output dari ruang I/O

  • AritmatikaInstruksiUraianAddoperand menambahkanSuboperand mengurangkanMulInteger tanpa tanda multipication, dengan byte, word, operand word, word ganda, dan quadword resultIdiv membagi

  • LogikaInstruksiUraianAndoperand-operand andBtsTest and set bitBsfBit scan forwardShl/ShlShift logika ke kiri atau ke kananSal/SarShift Aritmatika ke kiri atau ke kananRol/Rorrotasi ke kiri atau ke kananSETccmengeset sebuah bit menjadi 0 atau 1 yang tergantung pada salah satu 16 kondisi yang ditentukan oleh flag status

  • Kontrol TransferInstruksiUraianJmplompatan tidak bersyaratCallkontrol transfer ke lokasi lainJe/Jzlompat apabila sama/nolLoopemelakukan pengulangan jika sama/nolInt/IntoInterupt jika overflow. Kontrol transfer ke rutin layanan interupt

  • Stack

    Apa itu stack??

  • Alamat yang biasa didalam register-register CPU

    Stack pointerStack baseStack limit

  • Little-endian dan big-endian Kelebihan jenis big-endian:Character-string sortingDecimal/ASCII dumpsConsistent order

  • Kelebihan jenis little-endian:Integer address coversionArithmetic