RISC ve CISC
RISC ve CISC, iki zıt komut kümesi felsefesini adlandırmaktadır: indirgenmiş komut kümesi bilgisayarları, küçük, basit, tekdüze, yazmaçtan-yazmaca komut kümelerini tercih ederken, karmaşık komut kümesi bilgisayarları, komut başına daha fazla iş yapan birçok güçlü, değişken uzunlukta komut sunmaktadır.
Tanım
RISC (indirgenmiş komut kümesi bilgisayarı), yükleme-depolama (load-store) modelinde yürütülen küçük, basit, sabit formatlı komut kümelerini vurgulayan bir tasarım felsefesidir; CISC (karmaşık komut kümesi bilgisayarı) ise genellikle değişken uzunlukta olan, bellekten-belleğe (memory-to-memory) işlemleri de içeren daha güçlü ve daha büyük bir komut kümesini vurgulamaktadır.
Kapsam
Bu konu, iki tasarım felsefesini ve bunların ödünleşimlerini kapsamaktadır: komut basitliği ve düzenliliği ile zenginlik ve kod yoğunluğu arasındaki denge, RISC'in yükleme-depolama (load-store) disiplini, basit komutların boru hattı (pipelining) avantajları ve modern yüksek performanslı CISC uygulamalarının karmaşık komutları dahili olarak RISC benzeri mikro-işlemlere nasıl dönüştürdüğü incelenmektedir. Bit düzeyindeki kodlamalar (komut formatları ve kodlama) ve boru hattı uygulama detayları (boru hattı ve tehlikeler) bu kapsamın dışındadır.
Temel sorular
- Bir komut kümesini basit, tekdüze işlemlere indirgeme motivasyonunu hangi tasarım hedefleri oluşturmaktadır?
- Yükleme-depolama (load-store) disiplini RISC'i CISC'ten nasıl ayırmaktadır?
- Basit, düzenli komutlar neden boru hattı (pipeline) işlemlerine daha kolay uyum sağlamaktadır?
- Modern x86 işlemcileri, bir CISC komut kümesini RISC benzeri dahili yürütme ile nasıl uzlaştırmaktadır?
Anahtar kavramlar
- indirgenmiş komut kümesi
- karmaşık komut kümesi
- yükleme-depolama (load-store) mimarisi
- sabit ve değişken uzunluklu komutlar
- mikro-işlemler
- derleyici-donanım ortak tasarımı
- kod yoğunluğu
Temel kuramlar
- RISC argümanı
- Patterson ve Ditzel, iyi derleyici desteğiyle hızlı bir şekilde yürütülen ve verimli bir şekilde boru hattına alınan küçük bir basit komut kümesinin, nadiren kullanılan ve hızlı bir şekilde uygulanması zor olan karmaşık komut kümelerinden daha iyi performans gösterebileceğini savunmuşlardır.
Mekanizmalar
RISC tasarımları, komutları basit, sabit uzunlukta ve yazmaçtan-yazmaca (register-to-register) tutar; bellek için ayrı yükleme (load) ve depolama (store) komutları bulunur; bu düzenlilik, kod çözme ve boru hattı işlemlerini basitleştirmektedir. CISC tasarımları, belleğe doğrudan erişebilen ve çok adımlı işlemler gerçekleştirebilen karmaşık, değişken uzunlukta komutlar sunmaktadır. Modern CISC uygulamaları, karmaşık komutları daha basit dahili mikro-işlemler dizilerine dönüştürür ve bu mikro-işlemler daha sonra RISC benzeri bir çekirdek tarafından yürütülmektedir.
Klinik önem
RISC/CISC ayrımı, baskın bilgi işlem platformlarını şekillendirmiştir: ARM ve RISC-V, RISC prensiplerini benimsemekte ve mobil, gömülü ve giderek artan bir şekilde sunucu ve dizüstü bilgisayar pazarlarında lider konumdadır; x86 (RISC benzeri dahili yapısı olan bir CISC ISA) ise uzun süre PC'lere ve sunuculara hakim olmuştur. Bu tartışma, enerji verimliliği, performans ve yazılım ekosistemleri hakkındaki devam eden seçimlere ışık tutmaktadır.
Tarihçe
RISC kavramı, IBM 801 araştırmalarından ve 1980'lerin başındaki Berkeley RISC ve Stanford MIPS projelerinden doğmuş, Patterson ve Ditzel'in 1980 tarihli makalesinde ifade edilmiştir. RISC fikirleri, SPARC, MIPS, PowerPC ve ARM gibi ticari tasarımlar aracılığıyla yayılmıştır. Bu arada x86, RISC benzeri dahili mikro-işlemleri benimseyerek varlığını sürdürmüş ve açık kaynaklı RISC-V ISA, saf RISC tasarımı için ivmeyi yeniden canlandırmıştır.
Tartışmalar
- RISC ve CISC ayrımı hala önemli midir?
- Modern CISC yongaları dahili olarak RISC benzeri mikro-işlemler olarak yürütüldüğü ve her iki taraf da boru hattı (pipelining) ve önbellekleme (caching) özelliklerini paylaştığı için, bazıları orijinal ayrımın ortadan kalktığını savunmaktadır; diğerleri ise komut kümesi düzenliliğinin hala kod çözme verimliliğini, gücü ve doğrulamayı etkilediğini belirtmektedir.
Öne çıkan isimler
- David A. Patterson
- David R. Ditzel
- John L. Hennessy
- John Cocke
İlgili konular
Temel eserler
- patterson1980risc
- hennessy2019
- patterson2020
Sıkça sorulan sorular
- RISC her zaman CISC'ten daha mı hızlıdır?
- Doğası gereği değildir. RISC'in basitliği, boru hattı (pipelining) ve yüksek saat hızlarını kolaylaştırmaktadır, ancak bir CISC komutu komut başına daha fazla iş yapabilmektedir. Pratikte, yüksek performanslı CISC işlemcileri komutları RISC benzeri işlemlere dönüştürmektedir, bu nedenle elde edilen performans yalnızca ISA etiketine değil, tüm mikro mimariye bağlıdır.
- ARM ve RISC-V neden RISC mimarileri olarak adlandırılmaktadır?
- Her ikisi de, RISC felsefesinin belirleyici özellikleri olan, yükleme-depolama (load-store) bellek modeli ve az sayıda adresleme modu ile çoğunlukla sabit uzunlukta, basit komutların küçük kümelerini kullanmaktadır; bu da onları uygulaması verimli ve enerji kısıtlı ve yüksek verimli tasarımlara uygun hale getirmektedir.