Senin, 06 Oktober 2014

Penjelasan Tentang Diagram Eksekusi



Eksekusi Instruksi (Instruction Execution)
Eksekusi instruksi meliputi langkah-langkah berikut :
a.  Penentuan alamat instruksi berikutnya yang akan dieksekusi
b.  Pengambilan  instruksi  dari  lokasi  yang  ditunjuk  tersebut,  kemudian
meletakkannya  di  register  instruksi  (Instruction  Register)  yang  terletak
berdampingan dengan Control Unit.
c.  Penterjemahan  (decode)  instruksi  untuk  mengetahui  operasi  apa  yang  harus
dilakukan.                                                          
d.  Kalkulasi alamat  operand (data yang akan dilibatkan dalam  operasi), kemudian
ambil operand tersebut.
e.  Melakukan operasi tertentu terhadap operand tersebut.
f.  Simpan hasilnya pada salah satu lokasi data, register atau memori.
g.  Pengecekan  terhadap  keberadaan  interupsi.  Jika  ada,  maka  eksekusi  instruksi
berikutnya ditunda dan operasi instruksi interupsi dimulai.


Gambar diatas memperlihatkan siklus instruksi yang secara garis besar terdiri dari
tahap  pengambilan  (fetch  cycle)  dan  tahap  eksekusi  (execution  cycle).  


Gambar  diatas  berisi  diagram  keadaan  (state  diagram  )  yang  merupakan  rincian  siklus
eksekusi instruksi.


  Gambar  diatas  memperlihatkan  contoh  siklus  eksekusi  sebuah  instruksi  yang
terdiri dari 6 tahap, yaitu :
1.  Karena  PC  (Program  Counter)  berisi  angka  300,  maka  instruksi  yang  akan
diambil  adalah  instruksi  yang  terletak  di  memori  alamat  300,  yaitu  instruksi
dengan kode 1940. Instruksi tersebut diambil dari memori kemudian disimpan di
register instruksi (Instruction Register).
2.  Misalkan kode 1940 merupakan instruksi dengan kode operasi (Operation Code,
opcode)  1,  diikuti  dengan  940  yang  merupakan  alamat  operand.  Opcode  1
berarti instruksi untuk mengcopy data dari alamat operand (dalam hal ini 940) ke
akumulator. Maka data yang terletak di alamat 940 dicopy ke accumulator untuk
diproses dalam siklus eksekusi ini.
3.  Setelah  itu  isi  PC  ditambah  satu  (incremented)  sehingga  isinya  menjadi  301.
Artinya,  instruksi  berikutnya  yang  harus  diambil  dari  memori  dan  dieksekusi
terletak  di  memori  alamat  301,  yaitu  instruksi  dengan  kode  5941.  Instruksi
tersebut mengandung opcode 5 dan alamat operand 941.
4.  Karena  5  berarti  penjumlahan  antara  isi  akumulator  dengan  isi  memori  yang
alamatnya  diberikan  di  sebelah  angka  5,  maka  isi  akumulator  dijumlahkan
dengan  isi  memori  alamat  941.  Kemudian  hasil  penjumlahannya  dikembalikan
ke akumulator.
5.  Setelah  PC  ditambah  satu,  maka  isinya  menjadi  302,  sehingga  instruksi
berikutnya yang diambil dari  memori adalah 2941, yaitu opcode 2 dan operand
941. 
6.  Arti 2941 adalah perintah untuk mengcopy isi akumulator ke memori alamat 941.

 

Minggu, 28 September 2014

Arsitektur Von Neumann



Istilah Von Neumann arsitektur, juga dikenal sebagai model Neumann Von atau arsitektur Princeton, berasal dari 1.945 komputer arsitektur deskripsi oleh matematikawan dan ilmuwan komputer John von Neumann awal dan lain-lain, Draft Pertama Laporan di EDVAC. ini menggambarkan arsitektur desain untuk komputer digital elektronik dengan subdivisi dari unit pengolahan yang terdiri dari unit aritmatika logika dan register prosesor, unit kontrol yang berisi register instruksi dan program counter, memori untuk menyimpan data dan instruksi, mass storage eksternal, dan input dan mekanisme keluaran arti dari istilah tersebut telah berkembang berarti sebuah komputer disimpan-program di mana instruksi mengambil dan operasi data yang tidak dapat terjadi pada saat yang sama karena mereka berbagi bus umum.. Hal ini disebut sebagai Von Neumann bottleneck dan sering membatasi kinerja sistem.
Desain sebuah arsitektur Von Neumann sederhana dari arsitektur Harvard yang lebih modern yang juga merupakan sistem disimpan-program tetapi memiliki satu set didedikasikan alamat dan bus data untuk membaca data dari dan menulis data ke memori, dan lain set alamat dan data bus untuk instruksi mengambil.
Sebuah komputer digital disimpan-program adalah salah satu yang membuat instruksi diprogram, serta data, dalam baca-tulis, random-access memory (RAM). Disimpan-program komputer itu merupakan kemajuan atas komputer program-dikendalikan dari tahun 1940-an, seperti Colossus dan ENIAC, yang diprogram dengan menetapkan switch dan memasukkan patch yang mengarah ke rute data dan mengontrol sinyal antara berbagai unit fungsional. Dalam sebagian besar komputer modern, memori yang sama digunakan untuk kedua data dan instruksi program, dan Von Neumann vs Harvard perbedaan berlaku untuk arsitektur tembolok, bukan memori utama.

Sejarah
Mesin-mesin komputasi awal memiliki program tetap. Beberapa komputer yang sangat sederhana masih menggunakan desain ini , baik untuk tujuan kesederhanaan atau pelatihan . Misalnya, kalkulator meja ( pada prinsipnya ) adalah program komputer tetap. Hal ini dapat melakukan matematika dasar , tetapi tidak dapat digunakan sebagai pengolah kata atau game konsol . Mengubah program mesin tetap program membutuhkan re - kabel , restrukturisasi , atau mendesain ulang mesin . Komputer awal tidak begitu banyak " diprogram " karena mereka " dirancang " . " Pemrograman Ulang " , ketika itu mungkin sama sekali , adalah proses melelahkan , dimulai dengan flowchart dan catatan kertas , diikuti oleh desain teknik rinci , dan kemudian proses sering sulit secara fisik kembali kabel dan membangun kembali mesin . Ini bisa memakan waktu tiga minggu untuk membuat program pada ENIAC dan membuatnya bekerja.
Dengan usulan dari komputer disimpan - program ini berubah . Sebuah komputer yang disimpan - program mencakup dengan desain set instruksi dan dapat menyimpan dalam memori satu set instruksi ( program ) yang detail perhitungan.
Sebuah desain yang disimpan - program yang juga memungkinkan untuk kode diri memodifikasi . Satu motivasi awal untuk fasilitas tersebut adalah perlunya program untuk kenaikan atau memodifikasi bagian alamat instruksi , yang harus dilakukan secara manual dalam desain awal . Hal ini menjadi kurang penting ketika register indeks dan tidak langsung menangani menjadi fitur biasa dari arsitektur mesin . Penggunaan lain adalah untuk menanamkan data yang sering digunakan dalam aliran instruksi menggunakan pengalamatan langsung . Self- memodifikasi kode sebagian besar jatuh dari nikmat , karena biasanya sulit untuk memahami dan debug , serta menjadi tidak efisien dalam prosesor modern yang pipelining dan cache skema.
Pada skala besar , kemampuan untuk mengobati instruksi sebagai data yang membuat perakit , compiler dan lainnya tool pemrograman otomatis mungkin. Satu dapat " menulis program yang menulis program " .  Pada skala yang lebih kecil , operasi I / O - intensif berulang seperti manipulasi gambar shader primitif atau pixel & vertex bitblt di grafis 3D modern, dianggap tidak efisien untuk berjalan tanpa hardware kustom . Operasi ini bisa dipercepat pada tujuan umum prosesor dengan " pada kompilasi fly " ( " kompilasi just-in -time " ) teknologi , misalnya , kode - menghasilkan program - satu bentuk kode memodifikasi diri yang tetap populer.
Ada kelemahan Neumann desain Von . Selain dari Von Neumann bottleneck dijelaskan di bawah ini , modifikasi program yang bisa sangat berbahaya, baik oleh kecelakaan atau desain. Dalam beberapa desain komputer yang disimpan - program sederhana , sebuah program rusak dapat merusak dirinya sendiri , program lain , atau sistem operasi , mungkin menyebabkan crash komputer . Perlindungan memori dan bentuk lain dari kontrol akses biasanya dapat melindungi terhadap kedua disengaja dan modifikasi program berbahaya.

