Disusun Oleh :
4. FARHAN P. S. (151401078)
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.
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).
Pada dasarnya komputer arsitektur Von Neumann adalah terdiri dari elemen sebagai
berikut:
Prosesor, merupakan pusat dari kontrol dan pemrosesan instruksi pada 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.
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.
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.
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.
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.ü
o Bus
Bus merupakan penghubung antara semua komponen CPU. Bus berupa sekumpulan
kabel-kabel paralel untuk mentransmisikan alamat (address), data, dan sinyal-sinyal
kontrol.
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.
a. Prinsip Pipeline
1. Pengertian
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah kerja
secara bersama tetapi dalam tahap yang berbeda yang dialirkan secara kontinu pada
unit pemrosesan.
Dengan cara ini, maka unit pemrosesan selalu bekerja. Pada microprocessor yang
tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, baru instruksi
berikutnya dapat dilaksanakan. Sedangkan dalam microprocessor yang
menggunakan teknik pipeline, ketika satu instruksi sedangkan diproses, maka
instruksi yang berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi,
instruksi yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda.
Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.
Dengan penerapan pipeline ini pada microprocessor akan didapatkan
peningkatan dalam unjuk kerja microprocessor. Hal ini terjadi karena beberapa
instruksi dapat dilakukan secara parallel dalam waktu yang bersamaan. Secara
kasarnya diharapkan akan didapatkan peningkatan sebesar X kali dibandingkan
dengan microprocessor yang tidak menggunakan pipeline, apabila tahapan yang ada
dalam satu kali pemrosesan instruksi adalah X tahap. Karena beberapa instruksi
diproses secara bersamaan ada kemungkinan instruksi tersebut sama-sama
memerlukan resource yang sama, sehingga diperlukan adanya pengaturan yang
tepat agar proses tetap berjalan dengan benar. Sedangkan ketergantungan terhadap
data, bisa muncul, misalnya instruksi yang berurutan memerlukan data dari instruksi
yang sebelumnya. Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi
meminta untuk melompat ke suatu lokasi memori tertentu, akan terjadi perubahan
program counter, sedangkan instruksi yang sedang berada dalam salah satu tahap
proses yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program
counter.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam system
komputer. Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada
tingkat yang rendah, seperti pada instruksi yang dijaankan oleh microprocessor.
Teknik pipeline yang diterapkan pada microprocessor, dapat dikatakan sebuah
arsitektur khusus. Ada perbedaan khusus antara model microprocessor yang tidak
menggunakan arsitektur pipeline dengan microprocessor yang menerapkan teknik
ini.
Pada microprocessor yang tidak menggunakan pipeline, satu instruksi
dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan. Sedangkan
dalam microprocessoryang menggunakan teknik pipeline, ketika satu instruksi
sedangkan diproses, maka instruksi yang berikutnya juga dapat diproses dalam
waktu yang bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada
dalam tahap proses yang berbeda.
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.
Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi. Misalnya
sebuah microprocessor menyelesaikan sebuah instruksi dalam 4 langkah. Ketika
instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil untuk
diproses pada langkah 1 instruksi tersebut. Begitu seterusnya, ketika instruksi
pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan instruksi
ketiga masuk ke langkah 1.
Tahapan Pipeline :
● Mengambil instruksi dan membuffferkannya
● Ketika tahapn kedua bebas tahapan pertama mengirimkan instruksi yang
dibufferkan tersebut
● Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama
memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan
membuffferkan instruksi berikutnya .
Instruksi Pipeline:
Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja berbeda,
maka dimungkinkan untuk mengisi kekosongan kerja di komponen tersebut.
Sebagai contoh :
Instruksi 1: ADD AX, AX
Instruksi 2: ADD EX, CX
Dengan adanya pipeline dua instruksi selesai dilaksanakan pada detik keenam
(sedangkan pada kasus tanpa pipeline baru selesai pada detik kesepuluh). Dengan
demikian telah terjadi percepatan sebanyak 1,67x dari 10T menjadi hanya 6T.
Sedangkan untuk pengerjaan 3 buah instruksi terjadi percepatan sebanyak 2, 14
dari 15T menjadi hanya 7T.
Untuk kasus pipeline sendiri, 2 instruksi dapat dikerjakan dalam 6T(CPI = 3) dan
instruksi dapat dikerjakan dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat
dikerjakan dalam 8T (CPI =2). Ini berarti untuk 100 instruksi akan dapat
dikerjakan dalam 104T (CPI = 1,04). Pada kondisi ideal CPI akan bernilai 1.
Teknik perancangan pipeline mendekomposisikan sebarisan proses ke dalam
sub-sub proses atau segmen. Setiap stadium melakukan fungsi khusus dan
menghasilkan suatu output yang dikehendaki dengan segera.
Setiap stadium akan memuat suatu input latch, atau disebut juga register atau
buffer, yang diikuti oleh satu sirkuit pemrosesan. Sinyal clock dikoneksikan ke
masing-masing input latch.
Teknik perancangan pipeline mendekomposisikan sebarisan proses ke dalam sub-
subproses atau segmen. Setiap stadium melakukan fungsi khusus dan menghasilkan
suatuoutput yang dikehendaki dengan segera.
Setiap stadium akan memuat suatu input latch, atau disebut juga register atau
buffer, yang diikuti oleh satu sirkuit pemrosesan. Sinyal clock dikoneksikan ke
masing-masing input latch.
C. Permasalahan Di Dalam Instruksi Pipeline
1. Variasi waktu
Tidak semua tahapan memakan waktu yang sama. Artinya, kecepatan instruksi
pipelining ditentukan oleh tahap yang paling lambat.
2. Data Berbahaya ( Data Hazards)
Ketika beberapa instruksi dieksekusi secara parsial, masalah akan timbul jika
instruksi tersebut memiliki referensi data yang sama. Kita harus memastikan
bahwa instruksi selanjutnya tidak berusaha mengakses data lebih cepat dari
seharusnya.
3. Percabangan (Branch)
Masalah dalam percabangan adalah pipelining diperlambat oleh instruksi karena
kita tidak tahu cabang mana yang harus kita ikuti.
4. Jeda (Interupsi)
Interupsi harus berperan antar instruksi. Yaitu, ketika satu instruksi telah selesai
daninstruksi berikutnya belum dimulai. Dengan pipelining, instruksi berikutnya
biasanya dimulai sebelum instruksi yang sekarang telah selesai
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.
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.
CLR A ;@A = 0
MOVC A,@A+DPTR ;A <– (DPTR+@A)
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.
E. Kesimpulan
Arsitektur von Neumann adalah arsitektur yang diciptakan oleh John von
Neumann (1903-1957). Arsitektur ini digunakan oleh hampir semua komputer saat ini.
Dengan unit sederhana ini, sebuah software yang rumit, seperti software pengolah kata
Dapat dibuat. Arsitektur Von Neumann menyediakan fitur penyimpanan dan modifikasi
program secara mudah. Arsitektur von Neumann mempunyai program dan data daerah
memory yang sama. Model ini 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.
Arsitektur Harvard memiliki dua memori yang terpisah satu untuk program
(ROM) dan satu untuk data (RAM). Intel 80C51, keluarga Microchip, 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).
Jadi Perbedaan CISC dan RISC adalah kalau CISC mempunyai ukuran kode
kecil, kecepatan rendah, sedangkan RISC mempunyai ukuran kode besar, kecepatan
relative. CISC Termasuk intruksi kompleks multi-clock sedangkan RISC Single clock
hanya sejumlah kecil intruksi. CISC Transistor digunakan untuk menyimpan instruksi –
instruksi kompleks sedangkan RISC Transistor banyak di pakai untuk register register
memori.Pada CISC biasanya Penekanan pada perangkat keras sedangkan
RISC Penekanan pada perangkat lunak.
Saran