Bilgisayar mimarisi

Bilgisayar mimarisi

Bilgisayar Mimarisi en az 3 ana alt kategoriden oluşur. Bu alt kategorileri şu şekilde sıralayabiliriz:

1.Komut Kümesi Mimarisi (Instruction Set Architecture veya ISA)

- Komut Kümesi Mimarisi (ISA) bir bilgisayar donanımının, alt düzey programcıya (sistem programlarına) görünen yüzüdür.
- Bilgisayarlar üst düzey programlama dillerini (Java, C++ , vb..) anlamazlar. İşlemcinin bu dilleri anlaması için bazı yazılım araçlarına (örnek olarak derleyiciler) ihtiyacı vardır. Bu araçlar üst düzey programlama dillerinde yazılan kodları işlemcinin anlayabileceği hale getirir.

2.Mikro Mimari (Micro Architecture)

- Mikro Mimari ya da bilgisayar organizasyonu işlemcinin komut kümesi mimarisini nasıl uygulayacağını açıklar. Komut kümesi mimarisi birçok şekilde uygulanabildiğinden
birçok durum oluşur.(Enerji verimliliği, performans gibi)

3.Sistem Tasarımı (System Design)

- Sistem Tasarımı diğer bütün donanımsal bileşenleri içerir. Bunlar ;
- Bilgisayar Bus’larını ve Switch’lerini Sisteme bağlamak
- Memory kontrolcüsü ve hiyerarşileri
- CPU off load mekanizmasının bazı memory’lre direkt girişi
- Mullti-Processing gibi önemli noktalar.

Bilgisayar mimarisi çoğunlukla bilgisayar organizasyonunun tanımı ile karıştırılır. Her ikisi de bilgisayar sistemini tarif etmek için kullanılan temel esaslardır. Bilgisayar mimarisi, bir programın mantıksal çalışmasına doğrudan etki eden bir özelliktir. Komut kümesi, değişik şekillerdeki veri tiplerini temsil etmek için kullanılan bit sayısı, bellek adresleme teknikleri ve giriş-çıkış mekanizmasının dahil olduğu bilgisayar tasarımı bilgisayar mimarisine girmektedir. Bilgisayar organizasyonu daha çok yazılımla donanım arasındaki bağdaştırmayla ilgilidir. Çevre elemanları, kullanılan bellek teknolojisi gibi kullanıcıya ayrıntılarıyla açıkça görünen özellikler ise bilgisayar organizasyonuna aittir. Yani bilgisayar mimarisi tanımı daha düşük seviye teknoloji, organizasyon tanımı ise daha kullanıcıya yönelik üst düzey özellik taşımaktadır. Mimari, buyruk kümesi mimarisi ve donanım sistemi mimarisi olmak üzere iki farklı yaklaşımla tanımlanmaktadır. Buyruk kümesi mimarisi, bilgisayarın hesaplama karakteristiklerini belirleyen komut kümesinin mimarisi; donanım sistemi mimarisi ise, MİB (Merkezî İşlem Birimi), depolama ve giriş-çıkış sistemlerinin dâhil olduğu alt sistem ve bunların bağlantı şeklidir. Programcının bu elemanlara yön verecek programı yazması halinde nasıl bir kabul göreceği ise yine buyruk kümesi mimarisidir.
Buyruk kümesi mimarisi yazılım ile donanım arasındaki iletişimi sağlar. Yazılımdaki komut ne kadar karmaşık olursa, donanım da o kadar karmaşık olur. Bu yüzden komut kümesi ne çok karmaşık ne de çok yalın olmalıdır. Buyruk kümesi mimarisinin yazılım ve donanımla ilişkisi aşağıdaki şekilde görülmektedir.
Programcılar özel bilgisayar sistemleri için, özel donanıma göre kod yazmaktaydılar. Bu yüzden bir makine için yazılan program diğer makinelerde çalışmamaktaydı ve her yeni makine için yeni kodlar yazılmak durumundaydı. IBM firması bu sorunu çözmek için buyruk kümesi mimarisi(ISA) ve mikrokod motoru denilen bir yöntem geliştirdi.

Donanımsal yaklaşım

Mikrokod kullanılarak ISA sisteminin yürütülmesi, komutlarını başlangıçta doğrudan çalıştıran sistemlere göre daha yavaştır. Bu aksaklığı gidermek için komutların doğrudan donanım elemanları tarafından yorumlanarak sistemin denetlendiği bir mimari yaklaşımı üzerinde çalışılmıştır. Komutların anlaşılır standartta bir boyuta getirilerek çalıştırıldığı RISC modeli sisteminde küçük ve hızlı komut kümesiyle donanım üzerinde hakimiyet mikrokoda göre daha kolaydır. RICS tasarımcıları da ürünlerinde ISA kavramını değiştirmeden kullanmışlardır.

Programsal yaklaşım

Sistem tasarımcıları performansı arttırmak için bazı program işlevlerini sık sık mikrokodlara(firmware) aktardılar. Donanımı devreye sokacak buyruk kümesinin yer aldığı bu yere mikrokod motoru denilmektedir. Mikrokod motoru, ROM bellek sayesinde işlemci içerisine yerleştirilmiştir ve programcının yazdığı kodları işlemcinin daha çabuk anlayıp çalıştırabileceği küçük mikrokodlara dönüştürür. CISC tipi işlemcilerde mikrokodun temel işlevi, alt düzey komut kümesiyle, programcının çalıştığı üst düzey komutlar arasında soyutlamalar olusturmaktadır. İşlemci üreticileri, mimariyi meydana getiren elemanların işlevleri ve bu elemanların devreye nasıl sokulacağı konularında düşünerek sistem tasarımı yaparlar. Elemanları devreye sokmak için program yazmak gereklidir ve donanım mimarisini programcıya aktarabilmek için kullanıcıya komut kümesini hazır olarak vermek en iyi yoldur. Günümüz bilgisayarlarında hala mikroprogramlama esasına göre çalışan bilgisayarlar vardır. Intel ve AMD gibi işlemci üreticileri ürünlerinde ISA x86 buyruk kümesinin tüm özelliklerini yeniliklerle beraber kullanmaktadırlar.

Başarım

Bilgisayarın başarımı sıklıkla saat hızı terimleriyle tanımlanır (genellikle MHz ya da GHz olarak). Bu CPU'nun ana saatinin saniyedeki döngüleriyle ilgilidir. Ancak bu ölçüm, bir şekilde yanlış yönlendirse de yüksek saat hızlı bir makine olarak mutlaka daha yüksek bir performansı olmayabilir. Sonuç olarak AMD gibi yapımcılar saat hızını bir performans göstergesi olarak almamaktadırlar. Çağdaş CPU’lar birden fazla emri bir saat döngüsünde gerçekleştirirler ve böylece programın hızı oldukça artar. Veri yolu hızları, kullanılabilir bellek ve programlardaki emirlerin tipi ve sırası gibi hızı etkileyen bileşenler de çalışır.
Hızın iki ana tipi vardır: gecikme (latency) ve throughput. Kısaca gecikme, bir işlemin başlangıcı ve sonuçlanması arasındaki süredir. Throughput ise belli bir zamanda yapılan işin miktarını belirtir. Kesilme gecikmesi sistemin bir elektronik olaya (disk sürücüsünün bilgi aktarımını bitirmesi gibi) vereceği garanti edilmiş en fazla yanıt zamanıdır. Bu sayı çok geniş sıralı bir tasarım seçenekleri tarafından etkilenir. Örneğin; önbellek eklemek gecikmeyi yavaşlatırken, throughput iyileşir. Mekanizmayı yöneten bilgisayarlar genellikle düşük kesilme gecikmelerine gerek duyarlar. Bu bilgisayarlar gerçek zaman diliminde işlem yaparlar ve bu işlem belirlenen sürede bitmezse işlem başarısız olur.
Bilgisayarın performansı, uygulama tanım alanına bağlı olarak diğer ölçümler kullanılarak da hesaplanabilir. Sistem CPU bound (sayısal hesaplamalarda), I/O bound (Web sunucusu uygulamalarında) veya memory bound (video düzenlemelerde) olabilir. Güç tüketimi sunucu ve diz üstü bilgisayarlar gibi taşınabilir cihazlar için önemli hale gelir. 
Ölçütleme (benchmarking') bilgisayar bu test program serisini çalıştırırken kullandığı süreyi ölçerek bütün bunları bir hesaba aktarmaya çalışır. Ölçütleme gücü yüksek gösterse de bu bilgisayar seçmede yardımcı olmayabilir. Sıklıkla ölçülen makineler farklı ölçümlere ayrılır. Örneğin; bir sistem bilimsel uygulamaları hızlıca idare ederken, diğeri popüler video oyunlarını kolayca oynatabiliyordur. Dahası yazılım veya donanımlara değişik özellikler eklemek isteyen tasarımcılar özel bir ölçüte izin verirler. Böylece hızlı kontrol sağlanır fakat diğerleriyle, çoğunlukla genel işlevlerle benzer avantajlara sahip olmazlar. En iyilemenin (optimization') genel planı bilgisayarın farklı taraflarındaki değerleri bulmak içindir. Denge içindeki bir bilgisayar sisteminde bilgi hızı bütün bölümler için sabit olacaktır ve değer bunu garantiye almak için eşit olarak dağıtılacaktır. Bilgisayar sisteminin kesin formu en iyi şekilde belirlenmiş baskı ve amaçlara bağlı olacaktır.