Bilgisayar Hurdaları İşlemci Hurdaları

CISC Mimarisi

CISC Mimarisi , Complex Komut Seti Hesaplama, büyük ve oldukça karmaşık bir komut kümesini vurgulayan bir bilgisayar mimarisi tasarım felsefesidir. Bu talimatlar, bazen tek bir talimatta birden çok düşük seviyeli işlemi içerebilen daha gelişmiş işlemleri gerçekleştirmek üzere tasarlanmıştır. CISC, her bir talimatı daha çok yönlü hale getirerek ve bellek manipülasyonu, aritmetik ve mantık işlemleri dahil olmak üzere karmaşık işlemleri yürütebilen bir görevi tamamlamak için gereken talimat sayısını azaltmayı amaçlar.

RISC (Azaltılmış Komut Seti Hesaplaması) sadeliği ve verimliliği nedeniyle birçok modern uygulamada baskın hale gelirken, CISC belirli bağlamlarda etkili olmaya devam etmektedir. Tarihsel olarak, CISC mimarileri kişisel bilgisayarlarda ve sunucularda daha yaygın olmuştur. Intel x86 mimarisi, masaüstü bilgisayarlarda, dizüstü bilgisayarlarda ve sunucularda yaygın olarak kullanılmaya devam eden bir CISC mimarisinin en belirgin örneğidir.

CISC ‘nin Kökenleri
CISC mimarileri, donanım yeteneklerinin sınırlı olduğu ve karmaşık görevleri minimum kodla gerçekleştirmek için yazılımın optimize edilmesi gereken hesaplamanın ilk günlerinde ortaya çıktı. Buradaki fikir, tek bir talimatta mümkün olduğunca çok görevi yerine getirebilecek ve böylece çok sayıda basit işleme olan ihtiyacı azaltabilecek bir işlemciye sahip olmaktı. Intel 4004 ve 8080 ve Motorola 6800 gibi ilk mikroişlemciler CISC işlemcileriydi, ancak zamanla cısc’nin doğası gelişti ve performans ve güç verimliliği için modern taleplere uyarlandı.

CISC Mimarisinin Temel Özellikleri

Büyük ve Karmaşık Komut Seti:

CISC işlemcileri, çoğu karmaşık görevleri yerine getirebilen çok çeşitli talimatları destekler. Bir talimat yalnızca temel bir işlemi (ör. Toplama veya çıkarma) gerçekleştirmekle kalmaz, aynı zamanda bellekten veri yükleyebilir, aritmetik bir işlem gerçekleştirebilir ve sonucu bellekte saklayabilir — hepsi tek bir talimatta.
Bu, her komutun tipik olarak basit, tekil bir görevi yerine getirdiği RISC (Azaltılmış Komut Seti Hesaplaması) ile çelişir.

Değişken Uzunluklu Talimatlar:

Sabit komut boyutu (genellikle 32 bit) kullanan RISC işlemcilerin aksine, CISC işlemciler değişken uzunlukta talimatlar kullanır. Bunlar birkaç bayt ile birkaç bayt arasında değişebilir. Bu değişkenlik, basit yönergeler daha az bayt kullanabileceğinden, daha karmaşık yönergeler daha fazlasını kullanabileceğinden, yönerge alanının daha verimli kullanılmasına izin verir.
Değişken uzunluktaki talimatların esnekliği, CISC işlemcilerin daha az talimatta daha çeşitli görevleri yerine getirmesini de sağlar.

Bellekten Belleğe İşlemler:

CISC’NİN tanımlayıcı özelliklerinden biri, bellekten belleğe işlemleri gerçekleştirme yeteneğidir. Cısc’de, bir talimat, önce bir kayıt defterine veri yüklemeye gerek kalmadan doğrudan bellek üzerinde bir işlem gerçekleştirebilir. Örneğin, bir CISC işlemcisi, bellek konumlarında depolanan değerleri eklemek ve sonucu belleğe geri yerleştirmek için bir talimat kullanabilir.
Bu, verilerin manipüle edilebilmesi için önce kayıtlara yüklenmesi gereken RISC mimarisiyle çelişir.

Çoklu Adresleme Modları:

