Jumat, 29 Agustus 2008

Pengujian sistem

WHITE BOX


Dikenal juga dengan nama glass box, structural, clear box dan open box testing. Merupakan teknik testing perangkat lunak yang harus mengetahui secara detail tetang perangkat lunak yang akan di uji.

Untuk pengujian yang lengkap maka suatu perangkat lunak harus diuji dengan white box dan black box testing

Dengan Menggunakan white box testing, software engineer da[at medesain suatu test cases yang dapat digunakan untu :

1. Menguji setiap jalur independent

2. Menguji keputusan logic (true atau falsa )

3. Menguji Loops dan batasannya

4. Menguji Data Struktur internalnya

White Box Testing menggunakan 3 macam tahapam testing

        1. Unit Testing

        2. Integration testing

        3. Regression Testing

Mendesain Test Case, Setiap membuat module/unit maka test case harus dilakukan : Test Awal yang dapat dilakukan adalah

Analisa Code Coverage : Basic block coverage, Decision coverage, Condition coverage, Branch coverage, Loop coverage

    1. Basis path testing

      • Digunakan untuk melakukan pengujian bahwa semua jalur independent terlewati semua. Paling tidak suatu jalur minimal harus terlewati sekali.

Statement Decision Path Coverage


Independent Path pada gambar di atas:

1. 1-2-7-8 (property owned, pay rent)

2. 1-2-7-9 (property owned, no money for rent)

3. 1-2-3-4-5-6 (buy house)

4. 1-2-3 (don't want to buy)

5. 1-2-3-4 (want to buy, don't have enough money)


  1. Loop Test

Bertugas untuk melakukan validasi terhadap loop

Jenis loop:

  1. Simple Loopsdengan ukuran n:

  • Skip loop entirely

  • Only one pass through loop

  • Two passes through loop m passes through loop where m

  • (n-1), n, and (n+1) passes through the loop.

  1. Nested Loops

  • Start with inner loop.

  • Set all other loops to minimum values.

  • Conduct simple loop testing on inner loop.

  • Work outwards Continue until all loops tested.

  1. Concatenated Loops

  • If independent loops, use simple loop testing.

  • If dependent, treat as nested loops.

  1. Unstructured

  • loopsDon't test -redesign.


BLACK BOX

Dikenal dengan nama lain:

  • Input/output testing

  • Data driven testing

Menggunakan asumsi tidak mengenal struktur internal dari program (black box). Berkonsentrasi untuk menemukan kondisi dimana program tidak berjalan sesuai dengan spesifikasi (fungsional) Menggunakan spesifikasi untuk data test

Berusaha menemukan kesalahan: Fungsi yang tidak benar atau tidak ada Kesalahan interface Kesalahan pada struktur data atau akses DB Kesalahan perilaku atau performa

Kesalahan inisialisasi Biasa dilakukan di akhir dari proses testing, karena tidak memperhatikan struktur kontrol seperti white box testing

Untuk bisa menemukan semua kesalahan menggunakan strategi ini, diperlukan exhaustive input testing (menggunakan segala macam kemungkinan sebagai input) Input tidak hanya valid input, tetapi juga kombinasi yang mungkin dimasukkan Testing akan semakin kompleks, sebanding dengan kompleksitas program Unlimited virtual test case

Minggu, 08 Juni 2008

TIPS fscan






#include <stdio.h>

#include <conio.h>

#include <iostream.h>



double uts1, uts2, uas, nil;



main()

{

printf("Input Nilai UTS1, UTS2, UAS : ");

scanf("%d, %d, %d ", &uts1, &uts2, &uas);

nil = ((0.2 * uts1) + (0.3 * uts2) + (0.5 * uas));

cout<<"---------------------------------------- \n";

printf(" Nilai akhir yang diperoleh adalah : %d ",nil);





getch();

return 0;

}

Selasa, 03 Juni 2008







#include
#include

int angka, j, k, l;

void main()
{
k=2;
l=2;
for(i=9; i>=4;)
{
for(j=1; j<=l;j++)
{
cout< angka--;
}
cout<<"\n";
l++;
}
getch();
return;
}

Tips Memecahkan Masalah Logika Perulangan

Tips Memecahkan Masalah Logika


Bagi mahasiswa yang berbasis TI, khususnya konsentrasi software. Kita sering menjumpai berbagai macam permasalahan logika. Salah satunya adalah membentuk suatu bangun tertentu dengan deretan-deretan bilangan.

Disini kita akan membahas bagaimana cara memecahkan masalah tersebut.


Persiapan :

  1. Komputer (hehehe………)

  2. Dalam pembahasan kali ini, kita menggunakan bahasa pemrograman C++

  3. Buku-buku algoritma dan pemrograman, C++. Tidak ada juga gak apa-apa kok. Tapi ngomong-ngomong masalah buku… masa’ Mahasiswa TI gak ada referensinya. Harga buku Cuma sekian persen kalo dibandingin sama pengeluaran kita keseluruhan, seperti rokok, main game, …. Hjasda gduddn sasaiaiu kalo masih diterusin pembahasannya kapan yah…..

  4. Sebagai pelengkap kopi susu, teh susu, atau minuman yang lain.., asal bukan minuman keras yah…. Eh… satu lagi kalo merokok, lebih enak juga tuh…


Langkah-langkah:

  1. Tentukan dahulu permasalahannya apa.

Misalnya kita mempunyai soal dari dosen atau teman kita :

9

8 7

6 5 4

3 2 1 0


  1. Nah itu dia soalnya……, bagi yang sudah lancer pasti soal itu udah gampang. Jadi seilmu seguru jagan saling mengganggu….. hiiiiaaaaap Bismillahi Rahmani Rahim

  2. Untuk memecahkan masalah tersebut kita harus lihat deret bilangan yang ada sama bentuk bangunan yang dibentuk

Hal pertama yang kita dapat dari soal diatas adalah :

    1. Bilangannya dari 9 samapi 0

    2. Bangunan yang dibentu adalah segitiga siku-siku, dimana letak siku-sikunya menghadap ke kiri


  1. Dari hasil penerawangan kita diatas, maka untuk poin b kita bisa memberikan sebuah ilustrasi kotak seperti berikut





9



8

7


6

5

4

3

2

1

0


  1. Dari kotak di atas, kita lihat terdapat kotak-kotak yang terisi angka dan tidak terisi angak(bilang saja kosong). Jadi untuk memperoleh bentuk segitiga diatas kita akan menggunakan perulangan 4 x 4 (4 baris dan 4 kolom)

  2. Untuk bisa membentuk segitiganya maka kita akan mengandaikan kotak kosong itu sebagai sebuah karak ter dalam hal ini adalah karakter spasi. Dalam kotak ini kita akan melambangkan spasi dengan tanda *


*

*

*

9

*

*

8

7

*

6

5

4

3

2

1

0


Kayak tampilan game minesweeper yah….(start-game-minesweeper)

Dari tampilan diatas yang kita ambil kesimpulan adalah;

      • Jumlah baris adalah 4 jadi kita akan melakukan perulangan sebanyak 4 kali

      • Pada baris pertama jumlah karakter spasi adalah 3, baris ke dua sebanyak 2 dan baris ke tiga sebanyak 1. jadi perulangan karakter spasi pada baris pertama sebanyak 3 kali, baris kedua sebanyak 2 kali dan baris ketiga sebanyak satu kali. Maka setiap baris perulangan karakter spasi dikurangkan satu kali

      • Pada baris pertama jumlah karakter bilangan adalah 1, baris ke dua sebanyak 2 dan baris ke tiga sebanyak 3 dan baris ke empat sebanyak 4. jadi perulangan karakter spasi pada baris pertama sebanyak 1 kali, baris kedua sebanyak 2 kali , baris ketiga sebanyak 3 kali dan baris keempat sebanyak 4 kali. Maka setiap baris perulangan karakter bilangan ditambahkan satu kali

      • Untuk deret bilangan dimulai dengan 9, maka kita akan memberikan nilai awal 9 dan dilakukan pengurangan disetiap perulangan karakter bilangan.


  1. Hal pertama yang dilakukan setelah menganalisis adalah membuka program C++ nya (Dalam hal ini kita gunakan Borland C++)

  2. Menulis baris program

#include

#include


//Kalo ada yang tidak mengearti tulisan diatas, buka buku C++ nya atau tanyakan //pada orang yang membutuhkan….orang yang mengerti


//Setelah itu tentukan variable yang digunakan. Adapun perincian variable adalah //sebagai berikut :

// variable untuk membentuk 4 baris ke bawah : 1 = i

// variable perulangan untuk mencetak karakter spasi : 2 = j, k

// variable perulangan untuk bilangan : 2 = m, n

// variable yang berisi angka yang akan dicetak : 1 = l

// Jadi jumlah seluruh variable yang digunakan adalah E……..nam


//deklarasi variable

int i, j, k, l, m, n;


//memulai program

void main()

{

//menentukan nilai awal variable

// k = 3 karena jumlah spasi barsi pertama adalah 3

k=3;

//l=9 karean bilangan awal yang akan dicetak adalah 9

l=9;

// n=1 karena jumlah karakter bilangan yang dicetak pada baris pertama adalah satu

n=1;

//perulangan untuk membuat 4 baris ke bawah

for(i=1; i<=4; i++)//jika dibaca lakukan perulangan dimana i=1 selama i lebih kecil dari 4 setiap perulangan I ditambah 1

{

//perulangan untuk mencetak karakter spasi

for(j=1; j<=k;j++)//jika dibaca lakukan perulangan dimana j=1 selama j lebih kecil dari k setiap perulangan j ditambah satu. Nilai awal dari k disini adalah 3 sesuai dengan yang diberikan sebelum perulangan

{

//lakukan pencetakan karakter spasi

cout<<” “;

}

//perulangan untuk mencetak karakter bilangan

for(m=1; m<=n; m++)//jika dibaca lakukan perulangan dimana m=1 selama m lebih kecil dari n setiap perulangan m ditambah satu. Nilai awal dari n disini adalah 1 sesuai dengan yang diberikan sebelum perulangan

{

cout<

l--; // l=l-1 atau setiap perulangan l di kurang 1

}

cout<<"\n"; // pindah baris dilakukan karena baris pertama telah dilaksanakan

n++;// n=n+1 atau setiap perulangan n ditambah 1 dilakukan agar baris angka yang dicetak bertambah 1 disetiap barisnya

k--;// k = k-1 atau setiap perulangan k – 1 dilakukan agar baris karakter spasi yang dicetak berkurang 1 disetiap barisnya


}

getch();//lihat dibuku getch digunakan jika kita menggunakan borland

return;//mengembalikan nilai

}



  1. Silahkan mengcopy listing program diatas pada editor C++ yang anda miliki.

  2. Disetiap baris program memiliki penjelasan masing-masing

  3. Contoh program diatas adalah hasil dari analisa dan pendapat penulis, jadi tidak menutup kemungkinan ada cara lain yang lebih simpel untuk memecahkan masalah ini.


OK….. penjelasannya sampai disini saja, semoga saja dapat dimengerti dengan baik. Untuk lebih mengerti tentang contoh kasus seperti di atas, maka anda harus perbanyak mencari dan memecahkan masalah.


Makassar, 2 mei 2008



Rabu, 21 Mei 2008


1......



#include
#include

int kls;
double harga, pajak, besar_pajak;

void main()
{
cout<<"+-------+-----------------+-------+\n"; cout<<"| Kelas | Jenis Barang | Pajak |\n"; cout<<"+-------+-----------------+-------+\n"; cout<<"| 1 | Makanan | Pajak |\n" ; cout<<"| 2 | Pakaian, Sepatu | Pajak |\n" ; cout<<"| 3 | Mesin-mesin | Pajak |\n" ; cout<<"| 4 | Barang Mewah | Pajak |\n" ; cout<<"+-------+-----------------+-------+\n\n"; cout<<"Input Kelas Barang : "; cin>>kls;
cout<<"Input Harga Barang : "; cin>>harga;
if(kls==1)
{
cout<<"Jenis Barang adalah Makanan \n"; besar_pajak = harga * 10/100; cout<<"Besarnya pajak atas barang tersebut adalah : "<
}else if(kls==2)
{
cout<<"Jenis Barang adalah Pakaian, Sepatu \n"; besar_pajak = harga * 15/100; cout<<"Besarnya pajak atas barang tersebut adalah : "<
}else if(kls==3)
{
cout<<"Jenis Barang adalah Mesin-mesin \n"; besar_pajak = harga * 17.5/100; cout<<"Besarnya pajak atas barang tersebut adalah : "<
}else
{
cout<<"Jenis Barang adalah Barang Mewah \n"; besar_pajak = harga * 40/100; cout<<"Besarnya pajak atas barang tersebut adalah : "<
}

getch();
return;

}

2....




#include
#include

int studio, karcis;
double harga;

void main()
{
cout<<"+--------+---------------+--------------+\n"; cout<<"| Studio | Judul FIlm | Harga Karcis |\n"; cout<<"+--------+---------------+--------------+\n"; cout<<"| 1 | Titanic | Rp. 5000 |\n" ; cout<<"| 2 | The Mummy | Rp. 4000 |\n" ; cout<<"| 3 | Terminator | Rp. 6000 |\n" ; cout<<"+--------+---------------+--------------+\n\n"; cout<<"Input Nomor Studio "; cin>>studio;
cout<<"Input Jumlah Karcis : "; cin>>karcis;


switch(studio) {
case 1 : cout<<"Judul Film Titanic \n"; harga = karcis * 5000; cout<<"Jumlah pembayaran "<<<"Judul Film The Mummy \n"; harga = karcis * 4000; cout<<"Jumlah pembayaran "<<<"Judul Film Terminator 2 \n"; harga = karcis * 6000; cout<<"Jumlah pembayaran "<<<"Tidak ada dalam pilihan"; break; } getch(); return; }

Kamis, 01 Mei 2008

Sistem Bus

PENDAHULUAN


Bus merupakan lintasan komunikasi yang menghubungkan dua atau lebih perangkat. Bus merupakan media transmisi yang dapat digunakan bersama. Sejumlah perangkat yang terhubung ke bus, dan suatu signal yang ditransmisikan oleh salah satu perangkat ini dapat diterima oleh salah satu perangkat yang terhubung ke bus. Bila dua buah perangkat melakukan transmisi dalam waktu yang bersamaa, maka signal-signalnya akan bertumpang tindih dan menjadi rusak.

Umumnya sebuah bus terdiri dari sejumlah lintasan komunikasi atau saluran. Masing-masing saluran dapat mentransimisikan signal yang menunjukkan biner 1 dan biner 0. Serangkaian digit biner dapat ditransmisikan melalui saluran tunggal. Dengan mengumpulkannya beberapa saluran dari sebuah bus dapat digunakan mentransmisikan digit biner secara bersamaan (secara paralel). Misalnya sebuah satuan data 8 bit dapat ditransmisikan melalui bus 8 saluran.

Bus terdiri dari 3:

  1. Bus Data

Saluran yang memberikan lintasan bagi perpindahan data antara dua modul system. Umumnya bus data terdiri dari 8, 16, 32 saluran, jumlah saluran dikaitkan dengan lebar bus data. Karena pada suatu saat tertentu masing-masing saluran hanya dapat membawa 1 bit, maka jumlah saluran menentukan jumlah bit yang dapat diindahkan pada suatu saat. Lebar bus data merupakan factor penting dalam menentukan kinerja system secara keseluruahan. Bila bus data lebarnya 8 bit, dan setiap instruksi panjangnya 16 bit, maka CPU harus 2 kali mengakses modul memori dalam setiap siklus instruksinya.


  1. Bus Alamat

Digunakan untuk menandakan sumber atau tujuan data pada bus data, misalnya CPU akan membaca sebuah word (8, 16, 32 bit) data dari memori, maka CPU akan menaruh alamat word yang dimaksud pada saluran alamat. Lebar bus alamat menentukan kapasitas memori maksimum sitem. Selain itu umumnya saluran alamt juga digunakan untuk mengalamati port-port I/O.


  1. Bus Kontrol

Digunakan untuk mengontrol akses ke saluran alamat, penggunaan data dan saluran alamat. Karena data dan saluran alamat digunakan bersama oleh seluruh komponen, maka harus ada alat untuk mengontrol penggunaannya. Signal-signal kontrol melakukan transmisi baik perintah mauun informasi pewaktuan diantra modul-modul system. Signal-signal pewaktuan menunjukkan validitas data dan informasi alamat.

Umumnya saluran kontrol meliputi :

Memory Write : menyebabkan data pada bus akan dituliskan ke dalam lokasi alamat. Memory Read : menyebabkan data dari lokasi alamat ditempatkan pada bus I/O Write : menyebabkan data pada bus di output kan ke port I/O yang beralamat. I/O Read : menyebabkan data dari port I/O yang beralamat ditempatkan pada bus. Transfer ACK : menunjukkan bahwa data telah diterima dari bus atau telah ditempatkan di bus. Interrupt Request : menandakan bahwa sebuah interrupt ditangguhkan. Interrupt ACK : memberitahukan bahwa interrupt yang ditangguhkan telah diketahui. Clock : digunakan untuk mensinkronkan operasi-operasi. Reset : menginisialisasi seluruh modul


OPERASI BUS


Bila sebuah modul akan mengirimkan data ke modul lainnya, maka modul itu harus melakukan dua hal : 1. memperoleh enggunaan bus, dan 2 memindahkan data melalui bus. Bila sebuah modul akan meminta data dari modul lainnya, maka modul itu harus 1 memperoleh penggunaan bus, dan 2 memindahkan sebuah request ke modul lainya melalui saluran kontrol dan saluran alamt yang sesuai. Kemudian modul harus menunggu modul kedua untuk mengirimkan data.


Bentuk phisik Bus.

Bus system merupakan sejumlah konduktor listrik parallel. Konduktor-konduktor ini berupa kawat logam yang berakhir pada kartu atau papan PCB. Bus melintasi seluruh komponen system yang masing-masing disambungkan ke beberapa atau semua saluran bus.


Masalah dalam Bus Tunggal/ Single

Bila perangkat yang berjumlah sangat banyak dihubungkan ke bus, maka akan terjadi penurunan kinerja. Penyebab utama :

Semakin banyak perangkat yang dihubungkan ke bus, semakin besar delay propagasinya. Delay ini menentukan waktu yang diperlukan perangkat untuk mengkoordinasi pengguna bus

Bus akan menjadi penyumbat dengan semakin besarnya perindahan data yang hamper mendekati kapasitas bus. Sampai tingkat tertentu, masalah ini dapat diatasi dengan memakai bus-bus yang lebih lebar. (misalnya meningkatkan bus data dari 32 menjadi 64 bit) Namun karena kelajuan data disebabkan oleh perangkat-perangkat yang terhubung (misalnya pengontrol grafis dan video, interface jaringan) berkembang dengan cepatm maka dalam perlombaan ini besar kemungkinan bus tunggal akan menderita kekalahan.

Bus local yang menghubungkan prosesor dengan cache memory dan bus local dapat mendukung sebuah perangkat local atau lebih. Pengontrol cache memory tidak hanya menghubungkan cache dengan bus local itu saja, namun juga dengan bus system yang terhubung dengan seluruh modul memory utama. Manfaat struktur cache melindungi prosesor dari keharusan seringnya mengakses memori utama, sehingga memori utama dapat dipindahkan dari bus local ke bus sitem. Dengan cara ini, transfer I/O ke memori utama dan transfer dari memoriutama yang melintasi bus system tidak mengganggu aktivitas prosesor.

Sangat mungkin untuk menghubungkan pengontrol I/O secara langsung dengan bus system. Penyelesaian yang lebih efisien untuk masalah ini adalah dengan memanfaatkan satu bus ekspansi atau lebih. Interface bus ekspansi mem-buffer-kan transfer data antara bus system dengan pengontrol I/O pada bus ekspansi.

Contoh : Perangkat I/O yang dapat disambungkan ke bus ekspansi. Koneksi jaringan meliputi LAN misalnya koneksi Ethernet 10 Mbps dan koneksi ke WAN seperti jaringan paket switching, SCSI (Small Computer System Interface) merupakan jenis bus yang digunakan untuk mendukung disk drive local dan peripheral lainnya. Sebuah serial port dapat dipakai untuk mendukung sebuah printer atau scanner.

Arsitektur bus tradisional cukup efisien namun mulai mengalami penurunan dengan semakin tingginya kinerja pada perangkat I/O.


Untuk menjawab meningkatnya kebutuhan ini, penyelesaianya membuat bus berkecepatan tinggi yang sangat terintegrasi dengan system, yang hanya memerlukan bridge antara bus prosesor dengan bus berkecepatan tinggi.

Keuntungan pengaturan bus berkecepatan tinggi menyebabkan perangkat yang berkapasitas besar menjadi lebih terintegrasi dengan prosesor dan sekaligus tidak tergantung lagi terhadap prosesor.


Jenis-jenis Bus

Dedicated : Saluran data dan alamat terpisah

Multiplexed : Alamat dan informasi data dapat ditransmisikan melalui sejumlah saluran yang sama dengan menggunakan saluran ?Address Valid Control?. Pada awal pemindahan data, alamat ditempatkan pada bus dan ?Address Valid Control? diaktifkan. Pada saat ini setiap modul memiliki periode waktu tertentu untuk menalin alamt dan menentukan apakah alamat tersebut merupakan modul beralamat. Kemudian alamat dihapus dari bus, dan koneksi bus yang sam adigunakan untuk transfer data pembacaan atau penulisan berikutnya. Metoda penggunaan saluran yang untuk berbagai keperlua ini dikenal sebagai time multiplexing

Keuntungan : hanya memerlukan saluran sedikit sehingga menghemat ruang dan biaya

Kerugiannya : diperlukan rangkain yang lebih kompleks , penurunan kinerja yang cukup besar

Bus Arbitrasi :

Didalam semua system kecuali system yang paling sederhana, lebih dari satu modul diperlukan untuk mengontrol bus. Misalnya I/O mungkin diperlukan untuk membaca atau menulis secara langsung ke memori, dengan tanpa mengirimkan data ke CPU. Karena pada satu sat hanya sebuah unit yang berhasil mentransmisikan data melalui bus, maka diperlukan beberapa metode arbitrasi.

Metode Arbitrasi digolongkan sebagai metode tersentralisasi dan metode terdistribusi.

Tersentralisasi : sebuah perangkat hardware yang dikenal sebagai pengontrol bus atau arbitrer bertanggung jawab atas alokasi waktu pada bus. Mungkin perangkat berbentuk modul atau bagian CPU yang terpisah

Terdistribusi : tidak terdapat pengontrol sentral, setiap modul terdiri dari acces control logic dan modul-modul bekerja sama untuk memakai bus bersama-sama


Timing

Timing berkaitan dengan cara terjadiya event dikoordinasikan pada bus. Dengan timing yang synchronous, terjadinya event pada bus ditentukan oleh sebuah clock. Bus meliputi sebuah saluran, waktu tempat timing mentransmisikan rangkaian bilangan 1 dan 0 dalam durasi yang sama. Sebuah transmisi 1-0 dikenal sebagai siklus waktu atau siklus bus dan menentukan besarnya slot waktu. Semua perangkat lainnya pada bus dapat membaca saluran waktu, dan semua event dimulai pada awal siklus waktu.

Timing Sinkron

Signal bus lainya dapat berubah pada ujung muka signal waktu (dengan sedikit reaksi delay). Sebagian besar event mengisi suatu siklus waktu. CPU mengeluarkan signal baca dan menempatkan alamat memori pada bus alamat, CPU mengeluarkan signal awal untuk menandai keberadaan alamat dan informasi control pada bus. Modul memori mengetahui alamat itu, dan setelah delay 1 siklus menempatkan data dan signal balasan pada bus.

Timing Asinkron

Terjadinya event pada bus mengikuti dan tergantung pada event sebelumnya. CPU menempatkan alamat dan membaca signal bus. Setelah berhenti untuk memberi kesempatan signal ini menjadi stabil, CPU mengeluarkan signal MSYN (master syn) yang menandakan keberadaan alamat yang valid dan signal control. Modul memori memberikan respons dengan data dan signal SSYN (slave syn) yang menunjukan respon

Timing sinkron lebih mudah untuk diimplementasikan dan ditest. Namun timing ini kurang flexible dibandingkan dengan timing asinkron. Karena semua perangkat pada bus sinkron terkait dengan kelajuan pewaktu yang tetap, maka system tidak dapat memanfaatkan peningkatan kinerja. Dengan menggunakan timing asinkron, campuran antara perangkat yang lamban dan cepat, baik dengan menggunakan teknologi lama maupun baru, dapat menggunakan bus secara bersama-sama.

Lebar Bus

Lebar bus dapat mempengaruhi kinerja system, semakin lebar bus data, semakin besar bit yang dapat ditransferkan pada suatu saat. Lebar bus alamat mempunyai pengaruh pada kapasitas system : semakin lebar bus alamat, semakin besar range lokasi yang dapat direferensi.


PCI

heripheral Component Interconnect (PCI) merupakan bus yang tidak tergantung prosessor berbandwidth tinggi yang dapat berfungsi sebagai bus peripheral atau bus mezzanine. PCI memberikan system yang lebih baik bagi subsistem I/O berkecepatan tinggi.. PCI dirancang untuk mendukung bermacam-macam konfigurasi berbasis microprocessor, baik system microprocessor tunggal maupun jamak. PCI memanfaatkan timing sinkron dan pola arbitrasi tersentralisasi..


PCI Saluran Bus.

Signal-signal ini dibagi menjadi kelompok-kelompok :

System pins: meliputi pin waktu dan reset

Address dan data : meliputi 32 saluran yang time multiplexed bagi alamat dan data. Saluran lainya untuk menginterpretasi dan mevalidasi saluran-saluran signal yang membawa alamat dan data

Interface Control: Mengontrol timing transaksi dan mengkoordinasikan antara inisiator dan target

Arbitration: Masing-masing master PCI memiliki pasangan saluran arbitrasinya sendiri yang menghubungkannya secara langsung dengan arbiter bus PCI

Error repots : Melaporkan error parity dan eror lainnya.

PCI saluran bus

Interupt pins : Saluran signal ini disediakan bagi perangkat-perangkat PCI yang harus menghasilkan request untuk layanan. Pin-pin ini pun bukan saluran yang dapat dipakai bersama, melainkan masing-masing PCI memilih saluran interrupt ke pengontrol interrupt

Cache Support : Diperlukan untuk mendukung memori pada PCI yang dapat di cache kan di dalam prosesor

64 bit Bus Extension : Meliputi 32 saluran yang merupakan time-multiplexed bagi alamat dan data dan dikombinasikan dengan saluran alamat/data untuk membentuk bus alamat/data 64 bit. Saluran lainnya di dalam kelompok ini digunakan untuk menginterpretasi dan memvalidasi saluran-saluran signal yang membawa alamat dan data. Terakhir terdapat dua saluran yang memungkinkan dua buah perangkat PCI untuk menyetujui penggunaan kemampuan 64 bit

JTAG/Boundary Scan : Saluran signal untuk pengujian prosedur-prosedur yang ditentukan dalam standard 149.1.IEEE.


Operasi Baca PCI

Sekali master bus telah memperoleh control bus, maka master bus akan memulai transaksi dengan menegaskan FRAME. Saluran ini akan tetap ditegaskan sampai inisiator siap untuk menyelesaikan fase data yang terakhir. Inisiator juga menaruh alamat awal pada bus alamat, dan membaca perintah pada saluran C/BE

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

Inisiator berhenti mengendalikan bus AD. Siklus balik (yang ditandai oleh dua buah panah sikular) diperlukan pada semua saluran signal yang akan dikendalikan oleh lebih dari sebuah perangkat, sehingga penurunan signal alamat akan mempersiapkan bus untuk dipakai oleh perangkat target. Inisiator mengubah informasi pada saluran C/BE untuk memilih saluran AD yang akan digunakan untuk melakukan transfer data beralamat (dari 1 hingga 4 bit). Inisiator juga menegaskan IRDY untuk menandakan bahwa dirinya siap untuk butir data pertama.

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

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

Dalam contoh ini, target membutuhkan beberapa saat untuk mempersiapkan blok kedua untuk transmisi. Karena itu target melepaskan TRDY untuk memberi signal kepada inisiator bahwa tidak akan terdapat data baru selama siklus berikutnya. Kemudian inisiator tidak akan membaca saluran data pada awal siklus waktu ke-5 dan tidak mengubah byte enable selama siklus itu. Blok data dibaca pada awal waktu ke-6.

Selama waktu ke-6, target menempatkan butir data ketiga pada bus. Namun dalam contoh ini, inisiator belum siap untuk membaca butir data (misalnya inisiator mempunyai kondisi penuh buffer sementara). Karena itu inisiator melepaskan IRDY. Hal ini akan menyebabkan target untuk menyediakan butir data ketiga pada bus siklus waktu tambahan

Inisiator mengetahui bahwa transfer data ketiga adalah terakhir, karena itu inisiator melepaskan FRAME untuk memberikan signal bahwa dirinya siap untuk menyelesaikan transfer tersebut.

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

Arbitrasi PCI antara 2 master

Pada saat titik sebelum awal waktu ke-1, A telah menegaskan signal REQ-nya. Arbiter men-sample signal ini pada awal siklus waktu ke-1

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

Pada saat yang sama, arbiter menegaskan GNT-A untuk memberikan hak akses bus kepada A

Master bus A men-sample GNT-A pada awal waktu ke-2 dan memeriksa apakah dirinya telah diberi hak mengakses bus. Master bus juga menemukan pelepasaran IRDY dan TRDY yang menandakan bahwa bus tersebut dalam keadaan idle. Setelah itu, master bus menegaskan FRAME dan menempatkan informasi alamat pada bus alamat dan perintah pada bus C/BE (tidak ditunjukkan). Master bus juga melanjutkan penegasan REQ-A, karena master bus memiliki transaksi kedua yang akan dibentuk setelah transaksi ini

Arbiter bus men-sample semua saluran GNT pada awal waktu ke 3 dan membuat keputusan arbitrasi untuk memberikan hak mengakses bus ke B pada transaksi berikutnya. Kemudian arbiter bus menegaskan GNT-B dan melepaskan GNT-A. B tidak akan dapat menggunakan bus hingga bus itu dikembalikan ke keadaan idle.

A melepaskan FRAME untuk menandakan bahwa transfer data terakhir (dan satu-satunya) sedang dilakukan. A menaruh data pada bus data dan memberi signal ke target dengan IRDY. Target membaca data pada awal siklus waktu berikutnya

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

Direct Manipulation

karakteristik manipulasi langsung adalah penyajian langsung aktifitas sistem pada pengguna ketika pengguna memberi ins`truksi langsung (semacam kenyataan maya (viirtual reality) yang terpampang lewat tampilan dilayar) maka dikerjakan langsung oleh sistem komputer (59 – X).

Keuntungan dan kerugian penggunaan dialog berbasis manipulasi langsung

Keuntungan

  1. Mempunyai analogi yang jelas dengan suatu pekerjaan nyata.

  2. Mengurangi waktu pembelajaran.

  3. Memberikan tantangan untuk eksplorasi pekerjaan yang nyata.

  4. Penampilan visual yang bagus.

  5. Mudah dioperasikan.

  6. Tersedianya berbagai perangkat bantu untuk merancang ragam dialog manipulasi langsung

Kerugian

  1. Memerlukan program yang rumit dan berukuran besar.

  2. Memerlukan tampilan grafis ber-kinerja tinggi.

  3. Memerlukan piranti masukan seperti mouse, track ball.

  4. Memerlukan perancangan tampilan dengan kualifikasi tertentu.