Mikrodenetleyiciler (Mikrobilgisayarlı Sistem Tasarımı)

advertisement
T.C.
TRAKYA ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ
Ödev Konusu : MESSAGE PASSING ARCHITECTURE
Oğuz ATA
MESSAGE PASSING ARCHITECTURE
(Mesaj Geçiş Mimarisi)

Mesaj geçiş mimarisi, iletişim ve çokluişlemci ile veri arasındaki
hareket için alternatif metodlar sağlar.(Paylaşımlı hafızaya
sahip çokluişlemcilerden farklı olarak)
Bu araştırmada, sizlere Neslihan ve Özlem ile birlikte farklı
yönleriyle mesaj geçiş sistemlerinin
 “mesaj yönlendirme(message routing)”,
 “network anahtarlama(network switching)”,
 “işlemcilerin mesaj geçiş desteği”
gibi konularını anlatılmaya çalışılacağız.
INTRODUCTION TO MESSAGE PASSING
(Mesaj Geçişe giriş)


Mesaj geçiş mimarisi, veriler ile işlemci arasındaki iletişimi,
bilgisayarın genel hafızasına ihtiyaç duymadan sağlar.
Mesajlaşmanın ana şemasını düşündüğümüzde
Aşağıdaki şekilde çoklu işlemcili mesaj geçiş mimarisinin ana
bileşenlerini gösterilmiştir. Şekli incelediğimizde 1’den n’e
kadar değişken sayıda düğüm(node) görmekteyiz. Bu düğümler
arabağlantı network’üne linklerle bağlanmıştır
Bir Ni düğümü 2 bileşenden oluşur. Bu bileşenler Pi
ile gösterilen İşlemci(processor) ve Mi ile
gösterilen yerel hafızadır(local memory). Her Pi
işlemcisinin bir adres alanı vardır. Düğümleri
arabağlantı cihazlarıyla bağlayan linkler (called
external channels) bir kanal görevi görür(Statik
tipteki bir network gibi)
Mesajların
iletilmesini
sağlayan
kanallardan(links)
bahsetmiştik. Mesaj geçiş esnasında link bandwidth (linkin
bandgenişliği) ve the network latency(networkteki gecikme
süresi) mesajın iletimi konusunda başlıca faktörlerdir. Link
bandgenişliğini iletim kanalıyla iletilen veri bitlerinin zamana
göre ölçümü olarak tanımlayabiliriz (bits/s). Network
gecikmesi ise mesajın network üzerinden transferinin
tamamlanıncaya kadar geçen süredir.
İşlemciler bir programı çalıştırırken, programı eş zamanlı
işlemlere bölerler. Bölünen bu işlemlerin her biri ayrı
işlemcilerde koşulur. Gelen işlemlerin sayısı, işlemcinin
koşabileceği işlem sayısından büyükse, yeni gelen işlem
zaman paylaşımlı biçimde koşulmaya çalışılır. İşlemler
yalnızca bir işlemci üzerinde koşuluyorsa, o işlemcinin iç
kanallarını(internal channels) kullanarak değişim mesajları
gönderilir. Ancak işlemler bazen koşulduğu işlemcinin dışında
farklı işlemciler ile de koşulabilir. Bu durumda değişim
mesajları dış kanallar (external channels) yolu ile
iletilir.Mesaj geçiş şeması çok sayıda işlem içeren
işlemcilerde, kolay ölçeklenebilirlik ve esneklik sağlar.
Aşağıdaki şekilde mesj geçiş sisteminde gerçekleşen dört
adet işlem görülmektedir. Şekilde yatay çizgiler işlemcilerin
çalışmasını, yukarı ve aşağı uzatılan oklar ise işlemler
arasında gidip gelen değişim mesajlarını göstermektedir.
M’ler ile gösterilen mesajların, iletişimin mantıksal(lojik)
birimleri olduğu söylenebilir. İletişim ortamını oluşturan bu
mesajlar birer komut(nstruction), veri(data),
senkronizasyon(synchronization) yada kesme sinyalleri
(interrupt signals) olabilirler.


Process Granularity (İşlem Boyutu)
Mesaj geçiş sistemlerinde işlem boyutu(size) aşağıdaki formülle
hesaplanır.
Process Granularity = computation time / communication time

Görüldüğü gibi işlem boyutu, hesaplama zamanının iletişim
zamanına oranıdır.
Üç tip boyutlama öne çıkmaktadır;



1 Coarse granularity(kaba boyut): Her işlem bir adet büyük
sayılı komut dizisi tutar. Çalışma zamanına göre önem arz
edeni alır.
2 Medium granularity: Coarse ve fine arası bir yaklaşımdır.
3 Fine granularity: Her işlem birkaç komut dizisi içerir.
ROUTING IN MESSAGE PASSING
NETWORKS (Mesaj Geçiş Ağlarında
Yönlendirme)


Yönlendirmeyi teknik olarak tanımlarsak bir mesajın network
üzerindeki hangi yolu kullanacağının seçilmesidir denilebilir.
Yönlendirme (routing) esnasında mesajın kullanılabileceği,
izinli, mümkün olan yollar (permissible paths) belirlenir ve
mesaj o an için en uygun olan yoldan geçerek hedefe ulaşır.
Yönlendirme teknikleri, merkezi ve dağıtık olarak
sınıflandırılabilir. Merkezi yönlendirmede seçilecek yolun kararı,
henüz mesaj gönderilmeden önce belirlenir. Dağıtık
yönlendirmede her düğüm gönderildikten sonra, o anki duruma
göre hangi yolu kullanacağını kendisi belirler. Merkezi
yönlendirme eksiksiz şekilde ağın durum bilgisine ihtiyaç duyar,
dolayısıyla ağdaki düğümleri sürekli dinler. Dağıtık
yönlendirmede ise mesaj gönderilmeden bir yol belirlenmediği
için, gereken bilgi tüm ağın durumu değil, komşu düğümlerin
durumudur.
Routing for Broadcasting and
Multicasting (Çoklu Gönderim ve Yayın
için Yönlendirme)
Mesaj geçiş sistemlerinde iki tip iletişim şekli vardır. Bunlar
birebir iletişim (one-to-one / point-to-point / unicast
communication) ve çoklu iletişim(collective communication)
dir. Birebir iletişimde bir düğüm, tek bir mesajı tek bir hedefe
yollar, bu da genelde hemen yakınındaki komşusudur. Bu
yaklaşımdan ziyade kollektif yöntemler tercih edilir, bunlar
broadcast(yayın) ve multicast(çoklu gönderim) yöntemleridir.
Broadcast’de bir düğüm, aynı mesajı bütün düğümlere
gönderir. Multicast’de ise bir düğüm aynı mesajı birden fazla
düğüme gönderebileceği gibi, gönderilecek düğümleri de
belirleyebilir.
Routing Potential Problems (Potansiyel
Yönlendirme Problemleri)

Mesaj geçiş sistemlerinde karşılaşılan başlıca problemler
deadlock(ölümcül kilitlenme), livelock, and starvation

Deadlock

Llivelock

Starvation
SWITCHING MECHANISMS IN MESSAGE
PASSING
(Mesaj Geçişlerinde Anahtarlama
Mekanizmaları)
Switching(anahtarlama)/geçiş mekanizmaları verinin giriş
noktasından çıkış noktasına yönlendirilmesi demektir.Veriler
bir kanaldan başka bir kanala geçiş yaparlar.Network
ağlarında ki gecikme süreleri yüksek oranlarda bu
mekanizmalara bağlıdır. Bu anahtarlama mekanizmaları şu
şekildedir;depolama ve gönderme,devre-kesme,virtual cutthrough(sanal-kesmeler),ardışık devre-kesmesi.Bu bölüm de
bazı teknik çalışmaları anlatacağım.
Anahtarlama Ağları Devresi;

Burada kaynak ve hedef arasındaki yol belirlenir,yoldaki bütün
bağlantılar(linkler) ayrılmıştır ve bufferlara(depolanmaya)
ihtiyaç duymazlar diğer node(düğümlere) ihtiyaçları vardır.
Ayrılmış bağlantılar(linkler) veri aktarımından sonra diğer
mesajlar tarafından kullanılmak üzere serbest bırakılır.Devre
anahtarlama tekniğinin önemli karakterisliklerinden biri kaynak
ve hedefin aralarında bir iletişim kurulduğunda belirli bir bant
genişliği ve maksimum gecikmesi, garanti altında olmasıdır. Bu
statik bant genişliğine bakılmaksızın devre anahtarlama
yaklaşımındaki esas engel gerçek kullanımdır.
Depolama ve Gönderme Anahtarlamaları;

Depolama ve gönderme anahtarlama yapıları data transfer
planlamalarında alternatif sağlar.Buradaki amaç mesajlara
dinamik bant genişliğini olanağı sunmaktır,onlar ağ üzerinde ki
akışlar gibidir,böylece devre anahtarlama mekanizmasındaki
ana engelden kaçınılır.Gönderici ve alıcı arasında veri
göndermeden önce bir bağlantı kurulur. Veri gönderme işlemi
boyunca bu bağlantı tutulur ve işlem bitince bağlantı çözülür.
Paket Anahtarlamalı Ağlar;





a-İletim için ayrılmış bir kanalı yoktur.Paketler halinde ağ
üzerinden yollanır.
b-İletişim için kullanılan bant genişliği sabit olmayıp dinamiktir
ve talebe göre değişir.
c-İletişim yapılmadığı zamanlarda bant genişliği boşuna
kullanılmaz.
d-İletim hatası olmadığı varsayımında ,veri iletimindeki
gecikme ve yayılma gecikmesine ek olarak yönlendiricilerde
kuyrukta sıra bekleme ve işlem görme için geçen sürelerin
toplamına eşittir.
e-Her pakette ağ tıkanması yaşanabilir.

Yolun uzunluğundan bağımsız olarak bir gecikme zamanı
üreten ve bütün düğümlerde store-and-foward packetswitching tekniğine göre daha az depolama alanı gerektiren bir
teknik olarak bilinir. Resim 5.5 ve 5.6 da SF ve WH nin çalışma
prensiplerinin farklılıklarını gösterir.

Bu şekilde L paketin (verinin) uzunluğunu bit olarak ,W kanalın
band genişliğini bits/devir olarak, D kanal sayısını ve Tc döngü
zamanını ifade eder.SF ve WH ın gecikme süresi şekildende
anlaşılacağı gibi aşağıdaki gibi ifade edilir.
WORMHOLE ROUTING IN MESH
NETWORKS (Örgülü Ağlarda
WormholeYönlendirmesi)
N boyutlu bir örgü K0 K1 …… Kn_1 adet düğümün
birbirine bağlanması ile oluşan yapılardır.Burda N ağın
boyutu Ki ise boyutun kökleridir.Her düğüm (x0, x1, . . . ,
xn_1) şeklin de N kordine vektörü ile tanımlanır. 0 <xi < Ki1 aralığındadır.Yönlendirme tekniklerinden bir kısmı örgülü
ağlarda kullanılmaktadır.Bunlar; dimension-ordered(sıralı
boyut), dimension reversal( ters döndürmeli boyut), turn
model(döndürme modeli), message flow model(mesaj akış
modeli)şeklindedir.
X-Y yönlendirmeli sıralı boyut modelin de mesajı ilk olarak
X boyutu boyunca sonra Y boyutu boyunca gönderilir.Diğer
bir deyişle en fazla bir dönüşe izin verilir ve bu dönüş X
boyutundan Y boyutuna doğrudur.(sx ve sy) ve (dx ve dy) yi
kaynak ve hedef düğümler olarak gösterilir. (gx, gy) =(dx sx, dy - sy) olduğu varsayılır.
Şekil de 8*8’lik örgülü ağda kaynak düğümleri ile hedef düğümleri
arasında yapılan X-Y yönlendirilmesi örneği gösterilmiştir
VIRTUAL CHANNELS (Sanal Kanallar)
Sanal kanal prensibi dead lock olmayan yönlendirme
algoritmları dizayn etmek için bulunmuştur.Sanal kanallar ,
ek kablo kullanılmadan logic kanalların sayısının
artırılılmasına imkan verir.Uyarlanan yönlendirme
algoritmalrının birkaçı sanal kanalların kullanımı prensibine
dayanır. Sanal kanalların olmadığı iletişim ağları tek şeritli
sokaklardan oluşur.Karışık bağlantılı iletişim ağlarına sanal
kanalları ilave etmek sokağa yeni bir şerit eklemeye benzer.
Engellernen mesajlara geçme izni verir.Artan yayılmaya ek
olarak, sanal kanallar iletişim ağlarında tahsis edilen
kaynaklarda mesajlara ek serbestlik derecesi sağlar
Şekilde basit iletişim ağını ele alalım.Bu örnekte X-A-B-Z
ve Y-A-B-W yolları AB ortak bağlantısını paylaşırlar. Bu
sebepden dolayı 2 yol arasında çoklu AB bağlantısına ihityaç
duyulur(2 şerit).X den Z ye ve W ye değil, birinci yoldan
gönderilen bilgiler ve benzer şekilde Y den W ye Z ye değil,
2. Yoldan gönderieln bilgiler şekilinde bir provision(şart,
hüküm) ihityaç vardır.
MESSAGE PASSING PROGRAMMING
MODELS (Mesaj Geçiş Programlama
Modelleri)
Mesaj geçiş mimarisi ,izin verilen işlemlerin birbiriyle
haberleşmesi için bir dizi ilkel adlar kullanır. Bu ilkel adlar
gönderme (send), alma (receive), yayma (broadcast) gibi
sayılabilir. Mesaj geçiş mimarisinde temel programlama dili
kullanılır. Bir işlemci üzerindeki gönderilen istek ile diğer bir
işlemci üzerindeki alınan istek ile eşleştirme amaçlıdır.
Gönderme ve almanın gerçekleşmesinde process üç yollu
iletişim ister. Bu iletişim yolları; gönderilen işlemin , alıcı
işlemden mesaj göndermeyi talep eder ve alıcıdan veriyi
almaya hazır olduğuna dair geri mesaj gönderir.gönderici
işlem yanıtı aldığında veri transferi gerçekleşir.



Ts = message start-up cost (mesajın başlangıç değeri)
Tb= the per-byte cost (byte başına değer yüzdesi)
Tfp= the average cost of floating-point operation (kayan nokta
işleminin ortalama değeri)
PROCESSOR SUPPORT FOR MESSAGE
PASSING
(Mesaj Geçiş İletişimi İçin İşlemci
Desteği)
Mesaj iletimini destekleyen işlemciler, işlemler arası mesaj
iletim desteği için özel yönergelere ihtiyaç duyarlar. İşlemler
arası iletişim desteği için bir dizi özellik gereklidir. Gerekli
özellikler aşağıdaki gibidir
Port
Mesajlar
Port Ayarları
Intel iPax 432 doğrudan mesaj iletişimini kullanır ve
destekler. Bu işlemci mesaj kuyruğu barındırır. Bir mesaj
iletişimi aşağıdakilere bağlı olarak düzenlenir.



Ulaşım zamanı ( “ilk giren ilk çıkar” gibi yani “first-in-first-out”,
FIFO);
Öncelik;
Öncelikli mesaj geçerlilik süresi
iPAX 432 koşullu olarak mesaj gönderim ve alım işlemi
şeklinde özel bir yol kullanarak engellenemeyen bir mesaj
üretir.
Bu koşullu işlemlerin verisi belirli bir mantıksal etikettir.
Böylece, eğer koşulsuz işleme karşılık gelen koşullu işlem
engellendiyse, koşullu işlemin sonucu “false” olacaktır;
engellenmemesi durumunda ise kolşullu işlemin değeri “true”
olacaktır.
Bu durumda koşullu işlemler, mesaj geçirme iletişimini
desteklemek için her bir işlemde doğru bir iletişim ve
etkileşimi doğrulamalıdır. Çünkü işlemci belli bir işlemi
çalıştırmaya devam edecektir ki bu durumda da iletişim
işlemini tamamlayamaz.
Bundan dolayı iyi bir program, dönen değeri test ederek
operasyona devam edip etmeyeceğine karar verebilmelidir.
MESSAGE PASSING VERSUS SHARED
MEMORY ARCHITECTURES
(Mesaj geçiş ile paylaşımlı belleğin
karşılaştırılması)
Paylaşımlı bellek ve mesaj geçiş iletişim modellerinin her
ikisi de uygulandıkları alanda kullanılırlar.Paylaşımlı bellek
kendisin uygulama yazıcısına gösterirken, mesaj geçisi
kendisini işletim sistemi dizayncısına gösterir. Bu sebepden
dolayı Çoklu işlemcilerin genel amac doğrultusunda
paylaşımlı bellek mesaj geçişi birleşitirilmiş olarak düşünülür.

Resources :
1.Advanced Computer Architecture and Parallel Processing
Hesham El-Rewini and Mostafa Abd-El-Barr,
ISBN 0-471-46740-5




2. http://www.cs.wisc.edu/arch/www
3.http://domino.research.ibm.com/comm/research.nsf/pages/r
.arch.html
4.http://www.eecs.berkeley.edu/~culler/book.alpha/index.html
Dinlediğiniz için teşekkürler….
Download