Çoklu kullanım

Çoklu kullanım (İngilizcesi: multithreading) özelliğine sahip bilgisayarlar birden fazla iş parçacığını donanım desteği sayesinde çalıştırabilir. Çoklu işlem yapabilen sistemlerden gelişen bu yöntem tek bir çekirdeğin kaynaklarını paylaşmak zorundadır. Bu kaynaklar: aritmetik mantık birimi, yazmaçlar (registers), işlemci ön belleği ve adres dönüştürme ön belleğidir. Çoklu işlem yapabilen sistemlerde (çok çekirdekli), işlem birimlerinin tamamı ayrı çekirdeklerde olmasına rağmen, çoklu kullanım tek bir çekirdeğin kullanılabilirliğini iş-parçacığı seviyesinde ve buyruk düzeyinde daha verimli hale getirir. Bu iki teknik birbirini tamamlayan tekniklerdir.

Genel bakış

Çoklu kullanım modeli 1990'ların sonunda buyruk düzeyinde paralel işleme çalışmalarının sona yaklaşmasıyla daha popüler hâle gelmiştir.

İşlem/zaman oranını arttıran iki önemli teknik çoklu işleme ve çoklu kullanımdır.

Artıları

Eksileri

Sonuçlar değişken olsa da, Intel HyperThreading[1] teknolojisi ile %30 civarında fayda sağladığını belirtmiştir. Hyperthreading, bağımlı kayan nokta işlerlerini paralelde yaparak %100 fayda sağlayan bir sentetik programdır. Öte yandan, verileri önceden yakalayan assembly-tabanlı programlar, mesela iyi video kodlayıcıları, ön bellekte verinin bulunamaması veya boşta bekleyen kaynaklar gibi sorunları olmadığı için çoklu işlemeden yararlanamazlar. Bu yüzden de iş parçacıklarının paylaştığı kaynaklarda oluşabilecek sorunlar yüzünden başarımlarında düşüş gözlenebilmektedir.

Çoklu kullanımı sağlayan donanım teknikleri, çoklu görevlendirmeyi sağlayan yazılım teknikleri ile benzeşmektedir.

Çoklu işleme türleri

Blok çoklu işleme

Kavram

Çoklu işlemenin en basit türü, bir iş parçacığı yürütülürken bir olay tarafından uzun bir süre bekletilmesi gerektiği zaman gerçekleşir. Bu beklemenin sebepleri ana belleğe erişim olabilir ki bu olayda verinin bulunması yüzlerce işlemci vuruşu sürmektedir. Olayın sonçuçlanmasını beklemek yerine, iş parçacıklarını kullanan bir işlemci bu sırada hazır olan başka bir iş parçacığını yürütmek için çağırabilir. Beklenen veri bulunduğunda ise önceki iş parçacığı hazır kuyruğuna sokulur. Sıra geldiğinde de yürütülmeye devam eder.

Kavramsal olarak, işletim sistemlerindeki çoklu görevlendirmeye benzemektedir. Çoklu görevlendirmede de görevler bir olay bekledikleri sırada kendi istekleri ile çalışma zamanlarından vazgeçerler ve olay olduğu zaman tekrar çalışmalarına devam ederler.

Kullanılan terimler

Bu tür çoklu kullanım Blok veya İşbirlikçi veya Kaba çoklu kullanım olarak adlandırılabilir.

Donanım maliyeti

Çoklu kullanım yapabilen donanımın amacı, bir şekilde çalışması engellenen iş parçacığı ile çalışmaya hazır iş parçacığının çok hızlı bir şekilde yer değiştirmesidir. Bu amaca ulaşmanın maliyeti, program tarafından kullanılan ve bazı işlem kontrolünde kullanılan yazmaçların kopyalanmasıdır. Bir iş parçacığından diğerine geçmek demek, neredeyse bütün bir yazmaç bloğunu değiştirmek demektir.

Böyle bir donanımın eklenmesi şu katkıları sağlar:

