03
Sep
09

PCI (Peripheral Component Interconnect)

Peripheral Component Interconnect (PCI) merupakan bus yang tidak tergantung prosesor dan berbandwidth tinggi yang dapat berfungsi sebagai bus mezzanine atau bus peripheral. Dibandingkan dengan spesifikasi bus lainnya, PCI memberikan sistem yang lebih baik bagi subsistem I/O berkecepatan tinggi (misalnya, graphic display adapter, network interface controller, disk controller, dll). Standard yang berlaku saat ini mengizinkan penggunaan sampai 64 saluran data pada kecepatan 33 MHz, bagi kelajuan transfer 264 MByte/detik, atau 2,112 Gbps. Namun bukan hanya kecepatannya saja yang tinggi yang membuat PCI menarik. PCI khusus dirancang untuk memenuhi kebutuhan I/O sistem yang modern secara ekonomi; PCI hanya memerlukan keping yang lebih sedikit untuk mengimplementasikan dan mendukung bus lainnya yang dihubungkan ke bus PCI.

Intel mulai menerapkan PCI pada tahun 1990 untuk sistem berbasis Pentiumnya. Segera Intel menerbitkan semua patent bagi domain publik dan mempromosikan pembuatan himpunan industri, PCI SIG, untuk pembuatan lebih lanjut dan memelihara kompatibilitas spesifikasi PCI. Hasilnya adalah bahwa PCI secara luas diterima dan penggunaannya pada komputer pribadi, workstation, dan sistem server terus meningkat. Versi saat ini, PCI 2.0, diterbitkan 1993. Karena spesifikasinya berada di dalam domain publik dan didukung oleh industri microprosesor dan peripheral secara luas, PCI yang dibuat oleh vendor yang berlainan tetap kompatibel.

Peripheral Component Interconnect (PCI)

Gambar 1 Contoh Konfigurasi PCI

PCI dirancang untuk mendukung bermacam-macam konfigurasi berbasis microprosesor, baik sistem microprosesor tunggal maupun banyak. Karena itu, PCI memberikan sejumlah fungsi untuk kebutuhan umum. PCI memanfaatkan timing sinkron dan pola arbitrasi tersentralisasi.

Gambar 1a menunjukkan penggunaan umum PCI di dalam sistem prosesor tunggal. Kombinasi pengontrol DRAM dan bridge dengan bus PCI memberikan coupling yang erat dengan prosesor dan kemampuan pengiriman data berkecepatan tinggi. Bridge berfungsi sebagai suatu buffer data sehingga kecepatan bus PCI berbeda dengan kemampuan 110 prosesor. Di dalam sebuah sistem multiprosesor (Gambar 1b), sebuah konfigurasi PCI atau lebih dapat dihubungkan oleh bridge dengan bus sistem prosesor. Bus sistem hanya mendukung unit prosesor/cache, memori utama, dan bridge PCI. Fungsi bridge yang menjaga agar PCI tidak tergantung pada kecepatan prosesor memberikan kemampuan untuk menerima dan mengirim data secara cepat

Struktur Bus

PCI dapat dikonfigurasikan sebagai bus 32-bit atau 64-bit. Tabel 1 mendefinisikan 50 saluran signal yang diharuskan bagi PCI. Signal-signal ini dibagi menjadi kelompok-kelompok fungsional sebagai berikut:

  • System pins: Metiputi pin waktu dan reset.
  • Address and Data Pins: Meliputi 32 saluran yang time-multiplexed bagi alamat dan data.

Saluran lainnya di dalam kelompok mi digunakan untuk menginterpretasi dan memvalidasi saluran-saluran signal yang membawa alamat dan data.

  • Interface Control Pins: Mengontrol timing transaksi dan mengkoordinasikan antara inisiator dan target.
  • Arbitration Pins: Tidak seperti saluran signal PCI lainnya, pin-pin ini bukan saluran yang dipakai bersama-sama. Melainkan, masing-masing master PCI memiliki pasangan saluran arbitrasinya sendiri yang menghubungkannya secara langsung dengan arbitrer bus PCI.
  • Error Reporting Pins: Digunakan untuk melaporkan error parity dan error-error lainnya.

