Monday, July 06, 2009

von Neumann Architecture

Komputer modern yang umum digunakan sekarang ini, termasuk (kemungkinan besar) komputer yang anda gunakan untuk membaca tulisan ini, dibangun berdasarkan ide yang diajukan oleh seorang pemikir besar bernama John von Neumann. Dia, bersama beberapa tokoh lain, dianggap sebagai the founding fathers dari Ilmu Komputer. Tanpa kontribusi pemikiran beliau, kita tak akan mengenal yang namanya internet, Black Berry, atau Hot Spot.

Sebuah komputer, menurut von Neumann, terdiri atas tiga komponen utama. Ketiga komponen ini disusun sedemikian rupa dalam sebuah susunan yang dikenal dengan nama Arsitektur von Neumann. Ketiga komponen tersebut adalah:
  1. Processing Unit
  2. Memory
  3. I/O device
Ketiga komponen tersebut disusun sehingga komponen Memory terletak di antara Processing Unit dan I/O device. Setiap komputer modern yang digunakan saat ini, harus memiliki ketiga komponen tersebut. Jika salah satu komponen tidak ada, maka komputer tidak dapat digunakan.

Processing Unit tidak lain adalah perangkat keras yang sering kita kenal sehari-hari dengan istilah CPU atau Prosesor. Mereknya macam-macam, yang sering kita dengar antara lain Intel, AMD, Motorola. Beberapa perusahaan lain juga membuat prosesor khusus, seperti prosesor-prosesor yang digunakan dalam perangkat bergerak (mobile devices) seperti telepon genggam dan, yang terkenal sekarang ini, BlackBerry.

Ya, telepon genggam sebetulnya adalah komputer juga, dan menggunakan arsitektur von Neumann.

Tanpa CPU, kita tak bisa menggunakan komputer. Kita katakan CPU adalah 'otak' komputer. Tanpa 'otak' fungsi-fungsi komputer tentu saja tak akan berjalan, seperti manusia tanpa kepala.

I/O devices memiliki bentuk bermacam-macam. Sifatnya juga ada yang wajib dan ada yang merupakan tambahan. Perangkat masukan-luaran yang umum kita temui sekarang adalah papan bidai (keyboard), tetikus (mouse), dan layar monitor. Ketiga perangkat ini wajib ada. Tanpa mereka, walaupun komputer sudah dilengkapi CPU dan memori, tak ada yang bisa kita lakukan.

Bayangkan jika anda punya komputer, lengkap dengan papan bidai dan tetikus, tapi layar monitornya tak ada. Atau layar monitornya ada, tapi papan bidainya rusak. Tetikus mungkin tidak terlalu penting, tapi kebanyakan sistem operasi sekarang membuat tetikus sebagai sebuah perangkat masukan-luaran yang cenderung menjadi wajib sifatnya.

Perangkat masukan-luaran yang lain sifatnya pilihan (optional), artinya boleh ada boleh juga tidak ada. Kalau ada lebih bagus.

Bayangkan kalau anda punya komputer baru, sudah terpasang dengan sistem operasi dengan tampilan bagus, tapi tak bisa ditambah dengan perangkat lunak baru karena tidak punya CDROM drive. Mungkin anda masih punya pilihan untuk mengunduh perangkat lunak yang anda perlukan melalui internet. Jika begitu halnya, perangkat masukan-luaran seperti WiFi dan modem CDMA menjadi wajib.

Perangkat yang lain seperti pencetak (printer), boleh ada boleh tidak. Tentu lebih bagus jika anda memiliki satu buah alat pencetak, supaya apa-apa yang anda kreasikan dengan komputer dapat dilihat hasilnya. Kalau membeli alat pencetak terlalu mahal, mungkin anda bisa pinjam atau menyewa di warnet.

Komponen ketiga, Memory, juga tak kalah penting. Seperti saya tulis tadi, komponen ini merupakan komponen yang menghubungkan antara Processing Unit dengan I/O Device. Memory dapat dilihat sebagai sebuah rangkaian cell yang bersebelahan satu sama lain (contiguous). Setiap cell dapat menampung sejumlah informasi, biasanya dihitung dalam satuan byte. Satu byte tersusun atas delapan (8) digit informasi biner. Sejatinya, di dalam memory komputer, informasi biner ini mewujud dalam bentuk aliran arus listrik.

Peran penting Memory dapat terlihat ketika sebuah program dijalankan di dalam komputer. Sebuah program, dalam pandangan von Neumann, hanya dapat dijalankan jika program tersebut ada di dalam memory (RAM). Siapa yang menjalankannya? CPU.

CPU komputer manapun, dari waktu ke waktu hanya melakukan tiga operasi dasar dan sederhana:
  • Fetch
  • Decode
  • Execute
Ketika CPU melakukan operasi fetch, satu byte instruksi dari memory disalin ke Arithmetic Logical Unit (ALU). Setelah itu CPU melakukan operasi decode, yaitu menginterpretasikan jenis operasi apa yang terkandung di dalam instruksi tersebut. Setelah mengetahui jenis instruksinya, CPU kemudian meng-execute instruksi tersebut.

Selesai melakukan operasi execute, CPU kembali ke siklus fetch, namun kali ini CPU mengambil instruksi berikutnya dari memory. Proses ini terjadi berulang kali terus menerus selama komputer belum dimatikan.

Seringkali ketika kita membeli komputer baru, terdapat informasi kecepatan prosesor komputer tersebut, misalnya 2,6GHz. Nilai ini menunjukkan bahwa prosesor tersebut mampu melakukan siklus fetch-decode-execute sebanyak 2,6 milyar kali dalam satu detik.

Setiap merek CPU memiliki jenis instruksinya masing-masing, yang disebut sebagai instruction set, sering disebut juga dengan bahasa mesin (machine language). Instruction set prosesor Intel tidak sama dengan instruction set prosesor Motorola.

Dalam tulisan selanjutnya akan saya bahas sebuah contoh instruction set yang digunakan oleh sebuah komputer 'mainan'. Instruction set ini disebut dengan bahasa SML.

No comments:

Post a Comment