Arsitektur Komputer Von Noumann dan Harvard
Sejak Intel mengeluarkan seri 4004 sekitar tahun 1970 dikenal ada dua
jenis arsitektur mikroprosesor dilihat dari cara penggunaan memorinya.
Jauh sebelum ini, pada tahun 1944 Howard Aiken dari Harvard University
bekerja sama dengan engineer IBM maaaembuat 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. Belakangan baru diketahui bahwa sebelumnya pada tahun 1941 Konrad
Zuse dari 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. Waktu 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.
Dari dulu hingga saat ini konsep dasar dari komputer yang
dikendalikan oleh program sekuensial masih sama, yaitu terdiri dari CPU,
Memori dan I/O (input-output). CPU (Central Processing Unit) sendiri
terdiri dari blok unit control dan ALU (Aritmathic Logic Unit). Konsep
dasarnya semua sama, tetapi kemudian adalah bagaimana implementasi dan
realisasinya. Desainer dan pabrik mikroprosesor membuatnya dengan
arsitektur yang berbeda-beda.
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.
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 Komputer Von Noumann
LDAA $4000 ; A <– $4000
Pada dasarnya komputer arsitektur Von Neumann adalah terdiri dari elemen sebagai berikut:
Prosesor, merupakan pusat dari kontrol dan pemrosesan instruksi pada komputer.ü
Memori, digunakan untuk menyimpan informasi baik program maupun data.ü
ü Perangkat input-output, berfungsi sebagai m
edia yang menangkap respon dari luar serta menyajikan informasi keluar sistem komputer.
edia yang menangkap respon dari luar serta menyajikan informasi keluar sistem komputer.
Model kerja dari arsitektur dasar Von Neumann dapat dilihat pada
Gambar 1. Pada gambar tersebut prosesor terdiri atas Unit Kontrol (CU)
dan Unit Logika dan Aritmatik (ALU). Memori berfungsi sebagai tempat
menyimpan instruksi yang sedang dijalankan oleh prosesor, lalu hasilnya
dapat disajikan melalui perangkat input/output.
Prosesor atau Central Processing Unit (CPU)
CPU merupakan tempat untuk melakukan pemrosesan instruksi-instruksi dan pengendalian sistem komputer.
Perkembangan perangkat CPU mengikuti generasi dari sistem komputer.
Pada generasi pertama CPU terbuat dari rangkaian tabung vakum
sehingga memiliki ukuran yang sangat besar. Pada generasi kedua telah
diciptakan transistor sehinga ukuran CPU menjadi lebih kecil dari
sebelumnya. Pada generasi ketiga CPU telah terbuat dari rangkaian IC
sehingga ukurannya menjadi lebih kecil. Pada generasi keempat telah
diciptakan teknologi VLSI dan ULSI sehingga memungkinkan ribuan sampai
jutaan transistor tersimpan dalam satu chip.
o Control Unit (CU).
Control Unit atau Unit Kontrol berfungsi untuk mengatur dan
mengendalikan semua peralatan yang ada pada sistem komputer. Unit
kendali akan mengatur kapan alat input menerima data dan kapan data
diolah serta kapan ditampilkan pada alat output.
Unit ini juga mengartikan instruksi-instruksi dari program komputer,
membawa data dari alat input ke memori utama, dan mengambil data dari
memori utama untuk diolah.
Bila ada instruksi untuk perhitungan aritmatika atau perbandingan
logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil
dari pengolahan data dibawa oleh unit kendali ke memori utama lagi
untuk disimpan, dan pada saatnya akan disajikan ke alat output.
o Arithmatic and Logic Unit (ALU).
Arithmatic and Logic Unit atau Unit Aritmetika dan Logika berfungsi
untuk melakukan semua perhitungan aritmatika (matematika) dan logika
yang terjadi sesuai dengan instruksi program. ALU menjalankan operasi
penambahan, pengurangan, dan operasi-operasi sederhana lainnya pada
input-inputnya dan memberikan hasilnya pada register output.
o Register
Register merupakan alat penyimpanan kecil yang mempunyai kecepatan
akses cukup tinggi, yang digunakan untuk menyimpan data dan instruksi
yang sedang diproses, sementara data dan instruksi lainnya yang menunggu
giliran untuk diproses masih disimpan di dalam memori utama. Setiap
register dapat menyimpan satu bilangan hingga mencapai jumlah maksimum
tertentu tergantung pada ukurannya. Register-register dapat dibaca dan
ditulis dengan kecepatan tinggi karena berada pada CPU.
Beberapa jenis register adalah:
Program Counter (PC), merupakan register yang menunjuk ke instruksi berikutnya yang harus diambil dan dijalankan.ü
Instruction Register (IR), merupakan register yang menyimpan
instruksi yang sedang dijalankan. General Purpose Register, merupakan
register yang memiliki kegunaaan umum yang berhubungan dengan data yang
diproses.ü
ü Memory Data Register (MDR), merupakan register yang digunakan untuk
menampung data atau instruksi hasil pengiriman dari memori utama ke CPU
atau menampung data yang akan direkam ke memori utama dari hasil
pengolahan oleh CPU.
Memory address register (MAR), merupakanü register yang digunakan
untuk menampung alamat data atau instruksi pada memori utama yang akan
diambil atau yang akan diletakkan.
Sebagianü besar komputer memiliki beberapa register lain, sebagian
digunakan untuk tujuan umum, dan sebagian lainnya untuk tujuan khusus.
o Bus
Bus merupakan penghubung antara semua komponen CPU. Bus berupa
sekumpulan kabel-kabel paralel untuk mentransmisikan alamat (address),
data, dan sinyal-sinyal kontrol.
Kelebihan dan Kelemahan
Keuntungan lain dengan arrrsitektur 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. Sebagai contoh, 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 walhasil eksekusi instruksi
dapat menjadi relatif lebih lama.
Arsitektur Komputer 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/write dari/ke memori data (RAM). Karena pengalamatan ROM dan RAM yang terpisah, ini memungkinkan CPU untuk melakukan overlaping pada 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 fetching instruksi yang ke-dua dan seterusnya. Ini yang disebut dengan sistem pipeline, sehingga program keseluruhan dapat dijalankan relatif lebih cepat.Arsitektur Harvard
prinsip pipeline
Pada arsitektur Harvard, lebar bit memori program tidak mesti 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 operand dapat 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
bisa memiliki CPI yang kecil. PICXX dari Microchip dikenal sebagai
mikroprosesor yang memiliki 1 siklus mesin (machine cycle) untuk tiap
instruksinya, kecuali instruksi percabangan.
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
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.
Kelebihan dan Kekurangan
Dari segi kapasitas memori, tentu 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.
Tetapi ada juga kekurangannya, 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. Tetapi instruksi itu
keseluruhannya menjadi program yang lebih panjang seperti contoh program
dengan 80C51 berikut ini.
MOV DPTR,#4000 ;DPTR = $4000
CLR A ;@A = 0
MOVC A,@A+DPTR ;A <– (DPTR+@A)
Urutan program di atas adalah :
- load/isi data pointer dengan #4000
- set accumulator A = 0 sebagai offset
- load/isi accumulator A dengan data di alamat 4000+offset
Bandingkan dengan instruksi 68HC11 yang cukup dengan satu instruksi LDAA $4000.
Perbedaan Von Noumann dan Harvard
Arsitektur Harvard dan Von Neuman keduanya memiliki kelebihan
sekaligus juga kekurangan. Dalam memilih prosesor tentu saja tidak hanya
dengan mempertimbangkan arsitekturnya. Motorola dengan varian
singlechip-nya ada yang dilengkapi dengan konventer A/D dan D/A, PWM
control, port I/O, EEPROM dan sebagainya. Tetapi tidak ketinggalan juga
keluarga Intel 80C51 dan klonnya, memperkenalkan bus serial I2C yang
sangat praktis untuk penambahan devais eksternal. Intel based MCS-51
adalah arsitektur yang paling banyak diadopsi misalnya oleh Philips dan
Atmel, sehingga kompatibilitas diantaranya semakin besar.
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.
0 komentar:
Posting Komentar