Ada dua kelas utama dari arsitektur komputer, yaitu ‘arsitektur Havard’ dan ‘arsitektur Von Neumann (atau Princeton).
Arsitektur Harvard
- 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 diperlukan multiplexing alamat dan bus data.
- Arsitektur ini tidak hanya didukung dengan bus paralel untuk alamat dan data, tetapi juga menyediakan organisasi internal yang berbed 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.
Arsitektur Von Neumann
- 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.
- 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
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
- · 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.
- · 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).
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.

