7. İŞLEMCİ VE KOMUT SETİ MİMARİLERİ
7.1. Bilgisayar Sistemleri Türleri
Modern bir bilgisayar sistemi, bir süper bilgisayar, büyük ölçekli bir makine (veya bir ana bilgisayar), bir mini bilgisayar veya bir mikro bilgisayar olarak sınıflandırılabilir. Uygulamada bu dört ana kategorinin mini-mikrosistem, mikro-minisistem, vb. gibi diğer kombinasyonları da kullanılmıştır. Donanım ve yazılım teknolojilerindeki ilerlemelerle günümüzde bu sistemler arasında ki ayrımlar bulanıklaşmakta bu sebeple bir sistemi bu kategorilerden birine kesin olarak yerleştirmek oldukça zorlaşmıştır. Örneğin, günümüzün bir masaüstü mikrobilgisayar sistemi, kabaca 1990’ların büyük ölçekli bir bilgisayar sistemiyle aynı işleme kapasitesini sağlayabilir. Bununla birlikte, Tablo 7.1, dört bilgisayar sistemi sınıfının bazı özelliklerini listelemektedir. Görüleceği üzere, özellikleri arasında ciddi miktarda farklar vardır. Bir süper bilgisayar, bugüne kadarki en güçlü bilgisayar sistemi olarak tanımlanmıştır.
Fiziksel boyut bir sisteminin ayırt edici bir özelliktir. Örneğin bir süper bilgisayar veya büyük ölçekli bir sistem, onu bir yerden başka bir yere taşımak için bir araç gerekirken, bir mini bilgisayar herhangi bir mekanik yardım olmadan taşınabilirken, bir mikro bilgisayar tek elde taşınabilir.
Donanım ve yazılım teknolojilerindeki gelişmelerle birlikte, süper bilgisayarlarda ve büyük ölçekli makinelerde bulunan mimari özellikler zamanla mini ve mikro bilgisayar sistemlerinde de görülür.
7.2. Operand (İşlenen) Türleri Ve Formatları
İşlemci word boyutu, işlemcinin işleyeceği verilerin (veya işlenenlerin) türleri ve büyüklüklerine göre belirlenir. Veri gösterimi makineden makineye farklılık gösterir. Veri formatı, word boyutuna ve kullanılan koda (ASCII veya EBCDIC) bağlıdır. En yaygın işlenen (operand) veya veri türleri şunlardır:
Sabit noktalı (tamsayı-integer) ikili kodlu ondalık (BCD)
Kayan noktalı (floating point) ikili
Karakter dizileri.
7.2.1. Fixed Poınt (Sabit Noktalı)
Sabit noktalı ikili sayılar bir n-bit makine için, işaret biti (pozitif için 0, negatif için 1) ve bir büyüklük biti (n-1) ile gösterilir. Negatif sayılar ya 2’ye tümleyeni ya da 1’e tümleyeni ile temsil edilir, 2’ye tümleyeni biçimi en yaygın olanıdır.
ÖRNEK:
Sayılar 4 Bitte saklansın,
7 (01112) sayısının 1e tümleyeni 8 (10002) dir.
Bir sayının 2’ye tümleyeni 1’e tümleyenine 1 ekleyerek bulunabilir.
7 (01112) sayısının 2ye tümleyeni 9 (10012) dur.
7.2.2. Ondalık Data
Ondalık (BCD) aritmetik mod kullanan makineler, ondalık basamak başına 4 bit (yarım bayt – nibble) kullanır. Bazı makineler, veriler üzerinde çalışmak için ayrı bir komut seti kullanılır. Bazılarında ise aritmetik mod, özel bir komutla BCD’den ikiliye (ve tersi) değiştirilir. Bir BCD rakamı 4 bitlik yer tutar ve dolayısıyla iki BCD rakamı bir bayt yer tutar.
7.2.3. Karakter Dizileri
Karakter dizileri tipik olarak ASCII veya EBCDIC kodu kullanılarak karakter başına 1 bayt ile temsil edilir. Bir sistem karakter dizisinin maksimum uzunluğuna göre tasarlandığından, karakter dizisi bir tasarım parametresidir.
7.2.4. Kayan Noktalı Sayılar
Bölüm 2’de gösterildiği gibi, kayan noktalı sayıların gösterimi, sayı işareti, üs alanı ve kesir alanından oluşur. En yaygın kullanılan IEEE standart gösteriminde, kesir, 24 bit veya 56 bit kullanılarak temsil edilir.
7.2.5. Endıan
Bayt adresli bir mimaride çok baytlı bir veri elemanını temsil etmenin iki yolu vardır. Little Endian modunda, verilerin en düşük değerlikli baytı düşük adresli baytta ve kalan baytlar daha yüksek adresli alanlarda depolanır. Big Endian modunda ise tam tersi uygulanır. Örneğin, onaltılık tabanda ki 56789ABC sayısı depolama için 4 bayt gerektirir. İki Endian depolama biçimi aşağıda gösterilmiştir:
Verilere erişirken Endien notasyonunu olduğu gibi tutmak önemlidir. Örneğin, 4 baytlık iki sayı toplamak istersek, toplama sırası little Endian ‘de 0, 1, 2 ve 3 baytları ve big Endian ‘de 3, 2, 1, 0 baytları olacaktır. Bu nedenle, little Endian gösterimi, big Endian ‘e kıyasla toplama için daha uygundur. Öte yandan, big Endian gösteriminde verilerin en yüksek değerlikli baytı (işaret bitinin bulunduğu yer) ilk baytta olduğundan, sayının pozitif mi yoksa negatif mi olduğunu kontrol etmek uygun olacaktır.
Intel işlemci serisi little Endian kullanırken, Motorola işlemci ailesi big Endian kullanmaktadır. Bazı Intel işlemcileri ise, bir yazmaç içindeki veri baytlarının sırasını tersine çeviren talimatlara sahiptir.
Genel olarak, bir dosyadan veri okurken veya bir dosyaya veri yazarken bayt sıralaması çok önemlidir. Bir uygulama veri dosyalarını little Endian biçiminde yazarsa, bir big Endian makinesinin bu verileri kullanırken bayt sırasını uygun şekilde tersine çevirmesi gerekir ve bunun tersi de geçerlidir.
7.2.6. Yazmaç ve Bellek Depolaması Karşılaştırması
Aritmetik ve mantık komutlarındaki işlenenlerden (operand) biri akümülatör üzerinde yer aldığından, basit bir bilgisayar bir akümülatör mimarisidir. Böylece daha kısa komutlar ve karmaşıklığı azaltılmış komut döngüsü elde edilir. Ancak akümülatör, işlemci içindeki işlenenlerin tek geçici depolaması olduğundan bellek trafiğinin ağırlaşmasına neden olur. İşlenenlere bellekten erişmek, akümülatörden erişmekten daha fazla zaman alır. Donanım teknolojisi VLSI dönemine doğru ilerledikçe, işlemciye birden çok yazmaç eklemek daha uygun maliyetli hale gelmektedir. Ek olarak, bu yazmaçlar akümülatör, indeks yazmacı vb. gibi özel amaçlı olarak ayrılmak yerine onları işlemcinin tüm işlemlerinde gerektiği gibi kullanılmalarına izin veren genel amaçlı yazmaçlar olarak belirlenirler. Böylece, genel amaçlı yazmaç (GPR – general purpose register) mimarileri CPU içinde depolanan verilere daha hızlı erişim sağlar. Ayrıca, yazmaç adresleme, bellek adreslerine kıyasla çok daha az bit gerektirir ve bu da talimatları daha kısa hale getirir. Çok sayıda yazmaç olduğunda, bazı işlemci mimarilerinde bu yazmaçlar bir yığın halinde düzenlenirler. Yığın mimarileri, verilere yalnızca bir işlem kodu (opcode) içeren talimatlarla erişime izin verir ve işlenenler yığının en üst iki seviyesinde olurlar. Bazı mimariler yazmaç tabanlı yığınlar kullanır, bazıları bellek tabanlı yığınlar kullanır ve bazıları ikisinin kombinasyonunu kullanır. Genel olarak, verilere bellekten erişim daha yavaş olduğundan, kolay ve hızlı erişim sağlamak için mümkün olduğunca fazla veriyi CPU yazmaçlarında tutmak en iyisidir.
7.3. Yazmaçlar
Bazı basit bilgisayarlarda, yazmaçların her biri özel amaçlı (akümülatör, indeks yazmacı, program sayacı vb.) olacak şekilde tasarlanır. Bu tür makinelerin tasarımı daha kolaydır ancak özel fonksiyon atanmalarından dolayı bu yazmaçların kullanımı sınırlıdır. Donanım teknolojisi ilerledikçe ve daha düşük maliyetli donanım sağladıkça, CPU’daki yazmaç sayısı artmıştır. Yazmaçların çoğu artık GPR’ler (General Purpose Register – Genel Amaçlı Yazmaç) olarak tasarlandığı için herhangi bir yazmaç akümülatör, indeks yazmacı veya işaretçi yazmacı (içeriği bir hafıza konumuna işaret eden yazmaçlar) olarak kullanılabilir. İşlemci durum yazmacı, durum yazmacı, durum kodu yazmacı, program durum wordü gibi çeşitli şekillerde anılır.
Şekil 7.1, MC6800 ve MC68000 serisi işlemcilerin yazmaç yapılarını gösterir. MC68000 serisi işlemciler, kullanıcı veya yönetim modunda çalışabilir. Serideki tüm işlemciler için ortak olan kullanıcı modu yazmaçları gösterilmiştir. Ek olarak, bu işlemcilerin birkaç yönetici modu yazmacı vardır. Yönetici modu yazmaçlarının türü ve sayısı, serideki işlemciler arasında farklılık gösterir. Örneğin, MC68000 bir sistem yığını işaretçisine sahiptir ve durum yazmacının en yüksek değerlikli baytında 5 bit kullanırken, MC68020 yedi ek yazmaca sahiptir.
INTEL 8080, 8086 ve 80386 işlemcilerinde yazmaç yapılarının genişlikleri 8 bitten (8080’de) 32 bit’e (80386’da) çıkması dışında aynı GPR seti korunmuştur. Bu yazmaçlar ayrıca belirli talimatlar için döngü kontrolü, kaydırma işlemleri, dizi işleme gibi özel fonksiyonları da yerine getirir.
7.4. Komut Seti
Bir makine için komut seti seçimi, makinenin kullanım amacından büyük ölçüde etkilenir. Makine genel amaçlı veri işleme için ise, temel aritmetik ve mantık işlemleri komut setine dâhil edilmelidir. Bazı makinelerin onları hem bilimsel hem de iş odaklı işlemlere uygun kılan ikilik ve ondalık (BCD) aritmetik için ayrı talimatları vardır. Bazı işlemciler ikilik veya ondalık modda çalışabilir; yani, aynı komut her iki veri türü için de çalışır. AND, OR, NOT, EX-OR ve SHIFT gibi mantıksal işlemler, verilere bit ve bayt seviyelerinde erişerek çarpma, bölme, kaydırma gibi aritmetik işlemleri uygulamak için gereklidir. Dallanma (koşullu ve koşulsuz), durdurma, alt program çağırma ve dönüş için kontrol talimatları gereklidir.
Genel olarak, işlemciler, komutlar tarafından kullanılan işlenen türüne göre sınıflandırılırlar. İşlenen, bir yazmaçta veya bir bellek konumunda bulunur.
Tipik mimariler şu şekildedir:
1. Bellekten Belleğe: Tüm işlenenler bellektedir. İşlem, bu işlenenler üzerinde gerçekleştirilir ve sonuçlar yazmaçlara gerek kalmadan bellek işlenenleri olarak bırakılır.
2. Yazmaçtan belleğe: İşlenenlerden en az biri bir yazmaçta ve geri kalanı bellekte.
3. Yükle / Depola: İşlenen, üzerinde bir işlem gerçekleştirilmeden önce bir yazmaca yüklenmelidir. Yazmaçtaki sonuç, gerektiğinde bellekte saklanır.
7.4.1. Komut Türleri
Komut setleri tipik olarak aritmetik, mantık, kaydırma / döndürme, veri taşıma, G/Ç ve program kontrol komutlarını içerir. Ek olarak, işlemci için öngörülen uygulamaya bağlı olarak bazı özel amaçlı talimatlar olabilir.
Aritmetik Talimatlar: Bu türdeki tipik talimatlar şunlardır: ADD (EKLE), SUBTRACT (ÇIKAR), MULTIPLY (ÇARP), DIVIDE (BÖL), INCREMENT (ARTIR) ve DECREMENT (AZALT). Mimari tarafından izin verilen çeşitli veri türlerine uygulanabilirler, CPU yazmaçlarından ve bellekten verilere erişirler, çeşitli adresleme modlarını kullanırlar. Bu komutlar, işlemin sıfır, taşıma, taşma, vb. sonucuna göre işlemcinin durum yazmacını etkiler.
Mantık Talimatları: Bu talimatlar, AND, OR, NOT, EX-OR, gibi Bool mantık işlemlerini gerçekleştirmeleri dışında aritmetik talimatlara benzer. İşlemci durum yazmacı bitlerini etkilerler. Bu talimatlar bit manipülasyonunda kullanılır (set, clear vb.).
Kaydır/Döndür Talimatları: Kaydır (SHIFT) ve döndür (ROTATE) komutları, AND, OR, Ex-OR ve NOT komutlarında olduğu gibi ikili bit düzeyinde ikili sayıları işler. Kaydır komutları bir yazmaç veya bellek konumundaki verileri sağa veya sola kaydırır. Ayrıca 2+n kuvvetleri ile çarpım (sola kaydırma) ve 2-n kuvvetleri ile bölme (sağa kaydırma) gibi aritmetik işlemleri gerçekleştirir. Döndür komutları, bir yazmaç veya bellek konumundaki bilgiyi bir uçtan diğerine döndürerek ikili verileri konumlandırır.
Veri Taşıma Talimatları: Basit bir bilgisayar komut setinde verileri bellek ve yazmaçlar arasında taşıyan dört veri taşıma talimatı vardır. Komut setleri, bellek konumları arasında, bellekten yazmaçlara ve yazmaçlar arasında çeşitli tür ve boyutlardaki verileri taşımak için talimatlar içerir. Bazı makinelerde, tüm bir veri bloğunu bir bellek ara belleğinden diğerine taşıyan blok taşıma talimatları bulunur. Bu tür üst düzey talimatlara makro talimatlar denir.
Giriş/Çıkış Talimatları: Basit bir bilgisayarın iki G/Ç talimatı (RWD, WWD) bulunur. Genel olarak, bir giriş talimatı verileri bir cihazdan (veya bir bağlantı noktasından) bir yazmaca veya belleğe aktarır ve bir çıkış talimatı, verileri bir yazmaç veya bellekten bir cihaza (veya bir bağlantı noktasına) aktarır. Bellek eşlemeli G/Ç şeması, G/Ç talimatları olarak bellek işlenenleri ile çalışan tüm veri taşıma, aritmetik ve mantık talimatlarının kullanımına izin verir. İzole G/Ç şemasını kullanan makinelerde mimariye özel G/Ç talimatları bulunur.
Kontrol Talimatları: Basit bir bilgisayarın kontrol talimatları şunlardır: BRU, BIP, BIN, HLT, TDX ve TIX. Kontrol talimatları, alt program çağrıları, dönüşler ve durdurma aracılığıyla program yürütme sırasını değiştirir.
Diğer Talimatlar: Bazı talimatlar yukarıdaki türlere tam olarak uymaz. Örneğin, bir İşlem Yok (NOP – No Operation) talimatı, programcının programdaki bir alanı tutmasına izin verir. Daha sonra başka bir talimatla değiştirilebilir. NOP, herhangi bir yararlı işlev gerçekleştirmese de, zaman tüketir. NOP’lar, zamanlama gereksinimlerini karşılamak için programın yürütme zamanını ayarlamak için kullanılır.
7.5. Adresleme Modları
Doğrudan, dolaylı ve indeksli adresleme modları en yaygın olanlardır. Bazı makineler önceden indekslenmiş-dolaylı, bazıları sonradan indeksli-dolaylı, bazıları ise her iki moda da izin verir. Popüler adresleme modları aşağıda açıklanmıştır. Uygulamada, işlemciler bu adresleme modlarının mimariye uygun olan kombinasyonunu benimser.
7.5.1. Anında Adresleme
Bu modda, işlenen komutun bir parçasıdır. Adres alanı, işlenenin adresi yerine işlenenin kendisini temsil etmek için kullanılır. Uygulamada, komut anında adresleme modunu kullanabilmek için bir veri alanı ve bir işlem kodu (opcode) içerir. Bu adresleme modunda, işlenenlere bellekten getirme (memory fetch) olmadan erişim sağlanabildiğinden, sabit işlenenlerle işlemler daha hızlı gerçekleştirilir.
7.5.2. Paged (Sayfalı) Adresleme
Bu adresleme moduna izin verildiğinde, belleğin birkaç eşit boyutlu bloktan veya sayfadan (page) oluştuğu varsayılır. Bellek adresinin bir sayfa numarası, konum adresi ise sayfa içinde yer aldığı kabul edilir. Böyle bir ortamdaki komut formatı, bir bellek adresini temsil etmek için iki alana sahip olacaktır. Bir sayfa alanı ve bir öteleme. Adres değiştiriciler de talimat formatına dâhildir.
Sayfalar yeterince büyükse, programın bellek referanslarının çoğu aynı sayfada olacaktır ve bu konumlar sadece öteleme (ofset) alanıyla adreslenebilir, böylece doğrudan adreslemenin aksine komutun adres alanındaki bit sayısı korunur. Başvurulan konum sayfanın dışındaysa, erişmek için sayfa numarası gerekir.
Sayfa numarası bir yazmaçta tutulur. Bu nedenle komut, adresin sadece ofset kısmını ve sayfa numarasını tutan yazmaç bilgisini içerir. INTEL 8086’nın bölüm (segment) yazmaçları tam olarak bu amaca hizmet eder.
Genellikle belleğin ” sayfa sıfırı”, en sık kullanılan verilerin ve işaretçilerin depolanması için kullanılır. Talimattaki bir sayfa biti, adresin sayfa sıfır mı yoksa “geçerli sayfaya” mı (yani, talimatın bulunduğu sayfa) karşılık gelip gelmediğini belirtmek için kullanılabilir.
7.5.3. Temel (Base) Yazmaç Adresleme
Bazı makinelerde, CPU yazmaçlarından biri temel yazmaç olarak kullanılır. Programın başlangıç adresi, program yürütmenin ilk adımı olarak bu yazmaca yüklenir. Programda atıfta bulunulan her adres, temel yazmacının adresinin bir ofsetidir (ötelenmiş halidir). Komut formatında sadece temel yazmacı tanımlaması ve ötelemeler temsil edilir. IBM 370 serisi makineler bu düzeni kullanır; GPR’lerin herhangi biri, programcı tarafından bir temel yazmaç olarak belirlenebilir. INTEL 8086 serisi tarafından kullanılan segment adresleme modu, temel yazmaç adreslemenin başka bir örneğidir.
7.5.4. Göreceli Adresleme
Bu adresleme modunda, talimatın bir parçası olarak bir ofset (veya öteleme) verilir. Bu ofset, etkin bir adres bulmak için yürütme sırasında PC’nin (Program Sayacı) mevcut değerine eklenir. Öteleme pozitif veya negatif olabilir. Bu tür adresleme genellikle dallanma talimatları için kullanılır.
7.6. RISC ve CISC Karşılaştırması
VLSI’nin ortaya çıkışı ile, işlemciler bir IC yongası şeklinde üretilebilir hale geldiler. IC şeklinde ki işlemcilerin kontrol birimi yonga alanının büyük bir bölümünü (% 50-60 düzeyinde) işgal ettiğinden, donanıma eklenebilecek işlemci işlevlerinin sayısı kısıtlı olmaktaydı. Bu soruna bir çözüm, daha basit kontrol ünitelerine sahip işlemcilerin tasarlanması olmuştur. Azaltılmış komut seti bilgisayarları (RISC), komut setleri küçük olma eğiliminde olduğundan basit bir kontrol biriminin kullanılmasına izin verir. İlk olarak 1975’te IBM’de daha sonra 1980’de California Üniversitesi ve Berkeley’de başlatılan RISC tasarımlarının temel amacı kontrol biriminin basitleştirilmesiydi. RISC’nin özellikleri ve tanımı, bu ilk tasarımlardan bu yana önemli ölçüde değişmiştir. Şu anda RISC’nin kabul edilmiş tek bir tanımı yoktur.
RISC’nin tasarlanmasının sebebi, karmaşık komut seti bilgisayarlarının (CISC’ler) tasarımında bulunan eksikliklerin giderilmek istenmesidir. CISC makinaları, nispeten çok daha fazla sayıda karmaşık ve zaman alan talimatlara sahiptir. Aynı zamanda nispeten çok daha fazla sayıda adresleme moduna ve farklı komut formatına sahiptir. Bunlar da, bu talimatların kodunu çözmek ve yürütmek için karmaşık bir kontrol birimine sahip olma ihtiyacı doğurur.
CISC kontrol ünitesi donanımının karmaşıklığı, daha uzun bir tasarım süresi anlamına gelir. Aynı zamanda daha fazla sayıda tasarım hatası olasılığını da artırır. Oluşabilecek bu hataların sonradan bulunması ve düzeltilmesi zor, zaman alıcı ve maliyetlidir. Örnek olarak, 32 bitlik bir mikroişlemci olan Motorola MC68020 bir CISC’dir. Ayrıca 16 genel amaçlı CPU yazmacına sahiptir, yedi veri türünü tanır ve 18 adresleme modunu kullanabilir.
MC68020 talimatları bir wordden (16 bit) 11 word’e kadar olabilir. Bu ve diğer birçok CISC sistemi, çok çeşitli veri ve talimat formatlarına, adresleme modlarına ve talimatlara sahiptir. Bu çeşitliliğin doğrudan bir sonucu, oldukça karmaşık kontrol ünitesidir. Örneğin, daha az karmaşık olan MC68000’de bile, kontrol ünitesi yonga alanının %60’ından fazlasını kaplar.
RISC tipi bir sistemin 304’ten daha az talimata sahip olması beklenir. Bir RISC sisteminin sahip olması gereken talimatların sayısı konusunda kesin bir fikir birliği yoktur. Berkeley RISC 31, Stanford MIPS 60 ve IBM 801’de 100’ün üzerinde talimat bulunmaktaydı. RISC tasarımının, komut sayısını en aza indirmesi beklense de, bu kendi başına bir RISC’nin tanımlayıcı özelliği değildir. Azaltılmış adresleme modları sayısı, talimat formatları sayısı ve basitleştirilmiş kontrol ünitesinin tasarımı ile sistem basitleştirilmiştir. Şimdiye kadar ortaya çıkan RISC tasarımları göz önüne alındığında, aşağıdaki RISC öznitelikleri listesine bir RISC’nin resmi olmayan bir tanımı olarak bakabiliriz.
1. Nispeten az sayıda talimat
2. Az sayıda adresleme modu
3. Az sayıda talimat formatı
4. Tüm talimatların tek döngülü yürütülmesi
5. Yalnızca yükleme / saklama talimatlarıyla gerçekleştirilen bellek erişimi
6. CPU’nun nispeten büyük bir yazmaç seti vardır. Çoğu işlem yazmaçtan yazmaca yapılabilir. Bellek erişim işlemleri en aza indirilir
7. Donanımsal (Hardwired) bir kontrol ünitesi (teknoloji geliştikçe mikro programlanmış olarak değiştirilebilir)
Bu özelliklerin çoğu RISC sisteminde ortak olan tasarım özniteliklerinin bir listesinden ziyade, bir RISC makinesinin tanımının oldukça esnek olduğunu belirtmektedir. RISC ve CISC arasındaki sınırlar katı bir şekilde belirlenmemiştir.
RISC makineleri genellikle yüksek performanslı uygulamalarda kullanılır. Gömülü denetleyiciler buna iyi bir örnektir. Daha karmaşık sistemleri inşa etmek için de kullanılabilirler. Hızı ve basitliği bir RISC makinesini bu tür uygulamalar için uygun kılar.
Bir RISC’nin kontrol birimi daha basittir, yonga üzerinde daha küçük alan kaplar ve komutların daha hızlı yürütülmesini sağlar. Küçük bir komut seti, az sayıda adresleme modu ve komut formatı, daha hızlı bir kod çözme süreci anlamına gelir. Çok sayıda CPU yazmacı, bellek erişimlerini azaltan programlamaya izin verir. CPU içinde yazmaçlar arası işlemler bellek erişiminden çok daha hızlı olduğu için, genel hız artar.
Derleyiciler makine dilinde herhangi bir işlem gerçekleştirmeye çalışırken, RISC sistemlerindeki komut sayısı az olduğundan, CISC sistemlerindeki birkaç seçenek olasılığının aksine genellikle yalnızca tek bir seçeneğe sahiptir. Bu, bir RISC için derlemenin bu aşamasını daha kısa ve daha basit hale getirir.
Sonuç olarak, bir RISC komut seti, derleyici üzerindeki yükü azaltır. Bu, RISC derleyicilerinin tasarım süresini ve maliyetlerini azaltır. Bir CISC’in bazı talimatları tarafından gerçekleştirilen işlevler az sayıda talimata sahip olan bir RISC’in iki, üç veya daha fazla talimatıyla gerçekleşebilir. Bu durum RISC kodunun daha uzun olmasına neden olur böylece makine ve assembly dili programcısı için ekstra bir yük oluşturur. Daha uzun RISC programları, sonuç olarak, depolanmaları için daha fazla bellek yeri gerektirir.
Bölüm Özeti
Bu bölümde, ticari olarak mevcut makinelerin örnekleri aracılığıyla komut seti mimarisinin ayrıntılarını anlatılmış, bellek ve yazmaç mimarilerini içeren işlemci yapıları üzerinde durulmuştur.
Kaynakça
Brey, B., Intel Microprocessors: Architecture, Programming, and Interfacing, Englewood Cliffs, NJ: Prentice Hall, 2003.
Cramer, W. and Kane, G., 68000 Microprocessor Handbook, Berkeley, CA: Osborne McGraw-Hill, 1986.
Computer, New York, NY: IEEE Computer Society, Published monthly. http://www.computer.org
Electronic Design, Cleveland, OH: Penton Media, Published twice monthly. http://www. electronicdesign.com
Embedded Systems Design, San Francisco, CA: CMP Media, Published monthly. http://www.embedded.com.
Hill, M.D., Jouppi, N.P., and Sohi, G.S., Readings in Computer Architecture, San Francisco, CA: Morgan Kaufmann, 1999.
IBM System 370 Principles of Operation, GA22–7000. Poughkeepsie, NY: IBM Corporation, 1976.
Intel 8080 Microcomputer Systems Users Manual, Santa CA: Intel Corp., 1977.
Intel Architecture Software Developer’s Manuals—Volume 1: Basic Architecture (24319001.pdf); Volume 2: Instruction Set Reference (24319101.pdf) and Volume 3: System Programming Guide (24319201.pdf) at http://www.intel.com/design/PentiumII/manuals Santa Clara, CA: Intel Corp.
M6502 Hardware Manual, Norristown, PA: MOS Technology Inc., 1976.
MC68000 Technical Features, Phoenix, AZ: Motorola Semiconductor Products, 1982. MC68000 Users Manual, Austin, TX: Motorola, 1982.
MCS-80 Users Manual, Santa Clara, CA: Intel, 1977.
Messmer, H., The Indispensable PC hardware Book, Reading, MA: Addison-Wesley, 1997. P6 Family of Processors Hardware Developer’s Manual, Santa Clara, CA: Intel Corp.,
http://www.intel.com/design/PentiumII/manuals/24400101.pdf
Patterson, D.A. and Hennessey, J.L., Computer Organization and Design: The Hardware= Software Interface, San Mateo, CA: Morgan Kaufmann, 1997.
PDP-11 Processor Handbook, Maynard, MA: Digital Equipment Corp., 1978.
Pentium II Processor Technology, ECG Technology Communications, ECG046=0897, Houston, TX: Compaq Computer Corp., August, 1997.
Pentium II Xeon Processor Technology Brief, Order Number: 243792–002, Santa Clara, CA: Intel Corp., 1998.
Shiva, S.G., Advanced Computer Architectures, Boca Raton, FL: Taylor & Francis, 2006. Tannenbaum, A., Structured Computer Organization, Englewood Cliffs, NJ: Prentice-Hall, 2006.
Comments