CISC işlemciler çok çeşitli adresleme modlarını destekler. Adresleme modları, işlenenlere (hesaplamalarda kullanılan değerlere) nasıl erişileceğini veya talimatlarda nasıl belirtileceğini tanımlar. Bazı yaygın CISC adresleme modları arasında anında, doğrudan, dolaylı, endeksli ve kayıt tabanlı adresleme bulunur.
Cısc’deki adresleme modlarının zenginliği, verilere nasıl erişildiği ve manipüle edildiği konusunda daha fazla esneklik sağlar. Örneğin, bir yönerge doğrudan bir bellek adresi belirtebilir, belleğe dizin olarak bir kayıt değeri kullanabilir veya her ikisinin bir kombinasyonunu kullanabilir.

Verimli Kod Yoğunluğu:

CISC’NİN en önemli avantajlarından biri, yüksek kod yoğunluğuna ulaşabilmesidir. Karmaşık yönergeler, tek bir görevi gerçekleştirmek için çok sayıda yönergeye olan ihtiyacı azaltarak daha kompakt kodla sonuçlanır. Bu, özellikle sınırlı bellek alanına sahip sistemlerde veya derlenmiş programların boyutunu küçültmeye çalışırken avantajlı olabilir.

Donanım Tarafından Yönetilen Yürütme:

CISC işlemcileri genellikle karmaşık komut yürütmeyi doğrudan donanımda uygular ve bunları daha basit işlemlere ayırmak için yazılıma güvenmeden karmaşık talimatları yürütmelerine olanak tanır. Bu, yazılımın ve derleyicinin talimatların karmaşıklığını yönetmede daha önemli bir rol oynadığı RISC işlemcilerin aksinedir.

Cısc’nin Avantajları

Azaltılmış Talimat Sayısı:

Cısc’nin temel faydalarından biri, karmaşık talimatların bir programı yürütmek için gereken toplam talimat sayısında bir azalmaya izin vermesidir. Çoğu durumda, tek bir CISC talimatı, bir RISC sisteminde birden çok daha basit talimat gerektiren şeyi başarabilir. Bu, yüklenmesi ve yürütülmesi için daha az talimatla sonuçlanır ve belirli iş yükü türlerinde potansiyel olarak verimliliği artırır.

Daha Küçük Kod Boyutu:

CISC işlemcileri tek bir talimatta daha fazla görev gerçekleştirebilir ve bu da daha küçük program boyutlarına yol açar. Bu, özellikle gömülü sistemler veya nispeten küçük bellek kapasitesine sahip eski bilgisayar sistemleri gibi belleğin sınırlı olduğu sistemlerde kullanışlıdır. CISC’NİN daha fazla işlevselliği daha az yönergeye sığdırma yeteneği, daha kompakt programlara olanak tanır.

Donanım Optimizasyonu:

CISC işlemcileri, karmaşık talimatları yürütmek için özel donanım içerebilir ve bu da belirli işlem türlerinin daha hızlı yürütülmesine neden olabilir. Örneğin, bir CISC işlemcisi, dize manipülasyonu veya karmaşık matematiksel işlevler gibi işlemleri doğrudan destekleyen ve bu görevleri gerçekleştirmek için yazılım rutinlerine olan ihtiyacı azaltan donanım içerebilir.

Programlamada Esneklik:

CISC tarafından desteklenen çok çeşitli adresleme modları ve talimatları, program yazma konusunda daha fazla esneklik sağlar. Programcılar, görevi birden çok basit adıma ayırmaya gerek kalmadan genellikle belleği doğrudan değiştirebilir ve karmaşık işlemler gerçekleştirebilir, bu da belirli program türleri için geliştirmeyi daha hızlı ve bazen daha sezgisel hale getirir.

Eski Destek:

Birçok CISC mimarisi, özellikle Intel’in x86’sı onlarca yıldır kullanılıyor. Bu uzun ömür, CISC işlemciler için optimize edilmiş geniş bir yazılım ve araç ekosistemi sağlar. Bu sistemlerin geriye dönük uyumluluğu, eski yazılımların önemli değişiklikler gerektirmeden daha yeni işlemcilerde çalışmaya devam edebileceği anlamına gelir.

CISC’NİN Dezavantajları

Kod Çözme Talimatlarının Karmaşıklığı:

CISC’NİN dezavantajlarından biri, değişken uzunluktaki talimatların kodunun çözülmesinde yer alan karmaşıklıktır. CPU, uzunluğunu ve ne yapması gerektiğini belirlemek için her talimatı analiz etmelidir. Bu karmaşıklık, RISC işlemcilerde bulunan daha basit, sabit uzunluktaki talimatlara kıyasla komut kod çözmeyi daha yavaş ve daha fazla güce aç hale getirebilir.
Ek olarak, birçok farklı adresleme modunun varlığı, kod çözme işlemine başka bir karmaşıklık katmanı ekler.

Bazı Durumlarda Daha Yavaş Yürütme:

CISC işlemciler karmaşık işlemleri tek bir talimatta gerçekleştirebilirken, bu karmaşık talimatların yürütülmesi, özellikle işlemcinin belleğe birden çok kez erişmesi gerekiyorsa, birden çok döngü alabilir. Bu, bazen RISC talimatlarının yüksek verimli tek döngülü yürütülmesine kıyasla belirli görevler için daha yavaş yürütülmeye neden olabilir.

Boru Hattında Zorluk:

CISC’NİN değişken uzunluktaki talimatları ve karmaşık kod çözme, boru hattını (komut getirme, kod çözme ve yürütme aşamalarını üst üste bindirerek CPU verimini artırmak için kullanılan bir teknik) verimli bir şekilde uygulanmasını zorlaştırır. RISC işlemcileri, daha basit komut kümeleri ve öngörülebilir yürütme süreleri ile etkili bir şekilde aktarılması çok daha kolaydır.

Tutarsız Performans:

CISC işlemcileri karmaşık görevleri daha az talimatla yürütebilirken, performans tutarsız olabilir. Bazı yönergelerin tamamlanması için birden çok döngü gerekebilir ve bu da performans darboğazlarına neden olabilir. Bu, birçok basit işlem gerektiren programları çalıştırırken özellikle sorunlu olabilir.

Cısc’ye karşı RISC

CISC (Karmaşık Komut Seti Hesaplama):

Birçok adresleme moduna sahip büyük, karmaşık komut seti.
Talimatlar, yürütülmesi gereken birden çok döngü içerebilir.
Karmaşık görevleri tek bir talimatta gerçekleştirebilir.
Belirli bağlamlarda program boyutunu ve bellek kullanımını azaltmak için idealdir.
Kod çözme ve yürütme genellikle daha karmaşıktır.
RISC (Azaltılmış Komut Seti Hesaplaması):

Hız ve verimlilik için tasarlanmış küçük, basit komut seti.
Talimatlar genellikle bir döngüde yürütülür.
Karmaşıklığı yönetmek için yazılıma ve derleyicilere güvenir.
Bir görevi gerçekleştirmek için daha fazla talimat gerekir, ancak her talimat daha hızlı ve daha basittir.
Tipik olarak boru hattı daha kolay ve daha enerji verimlidir.
Uygulamada CISC Mimarileri

Intel x86 Mimarisi:

Intel tarafından geliştirilen x86 mimarisi, bir CISC mimarisinin en bilinen örneğidir. On yıllar içinde gelişti ve kişisel bilgisayarlar ve sunucular için baskın mimari olmaya devam ediyor. Genel amaçlı hesaplamada esnek ve güçlü çalışma sağlayan çok çeşitli talimatları ve adresleme modlarını destekler.

Motorola 68000:

Eski kişisel bilgisayarlarda ve oyun konsollarında (Sega Genesis gibi) yaygın olarak kullanılan Motorola 68000 serisi işlemciler, CISC mimarisinin bir başka örneğidir. Zengin komut seti ve karmaşık bellek adresleme modları desteği ile biliniyordu.

VAX (Sanal Adres Uzantısı):

Digital Equipment Corporation (DEC) tarafından geliştirilen VAX mimarisi, birçoğu aynı anda birden fazla işlemi gerçekleştirebilen geniş bir talimat setini destekleyen güçlü bir CISC sistemiydi. VAX, 1980’lerde ve 1990’larda mini bilgisayarlarda ve ana bilgisayarlarda yaygın olarak kullanıldı.