Mobil cihazlarda CPU hızı yanılgısı VE de Androidin kullandığı işlemci nedeni..

Sponsorlu Bağlantılar

MertcaN9

MertcaN9

Üye
    Konu Sahibi
Mobil cihazlarda CPU hızı yanılgısı VE de Androidin kullandığı işlemci nedeni..
Başlarken:

arkadaşlar yazının tamamı alıntıdır. günümüzde yaşanan bazı yanlış bilgilerin önlenmesine fayda sağlayacağı için ve de symbian^3 ü yakından ilgilendirdiği için paylaştım.
yazım buradan alıntıdır. sıkıcı gelebilir ama sonuna kadar okumakta fayda var diye düşünüyorum
:oke:



Nokia’nın Symbian^3′lü son cihazlarında 680 MHz ARMv6 işlemciler kullanması üzerine mobil cihazlardaki işlemci hızları hakkında herkes birşeyler konuştu ve kafa karıştırdı. İsterseniz şimdi mobil bir cihazdaki işlemci hızının aslında ne anlama geldiğini ve ne anlama gelmediğini hep birlikte görelim.
(Dikkat! iPhone 4′ün saat hızı kaynak eklenerek güncellenmiştir!)
Öncelikle ilk yanlışı masaya yatıralım: İşlemcinin saat hızı (MHz birimindeki değer) işlemcinin işlem gücünü gösterir
İşlemcinin saat hızı, işlemcinin saniyedeki veri işleme gücü hakkında bilgi edinmemizi sağlayan bir kaç faktörden biri olmasına rağmen kesinlikle tek faktör değildir. İşlemcinin işlem gücünü belirleyen diğer faktörleri kısaca:
  • işlemcinin belleğe erişim hızı
  • işlemcinin kaç ayrı çekirdeği olduğu
  • her çekirdekte kaç ayrı iş hattı (pipeline) olduğu
  • her iş hattının kaç kademeden (stage) oluştuğu
  • bu kademelerin sırayla (in-order) veya sırasız (out-of-order) çalışıp çalışmadığı
şeklinde özetleyebiliriz (Bkz Not: 1 ve 2). Yani bir diğer deyişle işlemcinin MHz cinsinden saat hızı, işlemcinin gücü hakkında salt olarak bize hiç bir sağlıklı fikir veremez.Bu yüzdendir ki 600 MHz saat hızında çalışan ARMv7 komut setli bir Cortex A8 işlemci, yine 600 MHz saat hızında çalışan ARMv6 komut setli bir ARM 11 işlemciden çok daha güçlü ve hızlıdır. Ayrıca bunlar işin sadece donanımsal yönüdür, haliyle bir de yazılımsal yönü vardır.S: İşlemcinin gücünü yazılım nasıl etkiler?
C: Çok güçlü bir arabayı dandik bir şöförün kullanımı hız açısından nasıl etkilerse o şekilde etkiler
Şimdi örnek vermeyi bırakıp gerçeğe dönecek olursak mobil işletim sistemlerinin işlemciyi nasıl kullandığına bakmamız gerekir.Ön bilgi: İşlemciyi hemen hemen hiç bir uygulama doğrudan kullanamaz çünkü işlemcinin dilinden (Assembly – makine dili) konuşamazlar, bu yüzden ihtiyaçları olan işlemleri işlemcinin dilinden konuşmayı bilen işletim sistemine iletirler.Uygulamalar işletim sistemi ile doğrudan iletişebiliyor ve işletim sisteminin bir parçası gibi davranabiliyorsa doğal (native) uygulama olurlar ve Symbian ile iOS işletim sistemleri uygulamaların doğal halde çalışmasına olanak sunar.Fakat Android işletim sistemi adına Dalvik VM denilen ve doğal olamayan uygulamalarının söylediklerini işletim sisteminin anlayacağı dile çeviren ek bir doğal uygulama (Sanal Makine – Virtual Machine) kullanıyor çünkü (Android NDK ile geliştirilmemiş) Android uygulamaları doğal modda çalışamıyor. Peki bu bizim için ne anlama geliyor?Symbian ile iOS uygulamaları işlemcinin gücünün yaklaşık %95 ile %90‘ı arasındaki bir miktarı doğrudan kullanabilirken, Android’de bu oran (araya tercümanlık için giren Dalvik VM’in işlemci gücünden pay alması yüzünden) %75 ile %60 arasına kadar düşebiliyor.Yani bir diğer deyişle bir uygulama Symbian ile iOS işletim sistemlerinde 900 MHz hız ile çalışabilmek için diyelim ki 1000 MHz işlemciye ihtiyaç duyuyorsa, Android işletim sisteminde900 MHz hız ile çalışabilmek için 1200 ~ 1500 MHz arasında bir işlemciye ihtiyaç duyuyor,çünkü aradaki farkı Dalvik VM kullanıyor.Umarım şimdi modern Android cihazlarda neden en az 1 GHz işlemci kullanıldığını daha iyi anlıyorsunuzdur, çünkü ancak bu şekilde işlemcinin uygulamalardaki etkin saat hızı 750 ~ 600 MHz civarında olabiliyor.(Bkz Not: 3)
İşlemcinin gücünden ne kadar faydalanıldığı konusunda araya giren bir diğer faktör ise işletim sisteminde donanımsal hızlandırmanın (hardware acceleration) kullanılıp kullanılmadığıdır.Symbian^3 ve ilerisi ile iOS işletim sisteminin kullanıcıya görünen grafiksel arayüzünü (GUI) merkezi görsel işlemci (GPU) ile oluşturup merkezi işlemciyi (CPU) kullanmaz.
Fakat Android henüz donanımsal hızlandırma desteklemediği için GUI CPU tarafından oluşturulur, GPU kullanılmaz (Bkz Not: 4)Bu da toplam performansta bir düşüşe sebep olur çünkü toplam işlemci gücünden uygulamalara ayrılabilen miktar yaklaşık %10 – %20 arasında azalmaktadır.
Yukarıda anlattıklarımızı biraz daha kolay anlaşılabilir bir dille ifade etmemiz gerekirse:
- Nokia N8, Symbian^3 işletim sistemi kullandığı için (orjinalinde 772 MHz olduğu halde pil ömründen tasarruf edebilmek için saat hızı düşürülmüş) 680 MHz’lik ARMv6 komut setli CPU’sunun yanı sıra 300 MHz’lik GPU’sunu (Broadcom BCM2727) de kullanır, böylece toplam işlemci saat hızı 980 MHz’e çıkar (Bkz Not: 5), uygulamalara doğrudan ayrılabilen CPU saat hızı ise 612 ~ 646 MHz arasındadır.
- Apple iPhone 4, iOS işletim sistemi kullandığı için (orjinalinde 1000 MHz olduğu halde pil ömründen tasarruf edebilmek için saat hızı düşürülmüş) ARMv7 komut setli 786 MHz’lik (Bkz Not: 6) CPU’suna ek olarak 200 MHz’lik GPU’sunu (PowerVR SGX535) de kullanır, toplam işlemci saat hızı 986 MHz’e çıkar (Bkz Not: 5), uygulamalara doğrudan ayrılabilen CPU saat hızı ise 707.4 ~ 746.7 MHz arasındadır.
- Samsung Galaxy S, Android işletim sistemi kullandığı için ARMv7 komut setli (saat hızı düşürülmemiş olan) 1000 MHz’lik CPU’sunun yanı sıra 200 MHz’lik GPU’sunu (PowerVR SGX540)kullanamaz, toplam işlemci saat hızı 1000 MHz’de kalır (Bkz Not: 5) ve uygulamalara doğrudan ayrılabilen CPU saat hızı 480 ~ 675 MHz arasındadır.
Gördüğünüz üzere işlemcisinin saat hızı düşük diye yerden yere vurulan Nokia N8/E7/C7/C6-01 aslında diğer rakiplerinden daha güçsüz değildir, içlerindeki şu an piyasadaki en güçlü GPU kullanıldığı için mevzubahis uygulamanın GPU’yu ne kadar kullandığına bağlı olarak rakiplerinden çok daha hızlı da olabilir.
(Bkz Not: 3)

Son olarak bir bilgi daha: Yukarıda işlemcinin belleğe erişim hızının toplam işlemci gücünü etkileyen bir faktör olduğundan bahsetmiştik. iPhone 4 ve Galaxy S’te kullanılan PowerVR SGX GPU‘lar kendi içlerinde RAM barındırmadığı için sistemin RAM’ini kullanırlar ve sistemin RAM’ine tek RAM kontrolcüsü olduğu için aynı anda hem CPU hem de GPU erişemez, birbirlerini beklemek zorunda kalırlar ve bu saniyede yapılabilen işlem sayısını düşürür.
Fakat şimdiye dek duyrulmuş Symbian^3 cihazlarda kullanılan Broadcom BCM2727 GPUiçerisinde 32 MB RAM ve haliyle bir de kendine ait RAM kontrolcüsü barındırdığından sistemin RAM’ini pek kullanmaz, kullansa bile ayrı RAM kontrolcüleri ile belleğe eriştiklerinden hem CPU hem de GPU aynı anda RAM’lerine erişir ve birbirlerini beklemek zorunda kalmazlar ve saniyede yapılabilen işlem sayısında bir düşüş yaşanmaz.
Hadi buyrun bir de buradan yakın!

Ekleme: Bir kaynakta bir kullanıcının
Bu arada samsungu 1 buçuk yıl önce böyle bir işlemci (kasıt i8910′daki ARM Cortex A8) koyduğu için tebrik etmek gerek. Nokia hala koymuyor gördüğünüz gibi.
şeklindeki talihsiz ifadesine rastladık ve bunun üzerine bazı söyleyeceklerimiz var.
Yukarıda yazılımın donanımdan yeterince faydalanmadığı zaman o donanımın hiç bir anlamı olmadığını Android üzerinden anlatmaya çalıştık, fakat Samsung i8910′da (ve SonyEricsson Satio ile Vivaz’da) kullanılan Symbian^1 (Symbian OS 9.4 + S60v5 UI) yazılımı Android’in şu anki halinden farksız durumda, yani donanımsal hızlandırma desteklemiyor.
Üstelik Samsung i8910′da kullanılan yazılım ARM Cortex A8′in sunduğu ARMv7 komut setinin getirdiği yenilikleri kullanacak şekilde kodlanmadığı için Nokia N8, ARMv6 komut seti üzerinde çalışan daha eski teknolojiye sahip bir işlemciye sahip olduğu (ve bu testler prototip cihaz üzerinde tamamlanmamış yazılım ile yapıldığı) halde Samsung i8910′dan %54, N8 ile daha hızlı aynı işlemci mimarisine sahip ama N8′in MHz bazında %57 daha hızlı işlemciye sahip olduğuNokia N97′den %180 daha hızlı çıkıyor. (Bkz Not: 7)
Son karşılaştırmayı bira daha düşünmek gerek, aynı işlemci sadece %57 daha hızlı olduğu halde %180 daha güçlü sonuçlar doğurabiliyor. Aradaki fark nereden geliyor derseniz, yazımızı ya okumamış ya da anlamamışsınızdır
Yani kısaca sadece CPU’ya bakıp laf konuşmak, gayet yersiz ve anlamsız olabiliyor

Notlar:


(1) Pipeline ve stage’ler hakkında daha detaylı bilgi almak isterseniz adresindeki kapsamlı yazıyı okuyabilirsiniz.


(2) Daha düşük bir saat hızına sahip bir işlemcinin daha yüksek saat hızına sahip bir işlemciden nasıl daha hızlı çalışabileceğini Apple’ın 2001 yılına ait bir basın toplantısındaSteve Jobs ve Jon Rubinstein şu şekilde gösteriyor:
(3) Bir kaynakta yukarıda verdiğimiz rakamsal değerlerin kaynağını yazmamız istendi. İşin doğrusu, kullandığımız rakamsal değerler konuyu daha kolayca algılatabilmek için sunduğumuz, deneyimlerimize ve kişisel hesaplamalarımıza dayalı tahminlerimizdi, ki bu nedenle görüldüğü üzere rakamlara dair kaynak sunmadık.
Fakat adresinde Android üzerinde Dalvik ile “native” performans farkını basit bir örnekle göstermişler ve burada Dalvik%900 yavaş kalmış, gerçi itiraf etmek gerek ki kod gerçek hayattaki durumu yansıtmak için yeterince kompleks değil.
adresindeki örnekteki daha kompleks bir kodda ise Dalvik %1400 yavaş kalabiliyor. Örneğe göre, acı bir şekilde Dalvik (Symbian telefonlardan native sis uygulamalar ile aralarındaki hız farkını iyi bildiğimiz) J2ME’den bile%700 daha yavaş çıkıyor.
Demek ki bizim %10 ~ %30 arasındaki kayıp tahminlerimiz aşırı iyimsermiş. Buyrun bir de siz hesaplayın durumun vehametini…
(4)
(5) Yaptığımızın anlamsızlığını bilmemize rağmen, bir cihazı değerlendirmek için yalnızca işlemci saat hızından hareket edenlerin mantığının yanlışlığını göstermek için işlemci hızlarını topladık.
(6) adresindeki tamamen işlemciyi kullanan benchmark sonuçlarına bakarak, iPhone 3GS’teki Samsung S5PC100 işlemcinin Cortex-A8 çekirdeğinin yine Samsung tarafından üretilmiş olan Apple A4 işlemcideki Cortex-A8 çekirdeği ile aynı mimaride oluşunu ve her iki sistemde de aynı RAM tipinin ( ) kullanıldığını (hatta işin doğrusu S5PC100′de daha hızlı olan Apple A4′te maliyeti düşürmek için ) ve bu nedenle saat hızından başka performansı etkileyecek bir faktör bulunmadığını dikkate alırsak, doğru orantılama yaptığımızda A4′ün saat hızı 786 MHz çıkar.

ALINTIDIR



 


pRime.

pRime.

Üye
hocam bu çok eski be. :)
 
helltr

helltr

Üye
çok bilgilendirici bir yazı olmuş gerçekten.bir çok insan bu verileri dikkate almıyor ancak benim için çok önemli.
 
cortex47

cortex47

Üye
Burdaki işlemci hızlarını toplama çok saçma geliyor bana. Yani senin telefonun 1 gHZ, benimki 500 mHZ, hadi birleştirelim 1,5 gHZ hızında çalıştıralım demek gibi, çok ayrı birbirinden gpu ve cpu.
 
MertcaN9

MertcaN9

Üye
    Konu Sahibi
forumda o kadar eski olmadığım için verilip verilmediğini bilmiyordum:bilmm kirlilik yarattıysa özür dilerim :ağlarım:
ama yeni görecek çok kişi olduğuna da eminim. özellikle android kullanan ve yeni alıpta hemen burada üstünlük kurmaya çalışanlar okursa çok güzel olur :hmmm
 
HaqperesT

HaqperesT

Üye
alien dalvik symbiana gelirse ilk sen atlarsin
 
XER01

XER01

Üye
Ben Android telefonumun işlemcisini 768 mhz'ye düşürüyorum (kernel 600 mhz li bir değer desteklemiyor, o yüzden tam eşit olamıyor ama). N8 in işlemcisi 680 mhz.

Açıyorum 2'sinde Opera Mobile ile maxicep'in anasayfasını N8 kasım kasım zorlanırken Android sürümü rahat rahat açıyor. Arada 88 mhz değilde 488 mhz fark varmışçasına kaydırmalar, sayfa aralarında gezmeler Android'de çok daha hızlı.

Peki bana bunu açıklar mısınız sebebini ? :) Sizin teoriye göre Symbian'ın daha iyi olması lazım
 


Üst Alt