ISA – CISC – RISC – Makine Dili – Mikroişlemci Nedir ? |Komut Yapılarını Anlamak

KOMUT YAPILARI NEDİR ?

Komut yapıları nedir ? CPU , İşlemci ve Mikroişlemci nedir ? Makine dili nedir ?  RISC ve CISC nedir ? ISA nedir ? Bu ve benzeri sorulara cevap aradığımız Komut Yapılarını Anlamak adlı teknik makalemizle sizlerleyiz.

Bu makalede, işlemcilerin tasarım ve işlevselliği ile ilgili birtakım önemli detaylara beraber bakalım.

KOMUT YAPILARI

Günümüzde, gömülü işlemcilerle düzenli olarak en azından dolaylı olarak etkileşime girmeyen birkaç elektrik elektronik mühendisliği alanı bulunmaktadır ki hemen hemen her elektrik elektronik ya da elektrik mühendisinin karşılaştığı bir alandır.

Hemen hemen her tasarım, küçük bir mikrodenetleyici kullanmaktadır ve çoğu durumda, güçlü bir mikrodenetleyiciye , dijital sinyal işlemcisine veya  bir bilgisayara ihtiyaç vardır.

Bu işlemciler ile geçmişten günümüze elektronik tasarımların değiştiğini ve aslında tüm dünyayı bir dönüşüm içerisine soktuklarını kolaylıkla ifade edebiliriz.

Hiç şüphesiz bir mühendis, daha alt seviyelerinin detayları hakkında neredeyse hiçbir şey bilmezken gömülü bir işlemciyi başarıyla uygulayabilir , kullanabilir.Bununla birlikte, tasarımlarımızda kullandığımız entegre devrelerin içsel işlevselliği hakkında en azından bir anlayışa sahip olmak genellikle faydalıdır ve bu da mikroişlemciler için de geçerlidir.

Ayrıca, işlemci tasarımının temel prensiplerine olan sağlam bir aşinalık, belirli bir sistem için hangi cihazların daha uygun olduğunu belirlemenize yardımcı olabilir.

CPU – İşlemci – Mikroişlemci

Terminoloji, tutarlı bir şekilde kullanıldığında yardımcı olur, bu sebeple ilgili terimleri tanımlayalım:

Bir CPU (merkezi işlem birimi) bir veri yolundan ve bir kontrol ünitesinden oluşur.Veriyolu, binary verilerin aritmetik işlemler, bit-kaydırması vb. ile ayarlandığı yerdir.

Kontrol ünitesi, veri akışının yönetilmesinden ve veriyolunun komutlar tarafından belirtilen işlemleri gerçekleştirmesine neden olan kontrol sinyalleri oluşturulmasından sorumludur.

Bir işlemci, CPU’nun daha verimli çalışmasına ve çevreleyen sistemle etkileşime girmesine yardımcı olan bir CPU ve ek bileşenlerden oluşur.Belkide basitçe şöyle ifade edebiliriz, bir CPU’yu bir işlemciye dönüştürmek için gerekli olanlar, en az bir miktar bellek ve CPU ile bellek arasındaki veri akışını yönetmek için gerekli sistemdir.

Ancak, diğer IC’lerin belleğe veri yazmasına veya bellekten veri okumasına izin veren bir giriş/çıkış sistemine sahip olmadığınız sürece, bellek çok kullanışlı değildir.

Bir işlemci zorunlu olarak tek bir cihaz değildir ve bir işlemciyi bir mikroişlemciden ayıran şey budur. Bir işlemci (örneğin) şerit kablolarla bağlı olan ayrı CPU ve bellek modülleri oluşturulabilirken, bir mikro işlemci her zaman bir entegre devre olacaktır.

Mikrodenetleyici, mikroişlemciyi donanım tabanlı çevre birimleriyle (analogdan dijitale dönüştürücüler, zamanlayıcılar ve seri iletişim devresi gibi) birleştiren tümleşik bir aygıttır.

Komut yapıları - CISC RISC Mikrocontroller ISA

