Farklı bilgisayar mimarileri nelerdir?


20

"Bilişim sistemlerinin unsurları" kitabından geçiyorum. Bu kitap, tüm bilgisayarı sıfırdan nasıl oluşturacağınızı öğretir. Sadece bilgisayar mimarisi bölümlerine göz atarken, hepsinin Von Neumann mimarisine odaklandığını fark ettim. Sadece diğer mimarilerin ne olduğunu ve ne zaman ve nerede kullanıldığını merak ettim.

Sadece iki tanesini biliyorum, biri Von Neumann, ikincisi Harvard. Ayrıca AVR uC'de kullanılan RISC'yi de biliyorum.


2
Harvard değiştirilmiş bir üçüncü var. Saf bir Harvard, aynı programı hem programları hem de verileri tutmak için kullanamaz. Bu nedenle, Harvard'ın neredeyse her uygulaması, talimat belleğinin veri olarak ele alınmasını sağlayacak şekilde değiştirilmiştir.
goril

1
harika bir soru.
İsimsiz Tür

Yanıtlar:


27

Birçok farklı bilgisayar mimarisi vardır.

Bilgisayar mimarilerini kategorilere ayırmanın bir yolu, saat başına yürütülen talimat sayısıdır. Birçok bilgi işlem makinesi her seferinde bir talimat okur ve uygular (ya da sankidahili olarak süslü süperskalar ve sıra dışı şeyler yapsalar bile bunu yaparlar). Bu tür makinelere "von Neumann" makineleri diyorum, çünkü hepsinde bir von Neumann darboğazı var. Bu tür makineler arasında CISC, RISC, MISC, TTA ve DSP mimarileri bulunur. Bu tür makineler arasında akümülatör makineleri, kayıt makineleri ve yığın makineleri bulunmaktadır. Diğer makineler, bir seferde birkaç talimat okur ve yürütür (VLIW, süper skalar), bu da saat başına bir talimat sınırını aşar, ancak yine de saat başına biraz daha fazla sayıda talimatla von Neumann darboğazına çarpar. Yine de, diğer makineler von Neumann darboğazıyla sınırlı değildir, çünkü tüm operasyonlarını bir kez açılışta önceden yüklerler ve daha sonra başka talimat olmadan verileri işlerler. Bu Von-Neumann olmayan makineler veri akışı mimarilerini,

Bilgisayar mimarilerini kategorilere ayırmanın başka bir yolu, CPU ve bellek arasındaki bağlantılardır. Bazı makinelerin birleşik bir belleği vardır, böylece tek bir adres bellekteki tek bir yere karşılık gelir ve bu bellek RAM olduğunda, bu adresi veri okumak ve yazmak için kullanabilir veya kodu çalıştırmak için bu sayacı program sayacına yükleyebilir. Bu makinelere Princeton makineleri diyorum. Diğer makinelerin birkaç ayrı bellek alanı vardır, öyle ki, program sayacı hangi adrese yüklerse yüklensin her zaman "program belleğine" atıfta bulunur ve normal okuma ve yazma işlemleri her zaman farklı veri içeren ayrı bir konum olan "veri belleğine" gider. veri adresinin bitleri program bellek adresinin bitleriyle aynı olsa bile bilgi. Bu makineler "saf Harvard" veya "

Birkaç kişi, Harvard makinelerini içermeyen dar bir "von Neumann makinesi" tanımı kullanır. Bu insanlardan biriyseniz, hem Harvard hem de Princeton makinelerini içeren ve NON-VON'u hariç tutan "von Neumann darboğazına sahip bir makine" daha genel konsepti için hangi terimi kullanırdınız?

Çoğu gömülü sistem Harvard mimarisini kullanır. Birkaç CPU, belki de donanımda inşa etmek için en basit düzenleme olan "saf Harvard" dır: salt okunur program belleğine giden adres veri yolu, sadece birçok eski Microchip PICmicros gibi program sayacına bağlıdır. Bazı değiştirilmiş Harvard makineleri, ayrıca, özel bir "program belleğinden sabit verileri oku" talimatı ile ("veri belleğinden okuma" talimatından farklı olarak) okunabilen sabitleri program belleğine koymaktadır. Yukarıdaki Harvard makinelerinde çalışan yazılımlar, etkin bir şekilde bu yazılıma ROM olan program belleğini değiştiremez. Bazı gömülü sistemler "kendinden programlanabilir", tipik olarak flash bellekteki program belleği ve özel bir "flash belleği silme bloğu" "program belleğinden veri okuma" komutuna ek olarak özel bir "flash belleğe yazma bloğu" talimatı (normal "veri belleğine yazma" talimatından farklı). Birkaç yeni Microchip PICmicros ve Atmel AVR kendi kendine programlanabilen modifiye Harvard makineleridir.

CPU'ları sınıflandırmanın bir başka yolu da saatlerine göre. Çoğu bilgisayar eşzamanlıdır - tek bir genel saati vardır. Birkaç CPU asenkron (bir saati yok) - bir zamanlar dünyadaki en hızlı süper bilgisayarlar olan ILLIAC I ve ILLIAC II dahil.

Lütfen http://en.wikibooks.org/wiki/Microprocessor_Design/Computer_Architecture adresinden her türlü bilgisayar mimarisinin tanımının geliştirilmesine yardımcı olun .


2
Vay canına, soruyu SORDUKTAN SONRA bu bilgiyi uzun süre sakladığınız için utanıyorum.
Rick_2047

3
@Rick - Bu cevabın yazılması uzun sürdü. Davidcary'nin sorunuzu cevaplamak için zaman ayırdığı için minnettar olun! Bazı kişiler sizin olduğunuz programda çalışmıyor.
Kevin Vermeer

2
@reemrevnivek bir şaka ahbap anlamına geliyordu.
Rick_2047

Bu cevap bir topluluk wiki yanıtı olarak işaretlenmiş olsaydı iyi olurdu.
Trygve Laugstøl

8

CISC, RISC'nin "zıttı" dır. RISC, derleyicinin optimize etmesi kolay ve genellikle aynı boyutta basit talimatlara sahip olmayı tercih ederken, CISC değişen boyutta karmaşık talimatlara düşkündür.

Örneğin, CISC'deki bir pop talimatı yığın işaretçisini değiştirecek ve verileri yığından başka bir kayıt defterine yerleştirecektir. Ancak, bir RISC işlemcisi verileri bir komutla okuyacak ve daha sonra ikinci bir komutla yığın işaretçisini değiştirecektir. (genellikle; yığın işaretçisini güncelleyebilen ve verileri yığının üzerine itebilen PowerPC gibi bazı istisnalar vardır, ancak bu bir istisnadır)

RISC talimatları aynı boyutta olduğundan, sökücülerin yazılması daha kolaydır. İşlemciyi tasarlamak da daha kolaydır, çünkü boru hattı değişken talimat boyutlarını hesaba katmak zorunda değildir. Bununla birlikte, CISC kod yoğunluğu daha iyi olma eğilimindedir, çünkü karmaşık talimatlar aynı sayıda işlemi temsil etmek için daha az bayt gerektirir ve değişken talimat uzunluğu bazı "sıkıştırmaya" izin verir.

VLIW / EPIC gibi başka egzotik mimariler de var. Bu tür bir mimari paralel işleme düşünülerek tasarlanmıştır. Bununla birlikte, çok iyi bir performans göstermediler, çünkü optimize etmek için derleyiciye çok ağır bir yük yerleştirirken, diğer mimarilerde derleyiciden bazı optimizasyon yükünü hafifleten süslü talimat pencereleri var.


1
Eğer hoşuna giderse, kabul et.
Kortuk

5

ENIAC gibi bir şey var, burada temel olarak bireysel ALU'larınız var ve bunları bir alu çıkışını o ara değişken üzerinde bir sonraki işlemi gerçekleştirecek olan başka bir alu girişine bağlayarak "programladınız". "Kayıtlarınız" ve depolama alanınız alusu bağlayan tellerdir.

Kısa bir süre önce bu konuya odaklanan "İlk Bilgisayarlar - Tarih ve Mimariler (Bilgisayar Tarihi)" kitabını satın aldım. Bu kitabı sadece akademik makalelerden oluşan, okunması zor bir koleksiyon olsa da satın almanızı önermiyorum ve muhtemelen (ücretsiz) başka bir yerde yayınlandığından şüpheleniyorum. (Giriş işlemini bitirmeden vazgeçtim)

Hafıza icat edildikten ve pratik hale geldiğinde, iki popüler olan Von Neumann ve Harvard'a yerleştik. Yeniden kablolama, delikli kartlar, kağıt bant veya bunun gibi şeylerden daha az pratik hale geldi. Ve muhtemelen kendi değil, Harvard kategorisine girdiğinden şüphelenilen yığın tabanlı (örneğin zpu) var.

