Anda di halaman 1dari 53

Siklus organisasi prosesor

Komponen Utama CPU


CPU merupakan komponen terpenting dari sistem komputer. CPU adalah komponen pengolah
data berdasarkan instruksi instruksi yang diberikan kepadanya. Dalam mewujudkan fungsi dan
tugasnya, CPU tersusun atas beberapa komponen sebagai bagian dari struktur CPU, seperti
terlihat pada gambar 1 dan struktur detail internal CPU terlihat pada gamber 2. CPU tersusun
atas beberapa komponen, yaitu :

Arithmetic and Logic Unit (ALU), bertugas membentuk fungsi fungsi pengolahan data
komputer. ALU sering disebut mesin bahasa (machine language) karena bagian ini
mengerjakan instruksi instruksi bahasa mesin yang diberikan padanya. Seperti
istilahnya, ALU terdiri dari dua bagian, yaitu unit arithmetika dan unit logika boolean,
yang masing masing memiliki spesifikasi tugas tersendiri.
Control Unit, bertugas mengontrol operasi CPU dan secara keselurahan mengontrol
computer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi
fungsi operasinya. Termasuk dalam tanggung jawab unit kontrol adalah mengambil
instruksi instruksi dari memori utama dan menentukan jenis instruksi tersebut.
Registers, adalah media penyimpan internal CPU yang digunakan saat proses pengolahan
data. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan data saat
diolah ataupun data untuk pengolahan selanjutnya.
CPU Interconnections, adalah sistem koneksi dan bus yang menghubungkan komponen
internal CPU, yaitu ALU, unit kontrol dan register register dan juga dengan bus bus
eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama,
piranti masukan/keluaran.

Siklus Fetch Eksekusi


Pada setiap siklus instruksi, CPU awalnya akan membaca instruksi dari memori. Terdapat
register dalam CPU yang berfungsi mengawasi dan menghitung instruksi selanjutnya, yang
disebut Program Counter (PC). PC akan menambah satu hitungannya setiap kali CPU membaca
instruksi.
Instruksi instruksi yang dibaca akan dibuat dalam register instruksi (IR). Instruksi instruksi
ini dalam bentuk kode kode binner yang dapat diinterpretasikan oleh CPU kemudian dilakukan
aksi yang diperlukan. Aksi aksi ini dikelompokkan menjadi empat katagori, yaitu :

CPU Memori, perpindahan data dari CPU ke memori dan sebaliknya.


CPU I/O, perpindahan data dari CPU ke modul I/O dan sebaliknya.
Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap
data.
Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi
pengubahan urusan eksekusi.

Perlu diketahui bahwa siklus eksekusi untuk suatu instruksi dapat melibatkan lebih dari sebuah
referensi ke memori. Disamping itu juga, suatu instruksi dapat menentukan suatu operasi I/O.
Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat
instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan
tetap ke alamat instruksi sebelumnya. Misalnya, bila panjang setiap instruksi 16 bit
padahal memori memiliki panjang 8 bit, maka tambahkan 2 ke alamat sebelumnya.
Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke
CPU.
Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan
jenis operasi yang akan dibentuk dan operand yang akan digunakan.
Operand Address Calculation (OAC), yaitu menentukan alamat operand, hal ini
dilakukan apabila melibatkan referensi operand pada memori.
Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.
Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.
Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori.

Fungsi Interrupt
Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam
CPU kepada routine interupsi. Hampir semua modul (memori dan I/O) memiliki mekanisme
yang dapat menginterupsi kerja CPU.
Tujuan interupsi secara umum untuk menejemen pengeksekusian routine instruksi agar
efektif dan efisien antar CPU dan modul modul I/O maupun memori. Setiap komponen
komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali terletak pada CPU
disamping itu kecepatan eksekusi masing masing modul berbeda sehingga dengan adanya
fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul. Macam macam kelas sinyal
interupsi :

Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada
hasil eksekusi program. Contohnya: arimatika overflow, pembagian nol, oparasi ilegal.
Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini
memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler.
I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan
kondisi error dan penyelesaian suatu operasi.
Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau
kesalahan paritas memori.

Dengan adanya mekanisme interupsi, prosesor dapat digunakan untuk mengeksekusi


instruksi instruksi lain. Saat suatu modul telah selesai menjalankan tugasnya dan siap
menerima tugas berikutnya maka modul ini akan mengirimkan permintaan interupsi ke prosesor.
Kemudian prosesor akan menghentikan eksekusi yang dijalankannya untuk menghandel routine
interupsi. Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi
programnya kembali. Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan,
yaitu interupsi diterima/ditangguhkan dan interupsi ditolak. Apabila interupsi ditangguhkan,
prosesor akan melakukan hal hal dibawah ini :
1. Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya.
Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan
data lain yang relevan.
2. Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler.
Gambar 3 berikut menjelaskan siklus eksekusi oleh prosesor dengan adanya fungsi
interupsi.

Untuk sistem operasi yang kompleks sangat dimungkinkan adanya interupsi ganda (multiple
interrupt). Misalnya suatu komputer akan menerima permintaan interupsi saat proses pencetakan
dengan printer selesai, disamping itu dimungkinkan dari saluran komunikasi akan
mengirimkan permintaan interupsi setiap kali data tiba. Dalam hal ini prosesor harus menangani
interupsi ganda.
Dapat diambil dua buah pendekatan untuk menangani interupsi ganda ini. Pertama adalah
menolak atau tidak mengizinkan interupsi lain saat suatu interupsi ditangani prosesor. Kemudian
setelah prosesor selesai menangani suatu interupsi maka interupsi lain baru di tangani.
Pendekatan ini disebut pengolahan interupsi berurutan / sekuensial. Pendekatan ini cukup baik
dan sederhana karena interupsi ditangani dalam ututan yang cukup ketat. Kelemahan pendekatan
ini adalah metode ini tidak memperhitungkan prioritas interupsi. Pendekatan ini diperlihatkan
pada gambar 4.a.
Pendekatan kedua adalah dengan mendefinisikan prioritas bagi interupsi dan interrupt
handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pedekatan ini
disebut pengolahan interupsi bersarang. Metode ini digambarkan pada gambar 4.b.

Sebagai contoh untuk mendekatan bersarang, misalnya suatu sistem memiliki tiga
perangkat I/O: printer, disk, dan saluran komunikasi, masing masing prioritasnya 2, 4 dan 5.
Pada awal sistem melakukan pencetakan dengan printer, saat itu terdapat pengiriman data pada
saluran komunikasi sehingga modul komunikasi meminta interupsi. Proses selanjutnya adalah
pengalihan eksekusi interupsi mudul komunikasi, sedangkan interupsi printer ditangguhkan. Saat
pengeksekusian modul komunikasi terjadi interupsi disk, namun karena prioritasnya lebih rendah
maka interupsi disk ditangguhkan. Setelah interupsi modul komunikasi selesai akan dilanjutkan
interupsi yang memiliki prioritas lebih tinggi, yaitu disk. Bila interupsi disk selesai dilanjutkan
eksekusi interupsi printer. Selanjutnya dilanjutkan eksekusi program utama.

Organisasi Processor & Organisasi Register


Organisasi Processor
Organisasi Processor terdiri dari :

ALU (Arithmatic and Logical Unit) : untuk melakukan komputasi atau


pengolahan data aktual
CU(Control Unit) : untuk mengontrol perpindahan data dan instruksi ke / dariCPU
dan juga mengontrol operasi ALU.
Register: memory internal CPU

Hal-hal yang dilakukan CPU :


Fetch Instruction(Mengambil instruksi) :CPU membaca instruksi dari memory
Interpret Instruction(Menterjemahkan instruksi) : CPU menterjemahkan instruksi
untuk menentukan aksi yang diperlukan.
Fetch Data (Mengambil data) : eksekusi instruksi mungkin memerlukan
pembacaan data dari memory atau dari modul I/O
Process Data (Mengolah data) : eksekusi instruksi memerlukan operasi aritmatik
atau logika.
Write data (Menulis data) :Hasil eksekusi mungkin memerlukan penulisan data ke
memory atau ke modul I/O

Untuk melakukan tindakan ini prosesor kebutuhan beberapa cara untuk menyimpan instruksi dan
data sementara. Sebuah representasi sederhana dari sebuah prosesor dapat ditampilkan sebagai
berikut ..

Jika Anda melihat lebih dekat pada organisasi internal prosesor, Anda akan melihat bahwa
sangat mirip dengan pembuatan komputer.
Register Organization
Dalam prosesor ada satu set register yang berfungsi sebagai tingkat memori atas memori utama
dan cache dalam hirarki / register tersebut dalam prosesor melakukan dua peran

1. User Visible register : register yang isinya dapat diketahui oleh pemrogram, register ini
juga dapat meminimalkan referensi ke main memory
2. Control and Status register : register yang digunakan olehCU, kontrol operasiCPU dan
oleh sistem operasi untuk kontrol eksekusi program.

Perhatikan tidak ada pemisahan bersih dari register ke dalam dua kategori . Pada beberapa mesin
program counter adalah pengguna terlihat saat pada orang lain itu tidak.
User Visible Registers
Terlihat Pengguna register dapat dikategorikan ke dalam kategori berikut

General Purpose (Tujuan Umum)


Data (data)
Address (alamat)
Condition codes (Kode kondisi)

Control & Status Registers


Ada berbagai register prosesor yang digunakan untuk mengendalikan operasi prosesor
sebagian besar tidak terlihat oleh pengguna tetapi beberapa dapat terlihat oleh instruksi mesin
dieksekusi dalam kontrol atau mode sistem operasi .
Empat register sangat penting untuk eksekusi instruksi

1. Program counter (PC) alamat instruksi yang akan diambil


2. Instruction register (IR) instruksi yang terakhir diambil
3. Memory address register (MAR) alamat lokasi dalam memori
4. Memory buffer register (MBR) kata data yang akan ditulis ke memori atau kata yang
paling baru dibaca

Banyak prosesor termasuk register atau kumpulan register yang dikenal sebagai kata status
program ( PSW ) yang berisi informasi status . Beberapa bidang umum termasuk

Sign tanda sedikit hasil dari operasi aritmatika terakhir


Zero Mengatur kapan hasilnya adalah 0
Carry Mengatur jika operasi menghasilkan carry masuk atau meminjam dari sedikit
high-order
Equal Mengatur jika hasil membandingkan logis adalah kesetaraan
Overflow Digunakan untuk menunjukkan aritmetik overflow
Interrupt Enable/Disable Digunakan untuk mengaktifkan / menonaktifkan interupsi
Supervisor menunjukkan apakah prosesor mengeksekusi di supervisor atau mode
pengguna

Siklus Instruksi
Siklus instruksi meliputi subsiklus-subsiklus :
Fetch: membaca instruksi berikutnya dari memory ke dalamCPU
Execute: Menginterpretasi opcode dan melakukan operasi yang diindikasikan
Interrupt: Apabila interrupt diaktif kan dan telah terjadi, maka simpan status proses saat itu
dan layani interrupt
Pipelining Instruksi
Pipeline memiliki dua tahapan independen yaitu fetch dan execution.

