RSS

Arsitektur Von Neumann & Harvard

19 Okt

Sejak Intel mengeluarkan seri 4004 sekitar tahun 1970 dikenal ada dua jenis arsitektur mikroprosesor dilihat dari cara penggunaan memorinya. Pada tahun 1944 Howard Aiken dari Harvard University bekerja sama dengan engineer IBM membuat mesin electromechanical yang terbuat dari banyak sekali transistor tabung dan relay. Mesin ini dikenal sebagai komputer pertama di dunia yang diberi nama Harvard Mark I. Pada tahun 1941 Konrad Zusedari Jerman sudah membuat mesin yang dapat diprogram dan bekerja dengan sistem biner. Namun karena Jerman kala itu terisolasi saat perang dunia ke-II, Harvard Mark I diyakini sebagai komputer pertama yang memakai prinsip digital.

Mesin Harvard ini tidak lain adalah mesin kalkulator yang dikendalikan oleh pita kertas yang berisi instruksi. Saat itu belum terpikirkan konsep komputer yang memakai memori. Hanya sebelumnya Alan Turing seorang ahli matematika Inggris pada tahun 1939 mengemukanan konsep mesin universal (universal machine). Hampir satu dekade kemudian pada tahun 1945, Dr. John von Neumann ahli matematika yang lahir di Budapest Hongaria, membuat tulisan mengenai konsep komputer yang menurutnya penting untuk menyimpan instruksi dan data pada memori. Sehingga mesin komputer ini dapat bekerja untuk berbagai keperluan.

Arsitektur Von Neumann

Arsitektur Von Neumann adalah arsitektur komputer yang menempatkan program (ROM=Read Only Memory) dan data (RAM=Random Access Memory) dalam peta memori yang sama. Arsitektur ini memiliki address dan data bus tunggal untuk mengalamati program (instruksi) dan data. Contoh dari mikrokontroler yang memakai arsitektur Von Neumann adalah keluarga 68HC05 dan 68HC11 dari Motorola.

Pada arsitektur tipe ini terdiri dari Unit ALU dan perangkat I/O.

  • ALU (Aritmathic and Logic Unit)

Unit ALU berfungsi untuk melakukan operasi perhitungan aritmatika (misal pengurangan dan penjumlahan) dan logika (misal logika AND dan OR) serta melakukan keputusan dari operasi logika sesuai dengan instruksi program. Fungsi-fungsi yang didefinisikan pada ALU adalah Add (penjumlahan), Addu (penjumlahan tidak bertanda), Sub (pengurangan), Subu (pengurangan tidak bertanda), and, or, xor, sll (shift left logical), srl (shift right logical), sra (shift right arithmetic), dan lain-lain.

  • Perangkat I/O  (Input-output)

Secara umum, terdapat beberapa jenis seperti device penyimpanan (disk, tape), transmission device (network card, modem), dan human-interface device (screen, keyboard, mouse). Device tersebut dikendalikan oleh instruksi I/O. Alamat-alamat yang dimiliki oleh device akan digunakan oleh direct I/O instruction dan memory-mapped I/O.

Peranti ini memiliki manajemen yang  beberapa fungsinya adalah  mengirimkan perintah ke perangkat I/O agar menyediakan layanan, Menangani interupsi perangkat I/O, menyediakan interface ke pemakai.

Dengan arsitektur Von Neuman prosesor tidak perlu membedakan program dan data. Prosesor tipe ini tidak memerlukan kontrol bus tambahan berupa pin I/O khusus untuk membedakan program dan data. Karena kemudahan ini, tidak terlalu sulit bagi prosesor yang berarsitektur Von Neumann untuk menambahan peripheral eksternal seperti A/D converter, LCD, EEPROM dan device I/O lainnya. Biasanya device eksternal ini sudah ada di dalam satu chips, sehingga prosesor seperti ini sering disebut dengan nama mikrokontroler (microcontroller).

Keuntungan lain dengan arsitektur Von Neumann adalah pada fleksibilitas pengalamatan program dan data. Biasanya program selalu ada di ROM dan data selalu ada di RAM. Arsitektur Von Neumann memungkinkan prosesor untuk menjalankan program yang ada didalam memori data (RAM). Misalnya pada saat power on, dibuat program inisialisasi yang mengisi byte di dalam RAM. Data di dalam RAM ini pada gilirannya nanti akan dijalankan sebagai program. Sebaliknya data juga dapat disimpan di dalam memori program (ROM).  Contohnya adalah data look-up-table yang ditaruh di ROM. Data ini ditempatkan di ROM agar tidak hilang pada saat catu daya mati. Pada mikroprosesor Von Neumann, instruksi yang membaca data look-up-table atau program pengambilan data di ROM, adalah instruksi pengalamatan biasa.

Misalnya pada mikrokontroler 8bit Motorola 68HC11 program itu ditulis dengan :

LDAA $4000 ; A <– $4000

Program ini adalah instruksi untuk mengisi accumulator A dengan data yang ada di alamat 4000 (ROM). Instruksi tersebut singkat hanya perlu satu baris saja. Pada prinsipnya, kode biner yang ada di ROM atau di RAM bisa berupa program dan bisa juga berupa data.

Arsitektur Von Neumann bukan tidak punya kelemahan, diantaranya adalah bus tunggalnya itu sendiri. Sehingga instruksi untuk mengakses program dan data harus dijalankan secara sekuensial dan tidak bisa dilakukan overlaping untuk menjalankan dua isntruksi yang berurutan. Selain itu bandwidth program harus sama dengan banwitdh data. Jika memori data adalah 8 bits maka program juga harus 8 bits. Satu instruksi biasanya terdiri dari opcode (instruksinya sendiri) dan diikuti dengan operand (alamat atau data). Karena memori program terbatas hanya 8 bits, maka instruksi yang panjang harus dilakukan dengan 2 atau 3 bytes. Misalnya byte pertama adalah opcode dan byte berikutnya adalah operand. Secara umum prosesor Von Neumann membutuhkan jumlah clock CPI (Clock per Instruction) yang relatif lebih banyak dan menghasilkan eksekusi instruksi dapat menjadi relatif lebih lama.

Arsitektur Harvard.

Arsitektur Harvard memiliki dua memori yang terpisah satu untuk program (ROM) dan satu untuk data (RAM). Intel 80C51, keluarga Microchip PIC16XX, Philips P87CLXX dan Atmel AT89LSXX adalah contoh dari mikroprosesor yang mengadopsi arsitektur Harvard.

Pada mikroprosesor yang berarsitektur Harvard, overlaping pada saat menjalankan instruksi bisa terjadi. Satu instruksi biasanya dieksekusi dengan urutan fetch (membaca instruksi ), decode (pengalamatan), read (membaca data), execute (eksekusi) dan write (penulisan data) jika perlu. Secara garis besar ada dua hal yang dilakukan prosesor yaitu fetching atau membaca perintah yang ada di memori program (ROM) dan kemudian diikuti oleh executing berupa read/writedari/ke memori data (RAM). Karena pengalamatan ROM dan RAM yang terpisah, ini memungkinkan CPU untuk melakukan overlapingpada saat menjalankan instruksi. Dengan cara ini dua instruksi yang beurutan dapat dijalankan pada saat yang hampir bersamaan. Yaitu, pada saat CPU melakukan tahap executing instruksi yang pertama, CPU sudah dapat menjalankan fetchinginstruksi yang ke-dua dan seterusnya. Ini yang disebut dengan sistem pipeline, sehingga program keseluruhan dapat dijalankan relatif lebih cepat.

Pada arsitektur Harvard, lebar bit memori program tidak harus sama dengan lebar memori data. Misalnya pada keluarga PICXX dari Microchip, ada yang memiliki memori program dengan lebar 12,14 atau 16 bits, sedangkan lebar data-nya tetap 8 bits. Karena bandwith memori program yang besar (16 bits), opcode dan operanddapat dijadikan satu dalam satu word instruksi saja. Tujuannya adalah supaya instruksi dapat dilakukan dengan lebih singkat dan cepat.

Kedua hal di atas inilah yang membuat prosesor ber-arsitektur Harvard dapat memiliki CPI yang kecil. PICXX dari Microchip dikenal sebagai mikroprosesor yang memiliki 1 siklus mesin (machine cycle) untuk tiap instruksinya, kecuali instruksi percabangan.

Dari segi kapasitas memori, arsitektur Harvard memberi keuntungan karena memori program dan data yang terpisah, maka kavling total memori program dan data dapat menjadi lebih banyak. Mikrokontroler 8bit Motorola 68HC05 memiliki peta memori 64K yang dipakai bersama oleh RAM dan ROM. Oleh sebab itu pengalamatan ROM dan RAM hanya dapat mencapai 64K dan tidak lebih, sedangkan pada mikrokontroler Intel keluarga 80C51 misalnya, memori program (ROM) dan memori data (RAM) masing-masing bisa mencapai 64K.

Kelemahan arsitektur Harvard adalah tidak memungkinkan untuk menempatkan data pada ROM. Hal ini terkesan tidak mungkin, tetapi arsitektur ini memang tidak memungkinkan untuk mengakses data yang ada di ROM. Namun hal ini bisa diatasi dengan cara membuat instruksi dan mekanisme khusus untuk pengalamatan data di ROM. Mikroprosesor yang memiliki instruksi seperti ini biasanya disebut ber-arsitektur Modified Harvard. Instruksi yang seperti ini dapat ditemukan pada keluarga MCS-51 termasuk Intel 80C51, P87CLXX dari Philips dan Atmel AT89LSXX. Tetapi instruksi itu keseluruhannya menjadi program yang lebih panjang.

Misalnya program dengan 80C51 sebagai berikut :

MOV DPTR,#4000 ;DPTR = $4000

CLR A ;@A = 0

MOVC A,@A+DPTR ;A <– (DPTR+@A)

Urutan dari program diatas adalah :

1. load/isi data pointer dengan #4000

2. set accumulator A = 0 sebagai offset

3. load/isi accumulator A dengan data di alamat 4000+offset

Lain halnya dengan contoh arsitektur Von Neumann 68HC11 yang cukup dengan satu instruksi LDAA $4000.

Baik Arsitektur Harvard dan Von Neuman keduanya memiliki kelebihan sekaligus juga kekurangan dalam implementasinya. Jika ditinjau dari kapasitas memori yang digunakan maka arsitektur Harvard lebih unggul karena memori untuk program dan data terpisah. Namun arsitektur Von Neumann memiliki fleksibilitas dalam pengalamatan program dan data yang memungkinkan prosesor untuk menjalankan program yang ada didalam memori data (RAM).

Iklan
 
Tinggalkan komentar

Ditulis oleh pada 19 Oktober 2011 in Belajar IT

 

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: