Interkoneksi struktur
Komputer terdiri dari satu set komponen atau modul dari tiga tipe dasar (prosesor, memori, i / o) yang berkomunikasi satu sama lain. Pada dasarnya, komputer adalah jaringan modul bacis. Sehingga harus ada jalan untuk menghubungkan modul.
Koleksi jalan yang menghubungkan berbagai modul disebut struktur interkoneksi. Desain struktur ini akan tergantung pada pertukaran yang harus dilakukan antara modul.
Angka 3,15 menunjukkan jenis pertukaran yang dibutuhkan oleh yang menunjukkan bentuk utama dari input dan output untuk setiap jenis modul Struktur interkoneksi adalah kumpulan lintasan yang menghubungkan berbagai komponen-komponen seperti CPU, Memory dan i/O, yang saling berkomunikasi satu dengan lainnya.
1. CPU
CPU membaca instruksi dan data, menulis data setelah diolah, dan menggunakan signal-signal kontrol untuk mengontrol operasi sistem secara keseluruhan. CPU juga menerima signal-signal interupt.
2. MEMORY
Memory umumnya modul memory terdiri dari n word yang memiliki panjang yang sama. Masing-masing word diberi alamat numerik yang unik(0,1…,N-1). Sebuah word data dapat dibaca dari memory atau ditulis ke memori. Sifat operasinya ditandai oleh signal-signal control read dan write. Lokasi bagi operasi dispesifikasikan oleh sebuah alamat.
3. I/O
I/O berfungsi sama dengan memory.Terdapat dua buah operasi, baca dan tulis. Selain itu, modul-modul i/O dapat mengontrol lebih dari 1 perangkat eksternal. Kita dapat mengaitkan interface ke perangkat eksternal sebagai sebuah port dan memberikan alamat yang unik (misalnya,0,1,…,M-1) ke masing-masing port tersebut. Di samping itu, terdapat juga lintasan-lintasan data internal bagi input dan output data dengan suatu perangkat eksternal. Terakhir, modul i/O dapat mengirimkan sinyal-sinyal interupt ke cpu.
4. PROCESSOR
Prosesor membaca dalam instruksi dan data, menulis data setelah keluar pengolahan, dan menggunakan sinyal kontrol untuk mengendalikan keseluruhan sistem operasi. Juga menerima sinyal interupt.
Dari jenis pertukaran data yang diperlukan modul – modul komputer, maka struktur interkoneksi harus mendukung perpindahan data berikut :
a. Memori ke CPU
CPU melakukan pembacaan data maupun instruksi dari memori.
b. CPU ke Memori
CPU melakukan penyimpanan atau penulisan data ke memori.
c. I/O ke CPU
CPU membaca data dari peripheral melalui modul I/O.
d. CPU ke I/O
CPU mengirimkan data ke perangkat peripheral melalui modul I/O.
e. I/O ke Memori atau dari Memori ke I/O
digunakan pada sistem DMA.
Saat ini terjadi perkembangan struktur interkoneksi, namun yang banyak digunakan adalah sistem bus. Sistem bus ada yang digunakan yaitu sistem bus tunggal dan struktur sistem bus campuran, tergantung karakteristik sistemnya.
Interkoneksi Bus
Bus merupakan lintasan komunikasi yang menghubungkan dua atau lebih komponen komputer. Karakteristik utama dari bus yaitu sebagai media transmisi yang dapat digunakan bersama oleh sejumlah perangkat yang terhubung padanya. Karena digunakan bersama, diperlukan pengaturan agar tidak terjadi tabrakan data atau kerusakan data yang ditransmisikan. Walaupun digunakan scara bersamaaan, dalam satu waktu hanya ada sebuah perangkat yang dapat menggunakan bus.
Struktur Bus
Sebuah bus biasanya terdiri atas beberapa saluran. Sebagai contoh bus data terdiri atas 8 saluran sehingga dalam satu waktu dapat mentransfer data 8 bit. Secara umum fungsi saluran bus dikatagorikan menjadi tiga bagian, yaitu :
i. Saluran data
Saluran data (data bus) adalah lintasan yang digunakan sebagai perpindahan data antar modul. Secara umum lintasan ini disebut bus data. Umumnya jumlah saluran terkait dengan panjang word, misalnya 8, 16, 32. Saluran ini bertujuan agar mentransfer word dalam sekali waktu. Jumlah saluran dalam bus data disebut lebar bus, dengan satuan bit, misal : lebar bus 16 bit.
ii. Saluran alamat
Saluran alamat (address bus) digunakan untuk menspesifikasi sumber dan tujuan data pada bus data. Saluran ini digunakan untuk mengirim alamat word pada memori yang akan diakses CPU. Juga digunakan untuk saluran alamat perangkat modul komputer saat CPU mengakses suatu modul. Perlu diketahui, semua peralatan yang terhubung dengan sistem komputer, agar dapat diakses harus memiliki alamat. Misalnya mengakses port I/O, maka port I/O harus memiliki alamat hardware-nya.
iii. Saluran kontrol.
Saluran kontrol (control bus) digunakan untuk mengontrol bus data, bus alamat dan seluruh modul yang ada. Karena bus data dan bus alamat digunakan oleh semua komponen maka diperlukan suatu mekanisme kerja yang dikontrol melalui bus kontrol ini. Sinyal–sinyal kontrol terdiri atas sinyal pewaktuan dan sinyal–sinyal perintah. Sinyal pewaktuan menandakan validitas data dan alamat, sedangkan sinyal perintah berfungsi membentuk suatu operasi.
Secara umum saluran kontrol meliputi :
o Memory Write, memerintahkan data pada bus yang akan dituliskan ke dalam lokasi alamat.
o Memory Read memerintahkan data dari lokasi alamat ditempatkan pada bus data.
o I/O Write, memerintahkan data pada bus dikirim ke lokasi port I/O.
o I/O Read, memerintahkan data dari port I/O ditempatkan pada bus data.
o Transfer ACK, menunjukkan data telah diterima dari bus atau data telah ditempatkan pada bus.
o Bus Request, menunjukkan bahwa modul memerlukan kontrol bus.
o Bus Grant, menunjukkan modul yang melakukan request telah diberi hak mengontrol bus.
o Interrupt Request, menandakan adanya penangguhan interupsi dari modul.
o Interrupt ACK, menunjukkan penangguhan interupsi telah diketahui CPU.
o Clock, kontrol untuk sinkronisasi operasi antar modul.
o Reset, digunakan untuk menginisialisasi seluruh modul.
Secara fisik bus adalah konduktor listrik yang dihubngkan secara paralel yang berfungsi menghubungkan modul–modul. Konduktor ini biasanya adalah saluran utama pada PCB motherboard dengan layout tertentu sehingga didapat fleksibilitas penggunaan. Untuk modul I/O biasanya dibuat slot bus yang mudah dipasang dan dilepas, seperti slot PCI dan ISA. Sedangkan untuk chips akan terhubung melalui pinnya.
Prinsip Operasi
Prinsip operasi bus adalah sebagai berikut :
· Operasi pengiriman data ke modul lainnya :
1) Meminta penggunaan bus.
2) Apabila telah disetujui, modul akan memindahkan data yang diinginkan ke modul yang dituju.
· Operasi meminta data dari modul lainnya :
1) Meminta penggunaan bus.
2) Mengirim request ke modul yang dituju melalui saluran kontrol dan alamat yang sesuai.
3) Menunggu modul yang dituju mengirimkan data yang diinginkan.
Hierarki Multiple Bus
Bila terlalu banyak modul atau perangkat dihubungkan pada bus maka akan terjadi penurunan kinerja.
Faktor – faktor :
§ Semakin besar delay propagasi untuk mengkoordinasikan penggunaan bus.
§ Antrian penggunaan bus semakin panjang.
§ Dimungkinkan habisnya kapasitas transfer bus sehingga memperlambat data.
Arsitektur Bus Jamak
Prosesor, cache memori dan memori utama terletak pada bus tersendiri pada level tertinggi karena modul – modul tersebut memiliki karakteristik pertukaran data yang tinggi.
Pada arsitektur berkinerja tinggi, modul – modul I/O diklasifikasikan menjadi dua, yaitu :
v Memerlukan transfer data berkecepatan tinggi
v Memerlukan transfer data berkecepatan rendah
v Modul dengan transfer data berkecepatan tinggi disambungkan dengan bus berkecepatan tinggi pula,
v Modul yang tidak memerlukan transfer data cepat disambungkan pada bus ekspansi
Arsitektur Bus Jamak Kinerja Tinggi
Keuntungan hierarki bus jamak kinerja tinggi, yaitu :
v Bus berkecepatan tinggi lebih terintegrasi dengan prosesor.
v Perubahan pada arsitektur prosesor tidak begitu mempengaruhi kinerja bus
Eksekusi Instruksi (Instruction Execution)
Eksekusi instruksi meliputi langkah-langkah berikut :
a) Penentuan alamat instruksi berikutnya yang akan dieksekusi
b) Pengambilan instruksi dari lokasi yang ditunjuk tersebut, kemudian meletakkannya di register instruksi (Instruction Register) yang terletak berdampingan dengan Control Unit.
c) Penterjemahan (decode) instruksi untuk mengetahui operasi apa yang harus dilakukan.
d) Kalkulasi alamat operand (data yang akan dilibatkan dalam operasi), kemudian ambil operand tersebut.
e) Melakukan operasi tertentu terhadap operand tersebut.
f) Simpan hasilnya pada salah satu lokasi data, register atau memori.
g) Pengecekan terhadap keberadaan interupsi. Jika ada, maka eksekusi instruksi berikutnya ditunda dan operasi instruksi interupsi dimulai.
Gambar 2.3 memperlihatkan siklus instruksi yang secara garis besar terdiri dari tahap pengambilan (fetch cycle) dan tahap eksekusi (execution cycle). Sedangkan Gambar 2.4 berisi diagram keadaan (state diagram ) yang merupakan rincian siklus eksekusi instruksi.
Gambar 2.3. Siklus Instruksi
Gambar 2.4. Diagram Keadaan untuk Langkah Instruksi
Gambar 2.5 memperlihatkan contoh siklus eksekusi sebuah instruksi yang terdiri dari 6 tahap, yaitu :
1. Karena PC (Program Counter) berisi angka 300, maka instruksi yang akan diambil adalah instruksi yang terletak di memori alamat 300, yaitu instruksi dengan kode 1940. Instruksi tersebut diambil dari memori kemudian disimpan di register instruksi (Instruction Register).
2. Misalkan kode 1940 merupakan instruksi dengan kode operasi (Operation Code,opcode) 1, diikuti dengan 940 yang merupakan alamat operand. Opcode 1 berarti instruksi untuk mengcopy data dari alamat operand (dalam hal ini 940) ke akumulator. Maka data yang terletak di alamat 940 dicopy ke accumulator untuk diproses dalam siklus eksekusi ini.
3. Setelah itu isi PC ditambah satu (incremented) sehingga isinya menjadi 301. Artinya, instruksi berikutnya yang harus diambil dari memori dan dieksekusi terletak di memori alamat 301, yaitu instruksi dengan kode 5941. Instruksi tersebut mengandung opcode 5 dan alamat operand 941.
4. Karena 5 berarti penjumlahan antara isi akumulator dengan isi memori yang alamatnya diberikan di sebelah angka 5, maka isi akumulator dijumlahkan dengan isi memori alamat 941. Kemudian hasil penjumlahannya dikembalikan ke akumulator.
5. Setelah PC ditambah satu, maka isinya menjadi 302, sehingga instruksi berikutnya yang diambil dari memori adalah 2941, yaitu opcode 2 dan operand 941.
6. Arti 2941 adalah perintah untuk mengcopy isi akumulator ke memori alamat 941.
Gambar 2.5. Contoh Eksekusi Program
3. Interupsi (Interrupt)
Dalam proses eksekusi program, dikenal istilah interupsi, yaitu mekanisme pengalihan kendali CPU dari program utama atau eksekusi normal ke program subrutin karena interupsi dari suatu modul I/O. Biasanya I/O device ini 1 sampai 10 kali lebih lambat dari CPU, sehingga sangat tidak efisien jika CPU harus menunggunya tanpa melakukan operasi apapun. Selama menunggu I/O device tersebut, CPU dapat melakukan operasi eksekusi program normal. Tetapi ketika terjadi interupsi, eksekusi normal tersebut dihentikan sementara untuk melayani interupsi berupa eksekusi program atau instruksi lain. Gambar 2.6. memperlihatkan alur kendali kendali eksekusi program dengan dan tanpa interupsi. Pada gambar (a) terlihat bahwa pengalihan kendali eksekusi dilakukan karena opcode instruksi terakhir, dalam hal ini instruksi CALL, bukan karena dicegat oleh interupsi. Sedangkan pada gambar (b) dan (c), pengalihan kendali eksekusi disebabkan oleh interupsi. Perbedaan gambar (b) dengan (c) adalah sebagai berikut. Pada short I/O wait, penundaan eksekusi program (program suspending) dapat terjadi di mana saja pada akhir eksekusi instruksi. Gambar 2.7. memperlihatkan proses ini lebih rinci. Sedangkan pada Long I/O wait (lihat juga gambar 2.8.), program suspending hanya boleh terjadi pada saat-saat tertentu saja, yaitu pada akhir potongan program, bukan pada akhir eksekusi instruksi saat terjadinya interupsi.
Gambar 2.6. Alur Kendali Program dengan dan tanpa interups
Gambar 2.7. Pengalihan Kendali via interupsi
Gambar 2.8. Program Timing: Long I/O wait
Prosesor dan Operating System bertanggung jawab untuk mengidentifikasi interupsi, menunda eksekusi program normal, melayani interupsi dengan mengeksekusi program atau instruksi tertentu, kemudian melanjutkan eksekusi program normal yang tertunda tadi. Interupsi diproses dalam siklus interupsi yang terkandung dalam keseluruhan siklus instruksi. Gambar 2.9. memperlihatkan siklus eksekusi instruksi yang memungkinkan adanya interupsi. Sedangkan gambar 2.10. memperlihatkan lebih rinci siklus eksekusi yang diselipi interupsi. Gambar 2.10. ini merupakan modifikasi gambar 2.4.
Gambar 2.9. Siklus Instruksi dengan interupsi
Gambar 2.10. Diagram Keadaan untuk Siklus Instruksi, dengan interupsi.
Berikut ini adalah urutan siklus interupsi :
a. Pada setiap akhir eksekusi instruksi, yaitu setelah penyimpanan operand ke dalam memori atau register, prosesor mengecek keberadaan interupsi.
b. Jika tidak ada interupsi, maka eksekusi program normal dilanjutkan ke instruksi berikutnya. Tetapi jika ada, maka :
· Eksekusi program normal ditunda sementara dan keadaan prosesor (isi seluruh register penting) direkam dalam tumpukan (stack).
· Lompat ke Interrupt Service Routine (ISR), yaitu ke lokasi memori yang berisi program pelayanan untuk interupsi terkait. Kemudian proses eksekusi instruksi dimulai seperti biasa.
· Setelah eksekusi program ISR selesai, keadaan prosesor ketika ditunda sementara (suspended) dikembalikan, yaitu mengcopy isi stack ke dalam register-register. Setelah itu eksekusi instruksi dimulai seperti biasa.
Sebuah sistem komputer dapat memiliki beberapa sampai lusinan sumber interupsi, masing-masing akan dilayani oleh ISR terkait. Proses yang harus dilakukan jika lebih dari 1 interupsi terjadi pada waktu bersamaan, atau interupsi datang ketika prosesor sedang mengeksekusi ISR interupsi lain, adalah sebagai berikut:
· Sebelumnya, sistem harus menentukan tingkatan prioritas untuk setiap interupsi.
· Pada saat memulai siklus interupsi, interupsi yang memiliki prioritas lebih tinggi dapat menunda eksekusi ISR yang sedang berlangsung.
· Interupsi lainnya akan dilayani kemudian.
· Jika interupsi terjadi ketika prosesor sedang mengeksekusi ISR, maka :
§ Instruksi yang terbaru diabaikan (dengan cara disable interrupt) sampai proses eksekusi ISR selesai. Misal pada mikrokontroler Motorolla MC68HC11.
§ Identifikasi dan pelayanan interupsi dilakukan hanya jika interupsi terbaru memiliki prioritas lebih tinggi dari interupsi yang sedang dilayani. Misal pada prosesor Intel 8085.
Gambar 2.11. memperlihatkan skema eksekusi program yang disela oleh 2 interupsi. Kedua ISR dieksekusi secara berurutan (sequential), sebagaimana terlihat pada gambar (a). Sedangkan gambar (b) memperlihatkan skema eksekusi yang disela oleh 1 interupsi, kemudian ketika ISR pertama dieksekusi, disela lagi oleh interupsi berikutnya yang memiliki prioritas lebih tinggi.
Gambar 2.11.Peralihan Kendali dengan interupsi ganda.
Sedangkan Gambar 2.12. memperlihatkan skema eksekusi program yang disela oleh 3 interupsi. ISR komunikasi dapat menyela ISR printer karena prioritas komunikasi lebih tinggi daripada printer. Sedangkan ISR disk tidak dapat menyela ISR komunikasi karena prioritas disk lebih rendah dari komunikasi. Tetapi karena disk memiliki prioritas lebih tinggi daripada printer, maka segera setelah ISR komunikasi dieksekusi, ISR disk dieksekusi.
Gambar 2.12. Urutan waktu untuk interupsi ganda.
daftar pustaka