- Tahap pertama, mengambil instruksi dan mem-buffer- kannya


- Ketika tahap kedua bebas, tahapan pertama mengirimkan mengirimkan instruksi
yang dibufferkan.
- Pada saat tahap kedua sedang mengeksekusi instruksi, tahap pertama dapat
mengambil dan membufferkan instruksi berikutnya
- Diharapkan terjadi penggandaan kecepatan eksekusi

Tetapi :

- Umumnya waktu eksekusi lebih lama dibandingkan dengan waktu pengambilan


instruksi
- Instruksi pencabangan bersyarat membuat alamat instruksi berikutnya yang akan
diambil tidak diketahui

Prosesor Pentium
Processor sering disebut sebagai otak dan pusat pengendali computer yang didukung oleh
kompunen lainnya. Processor adalah sebuah IC yang mengontrol keseluruhan jalannya sebuah
sistem komputer dan digunakan sebagai pusat atau otak dari komputer yang berfungsi untuk
melakukan perhitungan dan menjalankan tugas. Processor terletak pada socket yang telah
disediakan oleh motherboard, dan dapat diganti dengan processor yang lain asalkan sesuai
dengan socket yang ada pada motherboard. Salah satu yang sangat besar pengaruhnya terhadap
kecepatan komputer tergantung dari jenis dan kapasitas processor.
Prosesor adalah chip yang sering disebut Microprosessor yang sekarang ukurannya sudah
mencapai Gigahertz (GHz). Ukuran tersebut adalah hitungan kecepatan prosesor dalam
mengolah data atau informasi. Merk prosesor yang banyak beredar dipasatan adalah AMD,
Apple, Cyrix VIA, IBM, IDT, dan Intel. Bagian dari Prosesor Bagian terpenting dari prosesor
terbagi 3 yaitu :

Aritcmatics Logical Unit (ALU)


Control Unit (CU)
Memory Unit (MU)

Sejarah Perkembangan Mikroprocessor


- 1971 : 4004 Microprocessor
- 1972 : 8008 Microprocessor
- 1974 : 8080 Microprocessor
- 1978 : 8086-8088 Microprocessor
- 1982 : 286 Microprocessor
- 1985 : Intel386 Microprocessor
- 1989 : Intel486 DX CPU Microprocessor
- 1993 : Intel Pentium Processor
- 1995 : Intel Pentium Pro Processor
- 1997 : Intel Pentium II Processor
- 1998 : Intel Pentium II Xeon Processor
- 1999 : Intel Celeron Processor
- 1999 : Intel Pentium III Processor
- 1999 : Intel Pentium III Xeon Processor
- 2000 : Intel Pentium 4 Processor
- 2001 : Intel Xeon Processor
- 2001 : Intel Itanium Processor
- 2002 : Intel Itanium 2 Processor
- 2003 : Intel Pentium M Processor
- 2004 : Intel E7520/E7320 Chipsets
- 2005 : Intel Pentium D 820/830/840
- 2006 : Intel Core 2 Quad Q6600
- 2004 : Intel Pentium M 735/745/755
- 2006 : Intel Quad-core Xeon X3210/X3220
Modul Organisasi Processor,Register,dan Siklus Intruksi

Organisasi Processor

Processor sering disebut sebagai otak dan pusat pengendali computer yang didukung oleh
kompunen lainnya. Processor adalah sebuah IC yang mengontrol keseluruhan jalannya
sebuah sistem komputer dan digunakan sebagai pusat atau otak dari komputer yang
berfungsi untuk melakukan perhitungan dan menjalankan tugas. Processor terletak pada
socket yang telah disediakan oleh motherboard, dan dapat diganti dengan processor yang
lain asalkan sesuai dengan socket yang ada pada motherboard. Salah satu yang sangat
besar pengaruhnya terhadap kecepatan komputer tergantung dari jenis dan kapasitas
processor.

Prosesor adalah chip yang sering disebut Microprosessor yang sekarang ukurannya
sudah mencapai Gigahertz (GHz). Ukuran tersebut adalah hitungan kecepatan prosesor
dalam mengolah data atau informasi. Merk prosesor yang banyak beredar dipasaran
adalah AMD, Apple, Cyrix VIA, IBM, IDT, dan Intel.

Organisasi Processor tersusun atas beberapa komponen, yaitu :

Arithmetic and Logic Unit (ALU), bertugas membentuk fungsi fungsi


pengolahan data komputer. ALU sering disebut mesin bahasa (machine language)
karena bagian ini mengerjakan instruksi instruksi bahasa mesin yang diberikan
padanya. Seperti istilahnya, ALU terdiri dari dua bagian, yaitu unit arithmetika
dan unit logika boolean, yang masing masing memiliki spesifikasi tugas
tersendiri.

Control Unit, bertugas mengontrol operasi CPU dan secara keselurahan


mengontrol computer sehingga terjadi sinkronisasi kerja antar komponen dalam
menjalankan fungsi fungsi operasinya. Termasuk dalam tanggung jawab unit
kontrol adalah mengambil instruksi instruksi dari memori utama dan
menentukan jenis instruksi tersebut.

Registers, adalah media penyimpan internal CPU yang digunakan saat proses
pengolahan data. Memori ini bersifat sementara, biasanya digunakan untuk
menyimpan data saat diolah ataupun data untuk pengolahan selanjutnya.
CPU Interconnections, adalah sistem koneksi dan bus yang menghubungkan
komponen internal CPU, yaitu ALU, unit kontrol dan register register dan juga
dengan bus bus eksternal CPU yang menghubungkan dengan sistem lainnya,
seperti memori utama, piranti masukan/keluaran.

Lebih lanjut tentang ALU, CU dan Register aka dibahas pada bab berikutnya.

Berikut sejarah perkembangan Mikroprosesor :

1971 : 4004 Microprocessor


Pada tahun 1971 munculah microprocessor pertama Intel , microprocessor 4004 ini digunakan
pada mesin kalkulator Busicom. Dengan penemuan ini maka terbukalah jalan untuk
memasukkan kecerdasan buatan pada benda mati.

1972 : 8008 Microprocessor


Pada tahun 1972 munculah microprocessor 8008 yang berkekuatan 2 kali lipat dari
pendahulunya yaitu 4004.

1974 : 8080 Microprocessor


Menjadi otak dari sebuah komputer yang bernama Altair, pada saat itu terjual sekitar sepuluh
ribu dalam 1 bulan

1978 : 8086-8088 Microprocessor


Sebuah penjualan penting dalam divisi komputer terjadi pada produk untuk komputer pribadi
buatan IBM yang memakai prosesor 8088 yang berhasil mendongkrak nama intel.

1982 : 286 Microprocessor


Intel 286 atau yang lebih dikenal dengan nama 80286 adalah sebuah processor yang pertama kali
dapat mengenali dan menggunakan software yang digunakan untuk processor sebelumnya.

1985 : Intel386 Microprocessor


Intel 386 adalah sebuah prosesor yang memiliki 275.000 transistor yang tertanam diprosessor
tersebut yang jika dibandingkan dengan 4004 memiliki 100 kali lipat lebih banyak dibandingkan
dengan 4004.

1989 : Intel486 DX CPU Microprocessor


Processor yang pertama kali memudahkan berbagai aplikasi yang tadinya harus mengetikkan
command-command menjadi hanya sebuah klik saja, dan mempunyai fungsi komplek
matematika sehingga memperkecil beban kerja pada processor.

1993 : Intel Pentium Processor


Processor generasi baru yang mampu menangani berbagai jenis data seperti suara, bunyi, tulisan
tangan, dan foto.
1995 : Intel Pentium Pro Processor
Processor yang dirancang untuk digunakan pada aplikasi server dan workstation, yang dibuat
untuk memproses data secara cepat, processor ini mempunyai 5,5 jt transistor yang tertanam.

1997 : Intel Pentium II Processor


Processor Pentium II merupakan processor yang menggabungkan Intel MMX yang dirancang
secara khusus untuk mengolah data video, audio, dan grafik secara efisien. Terdapat 7.5 juta
transistor terintegrasi di dalamnya sehingga dengan processor ini pengguna PC dapat mengolah
berbagai data dan menggunakan internet dengan lebih baik.

1998 : Intel Pentium II Xeon Processor


Processor yang dibuat untuk kebutuhan pada aplikasi server. Intel saat itu ingin memenuhi
strateginya yang ingin memberikan sebuah processor unik untuk sebuah pasar tertentu.

1999 : Intel Celeron Processor


Processor Intel Celeron merupakan processor yang dikeluarkan sebagai processor yang ditujukan
untuk pengguna yang tidak terlalu membutuhkan kinerja processor yang lebih cepat bagi
pengguna yang ingin membangun sebuah system computer dengan budget (harga) yang tidak
terlalu besar. Processor Intel Celeron ini memiliki bentuk dan formfactor yang sama dengan
processor Intel jenis Pentium, tetapi hanya dengan instruksi-instruksi yang lebih sedikit, L2
cache-nya lebih kecil, kecepatan (clock speed) yang lebih lambat, dan harga yang lebih murah
daripada processor Intel jenis Pentium. Dengan keluarnya processor Celeron ini maka Intel
kembali memberikan sebuah processor untuk sebuah pasaran tertentu.

1999 : Intel Pentium III Processor


Processor Pentium III merupakan processor yang diberi tambahan 70 instruksi baru yang secara
dramatis memperkaya kemampuan pencitraan tingkat tinggi, tiga dimensi, audio streaming, dan
aplikasi-aplikasi video serta pengenalan suara.

1999 : Intel Pentium III Xeon Processor


Intel kembali merambah pasaran server dan workstation dengan mengeluarkan seri Xeon tetapi
jenis Pentium III yang mempunyai 70 perintah SIMD. Keunggulan processor ini adalah ia dapat
mempercepat pengolahan informasi dari system bus ke processor , yang juga mendongkrak
performa secara signifikan. Processor ini juga dirancang untuk dipadukan dengan processor lain
yang sejenis.

2000 : Intel Pentium 4 Processor


Processor Pentium IV merupakan produk Intel yang kecepatan prosesnya mampu menembus
kecepatan hingga 3.06 GHz. Pertama kali keluar processor ini berkecepatan 1.5GHz dengan
formafactor pin 423, setelah itu intel merubah formfactor processor Intel Pentium 4 menjadi pin
478 yang dimulai dari processor Intel Pentium 4 berkecepatan 1.3 GHz sampai yang terbaru
yang saat ini mampu menembus kecepatannya hingga 3.4 GHz.

2001 : Intel Xeon Processor


Processor Intel Pentium 4 Xeon merupakan processor Intel Pentium 4 yang ditujukan khusus
untuk berperan sebagai computer server. Processor ini memiliki jumlah pin lebih banyak dari
processor Intel Pentium 4 serta dengan memory L2 cache yang lebih besar pula.
2001 : Intel Itanium Processor
Itanium adalah processor pertama berbasis 64 bit yang ditujukan bagi pemakain pada server dan
workstation serta pemakai tertentu. Processor ini sudah dibuat dengan struktur yang benar-
benar

berbeda dari sebelumnya yang didasarkan pada desain dan teknologi Intels Explicitly Parallel
Instruction Computing ( EPIC ).

2002 : Intel Itanium 2 Processor


Itanium 2 adalah generasi kedua dari keluarga Itanium

2003 : Intel Pentium M Processor


Chipset 855, dan Intel PRO/WIRELESS 2100 adalah komponen dari Intel Centrino. Intel
Centrino dibuat untuk memenuhi kebutuhan pasar akan keberadaan sebuah komputer yang
mudah dibawa kemana-mana.

2004 : Intel Pentium M 735/745/755 processors


Dilengkapi dengan chipset 855 dengan fitur baru 2Mb L2 Cache 400MHz system bus dan
kecocokan dengan soket processor dengan seri-seri Pentium M sebelumnya.

2004 : Intel E7520/E7320 Chipsets


7320/7520 dapat digunakan untuk dual processor dengan konfigurasi 800MHz FSB, DDR2 400
memory, and PCI Express peripheral interfaces.

2005 : Intel Pentium 4 Extreme Edition 3.73GHz


Sebuah processor yang ditujukan untuk pasar pengguna komputer yang menginginkan sesuatu
yang lebih dari komputernya, processor ini menggunakan konfigurasi 3.73GHz frequency,
1.066GHz FSB, EM64T, 2MB L2 cache, dan HyperThreading.

2005 : Intel Pentium D 820/830/840


Processor berbasis 64 bit dan disebut dual core karena menggunakan 2 buah inti, dengan
konfigurasi 1MB L2 cache pada tiap core, 800MHz FSB, dan bisa beroperasi pada frekuensi
2.8GHz, 3.0GHz, dan 3.2GHz. Pada processor jenis ini juga disertakan dukungan
HyperThreading.

2006 : Intel Core 2 Quad Q6600


Processor untuk type desktop dan digunakan pada orang yang ingin kekuatan lebih dari
komputer yang ia miliki memiliki 2 buah core dengan konfigurasi 2.4GHz dengan 8MB L2
cache (sampai dengan 4MB yang dapat diakses tiap core ), 1.06GHz Front-side bus, dan thermal
design power ( TDP )

2006 : Intel Quad-core Xeon X3210/X3220


Processor yang digunakan untuk tipe server dan memiliki 2 buah core dengan masing-masing
memiliki konfigurasi 2.13 dan 2.4GHz, berturut-turut , dengan 8MB L2 cache ( dapat mencapai
4MB yang diakses untuk tiap core ), 1.06GHz Front-side bus, dan thermal design power (TDP)
Register prosesor

Register prosesor dalam arsitektur komputer adalah sejumlah kecil memori komputer
yang bekerja dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi
terhadap program-program komputer dengan menyediakan akses yang cepat terhadap
nilai-nilai yang umum digunakan. Umumnya nilai-nilai yang umum digunakan adalah
nilai yang sedang dieksekusi dalam waktu tertentu.

Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori. Ini berarti
bahwa kecepatannya adalah yang paling cepat. Kapasitasnya adalah paling kecil, dan
harga
tiap bitnya adalah paling tinggi. Memori utama dan cache dalam hirarki / register tersebut
dalam prosesor melakukan dua peran :

1. User Visible Register


2. Control and Status Register

User Visible Register

Register ini memungkinkan pemrogram bahasa mesin dan bahasa assembler


meminimalkan referensi main memori dengan cara mengoptimasi penggunaan
register. Register ini adalah register yang dapat direfensikan dengan menggunakan
bahasa mesin yang dieksekusi CPU.

Secara virtual semua rancangan CPU modern memiliki sejumlah user-visible


register, yang merupakan kebalikan akumulator tunggal. Kita dapat membedakannya
dengan kategori-kategori berikut ini :

Register General Purpose


Register Data
Register Alamat
Register Kode Kondisi
General-Purpose register dapat di-assign ke berbagai fungsi oleh pemrogram.
General-Purpose register dapat berisi operand sembarang opcode. Dapat digunakan
untuk fungsi-fungsi pengalamatan (misal : register indirect, displacement).

Register Data hanya dapat dipakai untuk menampung data dan tidak dapat digunakan
untuk kalkulasi dan alamat operand.
Register alamat menyerupai general-purpose register, atau register-register
tersebut dapat digunakan untuk mode pengalamatan tertentu. Contohnya :

Segment pointer => pada sebuah mesin yang memiliki pengalamatan bersegmen,
register segmen menyimpan alamat basis segmen.
Register index => register ini digunakan untuk alamat-alamat yang terindeks dan
mungkin autoindexed.
Stack pointer => apabila terdapat pengalamatan stack yang user-visible, maka
biasanya stack berada di dalam memori dan terdapat register dedicated yang
menunjuk ke bagian atas stack. Hal ini memungkinkan pengalamatan implisit, yaitu:
push, pop dan instruksi stack lainnya tidak perlu operand stack eksplisi.
Register yang harus menampung alamat sedikitnya harus dapat menampung alamat
yang terpanjang. Register-register data harus dapat menampung nilai-nilai sebagian
besar jenis data.

Register kode kondisi adalah bit-bit yang disetel perangkat keras CPU sebagai hasil
operasi.

Control & Status Registers

Register yang digunakan oleh CU, kontrol operasi CPU dan oleh sistem operasi
untuk control eksekusi program. Ada berbagai register prosesor yang digunakan untuk
mengendalikan operasi prosesor. Sebagian besar tidak terlihat oleh pengguna tetapi
beberapa dapat terlihat oleh instruksi mesin, dieksekusi dalam kontrol atau mode sistem
operasi .

Register yang penting bagi eksekusi instruksi :


Program Counter (PC)
Instruction Register (IR)
Memory Data Register (MDR)
Memory Address Register (MAR)
Memory Buffer Register (MBR)
General Purpose Register
Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk
melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat
ditampung olehnya. Seperti register 8-bit, register 32-bit, register 64-bit dan lain-lain.

Istilah register saat ini dapat merujuk kepada kumpulan register yang dapat di indeks
secara langsung untuk melakukan input/output terhadap sebuah instruksi yang
didefinisikan oleh set instruksi untuk istilah ini, digunakanlah kata Register Arsitektur.
Sebagai contoh set instruksi Intel x86 mendifinisikan sekumpulan delapan buah register
dengan ukuran 32-bit, tapi cpu yang mengimplementasikanset instruksi x86 dapat
mengandung lebih dari delapan register 32-bit.

Lebih lanjut tentang Register aka dibahas pada bab berikutnya.

Siklus Instruksi

Machine cycle atau nama lainnya adalah processor cycle atau instruction cycle
merupakan suatu siklus instruksi dasar yang dikerjakan oleh CPU di dalam melakukan
eksekusi suatu instruksi. Rangkaian proses eksekusi instruksi ini dimulai dari proses
fetching data dan instruksi yang ada didalam memori hingga proses penulisan kembali
hasil eksekusi instruksi tersebut ke dalam memori.

Sebelum suatu instruksi dieksekusi oleh processor, terlebih dahulu sekumpulan


instruksi tersebut disimpan dalam memori. Ketika akan dieksekusi, instruksi tersebut
akan diambil (fetch) ke dalam memori, berdasarkan alamat instruksi yang disimpan
dalam PC (Program Counter) yang terdapat dalam CPU. Setelah instruksi tersebut diload
dari memori, nilai PC akan di-increment untuk menunjuk alamat berikutnya dari dari
instruksi yang akan dieksekusi. Tahapan berikutnya setelah proses load (fetch) dilakukan,
instruksi tersebut akan di-decode, dan kemudian dilakukan proses eksekusi. Setelah itu ,
hasil dari eksekusi instruksi tersebut akan dikembalikan lagi ke dalam memori. Siklus
instruksi tersebut akan dikerjakan secara berulang oleh CPU selama masih ada instruksi
yang akan dieksekusi.
Siklus Instruksi
Sesuai dengan Gambar diatas, secara garis besar siklus instruksi (machine cycle) dibagi
ke dalam beberapa tahapan yaitu:

1. Proses Fetching
Merupakan proses dimana instruksi dan data akan di load dari memori ke dalam CPU.
Proses ini dimulai dari pengambilan alamat instruksi yang terdapat di dalam PC (Program
Counter). Alamat yang terdapat di dalam PC ini merupakan alamat valid dari instruksi
dan data yang disimpan ke dalam memori utama, dan merupakan alamat instruksi yang
akan dieksekusi. Berdasarkan alamat instruksi yang terdapat di dalam PC, CPU akan
mengambil instruksi tersebut untuk ditempatkan ke dalam register (Instruction Register/
IR) yang menyimpan instruksi yang akan dieksekusi.

MAR (Memory Address Register) akan bertanggung jawab untuk menyimpan alamat dari
data yang disimpan ke dalam memori untuk selanjutnya akan di fetch ke dalam CPU.
Sedangkan MDR (Memory Data Register) akan menyimpan data yang akan dioperasikan
berdasarkan instruksi tertentu oleh CPU.

Setelah instruksi dan data di-fetch ke dalam CPU, Program Counter (PC) akan
melakukan increment untuk menunjuk alamat dari instruksi dan data berikutnya yang
akan dieksekusi. Secara garis besar, tahap fetching dapat dilihat pada Gambar dibawah
ini

Proses Fetching
2. Proses Decoding
Merupakan tahapan dimana instruksi akan di terjemahkan (interpret) ke dalam perintah-
perintah bahasa mesin dasar (ADD, SB, MBA, STA, JMP, dll). Proses ini dilakukan oleh
instruction decoder. Proses decoder dapat dilihat pada Gambar dibawah ini
Proses Decoding

3. Proses Executing
Pada tahapan dimana instruksi akan dieksekusi di dalam CPU, yaitu oleh ALU
(Arithmetic Logic Unit). Proses eksekusi instruksi yang terdapat di dalam ALU dapat
dilihat pada Gambar dibawah ini

Proses Executing

Setelah tahapan diatas dikerjakan, maka hasil dari eksekusi tersebut akan dikembalikan
ke dalam memori untuk disimpan. Berdasarkan Gambar diatas dibawah ini, proses
penyimpanan kembali hasil eksekusi isntruksi terdiri dari beberapa tahapan yaitu:

Proses penempatan alamat memori yang digunakan untuk menyimpan hasil instruksi ke
dalam MAR
Proses penempatan data (hasil instruksi) kedalam MDR
Proses mengaktifkan memory write control signal pada control bus
Proses menunggu memori untuk melakukan write data pada alamat tertentu
Proses untuk menonaktifkan memory write control signal pada bus
Proses penyimpanan kembali hasil instruksi ke memori

Perlu diketahui bahwa siklus eksekusi untuk suatu instruksi dapat melibatkan lebih dari
sebuah referensi ke memori. Disamping itu juga, suatu instruksi dapat menentukan suatu
operasi I/O. Perhatikan gambar diagram berikut :

Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan


alamat instruksi berikutnya yang akan dieksekusi.
Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke
CPU.
Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan
jenis operasi yang akan dibentuk dan operand yang akan digunakan.
Operand Address Calculation (OAC),yaitu menentukan alamat operand, hal ini
dilakukan apabila melibatkan referensi operand pada memori.
Operand Fetch (OF), adalah mengambil operand dari memori atau dari modul I/O.
Data Operation (DO), yaitu membentuk operasi yang diperintahkan dalam instruksi.
Operand store (OS), yaitu menyimpan hasil eksekusi ke dalam memori.
Dalam menjalakan instruction cycle / machine cycle ada beberapa komponen yang
berperan, yaitu:

- Program Counter (PC)


Nama lainnya adalah Instruction Pointer, merupakan suatu pointer (penunjuk), bagi
sejumlah instruksi yang ditempatkan di dalam memori dan akan dieksekusi oleh CPU.
Terletak di dalam CPU, program counter akan menunjuk alamat memori dari instruksi
sebelum dilakukan proses fetch ke dalam CPU. Isi dari program counter ini akan di
increment setiap selesai melakukan proses fetching instruksi, untuk menunjuk instruksi
berikutnya yang akan dieksekusi

- Memory Address Register (MAR)


Adalah salah satu register yang terdapat di dalam CPU yang fungsinya adalah untuk
menyimpan alamat memori dari data yang akan diambil (fetch) oleh CPU untuk
dieksekusi. Selain itu MAR juga akan menyimpan alamat memori dari data (hasil
instruksi) yang akan ditulis kembali ke dalam memori.

- Memory Data Register (MDR)


Merupakan register yang terdapat dalam CPU yang fungsinya adalah menyimpan data
sementara yang akan dieksekusi oleh CPU. Setiap kali proses fetching berlangsung, data
akan disimpan di dalam MDR sebelum dilakukan proses eksekusi. Demikian juga hasil
dari eksekusi instruksi akan disimpan di dalam register ini sebelum dilakukan proses
penulisan kembali ke memori

- Instruction Register
Sama seperti MAR dan MDR, Instruction Register (IR) ini terletak di dalam CPU. IR ini
bertanggung jawab untuk menyimpan instruksi yang akan dieksekusi oleh CPU. Pada
beberapa jenis prosesor (terutama yang ada sekarang), digunakan konsep pipeline pada
IR ini, dimana pada setiap stage pipeline melakukan proses decoding, dan proses yang
lain pada waktu instruksi dikerjakan.

- Control Unit (CU)


Control unit mengkoordinasi semua komponen-komponen yang ada di sistem computer,
terutama yang berkaitan dengan pengolahan data dan eksekusi instruksi. CU mengatur
proses fetching instruksi maupun data dari memori ke CPU. Selain itu juga mengatur unit
yang lain dengan menyediakan timing dan control signal.

- Arithmetic Logic Unit (ALU)


Merupakan sirkuit digital yang terdapat di dalam CPU yang memiliki fungsi untuk
melakukan komputasi aritmatika dan logika. ALU merupakan unit dasar dari pengolah
data dan eksekusi instruksi

Siklus Tak Langsung

Eksekusi sebuah instruksi melibatkan sebuah operand atau lebih di dalam memori,
yang masing-masing operand memerlukan akses memori. Kemudian, apabila
digunakan pengalamatan tak langsung, maka diperlukan akses memori tambahan.

Fungsi Interrupt

Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan


instruksi dalam CPU kepada routine interupsi. Hampir semua modul (memori dan
I/O) memiliki mekanisme yang dapat menginterupsi kerja CPU.

Tujuan interupsi secara umum untuk menejemen pengeksekusian


routine instruksi agar efektif dan efisien antar CPU dan modul modul I/O maupun
memori. Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan,
tetapi kendali terletak pada CPU disamping itu kecepatan eksekusi masing
masing modul berbeda sehingga dengan
adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul. Macam
macam kelas sinyal interupsi :

Program, yaitu interupsi yang dibangkitkan dengan


beberapa kondisi yang terjadi pada hasil eksekusi program. Contohnya: arimatika
overflow, pembagian nol, oparasi ilegal.
Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini
memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler.
I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan pemberitahuan
kondisi error dan penyelesaian suatu operasi.
Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau
kesalahan paritas memori.

Dengan adanya mekanisme interupsi, prosesor dapat digunakan untuk meng eksekusi
instruksi-instruksi lain. Saat suatu modul telah selesai menjalankan tugasnya dan siap
menerima tugas berikutnya maka modul ini akan mengirimkan permintaan interupsi ke
prosesor. Kemudian prosesor akan menghentikan
eksekusi yang dijalankannya untuk menghandel routine interupsi.

Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi programnya
kembali. Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan,
yaitu interupsi diterima/ditangguhkan dan interupsi ditolak.
Apabila interupsi ditangguhkan, prosesor akan melakukan hal hal dibawah ini :

1. Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan


konteksnya. Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan
dieksekusi dan data lain yang relevan.
2. Prosesor menyetel program counter (PC) ke alamat awal routine interrupt handler.

Siklus instruksi dengan interrupt


Untuk sistem operasi yang kompleks sangat dimungkinkan adanya interupsi ganda
(multiple interrupt). Misalnya suatu komputer akan menerima permintaan interupsi saat
proses pencetakan dengan printer selesai, disamping itu dimungkinkan dari saluran
komunikasi akan mengirimkan permintaan interupsi setiap kali data tiba. Dalam hal ini
prosesor harus menangani interupsi ganda.

Dapat diambil dua buah pendekatan untuk menangani interupsi ganda ini. Pertama adalah
menolak atau tidak mengizinkan interupsi lain saat suatu interupsi ditangani prosesor.
Kemudian setelah prosesor selesai menangani suatu interupsi maka interupsi lain baru di
tangani. Pendekatan ini disebut pengolahan interupsi berurutan / sekuensial. Pendekatan
ini cukup baik dan sederhana karena interupsi ditangani dalam ututan yang cukup ketat.
Kelemahan pendekatan ini adalah metode ini tidak memperhitungkan prioritas interupsi.

Pendekatan kedua adalah dengan mendefinisikan prioritas bagi interupsi dan in terrupt
handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pen
dekatan ini disebut pengolahan interupsi bersarang. Metode ini digambarkan pada
gambar b.

Sebagai contoh untuk pendekatan bersarang, misalnya suatu sistem memiliki tiga
perangkat I/O: printer, disk, dan saluran komunikasi, masing masing prioritasnya 2, 4
dan 5. Pada awal sistem melakukan pencetakan dengan printer, saat itu terdapat
pengiriman data pada saluran komunikasi sehingga modul komunikasi meminta interupsi.
Proses selanjutnya adalah pengalihan eksekusi interupsi mudul komunikasi, sedangkan
interupsi printer ditangguhkan. Saat pengeksekusian modul komunikasi terjadi interupsi
disk, namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan. Setelah
interupsi modul komunikasi selesai akan dilanjutkan interupsi yang memiliki prioritas
lebih tinggi, yaitu disk. Bila interupsi disk selesai dilanjutkan eksekusi interupsi printer.
Selanjutnya dilanjutkan eksekusi program utama.

Pipelining Instruksi
Proses pipelining adalah proses dimana input baru akan diterima pada sebuah sisi
sebelum input yang diterima sebelumnya keluar sebagai output di sisi lainnya. Pipeline
memiliki dua tahapan yang independen. Tahapan pertama mengambil instruksi dan mem-
buffer-kannya. Ketika tahapan kedua bebas, tahapan pertama mengirimkan instruksi yang
di-buffer-kan tersebut. Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan
pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan
membufferkan instruksi berikutnya. Proses ini disebut instruction prefetch atau fetch
overlap.

Penggandaan kecepatan eksekusi tidak akan terjadi karena adanya kedua alasan berikut
ini:

Umumnya waktu eksekusi akan lebih lama dibandingkan dengan pengambilan


instruksi. Eksekusi akan meliputi pembacaan dan penyimpanan operand serta
kinerja sejumlah operasi. Sehingga tahapan pengambilan mungkin perlu
menunggu beberapa saat sebelum mengosongkan buffer-nya.
Instruksi pencabangan bersyarat akan membuat alamat instruksi berikutnya yang
akan diambil tidak diketahui. Sehingga tahapan pengambilan harus menunggu
sampai menerima alamat instruksi berikutnya dari tahapan eksekusi. Dengan
demikian tahapan eksekusi harus menunggu pada saat instruksi berikutnya
diambil.

Kerugian waktu yang diakibatkan tahapan kedua dapat dikurangi dengan cara menebak.
Aturan sederhananya adalah sebagai berikut : ketika instruksi pencabangan bersyarat
dikirimkan dari tahapan pengambilan ke tahapan eksekusi, tahapan pengambilan
mengambil instruksi berikutnya di dalam memori setelah terjadinya instruksi
pencabangan itu. Kemudian apabila pencabangan tidak dilakukan, maka tidak akan
terdapat waktu yang hilang. Apabila pencabangan dilakukan, instruksi yang diambil
harus dibuang dan instruksi yang baru harus diambil.
KARAKTERISTIK SET INSTRUKSI
ELEMEN-ELEMEN INSTRUKSI
1. Operation Code (Opcode)
menspesifikasikan operasi yang akan dilakukan. Kode operasi berbentuk kode biner.
2. Source Operand Reference
operasi dapat berasal dari lebih satu sumber. Operand adalah input instruksi.
3. Result Operand Reference
Merupakan hasil atau keluaran operasi.
4. Next Instruction Reference
elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan
dieksekusi

TIPE-TIPE INSTRUKSI
*.Pengolahan data (data processing)
Meliputi operasi-operasi aritmatika dan logika. Operasi aritmatika memiliki kemampuan
komputasi
untuk pengolahan data numerik. Sedangkan instruksi logika beroperasi terhadap bit-bit word
sebagai
bit, bukannya sebagai bilangan, sehingga instruksi ini memiliki kemampuan untuk pengolahan
data lain.
*.Perpindahan data (data movement)
berisi instruksi perpindahan data antar register maupun modul I/O.
untuk dapat diolah oleh CPU maka diperlukan instruksi-instruksi yang bertugas memindahkan
data operand yang diperlukan.

*.Penyimpanan data (data storage)


berisi instruksi-instruksi penyimpanan ke memori. Instruksi penyimpanan sangat penting
dalam operasi komputasi, karena data tersebut akan digunakan untuk operasi berikutnya,
minimal untuk ditampilkan pada layar harus diadakan penyimpanan walaupun sementara.
3
*.Kontrol aliran program (program flow control)
berisi instruksi pengontrolan operasi dan percabangan. Instruksi ini berfungsi untuk pengontrolan
status dan mengoperasikan percabangan ke set instruksi lain.

TIPE-TIPE OPERAND
* Addresses
* Numbers :
Integer or fixed point => sebuah integer yang skala dengan faktor tertentu. Penting untuk
dicatat bahwa faktor skala ditentukan oleh jenis, itu adalah sama untuk semua nilai dari jenis
fixed-titik tertentu.
Floating point => sebuah bilangan yang digunakan untuk menggambarkan sebuah nilai yang
sangat besar atau sangat kecil
Decimal (BCD )=> sistem pengkodean bilangan desimal yang metodenya mirip dengan
bilangan biner biasa; hanya saja dalam proses konversi, setiap simbol dari bilangan desimal
dikonversi satu per satu, bukan secara keseluruhan seperti konversi bilangan desimal ke biner
biasa.)
* Characters :
ASCII (American Standard Code for Information Interchange) => suatu standar internasional
dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal,
contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi
lain untuk menunjukkan teks.
EBCDIC (Extended Binary Coded Decimal Interchange Code) => kode 8 bit untuk huruf
yang dipakai pada sistem operasi komputer merk IBM, seperti z/OS, OS/390, VM, VSE,
OS/400, serta i5/OS
* Logical Data : Bila data berbentuk binary: 0 dan 1

TIPE-TIPE OPERASI
1. TRANSFER DATA

Menetapkan lokasi operand sumber dan operand tujuan.


Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada
stack.
Menetapkan panjang data yang dipindahkan.
Menetapkan mode pengalamatan.
Tindakan CPU untuk melakukan transfer data adalah :

1. Memindahkan data dari satu lokasi ke lokasi lain.


2. Apabila memori dilibatkan :

Menetapkan alamat memori.


Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
Mengawali pembacaan / penulisan memori

Operasi set instruksi untuk transfer data :

1. MOVE : memindahkan word atau blok dari sumber ke tujuan


2. STORE : memindahkan word dari prosesor ke memori.
3. LOAD : memindahkan word dari memori ke prosesor.
4. EXCHANGE : menukar isi sumber ke tujuan.
5. CLEAR / RESET : memindahkan word 0 ke tujuan.
6. SET : memindahkan word 1 ke tujuan.
7. PUSH : memindahkan word dari sumber ke bagian paling atas stack.
8. POP : memindahkan word dari bagian paling atas sumber

2. ARITHMETIC

Tindakan CPU untuk melakukan operasi arithmetic :


1. Transfer data sebelum atau sesudah.
2. Melakukan fungsi dalam ALU.
3. Menset kode-kode kondisi dan flag.

Operasi set instruksi untuk arithmetic :


1. ADD : penjumlahan 5. ABSOLUTE
2. SUBTRACT : pengurangan 6. NEGATIVE
3. MULTIPLY : perkalian 7. DECREMENT
4. DIVIDE : pembagian 8. INCREMENT
Nomor 5 sampai 8 merupakan instruksi operand tunggal.

5
3. LOGICAL

Tindakan CPU sama dengan arithmetic


Operasi set instruksi untuk operasi logical :
1. AND, OR, NOT, EXOR
2. COMPARE : melakukan perbandingan logika.
3. TEST : menguji kondisi tertentu.
4. SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung bit.
5. ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.

4. CONVERSI

Tindakan CPU sama dengan arithmetic dan logical.


Instruksi yang mengubah format instruksi yang beroperasi terhadap format data.
Misalnya pengubahan bilangan desimal menjadi bilangan biner.

Operasi set instruksi untuk conversi :


1. TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasarkan
tabel korespodensi.
2.CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.

5. INPUT / OUTPUT

Tindakan CPU untuk melakukan INPUT /OUTPUT :


1. Apabila memory mapped I/O maka menentukan alamat memory mapped.
2. Mengawali perintah ke modul I/O

Operasi set instruksi Input / Ouput :


1. INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
2. OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
3. START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
4. TEST I/O : memindahkan informasi dari sistem I/O ke tujuan

6. TRANSFER CONTROL

Tindakan CPU untuk transfer control :


Mengupdate program counter untuk subrutin , call / return.
Operasi set instruksi untuk transfer control :

JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
JUMP BERSYARAT : menguji persyaratan tertentu dan memuat PC dengan alamat
tertentu atau tidak melakukan apa tergantung dari persyaratan.
JUMP SUBRUTIN : melompat ke alamat tertentu.
RETURN : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.

EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruk

SKIP : menambah PC sehingga melompati instruksi berikutnya.


SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada
persyaratan
HALT : menghentikan eksekusi program.
WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
NO OPERATION : tidak ada operasi yang dilakukan

.
7. CONTROL SYSTEM

Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang
mengeksekusi suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem
operasi.Contoh : membaca atau mengubah register kontrol.
Mode pengalamatan
1. INHERENT
Dalam mode pengalamatan inherent, semua informasi yang dibutuhkan untuk operasi telah
diketahui otomatis oleh CPU, dan tidak dibutuhkan operan eksternal dari memori atau dari
program. Operan yang digunakan hanyalah register internal dari CPU atau data dalam stack.
Karena itu operasi ini hanyalah terdiri dari satu byte instruksi.
2. IMMEDIATE
Dalam mode pengalamatan immediate, operan terkandung di dalam byte yang langsung
mengikuti kode operasi. Mode ini digunakan saat suatu harga atau konstanta diketahui saat
program dibuat dan tidak akan dirubah selama eksekusi program. Operasi dengan mode ini
membutuhkan dua byte instruksi, satu untuk kode operasi dan satu lagi untuk data byte.
3. DIRECTION
Mode pengalamatan direct mirip dengan mode pengalamatan extended kecuali bahwa upper byte
dari alamat operan selalu dianggap $00. Karena itu, hanya lower-byte dari operan yang
diperlukan untuk dimasukkan dalam instruksi. Pengalamatan direct menyebabkan efisiensi
alamat dalam 256 byte pertama dalam memori. Area ini dinamakan dengan direct page dan
mengandung on-chip RAM dan register I/O. Pengalamatan direct ini efisien bagi memori
program dan waktu eksekusi. Dalam mode ini instruksi terdiri dari dua byte, satu untuk kode
operasi dan satu lagi untuk alamat operan.
4. EXTENDED
Dalam mode pengalamatan extended, alamat dari operan terkandung dalam dua byte yang
mengikuti kode operasi. Pengalamatan extended ini dapat digunakan untuk mengakses semua
lokasi dalam memori mikrokontroler termasuk I/O, RAM, ROM, dan EPROM. Karena itu
operasi ini membutuhkan tiga byte, satu untuk kode operasi, dan dua untuk alamat dari operan.
5. INDEXED
Dalam mode pengalamatan indexed, alamat efektif adalah variabel dan tergantung pada dua
faktor: 1) isi index register saat itu dan 2) nilai offset yang terkandung dari byte yang mengikuti
kode operasi. Terdapat tiga jenis pengalamatan indexed yang didukung oleh CPU keluarga
M68HC05, yaitu: no-offset, 8-bit offset, dan 16-bit offset. Dalam mode pengalamatan indexed-
no offset, alamat efektif dari operan terkandung dalam index register 8-bit. Karena itu, mode
pengalamatan ini dapat mengakses 256 lokasi memori (dari $0000 sampai $00FF). Instruksi
mode ini membutuhkan satu byte instruksi.
6. RELATIVE
Mode pengalamatan relative ini digunakanhanya dalam instruksi percabangan. Instruksi
percabangan, selain percabangan instruksi manipulasi bit, membangkitkan dua byte kode mesin:
satu untuk kode operasi dan satu untuk offset relatifnya. Karena kemampuannya untuk
bercabang ke dua arah, byte offset adalah bilangan bertanda dengan jangkauan 128 sampai
+127. Jika kondisi percabangan TRUE, isi dari byte bertanda 8-bit yang mengikuti kode operasi
akan ditambahkan dengan isi dari PC untuk membentuk alamat efektif percabangan; jika FALSE
maka kontrol program akan terus ke instruksi di bawah instruksi percabangan. Programmer akan
menspesifikasikan tujuan dari percabangan sebagai alamat absolute (dengan label atau alamat
langsung). Kemudian assembler akan mengkalkulasi offset relatif 8-bit yang akan diletakkan di
belakang kode memori dalam memori.
7. Machine Code, Opcode , Mnemonic, Operation, Addressing Mode.

Elemen Instruksi Mesin

1. Operation code (Op code)


Menspesifikasi operasi yang akan dilakukan. Kode operasi berbentuk kode biner
2. Source Operand reference
Operasi dapat berasal dari lebih satu sumber. Operand adalah input operasi
3. Result Operand reference
Merupakan hasil atau keluaran operasi

4. Next Instruction Reference


Elemen ini menginformasikan CPU posisi instruksi berikutnya yang harus diambil dan
dieksekusi

Mnemonic

Kode operasi (opcode) direpresentasi kan dengan singkatan singkatan, yang disebut mnemonic.
Mnemonic mengindikasikan suatu operasi bagi CPU.
Contoh mnemonic adalah :
ADD = penambahan
SUB = substract (pengurangan)
LOAD = muatkan data ke memori
Setiap opcode simbolik memiliki representasi biner yang tetap dan programer dapat
menetapkan lokasi masing masing operand

Operand dari Operation


1. Memori ke memori.
Dalam hal ini data berasal dan kembali ke memori, dan tahap operasi secara umum adalah :
a. Ambil nilai operand dari memori
b. Eksekusi operasi yang diperlukan
c. Kembalikan hasilnya ke memori
2. Memori ke register.
Yaitu memindah nilai dari data kememori ke register. Satu nilai data berasal dari memori dan
satu lagi dari register. Hasil eksekusi dikembalikan ke memori atau ke register dimana operand
berasal.
3. Register ke register.
Dalam hal ini digunakan sejumlah register untuk menyimpan seluruh nilai data yang akan
digunakan dalam komputasi. Data harus diambil dari memori oleh sederet instruksi sebelum
komputasi dimulai. Setelah komputasi dilakukan maka hasilnya dikembalikan lagi dengan
register.

Representasi Instruksi
1. Instruksi komputer direpresentasikan oleh sekumpulan bit. Instruksi dibagi menjadi beberapa
field.

2. Field-field ini diisi oleh elemen-elemen instruksi yang membawa informasi bagi operasi
CPU.
3. Layout instruksi dikenal dengan format instruksi.
Korelasi

1. Terlihat hubungan antara ekspresi bahasa tingkat tinggi dengan bahasa mesin.
2. Dalam bahasa tingkat tinggi, operasi dinyatakan dalam bentuk aljabar singkat
menggunakan variabel.
3. Dalam bahasa mesin hal tersebut diekspresikan dalam operasi perpindahan antar register.

Jenis-Jenis Instruksi

1. Pengolahan data (data processing),


meliputi operasi-operasi aritmetika dan logika. Operasi aritmetika memiliki kemampuan
komputasi untuk pengolahan data numerik. Sedangkan instruksi logika beroperasi
terhadap bit-bit word sebagai bit, bukannya sebagai bilangan, sehingga instruksi ini
memiliki kemampuan untuk pengolahan data lain.
2. Perpindahan data(data movement),
berisi instruksi perpindahan data antar register maupun modul I/O. Untuk dapat diolah
oleh CPU maka diperlukan instruksi-instruksi yang bertugas memindahkan data operand
yang diperlukan.
3. Penyimpanan data (data storage),
berisi instruksi-instruksi penyimpanan ke memori. Instruksi penyimpanan sangat penting
dalam operasi komputasi, karena data tersebut akan digunakan untuk operasi berikutnya,
minimal untuk ditampilkan pada layar harus diadakan penyimpanan walaupun sementara.
4. Kontrol aliran program (program flow control),
berisi instruksi pengontrolan operasi dan pencabangan. Instruksi ini berguna untuk
pengontrolan status dan mengoperasikan percabangan ke set instruksi lain.

Addressing Mode ( Mode Pengalamatan )


Mengatasi keterbatasan format instruksi :
Dapat mereferensi lokasi memori yang besar
Mode pengalamatan yang mampu menangani keterbatasan tersebut :
1. Masing masing prosesor menggunakan mode pengalamatan yang berbeda beda.
2. Memiliki pertimbangan dalam penggunaannya.

Ada beberapa teknik pengalamatan :

a. Immediate Addressing
Bentuk pengalamatan ini yang paling sederhana :
Operand benar benar ada dalam instruksi atau bagian dari instruksi = Operand sama dengan
field alamat.
Umumnya bilangan akan disimpan dalam bentuk komplemen dua.
Bit paling kiri sebagai bit tanda.
Ketika operand dimuatkan ke dalam register data, bit tanda akan digeser ke kiri hingga
maksimum word data
Keuntungan
Mode ini adalah tidak adanya referensi memori selain dari instruksi yang diperlukan untuk
memperoleh operand.
Menghemat siklus instruksi sehingga proses keseluruhan akan cepat.
Kerugiannya
Ukuran bilangan dibatasi oleh ukuran field alamat

b. Direct Addressing
Pengalamatan langsung
Kelebihan :
Field alamat berisi efektif address sebuah operand.
Teknik ini banyak digunakan pada komputer lama dan komputer kecil.
Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulasi khusus.
Kelemahan :
Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan
panjang word
Contoh : ADD A ; tambahkan isi pada lokasi alamat A ke akumulator

c. Indirect Addressing
Mode pengalamatan tak langsung
Field alamat mengacu pada alamat word di dalam memori, yang pada gilirannya akan berisi
alamat operand yang panjang
Contoh : ADD (A) ; tsmbahkan isi yang ditunjuk oleh isi alamat A ke akumulator
Keuntungan : Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat
referensi.
Kerugian : Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses
operasi

d. Register Addressing
Metode pengalamatan register mirip dengan mode pengalamatan langsung.
Perbedaannya terletak pada field alamat yang mengacu pada register, bukan pada memori
utama.
Field yang mereferensi register memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8
atau 16 register general purpose.
Keuntungan pengalamatan register
Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori.
Akses ke register lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih
cepat.
Kerugian
Ruang alamat menjadi terbatas

e. Register Indirect Addressing


Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak
langsung.
Perbedaannya adalah field alamat mengacu pada alamat register.
Letak operand berada pada memori yang ditunjuk oleh isi register.
Keuntungan dan keterbatasan pengalamatan register tidak langsung pada dasarnya sama
dengan pengalamatan tidak langsung.
Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga
alamat yang dapat direferensi makin banyak.
Dalam satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak langsung
hanya menggunakan satu referensi memori
utama sehingga lebih cepat daripada mode pengalamatan tidak langsung

f. Displacement Addressing
Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak
langsung.
Mode ini mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang
eksplisit.
Field eksplisit bernilai A dan field implisit mengarah pada register
Operand berada pada alamat A ditambah isi register.
Tiga model displacement
1. Relative Addressing
2. Base Register Addressing
3. Indexing
Relative addressing, register yang direferensi secara implisit adalah program counter (PC).
Base register addressing, register yang direferensikan berisi sebuah alamat memori, dan field
alamat berisi perpindahan dari alamat itu.
Indexing adalah field alamat mereferensi alamat memori utama, dan register yang
direferensikan berisi pemindahan positif dari alamat tersebut.

g. Stack Addressing
Stack adalah array lokasi yang linier = pushdown list = last-in-firstout-queue.
Stack merupakan blok lokasi yang terbalik. Butir ditambahkan ke puncak stack sehingga setiap
saat blok akan terisi secara parsial.
Yang berkaitan dengan stack adalah pointer yang nilainya merupakan alamat bagian paling atas
stack.
Dua elemen teratas stack dapat berada di dalam register CPU, yang dalam hal ini stack ponter
mereferensi ke elemen ketiga stack.
Stack pointer tetap berada di dalam register.
Dengan demikian, referensi referensi ke lokasi stack di dalam memori pada dasarnya
merupakan pengalamatan register tidak langsung Perbandingan Mode pengalamatan

Format-Format Instruksi
Format instruksi menentukan layout bit suatu instruksi.
Format instruksi harus mencakup opcode dan secara implisit atau eksplisit, nol operand atau lebih
Seluruh operand eksplisit direferensikan dengan menggunakan salah satu mode pengalamatan
yang ada
Secara implisit atau eksplisit format harus dapat mengindikasikan mode pengalamatan seluruh
operandnya.
Pada sebagian besar set instruksi digunakan lebih dari satu format instruksi.

Kode Instruksi (KI)

Selain dari representasi data, kode biner juga digunakan untuk membuat instruksij kontrol dalam
komputer, yang disebut kode instruksi.
Kode instruksi merupakan kelompok bit yang memberitahukan kepada komputer untuk
menunjukan suatu operasi tertentu.
Kode Instruksi dibagi dalam bagian-bagian, yang masing-masing bagian mempunyai interpretasi
sendiri
Bagian yang paling pokok adalah kode operasi (Operation Code / Opcode)operasi (Operation
Code / Opcode)
Opcode adalah sekelompok bit yang menunjukan operasi seperti ADD, SUBTRACT, SHIFT, dan
COMPLEMENT
Bagian lain dari instruksi mencakup satu operasi (operand) atau lebih
Operand adalah suatu nama yang digunakan untuk obyek instruksi dan mungkin data atau alamat
yang mengatakan dimana data tersebut
Untuk membuat kode instruksi dalam komputer harus kode biner. (seperti operasi LOAD dan
Store)
Load adalah meng-copy bilangan dari lokasi memori kedalam register
Strore adalah meng-copy bilangan dari register kedalam lokasi memori
KOMDAT

prosedur instalasi server softswich berbasis sip

1. Pengertian SIP Session Initiation Protocol (SIP)


SIP adalah suatu signalling protokol pada layer aplikasi yang berfungsi untuk membangun, memodifikasi,
dan mengakhiri suatu sesi multimedia yang melibatkan satu atau beberapa pengguna. Sesi multimedia
adalah pertukaran data antar pengguna yang meliputi suara, video, atau text. SIP tidak menyediakan
layanan secara langsung, tetapi menyediakan fondasi yang dapat digunakan oleh protokol aplikasi lainnya
untuk memberikan layanan yang lebih lengkap bagi pengguna, misalnya dengan RTP ( Real Time Tr
ansport Protocol ) untuk transfer data secara real - time , dengan SDP ( Session Description Protocol )
untuk mendeskripsikan sesi multimedia, dengan MEGACO ( Media Gateway Control Protocol ) untuk
komunikasi dengan PSTN (Public Switch Telephone Network). Meskipun demikian, fungsi dan operasi
dasar SIP tidak tergantung pada protokol tersebut. SIP juga tidak tergantung pada protokol layer transport
yang digunakan.

Pembangunan suatu komunikasi multimedia dengan SIP dilakukan melalui beberapa tahap :

User location : menentukan lokasi pengguna yang akan berkomunikasi.

User availability : menentukan tingkat keinginan pihak yang dipanggil untuk terlibat
dalam komunikasi.

User capability : menentukan media maupun parameter yang berhubungan dengan media yang
akan digunakan untuk komunikasi.

Session setup : ringing, pembentukan hubungan antara pihak pemanggil dan pihak
yang dipanggil.

Session management : meliputi transfer, modifikasi, dan pemutusan sesi.

2. Komunikasi dengan SIP

Komunikasi pada SIP dilakukan dengan mengirimkan message yang berbasis HTTP.
Setiap pengguna mempunyai alamat yang dinyatakan dengan SIP-URI
(Uniform Resource Identification).

Contoh SIP URI : sip: mona@palembang.com


Selain itu, alamat juga dapat dituliskan dalam tel-URL yang kemudian dikonversikan
menja di SIP -URI dengan parameteruser diisi phone.

Contoh : tel: +62-21-2567011

ekivalen dengan

sip: +62-21-2567011@palembang.com ; user=phone

Isi pesan di dalam SIP didefinisikan dalam 2 format (RFC 3261)[14], seperti :
1. Request (dikirim dari client to server), berisi operasi yang diminta oleh client.
2. Response (dikirim dari server ke client), berisi informasi tentang permintaan status dari client.

Ada 6 tipe utama pesan permintaan seperti di bawah ini[14] :


1) INVITE : mengindikasikan jika user atau layanan sedang diundang untuk bergabung dengan sesi.
2) ACK : mengkonfirmasi jika client sudah menerima respon terakhir untuk permintaan INVITE, dan
hanya digunakan di permintaan REQUEST.
3) OPTION : digunakan untuk mempertanyakan server tentang kemampuannya
4) BYE : dikirim oleh client user agent untuk mengindikasikan server jika percakapan akan segera
dimatikan.
5) CANCEL : untuk membatalkan permintaan yang sedang menunggu keputusan
6) REGISTER : digunakan oleh client untuk mendaftarkan informasi kontak Respon pesan berisi kode
status dan informasi tentang kondisi permintaan.

Dan kode ini dibagi menjadi 6 macam:


1) 1xx : Provisional, permintaan sudah diterima dan sedang diproses
2) 2xx : Success, permintaan sudah diterima, dimengerti dan disetujui.
3) 3xx : Redirection, butuh tindakan lebih lanjut untuk memproses permintaan
4) 4xx : Client Error, permintaan salah syntax dan tidak bisa diidentifikasi jadi server tidak bisa
memprosesnya.
5) 5xx : Server Error, server gagal untuk memproses permintaan.
6) 6xx : Global Failure, permintaan sama sekali tidak bisa diproses di server manapun

Arsitektur dari SIP terdiri dari dua komponen yaitu user agent dan servers. User agent merupakan end
point dari sistem dan memuat dua sub sistem yaitu user agent client (UAC) yang membangkitkan request,
dan user agent server (UAS) yang merespon request. SIP server adalah kesatuan fungsi logic, dimana
tidak perlu memisahkan alat secara fisik. Fungsi dari empat server tersebut yaitu:

1. Proxy Server : merupakan host jaringan yang berperan sebagai perantara yang bertujuan untuk
meminta request atas nama client yang lain. Proxy harus bertindak sebagai server dan client, dia
harus mengarahkan SIP request pada user agent server, dan mengarahkan SIP respons pada user
agent client . Proxy server juga berfungsi untuk melakukan routing, memastikan request
disampaikan pada yang berhak menerima, dan juga membuat kebijakan seperti menyakinkan
bahwa pemakai tertentu diijinkan untuk melakukan panggilan.
2. Redirect Server: merupakan kesatuan logika yang mengarahkan satu klien pada perangkat
pengganti dari Uniform Resorce indicators (URIs) untuk menyelesaikan tugas request.
3. Registrar Server : menerima dan memproses pesan pendaftaran yang mengijinkan lokasi dari
suatu endpoint dapat diketahui keberadaannya. Registrar Server ini kerjanya berhubungan dengan
Location Server.
4. Location Server : menyediakan service untuk database abstrak yang berfungsi mentranslasikan
alamat dengan kata / keterangan yang ada pada domain jaringan.

Protokol SIP didukung oleh beberapa protokol, diantara lain:

IETF Session Description Protokol (SDP), merupakan protokol yang mendeskripsikan media
dalam suatu komunikasi. Tujuan protokol SDP adalah untuk memberikan informasi aliran media
dalam satu sesi komunikasi agar penerima yang menerima informasi tersebut dapat
berkomunikasi.
IETF Session Annoucement Protocol (SAP), merupakan suatu protocol yang setiap periode waktu
tertentu mengumumkan parameter dari suatu sesi konferensi.
IETF Real-Time transport protocol (RTP), menyediakan transfer media secara real time.
Real-Time Control Protokol (RTCP), mengatur sesi secara periodik mentrasmit paket yang berisi
feedback atas kualitas dari distribusi data.
ITU_T Codec merupakan algoritma pengkodean yang direkomendasikan, seperti G.723.1, G711,
G.728, dan G.729 untuk audio, atau H.261 untuk video.

3. Aplikasi dan Kelebihan SIP

Aplikasi

- Voice over Internet Protocol (VoIP)

- Konferensi multimedia

- Text - messaging

- Event - notification -> voicemail notification, callback notification

- Unified Messaging - > voicemail2email

Kelebihan
1) General - purpose

SIP dapat diintegrasikan dengan protokol stadar IETF lainnya untuk membuat

suatu aplikasi yang berbasis SIP.

2) Arsitektur yang terdistribusi dan scalable

-> Proxy - server


-> Redirect - server

-> Registrar - server

-> Location - server

3) Sederhana

Pengiriman message berbasis HTTP (text-based), bukan binary - based.

Hal ini menyebabkan SIP mudah diimplementasikan.

4) Mobility

-> Seorang pengguna dapat menerima message/call yang ditujukan kepadanya.


meskipun berpindah dari satu lokasike lokasi lainnya. Proxy - server akan
meneruskan call ke lokasi pengguna pada saat ini.

-> Device yang digunakan dapat berupa PC, baik di rumah maupun di kantor,
wireless phone, IP - phone, ataupun telepon biasa.

5) Layanan dapat dibuat dengan Call Processing Language

(CPL) dan Common Gateway Interface (CGI), antara lain :

-> call waiting, call forwarding, call blocking (basic feature)

-> call - forking (melakukan call kepada beberapa endpoint)

-> Instant - messaging

-> Find - me / follow-me

Pada umumnya ada 3 tahapan implementasi SIP yang dapat dijelaskan sebagai berikut :

Menghubungkan SIP Proxy ke existing PBX

Migrasi User dan terminal ke SIP Proxy

Migrasi koneksi ke PSTN dari existing PBX ke SIP

Step 1: Tahap pertama adalah menghubungkan SIP proxy dengan PBX system existing sebagai gateway
ke PSTN. Untuk menghubungkan dari IP Network ke PSTN, SIP proxy akan me-routing-kan seluruh
panggilan dari panggilan VoIP ke PSTN. Link koneksi bisa menggunakan PRI ISDN maupun T1. Pertama
yang harus dilakukan adalah setup SIP proxy (SIP call manager), setelah set-up berjalan dengan baik,
selanjutnya tinggal menghubungkan ke PBX existing dengan link ISDN, E1 atau T1.

Step 2 : Tahap selanjutnya adalah migrasi existing user dan services ke SIP. Migrasi semua handset ke SIP
baik menggunakan gateway maupun mengganti dengan handset yang native SIP. Pendekatan dengan
menggabungkan keduanya biasanya menjadi pilihan yang baik. Selanjutnya adalah set-up SIP application
server untuk mengakomodasi fitur-fitur yang dibutuhkan user seperti voice mail, multi-party
conferencing, IVR, fine me follow me dan masih banyak lagi fitur yang disupport SIP.

Step 3 : Tahap 3 adalah melakukan routing panggilan ke luar melalui koneksi internet.Banyak operator
memulai menjual SIP based dengan menawarkan layanan long distance dengan harga yang lebih murah.
Yang perlu diantisipasi adalah nature network internet yang unpredictable (seperti jitter dan error rate)
dan tentu saja security. Sebagai tahap awal SIP dapat digunakan sebagai alternatif untuk melakukan
panggilan ketika diluar kantor atau teleworkers.

Aplikasi yang Mengimplementasi SIP

KakaoTalk

Mengingat popularitasnya yang semakin mendunia, anda mungkin pernah mendengar tentang Kakao
Talk ini sebelumnya. Ini aplikasi VoIP memungkinkan anda untuk membuat panggilan dan mengirim
pesan teks melalui jaringan mereka secara gratis. Sesuai aturannya, anda akan perlu mendaftar untuk
dapat menggunakan layanan, yang berarti teman-teman anda pun harus melakukan hal yang sama unutk
bisa menikmati layanan mereka.

Membuat panggilan dan mengirim pesan teks atau SMS bukanlah satu-satunya hal bisa Kakao Talk dapat
lakukan. Anda dapat mengubah tema, bermain game, melihat pemberitahuan dari teman, dan bahkan
memeriksa barang-barang yang dijual disana. Untuk dapat menikmati beberapa fitur tertentu
mereka, anda harus mengeluarkan biaya, dan tentu ini tidak menjadi masalah. Bagaimana pun juga,
aplikasi ini harus mendukung dirinya sendiri agar tetap eksis dalam beberapa cara.

Selain itu, antarmuka yang disajikannya pun sangat user friendly, dan saya yakin tidak akan ada yang
kesulitan untuk mencoba berbagai aplikasi dari layanan mereka.

Tango

Anda mungkin akan terkejut oleh aplikasi Tango ini karena fokus utama aplikasi ini adalah tidak benar-
benar sebagai VoIP atau SIP, karena aplikasi tersebut dibuat dengan tujuan utama sebagai jaringan sosial.
Meskipun demikian, anda masih dapat nelpon gratis dan kirim sms gratis ke sesama pengguna. Aplikasi
ini juga memiliki dukungan untuk pesan gambar dan video, yang membuatnya menonjol dari aplikasi ini.
Anda dapat mengharapkan Tango untuk memiliki kualitas yang terbaik juga. Aplikasi ini memenangkan
sejumlah penghargaan, dan aplikasi itu sendiri dibanggakan karena memiliki "kualitas yang hebat"
melalui koneksi 3G, 4G, dan Wi-Fi.

Seperti sebagian besar aplikasikami sajikan ini, Tango sangat mudah digunakan. Pembuatan accountnya
pun sederhana dan navigasi di sekitar aplikasi terasa sangat alami. Sayangnya anda hanya dapat
berkomunikasi dengan orang-orang yang memiliki account di Tango, mungkin meyakinkan teman-teman
anda untuk mencoba aplikasi ini yang agak sulit.

Viber
Viber adalah satu lagi VoIP yang memungkinkan untuk menelepon gratis melalui jaringan mereka. Tidak
hanya menelepon gratis yang akan anda dapatkan, anda juga dapat mengirim pesan, stiker, emoticon, dan
fitur aplikasi lainnya. Seperti aplikasi sebelumnya, teman anda akan memerlukan akun Viber untuk dapan
menelepon dan kirim pesan pesan..

Aplikasi ini juga sangat mudah untuk dinavigasidan hanya umumnya memang mudah digunakan. Satu-
satunya yang mungkin kekurangan untuk aplikasi ini seperti halnya aplikasi lainnya adalah bahwa anda
perlu untuk membuat account anda di Viber menggunakan SMS sebelum memakai aplikasi ini . Ini akan
menjadi agak menjengkelkan jika anda tidak memiliki mengatur pesan teks pada perangkat ponsel anda,
karena harus menemukan cara lain untuk mengaktifkan Viber.

Selain itu, Viber adalah aplikasi yang sangat luar biasa yang telah didownload di Play Store. Setidaknya,
aplikasi ini layak untuk dicoba.

Vox
Vox adalah salah satu solusi yang lebih sederhana untuk kebutuhan VoIP dan SIP anda. Aplikasi ini juga
cukup aplikasi sederhana. anda dapat menelepon dari account Vox anda, yang mana anda harus
membayar untuk panggilan tersebut. Vox membuat daftar harga panggilan telepon untuk berbagai negara.

Selain itu, anda akan memiliki dialer sebagai layar muka utama, dan tombol menu dapat digunakan untuk
bernavigasi di seluruh aplikasi. Selain untuk panggilan, ada dukungan SMS juga. Tentu saja, dengan
mengirim pesan SMS, harga permenit akan dipotong dari account Anda, yang berarti deposit waktu yang
digunakan untuk melakukan panggilan akan berkurang.

Mengingat kesederhanaan aplikasi ini, dibutuhkan hanya sekitar semenit untuk membiasakan diri anda
dengan fitur yang ada. Bagaimana pun juga, ini adalah aplikasi yang cukup bagus namun dengan fungsi
yang terbatas.

WiCall

Daftar terakhir dalam aplikasi ini adalah WiCall. Aplikasi ini mirip dengan vox, dimana aplikasi ini
adalah aplikasi dialer antarmuka. Sayangnya aplikasi ini tidak bisa mengirim pesan teks SMS, yang
berarti aplikasi ini hanya bisa digunakan untuk menelepon. Seperti vox, WiCall adalah layanan berbayar,
sehingga Anda akan perlu menambahkan uang ke account Anda untuk membuat panggilan telepon.
Deposit anda akan dipotong ketika anda melakukan panggilan telepon.

Aplikasi WiCall tampaknya agak kurang fitur dibandingkan dengan aplikasi lainnya yang sejenis, yang
berarti pula aplikasi ini cukup sederhana dan mudah dipelajari. Yang harus anda cari tahu adalah
bagaimana untuk menambah uang ke akun WiCall anda. Setelahnya, baru anda dapat menggunakan
dialer untuk menelepon orang lain dengan nomor WiCall Anda.

IDE Membuat Aplikasi Android dengan SIP

Aplikasi Android Pemesanan Restaurant Berbasis SIP

Dengan memanfaatkan teknologi SIP kita dapat membuat berbagai macam aplikasi yang dapat
memudahkan penggunanya. Salah satu ide yang saya ambil adalah membuat aplikasi android pemesanan
restaurant berbasis SIP.

Seperti yang kita ketahui di atas SIP merupakan protokol yang memungkinkan kita untuk melakukan
pertukaran suara. Dengan memanfaatkan teknologi SIP ini sangat memungkinkan untuk membuat aplikasi
ini. Aplikasi ini menggunakan suara untuk memesan restaurant yang di inginkan, selain itu keunggulan
dari aplikasi ini adalah tersedianya data-data restaurant yang menyediakan layanan delivery beserta menu-
menu restaurant tersebut sehingga pengguna tidak perlu bingung untuk memesan menu restaurat yang di
inginkan.

Di dalam aplikasi ini terdapat dirrect call yaitu melakukan panggilan langsung ke restaurant yang di pilih
sehingga pengguna tidak perlu lagi menyimpan no telp dalam kontak smartphone anda.

Instalasi server Softswitch berbasis sip


Onno W. Purbo

Bagi mereka yang ingin membuat sendiri sentral telepon Internet berbasis Session Initiation Protocol
(SIP) seperti yang di kembangkan oleh VoIP Rakyat di http://www.voiprakyat.or.id, maka berikut ini
adalah beberapa tip singkat untuk membangunnya. Teknologi SIP ini yang akan di adopsi oleh para
operator telekomunikasi di Indonesia. Tampaknya yang mulai siap salah satunya adalah XL, yang
mungkin akan di ikuti oleh Indosat.

Sebetulnya tidak banyak yang harus di instalasi untuk menjalankan Asterisk secara minimal sekali, yang
hanya mempunyai fungsi untuk
Authentikasi user dengan nomor telepon & password.

Dial plan, untuk mengatur apa yang harus dilakukan untuk call ke sebuah nomor tertentu.

ENUM, agar Asterisk nantinya mengenali nomor +62XXX

Peralatan yang dibutuhkan adalah

Sebuah PC Linux, saya sendiri menggunakan Fedora Core 6.

Sambungan LAN

Sambungan Internet

Instalasi Asterisk
Teknik Instalasi yang perlu dikerjakan adalah

Ambil software asterisk & asterisk sound dari http://www.asterisk.org. Pada saat tulisan ini ditulis ada dua
(2) jenis / versi asterisk, yaitu,

asterisk-1.4.0.tar.gz

asterisk-1.2.15.tar.gz

Anda harus memilih versi asterisk mana yang ingin di install. Mungkin yang agak aman pada hari ini
adalah versi 1.2, kecuali nanti pada saat 1.4 sudah mulaistabil. Semetara suara operator wanita yang
dibutuhkan adalah

asterisk-sounds-1.2.1.tar.gz

Saya biasanya akan mengcopykan semua file yang saya butuhkan tersebut ke folder /usr/local/src, melalui
perintah

# cp asterisk-1.4.0.tar.gz /usr/local/src/

# cp asterisk-1.2.15.tar.gz /usr/local/src/

# cp asterisk-sounds-1.2.1.tar.gz /usr/local/src/

Menginstalasi asterisk tidak sukar, cara yang perlu dilakukan untuk asterisk-1.4 agak berbeda dengan
asterisk-1.2 sebelumnya dengan menambahkan ./configure, yaitu
# cd /usr/local/src

# tar zxvf asterisk-1.4.0.tar.gz

# cd asterisk-1.4.0

# ./configure

# make

# make install

# make samples

Asterisk-1.2.15 merupakan versi terakhir dari asterisk-1.2 pada saat naskah ini ditulis, perintah yang perlu
dijalankan untuk menginstalasi adalah

# cd /usr/local/src

# tar zxvf asterisk-1.2.15.tar.gz

# cd asterisk-1.2.15

# make

# make install

# make samples

Selanjutnya install suara operator asterisk, melalui perintah

# cd /usr/local/src

# tar zxvf asterisk-sounds-1.2.1.tar.gz

# cd asterisk-sounds-1.2.1

# make install

Seleai sudah proses instalasi asterisk. Langsung selanjutnya yang perlu dilakukan adalah
mengkonfigurasi agar sesuai dengan apa yang kita inginkan.
Konfigurasi Asterisk Minimal Sekali

Konfigurasi Asterisk yang aman sangat minimal dengan misi untuk meng-authentikasi user,
mengkonfigurasi dial-plan dan mengenalkan ENUM tidak banyak yang harus dilakukan. Seluruh proses
konfigurasi merupakan proses editing file-file yang ada di folder

/etc/asterisk

File yang perlu diperhatikan tidak banyak, hanya,

sip.conf - untuk authentikasi user dengan nomor telepon dan password.

extensions.conf - untuk mengatur dialplan.

enum.conf - untuk memperkenalkan nomor +62XX.

Masih banyak file-file konfigurasi lainnya, sangat di sarankan bagi anda yang ingin secara serius
mempelajari asterisk untuk membaca-baca file-file konfigurasi yang ada di /etc/asterisk/

Konfigurasi ENUM.CONF

Tidak banyak yang harus di ubah di /etc/asterisk/enum.conf, hanya pastikan bahwa ada entry

search => e164.arpa

search => e164.org

search => e164.id

Dengan cara itu, kita dapat pastikan bahwa informasi ENUM yang ada di e164.arpa, e164.org dan
e164.id akan dapat di ketahui dengan baik oleh asterisk kita.
Konfigurasi SIP.CONF

Pada file /etc/asterisk/sip.conf, untuk sebuah account dengan nomor telepon 2099, password 123456,
IP address dinamis menggunakan DHCP maka entry yang digunakan adalah,

[2099]

context=default

type=friend

username=2099

secret=123456

host=dynamic

dtmfmode=rfc2833

mailbox=2099@default

Untuk asterisk-1.4, agar dial tone dapat di handel dengan baik maka perlu ditambahkan di tambahan
entry berikut

rfc2833compensate=yes

Masukan entry di atas untuk masing-masing user.

Sampai titik ini maka masing-masing user dapat meregistrasikan diri ke asterisk dan dapat menelepon
satu sama lain dengan mereka yang terdaftar di asterisk server yang kita operasikan.

Agar asterisk server kita dapat berbicara dengan user lain di XL. Indosat, VoIP Rakyat, di Pulver atau di
SIP Proxy yang banyak bertebaran di Internet, kita perlu meregistrasikan diri ke SIP Proxy server
tersebut. Perintah yang digunakan adalah
register => 2345:password@sip_proxy/1234

yang artinya, user 1234 di asterisk server yang kita operasikan merupakan user 2345 di sip_proxy yang
login ke sana menggunakan password "password". Misalnya seseorang user 2000 mempunyai account
20345 di server voiprakyat.or,id dengan password "rahasia" maka format yang digunakan adalah

register => 20345:rahasia@voiprakyat.or,id/2000

Dengan cara ini, maka ada panggilan di VoIP Rakyat ke nomor 20345 akan langsung di forward ke nomor
2000 di SIP server yang kita gunakan.
Konfigurasi EXTENSIONS.CONF

Pada file /etc/asterisk/extensions.conf kita dapat mengatur apa yang harus dilakukan oleh asterisk jika
menerima sebuah panggilan ke nomor extension tertentu, yang sering digunakan adalah

exten => _20XX,1,Dial(SIP/${EXTEN},20,rt)

exten => _20XX,2,HangUp

Cara membaca perintah di atas adalah sebagai berikut,

Jika ada orang yang menelepon ke extension 20XX maka langkah 1 yang harus di kerjakan adalah DIAL
EXTENsiontersebut mengunakan teknologi SIP, tunggu 20 detik, jika tidak di angkat maka time out (rt).
Langkah ke 2 yang harus dilakukan adalah HangUp. Tentunya anda perlu mengatur sedikit-sedikit
perintah ini agar sesuai dengan kondisi yang anda gunakan di SIP Server anda.

Beberapa perintah berbahaya yang sering dicari orang adalah sebagai berikut

exten => _0711X.,1,Dial(SIP/${EXTEN:4}@2031,20.rt)

Cara membaca-nya adalah,

Jika ada orang yang menelepon ke 0711X. Perhatikan titik sesudah X, berarti berapapun dibelakang X
tidak di perdulikan. DIAL menggunakan teknologi SIP ke nomor 2031. Perhatikan baik-baik kode
{EXTEN:4} ini harus di baca - buang empat (4) digit di depan nomor EXTENsion sebelum dimasukan ke
2031 - jadi 07115551234 menjadi 5551234.

Jika kita menggunakan PABX antara ATA dengan Telkom, maka perintah yang digunakan menjadi
exten => _021X.,1,Dial(SIP/9${EXTEN:3}@2031,20.rt)

Cara membaca-nya adalah,

Jika ada orang yang menelepon ke 021X. Perhatikan titik sesudah X, berarti berapapun dibelakang X
tidak di perdulikan. DIAL menggunakan teknologi SIP ke nomor 2031. Perhatikan baik-baik kode
9{EXTEN:3} ini harus di baca buang tiga (3) digit di depan nomor EXTENsion yang di dial kemudian
tambahkan 9 - jadi 0215551234 menjadi 95551234.

Artinya jika nomor 2031 merupakan sebuah Analog Telepon Adapter (ATA) seperti SPA3000 yang berada
di jakarta dan sambungkan ke PABX di Jakarta. Maka siapapun yang berada di jaringan VoIP Tersebut
akan dapat menelepon Jakarta tanpa perlu membayar SLJII maupun SLI. Orang yang mempunyai ATA
tetap harus membayar pulsa lokal untuk menelelpon ke nomor ang di tuju.

Cara yang sama dapat di kembangkan untuk menelepon selular dengan cara menyambungkan ATA yang
kita gunakan ke telkom. Perintah yang digunakan adalah sebagai berikut

exten => _08X.,1,Dial(SIP/${EXTEN}@2031,20.rt)

Tentunya untuk sebuah kantor yang tersambung ke jaringan VoIP Publik tidak akan mau membuka akses
agar semua orang dapat menelepon semua nomor selular atau Telkom, oleh karenanya biasanya kita
tidak menggunakan kode-kode 021X., atau 08X. Tapi kita akan memasukan satu per satu nomor-nomor
yang di ijinkan di telepon melalui VoIP, misalnya,

exten => _0811567854,1,Dial(SIP/${EXTEN}@2031,20.rt)

exten => _0216575675,1,Dial(SIP/${EXTEN}@2031,20.rt)

exten => _0216755675,1,Dial(SIP/${EXTEN}@2031,20.rt)


Artinya hanya nomor 0811567854, 0216575675 dan 0216755675 yang dapat dihubungi melalui VoIP
nomor selain nomor-nomor ini tidak dapat dihubungi.

Untuk mengadopsi nomor telepon +62XXX maupun nomor telepon lainnya kita dapat memasukan
ENUMLOOKUP menggunakan perintah

exten => _62X.,1,ENUMLOOKUP(${EXTEN},sip,,1,e164.id)

exten => _62X.,2,Dial(${ENUM})

exten => _62X.,102,Playback(im-sorry)

atau

exten => _+X.,1,ENUMLOOKUP(${EXTEN},sip,,1,e164.id)

exten => _+X.,2,Dial(${ENUM})

exten => _+X.,102,Playback(im-sorry)

Anda mungkin juga menyukai