Sabtu, 17 Juni 2017

Sistem Interkoneksi Dalam Komputer (CPU)

Sistem Interkoneksi
Struktur interkoneksi merupakan kumpulan lintasan atau saluran berbagai modul seperti CPU, memori dan I/O. Struktur interkoneksi tergantung pada jenis data dan karakteristik pertukaran data.

Jenis Data

-    Memory
Pada umumnya, memori terdiri atas N word memori dengan panjang yang sama. Masing–masing word diberi alamat numerik yang unik (0, 1, 2, …N-1). Word dapat dibaca maupun ditulis pada memori dengan kontrol Read dan Write. Lokasi bagi operasi dispesifikasikan oleh sebuah alamat.
        
-    CPU
CPU berfungsi sebagai pusat pengolahan dan eksekusi data berdasarkan routine–routine program yang diberikan padanya. CPU mengendalikan seluruh sistem komputer sehingga sebagai konsekuensinya memiliki koneksi ke seluruh modul yang menjadi bagian sistem komputer.
         Modul Input / Output
Operasi modul I/O adalah pertukaran data dari dan ke dalam komputer. Berdasakan pandangan internal, modul I/O dipandang sebagai sebuah memori dengan operasi pembacaan dan penulisan. Seperti telah dijelaskan pada bab 6 bahwa modul I/O dapat mengontrol lebih dari sebuah perangkat peripheral. Modul I/O juga dapat mengirimkan sinyal interrupt.Dalam Pertukaran data yang diperlukan oleh modul-modul komputer, maka struktur interkoneksi harus mendukung perpindahan data tersebut, di antaranya :

•    Memori ke CPU : CPU melakukan pembacaan data maupun perintah yang berasal dari memori.
•    CPU ke memori : CPU melakukan penyimpanan atau penulisan data ke memori.
•    I/O ke CPU      : CPU membaca data dari peripheral melalui modul I/O.
•    CPU ke I/O       : CPU mengirimkan data ke perangkat peripheral melalui modul I/O.
•    I/O ke memori atau dari memori : digunakan pada system DMA.
Interkoneksi yang banyak digunakan sampai saat ini adalah system bus. Bus merupakan lintasan komunikasi yang menghubungkan dua atau lebih komponen komputer. 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 dikategorikan dalam tiga bagian :




1. Saluran data (data bus) merupakan lintasan untuk perpindahan data antar modul. Lintasan ini juga biasa disebut bus data. Jumlah saluran terkait dengan panjang word, misalnya 8, 16, 32 atau 64 saluran. Tujuannya adalah dapat mentransfer word dalam sekali waktu. Jumlah saluran dalam bus data dikatakan sebagai lebar bus dengan satuan bit.

2. Saluran alamat (address bus) merupakan saluran alamat adalah menspesifikasi sumber dan tujuan data pada bus data, mengirim alamat word pada memori yang akan diakses CPU, dan sebagai saluran alamat perangkat modul komputer saat CPU mengakses suatu modul. Address bus biasanya terdiri atas 16, 20, 24, atau 32 jalur paralel.

3. Saluran Kontrol (control bus) adalah Bagian saluran yang digunakan untuk mengontrol bus data, bus alamat dan seluruh modul yang ada. Control bubus terdiri atas 4 samapai 10 jalur paralel.
Sinyal – sinyal kontrol terdiri atas :
•    š  Sinyal pewaktuan : menandakan validitas data dan alamat.
•    š  Sinyal–sinyal perintah : membentuk suatu operasi.

Jenis Saluran Kontrol Tugas

Memory Write, Memerintahkan data pada bus akan dituliskan ke dalam lokasi alamat
Memory Read, Memerintahkan data dari lokasi alamat ditempatkan pada bus data
I/O Write, Memerintahkan data pada bus dikirim ke lokasi port I/O
I/O Read, Memerintahkan data dari port I/O untuk ditempatkan pada bus data
Transfer ACK, Menunjukkan data telah diterima dari bus atau data telah ditempatkan pada bus
Bus Request, Menunjukkan bahwa modul memerlukan kontrol bus
Bus Grant, Menunjukkan modul yang melakukan request telah diberi hak mengontrol bus
Interrupt Request, Menandakan adanya penangguhan interupsi dari modul
Interrupt ACK, Menunjukkan penangguhan interupsi telah diketahui CPU
Clock Mengontrol, untuk sinkronisasi operasi antar modul
Reset, Menginisialisasi seluruh modul


