Von Neumann mimari özellikleri ve temel birimleri

Von Neumann mimarisi, tüm PC işlemcilerinin ortak mimarisidir. ARM’den x86’ya, 8086’dan Ryzen’e kadar CPU’ların her biri Pentium’dan geçiyor. Hepsi Von Neumann mimarileridir ve hepsi belirli bir ortak problemi miras alır.

John Von Neumann, iki şeyle ünlü Macar doğumlu bir matematikçiydi. Birincisi, İkinci Dünya Savaşı sonunda Amerika Birleşik Devletleri’nin bir insanlık ve savaş suçu işleyerek Japonya’ya attığı atom bombasının geliştirildiği Manhattan Projesi’nde çalışmış olmak. İkincisi, bilgisayarlarımızın boyutları ve çalıştırdıkları programların şekli ne olursa olsun bugün kullandığı temel mimarinin geliştirilmesidir.

Von Neumann mimarisi nedir?

von-neumann-mimarisi

Von Neumann mimarisi, tüm PC işlemcilerinin temel aldığı mimaridir, çünkü hepsi aşağıdakilerden oluşan bir dizi ortak bileşenle organize edilmiştir:

  • Kontrol Birimi: Komut döngüsünün yakalama ve kod çözme aşamalarından sorumludur.
  • Mantıksal-aritmetik birim veya ALU: Programların gerektirdiği matematiksel ve mantıksal işlemleri gerçekleştirmekten sorumludur.
  • Bellek: Programın depolandığı, RAM bellek olarak bildiğimiz bellek
  • Giriş aygıtı: Bilgisayarla iletişim kurduğumuz aygıt.
  • Çıkış Aygıtı: Bilgisayarın bizimle iletişim kurduğu aygıt.

Gördüğünüz gibi, bu tüm işlemcilerde ortak bir mimaridir ve bu yüzden artık bir sır değil, ancak Harvard mimarisi olarak bilinen RAM belleğin iki farklı kuyuya ayrıldığı başka bir mimari türü daha var. Program komutlarını ve verileri diğer bellekte saklarlar, hem bellek adresleme hem de komutlar için ayrı veri yollarına sahiptirler.

Von Neumann mimarisinin özellikleri

Ana dezavantajı, işlenecek komutların ve verilerin bulunduğu RAM belleğin birleştirilmesi ve aynı veri yolu ve ortak adresleme üzerinden paylaşılmasıdır. Bu nedenle, talimatlar ve veriler sırayla bellekten getirilmelidir. Bu darboğaza Von Neumann darboğazı denir. Bu nedenle, farklı mikroişlemcilerin işlemciye en yakın önbelleği, biri veriler için diğeri talimatlar için olmak üzere iki türe ayrılmıştır.

Son yıllarda işlemci hızları RAM’den çok daha hızlı artıyor, bu da verilerin bellekten iletilmesi için geçen süreyi artırıyor. Bu, Von Neumann darboğazının bir ürünü olan bu sorunu hafifletmek için çözümlerin geliştirilmesine neden oldu.

Harvard mimarisinin normal olarak kullanıldığı işlemciler, kendi kendine yeten ve bu nedenle sistemin ortak RAM belleğine erişimi olmayan, bunun yerine kendi belleğini ve programını ana CPU’dan izole ederek yürüten işlemcilerdir. Bu işlemciler, iki ayrı veri dalında veri ve talimat listesini alır. Biri komut belleği için, diğeri söz konusu işlemcinin veri belleği için.

İşlemci ve ekran kartlarında neden kullanılıyor?

Bunun ana nedeni, veri yolu sayısını artırmanın, işlemcinin çevresini artırmak anlamına gelmesidir, çünkü harici bellekle iletişim kurmak için arayüzün bunun dışında olması gerekir. Bu, çok daha büyük ve çok daha pahalı işlemcilere yol açar. Dolayısıyla Von Neumann mimarisinin standart hale gelmesinin ana nedeni maliyettir.

İkinci neden, hatalı bir veriye bir talimatın uygulanmaması için iki bellek havuzunun senkronize edilmesi gerektiğidir. Bu da her iki bellek kuyusu arasında koordinasyon sistemleri oluşturma zorunluluğuna yol açar. Elbette ikisinin birbirinden ayrılmasıyla darboğazların büyük bir kısmı giderilmiş olacaktır. Ancak bu, von Neumann darboğazını da tamamen azaltmaz.

Bunun nedeni, Von Neumann darboğazının, veri ve talimatların aynı bellekte saklanmasının bir sonucu olmasına rağmen, işlemciye güç sağlamak için yeterince hızlı değilse Harvard mimarisinde de meydana gelebilmesidir. Bu nedenle Von Neumann CPU ve GPU’da yaygın iken Harvard mimarileri özellikle mikrodenetleyicilere ve DSP’lere indirgenmiştir.

Birinci seviye önbellek, modelin bozulduğu senaryo

Hem CPU hem de GPU’da en düşük seviye önbelleğin her zaman komutlara ve verilere bölündüğünü fark etmişsinizdir, bu da bir Von Neumann mimarisinin mimari tanımını bozar. Bunu yapmanın nedeni çok basittir ve bunun, talimatların kodunun çözülmesini kolaylaştırmak amacıyla yapılması gerektiğidir, bu nedenle genellikle ikinci en düşük seviye önbellekten en aşağıya kopyalarken yapılan şey talimat verilerini ayırmaktır.

Bunu hem CPU’da hem de GPU’da görebiliriz ve tüm bunlar, her birinin ilk bitlerinin ayrıldığı ve yorumlandığı daha basit bir talimat kod çözme birimine sahip olmaya hizmet eder. Ek olarak, bu, vektör veya SIMD tipi talimatların işlemcide daha basit bir şekilde uygulanmasına izin verir; bu, ekran kartı işlemcileri için anahtardır.

Özetlemek ve bitirmek için, Von Neumann mimarisinin nasıl çalıştığını anlamak, hepsi bu ilkelere dayandığından, herhangi bir işlemcinin nasıl çalıştığını anlamak anlamına gelir. Bu, bir Ferrari motorunu bir Alpine ile karşılaştırmak gibidir, ikisi de farklı markalardandır, ancak bunlar bir dizi ortak ilke ve standarda dayanır ve işlemci dünyasında da aynı şey olur.