Semua mikrokontroler menggunakan satu diantara dua model rancangan yang dinamakan arsitektur Harvard dan von-Neumann. Berikut secara singkat, perbedaan keduanya dilihat dari pertukaran data antara CPU dan memori.

Arsitektur von-Neumann

Mikrokontroler yang menggunakan arsitektur ini hanya memiliki satu blok memori dan satu bus data 8-bit. Karena pertukaran data semuanya menggunakan 8 jalur ini, bus akan overload dan komunikasi menjadi sangat lambat dan tidak efisien. Sebaliknya CPU dapat membaca instruksi atau baca/tulis data dari/ke memori. Keduanya tidak dapat terjadi secara bersamaan karena data dan instruksi menggunakan sistem bus yang sama. Misalnya, jika sebuah baris program memerintahkan register memori RAM dengan nama “SS” harus dinaikkan satu (misalnya menggunakan instruksi: inc SS), maka mikrokontroler akan melakukan:

  1. Baca bagian dari instruksi program yang menyatakan APA yang harus dilakukan (dalam kasus ini adalah instruksi “inc” untuk perintah kenaikkan);
  2. Baca lebih lanjut dari instruksi ini yang menyatakan data YANG MANA yang akan dinaikkan (alam kasus ini adalah register “SS”);
  3. Setelah dinaikkan, isi dari register ini harus dituliskan kembali ke register yang sebelumnya telah dibaca (alamat register “SS”).

Bus data yang sama digunakan untuk keseluruhan operasi ini…

Arsitektur Harvard

Mikrokontroler yang menggunakan arsitektur ini memiliki dua bus yang berbeda. Satu bus 8-bit dan menghubungkan CPU ke RAM. Yang lain terdiri dari beberapa jalur (12, 14 atau 16) dan menghubungkan CPU ke ROM. Dengan demikian, CPU dapat membaca instruksi dan mengakses memori data pada saat yang bersamaan. Karena semua register memori RAM lebarnya 8-bit, semua pertukaran data dalam mikrokontroler menggunakan format yang sama, sehingga selama eksekusi penulisan data, hanya 8-bit yang diperhatikan. Dengan kata lain, yang perlu Anda perhatikan saat merancang program adalah lebar data yang bisa dipertukarkan atau diproses hanya selebar 8-bit, ya hanya selebar 8-bit saja.

Program yang Anda buat untuk beberapa mikrokontroler ini akan tersimpan di dalam ROM internal (Flash ROM) setelah dilakukan kompilasi ke bahasa mesin. Lokasi memori ini dinyatakan dalam 12, 14 atau 16-bit. Sebagian dari bit, 4, 6 atau 8-bit digunakan sebagai instruksinya sendiri dan diikuti dengan data 8-bit.

Kelebihan-kelebihan:

  • Semua data di dalam program selebar 1 byte (8-bit). Karena bus data yang digunakan dalam pembacaa program memiliki beberapa jalur (12, 14 atau 16), instruksi dan data dapat dibaca dibaca sekaligus. Dengan demikian, semua instruksi dapat dieksekusi hanya dengan satu siklus instruksi, kecuali instruksi lompat (jump) yang dieksekusi dalam dua siklus.
  • Kenyataan bahwa program (ROM) dan data sementara (RAM) terpisah, CPU dapat mengeksekusi dua instruksi sekaligus. Gampangnya, selama proses pembacaan dan penulisan RAM (akhir dari suatu instruksi), instruksi berikutnya dibaca melalui bus yang lain.
  • Jika menggunakan mikrokontrole menggunakan arsitektur Von-Neumann kita tidak bisa tahu seberapa banyak memori yang dibutuhkan oleh beberapa instruksi. Pada dasarnya, masing-masing instruksi program membutuhkan dua lokasi memori (satu mengandung instruksi APA yang harus dilakukan, sedangkan sisanya mengandung informasi data YANG MANA akan diproses).

Pada mikrokontroler dengan arsitektur Harvard, bus program biasanya lebih dari 1 byte, yang membolehkan masing-masing word mengandung instruksi dan data, dengan kata lain satu word - satu instruksi.

Ingin belajar mikrokontroler? Mengapa tidak baca saja buku saya “Belajar Mikrokontroler AT89C51/52/55: Teori dan Aplikasi Edisi 2“, Terbitan CV. Gava Media - Best Seller! (informasi lebih lanjut).

Semoga bermnafaat!

Tags: ,

One Response to “Mikrokontroler: Arsitektur Von-Neumann vs. Harvard”

Trackbacks/Pingbacks

  1. Memulai Belajar Mikrokontroler - Quick, Easy and Harmless! | DSP & Embedded Electronics

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>