Pages

Senin, 28 September 2015

Arsitektur Komputer Von Noumann dan Harvard

    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 membuat 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).
  1. Arsitektur Komputer Von Noumann


Arsitektur Von Neumann diciptakan oleh John von Neumann (1903 – 1957). Arsitektur Von Nuemann adalah komputer dengan program yangtersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori. Kunci utama arsitektur von Neumann adalah ControlProcessing Unit (CPU), yang memungkinkan selurug fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal



Arsitektur Von Neumann terdiri dari 3 elemen yaitu :


¤Prosesor, merupakan pusat dari kontrol dan pemrosesan instruksi pada komputer.
¤  Memori, digunakan untuk menyimpan informasi baik program maupun data.
¤  Perangkat input-output, berfungsi sebagai media yang menangkap respon dari luar serta menyajikan informasi keluar sistem komputer.

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.

Elemen CPU
¨  Pada perkembangan komputer modern, setiap prosesor terdiri atas:
¤Arithmetic and Logic Unit (ALU).
¤Register.
¤Control Unit (CU).
¤Bus.

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.
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.

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.
Bus
¨  Bus merupakan penghubung antara semua komponen CPU.
¨  Bus berupa sekumpulan kabel-kabel paralel untuk mentransmisikan alamat (address), data, dan sinyalsinyal kontrol.


Klasifikasi Prosesor

Berdasarkan jenis mikroprosesor:

¨  Tipe Intel untuk Personal Computer (PC), diproduksi oleh Intel Corp., Advanced Micro Devices (AMD), Cyrix, DEC, dll.
¨  Tipe Motorola untuk komputer Macintosh, diproduksi oleh Motorola.

Ukuran kecepatan prosesor adalah:

¨  Hertz, yaitu jumlah clock atau ketukan prosesor tiap satu detik. Untuk prosesor modern memakai satuan Megahertz atau Gigahertz.
¨  MIPS, singkatan dari Million Instruction Per Second, yaitu jumlah instruksi dalam juta tiap satu detik.
¨  Flops, singkatan dari Floating Point per Second, yaitu jumlah perhitungan floating point tiap satu detik. Floating point adalah metode untuk menuliskan bilangan dengan mantisa, contoh: 3 x 10-5.
¨  Fractions of a second, yaitu waktu eksekusi relatif dari suatu instruksi pada sistem komputer.


Dalam desain mikroprosesor, terdapat dua jenis desain, yaitu:
¨  CISC (Complex instruction set computing chips), dapat menampung banyak instruksi yang kompleks.
¨  RISC (Reduced instruction set computing chips), dapat meringkas beberapa instruksi sehingga dapat mempercepat kerja prosesor.


Jenis bus yang telah didukung oleh sistem komputer saat ini adalah:
¨  ISA, singkatan dari Industry Standard Architecture, merupakan jenis bus standar pertama yang digunakan industri. Bus ISA beroperasi pada kecepatan 8.33 MHz. Versi perkembangan dari ISA adalah EISA (Extended ISA).
¨  PCI, singkatan dari Peripheral Component Interconnect bus, merupakan jenis  bus yang dikembangkan dan dipatenkan oleh Intel pada tahun 1990. Versi pertama PCI beroperasi pada kecepatan 33 MHz dengan bandwidth 133 MB/dtk. PCI 2.0 diperkenalkan tahun 1993 dan PCI 2.1 tahun 1995 dengan bandwidth 528 MB/dtk.
¨  AGP, singkatan dari Accelerator Graphic Port, merupakan bus hasil perkembangan dari PCI yang dikhususkan untuk pemrosesan data grafik dan video.
¨  USB, singkatan dari Universal Serial Bus, pada awalnya dikembangkan secara bersama-sama oleh tujuh perusahaan, yaitu Compaq, DEC, IBM, Intel, Microsoft, NEC, dan Northern Telecom. Saat ini USB telah menjadi standar yang digunakan secara luas dalam Personal Computer


rsitektur Harvard



Arsitektur Harvard adalah arsitektur komputer dengan fisik terpisah penyimpanan dan sinyal jalur untuk instruksi dan data. Istilah ini berasal dari Harvard Mark I komputer berbasis relay, yang disimpan petunjuk pada pita menekan (24 bit lebar) dan data dalam counter elektro-mekanis. Mesin-mesin awal memiliki penyimpanan data seluruhnya terkandung dalam central processing unit , dan tidak memberikan akses ke penyimpanan instruksi sebagai data. Program perlu dimuat oleh operator; prosesor tidak bisa booting sendiri.
Saat ini, sebagian besar prosesor menerapkan jalur sinyal yang terpisah tersebut untuk alasan kinerja tetapi sebenarnya menerapkan arsitektur Harvard dimodifikasi , sehingga mereka dapat mendukung tugas-tugas seperti memuat program dari penyimpanan disk sebagai data dan kemudian dijalankan. 
Rincian memori
Dalam arsitektur Harvard, tidak perlu untuk membuat dua memori berbagi karakteristik. Secara khusus, kata lebar, waktu, penerapan teknologi, dan alamat memori struktur bisa berbeda. Dalam beberapa sistem, instruksi dapat disimpan dalam read-only memory sementara memori data umumnya memerlukan baca-tulis memori . Dalam beberapa sistem, ada lebih banyak memori instruksi dari memori data sehingga alamat instruksi yang lebih lebar dari alamat data.
Kontras dengan arsitektur von Neumann
Dalam murni arsitektur von Neumann yang CPU dapat berupa membaca instruksi atau data membaca / menulis dari / ke memori. Keduanya tidak dapat terjadi pada saat yang sama sejak instruksi dan data menggunakan sistem bus yang sama. Dalam komputer menggunakan arsitektur Harvard, CPU dapat baik membaca instruksi dan melakukan akses data memori pada saat yang sama, bahkan tanpa cache. Sebuah arsitektur komputer Harvard sehingga bisa lebih cepat untuk kompleksitas rangkaian diberikan karena instruksi menjemput dan akses data tidak bersaing untuk memori jalur tunggal.
Juga, mesin arsitektur Harvard memiliki kode dan data alamat ruang yang berbeda: Alamat instruksi nol tidak sama dengan data alamat nol. Alamat Instruksi nol mungkin mengidentifikasi nilai dua puluh empat bit, sedangkan data alamat nol mungkin menunjukkan byte delapan bit yang bukan bagian dari itu nilai dua puluh empat bit.
Kontras dengan modifikasi Harvard arsitektur
Arsitektur Harvard diubah mesin sangat banyak seperti mesin arsitektur Harvard, tetapi melemaskan pemisahan yang ketat antara instruksi dan data sementara masih membiarkan CPU secara bersamaan mengakses dua (atau lebih) bus memori. Modifikasi yang paling umum termasuk terpisah instruksi dan data cache yang didukung oleh address space yang sama. Sementara CPU mengeksekusi dari cache, ia bertindak sebagai mesin Harvard murni. Ketika mengakses memori dukungan, itu bertindak seperti mesin von Neumann (di mana kode dapat dipindahkan sekitar seperti data, yang merupakan teknik yang kuat). Modifikasi ini tersebar luas di prosesor modern seperti arsitektur ARM dan x86 prosesor. Kadang-kadang longgar disebut arsitektur Harvard, mengabaikan fakta bahwa itu benar-benar "diubah".
Modifikasi lainnya menyediakan jalur antara memori instruksi (seperti ROM atau flash) dan CPU untuk memungkinkan kata-kata dari memori instruksi harus diperlakukan sebagai read-only data. Teknik ini digunakan dalam beberapa mikrokontroler, termasuk Atmel AVR . Hal ini memungkinkan data konstan, seperti string teks atau tabel fungsi, untuk diakses tanpa terlebih dahulu harus disalin ke dalam memori data, melestarikan langka (dan haus kekuasaan) memori data untuk membaca / menulis variabel. Khusus instruksi bahasa mesin yang tersedia untuk membaca data dari memori instruksi. (Ini berbeda dari instruksi yang sendiri menanamkan data konstan, meskipun untuk konstanta individu dua mekanisme dapat menggantikan satu sama lain.)
Kecepatan
Dalam beberapa tahun terakhir, kecepatan CPU telah tumbuh berkali-kali dibandingkan dengan kecepatan akses memori utama. Perawatan harus diambil untuk mengurangi jumlah kali memori utama diakses untuk mempertahankan kinerja. Jika, misalnya, setiap instruksi dijalankan dalam CPU memerlukan akses ke memori, keuntungan komputer tidak untuk meningkatkan kecepatan CPU-masalah disebut sebagai "memori terikat".
Hal ini dimungkinkan untuk membuat memori yang sangat cepat tapi ini hanya praktis untuk sejumlah kecil memori untuk biaya, tenaga dan routing sinyal alasan. Solusinya adalah untuk menyediakan sejumlah kecil memori yang sangat cepat yang dikenal sebagai CPU cache yang menyimpan data yang baru diakses. Selama data yang perlu CPU dalam cache, kinerja yang jauh lebih tinggi daripada ketika cache harus mendapatkan data dari memori utama.
Internal vs eksternal desain
Kinerja tinggi desain chip CPU modern menggabungkan aspek kedua Harvard dan arsitektur von Neumann. Secara khusus, "tembolok split" versi arsitektur Harvard termodifikasi sangat umum. CPU memori cache dibagi menjadi cache instruksi dan data cache. Arsitektur Harvard digunakan sebagai CPU mengakses cache. Dalam kasus cache miss, bagaimanapun, data diambil dari memori utama, yang tidak secara resmi dibagi menjadi beberapa bagian instruksi dan data terpisah, meskipun mungkin memiliki kontroler memori yang terpisah digunakan untuk akses bersamaan ke RAM, ROM dan (NOR ) memori flash.
Jadi, sementara arsitektur von Neumann terlihat dalam beberapa konteks, seperti ketika data dan kode datang melalui memory controller yang sama, implementasi hardware keuntungan efisiensi dari arsitektur Harvard cache mengakses dan setidaknya beberapa memori akses utama.
Selain itu, CPU sering memiliki write buffer yang memungkinkan CPU melanjutkan setelah menulis ke daerah non-cache. The von Neumann sifat memori kemudian terlihat ketika instruksi ditulis sebagai data oleh CPU dan perangkat lunak harus memastikan bahwa cache (data dan instruksi) dan menulis penyangga disinkronisasi sebelum mencoba untuk menjalankan instruksi tersebut hanya ditulis.
Penggunaan modern dari arsitektur Harvard
Keuntungan utama dari Harvard murni Akses arsitektur-simultan lebih dari satu memori sistem-telah dikurangi oleh prosesor Harvard dimodifikasi menggunakan moderen cache CPU sistem. Relatif murni Harvard mesin arsitektur digunakan terutama dalam aplikasi di mana pengorbanan, seperti penghematan biaya dan tenaga dari menghilangkan cache, melebihi hukuman pemrograman dari menampilkan kode dan data alamat ruang yang berbeda.
  • Prosesor sinyal digital (DSP) umumnya mengeksekusi kecil, audio atau video algoritma pengolahan yang sangat optimal. Mereka menghindari cache karena perilaku mereka harus sangat direproduksi. Kesulitan mengatasi beberapa ruang alamat menjadi perhatian sekunder untuk kecepatan eksekusi. Akibatnya, beberapa DSP memiliki beberapa kenangan data dalam ruang alamat yang berbeda untuk memfasilitasi SIMD dan VLIW pengolahan. Texas Instruments TMS320 prosesor C55x, untuk satu contoh, memiliki beberapa bus data paralel (dua menulis, membaca tiga) dan satu instruksi bus.
  • Mikrokontroler ditandai dengan memiliki sejumlah kecil program ( flash memory ) dan data ( SRAM ) memori, tanpa cache, dan mengambil keuntungan dari arsitektur Harvard untuk kecepatan pemrosesan instruksi oleh bersamaan dan akses data. Penyimpanan terpisah berarti program dan kenangan data mungkin memiliki lebar bit yang berbeda, misalnya menggunakan 16-bit instruksi lebar dan 8-bit data yang lebar. Mereka juga berarti bahwa instruksi prefetch dapat dilakukan secara paralel dengan kegiatan lain. Contohnya termasuk, yang AVR oleh Atmel Corp dan PIC oleh Microchip Technology, Inc .
Bahkan dalam kasus ini, itu adalah umum untuk menggunakan instruksi khusus untuk memori program akses seolah-olah itu data untuk tabel-hanya membaca, atau untuk pemrograman ulang; prosesor tersebut yang dimodifikasi arsitektur Harvard prosesor.



Von Neumann vs Harvard
 
¨  Ada dua kelas utama dari arsitektur komputer, yaitu ‘arsitektur Havard’ dan ‘arsitektur Von Neumann (atau Princeton).
¨  Banyak desain khusus mikrokontroler dan DSP (Digital Signal Processor) menggunakan arsitektur Havard.


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 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.


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.






54
 
 


1 komentar: