Senin, 26 Desember 2016

Pipelining dan RISC


A.  Pipeline
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja secara  bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada unit  pemrosesor. Dengan cara ini, maka unit pemrosesan selalu bekerja. Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer. Bisa  pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang rendah, seperti  pada instruksi yang dijaankan oleh microprocessor.
Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi. Dengan penerapan pipeline ini pada microprocessor akan didapatkan peningkatan kinerja microprocessor.
Hal ini terjadi karena beberapa instruksi dapat dilakukan secara parallel dalam waktu yang bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K kali dibandingkan dengan microprocessor yang tidak menggunakan pipeline, apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap. 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 dan lancar.
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.
Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak menggunakan arsitektur pipeline dengan microprocessor yang menerapkan teknik ini. Pada microprocessor yang tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan.
Sedangkan dalam microprocessor   yang menggunakan teknik pipeline ketika satu instruksi sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda.
Tiga kesulitan yang sering dihadapi ketika menggunakan teknik pipeline ini adalah:
1.     Terjadinya penggunaan resource yang bersamaan
2.     Ketergantungan terhadap data, dan
3.     Pengaturan Jump ke suatu lokasi memori.

·        Instruksi pada pipeline
          Tahapan pipeline
1.     Mengambil instruksi dan membuffferkannya
2.     Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang dibufferkan tersebut
3.     Pada saat tahapan kedua sedang mengeksekusi instruksi ,tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan instruksi berikutnya

·        Berikut ini adalah gambaran tentang 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 :


Contoh pengerjaan instruksi dengan pipeline :


Dengan adanya pipeline dua instruksi selesai dilaksanakan padadetik 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, 14x 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 untuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI = 1,04). Pada kondisi ideal CPI akan harga 1.

B.   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.

·        Sejarah RISC
Proyek RISC pertama dibuat oleh IBM, stanford dan UC –Berkeley pada akhir tahun 70 dan awal tahun 80an. IBM 801, Stanford MIPS, dan Barkeley RISC 1 dan 2 dibuat dengan konsep yang sama sehingga dikenal sebagai RISC. 
RISC mempunyai karakteristik :
1.     One cycle execution time : satu putaran eksekusi. Prosessor    RISC mempunyai CPI (clock per instruction) atau waktu per instruksi untuk setiap putaran. Hal ini dimaksud untuk mengoptimalkan setiap instruksi pada CPU.
2.     Large number of registers: Jumlah register yang sangat banyak. RISC di Desain dimaksudkan untuk dapat menampung jumlah register yang sangat banyak untuk mengantisipasi agar tidak terjadi interaksi yang berlebih dengan memory.
3.     Pipelining:adalah sebuah teknik yang memungkinkan dapat melakukan eksekusi secara simultan.Sehingga proses instruksi lebih efiisien.

·        Ciri-ciri :
1.     Instruksi berukuran tunggal
2.     Ukuran yang umum adalah 4 byte
3.     Jumlah pengalamatan data sedikit,
4.     Tidak terdapat pengalamatan tak langsung
5.     Tidak terdapat operasi yang menggabungkan operasi load/store dengan operasi aritmatika
6.     Tidak terdapat lebih dari satu operand beralamat memori per instruksi
7.     Tidak mendukung perataan sembarang bagi data untuk operasi load/ store.
8.     Jumlah maksimum pemakaian memori manajemen bagi suatu alamat data adalah sebuah instruksi .
Pengaplikasian RISC yaitu pada CPU Apple



UNIT INPUT OUTPUT


A. Sistem komputer memiliki tiga komponen utama, yaitu : CPU, Memory (primer & sekunder), dan peralatan masukan/keluaran (I/O) seperti printer, monitor, keyboard, mouse dan modem. dalam menjalankan fungsinya sebagai masukan dan keluaran diperlukan modul I/O. Modul I/O merupakan peralatan antarmuka (Interface) bagi sistem bus atau switch sentral dan mengontrol satu atau lebih perangkat periperhal. Modul I/O tidak hanya sekedar mosul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara perperhal dan bus komputer.
Ada  beberapa alasan kenapa tidak langsung dihubungkan dengan bus komputer yaitu:
1.     Bervariasinya metode operasi piranti periperhal, sehingga tidak praktis apabila sistem komputer harus menangani berbagai macam sistem operasi periperhal tersebut.
2.     Kecepatan transfer data piranti periperhal umumnya lebih lambat daripada laju transfer data pada CPU
3.     Format dan panjang data pada piranti periperhal seringkali berbeda dengan CPU, sehingga  perlu modul untuk menselaraskannya.
Dari beberapa alasan diatas, modul I/O memiliki 2 buah fungsi utama, yaitu :
1.     Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem.
2.     Sebagaimana piranti antarmuka dengan peralatan periperhal lainnya menggunakan link data tertentu.
Modul I/O
Operasi modul I/O adalah pertukaran data dari dan ke dalam komputer. Berdasakan pandangan internal, modul I/O dipandang sebagai sebuah memori dengan operasi pembacaan dan penulisan. Seperti telah dijelaskan pada bab 6 bahwa modul I/O dapat mengontrol lebih dari sebuah perangkat peripheral. Modul I/O juga dapat mengirimkan sinyal interrupt.
* Sistem BUS

Pengertian dari Bus sendiri adalah sebuah saluran penghubung atau media transfer data atau listrik antara  dua atau lebih komponen-komponen komputer. Sebuah Bus juga memiliki perbedaan dalam menghubungkan komponen komputer salah satunya Bus yang menghubungkan komponen utama komputer disebut Bus System.
Fungsi BUS Dalam Transfer Data Antar Komponen KOmmputer :
1.     Data atau program yang tersimpan dalam memori dapat diakses dan dieksekusi CPU melalui perantara bus.
2.     Melihat hasil eksekusi melalui monitor juga menggunakan sistem bus.
3.     Kecepatan komponen penyusun komputer harus diimbangi kecepatan dan manajemen bus yang baik.
Sistem Interkoneksi direalisasikan dengan BUS dengan karakteristik sebagai berikut :
  • Merupakan saluran bersama (share) yang menghubungkan 2 atau lebih modul penyusun sistem komputer. 
  • Bersifat broadcast , 1 modul yang sedang menjadi sumber data dapat memberikan datatersebut ke seluruh modul lainnya.
  • Harus dipastikan, pada 1 saat hanya ada 1 modul yang menjadisumber data, meletakkan data pada share BUS tersebut.
  •  Umumnya terdiri dari 50 sampai 100 jalur, yaitu :
    • Address information (address bus) menentukan asal/tujuan transfer data» ukurannya menentukan kapasitas data pada sistem.
    • Data information (data bus)  ukurannya menentukan unjuk kerja secara umumControl information.
    • Kendali untuk address dan data bus Lain- lain seperti : power ground ,clock .

* Application I/O Interface
      Merupakan suatu mekanisme untuk mempermudah pengaksesan, sehingga sistem operasi melakukan standarisasi cara pengaksesan peralatan I/O.  Interface aplikasi I/O melibatkan abstraksi, enkapsulasi, dan software layering. Device driver mengenkapsulasi tiap-tiap peralatan I/O ke dalam masing-masing 1 kelas yang umum (interface standar). Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan  perbedaan-perbedaan yang ada pada device controller dari subsistem I/O pada  kernel. Karena hal ini, subsistem I/O dapat bersifat independen dari hardware. Beberapa hal yang berhubungan dengan
Application I/O Interface adalah:
1.      Peralatan Block dan Karakter:
  • Perangkat Block termasuk disk drive
  • Perintah termasuk baca, tulis dan cari
  • Raw I/O atau akses file-sistem
  • Pemetaan memori untuk pengaksesan file
  • Perangkat karakter termasuk keyboad, mouse dan serial port
  • Perintahnya seperti get, put
  • Library layered  dalam proses pengeditan
  • Peralatan Jaringan
2.      Adanya perbedaan pengalamatan dari jaringan I/O, maka sistem operasi memiliki interface I/O yang berbeda dari baca, tulis dan pencarian pada disk. Salah satu yang banyak digunakan pada sistem operasi adalah interface socket. Socket berfungsi untuk menghubungkan komputer ke jaringan. System call pada socket interface dapat memudahkan suatu aplikasi untuk membuat local  socket, dan menghubungkannya ke remote socket.Dengan menghubungkan komputer ke socket, maka komunikasi antar komputer dapat dilakukan.

3.      Jam dan Timer
Jam dan timer pada hardware komputer, memiliki tiga fungsi : 
  • memberi informasi waktu saat ini
  • memberi informasi lamanya waktu sebuah proses
  • sebagai trigger untuk suatu operasi pada suatu waktu. 
Fungsi ini sering digunakan oleh sistem operasi. Akan tetapi, system call untuk pemanggilan fungsi  ini tidak di-standarisasi antar sistem operasi. Hardware yang mengukur waktu dan melakukan operasi trigger dinamakan programmable interval timer yang dapat di set untuk menunggu waktu tertentu dan kemudian melakukan interupsi.