RISC - CISC

RISC mimarisinin avantajlarını ve dezavantajlarını incelemenin en basit yolu, öncülü CISC (Complex Instruction Set Computers, Karmaşık Komut Setli Bilgisayar) mimarisiyle karşılaştırmaktır.

Görsel, RISC vs CISC videosundan alınmıştır.

Bellekteki İki Sayının Çarpılması

Aşağıda genel bir bilgisayarın depolama düzenini temsil eden bir şema görülebilir. Ana bellek (satır) 1: (sütun) 1 ila (satır) 6: (sütun) 4 numaralı konumlara bölünmüştür.

Tüm hesaplamaları yapmaktansa yürütme birimi sorumludur. Bununla birlikte, yürütme birimi yalnızca altı kaydediciden birine (A, B, C, D, E veya F) yüklenen veriler üzerinde çalışabilir.

Diyelim ki biri 2:3 konumunda, diğeri 5:2 konumunda kayıtlı iki sayının çarpımını bulmak ve ardından çarpımı tekrar 2:3 konumunda saklamak istiyoruz.


CISC Yaklaşımı

CISC mimarisinin temel amacı, bir görevi mümkün olduğu kadar az assembly satırıyla tamamlamaktır. Bu, bir dizi işlemi anlayabilen ve çalıştırabilen işlemci donanımı inşa edilerek başarılır.

Bu özel görev için, bir CISC işlemcisi belirli bir komut kullanır (buna MULT diyelim). Yürütüldüğünde, bu komut iki değeri ayrı kaydedicilere yükler, yürütme birimindeki işlenenleri çarpar ve ardından çarpımı gerekli kaydediciye saklar. Böylece, iki sayının çarpılması görevi tek bir komutla tamamlanabilir:
MULT 2:3, 5:2
MULT, "karmaşık komut" olarak bilinen şeydir. Doğrudan bilgisayarın bellek alanlarından çalışır ve programcının açıkça herhangi bir yükleme veya saklama fonksiyonunu çağırmasını gerektirmez.

Bu komut, daha yüksek seviyeli dillerdeki komutları anımsatır. Örneğin, a'nın 2:3 değerini ve b'nin 5:2 değerini temsil ettiğini düşünürsek, bu komut C'deki a = a * b ifadesiyle aynıdır.

Bu sistemin temel avantajlarından biri, derleyicinin yüksek seviyeli bir dil ifadesini assembly'e derlemek için çok az çalışma yapması gerekmesidir. Kodun uzunluğu nispeten kısa olduğundan, komutları saklamak için çok az RAM gerekir. Karmaşık komutların doğrudan donanımın içinde inşa edilmesine önem verilmiştir.

RISC Yaklaşımı

RISC işlemcileri yalnızca bir saat döngüsü içinde gerçekleştirilebilecek basit komutları kullanır. Böylece yukarıda açıklanan MULT komutu üç ayrı komuta ayrılabilir: Verileri bellek alanından bir kaydediciye taşıyan LOAD, kaydedicilerde bulunan iki işlenenin çarpımını bulan PROD ve verileri kaydediciden bellek alanlarına taşıyan STORE.

CISC yaklaşımında açıklanan işlem adımlarını tam olarak gerçekleştirmek için bir programcının dört assembly satırı kodlaması gerekir:
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
İlk başta, işlemlerin bu şekilde tamamlanmasının daha verimsiz olduğu düşünülebilir. Daha çok kod satırı bulunduğundan, assembly düzeyinde komutları saklamak için daha çok RAM gerekir. Ayrıca derleyicinin üst seviyeli bir dil ifadesini bu biçimdeki bir koda dönüştürmek için daha çok çalışma yapması gerekmektedir.

Özetle CISC'i RISC ile karşılaştıracak olursak,

CISC:
  • Donanıma önem verir
  • Çok saat döngülü karmaşık komutlar içerir
  • Bellekten belleğe: LOAD ve STORE komutlarda birleştirilmiştir
  • Küçük kod boyutları, saniyede yüksek çevrim sayısı
  • Karmaşık komutların depolanması için transistörler kullanılır
RISC:
  • Yazılıma önem verir
  • Tek saat döngülü indirgenmiş komutlar içerir
  • kaydediciden kaydediciye: LOAD ve STORE, ayrı komutlardır
  • Saniyede düşük çevrim sayısı, büyük kod boyutları
  • Bellek kaydedicilerinde daha çok transistör harcar
Bununla birlikte, RISC stratejisi bazı önemli avantajlar da getirmektedir. Her komutun yürütülmesi için sadece bir saat döngüsü gerektirdiğinden, programın tamamı, çok saat döngülü MULT komutuyla yaklaşık olarak aynı sürede yürütülür.

İndirgenmiş RISC komutları, donanım alanında karmaşık komutlardan daha az transistör gerektirdiğinden genel amaçlı kaydediciler için daha çok alan bırakır. Komutların tümü tek bir sürede (yani bir saat darbesinde) gerçekleştirildiğinden küme komut işleme (boru hattı) mümkündür.

LOAD ve STORE komutlarını ayırmak aslında bilgisayarın yapması gereken işleri azaltır. Bir CISC tarzı MULT komutu çalıştırıldıktan sonra, işlemci kaydedicileri otomatik olarak siler. İşlenenlerden birinin başka bir hesaplama için kullanılması gerekiyorsa işlemci verileri bellek alanından bir kaydediciye yeniden yüklemelidir. RISC'te işlenen, yerine başka bir değer yüklenene kadar kaydedicide kalacaktır.

Performans Denklemi

Aşağıdaki denklem, genellikle bir bilgisayarın performans yeteneğini ifade etmek için kullanılır:


CISC yaklaşımı, komut başına döngü sayısını feda ederek program başına komut sayısını en aza indirmeye çalışır. RISC bunun tersini yapar ve program başına komut sayısı karşılığında komut başına çevrim sayısını azaltır.

RISC Barikatları

RISC tabanlı işlemciler avantajlarına rağmen ticari dünyada bir yer kazanmayı on yılı aşkın bir sürede başarabildi. Bu, büyük ölçüde yazılım desteğinin olmamasından kaynaklanıyordu.

Apple'ın Power Macintosh serisi RISC tabanlı yongalara sahip olmasına ve Windows NT, RISC uyumlu olmasına rağmen, Windows 3.1 ve Windows 95, CISC işlemcileri düşünülerek tasarlanmıştır. Birçok şirket, ortaya çıkan RISC teknolojisiyle şansını denemek istemiyordu. İşlemci geliştiricileri, ticari ilgi olmadan fiyatlarını rekabetçi hale getirmek için RISC yongalarını yeterince büyük miktarda üretemedi.

Diğer bir büyük aksilik, Intel'in varlığıydı. Her ne kadar CISC yongaları gittikçe hantallaşsa ve üretimi zorlaşsa da Intel, geliştirmeyi sürdürebilecek ve güçlü işlemciler üretebilecek kaynaklara sahipti. Her ne kadar RISC çipleri Intel'in belirli alanlardaki çabalarını aşsa da farklar, alıcıları teknolojilerini değiştirmeye ikna edecek kadar büyük değildi.

Genel Olarak RISC Avantajları

Bugün, Intel x86'nın, CISC mimarisini sürdüren tek yonga olduğu söylenebilir. Bu, öncelikle bilgisayar teknolojisinin diğer alanlarındaki gelişmelerden kaynaklanmaktadır. RAM'lerin fiyatı önemli ölçüde azaldı. 1977'de, 1 MB DRAM yaklaşık 5000$ tutarındaydı. 1994'e gelindiğinde, aynı miktarda bellek enflasyona göre uyarlandığında sadece 6 dolara mal olmaya başladı. Derleyici teknolojisi de daha gelişmiş hale geldi, böylece RAM'in RISC kullanımı ve yazılıma önem verilmesi ideal hale geldi.

Türkçe olarak yeteri kadar CISC ve RISC karşılaştırma yazısı olsa da cs.stanford.edu/people/eroberts/courses/soco/projects/risc/risccisc adresinde yer alan RISC vs. CISC başlıklı yazıyı da Türkçeye kazandırmak istedim.

Yorumlar

Bu blogdaki popüler yayınlar

Mızıka Tabları Nasıl Okunur

conio.h

Muhtar Kellesi