840 likes | 1.38k Views
TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER. Pokok Bahasan : Instruction Sets Addressing Modes & Format Disusun oleh : Sutriono Azhari rahmadi lubis Eka cahya UNIVERSITAS INDRAPRASTA PGRI JAKARTA. BAB I INSTRUCTION SETS. Apakah instruksi set itu ? Elemen-elemen instruksi
E N D
TEMA:ARSITEKTUR DAN ORGANISASI KOMPUTER PokokBahasan: Instruction Sets Addressing Modes & Format Disusunoleh: Sutriono Azharirahmadilubis Ekacahya UNIVERSITAS INDRAPRASTA PGRI JAKARTA
BAB IINSTRUCTION SETS • Apakahinstruksi set itu? • Elemen-elemeninstruksi • Macam-macaminstruksi • Berapabanyak address digunakan? • Macam-macam operand • Macam-macamoperasi
ApakahInstruksi set itu? • Kumpulan dariinstruksi-instruksi yang berbeda yang dapatdijalankanoleh CPU disebut set Instruksi (Instruction Set). • Operasidari CPU ditentukanolehinstruksi-instruksi yang dilaksanakanataudijalankannya. Instruksiiniseringdisebutsebagaiinstruksimesin (mechine instructions) atauinstruksikomputer (computer instructions).
ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI) • Operation Code (opcode) : menentukanoperasi yang akandilaksanakan • Source Operand Reference : merupakan input bagioperasi yang akandilaksanakan • Result Operand Reference : merupakanhasildarioperasi yang dilaksanakan • Next instruction Reference : memberitahu CPU untukmengambil (fetch) instruksiberikutnyasetelahinstruksi yang dijalankanselesai.
Macam-macamInstruksi Macam-macaminstruksiada 2,yaitu: • menurutjumlahoperasi yang di-spesifikasikan • menurutsifataksesterhadapmemoriatau register
Macam-macaminstruksimenurutjumlahoperasi yang di-spesifikasikan 1. O – Address Instruction 2. 1 – Addreess Instruction. 3. N – Address Instruction 4. M + N – Address Instruction
Macam-macaminstruksimenurutsifataksesterhadapmemoriatau register 1. Memori To Register Instruction 2. Memori To Memori Instruction 3. Register To Register Instruction
Jenisinstruksi • Data processing: Arithmetic dan Logic Instructions • Data storage: Memory instructions • Data Movement: I/O instructions • Control: Test and branch instructions
1. Data Processing Arithmatic & Logic Instruction A. Data processing arithmatic • TindakanCPU untukmelakukanoperasi arithmetic : 1. Transfer data sebelumatausesudah. 2. Melakukanfungsidalam ALU. 3. Mensetkode-kodekondisidan flag. • Operasi set instruksiuntuk arithmetic : 1. ADD : penjumlahan 5. ABSOLUTE 2. SUBTRACT : pengurangan 6. NEGATIVE 3. MULTIPLY : perkalian 7. DECREMENT 4. DIVIDE : pembagian 8. INCREMENT Nomor 5 sampai 8 merupakaninstruksi operand tunggal.
1. Data Processing Arithmatic & Logic Instruction B. Data processing logic instruction • TindakanCPU samadengan arithmetic • Operasi set instruksiuntukoperasi logical : 1. AND, OR, NOT, EXOR 2. COMPARE : melakukanperbandinganlogika. 3. TEST : mengujikondisitertentu. 4. SHIFT : operand menggeserkekiriataukananmenyebabkan konstantapadaujung bit. 5. ROTATE : operand menggeserkekiriataukekanandengan ujung yang terjalin.
2. DATA STORAGE MEMORI INTRUCTION • Tindakan CPU samadengan arithmetic dan logical. • Instruksi yang mengubah format instruksi yang beroperasiterhadap format data. • Misalnyapengubahanbilangandesimalmenjadibilanganbiner. • Operasi set instruksiuntukconversi : 1. TRANSLATE : menterjemahkannilai-nilaidalamsuatubagian memoriberdasarkantabelkorespodensi. 2. CONVERT : mengkonversiisisuatu word darisuatubentuk kebentuklainnya.
3. DATA MOVEMENT INPUT / OUPUT INSTRUCTION • Tindakan CPU untukmelakukan INPUT /OUTPUT : 1. Apabila memory mapped I/O makamenentukanalamat memory mapped. 2. Mengawaliperintahkemodul I/O • Operasi set instruksi Input / Ouput : 1. INPUT : memindahkan data dariperangkatI/O tertentuke tujuan 2. OUTPUT : memindahkan data darisumbertertentuke perangkat I/O 3. START I/O : memindahkaninstruksikeprosesor I/O untuk mengawalioperasi I/O 4. TEST I/O : memindahkaninformasidarisistem I/O ketujuan
Desain set instruksi Desain set instruksimerupakanmasalah yang sangatkomplek yang melibatkanbanyakaspek, diantaranyaadalah: 1. Kelengkapan set instruksi 2. Ortogonalitas (sifatindependensi instruksi) 3. Kompatibilitas : - Source code compatibility - Object code Compatibility
Selainketigaaspektersebutjugamelibatkan hal-halsebagaiberikut: 1. Operation Repertoire: Berapabanyakdanoperasiapasaja yang disediakan, danberapasulitoperasinya 2. Data Types: tipe/jenis data yang dapatolah Instruction Format: panjangnya, banyaknyaalamat, dsb. 3. Register: Banyaknya register yang dapatdigunakan 4.Addressing: Mode pengalamatanuntuk operand
Format Instruksi • Suatuinstruksiterdiridaribeberapafield yang sesuaidenganelemendalaminstruksitersebut. Layout darisuatuinstruksiseringdisebutsebagai Format Instruksi (Instruction Format).
Jumlahalamat yang digunakan JUMLAH ALAMAT (NUMBER OF ADDRESSES) • Salah satucaratradisionaluntukmenggambarkanarsitekturprosessoradalahdenganmelihatjumlahalamat yang terkandungdalamsetiapinstruksinya. • Jumlahalamatmaksimum yang mungkindiperlukandalamsebuahinstruksi : 1. EmpatAlamat ( dua operand, satuhasil, satuuntukalamat instruksiberikutnya) 2. TigaAlamat (dua operand, satuhasil) 3. DuaAlamat (satu operand merangkaphasil, satunyalagi operand) 4. SatuAlamat (menggunakan accumulator untukmenyimpan operand danhasilnya)
Macam-macam Operand • Addresses (akandibahaspada addressing modes) • Numbers : - Integer or fixed point - Floating point - Decimal (BCD) • Characters : - ASCII - EBCDIC • Logical Data : Bila data berbentuk binary: 0 & 1
Tranfer Data • Menetapkanlokasi operand sumberdan operand tujuan. • Lokasi-lokasitersebutdapatberupamemori, register ataubagian paling atasdaripada stack. • Menetapkanpanjang data yang dipindahkan. • Menetapkan mode pengalamatan. • Tindakan CPU untukmelakukan transfer data adalah : a. Memindahkan data darisatulokasikelokasi lain. b. Apabilamemoridilibatkan : Menetapkanalamatmemori. Menjalankantransformasialamatmemori virtual kealamat memoriaktual. Mengawalipembacaan / penulisanmemori
Operasi set instruksiuntuk transfer data : • MOVE : memindahkan word ataublokdarisumberketujuan • STORE : memindahkan word dariprosesorkememori. • LOAD : memindahkan word darimemorikeprosesor. • EXCHANGE : menukarisisumberketujuan. • CLEAR / RESET : memindahkan word 0 ketujuan. • SET : memindahkan word 1 ketujuan. • PUSH : memindahkan word darisumberkebagian paling atas stack. • POP : memindahkan word daribagian paling atassumber
Source danresult operandsdapatberupasalah Satudiantaratigajenisberikutini: • Main or Virtual Memory • CPU Register • I/O Device
BAB IIADDRESSING MODES & FORMAT • Model-model addressing • Direct and Indirect Addressing • Register Addressing • Instruction Format
ADDRESSING MODES Jenis-jenis addressing modes (Teknik Pengalama-tan) yang paling umum: • Immediate • Direct • Indirect • Register • Register Indirect • Displacement • Stack
Immediate Addressing • Operan adalah bagian dari instruksiOperan = alamat lapanganmisalnya Masukkan 5Tambahkan 5 untuk isi akumulator5 adalah operanTidak ada referensi memori untuk mengambil datacepatketerbatasan
Immediate Addressing Diagram Instruction Opcode Operand
Direct Addressing • Address field berisi alamat dari operanAlamat Efektif (EA) = alamat lapangan (A)misalnya ADD ATambahkan isi sel A ke akumulatorLihat dalam memori pada alamat A untuk operandReferensi memori tunggal untuk mengakses dataTidak ada tambahan perhitungan untuk bekerja di luar alamat efektifTerbatas ruang alamat
Direct Addressing Diagram Instruction Opcode Address A Memory Operand
Indirect Addressing (1) • Sel memori yang ditunjuk oleh field alamat berisi alamat (pointer ke) operanEA = (A)Lihat dalam A, menemukan alamat (A) dan tampak di sana untuk operanmisalnya ADD (A)Tambahkan isi sel ditunjukkan oleh isi dari A ke akumulator
Indirect Addressing (2) • Besar ruang alamat2n dimana n = kata panjangBisa diulang, bertingkat, mengalirmisalnya EA = (((A)))Gambarlah diagram diriMemori rangkap mengakses untuk menemukan operanOleh karena itu lebih lambat
Indirect Addressing Diagram Instruction Opcode Address A Memory Pointer to operand Operand
Register Addressing (1) • Operan diadakan di daftar alamat yang disebutkan dalam mengajukanEA = RTerbatas jumlah registerSangat kecil alamat lapangan diperlukanShorter instruksiInstruksi lebih cepat mengambil
Register Addressing (2) • Tidak ada akses memoriSangat cepat eksekusiSangat terbatas ruang alamatBeberapa register membantu kinerjaMembutuhkan pemrograman perakitan baik atau menulis compilerN.B. pemrograman Cmendaftar int a;c.f. langsung mengatasi
Register Addressing Diagram Instruction Opcode Register Address R Registers Operand
Register Indirect Addressing • C.f. tidak langsung menanganiEA = (R)Operan dalam sel memori yang ditunjuk oleh isi dari register RAlamat yang besar ruang (2n)Satu lebih sedikit memori akses langsung dari pengalamatan
Register Indirect Addressing Diagram Instruction Opcode Register Address R Memory Registers Operand Pointer to Operand
Displacement Addressing • EA = A + (R)Address field memegang dua nilaiSebuah nilai dasar =R = register yang memegang perpindahanatau sebaliknya
Displacement Addressing Diagram Instruction Address A Opcode Register R Memory Registers Pointer to Operand Operand +
Relative Addressing • Sebuah versi dari perpindahan menanganiR = Program counter, PCEA = A + (PC)yaitu mendapatkan operan dari A sel dari lokasi saat ini ditunjuk oleh PCc.f lokalitas penggunaan referensi & Cache
Base-Register Addressing • Sebuah memegang perpindahanR memegang pointer ke alamat dasarR dapat menjadi eksplisit atau implisitmisalnya segmen register di 80x86
Indexed Addressing • A = dasarR = perpindahanEA = A + RBaik untuk mengakses arrayEA = A + RR + +
Combinations • Postindex • EA = (A) + (R) • Preindex • EA = (A+(R)) • (Draw the diagrams)
Stack Addressing • Operan adalah (secara implisit) di atas tumpukanmisalnyaMasukkan Pop atas dua item dari stack dan tambahkan
x86 Addressing Modes • Alamat virtual atau efektif adalah offset ke dalam segmenAlamat awal ditambah diimbangi memberikan alamat linierIni berjalan melalui terjemahan halaman jika paging diaktifkan12 mode pengalamatan yang tersediasegeraDaftar operanpemindahandasarBase dengan perpindahanScaled indeks dengan perpindahanDasar dengan indeks dan perpindahanBasis skala indeks dengan perpindahanrelatif
ARM Addressing ModesLoad/Store • Hanya petunjuk yang referensi memoriSecara tidak langsung melalui register dasar ditambah diimbangimengimbangiOffset ditambahkan ke atau dikurangkan dari isi register dasar untuk membentuk alamat memoriPreindexAlamat memori dibentuk sebagai untuk mengatasi mengimbangiAlamat memori juga ditulis kembali ke base registerJadi base register nilai bertambah atau decremented oleh nilai offsetPostindexAlamat memori adalah nilai base registerOffset Hasil ditambahkan atau dikurangi ditulis kembali ke base registerBase register bertindak sebagai daftar indeks untuk preindex dan postindex menanganiOffset baik nilai langsung dalam instruksi atau mendaftar lainJika mendaftar skala mendaftar mengatasi tersediaOffset mendaftar nilai ditingkatkan oleh operator pergeseranInstruksi menentukan ukuran pergeseran
ARM Data Processing Instruction Addressing& Branch Instructions • Pengolahan DataDaftar menanganiNilai dalam operan mendaftar dapat ditingkatkan menggunakan operator pergeseranAtau campuran dari register dan segera menanganicabangsegeraInstruksi berisi 24 nilai bitBergeser meninggalkan 2 bitPada batas kataJarak efektif + /-32MB dari PC.
ARM Load/Store Multiple Addressing • Load / store bagian dari tujuan umum register16-bit bidang instruksi menetapkan daftar registerSequential kisaran alamat memoriSelisih setelah, kenaikan sebelumnya, setelah pengurangan, dan pengurangan sebelumBase register menentukan alamat memori utamaIncrementing atau decrementing dimulai sebelum atau setelah akses memori pertama