28.9.10

Interrupt Çeşitleri, Kullanılma Alanları ve Farklı Mimarilerde Performansı

Kasım 2009 tarihinde hazırladığım bir araştırma ödevi:

Mikroişlemci tasarımı bilgisayarın ve işlemcinin performansını etkileyen önemli faktörlerden biridir. Mikroişlemci tasarımı konusunda çalışmalar devam etmektedir. Günün imkan ve ihtiyaçlarına göre çeşitli zamanlarda çeşitli mimariler öne çıkmıştır. Bunlar sınırlı donanımsal kaynaklardan maksimum faydayı elde etmek amacıyla geliştirilmişlerdir. Bu ödevde CISC RISC ve EPIC mimarilerinden kısaca bahsedilecek, bunlar arsındaki farklar ortaya konacak, interrupt performansları değerlendirilecek.




Şekil-1


Şekil-2

Interruptlar temelde ikiye ayrılır:
1. Mask Edilemeyen Interruptlar: bu tür interruptlar herhangi bir program tarafından engellenemez. Örneğin bilgisayar kasası üzerindeki reset tuşuna basıldığında bu interruptı hiçbir program engelleyemez. Bu tür interruptlara mask edilemeyen interruptlar denir.


  1. Mask Edilebilen Interruptlar: Programlarla manüple edilebilen interruptlardır.


Karmaşık komut setli bilgisayar (Complex instruction set computer) olarak açılır. İşlemcideki komutların tipi mimarinin isminden de anlaşılacağı üzere complexdir. Bu mimari hafızanın dar ve pahalı olduğu yıllarda ortaya çıkmıştır. Bu nedenle de hafızanın verimli kullanılması öncelikli olarak tasarımda etkisini göstermektedir. CISC mimarisinin bilgisayar endüstrisinde kullanılması RISC ve EPIC mimarilerinden eskidir. Hafıza elemanlarının kapasiteleri artıp fiyatları düştükçe CISC mimarisi yavaş yavaş gözden düşmüştür.



İndirgenmiş komut takımı bilgisayarı ( Reduced instruction set computer) anlamına gelir. CISC mimarisinden sonra ortaya çıkmıştır. Transistör sayısında bir artış gerçekleştirmeden, mimaride yapılan değişiklikle işlemcilerde performans artışı sağlanmıştır. RISC de hafıza CISC'e göre daha fazla kullanılır, ancak bu o kadar da büyük bir problem değildir. Çünkü RISC mimarisinin getirdiği performans artışı yanında hafıza kullanım artışı göze batmamaktadır. Hem hafıza elemanlarının fiyatı gelişen teknolojiyle düştüğünden bu bir sorun oluşturmaz. Bu mimaride daha az sayıda komut vardır. Daha az sayıda adresleme kipi içerir. Sabit uzunlukta komutlar kullanılır. Doğrudan bellek üzerinde işlem yapan komutlara sahip olmayıp, işlemler iç saklayıcılarda yapılır. Belleğe sadece okuma/yazma işlemleri için erişilir. Komutlar tek çevrimde alınıp yürütülür. RISC mimarisinde komutlar CISC mimarisine göre daha basit olduğundan daha hızlı bir yapı oluşturulmuştur.


EPIC (Explicitly Parallel Instruction Computing) belirtilmiş paralel komutlarla hesaplama anlamına gelir. CISC ve RISC mimarilerinden sonra ortaya çıkan ve onlardan daha başarılı bir mimaridir. İntel İtanium'un temelini EPIC mimarisi oluşturur. Bu mimari mikroişlemcilerde komutların paralel işletimini derleyiciye bırakmaktadır. Bu sayede mikroişlemci içerisinde karmaşık devrelere gerek kalmamaktadır. Bu da mikroişlemcinin performansını arttırmaktadır.

FARKLI MİMARİLERDE INTERRUPT PERFORMANSI

İşlemci performansını gelecekte artırmanın yolu işlemci içerisinde daha fazla paralel işlem yapılmasını sağlamak olacaktır. Bu konuya EPIC mimarisinin yaklaşımı, paralelliği koddan almak şeklindedir. Günümüzde performans artışı paralellikle sağlanmaktadır. Hangi mimari paralelliği daha fazla destekliyorsa daha fazla performans sağlamaktadır. Bu açıdan bakılacak olursa paralelliği en fazla destekleyen mimari EPIC mimarisidir. Bu mimari ile kodda programcı tarafından paralel yazılmayan yerler dahi paralel çalıştırılmaya çalışılmaktadır. Örneğin bir if bloğunu düşünelim. Bu kod paralel bir kod değildir. Ancak EPIC mimarisinde dallanmalar paralel olarak çalıştırılır ve programın nereden akacağına daha kısa bir sürede karar verilip oradan devam edilir.

Şekil-3

Şekil-4

İnterruptlar özellikle bilgisayarlarda birden fazla uygulama çalışıyorsa kullanılır. Yani multitasking ne kadar fazlaysa interrupt kullanımı da o kadar fazladır. Yukarıda bahsettiğimiz üç miamari içerisinde interrupt kullanımının ve performansının en fazla olduğu mimari EPIC mimarisidir. Dikkat edilirse EPIC mimarisinde aynı anda birden fazla işlem işlemci tarafından diğer mimarilere oranla daha fazla gerçekleştiriliyor. Ayrıca EPIC mimarisinde komutların paralel işletilmesi derleyici tarafından halledilmektedir. Komutların paralel işletilebilmesi için de interruptlar kullanılmaktadır. Motorola 680000 işlemcisi bir CISC mimarisine sahip işlemcidir. Bu işlemcide komutların paralel çalıştırılması ya da multitasking aşağıdaki şekilde de görüldüğü gibi karmaşık donanımsal elemalarla sağlanmaktadır.


Şekil-5

CISC mimarisi ise interrupt performansı açışından en geride olan mimaridir. Bu mimari ortaya çıktığı dönemdeki ihtiyaçların farklı olması ve teknolojinin hızla gelişmesiyle artık güncelliğini kaybetmiştir. Ortaya çıktığı dönemde birden fazla işlemin bilgisayarda aynı anda çalıştırılması bugünkü kadar önem taşımadığından interrupt performansı da RISC ve EPIC mimarilerine oranla geridedir. Ancak CISC mimarileri günümüzde tamamen gereksizdir diyemeyiz. Özellikle yoğun network trafiği yöneten işlemcilerde interruptlar sisteme yük olurlar, sistemi oyalarlar. Bu nedenle bu tarz işler CISC mimarisine sahip işlemcilerle halledilir. Hesaplama ağırlıklı alanlarda ve iş istasyonlarında ise RISC mimarili işlemcilerin kullanılması performans açısından daha sağlıklı olacaktır. EPIC mimarili işlemciler ise paralel çalışması durumunda performans artışı alınacak uygulama alanlarında çalıştırılmalıdırlar. Örneğin bir CAD uygulamasında EPIC mimarisi yerine RISC mimarisi kullanılırsa daha mantıklı bir seçim yapılmış olunur.

SONUÇ

Bu araştırma ödevinde CISC, RISC ve EPIC mimarileri incelendi, interrupt performansları değerlendirildi, bunun sonucunda hangi uygulamalarda hangi mimariye sahip işlemcilerin kullanılması gerektiği açıklandı. Mimarilerin ortaya çıkış tarihleri açısından ve performansları açısından bir sıralama yapıldı. Mimarinin performansta ne kadar etkin olduğu ortaya kondu. Ödev hazırlanırken interruptlar hakkında daha geniş bilgi edinildi, özellikle EPIC mimarisinin interrupt performansının nasıl daha yüksek olduğu ve bunun nasıl sağlanıldığı öğrenildi.

KAYNAKLAR

1-http://www.sltf.com/articles/pein/pein9505.htm
2-http://www.sgi.com/products/software/react/react_pro.html
3-http://www.internals.com/articles/protmode/interrupts.htm
4-http://www.pic24micro.com/cisc_vs_risc.html
5-http://www.ifp.illinois.edu/~jones/RISCvCISCvDSP.pdf
6-http://www.ddj.com/architect/184408418
7-http://www.cpushack.net/CPU/cpuAppendA.html






                                                                                                                              M.Ali      

26.9.10

LTV Gelsin, Benzin Ucuzlasın

Ülkemizde kdv ve ötv olmak üzere iki tip vergilendirme var. Bunlardan kdv alınıp satılan hemen hemen herşey için geçerliyken ötv daha özel, yaşamı devam ettirmek için değil de kolaylaştırmak ve güzelleştirmek için alınıp satılan şeylerde geçerli. buzdolabı, televizyon vs.

Vergi, sistemin devamı için alınması gereken, sistemin sağlığı içinse fazla abartılmaması gereken bir konudur. Bir devlet vatandaşından ne kadar az vergi alarak görevlerini yerine getiriyorsa o kadar başarılıdır. 

Bana göre ötv ve kdv vergi adaletini koruyarak halktan vergi toplanması konusunda yetersiz kalmaktadır. Bunlara bir de ltv(lüks tüketim vergisi) eklenmelidir. Özel tüketim tam olarak lüks tüketim manasına gelmemektedir. Temel ihtiyaç ile lüks arasındaki herşey özel tüketime girer. Örneğin televizyon, buzdolabı, bulaşık makine gibi dayanıklı mallar özel tüketime girer. Cip, kürk, pırlanta, piyasaya göre yüksek fiyatlı televizyon, buzdolabı, halı (örneğin iran halısı) lüks tüketime girer. Halkın aldığı buzdolabının vergisini fazla tutarsanız bundan buzdolabı üreticisi etkilenir, üreticinin çalışanları ve yan sanayisi etkilenir ve sonunda tekrar halk etkilenir. ancak ithal edilen ve yüksek fiyattan satılan lüks bir buzdolabının vergisini arttırırsanız bundan halk olumsuz yönde etkilenmez. Bundan sadece ithalatçı ve cari açık olumsuz etkilenir.

Tekrar vurgulamak istiyorum. Ltv gesin tüm vergiler artsın demiyorum. Ltv gelsin, lüks tüketim mallarının vergisi artsın, özel tüketim ve temel tüketim mallarının vergisi düşsün diyorum. Çünkü sanayimiz artık özel tüketim mallarını da üretebilir duruma geldi. Burada yüksek vergi koymak ekonomiyi uzun vadede olumsuz etkiler.

Gelelim benzindeki vergilendirmeye. Biz kalkınmaya çalışan bir ülkeyiz. Dikkat edin, dünyada şu anda belli bir noktada olan ülkelerin hepsi atılımlarını ulaşım sektöründe yaptıkları atılımlara ve yatırımlara borçlular. ABD'deki trenyolu sisteminin kurulması, Osmanlıdaki kervansaraylar, Avrupada ticaret mallarının nehirlerde buharlı gemilerle taşınması vs. Sonuç olarak üretilen mallar tüketiciye ucuza ve hızlı bir şekilde ulaştırıldığında daha geniş kitleler ekonomik hayatın içine daha etkili girerler ve ekonomi daha rahat büyür. Ulaşımı kolaylaştırmadan ve ucuzlatmadan sağlıklı ve yüksek ivmeli bir kalkınma yakalamak neredeyse imkansız. Özallı yıllarda yapılan otobanlar ülkemizin o dönemki kalkınmasına önemli bir katkı sağlamıştır. Yeterli mi, tartışılır. Demir yolu, deniz yolu gibi daha güzel alternatifler var mıydı, o da tartışılır; ancak yine de başarılı diyebiliriz. Bu çerçeveden bugünkü akaryakıt fiyatlarının durumuna baktığımızda oldukça yüksek buluyorum. Öyle ki insanlar bir yerden bir yere gitmeye korkar oldu. Şirketler için ulaşım maliyetleri arttı. Çevrecilik açısından güzel olsa da ekonomi açısından olumsuz bir durum. Bu noktada ülkemizde ya akaryakıt fiyatları herkes için ucuzlatılmalı, ya da şirketler için fazladan vergi indirimleri sağlanmalı. Örneğin şirketler akaryakıt vergi iadesi alabilirler. Ya da doğacak vergi açığı ltv ile kapatılabilir. Ya da vergi toplama sistemimiz daha sağlıklı hale getirilip kayıt dışı ekonominin önüne geçilerek(Bu konuda Fiş meselesi yazıma bakabilirisiniz) artan vergi gelirlerinden bu tarz vergi indirimlerine finansman sağlanabilir.

Vergi devlet için amaç değil, araç olmadıkça sağlıklı bir kalkınma sağlanamaz.


                                                                                                                              M.Ali      

25.9.10

C# Projesi İçinde Java Nasıl Kullanır?

Bu konuyu gece saat 12'ye gelirken ödev yükleme sisteminin kapanmasına dakikalar kala bana öğreten Suat Taşçı'ya sevgilerle.....

Bir platformda başka diller kullanmak çoğu zaman işe yarayan bir şey. İş yerinde de arkadaşım C# projesi içinde C kulllanmaya çalışıyordu. Onu çok araştırmadım ama C# içinde Java'nın nasıl kullanıldığını anlatayım.

Uygulama yapılırken IKVM kullanılmıştır. Buradan indirebilirsiniz. Önce java’da bir class ve class içinde method yazdım. Bunları jar dosyası olarak export ettim. Jar uzantılı ve class uzantılı dosyalarımı ikvm programının olduğu dosyaya attım. Class dosyasından exe uzantılı dosyayı ve jar dosyasından dll uzantılı dosyayı oluşturdum. C# projeme oluşturduğum bu iki dosyayı(exe'yi ve dll'i) referans olarak ekledim. Run dediğimde bana IKVM.OpenJDK.Core.dll dosyasını import etmem gerektiği uyarısını verdi, bu dll i  de referans olarak eklediğimde artık c# projemden java class’ıma, bu class içindeki public method ve public değişkenlerime ulaşabilir hale geldim. 


Tutorial'ına da buradan ulaşabilirsiniz.


                                                                                                                              M.Ali      
Related Posts Plugin for WordPress, Blogger...