Selain itu, spesifikasi PCI mendefinisikan 50 saluran signal optional (Tabel 2) yang dibagi menjadi kelompok-kelompok fungsional sbb.:

  • Interrupt Pins: Saluran signal ini disediakan bagi perangkat-perangkat PCI yang harus menghasilkan request untuk layanan. Seperti halnya pin arbitrasi, pin-pin ini pun bukan saluran yang dapat dipakai bersama. Melainkan, masing-masing perangkat PCI memiliki sendiri saluran interrupt ke pengontrol interrupt.
  • Cache Support Pins: Pin-pin ini diperlukan untuk mendukung memori pada PCI yang dapat di-cache-kan di dalam prosesor atau perangkat lainnya. Pin-pin ini mendukung protokol-protokol snoopy cache (lihat Bab 16 untuk pembahasan protokol seperti itu).
  • 64-bit Bus Extension Pins: 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 Pins: Saluran-saluran signal ini mendukung pengujian prosedur-prosedur yang ditentukan dalam standard 149.1 IEEE.

Perintah-Perintah PCI

Aktivitas bus terjadi dalam bentuk transaksi antara sebuah inisiator, atau master, dengan sebuah target. Ketika memperoleh kontrol bus, master bus menentukan jenis transaksi yang akan terjadi berikutnya. Selama fase alamat dan suatu transaksi, saluran C/BE dipakai untuk memberikan signal jenis transaksi. Perintah-perintah itu adalah:

Bus-bus Sistem

Tabel 1 Saluran-saluran Signal PCI yang Ditetapkan

Bentuk Statement          Tipe                                        Deskripsi

System Pins

CLK                             in                      Menyediakan pewaktu untuk semua transaksi dan dicuplik pada pulsa positif. Mendukung kelajuan clock sampai 33 MHz               

RST#                            in                      Mengembalikan semua register, sequencer, dan signal yang spesifik-PCI ke kondisi awal.

Address and Data Pins

AD[31::O]                    t/s                     Saluran-saluran multiplexed digunakan untuk alamat dan data

C/8E13::O]#                 t/s                            Multiplexed bus command dan signal-signal byte enable. Selama fase data, saluran-saluran ini mengindikasikan mana dan jalur-jalur empat byte yang membawa data berarti.

PAR                                         t/s                             Menyediakan paritas genap pada saluran-saluran AD dan C/BE satu siklus clock maju. Master drives PAR untuk alamat dan write fase-fase data; target drive PAR untuk read fase-fase data.

interface Control Pins

FRAME#                                s/t/s                          Dijalankan oleh current master untuk mengindikasikan start dan duration dad suatu transaksi. Di-assert pada start dan dideassert sewaktru initiator siap memulai fase data final.

IRCDY#                                 s/t/s                          Initiator Ready. Dijalankan oleh current bus master (initiator dan traRsaksi). Selama suatu read, mengindikasikan bahwa master ini disiapkan untuk menerima data; sewaktu write, mengindi kasikan bahwa data yang valid diajukan pada AD.

TRDY#                                   s/t/s                          Target Ready. Dijalankan oleh target (device yang dipilih). Sewaktru read, data yang valid disajikan pada AD; sewaktu write, mengindikasikan bahwa target siap untuk menerima data.

STOP#                                     s/t/s                          Mengindikasikan bahwa current target menginginkan agar initiator menghentikan current transaction.

LOCK#                                   s/t/s                          Mengindikasikan suatu atomic operation yang mungkin memerlukan transaksi.

IDSEL                                     in                             Initialization Device Select. Digunakan sebagai chip select sewäktu konfigurasi transaksi-transaksi read dan write.

DEVSEL#                               in                      Device Select. Di-assert oleh target sewaktu alamatnya telah dikenali. Mengindikasikan current initiator apakah ada device yang telah di-select.

Arbitration Pins

