Şimdi Ara

İşlemci Mimarileri Ve Yazılımlar

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
1.856
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • http://tr.wikipedia.org/wiki/ARM_mimarisi
    http://forum.donanimhaber.com/m_34350157/tm.htm
    http://en.wikipedia.org/wiki/X86-64
    http://tr.wikipedia.org/wiki/X86
    http://tr.wikipedia.org/wiki/X86-64
    http://www.tgdaily.com/opinion-features/59285-x86-vs-arm-the-apocalyptical-war
    http://www.gsmarena.com/samsung_i9300_galaxy_s_iii-4238.php
    http://www.barissamanci.net/Makale/8/arm-nedir/


    Yukarıda ki kaynakların hepsini veya bir bölümünü okudum.

    Yazacaklarımı düzeltin lütfen.

    " Şu an kullandığım bilgisayar da işlemci x86-64 assembly diliyle programlanabilir,yada çalıştırılabilir!? o zaman hem 32 bit hem 64 bit yazılımlar kullanılabilir(ayrı işletim sistemlerinde hatta 32 bit emülatör ü ile 64 bitte bile) . Windows Mobile arm mimarisine göre yazıldığı için benim bilgisayarıma kurulmaz/kurulsa dahi çalışmaz.İçinde arm mimarisine sahip işlemci bulunan bir cihaz örneğin galaxy s3 ne kadar güçlü bir işlemciye sahip olsa bile arm tabanlı olduğu için bilgisayarımda kullandığım windows 7 yi hiç bir şekilde kuramam."


    -----
    Bu assembly dili makine dili gibi birşey idi sanırsam C öğreten bir kitapta biraz bahsediyordu bayağı uzunmuş (sakla(A1,B1) gibi gibi) Tam bilmiyorum farklı mimari olunca C ile program geliştirirken ne gibi farklılıklar oluyor.(Galiba iyice battım buraya işletim sistemi faktörü de giriyor iOs ve android için aynı kaynak kodlarını kullanamıyoruz :S ) Hadi beni bir kurtarın
    -



    < Bu mesaj bu kişi tarafından değiştirildi brandomercury2 -- 28 Ağustos 2012; 13:04:08 >







  • compiler ve assembler kavramlarını incelemen bu konuyu anlamanda sana yardımcı olacaktır. ben kısaca bahsedicem ama sen yinede bir incele.
    C, C++, Java, vb. dillerde programı yazdıktan sonra bir compiler ile o programı derlersin. Burda derleme işleminde yapılan şey, senin C ile yazdığın kodların assembly komutlarına dönüştürülmesidir. Ancak assembly komutlarına dönüştürmek senin programının çalışması için yeterli değildir. Assembly komutlarınında makinenin anlayacağı makine kodlarına yani 10 lara dönüştürülmesi gerekmektedir. Burda devreye assembler girer. Assembler assembly kodlarını makine koduna dönüştürür, ve programın artık işlemci üzerinde çalışabilir hale gelir. Burdan çıkaracağımız sonuç farklı mimiariler için C vb. diller ile program geliştirirken farklı compiler ve assemblerlar kullanılması gerektiğidir. Tabi bu anlattıklarım çok kısa bi açıklama :)
  • Özet olarak CPU mimarilerine göre o kodları uygun yazılımlarla Assembler kullanman lazım. Yani direk derleme ile olmuyor. Derleme ile evrensel dile çevirmiş oluyorsun diye kolayca özetlenebilir bu işlem.

    Mesela Intel Itanıum x64 için ayrı, ARM için ayrı, AMDx-Intel64 Bit için ayrı (Eğer tam bellek adreslemek istiyorsan.) olarak export etmelisin.

    (Yanlışım varsa düzeltsin üstatlar.)



    < Bu mesaj bu kişi tarafından değiştirildi Armin van Buuren* -- 29 Ağustos 2012; 1:18:13 >
  • Compiler yada Türkçede derleyici olarak geçen terim yüksek dilden düşük dile çeviren (assembly olur , makine dili olur) bir zımbırtı imiş.
    Diyelim ki elimde hallife 2 nin kaynak kodları var bunu bir "compiler" vasıtasıyla assemy dilini(daha düşük dil seviyesi) oradan da uygun mimariye ait assembler ile başka mimari için makine koduna dönüştüremezmiyim?

    ----------(düzeltirseniz memnun olurum köşesi)
    Assembly dili düşük seviyeli bir dil olduğundan bu dilde daha performanslı uygulama geliştirebiliriz.Mesela crysis assemby dilinde yazılmış olsa-belki 10 belki 15 yıl sürer-
    pentium 2 196mhz işlemcili bir bilgisayar da çalışabilir.
    Ayrıca mevcut işletim sistemleri daha üst seviye diller ile yazıldığından daha geniş kitlelere(işlemciler kastedilmektedir) ulaşmış olsa dahi performans açısından kayıp vardır.
    200mhz gibi komik(benim için komik yoksa bunun aslında çok ileri teknoloji ürünü olduğunu bilmiyor değilim ps2 gibi) bir hıza sahip bir işlemci tamamen makine koduyla yazılmış bir işletim sisteminde harikalar yaratabilir.Aynı işlemci ye sahip (gömülü sistem?! olsa fark eder mi) epoc işletim sistemine sahip bir cihazdan daha fazla mı performans verir

    (/düzeltirseniz sevinirim)

    Peki hocam bir mimari için yazılmış bir program "birebir" başka bir mimari için de yazılabiliyor.Ancak işler o kadar da kolay değil sanırım.

    Ah ah hobi elektroniğine bulaşıcaz dedik nerelere geldik

    Okuduğum kaynakları tek tek eklemek yerine beleş serverıma ekledim sitemin reklamı değil yanlış anlaşılma olmasın zaten site faal değil url yi de kısalttım ki hiç gözükmesin site adı

    http://goo.gl/xXR7A




  • Instruction Set Architecture(ISA), türkçe karşılığıyla komut seti mimarisini incelersen ilk sorunun cevabını bulabilirsin. İşlemciler tasarlanırken önce ISA hazırlanır, yani bu işlemci hangi işlemleri yapabilecek ona karar verilir. Daha sonrasında ise ISA'ya uygun veriyolu ve kontrolcüler tasarlanarak işlemci simule edilir. Burdan anlaşılacağı üzere işlemcilerin komut setleri birbirinnden farklılık gösterir. Birbirlerine çok yakın komut setine sahip olan işlemcilerde bile farklılık gösteren komutlar olması muhtemeldir. Bu yüzden her bir işlemci için ayrı bir assembler kullanman gerekir. İlk soruna dönücek olursak, eğer elinde kaynak kodlar varsa, kullandığın compiler hangi işlemciyi kullanıcaksan, o işlemcinin ISA'sına uygun assembly komutlarını üretmelidir. Yani burda önemli olan compiler seçimidir. Çünkü o işlemci için kullanacağın assembler sabittir.

    --
    Assembly seninde dile getirdiğin gibi düşük seviyeli bir dildir, hatta makine diline en yakın dil diyebiliriz. Assemblyde temel matematik işlemlerini yerine getirebilen komutlar ile mantık işlemlerini yerine getirebilen komutlar bulunur. Örneğin C dili öğretilirken gösterilen ilk uygulama olan prinft("HELLO WORLD") işlemini gerçekleştirmek assemblyde bazen tam bir kabusa dönüşebilir. Kullandığım bir 8-bit işlemciden örnek vereyim, bu işlemci iki tane 8-bit sayıyı çarpma işlemini tek bir komutla gerçekleştirebiliyor, ancak elde edebileceğimiz en büyük sayı 255*255= 65025. 16-bit iki sayıyı çarpmak için kendi algoritmamızı yazmamız gerekiyordu, ve bunun sonucunda yazdığımız kod 100-150 satır gibi bir boyuttaydı. Burdan yola çıkarak C'de hiç dikkate almadığınız bir çarpma işlemi için bile assembly ile yüzlerce satır kod yazmanız gerekebilir. Crysis 2 yi assembly ile yazmak ise ne kadar sürer tahmin bile edemiyorum Ama assembly ile yazılmış olsa dahi 200mhz lik bir işlemcide çalışır mı ondan şüpheliyim. Çünkü şu anki compiler cidden çok optimize derleme yapıyorlar. C de kod optimizasyonu iyi yapılmış bir program, işlemcide %85-90 verimle çalışabilir.
    --
    Son sorunda ne kastettiğini anlayamadım, veya bahsettiğin şeyden benimde haberim yok




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.