Bus
merupakan lintasan komunikasi yang menghubungkan dua atau lebih perangkat. Bus
merupakan media transmisi yang dapat digunakan bersama. Sejumlah perangkat yang
terhubung ke bus, dan suatu signal yang ditransmisikan oleh salah satu
perangkat ini dapat diterima oleh salah satu perangkat yang terhubung ke bus.
Bila dua buah perangkat melakukan transmisi dalam waktu yang bersamaa, maka
signal-signalnya akan bertumpang tindih dan menjadi rusak.
Umumnya
sebuah bus terdiri dari sejumlah lintasan komunikasi atau saluran.
Masing-masing saluran dapat mentransimisikan signal yang menunjukkan biner 1
dan biner 0. Serangkaian digit biner dapat ditransmisikan melalui saluran
tunggal. Dengan mengumpulkannya beberapa saluran dari sebuah bus dapat
digunakan mentransmisikan digit biner secara bersamaan (secara paralel).
Misalnya sebuah satuan data 8 bit dapat ditransmisikan melalui bus 8 saluran.
Bus terdiri dari 3:
1.
Bus Data
Saluran
yang memberikan lintasan bagi perpindahan data antara dua modul system. Umumnya
bus data terdiri dari 8, 16, 32 saluran, jumlah saluran dikaitkan dengan lebar
bus data. Karena pada suatu saat tertentu masing-masing saluran hanya dapat
membawa 1 bit, maka jumlah saluran menentukan jumlah bit yang dapat diindahkan
pada suatu saat. Lebar bus data merupakan factor penting dalam menentukan
kinerja system secara keseluruahan. Bila bus data lebarnya 8 bit, dan setiap
instruksi panjangnya 16 bit, maka CPU harus 2 kali mengakses modul memori dalam
setiap siklus instruksinya.
2.
Bus Alamat
Digunakan
untuk menandakan sumber atau tujuan data pada bus data, misalnya CPU akan
membaca sebuah word (8, 16, 32 bit) data dari memori, maka CPU akan menaruh
alamat word yang dimaksud pada saluran alamat. Lebar bus alamat menentukan
kapasitas memori maksimum sitem. Selain itu umumnya saluran alamt juga
digunakan untuk mengalamati port-port I/O.
3.
Bus Kontrol
Digunakan
untuk mengontrol akses ke saluran alamat, penggunaan data dan saluran alamat.
Karena data dan saluran alamat digunakan bersama oleh seluruh komponen, maka
harus ada alat untuk mengontrol penggunaannya. Signal-signal kontrol melakukan
transmisi baik perintah mauun informasi pewaktuan diantra modul-modul system.
Signal-signal pewaktuan menunjukkan validitas data dan informasi alamat.
Umumnya saluran kontrol
meliputi :
Memory
Write : menyebabkan data pada bus akan dituliskan ke dalam lokasi alamat.
Memory Read : menyebabkan data dari lokasi alamat ditempatkan pada bus I/O
Write : menyebabkan data pada bus di output kan ke port I/O yang beralamat. I/O
Read : menyebabkan data dari port I/O yang beralamat ditempatkan pada bus.
Transfer ACK : menunjukkan bahwa data telah diterima dari bus atau telah
ditempatkan di bus. Interrupt Request : menandakan bahwa sebuah interrupt
ditangguhkan. Interrupt ACK : memberitahukan bahwa interrupt yang ditangguhkan
telah diketahui. Clock : digunakan untuk mensinkronkan operasi-operasi. Reset :
menginisialisasi seluruh modul
OPERASI BUS
Bila
sebuah modul akan mengirimkan data ke modul lainnya, maka modul itu harus
melakukan dua hal : 1. memperoleh enggunaan bus, dan 2 memindahkan data melalui
bus. Bila sebuah modul akan meminta data dari modul lainnya, maka modul itu
harus 1 memperoleh penggunaan bus, dan 2 memindahkan sebuah request ke modul
lainya melalui saluran kontrol dan saluran alamt yang sesuai. Kemudian modul
harus menunggu modul kedua untuk mengirimkan data.
Bentuk phisik Bus.
Bus
system merupakan sejumlah konduktor listrik parallel. Konduktor-konduktor ini
berupa kawat logam yang berakhir pada kartu atau papan PCB. Bus melintasi
seluruh komponen system yang masing-masing disambungkan ke beberapa atau semua
saluran bus.
Masalah dalam Bus Tunggal/ Single
Bila
perangkat yang berjumlah sangat banyak dihubungkan ke bus, maka akan terjadi
penurunan kinerja. Penyebab utama :
Semakin
banyak perangkat yang dihubungkan ke bus, semakin besar delay propagasinya.
Delay ini menentukan waktu yang diperlukan perangkat untuk mengkoordinasi
pengguna bus
Bus akan
menjadi penyumbat dengan semakin besarnya perindahan data yang hamper mendekati
kapasitas bus. Sampai tingkat tertentu, masalah ini dapat diatasi dengan
memakai bus-bus yang lebih lebar. (misalnya meningkatkan bus data dari 32
menjadi 64 bit) Namun karena kelajuan data disebabkan oleh perangkat-perangkat
yang terhubung (misalnya pengontrol grafis dan video, interface jaringan)
berkembang dengan cepatm maka dalam perlombaan ini besar kemungkinan bus
tunggal akan menderita kekalahan.
Bus local
yang menghubungkan prosesor dengan cache memory dan bus local dapat mendukung
sebuah perangkat local atau lebih. Pengontrol cache memory tidak hanya
menghubungkan cache dengan bus local itu saja, namun juga dengan bus system
yang terhubung dengan seluruh modul memory utama. Manfaat struktur cache
melindungi prosesor dari keharusan seringnya mengakses memori utama, sehingga
memori utama dapat dipindahkan dari bus local ke bus sitem. Dengan cara ini,
transfer I/O ke memori utama dan transfer dari memoriutama yang melintasi bus
system tidak mengganggu aktivitas prosesor.
Sangat mungkin
untuk menghubungkan pengontrol I/O secara langsung dengan bus system.
Penyelesaian yang lebih efisien untuk masalah ini adalah dengan memanfaatkan
satu bus ekspansi atau lebih. Interface bus ekspansi mem-buffer-kan transfer
data antara bus system dengan pengontrol I/O pada bus ekspansi.
Contoh :
Perangkat I/O yang dapat disambungkan ke bus ekspansi. Koneksi jaringan
meliputi LAN misalnya koneksi Ethernet 10 Mbps dan koneksi ke WAN seperti
jaringan paket switching, SCSI (Small Computer System Interface) merupakan
jenis bus yang digunakan untuk mendukung disk drive local dan peripheral
lainnya. Sebuah serial port dapat dipakai untuk mendukung sebuah printer atau
scanner.
Arsitektur
bus tradisional cukup efisien namun mulai mengalami penurunan dengan semakin
tingginya kinerja pada perangkt I/O.
Untuk
menjawab meningkatnya kebutuhan ini, penyelesaianya membuat bus berkecepatan
tinggi yang sangat terintegrasi dengan system, yang hanya memerlukan bridge
antara bus prosesor dengan bus berkecepatan tinggi.
Keuntungan
pengaturan bus berkecepatan tinggi menyebabkan perangkat yang berkapasitas
besar menjadi lebih terintegrasi dengan prosesor dan sekaligus tidak tergantung
lagi terhadap prosesor.
Jenis-jenis Bus
Dedicated : Saluran data
dan alamat terpisah
Multiplexed
: Alamat dan informasi data dapat ditransmisikan melalui sejumlah saluran yang
sama dengan menggunakan saluran ?Address Valid Control?. Pada awal pemindahan
data, alamat ditempatkan pada bus dan ?Address Valid Control? diaktifkan. Pada
saat ini setiap modul memiliki periode waktu tertentu untuk menalin alamt dan
menentukan apakah alamat tersebut merupakan modul beralamat. Kemudian alamat
dihapus dari bus, dan koneksi bus yang sam adigunakan untuk transfer data
pembacaan atau penulisan berikutnya. Metoda penggunaan saluran yang untuk
berbagai keperlua ini dikenal sebagai time multiplexing
Keuntungan
: hanya memerlukan saluran sedikit sehingga menghemat ruang dan biaya
Kerugiannya
: diperlukan rangkain yang lebih kompleks , penurunan kinerja yang cukup besar
Bus Arbitrasi :
Didalam
semua system kecuali system yang paling sederhana, lebih dari satu modul
diperlukan untuk mengontrol bus. Misalnya I/O mungkin diperlukan untuk membaca
atau menulis secara langsung ke memori, dengan tanpa mengirimkan data ke CPU.
Karena pada satu sat hanya sebuah unit yang berhasil mentransmisikan data
melalui bus, maka diperlukan beberapa metode arbitrasi.
Metode
Arbitrasi digolongkan sebagai metode tersentralisasi dan metode terdistribusi.
Tersentralisasi
: sebuah perangkat hardware yang dikenal sebagai pengontrol bus atau arbitrer
bertanggung jawab atas alokasi waktu pada bus. Mungkin perangkat berbentuk
modul atau bagian CPU yang terpisah
Terdistribusi
: tidak terdapat pengontrol sentral, setiap modul terdiri dari acces control
logic dan modul-modul bekerja sama untuk memakai bus bersama-sama
Timing
Timing
berkaitan dengan cara terjadiya event dikoordinasikan pada bus. Dengan timing
yang synchronous, terjadinya event pada bus ditentukan oleh sebuah clock. Bus
meliputi sebuah saluran, waktu tempat timing mentransmisikan rangkaian bilangan
1 dan 0 dalam durasi yang sama. Sebuah transmisi 1-0 dikenal sebagai siklus
waktu atau siklus bus dan menentukan besarnya slot waktu. Semua perangkat
lainnya pada bus dapat membaca saluran waktu, dan semua event dimulai pada awal
siklus waktu.
Timing Sinkron
Signal
bus lainya dapat berubah pada ujung muka signal waktu (dengan sedikit reaksi
delay). Sebagian besar event mengisi suatu siklus waktu. CPU mengeluarkan
signal baca dan menempatkan alamat memori pada bus alamat, CPU mengeluarkan
signal awal untuk menandai keberadaan alamat dan informasi control pada bus.
Modul memori mengetahui alamat itu, dan setelah delay 1 siklus menempatkan data
dan signal balasan pada bus.
Timing Asinkron
Terjadinya
event pada bus mengikuti dan tergantung pada event sebelumnya. CPU menempatkan
alamat dan membaca signal bus. Setelah berhenti untuk memberi kesempatan signal
ini menjadi stabil, CPU mengeluarkan signal MSYN (master syn) yang menandakan
keberadaan alamat yang valid dan signal control. Modul memori memberikan
respons dengan data dan signal SSYN (slave syn) yang menunjukan respon
Timing
sinkron lebih mudah untuk diimplementasikan dan ditest. Namun timing ini kurang
flexible dibandingkan dengan timing asinkron. Karena semua perangkat pada bus
sinkron terkait dengan kelajuan pewaktu yang tetap, maka system tidak dapat
memanfaatkan peningkatan kinerja. Dengan menggunakan timing asinkron, campuran
antara perangkat yang lamban dan cepat, baik dengan menggunakan teknologi lama
maupun baru, dapat menggunakan bus secara bersama-sama.
Lebar Bus
Lebar bus dapat
mempengaruhi kinerja system, semakin lebar bus data, semakin besar bit yang
dapat ditransferkan pada suatu saat. Lebar bus alamat mempunyai pengaruh pada
kapasitas system : semakin lebar bus alamat, semakin besar range lokasi yang
dapat direferensi.
PCI
heripheral Component
Interconnect (PCI) merupakan bus yang tidak tergantung prosessor berbandwidth
tinggi yang dapat berfungsi sebagai bus peripheral atau bus mezzanine. PCI
memberikan system yang lebih baik bagi subsistem I/O berkecepatan tinggi.. PCI
dirancang untuk mendukung bermacam-macam konfigurasi berbasis microprocessor,
baik system microprocessor tunggal maupun jamak. PCI memanfaatkan timing
sinkron dan pola arbitrasi tersentralisasi..
PCI Saluran Bus.
Signal-signal ini dibagi menjadi kelompok-kelompok :
System pins: meliputi pin waktu dan reset
Address dan data : meliputi 32 saluran yang time multiplexed bagi
alamat dan data. Saluran lainya untuk menginterpretasi dan mevalidasi
saluran-saluran signal yang membawa alamat dan data
Interface Control: Mengontrol timing transaksi dan
mengkoordinasikan antara inisiator dan target
Arbitration: Masing-masing master PCI memiliki pasangan saluran
arbitrasinya sendiri yang menghubungkannya secara langsung dengan arbiter bus
PCI
Error repots : Melaporkan error parity dan eror lainnya.
PCI saluran bus
Interupt pins : Saluran
signal ini disediakan bagi perangkat-perangkat PCI yang harus menghasilkan
request untuk layanan. Pin-pin ini pun bukan saluran yang dapat dipakai
bersama, melainkan masing-masing PCI memilih saluran interrupt ke pengontrol
interrupt
Cache Support : Diperlukan untuk mendukung memori pada PCI yang
dapat di cache kan di dalam prosesor
64 bit Bus Extension : Meliputi 32 saluran yang merupakan
time-multiplexed bagi alamat dan data dan dikombinasikan dengan saluran
alamat/data untuk membentuk bus alamat/data 64 bit. Saluran lainnya di dalam
kelompok ini digunakan untuk menginterpretasi dan memvalidasi saluran-saluran
signal yang membawa alamat dan data. Terakhir terdapat dua saluran yang
memungkinkan dua buah perangkat PCI untuk menyetujui penggunaan kemampuan 64
bit
JTAG/Boundary Scan : Saluran signal untuk pengujian prosedur-prosedur
yang ditentukan dalam standard 149.1.IEEE.
Operasi Baca PCI
Sekali master bus telah
memperoleh control bus, maka master bus akan memulai transaksi dengan
menegaskan FRAME. Saluran ini akan tetap ditegaskan sampai inisiator siap untuk
menyelesaikan fase data yang terakhir. Inisiator juga menaruh alamat awal pada
bus alamat, dan membaca perintah pada saluran C/BE
Pada awal waktu ke-2, perangkat target akan mengetahui alamatnya
di saluran AD
Inisiator berhenti mengendalikan bus AD. Siklus balik (yang ditandai
oleh dua buah panah sikular) diperlukan pada semua saluran signal yang akan
dikendalikan oleh lebih dari sebuah perangkat, sehingga penurunan signal alamat
akan mempersiapkan bus untuk dipakai oleh perangkat target. Inisiator mengubah
informasi pada saluran C/BE untuk memilih saluran AD yang akan digunakan untuk
melakukan transfer data beralamat (dari 1 hingga 4 bit). Inisiator juga
menegaskan IRDY untuk menandakan bahwa dirinya siap untuk butir data pertama.
Target yang terpilih
menunjuk DEVSEL untuk menunjukkan bahwa target telah mengetahui alamatnya dan
akan memberikan respon. Target yang terpilih menempatkan data yang diminta pada
saluran AD dan menegaskan TRDY untuk mengindikasikan bahwa data yang valid
terdapat pada bus
Inisiator membaca data pada awal waktu ke-4 dan mengubah salurah
enable byte begitu diperlukan dalam persiapan pembacaan berikutnya
Dalam contoh ini, target
membutuhkan beberapa saat untuk mempersiapkan blok kedua untuk transmisi.
Karena itu target melepaskan TRDY untuk memberi signal kepada inisiator bahwa
tidak akan terdapat data baru selama siklus berikutnya. Kemudian inisiator
tidak akan membaca saluran data pada awal siklus waktu ke-5 dan tidak mengubah
byte enable selama siklus itu. Blok data dibaca pada awal waktu ke-6.
Selama waktu ke-6, target
menempatkan butir data ketiga pada bus. Namun dalam contoh ini, inisiator belum
siap untuk membaca butir data (misalnya inisiator mempunyai kondisi penuh
buffer sementara). Karena itu inisiator melepaskan IRDY. Hal ini akan menyebabkan
target untuk menyediakan butir data ketiga pada bus siklus waktu tambahan
Inisiator mengetahui bahwa
transfer data ketiga adalah terakhir, karena itu inisiator melepaskan FRAME
untuk memberikan signal bahwa dirinya siap untuk menyelesaikan transfer tersebut.
Inisiator melepaskan IRDY,
yang mengembalikan bus ke keadaan idle, dan target melepaskan TRDY dan DEVSEL
Arbitrasi PCI antara 2 master
Pada saat titik sebelum
awal waktu ke-1, A telah menegaskan signal REQ-nya. Arbiter men-sample signal
ini pada awal siklus waktu ke-1
Selama siklus waktu ke-1, B membuat request untuk menggunakan bus
dengan menegaskan signal REQ-nya
Pada saat yang sama,
arbiter menegaskan GNT-A untuk memberikan hak akses bus kepada A
Master bus A men-sample
GNT-A pada awal waktu ke-2 dan memeriksa apakah dirinya telah diberi hak
mengakses bus. Master bus juga menemukan pelepasaran IRDY dan TRDY yang
menandakan bahwa bus tersebut dalam keadaan idle. Setelah itu, master bus
menegaskan FRAME dan menempatkan informasi alamat pada bus alamat dan perintah
pada bus C/BE (tidak ditunjukkan). Master bus juga melanjutkan penegasan REQ-A,
karena master bus memiliki transaksi kedua yang akan dibentuk setelah transaksi
ini
Arbiter bus men-sample
semua saluran GNT pada awal waktu ke 3 dan membuat keputusan arbitrasi untuk
memberikan hak mengakses bus ke B pada transaksi berikutnya. Kemudian arbiter
bus menegaskan GNT-B dan melepaskan GNT-A. B tidak akan dapat menggunakan bus hingga
bus itu dikembalikan ke keadaan idle.
A melepaskan FRAME untuk
menandakan bahwa transfer data terakhir (dan satu-satunya) sedang dilakukan. A
menaruh data pada bus data dan memberi signal ke target dengan IRDY. Target
membaca data pada awal siklus waktu berikutnya
Pada awal waktu ke-5 menemukan IRDY dan FRAME yang dilepaskan dank
arena itu B dapat melakukan control terhadap bus dengan menegaskan FRAME. B
juga melepaskn saluran REQ-nya karena B hanya perlu membentuk satu transaksi
saja.