REQ#                                      t/s                      Mengindikasikan pada arbiter bahwa device ini perlu mengguna kan bus. ini adalah saluran point-to-point yang spesifik device.

GNT#                                      t/s                             Mengindikasikan pada device bahwa arbiter telah mengizinkan akses terhadap bus. ini adalah saluran point-to-point yang spesifik-device.

Error Reporting Pins

PERR#                                    s/t/s                          Parity Error. Mengindikasikan suatu dataarity error, yang terdeteksi oleh target sewaktu fase write data atau oleh suatu initiator sewaktu fase read data.

SERR#                                    o/d                           System Error. Dapat dipulsakan oleh device apa saja untuk melaporkan address parity error dan error-error kritis selain paritas.

Tabel 2 Saluran – saluran Signal PCI yang Opsional

Penetapan                Tipe                                            Deskripsi

Interrupt Pins

INTA#                      o/d                       Digunakan untuk request suatu interrupt.

INTB#                      o/d                       Digunakan untuk request suatu interrupt; hanya mempunyai arti pada suatu device yang multifunction.

INTC#                      o/d                       Digunakan untuk request suatu interrupt; hanya mempunyai arti pada suatu device yang multifunction.

INTD#                      o/d                       Digunakan untuk request suatu interrupt; hanya mempunyai arti pada suatu device yang inultifianction.

Cache Support Pins

SBO4*                     in/out                   Snoop Backoff. Mengindikasikan suatu denyut pada saluran yang dimodifikasi.

SDONE                    in/out                   Snoop Done. Mengindikasikan status dan snoop wituk current accent. Di-assert apabila snoop sudah selesai.

64-but Bus Extension Pins

AD[63::32]               t/s                         Saluran-saluran multiplexed digunakan untuk alamat dan data untuk mengekstensi bus sampai 64 bit.

C1BE[7::4]               t/s                         Multiplexed bus command dan signal-signal byte enable. Selama fase alamat, saluran-saluran mi menyediakan bus commands tambahan. Selama fase data, saluran-saluran ini mengiudikasikan mana dan empat jalur extended byte ini yang membawa data yang berarti.

REQ64#                   s/t/s                      Digunakan untuk request transfer 64-bit.

ACK64#                   s/t/s                      Mengindikasikan bahwa target akan menjalankan transfer 64-bit.

PAR64                     t/s                         Menyediakan paritas genap pada saluran-saluran extended AD dan C/BE untuk satu siklus clock berikutnya.

HAG/Boundary Scan Pins

TCK                         in                          Test Clock. Digunakan untuk memicu informasi status dan test data ke dalam dan ke luar device sewaktu boundary scan.

TDI                                     in                                   Test Input. Digunakan untuk men-shift secara serial test data dan instruksi-instruksi ke dalam device.

TDO                                    out                                Test Output. Digunakan untuk men-shift secara serial test data dan instruksi-instruksj ke luar device.

TMS                                   in                                   Test Mode Select. Digunakan untuk mengkontrol status dan test access port controller

TRST#                               in                                   Test Reset. Digunakan untuk menginisialisasi test access port controller.

in          Hanya signal keluar (lnput-only signal)

out        Hanya signal masuk (Output-only signal)

t/s          Signal I/O, dua arah, tiga kondisi (Bidirectional, tri-state, I/O signal)

s/t/ss      Keadaan dan signal tiga kondisi yang dijalankan oleh hanya satu owner setiap kalinya

o/d        Open drain: memungkinkan multiple devices untuk berbagi sebagai wire-OR

#           Status aktif signm yang Ierjadi pada vollase bawah

  • Interrupt Acknowledge
  • Special Cycle
  • I/O Read
  • I/O Write
  • Memory Read
  • Memory Read Line
  • Memory Read Multiple
  • Memory Write
  • Memory Write and Invalidate
  • Configuration Read
  • Configuration Write
  • Dual Address Cycle

Interrupt Acknowledge adalah perintah baca yang ditujukan bagi perangkat yang berfungsi sebagai pengontrol interrupt pada bus PCI. Saluran alamat tidak digunakan selama fase alamat, dan saluran byte enable menunjukkan ukuran interrupt identifier untuk dikembalikan.

Perintah Special Cycle digunakan oleh inisiator untuk melakukan broadcast pesan ke Sebuah target atau lebih.

Perintah I/O Read dan I/O Write digunakan untuk melakukan transfer data antara inisiator dengan pengontrol I/O. Setiap perangkat I/O memiliki ruang alamatnya sendiri, dan saluran alamat digunakan untuk menunjukkan perangkat tertentu dan untuk menspesifikasikan data yang akan ditransfer ke perangkat itu atau ditransfer dan perangkat tersebut. Konsep alamat – alamat I/O akan dibahas pada Bab

Perintah-perintah memory read dan write digunakan untuk menspesifikasikan transfer data, yang menempati satu siklus waktu atau lebih. Interpretasi perintah-perintah ini tergantung pada apakah pengontrol memori pada bus PCI mendukung protokol PCI untuk transfer antara memori dengan cache atau tidak. Bila demikian, transfer data ke memori atau dan memori berada pada saluran cache, atau blok. 2 Ketiga perintah memory read dapat dilihat pada Tabel 3 Perintah Memory Write dipakai untuk mentransfer data dalam satu siklus waktu atau lebih ke memori. Perintah Memory Write and Invalidate mentransfer data dalam satu siklus waktu atau lebih ke memori. Selain itu, perintah ini menjamin bahwa sedikitnya satu saluran cache akan ditulis. Perintah mi mendukung fungsi cache tentang penulisan kembali saluran ke memori.

Tabel 3 Iriterpretasi Perintah-perintah Pembacaan PCI

Tipe Read Command             Untuk Cacheable Memomy             Untuk Noncacheable Memomy

Memory Read                        Bursting separuh atau kurang         Bursting 2 siklus transfer data atau

dari satu saluran cache                    kurang

Memory Read Line               Bursting lebih dan separuh dan      Bursting 3 sampai 12 transfer data

satu dsampai tiga saluran cache

Memory Read Multiple        Bursting lebih daritiga saluran        Bursting lebih dan 12 transfer data

cache

Kedua perintah konfigurasi memungkinkan suatu master membaca dan meng-update parameter-parameter konfigurasi pada perangkat yang terhubung ke PCI. Masing-masing perang.kat PCI dapat meliputi hingga 256 buah register internal yang digunakan selama inisialisasi sistem untuk mengkonfigurasi perangkat itu.

Perintah Dual Address digunakan oleh inisiator untuk menunjukkan bahwa inisiator memakai pengalamatan 64 bit.

Transfer Data

Setiap transfer data pada bus PCI merupakan transaksi tunggal yang terdiri dan sebuab fase alamat dan satu atau lebih fase data. Di dalam pembahasan ini, kita akan menjelaskan operasi pembacaan yang umum; demikian pula halnya dengan operasi penulisan.

Gambar 2 menjelaskan timing transaksi pembacaan. Semua kejadiannya disinkronkan dengan transisi balik pewaktu, yang terjadi di tengah-tengah pada setiap sikius waktu. Perangkat bus men-sample saluran bus pada ujung yang naik pada awal siklus bus. Berikut ini adalah kejadian-kejadian penting, yang diberikan sebagai label pada diagram:

a. Sekali master bus telah memperoleh kontrol bus, maka master bus akan memulai transaksi dengan menegaskan FRAME. Saluran mi 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.

b. Pada awal waktu ke-2, perangkat target akan mengetahui alamatnya di saluran    AD.

Gambar 2 Operasi Pembacaan PCI

c. Inisiator berhenti mengendalikan bus AD. Siklus balik (turnaround) (yang ditandai oleh dua buah panah sirkular) diperlukan pada semua saluran signal yang akan dikendalikan oleh lebjh dan 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 (dan I hingga 4 bit) saat itu. Inisiator juga menegaskan IRDY untuk menandakan bahwa dirinya siap untuk butir data pertama.

d. Target yang terpilih menunjuk DEVSEL untuk menunjukkan bahwa target telab mengetahui alamatnya dan akan memberikan respon. Target yang terpilib menempatkan data yang diminta pada saluran AD dan menegaskan TRDY untuk mengindikasikan bahwa data yang valid terdapat pada bus.

e. Inisiator membaca data pada awal waktu ke-4 dan mengubah saluran enable byte begitu diperlukan dalam persiapan pembacaan berikutnya.

f. 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 tiemulaidak akan membaca saluran data pada awal siklus waktu ke-5 dan tidak mengubah byteenable selama siklus itu. Blok data dibaca pada awal waktu ke-6.

g. 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 mi akan menyebab I kan target untuk menyediakan butir data ketiga pada bus siklus waktu tambahan.

h. Inisiator mengetahui bahwa transfer data ketiga adalah yang terakhir, karena itu inisiator melepaskan FRAME untuk memberikan signal ke target bahwa itu merupakan transfer data yang terakhir. Inisiator juga menegaskan IRDY untuk memberikan signal bahwa dirinya siap untuk menyelesaikan transfer tersebut.

I. Inisiator melepaskan IRDY, yang mengembalikan bus ke keadaan idle, dan target melepaskan TRDY dan DEVSEL.

Arbitrasi

PCI memanfaatkan pola arbitrasi sentral dan sinkron yang masing-masing masternya memiliki request unik (REQ) dan signal grant (GNT). Saluran-saluran signal mi dihubungkan dengan arhitrer sentral (Gambar 3) dan request-grant handshake sederhana digunakan untuk niemberikan akses ke bus.

Spesifikasi PCI tidak mengharuskan algoritma arbitrasi khusus. Arbitrer dapat menggunakan pendekatan first-come-first-serve, pendekatan round-robin, atau pola pnioritas lainnya.

Master PCI harus mengarbitrasi setiap transaksi yang ingin dibentuknya, yaitu sebuah transaksi terdiri dan sebuah fase alamat yang diikuti oleh satu fase data kontigus atau lebih.

Gambar 4 merupakan sebuah contoh ketika perangkat A dan B sedang melakukan arbitrasi untuk bus. Langkah-langkah yang terjadi adalah sbb.:

  1. Pada suatu titik sebelum awal waktu ke- I, A telah menegaskan signal REQ-nya. Arbitrer men-sample signal mi pada awal sikius waktu ke-1.

Gambar 3 PCI Bus Arbiter

b. Selama sikius waktu ke- 1, B membuat request untuk menggunakan bus dengan menegaskan signal REQ-nya.

c. Pada saat yang sama, arbiter menegaskan GNT-A untuk memberikan hak akses bus ke pada A.

d. 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 pelepasan 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 penintah pada

Gambar 4 Arbitrasi Bus PCI Antara Dua Master

bus C/BE (tidak ditunjukkan). Master bus juga melanjutkan penegasan REQ-A, karena master bus memiliki transaksi kedua yang akan dibentuk setelah transaksi ini.

e.  Arbitrer 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 arbitrer bus menegaskan GNT-B dan melepaskan GNT-A. B tidak akan dapat menggunakan bus hingga bus itu dikembalikan ke keadaan idle.

f. 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 pàda awal siklus waktu berikutnya.

g. Pada awal waktu ke-5, B menemukan IRDY dan FRAME yang dilepaskan dan karena itu B dapat melakukan kontrol terhadap bus dengan menegaskan FRAME. B juga melepaskan saluran REQ-nya karena B hanya perlu membentuk satu transaksi saja.

Kemudian, master A memberikan hak akses ke bus bagi transaksi berikutnya. Perlu dicatat bahwa arbitrasi ada pada saat yang sama, ketika master bus saat itu sedang

melakukan transfer data. Sehingga, tidak akan terdapat siklus bus yang hilang dalam pembentukan arbitrasi. Hal mi dikenal sebagai hidden arbitration (arbitrasi tersembunyi).


0 Responses to “”



  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: