cmpd 114 : chapter 3 (chapter 4 text book)

Click here to load reader

Download CMPD 114 : Chapter 3  (chapter 4 text book)

Post on 19-Jan-2016

60 views

Category:

Documents

4 download

Embed Size (px)

DESCRIPTION

CMPD 114 : Chapter 3 (chapter 4 text book). Organisasi Input-Output Capaian Peranti I/O dan Isu-isu dlm rekabentuk sistem I/O Sampukkan ( Interrupts ) Direct Memory Access Organisasi Bas Antaramuka I/O. Capaian Peranti I/O. - PowerPoint PPT Presentation

TRANSCRIPT

  • CMPD 114 : Chapter 3 (chapter 4 text book)Organisasi Input-Output

    Capaian Peranti I/O dan Isu-isu dlm rekabentuk sistem I/OSampukkan (Interrupts)Direct Memory AccessOrganisasi BasAntaramuka I/O

  • Capaian Peranti I/OPemproses, memori utama dan peranti I/O dihubungkan dengan menggunakan bus.

  • Melalui kaedah memory-mapped I/O, setiap peranti I/O diberikan satu alamat yg unik dalam memori utama.Apabila pemproses meletakkan satu alamat pada line alamat , peranti I/O yg mengenali alamat ini akan memberi tindakbalas terhadap arahan yg terdapat pada line kawalan.Melalui kaedah memory-mapped I/O juga, sebarang arahan yg digunakan untuk mencapai memori utama boleh digunakan untuk menghantar data dari/ke peranti I/O.

  • Contoh: Jika DATAIN adalah alamat buffer input bagi keyboard, maka arahan di bawah ini akan membaca data dari DATAIN dan menyimpannya ke daftar R0.Move DATAIN,R0 Jika DATAOUT adalah alamat buffer output bagi satu unit paparan, arahan Move R0, DATAOUT akan menghantar daftar R0 ke lokasi DATAOUT.

  • Antara pemproses yg menggunakan kaedah memory-mapped I/O ialah 68000 dan PowerPC.Pendekatan lain yg digunakan ialah program-controlled I/O di mana operasi capaian terhadap I/O dikendalikan oleh arahan-arahan khas yg terdapat dalam program I/O.Contoh pemproses yg menggunakan kaedah ini ialah mikropemproses Intel. Intel juga mempunyai ruang alamat 16-bit yg dikhaskan untuk peranti I/O. Ini bermakna, kaedah memory-mapped juga boleh digunakan.

  • Rajah 4.2 di bawah menggambarkan perkakasan yg diperlukan bagi menghubungkan peranti I/O dengan bus.

  • Perkakasan ini dikenali sebagai litar antaramuka peranti I/O.Terdiri daripada:1. Address Decodermembolehkan peranti I/O mengenalpasti alamat pada line alamat adalah alamatnya.2. Data Registermenyimpan data dari peranti input yg akan dihantar ke pemproses atau menerima data dari pemproses untuk dihantar ke peranti output.3. Status Registermenyimpan maklumat yg berkenaan dengan operasi peranti I/O.

  • 3. Control Circuitrymenyelaraskan penghantaran I/O.Contoh: Operasi I/O yg melibatkan input dari keyboard dan outputnya dipaparkan pada monitor.4 daftar dalam rajah 4.3 di bawah digunakan dalam operasi penghantaran data.

  • 1. Daftar statusmengandungi 2 bendera kawalan, SIN daan SOUT yg akan memberikan maklumat kepada keyboard dan monitor. Bendera KIRQ dan DIRQ digunakan apabila berlakunya sampukan.2. DATAINmenyimpan data yg dimasukkan melalui keyboard sehinggalah data dihantar ke pemproses.3. DATAOUTmenyimpan data yg diterima dari pemproses dan akan dihantar ke monitor.Daftar KawalanTerdapat 2 bendera kawalan iaitu DEN dan KEN yg juga digunakan semasa proses sampukan.

  • Rajah 4.4 berikut menunjukkan program yg menerima satu baris aksara dari keyboard, menyimpannya di memory buffer bermula pada lokasi LINE dan memanggil subrutin untuk memproses data ini.

  • Setiap aksara yg dibaca akan dipaparkan pada monitor.Daftar R0 digunakan sebagai pointer (penunjuk). Kandungannya akan dikemaskini menggunakan mod pengalamatan autoincrement.Ini ialah satu contoh program-controlled I/O, di mana pemproses akan sentiasa memeriksa status bendera kawalan untuk mencapai synchronization di antara pemproses dan peranti input.

  • Dua mekanisma lain yg digunakan bagi melaksanakan operasi I/O ialah:1. Interrupts (Sampukan)synchronization dilaksanakan dengan membenarkan peranti I/O menghantar isyarat sampukan melalui bus apabila peranti bersedia untuk operasi penghantaran data.2. Direct Memory Access (DMA)teknik yg digunakan oleh peranti I/O berkelajuan tinggi di mana antaramuka peranti menghantar data secara terus dari/ke memori tanpa pembabitan pemproses.

  • Isu-isu rekabentuk sistem I/OPrestasi (Performance) Expandability

  • Prestasi Sistem I/OPrestasi sistem I/O bergantung kpd pelbagai aspek sistem (limited by weakest link in the chain):The CPUThe memory systemInternal and external cachesMain MemoryThe interconnection (buses)The I/O controllerThe I/O deviceThe speed of the I/O software (Operating System)

  • ExpandabilityBergantung kepada jenis bus yg digunakanBagi sistem komputer yg menggunakan kaedah single bus, ianya berupaya untuk melakukan penambahan perkakasan ke atas sistem komputer tersebut.

  • Interrupts (Sampukan)Sampukan adalah satu proses yg membenarkan satu peranti I/O yg ingin menggunakan pemproses (samada untuk menerima data input atau menghantar data output) menghantar satu isyarat yg dinamakan sampukan.Pada rajah 4.4, program mengandungi wait loop yg akan memeriksa status peranti.

  • Pada masa ini pemproses tidak akan melakukan sebarang pemprosesan.Pemproses boleh melakukan tugas-tugas lain sementara menunggu peranti I/O bersedia. Satu dari line kawalan pada bus yg dipanggil interrupt-request line digunakan bagi tujuan ini.Pemproses boleh mengarahkan antaramuka peranti I/O mengaktifkan line (hantar isyarat sampukan) bila ia bersedia untuk penghantaran data.

  • Jadi, pemproses tidak perlu lagi memeriksa status peranti luaran secara berterusan, dan ini membolehkan pemproses melakukan fungsi-fungsi lain semasa menunggu.Contoh:andaikan satu tugas yg memerlukan pengiraan dilakukan dan hasilnya akan dihantar kepada pencetak utk dicetak.Program mengandungi dua rutin COMPUTE dan PRINT. Andaikan COMPUTE menghasilkan n baris output yg akan dicetak oleh rutin PRINT.

  • Pencetak hanya menerima satu baris teks pada satu masa, jadi rutin PRINT perlu menghantar satu baris teks, tunggu sehingga ia dicetak dan hantar baris seterusnya berulang-ulang hingga hasilnya diperolehi.Dengan cara ini pemproses perlu menunggu sehingga pencetak bersedia sebelum menghantar baris berikutnya utk dicetak.Jika rutin COMPUTE dapat dilaksanakan semasa percetakkan sedang dilaksanakan ia akan menambahkan kelajuan perlaksanaan arahan bagi mendapatkan hasil untuk dicetak.

  • Ia boleh dilakukan dengan:-1. Rutin COMPUTE dilaksanakan dahulu untuk menghantar baris pertama output.2. Rutin PRINT dilaksanakan untuk menghantar baris pertama ke pencetak. Pada masa ini, semasa menunggu baris dicetak, rutin PRINT boleh diberhentikan sementara atau digantung (suspend), dan rutin COMPUTE akan dilaksanakan.3. Apabila pencetak bersedia untuk mencetak baris seterusnya, pencetak akan memberitahu pemproses dengan menghantar isyarat sampukan.4. Pemproses akan menyampuk perlaksanaan rutin COMPUTE dan memindahkan kawalan kepada rutin PRINT.

  • 5. Rutin PRINT akan menghantar baris kedua kepada pencetak dan ia akan digantung semula.6. Rutin COMPUTE akan menyambung semula pengiraannya.**Proses ini akan berulang sehingga n baris dicetak.Dalam contoh ini rutin PRINT adalah rutin yg akan dilaksanakan apabila isyarat sampukan diberi, rutin PRINT ini dipanggil interrupt service-routine.Dalam setiap proses sampukan, pemproses mestilah memberitahu peranti yg menghantar sampukan bahawa permintaannya telah pun

  • dikenalpasti. Ia perlu dilakukan supaya peranti yg menghantar isyarat menghentikan isyarat sampukan yg dikeluarkan.Untuk melaksanakan perkara ini, satu isyarat yg dipanggil interrupt-acknowledge perlu dikeluarkan oleh pemproses dan dibawa oleh line kawalan bus ke peranti tersebut.Perlaksanaan interrupt-service routine sama juga seperti subrutin-subrutin lain dalam program. Perbezaannya ialah subrutin program melakukan fungsi yg diperlukan oleh program

  • yg memanggilnya, manakala interrupt serviceroutine tidak mempunyai kaitan dengan program yg sedang dilaksanakan pada masa permintaan sampukan diterima.Sebelum memulakan perlaksanaan interrupt-service routine, sebarang maklumat yg mungkin akan diubah semasa perlaksanaan rutin tersebut mestilah disimpan. Maklumat ini akan direstorekan sebelum menyambung semula perlaksanaan program yg disampuk.Maklumat-maklumat tersebut termasuklah

  • condition code flags dan kandungan daftar-daftar yg digunakan oleh kedua-dua program yg disampuk dan interrupt-service routine.Proses ini dilakukan secara automatik oleh pemproses ataupun arahan-arahan dalam program.Interrupt latency adalah kelengahan masa (delay) yg disebabkan oleh proses penyimpanan dan restore maklumat. Ini kerana proses ini melibatkan penghantaran antara memori yg akan meningkatkan jumlah masa dan overhead perlaksanaan.

  • Mengendali Beberapa PerantiBeberapa peranti I/O yg boleh membuat sampukan adalah peranti yg dihubungkan dengan pemproses dan semua peranti ini adalah saling tidak bergantungan antara satu sama lain.Timbul masalah sekiranya terdapat lebih dari satu peranti mengeluarkan isyarat sampukan secara serentak pada satu masa ataupun sewaktu peranti X diberikan perkhidmatan sampukan (interrupt-service), peranti Y mengeluarkan isyarat sampukan.

  • Antara masalah-masalah yg timbul ialah:1. Bagaimana pemproses ingin mengenalpasti peranti yg menghantar sampukan.2. Peranti yg berbeza memerlukan interrupt-service routine yg berbeza jadi bagaimana pemproses mengetahui alamat permulaan rutin yg dikehendaki.3. Adakah peranti dibenarkan membuat sampukan sewaktu sampukan lain sedang dijalankan.4. Bagaimana hendak menguruskan sampukan serentak.

  • Mengenalpasti peranti yang menghantar sampukan.proses sampukan bermula dengan peranti yg ingin melakukan sampukan mengaktifkan interrupt-request line pada bus yg dikongsi dengan peranti-peranti lain.Rujuk rajah 4.6Isyarat sampukan yg diterima oleh pemproses diberikan olehINTR = INTR1 + INTR2 + + INTRn

  • Maklumat yg diperlukan untuk mengenalpasti peranti disimpan di dalam daftar status peranti-peranti tersebut.Apabila satu peranti menghantar isyarat sampukan, ia akan setkan bit Interrupt-Request (IRQ) kepada 1.Interrupt-service routine akan bermula dengan polling peranti dalam turutan tertentu.Peranti pertama dengan bit IRQ diset