Pengembangan konsep disimpan-program
Matematikawan Alan Turing , yang telah diperingatkan masalah logika matematika dengan ceramah dari Max Newman di University of Cambridge , menulis sebuah makalah pada tahun 1936 berjudul On Computable Numbers , dengan Aplikasi untuk Entscheidungsproblem , yang diterbitkan dalam Prosiding dari London Masyarakat matematika . Di dalamnya ia menggambarkan sebuah mesin hipotetis yang ia sebut " mesin komputasi universal" , dan yang sekarang dikenal sebagai " Universal Turing mesin " . Mesin hipotetis memiliki sebuah toko tak terbatas ( memori dalam terminologi saat ini ) yang mengandung kedua instruksi dan data . John von Neumann berkenalan dengan Turing sementara ia adalah seorang profesor tamu di Cambridge pada tahun 1935 , dan juga selama Turing PhD tahun di Institute for Advanced Study di Princeton , New Jersey selama 1936-1937 . Apakah dia tahu kertas Turing tahun 1936 pada waktu itu tidak jelas .
Pada tahun 1936 Konrad Zuse juga diantisipasi dalam dua aplikasi paten yang instruksi mesin dapat disimpan dalam penyimpanan yang sama digunakan untuk data .
Mandiri , J. Presper Eckert dan John Mauchly , yang mengembangkan ENIAC di Moore Sekolah Teknik Elektro , di Universitas Pennsylvania , menulis tentang konsep program yang disimpan pada bulan Desember 1943 .  Dalam perencanaan baru mesin , EDVAC , Eckert menulis pada Januari 1944 bahwa mereka akan menyimpan data dan program dalam perangkat memori beralamat baru , penundaan logam line memory merkuri . Ini adalah pertama kalinya pembangunan mesin disimpan-program praktis diusulkan . Saat itu, ia dan Mauchly tidak menyadari pekerjaan Turing .
Von Neumann terlibat dalam Proyek Manhattan di Los Alamos National Laboratory , yang membutuhkan jumlah besar perhitungan . Ini menarik dia untuk proyek ENIAC , selama musim panas tahun 1944 . Di sana ia bergabung ke dalam diskusi yang sedang berlangsung pada desain disimpan - program komputer ini , EDVAC . Sebagai bagian dari kelompok itu , ia mengajukan diri untuk menulis deskripsi dan menghasilkan Draft Pertama Laporan di EDVAC yang termasuk ide dari Eckert dan Mauchly . Itu belum selesai ketika rekannya Herman Goldstine beredar dengan nama saja von Neumann di atasnya , dengan kekhawatiran dari Eckert dan Mauchly . Makalah ini dibaca oleh puluhan rekan von Neumann di Amerika dan Eropa , dan mempengaruhi putaran berikutnya desain komputer .
Karena itu , Von Neumann tidak sendirian dalam mengembangkan ide dari arsitektur program yang disimpan , dan Jack Copeland menganggap bahwa itu adalah " historis tidak pantas , untuk merujuk disimpan-program komputer digital elektronik sebagai ' von Neumann mesin ' " . Nya rekan Los Alamos Stan Frankel mengatakan dari hal von Neumann untuk ide-ide turing :
Aku tahu bahwa dalam atau sekitar 1943 atau '44 von Neumann sangat menyadari begitu pentingnya kertas Turing tahun 1936 ... Von Neumann memperkenalkan saya pada kertas itu dan di mendesak , aku mempelajarinya dengan hati-hati . Banyak orang memiliki diakui von Neumann sebagai " bapak komputer " ( dalam pengertian modern ) tapi saya yakin bahwa dia tidak akan pernah membuat kesalahan sendiri . Dia mungkin juga bisa disebut bidan , mungkin , tapi dia tegas menekankan kepada saya , dan orang lain saya yakin , bahwa konsepsi mendasar adalah karena Turing - sejauh tidak diantisipasi oleh Babbage ... Kedua Turing dan von Neumann , tentu saja , juga membuat kontribusi besar untuk " pengurangan praktek " dari konsep-konsep tetapi saya tidak akan menganggap ini sebagai sebanding pentingnya dengan pengenalan dan penjelasan dari konsep komputer mampu menyimpan dalam memori program kegiatan dan memodifikasi program yang dalam perjalanan kegiatan ini .
Pada saat itu " Pertama Draft " Laporan itu beredar , Turing menghasilkan laporan berjudul Usulan Electronic Calculator yang dijelaskan dalam rekayasa dan detail pemrograman , idenya dari mesin yang disebut Computing Automatic Mesin ( ACE ) . Dia disajikan ini kepada Komite Eksekutif Laboratorium Fisika Nasional Inggris pada tanggal 19 Februari 1946. Meskipun Turing tahu dari pengalamannya perang di Bletchley Park bahwa apa yang ia mengusulkan adalah layak, kerahasiaan seputar Colossus , yang kemudian dipertahankan selama beberapa dekade , mencegah dia mengatakan begitu . Berbagai implementasi sukses dari desain ACE diproduksi .
Kedua von Neumann dan Turing makalah dijelaskan disimpan-program komputer , tapi kertas von Neumann sebelumnya mencapai sirkulasi besar dan arsitektur komputer itu diuraikan menjadi dikenal sebagai " arsitektur von Neumann " . Pada tahun 1953 publikasi cepat dari Pemikiran : Sebuah Simposium Digital Computing Machines ( diedit oleh BV Bowden ) , bagian dalam bab Komputer di Amerika berbunyi sebagai berikut : 

 MESIN DARI LEMBAGA UNTUK ADVANCED STUDIES , PRINCETON
Pada tahun 1945 , Profesor J. von Neumann , yang saat itu bekerja di Moore School of Engineering di Philadelphia , di mana ENIAC telah dibangun diterbitkan atas nama sekelompok rekan kerja sebuah laporan pada desain logis dari komputer digital . Laporan itu berisi proposal yang cukup rinci untuk desain mesin yang sejak itu menjadi dikenal sebagai EDVAC ( elektronik diskrit komputer otomatis variabel ) . Mesin ini baru-baru ini telah selesai di Amerika , tetapi Neumann laporan von terinspirasi pembangunan EDSAC ( elektronik penundaan penyimpanan kalkulator otomatis ) di Cambridge ( lihat halaman 130 ) .
Pada tahun 1947 , Burks , Goldstine dan von Neumann menerbitkan laporan lain yang diuraikan desain jenis lain dari mesin ( mesin paralel saat ini ) yang harus sangat cepat , mampu mungkin dari 20.000 operasi per detik . Mereka menunjukkan bahwa masalah yang luar biasa dalam membangun komputer seperti itu dalam pengembangan memori yang cocok , semua isi yang instan diakses , dan pada awalnya mereka menyarankan penggunaan tabung vakum khusus - disebut " Selectron " - yang telah ditemukan oleh Princeton Laboratorium RCA Tabung-tabung yang mahal dan sulit untuk membuat , sehingga von Neumann kemudian memutuskan untuk membangun sebuah mesin didasarkan pada memori Williams . Mesin ini , yang diselesaikan pada bulan Juni , 1952 di Princeton telah menjadi dikenal sebagai Maniac tersebut . Desain mesin ini telah memberikan inspirasi bahwa dari setengah lusin atau lebih mesin yang sekarang sedang dibangun di Amerika , yang semuanya dikenal sayang sebagai " Johniacs . " 'Dalam buku yang sama , dua paragraf pertama dari bab tentang ACE berbunyi sebagai berikut : KOMPUTASI OTOMATIS DI NASIONAL FISIK LABORATORIUM ' Salah satu komputer digital yang paling modern yang mewujudkan perkembangan dan perbaikan dalam teknik komputasi elektronik otomatis baru-baru ini didemonstrasikan di National Physical Laboratory , Teddington , di mana telah dirancang dan dibangun oleh tim kecil dari ahli matematika dan insinyur penelitian elektronik pada staf Laboratorium tersebut , dibantu oleh sejumlah insinyur produksi dari Perusahaan Listrik Inggris , Limited .
Peralatan sejauh didirikan di Laboratorium hanya model percontohan dari instalasi yang jauh lebih besar yang akan dikenal sebagai Computing Otomatis Mesin , tetapi meskipun relatif kecil dalam jumlah besar dan hanya mengandung sekitar 800 katup termionik , seperti dapat dinilai dari Pelat XII , XIII dan XIV , itu adalah mesin penghitung sangat cepat dan serbaguna .
Konsep dasar dan prinsip-prinsip abstrak perhitungan oleh sebuah mesin dirumuskan oleh Dr AM Turing , FRS , dalam paper1 a. membaca sebelum London matematika Masyarakat pada tahun 1936 , tetapi bekerja pada mesin tersebut di Inggris tertunda oleh perang . Pada tahun 1945 , bagaimanapun , pemeriksaan masalah itu dibuat di National Physical Laboratory oleh Mr JR Womersley , maka pengawas Matematika Divisi Laboratorium . Dia bergabung oleh Dr Turing dan staf kecil spesialis , dan , pada tahun 1947 , perencanaan pendahuluan cukup maju untuk menjamin pembentukan kelompok khusus yang telah disebutkan . Pada bulan April 1948, yang terakhir menjadi Bagian Elektronika Laboratorium , di bawah muatan Mr FM Colebrook .

Evolusi sistem bus arsitektur
Melalui dekade 1960-an dan 1970-an komputer umumnya menjadi baik kecil dan lebih cepat , yang menyebabkan beberapa evolusi dalam arsitektur mereka . Sebagai contoh, memori - dipetakan I / O memungkinkan perangkat input dan output harus diperlakukan sama dengan memori Sebuah bus sistem tunggal dapat digunakan untuk menyediakan sistem modular dengan biaya yang lebih rendah . . Ini kadang-kadang disebut " perampingan " arsitektur . Dalam beberapa dekade berikutnya , mikrokontroler sederhana kadang-kadang akan menghilangkan fitur model untuk biaya yang lebih rendah dan ukuran . Komputer besar menambahkan fitur untuk kinerja yang lebih tinggi .
Bus dibagi antara memori program dan memori data menyebabkan Von Neumann bottleneck , throughput terbatas ( kecepatan transfer data ) antara CPU dan memori dibandingkan dengan jumlah memori . Karena memori program dan memori data tidak dapat diakses pada saat yang sama , throughput yang jauh lebih kecil daripada tingkat di mana CPU dapat bekerja . Ini serius membatasi kecepatan pemrosesan efektif bila CPU diperlukan untuk melakukan pengolahan minimal pada sejumlah besar data. CPU terus dipaksa untuk menunggu data yang diperlukan untuk ditransfer ke atau dari memori. Karena kecepatan CPU dan ukuran memori telah meningkat jauh lebih cepat daripada throughput antara mereka , kemacetan telah menjadi lebih dari masalah, masalah yang keparahan meningkat dengan setiap generasi baru dari CPU .
Istilah " von Neumann bottleneck " diciptakan oleh John Backus tahun 1977 Turing ACM kuliah Penghargaannya . Menurut Backus :
Tentunya harus ada cara yang lebih primitif membuat perubahan besar dalam toko daripada mendorong sejumlah besar kata-kata bolak-balik melalui von Neumann bottleneck . Tidak hanya tabung ini hambatan literal untuk lalu lintas data masalah, tetapi yang lebih penting , itu adalah hambatan intelektual yang telah membuat kita terikat untuk berpikir kata - at-a - time, bukan mendorong kita untuk berpikir dalam hal unit konseptual yang lebih besar dari tugas di tangan . Dengan demikian pemrograman pada dasarnya perencanaan dan merinci lalu lintas besar kata-kata melalui von Neumann bottleneck , dan banyak lalu lintas yang menyangkut bukan data yang signifikan itu sendiri , tapi di mana menemukannya . 
Masalah kinerja dapat dikurangi ( sampai batas tertentu ) melalui beberapa mekanisme . Menyediakan cache antara CPU dan memori utama , menyediakan cache yang terpisah atau jalur akses terpisah untuk data dan instruksi ( yang disebut Modified arsitektur Harvard ) , menggunakan algoritma prediksi cabang dan logika , dan menyediakan CPU terbatas tumpukan atau lainnya on-chip papan memori untuk mengurangi akses memori empat satu cara kinerja meningkat . Masalahnya juga dapat mengesampingkan agak dengan menggunakan komputasi paralel , misalnya dengan menggunakan Non - Uniform Memory Access ( NUMA ) arsitektur - pendekatan umumnya digunakan oleh superkomputer . Hal ini kurang jelas apakah hambatan intelektual yang mengkritik Backus telah berubah banyak sejak tahun 1977 . Solusi yang diusulkan Backus telah tidak memiliki pengaruh besar . [ Rujukan? ] Pemrograman fungsional Modern dan pemrograman berorientasi obyek jauh lebih diarahkan " mendorong sejumlah besar kata-kata bolak-balik " dari bahasa sebelumnya seperti Fortran itu , tetapi secara internal , yang masih apa komputer menghabiskan banyak waktu mereka lakukan, superkomputer bahkan sangat paralel .
Pada tahun 1996, sebuah studi benchmark database yang menemukan bahwa tiga dari empat siklus CPU dihabiskan menunggu untuk memori . Para peneliti berharap bahwa peningkatan jumlah simultan instruksi sungai dengan multithreading atau multiprocessing chip tunggal akan membuat kemacetan ini bahkan lebih buruk .

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