Neumann mimarisi

Von Neumann mimarisi veri ve komutları tek bir yığıncak (depolama) biriminde bulunduran bilgisayar tasarı örneğidir. Paralel mimariler dışında Turing makinesi'nin ilkelerini uygulayan her bilgisayarı tanımlamak için kullanılır. Merkezi işlem biriminin bağımsızlığı dolaylı olup, "saklı yazılım bilgisayarı" (stored program computer) ile eşanlamlı olarak kullanılır.İlk hesap makineleri değişmez yazılımlara (veya programlara) sahiptiler. Bir makine hangi işlemi gerçekleştirmesi için tasarlandıysa sadece onu yerine getirebiliyordu. Günümüzde bazı basit bilgisayarlar hâlâ bu yapıyı kullanmaktadırlar. Bu tür bilgisayarların yeni bir görevi yerine getirebilmesi için donanımlarının tekrar tasarlanması zorunludur.Bu zorlukların aşılması "saklı yazılım bilgisayarı" ilkesi ile gerçekleşmiştir. Söz konusu makinenin yürütebileceği bir dizi komutun tanımlanması ile bilgisayarlar çok daha esnek bir yapıya kavuştular. Komut ve verinin aynı biçimde saklanması ise, bu ilke sayesinde yazılımın kolayca değiştirilebilmesine olanak tanımıştır.Saklı yazılım tasarımı, ayrıca yazılımların çalıştırılmaları esnasında kendilerini değiştirebilmelerini mümkün kılar. Bu özelliğin nedeni ise, geçmişte doğan, komutların bulunaklarını (adreslerini) değiştirebilme gereksinimidir. Günümüzde dizin yazmacı sayesinde bu sorun çözülmüştür, ancak kendini değiştiren yazılımların hatalarının ayıklanması son derece güç olduğundan yaygınlık kazanamamışlardır. Daha büyük ölçekte, komutları veri olarak kullanabilmek, derleyicilerin ana ilkesi olup, yazılımların yazılım yazmasına izin verir.von Neumann mimarisinin dar geçit sorunu dışında, en olumsuz yanı hatalı yazılımların kendilerine, işletim sistemine ve hatta diğer yazılımlara zarar verebilmeleridir, örneğin arabellek taşması (buffer overflow) gibi."von Neumann mimarisi" ad olarak John von Neumann'ın 30 Haziran 1945 tarihli makalesine dayanır. Bu makale genel amaçlı bir saklı yazılım bilgisayarının tasarısı üzerinedir. Saklı yazılımı bilgisayarı fikri Moore Elektrik Mühendisliği Okulu'nda von Neumann'dan önce de bilinmekteydi, ancak kim tarafından ortaya atıldığı bilinmemektedir.John William Mauchly ve J. Presper Eckert ENIAC üzerine olan çalışmaları sürerken de saklı yazılım bilgisayarı hakkında bir makale yayımlamışlardır (1943). Ancak ENIAC'ın tasarım sürecinde delikli kartlardan veri okunması çok yavaş kaldığından, makine sabit yazılım ilkesine göre tasarlanmıştır.Alan Turing ise 19 Şubat, 1946 tarihinde Pilot ACE adlı bir saklı yazılım bilgisayarının tam tasarımını yayımlamıştır.Bellek ile Merkezi işlem biriminin (MİB) ayrılması von Neumann dar geçidi olarak bilinen soruna yol açmaktadır. Bu sorun MİB ile bellek arası veri taşıma hızının, bellek miktarına göre çok düşük olmasından kaynaklanmaktadır. Öyle ki, MİB zamanın büyük çoğunluğunu bellekten istenilen verinin gelmesini beklemekle geçirir. Son yıllarda MİB'lerin hızları ile bellek erişim hızlarının arasındaki farkın açılması ile bu sorun daha da büyümüştür.Sorunu hafifletmek adına arabellek (cache memory) ve dal kestirimi (branch prediction) uygulayımbilimleri geliştirilmiştir.1960 ve 1970'lerde bilgisayarlar küçülmeye ve hızlanmaya başladı, dolayısıyla mimarileri de evrim geçirdi. Örneğin bellek-haritalı G/Ç giriş ve çıkış cihazlarının hafıza ile aynı şekilde değerlendirilmesine izin veriyor. Yalnızca bir sistem veri yolu kullanılarak düşük bütçeyle modüler bir sistem oluşturulabilir. Bazen bu pratiğe mimarinin "düzene sokulması" () denir.