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