1 / 57

CMPD 114 : Chapter 3 (chapter 4 text book)

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.

karim
Download Presentation

CMPD 114 : Chapter 3 (chapter 4 text book)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

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

  3. 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.

  4. 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.

  5. 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.

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

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

  8. 3. Control Circuitry • menyelaraskan 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.

  9. D A T AIN D A T A OUT KIRQ SOUT SIN ST A TUS DIRQ KEN CONTR OL DEN 7 6 5 4 3 2 1 0 Figure 4.3 : Registers in keyboard and display interface

  10. 1. Daftar status • mengandungi 2 bendera kawalan, SIN daan SOUT yg akan memberikan maklumat kepada keyboard dan monitor. Bendera KIRQ dan DIRQ digunakan apabila berlakunya sampukan. 2. DATAIN • menyimpan data yg dimasukkan melalui keyboard sehinggalah data dihantar ke pemproses. 3. DATAOUT • menyimpan data yg diterima dari pemproses dan akan dihantar ke monitor. • Daftar Kawalan • Terdapat 2 bendera kawalan iaitu DEN dan KEN yg juga digunakan semasa proses sampukan.

  11. 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.

  12. Mo v e #LINE,R0 Initialize memory p oin ter. W AITK T estBit #0,ST A TUS T est SIN. Branc h=0 W AITK W ait for c haracter to b e en tered. Mo v e D A T AIN,R1 Read c haracter. W AITD T estBit #1,ST A TUS T est SOUT. Branc h=0 W AITD W ait for displa y to b ecome ready . Mo v e R1,D A T A OUT Send c haracter to displa y . Mo v e R1,(R0)+ Store c haracter and adv ance p oin ter. Compare #$0D,R1 Chec k if Carriage Return. Branc h 0 W AITK If not, get another c haracter. Mo v e #$0A,D A T A OUT Otherwise, send Line F eed. Call PR OCESS Call a subroutine to pro cess the input line. Figure 4.4 A program that reads one line from the keyboard stores it in memory buffer, and echoes it back to the display.

  13. 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.

  14. 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.

  15. interrupts Processor Cache Memory - I/O Bus Main Memory I/O Controller I/O Controller I/O Controller Graphics Disk Disk Network Isu-isu rekabentuk sistem I/O • Prestasi (Performance) • Expandability

  16. Prestasi Sistem I/O • Prestasi sistem I/O bergantung kpd pelbagai aspek sistem (“limited by weakest link in the chain”): • The CPU • Thememory system • Internal and external caches • Main Memory • The interconnection (buses) • The I/O controller • The I/O device • The speed of the I/O software (Operating System)

  17. Expandability • Bergantung kepada jenis bus yg digunakan • Bagi sistem komputer yg menggunakan kaedah single bus, ianya berupaya untuk melakukan penambahan perkakasan ke atas sistem komputer tersebut.

  18. 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.

  19. 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-requestline digunakan bagi tujuan ini. • Pemproses boleh mengarahkan antaramuka peranti I/O mengaktifkan line (hantar isyarat sampukan) bila ia bersedia untuk penghantaran data.

  20. 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.

  21. 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.

  22. 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.

  23. 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

  24. 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

  25. yg memanggilnya, manakala interrupt service routine 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 di’restore’kan sebelum menyambung semula perlaksanaan program yg disampuk. • Maklumat-maklumat tersebut termasuklah

  26. 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.

  27. Mengendali Beberapa Peranti • Beberapa 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.

  28. 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.

  29. 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.6 • Isyarat sampukan yg diterima oleh pemproses diberikan oleh INTR = INTR1 + INTR2 + … + INTRn

  30. 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 disetkan kepada 1 akan dilayan oleh interrupt-service routine dengan memanggil subrutin yg berkenaan dengan peranti tersebut. • Masalah utama menggunakan teknik ‘polling’ ini ialah masa yg lama diperuntukkan untuk menyemak bit IRQ semua peranti termasuk juga peranti-peranti yg tidak mengeluarkan isyarat sampukan.

  31. Vectored Interrupt • dalam vectored interrupt, peranti yg melakukan sampukan akan ‘memperkenalkan dirinya’ secara terus kepada pemproses. • Ini dilakukan dengan menghantar kod khas kepada pemproses melalui bus. • Kemudian pemproses akan mula melaksanakan interrupt-service routine yg diminta oleh peranti tersebut. • Kaedah ini membolehkan pemproses mengenalpasti setiap peranti walaupun peranti-peranti tersebut berkongsi satu interrupt request line. • Kod khas yg diberikan oleh peranti akan menunjukkan alamat permulaan interrupt-service routine bagi peranti tersebut.

  32. Melalui kaedah ini, interrupt-service routine bagi suatu peranti mesti bermula pada lokasi yg sama setiap kali peranti tersebut melakukan sampukan. • Tetapi tidak semestinya setiap kali sampukan dilakukan oleh suatu peranti, maka interrupt-service routine yg sama dikehendaki. • Jadi, supaya interrupt-service routine lain dapat dilakukan, pemproses akan menggunakan kod khas tadi sebagai penunjuk kepada alamat permulaan interrupt-service routine yg dikehendaki. • Ini bermakna, kod khas ini adalah alamat lokasi ingatan utama yg mengandungi alamat permulaan yg dikehendaki.

  33. Direct Memory Access (DMA) • DMA merupakan satu teknik penghantaran satu blok data di antara peranti dengan memori utama secara terus tanpa melibatkan pemproses. • Tugas ini dilakukan oleh litar kawalan dalam peranti I/O iaitu DMA controller. • DMA controller membolehkan penghantaran data secara terus antara peranti dan memori utama tanpa melibatkan pemproses.

  34. DMA controller akan melakukan tugas yg biasanya dilakukan oleh pemproses apabila mencapai memori utama. • Oleh kerana DMA controller menghantar satu blok data ia perlu menyediakan alamat memori dan isyarat yg digunakan untuk mengawal penghantaran data. Ia mestilah meningkatkan alamat memori utama mengikut bilangan byte atau perkataan yg akan dihantar dan juga bilangan penghantaran yg dilakukan. • Operasi penghantaran DMA mestilah di bawah

  35. kawalan program yg dilaksanakan oleh pemproses. • Bagi memulakan penghantaran satu blok perkataan, pemproses akan menghantar data-data berikut kepada DMA controller: 1. Alamat permulaan 2. Bilangan perkataan dalam blok 3. Arah penghantaran (Read/Write) 4. Alamat peranti I/O yg terlibat • Kemudian DMA controller akan terus melakukan penghantaran blok data tersebut

  36. (satu perkataan satu masa) secara terus dari atau kepada memori utama tanpa melalui pemproses. • Manakala pemproses boleh menyambung semula perlaksanaan tugasnya. • Apabila keseluruhan blok telah dihantar, DMA controller akan memberitahu pemproses dengan menghantar isyarat sampukan. • Jadi, pemproses hanya terlibat semasa permulaan dan di akhir penghantaran sahaja.

  37. 31 30 1 0 Status and control • Rajah 4.18 di bawah menunjukkan daftar-daftar yg terdapat dalam DMA controller. • Ia terdiri daripada: 1. Word count • daftar untuk menyimpan bilangan perkataan IRQ Done IE R / W Starting address W ord count Figure 4.18: Registers in a DMA interface

  38. 2. Starting address • daftar untuk menyimpan alamat permulaan 3. Status and control • daftar yg mengandungi status dan bendera kawalan. Bit0 = Done (penghantaran telah tamat) - bersedia untuk menerima arahan lain. Bit1 = R/ W (Read - 1, Write - 0) Bit30 = Interrupt-Enable - keluarkan isyarat sampukan apabila telah selesai hantar satu blok data. Bit31 = telah hantar IRQ

  39. Semasa penghantaran data tersebut, DMA controller akan mengendalikan bus untuk menghantar data kepada atau daripada memori utama. • DMA controller hanya menggunakan bus bila pemproses tidak menggunakannya. • DMA controller boleh memaksa pemproses menghentikan sementara operasinya dan proses ini dipanggil ‘cycle stealing’. • Mekanisma DMA boleh dikonfigurasikan dalam beberapa cara (rujuk rajah di sebelah):

  40. Organisasi Bas • Pemproses, memori utama dan peranti I/O dihubungkan dengan menggunakan bus. • Fungsi utama bus ialah menyediakan laluan komunikasi bagi penghantaran data antara pemproses, memori utama dan peranti I/O.

  41. 1. Bus Pemproses • terdiri dari 3 line: 1. Data 2. Kawalan 3. Alamat • Isyarat kawalan yg terlibat semasa penghantaran data akan menentukan: 1. mod penghantaran (Read/Write) 2. isyarat masa

  42. Line kawalan yg membawa mod penghantaran disetkan kepada 1 untuk Read dan 0 untuk Write. • Line kawalan yg membawa isyarat masa akan menentukan masa untuk pemproses dan peranti boleh meletakkan data pada bus atau menerima data dari bus. • Terdapat 2 cara bagi mengukur masa penghantaran data melalui bus iaitu dengan menggunakan cara: 1. Synchronous 2. Asynchronous

  43. 1. Synchronous • penghantaran adalah berdasarkan kitaran masa yg diberikan oleh clock yg telah ditetapkan. • Satu kitaran masa mewakili satu kitaran bus iaitu masa yg diperlukan untuk melakukan satu penghantaran data. • Cth. Pada rajah 4.19 di sebelah.

  44. line data dan alamat pada rajah ditunjukkan sebagai high dan low pada satu masa. • ini bermakna ada line yg high dan ada yg low bergantung pada alamat atau bentuk data yang dihantar. • titik yg bertemu bermaksud masa bila bentuk (pattern) berubah. • line yg berada di antara high dan low ialah line yg tak pasti status penghantaran atau dalam keadaan berlakunya penolakan atau penentangan litar elektrik terhadap pengaliran kuasa elektrik yg tinggi.

  45. Operasi Input • rujuk rajah 4.19 • t0: pemproses meletakkan alamat peranti input pada line alamat dan mod Read pada line kawalan. • t1: peranti tersebut mengenalpasti bahawa operasi Read dikehendaki dan seterusnya meletakkan data pada line data. • t2: pemproses mengambil data pada line data dan memasukkannya ke dalam buffer input. Pemproses menghapuskan alamat dan mod pada bus.

  46. Operasi Output • rujuk rajah 4.19 • t0: pemproses meletakkan alamat peranti output pada line alamat, data yg hendak dioutput diletakkan pada line data dan mod Write pada line kawalan. • t1: peranti tersebut mengenalpasti bahawa operasi Write dikehendaki dan seterusnya mengambil data pada line data untuk dibawa ke buffer output pada peranti. • t2: pemproses menghapuskan alamat dan mod pada bus.

  47. 2. Asynchronous • menggunakan kaedah ‘handshake’ antara pemproses dan peranti I/O iaitu perakuan penerimaan atau acknowledge • line clock digantikan dengan dua line kawalan iaitu Ready dan Accept • langkah-langkah yg terlibat semasa penghantaran data menggunakan kaedah ini adalah: 1. Pemproses meletakkan alamat dan mod operasi pada bus. 2. Pemproses akan memberitahu semua peranti bahawa langkah 1 telah dilaksanakan dengan mengaktifkan line Ready (Ready=1). 3. Apabila peranti yg berkenaan menerima isyarat Ready, ia akan melaksanakan operasi yg dikehendaki dan memberitahu pemproses bahawa operasi telah dilakukan dengan mengaktifkan line Accept.

  48. 4. Pemproses menunggu isyarat Accept sebelum ia menghapuskan isyarat dari bus. • bagi operasi Read, ia juga menyimpan data ke dalam input buffer. • Operasi input. • Rujuh rajah 4.20 • t0: pemproses meletakkan alamat peranti input dan mod penghantaran pada bus. • t1: pemproses mengaktifkan line Ready (Ready=1) untuk memberitahu bahawa alamat dan mod telah sedia dalam bus. • t2: antaramuka peranti yg berkenaan akan akan menerima isyarat Ready dan kenalpasti bahawa operasi Read dikehendaki. Data diambil dari peranti dan diletakkan pada line data. Line Accept diaktifkan (Accept=1)

More Related