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. 

X86



x86 atau 80x86 adalah nama umum dari arsitektur mikroprosesor yang pertama kali dikembangkan dan diproduksi oleh Intel. Arsitektur x86 saat ini mendominasi komputer desktop, komputer portabel, dan pasar server sederhana.
Arsitektur ini dikenal dengan nama x86 karena prosesor-prosesor awal dari keluarga arsitektur ini memiliki nomor model yang diakhiri dengan urutan angka "86": prosesor 8086, 80186, 80286, 386, dan 486. Karena nomor tidak bisa dijadikan merek dagang, Intel akhirnya menggunakan kata Pentium untuk merek dagang processor generasi kelima mereka.
Arsitektur ini telah dua kali diperluas untuk mengakomodasi ukuran word yang lebih besar. Pada tahun 1985, Intel mengumumkan rancangan generasi 386 32-bit yang menggantikan rancangan generasi 286 16-bit. Arsitektur 32-bit ini dikenal dengan nama x86-32 atau IA-32 (singkatan dari Intel Architecture, 32-bit). Kemudian pada tahun 2003, AMD memperkenalkan Athlon 64, yang menerapkan secara lebih jauh pengembangan dari arsitektur ini menuju ke arsitektur 64-bit, dikenal dengan beberapa istilah x86-64, AMD64 (AMD), EM64T atau IA-32e (Intel), dan x64 (Microsoft).

Sejarah
Arsitektur x86 pertama kali hadir melalui 8086 CPU pada tahun 1978; Intel 8086 adalah pengembangan dari mikroprosesor Intel 8080 (yang dibangun mengikuti arsitektur dari 4004 dan 8008), dan program bahasa rakitan dari 8080 dapat diterjemahkan secara mekanik ke program yang setara ke bahasa rakitan untuk 8086. Arsitektur ini diadaptasi (dengan versi yang lebih sederhana dari versi 8088) tiga tahun kemudian sebagai standar dari CPU pada IBM PC. Kehadiran platform PC secara luas membuat arsitektur x86 menjadi arsitektur CPU yang paling sukses selama ini. (Rancangan CPU lainnya yang sangat sukses, yang dibagun berdasarkan 8080 dan kompatible pada set-instruksi hingga pada tingkatan bahasa-mesin biner adalah arsitektur Zilog Z80.)
Perusahaan lain juga membuat atau pernah membuat CPU yang berdasarkan arsitektur x86: diantaranya Cyrix (sekarang diakuisisi oleh VIA Technologies), NEC Corporation, IBM, IDT (juga telah diakuisisi oleh VIA), dan Transmeta. Manufaktur yang paling sukses adalah AMD, dengan seri Athlon-nya, yang meskipun belum se-populer seri Pentium, telah menguasai sebagian pangsa pasar secara nyata. Menurut beberapa perusahaan riset pangsa pasar CPU AMD telah melampaui penjualan CPU Intel di pasar retail dekstop pada tahun 2006.

Rancangan
Arsitektur x86 adalah rancangan Set Instruksi Komputer Kompleks (Complex Instruction Set Computer) dengan panjang instruksi yang bervariasi. Word disimpan dengan urutan endian-kecil. Kompatibilitas mundur menjadi motivasi terkuat dalam pengembangan arsitektur x86 (keputusan ini menjadi sangat penting dan sering dikritik, terutama oleh pesaing dari pendukung arsitektur prosesor lainnya, yang dibuat frustasi oleh sukses yang berkelanjutan dari arsitektur ini yang secara umum dipandang memilki banyak kelemahan). Prosesor-prosesor terkini dari x86 menerapkan beberapa langkah penerjemah (dekoder) "tambahan" untuk (saat eksekusi) memecah (sebagian besar) instruksi x86 kedalam potongan-potongan kecil instruksi (dikenal dengan "micro-ops") yang selanjutnya dieksekusi oleh arsitektur setara dengan arsitektur RISC.
Mikroprosesor x86 dapat bekerja dalam beberapa modus berikut:
  • Real-mode (Modus Real)
  • Protected Mode (Modus terproteksi)
  • Virtual Protected Mode (Modus Terproteksi Virtual)
  • Compatibility Mode
  • Long Mode/IA32e Full Mode

Real-Mode
Real-Mode adalah sebuah modus di mana prosesor Intel x86 berjalan seolah-olah dirinya adalah sebuah prosesor Intel 8086 atau Intel 8088, meski ia merupakan prosesor Intel 80286 atau lebih tinggi. Karenanya, modus ini juga disebut sebagai modus 8086 (8086 Mode). Dalam modus ini, prosesor hanya dapat mengeksekusi instruksi 16-bit saja dengan menggunakan register internal yang berukuran 16-bit, serta hanya dapat mengakses hanya 1024 KB dari memori karena hanya menggunakan 20-bit jalur bus alamat. Semua program DOS berjalan pada modus ini.
Prosesor yang dirilis setelah 8086, semacam Intel 80286 juga dapat menjalankan instruksi 16-bit, tapi jauh lebih cepat dibandingkan 8086. Dengan kata lain, Intel 80286 benar-benar kompatibel dengan prosesor Intel 8086 yang didesain sebelumnya. Sehingga prosesor Intel 80286 pun dapat menjalankan program-program 16-bit yang didesain untuk 8086 (IBM PC), dengan tentunya kecepatan yang jauh lebih tinggi.
Dalam Real-mode, tidak ada proteksi ruang alamat memori, sehingga tidak dapat melakukan multi-tasking. Inilah sebabnya, mengapa program-program DOS bersifat single-tasking. Jika dalam modus real terdapat multi-tasking, maka kemungkinan besar antara dua program yang sedang berjalan, terjadi tabrakan (crash) antara satu dengan lainnya.

Protected Mode
Modus terproteksi (protected mode) adalah sebuah modus di mana terdapat proteksi ruang alamat memori yang ditawarkan oleh mikroprosesor untuk digunakan oleh sistem operasi. Modus ini datang dengan mikroprosesor Intel 80286 atau yang lebih tinggi. Karena memiliki proteksi ruang alamat memori, maka dalam modus ini sistem operasi dapat melakukan multitasking.
Prosesor Intel 80286 memang dilengkapi kemampuan masuk ke dalam modus terproteksi, tapi tidak dapat keluar dari modus tersebut tanpa harus mengalami reset (warm boot atau cold boot). Kesalahan ini telah diperbaiki oleh Intel dengan merilis prosesor Intel 80386 yang dapat masuk ke dalam modus terproteksi dan keluar darinya tanpa harus melakukan reset. Inilah sebabnya mengapa Windows 95/Windows 98 dilengkapi dengan modus Restart in MS-DOS Mode, meski sebenarnya sistem operasi tersebut merupakan sistem operasi yang berjalan dalam modus terproteksi.

Virtual Protected Mode
Virtual Protected Mode juga kadang disebut sebagai Virtual Real Mode. Dalam modus ini, sebuah prosesor Intel x86 berjalan dalam modus terproteksi tetapi mengizinkan aplikasi-aplikasi 16-bit real-mode agar dapat dijalankan di atas sistem operasi. Microsoft Windows 3.1, yang berjalan di dalam modus Enhanced 386, Windows 95, serta Windows 98 mendukung modus ini sepenuhnya. Sistem-sistem operasi dapat menjalankan beberapa aplikasi 16-bit real-mode secara sekaligus, pada window MS-DOS Prompt yang berbeda-beda, karena memang Microsoft mengimplementasikan sebuah lapisan emulasi yang disebut sebagai DOS Protected Mode Interface (DPMI). Setiap window MS-DOS Prompt yang dibuat, aplikasi hanya berjalan dalam real mode, tapi karena Windows 3.1 (yang berjalan dalam modus Enhanced 386) dan Windows 95/98 berjalan dalam modus terproteksi, aplikasi akan menganggap dirinya berjalan pada komputer yang berbeda, meski pada fisiknya mereka dijalankan pada modus yang sama. Hal ini mengizinkan aplikasi-aplikasi 16-bit real-mode agar dapat dijalankan secara serentak (multitasking), meski pada awalnya aplikasi 16-bit berjalan dalam kondisi single-tasking.
DPMI digunakan oleh Windows 3.1 ke atas untuk mengakses extended memory agar dapat digunakan oleh aplikasi Windows. DPMI mengizinkan program-program dapat menggunakan memori yang lebih banyak, meski pada aslinya program tersebut merupakan program 16-bit. Hal ini populer dilakukan, khususnya bagi program-program game komputer DOS, karena game-game tersebut dapat mengakses lebih dari 1 MB (diberi hak akses oleh sistem operasi). DPMI dapat melakukan switching prosesor dari real-mode ke protected mode atau sebaliknya.

IA32e/AMD64/x64/x86-64 Compatibility Mode
Modus kompatibilitas adalah sebuah modus prosesor berbasis IA32e (x86-64, AMD64, EM64T, atau x64) di mana prosesor sedang menjalankan instruksi 32-bit (sistem operasi 32-bit dan aplikasinya yang dijalankan di atas prosesor x64 atau sistem operasi 64-bit yang menjalankan aplikasi 32-bit). Dalam modus ini, prosesor tersebut bekerja seolah-olah dirinya adalah prosesor x86 32-bit, sehingga hanya dapat mengalamati memori hingga 4 GB saja.

IA32e/x86-64/AMD64/x64/EM64T Long Mode
Modus panjang (long mode) adalah sebuah modus prosesor 64-bit IA32e (x86-64/AMD64/x64/EM64T) yang berjalan di atas sistem operasi 64-bit, sehingga ia dapat mengeluarkan seluruh kemampuannya, seperti halnya mengakses memori lebih besar daripada 4 GB (hingga batasan yang dimiliki oleh prosesor dan sistem operasi), dan menjalankan aplikasi 64-bit. Hanya beberapa sistem operasi yang dapat menjalankan prosesor IA32e dalam modus ini, yakni Windows XP Professional x64 Edition, Windows Server 2003, GNU/Linux (versi kernel 2.6 ke atas), Solaris 10 dan beberapa varian UNIX lainnya.