290 likes | 423 Views
TUGAS KELOMPOK. Nama kelmpok : maskar nurlailah . r. PIPELINING INSTRUKSI. MATERI. &. FORMAT INSTRUKSI.
E N D
TUGAS KELOMPOK Namakelmpok :maskarnurlailah. r
PIPELINING INSTRUKSI MATERI & FORMAT INSTRUKSI
Pipeline adalahsuatucara yang digunakanuntukmelakukansejumlahkerjasecarabersamatetapidalamtahap yang berbeda yang dialirkansecarakontinoupada unit pemrosesor. Denganccaraini, maka unit pemrosesanselalubekerja. • Mesin yang melaksanakanbeberapakomputasi yang berbedasecarabersama-sama, namunpadasaatitusetiapkomputasiakanberadadalamtahapaneksekusi yang berbeda • Teknik pipeline inidapatditerapkanpadaberbagaitingkatandalamsistemkomputer. Bisapada level yang tinggi, misalnya program aplikasi, sampaipadatingkat yang rendah, sepertipadainstruksi yang dijaankanoleh microprocessor. Pipelining instruksi
beberapainstruksidiprosessecarabersamaanadakemungkinaninstruksitersebutsama-samamemerlukan resource yang sama, sehinggadiperlukanadanyapengaturan yang tepat agar prosestetapberjalandenganbenar. • Teknik pipeline yang diterapkanpada microprocessor, dapatdikatakansebuaharsitekturkhusus. Adaperbedaankhususantara model microprocessor yang tidakmenggunakanarsitektur pipeline dengan microprocessor yang menerapkanteknikini. • Pada microprocessor yang tidakmenggunakan pipeline, satuinstruksidilakukansampaiselesai, baruinstruksiberikutnyadapatdilaksanakan. Sedangkandalammicroprocessoryangmenggunakanteknik pipeline, ketikasatuinstruksisedangkandiproses, makainstruksi yang berikutnyajugadapatdiprosesdalamwaktu yang bersamaan. Tetapi, instruksi yang diprosessecarabersamaanini, adadalamtahapproses yang berbeda.
Tigakesulitan yang seringdihadapiketikamenggunakanteknik pipeline iniadalah : • Terjadinyapenggunaan resource yang bersamaan, Ketikabeberapainstruksidiprosessecarabersamaan, inimemungkinkanadapenggunaan resource memoripadatempat yang sama. • Ketergantunganterhadap data, Misalnyainstruksi yang berurutan yang membutuhkan data dariinstruksisebelumnya. • Pengaturan Jump kesuatulokasimemori, Ketikasebuahinstruksimemintauntukmelompatkesuatulokasimemoritertentu, akanterjadiperubahan program counter, sedangkaninstruksi yang sedangberadadalamsalahsatutahapproses yang berikutnyamungkintidakmengharapkanterjadinyaperubahan program counter.
Mengambilinstruksidanmembufferkannya • Ketikatahapankeduabebastahapanpertamamengirimkaninstruksi yang dibufferkantersebut • Padasaattahapankeduasedangmengeksekusiinstruksi ,tahapanpertamamemanfaatkansiklusmemori yang tidakdipakaiuntukmengambildanmembufferkaninstruksiberikutnya . Tahapan-tahapan pipelining
Denganadanyapersyaratanbahwasetiapinstuksi yang berdekatanharustidaksalingbergantung, makaadakemungkinanterjadinyasituasidimana pipeline gagaldilaksanakan (instuksiberikutnyatidakbisadilaksanakan). Situasiinidisebut Hazards. Hazards mengurangiperformansidari CPU dimanapercepatan ideal tidakdapatdicapai. Ada 3 kelompok Hazards : 1. Structural Hazards munculdarikonflik resource sistemyaituketika hardware tidakdapatmensuportsemuakemungkinankombinasipelaksanaaninstruksi. 2. Data Hazards munculketika data untuksuatuinstruksitergantungpadahasilinstruksisebelumnya. 3. Control Hazards munculpadapelaksanaaninstruksi yang mengubah PC (contoh : branch). Masalahpada pipelining
Adanya Hazards menyebabkan pipeline terhambat (stalled). Tidakadainstruksibaru yang dijemputsampaihambatanituselesai. Iniberartiinstruksi-instruksiselanjutnyaakanditunda pula penjemputannya. Keuntungandari Pipelining: Waktusiklusprosesorberkurang, sehinggameningkatkantingkatinstruksi-isudalamkebanyakankasus. Beberapa combinational sirkuitsepertipenambahataupenggandadapatdibuatlebihcepatdenganmenambahkanlebihbanyaksirkuit. Jika pipelining digunakansebagaipengganti, halitudapatmenghematsirkuitvs combinational yang lebihkomplekssirkuit.
Kekurangan Pipelining : 1. Non-pipelined prosesorhanyamenjalankansatuinstruksipadasatuwaktu. Hal iniuntukmencegahpenundaancabang (yang berlaku, setiapcabangtertunda) danmasalahdengan serial instruksidieksekusisecarabersamaan. Akibatnyadesainlebihsederhanadanlebihmurahuntukdiproduksi. 2. Instruksi latency di non-pipelined prosesorsedikitlebihrendahdaripadadalam pipelined setara. Hal inidisebabkanolehfaktabahwa sandal jepitekstraharusditambahkankejalur data dariprosesor pipelined. 3. Non-pipelined prosesorakanmemilikiinstruksi yang stabil bandwidth. Kinerjaprosesor yang pipelined jauhlebihsulituntukmeramalkandandapatbervariasilebihluasdiantara program yang berbeda.
Tujuan pipelining : - adalahuntukmemaksimalkankecepatan mengalirnyainstruksi. - Diciptakanjugadengantujuanmempercepatkinerjakomputer. Kategori pipelining: 1. Pipeline Unit Arithmetic Bergunauntukoperasivektor 2. Pipeline Unit Instruction Bergunauntukkomputer yang mempunyai set instruksi yang sederhana
Bedanyaprosesor yang tidakmenggunakantekonologi pipeline adalahdalamsegipengerjaantugasatauoperasi. Prosesor yang tidakmenggunakanteknologi pipeline harusmenyelesaikansuatuprosessampaidenganselesaidulu, barubisamelanjutkankieprosesselanjutnya. Sedangkanprosesor yang menggunakanteknologi pipeline dapatmelakukanbeberapaprosessecarabersamaantanpaharusmenungguprosessebelumnyadiselesaikan.
Untuksetiaptahappengerjaaninstruksi, komponen yang bekerjaberbeda, makadimungkinkanuntukmengisikekosongankerjadikomponentersebut. Sebagaicontoh : Instruksi 1: ADD AX, AX Instruksi 2: ADD EX, CX Setelah CU menjemputinstruksi 1 darimemori (IF), CU akanmenerjemahkaninstruksitersebut(ID). Padamenerjemahkaninstruksi 1 tersebut, komponen IF tidakbekerja. Adanyateknologi pipeline menyebabkan IF akanmenjemputinstruksi 2 padasaat ID menerjemahkaninstruksi 1. Demikianseterusnyapadasaat CU menjalankaninstruksi 1 (EX), instruksi 2 diterjemahkan (ID).
Contohpengerjaaninstruksitanpa pipeline Disiniinstruksibaruakandijemputjikainstruksisebelumnyatelahselesaidilaksanakan.
Contohpengerjaaninstruksidengan pipeline Disiniinstruksibaruakandijemputsetelahtahap IF menganggur (t2).
Suatuinstruksiterdiridaribeberapa field yang sesuaidenganelemendalaminstruksitersebut.layout dariinstruksiseringdisebutsebagaiformat instruksi. Program terdiridariurutaninstruksi, setiapinstrusksimemilikiaksitertentu. Setiapinstruksiterdiridari field kodeoperasiatauopcode yang menentukanoperasiapa yang harusdikerjakanoleh CPU. Instruksidapatberupaopcodesaja, tetapisebagianbesarinstrusksimelibatkansatuataulebih operand. Untukmenentukandimana operand beradadisebutaddressing. pENGERTIAN
Instruksitanpa operand disebutdenganzero address instruction. Instruksi yang memerlukansatuataulebih operand disebut one-address instruction, two-address instruction,danseterusnya. PanjangInstruksitergantungjumlah operand yang terlibatdancaramenentukansetiap operand.
CONTOH FORMAT INSTRUKSI • operand source/destination • Opcode : menyatakanoperasinya (mnemonic) • Operands: menyatakan data input (source) dan output (destination) • untukoperasiybs datanya (imediate) atau lokasi/alamat data (eks- lisit atau implisit)
Selamaberlangsungnyaeksekusiinstruksi, instruksidibacakedalam register instruksi (Instruction Register-IR) yang terdapardalam CPU. Opcodedirepresentasikandengansingkatan-singkatan yang disebutmnemonik, yang mengindikasikanoperasi.Misal: • ADD (menambahkan) • SUB (pengurangan) • MPY (multiply) • DIV (pembagian) • LOAD (muatkan data darimemori) • STORE (simpan data kememori)
Operand-operand jugadirepresentasikansecarasimbolik. Misalnyainstruksi: ADD R,Y Berartitambahkannilai yang terdapatpadalokasiY keisi register R dimana Y berkaitandenganalamatlokasi di dalammemori, dan R berkaitandengan register tertentu.
a = b + 5 1 statement level tinggi kompilasi 1 statemen assembly = 1 instruksi mesin M[a], R3 Operand operand Register Memory
Apa yang harus dispesifikasikan oleh sebuah instruksi ? • KodeoperasiOpcode add r0, r1, r3 add, load, branch, dsb. • Dimanaoperand-operand sumbernyaberada ? add r0, r1, r3 didalam register2 CPU, main memory, I/O, atauterdapatdalaminstruksiitusendiri. • Kemanaoperand hasil (hasiloperasi) disimpan ? add r0, r1, r3 ke register2 CPU atau main memory Opcode Operand-operand sumber dan operand hasil (alamat penyimpanannya)
Beberapajenis addressing modes diuraikansebagaiberikut: 1. Immediate Addressing Pada mode ini, operand merupakanbagiandariinstruksi, sehingga operand tersediadengansegera. Operand inidisebut immediate operand karenasecaraotomatis di-fetch darimemoridenganinstruksi. 2. Direct Addressing Pada mode iniinstruksimenyediakanalamat operand secaralangsung. CPU menggunakanalamatiniuntukmelakukan fetch (atau store) oprend. 3. Register Direct Addressing Mode inimiripdengan direct addressing, perbedaannya field operand menentukan register, bukanalamatmemori. Register iniadalahsalahsatudari general purpose register (GPR) CPU. Addressing Mode
4. Register Indirect Addressing Pada mode ini register ditentukanolehinstruksi yang berisialamat operand, bukan operand itusendiri. Karenamemegangalamat operand, maka register dapatdipandangsebagaipetunjukke operand, sehinggadisebut pointer. 5. Indirect Addressing Pada addressing mode berikutnyainstruksimenentukanalamat operand berkaiatandenganjarakdarialamat yang laian. Pada mode addressing iniinstruksimenyediakandanmenunjukkan register mana yang memegangindek. Indekmenentukanberapajauh operand darialamat yang disediakanolehinstruksi. 6. Based Addressing Mode inidikenaldengan relative addressing. Padatipe addressing inialamat operand berkenaandenganjarak (atau displacement) dengn base address yang disimpandalam register. 7. Relative Addressing Program melibatkaninstruksitipe jump untukmenttansfer control ke program lain ataukebagian lain dari program lain dari program yang sama.
Set instrukidapatberbedatidakhanyapadatipeoperasi, tetapijugatipe data dimanaoperasi-operasitersebutdilakukan. Dipandangdaritipeoperasi, instruksidapatdibagimenjaditigakelasutama, yaitu: 1. Instruksi transfer data Memindahkan data antarlokasitanpamelakukanoperasiapapunpada data yang bersangkutan. Contohinstrusi transfer data adalah MOV. 2. Instruksikendali Tidakmelakukanoperasipada data. Fungsiinstrusksiiniuntukmengendalikan program dankeadaan (state) CPU. Contohinstrusksi transfer kendaliadalah JUMP, CALLSUB, RETSUB, RETINT, LOOPBCK (kendali program) dan SETC, CLRC, ENINT, DISINT, HALT, NOP (kendali CPU). Set Instruksi
3. Instruksimanipulasi data Melakukanoperasi data yang memberikanhasilmelaluitransformasi data. Yang termasukinstruksimanipulasi data adalah: a). Aritmetik b). Lojik c). Shift/rotate d). Manipulasi bit e). Perosesan string
Instruction cycedan Machine cycle Adalahurutanlangkah yang diperlukandalam fetching daneksekusiinstrusi. Di dalamprosesor, langkahinidibagimenjadiurutanyanglebihkecil yang disebut machine cycle. Tipe machine cycle yang umumadalah: a). Memory Read b). Memory Write c). Internal Operation d). Interupt Acknowledge e). Bus Grant CPU Timing
TERIMAH KASIH