Birinin bir CISC uygulamayı tercih etmesinin pek çok nedeni vardır. En belirgin neden, mevcut bir CISC komut seti ile ikili uyumluluk içindir. Yazılım ikili çeviri teknolojisi gelişmiş olsa da, donanım tabanlı uyumluluğun bazı teknik avantajları (ayrıca daha az çeviri önbelleğe almanın dezavantajı) ve daha güvenilir görünmenin daha az teknik avantajı vardır.
Kod yoğunluğu, belki de CISC'yi seçmenin en önemli ikinci nedenidir. Renesas RX, kod belleği boyutunun önemli bir maliyet faktörü olduğu mikrodenetleyicileri hedef aldığı için özellikle kod yoğunluğu için bir CISC olarak tasarlanmıştır. Değişken uzunluklu talimatlar, karmaşık talimatlar (çoğunlukla daha fazla adresleme modu), örtülü işlenenler ve daha düşük kayıt, tüm fayda kodu yoğunluğunu sayar.
CISC'yi seçmenin tarihsel (ve bence yanlış yönlendirilmiş) bir nedeni, daha yüksek bir dil ve işlemci kullanan programcılar arasındaki anlamsal boşluğu kapatmaktı. Karmaşık talimatlar genellikle bir basit talimatlar dizisi ile değiştirilebildiği için, bir RISC için daha yüksek seviyeli bir dil derleyicisinin karmaşıklığının bir dil eşleştirme CISC'sinden daha karmaşık olması gerekmez. RISC (anlamsal çatışmayı) önler (burada bir işlemci talimatı karşılık gelen dil ifadesinden daha az veya çok çalışır) ve güç azaltma ve zamanlama optimizasyonlarını kolaylaştırır. (Daha fazla ayrıntı için bkz. "Derleyici geliştirme çabalarındaki CISC ve RISC ile ilgili travmalar nelerdir?"
Bir talimatın uygulanması ile ilgili önemli bir sabit maliyet olabilir. Bu, bu ek yükü daha gerçek çalışmaya yaymak için nispeten karmaşık talimatların kullanılmasını teşvik eder; Dinamik komut sayısının azaltılması performansı artırabilir. Mantık ve RAM'in maliyeti ROM'un maliyetinden çok daha yüksek olduğunda, karmaşık talimatlar için teşvik, bir talimatın mikro kod aranarak çözüldüğünden önemli olmuştur.
Tarihsel kanıtlarla çelişen CISC'yi kullanmanın bir nedeni, mikro kitaplığın her mikro mimari için optimize edilebildiği ve standart kütüphanelerin yeni bir uygulamanın özelliklerini kullanmakta yavaş olabileceğidir. REP MOVSB için mikro kodun aksine, yazılım uygulamasının optimizasyon seviyesi, kütüphanelerin mikro koddan daha fazla dikkat çekebileceğini gösterir. Bunun bir kısmı daha geniş bir kullanıcı tabanını hedefleyen işlemci satıcısından gelebilir, bu nedenle çabanın haklı gösterilmesi, geliştiricilerin veya kullanıcıların yerel çıkarlarının uygulama çabalarını önyargılı hale getirdiği açık kaynaklı veya dahili yazılıma kıyasla daha zor olabilir.
İşlemci ile optimize edilmiş bir standart kütüphaneyi gönderebilmek önemli cazibe merkezlerine sahiptir. Bir platform standart kütüphanesinin saklanması ve yürütülmesi, yazılım-donanım kod tasarımı ile önemli ölçüde optimize edilebilir. Karmaşık bir komut ile bir Platform Soyutlama Katmanı çağrısı arasındaki ayrım ince (veya olmayan) olabilir. Bir RISC tasarımı, PAL çağrılarını idare etmek için aynı uygulama tekniklerini kullanabilir; CISC, özel donanımda genel talimat setinde bulunmayan işlemleri, akıllı önbellekleme ve kod çözmeyi kullanarak ve kayıt operandlarını belirtmeyi de içeren karmaşık talimatlar için olduğu gibi kullanabilir. genellikle bir ABI işlevine benzeyen adanmış kayıtlar kullanın). CISC ile ilişkilendirilen zihinsel model bu gibi optimizasyonları teşvik edebilir. Buna ek olarak, kullanıcılar bir "zorla dahil etme" tarafından daha az rahatsız olabilirler.
Nispeten karmaşık talimatların kodunun çözülmesi, bir talimatlar dizisinin semantik bir ünite olarak kabul edildiği, karşılaştırılabilir RISC deyim tanıma tekniğinden daha az ek yüke (ve belki de niyet alma konusunda daha güvenilirdir) sahip olabilir. Bu genel gider farkı, daha küçük bir uygulamada en belirgindir, ancak bu bilgiyi kullanmak için kullanılan genel gider, kod çözme tasarruflarının önemini azaltır.
Ek bağlamsal bilgi donanım optimizasyonunu kolaylaştırabilir. Örneğin, bellekteki bir değeri artırırken, donanım bellek adresinin iki kez kullanıldığını (yük ve depo için) önbellek yolunda kayıt ve önbellekleme için bir fırsat sağladığını fark edebilir. Karmaşık talimatlar bu bilgileri açıkça sağlayabilir. Karmaşık bir talimatta, ara değerler açık bir ömre sahiptir (talimatın değeri); geleneksel bir RISC siciline sahip olan kayıt defterlerinin, geçerliliğin sona erdiğini belirtmek için açıkça üzerine yazılması gerekir. (Not: Bir RISC, her kullanımdan sonra her zaman sıfırlanan ve tek kullanımlık bir geçici değer belirtmek için bir araç sağlayan bir kayıt belirtebilir. Bu tür talimatlar orta derecede daha karmaşık olacaktır.)
Uygulama detayları bir soyutlama katmanının arkasına gizlenmezse, farklı tradeoffiyonları optimize etmek için farklı mikro mimarileri kullanmak zorlaşır. Mimari tasarım olarak mikro mimari detayların ortaya çıkarılması, mikro mimariyi uyumluluk garantisine kilitler. PAL yazılımı, karmaşık talimatlarla aynı şekilde optimize edilebilse de, donanım yazılımı kod tasarımı gerektirir. Örgütsel ayrılık ve çeşitlilik, kod tasarımını zorlaştırır.
Karmaşık talimatlar, ayrıcalıklı duruma güvenli erişim sağlayabilir. Örneğin, karmaşık talimatlar genellikle kesintilere göre atomiktir. Bir RISC komut seti, kesintileri geçici olarak askıya almak için kullanıcı düzeyinde bir mekanizma sunsa da, muhtemelen bağlı yük gibi bir şey bile olsa, yazılım kesintiye uğrarsa işlemi açık bir şekilde yeniden dener, bunun sağlanması RISC'ler için tipik değildir.
Benzer şekilde, karmaşık bir talimat ayrıcalıklı bilgilerin kontrollü erişim ve / veya kullanımını sağlayabilir. Yürütülen işlem anlambilim kontrol ettiğinden, gerçek ayrıcalık ihlali önlenebilir. RISC odaklı alternatifler arasında PAL kodu (genellikle önemli bir ek yük vardır) ve bazı ayrıcalıklı bir duruma sahip olan yapılandırma kayıtlarına (veya kayıtların gölge kopyaları) maskeli erişim bulunur. Genel bir çözüm (RISC) sunmak, bir veya birkaç özel duruma (CISC) bir çözüm sağlamaktan daha zordur, ancak özel vakaların birikmesine karşı daha güçlü ve daha az hassastır. Birisi önemli özel durumların az olduğuna inanıyorsa, CISC daha çekici olabilir.
Karmaşık talimatlar ayrıca durumu yazılımdan gizleyebilir. Bunun belirgin bir avantajı, bağlam tasarrufu ve geri yükleme için olacaktır. Durumu kaydeden ve geri yükleyen talimatlarla, mimarinin, durumu belleğe aktarmak için belirli mekanizmaları değil, yalnızca bağlam boyutunu işletim sistemine iletmesi gerekir. Bu, eski bir işletim sisteminde çalışan uygulamaların durum ekleyen ISA uzantılarını kullanmalarına izin verir. (Yine, PAL yazılımı aynı işlevi sağlayabilir.)
X86'nın karmaşıklığının çoğu, birçok uzantıdaki uyumluluktan kaynaklanıyor. Karmaşık ve daha az ortogonal komutlarla (kod yoğunluğu için yararlı), yaygın olarak ihtiyaç duyulmayan bazı işlerin kaldırılması, gereksiz bağımlılık zincirlerinden kaçınılması (örneğin, yalnızca bir taşıma biti, yalnızca bir dinamik kaydırma miktarı kaydı), döndürülen bazı işler eklenmesi Yaygın olarak kullanılması ve karmaşık talimatların içinde optimize edilebilmesi - bunlardan herhangi birinin yeni bir talimat eklemesi ve ISA'nın estetik olarak daha az zevkli hale getirilmesi gerekir.
Çoğu durumda, bir RISC bu tür sorunlarla karşılaşmaz çünkü talimatlar çok dik ve ilkeldir. Bazı durumlarda, bir RISC'nin yeni ilkel eklemesi gerekebilir, ancak bu genellikle birden fazla kullanım için uygulanabilir.
Ek olarak, karmaşık talimatları desteklemek için altyapı oluşturulduktan sonra, ilave karmaşık talimatlar için engeller azaltılır. Yani, tekrar etmeme konusundaki karmaşık talimatların maliyetinin çoğu. Şiddetle RISC ISA'lar, CISCy özelliklerini tanıtmak için tamamlayıcı bir engelden muzdariptir.
X86'nın uzama sıklığı, kısmen genel amaçlı hesaplama ve ticari işlemci modelindeki popülerliğine de bağlanabilir (bunlar ayrıca ikili uyumluluğun önemini de arttırır). RISC ISA'ları genellikle, uygulamalara daha dar bir odaklanmayı teşvik eden ve belirli bir RISC ISA'nın uygulanması için rekabet eksikliğini teşvik eden sistem satıcılarına bağlanmıştır ve pazarlama için komut seti uzantılarının kullanılmasını engellemektedir. Popülerlik ayrıca yeni uzantı geliştirme maliyetini daha az önemli kılar (tekrar eden harcamalar daha yüksek hacimlerde daha az önemlidir).
X86 uyumluluk felsefesi muhtemelen daha temiz bir mola vermek yerine mevcut mekanizmaların genişletilmesine de önyargılıdır; bu, yeni özelliklerin mevcut özelliklerden daha fazla etkilenmesi anlamına gelir. Daha yüksek uzatma sıklığı aynı zamanda ortogonaliteyi azaltmaya meyilli yeniden kullanım mekanizmalarını teşvik eden daha fazla artımlı değişikliği teşvik eder.
Klasik MIPS'in akademik sunumunu (bu, MIPS'in modern sürümlerinin alt kümesidir ve çeşitli isteğe bağlı ISA uzantılarını hariç tutar) modern x86 ile (bu, 16-bit 8086'ya geri ikili uyumluluk ve daha da geriye montaj montajı uyumluluğu) izler. tüm tarihsel bagajı ile CISC için en iyi durumu ya da RISC için gerçekçi bir durumu sunmuyor.