İş parçacıkları arasında etkin bir şekilde geçiş yapabilmek için her aktif iş parçacığının kendisine ait yazmaç bloğu olmalıdır. Örneğin iki iş parçacığı arasında çabuk bir geçiş sağlayabilmek için yazmaçların iki kere tanımlanması gerekir.

Dönüşümlü çalışan çoklu kullanım

Bu tip çoklu kullanımın amacı, boru hattında veri bağımlılıkları yüzünden oluşan beklemeleri ortadan kaldırmaktır. Bir iş parçacığı diğerlerinden tamamen bağımsız olduğu için, boru hattındaki bir buyruğun daha eski bir buyruktan veri beklemesi pek olası değildir.

Kavramsal olarak, işletim sistemlerindeki öncelikli çoklu kullanıma benzemektedir. İşletim sistemlerindeki bir zaman-dilimi işlemcideki vuruşa benzetilebilir.

Kullanılan terimler

Bu tür çoklu kullanıma ilk olarak Fıçı işleme(Barrel processing) denilmişti. Bunu sebebi boruhattı aşamalarının ve yürütülen iş parçacıklarının bir fıçının tahtalarına benzetilmesiydi. Dönüşümlü, Öncelikli, zaman-dilimli çoklu kullanım daha modern isimleridir.

Donanım maliyeti

Blok türündeki çoklu kullanıma ek olarak, dönüşümlü çoklu kullanımda iş parçacığının kimliğini(ID) takip edebilmek için fazladan boruhattı aşamaları bulunmaktadır. Aynı zamanda boruhattında eşzamanlı çalışan daha fazla iş parçacığı olduğundan ön bellek ve adres dönüştürme ön belleği gibi kaynakların daha büyük olması gerekmektedir.


Eşzamanlı çoklu işleme

Kavram

Çoklu kullanımın en gelişmiş ve superscalar işlemcilere uygulanan türüdür. Normal bir superscalar işlemci her vuruşta bir iş parçacığından birden fazla buyruk işler. Eş zamanlı çoklu işlemede ise işlemci birden fazla iş parçacığından birden fazla buyruk işler. Bir iş parçacığının limitli sayıda buyruk düzeyi paralelliğe erişebileceği göz önüne alınırsa, bu tür çoklu işleme birden fazla iş parçacığında paralellik sağlayarak boşa giden buyruk işleme slotlarını engeller.

Donanım maliyeti

Dönüşümlü çoklu kullanımdakine ek olarak eşzamanlı çoklu kullanımda, her boruhattı aşamasında iş parçacığı kimliklerinin takibinin maliyeti olacaktır. Bu yöntemde de aktif iş parçacıklarının sayısına göre ön bellek ve adres dönüştürme ön belleği yeniden boyutlandırılmalıdır.

Örnekler

Gerçekleştirim özellikleri

Başka bir geniş araştırma alanı da iş parçacıkları zamanlayıcısıdır. Zamanlayıcı en çabuk şekilde hazır kuyruğunda yürütülmeyi bekleyen iş parçacıkları arasından bir sonraki iş parçacığını seçmek ve aynı zamanda da hazır kuyruğunu ve bekleme kuyruğunu düzende tutmakla yükümlüdür. Zamanlayıcı tamamen donanımda, tamamen yazılımda veya ikisinin birleşimi olarak gerçekleştirilebilir.

Diğer bir araştırma alanı ise ne tür olayların iş parçacıkları arasında değişime yol açacağıdır. Ön bellekte bulamama, iş parçacıkları arası iletişim, DMA v.s.

Eğer çoklu kullanım şeması tüm durum bilgisini kopyalıyorsa (ayrılmış kontrol yazmaçları, ADÖ, v.s.) bu durumda her bir iş parçacığı için bir sanal makine yaratıyor demektir. Bu şekilde her iş parçacığı aynı işlemci üzerinde kendi işletim sistemi üzerinde çalışıyor gibi olmaktadır. Öte yandan kullanıcı-modu durum bilgisi kaydedilseydi, daha çok iş parçacığının aktif olması için daha az donanım gerekli olacaktı.[2]

Kaynaklar

This article is issued from Vikipedi - version of the 9/8/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.