İçeriğe atla

Karmaşık buyruk kümeli bilgisayar

Vikipedi, özgür ansiklopedi
(CISC sayfasından yönlendirildi)

Karmaşık buyruk kümeli bilgisayar ya da CISC (İngilizce: complex instruction set computer), tek bir makine buyruğunun belleğe erişme, aritmetik işlem yapma gibi birden çok düşük düzeyli işlemi gerçekleştirebildiği bir buyruk kümesi mimarisi tasarım yaklaşımıdır.[1] Bu yaklaşım, az sayıda buyrukla daha çok iş yapmayı amaçlar; bunun karşılığında buyruklar değişken uzunlukta olabilir, çok sayıda adresleme yöntemi içerebilir ve çözülmeleri (kodçözüm) ile yürütülmeleri buyruktan buyruğa değişen sürelerde gerçekleşir. CISC, basitleştirilmiş ve düzenli buyrukları öne çıkaran RISC yaklaşımının karşıtı olarak anılır.

CISC tasarım anlayışı, belleğin pahalı ve yavaş olduğu, programların büyük ölçüde assembly ile yazıldığı 1960'lı ve 1970'li yıllarda yaygınlaştı. Bu dönemde tek bir buyruğun karmaşık bir işi yapması, hem programların kapladığı bellek alanını küçültüyor hem de yüksek düzeyli diller ile donanım arasındaki "anlam açığını" daraltarak elle programlamayı kolaylaştırıyordu.[2] Karmaşık buyruklar genellikle işlemci içindeki bir mikrokod katmanıyla gerçeklenirdi. IBM System/360, DEC VAX, Motorola 68000 ve Intel x86 ailesi, CISC mimarisinin tanınmış örnekleridir.

1980 yılında David Patterson ve David Ditzel, karmaşık buyruk kümelerinin getirdiği donanım yükünün çoğu durumda gereksiz olduğunu, daha basit buyruklardan oluşan bir kümenin daha yüksek başarım sağlayabileceğini öne sürerek RISC yaklaşımının temelini attı.[3]

CISC mimarilerinin tipik özellikleri şunlardır:[2]

  • Tek bir buyruğun birden çok düşük düzeyli işlemi (örneğin bellekten okuma, hesaplama ve belleğe yazma) gerçekleştirebilmesi.
  • Değişken uzunlukta buyruk biçimleri.
  • Çok sayıda ve karmaşık adresleme yöntemi.
  • Buyrukların doğrudan bellek işlenenleriyle çalışabilmesi (yalnızca yazmaçlarla sınırlı olmaması).
  • Buyrukların çoğunlukla bir mikrokod katmanıyla gerçeklenmesi ve yürütme sürelerinin buyruğa göre değişmesi.

RISC ile karşılaştırma

[değiştir | kaynağı değiştir]

CISC bir işlemcinin tek buyrukla yaptığı işi, RISC bir işlemci genellikle birden çok basit buyrukla yapar; buna karşılık RISC buyrukları sabit uzunlukta ve düzenli olduğundan buyruk hattıyla (pipeline) verimli biçimde işlenebilir ve daha yüksek saat hızlarına olanak tanır.[1] Bu nedenle ayrım yalnızca buyruk sayısıyla değil, donanımın karmaşıklığı, kodçözüm yükü ve derleyicinin rolüyle de ilgilidir. CISC daha küçük program boyutu sağlarken, RISC daha sade ve hızlandırılabilir bir donanım sunar.[4]

Modern işlemciler

[değiştir | kaynağı değiştir]

Günümüzde Intel ve AMD tarafından üretilen x86 işlemciler dışarıdan CISC buyruk kümesi sunmayı sürdürür; ancak içeride bu karmaşık buyrukları, RISC benzeri çekirdeklerde yürütülen daha basit mikro-işlemlere (micro-op) ayrıştırarak işlerler. Böylece CISC uyumluluğu korunurken RISC tekniklerinin başarım avantajlarından da yararlanılır.[1] Bu yakınsama nedeniyle, çağdaş yüksek başarımlı işlemcilerde CISC ile RISC arasındaki ayrım, buyruk kümesi düzeyinde sürse de mikromimari düzeyinde büyük ölçüde bulanıklaşmıştır.[4]

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  1. ^ a b c Patterson, David A.; Hennessy, John L. (2020). Computer Organization and Design RISC-V Edition: The Hardware/Software Interface (2 bas.). Morgan Kaufmann. ISBN 978-0128203316. 
  2. ^ a b Tanenbaum, Andrew S.; Austin, Todd (2012). Structured Computer Organization (6 bas.). Pearson. ISBN 978-0132916523. 
  3. ^ Patterson, David A.; Ditzel, David R. (1980). "The case for the reduced instruction set computer". ACM SIGARCH Computer Architecture News. 8 (6). ss. 25-33. doi:10.1145/641914.641917. 
  4. ^ a b Hennessy, John L.; Patterson, David A. (2019). Computer Architecture: A Quantitative Approach (6 bas.). Morgan Kaufmann. ISBN 978-0128119051.