Bilgisayar Mimarisi - Computer architecture

Tek işlemcili CPU'lu temel bir bilgisayarın blok şeması. Siyah çizgiler veri akışını, kırmızı çizgiler ise kontrol akışını gösterir. Oklar akış yönünü gösterir.

Gelen bilgisayar mühendisliği , bilgisayar mimarisi kuralları ve işlevsellik, organizasyon ve uygulanmasını açıklayan yöntemlerin bütünüdür bilgisayar sistemleri. Bir sistemin mimarisi, o sistemin ayrı ayrı belirlenmiş bileşenleri ve aralarındaki ilişkiler açısından yapısını ifade eder.

Mimarinin bazı tanımları, onu belirli bir uygulamanın değil, bir bilgisayarın yeteneklerini ve programlama modelini tanımlayan olarak tanımlar. Diğer tanımlarda bilgisayar mimarisi, talimat seti mimarisi tasarımı, mikro mimari tasarımı, mantık tasarımı ve uygulamasını içerir .

Tarih

İlk belgelenmiş bilgisayar mimarisi, Charles Babbage ve Ada Lovelace arasındaki analitik motoru tanımlayan yazışmalardaydı . 1936'da Z1 bilgisayarını yaparken Konrad Zuse , gelecekteki projeleri için iki patent başvurusunda, makine talimatlarının veri için kullanılan aynı depolamada, yani depolanmış program konseptinde saklanabileceğini açıkladı . Diğer iki erken ve önemli örnek:

Bilgisayar literatüründe "mimari" terimi , 1959'da IBM'in ana araştırma merkezindeki Makine Organizasyonu bölümünün üyeleri Lyle R. Johnson ve Frederick P. Brooks, Jr.'ın çalışmalarına kadar sürülebilir. Los Alamos Ulusal Laboratuvarı (o zamanlar Los Alamos Bilimsel Laboratuvarı olarak biliniyordu) için IBM tarafından geliştirilen bir süper bilgisayar olan Stretch hakkında araştırma iletişimi . Lüks bir şekilde süslenmiş bilgisayarı tartışmak için ayrıntı düzeyini tanımlamak için, biçimler, talimat türleri, donanım parametreleri ve hız geliştirmeleri hakkındaki açıklamalarının, "makine organizasyonundan daha yararlı görünen bir terim olan "sistem mimarisi" düzeyinde olduğunu kaydetti. ”.

Daha sonra, bir Stretch tasarımcısı olan Brooks, Bir Bilgisayar Sistemini Planlamak: Proje Uzatmak adlı bir kitabın 2. Bölümünü açtı : “Bilgisayar mimarisi, diğer mimariler gibi, bir yapının kullanıcısının ihtiyaçlarını belirleme ve daha sonra bunu tasarlama sanatıdır. ekonomik ve teknolojik kısıtlamalar dahilinde bu ihtiyaçları mümkün olduğunca etkin bir şekilde karşılamak.”

Brooks , "mimarinin" "kullanıcının bilmesi gerekenleri" tanımlayan bir isim haline geldiği IBM System/360 (şimdi IBM zSeries olarak adlandırılır ) bilgisayar serisinin geliştirilmesine yardımcı olmaya devam etti . Daha sonra, bilgisayar kullanıcıları bu terimi daha az açık bir şekilde kullanmaya başladılar.

En eski bilgisayar mimarileri kağıt üzerinde tasarlandı ve daha sonra doğrudan nihai donanım formuna yerleştirildi. Daha sonra, bilgisayar mimarisi prototipleri fiziksel olarak bir transistör-transistör mantığı (TTL) bilgisayarı biçiminde oluşturuldu - örneğin 6800 ve PA- RISC'nin prototipleri gibi - son donanım biçimine geçmeden önce test edildi ve ince ayar yapıldı. 1990'lardan itibaren, yeni bilgisayar mimarileri tipik olarak bir bilgisayar mimarisi simülatöründeki diğer bazı bilgisayar mimarilerinin içinde "oluşturulur", test edilir ve ince ayar yapılır ; veya yumuşak bir mikroişlemci olarak bir FPGA içinde ; veya her ikisi de—son donanım formuna geçmeden önce.

alt kategoriler

Bilgisayar mimarisi disiplininin üç ana alt kategorisi vardır:

Bilgisayar mimarisinde başka teknolojiler de var. Aşağıdaki teknolojiler Intel gibi daha büyük şirketlerde kullanılmaktadır ve 2002'de tüm bilgisayar mimarisinin %1'ini oluşturduğu tahmin edilmektedir:

  • Makromimari : mimari katmanlar mikro mimariden daha soyut
  • Montaj komut seti mimarisi : Akıllı bir montajcı, bir grup makinede ortak olan soyut bir montaj dilini , farklı uygulamalar için biraz farklı makine diline dönüştürebilir .
  • Programcı tarafından görülebilen makro mimari : derleyiciler gibi daha yüksek seviyeli dil araçları , bunları kullanan programcılara tutarlı bir arayüz veya sözleşme tanımlayabilir , temel ISA, UISA ve mikro mimariler arasındaki farkları soyutlayabilir . Örneğin, C , C++ veya Java standartları, programcı tarafından görülebilen farklı makro mimarileri tanımlar.
  • Mikrokod : microcode bir çip üzerinde kaçak talimat çeviren yazılımdır. Donanımın komut seti arayüzünün tercih edilen bir versiyonunu sunarak donanımın etrafında bir sarmalayıcı gibi davranır. Bu talimat çeviri tesisi, çip tasarımcılarına esnek seçenekler sunar: Ör. Çipin yeni geliştirilmiş versiyonu, eski çip versiyonuyla aynı talimat setini sunmak için mikro kodu kullanabilir, böylece bu talimat setini hedefleyen tüm yazılımlar, yeni çip üzerinde herhangi bir işlem yapmadan çalışacaktır. değişikliklere ihtiyaç duyuyor. Ör. 2. Mikrokod, aynı temel çip için çeşitli komut setleri sunarak daha geniş bir yazılım çeşitliliğini çalıştırmasını sağlar.
  • UISA : Kullanıcı Komut Seti Mimarisi, PowerPC RISC İşlemcileri tarafından sağlanan RISC CPU talimatlarının üç alt kümesinden birini ifade eder . UISA alt kümesi, uygulama geliştiricilerin ilgisini çeken RISC talimatlarıdır. Diğer iki alt küme, sanallaştırma sistemi geliştiricileri tarafından kullanılan VEA (Sanal Ortam Mimarisi) ve İşletim Sistemi geliştiricileri tarafından kullanılan OEA (İşletim Ortamı Mimarisi) talimatlarıdır.
  • Pin mimarisi : Bir mikroişlemcinin bir donanım platformuna sağlaması gereken donanım işlevleri , örneğin x86 pinleri A20M, FERR/IGNNE veya FLUSH. Ayrıca, harici önbelleklerin geçersiz kılınabilmesi (boşaltılabilmesi) için işlemcinin göndermesi gereken mesajlar . Pin mimarisi işlevleri, ISA işlevlerinden daha esnektir, çünkü harici donanım yeni kodlamalara uyum sağlayabilir veya bir pinden bir mesaja dönüşebilir. "Mimari" terimi uygundur, çünkü ayrıntılı yöntem değişse bile işlevlerin uyumlu sistemler için sağlanması gerekir.

Roller

Tanım

Bilgisayar mimarisi, bir bilgisayar sisteminin performansını, verimliliğini, maliyetini ve güvenilirliğini dengelemekle ilgilidir. Komut seti mimarisi durumu, bu rekabet eden faktörlerin dengesini göstermek için kullanılabilir. Daha karmaşık komut setleri, tek bir komut bazı üst düzey soyutlamaları (x86 Döngü komutu gibi) kodlayabildiğinden, programcıların daha fazla alan verimli programlar yazmasına olanak tanır. Ancak, daha uzun ve daha karmaşık talimatların işlemcinin kodunu çözmesi daha uzun sürer ve etkili bir şekilde uygulanması daha maliyetli olabilir. Büyük bir talimat setinden artan karmaşıklık, talimatlar beklenmedik şekillerde etkileşime girdiğinde güvenilmezlik için daha fazla alan yaratır.

Uygulama, entegre devre tasarımı, paketleme, güç ve soğutmayı içerir. Tasarımın optimizasyonu, derleyiciler, işletim sistemlerinden mantık tasarımına ve paketlemeye aşinalık gerektirir.

Komut seti mimarisi

Bir komut seti mimarisi (ISA), bilgisayarın yazılımı ve donanımı arasındaki arayüzdür ve ayrıca programcının makineye bakışı olarak da görülebilir. Bilgisayarlar Java, C++ gibi üst düzey programlama dillerini veya kullanılan çoğu programlama dilini anlamaz . Bir işlemci, yalnızca, genellikle ikili sayılar olarak, bazı sayısal biçimde kodlanmış yönergeleri anlar . Derleyiciler gibi yazılım araçları, bu yüksek seviyeli dilleri işlemcinin anlayabileceği talimatlara çevirir.

Talimatların yanı sıra, ISA bilgisayarda bir program tarafından kullanılabilen öğeleri tanımlar - örneğin, veri türleri , kayıtlar , adresleme modları ve bellek . Talimatlar, bu kullanılabilir öğeleri kayıt dizinleri (veya adları) ve bellek adresleme modları ile bulur.

Bir bilgisayarın ISA'sı genellikle talimatların nasıl kodlandığını açıklayan küçük bir talimat kılavuzunda açıklanır. Ayrıca, talimatlar için kısa (belirsiz) anımsatıcı adlar tanımlayabilir. Adlar, montajcı adı verilen bir yazılım geliştirme aracı tarafından tanınabilir . Bir montajcı, ISA'nın insan tarafından okunabilir bir biçimini bilgisayar tarafından okunabilir bir biçime çeviren bir bilgisayar programıdır. Ayrıştırıcılar , genellikle ikili bilgisayar programlarındaki arızaları izole etmek ve düzeltmek için hata ayıklayıcılarda ve yazılım programlarında da yaygın olarak bulunur .

ISA'lar kalite ve eksiksizlik açısından farklılık gösterir. İyi bir ISA, programcının rahatlığı (kodun anlaşılmasının ne kadar kolay olduğu), kodun boyutu (belirli bir eylemi gerçekleştirmek için ne kadar kod gerektiği), talimatları yorumlamak için bilgisayarın maliyeti (daha fazla karmaşıklık, bunun için daha fazla donanım gerektiği anlamına gelir) arasında uzlaşma sağlar. kod çözme ve talimatları yürütme) ve bilgisayarın hızı (daha karmaşık kod çözme donanımıyla daha uzun kod çözme süresi gelir). Bellek organizasyonu, talimatların bellekle nasıl etkileşime girdiğini ve belleğin kendisiyle nasıl etkileşime girdiğini tanımlar.

Tasarım öykünmesi sırasında öykünücüler, önerilen bir komut kümesinde yazılmış programları çalıştırabilir. Modern öykünücüler, belirli bir ISA'nın hedeflerine ulaşıp ulaşmadığını belirlemek için boyutu, maliyeti ve hızı ölçebilir.

Bilgisayar organizasyonu

Bilgisayar organizasyonu, performansa dayalı ürünleri optimize etmeye yardımcı olur. Örneğin, yazılım mühendislerinin işlemcilerin işlem gücünü bilmesi gerekir. En düşük fiyata en fazla performansı elde etmek için yazılımı optimize etmeleri gerekebilir. Bu, bilgisayarın organizasyonunun oldukça ayrıntılı bir analizini gerektirebilir. Örneğin, bir SD kartta, tasarımcıların kartı, en fazla verinin mümkün olan en hızlı şekilde işlenebilmesi için düzenlemesi gerekebilir.

Bilgisayar organizasyonu ayrıca belirli bir proje için işlemci seçiminin planlanmasına yardımcı olur. Multimedya projeleri çok hızlı veri erişimine ihtiyaç duyabilirken, sanal makineler hızlı kesintilere ihtiyaç duyabilir. Bazen belirli görevler ek bileşenlere de ihtiyaç duyar. Örneğin, sanal makine çalıştırabilen bir bilgisayar, farklı sanal bilgisayarların belleğinin ayrı tutulabilmesi için sanal bellek donanımına ihtiyaç duyar . Bilgisayar organizasyonu ve özellikleri de güç tüketimini ve işlemci maliyetini etkiler.

uygulama

Bir komut seti ve mikro mimari tasarlandıktan sonra, pratik bir makine geliştirilmelidir. Bu tasarım sürecine uygulama denir . Uygulama genellikle mimari tasarım değil, donanım tasarımı mühendisliği olarak kabul edilir . Uygulama ayrıca birkaç adıma ayrılabilir:

  • Mantık uygulaması , bir mantık kapısı düzeyinde gereken devreleri tasarlar .
  • Devre uygulaması , mantık kapısı seviyesinde veya hatta fiziksel seviyede uygulanabilecek bazı büyük blokların ( ALU'lar , önbellekler vb.) yanı sıra temel elemanların (örneğin, kapılar, çoklayıcılar , mandallar ) transistör düzeyinde tasarımlarını yapar . eğer tasarım bunu gerektiriyorsa.
  • Fiziksel uygulama , fiziksel devreler çizer. Farklı devre bileşenleri bir çip kat planına veya bir panoya yerleştirilir ve bunları birbirine bağlayan teller oluşturulur.
  • Tasarım doğrulama , her durumda ve tüm zamanlamalarda çalışıp çalışmadığını görmek için bilgisayarı bir bütün olarak test eder. Tasarım doğrulama süreci başladığında, mantık düzeyindeki tasarım, mantık öykünücüleri kullanılarak test edilir. Ancak, bu genellikle gerçekçi bir test yapmak için çok yavaştır. Böylece, ilk teste dayalı olarak düzeltmeler yapıldıktan sonra, Alanda Programlanabilir Kapı Dizileri ( FPGA'lar ) kullanılarak prototipler oluşturulur . Çoğu hobi projesi bu aşamada durur. Son adım, birkaç yeniden tasarım gerektirebilecek prototip entegre devreleri test etmektir.

İçin CPU , tüm uygulama işlemi farklı bir şekilde organize edilir ve genellikle şu şekilde ifade edilir işlemci tasarımı .

Tasarım hedefleri

Bir bilgisayar sisteminin tam şekli, kısıtlamalara ve hedeflere bağlıdır. Bilgisayar mimarileri genellikle standartlar, performansa karşı güç, maliyet, bellek kapasitesi, gecikme (gecikme, bilginin bir düğümden kaynağa gitmesi için geçen süredir) ve verim arasında değiş tokuş yapar . Bazen özellikler, boyut, ağırlık, güvenilirlik ve genişletilebilirlik gibi diğer hususlar da faktörlerdir.

En yaygın şema, derinlemesine bir güç analizi yapar ve yeterli performansı korurken güç tüketiminin nasıl düşük tutulacağını çözer.

Verim

Modern bilgisayar performansı genellikle , herhangi bir saat frekansında mimarinin verimliliğini ölçen döngü başına yönergeler (IPC) olarak tanımlanır ; daha hızlı bir IPC oranı, bilgisayarın daha hızlı olduğu anlamına gelir. Modern işlemciler kolayca 1. yakınında ulaşmak ederken Yaşlı bilgisayarlar 0.1 olarak düşük olarak IPC sayımları vardı Süperscalar saat döngüsü başına birkaç talimatları yürüterek üç IPC beş ulaşabilir işlemciler.

Farklı ISA'larda değişen miktarlarda iş yapabildikleri için makine dili talimatlarını saymak yanıltıcı olacaktır. Standart ölçümlerdeki "talimat", ISA'nın makine dili talimatlarının bir sayısı değil, genellikle VAX bilgisayar mimarisinin hızına dayanan bir ölçüm birimidir .

Birçok kişi bir bilgisayarın hızını saat hızıyla (genellikle MHz veya GHz cinsinden) ölçerdi. Bu, CPU'nun ana saatinin saniyedeki döngülerini ifade eder. Ancak, bu ölçüm biraz yanıltıcıdır, çünkü daha yüksek saat hızına sahip bir makine daha yüksek performansa sahip olmayabilir. Sonuç olarak, üreticiler bir performans ölçüsü olarak saat hızından uzaklaştı.

İşlevsel birimlerin karışımı , veri yolu hızları, kullanılabilir bellek ve programlardaki komutların türü ve sırası gibi diğer faktörler hızı etkiler .

İki ana hız türü vardır: gecikme ve verim. Gecikme, bir sürecin başlangıcı ile tamamlanması arasındaki süredir. Verimlilik, birim zamanda yapılan iş miktarıdır. Kesinti gecikmesi , sistemin bir elektronik olaya (disk sürücüsünün bazı verileri taşımayı bitirmesi gibi) garanti edilen maksimum yanıt süresidir.

Performans, çok çeşitli tasarım seçeneklerinden etkilenir; örneğin, bir işlemciyi ardışık düzene bağlamak genellikle gecikmeyi daha da kötüleştirir, ancak verimi daha iyi hale getirir. Makineleri kontrol eden bilgisayarlar genellikle düşük kesinti gecikmelerine ihtiyaç duyar. Bu bilgisayarlar gerçek zamanlı bir ortamda çalışır ve belirli bir süre içinde bir işlem tamamlanmazsa başarısız olur. Örneğin, bilgisayar kontrollü kilitlenme önleyici frenler, fren pedalı algılandıktan sonra öngörülebilir ve sınırlı bir süre içinde frenlemeye başlamalıdır, aksi takdirde fren arızası meydana gelir.

Kıyaslama , bir bilgisayarın bir dizi test programından geçmesi için geçen süreyi ölçerek tüm bu faktörleri hesaba katar. Kıyaslama güçlü yönler gösterse de, bir bilgisayarı nasıl seçtiğiniz olmamalıdır. Genellikle ölçülen makineler farklı ölçülerde ayrılır. Örneğin, bir sistem bilimsel uygulamaları hızlı bir şekilde işleyebilirken, bir diğeri video oyunlarını daha sorunsuz hale getirebilir. Ayrıca, tasarımcılar, belirli bir kıyaslamanın hızlı bir şekilde yürütülmesine izin veren ancak genel görevlere benzer avantajlar sunmayan donanım veya yazılım aracılığıyla ürünlerine özel özellikler hedefleyebilir ve ekleyebilirler.

Güç verimliliği

Güç verimliliği, modern bilgisayarlarda bir başka önemli ölçümdür. Daha yüksek bir güç verimliliği, genellikle daha düşük hız veya daha yüksek maliyetle takas edilebilir. Bilgisayar mimarisinde güç tüketimine atıfta bulunulan tipik ölçüm, MIPS/W'dir (watt başına saniyede milyonlarca talimat).

Modern devreleri başına gereken daha az güce sahip transistörü çip büyür başına transistör sayısı gibi. Bunun nedeni, yeni bir çipe yerleştirilen her transistörün kendi güç kaynağına ihtiyaç duyması ve ona güç sağlamak için yeni yolların oluşturulmasını gerektirmesidir. Ancak çip başına transistör sayısı daha yavaş bir oranda artmaya başlıyor. Bu nedenle, güç verimliliği, tek bir çipe giderek daha fazla transistör sığdırmaktan daha önemli olmasa da önemli olmaya başlıyor. Son işlemci tasarımları, mümkün olduğu kadar çok transistörü tek bir çipe sıkıştırmak yerine güç verimliliğine daha fazla odaklandıkları için bu vurguyu göstermiştir. Gömülü bilgisayarlar dünyasında, güç verimliliği, uzun süredir verim ve gecikme süresinin yanında önemli bir hedef olmuştur.

Pazar talebindeki değişimler

Saat frekansındaki artışlar, güç azaltma iyileştirmelerine kıyasla son birkaç yılda daha yavaş büyüdü. Bu, Moore Yasası'nın sona ermesi ve daha uzun pil ömrü ve mobil teknoloji için boyut küçültme talebi tarafından yönlendirildi . Daha yüksek saat hızlarından güç tüketimine ve minyatürleştirmeye odaklanmadaki bu değişiklik, Intel tarafından Haswell mikromimarisinin yayınlanmasında rapor edilen, güç tüketiminde %50'ye varan önemli azalmalar ile gösterilebilir ; güç tüketimi kriterlerini 30 ila 40 watt'tan 10-20 watt'a düşürdüler. Bunu, 3 GHz'den 4 GHz'e (2002'den 2006'ya) işlem hızı artışıyla karşılaştırdığımızda, araştırma ve geliştirmedeki odağın saat frekansından uzaklaşarak daha az güç ve daha az yer kaplamaya doğru kaydığı görülebilir.

Ayrıca bakınız

Referanslar

Kaynaklar

Dış bağlantılar