RISC

İndirgenmiş komut takımlı bilgisayar (İngilizce: Reduced instruction set computer veya kısaca RISC), işlemci tasarım alanında 1980'li yıllarda önerilen ve giderek CISC'in yerini alan yaklaşımdır.
Tarihsel gelişimi
Bir bilgisayarın beş bileşeninden -girdi, çıktı, bellek, hesap ve kontrol-, son ikisinin bir entegre devre olarak gerçekleştirilmiş hali olan mikroişlemci belli makine dilinde komutları uygulayan devrelerden oluşur. Seksenli yıllarda hala, bilgisayar kullanımını kolaylaştıran işletim sistemi ve programlama dilini makine diline otomatik tercüme eden derleyici gibi önemli yazılımlar derleyicilerin yeteri kadar randımanlı sonuç veremeyeceği düşünülüp, makine diline bire bir eş kavramlar içeren Assembly dilinde yüksek emek sarfıyla yazılırdı. Her şeyin C programlama dili ile yazıldığı Unix işletim sistemi o sıralarda büyük kabul görmeye başladı. Daha sonra CISC'in çoğu komutlarının aslında pek kullanılmadığı bu yüzden sadece kesin kullanılacağı bilinen, az sayıda ve daha özenle tasarlanmış bir komut takımının hem zaman hem de enerji israfını azaltacağı savı tutulmaya başladı. RISC terimi ilk David Patterson tarafından önerildi.
Berkeley RISC projesi 1982'de CISC tasarımlarında ortalama 100.000 transistöre karşılık sadece 44.420 transistörden oluşan ve 32 komut içeren RISC-I işlemcisini teslim etti. RISC-I çipi diğer tüm tek çipli tasarımlardan daha iyi bir performans gösteriyordu. Peşinden 1983 yılında 40.760 transistör, 39 komut içeren ve RISC-I'den üç kat daha hızlı RISC-II geldi.
Stanford RISC projesi 1981'de Stanford Üniversitesi'nde John L. Hennessy tarafından lisansüstü bir dersten gelişti. 1983'te çalışan bir sistem ile, 1984'te basit programları çalıştırabilen bir çözüm ile sonuçlandı. Aynı yıl kurulan MIPS Computer Systems 1985'te MIPS ve R2000 microprocessor ürünlerini pazarlar hale geldi.
Hewlett Packard 1986'da PA-RISC, 1987'de SUN Microsystems SPARC, IBM 1990 ve 1995'te kendi RISC temelli server ürünleri ile gelişme devam etti. Günümüzde hem yüksek kapasiteli merkezi sistemler, hem de küçük ölçekte ve kullanıcıya yakın çözümlerde özellikle ARM, MIPS, SH4, PowerPC, AVR temelli sistemler çoğunluktadır.
CISC bile artık donanım seviyesinde (fazladan devrelerle) RISC'e derlenip aslında RISC kullanarak gerçekleştirilmektedir.
2010 yılında Berkeley'de başlayıp 2014'te sonuç veren RISC-V projesi ile güncel ihtiyaçlara cevap veren ilk açık kaynak RISC hayata geçti.
Neden RISC?
Bilgisayar tasarımında önemli noktalardan birisi işlemcinin komut kümesinin belirlenmesidir. Belirli bir bilgisayar için seçilen komut kümesi bu bilgisayarın makine diliyle yazılımlanmasını belirler. Eski bilgisayarlarda küçük ve basit komut kümeleri mevcuttur. Bunun nedeni komutları yürütecek donanımın küçük tutulmasıydı. Sayısal donanım ucuzlamaya başlayıp, tüm devreler daha ileri bir seviyeye ulaşınca bilgisayar komutları da hem sayı hem de karmaşıklık olarak arttı. Bazı bilgisayarlar 100 hatta 200'ün üzerinde komut kümesine sahip oldular. Bu bilgisayarlar çok farklı veri tiplerini
kullanabiliyorlar ve çok sayıda adresleme kipi bulunuyordu. Bilgisayar donanımlarının karışık olma eğilimi birçok etkenin sebep olduğu bir olaydır. Örneğin mevcut kiplerin güncellenmesi, yüksek seviyeli dilden makine diline geçişin sağlanması ve yazılım temelli işlevlerin donanım temelli olmasının sağlanması bu nedenlerden bazılarıdır. Çok sayıda komutları bulunan bir bilgisayar CISC olarak adlandırılır.
Yüksek düzeyli dillerde yazılmış olan yazılımların CISC makinelerde derlenmesi ile elde edilen kodlar incelendiğinde:
Çok sayıda atama (A=B) yapıldığı
Erişilen verilerin çoğunlukla yerel ve skaler (dizi ve matris olmayan) veriler olduğu
Makine dili yazılımlarda en büyük yükü altyazılım çağrılarının oluşturduğu
Altyazılımların büyük çoğunluğunun (%98) 6 veya daha az parametre aldığı
Altyazılımların büyük çoğunluğunun (%92) 6 veya daha az yerel değişken kullandığı
Altyazılım çağırma derinliğinin büyük çoğunlukla (%99) 8'den daha az olduğu
belirlenmiştir. Yüksek düzeyli yazılımlama dillerinin oluşturduğu bu veriler dikkate alınarak merkezi işlem birimlerinin verimlerini artırmak amacıyla daha az bellek erişimi yapan ve:
Daha az sayıda komut
Daha az sayıda adresleme kipi
Sabit uzunlukta komut yapısı (komut çözme işi kolaydır)
Doğrudan bellek üzerinde işlem yapan komutlara sahip olmayıp, işlemlerin iç saklayıcılarda yapılması
Belleğe sadece okuma/yazma işlemleri için erişme
Tek çevrimde alınıp yürütülebilen komutlar (komut işhattı sayesinde)
Devrelendirilmiş (hardwired) donanım birimi
özelliklerine sahip olan RISC işlemciler tasarlanmıştır. Bazıları tüm RISC makinelerde bulunmayan bazıları ise CISC makinelerde de rastlanılabilen RISC işlemciler için özellikle önemli özellikler ise:
Çok sayıda saklayıcı (register file)
Kesişimli saklayıcı penceresi (overlapped register window)
Komutlar için optimize edilebilen işhattı(pipeline)
Derleyici desteği
olarak sayılabilir.