32 Bit Mikrodenetleyicilere neden ihtiyaç duyulur?

Başlatan ElectroMan, 10 Mart 2024, 16:31:29

ElectroMan

Merhabalar,
Uzun zamandır 8 bit mikrodenetleyicilerle çalışıyorum ve her türlü işimi tamamen karşıladı. Hiç 32 bit işlemcilere ihtiyaç duymadım ve karmaşıklığın içine düşmedim. Zira 32 bit mikrodenetleyicilerde sıradan bir iş için bile çok register ve ayar yapmak gerekiyor. Peki 32 bit mikrodenetleyicilere ne zaman ihtiyaç duyulur. Tecrübesi olanlar bize aciklayabilir mi?

ete

Sorunun cevabı basit. Hız ve performans gerektiği zaman ihtiyaç duyulur.
Basit bir örnek vereyim. Kullandığın 8 bit işlemci 16 bitlik bir sayıyı 2 adet 8 bitlik hafıza kullanarak depolar. 32 bitlik işlemcideki hafızalar 32 bit sayıyı tek hafızaya depolayabilir. Tek komutla okunur ve işlem yapılır. Seninkisi 2 komutla aynı işi 16 bit için yapar. 32 bit bir sayı için ise 4 hafıza kullanman gerekir.
 
Ete

ElectroMan

#2
Alıntı yapılan: ete - 10 Mart 2024, 21:03:24Sorunun cevabı basit. Hız ve performans gerektiği zaman ihtiyaç duyulur.
Basit bir örnek vereyim. Kullandığın 8 bit işlemci 16 bitlik bir sayıyı 2 adet 8 bitlik hafıza kullanarak depolar. 32 bitlik işlemcideki hafızalar 32 bit sayıyı tek hafızaya depolayabilir. Tek komutla okunur ve işlem yapılır. Seninkisi 2 komutla aynı işi 16 bit için yapar. 32 bit bir sayı için ise 4 hafıza kullanman gerekir.
 
Ete

Hocam hız konusunda 8 bitlik mikrodenetleyiciler saniyede 1 milyon, 8 Milyon, 16 Milyon işlem yapabiliyorken, ne gibi bir şeye ihtiyaç olurda bana bu hız yetmiyor diyebilirim?

mehmet

Float sayıların işlemlerinde örneğin.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr
CC BY

ete

Olaya yüzeysel baktığın belli oluyor.
Bir makinanın 8 bit veya 32 bit çalışması arasında birim saniyede işlenen kod sayısından bağımsız siyahla beyaz arasındaki kadar büyük fark vardır.

Özellikle büyük sistemlerde artık 8 bit diye bir şey kalmadı. 64 bit ve üzerinde çalışıyorlar.
Mehmetin de dediği gibi bir float işleminde en azından 32 bit lik işlem yapman lazım.
PBP derleyicisi float işlemlere müsade etmiyor neden etmediğini bir düşün bakalım. Elbette 8 bitle bu işi yapmak gerçekten zor olduğu için ve yapıncada çok fazla hafıza harcandığı için yapılmıyor.

Programcılığın ne seviyede bilmiyorum ama ben bu hız meselesini zaman zaman denerim.
Bir döngü kur ve döngü içine 8 bitlik sayı artırma ekle toplam döngü süresinde geçen zamanıda timer-1 sayacı ile ölç bakalım.
Aynı işlemi bir de 16 bitlik değişken ile yap (0-255 arasında)aradaki farkı göreceksin. Senin açıklamalarına bakılırsa bu ihmal edilebilir bir gecikmedir bana görede mutlaka değerlendirilmesi gereken bir gecikmedir.

Bak kendin söylüyorsun saniyede 1 milyon işlem yapan varken neden acaba 8 milyon yada 16 milyon işlem yapanı üretmişler. Cevap her zaman aynı her zaman daha hızlısını yaratma isteğidir bu.
Ufkunu genişlet biraz daha iyi anlarsın bu konuyu. Senin gibi düşünse, insanoğlu ilerleme sağlayamazdı.

Ete

ElectroMan

#5
Alıntı yapılan: ete - 11 Mart 2024, 14:46:19Olaya yüzeysel baktığın belli oluyor.
Bir makinanın 8 bit veya 32 bit çalışması arasında birim saniyede işlenen kod sayısından bağımsız siyahla beyaz arasındaki kadar büyük fark vardır.

Özellikle büyük sistemlerde artık 8 bit diye bir şey kalmadı. 64 bit ve üzerinde çalışıyorlar.
Mehmetin de dediği gibi bir float işleminde en azından 32 bit lik işlem yapman lazım.
PBP derleyicisi float işlemlere müsade etmiyor neden etmediğini bir düşün bakalım. Elbette 8 bitle bu işi yapmak gerçekten zor olduğu için ve yapıncada çok fazla hafıza harcandığı için yapılmıyor.

Programcılığın ne seviyede bilmiyorum ama ben bu hız meselesini zaman zaman denerim.
Bir döngü kur ve döngü içine 8 bitlik sayı artırma ekle toplam döngü süresinde geçen zamanıda timer-1 sayacı ile ölç bakalım.
Aynı işlemi bir de 16 bitlik değişken ile yap (0-255 arasında)aradaki farkı göreceksin. Senin açıklamalarına bakılırsa bu ihmal edilebilir bir gecikmedir bana görede mutlaka değerlendirilmesi gereken bir gecikmedir.

Bak kendin söylüyorsun saniyede 1 milyon işlem yapan varken neden acaba 8 milyon yada 16 milyon işlem yapanı üretmişler. Cevap her zaman aynı her zaman daha hızlısını yaratma isteğidir bu.
Ufkunu genişlet biraz daha iyi anlarsın bu konuyu. Senin gibi düşünse, insanoğlu ilerleme sağlayamazdı.

Ete

1. "Senin gibi düşünse, insanoğlu ilerleme sağlayamazdı." demişsiniz. Fakat ben ne gerek vardıda ürettiler demedim.
32 Bit işlemcilere ihtiyaç duymadım, nasıl bir proje veya işlem için ihtiyaç duyulur, tecrübeleri okumak istedim.
Yazılanı doğru okumanızı tavsiye ederim.

2. Bu konudaki açıklamalarınızı google'da zaten buluyorum. Benim öğrenmek istediğim kitabi bilgiler değil, gerçek bir proje üstünden tecrübe dinlemek.

 

alisumer

32 fiziksel data hattı 8 data hattına göre ilk bakışta 4 kat büyük gibi gelebilir fakat taşıdığı büyüklük bakımından binlerce kat fazla veri taşıyor aslında 2'32 ile 2'8  rakamsal olarak çok farklı büyüklükler buda ekran sürmekten görüntü işlemeye makine öğrenmesi, büyük verilerle uğraşmak için gerekli. 8 bit işinizi görüyorsa tabiki bit israfı da haramdır bence:)
Hep meraktan

ElectroMan

Alıntı yapılan: alisumer - 13 Mart 2024, 04:34:5832 fiziksel data hattı 8 data hattına göre ilk bakışta 4 kat büyük gibi gelebilir fakat taşıdığı büyüklük bakımından binlerce kat fazla veri taşıyor aslında 2'32 ile 2'8  rakamsal olarak çok farklı büyüklükler buda ekran sürmekten görüntü işlemeye makine öğrenmesi, büyük verilerle uğraşmak için gerekli. 8 bit işinizi görüyorsa tabiki bit israfı da haramdır bence:)

Teşekkürler Ali Bey. Ben genel olarak ana program dışında kalan tft ekran sürme işlemini ayrı bir 8 bitlik mikrodenetleyici ile yapıyorum ana mikrodenetleyicim ile spi veya i2c ile iletişime geçiriyorum. Aslında işlemleri farklı birimlere dağıtmayı modüler olmasını tercih ediyorum. Bu sayede 8 bit mikrodenetleyicinin kolaylığı ile hızlı geliştirme yapabiliyorum. Dediğiniz işlemleri tek bir mcu'da yapmak için 32 bit gerekli olabilir.

alisumer

#8
bahsettiğim tam olarak öyle değil sabit bir yazı yada resim basmaktan bahsetmiyorum ki öyle bile olsa örneğin bir pikselin rgb değeri 8 bit renk derinliği için 3 byte gerekli bunun ram da tuttuğu 3 hafıza birimi yerine tek hafıza biriminde işi hallediyorsun.okumasını da birinde en az üç çevrimde diğerinde her türlü tek çavrimde yapıyorsun.iki işlemci arasında ekrandan alabileceğin fps uçurum büyüklüğündedir.buna adresleyebildikleri ram miktarını da eklersek sanırım fazla söze gerek yok. örneğin aynı komut setini kullanan 8 ve 32 bitlik işlemcilerin 32 bit toplama işlemi asm dili kullanılarak yazıldığında 32 bit işlemcide tek komut süresi gerekli iken diğerinde en az 16 çevrim en fazla 22 çevrim sürüyor. sadece toplama için 22 kat yavaş demek tabi bir de zaman 8 bit için değişken oluyor taşma  kontrolü yaptığın için bu da senkron kaymasına neden oluyor yani tam doğru zaman gecikmesi yapamaman anlamına geliyor belki de en önemlisi bu .iki işlemci birbiri ile kıyaslanamaz derecede farklı bu tartışılmaz .belki sadece gereklimi diye tartışılır ona da yaptığın projenin büyüklüğü karar verir.belki şu denilebilir ben de henüz 8 bit işlemcilerle işlerimi hallediyorum sanırım daha 32 bitlik işim olmadığından olursa 32 bitlik bir işlemci ile yapılacak şeyi 8 bit ile deliler gibi çalışıp yapmak mantıklı değil hele asm kullanan biri için.
Hep meraktan

ahmet_zxc

Alıntı yapılan: ElectroMan - 12 Mart 2024, 23:48:331. "Senin gibi düşünse, insanoğlu ilerleme sağlayamazdı." demişsiniz. Fakat ben ne gerek vardıda ürettiler demedim.
32 Bit işlemcilere ihtiyaç duymadım, nasıl bir proje veya işlem için ihtiyaç duyulur, tecrübeleri okumak istedim.
Yazılanı doğru okumanızı tavsiye ederim.

2. Bu konudaki açıklamalarınızı google'da zaten buluyorum. Benim öğrenmek istediğim kitabi bilgiler değil, gerçek bir proje üstünden tecrübe dinlemek.

 
heyecanını anlamakla birlikte, velev ki yanlış okumuş yada anlamış olsa da;
karşındaki insan senin tavsiye verebileceğin biri değil.
karşında babandan daha yaşlı ve bu işin üstatlarından biri olduğunun farkında olarak yazmanda fayda var.
daha sakin...

Powered by EzPortal