Bir bellek arabiriminde salt okunur (normal kullanımda) önyükleme yapan ve diğerinde okuma / yazma veri ram'ına sahip (bazen her ikisi de paralel olarak çalışabilen) ancak program perspektifinden birinde olan von neumann platformlarına ne dersiniz? adres alanı? Veya paralel olarak çalışan ancak aynı adres alanında olduğu için von neumann olan birkaç dahili ve harici anı / arayüze sahip olanlar.

Ve işlemcinin önyükleyiciyi değiştirmek / yükseltmek veya önyükleyicinin bir sonraki programı çalıştırmak üzere yüklemesi için talimat belleğine veri olarak erişemediği bir harvard platformu ne işe yarar? Neden bir von neumann mimarisi değil? Aynı arabirimde aynı bellekten çalışan ve aynı arabirimde çalışan işlemci büyük olasılıkla ardışık (talimat getirme ve bellek yazma işlemleri aynı anda gerçekleşmez)?

İki popüler bellek tabanlı mimari, mevcut IMO uygulamalarında farklı olanlardan daha yakındır.

GPu'nun düşüşü nerede? Ya da içinde çalıştığım işletme, ağ işlemcileri (NPU'lar). Harvard benzeri bir program koçundan yürüten bu nispeten küçük özel amaçlı mikro motorlara (işlemciler) sahipseniz (adreslenebilir, ancak bunu performans nedenleriyle yapmak istemezseniz), her biri kendi ayrı adres alanına (farklı işlemci) sahip çeşitli veri koçları üzerinde çalışın her boşluk için talimatlar), (paralel olarak çalışan bellek boşlukları) ve bu koçlar aracılığıyla bir sonraki hesaplamanın bir sonraki mikro motor tarafından kablolu bir alu (eniac) gibi moda yapılması için ara verileri dağıtır mı? Buna ne denir? NPus ve GPus sadece modifiye edilmiş harvard mimarileri mi?


"İşlemcinin çalışacak bir sonraki programı yükleyemediği bir harvard platformu ne işe yarar?" Birçok CPU, bu CPU üzerinde çalışan yazılım tarafından değiştirilemeyen sabit bir programa sahiptir. Bu düzenlemenin bir avantajı, sistemi rastgele belleğe yazan bir hatayla veya kötü bir yazılım güncellemesiyle veya hatta iyi bir yazılım güncellemesiyle ve kötü zamanlanmış bir güç kesintisiyle "tuğlalaştırmayı" imkansız hale getirmesidir. Yazılımı güncellemeyi zorlaştırır - ama gerçekten, mikrodalga fırında yazılımı kaç kez değiştirdiniz?
davidcary

2
Mikrodalgada hiçbiri, ama mikrodenetleyiciler için kodlama zamanımı adil bir şekilde harcıyorum ve günde birçok kez yazılımı yeniden yüklüyorum. Küçük, böceksiz, rom tabanlı sistemlerle sınırlı olması nedeniyle tuğla sorunu von neumann kullanılarak kolayca çözülebilir. Tanımladığınız sistemlerin, ayrı otobüslerin performans kazanımı için, harvard mimarisinin diğer özelliği olarak çok az kullanımı vardır. Demek istediğim, harvard mimarisi programları yüklemek için bir yol açmadan iyi ölçeklenmiyordu, bu da biraz eskimiş hale geldi.
old_timer

1
Hmm, gerçekten değilken korteks-m3 harvard diyorlar, avr ile aynı (buna modifiye harvard diyorlar). Eminim bazı saf harvard mimarisi işlemcileri (PIC) vardır ve eskiden daha saf von neumann'dı, ancak çoğu değiştirilmiş harvard veya modifiye von neumann (paralel olarak veri ve talimat erişimi). Cevabımın başında olduğum yer, saf harvard ve saf von neumann'ın her ikisi de hızla modası geçiyor. Poster dışarıda başka neler olduğunu bilmek istiyor, hemen hemen her şey var.
old_timer

4

Hem von Neumann hem de Harvard mimarileri AVR ve ARM gibi RISC işlemcilerle kullanılabilir. AVR, Harvard'ı kullanırken bazı ARM yongaları von Neumann'ı ve bazıları Harvard'ı kullanıyor.


-1 daha ilginç cevaplar altında sıralamak için.
Oskar Skog
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.