Anda di halaman 1dari 140

BAB 03

TOP-LEVEL VIEW DARI


FUNGSI & INTERKONEKSI KOMPUTER
INSTITUT TEKNOLOGI DAN SAINS AL-KAMAL
IF1141 ARSITEKTUR KOMPUTER DAN SISTEM OPERASI
MOCHAMAD BETA AUDITAMA
Buku Referensi
Computer Organization and Architecture :
Designing for Performance (10th ed.).
(2015). Pearson.
Tujuan Pembelajaran
• Memahami elemen2 dasar dari suatu instruction cycle, dan memaha-
mi peran dari interrupt.
• Mendefinisikan konsep interkoneksi pada sistem komputer.
• Mengetahui keunggulan relative interkoneksi point-to-point ketika
dibandingkan dengan interkoneksi bus.
• Memberikan pandangan umum tentang QPI.
• Memberikan pandangan umum tentang PCIe.
KOMPONEN2 KOMPUTER
Komponen2 Komputer
• Pada level paling atas, komputer terdiri dari CPU, memori, dan kom-
ponen2 I/O yang masing2 dapat berjumlah satu atau lebih modul.
❖ Setiap komponen komputer yg. telah disebutkan saling diinterkoneksikan satu
sama lain utk. mengimplementasikan fungsi dasar komputer, yaitu mengekse-
kusi program.
❖ Oleh krn. itu, agar kita dapat memahami komputer di level paling atas ini (top-
level view), kita perlu mengerti 1) perilaku dari tiap komponen komputer ter-
hadap lingkungannya, tepatnya data & control signals yg. dipertukarkan antar-
komponen komputer; dan 2) struktur interkoneksi beserta controls yang diper-
lukan untuk mengelola struktur interkoneksi tersebut.
Komponen2 Komputer
• Hampir seluruh desain komputer modern saat ini mengadopsi arsi-
tektur von Neumann yang memiliki tiga konsep sbb :
❖ Seluruh data dan instruksi disimpan di dalam satu memori read-write yg sama.
❖ Setiap konten yg. disimpan di dalam memori dialamatkan berdasarkan lokasi,
terlepas dari tipe data yang dimiliki oleh konten tersebut.
❖ Eksekusi instruksi diimplementasikan secara sekuens, kecuali dimodifikasi se-
cara eksplisit, dari satu instruksi ke instruksi lainnya.
Komponen2 Komputer
• Berikut latar belakang mengapa ketiga konsep yang telah dijelaskan
sebelumnya dimiliki oleh arsitektur von Neumann :
❖ Sejumlah komponen2 logika dasar dapat dikombinasikan dengan beragam cara
utk. menyimpan data biner dan menerapkan fungsi aritmetika & logika terha-
dap data biner tersebut.
❖ Dengan demikian, apabila kita ingin mengimplementasikan suatu komputasi
yang spesifik, suatu konfigurasi komponen2 logika dapat dibuat khusus untuk
menerapkan komputasi tersebut.
❖ Kita boleh menyebut proses konfigurasi komponen2 logika yang dilaksanakan
secara fisik sebagai programming. Di sini, hasil “programming” diperoleh dlm.
bentuk hardware dan dinamakan sebagai hardwired program.
(cont. to the next slide)
Komponen2 Komputer
❖ Terdapat alternatif lain selain hardware programming yg. telah dijabarkan se-
belumnya. Bayangkan kita membuat suatu konfigurasi general-purpose untuk
mengimplementasikan beragam fungsi aritmetika dan logika.
❖ Konfigurasi ini terdiri dari sejumlah komponen hardware yg. akan melaksana-
kan fungsi yg. spesifik terhadap masukan data ketika diberikan control signals
tertentu ke konfigurasi tersebut. Dengan kata lain, konfigurasi general-purpose
menerima data dan control signals untuk mengeluarkan suatu hasil.
❖ Dengan demikian, melalui konfigurasi general-purpose, pemrogram tidak per-
lu melakukan rewiring terhadap hardware seperti pd. hardware programming
untuk memperoleh suatu program, melainkan pemrogram hanya perlu mem-
berikan suatu control signals yang baru saja.
(cont. to the next slide)
Komponen2 Komputer
❖ Control signals merupakan sinyal2 listrik yang tentu saja tidak mungkin dibuat
secara langsung oleh pemrogram. Namun, control signals yg. diinginkan dapat
dibuat dari suatu kode yang disebut instruksi. Oleh karena itu, perlu adanya
suatu segmen hardware khusus pd. konfigurasi general-purpose yg. berfungsi
untuk menginterpretasikan (mengonversi) instruksi menjadi control signals.
❖ Cara pemrograman yg. menggunakan instruksi ini disebut software program-
ming. Figure 3.1 di slide berikutnya memperlihatkan diagram dari hardware &
software programming.
❖ Figure 3.1b memperlihatkan dua komponen utama dari sistem komputer, yaitu
instruction interpreter dan suatu modul general-purpose yg. mengimplemen-
tasikan fungsi2 aritmetika & logika. Kedua komponen ini secara bersama dise-
but sebagai CPU.
(cont. to the next two slides)
Komponen2 Komputer
❖ Selain CPU, tentu saja sistem komputer memerlukan sejumlah komponen lain-
nya agar fungsi dasar komputer dapat terpenuhi. Komponen pertama yang di-
butuhkan adalah modul input dan modul output yg. keduanya secara bersama
disebut komponen I/O.
❖ Modul input berfungsi untuk menerima data & instruksi dengan format yang
beragam, dan kemudian mengonversinya menjadi sinyal2 yang dipahami oleh
sistem komputer, sedangkan modul output berfungsi untuk melaporkan hasil
komputasi yang telah dilakukan oleh sistem komputer.
❖ Komponen kedua yang dibutuhkan adalah main memory. Berikut alasan peng-
gunaan main memory :
➢ Modul input memberikan instruksi dan data secara sekuens. Namun, ekse-
kusi program (i.e., eksekusi instruksi2) tdk. selalu dilakukan secara sekuens,
melainkan proses eksekusi dapat melibatkan jump.
(cont. to the next slide)
Komponen2 Komputer
➢ Selain itu, operasi2 yang dilakukan terhadap data juga seringkali memerlu-
kan akses ke lebih dari satu datum di waktu yang sama.
➢ Dengan demikian, perlu adanya tempat penyimpanan sementara utk. me-
nampung seluruh instruksi dan data yg. dimaksud di dua poin sebelumnya,
dan tempat penyimpanan sementara ini ialah main memory.
➢ Von Neumann menyatakan bahwa main memory dapat digunakan utk. me-
nyimpan baik instruksi maupun data.
❖ Figure 3.2 di slide berikutnya memperlihatkan komponen2 top-level dari sistem
komputer beserta interaksi antar-komponen tsb.
➢ CPU saling bertukar data dengan memori. Untuk mengakomodasi pertukar-
an data ini, terdapat empat register yg. dipasang di dalam CPU, yaitu MAR,
MBR, I/OAR, dan I/OBR.
(cont. to the next two slides)
Komponen2 Komputer
➢ Memory address register (MAR) berfungsi utk. menyimpan alamat memori
untuk proses baca dan tulis yang akan dilakukan berikutnya; memory buffer
register (MBR) berfungsi untuk menyimpan data yang akan ditulis ke dalam
memori atau data yang diterima dari memori; I/O address register (I/OAR)
berfungsi menyimpan alamat perangkat I/O yg. akan diakses; I/O buffer re-
gister (I/OBR) berfungsi untuk menyimpan data yang dipertukarkan antara
I/O module dan CPU.
➢ Memori terdiri dari sejumlah lokasi yg. masing2 diberi nomor alamat seca-
ra berurutan. Setiap lokasi dapat menyimpan suatu instruksi atau data dlm.
bentuk bilangan biner.
➢ I/O module diperlukan untuk mentransfer data dari perangkat2 eksternal ke
CPU & memori, dan sebaliknya. I/O module memuat buffers untuk menyim-
pan secara sementara seluruh data ini hingga siap untuk ditransfer.
FUNGSI KOMPUTER
Fungsi Komputer
• Fungsi paling mendasar dari komputer adalah mengeksekusi program
yang terdiri dari suatu set instruksi yang disimpan di dalam memori.
❖ Eksekusi set instruksi ini dilakukan oleh prosesor.
❖ Dalam bentuk yang paling sederhananya, proses eksekusi instruksi terdiri dari
dua tahap : Prosesor membaca (i.e., fetching) satu instruksi dari memori, dan
kemudian mengeksekusinya. Proses ini berulang selama masih ada instruksi
yang perlu dieksekusi oleh prosesor.
❖ Proses eksekusi instruksi di poin sebelumnya disebut juga sebagai instruction
cycle, dan dua tahap yang dimilikinya, yaitu membaca instruksi dan mengekse-
kusi instruksi, masing2 disebut sebagai fetch cycle dan execution cycle.
(cont. to the next slide)
Fungsi Komputer
❖ Figure 3.3 di slide berikutnya mengilustrasikan instruction cycle, fetch cycle, &
execution cycle yang dimaksud.
❖ Proses eksekusi instruksi, atau instruction cycle, hanya akan berhenti (i.e., halt)
ketika daya mesin komputer dinonaktifkan, komputer mengalami eror yang ti-
dak dapat di-recovery, atau ditemui instruksi program yg. memerintahkan agar
komputer berhenti mengeksekusi instruksi.
Instruction Fetch dan Instruction Execute
• Di tiap awal proses instruction cycle, prosesor selalu mengambil satu
instruksi dari memori.
❖ Umumnya, suatu register bernama program counter (PC) yg. terpasang di dlm.
prosesor menyimpan alamat instruksi yang akan dieksekusi berikutnya.
❖ Kecuali ada perintah tertentu, prosesor selalu menaikkan nilai PC tiap kali ins-
truksi diambil sehingga instruksi2 akan diambil secara sekuens. Nilai PC dinaik-
kan hingga merujuk pd. lokasi instruksi berikutnya yg. berada di alamat memo-
ri satu lebih tinggi dari lokasi instruksi saat ini.
❖ Contoh : Bayangkan suatu komputer yg. mana setiap instruksi menempati satu
word memori yang berukuran 16-bit. Asumsi-kan program counter saat ini me-
rujuk pd. lokasi memori 300. Dengan demikian, prosesor akan mengambil ins-
truksi berikutnya yang berada di lokasi 300. Utk. instruction-cycle2 berikutnya,
prosesor akan mengambil instruksi2 dari lokasi 301, 302, 303, dst.
Instruction Fetch dan Instruction Execute
• Instruksi yang diambil dimasukkan ke register di dalam prosesor yang
bernama instruction register (IR).
❖ Instruksi di dalam IR kemudian diinterpretasi, dan kemudian mengimplemen-
tasikan perintah sesuai hasil interpretasi instruksi (i.e., eksekusi instruksi).
❖ Umumnya, spesifik perintah yang diminta oleh instruksi jatuh merupakan satu
dari empat kategori sbb :
➢ Prosesor-memori : Data dapat ditransfer dari prosesor ke memori, atau dari
memori ke prosesor.
➢ Prosesor-I/O : Data dpt. ditransfer ke- atau dari- suatu perangkat peripheral
dengan mentransfer data tsb. antara prosesor dan I/O module.
(cont. to the next slide)
Instruction Fetch dan Instruction Execute
➢ Pemrosesan data : Prosesor dapat melakukan operasi aritmetika atau logika
pada data.
➢ Control : Suatu instruksi dapat memberi perintah agar sekuens eksekusi di-
ubah urutannya. Misal, suatu prosesor mengambil instruksi dari lokasi 149,
dan instruksi ini memerintahkan agar instruksi berikutnya yang diambil oleh
prosesor adalah instruksi yang berada di lokasi 182. Alhasil, prosesor meng-
ubah nilai program counter menjadi 182. Dengan demikian, pd. instruction
cycle berikutnya, instruksi akan diambil dari lokasi 182, bukannya 150.
• Mari kita lihat contoh eksekusi program pada suatu mesin hipotesis.
❖ Pada contoh ini, kita menggunakan mesin hipotesis sebagai sistem komputer
yang memiliki karakteristik seperti yang diperlihatkan oleh Figure 3.4 di slide
berikutnya.
(cont. to the next two slides)
Instruction Fetch dan Instruction Execute
❖ Berikut penjelasan ringkas karakteristik2 mesin hipotesis pada Figure 3.4 :
➢ Prosesor pd. mesin hipotesis hanya memuat satu register saja utk. menyim-
pan data, yaitu accumulator (AC).
➢ Baik instruksi maupun data memiliki ukuran sebesar 16-bit. Oleh karena itu,
ukuran satu word pada memori adalah 16-bit.
➢ Format instruksi adalah 4-bit utk. opcode shg. terdapat 24 = 16 kemungkin-
an opcode, dan 12-bit untuk menunjukkan lokasi dimana instruksi disimpan
di dalam memori. Lokasi berukuran 12-bit ini juga menunjukkan bahwa ter-
dapat 212 = 4096 ≈ 4K-word di dalam memori yg. disediakan untuk menyim-
pan dan mengakses instruksi.
(cont. to the next two slides)
Instruction Fetch dan Instruction Execute
❖ Figure 3.5 di slide berikutnya memperlihatkan suatu eksekusi program secara
parsial, termasuk state dari memori dan register2 CPU.
➢ Program pada Figure 3.5 bertujuan untuk menjumlahkan konten word yang
berada di lokasi 940 dengan konten word yang berada di lokasi 941, dan ke-
mudian menyimpan hasil penjumlahannya di lokasi 941.
➢ Dalam prosesnya, terdapat tiga instruksi yang perlu dieksekusi sehingga ada
tiga instruction fetch cycles dan tiga instruction execute cycles di sini :
1. PC bernilai 300 yang merupakan lokasi dimana instruksi pertama berada.
Instruksi ini bernilai 1940 (format heksadesimal) dimuat ke dlm. IR, dan
kemudian nilai PC dinaikkan menjadi 301. Perlu diperhatikan bahwa se-
harusnya tahap ini melibatkan MAR dan MBR, tetapi keduanya tidak di-
libatkan pada Figure 3.5 agar lebih sederhana.
(cont. to the next slide)
Instruction Fetch dan Instruction Execute
2. Empat bit pertama (digit heksadesimal yang pertama) pada IR mengindi-
kasikan bahwa AC akan dimuat suatu konten dari memori. Dua belas bit
sisanya (tiga digit heksadesimal yg. terakhir) menunjukkan alamat (940)
dimana konten yang akan dimasukkan ke dalam AC berada.
3. Instruksi berikutnya, yaitu 5941, diambil dari lokasi 301, dan kemudian
nilai PC dinaikkan menjadi 302.
4. Konten yang ada di dalam AC dan konten yang ada di lokasi 941 dijum-
lahkan, dan kemudian hasilnya disimpan di dalam AC.
5. Instruksi berikutnya, yaitu 2941, diambil dari lokasi 302, dan kemudian
nilai PC dinaikkan menjadi 303.
6. Konten yang ada di dalam AC saat ini dimuat ke lokasi 941.
(cont. to the next slide)
Instruction Fetch dan Instruction Execute
• Contoh eksekusi program pada Figure 3.5 melibatkan tiga instruction
cycle. Apabila prosesor mendukung set instruksi yang lebih kompleks,
jumlah instruction cycle dapat lebih sedikit.
❖ Pd. sebagian prosesor versi lama (i.e., prosesor sebelum adanya buku referen-
si) yang memiliki set instruksi yang lebih kompleks, execution cycle dapat meli-
batkan lebih dari satu referensi ke memori. Selain itu, instruksi jg. mendukung
operasi I/O.
❖ Contoh : Prosesor pada komputer PDP-11 hanya melibatkan satu instruksi yg.
diekspresikan sebagai ADD B, A untuk operasi penjumlahan. Instruksi ini ber-
fungsi utk. menyimpan hasil penjumlahan antara konten yang ada di lokasi B
dan A ke dalam lokasi A.
(cont. to the next slide)
Instruction Fetch dan Instruction Execute
❖ Masih membahas contoh di poin sebelumnya, kita hanya memerlukan satu
instruction cycle saja karena hanya ada satu instruksi yang perlu dieksekusi,
yaitu ADD A, B. Namun, terdapat sejumlah langkah yg. dilakukan dlm. satu
instruction cycle ini, yaitu sbb :
➢ Mengambil instruksi ADD.
➢ Membaca konten memori di lokasi A ke dalam prosesor.
➢ Membaca konten memori di lokasi B ke dalam prosesor. Agar konten yang
diperoleh dari lokasi A tidak hilang, prosesor harus memiliki sedikitnya dua
register untuk menyimpan kedua konten, tidak cukup satu AC saja.
➢ Menjumlahkan kedua nilai.
➢ Menulis hasil yang telah dikalkulasi oleh prosesor ke lokasi A.
Instruction Fetch dan Instruction Execute
• Karena prosesor dengan set instruksi yang lebih kompleks mendukung
referensi memori lebih dari satu lokasi dan mendukung operasi I/O,
kita perlu memahami mekanisme instruction cycle yg. lebih detil dari
Figure 3.3, spt. yang diperlihatkan oleh Figure 3.6 di slide berikutnya.
❖ Mekanisme instruction cycle pd. Figure 3.6 diilustrasikan dalam diagram state.
Utk. suatu instruction cycle, sebagian state dapat null (dilewati) dan sebagian
state lainnya didatangi lebih dari sekali.
(cont. to the next two slides)
Instruction Fetch dan Instruction Execute
❖ Terdapat tujuh jenis state pada Figure 3.6 :
➢ Instruction address calculation (iac) : State ini menentukan alamat instruksi
berikutnya yang ingin dieksekusi. Biasanya, penentuan alamat ini dilakukan
dgn. menjumlahkan suatu bilangan yang fixed ke alamat instruksi sebelum-
nya. Misal, asumsikan tiap instruksi memiliki ukuran 16-bit. Apabila memori
diorganisasikan dlm. words masing2 berukuran 16-bit, kita hanya perlu me-
nambahkan nilai 1 ke alamat sebelumnya, tetapi apabila memori diorgani-
sasikan dalam bytes masing2 berukuran 8-bit, kita perlu menambahkan nilai
2 ke alamat sebelumnya.
➢ Instruction fetch (if) : State ini mengambil instruksi dari alamat memori yg.
telah dikalkulasi di iac untuk dimasukkan ke dalam prosesor.
(cont. to the next two slides)
Instruction Fetch dan Instruction Execute
➢ Instruction operation decoding (iod) : State ini menganalisa instruksi yang
telah diambil di if utk. menentukan tipe operasi yang akan dieksekusi dan
menentukan operan2 mana saja yang diperlukan.
➢ Operand address calculation (oac) : Apabila eksekusi instruksi memerlukan
referensi ke suatu operan di dlm. memori atau di I/O, state ini menentukan
alamat dari operan tersebut.
➢ Operand fetch (of) : Mengambil operan yang ada di dalam memori atau I/O.
➢ Data operation (do) : State ini mengeksekusi instruksi sesuai dgn. tipe ope-
rasi yang diminta oleh instruksi tersebut.
➢ Operand store (os) : Menulis hasil yang diperoleh ke memori atau I/O.
(cont. to the next slide)
Instruction Fetch dan Instruction Execute
❖ Deskripsi tentang diagram state dari suatu instruction cycle pada Figure 3.6 :
➢ Seluruh state yang terletak di bagian atas dari Figure 3.6 melibatkan suatu
pertukaran antara prosesor & memori atau antara prosesor & modul I/O,
sedangkan seluruh state yang terletak di bagian bawahnya hanya melibat-
kan operasi2 di internal prosesor.
➢ Perhatikan bahwa state oac muncul sebanyak dua kali pada Figure 3.6 kare-
na suatu instruksi dapat melibatkan operasi baca, tulis, atau keduanya.
➢ Perhatika juga bahwa diagram memperbolehkan adanya multi-operan dan
multi-hasil karena sebagian tipe instruksi pada mesin2 tertentu memerlu-
kan hal ini. Misal, instruksi ADD A, B pada PDP-11 memiliki sekuens instruc-
tion cycle sbb : iac, if, iod, oac, of, oac, of, do, oac, os.
(cont. to the next slide)
Instruction Fetch dan Instruction Execute
➢ Terakhir, pd. sebagian mesin, suatu instruksi dapat menspesifikasikan ope-
rasi yang dilakukan pada suatu vektor (array 1D) bilangan atau pada suatu
string karakter. Seperti yang diindikasikan oleh Figure 3.6, instruksi ini akan
melibatkan operasi pengambilan dan penyimpanan operan secara repetitif.
Interrupts
• Hampir seluruh komputer melibatkan suatu mekanisme yg. mana mo-
dul2, seperti memori dan I/O, dpt. menginterupsi operasi normal dari
prosesor.
❖ Table 3.1 di slide berikutnya memperlihatkan kelas2 interupsi yang sering diim-
plementasikan.
❖ Di sini, pembahasan tentang interupsi hanya yang diperlukan saja untuk lebih
memahami tentang 1) karakteristik dari instruction cycle; dan 2) implikasi dari
interupsi terhadap struktur interkoneksi.
❖ Oleh karena itu, di sini tidak akan dibahas tentang pembangkitan dan pemro-
sesan interupsi, melainkan kita hanya fokus pd. komunikasi yg. terjadi antar-
modul akibat dari adanya interupsi.
Interrupts
• Alasan mengapa interupsi diperlukan ialah untuk meningkatkan efisi-
ensi dari kerja prosesor.
❖ Mari kita lihat suatu contoh yang memperlihatkan pernyataan ini : Bayangkan
suatu prosesor mentransfer data ke printer menggunakan skema instruction
cycle pd. Figure 3.3. Setiap kali operasi tulis diterapkan, maka prosesor harus
berhenti dan menunggu hingga printer selesai menyelesaikan operasinya. Pe-
riode waktu menunggu ini dapat mencapai ratusan hingga ribuan instruction
cycle. Hal ini tentu saja sangat tidak efisien untuk prosesor.
❖ Figure 3.7a di slide berikutnya mengilustrasikan contoh di poin sebelumnya.
Sebelum menjelaskan proses yang terjadi di Figure 3.7a (serta Figure 3.7b dan
Figure 3.7c), mari kita pahami terlebih komponen2 yang terlibat di dalam pro-
ses tersebut, yaitu sbb :
(cont. to the next two slides)
Interrupts
❖ Figure 3.7a di slide berikutnya mengilustrasikan contoh di poin sebelumnya.
Proses pd. Figure 3.7a dpt. dipahami via desk. user program dan I/O program :
➢ User program : Program milik pengguna komputer yang terdiri dari sekuens
instruksi non-I/O (ditunjukkan oleh segmen kode 1, 2, & 3) yg. diselingi oleh
sejumlah WRITE call di tengah2-nya. WRITE call ialah panggilan ke suatu I/O
program yang berfungsi untuk melaksanakan operasi I/O.
➢ I/O program : Program ini terdiri dari tiga bagian, yaitu sbb :
✓ Suatu sekuens instruksi (diberi label nomor 4 pada Figure 3.7a) yang ber-
fungsi untuk menyiapkan segala sesuatu yang diperlukan untuk eksekusi
operasi I/O yg. sebenarnya (disebut I/O command). Persiapan dapat be-
rupa aksi menyalin data yg. diperlukan ke buffer tertentu dan menyiap-
kan parameter2 yang akan diperlukan saat eksekusi I/O command.
(cont. to the next slide)
Interrupts
✓ I/O command berfungsi untuk mengeksekusi fungsi yang diminta. Apabi-
la teknik interrupt tidak digunakan, ketika I/O command ini di-issue, I/O
program harus berhenti selama perangkat I/O sedang beroperasi. Sela-
ma menunggu, I/O program perlu melakukan suatu operasi tes secara
berulang untuk memeriksa apakah operasi I/O telah selesai atau belum.
✓ Suatu sekuens instruksi (diberi label nomor 5 pada Figure 3.7a) yang ber-
fungsi untuk menyelesaikan I/O program. Di sini, salah satu aksi yang da-
pat dilakukan adalah mendefinisikan suatu flag yg. menandakan apakah
operasi I/O berhasil atau tidak.
Karena operasi I/O relatif lama untuk selesai, I/O program terpaksa harus
berhenti utk. menunggu operasi I/O hingga selesai. Akibatnya, user pro-
gram berhenti di titik WRITE call untuk periode waktu yang cukup lama.
(cont. to the next slide)
Interrupts
• Dengan menggunakan teknik interrupt, prosesor dapat mengeksekusi
instruksi2 lainnya sembari operasi I/O dieksekusi.
❖ Mari kita lihat flow of control pada Figure 3.7b di slide berikutnya. Sama seper-
ti sebelumnya, user program mencapai suatu titik dimana WRITE dipanggil.
❖ Di sini, I/O program yang muncul akibat dari WRITE call hanya terdiri dari kode
untuk persiapan dan I/O command saja. Setelah I/O program selesai diekseku-
si, control kembali ke user program. Sementara itu, perangkat I/O sibuk mene-
rima data dari memori komputer dan mem-print-nya.
❖ Dengan demikian, operasi I/O dpt. dieksekusi secara bersamaan dengan ekse-
kusi instruksi2 yang ada di user program.
(cont. to the next two slides)
Interrupts
❖ Ketika operasi I/O telah selesai, modul I/O yang berasosiasi dengan perangkat
I/O yang mengeksekusi operasi I/O mengirimkan suatu sinyal interrupt request
ke prosesor. Prosesor merespons sinyal ini dgn. menghentikan operasinya pd.
user program, dan kemudian berpindah ke suatu program bernama interrupt
handler. Setelah prosesor selesai mengeksekusi program interrupt handler,
prosesor meneruskan kembali eksekusi user program yang terhenti.
❖ Titik2 dimana interrupt terjadi ditandai dengan tanda silang pada Figure 3.7b.
• Mari kita klarifikasi apa yang sebenarnya terjadi di Figure 3.7 :
❖ Kita memiliki suatu user program yang memuat dua WRITE call; karena saat ini
kita sedang membahas interrupt, WRITE call yang terakhir tidak diikutsertakan
karena interrupt tidak perlu diterapkan saat WRITE call ini dipanggil.
(cont. to the next slide)
Interrupts
❖ Pd. user program, terdapat suatu segmen kode di awal, lalu diikuti satu WRITE
call, lalu diikuti segmen kode yg. kedua, lalu diikuti satu WRITE call yg. kedua,
lalu diikuti segmen kode terakhir yang ketiga.
❖ WRITE call memanggil I/O program yg. dimiliki oleh operating system. I/O pro-
gram sendiri terdiri dari suatu segmen kode di awal, lalu diikuti oleh suatu I/O
command, lalu diikuti segmen kode terakhir. I/O command berfungsi utk. me-
mulai operasi I/O pada hardware tertentu.
❖ Bentuk user program dan I/O program yang telah dijelaskan di dua poin sebe-
lumnya diperlihatkan di slide berikutnya.
(cont. to the next slide)
Interrupts
❖ Dari sudut pandang user program, interrupt yg. terjadi pada user program ha-
nyalah seperti sekuens eksekusi normal saja yang mana, ketika interrupt telah
selesai dieksekusi, eksekusi user program langsung diteruskan di titik interrupt
itu terjadi (lihat Figure 3.8 di slide berikutnya). Atau dengan kata lain, user pro-
gram tidak perlu memuat kode khusus tertentu utk. mengakomodasi interrupt
yang terjadi.
❖ Dua komponen yg. bertanggung jawab untuk mengakomodasi interrupt adalah
prosesor dan operating system. Kedua komponen ini yang akan menghentikan
user program, dan kemudian meneruskan kembali di titik interrupt tsb. terjadi
pada user program.
Interrupts
• Utk. mengakomodasi interrupt, kita perlu memuat interrupt cycle ke
dalam instruction cycle (lihat Figure 3.9 di slide berikutnya).
❖ Pada interrupt cycle, prosesor memeriksa apakah ada interrupt yg. sedang ter-
jadi melalui keberadaan suatu sinyal interrupt.
❖ Apabila tidak ada interrupt yang sedang terjadi, prosesor meneruskan ke fetch
cycle untuk mengambil instruksi berikutnya dari program yg. sedang diekseku-
sinya saat ini. Apabila ada interrupt yang sedang terjadi, prosesor melakukan
sekuens langkah sbb :
➢ Prosesor menghentikan eksekusi program yg. sedang ditanganinya saat ini,
dan kemudian menyimpan context-nya. Maksud dari penyimpanan context
adalah menyimpan alamat instruksi berikutnya (i.e., nilai PC saat ini) dan
menyimpan data lainnya yang relevan dengan aktivitas prosesor saat ini.
(cont. to the next two slides)
Interrupts
➢ Prosesor mengubah nilai PC menjadi alamat dari interrupt handler routine.
Perlu diperhatikan, definisi routine adalah suatu sekuens kode yang dibuat
dengan tujuan untuk memanggilnya secara berulang kali.
➢ Prosesor masuk ke fetch cycle untuk mengambil instruksi pertama dari pro-
gram interrupt handler.
➢ Ketika program interrupt handler telah selesai dieksekusi, prosesor
meneruskan kembali eksekusi user program di titik interrupt terjadi.
❖ Terdapat beberapa hal yang perlu dipahami tentang interrupt handler :
➢ Pada contoh yang diilustrasikan oleh Figure 3.7b, perlu diperhatikan bahwa
program interrupt handler tidak terdiri dari sekuens instruksi dari sisa I/O
program yang belum dieksekusi (i.e., sekuens instruksi berlabel nomor 5 di
Figure 3.7b tdk. sama dgn. sekuens instruksi berlabel no. 5 di Figure 3.7a).
(cont. to the next slide)
Interrupts
➢ Sebenarnya, program interrupt handler merupakan bagian dari operating
system yang berfungsi untuk memeriksa karakteristik dari interrupt dan
mengimplementasikan berbagai aksi yg. diperlukan utk. menyelesaikan
interrupt tersebut. Pada contoh Figure 3.7b, program interrupt handler
bertugas untuk memeriksa modul I/O mana yang meng-issue interrupt
dan dapat melakukan aksi branching ke program yg. terdiri dari sisa I/O
program yang belum dieksekusi.
➢ Sayangnya, akibat dari pemeriksaan karakteristik dari interrupt dan peng-
implementasian aksi2 tertentu pada program interrupt handler, prosesor
perlu mengeksekusi instruksi2 ekstra; hal ini disebut overhead. Tapi, apa-
bila dibandingkan dengan lamanya waktu yang dibuang untuk menunggu
proses operasi I/O, overhead yang ditimbulkan oleh teknik interrupt dini-
lai jauh lebih efisien.
Interrupts
• Untuk melihat efisiensi yang diberikan oleh teknik interrupt, mari kita
lihat diagram waktu dari flow of control Figure 3.7a dan 3.7b pada Fig.
3.10 di slide berikutnya.
❖ Pada Figure 3.10, segmen kode milik user program diberi warna hijau, sedang-
kan segmen kode milik I/O program diberi warna abu2.
❖ Figure 3.10a memperlihatkan ketika teknik interrupt tidak digunakan. Pada ka-
sus ini, prosesor harus menunggu hingga operasi I/O selesai.
(cont. to the next two slides)
Interrupts
❖ Figure 3.7b dan 3.10b dibuat dgn. mengasumsikan bahwa waktu yang diperlu-
kan utk. operasi I/O relatif pendek, tepatnya kurang dari waktu yg. diperlukan
untuk mengeksekusi sekuens instruksi yang berada di antara dua WRITE call.
Pada kasus ini, segmen kode berlabel nomor 2 diinterupsi, tepatnya porsi kode
2a dieksekusi (saat operasi I/O berjalan), dan kemudian interrupt terjadi (saat
operasi I/O selesai). Setelah interrupt telah selesai dilayani, eksekusi user pro-
gram diteruskan dengan mengeksekusi porsi kode 2b.
• Pada praktiknya, operasi I/O memerlukan waktu yg. relatif lebih lama
dibandingkan mengeksekusi segmen kode pada user program.
❖ Contoh suatu perangkat I/O yang membutuhkan waktu lebih lama dalam me-
nyelesaikan operasi I/O adalah printer. Bayangkan ketika printer perlu mence-
tak berlembar2 kertas.
(cont. to the next slide)
Interrupts
❖ Figure 3.7c di slide berikutnya memperlihatkan kondisi operasi I/O yang relatif
lebih lama ini. Pada kasus ini, user program telah mencapai WRITE call yg. ke-
dua sebelum operasi I/O yang akibat dari WRITE call yang pertama selesai.
❖ Alhasil, user program terpaksa berhenti di titik WRITE call kedua. Setelah ope-
rasi I/O yang ditunggu selesai, WRITE call kedua baru diproses sehingga opera-
si I/O yang baru dapat dimulai.
❖ Meskipun prosesor perlu menunggu pada kasus yang diperlihatkan oleh Figure
3.7c, teknik interrupt yang digunakan di kasus tsb. masih memberikan efisiensi
walaupun tidak besar, tepatnya sebagian waktu operasi I/O masih dapat digu-
nakan oleh prosesor untuk mengeksekusi segmen kode milik user program.
❖ Figure 3.11 di dua slide berikutnya memperlihatkan diagram waktu dari flow
of control Figure 3.7a dan 3.7c.
Interrupts
• Figure 1.12 di bawah ini merupakan hasil revisi diagram state dari ins-
truction cycle yang melibatkan pemrosesan interrupt cycle.
Multiple Interrupts
• Sekarang, kita akan membahas multi-interrupt.
❖ Misal, suatu program perlu menerima data yang berasal dari kabel komunikasi
dan mengirim data ke printer.
❖ Unit controller yg. mengendalikan kabel komunikasi akan menghasilkan suatu
interrupt tiap kali suatu unit data datang melalui kabel komunikasi, sedangkan
printer akan menghasilkan interrupt tiap kali menyelesaikan operasi cetak.
❖ Pada praktiknya, sangat mungkin ditemukan suatu kejadian yang mana inter-
rupt dari komunikasi terjadi ketika interrupt dari printer sedang diproses oleh
prosesor, atau sebaliknya.
• Terdapat dua pendekatan untuk menangani multi-interrupt :
❖ Pendekatan yang pertama adalah dengan menonaktifkan interrupt ketika
suatu interrupt sedang diproses. Pendekatan ini disebut disable interrupt.
Multiple Interrupts
❖ Pada disable interrupt, ketika suatu user program dieksekusi dan suatu inter-
rupt terjadi, fitur interrupt langsung dinonaktifkan sesaat setelah itu. Apabila
ada interrupt lain yang terjadi ketika fitur interrupt telah dinonaktifkan, inter-
rupt tersebut akan menunggu (pending). Setelah prosesor telah selesai meng-
eksekusi interrupt handler routine, fitur interrupt diaktifkan kembali, dan ke-
mudian prosesor memeriksa apakah ada interrupt lain yang sedang menung-
gu sebelum kembali mengeksekusi user program.
❖ Pendekatan disable interrupt sangat mudah dan sederhana karena interrupt2
ditangani secara sekuensial, seperti yang diperlihatkan oleh Figure 3.13a di
slide berikutnya.
(cont. to the next two slides)
Multiple Interrupts
❖ Namun, pendekatan disable interrupt memiliki suatu kekurangan, yaitu tidak
memerhatikan prioritas dan kebutuhan yang sifatnya time-critical. Misal, ke-
tika suatu masukan datang dari kabel komunikasi, masukan ini harus diterima
secepat mungkin agar memori dapat segera dikosongkan untuk dialokasikan
pada masukan berikutnya. Apabila batch masukan yg. pertama belum dipro-
ses saat batch masukan yang kedua datang, data dapat hilang.
❖ Pendekatan yang kedua adalah dgn. mendefinisikan prioritas untuk tiap inter-
rupt dan mengizinkan interrupt yang memiliki tingkat prioritas yang lebih ting-
gi untuk menginterupsi interrupt handler yang memiliki tingkat prioritas yang
lebih rendah (lihat Figure 3.13b di slide sebelumnya).
(cont. to the next slide)
Multiple Interrupts
❖ Contoh pendekatan yang kedua : bayangkan suatu sistem komputer dgn. ting-
kat perangkat I/O : printer, disk, dan kabel komunikasi. Nilai prioritas utk. keti-
ga perangkat I/O ini secara berurut ialah 2, 4, dan 5 (i.e., tingkat prioritas inter-
rupt dari printer < disk < kabel komunikasi).
❖ Fig. 3.14 di slide berikutnya memperlihatkan sekuens eksekusi untuk ketiga in-
terrupt yang berasal dari masing2 perangkat I/O. Suatu user program mulai di-
eksekusi pada. t = 0. Pd. t =10, printer interrupt terjadi; seluruh informasi yang
berkaitan dengan user program disimpan di dlm. system stack, dan kemudian
eksekusi diteruskan ke printer interrupt service routine (ISR).
(cont. to the next two slides)
Multiple Interrupts
❖ Saat ISR printer ini sedang dieksekusi, pada t = 15, interrupt dari kabel komuni-
kasi terjadi. Krn. kabel komunikasi memiliki nilai prioritas yang lebih tinggi dari
printer, interrupt dari kabel komunikasi yg. diutamakan. ISR printer diinterupsi,
state dari ISR printer saat ini disimpan ke dalam system stack, dan eksekusi di-
teruskan ke ISR kabel komunikasi.
❖ Saat ISR kabel komunikasi ini sdg. dieksekusi, interrupt dari disk terjadi (t = 20).
Karena interrupt ini memiliki nilai prioritas yang lebih rendah dari kabel komu-
nikasi, interrupt dari disk harus di-pending hingga ISR kabel komunikasi diekse-
kusi hingga selesai.
(cont. to the next slide)
Multiple Interrupts
❖ Setelah ISR kabel komunikasi selesai (t = 25), state sebelumnya yg. telah disim-
pan, yaitu eksekusi ISR printer, dimuat kembali. Namun, sebelum satupun ins-
truksi pada ISR printer dieksekusi, prosesor mengutamakan interrupt dari disk
sehingga control ditransfer ke ISR disk.
❖ Setelah ISR disk selesai dieksekusi (t = 35), ISR printer baru diteruskan kembali.
Selesainya eksekusi ISR printer (t = 40), control kembali ke user program.
Fungsi I/O
• Tidak hanya prosesor dan memori, prosesor dan I/O module-pun da-
pat berkomunikasi secara langsung.
❖ Seperti laiknya prosesor yg. dapat menginisiasi operasi baca-tulis dengan me-
mori, prosesor juga dapat melakukan operasi baca-tulis dengan I/O module.
❖ Akibatnya, bentuk sekuens eksekusi instruksi antara prosesor dan I/O module
mirip seperti Figure 3.5. Kita sebut instruksi di sini sebagai instruksi I/O untuk
membedakannya dengan instruksi memory-referencing.
❖ Namun, karena suatu I/O module dapat terhubung ke lebih dari satu perang-
kat I/O, prosesor perlu mengidentifikasi spesifik perangkat I/O mana yg. ingin
dilakukan operasi baca-tulis.
Fungsi I/O
• Pada kasus2 tertentu, kita menginginkan agar I/O module dapat ber-
komunikasi langsung dengan memori.
❖ Di sini, prosesor memberi izin (otoritas) kpd. I/O module untuk membaca dari-
dan menulis ke- memori secara langsung sehingga transfer antar keduanya da-
pat terjadi tanpa campur tangan prosesor.
❖ Dengan demikian, I/O module dapat mengeluarkan perintah baca-tulis ke me-
mori tanpa perlu membebani prosesor.
❖ Operasi ini disebut direct access memory (DMA), dan akan dibahas lebih leng-
kap di Bab 7.
STRUKTUR2 INTERKONEKSI
Struktur2 Interkoneksi
• Komputer sebenarnya merupakan suatu sistem yang terdiri dari tiga
komponen dasar, yaitu prosesor, memori, dan I/O, yg. saling berko-
munikasi satu sama lain.
❖ Karena ketiga komponen dasar komputer saling berkomunikasi satu sama lain,
kita boleh menganggap komputer sbg. suatu “jaringan” dari komponen2 dasar
komputer. Dalam suatu jaringan, pastilah ada jalur2 yg. menghubungkan kom-
ponen2 dasar komputer tsb, dan seluruh jalur ini secara satu kesatuan disebut
sebagai struktur interkoneksi.
❖ Spesifik desain dari suatu struktur interkoneksi bergantung pada pertukaran2
data yg. diperlukan di antara modul komputer. Pd. praktiknya, kita dapat me-
ngetahui spesifik desain struktur interkoneksi melalui masukan dan keluaran
yg. dimiliki oleh tiap modul, seperti yg. diilustrasikan oleh Figure 3.15 di slide
berikutnya.
Struktur2 Interkoneksi
• Berikut deskripsi dari tiap modul pada Figure 3.15 :
❖ Sebelumnya perlu dipahami, pada Figure 3.15, tanda panah yang lebar mere-
presentasikan sekumpulan kabel sinyal yang membawa bit2 secara paralel, se-
dangkan tanda panah yang tipis merepresentasikan suatu kabel sinyal tunggal.
❖ Memori : Umumnya, suatu modul memori terdiri dari N-word yang tiap word-
nya memiliki ukuran yang ekuivalen. Setiap word ini diberikan alamat numeri-
kal yang unik (0, 1, …, N-1). Satu word data dapat dibaca dari- atau ditulis ke-
memori tiap kali melakukan operasi baca-tulis. Spesifik operasi apakah yang
sedang dialami oleh memori (i.e., apakah itu operasi baca atau operasi tulis)
diindikasikan oleh sinyal kontrol read dan write. Masukan address pd. modul
memori berfungsi untuk menentukan lokasi memori mana yang dibutuhkan
untuk keperluan operasi.
(cont. to the next slide)
Struktur2 Interkoneksi
❖ I/O module : Dari sudut pandang internal (i.e., sistem komputer), I/O module
memiliki fungsi yang sama seperti memori. Terdapat dua operasi yang dapat
dilakukan, yaitu baca dan tulis. Suatu I/O module dapat mengendalikan lebih
dari satu perangkat I/O sekaligus. Secara praktiknya, I/O module mengenda-
likan (mengakses) tiap perangkat I/O melalui interface-nya masing2. Setiap
interface, atau disebut juga sebagai port, pada I/O module memiliki alamat
yang unik (e.g., 0, 1, …, M-1). Selain itu, terdapat jalur2 data eksternal untuk
masukan dan keluaran data dgn. perangkat I/O. Terakhir, suatu I/O module
dapat mengeluarkan sinyal interrupt ke prosesor.
❖ Prosesor : Prosesor membaca (memasukkan) instruksi dan data, menulis (me-
ngeluarkan) data setelah pemrosesan telah selesai, dan menggunakan sinyal2
kontrol untuk mengendalikan operasi sistem secara keseluruhan. Prosesor ju-
ga menerima sinyal2 interrupt.
Struktur2 Interkoneksi
• Deskripsi di poin sebelumnya memperlihatkan spesifik data yg. akan
dipertukarkan antar-modul, seperti yang tertera di bawah ini.
❖ Memori ke prosesor : Prosesor membaca suatu instruksi atau suatu unit data
dari memori.
❖ Prosesor ke memori : Prosesor menulis suatu unit data ke memori.
❖ I/O module ke prosesor : Prosesor membaca data dari suatu perangkat I/O via
I/O module tertentu.
❖ Prosesor ke I/O module : Prosesor mengirimkan data ke perangkat I/O.
❖ I/O module ke- atau dari memori : Utk. kedua bentuk pertukaran data ini, I/O
module diperbolehkan untuk bertukar data secara langsung dengan memori,
tanpa perantara prosesor, via direct memory access.
Struktur2 Interkoneksi
• Sejauh ini, terdapat dua struktur interkoneksi yang paling sering digu-
nakan : 1) bus (termasuk beragam struktur multi-bus); dan 2) struktur
interkoneksi point-to-point.
❖ Oleh karena itu, seluruh sisa sub-bab di sini akan membahas ttg. interkoneksi
bus dan point-to-point ini.
BUS INTERCONNECTION
Interkoneksi Bus
• Interkoneksi bus telah digunakan selama puluhan tahun, tetapi seka-
rang sudah mulai digantikan oleh interkoneksi point-to-point.
• Namun, interkoneksi bus masih banyak diadopsi oleh embedded sys-
tems, terutama mikrokontroler.
• Interkoneksi bus merupakan suatu jalur komunikasi yg. digunakan se-
cara bersama oleh sejumlah perangkat yg. terpasang (terkoneksi) ke
jalur komunikasi tersebut.
❖ Karena bus digunakan secara bersama, suatu sinyal yang ditransmisikan oleh
suatu perangkat dapat diterima oleh perangkat2 lain yang terpasang pada bus.
(cont. to the next slide)
Interkoneksi Bus
❖ Apabila ada dua perangkat mentransmisikan sinyal di periode waktu yg. sama,
kedua sinyal tersebut akan saling tumpang tindih, dan akibatnya menjadi sam-
pah (tidak berguna).
❖ Oleh karena itu, hanya ada boleh satu perangkat saja yang boleh mentransmi-
sikan sinyal di suatu waktu.
• Pada umumnya, bus terdiri dari sejumlah kabel komunikasi yg. mana
setiap kabel ini dapat mentransmisikan sinyal yg. merepresentasikan
nilai biner 1 dan 0.
❖ Di sepanjang waktu, suatu sekuens bit dapat ditransmisikan pada satu kabel
komunikasi. Namun, kita juga dapat menggunakan lebih dari satu kabel utk.
mentransmisikan digit2 biner secara paralel; misal, suatu unit data berukuran
8-bit dapat ditransmisikan pada delapan kabel komunikasi.
Interkoneksi Bus
• Dalam suatu sistem komputer, terdapat sejumlah bus berbeda yang
terpasang di berbagai level pada hierarki sistem komputer.
❖ Suatu bus yang menginterkoneksikan komponen2 mayor komputer (i.e., prose-
sor, memori, I/O) disebut system bus.
❖ Suatu system bus biasanya terdiri dari lima puluh hingga ratusan kabel yg. ter-
pisah. Setiap kabel ini memiliki tujuan dan fungsinya masing2. Namun, setiap
kabel ini pasti merupakan salah satu dari tiga klasifikasi fungsional (lihat Figure
3.16 di slide berikutnya) : kabel data, kabel alamat, dan kabel kontrol. Mungkin
juga sebagian kabel pd. system bus merupakan kabel2 distribusi daya yang ber-
fungsi utk. memberikan daya listrik ke seluruh modul yg. terpasang pd. sistem
komputer.
(cont. to the next slide)
Interkoneksi Bus
❖ Kabel data : Setiap kabel data berfungsi utk. memindahkan data antar-modul
sistem. Seluruh kabel data ini secara kolektif disebut data bus. Data bus dapat
terdiri dari 32, 64, 128, atau lebih kabel data yang terpisah, dan jumlah kabel
data ini disebut juga sebagai lebar data bus. Setiap kabel data ini membawa
satu bit data tiap waktunya sehingga jumlah keseluruhan kabel data dlm. data
bus merepresentasikan banyaknya bit yagn dapat ditransfer oleh data bus tiap
waktunya. Lebar data bus berkontribusi besar dalam menentukan performansi
sistem secara keseluruhan. Misal, apabila lebar data bus suatu sistem adalah
32-bit dan ukuran tiap instruksinya adalah 64-bit, prosesor harus mengakses
memori sebanyak dua kali tiap satu instruction cycle.
(cont. to the next slide)
Interkoneksi Bus
❖ Kabel alamat : Kabel ini berfungsi untuk mentransmisikan alamat sumber atau
destinasi data. Misal, apabila prosesor ingin membaca suatu word data (8, 16,
atau 32-bit) dari memori, prosesor menaruh alamat dari word yang diinginkan
pada kabel2 alamat. Tentu saja, lebar address bus merepresentasikan kapasitas
maksimum memori yang dimiliki oleh sistem komputer. Selain itu, address bus
umumnya jg. digunakan utk. mengakomodasi port I/O. Agar address bus dapat
digunakan baik utk. mengakomodasi alamat word data pada memori maupun
utk. mengakomodasi port I/O, biasanya bit2 berorde tinggi digunakan utk. me-
milih modul mana yang ingin diakses (apakah modul memori atau I/O module)
dan bit2 berorde rendah digunakan utk. menentukan suatu lokasi pada memo-
ri atau memilih suatu port I/O tertentu. Misal, pada suatu address bus dengan
lebar 8-bit, alamat 01111111 ke bawah digunakan untuk merujuk lokasi2 pada
modul memori (modul 0) berkapasitas 27 = 128-word dan alamat 10000000 ke
atas merujuk perangkat2 yang terpasang ke I/O module (modul 1).
(cont. to the next slide)
Interkoneksi Bus
❖ Kabel kontrol : Kabel ini berfungsi utk. mengendalikan akses dan penggunaan
dari kabel data dan kabel alamat. Pengendalian ini diperlukan karena seluruh
kabel data dan kabel alamat digunakan secara bersama oleh komponen2 kom-
puter. Setiap sinyal kontrol yang ditransmisikan pada kabel kontrol terdiri dari
informasi command (perintah) dan timing (penentuan waktu) antar-modul sis-
tem. Informasi command menspesifikasikan operasi2 yang perlu dilakukan, se-
dangkan informasi timing mengindikasikan validitasi data & informasi alamat.
Berikut sinyal2 kontrol yang umumnya ditransmisikan pada kabel2 kontrol :
➢ Memory write : Menyebabkan data yang ada di bus ditulis ke lokasi sesuai
dengan alamat yang diinginkan.
➢ Memory read : Menyebabkan data yg. tersimpan di dalam lokasi sesuai de-
ngan alamat yang diinginkan dipindahkan (dimuat) ke bus.
(cont. to the next slide)
Interkoneksi Bus
➢ I/O write : Menyebabkan data yg. ada di bus dikeluarkan ke port I/O sesuai
dengan alamat yang diinginkan.
➢ I/O read : Menyebabkan data dari port I/O sesuai dgn. alamat yang diingin-
kan dipindahkan ke bus.
➢ Transfer ACK : Mengindikasikan (memberitahukan) bahwa data telah diteri-
ma dari- atau dipindahkan ke- bus.
➢ Bus request : Mengindikasikan bahwa suatu modul perlu utk. memperoleh
kendali atas bus.
➢ Bus grant : Mengindikasikan bahwa modul yang ingin memperoleh kendali
atas bus telah diberi izin untuk mengendalikan bus.
(cont. to the next slide)
Interkoneksi Bus
➢ Interrupt request : Mengindikasikan bahwa terdapat suatu interrupt yang
sedang dalam kondisi pending.
➢ Interrupt ACK : Meng-acknowledge (mengakui, menyatakan) bahwa inter-
rupt yang sedang dalam kondisi pending telah diketahui keberadaannya.
➢ Clock : Digunakan untuk mensikronisasikan seluruh operasi.
➢ Reset : Menginisialisasi seluruh modul.
• Berikut mekanisme operasi pada bus :
❖ Apabila suatu modul ingin mengirim data ke modul lainnya, modul pengirim
harus melakukan dua hal : 1) memperoleh kendali atas bus, dan 2) mentrans-
fer data via bus.
(cont. to the next slide)
Interkoneksi Bus
❖ Apabila suatu modul ingin memperoleh data dari modul lainnya, modul pene-
rima harus melakukan tiga hal : 1) memproleh kendali atas bus, 2) mentransfer
suatu request ke modul tujuan menggunakan kabel2 kontrol dan alamat yang
bersesuaian, dan 3) menunggu modul tujuan untuk mengirimkan datanya.
INTERKONEKSI POINT-TO-POINT
Interkoneksi Point-to-point
• Sistem komputer kontemporer saat ini lebih memilih utk. mengadop-
si interkoneksi point-to-point daripada interkoneksi bus.
• Terdapat sejumlah alasan utama mengapa interkoneksi point-to-point
lebih diinginkan :
1) Ketika frekuensi data yg. ditransmisikan pada interkoneksi bus, lebih tepatnya
wide synchronous bus, dibuat semakin tinggi, terdapat masalah2 elektrik yang
dihadapi sehingga fungsi2 sinkronisasi dan arbitrasi sulit utk. diimplementasi-
kan secara tepat waktu.
2) Seiring berkembangnya teknologi cip multi-core, dimana jumlah prosesor dan
porsi memori (i.e., cache) semakin signifikan dlm. satu cip, penggunaan inter-
koneksi bus pada cip yg. sama menyulitkan untuk meningkatkan frekuensi data
dan menurunkan waktu latensi bus sehingga efeknya bus tdk. dapat mengikuti
kecepatan prosesor.
Interkoneksi Point-to-point
• Sekarang kita akan membahas tentang interkoneksi point-to-point. Di
sini, kita menggunakan QuickPath Interconnect (QPI) milik Intel untuk
memahami interkoneksi point-to-point secara umum.
• Berikut karakteristik2 QPI :
❖ Multiple direct connections : Setiap komponen pd. sistem memiliki direct pair-
wise connections ke komponen2 yg. lain. Direct pairwise connections merupa-
kan koneksi antara dua komponen sistem yg. sifatnya dua arah dan terhubung
langsung secara fisik (i.e., tidak ada perantara di antara dua komponen sistem
tersebut). Dengan karakteristik ini, praktik arbitrasi yang biasa terjadi pada in-
terkoneksi bus dapat dieliminasi.
(cont. to the next slide)
Interkoneksi Point-to-point
❖ Layered protocol architecture : Sama seperti environment pd. jaringan, misal-
nya saja jaringan data berbasis TCP/IP, QPI jg. menggunakan arsitektur layered
protocol. Hal ini berbeda dengan interkoneksi bus yg. hanya menggunakan si-
nyal2 kontrol.
❖ Packetized data transfer : Data tidak ditransmisikan sebagai aliran bit, melain-
kan data ditransmisikan dalam sekuens paket yang mana setiap paket memuat
control headers dan error control codes.
• Figure 3.17 di slide berikutnya memperlihatkan contoh implementasi
QPI pada komputer multi-core.
❖ Setiap QPI link (diindikasikan oleh pasangan tanda panah berwarna hijau pada
Figure 3.17) secara kolektif membentuk suatu jaringan yang mana data dapat
berpindah antar-sesama core atau antara prosesor & I/O hub.
(cont. to the next slide)
Interkoneksi Point-to-point
❖ I/O hub (IOH) digunakan pd. QPI agar dapat terhubung ke I/O module. Dengan
demikian, IOH berperan sebagai suatu switch yang mengarahkan lalu lintas da-
ta ke- dan dari- perangkat2 I/O.
❖ Umumnya pd. sistem komputer yg. lebih terbaru, teknologi link yg. digunakan
untuk menghubungkan antara IOH dan I/O device controller (i.e., I/O module)
adalah PCI Express (PCIe). Oleh karena itu, IOH juga perlu memiliki kemampu-
an untuk mentranslasikan seluruh protokol & format QPI ke beragam protokol
& format PCIe.
❖ Setiap core juga terhubung ke suatu modul main memory (biasanya, teknologi
memori yang digunakan ialah dynamic access random memory (DRAM)) mela-
lui link dalam bentuk dedicated memory bus.
Interkoneksi Point-to-point
• QPI sendiri adalah suatu arsitektur protokol empat layer (Figure 3.18
di slide berikutnya) sebagaimana masing2 layer dideskripsikan sbb :
❖ Physical layer : Layer ini terdiri dari 1) kabel2 fisik yg. berfungsi utk. membawa
sinyal2; dan 2) rangkaian2 elektrik & logika yang diperlukan untuk mendukung
proses pengiriman (transmisi) & penerimaan bit2 1 dan 0. Unit transfer pd. la-
yer ini adalah 20-bit yang disebut sebagai Phit (physical unit).
❖ Link layer : Layer ini bertanggung jawab untuk memastikan proses transmisi &
flow control yang reliabel. Unit transfer pada layer ini adalah 80-bit yang dise-
but sebagai Flit (flow control unit).
(cont. to the next two slides)
Interkoneksi Point-to-point
❖ Routing layer : Layer ini menyediakan framework yang berfungsi untuk meng-
arahkan (memindahkan) paket2 di dalam jaringan.
❖ Protocol layer : Level ini terdiri dari sejumlah set aturan tingkat tinggi utk. ke-
perluan pertukaran paket data antar-perangkat. Unit transfer pada layer ini
disebut paket, dan besar ukuran satu paket adalah suatu kelipatan dari Flit.
QPI Physical Layer
• Figure 3.19 di slide berikutnya memperlihatkan bentuk arsitektur fisik
dari suatu port QPI.
❖ Satu port QPI terdiri dari 84 link. Seluruh link ini dikelompokkan menjadi trans-
mission lane, reception lane, dan clock lane untuk dua arah komunikasi. Defini-
si lane sendiri ialah suatu jalur data yg. terbuat dari sepasang link yg. berfung-
si untuk mentransmisikan satu bit tiap waktu.
❖ Untuk masing2 arah komunikasi (kirim dan terima), terdapat 20 data lane yang
dipasang plus satu clock lane. Dengan demikian, QPI mampu memindahkan 20
bit (phit) secara paralel untuk tiap arah komunikasi.
(cont. to the next two slides)
QPI Physical Layer
❖ 20 data lane untuk tiap arah komunikasi dikelompokkan ke dalam empat kua-
dran yang mana masing2 kuadran terdiri dari 5 lane. Pengelompokkan ke dlm.
kuadran ini biasanya bermanfaat untuk mengurangi konsumsi daya atau seba-
gai langkah untuk mengatasi eror pada sebagian data lane/clock lane.
• Bentuk transmisi pada tiap lane diberi nama different signaling atau
balanced transmission.
❖ Dengan bentuk transmisi ini, sinyal ditransmisikan dalam arus listrik yang ber-
pindah (mengalir) dari satu link ke link pasangannya.
❖ Namun pada QPI, spesifik tipe different signaling yang digunakan adalah low-
voltage different signaling (LVDS) sebagaimana yang akan dideskripsikan pada
poin berikutnya.
(cont. to the next slide)
QPI Physical Layer
❖ Pada LVDS, spesifik nilai biner (apakah bit 1 atau 0) yg. direpresentasikan oleh
suatu lane bergantung pada polaritas beda tegangannya : umumnya, satu link
diberi nilai tegangan yang positif, sedangkan link pasangannya diberi nilai te-
gangan nol, kemudian transmitter (di sisi komponen pengirim) mengeluarkan
arus listrik bermagnituda rendah pada salah satu link utk. melewati suatu re-
sistor di receiver (di sisi komponen penerima) agar terbentuk beda tegangan
bermagnituda rendah di resistor tsb. Apabila arus listrik dialirkan pd. link de-
ngan nilai tegangan positif, biasanya nilai biner yang direpresentasikan adalah
bit 1, dan apabila arus listrik dialirkan pd. link dengan nilai tegangan nol, nilai
biner yang direpresentasikan adalah bit 0.
QPI Physical Layer
• Melalui arsitektur fisik yang dimiliki oleh port QPI, QPI physical layer
dapat melaksanakan fungsinya, yaitu mengelola proses translasi an-
tara flit (80-bit) dan phit (20-bit) melalui suatu teknik yang bernama
multilane distribution.
❖ Pada multilane distribution, sekumpulan flit dianggap sebagai suatu aliran bit
yang didistribusikan ke tiap data lane sesuai dengan model round-robin, yaitu
bit ke-1 dimuat ke data lane ke-1, bit ke-2 dimuat ke data lane ke-2, dst, seper-
ti yang diilustrasikan pada Figure 3.20 di slide berikutnya.
❖ Perlu diperhatikan pada Figure 3.20 bahwa model round-robin-lah yang me-
nyebabkan bit2 pada suatu phit dapat ditransmisikan secara paralel : dua bit
yang lokasinya bersebelahan pada phit dimuat ke dua data lane yang lokasi-
nya juga bersebelahan.
QPI Link Layer
• QPI link layer memiliki dua fungsi : flow control dan error control.
❖ Kedua fungsi QPI link layer ini diimplementasikan pada level flit (80-bit). Setiap
flit terdiri dari message payload berukuran 72-bit dan error control code beru-
kuran 8-bit yang dinamakan juga sebagai cyclic redundancy check (CRC).
❖ Message payload pada flit dapat berupa informasi tentang data (disebut data
flit) atau informasi tentang pesan (disebut message flit). Utk. data flit, konten
message payload merupakan sekuens bit data yang sebenarnya dipertukarkan
antar-core atau antara core & IOH. Utk. message flit, konten message payload
berfungsi untuk menerapkan suatu fungsi tertentu, seperti flow control, error
control, atau cache coherence.
QPI Link Layer
• Deskripsi tentang fungsi flow control :
❖ Fungsi flow control diperlukan utk. menjamin bahwa entitas QPI pengirim tdk.
membanjiri entitas QPI penerima dengan mengirimkan data lebih cepat dari
kemampuan penerima dalam memproses data dan membersihkan buffer.
❖ Utk. mengimplementasikan flow control, QPI menggunakan skema kredit. Saat
inisialisasi, entitas QPI pengirim diberikan sejumlah kredit agar dpt. mengirim-
kan flit2 ke entitas QPI penerima. Setiap kali suatu flit dikirimkan, maka entitas
QPI pengirim mengurangi total kredit yang dimilikinya sebesar satu. Kapanpun
suatu buffer telah dikosongkan di sisi entitas QPI penerima, satu kredit dikem-
balikan kepada entitas QPI pengirim. Dengan skema kredit seperti ini, entitas
QPI penerima yang mengendalikan kecepatan transfer data.
QPI Link Layer
• Deskripsi tentang fungsi error control :
❖ Ada kalanya, suatu bit yang ditransmisikan di QPI physical layer berubah nilai-
nya saat proses transmisi akibat dari derau atau fenomena lainnya. Fungsi er-
ror control pada QPI link layer berfungsi untuk mendeteksi dan melakukan re-
covery terhadap eror semacam ini sehingga layer2 QPI yang lebih tinggi tidak
mengalami eror ini.
❖ Berikut prosedur error control ketika ada aliran data dari sistem A ke sistem B :
1. Seperti yang telah diketahui, porsi 8-bit pada flit merupakan field utk. CRC.
CRC adalah hasil fungsi dari porsi 72-bit sisanya (i.e., message payload). Sa-
at proses transmisi, sistem A mengkalkulasi nilai CRC untuk tiap flit, dan ke-
mudian memuat nilai2 CRC tersebut ke masing2 flit.
(cont. to the next slide)
QPI Link Layer
2. Ketika suatu flit telah berhasil diterima, sistem B menghitung nilai CRC dari
72-bit message payload, dan kemudian membandingkan nilai ini dengan ni-
lai CRC yang tertera pada flit. Apabila kedua nilai tidak ekuivalen, suatu eror
telah berhasil dideteksi.
3. Setelah sistem B telah berhasil mendeteksi suatu eror, sistem B mengirim-
kan suatu request ke sistem A untuk mentransmisikan ulang flit yang meng-
alami eror. Namun, apabila sistem A telah mengirimkan flit2 lain yang terle-
tak setelah flit yang mengalami eror sebelum sistem A menerima request
dari sistem B, sistem A perlu mentransmisikan kembali flit yang mengalami
eror plus flit2 yang telah dikirimkan setelahnya tersebut.
QPI Routing Layer
• QPI routing layer berfungsi untuk menentukan rute suatu paket pada
suatu sistem interkoneksi.
❖ Rute yang akan dilewati oleh paket ditentukan berdasarkan routing table yang
didefinisikan oleh firmware.
❖ Pada sistem yg. ukuran konfigurasinya kecil, opsi2 perutean tdk. terlalu banyak
sehingga routing table-nya pun cukup sederhana.
❖ Apabila ukuran konfigurasinya lebih besar, opsi2 peruteannya-pun lebih kom-
pleks, dan spesifik opsi2 perutean ini biasanya dipengaruhi oleh sejumlah fak-
tor, seperti bagaimana komponen2 terpopulasi pada platform dan bagaimana
bentuk partisi dari system resources.
QPI Protocol Layer
• Seperti yg. telah dijelaskan, unit transfer pd. layer ini adalah paket.
❖ Definisi (format) konten yang digunakan pada paket telah distandarisasi agar
menyediakan fleksibilitas yg. tinggi agar memenuhi requirements yg. diminta
dari beragam segmen pasar yang berbeda.
• Satu fungsi utama dari QPI protocol layer adalah menyediakan suatu
protokol bernama cache coherency protocol.
❖ Kegunaan cache coherency protocol adalah memastikan nilai2 main memory
yang disalin di sejumlah cache selalu konsisten.
❖ Di sini, paket memuat payload atau blok data yang dikirim ke- atau diterima
dari- suatu cache.
PCI EXPRESS (PCIe)
Peripheral Component Interconnect (PCI)
• Definisi peripheral component interconnect (PCI) : Suatu bus dgn. ka-
rakteristik bandwidth tinggi dan processor-independent yg. digunakan
untuk mengakomodasi perangkat2 I/O berkecepatan tinggi.
❖ Contoh perangkat I/O berkecepatan tinggi : graphic display adapter, network
interface controllers, dan disk controllers.
• Seluruh paten PCI telah dipublikasi secara luas oleh Intel sehingga be-
ragam produk PCI yg. dibuat oleh vendor2 berbeda saling kompatibel.
PCI Express (PCIe)
• Sayangnya, PCI mulai tdk. mampu memenuhi permintaan kecepatan
transfer data yg. semakin tinggi sehingga versi terbaru dikembangkan
untuk mengatasi masalah ini yang dikenal sebagai PCI express (PCIe).
❖ Sama seperti QPI, PCIe merupakan skema interkoneksi point-to-point.
❖ Contoh perangkat I/O yg. perlu diakomodasi oleh PCIe : gigabit ethernet, apli-
kasi video-on-demand, dan aplikasi di bidang komunikasi yang perlu mempro-
ses data secara real-time.
(cont. to the next slide)
PCI Express (PCIe)
❖ Tidak hanya mengakomodasi kecepatan transfer data yg. semakin tinggi, PCIe
juga mengakomodasi proses2 transfer data yang dilakukan secara concurrent
(bersamaan). Hal ini diperlukan karena sudah tidak diperbolehkan lagi untuk
memproses beragam tipe data secara ekuivalen : Lebih penting, misalnya, un-
tuk memproses data streaming terlebih dahulu dibandingkan tipe data yg. lain
krn. pemrosesan data real-time yg. lambat akan membuat data tidak berguna.
Dgn. demikian, data perlu di-tag (diberi label) sehingga sistem I/O dapat mem-
prioritaskan proses2nya.
Arsitektur Fisik dan Logika dari PCIe
• Figure 3.21 di slide berikutnya memperlihatkan konfigurasi tipikal yg.
menggunakan PCIe.
❖ Root complex, disebut juga sebagai chipset, yg. ada pada konfigurasi berfungsi
untuk menghubungkan prosesor dan memori dengan jaringan PCIe yg. terdiri
dari satu atau lebih perangkat I/O berbasis PCI atau PCIe.
❖ Chipset berperan sebagai perangkat buffering untuk mengatasi perbedaan ke-
cepatan transfer data antara prosesor, memori, dan seluruh I/O controller.
❖ Chipset juga berperan untuk mentranslasikan antara seluruh format transaksi
PCIe dan seluruh sinyal & kontrol prosesor & memori.
(cont. to the next two slides)
Arsitektur Fisik dan Logika dari PCIe
❖ Chipset menyediakan sejumlah port PCIe yang mana satu atau lebih port dapat
terkoneksi langsung ke perangkat2 PCIe (misalnya, Gigabit ethernet), dan satu
atau lebih port dapat terkoneksi ke switch yang berperan untuk mengelola se-
kumpulan PCIe streams.
❖ Link2 PCI yang keluar dari chipset dapat terkoneksi dengan device2 yang meng-
implementasikan PCIe sbb :
➢ Switch : Switch berperan untuk mengelola PCIe streams.
➢ PCIe endpoint : Suatu perangkat I/O atau I/O controller yg. mengimplemen-
tasikan PCIe, seperti Gigabit ethernet switch, graphics- or video- controller,
disk interface, atau communication controller.
(cont. to the next slide)
Arsitektur Fisik dan Logika dari PCIe
➢ Legacy endpoint : Perangkat2 yang terkoneksi pada endpoint ini diperboleh-
kan utk. melakukan legacy behaviors, seperti menggunakan I/O space dan
menerapkan locked transactions. Hal ini berbeda dengan PCIe endpoint yg.
tidak diizinkan untuk menggunakan I/O space saat runtime dan tidak pula
diizinkan untuk menggunakan locked transactions. Dengan mengategorikan
endpoint2 seperti ini, pendesain sistem dapat fleksibel utk. membatasi atau
mengeliminasi legacy behaviors yg. dapat memberi dampak negatif terha-
dap performansi dan operasional sistem.
➢ PCIe/PCI bridge : Bridge ini mengakomodasi supaya perangkat2 berbasis PCI
dapat terkoneksi ke sistem yang menggunakan PCIe.
Arsitektur Fisik dan Logika dari PCIe
• Sama seperti QPI, PCIe juga memiliki suatu arsitektur protokol yang
mendefinisikan bagaimana interaksi2 pada PCIe.
• Arsitektur protokol PCIe terdiri dari tiga layer sbb (lihat Figure 3.22 di
slide berikutnya) :
❖ Physical layer : Layer ini terdiri dari kabel2 fisik yg. berfungsi untuk mentrans-
misikan sinyal. Layer ini juga terdiri dari rangkaian listrik dan rangkaian logika
untuk mendukung fitur2 yang diperlukan untuk proses transmisi dan peneri-
maan bit2 0 dan 1.
❖ Data link layer : Paket2 data yang dibuat dan digunakan pada data link layer di-
sebut data link layer packets (DLLPs). Layer ini bertanggung jawab utk. menye-
diakan transmisi dan flow control yang reliabel terhadap paket2 TLP dan DLLP.
(cont. to the next two slides)
Arsitektur Fisik dan Logika dari PCIe
❖ Transaction layer : Paket2 data yg. dibuat dan digunakan pd. transaction layer
disebut transaction layer packets (TLPs). Layer ini berfungsi utk. membuat dan
menggunakan paket2 TLP yg. diperlukan untuk mengimplementasikan sejum-
lah mekanisme load/ store data transfer. Layer ini juga mengelola flow control
dari paket2 TLP tersebut yg. ditransfer di antara dua komponen yg. terkoneksi
pada suatu link. Di atas transaction layer merupakan software layer yang ber-
peran untuk membuat read-write requests yang ditransmisikan ke perangkat2
I/O oleh transaction layer menggunakan suatu transaction protocol tertentu.
PCIe Physical Layer
• Karena PCIe mengadopsi arsitektur point-to-point, physical layer pada
PCIe memiliki bentuk organisasi sbb :
❖ Perlu diperhatikan, penjelasan tentang layer2 PCIe mulai dari sini hingga sete-
rusnya merujuk pd. spesifikasi PCIe 3.0 yg. diperkenalkan di akhir tahun 2010.
❖ Setiap port PCIe terdiri sejumlah bidirectional lane (lane dua-arah). Lane pada
port PCIe ini berbeda dengan lane pada QPI yang unidirectional (satu arah).
❖ Proses transfer utk. suatu arah pada bidirectional lane dilakukan berdasarkan
teknik differential signaling yang diterapkan menggunakan sepasang kabel.
❖ Suatu port PCIe dapat terdiri dari 1, 4, 6, 16, atau 32 bidirectional lane.
PCIe Physical Layer
• Sama spt. QPI, PCIe juga menggunakan teknik multilane distribution.
❖ Figure 3.23 di slide berikutnya memperlihatkan suatu contoh port PCIe yang
terdiri dari empat lane.
❖ Data didistribusikan ke keempat lane sebanyak satu byte tiap waktunya dgn.
menggunakan skema round-robin.
❖ Setiap lane mem-buffer dan mengeksekusi 16-byte (128-bit) tiap waktunya.
Namun saat ingin ditransmisikan, setiap blok 128-bit ini dienkode ke dalam
suatu codeword unik berukuran 130-bit; teknik enkode seperti ini dinamakan
128b/130b encoding.
❖ Akibat dari 128b/130b encoding, efektivitas kecepatan data dari tiap lane tu-
run sebesar faktor 128/130.
PCIe Physical Layer
• Berikut alasan penggunaan 128b/130b encoding pada PCIe :
❖ Perhatikan bahwa PCIe tidak seperti QPI yg. menggunakan clock lane-nya utk.
keperluan sinkronisasi aliran bit. Atau dgn. kata lain, clock lane pada PCIe tidak
digunakan utk. menentukan titik awal dan akhir dari tiap bit yg. datang; clock
lane digunakan untuk keperluan pensinyalan yang lain.
❖ Namun, entitas PCIe penerima tetap perlu tersinkronisasi dengan entitas PCIe
pengirim agar penerima dpt. menentukan kapan awal bit dan akhir bit dikirim.
❖ Apabila ada drift (perbedaan) antara clock milik pengirim dan clock milik pene-
rima saat proses pengiriman dan penerimaan bit, eror dapat terjadi.
(cont. to the next slide)
PCIe Physical Layer
❖ Sama seperti QPI, PCIe menggunakan differential signaling pada pasangan ka-
bel. Sinkronisasi dapat dicapai oleh entitas PCIe penerima dgn. melihat transi-
si2 yang terjadi pada data, dan kemudian mensinkronisasikan clock-nya berda-
sarkan transisi2 tersebut.
❖ Namun bayangkan suatu situasi yang mana suatu porsi sekuens bit 1 atau 0 yg.
panjang menggunakan differential signaling, keluaran yang diperoleh merupa-
kan suatu nilai tegangan listrik yang konstan dalam periode waktu yang lama.
Pada situasi seperti ini, adanya drift antara clock pengirim dan clock penerima
akan menimbulkan pd. clock synchronization loss (hilangnya sinkronisasi clock)
di antara keduanya.
❖ Untuk mengatasi situasi yang mana diperoleh suatu porsi sekuens bit 1 atau 0
yang panjang, pendekatan bernama scrambling diimplementasikan.
(cont. to the next slide)
PCIe Physical Layer
❖ Pendekatan scrambling tdk. menambah jumlah bit yg. ditransmisikan, melain-
kan memetakan data ke suatu sekuens bit lain yang terlihat acak.
❖ Sekuens bit hasil scrambling cenderung memiliki transisi yg. menyebar secara
merata (uniformly spaced) pada sekuens, dan hal ini baik untuk keperluan sin-
kronisasi di sisi entitas PCIe penerima.
❖ Sekuens bit hasil scrambling juga memberi dampak yang baik terhadap karak-
teristik2 transmisi pada lane, misalnya karakteristik spectral yang berpengaruh
terhadap efisiensi energi.
❖ Agar diperoleh kualitas sinkronisasi yang lebih baik, teknik encoding juga dite-
rapkan tepat setelah pendekatan scrambling dilakukan. Teknik encoding me-
muat bit2 tambahan ke aliran bit untuk memaksa terjadinya transisi2.
(cont. to the next slide)
PCIe Physical Layer
❖ Figure 3.24 di slide berikutnya memperlihatkan penggunaan scrambling dan
encoding di sisi entitas PCIe pengirim dan penerima :
➢ Di sisi entitas PCIe pengirim, data yang akan ditransmisikan dimasukkan ke
fungsi scrambler untuk diacak.
➢ Keluaran scrambler kemudian dimuat ke 128b/130b encoder. Di sini, data
di-buffer terlebih dahulu sebanyak 128-bit sebelum dipetakan ke 130-bit.
➢ Sekuens bit 130-bit kemudian dimuat ke parallel-to-serial converter, dan
kemudian mentransmisikan satu bit tiap waktunya menggunakan teknik
differential signaling.
➢ Di sisi entitas PCIe penerima, clock miliknya disinkronisasi sesuai dgn. data
yang diterima untuk memperoleh (me-recover) aliran bit.
(cont. to the next two slides)
PCIe Physical Layer
➢ Aliran bit kemudian dimuat ke serial-to-parallel converter utk. memperoleh
aliran blok 130-bit.
➢ Setiap blok 130-bit kemudian dimuat ke 128b/130b decoder utk. memper-
oleh bentuk sekuens bit yang telah di-scrambling.
➢ Sekuens dalam bentuk ter-scrambling kemudian dimasukkan ke fungsi de-
scrambled untuk memperoleh data yang sebenarnya.
• Pada praktiknya, kecepatan transfer data pada PCIe physical layer da-
pat mencapai 16-GB/s dengan menggunakan teknik2 yg. telah dijelas-
kan di poin2 sebelumnya.
PCIe Transaction Layer
• Transaction layer menerima requests baca-tulis dari software layer
yg. berada di atasnya, dan kemudian membuat paket request terten-
tu untuk menginisiasi transmisi (i.e., memulai transaksi) ke entitas
PCIe penerima melalui link layer.
• Mayoritas transaksi PCIe diimplementasikan dgn. teknik split transac-
tion yang diterapkan sbb :
❖ Suatu paket request dikirimkan oleh entitas PCIe pengirim, dan kemudian me-
nunggu untuk suatu respons yang disebut paket completion.
❖ Completion yang merupakan respons dari suatu request hanya akan diinisiasi
oleh entitas PCIe penerima apabila data yang diminta tersedia dan/atau me-
miliki status ready for delivery.
(cont. to the next slide)
PCIe Transaction Layer
❖ Dengan teknik split transaction, completion terpisah secara waktu dengan re-
quest; hal ini berbeda dengan operasi bus yang mana kedua entitas yang ber-
transaksi telah memiliki akses untuk menggunakan bus. Di antara request dan
completion, transmisi PCIe yang lain dapat menggunakan link.
• Terdapat empat tipe transaksi PCIe pada transaction layer, yaitu me-
mory, I/O, configuration, dan message.
❖ Transaksi memori berfungsi untuk mentransfer data ke perangkat PCIe.
❖ Transaksi I/O berfungsi untuk mendukung backward compatibility dengan pe-
rangkat legacy PCI, dan tdk. direkomendasikan untuk menggunakan tipe tran-
saksi ini di masa yad.
(cont. to the next slide)
PCIe Transaction Layer
❖ Transaksi configuration digunakan oleh root complex utk. mengonfigurasi sis-
tem saat baru di power-up (dinyalakan).
❖ Transaksi message digunakan untuk mengirimkan interrupt, melaporkan kon-
disi2 eror yang terjadi, atau informasi2 tertentu lainnya.
• Table 3.2 di slide berikutnya memperlihatkan keempat tipe transaksi
transaction layer, termasuk spesifik transaksi2 dari tiap tipe transaksi.
❖ Salah satu spesifik transaksi memory yang menarik untuk dipahami adalah
memory read lock request yang dideskripsikan sbb :
➢ Operasi locked timbul akibat dari sejumlah device driver yg. meminta atom-
ic access ke register2 milik perangkat PCIe. Pengertian atomic access di sini
adalah hanya satu operasi baca atau tulis saja ke register yg. diperbolehkan
di tiap waktu sehingga tdk. boleh ada dua atau lebih device driver yg. mela-
kukan aksi baca atau tulis ke register secara bersamaan.
(cont. to the next two slides)
PCIe Transaction Layer
➢ Agar atomic access ini dapat diimplementasikan, suatu device driver men-
trigger prosesor untuk mengeksekusi suatu instruksi atau suatu set instruk-
si. Lalu, root complex mengonversi instruksi2 prosesor ini menjadi suatu se-
kuens transaksi PCIe yang mana nantinya akan melaksanakan request baca
dan tulis secara satu-per-satu untuk memenuhi permintaan device driver.
➢ Apabila sekuens instruksi perlu dieksekusi secara atomically, root complex
mengunci PCIe link selama sekuens instruksi ini dieksekusi. Penguncian ini
dilakukan agar transaksi2 yang bukan merupakan bagian dari sekuens ins-
truksi tidak muncul. Lebih lanjut, sekuens transaksi PCIe yg. dieksekusi de-
ngan mengunci PCIe link ini disebut sebagai locked operation.
➢ Set instruksi prosesor yang dapat menyebabkan locked operation terjadi
bergantung pada system chip set dan arsitektur prosesornya.
(cont. to the next slide)
PCIe Transaction Layer
❖ Transaksi configuration pada PCIe masih mendukung Type 0 and Type 1 config-
uration transactions agar tetap mengakomodasi PCI :
➢ Type 1 configuration transaction bergerak ke bawah dari root complex hing-
ga ditemui antar-muka bridge yg. meng-hosting (memiliki) link dimana pe-
rangkat yang ditargetkan terhubung.
➢ Selanjutnya pada link tersebut, Type 1 configuration transaction dikonversi
menjadi Type 0 configuration transaction oleh bridge. Type 0 configuration
transaction inilah yang diterima oleh perangkat target.
❖ Terakhir, pesan2 completion digunakan dengan split transaction untuk mendu-
kung transaksi memory, I/O, dan configuration.
PCIe Transaction Layer
• Sekarang, kita akan membahas transaction layer packet (TLP) :
❖ Figure 3.25a di slide berikutnya memperlihatkan format TLP.
❖ Suatu TLP bermula (berasal) dari entitas PCIe pengirim dan berakhir (termina-
si) di entitas PCIe penerima.
❖ Informasi inti yang dimiliki oleh TLP berasal dari software layer yang berada di
atas transaction layer. Informasi inti ini dituangkan ke tiga field berikut :
➢ Header : Header berisi deskripsi tentang spesifik tipe paket. Header jg. me-
muat informasi yang dibutuhkan untuk memproses paket di sisi penerima,
seperti informasi terkait routing.
➢ Data : Data dpt. memuat hingga 4096-byte data aktual. Sebagian TLP tidak
memiliki field data ini.
➢ ECRC : ECRC memungkinkan penerima untuk memeriksa adanya eror atau
tidak pada porsi header dan data pada TLP.
PCIe Data Link Layer
• Tujuan data link layer adalah memastikan pengiriman paket2 yg. re-
liabel pada PCIe link.
• Data link layer ikut serta dalam membentuk format TLP, dan bertang-
gung jawab untuk mentransmisikan data link layer packets (DLLPs).
• Deskripsi data link layer sbg. fungsinya dlm. mentransmisikan DLLPs :
❖ DLLPs berasal dari data link layer di sisi pengirim yang menempati salah satu
ujung link dan berakhir pada data link layer di sisi penerima yang menempati
ujung link lainnya.
❖ Figure 3.25b di slide sebelumnya memperlihatkan format DLLP.
(cont. to the next slide)
PCIe Data Link Layer
❖ Terdapat tiga tipe DLLP yang digunakan untuk mengelola suatu link, yaitu flow
control DLLP, power management DLLP, dan ACK DLLP & NAK DLLP.
❖ Flow control DLLP berfungsi utk. meregulasi kecepatan transfer TLPs dan DLLPs
yg. ditransmisikan pada suatu link. Power management DLLP berfungsi untuk
mengalokasikan kebutuhan daya diperlukan. ACK DLLP & NAK DLLP berfungsi
untuk memproses TLP seperti yang akan dijelaskan pada poin berikutnya.
• Deskripsi data link layer sbg. fungsinya dlm. membentuk format TLP :
❖ DLL menambahkan dua field pada informasi inti TLP (Figure 3.25a), yaitu suatu
sequence number berukuran 16-bit dan link-layer CRC (LCRC) berukuran 32-bit
(cont. to the next slide)
PCIe Data Link Layer
❖ Berbeda dengan field2 inti buatan transaction layer di sisi pengirim yang hanya
diproses pd. transaction layer di sisi penerima, dua field yg. ditambahkan oleh
data link layer selalu diproses oleh tiap intermediate node yang dilewati oleh
TLP sepanjang perjalanannya (transmisinya) dari pengirim ke penerima.
❖ Ketika suatu TLP telah mencapai suatu node, data link layer pd. node tersebut
melepas sequence number field dan LCRC field. Kemudian, LCRC diperiksa yg.
dapat berakhir pada dua kemungkinan berikut :
1) Apabila tidak ada eror yang terdeteksi, informasi inti pada TLP diberikan ke
transaction layer pd. node. Apabila node ini merupakan destinasi akhir TLP,
transaction layer memproses TLP. Apabila bukan, transaction layer membe-
rikan informasi rute pada TLP, dan kemudian mengirimkan TLP ke data link
layer untuk ditransmisikan ke link berikutnya.
(cont. to the next slide)
PCIe Data Link Layer
2) Apabila ada eror yang terdeteksi, data link layer mengirimkan NAK DLLP ke
pengirim, dan kemudian TLP-nya dieliminasi.
❖ Perlu diketahui ketika data link layer mentransmisikan suatu TLP, data link lay-
er tersebut menyimpan salinan TLP tersebut. Apabila kemudian data link layer
menerima NAK DLLP untuk TLP yg. bersangkutan, data link layer mentransmi-
sikan ulang TLP. Apabila ACK DLLP yg. diterima, salinan TLP dihapus.
SELESAI

Anda mungkin juga menyukai