Gambarkan dan jelaskan Hirarki struktur internal dari single processor

Processor sering disebut sebagai otak dan pusat pengendali computer yang didukung oleh kompunen lainnya. Processor adalah sebuah IC yang mengontrol keseluruhan jalannya sebuah sistem komputer dan digunakan sebagai pusat atau otak dari komputer yang berfungsi untuk melakukan perhitungan dan menjalankan tugas. Processor terletak pada socket yang telah disediakan oleh motherboard, dan dapat diganti dengan processor yang lain asalkan sesuai dengan socket yang ada pada motherboard. Salah satu yang sangat besar pengaruhnya terhadap kecepatan komputer tergantung dari jenis dan kapasitas processor.

Prosesor adalah chip yang sering disebut “Microprosessor” yang sekarang ukurannya sudah mencapai Gigahertz (GHz). Ukuran tersebut adalah hitungan kecepatan prosesor dalam mengolah data atau informasi. Merk prosesor yang banyak beredar dipasaran adalah AMD, Apple, Cyrix VIA, IBM, IDT, dan Intel.

Organisasi Processor tersusun atas beberapa komponen, yaitu :

  • Arithmetic and Logic Unit (ALU), bertugas membentuk fungsi — fungsi pengolahan data komputer. ALU sering disebut mesin bahasa (machine language) karena bagian ini mengerjakan instruksi — instruksi bahasa mesin yang diberikan padanya. Seperti istilahnya, ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean, yang masing — masing memiliki spesifikasi tugas tersendiri.
  • Control Unit, bertugas mengontrol operasi CPU dan secara keselurahan mengontrol computer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi — fungsi operasinya. Termasuk dalam tanggung jawab unit kontrol adalah mengambil instruksi — instruksi dari memori utama dan menentukan jenis instruksi tersebut.
  • Registers, adalah media penyimpan internal CPU yang digunakan saat proses pengolahan data. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya.
  • CPU Interconnections, adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register — register dan juga dengan bus — bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan/keluaran.

Register prosesor dalam arsitektur komputer adalah sejumlah kecil memori komputer yang bekerja dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi terhadap program-program komputer dengan menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu tertentu.

Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori. Ini berarti bahwa kecepatannya adalah yang paling cepat. Kapasitasnya adalah paling kecil, dan harga

tiap bitnya adalah paling tinggi. Memori utama dan cache dalam hirarki / register tersebut dalam prosesor melakukan dua peran :

1. User Visible Register

2. Control and Status Register

User Visible Register

Register ini memungkinkan pemrogram bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan register. Register ini adalah register yang dapat direfensikan dengan menggunakan bahasa mesin yang dieksekusi CPU.

Secara virtual semua rancangan CPU modern memiliki sejumlah user-visible register, yang merupakan kebalikan akumulator tunggal. Kita dapat membedakannya dengan kategori-kategori berikut ini :

∙ Register General Purpose

∙ Register Data

∙ Register Alamat

∙ Register Kode Kondisi

General-Purpose register dapat di-assign ke berbagai fungsi oleh pemrogram. General-Purpose register dapat berisi operand sembarang opcode. Dapat digunakan untuk fungsi-fungsi pengalamatan (misal : register indirect, displacement).

Register Data hanya dapat dipakai untuk menampung data dan tidak dapat digunakan untuk kalkulasi dan alamat operand.

Register alamat menyerupai general-purpose register, atau register-register tersebut dapat digunakan untuk mode pengalamatan tertentu. Contohnya :

∙ Segment pointer => pada sebuah mesin yang memiliki pengalamatan bersegmen, register segmen menyimpan alamat basis segmen.

∙ Register index => register ini digunakan untuk alamat-alamat yang terindeks dan mungkin autoindexed.

∙ Stack pointer => apabila terdapat pengalamatan stack yang user-visible, maka biasanya stack berada di dalam memori dan terdapat register dedicated yang menunjuk ke bagian atas stack. Hal ini memungkinkan pengalamatan implisit, yaitu: push, pop dan instruksi stack lainnya tidak perlu operand stack eksplisi.

Register yang harus menampung alamat sedikitnya harus dapat menampung alamat yang terpanjang. Register-register data harus dapat menampung nilai-nilai sebagian besar jenis data.

Register kode kondisi adalah bit-bit yang disetel perangkat keras CPU sebagai hasil operasi.

Control & Status Registers

Register yang digunakan oleh CU, kontrol operasi CPU dan oleh sistem operasi untuk control eksekusi program. Ada berbagai register prosesor yang digunakan untuk mengendalikan operasi prosesor. Sebagian besar tidak terlihat oleh pengguna tetapi beberapa dapat terlihat oleh instruksi mesin, dieksekusi dalam kontrol atau mode sistem operasi .

Register yang penting bagi eksekusi instruksi :

∙ Program Counter (PC)

∙ Instruction Register (IR)

∙ Memory Data Register (MDR)

∙ Memory Address Register (MAR)

∙ Memory Buffer Register (MBR)

∙ General Purpose Register

Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya. Seperti “register 8-bit”, register 32-bit”, register 64-bit” dan lain-lain.

Istilah register saat ini dapat merujuk kepada kumpulan register yang dapat di indeks secara langsung untuk melakukan input/output terhadap sebuah instruksi yang didefinisikan oleh set instruksi untuk istilah ini, digunakanlah kata “Register Arsitektur”. Sebagai contoh set instruksi Intel x86 mendifinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tapi cpu yang mengimplementasikanset instruksi x86 dapat mengandung lebih dari delapan register 32-bit.

Lebih lanjut tentang Register aka dibahas pada bab berikutnya.

Machine cycle atau nama lainnya adalah processor cycle atau instruction cycle merupakan suatu siklus instruksi dasar yang dikerjakan oleh CPU di dalam melakukan eksekusi suatu instruksi. Rangkaian proses eksekusi instruksi ini dimulai dari proses fetching data dan instruksi yang ada didalam memori hingga proses penulisan kembali hasil eksekusi instruksi tersebut ke dalam memori.

Sebelum suatu instruksi dieksekusi oleh processor, terlebih dahulu sekumpulan instruksi tersebut disimpan dalam memori. Ketika akan dieksekusi, instruksi tersebut akan diambil (fetch) ke dalam memori, berdasarkan alamat instruksi yang disimpan dalam PC (Program Counter) yang terdapat dalam CPU. Setelah instruksi tersebut diload dari memori, nilai PC akan di-increment untuk menunjuk alamat berikutnya dari dari instruksi yang akan dieksekusi. Tahapan berikutnya setelah proses load (fetch) dilakukan, instruksi tersebut akan di-decode, dan kemudian dilakukan proses eksekusi. Setelah itu , hasil dari eksekusi instruksi tersebut akan dikembalikan lagi ke dalam memori. Siklus instruksi tersebut akan dikerjakan secara berulang oleh CPU selama masih ada instruksi yang akan dieksekusi.

2.2 PERKEMBANGAN PROCESSOR

Berikut sejarah perkembangan Mikroprosesor :

1971 : 4004 Microprocessor

Pada tahun 1971 munculah microprocessor pertama Intel , microprocessor 4004 ini digunakan pada mesin kalkulator Busicom. Dengan penemuan ini maka terbukalah jalan untuk memasukkan kecerdasan buatan pada benda mati.

1972 : 8008 Microprocessor

Pada tahun 1972 munculah microprocessor 8008 yang berkekuatan 2 kali lipat dari pendahulunya yaitu 4004.

1974 : 8080 Microprocessor

Menjadi otak dari sebuah komputer yang bernama Altair, pada saat itu terjual sekitar sepuluh ribu dalam 1 bulan

1978 : 8086–8088 Microprocessor

Sebuah penjualan penting dalam divisi komputer terjadi pada produk untuk komputer pribadi buatan IBM yang memakai prosesor 8088 yang berhasil mendongkrak nama intel.

1982 : 286 Microprocessor

Intel 286 atau yang lebih dikenal dengan nama 80286 adalah sebuah processor yang pertama kali dapat mengenali dan menggunakan software yang digunakan untuk processor sebelumnya.

1985 : Intel386™ Microprocessor

Intel 386 adalah sebuah prosesor yang memiliki 275.000 transistor yang tertanam diprosessor tersebut yang jika dibandingkan dengan 4004 memiliki 100 kali lipat lebih banyak dibandingkan dengan 4004.

1989 : Intel486™ DX CPU Microprocessor

Processor yang pertama kali memudahkan berbagai aplikasi yang tadinya harus mengetikkan command-command menjadi hanya sebuah klik saja, dan mempunyai fungsi komplek matematika sehingga memperkecil beban kerja pada processor.

1993 : Intel® Pentium® Processor

Processor generasi baru yang mampu menangani berbagai jenis data seperti suara, bunyi, tulisan tangan, dan foto.

1995 : Intel® Pentium® Pro Processor

Processor yang dirancang untuk digunakan pada aplikasi server dan workstation, yang dibuat untuk memproses data secara cepat, processor ini mempunyai 5,5 jt transistor yang tertanam.

1997 : Intel® Pentium® II Processor

Processor Pentium II merupakan processor yang menggabungkan Intel MMX yang dirancang secara khusus untuk mengolah data video, audio, dan grafik secara efisien. Terdapat 7.5 juta transistor terintegrasi di dalamnya sehingga dengan processor ini pengguna PC dapat mengolah berbagai data dan menggunakan internet dengan lebih baik.

1998 : Intel® Pentium II Xeon® Processor

Processor yang dibuat untuk kebutuhan pada aplikasi server. Intel saat itu ingin memenuhi strateginya yang ingin memberikan sebuah processor unik untuk sebuah pasar tertentu.

1999 : Intel® Celeron® Processor

Processor Intel Celeron merupakan processor yang dikeluarkan sebagai processor yang ditujukan untuk pengguna yang tidak terlalu membutuhkan kinerja processor yang lebih cepat bagi pengguna yang ingin membangun sebuah system computer dengan budget (harga) yang tidak terlalu besar. Processor Intel Celeron ini memiliki bentuk dan formfactor yang sama dengan processor Intel jenis Pentium, tetapi hanya dengan instruksi-instruksi yang lebih sedikit, L2 cache-nya lebih kecil, kecepatan (clock speed) yang lebih lambat, dan harga yang lebih murah daripada processor Intel jenis Pentium. Dengan keluarnya processor Celeron ini maka Intel kembali memberikan sebuah processor untuk sebuah pasaran tertentu.

1999 : Intel® Pentium® III Processor

Processor Pentium III merupakan processor yang diberi tambahan 70 instruksi baru yang secara dramatis memperkaya kemampuan pencitraan tingkat tinggi, tiga dimensi, audio streaming, dan aplikasi-aplikasi video serta pengenalan suara.

1999 : Intel® Pentium® III Xeon® Processor

Intel kembali merambah pasaran server dan workstation dengan mengeluarkan seri Xeon tetapi jenis Pentium III yang mempunyai 70 perintah SIMD. Keunggulan processor ini adalah ia dapat mempercepat pengolahan informasi dari system bus ke processor , yang juga mendongkrak performa secara signifikan. Processor ini juga dirancang untuk dipadukan dengan processor lain yang sejenis.

2000 : Intel® Pentium® 4 Processor

Processor Pentium IV merupakan produk Intel yang kecepatan prosesnya mampu menembus kecepatan hingga 3.06 GHz. Pertama kali keluar processor ini berkecepatan 1.5GHz dengan formafactor pin 423, setelah itu intel merubah formfactor processor Intel Pentium 4 menjadi pin 478 yang dimulai dari processor Intel Pentium 4 berkecepatan 1.3 GHz sampai yang terbaru yang saat ini mampu menembus kecepatannya hingga 3.4 GHz.

2001 : Intel® Xeon® Processor

Processor Intel Pentium 4 Xeon merupakan processor Intel Pentium 4 yang ditujukan khusus untuk berperan sebagai computer server. Processor ini memiliki jumlah pin lebih banyak dari processor Intel Pentium 4 serta dengan memory L2 cache yang lebih besar pula.

2001 : Intel® Itanium® Processor

Itanium adalah processor pertama berbasis 64 bit yang ditujukan bagi pemakain pada server dan workstation serta pemakai tertentu. Processor ini sudah dibuat dengan struktur yang benar-benar

berbeda dari sebelumnya yang didasarkan pada desain dan teknologi Intel’s Explicitly Parallel Instruction Computing ( EPIC ).

2002 : Intel® Itanium® 2 Processor

Itanium 2 adalah generasi kedua dari keluarga Itanium

2003 : Intel® Pentium® M Processor

Chipset 855, dan Intel® PRO/WIRELESS 2100 adalah komponen dari Intel® Centrino™. Intel Centrino dibuat untuk memenuhi kebutuhan pasar akan keberadaan sebuah komputer yang mudah dibawa kemana-mana.

2004 : Intel Pentium M 735/745/755 processors

Dilengkapi dengan chipset 855 dengan fitur baru 2Mb L2 Cache 400MHz system bus dan kecocokan dengan soket processor dengan seri-seri Pentium M sebelumnya.

2004 : Intel E7520/E7320 Chipsets

7320/7520 dapat digunakan untuk dual processor dengan konfigurasi 800MHz FSB, DDR2 400 memory, and PCI Express peripheral interfaces.

2005 : Intel Pentium 4 Extreme Edition 3.73GHz

Sebuah processor yang ditujukan untuk pasar pengguna komputer yang menginginkan sesuatu yang lebih dari komputernya, processor ini menggunakan konfigurasi 3.73GHz frequency, 1.066GHz FSB, EM64T, 2MB L2 cache, dan HyperThreading.

2005 : Intel Pentium D 820/830/840

Processor berbasis 64 bit dan disebut dual core karena menggunakan 2 buah inti, dengan konfigurasi 1MB L2 cache pada tiap core, 800MHz FSB, dan bisa beroperasi pada frekuensi 2.8GHz, 3.0GHz, dan 3.2GHz. Pada processor jenis ini juga disertakan dukungan HyperThreading.

2006 : Intel Core 2 Quad Q6600

Processor untuk type desktop dan digunakan pada orang yang ingin kekuatan lebih dari komputer yang ia miliki memiliki 2 buah core dengan konfigurasi 2.4GHz dengan 8MB L2 cache (sampai dengan 4MB yang dapat diakses tiap core ), 1.06GHz Front-side bus, dan thermal design power ( TDP )

2006 : Intel Quad-core Xeon X3210/X3220

Processor yang digunakan untuk tipe server dan memiliki 2 buah core dengan masing-masing memiliki konfigurasi 2.13 dan 2.4GHz, berturut-turut , dengan 8MB L2 cache ( dapat mencapai 4MB yang diakses untuk tiap core ), 1.06GHz Front-side bus, dan thermal design power (TDP)

.

2.3 TIGA JENIS SIKLUS INSTRUKSI

Siklus Instruksi

Sesuai dengan Gambar diatas, secara garis besar siklus instruksi (machine cycle) dibagi ke dalam beberapa tahapan yaitu:

1. Proses Fetching

Merupakan proses dimana instruksi dan data akan di load dari memori ke dalam CPU. Proses ini dimulai dari pengambilan alamat instruksi yang terdapat di dalam PC (Program Counter). Alamat yang terdapat di dalam PC ini merupakan alamat valid dari instruksi dan data yang disimpan ke dalam memori utama, dan merupakan alamat instruksi yang akan dieksekusi. Berdasarkan alamat instruksi yang terdapat di dalam PC, CPU akan mengambil instruksi tersebut untuk ditempatkan ke dalam register (Instruction Register/ IR) yang menyimpan instruksi yang akan dieksekusi.

MAR (Memory Address Register) akan bertanggung jawab untuk menyimpan alamat dari data yang disimpan ke dalam memori untuk selanjutnya akan di fetch ke dalam CPU. Sedangkan MDR (Memory Data Register) akan menyimpan data yang akan dioperasikan berdasarkan instruksi tertentu oleh CPU.

Setelah instruksi dan data di-fetch ke dalam CPU, Program Counter (PC) akan melakukan increment untuk menunjuk alamat dari instruksi dan data berikutnya yang akan dieksekusi. Secara garis besar, tahap fetching dapat dilihat pada Gambar dibawah ini

2. Proses Decoding

Merupakan tahapan dimana instruksi akan di terjemahkan (interpret) ke dalam perintah-perintah bahasa mesin dasar (ADD, SB, MBA, STA, JMP, dll). Proses ini dilakukan oleh instruction decoder. Proses decoder dapat dilihat pada Gambar dibawah ini

Proses Decoding

3. Proses Executing

Pada tahapan dimana instruksi akan dieksekusi di dalam CPU, yaitu oleh ALU (Arithmetic Logic Unit). Proses eksekusi instruksi yang terdapat di dalam ALU dapat dilihat pada Gambar dibawah ini

Setelah tahapan diatas dikerjakan, maka hasil dari eksekusi tersebut akan dikembalikan ke dalam memori untuk disimpan. Berdasarkan Gambar diatas dibawah ini, proses penyimpanan kembali hasil eksekusi isntruksi terdiri dari beberapa tahapan yaitu:

∙ Proses penempatan alamat memori yang digunakan untuk menyimpan hasil instruksi ke dalam MAR

∙ Proses penempatan data (hasil instruksi) kedalam MDR

∙ Proses mengaktifkan memory write control signal pada control bus

∙ Proses menunggu memori untuk melakukan write data pada alamat tertentu

∙ Proses untuk menonaktifkan memory write control signal pada bus

Proses penyimpanan kembali hasil instruksi ke memori

Perlu diketahui bahwa siklus eksekusi untuk suatu instruksi dapat melibatkan lebih dari sebuah referensi ke memori. Disamping itu juga, suatu instruksi dapat menentukan suatu operasi I/O. Perhatikan gambar diagram berikut :

∙ Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi.

∙ Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU.

∙ Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan.

∙ Operand Address Calculation (OAC),yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.

∙ Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.

∙ Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.

∙ Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori.

Dalam menjalakan instruction cycle / machine cycle ada beberapa komponen yang berperan, yaitu:

- Program Counter (PC)

Nama lainnya adalah Instruction Pointer, merupakan suatu pointer (penunjuk), bagi sejumlah instruksi yang ditempatkan di dalam memori dan akan dieksekusi oleh CPU. Terletak di dalam CPU, program counter akan menunjuk alamat memori dari instruksi sebelum dilakukan proses fetch ke dalam CPU. Isi dari program counter ini akan di increment setiap selesai melakukan proses fetching instruksi, untuk menunjuk instruksi berikutnya yang akan dieksekusi

- Memory Address Register (MAR)

Adalah salah satu register yang terdapat di dalam CPU yang fungsinya adalah untuk menyimpan alamat memori dari data yang akan diambil (fetch) oleh CPU untuk dieksekusi. Selain itu MAR juga akan menyimpan alamat memori dari data (hasil instruksi) yang akan ditulis kembali ke dalam memori.

- Memory Data Register (MDR)

Merupakan register yang terdapat dalam CPU yang fungsinya adalah menyimpan data sementara yang akan dieksekusi oleh CPU. Setiap kali proses fetching berlangsung, data akan disimpan di dalam MDR sebelum dilakukan proses eksekusi. Demikian juga hasil dari eksekusi instruksi akan disimpan di dalam register ini sebelum dilakukan proses penulisan kembali ke memori

- Instruction Register

Sama seperti MAR dan MDR, Instruction Register (IR) ini terletak di dalam CPU. IR ini bertanggung jawab untuk menyimpan instruksi yang akan dieksekusi oleh CPU. Pada beberapa jenis prosesor (terutama yang ada sekarang), digunakan konsep pipeline pada IR ini, dimana pada setiap stage pipeline melakukan proses decoding, dan proses yang lain pada waktu instruksi dikerjakan.

- Control Unit (CU)

Control unit mengkoordinasi semua komponen-komponen yang ada di sistem computer, terutama yang berkaitan dengan pengolahan data dan eksekusi instruksi. CU mengatur proses fetching instruksi maupun data dari memori ke CPU. Selain itu juga mengatur unit yang lain dengan menyediakan timing dan control signal.

- Arithmetic Logic Unit (ALU)

Merupakan sirkuit digital yang terdapat di dalam CPU yang memiliki fungsi untuk melakukan komputasi aritmatika dan logika. ALU merupakan unit dasar dari pengolah data dan eksekusi instruksi

Siklus Tak Langsung

Eksekusi sebuah instruksi melibatkan sebuah operand atau lebih di dalam memori, yang masing-masing operand memerlukan akses memori. Kemudian, apabila digunakan pengalamatan tak langsung, maka diperlukan akses memori tambahan.

Fungsi Interrupt

Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan

instruksi dalam CPU kepada routine interupsi. Hampir semua modul (memori dan I/O) memiliki mekanisme yang dapat menginterupsi kerja CPU.

Tujuan interupsi secara umum untuk menejemen pengeksekusian routine instruksi agar efektif dan efisien antar CPU dan modul — modul I/O maupun memori. Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing — masing modul berbeda sehingga dengan adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul. Macam — macam kelas sinyal interupsi :

∙ Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada hasil eksekusi program. Contohnya: arimatika overflow, pembagian nol, oparasi ilegal.

∙ Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler.

∙ I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan kondisi error dan penyelesaian suatu operasi.

∙ Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan paritas memori.

Dengan adanya mekanisme interupsi, prosesor dapat digunakan untuk meng eksekusi instruksi-instruksi lain. Saat suatu modul telah selesai menjalankan tugasnya dan siap menerima tugas berikutnya maka modul ini akan mengirimkan permintaan interupsi ke prosesor. Kemudian prosesor akan menghentikan eksekusi yang dijalankannya untuk menghandel routine interupsi.

Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi programnya kembali. Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan, yaitu interupsi diterima/ditangguhkan dan interupsi ditolak. Apabila interupsi ditangguhkan, prosesor akan melakukan hal — hal dibawah ini :

1. Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya. Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan data lain yang relevan.

2. Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler.

Siklus instruksi dengan interrupt

Untuk sistem operasi yang kompleks sangat dimungkinkan adanya interupsi ganda (multiple interrupt). Misalnya suatu komputer akan menerima permintaan interupsi saat proses pencetakan dengan printer selesai, disamping itu dimungkinkan dari saluran komunikasi akan mengirimkan permintaan interupsi setiap kali data tiba. Dalam hal ini prosesor harus menangani interupsi ganda.

Dapat diambil dua buah pendekatan untuk menangani interupsi ganda ini. Pertama adalah menolak atau tidak mengizinkan interupsi lain saat suatu interupsi ditangani prosesor. Kemudian setelah prosesor selesai menangani suatu interupsi maka interupsi lain baru di tangani. Pendekatan ini disebut pengolahan interupsi berurutan / sekuensial. Pendekatan ini cukup baik dan sederhana karena interupsi ditangani dalam ututan yang cukup ketat. Kelemahan pendekatan ini adalah metode ini tidak memperhitungkan prioritas interupsi.

Pendekatan kedua adalah dengan mendefinisikan prioritas bagi interupsi dan in terrupt handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pen dekatan ini disebut pengolahan interupsi bersarang. Metode ini digambarkan pada gambar b.

Sebagai contoh untuk pendekatan bersarang, misalnya suatu sistem memiliki tiga
perangkat I/O: printer, disk, dan saluran komunikasi, masing — masing prioritasnya 2, 4 dan 5. Pada awal sistem melakukan pencetakan dengan printer, saat itu terdapat pengiriman data pada saluran komunikasi sehingga modul komunikasi meminta interupsi. Proses selanjutnya adalah pengalihan eksekusi interupsi mudul komunikasi, sedangkan interupsi printer ditangguhkan. Saat pengeksekusian modul komunikasi terjadi interupsi disk, namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan. Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi yang memiliki prioritas lebih tinggi, yaitu disk. Bila interupsi disk selesai dilanjutkan eksekusi interupsi printer. Selanjutnya dilanjutkan eksekusi program utama.

Pipelining Instruksi

Proses pipelining adalah proses dimana input baru akan diterima pada sebuah sisi sebelum input yang diterima sebelumnya keluar sebagai output di sisi lainnya. Pipeline memiliki dua tahapan yang independen. Tahapan pertama mengambil instruksi dan mem-buffer-kannya. Ketika tahapan kedua bebas, tahapan pertama mengirimkan instruksi yang di-buffer-kan tersebut. Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membufferkan instruksi berikutnya. Proses ini disebut instruction prefetch atau fetch overlap.

Penggandaan kecepatan eksekusi tidak akan terjadi karena adanya kedua alasan berikut ini:

  • Umumnya waktu eksekusi akan lebih lama dibandingkan dengan pengambilan instruksi. Eksekusi akan meliputi pembacaan dan penyimpanan operand serta kinerja sejumlah operasi. Sehingga tahapan pengambilan mungkin perlu menunggu beberapa saat sebelum mengosongkan buffer-nya.
  • Instruksi pencabangan bersyarat akan membuat alamat instruksi berikutnya yang akan diambil tidak diketahui. Sehingga tahapan pengambilan harus menunggu sampai menerima alamat instruksi berikutnya dari tahapan eksekusi. Dengan demikian tahapan eksekusi harus menunggu pada saat instruksi berikutnya diambil.

Kerugian waktu yang diakibatkan tahapan kedua dapat dikurangi dengan cara menebak. Aturan sederhananya adalah sebagai berikut : ketika instruksi pencabangan bersyarat dikirimkan dari tahapan pengambilan ke tahapan eksekusi, tahapan pengambilan mengambil instruksi berikutnya di dalam memori setelah terjadinya instruksi pencabangan itu. Kemudian apabila pencabangan tidak dilakukan, maka tidak akan terdapat waktu yang hilang. Apabila pencabangan dilakukan, instruksi yang diambil harus dibuang dan instruksi yang baru harus diambil.

Video yang berhubungan

Postingan terbaru

LIHAT SEMUA