Wednesday, 4 October 2017

Future Implementation of VLIW

Sebuah implementasi VLIW akan menghasilkan efek yang sama dengan superscalar RISC atau implementasi CISC, tapi desain VLIW melakukannya tanpa dua bagian yang paling kompleks dari desain superscalar berperforma tinggi.

Karena instruksi VLIW
secara eksplisit menentukan beberapa operasi independen yang secara eksplisit menentukan paralelisme, maka tidak diperlukan untuk melakukan decoding dan pengiriman hardware untuk merekonstruksi paralelisme dari aliran instruksi serial. Alih-alih berupaya untuk menemukan paralelisme, prosesor VLIW hanya akan mengandalkan compiler penghasil kode VLIW untuk secara eksplisit menentukan paralelisme. Mengandalkan kompilator memiliki kelebihan.

Pertama, compiler memiliki kemampuan untuk melihat instruksi dari jendela yang jauh lebih besar dari daripada perangkat keras. Untuk prosesor superscalar, jendela hardware yang lebih besar berdampak pada jumlah yang lebih besar dari logika dan area chip.

Pada beberapa titik, ada yang tidak cukup baik sehingga ukuran jendela dibatasi. Lebih buruk lagi, bahkan sebelum batas sederhana pada jumlah hardware tercapai, kompleksitas dapat berpengaruh pada kecepatan logika, sehingga ukuran jendela dibatasi untuk menghindari berkurangnya kecepatan clock chip. Jendela software dapat menjadi besar. Dengan demikian, mencari paralelisme di jendela perangkat lunak mungkin untuk memperoleh hasil yang lebih baik.

Very-Long Instruction Word (VLIW) Computer Architecture

The Basic Idea of VLIW

Ide awal dari VLIW adalah adanya komputasi paralel Alan Turing pada tahun 1946 dan Maurice Wilkes pada tahun 1951 saat melakukan pekerjaan microprogramming. CPU Microprogrammed memiliki macroinstruction yang sesuai dengan setiap instruksi program. Masing-masing macroinstructions memiliki urutan yang sesuai microinstructions dan disimpan dalam ROM pada CPU. Microinstructions ini dapat di-order di dalam set yang luas dari sinyal kontrol. Hal ini dinamakan microprogramming horisontal.

Ketika Joseph Fisher bekerja menulis microcode horisontal untuk emulator-6600 CDC pada tahun 1979, ia mulai
memikirkan teknik untuk menghasilkan instruksi yang panjang dari sekuensial yang singkat. Teknik-teknik yang dikembangkan, disebut "jejak penjadwalan", sangat penting untuk menghasilkan kode VLIW yang kompatibel.

Pada tahun 1984, Fisher dan rekan
-rekannya dari Universitas Yale membentuk Multiflow, dengan tujuan menciptakan superkomputer VLIW. Cydrome juga dibentuk pada tahun itu oleh Bob Rau. Meskipun mereka berdua merilis produk jadi tersebut, ternyata pasar tidak siap dan teknologi yang ada juga belum lengkap. Dengan demikian, perusahaan tidak berhasil meraih banyak kesuksesan komersial. Tapi mereka terus menyempurnakan teknologi VLIW, dan kedua pendiri sekarang membawa keahlian mereka untuk Hewlett-Packard Labs, yang telah menghasilkan mesin penelitian playdoh [PDF].

Tuesday, 3 October 2017

SUPERSCALAR ARCHITECTURE

