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 .