Komponen Sistem Komputer

Secara garis besar sistem komputer tersusun dari 3 (tiga) komponen utama, yaitu :
•         CPU (Central Processing Unit) atau Prosesor, yang terdiri dari: ALU (Arithmetic and Logic    Unit), Register dan Control Unit
•         Memory
•         I/O Device

Ketiga komponen tersebut dihubungkan dengan suatu Struktur Interkoneksi tertentu. Pengetahuan tentang komponen-komponen ini beserta operasi atau interaksinya memungkinkan kita untuk melihat lebih dalam penyebab kelambatan sistem, jalur alternatif, skala kegagalan sistem dan peluang untuk peningkatan unjuk kerja. Gambar 2.1. memperlihatkan komponen-komponen sebuah sistem komputer.


Von Neumann berjasa karena idenya tentang Pengendalian Operasi Hardware Komputer melalui manipulasi sinyal kendali. Sebelum idenya direalisasikan, komputer pertama (ENIAC) harus diubah secara fisik (sambungan atau solderannya) jika fungsi komputasi komputer ingin diubah. Tetapi kemudian hal ini tidak terjadi lagi setelah Von Neumann memperkenalkan penggunaan memori untuk menyimpan program yang berupa urutan instruksi untuk dieksekusi dalam manipulasi sinyal kendali. Program ini dibuat untuk mewujudkan operasi tertentu. Ini merupakan peralihan dari rancang ulang hardware menjadi pemrograman software. Arsitektur Von Neumann ini merupakan basis bagi seluruh rancangan komputer sejak komputer generasi pertama. Karakteristik Arsitektur Komputer Von Neuman adalah sebagai berikut:

•         Baik data maupun instruksi (urutan kendali) diletakkan dalam memori yang sama. Sehingga data tidak bisa dibedakan dari memori karena keduanya ditulis dengan cara yang sama (biner code) dan diletakkan di tempat yang sama (memori)
•         Isi memori dapat diakses berdasarkan alamatnya, tanpa memperdulikan type data atau instruksi yang dikandungnya
•         Eksekusi instruksi dilakukan secara berurutan, mulai dari instruksi yang ditulis pada lokasi awal memori , kemudian lokasi berikutnya dan seterusnya sampai akhir program
•         Secara umum, yang dilakukan prosesor adalah mengambil instruksi dari memori, kemudian menterjemahkan istruksi tersebut menjadi aksi untuk transfer maupun olah data dalam ALU. Gambar 2.2. memperlihatkan skema hal tersebut.

                                                  Gambar 2.2. Cara kerja prosesor

      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


       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.



Perbedaan Siklus Intruksi Fetch dan Execute

Siklus Fetch:
•    Pada setiap siklus instruksi, CPU awalnya akan membaca instruksi dari memori.
•    Terdapat register dalam CPU yang berfungsi mengawasi dan menghitung instruksi selanjutnya, yang disebut dengan Program Counter (PC).
•    PC akan menambah satu hitungannya setiap kali CPU membaca instruksi.
•    Instruksi-instruksi yang dibaca akan dibuat dalam register instruksi (IR).
•    Instruksi-instruksi ini dalam bentuk kode-kode biner yang dapat di interprestasikan oleh CPU kemudian dilakukan aksi yang diperlukan.

Siklus Eksekusi
•    Instruction Address Calculation (IAC), yaitu mengkalkulasikan atau menentukan alamat instruksi berikutnya yang akan dieksekusi.
•    Instruction Fetch (IF), yaitu membaca atau mengambil 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.
•    Operator Address Calculation (OAC), yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori.
•    Operand Fetch (OF), 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.


Link Download PDF :
https://drive.google.com/open?id=0B6RNZhBuVsSuQnk0T2JKeGNrMzA




Title: Sistem Interkoneksi Dalam Komputer (CPU); Written by Unknown; Rating: 5 dari 5

2 komentar: