Artikel 1 (Pipelining dan RISC)
1. Pipelining
Prosesor Pipeline yang berputar adalah prosesor baru untuk arsitektur
superscalar komputasi. Ini didasarkan pada cara yang mudah dan pipeline yang
biasa, struktur yang dapat mendukung beberapa ALU untuk lebih efisien dalam
pengiriman dari bagian beberapa instruksi. Daftar nilai arus yang berputar di
sekitar pipa, dibuat oleh dependensi data lokal. Selama operasi normal, kontrol
sirkuit tidak berada pada jalur yang kritis dan kinerja hanya dibatasi oleh data
harga. Operasi mengalir dengan interval waktu sendiri. Ide utama dari Pipeline
Prosesor yang berputar adalah circular uni-arah mengalir dari memori register
oleh pusat waktu logika dan proses secara parallel dari operasi ALU.
Struktur lain yang menggunakan penyelesaian deteksi atau selain penundaan
yang tepat dari pengaturan waktu pusat tetapi karena masalah waktu yang
Syncronization, Pipelines memaksakan sebuah penurunan kinerja. Misalnya
counterflow pipeline prosesor yang dirancang sekitar dua arah, pipa membawa
petunjuk dan argumen dalam satu arah dan hasil yang lainnya b ini dapat
menyebabkan Syncronization masalah antara prosesor.
Pipeline yang berputar menghindari masalah yang hanya melewati data dalam
satu arah. Pada prinsipnya, prosesor dari register terus beredar di sekitar
cincin yang berhubungan dengan berbagai fungsi ALU,-akses memori dan sebagainya
.ada tiap tahap, nilai-nilai yang memeriksa dan disampaikan, kemungkinan
setelah perubahan, tidak signifikan dengan pengeluaran tambahan untuk
sinkronisasi. Dispatched adalah instruksi dari pusat ke fungsi unit yang
memungkinkan beberapa masalah instruksi .
Intruksi pipeline
- Mengambil instruksi dan membuffferkannya
- Ketika tahapn kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
- Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya .
Instuksi pipeline:
Karena untuk setiap
tahap pengerjaan instruksi, komponen yang bekerja berbeda, maka dimungkinkan
untuk mengisi kekosongan kerja di komponen tersebut. Sebagai contoh :
Instruksi 1: ADD AX, AX
Instruksi 2: ADD EX, CX
Setelah CU menjemput
instruksi 1 dari memori (IF), CU akan menerjemahkan instruksi tersebut(ID).
Pada menerjemahkan instruksi 1 tersebut, komponen IF tidak bekerja. Adanya
teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID
menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan
instruksi 1 (EX), instruksi 2 diterjemahkan (ID).
Contoh pengerjaan
instruksi tanpa pipeline
t =
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
ADD AX,AX
|
IF
|
DE
|
IF
|
DE
|
EX
|
|||||
ADD BX,CX
|
IF
|
DE
|
IF
|
DE
|
EX
|
Disini instruksi baru
akan dijemput jika instruksi sebelumnya telah selesai dilaksanakan.
t =
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
ADD AX,AX
|
IF
|
DE
|
IF
|
DE
|
EX
|
|||||
ADD BX,CX
|
IF
|
DE
|
IF
|
DE
|
EX
|
|||||
ADD DX,DX
|
IF
|
DE
|
IF
|
DE
|
EX
|
Contoh pengerjaan
instruksi dengan pipeline
Disini instruksi baru
akan dipanggil setelah tahap IF menganggur (t2).
Dengan adanya pipeline
dua instruksi selesai dilaksanakan pada detik keenam (sedangkan pada kasus
tanpa pipeline baru selesai pada detik kesepuluh). Dengan demikian telah
terjadi percepatan sebanyak 1,67x dari 10T menjadi hanya 6T. Sedangkan untuk
pengerjaan 3 buah instruksi terjadi percepatan sebanyak 2, 14 dari 15T menjadi
hanya 7T.
Untuk kasus pipeline
sendiri, 2 instruksi dapat dikerjakan dalam 6T(CPI = 3) dan instruksi dapat
dikerjakan dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat dikerjakan dalam 8T
(CPI =2). Ini berarti utnuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI
= 1,04). Pada kondisi ideal CPI akan harga 1.
Permasalahan di (dalam)
Instruksi Pipelining
- VARIASI WAKTU:
Tidak semua tahap
memakan waktu yang sama. Ini berarti untuk mendapatkan kecepatan dalam intruksi
pipelining sangat ditentukan oleh tahap yang paling lambat. Masalah ini sangat
akut dalam memproses instruksi, sejak instruksi yang berbeda memiliki
persyaratan
operand waktu proses
yang berbeda. Selain itu, diperlukan mekanisme sinkronisasi untuk memastikan
bahwa data lewat dari stage ke stage hanya ketika kedua stage siap.
- DATA BERBAHAYA (DATA HAZARDS):
Ketika beberapa
instruksi di eksekusi secara parsial, masalah timbul jika mereka referensi data
yang sama. Kita harus memastikan bahwa instruksi selanjutnya tidak berusaha
untuk mengakses data lebih cepat dari instruksi sebelumnya, jika ini terjadi
akan menyebabkan hasil yang salah. Sebagai contoh, instruksi N +1 tidak harus
diperbolehkan untuk mengambil sebuah operand yang belum disimpan oleh instruksi
N.
- PERCABANGAN (BRANCH):
untuk mengambil
instruksi berikutnya, kita harus tahu mana saja yang dibutuhkan, Jika instruksi
ini adalah cabang bersyarat (conditional branch) instruksi berikutnya mungkin
tidak diketahui sampai saat diproses.
- JEDA(INTERUPTSI):
interupsi membuat
instruksi extra yang tidak terencana untuk masuk kedalam aliran intruksi.
jeda(Interrupt) harus berperan antar instruksi. yaitu, ketika satu instruksi
telah selesai dan berikutnya belum dimulai. Dengan pipelining, instruksi berikutnya
biasanya dimulai sebelum yang sekarang telah selesai.
Semua masalah ini harus
diselesaikan dalam konteks kebutuhan kita untuk mendaatkan kinerja dengan
kecepatan tinggi. Jika kita tidak dapat mencapai kecepatan yang cukup,
pipelining mungkin tidak sepadan.
Keuntungan dan Kerugian
Pipelining tidak
membantu dalam semua kasus. Ada beberapa kemungkinan kerugian. Pipa instruksi
dikatakan sepenuhnya pipelined jika dapat menerima instruksi baru setiap clock
cycle. Sebuah pipa yang tidak sepenuhnya pipelined telah menunggu siklus yang
menunda kemajuan pipa.
Keuntungan dari
Pipelining:
- Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksi dalam kebanyakan kasus( lebih cepat selesai).
- Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit. Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat sirkuit & combinational yang lebih kompleks.
- Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.
Kekurangan Pipelining:
- Pipelined prosesor menjalankan beberapa instruksi pada satu waktu. Jika ada beberapa cabang yang mengalami penundaan cabang (penundaan memproses data) dan akibatnya proses yang dilakukan cenderung lebih lama.
- Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada dalam pipelined setara. Hal ini disebabkan oleh fakta bahwa intruksi ekstra harus ditambahkan ke jalur data dari prosesor pipeline.
- Kinerja prosesor di pipeline jauh lebih sulit untuk meramalkan dan dapat bervariasi lebih luas di antara program yang berbeda.
- Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang tepat agar proses tetap berjalan dengan benar.
- Sedangkan ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya.
- Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program counter.
2. Prosesor Vektor Pipelining
Sebuah prosesor vektor atau prosesor array, adalah unit
pemrosesan sentral (CPU) yang
mengimplementasikan set instruksi berisi instruksi yang beroperasi pada satu dimensi array data yang disebut vektor. Hal ini kontras dengan prosesor skalar , yang instruksi beroperasi pada item data tunggal.
Meskipun prosesor Intel dan klon mereka desain awalnya sebagai skalar, model baru
berisi peningkatan jumlah vektor instruksi khusus seperti yang disediakan oleh Ekstensi
Vector Lanjutan ditetapkan. Prosesor
vektor pertama kali muncul pada 1970-an, dan membentuk dasar dari yang paling superkomputer di tahun 1980 dan 1990-an. Perbaikan dalam prosesor
skalar, terutama mikroprosesor , mengakibatkan penurunan prosesor vektor tradisional
di superkomputer, dan munculnya teknik pengolahan vektor di CPU pasar massal
sekitar awal 1990-an. Hari ini, CPU komoditas yang paling mengimplementasikan
arsitektur yang menampilkan instruksi untuk beberapa pemrosesan vektor pada
beberapa (vektoralisasi) set data, biasanya dikenal sebagai SIMD (S
Ingle saya nstruction, M ultiple D ata). Teknik pemrosesan vektor juga
ditemukan di konsol video game hardware dan akselerator grafis . Pada tahun 2000, IBM , Toshiba dan Sony
berkolaborasi untuk menciptakan prosesor Cell , yang terdiri dari satu prosesor skalar dan delapan
prosesor vektor, yang ditemukan digunakan dalam Sony PlayStation 3 di antara aplikasi lain. Desain CPU lain mungkin termasuk beberapa instruksi untuk pemrosesan
vektor pada beberapa (vectorised) set data, biasanya dikenal sebagai MIMD (M ultiple saya nstruction, M
ultiple D ata). Desain seperti
biasanya didedikasikan untuk aplikasi tertentu dan tidak umum dipasarkan untuk
komputasi tujuan umum.
3. RISC (Reduced Instruction Set Computer)
RISC singkatan dari Reduced Instruction Set Computer.
Merupakan bagian dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi
untuk negeset istruksi dalam komunikasi diantara arsitektur yang lainnya.
Arsitektur RISC memiliki
beberapa karakteristik diantaranya :
a. Siklus mesin ditentukan oleh waktu yang digunakan untuk
mengambil dua buah operand dari register, melakukan operasi ALU, dan menyimpan
hasil operasinya kedalam register, dengan demikian instruksi mesin RISC tidak
boleh lebih kompleks dan harus dapat mengeksekusi secepat mikroinstruksi pada
mesin-mesin CISC. Dengan menggunakan instruksi sederhana atau instruksi satu
siklus hanya dibutuhkan satu mikrokode atau tidak sama sekali, instruksi mesin
dapat dihardwired. Instruksi seperti itu akan dieksekusi lebih cepat dibanding
yang sejenis pada yang lain karena tidak perlu mengakses penyimapanan kontrol
mikroprogram saat eksekusi instruksi berlangsung.
b. Operasi berbentuk dari register-ke register yang hanya terdiri dari operasi
load dan store yang mengakses memori . Fitur rancangan ini
menyederhanakan set instruksi sehingga menyederhanakan pula unit control.
Keuntungan lainnya memungkinkan optimasi pemakaian register sehingga operand
yang sering diakses akan tetap ada di penyimpan berkecepatan tinggi. Penekanan
pada operasi register ke register merupakan hal yang unik bagi perancangan
RISC.
c. Penggunaan mode pengalamatan sederhana, hampir sama dengan instruksi
menggunakan pengalamatan register,. Beberapa mode tambahan seperti pergeseran
dan pe-relatif dapat dimasukkan selain itu banyak mode kompleks dapat
disintesis pada perangkat lunak dibanding yang sederhana, selain dapat
menyederhanakan sel instruksi dan unit kontrol.
d. Penggunaan format-format instruksi sederhana, panjang instruksinya tetap
dan disesuaikan dengan panjang word. Fitur ini memiliki beberapa kelebihan
karena dengan menggunakan field yang tetap pendekodean opcode dan pengaksesan
operand register dapat dilakukan secara bersama-sama
a. Instruksi berukuran tunggal
b. Ukuran yang umum adalah 4 byte
c. Jumlah pengalamatan data sedikit, biasanya kurang dari 5 buah.
d. Tidak terdapat pengalamatan tak langsung yang mengharuskan melakukan sebuah
akses memori agar memperoleh alamat operand lainnya dalam memori.
e. Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi
aritmatika, seperti penambahan ke memori dan penambahan dari memori.
f. Tidak terdapat lebih dari satu operand beralamat memori per instruksi
g. Tidak mendukung perataan sembarang bagi data untuk operasi load/ store.
h. Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah
sebuah instruksi .
i. Jumlah bit bagi integer register spesifier sama dengan 5 atau lebih,
artinya sedikitnya 32 buah register integer dapat direferensikan sekaligus
secara eksplisit.
j. Jumlah bit floating point register spesifier sama dengan 4 atau lebih,
artinya sedikitnya 16 register floating point dapat direferensikan sekaligus
secara eksplisit.
Artikel 2 (Prosesor Paralel)
1. Jaringan Interkoneksi
Interkoneksi adalah keterhubungan antar jaringan
telekomunikasi dari penyelenggara jaringan telekomunikasi
yang berbeda. Interkoneksi antar-operator telekomunikasi wajib dilaksanakan di Indonesia
untuk memberikan jaminan kepada pengguna agar dapat mengakses jasa telekomunikasi.
Jenis layanan interkoneksi terdiri dari: layanan originasi, layanan transit,
dan layanan terminasi. Setiap penyelenggara jaringan telekomunikasi
(tetap lokal, bergerak selular, atau bergerak satelit) wajib mencantumkan setiap
jenis layanan interkoneksi yang disediakan dalam Dokumen Penawaran Interkoneksi
(DPI). Interkoneksi antar penyelenggara telekomunikasi diatur dengan PERATURAN
MENTERI KOMUNIKASI DAN INFORMATIKA NOMOR: 08/Per /M.KOMINF/02/ 2006 tentang
INTERKONEKSI.
2. Single
Instruction, Multiple Data Stream – SIMD
- Single machine instruction
- Mengontrol eksekusi secara simultan
- sejumlah elemen-elemen pengolahan
- Berdasarkan Lock-step
- Setiap pengolahan elemen memiliki hubungan dengan memori data
- Setiap instruksi dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda
- Prosesor Vector and array
3.
Multiple Instruction, Multiple Data Stream- MIMD
- Kumpulan/sejumlah prosesor
- Mengeksekusi secara simultan urutan instruksi yang berbeda
- Kumpulan data yang berbeda
- SMP, Cluster and sistem NUMA
4. Arsitektur Pengganti
Dalam bidang teknik
komputer, arsitektur pengganti merupakan konsep perencanaan atau struktur
pengoperasian dasar dalam komputer atau bisa dikatakan rencana cetak biru dan
deskripsi fungsional kebutuhan dari perangkat keras yang didesain. implementasi
perencanaan dari masing-masing bagian seperti CPU, RAM, ROM, Memory Cache, dll.
Referensi :
Tidak ada komentar:
Posting Komentar