Kamis, 31 Maret 2016

Perkembangan Arsitektur CPU

CPU(Central Processing Unit) terdiri dari beberapa bagian yang berbeda yang saling berintegrasi dalam membentuk fungsinya secara bersamaan. Pada bagian ini akan dibahas perkembangan arsitektur CPU dari beberapa generasi yaitu generasi pra komputer yang akan diwakili oleh arsitektur mesin Analitis Babagge, generasi komputer pertama yang stored program yang diwakili oleh mesin Von Noumann, generasi komputer modern dan sebagainya.

PERKEMBANGAN ARSITEKTUR CPU

      1)      Arsitektur Mesin Analitis Babbage (1843)
Pada tahun 1843, seorang professor matematika dari Universitas Cambridge Inggris yang bernama Charles Babbage, menemukan suatu konsep pemrosesan data yang menjadi dasar kerja dan prototipe dari komputer-komputer jaman sekarang. Mesin tersebut dikenal dengan nama Babbage’s Analytical Engine.

        Babbage’s Analytical Engine

Mesin Analitis Babbage merupakan alat mekanis pertama yang mampu dipergunakan untuk menjalankan beberapa algoritma. Artinya mesin tersebut sudah dapat dipergunakan untuk berbagai keperluan. Programming mesin tersebut dilakukan langsung oleh seorang programmer yang pada waktu itu dilakukan oleh Ada Augusta Lovelace (penemu bahasa ADA sebagai bahasa pemrograman pertama di dunia).

Mesin Babbage memiliki empat blok utama dalam menjalankan fungsinya, yaitu :
  • Bagian penyimpanan, memuat 1000 Word yang masing-masing terdiri dari 50 digit desimal. Bagian tersebut digunakan untuk menyimpan operand-operand matematika dari suatu perhitungan.
  • Bagian pengolah, digunakan untuk melakukan pemrosesan data berdasarkan instruksi yang diberikan oleh kartu-kartu plong.
  • Bagian output, terdiri dari output tercatat dan output tercetak yang digunakan untuk menyimpan serta menampilkan hasil pengolahan. Salah satu kelemahan mesin ini yang bukan merupakan konsep komputer modern adalah bahwa mesin ini belum stored program atau tidak mampu menyimpan program secara tetap.
      2)      Arsitektur Von Neumann (1952)
Mesin Von Neumann dalam hal ini mewakili mesin komputer generasi pertama yang bersifat stored program. John Von Neumann adalah seorang ahli matematika dan anggota Institute of Advance Study di Princention New Jersey yang bekerja sama dengan H.H. Goldstine dan A.W. Binks mengajukan suatu makalah yang menyarankan bahwa dalam pembuatan komputer sebaiknya menggunakan angka binary. Konsep tersebut pada akhirnya menjadi tonggak sejarah dalam terciptanya komputer digital yang akhirnya membawa Neumann pada julukan “promoter of the stored program (software) concept”.


  Non Neumann dengan mesin kebanggannya

Rancangan dasar mesin yang diberi nama IAS ini adalah konsep Neumann yang menyatakan bahwa pemrograman komputer secara langsung dengan menggunakan banyak tombol dan kabel adalah sesuatu yang melelahkan, lambat dan tidak fleksibel. Untuk itu dia berpikiran bahwa sebuah program dapat diwakili dalam bentuk digital dan tersimpan secara tetap dalam memori komputer secara bersama-sama.

Dapat diketahui bahwa mesin Neumann memiliki lima bagian utama sebagai berikut :
  • Unit Input untuk membaca data dan instruksi yang diberikan.
  • Main Memory terdiri dari 4096 Word satu word memuat 40 bit biner.
  • Arithmetic Logic sebagai bagian yang berfungsi sebagai unit pemrosesan.
  • Control Unit sebagai pengendali kerja antar komponen arsitektur.
  • Unit Output untuk menampilkan hasil pengolahan data yang dilakukan ALU dan CU.

Dari arsitektur mesin tersebut terlihat bahwa mesin ini sudah memiliki bagian-bagian yang menjadi prototipe komputer modern yaitu Arithmetic Logic dan Control Unit yang merupakan bagian dari Central Processing Unit.

      3)      Arsitektur Mesin Komputer Modern (1980)
Arsitektur CPU komputer modern secara umum adalah
  • Arithmetic and Logic Unit (ALU) bertugas membentuk fungsi - fungsi pengolahan data komputer 
  • Control Unit bertugas mengontrol operasi CPU dan secara keseluruhan mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi - fungsi operasinya 
  • Registers adalah media penyimpan internal CPU yang digunakan saat proses pengolahan data
  • 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

FUNGSI CPU
  • Fungsi CPU adalah penjalankan program - program yang disimpan dalam memori utama dengan cara mengambil instruksi - instruksi, menguji instruksi tersebut dan mengeksekusinya satu persatu sesuai alur perintah
  • Proses Eksekusi Program adalah dengan mengambil pengolahan instruksi yang terdiri dari dua langkah, yaitu operasi pembacaan instruksi (fetch) dan operasi pelaksanaan instruksi (execute).
  • Siklus Fetch Eksekusi Program : CPU awalnya akan membaca instruksi dari memori,  lalu terdapat register dalam CPU yang berfungsi mengawasi dan menghitung instruksi selanjutnya, yang disebut Program Counter (PC), lalu PC akan menambah satu hitungannya setiap kali CPU membaca instruksi dan terakhir Instruksi - instruksi yang dibaca akan dibuat dalam register instruksi (IR).

AKSI-AKSI DI DALAM CPU
  • CPU - Memori, perpindahan data dari CPU ke memori dan sebaliknya.
  • CPU - I/0, perpindahan data dari CPU ke modul I/0 dan sebaliknya.
  • Pengolahan Data, CPU membentuk sejumlah operasi aritmatika dan logika terhadap data.
  • Kontrol, merupakan instruksi untuk pengontrolan fungsi atau kerja. Misalnya instruksi pengubahan urutan eksekusi. 

 SIKLUS INSTRUKSI DALAM CPU
  • Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi 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.

TENTANG INTERUPT
  • Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi dalam CPU kepada routine interupsi. Hampir semua modul (memori dan I/0) memiliki mekanisme yang dapat menginterupsi kerja CPU.
  • Tujuan interupsi secara umum untuk manajemen pengeksekusian routine instruksi agar efektif dan efisien antar CPU dan modul - modul I/0 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.

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

INTERUPSI GANDA
  • 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.
  • Prioritas bagi interupsi dan interrupt handler mengizinkan interupsi berprioritas lebih tinggi ditangani terlebih dahulu. Pedekatan ini disebut pengolahan interupsi bersarang.

INTERUPSI BERSARANG
  • Sistem memiliki tiga perangkat I/0: printer, disk, dan saluran komunikasi.
  • 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 modul 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.

      4)      Arsitektur RISC
RICS singkatan dari Reduced Instruction Set Computer. Merupakan bagian dari arsitektur mikroprosessor, berbentuk kecil dan berfungsi untuk mengeset instruksi dalam komunikasi diantara arsitektur yang lainnya. Reduced Instruction Set Computing (RISC) atau “Komputasi set instruksi yang disederhanakan” pertama kali digagas oleh John Cocke, peneliti dari IBM di Yorktown, New York pada tahun 1974 saat ia membuktikan bahwa sekitar 20% instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan kerjanya. Komputer pertama yang menggunakan konsep RISC ini adalah IBM PC/XT pada era 1980-an. Istilah RISC sendiri pertama kali dipopulerkan oleh David Patterson, pengajar pada University of California di Berkely.




RISC, yang jika diterjemahkan berarti “Komputasi Kumpulan Instruksi yang Disederhanakan”, merupakan sebuah arsitektur komputer atau arsitektur komputasi modern dengan instruksi-instruksi dan jenis eksekusi yang paling sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi, seperti komputer vektor.

Selain digunakan dalam komputer vektor, desain ini juga di implementasikan pada prosesor komputer lain, seperti pada beberapa mikroprosesor Intel 960, Itanium (IA64) dari Intel Corporation, Alpha AXP dari DEC, R4x00 dari MIPS Corporation, PowerPC dan Arsitektur POWER dari International Business Machine. Selain itu, RISC juga umum dipakai pada Advanced RISC Machine (ARM) dan StrongARM (termasuk di antaranya adalah Intel XScale), SPARC dan UltraSPARC dari Sun Microsystems, serta PA-RISC dari Hewlett-Packard.

Karakteristik RISC, yaitu :
  • 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.
  • 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.
  • Penggunaan mode pengalamatan sederhana, hampir sama dengan instruksi menggunakan pengalamatan register.
  • Penggunaan format-format instruksi sederhana, panjang instruksinya tetap dan disesuaikan dengan panjang word.

Beberapa Karakteristik-Karakteristik Eksekusi Instruksi, yaitu :

Salah satu evolusi komputer yang besar adalah evolusi bahasa pemprograman. Bahasa pemprograman memungkinkan programmer dapat mengekspresikan algoritma lebih singkat, lebih memperhatikan rincian dan mendukung penggunaan pemprograman terstruktur. Tetapi ternyata muncul masalah lain yaitu semantic gap, yaitu perbedaan antara operasi-operasi yang disediakan oleh HLL dengan yang disediakan oleh arsitektur komputer, ini ditandai dengan ke tidak efisienan eksekusi, program mesin yang berukuran besar dan kompleksitas kompiler.

Untuk mengurangi kesenjangan ini para perancang menjawabnya dengan arsitektur. Fitur-fiturnya meliputi set-set instruksi yang banyak, lusinan mode pengalamatan, dan statemen –statemen HLL yang diimplementasikan pada perangkat keras.

Operasi
Beberapa penelitian telah menganalisis tingkah laku program HLL (High Level Language). Assignment Statement sangat menonjol yang menyatakan bahwa perpindahan sederhana merupakan satu hal yang penting. Hasil penelitian ini merupakan hal yang penting bagi perancang set instruksi mesin yang mengindikasikan jenis instruksi mana yang sering terjadi karena harus didukung optimal.

Operand
Penelitian Paterson telah memperhatikan [PATT82a] frekuensi dinamik terjadinya kelas-kelas variabel. Hasil yang konsisten diantara program pascal dan C menunjukkan mayoritas referensi menunjuk ke variable scalar. Penelitian ini telah menguji tingkah laku dinamik program HLL yang tidak tergantung pada arsitektur tertentu. Penelitian [LUND77] menguji instruksi DEC-10 dan secara dinamik menemukan setiap instruksi rata-rata mereferensi 0,5 operand dalam memori dan rata-rata mereferensi 1,4 register. Tentu saja angka ini tergantung pada arsitektur dan kompiler namun sudah cukup menjelaskan frekuensipengaksesan operand sehingga menyatakan pentingnya sebuah arsitektur.

Procedure Calls
Dalam HLL procedure call dan return merupakan aspek penting karena merupakan operasi yang membutuhkan banyak waktu dalam program yang dikompalasi sehingga banyak berguna untuk memperhatikan cara implementasi opperasi ini secara efisien. Adapun aspeknya yang penting adalah jumlah parameter dan variabel yang berkaitan dengan prosedur dan kedalaman pensarangan (nesting).

      5)      Arsitektur CISC
Complex instruction-set computing atau Complex Instruction-Set Computer (CISC) “Kumpulan instruksi komputasi kompleks”) adalah sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam sebuah instruksi. Karakteristik CISC dapat dikatakan bertolak-belakang dengan RISC.

Sebelum proses RISC didesain untuk pertama kalinya, banyak arsitek komputer mencoba menjembatani celah semantik”, yaitu bagaimana cara untuk membuat set-set instruksi untuk mempermudah pemrograman level tinggi dengan menyediakan instruksi “level tinggi” seperti pemanggilan procedure, proses pengulangan dan mode-mode pengalamatan kompleks sehingga struktur data dan akses array dapat dikombinasikan dengan sebuah instruksi. Karakteristik CISC yg “sarat informasi” ini memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat.

Memang setelah itu banyak desain yang memberikan hasil yang lebih baik dengan biaya yang lebih rendah, dan juga mengakibatkan pemrograman level tinggi menjadi lebih sederhana, tetapi pada kenyataannya tidaklah selalu demikian. Contohnya, arsitektur kompleks yang didesain dengan kurang baik (yang menggunakan kode-kode mikro untuk mengakses fungsi-fungsi hardware), akan berada pada situasi di mana akan lebih mudah untuk meningkatkan performansi dengan tidak menggunakan instruksi yang kompleks (seperti instruksi pemanggilan procedure), tetapi dengan menggunakan urutan instruksi yang sederhana.

Istilah RISC dan CISC saat ini kurang dikenal, setelah melihat perkembangan lebih lanjut dari desain dan implementasi baik CISC dan CISC. Implementasi CISC paralel untuk pertama kalinya, seperti 486 dari Intel, AMD, Cyrix, dan IBM telah mendukung setiap instruksi yang digunakan oleh prosesor-prosesor sebelumnya, meskipun efisiensi tertingginya hanya saat digunakan pada subset x86 yang sederhana (mirip dengan set instruksi RISC, tetapi tanpa batasan penyimpanan/pengambilan data dari RISC). Prosesor-prosesor modern x86 juga telah menyandikan dan membagi lebih banyak lagi instruksi-instruksi kompleks menjadi beberapa “operasi-mikro” internal yang lebih kecil sehingga dapat instruksi-instruksi tersebut dapat dilakukan secara paralel, sehingga mencapai performansi tinggi pada subset instruksi yang lebih besar.

Karakteristik CISC, yaitu :
  • Sarat informasi memberikan keuntungan di mana ukuran program-program yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada saat itu (tahun 1960) menjadi jauh lebih hemat
  • Dimaksudkan untuk meminimumkan jumlah perintah yang diperlukan untuk mengerjakan pekerjaan yang diberikan. (Jumlah perintah sedikit tetapi rumit) Konsep CISC menjadikan mesin mudah untuk diprogram dalam bahasa rakitan.


      6)      Arsitektur Harvard
Arsitektur Havard menggunakan memori terpisah untuk program dan data dengan alamat dan bus data yang berdiri sendiri. Karena dua perbedaan aliran data dan alamat, maka tidak  diperlukan multiplexing  alamat dan bus data. Arsitektur ini tidak hanya didukung dengan bus paralel untuk alamat dan data, tetapi juga menyediakan organisasi internal yang  berbeda sedemikian rupa instruksi dapat diambil dan dikodekan ketika dan data, tetapi juga menyediakan organisasi internal yang  berbeda sedemikian rupa instruksi dapat lebih lanjut lagi, bus data bisa saja memiliki ukuran yang berbeda  dari bus alamat. Hal ini memungkinkan pengoptimalan bus data dan bus alamat dalam pengeksekusian instruksi yang cepat diambil dan dikodekan ketika berbagai data sedang diambil dan dioperasikan. Sebagai contoh, mikro kontroler Intel keluarga MCS-51 menggunakan arsitektur Havard karena ada perbedaan kapasitas memori untuk program dan data, dan bus terpisah (internal) untuk alamat dan data.  Begitu juga dengan keluarga PIC dari Microchip yang menggunakan arsitektur Havard.

      7)      Arsitektur Blue Gene
Blue Gene adalah sebuah arsitektur komputer yang dirancang untuk menciptakan beberapa superkomputer generasi berikut, yang dirancang untuk mencapai kecepatan operasi petaflop (1 peta = 10 pangkat 15), dan pada 2005 telah mencapai kecepatan lebih dari 100 teraflop (1 tera = 10 pangkat 12). Blue Gene merupakan proyek antara Departemen Energi Amerika Serikat (yang membiayai projek ini), industri (terutama IBM), dan kalangan akademi. Ada lima projek Blue Gene dalam pengembangan saat ini, di antaranya adalah Blue Gene/L, Blue Gene/C, dan Blue Gene/P.

Komputer pertama dalam seri Blue Gene. Blue Gene/L dikembangkan melalui sebuah “partnership” dengan Lawrence Livermore National Laboratory menghabiskan biaya AS$100 juta dan direncanakan dapat mencapai kecepatan ratusan TFLOPS, dengan kecepatan puncak teoritis 360 TFLOPS. Ini hampir sepuluh kali lebih cepat dari Earth Simulator, superkomputer tercepat di dunia sebelum Blue Gene. Pada Juni 2004, dua prototipe Blue Gene/L masuk dalam peringkat 500 besar superkomputer berada dalam posisi ke-4 dan ke-8.

Pada 29 September 2004 IBM mengumumkan bahwa sebuah prototipe Blue Gene/L di IBM Rochester (Minnesota) telah menyusul Earth Simulator NEC sebagai komputer tercepat di dunia, dengan kecepatan 36,01 TFLOPS, mengalahkan Earth Simulator yang memiliki kecepatan 35,86 TFLOPS. Mesin ini kemudian mencapai kecepatan 70,72.

Pada 24 Maret 2005, Departemen Energi AS mengumumkan bahwa Blue Gene/L memecahkan rekor komputer tercepat mencapai 135,5 TFLOPS. Hal ini dimungkinkan karena menambah jumlah rak menjadi 32 dengan setiap rak berisi 1.024 node komputasi. Ini masih merupakan setengah dari konfigurasi final yang direncanakan mencapai 65.536 node.

Pada 27 Oktober, 2005, Lawrence Livermore National Laboratory dan IBM mengumumkan bahwa Blue Gene/L sekali lagi telah menciptakan rekor dengan mengalahkan rekornya sendiri setelah mencapai kecepatan 280.6 TFLOPS.

REFRENSI :

https://kotakbukukata.wordpress.com/2015/06/16/artikel-perkembangan-arsitektur-komputer/. Diakses 30 Maret 2016. Dari kotakbukukata.wordpress.com.

nurfajria.staff.gunadarma.ac.id/Downloads/files/.../Arsitektur+CPU.pdf. Diakses 30 Maret 2016. Dari nurfajria.staff.gunadarma.ac.id.


Tidak ada komentar:

Posting Komentar