İçeriğe atla

Mikroprogramlama

Mikroprogramlama, kontrol işaretlerini oluşturan ikili sayıların (0, 1) mikrokomutlar yazılarak oluşturulmasıdır. Bu sembolik mikroprogram, ikili kontrol işaretlerine mikroassembler anlamında dönüştürülür. Mikroprogramlama yazılım ile donanım arasındaki özyinelemeyi sağlayan bilgisayarın en gerekli parçasıdır. İşlemcinin denetim birimini tasarlamak için yazmaç aktarımı işlemleri düzeyinde programlama yapılması yöntemidir. Birçok işlemcide mikroprogramlama makine kodu buyruklarını doğrudan donanım üzerinde yürütür. Fakat bazı yeni mimarilerde mikroprogramlama uygulanmaz onun yerine yazılım, dijital mantık düzeyindeki işlemleri doğrudan çalıştırır.

Mikroprogramın her satırı 5 alanlı mikrokomutlardan oluşur: etiket, mikrooperasyon, CD, BR ve AD alanlarıdır.

  1. Alan :Etiket alanı, boş olabilir veya sembolik bir adres içerebilir. Kolon (:) ile biter.
  2. Alan :Mikrooperasyon alanı, virgül ile ayrılmış bir, iki veya üç sembolden oluşur. Her biri F1, F2, F3 alanlarına karşı düşer ve 9 bit (3 x 3 bit) ile tanımlanır.
  3. Alan :CD alanı U, I, S veya Z harflerinden birini içerir. Mikrokomuttaki koşulu tanımlar.
  4. Alan :BR alanı daha önce tanımlanan JMP, CALL, RET ve MAP sembollerini içerir.
  5. Alan :AD alanı aşağıdaki 3 yoldan birisi olabilecek adresi tanımlar:
  • Sembolik bir adres (etiket)
  • NEXT sembolü: sonraki satırı tanımlar
  • BR alanı RET veya MAP olarak tanımlanmışsa, AD alanı boş bırakılır.

Tarihi

Önceden bilgisayar bilimcileri kendi çalışmalarını sekteye uğratan birçok kısıtlamalarla karşı karşıya kaldılar. Programlar alt düzey dillerle yazılmış ve mevcut depolanan alan küçüktü. Bu sebeple güçlü alt düzey buyruklar her zaman bilim adamları tarafından en çok ilgilenilen konu oldu çünkü güçlü buyruklar kolay programlanabilir ve bellekte az yer kaplar öte yandan daha güçlü buyruklar büyük ve hantal olan daha karmaşık donanımsal yorumlayıcılar gerektirir.

Bilgisayarın denetim parçaları yani elektronik parçaların mantık kapılarına dönüştürülmesi 60'ların öncesinde yapılandırıldı. Bilgisayarların inşasının özellikle denetim mantığının karmaşık ve hata eğilimli olduğunun kısa zamanda farkına varılmıştır bu yüzden hataları azaltmak ve ileri sistem yapılandırılması yapmak için birtakım teknikler geliştirildi. Bunun rağmen hala karmaşıktır ve hataları da düzeltmek zordur.

1947'de MIT Whirlwind tasarımı, bilgisayar tasarımını kolaylaştıran ve "amaca özel-niyete mahsus" olan yöntemlerin ötesine geçmek için bir yol olan denetim belleği fikri ile tanıştı. Denetim belleği iki boyutlu bir kafestir. Bir boyut MİB dahili saatinden "denetim zamanı vuruşları" olarak kabul edildi, diğeri ise kapılar ve diğer akımlar üzerindeki denetim sinyallerine bağlıdır. "Vuruş dağıtıcı", MİB saati tarafından oluşturulan vuruşları alır ve her biri kafesin farklı bir satırını etkinleştiren sekiz parça zaman vuruşuna böler. Satırlar etkinleştiği zaman, kendisine bağlı olan denetim sinyallerini etkinleştirir. Başka bir yoldan açıklarsak, sinyaller denetim belleğinden ardışık bir şekilde yayılır ve bitlerden kurulan çok geniş kelime dizisi tarafından kontrol edilir. Mikroprogramlama karmaşık yorumlayıcılara alternatif olarak 1951 yılında Maurice V. Wilkes tarafından ileri sürüldü. Wilkes'in tasarısı bir sonraki buyruğu gidip ana programdan alıp getiren, buyruğu çözümleyen ve buyrukları çalıştırmak için gerekli donanımsal işleri gerçekleştiren fiziksel bağlantılı bir program uygulamakla ilgilidir. Bu denetim yolu tasarımını fazlasıyla kolaylaştırır. Bu tasarıya göre mikroprogram merkezî işlem birimi üzerindeki bir bellek dizisinde saklanmalı ve hemen hemen olağan programlama teknikleri ile tasarlanmalı daha sonra da teller ve kapılarla gerçekleştirilmelidir.

1951'de Wilkes bu konuya "koşullu uygulamayı" ekleyerek geliştirdi. Onun başlangıç uygulaması bir çift matris içerir. İkinci matris bir sonraki devire geçen sinyal satırını seçerken, birincisi Whirlwind denetim belleği şeklinde sinyaller üretir. İkinci matristen alternatifler seçebilen koşullular denetim belleğinde tek bir hat geliştirilerek uygulandı. Bu yakalanan dahili sinyallerde koşullu denetim sinyalleri oluşturur. Wilkes bu özelliği açıklamak ve bunu basit bir denetim belleğinden ayırmak için mikroprogramlama terimini keşfetti.

Mikroprogramlama uygulaması

Yatay ve dikey mikroprogramlama

Yatay ve dikey olmak üzere iki tür mikro programlama vardır. Bu ayrımın sebebi mikro kodun işlenme şeklidir. Veriyolu kontrol sinyalleri ile yönetildiğinden mikro kodun bu sinyallerle nasıl ilişkilendirileceği problemi ortaya çıkar. Yatay ve dikey mikro programlama bu ilişkilendirme şeklidir. En basit yöntem olan "tam yatay mikro programlama" mikro koddaki her bitin kontrol sinyallerindeki bitlerle birebir eşlenmesidir. Ama böyle bir mikro programlama tekniğinde veriyolu yönetimi için çok fazla mikro buyruk ve aynı zamanda geniş veri yolu gerektirmektedir. Bunlara rağmen paralel programlama desteğini de artırmaktadır. Diğer bir mikro programlama türü tam dikey mikro programlamadır. Bu yöntemle veriyolu bitleri kodlanmakta ve böylece daha az mikro buyruk gerektirmektedir. Mikro buyruklardaki azalma ise mikro programlama için gerekli olan belleği azaltmaktadır. Ama dikey programlama paralel programlamayı engeller.

Değerlendirme

Her tasarım bazı faydalar sağlarken uygulanması fedakârlıklara sebep olur. 1960'lardan itibaren mikro programlama moda olmasında aşağıdaki iki fayda rol oynamıştır.

  1. Kolay değiştirilebilirlik: Mikro program kodları diskte saklanabildiği için mikro koddaki hatalar çok rahatlıkla düzeltilebilmektedir ve değişik bilgisayarlar için farklı mikro program kümeleri kullanılabilir.
  2. Kolay genişletilebilirlik: İşlemciye yeni eklenecek buyruk için devre tasarlanması yerine hızlı bir şekilde yeni eklenen buyruk için mikro kodların yazılması yeterlidir.

Yüksek seviyeli programlama dillerinin 1980'lerin başlarından itibaren kullanılması aşağıdaki problemlere sebep olmuştur:

  1. Kurulum zorluğu: Yüksek seviye diller nedeniyle değişik buyruklar geldi ve bu buyruklar için mikro kod yazılması imkânsızlaştı.
  2. Karmaşa: Yüksek seviye buyrukların mikro kodları karmaşıklaştı.
  3. Performans: Yüksek seviye buyruk için gereken mikro buyruk sayısı arttığı için buyruk başına çevrim sayısı azalmaktadır bu da performansta düşüşlere sebep olmaktadır.
  4. Kaynak harcanması: Yüksek seviyeli buyrukların mikro buyruklara dönüştürülmesini sağlamak amacıyla kullanılan kaynaklar aşırı derecede arttı.
  5. Kontrol Birimi Baskınlığı: Buyruk mikro buyruk çevirme devreleri işlemcilerin 70%'inden fazlasını kaplamaya başladı.

Yukarıdaki sebeplerden dolayı 1980'lerin sonlarında mikro programlama modası düşüşe geçmiştir.

Kaynakça

Dış bağlantılar

İlgili Araştırma Makaleleri

Komut kümesi mimarisi, CPU'nun yazılım tarafından nasıl kontrol edileceğini tanımlayan bilgisayar soyut modelinin bir parçasıdır. ISA, işlemcinin ne yapabileceğini ve bunu nasıl yapacağını belirterek donanım ve yazılım arasında bir arayüz gibi davranır.

<span class="mw-page-title-main">Mikrodenetleyici</span>

Mikrodenetleyici bir VLSI entegre devre çipinde küçük bir bilgisayar'dır. Mikrodenetleyici, bellek ve programlanabilir giriş/çıkış çevre birimleri ile birlikte bir veya daha fazla CPU kapsar.

Durağan Rastgele Erişimli Bellek, yarı-iletken bir bellek türüdür.

<span class="mw-page-title-main">Merkezî işlem birimi</span> bir bilgisayar programının talimatlarını, talimatlar tarafından belirtilen temel aritmetik, mantıksal, kontrol ve giriş/çıkış (G/Ç) işlemlerini gerçekleştirerek yürüten ve diğer bileşenleri koordine eden bir bilgisayar içindeki elektro

Merkezî işlem birimi, dijital bilgisayarların veri işleyen ve yazılım komutlarını gerçekleştiren bölümüdür. Çalıştırılmakta olan yazılımın içinde bulunan komutları işler. Mikroişlemciler ise tek bir yonga içine yerleştirilmiş bir merkezî işlem birimidir. 1970'lerin ortasından itibaren gelişen mikroişlemciler ve bunların kullanımı, günümüzde MİB teriminin genel olarak mikroişlemciler yerine de kullanılması sonucunu doğurmuştur.

i386

Intel 80386 veya i386, 80286'dan sonraki Intel mikroişlemcisi.

Bellek bilgisayarı oluşturan 3 ana bileşenden biridir.. İşlemcinin çalıştırdığı programı, lar ve programa ait bilgiler bellek üzerinde saklanır. Bellek geçici bir depolama alanıdır. Bellek üzerindeki bilgiler güç kesildiği anda kaybolurlar. Bu nedenle bilgisayarlarda programları daha uzun süreli ve kalıcı olarak saklamak için farklı birimler mevcuttur.

<span class="mw-page-title-main">Intel 80286</span>

Intel 80286 veya i286, 8086/8088'dan sonraki intel işlemcisidir.

İşlemci önbelleği, CPU'nun hafızadaki verilere ulaşma süresini azaltan bir donanımdır. Ana belleğe(RAM) kıyasla küçük, hızlı ve işlemci çekirdeğine yakındır. Sık kullanılan veriler ya da en güncel veriler işlemci önbelleğinde saklanır. Günümüzde pek çok CPU, birden çok seviyede önbellek içerir, bu önbellekler verilerin yanı sıra komutları da bünyesinde tutar.

<span class="mw-page-title-main">Aritmetik mantık birimi</span>

Aritmetik mantık birimi (AMB) aritmetik ve mantık işlemlerini gerçekleştiren bir dijital devredir. AMB en basit işlemi gerçekleştiren mikro denetleyiciden, en karmaşık mikroişlemciye sahip bir bilgisayara kadar tüm işlemcilerin yapıtaşıdır. Modern bilgisayarların içinde bulunan mikroişlemcilerin ve ekran kartlarının içinde çok karışık ve güçlü AMB'ler bulunmaktadır. AMB kavramına ilk olarak 1945 yılında matematikçi John von Neumann EDVAC adlı yeni bir bilgisayar üzerine bulgularını anlatan raporunda değinmiştir.

Veri yolu, bilgisayar yapısında, bilgisayarın içindeki parçalar arasında ya da bilgisayarlar arasında verileri ya da gücü transfer eden bir alt sistemdir ve genellikle aygıt yürütme yazılımı tarafından kontrol edilir. Nokta- nokta bağlantısının tersine, veri yolu, birçok çevresel aygıtı aynı takım kablo ile mantıksal olarak bağlayabilir. Her bir veri yolu kendi bağlayıcılarını fiziksel fiş aygıtlarına, kartlara veya kabloların tümüne karşı tanımlar.

Boru hattı yöntemi bilgisayar mimarisi ve diğer sayısal ürünlerin tasarımında başarımı artırmak için uygulanan bir yöntemdir. Komutları, boru hattı yöntemi ile işleyip daha kısa süre içinde bitmesini sağlar. Asıl amacı saat sıklığını artırarak başarımı artırmaktır. Farklı kaynakları aynı anda, farklı işler tarafından kullanarak çalışır.

<span class="mw-page-title-main">Bilgisayar mimarisi</span>

Bilgisayar mimarisi, en küçüğe ve en başarılıya ulaşmayı hedeflerken aynı zamanda maliyeti de göz önünde bulundurduğu için sanat ve bilimin ortak buluştuğu nokta olarak da tanımlanır. Bilgisayar Mimarisi, bilgisayar parçalarının iç yapıları ve aralarındaki haberleşme bağlantıları ile ilgilidir.

<span class="mw-page-title-main">Merkezî işlem birimi tasarımı</span>

Merkezî işlem birimi tasarımı bilgisayarın temel bileşenlerinden birisi olan Merkezî işlem birimini (MİB) etkin kullanmayı yönelik bir tasarımdır. MİB bilgisayar donanımının temel bileşenlerinden birisidir. İşlemcisi olmayan bir bilgisayar düşünülemez. Bu yüzden işlemcinin tasarımı ne kadar iyi olursa sistem de o derece hızlı olacaktır. İşlemciyi hızlandırmanın değişik yolları vardır. Bunlardan bazıları:

  1. Buyrukların paralel çalışmasını sağlamak
  2. Çok vuruşluk işlemciler kullanmak
  3. Boru hattı kullanmak
  4. Çoklu işleme kullanmak

Sanal bellek, fiziksel belleğin görünürdeki miktarını arttırarak uygulama programına (izlence) fiziksel belleğin boyutundan bağımsız ve sürekli bellek alanı sağlayan bilgisayar tekniğidir. Ana belleğin, diskin (ikincil saklama) önbelleği (cache) gibi davranmasıyla; yani disk yüzeyini belleğin bir uzantısıymış gibi kullanmasıyla gerçekleştirilir. Ancak gerçekte, yalnızca o anda ihtiyaç duyulan veri tekerden ana belleğe aktarılıyor olabilir. Günümüzde genel amaçlı bilgisayarların işletim sistemleri çoklu ortam uygulamaları, kelime işlemcileri, tablolama uygulamaları gibi sıradan uygulamalar için sanal bellek yöntemi kullanılmaktadır.

Mikroişlemcilerde kural dışı durumlar, programların çalıştırılması esnasında verilen komutlar neticesinde oluşan hatalardır. Bu hatalar nedeniyle program istenilen şekilde çalışmaz. Hatta işlemcinin kilitlenmesine bile sebep olabilir. Bu tür durumlar normal bir işleyiş olmadığından kural dışı durum oluşturur.

Dallanma bir bilgisayar programında denetim akışının değiştiği noktadır. Dallanma terimi genellikle makine kodu ya da çevirici dil programlarındaki atlama komutları için kullanılır. Üst düzey dillerde dallanma noktaları genellikle "if-else", "while", "for" gibi döngü yapılarında ya da işlevlerin çağrılması durumunda ortaya çıkan koşul önermelerinde kullanılır. Üst düzey dillerdeki bu tür kod parçaları derlendiğinde alt düzeyde dallanma buyruklarına dönüşür.

<span class="mw-page-title-main">Yazmaç öbeği</span>

Yazmaç öbeği, bir merkezi işlem birimindeki işlemci yazmaçlarının bir dizisini ifade etmektedir. Modern tümleşik devre tabanlı yazmaç öbekleri genellikle çok portlu hızlı durağan rastgele erişimli bellekleri (SRAM) kullanılarak sistemlere tümleştirilmektedirler. Bu tür rastgele erişimli bellekleri kullandıkları okuma ve yazma girişlerine göre ayrılır, fakat normal çok portlu durağan rastgele erişimli bellekler okuma ve yazma işlemlerini aynı girişleri kullanarak gerçekleştirebilmektedirler.

Çok uzun buyruk kelimesi, buyruk düzeyindeki paralelliğin avantajından yararlanmak için geliştirilmiş bir işlemci tasarımıdır. Her buyruğu arka arkaya çalıştıran işlemciler, işlemci kaynaklarını verimsiz bir şekilde kullanabilmekte ve bu durum da başarımın düşmesine neden olmaktadır. Başarım, sıralı çalışan buyrukların çalıştırılma basamaklarında farklı aşamalarda olmasıyla veya aynı anda birden fazla buyruğun birbirinden bağımsız olarak çalıştırılmasıyla arttırılabilir. Bu yöntemlerin daha da iyileştirilmesi, buyrukların programdaki sırasından farklı bir sırada çalıştırılması ile sağlanabilir; bu yönteme de Sırasız yürütüm denir.

NetBurst, İntel'in 2000 yılında piyasaya sürdüğü Pentium 4 işlemci markasının mikromimarisine verilen isimdir. 2006 Temmuz'unda Core mikromimarisinin çıkışına kadar İntel işlemcilerin mikromimarisi olmuştur. Selefi P6 mikromimarisine göre en önemli özelliği derin boru hattı yapılanmasıyla avantaj sağladığı yüksek saat sıklığıdır. Temel olarak dört ana parçadan oluşmaktadır: Sıralı(ing. In-order) Ön-Uç(ing. Front-end), Sırasız(ing. out-of-order) yürütme birimi, Tam sayı ve kayan nokta yürütme birimleri ve bellek altdizgesi.

<span class="mw-page-title-main">Nehalem (mikromimari)</span>

Nehalem, İntel firmasının Eylül 2008'de piyasaya sürülen Core i7 işlemcisiyle birlikte kullanılmaya başlanmıştır. 2011'de Sandy Bridge mikromimarisi sunulana kadar İntel'in en gelişmiş mikromimarisi olarak piyasada kalmıştır. Selefi Core mikromimarisine göre paralelliği ve saat frekansını arttırmış, Core mikromimarisinde İntel'in kullanmadığı fakat daha önce NetBurst'de kullanılan Hyper Threading teknolojisi Nehalem ile tekrar kullanılmaya başlamıştır. Nehalem'le birlikte Core mikromimarisinde terkedilmiş olan üçüncü seivye bir önbellek de yonganın içerisine eklenmiştir. İntel, Nehalem ile ilk defa bellek denetim birimini işlemci yongasının içine koymuş ve front-side bus dan ayırmıştır.