Overview Supersclalar Architecture (SSA)           
            Superscalar Architecture (SSA) yang biasa dikenal dengan arsitektur superskalar merupakan arsitektur dari suatu komputer (processor) yang memungkinkan eksekusi dilakukan secara bersamaan (paralel) dalam satu siklus dengan memanfaatkan teknik pipelining. Hal ini menjadikan  setiap pipleine terdiri dari beberapa stage, sehingga setiap pipeline dapat menangani beberapa insruksi dalam satu waktu. Dalam hal ini, sebuah processor superscalar memanfaatkan apa yang  dikenal dengan instruction level parallelism, yang mengacu pada sejauh mana instruksi dari sebuah program dapat dieksekusi secara paralel. Arsitektur superskalar diperlukan untuk meningkatkan kinerja eksekusi dari suatu instruksi yang bersifat skalar. Maksud dari instruksi yang bersifat skalar adalah perintah/ instruksi tersebut dapat dieksekusi dengan menggunakan variabel yang sederhana, seperti variabel integer (bilangan bulat, bilangan yang tidak memiliki pecahan). Disisi lain, beberapa CPU juga memiliki kemampuan untuk mengolah data bertipe floating point (bilangan berkoma). Teknik superscalar terkait dengan mengidentifikasi beberapa karakteristik :
ñ  Instruksi yang dikeluarkan dari aliran instruksi berurutan.
ñ  Processor memeriksa secara dinamik dependensi data antara instruksi saat berjalan.
ñ  Processor menerima beberapa instruksi per clock cycle.

Berikut ini adalah gambaran dari arsitektur superscalar  :
Superscalar Architecture
           

Thursday, 28 September 2017

RISC (Reduced Instruction Set Computer)

Arsitektur RISC

RISC singkatan dari Reduced Instruction Set Computer yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit. Karena perbedaan keduanya ada pada kata set instruksi yang kompleks atau sederhana (reduced). RISC lahir pada pertengahan 1980, kelahirannya ini dilator belakangi untuk CISC. Perbedaan mencolok dari kelahiran RISC ini adalah tidak ditemui pada dirinya instruksi assembly atau yang dikenal dengan bahasa mesin sedangkan itu banyak sekali di jumpai di CISC.

CISC (Complex Instruction-Set Computer)

Complex instruction-set computing  atau  (CISC; "Kumpulan instruksi komputasi kompleks") adalah sebuah arsitektur dari set instruksi komputer dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memori, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC. Contoh-contoh prosesor CISC adalah  System/360, VAX, PDP-11, varian Motorola 68000 , dan CPU AMD dan Intel x86.
Arsitektur CISC

Tuesday, 26 September 2017

Example of Pipeline Implementation

Intel 80486

Prosesor Intel 80486 memiliki pipeline dengan 5 tahap, antara lain adalah sebagai berikut :
  • Fetch
o   Dari cache atau memori eksternal
o   Memakai salah satu dari dua prefetch buffer yang masing-masing berukuran 16 byte
o   Mengisi buffer dengan data baru seketika setelah data lama selesai digunakan
o   Rata-rata dapat mengambil 5 instruksi untuk sekali operasi
o   Bersifat independen dari tahap lain supaya  buffer dapat tetap penuh
  •  Decode stage 1 (D1)
o   Informasi opcode dan mode pengalamatan memori
o   Paling banyak mengambil 3 byte pertama dari sebuah instruksi
o   Mendelegasikan kepada Decode stage 2 untuk mengambil sisa instruksi
  • Decode stage 2 (D1)
o   Mengembangkan opcode menjadi sinyal kontrol
o   Perhitungan untuk mode pengalamatan yang kompleks
  •  Execute (EX)
o   Operasi ALU, akses cache, update register
  • Writeback (WB)
o   Update register dan flag
o   Hasilnya dikirim ke write buffer untuk cache dan bus interface

Saturday, 13 December 2014

Branch in Instruction Pipeline

MASALAH DENGAN BRANCH

Branch atau percabangan instruksi seringkali kita temukan dalam suatu program atau kode. Pada instruction pipelining, sebuah instruksi yang bercabang dapat menimbulkan masalah berupa delay dan kesulitan menentukan instruksi mana yang harus dilakukan setelahnya, seperti yang diilustrasikan berikut:
Misalnya kita memiliki sebuah kode: