Komut kümesi
Vikipedi, özgür ansiklopedi
Komut kümesi bir bilgisayarın anlayıp uygulayabileceği komutlardır. Bir bilgisayar programının belli bir bilgisayarda çalışabilmesi için bu programın, çalıştırılacağı bilgisayarın komut kümesine göre derlenmesi gerekir.
Komut kümesi, ya da komut kümesi mimarisi (KKM), bilgisayar mimarisinin, yerel/doğal veri türlerini, komutlarını, yazmaçlarını, adresleme biçimlerini, bellek mimarisini, kesme ve kural dışı durum işlemesini, ve harici I/O (giriş – çıkış) birimlerini kapsayan, programlama ile ilgili olan parçasıdır. Bir KKM işlem kodları kümesinin ( makine dili ) , özel bir CPU tasarımı tarafından işlenen yerel/doğal komutlar , tarifini kapsamaktadir.
Komut kümesi mimarisi mikromimariden, komut kümesini uygulamak için kullanılan işlemci tasarım teknikleri kümesi, farklıdır. Farklı mikromimarideki bilgisayarlar ortak bir komut kümesini paylaşabilirler. Örneğin, Intel Pentium ve AMD Athlon neredeyse aynı x86 komut kümesi sürümlerini uygular, fakat radikal biçimde farklı iç tasarımlara sahiptirler.
Bu kavram IBM Sistem/38 ve IBM AS/400 de bulunan TBMA (Teknolojiden Bağımsız Makine Arayüzü ) gibi eşsiz KKM’lerine de yayılabilir. TBMA de şu anda pratik olarak sanal makinelere benzeyen, alt-düzey program olarak çalışan bir KKM dir. Kendi için yazılmış programların ve platformun ömrünü uzatmak için tasarlanmıştı; böylece, TBMA’nü oluşturan yazılım haricindeki yazılımlar üzerinde herhangi bir oynama yapmadan tüm platformu başka donanımlara taşımaya olanak sağlıyordu. Bu, IBM in AS/400 platformunu eski mimariye sahip CISC üzerinden yeni POWER mimarisine, yazılımın ya da işletim sisteminin herhangi bir parçasını yeniden yazmadan, taşımasını sağlamıştır.
Komut Kümesi Tasarımı
Mikromimariler tasarlarken, mühendisler KKM’nin her komutunun gerçekleştireceği işlemi tanımlarken Yazmaç Nakil Dili (YND)’ni kullanmışlardır. Tarihsel açıdan bu tanımı CPU üzerinde saklamak için şimdiye kadar 4 yol kullanılmıştır:
• İlk bilgisayar tasarımcılarının tümü, ve bazı daha sonraki basit RISC bilgisayar tasarımcıları, komut kümelerini kalıcı olarak yerleştirmişlerdir.
• Çoğu işlemci tasarımcısı, komut kümesini işlemci içerisindeki mikrokod Rom’una derlemişlerdir. (örnek: Western Digital MCP-1600)
• Bazı işlemci tasarımcıları, komut kümesini işlemci içerisinde bulunan yazılabilir Ram’e ya da Flash’a derlemişlerdir.
Bir KKM yazılımsal olarak da bir yorumlayıcı tarafından taklit edilebilir. Bu taklit işlemi için ihtiyaç duyulan ek çeviri nedeniyle, bu KKM ni kullanarak doğrudan donanımsal olarak çalıştırılabilecek programlara göre daha yavaştır. Günümüzde, yeni mikromimarilerin ya da KKM’lerin satıcıları için donanımsal uygulamalar hazır olmadan önce yazılım geliştiricileri için yeni yazılımsal emülatörleri sunmak alışkanlık olmuştur.
Bazı komut kümesi tasarımcıları yazılımsal kesinti için bir ya da birden fazla işlem kodunu ayırırlar. Örneğin, MOS Technology 6502 0x00 (tüm sıfırları) kullanır, Zilog Z80 0xFF (tüm birleri) kullanır ve Motorola 68000 0xA000 dan 0xAFFF e kadarki tüm komutları kullanır.
Eğer komut kümesi Popek ve Goldberg in soyutlama gereksinimlerini karşılıyorsa, hızlı sanal makineleri çalıştırması çok daha kolaydır.
Çok işlemcili sistemlerde, eğer komut kümesi “al ve arttır” veya “bağlantılı yükle/şartlı sakla” veya “atomik karşılaştır ve değiştir” gibi komutlar için destek sağlıyorsa, tıkanmasız eşleme algoritmalarını çalıştırması daha kolaydır.