Mikrodenetleyiciler / mikroişlemciler ve farklı bit sürümleri arasındaki fark nedir?


20

Genel bir mühendislik hobisi olarak her gün mikrodenetleyici dünyası hakkında daha fazla şey öğreniyorum. Bir zamanlar tam olarak anlamadığım bir şey, bir mikro denetleyicinin bit versiyonunun önemi.

ATmega8'i birkaç aydır kullanıyorum ve amacım için harika çalışıyor gibi görünüyor. Saat hızı, bellek, IO pin sayısı, iletişim veri yolu tipleri, vb. Şeylerin bir mikro denetleyiciyi diğerinden nasıl ayırt ettiğini biliyorum. Ancak, 8 bit ve 16 bit ve 32 bit'in önemini tam olarak anlamıyorum. Daha yüksek bir bit sürümünün cihazın daha büyük sayıları depolamasına izin verdiğini anlıyorum, ancak yine de bu kararımı nasıl etkiler? Bir ürün tasarlıyorsam, hangi varsayımsal senaryo altında 8 bit işlemcinin yapmayacağına ve daha yüksek bir şeye ihtiyacım olduğuna karar vereceğim.

ATmega8'in (diğer tüm şeylerin eşit olduğu) teorik bir 32 bit varyantının 8 bit bir sürüme (böyle bir cihaz mümkünse) üstün olduğuna inanmak için herhangi bir neden var mı?

Saçmalık konuşuyorum, ama sanırım bu karışıklığımın bir sonucu.


Yanıtlar:


24

Saklayabileceği sayının genişliği değil, tek bir işlemle çalışabileceği genişliktir. Geleneksel olarak (ancak zorunlu olarak), bunun aynı zamanda yerel bellek adreslemesinin genişliği ile ve dolayısıyla bölümleme veya banka değiştirme gibi çirkin geçici çözümler olmadan kolayca eşleştirilebilen depolama miktarı ile bir korelasyon derecesi vardır.

Bugünün 32 bit çekirdeği çoğu açıdan 8 tasarımdan daha üstündür (esneklik, düz bellek modeli ve elbette performans), büyük istisnalar eski sistemler, aşırı hacimli ve fiyat basıncına sahip uygulamalar (aksi takdirde fiyatlandırma ile daha iyi korelasyon gösterir) çekirdek genişliğinden daha küçük bellek boyutu) ve işlem / yoğunluğun yan etkileri. Daha sonra 5v işlemi gibi şeyler sağlayabilir veya bazı durumlarda CPU tasarımının mantık hatalarından arınmış olduğunu kanıtlamaya çalışırsa daha büyük radyasyon sertliği veya basitlik avantajı sağlayabilir. Birçok hobici için değerin son bir süreç / yaş yan etkisi, DIP paketlerinde 8 bit çekirdeklerin yaygın olması, bu paketlerde 32 bit cihazların daha nadir (mevcut olsalar da) olmasıdır.


3
Tek bir işlemde işleyebileceği genişlik, programın eşzamansız kısımlarını senkronize ederken önemli olabilir. 8 bitlik bir mikroda 16 bitlik bir değeri atomik olarak okumanız gerekirse, büyük olasılıkla önce ISR yanıt süresini düşük tutmaktan kaçınmak isteyebileceğiniz kesintileri devre dışı bırakmanız gerekir.
ndim

Bazı 8 bitlik mikronların ARM'den (en popüler 32 bit mimari) daha üstün olabileceği bir başka özellik de G / Ç biti döndürmektir. Bir PIC 18Fxx (8 bit), herhangi bir kaydın ne olduğuna bakılmaksızın I / O alanındaki herhangi bir biti tek bir komutla ayarlayabilir veya silebilirken, ARM genellikle çok adımlı bir işlem gerektirir. ARM çipleri, şu anda mevcut olan PIC çiplerinden (Sanırım Scenix'ten temin edilebilen bazı küçük 100MHz PIC uyumlu çipler) saniyede daha fazla talimat çalıştırabilir, ancak bunların durdurulduğunu düşünüyorum), ancak mevcut PIC'ler bile bazı tür bit vurma yapabilir Daha hızlı.
Supercat

1
Daha az evrensel olsa da, bazı ARM cihazlarında GPIOx_BSRR / GPIOx_BRR kayıtları gibi ayrı GPIO bitlerini ayarlamak veya temizlemek için yazılabilecek şeyler bulunur.
Chris Stratton

8

Bit değeri veri yolu veya veri borusu boyutudur, yani 8 bitlik MCU (çoğunlukla) her saat döngüsünde yalnızca 0 ila 255 arasındaki değerlerle çalışabilir. İşlemcinin paralel olarak 8 dijital hattı olduğu düşünün. Ve 16-bit'in 16 satırı ve 32-bit'in 32 satırı vardır. Bu nedenle, her saat döngüsü için bu veri satırlarını okur ve daha fazla satır, saat döngüsü başına çalışabileceğiniz değeri artırır.

28256

21665,536

2324,294,967,296

Daha büyük veri yolları ayrıca işlemcinin daha büyük bellek adreslerine erişmesini sağlar.

Bu, matematiksel işlemler sırasında büyük bir fark yaratır. 16 bitlik bir sayı size 8 bitlik sayılardan çok daha fazla hassasiyet verir. 16-bit mikrodenetleyiciler de 8 bitten daha uzun sayılarda matematik işlemlerini işlemede daha verimlidir. 16 bitlik bir mikrodenetleyici, tamsayının ortak tanımı gibi iki 16 bitlik sayı üzerinde otomatik olarak çalışabilir. Ancak 8 bitlik bir mikro denetleyici kullandığınızda, işlem o kadar basit değildir. Bu sayılarda çalışmak için uygulanan işlevler ek döngüler alacaktır. Uygulamanızın işlem yoğunluğuna ve kaç hesaplama yaptığınıza bağlı olarak, bu devrenin performansını etkileyebilir.

8 bit ve 16 bit Mikrodenetleyici Arasındaki Fark

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.