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:
- Baca bagian dari instruksi program yang menyatakan APA
yang harus dilakukan (dalam kasus ini adalah instruksi “inc” untuk
perintah kenaikkan);
- Baca lebih lanjut dari instruksi ini yang menyatakan
data YANG MANA yang akan dinaikkan (alam kasus ini adalah register “SS”);
- Setelah dinaikkan, isi dari register ini harus
dituliskan kembali ke register yang sebelumnya telah dibaca
Bus data yang sama digunakan untuk keseluruhan operasi ini…
Pada
arsitektur Von Neumann, program dan data dibagi pada ruang memori yang sama.
Arsitektur Von Neumann menyediakan fitur penyimpanan dan modifikasi program
secara mudah. Bagaimanapun, penyimpanan program tidak mungkin optimal dan
membutuhkan berbagai pengumpulan program dan data untuk membentuk instruksi.
Pengumpulan program dan data diselesaikan menggunakan time division
multiplexing yang akan berpengaruh pada performa mikrokontroler itu
sendiri. Salah satu contoh mikrokontroler yang menggunakan arsitektur Von
Neumann (princeton) adalah Motorola 68HC11.
Keuntungan arrrsitektur Von Neumann :
1. 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. Sebagai contoh, pada mikrokontroler 8bit Motorola 68HC11.
2. Dengan
arsitektur Von Neuman prosesor tidak perlu membedakan program dan data.
Prosesor tipe ini tidak memerlukan control 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 devais I/O lainnya.
Biasanya devais eksternal ini sudah ada di dalam satu chips, sehingga prosesor
seperti ini sering disebut dengan nama mikrokontroler (microcontroller).
Kelemahan Asrsitektur Von Neumann:
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 walhasil eksekusi instruksi dapat menjadi relatif
lebih lama.
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.
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 diperlukanmultiplexing 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 berbagai data sedang diambil dan dioperasikan.
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. Sebagai contoh, mikrokontroler 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.
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.
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).
Kekurangan :
Arsitektur Harvard tidak
memungkinkan untuk menempatkan data pada ROM. Kedengarannya aneh, 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
Perbedan Arsitektur Von Neumann dengan Arsitektur Harvard:
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.
Sebaliknya,
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. Kedua jenis arsitektur ini masing-masing memiliki keungulan
tetapi juga ada kelemahannya.Dengan arsitektur Von Neuman prosesor tidak perlu
membedakan program dan data. Prosesor tipe ini tidak memerlukan control 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
devais I/O lainnya. Biasanya devais eksternal ini sudah ada di dalam satu
chips, sehingga prosesor seperti ini sering disebut dengan nama mikrokontroler
(microcontroller).
http://fhanietnick.blogspot.com/2011/10/arsitektur-von-neumann-vs-harvard.html