PIC Assembly - PIC C Bilgisayar Mimarileri By Konuk Yazar Posted on 3 Ocak 2015 16 min read 7 2 26,803 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Mikroişlemcili bir sistemde bulunan mikroişlemcinin temel işlevi; işlenen ve kullanılan verileri birimler arasında iletme, iletilen verileri işleme, verileri bir durumdan diğerine çevirme ve verileri uygun yerde saklamadır. Verileri iletme/işleme işlevlerini gerçekleştiren ve bir programın mantıksal çalışmasına doğrudan etki eden mikroişlemcinin mimarisini; mikroişlemci içerisinde bulunan birimlerin özellikleri, yapıları, birimler arasında oluşan veri iletimi ile verilerin saklanma şekli ve mikroişlemcide kullanılan komut seti belirler. Diğer bir değişle, mikroişlemci mimarisi; mikroişlemci kapasitesi, bellek yapısı ve tasarım felsefesi tarafından şekillendirilir. Mikroişlemcinin kapasitesi; mikroişlemcide bulunan birimlerin özellikleri, kaydedici sayısı, kaydedicilerin büyüklüğü, kullanılan yollardaki hat sayısı, kayar noktalı hesaplama birimi, vb. etkenler tarafından belirlenir. Mikroişlemci bellek yapısı; bellek bölgelerinin sayısı, her bir bellek bölgesinde saklanabilecek bit sayısı, adreslenebilecek toplam bellek bölgesi sayısı ve bir bellek bölgesine erişim şekline göre tanımlanır. Mikroişlemcinin tasarım felsefesi; Komut Kümesi-yazılım Mimarisi (Instruction Set Architecture – ISA) ve Donanım Sistem Mimarisi (Hardware System Architecture – HSA) ölçütlerine göre farklılık arz eder. Mikroişlemci tarafından kullanılan komut yapısı ve sayısı, yani komut seti ve komut setinde bulunan komutların özellikleri bakımından iki tür mimari ön plana çıkmıştır: •Karmaşık komut kümeli mikroişlemciler (Complex Instruction Set Computers – CISC) •Azaltılmış komut kümeli mikroişlemciler (Reduced Instruction Set Computers – RISC) Mikroişlemcinin bellekleri kullanım şekli ve bellek yapısı da farklı iki mimariye yön vermiştir: •Von Neuman Mimarisi (Tümleşik Tek bellek) •Harvard Mimarisi (Yalıtılmış Çift bellek) Mikroişlemcileri yukarıdaki ölçütlerin dışında da sınıflamak mümkündür. Örneğin bit sayısı, çekirdek sayısı, güvenirlilik, dayanıklılık, enerji verimliliği gibi bir çok parametre kullanılarak sınıflandırma yapılabilir. Ayrıca bu mimarilerin dışında da bir çok mimari türü mevcuttur. Ancak bir mikroişlemcinin performansını ve çalışma şeklini belirleyen en önemli kriterler bellek kullanımı ve komut yapısıdır. CISC MİMARİ Eskilerde bellek fiyatları pahalıymış.Bellek gereksiniminin en aza indirilmesini sağlayan temel CISC mimarisi mikroişlemcinin karmaşıklığını artırsa da ve mikroişlemci performansının düşmesine neden olsa da, programlama işlemlerini basit hale getirmektedir. Bu mimaride mikroişlemci çok sayıda komut içerir ve her eylem için bir komut tanımlanmıştır. CISC mimaride “donanım yazılımdan hızlıdır” prensibi geçerlidir. Böylece CISC işlemciler karmaşık kodları çözmek için daha yoğun donanım kullanırlar bu da çipin maliyetini artıran bir unsurdur. Ayrıca daha fazla güç de tüketirler. Karmaşık yapıda ve farklı uzunluktaki komutlara sahip olan CISC mimarisi, birden fazla işlem ile ilgili emirleri bir komut içerisine yerleştirmesi nedeni ile komut sayısında ve gerekli bellek gereksiniminde tasarruf sağlar. 1960’larda geliştirilen ve ilk mimari yapı olan CISC mimarisi, az bellek kapasitesine gereksinim duyulan yerlerde yaygın olarak kullanılması yanında, Intel 80×86, Pentium ve Motorola 68030, vb. gibi işlemciler ile IBM 360 ve DEL WAX gibi büyük sistemlerde kullanılmaktadır. CISC tasarım felsefesi ile geliştirilen mikroişlemcili sistemlerde, ‘kademeli komut işleme’ tekniği olarak adlandırılan ve aynı anda yalnızca bir komut üzerinde işlem yapılan komut işleme tekniği kullanılır. Komut kodu bellekte ve işlenecek verilerin MİB’deki kaydedicilerde bulunduğu varsayılarak, kademeli komut işleme tekniğinde oluşacak işlem sırası listelenirse; 1.Program sayıcısının gösterdiği adresten (bellekten) komutu al getir (FI-Fetch Instruction) 2.Getirilen komutun kodunun çözülmesi ve mikro-kodların elde edilmesi (DI-Decode Instruction) 3.Komutun ALU’da çalıştırılması (EI-Execute Instruction) 4.Sonucun ilgili kaydediciye yüklenmesi (WB- Write back Result) Açıklanan bu işlemlere göre, bir komutun işlenebilmesi dört adımda gerçekleştirilir. Gerçekleştirilen adımlardan birisi bitmeden diğer adıma geçilemez. Dört adım sonucunda tek bir komutun işlemesi biter ve yeni bir komut işlenmeye başlar. RISC MİMARİ Neredeyse hiç kimse bir CISC makinedeki karmaşık assembly dili komutlarının tamamını kullanmamaktadır. Günümüzde programcılar tüm karmaşık komut kümelerini neredeyse hiç kullanmayan yüksek-düzeyli dil derleyicilerini tercih etmektedirler. Karmaşık komut seti kullanan mimarilerin işlemlerin belirli bir hızda yapılması gereksinimini karşılayamaması, komutların basitleştirilmesine ve RISC işlemci mimarisinin oluşmasına neden oldu. RISC işlemcilerde işlemler, az sayıda basit komut ile gerçekleştirilir. RISC işlemciler hala hazırda, IBM, DEC, HP, Motorola, APPLE ve SUN gibi süper bilgisayarlar yanında işistasyonları ve PC’lerde kullanılmaktadırlar. İşlemcilerin kullandığı komutların basitleştirilmesi ve komutların sayısının azaltılması, komut işleme hızını artırır. Diğer bir deyişle, daha az sayıda ve basit yapıya sahip komutlar kullanan işlemci, karmaşık komut seti kullanan işlemciye göre daha hızlı çalışır. RISC işlemlerde işlemcinin performansını artıran önemli bir etken, Kanal Komut İşleme Tekniği (pipelining) olarak isimlendirilen ve aynı anda birden fazla komutun işlenmesini sağlayan teknolojidir. Bu teknolojinin kullanımı, daha fazla bellek ve daha gelişmiş derleme tekniği gereksinimlerini ortaya çıkarır. Bu gereksinimleri tam anlamıyla karşılayabilen çok geniş ölçekli entegre (VLSI) teknolojisinin 1990’larda geliştirilmesi ile RISC işlemciler büyük sistemlerin yanı sıra PC’lerde kullanılmaya başlandı. RISC mimari, daha basit komutlar kullanarak tümdevre karmaşıklığını azaltmaktadır. Ancak RISC komutlarının daha kısa olması belirli bir görevin tamamlanabilmesi için daha fazla komuta gereksinim duyulmasına yol açabilir. Ayrıca RISC mimariler için üretilen derleyiciler daha önce CISC mimarisinde bulunan donanım birimlerinin görevini üstlenmek üzere ekstra komutlar kullanmaktadır. RISC VE CISC MİMARİ KARŞILAŞTIRMASI RISC ve CISC işlemciler birbirleri ile hızlarına, komut işleme tekniklerine, kullanılan transistor sayılarına, vb. kriterlere göre karşılaştırılabilirler. İki mimari arasındaki farklar şöyle özetlenebilir: 1- Hız: İki işlemci mimarisinin karşılaştırılmasından ilk önemli farkın; hızları olduğu bulunur. İki işlemci mimarisi arasındaki hız farkı, kullanılan komut işleme teknikleri sonucu oluşur. RISC işlemciler, genellikle aynı saat frekansında çalışan CISC işlemcilere göre daha hızlıdır. 2- Komut işleme tekniği: Mimariler arasındaki ikinci önemli fark; komut işleme tekniğidir. CISC işlemcilerde ‘kademeli komut işleme’ tekniği kullanılırken, RISC işlemcilerde ‘kanal komut işleme tekniği’ (pipeline) kullanılır. CISC tekniği ile aynı anda tek bir komut işlenebildiği ve komutun, işlenmesi bitmeden yeni bir komut üzerinde çalışmaya başlanamaz. RISC tekniğinde ise, aynı anda çok sayıda komut işlenmektedir. Komutların birbirini takip etmesi nedeni ile her bir komut bir birim uzunluktadır ve her işlem adımında bir komuta ait işlemler bitirilir. 3- Transistör sayısı: CISC ve RISC yapıları arasındaki üçüncü önemli fark; işlemcilerde kullanılan transistor sayısıdır. CISC işlemcilerde kullanılan transistor sayısı, RISC işlemcilere göre daha fazladır. Daha fazla sayıda transistor kullanılması, daha geniş alan gereksinimi ve daha fazla ısı ortaya çıkarır, Oluşan daha fazla ısı nedeniyle soğutma ihtiyacı ortaya çıkar ve soğutma işlemi, ısı dağıtıcısı veya fanlar kullanılarak gerçekleştirilir. 4- Donanımsal yapı (Tasarım şekli): İki mimari arasındaki bir diğer fark; donanımsal yapıları ve tasarım şekilleridir. RISC işlemciler , CISC işlemcilere göre daha basit yapıda olduklarından daha kolay tasarlanırlar . 5-Komut yapısı; RISC mimarisi, CISC’in güçlü komutlarından yoksundur ve aynı işlemi yapmak için daha fazla komuta gereksinim duyar. RISC mimaride aynı uzunlukta basit komutlar kullanılırken CISC mimaride karmaşık yapıda değişken uzunlukta komutlar kullanılır.