İndirgenmiş komut takımıyla hesaplama, (İngilizce: Reduced instruction set computing veya RISC), işlemci tasarım alanında 1980'li yıllarda önerilen ve giderek CISCin yerini alan yaklaşımdır.

Tarihsel gelişimiDüzenle

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 İş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.[1]

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ı. Ayni 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.[2]

Neden RISC?Düzenle

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.

Bkz. EPIC

  1. ^ Reilly, Edwin D. (2003). Milestones in computer science and information technology. ss. 50. ISBN 1-57356-521-0.  Geçersiz |url-erişimi=registration (yardım)
  2. ^ Waterman, Andrew; Lee, Yunsup; Patterson, David A.; Asanovi, Krste. "The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2 (Technical Report EECS-2014-54)". University of California, Berkeley. 19 Ağustos 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Aralık 2014.