Sebagai
pionir era komputer digital, nama Harvard dan Von Neumann diadopsi untuk
menggambarkan dua tipe arsitektur mikroprosesor. Kedua arsitektur itu berbeda
pada cara penempatan memorinya dan dikenal dengan sebutan arsitektur Harvard
dan 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.
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.
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.
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. 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. 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.
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.
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 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
SUMBER : http://fhanietnick.blogspot.com/2011/10/arsitektur-von-neumann-vs-harvard.html
http://himaelektropnp.blogspot.com/2011/02/arsitektur-mikroprosesor-von-neuman-dan.html
Tidak ada komentar:
Posting Komentar