Makine Dili Nedir?

Peki bir işlemci hangi dili konuşuyor? İşlemciler bizim ‘software-yazılım’ dediğimiz ya da gömülü işlemciler için ‘firmware’ dediğimiz kod satırlarını anlamazlar ve assembly dilini kullanan mühendis grupları da olsa bu durum çoğu zaman geçerlidir.

İşlemciler makine dilini, yani örnek olarak program belleğinde saklanan ve kontrol birimi tarafından uygulanan ikili komutları konuşurlar.Bir makine dili komutları farklı alanlardan oluşmaktadır.

Gerekli alan opcode’dur (operasyon kodu için kısa).Bu bit dizisi, işlemciye hangi özel işlemin uygulanacağını söyler (örneğin, iki sayı eklemek, bir kayıt değerini arttırmak, belirli bir talimata atlamak).

Diğer olası alanlar arasında, verilerin saklanacağı bir kayıt numarası veya hafıza konumu, sayısal bir değer (örneğin matematiksel işlemler için) ve program belleğindeki bir adres yer alır.Sayısal değerler anlık veri olarak adlandırılır.Bu alanlar basitçe ikili(binary) sayılardır.

Makine diline bakacak olursak, bu dil,birler ve sıfırların akıllara durgunluk veren bir koleksiyonudur.Makine dilinin bizim dilimizdeki  versiyonu, ikili opcodes yerine harflerin (ADD, MOV ve JMP gibi) sezgisel kombinasyonlarını içeren assembly dili olarak adlandırılır ve ikili sayılar yerine ondalık veya onaltılık sayıları kullanır.

Bu talimatların okunması ve yorumlanması, özellikle kolay veya zevkli değildir ancak biraz fazla zaman harcayarak assembly üzerine çalışırsanız, C gibi yüksek seviyeli dillerin popülerliğini anlamış olacaksınız.

İşlemci Aygıt mıdır , Tasarım mıdır ?

Yukarıda verilen tanım, bir işlemcinin, bellek, giriş/çıkış ve hesaplama görevlerini yerine getirmek için bir CPU kullanan özel, somut bir elektronik birim olduğunu ifade etmekteydi.

Bu kesinlikle doğrudur, ancak aynı zamanda biraz sınırlı ve belki de eski bir perspektifi yansıtmaktadır ,çünkü bir işlemcinin fiziksel uygulamasının bu işlemcinin işlevselliğinin zorunlu bir parçası olmasının gerekmediği gerçeğini hesaba katmaz  ve geride kalmıştır çünkü bugünlerde bir “işlemci” bir akıştan ziyade bir FPGA’ya yüklenen bitlerden başka bir şey olamaz.

Bu noktada bir komut seti mimarisi (ISA) kavramını üzerinde de duralım istiyorum.Adından da anlaşılacağı gibi, bir ISA, bir grup makine dili talimatına ve bu yönerge grubunu uyumlu bir işlem mimarisi ile birleştiren çeşitli işlevsel detaylara atıfta bulunmaktadır.

Ancak, bir adım daha ileri gidelim ve belli bir bakış açısıyla bir ISA’nın bir işlemci olduğunu anlamaya çalışalım.

Bununla kastettiğim şey şu şekildedir , paket boyutları, pin sayısı, transistör boyutu, bellek organizasyonu ve veri yolu uygulaması gibi şeyler bir işlemcinin temel özellikleri değildir.Hedef, işlemcinin performansını ve özelliklerini incelemekse, ISA’ya odaklanmamız gerekir.

Komut Setinin Önemi

Mikrodenetleyiciler için ürün yazılımı yazmaya alışkın olan kişiler, talimatları bir işlemcinin gerekli görevleri yerine getirmesinin sadece bir bileşeni olarak görmeye eğilimli olabilirler.

Tamamen işlevsel bir gömülü cihaz oluşturmak için C ifadelerimiz ile birlikte çalışan saatler, ADC’ler, seri I/O, besleme voltajı monitörleri vb. Bununla birlikte, işlemcilerin kendileri bağlamında, komutları karakteristik özelliklerini tanımlamaktadır.

Montaj dili, işlemcinin bu dili uyguladığı işlemci, işlemcinin dahili işlevselliğinin açıklamasıdır.Bu nedenle, belirli bir işlemcinin montaj dili talimatlarının formatını, davranışını ve uygulamasını anlayana kadar gerçekten nasıl çalıştığını (tam olarak) anlamıyorsunuz.Diğer bir deyişle, ISA üzerine çalışarak bir işlemci hakkında bilgi sahibi olabiliriz.

RISC ve CISC

Bir komut seti mimarisinin tanımlayıcı yapısı üzerine yapılan bu tartışma, işlemci sınıflandırmasına yönelik temel bir yaklaşımın neden , azaltılmış komut seti bilgisayarı (RISC- Reduced Instruction Set Computer) ile karmaşık bir komut seti bilgisayarı (CISC – Complex Instruction Set Computer) arasındaki farka dayalı olduğunu anlamamıza yardımcı olur.

Aşağıda, bu iki mimari türün özelliklerini kısaca özetlemeye çalışıyorum:

RISC işlemcileri, daha temel hesaplama işlemlerine karşılık gelen , uzunluk ve yürütme süresinde daha homojen olan genel yönergeleri vurgular.

Talimatların uygulanması optimize edilmiştir ve çalışma hızını arttırmak için küme komut işleme işlemleri kullanılmaktadır.Bellek kullanımının en aza indirilebilmesi için daha fazla register alanları dahil edilmiştir (belleğe ulaşan komutlar oldukça yavaş olma eğilimindedir).

CISC işlemcileri, yazılımda kullanılan karmaşık işlemleri daha doğrudan uygulayabilecek özel komutları vurgular.Bu, yüksek seviyeli dillerden assembly’e çeviri yapmayı kolaylaştırır ve bu durum gelişmiş derleyicilerden önce düşünülmesi gereken bir konudur.

Karmaşık komutlar ayrıca daha az bellek gerektirir – örneğin, bir RISC işlemcisinin bir komuta cevap olarak bir CISC işlemcisinin yapacağı görevleri yerine getirmek için üç komut ile işlemler halledilebilir.

RISC ve CISC uygulamalarının performans kabiliyetlerinin kapsamlı bir karşılaştırması muhtemelen bir makale yerine bir kitap gerektirecektir, ancak RISC’nin şu anda çoğu uygulama için tercih edilen mimari olarak görüldüğünü söylemek yanlış olur.

Ayrıca, işleyicilerin, teknik tartışmalar ve değerlendirmeler bağlamında doğal olarak benimsediğimiz “RISC-CISC” zihniyeti ile sınırlı olmadığını belirtmek önemlidir.Bilgisayar mühendisleri, her iki mimarinin özelliklerini, işlemcinin amaçlanan kullanımına veya diğer tasarım kısıtlamalarına dayanarak birleştirebilir.

ISA Nedir , RICS-V

ISA ile Çalışmak 

Belirli bir işlemciyi değerlendirmenin tek yolunun, tüm kullanım kılavuzu el kitabını okumak olduğu bir durumda kendinizi bulamazsınız.Üretici, elbette, hangi cihazların belirli bir uygulama için daha uygun olduğunu düşündüğünü belirtmekten memnuniyet duyacaktır.

Yine de, ISA özelliklerine biraz aşina olmak ve bunların belirli bir işlemcinin performansını veya uygulanmasını nasıl etkileyebileceğine değinmeye değer.

Bilgiler, bir işlemcinin neden belirli bir şekilde tasarlandığını anlamanıza yardımcı olsa bile, en azından elektrik mühendisliği ya da elektrik elektronik mühendisliği ile giderek bu konularla ilgili olan geleceğe dair öngörüler kazanıyorsunuz.Ve elbette, kendi FPGA tabanlı soft işlemcinizi tasarlamaya karar verebileceğinizi asla bilemezsiniz.

RISC-V’den Bazı Örnekler

Önemli , dikkat çeken bir ISA’ya RISC-V denir.Özellikle mimarisi veya işlevselliği konusunda yenilikçi bir şey olup olmadığını bilmiyorum, ancak karmaşık işlemci mimarileri arasında oldukça sıra dışı bir özelliği var: tamamen ücretsiz ve açık kaynak.

Bu, fiziksel işlemci cihazının ücretsiz olacağı anlamına gelmez yani bir yarı iletken fabrikası işletmek tam olarak ucuz değildir ve bir kimsenin montaj hattından çıkan çip için ödeme yapması gerekir. Ancak mimari, herkes tarafından kullanılabilir ve herhangi bir amaç için serbestçe kullanılabilir.

RISC-V Komut Seti Kılavuzu, 145 sayfadır.Bu komut seti kılavuzu harika bir kaynaktır ve bu makaleyi RISC-V ISA’nın rastgele seçilen bazı özelliklerini tartışarak bitirmek istiyorum.

Adres alanı (PDF dosyası sayfa 16): RISC-V mimarisi, 32 bit ve 64 bit adres boşluklarını destekler ve 128 bit adres alanıyla gelecekteki uyumluluğu sağlamak üzere tasarlanmıştır.Ancak, tasarımcılar 32 bitlik bir adres alanının birçok uygulama için yeterli olmaya devam edeceğine inanıyor ve güç tüketimini azalttığı için düşük güçlü gömülü aygıtlar için tercih edilen uygulamadır.

Yalnız-Okunur sayıcılar (sayfa 35): Burada, üç 64-bit salt okunur sayacın herhangi bir RISC-V uygulamasının temel bileşenleri olduğunu kabul edilir.Kullanıcı, sayaç değerini değiştiremediği için tipik sayaç işlevi sağlayamaz.Bundan ziyade, bu sayaçlar işlemci performansını ve geçen süreyi takip eder ve kullanıcının performans analizi ve optimizasyonunu kolaylaştıran bilgilere erişebilmesini sağlamayı amaçlar.

Minyatürleştirme (sayfa 39): RISC-V’nin “RV32E” komut seti, standart “RV32I” komut setinin indirgenmiş bir versiyonudur.Bu PCB  genellikle az bulunan bir materyal olduğundan gömülü sistemler için tasarlanmıştır.RV32E’de 16 adet genel amaçlı register alanı vardır(RV32I’de kullanılan 32 kayıt yerine) ve bu modifikasyon işlemci çekirdeği için gereken alanı % 25 oranında azaltabilir.

Hata yönetimi (sayfa 48): İşlemciler hata koşullarına otomatik yanıt verebilirler.Örneğin bir “tuzak”, bir tür sorunlu olay meydana geldiğinde program kontrolünün bir tuzak işleyicisine aktarılmasına neden olur.Bu özellik, belirli bir sistemin gerekliliklerine ve kısıtlamalarına göre istenen veya istenmeyen olarak görülebilir.RISC-V mimarisinin tasarımcıları, sıfıra bölme olayları için bir tuzak uygulamamayı seçtiler ve  bu, bazı durumlarda kod için hata işleme adına ek bir uzantı komutu içermesi gerektiği anlamına gelmektedir.

KOMUT YAPILARI NEDİR SONUÇ :

Bugünki yazımızda Komut Yapıları Nedir adlı yazıyı sizlerle paylaştık.RISC , CISC , Mikroişlemci , Makine dili gibi konulara kabaca bakma fırsatı bulduk.İşlemci tasarımı, çoğu elektrik mühendisleri ya da elektrik elektronik mühendisleri için yüksek öncelikli olmayan özel bilgi ve becerileri içerir.Bununla birlikte, temel ilke ve teknikler hakkında bilgi sahibi olmak, tasarımlarımızda sıklıkla görülen mikrokontrolcüleri ve DSP’leri anlamamıza ve farklı komut seti mimarilerinin artılarını ve eksilerini değerlendirmemize yardımcı olabilir.

İyi Çalışmalar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.